/* === Fonts === */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('../fonts/SourceSerif4-Light.woff2') format('woff2');
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 300;
  font-display: swap;
  src: url('../fonts/SourceSerif4-LightItalic.woff2') format('woff2');
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/SourceSerif4-Regular.woff2') format('woff2');
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/SourceSerif4-Italic.woff2') format('woff2');
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/SourceSerif4-SemiBold.woff2') format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('../fonts/Inter-Light.woff2') format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/Inter-Regular.woff2') format('woff2');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/Inter-Medium.woff2') format('woff2');
}

/* === Styles === */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
    :root{
      --cream:#F5F0E8; --cream-dk:#EDE7DA; --navy:#122A44; --navy-md:#1C3D5E;
      --navy-lt:#2E5A7A; --gold:#C9A96E; --gold-lt:#DFC090; --gold-pale:#F5EDD8;
      --white:#FFFFFF; --text:#1A2B38; --muted:#6B7A86; --border:rgba(18,42,68,0.10); --max:1180px;
    }
    html{scroll-behavior:smooth;font-size:17.5px}

    body{font-family:'Inter',sans-serif;background:var(--cream);color:var(--text);overflow-x:hidden;line-height:1.7}
    ::-webkit-scrollbar{width:3px}
    ::-webkit-scrollbar-track{background:var(--cream)}
    ::-webkit-scrollbar-thumb{background:var(--gold);border-radius:2px}

    nav{
      position:fixed;top:0;left:0;right:0;z-index:1000;
      display:flex;align-items:center;justify-content:space-between;
      padding:1.5rem 5vw;transition:all 0.4s ease;
    }
    nav.scrolled{
      padding:0.9rem 5vw;background:rgba(245,240,232,0.97);
      backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
      border-bottom:1px solid var(--border);box-shadow:0 2px 20px rgba(18,42,68,0.08);
    }
    .nav-brand{text-decoration:none}
    .nav-brand-name{
      display:block;font-family:'Source Serif 4',serif;
      font-size:1rem;font-weight:400;letter-spacing:0.01em;line-height:1.25;
      color:var(--white);transition:color 0.4s;
    }
    nav.scrolled .nav-brand-name{color:var(--navy)}
    .nav-brand-sub{display:block;font-size:0.62rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--gold);font-weight:400;margin-top:2px}
    .nav-links{display:flex;align-items:center;gap:1.5rem;list-style:none}
    .nav-links a{text-decoration:none;font-size:0.68rem;font-weight:400;letter-spacing:0.07em;text-transform:uppercase;color:rgba(255,255,255,0.75);transition:color 0.2s}
    nav.scrolled .nav-links a{color:var(--muted)}
    .nav-links a:hover{color:var(--gold)!important}
    .nav-cta{background:var(--gold)!important;color:var(--navy)!important;padding:0.58rem 1.3rem;border-radius:2px;font-weight:500!important;opacity:1!important;transition:background 0.2s!important;letter-spacing:0.06em!important}
    .nav-cta:hover{background:var(--gold-lt)!important;color:var(--navy)!important}
    .hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:4px;background:none;border:none}
    .hamburger span{display:block;width:22px;height:1.5px;background:var(--white);transition:background 0.4s}
    nav.scrolled .hamburger span{background:var(--navy)}

    #hero{
      position:relative;width:100%;min-height:100vh;
      display:flex;align-items:flex-end;overflow:hidden;
    }
    .hero-bg{
      position:absolute;inset:0;z-index:0;
      background-image:url('../images/hero.webp');
      background-size:cover;background-position:center 20%;background-repeat:no-repeat;
      animation:kenBurns 12s ease-out forwards;
    }
    #hero:hover .hero-bg{}
    .hero-overlay{
      position:absolute;inset:0;z-index:1;
      background:linear-gradient(to top,rgba(10,18,28,0.93) 0%,rgba(10,18,28,0.58) 40%,rgba(10,18,28,0.2) 75%,rgba(10,18,28,0.05) 100%);
    }
    .hero-overlay-side{
      position:absolute;inset:0;z-index:1;
      background:linear-gradient(to right,rgba(18,42,68,0.55) 0%,transparent 55%);
    }
    .hero-content{
      position:relative;z-index:2;
      width:100%;max-width:var(--max);margin:0 auto;
      padding:0 5vw 5.5rem;
    }
    .hero-eyebrow{
      display:inline-flex;align-items:center;gap:0.75rem;
      font-size:0.65rem;letter-spacing:0.22em;text-transform:uppercase;
      color:var(--gold);font-weight:400;margin-bottom:1.5rem;
      opacity:0;
    }
    body.fonts-ready .hero-eyebrow{animation:fadeUp 0.8s 0.3s forwards;}
    .eyebrow-rule{width:30px;height:1px;background:var(--gold);flex-shrink:0}
    h1{
      font-family:'Source Serif 4',serif;
      font-size:clamp(2.2rem,3.8vw,4.2rem);
      font-weight:300;line-height:1.08;color:var(--white);
      margin-bottom:1.25rem;letter-spacing:-0.02em;
      opacity:0;max-width:820px;
    }
    body.fonts-ready h1{animation:fadeUp 0.8s 0.5s forwards;}
    h1 strong{font-weight:600}
    .hero-sub{
      font-size:1rem;color:rgba(255,255,255,0.52);font-weight:300;
      max-width:500px;margin-bottom:2.5rem;line-height:1.9;
      opacity:0;
    }
    .hero-quote{
      display:block;
      font-family:'Source Serif 4',serif;
      font-size:clamp(1rem,1.5vw,1.2rem);
      font-style:italic;
      font-weight:300;
      color:rgba(255,255,255,0.75);
      max-width:540px;
      margin-bottom:2.5rem;
      line-height:1.75;
      padding-left:1.1rem;
      border-left:2px solid var(--gold);
      opacity:0;
    }
    .hero-btns{display:flex;gap:0.9rem;flex-wrap:wrap;opacity:0;animation:fadeUp 0.8s 0.9s forwards}
    body.fonts-ready .hero-quote{animation:fadeUp 0.8s 0.7s forwards;}
    body.fonts-ready .hero-btns{animation:fadeUp 0.8s 0.9s forwards;}
    .hero-name-badge{
      position:absolute;bottom:5rem;right:5vw;z-index:2;text-align:right;
      opacity:0;animation:fadeUp 0.8s 0.4s forwards;
    }
    .hero-name-badge-name{font-family:'Source Serif 4',serif;font-size:1.05rem;font-weight:400;color:rgba(255,255,255,0.82);letter-spacing:0.03em;display:block}
    .hero-name-badge-title{font-size:0.63rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--gold);display:block;margin-top:4px}

    .btn{
      display:inline-flex;align-items:center;gap:0.45rem;padding:0.88rem 1.75rem;border-radius:2px;
      font-family:'Inter',sans-serif;font-size:0.76rem;font-weight:500;letter-spacing:0.07em;text-transform:uppercase;
      text-decoration:none;cursor:pointer;border:none;transition:all 0.25s;
    }
    .btn-gold{background:var(--gold);color:var(--navy)}
    .btn-gold:hover{background:var(--gold-lt);transform:translateY(-2px);box-shadow:0 8px 22px rgba(201,169,110,0.4)}
    .btn-ghost{background:transparent;color:rgba(255,255,255,0.85);border:1px solid rgba(255,255,255,0.25)}
    .btn-ghost:hover{border-color:var(--gold);color:var(--gold);transform:translateY(-2px)}

    .sec{padding:7rem 5vw}
    section{scroll-margin-top:70px}
    .wrap{max-width:var(--max);margin:0 auto}
    .sec-tag{display:inline-flex;align-items:center;gap:0.65rem;font-size:0.62rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--gold);font-weight:500;margin-bottom:0.8rem}
    .sec-tag::before{content:'';width:22px;height:1px;background:var(--gold)}
    h2{font-family:'Source Serif 4',serif;font-size:clamp(1.85rem,2.8vw,2.7rem);font-weight:300;line-height:1.18;color:var(--navy);margin-bottom:0.75rem;letter-spacing:-0.01em}
    h2 strong{font-weight:600}
    .sec-intro{font-size:0.91rem;color:var(--muted);font-weight:300;max-width:520px;margin-bottom:3rem;line-height:1.85}

    /* SPEKTRUM */
    #spektrum{background:var(--cream)}
    .spek-clip{overflow:hidden;padding:0 0 8px}
    .spek-clip{overflow:hidden;padding:0}
    .spek-outer{overflow:visible;position:relative;padding:32px 0 16px}
    .spek-track-wrap{
      display:flex;gap:24px;
      transition:transform 0.65s cubic-bezier(0.22,1,0.36,1);
      will-change:transform;
      padding:24px 0 32px;
    }
    .spek-card{
      background:var(--white);width:268px;flex-shrink:0;border-radius:4px;
      padding:36px 28px;border:1px solid var(--border);
      position:relative;overflow:hidden;height:300px;
      transform:scale(0.86) translateY(18px);opacity:0.5;
      transition:transform 0.65s cubic-bezier(0.22,1,0.36,1),opacity 0.65s,box-shadow 0.65s;
      box-shadow:0 2px 10px rgba(18,42,68,0.06);
    }
    .spek-card.active{
      transform:scale(1) translateY(0);opacity:1;
      box-shadow:0 20px 52px rgba(18,42,68,0.18),0 4px 14px rgba(18,42,68,0.08);
      border-color:rgba(18,42,68,0.15);
    }
    .spek-card.active::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--gold),var(--gold-lt))}
    .spek-card.near{transform:scale(0.93) translateY(9px);opacity:0.72;box-shadow:0 8px 28px rgba(18,42,68,0.1)}
    .spek-card.active
    .spek-title{font-family:'Source Serif 4',serif;font-size:1.05rem;font-weight:600;color:var(--navy);margin-bottom:1rem;line-height:1.3;letter-spacing:-0.01em}
    .spek-list{list-style:none;display:flex;flex-direction:column;gap:0.4rem}
    .spek-list li{font-size:0.79rem;color:var(--muted);font-weight:300;padding-left:0.85rem;position:relative;line-height:1.5}
    .spek-list li::before{content:'';position:absolute;left:0;top:0.58em;width:4px;height:4px;border-radius:50%;background:var(--gold)}
    .spek-nav{display:flex;align-items:center;justify-content:center;gap:1.25rem;margin-top:0.5rem}
    .spek-btn{
      width:38px;height:38px;border-radius:50%;border:1px solid var(--border);
      background:var(--white);display:flex;align-items:center;justify-content:center;
      cursor:pointer;font-size:0.9rem;transition:all 0.2s;color:var(--navy);
    }
    .spek-btn:hover{background:var(--navy);color:var(--white);border-color:var(--navy)}
    .spek-dots{display:flex;gap:0.5rem;align-items:center}
    .spek-dot{width:6px;height:6px;border-radius:50%;background:var(--border);transition:all 0.3s;cursor:pointer}
    .spek-dot.active{background:var(--gold);width:18px;border-radius:3px}
    
    .spek-note{margin-top:2.5rem;padding:0.5rem 0 0.5rem 1.1rem;border-left:2px solid var(--gold);background:transparent;max-width:580px}
    .spek-note p{font-size:0.78rem;color:var(--muted);font-weight:300;line-height:1.75;font-style:italic}
    .spek-note strong{color:var(--navy);font-weight:500;font-style:normal}

    /* ÜBER MICH */
    #ueber{background:var(--white)}
    .ueber-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:start}
    .ueber-tagline{font-family:'Source Serif 4',serif;font-size:1.15rem;font-weight:300;font-style:italic;color:var(--navy);line-height:1.7;margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}
    .ueber-body{font-size:0.89rem;color:var(--muted);font-weight:300;line-height:1.95;margin-bottom:2rem}
    .pub-badge{display:inline-flex;align-items:flex-start;gap:0.75rem;padding:1.1rem 1.4rem;background:var(--gold-pale);border-radius:3px;border-left:2px solid var(--gold);max-width:100%;margin-bottom:1.25rem}
    .pub-ico{font-size:0.95rem;padding-top:2px;flex-shrink:0}
    .pub-txt{font-size:0.8rem;color:var(--muted);font-weight:300;line-height:1.6}
    .pub-txt strong{color:var(--navy);font-weight:500}
    .cv-link{display:inline-flex;align-items:center;gap:0.45rem;font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--navy-lt);text-decoration:none;font-weight:500;border-bottom:1px solid rgba(46,90,122,0.25);padding-bottom:2px;transition:all 0.2s}
    .cv-link:hover{border-color:var(--navy-lt);color:var(--navy)}
    .timeline{display:flex;flex-direction:column;gap:0;position:relative;padding-top:9.8rem}
    /* Linie wächst von oben nach unten */
    .timeline::before{content:'';position:absolute;left:7px;top:calc(9.8rem + 8px);bottom:8px;width:1.5px;
      background:linear-gradient(to bottom,var(--navy-lt),rgba(46,90,122,0.15));
      transform-origin:top;transform:scaleY(0);transition:transform 1.4s cubic-bezier(0.22,1,0.36,1)}
    .timeline.tl-visible::before{transform:scaleY(1)}
    .tl-item{display:flex;gap:1.5rem;padding-bottom:2rem;position:relative;
      opacity:0;transform:translateX(-22px);transition:opacity 0.55s ease, transform 0.55s cubic-bezier(0.22,1,0.36,1)}
    .tl-item.tl-in{opacity:1;transform:translateX(0)}
    .tl-item:last-child{padding-bottom:0}
    .tl-dot{width:16px;height:16px;border-radius:50%;background:var(--white);border:2px solid var(--navy-lt);flex-shrink:0;margin-top:4px;position:relative;z-index:1;
      transform:scale(0);transition:transform 0.4s cubic-bezier(0.34,1.56,0.64,1)}
    .tl-item.tl-in .tl-dot{transform:scale(1)}
    .tl-item:first-child .tl-dot{background:var(--gold);border-color:var(--gold)}
    .tl-content{}
    .tl-year{font-size:0.65rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--navy-lt);font-weight:500;margin-bottom:0.25rem}
    .tl-title{font-family:'Source Serif 4',serif;font-size:1rem;font-weight:600;color:var(--navy);margin-bottom:0.35rem;line-height:1.3}
    .tl-desc{font-size:0.82rem;color:var(--muted);font-weight:300;line-height:1.6}

    /* TERMIN */
    #termin{background:var(--navy)}
    #termin .sec-tag{color:var(--gold)}
    #termin .sec-tag::before{background:var(--gold)}
    #termin h2{color:var(--white)}
    #termin .sec-intro{color:rgba(255,255,255,0.62)}
    .termin-grid{display:grid;grid-template-columns:1fr 1.85fr;gap:3.5rem;align-items:stretch}
    .termin-grid > .rvl{display:flex;flex-direction:column}
    .termin-grid > .rvr{display:flex;flex-direction:column}
    .i-card{background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.08);border-radius:3px;padding:1.6rem;margin-bottom:1.1rem}
    .i-card:last-child{margin-bottom:0;flex:1}
    .i-card-lbl{font-size:0.62rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--gold);font-weight:500;margin-bottom:0.9rem}
    .sz-row{
      display:grid;grid-template-columns:1fr 1fr;
      padding:0.6rem 0;border-bottom:1px solid rgba(255,255,255,0.07);gap:0.5rem;
    }
    .sz-row:last-child{border-bottom:none}
    .sz-row.closed .sz-d{color:rgba(255,255,255,0.52)}
    .sz-row.closed .sz-t{color:rgba(255,255,255,0.42);font-style:italic}
    .sz-d{color:rgba(255,255,255,0.90);font-weight:400;font-size:0.8rem}
    .sz-t{color:#DFC090;font-size:0.8rem;font-weight:400;line-height:1.55}
    .cr-row{display:flex;align-items:flex-start;gap:0.8rem;padding:0.65rem 0;border-bottom:1px solid rgba(255,255,255,0.06)}
    .cr-row:last-child{border-bottom:none}
    .cr-ico{flex-shrink:0;width:1.4rem;display:flex;align-items:flex-start;justify-content:center;padding-top:3px;color:var(--gold);opacity:0.8}
    .cr-txt{font-size:0.8rem;color:rgba(255,255,255,0.78);font-weight:300;line-height:1.55}
    .cr-txt a{color:var(--gold-lt);text-decoration:none}
    .cr-txt a:hover{color:var(--gold)}
    .cr-txt small{font-size:0.68rem;opacity:0.55;display:block;margin-top:1px}
    /* TERMED WIDGET WRAPPER */
    .termed-wrap{
      position:relative;
      border:1px solid rgba(196,160,90,0.25);
      border-radius:4px;
      overflow:hidden;
      background:rgba(255,255,255,0.02);
      flex:1;
      display:flex;
      flex-direction:column;
    }
    /* Goldener Akzentstreifen oben */
    .termed-wrap::before{
      content:'';
      position:absolute;
      top:0;left:0;right:0;
      height:1px;
      background:linear-gradient(90deg,var(--gold) 0%,rgba(196,160,90,0.3) 60%,transparent 100%);
      z-index:3;
    }
    .termed-header{
      padding:1.6rem 1.75rem 1.2rem;
      flex-shrink:0;
    }
    .termed-tag{
      font-size:0.6rem;
      letter-spacing:0.2em;
      text-transform:uppercase;
      color:var(--gold);
      display:flex;
      align-items:center;
      gap:0.55rem;
      margin-bottom:0.4rem;
      opacity:0.9;
    }
    .termed-tag::before{content:'';display:inline-block;width:24px;height:1px;background:var(--gold);opacity:0.7}
    .termed-sub{
      font-size:0.79rem;
      color:rgba(255,255,255,0.42);
      font-weight:300;
      line-height:1.55;
      margin:0;
      font-family:'Source Serif 4',serif;
      font-style:italic;
      letter-spacing:0.01em;
    }
    .termed-divider{
      height:1px;
      background:linear-gradient(90deg,rgba(196,160,90,0.2) 0%,transparent 70%);
      margin:0 1.75rem;
      flex-shrink:0;
    }
    .termed-widget{
      padding:1.25rem 1.75rem 1.75rem;
      flex:1;
      overflow:hidden;
    }
    /* Scrollbar vom Termed-Widget verstecken */
    #ixeuc{
      overflow:hidden!important;
    }
    #ixeuc > div{
      overflow:hidden!important;
      scrollbar-width:none!important;
    }
    #ixeuc ::-webkit-scrollbar{display:none!important}

    /* KONTAKT */
    #kontakt{background:var(--cream)}
    .kontakt-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:3.5rem;align-items:start}
    .k-blk{margin-bottom:2rem}
    .k-lbl{font-size:0.62rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--gold);font-weight:500;margin-bottom:0.45rem}
    .k-val{font-size:0.88rem;color:var(--navy);font-weight:300;line-height:1.7}
    .k-val a{color:var(--navy);text-decoration:none;border-bottom:1px solid var(--border);transition:all 0.2s}
    .k-val a:hover{color:var(--gold);border-color:var(--gold)}
    .map-wrap{border-radius:3px;overflow:hidden;box-shadow:0 6px 28px rgba(18,42,68,0.12);margin-bottom:1.5rem}
    .map-wrap iframe{width:100%;height:420px;border:none;display:block}
    .map-foot{padding:0.85rem 1.2rem;background:var(--white);border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:0.5rem}
    .map-addr{font-size:0.77rem;color:var(--muted);display:flex;align-items:center;gap:0.4rem}
    .map-lnk{font-size:0.71rem;color:var(--navy-lt);text-decoration:none;border-bottom:1px solid rgba(46,90,122,0.2);transition:all 0.2s}
    .map-lnk:hover{color:var(--gold);border-color:var(--gold)}
    /* NOTFALL SECTION */
    .sec-notfall{background:var(--white);border-top:1px solid var(--border);padding:3rem 5vw}
    .notfall-sec-inner{display:grid;grid-template-columns:1fr 2fr;gap:4rem;align-items:center}
    .notfall-sec-tag{font-size:0.65rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--gold);margin-bottom:0.75rem;display:flex;align-items:center;gap:0.6rem}
    .notfall-sec-tag::before{content:'';display:inline-block;width:30px;height:1px;background:var(--gold)}
    .notfall-sec-title{font-family:'Source Serif 4',serif;font-size:1.1rem;font-weight:300;color:var(--navy);line-height:1.4;margin-bottom:0}
    .notfall-sec-title strong{font-weight:600}
    .notfall-sec-right{display:flex;flex-direction:column}
    .notfall-sec-row{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:0.55rem 0;border-bottom:1px solid var(--border);text-decoration:none}
    .notfall-sec-row:first-child{border-top:1px solid var(--border)}
    .notfall-sec-row:hover .notfall-sec-name{color:var(--gold)}
    .notfall-sec-name{font-size:0.8rem;color:var(--navy);font-weight:300;transition:color 0.2s;min-width:0;flex-shrink:1}
    .notfall-sec-tel{font-size:0.8rem;color:var(--gold);font-weight:400;letter-spacing:0.02em;white-space:nowrap;flex-shrink:0}

    footer{background:#0C1E30;padding:2.25rem 5vw;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1.1rem}
    .ft-brand{font-family:'Source Serif 4',serif;font-size:0.88rem;font-style:italic;color:rgba(255,255,255,0.38)}
    .ft-brand span{color:var(--gold)}
    .ft-links{display:flex;gap:1.75rem;list-style:none;flex-wrap:wrap}
    .ft-links a{font-size:0.65rem;letter-spacing:0.1em;text-transform:uppercase;color:rgba(255,255,255,0.22);text-decoration:none;transition:color 0.2s}
    .ft-links a:hover{color:var(--gold)}
    .ft-copy{font-size:0.65rem;color:rgba(255,255,255,0.16)}
    .divider{height:1px;background:linear-gradient(90deg,transparent,var(--border),transparent)}

    @keyframes fadeUp{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}
    @keyframes fadeIn{from{opacity:0}to{opacity:1}}
    @keyframes kenBurns{from{transform:scale(1.08)}to{transform:scale(1.0)}}
    .rv{opacity:0;transform:translateY(22px);transition:opacity 0.75s ease,transform 0.75s ease}
    .rvl{opacity:0;transform:translateX(-18px);transition:opacity 0.75s ease,transform 0.75s ease}
    .rvr{opacity:0;transform:translateX(18px);transition:opacity 0.75s ease,transform 0.75s ease}
    .rv.on,.rvl.on,.rvr.on{opacity:1;transform:none}
    .d1{transition-delay:0.1s!important}.d2{transition-delay:0.2s!important}.d3{transition-delay:0.3s!important}

    @media(max-width:1100px){
      nav{padding:1.1rem 1.25rem;flex-wrap:wrap;align-items:center}
      nav.scrolled{padding:0.85rem 1.25rem}
      .nav-links{
        display:flex;flex-direction:column;width:100%;order:3;
        margin-top:0;padding:0;gap:0;list-style:none;
        overflow:hidden;max-height:0;
        transition:max-height 0.4s cubic-bezier(0.22,1,0.36,1), opacity 0.35s ease, padding 0.35s ease;
        opacity:0;pointer-events:none;
      }
      .nav-links.open{max-height:400px;opacity:1;pointer-events:all;padding:0.75rem 0 0.5rem 0}
      .nav-links li{border:none}
      .nav-links a{color:var(--navy)!important;padding:0.55rem 0;display:block;border-bottom:1px solid rgba(18,42,68,0.07)}
      .nav-links li:last-child a{border-bottom:none}
      .nav-cta{background:var(--gold)!important;color:var(--navy)!important;border-bottom:none!important;margin-top:0.25rem;display:block;text-align:center;padding:0.7rem 1.3rem!important}
      .hamburger{display:flex;order:2;margin-left:auto}
      nav.menu-open{background:rgba(245,240,232,0.99)!important;backdrop-filter:blur(14px);box-shadow:0 8px 24px rgba(18,42,68,0.1)!important}
      nav.menu-open .nav-brand-name{color:var(--navy)!important}
      nav.menu-open .hamburger span{background:var(--navy)!important}
      h1{font-size:clamp(2.2rem,8vw,3.2rem)}
      body.fonts-ready .hero-quote{animation:fadeUp 0.8s 0.7s forwards;}
    body.fonts-ready .hero-btns{animation:fadeUp 0.8s 0.9s forwards;}
      .hero-name-badge{display:none}
      .hero-content{padding:0 1.25rem 4rem}
      .sec{padding:4.5rem 1.25rem}
      .sec-notfall{padding:3rem 1.25rem}      .ueber-grid{grid-template-columns:1fr;gap:2.5rem}
      .timeline{padding-top:0!important}
      .timeline::before{top:8px!important;bottom:8px!important}
      .termin-grid{grid-template-columns:1fr;gap:2.5rem}
      .sz-row{grid-template-columns:1fr auto}
      .sz-t{text-align:right}
      .kontakt-grid{grid-template-columns:1fr;gap:2.5rem}
      .map-wrap iframe{height:260px}
      .notfall-sec-inner{grid-template-columns:1fr;gap:1.5rem}
      footer{flex-direction:column;align-items:flex-start;padding:2rem 1.25rem}
    }
    @media(min-width:1920px){:root{font-size:18px}.wrap{max-width:1400px}}

    /* MODALS */
    .modal-overlay{
      position:fixed;inset:0;z-index:2000;
      background:rgba(12,20,30,0.75);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
      display:flex;align-items:center;justify-content:center;padding:1.5rem;
      opacity:0;pointer-events:none;transition:opacity 0.3s ease;
    }
    .modal-overlay.open{opacity:1;pointer-events:all}
    .modal-box{
      background:var(--cream);border-radius:4px;
      width:100%;max-width:680px;max-height:85vh;
      display:flex;flex-direction:column;
      box-shadow:0 24px 64px rgba(0,0,0,0.35);
      transform:translateY(20px);transition:transform 0.3s ease;
    }
    .modal-overlay.open .modal-box{transform:translateY(0)}
    .modal-header{
      display:flex;align-items:center;justify-content:space-between;
      padding:1.5rem 2rem;border-bottom:1px solid var(--border);flex-shrink:0;
    }
    .modal-title{font-family:'Source Serif 4',serif;font-size:1.25rem;font-weight:600;color:var(--navy)}
    .modal-close{
      width:34px;height:34px;border-radius:50%;border:1px solid var(--border);
      background:transparent;cursor:pointer;font-size:1rem;color:var(--muted);
      display:flex;align-items:center;justify-content:center;transition:all 0.2s;
    }
    .modal-close:hover{background:var(--navy);color:var(--white);border-color:var(--navy)}
    .modal-body{
      padding:2rem;overflow-y:auto;flex:1;
      font-size:0.85rem;color:var(--muted);font-weight:300;line-height:1.85;
    }
    .modal-body h3{font-family:'Source Serif 4',serif;font-size:1rem;font-weight:600;color:var(--navy);margin:1.5rem 0 0.4rem}
    .modal-body h3:first-child{margin-top:0}
    .modal-body p{margin-bottom:0.75rem}
    .modal-body a{color:var(--navy-lt);text-decoration:none;border-bottom:1px solid rgba(46,90,122,0.2)}
    .modal-body a:hover{color:var(--gold);border-color:var(--gold)}

    /* GOÄ Tooltip */
    .goae-tip{position:relative;border-bottom:1px dotted var(--gold);cursor:help;color:inherit}
    .goae-tooltip{
      display:none;position:absolute;top:calc(100% + 8px);left:0;
      background:#071018;color:#ffffff;font-size:0.8rem;font-weight:400;line-height:1.8;
      padding:1rem 1.2rem;border-radius:6px;width:280px;text-align:left;
      box-shadow:0 8px 32px rgba(0,0,0,0.9);pointer-events:none;z-index:99999;
      border:1px solid #C9A96E;
    }
    .goae-tooltip::before{
      content:'';position:absolute;bottom:100%;left:1.5rem;
      border:6px solid transparent;border-bottom-color:#C9A96E;
    }
    .goae-tooltip::after{
      content:'';position:absolute;bottom:100%;left:calc(1.5rem + 1px);
      border:5px solid transparent;border-bottom-color:#071018;
    }
    .goae-tip:hover .goae-tooltip,.goae-tip:focus .goae-tooltip{display:block}
    /* Skip link */
    .skip-link{position:absolute;top:-100px;left:1rem;background:var(--gold);color:var(--navy);padding:0.6rem 1.2rem;border-radius:2px;font-weight:500;font-size:0.8rem;text-decoration:none;z-index:9999;transition:top 0.2s}
    .skip-link:focus{top:1rem}
    /* ============================================
       COOKIE BANNER
       ============================================ */
    .cookie-banner{
      position:fixed;
      bottom:0;left:0;right:0;
      z-index:9999;
      padding:0 5vw 1.5rem;
      transform:translateY(100%);
      transition:transform 0.5s cubic-bezier(0.22,1,0.36,1);
      pointer-events:none;
      display:none;
    }
    .cookie-banner.visible{
      transform:translateY(0);
      pointer-events:all;
    }
    .cookie-inner{
      max-width:900px;
      margin:0 auto;
      background:var(--navy);
      border:1px solid rgba(196,160,90,0.25);
      border-bottom:none;
      border-radius:4px 4px 0 0;
      padding:1.5rem 2rem;
      position:relative;
      display:flex;
      align-items:center;
      gap:2.5rem;
      flex-wrap:wrap;
    }
    /* Goldener Akzentstreifen oben */
    .cookie-inner::before{
      content:'';
      position:absolute;
      top:0;left:0;right:0;
      height:1px;
      background:linear-gradient(90deg,var(--gold) 0%,rgba(196,160,90,0.3) 60%,transparent 100%);
    }
    .cookie-top{
      flex:1;
      min-width:200px;
    }
    .cookie-tag{
      font-size:0.6rem;
      letter-spacing:0.2em;
      text-transform:uppercase;
      color:var(--gold);
      display:flex;
      align-items:center;
      gap:0.55rem;
      margin-bottom:0.5rem;
      opacity:0.9;
    }
    .cookie-tag::before{
      content:'';
      display:inline-block;
      width:20px;height:1px;
      background:var(--gold);
      opacity:0.7;
    }
    .cookie-text{
      font-size:0.78rem;
      color:rgba(255,255,255,0.52);
      font-weight:300;
      line-height:1.6;
      margin:0;
    }
    .cookie-link{
      background:none;border:none;padding:0;
      color:var(--gold-lt);
      font-size:inherit;
      font-weight:inherit;
      cursor:pointer;
      text-decoration:underline;
      text-decoration-color:rgba(196,160,90,0.4);
      transition:color 0.2s;
    }
    .cookie-link:hover{color:var(--gold)}
    .cookie-actions{
      display:flex;
      gap:0.75rem;
      flex-shrink:0;
    }
    .cookie-btn{
      padding:0.6rem 1.4rem;
      border-radius:2px;
      font-size:0.75rem;
      font-weight:500;
      letter-spacing:0.08em;
      text-transform:uppercase;
      cursor:pointer;
      transition:all 0.2s;
      white-space:nowrap;
    }
    .cookie-decline{
      background:transparent;
      border:1px solid rgba(255,255,255,0.2);
      color:rgba(255,255,255,0.6);
    }
    .cookie-decline:hover{
      border-color:rgba(255,255,255,0.4);
      color:rgba(255,255,255,0.85);
    }
    .cookie-accept{
      background:var(--gold);
      border:1px solid var(--gold);
      color:var(--navy);
    }
    .cookie-accept:hover{
      background:var(--gold-lt);
      border-color:var(--gold-lt);
    }

    /* GOOGLE MAPS PLACEHOLDER */
    .gmaps-placeholder{
      width:100%;height:420px;
      background:var(--navy);
      border:1px solid rgba(196,160,90,0.15);
      display:flex;flex-direction:column;
      align-items:center;justify-content:center;
      gap:0.75rem;text-align:center;
    }
    .gmaps-ph-icon{color:var(--gold);opacity:0.5}
    .gmaps-ph-text{
      font-size:0.8rem;
      color:rgba(255,255,255,0.35);
      font-weight:300;line-height:1.6;
      max-width:260px;
    }
    .gmaps-ph-btn{
      margin-top:0.25rem;
      padding:0.55rem 1.25rem;
      background:transparent;
      border:1px solid rgba(196,160,90,0.4);
      border-radius:2px;
      color:var(--gold);
      font-size:0.72rem;
      letter-spacing:0.1em;
      text-transform:uppercase;
      cursor:pointer;
      transition:all 0.2s;
    }
    .gmaps-ph-btn:hover{
      background:rgba(196,160,90,0.1);
      border-color:var(--gold);
    }
    @media(max-width:1100px){
      .cookie-inner{flex-direction:column;gap:1.25rem;align-items:flex-start}
      .cookie-actions{width:100%;justify-content:stretch}
      .cookie-btn{flex:1;text-align:center}
      .gmaps-placeholder{height:260px}
    }
