/* ============================================================
   Picnic 2026 brand overlay — loaded LAST on every page.
   Enforces the 2026 type system over page-local styles:
   Neo Forma Serif Regular for headlines and large figures
   (never bold, never uppercase); Neo Forma Sans for everything
   else. Colour/token swaps live in each stylesheet; this file
   is the typography + texture layer.
   ============================================================ */
@font-face{font-family:'Neo Forma Sans';src:url("assets/fonts/NeoFormaSans-Regular.otf") format('opentype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Neo Forma Sans';src:url("assets/fonts/NeoFormaSans-Italic.otf") format('opentype');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'Neo Forma Sans';src:url("assets/fonts/NeoFormaSans-Bold.otf") format('opentype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Neo Forma Sans';src:url("assets/fonts/NeoFormaSans-BoldItalic.otf") format('opentype');font-weight:700;font-style:italic;font-display:swap}
@font-face{font-family:'Neo Forma Serif';src:url("assets/fonts/NeoFormaSerif-Regular.otf") format('opentype');font-weight:400 600;font-style:normal;font-display:swap}
@font-face{font-family:'Neo Forma Serif';src:url("assets/fonts/NeoFormaSerif-Italic.otf") format('opentype');font-weight:400 600;font-style:italic;font-display:swap}

:root{
  --blanket:#F8506F; --blanket-25:#FA7C93; --blanket-deep:#DF4864;
  --sky:#8ADBCD; --sky-deep:#88D0C6; --wasp:#FFF4B0; --breeze:#E5F1EC;
  --storm:#7EA2AA; --cloud:#FFFFFF; --mist-2026:#F7F5F0; --charcoal:#303030;
  --nf-serif:'Neo Forma Serif',Georgia,'Times New Roman',serif;
  --nf-sans:'Neo Forma Sans','Helvetica Neue',Helvetica,Arial,sans-serif;
}

/* ---- Headlines: serif regular, sentence case, editorial ---- */
h1,h2,.h1,.h2{
  font-family:var(--nf-serif) !important;
  font-weight:400 !important;
  font-style:normal !important;
  text-transform:none !important;
  letter-spacing:-0.01em !important;
}
/* ---- Subheadings: Neo Forma Sans Bold, mixed case (brand type specimen) ---- */
h3,.h3{
  font-family:var(--nf-sans) !important;
  font-weight:700 !important;
  font-style:normal !important;
  text-transform:none !important;
}
h1,.h1{line-height:1.06 !important}
h2,.h2{line-height:1.08 !important}
h3,.h3{line-height:1.15 !important}

/* Leads / standfirsts: sans regular (old brand set these serif italic) */
.lead,.md-lead,.sub,.p-detail{font-family:var(--nf-sans) !important;font-style:normal !important;font-weight:400 !important}

/* Pull quotes stay serif but upright, regular */
.qcard .qtext,blockquote:not(.testi-quote),.quote-text,.pq{font-family:var(--nf-serif) !important;font-style:normal !important;font-weight:400 !important}

/* Large display figures read in serif regular (2026 key-stats rule).
   Small in-card/product numerics stay sans bold. */
.proof .v,.stat .v,.chip .v,.float-chip .v,.stat-callout .big,
.scorecard .v,.waste .v,.hstat .v,.kstat .v,.stat-num,.big-stat,
.md-stat .v,.ms-stat .v,.cs-stat .v{
  font-family:var(--nf-serif) !important;font-weight:400 !important;letter-spacing:-0.01em !important;
}

/* Buttons, labels, eyebrows, nav stay Neo Forma Sans Bold uppercase — no override needed. */

/* ---- Texture utilities ---- */
.grain::after{
  content:'';position:absolute;inset:0;pointer-events:none;z-index:0;
  background:url("assets/textures/grain-soft.png") repeat 0 0 / 220px 220px;
  mix-blend-mode:overlay;opacity:.16;
}
.stripes-bg{position:absolute;pointer-events:none;z-index:0;background-repeat:no-repeat;background-size:cover}

/* 2026 gradients (grain applied via .grain on the band) */
.grad-blanket{background:linear-gradient(135deg,#DF4864 0%,#F8506F 45%,#FA7C93 100%)}
.grad-sky{background:linear-gradient(135deg,#88D0C6 0%,#8ADBCD 50%,#F7F5F0 100%)}
.grad-breeze{background:linear-gradient(160deg,#E5F1EC 0%,#F7F5F0 60%,#FFFFFF 100%)}

/* Cookie banner heading: functional UI, sans bold */
.cc-text h2{font-family:var(--nf-sans) !important;font-weight:700 !important;letter-spacing:.01em !important}


/* Sky blob textures: softer so text on top stays readable (desktop .38, phones .24) */
.olv-diff::before, .olv-signals::before, .olv-problem::before, .olv-example::before,
.dcheck::after, .cs-block.mist::before, section.blx-sec-kpi::after, .cf-blob { opacity: .38 !important; }
@media (max-width: 600px) {
  .olv-diff::before, .olv-signals::before, .olv-problem::before, .olv-example::before,
  .dcheck::after, .cs-block.mist::before, section.blx-sec-kpi::after, .cf-blob { opacity: .24 !important; }
}

/* Media Solutions objective cards: body copy in sans */
.obj-card .oc-desc { font-family: var(--font-sans) !important; font-weight: 400 !important; font-style: normal !important; font-size: 15px; line-height: 1.5; }
