/* A21 database-controlled, section-wise typography.
   Every value is resolved from the server allowlist before it reaches these
   variables, so this layer never accepts arbitrary CSS from administration. */

body:not(.is-meridia-theme){font-family:var(--font-cg-global,var(--font-cg-brand))!important}
body:not(.is-meridia-theme) *:not(code):not(pre):not(kbd):not(samp){font-family:var(--font-cg-global,var(--font-cg-brand))!important}
body.is-meridia-theme{font-family:var(--font-meridia-global,var(--font-meridia-brand))!important}
body.is-meridia-theme *:not(code):not(pre):not(kbd):not(samp){font-family:var(--font-meridia-global,var(--font-meridia-brand))!important}

body:not(.is-meridia-theme) :where(h1,h2,h3,h4,h5,h6),
body:not(.is-meridia-theme) :where(h1,h2,h3,h4,h5,h6) *{font-family:var(--font-cg-headings,var(--font-cg-global))!important}
body.is-meridia-theme :where(h1,h2,h3,h4,h5,h6),
body.is-meridia-theme :where(h1,h2,h3,h4,h5,h6) *{font-family:var(--font-meridia-headings,var(--font-meridia-global))!important}

/* Homepage identity.  The Meridia feature intentionally keeps the Meridia
   homepage selection even though it appears inside the standard CG home. */
body:not(.is-meridia-theme) :where(.vA3-home-hero,.vA3-trust-section,.vA3-category-section,.vA3-story-section,.vA3-featured-section,.vA3-media-section,.eh-support,.v14-timeline-section,.vA3-closing-section),
body:not(.is-meridia-theme) :where(.vA3-home-hero,.vA3-trust-section,.vA3-category-section,.vA3-story-section,.vA3-featured-section,.vA3-media-section,.eh-support,.v14-timeline-section,.vA3-closing-section) *{font-family:var(--font-cg-homepage,var(--font-cg-global))!important}
.vA3-meridia-section,.vA3-meridia-section *{font-family:var(--font-meridia-homepage,var(--font-meridia-global,var(--font-meridia-brand)))!important}

/* Catalogue, cards, detail copy and specifications are separately scoped. */
body:not(.is-meridia-theme) :where(.v6-catalog-hero,.v6-catalog-section),
body:not(.is-meridia-theme) :where(.v6-catalog-hero,.v6-catalog-section) *{font-family:var(--font-cg-product-listing,var(--font-cg-global))!important}
body.is-meridia-theme :where(.v6-catalog-hero,.v6-catalog-section),
body.is-meridia-theme :where(.v6-catalog-hero,.v6-catalog-section) *{font-family:var(--font-meridia-product-listing,var(--font-meridia-global))!important}

body:not(.is-meridia-theme) :where(.product-card,.v6-product-card,.v24-product-card),
body:not(.is-meridia-theme) :where(.product-card,.v6-product-card,.v24-product-card) *{font-family:var(--font-cg-product-cards,var(--font-cg-product-listing,var(--font-cg-global)))!important}
body.is-meridia-theme :where(.product-card,.v6-product-card,.v24-product-card),
body.is-meridia-theme :where(.product-card,.v6-product-card,.v24-product-card) *{font-family:var(--font-meridia-product-cards,var(--font-meridia-product-listing,var(--font-meridia-global)))!important}

body:not(.is-meridia-theme) :where(.v6-product-detail,.detail-actions,.content-section,.related),
body:not(.is-meridia-theme) :where(.v6-product-detail,.detail-actions,.content-section,.related) *{font-family:var(--font-cg-product-detail,var(--font-cg-global))!important}
body.is-meridia-theme :where(.v6-product-detail,.detail-actions,.content-section,.related),
body.is-meridia-theme :where(.v6-product-detail,.detail-actions,.content-section,.related) *{font-family:var(--font-meridia-product-detail,var(--font-meridia-global))!important}

body:not(.is-meridia-theme) :where(.v6-spec-section,.v18-spec-accordion,.vA11-spec-accordion),
body:not(.is-meridia-theme) :where(.v6-spec-section,.v18-spec-accordion,.vA11-spec-accordion) *{font-family:var(--font-cg-specifications,var(--font-cg-product-detail,var(--font-cg-global)))!important}
body.is-meridia-theme :where(.v6-spec-section,.v18-spec-accordion,.vA11-spec-accordion),
body.is-meridia-theme :where(.v6-spec-section,.v18-spec-accordion,.vA11-spec-accordion) *{font-family:var(--font-meridia-specifications,var(--font-meridia-product-detail,var(--font-meridia-global)))!important}

body:not(.is-meridia-theme) .enterprise-footer,
body:not(.is-meridia-theme) .enterprise-footer *{font-family:var(--font-cg-footer,var(--font-cg-global))!important}
body.is-meridia-theme .enterprise-footer,
body.is-meridia-theme .enterprise-footer *{font-family:var(--font-meridia-footer,var(--font-meridia-global))!important}

/* Navigation and interactive controls remain semantic overrides across every
   area, including catalogue and detail pages. */
body:not(.is-meridia-theme) :where(.cg-topbar,.enterprise-header,.enterprise-menu,.mega-menu,.category-bar,.nav-toggle,.search-overlay),
body:not(.is-meridia-theme) :where(.cg-topbar,.enterprise-header,.enterprise-menu,.mega-menu,.category-bar,.nav-toggle,.search-overlay) *{font-family:var(--font-cg-navigation,var(--font-cg-global))!important}
body.is-meridia-theme :where(.cg-topbar,.enterprise-header,.enterprise-menu,.mega-menu,.category-bar,.nav-toggle,.search-overlay),
body.is-meridia-theme :where(.cg-topbar,.enterprise-header,.enterprise-menu,.mega-menu,.category-bar,.nav-toggle,.search-overlay) *{font-family:var(--font-meridia-navigation,var(--font-meridia-global))!important}

body:not(.is-meridia-theme) :where(button,input,select,textarea,.button,label),
body:not(.is-meridia-theme) :where(button,input,select,textarea,.button,label) *{font-family:var(--font-cg-controls,var(--font-cg-global))!important}
body.is-meridia-theme :where(button,input,select,textarea,.button,label),
body.is-meridia-theme :where(button,input,select,textarea,.button,label) *{font-family:var(--font-meridia-controls,var(--font-meridia-global))!important}

/* Typography administration */
.vA21-type-note{display:flex;flex-wrap:wrap;gap:9px 18px;margin:0 0 24px;padding:16px 18px;border:1px solid #cfe0f2;border-radius:16px;background:#f5faff;color:#4d6680;font-size:12px}
.vA21-type-note strong{color:#083d80}.vA21-type-note span:before{content:"✓";margin-right:7px;color:#0878e5;font-weight:900}
.vA21-type-form{gap:26px!important}.vA21-type-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-bottom:22px;border-bottom:1px solid #dbe7f2}
.vA21-type-toolbar h2{margin:4px 0 6px;color:#092b59;font-size:28px}.vA21-type-toolbar p:last-child{max-width:720px;margin:0;color:#667991}
.vA21-type-actions{display:flex;flex-wrap:wrap;gap:10px;flex:0 0 auto}
.vA21-type-group{padding:22px;border:1px solid #d5e4f2;border-radius:18px;background:linear-gradient(180deg,#fbfdff,#f5f9fd)}
.vA21-type-group-meridia{border-color:#b9cbe0;background:linear-gradient(180deg,#f7f9fc,#edf3f9)}
.vA21-type-group-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:18px}.vA21-type-group-head h2{margin:3px 0 0;color:#082b59}.vA21-type-group-head>p{max-width:520px;margin:0;color:#627a92;text-align:right}
.vA21-type-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.vA21-type-card{min-width:0;padding:17px;border:1px solid #d7e4f0;border-radius:14px;background:#fff;box-shadow:0 8px 24px rgba(6,47,94,.04)}
.vA21-type-card>label{display:block;text-transform:none!important;letter-spacing:0!important}.vA21-type-card>label strong{display:block;color:#0a315f;font-size:14px}.vA21-type-card>label small{display:block;min-height:31px;margin-top:4px;color:#6a8097;font-size:11px;line-height:1.4}
.vA21-type-card select{margin-top:12px!important;color:#102f54!important;font-size:13px!important;font-weight:750}
.vA21-type-sample{margin-top:12px;padding:14px;border:1px solid #dfebf5;border-radius:11px;background:#f7fbff;color:#17395f}
.vA21-type-sample span{display:block;color:#0871ce;font-size:9px;font-weight:800;letter-spacing:.1em}.vA21-type-sample strong{display:block;margin-top:5px;font-size:17px;line-height:1.2}.vA21-type-sample p{margin:5px 0 0;color:#667991;font-size:11px;line-height:1.45}
.vA21-type-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-top:4px}.vA21-type-footer small{color:#657d95;text-align:right}.vA21-type-footer code{padding:2px 5px;border-radius:5px;background:#e8f3fd;color:#0755a0}

@media(max-width:900px){.vA21-type-grid{grid-template-columns:1fr}.vA21-type-toolbar,.vA21-type-group-head{align-items:flex-start;flex-direction:column}.vA21-type-group-head>p{text-align:left}.vA21-type-actions{width:100%}}
@media(max-width:600px){.vA21-type-group{padding:14px}.vA21-type-actions,.vA21-type-footer{align-items:stretch;flex-direction:column}.vA21-type-actions .button,.vA21-type-footer .button{width:100%}.vA21-type-footer small{text-align:left}}
