/* ==========================================================================
   No Plastic Today — theme.css
   Only what theme.json cannot express: block style variations, components,
   focus states and motion. Tokens come from theme.json custom properties.
   ========================================================================== */

:root {
  --np-radius-card: 16px;
  --np-radius-pill: 999px;
  --np-radius-small: 8px;
  --np-muted: #5B6B7A;            /* AA on white (4.9:1) */
  --np-muted-on-dark: #B9C7D3;    /* AA on navy */
  --np-focus: #F9C74F;
  --np-shadow-card: 0 8px 30px rgba(20, 38, 58, 0.10);
  --np-shadow-card-hover: 0 16px 40px rgba(20, 38, 58, 0.16);
  --np-ease: cubic-bezier(.2,.7,.2,1);
}

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}

/* ---- Accessibility ---------------------------------------------------- */
.np-skip-link:focus {
  position: fixed; top: 1rem; left: 1rem; z-index: 10000;
  width: auto; height: auto; clip: auto; clip-path: none; overflow: visible;
  padding: 0.75rem 1.25rem; background: var(--wp--preset--color--contrast); color: #fff;
  border-radius: var(--np-radius-pill); text-decoration: none; font-weight: 600;
}
/* Two-tone ring: navy outline on a sun halo (box-shadow fills the gap and edges it outside),
   so the navy ring always sits on yellow (8.2:1) and shows on white, navy and photos alike. */
:focus-visible {
  outline: 3px solid var(--wp--preset--color--contrast);
  outline-offset: 2px;
  box-shadow: 0 0 0 7px var(--np-focus);
}
/* Rounds the ring on plain links; zero specificity, so pills, inputs and cards keep their own corners. */
:where(:focus-visible) { border-radius: 4px; }
a:focus-visible, button:focus-visible, .wp-block-button__link:focus-visible {
  outline: 3px solid var(--wp--preset--color--contrast);
  outline-offset: 2px;
  box-shadow: 0 0 0 7px var(--np-focus);
}
/* 44px minimum touch targets on interactive controls */
.wp-block-button__link, .wp-block-search__button, .np-nav a, .wp-block-navigation-item__content {
  min-height: 44px; display: inline-flex; align-items: center;
}

/* ---- Header ------------------------------------------------------------ */
.np-header {
  position: sticky; top: 0; z-index: 100;
  background: rgba(255,255,255,0.92);
  border-bottom: 1px solid var(--wp--preset--color--surface-2);
}
/* Frosted effect lives on a pseudo-element: a backdrop-filter on the header itself would make it the
   containing block for the navigation's position:fixed overlay and trap the open menu inside the bar. */
.np-header::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  backdrop-filter: saturate(160%) blur(10px);
  -webkit-backdrop-filter: saturate(160%) blur(10px);
}
.np-brand .wp-block-site-logo img { border-radius: 10px; }
.np-nav .wp-block-navigation-item__content { padding: 0.35rem 0.25rem; }
/* Keep links and Search on one centre line: without this the link boxes stretch to the
   header height and their text sits at the top (about 10px above the logo's centre). */
.np-nav .wp-block-navigation__container { align-items: center; }
.np-nav .wp-block-navigation-item { align-self: center; }
.np-nav .wp-block-navigation-item__content { display: inline-flex; align-items: center; }
.np-nav .np-nav-search .wp-block-navigation-item__content::before {
  content: ""; display: inline-block; width: 1em; height: 1em; margin-right: 0.35em;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'><circle cx='11' cy='11' r='7'/><path d='m20 20-3.5-3.5'/></svg>") center / contain no-repeat;
  mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'><circle cx='11' cy='11' r='7'/><path d='m20 20-3.5-3.5'/></svg>") center / contain no-repeat;
}
.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close { min-width: 44px; min-height: 44px; align-items: center; justify-content: center; } /* centre the 24px icon in the 44px tap target */

/* ---- Text styles -------------------------------------------------------- */
.is-style-eyebrow, .np-eyebrow {
  font-size: var(--wp--preset--font-size--x-small) !important;
  font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--wp--preset--color--tangerine-dark);
  margin-bottom: 0.5rem !important;
}
.has-contrast-background-color .is-style-eyebrow,
.has-contrast-2-background-color .is-style-eyebrow,
.is-style-card-dark .is-style-eyebrow { color: var(--wp--preset--color--sun); }
.has-sun-background-color .is-style-eyebrow, .has-tangerine-background-color .is-style-eyebrow { color: var(--wp--preset--color--contrast); }
.is-style-lead { font-size: var(--wp--preset--font-size--large); line-height: 1.5; color: var(--np-muted); }
.has-contrast-background-color .is-style-lead { color: var(--np-muted-on-dark); }
.is-style-source, .np-source {
  font-size: var(--wp--preset--font-size--small); color: var(--np-muted); line-height: 1.5;
}
.is-style-source::before, .np-source::before { content: "Source: "; font-weight: 600; }
.has-contrast-background-color .is-style-source { color: var(--np-muted-on-dark); }
/* Links in navy bands: the ocean link colour is only 3.3:1 on navy. */
main .has-contrast-background-color a:not(.wp-block-button__link) { color: var(--wp--preset--color--sun); }
main .has-contrast-background-color .is-style-card:not(.has-background) a:not(.wp-block-button__link) { color: var(--wp--preset--color--ocean-dark); }
.np-muted { color: var(--np-muted); }

/* ---- Statistics ---------------------------------------------------------- */
.is-style-stat, .is-style-stat-alert {
  font-family: var(--wp--preset--font-family--heading);
  font-size: var(--wp--preset--font-size--stat) !important;
  font-weight: 400 !important; line-height: 1 !important; letter-spacing: -0.02em;
  color: var(--wp--preset--color--tangerine-dark); margin-bottom: 0.5rem;
  font-variant-numeric: tabular-nums;
}
/* Yellow on dark bands and dark cards (9.7:1 on navy); dark orange everywhere else (5.2:1 on white). */
.has-contrast-background-color .is-style-stat, .has-contrast-2-background-color .is-style-stat,
.is-style-card-dark .is-style-stat, .np-stats-grid--dark .np-stat__value.is-style-stat { color: var(--wp--preset--color--sun); }
.is-style-stat-alert { color: var(--wp--preset--color--alert); }
.has-base-background-color .is-style-stat, .has-contrast-background-color .is-style-card:not(.has-background) .is-style-stat { color: var(--wp--preset--color--tangerine-dark); }
.np-stat-wave {
  display: block; width: 88px; height: 18px; margin: 0.75rem auto 1rem;
  background: currentColor; opacity: .7;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 88 18' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'><path d='M2 6c6-6 12-6 18 0s12 6 18 0 12-6 18 0 12 6 18 0 12-6 12-6'/><path d='M2 14c6-6 12-6 18 0s12 6 18 0 12-6 18 0 12 6 18 0 12-6 12-6'/></svg>") center / contain no-repeat;
  mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 88 18' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'><path d='M2 6c6-6 12-6 18 0s12 6 18 0 12-6 18 0 12 6 18 0 12-6 12-6'/><path d='M2 14c6-6 12-6 18 0s12 6 18 0 12-6 18 0 12 6 18 0 12-6 12-6'/></svg>") center / contain no-repeat;
}

/* ---- Cards --------------------------------------------------------------- */
.is-style-card, .is-style-card-tinted, .is-style-card-dark, .np-card {
  border-radius: var(--np-radius-card);
  padding: clamp(1.25rem, 3vw, 2rem);
  box-shadow: var(--np-shadow-card);
  background: var(--wp--preset--color--base);
  transition: transform .35s var(--np-ease), box-shadow .35s var(--np-ease);
}
.is-style-card-tinted { background: var(--wp--preset--color--surface-2); box-shadow: none; }
.is-style-card-dark { background: var(--wp--preset--color--contrast-2); color: #fff; }
.is-style-card-dark :is(h1,h2,h3,h4,h5,h6,p,li) { color: #fff; }
.is-style-card-dark a:not(.wp-block-button__link) { color: var(--wp--preset--color--sun); }
.np-card-link:hover, .np-card-link:focus-within { transform: translateY(-4px); box-shadow: var(--np-shadow-card-hover); }
.is-style-rounded-card img, .np-rounded img, .wp-block-post-featured-image.is-style-rounded-card img { border-radius: var(--np-radius-card); }
.wp-block-image.is-style-rounded-card img { border-radius: var(--np-radius-card); }
.np-icon-circle {
  width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center;
  background: rgba(255,255,255,0.18); margin-bottom: 1rem;
}
.np-icon-circle svg { width: 30px; height: 30px; }

/* ---- Buttons ------------------------------------------------------------- */
.wp-block-button__link { transition: background-color .2s, color .2s, border-color .2s, transform .2s; }
.wp-block-button__link:hover { transform: translateY(-1px); }
.wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent; color: var(--wp--preset--color--tangerine-dark); border: 2px solid var(--wp--preset--color--tangerine-dark);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--tangerine); border-color: var(--wp--preset--color--tangerine); color: var(--wp--preset--color--contrast); }
.has-contrast-background-color .wp-block-button.is-style-outline .wp-block-button__link,
.is-style-card-dark .wp-block-button.is-style-outline .wp-block-button__link,
.wp-block-cover .wp-block-button.is-style-outline .wp-block-button__link { color: #fff; border-color: #fff; }
.has-contrast-background-color .wp-block-button.is-style-outline .wp-block-button__link:hover,
.wp-block-cover .wp-block-button.is-style-outline .wp-block-button__link:hover { background: #fff; color: var(--wp--preset--color--contrast); }
.wp-block-button.is-style-pill-white .wp-block-button__link { background: #fff; color: var(--wp--preset--color--contrast); border-color: #fff; }
.wp-block-button.is-style-pill-white .wp-block-button__link:hover { background: var(--wp--preset--color--surface-2); border-color: var(--wp--preset--color--surface-2); color: var(--wp--preset--color--contrast); }
.wp-block-button.is-style-pill-navy .wp-block-button__link { background: var(--wp--preset--color--contrast); border-color: var(--wp--preset--color--contrast); color: #fff; }
.wp-block-button.is-style-pill-navy .wp-block-button__link:hover { background: var(--wp--preset--color--contrast-2); border-color: var(--wp--preset--color--contrast-2); color: #fff; }
.wp-block-button.is-style-pill-green .wp-block-button__link { background: var(--wp--preset--color--sea-green); border-color: var(--wp--preset--color--sea-green); color: var(--wp--preset--color--contrast); }
.wp-block-button.is-style-pill-green .wp-block-button__link:hover { background: var(--wp--preset--color--sea-green-deep); border-color: var(--wp--preset--color--sea-green-deep); color: #fff; }

/* ---- Lists --------------------------------------------------------------- */
.is-style-checklist { list-style: none; padding-left: 0; }
.is-style-checklist > li { position: relative; padding-left: 2.25rem; margin-bottom: 1rem; }
.is-style-checklist > li::before {
  content: ""; position: absolute; left: 0; top: 0.1em; width: 1.5rem; height: 1.5rem; border-radius: 50%;
  border: 2px solid var(--wp--preset--color--sea-green);
  background: var(--wp--preset--color--sea-green);
  -webkit-mask: none; mask: none;
}
.is-style-checklist > li::after {
  content: ""; position: absolute; left: 0.45rem; top: calc(0.1em + 0.35rem); width: 0.55rem; height: 0.85rem;
  border: solid var(--wp--preset--color--contrast); border-width: 0 2.5px 2.5px 0; transform: rotate(45deg);
}
.is-style-checklist > li strong { display: block; font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: 1.125rem; }
.is-style-checklist > li > span, .is-style-checklist > li > p { color: var(--np-muted); font-size: var(--wp--preset--font-size--small); }
.has-contrast-background-color .is-style-checklist > li > span { color: var(--np-muted-on-dark); }

/* ---- Cover / hero -------------------------------------------------------- */
.wp-block-cover.is-style-blurred .wp-block-cover__image-background { filter: blur(3px) saturate(0.85); transform: scale(1.04); }
.np-hero .wp-block-cover__inner-container { width: 100%; }
/* Home hero (Divi "Water Non Profit" layout): logo above the title, tall photo beside, white strip card below. */
.np-hero-mark { margin-bottom: 0.5rem; }
.np-hero-mark img { border-radius: 0; width: clamp(88px, 10vw, 120px); height: auto; }
.np-hero-photo { margin: 0; }
.np-hero-photo img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; box-shadow: var(--np-shadow-card); }
.np-hero-strip {
  color: var(--wp--preset--color--contrast);
  margin-top: clamp(2rem, 5vw, 3.5rem); background: #fff; border-radius: var(--np-radius-card); box-shadow: var(--np-shadow-card);
  padding: clamp(1.25rem, 3vw, 2rem) clamp(1.25rem, 3vw, 2.5rem); gap: 1rem 2rem;
}
.np-hero-strip__text { flex: 1 1 22rem; }
.wp-block-cover .np-hero-strip .wp-block-button.is-style-outline .wp-block-button__link { color: var(--wp--preset--color--tangerine-dark); border-color: var(--wp--preset--color--tangerine-dark); }
.wp-block-cover .np-hero-strip .wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--tangerine); border-color: var(--wp--preset--color--tangerine); color: var(--wp--preset--color--contrast); }
.np-hero-strip__text > * { margin-block: 0.25rem; }
/* Mission band: the three cards that used to sit in the hero, below the statement. */
.np-mission-cards { margin-top: var(--wp--preset--spacing--50); }
.np-mission-cards > .wp-block-column { display: flex; flex-direction: column; gap: 1.25rem; }
.np-mission-cards > .wp-block-column > .wp-block-group { flex: 1; margin: 0; }
.np-mission-cards .wp-block-buttons { margin: 0; }
.np-mission-cards .is-style-card { color: var(--wp--preset--color--contrast); }
.np-mission-cards .is-style-card .is-style-stat { font-size: clamp(2.5rem, 4.5vw, 3.25rem) !important; margin-bottom: 0.25rem; }
.np-mission-cards .np-fill { flex: 1; margin: 0; }
.np-mission-cards .np-fill img { width: 100%; height: 100%; min-height: 16rem; object-fit: cover; }
.np-icon-circle--navy { background: rgba(20, 38, 58, 0.12); }
/* Coloured card (Evidence you can check): button at the foot of the card, never tight under the text. */
.np-mission-cards .is-style-card.has-background { display: flex; flex-direction: column; }
.np-mission-cards .is-style-card.has-background > .wp-block-buttons { margin-block-start: auto; padding-top: 1.5rem; }
/* White cards inside a navy band keep light-background text colours (the band's "on dark" rules would win otherwise). */
.has-contrast-background-color .is-style-card:not(.has-background) .is-style-eyebrow { color: var(--wp--preset--color--tangerine-dark); }
.has-contrast-background-color .is-style-card:not(.has-background) .is-style-source { color: var(--np-muted); }
/* Text over photos: yellow accents instead of the dark orange used on white. */
.wp-block-cover:not(.np-hero) .is-style-eyebrow, .wp-block-cover .is-style-source a { color: var(--wp--preset--color--sun); }

/* ---- Bento image grid ---------------------------------------------------- */
.np-bento { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.np-bento .wp-block-image, .np-bento figure { margin: 0; }
.np-bento img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--np-radius-card); aspect-ratio: 3 / 4; }
.np-bento .wp-block-image:nth-child(2) img { aspect-ratio: 1 / 1; }
.np-bento .wp-block-image:nth-child(3) img { aspect-ratio: 1 / 1; }
.np-bento .wp-block-image:nth-child(2) { align-self: start; }
.np-bento .wp-block-image:nth-child(3) { align-self: end; }

/* ---- Post grid (query loop) ------------------------------------------------ */
.np-post-grid .wp-block-post {
  background: #fff; border: 1px solid var(--wp--preset--color--surface-2); border-radius: var(--np-radius-card);
  overflow: hidden; display: flex; flex-direction: column;
  transition: transform .3s var(--np-ease), box-shadow .3s var(--np-ease);
}
.np-post-grid .wp-block-post:hover, .np-post-grid .wp-block-post:focus-within { transform: translateY(-4px); box-shadow: var(--np-shadow-card-hover); }
.np-post-grid .wp-block-post-featured-image { margin: 0; }
.np-post-grid .wp-block-post-featured-image img { aspect-ratio: 16 / 10; object-fit: cover; width: 100%; }
.np-post-grid .np-post-body { padding: 1.25rem 1.5rem 1.5rem; display: flex; flex-direction: column; gap: 0.5rem; flex: 1; }
.np-post-grid .wp-block-post-title { font-size: 1.25rem; font-weight: 500; margin: 0; }
.np-post-grid .wp-block-post-title a { text-decoration: none; color: var(--wp--preset--color--contrast); }
.np-post-grid .wp-block-post-title a:hover { text-decoration: underline; }
.post-type-archive-np_news .np-post-grid .wp-block-post-title a, .tax-np_news_type .np-post-grid .wp-block-post-title a { color: var(--wp--preset--color--sea-green-deep); }
.np-post-grid .wp-block-post-excerpt { font-size: var(--wp--preset--font-size--small); color: var(--np-muted); }
.np-post-grid .wp-block-post-excerpt__more-text { margin-top: 0.5rem; }
.np-post-meta { font-size: var(--wp--preset--font-size--small); color: var(--np-muted); }
.np-post-meta .wp-block-post-terms a { text-decoration: none; }
.np-post-meta .wp-block-post-terms a:hover { text-decoration: underline; }

/* Full-width bands sit flush: the 20px flow-layout block gap showed as a white strip where coloured bands meet. */
.entry-content > .alignfull + .alignfull { margin-block-start: 0; }

/* ---- Footer ---------------------------------------------------------------- */
/* A page that ends with a full-width photo meets the footer with no white strip (the 20px block gap). */
.wp-site-blocks > main:has(> .entry-content > .wp-block-cover.alignfull:last-child) + footer { margin-block-start: 0; }
.np-footer a { color: #fff; }
.np-footer a:hover { color: var(--wp--preset--color--sun); }
.np-footer-links { list-style: none; padding-left: 0; }
.np-footer-links li { margin-bottom: 0.6rem; }
.np-footer-links a { text-decoration: none; }
.np-footer-links a:hover { text-decoration: underline; }
.np-footer .wp-block-site-logo img { border-radius: 10px; }
/* Intrinsic Ninja credit: 24px logo at the end of the bottom links row; 44px tap area without taking extra space. */
.np-footer-credit { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; margin: -10px -10px -10px -10px; vertical-align: middle; }
.np-footer-credit img { display: block; width: 24px; height: 24px; }
.np-newsletter { display: flex; gap: 0.75rem; flex-wrap: wrap; margin-top: 1rem; }
.np-newsletter input[type="email"], .np-newsletter input[name="first_name"] {
  flex: 1 1 14rem; min-height: 48px; padding: 0.75rem 1.25rem; border-radius: var(--np-radius-pill);
  border: 1px solid #3C5670; background: #1E3A52; color: #fff; font: inherit;
}
.np-newsletter input[type="email"]::placeholder, .np-newsletter input[name="first_name"]::placeholder { color: #9FB2C3; }
.np-newsletter input[name="first_name"] { flex-basis: 8rem; }
.np-newsletter button {
  min-height: 48px; padding: 0.75rem 1.75rem; border-radius: var(--np-radius-pill); border: 2px solid #fff;
  background: #fff; color: var(--wp--preset--color--contrast); font: inherit; font-size: 0.8125rem; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase; cursor: pointer;
}
.np-newsletter button:hover { background: var(--wp--preset--color--surface-2); }
.np-newsletter .np-hp { position: absolute; left: -9999px; }
.np-newsletter-msg { margin-top: 0.5rem; font-size: var(--wp--preset--font-size--small); color: var(--np-muted-on-dark); }
.np-newsletter-msg[data-state="ok"] { color: var(--wp--preset--color--leaf); }
.np-newsletter-msg[data-state="error"] { color: #FFB4B5; }
/* Gravity Forms "Newsletter sign-up" form on the dark footer: themed through GF's own CSS variables. */
.np-newsletter-block { margin-top: 1rem; }
.np-newsletter-block .gform_wrapper.gform-theme {
  --gf-color-primary: #fff; --gf-color-primary-contrast: var(--wp--preset--color--contrast);
  --gf-ctrl-bg-color: #1E3A52; --gf-ctrl-bg-color-hover: #1E3A52; --gf-ctrl-bg-color-focus: #1E3A52;
  --gf-ctrl-border-color: #3C5670; --gf-ctrl-color: #fff; --gf-ctrl-placeholder-color: #9FB2C3;
  --gf-ctrl-label-color-primary: #B9C7D3; --gf-ctrl-label-color-req: #FFB4B5; --gf-ctrl-desc-color: #B9C7D3;
  --gf-ctrl-size: 48px; --gf-ctrl-radius: var(--np-radius-pill);
  --gf-ctrl-btn-bg-color-primary: #fff; --gf-ctrl-btn-color-primary: var(--wp--preset--color--contrast);
  --gf-ctrl-btn-radius: var(--np-radius-pill); --gf-ctrl-btn-size: 48px;
}
/* GF's own rules are 0,2,0 to 0,3,0 specific; these need to win. */
.np-footer .np-newsletter-block .gform-theme--framework .gfield_label,
.np-footer .np-newsletter-block .gform-theme--framework .gform-field-label { color: #B9C7D3; font-size: 0.875rem; font-weight: 500; }
.np-footer .np-newsletter-block .gform-theme--framework .gfield_required { color: #FFB4B5; }
.np-footer .np-newsletter-block .gform-theme--framework input[type="text"],
.np-footer .np-newsletter-block .gform-theme--framework input[type="email"] { min-block-size: 48px; font-size: 1rem; padding-inline: 1.25rem; }
/* GF's button rule chains wrapper + theme classes, so this one has to match that chain. */
.np-footer .np-newsletter-block .gform_wrapper.gform-theme.gform-theme--framework .gform_footer input[type="submit"].gform_button.button {
  block-size: 48px; min-block-size: 48px; padding-inline: 1.75rem; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
}
.np-footer .np-newsletter-block .ginput_counter { display: none; }
.np-newsletter-block .gform_confirmation_message { color: var(--wp--preset--color--leaf); }

/* ---- Details (collapsed templates on /take-action/letters/) --------------- */
.wp-block-details { border-bottom: 1px solid var(--wp--preset--color--surface-2); }
.wp-block-details > summary { min-height: 44px; padding: 0.6rem 0; cursor: pointer; font-family: var(--wp--preset--font-family--heading); font-size: 1.125rem; font-weight: 500; line-height: 1.5; }
.wp-block-details > summary:hover { color: var(--wp--preset--color--ocean-dark); }
.wp-block-details[open] > summary { margin-bottom: 0.75rem; }
/* ---- Photo credits --------------------------------------------------------- */
.np-credits-list li { margin-bottom: 0.5rem; }

/* ---- Utilities --------------------------------------------------------------- */
.np-band { padding-top: var(--wp--preset--spacing--50); padding-bottom: var(--wp--preset--spacing--50); }
.np-overlap-up { margin-top: clamp(-10rem, -14vw, -5rem); position: relative; z-index: 2; }
.np-sticky-toc { position: sticky; top: 6rem; }
.wp-block-search__inside-wrapper { border-radius: var(--np-radius-pill); padding: 4px; border: 1px solid var(--wp--preset--color--surface-2) !important; }
.wp-block-search__input { border: 0; border-radius: var(--np-radius-pill); padding-left: 1rem; }
.wp-block-search__button { border-radius: var(--np-radius-pill); background: var(--wp--preset--color--tangerine); color: var(--wp--preset--color--contrast); border: 0; padding: 0.5rem 1.25rem; font-weight: 600; }
.wp-block-table table { border-collapse: collapse; }
.wp-block-table td, .wp-block-table th { border: 1px solid var(--wp--preset--color--surface-2); padding: 0.6rem 0.75rem; vertical-align: top; }
.wp-block-table thead th { background: var(--wp--preset--color--surface); }
.np-badge {
  display: inline-block; padding: 0.15rem 0.6rem; border-radius: var(--np-radius-pill); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.04em;
  background: var(--wp--preset--color--surface-2); color: var(--wp--preset--color--contrast);
}
.np-badge--high { background: #DDF2E5; color: #17603F; }
.np-badge--medium { background: #FFF1CC; color: #6B4E00; }
.np-badge--low, .np-badge--contested { background: #FFE0E0; color: #8B1B1D; }

/* Headings placed directly in a coloured band with white text follow the band's text colour.
   theme.json's heading colour otherwise wins and paints navy headings on navy bands (invisible). */
.has-background.has-base-color > .wp-block-heading { color: inherit; }
.has-base-color .np-live .np-stat__label { color: inherit; } /* live counters on /statistics/ sit in a navy band */

/* ---- Responsive ---------------------------------------------------------------- */
@media (max-width: 781px) {
  .np-hero-photo img { aspect-ratio: 4 / 3; }
  .np-overlap-up { margin-top: -2rem; }
  .np-bento { gap: 0.75rem; }
  .np-header { position: static; }
}
@media (max-width: 600px) {
  .np-nav .wp-block-navigation__responsive-container-open { margin-left: auto; }
}

/* ---- Nav: never wrap labels ------------------------------------------------- */
.np-nav .wp-block-navigation-item__content { white-space: nowrap; }
.np-nav .wp-block-navigation-item__label { white-space: nowrap; }
@media (max-width: 1080px) { .np-nav .wp-block-navigation-item__content { font-size: 0.875rem; } }

/* ---- Video facade (no third-party requests until play) ------------------- */
.np-video { position: relative; }
.np-video__play { position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; padding: 0; border: 0; border-radius: var(--np-radius-card); overflow: hidden; cursor: pointer; background: #000; }
.np-video__play img { width: 100%; height: 100%; object-fit: cover; opacity: .85; transition: opacity .3s, transform .5s var(--np-ease); }
.np-video__play:hover img, .np-video__play:focus-visible img { opacity: 1; transform: scale(1.03); }
.np-video__icon { position: absolute; inset: 0; margin: auto; width: 84px; height: 84px; border-radius: 50%; background: var(--wp--preset--color--alert); color: #fff; font-size: 2rem; display: grid; place-items: center; padding-left: 6px; box-shadow: 0 10px 30px rgba(0,0,0,.35); }
.np-video iframe { width: 100%; aspect-ratio: 16 / 9; border: 0; border-radius: var(--np-radius-card); }
.np-video__privacy { font-size: 0.75rem; color: var(--np-muted-on-dark); margin: 0.5rem 0 0; }
.has-base-background-color .np-video__privacy, .np-video--light .np-video__privacy { color: var(--np-muted); }
.np-video-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1.5rem; }
.np-video-card { background: #fff; border: 1px solid var(--wp--preset--color--surface-2); border-radius: var(--np-radius-card); padding: 1.25rem; display: flex; flex-direction: column; gap: 0.5rem; }
.np-video-card h3 { margin: 0; font-size: 1.125rem; }
.np-video-card .np-muted { font-size: 0.875rem; }
.np-brand .wp-block-site-title, .np-brand .wp-block-site-title a { white-space: nowrap; }
.np-brand { flex-shrink: 0; }
/* Collapse the menu to the hamburger between 600px and 1079px (core only collapses below 600px). Six links plus a 40px logo fit from 1080px. */
@media (max-width: 1079px) and (min-width: 600px) {
  .np-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none; }
  .np-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
  .np-nav .wp-block-navigation__responsive-container.is-menu-open { display: flex; }
}
/* Open overlay menu: left-aligned, padded, larger targets */
.np-nav .wp-block-navigation__responsive-container.is-menu-open { padding: 1.5rem clamp(1.25rem, 5vw, 3rem) !important; }
.np-nav .is-menu-open .wp-block-navigation__responsive-container-content { align-items: flex-start; gap: 0.5rem; }
.np-nav .is-menu-open .wp-block-navigation__container { align-items: flex-start; justify-content: flex-start; gap: 0.25rem; }
.np-nav .is-menu-open .wp-block-navigation-item__content { font-size: 1.375rem; font-family: var(--wp--preset--font-family--heading); font-weight: 500; padding: 0.5rem 0; }
.np-nav .is-menu-open .wp-block-navigation-item { align-self: flex-start; text-align: left; margin-left: 0; }
.np-nav .is-menu-open .wp-block-navigation__container.items-justified-right { justify-content: flex-start; align-items: flex-start; }

/* ---- Nav sub-menus: open on click or tap only (openSubmenusOnClick), never on hover ---- */
.np-nav .wp-block-navigation-submenu__toggle { min-height: 44px; cursor: pointer; }
.np-nav .wp-block-navigation__submenu-container { border: 0 !important; border-radius: 12px; padding: 0.5rem !important; box-shadow: 0 12px 32px rgba(20, 38, 58, 0.25); }
.np-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { min-height: 44px; box-sizing: border-box; padding: 0.5rem 0.75rem !important; width: 100%; justify-content: flex-start; text-align: left; }
.np-nav .wp-block-navigation__submenu-container .wp-block-navigation-item { align-self: stretch; }
.np-nav .wp-block-navigation__submenu-container a:hover { color: var(--wp--preset--color--sun); text-decoration: underline; }
.np-nav .wp-block-navigation__submenu-container a:focus-visible { outline: 2px solid var(--wp--preset--color--sun); outline-offset: -2px; }
/* Core shows every sub-menu expanded inside the overlay. theme.js keeps each group collapsed until its
   button is pressed (aria-expanded), and a chevron turns when open, so the phone menu stays short. */
.np-nav .is-menu-open .wp-block-navigation-submenu { align-items: flex-start; }
.np-nav .is-menu-open .wp-block-navigation-submenu > .wp-block-navigation-submenu__toggle { align-self: flex-start; justify-content: flex-start; text-align: left; }
.np-nav .is-menu-open .wp-block-navigation-submenu__toggle::after { content: ""; width: 0.5em; height: 0.5em; margin: -0.25em 0 0 0.75rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); }
.np-nav .is-menu-open .wp-block-navigation-submenu__toggle[aria-expanded="true"]::after { margin-top: 0.25em; transform: rotate(-135deg); }
.np-nav .is-menu-open .wp-block-navigation-submenu__toggle[aria-expanded="false"] ~ .wp-block-navigation__submenu-container { display: none; }
.np-nav .is-menu-open .wp-block-navigation__submenu-container { box-shadow: none; padding: 0 0 0.5rem 1rem !important; }
.np-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 1.125rem; font-family: var(--wp--preset--font-family--body); padding: 0.5rem 0 !important; }

/* Good news band */
.np-good-news .is-style-eyebrow { color: #14263A; }
.np-good-news .np-post-grid .wp-block-post { border-color: transparent; }
.np-good-news .wp-block-button.is-style-pill-white .wp-block-button__link { color: #14263A; }
.np-news-type a { display: inline-block; padding: 0.05rem 0.55rem; border-radius: 999px; background: #E4EDF2; color: #14263A; text-decoration: none; font-size: 0.75rem; font-weight: 600; }
.np-news-type a[href*="good-news"] { background: #DDF2E5; color: #17603F; }
.np-news-filters a { text-decoration: none; font-weight: 600; }
