
:root{--primary:#005f86;--primary-dark:#003f5f;--accent:#00a3d8;--accent-soft:#dff3fa;--ink:#173244;--muted:#5b6d78;--bg:#f2f8fb;--card:#ffffff;--line:#d7e6ee;--shadow:0 18px 45px rgba(0,63,95,.14);--radius:22px;--max:1180px;}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:#fff;line-height:1.62} img{max-width:100%;display:block} a{color:inherit}:target{scroll-margin-top:96px}.site-header{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:66px;padding:14px clamp(18px,4vw,54px);background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(0,0,0,.06)}.brand{text-decoration:none;font-weight:800;line-height:1.05;color:var(--primary-dark)}.brand span{font-weight:500;color:var(--muted);font-size:.84rem}.site-header nav{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;scrollbar-width:none}.site-header nav::-webkit-scrollbar{display:none}.site-header nav a{text-decoration:none;font-size:1rem;font-weight:800;padding:9px 13px;border-radius:999px;color:var(--primary-dark);white-space:nowrap}.site-header nav a:hover{background:var(--accent-soft)}.hero{min-height:720px;display:flex;align-items:center;position:relative;background-image:url('assets/img/hero-frankfurt-oder.jpg');background-size:cover;background-position:center;isolation:isolate}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,63,95,.86),rgba(0,95,134,.58) 50%,rgba(0,95,134,.14));z-index:-1}.hero-content{width:min(860px,90vw);margin-left:clamp(20px,7vw,95px);padding-top:90px;color:#fff}.partner-strip{display:inline-block;background:rgba(255,255,255,.96);color:var(--primary-dark);border-radius:22px;padding:16px 18px;margin:0 0 28px;box-shadow:0 14px 36px rgba(0,63,95,.18);max-width:min(780px,100%)}.partner-strip>span{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;font-weight:800;color:var(--muted);margin:0 0 10px}.partner-logos{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.partner-logo{display:block;object-fit:contain;background:#fff;border-radius:10px}.enertrag-logo{height:68px;max-width:300px;background:#fff;padding:8px 10px;border:1px solid var(--line)}.stadtwerke-logo{height:64px;width:auto;padding:6px 10px;background:#fff}.coop-label{font-size:.9rem;color:var(--muted);white-space:nowrap}.eyebrow,.section-kicker{
  color:#00A3D8;margin:0 0 12px}.hero h1{font-size:clamp(2.55rem,7vw,5.8rem);line-height:.96;margin:0 0 24px;letter-spacing:-.055em}.lead{font-size:clamp(1.1rem,2vw,1.38rem);max-width:760px}.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}.button{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:13px 20px;text-decoration:none;font-weight:800}.button.primary{background:#fff;color:var(--primary-dark);border:2px solid #fff}.button.secondary{background:var(--accent);border-color:var(--accent);color:#003f5f}.section{padding:92px 0}.anchor-section{scroll-margin-top:82px}.compact{padding-top:50px}.soft-bg{background:var(--bg)}.container{width:min(var(--max),90vw);margin:0 auto}.narrow{width:min(960px,90vw)}.two-col{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.8fr);gap:42px;align-items:start}h2{font-size:clamp(2rem,4vw,3.4rem);line-height:1.06;margin:0 0 24px;letter-spacing:-.035em}h3{line-height:1.15;margin:.2rem 0 .6rem}.intro{font-size:1.12rem;color:var(--muted);max-width:900px}.key-points{list-style:none;padding:0;margin:0 0 28px;display:grid;gap:12px}.key-points li{background:var(--bg);border-left:5px solid var(--accent);border-radius:14px;padding:14px 16px 14px 18px;font-weight:800;color:var(--primary-dark)}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow)}.highlight-card{position:sticky;top:104px}.check-list{padding:0;margin:18px 0 0;list-style:none}.check-list li{position:relative;padding-left:28px;margin:12px 0}.check-list li:before{content:'✓';position:absolute;left:0;color:var(--primary);font-weight:900}.media-block{margin-top:54px}.media-block figure,.inline-figure,.figure-grid figure,.photo-grid figure{margin:0;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}.media-block img{width:100%;height:auto;background:#fff;object-fit:contain}.media-block figcaption,.inline-figure figcaption,.figure-grid figcaption,.photo-grid figcaption{font-size:.86rem;color:var(--muted);padding:10px 14px}.component-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:28px}.component-grid article{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px}.component-grid span,.timeline span{display:inline-flex;width:36px;height:36px;border-radius:999px;align-items:center;justify-content:center;background:var(--primary);color:#fff;font-weight:900;margin-bottom:10px}.accordion{display:grid;gap:16px;margin-top:28px}details{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden}summary{cursor:pointer;padding:22px 24px;font-weight:900;font-size:1.1rem;color:var(--primary-dark);list-style:none}summary::-webkit-details-marker{display:none}summary:after{content:'+';float:right;font-size:1.5rem;line-height:1}details[open] summary:after{content:'–'}.details-body{border-top:1px solid var(--line);padding:24px;overflow-wrap:anywhere}.inline-figure{margin:22px 0;background:#fff;overflow:auto}.inline-figure img,.media-block figure img{max-height:78vh;object-fit:contain;background:#fff}.figure-grid,.photo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin:22px 0}.photo-grid{grid-template-columns:repeat(4,1fr)}.figure-grid img,.photo-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;background:#fff}.figure-grid img{padding:12px;object-fit:contain}.download-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:28px}.download-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px;text-decoration:none;min-height:190px;display:flex;flex-direction:column;gap:12px;transition:.2s ease}.download-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.download-card span{width:54px;height:54px;border-radius:15px;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900}.download-card strong{font-size:1.15rem}.download-card em{color:var(--muted);font-style:normal;margin-top:auto}.timeline{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.timeline article{border-top:4px solid var(--primary);background:var(--bg);border-radius:18px;padding:24px}.site-footer{padding:42px 0;background:var(--primary-dark);color:#fff}.footer-grid{display:flex;justify-content:space-between;gap:30px}.site-footer p{color:rgba(255,255,255,.74);margin:.4rem 0 0}.site-footer nav{display:flex;gap:20px;align-items:start;flex-wrap:wrap}.site-footer a{color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.45)}.footer-logos{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:18px}.footer-logos img{height:40px;width:auto;object-fit:contain;background:#fff;border-radius:8px;padding:4px}.footer-logos img:first-child{height:52px;background:#fff;padding:8px 10px;border:1px solid var(--line)}
@media(max-width:900px){.two-col,.component-grid,.download-grid,.timeline,.photo-grid{grid-template-columns:1fr}.figure-grid{grid-template-columns:1fr}.highlight-card{position:static}.section{padding:66px 0}.footer-grid{display:block}.site-footer nav{margin-top:20px}.component-grid article{padding:18px}}
@media(max-width:760px){body{font-size:16px;line-height:1.55}.site-header{position:sticky;display:block;padding:10px 14px;background:rgba(255,255,255,.98)}.brand{display:block;margin-bottom:8px;font-size:.98rem}.brand span{display:inline;font-size:.78rem;margin-left:5px}.site-header nav{display:flex;flex-wrap:nowrap;justify-content:flex-start;gap:8px;margin:0 -14px;padding:0 14px 2px}.site-header nav a{font-size:.9rem;font-weight:800;padding:8px 10px;background:var(--bg)}.hero{min-height:auto;padding:108px 0 56px;background-position:center top}.hero-overlay{background:linear-gradient(180deg,rgba(0,63,95,.92),rgba(0,95,134,.75) 70%,rgba(0,95,134,.35))}.hero-content{width:min(92vw,680px);margin:0 auto;padding-top:0}.partner-strip{width:100%;border-radius:16px;margin-bottom:22px;padding:14px}.partner-logos{justify-content:flex-start;gap:10px}.partner-logo{max-width:45%}.enertrag-logo{height:52px;max-width:100%}.stadtwerke-logo{height:48px}.coop-label{width:100%;font-size:.82rem}.lead,.intro{font-size:1rem}.hero-actions{gap:10px}.button{width:100%;padding:12px 16px}.section{padding:54px 0}.container,.narrow{width:min(92vw,var(--max))}.card{padding:20px;border-radius:18px}.key-points li{padding:12px 14px}summary{padding:18px 18px;font-size:1rem}.details-body{padding:18px}.inline-figure{margin:18px -6px;border-radius:14px}.inline-figure img{width:100%;max-height:none;padding:8px;object-fit:contain}.media-block{margin-top:32px}.figure-grid,.photo-grid{gap:12px}.figure-grid img,.photo-grid img{aspect-ratio:auto;height:auto;min-height:0;object-fit:contain;padding:8px}.download-card{min-height:auto}.footer-grid{display:block}.site-footer nav{margin-top:18px;gap:14px}}
@media(max-width:420px){.enertrag-logo{height:44px}.stadtwerke-logo{height:42px}.hero h1{letter-spacing:-.04em}.site-header nav a{font-size:.78rem;padding:7px 9px}}


/* Version 5 updates */
.hero-content{
  position:relative;
}
.hero-partners{
  position:absolute;
  top:110px;
  right:clamp(20px,5vw,70px);
  margin:0;
  z-index:3;
  max-width:min(460px,42vw);
}
.hero .hero-content{
  width:100%;
  margin-left:0;
  padding-left:clamp(20px,7vw,95px);
  padding-right:clamp(20px,7vw,95px);
}
.hero .lead,
.hero .hero-actions{
  max-width:760px;
}
.site-header nav a{
  font-size:1.02rem;
  font-weight:800;
}
.component-grid{
  margin:28px 0 34px;
}
@media(max-width:900px){
  .hero-partners{
    position:static;
    max-width:100%;
    margin:0 0 24px 0;
  }
  .hero .hero-content{
    padding-left:clamp(18px,4vw,32px);
    padding-right:clamp(18px,4vw,32px);
  }
}
@media(max-width:760px){
  .site-header nav a{
    font-size:.9rem;
    font-weight:800;
  }
}


/* Version 7: Vorteile section clean layout */
#vorteile .container{width:min(var(--max),90vw)}
#vorteile h2{margin-bottom:30px}
#vorteile .accordion{width:100%}
.wide-figure{margin:26px 0;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}
.wide-figure img{width:100%;height:auto;object-fit:contain;background:#fff;padding:8px}
.map-figure{max-width:760px;margin:26px auto}
.map-figure img{width:100%;height:auto;object-fit:contain;background:#fff}
#vorteile .details-body p{max-width:900px}
@media(max-width:760px){#vorteile .container{width:min(92vw,var(--max))}.wide-figure{margin:20px -6px;border-radius:14px}.wide-figure img{padding:6px}}


/* Version 8: visualisation carousel */
.visual-section{
  overflow:hidden;
}
.carousel{
  position:relative;
  margin-top:30px;
}
.carousel-track{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:calc((100% - 36px) / 3);
  gap:18px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  padding:4px 2px 18px;
  scrollbar-width:thin;
}
.carousel-card{
  margin:0;
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  overflow:hidden;
  scroll-snap-align:start;
  box-shadow:0 12px 28px rgba(0,63,95,.08);
}
.carousel-card img{
  width:100%;
  aspect-ratio:16/10;
  object-fit:cover;
  background:#fff;
}
.carousel-card figcaption{
  padding:12px 14px;
  font-size:.92rem;
  font-weight:800;
  color:var(--primary-dark);
}
.carousel-btn{
  position:absolute;
  top:42%;
  transform:translateY(-50%);
  z-index:5;
  width:44px;
  height:44px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#fff;
  color:var(--primary-dark);
  font-size:2rem;
  line-height:1;
  cursor:pointer;
  box-shadow:0 12px 30px rgba(0,63,95,.18);
}
.carousel-prev{left:-18px}
.carousel-next{right:-18px}
.carousel-btn:hover{
  background:var(--primary);
  color:#fff;
}
@media(max-width:980px){
  .carousel-track{
    grid-auto-columns:calc((100% - 18px) / 2);
  }
}
@media(max-width:640px){
  .carousel-track{
    grid-auto-columns:88%;
    gap:14px;
  }
  .carousel-btn{
    display:none;
  }
  .carousel-card img{
    aspect-ratio:4/3;
  }
}


/* Version 9 cleanup */
#was-ist-das h2,
#vorteile h2,
#infopaket h2,
.soft-bg h2{
  margin-top:0;
}
#vorteile .container{
  width:min(var(--max),90vw);
}
#vorteile h2{
  margin-bottom:30px;
}
#vorteile .accordion{
  width:100%;
}
#vorteile .details-body p,
#vorteile .details-body ul{
  max-width:900px;
}
.wide-figure{
  margin:26px 0;
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  overflow:hidden;
}
.wide-figure img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
  background:#fff;
  padding:8px;
}
.compact-chart{
  max-width:720px;
}
.compact-chart img{
  max-height:520px;
  object-fit:contain;
}
.map-figure{
  max-width:760px;
  margin:26px auto;
}
.map-figure img{
  width:100%;
  height:auto;
  object-fit:contain;
  background:#fff;
}
.visual-section-only{
  padding:10px 0 34px;
  background:var(--bg);
}
.visual-section-only .carousel{
  margin-top:0;
}
.visual-section-only .carousel-card figcaption{
  display:none;
}
.visual-section-only .carousel-card{
  background:#fff;
}
#infopaket.section{
  padding-bottom:36px;
}
@media(max-width:760px){
  #vorteile .container{
    width:min(92vw,var(--max));
  }
  .wide-figure{
    margin:20px -6px;
    border-radius:14px;
  }
  .wide-figure img{
    padding:6px;
  }
  .compact-chart{
    max-width:none;
  }
  .visual-section-only{
    padding:4px 0 28px;
  }
}


/* v10 logo optimization */
.hero-logos,
.partner-logos,
.hero-partners{
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:16px;
}

@media (max-width: 768px){
    .hero-logos,
    .partner-logos,
    .hero-partners{
        align-items:center;
        gap:12px;
    }

    .hero img,
    .hero-logos img,
    .partner-logos img{
        max-width:140px;
        height:auto;
    }

    .accordion details,
    .carousel-card,
    figure{
        overflow-x:hidden;
    }

    figure img,
    .inline-figure img,
    .wide-figure img,
    .map-figure img{
        width:100%;
        height:auto;
    }

    .container{
        padding-left:16px;
        padding-right:16px;
    }
}


/* Version 11 text update and mobile refinement */
.eyebrow{color:#00A3D8;}
.section-kicker{
  color:#00A3D8;
  font-size:.88rem;
  letter-spacing:.08em;
  margin-bottom:12px;
}
.content-list{
  margin:10px 0 24px 1.2rem;
  padding:0;
}
.content-list li{
  margin:8px 0;
  padding-left:4px;
}
.details-body h3,
.container > h3{
  color:var(--primary-dark);
  font-size:1.05rem;
  margin:26px 0 8px;
}
.download-grid{
  grid-template-columns:repeat(3,1fr);
}
@media(max-width:900px){
  .download-grid{grid-template-columns:1fr;}
  .two-col{grid-template-columns:1fr;}
}
@media(max-width:760px){
  .section-kicker{font-size:.88rem;}
  .details-body h3,.container > h3{font-size:1rem;}
  .content-list{margin-left:1rem;}
}


/* Version 12 legal pages and component cards */
.legal-page{
  padding:140px 0 80px;
  background:#fff;
}
.legal-container{
  max-width:900px;
}
.legal-container h1{
  font-size:clamp(2.2rem,5vw,4rem);
  line-height:1.05;
  margin:0 0 32px;
  color:var(--primary-dark);
}
.legal-container h2{
  font-size:1.35rem;
  margin:34px 0 10px;
  letter-spacing:0;
}
.legal-container p,
.legal-container li{
  color:var(--ink);
}
.legal-container a{
  color:var(--primary);
}
@media(max-width:760px){
  .legal-page{
    padding:42px 0 56px;
  }
  .legal-container h1{
    font-size:2.1rem;
  }
}


/* Version 14: restore original v3 accent color */
.eyebrow,
.section-kicker{
    color:#00A3D8 !important;
}


/* Version 16: hero headline sizing */
.hero h1{
  max-width:1150px;
}


/* Version 17 updates */
.nav-logo-link{
  display:flex;
  align-items:center;
  gap:14px;
  text-decoration:none;
  flex:0 0 auto;
}
.nav-logo-link img{
  display:block;
  height:42px;
  width:auto;
  object-fit:contain;
  background:#fff;
}
.nav-logo-link img:first-child{
  height:44px;
}
.site-header{
  align-items:center;
}
.hero-partners,
.partner-strip.hero-partners{
  display:none !important;
}
.visual-section-only .carousel-card figcaption,
.carousel-card figcaption{
  display:block !important;
  padding:10px 14px;
  font-size:.88rem;
  font-weight:800;
  color:var(--primary-dark);
  background:#fff;
}
@media(max-width:900px){
  .site-header{
    align-items:flex-start;
  }
  .nav-logo-link{
    width:100%;
    gap:10px;
    margin-bottom:8px;
  }
  .nav-logo-link img{
    height:34px;
    max-width:46%;
  }
  .nav-logo-link img:first-child{
    height:36px;
  }
}
@media(max-width:420px){
  .nav-logo-link img{
    height:30px;
  }
  .nav-logo-link img:first-child{
    height:32px;
  }
}


/* Version 18 */
.nav-project-brand{
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:nowrap;
}

.nav-project-label{
  font-size:.78rem;
  font-weight:700;
  color:var(--primary-dark);
  white-space:nowrap;
  opacity:.85;
}

.section-kicker{
  font-size:.88rem !important;
}

@media(max-width:900px){
  .nav-project-brand{
    flex-direction:column;
    align-items:flex-start;
    gap:6px;
    width:100%;
  }

  .nav-project-label{
    font-size:.72rem;
  }

  .section-kicker{
    font-size:.82rem !important;
  }
}


/* Version 19 updates */
.nav-project-brand,
.nav-project-label{
  display:none !important;
}
.nav-logo-link{
  display:flex;
  align-items:center;
  gap:18px;
  text-decoration:none;
  flex:0 0 auto;
}
.nav-logo-link img{
  display:block;
  width:auto;
  object-fit:contain;
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
  padding:0 !important;
  border-radius:0 !important;
}
.nav-logo-link img:first-child{
  height:44px;
}
.nav-logo-link img:last-child{
  height:46px;
}
.highlight-card h3{
  line-height:1.08;
  margin-bottom:18px;
}
.hero{
  background-position:center center;
}
.hero-overlay{
  background:linear-gradient(90deg,rgba(0,63,95,.88),rgba(0,95,134,.62) 52%,rgba(0,95,134,.18));
}
@media(max-width:900px){
  .nav-logo-link{
    width:100%;
    gap:14px;
    margin-bottom:8px;
    justify-content:flex-start;
  }
  .nav-logo-link img:first-child{
    height:34px;
    max-width:48%;
  }
  .nav-logo-link img:last-child{
    height:36px;
    max-width:48%;
  }
}
@media(max-width:760px){
  .hero{
    background-position:center center;
  }
  .hero-overlay{
    background:linear-gradient(180deg,rgba(0,63,95,.92),rgba(0,95,134,.78) 72%,rgba(0,95,134,.42));
  }
  .highlight-card h3{
    font-size:1.25rem;
  }
}
@media(max-width:420px){
  .nav-logo-link img:first-child{
    height:30px;
  }
  .nav-logo-link img:last-child{
    height:32px;
  }
}


/* Version 20 final copy */
.component-grid-six{grid-template-columns:repeat(3,1fr);}
@media(max-width:900px){.component-grid-six{grid-template-columns:1fr;}}
.details-body ul{margin:10px 0 24px 1.2rem;padding:0;}
.details-body li{margin:8px 0;}


/* Version 21: minimal footer */
.site-footer.footer-minimal{
  background:var(--primary-dark);
  color:#fff;
  padding:34px 0;
  text-align:center;
}
.footer-minimal p{
  margin:0 0 14px;
  color:rgba(255,255,255,.82);
  font-size:.95rem;
  line-height:1.6;
}
.footer-minimal .footer-links{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:10px;
  color:#fff;
}
.footer-minimal .footer-links a{
  color:#fff;
  text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.45);
}
.footer-minimal .footer-links span{
  color:rgba(255,255,255,.55);
}
.footer-minimal .footer-links a:hover{
  border-bottom-color:#fff;
}
.highlight-card h3{
  white-space:normal;
}


/* Version 23: Consent Manager + footer link button */
.visually-hidden{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
.footer-link-button{
  background:none;
  border:none;
  padding:0;
  margin:0;
  font:inherit;
  color:#fff;
  text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.45);
  cursor:pointer;
}
.footer-link-button:hover,
.footer-link-button:focus-visible{
  border-bottom-color:#fff;
}

.consent-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  padding:12px 20px;
  font-weight:800;
  font-size:.94rem;
  cursor:pointer;
  border:2px solid transparent;
  white-space:nowrap;
}
.consent-btn-primary{
  background:var(--primary);
  border-color:var(--primary);
  color:#fff;
}
.consent-btn-primary:hover,
.consent-btn-primary:focus-visible{
  background:var(--primary-dark);
  border-color:var(--primary-dark);
}
.consent-btn-secondary{
  background:#fff;
  border-color:var(--line);
  color:var(--primary-dark);
}
.consent-btn-secondary:hover,
.consent-btn-secondary:focus-visible{
  border-color:var(--primary);
}
.consent-btn:focus-visible,
.footer-link-button:focus-visible,
.consent-dialog-close:focus-visible,
.consent-switch input:focus-visible + .consent-switch-track{
  outline:3px solid var(--accent);
  outline-offset:2px;
}

.consent-banner{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:100;
  background:#fff;
  border-top:1px solid var(--line);
  box-shadow:0 -12px 34px rgba(0,63,95,.18);
  padding:22px clamp(18px,4vw,40px);
}
.consent-banner-inner{
  max-width:var(--max);
  margin:0 auto;
  display:flex;
  align-items:center;
  gap:28px;
  flex-wrap:wrap;
}
.consent-banner-text{
  flex:1 1 420px;
  min-width:260px;
}
.consent-banner-text h2{
  font-size:1.15rem;
  margin:0 0 8px;
  color:var(--primary-dark);
}
.consent-banner-text p{
  margin:0;
  color:var(--muted);
  font-size:.92rem;
  line-height:1.55;
}
.consent-banner-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  flex:0 0 auto;
}

.consent-dialog-backdrop{
  position:fixed;
  inset:0;
  z-index:110;
  background:rgba(9,30,44,.55);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
}
.consent-dialog-backdrop[hidden]{
  display:none;
}
.consent-dialog{
  position:relative;
  background:#fff;
  border-radius:var(--radius);
  max-width:520px;
  width:100%;
  max-height:88vh;
  overflow-y:auto;
  padding:32px;
  box-shadow:var(--shadow);
}
.consent-dialog h2{
  margin:0 0 10px;
  font-size:1.5rem;
  color:var(--primary-dark);
}
.consent-dialog > p{
  margin:0 0 22px;
  color:var(--muted);
}
.consent-dialog-close{
  position:absolute;
  top:16px;
  right:16px;
  width:36px;
  height:36px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#fff;
  color:var(--primary-dark);
  font-size:1.3rem;
  line-height:1;
  cursor:pointer;
}
.consent-dialog-close:hover{
  background:var(--accent-soft);
}
.consent-option{
  border-top:1px solid var(--line);
  padding:18px 0;
}
.consent-option:first-of-type{
  border-top:none;
  padding-top:0;
}
.consent-option-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:8px;
}
.consent-option-label{
  font-weight:800;
  color:var(--primary-dark);
  font-size:1.02rem;
}
.consent-option p{
  margin:0;
  color:var(--muted);
  font-size:.92rem;
  line-height:1.55;
}
.consent-status-badge{
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.03em;
  text-transform:uppercase;
  color:var(--primary);
  background:var(--accent-soft);
  border-radius:999px;
  padding:5px 12px;
  white-space:nowrap;
}
.consent-switch{
  position:relative;
  display:inline-flex;
  align-items:center;
  width:46px;
  height:26px;
  cursor:pointer;
  flex:0 0 auto;
}
.consent-switch input{
  position:absolute;
  opacity:0;
  width:100%;
  height:100%;
  margin:0;
  cursor:pointer;
}
.consent-switch-track{
  position:absolute;
  inset:0;
  background:var(--line);
  border-radius:999px;
  transition:background .18s ease;
}
.consent-switch-track:before{
  content:'';
  position:absolute;
  top:3px;
  left:3px;
  width:20px;
  height:20px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 1px 4px rgba(0,63,95,.35);
  transition:transform .18s ease;
}
.consent-switch input:checked + .consent-switch-track{
  background:var(--primary);
}
.consent-switch input:checked + .consent-switch-track:before{
  transform:translateX(20px);
}
.consent-dialog-actions{
  display:flex;
  justify-content:flex-end;
  gap:12px;
  margin-top:24px;
  flex-wrap:wrap;
}
@media(max-width:640px){
  .consent-banner{
    padding:18px 16px calc(18px + env(safe-area-inset-bottom));
  }
  .consent-banner-inner{
    gap:16px;
  }
  .consent-banner-actions{
    width:100%;
  }
  .consent-banner-actions .consent-btn{
    flex:1 1 auto;
  }
  .consent-dialog{
    padding:24px 20px;
    max-height:82vh;
  }
  .consent-dialog-actions{
    flex-direction:column-reverse;
  }
  .consent-dialog-actions .consent-btn{
    width:100%;
  }
}


/* Version 24: hover/focus polish */
.button{
  transition:background-color .18s ease,color .18s ease,border-color .18s ease,transform .18s ease;
}
.button.primary:hover,
.button.primary:focus-visible{
  background:var(--accent-soft);
  border-color:var(--accent-soft);
}
.button.secondary:hover,
.button.secondary:focus-visible{
  background:var(--primary-dark);
  border-color:var(--primary-dark);
  color:#fff;
}
summary{
  transition:background-color .18s ease;
}
summary:hover{
  background:var(--bg);
}
.component-grid article,
.timeline article{
  transition:box-shadow .18s ease,transform .18s ease;
}
.component-grid article:hover,
.timeline article:hover{
  box-shadow:var(--shadow);
  transform:translateY(-2px);
}
a:focus-visible,
button:focus-visible,
summary:focus-visible,
.button:focus-visible,
.carousel-btn:focus-visible,
.download-card:focus-visible{
  outline:3px solid var(--accent);
  outline-offset:2px;
}
.site-footer a:focus-visible{
  outline:3px solid var(--accent);
  outline-offset:3px;
}
