﻿/* Vitjournal — shared editorial system. No external fonts or UI dependencies. */
:root {
  --journal-container: 76rem;
  --journal-gutter: clamp(1.25rem, 3vw, 2rem);
  --journal-page-title: clamp(2.25rem, 1.7rem + 2.6vw, 4rem);
  --journal-section-title: clamp(1.75rem, 1.45rem + 1vw, 2.25rem);
  --journal-card-title: clamp(1.25rem, 1.08rem + .5vw, 1.5rem);
  --journal-rule: #cbd5ce;
  --journal-paper: #fafaf7;
  --journal-surface: #ffffff;
  --journal-ink: #16261d;
  --journal-space-sm: .75rem;
  --journal-space-md: 1.25rem;
  --journal-space-lg: 2rem;
  --journal-space-xl: 3rem;
  --journal-rail-width: 17rem;
  --journal-thumbnail: 6rem;
  --journal-feature-ratio: 3 / 2;
  --journal-home-lead-columns: minmax(0, 2fr) minmax(0, 1fr);
  --journal-home-feature-title: clamp(1.625rem, 1.3rem + .8vw, 2rem);
  --journal-home-lead-title: clamp(1.875rem, 1.4rem + 1vw, 2.125rem);
  --journal-home-standard-title: 1.375rem;
  --journal-home-thumbnail: 4rem;
  /* One featured-image ratio site-wide (was 16/9 here, 3/2 elsewhere). */
  --journal-home-photo-ratio: var(--journal-feature-ratio);
  --journal-feature-title: clamp(1.875rem, 1.1rem + 1.6vw, 2.625rem);
  --journal-compact-title: 1.25rem;
  /* Raised from 1.18 so multi-line serif titles stop clumping. */
  --journal-display-leading: 1.25;
  --journal-motion: 400ms ease-out;
  --journal-image-hover: 1.03;
  --journal-arrow-travel: .25rem;
  --color-bg: var(--journal-paper);
  --text-meta: .875rem;
  --color-text-muted: #59665d;
  --color-text-light: #59665d;
  --radius-sm: .25rem;
  --radius-md: .25rem;
  --radius-lg: .375rem;
  --radius-xl: .5rem;
  --radius-ui: .25rem;
  --space-12: 5rem;
  --space-16: 5rem;
  --shadow-sm: none;
  --shadow-md: none;
  --shadow-lg: none;

  /* Per-section accent family: muted, warm counter-hues to the cool green
     brand primary, kept at similar lightness/saturation so six sections
     read as one system rather than a rainbow. Applied via [data-section]
     below; every consumer falls back to --color-primary when unset (home,
     tools, policy pages stay brand-green). */
  --journal-accent-nutrition: #8a6a1f;
  --journal-accent-fitness: #a1462d;
  --journal-accent-mental-health: #6b4560;
  --journal-accent-sleep: #4d5a73;
  --journal-accent-weight: #9c5b4a;
  --journal-accent-supplements: #7a5c3d;
}
[data-section="nutrition"] { --section-accent: var(--journal-accent-nutrition); }
[data-section="fitness"] { --section-accent: var(--journal-accent-fitness); }
[data-section="mental-health"] { --section-accent: var(--journal-accent-mental-health); }
[data-section="sleep"] { --section-accent: var(--journal-accent-sleep); }
[data-section="weight"] { --section-accent: var(--journal-accent-weight); }
[data-section="supplements"] { --section-accent: var(--journal-accent-supplements); }
/* 8% (not a rounder 10-12%) is deliberate: verified >=4.5:1 AA for accent
   text on this tint across all six section colors, including the two
   worst cases (nutrition, weight). */
:root { --section-accent-subtle: color-mix(in srgb, var(--section-accent, var(--color-primary)) 8%, white); }
html { scroll-behavior: auto; scroll-padding-top: 6rem; }
body { overflow-x: visible; background: var(--journal-paper); }
button, input, select { font: inherit; }
button, a, input, summary { -webkit-tap-highlight-color: transparent; }
[hidden] { display: none; }
.page-section { animation: none; }
.journal-container { width: min(var(--journal-container), calc(100% - 2 * var(--journal-gutter))); margin-inline: auto; }
.journal-section { padding-block: var(--journal-space-lg) var(--journal-space-xl); }
.journal-eyebrow { display: block; font: 600 .8125rem/1.5 var(--font-sans); letter-spacing: .085em; text-transform: uppercase; color: var(--section-accent, var(--color-primary)); }
/* Real taxonomy chips (category tags), distinct from a plain kicker word. */
.journal-tag { display: inline-flex; align-items: center; padding: .25rem .625rem; border-radius: 999px; font: 700 .6875rem/1.4 var(--font-sans); letter-spacing: .06em; text-transform: uppercase; color: var(--tag-c, var(--section-accent, var(--color-primary))); background: color-mix(in srgb, var(--tag-c, var(--section-accent, var(--color-primary))) 8%, white); text-decoration: none; }
a.journal-tag:hover { text-decoration: underline; text-underline-offset: .2em; }
.journal-muted, .journal-fineprint { color: var(--color-text-muted); }
.journal-muted { font-size: .9375rem; }
.journal-fineprint { font-size: .875rem; line-height: 1.65; }
.journal-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; padding-top: 1.5rem; margin-bottom: 2rem; border-top: 1px solid var(--journal-rule); }
.journal-section-heading h2, .journal-method h2, .journal-related-tool h2 { font: 500 var(--journal-section-title)/1.18 var(--font-serif); letter-spacing: -.025em; }
.journal-section-heading .journal-eyebrow { margin-bottom: .5rem; }
.journal-section-heading p:not(.journal-eyebrow) { margin-top: .75rem; max-width: 42rem; }
.journal-text-link, .journal-actions a { font-size: .9375rem; font-weight: 600; color: var(--color-primary); text-decoration-thickness: 1px; text-underline-offset: .3em; }
.journal-text-link { display: inline-block; padding-block: .75rem; flex-shrink: 0; }
.journal-button { min-height: 2.75rem; padding: .75rem 1.5rem; border-radius: var(--radius-ui); background: var(--color-primary); color: #fff; border: 1px solid var(--color-primary); font-weight: 600; cursor: pointer; }
.journal-button-outline { background: transparent; color: var(--color-primary); }
.journal-button:hover { background: var(--color-primary-50); color: var(--color-primary); }
.journal-button:disabled { border-color: var(--journal-rule); color: var(--color-text-muted); cursor: default; }
.journal-continuation { text-align: center; margin-top: 2.5rem; }
.journal-continuation p { margin-top: .75rem; }
/* Shared navigation: fixed height avoids a changing reading offset. */
.nav, .nav.scrolled { position: sticky; top: 0; background: #091b12; backdrop-filter: none; border-bottom: 1px solid #294434; }
.nav-inner, .nav.scrolled .nav-inner { max-width: calc(var(--journal-container) + 2 * var(--journal-gutter)); padding-inline: var(--journal-gutter); height: 4.5rem; gap: 1.5rem; }
.nav-logo-img { width: 9rem; height: auto; }
.nav-links { gap: .125rem; }
.nav-link { padding: .75rem .5rem; margin: 0; font-size: .9375rem; white-space: nowrap; }
.nav-link::after { left: .5rem; right: .5rem; height: 3px; background: var(--section-accent, #a3d4b8); }
.nav-link.active { background: rgba(255,255,255,.08); border-radius: .25rem; }
.nav-search-btn { border-radius: .25rem; }
.nav-search-btn span { display: inline; }
.nav-menu-btn { display: none; }
.nav a:focus-visible, .nav button:focus-visible, .journal-footer a:focus-visible, .journal-footer button:focus-visible { outline-color: #a3d4b8; outline-offset: 4px; }
.mobile-menu, .search-overlay { background: #fff; backdrop-filter: none; visibility: hidden; transition: none; }
.mobile-menu.open, .search-overlay.open { visibility: visible; }
.mobile-menu-link, .mobile-menu-cat { min-height: 2.75rem; padding-block: .75rem; }
.mobile-menu { max-width: 100%; }
.mobile-menu .mobile-menu-link { font-size: 1.75rem; }
.search-overlay { overflow-y: auto; padding-bottom: 2rem; }
.search-input-wrap, .search-suggestions { max-width: 48rem; }
.journal-search-label { display: block; font: 500 clamp(1.5rem, 4vw, 2.25rem)/1.2 var(--font-serif); margin-bottom: 1.5rem; }
.search-input { transition: none; font-size: 1.0625rem; border: 1px solid #6c7a70; border-radius: var(--radius-ui); padding: 1rem 3rem 1rem 1rem; }
.search-input-wrap svg { top: auto; bottom: 1.1rem; transform: none; }
.search-suggestion { color: var(--color-text); text-decoration: none; border-radius: 0; border-bottom: 1px solid var(--journal-rule); padding-block: 1rem; }
/* Homepage: a compact introduction and one deliberate editorial lead. */
.journal-intro { display: grid; grid-template-columns: 1.3fr 1fr; gap: var(--journal-space-xl); padding-block: 1.25rem; align-items: center; }
.journal-intro h1 { font: 500 clamp(2.25rem, 1.7rem + 2.4vw, 3.75rem)/1.08 var(--font-serif); letter-spacing: -.04em; margin-top: .5rem; max-width: 12ch; }
.journal-intro-copy p { color: var(--color-text-secondary); font-size: 1.1875rem; max-width: 42ch; line-height: 1.65; }
.journal-actions { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin-top: 1rem; }
.journal-actions a { font-size: 1rem; display: inline-flex; gap: .75rem; align-items: center; min-height: 2.75rem; }
.journal-lead-section { padding-top: 0; padding-bottom: var(--journal-space-md); }
.journal-lead-section > .journal-section-heading h2 { font: 600 .875rem/1.5 var(--font-sans); letter-spacing: .03em; }
.journal-lead-section > .journal-section-heading .journal-eyebrow { margin: 0; color: var(--color-text-muted); font-size: .75rem; }
.journal-feature { min-width: 0; }
.journal-feature-story { display: block; color: inherit; text-decoration: none; }
.journal-feature img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: .25rem; background: var(--color-primary-50); }
.journal-feature-copy { padding-top: 1.25rem; }
.journal-feature h2, .journal-feature h3 { font: 500 clamp(1.75rem, 1.3rem + 1.4vw, 2.75rem)/var(--journal-display-leading) var(--font-serif); letter-spacing: -.025em; margin-block: .65rem .75rem; }
.journal-feature-copy p { font-size: 1.0625rem; color: var(--color-text-secondary); line-height: 1.65; }
.journal-feature-read { display: inline-flex; gap: 1rem; color: var(--color-primary); font-size: .875rem; font-weight: 600; margin-top: 1rem; }
.journal-feature-story:hover h2, .journal-feature-story:hover h3, .journal-card-story:hover h3, .journal-card-story:hover h2 { text-decoration: underline; text-underline-offset: .15em; text-decoration-thickness: 1px; }
.journal-feature-meta, .journal-card-meta { display: flex; flex-wrap: wrap; column-gap: .85rem; row-gap: .25rem; color: var(--color-text-muted); font-size: .8125rem; line-height: 1.6; margin-top: 1rem; }
.journal-feature-meta a, .journal-card-meta a { color: inherit; text-underline-offset: .2em; min-height: 1.5rem; }
.journal-actions a:first-child { text-decoration: underline; text-decoration-thickness: 2px; }
.journal-actions a + a { font-weight: 400; }
#page-home .journal-muted, .journal-newsletter > div > p:not(.journal-eyebrow) { font-size: 1rem; line-height: 1.65; }
#page-home .journal-feature-meta, #page-home .journal-card-meta { font-size: .875rem; }
.journal-feature-lead img { object-position: 65% center; }
.journal-newsletter input[aria-invalid="true"] { border-color: var(--color-danger); }
/* Consistent, open article cards shared by feeds, category, author and search. */
.journal-grid, .article-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 2.5rem 2rem; }
.journal-card { min-width: 0; display: flex; flex-direction: column; padding-bottom: var(--journal-space-md); border-bottom: 1px solid var(--journal-rule); }
.journal-card-story { display: block; color: inherit; text-decoration: none; }
.journal-card img { width: 100%; height: auto; aspect-ratio: var(--journal-feature-ratio); object-fit: cover; display: block; background: var(--color-primary-50); }
.journal-story-image { display: block; overflow: hidden; margin-bottom: var(--journal-space-md); border-radius: var(--radius-sm); }
.journal-card h3, .journal-card h2 { font: 500 var(--journal-card-title)/1.25 var(--font-serif); letter-spacing: -.02em; margin-block: .5rem .75rem; overflow-wrap: break-word; }
.journal-card-excerpt { font-size: 1rem; line-height: 1.65; color: var(--color-text-secondary); display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
.journal-card-meta { margin-top: auto; padding-top: var(--journal-space-sm); }
.journal-feature-meta, .journal-card-meta { font-size: var(--text-meta); font-variant-numeric: tabular-nums; }
/* Mastheads and category feature use natural text height, never image overlays. */
.journal-masthead { padding-top: 1.5rem; padding-bottom: 2.5rem; }
.journal-breadcrumb { display: flex; gap: .75rem; color: var(--color-text-muted); font-size: .875rem; margin-bottom: 2rem; }
.journal-breadcrumb a { color: inherit; text-underline-offset: .2em; }
.journal-masthead h1 { font: 500 var(--journal-page-title)/var(--journal-display-leading) var(--font-serif); letter-spacing: -.035em; margin-block: .5rem 1rem; }
.journal-masthead-detail { display: flex; align-items: baseline; justify-content: space-between; gap: 1.5rem; }
.journal-masthead-detail p, .journal-masthead-description { max-width: 44rem; font-size: 1.125rem; color: var(--color-text-secondary); line-height: 1.65; }
.journal-masthead-detail span { white-space: nowrap; }
.journal-feature-category { border-block: 1px solid var(--journal-rule); padding-block: 2rem; }
.journal-feature-category .journal-feature-story { display: grid; grid-template-columns: 1.15fr 1fr; align-items: center; gap: 3rem; }
.journal-feature-category .journal-feature-copy { padding: 0; }
.journal-feature-category .journal-feature-meta { justify-content: end; }
.journal-category-content { padding-bottom: 4rem; }
.journal-category-feature { display: grid; grid-template-columns: 55fr 45fr; background: var(--section-accent-subtle); border-top: 3px solid var(--section-accent, var(--color-primary)); border-radius: var(--radius-sm); overflow: hidden; }
.journal-home-feature { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-content: start; border-bottom: 0; padding-bottom: 0; }
.journal-home-feature .journal-category-feature-panel { padding: var(--journal-space-md); }
.journal-home-feature h3 { font: 500 var(--journal-home-feature-title)/var(--journal-display-leading) var(--font-serif); margin-block: var(--journal-space-sm); letter-spacing: -.025em; }
.journal-home-feature .journal-feature-image img { aspect-ratio: var(--journal-home-photo-ratio); }
.journal-home-feature .journal-feature-meta { margin-top: var(--journal-space-md); }
.journal-home-feature .journal-category-feature-description { font-size: 1rem; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
.journal-home-feature .journal-text-link { padding-bottom: 0; }
.journal-home-feature.journal-feature-lead { background: var(--color-primary-50); align-content: stretch; }
.journal-home-feature.journal-feature-lead h3 { font-size: var(--journal-home-lead-title); }
.journal-feature-image { display: block; min-width: 0; overflow: hidden; }
.journal-feature-image img { display: block; width: 100%; height: 100%; min-height: 0; aspect-ratio: var(--journal-feature-ratio); object-fit: cover; border-radius: 0; }
.journal-feature-headline { color: inherit; text-decoration: none; }
.journal-category-feature-panel { min-width: 0; padding: clamp(1.75rem, 3vw, 2.5rem); align-self: center; }
.journal-category-feature h2, .journal-category-feature h3 { font: 500 var(--journal-feature-title)/var(--journal-display-leading) var(--font-serif); letter-spacing: -.025em; text-wrap: balance; margin-block: var(--journal-space-sm) var(--journal-space-md); }
.journal-category-feature-description { font-size: 1.0625rem; line-height: 1.65; color: var(--color-text-secondary); }
.journal-category-feature .journal-feature-meta { font-size: .875rem; margin-block: 1.25rem .5rem; }
.journal-category-feature .journal-text-link { display: inline-flex; align-items: center; gap: .75rem; font-size: 1rem; }
@media (max-width: 800px) {
  .journal-category-feature { grid-template-columns: 1fr; }
  .journal-feature-image img { height: auto; aspect-ratio: var(--journal-feature-ratio); }
  .journal-category-feature-panel { padding: 1.5rem; }
  .journal-category-feature h2 { font-size: 2rem; }
}
.journal-category-content .journal-section-heading { border-top: 0; }
.journal-category-content .journal-card { display: flex; flex-direction: column; }
.journal-category-content .journal-card-story { margin-bottom: 1rem; }
.journal-category-content .journal-card-meta { margin-top: auto; font-size: .875rem; }
@media (min-width: 601px) and (max-width: 1100px) {
  .journal-category-content .journal-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
.journal-context { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 1.75rem 2rem; background: var(--color-primary-50); border-left: 3px solid var(--color-primary); }
.journal-context h2 { font: 500 1.75rem/1.2 var(--font-serif); letter-spacing: -.02em; margin-block: .5rem .75rem; }
.journal-context p { max-width: 64ch; font-size: 1rem; line-height: 1.65; color: var(--color-text-secondary); }
.journal-context-action { flex-shrink: 0; display: inline-flex; align-items: center; gap: .75rem; min-height: 2.75rem; padding-block: .75rem; background: none; border: 0; color: var(--color-primary); font-size: 1rem; font-weight: 600; text-decoration: underline; text-underline-offset: .3em; cursor: pointer; }
@media (max-width: 800px) {
  .journal-context { flex-direction: column; align-items: start; gap: .75rem; padding: 1.5rem; }
}
.journal-related-tool { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; padding: 2rem; background: var(--color-primary-50); }
/* Tool selection and supporting content. */
.journal-tools-band { background: var(--color-primary-50); }
.journal-tools-band .journal-section-heading { border-top: 0; padding-top: 0; }
.journal-tool-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.5rem; }
.journal-tool-grid-home { grid-template-columns: repeat(4,minmax(0,1fr)); }
.journal-tool-card { min-width: 0; padding: 1.5rem; background: #fff; border: 1px solid var(--journal-rule); border-radius: .25rem; display: flex; flex-direction: column; align-items: start; }
.journal-tool-icon { color: var(--color-primary); margin-bottom: 1.25rem; }
.journal-tool-icon svg { width: 1.5rem; height: 1.5rem; display: block; }
.journal-tool-card h3 { font: 500 1.375rem/1.2 var(--font-serif); margin-bottom: .75rem; }
.journal-tool-card p { font-size: 1rem; color: var(--color-text-secondary); margin-bottom: 1rem; }
.journal-tool-card button { cursor: pointer; border: 0; background: none; color: var(--color-primary); font-weight: 600; font-size: .9375rem; padding-block: .5rem; min-height: 2.75rem; text-align: left; margin-top: auto; }
.journal-tool-card button:hover { text-decoration: underline; text-underline-offset: .3em; }
.journal-tool-card button span { margin-left: .5rem; }
.journal-tool-directory { display: grid; gap: 3rem; padding-bottom: 3rem; }
.journal-tool-directory .journal-section-heading { margin-bottom: 1.5rem; }
.journal-tool-directory .journal-tool-icon { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; background: var(--color-primary-50); border-radius: var(--radius-sm); margin-bottom: 1rem; }
.journal-tool-directory .journal-tool-icon svg { width: 1.25rem; height: 1.25rem; }
.journal-tool-directory .journal-tool-card { padding: 1.75rem; }
.journal-tool-directory .journal-tool-card h3 { font-size: 1.5rem; }
.journal-tool-directory .journal-tool-card p { max-width: 48ch; line-height: 1.65; }
.journal-tool-directory .journal-tool-card:hover { border-color: var(--color-primary); background: #f7faf7; }
.journal-tool-directory .journal-tool-card:focus-within { border-color: var(--color-primary); outline: 2px solid var(--color-primary); outline-offset: 3px; }
.journal-tool-directory .journal-muted { font-size: 1rem; }
.journal-tool-directory .journal-tool-grid-pair { grid-template-columns: repeat(2,minmax(0,1fr)); }
@media (max-width: 600px) {
  .journal-tool-directory .journal-tool-grid-pair { grid-template-columns: 1fr; }
  .journal-tool-directory .journal-tool-card { padding: 1.5rem; }
}
.journal-tool-methodology { padding-bottom: 4rem; }
.journal-tool-methodology details { padding: 1.5rem; border-block: 1px solid var(--journal-rule); }
.journal-tool-methodology summary { min-height: 2.75rem; cursor: pointer; font-weight: 600; }
.journal-tool-methodology p { max-width: 68ch; margin-top: 1rem; color: var(--color-text-secondary); }
.journal-notice { font-size: .9375rem; margin-top: 1.5rem; }
.journal-notice a, .journal-tool-methodology a { color: var(--color-primary); }
.journal-method { display: grid; grid-template-columns: auto 1fr auto; gap: 2rem; align-items: center; padding-block: 2rem; margin-block: 1rem 3rem; border-bottom: 1px solid var(--journal-rule); }
.journal-method h2 { font-size: 1.5rem; }
.journal-method p { color: var(--color-text-secondary); max-width: 42ch; }
.journal-newsletter { margin-bottom: 3rem; display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 3rem; padding: 2.5rem; background: #edf3ed; border-top: 3px solid var(--color-primary); }
.journal-newsletter h2 { font: 500 var(--journal-section-title)/1.2 var(--font-serif); margin-block: .75rem; letter-spacing: -.02em; }
.journal-newsletter-form label { display: block; margin-bottom: .5rem; font-weight: 600; font-size: .9375rem; }
.journal-email-row { display: flex; gap: .5rem; }
.journal-email-row input { min-width: 0; width: 100%; border: 1px solid #6c7a70; border-radius: .25rem; font-size: 1rem; padding: .85rem; }
.journal-email-row button { background: var(--color-primary); color: #fff; border: 1px solid var(--color-primary); border-radius: .25rem; padding: .85rem 1rem; font-size: .9375rem; }
.journal-newsletter .newsletter-status { text-align: left; font-size: .9375rem; margin: .75rem 0; padding: 0; min-height: 0; }
.journal-newsletter a, .journal-commerce a { color: var(--color-primary); text-underline-offset: .2em; }
.journal-commerce { display: grid; grid-template-columns: 2fr 1fr; gap: 3rem; margin-block: 3rem; padding-block: 2rem; border-top: 1px solid var(--journal-rule); }
.journal-commerce h2 { font: 500 1.375rem/1.3 var(--font-serif); margin-block: .5rem; }
.journal-commerce p { font-size: .9375rem; color: var(--color-text-secondary); }
/* Reading: preserve real bylines, dates, references, and content structure. */
.article-hero-title { font-size: var(--journal-page-title); line-height: var(--journal-display-leading); max-width: 66rem; }
.article-hero { padding-block: 2.5rem 1.5rem; }
.article-hero-inner, .article-featured-img, .article-layout { max-width: calc(var(--journal-container) + 2 * var(--journal-gutter)); padding-inline: var(--journal-gutter); }
.article-body { font-size: 1.25rem; line-height: 1.75; color: #303a33; max-width: 68ch; }
.article-layout { grid-template-columns: 14rem minmax(0,42rem); gap: 3rem; }
.article-body blockquote { margin-inline: 0; }
.article-body h2 { font-size: clamp(1.625rem, 1.4rem + .7vw, 2rem); }
.article-featured-img { margin-top: 1.5rem; }
.article-featured-img img { aspect-ratio: var(--journal-feature-ratio); border-radius: .25rem; }
.article-meta-label { font-size: .8125rem; }
.article-toc { padding: 1rem 0; border: 0; border-top: 2px solid var(--color-primary); border-radius: 0; }
.article-author-chip { padding-left: 0; }
.article-nav-card-title, .related-card-title { -webkit-line-clamp: unset; max-height: none; }
.article-grid { width: min(var(--journal-container),calc(100% - 2 * var(--journal-gutter))); padding: 0; margin-inline: auto; }
.related-articles-grid { gap: 2rem; }
/* Calculator dialog: visible input and output regions, no formula changes. */
.calc-modal { visibility: hidden; backdrop-filter: none; padding: 1.25rem; }
.calc-modal.open { visibility: visible; }
.calc-modal-inner { max-width: 55rem; border-radius: .5rem; max-height: calc(100dvh - 2.5rem); animation: none; }
.calc-modal-header { padding: 1.5rem 2rem 0; gap: 1rem; }
.calc-modal-title { font-size: clamp(1.625rem,3vw,2rem); }
.calc-modal-close { min-width: 2.75rem; min-height: 2.75rem; border-radius: .25rem; }
.calc-modal-body { display: grid; grid-template-columns: 1.1fr 1fr; gap: 1.5rem 2rem; padding: 1.5rem 2rem 2rem; }
.journal-calculator-question { grid-column: 1/-1; color: var(--color-text-secondary); }
.journal-calculator-inputs, .journal-calculator-output { min-width: 0; }
.journal-calculator-output { align-self: start; padding: 1.5rem; background: var(--color-primary-50); border-top: 2px solid var(--color-primary); }
.journal-calculator-output h3 { font-size: .8125rem; color: var(--color-primary); text-transform: uppercase; letter-spacing: .06em; }
.journal-calculator-hint { color: var(--color-text-secondary); font-size: .9375rem; margin-top: 1rem; }
.journal-calculator-notice { grid-column: 1/-1; color: var(--color-text-muted); font-size: .875rem; border-top: 1px solid var(--journal-rule); padding-top: 1rem; }
.journal-calculator-notice a { color: var(--color-primary); }
.calc-field label { font-size: .875rem; }
.calc-field input, .calc-field select { min-width: 0; font-size: 1rem; border: 1px solid #6c7a70; border-radius: .25rem; padding: .75rem; }
.calc-field input[aria-invalid="true"] { border-color: var(--color-danger); }
.journal-field-error { font-size: .875rem; color: var(--color-danger); display: block; margin-top: .5rem; }
.journal-field-error[hidden] { display: none; }
.calc-btn { margin-top: .5rem; min-height: 2.75rem; border-radius: .25rem; }
.calc-result, .calc-result.show { display: block; text-align: left; margin: .75rem 0 0; padding: 0; background: none; animation: none; }
.calc-result-value { font-size: 2rem; line-height: 1.3; overflow-wrap: anywhere; }
.calc-result-label { font-size: 1rem; color: var(--color-text); }
.calc-result-detail { font-size: .9375rem; line-height: 1.65; }
/* One canonical logo; balanced destination groups, policies presented once. */
.journal-footer { background: #091b12; color: #d2dfd5; padding-top: 3rem; }
.journal-footer-main { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 3rem; padding-bottom: 2.5rem; }
.journal-footer-brand img { width: 10rem; height: auto; filter: brightness(0) invert(1); display: block; margin-bottom: 1.25rem; }
.journal-footer-brand p { font-size: .9375rem; line-height: 1.65; margin-bottom: 1rem; }
.journal-footer .journal-fineprint { color: #becfc3; font-size: .8125rem; max-width: 28ch; }
.journal-footer h2 { font: 600 .9375rem/1.5 var(--font-sans); color: #fff; margin-bottom: 1rem; }
.journal-footer nav a, .journal-footer nav button { display: block; width: fit-content; color: #d2dfd5; background: none; border: 0; text-align: left; text-decoration: none; font: 400 .9375rem/1.6 var(--font-sans); padding-block: .4rem; cursor: pointer; }
.journal-footer nav a:hover, .journal-footer nav button:hover { text-decoration: underline; text-underline-offset: .25em; color: #fff; }
.journal-footer-bottom { border-top: 1px solid #365440; padding-block: 1.5rem; font-size: .8125rem; }
.journal-footer-bottom nav { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; margin-top: .75rem; }
.journal-footer-bottom nav a, .journal-footer-bottom nav button { font-size: .8125rem; }
/* Deliberate breakpoints based on reading space, not device names. */
@media (max-width: 1100px) {
  .nav-links { display: none; }
  .nav-menu-btn { display: flex; }
  .nav-actions { margin-left: auto; }
  .journal-tool-grid-home { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .journal-footer-main { gap: 2rem; grid-template-columns: 1.25fr 1fr 1fr; }
  .journal-footer-brand { grid-column: 1/-1; }
  .journal-footer-brand p { max-width: 32rem; }
}
@media (max-width: 900px) {
  .journal-intro { gap: 2rem; }
  .journal-grid, .article-grid, .journal-tool-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .journal-feature-category .journal-feature-story { gap: 2rem; }
  .journal-method { grid-template-columns: 1fr 2fr; gap: 1rem; }
  .journal-method a { grid-column: 2; }
  .journal-newsletter { gap: 2rem; padding: 2rem; }
  .article-layout { grid-template-columns: minmax(0,42rem); }
}
@media (max-width: 700px) {
  .journal-intro { grid-template-columns: 1fr; padding-block: 1.25rem; gap: 1rem; }
  .journal-intro h1 { max-width: none; font-size: 2.5rem; }
  .journal-section-heading { align-items: start; flex-direction: column; gap: .75rem; }
  .journal-lead-section > .journal-section-heading { flex-direction: row; align-items: center; }
  .journal-lead-section > .journal-section-heading > .journal-eyebrow { display: none; }
  .journal-feature-category .journal-feature-story { grid-template-columns: 1fr; gap: 1.5rem; }
  .journal-feature-category .journal-feature-meta { justify-content: start; }
  .journal-masthead-detail { flex-direction: column; gap: .75rem; }
  .journal-newsletter { grid-template-columns: 1fr; }
  .journal-commerce { grid-template-columns: 1fr; gap: 1rem; }
  .journal-related-tool { grid-template-columns: 1fr; gap: 1.5rem; padding: 1.5rem; }
  .calc-modal-body { grid-template-columns: 1fr; padding: 1.25rem; gap: 1.25rem; }
  .calc-modal-header { padding: 1.25rem 1.25rem 0; }
  .calc-modal { padding: .75rem; }
  .calc-modal-inner { max-height: calc(100dvh - 1.5rem); }
}
@media (max-width: 600px) {
  .nav-inner, .nav.scrolled .nav-inner { height: 4rem; padding-inline: 1.25rem; gap: .5rem; }
  .nav-logo-img { width: 8rem; }
  .nav-search-btn span { display: none; }
  .journal-section { padding-block: 2rem 3rem; }
  .journal-lead-section { padding-top: 0; }
  .journal-grid, .article-grid, .journal-tool-grid { grid-template-columns: 1fr; gap: 2rem; }
  .journal-feature h2, .journal-feature-lead h3 { font-size: 1.875rem; }
  .journal-card h3, .journal-card h2 { font-size: 1.5rem; }
  .journal-tool-card { padding: 1.25rem; }
  .journal-method { grid-template-columns: 1fr; gap: .75rem; margin-bottom: 2rem; }
  .journal-method a { grid-column: auto; }
  .journal-newsletter { padding: 1.5rem; }
  .journal-email-row { flex-direction: column; }
  .journal-email-row button { min-height: 2.75rem; }
  .journal-footer-main { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2rem 1rem; }
  .journal-footer nav a, .journal-footer nav button { min-height: 2.75rem; }
  .journal-footer-bottom nav { gap: 0 1.25rem; }
  .article-hero-title { font-size: 2.25rem; }
  .article-body { font-size: 1.1875rem; }
  .article-hero-meta { flex-direction: row; gap: .75rem 1.25rem; }
  .article-hero-meta > .article-author-chip { width: 100%; }
  .search-overlay { padding-top: 5rem; }
}
@media (max-width: 360px) {
  :root { --journal-gutter: 1rem; }
  .nav-inner, .nav.scrolled .nav-inner { padding-inline: 1rem; }
  .journal-intro h1 { font-size: 2.25rem; }
  .calc-field-row { grid-template-columns: 1fr; gap: 0; }
  .journal-footer-main { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .nav-inner, .calc-modal, .search-overlay, .mobile-menu { transition: none; }
}
/* Composed story zones: image features, thumbnail cards, and text lists. */
.journal-lead-grid { display: grid; grid-template-columns: var(--journal-home-lead-columns); gap: var(--journal-space-lg); align-items: stretch; }
.journal-secondary-stories { display: grid; gap: var(--journal-space-md); align-content: start; border-left: 1px solid var(--journal-rule); padding-left: var(--journal-space-lg); }
.journal-feature-side { padding-bottom: var(--journal-space-md); border-bottom: 1px solid var(--journal-rule); }
.journal-feature-side:last-child { border-bottom: 0; padding-bottom: 0; }
.journal-feature-side .journal-feature-story { display: grid; grid-template-columns: minmax(0, 1fr) var(--journal-home-thumbnail); gap: var(--journal-space-sm); }
.journal-feature-side img { grid-column: 2; grid-row: 1; aspect-ratio: 1; }
.journal-feature-side .journal-feature-copy { grid-row: 1; padding: 0; }
.journal-feature-side h3 { font-size: var(--journal-compact-title); line-height: 1.3; margin-block: var(--journal-space-sm) 0; }
.journal-feature-side .journal-feature-read { display: none; }
.journal-feature-side .journal-feature-meta { margin-top: var(--journal-space-sm); }
.journal-editorial-grid { display: grid; gap: var(--journal-space-md); }
.journal-across-section { padding-block: var(--journal-space-md) var(--journal-space-lg); }
.journal-editorial-feature-row { display: grid; grid-template-columns: var(--journal-home-lead-columns); gap: var(--journal-space-lg); padding-bottom: var(--journal-space-md); border-bottom: 1px solid var(--journal-rule); }
.journal-editorial-support { display: grid; align-content: start; gap: var(--journal-space-md); }
.journal-editorial-support .journal-card:last-child { border-bottom: 0; }
.journal-editorial-standard-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--journal-space-lg); }
.journal-editorial-standard-row .journal-card-story { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: var(--journal-space-md); }
.journal-editorial-standard-row .journal-story-image { margin-bottom: 0; }
.journal-editorial-standard-row .journal-card h3 { font-size: var(--journal-home-standard-title); }
.journal-editorial-standard-row .journal-card-excerpt { display: none; }
.journal-home-heading { flex-wrap: wrap; gap: var(--journal-space-sm) var(--journal-space-lg); }
.journal-home-sections { margin: 0; }
.journal-home-sections .journal-section-index { display: flex; flex-wrap: wrap; column-gap: var(--journal-space-lg); }
.journal-home-sections .journal-section-index a { border: 0; padding-block: var(--journal-space-sm); color: var(--color-primary); }
.journal-home-sections .journal-section-index a > span:last-child { display: none; }
.journal-recent-section { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); gap: var(--journal-space-lg); padding-block: var(--journal-space-lg); margin-bottom: var(--journal-space-sm); border-top: 3px solid var(--color-primary); }
.journal-recent-heading h2 { font: 500 var(--journal-section-title)/var(--journal-display-leading) var(--font-serif); letter-spacing: -.025em; }
.journal-recent-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--journal-space-md) var(--journal-space-lg); }
.journal-recent-list .journal-brief { padding-top: 0; }
.journal-recent-section .journal-continuation { margin-top: var(--journal-space-md); text-align: left; }
@media (max-width: 1100px) {
  .journal-lead-grid { grid-template-columns: minmax(0, 1.8fr) minmax(0, 1fr); }
  .journal-secondary-stories { padding-left: var(--journal-space-md); }
  .journal-home-feature { grid-template-columns: 1fr; }
  .journal-home-feature .journal-feature-image img { height: auto; }
  .journal-editorial-feature-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .journal-editorial-standard-row { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--journal-space-md); }
  .journal-recent-section { grid-template-columns: 1fr; }
}
@media (max-width: 800px) {
  .journal-lead-grid { grid-template-columns: 1fr; }
  .journal-home-feature.journal-feature-lead { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .journal-home-feature.journal-feature-lead .journal-feature-image img { height: 100%; }
  .journal-secondary-stories { grid-template-columns: 1fr; padding-left: 0; border-left: 0; }
  .journal-editorial-standard-row { grid-template-columns: 1fr; }
  .journal-editorial-standard-row .journal-card-story { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: var(--journal-space-md); }
  .journal-editorial-standard-row .journal-story-image { margin-bottom: 0; }
}
@media (max-width: 600px) {
  .journal-home-feature.journal-feature-lead, .journal-editorial-feature-row, .journal-recent-list { grid-template-columns: 1fr; }
  .journal-home-feature.journal-feature-lead .journal-feature-image img { height: auto; }
  .journal-home-feature .journal-category-feature-panel { padding-inline: 0; }
  .journal-home-feature.journal-feature-lead .journal-category-feature-panel { padding-inline: var(--journal-space-md); }
  .journal-home-sections .journal-section-index { column-gap: var(--journal-space-md); }
}
/* Category "More in [Section]" hierarchy: rows of decreasing visual weight
   (a 2-up lead pair, a 3-up standard row, a text-only list) instead of one
   repeating uniform tile grid. Composed from position index in JS - see
   categoryGridRowHtml() - so every category page varies with its own
   articles but the row system itself never changes. */
.journal-grid-duo { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: var(--journal-space-lg); }
.journal-card-lead .journal-story-image { margin-bottom: var(--journal-space-md); }
.journal-card-lead h3, .journal-card-lead h2 { font-size: var(--journal-home-lead-title); line-height: var(--journal-display-leading); }
.journal-card-lead .journal-card-excerpt { -webkit-line-clamp: 3; }
.journal-grid-trio { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: var(--journal-space-lg) var(--journal-space-md); }
.journal-text-list { display: grid; }
.journal-card-textrow { padding-block: var(--journal-space-md); border-bottom: 1px solid var(--journal-rule); display: grid; gap: .375rem; }
.journal-card-textrow .journal-card-story { color: inherit; text-decoration: none; }
.journal-card-textrow h3 { font: 500 var(--journal-compact-title)/1.3 var(--font-serif); letter-spacing: -.015em; margin-top: .375rem; }
.journal-card-textrow .journal-card-excerpt { -webkit-line-clamp: 2; margin-top: .25rem; }
.journal-card-textrow:hover h3 { color: var(--section-accent, var(--color-primary)); }
.journal-card-textrow:last-child { border-bottom: 0; }
@keyframes journalFadeUp { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.journal-reveal { animation: journalFadeUp 240ms ease-out both; }
@media (max-width: 700px) {
  .journal-grid-duo, .journal-grid-trio { grid-template-columns: 1fr; }
}
.journal-category-layout { margin-top: var(--journal-space-xl); }
.journal-category-archive > .journal-section-heading { padding-top: 0; }
.journal-category-content .journal-card-story { margin-bottom: 0; }
.journal-rail .journal-context { flex-direction: column; align-items: start; gap: var(--journal-space-sm); padding: var(--journal-space-md); }
.journal-rail .journal-context h2 { font-size: 1.5rem; }
.journal-rail .journal-context-action { flex-shrink: 1; }
.journal-tool-jumps { display: flex; flex-wrap: wrap; gap: var(--journal-space-sm) var(--journal-space-lg); border-block: 1px solid var(--journal-rule); padding-block: var(--journal-space-sm); }
.journal-tool-jumps a { display: inline-flex; align-items: center; gap: var(--journal-space-sm); min-height: 2.75rem; font-size: 1rem; color: var(--color-primary); text-underline-offset: .3em; }
.journal-tool-group { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); gap: var(--journal-space-lg); border-bottom: 1px solid var(--journal-rule); padding-bottom: var(--journal-space-lg); }
.journal-tool-group .journal-section-heading { display: block; border-top: 0; margin: 0; padding-top: var(--journal-space-sm); }
.journal-tool-group .journal-section-heading h2 { font-size: 1.875rem; }
.journal-tool-directory { gap: var(--journal-space-lg); }
.journal-tool-directory .journal-tool-card { padding: var(--journal-space-md); background: var(--journal-surface); }
.journal-tool-directory .journal-tool-card h3 { font-size: 1.375rem; }
.journal-tool-group .journal-tool-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: var(--journal-space-md); }
.journal-editorial-layout { display: grid; grid-template-columns: minmax(0, 1fr) var(--journal-rail-width); gap: var(--journal-space-xl); align-items: start; }
.journal-archive { min-width: 0; }
.journal-card-compact .journal-card-story { display: grid; grid-template-columns: minmax(0, 1fr) var(--journal-thumbnail); gap: var(--journal-space-md); align-items: start; }
.journal-card-compact .journal-story-image { grid-column: 2; grid-row: 1; margin: 0; }
.journal-card-compact img { aspect-ratio: 1; }
.journal-card-compact .journal-card-body { grid-column: 1; grid-row: 1; min-width: 0; }
.journal-card-compact h3 { font-size: var(--journal-compact-title); }
.journal-card-compact .journal-card-excerpt { display: none; }
.journal-rail { display: grid; align-items: start; gap: var(--journal-space-lg); border-left: 1px solid var(--journal-rule); padding-left: var(--journal-space-lg); }
.journal-rail-title { font: 500 1.5rem/1.25 var(--font-serif); letter-spacing: -.02em; padding-top: var(--journal-space-sm); border-top: 3px solid var(--color-primary); margin-bottom: var(--journal-space-sm); }
.journal-brief { padding-block: var(--journal-space-md); border-bottom: 1px solid var(--journal-rule); }
.journal-brief > a:not(.journal-tag) { display: block; color: inherit; text-decoration: none; }
.journal-brief > .journal-tag { display: inline-flex; width: fit-content; }
.journal-brief h3 { font: 500 var(--journal-compact-title)/1.3 var(--font-serif); letter-spacing: -.015em; margin-top: var(--journal-space-sm); }
.journal-section-index a { display: flex; justify-content: space-between; gap: var(--journal-space-sm); padding-block: var(--journal-space-sm); min-height: 2.75rem; border-bottom: 1px solid var(--journal-rule); color: var(--journal-ink); font-size: 1rem; text-decoration: none; }
.journal-section-index a[aria-current="page"] { color: var(--color-primary); font-weight: 700; }
.journal-section-index a:hover, .journal-brief a:hover h3, .journal-feature-headline:hover { color: var(--section-accent, var(--color-primary)); text-decoration: underline; text-underline-offset: .2em; }
.journal-card:hover h3, .journal-card:hover h2, .journal-feature:hover h3 { color: var(--section-accent, var(--color-primary)); }
.journal-story-image img, .journal-feature-image img { transition: transform var(--journal-motion); }
.journal-card-story:hover img, .journal-feature-image:hover img { transform: scale(var(--journal-image-hover)); }
.journal-text-link span, .journal-tool-card button span, .journal-context-action span, .journal-section-index a > span:last-child { display: inline-block; transition: transform var(--journal-motion); }
.journal-text-link:hover span, .journal-tool-card button:hover span, .journal-context-action:hover span, .journal-section-index a:hover > span:last-child { transform: translateX(var(--journal-arrow-travel)); }
.journal-card-story:focus-visible, .journal-feature-image:focus-visible, .journal-brief > a:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 4px; }
/* Hide the full skip link above the viewport, including its padding. */
.skip-link { top: 0; transform: translateY(calc(-100% - 1px)); transition: none; }
.skip-link:focus { top: 12px; transform: none; }

@media (max-width: 1100px) {
  .journal-tool-group { grid-template-columns: 1fr; }
  .journal-tool-group .journal-section-heading { max-width: none; }
  .journal-editorial-layout { grid-template-columns: 1fr; gap: var(--journal-space-lg); }
  .journal-rail { grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); border-left: 0; padding-left: 0; }
  .journal-category-layout .journal-rail { grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); }
}
@media (max-width: 800px) {
}
@media (max-width: 600px) {
  :root { --journal-thumbnail: clamp(4rem, 22vw, 6rem); }
  .journal-tool-jumps { flex-direction: column; gap: 0; }
  .journal-rail, .journal-category-layout .journal-rail { grid-template-columns: 1fr; }
  .journal-section { padding-block: var(--journal-space-lg); }
  .journal-lead-section { padding-top: 0; }
  .journal-card-compact h3 { font-size: var(--journal-compact-title); }
  .journal-feature-lead h3 { font-size: var(--journal-feature-title); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .journal-card-story:hover img, .journal-feature-image:hover img, .journal-text-link:hover span, .journal-tool-card button:hover span, .journal-context-action:hover span, .journal-section-index a:hover > span:last-child { transform: none; }
}
.journal-search-again { margin-top: 1.5rem; }
.journal-search-status { width: min(45rem,calc(100% - 3rem)); color: var(--color-text-muted); font-size: .875rem; margin-top: 1rem; }
