/* Baker 1031 - 2026 design system, interior pages.
   Source: the interior-page layer of the approved design (mast, crumbs, rail,
   prose, shell, callout, inventory, calculator and document classes).

   Deliberately a SECOND file rather than merged into design-2026.css: three
   selectors collide with the homepage -- .btn (padding/font-size/tracking),
   .btn-row (gap) and .brand img (height) -- and merging would silently
   restyle the homepage's buttons. Interior pages link both sheets; the
   homepage links only the first. */


/* ==========================================================================
   Components added for the inner pages (form, inventory, listing, insights,
   calculators, policies). Same tokens, same rhythm as the homepage.
   ========================================================================== */

/* The solid-header variant used to live here; it moved to design-2026.css,
   beside the header it modifies, so pages that carry the 2026 chrome without
   the interior-content sheet (the login / offerings / listing templates) get a
   header that is actually solid. */
.brand img{display:block;height:38px;width:auto}
@media(max-width:520px){.brand img{height:30px}}

/* ---------- page masthead ---------- */
.mast{background:var(--blue-d);color:#fff;padding:76px var(--gut) 84px}
.mast .h1,.mast .h2{color:#fff;max-width:20ch}
.mast p{color:rgba(255,255,255,.9);max-width:60ch;margin-top:22px}
.crumbs{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:12px;font-weight:700;
  letter-spacing:.13em;text-transform:uppercase;color:rgba(255,255,255,.72);margin-bottom:26px}
.crumbs a:hover{color:#fff}
.mast--light .crumbs a:hover{color:var(--ink)}
.crumbs span{opacity:.5}
.mast--light{background:var(--pale);color:var(--body)}
.mast--light .h1,.mast--light .h2{color:var(--ink)}
.mast--light p{color:var(--body)}
.mast--light .crumbs{color:var(--muted)}

/* ---------- generic prose ---------- */
.prose{max-width:74ch}
.prose h2{font-size:clamp(24px,2.3vw,32px);line-height:1.24;margin:52px 0 18px}
.prose h3{font-size:clamp(20px,1.8vw,25px);line-height:1.3;margin:38px 0 14px}
.prose p,.prose li{font-size:16.5px;line-height:1.78;color:var(--body)}
.prose ul,.prose ol{padding-left:22px;margin:0 0 22px}
.prose li{margin-bottom:10px}
.prose a{color:var(--blue-d);border-bottom:1px solid var(--hair)}
.prose a:hover{border-bottom-color:var(--blue-d)}
.prose blockquote{margin:32px 0;padding:4px 0 4px 26px;border-left:2px solid var(--blue);
  font-family:var(--display);font-size:22px;line-height:1.45;color:var(--blue-d)}
.callout{background:var(--pale);border-left:3px solid var(--blue);padding:26px 28px;margin:34px 0}
.callout h4{font-family:var(--sans);font-size:12.5px;font-weight:700;letter-spacing:.15em;
  text-transform:uppercase;color:var(--blue-d);margin:0 0 10px}
.callout p{margin:0;font-size:15.5px;line-height:1.7}

/* ---------- two-column page shell with a sticky rail ---------- */
.shell{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(32px,4.6vw,80px);align-items:start}
.shell--left{grid-template-columns:250px minmax(0,1fr)}
/* A .shell with no .rail is a one-column page -- /process/, /performance/ and
   /property-types/ were each leaving a dead 300px track beside the content. */
.shell:not(:has(> .rail)){grid-template-columns:minmax(0,1fr)}
@media(max-width:980px){.shell,.shell--left{grid-template-columns:1fr}}
.rail{position:sticky;top:96px}
.rail h4{font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.15em;
  text-transform:uppercase;color:var(--muted);margin:0 0 14px}
.rail a:not(.btn){display:block;padding:9px 0;font-size:14.5px;color:var(--body);border-bottom:1px solid var(--hair)}
.rail a:not(.btn):hover,.rail a:not(.btn)[aria-current]{color:var(--blue-d)}
.rail a:not(.btn)[aria-current]{font-weight:600}

/* ---------- filter bar ---------- */
.filters{display:flex;gap:12px;flex-wrap:wrap;align-items:center;padding:26px 0;
  border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);margin-bottom:52px}
.filters .lab{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-right:6px}
.sel{appearance:none;-webkit-appearance:none;-moz-appearance:none;
  border:1px solid var(--hair);border-radius:3px;background-color:#fff;color:var(--ink);
  font-family:var(--sans);font-size:14px;padding:11px 42px 11px 15px;cursor:pointer;background-size:12px 12px;
  background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' fill='none'%3e%3cpath d='M3 5.5 7 9.5 11 5.5' stroke='%235F6469' stroke-width='1.5' stroke-linecap='round'/%3e%3c/svg%3e");
  background-repeat:no-repeat;background-position:right 15px center}
.sel::-ms-expand{display:none}
.sel:hover{border-color:var(--blue-d)}
.count{margin-left:auto;font-size:13.5px;color:var(--muted)}

/* ---------- inventory grid ---------- */
.inv{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:clamp(24px,3vw,44px)}
.inv-card{background:#fff;display:flex;flex-direction:column;border:1px solid var(--hair);
  transition:transform .3s ease,box-shadow .3s ease}
.inv-card:hover{transform:translateY(-4px);box-shadow:0 20px 44px rgba(51,46,36,.12)}
.inv-card .shot{position:relative;overflow:hidden}
.inv-card .shot img{width:100%;height:216px;object-fit:cover}
.tag{position:absolute;top:14px;left:14px;display:flex;gap:6px;flex-wrap:wrap}
.tag span{background:rgba(0,85,136,.94);color:#fff;font-size:10.5px;font-weight:700;letter-spacing:.11em;
  text-transform:uppercase;padding:6px 10px;border-radius:2px}
.tag span.alt{background:rgba(51,46,36,.9)}
.inv-b{padding:24px 24px 26px;display:flex;flex-direction:column;flex:1}
.inv-b .spon{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.inv-b .nm{margin:10px 0 0;font-family:var(--display);font-weight:400;font-size:23px;line-height:1.25;color:var(--ink)}
.inv-b .loc{font-size:13.5px;color:var(--muted);margin-top:6px}
.mini{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:20px;padding-top:18px;border-top:1px solid var(--hair)}
.mini div{min-width:0}
.mini .k{font-size:10.5px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}
.mini .v{font-family:var(--display);font-size:19px;color:var(--ink);margin-top:4px}
.inv-b .link{margin-top:auto;padding-top:20px}

/* ---------- listing page ---------- */
.spec{width:100%;border-collapse:collapse}
.spec tr{border-bottom:1px solid var(--hair)}
.spec th,.spec td{text-align:left;padding:15px 0;font-size:15px;vertical-align:top}
.spec th{font-weight:400;color:var(--muted);width:44%}
.spec td{color:var(--ink);font-weight:500}
.keyfacts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);margin:44px 0}
.kf{padding:28px 26px 28px 0;border-right:1px solid var(--hair)}
.kf:last-child{border-right:0;padding-right:0}
.kf .n{font-family:var(--display);font-size:clamp(26px,2.4vw,34px);line-height:1.05;color:var(--ink)}
.kf .l{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:10px}
@media(max-width:700px){.kf{border-right:0;border-bottom:1px solid var(--hair);padding-right:0}
  .kf:last-child{border-bottom:0}}
.chart{display:flex;align-items:flex-end;gap:8px;height:190px;margin:26px 0 8px}
.chart div{flex:1;background:linear-gradient(180deg,var(--blue) 0,var(--blue-d) 100%);border-radius:2px 2px 0 0;
  position:relative;min-width:0}
.chart div span{position:absolute;top:-22px;left:0;right:0;text-align:center;font-size:11px;color:var(--muted)}
.chart-x{display:flex;gap:8px;font-size:11px;color:var(--muted)}
.chart-x div{flex:1;text-align:center}
.buybox{border:1px solid var(--hair);background:#fff;padding:28px 26px}
.buybox .price{font-family:var(--display);font-size:32px;color:var(--ink);line-height:1.1}
.buybox .plab{font-size:12px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-top:8px}
.buybox .btn{display:block;text-align:center;margin-top:22px}
.buybox .row{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-top:1px solid var(--hair);font-size:14px}
.buybox .row:first-of-type{margin-top:22px}
.buybox .row b{font-weight:500}
.rail .docs a,.docs a{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 0;
  border-bottom:1px solid var(--hair);font-size:14.5px}
.docs a:hover{color:var(--blue-d)}
.docs .sz{font-size:12px;color:var(--muted)}
.note-box{background:var(--pale);padding:26px 28px;margin-top:34px}
.note-box .who{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.note-box .who img{width:44px;height:44px;border-radius:50%;object-fit:cover;object-position:50% 18%}
.note-box .who b{font-family:var(--display);font-weight:400;font-size:17px}
.note-box .who span{display:block;font-size:11.5px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted);margin-top:3px}
.note-box p{font-size:15px;line-height:1.72;margin:0}

/* ---------- registration wizard ---------- */
.wiz{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(32px,4.6vw,72px);align-items:start}
@media(max-width:980px){.wiz{grid-template-columns:1fr}}
.steps-bar{display:flex;gap:6px;margin-bottom:14px}
.steps-bar i{flex:1;height:4px;background:var(--hair);border-radius:2px}
.steps-bar i.done{background:var(--blue)}
.steps-lab{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);margin-bottom:30px}
.fset{border:0;padding:0;margin:0 0 30px}
.fset legend{font-family:var(--display);font-weight:400;font-size:clamp(22px,2vw,28px);color:var(--ink);
  padding:0;margin-bottom:8px}
.fhint{font-size:14.5px;color:var(--muted);margin-bottom:26px;max-width:56ch}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:620px){.grid2{grid-template-columns:1fr}}
.field{display:block;margin-bottom:18px}
.field span{display:block;font-size:12.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);margin-bottom:8px}
.field input,.field select,.field textarea{width:100%;font-family:var(--sans);font-size:15.5px;color:var(--ink);
  border:1px solid var(--hair);border-radius:3px;padding:14px 15px;background:#fff}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--blue);outline-offset:1px;border-color:var(--blue)}
.opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.opt{display:flex;gap:13px;align-items:flex-start;border:1px solid var(--hair);border-radius:3px;
  padding:18px 18px;cursor:pointer;transition:border-color .2s,background .2s}
.opt:hover{border-color:var(--blue)}
.opt input{margin-top:3px;accent-color:var(--blue);width:17px;height:17px;flex:none}
.opt b{display:block;font-weight:600;font-size:15px;color:var(--ink)}
.opt small{display:block;font-size:13px;color:var(--muted);margin-top:4px;line-height:1.5}
.wiz-nav{display:flex;justify-content:space-between;gap:16px;align-items:center;
  padding-top:28px;border-top:1px solid var(--hair);margin-top:34px;flex-wrap:wrap}
.aside-card{border:1px solid var(--hair);background:#fff;padding:26px 24px}
.aside-card h4{font-family:var(--display);font-weight:400;font-size:19px;margin:0 0 14px;color:var(--ink)}
.aside-card li{font-size:14px;line-height:1.6;color:var(--body);margin-bottom:12px;list-style:none;
  padding-left:22px;position:relative}
.aside-card li::before{content:'\2713';position:absolute;left:0;color:var(--blue)}
.aside-card ul{margin:0;padding:0}

/* ---------- learn / insights ---------- */
.feature{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(28px,4vw,64px);
  align-items:center;margin-bottom:64px}
@media(max-width:900px){.feature{grid-template-columns:1fr}}
.feature img{width:100%;height:clamp(260px,30vw,400px);object-fit:cover}
.meta-row{display:flex;gap:16px;align-items:center;flex-wrap:wrap;font-size:12px;font-weight:700;
  letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.meta-row .cat{color:var(--blue)}
.posts{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:clamp(26px,3.2vw,48px)}
.post{display:flex;flex-direction:column;padding-bottom:26px;border-bottom:1px solid var(--hair)}
.post .nm{margin:14px 0 0;font-family:var(--display);font-weight:400;font-size:22px;line-height:1.28;color:var(--ink)}
.post:hover .nm{color:var(--blue-d)}
.post p{font-size:14.5px;line-height:1.65;color:var(--muted);margin:12px 0 0}
.post .link{margin-top:auto;padding-top:18px;font-size:12.5px}
.pager{display:flex;gap:8px;justify-content:center;align-items:center;margin-top:64px}
.pager a,.pager span{min-width:42px;height:42px;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--hair);border-radius:3px;font-size:14px;color:var(--body)}
.pager a:hover{border-color:var(--blue-d);color:var(--blue-d)}
.pager .on{background:var(--blue-d);border-color:var(--blue-d);color:#fff}

/* ---------- article ---------- */
.toc{border-left:2px solid var(--hair);padding-left:20px}
.toc a{display:block;padding:8px 0;font-size:14px;color:var(--muted);border:0}
.toc a:hover{color:var(--blue-d)}
.byline{display:flex;gap:16px;align-items:center;padding:26px 0;border-top:1px solid var(--hair);
  border-bottom:1px solid var(--hair);margin:0 0 44px}
.byline img{width:54px;height:54px;border-radius:50%;object-fit:cover;object-position:50% 18%}
.byline b{font-family:var(--display);font-weight:400;font-size:18px;color:var(--ink)}
.byline span{display:block;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);margin-top:4px}
.byline .when{margin-left:auto;font-size:13px;color:var(--muted);text-align:right}

/* ---------- calculators ---------- */
.calc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,4vw,64px);align-items:start}
@media(max-width:900px){.calc{grid-template-columns:1fr}}
.calc-panel{border:1px solid var(--hair);background:#fff;padding:32px 30px}
.calc-out{background:var(--blue-d);color:#fff;padding:36px 32px}
.calc-out .big{font-family:var(--display);font-size:clamp(34px,4vw,54px);line-height:1.05;color:#fff}
.calc-out .biglab{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.78);margin-top:12px}
.calc-out .row{display:flex;justify-content:space-between;gap:14px;padding:14px 0;
  border-top:1px solid rgba(255,255,255,.22);font-size:15px;color:rgba(255,255,255,.9)}
.calc-out .row:first-of-type{margin-top:30px}
.calc-out .row b{font-weight:600;color:#fff;font-family:var(--display);font-size:18px}
.calc-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;margin-top:52px}
.calc-tile{border:1px solid var(--hair);background:#fff;padding:24px 22px;display:flex;flex-direction:column;gap:8px;
  transition:border-color .25s,transform .25s}
.calc-tile:hover{border-color:var(--blue);transform:translateY(-3px)}
.calc-tile b{font-family:var(--display);font-weight:400;font-size:19px;color:var(--ink)}
.calc-tile small{font-size:13.5px;line-height:1.55;color:var(--muted)}

/* ---------- page router (single-file build only) ---------- */
.page{display:none}
.page.on{display:block}


/* ---------- narrow-screen corrections ---------- */
.calc>*,.shell>*,.wiz>*,.split>*,.feature>*{min-width:0}
.field input,.field select,.field textarea{min-width:0;max-width:100%}
.calc-panel,.calc-out{min-width:0;overflow-wrap:anywhere}
@media(max-width:520px){
  .calc-panel{padding:24px 20px}
  .calc-out{padding:26px 20px}
}
.byline{flex-wrap:wrap}
.byline .when{margin-left:auto;min-width:0}
@media(max-width:560px){.byline .when{margin-left:0;text-align:left;width:100%}}
.mini{gap:8px}
.mini .v{font-size:clamp(15px,4vw,19px);white-space:nowrap}
@media(max-width:420px){.mini{grid-template-columns:1fr 1fr}.mini div:last-child{grid-column:1/-1}}
.kf .n{overflow-wrap:anywhere}
@media(max-width:560px){.kf .n{font-size:clamp(22px,7vw,30px)}}
.chart div span{font-size:10px}
@media(max-width:760px){.chart div span{display:none}.chart-x div{font-size:9px}}
.spec th,.spec td{overflow-wrap:anywhere}

@media(max-width:480px){
  .btn{padding:15px 22px;font-size:12px;letter-spacing:.12em;white-space:normal;text-align:center}
  .btn-row{gap:12px}
  .btn-row .btn{flex:1 1 100%}
}


/* ---------- legacy calculator panels ----------
   Carried across verbatim from the calculator pages' own stylesheet so the
   working markup and its JS (which keys off element ids) survive the port
   untouched. The container is renamed .calc -> .calcbox because the 2026
   sheet already defines .calc as a two-column grid; loading both would have
   turned every calculator panel into a grid and broken the layout. */
.fineprint{border-top:1px solid var(--hair); margin-top:48px; padding-top:22px; font-size:13px; font-weight:300; line-height:1.8; color:var(--faint);}
.calcbox{border:1px solid var(--hair); padding:36px 40px; margin-bottom:36px;}
.calcbox .grid{display:grid; grid-template-columns:1fr 1fr; gap:22px 32px;}
.calcbox label{display:block; font-size:12px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--ink); margin-bottom:8px;}
.calcbox input, .calcbox select{width:100%; border:1px solid var(--hair); background:#fff; font-family:inherit; font-size:15.5px; font-weight:300; color:var(--ink); padding:13px 14px; outline:none;}
.calcbox input:focus, .calcbox select:focus{border-color:var(--steel);}
.calcbox .full{grid-column:1 / -1;}
.results{background:var(--ink); color:#fff; padding:34px 40px; margin-bottom:16px;}
.results .rrow{display:flex; justify-content:space-between; align-items:baseline; gap:20px; padding:11px 0; border-bottom:1px solid rgba(255,255,255,.14);}
.results .rrow:last-child{border-bottom:0;}
.results .rk{font-size:13px; font-weight:300; color:rgba(255,255,255,.75);}
.results .rv{font-size:17px; font-weight:600;}
.results .rrow.big .rv{font-size:24px; color:var(--lblue);}
.results .warn{margin-top:14px; font-size:13px; font-weight:300; line-height:1.7; color:#F0DFA8;}
.calcnote{font-size:13px; font-weight:300; line-height:1.8; color:var(--faint);}
.calcbox .grid, .hublist{grid-template-columns:1fr;}
.calcbox, .results{padding:26px 22px;}

/* ================= LEARN INDEX (/learn/) =================
   The learn index is rendered from templates/learn-index.html by build.js,
   which injects {{FEATURED_HTML}} and {{ROWS_HTML}}. Those two fragments are
   generated in build.js and carry their own class names -- .art-row/.cat/.t/
   .ex/.meta for a row, and .wrap/.flag/.by/.read inside the featured card.
   Every selector below is scoped under .featured, .art-row or .filterbar so
   nothing here can reach another page. Changing a class name here without
   changing the matching string in build.js will silently unstyle the page. */

.featured{background:var(--grey1);border-bottom:1px solid var(--hair)}
.featured .wrap{max-width:1240px;margin:0 auto;padding:56px var(--gut);cursor:pointer}
.featured .flag{font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--blue-d);margin-bottom:14px}
.featured h2{font-family:var(--display);font-weight:400;font-size:clamp(28px,3.2vw,38px);
  line-height:1.2;margin:0 0 16px;max-width:900px;color:var(--ink)}
.featured p{font-size:16.5px;line-height:1.75;color:var(--body);max-width:760px;margin:0 0 18px}
.featured .by{font-size:13.5px;color:var(--muted)}
.featured .by b{font-weight:600;color:var(--ink)}
.featured .read{font-size:14px;font-weight:600;color:var(--blue-d);margin-top:16px}
.featured .read:after{content:" \2192"}
.featured .wrap:hover h2{color:var(--blue-d)}

.filterbar{border-bottom:1px solid var(--hair);background:#fff}
.filterbar-in{max-width:1240px;margin:0 auto;padding:20px var(--gut);
  display:flex;align-items:center;gap:10px;flex-wrap:wrap}
/* The filter script toggles .active; the shared sheet styles the selected
   state as .pill.on. Mirror it rather than editing the script. */
.pill.active{background:var(--blue-d);border-color:var(--blue-d);color:#fff}
.fcount{margin-left:auto;font-size:13px;color:var(--muted)}

.artlist{max-width:1240px;margin:0 auto;padding:24px var(--gut) 88px}
a.art-row{text-decoration:none}
.art-row{display:grid;grid-template-columns:180px 1fr 200px;gap:40px;align-items:baseline;
  border-bottom:1px solid var(--hair);padding:34px 0;cursor:pointer}
.art-row .cat{font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.11em;
  text-transform:uppercase;color:var(--blue-d)}
.art-row .t{font-family:var(--display);font-weight:400;font-size:22px;line-height:1.35;
  color:var(--ink);margin-bottom:8px;transition:color .15s ease}
.art-row:hover .t{color:var(--blue-d)}
.art-row .ex{font-size:15px;line-height:1.7;color:var(--body)}
.art-row .soon{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.05em;
  color:var(--muted);border:1px solid var(--hair);padding:3px 10px;margin-left:12px;vertical-align:middle}
.art-row .meta{font-size:13px;color:var(--muted);text-align:right;line-height:1.7}
.art-row .meta b{font-weight:600;color:var(--ink);display:block}
.empty{text-align:center;padding:80px 20px;font-size:16px;color:var(--muted)}

@media(max-width:980px){
  .art-row{grid-template-columns:1fr;gap:8px}
  .art-row .meta{text-align:left}
}
@media(max-width:700px){
  .fcount{margin-left:0;width:100%}
  .featured .wrap{padding-top:40px;padding-bottom:40px}
}

/* ================= ARTICLES (/learn/<slug>/) =================
   Rendered from templates/article.html by build.js, which substitutes
   {{BODY_HTML}} with marked() output. The block classes below are baked into
   the 531 markdown files themselves -- .takeaways, .faq, .glossary, .pullquote,
   .disclosures, .refs, .dtable2 and friends. None of them had any CSS anywhere
   before this (not in the old template's inline style, not in baker-2026.css),
   so they have been rendering as undifferentiated body text on every article.
   These rules give them the shape the writing already assumes.
   Everything is scoped under .prose or an article-only class. */

.artmast .cat{font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--blue-d);margin:0 0 14px}
.byline{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;margin-top:22px;
  font-size:14px;color:var(--muted)}
.byline .who{font-weight:600;color:var(--ink)}
.byline .dot{color:var(--muted)}

/* --- long-form additions the generic .prose block does not cover --- */
.prose h4{font-family:var(--display);font-weight:400;font-size:19px;margin:30px 0 10px}
.prose>p:first-child,.prose .lead,.prose .article-intro{font-size:18px;line-height:1.7;color:var(--ink)}
.prose code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em;
  background:var(--grey1);padding:2px 6px;border-radius:3px}
.prose pre{background:var(--grey1);padding:18px 20px;overflow-x:auto;margin:26px 0}
.prose pre code{background:none;padding:0}
.prose img{max-width:100%;height:auto}
.prose hr{border:0;border-top:1px solid var(--hair);margin:40px 0}

/* Tables. build.js wraps every markdown table in .tblwrap so wide comparison
   grids scroll instead of pushing the page sideways on a phone. */
.tblwrap{overflow-x:auto;margin:30px 0;-webkit-overflow-scrolling:touch}
.tblwrap table,table.dtable2{border-collapse:collapse;width:100%;font-size:15px}
.tblwrap th,table.dtable2 th{text-align:left;font-family:var(--sans);font-size:12px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--blue-d);
  padding:12px 14px;vertical-align:bottom}
.tblwrap td,table.dtable2 td{padding:12px 14px;border-bottom:1px solid var(--hair);
  color:var(--body);vertical-align:top;line-height:1.6}
table.dtable2{margin:30px 0;display:block;overflow-x:auto}

.prose dl{margin:22px 0}
.prose dt{font-weight:600;color:var(--ink);margin-top:14px}
.prose dd{margin:4px 0 0;color:var(--body);line-height:1.7}

/* --- content blocks baked into the articles --- */
.takeaways{background:var(--pale);border-left:3px solid var(--blue);padding:26px 28px;margin:34px 0}
.takeaways .tk-h{font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.15em;
  text-transform:uppercase;color:var(--blue-d);margin-bottom:12px}
.takeaways ul{margin:0;padding-left:20px}
.takeaways li{margin-bottom:8px}

.faq{margin:34px 0;border-top:1px solid var(--hair)}
.faq details{border-bottom:1px solid var(--hair)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;
  align-items:flex-start;gap:20px;padding:20px 0;font-family:var(--display);font-size:18px;
  line-height:1.4;color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--blue-d)}
.faq .ic{flex:0 0 auto;width:14px;height:14px;position:relative;margin-top:6px}
.faq .ic:before,.faq .ic:after{content:"";position:absolute;background:var(--blue-d);
  transition:transform .2s ease}
.faq .ic:before{left:0;top:6px;width:14px;height:2px}
.faq .ic:after{left:6px;top:0;width:2px;height:14px}
.faq details[open] .ic:after{transform:scaleY(0)}
.faq .ans{padding:0 0 20px}
.faq .ans p{margin:0 0 12px}
.faq .ans p:last-child{margin-bottom:0}

.glossary{margin:30px 0;border-top:1px solid var(--hair)}
.glossary .g{display:grid;grid-template-columns:200px minmax(0,1fr);gap:20px;
  padding:14px 0;border-bottom:1px solid var(--hair)}
.glossary .g dt{margin:0;font-weight:600;color:var(--ink)}
.glossary .g dd{margin:0;color:var(--body)}
@media(max-width:640px){.glossary .g{grid-template-columns:1fr;gap:4px}}

.pullquote{margin:38px 0;padding:4px 0 4px 26px;border-left:2px solid var(--blue)}
.pullquote p{margin:0;font-family:var(--display);font-size:clamp(20px,2vw,24px);
  line-height:1.45;color:var(--blue-d)}

.disclosures,.footnote{margin-top:40px;padding-top:22px;border-top:1px solid var(--hair);
  font-size:13px;line-height:1.75;color:var(--muted)}
.disclosures p{font-size:13px;line-height:1.75;color:var(--muted)}

.refs{margin:34px 0 0;padding-top:22px;border-top:1px solid var(--hair)}
.refs ol{padding-left:20px;margin:0}
.refs li{font-size:14px;line-height:1.7;color:var(--muted);margin-bottom:8px}

/* --- article furniture below the body --- */
.authorbox{background:var(--grey1);padding:clamp(34px,4vw,54px) 0;margin-top:56px}
.authorbox .label{font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--blue-d);margin-bottom:12px}
.authorbox .who{font-family:var(--display);font-size:26px;color:var(--ink);margin-bottom:12px}
.authorbox p{max-width:74ch;font-size:15.5px;line-height:1.75;color:var(--body);margin:0 0 18px}
.authorbox .links{display:flex;flex-wrap:wrap;gap:24px;font-size:14px;font-weight:600}
.authorbox .links a{color:var(--blue-d)}

.more{padding:clamp(34px,4vw,54px) 0}
.more h2{font-family:var(--display);font-weight:400;font-size:26px;margin:0 0 8px;color:var(--ink)}
.more-row{display:flex;justify-content:space-between;align-items:baseline;gap:24px;
  padding:18px 0;border-bottom:1px solid var(--hair);text-decoration:none}
.more-row .t{font-family:var(--display);font-size:18px;line-height:1.4;color:var(--ink)}
.more-row:hover .t{color:var(--blue-d)}
.more-row .c{flex:0 0 auto;font-family:var(--sans);font-size:11px;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
@media(max-width:640px){.more-row{flex-direction:column;gap:6px}}

/* The author/principal photo blocks are written inline in three hub articles
   (our-approach, methodology, jerry-baker-bio). The <img> carries a class but
   no CSS existed for it anywhere, so it rendered at its natural size -- a
   560px portrait inside an 880px box. Size it here; the markdown keeps only
   the src and alt. */
.author-photo,.principal-photo{width:92px;height:92px;flex:0 0 92px;
  border-radius:50%;object-fit:cover;object-position:50% 18%}
@media(max-width:640px){.author-photo,.principal-photo{width:72px;height:72px;flex-basis:72px}}

/* --- hub-article furniture -------------------------------------------------
   Twenty-five articles had their HTML indented four spaces, so markdown treated
   it as a code block and the pages printed their own source. De-indenting them
   (scripts/fix-indented-html.py) made the elements real -- and revealed that
   their classes had never had any CSS either. These are the ones that appear
   across many pages; all are scoped under .prose. */

.prose .breadcrumbs{display:none}          /* the 2026 mast already shows the path */
.prose .kicker{font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--blue-d);margin:52px 0 6px}
.prose .optima{font-family:var(--display);font-weight:400}
.prose .divider{border:0;border-top:1px solid var(--hair);margin:44px 0}
.prose .about-section{margin:0 0 8px}
.prose .sect-sub{font-size:16.5px;line-height:1.75;color:var(--muted);margin:0 0 26px}
.prose .back-link{display:inline-block;font-family:var(--sans);font-size:13px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--blue-d);border:0;margin-bottom:22px}
.prose .editorial-note{font-size:18px;line-height:1.7;color:var(--ink)}
.prose .review-note,.prose .filed{font-size:13px;line-height:1.7;color:var(--muted);margin-top:26px}

/* on-this-page banner */
.prose .toc-banner{background:var(--grey1);padding:20px 24px;margin:30px 0 38px}
.prose .toc-toggle{background:none;border:0;padding:0;cursor:pointer;font-family:var(--sans);
  font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--blue-d)}
.prose .toc-links{display:flex;flex-wrap:wrap;gap:8px 26px;margin-top:14px}
.prose .toc-links a{font-size:14.5px;color:var(--body);border-bottom:1px solid var(--hair)}
.prose .toc-links a:hover{color:var(--blue-d)}

/* stat band */
.prose .stat-band{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:1px;background:var(--hair);border:1px solid var(--hair);margin:34px 0}
.prose .stat-tile{background:#fff;padding:26px 24px}
.prose .stat-tile .num{font-family:var(--display);font-size:30px;line-height:1.1;color:var(--blue-d)}
.prose .stat-tile .lbl{font-family:var(--sans);font-size:11.5px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted);margin-top:8px}

/* numbered steps and pillars */
.prose .step,.prose .pillar{border-left:2px solid var(--blue);padding:2px 0 2px 22px;margin:26px 0}
.prose .step h3,.prose .pillar h3{margin-top:0}

/* card grids used by the explore / property-type / coverage sections */
.prose .explore-card,.prose .ptcard,.prose .gcard,.prose .citem{display:block;
  border:1px solid var(--hair);padding:22px 24px;margin:14px 0;text-decoration:none}
.prose .explore-card:hover,.prose .ptcard:hover,.prose .gcard:hover,.prose .citem:hover{border-color:var(--blue-d)}
.prose .gcard .gn{font-family:var(--display);font-size:18px;color:var(--ink)}
.prose .gcard .garrow{float:right;color:var(--blue-d)}

/* legacy accordion markup: .faq-item / .answer, distinct from the newer .faq/.ans */
.prose details.faq-item{border-bottom:1px solid var(--hair)}
.prose details.faq-item summary{cursor:pointer;padding:18px 0;font-family:var(--display);
  font-size:17.5px;line-height:1.4;color:var(--ink)}
.prose details.faq-item summary:hover{color:var(--blue-d)}
.prose details.faq-item .answer{padding:0 0 18px;font-size:16px;line-height:1.75;color:var(--body)}
.prose .glossary-term{font-weight:600;color:var(--ink)}
.prose .portal-link{font-weight:600;color:var(--blue-d)}

/* the author / principal cards written inline in the hub articles */
.prose .author-box,.prose .principal-box{display:flex;gap:22px;align-items:flex-start;
  background:var(--grey1);padding:26px 28px;margin:38px 0 0}
.prose .a-name,.prose .p-name{font-family:var(--display);font-size:21px;color:var(--ink)}
.prose .a-title,.prose .p-title{font-family:var(--sans);font-size:12px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:6px 0 12px}
@media(max-width:640px){.prose .author-box,.prose .principal-box{flex-direction:column;gap:16px}}

/* ==========================================================================
   The learn-layout family -- sponsors, markets, glossary, property types,
   audiences. These 230 pages each carried 5-15KB of inline <style> that the
   port drops; the rules below are those rules, deduped to 84, scoped under
   .prose (or .rail) so generic names like .author, .name, .top, .go, .d and
   .tn/.tc/.td cannot leak, and repointed at the 2026 tokens:
     --navy -> --blue-d   --ink-soft -> --body   --wash -> --pale
     --hairline -> --hair --navy-dark -> --ink
   Three blue-grey literals (#7a8089, #9aa0ab, #5F6873) became --muted:
   at 0.66rem on a pale tile they measured under 4.5:1.
   ========================================================================== */
.prose .aud-btn{display: inline-block; background: var(--blue-d); color: #fff; font-weight: 700; font-size: 0.9rem; padding: 0.7rem 1.3rem; border-radius: 3px; margin: 0.4rem 0 0.6rem;}
.prose .aud-btn:hover{background: var(--ink);}
.prose .mk-stats{display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.8rem; margin: 1.2rem 0 1.6rem;}
.prose .mk-stat{background: var(--pale); border: 1px solid var(--hair); border-radius: 3px; padding: 0.8rem 1rem;}
.prose .mk-stat .l{font-size: 0.66rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted);}
.prose .mk-stat .v{font-size: 1.05rem; font-weight: 700; margin-top: 0.15rem;}
.prose .mk-callout{background: var(--pale); border-left: 3px solid var(--blue-d); border-radius: 3px; padding: 0.9rem 1.1rem; font-size: 0.88rem; margin: 1.2rem 0;}
.prose .mk-faq{border-top: 1px solid var(--hair); margin-top: 1.6rem; padding-top: 1rem;}
.prose .mk-faq details{border-bottom: 1px solid var(--hair); padding: 0.6rem 0;}
.prose .mk-faq summary{font-size: 0.92rem; font-weight: 700; cursor: pointer;}
.prose .mk-faq p{margin-top: 0.5rem;}
.prose .mk-disclosure{font-size: 0.72rem; line-height: 1.55; color: var(--muted); margin-top: 1.4rem; padding-top: 1rem; border-top: 1px solid var(--hair);}
.prose .gl-source .label, .prose .mk-stat .label, .prose .sp-fact .l, .prose .sp-facts .l{color:var(--muted) !important;}
.prose .learn-article p a, .prose .learn-article .meta a, .prose .eeat a{text-decoration:underline; text-underline-offset:2px;}
.prose .mk-head{margin-bottom: 1rem;}
.prose .mk-head h1{font-size: clamp(1.6rem, 2.8vw, 2.1rem); font-weight: 800; letter-spacing: -0.01em; margin-bottom: 0.4rem;}
.prose .mk-head p{font-size: 0.92rem; color: var(--muted); line-height: 1.6; max-width: 42rem;}
.prose .mk-search{margin: 1rem 0 1.4rem;}
.prose .mk-search input{width: 100%; font: inherit; font-size: 0.95rem; padding: 0.7rem 1rem; border: 1px solid var(--hair); border-radius: 3px;}
.prose .region-group{margin-bottom: 1.6rem; scroll-margin-top: 120px;}
.prose .region-group h2{font-size: 1.1rem; font-weight: 800; color: var(--blue-d); padding-bottom: 0.35rem; border-bottom: 2px solid var(--hair); margin-bottom: 0.6rem;}
.prose .state-grid{display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.4rem 1rem;}
.prose .state-grid a{font-size: 0.9rem; color: var(--body); padding: 0.4rem 0.5rem; border-radius: 3px;}
.prose .state-grid a:hover{background: var(--grey1); color: var(--blue-d);}
.prose .aud-cards{display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 1.4rem;}
.prose .aud-cards a{display: flex; flex-direction: column; background: #fff; border: 1px solid var(--hair); border-radius: 3px; padding: 1.25rem; transition: box-shadow 0.2s, transform 0.2s;}
.prose .aud-cards a:hover{box-shadow: 0 10px 28px rgba(9,14,26,0.08); transform: translateY(-2px);}
.prose .aud-cards .tag{font-size: 0.68rem; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--blue-d); margin-bottom: 0.4rem;}
.prose .aud-cards h3{font-size: 1rem; font-weight: 700; color: var(--ink); margin-bottom: 0.35rem;}
.prose .aud-cards p{font-size: 0.86rem; line-height: 1.55; color: var(--muted); flex: 1;}
.prose .aud-cards .go{font-size: 0.8rem; font-weight: 600; color: var(--blue-d); margin-top: 0.9rem;}
.prose .aud-band{margin-top: 1.6rem; padding: 1.4rem 1.6rem; background: var(--pale); border: 1px solid var(--hair); border-radius: 3px; display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; justify-content: space-between;}
.prose .aud-band h3{font-size: 1rem; font-weight: 700; margin-bottom: 0.2rem;}
.prose .aud-band p{font-size: 0.86rem; color: var(--muted); margin: 0;}
.prose .aud-band a{font-size: 0.85rem; font-weight: 700; color: #fff; background: var(--blue-d); padding: 0.6rem 1.1rem; border-radius: 3px; white-space: nowrap;}
.prose .gl-source{background: var(--pale); border-left: 3px solid var(--blue-d); border-radius: 3px; padding: 0.85rem 1.1rem; font-size: 0.85rem; margin: 1.4rem 0;}
.prose .gl-source .label{font-size: 0.66rem; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--muted); display: block; margin-bottom: 0.2rem;}
.prose .related-terms{display: flex; flex-wrap: wrap; gap: 0.5rem;}
.prose .related-terms a{font-size: 0.84rem; font-weight: 600; color: var(--blue-d); background: var(--pale); border-radius: 999px; padding: 0.35rem 0.85rem;}
.prose .related-terms a:hover{background: var(--hair);}
.prose .eeat{border-top: 1px solid var(--hair); margin-top: 2rem; padding-top: 1.4rem;}
.prose .eeat .author{display: flex; gap: 1rem; align-items: flex-start; margin-bottom: 1rem;}
.prose .eeat .author img{width: 52px; height: 52px; border-radius: 50%; object-fit: cover; flex: 0 0 auto; background: var(--pale);}
.prose .eeat .author .name{font-size: 0.9rem; font-weight: 700;}
.prose .eeat .author .role{font-size: 0.76rem; color: var(--muted);}
.prose .eeat .author p{font-size: 0.84rem; line-height: 1.6; margin: 0.4rem 0 0;}
.prose .eeat .reviewer{font-size: 0.78rem; color: var(--muted); line-height: 1.6;}
.prose .gl-disclosure{font-size: 0.72rem; line-height: 1.55; color: var(--muted); margin-top: 1.4rem; padding-top: 1rem; border-top: 1px solid var(--hair);}
.prose .gl-hub-head{margin-bottom: 1rem;}
.prose .gl-hub-head h1{font-size: clamp(1.6rem, 2.8vw, 2.1rem); font-weight: 800; letter-spacing: -0.01em; margin-bottom: 0.4rem;}
.prose .gl-hub-head p{font-size: 0.92rem; color: var(--muted); line-height: 1.6; max-width: 42rem;}
.prose .gl-search{margin: 1rem 0 1.4rem; display: none;}
.prose .letter-group{margin-bottom: 1.8rem; scroll-margin-top: 120px;}
.prose .letter-group h2{font-size: 1.15rem; font-weight: 800; color: var(--blue-d); padding-bottom: 0.35rem; border-bottom: 2px solid var(--hair); margin-bottom: 0.3rem;}
.prose .term-row{display: block; padding: 0.7rem 0.4rem; border-bottom: 1px solid var(--hair);}
.prose .term-row:last-child{border-bottom: none;}
.prose .term-row:hover{background: var(--grey1);}
.prose .term-row .tn{font-size: 0.95rem; font-weight: 700; color: var(--ink);}
.prose .term-row .tc{font-size: 0.66rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--muted); margin-left: 0.5rem;}
.prose .term-row .td{display: block; font-size: 0.85rem; color: var(--muted); line-height: 1.5; margin-top: 0.1rem;}
.prose .sp-logo{height: 46px; max-width: 180px; width: auto; object-fit: contain;}
.prose .sp-facts{display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.8rem; margin: 1.2rem 0 1.6rem;}
.prose .sp-fact{background: var(--pale); border: 1px solid var(--hair); border-radius: 3px; padding: 0.75rem 0.9rem;}
.prose .sp-fact .l{font-size: 0.64rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--muted);}
.prose .sp-fact .v{font-size: 1.02rem; font-weight: 700; margin-top: 0.15rem;}
.prose .sp-adv{background: var(--pale); border-left: 3px solid var(--blue-d); border-radius: 3px; padding: 0.9rem 1.1rem; font-size: 0.9rem; margin: 1.2rem 0;}
.prose table.sp-deals{width: 100%; border-collapse: collapse; font-size: 0.84rem;}
.prose table.sp-deals caption{text-align: left; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--muted); padding: 0.7rem 0.9rem 0;}
.prose table.sp-deals thead th{text-align: left; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted); background: var(--pale); padding: 0.6rem 0.9rem; border-bottom: 1px solid var(--hair); white-space: nowrap;}
.prose table.sp-deals tbody td{padding: 0.55rem 0.9rem; border-bottom: 1px solid var(--grey1); color: var(--body); vertical-align: top;}
.prose table.sp-deals tbody tr:last-child td{border-bottom: none;}
.prose table.sp-deals tbody tr:nth-child(even) td{background: var(--grey1);}
.prose table.sp-deals td.num, .prose table.sp-deals th.num{text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums;}
.prose table.sp-deals td.inv{font-weight: 600; color: var(--ink);}
.prose .sp-deals-note{font-size: 0.74rem; line-height: 1.55; color: var(--muted); margin: 0.2rem 0 0.4rem;}
.prose .sp-cards{display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 1.4rem;}
.prose .sp-cards a{display: flex; flex-direction: column; background: #fff; border: 1px solid var(--hair); border-radius: 3px; padding: 1.1rem 1.25rem; transition: box-shadow 0.2s, transform 0.2s;}
.prose .sp-cards a:hover{box-shadow: 0 10px 28px rgba(9,14,26,0.08); transform: translateY(-2px);}
.prose .sp-cards .top{display: flex; align-items: center; justify-content: space-between; gap: 0.6rem; margin-bottom: 0.5rem;}
.prose .sp-cards img{height: 30px; max-width: 130px; width: auto; object-fit: contain;}
.prose .sp-cards .chip{font-size: 0.6rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: #fff; background: var(--blue-d); border-radius: 999px; padding: 0.15rem 0.5rem; white-space: nowrap;}
.prose .sp-cards h3{font-size: 0.98rem; font-weight: 700; color: var(--ink); margin-bottom: 0.3rem;}
.prose .sp-cards p{font-size: 0.82rem; line-height: 1.5; color: var(--muted); flex: 1;}
.prose .sp-cards .go{font-size: 0.8rem; font-weight: 600; color: var(--blue-d); margin-top: 0.8rem;}

/* grids collapse on narrow screens -- the originals had no responsive rules
   for these, so at 390px the three-up stat tiles overflowed their track */
@media(max-width:760px){
  .prose .mk-stats,.prose .sp-facts,.prose .state-grid,
  .prose .sp-cards,.prose .aud-cards{grid-template-columns:1fr}
  .prose .sp-head{flex-direction:column;align-items:flex-start;gap:14px}
}
/* the lifted sidebar is hand-grouped (<details> + <ul>), which the flat .rail
   was never written for */
.rail--grouped details{border-top:1px solid var(--hair);padding:10px 0}
.rail--grouped details:first-of-type{border-top:0}
.rail--grouped summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;
  align-items:center;gap:10px;font-family:var(--sans);font-size:12.5px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:6px 0}
.rail--grouped summary::-webkit-details-marker{display:none}
.rail--grouped summary:after{content:"";width:7px;height:7px;flex:none;
  border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
  transform:rotate(45deg) translateY(-2px);transition:transform .2s}
.rail--grouped details[open] summary:after{transform:rotate(-135deg) translateY(-2px)}
.rail--grouped ul{list-style:none;margin:4px 0 8px;padding:0}
.rail--grouped li{margin:0}
.rail--grouped li a{display:block;padding:6px 0;font-size:14.5px;line-height:1.4;color:var(--body)}
.rail--grouped li a:hover{color:var(--blue-d)}
.rail--grouped li a[aria-current="page"]{color:var(--blue-d);font-weight:600}
.rail .learn-back{display:block;font-size:13px;font-weight:600;letter-spacing:.04em;
  color:var(--blue-d);margin-bottom:18px}
.rail .learn-back:hover{color:var(--ink)}
/* ---- /performance/ ------------------------------------------------ */
.prose--wide{max-width:none}
.perf-tabs{display:flex;gap:4px;border-bottom:1px solid var(--hair);margin:0 0 26px;overflow-x:auto}
.perf-tabs button{font:inherit;font-size:14px;font-weight:600;color:var(--muted);background:none;border:0;border-bottom:2px solid transparent;padding:11px 16px;cursor:pointer;white-space:nowrap}
.perf-tabs button:hover{color:var(--blue-d)}
.perf-tabs button.active{color:var(--blue-d);border-bottom-color:var(--blue-d)}
.perf-tabs button:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.perf-panel{display:none}
.perf-panel.active{display:block}
.perf-panel h2{margin:0 0 24px}
.perf-controls{display:flex;flex-wrap:wrap;gap:12px;margin:6px 0 20px;align-items:center}
.perf-controls select,.perf-controls input{font:inherit;font-size:14px;color:var(--ink);border:1px solid var(--hair);border-radius:6px;padding:10px 14px;background:#fff}
.perf-controls select{appearance:none;-webkit-appearance:none;padding-right:38px;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23332E24' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:14px}
.perf-controls input{width:min(20rem,100%)}
.perf-count{font-size:13px;color:var(--muted);margin-left:auto}
.perf-wrap{overflow-x:auto;border:1px solid var(--hair);border-radius:10px}
table.perf{width:100%;border-collapse:collapse;font-size:14px;min-width:46rem}
table.perf thead th{position:sticky;top:0;background:var(--grey1);z-index:2;text-align:left;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:11px 14px;border-bottom:1px solid var(--hair);cursor:pointer;user-select:none;white-space:nowrap}
table.perf thead th .dir{color:var(--blue-d)}
table.perf tbody td{padding:10px 14px;border-bottom:1px solid var(--hair);color:var(--body)}
table.perf tbody tr:last-child td{border-bottom:none}
table.perf tbody tr:hover{background:var(--pale)}
table.perf td.num{font-variant-numeric:tabular-nums;white-space:nowrap}
table.perf td a{color:var(--blue-d);font-weight:600}
table.perf td a:hover{text-decoration:underline}
.sp-nodata-cell{font-size:12px;color:var(--muted);font-style:italic;text-align:left!important}
.pref-chip{display:inline-block;margin-left:8px;font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--blue-d);background:var(--pale);border-radius:999px;padding:3px 9px;vertical-align:middle}
.page-note{font-size:12.5px;line-height:1.6;color:var(--muted);margin-top:32px;max-width:66rem}
@media(max-width:720px){.perf-count{margin-left:0}}

/* ---------- interactive article tools -------------------------------------
   The mineral-rights guide ships four of these. Every class below appeared in
   the article markup with no rule anywhere, so the tools rendered as unstyled
   markup even before the missing JavaScript was written. Scoped under .tool so
   nothing here can reach ordinary prose. */
.tool{border:1px solid var(--hair);border-radius:4px;margin:34px 0;overflow:hidden;background:#fff}
.tool .tbar{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;
  background:var(--blue-d);color:#fff;padding:14px 22px}
.tool .tk{font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.15em;
  text-transform:uppercase;color:var(--blue-lt)}
.tool .tt{font-family:var(--sans);font-size:15px;font-weight:600;color:#fff}
.tool .tin{padding:24px 22px 26px}
.tool .tsub{font-size:13.5px;line-height:1.65;color:var(--muted);margin:0 0 20px}
.tool .fld{display:flex;flex-direction:column;gap:8px}
.tool label{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.13em;
  text-transform:uppercase;color:var(--muted)}
.tool select,.tool input[type=date]{font:inherit;font-size:15px;color:var(--ink);background:#fff;
  border:1px solid var(--hair);border-radius:3px;padding:11px 12px;width:100%;max-width:100%}
.tool select:focus,.tool input:focus{outline:2px solid var(--blue);outline-offset:1px}

.tool .seg{display:flex;flex-wrap:wrap;gap:8px}
.tool .seg button{font:inherit;font-size:13.5px;color:var(--body);background:#fff;cursor:pointer;
  border:1px solid var(--hair);border-radius:3px;padding:10px 16px;transition:background .15s,color .15s,border-color .15s}
.tool .seg button:hover{border-color:var(--blue-d);color:var(--blue-d)}
.tool .seg button.on{background:var(--blue-d);border-color:var(--blue-d);color:#fff}

.tool .ruralrow{display:flex;align-items:flex-start;gap:10px;margin-top:18px}
.tool .ruralrow input{margin-top:3px;flex:none;width:16px;height:16px;accent-color:var(--blue-d)}

.tool .vbox{margin-top:22px;padding:16px 18px;border-left:3px solid var(--hair);background:var(--grey1)}
.tool .vbox.ok{border-left-color:#1E6B2E;background:#F1F7F2}
.tool .vbox.warn{border-left-color:#8A6A16;background:#FAF6EC}
.tool .vbox.bad{border-left-color:#A8271E;background:#FBF2F1}
.tool .vh{font-family:var(--sans);font-size:15px;font-weight:700;color:var(--ink);margin-bottom:7px}
.tool .vp{font-size:14px;line-height:1.7;color:var(--body)}
.tool .vcav{display:block;margin-top:9px;font-size:12.5px;color:var(--muted)}

.tool .selrow{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:16px;align-items:end}
.tool .ar{font-size:20px;color:var(--blue-d);padding-bottom:11px}

.tool .twocol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.tool .obig{border:1px solid var(--hair);border-radius:3px;padding:16px 18px;background:var(--pale)}
.tool .obig .l{font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.13em;
  text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.tool .obig .n{font-family:var(--display);font-size:clamp(19px,2vw,24px);line-height:1.2;color:var(--blue-d)}

.tool .check{display:flex;flex-direction:column;gap:2px}
.tool .ckrow{display:flex;align-items:flex-start;gap:11px;padding:11px 2px;cursor:pointer;
  border-bottom:1px solid var(--hair);text-transform:none;letter-spacing:0;font-weight:400}
.tool .ckrow:last-child{border-bottom:0}
.tool .ckrow input{margin-top:3px;flex:none;width:16px;height:16px;accent-color:var(--blue-d)}
.tool .ckt b{display:block;font-family:var(--sans);font-size:14px;font-weight:600;color:var(--ink);line-height:1.5}
.tool .ckt em{display:block;margin-top:3px;font-style:normal;font-size:12.5px;line-height:1.6;color:var(--muted)}

.tool .scorewrap{display:flex;align-items:center;gap:18px;margin-top:20px;padding-top:18px;
  border-top:1px solid var(--hair)}
.tool .scorenum{font-family:var(--display);font-size:26px;color:var(--muted);white-space:nowrap}
.tool .scorenum b{color:var(--blue-d)}
.tool .scoreverdict .v{font-family:var(--sans);font-size:14.5px;font-weight:700;color:var(--ink)}
.tool .scoreverdict .vt{font-size:13px;color:var(--muted);margin-top:2px}

.tool .flag{margin-top:16px;font-size:13.5px;line-height:1.65;color:var(--body);
  padding:12px 14px;border-left:3px solid var(--blue);background:var(--pale)}
.tool .flag.warn{border-left-color:#8A6A16;background:#FAF6EC}
.tool .flag.bad{border-left-color:#A8271E;background:#FBF2F1}

.tool .qblock{padding:16px 0;border-bottom:1px solid var(--hair)}
.tool .qblock:first-child{padding-top:0}
.tool .qq{font-family:var(--sans);font-size:14.5px;font-weight:600;color:var(--ink);margin-bottom:11px}
.tool .qa{display:flex;flex-wrap:wrap;gap:8px}
.tool .qopt{font:inherit;font-size:13.5px;color:var(--body);background:#fff;cursor:pointer;
  border:1px solid var(--hair);border-radius:3px;padding:9px 15px;text-align:left;
  transition:background .15s,color .15s,border-color .15s}
.tool .qopt:hover{border-color:var(--blue-d);color:var(--blue-d)}
.tool .qopt.on{background:var(--blue-d);border-color:var(--blue-d);color:#fff}

.tool .trow{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.tool .toolbtn{font-family:var(--sans);font-size:13.5px;font-weight:600;cursor:pointer;
  background:var(--blue-d);color:#fff;border:1px solid var(--blue-d);border-radius:3px;padding:12px 22px}
.tool .toolbtn:hover:not(:disabled){background:var(--blue);border-color:var(--blue)}
.tool .toolbtn:disabled{cursor:not-allowed;background:var(--grey1);border-color:var(--hair);color:var(--muted)}
.tool .toolbtn.ghost{background:#fff;color:var(--blue-d)}
.tool .toolbtn.ghost:hover{background:var(--pale)}

.tool .result{display:none;margin-top:22px;padding-top:20px;border-top:1px solid var(--hair)}
.tool .result.show{display:block}
.tool .rlabel{font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.15em;
  text-transform:uppercase;color:var(--muted)}
.tool .rname{font-family:var(--display);font-size:clamp(21px,2.4vw,27px);line-height:1.25;
  color:var(--blue-d);margin:6px 0 10px}
.tool .rwhy{font-size:14.5px;line-height:1.75;color:var(--body)}
.tool .rbars{margin:20px 0 16px;display:flex;flex-direction:column;gap:9px}
.tool .rbar{display:grid;grid-template-columns:minmax(0,15em) minmax(0,1fr) 3.2em;gap:12px;align-items:center}
.tool .rl{font-family:var(--sans);font-size:12.5px;font-weight:600;color:var(--body)}
.tool .rt{height:8px;border-radius:4px;background:var(--grey1);overflow:hidden}
.tool .rt i{display:block;height:100%;background:var(--blue);border-radius:4px}
.tool .rv{font-family:var(--sans);font-size:12.5px;font-weight:700;color:var(--blue-d);
  text-align:right;font-variant-numeric:tabular-nums}
.tool .trade{font-size:13.5px;line-height:1.7;color:var(--muted);padding:13px 15px;background:var(--grey1)}

@media(max-width:640px){
  .tool .selrow{grid-template-columns:minmax(0,1fr)}
  .tool .ar{padding:0;text-align:center;transform:rotate(90deg)}
  .tool .twocol{grid-template-columns:minmax(0,1fr)}
  .tool .rbar{grid-template-columns:minmax(0,1fr) 3.2em;row-gap:5px}
  .tool .rt{grid-column:1/-1}
}
