/* ============================================================
   EPD Portal — Editorial Design System
   Principle: restraint, bold type, intentional space.
   ============================================================ */

/* ── Tokens ─────────────────────────────────────────────────── */
:root {
    --ink:       #0F1A13;
    --forest:    #1B4332;
    --sage:      #4A7C59;
    --gold:      #C9914A;
    --cream:     #F7F3EC;
    --paper:     #FDFAF5;
    --white:     #FFFFFF;
    --muted:     #7A8A7E;
    --rule:      rgba(15,26,19,.12);

    --serif:     'Cormorant Garamond', Georgia, serif;
    --sans:      'IBM Plex Sans', system-ui, sans-serif;
    --mono:      'IBM Plex Mono', 'Courier New', monospace;

    --header-h:  68px;
    --ease:      cubic-bezier(0.25, 0.46, 0.45, 0.94);

    /* ═══ EUROPEAN REGISTER DESIGN SYSTEM ═══════════════════════════════════ */
    --f-display: 'Cormorant Garamond', Georgia, serif;
    --f-plex:    'IBM Plex Sans', system-ui, sans-serif;
    --f-mono:    'IBM Plex Mono', 'Courier New', monospace;

    --co-bg:     #FAFAF8;
    --co-ink:    #111111;
    --co-rust:   #B5541C;
    --co-stamp:  #8B4010;
    --co-panel:  #F0EDE8;
    --co-rule:   #E0DCD5;
    --co-muted:  #888078;
    --co-white:  #FFFFFF;

    /* ── Typography scale (4 sizes — nothing smaller than --t-sm) ── */
    --t-xl:  2rem;        /* Hero / large display — Cormorant Garamond  */
    --t-lg:  1.25rem;     /* Card/page titles, H2, H3         */
    --t-md:  1rem;        /* Body text — default reading size */
    --t-sm:  0.8125rem;   /* Labels, captions, meta           */
    --callout-bg:     #f0f7f2;
    --callout-border: #3d7a55;
}

/* ── Reset ───────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
    font-family: var(--sans);
    color: var(--ink);
    background: var(--paper);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }

/* ── Reveal ──────────────────────────────────────────────────── */
.reveal {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity .9s var(--ease), transform .9s var(--ease);
}
.reveal.visible { opacity: 1; transform: none; }
.d1 { transition-delay: .08s; }
.d2 { transition-delay: .18s; }
.d3 { transition-delay: .30s; }
.d4 { transition-delay: .42s; }

/* ── Typography ──────────────────────────────────────────────── */
.t-display {
    font-family: var(--serif);
    font-size: clamp(3.5rem, 9vw, 8rem);
    font-weight: 300;
    line-height: .98;
    letter-spacing: -.03em;
}
.t-hero {
    font-family: var(--serif);
    font-size: clamp(2.8rem, 6vw, 6rem);
    font-weight: 300;
    line-height: 1.05;
    letter-spacing: -.02em;
}
.t-section {
    font-family: var(--serif);
    font-size: clamp(2rem, 4vw, 3.75rem);
    font-weight: 400;
    line-height: 1.1;
}
.t-card {
    font-family: var(--serif);
    font-size: clamp(1.25rem, 2vw, 1.75rem);
    font-weight: 600;
    line-height: 1.2;
}
.t-label {
    font-family: var(--sans);
    font-size: var(--t-sm);
    font-weight: 600;
    letter-spacing: .16em;
    text-transform: uppercase;
}
.t-body  { font-size: var(--t-md); line-height: 1.75; }
.t-small { font-size: var(--t-md);   line-height: 1.65; }

/* ── Layout ──────────────────────────────────────────────────── */
.wrap  { max-width: 1160px; margin-inline: auto; padding-inline: clamp(1.25rem, 5vw, 3rem); }
.wrap-narrow { max-width: 760px; margin-inline: auto; padding-inline: clamp(1.25rem, 5vw, 3rem); }
.wrap-article { max-width: 1160px; margin-inline: auto; padding-inline: clamp(1.25rem, 5vw, 3rem); }

/* ── Buttons ─────────────────────────────────────────────────── */
.btn {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    font-family: var(--sans);
    font-size: var(--t-sm);
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: .875rem 2rem;
    border-radius: 0;
    transition: .3s var(--ease);
    cursor: pointer;
}
.btn-dark {
    background: var(--ink);
    color: var(--white);
}
.btn-dark:hover { background: var(--forest); }

.btn-forest {
    background: var(--forest);
    color: var(--white);
}
.btn-forest:hover { background: var(--ink); }

.btn-outline {
    border: 1.5px solid var(--ink);
    color: var(--ink);
}
.btn-outline:hover { background: var(--ink); color: var(--white); }

.btn-outline-light {
    border: 1.5px solid rgba(255,255,255,.5);
    color: var(--white);
}
.btn-outline-light:hover { border-color: var(--white); background: rgba(255,255,255,.08); }

/* ── Header ──────────────────────────────────────────────────── */
.site-header {
    position: fixed;
    inset: 0 0 auto;
    z-index: 900;
    height: var(--header-h);
    transition: background .4s var(--ease), border-color .4s var(--ease);
    border-bottom: 1px solid transparent;
}
.site-header.scrolled {
    background: rgba(253,250,245,.94);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-color: var(--rule);
}
.site-header.scrolled .logo-mark { color: var(--ink); }
.site-header.scrolled .nav-links a { color: rgba(0,0,0,.7); }
.site-header.scrolled .nav-links a:hover { color: var(--ink); }
/* Non-hero pages: header starts with dark text from load */
body:not(.home) .site-header {
    background: rgba(253,250,245,.94);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-color: var(--rule);
}
body:not(.home) .site-header .logo-mark { color: var(--ink); }
body:not(.home) .site-header .nav-links a { color: rgba(0,0,0,.7); }
body:not(.home) .site-header .nav-links a:hover { color: var(--ink); }
body:not(.home) .site-header .nav-toggle span { background: var(--ink); }
/* WordPress admin bar offset */
.admin-bar .site-header { top: 32px; }
@media screen and (max-width: 782px) {
    .admin-bar .site-header { top: 46px; }
}
.header-inner {
    height: 100%;
    max-width: 1160px;
    margin-inline: auto;
    padding-inline: clamp(1.25rem, 5vw, 3rem);
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.logo-mark {
    font-family: var(--serif);
    font-size: 1.5rem;
    font-weight: 400;
    letter-spacing: -.01em;
    color: var(--white);
    transition: color .4s;
}
.logo-mark strong { font-weight: 600; }
.logo-mark sup {
    font-family: var(--sans);
    font-size: var(--t-sm);
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    vertical-align: super;
    margin-left: 2px;
    color: var(--gold);
}
.site-header.scrolled .logo-mark { color: var(--ink); }

.nav-links {
    display: flex;
    align-items: center;
    gap: 2.5rem;
}
.nav-links a {
    font-size: var(--t-sm);
    font-weight: 500;
    letter-spacing: .04em;
    color: rgba(255,255,255,.8);
    transition: color .3s;
    position: relative;
}
.nav-links a::after {
    content: '';
    position: absolute;
    bottom: -3px; left: 0;
    width: 0; height: 1px;
    background: var(--gold);
    transition: width .3s var(--ease);
}
.nav-links a:hover { color: var(--white); }
.nav-links a:hover::after { width: 100%; }
.site-header.scrolled .nav-links a { color: var(--muted); }
.site-header.scrolled .nav-links a:hover { color: var(--ink); }

.nav-cta {
    font-size: var(--t-sm) !important;
    font-weight: 700 !important;
    letter-spacing: .1em !important;
    text-transform: uppercase;
    padding: .6rem 1.375rem;
    border: 1.5px solid rgba(255,255,255,.45);
    color: var(--white) !important;
    transition: .3s var(--ease) !important;
}
.nav-cta:hover {
    border-color: var(--white) !important;
    background: rgba(255,255,255,.1);
}
.nav-cta::after { display: none !important; }
.site-header.scrolled .nav-cta {
    border-color: var(--forest) !important;
    color: var(--forest) !important;
    background: transparent;
}
.site-header.scrolled .nav-cta:hover {
    background: var(--forest) !important;
    color: var(--white) !important;
}

/* GTranslate: auto-detect only, no manual selector (v1.9.3) */

/* Hamburger */
.nav-toggle {
    display: none;
    flex-direction: column;
    gap: 5px;
    width: 26px;
}
.nav-toggle span {
    height: 1.5px;
    background: var(--white);
    display: block;
    transition: .3s;
}
.site-header.scrolled .nav-toggle span { background: var(--ink); }

/* Mobile nav */
.mobile-nav {
    display: none;
    position: fixed;
    top: var(--header-h);
    inset-inline: 0;
    background: var(--paper);
    border-top: 1px solid var(--rule);
    padding: 1.5rem;
    transform: translateY(-110%);
    transition: transform .4s var(--ease);
    z-index: 899;
}
.mobile-nav.open { transform: none; }
.mobile-nav-list { display: flex; flex-direction: column; gap: .25rem; }
.mobile-nav-list a {
    display: block;
    padding: .875rem 0;
    font-size: var(--t-md);
    font-weight: 500;
    color: var(--ink);
    border-bottom: 1px solid var(--rule);
}
.mobile-nav-list a:last-child { border: none; color: var(--forest); font-weight: 700; }

/* ── HERO ────────────────────────────────────────────────────── */
.hero {
    position: relative;
    min-height: 100svh;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
}
.hero-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
}
.hero-bg img {
    width: 100%; height: 100%;
    object-fit: cover;
    object-position: center 30%;
    transform: scale(1.04);
    transition: transform 12s ease;
}
.hero-bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to top,
        rgba(10,20,14,.92) 0%,
        rgba(10,20,14,.55) 40%,
        rgba(10,20,14,.2) 100%
    );
}
.hero-content {
    position: relative;
    z-index: 1;
    width: 100%;
    padding-bottom: clamp(4rem, 8vw, 7rem);
    padding-top: var(--header-h);
}
.hero-inner {
    max-width: 1160px;
    margin-inline: auto;
    padding-inline: clamp(1.25rem, 5vw, 3rem);
}
.hero-label {
    color: var(--gold);
    margin-bottom: 1.5rem;
    display: flex;
    align-items: center;
    gap: .875rem;
}
.hero-label::before {
    content: '';
    display: block;
    width: 28px; height: 1px;
    background: var(--gold);
}
.hero-headline {
    color: var(--white);
    margin-bottom: 2rem;
    max-width: 820px;
}
.hero-headline em { font-style: italic; color: rgba(255,255,255,.72); }
.hero-sub {
    color: rgba(255,255,255,.65);
    font-size: var(--t-md);
    max-width: 480px;
    margin-bottom: 2.5rem;
    line-height: 1.75;
}
.hero-actions { display: flex; gap: 1rem; flex-wrap: wrap; }

/* Scroll hint */
.hero-scroll {
    position: absolute;
    bottom: 2rem; right: 3rem;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .5rem;
    color: rgba(255,255,255,.4);
    font-size: var(--t-sm);
    letter-spacing: .2em;
    text-transform: uppercase;
    writing-mode: vertical-rl;
}
.hero-scroll::after {
    content: '';
    width: 1px; height: 48px;
    background: rgba(255,255,255,.25);
    animation: scrollLine 2s ease-in-out infinite;
}
@keyframes scrollLine {
    0%   { transform: scaleY(0); transform-origin: top; }
    50%  { transform: scaleY(1); transform-origin: top; }
    51%  { transform-origin: bottom; }
    100% { transform: scaleY(0); transform-origin: bottom; }
}

/* ── Hero two-column + stats card (desktop) ─────────────────── */
@media (min-width: 1080px) {
    .hero-inner {
        display: flex;
        align-items: flex-end;
        gap: 3rem;
    }
    .hero-col-text { flex: 1 1 0; min-width: 0; }
}
.hero-stats { display: none; }
@media (min-width: 1080px) {
    .hero-stats {
        display: flex;
        flex-direction: column;
        gap: 1.25rem;
        flex: 0 0 auto;
        width: 280px;
        padding: 2rem 2rem 1.75rem;
        background: rgba(255,255,255,.07);
        border: 1px solid rgba(255,255,255,.12);
        border-radius: 6px;
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
    }
}
.hero-stats__row { display: flex; gap: 1.5rem; }
.hero-stats__item { display: flex; flex-direction: column; gap: .25rem; }
.hero-stats__num {
    font-family: var(--mono);
    font-size: 2rem;
    font-weight: 700;
    color: var(--white);
    line-height: 1;
}
.hero-stats__lbl {
    font-size: .6875rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(255,255,255,.5);
}
.hero-stats__standards {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(255,255,255,.1);
    font-family: var(--mono);
    font-size: .75rem;
    color: var(--gold);
    letter-spacing: .04em;
}
.hero-stats__dot { color: rgba(255,255,255,.25); }

/* ── STATEMENT ───────────────────────────────────────────────── */
.statement {
    background: var(--forest);
    padding-block: clamp(5rem, 10vw, 9rem);
    position: relative;
    overflow: hidden;
}
.statement::before {
    content: '"';
    position: absolute;
    top: -3rem; left: -2rem;
    font-family: var(--serif);
    font-size: 28rem;
    color: rgba(255,255,255,.03);
    line-height: 1;
    pointer-events: none;
    user-select: none;
}
.statement-inner {
    max-width: 900px;
    margin-inline: auto;
    padding-inline: clamp(1.25rem, 5vw, 3rem);
    text-align: center;
}
.statement blockquote {
    font-family: var(--serif);
    font-size: clamp(1.75rem, 3.5vw, 3rem);
    font-weight: 300;
    font-style: italic;
    color: var(--white);
    line-height: 1.45;
    margin-bottom: 2rem;
}
.statement-author {
    font-size: var(--t-sm);
    letter-spacing: .18em;
    text-transform: uppercase;
    color: rgba(255,255,255,.38);
}
.statement-author span { color: var(--gold); }

/* ── CHAMPIONS ───────────────────────────────────────────────── */
.champions {
    background: var(--cream);
    padding-block: clamp(5rem, 9vw, 8rem);
}
.section-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: clamp(2.5rem, 5vw, 4rem);
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--rule);
}
.section-head-left { display: flex; flex-direction: column; gap: .75rem; }
.section-count {
    font-family: var(--serif);
    font-size: 6rem;
    font-weight: 300;
    color: rgba(15,26,19,.06);
    line-height: 1;
    position: absolute;
    top: -.5rem; left: -1rem;
    pointer-events: none;
}

/* Editorial EPD grid */
.epd-editorial {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.25rem;
    margin-bottom: 3rem;
}

.epd-card {
    background: var(--paper);
    display: grid;
    grid-template-columns: 200px 1fr;
    transition: background .3s, box-shadow .3s;
    position: relative;
    border: 1px solid var(--rule);
    border-radius: 3px;
    overflow: hidden;
}
.epd-card:hover {
    background: var(--white);
    box-shadow: 0 4px 20px rgba(0,0,0,.07);
}

.epd-card-image {
    overflow: hidden;
    background: #f0ede6;
    position: relative;
    min-height: 100%;
}
.epd-card-image img {
    width: 100%; height: 100%;
    object-fit: contain;
    transition: transform .4s var(--ease);
}
.epd-card-image-link {
    display: block;
    height: 100%;
}
.epd-card:hover .epd-card-image img {
    transform: scale(1.03);
}
.epd-card-image-placeholder {
    width: 100%; height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--serif);
    font-size: 3rem;
    font-style: italic;
    font-weight: 300;
    color: rgba(255,255,255,.18);
    background: linear-gradient(145deg, var(--forest), var(--sage));
}

.epd-card-body {
    padding: 1.75rem;
    display: flex;
    flex-direction: column;
    gap: .5rem;
    justify-content: space-between;
}
.epd-card-sector {
    font-size: var(--t-sm);
    font-weight: 700;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--gold);
}
.epd-card-title {
    font-family: var(--serif);
    font-size: var(--t-lg);
    font-weight: 600;
    line-height: 1.25;
    color: var(--ink);
}
.epd-card-producer {
    font-size: var(--t-sm);
    color: var(--muted);
}
.epd-card-product {
    font-size: var(--t-sm);
    color: var(--muted);
    margin-top: .125rem;
    line-height: 1.3;
}
.epd-card-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: auto;
    padding-top: 1rem;
    border-top: 1px solid var(--rule);
}
.epd-card-date {
    font-size: var(--t-sm);
    color: var(--muted);
}
.epd-card-actions {
    display: flex;
    gap: .625rem;
}
.epd-btn-sm {
    font-size: var(--t-sm);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: .5rem 1rem;
    border: 1px solid var(--rule);
    color: var(--muted);
    transition: .25s;
}
.epd-btn-sm:hover { border-color: var(--forest); color: var(--forest); }
.epd-btn-sm.primary { background: var(--forest); border-color: var(--forest); color: var(--white); }
.epd-btn-sm.primary:hover { background: var(--ink); border-color: var(--ink); }

/* EPD card — heading row (company + number inline) */
.epd-card-heading {
    display: flex;
    align-items: baseline;
    gap: .5rem;
    justify-content: space-between;
}
.epd-card-number {
    font-family: var(--f-mono, 'IBM Plex Mono', monospace);
    font-size: .65rem;
    color: var(--muted, #6B6456);
    letter-spacing: .02em;
    white-space: nowrap;
    flex-shrink: 0;
}
/* EPD card — 2-col details grid */
.epd-card-details {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .25rem .75rem;
    margin-top: .5rem;
    padding: .5rem 0;
    border-top: 1px solid var(--rule, #E0DCD5);
}
.epd-card-detail {
    display: flex;
    flex-direction: column;
}
.epd-card-detail dt {
    font-family: var(--f-body, 'IBM Plex Sans', sans-serif);
    font-size: .6rem;
    font-weight: 500;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--muted, #6B6456);
    margin-bottom: .1rem;
}
.epd-card-detail dd {
    font-family: var(--f-body, 'IBM Plex Sans', sans-serif);
    font-size: .75rem;
    font-weight: 500;
    color: var(--ink, #111);
    margin: 0;
}

.champions-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding-top: 2rem;
    border-top: 1px solid var(--rule);
}
.champions-footer p {
    font-size: var(--t-md);
    color: var(--muted);
}
.champions-footer strong { color: var(--ink); }

/* ── WHY ─────────────────────────────────────────────────────── */
.why {
    background: var(--paper);
    padding-block: clamp(5rem, 9vw, 8rem);
    border-top: 1px solid var(--rule);
}
.why-grid {
    display: grid;
    grid-template-columns: 5fr 7fr;
    gap: clamp(3rem, 7vw, 7rem);
    align-items: start;
}
.why-left {
    position: sticky;
    top: calc(var(--header-h) + 2rem);
}
.why-left h2 { color: var(--ink); margin-bottom: 2rem; }
.why-left p  { color: var(--muted); font-size: var(--t-md); line-height: 1.8; margin-bottom: 1.5rem; }
.why-left a  { color: var(--forest); font-weight: 600; font-size: var(--t-md); letter-spacing: .04em; text-decoration: underline; text-underline-offset: 3px; }

.why-right { display: flex; flex-direction: column; gap: 0; }
.why-item {
    display: grid;
    grid-template-columns: 4rem 1fr;
    gap: 1.5rem;
    padding-block: 2.5rem;
    border-bottom: 1px solid var(--rule);
    align-items: start;
}
.why-item:first-child { border-top: 1px solid var(--rule); }
.why-num {
    font-family: var(--serif);
    font-size: 3.5rem;
    font-weight: 300;
    color: rgba(15,26,19,.1);
    line-height: 1;
    margin-top: .25rem;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.why-num svg {
    color: var(--forest, #2D5032);
}
.why-item h3 {
    font-family: var(--serif);
    font-size: var(--t-lg);
    font-weight: 600;
    color: var(--ink);
    margin-bottom: .75rem;
}
.why-item p { font-size: var(--t-md); color: var(--muted); line-height: 1.75; }

/* ── ABOUT STRIP ─────────────────────────────────────────────── */
.about-strip {
    background: var(--ink);
    padding-block: clamp(5rem, 9vw, 8rem);
    overflow: hidden;
    position: relative;
}
.about-strip-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    align-items: stretch;
    min-height: 480px;
}
.about-strip-image {
    position: relative;
    overflow: hidden;
}
.about-strip-image img {
    width: 100%; height: 100%;
    object-fit: cover;
    opacity: .55;
    filter: grayscale(.3);
}
.about-strip-text {
    padding: clamp(3rem, 6vw, 5rem);
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.about-strip-text h2 {
    font-family: var(--serif);
    font-size: clamp(2rem, 3.5vw, 3.25rem);
    font-weight: 300;
    color: var(--white);
    line-height: 1.2;
    margin-bottom: 1.5rem;
}
.about-strip-text h2 em { font-style: italic; color: rgba(255,255,255,.75); }
.about-strip-text p {
    font-size: var(--t-md);
    color: rgba(255,255,255,.85);
    line-height: 1.8;
    margin-bottom: 2rem;
}

/* ── CTA ─────────────────────────────────────────────────────── */
.cta-strip {
    background: var(--cream);
    padding-block: clamp(5rem, 8vw, 7rem);
    border-top: 1px solid var(--rule);
}
.cta-strip-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 3rem;
    flex-wrap: wrap;
}
.cta-strip h2 {
    font-family: var(--serif);
    font-size: clamp(1.75rem, 3.5vw, 3rem);
    font-weight: 300;
    color: var(--ink);
    max-width: 580px;
    line-height: 1.2;
}
.cta-strip h2 em { font-style: italic; color: var(--muted); }
.cta-strip-actions { display: flex; gap: 1rem; flex-wrap: wrap; }

/* ── EPD LIST PAGE ───────────────────────────────────────────── */
.registry-page { padding-top: var(--header-h); }

.registry-header {
    padding-block: clamp(4rem, 7vw, 6rem);
    border-bottom: 1px solid var(--rule);
    background: var(--paper);
}
.registry-header-inner {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
    flex-wrap: wrap;
}
.registry-header h1 {
    font-family: var(--serif);
    font-size: clamp(2.5rem, 6vw, 5.5rem);
    font-weight: 300;
    color: var(--ink);
    line-height: 1.0;
}
.registry-header-note {
    font-size: var(--t-sm);
    color: var(--muted);
    margin-top: .75rem;
    text-align: right;
}
.registry-header-note a {
    color: var(--ink);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.registry-header p {
    font-size: var(--t-md);
    color: var(--muted);
    max-width: 360px;
    line-height: 1.7;
    text-align: right;
}

/* Filter */
.registry-filter {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding-block: 1.5rem;
    border-bottom: 1px solid var(--rule);
    background: var(--paper);
    flex-wrap: wrap;
}
.registry-search {
    position: relative;
    flex: 1;
    min-width: 200px;
}
.registry-search svg {
    position: absolute;
    left: .875rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--muted);
    pointer-events: none;
}
.registry-search input {
    width: 100%;
    padding: .75rem 1rem .75rem 2.625rem;
    border: 1px solid var(--rule);
    font-family: var(--sans);
    font-size: var(--t-md);
    color: var(--ink);
    background: var(--white);
    outline: none;
    transition: border-color .25s;
}
.registry-search input:focus { border-color: var(--forest); }
.registry-search input::placeholder { color: var(--muted); }

.filter-pills { display: flex; gap: .5rem; flex-wrap: wrap; }
.filter-pill {
    padding: .4375rem 1rem;
    font-size: var(--t-sm);
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--muted);
    border: 1px solid var(--rule);
    background: transparent;
    transition: .25s;
    cursor: pointer;
}
.filter-pill:hover { border-color: var(--forest); color: var(--forest); }
.filter-pill.active { background: var(--forest); border-color: var(--forest); color: var(--white); }
.registry-count { font-size: var(--t-sm); color: var(--muted); white-space: nowrap; }
.registry-count strong { color: var(--ink); }

/* Registry grid */
.registry-grid {
    background: var(--paper);
    padding-block: 3rem 5rem;
}
.epd-list-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: 1px;
    background: var(--rule);
    border: 1px solid var(--rule);
}
.epd-no-results {
    display: none;
    padding: 5rem 2rem;
    text-align: center;
    color: var(--muted);
    font-size: var(--t-md);
}
.epd-no-results.visible { display: block; }

/* ── SINGLE EPD ──────────────────────────────────────────────── */
.epd-single { padding-top: var(--header-h); }

.epd-breadcrumb {
    display: flex;
    gap: .5rem;
    align-items: center;
    font-size: var(--t-sm);
    color: var(--muted);
    letter-spacing: .04em;
}
.epd-breadcrumb a { color: var(--muted); text-decoration: none; transition: color .2s; }
.epd-breadcrumb a:hover { color: var(--ink); }
.epd-breadcrumb span[aria-hidden] { color: var(--rule); }

.epd-single-hero {
    background: var(--paper);
    padding-block: clamp(3.5rem, 6vw, 5.5rem);
    border-bottom: 1px solid var(--rule);
}
.epd-single-hero-inner {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 3rem;
    align-items: start;
    margin-top: 2rem;
}
.epd-single-identity {
    display: flex;
    flex-direction: column;
    gap: .75rem;
}
.epd-single-sector {
    display: inline-block;
    font-size: var(--t-sm);
    font-weight: 700;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--sage);
}
.epd-single-company {
    font-family: var(--serif);
    font-size: clamp(2.25rem, 5vw, 4.5rem);
    font-weight: 300;
    color: var(--ink);
    line-height: 1.05;
}
.epd-single-product {
    font-size: var(--t-md);
    color: var(--muted);
    margin-top: -.25rem;
}
.epd-single-download {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .625rem;
    padding-top: .5rem;
}
.epd-single-download-note {
    font-size: var(--t-sm);
    color: var(--muted);
    letter-spacing: .06em;
}

.epd-single-body {
    background: var(--cream);
    padding-block: clamp(3.5rem, 7vw, 6rem);
}
.epd-single-grid {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 3rem;
    align-items: start;
}
.epd-single-main { display: flex; flex-direction: column; gap: 1.5rem; }
.epd-single-back {
    display: inline-block;
    font-size: var(--t-md);
    color: var(--muted);
    text-decoration: none;
    transition: color .2s;
}
.epd-single-back:hover { color: var(--ink); }

.epd-single-sidebar { display: flex; flex-direction: column; gap: 1px; }
.epd-single-cert-block {
    background: var(--forest);
    padding: 1.5rem;
    display: flex;
    align-items: center;
    gap: 1rem;
}
.epd-single-cert-block div { display: flex; flex-direction: column; gap: .25rem; }
.epd-single-cert-block strong { font-size: var(--t-md); color: var(--white); font-weight: 600; }
.epd-single-cert-block span { font-size: var(--t-sm); color: rgba(255,255,255,.45); }
.epd-single-meta-block {
    background: var(--white);
    padding: 1.5rem;
    border: 1px solid var(--rule);
    border-top: none;
}
.epd-single-meta-block h3 {
    font-size: var(--t-sm);
    font-weight: 700;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: 1rem;
}
.epd-meta-row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding-block: .5rem;
    border-bottom: 1px solid var(--rule);
    font-size: var(--t-sm);
}
.epd-meta-row:last-child { border: none; }
.epd-meta-row dt { color: var(--muted); }
.epd-meta-row dd { color: var(--ink); font-weight: 500; text-align: right; }

/* ── ABOUT PAGE ──────────────────────────────────────────────── */
.about-page { padding-top: var(--header-h); }

.about-hero {
    background: var(--forest);
    padding-block: clamp(5rem, 9vw, 8rem);
    position: relative;
    overflow: hidden;
}
.about-hero::after {
    content: 'EPD';
    position: absolute;
    bottom: -4rem; right: -2rem;
    font-family: var(--serif);
    font-size: 18rem;
    font-weight: 700;
    color: rgba(255,255,255,.03);
    line-height: 1;
    pointer-events: none;
}
.about-hero h1 {
    font-family: var(--serif);
    font-size: clamp(2.5rem, 6vw, 5rem);
    font-weight: 300;
    color: var(--white);
    max-width: 760px;
    line-height: 1.1;
    margin-bottom: 1.25rem;
}
.about-hero p { font-size: var(--t-md); color: rgba(255,255,255,.6); max-width: 520px; line-height: 1.75; }
/* Botanical leaf on hero */
.about-hero::before {
    content: '';
    position: absolute;
    top: -30px; right: 40px;
    width: 280px; height: 340px;
    background: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzAwIDM0MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9InJnYmEoMjU1LDI1NSwyNTUsMC45KSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICA8ZyB0cmFuc2Zvcm09InJvdGF0ZSgxNSAxNTAgMTcwKSI+CiAgICA8cGF0aCBkPSJNIDE1MCAzMCBDIDgwIDgwIDQwIDE2MCA2MCAyNTAgUSA4MCAzMDAgMTUwIDMyMCBRIDIyMCAzMDAgMjQwIDI1MCBDIDI2MCAxNjAgMjIwIDgwIDE1MCAzMCBaIgogICAgICAgICAgc3Ryb2tlLXdpZHRoPSIyLjUiIGZpbGw9InJnYmEoMjU1LDI1NSwyNTUsMC4wNikiIC8+CiAgICA8cGF0aCBkPSJNIDE1MCA1MCBMIDE1MCAzMTAiIHN0cm9rZS13aWR0aD0iMiIgLz4KICAgIDxwYXRoIGQ9Ik0gMTUwIDkwIFEgMTIwIDExMCA4NSAxMDUiIHN0cm9rZS13aWR0aD0iMS4zIiAvPgogICAgPHBhdGggZD0iTSAxNTAgMTMwIFEgMTEwIDE1NSA3MCAxNTUiIHN0cm9rZS13aWR0aD0iMS4zIiAvPgogICAgPHBhdGggZD0iTSAxNTAgMTcwIFEgMTA1IDE5NSA2NSAyMDAiIHN0cm9rZS13aWR0aD0iMS4zIiAvPgogICAgPHBhdGggZD0iTSAxNTAgMjEwIFEgMTEwIDIzMCA3NSAyNDAiIHN0cm9rZS13aWR0aD0iMS4zIiAvPgogICAgPHBhdGggZD0iTSAxNTAgMjUwIFEgMTIwIDI2NSA5NSAyNzIiIHN0cm9rZS13aWR0aD0iMS4zIiAvPgogICAgPHBhdGggZD0iTSAxNTAgOTAgUSAxODAgMTEwIDIxNSAxMDUiIHN0cm9rZS13aWR0aD0iMS4zIiAvPgogICAgPHBhdGggZD0iTSAxNTAgMTMwIFEgMTkwIDE1NSAyMzAgMTU1IiBzdHJva2Utd2lkdGg9IjEuMyIgLz4KICAgIDxwYXRoIGQ9Ik0gMTUwIDE3MCBRIDE5NSAxOTUgMjM1IDIwMCIgc3Ryb2tlLXdpZHRoPSIxLjMiIC8+CiAgICA8cGF0aCBkPSJNIDE1MCAyMTAgUSAxOTAgMjMwIDIyNSAyNDAiIHN0cm9rZS13aWR0aD0iMS4zIiAvPgogICAgPHBhdGggZD0iTSAxNTAgMjUwIFEgMTgwIDI2NSAyMDUgMjcyIiBzdHJva2Utd2lkdGg9IjEuMyIgLz4KICA8L2c+Cjwvc3ZnPgo=") center / contain no-repeat;
    opacity: .12;
    pointer-events: none;
    z-index: 0;
}

.about-section { padding-block: clamp(4rem, 8vw, 7rem); border-top: 1px solid var(--rule); }
.about-section.dark { background: var(--ink); border-color: transparent; }
/* Process section warm background */
.about-section--process {
    background: linear-gradient(175deg, rgba(45,80,50,.05) 0%, rgba(181,84,28,.03) 100%);
    border-top-color: rgba(45,80,50,.12);
}
/* Process step icons */
.why-item-icon {
    width: 2.5rem;
    height: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(45,80,50,.08);
    color: var(--forest, #2D5032);
    margin-bottom: .5rem;
}
.why-item-icon svg { width: 1.25rem; height: 1.25rem; }

/* Photo banner between sections */
.about-photo-banner {
    position: relative;
    height: clamp(200px, 30vw, 360px);
    overflow: hidden;
    background: linear-gradient(135deg, var(--forest) 0%, #1a3a20 100%);
}
.about-photo-banner::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 60% 80% at 20% 50%, rgba(255,255,255,.06) 0%, transparent 70%),
        radial-gradient(ellipse 50% 70% at 80% 60%, rgba(181,84,28,.08) 0%, transparent 70%);
    z-index: 1;
}
.about-photo-banner-text {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: .75rem;
    z-index: 2;
    text-align: center;
    padding: 2rem;
}
.about-photo-banner-text .stat-big {
    font-family: var(--serif);
    font-size: clamp(3rem, 7vw, 5.5rem);
    font-weight: 300;
    color: var(--white);
    line-height: 1;
}
.about-photo-banner-text .stat-label {
    font-size: var(--t-sm);
    font-weight: 700;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: rgba(255,255,255,.4);
}

/* Testimonial quote block */
.about-quote {
    background: var(--forest);
    border-radius: 4px;
    padding: clamp(2rem, 4vw, 3rem);
    margin-top: clamp(2rem, 4vw, 3rem);
    position: relative;
    overflow: hidden;
}
.about-quote::before {
    content: '\201C';
    position: absolute;
    top: -.5rem; left: 1rem;
    font-family: var(--serif);
    font-size: 8rem;
    font-weight: 700;
    color: rgba(255,255,255,.08);
    line-height: 1;
    pointer-events: none;
}
.about-quote blockquote {
    font-family: var(--serif);
    font-size: clamp(1rem, 2vw, 1.25rem);
    font-weight: 300;
    font-style: italic;
    color: rgba(255,255,255,.85);
    line-height: 1.7;
    margin: 0 0 1rem;
    position: relative;
    z-index: 1;
}
.about-quote cite {
    font-style: normal;
    font-family: var(--f-body, 'IBM Plex Sans', sans-serif);
    font-size: var(--t-sm);
    color: rgba(255,255,255,.4);
    display: block;
}
.about-quote cite strong {
    color: rgba(255,255,255,.7);
}

.about-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(3rem, 7vw, 7rem);
    align-items: center;
}
.about-grid img { width: 100%; aspect-ratio: 4/3; object-fit: cover; filter: grayscale(.15); }
.about-text h2 { font-family: var(--serif); font-size: clamp(1.75rem, 3vw, 2.75rem); font-weight: 300; color: var(--ink); margin-bottom: 1.5rem; line-height: 1.2; }
.about-text.light h2 { color: var(--white); }
.about-text p  { font-size: var(--t-md); color: var(--muted); line-height: 1.8; margin-bottom: 1.25rem; }
.about-text.light p { color: rgba(255,255,255,.5); }
.about-text p strong { color: var(--ink); }
.about-text.light p strong { color: var(--white); }

/* ── FOOTER ──────────────────────────────────────────────────── */
.site-footer {
    background: var(--ink);
    border-top: 1px solid rgba(255,255,255,.06);
}
.footer-main {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1.5fr;
    gap: 3rem;
    padding: clamp(4rem, 7vw, 6rem) clamp(1.25rem, 5vw, 3rem) 3rem;
    max-width: 1160px;
    margin-inline: auto;
}
.footer-brand .logo-mark { color: var(--white); display: block; margin-bottom: .875rem; font-size: 1.625rem; }
.footer-tagline { font-family: var(--serif); font-size: var(--t-md); font-style: italic; color: rgba(255,255,255,.4); line-height: 1.6; margin-bottom: 1rem; }
.footer-desc { font-size: var(--t-sm); color: rgba(255,255,255,.28); line-height: 1.7; }
.footer-desc a { color: var(--gold); transition: color .25s; }
.footer-desc a:hover { color: #E5B06A; }

.footer-col h4 { font-size: var(--t-sm); font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: rgba(255,255,255,.25); margin-bottom: 1.25rem; }
.footer-col ul { display: flex; flex-direction: column; gap: .625rem; }
.footer-col a { font-size: var(--t-md); color: rgba(255,255,255,.45); transition: color .25s; }
.footer-col a:hover { color: rgba(255,255,255,.88); }

.footer-quote blockquote {
    font-family: var(--serif);
    font-size: var(--t-md);
    font-style: italic;
    font-weight: 300;
    color: rgba(255,255,255,.3);
    line-height: 1.7;
    border-left: 2px solid var(--gold);
    padding-left: 1.125rem;
}

.footer-bottom {
    max-width: 1160px;
    margin-inline: auto;
    padding: 1.5rem clamp(1.25rem, 5vw, 3rem);
    border-top: 1px solid rgba(255,255,255,.07);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}
.footer-bottom p { font-size: var(--t-sm); color: rgba(255,255,255,.22); }

/* ── Responsive ──────────────────────────────────────────────── */
@media (max-width: 1300px) {
    /* Front-page editorial cards */
    .epd-card { grid-template-columns: 150px 1fr; }
    .epd-card-body { padding: 1.25rem; }
    .epd-card-title { font-size: 1.1rem; }
    .epd-card-details { gap: .35rem .75rem; }
    .section-head { gap: 1.25rem; }

    /* EPD Register cards (erl-*) */
    .erl-card__cover-link { flex: 0 0 130px; }
    .erl-card__title { font-size: 1.1rem; }
    .erl-card__body { padding: .875rem; gap: .35rem; }
    .erl-card__details { gap: .2rem .5rem; }

    /* Tighter section spacing */
    .hero-content h1 { font-size: clamp(2.25rem, 4.5vw, 3.5rem); }
    .intro { padding-block: clamp(3rem, 5vw, 5rem); }
    .champions { padding-block: clamp(3rem, 5vw, 5rem); }
    .why { padding-block: clamp(3rem, 5vw, 5rem); }
    .about-strip { padding-block: clamp(3rem, 5vw, 5rem); }
    .testimonials { padding-block: clamp(3rem, 5vw, 5rem); }
}
@media (max-width: 1024px) {
    .epd-editorial { grid-template-columns: 1fr; }
    .why-grid { grid-template-columns: 1fr; }
    .why-left { position: static; }
    .about-strip-inner { grid-template-columns: 1fr; }
    .about-strip-image { aspect-ratio: 16/9; }
    .epd-single-content { grid-template-columns: 1fr; }
    .footer-main { grid-template-columns: 1fr 1fr; }
    .cta-strip-inner { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 768px) {
    .nav-links { display: none; }
    .nav-toggle { display: flex; }
    .mobile-nav { display: block; }
    .epd-card { grid-template-columns: 120px 1fr; }
    .epd-card-image { aspect-ratio: 210 / 297; }
    .epd-card-heading { flex-direction: column; gap: .15rem; }
    .epd-card-details { grid-template-columns: 1fr; gap: .2rem; }
    .epd-card-body { padding: 1rem; gap: .35rem; }
    .epd-single-inner { grid-template-columns: 1fr; }
    .about-grid { grid-template-columns: 1fr; }
    .about-photo-banner { height: clamp(160px, 25vw, 240px); }
    .about-photo-banner-text .stat-big { font-size: clamp(2.5rem, 6vw, 4rem); }
    .about-photo-banner-text { gap: .75rem; }
    .about-credentials-inner { grid-template-columns: 1fr; }
    .about-cred-stats { flex-direction: row; flex-wrap: wrap; gap: 1rem; }
    .section-head { flex-direction: column; align-items: flex-start; gap: 1rem; }
    .registry-header-inner { flex-direction: column; align-items: flex-start; }
    .registry-header p { text-align: left; }
    .footer-main { grid-template-columns: 1fr; gap: 2rem; }
    .footer-bottom { flex-direction: column; align-items: flex-start; }
    .hero-scroll { display: none; }
    .champions-footer { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 480px) {
    .hero-actions { flex-direction: column; }
    .epd-list-grid { grid-template-columns: 1fr; }
    .filter-pills { gap: .375rem; }
    .epd-card { grid-template-columns: 1fr; }
    .epd-card-image { aspect-ratio: 16 / 9; }
    .epd-card-image img { object-fit: cover; }
    .epd-card-title { font-size: 1.1rem; }
}

/* ── STORIES (homepage + archive + single) ───────────────────── */
.stories {
    background: var(--paper);
    padding-block: clamp(5rem, 9vw, 8rem);
    border-top: 1px solid var(--rule);
}
.stories-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1px;
    background: var(--rule);
    border: 1px solid var(--rule);
    margin-block: clamp(2.5rem, 5vw, 4rem) 2.5rem;
}
.post-card {
    background: var(--white);
    display: flex;
    flex-direction: column;
    transition: background .3s;
    border: 1px solid var(--rule);
}
.post-card:hover { background: var(--cream); }
.post-card-image {
    aspect-ratio: 16/9;
    overflow: hidden;
    background: var(--forest);
}
.post-card-image img {
    width: 100%; height: 100%;
    object-fit: cover;
    filter: brightness(.88) saturate(.85);
    transition: transform .6s var(--ease), filter .6s;
}
.post-card:hover .post-card-image img { transform: scale(1.04); filter: brightness(.95) saturate(1); }
.post-card-body {
    padding: 1.75rem 1.75rem 2rem;
    display: flex;
    flex-direction: column;
    gap: .625rem;
    flex: 1;
}
.post-card-date {
    font-size: var(--t-sm);
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--gold);
}
.post-card-title {
    font-family: var(--serif);
    font-size: clamp(1.25rem, 2vw, 1.625rem);
    font-weight: 600;
    line-height: 1.2;
    color: var(--ink);
}
.post-card-excerpt {
    font-size: var(--t-md);
    color: var(--muted);
    line-height: 1.7;
}
.post-card-link {
    margin-top: auto;
    padding-top: 1.25rem;
    border-top: 1px solid var(--rule);
    font-size: var(--t-sm);
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--forest);
    transition: color .25s;
    display: block;
}
.post-card-link:hover { color: var(--ink); }

/* Single post */
/* ── Single Post — Editorial Magazine Layout ─────────────── */
.post-single { padding-top: var(--header-h); }

/* Reading progress bar */
.post-reading-progress {
    position: fixed;
    top: 0;
    left: 0;
    width: 0%;
    height: 3px;
    background: var(--gold);
    z-index: 1001;
    transition: width 50ms linear;
    pointer-events: none;
}

/* Compact header */
.post-header {
    background: var(--paper);
    padding-block: clamp(2rem, 4vw, 3.5rem) clamp(1.5rem, 3vw, 2.5rem);
}
.post-header__cat-pill {
    display: inline-block;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    padding: .3rem .85rem;
    border-radius: 2px;
    margin-bottom: 1.25rem;
    background: var(--forest);
    color: var(--white);
}
.cat-epd-guide .post-header__cat-pill      { background: #1B4332; }
.cat-eu-regulations .post-header__cat-pill { background: #003082; }
.cat-lca-practice .post-header__cat-pill   { background: #4A2C0E; }
.cat-esg-reporting .post-header__cat-pill  { background: #1A3A4A; }
.cat-client-stories .post-header__cat-pill { background: var(--co-rust, #B5541C); }
.cat-certified .post-header__cat-pill      { background: var(--co-rust, #B5541C); }

.post-header__title {
    font-family: var(--serif);
    font-size: clamp(2rem, 4.5vw, 3.5rem);
    font-weight: 400;
    color: var(--ink);
    line-height: 1.15;
    margin-bottom: 1.25rem;
    max-width: 860px;
}
.post-header__meta {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    align-items: center;
    font-size: var(--t-sm);
    color: var(--muted);
    letter-spacing: .03em;
}
.post-header__meta-sep { color: var(--rule); }
.post-header__updated { color: var(--co-rust, #B5541C); font-weight: 600; }
.post-header__rule {
    border: none;
    height: 2px;
    background: var(--gold);
    width: 60px;
    margin-top: 1.5rem;
}

/* Body + layout */
.post-body {
    background: var(--cream);
    padding-block: clamp(2.5rem, 5vw, 4rem);
}
.post-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
}
@media (min-width: 1080px) {
    .post-layout.has-toc {
        grid-template-columns: 1fr 240px;
        gap: 3rem;
    }
}

/* Main content column */
.post-main { min-width: 0; }
.post-featured-inline {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    border: 1px solid var(--rule);
    margin-bottom: 2rem;
}
.post-content {
    background: var(--white);
    padding: clamp(2rem, 5vw, 3rem);
    border: 1px solid var(--rule);
    margin-bottom: 2rem;
}

/* Typography */
.post-content p {
    font-size: 1.0625rem;
    color: var(--ink);
    line-height: 1.85;
    margin-bottom: 1.5rem;
}
.post-content p:last-child { margin-bottom: 0; }

.post-content h2 {
    font-family: var(--serif);
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 600;
    color: var(--ink);
    margin: 3.5rem 0 1.25rem;
    padding-bottom: .5rem;
    border-bottom: 2px solid var(--co-rust, #B5541C);
    scroll-margin-top: 100px;
}
.post-content h2:first-child { margin-top: 0; }

.post-content h3 {
    font-family: var(--serif);
    font-size: 1.375rem;
    font-weight: 600;
    color: var(--forest);
    margin: 2.5rem 0 .75rem;
    scroll-margin-top: 100px;
}
.post-content h4 {
    font-family: var(--sans);
    font-size: 1.0625rem;
    font-weight: 700;
    color: var(--ink);
    letter-spacing: .03em;
    text-transform: uppercase;
    margin: 2rem 0 .5rem;
}
.post-content strong { color: var(--ink); font-weight: 600; }

.post-content a {
    color: var(--forest);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
    transition: color .2s;
}
.post-content a:hover { color: var(--co-rust, #B5541C); }

.post-content blockquote {
    border-left: 3px solid var(--gold);
    padding: 1.25rem 2rem;
    margin: 2.5rem 0;
    font-family: var(--serif);
    font-style: italic;
    font-size: 1.25rem;
    line-height: 1.7;
    color: var(--ink);
    background: var(--cream);
}
.post-content img { width: 100%; height: auto; margin: 2rem 0; border-radius: 2px; }
.post-content ul, .post-content ol { margin: 1.25rem 0 1.5rem 1.5rem; }
.post-content ul { list-style: disc; }
.post-content ol { list-style: decimal; }
.post-content li {
    font-size: 1.0625rem;
    color: var(--ink);
    line-height: 1.75;
    margin-bottom: .5rem;
}

/* Callout boxes */
.post-content .callout {
    background: var(--callout-bg);
    border-left: 4px solid var(--callout-border);
    padding: 1.25rem 1.5rem;
    margin: 1.75rem 0;
    border-radius: 0 4px 4px 0;
}
.post-content .callout p { color: var(--ink); margin-bottom: .5rem; }

/* FAQ accordion (details/summary) */
.post-content details {
    border: 1px solid var(--rule);
    border-radius: 2px;
    margin: 1rem 0;
    background: var(--white);
}
.post-content details + details { margin-top: -.5px; }
.post-content details[open] { border-color: var(--co-rust, #B5541C); }
.post-content summary {
    padding: 1rem 1.5rem;
    font-weight: 600;
    color: var(--ink);
    cursor: pointer;
    list-style: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.post-content summary::-webkit-details-marker { display: none; }
.post-content summary::after {
    content: '+';
    font-size: 1.25rem;
    color: var(--muted);
    transition: transform .2s;
}
.post-content details[open] summary::after {
    content: '\2212';
    color: var(--co-rust, #B5541C);
}
.post-content details > div,
.post-content details > p:not(:first-child) {
    padding: 0 1.5rem 1rem;
}

/* Definition lists */
.post-content dl { margin: 1.5rem 0; border-top: 1px solid var(--rule); }
.post-content dt { font-weight: 700; color: var(--ink); padding-top: 1rem; font-size: 1.0625rem; }
.post-content dd { color: var(--muted); padding-bottom: 1rem; margin-left: 0; border-bottom: 1px solid var(--rule); line-height: 1.75; }

/* ── Tables ─────────────────────────────────────────────── */
.post-content table {
    width: 100%;
    border-collapse: collapse;
    margin: 2rem 0;
    font-size: .9375rem;
    line-height: 1.6;
}
.post-content thead th {
    background: var(--forest);
    color: var(--white);
    font-family: var(--sans);
    font-weight: 600;
    font-size: .8125rem;
    letter-spacing: .04em;
    text-transform: uppercase;
    padding: .75rem 1rem;
    text-align: left;
    border-bottom: 2px solid var(--forest);
}
.post-content tbody td {
    padding: .75rem 1rem;
    border-bottom: 1px solid var(--rule);
    color: var(--ink);
    vertical-align: top;
}
.post-content tbody tr:nth-child(even) { background: var(--cream); }
.post-content tbody tr:hover { background: rgba(201,145,74,.08); }
.post-content caption {
    caption-side: bottom;
    font-size: .8125rem;
    color: var(--muted);
    font-style: italic;
    padding-top: .75rem;
    text-align: left;
}

/* ── Chart figures ─────────────────────────────────────── */
.post-content .chart-figure {
    margin: 2.5rem 0;
    text-align: center;
}
.post-content .chart-figure svg {
    display: block;
    margin: 0 auto;
    max-width: 100%;
    height: auto;
}
.post-content .chart-figure figcaption {
    font-size: .8125rem;
    color: var(--muted);
    font-style: italic;
    margin-top: .75rem;
    text-align: center;
}

/* ── Info box / callout variants ───────────────────────── */
.post-content .info-box {
    position: relative;
    padding: 1.5rem 1.5rem 1.5rem 3.5rem;
    margin: 2rem 0;
    border-radius: 3px;
    border: 1px solid var(--rule);
    background: var(--cream);
}
.post-content .info-box::before {
    position: absolute;
    left: 1.25rem;
    top: 1.5rem;
    font-size: 1.25rem;
    line-height: 1;
}
.post-content .info-box p { margin-bottom: .5rem; }
.post-content .info-box p:last-child { margin-bottom: 0; }
.post-content .info-box.tip { border-left: 4px solid var(--forest); }
.post-content .info-box.tip::before { content: '\2714'; color: var(--forest); }
.post-content .info-box.warning { border-left: 4px solid var(--gold); background: #FFF8EF; }
.post-content .info-box.warning::before { content: '\26A0'; color: var(--gold); }
.post-content .info-box.important { border-left: 4px solid var(--co-rust); }
.post-content .info-box.important::before { content: '\2757'; color: var(--co-rust); }
.post-content .info-box.note { border-left: 4px solid #4A7C59; }
.post-content .info-box.note::before { content: '\2139'; color: #4A7C59; font-weight: 700; }

/* ── Key stat panel ────────────────────────────────────── */
.post-content .key-stat {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    padding: 1.25rem 1.5rem;
    margin: 2rem 0;
    background: var(--paper);
    border: 1px solid var(--rule);
    border-radius: 3px;
}
.post-content .key-stat__number {
    font-family: var(--serif);
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--co-rust);
    line-height: 1;
    flex-shrink: 0;
}
.post-content .key-stat__label {
    font-size: .9375rem;
    color: var(--ink);
    line-height: 1.5;
}

/* ── Pull quote ────────────────────────────────────────── */
.post-content .pull-quote {
    margin: 3rem -1rem;
    padding: 2rem 2.5rem;
    background: var(--forest);
    color: var(--white);
    font-family: var(--serif);
    font-size: 1.5rem;
    font-weight: 400;
    line-height: 1.6;
    font-style: italic;
    border-radius: 3px;
    position: relative;
}
.post-content .pull-quote::before {
    content: '\201C';
    position: absolute;
    top: -.15em;
    left: .5rem;
    font-size: 4rem;
    color: rgba(255,255,255,.15);
    font-style: normal;
}
.post-content .pull-quote cite {
    display: block;
    margin-top: 1rem;
    font-size: .875rem;
    font-style: normal;
    font-family: var(--sans);
    color: rgba(255,255,255,.65);
    letter-spacing: .03em;
}

/* ── Highlight mark ────────────────────────────────────── */
.post-content mark {
    background: rgba(201,145,74,.18);
    color: inherit;
    padding: .1em .3em;
    border-radius: 2px;
}

/* ── Step list (numbered process) ──────────────────────── */
.post-content .steps {
    list-style: none;
    counter-reset: step-counter;
    margin: 2rem 0;
    padding: 0;
}
.post-content .steps > li {
    counter-increment: step-counter;
    position: relative;
    padding: 1.25rem 1.25rem 1.25rem 4rem;
    margin-bottom: 1rem;
    background: var(--white);
    border: 1px solid var(--rule);
    border-radius: 3px;
}
.post-content .steps > li::before {
    content: counter(step-counter);
    position: absolute;
    left: 1rem;
    top: 1.25rem;
    width: 2rem;
    height: 2rem;
    background: var(--co-rust);
    color: var(--white);
    font-family: var(--sans);
    font-size: .875rem;
    font-weight: 700;
    display: grid;
    place-items: center;
    border-radius: 50%;
}

/* ── Comparison grid (2-col) ───────────────────────────── */
.post-content .comparison {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin: 2rem 0;
}
@media (max-width: 600px) { .post-content .comparison { grid-template-columns: 1fr; } }
.post-content .comparison > div {
    padding: 1.25rem;
    border: 1px solid var(--rule);
    border-radius: 3px;
    background: var(--white);
}
.post-content .comparison > div h4 {
    margin-top: 0;
    margin-bottom: .75rem;
    text-transform: none;
    letter-spacing: 0;
    font-size: 1.0625rem;
    border-bottom: 2px solid var(--forest);
    padding-bottom: .5rem;
}
.post-content .comparison > div:last-child h4 { border-bottom-color: var(--co-rust); }

/* Back link */
.post-back {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    font-size: var(--t-sm);
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--forest);
    transition: color .25s;
    padding-top: 1.5rem;
    border-top: 1px solid var(--rule);
}
.post-back:hover { color: var(--ink); }

/* ── Share Buttons ─────────────────────────────────────── */
.post-share {
    margin: 2.5rem 0 0;
    padding-top: 1.5rem;
    border-top: 1px solid var(--rule);
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}
.post-share__label {
    font-size: var(--t-sm);
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--muted);
}
.post-share__btns {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
}
.post-share__btn {
    display: inline-flex;
    align-items: center;
    gap: .375rem;
    font-size: .8125rem;
    font-weight: 600;
    padding: .5rem 1rem;
    border: 1.5px solid var(--rule);
    border-radius: 2px;
    color: var(--ink);
    background: transparent;
    cursor: pointer;
    transition: border-color .2s, color .2s, background .2s;
    text-decoration: none;
    font-family: inherit;
    line-height: 1;
}
.post-share__btn:hover {
    border-color: var(--forest);
    color: var(--forest);
}
.post-share__btn svg { width: 16px; height: 16px; flex-shrink: 0; }
.post-share__btn--copy.copied {
    border-color: #4CAF50;
    color: #4CAF50;
}

/* ── Related Posts ─────────────────────────────────────── */
.post-related {
    margin: 3rem 0 0;
}
.post-related__heading {
    font-family: var(--serif);
    font-size: clamp(1.25rem, 2vw, 1.5rem);
    font-weight: 600;
    color: var(--ink);
    margin-bottom: 1.5rem;
    padding-bottom: .75rem;
    border-bottom: 2px solid var(--gold);
}
.post-related__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
}
.post-card--related {
    text-decoration: none;
}
.post-card--related .post-card-title {
    font-size: clamp(1rem, 1.5vw, 1.125rem);
}
.post-card--related .post-card-body {
    padding: 1.25rem 1.25rem 1.5rem;
}
@media (max-width: 768px) {
    .post-related__grid { grid-template-columns: 1fr; }
}
@media (min-width: 769px) and (max-width: 1079px) {
    .post-related__grid { grid-template-columns: repeat(2, 1fr); }
}

/* ── Sticky TOC Sidebar ──────────────────────────────────── */
.post-sidebar { display: none; }
@media (min-width: 1080px) {
    .post-sidebar { display: block; }
}
.post-toc {
    position: sticky;
    top: calc(var(--header-h) + 2rem);
    max-height: calc(100vh - var(--header-h) - 4rem);
    overflow-y: auto;
}
.post-toc__title {
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: .75rem;
    padding-bottom: .5rem;
    border-bottom: 1px solid var(--rule);
}
.post-toc__list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.post-toc__list li { margin-bottom: .25rem; }
.post-toc__list li a {
    display: block;
    padding: .4rem 0 .4rem .75rem;
    font-size: .8125rem;
    color: var(--muted);
    line-height: 1.4;
    border-left: 2px solid transparent;
    transition: color .2s, border-color .2s;
    text-decoration: none;
}
.post-toc__list li a:hover { color: var(--ink); }
.post-toc__list li a.active {
    color: var(--co-rust, #B5541C);
    border-left-color: var(--co-rust, #B5541C);
    font-weight: 600;
}

/* ── Mobile TOC ──────────────────────────────────────────── */
.post-toc-toggle,
.post-toc-mobile { display: none; }
@media (max-width: 1079px) {
    .post-toc-toggle {
        display: inline-flex;
        align-items: center;
        gap: .4rem;
        position: fixed;
        bottom: 1.5rem;
        right: 1.5rem;
        z-index: 100;
        background: var(--ink);
        color: var(--white);
        border: none;
        padding: .6rem 1rem;
        border-radius: 3px;
        font-size: .8125rem;
        font-weight: 600;
        letter-spacing: .04em;
        cursor: pointer;
        box-shadow: 0 2px 12px rgba(0,0,0,.25);
        transition: background .2s;
    }
    .post-toc-toggle:hover { background: var(--forest); }
    .post-toc-toggle[aria-expanded="true"] { background: var(--co-rust, #B5541C); }

    .post-toc-mobile {
        display: block;
        position: fixed;
        bottom: 4.5rem;
        right: 1.5rem;
        z-index: 99;
        width: min(320px, calc(100vw - 3rem));
        max-height: 60vh;
        overflow-y: auto;
        background: var(--white);
        border: 1px solid var(--rule);
        box-shadow: 0 4px 20px rgba(0,0,0,.15);
        border-radius: 4px;
        padding: 1.25rem;
        transform: translateY(10px);
        opacity: 0;
        visibility: hidden;
        transition: opacity .2s, transform .2s, visibility .2s;
    }
    .post-toc-mobile.open {
        opacity: 1;
        visibility: visible;
        transform: none;
    }
}

/* ── EPD Key Facts panel ──────────────────────────────────── */
.epd-key-facts {
    background: var(--cream);
    border-left: 4px solid var(--co-rust, #B5541C);
    border-radius: 0 4px 4px 0;
    padding: 1.5rem 2rem;
    margin-bottom: 2.5rem;
}
.epd-key-facts__heading {
    font-size: var(--t-sm);
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--co-rust, #B5541C);
    margin-bottom: 1.25rem;
}
.epd-key-facts__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 1rem 2rem;
    margin-bottom: 1.5rem;
}
.epd-key-facts__item { display: flex; flex-direction: column; gap: .2rem; }
.epd-key-facts__label {
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--muted);
}
.epd-key-facts__value {
    font-family: var(--mono);
    font-size: var(--t-sm);
    color: var(--ink);
    font-weight: 500;
}
.epd-key-facts__cta {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    font-size: var(--t-sm);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--co-rust, #B5541C);
    border: 1.5px solid var(--co-rust, #B5541C);
    padding: .5rem 1.25rem;
    border-radius: 2px;
    transition: background .2s, color .2s;
}
.epd-key-facts__cta:hover {
    background: var(--co-rust, #B5541C);
    color: var(--white);
}
.epd-key-facts__cta:focus-visible {
    outline: 2px solid var(--co-rust, #B5541C);
    outline-offset: 3px;
}

/* Archive */
.post-archive { padding-top: var(--header-h); }
.archive-header {
    background: var(--paper);
    padding-block: clamp(4rem, 7vw, 6rem);
    border-bottom: 1px solid var(--rule);
}
.archive-header h1 {
    font-family: var(--serif);
    font-size: clamp(2.5rem, 6vw, 5.5rem);
    font-weight: 300;
    color: var(--ink);
    line-height: 1.0;
    margin-bottom: .75rem;
}
.archive-header p { font-size: var(--t-md); color: var(--muted); }
/* ── Category filter bar ── */
.archive-filters {
    background: var(--paper);
    border-bottom: 1px solid var(--rule);
    padding-block: 1.25rem;
}
.filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    align-items: center;
}
.filter-btn {
    font-family: var(--mono);
    font-size: .72rem;
    font-weight: 500;
    letter-spacing: .06em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--muted);
    border: 1px solid var(--rule);
    border-radius: 2px;
    padding: .35rem .85rem;
    background: transparent;
    transition: all .18s var(--ease);
    white-space: nowrap;
}
.filter-btn:hover {
    color: var(--ink);
    border-color: var(--ink);
    background: transparent;
}
.filter-btn.is-active {
    color: var(--white);
    background: var(--ink);
    border-color: var(--ink);
}

.archive-body {
    background: var(--paper);
    padding-block: 3rem 5rem;
}
.posts-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
    margin-bottom: 3rem;
}
/* Orphan fix: last card spans remaining space when alone in last row */
.posts-grid article:last-child:nth-child(3n+1) {
    grid-column: 1 / -1;
}
.posts-grid article:last-child:nth-child(3n+1) .post-card-image {
    aspect-ratio: 21/9;
}
.posts-nav {
    display: flex;
    gap: 1rem;
    align-items: center;
    padding-top: 2rem;
    border-top: 1px solid var(--rule);
}
.posts-nav .page-numbers {
    font-size: var(--t-sm);
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: .5rem 1rem;
    border: 1px solid var(--rule);
    color: var(--muted);
    transition: .25s;
}
.posts-nav .page-numbers:hover,
.posts-nav .page-numbers.current { background: var(--forest); border-color: var(--forest); color: var(--white); }

@media (max-width: 960px) {
    .posts-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
    .stories-grid { grid-template-columns: 1fr; }
    .posts-grid { grid-template-columns: 1fr; }
}

/* ── MANIFESTO ───────────────────────────────────────────────── */
.manifesto {
    background: var(--ink);
    padding-block: clamp(5rem, 9vw, 8rem);
}
.manifesto-inner {
    max-width: 760px;
    margin: 0 auto;
}
.manifesto-inner p {
    font-family: var(--serif);
    font-size: clamp(1.2rem, 2.2vw, 1.5rem);
    font-weight: 300;
    color: rgba(255,255,255,.88);
    line-height: 1.75;
    margin-bottom: 1.5rem;
}
.manifesto-inner p:last-child { margin-bottom: 0; }
.manifesto-inner strong { color: var(--white); font-weight: 400; }

/* ── TESTIMONIALS ─────────────────────────────────────────────── */
.testimonials {
    background: var(--cream);
    padding-block: clamp(5rem, 9vw, 8rem);
    border-top: 1px solid var(--rule);
    border-bottom: 1px solid var(--rule);
}
.testimonials-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
    margin-top: clamp(2.5rem, 5vw, 4rem);
}
.testimonial-card {
    background: var(--white);
    border: 1px solid var(--rule);
    padding: 2.5rem 2rem;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}
.testimonial-photo {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    object-fit: cover;
}
.testimonial-photo-placeholder {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--rule);
}
.testimonial-logo-link { display: block; }
.testimonial-logo {
    max-width: 120px;
    max-height: 48px;
    width: auto;
    height: auto;
    object-fit: contain;
    opacity: .7;
    transition: opacity .3s;
}
.testimonial-card:hover .testimonial-logo { opacity: 1; }
.testimonial-role a {
    color: var(--forest);
    text-decoration: none;
    font-weight: 600;
}
.testimonial-role a:hover { text-decoration: underline; }
.testimonial-quote {
    font-family: var(--serif);
    font-size: clamp(1rem, 1.8vw, 1.25rem);
    font-style: italic;
    font-weight: 300;
    color: var(--ink);
    line-height: 1.65;
    flex: 1;
}
.testimonial-attr {
    border-top: 1px solid var(--rule);
    padding-top: 1rem;
}
.testimonial-name {
    font-size: var(--t-sm);
    font-weight: 700;
    letter-spacing: .1em;
    color: var(--ink);
    text-transform: uppercase;
    display: block;
    margin-bottom: .25rem;
}
.testimonial-role { font-size: var(--t-sm); color: var(--muted); }

/* ── MEMBER BADGE ─────────────────────────────────────────────── */
.member-badge {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-size: var(--t-sm);
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--forest);
    background: rgba(27,67,50,.07);
    border: 1px solid rgba(27,67,50,.18);
    padding: .3rem .85rem;
    margin-bottom: 1.25rem;
}
.member-badge::before {
    content: '';
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--sage);
}

/* ── EPD STORY CARD ───────────────────────────────────────────── */
.epd-story {
    background: var(--white);
    border-left: 3px solid var(--gold);
    padding: 2rem 2.5rem;
    margin-top: 2rem;
}
.epd-story h4 {
    font-size: var(--t-sm);
    font-weight: 700;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 1rem;
}
.epd-story p {
    font-size: var(--t-md);
    color: var(--muted);
    line-height: 1.8;
    margin-bottom: .75rem;
}
.epd-story p:last-child { margin-bottom: 0; }

/* ── ABOUT CREDENTIALS ────────────────────────────────────────── */
.about-credentials {
    background: var(--forest);
    padding-block: clamp(4rem, 7vw, 6rem);
}
.about-credentials-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: start;
}
.about-credentials h2 {
    font-family: var(--serif);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 300;
    color: var(--white);
    line-height: 1.15;
    margin-bottom: 1.5rem;
}
.about-credentials p {
    font-size: var(--t-md);
    color: rgba(255,255,255,.6);
    line-height: 1.8;
    margin-bottom: 1.25rem;
}
.about-credentials p:last-child { margin-bottom: 0; }
.about-credentials strong { color: var(--white); }
.about-cred-stats {
    display: flex;
    flex-direction: column;
    gap: 1px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.08);
}
.about-cred-stat {
    background: rgba(255,255,255,.04);
    padding: 1.5rem 2rem;
    display: flex;
    flex-direction: column;
    gap: .375rem;
}
.about-cred-stat-num {
    font-family: var(--serif);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 300;
    color: var(--white);
    line-height: 1;
}
.about-cred-stat-label {
    font-size: var(--t-sm);
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: rgba(255,255,255,.35);
}
.about-credentials .btn-contact {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    font-size: var(--t-sm);
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--white);
    border: 1.5px solid rgba(255,255,255,.35);
    padding: .875rem 2rem;
    margin-top: 2rem;
    transition: .3s;
}
.about-credentials .btn-contact:hover {
    border-color: var(--white);
    background: rgba(255,255,255,.08);
}

/* ── LEGAL PAGES (Privacy Policy, Terms, etc.) ───────────────── */
.legal-page { padding-top: var(--header-h); }
.legal-hero {
    background: var(--ink);
    padding-block: clamp(3.5rem, 6vw, 5rem);
    color: var(--white);
}
.legal-hero h1 {
    font-family: var(--serif);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 500;
    line-height: 1.15;
    color: var(--white);
}
.legal-body {
    padding-block: clamp(3rem, 5vw, 4.5rem);
}
.legal-content {
    max-width: 720px;
    font-size: var(--t-md);
    line-height: 1.8;
    color: var(--ink);
}
.legal-content h2 {
    font-family: var(--serif);
    font-size: clamp(1.25rem, 2vw, 1.5rem);
    font-weight: 600;
    margin-top: 2.5rem;
    margin-bottom: .75rem;
    padding-bottom: .5rem;
    border-bottom: 1px solid var(--rule);
    color: var(--ink);
}
.legal-content h2:first-child { margin-top: 0; }
.legal-content p { margin-bottom: 1rem; }
.legal-content ul {
    margin: .5rem 0 1.25rem 1.25rem;
    list-style: disc;
}
.legal-content li { margin-bottom: .5rem; }
.legal-content a {
    color: var(--forest);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.legal-content a:hover { color: var(--ink); }
.legal-content code {
    font-family: var(--mono);
    font-size: .85em;
    background: var(--cream);
    padding: .15em .4em;
    border-radius: 3px;
}
.legal-table {
    width: 100%;
    border-collapse: collapse;
    margin: 1rem 0 1.5rem;
    font-size: .875rem;
}
.legal-table th,
.legal-table td {
    text-align: left;
    padding: .75rem 1rem;
    border: 1px solid var(--rule);
}
.legal-table th {
    background: var(--cream);
    font-weight: 700;
    font-size: var(--t-sm);
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--muted);
}
.legal-table td { vertical-align: top; }
.contact-consent {
    font-size: .8125rem;
    color: var(--muted);
    line-height: 1.6;
    margin-top: -.25rem;
}
.contact-consent a { color: var(--forest); text-decoration: underline; }
.footer-legal {
    color: rgba(255,255,255,.2);
    font-size: .75rem;
}
.footer-legal a {
    color: rgba(255,255,255,.35);
    text-decoration: none;
    transition: color .2s;
}
.footer-legal a:hover { color: rgba(255,255,255,.6); }
.footer-legal span { margin: 0 .3rem; }

/* ── 404 PAGE ────────────────────────────────────────────────── */
.error-page { padding-top: var(--header-h); }
.error-hero {
    background: var(--ink);
    padding-block: clamp(4rem, 7vw, 6rem);
    text-align: center;
    position: relative;
    overflow: hidden;
}
.error-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(160deg, rgba(45,80,50,.15) 0%, transparent 50%);
    pointer-events: none;
}
.error-hero h1 {
    font-family: var(--serif);
    font-size: clamp(4rem, 10vw, 8rem);
    font-weight: 300;
    line-height: 1;
    color: var(--white);
    opacity: .25;
    letter-spacing: .05em;
}
.error-sub {
    font-size: var(--t-md);
    color: rgba(255,255,255,.6);
    max-width: 440px;
    margin-inline: auto;
    line-height: 1.7;
}
.error-body {
    padding-block: clamp(3rem, 5vw, 4.5rem);
}
.error-body p {
    font-size: var(--t-md);
    color: var(--muted);
    margin-bottom: 1.5rem;
}
.error-links {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .75rem;
    max-width: 320px;
}
.error-links a {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .875rem 1.25rem;
    border: 1.5px solid var(--rule);
    border-radius: 4px;
    color: var(--ink);
    text-decoration: none;
    font-weight: 600;
    font-size: .9375rem;
    transition: border-color .2s, color .2s;
}
.error-links a:hover {
    border-color: var(--forest);
    color: var(--forest);
}
.error-links svg {
    flex-shrink: 0;
    color: var(--muted);
}
.error-links a:hover svg { color: var(--forest); }

/* ── CONTACT PAGE ─────────────────────────────────────────────── */
.contact-page { padding-top: var(--header-h); }
.contact-hero {
    background: var(--forest);
    padding-block: clamp(5rem, 9vw, 8rem);
    position: relative;
    overflow: hidden;
}
/* Radial glow */
.contact-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at 25% 40%, rgba(255,255,255,.06) 0%, transparent 55%),
        linear-gradient(160deg, rgba(45,80,50,.2) 0%, transparent 50%);
    pointer-events: none;
}
/* Botanical leaf — right side decoration (matches About hero) */
.contact-hero::after {
    content: '';
    position: absolute;
    top: -30px; right: 40px;
    width: 280px; height: 340px;
    background: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzAwIDM0MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9InJnYmEoMjU1LDI1NSwyNTUsMC45KSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICA8ZyB0cmFuc2Zvcm09InJvdGF0ZSgxNSAxNTAgMTcwKSI+CiAgICA8cGF0aCBkPSJNIDE1MCAzMCBDIDgwIDgwIDQwIDE2MCA2MCAyNTAgUSA4MCAzMDAgMTUwIDMyMCBRIDIyMCAzMDAgMjQwIDI1MCBDIDI2MCAxNjAgMjIwIDgwIDE1MCAzMCBaIgogICAgICAgICAgc3Ryb2tlLXdpZHRoPSIyLjUiIGZpbGw9InJnYmEoMjU1LDI1NSwyNTUsMC4wNikiIC8+CiAgICA8cGF0aCBkPSJNIDE1MCA1MCBMIDE1MCAzMTAiIHN0cm9rZS13aWR0aD0iMiIgLz4KICAgIDxwYXRoIGQ9Ik0gMTUwIDkwIFEgMTIwIDExMCA4NSAxMDUiIHN0cm9rZS13aWR0aD0iMS4zIiAvPgogICAgPHBhdGggZD0iTSAxNTAgMTMwIFEgMTEwIDE1NSA3MCAxNTUiIHN0cm9rZS13aWR0aD0iMS4zIiAvPgogICAgPHBhdGggZD0iTSAxNTAgMTcwIFEgMTA1IDE5NSA2NSAyMDAiIHN0cm9rZS13aWR0aD0iMS4zIiAvPgogICAgPHBhdGggZD0iTSAxNTAgMjEwIFEgMTEwIDIzMCA3NSAyNDAiIHN0cm9rZS13aWR0aD0iMS4zIiAvPgogICAgPHBhdGggZD0iTSAxNTAgMjUwIFEgMTIwIDI2NSA5NSAyNzIiIHN0cm9rZS13aWR0aD0iMS4zIiAvPgogICAgPHBhdGggZD0iTSAxNTAgOTAgUSAxODAgMTEwIDIxNSAxMDUiIHN0cm9rZS13aWR0aD0iMS4zIiAvPgogICAgPHBhdGggZD0iTSAxNTAgMTMwIFEgMTkwIDE1NSAyMzAgMTU1IiBzdHJva2Utd2lkdGg9IjEuMyIgLz4KICAgIDxwYXRoIGQ9Ik0gMTUwIDE3MCBRIDE5NSAxOTUgMjM1IDIwMCIgc3Ryb2tlLXdpZHRoPSIxLjMiIC8+CiAgICA8cGF0aCBkPSJNIDE1MCAyMTAgUSAxOTAgMjMwIDIyNSAyNDAiIHN0cm9rZS13aWR0aD0iMS4zIiAvPgogICAgPHBhdGggZD0iTSAxNTAgMjUwIFEgMTgwIDI2NSAyMDUgMjcyIiBzdHJva2Utd2lkdGg9IjEuMyIgLz4KICA8L2c+Cjwvc3ZnPgo=") center / contain no-repeat;
    opacity: .1;
    pointer-events: none;
    z-index: 0;
}
.contact-hero .wrap { position: relative; z-index: 1; }
.contact-hero h1 {
    font-family: var(--serif);
    font-size: clamp(2.5rem, 6vw, 5rem);
    font-weight: 300;
    color: var(--white);
    max-width: 760px;
    line-height: 1.1;
    margin-bottom: 1.25rem;
}
.contact-hero h1 em { color: var(--gold); }
.contact-hero p { font-size: var(--t-md); color: rgba(255,255,255,.6); max-width: 520px; line-height: 1.75; }
.contact-body {
    background: var(--cream);
    padding-block: clamp(3.5rem, 7vw, 6rem);
}
.contact-grid {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 4rem;
    align-items: start;
}
.contact-form { display: flex; flex-direction: column; gap: 1.5rem; }
.contact-form-row { display: flex; flex-direction: column; gap: .5rem; }
.contact-form label {
    font-size: var(--t-sm);
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--muted);
}
.contact-form input,
.contact-form select,
.contact-form textarea {
    width: 100%;
    padding: .875rem 1rem;
    font-family: var(--sans);
    font-size: var(--t-md);
    color: var(--ink);
    background: var(--white);
    border: 1px solid var(--rule);
    border-radius: 3px;
    outline: none;
    transition: border-color .25s, box-shadow .25s;
    appearance: none;
}
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
    border-color: var(--forest);
    box-shadow: 0 0 0 3px rgba(45,80,50,.08);
}
.contact-form textarea { min-height: 160px; resize: vertical; }
.contact-form button[type="submit"] {
    align-self: flex-start;
    padding: .875rem 2.5rem;
    background: var(--forest);
    color: var(--white);
    font-family: var(--sans);
    font-size: var(--t-sm);
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    border: none;
    border-radius: 3px;
    cursor: pointer;
    transition: background .25s, transform .15s;
}
.contact-form button[type="submit"]:hover { background: var(--ink); transform: translateY(-1px); }
.contact-form .required { color: var(--co-rust); }
.contact-success {
    padding: 3rem 2rem;
    text-align: center;
    border: 2px solid var(--forest);
    border-radius: 4px;
    background: rgba(45,80,50,.04);
}
.contact-success svg { margin-bottom: 1rem; }
.contact-success h3 {
    font-family: var(--serif);
    font-size: 1.5rem;
    margin-bottom: .75rem;
    color: var(--forest);
}
.contact-success p { color: var(--muted); line-height: 1.7; }
.contact-error {
    padding: 1rem 1.25rem;
    margin-bottom: 1.5rem;
    background: #FFF3F0;
    border: 1px solid var(--co-rust);
    border-radius: 3px;
    color: var(--co-rust);
    font-size: .875rem;
    font-weight: 600;
}
.contact-error a { color: var(--co-rust); text-decoration: underline; }
.contact-info {
    display: flex;
    flex-direction: column;
    gap: 1px;
    background: var(--rule);
    border: 1px solid var(--rule);
    border-radius: 4px;
    overflow: hidden;
}
.contact-info-block {
    background: var(--white);
    padding: 1.75rem;
    position: relative;
}
.contact-info-block:first-child::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--forest), var(--sage));
}
.contact-info-block h4 {
    font-size: var(--t-sm);
    font-weight: 700;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: 1rem;
}
.contact-info-block p { font-size: var(--t-md); color: var(--ink); line-height: 1.7; }
.contact-info-block a {
    color: var(--forest);
    border-bottom: 1px solid var(--rule);
    transition: .25s;
}
.contact-info-block a:hover { color: var(--ink); border-color: var(--ink); }

@media (max-width: 900px) {
    .testimonials-grid { grid-template-columns: 1fr 1fr; }
    .about-credentials-inner { grid-template-columns: 1fr; gap: 2.5rem; }
    .contact-grid { grid-template-columns: 1fr; }
    .epd-single-hero-inner { grid-template-columns: 1fr; }
    .epd-single-download { align-items: flex-start; }
    .epd-single-grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
    .testimonials-grid { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════════
   EPD SINGLE PAGE — Technical Clarity
   White / rust terracotta (#B5541C). Cormorant Garamond + IBM Plex Mono.
   Data-forward, Swiss grid, certified precision.
   ═══════════════════════════════════════════════════════════════ */

/* ── Scroll-reveal: scale+fade ───────────────────────────────── */
@keyframes epd-enter {
    from { opacity: 0; transform: scale(.98) translateY(10px); }
    to   { opacity: 1; transform: scale(1)   translateY(0); }
}
.epd-reveal-pending { opacity: 0; transform: scale(.98) translateY(10px); }
.epd-rise { animation: epd-enter .5s cubic-bezier(.16,1,.3,1) both; }

/* ═══════════════════════════════════════════════════════════════
   EPD PAGE — Technical Clarity   (new design)
   White base · Rust Terracotta #B5541C · Cormorant Garamond + IBM Plex Mono
   ═══════════════════════════════════════════════════════════════ */

/* ── Design tokens (scoped — rust/terracotta palette) ── */
.epd-page {
    --epd-blue:   #B5541C;
    --epd-dark:   #8B4010;
    --epd-ink:    #0A0A0A;
    --epd-dim:    #6B6B6B;
    --epd-mute:   #BABABA;
    --epd-rule:   #E5E5E5;
    --epd-bg:     #F5F5F5;
    --epd-white:  #FFFFFF;
    --epd-f-sans: var(--f-plex);    /* IBM Plex Sans — body/labels/values */
    --epd-f-mono: var(--f-mono);   /* IBM Plex Mono — codes/technical */
}

/* ── Page wrapper ────────────────────────────────────────────── */
.epd-page { background: var(--epd-white); color: var(--epd-ink); }

/* ══════════════════════════════════════════════════════════════
   SINGLE EPD — Document Card Layout
══════════════════════════════════════════════════════════════ */

/* Page wrapper */
.epd-doc-wrap {
    padding: calc(var(--header-h) + 2.5rem) 0 4rem;
    background: var(--co-bg, #FAFAF8);
    min-height: 80vh;
}

/* Breadcrumb */
.epd-doc-breadcrumb {
    display: flex;
    align-items: center;
    gap: .375rem;
    font-family: var(--epd-f-mono);
    font-size: var(--t-sm);
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--epd-dim);
    flex-wrap: wrap;
    margin-bottom: 2rem;
}
.epd-doc-breadcrumb a { color: var(--epd-dim); transition: color .2s; }
.epd-doc-breadcrumb a:hover { color: var(--epd-ink); }
.epd-doc-breadcrumb span { color: var(--epd-ink); }

/* Two-column document grid */
.epd-doc {
    display: grid;
    grid-template-columns: 160px 1fr;
    gap: 2.5rem;
    align-items: start;
}

/* ── LEFT: Cover column ── */
.epd-doc-cover-col {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.25rem;
    position: sticky;
    top: calc(var(--header-h) + 1.5rem);
}
.epd-doc-cover-link {
    display: block;
    line-height: 0;
    transition: transform .2s;
}
.epd-doc-cover-link:hover { transform: translateY(-2px); }
.epd-doc-cover-img {
    width: 100%;
    max-width: 160px;
    aspect-ratio: 210 / 297;
    object-fit: cover;
    object-position: top;
    border-radius: 3px;
    box-shadow: 0 2px 8px rgba(0,0,0,.10), 0 0 0 1px rgba(0,0,0,.04);
    display: block;
}
.epd-doc-back {
    font-family: var(--epd-f-mono);
    font-size: var(--t-sm);
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--epd-dim);
    transition: color .2s;
}
.epd-doc-back:hover { color: var(--epd-blue); }

/* ── RIGHT: Main details ── */
.epd-doc-main { min-width: 0; }

/* Header */
.epd-doc-head {
    margin-bottom: 1.5rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--epd-rule);
}
.epd-doc-badges {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-bottom: .875rem;
}
.epd-doc-badge-cert {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-family: var(--epd-f-mono);
    font-size: var(--t-sm);
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--epd-blue);
    border: 1px solid rgba(181,84,28,.3);
    padding: .25rem .625rem;
    border-radius: 2px;
}
.epd-doc-badge-sector {
    display: inline-flex;
    align-items: center;
    font-family: var(--epd-f-mono);
    font-size: var(--t-sm);
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--epd-dim);
    border: 1px solid var(--epd-rule);
    padding: .25rem .625rem;
    border-radius: 2px;
}
.epd-doc-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(1.625rem, 3.5vw, 2.375rem);
    font-weight: 300;
    color: rgb(15, 26, 19);
    line-height: 1.1;
    letter-spacing: -.02em;
    margin: 0 0 .5rem;
}
.epd-doc-byline {
    font-family: var(--epd-f-mono);
    font-size: var(--t-md);
    color: var(--epd-dim);
    margin: 0;
}
.epd-doc-byline a { color: var(--epd-ink); }
.epd-doc-byline a:hover { color: var(--epd-blue); }

/* Declaration details — 2-col grid table */
.epd-doc-dl {
    display: grid;
    grid-template-columns: 1fr 1fr;
    border: 1px solid var(--epd-rule);
    border-radius: 3px;
    overflow: hidden;
    margin: 0 0 1.5rem;
}
.epd-doc-dl-row {
    padding: .625rem .875rem;
    border-bottom: 1px solid var(--epd-rule);
    border-right: 1px solid var(--epd-rule);
    display: flex;
    flex-direction: column;
    gap: .125rem;
}
.epd-doc-dl-row:nth-child(2n)           { border-right: none; }
.epd-doc-dl-row:nth-last-child(-n+2)    { border-bottom: none; }
/* Odd-count: last row spans full width */
.epd-doc-dl-row:last-child:nth-child(odd) { grid-column: span 2; border-right: none; }
.epd-doc-dl-row dt {
    font-family: var(--epd-f-mono);
    font-size: .625rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--epd-dim);
}
.epd-doc-dl-row dd {
    font-size: .8125rem;
    font-weight: 500;
    color: var(--epd-ink);
    margin: 0;
    line-height: 1.4;
}

/* LCA indicators — parchment inline row */
.epd-doc-lca {
    background: #F0E9DF;
    border: 1px solid #DDD3C5;
    border-radius: 3px;
    padding: .875rem 1rem;
    margin-bottom: 1.5rem;
}
.epd-doc-lca-label {
    display: block;
    font-family: var(--epd-f-mono);
    font-size: .625rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #7A6450;
    margin-bottom: .75rem;
}
.epd-doc-lca-row {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem 1.5rem;
}
.epd-doc-lca-item {
    display: flex;
    flex-direction: column;
    gap: .1rem;
}
.epd-doc-lca-abbr {
    font-family: var(--epd-f-mono);
    font-size: .625rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #9A826A;
}
.epd-doc-lca-item--feat .epd-doc-lca-abbr { color: var(--epd-blue); }
.epd-doc-lca-val {
    font-family: var(--f-display), Georgia, serif; /* Cormorant Garamond — LCA featured value */
    font-size: 1.375rem;
    font-weight: 700;
    color: var(--epd-ink);
    line-height: 1;
    letter-spacing: -.02em;
}
.epd-doc-lca-item--feat .epd-doc-lca-val { font-size: 1.625rem; color: var(--epd-blue); }
.epd-doc-lca-unit {
    font-family: var(--epd-f-mono);
    font-size: .625rem;
    color: #B09A84;
}

/* Actions: Download + Share */
.epd-doc-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .75rem 1.25rem;
    margin-bottom: 1.5rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--epd-rule);
}
.epd-doc-download {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    background: var(--epd-blue);
    color: var(--epd-white);
    font-family: var(--epd-f-mono);
    font-size: var(--t-sm);
    font-weight: 500;
    letter-spacing: .12em;
    text-transform: uppercase;
    padding: .75rem 1.5rem;
    border-radius: 2px;
    transition: background .18s;
    white-space: nowrap;
}
.epd-doc-download:hover { background: var(--epd-stamp, #8B4010); color: var(--epd-white); }
.epd-doc-share {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .75rem 1rem;
}
.epd-copy-btn {
    display: inline-flex;
    align-items: center;
    gap: .4375rem;
    border: 1px solid var(--epd-rule);
    background: transparent;
    color: var(--epd-dim);
    font-family: var(--epd-f-mono);
    font-size: var(--t-sm);
    letter-spacing: .1em;
    text-transform: uppercase;
    padding: .625rem 1rem;
    border-radius: 2px;
    cursor: pointer;
    transition: border-color .18s, color .18s;
}
.epd-copy-btn:hover { border-color: var(--epd-ink); color: var(--epd-ink); }
.epd-copy-btn.copied { border-color: #4CAF50; color: #4CAF50; }
.epd-doc-li,
.epd-doc-source {
    font-family: var(--epd-f-mono);
    font-size: var(--t-sm);
    letter-spacing: .08em;
    color: var(--epd-dim);
    transition: color .2s;
}
.epd-doc-li:hover,
.epd-doc-source:hover { color: var(--epd-blue); }

/* Description */
.epd-doc-desc {
    font-size: var(--t-md);
    line-height: 1.7;
    color: var(--epd-dim);
    margin: 0;
    max-width: 70ch;
}

/* ── Responsive ── */
@media (max-width: 640px) {
    .epd-doc                  { grid-template-columns: 1fr; }
    .epd-doc-cover-col        { flex-direction: row; align-items: center; gap: 1rem; position: static; }
    .epd-doc-cover-img        { width: 80px; max-width: 80px; }
    .epd-doc-dl               { grid-template-columns: 1fr; }
    .epd-doc-dl-row           { border-right: none; }
    .epd-doc-dl-row:nth-last-child(-n+2) { border-bottom: 1px solid var(--epd-rule); }
    .epd-doc-dl-row:last-child           { border-bottom: none; }
    .epd-doc-dl-row:last-child:nth-child(odd) { grid-column: span 1; }
}

/* ── Misc ────────────────────────────────────────────────────── */
::selection { background: var(--epd-blue); color: var(--epd-white); }
:focus-visible { outline: 2px solid var(--epd-blue); outline-offset: 3px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }

/* ═══ COMPANY PORTFOLIO PAGE ══════════════════════════════════════════════ */

.co-page {
    background: var(--co-bg, #FAFAF8);
    color: var(--co-ink, #111);
    font-family: var(--f-plex, 'IBM Plex Sans', sans-serif);
}

/* ── Wrap ── */
.co-wrap {
    max-width: 1100px;
    margin-inline: auto;
    padding-inline: clamp(1.25rem, 5vw, 3rem);
}

/* ── Header ── */
.co-header {
    padding-top: calc(var(--header-h, 64px) + 2rem);
    padding-bottom: calc(3rem + 80px);
    border-bottom: 1px solid var(--co-rule, #E0DCD5);
}

.co-breadcrumb {
    font-family: var(--f-mono, 'IBM Plex Mono', monospace);
    font-size: var(--t-sm);
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--co-muted, #888078);
    margin-bottom: 2rem;
}
.co-breadcrumb a {
    color: var(--co-rust, #B5541C);
    text-decoration: none;
}
.co-breadcrumb a:hover { text-decoration: underline; }

.co-header-inner {
    display: grid;
    grid-template-columns: 1fr 370px;
    gap: 3rem 4rem;
    align-items: start;
    padding-top: 1.5rem;
}
@media (max-width: 960px) {
    .co-header-inner { grid-template-columns: 1fr; }
    .co-sector-card  { display: none; }
}

.co-identity {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    border-left: 3px solid var(--co-rust, #B5541C);
    padding-left: 1.25rem;
}

.co-logo-img {
    height: 48px;
    width: auto;
    object-fit: contain;
}

.co-name {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(2.5rem, 7vw, 4.5rem);
    font-weight: 300;
    line-height: 1.1;
    letter-spacing: -.02em;
    color: rgb(15, 26, 19);
    margin: 0;
    font-style: normal;
}

.co-contact-row {
    display: flex;
    gap: 1.5rem;
    flex-wrap: wrap;
    align-items: center;
    margin-top: .25rem;
}
.co-web-link {
    font-family: var(--f-mono, 'IBM Plex Mono', monospace);
    font-size: var(--t-sm);
    color: var(--co-rust, #B5541C);
    text-decoration: none;
    white-space: nowrap;
    padding-bottom: .375rem;
    border-bottom: 1px solid var(--co-rust, #B5541C);
}
.co-web-link:hover { opacity: .7; }

/* ── Meta strip ── */
.co-meta-strip {
    display: flex;
    gap: 0;
    margin-top: 2.5rem;
    border-top: 1px solid var(--co-rule, #E0DCD5);
}
.co-meta-item {
    display: flex;
    flex-direction: column;
    gap: .25rem;
    padding: 1rem 2rem 1rem 0;
    margin-right: 2rem;
    border-right: 1px solid var(--co-rule, #E0DCD5);
    min-width: 120px;
}
.co-meta-item:last-child { border-right: none; }
.co-meta-label {
    font-family: var(--f-mono, 'IBM Plex Mono', monospace);
    font-size: var(--t-sm);
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--co-muted, #888078);
}
.co-meta-val {
    font-family: var(--f-display, 'Cormorant Garamond', serif);
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--co-ink, #111);
}

/* ── Description ── */
.co-desc-section {
    padding: 3rem 0 0;
}
.co-desc {
    font-size: var(--t-md);
    line-height: 1.75;
    color: var(--co-ink, #111);
    max-width: 720px;
    border-left: 3px solid var(--co-rust, #B5541C);
    padding-left: 1.25rem;
    margin: 0;
}

/* ── EPD Section ── */
.co-epd-section {
    padding: 3rem 0;
}
.co-section-head {
    margin-bottom: 1.5rem;
}
.co-section-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1.5rem;
    font-weight: 300;
    line-height: 1.1;
    letter-spacing: normal;
    text-transform: none;
    color: rgb(15, 26, 19);
    margin: 0;
}
.co-count {
    color: var(--co-rust, #B5541C);
}

/* ── Register table ── */
.co-epd-register {
    border: 1px solid var(--co-rule, #E0DCD5);
    border-radius: 4px;
    padding: 0 1.5rem;
    background: #fff;
    box-shadow: 0 1px 6px rgba(0,0,0,.06);
}
.co-epd-row {
    display: grid;
    grid-template-columns: 2.5rem 1fr 2fr 5.5rem auto auto 2rem;
    gap: 1rem;
    align-items: center;
    padding: .875rem 0;
    border-bottom: 1px solid var(--co-rule, #E0DCD5);
}
.co-epd-row--head {
    font-family: var(--f-mono, 'IBM Plex Mono', monospace);
    font-size: var(--t-sm);
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--co-muted, #888078);
}
.co-epd-row--data {
    text-decoration: none;
    color: var(--co-ink, #111);
    transition: background .15s;
}
.co-epd-row--data:hover {
    background: var(--co-panel, #F0EDE8);
    margin-inline: -.75rem;
    padding-inline: .75rem;
    border-radius: 2px;
}
.co-epd-view-link {
    color: var(--co-rust, #B5541C);
    font-size: var(--t-md);
    text-decoration: none;
    transition: transform .2s;
    display: inline-block;
}
.co-epd-view-link:hover { transform: translateX(3px); }
.co-epd-num {
    font-family: var(--f-mono, 'IBM Plex Mono', monospace);
    font-size: var(--t-sm);
    color: var(--co-muted, #888078);
}
.co-epd-code {
    font-family: var(--f-mono, 'IBM Plex Mono', monospace);
    font-size: var(--t-sm);
    color: var(--co-muted, #888078);
}
.co-epd-name {
    font-size: var(--t-md);
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: .5rem;
    min-width: 0;
    overflow: hidden;
}
.co-epd-thumb {
    display: block;
    width: 32px;
    height: 45px;
    object-fit: cover;
    border-radius: 2px;
    flex-shrink: 0;
    box-shadow: 0 1px 3px rgba(0,0,0,.08);
}
.co-epd-gwp {
    font-family: var(--f-mono, 'IBM Plex Mono', monospace);
    font-size: var(--t-md);
    text-align: right;
    white-space: nowrap;
}
.co-epd-gwp small {
    font-size: var(--t-sm);
    color: var(--co-muted, #888078);
    display: block;
}
.co-epd-pdf {
    text-align: right;
}
.co-epd-pdf-link {
    font-family: var(--f-mono, 'IBM Plex Mono', monospace);
    font-size: var(--t-sm);
    color: var(--co-rust, #B5541C);
    text-decoration: none;
    letter-spacing: .04em;
    white-space: nowrap;
}
.co-epd-pdf-link:hover { text-decoration: underline; }
.co-epd-valid {
    font-family: var(--f-mono, 'IBM Plex Mono', monospace);
    font-size: var(--t-sm);
    color: var(--co-muted, #888078);
    white-space: nowrap;
}
.co-sector-count-unit {
    font-family: var(--f-mono, 'IBM Plex Mono', monospace);
    font-size: .75rem;
    font-weight: 400;
    color: rgba(255,255,255,.45);
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-left: .4rem;
    vertical-align: middle;
}

/* ── Sustainability ── */
.co-sustain-section {
    padding: 3rem 0;
    border-top: 1px solid var(--co-rule, #E0DCD5);
}
.co-sustain-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1.25rem;
    font-weight: 300;
    line-height: 1.1;
    letter-spacing: normal;
    text-transform: none;
    color: rgb(15, 26, 19);
    margin: 0 0 1rem;
}
.co-sustain-text {
    font-size: var(--t-md);
    line-height: 1.75;
    max-width: 720px;
    color: var(--co-ink, #111);
    margin: 0;
}

/* ── Cert strip ── */
.co-cert-strip {
    background: var(--co-rust, #B5541C);
    padding: 1rem 0;
}
.co-cert-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    flex-wrap: wrap;
}
.co-cert-back {
    font-family: var(--f-mono, 'IBM Plex Mono', monospace);
    font-size: var(--t-sm);
    color: rgba(255,255,255,.72);
    text-decoration: none;
    letter-spacing: .05em;
    white-space: nowrap;
    transition: color .15s;
}
.co-cert-back:hover { color: #fff; }
.co-cert-line {
    font-family: var(--f-mono, 'IBM Plex Mono', monospace);
    font-size: var(--t-sm);
    color: rgba(255,255,255,.88);
    letter-spacing: .04em;
    margin: 0;
    line-height: 1.5;
}

/* ── Badge section ── */
.co-badge-section {
    padding: 4rem 0;
    background: #1a1a1a;
}
.co-badge-inner {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 3.5rem;
    align-items: center;
}
.co-badge-img {
    display: block;
    width: 200px;
    height: auto;
    filter: brightness(0) invert(1);
    opacity: .9;
}
.co-badge-title {
    font-family: var(--f-display, 'Cormorant Garamond', serif);
    font-size: 1.5rem;
    font-weight: 600;
    color: #fff;
    margin: 0 0 .5rem;
    line-height: 1.2;
}
.co-badge-desc {
    font-size: .9rem;
    color: rgba(255,255,255,.55);
    margin: 0 0 1.75rem;
    max-width: 460px;
    line-height: 1.65;
}
.co-badge-actions {
    display: flex;
    gap: .875rem;
    flex-wrap: wrap;
}
.co-badge-actions .btn-dark {
    background: var(--co-rust, #B5541C);
    color: #fff;
    border-color: var(--co-rust, #B5541C);
}
.co-badge-actions .btn-dark:hover {
    background: var(--co-stamp, #8B4010);
    border-color: var(--co-stamp, #8B4010);
}
.co-badge-actions .btn-outline {
    border: 1px solid rgba(255,255,255,.25);
    color: rgba(255,255,255,.75);
    background: transparent;
}
.co-badge-actions .btn-outline:hover {
    border-color: rgba(255,255,255,.6);
    color: #fff;
}
@media (max-width: 640px) {
    .co-badge-inner { grid-template-columns: 1fr; gap: 2rem; }
    .co-badge-img { width: 160px; }
}

/* ── Responsive ── */
@media (max-width: 768px) {
    .co-epd-row {
        grid-template-columns: 2rem 1fr auto 1.5rem;
    }
    .co-epd-row--head span:nth-child(2),
    .co-epd-row--head span:nth-child(4),
    .co-epd-row--data .co-epd-code,
    .co-epd-row--data .co-epd-valid { display: none; }
    .co-epd-gwp small { display: none; }
    .co-meta-strip { flex-wrap: wrap; }
    .co-meta-item { min-width: 40%; }
}
@media (max-width: 480px) {
    .co-name { font-size: clamp(2rem, 12vw, 3rem); }
    .co-epd-row { grid-template-columns: 1.5rem 1fr auto 1.5rem; }
}

/* ═══ EPD LIST PAGE — THE HONEST LIST ═══════════════════════════════════ */

.erl-page {
    background: var(--co-bg, #FAFAF8);
    color: var(--co-ink, #111);
    font-family: var(--f-plex, 'IBM Plex Sans', sans-serif);
    min-height: 100vh;
}
.erl-wrap {
    max-width: 1200px;
    margin-inline: auto;
    padding-inline: clamp(1.25rem, 5vw, 3rem);
}

/* Header */
.erl-header {
    padding-top: calc(var(--header-h, 64px) + 1.5rem);
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--co-rule, #E0DCD5);
    background: linear-gradient(175deg, rgba(45,80,50,.06) 0%, transparent 60%);
}
.erl-kicker {
    font-family: var(--f-mono, 'IBM Plex Mono', monospace);
    font-size: var(--t-sm);
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--co-rust, #B5541C);
    margin: 0 0 .75rem;
}
.erl-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(3rem, 10vw, 4.5rem);
    font-weight: 300;
    line-height: 1.1;
    letter-spacing: -.025em;
    margin: 0 0 1rem;
    color: rgb(15, 26, 19);
}
.erl-subtitle {
    font-size: var(--t-md);
    color: var(--co-muted, #888078);
    margin: 0 0 2rem;
    max-width: 600px;
    line-height: 1.6;
}

/* Filters */
.erl-filters {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}
.erl-filter {
    font-family: var(--f-mono, 'IBM Plex Mono', monospace);
    font-size: var(--t-sm);
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: .375rem .875rem;
    border: 1px solid var(--co-rule, #E0DCD5);
    background: transparent;
    color: var(--co-muted, #888078);
    cursor: pointer;
    border-radius: 2px;
    transition: all .15s;
}
.erl-filter:hover,
.erl-filter--active {
    border-color: var(--forest, #2D5032);
    color: var(--forest, #2D5032);
    background: rgba(45,80,50,.08);
}
.erl-filter__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--forest, #2D5032);
    color: #fff;
    font-family: var(--f-mono, 'IBM Plex Mono', monospace);
    font-size: 0.625rem;
    line-height: 1;
    min-width: 1.25rem;
    height: 1.25rem;
    border-radius: 2px;
    padding: 0 .25rem;
    margin-left: .375rem;
    vertical-align: middle;
}

/* Search input */
.erl-search-wrap {
    margin-bottom: .75rem;
}
.erl-search {
    width: 100%;
    max-width: 400px;
    font-family: var(--f-plex, 'IBM Plex Sans', sans-serif);
    font-size: var(--t-sm);
    padding: .625rem 1rem;
    border: 1px solid var(--co-rule, #E0DCD5);
    border-radius: 3px;
    background: #fff;
    color: var(--co-ink, #111);
    outline: none;
    transition: border-color .15s;
}
.erl-search:focus {
    border-color: var(--forest, #2D5032);
}
.erl-search::placeholder {
    color: var(--co-muted, #888078);
}

/* Section wrapper */
.erl-section { padding: 0 0 3rem; }

/* Toolbar */
.erl-toolbar {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: 1.5rem;
}

/* Card Grid */
.erl-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
    margin-top: 2rem;
}
.erl-grid[data-view="list"] {
    grid-template-columns: 1fr;
}
@media (max-width: 1024px) {
    .erl-grid { grid-template-columns: 1fr; }
}

/* Card */
.erl-card {
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    display: flex;
    flex-direction: row;
    box-shadow: 0 2px 8px rgba(0,0,0,.07);
    transition: box-shadow .15s ease;
}
.erl-card:hover {
    box-shadow: 0 6px 20px rgba(0,0,0,.12);
}
/* Filter visibility — override display:flex when JS sets hidden attribute */
.erl-card[hidden] { display: none !important; }

/* Cover */
.erl-card__cover-link {
    display: block;
    text-decoration: none;
    flex: 0 0 160px;
    background: #f5f2ed;
}
.erl-card__cover {
    background: #f5f2ed;
    overflow: hidden;
    height: 100%;
}
.erl-card__cover img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
    padding: 10px;
}
.erl-card__placeholder {
    width: 100%;
    aspect-ratio: 210 / 297;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: .75rem;
    background: var(--co-panel, #F0EDE8);
    border-bottom: 2px solid var(--co-rust, #B5541C);
    padding: 1rem;
}
.erl-card__ph-num {
    font-family: var(--f-mono, 'IBM Plex Mono', monospace);
    font-size: var(--t-lg);
    color: var(--co-rust, #B5541C);
    line-height: 1;
    opacity: .5;
}
.erl-card__ph-sector {
    font-size: var(--t-sm);
    color: var(--co-muted, #888078);
    text-transform: uppercase;
    letter-spacing: .08em;
}

/* Card body */
.erl-card__body {
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: .5rem;
    flex: 1;
    min-width: 0;
    overflow: hidden;
}
.erl-card__title {
    font-family: var(--f-display, 'Cormorant Garamond', serif);
    font-size: var(--t-lg);
    font-weight: 600;
    margin: 0;
    line-height: 1.3;
    overflow-wrap: break-word;
    word-break: break-word;
}
.erl-card__title a {
    color: inherit;
    text-decoration: none;
}
.erl-card__title a:hover { color: var(--co-rust, #B5541C); }

.erl-card__num {
    font-family: var(--f-mono, 'IBM Plex Mono', monospace);
    font-size: 0.6875rem;
    color: var(--co-muted, #888078);
    margin: -.125rem 0 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    opacity: .65;
}

.erl-card__producer {
    font-size: var(--t-sm);
    color: var(--co-muted, #888078);
    text-decoration: none;
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.erl-card__producer::before {
    content: "by ";
    opacity: .6;
}
.erl-card__producer[href]:hover {
    color: var(--co-rust, #B5541C);
    text-decoration: underline;
}

.erl-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: .375rem;
    font-size: var(--t-sm);
}
.erl-card__sector {
    background: rgba(45,80,50,.1);
    color: var(--forest, #2D5032);
    padding: .125rem .5rem;
    border-radius: 2px;
}
.erl-card__valid { color: var(--co-muted, #888078); }

.erl-card__details {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .25rem .75rem;
    margin-top: .75rem;
    padding: .625rem 0;
    border-top: 1px solid var(--co-rule, #E0DCD5);
}
.erl-card__detail {
    display: flex;
    flex-direction: column;
}
.erl-card__detail dt {
    font-family: var(--f-body, 'IBM Plex Sans', sans-serif);
    font-size: .65rem;
    font-weight: 500;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--co-muted, #888078);
    margin-bottom: .1rem;
}
.erl-card__detail dd {
    font-family: var(--f-body, 'IBM Plex Sans', sans-serif);
    font-size: .8rem;
    font-weight: 500;
    color: var(--co-ink, #111);
    margin: 0;
}

.erl-card__actions {
    display: flex;
    gap: .5rem;
    margin-top: auto;
    padding-top: .75rem;
}
.erl-card__btn {
    display: inline-block;
    padding: .375rem .875rem;
    border-radius: 3px;
    font-size: var(--t-sm);
    font-weight: 500;
    text-decoration: none;
    transition: background .12s ease;
}
.erl-card__btn--view {
    background: var(--forest, #2D5032);
    color: #fff;
}
.erl-card__btn--view:hover { background: #1e3822; }
.erl-card__btn--pdf {
    background: transparent;
    color: var(--co-rust, #B5541C);
    border: 1px solid var(--co-rust, #B5541C);
}
.erl-card__btn--pdf:hover { background: rgba(181,84,28,.08); }

/* View toggle */
.erl-view-toggle {
    display: flex;
    gap: .25rem;
    margin-left: auto;
}
.erl-view-btn {
    background: transparent;
    border: 1px solid rgba(0,0,0,.15);
    border-radius: 3px;
    padding: .375rem .5rem;
    cursor: pointer;
    color: var(--co-muted, #888078);
    display: flex;
    align-items: center;
}
.erl-view-btn--active,
.erl-view-btn:hover {
    background: var(--co-rust, #B5541C);
    color: #fff;
    border-color: var(--co-rust, #B5541C);
}

/* Empty state */
.erl-empty {
    padding: 3rem 0;
    color: var(--co-muted, #888078);
    font-size: var(--t-md);
    text-align: center;
}

/* EPD Register responsive */
@media (max-width: 600px) {
    .erl-header { padding-top: calc(var(--header-h, 64px) + 1rem); padding-bottom: 1rem; }
    .erl-title { font-size: clamp(2rem, 8vw, 3rem); }
    .erl-subtitle { font-size: .875rem; }
    .erl-toolbar { gap: .5rem; }
    .erl-filters { gap: .35rem; }
    .erl-filter { padding: .25rem .625rem; font-size: .7rem; }
    .erl-filter__count { min-width: 1rem; height: 1rem; font-size: .55rem; }
    .erl-view-toggle { display: none; }
    /* Card layout — stack vertically */
    .erl-card { flex-direction: column; }
    .erl-card__cover-link { flex: 0 0 auto; }
    .erl-card__cover { height: auto; aspect-ratio: 16 / 9; }
    .erl-card__cover img { object-fit: cover; }
    .erl-card__placeholder { aspect-ratio: 16 / 9; }
    .erl-card__body { padding: 1rem; }
    .erl-card__title { font-size: 1.25rem; }
    .erl-card__details { gap: .2rem .5rem; }
    .erl-card__num { font-size: .6rem; }
    .erl-card__meta { gap: .25rem; }
    .erl-card__sector { font-size: .7rem; padding: .1rem .375rem; }
    .erl-card__actions { flex-wrap: wrap; }
}

/* ── COMPANY SPOTLIGHT ───────────────────────────────────────── */

.co-spotlight { padding: 3rem 0; border-bottom: 1px solid rgba(0,0,0,.07); }
.co-spotlight-inner {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2.5rem;
}
@media (min-width: 768px) {
    .co-spotlight-inner { grid-template-columns: 1fr 1fr; align-items: center; }
}
.co-spotlight-image img {
    width: 100%;
    aspect-ratio: 4/3;
    object-fit: cover;
    border-radius: 4px;
}
.co-spotlight-label {
    font-size: .75rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--co-rust, #B5541C);
    margin-bottom: .75rem;
    font-weight: 600;
}
.co-spotlight-para {
    font-size: 1rem;
    line-height: 1.75;
    color: var(--charcoal, #1a1a1a);
    margin-bottom: 1rem;
}
.co-spotlight-para:last-child { margin-bottom: 0; }

/* Quote */
.co-quote-section { padding: 3rem 0; background: var(--forest, #1B4332); }
.co-quote { margin: 0; }
.co-quote-text {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(1.2rem, 2.5vw, 1.75rem);
    font-style: italic;
    color: #fff;
    line-height: 1.5;
    margin: 0 0 1rem;
}
.co-quote-footer {
    font-size: .875rem;
    color: rgba(255,255,255,.65);
    font-style: normal;
}

/* GWP bars */
.co-gwp-section { padding: 3rem 0; border-bottom: 1px solid rgba(0,0,0,.07); }
.co-gwp-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1.25rem;
    font-weight: 300;
    line-height: 1.1;
    margin-bottom: 1.5rem;
    color: rgb(15, 26, 19);
    letter-spacing: .02em;
}
.co-gwp-bars { display: flex; flex-direction: column; gap: .75rem; }
.co-gwp-row {
    display: grid;
    grid-template-columns: 200px 1fr 140px;
    align-items: center;
    gap: 1rem;
}
@media (max-width: 640px) {
    .co-gwp-row { grid-template-columns: 1fr; }
}
.co-gwp-label { font-size: .875rem; color: #555; }
.co-gwp-bar-wrap {
    background: rgba(0,0,0,.06);
    border-radius: 2px;
    height: 8px;
}
.co-gwp-bar {
    height: 8px;
    background: var(--co-rust, #B5541C);
    border-radius: 2px;
    min-width: 4px;
    transition: width .4s ease;
}
.co-gwp-val { font-size: .875rem; font-weight: 600; color: var(--charcoal, #1a1a1a); }
.co-gwp-val small { font-weight: 400; color: #777; font-size: .75rem; }
.co-gwp-note { font-size: .75rem; color: #999; margin-top: 1.25rem; }

/* Badge */
.co-badge-section {
    padding: 3rem 0;
    background: var(--bg, #FAFAF8);
    border-top: 1px solid rgba(0,0,0,.07);
}
.co-badge-inner {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 2.5rem;
    align-items: center;
}
@media (max-width: 640px) {
    .co-badge-inner { grid-template-columns: 1fr; }
}
.co-badge-img { display: block; }
.co-badge-title {
    font-size: 1.1rem;
    font-weight: 700;
    margin-bottom: .5rem;
    color: var(--charcoal, #1a1a1a);
}
.co-badge-desc {
    font-size: .9rem;
    color: #666;
    margin-bottom: 1.25rem;
    max-width: 480px;
    line-height: 1.6;
}
.co-badge-actions { display: flex; gap: 1rem; flex-wrap: wrap; }


/* === Website Screenshot Browser Frame (v1.3.0) === */
.co-spotlight-image--screenshot{border-radius:8px;overflow:hidden;box-shadow:0 8px 32px rgba(0,0,0,.14);border:1px solid #d8d8d8;}
.co-spotlight-image--screenshot img{aspect-ratio:16/10;border-radius:0;display:block;}
.co-browser-bar{display:flex;align-items:center;gap:6px;padding:8px 12px;background:#eaeaea;border-bottom:1px solid #d0d0d0;}
.co-browser-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
.co-browser-url{font-size:.7rem;color:#666;font-family:var(--f-mono,monospace);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-left:4px;}

/* ── v1.4.0 Sector Identity Card ─────────────────────────────── */

/* Header left column */
.co-header-left {
    display: flex;
    flex-direction: column;
}

/* About block */
.co-about        { margin-top: 1.75rem; }
.co-about-label  {
    font-family: var(--f-mono, 'IBM Plex Mono', monospace);
    font-size: var(--t-sm, .75rem);
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--co-muted, #888078);
    margin: 0 0 .75rem;
}
.co-about-para {
    font-size: 1rem;
    line-height: 1.75;
    color: var(--co-ink, #111);
    margin: 0 0 .875rem;
    max-width: 560px;
}
.co-about-para:last-child { margin-bottom: 0; }

/* Sector card */
.co-sector-card {
    background: #111;
    border-radius: 12px;
    padding: 2rem;
    color: #fff;
    display: flex;
    flex-direction: column;
    gap: 1.125rem;
    position: sticky;
    top: 5rem;
}
.co-sector-icon {
    width: 48px;
    height: 48px;
    color: var(--co-rust, #B5541C);
    flex-shrink: 0;
}
.co-sector-name {
    font-family: var(--f-display, 'Cormorant Garamond', serif);
    font-size: 1.625rem;
    font-style: italic;
    font-weight: 400;
    line-height: 1.15;
    color: #fff;
    margin: 0;
}
.co-sector-hr {
    border: none;
    border-top: 1px solid rgba(255,255,255,.1);
    margin: 0;
}
.co-sector-count {
    font-family: var(--f-mono, 'IBM Plex Mono', monospace);
    font-size: 3rem;
    font-weight: 400;
    line-height: 1;
    color: #fff;
    margin: 0;
}
.co-sector-count-lbl {
    font-family: var(--f-mono, 'IBM Plex Mono', monospace);
    font-size: .7rem;
    color: rgba(255,255,255,.4);
    text-transform: uppercase;
    letter-spacing: .1em;
    margin-top: .25rem;
}
.co-sector-since {
    font-family: var(--f-mono, 'IBM Plex Mono', monospace);
    font-size: .8rem;
    color: rgba(255,255,255,.5);
}
.co-sector-cert {
    font-family: var(--f-mono, 'IBM Plex Mono', monospace);
    font-size: .73rem;
    color: var(--co-rust, #B5541C);
    letter-spacing: .04em;
    line-height: 1.5;
}

/* ── v1.4.1 Dark Header + Identity Polish ── */

/* Dark premium header */
.co-header {
    background: #0e0e0c;
    border-bottom-color: rgba(255,255,255,0.08);
}

/* Stack logo above name */
.co-identity {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.875rem;
}

/* Logo height */
.co-logo img, .co-logo-img {
    max-height: 56px;
    width: auto;
    display: block;
}

/* Company name white on dark */
.co-name { color: #fff; }

/* Breadcrumb on dark */
.co-breadcrumb { color: rgba(255,255,255,0.38); }
.co-breadcrumb a { color: var(--co-rust,#B5541C); }

/* Website link on dark */
.co-web-link { color: rgba(255,255,255,0.55); }
.co-web-link:hover { color: #fff; opacity: 1; }

/* About text on dark */
.co-about-label { color: rgba(255,255,255,0.3) !important; }
.co-about-para  { color: rgba(255,255,255,0.72) !important; }

/* Meta strip on dark */
.co-meta-val   { color: #fff; }
.co-meta-label { color: rgba(255,255,255,0.38) !important; }
.co-meta-item  { border-right-color: rgba(255,255,255,0.1); }

/* Sector card — lighter shade, subtle border */
.co-sector-card {
    background: #1d1d1b;
    border: 1px solid rgba(255,255,255,0.09);
}


/* ── v1.4.2 Subtle header (revert dark) ── */
.co-header {
    background: linear-gradient(to bottom, #EDE8DF 0%, var(--co-bg,#FAFAF8) 100%);
    border-bottom-color: var(--co-rule, #E0DCD5);
}
.co-name           { color: var(--co-ink,#111); }
.co-breadcrumb     { color: var(--co-muted,#888078); }
.co-breadcrumb a   { color: var(--co-rust,#B5541C); }
.co-web-link       { color: var(--co-rust,#B5541C); }
.co-web-link:hover { opacity:.7; color:var(--co-rust,#B5541C); }
.co-about-label    { color: var(--co-muted,#888078) !important; }
.co-about-para     { color: var(--co-ink,#111) !important; }
.co-meta-val       { color: var(--co-ink,#111); }
.co-meta-label     { color: var(--co-muted,#888078) !important; }
.co-meta-item      { border-right-color: var(--co-rule,#E0DCD5); }
.co-sector-card    { background: #111; border: none; }

/* Company name as small mono label when logo is present */
.co-name--sub {
    font-size: .725rem;
    font-family: var(--f-mono,'IBM Plex Mono',monospace);
    font-weight: 400;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--co-muted,#888078);
    line-height: 1;
    margin-top: -.25rem;
}


/* ── v1.4.3 Forest Green Header ── */
.co-header {
    background: var(--forest, #1B4332);
    border-bottom-color: rgba(255,255,255,0.08);
}
.co-name           { color: #fff; }
.co-breadcrumb     { color: rgba(255,255,255,0.45); }
.co-breadcrumb a   { color: var(--co-rust,#B5541C); }
.co-web-link       { color: rgba(255,255,255,0.6); }
.co-web-link:hover { color: #fff; opacity: 1; }
.co-about-label    { color: rgba(255,255,255,0.35) !important; }
.co-about-para     { color: rgba(255,255,255,0.78) !important; }
.co-meta-val       { color: #fff; }
.co-meta-label     { color: rgba(255,255,255,0.4) !important; }
.co-meta-item      { border-right-color: rgba(255,255,255,0.12); }

/* Sector card: ink-dark to contrast with forest header */
.co-sector-card {
    background: var(--ink, #0F1A13);
    border: 1px solid rgba(255,255,255,0.08);
}

/* Name-as-label on green bg */
.co-name--sub { color: rgba(255,255,255,0.45); }


/* ── v1.4.4 Header texture: dot grid + radial glow ── */
.co-header {
    background-color: var(--forest, #1B4332);
    background-image:
        radial-gradient(ellipse at 28% 45%, rgba(255,255,255,0.07) 0%, transparent 55%),
        radial-gradient(circle, rgba(255,255,255,0.055) 1px, transparent 1px);
    background-size: 100% 100%, 22px 22px;
    border-bottom-color: rgba(255,255,255,0.08);
}


/* ── v1.4.5 Botanical outlines in header ── */
/* Clean header — remove dot grid */
.co-header {
    background-color: var(--forest, #1B4332);
    background-image: radial-gradient(ellipse at 30% 50%, rgba(255,255,255,0.05) 0%, transparent 55%);
    background-size: 100% 100%;
    position: relative;
    overflow: hidden;
}

/* Large leaf — top right */
.co-header::before {
    content: '';
    position: absolute;
    top: -60px;
    right: -90px;
    width: 460px;
    height: 660px;
    background: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjYwIDQyMCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIwLjY1IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEzMCAxMCBDMTc1IDQ1IDIxNSA5NSAyMjIgMTU4IEMyMzAgMjI1IDIwNCAzMDUgMTMwIDQxMCBDNTYgMzA1IDMwIDIyNSAzOCAxNTggQzQ1IDk1IDg1IDQ1IDEzMCAxMFoiLz48bGluZSB4MT0iMTMwIiB5MT0iNDEwIiB4Mj0iMTMwIiB5Mj0iMTAiLz48cGF0aCBkPSJNMTMwIDc1ICBROTAgNjcgIDU4IDc0Ii8+PHBhdGggZD0iTTEzMCAxMDggUTgyIDEwMCA0OCAxMDkiLz48cGF0aCBkPSJNMTMwIDE0MyBRNzUgMTM2IDQwIDE0NyIvPjxwYXRoIGQ9Ik0xMzAgMTc4IFE3OCAxNzIgNDMgMTg0Ii8+PHBhdGggZD0iTTEzMCAyMTMgUTgyIDIwOCA1MCAyMjEiLz48cGF0aCBkPSJNMTMwIDI0OCBRODggMjQ0IDYwIDI1NSIvPjxwYXRoIGQ9Ik0xMzAgMjgzIFE5NSAyODAgNzQgMjg4Ii8+PHBhdGggZD0iTTEzMCAzMTUgUTEwMyAzMTMgODggMzE5Ii8+PHBhdGggZD0iTTEzMCA3NSAgUTE3MCA2NyAgMjAyIDc0Ii8+PHBhdGggZD0iTTEzMCAxMDggUTE3OCAxMDAgMjEyIDEwOSIvPjxwYXRoIGQ9Ik0xMzAgMTQzIFExODUgMTM2IDIyMCAxNDciLz48cGF0aCBkPSJNMTMwIDE3OCBRMTgyIDE3MiAyMTcgMTg0Ii8+PHBhdGggZD0iTTEzMCAyMTMgUTE3OCAyMDggMjEwIDIyMSIvPjxwYXRoIGQ9Ik0xMzAgMjQ4IFExNzIgMjQ0IDIwMCAyNTUiLz48cGF0aCBkPSJNMTMwIDI4MyBRMTY1IDI4MCAxODYgMjg4Ii8+PHBhdGggZD0iTTEzMCAzMTUgUTE1NyAzMTMgMTcyIDMxOSIvPjwvc3ZnPg==") center / contain no-repeat;
    opacity: 0.06;
    pointer-events: none;
    z-index: 0;
}

/* Smaller leaf — bottom left */
.co-header::after {
    content: '';
    position: absolute;
    bottom: -40px;
    left: -50px;
    width: 240px;
    height: 340px;
    background: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTgwIDI5MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIwLjU1IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkwIDggQzEyMCAzMCAxNDggNjUgMTUzIDEwOCBDMTU5IDE1NSAxNDEgMjEwIDkwIDI4MiBDMzkgMjEwIDIxIDE1NSAyNyAxMDggQzMyIDY1IDYwIDMwIDkwIDhaIi8+PGxpbmUgeDE9IjkwIiB5MT0iMjgyIiB4Mj0iOTAiIHkyPSI4Ii8+PHBhdGggZD0iTTkwIDU1ICBRNjMgNDkgIDQyIDUzIi8+PHBhdGggZD0iTTkwIDgwICBRNTcgNzQgIDMzIDc5Ii8+PHBhdGggZD0iTTkwIDEwNyBRNTIgMTAxIDI4IDEwNyIvPjxwYXRoIGQ9Ik05MCAxMzQgUTU1IDEyOSAzMiAxMzYiLz48cGF0aCBkPSJNOTAgMTYxIFE1OCAxNTcgMzggMTY0Ii8+PHBhdGggZD0iTTkwIDE4OCBRNjIgMTg1IDQ2IDE5MSIvPjxwYXRoIGQ9Ik05MCA1NSAgUTExNyA0OSAgMTM4IDUzIi8+PHBhdGggZD0iTTkwIDgwICBRMTIzIDc0ICAxNDcgNzkiLz48cGF0aCBkPSJNOTAgMTA3IFExMjggMTAxIDE1MiAxMDciLz48cGF0aCBkPSJNOTAgMTM0IFExMjUgMTI5IDE0OCAxMzYiLz48cGF0aCBkPSJNOTAgMTYxIFExMjIgMTU3IDE0MiAxNjQiLz48cGF0aCBkPSJNOTAgMTg4IFExMTggMTg1IDEzNCAxOTEiLz48L3N2Zz4=") center / contain no-repeat;
    opacity: 0.04;
    pointer-events: none;
    z-index: 0;
    transform: rotate(25deg);
}

/* Content above outlines */
.co-header .co-wrap {
    position: relative;
    z-index: 1;
}


/* ── v1.4.6 — Light elegant: white bg, gray leaf shapes ── */
.co-header {
  background-color: #FFFFFF;
  background-image: none;
  border-bottom: 1px solid rgba(0,0,0,0.07);
  position: relative;
  overflow: hidden;
}
.co-header::before {
  content: '';
  position: absolute;
  top: -80px; right: -120px;
  width: 500px; height: 720px;
  background: url("data:image/svg+xml;base64,undefined") center / contain no-repeat;
  opacity: 0.13;
  pointer-events: none;
  z-index: 0;
}
.co-header::after {
  content: '';
  position: absolute;
  bottom: -60px; left: -70px;
  width: 280px; height: 400px;
  background: url("data:image/svg+xml;base64,undefined") center / contain no-repeat;
  opacity: 0.08;
  pointer-events: none;
  z-index: 0;
  transform: rotate(20deg);
}
.co-header .co-wrap { position: relative; z-index: 1; }
/* Revert text colors to dark */
.co-name            { color: var(--co-ink, #111); }
.co-name--sub       { color: var(--co-muted, #888078); }
.co-breadcrumb      { color: var(--co-muted, #888078); }
.co-breadcrumb a    { color: var(--co-rust, #B5541C); }
.co-web-link        { color: var(--co-rust, #B5541C); }
.co-about-label     { color: var(--co-muted, #888078) !important; }
.co-about-para      { color: var(--co-ink, #111) !important; }
.co-meta-val        { color: var(--co-ink, #111); }
.co-meta-label      { color: var(--co-muted, #888078) !important; }
.co-meta-item       { border-right-color: rgba(0,0,0,0.1); }


/* ── v1.4.7 — fix: correct base64 leaf SVGs on white bg ── */
.co-header::before {
  background: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjYwIDQyMCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjM0QzNTIwIiBzdHJva2Utd2lkdGg9IjAuNyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xMzAgMTAgQzE3NSA0NSAyMTUgOTUgMjIyIDE1OCBDMjMwIDIyNSAyMDQgMzA1IDEzMCA0MTAgQzU2IDMwNSAzMCAyMjUgMzggMTU4IEM0NSA5NSA4NSA0NSAxMzAgMTBaIi8+PGxpbmUgeDE9IjEzMCIgeTE9IjQxMCIgeDI9IjEzMCIgeTI9IjEwIi8+PGxpbmUgeDE9IjEzMCIgeTE9Ijk1IiB4Mj0iODAiIHkyPSIxMzUiLz48bGluZSB4MT0iMTMwIiB5MT0iMTQwIiB4Mj0iNjUiIHkyPSIxNzUiLz48bGluZSB4MT0iMTMwIiB5MT0iMTg1IiB4Mj0iNTAiIHkyPSIyMTUiLz48bGluZSB4MT0iMTMwIiB5MT0iMjMwIiB4Mj0iNDgiIHkyPSIyNTUiLz48bGluZSB4MT0iMTMwIiB5MT0iMjc1IiB4Mj0iNTgiIHkyPSIyOTUiLz48bGluZSB4MT0iMTMwIiB5MT0iMzE1IiB4Mj0iNzUiIHkyPSIzMzAiLz48bGluZSB4MT0iMTMwIiB5MT0iMzUwIiB4Mj0iOTUiIHkyPSIzNjIiLz48bGluZSB4MT0iMTMwIiB5MT0iOTUiIHgyPSIxODAiIHkyPSIxMzUiLz48bGluZSB4MT0iMTMwIiB5MT0iMTQwIiB4Mj0iMTk1IiB5Mj0iMTc1Ii8+PGxpbmUgeDE9IjEzMCIgeTE9IjE4NSIgeDI9IjIxMCIgeTI9IjIxNSIvPjxsaW5lIHgxPSIxMzAiIHkxPSIyMzAiIHgyPSIyMTIiIHkyPSIyNTUiLz48bGluZSB4MT0iMTMwIiB5MT0iMjc1IiB4Mj0iMjAyIiB5Mj0iMjk1Ii8+PGxpbmUgeDE9IjEzMCIgeTE9IjMxNSIgeDI9IjE4NSIgeTI9IjMzMCIvPjxsaW5lIHgxPSIxMzAiIHkxPSIzNTAiIHgyPSIxNjUiIHkyPSIzNjIiLz48L3N2Zz4=") center / contain no-repeat;
  opacity: 0.15;
}
.co-header::after {
  background: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTYwIDI2MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjM0QzNTIwIiBzdHJva2Utd2lkdGg9IjAuNyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik04MCA4IEMxMDggMjggMTMyIDYyIDEzNiA5OCBDMTQxIDEzOCAxMjUgMTg4IDgwIDI1MiBDMzUgMTg4IDE5IDEzOCAyNCA5OCBDMjggNjIgNTIgMjggODAgOFoiLz48bGluZSB4MT0iODAiIHkxPSIyNTIiIHgyPSI4MCIgeTI9IjgiLz48bGluZSB4MT0iODAiIHkxPSI2MCIgeDI9IjUwIiB5Mj0iODIiLz48bGluZSB4MT0iODAiIHkxPSI5NSIgeDI9IjQwIiB5Mj0iMTEyIi8+PGxpbmUgeDE9IjgwIiB5MT0iMTMwIiB4Mj0iMzIiIHkyPSIxNDUiLz48bGluZSB4MT0iODAiIHkxPSIxNjUiIHgyPSIzNCIgeTI9IjE3OCIvPjxsaW5lIHgxPSI4MCIgeTE9IjIwMCIgeDI9IjQ0IiB5Mj0iMjEwIi8+PGxpbmUgeDE9IjgwIiB5MT0iNjAiIHgyPSIxMTAiIHkyPSI4MiIvPjxsaW5lIHgxPSI4MCIgeTE9Ijk1IiB4Mj0iMTIwIiB5Mj0iMTEyIi8+PGxpbmUgeDE9IjgwIiB5MT0iMTMwIiB4Mj0iMTI4IiB5Mj0iMTQ1Ii8+PGxpbmUgeDE9IjgwIiB5MT0iMTY1IiB4Mj0iMTI2IiB5Mj0iMTc4Ii8+PGxpbmUgeDE9IjgwIiB5MT0iMjAwIiB4Mj0iMTE2IiB5Mj0iMjEwIi8+PC9zdmc+") center / contain no-repeat;
  opacity: 0.09;
}


/* ── v1.4.8 — cleanup: fix all visible bugs ── */
/* 1. Remove orange left bar on identity block */
.co-identity { border-left: none !important; padding-left: 0 !important; }

/* 2. Badge SVG is white — give it dark background */
.co-badge-img { 
  background: var(--ink, #0F1A13); 
  border-radius: 8px; 
  padding: 14px 18px;
  display: block;
}

/* 3. Hide redundant VIACON sub-label — logo already shows the name */
.co-name--sub { display: none !important; }

/* 4. Bottom-left leaf — push higher so it stays inside header */
.co-header::after { bottom: -20px; left: -50px; }

/* ── v1.4.9 — refine: quote inline, strip removed ── */

/* Quote: remove dark full-width block, use elegant left-border style */
.co-quote-section {
  padding: 2.5rem 0;
  background: transparent;
}
.co-quote {
  border-left: 3px solid var(--co-rust, #B5541C);
  padding-left: 1.75rem;
  margin: 0;
  max-width: 740px;
}
.co-quote-text {
  font-family: var(--f-display, 'Cormorant Garamond', Georgia, serif);
  font-size: clamp(1.05rem, 2vw, 1.375rem);
  font-style: italic;
  font-weight: 400;
  color: var(--co-ink, #1A1A18);
  line-height: 1.6;
  margin: 0 0 .875rem;
}
.co-quote-footer {
  font-family: var(--f-mono, 'IBM Plex Mono', monospace);
  font-size: .75rem;
  color: var(--co-muted, #6B6456);
  font-style: normal;
  letter-spacing: .04em;
}

/* ── v1.4.9 continued — hide GWP column when no data ── */
.co-epd-no-gwp .co-epd-row {
  grid-template-columns: 2.5rem 1fr 3fr 5.5rem auto 2rem;
}

/* ── v1.4.9 continued — cert nav inside badge section ── */
.co-cert-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 1.5rem;
  margin-bottom: 1.5rem;
  border-bottom: 1px solid var(--co-rule, #E0DCD5);
}
.co-cert-nav .co-cert-back {
  font-family: var(--f-mono, 'IBM Plex Mono', monospace);
  font-size: .8rem;
  color: var(--co-muted, #6B6456);
  text-decoration: none;
}
.co-cert-nav .co-cert-back:hover { color: var(--co-rust, #B5541C); }
.co-cert-nav .co-cert-line {
  font-family: var(--f-mono, 'IBM Plex Mono', monospace);
  font-size: .75rem;
  color: var(--co-muted, #6B6456);
  margin: 0;
}
/* Hide the old standalone cert strip if still rendered anywhere */
.co-cert-strip { display: none; }

/* ── v1.5.0 — sector card texture + quote spacing ── */

/* Sector card: deep forest green with leaf decoration */
.co-sector-card {
    background-color: #1B3A2A;
    background-image:
        radial-gradient(ellipse at 85% 8%, rgba(181,84,28,.18) 0%, transparent 50%),
        radial-gradient(ellipse at 15% 90%, rgba(255,255,255,.04) 0%, transparent 50%);
    background-size: 100% 100%;
    border: 1px solid rgba(181,84,28,.25);
    position: relative;
    overflow: hidden;
}

/* Botanical leaf decoration on sector card */
.co-sector-card::before {
    content: '';
    position: absolute;
    bottom: -20px;
    right: 5px;
    width: 220px;
    height: 260px;
    background: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzAwIDM0MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9InJnYmEoMjU1LDI1NSwyNTUsMC45KSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICA8ZyB0cmFuc2Zvcm09InJvdGF0ZSgxNSAxNTAgMTcwKSI+CiAgICA8IS0tIE1haW4gbGVhZiBvdXRsaW5lIC0tPgogICAgPHBhdGggZD0iTSAxNTAgMzAgQyA4MCA4MCA0MCAxNjAgNjAgMjUwIFEgODAgMzAwIDE1MCAzMjAgUSAyMjAgMzAwIDI0MCAyNTAgQyAyNjAgMTYwIDIyMCA4MCAxNTAgMzAgWiIKICAgICAgICAgIHN0cm9rZS13aWR0aD0iMi41IiBmaWxsPSJyZ2JhKDI1NSwyNTUsMjU1LDAuMDYpIiAvPgoKICAgIDwhLS0gQ2VudHJhbCB2ZWluIC0tPgogICAgPHBhdGggZD0iTSAxNTAgNTAgTCAxNTAgMzEwIiBzdHJva2Utd2lkdGg9IjIiIC8+CgogICAgPCEtLSBMZWZ0IHNpZGUgdmVpbnMgLS0+CiAgICA8cGF0aCBkPSJNIDE1MCA5MCBRIDEyMCAxMTAgODUgMTA1IiBzdHJva2Utd2lkdGg9IjEuMyIgLz4KICAgIDxwYXRoIGQ9Ik0gMTUwIDEzMCBRIDExMCAxNTUgNzAgMTU1IiBzdHJva2Utd2lkdGg9IjEuMyIgLz4KICAgIDxwYXRoIGQ9Ik0gMTUwIDE3MCBRIDEwNSAxOTUgNjUgMjAwIiBzdHJva2Utd2lkdGg9IjEuMyIgLz4KICAgIDxwYXRoIGQ9Ik0gMTUwIDIxMCBRIDExMCAyMzAgNzUgMjQwIiBzdHJva2Utd2lkdGg9IjEuMyIgLz4KICAgIDxwYXRoIGQ9Ik0gMTUwIDI1MCBRIDEyMCAyNjUgOTUgMjcyIiBzdHJva2Utd2lkdGg9IjEuMyIgLz4KCiAgICA8IS0tIFJpZ2h0IHNpZGUgdmVpbnMgLS0+CiAgICA8cGF0aCBkPSJNIDE1MCA5MCBRIDE4MCAxMTAgMjE1IDEwNSIgc3Ryb2tlLXdpZHRoPSIxLjMiIC8+CiAgICA8cGF0aCBkPSJNIDE1MCAxMzAgUSAxOTAgMTU1IDIzMCAxNTUiIHN0cm9rZS13aWR0aD0iMS4zIiAvPgogICAgPHBhdGggZD0iTSAxNTAgMTcwIFEgMTk1IDE5NSAyMzUgMjAwIiBzdHJva2Utd2lkdGg9IjEuMyIgLz4KICAgIDxwYXRoIGQ9Ik0gMTUwIDIxMCBRIDE5MCAyMzAgMjI1IDI0MCIgc3Ryb2tlLXdpZHRoPSIxLjMiIC8+CiAgICA8cGF0aCBkPSJNIDE1MCAyNTAgUSAxODAgMjY1IDIwNSAyNzIiIHN0cm9rZS13aWR0aD0iMS4zIiAvPgogIDwvZz4KPC9zdmc+Cg==") center / contain no-repeat;
    opacity: 0.18;
    pointer-events: none;
    z-index: 0;
}

/* Card content above factory sketch */
.co-sector-card > * {
    position: relative;
    z-index: 1;
}

/* Sector name: bigger, bolder */
.co-sector-name {
    font-size: 1.75rem !important;
    font-weight: 500 !important;
    color: #fff !important;
    text-shadow: 0 1px 4px rgba(0,0,0,.3);
}

/* EPD count: brighter */
.co-sector-count {
    color: #fff !important;
    text-shadow: 0 1px 3px rgba(0,0,0,.2);
}

/* Count label: higher contrast */
.co-sector-count-lbl {
    color: rgba(255,255,255,.65) !important;
}

/* Since: higher contrast */
.co-sector-since {
    color: rgba(255,255,255,.7) !important;
}

/* Cert text: brighter rust, one line */
.co-sector-cert {
    color: #D4793E !important;
    font-size: .8rem !important;
    white-space: nowrap;
}

/* HR inside card: brighter */
.co-sector-hr {
    border-top-color: rgba(255,255,255,.18) !important;
}

/* Download button on card */
.co-sector-download {
    display: inline-block;
    font-family: var(--f-mono, 'IBM Plex Mono', monospace);
    font-size: .75rem;
    letter-spacing: .06em;
    color: #fff;
    background: var(--co-rust, #B5541C);
    padding: .55rem 1.25rem;
    border-radius: 4px;
    text-decoration: none;
    text-align: center;
    transition: background .2s;
    margin-top: .25rem;
}
.co-sector-download:hover {
    background: #9A4516;
    color: #fff;
}

/* Header: gap below so green card doesn't touch next section */
/* card has top:80px offset — need 5rem (card offset) + 3rem (visible gap) = 8rem */
.co-header {
    padding-bottom: 8rem;
    margin-bottom: 2rem;
}

/* Hide sector icon — not readable at small size */
.co-sector-icon { display: none; }

/* Quote section: breathing room above */
.co-quote-section {
    padding-top: 5rem;
}

/* Cert nav: now below badge — top border instead of bottom */
.co-cert-nav {
    border-bottom: none;
    border-top: 1px solid var(--co-rule, #E0DCD5);
    padding-bottom: 0;
    padding-top: 1.5rem;
    margin-bottom: 0;
    margin-top: 1.5rem;
}

/* ── v1.5.1 — font cleanup + arrow fix + spacing ── */

/* 1. External link arrow: CSS instead of emoji */
.co-web-link--ext::after {
    content: '\2197';
    display: inline-block;
    margin-left: .3em;
    font-family: system-ui, sans-serif;
    font-size: .85em;
}

/* 2. Reduce monospace: use sans-serif where monospace was overused */
.co-sector-count-lbl {
    font-family: var(--f-body, 'IBM Plex Sans', sans-serif) !important;
    font-size: .72rem !important;
}
.co-sector-since {
    font-family: var(--f-body, 'IBM Plex Sans', sans-serif) !important;
    font-size: .82rem !important;
}
.co-sector-cert {
    font-family: var(--f-body, 'IBM Plex Sans', sans-serif) !important;
}
.co-sector-download {
    font-family: var(--f-body, 'IBM Plex Sans', sans-serif);
}
.co-web-link {
    font-family: var(--f-body, 'IBM Plex Sans', sans-serif);
    font-size: .9rem;
}
.co-breadcrumb {
    font-family: var(--f-body, 'IBM Plex Sans', sans-serif);
    font-size: .8rem;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.co-epd-row {
    font-family: var(--f-body, 'IBM Plex Sans', sans-serif) !important;
}
.co-cert-nav .co-cert-back,
.co-cert-nav .co-cert-line {
    font-family: var(--f-body, 'IBM Plex Sans', sans-serif);
}
.co-badge-title {
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    font-weight: 300 !important;
    font-size: 1.5rem !important;
    line-height: 1.1 !important;
    color: rgb(15, 26, 19) !important;
}
.co-badge-desc {
    font-family: var(--f-body, 'IBM Plex Sans', sans-serif) !important;
}

/* 3. Badge section: merge with EPD section above, keep proper bottom padding */
.co-badge-section {
    padding-top: 1.5rem;
    padding-bottom: 3rem;
    border-top: none;
}

/* 4. EPD section: tighter bottom to flow into badge */
.co-epd-section {
    padding-bottom: 1.5rem;
}

/* 5. Badge section: simple single-column layout, no badge image */
.co-badge-inner {
    display: block;
}
.co-badge-inner .co-badge-title {
    margin-bottom: .4rem;
}
.co-badge-inner .co-badge-desc {
    margin-bottom: 1.25rem;
    max-width: 540px;
}
.co-badge-actions {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    flex-wrap: wrap;
}
.co-badge-dl {
    font-family: var(--f-body, 'IBM Plex Sans', sans-serif);
    font-size: .85rem;
    padding: .55rem 1.5rem;
    white-space: nowrap;
}
.co-badge-share-link {
    font-family: var(--f-body, 'IBM Plex Sans', sans-serif);
    font-size: .8rem;
    color: var(--co-rust, #B5541C);
    text-decoration: none;
    letter-spacing: .02em;
}
.co-badge-share-link:hover {
    text-decoration: underline;
}


/* ═══════════════════════════════════════════════════════════════════════════════
   ACCESSIBILITY — Reduced Motion
   ═══════════════════════════════════════════════════════════════════════════════ */

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
    .reveal { opacity: 1 !important; transform: none !important; }
    .hero-scroll { animation: none; }
}


/* ═══════════════════════════════════════════════════════════════════════════════
   PRINT STYLES
   ═══════════════════════════════════════════════════════════════════════════════ */

@media print {
    body { background: #fff !important; color: #000 !important; }
    .site-header, .site-footer, .hero-scroll, .nav-toggle, .mobile-nav,
    .cta-strip, .filter-pills, .erl-view-toggle, .erl-search-wrap,
    .contact-form button, .erl-card__actions { display: none !important; }
    .about-hero, .contact-hero, .error-hero { background: #f5f5f0 !important; color: #000 !important; }
    .about-hero h1, .contact-hero h1, .error-hero h1 { color: #000 !important; }
    a { color: #000 !important; text-decoration: underline !important; }
    a[href]::after { content: " (" attr(href) ")" !important; font-size: .75em; }
    img { max-width: 100% !important; break-inside: avoid; }
    .erl-card { break-inside: avoid; page-break-inside: avoid; }
    .about-credentials { background: #333 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
