/* Rooftop Daily — site styles
   Editorial system modeled on the big shelter-magazine sites: white page, warm cream story
   panels, regular-weight display serif, bookish body serif, tiny tracked uppercase meta. */
:root {
  --ink: #1A1B1A;
  --paper: #FFFFFF;
  --cream: #FBF5E9;
  --cream-deep: #F4EBD8;
  --rule: #E4DED2;
  --moss: #2F5A45;
  --moss-ink: #234536;
  --moss-tint: #DCE8DF;
  --brick: #A2462B;
  --muted: #6A6C69;
  --display: "Newsreader", Georgia, "Times New Roman", serif;
  --serif: "Source Serif 4", "Source Serif Pro", Georgia, serif;
  --sans: "Instrument Sans", "Helvetica Neue", Arial, sans-serif;
  --wrap: 1000px;      /* the main editorial frame */
  --col: 620px;        /* article text column */
  --rail: 300px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0; background: var(--paper); color: var(--ink);
  font-family: var(--serif); font-size: 18px; line-height: 1.6;
  text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
::selection { background: var(--moss-tint); }

.th-wrap { max-width: calc(var(--wrap) + 48px); margin: 0 auto; padding: 0 24px; }
.th-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.th-skip { position: absolute; left: -999px; top: 0; background: var(--ink); color: #fff; padding: 8px 12px; z-index: 50; }
.th-skip:focus { left: 8px; }
:focus-visible { outline: 2px solid var(--moss); outline-offset: 3px; }

.th-preview-bar { background: #F3E3A6; color: #4A3B00; font: 500 13px/1.4 var(--sans); text-align: center; padding: 8px 16px; }
mark.th-note { background: #F6E7AE; color: #4A3B00; font: 500 14px/1.55 var(--sans); padding: 2px 6px; }
p > mark.th-note:only-child { display: block; padding: 10px 14px; border-left: 3px solid #C9A227; }

/* ── shared type ─────────────────────────────── */
.th-kicker { font: 700 11px/1.3 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--moss); margin: 0 0 10px; }
.th-kicker a { text-decoration: none; }
.th-meta { font: 700 11px/1.5 var(--sans); letter-spacing: .1em; text-transform: uppercase; color: var(--ink); margin: 0; display: flex; flex-wrap: wrap; gap: 4px 14px; }
.th-meta > span, .th-meta > time { display: block; }
.th-meta span time { display: inline; }
.th-meta a { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.th-ornament { width: 40px; height: 14px; color: var(--moss); flex: none; }
.th-rule { display: block; width: 58px; height: 8px; color: var(--moss); margin: 10px 0 12px; }
.th-btn {
  display: inline-block; font: 600 14px/1 var(--sans); letter-spacing: .06em; text-transform: uppercase;
  background: var(--moss); color: #fff; border: 1px solid var(--moss); padding: 15px 22px; cursor: pointer;
  border-radius: 0; text-decoration: none; transition: background .15s, color .15s;
}
.th-btn:hover { background: var(--moss-ink); }
.th-btn--ghost { background: transparent; color: var(--moss); }
.th-btn--ghost:hover { background: var(--moss); color: #fff; }

/* ── utility bar + masthead ─────────────────────────────── */
.th-utility { background: var(--cream); }
.th-utility__inner { display: flex; justify-content: space-between; align-items: center; height: 30px; font: 500 12px/1 var(--sans); color: var(--muted); }
.th-utility__link { display: inline-flex; align-items: center; gap: 7px; color: var(--moss); text-decoration: none; }
.th-utility__link svg { width: 14px; height: 10px; }
.th-utility__link:hover { text-decoration: underline; }

.th-masthead { background: #fff; border-bottom: 1px solid var(--rule); position: sticky; top: 0; z-index: 30; }
.th-brand { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; height: 68px; }
.th-search { position: relative; justify-self: start; width: 210px; }
.th-search input { width: 100%; font: 400 14px/1 var(--serif); border: 1px solid #C9C4B8; border-radius: 999px; padding: 9px 36px 9px 16px; background: #fff; color: var(--ink); }
.th-search input:focus { outline: none; border-color: var(--moss); }
.th-search svg { position: absolute; right: 12px; top: 50%; width: 17px; height: 17px; transform: translateY(-50%); color: var(--ink); pointer-events: none; }
.th-logo { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: var(--moss); }
.th-logo__mark { width: 40px; height: 40px; }
.th-logo__word { font: 500 34px/1 var(--display); letter-spacing: -.02em; color: var(--moss); font-variation-settings: "opsz" 72; }
.th-cta { justify-self: end; font: 600 12px/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; background: var(--moss-tint); color: var(--moss-ink); text-decoration: none; padding: 10px 14px; }
.th-cta:hover { background: #CBDDD0; }
.th-menu-btn { display: none; background: none; border: 0; width: 26px; height: 18px; padding: 0; cursor: pointer; flex-direction: column; justify-content: space-between; }
.th-menu-btn span:not(.th-sr) { display: block; height: 2px; background: var(--ink); }
.th-nav ul { list-style: none; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 4px 20px; margin: 0 auto; padding-top: 0; padding-bottom: 14px; }
.th-nav a { font: 500 14.5px/1 var(--sans); text-decoration: none; color: var(--ink); padding: 4px 0; border-bottom: 2px solid transparent; }
.th-nav a:hover { border-bottom-color: var(--moss); }
.is-scrolled .th-nav { display: none; }

/* pill row of related guides (article pages) */
.th-pills { display: flex; align-items: center; gap: 14px; padding: 12px max(24px, calc((100% - var(--wrap)) / 2)); border-bottom: 1px solid var(--rule); overflow-x: auto; scrollbar-width: none; white-space: nowrap; }
.th-pills::-webkit-scrollbar { display: none; }
.th-pills__label { font: 700 11px/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; flex: none; }
.th-pills__label::after { content: "●"; font-size: 6px; vertical-align: middle; margin-left: 5px; color: var(--moss); }
.th-pills ul { list-style: none; display: flex; gap: 8px; margin: 0; padding: 0; }
.th-pills a { display: block; font: 500 13px/1 var(--sans); text-decoration: none; color: var(--ink); border: 1px solid var(--ink); border-radius: 999px; padding: 8px 13px; }
.th-pills a:hover { background: var(--ink); color: #fff; }

/* ── ads ─────────────────────────────── */
.th-ad__label { font: 400 11px/1 var(--sans) !important; color: #8A8A86; text-align: center; margin: 0 0 8px !important; letter-spacing: .02em; }
.th-ad__placeholder { display: grid; place-items: center; background: #EDEDEA; font: 500 11px/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; color: #A3A39E; height: 250px; }
.th-ad__placeholder--tall { height: 600px; }
.th-ad__placeholder--leader { height: 90px; max-width: 728px; margin: 0 auto; }
.th-leader { padding-top: 22px; padding-bottom: 22px; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); margin-top: 8px; margin-bottom: 8px; }
.th-leader--top { border: 0; background: #F6F6F4; max-width: none; padding-top: 18px; padding-bottom: 18px; margin: 0; }
.th-ad { margin: 2.2em 0; }
.th-ad--rail { margin: 0; }
.th-prose .th-ad { border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); padding: 14px 0 18px; }

/* ── home modules ─────────────────────────────── */
.th-module { padding-top: 52px; padding-bottom: 52px; }
.th-module--cream { background: var(--cream); }
.th-sectitle { display: flex; align-items: center; justify-content: center; gap: 12px; margin: 0 0 30px; }
.th-sectitle h2 { font: 400 34px/1.15 var(--display); letter-spacing: -.01em; margin: 0; font-variation-settings: "opsz" 60; }
.th-sectitle a { text-decoration: none; }
.th-sectitle a:hover { text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1px; }

.th-leadgrid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 20px; align-items: start; }
.th-stack { display: flex; flex-direction: column; }

.th-modgrid { display: grid; grid-template-columns: minmax(0, 1fr) var(--rail); gap: 40px; align-items: start; }
.th-modgrid__rail .th-ad { position: sticky; top: 130px; }
.th-row4 { display: grid; grid-template-columns: repeat(auto-fit, calc((100% - 48px) / 4)); justify-content: center; gap: 16px; margin-top: 16px; }
.th-row4--wide { gap: 24px; grid-template-columns: repeat(auto-fit, calc((100% - 72px) / 4)); }
.th-row4--list { grid-template-columns: repeat(auto-fit, calc((100% - 56px) / 3)); gap: 40px 28px; margin-top: 40px; }

/* ── cards ─────────────────────────────── */
.th-card { position: relative; }
.th-card__img { display: block; position: relative; overflow: hidden; background: var(--cream-deep); }
.th-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.th-card:hover .th-card__img img { transform: scale(1.025); }
.th-card__title { font-family: var(--display); font-weight: 400; letter-spacing: -.01em; margin: 0; font-variation-settings: "opsz" 48; }
.th-card__title a { text-decoration: none; }
.th-card__title a:hover { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.th-card__dek { font: 400 21px/1.35 var(--display); color: var(--moss); margin: 0 0 18px; }
.th-card__flag { position: absolute; left: 12px; top: 12px; background: #fff; font: 700 10px/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; padding: 6px 8px; }
.is-upcoming .th-card__title { color: #3D3F3C; }
.th-card--stack .th-card__flag, .th-card--grid .th-card__flag { left: 8px; top: 8px; font-size: 8.5px; padding: 4px 6px; }

.th-card--lead .th-card__img { aspect-ratio: 2 / 1; }
.th-card--lead .th-card__body { background: var(--cream); padding: 30px 26px 30px; }
.th-card--lead .th-card__title { font-size: clamp(34px, 4vw, 48px); line-height: 1.08; margin-bottom: 14px; }

.th-card--stack { display: grid; grid-template-columns: 112px 1fr; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--rule); }
.th-card--stack:first-child { padding-top: 8px; }
.th-card--stack .th-card__img { aspect-ratio: 1 / 1; }
.th-card--stack .th-card__title { font-size: 19px; line-height: 1.2; }
.th-card--stack .th-meta { flex-direction: column; gap: 6px; font-size: 10.5px; }

.th-card--feature .th-card__img { aspect-ratio: 16 / 10; }
.th-card--feature .th-card__body { background: var(--cream); padding: 28px 30px 30px; text-align: center; }
.th-card--feature .th-meta { justify-content: center; flex-direction: column; align-items: center; gap: 8px; }
.th-card--feature .th-card__title { font-size: clamp(30px, 3.4vw, 42px); line-height: 1.1; margin: 0 auto 12px; max-width: 560px; }
.th-card--feature .th-card__dek { max-width: 520px; margin-left: auto; margin-right: auto; }

.th-card--grid { text-align: center; }
.th-card--grid .th-card__img { aspect-ratio: 1 / 1; margin-bottom: 12px; }
.th-card--grid .th-card__title { font-size: 18.5px; line-height: 1.22; margin-bottom: 10px; }
.th-card--grid .th-meta { flex-direction: column; align-items: center; gap: 6px; font-size: 10.5px; }
.th-row4--list .th-card--grid .th-card__title { font-size: 22px; }
.th-row4--list .th-card--grid .th-card__img { aspect-ratio: 4 / 3; }

/* promise band */
.th-promise { background: var(--cream); text-align: center; }
.th-promise__inner { padding-top: 56px; padding-bottom: 60px; max-width: 760px; }
.th-promise__inner .th-ornament { width: 64px; margin: 0 auto 14px; display: block; }
.th-promise__head { font: 400 44px/1.1 var(--display); letter-spacing: -.015em; margin: 0 0 16px; }
.th-promise__line { font-size: 19px; line-height: 1.65; color: #353735; margin: 0 0 26px; }

/* list pages */
.th-listhead { text-align: center; padding-top: 56px; padding-bottom: 0; }
.th-listhead .th-ornament { width: 64px; margin: 0 auto 14px; display: block; }
.th-listhead__title { font: 400 clamp(42px, 5vw, 60px)/1.05 var(--display); letter-spacing: -.02em; margin: 0 0 12px; }
.th-listhead__blurb { font: 400 22px/1.4 var(--display); color: var(--moss); margin: 0 auto; max-width: 620px; }
.th-empty { font-size: 20px; color: var(--muted); text-align: center; }

/* ── article ─────────────────────────────── */
.th-artgrid { display: grid; grid-template-columns: minmax(0, var(--col)) var(--rail); justify-content: space-between; gap: 48px; padding-top: 36px; padding-bottom: 56px; max-width: calc(var(--col) + var(--rail) + 120px + 48px); }
.th-rail__sticky { position: sticky; top: 110px; }
.th-article__head { margin-bottom: 26px; }
.th-crumbs { font: 600 11px/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; margin: 0 0 18px; display: flex; gap: 8px; align-items: center; color: var(--moss); }
.th-crumbs a { color: var(--moss); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.th-article__title { font: 400 clamp(36px, 4.6vw, 50px)/1.1 var(--display); letter-spacing: -.015em; margin: 0 0 14px; font-variation-settings: "opsz" 72; }
.th-article__dek { font: 400 21px/1.4 var(--display); color: #2E302E; margin: 0 0 20px; }
.th-meta--byline { margin-bottom: 14px; }
.th-reviewed { display: flex; align-items: center; gap: 8px; font: 400 14px/1.4 var(--sans); color: var(--muted); margin: 0; }
.th-reviewed svg { width: 16px; height: 16px; color: var(--moss); flex: none; }
.th-reviewed strong { color: var(--ink); font-weight: 600; }

.th-hero { margin: 0 0 10px; }
.th-hero img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; background: var(--cream-deep); }
.th-hero figcaption, .th-figure figcaption { font: 400 12px/1.5 var(--sans); color: var(--muted); padding-top: 8px; display: flex; flex-wrap: wrap; gap: 4px 12px; }
.th-credit { font-weight: 600; color: #8A8B87; }
.th-disclosure { font: 400 12px/1.5 var(--sans); color: var(--muted); text-align: center; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); padding: 10px 16px; margin: 6px 0 28px; }
.th-disclosure a { color: var(--muted); }

.th-toc { border: 1px solid var(--rule); margin: 0 0 30px; }
.th-toc summary { font: 700 11px/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; padding: 16px 18px; cursor: pointer; list-style: none; display: flex; justify-content: space-between; }
.th-toc summary::after { content: "–"; color: var(--moss); font-size: 16px; }
.th-toc:not([open]) summary::after { content: "+"; }
.th-toc ol { margin: 0; padding: 0 18px 14px 38px; }
.th-toc li { font: 400 16px/1.4 var(--serif); padding: 5px 0; }
.th-toc li::marker { color: var(--moss); font: 600 13px var(--sans); }
.th-toc a { text-decoration: none; }
.th-toc a:hover { text-decoration: underline; }

.th-prose { min-width: 0; }
.th-prose > p, .th-prose > ul, .th-prose > ol { margin: 0 0 1.1em; }
.th-prose h2 { font: 400 32px/1.12 var(--display); letter-spacing: -.01em; color: var(--moss); margin: 1.6em 0 .5em; scroll-margin-top: 110px; font-variation-settings: "opsz" 60; }
.th-prose h3 { font: 400 24px/1.2 var(--display); margin: 1.5em 0 .45em; }
.th-prose a { color: var(--ink); text-decoration: underline; text-decoration-color: var(--moss); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.th-prose a:hover { color: var(--moss); }
.th-prose strong { font-weight: 600; }
.th-prose ul, .th-prose ol { padding-left: 1.2em; }
.th-prose li { margin-bottom: .45em; }
.th-prose li::marker { color: var(--moss); }

.th-figure { margin: 2em 0; }
.th-figure img { width: 100%; background: var(--cream-deep); }

.th-box { margin: 1.9em 0; padding: 24px 26px; }
.th-box > :last-child { margin-bottom: 0; }
.th-box p { margin: 0 0 .8em; }
.th-box__label { font: 700 11px/1.3 var(--sans) !important; letter-spacing: .12em; text-transform: uppercase; margin: 0 0 10px !important; }
.th-box--answer { background: var(--cream); padding: 26px 28px; font: 400 20px/1.5 var(--display); }
.th-box--answer .th-box__label { color: var(--moss); }
.th-box--tip { border: 1px solid var(--moss); }
.th-box--tip .th-box__label { color: var(--moss); }
.th-box--warning { background: #FBF0EB; border-left: 3px solid var(--brick); }
.th-box--warning .th-box__label { color: var(--brick); }
.th-box--costbox { background: #fff; border-top: 2px solid var(--ink); border-bottom: 1px solid var(--ink); padding: 18px 0 16px; }
.th-box--costbox .th-box__label { color: var(--ink); }
.th-box--costbox em { font: 400 12.5px/1.5 var(--sans); color: var(--muted); font-style: normal; display: block; margin-top: 4px; }
.th-box--pullquote { text-align: center; padding: 8px 20px; margin: 2.4em 0; }
.th-box--pullquote::before { content: ""; display: block; width: 64px; height: 14px; margin: 0 auto 14px; background: var(--moss); -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 14"><path d="M2 12 L14 4 L26 12 M38 12 L50 4 L62 12 M26 12 L32 8 L38 12" fill="none" stroke="black" stroke-width="1.3"/></svg>') center / contain no-repeat; mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 14"><path d="M2 12 L14 4 L26 12 M38 12 L50 4 L62 12 M26 12 L32 8 L38 12" fill="none" stroke="black" stroke-width="1.3"/></svg>') center / contain no-repeat; }
.th-box--pullquote p { font: 400 30px/1.25 var(--display); color: var(--moss); margin: 0; }

.th-prose table { width: 100%; border-collapse: collapse; font: 400 14px/1.45 var(--sans); margin: 0 0 .6em; }
.th-prose th { text-align: left; font-weight: 700; font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; border-bottom: 1px solid var(--ink); padding: 8px 12px 8px 0; vertical-align: bottom; }
.th-prose td { border-bottom: 1px solid var(--rule); padding: 11px 12px 11px 0; vertical-align: top; }
.th-prose td:first-child { font: 400 16px/1.3 var(--display); }
.th-prose td:nth-child(2) { font-weight: 600; color: var(--moss); }
.th-box--costbox { overflow-x: auto; }
.th-prose table { table-layout: auto; }
.th-prose td { overflow-wrap: anywhere; }

/* partner offer */
.th-offer { margin: 2.6em 0; background: var(--cream); padding: 30px 30px 26px; position: relative; }
.th-offer__label { font: 700 10.5px/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); margin: 0 0 14px; text-align: center; }
.th-offer .th-kicker { text-align: center; }
.th-offer .th-offer__head, .th-prose .th-offer__head { font: 400 30px/1.12 var(--display); letter-spacing: -.01em; margin: 0 0 10px; text-align: center; color: var(--ink); }
.th-offer__body { font-size: 17px; line-height: 1.55; color: #353735; margin: 0 auto 20px !important; text-align: center; max-width: 480px; }
.th-offer__fields { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-bottom: 14px; }
.th-field span { display: block; font: 700 10.5px/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; margin-bottom: 6px; }
.th-field input, .th-newsletter input {
  width: 100%; font: 400 16px/1.2 var(--sans); color: var(--ink);
  border: 1px solid #BDB6A6; background: #fff; padding: 13px 12px; border-radius: 0;
}
.th-field input:focus, .th-newsletter input:focus { outline: none; border-color: var(--moss); box-shadow: inset 0 0 0 1px var(--moss); }
.th-consent { display: grid; grid-template-columns: 18px 1fr; gap: 10px; font: 400 11.5px/1.5 var(--sans); color: var(--muted); margin-bottom: 18px; }
.th-consent input { margin-top: 2px; accent-color: var(--moss); }
.th-offer .th-btn { width: 100%; padding: 17px; }
.th-offer__call { display: block; text-align: center; margin-top: 12px; font: 600 14px/1 var(--sans); color: var(--moss); }
.th-offer--secondary { background: #fff; border: 1px solid var(--rule); }
.th-offer__done { font: 500 16px/1.5 var(--sans); color: var(--moss); margin: 0; text-align: center; }

/* faq + article foot */
.th-faq { margin-top: 2.4em; }
.th-faq details { border-top: 1px solid var(--rule); padding: 16px 0; }
.th-faq details:last-child { border-bottom: 1px solid var(--rule); }
.th-faq summary { cursor: pointer; font: 400 20px/1.35 var(--display); list-style: none; display: flex; justify-content: space-between; gap: 16px; }
.th-faq summary::after { content: "+"; color: var(--moss); font: 400 24px/1 var(--sans); }
.th-faq details[open] summary::after { content: "–"; }
.th-faq details p { margin: 10px 0 0; }
.th-article__foot { margin-top: 3em; }
.th-author { display: grid; grid-template-columns: 64px 1fr; gap: 18px; background: var(--cream); padding: 22px; }
.th-author__mono { width: 64px; height: 64px; border-radius: 50%; background: var(--moss); color: #fff; display: grid; place-items: center; font: 400 28px/1 var(--display); }
.th-author__name { font: 400 22px/1.2 var(--display); margin: 6px 0 4px; }
.th-author__bio, .th-author__rev { font: 400 15px/1.5 var(--serif); color: #4A4C49; margin: 0 0 4px; }
.th-sources { border-bottom: 1px solid var(--rule); margin-top: 20px; }
.th-sources summary { font: 700 11px/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; padding: 16px 0; cursor: pointer; }
.th-sources ol { font: 400 14px/1.55 var(--sans); padding-left: 1.2em; margin: 0 0 16px; }
.th-standards { font: 400 13px/1.55 var(--sans); color: var(--muted); margin-top: 18px; }
.th-standards a { color: var(--muted); }

/* page */
.th-page { max-width: calc(var(--col) + 48px); padding-top: 48px; padding-bottom: 64px; }
.th-prose--page h2 { font-size: 28px; }

/* ── newsletter + footer ─────────────────────────────── */
.th-newsletter { background: var(--moss); color: #fff; text-align: center; }
.th-newsletter__inner { padding-top: 54px; padding-bottom: 50px; max-width: 720px; }
.th-ornament--light { color: #B9D0C1; width: 64px; display: block; margin: 0 auto 12px; }
.th-newsletter__head { font: 400 42px/1.1 var(--display); margin: 0 0 10px; }
.th-newsletter__sub { font: 400 18px/1.5 var(--serif); color: #DCE8DF; margin: 0 auto 24px; max-width: 520px; }
.th-newsletter__form { display: grid; grid-template-columns: 1fr 100px auto; gap: 8px; max-width: 600px; margin: 0 auto; }
.th-newsletter input { border-color: #fff; }
.th-newsletter .th-btn { background: var(--ink); border-color: var(--ink); }
.th-newsletter__fine { font: 400 12px/1.5 var(--sans); color: #B9D0C1; margin: 14px 0 0; }
.th-newsletter__fine a { color: #B9D0C1; }
.th-newsletter__done { font: 500 17px/1.5 var(--sans); grid-column: 1 / -1; margin: 0; }

.th-footer { background: var(--cream); color: var(--ink); padding: 48px 0 28px; }
.th-footer__top { display: flex; align-items: baseline; gap: 22px; padding-bottom: 26px; border-bottom: 1px solid var(--rule); }
.th-footer__tag { font: italic 400 18px/1.3 var(--display); color: var(--muted); margin: 0; }
.th-footer__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 40px; padding-top: 26px; padding-bottom: 26px; }
.th-footer ul { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 40px; }
.th-footer li { margin-bottom: 12px; break-inside: avoid; }
.th-footer__grid a { font: 500 14px/1.3 var(--sans); text-decoration: none; }
.th-footer__grid a:hover { text-decoration: underline; }
.th-footer__legal { border-top: 1px solid var(--rule); }
.th-footer__legal p { font: 400 12px/1.6 var(--sans); color: var(--muted); margin: 20px 0 0; max-width: 820px; }

.th-callbar { display: none; }

/* ── responsive ─────────────────────────────── */
@media (max-width: 1000px) {
  .th-artgrid { grid-template-columns: minmax(0, 1fr); max-width: calc(var(--col) + 48px); }
  .th-rail, .th-modgrid__rail { display: none; }
  .th-modgrid { grid-template-columns: minmax(0, 1fr); }
  .th-leadgrid { grid-template-columns: minmax(0, 1fr); }
  .th-stack { display: grid; grid-template-columns: 1fr 1fr; column-gap: 24px; }
}
@media (max-width: 760px) {
  body { font-size: 17.5px; }
  .th-wrap { padding: 0 16px; }
  .th-brand { grid-template-columns: 40px 1fr 40px; height: 58px; }
  .th-search, .th-cta { display: none; }
  .th-menu-btn { display: flex; }
  .th-logo { justify-self: center; }
  .th-logo__word { font-size: 28px; }
  .th-logo__mark { width: 32px; height: 32px; }
  .th-nav { display: none; }
  .th-nav.is-open { display: block; border-top: 1px solid var(--rule); }
  .th-nav ul { flex-direction: column; gap: 0; padding: 0 16px; }
  .th-nav li { border-bottom: 1px solid var(--rule); }
  .th-nav a { display: block; padding: 15px 0; font-size: 16px; }
  .is-scrolled .th-nav.is-open { display: block; }
  .th-pills { padding: 10px 16px; }
  .th-ad__placeholder--leader { height: 50px; max-width: 320px; }
  .th-module { padding-top: 36px; padding-bottom: 36px; }
  .th-sectitle h2 { font-size: 28px; }
  .th-stack { grid-template-columns: 1fr; }
  .th-row4, .th-row4--wide, .th-row4--list { grid-template-columns: 1fr 1fr; gap: 26px 14px; justify-content: stretch; }
  .th-card--lead .th-card__body, .th-card--feature .th-card__body { padding: 22px 18px 24px; }
  .th-card--lead .th-card__img { aspect-ratio: 3 / 2; }
  .th-artgrid { padding-top: 24px; }
  .th-article__dek { font-size: 19px; }
  .th-box { padding: 20px; }
  .th-box--costbox { overflow-x: auto; padding: 16px 0; }
  .th-box--costbox table { min-width: 560px; }
  .th-prose > table { font-size: 13px; }
  .th-prose > table td, .th-prose > table th { padding-right: 8px; }
  .th-offer { padding: 24px 18px 22px; margin-left: -16px; margin-right: -16px; }
  .th-offer__fields { grid-template-columns: 1fr; }
  .th-newsletter__form { grid-template-columns: 1fr; }
  .th-newsletter__head { font-size: 34px; }
  .th-footer__top { flex-direction: column; gap: 10px; }
  .th-footer__grid { grid-template-columns: 1fr; gap: 20px; }
  .is-article .th-callbar { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; background: var(--brick); color: #fff; text-align: center; font: 600 15px/1 var(--sans); padding: 16px; text-decoration: none; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; scroll-behavior: auto !important; } }
@media print {
  .th-utility, .th-masthead, .th-pills, .th-newsletter, .th-footer, .th-rail, .th-ad, .th-leader, .th-offer, .th-module--cream, .th-callbar, .th-disclosure { display: none !important; }
  .th-artgrid { display: block; }
  body { font-size: 12pt; }
}

/* Offer-card disclosure + privacy choices page */
.th-offer__terms { font: 400 11.5px/1.5 var(--sans); color: var(--muted); margin: 14px 0 0; }
.th-offer__terms a { color: var(--moss); }
.th-choices__gpc { background: var(--moss-tint); color: var(--ink); font: 500 14px/1.5 var(--sans); padding: 14px 18px; margin: 0 0 24px; }
.th-choices__browser { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin: 0 0 8px; }
.th-choices__state { font: 600 14px/1.4 var(--sans); color: var(--moss); margin: 0; }
.th-choices__form { background: var(--cream); padding: 28px; margin: 8px 0 32px; }
.th-choices__set { border: 0; padding: 0; margin: 18px 0; }
.th-choices__set legend { font: 700 11px/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; margin-bottom: 12px; }
.th-check { display: grid; grid-template-columns: 18px 1fr; gap: 10px; font: 400 15px/1.45 var(--sans); margin: 0 0 12px; }
.th-check input { margin-top: 3px; accent-color: var(--moss); }
.th-choices__form textarea { width: 100%; box-sizing: border-box; border: 1px solid var(--rule); background: #fff; padding: 10px 12px; font: 400 15px/1.4 var(--sans); }
.th-choices__fine { font: 400 12.5px/1.5 var(--sans); color: var(--muted); margin: 6px 0 18px; }
