/*
Theme Name: Nicex (Child Theme)
Template: nicex
*/

/* Mobile (bis 767px) */
@media (max-width: 767px) {
  html.fsm-opened .ms-fs-container.row {
    margin-top: 0.5rem !important;
  }
}

/* Desktop (ab 1024px) */
@media (min-width: 1024px) {
  html.fsm-opened .ms-fs-container.row {
    margin-top: 10rem;
  }
}

/* Tablet (768px bis 1023px) */
@media (min-width: 768px) and (max-width: 1023px) {
  html.fsm-opened .ms-fs-container.row {
    margin-top: 10rem;
  }
}




/* ==========================================================
   STANDARD MENÜ STYLER
   ========================================================== */
.main-header__nav #primary-menu > li > a,
.ms-fs--nav #primary-menu > li > a{
  font-family: "Assistant", sans-serif !important;
  font-weight: 800 !important;
}

.main-header__nav #primary-menu .sub-menu a,
.ms-fs--nav #primary-menu .sub-menu a{
  font-family: "Assistant", sans-serif !important;
  font-weight: 400 !important;
}

/* Active-State auch rot (Standard-MENÜ) */
.main-header__default .navbar-nav > .menu-item.current-menu-item > a,
.main-header__default .navbar-nav > .menu-item.current_page_item > a,
.main-header__default .navbar-nav > .menu-item.current-menu-ancestor > a,
.main-header__default .navbar-nav > .menu-item.current-menu-parent > a{
  color: var(--color-primary) !important;
}

/* ==========================================================
   HEADER LAYOUT – CLEAN & SAFE
   Ziel:
   - Startseite (>=768): Logo perfekt mittig, Menü/Burger rechts bleibt intakt
   - Nicht-Startseite (>=768): Logo oben, Menü darunter zentriert
   - Mobile (<=767): Theme-Default (Logo links), nur Größenlimit
   ========================================================== */


/* ==========================================================
   BASE
   - inner als Bezugspunkt für absolute Positionierung (nur Home)
   ========================================================== */
.main-header__layout .main-header__inner{
  position: relative;
}


/* ==========================================================
   HEADER – Blur-Effekt (Frosted Glass)
   Feature: header-blur | 2025-01-18
   ========================================================== */
.main-header__layout {
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
  transition: 0.85s cubic-bezier(0.25, 0.1, 0.25, 1);
}


/* ==========================================================
   STARTSEITE (Home) – Desktop + Tablet (>=768px)
   - Logo exakt zentriert (ohne Menülayout zu zerlegen)
   ========================================================== */
@media (min-width: 768px){

  body.home .main-header__layout .main-header__inner{
    display: flex;
    align-items: center;
  }

  body.home .main-header__layout .main-header__inner .main-header__logo{
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 10;
    margin: 0;
    display: flex;
    align-items: center;
  }

  body.home .main-header__layout .main-header__inner .ms-fs-wrapper,
  body.home .main-header__layout .main-header__inner .main-header__nav-trigger{
    margin-left: auto;
  }
}


/* ==========================================================
   NICHT-STARTSEITE – Desktop + Tablet (>=768px)
   - Logo oben, Menü darunter zentriert
   - Header darf höher werden (damit nichts abgeschnitten wird)
   ========================================================== */
@media (min-width: 768px){

  body:not(.home) .main-header__layout{
    height: auto;
  }

  body:not(.home) .main-header__layout .main-header__inner{
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding-top: 18px;
    padding-bottom: 12px;
  }

  body:not(.home) .main-header__layout .main-header__inner .main-header__logo{
    position: relative;
    left: auto;
    top: auto;
    transform: none;
    margin: 0;
    z-index: 10;
  }

  body:not(.home) .main-header__layout .main-header__inner #main-header-nav.main-header__nav{
    margin-top: 10px;
    width: 100%;
    text-align: center;
  }

  body:not(.home) .main-header__layout .main-header__inner #main-header-nav .navbar-nav{
    justify-content: center;
  }

  body:not(.home) .main-header__layout .main-header__inner .main-header__nav-trigger,
  body:not(.home) .main-header__layout .main-header__inner .ms-fs-wrapper{
    margin-left: 0;
  }
}

/* ==========================================================
   NICHT-STARTSEITE – NUR TABLET (768px – 1023px)
   - Burger-Menü rechtsbündig (wie Mobile)
   Feature: tablet-burger-right | 2025-01-18
   ========================================================== */
@media (min-width: 768px) and (max-width: 1023px){
  body:not(.home) .main-header__layout .main-header__inner .main-header__nav-trigger,
  body:not(.home) .main-header__layout .main-header__inner .ms-fs-wrapper{
    position: absolute !important;
    right: 15px !important;
    top: 43px !important;
  }
}

/* ==========================================================
    Logo-Größe begrenzen
    MOBILE (<=767px)
   ========================================================== */
@media (max-width: 767px){
  .main-header__logo img{
    max-height: 60px;
    width: auto;
    height: auto;
  }
}

/* ==========================================================
   STICKY HEADER HEIGHT – NUR NICHT-STARTSEITE
   - Home bleibt unangetastet (Fullscreen-Slider)
   - Alle anderen Seiten: saubere Höhe via Nicex-Variablen
   ========================================================== */

body:not(.home){
  --main-header-height: 90px;      /* mobile/tablet */
  --main-header-height-md: 120px;   /* desktop (>=1024px) */
}

/* ==========================================================
   HOME – HEADER / LOGO
   - Headerhöhe so wählen, dass das Logo sauber Platz hat
   - Einheitlicher Abstand zum oberen Rand
   ========================================================== */

/* Mobile/Tablet */
body.home{
  --main-header-height: 90px;
}

/* Desktop */
@media (min-width: 1024px){
  body.home{
    --main-header-height-md: 130px;
  }
}


/* ==========================================================
   FALLBACK-BILD, solange das Video noch nicht da ist
   ========================================================== */
.ms-slider .ms-slider--video > div[data-vbg]{
  background: url("/wp-content/themes/nicex-child/assets/img/header-video-fallback.jpg?v=2") center / cover no-repeat !important;
  background-color: #000 !important;
}

/* Video weich einblenden */
.ms-slider .ms-slider--video video{
  transition: opacity .5s ease-in-out !important;
}

/* ==========================================================
   NEWS - CARD (teaser)
   ========================================================== */
.post-meta__link.link > a{
  font-family: "Assistant", sans-serif !important;
  font-weight: 800 !important;
  text-transform: uppercase;
  transition: color 400ms ease;
}

/* Light Mode: Default NICHT rot (Theme .link färbt sonst rot) */
[data-theme="light"] .post-meta__link.link{
  color: rgb(40, 42, 47) !important;
}
[data-theme="light"] .post-meta__link.link > a{
  color: inherit !important;
}

/* Dark Mode: Default weiß */
[data-theme="dark"] .post-meta__link.link > a{
  color: #fff !important;
}

/* Hover: beide Modes -> Accent Rot */
.post-meta__link.link > a:hover{
  color: var(--color-primary) !important;
}

/* ==========================================================
   NEWS - CARD: Date Color (Dark Mode)
   Feature: news-date-dark-white | 2026-01-20
   ========================================================== */
[data-theme="dark"] .post-meta__date{
  color: #fff !important;
}

/* ==========================================================
   NEWS - CARD: Title Hover (Dark + Bright) – smooth to Accent
   Feature: news-title-hover-accent | 2026-01-20
   ========================================================== */

/* Transition: auf Link + Titel */
.post-meta-cont > a,
.post-meta-cont > a > h3{
  transition: color 400ms cubic-bezier(0.25, 0.1, 0.25, 1) !important;
}

/* Dark Mode: Titel weiß */
[data-theme="dark"] .post-meta-cont > a{
  color: #fff !important;
}

/* Hover: beide Modes -> Accent Rot */
.post-meta-cont > a:hover{
  color: var(--color-primary) !important;
}



/* ==========================================================
   NEWS - Hero: Hover-Zoom (Grid + Single)
   Feature: news-thumb-hover-zoom | 2026-01-20
   ========================================================== */

/* Frame: Zoom bleibt im Wrapper */
figure.media-wrapper{
  overflow: hidden;
}

/* Smooth Zoom */
figure.media-wrapper img{
  transition: transform 0.85s cubic-bezier(0.25, 0.1, 0.25, 1);
  will-change: transform;
  transform: translateZ(0);
}

/* Hover (Grid): a ist Parent */
a:hover figure.media-wrapper img{
  transform: translateZ(0) scale(1.08) !important;
}

/* Hover (Single): kein Link -> Hover direkt auf figure */
main.ms-main.ms-single-post figure.media-wrapper:hover img{
  transform: translateZ(0) scale(1.08) !important;
}

/* ==========================================================
   NEWS - CARD: Hover-Zoom auf Post-Thumbnail
   Feature: news-card-hover-zoom | 2026-01-20
   ========================================================== */

/* Frame: Zoom bleibt im 16:9 Wrapper */
figure.media-wrapper{
  overflow: hidden;
}

/* Smooth Zoom */
figure.media-wrapper img{
  transition: transform 0.85s cubic-bezier(0.25, 0.1, 0.25, 1);
  will-change: transform;
  transform: translateZ(0);
}

/* Hover: a ist Parent -> a:hover figure img */
a:hover figure.media-wrapper img{
  transform: translateZ(0) scale(1.08) !important;
}

/* ==========================================================
   NEWS - EXCERPT: Vorschautext auf 2 Zeilen begrenzen
   Feature: news-excerpt-2lines | 2026-01-20
   ========================================================== */
.post-excerpt {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  max-height: 57.6px; /* Fallback: 2 × 28.8px line-height */
}
/* ========================================================== */

/* ==========================================================
   NEWS - SINGLE BEITRAG: PREV Arrow Fix
   Feature: prev-arrow-mirror | 2025-01-18
   ========================================================== */

/* SVG spiegeln (Pfeil zeigt nach links) */
.ms-prev-next-posts .ms-rp--prev .ms-rp--icon svg,
.ms-prev-next-posts .ms-rp--prev .ms-rp--icon-2 svg {
  transform: scaleX(-1);
}

/* Default: icon1 startet rechts (für Einfahrt von rechts) */
.ms-related-posts.ms-prev-next-posts .ms-rp--prev .ms-rp--icon {
  transform: translateY(-50%) translateX(50%);
}

/* Default: icon2 bleibt Mitte */
.ms-related-posts.ms-prev-next-posts .ms-rp--prev .ms-rp--icon-2 {
  transform: translateY(-50%) translateX(0);
}

/* Hover: icon1 fährt zur Mitte */
.ms-related-posts.ms-prev-next-posts .ms-rp--prev:hover .ms-rp--icon {
  transform: translateY(-50%) translateX(0);
}

/* Hover: icon2 fährt nach links raus */
.ms-related-posts.ms-prev-next-posts .ms-rp--prev:hover .ms-rp--icon-2 {
  transform: translateY(-50%) translateX(-50%);
}

/* ==========================================================
   SINGLE POST - H1 wie Unterseiten-Überschrift (Responsive)
   Feature: single-post-h1-match | 2026-01-20
   ========================================================== */

/* Desktop */
body.single-post .ms-sp--header {
  padding-top: 30px;
}

body.single-post .ms-sp--title {
  font-size: 131.2px;
}

/* Tablet */
@media (max-width: 1024px) {
  body.single-post .ms-sp--title {
    font-size: 76.8px;
  }
}

/* Mobile */
@media (max-width: 767px) {
  body.single-post .ms-sp--title {
    font-size: 53px;
  }
}
/* ========================================================== */

/* ==========================================================
   FULLSCREEN MENÜ – Active State / Spacing
   ========================================================== */

/* Active: rot (Fullscreen-Menü) */
.ms-fs-menu ul.navbar-nav-button li.current-menu-item > a,
.ms-fs-menu ul.navbar-nav-button li.current_page_item > a,
.ms-fs-menu ul.navbar-nav-button li.current-menu-ancestor > a,
.ms-fs-menu ul.navbar-nav-button li.current-menu-parent > a{
  color: var(--color-primary);
}

/* ---------- HANDY (<= 767px) ---------- */
@media (max-width: 767px){
  .ms-fs-menu .ms-fs-container .ms-fs--nav{
    padding-left: 15px;
    padding-right: 15px;
  }
}

/* ---------- TABLET (768px – 1023px) ---------- */
@media (min-width: 768px) and (max-width: 1023px){
  .ms-fs-menu .ms-fs-container .ms-fs--nav{
    padding-left: 15px;
    padding-right: 15px;
  }
}

/* ==========================================================
   FULLSCREEN MENÜ – Scroll-Lock & Header fixiert
   Feature: fsm-scroll-lock | 2025-01-18
   ========================================================== */
html.fsm-opened {
  overflow: hidden !important;
}
html.fsm-opened body {
  overflow: hidden !important;
}
html.fsm-opened body:not(.home) .ms-fs-menu {
  overflow: hidden !important;
}
html.fsm-opened .main-header {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 9999 !important;
}


/* ==========================================================
   MENÜ-SWITCH: Fullscreen (<1024px) vs. Text-Menü (>=1024px)
   Feature: responsive-menu-switch | 2025-01-18
   ========================================================== */

/* Mobile + Tablet: Fullscreen-Menü */
.menu-desktop-only {
  display: none;
}
.menu-fullscreen-only {
  display: block;
}

/* Desktop: Text-Menü */
@media (min-width: 1024px) {
  .menu-desktop-only {
    display: block;
  }
  .menu-fullscreen-only {
    display: none;
  }
}

/* ==========================================================
   FIX: Light-Mode Accent Color (2025-01-18) ===
   Kirki gibt Light-Mode-Farben nicht aus wenn theme_mode=dark.
   Dieser Override stellt sicher, dass --color-primary im Light-Mode korrekt ist.
   Entfernen wenn NiceX-Theme den Bug fixt.
   ========================================================== */
[data-theme="light"] {
  --color-primary: #ab0007 !important;
}

/* ══════════════════════════════════════════════════════════
   CF7 Kontaktformular – Styling
   Feature: kontakt-form | 2026-01-18
   ══════════════════════════════════════════════════════════ */

/* Button – Dark Mode (weiß → rot) */
[data-theme="dark"] .wpcf7 .btn--primary {
  background: #ffffff !important;
}
[data-theme="dark"] .wpcf7 .btn--primary .text--main,
[data-theme="dark"] .wpcf7 .btn--primary .text--ghost {
  color: #171717 !important;
}
[data-theme="dark"] .wpcf7 .btn--primary:hover .text--main,
[data-theme="dark"] .wpcf7 .btn--primary:hover .text--ghost {
  color: #ffffff !important;
}

/* Button – Light Mode (dunkelgrau → rot) */
[data-theme="light"] .wpcf7 .btn--primary {
  background: #282A2F !important;
}
[data-theme="light"] .wpcf7 .btn--primary .text--main,
[data-theme="light"] .wpcf7 .btn--primary .text--ghost {
  color: #ffffff !important;
}
[data-theme="light"] .wpcf7 .btn--primary:hover .text--main,
[data-theme="light"] .wpcf7 .btn--primary:hover .text--ghost {
  color: #ffffff !important;
}

/* Button – nur 1 Slide-Layer */
.wpcf7 .btn::before,
.wpcf7 .btn::after {
  display: none !important;
}
.wpcf7 .btn .ms-btn--ripple {
  background: #ab0007 !important;
}

/* Validation Tooltips */
.wpcf7-not-valid-tip {
  background: #ab0007 !important;
}
.wpcf7-not-valid-tip::before {
  border-bottom-color: #ab0007 !important;
}

/* Invalid Input Border */
.wpcf7-not-valid {
  border-color: #ab0007 !important;
}

/* Error Message Box */
.wpcf7 .wpcf7-response-output {
  background: #ab0007 !important;
  border-color: #ab0007 !important;
}

/* Focus Glow */
.wpcf7 .form-control:focus {
  border-color: #ab0007 !important;
  box-shadow: 0 0 0 4px rgba(171, 0, 7, 0.2) !important;
}

/* ==========================================================
   GLOBAL - H1 & H2 Größen (Responsive, REM)
   Feature: h1-h2-global-size | 2026-01-20
   ========================================================== */

h2 {
  margin-bottom: 0.3em; /* Aktuell vermutlich kleiner */
}

/* Desktop */
h1 {
  font-size: 8.2rem !important;  /* 131.2px bei Root 16px */
}

h2 {
  font-size: 3rem !important;    /* ~32px bei Root 16px */
}

/* Tablet */
@media (max-width: 1024px) {
  h1 {
    font-size: 6.2rem !important;  /* ~76.8px */
  }
  
  h2 {
    font-size: 2.2rem !important;  /* ~25.6px */
  }
}

/* Mobile */
@media (max-width: 767px) {
  h1 {
    font-size: 3.3rem !important;  /* ~53px */
  }
  
  h2 {
    font-size: 1.5rem !important;  /* ~19.2px */
  }
}
/* ========================================================== */
/* ==========================================================
   FULLSCREEN-MENÜ: LOGO ALIGNMENT
   Logo linksbündig mit Menü-Text
   Feature: fsm-logo-align | 2026-01-24
   ========================================================== */
html.fsm-opened .main-header__logo {
  margin-left: 25.0px !important;
}

@media (max-width: 552px) {
  html.fsm-opened .main-header__logo {
    margin-left: 12.5px !important;
  }
}

/* ==========================================================
   FULLSCREEN-MENÜ: Z-INDEX FIXES
   Feature: fsm-zindex | 2026-01-24
   ========================================================== */
.ms-fs-menu {
  z-index: 9999 !important;
}
html.fsm-opened .main-header__logo {
  z-index: 10000 !important;
}
html.fsm-opened .container-menu {
  z-index: 10000 !important;
}

/* ==========================================================
   LOGO-MARGIN: Nicht auf Homepage
   Feature: logo-margin-notHome | 2026-01-24
   ========================================================== */
@media (max-width: 1023px) {
  body:not(.home) .main-header__logo {
    margin-left: 25.0px !important;
  }
}
@media (max-width: 552px) {
  body:not(.home) .main-header__logo {
    margin-left: 12.5px !important;
  }
}

/* ==========================================================
   GPU-BESCHLEUNIGUNG: Fullscreen-Menü
   Feature: fsm-gpu | 2026-01-24
   ========================================================== */
.ms-fs-menu {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  will-change: transform, clip-path, opacity;
}
.ms-fs-menu .ms-fs-container {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  will-change: transform, opacity;
}

/* ==========================================================
   LOGO-TRANSITION: Sanfte Bewegung
   Feature: logo-transition | 2026-01-24
   ========================================================== */
@media (max-width: 1023px) {
  .main-header__logo {
    transition: margin-left 1.5s cubic-bezier(0.575, 0.015, 0, 0.995);
  }
}

/* ==========================================================
   BURGER-ICON: Rotation Fix beim Schließen
   Feature: burger-rotation-fix | 2026-01-24
   ========================================================== */
html:not(.fsm-opened) .open-event .icon-close {
  transform: rotate(90deg) scale(0.8) !important;
  transition: transform 0.5s cubic-bezier(0.575, 0.015, 0, 0.995);
}
html:not(.fsm-opened) .open-event .icon-burger {
  transform: rotate(0deg) !important;
  transition: transform 0.5s cubic-bezier(0.575, 0.015, 0, 0.995);
}

/* ==========================================================
   HOMEPAGE: Logo-Fix bei Fullscreen-Menü
   Verhindert Ruckeln des zentrierten Logos
   Feature: home-logo-fix | 2026-01-24
   ========================================================== */
@media (min-width: 768px) {
  body.home .main-header__logo {
    margin-left: 0 !important;
    transition: none !important;
  }
  html.fsm-opened body.home .main-header__logo {
    margin-left: 0 !important;
  }
}

/* ==========================================================
   DESKTOP: Reset Fullscreen-Menü States
   Verhindert Transform-Glitch beim Resize von Mobile zu Desktop
   Feature: desktop-fsm-reset | 2026-01-24
   ========================================================== */
@media (min-width: 1024px) {
  html.fsm-opened .ms-main {
    transform: none !important;
    transform-origin: initial !important;
  }
  html.fsm-opened body:not(.home) .ms-fs-menu {
    display: none !important;
  }
}


/* ==========================================================
   FULLSCREEN-MENÜ: Active State Fix (Tablet)
   Feature: fsm-active-tablet | 2026-01-24
   ========================================================== */
.ms-fs-menu #primary-menu li.current-menu-item > a,
.ms-fs-menu #primary-menu li.current_page_item > a,
.ms-fs-menu #primary-menu li.current-menu-ancestor > a,
.ms-fs-menu #primary-menu li.current-menu-parent > a {
  color: var(--color-primary) !important;
}

/* ==========================================================
   ELEMENTOR TEXT EDITOR: Absatz-Styling
   Feature: elementor-paragraph-spacing | 2026-01-24
   ========================================================== */
.elementor-text-editor p {
  line-height: 1.6;
}
.elementor-text-editor p:last-child {
  margin-bottom: 0;
}

/* ==========================================================
     HAUS80 FAQ – clean fancy (NO JS) – RANDLOS
     ========================================================== */

  .elementor-widget-n-accordion {
    --accent:#ab0007;
    --text:#fff;
    --muted:rgba(255,255,255,.78);
    --card1:rgba(255,255,255,.055);
    --card2:rgba(255,255,255,.03);
    --r:16px;
    --px:18px;
    --py:16px;
    --gap:14px;
    --speed:400ms;
    --shadow:0 14px 45px rgba(0,0,0,.45);
  }

  /* cards (RANDLOS) */
  .elementor-widget-n-accordion .e-n-accordion .e-n-accordion-item {
    margin:0 0 var(--gap) 0;
    border-radius:var(--r);
    overflow:hidden;
    border:0 !important;
    outline:none !important;
    box-shadow:none;
    background:linear-gradient(180deg,var(--card1),var(--card2));
    transition: box-shadow var(--speed) ease, transform var(--speed) ease, background var(--speed) ease;
    position:relative;
  }

  /* subtle accent rail */
  .elementor-widget-n-accordion .e-n-accordion .e-n-accordion-item::before {
    content:"";
    position:absolute;
    left:0; top:12px; bottom:12px;
    width:2px;
    border-radius:8px;
    background:rgba(171,0,7,0);
    transition:background var(--speed) ease;
  }

  /* hover lift */
  .elementor-widget-n-accordion .e-n-accordion .e-n-accordion-item:hover {
    box-shadow:var(--shadow);
    transform:translateY(-1px);
  }
  .elementor-widget-n-accordion .e-n-accordion .e-n-accordion-item:hover::before {
    background:rgba(171,0,7,.85);
  }

  /* summary row */
  .elementor-widget-n-accordion summary.e-n-accordion-item-title {
    list-style:none;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:14px;
    padding:var(--py) var(--px);
    color:var(--text);
    user-select:none;
    outline:none !important;
    border:0 !important;
    box-shadow:none !important;
  }
  .elementor-widget-n-accordion summary.e-n-accordion-item-title::-webkit-details-marker {display:none;}
  .elementor-widget-n-accordion summary.e-n-accordion-item-title::marker {content:"";}

  /* title */
  .elementor-widget-n-accordion .e-n-accordion-item-title-text {
    color:var(--text);
    font-weight:650;
    letter-spacing:.2px;
    line-height:1.15;
    transition:color var(--speed) ease;
  }
  .elementor-widget-n-accordion .e-n-accordion-item:hover .e-n-accordion-item-title-text {
    color:var(--accent);
  }

  /* icon: replace SVG with clean +/– */
  .elementor-widget-n-accordion .e-n-accordion-item-title-icon {
    width:42px; height:42px; min-width:42px;
    border-radius:13px;
    display:flex; align-items:center; justify-content:center;
    background:rgba(0,0,0,.14);
    border:1px solid rgba(255,255,255,.10);
    position:relative;
    transition:background var(--speed) ease, border-color var(--speed) ease, transform var(--speed) ease;
  }
  .elementor-widget-n-accordion .e-n-accordion-item-title-icon svg {display:none !important;}
  .elementor-widget-n-accordion .e-n-accordion-item-title-icon::before {
    content:"+";
    font-size:30px;
    font-weight:900;
    line-height:1;
    color:var(--text);
    transform:translateY(-1px);
    transition:color var(--speed) ease, transform var(--speed) ease;
  }

  /* icon hover */
  .elementor-widget-n-accordion .e-n-accordion-item:hover .e-n-accordion-item-title-icon {
    border-color:rgba(171,0,7,.55);
    background:rgba(171,0,7,.10);
  }
  .elementor-widget-n-accordion .e-n-accordion-item:hover .e-n-accordion-item-title-icon::before {
    color:var(--accent);
    transform:translateY(-1px) rotate(90deg);
  }

  /* open state */
  .elementor-widget-n-accordion details.e-n-accordion-item[open] {
    border:0 !important;
    outline:none !important;
    background:linear-gradient(180deg, rgba(171,0,7,.08), rgba(255,255,255,.03));
    box-shadow:var(--shadow);
  }
  .elementor-widget-n-accordion details.e-n-accordion-item[open]::before {
    background:rgba(171,0,7,.95);
  }

  /* open: title + icon */
  .elementor-widget-n-accordion details.e-n-accordion-item[open] .e-n-accordion-item-title-text {
    color:var(--text);
  }
  .elementor-widget-n-accordion details.e-n-accordion-item[open] .e-n-accordion-item-title-icon {
    border-color:rgba(171,0,7,.65);
    background:rgba(171,0,7,.14);
  }
  .elementor-widget-n-accordion details.e-n-accordion-item[open] .e-n-accordion-item-title-icon::before {
    content:"–";
    color:var(--text);
    transform:translateY(-2px);
  }

  /* divider */
  .elementor-widget-n-accordion details.e-n-accordion-item[open] > summary {
    border-bottom:1px solid rgba(255,255,255,.10) !important;
  }

  /* content */
  .elementor-widget-n-accordion .e-n-accordion-item > [role="region"] {
    padding:14px var(--px) calc(var(--py) + 2px) var(--px);
    color:var(--muted);
    border:0 !important;
    outline:none !important;
  }
  .elementor-widget-n-accordion .e-n-accordion-item > [role="region"] p {
    margin:0;
    font-size:15px;
    line-height:1.7;
  }

  /* focus */
  .elementor-widget-n-accordion summary.e-n-accordion-item-title:focus-visible {
    box-shadow:0 0 0 3px rgba(171,0,7,.35);
    border-radius:12px;
  }

  /* safety: remove stray outlines + hide SVG icons */
  .elementor-widget-n-accordion .e-n-accordion,
  .elementor-widget-n-accordion .e-n-accordion * {
    outline:none;
  }
  .elementor-widget-n-accordion .e-n-accordion-item-title-icon .e-opened,
  .elementor-widget-n-accordion .e-n-accordion-item-title-icon .e-closed,
  .elementor-widget-n-accordion .e-n-accordion-item-title-icon svg {
    display:none !important;
  }

  /* LIGHT MODE: Content dunkel */
  [data-theme="light"] .elementor-widget-n-accordion .e-n-accordion-item > [role="region"],
  [data-theme="light"] .elementor-widget-n-accordion .e-n-accordion-item > [role="region"] p,
  [data-theme="light"] .elementor-widget-n-accordion .e-n-accordion-item > [role="region"] * {
    color: rgba(0,0,0,.70) !important;
  }

 /* =================================================================
  =========
     25. CONTACT FORM 7 - FILE UPLOAD & FORM FIELDS STYLING
     =================================================================
  ========= */

  /* ALLE FORM FELDER - Hover Rot-Glow */
  .wpcf7 input[type="text"],
  .wpcf7 input[type="email"],
  .wpcf7 input[type="tel"],
  .wpcf7 textarea,
  .wpcf7 select,
  .wpcf7 input[type="file"] {
    border: 1px solid rgba(255,255,255,.15);
    background: rgba(255,255,255,.05);
    color: #fff;
    transition: all 400ms ease;
  }

  .wpcf7 input[type="text"]:hover,
  .wpcf7 input[type="email"]:hover,
  .wpcf7 input[type="tel"]:hover,
  .wpcf7 textarea:hover,
  .wpcf7 select:hover,
  .wpcf7 input[type="file"]:hover {
    border-color: rgba(171,0,7,.5);
    background: rgba(171,0,7,.08);
  }

  /* FILE INPUT WRAPPER */
  .wpcf7 input[type="file"] {
    width: 100%;
    padding: 12px 20px;
    border-radius: 8px;
    cursor: pointer;
    font-size: 14px;
    color: rgba(255,255,255,.6);
  }

  /* FILE BUTTON - Weiß mit dunkler Schrift */
  .wpcf7 input[type="file"]::file-selector-button {
    padding: 10px 20px;
    margin-right: 15px;
    border: none;
    border-radius: 6px;
    background: #ffffff;
    color: #171717;
    font-weight: 600;
    cursor: pointer;
    transition: all 400ms ease;
  }

  .wpcf7 input[type="file"]::file-selector-button:hover {
    background: #ab0007;
    color: #fff;
  }

  /* Webkit (Chrome, Safari, Edge) */
  .wpcf7 input[type="file"]::-webkit-file-upload-button {
    padding: 10px 20px;
    margin-right: 15px;
    border: none;
    border-radius: 6px;
    background: #ffffff;
    color: #171717;
    font-weight: 600;
    cursor: pointer;
    transition: all 400ms ease;
  }

  .wpcf7 input[type="file"]::-webkit-file-upload-button:hover {
    background: #ab0007;
    color: #fff;
  }

  /* LIGHT MODE */
  [data-theme="light"] .wpcf7 input[type="text"],
  [data-theme="light"] .wpcf7 input[type="email"],
  [data-theme="light"] .wpcf7 input[type="tel"],
  [data-theme="light"] .wpcf7 textarea,
  [data-theme="light"] .wpcf7 select,
  [data-theme="light"] .wpcf7 input[type="file"] {
    border-color: rgba(0,0,0,.15);
    background: rgba(0,0,0,.03);
    color: #333;
  }

  [data-theme="light"] .wpcf7
  input[type="file"]::file-selector-button,
  [data-theme="light"] .wpcf7
  input[type="file"]::-webkit-file-upload-button {
    background: #282A2F;
    color: #fff;
  }

  [data-theme="light"] .wpcf7
  input[type="file"]::file-selector-button:hover,
  [data-theme="light"] .wpcf7
  input[type="file"]::-webkit-file-upload-button:hover {
    background: #ab0007;
  }


 /* =================================================================
  =========
     26. CF7 PARAGRAPH - Match Elementor Text Widget
     Feature: cf7-paragraph-style | 2026-01-25
     =================================================================
  ========= */
  .wpcf7 p,
  .cf7-upload p,
  .cf7-upload-label {
    font-family: var(--e-global-typography-text-font-family,
  "Roboto"), sans-serif;
    font-weight: var(--e-global-typography-text-font-weight, 400);
    font-size: 16px;
    line-height: 1.6;
    margin: 0 0 10px 0;
    text-align: center;
  }
