/* ============================================================
   NEO ASTERI — site component styles
   The colour TOKENS live in theme.json (single source of truth).
   Here we ALIAS the brand palette onto the short names this
   stylesheet uses, expose the documented --na-* design-system
   tokens, then port the component CSS onto the dark foundation.
   ============================================================ */

:root{
  /* ---- brand palette (mirrors theme.json) ---- */
  --na-midnight:  var(--wp--preset--color--midnight);   /* #001b3d */
  --na-deep-teal: var(--wp--preset--color--deep-teal);  /* #083335 */
  --na-navy:      var(--wp--preset--color--navy);        /* #000080 */
  --na-cobalt:    var(--wp--preset--color--cobalt);      /* #0047ab */
  --na-pink:      var(--wp--preset--color--pink);        /* #ff59af */
  --na-sky:       var(--wp--preset--color--sky);         /* #94d1eb */
  --na-grey:      var(--wp--preset--color--grey);        /* #95a6b8 */

  /* ---- semantic roles ---- */
  --na-bg:        var(--na-midnight);
  --na-bg-alt:    var(--na-deep-teal);
  --na-primary:   var(--na-cobalt);
  --na-accent:    var(--na-pink);

  --na-text-primary:   #ffffff;
  --na-text-secondary: var(--na-grey);
  --na-text-soft:      var(--na-sky);
  /* comfortable long-form / lede tone — soft white, not pure */
  --na-text-body:      rgba(255,255,255,0.84);

  /* ---- derived helpers (stay within the palette) ---- */
  --na-cobalt-lift:  color-mix(in srgb, var(--na-cobalt) 78%, #ffffff);  /* button hover */
  --na-surface-lift: color-mix(in srgb, var(--na-deep-teal) 92%, #ffffff); /* card hover */
  --na-cta:          linear-gradient(135deg, var(--na-cobalt), var(--na-pink));
  --na-space:        radial-gradient(circle at top right, rgba(255,89,175,0.35), transparent 30%),
                     linear-gradient(135deg, var(--na-midnight) 0%, var(--na-deep-teal) 55%, var(--na-navy) 100%);

  /* ---- borders / dividers ---- */
  --na-border:       rgba(149, 166, 184, 0.25);  /* grey, muted */
  --na-border-soft:  rgba(148, 209, 235, 0.35);  /* sky, separators */
  --na-line-d:       rgba(149, 166, 184, 0.18);  /* very subtle */

  /* ---- legacy aliases (still referenced inline by a few templates) ---- */
  --signal:      var(--na-cobalt);
  --signal-lift: var(--na-sky);
  --mist-2:      var(--na-grey);

  --sans: "Archivo", system-ui, sans-serif;
  --mono: "IBM Plex Mono", ui-monospace, monospace;
  --maxw: 1180px;
}

/* ---------- base ---------- */
body{ background:var(--na-bg); color:var(--na-text-primary); font-family:var(--sans);
      font-size:17px; line-height:1.55; -webkit-font-smoothing:antialiased;
      text-rendering:optimizeLegibility; }
a{ color:var(--na-text-soft); text-decoration:none; }
a:hover{ color:var(--na-accent); }
::selection{ background:var(--na-cobalt); color:#fff; }
img{ max-width:100%; height:auto; }

.container{ max-width:var(--maxw); margin:0 auto; padding:0 clamp(24px,5vw,72px); }

/* ---------- nav / header ---------- */
header.nav{ position:sticky; top:0; z-index:50; background:rgba(0,27,61,0.86);
            backdrop-filter:blur(12px); border-bottom:1px solid var(--na-line-d); }
.nav-in{ display:flex; align-items:center; justify-content:space-between; height:78px; }
.brand{ display:flex; align-items:center; gap:13px; color:#fff; }
.brand .mark{ width:32px; height:32px; display:block; color:#fff; }
.brand .w, .wp-block-site-title a{ font-family:var(--sans); font-weight:600; font-size:17px;
            letter-spacing:1.5px; text-transform:uppercase; color:#fff; }
.nav-links{ display:flex; gap:34px; margin:0; padding:0; list-style:none; }
.nav-links a, .nav-links .wp-block-navigation-item__content{
            font-family:var(--mono); font-size:12px; letter-spacing:0.12em;
            text-transform:uppercase; color:var(--na-text-secondary); transition:color .2s; }
.nav-links a:hover{ color:var(--na-pink); }
.nav-links .current-menu-item > a,
.nav-links .current-menu-item .wp-block-navigation-item__content{ color:var(--na-pink); }
.nav-cta{ font-family:var(--mono); font-size:12px; letter-spacing:0.1em; text-transform:uppercase;
          color:#fff; border:1px solid var(--na-line-d); padding:11px 18px;
          transition:background .2s,border-color .2s; }
.nav-cta:hover{ background:var(--na-cobalt); border-color:var(--na-cobalt); color:#fff; }

/* Core Navigation block: desktop inline row matches the original mono links.
   blockGap (34px) drives the spacing on the flex container. */
.nav-links{ display:flex; gap:34px; margin:0; padding:0; }
.nav-links .wp-block-navigation__container{ gap:34px; }
.nav-links .wp-block-navigation-item__content{ padding:0; }

/* Hamburger toggle: hidden on desktop, white to read on the dark bar. */
.nav-in .nav-links .wp-block-navigation__responsive-container-open{ display:none; background:transparent;
          border:0; padding:6px; margin:0; color:#fff; cursor:pointer; }
.nav-in .nav-links .wp-block-navigation__responsive-container-open svg{ width:28px; height:28px; fill:currentColor; }

/* Full-screen overlay on mobile: midnight ground, large mono links. */
.nav-links .wp-block-navigation__responsive-container.is-menu-open{ background:var(--na-midnight); padding:clamp(28px,9vw,72px); }
.nav-links .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{ gap:6px; }
.nav-links .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{
          font-size:20px; letter-spacing:0.08em; color:var(--na-text-body); padding:12px 0; }
.nav-links .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover{ color:var(--na-pink); }
.nav-in .nav-links .wp-block-navigation__responsive-container-close{ color:#fff; }
.nav-in .nav-links .wp-block-navigation__responsive-container-close svg{ fill:currentColor; }

/* Shift WP's native 600px hamburger breakpoint up to 860px (original intent):
   below 860px show the toggle and collapse the inline menu until opened. */
@media (max-width:860px){
  .nav-in .nav-links .wp-block-navigation__responsive-container-open:not(.always-shown){ display:flex; }
  .nav-in .nav-links .wp-block-navigation__responsive-container:not(.is-menu-open){ display:none; }
}

/* ---------- hero ---------- */
.hero{ background:var(--na-space); color:#fff; position:relative; overflow:hidden; }
.hero .stars i{ position:absolute; background:#fff; border-radius:50%; opacity:0.9;
       box-shadow:0 0 6px rgba(255,255,255,0.7), 0 0 12px rgba(148,209,235,0.45); }
@media (prefers-reduced-motion:no-preference){
  .hero .stars i{ animation:twinkle var(--dur,3.2s) ease-in-out infinite; animation-delay:var(--delay,0s); }
  @keyframes twinkle{ 0%,100%{ opacity:0.25; transform:scale(0.8); } 50%{ opacity:1; transform:scale(1.15); } }
}
.hero-in{ padding:clamp(80px,12vw,170px) 0 clamp(70px,9vw,120px); position:relative; }
.kick{ font-family:var(--mono); font-size:13px; font-weight:500; letter-spacing:0.16em;
       text-transform:uppercase; color:var(--na-text-soft); display:inline-flex; align-items:center; gap:14px; margin:0; }
.kick::before{ content:""; width:30px; height:2px; background:var(--na-cobalt); }
.kick.ink{ color:var(--na-cobalt); }
h1.hero-h{ font-family:var(--sans); font-weight:600; font-size:clamp(44px,6.2vw,84px);
           line-height:1.0; letter-spacing:-0.025em; margin:30px 0 0; max-width:17ch; text-wrap:balance; }
.hero p.lede{ font-size:clamp(18px,1.7vw,22px); line-height:1.5; color:var(--na-text-body); margin:30px 0 0; max-width:52ch; }
.hero-cta{ display:flex; gap:16px; margin-top:46px; flex-wrap:wrap; }
.btn{ font-family:var(--mono); font-size:13px; letter-spacing:0.1em; text-transform:uppercase;
      padding:16px 26px; cursor:pointer; transition:transform .15s, background .2s; display:inline-flex; }
.btn:active{ transform:translateY(1px); }
.btn-pri{ background:var(--na-cobalt); color:#fff; }
.btn-pri:hover{ background:var(--na-cta); color:#fff; }
.btn-gho{ border:1px solid var(--na-line-d); color:#fff; }
.btn-gho:hover{ border-color:var(--na-sky); color:#fff; }
.hero-strip{ display:flex; gap:48px; margin-top:72px; flex-wrap:wrap; border-top:1px solid var(--na-line-d); padding-top:34px; }
.hero-strip .s .k{ font-family:var(--mono); font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--na-text-secondary); }
.hero-strip .s .v{ font-size:17px; color:#fff; margin-top:8px; font-weight:500; }

/* ---------- section frame ---------- */
section.band{ padding:clamp(72px,9vw,128px) 0; border-bottom:1px solid var(--na-line-d); }
.band.dark{ background:var(--na-deep-teal); color:#fff; border-bottom-color:var(--na-line-d); }
.band.abyss{ background:var(--na-midnight); color:#fff; border-bottom-color:var(--na-line-d); }
.sec-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:30px;
           flex-wrap:wrap; margin-bottom:clamp(40px,5vw,64px); }
.sec-head h2{ font-family:var(--sans); font-weight:600; font-size:clamp(30px,3.8vw,46px);
              line-height:1.05; letter-spacing:-0.02em; margin:18px 0 0; max-width:20ch; color:#fff; }
.sec-head .sub{ font-size:17px; color:var(--na-text-secondary); margin-top:16px; max-width:50ch; }
.dark .sec-head .sub, .abyss .sec-head .sub{ color:var(--na-text-secondary); }
.seclink{ font-family:var(--mono); font-size:12px; letter-spacing:0.1em; text-transform:uppercase;
          color:var(--na-text-soft); white-space:nowrap; }
.seclink:hover{ color:var(--na-pink); }
.dark .seclink, .abyss .seclink{ color:var(--na-text-soft); }

/* ---------- analysis cards ----------
   Driven by a Query Loop. The grid lives on the post-template (<ul>),
   each .wp-block-post is a card. Works for the pattern's static demo
   markup (.cards > .card) too. */
.cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--na-border); border:1px solid var(--na-border); }
.cards .wp-block-post-template{ display:grid; grid-template-columns:repeat(3,1fr); gap:2px;
          background:var(--na-border); border:1px solid var(--na-border); margin:0; padding:0; list-style:none; }
.card,
.cards .wp-block-post{ background:var(--na-deep-teal); padding:34px 32px; display:flex; flex-direction:column;
          min-height:300px; margin:0; transition:background .2s; }
.card:hover,
.cards .wp-block-post:hover{ background:var(--na-surface-lift); }
.card .meta,
.cards .wp-block-post .meta{ font-family:var(--mono); font-size:11px; letter-spacing:0.1em;
          text-transform:uppercase; color:var(--na-text-soft); }
.card h3,
.cards .wp-block-post .wp-block-post-title{ font-size:23px; font-weight:600; line-height:1.22;
          letter-spacing:-0.015em; margin:18px 0 0; color:#fff; }
.card h3 a,
.cards .wp-block-post .wp-block-post-title a{ color:#fff; }
.card h3 a:hover,
.cards .wp-block-post .wp-block-post-title a:hover{ color:var(--na-pink); }
.card p,
.cards .wp-block-post .wp-block-post-excerpt{ font-size:14.5px; line-height:1.55; color:var(--na-text-secondary); margin:14px 0 0; }
.cards .wp-block-post .wp-block-post-excerpt__more-text{ display:none; }
.card .foot,
.cards .wp-block-post .foot{ margin-top:auto; padding-top:24px; font-family:var(--mono);
          font-size:11px; letter-spacing:0.08em; color:var(--na-text-secondary);
          display:flex; justify-content:space-between; align-items:center; }
.card .foot .arrow,
.cards .wp-block-post .foot .arrow{ color:var(--na-sky); }
@media (max-width:880px){
  .cards, .cards .wp-block-post-template{ grid-template-columns:1fr; }
}

/* ---------- pillars ---------- */
.pillars{ display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--na-line-d); border:1px solid var(--na-line-d); margin-top:8px; }
.pillars > div{ background:var(--na-midnight); padding:44px 36px; }
.pillars .pn{ font-family:var(--mono); font-size:15px; color:var(--na-text-soft); letter-spacing:0.1em; }
.pillars .pt{ font-size:27px; font-weight:600; line-height:1.12; letter-spacing:-0.01em; margin-top:20px; color:#fff; }
.pillars .pd{ font-size:15px; color:var(--na-text-secondary); line-height:1.55; margin-top:16px; }
@media (max-width:760px){ .pillars{ grid-template-columns:1fr; } }

/* ---------- about / triad ---------- */
.triad{ display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--na-border); border:1px solid var(--na-border); margin-top:8px; }
.triad > div{ background:var(--na-deep-teal); padding:40px 34px; }
.triad .n{ font-family:var(--mono); font-size:12px; color:var(--na-text-soft); letter-spacing:0.1em; }
.triad h3{ margin:16px 0 12px; font-size:22px; font-weight:600; letter-spacing:-0.01em; color:#fff; }
.triad p{ margin:0; font-size:15px; color:var(--na-text-secondary); line-height:1.6; }
@media (max-width:760px){ .triad{ grid-template-columns:1fr; } }

.ideas-row{ display:flex; gap:12px; flex-wrap:wrap; margin-top:34px; }
.ideas-row .tag{ font-family:var(--mono); font-size:12px; letter-spacing:0.06em; color:#fff;
          border:1px solid var(--na-border); padding:10px 16px; background:var(--na-deep-teal); }

/* ---------- single / article body ---------- */
.entry{ padding:clamp(72px,9vw,120px) 0; }
.entry .entry-head{ margin-bottom:clamp(32px,4vw,52px); }
.entry .entry-title{ font-family:var(--sans); font-weight:600; font-size:clamp(32px,4.6vw,56px);
          line-height:1.04; letter-spacing:-0.02em; margin:18px 0 0; max-width:24ch; color:#fff; }
.entry .entry-content{ max-width:68ch; }
.entry .entry-content p{ margin:0 0 1.2em; color:var(--na-text-body); }
.entry .entry-content h2{ font-size:28px; font-weight:600; letter-spacing:-0.015em; margin:1.8em 0 .6em; color:#fff; }
.entry .entry-content h3{ font-size:22px; font-weight:600; margin:1.6em 0 .5em; color:#fff; }
.entry .entry-content a{ color:var(--na-sky); text-decoration:underline; text-underline-offset:3px; }
.entry .entry-content a:hover{ color:var(--na-pink); }

/* ---------- footer ---------- */
footer.site{ background:var(--na-midnight); color:#fff; padding:clamp(64px,8vw,100px) 0 48px; }
.foot-top{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:40px; padding-bottom:54px; border-bottom:1px solid var(--na-line-d); }
.foot-brand .w{ font-family:var(--sans); font-weight:600; font-size:20px; letter-spacing:2px; text-transform:uppercase; }
.foot-brand p{ color:var(--na-text-secondary); font-size:14.5px; line-height:1.6; margin:18px 0 0; max-width:34ch; }
.foot-col .h{ font-family:var(--mono); font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--na-text-soft); margin-bottom:18px; }
.foot-col a{ display:block; color:var(--na-text-body); font-size:14.5px; padding:7px 0; transition:color .2s; }
.foot-col a:hover{ color:#fff; }
.foot-bot{ display:flex; justify-content:space-between; align-items:center; padding-top:30px;
           flex-wrap:wrap; gap:14px; font-family:var(--mono); font-size:11px; letter-spacing:0.08em; color:var(--na-text-secondary); }
.foot-bot .foot-legal a{ color:var(--na-text-secondary); }
.foot-bot .foot-legal a:hover{ color:#fff; }
@media (max-width:880px){ .foot-top{ grid-template-columns:1fr 1fr; gap:32px; } }
@media (max-width:560px){ .foot-top{ grid-template-columns:1fr; gap:32px; } }

/* ---------- pagination ---------- */
.wp-block-query-pagination{ margin-top:48px; font-family:var(--mono); font-size:12px;
          letter-spacing:0.08em; text-transform:uppercase; gap:18px; }
.wp-block-query-pagination a{ color:var(--na-sky); }
.wp-block-query-pagination a:hover{ color:var(--na-pink); }

/* ---------- search + empty states ---------- */
.muted{ font-size:15px; color:var(--na-text-secondary); }
.muted a{ color:var(--na-sky); text-decoration:underline; text-underline-offset:3px; }
.muted a:hover{ color:var(--na-pink); }
.wp-block-search{ margin-top:24px; max-width:460px; }
.wp-block-search .wp-block-search__inside-wrapper{ border:1px solid var(--na-border); background:var(--na-deep-teal); }
.wp-block-search input.wp-block-search__input{ border:0; background:transparent; color:#fff;
          font-family:var(--sans); font-size:15px; padding:13px 14px; }
.wp-block-search input.wp-block-search__input::placeholder{ color:var(--na-text-secondary); }
.wp-block-search button.wp-block-search__button{ margin:0; border:0; background:var(--na-cobalt); color:#fff;
          font-family:var(--mono); font-size:12px; letter-spacing:0.1em; text-transform:uppercase;
          padding:0 20px; cursor:pointer; transition:background .2s; }
.wp-block-search button.wp-block-search__button:hover{ background:var(--na-cobalt-lift); }

/* ---------- motion (additive only; base state always visible) ---------- */
@media (prefers-reduced-motion:no-preference){
  .reveal.in{ animation:fadeup .7s ease both; }
  @keyframes fadeup{ from{ opacity:0; transform:translateY(20px);} to{ opacity:1; transform:none;} }
}

/* contact: the triad's only links live here, so scoping is safe */
.triad a{ color:var(--na-sky); }
.triad a:hover{ color:var(--na-pink); text-decoration:underline; text-underline-offset:3px; }

/* keyboard focus floor */
:where(a,button,input,.btn,.nav-cta):focus-visible{ outline:2px solid var(--na-sky); outline-offset:3px; }

/* accessible page heading: present in the document outline, hidden visually.
   focusable variant restores visibility for skip-links etc. */
.screen-reader-text{ position:absolute; width:1px; height:1px; padding:0; margin:-1px;
          overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.screen-reader-text:focus{ position:static; width:auto; height:auto; margin:0; clip:auto;
          white-space:normal; }

/* ============================================================
   BRAND DESIGN SYSTEM — core block roles
   Maps the Neo Asteri palette onto WordPress core blocks so
   editor-built pages inherit the same language as the hand-
   built section patterns above. See theme docs for the model:
   dark foundation · cobalt = action · pink = signature accent.
   ============================================================ */

/* Buttons — standard action = cobalt */
.wp-block-button__link,
.button,
button,
input[type="submit"]{
  background:var(--na-cobalt);
  color:#ffffff;
  border:none;
}

/* Featured / primary CTA — pink, reserved for the one key action */
.wp-block-button.is-style-primary .wp-block-button__link,
.button-primary{
  background:var(--na-pink);
  color:var(--na-midnight);
}

/* Button hover — blue→pink gradient */
.wp-block-button__link:hover,
.button:hover,
button:hover,
input[type="submit"]:hover{
  background:var(--na-cta);
  color:#ffffff;
}

/* Cards / panels / alternate dark sections — deep teal */
.wp-block-group.is-style-panel,
.wp-block-column.is-style-card{
  background:var(--na-deep-teal);
  color:var(--na-text-primary);
  border:1px solid var(--na-border);
}

/* Hero cover variant — space gradient with pink glow */
.wp-block-cover.is-style-hero{
  background:var(--na-space);
  color:var(--na-text-primary);
}
.wp-block-cover.is-style-hero .wp-block-cover__background{ display:none; }

/* Light sections — cobalt links on light grounds */
.light-section{ background:#ffffff; color:var(--na-midnight); }
.light-section a{ color:var(--na-cobalt); }
.light-section a:hover{ color:var(--na-navy); }

/* Borders / dividers — grey and sky, used subtly */
hr,
.wp-block-separator{
  border-color:var(--na-border-soft);
  color:var(--na-border-soft);
}
.border-muted{ border-color:var(--na-border); }

/* Text role utilities */
.text-primary{ color:var(--na-text-primary); }
.text-secondary,
.meta,
.caption{ color:var(--na-text-secondary); }
.text-soft,
.eyebrow,
.section-label{ color:var(--na-sky); }

/* ============================================================
   NEO ASTERI — new content sections (2.0)
   Built on the same tokens + components as above. No new hexes.
   ============================================================ */

/* anchored sections clear the sticky 78px header when linked to */
[id]{ scroll-margin-top:96px; }

/* ---------- prose (text-heavy bands) ---------- */
.prose{ max-width:68ch; }
.prose p{ margin:0 0 1.2em; color:var(--na-text-body); font-size:17px; line-height:1.65; }
.prose p:last-child{ margin-bottom:0; }
.prose-lead p{ font-size:clamp(18px,1.7vw,22px); line-height:1.55; color:#fff; }
.prose-label{ font-family:var(--mono); font-size:12px; letter-spacing:0.12em; text-transform:uppercase;
          color:var(--na-text-soft); margin-top:1.6em; }
.abyss .prose-label, .band.dark .prose-label{ color:var(--na-text-soft); }

/* sub-sections within a band (About, How we work, Five-year vision) */
.band-sub{ margin-top:clamp(40px,5vw,64px); }
.band-sub-h{ font-family:var(--sans); font-weight:600; font-size:clamp(22px,2.4vw,30px);
          letter-spacing:-0.015em; color:#fff; margin:0 0 22px; padding-top:clamp(28px,3.5vw,40px);
          border-top:1px solid var(--na-line-d); }

/* four-up variant of the triad (About → Our values) */
.triad.quad{ grid-template-columns:repeat(4,1fr); }
@media (max-width:980px){ .triad.quad{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .triad.quad{ grid-template-columns:1fr; } }

/* ---------- roadmap / tick list ---------- */
.roadmap{ margin-top:clamp(32px,4vw,48px); }
.roadmap-lead{ font-family:var(--mono); font-size:13px; letter-spacing:0.12em; text-transform:uppercase;
          color:var(--na-text-soft); margin:0 0 20px; }
ul.ticks{ list-style:none; margin:0; padding:0; display:grid; gap:14px; max-width:68ch; }
ul.ticks li{ position:relative; padding-left:34px; color:var(--na-text-body); font-size:17px; line-height:1.55; }
ul.ticks li::before{ content:"\2192"; position:absolute; left:0; top:0; color:var(--na-sky); font-weight:600; }

/* ---------- focus-areas page ---------- */
.focus-area .ideas-row{ margin-top:28px; }

/* ---------- people grid ---------- */
.people .wp-block-post-template{ display:grid; grid-template-columns:repeat(3,1fr); gap:2px;
          background:var(--na-border); border:1px solid var(--na-border); margin:0; padding:0; list-style:none; }
.people .wp-block-post{ background:var(--na-deep-teal); padding:32px 30px; margin:0;
          display:flex; flex-direction:column; transition:background .2s; }
.people .wp-block-post:hover{ background:var(--na-surface-lift); }
.person-photo{ margin:0 0 22px; }
.person-photo img{ width:100%; aspect-ratio:1/1; object-fit:cover; display:block; filter:grayscale(0.15); }
.people .person-name{ font-size:20px; font-weight:600; letter-spacing:-0.01em; color:#fff; margin:0; }
.person-role{ font-family:var(--mono); font-size:11px; letter-spacing:0.1em; text-transform:uppercase;
          color:var(--na-text-soft); margin:8px 0 0; }
.person-role:empty{ display:none; }
.people .person-bio{ font-size:14.5px; line-height:1.55; color:var(--na-text-secondary); margin:16px 0 0; }
.person-links{ margin-top:auto; padding-top:20px; }
.person-links .person-linkedin .wp-block-button__link{ background:transparent; border:1px solid var(--na-border);
          color:#fff; font-family:var(--mono); font-size:11px; letter-spacing:0.1em; text-transform:uppercase;
          padding:9px 16px; border-radius:0; }
.person-links .person-linkedin .wp-block-button__link:hover{ border-color:var(--na-sky); background:transparent; color:var(--na-sky); }
@media (max-width:900px){ .people .wp-block-post-template{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .people .wp-block-post-template{ grid-template-columns:1fr; } }

/* ---------- publications: filters + single ---------- */
.pub-filters-blocks{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 18px; margin-bottom:clamp(32px,4vw,48px); }
.pub-filter-label{ font-family:var(--mono); font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--na-text-soft); }
.pub-filter{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
.pub-filter li{ margin:0; }
.pub-filter a{ font-family:var(--mono); font-size:12px; letter-spacing:0.04em; color:#fff;
          border:1px solid var(--na-border); padding:7px 14px; background:var(--na-deep-teal); transition:border-color .2s,color .2s; }
.pub-filter a:hover{ border-color:var(--na-sky); color:var(--na-sky); }
/* the card-foot topic terms reuse the .ref slot */
.cards .wp-block-post .foot .ref a{ color:var(--na-text-secondary); }
.cards .wp-block-post .foot .ref a:hover{ color:var(--na-sky); }

.entry-subtitle{ font-size:clamp(18px,2vw,22px); line-height:1.4; color:var(--na-text-soft); margin:16px 0 0; max-width:48ch; }
.entry-subtitle:empty{ display:none; }
.entry-byline{ display:flex; flex-wrap:wrap; gap:8px 20px; margin-top:20px;
          font-family:var(--mono); font-size:12px; letter-spacing:0.06em; color:var(--na-text-secondary); }
.entry-byline .entry-author:empty{ display:none; }
.entry-byline p{ margin:0; }
.entry-hero{ margin:clamp(28px,4vw,44px) 0; }
.entry-hero img{ width:100%; display:block; }
.entry-summary{ font-size:clamp(18px,1.7vw,21px); line-height:1.55; color:#fff; max-width:68ch; margin:0 0 1.4em; }
.entry-download{ margin:8px 0 clamp(28px,4vw,44px); }
/* hide the Download button when no file URL is bound */
.entry-download .wp-block-button__link[href=""],
.entry-download .wp-block-button__link:not([href]){ display:none; }
.pub-meta-foot{ margin-top:clamp(32px,4vw,48px); }
.pub-meta-label{ font-family:var(--mono); font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--na-text-soft); }
.pub-topic-terms{ margin-top:14px; display:flex; flex-wrap:wrap; gap:10px; }
.pub-topic-terms a{ font-family:var(--mono); font-size:12px; letter-spacing:0.04em; color:#fff;
          border:1px solid var(--na-border); padding:8px 14px; background:var(--na-deep-teal); }
.pub-topic-terms a:hover{ border-color:var(--na-sky); color:var(--na-sky); }

/* ---------- contact form ---------- */
.contact-grid{ display:grid; grid-template-columns:0.8fr 1.2fr; gap:clamp(32px,5vw,64px); align-items:start; }
.contact-intro .ticks{ margin-top:18px; }
.na-form{ display:grid; gap:18px; max-width:560px; }
.na-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.na-field{ display:flex; flex-direction:column; }
.na-field label{ font-family:var(--mono); font-size:11px; letter-spacing:0.1em; text-transform:uppercase;
          color:var(--na-text-soft); margin-bottom:8px; }
.na-field label span{ color:var(--na-pink); }
.na-field input, .na-field select, .na-field textarea{ background:var(--na-deep-teal); border:1px solid var(--na-border);
          color:#fff; font-family:var(--sans); font-size:15px; padding:13px 14px; width:100%; }
.na-field textarea{ resize:vertical; min-height:120px; }
.na-field input::placeholder, .na-field textarea::placeholder{ color:var(--na-text-secondary); }
.na-field input:focus, .na-field select:focus, .na-field textarea:focus{ outline:2px solid var(--na-sky); outline-offset:2px; border-color:var(--na-sky); }
.na-field select{ appearance:none; -webkit-appearance:none; cursor:pointer; }
.na-submit{ justify-self:start; border:0; }
.na-note{ font-size:13px; color:var(--na-text-secondary); margin:6px 0 0; }
@media (max-width:860px){ .contact-grid{ grid-template-columns:1fr; } }
@media (max-width:560px){ .na-row{ grid-template-columns:1fr; } }
