/*
 * CASP Corner editorial system, adapted from the supplied v2 reference.
 * Design Read: aerospace editorial portal, ENERGY 2 / RHYTHM 2 / MOTION 1.
 * Decisions: warm paper supports long reading; navy carries CASP identity; brass marks
 * hierarchy only; Fraunces separates editorial voice from Figtree UI; rules and
 * asymmetric story weights mirror editorial importance; imagery remains documentary.
 */
:root {
  --c-navy: #0d3c74;
  --c-navy-dark: #081c33;
  --c-ink: #121820;
  --c-muted: #56616c;
  --c-faint: #77818b;
  --c-paper: #fff;
  --c-warm: #f7f6f3;
  --c-line: #d9dde1;
  --c-line-dark: #aeb6bf;
  --c-brass: #8f6a2f;
  --font-serif: Fraunces, Georgia, "Times New Roman", serif;
  --font-sans: Figtree, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-mono: "IBM Plex Mono", "SFMono-Regular", Consolas, monospace;
  --container: 1200px;
  --pad: clamp(1rem, 3vw, 1.5rem);
}

* { box-sizing: border-box; }
html, body { overflow-x: clip; }
html { scroll-behavior: smooth; }
body { background: var(--c-paper); color: var(--c-ink); font-family: var(--font-sans); line-height: 1.5; }
img { display: block; height: auto; max-width: 100%; }
a { color: inherit; text-underline-offset: .16em; text-decoration-thickness: 1px; }
a:hover { color: var(--c-navy); }
:where(a, button, input, textarea, select, summary):focus-visible { outline: 3px solid var(--c-brass); outline-offset: 3px; }
.wp-site-blocks { min-height: 100vh; }

/* Header: three distinct bands reproduce v2's editorial hierarchy. */
.casp-site-header { background: var(--c-paper); border-bottom: 1px solid var(--c-line-dark); }
.casp-utility-bar { border-bottom: 1px solid var(--c-line); }
.casp-utility-bar__inner { min-height: 34px; }
.casp-utility-bar .wp-block-site-tagline,
.casp-parent-link { color: var(--c-muted); font-family: var(--font-mono); font-size: .68rem; letter-spacing: .04em; margin: 0; }
.casp-parent-link a { text-decoration: none; }
.casp-masthead { border-bottom: 1px solid var(--c-line); }
.casp-masthead__inner { display: grid !important; grid-template-columns: 1fr auto 1fr; min-height: 82px; position: relative; }
.casp-menu-toggle { justify-self: start; }
.casp-menu-toggle .wp-block-navigation__responsive-container-open,
.casp-menu-toggle .wp-block-navigation__responsive-container-close { min-height: 44px; min-width: 44px; padding: 10px; }
.casp-wordmark { font-family: var(--font-serif); font-size: clamp(1.9rem, 4vw, 3rem); font-weight: 700; grid-column: 2; letter-spacing: -.035em; line-height: 1; margin: 0; text-align: center; }
.casp-wordmark a { text-decoration: none; }
.casp-header-search { grid-column: 3; justify-self: end; margin: 0; max-width: 13rem; }
.casp-header-search .wp-block-search__inside-wrapper { border: 0; padding: 0; }
.casp-header-search .wp-block-search__input { border: 1px solid var(--c-line-dark); border-radius: 2px; min-height: 40px; min-width: 0; }
.casp-header-search .wp-block-search__button { background: var(--c-navy-dark); border: 0; border-radius: 2px; color: #fff; margin-left: 4px; min-height: 40px; min-width: 40px; padding: 9px; }
.casp-section-nav { overflow-x: auto; scrollbar-width: none; }
.casp-section-nav::-webkit-scrollbar { display: none; }
.casp-section-nav .wp-block-categories-list { display: flex; gap: clamp(1rem, 3vw, 1.5rem); list-style: none; margin: 0; padding: .7rem 0; white-space: nowrap; }
.casp-section-nav li { margin: 0; }
.casp-section-nav a { font-size: .8rem; font-weight: 600; text-decoration: none; }

/* Homepage: one lead, one supporting rail, then broader coverage. */
.casp-home { padding-block: 0; }
.casp-top-stories { border-bottom: 1px solid var(--c-line); display: grid; gap: clamp(1.5rem, 4vw, 2.75rem); grid-template-columns: minmax(0, 1.5fr) minmax(18rem, 1fr); padding-block: clamp(1.75rem, 4vw, 2.5rem); }
.casp-home .wp-block-post-template { list-style: none; margin: 0; padding: 0; }
.casp-home .wp-block-post { margin: 0; }
.casp-lead-image { margin: 0 0 .9rem; }
.casp-lead-image img,
.casp-secondary-grid .wp-block-post-featured-image img { object-fit: cover; width: 100%; }
.casp-lead-title { font-family: var(--font-serif); font-size: clamp(2rem, 4.2vw, 3.45rem); letter-spacing: -.025em; line-height: 1.03; margin: .35rem 0 .6rem; }
.casp-lead-title a,
.casp-story-list .wp-block-post-title a,
.casp-secondary-grid .wp-block-post-title a,
.casp-news-grid .wp-block-post-title a { text-decoration: none; }
.casp-dek { color: #343b43; font-family: var(--font-serif); margin: .45rem 0; }
.casp-lead-query .casp-dek { font-size: 1.05rem; max-width: 50rem; }
.casp-eyebrow,
.casp-meta-line,
.casp-post-meta,
.casp-single-meta,
.taxonomy-category,
.taxonomy-post_tag,
.wp-block-post-author-name,
.wp-block-post-date,
.wp-block-query-pagination,
.wp-block-read-more { color: var(--c-muted); font-family: var(--font-mono); font-size: .68rem; letter-spacing: .045em; line-height: 1.5; text-transform: uppercase; }
.casp-eyebrow { margin: .65rem 0 .25rem; }
.casp-eyebrow a { color: var(--c-navy); font-weight: 700; text-decoration: none; }
.casp-meta-line { gap: .8rem; margin-top: .65rem; }
.casp-meta-line a { text-decoration: none; }
.casp-story-list .wp-block-post { border-top: 1px solid var(--c-line); padding: 1rem 0; }
.casp-story-list .wp-block-post:first-child { border-top: 0; padding-top: 0; }
.casp-story-row { display: grid; gap: .9rem; grid-template-columns: minmax(0, 1fr) auto; }
.casp-story-row .wp-block-post-featured-image { margin: 0; width: 128px; }
.casp-story-row img { object-fit: cover; width: 128px; }
.casp-story-list .wp-block-post-title { font-family: var(--font-serif); font-size: 1.12rem; line-height: 1.2; margin: 0 0 .35rem; }
.casp-story-list .casp-dek { display: -webkit-box; font-size: .9rem; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.casp-secondary-grid { border-bottom: 1px solid var(--c-line); padding-block: 1.75rem; }
.casp-secondary-grid .wp-block-post-template { display: grid; gap: 1.75rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.casp-secondary-grid .wp-block-post-title { font-family: var(--font-serif); font-size: 1.25rem; line-height: 1.16; margin: .25rem 0 .45rem; }
.casp-secondary-grid .casp-dek { font-size: .92rem; }
.casp-section-label { border-bottom: 1px solid var(--c-ink); font-family: var(--font-sans); font-size: .78rem; font-weight: 800; letter-spacing: .045em; margin: 0 0 1.25rem; padding-bottom: .5rem; text-transform: uppercase; }
.casp-more-news { border-bottom: 1px solid var(--c-line); padding-block: 1.75rem; }
.casp-news-grid .wp-block-post-template { display: grid; gap: 1.75rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.casp-news-card { display: grid; gap: .75rem; grid-template-columns: minmax(0, 1fr) 76px; }
.casp-news-card .wp-block-post-featured-image { margin: 0; width: 76px; }
.casp-news-card img { height: 76px; object-fit: cover; width: 76px; }
.casp-news-grid .wp-block-post-title { font-family: var(--font-serif); font-size: 1.02rem; line-height: 1.23; margin: .2rem 0 .4rem; }
.casp-empty-state { border-left: 3px solid var(--c-brass); color: var(--c-muted); padding-left: 1rem; }

/* Shared inner templates retain the same editorial rules and typography. */
.casp-content-band { padding-block: clamp(2.5rem, 6vw, 5rem); }
.casp-article-list { list-style: none; margin: 0; padding: 0; }
.casp-article-list .wp-block-post { border-top: 1px solid var(--c-line-dark); display: grid; gap: 1.5rem; grid-template-columns: minmax(8rem, .3fr) minmax(0, 1fr); padding-block: 2rem; }
.casp-article-list .wp-block-post:first-child { border-top: 3px solid var(--c-brass); }
.casp-article-list .wp-block-post-title { font-family: var(--font-serif); font-size: clamp(1.65rem, 4vw, 2.7rem); line-height: 1.1; margin: 0; }
.casp-article-list .wp-block-post-title a { text-decoration: none; }
.casp-article-list .wp-block-post-excerpt { color: var(--c-muted); max-width: 44rem; }
.casp-taxonomy-row { display: flex; flex-wrap: wrap; gap: .5rem; }
.taxonomy-category a,
.taxonomy-post_tag a { color: var(--c-navy); font-weight: 700; text-decoration: none; }
.casp-single-header { background: var(--c-warm); border-bottom: 1px solid var(--c-line); padding-block: clamp(3rem, 7vw, 6rem); }
.casp-single-header .wp-block-post-title,
.wp-block-query-title,
.wp-block-post-title { font-family: var(--font-serif); letter-spacing: -.015em; }
.casp-single-header .wp-block-post-title { font-size: clamp(2.25rem, 7vw, 5rem); line-height: 1.02; }
.casp-single-meta { display: flex; flex-wrap: wrap; gap: .75rem; }
.wp-block-post-content { font-family: var(--font-serif); font-size: clamp(1rem, 1.4vw, 1.125rem); }
.wp-block-post-content :where(h2, h3, h4) { color: var(--c-navy-dark); margin-top: 3rem; }
.wp-block-post-content p,
.wp-block-post-content li { line-height: 1.75; }
.wp-block-post-content blockquote { border-left: 4px solid var(--c-brass); margin-left: 0; padding-left: 1.5rem; }
.wp-block-post-content img { border-radius: 2px; }
.wp-block-read-more,
.wp-block-search__button { border-radius: 2px; min-height: 44px; }
.wp-block-search__input { border: 1px solid var(--c-line-dark); border-radius: 2px; min-height: 44px; }

.casp-footer { background: var(--c-navy-dark); color: #fff; margin-block-start: 0; padding-block: 2rem; }
.casp-footer a { color: #fff; }
.casp-footer a:hover { color: #e4c98d; }
.casp-footer__rule { border-top: 1px solid rgba(255,255,255,.28); padding-top: 1.5rem; }

@media (max-width: 900px) {
  .casp-top-stories { grid-template-columns: 1fr; }
  .casp-story-list { border-top: 1px solid var(--c-line-dark); padding-top: 1.25rem; }
  .casp-secondary-grid .wp-block-post-template,
  .casp-news-grid .wp-block-post-template { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
  body { --wp--style--root--padding-left: 1rem; --wp--style--root--padding-right: 1rem; }
  .casp-utility-bar .wp-block-site-tagline { display: none; }
  .casp-utility-bar__inner { justify-content: flex-end !important; }
  .casp-masthead__inner { grid-template-columns: 44px minmax(0, 1fr) 44px; min-height: 68px; }
  .casp-wordmark { font-size: clamp(1.55rem, 8vw, 2.1rem); overflow-wrap: normal; white-space: nowrap; }
  .casp-header-search { display: none; }
  .casp-secondary-grid .wp-block-post-template,
  .casp-news-grid .wp-block-post-template,
  .casp-article-list .wp-block-post { grid-template-columns: 1fr; }
  .casp-top-stories { padding-block: 1.5rem; }
  .casp-story-row .wp-block-post-featured-image,
  .casp-story-row img { width: 92px; }
  .casp-story-list .casp-dek { display: none; }
}

@media (max-width: 360px) {
  .casp-wordmark { font-size: 1.4rem; }
  .casp-story-row { grid-template-columns: 1fr; }
  .casp-story-row .wp-block-post-featured-image { grid-row: 1; width: 100%; }
  .casp-story-row img { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
