/* Dream Menu brand layer. Loaded last on every page.
   Taken from Dream Menu's own Canva work: black and white editorial, the navy cloche-and-cloud badge,
   League Spartan headings, black pill and block buttons, black footer band with the badge, a gold highlight. */
@font-face{font-family:"League Spartan";font-weight:600;font-display:swap;src:url(/fonts/league-spartan-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"League Spartan";font-weight:700;font-display:swap;src:url(/fonts/league-spartan-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"League Spartan";font-weight:800;font-display:swap;src:url(/fonts/league-spartan-latin-800-normal.woff2) format("woff2")}
@font-face{font-family:"Public Sans";font-weight:400;font-display:swap;src:url(/fonts/public-sans-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Public Sans";font-weight:600;font-display:swap;src:url(/fonts/public-sans-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Public Sans";font-weight:700;font-display:swap;src:url(/fonts/public-sans-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Public Sans";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/public-sans-latin-400-italic.woff2) format("woff2")}

:root{
  --paper:#ffffff; --card:#ffffff; --panel:#f3f3f1; --ink:#0b0b0b; --muted:#5b5b5f; --rule:#e1e1df; --rule-strong:#9b9b9f;
  --navy:#1c2152; --gold:#debd1a; --dunns:#d41f26;
  --accent:#1c2152; --accent-soft:#e7e9f3; --good:#1f6b3a; --warn:#b3261e;
  --sea:#eef0f4; --land:#ffffff; --coast:#b9bcc8; --pin:#0b0b0b; --pin-ring:#ffffff;
  --area:#1c2152; --area-fill:rgba(28,33,82,.12);
  --display:"League Spartan","Arial Black","Helvetica Neue",Arial,sans-serif;
  --body:"Public Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --mono:"Public Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --aw-ring:#ffffff;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --paper:#0c0c0e; --card:#151518; --panel:#1c1c20; --ink:#f3f3f1; --muted:#a9a9b0; --rule:#2b2b31; --rule-strong:#5f5f68;
  --navy:#aab3ee; --gold:#e8c843; --accent:#aab3ee; --accent-soft:#24284d; --good:#7fc28f; --warn:#ff8a80;
  --sea:#0a0b10; --land:#1b1c22; --coast:#3a3d4c; --pin:#f3f3f1; --pin-ring:#0c0c0e; --area:#aab3ee; --area-fill:rgba(170,179,238,.16); --aw-ring:#0c0c0e; color-scheme:dark}}
:root[data-theme="dark"]{
  --paper:#0c0c0e; --card:#151518; --panel:#1c1c20; --ink:#f3f3f1; --muted:#a9a9b0; --rule:#2b2b31; --rule-strong:#5f5f68;
  --navy:#aab3ee; --gold:#e8c843; --accent:#aab3ee; --accent-soft:#24284d; --good:#7fc28f; --warn:#ff8a80;
  --sea:#0a0b10; --land:#1b1c22; --coast:#3a3d4c; --pin:#f3f3f1; --pin-ring:#0c0c0e; --area:#aab3ee; --area-fill:rgba(170,179,238,.16); --aw-ring:#0c0c0e; color-scheme:dark}

body{background:var(--paper);color:var(--ink);font-family:var(--body)}

/* header: badge + wordmark, as on the Instagram cards */
.top{background:var(--paper);border-bottom:2px solid var(--ink)}
.mark{display:inline-flex;align-items:center;gap:10px;font:800 24px/1 var(--display)!important;letter-spacing:-.01em;text-transform:uppercase;text-decoration:none;color:var(--ink)}
.mark img{width:40px;height:40px;border-radius:50%;display:block;flex:none}
.mark span{color:inherit!important}
.nav a{font:600 14px/1.2 var(--body);color:var(--muted)}
.nav a[aria-current="page"],.nav a:hover{color:var(--ink)}
.nav a[aria-current="page"]{box-shadow:inset 0 -3px 0 var(--gold)}

/* type */
h1,.hero h1{font-family:var(--display)!important;font-weight:800!important;font-size:clamp(32px,5.4vw,58px)!important;line-height:1!important;letter-spacing:-.015em!important;text-transform:uppercase}
h1 em,.hero h1 em{color:var(--navy)}
h2,.panel h2{font-family:var(--display)!important;font-weight:800!important;letter-spacing:-.01em!important;line-height:1.02!important;text-transform:uppercase}
h2{font-size:clamp(24px,3.2vw,34px)!important}
.panel h2{font-size:clamp(26px,3.6vw,38px)!important}
h3{font-family:var(--display);font-weight:700;font-size:19px;letter-spacing:-.005em}
.eyebrow,section.blk h3{font-family:var(--display)!important;font-weight:700!important;letter-spacing:.1em!important;color:var(--ink)!important}
.eyebrow::before{content:"";display:inline-block;width:22px;height:3px;background:var(--gold);vertical-align:3px;margin-right:9px}
.lede{color:var(--muted)}

/* cards and stat boxes: black blocks with white figures, as in the Menu-festo */
.card{border:1.5px solid var(--ink);border-radius:14px;background:var(--card)}
.facts div{background:var(--ink);color:var(--paper);padding:10px 14px;border-radius:4px;font-family:var(--display)}
.facts b{font:800 22px/1 var(--display);display:block}
.facts span{color:var(--paper)!important;opacity:.82;text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:600}
.card.stat b{font-family:var(--display)}

/* buttons: black block (LEARN MORE) and pill outline (name tag) */
.cta,a.cta,button.cta{background:var(--ink)!important;color:var(--paper)!important;border:2px solid var(--ink)!important;border-radius:4px;font:700 14px/1 var(--display);letter-spacing:.08em;text-transform:uppercase;padding:13px 20px;text-decoration:none;display:inline-block}
.cta:hover{background:var(--navy)!important;border-color:var(--navy)!important}
.pill{display:inline-block;border:3px solid var(--ink);border-radius:999px;padding:8px 22px;font:800 18px/1 var(--display);text-decoration:none;color:var(--ink);background:var(--card)}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.chip{border-radius:999px}

/* tables */
th{font-family:var(--display);letter-spacing:.08em}
thead th{background:var(--ink)!important;color:var(--paper)!important}

/* charts in brand colours */
.bars .bt i,.qchart i{background:var(--navy)}
.s1{background:var(--ink)}.s2{background:var(--navy)}.s3{background:var(--rule-strong)}.s4{background:var(--gold)}
.spark{color:var(--navy)}
.quote{border-left-color:var(--gold)!important}
.card.quote{border-left:4px solid var(--gold)}

/* footer: black band with the badge, as on the interview cards */
.foot{background:#0b0b0b;color:#f3f3f1;border-top:0;margin-top:40px}
.foot a{color:#f3f3f1}
.foot .wrap{color:#cfcfd3}
.footband{display:flex;flex-direction:column;align-items:center;gap:12px;padding:26px 16px 6px;text-align:center}
.footband img{width:64px;height:64px;border-radius:50%;display:block;box-shadow:0 0 0 3px #0b0b0b,0 0 0 4px #3a3a3f}
.footband b{font:800 20px/1 var(--display);letter-spacing:-.01em;text-transform:uppercase}

/* sponsor and logo blocks */
.sponsor{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.sponsor .lab{display:inline-block;background:var(--ink);color:var(--paper);font:700 12px/1 var(--display);letter-spacing:.1em;text-transform:uppercase;padding:7px 10px;border-radius:999px}
.sponsor img.dunns{width:52px;height:52px;display:block;border-radius:2px}
.logo-hero{width:min(220px,48vw);height:auto;border-radius:50%;display:block}
.sticker{width:min(240px,60vw);height:auto;display:block;border-radius:50%}
.split-hero{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center}
@media(max-width:640px){.split-hero{grid-template-columns:1fr}.split-hero .logo-hero{width:120px}}

/* street detail tiles on the map, greyed to sit with the black and white brand */
.dm-tiles{filter:grayscale(1) contrast(1.02)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .dm-tiles{filter:grayscale(1) invert(1) brightness(.85) contrast(.9)}}
:root[data-theme="dark"] .dm-tiles{filter:grayscale(1) invert(1) brightness(.85) contrast(.9)}

@media print{.foot{display:none}.top{border-bottom:1px solid #000}}
.facts b{color:var(--paper)!important}
/* keep the sticky market bar above the map's zoom buttons when scrolling */
.bar{z-index:1100!important}
body::before{z-index:1150!important}

/* ---------- report web edition ---------- */
.navyband{background:var(--navy-band,#1c2152);color:#f4f3ee;border-bottom:4px solid var(--gold)}
.navyband .wrap{padding-top:40px;padding-bottom:36px}
.navyband h1{color:#fff}
.navyband h1 em{color:var(--gold)!important}
.navyband .lede{color:#d9dbe8;max-width:70ch}
.navyband .eyebrow{color:#fff!important}
.navyband .facts{margin-top:18px}
.navyband .facts div{background:#fff;color:#1c2152}
.navyband .facts b{color:#1c2152!important}
.navyband .facts span{color:#1c2152!important}
:root[data-theme="dark"] .navyband{--navy-band:#141842}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .navyband{--navy-band:#141842}}
.subnav{border-bottom:1px solid var(--rule);background:var(--paper);position:sticky;top:0;z-index:50}
.subnav .wrap{display:flex;gap:4px 18px;overflow-x:auto;scrollbar-width:none;padding-top:10px;padding-bottom:10px;white-space:nowrap}
.subnav a{font:600 13.5px/1.2 var(--body);text-decoration:none;color:var(--muted);padding:4px 0}
.subnav a[aria-current="page"]{color:var(--ink);box-shadow:inset 0 -3px 0 var(--gold)}
.numbered{list-style:none;counter-reset:n;margin:0;padding:0;display:grid;gap:14px}
.numbered>li{counter-increment:n;display:grid;grid-template-columns:44px 1fr;column-gap:12px;align-items:start}
.numbered>li::before{content:counter(n);grid-row:span 2;width:40px;height:40px;border-radius:50%;background:var(--ink);color:var(--paper);display:grid;place-items:center;font:800 18px/1 var(--display)}
.numbered>li h3{margin:4px 0 2px}.numbered>li p{margin:0;color:var(--muted)}
.numbered.cols{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:18px 28px}
.grid.five{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr))}
.qcard{text-decoration:none;color:inherit;display:block;transition:transform .15s}
.qcard:hover{transform:translateY(-2px);border-color:var(--navy)}
.qcard .qn{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--gold);color:#0b0b0b;font:800 15px/1 var(--display);margin-bottom:8px}
.qcard p{color:var(--muted);margin:0}
ul.links{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:6px}
ul.links a{font-weight:600}
ul.links a::after{content:" →"}
.callout{margin-top:18px;border-left:5px solid var(--gold);background:var(--panel);padding:14px 18px;border-radius:0 10px 10px 0}
.split2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:24px;align-items:start}
@media(max-width:820px){.split2{grid-template-columns:1fr}}
.stars{color:var(--gold);letter-spacing:2px;white-space:nowrap;font-size:16px}.stars span{color:var(--rule)}
.source{font-size:12.5px;color:var(--muted);margin-top:16px;border-top:1px solid var(--rule);padding-top:10px}
.bars.diverge li{grid-template-columns:minmax(0,1.5fr) minmax(80px,1fr) auto}
.dv{position:relative;height:12px;background:linear-gradient(90deg,transparent calc(50% - 1px),var(--rule-strong) calc(50% - 1px),var(--rule-strong) calc(50% + 1px),transparent calc(50% + 1px))}
.dv i{position:absolute;top:1px;bottom:1px;border-radius:2px}
.dv i.pos{background:var(--navy)}.dv i.neg{background:var(--rule-strong)}
ul.check{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:8px}
ul.check label{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:start;cursor:pointer;font-size:15px}
ul.check input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--navy)}
ul.check input:checked+span{color:var(--muted);text-decoration:line-through}
.tool .fields{display:grid;gap:12px;margin-top:10px}
.tool label{display:grid;gap:5px;font-weight:600;font-size:14px}
.tool input{font:500 16px var(--body);padding:10px 12px;border:1.5px solid var(--rule-strong);border-radius:8px;background:var(--card);color:var(--ink);width:100%;box-sizing:border-box}
.tool input:focus{border-color:var(--navy);outline:none}
.result{margin-top:14px;padding:12px 14px;border-radius:8px;background:var(--panel);font-size:15px}
.result b{font:800 26px/1 var(--display);display:block;margin-bottom:4px}
.result.ok{background:#e4f1e8}.result.mid{background:#fbf3d0}.result.warn{background:#f9e0de}
.bandout{font-weight:400;font-size:13px;color:var(--muted)}
.bandout.ok{color:var(--good)}.bandout.warn{color:var(--warn)}
:root[data-theme="dark"] .result.ok{background:#16301f}:root[data-theme="dark"] .result.mid{background:#3a3214}:root[data-theme="dark"] .result.warn{background:#3d1a18}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .result.ok{background:#16301f}:root:not([data-theme="light"]) .result.mid{background:#3a3214}:root:not([data-theme="light"]) .result.warn{background:#3d1a18}}
.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:14px}
.steps li{border-top:4px solid var(--ink);padding-top:10px}
.steps li p{color:var(--muted);margin:4px 0 0}
blockquote.quote small{display:block;font:700 11px/1.4 var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:4px}
.footlinks{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;padding:4px 16px 14px;font-size:14px}
.footlinks a{color:#f3f3f1;text-decoration:none;opacity:.85}.footlinks a:hover{opacity:1;text-decoration:underline}
@media(max-width:640px){
  table.stack thead{display:none}
  table.stack,table.stack tbody,table.stack tr,table.stack td{display:block;width:100%}
  table.stack tr{border-bottom:1.5px solid var(--ink);padding:10px 12px}
  table.stack td{border:0!important;padding:3px 0!important;text-align:left!important}
  table.stack td:first-child{font-size:16px}
  table.stack td:not(:first-child)::before{content:attr(data-label);display:block;font:700 10.5px/1.4 var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
}
svg.lock{vertical-align:-1px;margin-left:3px;opacity:.75}
.callout.signin{display:flex;gap:16px 24px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:0}
.confidential{background:#0b0b0b;color:#f3f3f1;font-size:13.5px;border-bottom:3px solid var(--gold)}
.confidential .wrap{padding-top:9px;padding-bottom:9px}
.confidential a{color:#fff;font-weight:600}
.card.svc{display:flex;flex-direction:column}.card.svc .go{margin-top:auto}
td small{display:block;color:var(--muted);font-size:12px}
@media print{.confidential{background:none;color:#000;border:1px solid #000}}
