/*
 * MOR Health — editorial theme runtime styles
 * Design source: MOR-Web-Layout-System-20261027.html (page-css block), ported verbatim.
 * Deviations are marked "GEOFlow addition" and only cover markup the real renderer emits.
 * Do not inline any of this into Blade: Blade parses "@media" as a directive.
 */

:root{
  --azure:#0A6FBE; --azure-dk:#085A9C; --azure-deep:#012D79; --tint:#EEF3FA;
  --ink:#16233A; --muted:#5B6B85; --line:#E4EAF2; --bg:#F7F9FC; --card:#fff;
  --faint:#5F6F8A; --amber:#B7791F; --line-strong:#7A889E;
  --gutter:24px; --pad:32px; --w:1240px; --r:14px;
  --sh1:0 1px 2px rgba(22,35,58,.05), 0 6px 18px -12px rgba(10,111,190,.18);
  --sh2:0 2px 4px rgba(22,35,58,.06), 0 18px 40px -18px rgba(1,45,121,.28);
  --d:52px; --h1:40px; --h2:28px; --h3:20px; --lead:19px; --body:16px; --sm:14px; --cap:12px;
  --s1:8px; --s2:16px; --s3:24px; --s4:32px; --s5:48px; --s6:64px; --s7:96px;
  --read:44rem;
}
*{box-sizing:border-box}
body{
  margin:0; background:var(--card); color:var(--ink);
  font:400 var(--body)/1.65 ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  -webkit-font-smoothing:antialiased; letter-spacing:-0.005em;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{margin:0; letter-spacing:-0.02em; font-weight:600}
h1{font-size:var(--h1); line-height:1.1}
h2{font-size:var(--h2); line-height:1.18}
h3{font-size:var(--h3); line-height:1.25}
p{margin:0}
.wrap{max-width:var(--w); margin:0 auto; padding:0 var(--pad)}
.grid{display:grid; grid-template-columns:repeat(12,1fr); gap:var(--gutter)}
.g4{grid-column:span 4}.g5{grid-column:span 5}.g6{grid-column:span 6}
.g7{grid-column:span 7}.g8{grid-column:span 8}.g9{grid-column:span 9}.g12{grid-column:span 12}
.sec{padding:var(--s7) 0}
.sec-t{padding:var(--s6) 0}
.eyebrow{
  font-size:var(--cap); letter-spacing:.1em; text-transform:uppercase; font-weight:600;
  color:var(--azure-dk); display:flex; align-items:center; gap:9px; margin-bottom:var(--s2); /* GEOFlow addition: mockup used --azure, 4.56:1 over the hero gradient */
}
.eyebrow::before{content:""; width:20px; height:2px; background:var(--azure); flex:none}
.lead{font-size:var(--lead); line-height:1.5; color:var(--muted); max-width:66ch}
.muted{color:var(--muted)}
.cap{font-size:var(--cap); color:var(--faint); letter-spacing:.02em}
.tnum{font-variant-numeric:tabular-nums}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.readable{max-width:68ch}

/* ---------- nav ---------- */
.util{background:var(--ink); color:#C8D6EA; font-size:var(--cap)}
.util .wrap{display:flex; justify-content:space-between; align-items:center; height:34px; gap:var(--s2)}
.util b{color:#fff; font-weight:500}
.util a:hover{color:#fff; text-decoration:underline; text-underline-offset:3px}
nav.top{position:sticky; top:0; z-index:9; background:rgba(255,255,255,.94); backdrop-filter:blur(10px); border-bottom:1px solid var(--line)}
nav.top .wrap{display:flex; align-items:center; height:72px; gap:var(--s4)}
.logo{display:flex; align-items:center; gap:10px; flex:none}
.logo img{height:34px}
.nlinks{display:flex; gap:var(--s3); align-items:center; margin-left:var(--s4)}
.nlinks a{font-size:var(--sm); font-weight:500; color:var(--muted); padding:6px 0; position:relative}
.nlinks a.on,.nlinks a:hover{color:var(--ink)}
.nlinks a.on::after,.nlinks a:hover::after{
  content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px; background:var(--azure); border-radius:2px}
.nright{margin-left:auto; display:flex; align-items:center; gap:var(--s2)}
.burger{display:none; width:38px; height:38px; border:1px solid var(--line); border-radius:9px; background:#fff}
.burger i{display:block; width:16px; height:1.5px; background:var(--ink); margin:3px auto}

/* ---------- brand lockup ---------- */
/* GEOFlow addition: measured values carried over from the running site.
   MŌR must stay the brand image (a font Ō is a flat bar, not the logo's wave), and
   HEALTH at #027DD5 only clears WCAG on the large-text 3:1 threshold, i.e. 19px/700. */
.logo.mor-brand{font-size:26px; white-space:nowrap}
.logo .mor-brand-mark{height:44px; width:44px; border-radius:6px; object-fit:contain}
.logo .mor-brand-word{display:inline-flex; align-items:baseline; gap:.3em}
.logo .mor-brand-mor{height:.9em; width:auto}
.mor-brand-health{color:#027DD5; font-size:19px; font-weight:700; letter-spacing:.2em}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px; font:600 var(--sm)/1;
  padding:13px 20px; border-radius:9px; border:1px solid transparent; cursor:pointer; transition:.18s; white-space:nowrap}
.btn.p{background:var(--azure); color:#fff; box-shadow:0 6px 16px -8px rgba(10,111,190,.75)}
.btn.p:hover{background:var(--azure-dk); transform:translateY(-1px)}
.btn.s{background:#fff; color:var(--azure-deep); border-color:var(--line-strong)}
.btn.s:hover{border-color:var(--azure); color:var(--azure)}
.btn.ghost{background:rgba(255,255,255,.12); color:#fff; border-color:rgba(255,255,255,.32)}
.btn.ghostw{background:#fff; color:var(--azure-deep)}
.btn.lg{padding:16px 26px; font-size:var(--body)}
.lnk{color:var(--azure); font-weight:600; font-size:var(--sm)}
.lnk:hover{text-decoration:underline; text-underline-offset:3px}

/* ---------- surfaces ---------- */
.card{background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:var(--s3)}
.tinted{background:var(--tint); border-radius:var(--r)}
.rule{border:0; border-top:1px solid var(--line); margin:0}
.pill{display:inline-flex; align-items:center; gap:6px; font-size:var(--cap); font-weight:600; background:var(--tint); color:var(--azure-deep); border-radius:999px; padding:5px 11px}
.dot{width:6px; height:6px; border-radius:50%; background:var(--azure); flex:none}

/* ---------- hero ---------- */
.hero{position:relative; overflow:hidden; background:linear-gradient(180deg,#F2F7FD 0%, #fff 100%)}
.hero::after{
  content:""; position:absolute; right:-12%; top:-18%; width:62%; height:130%;
  background:
    radial-gradient(60% 60% at 50% 50%, rgba(10,111,190,.13), transparent 70%),
    repeating-radial-gradient(circle at 50% 50%, transparent 0 46px, rgba(10,111,190,.07) 46px 47px);
  pointer-events:none}
.hero .wrap{position:relative; padding-top:var(--s5); padding-bottom:var(--s6)}
.hero-quiet .wrap{padding-bottom:var(--s5)}
.hero h1{font-size:var(--d); line-height:1.04; letter-spacing:-0.03em; max-width:19ch}
.visual{
  position:relative; border-radius:20px; overflow:hidden; border:1px solid var(--line);
  background:linear-gradient(135deg,#0A6FBE 0%, #012D79 58%, #16233A 100%); min-height:360px;
  display:flex; align-items:flex-end; padding:var(--s3); box-shadow:var(--sh2)}
.visual::before{
  content:""; position:absolute; inset:0;
  background:repeating-radial-gradient(circle at 78% 26%, transparent 0 38px, rgba(255,255,255,.10) 38px 39px)}
.visual .cap{position:relative; color:rgba(255,255,255,.82); font-size:var(--cap)}
/* GEOFlow addition: operator-configured hero slides sit inside .visual */
.visual > .slide{position:absolute; inset:0; margin:0; opacity:0; transition:opacity .4s; display:block}
.visual > .slide.is-active{opacity:1}
.visual > .slide img{width:100%; height:100%; object-fit:cover; border-radius:0}
.visual > .slide figcaption{position:absolute; left:var(--s3); right:var(--s3); bottom:var(--s3);
  color:rgba(255,255,255,.9); font-size:var(--cap); text-shadow:0 1px 6px rgba(0,0,0,.45)}
.visual .dots{position:absolute; right:var(--s3); top:var(--s3); display:flex; gap:6px; z-index:2}
.visual .dots button{width:8px; height:8px; padding:0; border:0; border-radius:50%;
  background:rgba(255,255,255,.38); cursor:pointer; transition:.18s}
.visual .dots button.is-active{background:#fff; transform:scale(1.25)}
.trust{display:flex; gap:var(--s4); align-items:center; flex-wrap:wrap; padding-top:var(--s4); margin-top:var(--s5); border-top:1px solid var(--line)}
.trust .i{display:flex; align-items:center; gap:9px; font-size:var(--sm); color:var(--muted); font-weight:500}
.trust .ml{margin-left:auto}
.chk{width:17px; height:17px; border-radius:50%; background:var(--tint); color:var(--azure); font-size:11px; display:grid; place-items:center; font-weight:700; flex:none}

/* ---------- stat band ---------- */
.band{background:var(--ink); color:#fff; position:relative; overflow:hidden}
.band::before{content:""; position:absolute; inset:0;
  background:repeating-linear-gradient(115deg, transparent 0 74px, rgba(255,255,255,.035) 74px 75px)}
.stat{position:relative}
.stat .n{font-size:44px; font-weight:700; letter-spacing:-0.035em; line-height:1; font-variant-numeric:tabular-nums}
.stat .n sup{font-size:20px; font-weight:600; vertical-align:top; margin-left:2px}
.stat .k{font-size:var(--sm); color:#A9BCD6; margin-top:10px; line-height:1.45}
.stats4 .stat+.stat{padding-left:var(--s4); border-left:1px solid rgba(255,255,255,.14)}

/* ---------- cards grids ---------- */
.cg{display:grid; gap:var(--s3)}
.cg4,.cg3,.cg2,.cg5{display:grid; gap:var(--s3)}
.cg5{grid-template-columns:repeat(5,1fr)}
.cg4{grid-template-columns:repeat(4,1fr)}
.cg3{grid-template-columns:repeat(3,1fr)}
.cg2{grid-template-columns:repeat(2,1fr)}
.tile{border:1px solid var(--line); border-radius:var(--r); padding:var(--s3); background:#fff; transition:.2s; position:relative; overflow:hidden; display:flex; flex-direction:column}
.tile:hover{border-color:var(--azure); box-shadow:var(--sh1); transform:translateY(-2px)}
.tile .ic{width:40px; height:40px; border-radius:10px; background:var(--tint); color:var(--azure-deep); display:grid; place-items:center; font-weight:700; font-size:15px; margin-bottom:var(--s2); flex:none}
.tile h3{font-size:var(--h3); margin-bottom:6px}
.tile p{font-size:var(--sm); color:var(--muted); line-height:1.55; flex:1}
.tile .go{margin-top:var(--s2); padding-top:var(--s2); font-size:var(--sm); font-weight:600; color:var(--azure)}
.article{border:1px solid var(--line); border-radius:var(--r); overflow:hidden; background:#fff; transition:.2s}
.article:hover{box-shadow:var(--sh2); transform:translateY(-3px)}
.article .ph{height:150px; background:linear-gradient(135deg,#DCE9F7,#B7D0EC)}
.article .bd{padding:var(--s3)}
.article h3{font-size:var(--h3); line-height:1.3; margin:8px 0}
.meta{display:flex; gap:10px; align-items:center; font-size:var(--cap); color:var(--faint)}

/* ---------- steps / timeline ---------- */
.steps{counter-reset:s; display:grid; gap:var(--s3)}
.step{position:relative; padding-left:56px}
.step::before{
  counter-increment:s; content:counter(s,decimal-leading-zero); position:absolute; left:0; top:0;
  font:700 var(--sm)/1 ui-sans-serif,system-ui; color:var(--azure); background:var(--tint);
  width:40px; height:40px; border-radius:11px; display:grid; place-items:center; letter-spacing:0}
.step:not(:last-child)::after{content:""; position:absolute; left:19.5px; top:46px; bottom:-16px; width:1px; background:var(--line)}
.step h3{font-size:17px; margin-bottom:5px}
.step p{font-size:var(--sm); color:var(--muted)}

/* ---------- two-col sticky ---------- */
.split{display:grid; grid-template-columns:5fr 7fr; gap:var(--s6)}
.sticky{position:sticky; top:104px; align-self:start}

/* ---------- accordion ---------- */
.acc{border-top:1px solid var(--line)}
.acc .row{border-bottom:1px solid var(--line); padding:var(--s3) 0; display:grid; grid-template-columns:1fr 20px; gap:var(--s2); align-items:start; cursor:pointer}
.acc .row:hover h3{color:var(--azure)}
.acc .q{font-size:17px; font-weight:600; letter-spacing:-0.015em}
.acc .a{font-size:var(--sm); color:var(--muted); max-height:0; overflow:hidden; transition:max-height .3s; grid-column:1/-1}
.acc .row.open .a{max-height:200px; margin-top:12px}
.acc .mk{width:20px; height:20px; position:relative; margin-top:2px}
.acc .mk::before,.acc .mk::after{content:""; position:absolute; background:var(--azure); border-radius:2px; transition:.2s}
.acc .mk::before{left:0; top:9px; width:20px; height:2px}
.acc .mk::after{left:9px; top:0; width:2px; height:20px}
.acc .row.open .mk::after{transform:rotate(90deg); opacity:0}

/* ---------- quote ---------- */
.quote{background:var(--tint); border-radius:var(--r); padding:var(--s4); position:relative}
.quote::before{content:"\201C"; position:absolute; top:-6px; left:var(--s3); font:700 64px/1 Georgia,serif; color:rgba(10,111,190,.2)}
.quote p{font-size:17px; line-height:1.55; position:relative; padding-top:var(--s2)}
.who{margin-top:var(--s2); font-size:var(--cap); color:var(--faint); font-weight:600; letter-spacing:.04em; text-transform:uppercase}

/* ---------- form ---------- */
.field{margin-bottom:var(--s3)}
.field label{display:block; font-size:var(--sm); font-weight:600; margin-bottom:7px}
.field .req{color:var(--amber)}
.inp{width:100%; font:400 var(--body)/1.4 inherit; padding:12px 14px; border:1px solid #CBD5E3; border-radius:9px; background:#fff; transition:.16s; color:var(--ink)}
.inp:focus{outline:0; border-color:var(--azure); box-shadow:0 0 0 4px rgba(10,111,190,.14)}
.inp.bad{border-color:#C0392B; box-shadow:0 0 0 4px rgba(192,57,43,.10)}
.hint{font-size:var(--cap); color:var(--faint); margin-top:6px}
.err{font-size:var(--cap); color:#C0392B; margin-top:6px; font-weight:500}
.prog{display:flex; gap:6px; margin-bottom:var(--s4)}
.prog i{flex:1; height:3px; border-radius:2px; background:var(--line)}
.prog i.on{background:var(--azure)}
.prog i.cur{background:var(--azure); box-shadow:0 0 0 3px rgba(10,111,190,.16)}
.aside-box{border:1px solid var(--line); border-radius:var(--r); padding:var(--s3); background:var(--bg)}
.radios{display:grid; gap:10px}
.radio{display:flex; gap:11px; align-items:flex-start; border:1px solid var(--line); border-radius:10px; padding:13px 15px; cursor:pointer; transition:.16s}
.radio:hover{border-color:var(--azure)}
.radio.sel{border-color:var(--azure); background:var(--tint)}
.radio .o{width:17px; height:17px; border-radius:50%; border:1.5px solid #9FAFBE; flex:none; margin-top:2px}
.radio.sel .o{border-color:var(--azure); box-shadow:inset 0 0 0 4px var(--azure)}
.radio b{display:block; font-size:var(--sm); font-weight:600}
.radio span{font-size:var(--cap); color:var(--muted)}

/* ---------- dark surfaces (video rail) ---------- */
.dark{background:var(--ink); color:#EAF1F9}
.dark h1,.dark h2,.dark h3{color:#fff}
.dark .lead{color:#AFC1D9}
.player{aspect-ratio:16/9; border-radius:16px; overflow:hidden; position:relative;
  background:radial-gradient(120% 120% at 30% 10%, #1B4B84 0%, #0A2246 55%, #071426 100%);
  box-shadow:0 40px 80px -32px rgba(0,0,0,.7); border:1px solid rgba(255,255,255,.1)}
.player::before{content:""; position:absolute; inset:0;
  background:repeating-radial-gradient(circle at 30% 20%, transparent 0 44px, rgba(255,255,255,.05) 44px 45px)}
.play{position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:76px; height:76px; border-radius:50%;
  background:rgba(255,255,255,.94); display:grid; place-items:center; box-shadow:0 12px 30px rgba(0,0,0,.35)}
.play::after{content:""; border-left:22px solid var(--azure-deep); border-top:13px solid transparent; border-bottom:13px solid transparent; margin-left:5px}
.scrub{position:absolute; left:0; right:0; bottom:0; padding:16px 20px; background:linear-gradient(0deg,rgba(0,0,0,.55),transparent)}
.scrub .t{height:3px; background:rgba(255,255,255,.28); border-radius:2px; position:relative}
.scrub .t::before{content:""; position:absolute; left:0; top:0; bottom:0; width:34%; background:var(--azure); border-radius:2px}
.scrub .lb{display:flex; justify-content:space-between; font-size:var(--cap); color:rgba(255,255,255,.75); margin-top:9px; font-variant-numeric:tabular-nums}
.scard{border:1px solid rgba(255,255,255,.14); border-radius:12px; background:rgba(255,255,255,.045); padding:var(--s3); transition:.2s}
.scard:hover{background:rgba(255,255,255,.09); border-color:rgba(10,111,190,.7)}
.scard .n{font-size:var(--cap); color:var(--azure); font-weight:700; letter-spacing:.08em}
.scard h3{font-size:17px; margin:7px 0 5px}
.scard p{font-size:var(--sm); color:#A9BCD6; line-height:1.5}
.weeks .scard{display:flex; flex-direction:column}
.weeks .scard > :last-child{margin-top:auto; padding-top:14px}

/* ---------- breadcrumb ---------- */
.brc{display:flex; gap:8px; align-items:center; font-size:var(--cap); color:var(--faint); padding:18px 0 0; white-space:nowrap}
.brc a,.brc i{flex:none}
.brc b{font-weight:500; color:var(--ink); min-width:0; overflow:hidden; text-overflow:ellipsis}
.brc a:hover{color:var(--azure)}
.brc i{font-style:normal} /* GEOFlow addition: mockup used opacity:.45, which measures 1.87:1 and no colour reaches 4.5 at that opacity on white */

/* ---------- reading page ---------- */
.rail-card{border:1px solid var(--line); border-radius:var(--r); padding:20px; background:var(--bg)}
.rail-card + .rail-card{margin-top:var(--s2)}
.rail-card h4{font-size:var(--cap); letter-spacing:.09em; text-transform:uppercase; color:var(--faint); margin-bottom:14px}

/* reading grid: headline / contents rail / body / side, placed explicitly */
.rgrid{display:grid; grid-template-columns:repeat(12,1fr); gap:var(--gutter)}
.a-head{grid-column:1/9; grid-row:1}
.a-toc{grid-column:9/13; grid-row:1/span 2; align-self:start; position:sticky; top:104px}
.a-body{grid-column:1/9; grid-row:2}
.a-side{grid-column:9/13; grid-row:3; align-self:start}
/* contents rail collapses to one column, body takes the full width */
.rgrid.no-toc .a-head,.rgrid.no-toc .a-body{grid-column:1/10}
.rgrid.no-toc .a-side{grid-column:10/13; grid-row:1}
.tocbox{border:1px solid var(--line); border-radius:var(--r); background:var(--bg); padding:18px 20px}
.tocbox > summary{
  list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:12px;
  font-size:var(--cap); letter-spacing:.09em; text-transform:uppercase; color:var(--faint); font-weight:600}
.tocbox > summary::-webkit-details-marker{display:none}
.tocbox > summary::after{content:""; width:8px; height:8px; border-right:1.5px solid var(--faint); border-bottom:1.5px solid var(--faint); transform:rotate(45deg); transition:.18s; flex:none}
.tocbox[open] > summary::after{transform:rotate(-135deg)}
.tocbox > .toc{display:block; margin-top:14px}
@media(min-width:1024px){
  .tocbox > summary{pointer-events:none}
  .tocbox > summary::after{display:none}
}
.tocbox .count{font-size:var(--cap); color:var(--faint); font-weight:400; letter-spacing:0; text-transform:none}
.toc{border-left:2px solid var(--line)}
.toc a{display:block; font-size:var(--sm); color:var(--muted); padding:7px 0 7px 15px; margin-left:-2px; border-left:2px solid transparent; line-height:1.35}
.toc a:hover{color:var(--ink)}
.toc a.on{color:var(--azure-deep); font-weight:600; border-left-color:var(--azure)}
.toc a.sub{padding-left:30px; font-size:13px}

/* ---------- article body ---------- */
/* GEOFlow addition: the renderer emits bare markdown elements plus the decorated
   .article-table-wrap / .article-table pair, so the body must style both shapes. */
.morprose{padding-top:var(--s4); max-width:var(--read)}
.morprose > *{margin-top:0}
.morprose > p{margin-bottom:var(--s3)}
.morprose h2{font-size:var(--h2); letter-spacing:-.022em; margin:var(--s6) 0 var(--s2); padding-top:var(--s3); border-top:1px solid var(--line)}
.morprose h3{font-size:var(--h3); margin:var(--s5) 0 10px}
.morprose h4{font-size:var(--body); margin:var(--s4) 0 8px; letter-spacing:-.01em}
.morprose h2:first-child,.morprose h3:first-child{margin-top:0; border-top:0; padding-top:0}
.morprose ul{margin:0 0 var(--s3); padding-left:22px}
.morprose ol{margin:0 0 var(--s3); padding-left:22px}
.morprose li{margin-bottom:9px}
.morprose li::marker{color:var(--azure)}
.morprose a{color:var(--azure); font-weight:500; text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px}
.morprose a:hover{color:var(--azure-deep)}
.morprose strong{font-weight:600; color:var(--ink)}
.morprose hr{border:0; border-top:1px solid var(--line); margin:var(--s5) 0}
.morprose img{border-radius:var(--r); border:1px solid var(--line); margin:var(--s4) 0}
.morprose code{font:500 14px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace; background:var(--tint); color:var(--azure-deep); padding:2px 6px; border-radius:5px}
.morprose pre{background:var(--ink); color:#EAF1F9; padding:var(--s3); border-radius:var(--r); overflow-x:auto; margin:var(--s4) 0; font-size:14px; line-height:1.6}
.morprose pre code{background:none; color:inherit; padding:0}
.morprose figure{margin:var(--s4) 0}
.morprose figcaption{font-size:var(--cap); color:var(--faint); margin-top:9px}
/* The site-wide stylesheet pins every blockquote with !important (azure or grey, italic,
   15px). Matching the design system requires the same escalation, not a stronger selector. */
.morprose blockquote,blockquote{
  border-left:3px solid var(--azure) !important;
  background:var(--tint) !important;
  color:var(--ink) !important;
  font-style:normal !important;
  font-size:var(--body) !important;
  line-height:1.6 !important;
  padding:var(--s3) var(--s4) !important;
  margin:var(--s4) 0 !important;
  border-radius:0 var(--r) var(--r) 0 !important;
  max-width:var(--read);
}
.morprose blockquote > :last-child{margin-bottom:0}

.stand{font-size:var(--lead); line-height:1.5; color:var(--muted); max-width:var(--read); margin-top:var(--s3)}
.art-meta{display:flex; gap:16px; align-items:center; flex-wrap:wrap; font-size:var(--cap); color:var(--faint);
  padding:var(--s3) 0; border-bottom:1px solid var(--line); margin-bottom:var(--s4)}
.keybox{background:var(--tint); border-left:3px solid var(--azure); border-radius:0 var(--r) var(--r) 0; padding:var(--s3) var(--s4)}
.keybox h4{font-size:var(--cap); letter-spacing:.09em; text-transform:uppercase; color:var(--azure-deep); margin-bottom:12px}
.keybox li{font-size:var(--sm); line-height:1.6; margin-bottom:7px; color:var(--ink)}
.callout{border:1px solid #E7C98A; background:#FCF7EC; border-radius:var(--r); padding:var(--s3); margin:var(--s4) 0; max-width:var(--read)}
.callout b{display:block; font-size:var(--sm); color:var(--amber); margin-bottom:5px}
.callout p{font-size:var(--sm); color:#6B5426; line-height:1.6}

/* ---------- table with scroll shadow ---------- */
/* GEOFlow addition: .article-table-wrap / .article-table are the classes the
   server-side markdown decorator emits; they get the same treatment as .tblwrap. */
.tblwrap,.article-table-wrap{margin:var(--s4) 0; max-width:100%; overflow-x:auto; background-color:var(--card);
  background-image:linear-gradient(90deg,var(--card) 30%,rgba(255,255,255,0)),
             linear-gradient(270deg,var(--card) 30%,rgba(255,255,255,0)),
             linear-gradient(90deg,rgba(22,35,58,.2),rgba(22,35,58,0)),
             linear-gradient(270deg,rgba(22,35,58,.2),rgba(22,35,58,0));
  background-size:26px 100%,26px 100%,13px 100%,13px 100%;
  background-position:0 0,100% 0,0 0,100% 0;
  background-repeat:no-repeat;
  background-attachment:local,local,scroll,scroll;
  border-radius:var(--r)}
table.dt,table.article-table{border-collapse:collapse; width:100%; font-size:var(--sm)}
table.dt th,table.dt td,
table.article-table th,table.article-table td{padding:11px 14px; border-bottom:1px solid var(--line); text-align:left}
table.dt thead th,
table.article-table thead th,
table.article-table th{font-size:var(--cap); letter-spacing:.06em; text-transform:uppercase; color:var(--faint); font-weight:600; border-bottom:1px solid #CBD5E3; background:rgba(247,249,252,.86)}
table.dt td.v,table.article-table td.v{text-align:right; font-variant-numeric:tabular-nums; font-weight:600; color:var(--ink)}
table.dt tbody tr:hover,table.article-table tbody tr:hover{background:var(--bg)}
table.dt caption,table.article-table caption{caption-side:bottom; text-align:left; font-size:var(--cap); color:var(--faint); padding-top:9px}
.pullq{border-left:3px solid var(--azure); padding:6px 0 6px var(--s3); margin:var(--s4) 0; max-width:var(--read)}
.pullq p{font-size:21px; line-height:1.45; letter-spacing:-.015em; color:var(--azure-deep); font-weight:500}
.refs{margin-top:var(--s5); padding-top:var(--s3); border-top:1px solid var(--line); max-width:var(--read)}
.refs h4{font-size:var(--cap); letter-spacing:.09em; text-transform:uppercase; color:var(--faint)}
.refs ol{padding-left:20px; margin:12px 0 0}
.refs li{font-size:13px; color:var(--muted); line-height:1.6; margin-bottom:6px}

/* ---------- channel rail ---------- */
.chx{display:flex; gap:8px; overflow-x:auto; padding:14px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line)}
.chx a{flex:none; font-size:var(--sm); font-weight:500; color:var(--muted); padding:7px 14px; border-radius:999px; border:1px solid transparent; white-space:nowrap}
.chx a:hover{color:var(--azure-deep); background:var(--tint)}
.chx a.on{background:var(--azure); border-color:var(--azure); color:#fff}
.chx a small{font-variant-numeric:tabular-nums; margin-left:6px} /* GEOFlow addition: mockup used opacity:.65, 2.68:1 on white and 3.12:1 on azure */
.dark .chx{border-top-color:rgba(255,255,255,.14); border-bottom-color:rgba(255,255,255,.14)}
.dark .chx a{color:#A9BCD6}
.dark .chx a:hover{color:#fff; background:rgba(255,255,255,.07)}
.dark .chx a.on{background:var(--azure); color:#fff; border-color:var(--azure)}
.dark .inp{background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.18); color:#fff}
.dark .inp::placeholder{color:#7E93B4}
.dark .empty{border-color:rgba(255,255,255,.18); background:rgba(255,255,255,.04)}
.dark .empty h3{color:#fff}
.dark .empty p{color:#A9BCD6}

/* ---------- lists: articles & sessions ---------- */
.list{border-top:1px solid var(--line)}
.lrow{display:grid; grid-template-columns:148px 1fr 132px; gap:var(--s3); align-items:center;
  padding:var(--s3) 0; border-bottom:1px solid var(--line); transition:.18s}
.lrow:hover{background:var(--bg)}
.lrow:hover h3{color:var(--azure)}
.lrow .th{border-radius:10px; overflow:hidden; background:linear-gradient(135deg,#DCE9F7,#B7D0EC); aspect-ratio:16/9; position:relative;
  display:grid; place-items:center; color:var(--azure-deep); font-weight:700; font-size:22px}
.lrow .th img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.lrow h3{font-size:19px; line-height:1.3; margin-bottom:6px}
.lrow p{font-size:var(--sm); color:var(--muted); line-height:1.55; max-width:62ch}
.lrow .rt{text-align:right; font-size:var(--cap); color:var(--faint); font-variant-numeric:tabular-nums}
.badge{display:inline-flex; align-items:center; gap:5px; font-size:11px; font-weight:600; letter-spacing:.04em;
  text-transform:uppercase; border-radius:5px; padding:3px 8px; background:var(--tint); color:var(--azure-deep); line-height:1.4}
.badge.draft{background:#FCF7EC; color:var(--amber)}
.badge.new{background:rgba(10,111,190,.1); color:var(--azure)}
.dark .badge{background:rgba(255,255,255,.1); color:#AFC1D9}
.dark .list{border-top-color:rgba(255,255,255,.14)}
.dark .lrow{border-bottom-color:rgba(255,255,255,.14)}
.dark .lrow:hover{background:rgba(255,255,255,.04)}
.dark .lrow:hover h3{color:#8FC4EE}
.dark .lrow p{color:#A9BCD6}
.dark .lrow .th{background:linear-gradient(135deg,#1B4B84,#0A2246); color:#fff}
.dark .lrow .rt{color:#7E93B4}
.empty{border:1px dashed #CBD5E3; border-radius:var(--r); padding:var(--s5); text-align:center; background:var(--bg)}
.empty h3{font-size:var(--h3); margin-bottom:8px}
.empty p{font-size:var(--sm); color:var(--muted)}

/* ranked list used by the side rail */
.rank{counter-reset:r; display:grid; gap:0}
.rank a{display:grid; grid-template-columns:24px 1fr; gap:12px; padding:13px 0; border-bottom:1px solid var(--line); align-items:start}
.rank a:last-child{border-bottom:0}
.rank a::before{counter-increment:r; content:counter(r,decimal-leading-zero);
  font:600 var(--cap)/1.4 ui-sans-serif,system-ui; color:var(--faint); font-variant-numeric:tabular-nums}
.rank a > span{display:block; min-width:0}
.rank a b{font-size:15px; font-weight:600; line-height:1.35; display:block}
.rank a .sub{font-size:var(--cap); color:var(--faint); display:block; margin-top:5px}
.rank a:hover b{color:var(--azure)}

/* ---------- search ---------- */
.srch{display:flex; gap:10px; align-items:center}
.srch .inp{min-width:0}
.srch .inp::placeholder{color:#9AAABB}
.filters{display:flex; gap:var(--s3); align-items:center; justify-content:space-between; flex-wrap:wrap; padding:var(--s3) 0}
.filters h2{font-size:20px; line-height:1.25}

/* ---------- pagination ---------- */
/* GEOFlow addition: the default paginator markup is replaced by a theme view. */
.pager{display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin-top:var(--s4)}
.pager a,.pager span{display:inline-flex; align-items:center; justify-content:center; min-width:38px;
  padding:9px 13px; font-size:13px; font-weight:600; border-radius:9px; border:1px solid var(--line); background:#fff; color:var(--azure-deep)}
.pager a:hover{border-color:var(--azure); color:var(--azure)}
.pager .cur{background:var(--azure); border-color:var(--azure); color:#fff}
.pager .dead{color:var(--faint); background:var(--bg)}
.pager .gap{border:0; background:none; color:var(--faint); min-width:0; padding:9px 2px}
.pager>.cap{border:0; background:none; min-width:0; padding:9px 2px; color:var(--faint); font-weight:400}

/* ---------- footer ---------- */
footer{background:var(--ink); color:#93A9C4; padding:var(--s6) 0 var(--s3); font-size:var(--sm)}
footer h4{font-size:var(--cap); letter-spacing:.09em; text-transform:uppercase; color:#fff; margin-bottom:var(--s2); font-weight:600}
footer a{display:block; padding:5px 0; color:#93A9C4}
footer a:hover{color:#fff}
.fgrid{display:grid; grid-template-columns:2fr 1fr 1fr 1fr 1fr; gap:var(--s4)}
.fbot{margin-top:var(--s5); padding-top:var(--s3); border-top:1px solid rgba(255,255,255,.12); display:flex; justify-content:space-between; gap:var(--s2); flex-wrap:wrap; font-size:var(--cap)}
.fbot a{text-decoration:underline; text-underline-offset:3px; word-break:break-word}
footer .site-friend-links{margin-top:var(--s4); padding-top:var(--s3); border-top:1px solid rgba(255,255,255,.12)}
/* GEOFlow addition: the running site renders 4 footer columns, the prototype mock shows 5. */
.fgrid--4{grid-template-columns:2.2fr 1fr 1fr 1fr}
.fbrand{display:flex; align-items:baseline; gap:.5em; margin-bottom:14px}
.flogo{height:30px; width:auto}
.flogo-health{color:#9FC0E6; font-size:15px; font-weight:700; letter-spacing:.2em}
.fnote{color:#93A9C4; line-height:1.6; max-width:38ch}
/* GEOFlow addition: site.partials.footer-filing ships Tailwind utility class names.
   This theme loads no Tailwind runtime, so the handful it uses is restored here. */
.fbot .mt-2{margin-top:var(--s2)}
.fbot .break-words{overflow-wrap:break-word; word-break:break-word}
.fbot .inline-flex{display:inline-flex}
.fbot .items-center{align-items:center}
.fbot .min-h-10{min-height:40px}
.fbot .max-w-full{max-width:100%}
.fbot .px-1{padding-left:4px; padding-right:4px}

/* ---------- sticky ad ---------- */
/* GEOFlow addition: replaces the Tailwind utility markup used by the default theme. */
.adcard{position:fixed; right:20px; bottom:20px; z-index:14; max-width:320px; background:#fff;
  border:1px solid var(--line); border-radius:var(--r); box-shadow:var(--sh2); padding:var(--s3); font-size:var(--sm)}
.adcard-x{position:absolute; right:10px; top:8px; border:0; background:none; color:var(--faint); font-size:20px; line-height:1; cursor:pointer}
.adcard-x:hover{color:var(--ink)}
.adcard-title{font-size:var(--sm); font-weight:600; color:var(--ink); margin-bottom:8px; padding-right:20px}
.adcard p{color:var(--muted); line-height:1.6; margin:10px 0}

/* ---------- cta band ---------- */
.cta{background:linear-gradient(120deg,var(--azure) 0%, var(--azure-deep) 100%); color:#fff; border-radius:20px; padding:var(--s6); position:relative; overflow:hidden}
.cta::after{content:""; position:absolute; right:-8%; top:-60%; width:46%; height:220%;
  background:repeating-radial-gradient(circle at 50% 50%, transparent 0 40px, rgba(255,255,255,.10) 40px 41px)}
.cta .in{position:relative; display:grid; grid-template-columns:1fr auto; gap:var(--s5); align-items:center}
.cta h2{color:#fff; font-size:var(--h2); max-width:24ch}
.cta p{color:rgba(255,255,255,.85); margin-top:10px; max-width:52ch}

/* ---------- mobile nav + cta bar ---------- */
/* GEOFlow addition: the skip link is visually hidden until keyboard focus */
.mor-skip:focus{position:fixed; top:12px; left:12px; width:auto; height:auto; clip-path:none;
  z-index:30; background:#fff; color:var(--azure-deep); font-weight:600; font-size:var(--sm);
  padding:10px 16px; border-radius:9px; box-shadow:var(--sh2)}
.mnav{display:none; border-top:1px solid var(--line); background:#fff}
.mnav.is-open{display:block}
.mnav .wrap{padding-top:var(--s2); padding-bottom:var(--s2)}
.mnav a{display:block; font-size:var(--sm); font-weight:500; color:var(--muted); padding:11px 0; border-bottom:1px solid var(--line)}
.mnav a:last-child{border-bottom:0}
.mnav a.on{color:var(--azure-deep)}
.mbar{display:none}

/* ---------- sticky nav anchor offset ---------- */
html{scroll-padding-top:96px}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  .btn,.tile,.article,.lrow,.scard,.tocbox > summary::after{transition:none}
  .tile:hover,.article:hover,.btn.p:hover{transform:none}
  html{scroll-behavior:auto}
}

/* ============================================================ */
@media(max-width:1023px){
  :root{--d:42px; --h1:34px; --h2:24px; --h3:18px; --lead:17px; --pad:24px; --s7:64px; --s6:48px}
  .nlinks{display:none}
  .burger{display:block}
  .nright{margin-left:auto}
  .fgrid{grid-template-columns:1fr 1fr 1fr}
  .cg4{grid-template-columns:1fr 1fr}
  .cg3{grid-template-columns:1fr 1fr}
  .cg5{grid-template-columns:repeat(3,1fr)}
  .split{grid-template-columns:1fr; gap:var(--s4)}
  .sticky{position:static}
  .g5,.g7,.g8,.g9{grid-column:span 12}
  .g4,.g6{grid-column:span 6}
  .a-head,.a-toc,.a-body,.a-side,.rgrid.no-toc .a-head,.rgrid.no-toc .a-body,.rgrid.no-toc .a-side{grid-column:1/-1; grid-row:auto; position:static}
  .a-toc{margin-top:var(--s2)}
  .a-body{margin-top:var(--s4)}
  .a-side{margin-top:var(--s5)}
  .tocbox{background:#fff}
  .tocbox:not([open]) > .toc{display:none}
  .hero .wrap{padding-top:var(--s5)}
  .visual{min-height:260px}
  .lrow{grid-template-columns:120px 1fr}
  .lrow .rt{text-align:left}
  .srch{width:100%}
}
@media(max-width:767px){
  :root{--d:33px; --h1:28px; --h2:22px; --h3:17px; --lead:16px; --body:15.5px; --pad:18px;
         --gutter:16px; --s7:48px; --s6:40px; --r:12px}
  body{letter-spacing:0}
  .nlinks,.nright .btn{display:none}
  .burger{display:block}
  .logo.mor-brand{font-size:21px}
  .logo .mor-brand-mark{height:34px; width:34px}
  /* HEALTH stays 19px/700: below the WCAG large-text threshold #027DD5 needs 4.5:1 and only measures 4.07:1 */
  .mor-brand-health{letter-spacing:.14em}
  .grid{gap:var(--gutter)}
  .g4,.g5,.g6,.g7,.g8,.g9{grid-column:span 12}
  .cg4,.cg3,.cg2,.cg5{grid-template-columns:1fr}
  .stats4 .stat+.stat{padding-left:0; border-left:0; border-top:1px solid rgba(255,255,255,.14); padding-top:var(--s3)}
  .stats4{grid-template-columns:1fr 1fr !important}
  .cta{padding:var(--s5) var(--s3)}
  .cta .in{grid-template-columns:1fr; gap:var(--s3)}
  .fgrid{grid-template-columns:1fr 1fr; gap:var(--s3)}
  .fgrid--4 .fcol-brand{grid-column:1/-1}
  .hero::after{width:110%; right:-30%; top:auto; bottom:-24%; height:56%}
  .mbar{display:flex; position:sticky; bottom:0; z-index:12; background:#fff; border-top:1px solid var(--line); padding:11px var(--pad); gap:10px; justify-content:space-between; align-items:center}
  .mbar .t{font-size:var(--cap); color:var(--muted); line-height:1.3}
  .mbar .t b{display:block; color:var(--ink); font-size:var(--sm)}
  .trust{gap:var(--s3)}
  .trust .ml{margin-left:0}
  .lrow{grid-template-columns:1fr; gap:12px}
  .lrow .rt{text-align:left}
  .morprose h2{margin-top:var(--s5); font-size:21px}
  .morprose h3{margin-top:var(--s4)}
  .stand{font-size:var(--body)}
  .pullq p{font-size:18px}
  .keybox{padding:var(--s3)}
  .art-meta{gap:10px; margin-bottom:var(--s3)}
  .chx{margin:0 calc(-1*var(--pad)); padding:12px var(--pad); border-left:0; border-right:0}
  .util .wrap{height:auto; min-height:34px; padding-top:7px; padding-bottom:7px; gap:10px}
  .adcard{right:var(--pad); left:var(--pad); bottom:16px; max-width:none}
}
@media(max-width:400px){
  .stats4{grid-template-columns:1fr !important}
  .fgrid{grid-template-columns:1fr}
}
