/* Top AI Firms — design tokens lifted from the HTML prototype */
:root{
  --paper:#F7F1ED; --paper2:#FBF8F5; --card:#FFFFFF;
  --forest:#22382F; --forest2:#2E4B3E;
  --sage:#9DAF8B;  --sage2:#B7C4A6;
  --tan:#D7C6AE;   --tan2:#E6DAC6;
  --gold:#A87A45;
  --ink:#2B2A28;   --soft:#8B837A;  --line:#E9E0D8;
  --sans:'Figtree','Helvetica Neue',Arial,sans-serif;
  --script:'Sacramento',cursive;
}
body.taf{background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.6}
.taf h1,.taf h2,.taf h3,.taf h4{color:var(--forest);font-family:var(--sans);letter-spacing:-.02em;line-height:1.2}
.taf a{color:var(--forest2)} .taf a:hover{color:var(--gold)}
.taf .wrap{max-width:1140px;margin:0 auto;padding:0 24px}
.taf .eyebrow{font-size:12px;letter-spacing:.01em;color:var(--gold);font-weight:600;margin:0 0 10px}
.taf .sub{color:var(--soft);font-size:17px;line-height:1.7;max-width:62ch}
.taf .mono{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
.taf .band{background:var(--paper2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:56px 0}

/* card grid — firms, products, blogs, news all share it */
.taf .grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.taf .grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.taf .bcard{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;transition:.2s}
.taf .bcard:hover{border-color:var(--sage);transform:translateY(-2px);box-shadow:0 10px 26px rgba(34,56,47,.08)}
.taf .bcard .img{position:relative;aspect-ratio:3/2;background:var(--tan2)}
.taf .bcard .img img{width:100%;height:100%;object-fit:cover;display:block}
.taf .bcard .badge{position:absolute;left:12px;bottom:12px;background:var(--forest);color:#fff;border-radius:8px;
  padding:6px 10px;font-size:15px;font-weight:600;line-height:1;text-align:center}
.taf .bcard .badge span{display:block;font-size:10px;font-weight:600;opacity:.8;margin-top:2px}
.taf .bcard .body{padding:16px 18px 20px}
.taf .bcard .cats{font-size:11px;letter-spacing:.1em;color:var(--gold);font-weight:600;margin:0 0 8px}
.taf .bcard h4{font-size:16px;margin:0;line-height:1.35}
.taf .bcard h4 a{text-decoration:none;color:var(--forest)}

/* directory rows */
.taf .dirrow{display:grid;grid-template-columns:2fr 3fr auto;gap:18px;align-items:center;
  padding:18px 20px;background:var(--card);border:1px solid var(--line);border-radius:10px;margin-bottom:10px}
.taf .dirrow:hover{border-color:var(--sage)}
.taf .dirrow .n{font-weight:600;color:var(--forest);font-size:17px}
.taf .tag{display:inline-block;font-size:11px;padding:3px 9px;border:1px solid var(--line);
  border-radius:20px;color:var(--soft);margin:2px 4px 2px 0}
.taf .arw{color:var(--gold);font-weight:600}

/* coverage matrix */
.taf .matrix{width:100%;border-collapse:collapse;background:var(--card);font-size:14px}
.taf .matrix th,.taf .matrix td{border:1px solid var(--line);padding:10px 12px;text-align:center}
.taf .matrix th:first-child,.taf .matrix td:first-child{text-align:left;font-weight:600;color:var(--forest)}
.taf .matrix thead th{background:var(--forest);color:#fff;font-size:12px;font-weight:600}
.taf .matrix td.yes{color:var(--forest);font-weight:600}
.taf .matrix td.no{color:var(--line)}

@media(max-width:1024px){.taf .grid4{grid-template-columns:repeat(2,1fr)}.taf .grid3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.taf .grid4,.taf .grid3{grid-template-columns:1fr}.taf .dirrow{grid-template-columns:1fr}}

/* firm hub + directory */
.taf .taf-cols{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:48px;padding-bottom:56px}
.taf .taf-main{min-width:0}
.taf .taf-monogram{width:44px;height:44px;border-radius:10px;background:var(--forest);color:var(--tan2);
  display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:600}
.taf .answer{font-size:19px;color:var(--ink);max-width:66ch}
.taf .widget{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px;margin-bottom:18px}
.taf .widget h5{margin:0 0 14px;font-size:11px;letter-spacing:.01em;color:var(--gold)}
.taf .facts dl{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;font-size:14px}
.taf .facts dt{color:var(--soft)} .taf .facts dd{margin:0;color:var(--forest);font-weight:600}
.taf ul.cov{list-style:none;margin:0;padding:0}
.taf ul.cov li{padding:12px 0;border-bottom:1px solid var(--line)}
.taf ul.cov li span{display:block;font-size:12.5px;color:var(--soft);margin-top:3px}
.taf .faq details{border-bottom:1px solid var(--line);padding:14px 0}
.taf .faq summary{cursor:pointer;font-weight:600;color:var(--forest)}
.taf .faq p{margin:10px 0 0;color:var(--soft)}
.taf ol.srcs,.taf ul.srcs{padding-left:20px;color:var(--soft);font-size:14px}
.taf ol.srcs li,.taf ul.srcs li{margin-bottom:6px}
.taf a.dirrow{text-decoration:none;color:inherit}
.taf .tag.is-on{background:var(--forest);color:#fff;border-color:var(--forest)}
.taf a.tag{text-decoration:none}
.taf .chips a{margin:0 6px 6px 0}
.taf .page-numbers{display:inline-block;padding:6px 12px;border:1px solid var(--line);border-radius:8px;margin-right:6px;text-decoration:none}
.taf .page-numbers.current{background:var(--forest);color:#fff;border-color:var(--forest)}
@media(max-width:900px){.taf .taf-cols{grid-template-columns:1fr;gap:28px}}

/* coverage matrix */
.taf .taf-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.taf .matrix{margin:0;min-width:920px}
.taf .matrix th[scope=row]{position:sticky;left:0;background:var(--card);z-index:1;white-space:nowrap}
.taf .matrix th[scope=row] a{text-decoration:none;color:var(--forest);font-weight:600}
.taf .matrix thead th{position:sticky;top:0;line-height:1.25}
.taf .matrix td.y{color:var(--forest);font-size:17px}
.taf .matrix td.p{color:var(--sage);font-size:17px}
.taf .matrix td.n{color:var(--tan)}
.taf .matrix tbody tr:hover td,.taf .matrix tbody tr:hover th[scope=row]{background:var(--paper2)}
.taf .screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* rankings */
.taf .taf-quick{background:var(--forest);color:var(--tan2);border-radius:12px;padding:24px 26px;margin-top:8px}
.taf .taf-quick h5{margin:0 0 8px;font-size:11px;letter-spacing:.01em;color:var(--sage2)}
.taf .taf-quick p{margin:0;color:#fff;font-size:17px;line-height:1.65}
.taf ol.taf-ranked{list-style:none;margin:0;padding:0;counter-reset:r}
.taf ol.taf-ranked li{display:grid;grid-template-columns:52px 1fr auto;gap:16px;align-items:center;
  background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 18px;margin-bottom:8px}
.taf ol.taf-ranked li:hover{border-color:var(--sage)}
.taf ol.taf-ranked .pos{font-size:22px;font-weight:600;color:var(--tan);text-align:center}
.taf ol.taf-ranked .who a{font-weight:600;color:var(--forest);text-decoration:none;font-size:17px}
.taf ol.taf-ranked .who .sub{display:block;font-size:13px;margin-top:2px}
.taf .taf-article{padding:40px 24px;max-width:820px}
.taf .taf-article h2{margin:34px 0 12px;font-size:26px}
.taf .taf-article h3{margin:26px 0 10px;font-size:20px}
.taf .taf-article p{margin:0 0 14px}
.taf .taf-article ul{margin:0 0 16px 20px}
.taf a.taf-rankcard{display:block;text-decoration:none;margin:0}
.taf a.taf-rankcard h3{font-size:19px;margin:6px 0 8px;line-height:1.3}
.taf .taf-attrib{font-size:13px;color:var(--soft);border-left:3px solid var(--tan);
  padding:6px 0 6px 12px;margin:16px 0 30px;background:var(--paper2)}
.taf .taf-attrib a{color:var(--gold)}

/* wordmark */
.taf .taf-wordmark{font-family:var(--sans);font-weight:600;font-size:23px;letter-spacing:-.035em;
  color:var(--forest);white-space:nowrap;line-height:1;display:inline-block}
.taf .taf-wordmark em{font-style:normal;color:var(--gold)}
.taf .qodef-header-logo-link,.taf .qodef-mobile-header-logo-link{display:inline-flex;align-items:center}

/* header + footer chrome */
.taf .qodef-page-header,.taf .qodef-header-sticky{background:var(--paper2);border-bottom:1px solid var(--line)}
.taf .qodef-header-navigation>ul>li>a{font-family:var(--sans);font-weight:600;font-size:15px;
  letter-spacing:-.01em;color:var(--ink)}
.taf .qodef-header-navigation>ul>li>a:hover,
.taf .qodef-header-navigation>ul>li.current-menu-item>a{color:var(--gold)}
.taf .qodef-page-footer{background:var(--forest);color:var(--sage2);border-top:0}
.taf .qodef-page-footer a{color:var(--tan2)}
.taf .qodef-page-footer a:hover{color:#fff}
.taf .qodef-page-footer h1,.taf .qodef-page-footer h2,.taf .qodef-page-footer h3,
.taf .qodef-page-footer h4,.taf .qodef-page-footer h5{color:#fff}
.taf .taf-footnote{border-top:1px solid var(--line);margin-top:0;padding:26px 0;background:var(--paper2);
  font-size:13.5px;color:var(--soft)}
.taf .taf-footnote .wrap{display:flex;flex-wrap:wrap;gap:8px 22px;align-items:center;justify-content:space-between}
.taf .taf-footnote a{color:var(--soft);text-decoration:none}
.taf .taf-footnote a:hover{color:var(--gold)}

/* home */
.taf .taf-home-hero{padding:72px 24px 52px;max-width:1140px}
.taf .taf-home-hero h1{font-size:46px;line-height:1.12;max-width:17ch}
.taf .taf-home-hero .sub{font-size:18px;margin-top:16px}
.taf .taf-btn{display:inline-block;padding:13px 26px;border-radius:30px;font-weight:600;font-size:15px;
  text-decoration:none;margin:0 8px 8px 0;background:var(--forest);color:#fff;border:1px solid var(--forest)}
.taf .taf-btn:hover{background:var(--forest2);color:#fff}
.taf .taf-btn.ghost{background:var(--card);color:var(--forest);border-color:var(--line)}
.taf .taf-btn.ghost:hover{border-color:var(--gold);color:var(--gold)}
.taf .band.alt{background:var(--card)}
.taf .head h2{margin:0}
.taf a.taf-use{display:block;text-decoration:none;margin:0}
.taf a.taf-use h3{font-size:20px;margin:6px 0 8px}
.taf .taf-areas{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.taf a.taf-area{display:flex;justify-content:space-between;align-items:center;gap:10px;
  background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 16px;text-decoration:none}
.taf a.taf-area:hover{border-color:var(--sage)}
.taf a.taf-area .n{font-weight:600;color:var(--forest);font-size:14.5px;line-height:1.25}
.taf a.taf-area .c{color:var(--gold);font-weight:600}
.taf .taf-start{text-align:center;padding:16px 24px}
@media(max-width:1024px){.taf .taf-areas{grid-template-columns:repeat(3,1fr)}.taf .taf-home-hero h1{font-size:34px}}
@media(max-width:640px){.taf .taf-areas{grid-template-columns:repeat(2,1fr)}}

/* about */
.taf .taf-narrow{max-width:760px}
.taf .taf-narrow p{font-size:17px;line-height:1.75;color:var(--ink);margin:0 0 16px}
.taf .taf-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;text-align:center}
.taf .taf-stats .mono{display:block;font-size:38px;font-weight:600;color:var(--forest);line-height:1}
.taf .taf-stats .sub{display:block;font-size:13px;margin-top:6px}
.taf span.taf-area{opacity:.5;cursor:default}
.taf .taf-form input[type=text],.taf .taf-form input[type=email],.taf .taf-form textarea{
  width:100%;padding:13px 16px;border:1px solid var(--line);border-radius:10px;background:var(--card);
  font-family:var(--sans);font-size:15px;color:var(--ink)}
.taf .taf-form textarea{min-height:130px}
.taf .taf-form input[type=submit]{background:var(--forest);color:#fff;border:0;border-radius:30px;
  padding:13px 30px;font-weight:600;font-size:15px;cursor:pointer;font-family:var(--sans)}
.taf .taf-form input[type=submit]:hover{background:var(--forest2)}
@media(max-width:640px){.taf .taf-stats{grid-template-columns:repeat(2,1fr);gap:26px}}

/* ===== prototype components ===== */
.taf .script{font-family:var(--script);font-weight:400;color:var(--forest);line-height:1;font-size:34px}
.taf .hero{padding:56px 24px 34px}
.taf .hero-grid{display:grid;grid-template-columns:1.12fr 1fr;gap:54px;align-items:center}
.taf .hero-grid h1{font-size:50px;line-height:1.1;margin:10px 0 0;letter-spacing:-.03em}
.taf .hero-shape{aspect-ratio:4/5;border-radius:180px 180px 40px 40px;overflow:hidden}
.taf .art{width:100%;height:100%;position:relative;overflow:hidden;display:block}
.taf .a1{background:radial-gradient(circle at 74% 28%,var(--tan) 0 22%,transparent 22.5%),radial-gradient(circle at 26% 76%,var(--sage) 0 30%,transparent 30.5%),linear-gradient(140deg,var(--forest),var(--forest2))}
.taf .a2{background:repeating-radial-gradient(circle at 50% 58%,transparent 0 18px,var(--sage2) 18px 20px),var(--paper2)}
.taf .a3{background:repeating-linear-gradient(90deg,var(--forest) 0 2px,transparent 2px 26px),repeating-linear-gradient(0deg,rgba(34,56,47,.35) 0 1px,transparent 1px 26px),linear-gradient(160deg,var(--tan2),var(--tan))}
.taf .a4{background:conic-gradient(from 210deg at 60% 40%,var(--sage) 0 25%,var(--tan2) 25% 55%,var(--forest2) 55% 100%)}
.taf .a5{background:linear-gradient(120deg,var(--sage2),var(--paper2) 60%),radial-gradient(circle at 30% 30%,var(--gold) 0 14%,transparent 14.5%)}
.taf .a6{background:repeating-linear-gradient(45deg,var(--tan2) 0 14px,var(--paper2) 14px 28px)}
.taf .btn{display:inline-block;font-size:12.5px;letter-spacing:.01em;background:var(--forest);
  color:#fff;text-decoration:none;padding:16px 34px;border-radius:40px;border:0;cursor:pointer;font-family:var(--sans);font-weight:600}
.taf .btn:hover{background:var(--forest2);color:#fff}
.taf .btn.ghost{background:transparent;color:var(--forest);border:1px solid var(--forest)}
.taf .btn.ghost:hover{background:var(--forest);color:#fff}
.taf .statstrip{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.taf .statstrip>div{padding:22px 24px 22px 0}
.taf .statstrip>div+div{padding-left:24px;border-left:1px solid var(--line)}
.taf .statstrip strong{display:block;color:var(--forest);font-size:15px;margin-bottom:5px}
.taf .statstrip p{margin:0;font-size:13.5px;color:var(--soft);line-height:1.6}
.taf .center{text-align:center}
.taf .sechead{max-width:24ch;margin:0 auto 42px}
.taf .paths{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.taf .path{background:var(--card);border:1px solid var(--line);border-radius:8px 0 36px 36px;padding:30px;
  display:flex;flex-direction:column;gap:12px;text-decoration:none}
.taf .path:hover{border-color:var(--sage)}
.taf .path .who{font-size:11.5px;letter-spacing:.01em;color:var(--gold);font-weight:600}
.taf .path h3{margin:0;font-size:21px}
.taf .path p{margin:0;color:var(--soft);font-size:14.5px;line-height:1.65}
/* trending marquee */
.taf .trendwrap{border-bottom:1px solid var(--line);background:var(--paper2);overflow:hidden}
.taf .trendbar{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center}
.taf .trendlbl{position:relative;z-index:2;font-size:11.5px;letter-spacing:.01em;color:var(--gold);
  white-space:nowrap;padding:15px 20px 15px 0;margin-right:20px;border-right:1px solid var(--line);background:var(--paper2)}
.taf .marquee{position:relative;overflow:hidden;padding:13px 0;
  -webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 64px),transparent 100%);
  mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 64px),transparent 100%)}
.taf .mtrack{display:flex;align-items:center;gap:10px;width:max-content;animation:taf-mq 52s linear infinite;will-change:transform}
.taf .mtrack:hover{animation-play-state:paused}
.taf .mtrack a{white-space:nowrap;font-size:13.5px;color:var(--ink);text-decoration:none;padding:4px 14px 4px 0}
.taf .mtrack a b{color:var(--gold);font-weight:600;margin-right:6px;font-size:12px;letter-spacing:.01em;}
.taf .mtrack a.hot b{color:#fff;background:var(--forest);border-radius:20px;padding:2px 8px}
.taf .mtrack a:hover{color:var(--gold)}
@keyframes taf-mq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.taf .mtrack{animation:none}}
@media(max-width:900px){
  .taf .hero-grid{grid-template-columns:1fr;gap:30px}
  .taf .hero-grid h1{font-size:34px}
  .taf .hero-shape{max-width:320px}
  .taf .statstrip{grid-template-columns:repeat(2,1fr)}
  .taf .statstrip>div{border-left:0!important;padding-left:0!important}
  .taf .paths{grid-template-columns:1fr}
}

/* cookie consent */
.taf .taf-consent{position:fixed;left:0;right:0;bottom:0;z-index:9999;background:var(--forest);
  color:var(--sage2);border-top:3px solid var(--gold);box-shadow:0 -10px 40px rgba(28,25,23,.18)}
.taf .taf-consent-in{max-width:1140px;margin:0 auto;padding:20px 24px;display:grid;
  grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:center}
.taf .taf-consent h4{margin:0 0 6px;color:#fff;font-size:16px}
.taf .taf-consent p{margin:0;font-size:14px;line-height:1.6;max-width:78ch}
.taf .taf-consent a{color:var(--tan2);text-decoration:underline}
.taf .taf-consent-btns{display:flex;gap:10px;flex-wrap:wrap}
.taf .taf-consent .btn{padding:12px 22px;font-size:11.5px;white-space:nowrap}
.taf .taf-consent .btn.ghost{color:#fff;border-color:var(--sage)}
.taf .taf-consent .btn.ghost:hover{background:var(--sage);color:var(--forest)}
@media(max-width:760px){.taf .taf-consent-in{grid-template-columns:1fr}}

/* sticky, filled firm sidebar */
.taf .taf-side{min-width:0}
.taf .taf-sticky{position:sticky;top:92px}
.taf a.taf-visit{display:block;text-decoration:none}
.taf a.taf-visit span{color:var(--forest);font-weight:600;font-size:15px;word-break:break-all}
.taf a.taf-visit:hover span{color:var(--gold)}
.taf ol.mostread{list-style:none;margin:0;padding:0;counter-reset:m}
.taf ol.mostread li{padding:9px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.4}
.taf ol.mostread li:last-child{border-bottom:0}
.taf ol.mostread a{color:var(--forest);text-decoration:none;font-weight:600}
.taf ol.mostread span{display:block;font-size:12px;color:var(--gold);margin-top:3px;font-weight:600}
.taf .recent a.rec{display:grid;grid-template-columns:56px 1fr;gap:12px;align-items:center;
  padding:9px 0;border-bottom:1px solid var(--line);text-decoration:none}
.taf .recent a.rec:last-child{border-bottom:0}
.taf .recent .art{width:56px;height:44px;border-radius:7px;display:block}
.taf .recent .t{font-size:13.5px;line-height:1.35;color:var(--forest);font-weight:600}
.taf .recent .t em{display:block;font-style:normal;font-size:11.5px;color:var(--soft);font-weight:400;margin-top:3px}
.taf .recent a.rec:hover .t{color:var(--gold)}
.taf .chips .tag .mono{color:var(--gold);font-weight:600;margin-left:3px}
.taf .taf-promo{background:var(--forest);border-color:var(--forest)}
.taf .taf-promo h5{color:var(--sage2)}
.taf .taf-promo p{color:var(--tan2);font-size:13.5px;line-height:1.6;margin:0 0 14px}
.taf .taf-promo .btn.ghost{color:#fff;border-color:var(--sage);padding:11px 20px;font-size:11px}
.taf .taf-promo .btn.ghost:hover{background:var(--sage);color:var(--forest)}
.taf .bcard .img{display:block;position:relative;aspect-ratio:3/2;background:var(--tan2);overflow:hidden}
.taf .bcard .img .art{position:absolute;inset:0}
.taf .bcard .ex{margin:8px 0 0;font-size:13.5px;line-height:1.55;color:var(--soft)}
.taf .bcard .body{padding:16px 18px 20px}

/* ===== typography discipline =====
   Sentence case throughout, nothing heavier than 600, no letterspaced caps.
   Declared last so it wins over anything above and over the parent theme. */
.taf, .taf body, .taf h1, .taf h2, .taf h3, .taf h4, .taf h5, .taf h6,
.taf .btn, .taf .tag, .taf .eyebrow, .taf .who, .taf .trendlbl, .taf .widget h5,
.taf .taf-wordmark, .taf .cats, .taf .taf-count, .taf .statstrip strong,
.taf .qodef-header-navigation > ul > li > a, .taf .mtrack a b {
	text-transform: none;
	letter-spacing: normal;
}
.taf h1 { font-weight: 600; letter-spacing: -.022em }
.taf h2 { font-weight: 600; letter-spacing: -.018em }
.taf h3, .taf h4 { font-weight: 600; letter-spacing: -.012em }
.taf h5 { font-weight: 500 }
.taf strong, .taf b { font-weight: 600 }
.taf .btn { font-weight: 500; font-size: 14.5px }
.taf .eyebrow, .taf .who, .taf .trendlbl, .taf .widget h5, .taf .cats {
	font-weight: 500; font-size: 13px; color: var(--gold);
}
.taf .taf-wordmark { font-weight: 600; letter-spacing: -.02em }
.taf .taf-wordmark em { font-weight: 600 }
.taf .mono { font-weight: 500 }
.taf .statstrip strong { font-weight: 600 }
.taf ol.taf-ranked .who a, .taf .dirrow .n, .taf .matrix th[scope=row] a { font-weight: 600 }
.taf .bcard h4 a { font-weight: 600 }


/* ===== prototype components: blog single, article prose, widgets, art a1-a10 =====
   Lifted from the HTML prototype with @media context preserved, caps and heavy
   weights stripped to match the typography rule above. */
.a1{background:
  radial-gradient(circle at 74% 28%,var(--tan) 0 22%,transparent 22.5%),
  radial-gradient(circle at 26% 76%,var(--sage) 0 30%,transparent 30.5%),
  linear-gradient(140deg,var(--forest),var(--forest2))}
.a2{background:
  repeating-radial-gradient(circle at 50% 58%,transparent 0 18px,var(--sage2) 18px 20px),
  var(--paper2)}
.a3{background:
  repeating-linear-gradient(90deg,var(--forest) 0 2px,transparent 2px 26px),
  repeating-linear-gradient(0deg,rgba(34,56,47,.35) 0 1px,transparent 1px 26px),
  linear-gradient(160deg,var(--tan2),var(--tan))}
.a4{background:
  radial-gradient(circle at 18% 88%,var(--gold) 0 34%,transparent 34.5%),
  linear-gradient(200deg,var(--sage2),var(--sage))}
.a5{background:
  radial-gradient(circle,var(--sage) 1.6px,transparent 1.8px) 0 0/19px 19px,
  linear-gradient(150deg,var(--forest2),var(--forest))}
.a6{background:
  radial-gradient(circle at 32% 40%,rgba(157,175,139,.85) 0 26%,transparent 26.5%),
  radial-gradient(circle at 62% 62%,rgba(215,198,174,.9) 0 30%,transparent 30.5%),
  radial-gradient(circle at 76% 26%,rgba(168,122,69,.5) 0 18%,transparent 18.5%),
  var(--paper2)}
.a7{background:
  repeating-linear-gradient(48deg,rgba(34,56,47,.85) 0 7px,transparent 7px 22px),
  linear-gradient(120deg,var(--gold),var(--tan))}
.a8{background:
  radial-gradient(ellipse 120% 40% at 50% 112%,var(--sage) 0 60%,transparent 61%),
  radial-gradient(ellipse 100% 34% at 50% 122%,var(--tan) 0 60%,transparent 61%),
  linear-gradient(170deg,var(--forest),var(--forest2))}
.a9{background:
  conic-gradient(from 210deg at 68% 34%,var(--tan) 0 25%,var(--sage) 25% 50%,var(--forest2) 50% 75%,var(--gold) 75%),
  var(--forest)}
.a10{background:
  repeating-linear-gradient(135deg,var(--tan) 0 3px,transparent 3px 16px),
  linear-gradient(20deg,var(--paper2),var(--sage2))}
.crumb{font-size:12.5px;letter-spacing:.01em;color:var(--soft);margin:0 0 22px}
.crumb a{color:var(--soft);text-decoration:none}
.cols{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:58px;padding-bottom:84px}
.cols.narrow{grid-template-columns:minmax(0,1fr);max-width:860px;margin:0 auto}
.post{padding-bottom:48px;margin-bottom:48px;border-bottom:1px solid var(--line)}
.post:last-of-type{border-bottom:0}
.post .img{aspect-ratio:16/9;border-radius:8px 0 40px 40px;overflow:hidden;margin-bottom:24px}
.post h3{margin-bottom:12px}
.post h3 a{text-decoration:none;color:var(--ink)}
.post p{color:var(--soft);margin-bottom:18px}
.pager{display:flex;gap:10px;justify-content:center;padding-top:30px}
.pager a{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;text-decoration:none;font-size:14px;color:var(--ink)}
.pager a[aria-current]{background:var(--forest);color:#fff;border-color:var(--forest)}
.widget{margin-bottom:40px}
.widget h5{font-size:12.5px;letter-spacing:.01em;color:var(--soft);margin-bottom:16px;font-weight:400}
.widget ul{list-style:none;margin:0;padding:0}
.widget li{padding:9px 0;border-bottom:1px solid var(--line);font-size:15px}
.widget li a{text-decoration:none;color:var(--ink)}
.avatar{width:92px;height:92px;border-radius:50%;margin:0 auto 16px;overflow:hidden}
.promo{background:var(--forest);color:#fff;border-radius:8px 0 40px 40px;padding:34px;text-align:center}
.promo h4{color:#fff;margin-bottom:14px}
.promo .cta{color:#fff;border-color:rgba(255,255,255,.45)}
.article{max-width:74ch}
.article h2{margin:38px 0 14px}
.article blockquote{font-size:22px;line-height:1.5;border-left:2px solid var(--tan);margin:32px 0;padding:6px 0 6px 28px;color:var(--forest);font-weight:400}
.article blockquote cite{display:block;font-size:14px;font-style:normal;letter-spacing:.01em;color:var(--soft);margin-top:12px}
.hero-img{aspect-ratio:21/9;border-radius:8px 0 48px 48px;overflow:hidden;margin-bottom:30px}
.keyfacts{background:var(--card);border-radius:8px 0 40px 40px;padding:30px 34px;margin:30px 0}
.keyfacts h5{font-size:12.5px;letter-spacing:.01em;color:var(--gold);margin-bottom:14px;font-weight:400}
.keyfacts ul{margin:0;padding-left:20px}
.keyfacts li{padding:5px 0;font-size:16px}
.stamp{font-size:13px;color:var(--soft)}
.tagrow{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:18px;padding:32px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:42px}
.authorstrip{display:grid;grid-template-columns:104px 1fr;gap:26px;align-items:center;padding:38px 0;border-bottom:1px solid var(--line)}
.authorstrip .avatar{margin:0;width:104px;height:104px}
.authorstrip p{font-size:15px;color:var(--soft);margin:6px 0 0}
.facts{background:var(--card);border-radius:8px 0 40px 40px;padding:32px}
.facts h5{font-size:12.5px;letter-spacing:.01em;color:var(--gold);margin-bottom:18px;font-weight:400}
.facts dl{margin:0;overflow:hidden}
.facts dt,.facts dd{font-size:14.5px;padding:11px 0;border-top:1px solid var(--line)}
.facts dt{color:var(--soft);float:left;clear:left;width:50%}
.facts dd{margin:0;text-align:right}
.facts dt:first-of-type,.facts dt:first-of-type + dd{border-top:0}
.readnext{background:var(--paper2);border-top:1px solid var(--line);padding:70px 0}
.readnext .head{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-bottom:34px}
.readnext h2{font-size:30px;margin:0}
.nextup{display:grid;grid-template-columns:1fr auto;gap:26px;align-items:center;background:var(--card);border-radius:8px 0 40px 40px;padding:30px 34px;margin-bottom:34px}
.nextup p{margin:0}
.nextup .lbl{font-size:11.5px;letter-spacing:.01em;color:var(--gold);margin-bottom:8px}
.nextup h3{margin:0}
.nextup h3 a{text-decoration:none;color:var(--ink);cursor:pointer}
.mostread{counter-reset:mr;list-style:none;margin:0;padding:0}
.mostread li{counter-increment:mr;display:grid;grid-template-columns:30px 1fr;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}
.mostread li:last-child{border-bottom:0}
.mostread li::before{content:counter(mr);font-size:19px;font-weight:500;color:var(--tan);line-height:1.2}
.mostread a{font-size:15.5px;text-decoration:none;color:var(--ink);cursor:pointer;display:block}
.mostread span{display:block;font-size:12px;letter-spacing:.01em;color:var(--soft);margin-top:3px}
.pullstat{display:grid;grid-template-columns:repeat(3,1fr);gap:0;background:var(--forest);color:#fff;border-radius:8px 0 40px 40px;overflow:hidden;margin:34px 0}
.pullstat div{padding:26px 24px;border-left:1px solid rgba(255,255,255,.16)}
.pullstat div:first-child{border-left:0}
.pullstat strong{display:block;font-size:31px;font-weight:500;letter-spacing:-.025em;line-height:1.1}
.pullstat span{font-size:12px;letter-spacing:.01em;opacity:.8;display:block;margin-top:8px}
@media (max-width:860px){
.nextup{grid-template-columns:1fr}
.pullstat{grid-template-columns:1fr}
.pullstat div{border-left:0;border-top:1px solid rgba(255,255,255,.16)}
.pullstat div:first-child{border-top:0}
}
.facts dl{display:grid;grid-template-columns:auto 1fr;gap:0}
.facts dt,.facts dd{margin:0}
.facts dt{float:none;width:auto;white-space:nowrap;padding-right:14px}
.facts dl > dt:first-of-type,.facts dl > dt:first-of-type + dd{border-top:0}
@media (max-width:520px){
.cocard dl,.facts dl{grid-template-columns:1fr}
.cocard dd,.facts dd{text-align:left;border-top:0;padding-top:0}
.cocard dt,.facts dt{padding-bottom:2px}
}
@media (max-width:980px){
.cols{grid-template-columns:1fr;gap:52px}
}
@media (max-width:640px){
.facts dt,.facts dd{float:none;width:auto;text-align:left}
.facts dd{border-top:0;padding-top:0}
.authorstrip{grid-template-columns:1fr}
}
.squiggle{width:46px;height:12px;margin:0 0 26px}
.squiggle path{fill:none;stroke:var(--gold);stroke-width:2.4;stroke-linecap:round}
.center .squiggle{margin-left:auto;margin-right:auto}

/* Browser defaults make th/dt bold; they are labels, not emphasis. */
.taf th, .taf dt, .taf .facts dt, .taf .cocard dt { font-weight: 500 }
.taf caption, .taf legend { font-weight: 500 }

/* Warren styles the nav on an inner span, so the earlier anchor rule never reached it. */
.taf .qodef-menu-item-text-inner,
.taf .qodef-menu-item-text,
.taf .qodef-header-navigation a,
.taf .qodef-mobile-header-navigation a,
.taf .qodef-fullscreen-menu a,
.taf .qodef-drop-down-second-inner a {
	text-transform: none !important;
	letter-spacing: normal !important;
	font-weight: 500 !important;
}

/* Counters and Warren's own button label: still labels, still not emphasis. */
.taf p.mono, .taf .mono, .taf .taf-stats .mono, .taf .statstrip .mono { font-weight: 500 }
.taf .qodef-m-text, .taf .qodef-button-text, .taf button, .taf .qodef-button { font-weight: 500 !important; text-transform: none !important; letter-spacing: normal !important }


/* ===== index-page components: area grid, tiles, tables, step lists ===== */
.ptitle{padding:60px 0 46px;text-align:center}
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}
.tile{aspect-ratio:1;border-radius:8px 0 40px 40px;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:28px;text-align:center}
.tile.photo{padding:0}
.tile.q{background:var(--sage);color:#fff}
.tile.q p{font-size:16px;line-height:1.5;letter-spacing:.01em;font-weight:400;margin:0 0 12px}
.tile.q .script{color:#fff;font-size:28px}
.tile.n{background:var(--tan);color:var(--forest)}
.tile.n strong{display:block;font-size:44px;font-weight:600;line-height:1;letter-spacing:-.035em;margin-bottom:10px}
.tile.n span{font-size:12.5px;letter-spacing:.01em;line-height:1.5;display:block}
.tile.g{background:var(--paper2);color:var(--forest)}
.tile.g .script{font-size:40px;color:var(--gold);display:block;margin-bottom:4px}
.tile.g span{font-size:12px;letter-spacing:.01em;color:var(--soft)}
.optbar{display:flex;align-items:center;gap:12px;justify-content:center;flex-wrap:wrap;padding:0 0 40px;font-size:12.5px;letter-spacing:.01em;color:var(--soft)}
.optbar button{font-family:var(--sans);font-size:12px;letter-spacing:.01em;background:transparent;border:1px solid var(--line);color:var(--ink);padding:9px 18px;border-radius:30px;cursor:pointer}
.optbar button[aria-pressed="true"]{background:var(--forest);color:#fff;border-color:var(--forest)}
.tw{overflow-x:auto;margin:28px 0}
.tile.d{background:var(--forest);color:#fff}
.tile.d strong{display:block;font-size:44px;font-weight:500;line-height:1;letter-spacing:-.03em;margin-bottom:10px}
.tile.d span{display:block;font-size:12.5px;letter-spacing:.01em;opacity:.82}
.tile.d cite{opacity:.62}
@media (max-width:980px){
.grid3,.gloss{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
.grid4,.grid3,.grid2,.tiles,.gloss,.leads,.pc,.fgrid{grid-template-columns:1fr}
}
.covergrid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.covercard{background:var(--card);border-radius:8px 0 36px 36px;padding:28px 26px 30px;display:flex;flex-direction:column;gap:10px;text-decoration:none;color:var(--ink);cursor:pointer;border:1px solid var(--line);transition:border-color .15s}
.covercard:hover{border-color:var(--forest)}
.covercard .no{font-size:12.5px;letter-spacing:.01em;color:var(--gold)}
.covercard h4{margin:0}
.covercard p{font-size:15px;color:var(--soft);margin:0}
.covercard .cnt{font-size:12px;letter-spacing:.01em;color:var(--forest);margin-top:auto;padding-top:14px}
@media (max-width:1080px){
.covergrid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:640px){
.covergrid{grid-template-columns:1fr}
}

/* ===== full-bleed sections =====
   Warren renders page content inside #qodef-page-inner, which is narrower than
   the viewport and offset from the left. A section background therefore stopped
   at the container edge. These negative insets pull banded sections back out to
   the viewport edges; the .wrap inside still constrains the content itself.
   body already carries overflow-x:hidden, so this adds no horizontal scroll. */
.taf .band,
.taf .readnext,
.taf .taf-fullbleed {
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}
/* content stays put: re-centre and keep a gutter at every width */
.taf .band > .wrap,
.taf .readnext > .wrap,
.taf .taf-fullbleed > .wrap {
	margin-left: auto;
	margin-right: auto;
}

/* ===== highlighted full-width strips =====
   The trending bar and the principles strip were boxed inside Warren's content
   grid, so their background stopped short of the viewport on both sides. Break
   them out and give them a light gold rule so they read as highlighted bands. */
:root { --gold-line: rgba(168,122,69,.34); --gold-tint: rgba(168,122,69,.06); }

.taf .trendwrap,
.taf .statwrap {
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	background: var(--gold-tint);
	border-top: 1px solid var(--gold-line);
	border-bottom: 1px solid var(--gold-line);
}
/* the inner .wrap keeps the content on the page grid */
.taf .trendwrap > .wrap,
.taf .statwrap > .wrap { margin-left: auto; margin-right: auto }

/* the strip supplies the rules now, so drop the element's own top/bottom lines
   and the stray gap the hero left underneath it */
.taf .statwrap { margin-top: 0 }
.taf .statwrap .statstrip { border-top: 0; border-bottom: 0 }
.taf .statwrap > .wrap { padding-top: 4px; padding-bottom: 4px }
.taf .statstrip > div + div { border-left: 1px solid var(--gold-line) }

/* Templates that draw their own hero start flush under the header. */
.taf-flush #qodef-page-inner { padding-top: 0 }

/* ===== trending bar, refined =====
   The label was a square slab with a hard divider; make it a rounded chip that
   sits inside a bar with real breathing room above and below. */
.taf .trendwrap { padding: 12px 0 }
.taf .trendbar  { gap: 16px }
.taf .trendlbl {
	padding: 8px 16px;
	margin-right: 0;
	border: 1px solid var(--gold-line);
	border-radius: 999px;
	background: var(--card);
	line-height: 1.2;
}
/* the mask already fades the right edge; fade the left too so the marquee
   never appears to start mid-word against the label */
.taf .marquee {
	padding: 6px 0;
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 28px, #000 calc(100% - 64px), transparent 100%);
	        mask-image: linear-gradient(90deg, transparent 0, #000 28px, #000 calc(100% - 64px), transparent 100%);
}
/* the "cnt" line on a coverage card is a label, not a shout */
.taf .covercard .cnt { text-transform: none; letter-spacing: .01em; font-size: 12.5px; color: var(--gold) }
.taf .covercard .no  { letter-spacing: .08em }

/* ===== wordmark: signature-corner bracket + sparkle pair =====
   The bracket reuses the site's asymmetric corner; the sparkle sits lifted off
   the top-right so the radius stays intact while the tip still meets it. */
.taf .taf-wordmark em {
	font-style: normal;
	position: relative;
	display: inline-block;
	padding: .13em .36em;
	border: 1.6px solid var(--gold);
	border-radius: 6px 0 12px 12px;
	color: var(--gold);
}
.taf .taf-star {
	position: absolute;
	top: -.60em; right: -.24em;
	width: .52em; height: .52em;
	overflow: visible;
	pointer-events: none;
}
.taf .taf-star path { fill: var(--gold) }
.taf .taf-star-sm { top: -.86em; right: -.54em; width: .30em; height: .30em; opacity: .9 }

/* on the forest header/footer the mark inverts to tan */
.taf .qodef-header-light .taf-wordmark em,
.taf .qodef-page-footer  .taf-wordmark em { border-color: var(--tan); color: var(--tan) }
.taf .qodef-header-light .taf-star path,
.taf .qodef-page-footer  .taf-star path { fill: var(--tan2) }

/* ===== listing page rhythm =====
   .ptitle carries its own vertical padding, but the element is `class="wrap ptitle"`
   and `.taf .wrap` (specificity 0,2,0) was overriding the unscoped `.ptitle` rule
   (0,1,0), collapsing it to `0 24px`. Scope it so it wins, and give the grid that
   follows some room — it was sitting flush against the standfirst. */
.taf .wrap.ptitle {
	padding-top: 64px;
	padding-bottom: 40px;
	text-align: center;
}
.taf .wrap.ptitle > :last-child { margin-bottom: 0 }
/* the listing/grid block directly after a page title */
.taf .wrap.ptitle + .wrap { padding-top: 12px }
/* and never let the last section touch the footer */
.taf .wrap.ptitle ~ .wrap:last-of-type { padding-bottom: 96px }

@media (max-width: 860px) {
	.taf .wrap.ptitle { padding-top: 44px; padding-bottom: 28px }
}

/* ===== label scale =====
   Eyebrows and the small card labels were set between 11px and 12.5px, which
   read as fine print next to 30px headings. One step up, applied in one place. */
.taf .eyebrow,
.taf .who,
.taf .path .who,
.taf .trendlbl,
.taf .nextup .lbl,
.taf .widget h5,
.taf .keyfacts h5 {
	font-size: 14px;
	line-height: 1.35;
}
.taf .cats,
.taf .bcard .cats,
.taf .covercard .cnt,
.taf .covercard .no {
	font-size: 13px;
	line-height: 1.35;
}
.taf .stamp { font-size: 13.5px }
@media (max-width: 640px) {
	.taf .eyebrow, .taf .who, .taf .trendlbl, .taf .widget h5 { font-size: 13px }
}

/* ===== full-bleed only applies to top-level bands =====
   `margin-inline: calc(50% - 50vw)` assumes the element's containing block is
   centred in the viewport. A .band nested inside a narrower column (the firm
   page's .taf-main) resolves 50% against that column, so the breakout overshoots
   and drags the section off-screen to the left. Nested bands are cards, not
   bands: keep them in normal flow. */
.taf .cols .band,
.taf .taf-main .band,
.taf .taf-side .band,
.taf .taf-main .readnext,
.taf .taf-side .readnext {
	margin-left: 0;
	margin-right: 0;
}

/* ===== contact form ===== */
.taf .cf7-wrap { margin-top: 44px }
.taf .wpcf7 { max-width: 760px }
.taf .wpcf7 p { margin: 0 0 18px }
.taf .wpcf7 label { display: block; font-size: 14px; color: var(--forest); margin-bottom: 7px; font-weight: 500 }
.taf .wpcf7 label .opt { color: var(--soft); font-weight: 400 }
.taf .cf7-two { display: grid; grid-template-columns: 1fr 1fr; gap: 0 22px }
.taf .wpcf7 input[type=text],
.taf .wpcf7 input[type=email],
.taf .wpcf7 input[type=url],
.taf .wpcf7 select,
.taf .wpcf7 textarea {
	width: 100%;
	font: inherit;
	font-size: 15.5px;
	color: var(--ink);
	background: var(--card);
	border: 1px solid var(--line);
	border-radius: 8px 0 14px 14px;
	padding: 12px 14px;
	transition: border-color .15s;
}
.taf .wpcf7 textarea { border-radius: 8px 0 20px 20px; resize: vertical }
.taf .wpcf7 :is(input,select,textarea):focus {
	outline: none;
	border-color: var(--gold);
	box-shadow: 0 0 0 3px var(--gold-tint);
}
.taf .wpcf7 input[type=submit] {
	font: inherit; font-size: 15px; font-weight: 500; cursor: pointer;
	background: var(--forest); color: #fff; border: 1px solid var(--forest);
	border-radius: 999px; padding: 13px 30px; transition: .15s;
}
.taf .wpcf7 input[type=submit]:hover { background: var(--forest2); border-color: var(--forest2) }
.taf .wpcf7 .cf7-send { margin-top: 6px }
/* CF7's own feedback blocks */
.taf .wpcf7 .wpcf7-not-valid-tip { color: #9b2c2c; font-size: 13.5px; margin-top: 5px }
.taf .wpcf7 :is(input,select,textarea).wpcf7-not-valid { border-color: #9b2c2c }
.taf .wpcf7-response-output {
	margin: 18px 0 0 !important; padding: 13px 16px !important;
	border-radius: 8px 0 14px 14px !important; font-size: 15px;
	border: 1px solid var(--line) !important; background: var(--card);
}
.taf .wpcf7 form.sent .wpcf7-response-output { border-color: var(--sage) !important; background: rgba(157,175,139,.14) }
.taf .wpcf7 form.invalid .wpcf7-response-output,
.taf .wpcf7 form.failed .wpcf7-response-output { border-color: #9b2c2c !important; background: rgba(155,44,44,.06) }
.taf .wpcf7-spinner { margin-left: 10px }
@media (max-width: 640px) { .taf .cf7-two { grid-template-columns: 1fr } }

/* ===== filter and area tags =====
   These were 11px in --soft, which read as disabled rather than clickable.
   Up to 14px, medium weight, and ink-coloured for contrast. */
.taf .tag {
	font-size: 14px;
	font-weight: 500;
	line-height: 1.3;
	padding: 7px 14px;
	color: var(--ink);
	border-color: var(--line);
}
.taf .tag:hover { border-color: var(--gold); color: var(--forest) }
.taf .tag.is-on { background: var(--forest); color: #fff; border-color: var(--forest); font-weight: 500 }
.taf .tag .mono { font-size: 13px; font-weight: 500 }
.taf .chips a { margin: 0 8px 8px 0 }
/* the sidebar runs a narrower column, so keep those a touch smaller */
.taf .taf-side .tag, .taf .taf-sticky .tag { font-size: 13px; padding: 6px 12px }
@media (max-width: 640px) { .taf .tag { font-size: 13.5px } }

/* ===== about page sections =====
   These ran in a 760px column inside a full-width band, so each section sat in
   the left third with the rest of the band empty. Give the prose a comfortable
   measure but centre it, and let the section headings use the full width. */
.taf .taf-narrow {
	max-width: 1000px;
	margin-left: auto;
	margin-right: auto;
}
.taf .taf-narrow > h2 {
	font-size: 34px;
	margin-bottom: 18px;
}
.taf .taf-narrow > p,
.taf .taf-narrow > ul,
.taf .taf-narrow > ol {
	max-width: 74ch;   /* prose stays readable even though the block is wider */
	font-size: 17px;
}
@media (max-width: 1040px) { .taf .taf-narrow { max-width: 100% } }

/* ===== news list =====
   A dated list rather than a card grid: news is read newest-first, and a row
   carries the date, area and standfirst far better than a tile. */
.taf .newslist { list-style: none; margin: 0; padding: 0 }
.taf .newsrow {
	display: grid;
	grid-template-columns: 196px minmax(0, 1fr);
	gap: 26px;
	padding: 26px 0;
	border-bottom: 1px solid var(--line);
	align-items: start;
}
.taf .newsrow:first-child { padding-top: 6px }
.taf .newsrow .thumb {
	display: block;
	aspect-ratio: 16 / 10;
	border-radius: 8px 0 22px 22px;
	overflow: hidden;
	background: var(--card);
	border: 1px solid var(--line);
}
.taf .newsrow .thumb img { width: 100%; height: 100%; object-fit: cover; display: block }
.taf .newsrow .thumb .art { display: block; width: 100%; height: 100% }
.taf .newsrow h3 { margin: 6px 0 8px; font-size: 21px; line-height: 1.3 }
.taf .newsrow h3 a { color: var(--forest); text-decoration: none }
.taf .newsrow h3 a:hover { color: var(--gold) }
.taf .newsrow .cats { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin: 0 }
.taf .newsrow .cats a { color: var(--gold); text-decoration: none }
.taf .newsrow .cats .dot { color: var(--line) }
.taf .newsrow .ex { color: var(--soft); font-size: 15.5px; margin: 0 0 10px; line-height: 1.6 }
.taf .newsrow .more { font-size: 14px; font-weight: 500; color: var(--forest) }
.taf .newsrow:hover .more .arw { margin-left: 4px }
.taf .newsrow .more .arw { transition: margin .15s }
@media (max-width: 720px) {
	.taf .newsrow { grid-template-columns: 1fr; gap: 14px }
	.taf .newsrow .thumb { aspect-ratio: 21 / 9 }
}

/* The two-column layout collapses at 980px of VIEWPORT, but Warren's content
   grid is much narrower than the viewport, so between roughly 980 and 1240 the
   article column was squeezed to ~374px while the sidebar kept its full 320.
   Collapse earlier, and let the sidebar shrink before it does. */
@media (max-width: 1240px) {
	.taf .cols { grid-template-columns: 1fr; gap: 44px }
	.taf .taf-sticky { position: static }
}
@media (min-width: 1241px) {
	.taf .cols { grid-template-columns: minmax(0, 1fr) 300px; gap: 48px }
}

/* Widgets render through WordPress now, so the promo block styles by its
   registered class rather than a hand-written wrapper. */
.taf .widget.widget_taf_promo {
	background: var(--forest);
	color: #fff;
	border-color: var(--forest);
	text-align: center;
}
.taf .widget.widget_taf_promo h4 { color: #fff; margin: 0 0 14px; font-size: 18px }
.taf .widget.widget_taf_promo .cta { color: #fff; border-color: rgba(255,255,255,.45) }
.taf .widget.widget_taf_promo h5 { color: var(--tan2) }
.taf .taf-sticky .widget:last-child { margin-bottom: 0 }

/* ===== area page jump index =====
   This was a bare <ul> of dead links sitting in a full-width band. As a row of
   chips it reads as navigation and takes the space it needs, not a whole band. */
.taf ul.taf-jump {
	list-style: none;
	margin: 0 0 8px;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.taf ul.taf-jump li { margin: 0 }
.taf ul.taf-jump a {
	display: inline-block;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.3;
	padding: 8px 15px;
	color: var(--ink);
	text-decoration: none;
	background: var(--card);
	border: 1px solid var(--line);
	border-radius: 999px;
	transition: border-color .15s, color .15s;
}
.taf ul.taf-jump a:hover { border-color: var(--gold); color: var(--forest) }
/* the band it sits in should hug the index rather than tower over it */
.taf .band > .wrap > ul.taf-jump:only-child { padding: 6px 0 }
.taf h2[id] { scroll-margin-top: 90px }

/* a button that has to sit inline in a line of links */
.taf .taf-linkbtn {
	background: none; border: 0; padding: 0; margin: 0;
	font: inherit; color: inherit; cursor: pointer;
	text-decoration: underline; text-underline-offset: 2px;
}
.taf .taf-linkbtn:hover { color: var(--gold) }
.taf .taf-linkbtn:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; border-radius: 3px }
