

:root{
  /* One blended palette. C's limestone paper and phase colours, A's deep water, B's reagent
     accents, D's ink and ochre — every component below is driven from this single set. */
  --limestone:#EEF0EB; --deck:#F5F7F3; --deck-blend:#E9EDE7; --chalk:#F7F8F5;
  --water:#0B4F58; --ink:#23302C; --muted:#4E5A57; --ink-muted:#4E5A57; --ink-soft:#5B6763;
  --verd:#1F6F63; --verdpale:#7FCFC0; --copper:#A4552B;
  --hair:#D3D8CF; --rule:#D3D8CF; --cell:#E7EDE9;
  --surface:#FFFFFF; --surface-sunk:#E7EDE9;
  --in-range:#1F6B4A; --caution:#E8A317; --out:#C42A47;
  --deep:#0E3B3E; --deep-wash:#E3EDEA;
  --ochre:#8A5A12; --ochre-wash:#F6EEDD; --ochre-bar:#C07C1E; --signal:#C07C1E;
  --p-open:#6FA8A0; --p-run:#1F6F63; --p-load:#A4552B; --p-close:#4E5A57; --p-dorm:#7F8FA0; --p-any:#0E2A28;
  --display:"Fraunces",Georgia,serif;
  --read:"Newsreader",Georgia,serif;
  --inst:"IBM Plex Sans",system-ui,sans-serif;
  --ui:"Public Sans",system-ui,sans-serif;
  --sans:"Public Sans",system-ui,sans-serif;
  --mono:"DM Mono",ui-monospace,SFMono-Regular,monospace;
}

*{box-sizing:border-box}
body{margin:0;background:var(--limestone);color:var(--ink);
  font:400 17px/1.65 var(--read);-webkit-font-smoothing:antialiased}
.pls-wrap{max-width:1180px;margin:0 auto;padding:0 24px;width:100%}
a{color:var(--verd)}
h1,h2,h3{margin:0}
/* masthead */
.hdr{background:var(--chalk);border-bottom:1px solid var(--hair);position:relative;z-index:20}
.hdr-in{height:74px;display:flex;align-items:center;gap:26px;padding-left:150px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--water)}
.glyph{width:22px;height:22px;border-radius:50%;flex:none;
  background:conic-gradient(var(--p-open) 0 20%,var(--p-run) 0 40%,var(--p-load) 0 60%,
    var(--p-close) 0 80%,var(--p-dorm) 0 100%);
  box-shadow:inset 0 0 0 6px var(--chalk),inset 0 0 0 7px var(--hair)}
.brand-name{font:700 20px/1 var(--display);letter-spacing:-.01em}
.hdr-nav{margin-left:auto;display:flex;gap:19px;flex-wrap:nowrap}
.hdr-nav a{font:500 14.5px/1 var(--ui);color:var(--ink);text-decoration:none;white-space:nowrap}
.hdr-nav a:hover{color:var(--verd)}
@media(max-width:1180px){.hdr-nav .more{display:none}}
@media(max-width:760px){.hdr-in{padding-left:0;height:auto;flex-wrap:wrap;gap:12px;padding-top:14px;padding-bottom:14px}
  .hdr-nav{margin-left:0;gap:14px;flex-wrap:wrap}}
/* photo hero, A's treatment */
.fhero{position:relative;overflow:hidden;min-height:clamp(360px,46vw,600px);
  display:flex;align-items:flex-end;background:var(--water)}
.fhero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 42%;z-index:0}
.fhero-band{position:relative;z-index:2;width:100%;padding-top:46px;
  background:linear-gradient(180deg,rgba(9,42,46,0) 0%,rgba(9,42,46,.30) 4%,
    rgba(9,42,46,.88) 15%,rgba(9,42,46,.965) 100%)}
.fhero .pls-wrap{padding-top:0;padding-bottom:38px}
.fhero .kick{font:500 12px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;
  color:#D9EDE8;margin:0 0 12px}
.fhero h1{font:600 clamp(30px,4.2vw,50px)/1.1 var(--display);color:#fff;letter-spacing:-.02em;max-width:20ch}
.fhero .sf{margin:14px 0 0;max-width:66ch;font-size:19px;line-height:1.55;color:#E7F2EF}
.fhero .chips{display:flex;flex-wrap:wrap;gap:9px;margin:20px 0 0;padding:0;list-style:none}
.fhero .chip{display:inline-block;background:var(--chalk);color:var(--water);
  font:600 14.5px/1 var(--ui);padding:10px 14px;text-decoration:none}
.fhero .chip:hover{background:#fff}
.fcap{background:#0A2A2E;color:#B9D2CE;margin:0;padding:11px 24px 15px}
.fcap span{display:block;max-width:1180px;margin:0 auto;font:400 12.5px/1.55 var(--mono)}
/* section furniture */
.sec{padding:48px 0 52px}
.sec-k{font:600 11.5px/1 var(--inst);letter-spacing:.13em;text-transform:uppercase;
  color:var(--copper);margin:0 0 10px}
.sec-t{font:600 clamp(24px,2.8vw,34px)/1.15 var(--display);color:var(--water);letter-spacing:-.01em}
.sec-l{margin:12px 0 0;max-width:74ch;color:var(--muted);font-size:17.5px}
/* clarity, A */
.clarity{background:var(--deck-blend);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:44px 0 48px}
.clarity-head{display:flex;flex-wrap:wrap;gap:8px 24px;align-items:baseline;justify-content:space-between;margin-bottom:18px}
.clarity-head p{font:500 12px/1 var(--mono);letter-spacing:.11em;text-transform:uppercase;color:var(--muted);margin:0}
.strip{display:grid;grid-template-columns:repeat(5,1fr);width:100%}
.strip i{display:block;height:clamp(62px,7vw,92px)}
.strip-labels{display:grid;grid-template-columns:repeat(5,1fr);width:100%}
.strip-labels div{padding:12px 12px 0 0}
.strip-labels b{display:block;font:600 14px/1.3 var(--inst);color:var(--water)}
.strip-labels span{display:block;font:400 14px/1.48 var(--read);color:var(--muted);margin-top:5px;hyphens:auto}
.strip-note{margin:20px 0 0;max-width:72ch;font-size:17px;color:var(--ink)}
.strip-note b{font-weight:600;color:var(--water)}
@media(max-width:700px){.strip,.strip-labels{grid-template-columns:repeat(2,1fr)}
  .strip i{height:54px}.strip i:nth-child(5),.strip-labels div:nth-child(5){grid-column:1/-1}
  .strip i:nth-child(5){height:42px}}
/* ads */
.adzone{padding:52px 0}
.ad{border:1px solid var(--hair);background:var(--chalk);padding:16px}
.ad-label{font:500 11px/1 var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin:0 0 12px}
.ad-box{border:1px dashed var(--hair);height:230px;display:flex;align-items:center;justify-content:center;
  color:var(--muted);font:400 14px/1 var(--mono);background:#fff}
/* categories */
.cats{background:var(--chalk);border-top:1px solid var(--hair)}
.catgrid{display:grid;gap:1px;background:var(--hair);border:1px solid var(--hair);margin-top:22px;
  grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr))}
.cat{background:var(--chalk);padding:19px 20px 21px;text-decoration:none;display:block}
.cat:hover{background:#fff}
.cat b{display:block;font:600 16px/1.3 var(--inst);color:var(--water)}
.cat span{display:block;margin-top:6px;font-size:15px;line-height:1.5;color:var(--muted)}
/* safety, D's stop band */
.stopband{background:var(--ink);color:var(--chalk);padding:44px 0 48px;border-top:6px solid var(--signal)}
.stopband h2{font:700 clamp(22px,2.4vw,28px)/1.2 var(--ui);color:#fff}
.stopband p{color:#CBD4D0;max-width:74ch;margin:12px 0 0}
.stoplist{margin:20px 0 0;padding:0;list-style:none;display:grid;gap:1px;background:rgba(255,255,255,.14);
  grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr))}
.stoplist li{background:var(--ink);padding:15px 17px;font:500 15.5px/1.45 var(--ui);color:#E6ECE9}
/* footer */
.ftr{background:var(--chalk);border-top:1px solid var(--hair);padding:34px 0 44px;color:var(--muted);font-size:15px}
.ftr a{color:var(--verd)}
.disc{max-width:1180px;margin:0 auto;padding:20px 24px 0;font-size:13.5px;line-height:1.65;color:var(--muted)}

/* ===== component CSS, lifted from the four directions ===== */
/* ---- almanac hero ---- */
.almanac{padding:52px 0 60px;border-bottom:1px solid var(--hair)}
.kicker{color:var(--copper)}
.hero-h1{font-family:var(--display);font-weight:600;font-variation-settings:'SOFT' 0,'WONK' 0;font-size:56px;line-height:1.06;letter-spacing:-.02em;margin:14px 0 0}
.hero-sub{font-size:20px;line-height:1.6;color:var(--muted);max-width:60ch;margin:16px 0 0}
.almanac-grid{display:grid;grid-template-columns:360px minmax(0,1fr);gap:56px;margin-top:44px;align-items:start}
@media (max-width:940px){.almanac-grid{grid-template-columns:minmax(0,1fr);gap:40px}}
@media (max-width:620px){
  .hero-h1{font-size:34px;line-height:1.1}
  .hero-sub{font-size:17.5px}
  .almanac{padding:34px 0 44px}
}

/* ---- the phase ring ---- */
.ringcol{min-width:0}
.ring{position:relative;width:min(340px,100%);aspect-ratio:1/1;margin:0 auto}
.wedge{
  position:absolute;inset:0;border-radius:50%;cursor:pointer;
  transition:opacity .18s ease;
}
.w1{background:var(--p-open);opacity:.30;clip-path:polygon(50% 50%,50% 0,65.45% 2.45%,79.39% 9.55%,90.45% 20.61%,97.55% 34.55%)}
.w2{background:var(--p-run);opacity:.30;clip-path:polygon(50% 50%,97.55% 34.55%,100% 50%,97.55% 65.45%,90.45% 79.39%,79.39% 90.45%)}
.w3{background:var(--p-load);opacity:.30;clip-path:polygon(50% 50%,79.39% 90.45%,65.45% 97.55%,50% 100%,34.55% 97.55%,20.61% 90.45%)}
.w4{background:var(--p-close);opacity:.30;clip-path:polygon(50% 50%,20.61% 90.45%,9.55% 79.39%,2.45% 65.45%,0 50%,2.45% 34.55%)}
.w5{background:var(--p-dorm);opacity:.30;clip-path:polygon(50% 50%,2.45% 34.55%,9.55% 20.61%,20.61% 9.55%,34.55% 2.45%,50% 0)}
.wedge:hover{opacity:.55}
.ring-disc{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:78.8%;height:78.8%;border-radius:50%;background:var(--limestone);pointer-events:none;
}
.ring-hub{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:38.8%;height:38.8%;border-radius:50%;background:var(--p-any);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:8px;cursor:pointer;z-index:3;
}
.ring-hub span{font-family:var(--inst);font-weight:600;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:#fff;line-height:1.25}
.ring-hub em{font-family:var(--inst);font-weight:500;font-style:normal;font-size:10.5px;letter-spacing:.02em;color:var(--verdpale);margin-top:4px;line-height:1.25;text-transform:none}
.rlab{
  position:absolute;transform:translate(-50%,-50%);width:86px;text-align:center;
  font-family:var(--inst);font-weight:600;font-size:11.5px;letter-spacing:.07em;
  text-transform:uppercase;color:var(--muted);pointer-events:none;line-height:1.3;z-index:2;
}
.rlab b{display:block;font-weight:500;font-size:10px;letter-spacing:.02em;text-transform:none;color:#7C8783;margin-top:2px}
.l1{left:67.3%;top:26.2%}
.l2{left:78.0%;top:59.1%}
.l3{left:50%;top:79.4%}
.l4{left:22.0%;top:59.1%}
.l5{left:32.7%;top:26.2%}
/* focusable, not display:none — clipped rather than pushed off-screen */
.phase-in{position:absolute;width:1px;height:1px;padding:0;margin:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.ringnote{margin:26px auto 0;max-width:340px;font-family:var(--inst);font-weight:500;font-size:13px;line-height:1.6;color:var(--muted)}
.ringnote .sn{display:none}
.ringnote strong{color:var(--ink);font-weight:600}

/* checked states */
#ph1:checked ~ .almanac-in .w1,
#ph2:checked ~ .almanac-in .w2,
#ph3:checked ~ .almanac-in .w3,
#ph4:checked ~ .almanac-in .w4,
#ph5:checked ~ .almanac-in .w5{opacity:1}
#ph1:checked ~ .almanac-in .l1,
#ph2:checked ~ .almanac-in .l2,
#ph3:checked ~ .almanac-in .l3,
#ph4:checked ~ .almanac-in .l4,
#ph5:checked ~ .almanac-in .l5{color:var(--ink)}
#ph6:checked ~ .almanac-in .ring-hub{box-shadow:0 0 0 5px var(--limestone),0 0 0 7px var(--p-any)}
#ph1:checked ~ .almanac-in .panel-1,
#ph2:checked ~ .almanac-in .panel-2,
#ph3:checked ~ .almanac-in .panel-3,
#ph4:checked ~ .almanac-in .panel-4,
#ph5:checked ~ .almanac-in .panel-5,
#ph6:checked ~ .almanac-in .panel-6{display:block}
#ph1:checked ~ .almanac-in .sn1,
#ph2:checked ~ .almanac-in .sn2,
#ph3:checked ~ .almanac-in .sn3,
#ph4:checked ~ .almanac-in .sn4,
#ph5:checked ~ .almanac-in .sn5,
#ph6:checked ~ .almanac-in .sn6{display:inline}
#ph1:focus-visible ~ .almanac-in .l1,
#ph2:focus-visible ~ .almanac-in .l2,
#ph3:focus-visible ~ .almanac-in .l3,
#ph4:focus-visible ~ .almanac-in .l4,
#ph5:focus-visible ~ .almanac-in .l5{outline:2px solid var(--ink);outline-offset:4px;color:var(--ink)}
#ph6:focus-visible ~ .almanac-in .ring-hub{outline:3px solid var(--ink);outline-offset:4px}

/* ---- panel ---- */
.panelcol{min-width:0}
.panel{display:none}
.panel-title{font-family:var(--display);font-weight:600;font-variation-settings:'SOFT' 0,'WONK' 0;font-size:28px;line-height:1.2;margin:0;display:flex;align-items:center;gap:11px;flex-wrap:wrap}
.dot{width:14px;height:14px;border-radius:50%;display:inline-block;flex:0 0 auto}
.panel-say{font-size:19px;line-height:1.6;color:var(--muted);margin:12px 0 0;max-width:56ch}
.panel h3{font-family:var(--inst);font-weight:600;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:30px 0 12px}
.joblist{margin:0;padding:0;list-style:none;counter-reset:job}
.joblist li{counter-increment:job;position:relative;padding:11px 0 11px 34px;border-top:1px solid var(--hair);font-size:18px;line-height:1.45}
.joblist li:first-child{border-top:0;padding-top:2px}
.joblist li::before{
  content:counter(job,decimal-leading-zero);position:absolute;left:0;top:12px;
  font-family:var(--inst);font-weight:600;font-size:12px;color:var(--verd);letter-spacing:.04em
}
.joblist li:first-child::before{top:3px}
.wronglist{margin:0;padding:0;list-style:none}
.wronglist li{position:relative;padding:6px 0 6px 20px;font-size:17.5px;line-height:1.45}
.wronglist li::before{content:"";position:absolute;left:0;top:15px;width:7px;height:7px;background:var(--copper)}


/* D. THE BOARD */
.boardwrap{background:var(--deck-blend);padding:0 0 54px;}
.board{background:var(--surface);border:1px solid var(--rule);border-radius:3px;padding:28px;box-shadow:0 1px 0 var(--rule);}
.board-head{display:flex;flex-wrap:wrap;gap:10px 28px;align-items:baseline;justify-content:space-between;margin-bottom:26px;}
.board-head h2{font-size:24px;}
.board-head .note{font-family:var(--sans);font-size:14.5px;color:var(--ink-muted);max-width:46ch;margin:0;}

.range{padding:12px 0 14px;border-top:1px solid var(--rule);}
.range:first-of-type{border-top:0;padding-top:0;}
.range-top{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:10px;}
.range-name{font-family:var(--sans);font-size:15px;font-weight:600;color:var(--ink);}
.range-name em{font-style:normal;font-weight:500;color:var(--ink-muted);}
.val{font-family:var(--sans);font-size:22px;font-weight:700;line-height:1;white-space:nowrap;}
.val.is-in{color:var(--in-range);}
.val.is-caution{color:var(--caution);}
.val.is-out{color:var(--out);}
.bar{position:relative;height:14px;background:var(--surface-sunk);border-radius:3px;}
.bar .seg{position:absolute;top:0;bottom:0;}
.seg-out{background:rgba(196,42,71,.22);}
.seg-caution{background:rgba(232,163,23,.28);}
.seg-in{background:rgba(31,107,74,.22);}
.bar .marker{position:absolute;top:-3px;bottom:-3px;left:var(--pos);width:2px;background:var(--ink);transform:translateX(-1px);}
.bar .marker::before{
  content:"";position:absolute;top:-9px;left:50%;transform:translateX(-50%);
  width:0;height:0;border-left:3.5px solid transparent;border-right:3.5px solid transparent;border-top:7px solid var(--ink);
}
.ticks{position:relative;height:20px;margin-top:7px;}
.ticks span{position:absolute;top:0;font-family:var(--sans);font-size:12px;font-weight:500;color:var(--ink-muted);white-space:nowrap;transform:translateX(-50%);font-variant-numeric:tabular-nums lining;}
.ticks span:first-child{left:0 !important;transform:none;}
.ticks span:last-child{left:auto !important;right:0;transform:none;}
.board-foot{margin:20px 0 0;font-size:18px;line-height:1.6;color:var(--ink-muted);max-width:70ch;}


/* ---- the sequence ---- */
.sequence{background:var(--deep-wash);border-top:1px solid rgba(14,59,62,.16);border-bottom:1px solid rgba(14,59,62,.16)}
.seq-head{font-family:var(--ui);font-weight:700;font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--deep);padding:16px 24px 0;max-width:1180px;margin:0 auto;width:100%}
.seq-scroll{
  overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-left:24px;
  -webkit-overflow-scrolling:touch;padding-bottom:8px;
  scrollbar-color:var(--deep) var(--rule);scrollbar-width:thin;
}
.seq-scroll::-webkit-scrollbar{height:4px}
.seq-scroll::-webkit-scrollbar-track{background:var(--rule)}
.seq-scroll::-webkit-scrollbar-thumb{background:var(--deep)}
.seq{display:flex;width:100%;min-width:max-content;max-width:1180px;margin:0 auto;padding:14px 24px 10px;min-height:118px}
.seq-step{position:relative;flex:1 0 152px;min-width:152px;padding-right:14px;scroll-snap-align:start}
.seq-step::before{content:"";position:absolute;left:0;right:0;top:14px;height:2px;background:rgba(14,59,62,.32)}
.seq-step:first-child::before{left:10px}
.seq-step:last-child::before{right:14px}
.seq-n{position:relative;display:inline-block;font-family:var(--ui);font-weight:700;font-size:24px;line-height:1;color:var(--deep);background:var(--deep-wash);padding:0 9px 0 0}
.seq-step:first-child .seq-n{padding-left:0}
.seq-l{display:block;font-family:var(--ui);font-weight:600;font-size:14px;line-height:1.3;color:var(--ink);margin-top:12px}
.seq-h{display:block;font-family:var(--ui);font-weight:400;font-size:12px;line-height:1.4;color:var(--ink-soft);margin-top:4px}

/* ---- tier chips ---- */
.tier{
  display:inline-flex;align-items:center;gap:6px;
  font-family:var(--ui);font-weight:700;font-size:11px;line-height:1;
  letter-spacing:.10em;text-transform:uppercase;padding:6px 10px;white-space:nowrap;
}
.t1{background:var(--chalk);border-left:1px solid var(--rule);color:var(--ink-soft)}
.t2{background:var(--ochre-wash);border-left:4px solid var(--ochre-bar);color:var(--ochre)}
.t3{background:var(--ink);border-left:6px solid var(--signal);color:var(--chalk)}
.tier .gl{font-size:12px;line-height:1}



/* ==================================================================
   WORDPRESS / GENERATEPRESS INTEGRATION
   GP emits its dynamic CSS INLINE, i.e. after this linked file, so anything GP itself can set
   (site colours, container width) is set in generate_settings rather than fought here.
   ================================================================== */
body{background:var(--limestone)}
.site-content .content-area,.site-content{background:transparent}
.site-content{padding:0}
.inside-article,.entry-content{max-width:none}

/* --- masthead --- */
.site-header{background:var(--chalk);border-bottom:1px solid var(--hair);padding:0}
.site-header .inside-header{max-width:1180px;margin:0 auto;padding:0 24px;height:74px;
  display:flex;align-items:center;gap:26px}
.site-header .site-branding{padding:0}
.site-header .main-title{margin:0;font:700 20px/1 var(--display);letter-spacing:-.01em}
.site-header .main-title a{color:var(--water);text-decoration:none}
.site-header .site-description{display:none}
.main-navigation{background:transparent}
.main-navigation .inside-navigation{padding:0;max-width:none}
@media(min-width:769px){
  .main-navigation{margin-left:auto}
  .main-navigation .main-nav>ul{display:flex;gap:19px;flex-wrap:nowrap}
}
.main-navigation .main-nav ul li a{padding:0;line-height:1;font:500 14.5px/1 var(--ui);
  color:var(--ink);white-space:nowrap;background:transparent}
.main-navigation .main-nav ul li a:hover,
.main-navigation .main-nav ul li.current-menu-item a{color:var(--verd);background:transparent}
.main-navigation .menu-toggle{color:var(--ink);background:transparent;font-family:var(--ui)}
@media(max-width:1180px){.main-navigation .main-nav>ul>li:nth-child(n+6){display:none}}


/* --- front page: the shortcodes ARE the page, so GP's title and padding go --- */
.home .entry-header,.home .page-header,.home .entry-title{display:none}
.home .site-content .inside-article{padding:0}
.home .entry-content{margin:0}

/* --- single post / page --- */
body.single .inside-article,body.page:not(.home) .inside-article{max-width:772px;margin:0 auto;
  padding:34px 24px 8px;background:transparent}
body.single .entry-title,body.page:not(.home) .entry-title{font:600 clamp(30px,4.2vw,44px)/1.14 var(--display);
  color:var(--water);letter-spacing:-.02em;margin:0 0 16px}
body.single .entry-meta,body.page .entry-meta{font:400 12.5px/1.5 var(--mono);letter-spacing:.04em;
  color:var(--muted);margin:0 0 18px}
body.single .entry-meta a,body.page .entry-meta a{color:var(--muted)}
.entry-content{font:400 17.5px/1.72 var(--read);color:var(--ink)}
.entry-content p{margin:0 0 17px}
.entry-content h2{font:600 clamp(22px,2.5vw,28px)/1.2 var(--display);color:var(--water);
  letter-spacing:-.01em;margin:36px 0 12px}
.entry-content h3{font:600 19px/1.3 var(--ui);color:var(--water);margin:28px 0 10px}
.entry-content a{color:var(--verd);text-decoration:underline;text-underline-offset:2px}
.entry-content ul,.entry-content ol{margin:0 0 18px;padding-left:22px}
.entry-content li{margin:0 0 9px}
.entry-content img{height:auto;max-width:100%}
.entry-content figure{margin:28px 0 26px}
.entry-content figure img{border:1px solid var(--rule)}
.entry-content figcaption{margin-top:10px;font:400 13.5px/1.55 var(--mono);color:var(--muted);
  text-align:left}
.entry-content blockquote{margin:24px 0;padding:15px 18px;border:0;border-left:3px solid var(--copper);
  background:rgba(0,0,0,.028);font-size:16.5px;line-height:1.6;color:var(--ink)}
.entry-content blockquote p:last-child{margin:0}
.entry-content table{width:100%;border-collapse:collapse;margin:0 0 20px;font-size:16px}
.entry-content th,.entry-content td{border:1px solid var(--rule);padding:9px 12px;text-align:left}
.entry-content th{background:var(--deck-blend);font-family:var(--ui);font-weight:600}
/* Wide content must scroll inside itself, never push the page sideways. */
.entry-content .wp-block-table,.entry-content pre{overflow-x:auto;max-width:100%}

/* --- archives --- */
.archive .page-header,.blog .page-header{max-width:1180px;margin:0 auto;padding:40px 24px 0;
  background:transparent;border:0}
.archive .page-title,.blog .page-title{font:600 clamp(26px,3vw,36px)/1.16 var(--display);
  color:var(--water);letter-spacing:-.01em}
.archive .taxonomy-description{font-size:17px;color:var(--muted);max-width:74ch;margin-top:10px}
.archive .site-main,.blog .site-main{max-width:1180px;margin:0 auto;padding:22px 24px 40px}
.archive .inside-article,.blog .inside-article{background:var(--chalk);border:1px solid var(--hair);
  padding:20px 22px 22px;margin-bottom:0}
.archive .site-main>*,.blog .site-main>*{margin-bottom:18px}
.archive .entry-title,.blog .entry-title{font:600 20px/1.3 var(--ui);margin:0 0 8px}
.archive .entry-title a,.blog .entry-title a{color:var(--water);text-decoration:none}
.archive .entry-summary,.blog .entry-summary{font-size:16px;color:var(--muted)}

/* --- latest list --- */
.latest{list-style:none;margin:22px 0 0;padding:0;border-top:1px solid var(--hair)}
.latest li{border-bottom:1px solid var(--hair)}
.latest a{display:block;padding:15px 2px;text-decoration:none;color:var(--ink);
  font:400 18.5px/1.4 var(--read)}
.latest a:hover{color:var(--verd)}

/* --- footer --- */
.site-footer,.site-info{background:var(--chalk);border-top:1px solid var(--hair);color:var(--muted)}
.site-info{max-width:1180px;margin:0 auto;padding:26px 24px 30px;font-size:15px;font-family:var(--ui)}
.site-info a{color:var(--verd)}
.sc-disclaimer{max-width:1180px;margin:0 auto;padding:4px 24px 30px;font-size:13.5px;
  line-height:1.65;color:var(--muted);opacity:1}
.sc-disclaimer strong{color:var(--ink)}

/* --- ad slots --- */
.adzone .ad{border:1px solid var(--hair);background:var(--chalk);padding:16px}
.adzone .ad-label{font:500 11px/1 var(--mono);letter-spacing:.13em;text-transform:uppercase;
  color:var(--muted);margin:0 0 12px}

/* --- front page must be FULL BLEED ---
   Every section below carries its own .pls-wrap max-width, so GeneratePress's page container has
   to get out of the way entirely on the front page. Measured: without this the hero renders 722px
   wide inside a 1440 viewport, which is not the design that was approved. */
.home #page,.home #page.container,.home #page.grid-container{max-width:none;padding:0;margin:0}
.home .site-content,.home .content-area,.home .site-main{max-width:none;width:100%;padding:0;margin:0}
.home .site-content .inside-article,.home article.page{padding:0;margin:0;border:0;background:transparent}
.home .entry-content>*:first-child{margin-top:0}

/* --- hero chips are links, and have to look like the design's chips --- */
.fhero .chips a.chip{display:inline-block;background:var(--chalk);color:var(--water);
  font:600 14.5px/1.35 var(--ui);padding:10px 14px;text-decoration:none}
.fhero .chips a.chip:hover{background:#fff;text-decoration:none}
.fhero .chips li{margin:0;list-style:none}

/* --- nav inline with the wordmark (GP floats it right once nav_position is set) --- */
.site-header .inside-header{justify-content:space-between}
#site-navigation.main-navigation{background:transparent;flex:0 1 auto}
#site-navigation .inside-navigation{padding:0}
.site-header .site-logo{display:none}


/* --- nav must stay inside the header row and never widen the page ---
   Measured: GP's floated nav resolved to 1256px and pushed scrollWidth to 1516 in a 1440 viewport. */
.site-header .inside-header{flex-wrap:nowrap}
.site-header #site-navigation{float:none;margin:0 0 0 auto;width:auto;max-width:100%;
  flex:0 1 auto;min-width:0}
.site-header #site-navigation .inside-navigation{width:auto;max-width:none;padding:0;display:block}
.site-header .main-nav>ul{display:flex;gap:17px;flex-wrap:nowrap;justify-content:flex-end;
  margin:0;padding:0}
.site-header .main-nav>ul>li{margin:0}
.site-header .main-nav>ul>li>a{font-size:14px;padding:0}
@media(max-width:1240px){.site-header .main-nav>ul>li:nth-child(n+7){display:none}}
@media(max-width:1080px){.site-header .main-nav>ul>li:nth-child(n+5){display:none}}

/* --- wordmark must not wrap --- */
.site-header .main-title,.site-header .main-title a{white-space:nowrap}
.site-header .site-branding{flex:0 0 auto}

/* --- kill the white bands between sections ---
   GP's one-container gives #page a white background, and wpautop leaves empty <p> elements between
   block-level shortcodes. Both show as white stripes against the limestone page. */
.home #page,.home article.page,.home .inside-article,.home .entry-content{background:transparent}
.home .entry-content>p:empty{display:none}
.home .entry-content>p>br:only-child{display:none}

/* --- nav overflow direction ---
   With justify-content:flex-end a flex row that is wider than its container overflows to the LEFT,
   which put the first menu item underneath the wordmark (measured: link at x=261, nav box at 314).
   Let the nav size to its content and push the whole box right instead. */
@media(min-width:769px){
  .site-header #site-navigation{flex:0 0 auto;margin-left:auto}
  .site-header .main-nav>ul{justify-content:flex-start;flex-wrap:nowrap}
}

/* --- below GP's mobile breakpoint, stop fighting the theme ---
   The desktop nav rules above (nowrap + flex:0 0 auto) forced a 742px-wide nav inside a 375px
   viewport. Under 769px GeneratePress's own toggle/stacked menu is the right behaviour. */


/* :nth-child() outranks a bare element selector regardless of source order, so the mobile override
   has to match the same pseudo-class to bring the hidden items back. */


/* --- mobile hero scrim ---
   On a narrow screen the standfirst wraps to more lines, so the band is taller and the kicker sits
   proportionally higher in the fade (measured 3.35:1 at 375). Reach full strength sooner. */
@media(max-width:768px){
  .fhero-band{padding-top:34px;
    background:linear-gradient(180deg,rgba(9,42,46,0) 0%,rgba(9,42,46,.58) 3%,
      rgba(9,42,46,.93) 9%,rgba(9,42,46,.97) 100%)}
}

/* --- mobile hero: the photograph has to survive the scrim ---
   MEASURED: at 375 the band sized itself to its own content (545px) which was 100% of the hero's
   height, so the pool photo was completely buried under the gradient. Two fixes together:
   a margin that RESERVES clear photo above the band regardless of how tall the text becomes, and
   a tighter type scale so the band needs less room in the first place. */
@media(max-width:768px){
  .fhero{min-height:0}
  .fhero-band{margin-top:190px;padding-top:30px}
  .fhero .wrap{padding-bottom:30px}
  .fhero h1{font-size:29px;line-height:1.14}
  .fhero .kick{font-size:11px;margin-bottom:10px}
  .fhero .sf{font-size:16.5px;line-height:1.5;margin-top:12px}
  .fhero .chips{margin-top:16px;gap:8px}
  .fhero .chips a.chip{font-size:14px;padding:9px 12px}
  .fcap span{font-size:11.5px;line-height:1.5}
}
@media(max-width:420px){
  .fhero-band{margin-top:160px}
  .fhero h1{font-size:27px}
}


/* ==================================================================
   MOBILE HEADER — one authoritative block.
   Earlier attempts forced the menu open while GeneratePress also rendered its toggle, so the
   phone showed a "Menu" button AND the full expanded list. Below 769px the theme's own collapse
   behaviour is correct; this only restyles it.
   ================================================================== */
@media(max-width:768px){
  .site-header .inside-header{display:flex;align-items:center;justify-content:space-between;
    flex-wrap:wrap;height:auto;padding:12px 20px;gap:0}
  .site-header .site-branding{flex:1 1 auto;text-align:left;order:1}
  .site-header .main-title{font-size:19px}
  .site-header #site-navigation{order:2;flex:0 0 auto;margin:0;width:auto;max-width:100%}
  .site-header #site-navigation .inside-navigation{padding:0;width:auto}
  .site-header .menu-toggle{display:block;margin:0;padding:8px 4px;
    font:600 14px/1 var(--ui);color:var(--ink);background:transparent}
  /* Collapsed by default; :nth-child() is repeated so it outranks the desktop hiding rules. */
  .site-header .main-nav>ul,
  .site-header .main-nav>ul>li:nth-child(n+5),
  .site-header .main-nav>ul>li:nth-child(n+7){display:none}
  .site-header #site-navigation.toggled{order:3;flex:1 1 100%;width:100%}
  .site-header #site-navigation.toggled .main-nav>ul,
  .site-header #site-navigation.toggled .main-nav>ul>li:nth-child(n+5),
  .site-header #site-navigation.toggled .main-nav>ul>li:nth-child(n+7){display:block}
  .site-header #site-navigation.toggled .main-nav>ul{width:100%;padding:8px 0 4px}
  .site-header #site-navigation.toggled .main-nav>ul>li{width:100%;margin:0}
  .site-header #site-navigation.toggled .main-nav>ul>li>a{display:block;padding:11px 0;
    font-size:15px;border-bottom:1px solid var(--hair)}
}
