/*
Theme Name: FN BIOLABS
Theme URI: https://fnbiolabs.com/
Author: FN BIOLABS
Description: Mobile-first Gutenberg theme for the FN BIOLABS B2B website.
Version: 0.5.3
Requires at least: 6.5
Requires PHP: 8.1
Text Domain: fnbiolabs
*/

@font-face { font-family: Geist; src: url("assets/fonts/geist-latin.woff2") format("woff2"); font-style: normal; font-weight: 100 900; font-display: swap; }
@font-face { font-family: "Geist Mono"; src: url("assets/fonts/geist-mono-latin.woff2") format("woff2"); font-style: normal; font-weight: 100 900; font-display: swap; }

:root {
    --fn-bg: #f5f6f2;
    --fn-ink: #111714;
    --fn-surface: #fff;
    --fn-muted: #5f6863;
    --fn-border: #d8ddd7;
    --fn-green: #2b725c;
    --fn-mint: #d5ffef;
    --fn-lime: #e8ff47;
    --fn-dark: #111714;
    --fn-dark-soft: #18201c;
    --fn-container: 1220px;
    --fn-gutter: 20px;
    --fn-section: clamp(4.5rem, 11vw, 8.5rem);
    --fn-font-sans: Geist, "Helvetica Neue", Arial, sans-serif;
    --fn-font-mono: "Geist Mono", ui-monospace, SFMono-Regular, Consolas, monospace;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; background: var(--fn-bg); color: var(--fn-ink); font-family: var(--fn-font-sans); font-size: 1rem; line-height: 1.6; text-rendering: optimizeLegibility; }
img, video { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--fn-green); }
button, input, textarea, select { border-radius: 0; font: inherit; }
button, summary { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--fn-green); outline-offset: 3px; }
::selection { background: var(--fn-lime); color: var(--fn-ink); }
[hidden] { display: none !important; }

.screen-reader-text { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.screen-reader-text:focus { z-index: 100000; top: 8px; left: 8px; width: auto; height: auto; clip: auto; padding: 12px 16px; background: var(--fn-lime); color: var(--fn-ink); }
.fn-container { width: min(100% - (var(--fn-gutter) * 2), var(--fn-container)); margin-inline: auto; }
.fn-section { padding-block: var(--fn-section); }
.fn-kicker { margin: 0 0 1rem; color: var(--fn-green); font-family: var(--fn-font-mono); font-size: .72rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.fn-kicker--light { color: var(--fn-mint); }
.fn-heading { max-width: 990px; margin: 0; font-size: clamp(2.65rem, 11vw, 6.2rem); font-weight: 630; letter-spacing: -.06em; line-height: .95; }
.fn-lede { max-width: 720px; margin: 1.5rem 0 0; color: var(--fn-muted); font-size: clamp(1.05rem, 2vw, 1.28rem); }
.fn-button { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; gap: .7rem; border: 1px solid var(--fn-ink); padding: .8rem 1.15rem; background: var(--fn-ink); color: #fff; font-size: .8rem; font-weight: 760; }
.fn-button:hover { border-color: var(--fn-green); background: var(--fn-green); color: #fff; }
.fn-button--lime { border-color: var(--fn-lime); background: var(--fn-lime); color: var(--fn-ink); }
.fn-button--ghost { background: transparent; color: currentColor; }

/* Header */
.site-header { position: relative; z-index: 50; border-bottom: 1px solid var(--fn-border); background: rgba(245, 246, 242, .97); }
.site-header__inner { min-height: 74px; display: flex; align-items: center; justify-content: space-between; gap: .8rem; }
.site-brand { display: inline-flex; min-width: 0; align-items: center; gap: .7rem; font-size: 1rem; font-weight: 780; letter-spacing: -.04em; }
.site-brand img { width: 36px; height: 36px; object-fit: contain; }
.site-brand strong { white-space: nowrap; }
.site-brand span { color: var(--fn-muted); font-weight: 520; }
.site-nav--desktop, .header-cta { display: none; }
.site-nav ul { margin: 0; padding: 0; list-style: none; }
.mobile-menu { margin-left: auto; }
.mobile-menu summary { min-width: 50px; min-height: 46px; display: flex; align-items: center; justify-content: center; gap: .55rem; border: 1px solid var(--fn-border); cursor: pointer; font-size: .72rem; font-weight: 750; list-style: none; }
.mobile-menu summary::-webkit-details-marker { display: none; }
.mobile-menu summary i, .mobile-menu summary i::before { width: 14px; height: 1px; display: block; background: currentColor; content: ""; }
.mobile-menu summary i::before { transform: translateY(5px); }
.mobile-menu[open] summary i { transform: rotate(45deg); }
.mobile-menu[open] summary i::before { transform: rotate(90deg); }
.mobile-menu[open] nav { position: absolute; top: 74px; right: 0; left: 0; min-height: calc(100vh - 74px); padding: 1.25rem var(--fn-gutter) 2.5rem; background: var(--fn-dark); color: #fff; }
.mobile-menu nav li + li { border-top: 1px solid #344039; }
.mobile-menu nav a:not(.fn-button) { min-height: 56px; display: flex; align-items: center; color: #fff; font-size: 1rem; }
.mobile-menu__cta { width: 100%; margin-top: 1.5rem; }
.menu-is-open { overflow: hidden; }

/* Hero and editorial */
.page-hero { padding-block: clamp(4.5rem, 12vw, 9rem); border-bottom: 1px solid var(--fn-border); }
.page-hero__media { position: relative; margin-top: 2.5rem; aspect-ratio: 4 / 3; overflow: hidden; background: #dfe4df; }
.page-hero__media::after { position: absolute; right: 1rem; bottom: 1rem; padding: .35rem .55rem; background: rgba(17,23,20,.78); color: #fff; content: "FN / BIOLABS"; font-family: var(--fn-font-mono); font-size: .62rem; letter-spacing: .12em; }
.page-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.page-hero__actions, .product-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin: 2rem 0 0; }
.fn-breadcrumbs { margin-bottom: 2rem; color: var(--fn-muted); font-family: var(--fn-font-mono); font-size: .68rem; }
.fn-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.fn-breadcrumbs li:not(:last-child)::after { margin-left: .5rem; content: "/"; }
.entry-shell { padding-block: var(--fn-section); }
.entry-content { max-width: 780px; }
.entry-content--wide { max-width: 100%; }
.entry-content > *:first-child { margin-top: 0; }
.entry-content h2, .entry-content h3 { margin: 2.2em 0 .65em; line-height: 1.08; letter-spacing: -.04em; }
.entry-content h2 { font-size: clamp(2rem, 7vw, 3.7rem); }
.entry-content h3 { font-size: clamp(1.4rem, 4vw, 2.1rem); }
.entry-content p, .entry-content li { color: #344139; }
.entry-content a { color: var(--fn-green); text-decoration: underline; text-underline-offset: .2em; }
.entry-content figure { margin: 2.5rem 0; }
.entry-content .is-style-fn-panel { padding: clamp(1.5rem, 5vw, 3rem); border: 1px solid var(--fn-border); background: var(--fn-surface); }
.entry-content .is-style-fn-dark { max-width: none; padding: clamp(2rem, 6vw, 5rem); background: var(--fn-dark); color: #fff; }
.entry-content .is-style-fn-dark p { color: #b8c2bc; }
.entry-content .is-style-fn-mint { padding: clamp(2rem, 6vw, 5rem); background: var(--fn-mint); }
.entry-content .is-style-fn-display { font-size: clamp(2.3rem, 8vw, 5.5rem); }
.entry-content .is-style-fn-editorial img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }

/* Collection UI */
.section-heading { display: grid; gap: 1.5rem; margin-bottom: 2.5rem; }
.section-heading h2 { max-width: 760px; margin: 0; font-size: clamp(2rem, 7vw, 4.2rem); letter-spacing: -.055em; line-height: 1; }
.section-heading > p { max-width: 500px; margin: 0; color: var(--fn-muted); }
.section-heading > a { display: inline-flex; align-items: center; gap: .5rem; font-size: .8rem; font-weight: 750; }
.family-grid { display: grid; gap: 1px; border: 1px solid var(--fn-border); background: var(--fn-border); }
.family-card { min-height: 200px; display: grid; align-content: space-between; padding: 1.35rem; background: var(--fn-surface); }
.family-card span { color: var(--fn-green); font-family: var(--fn-font-mono); font-size: .68rem; text-transform: uppercase; }
.family-card strong { margin-top: 2rem; font-size: 1.45rem; line-height: 1.05; }
.family-card svg { justify-self: end; }
.product-grid { display: grid; gap: 1px; border: 1px solid var(--fn-border); background: var(--fn-border); }
.product-grid > [data-product-card] { min-width: 0; background: var(--fn-surface); }
.product-card { min-height: 220px; display: flex; flex-direction: column; background: var(--fn-surface); padding: 1.35rem; }
.product-card__code { color: var(--fn-green); font-family: var(--fn-font-mono); font-size: .68rem; }
.product-card h2, .product-card h3 { margin: auto 0 .6rem; font-size: 1.35rem; line-height: 1.1; }
.product-card p { margin: 0 0 1.1rem; color: var(--fn-muted); font-size: .82rem; }
.product-card__link { display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--fn-border); padding-top: .85rem; font-size: .76rem; font-weight: 750; }
.catalog-search { min-height: 62px; display: flex; align-items: center; gap: .9rem; margin-bottom: 1.5rem; border: 1px solid var(--fn-border); padding-inline: 1rem; background: var(--fn-surface); }
.catalog-search svg { width: 22px; flex: 0 0 auto; }
.catalog-search input { width: 100%; height: 58px; border: 0; outline: 0; background: transparent; }
.catalog-empty { border: 1px solid var(--fn-border); padding: 2rem; background: var(--fn-surface); }
.directory-list { display: grid; gap: 4rem; }
.directory-list__head { display: flex; align-items: end; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--fn-ink); padding-bottom: 1.5rem; }
.directory-list__head h2 { margin: 0; font-size: clamp(2rem, 7vw, 4rem); letter-spacing: -.05em; line-height: 1; }
.directory-list__head > span { font-family: var(--fn-font-mono); }
.directory-family-group { padding-top: 2rem; }
.directory-family-group__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; }
.directory-family-group__head h3 { margin: 0; font-size: clamp(1.25rem, 5vw, 2rem); letter-spacing: -.035em; }
.directory-family-group__head a { display: inline-flex; align-items: center; gap: .4rem; color: var(--fn-green); font-size: .75rem; font-weight: 720; }
.directory-product-links { display: grid; }
.directory-product-links a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--fn-border); padding: 1rem 0; }
.directory-product-links code { color: var(--fn-green); font-family: var(--fn-font-mono); font-size: .72rem; }
.resource-grid { display: grid; gap: 1px; border: 1px solid var(--fn-border); background: var(--fn-border); }
.resource-card { min-height: 290px; display: flex; flex-direction: column; padding: 1.5rem; background: var(--fn-surface); }
.resource-card__meta { display: flex; justify-content: space-between; gap: 1rem; color: var(--fn-green); font-family: var(--fn-font-mono); font-size: .66rem; text-transform: uppercase; }
.resource-card h2 { margin: 3rem 0 1rem; font-size: 1.7rem; line-height: 1.08; letter-spacing: -.04em; }
.resource-card p { margin: 0 0 2rem; color: var(--fn-muted); font-size: .9rem; }
.resource-card__link { display: flex; align-items: center; justify-content: space-between; margin-top: auto; border-top: 1px solid var(--fn-border); padding-top: 1rem; font-size: .78rem; font-weight: 750; }
.resource-hub__section + .resource-hub__section { margin-top: clamp(4rem, 10vw, 7rem); }

/* Product and family records */
.product-detail-hero, .family-hero { padding-block: clamp(3.5rem, 10vw, 8rem); }
.product-detail-grid, .family-hero__grid { display: grid; gap: 2.5rem; }
.family-hero .fn-heading { overflow-wrap: anywhere; }
.product-detail-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .8rem; margin-bottom: 1.35rem; color: var(--fn-green); font-family: var(--fn-font-mono); font-size: .66rem; text-transform: uppercase; }
.product-detail-meta a { border-bottom: 1px solid currentColor; }
.product-status { border: 1px solid var(--fn-border); padding: .35rem .5rem; background: var(--fn-surface); color: var(--fn-ink); }
.product-detail-copy .fn-heading span { display: block; margin-top: .75rem; color: var(--fn-green); font-size: clamp(1rem, 4vw, 1.5rem); font-weight: 620; letter-spacing: -.025em; line-height: 1.2; }
.product-actions .fn-button { flex: 1 1 100%; }
.product-record, .family-summary { background: var(--fn-dark); color: #fff; padding: clamp(1.5rem, 6vw, 3rem); }
.product-record__head, .family-summary > span { color: #9facA4; font-family: var(--fn-font-mono); font-size: .68rem; letter-spacing: .1em; }
.product-record__head { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.family-summary > strong { display: block; margin: 2rem 0; font-size: 2rem; }
.product-record dl, .family-summary dl { margin: 0; }
.product-record dl > div, .family-summary dl > div { display: grid; gap: .3rem; padding: 1rem 0; border-bottom: 1px solid #3b4740; }
.product-record dt, .family-summary dt { color: #aeb9b2; font-size: .75rem; }
.product-record dd, .family-summary dd { margin: 0; font-weight: 680; }
.product-record > p { margin: 1.5rem 0 0; color: #aeb9b2; font-size: .8rem; }
.product-record > p + p { margin-top: .8rem; }
.product-overview { border-block: 1px solid var(--fn-border); background: var(--fn-surface); }
.product-overview__grid { display: grid; gap: 2.5rem; }
.product-overview .entry-content h2 { margin-top: 0; }
.product-review-note { align-self: start; border-top: 3px solid var(--fn-green); padding: 1.4rem; background: var(--fn-bg); }
.product-review-note > span { color: var(--fn-green); font-family: var(--fn-font-mono); font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.product-review-note p { margin: 1rem 0 1.5rem; color: var(--fn-muted); font-size: .86rem; }
.product-review-note a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--fn-border); padding-top: 1rem; font-size: .76rem; font-weight: 750; }
.product-reports { background: #e8ece7; }
.procurement-section, .trust-links { padding-block: var(--fn-section); background: var(--fn-dark); color: #fff; }
.procurement-layout, .trust-links__grid { display: grid; gap: 2.5rem; }
.procurement-layout h2, .trust-links h2 { margin: 0; font-size: clamp(2.2rem, 8vw, 4.7rem); letter-spacing: -.055em; line-height: .98; }
.procurement-list article { display: grid; grid-template-columns: 38px 1fr; gap: 1rem; border-top: 1px solid #3b4740; padding: 1.4rem 0; }
.procurement-list span { color: var(--fn-lime); font-family: var(--fn-font-mono); font-size: .72rem; }
.procurement-list h3 { margin: 0 0 .3rem; font-size: 1.05rem; }
.procurement-list p { margin: 0; color: #aeb9b2; font-size: .87rem; }
.trust-links__grid > div:last-child { display: grid; align-content: start; }
.trust-links a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-top: 1px solid #3b4740; padding: 1.4rem 0; }
.trust-links a:last-child { border-bottom: 1px solid #3b4740; }

/* Evidence, reports and reviews */
.evidence-grid, .report-grid, .review-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; }
.evidence-section--muted { background: #e8ece7; }
.evidence-card, .report-card, .review-card { min-width: 0; border: 1px solid var(--fn-border); background: var(--fn-surface); }
.evidence-card__media, .report-card > button { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: #e5e9e5; }
.report-card > button { aspect-ratio: 4 / 5; }
.evidence-card__media img, .evidence-card__media video, .report-card img { width: 100%; height: 100%; object-fit: cover; }
.report-card img { object-fit: contain; }
.media-zoom { width: 100%; height: 100%; display: block; border: 0; padding: 0; cursor: zoom-in; background: transparent; }
.media-watermark { position: absolute; right: .65rem; bottom: .65rem; padding: .28rem .45rem; background: rgba(17,23,20,.72); color: rgba(255,255,255,.88); font-family: var(--fn-font-mono); font-size: .58rem; letter-spacing: .1em; pointer-events: none; }
.evidence-card__copy, .report-card > div, .review-card { padding: 1.25rem; }
.evidence-card__copy h3, .report-card h3 { margin: 0; font-size: 1.05rem; }
.evidence-card__copy p, .report-card p, .review-card > p { margin: .65rem 0 0; color: var(--fn-muted); font-size: .8rem; }
.report-card > div > span { color: var(--fn-green); font-family: var(--fn-font-mono); font-size: .66rem; }
.report-card .report-card__note { margin-top: 1rem; border-top: 1px solid var(--fn-border); padding-top: .85rem; font-size: .72rem; }
.review-card { min-height: 260px; display: flex; flex-direction: column; }
.review-card__meta { display: flex; flex-wrap: wrap; gap: .5rem 1rem; color: var(--fn-green); font-family: var(--fn-font-mono); font-size: .68rem; }
.review-card blockquote { margin: 2rem 0 0; font-size: 1.25rem; line-height: 1.35; }
.review-card blockquote p { margin: 0; color: var(--fn-ink); }
.fn-lightbox { width: min(94vw, 1080px); max-height: 92vh; border: 0; padding: 2.5rem 1rem 1rem; background: #080b09; color: #fff; }
.fn-lightbox::backdrop { background: rgba(8,11,9,.88); }
.fn-lightbox img { width: 100%; max-height: calc(92vh - 4rem); object-fit: contain; }
.fn-lightbox button { position: absolute; top: .2rem; right: .5rem; border: 0; background: transparent; color: #fff; cursor: pointer; font-size: 2rem; }

/* FAQ, article and contact */
.faq-layout, .article-layout, .contact-layout { display: grid; gap: 2.5rem; }
.faq-index { display: grid; align-content: start; }
.faq-index a { border-top: 1px solid var(--fn-border); padding: .8rem 0; font-size: .82rem; }
.faq-groups { display: grid; gap: 4rem; }
.faq-item { border-top: 1px solid var(--fn-border); }
.faq-item:last-child { border-bottom: 1px solid var(--fn-border); }
.faq-item summary { min-height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; cursor: pointer; font-weight: 680; list-style: none; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item[open] summary span { transform: rotate(45deg); }
.faq-item > div { padding: 0 0 1.5rem; color: var(--fn-muted); }
.article-intro { color: var(--fn-ink) !important; font-size: 1.3rem; line-height: 1.45; }
.resource-meta { margin-top: 2rem; color: var(--fn-green); font-family: var(--fn-font-mono); font-size: .72rem; }
.article-aside { align-self: start; border-top: 3px solid var(--fn-lime); padding: 1.25rem; background: var(--fn-dark); color: #fff; }
.article-aside span { font-family: var(--fn-font-mono); font-size: .68rem; }
.article-aside p { margin: 1rem 0 0; color: #aeb9b2; font-size: .82rem; }
.contact-channels h2, .inquiry-form-shell h2 { margin: 0 0 2rem; font-size: clamp(2rem, 7vw, 3.6rem); letter-spacing: -.05em; line-height: 1; }
.contact-channels > a { display: grid; gap: .2rem; border-top: 1px solid var(--fn-border); padding: 1.1rem 0; }
.contact-channels > a:last-child { border-bottom: 1px solid var(--fn-border); }
.contact-channels > a span { color: var(--fn-muted); font-size: .72rem; }
.inquiry-form-shell { padding: clamp(1.5rem, 5vw, 3rem); background: var(--fn-surface); }
.staging-form-notice { margin-bottom: 1.5rem; border-left: 4px solid var(--fn-lime); padding: 1rem; background: #f4f6e9; font-size: .8rem; }
.fn-form { display: grid; gap: 1rem; }
.fn-form label { display: grid; gap: .45rem; color: var(--fn-muted); font-size: .75rem; font-weight: 650; }
.fn-form input, .fn-form textarea, .fn-form select { width: 100%; min-height: 48px; border: 1px solid var(--fn-border); border-radius: 0; padding: .8rem; background: #f8f9f6; color: var(--fn-ink); font: inherit; }
.fn-form textarea { min-height: 150px; resize: vertical; }
.fn-form input:focus-visible, .fn-form textarea:focus-visible, .fn-form select:focus-visible { outline: 3px solid color-mix(in srgb, var(--fn-green) 35%, transparent); outline-offset: 2px; }
.fn-form button:disabled { cursor: not-allowed; opacity: .62; }
.form-honeypot { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.turnstile-field { display: grid; gap: .5rem; min-width: 0; }
.turnstile-widget { min-height: 65px; width: 100%; overflow: hidden; }
.turnstile-field > p, .form-consent p { margin: 0; color: var(--fn-muted); font-size: .72rem; line-height: 1.55; }
.form-consent { display: grid; gap: 1rem; align-items: end; }
.form-consent a { color: var(--fn-ink); text-decoration: underline; text-underline-offset: 3px; }
.form-status:empty { display: none; }
.form-status { margin-top: .65rem !important; }
.form-error { color: #9d2d2d !important; font-weight: 700; }
.form-submit { justify-self: start; min-height: 48px; border: 0; cursor: pointer; }
.form-success { min-height: 360px; display: grid; align-content: center; justify-items: start; gap: .8rem; padding: clamp(1.5rem, 5vw, 3rem); background: #fff; }
.form-success[hidden] { display: none; }
.form-success strong { font-size: clamp(1.6rem, 6vw, 2.6rem); letter-spacing: -.04em; }
.form-success p { max-width: 540px; margin: 0; color: var(--fn-muted); }
.form-success button { min-height: 44px; margin-top: .8rem; border: 1px solid var(--fn-ink); border-radius: 0; padding: .7rem 1rem; background: transparent; color: var(--fn-ink); cursor: pointer; font-weight: 700; }

/* CTA and footer */
.fn-cta { padding-block: clamp(3.5rem, 10vw, 6.5rem); background: var(--fn-lime); }
.fn-cta__inner { display: grid; gap: 2rem; }
.fn-cta h2 { max-width: 820px; margin: 0; font-size: clamp(2.2rem, 8vw, 4.8rem); line-height: .98; letter-spacing: -.055em; }
.fn-cta p { max-width: 660px; margin: 1rem 0 0; color: #3d4816; }
.fn-cta__actions { display: flex; flex-wrap: wrap; gap: .75rem; align-items: start; }
.site-footer { padding-block: 4.5rem 2rem; background: var(--fn-dark); color: #fff; }
.site-footer__lead { max-width: 760px; margin-bottom: 4rem; }
.site-footer__lead > p:last-child { margin: 0; font-size: clamp(1.8rem, 7vw, 4rem); letter-spacing: -.05em; line-height: 1; }
.site-footer__grid { display: grid; gap: 2.5rem; }
.site-footer h2 { margin: 0 0 1rem; font-size: 1rem; }
.site-footer__brand { display: flex; align-items: center; gap: .7rem; }
.site-footer__brand img { width: 38px; height: 38px; }
.site-footer p, .site-footer address { color: #a9b4ae; font-size: .8rem; font-style: normal; }
.site-footer address + address { margin-top: 1rem; }
.site-footer ul { display: grid; gap: .6rem; margin: 0; padding: 0; list-style: none; }
.site-footer a { color: #dce3df; font-size: .8rem; }
.site-footer a:hover { color: var(--fn-lime); }
.site-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem; margin-top: 3rem; padding-top: 1.2rem; border-top: 1px solid #303a34; color: #a7b2ac; font-family: var(--fn-font-mono); font-size: .66rem; }
.footer-settings { border: 0; padding: 0; background: transparent; color: inherit; cursor: pointer; font: inherit; }
.footer-settings:hover, .footer-settings:focus-visible { color: var(--fn-lime); }
.whatsapp-float { position: fixed; z-index: 45; right: 16px; bottom: max(16px, env(safe-area-inset-bottom)); width: min(224px, calc(100vw - 32px)); min-height: 58px; display: grid; grid-template-columns: 38px minmax(0, 1fr) 18px; align-items: center; gap: .7rem; border: 1px solid rgba(17,23,20,.2); border-radius: 16px; padding: .55rem .75rem .55rem .55rem; background: var(--fn-lime); color: var(--fn-ink); box-shadow: 0 16px 36px rgba(17,23,20,.2); font-size: .82rem; font-weight: 760; line-height: 1.1; transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease; }
.whatsapp-float:hover { transform: translateY(-3px); background: #f0ff72; color: var(--fn-ink); box-shadow: 0 20px 44px rgba(17,23,20,.24); }
.whatsapp-float:focus-visible { color: var(--fn-ink); outline-color: var(--fn-ink); }
.whatsapp-float > .whatsapp-float__icon { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 11px; background: var(--fn-ink); color: var(--fn-lime); }
.whatsapp-float__icon svg { width: 20px; height: 20px; }
.whatsapp-float strong { display: block; letter-spacing: -.015em; }
.whatsapp-float > .whatsapp-float__arrow { width: auto; height: auto; display: grid; place-items: center; background: transparent; color: var(--fn-ink); font-family: inherit; font-size: 1rem; transition: transform .18s ease; }
.whatsapp-float:hover .whatsapp-float__arrow { transform: translate(2px, -2px); }
.not-found { min-height: 60vh; display: grid; align-items: center; padding-block: 4rem; }
.not-found p { max-width: 620px; color: var(--fn-muted); }
.analytics-consent { position: fixed; z-index: 100; right: 16px; bottom: 16px; width: calc(100vw - 32px); display: grid; gap: 1.25rem; padding: 1.25rem; border: 1px solid #46534c; background: var(--fn-dark); color: #fff; box-shadow: 0 24px 70px rgba(0,0,0,.28); }
.analytics-consent[hidden] { display: none; }
.analytics-consent strong { display: block; margin-bottom: .5rem; font-size: 1rem; }
.analytics-consent p { margin: 0; color: #b9c3bd; font-size: .76rem; line-height: 1.6; }
.analytics-consent p a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.analytics-consent-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
.analytics-consent button { min-height: 44px; border: 1px solid #566159; border-radius: 0; padding: 0 .7rem; cursor: pointer; font-size: .72rem; font-weight: 720; }
.analytics-decline { background: transparent; color: #fff; }
.analytics-accept { border-color: var(--fn-lime) !important; background: var(--fn-lime); color: var(--fn-ink); }

@media (min-width: 701px) {
    :root { --fn-gutter: 32px; }
    .page-hero__grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr); gap: 3rem; align-items: end; }
    .page-hero__media { margin-top: 0; }
    .section-heading { grid-template-columns: minmax(0, 1fr) minmax(260px, .45fr); align-items: end; }
    .family-grid, .product-grid, .resource-grid, .evidence-grid, .report-grid, .review-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .fn-cta__inner { grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
    .site-footer__grid { grid-template-columns: 1.25fr .75fr 1fr; }
    .product-detail-grid, .family-hero__grid { grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr); align-items: start; }
    .product-record, .family-summary { margin-top: 2rem; }
    .product-actions .fn-button { flex: 0 1 auto; }
    .product-overview__grid { grid-template-columns: minmax(0, 1fr) minmax(280px, .45fr); align-items: start; }
    .procurement-layout, .trust-links__grid, .article-layout, .contact-layout { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
    .faq-layout { grid-template-columns: 220px minmax(0, 1fr); align-items: start; }
    .faq-index { position: sticky; top: 110px; }
    .fn-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .fn-form__wide { grid-column: 1 / -1; }
    .form-consent { grid-template-columns: minmax(0, 1fr) auto; }
    .analytics-consent { right: 24px; bottom: 24px; width: min(620px, calc(100vw - 48px)); grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 1.8rem; padding: 1.5rem; }
    .analytics-consent-actions { display: flex; }
}

@media (min-width: 701px) and (max-width: 980px) {
    .family-hero__grid { grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr); gap: 2rem; }
    .family-hero .fn-heading { font-size: clamp(2.75rem, 7vw, 4.25rem); }
}

@media (min-width: 981px) {
    :root { --fn-gutter: 42px; }
    .site-header { position: sticky; top: 0; }
    .site-header__inner { min-height: 84px; }
    .mobile-menu { display: none; }
    .site-nav--desktop { display: block; margin-left: auto; }
    .site-nav--desktop ul { display: flex; align-items: center; gap: 1.6rem; }
    .site-nav--desktop a { position: relative; font-size: .73rem; font-weight: 700; }
    .site-nav--desktop .current-menu-item > a::after, .site-nav--desktop .current_page_item > a::after { position: absolute; right: 0; bottom: -.55rem; left: 0; height: 2px; background: var(--fn-green); content: ""; }
    .header-cta { display: inline-flex; align-items: center; gap: .55rem; margin-left: .5rem; border-left: 1px solid var(--fn-border); padding-left: 1.25rem; font-size: .74rem; font-weight: 750; }
    .family-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .resource-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .evidence-grid, .report-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .review-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .product-detail-grid, .family-hero__grid { grid-template-columns: minmax(0, 1.2fr) minmax(360px, .8fr); gap: clamp(4rem, 8vw, 8rem); align-items: end; }
    .product-record, .family-summary { margin-top: 0; }
    .article-layout { grid-template-columns: minmax(0, 780px) 280px; justify-content: space-between; }
    .whatsapp-float { right: 24px; bottom: 24px; width: 238px; min-height: 62px; grid-template-columns: 42px minmax(0, 1fr) 18px; border-radius: 18px; padding: .6rem .85rem .6rem .6rem; font-size: .86rem; }
    .whatsapp-float > .whatsapp-float__icon { width: 42px; height: 42px; }
}

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