/*
Theme Name: Golden Gate Legal Review
Theme URI: https://ggulawreview.com/
Author: Golden Gate Legal Review
Description: Scholarly law-review archetype — Swiss editorial grid, marginalia citations, and a dark legislative tracker. Self-hosted fonts, vanilla CSS, no third-party CDNs.
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: gglr
Tags: custom-menu, featured-images, translation-ready, custom-post-types
*/

/* ============ Self-hosted fonts (no Google CDN) ============ */
@font-face { font-family: 'Caslon Display'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('assets/fonts/librecaslondisplay-400.woff2') format('woff2'); }
@font-face { font-family: 'Caslon Text'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('assets/fonts/librecaslontext-400.woff2') format('woff2'); }
@font-face { font-family: 'Caslon Text'; font-style: italic; font-weight: 400; font-display: swap;
  src: url('assets/fonts/librecaslontext-400i.woff2') format('woff2'); }
@font-face { font-family: 'Caslon Text'; font-style: normal; font-weight: 700; font-display: swap;
  src: url('assets/fonts/librecaslontext-700.woff2') format('woff2'); }
@font-face { font-family: 'Geist'; font-style: normal; font-weight: 400 700; font-display: swap;
  src: url('assets/fonts/geist-var.woff2') format('woff2'); }
@font-face { font-family: 'SrcCode'; font-style: normal; font-weight: 400 600; font-display: swap;
  src: url('assets/fonts/sourcecodepro-var.woff2') format('woff2'); }

/* ============ Tokens — parchment / burgundy (registry-unique pair) ============ */
:root {
  --parchment: #F7F3ED;   /* paper base */
  --claret:    #5E1914;   /* burgundy ink — accent / rules / hover */
  --ink:       #1A1A1A;   /* body + heads */
  --hairline:  #D1CEC9;   /* fine rules between entries */
  --paper:     #FCFAF6;   /* lighter inset paper (notes) */
  --ink-soft:  #55514B;   /* muted secondary text */
  --tracker:   #15130F;   /* dark tracker section */
  --tracker-2: #211E18;   /* tracker row hover */
  --emerald:   #2f7d52;   /* "passed" status */
  --maxw: 1280px;
}

/* ============ Base ============ */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: 'Geist', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-size: 17px; line-height: 1.6;
  color: var(--ink); background: var(--parchment);
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
}
h1, h2, h3, h4 { font-family: 'Caslon Display', Georgia, 'Times New Roman', serif; font-weight: 400; line-height: 1.04; letter-spacing: -0.01em; color: var(--ink); margin: 0; }
a { color: var(--ink); text-decoration: none; }
a:hover { color: var(--claret); }
img { max-width: 100%; height: auto; display: block; }
p { margin: 0 0 1.1rem; }

/* utility type roles */
.gglr-kicker { font-family: 'Geist', sans-serif; font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.18em; color: var(--claret); }
.gglr-mono   { font-family: 'SrcCode', ui-monospace, monospace; font-variant-numeric: tabular-nums; }
.gglr-margin { font-family: 'Caslon Text', Georgia, serif; font-style: italic; font-size: 0.78rem; line-height: 1.45; color: var(--claret); border-top: 1px solid var(--claret); padding-top: 5px; }

/* ============ Shell ============ */
.gglr-shell { min-height: 100vh; display: flex; flex-direction: column; }
.gglr-wrap  { max-width: var(--maxw); margin: 0 auto; padding: 0 2.5rem; width: 100%; }

/* ============ Header ============ */
.gglr-head { border-bottom: 1px solid var(--ink); background: var(--parchment); position: sticky; top: 0; z-index: 50; }
.gglr-head-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; min-height: 5.5rem; padding-bottom: 1rem; padding-top: 1.1rem; }
.gglr-brandwrap { display: flex; align-items: center; gap: 1rem; min-width: 0; }
.gglr-logo { width: 40px; height: 48px; flex: none; display: block; }
.gglr-logo svg { width: 100%; height: 100%; display: block; }
.gglr-brandtext { display: flex; flex-direction: column; gap: 0.18rem; min-width: 0; }
.gglr-brand { font-family: 'Caslon Display', serif; font-size: clamp(1.4rem, 2.4vw, 1.95rem); letter-spacing: 0.005em; text-transform: uppercase; line-height: 0.95; color: var(--ink); }
.gglr-brand:hover { color: var(--ink); }
.gglr-tagline { font-family: 'Geist', sans-serif; font-size: 0.6rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.22em; color: var(--ink-soft); }
.gglr-nav ul { list-style: none; display: flex; gap: 1.6rem; margin: 0; padding: 0; align-items: center; }
.gglr-nav a { font-family: 'Geist', sans-serif; font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.13em; white-space: nowrap; }
.gglr-nav .current-menu-item > a, .gglr-nav a.gglr-here { color: var(--claret); }
.gglr-nav li.gglr-navsearch a { border-left: 1px solid var(--ink); padding-left: 1.6rem; }
.gglr-navtoggle { display: none; background: none; border: 1px solid var(--ink); padding: 0.45rem 0.8rem; cursor: pointer; font-family: 'Geist', sans-serif; text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.7rem; font-weight: 700; }

/* ============ Body wrap ============ */
.gglr-body { flex: 1; }

/* ============ 12-col scholarly grid ============ */
.gglr-grid { display: grid; grid-template-columns: repeat(12, 1fr); column-gap: 2rem; }
.gglr-col-margin { grid-column: span 2; }
.gglr-col-main   { grid-column: span 8; }
.gglr-col-margin-r { grid-column: span 2; }

/* ---- Lead story ---- */
.gglr-lead { padding: 4.5rem 0 3rem; }
.gglr-lead .gglr-lead-main { grid-column: 1 / span 10; }
.gglr-lead-kicker { margin-bottom: 1rem; display: block; }
.gglr-lead h1 { font-size: clamp(2.6rem, 6.4vw, 5.3rem); letter-spacing: -0.025em; margin: 0 0 2rem; }
.gglr-lead h1 a { color: var(--ink); }
.gglr-lead h1 a:hover { color: var(--claret); }
.gglr-lead-split { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: end; }
.gglr-lead-dek { font-family: 'Caslon Text', Georgia, serif; font-style: italic; font-size: 1.35rem; line-height: 1.45; color: #2c2a27; }
.gglr-lead-meta { font-family: 'Geist', sans-serif; }
.gglr-lead-meta .gglr-rule { width: 3rem; border-top: 1px solid var(--claret); margin: 0 0 1rem; }
.gglr-byline { font-size: 0.92rem; font-weight: 700; margin: 0 0 0.2rem; }
.gglr-byrole { font-size: 0.64rem; text-transform: uppercase; letter-spacing: 0.16em; color: var(--ink-soft); margin: 0 0 1.5rem; }

/* CTA — bordered, not a tinted pill */
.gglr-cta { display: inline-flex; align-items: center; gap: 0.9rem; font-family: 'Geist', sans-serif; font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.13em; border: 1px solid var(--ink); padding: 0.85rem 1.4rem; transition: background-color .15s, color .15s; }
.gglr-cta:hover { background: var(--claret); border-color: var(--claret); color: var(--parchment); }
.gglr-cta .gglr-arr { font-family: 'SrcCode', monospace; }

.gglr-rule-ink { border: 0; border-top: 1px solid var(--ink); margin: 0; }
.gglr-rule-hair { border: 0; border-top: 1px solid var(--hairline); margin: 0; }

/* ---- Recent Commentary ---- */
.gglr-commentary { padding: 4rem 0; }
.gglr-commentary .gglr-sec-label { grid-column: span 2; }
.gglr-sec-label h2 { font-family: 'Geist', sans-serif; font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.22em; position: sticky; top: 7rem; }
.gglr-cards { grid-column: span 10; display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem 3rem; }
.gglr-card { display: flex; flex-direction: column; }
.gglr-card-top { display: flex; align-items: flex-start; gap: 1rem; margin-bottom: 1.2rem; }
.gglr-card-num { font-family: 'SrcCode', monospace; font-size: 0.66rem; border: 1px solid var(--ink); border-radius: 50%; width: 1.5rem; height: 1.5rem; display: flex; align-items: center; justify-content: center; flex: none; }
.gglr-card-cite { font-family: 'Caslon Text', Georgia, serif; font-style: italic; font-size: 0.78rem; line-height: 1.4; color: var(--claret); flex: 1; }
.gglr-card h3 { font-family: 'Caslon Display', serif; font-size: 1.45rem; line-height: 1.1; margin: 0 0 0.7rem; }
.gglr-card h3 a { color: var(--ink); }
.gglr-card h3 a:hover { color: var(--claret); }
.gglr-card-blurb { font-family: 'Geist', sans-serif; font-size: 0.9rem; line-height: 1.55; color: var(--ink-soft); margin: 0 0 1.2rem; flex: 1; }
.gglr-card-foot { display: flex; align-items: baseline; justify-content: space-between; border-top: 1px solid var(--ink); padding-top: 0.7rem; }
.gglr-card-author { font-family: 'Geist', sans-serif; font-size: 0.62rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; }
.gglr-card-date { font-family: 'SrcCode', monospace; font-size: 0.62rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--ink-soft); }

/* ---- Masthead statement (editorial standfirst + engraved emblem) ---- */
.gglr-statement { padding: 2.4rem 0 2.2rem; }
.gglr-statement .gglr-wrap { display: grid; grid-template-columns: 1fr auto; gap: 3.5rem; align-items: center; }
.gglr-statement p { max-width: 52rem; margin: 0; font-family: 'Caslon Text', Georgia, serif; font-size: 1.18rem; line-height: 1.5; color: var(--ink-soft); }
.gglr-statement-emblem { color: var(--claret); flex: none; }
.gglr-emblem-svg { display: block; width: 132px; height: 132px; }

/* ---- Featured Analysis (flagship cornerstones with hero images) ---- */
.gglr-featured { padding: 3.5rem 0; }
.gglr-featured .gglr-sec-label { grid-column: span 2; }
.gglr-feat-wrap { grid-column: span 10; }
.gglr-feat-lead { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 2.6rem; align-items: center; padding-bottom: 2.6rem; margin-bottom: 2.6rem; border-bottom: 1px solid var(--ink); }
.gglr-feat-img, .gglr-feat-img-sm { display: block; overflow: hidden; }
.gglr-feat-img img, .gglr-feat-img-sm img { width: 100%; height: auto; display: block; transition: transform 0.5s ease; }
.gglr-feat-img:hover img, .gglr-feat-img-sm:hover img { transform: scale(1.03); }
.gglr-feat-body .gglr-kicker { display: block; margin-bottom: 0.8rem; }
.gglr-feat-lead h3 { font-family: 'Caslon Display', serif; font-size: clamp(1.7rem, 3vw, 2.3rem); line-height: 1.06; margin: 0 0 0.9rem; }
.gglr-feat-lead h3 a, .gglr-feat-item h3 a { color: var(--ink); }
.gglr-feat-lead h3 a:hover, .gglr-feat-item h3 a:hover { color: var(--claret); }
.gglr-feat-dek { font-family: 'Caslon Text', Georgia, serif; font-size: 1.08rem; line-height: 1.5; color: var(--ink-soft); margin: 0 0 1.1rem; }
.gglr-byline { font-family: 'Geist', sans-serif; font-size: 0.62rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: var(--ink); margin: 0; }
.gglr-feat-rest { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.4rem; }
.gglr-feat-item .gglr-feat-img-sm { margin-bottom: 0.9rem; }
.gglr-feat-item .gglr-kicker { display: block; margin-bottom: 0.5rem; }
.gglr-feat-item h3 { font-family: 'Caslon Display', serif; font-size: 1.28rem; line-height: 1.1; margin: 0; }

/* ============ The Tracker (dark legislative data block) ============ */
.gglr-tracker { background: var(--tracker); color: var(--parchment); padding: 5.5rem 0; }
/* atmospheric banner band at the top of the dark Tracker block (homepage + /case-tracker/) */
.gglr-tracker-banner { position: relative; width: 100%; aspect-ratio: 1536 / 460; max-height: 320px; margin: -1.5rem 0 3rem; background: var(--tracker) url('assets/images/tracker-banner.jpg') center 38% / cover no-repeat; border-bottom: 1px solid var(--claret); }
.gglr-tracker-banner::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(21,19,15,0.05) 0%, rgba(21,19,15,0.35) 55%, var(--tracker) 100%); }
.gglr-tracker .gglr-grid { margin-bottom: 3rem; align-items: end; }
.gglr-tracker-head { grid-column: span 6; }
.gglr-tracker-head h1 { color: var(--parchment); font-size: clamp(2.2rem, 4vw, 3.2rem); text-transform: uppercase; letter-spacing: -0.01em; margin: 0 0 0.6rem; }
.gglr-tracker-head .gglr-kicker { color: var(--claret); }
.gglr-tracker-sys { grid-column: span 6; text-align: right; font-family: 'SrcCode', monospace; font-size: 0.66rem; text-transform: uppercase; letter-spacing: 0.16em; color: #6f6a60; align-self: end; }
.gglr-tracker-table { width: 100%; border-collapse: collapse; border-top: 1px solid #3a352c; }
.gglr-tracker-table thead th { font-family: 'Geist', sans-serif; font-size: 0.6rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.16em; color: #6f6a60; text-align: left; padding: 1.4rem 1.5rem 1.4rem 0; }
.gglr-tracker-table thead th.gglr-num { text-align: right; padding-right: 0; }
.gglr-tracker-table tbody tr { border-top: 1px solid #3a352c; transition: background-color .15s; }
.gglr-tracker-table tbody tr:hover { background: var(--tracker-2); }
.gglr-tracker-table td { padding: 1.6rem 1.5rem 1.6rem 0; vertical-align: top; }
.gglr-tracker-ref { font-family: 'Caslon Display', serif; font-size: 1.18rem; display: block; margin-bottom: 0.25rem; }
.gglr-tracker-ref a { color: var(--parchment); }
.gglr-tracker-ref a:hover { color: #d8b7a8; }
.gglr-tracker-sub { font-size: 0.74rem; color: #8a8479; }
.gglr-tracker-tag { font-family: 'Geist', sans-serif; font-size: 0.6rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; border: 1px solid #4a443a; padding: 0.25rem 0.5rem; display: inline-block; }
.gglr-tracker-status { font-family: 'SrcCode', monospace; font-size: 0.66rem; text-transform: uppercase; letter-spacing: 0.06em; }
.gglr-st-pending { color: #c8745f; }
.gglr-st-progress { color: #9a948a; }
.gglr-st-passed { color: #4fae7c; }
.gglr-tracker-date { font-family: 'SrcCode', monospace; font-size: 0.72rem; text-align: right; padding-right: 0; color: #b8b2a6; }
.gglr-tracker-more { margin-top: 2.5rem; }
.gglr-tracker-more a { font-family: 'Geist', sans-serif; font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.13em; color: var(--parchment); border-bottom: 1px solid var(--claret); padding-bottom: 0.2rem; }
.gglr-tracker-more a:hover { color: #d8b7a8; }

/* ============ Article (single) ============ */
.gglr-article { padding: 3.5rem 0 4rem; }
.gglr-article .gglr-art-main { grid-column: 3 / span 7; }
.gglr-article .gglr-art-rail { grid-column: 10 / span 3; }
.gglr-art-head { margin-bottom: 2.5rem; }
.gglr-eyebrow { font-family: 'SrcCode', monospace; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.12em; color: var(--claret); display: block; margin-bottom: 1rem; }
.gglr-art-head h1 { font-size: clamp(2.1rem, 4.4vw, 3.4rem); letter-spacing: -0.02em; margin: 0 0 1.4rem; }
.gglr-art-dek { font-family: 'Caslon Text', Georgia, serif; font-style: italic; font-size: 1.3rem; line-height: 1.45; color: #2c2a27; margin: 0 0 1.6rem; }

/* prose — long-form Caslon Text */
.gglr-prose { font-family: 'Caslon Text', Georgia, serif; font-size: 1.16rem; line-height: 1.72; }
.gglr-prose p { margin: 0 0 1.3rem; }
.gglr-prose h2 { font-family: 'Caslon Display', serif; font-size: 1.85rem; margin: 2.6rem 0 1rem; letter-spacing: -0.01em; }
.gglr-prose h3 { font-family: 'Caslon Display', serif; font-size: 1.4rem; margin: 2rem 0 0.7rem; }
.gglr-prose a { color: var(--claret); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.gglr-prose ul, .gglr-prose ol { padding-left: 1.3rem; margin: 0 0 1.3rem; }
.gglr-prose li { margin-bottom: 0.45rem; }
.gglr-prose blockquote { margin: 2rem 0; padding-left: 1.5rem; border-left: 2px solid var(--claret); font-style: italic; color: #2c2a27; }

/* inline marginalia aside (floats into the right rail on wide screens) */
.gglr-prose .gglr-aside { font-family: 'Caslon Text', Georgia, serif; font-style: italic; font-size: 0.82rem; line-height: 1.5; color: var(--claret); border-top: 1px solid var(--claret); padding-top: 0.45rem; margin: 0 0 1.6rem; }
@media (min-width: 1000px) {
  .gglr-prose .gglr-aside { float: right; clear: right; width: 14rem; margin-right: -17rem; margin-top: 0.4rem; }
}

/* scholarly "note" — custom plate, NOT a border-l-4 tint callout (anti-slop) */
.gglr-note { margin: 2.4rem 0; padding: 1.3rem 1.5rem; background: var(--paper); border: 1px solid var(--ink); box-shadow: 5px 5px 0 var(--claret); font-family: 'Geist', sans-serif; font-size: 0.96rem; line-height: 1.6; }
.gglr-note .gglr-note-head { font-family: 'Caslon Display', serif; font-size: 1.05rem; letter-spacing: 0.01em; display: block; margin-bottom: 0.5rem; }
.gglr-note p:last-child { margin-bottom: 0; }

/* lead hero image (flagship articles only — gated on featured image) */
.gglr-hero { margin: 0 0 2.6rem; }
.gglr-hero img { display: block; width: 100%; height: auto; border: 1px solid var(--ink); box-shadow: 7px 7px 0 var(--claret); }
.gglr-hero figcaption { font-family: 'SrcCode', monospace; font-size: 0.62rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink-soft); margin-top: 0.7rem; }

/* data infographic figure (hand-coded SVG inside .gglr-prose) */
.gglr-prose .gglr-fig { margin: 2.8rem 0; padding: 1.4rem 1.5rem; background: var(--paper); border: 1px solid var(--ink); }
.gglr-prose .gglr-fig svg { display: block; width: 100%; height: auto; max-width: 640px; margin: 0 auto; }
.gglr-prose .gglr-fig figcaption { font-family: 'Geist', sans-serif; font-size: 0.74rem; line-height: 1.45; color: var(--ink-soft); margin-top: 1rem; padding-top: 0.7rem; border-top: 1px solid var(--hairline); }
.gglr-prose .gglr-fig figcaption .gglr-fig-src { color: var(--claret); }

/* article rail (citations / further reading) */
.gglr-art-rail { font-family: 'Geist', sans-serif; }
.gglr-rail-box { position: sticky; top: 7rem; }
.gglr-rail-box h4 { font-family: 'Geist', sans-serif; font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.16em; color: var(--claret); border-top: 1px solid var(--ink); padding-top: 0.7rem; margin: 0 0 1rem; }
.gglr-rail-box ul { list-style: none; margin: 0 0 2rem; padding: 0; }
.gglr-rail-box li { font-family: 'Caslon Text', Georgia, serif; font-style: italic; font-size: 0.84rem; line-height: 1.45; color: var(--claret); padding: 0.5rem 0; border-bottom: 1px solid var(--hairline); }

/* EEAT author box */
.gglr-author { display: flex; gap: 1.3rem; align-items: flex-start; margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--ink); }
.gglr-author-avatar { width: 72px; height: 72px; flex: none; border-radius: 50%; overflow: hidden; border: 1px solid var(--hairline); }
.gglr-author-avatar img { width: 100%; height: 100%; object-fit: cover; }
.gglr-author-name { font-family: 'Caslon Display', serif; font-size: 1.2rem; margin: 0 0 0.15rem; }
.gglr-author-role { font-family: 'Geist', sans-serif; font-size: 0.62rem; text-transform: uppercase; letter-spacing: 0.14em; color: var(--claret); margin: 0 0 0.6rem; }
.gglr-author-bio { font-family: 'Geist', sans-serif; font-size: 0.9rem; line-height: 1.55; color: var(--ink-soft); margin: 0; }

/* ============ FAQ — sharp ledger, custom +/− (anti-slop, no tint/border-l-4) ============ */
.gglr-faq { margin: 3rem 0 0; }
.gglr-faq > h2 { font-family: 'Caslon Display', serif; font-size: 1.7rem; margin: 0 0 1.2rem; }
.gglr-faq details { border-top: 1px solid var(--ink); }
.gglr-faq details:last-of-type { border-bottom: 1px solid var(--ink); }
.gglr-faq summary { cursor: pointer; padding: 1rem 0; list-style: none; font-family: 'Caslon Display', serif; font-size: 1.18rem; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.gglr-faq summary::-webkit-details-marker { display: none; }
.gglr-faq summary::after { content: '+'; font-family: 'SrcCode', monospace; color: var(--claret); font-size: 1.3rem; line-height: 1; }
.gglr-faq details[open] summary::after { content: '\2212'; }
.gglr-faq details > p, .gglr-faq details > ul { font-family: 'Geist', sans-serif; font-size: 0.98rem; line-height: 1.6; color: #36332f; margin: 0 0 1rem; padding-right: 2rem; }

/* ============ Generic page / archive prose ============ */
.gglr-page { padding: 3.5rem 0 4rem; }
.gglr-page .gglr-col-main { grid-column: 3 / span 8; }
.gglr-page h1 { font-size: clamp(2rem, 4vw, 3rem); margin: 0 0 1.5rem; letter-spacing: -0.02em; }
.gglr-postitem { padding: 1.6rem 0; border-bottom: 1px solid var(--hairline); }
.gglr-postitem h2 { font-family: 'Caslon Display', serif; font-size: 1.5rem; margin: 0 0 0.4rem; }
.gglr-postitem .gglr-pi-meta { font-family: 'SrcCode', monospace; font-size: 0.66rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink-soft); }

/* search form */
.gglr-searchform { display: flex; gap: 0.6rem; margin: 1.5rem 0; }
.gglr-searchform input[type=search] { flex: 1; padding: 0.7rem 0.9rem; border: 1px solid var(--ink); background: var(--paper); font-family: 'Geist', sans-serif; font-size: 0.95rem; }
.gglr-searchform button { padding: 0.7rem 1.3rem; border: 1px solid var(--ink); background: var(--ink); color: var(--parchment); font-family: 'Geist', sans-serif; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; cursor: pointer; }

/* ============ Footer ============ */
.gglr-foot { background: var(--parchment); border-top: 1px solid var(--ink); padding: 4.5rem 0 3rem; }
.gglr-foot-grid { display: grid; grid-template-columns: 4fr 8fr; gap: 3rem; }
.gglr-foot-brand .gglr-foot-mark { font-family: 'Caslon Display', serif; font-size: 1.6rem; text-transform: uppercase; display: block; margin-bottom: 1.4rem; }
.gglr-foot-desc { font-family: 'Geist', sans-serif; font-size: 0.62rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.18em; line-height: 1.7; color: var(--ink-soft); margin-bottom: 2.5rem; }
.gglr-foot-social a { display: block; font-family: 'Geist', sans-serif; font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; text-decoration: underline; text-underline-offset: 3px; margin-bottom: 0.7rem; }
.gglr-foot-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.5rem; }
.gglr-foot-col h4 { font-family: 'Geist', sans-serif; font-size: 0.62rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.16em; color: var(--claret); margin: 0 0 1.4rem; }
.gglr-foot-col ul { list-style: none; margin: 0; padding: 0; }
.gglr-foot-col li { margin-bottom: 0.7rem; }
.gglr-foot-col a { font-family: 'Geist', sans-serif; font-size: 0.84rem; }
.gglr-foot-colophon { font-family: 'SrcCode', monospace; font-size: 0.7rem; line-height: 1.6; color: var(--ink-soft); align-self: end; }
.gglr-foot-base { border-top: 1px solid var(--hairline); margin-top: 3rem; padding-top: 1.5rem; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; font-family: 'SrcCode', monospace; font-size: 0.66rem; color: var(--ink-soft); }

/* ============ Breadcrumbs ============ */
.gglr-crumbs { font-family: 'SrcCode', monospace; font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.08em; margin: 0 0 1.5rem; }
.gglr-crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; }
.gglr-crumbs li { color: var(--ink-soft); }
.gglr-crumbs li + li::before { content: '\203A'; margin: 0 0.5rem; color: var(--claret); }
.gglr-crumbs a { color: var(--claret); }

/* ============ Responsive ============ */
@media (max-width: 1080px) {
  .gglr-col-margin, .gglr-col-margin-r { display: none; }
  .gglr-col-main { grid-column: 1 / -1; }
  .gglr-lead .gglr-lead-main { grid-column: 1 / -1; }
  .gglr-commentary .gglr-sec-label { grid-column: 1 / -1; margin-bottom: 1.5rem; }
  .gglr-sec-label h2 { position: static; }
  .gglr-cards { grid-column: 1 / -1; }
  .gglr-featured .gglr-sec-label { grid-column: 1 / -1; margin-bottom: 1.5rem; }
  .gglr-feat-wrap { grid-column: 1 / -1; }
  .gglr-article .gglr-art-main { grid-column: 1 / -1; }
  .gglr-article .gglr-art-rail { grid-column: 1 / -1; margin-top: 2.5rem; }
  .gglr-prose .gglr-aside { float: none; width: auto; margin: 1.6rem 0; }
  .gglr-page .gglr-col-main { grid-column: 1 / -1; }
  .gglr-tracker-head, .gglr-tracker-sys { grid-column: 1 / -1; text-align: left; }
}
@media (max-width: 800px) {
  .gglr-wrap { padding: 0 1.25rem; }
  .gglr-navtoggle { display: inline-block; }
  .gglr-nav { display: none; width: 100%; }
  .gglr-nav.gglr-open { display: block; }
  .gglr-nav ul { flex-direction: column; align-items: flex-start; gap: 0.2rem; padding-top: 1rem; width: 100%; }
  .gglr-nav li.gglr-navsearch a { border-left: 0; padding-left: 0; }
  .gglr-head-row { flex-wrap: wrap; }
  .gglr-lead-split { grid-template-columns: 1fr; gap: 2rem; }
  .gglr-cards { grid-template-columns: 1fr; }
  .gglr-feat-lead { grid-template-columns: 1fr; gap: 1.4rem; }
  .gglr-feat-rest { grid-template-columns: 1fr; gap: 2rem; }
  .gglr-statement .gglr-wrap { grid-template-columns: 1fr; gap: 1.6rem; }
  .gglr-statement-emblem { display: none; }
  .gglr-statement p { font-size: 1.08rem; }
  .gglr-foot-grid { grid-template-columns: 1fr; }
  .gglr-foot-cols { grid-template-columns: 1fr 1fr; }
  .gglr-tracker-table thead { display: none; }
  .gglr-tracker-table tbody tr { display: grid; grid-template-columns: 1fr auto; gap: 0.3rem 1rem; padding: 1.2rem 0; }
  .gglr-tracker-table td { padding: 0; }
  .gglr-tracker-date { text-align: left; }
}

/* ============ Accessibility ============ */
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible {
  outline: 3px solid var(--claret); outline-offset: 2px;
}
.gglr-tracker a:focus-visible { outline-color: var(--parchment); }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}
