@import url("https://fonts.googleapis.com/css2?family=Newsreader:opsz,wght@6..72,400;6..72,500;6..72,600&family=Source+Sans+3:wght@400;500;600;700;800&display=swap");


:root {
  --paper: #f8f6f1;
  --paper-deep: #f0ece3;
  --ink: #171512;
  --ink-muted: #676158;
  --forest: #1f554b;
  --forest-deep: #143a35;
  --ochre: #c98a3c;
  --line: #ded8cf;
  --serif: Georgia, "Times New Roman", Times, serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --wrap: min(1180px, calc(100vw - 48px));
  --shadow: 0 16px 42px rgba(28, 25, 20, .08);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); line-height: 1.55; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
button, input { font: inherit; }
button { cursor: pointer; }
.wrap { width: var(--wrap); margin-inline: auto; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }
.skip-link { position: fixed; top: -50px; left: 20px; z-index: 99; padding: 10px 14px; background: var(--ink); color: #fff; border-radius: 5px; transition: top .2s; }
.skip-link:focus { top: 14px; }
.topline { background: var(--forest-deep); color: #eee9dd; font-size: .68rem; letter-spacing: .12em; font-weight: 700; }
.topline-inner { min-height: 32px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.site-header { position: relative; z-index: 20; border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--paper) 97%, transparent); }
.masthead { min-height: 88px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.brand { display: inline-flex; align-items: center; gap: 10px; font-family: var(--serif); font-size: 1.38rem; letter-spacing: -.055em; line-height: 1; white-space: nowrap; }
.brand strong { font-weight: 800; }.brand em { color: var(--ochre); font-style: normal; font-weight: 700; margin-left: 2px; }
.brand-mark { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 50%; background: var(--forest); color: #fff; font-family: var(--sans); font-size: .62rem; font-weight: 800; letter-spacing: -.04em; }
.primary-nav { display: flex; align-items: center; gap: 21px; font-size: .75rem; font-weight: 750; letter-spacing: .04em; }
.nav-link { color: #48433d; position: relative; padding: 7px 0; }.nav-link::after { content:""; position: absolute; left:0; right:0; bottom:0; height: 2px; background: var(--ochre); transform: scaleX(0); transform-origin: right; transition: transform .2s; }.nav-link:hover::after,.nav-link.is-active::after { transform: scaleX(1); transform-origin:left; }
.nav-method { padding: 10px 13px; border: 1px solid var(--forest); color: var(--forest); border-radius: 999px; transition: .2s ease; }.nav-method:hover { background: var(--forest); color: #fff; }
.menu-toggle { display: none; border: 0; background: transparent; width: 38px; padding: 8px; }.menu-toggle span:not(.sr-only) { display:block; height: 2px; margin: 5px 0; background: var(--ink); }
.eyebrow { margin: 0 0 12px; color: var(--forest); font-size: .72rem; font-weight: 800; letter-spacing: .16em; }.section-heading-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 28px; }.section-heading-row h2 { margin:0; font-family: var(--serif); font-size: clamp(2rem, 3.3vw, 3.35rem); letter-spacing: -.055em; line-height: .98; }.text-link { color: var(--forest); font-size: .82rem; font-weight: 780; white-space: nowrap; }.text-link span { padding-left: 4px; transition: transform .2s; display: inline-block; }.text-link:hover span { transform: translateX(4px); }
.button { display: inline-flex; justify-content: center; align-items: center; gap: 13px; padding: 14px 17px; min-height: 48px; border-radius: 3px; font-size: .79rem; font-weight: 800; letter-spacing: .02em; transition: transform .2s, background .2s, color .2s; }.button:hover { transform: translateY(-2px); }.button-primary { background: var(--forest); color: #fff; }.button-primary span { color: #e8c895; }.button-secondary { border: 1px solid var(--ink); background: transparent; color: var(--ink); }.button-secondary:hover { background: var(--ink); color: var(--paper); }
.home-hero { min-height: 555px; display: grid; grid-template-columns: 1.35fr .65fr; align-items: end; gap: clamp(35px, 8vw, 120px); padding: 82px 0 92px; }.hero-intro h1 { margin:0; max-width: 770px; font-family: var(--serif); font-size: clamp(3.55rem, 7.5vw, 7.6rem); line-height: .82; letter-spacing: -.085em; font-weight: 800; }.hero-intro h1 em { color: var(--forest); font-style: normal; }.hero-copy { max-width: 600px; margin: 35px 0 27px; color: #403c36; font-size: 1.1rem; line-height: 1.65; }.hero-side { margin-bottom: 8px; padding: 33px 0 20px 32px; border-left: 4px solid var(--ochre); }.hero-number { color: var(--forest); font-family: var(--serif); font-size: 5.5rem; line-height: .7; letter-spacing: -.08em; }.hero-number span { display: block; padding: 14px 0 20px; font-family: var(--sans); color: var(--ink); font-size: .72rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }.hero-side p { max-width: 310px; color: var(--ink-muted); font-size: .95rem; line-height:1.6; }
.featured-band { border-block: 1px solid var(--line); background: var(--paper-deep); padding: 72px 0 76px; }.front-grid { display:grid; grid-template-columns: 1.15fr .85fr; gap: 22px; }.front-stories { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:22px; }.article-card { min-width: 0; background: var(--paper); border: 1px solid var(--line); transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }.article-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: #c9bfb0; }.card-link { height:100%; display:flex; flex-direction:column; }.card-media { aspect-ratio: 1.5; background: #dcd3c5; overflow:hidden; border-bottom:1px solid var(--line); }.card-media img { width:100%; height:100%; object-fit:cover; transition: transform .4s ease; }.article-card:hover .card-media img { transform: scale(1.035); }.card-media--abstract { display:grid; place-items:center; background: linear-gradient(140deg, var(--forest) 0 35%, #75927b 35% 48%, var(--ochre) 48% 52%, #e3d5bd 52% 100%); }.card-media--abstract span { font-family:var(--serif); font-size:5rem; font-weight:800; color:#fff; letter-spacing:-.1em; }.card-body { padding: 20px 20px 16px; display:flex; height:100%; flex-direction:column; }.card-meta { display:flex; justify-content:space-between; gap:10px; margin-bottom:15px; color:var(--forest); font-size:.65rem; font-weight:850; letter-spacing:.11em; text-transform:uppercase; }.card-meta span:last-child { color:#787068; text-align:right; }.card-body h3 { margin:0; font-family:var(--serif); font-size:clamp(1.45rem,2vw,2.05rem); line-height:.98; letter-spacing:-.055em; }.card-body p { margin:14px 0 20px; color:#625d55; font-size:.88rem; line-height:1.52; }.card-footer { margin-top:auto; padding-top:12px; border-top:1px solid var(--line); color:#6b655e; font-size:.7rem; font-weight:700; display:flex; justify-content:space-between; align-items:center; }.card-footer b { font-size:1.15rem; color:var(--forest); }.article-card--featured .card-media { aspect-ratio:1.8; }.article-card--featured .card-body { padding:25px 27px 20px; }.article-card--featured .card-body h3 { font-size:clamp(2rem,3.5vw,3.8rem); }.article-card--featured .card-body p { font-size:1rem; max-width:750px; }
.articles-section { position: relative; padding: 100px 0 116px; }.filter-anchor { position:absolute; top:-100px; }.articles-top { align-items:center; }.search-box { position:relative; width:min(300px, 100%); }.search-box input { width:100%; padding:13px 38px 13px 14px; border:1px solid #cfc5b7; background:rgba(255,255,255,.35); border-radius:3px; color:var(--ink); outline:0; font-size:.85rem; }.search-box input:focus { border-color:var(--forest); box-shadow:0 0 0 3px rgba(31,85,75,.12); }.search-box span { position:absolute; right:13px; top:7px; color:var(--forest); font-size:1.35rem; }.topic-row { display:flex; gap:9px; flex-wrap:wrap; padding-bottom:26px; border-bottom:1px solid var(--line); }.topic-chip { padding:8px 11px; border:1px solid #c9c1b5; background:transparent; color:#514c45; border-radius:999px; font-size:.73rem; font-weight:730; transition:.2s; }.topic-chip span { margin-left:7px; color:#9a8b76; }.topic-chip:hover,.topic-chip.is-active { border-color:var(--forest); color:#fff; background:var(--forest); }.topic-chip.is-active span { color:#ddc89e; }.results-status { margin:19px 0 22px; color:#716b63; font-size:.8rem; }.results-status strong { color:var(--forest); }.articles-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }.articles-grid .article-card .card-media { aspect-ratio:1.64; }.empty-state { text-align:center; border:1px dashed #bbb0a1; margin-top:25px; padding:45px; color:#746d63; }.empty-state button { background:0; border:0; margin-top:8px; }
.method-section { background: var(--forest-deep); color:#f7f1e8; padding:100px 0; }.method-section .eyebrow { color:#e2b66f; }.method-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; }.method-grid h2 { margin:0; font-family:var(--serif); font-size:clamp(2.7rem,4.5vw,5rem); line-height:.91; letter-spacing:-.065em; }.method-grid h2 em { font-style:normal; color:#d7a55d; }.method-copy { padding-top:8px; }.method-copy>p { margin:0 0 38px; font-size:1.2rem; line-height:1.65; color:#ddd7cd; }.method-steps { display:grid; gap:16px; }.method-steps div { padding-top:14px; border-top:1px solid rgba(255,255,255,.25); display:grid; grid-template-columns:45px 1fr; column-gap:13px; }.method-steps span { color:#deb46f; font-size:.72rem; font-weight:800; grid-row:span 2; }.method-steps strong { font-family:var(--serif); font-size:1.35rem; }.method-steps p { margin:3px 0 0; color:#c9c1b6; font-size:.88rem; }.newsletter-section { padding:72px 0; display:flex; justify-content:space-between; align-items:center; gap:30px; }.newsletter-section .eyebrow { color:var(--ochre); }.newsletter-section h2 { margin:0; font-family:var(--serif); font-size:clamp(2rem,3.5vw,3.7rem); line-height:.96; letter-spacing:-.06em; }
/* Article detail */
.article-main { padding-bottom:102px; }.reading-progress { position:fixed; z-index:40; top:0; left:0; height:3px; width:100%; background:transparent; }.reading-progress span { display:block; width:0; height:100%; background:var(--ochre); }.breadcrumbs { padding:25px 0 14px; color:#6c655c; font-size:.73rem; }.breadcrumbs a:hover { color:var(--forest); }.breadcrumbs span { margin:0 4px; }.article-header { max-width:1040px; padding:42px 0 40px; }.article-kicker { display:flex; align-items:center; gap:11px; color:var(--forest); font-size:.69rem; font-weight:850; letter-spacing:.14em; }.kicker-line { height:1px; width:36px; background:var(--ochre); }.article-header h1 { margin:20px 0 23px; max-width:1040px; font-family:var(--serif); font-size:clamp(3.15rem,7.2vw,7.7rem); letter-spacing:-.09em; line-height:.82; }.article-deck { max-width:790px; margin:0; color:#514b43; font-size:clamp(1.06rem,1.6vw,1.3rem); line-height:1.58; }.article-meta { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-top:27px; color:#706960; font-size:.8rem; }.copy-link { margin-left:11px; border:0; color:var(--forest); background:transparent; padding:3px 0; font-size:.76rem; font-weight:800; }.copy-link:hover { text-decoration:underline; }.article-cover { margin:0 0 58px; overflow:hidden; background:#eee7dd; }.article-cover img { width:100%; max-height:560px; object-fit:cover; }.article-layout { display:grid; grid-template-columns:170px minmax(0,760px); justify-content:center; gap:68px; }.article-side { padding-top:15px; color:#7b746a; font-size:.75rem; line-height:1.5; }.article-side p { margin:0; color:var(--forest); font-size:.7rem; font-weight:850; letter-spacing:.15em; text-transform:uppercase; }.article-side span { display:block; max-width:150px; }.side-rule { width:40px; height:3px; margin:13px 0; background:var(--ochre); }.article-body { min-width:0; font-size:clamp(1.02rem,1.45vw,1.2rem); line-height:1.76; }.article-body p { margin:0 0 1.45em; }.article-body p:not(.article-lead)::first-letter { }.article-body .article-lead { font-size:clamp(1.27rem,1.9vw,1.54rem); line-height:1.64; color:#2d2924; }.article-body .article-lead::first-letter { float:left; color:var(--forest); font-family:var(--serif); font-size:5.4em; line-height:.74; padding:8px 9px 0 0; font-weight:800; }.article-heading { position:relative; margin:2.6em 0 .78em; padding-left:24px; font-family:var(--serif); font-size:clamp(2rem,3.3vw,3.2rem); line-height:.98; letter-spacing:-.06em; }.article-heading::before { content:""; position:absolute; top:.08em; bottom:.09em; left:0; width:5px; background:var(--ochre); border-radius:4px; }.article-heading.mini-heading { font-size:clamp(1.7rem,2.7vw,2.5rem); }.article-body em { font-style:italic; }.article-body a { color:var(--forest); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }.article-figure { margin:2.35em 0 2.15em; }.figure-frame { border:1px solid var(--line); background:#fff; padding:8px; }.article-figure img { width:100%; max-height:560px; object-fit:contain; background:#fff; }.article-figure figcaption,.figure-text { margin:10px 0 0!important; color:#71695f; font-size:.76rem!important; line-height:1.45!important; }.figure-text { padding-left:15px; border-left:2px solid #d1c5b3; }.editor-note { margin:2em 0; padding:17px 19px; border-left:4px solid var(--forest); background:#eeeadf; color:#544f47; font-size:.9rem; line-height:1.6; }.sources { margin-top:3.5em; padding-top:1px; }.section-rule { height:1px; margin-bottom:25px; background:var(--line); position:relative; }.section-rule span { position:absolute; left:0; top:-1px; width:72px; height:3px; background:var(--ochre); }.sources h2 { margin:0 0 16px; font-family:var(--serif); font-size:2.25rem; line-height:1; letter-spacing:-.05em; }.sources ol { margin:0; padding-left:21px; color:#665f56; font-size:.8rem; line-height:1.55; }.sources li { padding-left:6px; margin:0 0 8px; }.related { margin-top:102px; }.related-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px; }.related-card { min-height:190px; position:relative; padding:22px; background:var(--paper-deep); border:1px solid var(--line); display:flex; flex-direction:column; transition:.2s; }.related-card:hover { background:#e6dfd3; transform:translateY(-3px); }.related-card span { color:var(--forest); font-size:.66rem; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }.related-card strong { margin:14px 20px 16px 0; font-family:var(--serif); font-size:1.45rem; letter-spacing:-.04em; line-height:1.02; }.related-card small { margin-top:auto; color:#766e64; font-size:.72rem; }.related-card b { position:absolute; right:21px; top:19px; color:var(--ochre); font-size:1.2rem; }
.site-footer { background:#161c1a; color:#dcd7cc; padding-top:65px; }.footer-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:60px; padding-bottom:50px; }.footer-brand { color:#fff; }.footer-grid p { max-width:320px; color:#b8b3a9; font-size:.88rem; }.footer-grid a:not(.brand) { display:block; width:max-content; margin:9px 0; color:#d6d0c6; font-size:.82rem; }.footer-grid a:not(.brand):hover { color:#e5b96f; }.footer-label { color:#e3b26a!important; text-transform:uppercase; letter-spacing:.15em; font-size:.65rem!important; font-weight:800; }.footer-bottom { border-top:1px solid rgba(255,255,255,.14); min-height:55px; display:flex; align-items:center; justify-content:space-between; color:#918c84; font-size:.7rem; }
@media (max-width: 920px) { .primary-nav { gap:13px; }.nav-link:nth-of-type(3),.nav-link:nth-of-type(4) { display:none; }.home-hero { grid-template-columns:1fr .55fr; gap:36px; }.article-layout { grid-template-columns:120px minmax(0,1fr); gap:38px; }.articles-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.method-grid { gap:50px; } }
@media (max-width: 690px) { :root { --wrap: min(100% - 32px, 1180px); }.topline-inner { justify-content:center; text-align:center; }.topline-inner span:last-child { display:none; }.masthead { min-height:70px; }.primary-nav { display:none; position:absolute; top:70px; left:0; right:0; padding:18px 16px 23px; background:var(--paper); border-bottom:1px solid var(--line); box-shadow:0 13px 25px rgba(0,0,0,.08); }.primary-nav.is-open { display:flex; flex-direction:column; align-items:stretch; gap:6px; }.nav-link { padding:10px 4px; }.nav-method { margin-top:8px; text-align:center; }.menu-toggle { display:block; }.home-hero { min-height:auto; grid-template-columns:1fr; padding:62px 0 65px; gap:44px; }.hero-intro h1 { font-size:clamp(3.5rem, 16vw, 5.6rem); }.hero-copy { margin:27px 0 24px; font-size:1rem; }.hero-side { margin:0; padding:25px 0 2px 22px; }.hero-number { font-size:4.2rem; }.featured-band { padding:56px 0; }.section-heading-row { align-items:flex-start; flex-direction:column; gap:12px; margin-bottom:22px; }.front-grid,.front-stories { grid-template-columns:1fr; }.article-card--featured .card-body h3 { font-size:2.35rem; }.articles-section { padding:70px 0 80px; }.articles-top { align-items:stretch; }.search-box { width:100%; }.articles-grid { grid-template-columns:1fr; gap:16px; }.method-section { padding:72px 0; }.method-grid { grid-template-columns:1fr; gap:36px; }.method-grid h2 { font-size:3.2rem; }.newsletter-section { padding:55px 0; flex-direction:column; align-items:flex-start; }.newsletter-section h2 { font-size:2.5rem; }.article-header { padding:25px 0 30px; }.article-header h1 { font-size:clamp(3rem,15vw,5.6rem); }.article-deck { font-size:1rem; }.article-cover { margin-bottom:35px; }.article-layout { grid-template-columns:1fr; gap:20px; }.article-side { display:none; }.article-body { font-size:1.05rem; }.article-heading { padding-left:18px; font-size:2.3rem; }.article-figure { margin:1.8em 0; }.related { margin-top:72px; }.related-grid { grid-template-columns:1fr; }.footer-grid { grid-template-columns:1fr; gap:22px; }.footer-bottom { padding:16px 0; align-items:flex-start; flex-direction:column; gap:3px; }.card-media { aspect-ratio:1.72; } }
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition-duration:.01ms!important; animation-duration:.01ms!important; } }


/* ---------------------------------------------------------
   Insight 221 – editorial template v2
   Palette intentionally retained: paper / forest / ochre.
   --------------------------------------------------------- */
:root { --paper: #f8f6f1; --paper-deep: #efebe2; --ink: #171512; --forest: #1f554b; --forest-deep: #143a35; --ochre: #c98a3c; --line: #d9d2c7; --wrap: min(1240px, calc(100vw - 56px)); }
html { scroll-padding-top: 188px; }
body { background: var(--paper); }
.site-header { position: sticky !important; top: 0; z-index: 100; background: rgba(248,246,241,.985); border-bottom: 1px solid var(--line); transition: box-shadow .22s ease, background .22s ease; }
.site-header.is-scrolled { box-shadow: 0 10px 28px rgba(30,24,16,.10); }
.utility-bar { background: var(--forest-deep); color: #ede8de; }
.utility-inner { min-height: 30px; display:flex; align-items:center; justify-content:space-between; gap:20px; font-size: .65rem; font-weight:800; letter-spacing:.14em; }
.utility-inner p { margin:0; }
.utility-links { display:flex; align-items:center; gap:11px; letter-spacing:.08em; }
.utility-links > a:first-child { color:#eee7d9; }
.utility-separator { width:1px; height:12px; background:rgba(255,255,255,.28); }
.follow-label { color:#bdc9c0; font-size:.59rem; }
.utility-social { display:grid; place-items:center; width:18px; height:18px; border:1px solid rgba(255,255,255,.48); border-radius:50%; color:#f5eee1; font-size:.55rem; font-weight:900; letter-spacing:-.04em; }
.utility-social:hover { color:var(--forest-deep); background:#f4eee2; border-color:#f4eee2; }
.utility-social.is-placeholder, .footer-socials a.is-placeholder { cursor:default; opacity:.7; }
.brand-row { min-height:94px; display:grid; grid-template-columns: 1fr minmax(160px, 360px) 1fr; align-items:center; column-gap:30px; }
.brand--editorial { display:inline-flex; flex-direction:column; align-items:flex-start; width:max-content; font-family:var(--serif); line-height:1; }
.brand-overline { color:var(--forest); font-family:var(--sans); font-size:.58rem; line-height:1.1; font-weight:850; letter-spacing:.16em; text-transform:uppercase; }
.brand-wordmark { margin-top:5px; font-family:var(--serif); font-size:2.1rem; line-height:.85; font-weight:800; letter-spacing:-.075em; }
.brand-wordmark b { color:var(--ochre); font-weight:800; }
.brand-claim { max-width:355px; margin:0; color:#6a635a; font-family:var(--serif); font-size:.98rem; line-height:1.24; text-align:center; }
.header-actions { justify-self:end; display:flex; align-items:center; gap:12px; }
.header-search-trigger { border:0; background:transparent; color:#3f3a34; padding:8px 4px; font-size:.71rem; font-weight:800; letter-spacing:.05em; }
.header-search-trigger span { color:var(--forest); font-size:1.2rem; vertical-align:-1px; }
.header-subscribe { border:1px solid var(--forest); padding:10px 12px; color:var(--forest); font-size:.69rem; font-weight:850; letter-spacing:.06em; text-transform:uppercase; transition:.2s ease; }
.header-subscribe:hover { color:#fff; background:var(--forest); }
.menu-toggle { display:none; }
.global-search { max-height:0; overflow:hidden; border-top:0 solid transparent; background:var(--paper-deep); transition:max-height .24s ease, border-color .24s ease; }
.global-search.is-open { max-height:100px; border-top:1px solid var(--line); }
.global-search-inner { min-height:76px; display:grid; grid-template-columns:240px 1fr 34px; align-items:center; gap:18px; }
.global-search label { color:var(--forest); font-size:.68rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.global-search input { min-width:0; width:100%; border:0; border-bottom:1px solid #a9a197; outline:0; padding:10px 1px; background:transparent; color:var(--ink); font-family:var(--serif); font-size:1.25rem; }
.global-search button { width:34px; height:34px; border:1px solid #bfb6a9; background:transparent; color:var(--forest); font-size:1.4rem; line-height:1; }
.category-nav-wrap { border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--paper); }
.category-nav { min-height:43px; display:flex; align-items:center; gap:0; overflow-x:auto; scrollbar-width:none; }
.category-nav::-webkit-scrollbar { display:none; }
.category-link { flex:0 0 auto; display:inline-flex; align-items:center; min-height:43px; padding:0 15px; border-right:1px solid var(--line); color:#4c463f; font-size:.66rem; font-weight:850; letter-spacing:.065em; text-transform:uppercase; transition:background .18s,color .18s; }
.category-link:first-child { border-left:1px solid var(--line); }
.category-link:hover, .category-link.is-active { background:var(--forest); color:#fff; }
.category-link:last-child { color:var(--ochre); }
.category-link:last-child:hover { color:#fff; }

/* Home */
.editorial-home { overflow:hidden; }
.front-intro { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(270px,.65fr); align-items:end; gap:clamp(40px,8vw,135px); padding-top:clamp(64px,9vw,128px); padding-bottom:clamp(58px,8vw,108px); }
.front-kicker { margin:0 0 15px; color:var(--forest); font-size:.68rem; font-weight:900; letter-spacing:.16em; text-transform:uppercase; }
.front-intro h1 { max-width:885px; margin:0; font-family:var(--serif); font-size:clamp(4rem,8vw,8.4rem); font-weight:800; line-height:.78; letter-spacing:-.09em; }
.front-intro h1 em { color:var(--forest); font-style:normal; }
.front-intro-copy > p:not(.front-kicker) { max-width:650px; margin:39px 0 29px; color:#423d36; font-size:1.1rem; line-height:1.72; }
.front-intro-actions { display:flex; align-items:center; gap:21px; flex-wrap:wrap; }
.editorial-button { display:inline-flex; align-items:center; gap:13px; padding:14px 16px; font-size:.73rem; font-weight:850; letter-spacing:.05em; text-transform:uppercase; }
.editorial-button--dark { color:#fff; background:var(--forest); transition:transform .2s, background .2s; }
.editorial-button--dark:hover { background:var(--forest-deep); transform:translateY(-2px); }
.editorial-button--dark span { color:#eac983; font-size:1rem; }
.plain-action { color:var(--forest); border-bottom:1px solid var(--forest); padding-bottom:2px; font-size:.76rem; font-weight:850; }
.front-brief { padding:25px 0 0 28px; border-left:5px solid var(--ochre); }
.brief-label, .sidebar-label { margin:0; color:var(--forest); font-size:.65rem; font-weight:900; letter-spacing:.16em; text-transform:uppercase; }
.brief-quote { margin:18px 0 27px; color:#37322d; font-family:var(--serif); font-size:1.55rem; line-height:1.13; letter-spacing:-.04em; }
.brief-stats { display:flex; gap:24px; padding-top:16px; border-top:1px solid var(--line); }
.brief-stats > div { display:flex; flex-direction:column; gap:6px; }
.brief-stats strong { font-family:var(--serif); color:var(--forest); font-size:2.4rem; line-height:.8; letter-spacing:-.08em; }
.brief-stats span { max-width:95px; color:#746c61; font-size:.62rem; font-weight:800; line-height:1.3; text-transform:uppercase; }
.lead-section { padding:0 0 86px; }
.section-topline { display:flex; justify-content:space-between; align-items:center; min-height:42px; border-top:4px solid var(--ink); border-bottom:1px solid var(--line); }
.section-topline p, .section-topline span { margin:0; font-size:.66rem; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.section-topline p { color:var(--forest); }
.section-topline span { color:#7b7268; }
.lead-grid { display:grid; grid-template-columns:minmax(0,1.28fr) minmax(320px,.72fr); gap:28px; padding-top:24px; }
.lead-story { display:grid; grid-template-columns:minmax(0,1.04fr) minmax(300px,.96fr); border-bottom:1px solid var(--line); }
.lead-story-image { position:relative; display:block; min-height:485px; overflow:hidden; background:#d7d0c4; }
.lead-story-image img { width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
.lead-story:hover img { transform:scale(1.025); }
.lead-story-copy { padding:21px 0 22px 28px; display:flex; flex-direction:column; }
.story-meta { margin:0; display:flex; justify-content:space-between; align-items:center; gap:10px; color:#7c746a; font-size:.62rem; font-weight:850; letter-spacing:.09em; line-height:1.3; text-transform:uppercase; }
.story-category { color:var(--forest); }
.story-category--agri { color:#48735b; }.story-category--edu { color:#5b5e8e; }.story-category--demo { color:#a05c42; }.story-category--culture { color:#805775; }.story-category--demo2 { color:#7b6254; }.story-category--tech { color:#247076; }
.lead-story h2 { margin:22px 0 18px; font-family:var(--serif); font-size:clamp(2.8rem,4.3vw,5rem); line-height:.87; letter-spacing:-.075em; }
.lead-story h2 a:hover { color:var(--forest); }
.lead-story-copy > p:not(.story-meta) { margin:0 0 20px; color:#555048; font-size:.94rem; line-height:1.62; }
.read-link { margin-top:auto; color:var(--forest); font-size:.74rem; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
.read-link span { padding-left:3px; color:var(--ochre); }
.lead-sidebar { display:grid; align-content:start; gap:14px; padding-left:0; }
.lead-sidebar .sidebar-label { padding-bottom:10px; border-bottom:1px solid var(--line); }
.lead-sidebar .story-card { border-bottom:1px solid var(--line); }
.lead-sidebar .story-link { display:grid; grid-template-columns:125px 1fr; gap:16px; padding-bottom:14px; }
.lead-sidebar .story-image { aspect-ratio:1; height:125px; }
.lead-sidebar .story-content { padding:0; }
.lead-sidebar .story-summary, .lead-sidebar .story-footer { display:none; }
.lead-sidebar .story-card h3 { margin:10px 0 0; font-size:1.45rem; }
.topic-stripe { background:var(--forest-deep); color:#f5eee1; border-top:1px solid #315f56; border-bottom:1px solid #315f56; }
.topic-stripe-inner { display:grid; grid-template-columns:repeat(5,1fr); }
.topic-stripe a { min-height:82px; padding:18px 16px; border-left:1px solid rgba(255,255,255,.17); display:flex; flex-direction:column; justify-content:center; gap:4px; color:#f3eee5; font-family:var(--serif); font-size:1.08rem; line-height:1.02; letter-spacing:-.025em; }
.topic-stripe a:last-child { border-right:1px solid rgba(255,255,255,.17); }.topic-stripe a:hover { background:#214a43; }
.topic-stripe span { color:#e1b56d; font-family:var(--sans); font-size:.6rem; font-weight:900; letter-spacing:.14em; }
.editor-picks { padding:104px 0 115px; }
.section-heading-pro { display:grid; grid-template-columns:1.1fr .9fr; align-items:end; gap:70px; padding-bottom:25px; border-bottom:1px solid var(--line); }
.section-heading-pro h2, .archive-head h2 { margin:0; font-family:var(--serif); font-size:clamp(2.75rem,5vw,5.25rem); line-height:.86; letter-spacing:-.075em; }
.section-heading-pro > p { max-width:360px; margin:0 0 4px; color:#6a6259; font-size:.94rem; line-height:1.55; }
.pick-grid { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:26px; padding-top:25px; }
.story-card { min-width:0; background:transparent; }
.story-link { display:flex; flex-direction:column; height:100%; }
.story-image { position:relative; aspect-ratio:1.48; background:#ddd4c7; overflow:hidden; }
.story-image img { width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.story-card:hover .story-image img { transform:scale(1.035); }
.story-image--text { display:flex; align-items:flex-end; justify-content:space-between; padding:20px; background:linear-gradient(135deg, var(--forest-deep) 0 56%, #a17743 56% 59%, #d9d0c1 59% 100%); color:#f8f6f1; }
.story-image--text span { font-family:var(--serif); font-size:4.1rem; font-weight:800; line-height:.7; letter-spacing:-.12em; }.story-image--text small { color:#24443e; font-size:.62rem; font-weight:900; line-height:1.2; letter-spacing:.09em; }
.story-content { padding:15px 0 0; display:flex; flex:1; flex-direction:column; }
.story-card h3 { margin:13px 0 0; font-family:var(--serif); font-size:clamp(1.55rem,2.25vw,2.3rem); font-weight:800; line-height:.95; letter-spacing:-.055em; }
.story-card:hover h3 { color:var(--forest); }
.story-summary { margin:13px 0 17px; color:#635c53; font-size:.86rem; line-height:1.53; }
.story-footer { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:auto; padding-top:11px; border-top:1px solid var(--line); color:#756d64; font-size:.67rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }.story-footer b { color:var(--ochre); font-size:1.16rem; }
.archive-section { position:relative; padding:100px 0 118px; border-top:1px solid var(--line); }
.filter-anchor { position:absolute; top:-205px; }
.archive-head { display:flex; justify-content:space-between; align-items:end; gap:40px; padding-bottom:27px; border-bottom:1px solid var(--line); }
.archive-search { position:relative; flex:0 0 min(360px, 100%); }.archive-search input { width:100%; padding:12px 39px 12px 0; border:0; border-bottom:1px solid #aaa096; outline:0; background:transparent; color:var(--ink); font-family:var(--serif); font-size:1.05rem; }.archive-search input:focus { border-color:var(--forest); }.archive-search span { position:absolute; right:5px; bottom:9px; color:var(--forest); font-size:1.3rem; }
.archive-toolbar { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; padding:23px 0 27px; }.archive-chips { display:flex; flex-wrap:wrap; gap:7px; }.archive-chip { border:1px solid #c7bfb3; background:transparent; padding:8px 10px; color:#514b43; font-size:.67rem; font-weight:850; letter-spacing:.03em; transition:.18s; }.archive-chip span { color:#988d7d; margin-left:4px; }.archive-chip:hover, .archive-chip.is-active { border-color:var(--forest); color:#fff; background:var(--forest); }.archive-chip.is-active span { color:#e5c17f; }.results-status { margin:8px 0 0; color:#766e64; font-size:.72rem; white-space:nowrap; }.results-status strong { color:var(--forest); font-size:.9rem; }
.archive-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); column-gap:26px; row-gap:42px; }.empty-state { grid-column:1/-1; padding:55px; border:1px dashed #bdb2a3; text-align:center; color:#6c645a; }.empty-state button { border:0; background:transparent; color:var(--forest); font-weight:800; text-decoration:underline; }
.method-manifesto { background:var(--forest-deep); color:#f7f1e8; padding:104px 0; }.method-manifesto-grid { display:grid; grid-template-columns:.95fr 1.05fr; gap:clamp(50px,10vw,150px); }.method-manifesto .front-kicker { color:#e4b56e; }.method-manifesto h2 { margin:0; font-family:var(--serif); font-size:clamp(3.5rem,5.7vw,6.5rem); line-height:.82; letter-spacing:-.075em; }.method-manifesto h2 em { color:#e6b66d; font-style:normal; }.method-manifesto-copy > p { margin:6px 0 30px; color:#e1ddd4; font-size:1.12rem; line-height:1.68; }.method-manifesto ol { margin:0; padding:0; list-style:none; border-top:1px solid rgba(255,255,255,.25); }.method-manifesto li { display:grid; grid-template-columns:170px 1fr; gap:20px; padding:15px 0; border-bottom:1px solid rgba(255,255,255,.25); }.method-manifesto li strong { color:#f6f0e6; font-family:var(--serif); font-size:1.45rem; letter-spacing:-.04em; }.method-manifesto li span { color:#c8c4bb; font-size:.89rem; line-height:1.5; }.method-link { display:inline-block; margin-top:26px; border-bottom:1px solid #e4b56e; padding-bottom:3px; color:#e7bc7c; font-size:.72rem; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }

/* Article page refinement */
.article-main { padding-bottom:105px; }.reading-progress { top:0; z-index:150; }.reading-progress span { background:var(--ochre); }.breadcrumbs { padding-top:31px; }.article-header { padding-top:38px; padding-bottom:51px; border-bottom:1px solid var(--line); }.article-header h1 { max-width:1050px; font-size:clamp(3.4rem,7.2vw,8rem); }.article-deck { max-width:830px; }.article-meta { padding-top:3px; }.article-layout { padding-top:50px; }.article-side { position:sticky; top:185px; height:max-content; }.article-body { font-family:var(--serif); font-size:clamp(1.08rem,1.46vw,1.23rem); color:#2d2924; }.article-body .article-lead { font-family:var(--sans); }.article-heading { font-family:var(--serif); }.article-figure figcaption, .figure-text { font-family:var(--sans); }.sources { font-family:var(--sans); }.related { margin-top:112px; }.related-card { background:var(--paper-deep); }.related-card:hover { background:#e7e0d4; }.copy-link { border-bottom:1px solid var(--forest); }

/* Footer */
.site-footer { background:#121b19; color:#ded8cd; padding-top:0; }.footer-newsletter { background:#e8e0d3; color:var(--ink); border-top:1px solid #d6ccbd; }.newsletter-grid { min-height:235px; display:grid; grid-template-columns:1.05fr .95fr; align-items:center; gap:70px; }.footer-kicker { margin:0 0 13px; color:var(--forest); font-size:.66rem; font-weight:900; letter-spacing:.16em; }.footer-newsletter h2 { max-width:650px; margin:0; font-family:var(--serif); font-size:clamp(2.45rem,4vw,4.35rem); line-height:.89; letter-spacing:-.065em; }.footer-newsletter h2 em { color:var(--forest); font-style:normal; }.newsletter-form { max-width:480px; }.newsletter-input-row { display:flex; border-bottom:2px solid var(--forest); }.newsletter-input-row input { min-width:0; flex:1; border:0; outline:0; background:transparent; padding:14px 0; color:var(--ink); font-family:var(--serif); font-size:1.06rem; }.newsletter-input-row button { flex:0 0 auto; border:0; background:var(--forest); color:#fff; padding:0 16px; font-size:.7rem; font-weight:900; letter-spacing:.05em; text-transform:uppercase; }.newsletter-input-row button span { color:#e6bf80; }.newsletter-form p { margin:10px 0 0; color:#6b6358; font-size:.7rem; line-height:1.45; }.footer-grid--pro { display:grid; grid-template-columns:1.55fr .75fr 1.05fr 1.1fr; gap:45px; padding:64px 0 55px; }.footer-intro p { max-width:370px; margin:18px 0 18px; color:#b8b4ab; font-size:.86rem; line-height:1.58; }.footer-brand .brand-overline { color:#c4c9bd; }.footer-brand .brand-wordmark { color:#f7f1e6; }.footer-grid--pro a:not(.brand) { display:block; width:max-content; margin:0 0 11px; color:#d8d2c7; font-size:.79rem; }.footer-grid--pro a:not(.brand):hover { color:#e7bb72; }.footer-label { margin:0 0 15px!important; color:#e1b269!important; font-size:.65rem!important; font-weight:900!important; letter-spacing:.15em; text-transform:uppercase; }.footer-socials { display:flex; gap:8px; }.footer-socials a { display:grid!important; place-items:center; width:25px; height:25px; margin:0!important; border:1px solid rgba(255,255,255,.35); border-radius:50%; color:#f3ece1!important; font-size:.66rem!important; font-weight:900; }.footer-socials a:hover { color:#14231f!important; background:#eee5d5; }.footer-note { margin:0 0 14px!important; color:#b9b2a8!important; font-size:.8rem!important; line-height:1.55; }.footer-method-link { border-bottom:1px solid #d9a95e; padding-bottom:3px; color:#edc781!important; }.footer-bottom--pro { min-height:58px; border-top:1px solid rgba(255,255,255,.14); display:grid; grid-template-columns:1fr 1fr auto; align-items:center; gap:20px; color:#99948b; font-size:.68rem; }.footer-bottom--pro a { color:#e0b46d; font-weight:800; }

@media (max-width: 1060px) { .brand-row { grid-template-columns:1fr auto; }.brand-claim { display:none; }.lead-grid { grid-template-columns:1fr; }.lead-sidebar { grid-template-columns:repeat(2, minmax(0,1fr)); }.lead-sidebar .sidebar-label { grid-column:1/-1; }.topic-stripe-inner { overflow:auto; grid-template-columns:repeat(5, minmax(190px,1fr)); }.footer-grid--pro { grid-template-columns:1.4fr .8fr .9fr; }.footer-grid--pro > div:last-child { grid-column:1/-1; max-width:460px; }.newsletter-grid { gap:40px; } }
@media (max-width: 760px) { :root { --wrap: min(100% - 32px, 1240px); } html { scroll-padding-top:120px; }.utility-inner { justify-content:center; }.utility-links { display:none; }.brand-row { min-height:70px; grid-template-columns:1fr auto; }.brand-wordmark { font-size:1.72rem; }.brand-overline { font-size:.51rem; }.header-actions { gap:8px; }.header-search-trigger { display:none; }.header-subscribe { display:none; }.menu-toggle { display:block; width:38px; border:0; background:transparent; padding:7px; }.menu-toggle span:not(.sr-only) { display:block; height:2px; margin:5px 0; background:var(--ink); }.category-nav-wrap { display:none; }.category-nav-wrap.is-open { display:block; position:absolute; left:0; right:0; top:100%; box-shadow:0 14px 24px rgba(0,0,0,.12); }.category-nav { display:flex; flex-direction:column; align-items:stretch; padding:8px 16px 14px; background:var(--paper); }.category-link, .category-link:first-child { min-height:39px; border:0; border-bottom:1px solid var(--line); padding:0 5px; }.global-search-inner { grid-template-columns:1fr 30px; gap:12px; }.global-search label { grid-column:1/-1; padding-top:13px; }.global-search.is-open { max-height:140px; }.front-intro { grid-template-columns:1fr; gap:45px; padding-top:66px; padding-bottom:65px; }.front-intro h1 { font-size:clamp(3.9rem,17vw,6.8rem); }.front-intro-copy > p:not(.front-kicker) { margin-top:27px; font-size:1rem; }.front-brief { padding-left:22px; }.brief-quote { font-size:1.37rem; }.lead-section { padding-bottom:65px; }.section-topline span { display:none; }.lead-story { grid-template-columns:1fr; }.lead-story-image { min-height:0; aspect-ratio:1.17; }.lead-story-copy { padding:19px 0 20px; }.lead-story h2 { font-size:clamp(2.8rem,11vw,4.3rem); }.lead-sidebar { grid-template-columns:1fr; }.lead-sidebar .sidebar-label { grid-column:auto; }.lead-sidebar .story-link { grid-template-columns:110px 1fr; }.lead-sidebar .story-image { height:110px; }.topic-stripe-inner { width:100%; display:flex; overflow:auto; }.topic-stripe a { min-width:220px; }.editor-picks { padding:72px 0; }.section-heading-pro { grid-template-columns:1fr; gap:16px; }.section-heading-pro h2, .archive-head h2 { font-size:clamp(2.75rem,11vw,4.3rem); }.pick-grid { grid-template-columns:1fr; gap:35px; }.archive-section { padding:70px 0 80px; }.archive-head { flex-direction:column; align-items:stretch; gap:26px; }.archive-toolbar { flex-direction:column; padding:20px 0; }.results-status { margin:0; }.archive-grid { grid-template-columns:1fr; gap:35px; }.method-manifesto { padding:70px 0; }.method-manifesto-grid { grid-template-columns:1fr; gap:40px; }.method-manifesto h2 { font-size:clamp(3.6rem,14vw,5.4rem); }.method-manifesto li { grid-template-columns:1fr; gap:5px; }.article-header { padding-top:25px; }.article-header h1 { font-size:clamp(3.25rem,14vw,5.6rem); }.article-layout { padding-top:25px; }.article-side { display:none; }.article-body { font-size:1.06rem; }.newsletter-grid { min-height:auto; grid-template-columns:1fr; gap:28px; padding:55px 0; }.footer-newsletter h2 { font-size:clamp(2.55rem,11vw,4rem); }.footer-grid--pro { grid-template-columns:1fr; gap:27px; padding:50px 0; }.footer-grid--pro > div:last-child { grid-column:auto; }.footer-bottom--pro { grid-template-columns:1fr; gap:4px; padding:16px 0; }.footer-bottom--pro a { margin-top:6px; } }

/* ========================================================================== 
   INSIGHT 221 — IDENTITÉ ÉDITORIALE AVEC LE NOUVEAU LOGO
   Cette section remplace visuellement l'ancien wordmark HTML sans modifier
   les pages HTML. Le fichier logo-insight221-editorial.png doit se trouver
   dans le même dossier assets/ que ce fichier CSS.
   ========================================================================== */

:root {
  --paper: #f8f6f1;
  --paper-deep: #eee9df;
  --ink: #1b1916;
  --ink-muted: #6c665e;
  --forest: #1f554b;
  --forest-deep: #143a35;
  --ochre: #d29a3d;
  --line: #d9d2c7;
  --serif: "Newsreader", Georgia, "Times New Roman", Times, serif;
  --sans: "Source Sans 3", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body {
  font-family: var(--sans);
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* En-tête : le logo devient le point fixe, net et respirant de la page. */
.brand-row {
  min-height: 88px;
  grid-template-columns: minmax(250px, 1fr) minmax(180px, 340px) minmax(250px, 1fr);
  column-gap: 28px;
}

.brand--editorial {
  display: block;
  flex: 0 0 auto;
  width: clamp(218px, 19vw, 278px);
  height: clamp(48px, 4.2vw, 61px);
  min-height: 0;
  background: url("/assets/logo-insight221-editorial.png") left center / contain no-repeat;
  font-family: var(--serif);
  line-height: 1;
}

/* Les mots restent dans le HTML pour les lecteurs d'écran, mais le visuel est le nouveau logo. */
.brand--editorial .brand-overline,
.brand--editorial .brand-wordmark {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.brand-claim {
  max-width: 315px;
  color: #70695f;
  font-family: var(--serif);
  font-size: .94rem;
  line-height: 1.3;
  letter-spacing: -.01em;
}

/* Le même logo apparaît dans le pied de page sur un fond clair, pour préserver son contraste. */
.footer-brand.brand--editorial {
  width: 205px;
  height: 46px;
  padding: 0;
  background-color: transparent;
  background-position: left center;
}

/* Hiérarchie typographique : plus fine, classique et moins encombrante. */
.front-intro h1,
.hero-intro h1,
.article-header h1,
.lead-story h2,
.section-heading-pro h2,
.archive-head h2,
.method-manifesto h2,
.footer-newsletter h2,
.section-heading-row h2,
.method-grid h2,
.newsletter-section h2,
.sources h2,
.article-heading,
.story-card h3,
.card-body h3,
.article-card--featured .card-body h3,
.lead-sidebar .story-card h3,
.method-manifesto li strong {
  font-family: var(--serif);
  font-weight: 500 !important;
  font-synthesis: none;
}

.front-intro h1,
.hero-intro h1 {
  max-width: 850px;
  font-size: clamp(3.15rem, 5.75vw, 6.15rem) !important;
  line-height: .9 !important;
  letter-spacing: -.058em !important;
}

.article-header h1 {
  max-width: 975px;
  font-size: clamp(2.85rem, 5.3vw, 5.75rem) !important;
  line-height: .91 !important;
  letter-spacing: -.055em !important;
}

.lead-story h2 {
  font-size: clamp(2.35rem, 3.75vw, 4.3rem) !important;
  line-height: .94 !important;
  letter-spacing: -.05em !important;
}

.section-heading-pro h2,
.archive-head h2 {
  font-size: clamp(2.25rem, 3.6vw, 3.9rem) !important;
  line-height: .94 !important;
  letter-spacing: -.05em !important;
}

.story-card h3,
.card-body h3,
.lead-sidebar .story-card h3 {
  font-size: clamp(1.35rem, 1.8vw, 1.85rem) !important;
  line-height: 1.02 !important;
  letter-spacing: -.032em !important;
}

.article-card--featured .card-body h3 {
  font-size: clamp(2rem, 3vw, 3.15rem) !important;
  line-height: .97 !important;
  letter-spacing: -.045em !important;
}

.method-manifesto h2 {
  font-size: clamp(2.9rem, 4.45vw, 4.85rem) !important;
  line-height: .92 !important;
  letter-spacing: -.055em !important;
}

.footer-newsletter h2,
.method-grid h2 {
  font-size: clamp(2.25rem, 3.45vw, 3.7rem) !important;
  line-height: .95 !important;
  letter-spacing: -.045em !important;
}

.article-heading {
  font-size: clamp(1.75rem, 2.45vw, 2.5rem) !important;
  line-height: 1.01 !important;
  letter-spacing: -.035em !important;
}

/* Corps d’article : une lecture longue plus calme et plus aérée. */
.article-body {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(1.12rem, 1.35vw, 1.22rem);
  line-height: 1.76;
  color: #2e2a25;
}

.article-body .article-lead,
.article-deck {
  font-family: var(--sans);
}

/* Navigation et éléments de service : sobre, propre, orientée presse. */
.category-link,
.header-search-trigger,
.header-subscribe,
.front-kicker,
.section-topline p,
.story-meta,
.footer-kicker,
.utility-inner {
  letter-spacing: .1em;
}

.header-subscribe {
  border-radius: 2px;
  background: var(--forest);
}

.category-link.is-active,
.category-link:hover {
  color: var(--forest);
}

.editorial-button,
.button,
.header-subscribe {
  font-family: var(--sans);
  font-weight: 700;
}

/* Ajustements mobiles : logo entier lisible, sans épaissir l'en-tête. */
@media (max-width: 1060px) {
  .brand-row {
    grid-template-columns: 1fr auto;
    min-height: 82px;
  }

  .brand-claim {
    display: none;
  }
}

@media (max-width: 760px) {
  .brand-row {
    min-height: 70px;
  }

  .brand--editorial {
    width: 195px;
    height: 43px;
  }

  .footer-brand.brand--editorial {
    width: 192px;
    height: 43px;
  }

  .front-intro h1,
  .hero-intro h1 {
    font-size: clamp(2.85rem, 11vw, 4.25rem) !important;
    line-height: .94 !important;
  }

  .article-header h1 {
    font-size: clamp(2.55rem, 10.5vw, 4.3rem) !important;
    line-height: .95 !important;
  }

  .lead-story h2 {
    font-size: clamp(2.1rem, 9vw, 3.25rem) !important;
  }

  .section-heading-pro h2,
  .archive-head h2 {
    font-size: clamp(2.05rem, 8.6vw, 3.15rem) !important;
  }
}
