/* ==========================================================================
   Energieberatung Eming — warm, local, clear
   ========================================================================== */

:root {
    --bg: #f5f3ed;
    --surface: #ffffff;
    --surface-tint: #e8f0f6;
    --text-1: #20251f;
    --text-2: #50584f;
    --text-3: #61685f;
    --accent: #2f5f85;
    --accent-deep: #1e405c;
    --accent-light: #e4edf4;
    --gold: #b27a52;
    --border: #d9d8cf;
    --border-dark: #c5c6bb;
    --nav-h: 74px;
    --rail-h: 3.4rem;
    --radius: 18px;
    --radius-md: 13px;
    --radius-sm: 9px;
    --shadow-soft: 0 22px 45px -28px rgba(30,64,92,.4);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--nav-h) + 1.5rem); }
body { margin: 0; background: var(--bg); color: var(--text-2); font-family: "DM Sans", system-ui, sans-serif; font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased; text-wrap: pretty; }
body:has(#mobile-overlay.is-open) { overflow: hidden; }
a { color: inherit; }
h1, h2, h3, h4, .font-display { font-family: "Hanken Grotesk", system-ui, sans-serif; color: var(--text-1); }
h1, h2, h3, h4 { margin-top: 0; line-height: 1.06; letter-spacing: -0.045em; text-wrap: balance; }
.font-mono { font-family: "DM Mono", monospace; }
.bg-parchment { background-color: var(--bg); }
.bg-forest { background-color: var(--accent); }
.bg-surface { background-color: var(--surface); }
.text-forest { color: var(--accent); }
.text-gold { color: var(--gold); }
.border-rule { border-color: var(--border); }

/* Shared header ---------------------------------------------------------- */
.site-brand-logo { display: block; width: 46px; height: 36px; flex-shrink: 0; object-fit: contain; }
@media (max-width: 380px) {
    .header-glass a[aria-label="Energieberatung Eming – Startseite"] { gap: .5rem; }
    .header-glass a[aria-label="Energieberatung Eming – Startseite"] > span { font-size: .95rem; }
}
.header-glass { height: var(--nav-h); background: rgba(245,243,237,.9); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); box-shadow: inset 0 -1px 0 rgba(217,216,207,.75); }
.nav-dropdown { position: relative; }
.nav-dropdown-menu { position: absolute; z-index: 10; top: 100%; left: 50%; min-width: 14rem; padding: .65rem .55rem .7rem; border: 1px solid var(--border); border-top: 0; border-radius: 0 0 var(--radius-sm) var(--radius-sm); background: rgba(245,243,237,.98); box-shadow: 0 18px 28px -24px rgba(30,64,92,.55); opacity: 0; pointer-events: none; transform: translate(-50%, -.35rem); transition: opacity .2s cubic-bezier(.16,1,.3,1), transform .2s cubic-bezier(.16,1,.3,1); }
.nav-dropdown:hover .nav-dropdown-menu, .nav-dropdown:focus-within .nav-dropdown-menu { opacity: 1; pointer-events: auto; transform: translate(-50%, 0); }
.nav-dropdown-menu a { display: block; padding: .65rem .8rem; border-bottom: 1px solid rgba(217,216,207,.75); color: var(--text-2); font-size: .8rem; font-weight: 600; line-height: 1.25; text-decoration: none; transition: color .2s, background-color .2s; }
.nav-dropdown-menu a:last-child { border-bottom: 0; }
.nav-dropdown-menu a:hover, .nav-dropdown-menu a:focus-visible { outline: none; background: var(--accent-light); color: var(--accent); }
.nav-link { position: relative; display: inline-flex; align-items: center; padding: 1.6rem .78rem; color: var(--text-2); font-size: .83rem; font-weight: 600; text-decoration: none; transition: color .25s cubic-bezier(.16,1,.3,1); white-space: nowrap; }
.nav-link::after { position: absolute; right: .78rem; bottom: 1.25rem; left: .78rem; height: 1px; background: var(--accent); content: ""; transform: scaleX(0); transform-origin: left; transition: transform .25s cubic-bezier(.16,1,.3,1); }
.nav-link:hover, .nav-active { color: var(--accent) !important; }
.nav-link:hover::after, .nav-active::after { transform: scaleX(1); }
.nav-phone { white-space: nowrap; text-decoration: none; }
.header-contact { padding: .62rem 1.2rem; border-radius: 100px; color: #fff; background: var(--accent); font-family: "Hanken Grotesk", system-ui, sans-serif; font-size: .86rem; font-weight: 600; text-decoration: none; transition: transform .25s cubic-bezier(.16,1,.3,1), background-color .25s; }
.header-contact:hover { background: var(--accent-deep); transform: translateY(-1px); }
.mobile-menu-trigger { display: grid; width: 2.6rem; height: 2.6rem; place-items: center; border: 1px solid var(--border); border-radius: 50%; background: transparent; color: var(--text-1); cursor: pointer; transition: background-color .2s, transform .2s; }
.mobile-menu-trigger:hover { background: #fff; }
.mobile-menu-trigger:active, .btn-primary:active, .btn-secondary:active, .btn-quiet:active, .btn-light:active, .review-control:active { transform: translateY(1px) scale(.98); }
#mobile-overlay { display: none; flex-direction: column; overflow-y: auto; overscroll-behavior: contain; }
#mobile-overlay > * { flex-shrink: 0; }
#mobile-overlay.is-open { display: flex; }
.mobile-nav-link { display: block; padding: .9rem 0; border-bottom: 1px solid var(--border); color: var(--text-1); font-family: "Hanken Grotesk", sans-serif; font-weight: 500; text-decoration: none; }
.mobile-nav-active { color: var(--accent); }

/* Shared small components ------------------------------------------------ */
.section-label, .eyebrow { margin: 0 0 .9rem; color: var(--text-3); font-size: .8rem; font-weight: 500; letter-spacing: 0; text-transform: none; }
.eyebrow { display: block; }
.eyebrow span { display: none; }
.eyebrow-light { color: rgba(255,255,255,.55); }
.btn-primary, .btn-secondary, .btn-quiet, .btn-light { display: inline-flex; align-items: center; justify-content: center; gap: .6rem; min-height: 3.25rem; line-height: 1.4; text-align: center; border: 1px solid var(--accent); border-radius: 100px; padding: .95rem 1.65rem; font-family: "Hanken Grotesk", system-ui, sans-serif; font-size: .95rem; font-weight: 600; letter-spacing: -.005em; text-decoration: none; transition: transform .2s ease-out, background-color .2s, color .2s, box-shadow .2s; }
.btn-primary { background: var(--accent); color: #fff; box-shadow: 0 10px 24px -14px rgba(30,64,92,.6); }
.btn-primary:hover { background: var(--accent-deep); transform: translateY(-1px); box-shadow: 0 16px 30px -16px rgba(30,64,92,.65); }
.btn-secondary, .btn-quiet { background: transparent; color: var(--accent); }
.btn-secondary:hover, .btn-quiet:hover { background: var(--accent-light); transform: translateY(-1px); }
.card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md); }
.info-box { border-left: 3px solid var(--accent); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; padding: 1rem 1.25rem; background: var(--accent-light); }
.warn-box { border-left: 3px solid var(--gold); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; padding: 1rem 1.25rem; background: #f7efe8; }
.alert-box { border-left: 3px solid #a9493f; border-radius: 0 var(--radius-sm) var(--radius-sm) 0; padding: 1rem 1.25rem; background: #fbefec; }

/* Shared content hierarchy and interaction states. */
.content-page { padding-block: clamp(3rem, 6vw, 4rem); overflow-wrap: anywhere; hyphens: auto; }
.content-page .grid > * { min-width: 0; }
.page-intro, .pv-intro { margin-bottom: 3rem; }
.content-page h1 { font-size: clamp(2rem, 4vw, 3rem); font-weight: 600; line-height: 1.1; }
.content-page h2 { line-height: 1.25; }
.content-page h3 { line-height: 1.3; }
.content-page p.text-xs, .content-page div.text-xs { font-size: .875rem; line-height: 1.6; }
.content-page .text-ink-3 a { text-underline-offset: .2em; }
.isfp-overview { display: grid; grid-template-columns: 1.1fr .9fr; gap: 2rem; align-items: start; }
.isfp-funding { margin-top: 2rem; padding-top: 1.75rem; border-top: 1px solid var(--border); }
.isfp-funding > p { max-width: 75ch; }
@media (max-width: 767px) { .isfp-overview { grid-template-columns: 1fr; gap: 1.25rem; } }
.page-intro h1 { margin-bottom: 0; }
.page-intro h1 + p { margin-top: 1rem; }
.video-section-heading h2 { font-size: 1.5rem; font-weight: 600; line-height: 1.25; }
:where(a, button, input, textarea, select):focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.site-footer a:focus-visible, .about-band a:focus-visible, .contact-rail a:focus-visible { outline-color: var(--surface); }


/* Reference list — two-column, scannable rows for regulatory content */
.ref-list { margin: 0; }
.ref-item { display: grid; grid-template-columns: minmax(0, 15rem) minmax(0, 1fr); column-gap: clamp(1.5rem, 4vw, 3rem); row-gap: .5rem; align-items: start; padding: 1.35rem 0; border-bottom: 1px solid var(--border); }
.ref-item dt { margin: 0; color: var(--text-1); font-family: "Hanken Grotesk", system-ui, sans-serif; font-size: 1rem; font-weight: 600; line-height: 1.35; letter-spacing: -.01em; }
.ref-item dd { max-width: 54ch; margin: 0; color: var(--text-2); font-size: .95rem; line-height: 1.65; }
.ref-flag { display: block; width: fit-content; margin: 0 0 .45rem; padding: .12rem .6rem; border-radius: 100px; background: #f1e4d6; color: #8a5a38; font-size: .72rem; font-weight: 600; letter-spacing: 0; }
@media (max-width: 680px) { .ref-item { grid-template-columns: 1fr; row-gap: .35rem; } }

/* Start page ------------------------------------------------------------- */
.hero-local { position: relative; display: flex; align-items: center; min-height: min(780px, calc(100dvh - var(--nav-h) - var(--rail-h))); overflow: hidden; padding: 5.5rem 0 4.5rem; background: radial-gradient(120% 90% at 85% 8%, rgba(178,122,82,.09), rgba(178,122,82,0) 42%), radial-gradient(90% 80% at 12% 100%, rgba(47,95,133,.06), rgba(47,95,133,0) 46%); }
.hero-local::before { position: absolute; z-index: 0; top: -9rem; right: -8rem; width: 40rem; height: 40rem; border: 1px solid rgba(47,95,133,.12); border-radius: 50%; content: ""; }
.hero-local > div { position: relative; z-index: 1; }
@media (min-width: 1024px) {
    /* Farbverlauf über Hero und Aktuell-Box durchziehen, nicht an der Box enden lassen. */
    .hero-stack { display: flex; flex-direction: column; min-height: calc(100dvh - var(--nav-h) - var(--rail-h)); background: radial-gradient(120% 90% at 85% 8%, rgba(178,122,82,.09), rgba(178,122,82,0) 42%), radial-gradient(90% 80% at 12% 100%, rgba(47,95,133,.06), rgba(47,95,133,0) 46%); }
    .hero-stack .hero-local { flex: 1; min-height: 0; padding: 2rem 0 1rem; background: none; }
    .hero-stack .hero-stack__info { width: 100%; padding-top: 0; padding-bottom: 1.5rem; }
}
.hero-copy h1 { max-width: 700px; margin: 1.2rem 0 1.6rem; font-size: clamp(3.25rem, 6vw, 5.85rem); font-weight: 600; }
.hero-intro { max-width: 35rem; margin: 0 0 2.2rem; color: var(--text-2); font-size: 1.12rem; line-height: 1.72; }
.hero-meta { margin: 3.75rem 0 0; padding-top: 1.35rem; border-top: 1px solid var(--border); color: var(--text-2); font-size: .95rem; }
.hero-portrait { position: relative; padding: 0 1.65rem 2.4rem 0; }
.hero-portrait::before { position: absolute; z-index: 0; right: .35rem; bottom: 1rem; width: 9rem; height: 9rem; border-radius: var(--radius); background: var(--accent-light); content: ""; }
.portrait-frame { position: relative; z-index: 1; aspect-ratio: 4/4.7; overflow: hidden; border-radius: var(--radius); background: #dfe5dd; box-shadow: var(--shadow-soft); }
.portrait-frame img { width: 100%; height: 100%; object-fit: cover; object-position: top; filter: saturate(1.02) contrast(1.02); }
.portrait-note { position: absolute; z-index: 3; right: -1.5rem; bottom: 0; display: flex; align-items: center; gap: .8rem; padding: .7rem 1.05rem .7rem .95rem; border-radius: 100px; background: var(--surface); box-shadow: 0 12px 28px -16px rgba(30,64,92,.4); }
.portrait-note p { margin: 0; color: var(--text-1); font-family: "Hanken Grotesk", sans-serif; font-size: .9rem; font-weight: 600; line-height: 1.25; }
.portrait-note small { color: var(--text-3); font-family: "DM Sans", sans-serif; font-size: .75rem; font-weight: 500; }
.note-line { width: 2.2rem; height: 1px; background: var(--accent); }
.contact-rail { display: flex; align-items: center; min-height: var(--rail-h); background: var(--accent); color: rgba(255,255,255,.82); }
.contact-rail [data-news-fallback] { width: 100%; padding-top: .8rem; padding-bottom: .8rem; }
.contact-rail p { margin: 0; overflow: hidden; font-size: .93rem; text-overflow: ellipsis; white-space: nowrap; }
.contact-rail a { color: #fff; font-family: "Hanken Grotesk", system-ui, sans-serif; font-size: .92rem; font-weight: 600; text-align: right; text-decoration: none; }
.contact-rail a i { margin-left: .4rem; transition: transform .25s; }
.contact-rail a:hover i { transform: translateX(.25rem); }
.contact-rail [hidden] { display: none !important; }
.news-ticker { position: relative; overflow: hidden; width: 100%; min-height: var(--rail-h); }
.news-ticker__track { position: relative; width: 100%; min-height: var(--rail-h); }
.news-ticker__item { position: absolute; inset: 0; display: flex; align-items: center; gap: .85rem; padding: .8rem max(1.5rem, calc((100vw - 1160px) / 2)); color: #fff; text-decoration: none; transform: translateY(110%); opacity: 0; transition: transform .52s cubic-bezier(.16,1,.3,1), opacity .38s ease; will-change: transform, opacity; }
.news-ticker__item.is-active { transform: translateY(0); opacity: 1; }
.news-ticker__item.is-leaving { transform: translateY(-110%); opacity: 0; }
.news-ticker__item:hover, .news-ticker__item:focus-visible { color: #fff; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .22em; }
.news-ticker__source { flex: none; padding: .18rem .52rem; border: 1px solid rgba(255,255,255,.38); border-radius: 999px; color: rgba(255,255,255,.8); font-family: "DM Mono", monospace; font-size: .68rem; font-weight: 500; letter-spacing: .02em; text-transform: uppercase; }
.news-ticker__content { position: relative; display: flex; justify-content: flex-end; flex: 1 1 auto; min-width: 0; overflow: hidden; }
.news-ticker__content.is-marquee { justify-content: flex-start; }
.news-ticker__content-text { display: inline-block; white-space: nowrap; color: #fff; font-family: "Hanken Grotesk", system-ui, sans-serif; font-size: .95rem; font-weight: 600; line-height: 1.25; transform: translateX(0); transition: opacity .18s ease, transform var(--marquee-duration, 4500ms) linear; will-change: transform; }
.news-ticker__content.is-summary .news-ticker__content-text { color: rgba(255,255,255,.82); font-family: "DM Sans", system-ui, sans-serif; font-size: .88rem; font-weight: 400; }
.news-ticker__content.is-swapping .news-ticker__content-text { opacity: 0; }
.news-ticker__content.is-marquee { mask-image: linear-gradient(to right, #000 92%, transparent 100%); -webkit-mask-image: linear-gradient(to right, #000 92%, transparent 100%); }
@media (max-width: 640px) { .news-ticker__item { padding-right: 1.25rem; padding-left: 1.25rem; } }
.news-ticker__progress { position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: rgba(255,255,255,.14); }
.news-ticker__progress-bar { display: block; height: 100%; width: 0%; background: rgba(255,255,255,.75); }
.news-ticker__progress-bar.is-running { animation: news-progress var(--news-interval, 12000ms) linear forwards; }
.news-ticker__progress-bar.is-paused { animation-play-state: paused; }
@keyframes news-progress { from { width: 0%; } to { width: 100%; } }
@media (prefers-reduced-motion: reduce) { .news-ticker__item { transition: none; } .news-ticker__progress { display: none; } .news-ticker__content-text { transition: opacity .18s ease; transform: none; } }
.services-section { padding: clamp(5rem, 9vw, 8rem) 0; }
.section-heading { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1fr); gap: 2rem; align-items: end; margin-bottom: 3rem; }
.section-heading .eyebrow { grid-column: 1/-1; }
.section-heading h2, .approach-section h2, .reviews-section h2, .local-contact-section h2 { margin: 0; font-size: clamp(2.35rem, 4vw, 4rem); font-weight: 600; }
.section-heading > p:last-child { max-width: 32rem; margin: 0; color: var(--text-2); }
.service-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.service-feature { position: relative; display: flex; min-height: 26rem; flex-direction: column; justify-content: space-between; overflow: hidden; border-radius: var(--radius); padding: 1.7rem; text-decoration: none; transition: transform .3s cubic-bezier(.16,1,.3,1), box-shadow .3s cubic-bezier(.16,1,.3,1); }
.service-feature:hover { transform: translateY(-3px); box-shadow: var(--shadow-soft); }
.service-feature-green { background: var(--accent); color: #fff; }
.service-feature-green h3, .service-feature-green p { color: #fff; }
.service-feature-green > i { align-self: flex-end; color: var(--accent-light); }
.service-feature-image { background: var(--surface-tint); }
.service-feature-image > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .09; mix-blend-mode: multiply; }
.service-image-overlay { position: relative; z-index: 1; display: flex; height: 100%; flex-direction: column; justify-content: flex-end; }
.service-number { color: currentColor; font-family: "DM Mono", monospace; font-size: .73rem; opacity: .7; }
.service-kicker { margin: 0 0 .65rem; color: currentColor; font-size: .82rem; font-weight: 600; letter-spacing: 0; opacity: .7; }
.service-feature h3 { max-width: 18rem; margin: 0 0 .75rem; font-size: clamp(1.8rem, 2.7vw, 2.7rem); font-weight: 500; }
.service-feature p:not(.service-kicker) { max-width: 26rem; margin: 0; font-size: .93rem; line-height: 1.65; }
.service-list { grid-column: 1/-1; border-top: 1px solid var(--border); }
.service-list a { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; align-items: center; padding: 1.35rem 0; border-bottom: 1px solid var(--border); color: var(--text-1); text-decoration: none; transition: padding .25s cubic-bezier(.16,1,.3,1); }
.service-list a:hover { padding-right: .9rem; padding-left: .9rem; border-radius: var(--radius-md); background: rgba(255,255,255,.7); }
.service-list span { color: var(--text-3); font-family: "DM Mono", monospace; font-size: .72rem; }
.service-list h3 { margin: 0 0 .15rem; font-size: 1.1rem; font-weight: 600; letter-spacing: -.025em; }
.service-list p { margin: 0; color: var(--text-2); font-size: .85rem; }
.service-list i { color: var(--accent); font-size: .75rem; transition: transform .25s cubic-bezier(.16,1,.3,1); }
.service-list a:hover i { transform: translateX(.3rem); }
.service-editorial-image { position: relative; margin-right: 0; margin-left: 0; overflow: hidden; border-radius: var(--radius); background: #dfe4dd; box-shadow: var(--shadow-soft); }
.service-editorial-image::after { position: absolute; right: 0; bottom: 0; left: 0; height: 20%; background: linear-gradient(transparent, rgba(30,64,92,.1)); content: ""; pointer-events: none; }
.service-editorial-image img { display: block; width: 100%; min-height: 17rem; max-height: 31rem; object-fit: cover; object-position: center; }

/* Images on content pages are tied to the text they explain. */
.context-split { display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(18rem, .96fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.context-split-technical { align-items: start; }
.context-copy > :last-child { margin-bottom: 0; }
.context-media { position: relative; margin: 0; }
.context-media img { display: block; width: 100%; height: 100%; min-height: 22rem; border-radius: var(--radius); object-fit: cover; box-shadow: var(--shadow-soft); }
.context-media-house img { aspect-ratio: 4/4.6; object-position: center; }
.context-media-technical img { aspect-ratio: 4/4.2; object-position: 64% center; }
.context-media-hybrid img { aspect-ratio: 4/3.8; object-position: 40% center; }
.context-media-water img { aspect-ratio: 4/4.8; object-fit: cover; object-position: center; background: var(--surface); }
.context-media figcaption { max-width: 22rem; margin: .85rem 0 0 1.25rem; color: var(--text-3); font-size: .78rem; line-height: 1.45; }
.context-media figcaption::before { display: inline-block; width: 1.6rem; height: 1px; margin: 0 .55rem .2rem -1.25rem; background: var(--accent); content: ""; }
.context-media-caption-frame { position: relative; overflow: hidden; border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-soft); }
.context-media-caption-frame img { border-radius: var(--radius); box-shadow: none; }
.context-media-caption-frame figcaption { position: absolute; right: 0; bottom: 0; left: 0; max-width: none; margin: 0; padding: .8rem 1rem .85rem; background: rgba(255,255,255,.92); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.context-media-caption-frame figcaption::before { margin-left: 0; }
/* Visible disclosure for AI-generated imagery (Art. 50 EU AI Act). */
.document-evidence-image, .context-transition { position: relative; }
.ai-note { position: absolute; top: .6rem; left: .6rem; z-index: 2; padding: .16rem .55rem .2rem; border-radius: 999px; background: rgba(32,37,31,.42); color: rgba(255,255,255,.85); font-size: .67rem; font-weight: 500; line-height: 1.35; backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); pointer-events: none; }

/* Feature-Schalter (siehe feature-flags.js): Verweise auf abgeschaltete Funktionen bleiben verborgen. */
html:not(.feature-solarisator) [data-feature="solarisator"] { display: none !important; }
.video-section { overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-soft); }
.video-section { display: flex; flex-direction: column; }
/* Überschrift füllt den Platz, damit nebeneinanderstehende Videos auf gleicher Höhe beginnen. */
.video-section-heading { flex: 1; display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding: 1.35rem 1.5rem 1.2rem; }
.video-section-note { flex-shrink: 0; color: var(--text-3); font-family: "DM Mono", monospace; font-size: .7rem; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; hyphens: none; }
.video-section-frame { border-right: 0; border-bottom: 0; border-left: 0; border-radius: 0; }
.reference-note { max-width: 65rem; }

.context-transition { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(15rem, .7fr); overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }
.context-transition img { width: 100%; height: 100%; min-height: 18rem; object-fit: cover; }
.context-transition figcaption { display: flex; flex-direction: column; justify-content: center; padding: clamp(1.5rem, 4vw, 3rem); }
.context-transition figcaption p:last-child { margin: 0; color: var(--text-1); font-family: "Hanken Grotesk", sans-serif; font-size: 1.15rem; line-height: 1.5; }

.document-evidence { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(15rem, .55fr); overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-soft); }
.document-evidence-image { min-height: 22rem; overflow: hidden; }
.document-evidence-image img { object-position: 10% center; }
.document-evidence--heatpump .document-evidence-image img { object-position: 42% center; }
.document-evidence figcaption { display: flex; flex-direction: column; justify-content: center; padding: clamp(1.5rem, 4vw, 2.8rem); border-left: 1px solid var(--border); }
.document-evidence figcaption p:last-child { margin: 0; color: var(--text-1); font-family: "Hanken Grotesk", sans-serif; font-size: 1.06rem; line-height: 1.55; }

.tip-callout { margin: 0; padding: clamp(1.4rem, 3vw, 2rem); border: 1px solid rgba(47,95,133,.2); border-left: 4px solid var(--accent); border-radius: var(--radius-md); background: linear-gradient(112deg, var(--accent-light), rgba(255,255,255,.85)); box-shadow: 0 18px 34px -30px rgba(30,64,92,.5); }
.tip-callout-heading { display: flex; gap: .9rem; align-items: center; margin-bottom: 1rem; }
.tip-callout-icon { display: grid; width: 2.7rem; height: 2.7rem; flex: 0 0 auto; place-items: center; border-radius: 50%; background: var(--accent); color: #fff; font-size: 1rem; }
.tip-callout-label { margin: 0 0 .1rem; color: var(--accent); font-size: .82rem; font-weight: 600; letter-spacing: 0; }
.tip-callout h3 { margin: 0; color: var(--text-1); font-size: 1.2rem; font-weight: 600; letter-spacing: -.02em; }
.approach-section { padding: clamp(5rem, 9vw, 8rem) 0; background: var(--surface); }
.approach-section h2 { margin-top: 1.2rem; }
.approach-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--border); }
.approach-list li { display: grid; grid-template-columns: 2.6rem minmax(0, 1fr); gap: 1rem; padding: 1.5rem 0; border-bottom: 1px solid var(--border); }
.approach-list li > span { color: var(--accent); font-family: "Hanken Grotesk", sans-serif; font-size: 1.35rem; font-weight: 600; line-height: 1; font-variant-numeric: tabular-nums; }
.approach-list h3 { margin: 0 0 .4rem; font-size: 1.35rem; font-weight: 600; }
.approach-list p { max-width: 38rem; margin: 0; color: var(--text-2); font-size: .94rem; }
.reviews-section { padding: clamp(5rem, 9vw, 8rem) 0; background: var(--surface-tint); }
.reviews-heading { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 2.8rem; }
.reviews-section h2 { max-width: 34rem; margin-top: 0; }
.reviews-link { flex: 0 0 auto; display: inline-flex; align-items: center; gap: .5rem; color: var(--accent); font-size: .86rem; font-weight: 600; text-decoration: none; }
.reviews-link:hover { text-decoration: underline; }
.reviews-link i { font-size: .72rem; }
.reviews-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.review-card { display: flex; flex-direction: column; padding: 1.9rem 1.75rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); transition: transform .3s cubic-bezier(.16,1,.3,1), box-shadow .3s cubic-bezier(.16,1,.3,1); }
.review-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-soft); }
.review-card-stars { display: flex; gap: .25rem; margin-bottom: 1.15rem; color: #d3a662; font-size: .8rem; }
.review-card blockquote { flex-grow: 1; margin: 0 0 1.6rem; color: var(--text-1); font-family: "Hanken Grotesk", sans-serif; font-size: 1.06rem; font-weight: 400; line-height: 1.55; letter-spacing: -.01em; }
.review-card-author { display: flex; align-items: center; gap: .8rem; padding-top: 1.2rem; border-top: 1px solid var(--border); }
.review-avatar { display: grid; width: 2.65rem; height: 2.65rem; flex-shrink: 0; place-items: center; border-radius: 50%; background: var(--accent-light); color: var(--accent); font-family: "Hanken Grotesk", sans-serif; font-weight: 600; font-size: .88rem; }
.review-name { margin: 0; color: var(--text-1); font-family: "Hanken Grotesk", sans-serif; font-weight: 600; font-size: .92rem; }
.review-src { display: flex; align-items: center; gap: .45rem; margin: .18rem 0 0; color: var(--text-3); font-size: .78rem; }
.review-src i { color: var(--accent); font-size: .8rem; }
.reviews-source { margin: 1.7rem 0 0; color: var(--text-3); font-size: .72rem; }

/* Credentials / accreditation strip */
.credentials { padding: clamp(2.25rem, 3.5vw, 3.25rem) 0; }
.credentials-kicker { margin: 0 0 1.1rem; text-align: center; color: var(--text-3); font-size: .8rem; font-weight: 500; }
.credentials-panel { display: grid; grid-template-columns: repeat(3, 1fr); align-items: stretch; max-width: 34rem; margin: 0 auto; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md); overflow: hidden; }
.credentials-logo { display: flex; align-items: center; justify-content: center; padding: 1.05rem 1.15rem; }
.credentials-logo + .credentials-logo { border-left: 1px solid var(--border); }
.credentials-logo img { width: auto; max-width: 100%; height: 2.1rem; object-fit: contain; filter: saturate(.9); }
.credentials-note { max-width: 36rem; margin: 1rem auto 0; text-align: center; color: var(--text-3); font-size: .78rem; line-height: 1.5; }
@media (max-width: 640px) {
    .credentials-panel { grid-template-columns: 1fr; max-width: 17rem; }
    .credentials-logo { padding: 1.1rem; }
    .credentials-logo + .credentials-logo { border-left: 0; border-top: 1px solid var(--border); }
}
.local-contact-section { padding: clamp(5rem, 9vw, 8rem) 0; }
.local-contact-section h2 { max-width: 33rem; margin: 1.2rem 0 1.25rem; }
.contact-copy { max-width: 34rem; margin: 0 0 2rem; color: var(--text-2); }
.contact-details { padding: 1.6rem 0 0 1.6rem; border-left: 2px solid var(--accent); color: var(--text-2); font-style: normal; }
.contact-details p { margin: 0 0 1rem; }
.contact-details a, .contact-details .email-ob a { display: block; width: fit-content; color: var(--accent); font-family: "Hanken Grotesk", sans-serif; font-size: 1.15rem; font-weight: 600; text-decoration: none; }
.contact-details .email-ob a { margin-top: .2rem; color: var(--text-2); font-family: "DM Sans", sans-serif; font-size: .9rem; font-weight: 500; }
.site-footer { background: var(--accent-deep); }
.site-footer a { display: block; color: rgba(255,255,255,.67); line-height: 1.9; text-decoration: none; }
.site-footer a:hover { color: #fff; }
.footer-label { margin: 0 0 .7rem; color: rgba(255,255,255,.45); font-size: .82rem; font-weight: 600; letter-spacing: 0; }
.footer-top { display: grid; grid-template-columns: 1.6fr 1fr 1fr; gap: 2.5rem 3rem; padding-bottom: 2.5rem; border-bottom: 1px solid rgba(255,255,255,.15); }
.footer-brand { max-width: 26rem; }
.footer-logo { font-family: "Hanken Grotesk", sans-serif; color: #fff; font-size: 1.25rem; font-weight: 600; }
.footer-logo span { color: var(--accent-light); }
.footer-brand p { margin: .85rem 0 0; color: rgba(255,255,255,.6); font-size: .88rem; line-height: 1.6; }
.footer-contact { margin-top: 1.1rem; color: rgba(255,255,255,.55); font-size: .85rem; font-style: normal; line-height: 1.85; }
.footer-contact a, .footer-contact .email-ob a { color: rgba(255,255,255,.85); }
.footer-contact a:hover, .footer-contact .email-ob a:hover { color: #fff; }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem; padding-top: 1.5rem; color: rgba(255,255,255,.45); font-size: .75rem; }
.footer-bottom p { margin: 0; }
@media (max-width: 720px) { .footer-top { grid-template-columns: 1fr 1fr; gap: 2rem; } .footer-brand { grid-column: 1 / -1; } }

/* Contact page: matching column headings, labels and contact values. */
.contact-layout { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4rem; margin-bottom: 4rem; }
.contact-column-title { margin: 0 0 2rem; font-size: 1.5rem; font-weight: 600; }
.contact-detail-label { margin: 0 0 .4rem; color: var(--text-2); font-size: .83rem; font-weight: 600; }
.contact-detail-icon { display: grid; flex: 0 0 2rem; height: 2rem; place-items: center; color: var(--accent); }
.contact-detail-link { color: var(--accent); font: inherit; text-decoration: none; }
.contact-detail-link:hover { text-decoration: underline; text-underline-offset: .2em; }
.contact-form .form-input::placeholder { color: var(--text-3); opacity: 1; }
.contact-form textarea { display: block; resize: vertical; min-height: 9rem; }
.contact-form-note { max-width: 38ch; color: var(--text-2); font-size: .8rem; line-height: 1.5; }
@media (max-width: 1023px) { .contact-layout { grid-template-columns: 1fr; gap: 3rem; } }
@media (max-width: 599px) { .contact-form .btn-primary { width: 100%; } }

/* Existing content pages ------------------------------------------------- */
.site-hero { display: flex; min-height: calc(100dvh - var(--nav-h)); align-items: center; }
.service-card { display: block; padding: 2rem; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface); text-decoration: none; transition: transform .25s cubic-bezier(.16,1,.3,1), border-color .25s, box-shadow .25s; }
.service-card:hover { border-color: var(--accent); transform: translateY(-2px); box-shadow: var(--shadow-soft); }
.service-card-icon { display: grid; width: 2.6rem; height: 2.6rem; margin-bottom: 1.1rem; place-items: center; border-radius: var(--radius-md); background: var(--accent-light); color: var(--accent); }
.service-card-arrow { display: flex; gap: .45rem; align-items: center; margin-top: 1.25rem; color: var(--accent); font-size: .88rem; font-weight: 600; letter-spacing: 0; }
.news-item { display: grid; grid-template-columns: 90px 1fr; gap: 2rem; padding: 2rem 0; border-top: 1px solid var(--border); }
.news-tag { display: inline-flex; align-items: center; padding: 3px 11px; border-radius: 100px; font-size: .76rem; font-weight: 600; letter-spacing: 0; }
.news-tag-alert { color: #a9493f; background: #fbefec; }.news-tag-new { color: #2f5f85; background: var(--accent-light); }.news-tag-past { color: var(--text-3); background: #ededeb; }
.form-input { width: 100%; padding: .8rem .95rem; border: 1px solid var(--border); border-radius: var(--radius-sm); outline: none; background: var(--surface); color: var(--text-1); font: inherit; transition: border-color .2s, box-shadow .2s; }
.form-input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(47,95,133,.12); }
.form-label { display: block; margin-bottom: .4rem; color: var(--text-2); font-size: .83rem; font-weight: 600; }
input[type="range"] { width: 100%; height: 2px; appearance: none; outline: none; background: var(--border-dark); }
input[type="range"]::-webkit-slider-thumb { width: 16px; height: 16px; appearance: none; border: 0; border-radius: 50%; background: var(--accent); cursor: pointer; }
input[type="range"]::-moz-range-thumb { width: 16px; height: 16px; border: 0; border-radius: 50%; background: var(--accent); cursor: pointer; }
.animate-bar { transition: width 1s cubic-bezier(.16,1,.3,1); }
.reveal { opacity: 0; transform: translateY(18px); transition: opacity .65s cubic-bezier(.16,1,.3,1), transform .65s cubic-bezier(.16,1,.3,1); }
.reveal-visible { opacity: 1; transform: translateY(0); }
.fade-in { animation: reviewIn .4s cubic-bezier(.16,1,.3,1) both; }

@keyframes reviewIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }

@media (max-width: 1279px) { .nav-outer-padding { padding-right: 1.25rem !important; padding-left: 1.25rem !important; } }
@media (min-width: 768px) and (max-width: 1023px) {
    .hero-local { min-height: 0; padding: 3rem 0; }
    .hero-local .grid { grid-template-columns: 1.15fr .85fr; gap: 2.5rem; align-items: center; }
    .hero-copy h1 { font-size: clamp(2.4rem, 5.4vw, 3.4rem); overflow-wrap: break-word; }
    .hero-meta { margin-top: 2.4rem; }
    .hero-portrait { max-width: 20rem; margin: 0 auto; padding: 0 1rem 1.2rem 0; }
    .about-grid { grid-template-columns: 1.15fr .85fr; gap: 2.5rem; align-items: start; }
    .about-portrait { max-width: 20rem; }
}
@media (max-width: 767px) {
    :root { --nav-h: 64px; }
    h1, h2, h3 { overflow-wrap: break-word; }
    .hero-local { min-height: auto; padding: 3.7rem 0 3rem; }
    .hero-copy h1 { font-size: clamp(2rem, 9.5vw, 4.3rem); }
    .hero-intro { font-size: 1rem; }
    .hero-meta { margin-top: 2.4rem; }
    .hero-portrait { max-width: 28rem; margin: 0 auto; padding-right: 1rem; }
    .portrait-note { right: -1rem; }
    .contact-rail [data-news-fallback] { padding-top: 1.3rem; padding-bottom: 1.3rem; }
    .contact-rail [data-news-fallback] a { display: block; margin-top: .7rem; text-align: left; }
    .section-heading { display: block; }
    .section-heading h2 { margin: 1.2rem 0 1rem; }
    .service-layout { grid-template-columns: 1fr; }
    .service-feature { min-height: 21rem; }
    .service-list { grid-column: auto; }
    .service-editorial-image { margin-right: 0; }
    .service-editorial-image img { min-height: 14rem; max-height: 22rem; }
    .context-split, .context-transition, .document-evidence { grid-template-columns: 1fr; }
    .context-media { max-width: 34rem; }
    .context-media img { min-height: 17rem; aspect-ratio: 4/3.2; }
    .context-media-water img { aspect-ratio: 4/4.8; }
    .context-media figcaption { margin-left: 0; }
    .context-media figcaption::before { margin-left: 0; }
    .context-transition img, .document-evidence-image { min-height: 15rem; max-height: 22rem; }
    .document-evidence figcaption { border-top: 1px solid var(--border); border-left: 0; }
    .reviews-heading { display: block; }
    .reviews-link { margin-top: 1.4rem; }
    .contact-details { margin-top: 0; }
    .news-item { grid-template-columns: 1fr; gap: .5rem; }
    .video-section-heading { align-items: start; flex-direction: column; padding: 1.2rem 1.15rem 1rem; }
}

@media (max-width: 960px) { .reviews-grid { grid-template-columns: 1fr; } }

/* Inline video players --------------------------------------------------- */
.video-embed { position: absolute; inset: 0; display: block; width: 100%; height: 100%; border: 0; background: var(--accent-deep); }
.external-embed { position: absolute; inset: 0; display: grid; place-items: center; padding: 1.25rem; background: linear-gradient(135deg, #244e70, #1e405c); color: #fff; text-align: center; }
.external-embed__notice { max-width: 34rem; }
.external-embed__notice strong { display: block; font-family: "Hanken Grotesk", sans-serif; font-size: 1.1rem; font-weight: 600; }
.external-embed__notice p { margin: .6rem 0 1rem; color: rgba(255,255,255,.76); font-size: .84rem; line-height: 1.55; }
.external-embed__button { display: inline-flex; align-items: center; justify-content: center; min-height: 2.7rem; padding: .65rem 1rem; border: 1px solid rgba(255,255,255,.5); border-radius: 999px; background: #fff; color: var(--accent-deep); font: inherit; font-size: .84rem; font-weight: 600; cursor: pointer; transition: transform .2s ease, background-color .2s ease; }
.external-embed__button:hover, .external-embed__button:focus-visible { transform: translateY(-1px); background: #edf4f8; }
.external-embed__privacy { display: block; margin-top: .8rem; color: rgba(255,255,255,.72); font-size: .72rem; }
.external-embed__privacy a { color: #fff; text-decoration: underline; text-underline-offset: 2px; }

/* Solarisator ------------------------------------------------------------ */
.pv-intro { max-width: 52rem; }
.pv-intro h1 { margin-bottom: 1.2rem; letter-spacing: -.035em; }
.pv-intro__lead { max-width: 50rem; margin: 0 0 1rem; color: var(--text-1); font-family: "Hanken Grotesk", sans-serif; font-size: clamp(1.25rem, 2.5vw, 1.65rem); line-height: 1.35; }
.pv-calculator { overflow: hidden; margin-bottom: 2.5rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-soft); }
.pv-calculator__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.35rem 1.5rem; border-bottom: 1px solid var(--border); }
.pv-calculator__tag { display: inline-flex; align-items: center; gap: .5rem; color: var(--accent-deep); font: 500 .72rem/1 "DM Mono", monospace; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
.pv-calculator__embed { position: relative; min-height: clamp(42rem, 86vh, 58rem); background: #eef4f7; }
.pv-calculator__note { margin: 0; padding: .85rem 1.5rem; color: var(--text-2); font-size: .78rem; line-height: 1.45; }
.pv-source { display: grid; grid-template-columns: auto 1fr; gap: 1.25rem; align-items: start; margin-bottom: 2.5rem; padding: 1.7rem; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.pv-source__icon { display: grid; width: 2.9rem; height: 2.9rem; place-items: center; border-radius: 50%; background: var(--surface-tint); color: var(--accent-deep); }
.pv-source p { max-width: 42rem; margin: .7rem 0 1rem; color: var(--text-2); line-height: 1.65; }
.pv-source__link { display: inline-flex; align-items: center; gap: .5rem; color: var(--accent-deep); font-size: .9rem; font-weight: 700; text-decoration: none; }
.pv-source__link:hover { text-decoration: underline; text-underline-offset: 3px; }
.pv-advice { display: flex; align-items: end; justify-content: space-between; gap: 2rem; padding: 2rem; border-radius: var(--radius-md); background: var(--surface-tint); }
.pv-advice h2 { margin-bottom: .65rem; }
.pv-advice p { max-width: 37rem; margin: 0; color: var(--text-2); line-height: 1.6; }
@media (max-width: 640px) { .pv-calculator__head, .pv-advice { align-items: flex-start; flex-direction: column; } .pv-calculator__embed { min-height: 47rem; } .pv-source { padding: 1.3rem 0; } }
.video-thumb { position: relative; display: block; width: 100%; height: 100%; background: var(--accent-deep); }
.video-thumb img { width: 100%; height: 100%; object-fit: cover; }
.video-thumb::after { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(30,64,92,0) 45%, rgba(30,64,92,.35)); content: ""; }
.video-thumb-play { position: absolute; inset: 0; z-index: 1; display: grid; width: 4.3rem; height: 4.3rem; margin: auto; place-items: center; border-radius: 50%; background: rgba(255,255,255,.94); color: var(--accent); font-size: 1.15rem; box-shadow: 0 12px 34px -10px rgba(0,0,0,.45); transition: transform .25s cubic-bezier(.16,1,.3,1), background-color .25s; }
.video-thumb-play i { margin-left: .18rem; }
.video-thumb:hover .video-thumb-play { transform: scale(1.09); background: #fff; }

/* About page ------------------------------------------------------------- */
.about-intro { padding: 4.5rem 0 5rem; }
.about-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 4rem; align-items: center; }
.about-title { margin: .3rem 0 1.4rem; max-width: 16ch; font-size: clamp(2.3rem, 4vw, 3.4rem); font-weight: 600; letter-spacing: -.04em; }
.about-lead { max-width: 40rem; color: var(--text-2); font-size: 1.08rem; line-height: 1.7; }
.about-stats { display: flex; flex-wrap: wrap; gap: 2.2rem; margin: 2.4rem 0 0; padding-top: 1.6rem; border-top: 1px solid var(--border); }
.about-stat-num { display: block; color: var(--accent); font-family: "Hanken Grotesk", sans-serif; font-size: 1.5rem; font-weight: 600; letter-spacing: -.02em; }
.about-stat-label { display: block; margin-top: .15rem; color: var(--text-2); font-size: .85rem; }
.about-cta { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2.4rem; }
.about-portrait { position: relative; margin: 0; }
.about-portrait::before { position: absolute; z-index: 0; right: -.6rem; bottom: 2.2rem; width: 8rem; height: 8rem; border-radius: var(--radius); background: var(--accent-light); content: ""; }
.about-portrait-frame { position: relative; z-index: 1; overflow: hidden; aspect-ratio: 4/4.9; border-radius: var(--radius); box-shadow: var(--shadow-soft); }
.about-portrait-frame img { width: 100%; height: 100%; object-fit: cover; object-position: top; filter: saturate(1.02) contrast(1.02); }
.about-portrait figcaption { display: flex; flex-direction: column; margin-top: 1rem; color: var(--text-1); font-family: "Hanken Grotesk", sans-serif; font-size: .95rem; font-weight: 600; }
.about-portrait figcaption span { color: var(--text-3); font-size: .8rem; font-weight: 500; }
.about-services { padding: 5rem 0; background: var(--surface); border-top: 1px solid var(--border); }
.about-h2 { font-size: clamp(1.9rem, 3vw, 2.6rem); font-weight: 600; letter-spacing: -.03em; }
.about-sub { max-width: 36rem; margin: .8rem 0 2.6rem; color: var(--text-2); }
.about-list { display: grid; grid-template-columns: 1fr; max-width: 44rem; margin: 0; padding: 0; list-style: none; }
.about-list li { display: grid; grid-template-columns: auto 1fr; gap: 1.15rem; align-items: start; padding: 1.25rem 0; border-top: 1px solid var(--border); }
.about-list li:last-child { border-bottom: 1px solid var(--border); }
.about-check { display: grid; width: 2rem; height: 2rem; margin-top: .1rem; place-items: center; border-radius: 50%; background: var(--accent-light); color: var(--accent); font-size: .72rem; }
.about-list h3 { margin: .1rem 0 .3rem; font-size: 1.03rem; font-weight: 600; }
.about-list p { margin: 0; color: var(--text-2); font-size: .88rem; line-height: 1.55; }
.about-band { padding: 4.5rem 0; background: var(--accent-deep); }
.about-band-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 2.5rem; }
.about-band h2 { max-width: 22ch; color: #fff; font-size: clamp(1.7rem, 2.6vw, 2.3rem); font-weight: 600; letter-spacing: -.03em; }
.about-band p { max-width: 34rem; margin: .8rem 0 0; color: rgba(255,255,255,.7); }
.btn-light { flex-shrink: 0; border-color: transparent; background: var(--surface); color: var(--accent-deep); }
.btn-light:hover { transform: translateY(-1px); box-shadow: 0 14px 30px -14px rgba(0,0,0,.5); }
@media (max-width: 860px) {
    .about-band-inner { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 679px) {
    .about-grid { grid-template-columns: 1fr; gap: 2.5rem; }
    .about-portrait { max-width: 22rem; }
}

/* Content pages — warm rounding to match the start page ------------------- */
/* Infographics are downloads only; no image requests until a link is used. */
.infographic-downloads { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--border); }
.infographic-downloads h2 { margin: 0 0 .7rem; font-size: clamp(1.5rem, 3vw, 2rem); }
.infographic-downloads > p { max-width: 42rem; margin: 0 0 1.25rem; font-size: .92rem; }
.infographic-download-list { display: grid; gap: .8rem; padding: 0; margin: 0; list-style: none; }
.infographic-download-list li { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; padding: 1.2rem 1.35rem; border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface); }
.infographic-download-title { display: block; color: var(--text-1); font-family: "Hanken Grotesk", system-ui, sans-serif; font-weight: 600; line-height: 1.35; }
.infographic-download-meta { display: block; margin-top: .3rem; font-size: .78rem; color: var(--text-2); }
.infographic-download-button { display: inline-flex; flex-shrink: 0; align-items: center; justify-content: center; gap: .6rem; min-height: 44px; padding: .65rem 1rem; border: 1px solid var(--accent); border-radius: 100px; color: var(--accent); font-family: "Hanken Grotesk", system-ui, sans-serif; font-size: .87rem; font-weight: 600; line-height: 1.4; text-decoration: none; }
.infographic-download-button:hover { background: var(--accent-light); }
.infographic-download-button:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }
.infographic-download-button svg { width: 18px; height: 18px; }
@media (max-width: 599px) {
    .infographic-download-list li { align-items: stretch; flex-direction: column; gap: 1rem; padding: 1.1rem; }
    .infographic-download-button { align-self: flex-start; }
}

main .border.border-rule { border-radius: var(--radius-md); }
main .font-mono.border.border-rule { border-radius: 100px; }
main .border[class*="border-white/2"] { border-radius: var(--radius-md); }
.header-glass .border.border-rule { border-radius: var(--radius-sm); }

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; } }
