/* Fueling Prosperity
   Shared theme for all five pages. Built from the Tori Version (v11):
   Civic Bold format · Warm Community palette · Visual Journal title. */

/* ---- Andes: the CPLC brand typeface (per Ben Scolaro, Marketing, 7/28/2026) ----
   MyFonts webfont build 3867246, licensed from MyFonts/Monotype. This is the same
   kit cplc.org serves; the kit header restricts use to the licensed site owner, so
   marketing needs to confirm the license covers this site's domain before launch.

   Declared as ONE family so ordinary font-weight/font-style values select the cut.
   The weight ranges are deliberate — they make every weight this stylesheet asks
   for land on a real cut instead of a browser-synthesised fake bold:
       200-300 -> ExtraLight        400-500 -> Book (roman + italic)
       600-700 -> SemiBold          800 -> ExtraBold        900 -> Black
   The kit has no ExtraLight or ExtraBold italic, so italics above weight 500 are
   synthesised by the browser (only .hero h1 i hits this). Ben sent those two cuts
   as desktop .otf; they'd need adding to the web kit to be used here. */
@font-face{font-family:Andes;font-style:normal;font-weight:200 300;font-display:swap;
  src:url(../fonts/webFonts/AndesExtraLight/font.woff2) format("woff2"),url(../fonts/webFonts/AndesExtraLight/font.woff) format("woff")}
@font-face{font-family:Andes;font-style:normal;font-weight:400 500;font-display:swap;
  src:url(../fonts/webFonts/AndesBook/font.woff2) format("woff2"),url(../fonts/webFonts/AndesBook/font.woff) format("woff")}
@font-face{font-family:Andes;font-style:italic;font-weight:400 500;font-display:swap;
  src:url(../fonts/webFonts/AndesBookItalic/font.woff2) format("woff2"),url(../fonts/webFonts/AndesBookItalic/font.woff) format("woff")}
@font-face{font-family:Andes;font-style:normal;font-weight:600 700;font-display:swap;
  src:url(../fonts/webFonts/AndesSemiBold/font.woff2) format("woff2"),url(../fonts/webFonts/AndesSemiBold/font.woff) format("woff")}
@font-face{font-family:Andes;font-style:normal;font-weight:800;font-display:swap;
  src:url(../fonts/webFonts/AndesExtraBold/font.woff2) format("woff2"),url(../fonts/webFonts/AndesExtraBold/font.woff) format("woff")}
@font-face{font-family:Andes;font-style:normal;font-weight:900;font-display:swap;
  src:url(../fonts/webFonts/AndesBlack/font.woff2) format("woff2"),url(../fonts/webFonts/AndesBlack/font.woff) format("woff")}

:root{
  /* Every font-family in this file resolves to this one stack. The page used to
     pair Georgia (display) with Segoe UI (labels); Andes now carries both voices,
     so hierarchy is done with weight and size rather than a serif/sans contrast. */
  --font:Andes,"Segoe UI",-apple-system,system-ui,Arial,sans-serif;

  --sand:#f6efe3; --sand2:#efe5d3; --cocoa:#3a2a1c; --cocoa-d:#2a1d12;
  --teal:#1f5b60; --teal-d:#15464a; --teal-x:#0e3236;
  --orange:#e9742a; --orange-s:#f3a25b; --rust:#b9531c;
  --ink:#2c2519; --mut:#6f6450; --line:#e3dccc;
  --dark:#13383d; --dark2:#0e2f33; --dline:#21555b;
}
*{box-sizing:border-box;margin:0;padding:0}
/* Form controls don't inherit font-family from the page by default — they use the
   UA font. Opt them in, so controls that carry text (the modal and lightbox close
   buttons in particular) can't quietly fall back to Arial. */
button,input,select,textarea{font-family:inherit}
html{scroll-behavior:smooth;background:var(--sand)}
/* body background stays transparent so the parallax layer (z-index:-1) can sit
   between the page background and the content. */
body{font-family:var(--font);background:transparent;color:var(--ink);line-height:1.66;-webkit-font-smoothing:antialiased;position:relative;overflow-x:clip}

/* ---- parallax community photos (built by parallax.js) ----
   Tori's cut-outs drift at a fraction of scroll speed behind the content.
   Tune --ghost-op to make them more/less present. */
:root{--ghost-op:.34}
.fp-ghosts{position:absolute;top:0;left:0;right:0;height:100%;z-index:-1;pointer-events:none;overflow:hidden}
.fp-ghost{position:absolute;width:clamp(300px,32vw,540px);opacity:var(--ghost-op);filter:saturate(.62);will-change:transform;transform:translate3d(0,0,0)}
.fp-ghost.l{left:-1%}
.fp-ghost.r{right:-1%}
/* the cut-outs are cropped at the edges of their source photo — feather those
   straight edges so they dissolve instead of reading as hard lines */
.fp-ghost img{display:block;width:100%;height:auto;
  -webkit-mask-image:linear-gradient(to bottom,#000 72%,transparent 100%),linear-gradient(to right,transparent 0,#000 7%,#000 93%,transparent 100%);
  mask-image:linear-gradient(to bottom,#000 72%,transparent 100%),linear-gradient(to right,transparent 0,#000 7%,#000 93%,transparent 100%);
  -webkit-mask-composite:source-in;mask-composite:intersect}
@media(max-width:900px){:root{--ghost-op:.22}.fp-ghost{width:clamp(230px,50vw,320px)}.fp-ghost.l{left:-4%}.fp-ghost.r{right:-4%}}
@media(prefers-reduced-motion:reduce){.fp-ghost{transform:none!important}}
.wrap{max-width:1200px;margin:0 auto;padding:0 40px}
@media(max-width:720px){.wrap{padding:0 20px}}
a{color:var(--rust)}
/* Headings were Georgia bold; Andes ExtraBold keeps the same display weight now
   that the serif/sans contrast is gone. Stated explicitly so headings don't fall
   back to the browser default of 700 (which would resolve to SemiBold). */
h1,h2,h3{font-family:var(--font);font-weight:800;line-height:1.1;letter-spacing:-.015em}

/* ---- shared nav ---- */
header.nav{position:sticky;top:0;z-index:30;background:rgba(246,239,227,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--sand2)}
header.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:72px;gap:12px}
/* The brand lockup is the official CPLC horizontal logo (Marketing's artwork),
   with the study name set beside it behind a rule — deliberately NOT part of the
   logo, which is what Ben asked for. */
.brand{display:flex;align-items:center;gap:14px;min-width:0;text-decoration:none}
.brandmark{display:block;flex:0 0 auto;height:38px;width:auto}
.brandsub{padding-left:14px;border-left:1px solid var(--line);font-family:var(--font);font-weight:600;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
nav{display:flex;align-items:center}
nav a{color:var(--ink);text-decoration:none;font-size:14px;margin-left:26px;opacity:.72;font-weight:500;white-space:nowrap}
nav a:hover{opacity:1;color:var(--rust)}
nav a.active{opacity:1;color:var(--teal-d);font-weight:700;border-bottom:2px solid var(--orange);padding-bottom:2px}
.np{background:var(--orange);color:#fff!important;padding:11px 20px;border-radius:999px;opacity:1!important;font-weight:700;letter-spacing:.04em;border-bottom:0!important}
.np:hover{background:var(--rust)}
.navtoggle{display:none;background:none;border:0;cursor:pointer;padding:8px;color:var(--teal-d)}
.navtoggle svg{width:26px;height:26px;display:block}
@media(max-width:900px){
  header.nav .wrap{height:62px}
  .brandmark{height:32px}
  .brandsub{font-size:10px;padding-left:10px}
  .navtoggle{display:block}
  nav{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;background:var(--sand);border-bottom:1px solid var(--sand2);padding:8px 0;box-shadow:0 20px 40px -24px rgba(58,42,28,.5);max-height:0;overflow:hidden;transition:max-height .28s ease;gap:0}
  nav.open{max-height:420px}
  nav a{margin:0;padding:14px 40px;font-size:15px;opacity:.85;border-bottom:1px solid var(--sand2)}
  nav a.active{border-bottom:1px solid var(--sand2);background:rgba(233,116,42,.08)}
  nav a.np{margin:12px 40px 6px;padding:13px 18px;text-align:center;border-radius:999px}
}
@media(max-width:480px){.brandsub{display:none;border-left:0}}

/* ---- hero (home) ---- */
.hero{padding:96px 0 56px;text-align:center;border-bottom:1px solid var(--sand2);background:
  radial-gradient(900px 480px at 78% -10%,rgba(233,116,42,.18),transparent 60%),
  radial-gradient(700px 480px at 0% 110%,rgba(31,91,96,.14),transparent 55%)}
.pre{display:inline-block;font-family:var(--font);font-size:12.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--orange);font-weight:700;margin-bottom:18px}
.hero h1{font-size:clamp(44px,11vw,128px);color:var(--teal-d);line-height:.98}
.hero h1 i{color:var(--orange);font-style:italic}
.hero .dek{margin:30px auto 0;max-width:62ch;font-family:var(--font);font-style:italic;font-size:21px;color:var(--mut);line-height:1.5}
/* Quiet label introducing the hero credit line. Deliberately lighter than .pre so
   the hero keeps one orange eyebrow at the top rather than two competing ones. */
.bylabel{margin-top:30px;font-family:var(--font);font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--mut);opacity:.75}
.byline{margin-top:9px;font-family:var(--font);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--mut);font-weight:600;line-height:1.7}
.byline b{color:var(--teal-d);font-weight:700}
.byline .bsep{display:inline-block;margin:0 10px;color:var(--orange);font-weight:700}
@media(max-width:560px){.byline .bsep{display:block;margin:6px 0;height:0;overflow:hidden}}
.hbtns{margin-top:38px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:13.5px;padding:16px 28px;border-radius:999px;text-decoration:none;border:2px solid transparent;font-family:var(--font);cursor:pointer}
.btn.p{background:var(--orange);color:#fff;box-shadow:0 14px 30px -16px rgba(185,83,28,.7)}
.btn.p:hover{background:var(--rust)}
.btn.o{border-color:var(--teal-d);color:var(--teal-d)}
.btn.o:hover{background:var(--teal-d);color:#fff}
.btn svg{width:16px;height:16px}
@media(max-width:720px){
  .hero{padding:60px 0 44px}
  .pre{font-size:11px;letter-spacing:.24em;margin-bottom:14px}
  .hero .dek{font-size:17px;margin-top:22px;line-height:1.45}
  .bylabel{font-size:10px;letter-spacing:.16em;margin-top:22px}
  .byline{font-size:10.5px;letter-spacing:.14em;margin-top:7px}
  .hbtns{margin-top:30px;gap:10px}
  .btn{font-size:12.5px;padding:13px 22px}
}

/* ---- page hero (interior pages) ---- */
.phero{padding:72px 0 52px;border-bottom:1px solid var(--sand2);background:
  radial-gradient(820px 420px at 88% -20%,rgba(233,116,42,.14),transparent 60%)}
.phero .pre{margin-bottom:14px}
.phero h1{font-size:clamp(38px,7.5vw,84px);color:var(--teal-d);line-height:1.02;max-width:16ch}
.phero .dek{margin-top:22px;max-width:60ch;font-family:var(--font);font-style:italic;font-size:19px;color:var(--mut);line-height:1.5}
@media(max-width:720px){.phero{padding:52px 0 40px}.phero .dek{font-size:16.5px;margin-top:16px}}

/* ---- stats band (animated) ---- */
.strip{background:var(--cocoa-d);color:#fff;position:relative;overflow:hidden}
.strip:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:64px 64px;opacity:.6;pointer-events:none}
.strip .wrap{display:grid;grid-template-columns:repeat(4,1fr);padding:0;position:relative;z-index:1}
.strip div{padding:46px 30px;border-right:1px solid rgba(255,255,255,.08)}
.strip div:last-child{border-right:0}
.strip b{display:block;font-family:var(--font);font-size:58px;font-weight:800;color:var(--orange);letter-spacing:-.03em;line-height:1}
.strip span{display:block;margin-top:10px;font-size:13px;color:#cbbfa9;font-weight:500;line-height:1.4}
@media(max-width:860px){.strip .wrap{grid-template-columns:1fr 1fr}.strip div{padding:34px 22px;border-bottom:1px solid rgba(255,255,255,.08)}.strip div:nth-child(2){border-right:0}.strip div:nth-last-child(-n+2){border-bottom:0}.strip b{font-size:46px}}
@media(max-width:480px){.strip .wrap{grid-template-columns:1fr}.strip div{border-right:0;padding:28px 20px}.strip div:last-child{border-bottom:0}.strip b{font-size:42px}}

/* ---- sections ---- */
section{padding:96px 0}
.kick{display:inline-block;font-family:var(--font);font-size:13px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--orange);margin-bottom:16px}
.sec-h{font-size:clamp(30px,5.6vw,68px);color:var(--teal-d);max-width:18ch;line-height:1.06}
.sub{color:var(--mut);font-size:18px;margin-top:18px;max-width:60ch}
@media(max-width:720px){section{padding:64px 0}.kick{font-size:11.5px;letter-spacing:.18em;margin-bottom:12px}.sub{font-size:16px;margin-top:14px}}

/* ---- home: explore cards ---- */
.intro-sec p{font-family:var(--font);font-size:20px;line-height:1.6;color:#3d3528;max-width:72ch}
@media(max-width:720px){.intro-sec p{font-size:17.5px}}
.exgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:50px}
.excard{background:#fff;border:1px solid var(--sand2);border-radius:22px;padding:36px 34px;text-decoration:none;color:inherit;display:flex;flex-direction:column;box-shadow:0 18px 40px -30px rgba(58,42,28,.4);transition:transform .22s,border-color .22s,box-shadow .22s}
.excard:hover{transform:translateY(-6px);border-color:var(--orange);box-shadow:0 26px 50px -30px rgba(58,42,28,.5)}
.excard .ic{width:56px;height:56px;border-radius:14px;background:var(--teal-d);color:#fff;display:grid;place-items:center;margin-bottom:22px}
.excard .ic svg{width:28px;height:28px}
.excard .en{font-family:var(--font);font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--orange)}
.excard h3{font-size:26px;color:var(--teal-d);margin:8px 0 12px}
.excard p{font-size:15.5px;color:#4a4234;flex:1}
.excard .go{margin-top:20px;display:inline-flex;align-items:center;gap:8px;font-family:var(--font);font-weight:700;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--rust)}
.excard .go svg{width:16px;height:16px}
@media(max-width:720px){.exgrid{grid-template-columns:1fr;gap:16px;margin-top:36px}.excard{padding:30px 26px}}

/* ---- home: most recent work feature ---- */
.feature{display:grid;grid-template-columns:1.4fr .9fr;gap:0;margin-top:44px;background:#fff;border:1px solid var(--sand2);border-radius:24px;overflow:hidden;text-decoration:none;color:inherit;box-shadow:0 26px 60px -40px rgba(58,42,28,.55);transition:transform .22s,box-shadow .22s}
.feature:hover{transform:translateY(-5px);box-shadow:0 34px 70px -40px rgba(58,42,28,.6)}
.feature .fx-body{padding:46px 44px}
.ftag{display:inline-block;font-family:var(--font);font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:var(--orange);padding:6px 13px;border-radius:999px}
.feature h3{font-size:clamp(26px,3.2vw,38px);color:var(--teal-d);margin:18px 0 14px;line-height:1.12}
.feature p{font-size:16.5px;color:#4a4234;max-width:52ch}
.feature .go{margin-top:24px;display:inline-flex;align-items:center;gap:8px;font-family:var(--font);font-weight:700;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--rust)}
.feature .go svg{width:16px;height:16px}
.feature .fx-side{background:linear-gradient(160deg,var(--teal-d),var(--teal-x));color:#fff;padding:36px 34px;display:flex;flex-direction:column;justify-content:center;gap:26px}
.feature .fx-side .fs{}
.feature .fx-cover{display:block;width:100%;max-width:330px;margin:0 auto;height:auto;border-radius:8px;box-shadow:0 18px 44px -18px rgba(0,0,0,.55);transition:transform .22s}
.feature:hover .fx-cover{transform:scale(1.025)}
.feature .fx-side b{display:block;font-family:var(--font);font-size:46px;font-weight:800;color:var(--orange-s);line-height:1}
.feature .fx-side span{display:block;margin-top:6px;font-size:13px;color:#cfe0dd;line-height:1.4}
@media(max-width:860px){.feature{grid-template-columns:1fr;margin-top:34px}.feature .fx-body{padding:34px 28px}.feature .fx-side{flex-direction:row;flex-wrap:wrap;gap:22px 34px;padding:30px 28px}.feature .fx-side b{font-size:38px}}

/* ---- home: areas-of-focus tiles (icon above) ---- */
.aoi{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;margin-top:46px}
.aotile{background:#fff;border:1px solid var(--sand2);border-radius:20px;padding:32px 22px;text-align:center;text-decoration:none;color:inherit;display:flex;flex-direction:column;align-items:center;box-shadow:0 16px 36px -30px rgba(58,42,28,.4);transition:transform .22s,border-color .22s,box-shadow .22s}
.aotile:hover{transform:translateY(-6px);border-color:var(--orange);box-shadow:0 24px 46px -30px rgba(58,42,28,.5)}
.aotile .ic{width:64px;height:64px;border-radius:16px;background:var(--teal-d);color:#fff;display:grid;place-items:center;margin-bottom:20px;transition:background .22s}
.aotile:hover .ic{background:var(--orange)}
.aotile .ic svg{width:32px;height:32px}
.aotile h3{font-family:var(--font);font-size:15px;font-weight:800;letter-spacing:.02em;color:var(--teal-d);line-height:1.25}
.aotile p{font-size:13px;color:var(--mut);margin-top:10px;line-height:1.45}
@media(max-width:1080px){.aoi{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.aoi{grid-template-columns:1fr 1fr;gap:14px;margin-top:34px}.aotile{padding:26px 16px}.aotile .ic{width:56px;height:56px}}
@media(max-width:420px){.aoi{grid-template-columns:1fr}}

/* ---- areas of interest (blog-style listing) ---- */
.areablock{padding:52px 0;border-top:1px solid var(--sand2)}
.areablock:first-of-type{border-top:0;padding-top:14px}
.areahead{display:grid;grid-template-columns:72px 1fr;gap:22px;align-items:start;margin-bottom:26px}
.areahead .ic{width:72px;height:72px;border-radius:18px;background:var(--teal-d);color:#fff;display:grid;place-items:center}
.areahead .ic svg{width:36px;height:36px}
.areahead h2{font-size:clamp(28px,4.4vw,44px);color:var(--teal-d);line-height:1.05}
.areahead p{color:var(--mut);font-size:16.5px;margin-top:8px;max-width:64ch}
.repcard{display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center;background:#fff;border:1px solid var(--sand2);border-radius:20px;border-left:6px solid var(--orange);padding:30px 34px;text-decoration:none;color:inherit;box-shadow:0 16px 40px -32px rgba(58,42,28,.45);transition:transform .2s,border-color .2s,box-shadow .2s}
.repcard:hover{transform:translateY(-4px);box-shadow:0 24px 50px -32px rgba(58,42,28,.55)}
.repcard .meta{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.repcard .meta:empty{display:none}
.repcard .rdate{font-family:var(--font);font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--mut)}
.repcard .rnew{font-family:var(--font);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--orange);padding:4px 10px;border-radius:999px}
.repcard h3{font-size:24px;color:var(--teal-d);line-height:1.18;margin-bottom:10px}
.repcard p{font-size:15.5px;color:#4a4234;max-width:70ch}
.repcard .go{display:inline-flex;align-items:center;gap:9px;white-space:nowrap;font-family:var(--font);font-weight:700;font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:var(--teal-d);padding:14px 20px;border-radius:999px;transition:background .2s}
.repcard:hover .go{background:var(--orange)}
.repcard .go svg{width:15px;height:15px}
@media(max-width:760px){.areahead{grid-template-columns:56px 1fr;gap:16px}.areahead .ic{width:56px;height:56px}.areahead .ic svg{width:28px;height:28px}.repcard{grid-template-columns:1fr;gap:18px;padding:26px 24px}.repcard .go{justify-content:center}}

/* ---- report detail: "by the numbers" stat callouts ---- */
.sgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:44px}
.scard{background:#fff;border:1px solid var(--sand2);border-radius:16px;padding:28px 26px;border-top:5px solid var(--orange);box-shadow:0 16px 36px -30px rgba(58,42,28,.4)}
.scard .sval{font-family:var(--font);font-size:clamp(38px,5vw,52px);font-weight:800;color:var(--orange);letter-spacing:-.02em;line-height:1}
.scard .slab{font-size:14.5px;color:#4a4234;margin-top:12px;line-height:1.5}
.scard .bar{margin-top:18px}
@media(max-width:900px){.sgrid{grid-template-columns:1fr 1fr;gap:16px;margin-top:32px}}
@media(max-width:560px){.sgrid{grid-template-columns:1fr}}
/* big single pull-stat highlight */
.pullstat{margin:44px 0 6px;background:linear-gradient(160deg,var(--teal-d),var(--teal-x));color:#fff;border-radius:22px;padding:44px 46px;display:grid;grid-template-columns:auto 1fr;gap:36px;align-items:center}
.pullstat b{font-family:var(--font);font-size:clamp(56px,10vw,104px);font-weight:800;color:var(--orange-s);line-height:.9;letter-spacing:-.03em}
.pullstat span{font-size:19px;color:#eef4f2;line-height:1.5;max-width:40ch}
@media(max-width:640px){.pullstat{grid-template-columns:1fr;gap:14px;padding:34px 28px}.pullstat span{font-size:17px}}

/* ---- report detail (report.html) ---- */
.samplebanner{background:#fff5e9;border:1px solid #f4d9b6;border-left:5px solid var(--orange);border-radius:12px;padding:16px 22px;margin-top:30px;font-size:14.5px;color:#7a5a2c}
.samplebanner b{color:var(--rust)}
.prose{max-width:74ch}
.prose h3{font-size:26px;color:var(--teal-d);margin:44px 0 12px;line-height:1.15}
.prose p{font-size:17px;color:#3d3528;margin-top:14px}
.prose p:first-of-type{margin-top:0}
.backlink{display:inline-flex;align-items:center;gap:8px;margin-top:8px;font-family:var(--font);font-weight:700;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--rust);text-decoration:none}

/* ---- lenses (about) ---- */
.lgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:44px}
.lcard{background:#fff;border:1px solid var(--sand2);border-radius:20px;padding:34px 30px;border-top:6px solid var(--teal-d)}
.lcard .ln{font-family:var(--font);font-size:44px;color:#d8ceba;font-weight:800;line-height:1}
.lcard h3{font-size:22px;color:var(--teal-d);margin:12px 0 10px}
.lcard p{font-size:15.5px;color:#4a4234}
@media(max-width:860px){.lgrid{grid-template-columns:1fr;gap:16px;margin-top:32px}}

/* ---- drivers (areas of interest) ---- */
.dgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:50px}
.dcard{background:#fff;border-radius:22px;padding:40px 34px;box-shadow:0 18px 40px -28px rgba(58,42,28,.4);border:1px solid var(--sand2);border-bottom:8px solid var(--orange)}
.dcard .ic{width:60px;height:60px;border-radius:14px;background:var(--teal-d);color:#fff;display:grid;place-items:center;margin-bottom:22px}
.dcard .ic svg{width:30px;height:30px}
.dcard h3{font-family:var(--font);font-size:18px;color:var(--teal-d);text-transform:uppercase;letter-spacing:.04em;font-weight:800}
.dcard .ld{font-family:var(--font);font-weight:700;color:var(--orange);font-size:14.5px;margin:10px 0 18px;letter-spacing:.01em}
.dcard ul{list-style:none}
.dcard li{font-size:15px;padding:13px 0 13px 24px;position:relative;border-top:1px solid var(--sand2);color:#4a4234}
.dcard li:first-child{border-top:0}
.dcard li:before{content:"";position:absolute;left:0;top:19px;width:11px;height:11px;background:var(--orange);transform:rotate(45deg)}
@media(max-width:960px){.dgrid{grid-template-columns:1fr;margin-top:36px;gap:18px}.dcard{padding:32px 26px}}

/* ---- findings (research) ---- */
.fitem{display:grid;grid-template-columns:90px 1fr 320px;gap:32px;padding:42px 0;border-top:1px solid #d8ceba;align-items:start}
.fitem:first-child{border-top:0;padding-top:32px}
.fitem .fi{font-family:var(--font);font-size:44px;color:#bdb19a;font-weight:800;line-height:1}
.fitem h3{font-size:27px;color:var(--teal-d);margin-bottom:14px;line-height:1.18}
.fitem p{font-size:16.5px;color:#3d3528}
.fmeter{background:#fff;border:1px solid var(--sand2);border-radius:14px;padding:24px}
.fmeter .big{font-family:var(--font);font-size:54px;font-weight:800;color:var(--orange);letter-spacing:-.03em;line-height:1}
.fmeter .lab{font-size:13px;color:var(--mut);margin-top:8px;line-height:1.4}
.bar{height:8px;background:var(--sand);border-radius:6px;margin-top:18px;overflow:hidden}
.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--orange),var(--teal));width:0;transition:width 1.2s ease}
@media(max-width:960px){.fitem{grid-template-columns:60px 1fr;gap:18px;padding:32px 0}.fitem .fmeter{grid-column:1 / -1;margin-top:6px}.fitem .fi{font-size:32px}.fitem h3{font-size:23px}.fitem p{font-size:15.5px}.fmeter{padding:20px}.fmeter .big{font-size:44px}}
@media(max-width:480px){.fitem{grid-template-columns:1fr;gap:10px}.fitem .fi{font-size:28px}}
/* report: intro lead + interleaved section meters */
.lead-intro{font-family:var(--font);font-style:italic;font-size:20px;color:#3d3528;max-width:72ch;line-height:1.6}
.fmeters{display:grid;gap:14px}
.fitem.wide{grid-template-columns:90px 1fr}
@media(max-width:960px){.fitem.wide{grid-template-columns:60px 1fr}.fitem .fmeters{grid-column:1 / -1;margin-top:6px}}
@media(max-width:480px){.fitem.wide{grid-template-columns:1fr}}

/* ---- figures (research charts) ---- */
.figsec{background:var(--sand2)}
.figgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;margin-top:46px}
.figcard{background:#fff;border:1px solid var(--sand2);border-radius:18px;padding:26px 26px 24px}
.figcard h4{font-size:20px;color:var(--teal-d);margin-bottom:6px;line-height:1.2}
.figcard .cap{font-size:14px;color:var(--mut);margin-bottom:14px}
.figcard .src{font-size:11.5px;color:#9c927e;margin-top:14px;font-style:italic}
.fp-figmedia{width:100%}
@media(max-width:860px){.figgrid{grid-template-columns:1fr;gap:18px;margin-top:32px}}

/* ---- quotes ---- */
.qsec{background:linear-gradient(165deg,var(--teal-d),var(--teal-x));color:#fff}
.qsec .kick{color:var(--orange-s)}
.qsec .sec-h{color:#fff}
.qg{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:46px}
.qq{background:rgba(255,255,255,.06);border-radius:22px;padding:34px;border:1px solid rgba(255,255,255,.1);border-left:5px solid var(--orange)}
/* Decorative open-quote. Georgia gave this mark enough weight on its own; Andes
   Book renders a hairline tick, so it's set ExtraBold to keep the same presence. */
.qq .m{font-family:var(--font);font-weight:800;font-size:54px;color:var(--orange-s);line-height:.2;display:block;margin-bottom:18px}
.qq p{font-family:var(--font);font-style:italic;font-size:17.5px;color:#eef4f2;line-height:1.5}
.qq cite{display:block;margin-top:18px;font-style:normal;font-family:var(--font);font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--orange-s)}
@media(max-width:960px){.qg{grid-template-columns:1fr;gap:16px;margin-top:32px}.qq{padding:28px}.qq p{font-size:16.5px}}

/* ---- methodology (about) ---- */
.mgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:30px}
.mc{background:#fff;border-radius:18px;padding:32px;border:1px solid var(--sand2);border-top:6px solid var(--teal-d)}
.mc h4{font-family:var(--font);font-size:16px;color:var(--teal-d);text-transform:uppercase;letter-spacing:.04em;font-weight:800}
.mc p{font-size:15px;color:#4a4234;margin-top:10px}
.phh{font-family:var(--font);font-size:14px;color:var(--rust);font-weight:800;text-transform:uppercase;letter-spacing:.14em;margin:46px 0 8px}
.mbul{list-style:none;display:grid;gap:12px;margin-top:18px}
.mbul li{background:#fff;border-radius:14px;padding:18px 22px;font-size:15.5px;color:#3d3528;border:1px solid var(--sand2);border-left:5px solid var(--orange)}
@media(max-width:960px){.mgrid{grid-template-columns:1fr;gap:14px;margin-top:24px}.mc{padding:26px}.phh{font-size:13px;margin:36px 0 6px}}
@media(max-width:480px){.mbul li{padding:16px 18px;font-size:14.5px}}

/* ---- people: contact cards + partners ---- */
.cgrid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:start;margin-top:36px}
.cintro p{font-size:17px;color:#3d3528;max-width:48ch}
.cintro .pt{margin-top:18px;font-family:var(--font);font-style:italic;color:var(--teal-d);font-size:17px}
.ccards{display:grid;gap:16px}
.cc{background:#fff;border-radius:18px;padding:26px 28px;border:1px solid var(--sand2);display:grid;grid-template-columns:54px 1fr;gap:18px;align-items:center;box-shadow:0 14px 28px -22px rgba(58,42,28,.45);text-decoration:none;color:inherit;transition:transform .2s,border-color .2s}
.cc:hover{transform:translateY(-3px);border-color:var(--orange)}
.cc .av{width:54px;height:54px;border-radius:50%;background:linear-gradient(160deg,var(--teal),var(--teal-d));color:#fff;display:grid;place-items:center;font-family:var(--font);font-weight:700;font-size:22px;letter-spacing:.02em}
.cc h4{font-family:var(--font);color:var(--teal-d);font-size:20px;margin-bottom:2px}
.cc .ro{font-family:var(--font);font-size:12px;color:var(--mut);letter-spacing:.06em;text-transform:uppercase;font-weight:600}
.cc>div{min-width:0}
.cc .em{font-family:var(--font);font-size:14.5px;color:var(--rust);margin-top:6px;font-weight:600;overflow-wrap:anywhere;display:flex;align-items:center;gap:6px}
.cc .em svg{width:14px;height:14px;flex-shrink:0}
@media(max-width:960px){.cgrid{grid-template-columns:1fr;gap:30px;margin-top:28px}}
@media(max-width:480px){.cc{padding:22px 20px;grid-template-columns:46px 1fr;gap:14px}.cc .av{width:46px;height:46px;font-size:18px}.cc h4{font-size:18px}.cc .em{font-size:13.5px}}
.psec{background:var(--sand2)}
.plist2{display:flex;flex-wrap:wrap;gap:14px;margin-top:36px}
.plist2 span{background:#fff;border:1px solid var(--sand2);padding:16px 24px;border-radius:999px;font-size:15.5px;font-weight:500;color:#3d3528;border-left:5px solid var(--orange)}
@media(max-width:720px){.plist2 span{font-size:14px;padding:13px 18px}}

/* ---- footer ---- */
footer{background:var(--cocoa);color:#cbbfa9;padding:60px 0 40px}
footer .kick{color:var(--orange-s)}
.plist{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.plist span{background:rgba(255,255,255,.07);padding:10px 16px;border-radius:999px;font-size:13px;font-weight:500;color:#e3d8c2}
.fbar{display:flex;justify-content:space-between;align-items:center;margin-top:42px;border-top:1px solid rgba(255,255,255,.12);padding-top:24px;font-size:13px;flex-wrap:wrap;gap:14px}
.fbar a.back{color:#fff;text-decoration:none;font-weight:700;text-transform:uppercase;letter-spacing:.1em;border:1px solid rgba(255,255,255,.3);padding:10px 18px;border-radius:999px;font-size:12px}
.cplc-link{color:#e3d8c2;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.22);transition:color .2s,border-color .2s}
.cplc-link:hover{color:#fff;border-bottom-color:var(--orange-s)}
@media(max-width:720px){footer{padding:48px 0 32px}.plist span{font-size:12px;padding:8px 14px}}

/* ---- download gate modal (built by download-gate.js) ----
   Gates report PDFs behind a short form: name / email / industry.
   Spec from the 4/13/2026 registration-required-content meeting. */
.fp-dlgate{position:fixed;inset:0;z-index:60;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(19,40,43,.55);backdrop-filter:blur(3px)}
.fp-dlgate.open{display:flex}
.fp-dlgate-card{position:relative;width:min(480px,100%);max-height:90vh;overflow-y:auto;background:var(--sand);border:1px solid var(--line);border-radius:20px;padding:38px 36px;box-shadow:0 40px 90px -30px rgba(0,0,0,.6)}
.fp-dlgate-card h3{font-family:var(--font);font-size:24px;color:var(--teal-d);line-height:1.2;margin:10px 0 12px}
/* Tori's legal verbiage — fine print between the report title and the fields. */
.fp-dlgate-legal{font-size:11.5px;line-height:1.5;color:var(--mut);opacity:.85;margin:14px 0 22px}
.fp-req{color:#c9342b;font-weight:700}
.fp-dlgate-card form{display:grid;gap:14px}
.fp-dlgate-card label{display:block;font-family:var(--font);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--cocoa)}
.fp-dlgate-card input[type=text],.fp-dlgate-card input[type=email],.fp-dlgate-card select{display:block;width:100%;margin-top:6px;padding:12px 14px;font:inherit;font-size:15px;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:10px}
.fp-dlgate-card input:focus,.fp-dlgate-card select:focus{outline:2px solid var(--teal);outline-offset:1px}
/* Flagged once the visitor leaves a required field empty or invalid. */
.fp-dlgate-card input.bad,.fp-dlgate-card select.bad{border-color:#c9342b;background:#fdf6f5}
.fp-dlgate-card input.bad:focus,.fp-dlgate-card select.bad:focus{outline-color:#c9342b}
.fp-hint{display:block;margin-top:6px;font-size:11.5px;font-weight:600;letter-spacing:0;text-transform:none;color:#c9342b}
.fp-hint:empty{display:none}
.fp-dlgate-card label[hidden]{display:none}
.fp-dlgate-opt{display:flex!important;align-items:center;gap:9px;font-weight:400!important;text-transform:none!important;letter-spacing:0!important;font-size:13.5px!important;color:var(--ink)!important}
.fp-dlgate-opt input{flex:0 0 auto;width:16px;height:16px;accent-color:var(--teal)}
.fp-dlgate-err{min-height:18px;font-size:13px;font-weight:600;color:#a33418}
.fp-dlgate-card .btn{justify-content:center;width:100%;cursor:pointer;border:0;font-size:13px;transition:opacity .18s,background .18s}
/* Locked until every required field is filled in. */
.fp-dlgate-card .btn:disabled{background:var(--mut);opacity:.5;cursor:not-allowed;box-shadow:none}
.fp-dlgate-x{position:absolute;top:14px;right:16px;width:34px;height:34px;border:0;border-radius:50%;background:transparent;font-size:24px;line-height:1;color:var(--mut);cursor:pointer}
.fp-dlgate-x:hover{background:var(--sand2);color:var(--cocoa)}
