/* KOOKGEREIGIDS — design tokens. Swap these values to change the entire site. */
:root {
  --color-primary: #c2410c;
  --color-primary-hover: #9a3412;
  --color-sand: #d4a373;
  --color-green: #365314;
  --color-background: #fffbf5;
  --color-surface: #ffffff;
  --color-soft: #f3ecdf;
  --color-text: #292720;
  --color-muted: #625e54;
  --color-border: #d8d0c2;
  --color-dark: #252d21;
  --color-focus: #8f300a;
  --font-heading: 'Lora', Georgia, serif;
  --font-body: 'Open Sans', Arial, sans-serif;
  --space-1: .25rem;
  --space-2: .5rem;
  --space-3: .75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4rem;
  --space-9: 6rem;
  --space-10: 7rem;
  --radius-small: 4px;
  --radius-medium: 8px;
  --radius-large: 12px;
  --radius-pill: 9999px;
  --width-page: 1248px;
  --width-reading: 700px;
  --section-space: 3.5rem;
}
@font-face {
  font-family: 'Lora';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(assets/font-1.ttf) format('truetype');
}
@font-face {
  font-family: 'Lora';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(assets/font-2.ttf) format('truetype');
}
@font-face {
  font-family: 'Lora';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/font-3.ttf) format('truetype');
}
@font-face {
  font-family: 'Lora';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/font-4.ttf) format('truetype');
}
@font-face {
  font-family: 'Lora';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/font-5.ttf) format('truetype');
}
@font-face {
  font-family: 'Lora';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/font-6.ttf) format('truetype');
}
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: normal;
  font-display: swap;
  src: url(assets/font-7.ttf) format('truetype');
}
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: normal;
  font-display: swap;
  src: url(assets/font-8.ttf) format('truetype');
}
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: normal;
  font-display: swap;
  src: url(assets/font-9.ttf) format('truetype');
}
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: normal;
  font-display: swap;
  src: url(assets/font-10.ttf) format('truetype');
}


/* Base and accessible interaction */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-top: 2rem; }
body { margin: 0; background: var(--color-background); color: var(--color-text); font: 400 16px/1.7 var(--font-body); }
img { display: block; max-width: 100%; height: auto; background: var(--color-soft); }
svg { flex-shrink: 0; }
a { color: inherit; text-underline-offset: .22em; }
a:hover { color: var(--color-primary); }
button, input, select, textarea { font: inherit; }
button, summary, select { cursor: pointer; }
a, button, input, select, textarea, summary { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 5px; }
::selection { background: #edd8bf; color: #292720; }
h1, h2, h3, h4, p, figure { margin: 0; }
h1, h2, h3, h4 { font-family: var(--font-heading); font-weight: 500; line-height: 1.15; text-wrap: balance; }
h1 { font-size: clamp(2.65rem, 5.7vw, 5.25rem); letter-spacing: -.055em; }
h2 { font-size: clamp(2rem, 3.8vw, 3.4rem); letter-spacing: -.04em; }
h3 { font-size: 1.6rem; letter-spacing: -.025em; line-height: 1.3; }
h4 { font-size: 1.25rem; }
p + p { margin-top: var(--space-4); }
em { color: var(--color-primary); font-weight: 400; }
strong { font-weight: 700; }
small, .small { font-size: .8rem; line-height: 1.6; }
hr { border: 0; border-top: 1px solid var(--color-border); margin: var(--space-6) 0; }
.container { width: min(calc(100% - 40px), var(--width-page)); margin-inline: auto; }
.section { padding-block: var(--section-space); }
.section-tight { padding-block: var(--space-7); }
.section + .section.border-top { border-top: 1px solid var(--color-border); }
.eyebrow { display: flex; align-items: center; gap: .65rem; margin-bottom: var(--space-5); color: var(--color-green); font-size: .7rem; font-weight: 700; line-height: 1.5; letter-spacing: .17em; text-transform: uppercase; }
.eyebrow::before { content: ''; width: 22px; height: 1px; background: currentColor; }
.lead { font-size: 1.05rem; line-height: 1.8; color: var(--color-muted); max-width: 540px; }
.muted { color: var(--color-muted); }
.flow > * + * { margin-top: var(--space-5); }
.icon { width: 22px; height: 22px; stroke: currentColor; fill: none; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.icon-large { width: 42px; height: 42px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.skip-link { position: absolute; top: -100px; left: 16px; z-index: 20; padding: 12px 20px; color: white; background: var(--color-primary); }
.skip-link:focus { top: 12px; }
.button { display: inline-flex; justify-content: center; align-items: center; gap: 20px; min-height: 48px; padding: 13px 22px; border: 1px solid var(--color-primary); border-radius: var(--radius-small); background: var(--color-primary); color: white; font-size: .82rem; font-weight: 700; text-decoration: none; line-height: 1.5; }
.button:hover { background: var(--color-primary-hover); border-color: var(--color-primary-hover); color: white; }
.button .icon { width: 18px; height: 18px; }
.button-outline { background: transparent; color: var(--color-primary); }
.button-outline:hover { background: #f7e7d8; color: var(--color-primary-hover); }
.button-light { background: var(--color-background); color: var(--color-dark); border-color: var(--color-background); }
.button-light:hover { background: #ead9c2; color: var(--color-dark); border-color: #ead9c2; }
.text-link { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; font-size: .83rem; font-weight: 700; text-decoration: none; }
.text-link .icon { width: 18px; height: 18px; }
.actions { display: flex; align-items: center; gap: var(--space-5); flex-wrap: wrap; }
/* Header */
.announcement { border-bottom: 1px solid var(--color-border); background: var(--color-soft); font-size: .65rem; letter-spacing: .06em; }
.announcement .container { display: flex; justify-content: center; padding-block: 8px; }
.announcement span:last-child { display: none; }
.site-header { border-bottom: 1px solid var(--color-border); }
.header-inner { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; min-height: 92px; gap: 12px; padding-block: 19px; }
.brand { display: inline-flex; align-items: center; gap: 10px; font: 500 1.65rem/1 var(--font-heading); letter-spacing: -.06em; text-decoration: none; white-space: nowrap; }
.brand em { margin-left: 3px; }
.brand .icon { width: 34px; height: 34px; color: var(--color-primary); }
.header-cta { display: none; }
.desktop-nav { display: none; }
.mobile-nav { position: relative; }
.mobile-nav summary { list-style: none; display: flex; align-items: center; gap: 8px; min-height: 44px; font-size: .8rem; }
.mobile-nav summary::-webkit-details-marker { display: none; }
.mobile-nav nav { position: absolute; right: 0; top: 52px; width: 240px; padding: 16px 24px; background: var(--color-background); border: 1px solid var(--color-border); z-index: 10; }
.mobile-nav a { display: block; padding: 10px 0; text-decoration: none; }
[aria-current='page'] { color: var(--color-primary); }
/* Home */
.hero { display: grid; gap: var(--space-7); padding-block: var(--space-7); }
.hero-copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.hero-copy h1 { margin-bottom: var(--space-5); }
.hero-copy .lead { max-width: 460px; }
.hero-copy .actions { margin-top: var(--space-6); }
.hero-note { display: flex; align-items: center; gap: 9px; margin-top: var(--space-6); color: var(--color-muted); font-size: .7rem; }
.hero-note .icon { width: 16px; height: 16px; color: var(--color-green); }
.hero-visual { position: relative; margin-bottom: 18px; }
.hero-image { width: 100%; height: 400px; object-fit: cover; object-position: 50% 62%; border-radius: var(--radius-medium); }
.hero-caption { position: absolute; bottom: -18px; left: 18px; right: 18px; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 17px 20px; background: var(--color-background); border: 1px solid var(--color-border); border-radius: var(--radius-small); }
.hero-caption p { font: 500 1rem/1.4 var(--font-heading); }
.hero-caption small { display: block; margin-bottom: 4px; font-size: .58rem; letter-spacing: .14em; text-transform: uppercase; color: var(--color-muted); }
.seal { position: absolute; top: 18px; right: 18px; width: 91px; height: 91px; border-radius: 50%; display: grid; place-content: center; gap: 3px; text-align: center; background: var(--color-sand); color: #2b2a21; font-size: .53rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; outline: 1px solid #8b694a; outline-offset: -7px; transform: rotate(9deg); }
.seal .icon { margin: auto; width: 25px; height: 25px; }
.topic-strip { display: grid; border-top: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border); }
.topic-strip a { display: flex; align-items: center; gap: 18px; padding: 24px 0; text-decoration: none; }
.topic-strip a + a { border-top: 1px solid var(--color-border); }
.topic-strip .topic-icon { color: var(--color-green); }
.topic-strip h2 { font-size: 1.2rem; letter-spacing: -.02em; }
.topic-strip p { color: var(--color-muted); font-size: .75rem; margin-top: 3px; }
.topic-strip .arrow { margin-left: auto; }
.section-heading { display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; gap: var(--space-5); margin-bottom: var(--space-7); }
.section-heading .eyebrow { margin-bottom: var(--space-3); }
.section-heading .lead { max-width: 390px; font-size: .92rem; }
.slider { border: 1px solid var(--color-border); border-radius: var(--radius-medium); overflow: hidden; }
.slider-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-color: var(--color-sand) var(--color-soft); scrollbar-width: thin; }
.slide { flex: 0 0 100%; min-width: 0; scroll-snap-align: start; scroll-margin-top: 24px; display: grid; background: var(--color-surface); }
.slide-image { width: 100%; height: 280px; object-fit: cover; }
.slide:nth-child(2) .slide-image { object-position: 50% 62%; }
.slide-copy { padding: 28px; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: var(--space-5); }
.slide-copy .eyebrow { margin: 0; }
.slide-copy h3 { font-size: clamp(1.75rem, 3vw, 2.65rem); line-height: 1.2; }
.slide-copy p { font-size: .9rem; color: var(--color-muted); }
.slide-meta { display: flex; align-items: center; gap: 8px; color: var(--color-muted); font-size: .69rem; }
.slider-navigation { display: flex; justify-content: space-between; align-items: center; gap: 16px; border-top: 1px solid var(--color-border); background: var(--color-soft); padding: 9px 16px; }
.slider-navigation p { color: var(--color-muted); font-size: .7rem; }
.slider-dots { display: flex; gap: 8px; }
.slider-dots a { display: grid; place-items: center; width: 44px; height: 44px; font-size: .75rem; border: 1px solid var(--color-border); border-radius: 50%; text-decoration: none; background: var(--color-background); }
.slider-dots a:hover { color: white; background: var(--color-primary); }
.category-grid { display: grid; }
.category-item { display: flex; align-items: center; gap: 17px; padding: 22px 4px; border-top: 1px solid var(--color-border); text-decoration: none; }
.category-item .number { color: var(--color-muted); font-size: .65rem; font-variant-numeric: tabular-nums; }
.category-item span:nth-child(2) { flex: 1; font: 500 1.1rem/1.4 var(--font-heading); }
.category-item .icon { width: 17px; height: 17px; }
.editorial-band { background: var(--color-soft); }
.editorial-grid { display: grid; gap: var(--space-7); align-items: center; }
.editorial-grid img { height: 360px; width: 100%; object-fit: cover; border-radius: var(--radius-medium); }
.editorial-grid .flow { max-width: 480px; }
.editorial-grid .lead { font-size: .95rem; }
.quote-mark { color: var(--color-primary); font: 5rem/.65 var(--font-heading); }
/* Shared interior pages */
.breadcrumb { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; padding-top: 25px; color: var(--color-muted); font-size: .68rem; }
.breadcrumb a { text-decoration: none; }
.page-heading { padding-block: var(--space-7); max-width: 880px; }
.page-heading h1 { font-size: clamp(2.8rem, 5.2vw, 4.7rem); }
.page-heading .lead { margin-top: var(--space-5); max-width: 650px; }
.page-heading .eyebrow { margin-bottom: 18px; }
.page-heading.centered { margin-inline: auto; text-align: center; }
.page-heading.centered .eyebrow { justify-content: center; }
.page-heading.centered .lead { margin-inline: auto; }
.tag { display: inline-flex; align-items: center; font-size: .65rem; font-weight: 700; color: var(--color-green); background: #edf0e4; border-radius: var(--radius-small); padding: 4px 9px; }
.tag-warm { background: #f7e7d8; color: #88350e; }
.split { display: grid; gap: var(--space-7); }
.image-note { margin-top: 9px; color: var(--color-muted); font-size: .7rem; }
.manifesto { padding: var(--space-7); background: var(--color-green); color: var(--color-background); border-radius: var(--radius-medium); }
.manifesto h2 { font-size: clamp(2rem, 3vw, 3rem); }
.manifesto p { margin-top: 24px; font-size: .94rem; color: #f0ebde; }
.manifesto em { color: #e7c39d; }
.three-columns { display: grid; gap: var(--space-6); }
.principle { border-top: 1px solid var(--color-border); padding-top: var(--space-5); }
.principle .number { font: 400 2.8rem/1 var(--font-heading); color: var(--color-primary); }
.principle h3 { margin-top: 20px; margin-bottom: 12px; font-size: 1.4rem; }
.principle p { color: var(--color-muted); font-size: .9rem; }
.timeline { list-style: none; margin: 0; padding: 0; counter-reset: process; }
.timeline li { position: relative; display: grid; grid-template-columns: 45px 1fr; gap: 20px; padding-bottom: 32px; counter-increment: process; }
.timeline li::before { content: '0' counter(process); display: grid; place-items: center; align-self: start; width: 43px; height: 43px; border: 1px solid var(--color-border); border-radius: 50%; background: var(--color-background); font-size: .75rem; color: var(--color-primary); z-index: 1; }
.timeline li:not(:last-child)::after { content: ''; position: absolute; left: 21px; top: 43px; bottom: 0; width: 1px; background: var(--color-border); }
.timeline h3 { margin-top: 6px; font-size: 1.25rem; }
.timeline p { margin-top: 9px; font-size: .9rem; color: var(--color-muted); }
.notice { padding: 24px; border-left: 3px solid var(--color-primary); background: var(--color-soft); font-size: .88rem; }
.notice h3 { margin-bottom: 10px; font-size: 1.3rem; }
/* Advice library */
.advice-feature { display: grid; overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: white; }
.advice-feature img { width: 100%; height: 300px; object-fit: cover; }
.advice-feature .flow { padding: 28px; }
.advice-feature h2 { font-size: 2.3rem; }
.advice-grid { display: grid; gap: 20px; }
.advice-card { display: flex; flex-direction: column; align-items: flex-start; padding: 28px; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-surface); scroll-margin-top: 30px; }
.advice-card .icon-large { color: var(--color-green); margin-bottom: 28px; }
.advice-card h3 { font-size: 1.45rem; margin-bottom: 12px; }
.advice-card p { font-size: .85rem; color: var(--color-muted); margin-bottom: 15px; }
.advice-card .text-link { margin-top: auto; }
.checklist { list-style: none; padding: 0; margin: 24px 0; }
.checklist li { display: flex; gap: 12px; padding-block: 10px; font-size: .88rem; }
.checklist .icon { color: var(--color-green); margin-top: 3px; width: 18px; height: 18px; }
/* Decision aid */
.route-grid { display: grid; gap: 18px; }
.route-card { padding: 28px; display: flex; flex-direction: column; align-items: flex-start; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: white; text-decoration: none; }
.route-card:nth-child(2) { background: #eef0e6; }
.route-card:nth-child(3) { background: #f8e9d9; }
.route-card .icon-large { margin-bottom: 28px; color: var(--color-green); }
.route-card h2 { font-size: 1.6rem; margin-bottom: 12px; }
.route-card p { color: var(--color-muted); font-size: .86rem; }
.route-card .text-link { margin-top: 20px; }
.decision-block { border-top: 1px solid var(--color-border); padding-block: var(--space-7); scroll-margin-top: 30px; }
.decision-number { font: 400 3.5rem/1 var(--font-heading); color: var(--color-primary); margin-bottom: 18px; }
.decision-block h2 { font-size: 2.2rem; margin-bottom: 20px; }
.decision-body { max-width: 760px; }
.decision-body p { color: var(--color-muted); }
.table-wrap { overflow-x: auto; border: 1px solid var(--color-border); border-radius: var(--radius-medium); }
table { width: 100%; min-width: 650px; border-collapse: collapse; background: white; text-align: left; font-size: .85rem; }
caption { text-align: left; padding: 20px; font-weight: 700; background: var(--color-soft); }
th, td { padding: 19px 22px; border-bottom: 1px solid var(--color-border); vertical-align: top; }
thead th { background: var(--color-soft); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
tbody th { width: 24%; font-weight: 600; }
tr:last-child th, tr:last-child td { border-bottom: 0; }
.two-notes { display: grid; gap: 20px; margin-top: 24px; }
.note-card { padding: 24px; background: var(--color-soft); border-radius: var(--radius-medium); }
.note-card h3 { margin-bottom: 12px; font-size: 1.3rem; }
.note-card p { font-size: .9rem; }
/* Journal */
.blog-grid { display: grid; gap: 28px; }
.blog-card { background: white; border: 1px solid var(--color-border); border-radius: var(--radius-medium); overflow: hidden; }
.blog-card img { width: 100%; height: 240px; object-fit: cover; }
.blog-card-body { padding: 24px; }
.blog-card .tag { margin-bottom: 18px; }
.blog-card h2 { font-size: 1.65rem; margin-bottom: 14px; }
.blog-card p { color: var(--color-muted); font-size: .86rem; }
.blog-card .text-link { margin-top: 15px; }
.article-layout { display: grid; gap: var(--space-7); }
.article-aside { border-top: 2px solid var(--color-green); padding-top: 18px; }
.article-aside .eyebrow { margin-bottom: 12px; }
.article-aside nav a { display: block; padding: 10px 0; font-size: .8rem; text-decoration: none; }
.article-body { min-width: 0; max-width: var(--width-reading); }
.article-body h1, .article-body h2 { font-size: clamp(2rem, 3.1vw, 2.8rem); letter-spacing: -.04em; margin: 16px 0 24px; }
.article-body h3 { font-size: 1.45rem; margin: 32px 0 14px; }
.article-body p, .article-body li { color: var(--color-muted); font-size: .96rem; }
.article-body li + li { margin-top: 10px; }
.article-body .article-intro { font-size: 1.13rem; color: var(--color-text); }
.article-body .notice { margin-top: 30px; }
.article-body .notice p { font-size: .86rem; }
.article-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; color: var(--color-muted); font-size: .7rem; margin-bottom: 24px; }
.article-section { padding-block: var(--section-space); border-top: 1px solid var(--color-border); scroll-margin-top: 20px; }
/* FAQs and contact */
.faq-grid { display: grid; gap: var(--space-7); }
.faq-list { border-top: 1px solid var(--color-border); }
.faq-list details { border-bottom: 1px solid var(--color-border); }
.faq-list summary { min-height: 65px; padding: 20px 30px 20px 0; position: relative; list-style: none; font-size: .9rem; font-weight: 600; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { position: absolute; content: '+'; right: 2px; top: 17px; font: 1.6rem/1.2 var(--font-heading); color: var(--color-primary); }
.faq-list details[open] summary::after { content: '−'; }
.faq-list details > div { padding-bottom: 22px; padding-right: 22px; color: var(--color-muted); font-size: .9rem; }
.contact-grid { display: grid; gap: var(--space-7); }
.contact-info { background: var(--color-green); color: var(--color-background); padding: 30px; border-radius: var(--radius-medium); }
.contact-info h2 { font-size: 2.1rem; }
.contact-info p { margin-top: 20px; font-size: .94rem; }
.contact-info a { color: var(--color-background); overflow-wrap: anywhere; }
.contact-info .contact-email { display: inline-block; margin-top: 24px; font: 500 1.12rem/1.4 var(--font-heading); }
.contact-info .eyebrow { color: #e7d9bd; }
.contact-info hr { border-color: #73815c; }
.contact-info .icon-large { margin-bottom: 26px; }
.form-panel { background: white; padding: 28px; border: 1px solid var(--color-border); border-radius: var(--radius-medium); }
.form-panel h2 { font-size: 1.9rem; margin-bottom: 14px; }
.form-panel > p { color: var(--color-muted); font-size: .85rem; margin-bottom: 26px; }
.form-row { display: grid; gap: 22px; }
.field { margin-bottom: 22px; }
.field label { display: block; margin-bottom: 7px; font-size: .8rem; font-weight: 600; }
.field input, .field select, .field textarea { display: block; width: 100%; min-height: 48px; padding: 11px 13px; border: 1px solid #8f887a; border-radius: var(--radius-small); background: var(--color-background); color: var(--color-text); }
.field textarea { resize: vertical; min-height: 160px; }
.form-help { font-size: .73rem; color: var(--color-muted); margin-top: 16px; }
.form-help a { display: inline; }
.contact-notes { display: grid; gap: 24px; }
.contact-notes h3 { font-size: 1.35rem; margin-bottom: 10px; }
.contact-notes p { font-size: .88rem; color: var(--color-muted); }
/* Closing band and footer */
.closing-band { background: var(--color-green); color: var(--color-background); }
.closing-inner { display: flex; align-items: center; justify-content: space-between; gap: 30px; flex-wrap: wrap; padding-block: 42px; }
.closing-inner h2 { font-size: clamp(1.8rem, 3.2vw, 2.6rem); max-width: 620px; }
.closing-inner p { margin-top: 10px; color: #ede9dc; font-size: .85rem; }
.site-footer { background: var(--color-dark); color: #f6f1e7; }
.footer-main { padding-block: 48px; display: grid; gap: 36px; }
.site-footer .brand { color: #f6f1e7; }
.site-footer .brand em, .site-footer .brand .icon { color: #e5b78e; }
.footer-brand p { margin-top: 20px; max-width: 295px; font-size: .83rem; color: #d3d5c8; }
.footer-heading { font: 600 .67rem/1.5 var(--font-body); letter-spacing: .13em; text-transform: uppercase; margin-bottom: 17px; color: #e5b78e; }
.footer-links { list-style: none; padding: 0; margin: 0; }
.footer-links li + li { margin-top: 8px; }
.footer-links a, .footer-contact > a { color: #f6f1e7; text-decoration: none; font-size: .82rem; }
.footer-links a:hover, .footer-contact > a:hover { text-decoration: underline; }
.footer-contact p { font-size: .8rem; color: #d3d5c8; margin-top: 14px; }
.social-links { display: flex; gap: 9px; margin-top: 16px; }
.social-links a { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid #75816b; border-radius: 50%; color: #f6f1e7; }
.social-links a:hover { background: #46513c; }
.site-footer :focus-visible { outline-color: #e5b78e; }
.footer-bottom { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 16px; padding-block: 22px; border-top: 1px solid #626a59; font-size: .65rem; color: #d3d5c8; }
.footer-bottom a { color: #d3d5c8; }
/* Mobile-first breakpoints */
@media (min-width: 640px) {
  .container { width: min(calc(100% - 64px), var(--width-page)); }
  .announcement .container { justify-content: space-between; }
  .announcement span:last-child { display: inline; }
  .hero-image { height: 520px; }
  .topic-strip { grid-template-columns: repeat(3,1fr); }
  .topic-strip a { padding: 28px 18px; flex-wrap: wrap; gap: 12px; }
  .topic-strip a:first-child { padding-left: 0; }
  .topic-strip a + a { border-top: 0; border-left: 1px solid var(--color-border); }
  .topic-strip h2 { font-size: 1.1rem; }
  .topic-strip .arrow { display: none; }
  .category-grid { grid-template-columns: repeat(2,1fr); column-gap: 35px; }
  .three-columns, .route-grid, .advice-grid, .blog-grid { grid-template-columns: repeat(2,1fr); }
  .form-row, .two-notes { grid-template-columns: 1fr 1fr; }
  .footer-main { grid-template-columns: 1fr 1fr; }
  .form-panel { padding: 36px; }
  .contact-notes { grid-template-columns: repeat(3,1fr); }
}
@media (min-width: 960px) {
  :root { --section-space: 6rem; }
  .container { width: min(calc(100% - 96px), var(--width-page)); }
  .header-inner { min-height: 98px; padding-block: 20px; flex-wrap: nowrap; }
  .mobile-nav { display: none; }
  .desktop-nav { display: flex; gap: 25px; }
  .desktop-nav a { display: inline-flex; align-items: center; min-height: 44px; font-size: .76rem; text-decoration: none; position: relative; }
  .desktop-nav a[aria-current='page']::after { position: absolute; bottom: 2px; left: 0; right: 0; height: 1px; background: currentColor; content: ''; }
  .header-cta { display: inline-flex; min-height: 42px; padding: 10px 14px; font-size: .72rem; }
  .hero { grid-template-columns: 1fr 1fr; gap: 60px; padding-block: 57px 68px; }
  .hero-copy h1 { font-size: clamp(3.3rem, 5.7vw, 5.2rem); }
  .hero-image { height: 555px; }
  .hero-visual { margin-bottom: 0; }
  .hero-caption { left: -30px; right: 24px; bottom: 25px; padding: 20px 25px; }
  .hero-caption p { font-size: 1.1rem; }
  .seal { right: 22px; top: 22px; width: 99px; height: 99px; }
  .topic-strip a { padding: 30px 32px; flex-wrap: nowrap; }
  .topic-strip .arrow { display: block; }
  .topic-strip h2 { font-size: 1.22rem; }
  .topic-strip a:last-child { padding-right: 0; }
  .slide { grid-template-columns: 1fr 1fr; }
  .slide-image { height: 410px; }
  .slide-copy { padding: 42px 52px; }
  .category-grid { grid-template-columns: repeat(3,1fr); column-gap: 48px; }
  .editorial-grid { grid-template-columns: 1fr 1fr; gap: 100px; }
  .editorial-grid img { height: 440px; }
  .split { grid-template-columns: 1.1fr 1fr; gap: 80px; }
  .page-heading { padding-block: 55px 60px; }
  .three-columns, .route-grid, .blog-grid { grid-template-columns: repeat(3,1fr); }
  .advice-grid { grid-template-columns: repeat(3,1fr); }
  .advice-feature { grid-template-columns: 1fr 1fr; }
  .advice-feature img { height: 410px; }
  .advice-feature .flow { padding: 48px; }
  .decision-block { display: grid; grid-template-columns: 80px 1fr; gap: 30px; padding-block: 48px; }
  .decision-number { margin-top: 4px; }
  .article-layout { grid-template-columns: 220px 1fr; gap: 85px; }
  .faq-grid { grid-template-columns: .85fr 1.15fr; gap: 100px; }
  .contact-grid { grid-template-columns: .85fr 1.15fr; gap: 48px; align-items: start; }
  .contact-info { padding: 45px; }
  .footer-main { grid-template-columns: 1.7fr 1fr 1fr 1.3fr; gap: 45px; padding-block: 65px 50px; }
  .manifesto { padding: 45px; }
}
@media (min-width: 1200px) { .desktop-nav { gap: 30px; } .brand { font-size: 1.85rem; } }
@media (max-width: 359px) { .brand { font-size: 1.35rem; } .container { width: calc(100% - 28px); } .hero-copy h1 { font-size: 2.45rem; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; } }
@media print { .announcement, .site-header, .site-footer, .closing-band, .slider-navigation { display: none; } body { background: white; color: black; } .container { width: 100%; } .section { padding-block: 20px; } .slider-track { display: block; overflow: visible; } .slide { break-inside: avoid; margin-bottom: 20px; } a { text-decoration: underline; } }
.purchase-check { border: 0; padding: 0; margin: 0; }
.purchase-check label { display: flex; align-items: flex-start; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--color-border); cursor: pointer; font-size: .9rem; }
.purchase-check input { width: 22px; height: 22px; flex-shrink: 0; margin: 2px 0 0; accent-color: var(--color-green); }
.purchase-check label:has(input:checked) span { color: var(--color-green); }
.manifesto .eyebrow { color: #f0ebde; }
.manifesto .button { margin-top: 26px; }
.source-list { padding-left: 20px; font-size: .85rem; color: var(--color-muted); }
.source-list li + li { margin-top: 14px; }
.source-list a { overflow-wrap: anywhere; }
.contact-info .small { font-size: .79rem; }
.blog-card h2 a { text-decoration: none; }
