/* ═══════════════════════════════════════════════════════════════════
   FMH 2.0 · estate content system
   One stylesheet for every engine-migrated route: Journal articles,
   guides, location pages, the hub. The content markup is PRESERVED
   production HTML (31-class vocabulary); this sheet re-skins it into
   the D system: warm paper, ink, Fraunces voice, the measured yellow
   only where it earns its place. Loaded only by estate pages.
   ═══════════════════════════════════════════════════════════════════ */

/* the preserved content styles itself through the old token names:
   remap them once to the D palette */
.fmh2 main{
  --text-dark:#0A0A0A; --text-mid:#2A2926; --text-cap:#6B675E;
  --white:#0A0A0A; --grey1:#2A2926; --grey2:#6B675E; --grey3:#6B675E;
  --gold:#8a6d00; --gold-on-light:#7a6200;
  --gold-bd:rgba(10,10,10,.22); --gold-bg:rgba(244,220,50,.18);
  --serif:var(--fmh2-serif); --sans:var(--fmh2-sans);
  --ease:cubic-bezier(.22,1,.36,1);
  /* the preserved <main> tag carries inline padding-top:calc(var(--nav-h)+22px) */
  --nav-h:52px;
  display:block; background:var(--fmh2-paper);
}

/* article column */
.fmh2 .art-main{display:block}
.fmh2 .art{max-width:660px;margin:0 auto;padding:18px var(--fmh2-gutter) 80px}
.fmh2 .art-bc{max-width:660px;margin:0 auto;padding:10px var(--fmh2-gutter) 0;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--fmh2-mid)}
.fmh2 .art-bc a{color:inherit;text-decoration:none}
.fmh2 .art-bc a:hover{color:var(--fmh2-ink)}

.fmh2 .art-meta1{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--fmh2-mid);margin:8px 0 14px}
.fmh2 .art-pill{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:4px 9px;border-radius:0;background:var(--fmh2-ink)!important;color:var(--fmh2-paper)!important}
.fmh2 .art-title{font-family:var(--fmh2-serif);font-variation-settings:"opsz" 144;font-weight:500;font-size:clamp(30px,7.6vw,44px);letter-spacing:-.02em;line-height:1.04;color:var(--fmh2-ink);margin-bottom:14px}
.fmh2 .art-review{font-size:12.5px;color:var(--fmh2-graphite);margin-bottom:20px;display:flex;align-items:center;gap:8px;border-top:1px solid var(--fmh2-line);border-bottom:1px solid var(--fmh2-line);padding:9px 2px}
.fmh2 .art-review b{color:var(--fmh2-ink);font-weight:650}
.fmh2 .art-doc{width:26px;height:26px;border-radius:50%;object-fit:cover;border:1px solid var(--fmh2-line);flex-shrink:0}
.fmh2 .art-hero{width:100%;aspect-ratio:16/9;border-radius:0;overflow:hidden;margin-bottom:22px;background:var(--fmh2-bone);border:1px solid var(--fmh2-line)}
.fmh2 .art-hero img,.fmh2 .art-hero svg{display:block;width:100%;height:100%;object-fit:cover}
.fmh2 .art-lead{font-family:var(--fmh2-serif);font-weight:460;font-style:italic;font-size:20px;line-height:1.5;color:var(--fmh2-graphite);margin-bottom:24px}

/* prose */
.fmh2 .art h2{font-family:var(--fmh2-serif);font-weight:560;font-size:24px;letter-spacing:-.01em;line-height:1.2;color:var(--fmh2-ink);margin:34px 0 10px}
.fmh2 .art h3{font-family:var(--fmh2-serif);font-weight:560;font-size:19px;color:var(--fmh2-ink);margin:26px 0 8px}
.fmh2 .art p{font-size:16.5px;color:var(--fmh2-graphite);line-height:1.7;margin-bottom:14px}
.fmh2 .art ul,.fmh2 .art ol{margin:0 0 16px;padding-left:20px}
.fmh2 .art li{font-size:16px;color:var(--fmh2-graphite);line-height:1.65;margin-bottom:7px}
.fmh2 .art a.ilink{color:var(--fmh2-ink);font-weight:600;text-decoration:none;border-bottom:2px solid var(--fmh2-yellow)}
.fmh2 .art a.ilink:hover{background:rgba(244,220,50,.35)}
.fmh2 .art .cimg{width:100%;border-radius:0;border:1px solid var(--fmh2-line);margin:6px 0 16px}
.fmh2 .art-note{font-size:13px;color:var(--fmh2-mid);border-left:2px solid var(--fmh2-line);padding-left:12px;margin:16px 0}
.fmh2 .art-disc{font-size:12.5px;font-style:italic;color:var(--fmh2-mid);margin-top:14px}

/* takeaway box: the one measured element on an article */
.fmh2 .art-take{background:#fff;border:1px solid var(--fmh2-line);border-left:3px solid var(--fmh2-yellow);border-radius:0;padding:18px 20px;margin:28px 0}
.fmh2 .art-take h4{font-family:var(--fmh2-sans);font-weight:700;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--fmh2-ink);margin-bottom:12px}
.fmh2 .art-take ul{list-style:none;display:flex;flex-direction:column;gap:9px;padding:0;margin:0}
.fmh2 .art-take li{position:relative;padding-left:22px;font-size:14.5px;color:var(--fmh2-graphite);line-height:1.5;margin:0}
.fmh2 .art-take li::before{content:'';position:absolute;left:0;top:7px;width:10px;height:10px;border-radius:0;background:var(--fmh2-yellow);outline:1px solid var(--fmh2-line)}
.fmh2 .art-take li::after{display:none}

/* tables */
.fmh2 .art table,.fmh2 .art-tbl{width:100%;border-collapse:collapse;font-size:14px;margin:16px 0;background:#fff}
.fmh2 .art th,.fmh2 .art td{border:1px solid var(--fmh2-line);padding:9px 11px;text-align:left;color:var(--fmh2-graphite)}
.fmh2 .art th{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--fmh2-mid);background:var(--fmh2-bone)}

/* CTA */
.fmh2 .art-cta{margin:30px 0 10px}
.fmh2 .art .btn,.fmh2 .art-cta .btn{display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:0 22px;background:var(--fmh2-ink);color:var(--fmh2-paper);font-weight:600;font-size:15.5px;text-decoration:none;border:0;border-radius:0;cursor:pointer;font-family:var(--fmh2-sans)}
.fmh2 .art .btn-gold,.fmh2 .art-cta .btn-gold{background:var(--fmh2-yellow);color:var(--fmh2-ink)}
.fmh2 .art .btn:hover{opacity:.92}

/* related reading rail */
.fmh2 .art-rel-h{font-family:var(--fmh2-serif);font-weight:560;font-size:17px;color:var(--fmh2-ink);margin:36px 0 12px}
.fmh2 .art-rel{display:flex;gap:12px;overflow-x:auto;scrollbar-width:none;margin:0 calc(-1*var(--fmh2-gutter));padding:2px var(--fmh2-gutter) 6px}
.fmh2 .art-rel::-webkit-scrollbar{display:none}
.fmh2 .relcard{flex:0 0 210px;background:#fff;border:1px solid var(--fmh2-line);box-shadow:none;border-radius:0;overflow:hidden;cursor:pointer;text-decoration:none}
.fmh2 .relcard:hover{border-color:var(--fmh2-ink)}
.fmh2 .rc-t{font-family:var(--fmh2-serif);font-weight:560;font-size:13.5px;color:var(--fmh2-ink);padding:10px 12px;line-height:1.3}
.fmh2 .hcard-hero{width:100%;aspect-ratio:16/9;display:block;background:var(--fmh2-bone)}
.fmh2 .hcard-hero img,.fmh2 .hcard-hero svg{display:block;width:100%;height:100%;object-fit:cover}

/* hub grid (patient-hub) */
.fmh2 .hub-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px 0}
.fmh2 .hcard{background:#fff;border:1px solid var(--fmh2-line);border-radius:0;overflow:hidden;cursor:pointer;display:flex;flex-direction:column;box-shadow:none;text-decoration:none}
.fmh2 .hcard:hover{border-color:var(--fmh2-ink)}
.fmh2 .hcard-body{padding:11px 12px 13px;display:flex;flex-direction:column;flex:1}
.fmh2 .hcard-pill{align-self:flex-start;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:0;margin-bottom:8px;background:var(--fmh2-bone)!important;color:var(--fmh2-ink)!important}
.fmh2 .hcard-t{font-family:var(--fmh2-serif);font-weight:560;font-size:14.5px;line-height:1.25;color:var(--fmh2-ink)}
.fmh2 .hcard-sub{font-size:12px;color:var(--fmh2-mid);line-height:1.4;margin-top:5px}
.fmh2 .hcard-meta{font-size:12px;color:var(--fmh2-mid);margin-top:auto;padding-top:9px}

/* location vocabulary */
.fmh2 .loc-btn{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 18px;background:var(--fmh2-ink);color:var(--fmh2-paper);font-weight:600;font-size:14.5px;text-decoration:none;border-radius:0;margin:4px 8px 4px 0}
.fmh2 .loc-cta{margin:26px 0}
.fmh2 .loc-day{background:#fff;border:1px solid var(--fmh2-line);padding:16px 18px;margin:18px 0}
.fmh2 .loc-day-h{font-family:var(--fmh2-serif);font-weight:560;font-size:16px;color:var(--fmh2-ink);margin-bottom:8px}
.fmh2 .loc-steps{list-style:none;padding:0;margin:14px 0;display:flex;flex-direction:column}
.fmh2 .loc-steps li,.fmh2 .loc-steps .l{border-top:1px solid var(--fmh2-line);padding:11px 0;font-size:15px;color:var(--fmh2-graphite);line-height:1.55}
.fmh2 .loc-steps li:last-child{border-bottom:1px solid var(--fmh2-line)}
.fmh2 .loc-steps .g,.fmh2 .art .g{font-weight:700;color:var(--fmh2-ink)}


/* estate assessment band (shell-authored close) */
.fmh2 .est-band{max-width:660px;margin:0 auto;padding:0 var(--fmh2-gutter) 84px}
.fmh2 .est-band .in{background:var(--fmh2-ink);color:var(--fmh2-paper);padding:26px 20px 24px}
.fmh2 .est-band h2{font-family:var(--fmh2-serif);font-weight:560;font-size:24px;line-height:1.15;margin:0 0 8px}
.fmh2 .est-band p{font-size:14px;line-height:1.6;color:var(--fmh2-paper-70);margin:0 0 16px}

@media(min-width:768px){
  .fmh2 main{--nav-h:74px}
  .fmh2 .art{max-width:680px}
  .fmh2 .art-bc,.fmh2 .est-band{max-width:680px}
  .fmh2 .hub-grid{grid-template-columns:repeat(3,1fr);gap:14px}
  .fmh2 .art-title{font-size:clamp(38px,4.6vw,50px)}
}

/* ── hub (patient-hub) chrome ── */
.fmh2 .hub-hero{max-width:660px;margin:0 auto;padding:96px var(--fmh2-gutter) 6px;text-align:left}
.fmh2 .hub-hero .eyebrow{display:block;font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--fmh2-mid);margin-bottom:10px}
.fmh2 .hub-hero h1{font-family:var(--fmh2-serif);font-variation-settings:"opsz" 144;font-weight:500;font-size:clamp(32px,8vw,46px);letter-spacing:-.02em;line-height:1.04;color:var(--fmh2-ink);margin-bottom:10px}
.fmh2 .hub-hero>p{font-size:16px;line-height:1.6;color:var(--fmh2-graphite);max-width:36em}
.fmh2 .paths{max-width:660px;margin:0 auto;padding:8px var(--fmh2-gutter) 0}
.fmh2 .paths-h{font-family:var(--fmh2-serif);font-weight:560;font-size:19px;color:var(--fmh2-ink);margin:10px 0 4px}
.fmh2 .paths-sub{font-size:13.5px;color:var(--fmh2-mid);margin-bottom:12px}
.fmh2 .paths-row{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;margin:0 calc(-1*var(--fmh2-gutter));padding:2px var(--fmh2-gutter) 8px}
.fmh2 .paths-row::-webkit-scrollbar{display:none}
.fmh2 .path-seq{flex:0 0 240px;background:#fff;border:1px solid var(--fmh2-line);padding:14px 15px;text-decoration:none;display:block}
.fmh2 .path-seq:hover{border-color:var(--fmh2-ink)}
.fmh2 .path-seq-h{font-family:var(--fmh2-serif);font-weight:560;font-size:15px;color:var(--fmh2-ink);margin-bottom:4px}
.fmh2 .path-seq-s{font-size:12.5px;color:var(--fmh2-mid);line-height:1.45}
.fmh2 .path-seq-go{display:inline-block;margin-top:9px;font-size:12px;font-weight:700;color:var(--fmh2-ink);border-bottom:2px solid var(--fmh2-yellow)}
.fmh2 .hub-filter{position:sticky;top:52px;z-index:30;background:var(--fmh2-paper);border-bottom:1px solid var(--fmh2-line);margin-top:14px}
.fmh2 .fpills{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;max-width:660px;margin:0 auto;padding:10px var(--fmh2-gutter)}
.fmh2 .fpills::-webkit-scrollbar{display:none}
.fmh2 .fpills button,.fmh2 .fpill{flex:none;font-family:var(--fmh2-sans);font-size:12.5px;font-weight:600;padding:8px 14px;background:#fff;border:1px solid var(--fmh2-line);border-radius:0;color:var(--fmh2-graphite);cursor:pointer}
.fmh2 .fpills button.on,.fmh2 .fpill.on,.fmh2 .fpills button[aria-pressed="true"]{background:var(--fmh2-ink);color:var(--fmh2-paper);border-color:var(--fmh2-ink)}
.fmh2 main.hub-grid{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px var(--fmh2-gutter) 60px}
@media(min-width:768px){.fmh2 main.hub-grid{grid-template-columns:repeat(3,1fr);gap:14px}.fmh2 .hub-filter{top:74px}}

/* ── legal prose (privacy/terms/cookies/404 shells) ── */
.fmh2 .art>h1{font-family:var(--fmh2-serif);font-variation-settings:"opsz" 144;font-weight:500;font-size:clamp(30px,7.6vw,44px);letter-spacing:-.02em;line-height:1.06;color:var(--fmh2-ink);margin:8px 0 16px}
.fmh2 .art .cookie-category{background:#fff;border:1px solid var(--fmh2-line);padding:14px 16px;margin:14px 0}
.fmh2 .art .cookie-cat-header{display:flex;justify-content:space-between;gap:12px;font-weight:650;color:var(--fmh2-ink);margin-bottom:6px}
.fmh2 .art .always-on{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--fmh2-mid)}
/* wide tables scroll inside their own container, never the page */
.fmh2 .art table{display:block;overflow-x:auto;max-width:100%}
@media(min-width:560px){.fmh2 .art table{display:table;overflow:visible}}
/* hub path cards carry legacy inline styles; contained corrections */
.fmh2 .path-seq{border-radius:0!important;background:#fff!important;border:1px solid var(--fmh2-line)!important;box-shadow:none!important}
.fmh2 .path-seq-go{background:var(--fmh2-yellow)!important;color:var(--fmh2-ink)!important;border:0!important;border-radius:0!important;padding:8px 12px!important;font-weight:700!important}
.fmh2 .paths-h,.fmh2 .paths-sub{text-align:left!important}

/* Data tables carry an intrinsic minimum width that wrapping cannot reduce,
   so an unwrapped table on a narrow handset widens the whole DOCUMENT rather
   than just itself: the cookie table pushed /cookies-policy to 385px inside a
   320px viewport. Let the table scroll inside its own box instead. Tables that
   already sit in a scroll wrapper are unaffected. */
.legal table,.art table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}

/* Bare URLs in legal copy (privacy statement links, for example) are single
   unbreakable tokens. Their box stays the right width while the text spills
   out of it, so the page widens without any element measuring too wide, which
   is why a width-based check misses this. break-word only breaks a word that
   would otherwise overflow, so ordinary copy is untouched. */
.legal,.art{overflow-wrap:break-word}
