/* Ecodyne site stylesheet — built 2026-10-02 from WPCode 2953/2931/1900 + Customizer CSS (order preserved) */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&display=swap');
/* WPCode 2953 */
/* === KB CANONICAL v2.2 — deployed 2026-06-04 ===
 *
 * Bumped from v2.1 on closure of Phase 12 CLOSED-GREEN.
 *
 * What's new in v2.2 (Decision Records E14–E18, MBD §9 carry-forward):
 *   1. .kb-hero-split now portrait-friendly (object-fit:contain, max-height 520px,
 *      mobile order:-1 for image-above-text). Was landscape cover-cropped at 340px.
 *   2. .kb-products-section + .kb-products-grid + .kb-product-card-* (full system,
 *      wpautop-safe with .kb-product-card-figure + .kb-product-card-cta wrappers
 *      per E15 block-children rule).
 *   3. Doc/evidence chip pattern (E16) — all "Request documentation" / "Documentation
 *      dossier" buttons shrunk to ~25% visual area. Primary quote/products buttons
 *      keep full size.
 *   4. .kb-bridge-route--documentation tightened (18px padding, 14px H3, 13px p).
 *   5. .kb-section standardised on 36px padding (memory #5 convention).
 *   6. .kb-refs list styling (was unstyled, used on every Phase 12 country page).
 *
 * After deploying this file via WPCode 2953 (replaces current v2.1 content), the
 * per-page inline <style> blocks on the 5 country pages (239/340/341/343/821) and
 * the 28 doc/evidence chip-pattern pages can be stripped — but they are non-harmful
 * if left in place (same rules, higher specificity wins anyway).
 *
 * The 11 LEGACY_CSS_HEAVY country pages (USA, CA, GR, NL, DK, SE, NO, FI, NZ, UAE,
 * ES) can now be built lean — Charter B Variant 4 anatomy + content + per-country
 * hero image, no CSS injection needed.
 */

/* ===== v2.1 BASE — UNCHANGED ===== */

a.cite{color:#6D5530;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}a.cite:hover{text-decoration-thickness:2px}

/* NEAR_WEDGE retrofit additions — 2026-06-02 */
.kb-evidence-card--placeholder { border:1px solid #e5e5e5; border-left:4px solid #a8693a; background:#fafafa; padding:28px 32px; border-radius:6px; margin:24px 0; }
.kb-evidence-card--placeholder .kb-eyebrow { display:inline-block; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:#a8693a; font-weight:600; margin-bottom:10px; }
.kb-evidence-card--placeholder .kb-evidence-claim { font-size:18px; line-height:1.45; margin:0 0 12px 0; color:#1a1a1a; font-weight:500; }
.kb-evidence-card--placeholder .kb-evidence-source { font-size:13px; color:#666; margin:0 0 18px 0; }

/* NOTE: Bronze button rules below — v2.2 OVERRIDES these with chip pattern further down.
 * Original rules retained here so non-doc bronze buttons (if any) still render correctly. */
.kb-evidence-card--placeholder .kb-btn--bronze, .kb-bridge-route--documentation .kb-btn--bronze { display:inline-block; padding:10px 20px; background:#a8693a; color:#fff !important; text-decoration:none; border-radius:4px; font-size:14px; font-weight:500; }
.kb-evidence-card--placeholder .kb-btn--bronze:hover, .kb-bridge-route--documentation .kb-btn--bronze:hover { background:#8a5530; }
.kb-bridge-route--documentation { padding:24px; background:#fafafa; border-left:4px solid #a8693a; margin:20px 0; border-radius:4px; }
.kb-bridge-route--documentation .kb-bridge-h { font-size:16px; margin:0 0 10px 0; color:#1a1a1a; }
.kb-bridge-route--documentation .kb-bridge-p { font-size:14px; color:#1a1a1a; margin:0 0 14px 0; line-height:1.5; }

/* === KB CANONICAL v2.0 — deployed 2026-06-03 === */
:root{--kb-deep-forest:#1C3A2A;--kb-deep-forest-grad-end:#2d5a1b;--kb-warm-stone:#C4A882;--kb-warm-stone-light:#d8c19c;--kb-bronze:#6D5530;--kb-cream:#f5f2ed;--kb-cream-warm:#e6dfd0;--kb-charcoal:#2A2A2A;--kb-charcoal-soft:#4a4a4a;--kb-charcoal-strong:#1f1f1f;--kb-white:#ffffff;--kb-pro-green:#2e6b3f;--kb-pro-bg:#eef2eb;--kb-con-orange:#9c4810;--kb-con-bg:#f8efe2;--kb-warning-amber:#8a4a08;--kb-warning-bg:#fff8eb;--kb-warning-border:#f0d89c;--kb-font-display:'Cormorant Garamond',Georgia,serif;--kb-font-body:'DM Sans',-apple-system,sans-serif;--kb-max-width:1100px;--kb-max-narrow:880px;--kb-section-pad-y:56px;--kb-section-pad-x:24px;--kb-radius:4px;--kb-radius-pill:2px}.kb-wrap,.kb-wrap *{box-sizing:border-box}.kb-wrap{font-family:var(--kb-font-body);color:var(--kb-charcoal)}[class^="kb-"],[class*=" kb-"]{box-sizing:border-box}.entry-content:is(.kb-hero,.kb-section,.kb-glossary-entry,.kb-juris,.kb-stat-band,.kb-cta,.kb-geo,.kb-author,.kb-faq,.kb-table-wrap,.kb-profiles,.kb-proscons,.kb-choose-grid,.kb-howto,.kb-timeline){font-family:var(--kb-font-body);color:var(--kb-charcoal)}.entry-content>p:empty,.kb-wrap>p:empty{display:none}.entry-content>p:has(>.kb-hero),.entry-content>p:has(>.kb-section),.entry-content>p:has(>.kb-stat-band),.entry-content>p:has(>.kb-cta),.entry-content>p:has(>.kb-geo),.entry-content>p:has(>.kb-author),.entry-content>p:has(>[class^="kb-"]),.kb-wrap>p:has(>[class^="kb-"]){display:contents;margin:0;padding:0}.kb-wrap>br,.entry-content>br{display:none}.kb-hero>br,.kb-section>br,.kb-stat-band>br,.kb-geo>br,.kb-author>br,.kb-cta>br{display:none}.kb-hero p,.kb-hero li,.kb-hero-inner p,.kb-hero-inner li,.kb-glossary-entry p,.kb-glossary-entry li,.kb-juris p,.kb-juris li{color:var(--kb-charcoal) !important}.kb-hero p.kb-eyebrow,.kb-hero-inner p.kb-eyebrow,.kb-glossary-entry p.kb-eyebrow,.kb-juris p.kb-eyebrow{color:var(--kb-bronze) !important}.kb-hero p.kb-deck,.kb-hero-inner p.kb-deck,.kb-glossary-entry p.kb-deck,.kb-juris p.kb-deck{color:var(--kb-charcoal-soft) !important}.kb-hero p.kb-breadcrumb a,.kb-hero-inner p.kb-breadcrumb a,.kb-glossary-entry p.kb-breadcrumb a,.kb-juris p.kb-breadcrumb a{color:var(--kb-deep-forest) !important}.kb-hero p.ez-toc-title,.kb-hero-inner p.ez-toc-title,.kb-glossary-entry p.ez-toc-title,.kb-juris p.ez-toc-title{color:var(--kb-deep-forest) !important}.kb-hero{background:var(--kb-cream);padding:56px 24px 40px}.kb-hero-inner{max-width:var(--kb-max-width);margin:0 auto}.kb-hero{color:var(--kb-deep-forest) !important}p.kb-eyebrow,.kb-eyebrow{font-family:var(--kb-font-body);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;font-weight:600;margin:0 0 14px;color:var(--kb-bronze) !important}p.kb-breadcrumb,.kb-breadcrumb{font-family:var(--kb-font-body);font-size:13px;margin:0 0 24px;color:var(--kb-charcoal) !important}p.kb-breadcrumb a,.kb-breadcrumb a{color:var(--kb-deep-forest) !important;text-decoration:none}.kb-breadcrumb a:hover{text-decoration:underline}h1.kb-h1,.kb-h1,.entry-content h1.kb-h1{font-family:var(--kb-font-display);font-weight:600;font-size:44px;line-height:1.12;letter-spacing:-0.01em;margin:0 0 16px;color:var(--kb-deep-forest) !important}h2.kb-h2,.kb-h2,.entry-content h2.kb-h2{font-family:var(--kb-font-display);font-weight:600;font-size:30px;line-height:1.2;letter-spacing:-0.005em;margin:0 0 12px;color:var(--kb-deep-forest) !important}h3.kb-h3,.kb-h3,.entry-content h3.kb-h3{font-family:var(--kb-font-display);font-weight:600;font-size:22px;line-height:1.25;margin:0 0 12px;color:var(--kb-deep-forest) !important}p.kb-lede,.kb-lede{font-size:18px;line-height:1.55;max-width:820px;margin:0 0 24px;color:var(--kb-charcoal) !important}p.kb-deck,.kb-deck{font-size:15px;line-height:1.55;max-width:760px;margin:0 0 28px;color:var(--kb-charcoal-soft) !important}.kb-snippet-target{font-size:16px;line-height:1.65;max-width:860px;padding:20px 24px;background:var(--kb-white) !important;border-left:3px solid var(--kb-warm-stone);border-radius:2px;color:var(--kb-charcoal) !important}.kb-snippet-target p{color:var(--kb-charcoal) !important;margin:0}.kb-snippet-target em{color:var(--kb-deep-forest) !important;font-style:italic}.kb-stat-band{background:var(--kb-deep-forest) !important;padding:40px 24px;color:var(--kb-white) !important}.kb-stat-grid{max-width:var(--kb-max-width);margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:28px}.kb-stat-cell{border-left:1px solid rgba(196,168,130,0.30);padding-left:22px}.kb-stat-num{font-family:var(--kb-font-display);font-size:34px;font-weight:600;line-height:1.1;margin:0 0 8px;color:var(--kb-warm-stone) !important}.kb-stat-label{font-size:12px;text-transform:uppercase;letter-spacing:0.08em;line-height:1.5;margin:0;color:rgba(255,255,255,0.92) !important}.kb-section{max-width:var(--kb-max-width);margin:0 auto;padding:var(--kb-section-pad-y) var(--kb-section-pad-x)}.kb-band-cream{background:var(--kb-cream)}.kb-band-white{background:var(--kb-white)}.kb-table-wrap{background:var(--kb-white);border:1px solid var(--kb-cream-warm);border-radius:var(--kb-radius);overflow-x:auto}.kb-table{width:100%;border-collapse:collapse;font-size:14px}.kb-table caption{caption-side:top;padding:18px 22px;text-align:left;font-family:var(--kb-font-display);font-size:18px;font-weight:600;color:var(--kb-deep-forest);border-bottom:1px solid var(--kb-cream-warm);background:var(--kb-cream)}.kb-table thead th{background:var(--kb-deep-forest);color:var(--kb-white);padding:14px 18px;text-align:left;font-weight:600;font-size:13px;letter-spacing:0.04em}.kb-table th[scope="row"]{background:var(--kb-cream);color:var(--kb-deep-forest);padding:14px 18px;text-align:left;font-weight:600;vertical-align:top;font-size:13.5px;border-bottom:1px solid var(--kb-cream-warm);min-width:180px}.kb-table td{padding:14px 18px;vertical-align:top;line-height:1.55;border-bottom:1px solid var(--kb-cream-warm);color:var(--kb-charcoal)}.kb-table tbody tr:last-child th,.kb-table tbody tr:last-child td{border-bottom:0}.kb-profiles{display:grid;grid-template-columns:1fr 1fr;gap:28px}.kb-profile{background:var(--kb-white);border:1px solid var(--kb-cream-warm);padding:32px 28px;border-radius:var(--kb-radius);color:var(--kb-charcoal-strong) !important}.kb-profile.is-warm{border-top:4px solid var(--kb-warm-stone)}.kb-profile.is-forest{border-top:4px solid var(--kb-deep-forest)}.kb-profile-tag{font-size:11px;letter-spacing:0.18em;text-transform:uppercase;font-weight:700;margin:0 0 6px}.kb-profile.is-warm .kb-profile-tag{color:var(--kb-bronze) !important}.kb-profile.is-forest .kb-profile-tag{color:var(--kb-deep-forest) !important}h3.kb-profile-name,.kb-profile-name{font-family:var(--kb-font-display);font-weight:600;font-size:26px;line-height:1.15;margin:0 0 4px;color:var(--kb-deep-forest) !important}.kb-profile-tagline{font-size:13.5px;font-style:italic;margin:0 0 22px;color:var(--kb-charcoal-soft) !important}.kb-profile h4{font-family:var(--kb-font-body);font-size:11px;letter-spacing:0.14em;text-transform:uppercase;font-weight:700;margin:18px 0 8px;color:var(--kb-deep-forest) !important}.kb-profile h4:first-of-type{margin-top:0}.kb-profile p{font-size:14.5px;line-height:1.6;margin:0;color:var(--kb-charcoal-strong) !important}.kb-proscons{display:grid;grid-template-columns:1fr 1fr;gap:24px}.kb-pc-cell{padding:24px 22px;border-radius:var(--kb-radius);color:var(--kb-charcoal-strong) !important}.kb-pc-cell.is-pro{background:var(--kb-pro-bg);border-left:3px solid var(--kb-pro-green)}.kb-pc-cell.is-con{background:var(--kb-con-bg);border-left:3px solid var(--kb-con-orange)}.kb-pc-header{font-family:var(--kb-font-body);font-size:11px;letter-spacing:0.14em;text-transform:uppercase;font-weight:700;margin:0 0 12px;color:var(--kb-deep-forest) !important}.kb-pc-cell ul{list-style:none;padding:0;margin:0}.kb-pc-cell li{font-size:14px;line-height:1.5;margin:0 0 10px;padding-left:22px;position:relative;color:var(--kb-charcoal-strong) !important}.kb-pc-cell li:last-child{margin-bottom:0}.kb-pc-cell.is-pro li::before{content:"+";position:absolute;left:0;top:-1px;color:var(--kb-pro-green);font-weight:700;font-size:17px}.kb-pc-cell.is-con li::before{content:"−";position:absolute;left:0;top:-1px;color:var(--kb-con-orange);font-weight:700;font-size:17px}.kb-callout{padding:24px 28px;border-radius:var(--kb-radius)}.kb-callout.is-warning{background:var(--kb-warning-bg);border:1px solid var(--kb-warning-border);border-left:4px solid var(--kb-warning-amber)}.kb-callout.is-info{background:var(--kb-cream);border-left:4px solid var(--kb-warm-stone)}.kb-callout.is-success{background:var(--kb-pro-bg);border-left:4px solid var(--kb-pro-green)}.kb-callout-tag{font-size:11px;letter-spacing:0.16em;text-transform:uppercase;font-weight:700;margin:0 0 8px}.kb-callout.is-warning .kb-callout-tag{color:var(--kb-warning-amber) !important}.kb-callout.is-info .kb-callout-tag{color:var(--kb-bronze) !important}.kb-callout.is-success .kb-callout-tag{color:var(--kb-pro-green) !important}.kb-callout p{font-size:15px;line-height:1.6;margin:0;color:var(--kb-charcoal-strong) !important}.kb-callout p+p{margin-top:10px}.kb-callout strong{color:var(--kb-deep-forest) !important}.kb-choose-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.kb-choose{background:var(--kb-white);border:1px solid var(--kb-cream-warm);padding:32px 28px;border-radius:var(--kb-radius);color:var(--kb-charcoal-strong) !important}.kb-choose.is-warm{border-top:4px solid var(--kb-warm-stone)}.kb-choose.is-forest{border-top:4px solid var(--kb-deep-forest)}.kb-choose-eyebrow{font-size:11px;letter-spacing:0.18em;text-transform:uppercase;font-weight:700;margin:0 0 8px}.kb-choose.is-warm .kb-choose-eyebrow{color:var(--kb-bronze) !important}.kb-choose.is-forest .kb-choose-eyebrow{color:var(--kb-deep-forest) !important}h3.kb-choose-title,.kb-choose-title{font-family:var(--kb-font-display);font-size:22px;line-height:1.25;font-weight:600;margin:0 0 16px;color:var(--kb-deep-forest) !important}.kb-choose ul{list-style:none;padding:0;margin:0 0 18px}.kb-choose li{font-size:14.5px;line-height:1.55;margin:0 0 10px;padding-left:22px;position:relative;color:var(--kb-charcoal-strong) !important}.kb-choose li::before{content:"→";position:absolute;left:0;top:0;color:var(--kb-deep-forest) !important;font-weight:700}.kb-choose-buyers{font-size:12.5px;font-style:italic;line-height:1.55;margin:0;padding-top:14px;border-top:1px dashed var(--kb-cream-warm);color:var(--kb-charcoal-soft) !important}.kb-howto{counter-reset:kb-step}.kb-step{display:grid;grid-template-columns:56px 1fr;gap:20px;padding:22px 0;border-bottom:1px solid var(--kb-cream-warm)}.kb-step:last-child{border-bottom:0}.kb-step-num{width:56px;height:56px;border-radius:50%;background:var(--kb-deep-forest) !important;color:var(--kb-warm-stone) !important;display:flex;align-items:center;justify-content:center;font-family:var(--kb-font-display);font-weight:600;font-size:22px;flex-shrink:0}.kb-step-num::before{counter-increment:kb-step;content:counter(kb-step)}.kb-step-title,.kb-step-body h4{font-family:var(--kb-font-display);font-weight:600;font-size:19px;line-height:1.3;margin:0 0 6px;color:var(--kb-deep-forest) !important}.kb-step-body p{font-size:14.5px;line-height:1.6;margin:0 0 8px;color:var(--kb-charcoal-strong) !important}.kb-step-body p:last-child{margin:0}.kb-step-body code{background:var(--kb-cream);padding:2px 6px;border-radius:3px;font-size:13px;font-family:'SF Mono',Menlo,monospace;color:var(--kb-deep-forest)}.kb-timeline{padding:0;list-style:none}.kb-timeline-item{position:relative;padding-left:36px;padding-bottom:24px;border-left:2px solid var(--kb-cream-warm)}.kb-timeline-item:last-child{border-left-color:transparent;padding-bottom:0}.kb-timeline-item::before{content:"";position:absolute;left:-7px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--kb-warm-stone);border:2px solid var(--kb-deep-forest)}.kb-timeline-date{font-size:11px;letter-spacing:0.14em;text-transform:uppercase;font-weight:700;margin:0 0 4px;color:var(--kb-bronze) !important}.kb-timeline-title{font-family:var(--kb-font-display);font-size:18px;font-weight:600;margin:0 0 6px;color:var(--kb-deep-forest) !important}.kb-timeline-body{font-size:14px;line-height:1.6;margin:0;color:var(--kb-charcoal-strong) !important}.kb-faq{display:flex;flex-direction:column;gap:12px}.kb-faq details{background:var(--kb-white);border:1px solid var(--kb-cream-warm);border-radius:var(--kb-radius);padding:0;transition:border-color 0.2s ease}.kb-faq details[open]{border-color:var(--kb-deep-forest)}.kb-faq summary{padding:18px 24px;cursor:pointer;list-style:none;font-family:var(--kb-font-body);font-size:16px;font-weight:500;display:flex;justify-content:space-between;align-items:center;gap:16px;color:var(--kb-deep-forest) !important}.kb-faq summary::-webkit-details-marker{display:none}.kb-faq summary::after{content:"+";font-size:24px;font-weight:300;line-height:1;flex-shrink:0;color:var(--kb-deep-forest) !important}.kb-faq details[open] summary::after{content:"−"}.kb-faq summary:hover{color:var(--kb-deep-forest-grad-end)}.kb-faq-answer{padding:0 24px 22px;font-size:14.5px;line-height:1.65;color:var(--kb-charcoal) !important}.kb-faq-answer p{margin:0;color:var(--kb-charcoal) !important}.kb-cta{background:linear-gradient(135deg,#1a3a1a 0%,var(--kb-deep-forest-grad-end) 100%);padding:var(--kb-section-pad-y) var(--kb-section-pad-x);color:var(--kb-white) !important}.kb-cta-inner{max-width:var(--kb-max-narrow);margin:0 auto;text-align:center}.kb-cta h2,.kb-cta-inner h2{font-family:var(--kb-font-display);font-size:32px;font-weight:600;line-height:1.2;margin:0 0 14px;color:var(--kb-white) !important}.kb-cta p,.kb-cta-inner p{font-size:16px;line-height:1.55;max-width:640px;margin:0 auto 28px;color:rgba(255,255,255,0.92) !important}.kb-cta-buttons{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}.kb-btn,a.kb-btn{display:inline-block;padding:14px 26px;font-size:14px;letter-spacing:0.04em;font-weight:500;text-decoration:none;border-radius:var(--kb-radius-pill);transition:all 0.2s ease}.kb-btn-primary,a.kb-btn.kb-btn-primary{background:var(--kb-warm-stone) !important;color:var(--kb-deep-forest) !important}.kb-btn-primary:hover{background:var(--kb-warm-stone-light) !important;color:var(--kb-deep-forest) !important}.kb-btn-outline,a.kb-btn.kb-btn-outline{background:transparent !important;color:var(--kb-white) !important;border:1px solid rgba(255,255,255,0.5) !important}.kb-btn-outline:hover{background:rgba(255,255,255,0.10) !important;border-color:var(--kb-white) !important;color:var(--kb-white) !important}.kb-geo{background:var(--kb-cream);padding:40px 24px}.kb-geo-inner{max-width:920px;margin:0 auto;padding:28px 32px;background:var(--kb-white);border:1px solid var(--kb-cream-warm);border-radius:var(--kb-radius)}.kb-geo-inner p{font-size:13.5px;line-height:1.7;margin:0;color:var(--kb-charcoal) !important}.kb-geo-tag{font-size:11px;letter-spacing:0.16em;text-transform:uppercase;font-weight:700;margin:0 0 10px;color:var(--kb-bronze) !important}.kb-author{max-width:920px;margin:0 auto;padding:32px 24px 56px}.kb-author-inner{padding:22px 26px;background:var(--kb-white);border:1px solid var(--kb-cream-warm);border-radius:var(--kb-radius);display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:start}.kb-author-mark{width:56px;height:56px;border-radius:50%;background:var(--kb-deep-forest) !important;color:var(--kb-warm-stone) !important;display:flex;align-items:center;justify-content:center;font-family:var(--kb-font-display);font-weight:600;font-size:19px;flex-shrink:0}.kb-author-tag{font-size:11px;letter-spacing:0.16em;text-transform:uppercase;font-weight:700;margin:0 0 4px;color:var(--kb-bronze) !important}p.kb-author-name,.kb-author-name{font-family:var(--kb-font-display);font-size:18px;font-weight:600;margin:0 0 6px;color:var(--kb-deep-forest) !important}.kb-author p,.kb-author p.bio-text{font-size:13.5px;line-height:1.6;margin:0;color:var(--kb-charcoal-soft) !important}.kb-author a{color:var(--kb-deep-forest) !important}.kb-hybrid-note,.kb-aside{margin-top:32px;padding:18px 22px;font-size:14px;font-style:italic;max-width:820px;background:var(--kb-cream);border-left:3px solid var(--kb-warm-stone);border-radius:2px;color:var(--kb-charcoal-soft) !important}.kb-faq summary:focus-visible,.kb-btn:focus-visible,.kb-breadcrumb a:focus-visible{outline:2px solid var(--kb-warm-stone);outline-offset:3px}.entry-content .kb-stat-num{margin:0 0 8px !important}.entry-content .kb-stat-label{margin:0 !important}.entry-content .kb-step-title{margin:0 0 4px !important}.entry-content .kb-author-mark{margin:0 !important}.entry-content .kb-author-name{margin:0 0 2px !important}.entry-content .kb-author-meta{margin:0 !important}.entry-content .kb-eyebrow{margin:0 0 8px !important}.entry-content .kb-breadcrumb{margin:0 0 16px !important}.entry-content .kb-deck{margin:12px 0 0 !important}.kb-onpage-nav{background:var(--kb-cream);padding:14px 24px;border-top:1px solid var(--kb-cream-warm);border-bottom:1px solid var(--kb-cream-warm);margin:0 0 28px;font-size:13px;display:flex;flex-wrap:wrap;gap:0 4px;align-items:center}.kb-onpage-nav a{color:var(--kb-deep-forest) !important;text-decoration:none;font-weight:500;padding:4px 14px 4px 0;position:relative}.kb-onpage-nav a:not(:last-child)::after{content:"\00b7";margin-left:14px;color:var(--kb-warm-stone);font-weight:700}.kb-toc-section{padding:0 !important;margin:0 0 28px;max-width:100% !important}.kb-toc-section .kb-onpage-nav{max-width:var(--kb-max-width);margin:0 auto;padding-left:24px;padding-right:24px}.entry-content .kb-onpage-nav a,.kb-onpage-nav a{text-decoration:none !important}.entry-content .kb-onpage-nav a:hover,.kb-onpage-nav a:hover{text-decoration:underline !important;color:var(--kb-deep-forest-grad-end) !important}.entry-content .kb-glossary-meta,.kb-glossary-meta{background:var(--kb-deep-forest) !important;color:var(--kb-white) !important;padding:32px 24px !important;margin:0 0 36px !important;border:0 !important;border-radius:0 !important;max-width:100% !important}.entry-content .kb-glossary-meta dl,.kb-glossary-meta dl{max-width:var(--kb-max-width) !important;margin:0 auto !important;display:grid !important;grid-template-rows:auto auto !important;grid-auto-columns:1fr !important;gap:8px 28px !important;padding:0 !important}.entry-content .kb-glossary-meta dd,.kb-glossary-meta dd{font-family:var(--kb-font-display) !important;font-size:20px !important;font-weight:600 !important;line-height:1.25 !important;color:var(--kb-warm-stone) !important;margin:0 !important;padding:0 0 0 22px !important;border-left:1px solid rgba(196,168,130,0.30);grid-row:1 !important}.entry-content .kb-glossary-meta dt,.kb-glossary-meta dt{font-family:var(--kb-font-body) !important;font-size:12px !important;font-weight:600 !important;letter-spacing:0.08em !important;text-transform:uppercase !important;color:rgba(255,255,255,0.92) !important;margin:0 !important;padding:0 0 0 22px !important;line-height:1.5 !important;grid-row:2 !important}.entry-content .kb-glossary-meta dt:nth-of-type(1),.kb-glossary-meta dt:nth-of-type(1),.entry-content .kb-glossary-meta dd:nth-of-type(1),.kb-glossary-meta dd:nth-of-type(1){grid-column:1}.entry-content .kb-glossary-meta dt:nth-of-type(2),.kb-glossary-meta dt:nth-of-type(2),.entry-content .kb-glossary-meta dd:nth-of-type(2),.kb-glossary-meta dd:nth-of-type(2){grid-column:2}.entry-content .kb-glossary-meta dt:nth-of-type(3),.kb-glossary-meta dt:nth-of-type(3),.entry-content .kb-glossary-meta dd:nth-of-type(3),.kb-glossary-meta dd:nth-of-type(3){grid-column:3}.entry-content .kb-glossary-meta dt:nth-of-type(4),.kb-glossary-meta dt:nth-of-type(4),.entry-content .kb-glossary-meta dd:nth-of-type(4),.kb-glossary-meta dd:nth-of-type(4){grid-column:4}@media (max-width:768px){.entry-content .kb-glossary-meta dl,.kb-glossary-meta dl{grid-template-rows:auto !important;grid-auto-flow:row !important}.entry-content .kb-glossary-meta dt,.kb-glossary-meta dt,.entry-content .kb-glossary-meta dd,.kb-glossary-meta dd{grid-column:1 !important;grid-row:auto !important;padding-left:22px !important}.entry-content .kb-glossary-meta dd,.kb-glossary-meta dd{margin-bottom:14px !important}}@media (max-width:768px){h1.kb-h1,.kb-h1{font-size:34px}h2.kb-h2,.kb-h2{font-size:26px}.kb-stat-grid{grid-template-columns:1fr 1fr;gap:20px}.kb-profiles,.kb-proscons,.kb-choose-grid{grid-template-columns:1fr;gap:16px}}@media (max-width:480px){.kb-stat-grid{grid-template-columns:1fr}.kb-section{padding:40px 18px}}


/* === HERO LEFT-ALIGN OVERRIDE (beats wp-custom-css cascade) === */
html .entry-content .kb-hero,html .entry-content .kb-hero-inner,html .entry-content .kb-hero h1,html .entry-content .kb-hero .kb-h1,html .entry-content .kb-hero .kb-breadcrumb,html .entry-content .kb-hero nav.kb-breadcrumb,html .entry-content .kb-hero .kb-eyebrow,html .entry-content .kb-hero .kb-lede,html .entry-content .kb-hero .kb-snippet-target,html .entry-content .kb-hero .kb-lede.kb-snippet-target{text-align:left!important}
html .entry-content .kb-hero .kb-h1{max-width:none!important;margin:0 0 24px!important}
html .entry-content .kb-hero-inner{max-width:1100px!important;margin:0 auto!important;padding:0!important}
html .entry-content .kb-hero{padding:56px 24px 40px!important}


/* === BLOCK RHYTHM + ALIGNMENT NORMALIZATION (2026-06-03) === */
html .entry-content .kb-section{padding:40px 24px!important;margin:0 auto!important;max-width:1100px!important}
html .entry-content .kb-stat-band,html .entry-content .kb-cta{max-width:none!important;margin:0!important;width:auto!important;padding:40px 24px!important}
html .entry-content .kb-hero{max-width:none!important;margin:0!important;padding:56px 24px 32px!important}
html .entry-content .kb-hero-inner{max-width:1100px!important;margin:0 auto!important;padding:0!important}
html .entry-content .kb-cta .kb-cta-inner{max-width:880px!important;margin:0 auto!important;padding:0!important;text-align:center!important}
html .entry-content .kb-section .kb-evidence-card,html .entry-content .kb-section .kb-evidence-card--placeholder,html .entry-content .kb-section .kb-callout,html .entry-content .kb-section .kb-refs,html .entry-content .kb-section .kb-faq{max-width:900px!important;margin:0 auto!important}


/* === COMPREHENSIVE VISUAL FIX 2026-06-03B === */
html .entry-content .kb-section.kb-band-cream{background:var(--kb-cream)!important;box-shadow:0 0 0 100vmax var(--kb-cream);clip-path:inset(0 -100vmax)}
html .entry-content .kb-section.kb-band-white{background:var(--kb-white)!important;box-shadow:0 0 0 100vmax var(--kb-white);clip-path:inset(0 -100vmax)}
html .entry-content .kb-callout{padding:36px 40px!important;margin:0 auto!important;max-width:900px!important}
html .entry-content .kb-callout.is-info{background:var(--kb-cream)!important;border-left:4px solid var(--kb-warm-stone)!important}
html .entry-content .kb-section:has(.kb-callout){padding:56px 24px!important}
html .entry-content .kb-cta-buttons,html .entry-content .kb-cta .kb-cta-buttons{display:flex!important;gap:16px!important;justify-content:center!important;flex-wrap:wrap!important;margin:24px auto 0!important;max-width:880px}
html .entry-content .kb-cta .kb-btn,html .entry-content .kb-cta a.kb-btn,html .entry-content a.kb-btn.kb-btn-primary,html .entry-content a.kb-btn.kb-btn-outline{min-width:260px!important;max-width:260px!important;text-align:center!important;padding:14px 24px!important;text-decoration:none!important;white-space:normal!important;line-height:1.3!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;box-sizing:border-box!important;height:auto!important}
html .entry-content .kb-cta a.kb-btn.kb-btn-primary{background:var(--kb-warm-stone)!important;color:var(--kb-deep-forest)!important;border:1px solid var(--kb-warm-stone)!important}
html .entry-content .kb-cta a.kb-btn.kb-btn-outline{background:transparent!important;color:var(--kb-white)!important;border:1px solid rgba(255,255,255,0.5)!important}
html .entry-content .kb-hero-inner{display:block!important}
html .entry-content .kb-hero .kb-snippet-target,html .entry-content .kb-hero .kb-lede{margin-left:0!important;margin-right:auto!important;max-width:820px!important}


/* === H1-WIDTH ALIGNMENT 2026-06-03C — all inner blocks match H1 (1100px) === */
html .entry-content .kb-section .kb-evidence-card,html .entry-content .kb-section .kb-evidence-card--placeholder,html .entry-content .kb-section .kb-callout,html .entry-content .kb-section .kb-refs,html .entry-content .kb-section .kb-faq,html .entry-content .kb-cta .kb-cta-inner,html .entry-content .kb-stat-grid{max-width:1100px!important;margin:0 auto!important}
html .entry-content .kb-cta-buttons{max-width:1100px!important;margin:24px auto 0!important}


/* === FINAL POLISH 2026-06-03D === */
html .entry-content .kb-section.kb-band-cream,html .entry-content .kb-section.kb-band-white{box-shadow:none!important;clip-path:none!important}
html .entry-content .kb-cta + .kb-section,html .entry-content .kb-cta ~ .kb-section,html .entry-content section.kb-author{background:transparent!important;box-shadow:none!important;clip-path:none!important;padding:16px 24px 0!important;margin:0 auto!important;max-width:1100px!important}
html .entry-content .kb-cta .kb-cta-inner > p,html .entry-content .kb-cta .kb-cta-inner p{text-align:center!important;max-width:720px!important;margin:0 auto 24px!important;line-height:1.55!important}
html .entry-content .kb-cta a:not(.kb-btn){color:var(--kb-warm-stone-light)!important;text-decoration:underline!important;text-underline-offset:3px!important;text-decoration-thickness:1px!important;text-decoration-color:rgba(216,193,156,0.6)!important}
html .entry-content .kb-cta a:not(.kb-btn):hover{color:var(--kb-white)!important;text-decoration-color:var(--kb-white)!important}

/* H1 end-to-end fix 2026-06-03E */
.entry-content .kb-hero-inner,.entry-content .kb-section,.entry-content .kb-cta,.entry-content .kb-stat-band{max-width:none!important;margin-left:0!important;margin-right:0!important;width:auto!important}
.entry-content .kb-section{padding-left:0!important;padding-right:0!important}

/* H1 end-to-end fix higher-specificity 2026-06-03F */
html body .entry-content .kb-hero-inner,
html body .entry-content .kb-section,
html body .entry-content .kb-cta{max-width:none!important;margin-left:0!important;margin-right:0!important;width:auto!important}

/* === v2.1 ADDITIONS — 2026-06-04: fold per-page inline styles into canonical === */

/* kb-figure / kb-figure-img / kb-figure-cap — body figure component (used on 1384) */
.kb-figure { margin: 0; }
.kb-figure-img { width: 100%; height: 280px; object-fit: cover; border-radius: 6px; display: block; }
.kb-figure-cap { margin-top: 14px; font-size: 14.5px; }

/* kb-faq-h3 — FAQ question header (used on 1384, 452) */
.kb-faq-h3 { margin: 0; font-size: 1.1em; line-height: 1.4; color: var(--kb-deep-forest, #1c3a2a); font-weight: 600; }

/* ez-toc-list — defensive suppression inside hero (EZ-TOC plugin emits this) */
.kb-hero .ez-toc-list, .kb-hero-inner .ez-toc-list { display: none; }


/* ═══════════════════════════════════════════════════════════════════════════
 * === v2.2 ADDITIONS — 2026-06-04: Phase 12 country pages folded canonical
 * ═══════════════════════════════════════════════════════════════════════════ */

/* ── 1. kb-hero-split — REPLACED for portrait-friendly lifestyle hero (E16 spirit) ──
 *
 * Was (v2.1): grid-template-columns:1fr 480px; max-height:340px; object-fit:cover
 *             → cropped portrait images to landscape, losing ~60% of the photo.
 * Now (v2.2): grid-template-columns:1fr 400px; max-height:520px; object-fit:contain
 *             → respects natural aspect of any image (portrait, square, or landscape).
 *             Mobile: image goes ABOVE text (order:-1) so the hero photo leads on phones.
 *
 * IMPACT ON TRUST PAGES (494/931/452/1384): they currently use the landscape rule.
 * After v2.2 deploy, their hero images will display at natural aspect with .kb-hero-image
 * height capped at 520px. Visual delta: minor for landscape sources (no crop, slightly
 * smaller right column), positive for portrait sources (e.g. Vinay's photo — now uncropped).
 */
.kb-hero-split { display: grid; grid-template-columns: 1fr 400px; gap: 48px; align-items: center; margin-top: 8px; }
.kb-hero-content { min-width: 0; }
.kb-hero-image { margin: 0; }
.kb-hero-image img { width: 100%; height: auto; max-height: 520px; object-fit: contain; border-radius: 8px; display: block; }
@media (max-width: 768px) {
  .kb-hero-split { grid-template-columns: 1fr; gap: 24px; }
  .kb-hero-image { order: -1; }
  .kb-hero-image img { max-height: 380px; }
}

/* ── 2. Products section — visible 4-card product range block ──
 *
 * Inserted between B4 (market data table) and B5 (how-to-order) on country pages.
 * Hub pages may also adopt this pattern for the "what we make" surface.
 *
 * E15 wpautop-safe markup pattern:
 *   <section class="kb-products-section">
 *     <h2 class="kb-h2">…</h2>
 *     <p class="kb-products-intro">…</p>
 *     <div class="kb-products-grid">
 *       <div class="kb-product-card">
 *         <div class="kb-product-card-figure"><img class="kb-product-card-img"></div>
 *         <div class="kb-product-card-body">
 *           <h3 class="kb-product-card-title">…</h3>
 *           <p class="kb-product-card-aud">…</p>
 *           <ul class="kb-product-card-specs"><li>…</li></ul>
 *           <div class="kb-product-card-cta"><a class="kb-product-card-link">…</a></div>
 *         </div>
 *       </div>
 *     </div>
 *   </section>
 *
 * Note the <div class="kb-product-card-figure"> wrapping the <img> and
 * <div class="kb-product-card-cta"> wrapping the <a> — required so wpautop sees only
 * block children inside .kb-product-card and doesn't wrap bare inline elements in <p>.
 */
.kb-products-section { padding: 36px 24px; background: #fff; }
.kb-products-section .kb-products-intro { font-size: 15.5px; line-height: 1.55; max-width: 760px; margin: 0 0 24px 0; color: #1a1a1a; }
.kb-products-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; }
.kb-product-card { border: 1px solid #e5e5e5; border-radius: 6px; background: #fff; overflow: hidden; display: flex; flex-direction: column; }
.kb-product-card-figure { margin: 0; padding: 14px; width: 100%; height: 200px; overflow: hidden; border-bottom: 1px solid #f0f0f0; background: #f5efe6; display: flex; align-items: center; justify-content: center; box-sizing: border-box; }
.kb-product-card-img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; display: block; }
.kb-product-card-body { padding: 18px 20px; display: flex; flex-direction: column; flex: 1; }
.kb-product-card-title { font-size: 17px; line-height: 1.3; margin: 0 0 10px 0; color: #1c3a2a; font-weight: 600; }
.kb-product-card-aud { font-size: 13.5px; line-height: 1.5; color: #555; margin: 0 0 12px 0; }
.kb-product-card-specs { font-size: 13px; line-height: 1.5; color: #1a1a1a; margin: 0 0 14px 0; padding-left: 18px; }
.kb-product-card-specs li { margin-bottom: 4px; }
.kb-product-card-cta { margin-top: auto; }
.kb-product-card-link { display: inline-block; font-size: 13.5px; color: #a8693a; text-decoration: none; font-weight: 500; border-bottom: 1px solid #a8693a; padding-bottom: 2px; }
.kb-product-card-link:hover { color: #8a5530; border-color: #8a5530; }
@media (max-width: 640px) {
  .kb-products-grid { grid-template-columns: 1fr 1fr; gap: 14px; }
  .kb-product-card-figure { height: 160px; padding: 10px; }
  .kb-product-card-body { padding: 14px 16px; }
}

/* ── 3. Doc/evidence chip pattern (E16) — site-wide CTA visual hierarchy ──
 *
 * "Request documentation" and "Documentation dossier" buttons render at chip size
 * (~25% of original visual area) so they don't compete with the primary
 * "Request a quote" conversion or the "Browse product range" navigation.
 *
 * What shrinks (this rule's selector set):
 *   - Bronze CTA inside evidence-card placeholder ("Request documentation")
 *   - Bronze CTA inside doc-gate bridge route ("Request {Country} documentation dossier")
 *   - Any anchor to #documentation-request (in any button class)
 *
 * What stays full size (deliberately NOT in this selector set):
 *   - .kb-btn-primary (Request a quote)
 *   - .kb-btn-outline[href="/products/"] (Browse product range)
 *   - .kb-cta .kb-btn (the bottom-of-page CTA buttons in the gradient bar)
 *
 * Padding 10px 20px → 4px 10px = 50% width × 50% height = ~25% area.
 * Font 14px → 11px = ~78% scale.
 */
.kb-evidence-card--placeholder .kb-btn--bronze,
.kb-bridge-route--documentation .kb-btn--bronze,
a[href="#documentation-request"].kb-btn,
a[href="#documentation-request"].kb-btn-outline,
a[href="#documentation-request"].kb-btn--bronze,
a[href^="#documentation"].kb-btn-outline,
a[href^="#documentation"].kb-btn--bronze {
  padding: 4px 10px !important;
  font-size: 11px !important;
  border-radius: 3px !important;
  font-weight: 500 !important;
  line-height: 1.3 !important;
  letter-spacing: 0.01em !important;
  display: inline-block !important;
}

/* Bridge-route container — tighter padding/typography so the chip looks balanced */
.kb-bridge-route--documentation { padding: 18px !important; margin: 14px 0 !important; }
.kb-bridge-route--documentation .kb-bridge-h { font-size: 14px !important; margin-bottom: 8px !important; }
.kb-bridge-route--documentation .kb-bridge-p { font-size: 13px !important; margin-bottom: 10px !important; }

/* ── 4. .kb-refs — references list (used on every country page, was unstyled) ── */
.kb-refs { list-style: none; padding: 0; margin: 18px 0 0 0; }
.kb-refs li { font-size: 13.5px; line-height: 1.55; padding: 10px 0; border-bottom: 1px solid #ebebeb; color: #2a2a2a; }
.kb-refs li:last-child { border-bottom: 0; }
.kb-refs li a { color: #1c3a2a; text-decoration: none; border-bottom: 1px solid rgba(108, 85, 48, 0.4); padding-bottom: 1px; }
.kb-refs li a:hover { border-bottom-color: #6d5530; }

/* ── 5. .kb-ecodyne-perspective centering — was per-page inline ── */
.kb-ecodyne-perspective .kb-callout { margin-left: auto; margin-right: auto; max-width: 880px; }

/* ── 6. Memory #5 — .kb-lede / .kb-snippet-target max-width override ──
 * Earlier H1-end-to-end fix set max-width:none on .kb-hero-inner / .kb-section / .kb-cta;
 * .kb-lede and .kb-snippet-target inherit a max-width from the v2.0 rules above.
 * Per memory #5 (long-standing convention), these should not be constrained inside the
 * country page anatomy — they're the snippet-prime targets and want full hero width.
 */
.entry-content .kb-lede, .entry-content .kb-snippet-target { max-width: none !important; }

/* ═══════════════════════════════════════════════════════════════════════════
 * === END v2.2 ADDITIONS ===
 * ═══════════════════════════════════════════════════════════════════════════ */

/* === Trust bar / stat-band canonical site-wide size (Phase 10 baseline 2026-06-05) === */
html body .entry-content .kb-stat-band{padding:20px 24px!important;margin:16px auto!important;max-width:1200px!important;background:#1C3A2A!important;border-radius:6px!important;color:#fff!important;width:auto!important}
html body .entry-content .kb-stat-band .kb-stat-grid,html body .entry-content .kb-stat-band .kb-stat-band-inner{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))!important;gap:16px!important;text-align:center!important;max-width:1140px!important;margin:0 auto!important;padding:0!important}
html body .entry-content .kb-stat-band .kb-stat-cell,html body .entry-content .kb-stat-band .kb-stat{text-align:center!important;padding:0!important;margin:0!important;background:transparent!important;border:none!important}
html body .entry-content .kb-stat-band .kb-stat-num,html body .entry-content .kb-stat-band .kb-stat-cell .num,html body .entry-content .kb-stat-band .kb-stat .kb-stat-num{font-family:"Cormorant Garamond",Georgia,serif!important;font-size:26px!important;color:#C4A882!important;font-weight:600!important;line-height:1.1!important;margin:0 0 4px!important;padding:0!important;display:block!important;text-align:center!important}
html body .entry-content .kb-stat-band .kb-stat-num a,html body .entry-content .kb-stat-band .kb-stat-cell .num a{color:#C4A882!important;text-decoration:none!important}
html body .entry-content .kb-stat-band .kb-stat-num a:hover,html body .entry-content .kb-stat-band .kb-stat-cell .num a:hover{text-decoration:underline!important;text-decoration-color:#C4A882!important}
html body .entry-content .kb-stat-band .kb-stat-unit{font-size:0.7em!important;font-weight:500!important;color:#C4A882!important}
html body .entry-content .kb-stat-band .kb-stat-label,html body .entry-content .kb-stat-band .kb-stat-cell .lbl,html body .entry-content .kb-stat-band .kb-stat .kb-stat-label{font-size:11px!important;color:#e6dfd0!important;letter-spacing:0.4px!important;text-transform:uppercase!important;line-height:1.35!important;margin:0!important;padding:0!important;font-weight:500!important;display:block!important;text-align:center!important}
@media (max-width:600px){html body .entry-content .kb-stat-band{padding:16px 16px!important}html body .entry-content .kb-stat-band .kb-stat-grid,html body .entry-content .kb-stat-band .kb-stat-band-inner{grid-template-columns:repeat(2,1fr)!important;gap:12px!important}}

/* WPCode 2931 */
/* Ecodyne bronze citation link — applied to all <a class="cite"> elements */
a.cite, a.cite:visited {
  color: #6D5530;
  text-decoration: underline;
  text-decoration-color: #6D5530;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
a.cite:hover, a.cite:focus {
  text-decoration-thickness: 2px;
}
/* WPCode 1900 */
/* Ecodyne Phase 3.9 — WCAG AA color contrast fix v1.1
   Deployed 2026-05-18. Color-only changes; no layout impact.
   !important required because the page-specific Get-a-Quote stylesheet
   loads AFTER this snippet in the cascade (same specificity = source order wins).
   Pre-fix ratios: gq-stat-sub 3.54, gq-helper 3.54, gq-attr-line 4.29, epf-meta 4.39 (alpha-blended)
   Post-fix targets: all >= 4.5:1 per WCAG AA */
.gq-stat-sub  { color: #767676 !important; } /* 4.54:1 on #FFFFFF */
.gq-helper    { color: #767676 !important; } /* 4.54:1 on #FFFFFF */
.gq-attr-line { color: #6E6859 !important; } /* ~5.0:1 on #FAF7F0 */
.epf-meta     { color: #C4A882 !important; } /* drop 0.85 alpha -> 5.49:1 on #1C3A2A */

/* Customizer Additional CSS */

/* =====================================================================
   ECODYNE — Customizer CSS (production pattern)
   Page content uses inline styles; this file handles header, fonts, fixes.
   ===================================================================== */

/* @import moved to top of file */

/* Page-content reset: kill any external H1/H2 family overrides */
.entry-content h1, .entry-content h2, .entry-content h3{
  font-family: 'Cormorant Garamond', Georgia, serif;
}/* Reset wpautop margins */
.entry-content > div{ margin: 0; }.entry-content > p:empty{ display: none; }/* HEADER */
header.site-header{
  background: #ffffff;
  border-bottom: 1px solid rgba(28, 58, 42, 0.08);
  padding: 12px 0;
  position: relative;
}header.site-header .ast-builder-grid-row, header.site-header .main-header-bar-wrap, header.site-header .ast-container, header.site-header .main-header-container{
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 24px;
}header.site-header .site-branding img, header.site-header .ast-builder-logo-container img, header.site-header .custom-logo{
  max-height: 52px;
  width: auto;
}header.site-header .main-header-menu li > a, header.site-header nav ul.menu li > a{
  font-family: 'Inter', sans-serif;
  font-weight: 500;
  font-size: 13.5px;
  letter-spacing: 0.01em;
  color: #1C3A2A;
  text-decoration: none;
  padding: 8px 11px;
  border-radius: 4px;
  transition: color 180ms ease, background 180ms ease;
  display: inline-block;
  white-space: nowrap;
}header.site-header .main-header-menu li > a:hover, header.site-header nav ul.menu li > a:hover{
  color: #2A5A38;
  background: rgba(45, 90, 27, 0.06);
}/* Get a Quote CTA */
header.site-header li.hp-menu-cta > a, header.site-header li.menu-item-180 > a, header.site-header li.menu-item-186 > a{
  background: #1a3a1a;
  color: #ffffff;
  padding: 9px 18px;
  margin-left: 10px;
  border-radius: 4px;
  font-weight: 500;
  border: 1.5px solid #1a3a1a;
}header.site-header li.hp-menu-cta > a:hover, header.site-header li.menu-item-180 > a:hover, header.site-header li.menu-item-186 > a:hover{
  background: #2d5a1b;
  border-color: #2d5a1b;
  color: #ffffff;
}/* Hide demo placeholders */
header.site-header nav a[href="#services"], header.site-header nav a[href="#about"], header.site-header nav a[href="#reviews"], header.site-header nav a[href="#whyus"], header.site-header nav a[href="#contact"]{
  display: none;
}header.site-header .ast-builder-social-element-inner, header.site-header .ast-header-social-1-wrap{
  display: none;
}header.site-header li.menu-item-13, header.site-header li.menu-item-19{
  display: none;
}/* Hide Astra duplicate mobile header on desktop */
@media (min-width: 769px){header.site-header .ast-mobile-header-wrap, header.site-header .ast-builder-menu-mobile, header.site-header .ast-mobile-menu-trigger-fill, header.site-header .ast-mobile-menu-trigger-minimal, header.site-header .menu-toggle, header.site-header .ast-mobile-popup-drawer, header.site-header .ast-builder-grid-row-container.site-header-mobile-section, header.site-header .ast-mobile-header-stack{
    display: none !important;
  }
}/* Header layout */
header.site-header .ast-builder-grid-row, header.site-header .main-header-bar-wrap, header.site-header .main-header-bar{
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
}header.site-header .site-branding, header.site-header .ast-builder-logo-container, header.site-header .site-header-primary-section-left{
  flex: 0 0 auto;
}header.site-header .main-header-bar-navigation, header.site-header .site-header-primary-section-right{
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: flex-end;
}header.site-header .main-header-menu, header.site-header .ast-primary-menu{
  display: flex;
  align-items: center;
  gap: 2px;
  margin: 0;
  padding: 0;
  list-style: none;
  flex-wrap: nowrap;
  white-space: nowrap;
}/* Footer */
footer .ast-small-footer-wrap a[href*="wpastra.com"], footer a[href*="wpastra.com"]{ display: none; }footer .ast-small-footer{ font-size: 12px; padding: 16px 24px; }/* Mobile responsive */
@media (max-width: 768px){header.site-header li.hp-menu-cta > a{ padding: 8px 14px; font-size: 12px; }
}/* =====================================================================
   TEXT VISIBILITY FIX
   Body color was inheriting Astra default rgb(103, 118, 142) (slate gray) — 
   washing out all text on cream/white sections. Force readable defaults
   and ensure dark sections inherit white. Logo size kept reasonable.
   ===================================================================== */

html body{ color: #2A2A2A; }/* Country-page dark-section text — class-based, safe override for canonical pages */
[class*="-bg-dark"] p, [class*="-bg-dark"] li, [class*="-bg-darkest"] p, [class*="-bg-darkest"] li, [class*="-bg-cta"] p, [class*="-bg-cta"] li, [class*="-hero"] p, [class*="-hero"] [class*="-sub"]{ color: rgba(255,255,255,0.92) !important; }[class*="-bg-dark"] h2, [class*="-bg-dark"] h3, [class*="-bg-darkest"] h2, [class*="-bg-darkest"] h3, [class*="-bg-cta"] h2, [class*="-hero"] h1, [class*="-hero"] h2{ color: #fff !important; }[class*="-bg-dark"] strong, [class*="-bg-darkest"] strong, [class*="-bg-cta"] strong, [class*="-hero"] strong{ color: #fff !important; }/* Headings on light backgrounds */
html body h1, html body h2, html body h3, html body h4, html body h5, html body h6{
  color: #1C3A2A !important;
}/* Inside dark sections (forest #1C3A2A bg), force white text */
html body div[style*="background:#1C3A2A"] *, html body div[style*="background: #1C3A2A"] *, html body div[style*="rgb(28, 58, 42)"] *{
  color: #ffffff !important;
}html body div[style*="background:#1C3A2A"] h1, html body div[style*="background:#1C3A2A"] h2, html body div[style*="background:#1C3A2A"] h3, html body div[style*="background: #1C3A2A"] h1, html body div[style*="background: #1C3A2A"] h2, html body div[style*="background: #1C3A2A"] h3{
  color: #ffffff !important;
}/* But preserve specific stylings inside dark sections (warm stone for eyebrows) */
html body div[style*="background:#1C3A2A"] [style*="color:#C4A882"], html body div[style*="background:#1C3A2A"] [style*="color: #C4A882"], html body div[style*="background: #1C3A2A"] [style*="color:#C4A882"]{
  color: #C4A882 !important;
}/* Dark sections in production reference might also have rgba whites */
html body div[style*="background:#1C3A2A"] [style*="rgba(255"], html body div[style*="background: #1C3A2A"] [style*="rgba(255"]{
  color: rgba(255, 255, 255, 0.88) !important;
}/* Cream sections — force charcoal text */
html body div[style*="background:#F5F0E8"] *:not(h1):not(h2):not(h3):not(h4), html body div[style*="background: #F5F0E8"] *:not(h1):not(h2):not(h3):not(h4){
  color: #2A2A2A !important;
}/* Preserve brand color spans on cream backgrounds */
html body div[style*="background:#F5F0E8"] [style*="color:#1C3A2A"], html body div[style*="background: #F5F0E8"] [style*="color:#1C3A2A"], html body div[style*="background:#F5F0E8"] [style*="color: #1C3A2A"]{
  color: #1C3A2A !important;
}/* Stat numbers */
html body div[style*="font-family:'Cormorant Garamond'"][style*="color:#1C3A2A"]{
  color: #1C3A2A !important;
}/* Inline styled text gets full priority — inline beats this anyway, just guarding */
html body p[style*="color:#333"]{ color: #333333 !important; }/* Logo in header — fixed reasonable size */
html body header.site-header .custom-logo, html body header.site-header .site-branding img, html body header.site-header .ast-builder-logo-container img{
  max-height: 56px !important;
  width: auto !important;
  height: auto !important;
}
@media (max-width: 768px) {html body header.site-header .custom-logo, html body header.site-header .site-branding img{ max-height: 44px !important; }
}/* Article container should NOT inherit anything weird */
html body article, html body article .entry-content{
  color: #2A2A2A !important;
}/* =====================================================================
   CTA BUTTON COLOR FIX
   Earlier rule "force white text in dark sections" was overriding the
   inline color on white CTA buttons inside the dark CTA section.
   Solution: any element with its OWN inline background keeps its OWN color.
   ===================================================================== */

/* Higher-specificity override for elements with inline white background */
html body div[style*="background:#1C3A2A"] a[style*="background:#ffffff"], html body div[style*="background: #1C3A2A"] a[style*="background:#ffffff"], html body div[style*="background:#1C3A2A"] a[style*="background: #ffffff"], html body div[style*="background: #1C3A2A"] a[style*="background: #ffffff"], html body a[style*="background:#ffffff"][style*="color:#1C3A2A"], html body a[style*="background: #ffffff"][style*="color:#1C3A2A"], html body a[style*="background:#fff"][style*="color:#1C3A2A"]{
  color: #1C3A2A !important;
  background: #ffffff !important;
}/* Generic CTA button rule: any link with inline white bg keeps forest text */
html body a[style*="background:#ffffff;"][style*="color:#1C3A2A"], html body a[style*="background:#ffffff "][style*="color:#1C3A2A"]{
  color: #1C3A2A !important;
}/* Hover state for primary CTAs (white button on dark bg) */
html body div[style*="background:#1C3A2A"] a[style*="background:#ffffff"]:hover, html body div[style*="background: #1C3A2A"] a[style*="background:#ffffff"]:hover{
  background: rgba(255,255,255,0.92) !important;
  color: #1C3A2A !important;
  transform: translateY(-1px);
  transition: all 200ms ease;
}/* =====================================================================
   HEADER FINAL — round 7
   - Menu links explicit forest color (was inheriting Astra near-white)
   - Logo larger and left-aligned (was 56px @ x=135, now 88px @ left edge)
   - All anchor tags get default forest color so nothing is invisible
   ===================================================================== */

/* CRITICAL: ALL anchor tags inherit readable color by default */
html body a{
  color: #1C3A2A;
}/* Header nav menu links — explicit dark forest, AAA contrast on white */
html body header.site-header .main-header-menu li > a, html body header.site-header nav ul.menu li > a, html body header.site-header .ast-primary-menu li > a, html body header.site-header [class*="menu"] li > a{
  color: #1C3A2A !important;
  font-family: 'DM Sans', 'Inter', -apple-system, sans-serif !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  letter-spacing: 0.01em !important;
  padding: 10px 14px !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  display: inline-block !important;
  line-height: 1.2 !important;
  border-radius: 4px !important;
  transition: color 180ms ease, background 180ms ease !important;
}html body header.site-header .main-header-menu li > a:hover, html body header.site-header nav ul.menu li > a:hover, html body header.site-header [class*="menu"] li > a:hover{
  color: #2d5a1b !important;
  background: rgba(45, 90, 27, 0.06) !important;
}/* Get a Quote CTA — white text on forest background, preserved */
html body header.site-header li.hp-menu-cta > a, html body header.site-header li.menu-item-180 > a, html body header.site-header li.menu-item-186 > a{
  background: #1a3a1a !important;
  color: #ffffff !important;
  padding: 11px 22px !important;
  margin-left: 14px !important;
  border-radius: 4px !important;
  font-weight: 600 !important;
  font-size: 13.5px !important;
  border: 1.5px solid #1a3a1a !important;
  letter-spacing: 0.02em !important;
}html body header.site-header li.hp-menu-cta > a:hover{
  background: #2d5a1b !important;
  border-color: #2d5a1b !important;
  color: #ffffff !important;
  transform: translateY(-1px);
}/* LOGO — larger, left-aligned to container edge */
html body header.site-header .custom-logo, html body header.site-header .site-branding img, html body header.site-header .ast-builder-logo-container img{
  max-height: 88px !important;
  height: 88px !important;
  width: auto !important;
  max-width: none !important;
  display: block !important;
}/* Branding container — hug the left edge */
html body header.site-header .site-branding, html body header.site-header .ast-builder-logo-container, html body header.site-header .site-header-primary-section-left, html body header.site-header .ast-builder-html-element{
  padding-left: 0 !important;
  margin-left: 0 !important;
  flex: 0 0 auto !important;
  display: flex !important;
  align-items: center !important;
}/* The container row — normal padding, content fills */
html body header.site-header .ast-builder-grid-row, html body header.site-header .main-header-bar-wrap, html body header.site-header .ast-container, html body header.site-header .main-header-container, html body header.site-header .main-header-bar{
  max-width: 1320px !important;
  margin: 0 auto !important;
  padding: 0 28px !important;
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: space-between !important;
}/* Header taller to accommodate larger logo */
html body header.site-header{
  background: #ffffff !important;
  border-bottom: 1px solid rgba(28, 58, 42, 0.08) !important;
  padding: 14px 0 !important;
  min-height: 116px !important;
}/* Mobile: smaller logo */
@media (max-width: 768px){html body header.site-header .custom-logo, html body header.site-header .site-branding img, html body header.site-header .ast-builder-logo-container img{
    max-height: 56px !important;
    height: 56px !important;
  }html body header.site-header .ast-builder-grid-row, html body header.site-header .main-header-container{ padding: 0 16px !important; }html body header.site-header{ min-height: 80px !important; padding: 10px 0 !important; }
}/* Catch any remaining link-color leak in main content area */




/* =====================================================================
   HEADER OVERFLOW + LEFT-ALIGN — round 8
   - Kill 19px horizontal overflow from ast-primary-header-bar
   - Pull logo flush left (was 112px in, target ~24px)
   - Logo even larger (96px) for stronger brand presence
   ===================================================================== */

/* Force ALL header bar containers to box-sizing border-box, width 100%, no overflow */
html body header.site-header, html body header.site-header *, html body header.site-header .ast-primary-header-bar, html body header.site-header .ast-primary-header, html body header.site-header .main-header-bar, html body header.site-header .main-header-bar-wrap, html body header.site-header .ast-builder-grid-row, html body header.site-header .ast-container{
  box-sizing: border-box !important;
}html body header.site-header .ast-primary-header-bar, html body header.site-header .ast-primary-header, html body header.site-header .main-header-bar, html body header.site-header .main-header-bar-wrap{
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  overflow: visible !important;
}html body header.site-header .ast-builder-grid-row, html body header.site-header .main-header-container, html body header.site-header .ast-container{
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 24px !important;
  margin: 0 auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  flex-wrap: nowrap !important;
}/* Body cannot scroll horizontally */
html body, html{ overflow-x: hidden !important; }/* LOGO — flush left, 96px tall */
html body header.site-header .custom-logo, html body header.site-header .site-branding img, html body header.site-header .ast-builder-logo-container img{
  max-height: 96px !important;
  height: 96px !important;
  width: auto !important;
  max-width: none !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}/* Logo container — kill ALL inherited Astra padding/margin so logo hugs left edge */
html body header.site-header .site-branding, html body header.site-header .ast-builder-logo-container, html body header.site-header .site-header-primary-section-left, html body header.site-header .ast-builder-html-element, html body header.site-header .ast-flex, html body header.site-header .site-logo-img{
  padding: 0 !important;
  margin: 0 !important;
  flex: 0 0 auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
}/* The link wrapping the logo */
html body header.site-header .custom-logo-link, html body header.site-header .site-logo-img a{
  padding: 0 !important;
  margin: 0 !important;
  display: block !important;
}/* Header height adjusted for 96px logo + breathing room */
html body header.site-header{
  background: #ffffff !important;
  border-bottom: 1px solid rgba(28, 58, 42, 0.08) !important;
  padding: 12px 0 !important;
  min-height: 124px !important;
}/* Compress nav items so all 6 fit alongside larger logo */
html body header.site-header .main-header-menu li > a, html body header.site-header nav ul.menu li > a{
  padding: 8px 10px !important;
  font-size: 13.5px !important;
}html body header.site-header li.hp-menu-cta > a, html body header.site-header li.menu-item-180 > a{
  padding: 10px 18px !important;
  font-size: 13px !important;
  margin-left: 10px !important;
}

@media (max-width: 768px) {html body header.site-header .custom-logo, html body header.site-header .site-branding img, html body header.site-header .ast-builder-logo-container img{
    max-height: 56px !important;
    height: 56px !important;
  }html body header.site-header{ min-height: 80px !important; }html body header.site-header .ast-builder-grid-row, html body header.site-header .main-header-container{ padding: 0 14px !important; }
}/* =====================================================================
   SIZE BUMP + FOOTER POLISH — round 9
   - Logo 96 → 110px (a touch larger)
   - Menu font 13.5 → 15px (slightly up)
   - Hide Astra's default "Powered by Astra" footer credit
   - Style the custom footer (#ecodyne-custom-footer) added to Post 10
   ===================================================================== */

/* Logo — a touch larger */
html body header.site-header .custom-logo, html body header.site-header .site-branding img, html body header.site-header .ast-builder-logo-container img{
  max-height: 110px !important;
  height: 110px !important;
  width: auto !important;
  max-width: none !important;
  display: block !important;
}html body header.site-header{ min-height: 138px !important; }

@media (max-width: 768px) {html body header.site-header .custom-logo, html body header.site-header .site-branding img, html body header.site-header .ast-builder-logo-container img{
    max-height: 64px !important;
    height: 64px !important;
  }html body header.site-header{ min-height: 88px !important; }
}/* Menu font — slightly larger */
html body header.site-header .main-header-menu li > a, html body header.site-header nav ul.menu li > a, html body header.site-header [class*="menu"] li > a{
  font-size: 15px !important;
  padding: 10px 13px !important;
  letter-spacing: 0.005em !important;
}html body header.site-header li.hp-menu-cta > a, html body header.site-header li.menu-item-180 > a{
  font-size: 14px !important;
  padding: 11px 20px !important;
}/* Hide Astra's default footer credit ("Powered by Astra") */
/* Style the custom footer aside that's now the last element of the article */
html body article #ecodyne-custom-footer{
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}html body article #ecodyne-custom-footer a{
  text-decoration: none !important;
  transition: color 180ms ease, background 180ms ease, border-color 180ms ease !important;
}/* Page link rows hover */
html body article #ecodyne-custom-footer nav a:hover{
  color: #ffffff !important;
  background: rgba(255,255,255,0.06) !important;
  border-radius: 3px !important;
}/* Social icon hover */
html body article #ecodyne-custom-footer div a[aria-label="Facebook"]:hover, html body article #ecodyne-custom-footer div a[aria-label="Instagram"]:hover, html body article #ecodyne-custom-footer div a[aria-label="YouTube"]:hover, html body article #ecodyne-custom-footer div a[aria-label="LinkedIn"]:hover{
  background: #C4A882 !important;
  color: #1a3a1a !important;
  border-color: #C4A882 !important;
}/* Mobile footer adjustments */
@media (max-width: 600px){html body article #ecodyne-custom-footer{
    padding: 36px 18px 28px !important;
  }html body article #ecodyne-custom-footer nav{
    flex-direction: column !important;
    align-items: stretch !important;
    text-align: center !important;
    gap: 4px !important;
  }html body article #ecodyne-custom-footer nav a{
    padding: 10px 14px !important;
  }
}/* Make article take full bleed for the footer (no Astra container clipping) */
html body article{
  display: block !important;
}/* Container padding for the article — ensure footer breaks out properly */
html body article #ecodyne-custom-footer{
  width: 100vw !important;
  margin-left: calc(-50vw + 50%) !important;
  margin-right: calc(-50vw + 50%) !important;
}/* =====================================================================
   HEADER FLOW + FOOTER FIX — round 10
   - Header was position:absolute (Astra default), hiding H1 behind it.
     Force position:relative so it takes document flow space.
   - Remove buggy "color: inherit !important" rule (killed footer link colors).
   - Override body color rule to NOT cascade into footer descendants.
   - Constrain footer to natural width, no 100vw breakout, clean edges.
   ===================================================================== */

/* HEADER — FORCE NORMAL FLOW so the article doesn't hide under it */
html body header.site-header, html body header.site-header.ast-primary-header-bar, html body header.site-header[class*="ast-"]{
  position: relative !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  z-index: 10 !important;
}/* Remove any "transparent header" mode that pulls article up under header */
html body.ast-transparent-header, html body.ast-page-builder-template{
  padding-top: 0 !important;
}html body article, html body main, html body #content{
  margin-top: 0 !important;
  padding-top: 0 !important;
}/* FOOTER COLOR FIX — ensure all text in custom footer is properly readable */
html body article #ecodyne-custom-footer, html body article #ecodyne-custom-footer *{
  color: #ffffff !important;
}html body article #ecodyne-custom-footer nav a, html body article #ecodyne-custom-footer aside a, html body #ecodyne-custom-footer nav > a{
  color: rgba(255, 255, 255, 0.88) !important;
}html body article #ecodyne-custom-footer nav a:hover{
  color: #ffffff !important;
  background: rgba(255, 255, 255, 0.06) !important;
  border-radius: 3px !important;
}/* Social icon links (FB / IG / YT / LI) — warm stone */
html body article #ecodyne-custom-footer a[aria-label="Facebook"], html body article #ecodyne-custom-footer a[aria-label="Instagram"], html body article #ecodyne-custom-footer a[aria-label="YouTube"], html body article #ecodyne-custom-footer a[aria-label="LinkedIn"]{
  color: #C4A882 !important;
  background: transparent !important;
  border: 1px solid rgba(196, 168, 130, 0.4) !important;
}html body article #ecodyne-custom-footer a[aria-label="Facebook"]:hover, html body article #ecodyne-custom-footer a[aria-label="Instagram"]:hover, html body article #ecodyne-custom-footer a[aria-label="YouTube"]:hover, html body article #ecodyne-custom-footer a[aria-label="LinkedIn"]:hover{
  background: #C4A882 !important;
  color: #1a3a1a !important;
  border-color: #C4A882 !important;
}/* Copyright + sub-line text colors */
html body article #ecodyne-custom-footer > div > div:last-child{
  color: rgba(255, 255, 255, 0.65) !important;
}html body article #ecodyne-custom-footer > div > div:last-child span{
  color: rgba(255, 255, 255, 0.5) !important;
}/* FOOTER GEOMETRY — stop the 100vw breakout (causes "green spill") */
html body article #ecodyne-custom-footer{
  width: auto !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  display: block !important;
  background: #1C3A2A !important;
}/* If the article container has horizontal padding and the footer should still fill its bg edge-to-edge inside that container, just keep it natural width. The article container itself can have its bg set to forest below the last content section if needed. */

/* Optional: constrain the inner footer content for nice readable line lengths */
html body article #ecodyne-custom-footer > div{
  max-width: 1200px !important;
  margin: 0 auto !important;
}/* === ECODYNE COUNTRY PAGE RULES === */
/* Hero H1 white on dark hero — applies to all country page prefixes */
.entry-content [class$="-hero"] h1, .entry-content [class*=" -hero"] h1{ color: #ffffff !important; }.entry-content .de-hero h1, .entry-content .cp-hero h1, .entry-content .de-hero h1 em, .entry-content .cp-hero h1 em{ color: #ffffff !important; }.entry-content .fr-hero h1, .entry-content .uk-hero h1, .entry-content .it-hero h1, .entry-content .es-hero h1, .entry-content .gr-hero h1, .entry-content .nl-hero h1, .entry-content .dk-hero h1, .entry-content .no-hero h1, .entry-content .se-hero h1, .entry-content .fi-hero h1, .entry-content .au-hero h1, .entry-content .nz-hero h1, .entry-content .ae-hero h1, .entry-content .us-hero h1, .entry-content .ca-hero h1, .entry-content .in-hero h1, .entry-content .il-hero h1, .entry-content .nrd-hero h1, .entry-content .me-hero h1{ color: #ffffff !important; }/* H2 white on dark sections — explicit per prefix */
.entry-content .de-bg-dark h2, /* H2 white on dark sections — explicit per prefix */
.entry-content .cp-bg-dark h2, .entry-content .de-bg-darkest h2, .entry-content .cp-bg-darkest h2, .entry-content .de-bg-cta h2, .entry-content .cp-bg-cta h2, .entry-content .fr-bg-dark h2, .entry-content .fr-bg-darkest h2, .entry-content .fr-bg-cta h2, .entry-content .uk-bg-dark h2, .entry-content .uk-bg-darkest h2, .entry-content .uk-bg-cta h2, .entry-content .it-bg-dark h2, .entry-content .it-bg-darkest h2, .entry-content .it-bg-cta h2, .entry-content .es-bg-dark h2, .entry-content .es-bg-darkest h2, .entry-content .es-bg-cta h2, .entry-content .gr-bg-dark h2, .entry-content .gr-bg-darkest h2, .entry-content .gr-bg-cta h2, .entry-content .nl-bg-dark h2, .entry-content .nl-bg-darkest h2, .entry-content .nl-bg-cta h2, .entry-content .dk-bg-dark h2, .entry-content .dk-bg-darkest h2, .entry-content .dk-bg-cta h2, .entry-content .no-bg-dark h2, .entry-content .no-bg-darkest h2, .entry-content .no-bg-cta h2, .entry-content .se-bg-dark h2, .entry-content .se-bg-darkest h2, .entry-content .se-bg-cta h2, .entry-content .fi-bg-dark h2, .entry-content .fi-bg-darkest h2, .entry-content .fi-bg-cta h2, .entry-content .au-bg-dark h2, .entry-content .au-bg-darkest h2, .entry-content .au-bg-cta h2, .entry-content .nz-bg-dark h2, .entry-content .nz-bg-darkest h2, .entry-content .nz-bg-cta h2, .entry-content .ae-bg-dark h2, .entry-content .ae-bg-darkest h2, .entry-content .ae-bg-cta h2, .entry-content .us-bg-dark h2, .entry-content .us-bg-darkest h2, .entry-content .us-bg-cta h2, .entry-content .ca-bg-dark h2, .entry-content .ca-bg-darkest h2, .entry-content .ca-bg-cta h2, .entry-content .in-bg-dark h2, .entry-content .in-bg-darkest h2, .entry-content .in-bg-cta h2, .entry-content .il-bg-dark h2, .entry-content .il-bg-darkest h2, .entry-content .il-bg-cta h2, .entry-content .nrd-bg-dark h2, .entry-content .nrd-bg-darkest h2, .entry-content .nrd-bg-cta h2, .entry-content .me-bg-dark h2, .entry-content .me-bg-darkest h2, .entry-content .me-bg-cta h2{ color: #ffffff !important; }/* TOC plugin hide inside hero — universal */
[class$="-hero"] #ez-toc-container, [class$="-hero"] .ez-toc-container{ display: none !important; }/* CTA buttons — Astra overrides link colour globally */
body a.de-btn-primary, /* CTA buttons — Astra overrides link colour globally */
body a.cp-btn-primary, body a.fr-btn-primary, body a.uk-btn-primary, body a.it-btn-primary, body a.es-btn-primary, body a.gr-btn-primary, body a.nl-btn-primary, body a.dk-btn-primary, body a.no-btn-primary, body a.se-btn-primary, body a.fi-btn-primary, body a.au-btn-primary, body a.nz-btn-primary, body a.ae-btn-primary, body a.us-btn-primary, body a.ca-btn-primary, body a.in-btn-primary, body a.il-btn-primary, body a.nrd-btn-primary, body a.me-btn-primary, body a.de-btn-white, body a.cp-btn-white, body a.fr-btn-white, body a.uk-btn-white, body a.it-btn-white, body a.es-btn-white, body a.gr-btn-white, body a.nl-btn-white, body a.dk-btn-white, body a.no-btn-white, body a.se-btn-white, body a.fi-btn-white, body a.au-btn-white, body a.nz-btn-white, body a.ae-btn-white, body a.us-btn-white, body a.ca-btn-white, body a.in-btn-white, body a.il-btn-white, body a.nrd-btn-white, body a.me-btn-white{ background: #fff !important; color: #1a3a1a !important; display: inline-block !important; text-decoration: none !important; }body a.de-btn-secondary, body a.cp-btn-secondary, body a.fr-btn-secondary, body a.uk-btn-secondary, body a.it-btn-secondary, body a.es-btn-secondary, body a.gr-btn-secondary, body a.nl-btn-secondary, body a.dk-btn-secondary, body a.no-btn-secondary, body a.se-btn-secondary, body a.fi-btn-secondary, body a.au-btn-secondary, body a.nz-btn-secondary, body a.ae-btn-secondary, body a.us-btn-secondary, body a.ca-btn-secondary, body a.in-btn-secondary, body a.il-btn-secondary, body a.nrd-btn-secondary, body a.me-btn-secondary, body a.de-btn-outline, body a.cp-btn-outline, body a.fr-btn-outline, body a.uk-btn-outline, body a.it-btn-outline, body a.es-btn-outline, body a.gr-btn-outline, body a.nl-btn-outline, body a.dk-btn-outline, body a.no-btn-outline, body a.se-btn-outline, body a.fi-btn-outline, body a.au-btn-outline, body a.nz-btn-outline, body a.ae-btn-outline, body a.us-btn-outline, body a.ca-btn-outline, body a.in-btn-outline, body a.il-btn-outline, body a.nrd-btn-outline, body a.me-btn-outline{ color: #fff !important; display: inline-block !important; text-decoration: none !important; }/* WCAG safety net — Warm Stone forbidden as text on light backgrounds */
[class*="-bg-cream"] [style*="#C4A882"], [class*="-bg-cream"] [style*="#c4a882"], [class*="-section"] [style*="#C4A882"], [class*="-section"] [style*="#c4a882"], [class*="-faq-item"] [style*="#C4A882"], [class*="-faq-item"] [style*="#c4a882"]{ color: #1C3A2A !important; }/* Cert badge text on cream */
[class*="-cert-grid"] [class*="-cert-desc"], [class*="-cert-grid"] [class*="-cert-meta"]{ color: #1C3A2A !important; }/* === HIDE_ASTRA_THEME_FOOTER_v1 === */
/* Hide Astra theme footer (with "Powered by Astra" credit) site-wide. Per File 05 §8 the brand uses a custom in-page footer instead. */
/* === end HIDE_ASTRA_THEME_FOOTER_v1 === */


/* ============================================================
   COUNTRY-PAGE CANONICAL CSS
   Class prefix: .cp-*  (use on every country page: DE, FR, UK, IT, ES, ...)
   To rebuild a country page: copy the Country Page Template draft, replace placeholders, save. No CSS work required.
   ============================================================ */

.cp-section{padding:80px 24px;max-width:1200px;margin:0 auto}.cp-bg-cream{background:#F5F0E8;padding:80px 24px}.cp-bg-cream>div{max-width:1200px;margin:0 auto}.cp-bg-dark{background:#1C3A2A;padding:80px 24px;color:#fff}.cp-bg-dark>div{max-width:1200px;margin:0 auto}.cp-bg-darkest{background:#0F2410;padding:80px 24px;color:#fff}.cp-bg-darkest>div{max-width:1200px;margin:0 auto}.cp-bg-cta{background:linear-gradient(135deg,#1C3A2A 0%,#2D5A1B 100%);padding:80px 24px;text-align:center;color:#fff;width:100%;box-sizing:border-box}.cp-bg-cta>div{max-width:900px;margin:0 auto}.cp-hero{background:linear-gradient(135deg,#1A3A1A 0%,#2D5A1B 100%);padding:96px 24px 72px;color:#fff;text-align:center;width:100%;box-sizing:border-box}.cp-hero>div{max-width:900px;margin:0 auto}.cp-flag{display:inline-flex;align-items:center;gap:10px;margin-bottom:18px}.cp-flag svg{display:block;border-radius:2px;box-shadow:0 1px 3px rgba(0,0,0,0.3)}.cp-flag span{color:#C4A882 !important;font-size:13px;font-weight:500;letter-spacing:0.08em;text-transform:uppercase}.cp-sub{display:inline-block;color:#A8D5A2 !important;font-size:clamp(14px,1.6vw,17px);font-weight:500;letter-spacing:0.02em;margin-bottom:24px}.cp-hero h1{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(32px,5vw,56px);font-weight:600;line-height:1.1;margin:0 0 16px;color:#fff !important}.cp-hero p{color:rgba(255,255,255,0.92) !important;font-size:clamp(16px,1.5vw,18px);line-height:1.6;max-width:760px;margin:0 auto 28px}.cp-hero-buttons{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:24px}.cp-btn{display:inline-block;padding:14px 28px;border-radius:2px;font-weight:500;text-decoration:none;font-size:15px;transition:all 0.2s;line-height:1}.cp-btn-primary{background:#fff;color:#1C3A2A !important;border:1px solid #fff}.cp-btn-primary:hover{background:#F5F0E8}.cp-btn-secondary{background:transparent;color:#fff !important;border:1px solid #fff}.cp-btn-secondary:hover{background:rgba(255,255,255,0.1)}.cp-section h2, .cp-bg-cream h2{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(22px,2.8vw,34px);color:#1C3A2A;font-weight:600;line-height:1.25;margin:0 0 20px}.cp-bg-dark h2, .cp-bg-darkest h2, .cp-bg-cta h2{color:#fff !important;font-family:'Cormorant Garamond',serif;font-size:clamp(22px,2.8vw,34px);font-weight:600;line-height:1.25;margin:0 0 20px}.cp-bg-cta h2{font-size:clamp(28px,3.5vw,42px);margin-bottom:16px}.cp-section p, .cp-bg-cream p{color:#333;font-size:16px;line-height:1.7;max-width:840px;margin:0 0 16px}.cp-bg-dark p, .cp-bg-darkest p, .cp-bg-cta p{color:rgba(255,255,255,0.92) !important;font-size:16px;line-height:1.7;margin:0 0 16px}.cp-bg-cta p{max-width:640px;margin:0 auto 28px}.cp-bg-dark ul{padding-left:20px;margin:16px 0}.cp-bg-dark li{color:rgba(255,255,255,0.92) !important;margin-bottom:10px;line-height:1.6}.cp-bg-dark strong{color:#fff !important}.cp-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:32px}.cp-stat-card{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.12);padding:28px 20px;text-align:center;border-radius:2px;min-height:180px;display:flex;flex-direction:column;justify-content:center}.cp-stat-card .label{font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:#A8D5A2 !important;margin-bottom:8px}.cp-stat-card .num{font-family:'Cormorant Garamond',serif;font-size:44px;font-weight:600;color:#fff !important;line-height:1;margin:8px 0}.cp-stat-card .desc{font-size:13px;color:rgba(255,255,255,0.85) !important;line-height:1.4;margin:0}.cp-product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:36px}.cp-product-card{background:#fff;border:1px solid #E5E0D5;border-radius:2px;overflow:hidden;display:flex;flex-direction:column}.cp-product-card>img{display:block;aspect-ratio:4/3;width:100%;object-fit:contain;background:#fff;padding:16px;box-sizing:border-box;border-bottom:1px solid #E5E0D5}.cp-product-card .body{padding:20px;flex:1;display:flex;flex-direction:column}.cp-product-card h3{font-family:'Cormorant Garamond',serif;font-size:20px;font-weight:600;color:#1C3A2A;margin:0 0 12px;line-height:1.2}.cp-product-card ul{list-style:none;padding:0;margin:0;font-size:13px;color:#444;line-height:1.7}.cp-product-card li+li{border-top:1px dashed #E5E0D5;padding-top:6px;margin-top:6px}.cp-cert-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:32px}.cp-cert-card{background:#fff;border:1px solid #E5E0D5;padding:24px 16px;text-align:center;border-radius:2px;min-height:180px;display:flex;flex-direction:column;justify-content:center}.cp-cert-card .name{font-family:'Cormorant Garamond',serif;font-size:22px;color:#1C3A2A;font-weight:600;margin:0 0 8px}.cp-cert-card .desc{font-size:12px;color:#555;line-height:1.4;margin:0 0 10px;flex:1}.cp-cert-card .status{font-size:10px;letter-spacing:0.12em;text-transform:uppercase;color:#777;font-weight:500}.cp-guarantee-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:32px}.cp-guarantee-card{border-left:3px solid #1C3A2A;padding:20px 24px;background:#fff;min-height:170px;display:flex;flex-direction:column;justify-content:center}.cp-guarantee-card h3{font-family:'Cormorant Garamond',serif;font-size:21px;color:#1C3A2A;font-weight:600;margin:0 0 10px;line-height:1.2}.cp-guarantee-card p{font-size:14px;color:#444;line-height:1.6;margin:0;max-width:none}.cp-about{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}.cp-about-img{aspect-ratio:4/3;border-radius:2px;overflow:hidden;background:#000;min-height:280px}.cp-about-img>img{display:block;width:100% !important;height:100% !important;object-fit:cover !important;max-width:none !important}.cp-resource-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:32px}.cp-resource-card{background:#fff;border:1px solid #E5E0D5;padding:24px 20px;border-radius:2px;min-height:160px;display:flex;flex-direction:column}.cp-resource-card h3{font-family:'Cormorant Garamond',serif;font-size:18px;color:#1C3A2A;font-weight:600;margin:0 0 10px;line-height:1.2}.cp-resource-card p{font-size:13px;color:#555;line-height:1.5;margin:0 0 12px;flex:1;max-width:none}.cp-resource-card a{color:#1C3A2A;font-size:13px;font-weight:500;text-decoration:none;letter-spacing:0.02em;margin-top:auto}.cp-resource-card a:after{content:' ' '\2192'}.cp-video{margin:32px auto 0;max-width:900px;aspect-ratio:16/9;border-radius:2px;overflow:hidden;background:#000;box-shadow:0 4px 24px rgba(0,0,0,0.15)}.cp-video iframe{width:100%;height:100%;border:0;display:block}.cp-faq-list{margin-top:32px;display:flex;flex-direction:column;gap:8px}.cp-faq{border:1px solid #E5E0D5;border-radius:2px;background:#fff;overflow:hidden}.cp-faq summary{padding:18px 24px;cursor:pointer;font-weight:500;color:#1C3A2A;font-size:15px;list-style:none;display:flex;justify-content:space-between;align-items:center;line-height:1.4}.cp-faq summary::-webkit-details-marker{display:none}.cp-faq summary:after{content:'+';font-size:24px;font-weight:300;color:#888;flex-shrink:0;margin-left:16px;line-height:1}.cp-faq[open] summary:after{content:'\2212'}.cp-faq[open] summary{border-bottom:1px solid #E5E0D5}.cp-faq .answer{padding:18px 24px 22px}.cp-faq .answer p{font-size:15px;color:#444;line-height:1.7;margin:0;max-width:none}#ecodyne-custom-footer{background:#0F2410;color:rgba(255,255,255,0.75);padding:64px 24px 32px;font-size:14px;line-height:1.6}#ecodyne-custom-footer .ftr-cols{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:32px}#ecodyne-custom-footer h3{color:#fff !important;font-family:'Cormorant Garamond',serif;font-size:16px;font-weight:600;letter-spacing:0.04em;margin:0 0 16px;text-transform:uppercase}#ecodyne-custom-footer ul{list-style:none;padding:0;margin:0}#ecodyne-custom-footer li{margin-bottom:8px;color:rgba(255,255,255,0.75) !important}#ecodyne-custom-footer a{color:rgba(255,255,255,0.75) !important;text-decoration:none}#ecodyne-custom-footer a:hover{color:#C4A882 !important}#ecodyne-custom-footer .social{display:flex;gap:14px;margin-top:8px}#ecodyne-custom-footer .social a{width:36px;height:36px;border:1px solid rgba(255,255,255,0.2);border-radius:50%;display:flex;align-items:center;justify-content:center}#ecodyne-custom-footer .social a:hover{border-color:#C4A882}#ecodyne-custom-footer .social svg{width:16px;height:16px;fill:currentColor}#ecodyne-custom-footer .copyright{max-width:1200px;margin:48px auto 0;padding-top:24px;border-top:1px solid rgba(255,255,255,0.1);text-align:center;font-size:12px;color:rgba(255,255,255,0.5) !important}.cp-bg-dark dl{margin:16px 0;padding:0}.cp-bg-dark dt{color:#fff !important;font-weight:600;font-size:16px;margin-top:18px;padding-top:18px;border-top:1px solid rgba(255,255,255,0.14);line-height:1.4}.cp-bg-dark dt:first-of-type{border-top:0;padding-top:0;margin-top:0}.cp-bg-dark dt a{color:#A8D5A2 !important;text-decoration:underline;text-decoration-color:rgba(168,213,162,0.4)}.cp-bg-dark dt a:hover{text-decoration-color:#A8D5A2}.cp-bg-dark dd{color:rgba(255,255,255,0.92) !important;font-size:15px;line-height:1.65;margin:8px 0 0 0;padding:0;max-width:none}@media(max-width:900px){.cp-stat-grid, .cp-product-grid, .cp-cert-grid, .cp-resource-grid{grid-template-columns:repeat(2,1fr)}.cp-guarantee-grid{grid-template-columns:1fr}.cp-about{grid-template-columns:1fr;gap:24px}#ecodyne-custom-footer .ftr-cols{grid-template-columns:repeat(2,1fr);gap:24px}}
@media(max-width:560px){.cp-stat-grid, .cp-product-grid, .cp-cert-grid, .cp-resource-grid{grid-template-columns:1fr}#ecodyne-custom-footer .ftr-cols{grid-template-columns:1fr}}



/* ECODYNE: CTA card full-bleed fix */
.entry-content > div[style*="background:#1C3A2A;padding:12px 32px"]{width:100vw !important;margin-left:calc(50% - 50vw) !important;margin-right:calc(50% - 50vw) !important;box-sizing:border-box !important;}

/* EZTOC — hide TOC visually site-wide (SEO anchor links preserved in DOM) */
#ez-toc-container { display: none !important; }


/* GUARD-V1-2026-05-05: light-hero defensive override */
/* Some pages use light hero variants (cream/white). The earlier rule
   targeting [class*="-hero"] p forces white text, which fails contrast on
   light backgrounds. This override restores readable Charcoal/Forest text
   on light hero panels while leaving dark heroes untouched. */
.wt-section[class*="bg-cream"] [class*="-hero"] p,
.wt-section[class*="bg-cream"] [class*="-hero"] [class*="-sub"],
.wt-section[class*="bg-cream"] [class*="-hero"] .ez-toc-title,
.wt-section[class*="bg-white"] [class*="-hero"] p,
.wt-section[class*="bg-white"] [class*="-hero"] [class*="-sub"],
.wt-section[class*="bg-white"] [class*="-hero"] .ez-toc-title { color: #2a2a2a !important; }

/* Brand eyebrows must use Forest, not Warm Stone, on light backgrounds.
   Warm Stone (#C4A882 / #B08D50) on cream/white fails WCAG AA contrast. */
.wt-section[class*="bg-cream"] .wt-label,
.wt-section[class*="bg-white"] .wt-label,
.wt-section[class*="bg-cream"] .wt-doc-num,
.wt-section[class*="bg-white"] .wt-doc-num { color: #1c3a2a !important; }


/* GUARD-V2-2026-05-05: chrome contrast after palette swap */
/* The Astra global palette was swapped to brand colours (Color 0 = Cream).
   Two chrome elements had hardcoded white assuming a dark Color 0 background.
   These overrides restore readable brand colours on the new cream chrome. */
.site-below-footer-wrap,
.site-below-footer-wrap *,
.ast-below-footer-section,
.ast-below-footer-section *,
.ast-below-footer-section a { color: #2A2A2A !important; }

#ast-scroll-top,
#ast-scroll-top svg,
#ast-scroll-top .ast-icon,
#ast-scroll-top path { color: #1C3A2A !important; fill: #1C3A2A !important; }

/* Subtle border to keep the scroll-top button discoverable on cream */
#ast-scroll-top { border: 1px solid #1C3A2A !important; background-color: #FFFFFF !important; }


/* GUARD-V3-2026-05-05: header bar white override */
/* Override header bar background from palette default to pure white,
   while keeping global Color 0 (Cream) for footer copyright bar etc. */
.ast-primary-header-bar.main-header-bar,
.ast-primary-header-bar.site-primary-header-wrap { background-color: #FFFFFF !important; }


/* About page (ab-) overrides */
body .ab-hero h1, body .ab-hero h1 em { color:#ffffff !important; }
body .ab-bg-dark h2, body .ab-bg-darkest h2, body .ab-bg-cta h2 { color:#ffffff !important; }
.ab-hero #ez-toc-container, .ab-hero .ez-toc-container { display:none !important; }
body a.ab-btn-primary { background:#fff !important; color:#1a3a1a !important; display:inline-block !important; text-decoration:none !important; }
body a.ab-btn-secondary { color:#fff !important; display:inline-block !important; text-decoration:none !important; border:1.5px solid #ffffff !important; }
body a.ab-btn-cta { background:#fff !important; color:#1a3a1a !important; display:inline-block !important; text-decoration:none !important; }
body .ab-h2 { font-size: clamp(22px, 2.8vw, 34px) !important; }


/* HP HUB OVERRIDES v1 — Homepage Template A — added by build script */
body .hp-hero h1, body .hp-hero h1 em { color: #ffffff !important; }
body .hp-bg-dark h2, body .hp-bg-darkest h2,
body .hp-bg-cta h2 { color: #ffffff !important; }
.hp-hero #ez-toc-container,
.hp-hero .ez-toc-container { display: none !important; }
body a.hp-btn-primary { background:#ffffff !important; color:#1a3a1a !important;
  display:inline-block !important; text-decoration:none !important; }
body a.hp-btn-secondary { color:#ffffff !important;
  display:inline-block !important; text-decoration:none !important;
  border:1.5px solid #ffffff !important; }
body a.hp-btn-white { background:#ffffff !important; color:#1a3a1a !important;
  display:inline-block !important; text-decoration:none !important; }
body a.hp-btn-outline { color:#1a3a1a !important;
  display:inline-block !important; text-decoration:none !important;
  border:1.5px solid #1a3a1a !important; }
body .hp-h2 { font-size: clamp(22px, 2.8vw, 34px) !important; }
body .hp-cert-grid .hp-cert-desc { color: #1C3A2A !important; }
body .hp-buyer-card h3 { color: #ffffff !important; }
body .hp-section h2.hp-h2 { color: #1C3A2A !important; }
body .hp-bg-dark h2.hp-h2, body .hp-bg-darkest h2.hp-h2, body .hp-bg-cta h2.hp-h2 { color: #ffffff !important; }
/* end HP HUB OVERRIDES v1 */

/* =====================================================================
   ECODYNE -- About Ecodyne accordion typography (brand correction v3)
   The FAQ accordion uses summary with an inner h3 element, so its text
   inherits Cormorant Garamond from the page H3 rule. The About accordion
   has only plain summary text with no inner h3, so the text inherits Inter
   from body. v3 makes the about summary visually render like an h3
   (Cormorant Garamond, 21px, 600, Deep Forest) so both accordions read
   as siblings.
   ===================================================================== */

/* Borders to Stone Border */
body .ecd-about,
body .ecd-faq,
body .ecd-faq-item { border-color: #E8E3D8 !important; }

/* Section H2 size to match other section H2s */
body .ecd-about h2 {
  font-size: 36px !important;
  line-height: 1.2 !important;
}
@media (max-width: 768px) {
  body .ecd-about h2 { font-size: 28px !important; }
}

/* Eyebrow to Deep Forest */
body .ecd-about-eyebrow { color: #1C3A2A !important; }

/* Question text rendered as if it were an h3 -- matches FAQ accordion */
body .ecd-faq-item summary {
  font-family: "Cormorant Garamond", Georgia, serif !important;
  font-size: 21px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  color: #1C3A2A !important;
}
body .ecd-faq-item summary:hover { color: #2D5A40 !important; }

/* Plus and minus toggle to Deep Forest, 24px to match FAQ accordion */
body .ecd-faq-item summary::after {
  color: #1C3A2A !important;
  font-size: 24px !important;
}

/* Answer body to Charcoal, 15px to match FAQ accordion */
body .ecd-faq-panel {
  color: #2A2A2A !important;
  font-size: 15px !important;
}
body .ecd-faq-panel strong { color: #1C3A2A !important; }
/* end ECODYNE about-section override v3 */


/* ============================================================
   ECODYNE — Social icons in Warm Stone (brand gold) v1
   Footer .epf-social + new header social row
   Brand book: Warm Stone #C4A882 on Deep Forest #1C3A2A only
   ============================================================ */
.epf-social a,
.epf-social a svg,
.epf-social a svg * {
  color: #C4A882 !important;
  fill: #C4A882 !important;
}
.epf-social a:hover,
.epf-social a:hover svg,
.epf-social a:hover svg * {
  color: #FFFFFF !important;
  fill: #FFFFFF !important;
}

/* Header social row (mirrors footer styling) */
.ecodyne-header-social {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 16px;
  padding: 8px 0;
  background: #1C3A2A;
  width: 100%;
}
.ecodyne-header-social a {
  color: #C4A882;
  display: inline-flex;
  align-items: center;
  line-height: 0;
  transition: color 150ms ease;
}
.ecodyne-header-social a svg,
.ecodyne-header-social a svg * {
  fill: currentColor;
  width: 18px;
  height: 18px;
}
.ecodyne-header-social a:hover { color: #FFFFFF; }
/* end ECODYNE social-icons gold v1 */


/* Astra Header Builder Social element — Warm Stone gold */
.ast-builder-social-element,
.ast-builder-social-element .social-item,
.ast-builder-social-element a,
.ast-builder-social-element a svg,
.ast-builder-social-element a svg * {
  color: #C4A882 !important;
  fill: #C4A882 !important;
  background: transparent !important;
}
.ast-builder-social-element a:hover,
.ast-builder-social-element a:hover svg,
.ast-builder-social-element a:hover svg * {
  color: #FFFFFF !important;
  fill: #FFFFFF !important;
}
/* Below Header row — Deep Forest background to satisfy WCAG with Warm Stone */
.ast-below-header-wrap,
.ast-below-header,
.site-below-header-wrap {
  background-color: #1C3A2A !important;
}
.ast-below-header-wrap .ast-builder-social-element {
  justify-content: center !important;
  padding: 6px 0 !important;
}
/* end ECODYNE astra-social override v1 */


/* ECODYNE — Below Header social visibility fix v1
   Astra hides the wrap under transparent header + SVGs lack inline size */
.ast-header-social-1-wrap,
.ast-below-header-wrap .ast-header-social-wrap,
.ast-below-header-wrap .header-social-inner-wrap {
  display: inline-flex !important;
  align-items: center;
}
.ast-header-social-1-wrap .ahfb-svg-iconset {
  display: inline-flex !important;
  width: 18px;
  height: 18px;
}
.ast-header-social-1-wrap .ahfb-svg-iconset svg {
  width: 18px !important;
  height: 18px !important;
  fill: currentColor;
}
.ast-header-social-1-wrap a {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  padding: 0 10px;
  color: #C4A882 !important;
  line-height: 0;
}
.ast-header-social-1-wrap a:hover { color: #FFFFFF !important; }
.ast-below-header-wrap .site-header-below-section-center {
  justify-content: center !important;
  display: flex !important;
}
/* end ECODYNE social visibility fix v1 */


/* ECODYNE — header social FINAL gold lock v2
   Anchor has class .ast-builder-social-element (not a descendant);
   force gold on every level so SVG path can't inherit Deep Forest */
.ast-header-social-1-wrap .ast-builder-social-element,
.ast-header-social-1-wrap a.ast-builder-social-element,
.ast-header-social-1-wrap .ast-builder-social-element svg,
.ast-header-social-1-wrap .ast-builder-social-element svg *,
.ast-header-social-1-wrap .ahfb-svg-iconset,
.ast-header-social-1-wrap .ahfb-svg-iconset svg,
.ast-header-social-1-wrap .ahfb-svg-iconset svg * {
  color: #C4A882 !important;
  fill: #C4A882 !important;
}
.ast-header-social-1-wrap .ast-builder-social-element:hover,
.ast-header-social-1-wrap .ast-builder-social-element:hover svg,
.ast-header-social-1-wrap .ast-builder-social-element:hover svg *,
.ast-header-social-1-wrap .ast-builder-social-element:hover .ahfb-svg-iconset,
.ast-header-social-1-wrap .ast-builder-social-element:hover .ahfb-svg-iconset svg,
.ast-header-social-1-wrap .ast-builder-social-element:hover .ahfb-svg-iconset svg * {
  color: #FFFFFF !important;
  fill: #FFFFFF !important;
}
/* end ECODYNE social FINAL gold lock v2 */


/* ECODYNE — center the header social row to match footer */
.ast-below-header-wrap .ast-builder-grid-row,
.ast-below-header-wrap .site-header-below-section-center,
.ast-below-header-wrap .ast-builder-layout-element {
  display: flex !important;
  justify-content: center !important;
  width: 100%;
}
.ast-header-social-1-wrap {
  display: inline-flex !important;
  justify-content: center !important;
  margin: 0 auto;
}
/* end centering */


/* ECODYNE — header social: right-align + slightly bigger icons */
.ast-below-header-wrap .ast-builder-grid-row,
.ast-below-header-wrap .site-header-below-section-center,
.ast-below-header-wrap .ast-builder-layout-element {
  justify-content: flex-end !important;
}
.ast-header-social-1-wrap {
  justify-content: flex-end !important;
  margin: 0 0 0 auto !important;
  padding-right: 24px;
}
.ast-header-social-1-wrap .ahfb-svg-iconset,
.ast-header-social-1-wrap .ahfb-svg-iconset svg {
  width: 22px !important;
  height: 22px !important;
}
/* end right-align + size bump */


/* === KB HUB + CATEGORY INDEX FIXES (May 2026) === */

/* 1. Override the inherited [class*="-hero"] h1 { color: white !important } rule
      that was written for dark-background heroes. Our KB hub + KB category indices
      use cream-background heroes, where white H1 text becomes invisible. */
.entry-content .kb-hero h1,
.entry-content .kbcat-hero h1.kbcat-h1 {
  color: #1C3A2A !important;
}
.entry-content .kbcat-hero p.kbcat-lede {
  color: #2A2A2A !important;
}
.entry-content .kbcat-hero .kbcat-eyebrow {
  color: #C4A882 !important;
}
.entry-content .kbcat-hero .kbcat-breadcrumb {
  color: #2A2A2A !important;
}
.entry-content .kbcat-hero .kbcat-breadcrumb a {
  color: #1C3A2A !important;
}

/* 2. Hide the Astra theme-injected page-title H1 ON KB pages only.
      Page IDs: 961 (KB hub), 963, 965, 967, 969, 971, 973, 975 (categories). */
body.page-id-961 .entry-header.ast-no-thumbnail,
body.page-id-963 .entry-header.ast-no-thumbnail,
body.page-id-965 .entry-header.ast-no-thumbnail,
body.page-id-967 .entry-header.ast-no-thumbnail,
body.page-id-969 .entry-header.ast-no-thumbnail,
body.page-id-971 .entry-header.ast-no-thumbnail,
body.page-id-973 .entry-header.ast-no-thumbnail,
body.page-id-975 .entry-header.ast-no-thumbnail {
  display: none !important;
}

/* === END KB FIXES === */

/* === KB FIXES v2 — image height + hero lede + WCAG eyebrows (May 2026) === */

/* 1. Hero image — IMG_9598 is 1170x1166 (square) so height:auto rendered ~977px tall.
      Constrain to landscape banner band; center-crop preserves the buffet centerpiece. */
.entry-content .kb-hero-img {
  max-height: 420px !important;
  object-fit: cover !important;
  object-position: center !important;
}

/* 2. Hero subtitle on KB hub — inherited [class*="-hero"] global rule was forcing white on cream.
      My h1 fix earlier covered the H1 only; this covers the lede paragraph. */
.entry-content .kb-hero p.kb-hero-sub {
  color: #2A2A2A !important;
}

/* 3. WCAG eyebrows — Warm Stone #C4A882 on cream/white fails AA (1.7-2.0:1).
      Per File 05 §7: Warm Stone permitted ONLY on Deep Forest backgrounds.
      Switch eyebrows on light backgrounds to Deep Forest. Visual hierarchy is
      preserved by typography (uppercase, 11px, letter-spacing 0.18em). */
.entry-content .kb-section .kb-eyebrow,
.entry-content .kb-bg-cream .kb-eyebrow,
.entry-content .kb-hero .kb-eyebrow,
.entry-content .kbcat-section .kbcat-eyebrow,
.entry-content .kbcat-bg-cream .kbcat-eyebrow,
.entry-content .kbcat-hero .kbcat-eyebrow {
  color: #1C3A2A !important;
}

/* 4. Featured asset meta + category article status meta — same Warm Stone issue */
.entry-content .kb-feat-meta,
.entry-content .kbcat-article-meta {
  color: #1C3A2A !important;
}

/* 5. Topic bullet "—" character on category pages — same Warm Stone fix */
.entry-content .kbcat-topics li::before {
  color: #1C3A2A !important;
}

/* 6. Featured asset card left border — Warm Stone is fine as a border (decorative
      non-text per File 05 contrast rules) BUT 3:1 minimum applies for non-text UI.
      Warm Stone on white = 2.27:1 — also fails. Switch to Deep Forest border. */
.entry-content .kb-feat {
  border-left-color: #1C3A2A !important;
}

/* 7. CTA section eyebrows ARE on dark green bg — Warm Stone is allowed here per
      File 05 §7 (6.0:1 AA on Deep Forest). The page already uses inline rgba white
      so no change needed, but make sure white is enforced if class rules collide. */
.entry-content .kb-bg-cta .kb-eyebrow,
.entry-content .kbcat-bg-cta .kbcat-eyebrow {
  color: rgba(255,255,255,0.85) !important;
}

/* === END KB FIXES v2 === */

/* ECODYNE_MOBILE_BURGER_V1 — mobile burger visibility 2026-05-22 (overrides .ast-menu-toggle cream-on-white) */
.ast-menu-toggle,
.ast-menu-toggle:hover,
.ast-menu-toggle:focus {
  color: #1C3A2A !important;
}


/* ECODYNE_KB_RENDER_V1 — global kb-geo/kb-author/kb-cta rendering 2026-05-22 */:root{--kb-deep-forest:#1C3A2A;--kb-deep-forest-grad-end:#2d5a1b;--kb-warm-stone:#C4A882;--kb-warm-stone-light:#d8c19c;--kb-bronze:#6D5530;--kb-cream:#f5f2ed;--kb-cream-warm:#e6dfd0;--kb-charcoal:#2A2A2A;--kb-charcoal-soft:#4a4a4a;--kb-charcoal-strong:#1f1f1f;--kb-white:#ffffff;--kb-font-display:'Cormorant Garamond',Georgia,serif;--kb-font-body:'DM Sans',-apple-system,sans-serif;--kb-radius:4px;}/* kb-geo block */ .kb-geo{background:var(--kb-cream);padding:40px 24px;margin:0;}.kb-geo-inner{max-width:920px;margin:0 auto;padding:28px 32px;background:var(--kb-white);border:1px solid var(--kb-cream-warm);border-radius:var(--kb-radius);}.kb-geo-inner p{font-size:13.5px;line-height:1.7;margin:0;color:var(--kb-charcoal) !important;}.kb-geo-tag{font-size:11px;letter-spacing:0.16em;text-transform:uppercase;font-weight:700;margin:0 0 10px !important;color:var(--kb-bronze) !important;font-family:var(--kb-font-body);}/* kb-author block */ .kb-author{max-width:920px;margin:0 auto;padding:32px 24px 56px;}.kb-author-inner{padding:22px 26px;background:var(--kb-white);border:1px solid var(--kb-cream-warm);border-radius:var(--kb-radius);display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:start;}.kb-author-mark{width:56px;height:56px;border-radius:50%;background:var(--kb-deep-forest) !important;color:var(--kb-warm-stone) !important;display:flex;align-items:center;justify-content:center;font-family:var(--kb-font-display);font-weight:600;font-size:19px;flex-shrink:0;margin:0 !important;}.kb-author-tag{font-size:11px;letter-spacing:0.16em;text-transform:uppercase;font-weight:700;margin:0 0 4px !important;color:var(--kb-bronze) !important;font-family:var(--kb-font-body);}.kb-author-name{font-family:var(--kb-font-display) !important;font-size:18px !important;font-weight:600 !important;margin:0 0 6px !important;color:var(--kb-deep-forest) !important;}.kb-author p.bio-text{font-size:13.5px;line-height:1.6;margin:0;color:var(--kb-charcoal-soft) !important;}.kb-author a{color:var(--kb-deep-forest) !important;}/* kb-cta block */ .kb-cta{background:linear-gradient(135deg,var(--kb-deep-forest),var(--kb-deep-forest-grad-end)) !important;color:var(--kb-white) !important;padding:40px 28px;border-radius:var(--kb-radius);margin:36px auto;max-width:920px;text-align:center;}.kb-cta h3{font-family:var(--kb-font-display) !important;font-size:1.7em !important;margin:0 0 12px !important;color:var(--kb-white) !important;}.kb-cta p{font-size:1.05em;line-height:1.6;margin:0 0 20px !important;color:var(--kb-white) !important;}.kb-cta a.btn{display:inline-block;background:var(--kb-warm-stone) !important;color:var(--kb-deep-forest) !important;padding:14px 28px;border-radius:var(--kb-radius);text-decoration:none;font-weight:600;font-family:var(--kb-font-body);}.kb-cta a.btn:hover{background:var(--kb-warm-stone-light) !important;}


/* ECODYNE_KB_HERO_TEXT_V1 — kb-hero is on WHITE bg; override [class*='-hero'] p white rule 2026-05-22 */
.kb-hero p, .entry-content .kb-hero p, .kb-hero p.kb-lede, .entry-content .kb-hero p.kb-lede { color: #2A2A2A !important; }


/* ============================================================================
   ECODYNE KB HERO FIX PACK v1 — 2026-05-28
   Fixes the following on all KB pages using canonical KB CSS v2.0:
   (1) Lede <strong> was rendering WHITE on WHITE — broken by
       [class*="-hero"] strong { color: #fff !important } earlier in this file,
       which unintentionally matches .kb-hero because "-hero" is a substring.
   (2) Hero H1, breadcrumb, lede were left-drifted — now centered.
   (3) Hero felt boxed-in — tightened padding + lede no longer has the snippet
       box treatment when nested inside the hero.
   Specificity: .entry-content .kb-hero ... (0,0,2,1) beats the (0,0,1,1) bad
   rule, so this works regardless of source order.
   ============================================================================ */
.entry-content .kb-hero strong,
.entry-content .kb-hero-inner strong,
.entry-content .kb-snippet-target strong {
  color: #1c3a2a !important;
}
.entry-content .kb-hero {
  text-align: center !important;
  padding: 48px 24px 36px !important;
}
.entry-content .kb-hero-inner {
  text-align: center !important;
  max-width: 920px !important;
  margin: 0 auto !important;
}
.entry-content .kb-hero h1 {
  text-align: center !important;
  font-size: clamp(34px, 4.2vw, 48px) !important;
  line-height: 1.15 !important;
  margin: 0 auto 18px !important;
  max-width: 840px !important;
  letter-spacing: -0.012em !important;
}
.entry-content .kb-hero .kb-breadcrumb,
.entry-content .kb-hero nav.kb-breadcrumb {
  text-align: center !important;
  justify-content: center !important;
  margin: 0 auto 18px !important;
}
.entry-content .kb-hero .kb-lede,
.entry-content .kb-hero .kb-snippet-target,
.entry-content .kb-hero .kb-lede.kb-snippet-target {
  text-align: center !important;
  max-width: 720px !important;
  margin: 0 auto !important;
  background: transparent !important;
  border-left: none !important;
  padding: 0 !important;
  font-size: 17px !important;
  line-height: 1.6 !important;
}
/* END ECODYNE KB HERO FIX PACK v1 */


