/* ==========================================================================
   durgadasuikey.com — design system
   Palette: Deep Indigo · Warm Sand · Terracotta · Muted Sage · Charcoal · Cream
   ========================================================================== */

:root {
  /* Colour tokens ------------------------------------------------------- */
  --indigo-950: #12152b;
  --indigo-900: #1b1f3b;
  --indigo-800: #252a4f;
  --indigo-700: #343a68;
  --indigo-200: #c7c9dc;

  --sand-50:  #fbf7f0;  /* soft cream */
  --sand-100: #f4ecdf;  /* primary reading surface */
  --sand-200: #ebdfcb;
  --sand-300: #dccaa9;

  --terracotta:       #b5573a;  /* rules, marks, large type */
  --terracotta-ink:   #97462d;  /* small text on sand (AA) */
  --terracotta-soft:  #e3a083;  /* accents on indigo (AA) */

  --sage:       #8a9a7b;
  --sage-ink:   #4f5c44;   /* small text on sand (AA) */
  --sage-soft:  #d6dccb;
  --sage-wash:  #e6e9dc;

  --charcoal:      #25241f;
  --charcoal-soft: #4d4a42;
  --line:          rgba(37, 36, 31, .16);
  --line-strong:   rgba(37, 36, 31, .32);
  --line-light:    rgba(251, 247, 240, .18);

  /* Semantic */
  --bg: var(--sand-100);
  --surface: var(--sand-50);
  --text: var(--charcoal);
  --text-muted: var(--charcoal-soft);
  --accent: var(--terracotta);
  --focus: #2f5bd3;

  /* Typography */
  --font-display: "Newsreader", "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  --font-sans: "Instrument Sans", "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif;

  --fs-body: clamp(1rem, .96rem + .22vw, 1.125rem);      /* 16 → 18px */
  --fs-small: .9rem;
  --fs-meta: .78rem;
  --fs-h1: clamp(2.35rem, 1.7rem + 2.6vw, 4.1rem);
  --fs-h2: clamp(1.75rem, 1.4rem + 1.4vw, 2.65rem);
  --fs-h3: clamp(1.25rem, 1.12rem + .55vw, 1.6rem);
  --fs-lede: clamp(1.2rem, 1.06rem + .6vw, 1.55rem);

  /* Layout */
  --wrap: 1320px;
  --gutter: clamp(16px, 4vw, 48px);
  --section-y: clamp(64px, 5rem + 3vw, 136px);
  --bar-h: 68px;
  --nav-h: 52px;
  --radius: 2px;

  --ease: cubic-bezier(.2, .7, .2, 1);
}

/* ---------- Reset / base ------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: calc(var(--nav-h) + 24px); }
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-sans);
  font-size: var(--fs-body);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
@supports (overflow-x: clip) { body { overflow-x: clip; } }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .18em; }
p { margin: 0 0 1.1em; }
h1, h2, h3, h4 { font-family: var(--font-display); font-weight: 500; line-height: 1.12; margin: 0 0 .5em; letter-spacing: -.01em; color: inherit; text-wrap: balance; }
h1 { font-size: var(--fs-h1); }
h2 { font-size: var(--fs-h2); }
h3 { font-size: var(--fs-h3); line-height: 1.25; }
h4 { font-size: 1.1rem; font-family: var(--font-sans); font-weight: 600; letter-spacing: 0; }
ul, ol { margin: 0; padding: 0; }
button, input, select, textarea { font: inherit; color: inherit; }
abbr[title] { text-decoration: none; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; border-radius: 1px; }
.on-dark :focus-visible, .masthead :focus-visible, .site-footer :focus-visible { outline-color: #f2c14e; }
::selection { background: var(--terracotta); color: var(--sand-50); }

.visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; left: 12px; top: -100px; z-index: 200; background: var(--indigo-900); color: var(--sand-50); padding: 12px 18px; font-weight: 600; text-decoration: none; }
.skip-link:focus { top: 12px; }

.wrap { width: 100%; max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gutter); }
.narrow { max-width: 42rem; }
.section { padding-block: var(--section-y); position: relative; }
.section--tight { padding-block: clamp(48px, 3rem + 2vw, 88px); }
.on-dark { background: var(--indigo-900); color: var(--sand-100); }
.on-dark .muted, .on-dark p { color: rgba(244, 236, 223, .86); }
.on-cream { background: var(--sand-50); }
.on-sage { background: var(--sage-wash); }

/* ---------- Typographic utilities -------------------------------------- */
.eyebrow {
  display: inline-flex; align-items: center; gap: .75rem;
  font-family: var(--font-sans); font-size: var(--fs-meta); font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase; color: var(--terracotta-ink);
  margin: 0 0 1.4rem;
}
.eyebrow::before { content: ""; width: 32px; height: 2px; background: var(--terracotta); flex: none; }
.on-dark .eyebrow { color: var(--terracotta-soft); }
.on-dark .eyebrow::before { background: var(--terracotta-soft); }
.eyebrow--plain::before { display: none; }

.lede { font-family: var(--font-display); font-size: var(--fs-lede); line-height: 1.5; font-weight: 400; color: var(--text); }
.on-dark .lede { color: var(--sand-100); }
.muted { color: var(--text-muted); }
.meta { font-size: var(--fs-meta); letter-spacing: .08em; text-transform: uppercase; font-weight: 600; color: var(--text-muted); }
.serif { font-family: var(--font-display); }
.num { font-family: var(--font-display); font-variant-numeric: lining-nums tabular-nums; }
.dropcap::first-letter { font-family: var(--font-display); float: left; font-size: 3.6em; line-height: .86; padding: .06em .12em 0 0; color: var(--terracotta); }

.prose { max-width: 40rem; }
.prose p { color: var(--text); }
.prose h3 { margin-top: 2.2rem; }
.prose ul { padding-left: 1.2rem; margin: 0 0 1.2em; }
.prose li { margin-bottom: .45em; }
.prose li::marker { color: var(--terracotta); }

.source-note { font-size: var(--fs-small); color: var(--text-muted); line-height: 1.6; }
.source-note a { color: inherit; }
.on-dark .source-note { color: rgba(244, 236, 223, .72); }

/* Links & buttons */
.link-arrow {
  display: inline-flex; align-items: center; gap: .6rem;
  font-weight: 600; font-size: .95rem; text-decoration: none; letter-spacing: .01em;
  border-bottom: 1px solid currentColor; padding-bottom: 3px;
  transition: gap .3s var(--ease), color .2s;
}
.link-arrow svg { width: 16px; height: 16px; flex: none; }
.link-arrow:hover { gap: .95rem; color: var(--terracotta-ink); }
.on-dark .link-arrow:hover { color: var(--terracotta-soft); }

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .6rem;
  min-height: 48px; padding: .8rem 1.5rem;
  font-weight: 600; font-size: .95rem; letter-spacing: .02em; text-decoration: none;
  border: 1px solid var(--indigo-900); background: var(--indigo-900); color: var(--sand-50);
  border-radius: var(--radius); cursor: pointer;
  transition: background .25s, color .25s, border-color .25s;
}
.btn:hover { background: var(--terracotta-ink); border-color: var(--terracotta-ink); }
.btn--ghost { background: transparent; color: var(--indigo-900); }
.btn--ghost:hover { background: var(--indigo-900); color: var(--sand-50); border-color: var(--indigo-900); }
.on-dark .btn { background: var(--sand-100); color: var(--indigo-900); border-color: var(--sand-100); }
.on-dark .btn:hover { background: var(--terracotta-soft); border-color: var(--terracotta-soft); }
.on-dark .btn--ghost { background: transparent; color: var(--sand-100); border-color: rgba(244,236,223,.5); }
.on-dark .btn--ghost:hover { background: var(--sand-100); color: var(--indigo-900); }

/* Figures — images are never cropped: natural aspect ratio, full frame */
.figure { margin: 0; }
.figure img { width: 100%; height: auto; background: var(--sand-200); }
.figure figcaption { margin-top: .8rem; font-size: var(--fs-small); line-height: 1.55; color: var(--text-muted); padding-left: .9rem; border-left: 2px solid var(--terracotta); }
.on-dark .figure figcaption { color: rgba(244, 236, 223, .75); border-left-color: var(--terracotta-soft); }
.contain-box { background: var(--sand-200); display: flex; align-items: center; justify-content: center; }
.contain-box img { width: 100%; height: 100%; object-fit: contain; }

/* ==========================================================================
   Masthead — two-tier sticky header. The upper bar scrolls away; the
   navigation rail stays pinned (negative sticky offset = no layout jump).
   ========================================================================== */
.masthead {
  position: sticky; top: calc(-1 * var(--bar-h)); z-index: 100;
  background: rgba(244, 236, 223, .94);
  -webkit-backdrop-filter: saturate(140%) blur(10px);
  backdrop-filter: saturate(140%) blur(10px);
  border-bottom: 1px solid var(--line);
  transition: box-shadow .35s var(--ease), background .35s;
}
.masthead.is-compact { box-shadow: 0 10px 30px -18px rgba(27, 31, 59, .45); background: rgba(251, 247, 240, .97); }
.masthead__bar { height: var(--bar-h); display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
.brand { display: inline-flex; align-items: center; gap: .85rem; text-decoration: none; color: var(--indigo-900); min-width: 0; }
.brand__mark {
  width: 40px; height: 40px; flex: none; display: grid; place-items: center;
  background: var(--indigo-900); color: var(--sand-100);
  font-family: var(--font-display); font-style: italic; font-size: 1.05rem; letter-spacing: .02em;
  position: relative;
}
.brand__mark::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--terracotta); }
.brand__text { display: flex; flex-direction: column; line-height: 1.15; min-width: 0; }
.brand__name { font-family: var(--font-display); font-size: 1.28rem; font-weight: 500; letter-spacing: -.005em; white-space: nowrap; }
.brand__role { font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--text-muted); font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.masthead__meta { display: flex; align-items: center; gap: 1.75rem; font-size: .82rem; color: var(--text-muted); }
.masthead__meta .dot { width: 5px; height: 5px; border-radius: 50%; background: var(--sage); display: inline-block; margin-right: .55rem; vertical-align: middle; }
.masthead__cta { font-weight: 600; color: var(--indigo-900); text-decoration: none; border-bottom: 1px solid var(--terracotta); padding-bottom: 2px; }
.masthead__cta:hover { color: var(--terracotta-ink); }

.nav-rail { border-top: 1px solid var(--line); }
.primary-nav ul { list-style: none; display: flex; justify-content: space-between; align-items: stretch; height: var(--nav-h); }
.primary-nav li { display: flex; }
.primary-nav a {
  position: relative; display: flex; align-items: center; gap: .45rem;
  padding: 0 .15rem; font-size: .88rem; font-weight: 500; color: var(--charcoal);
  text-decoration: none; white-space: nowrap; transition: color .2s;
}
.primary-nav a .idx { font-family: var(--font-display); font-style: italic; font-size: .8rem; color: var(--sage-ink); }
.primary-nav a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 3px;
  background: var(--terracotta); transform: scaleX(0); transform-origin: left; transition: transform .35s var(--ease);
}
.primary-nav a:hover { color: var(--terracotta-ink); }
.primary-nav a:hover::after { transform: scaleX(.35); }
.primary-nav a[aria-current="page"] { color: var(--indigo-900); font-weight: 600; }
.primary-nav a[aria-current="page"]::after { transform: scaleX(1); }
.primary-nav a[aria-current="page"] .idx { color: var(--terracotta-ink); }
.nav-panel__foot { display: none; }

.nav-toggle {
  display: none; align-items: center; gap: .7rem; min-height: 44px; padding: 0 .9rem 0 1rem;
  background: var(--indigo-900); color: var(--sand-50); border: 0; border-radius: var(--radius);
  font-weight: 600; font-size: .85rem; letter-spacing: .08em; text-transform: uppercase; cursor: pointer;
}
.nav-toggle__bars { width: 20px; height: 12px; position: relative; display: inline-block; }
.nav-toggle__bars::before, .nav-toggle__bars::after, .nav-toggle__bars span {
  content: ""; position: absolute; left: 0; right: 0; height: 2px; background: currentColor; transition: transform .3s var(--ease), opacity .2s, top .3s var(--ease);
}
.nav-toggle__bars::before { top: 0; }
.nav-toggle__bars span { top: 5px; }
.nav-toggle__bars::after { top: 10px; }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::before { top: 5px; transform: rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::after { top: 5px; transform: rotate(-45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars span { opacity: 0; }

@media (max-width: 1199.98px) {
  :root { --bar-h: 64px; }
  .masthead { top: 0; }
  .masthead__meta { display: none; }
  .nav-toggle { display: inline-flex; }
  .nav-rail { border-top: 0; }
  .nav-rail > .wrap { padding: 0; }
  .primary-nav {
    position: fixed; left: 0; right: 0; top: var(--bar-h); bottom: 0; z-index: 99;
    background: var(--indigo-900); color: var(--sand-100);
    overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain;
    padding: 8px var(--gutter) 40px;
    visibility: hidden; opacity: 0; transform: translateY(-8px);
    transition: opacity .3s var(--ease), transform .3s var(--ease), visibility 0s linear .3s;
  }
  .primary-nav.is-open { visibility: visible; opacity: 1; transform: none; transition: opacity .3s var(--ease), transform .3s var(--ease), visibility 0s; }
  .primary-nav ul { display: block; height: auto; max-width: 640px; margin: 0 auto; }
  .primary-nav li { display: block; border-bottom: 1px solid var(--line-light); }
  .primary-nav a { color: var(--sand-100); font-family: var(--font-display); font-size: 1.35rem; font-weight: 400; padding: .85rem 0; min-height: 52px; gap: 1rem; }
  .primary-nav a .idx { font-size: .85rem; color: var(--terracotta-soft); width: 1.6rem; font-family: var(--font-sans); font-style: normal; font-weight: 600; letter-spacing: .06em; }
  .primary-nav a::after { display: none; }
  .primary-nav a:hover, .primary-nav a[aria-current="page"] { color: var(--terracotta-soft); }
  .primary-nav a[aria-current="page"] { font-weight: 500; }
  .primary-nav a[aria-current="page"]::before { content: ""; position: absolute; right: 0; width: 8px; height: 8px; border-radius: 50%; background: var(--terracotta-soft); }
  .nav-panel__foot { display: block; max-width: 640px; margin: 2rem auto 0; font-size: .92rem; color: rgba(244,236,223,.8); }
  .nav-panel__foot a { color: var(--sand-100); }
  body.nav-open { overflow: hidden; }
}
@media (max-width: 420px) {
  .brand__role { display: none; }
  .brand__name { font-size: 1.15rem; }
  .brand__mark { width: 36px; height: 36px; font-size: .95rem; }
  .nav-toggle__label { display: none; }
  .nav-toggle { padding: 0 .85rem; }
}

/* ==========================================================================
   Page header (inner pages)
   ========================================================================== */
.page-head { padding-top: clamp(48px, 3rem + 3vw, 112px); padding-bottom: clamp(40px, 2rem + 2vw, 72px); border-bottom: 1px solid var(--line); }
.page-head__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem; align-items: end; }
.page-head h1 { margin-bottom: 0; max-width: 18ch; }
.page-head__intro { max-width: 38rem; }
.page-head__intro p:last-child { margin-bottom: 0; }
.crumbs { font-size: .82rem; color: var(--text-muted); margin-bottom: 1.5rem; }
.crumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem; }
.crumbs li + li::before { content: "/"; margin-right: .5rem; color: var(--sand-300); }
.crumbs a { text-decoration: none; color: var(--text-muted); }
.crumbs a:hover { color: var(--terracotta-ink); text-decoration: underline; }
@media (min-width: 900px) {
  .page-head__grid { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 4rem; }
}
.on-dark .crumbs, .on-dark .crumbs a { color: rgba(244,236,223,.75); }

/* Section heading pattern: index number + title */
.sec-head { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem 3rem; margin-bottom: clamp(2rem, 1.5rem + 2vw, 3.5rem); }
.sec-head__num { font-family: var(--font-display); font-size: .95rem; color: var(--terracotta-ink); font-style: italic; }
.on-dark .sec-head__num { color: var(--terracotta-soft); }
.sec-head h2 { margin: 0; max-width: 22ch; }
.sec-head p { max-width: 36rem; margin: 0; }
@media (min-width: 900px) { .sec-head--split { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: end; } }

/* Fact ledger (definition list) */
.ledger { display: grid; grid-template-columns: minmax(0, 1fr); border-top: 1px solid var(--line-strong); margin: 0; }
.ledger > div { display: grid; grid-template-columns: minmax(0, 11rem) minmax(0, 1fr); gap: 1rem; padding: .9rem 0; border-bottom: 1px solid var(--line); }
.ledger dt { font-size: var(--fs-meta); letter-spacing: .1em; text-transform: uppercase; font-weight: 600; color: var(--text-muted); padding-top: .2rem; }
.ledger dd { margin: 0; font-size: 1rem; line-height: 1.55; }
@media (max-width: 480px) { .ledger > div { grid-template-columns: minmax(0, 1fr); gap: .2rem; } }

/* Sources list */
.sources { counter-reset: src; list-style: none; font-size: var(--fs-small); color: var(--text-muted); line-height: 1.55; }
.sources li { counter-increment: src; position: relative; padding-left: 2.2rem; margin-bottom: .6rem; overflow-wrap: anywhere; }
.sources li::before { content: counter(src, decimal-leading-zero); position: absolute; left: 0; font-family: var(--font-display); font-style: italic; color: var(--terracotta-ink); }
.sources a { color: var(--charcoal); }

/* Disclosure note (programme vs personal role) */
.note-rule { border-left: 3px solid var(--sage); background: var(--sage-wash); padding: 1.1rem 1.3rem; font-size: .95rem; line-height: 1.6; }
.note-rule strong { color: var(--sage-ink); }

/* Next-page band */
.next-page { border-top: 1px solid var(--line); }
.next-page a { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 1.5rem; padding: clamp(36px, 2rem + 2vw, 64px) 0; text-decoration: none; }
.next-page .meta { display: block; margin-bottom: .4rem; }
.next-page .next-title { font-family: var(--font-display); font-size: var(--fs-h2); line-height: 1.1; }
.next-page .next-arrow { width: 56px; height: 56px; border: 1px solid var(--line-strong); border-radius: 50%; display: grid; place-items: center; transition: background .3s, color .3s, transform .3s var(--ease); }
.next-page .next-arrow svg { width: 20px; height: 20px; }
.next-page a:hover .next-arrow { background: var(--terracotta); color: var(--sand-50); border-color: var(--terracotta); transform: translateX(4px); }
.next-page a:hover .next-title { color: var(--terracotta-ink); }

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer { background: var(--indigo-950); color: var(--sand-100); padding-top: clamp(56px, 3rem + 3vw, 104px); }
.site-footer a { color: var(--sand-100); text-decoration: none; }
.site-footer a:hover { color: var(--terracotta-soft); text-decoration: underline; }
.footer-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.75rem; padding-bottom: 3.5rem; border-bottom: 1px solid var(--line-light); }
.footer-brand .brand { color: var(--sand-100); }
.footer-brand .brand__mark { background: var(--sand-100); color: var(--indigo-900); }
.footer-brand .brand__role { color: rgba(244,236,223,.7); }
.footer-brand p { margin-top: 1.25rem; font-size: .95rem; color: rgba(244,236,223,.78); max-width: 26rem; }
.footer-title { font-family: var(--font-sans); font-size: var(--fs-meta); letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: var(--terracotta-soft); margin: 0 0 1.1rem; }
.footer-links { list-style: none; columns: 2; column-gap: 1.5rem; font-size: .95rem; }
.footer-links li { break-inside: avoid; margin-bottom: .55rem; }
.footer-contact { font-style: normal; font-size: .95rem; line-height: 1.8; }
.footer-contact .label { display: block; font-size: .78rem; color: rgba(244,236,223,.65); letter-spacing: .06em; }
.footer-contact div + div { margin-top: .6rem; }
.social { list-style: none; display: flex; flex-wrap: wrap; gap: .6rem; }
.social a { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid var(--line-light); border-radius: 50%; transition: background .25s, border-color .25s, color .25s; }
.social a:hover { background: var(--terracotta-soft); border-color: var(--terracotta-soft); color: var(--indigo-950); text-decoration: none; }
.social svg { width: 18px; height: 18px; fill: currentColor; }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem 2rem; padding: 1.5rem 0 2rem; font-size: .85rem; color: rgba(244,236,223,.72); }
.footer-bottom a { color: var(--sand-100); text-decoration: underline; text-underline-offset: .2em; }
.footer-bottom button { background: none; border: 0; padding: 0; color: rgba(244,236,223,.72); text-decoration: underline; text-underline-offset: .2em; cursor: pointer; font-size: .85rem; }
.footer-bottom button:hover { color: var(--terracotta-soft); }
@media (min-width: 760px) { .footer-grid { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); } }
@media (min-width: 1100px) { .footer-grid { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1.1fr) minmax(0, 1fr) minmax(0, 1fr); } }

/* ==========================================================================
   Motion — content is visible by default. The hidden start state applies
   only once site.js confirms IntersectionObserver + motion are available.
   ========================================================================== */
.js-motion [data-reveal] { opacity: 0; transform: translateY(22px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.js-motion [data-reveal].is-in { opacity: 1; transform: none; }
.js-motion [data-reveal="rule"] { transform: none; }
.js-motion [data-reveal="rule"]::after { transform: scaleX(0); }
.js-motion [data-reveal="img"] { transform: none; clip-path: inset(0 0 100% 0); transition: clip-path 1.1s var(--ease), opacity .6s; }
.js-motion [data-reveal="img"].is-in { clip-path: inset(0 0 0 0); }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .js-motion [data-reveal] { opacity: 1 !important; transform: none !important; clip-path: none !important; }
}
@media print {
  .masthead, .site-footer, .nav-toggle, .next-page { display: none !important; }
  [data-reveal] { opacity: 1 !important; transform: none !important; clip-path: none !important; }
}

/* Desktop rail density: keep all 11 destinations on one line */
@media (min-width: 1200px) and (max-width: 1439.98px) {
  .primary-nav a .idx { display: none; }
}
@media (min-width: 1200px) and (max-width: 1599.98px) {
  .primary-nav .nav-extra { display: none; }
}
/* backdrop-filter creates a containing block for position:fixed children —
   disable it where the menu panel is a fixed overlay. */
@media (max-width: 1199.98px) {
  .masthead { -webkit-backdrop-filter: none; backdrop-filter: none; background: var(--sand-100); }
  .masthead.is-compact { background: var(--sand-50); }
}

/* ==========================================================================
   Shared page elements
   ========================================================================== */
.h-sources { font-size: 1.5rem; margin-bottom: 1.25rem; }
.h3-like { font-size: var(--fs-h3); }
sup { line-height: 0; font-size: .68em; }
sup a { text-decoration: none; color: var(--terracotta-ink); font-weight: 600; padding: 0 .1em; }
.on-dark sup a { color: var(--terracotta-soft); }
.pull { margin: 2rem 0; padding: 0 0 0 1.5rem; border-left: 3px solid var(--terracotta); }
.pull p { font-family: var(--font-display); font-size: clamp(1.3rem, 1.1rem + .8vw, 1.8rem); line-height: 1.35; font-style: italic; margin-bottom: .6rem; color: var(--indigo-900); }
.pull footer { font-size: var(--fs-small); color: var(--text-muted); }
.pull--small p { font-size: 1.2rem; }
.on-dark .pull p { color: var(--sand-100); }
.badge { display: inline-block; font-size: .68rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; padding: .2rem .5rem; border-radius: 2px; vertical-align: middle; margin-right: .35rem; }
.badge--official { background: var(--sage-soft); color: #2f3a28; }
.badge--press { background: var(--sand-200); color: #6b3420; border: 1px solid var(--sand-300); }
.on-dark .badge--official { background: rgba(214,220,203,.18); color: var(--sage-soft); }
.on-dark .badge--press { background: rgba(227,160,131,.14); color: var(--terracotta-soft); border-color: rgba(227,160,131,.35); }

/* ==========================================================================
   HOME
   ========================================================================== */
.hero { position: relative; padding-top: clamp(40px, 2rem + 3vw, 96px); padding-bottom: clamp(56px, 3rem + 3vw, 112px); overflow: hidden; }
.hero__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3rem; align-items: center; }
.hero__meta { display: flex; flex-wrap: wrap; gap: .4rem 0; font-size: var(--fs-meta); letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: var(--terracotta-ink); margin-bottom: 1.75rem; }
.hero__meta span + span::before { content: ""; display: inline-block; width: 18px; height: 1px; background: var(--terracotta); margin: 0 .75rem; vertical-align: middle; }
.hero__title { font-size: clamp(2.9rem, 1.9rem + 4.4vw, 5.6rem); line-height: .98; letter-spacing: -.025em; font-weight: 400; color: var(--indigo-900); margin-bottom: 1.5rem; }
.hero__title em { font-style: italic; color: var(--terracotta); font-weight: 400; }
.hero__role { font-family: var(--font-display); font-size: var(--fs-lede); line-height: 1.45; max-width: 30rem; color: var(--charcoal); margin-bottom: 2rem; }
.hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem; margin-bottom: 3rem; }
.hero__ledger { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; border-top: 1px solid var(--line-strong); }
.hero__ledger > div { padding: 1rem 1rem 1rem 0; border-bottom: 1px solid var(--line); }
.hero__ledger dt { font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: var(--text-muted); margin-bottom: .25rem; }
.hero__ledger dd { margin: 0; font-size: .98rem; }
.hero__portrait { position: relative; margin: 0; justify-self: center; width: min(100%, 440px); padding: 0 0 22px 22px; }
.hero__block { position: absolute; right: -22px; top: 22px; bottom: 0; left: 0; background: var(--indigo-900); z-index: 0; }
.hero__block::after { content: ""; position: absolute; left: 0; bottom: 0; width: 40%; height: 4px; background: var(--terracotta); }
.hero__portrait img { position: relative; z-index: 1; width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: contain; background: #eceae6; box-shadow: 0 24px 48px -28px rgba(18, 21, 43, .6); }
.hero__portrait figcaption { position: relative; z-index: 1; margin-top: .75rem; font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--sand-100); font-weight: 600; }
@media (min-width: 900px) {
  .hero__grid { grid-template-columns: minmax(0, 1.25fr) minmax(0, .85fr); gap: 4rem; }
  .hero__ledger { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .hero__portrait { justify-self: end; }
  .hero__block { right: -100vw; }
}

.intro__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem 4rem; }
.intro__h { font-size: 1rem; font-family: var(--font-sans); font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--text-muted); }
.intro__body .lede { font-size: clamp(1.4rem, 1.15rem + 1vw, 2.05rem); line-height: 1.38; color: var(--indigo-900); max-width: 44rem; }
.intro__cols { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 2.5rem; margin: 1.5rem 0 1.75rem; max-width: 52rem; }
@media (min-width: 760px) { .intro__cols { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1000px) { .intro__grid { grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); } }

.ruler { list-style: none; display: grid; grid-template-columns: minmax(0, 1fr); margin-bottom: 2.5rem; position: relative; }
.ruler li { position: relative; padding: 0 0 1.75rem 1.75rem; border-left: 1px solid var(--line-strong); }
.ruler li::before { content: ""; position: absolute; left: -5px; top: .5rem; width: 9px; height: 9px; border-radius: 50%; background: var(--sand-50); border: 2px solid var(--terracotta); }
.ruler__year { display: block; font-size: 1.9rem; line-height: 1.1; color: var(--indigo-900); margin-bottom: .3rem; }
.ruler__what { display: block; font-size: .96rem; color: var(--text-muted); max-width: 18rem; }
@media (min-width: 760px) {
  .ruler { grid-template-columns: repeat(4, minmax(0, 1fr)); row-gap: 2.5rem; }
  .ruler li { border-left: 0; border-top: 1px solid var(--line-strong); padding: 1.5rem 1.5rem 0 0; }
  .ruler li::before { top: -5px; left: 0; }
}

.home-parl__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3rem; align-items: start; }
.home-parl__text p { max-width: 34rem; }
.home-parl__figs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; border-top: 1px solid var(--line-light); }
.home-parl__figs > div { padding: 1.5rem 1rem 1.5rem 0; border-bottom: 1px solid var(--line-light); }
.home-parl__figs > div:nth-child(odd) { border-right: 1px solid var(--line-light); }
.home-parl__figs > div:nth-child(even) { padding-left: 1.5rem; }
.home-parl__figs dt { font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; color: rgba(244,236,223,.72); }
.home-parl__figs dd { margin: .4rem 0 0; font-size: clamp(2.6rem, 2rem + 2.4vw, 4rem); line-height: 1; color: var(--sand-50); font-family: var(--font-display); }
.home-parl__figs > div:first-child dd { color: var(--terracotta-soft); }
@media (min-width: 1000px) {
  .home-parl__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 5rem; }
  .home-parl__src { margin: 0; }
}

.home-ministry__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3rem; align-items: center; }
.prog-list { list-style: none; margin: 1.5rem 0 1.75rem; border-top: 1px solid var(--line-strong); }
.prog-list li { border-bottom: 1px solid var(--line); }
.prog-list a { display: grid; grid-template-columns: minmax(0, 1fr); gap: .15rem 1.5rem; padding: 1rem 0; text-decoration: none; transition: padding .3s var(--ease), color .2s; }
.prog-list a > span:first-child { font-family: var(--font-display); font-size: 1.25rem; color: var(--indigo-900); }
.prog-list__note { font-size: .88rem; color: var(--text-muted); }
.prog-list a:hover { padding-left: .5rem; }
.prog-list a:hover > span:first-child { color: var(--terracotta-ink); }
@media (min-width: 600px) { .prog-list a { grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; } }
@media (min-width: 1000px) { .home-ministry__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 5rem; } .home-ministry__fig { margin-top: 3rem; } }

.home-service__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem 4rem; }
.home-service__grid h2 { font-size: clamp(2rem, 1.5rem + 2vw, 3.2rem); color: var(--indigo-900); }
.home-service__body { max-width: 40rem; }
@media (min-width: 1000px) { .home-service__grid { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); } }

.areas { list-style: none; border-top: 1px solid var(--line-strong); }
.areas li { border-bottom: 1px solid var(--line); }
.areas a { display: grid; grid-template-columns: 3rem minmax(0, 1fr) 24px; gap: .25rem 1rem; align-items: baseline; padding: 1.3rem 0; text-decoration: none; transition: background .3s; }
.areas__n { font-size: 1rem; color: var(--terracotta-ink); font-style: italic; grid-row: span 2; }
.areas__t { font-family: var(--font-display); font-size: clamp(1.3rem, 1.1rem + .8vw, 1.85rem); color: var(--indigo-900); line-height: 1.2; }
.areas__d { grid-column: 2; font-size: .92rem; color: var(--text-muted); }
.areas__go { grid-column: 3; grid-row: 1; align-self: center; color: var(--terracotta); transition: transform .3s var(--ease); }
.areas__go svg { width: 22px; height: 22px; }
.areas a:hover { background: linear-gradient(90deg, rgba(181,87,58,.06), transparent 70%); }
.areas a:hover .areas__go { transform: translateX(4px); }
@media (min-width: 900px) {
  .areas a { grid-template-columns: 4rem minmax(0, 1.1fr) minmax(0, 1fr) 28px; }
  .areas__n { grid-row: auto; }
  .areas__d { grid-column: 3; }
  .areas__go { grid-column: 4; }
}

.dispatches { display: grid; grid-template-columns: minmax(0, 1fr); border-top: 2px solid var(--indigo-900); }
.dispatch { padding: 1.5rem 0; border-bottom: 1px solid var(--line); }
.dispatch h3 { font-size: 1.3rem; line-height: 1.3; }
.dispatch p:last-child { margin: 0; color: var(--text-muted); font-size: .95rem; }
.dispatch__meta { font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; color: var(--terracotta-ink); margin-bottom: .8rem; }
@media (min-width: 900px) {
  .dispatches { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .dispatch { padding: 1.75rem 2rem 0 0; border-bottom: 0; }
  .dispatch + .dispatch { padding-left: 2rem; border-left: 1px solid var(--line); }
}

.home-gallery { background: var(--indigo-950); color: var(--sand-100); }
.home-gallery__fig { margin: 0; max-width: 1600px; margin-inline: auto; }
.home-gallery__fig img { width: 100%; height: auto; }
.home-gallery__bar { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; align-items: end; padding-block: 2.5rem 3.5rem; }
.home-gallery__bar h2 { font-size: var(--fs-h3); margin-bottom: .5rem; }
.home-gallery__bar .muted { color: rgba(244,236,223,.8); max-width: 40rem; margin: 0; }
.home-gallery .sec-head__num { color: var(--terracotta-soft); }
.home-gallery .btn--ghost { color: var(--sand-100); border-color: rgba(244,236,223,.5); justify-self: start; }
.home-gallery .btn--ghost:hover { background: var(--sand-100); color: var(--indigo-900); }
@media (min-width: 760px) { .home-gallery__bar { grid-template-columns: minmax(0, 1fr) auto; } }

.home-contact__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.5rem; align-items: end; }
.home-contact__grid h2 { font-size: clamp(2.2rem, 1.6rem + 2.4vw, 3.6rem); }
.home-contact__details { display: grid; gap: 0; }
.home-contact__line { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: 1.1rem 0; border-bottom: 1px solid var(--line-light); text-decoration: none; font-family: var(--font-display); font-size: clamp(1.2rem, 1rem + .9vw, 1.7rem); overflow-wrap: anywhere; }
.home-contact__line .meta { color: rgba(244,236,223,.7); font-family: var(--font-sans); flex: none; }
.home-contact__line:hover { color: var(--terracotta-soft); }
.home-contact__details .btn { margin-top: 1.75rem; justify-self: start; }
@media (min-width: 1000px) { .home-contact__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 5rem; } }

/* ==========================================================================
   ABOUT
   ========================================================================== */
.about-profile__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3rem; align-items: start; }
.about-portrait { max-width: 420px; }
.about-portrait img { box-shadow: 18px 18px 0 var(--sage-soft); }
.about-portrait figcaption { margin-top: 1.6rem; }
.about-glance__title { font-size: var(--fs-h2); margin-bottom: .4rem; }
.about-glance .source-note { margin-bottom: 1.5rem; }
@media (min-width: 900px) {
  .about-profile__grid { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: 5rem; }
  .about-portrait { position: sticky; top: calc(var(--nav-h) + 32px); }
}
.chapter { display: grid; grid-template-columns: minmax(0, 1fr); gap: .5rem 3rem; padding: 2.5rem 0; border-top: 1px solid var(--line-strong); }
.chapter__year { font-size: clamp(3rem, 2.2rem + 3vw, 5.2rem); line-height: .9; color: var(--terracotta); margin: 0; letter-spacing: -.02em; }
.chapter__year--word { font-family: var(--font-display); font-style: italic; font-size: clamp(2.2rem, 1.8rem + 2vw, 3.6rem); color: var(--sage-ink); }
.chapter__body { max-width: 40rem; }
.chapter__body h3 { font-size: var(--fs-h3); color: var(--indigo-900); }
@media (min-width: 900px) { .chapter { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); } }
.interests__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem 5rem; }
.interests__lists { display: grid; gap: 2rem; }
.interests__lists h3 { margin-bottom: .6rem; }
.interests__words { font-family: var(--font-display); font-size: clamp(1.2rem, 1.05rem + .6vw, 1.55rem); line-height: 1.5; color: var(--indigo-900); margin: 0; }
@media (min-width: 900px) { .interests__grid { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); } }

/* ==========================================================================
   EARLY LIFE
   ========================================================================== */
.el-head { background: var(--sand-50); padding: clamp(40px, 2rem + 3vw, 96px) 0 clamp(48px, 3rem + 2vw, 88px); border-bottom: 1px solid var(--line); }
.el-head__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3rem; align-items: end; }
.el-head h1 { font-size: clamp(2.6rem, 1.8rem + 3.4vw, 4.8rem); color: var(--indigo-900); font-weight: 400; }
.el-head .lede { max-width: 32rem; }
.el-head__span { margin-top: 2rem; color: var(--terracotta-ink); }
.el-portrait { justify-self: center; width: min(100%, 400px); }
.el-portrait img { border: 10px solid #fff; box-shadow: 0 2px 0 var(--line), 0 30px 50px -30px rgba(18,21,43,.45); transform: rotate(-1.2deg); }
.el-portrait figcaption { margin-top: 1.5rem; }
@media (min-width: 900px) { .el-head__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: 5rem; } .el-portrait { justify-self: end; } }
@media (prefers-reduced-motion: reduce) { .el-portrait img { transform: none; } }

.archive-strip { background: var(--indigo-900); padding: 2.5rem 0; }
.slips { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.slip { background: var(--sand-50); padding: 1rem 1rem 1.1rem; display: flex; flex-direction: column; gap: .35rem; min-height: 132px; position: relative;
  background-image: repeating-linear-gradient(to bottom, transparent 0 27px, rgba(37,36,31,.07) 27px 28px); }
.slip::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--terracotta); }
.slip__no { font-size: .66rem; letter-spacing: .16em; text-transform: uppercase; color: var(--sage-ink); font-weight: 600; }
.slip__label { font-size: .8rem; color: var(--text-muted); }
.slip__value { font-family: var(--font-display); font-size: 1.3rem; line-height: 1.2; color: var(--indigo-900); margin-top: auto; }
.slips__note { color: rgba(244,236,223,.75); margin: 1rem 0 0; }
.slips__note sup a { color: var(--terracotta-soft); }
@media (min-width: 760px) { .slips { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .slips { grid-template-columns: repeat(5, minmax(0, 1fr)); } }

.el-story__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3rem; }
.el-rail { display: none; }
@media (min-width: 1000px) {
  .el-story__grid { grid-template-columns: 200px minmax(0, 1fr); gap: 5rem; }
  .el-rail { display: block; }
  .el-rail ol { list-style: none; position: sticky; top: calc(var(--nav-h) + 40px); border-left: 1px solid var(--line-strong); }
  .el-rail li { padding: .55rem 0 .55rem 1.2rem; font-size: .85rem; color: var(--text-muted); position: relative; }
  .el-rail li::before { content: ""; position: absolute; left: -4px; top: 1.05rem; width: 7px; height: 7px; background: var(--terracotta); border-radius: 50%; }
  .el-rail .num { display: block; font-size: 1.3rem; color: var(--indigo-900); line-height: 1.1; }
}
.el-prose { max-width: 38rem; }
.el-prose__h { font-size: var(--fs-h3); color: var(--indigo-900); margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--line); }
.el-prose__h:first-child { margin-top: 0; }
.el-prose__h .marker { display: block; font-family: var(--font-sans); font-size: .74rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--terracotta-ink); margin-bottom: .5rem; }
.el-fact { margin: 1.75rem 0; padding: 1.2rem 1.4rem; background: var(--sand-50); border: 1px solid var(--line); }
.el-fact p:last-child { margin: 0; font-size: .95rem; }
.el-fact .meta { margin-bottom: .4rem; color: var(--sage-ink); }

/* ==========================================================================
   POLITICAL JOURNEY
   ========================================================================== */
.pj-head { border-bottom: 0; }
.pj-head h1 { color: var(--sand-50); }
.pj-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin: 3rem 0 0; border-top: 1px solid var(--line-light); }
.pj-summary > div { padding: 1.1rem 1rem 1.1rem 0; border-bottom: 1px solid var(--line-light); }
.pj-summary dt { font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: var(--terracotta-soft); }
.pj-summary dd { margin: .3rem 0 0; font-family: var(--font-display); font-size: 1.2rem; color: var(--sand-50); }
@media (min-width: 900px) { .pj-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.pj-timeline { list-style: none; position: relative; }
.pj-timeline::before { content: ""; position: absolute; top: 0; bottom: 0; left: 7px; width: 2px; background: linear-gradient(var(--terracotta), var(--sage) 60%, var(--indigo-700)); }
.pj-entry { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); gap: .75rem; padding: 0 0 3.5rem 2.5rem; }
.pj-entry::before { content: ""; position: absolute; left: 0; top: .6rem; width: 16px; height: 16px; border-radius: 50%; background: var(--sand-100); border: 3px solid var(--terracotta); }
.pj-entry--major::before, .pj-entry--feature::before { background: var(--terracotta); }
.pj-entry--now::before { background: var(--indigo-900); border-color: var(--indigo-900); box-shadow: 0 0 0 5px rgba(27,31,59,.15); }
.pj-entry__date { display: flex; align-items: baseline; gap: .6rem; }
.pj-entry__date .num { font-size: clamp(2rem, 1.6rem + 1.6vw, 3rem); line-height: 1; color: var(--indigo-900); }
.pj-entry__nodate { font-size: 1.4rem !important; font-style: italic; color: var(--sage-ink) !important; }
.pj-entry__to { font-size: .85rem; font-weight: 600; letter-spacing: .06em; color: var(--terracotta-ink); text-transform: uppercase; }
.pj-entry__tag { font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: var(--sage-ink); margin-bottom: .5rem; }
.pj-entry__body { max-width: 44rem; }
.pj-entry__body h3 { color: var(--indigo-900); }
.pj-entry__body--split { max-width: none; display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem; }
.pj-tall { max-width: 260px; }
.pj-wide { margin: 1.25rem 0 1.5rem; }
.result-card { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; margin: 1.5rem 0 1rem; background: var(--sand-50); border: 1px solid var(--line); border-top: 3px solid var(--indigo-900); }
.result-card > div { padding: .9rem 1.2rem; border-bottom: 1px solid var(--line); display: flex; flex-direction: column; gap: .2rem; }
.result-card > div:last-child { border-bottom: 0; }
.result-card__big { font-family: var(--font-display); font-size: 2rem; color: var(--indigo-900); line-height: 1.1; }
@media (min-width: 700px) {
  .result-card { grid-template-columns: 1fr 1.4fr 1fr; }
  .result-card > div { border-bottom: 0; border-right: 1px solid var(--line); }
  .result-card > div:last-child { border-right: 0; }
}
@media (min-width: 900px) {
  .pj-timeline::before { left: 200px; }
  .pj-entry { grid-template-columns: 170px minmax(0, 1fr); gap: 3.5rem; padding-left: 0; }
  .pj-entry::before { left: 193px; }
  .pj-entry__date { flex-direction: column; align-items: flex-end; text-align: right; gap: .3rem; }
  .pj-entry__body--split { grid-template-columns: minmax(0, 1fr) 240px; align-items: start; }
}
.constituency__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.5rem 5rem; }
.segments { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
.segments__group ul { list-style: none; border-top: 1px solid var(--line-strong); }
.segments__group li { padding: .7rem 0; border-bottom: 1px solid var(--line); font-family: var(--font-display); font-size: 1.2rem; display: flex; gap: 1rem; align-items: baseline; }
.segments__group li .num { font-size: .85rem; color: var(--sage-ink); font-family: var(--font-sans); font-weight: 600; min-width: 2rem; }
.segments__group h3 { margin-bottom: .5rem; }
@media (min-width: 700px) { .segments { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .constituency__grid { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); } }

/* ==========================================================================
   PARLIAMENTARY WORK
   ========================================================================== */
.pw-head__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.5rem; align-items: end; }
.pw-head h1 { color: var(--indigo-900); }
@media (min-width: 900px) { .pw-head__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 4rem; } }
.figures { display: grid; grid-template-columns: minmax(0, 1fr); border-top: 2px solid var(--indigo-900); }
.figures__item { padding: 1.75rem 0; border-bottom: 1px solid var(--line); }
.figures__num { display: block; font-size: clamp(3rem, 2.4rem + 2.6vw, 4.6rem); line-height: 1; color: var(--indigo-900); }
.figures__num small { font-size: .5em; margin-left: .05em; }
.figures__label { display: block; margin: .5rem 0 .75rem; font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: var(--terracotta-ink); }
.figures__note { font-size: .92rem; color: var(--text-muted); margin: 0; max-width: 22rem; }
.bars { display: grid; gap: .55rem; margin-top: 1rem; max-width: 26rem; }
.bar { display: grid; grid-template-columns: 6.8rem minmax(0, 1fr) 2.8rem; gap: .75rem; align-items: center; font-size: .82rem; }
.bar__track { height: 10px; background: var(--sand-200); position: relative; }
.bar__fill { position: absolute; left: 0; top: 0; bottom: 0; background: var(--terracotta); }
.bar--muted .bar__fill { background: var(--sage); }
.bar__val { text-align: right; font-size: .95rem; }
@media (min-width: 760px) {
  .figures { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .figures__item { padding: 2rem 2rem 2rem 0; }
  .figures__item:nth-child(even) { padding-left: 2rem; border-left: 1px solid var(--line); }
}
@media (min-width: 1200px) {
  .figures { grid-template-columns: 1.5fr 1fr 1fr 1fr; }
  .figures__item { border-bottom: 0; padding: 2rem 2rem 0 0; }
  .figures__item + .figures__item { padding-left: 2rem; border-left: 1px solid var(--line); }
}
.pw-committees__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem 5rem; }
.roles { list-style: none; border-top: 1px solid var(--line-strong); }
.roles li { display: grid; grid-template-columns: minmax(0, 1fr); gap: .2rem 2rem; padding: 1rem 0; border-bottom: 1px solid var(--line); }
.roles__when { font-size: .95rem; color: var(--terracotta-ink); font-weight: 600; }
.roles__what { font-family: var(--font-display); font-size: 1.25rem; color: var(--indigo-900); }
.roles__current { background: linear-gradient(90deg, rgba(138,154,123,.18), transparent); }
.pw-committees__src { grid-column: 1 / -1; max-width: 50rem; margin: 0; }
@media (min-width: 640px) { .roles li { grid-template-columns: 11rem minmax(0, 1fr); align-items: baseline; } }
@media (min-width: 1000px) { .pw-committees__grid { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); } .pw-committees__src { grid-column: 2; } }

.themes { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3rem; }
.theme-counts { list-style: none; border-top: 1px solid var(--line-strong); align-self: start; }
.theme-counts li { display: grid; grid-template-columns: 3rem minmax(0, 1fr); align-items: baseline; gap: 1rem; padding: .75rem 0; border-bottom: 1px solid var(--line); font-size: .98rem; }
.theme-counts .num { font-size: 1.6rem; color: var(--terracotta); line-height: 1; }
.theme-notes { display: grid; gap: 2rem; }
.theme-notes article { padding-left: 1.25rem; border-left: 2px solid var(--sage); }
.theme-notes h3 { color: var(--indigo-900); font-size: 1.35rem; }
.theme-notes p { margin: 0; }
@media (min-width: 1000px) {
  .themes { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 5rem; }
  .theme-counts { position: sticky; top: calc(var(--nav-h) + 32px); }
  .theme-notes { grid-template-columns: 1fr 1fr; gap: 2.5rem 3rem; }
}

.pw-case__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3rem 5rem; }
.pw-case h2 { color: var(--sand-50); }
.case-dl { margin: 2rem 0 0; border-top: 1px solid var(--line-light); }
.case-dl > div { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); gap: 1rem; padding: .8rem 0; border-bottom: 1px solid var(--line-light); }
.case-dl dt { font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; color: var(--terracotta-soft); padding-top: .2rem; }
.case-dl dd { margin: 0; color: var(--sand-100); }
.pw-case__body h3 { color: var(--terracotta-soft); margin-top: 0; }
.pw-case__body h3 + p { margin-bottom: 2.25rem; }
.case-quote { margin: 0 0 1.5rem; padding: 2rem; background: var(--indigo-800); border-left: 4px solid var(--terracotta-soft); }
.case-quote p { font-family: var(--font-display); font-size: clamp(1.2rem, 1.05rem + .6vw, 1.55rem); line-height: 1.5; color: var(--sand-50) !important; }
.case-quote footer { font-size: .85rem; color: rgba(244,236,223,.72); }
@media (min-width: 1000px) { .pw-case__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); } }

.answers { list-style: none; display: grid; grid-template-columns: minmax(0, 1fr); border-top: 2px solid var(--indigo-900); margin-bottom: 2rem; }
.answers li { padding: 1.5rem 0; border-bottom: 1px solid var(--line); display: flex; flex-direction: column; }
.answers__date { font-size: 1.15rem; color: var(--indigo-900); margin-bottom: .4rem; }
.answers__date span { font-family: var(--font-sans); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: var(--sage-ink); margin-left: .5rem; }
.answers h3 { font-size: 1.25rem; }
.answers p { font-size: .96rem; }
.answers__src { margin-top: auto; font-size: .82rem; font-weight: 600; color: var(--terracotta-ink); }
@media (min-width: 760px) {
  .answers { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .answers li { padding-right: 2rem; }
  .answers li:nth-child(even) { padding-left: 2rem; border-left: 1px solid var(--line); }
}
@media (min-width: 1200px) {
  .answers { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .answers li:nth-child(even) { padding-left: 0; border-left: 0; }
  .answers li:not(:nth-child(3n+1)) { padding-left: 2rem; border-left: 1px solid var(--line); }
}

.register-tools { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1rem; }
.register-tools button { min-height: 40px; padding: .45rem .9rem; border: 1px solid var(--line-strong); background: transparent; border-radius: 999px; font-size: .85rem; cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.register-tools button .count { font-variant-numeric: tabular-nums; color: var(--text-muted); margin-left: .2rem; }
.register-tools button:hover { border-color: var(--indigo-900); }
.register-tools button[aria-pressed="true"] { background: var(--indigo-900); color: var(--sand-50); border-color: var(--indigo-900); }
.register-tools button[aria-pressed="true"] .count { color: var(--terracotta-soft); }
.register-status { font-size: .85rem; color: var(--text-muted); margin-bottom: 1.25rem; }
.register-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; border-top: 2px solid var(--indigo-900); }
.register { width: 100%; border-collapse: collapse; font-size: .92rem; }
.register th { text-align: left; font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; color: var(--text-muted); padding: .8rem .75rem .8rem 0; border-bottom: 1px solid var(--line-strong); }
.register td { padding: .85rem .75rem .85rem 0; border-bottom: 1px solid var(--line); vertical-align: top; line-height: 1.5; }
.register td:first-child { white-space: nowrap; color: var(--indigo-900); }
.register td:nth-child(2) { font-weight: 500; min-width: 16rem; }
.register td:nth-child(4), .register td:nth-child(5) { color: var(--text-muted); font-size: .86rem; }
.register tr[hidden] { display: none; }
.tag { display: inline-block; font-size: .7rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; padding: .2rem .45rem; white-space: nowrap; }
.tag--debate { background: rgba(181,87,58,.12); color: var(--terracotta-ink); }
.tag--question { background: var(--sage-soft); color: #2f3a28; }
@media (max-width: 759.98px) {
  .register-scroll { overflow: visible; }
  .register thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .register, .register tbody, .register tr, .register td { display: block; width: 100%; }
  .register tr { padding: 1rem 0; border-bottom: 1px solid var(--line); }
  .register td { border: 0; padding: .15rem 0; min-width: 0 !important; }
  .register td:first-child { font-size: .82rem; color: var(--terracotta-ink); font-weight: 600; }
  .register td:nth-child(2) { font-size: 1rem; margin: .1rem 0 .4rem; }
  .register td:nth-child(4)::before { content: "Ministry: "; font-weight: 600; }
  .register td:nth-child(5)::before { content: "Theme: "; font-weight: 600; }
}

/* ==========================================================================
   TRIBAL AFFAIRS
   ========================================================================== */
.ta-head { padding: clamp(48px, 3rem + 3vw, 112px) 0 clamp(48px, 3rem + 3vw, 104px); position: relative; overflow: hidden; }
.ta-head::after { content: ""; position: absolute; right: -120px; top: -120px; width: 420px; height: 420px; border: 1px solid rgba(227,160,131,.25); border-radius: 50%; box-shadow: 0 0 0 60px rgba(227,160,131,.04), 0 0 0 120px rgba(227,160,131,.03); pointer-events: none; }
.ta-head__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3rem; align-items: end; position: relative; z-index: 1; }
.ta-head h1 { font-size: clamp(2.8rem, 1.8rem + 4vw, 5.2rem); font-weight: 400; color: var(--sand-50); }
.ta-head .lede { max-width: 36rem; }
.ta-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; border-top: 1px solid var(--line-light); }
.ta-stats > div { padding: 1.25rem 1rem 1.25rem 0; border-bottom: 1px solid var(--line-light); }
.ta-stats > div:nth-child(even) { padding-left: 1.25rem; border-left: 1px solid var(--line-light); }
.ta-stats dt { font-size: .74rem; letter-spacing: .08em; text-transform: uppercase; font-weight: 600; color: rgba(244,236,223,.75); }
.ta-stats dd { margin: .45rem 0 .2rem; font-family: var(--font-display); font-size: clamp(1.7rem, 1.4rem + 1.2vw, 2.5rem); line-height: 1.05; color: var(--terracotta-soft); }
.ta-stats span { font-size: .8rem; color: rgba(244,236,223,.65); }
@media (min-width: 1000px) { .ta-head__grid { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 5rem; } }

.ta-context__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem 5rem; }
@media (min-width: 1000px) { .ta-context__grid { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); } }
.ta-legend-wrap { position: relative; z-index: 2; }
.ta-legend { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem 3rem; padding: 1.5rem 1.75rem; background: var(--sand-50); border: 1px solid var(--line); }
.ta-legend p { margin: 0; font-size: .95rem; position: relative; padding-left: 1.6rem; }
.key { position: absolute; left: 0; top: .32em; width: 14px; height: 14px; }
.key--gov { background: var(--sage); }
.key--role { background: var(--terracotta); }
@media (min-width: 760px) { .ta-legend { grid-template-columns: 1fr 1fr; } }

.prog { border-top: 2px solid var(--indigo-900); padding: 2rem 0 3rem; }
.prog__head { display: grid; grid-template-columns: 3.2rem minmax(0, 1fr); gap: 1rem; align-items: start; margin-bottom: 1.75rem; }
.prog__idx { font-size: 2.2rem; line-height: 1; color: var(--terracotta); font-style: italic; }
.prog__head h3 { font-size: clamp(1.5rem, 1.25rem + 1vw, 2.2rem); color: var(--indigo-900); margin-bottom: .2rem; }
.prog__head .meta { margin-bottom: .4rem; color: var(--sage-ink); }
.prog__full { font-size: .95rem; color: var(--text-muted); margin: 0; font-style: italic; font-family: var(--font-display); }
.prog__cols { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
.prog__gov, .prog__role { padding: 1.4rem 1.5rem; }
.prog__gov { background: var(--sage-wash); border-left: 4px solid var(--sage); }
.prog__role { background: var(--sand-50); border-left: 4px solid var(--terracotta); }
.prog__gov h4, .prog__role h4 { font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; margin-bottom: .8rem; }
.prog__gov h4 { color: var(--sage-ink); }
.prog__role h4 { color: var(--terracotta-ink); }
.prog__gov p:last-child, .prog__role p:last-child { margin-bottom: 0; }
.prog__role ul { list-style: none; }
.prog__role li { padding: .6rem 0; border-bottom: 1px solid var(--line); font-size: .96rem; line-height: 1.6; }
.prog__role li:last-child { border-bottom: 0; padding-bottom: 0; }
.prog__role li:first-child { padding-top: 0; }
.prog__role li > .num:first-child { display: block; font-size: .8rem; font-weight: 600; letter-spacing: .06em; color: var(--terracotta-ink); font-family: var(--font-sans); margin-bottom: .15rem; }
.prog__quote { font-style: italic; }
.prog__data { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0 0 1.75rem; background: var(--indigo-900); color: var(--sand-100); }
.prog__data > div { padding: 1.1rem 1.25rem; border-bottom: 1px solid var(--line-light); }
.prog__data dt { font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; color: rgba(244,236,223,.72); font-weight: 600; }
.prog__data dd { margin: .3rem 0 0; font-family: var(--font-display); font-size: clamp(1.4rem, 1.2rem + .8vw, 2rem); color: var(--terracotta-soft); line-height: 1.1; }
@media (min-width: 700px) { .prog__data { grid-template-columns: repeat(5, minmax(0, 1fr)); } .prog__data > div { border-bottom: 0; border-right: 1px solid var(--line-light); } .prog__data > div:last-child { border-right: 0; } }
@media (min-width: 900px) { .prog__cols { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2rem; } .prog__head { grid-template-columns: 4.5rem minmax(0, 1fr); } }
.prog-pair { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 3rem; }
.prog--half .prog__gov { margin-bottom: 1.25rem; }
@media (min-width: 1000px) { .prog-pair { grid-template-columns: 1fr 1fr; } }

.ta-lang__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3rem; align-items: start; }
.ta-lang__text .prog__gov { margin: 1.5rem 0 1.25rem; }
.ta-lang__text h2 { color: var(--indigo-900); }
@media (min-width: 1000px) { .ta-lang__grid { grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: 4rem; } .ta-lang__fig { position: sticky; top: calc(var(--nav-h) + 32px); } }
.mysuru { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem 4rem; margin-top: 4rem; padding-top: 2.5rem; border-top: 1px solid var(--line-strong); }
.mysuru__date .num { display: block; font-size: clamp(3.5rem, 2.6rem + 4vw, 6.5rem); line-height: .9; color: var(--terracotta); letter-spacing: -.03em; }
.mysuru__date span:last-child { font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: var(--text-muted); }
.mysuru__body { max-width: 44rem; }
.mysuru__body h3 { color: var(--indigo-900); }
@media (min-width: 900px) { .mysuru { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); } }

.live-list { list-style: none; border-top: 2px solid var(--indigo-900); }
.live-list li { display: grid; grid-template-columns: minmax(0, 1fr); gap: .4rem 3rem; padding: 1.6rem 0; border-bottom: 1px solid var(--line); }
.live-list__date { font-size: 1.4rem; color: var(--terracotta-ink); }
.live-list h3 { font-size: 1.35rem; color: var(--indigo-900); }
.live-list p { margin: 0; max-width: 46rem; }
@media (min-width: 760px) { .live-list li { grid-template-columns: 11rem minmax(0, 1fr); } }

/* ==========================================================================
   PUBLIC SERVICE
   ========================================================================== */
.ps-head { padding-top: clamp(40px, 2rem + 3vw, 96px); }
.ps-head__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem 4rem; align-items: end; margin-bottom: clamp(2rem, 1.5rem + 2vw, 3.5rem); }
.ps-head h1 { font-size: clamp(2.8rem, 1.8rem + 4.2vw, 5.4rem); font-weight: 400; color: var(--indigo-900); margin: 0; }
.ps-head .lede { margin: 0; max-width: 34rem; }
@media (min-width: 1000px) { .ps-head__grid { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); } }
.ps-hero { margin: 0; }
.ps-hero img { width: 100%; height: auto; }
.strands { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
.strand { position: relative; padding-top: 1.5rem; border-top: 3px solid var(--indigo-900); }
.strand__n { font-size: 1.5rem; font-style: italic; color: var(--terracotta); display: block; margin-bottom: .8rem; }
.strand h3 { font-size: 1.7rem; color: var(--indigo-900); }
@media (min-width: 900px) { .strands { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3rem; } .strand:nth-child(2) { margin-top: 3rem; } .strand:nth-child(3) { margin-top: 6rem; } }
.ps-causes__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.5rem 5rem; align-items: center; }
.ps-causes h2 { color: var(--indigo-900); }
.causes { list-style: none; display: flex; flex-wrap: wrap; gap: .75rem; }
.causes li { font-family: var(--font-display); font-size: clamp(1.2rem, 1rem + .9vw, 1.7rem); padding: .55rem 1.2rem; border: 1px solid var(--sage-ink); border-radius: 999px; color: var(--indigo-900); background: rgba(251,247,240,.6); }
@media (min-width: 1000px) { .ps-causes__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); } }
.places { list-style: none; counter-reset: place; border-top: 2px solid var(--indigo-900); margin-bottom: 1.5rem; }
.place { counter-increment: place; display: grid; grid-template-columns: minmax(0, 1fr); gap: .3rem 3rem; padding: 1.4rem 0; border-bottom: 1px solid var(--line); }
.place__name { font-size: clamp(1.5rem, 1.2rem + 1.4vw, 2.4rem); color: var(--indigo-900); margin: 0; font-weight: 400; }
.place__name::before { content: counter(place, decimal-leading-zero); font-family: var(--font-sans); font-size: .75rem; font-weight: 600; letter-spacing: .1em; color: var(--terracotta-ink); margin-right: .9rem; vertical-align: middle; }
.place__what { margin: 0; color: var(--text-muted); max-width: 36rem; align-self: center; }
@media (min-width: 900px) { .place { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); } }
.fieldwork { list-style: none; display: grid; grid-template-columns: minmax(0, 1fr); border-top: 1px solid var(--line-light); }
.fieldwork li { padding: 1.5rem 0; border-bottom: 1px solid var(--line-light); display: grid; grid-template-columns: minmax(0, 1fr); gap: .3rem; }
.fw__when { font-size: 1.3rem; color: var(--terracotta-soft); margin: 0; }
.fw__where { font-family: var(--font-display); font-size: 1.4rem; color: var(--sand-50) !important; margin: 0; }
.fw__what { margin: 0; }
.fw__src { margin: .4rem 0 0; font-size: .85rem; }
@media (min-width: 900px) { .fieldwork li { grid-template-columns: 10rem 14rem minmax(0, 1fr) 14rem; gap: 2rem; align-items: baseline; } .fw__src { margin: 0; } }

/* ==========================================================================
   KEY INITIATIVES
   ========================================================================== */
.ki-index { list-style: none; display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 2rem; margin-top: 2.5rem; border-top: 1px solid var(--line-strong); counter-reset: none; }
.ki-index a { display: flex; gap: .9rem; padding: .7rem 0; border-bottom: 1px solid var(--line); text-decoration: none; font-weight: 500; }
.ki-index .num { color: var(--terracotta-ink); font-style: italic; }
.ki-index a:hover { color: var(--terracotta-ink); }
@media (min-width: 700px) { .ki-index { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .ki-index { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.ki__no { font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: var(--terracotta-ink); margin-bottom: .9rem; }
.on-dark .ki__no { color: var(--terracotta-soft); }
.ki h2 { font-size: clamp(1.9rem, 1.4rem + 2vw, 3.1rem); max-width: 22ch; }
.ki-src { font-size: .85rem; color: var(--text-muted); margin-top: 1.5rem; }
.on-dark .ki-src { color: rgba(244,236,223,.75); }
.ki-fields { margin: 1.75rem 0 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; border-top: 1px solid var(--line-strong); }
.ki-fields > div { padding: .9rem 0; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: minmax(0, 1fr); gap: .25rem; align-content: start; }
.ki-fields dt { font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: var(--sage-ink); }
.ki-fields dd { margin: 0; font-size: .98rem; line-height: 1.6; }
.ki-fields__role { background: linear-gradient(90deg, rgba(181,87,58,.09), transparent 85%); padding-left: .9rem !important; border-left: 3px solid var(--terracotta); }
.ki-fields__role dt { color: var(--terracotta-ink) !important; }
.ki-fields--dark { border-top-color: var(--line-light); }
.ki-fields--dark > div { border-bottom-color: var(--line-light); }
.ki-fields--dark dt { color: var(--sage-soft); }
.ki-fields--dark dd { color: var(--sand-100); }
.ki-fields--dark .ki-fields__role { background: linear-gradient(90deg, rgba(227,160,131,.14), transparent 85%); border-left-color: var(--terracotta-soft); }
.ki-fields--dark .ki-fields__role dt { color: var(--terracotta-soft) !important; }
@media (min-width: 700px) { .ki-fields--rows > div { grid-template-columns: 10rem minmax(0, 1fr); gap: 1.5rem; } }
.ki-lang { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem 5rem; }
.ki-lang__date .num { display: block; font-size: clamp(5rem, 3.5rem + 7vw, 11rem); line-height: .8; color: var(--terracotta); letter-spacing: -.04em; }
.ki-lang__date span:last-child { display: block; margin-top: .8rem; font-size: .85rem; letter-spacing: .16em; text-transform: uppercase; font-weight: 600; color: var(--indigo-900); }
@media (min-width: 760px) { .ki-lang .ki-fields { grid-template-columns: 1fr 1fr; column-gap: 2.5rem; } }
@media (min-width: 1000px) { .ki-lang { grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); } .ki-lang__date { position: sticky; top: calc(var(--nav-h) + 40px); align-self: start; } }
.route { margin: 2.5rem 0; color: var(--sand-100); }
.route svg { width: 100%; height: auto; max-height: 160px; overflow: visible; }
.route figcaption { font-size: .8rem; color: rgba(244,236,223,.65); margin-top: .5rem; }
.ki-rail__cols { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 3rem; }
.ki-rail__cols .ki-fields { margin-top: 0; }
.ki-rail__cols .ki-fields + .ki-fields { border-top: 0; }
@media (min-width: 900px) { .ki-rail__cols { grid-template-columns: 1fr 1fr; } .ki-rail__cols .ki-fields + .ki-fields { border-top: 1px solid var(--line-light); } }
.ki-kisan { max-width: 52rem; }
.ki-kisan__lede { font-family: var(--font-display); font-size: clamp(1.35rem, 1.1rem + 1vw, 1.9rem); line-height: 1.4; color: var(--indigo-900); margin-top: 1rem; }
.fort-names { list-style: none; display: flex; flex-wrap: wrap; gap: .1rem 2.5rem; margin: 1.5rem 0 2rem; }
.fort-names li { font-family: var(--font-display); font-size: clamp(2.4rem, 1.6rem + 4vw, 5.5rem); line-height: 1.05; font-style: italic; color: var(--indigo-900); }
.fort-names li:nth-child(even) { color: var(--terracotta); }
.ki-forts__cols { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 3rem; }
.ki-forts__cols .ki-fields + .ki-fields { margin-top: 0; border-top: 0; }
@media (min-width: 900px) { .ki-forts__cols { grid-template-columns: 1fr 1fr; } .ki-forts__cols .ki-fields + .ki-fields { margin-top: 1.75rem; border-top: 1px solid var(--line-strong); } }
.ki-live { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3rem; align-items: start; }
@media (min-width: 1000px) { .ki-live { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 4.5rem; } .ki-live__fig { position: sticky; top: calc(var(--nav-h) + 32px); } }
.ki-sickle__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3rem; align-items: start; }
.ki-sickle h2 { color: var(--indigo-900); }
.ki-sickle__data { margin: 0; display: grid; gap: 0; border-top: 2px solid var(--indigo-900); }
.ki-sickle__data > div { padding: 1.3rem 0; border-bottom: 1px solid var(--line-strong); }
.ki-sickle__data dt { font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; color: var(--sage-ink); }
.ki-sickle__data dd { margin: .35rem 0 0; font-family: var(--font-display); font-size: clamp(2.2rem, 1.8rem + 1.8vw, 3.4rem); line-height: 1; color: var(--indigo-900); }
@media (min-width: 1000px) { .ki-sickle__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: 5rem; } }

/* ==========================================================================
   MEDIA
   ========================================================================== */
.media-head { padding-top: clamp(40px, 2rem + 3vw, 88px); }
.media-head__bar { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; align-items: end; padding-bottom: 1.25rem; border-bottom: 4px double var(--indigo-900); }
.media-head h1 { font-size: clamp(2.6rem, 1.6rem + 4.4vw, 5.6rem); font-weight: 400; color: var(--indigo-900); margin: 0; letter-spacing: -.03em; }
.media-head__meta { display: flex; flex-direction: column; gap: .2rem; margin: 0; font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: var(--text-muted); }
.media-head__meta .num { color: var(--terracotta-ink); font-family: var(--font-sans); }
@media (min-width: 900px) { .media-head__bar { grid-template-columns: minmax(0, 1fr) auto; } .media-head__meta { text-align: right; } }
.media-front { padding-top: 2.5rem; padding-bottom: clamp(56px, 3rem + 3vw, 104px); }
.media-front__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3rem; }
.story-meta { display: flex; flex-wrap: wrap; gap: .3rem 1rem; font-size: .76rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; color: var(--text-muted); margin-bottom: .9rem; }
.story-meta .topic { color: var(--terracotta-ink); }
.lead-story h2 { font-size: clamp(2rem, 1.5rem + 2.2vw, 3.4rem); line-height: 1.08; color: var(--indigo-900); font-weight: 500; }
.lead-story__dek { font-family: var(--font-display); font-size: var(--fs-lede); line-height: 1.45; color: var(--charcoal); }
.story-src { font-size: .85rem; color: var(--text-muted); }
.secondary-stories { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem; }
.story { padding-top: 1.25rem; border-top: 1px solid var(--line-strong); }
.story h3 { font-size: 1.4rem; line-height: 1.25; color: var(--indigo-900); }
.story p { font-size: .96rem; }
.story--image .figure { margin-bottom: 1rem; }
@media (min-width: 1000px) {
  .media-front__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 0; }
  .lead-story { padding-right: 3rem; border-right: 1px solid var(--line); }
  .secondary-stories { padding-left: 3rem; }
  .secondary-stories .story:first-child { border-top: 0; padding-top: 0; }
}
.news { list-style: none; border-top: 2px solid var(--indigo-900); }
.news__item { display: grid; grid-template-columns: minmax(0, 1fr); gap: .4rem 2rem; padding: 1.3rem 0; border-bottom: 1px solid var(--line); }
.news__item[hidden] { display: none; }
.news__date { font-size: 1.05rem; color: var(--terracotta-ink); }
.news__body h3 { font-size: 1.2rem; line-height: 1.3; color: var(--indigo-900); margin-bottom: .3rem; }
.news__body p { margin: 0; font-size: .94rem; color: var(--text-muted); }
.news__src { margin: 0; font-size: .82rem; color: var(--text-muted); }
.news__src a { color: var(--charcoal); }
@media (min-width: 900px) { .news__item { grid-template-columns: 9rem minmax(0, 1fr) 15rem; align-items: baseline; } }
.media-contact__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem 4rem; align-items: baseline; }
.media-contact__grid p { margin: 0; max-width: 46rem; }
@media (min-width: 900px) { .media-contact__grid { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); } }

/* ==========================================================================
   GALLERY + LIGHTBOX
   ========================================================================== */
.gal-head { padding: clamp(40px, 2rem + 3vw, 88px) 0 clamp(28px, 1.5rem + 2vw, 56px); }
.gal-head__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem 4rem; align-items: end; }
.gal-head h1 { font-size: clamp(3rem, 2rem + 5vw, 6.4rem); font-weight: 400; font-style: italic; color: var(--indigo-900); margin: 0; letter-spacing: -.03em; }
.gal-head__intro { margin: 0; max-width: 30rem; color: var(--text-muted); }
@media (min-width: 900px) { .gal-head__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .gal-head__intro { justify-self: end; } }
.gal { padding-bottom: var(--section-y); }
.gal-item { margin: 0; }
.gal-btn { display: block; position: relative; width: 100%; padding: 0; border: 0; background: var(--sand-200); cursor: zoom-in; overflow: hidden; }
.gal-btn img { width: 100%; height: auto; transition: transform .8s var(--ease), filter .4s; }
.gal-btn:hover img { transform: scale(1.02); }
.gal-btn__zoom { position: absolute; right: 12px; bottom: 12px; width: 40px; height: 40px; display: grid; place-items: center; background: rgba(27,31,59,.82); color: var(--sand-50); opacity: 0; transition: opacity .3s; }
.gal-btn__zoom svg { width: 18px; height: 18px; }
.gal-btn:hover .gal-btn__zoom, .gal-btn:focus-visible .gal-btn__zoom { opacity: 1; }
@media (hover: none) { .gal-btn__zoom { opacity: 1; } }
.gal-item figcaption { display: flex; gap: .8rem; align-items: baseline; margin-top: .8rem; font-size: .92rem; color: var(--text-muted); }
.gal-no { color: var(--terracotta-ink); font-style: italic; flex: none; }
.gal-item--hero { margin-bottom: clamp(2.5rem, 2rem + 2vw, 4.5rem); }
.gal-pair { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.5rem; margin-bottom: clamp(2.5rem, 2rem + 2vw, 4.5rem); align-items: start; }
@media (min-width: 900px) { .gal-pair { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 2.5rem; } .gal-item--b { margin-top: 5rem; } }
.gal-strip { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem; padding-top: 2.5rem; border-top: 1px solid var(--line-strong); align-items: start; }
@media (min-width: 600px) { .gal-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 900px) { .gal-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem; } }

.lightbox { position: fixed; inset: 0; z-index: 300; background: rgba(12, 14, 30, .96); display: grid; grid-template-rows: minmax(0, 1fr) auto; opacity: 0; transition: opacity .3s; }
.lightbox[hidden] { display: none; }
.lightbox.is-open { opacity: 1; }
.lightbox__stage { display: flex; align-items: center; justify-content: center; padding: 64px 16px 8px; min-height: 0; }
.lightbox__img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.lightbox__bar { display: flex; justify-content: space-between; gap: 1rem; align-items: baseline; padding: 1rem var(--gutter) 1.5rem; color: var(--sand-100); max-width: var(--wrap); width: 100%; margin: 0 auto; }
.lightbox__caption { margin: 0; font-family: var(--font-display); font-size: 1.1rem; }
.lightbox__count { margin: 0; font-size: .85rem; color: rgba(244,236,223,.7); flex: none; }
.lightbox button { position: absolute; width: 48px; height: 48px; display: grid; place-items: center; background: rgba(244,236,223,.1); color: var(--sand-50); border: 1px solid rgba(244,236,223,.25); border-radius: 50%; cursor: pointer; transition: background .2s; }
.lightbox button:hover { background: var(--terracotta); border-color: var(--terracotta); }
.lightbox button svg { width: 22px; height: 22px; }
.lightbox__close { top: 12px; right: 12px; }
.lightbox__prev { left: 12px; top: 50%; transform: translateY(-50%); }
.lightbox__next { right: 12px; top: 50%; transform: translateY(-50%); }
.lightbox :focus-visible { outline: 3px solid #f2c14e; outline-offset: 3px; }

/* ==========================================================================
   CONTACT
   ========================================================================== */
.contact { padding: clamp(40px, 2rem + 3vw, 96px) 0 var(--section-y); }
.contact__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3.5rem 6rem; }
.contact h1 { font-size: clamp(3rem, 2rem + 4.4vw, 5.8rem); font-weight: 400; color: var(--indigo-900); letter-spacing: -.03em; }
.contact__intro { max-width: 28rem; color: var(--text-muted); }
.contact-list { margin: 2.5rem 0 0; border-top: 2px solid var(--indigo-900); }
.contact-list > div { padding: 1.3rem 0; border-bottom: 1px solid var(--line); }
.contact-list dt { font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: var(--terracotta-ink); margin-bottom: .35rem; }
.contact-list dd { margin: 0; font-family: var(--font-display); font-size: clamp(1.35rem, 1.1rem + 1vw, 1.9rem); line-height: 1.25; color: var(--indigo-900); overflow-wrap: anywhere; }
.contact-link { text-decoration: none; background-image: linear-gradient(var(--terracotta), var(--terracotta)); background-size: 0 1px; background-position: 0 100%; background-repeat: no-repeat; transition: background-size .35s var(--ease), color .2s; }
.contact-link:hover { background-size: 100% 1px; color: var(--terracotta-ink); }
.contact__form-wrap { background: var(--sand-50); padding: clamp(1.5rem, 1rem + 2vw, 3rem); border: 1px solid var(--line); border-top: 4px solid var(--terracotta); align-self: start; }
.contact__form-title { font-size: var(--fs-h3); margin-bottom: .3rem; color: var(--indigo-900); }
@media (min-width: 1000px) { .contact__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); } .contact__info { position: sticky; top: calc(var(--nav-h) + 32px); align-self: start; } }

.form { margin-top: 1.5rem; }
.form__row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 1.25rem; }
@media (min-width: 640px) { .form__row { grid-template-columns: 1fr 1fr; } }
.form .field { margin-bottom: 1.25rem; min-width: 0; }
.form label { display: block; font-size: .88rem; font-weight: 600; margin-bottom: .45rem; color: var(--charcoal); }
.form .req { color: var(--terracotta-ink); }
.form .optional { font-weight: 400; color: var(--text-muted); }
.form input, .form textarea {
  display: block; width: 100%; max-width: 100%; min-height: 50px; padding: .75rem .9rem;
  font-size: 16px; /* prevents iOS zoom on focus */
  background: #fff; border: 1px solid var(--line-strong); border-radius: 2px; color: var(--charcoal);
  transition: border-color .2s, box-shadow .2s; -webkit-appearance: none; appearance: none;
}
.form textarea { resize: vertical; min-height: 150px; line-height: 1.6; }
.form input:hover, .form textarea:hover { border-color: var(--charcoal-soft); }
.form input:focus, .form textarea:focus { outline: none; border-color: var(--indigo-900); box-shadow: 0 0 0 3px rgba(47, 91, 211, .35); }
.form [aria-invalid="true"] { border-color: #b3261e; background: #fff8f6; }
.field__error { margin: .4rem 0 0; font-size: .86rem; color: #a3221b; font-weight: 500; min-height: 0; }
.field__error:empty { display: none; }
.field__hint { margin: .35rem 0 0; font-size: .8rem; color: var(--text-muted); }
.form-summary { padding: .9rem 1rem; background: #fff1ee; border-left: 4px solid #b3261e; color: #7c1c16; font-size: .92rem; margin-bottom: 1.25rem; }
.form__submit { width: 100%; }
@media (min-width: 640px) { .form__submit { width: auto; min-width: 220px; } }
.form-result { margin-top: 1.5rem; padding: 1.4rem 1.5rem; background: var(--sage-wash); border-left: 4px solid var(--sage-ink); outline: none; }
.form-result:focus-visible { outline: 3px solid var(--focus); }
.form-result__title { font-family: var(--font-display); font-size: 1.35rem; color: var(--indigo-900); margin-bottom: .5rem; }
.form-result__body { font-size: .95rem; }
.form-result .btn { margin-top: .5rem; }
.sec-head .link-arrow { justify-self: start; align-self: end; }

/* Menu panel footer links must not inherit the large nav-link treatment */
.primary-nav .nav-panel__foot a { display: inline; font: inherit; padding: 0; min-height: 0; gap: 0; color: var(--sand-100); text-decoration: underline; text-underline-offset: .2em; }
.primary-nav .nav-panel__foot a::before, .primary-nav .nav-panel__foot a::after { display: none; }
.primary-nav .nav-panel__foot p { margin: 0; line-height: 1.9; }
/* Lightbox controls on small screens: keep them clear of the caption */
@media (max-width: 599.98px) {
  .lightbox__prev, .lightbox__next { top: 12px; bottom: auto; transform: none; }
  .lightbox__prev { left: 12px; }
  .lightbox__next { left: 68px; right: auto; }
}

/* Home §03 — photograph above the figures */
.home-parl__fig { margin: 0 0 2rem; }
.home-parl__fig img { box-shadow: 0 24px 48px -28px rgba(0, 0, 0, .7); }
.home-parl__src { margin-top: 1.25rem !important; }
/* Parliamentary Work header — portrait photograph */
.pw-figure { width: min(100%, 250px); justify-self: center; }
@media (min-width: 900px) { .pw-figure { justify-self: end; } .pw-head__grid { align-items: center; } }
