:root {
  --nusci-color-forest: #0b3558;
  --nusci-color-leaf: #0269b3;
  --nusci-color-sun: #f3b33d;
  --nusci-color-ink: #122333;
  --nusci-color-muted: #526878;
  --nusci-color-mist: #edf6fc;
  --nusci-color-paper: #fdfefe;
  --nusci-color-danger: #9f2d20;
  --nusci-space-1: 0.375rem;
  --nusci-space-2: 0.75rem;
  --nusci-space-3: 1rem;
  --nusci-space-4: 1.5rem;
  --nusci-space-5: 2.25rem;
  --nusci-space-6: 3.375rem;
  --nusci-radius-sm: 0.375rem;
  --nusci-radius-md: 0.75rem;
  --nusci-content: 64rem;
  --nusci-wide: 72rem;
  --nusci-focus: 0 0 0 3px var(--nusci-color-paper), 0 0 0 6px var(--nusci-color-leaf);
}

body {
  background: var(--nusci-color-paper);
  color: var(--nusci-color-ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.65;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--nusci-color-forest);
  font-family: Charter, "Bitstream Charter", "Sitka Text", Cambria, serif;
  line-height: 1.15;
  text-wrap: balance;
}

a {
  color: var(--nusci-color-leaf);
  text-underline-offset: 0.18em;
}

a:hover {
  color: var(--nusci-color-forest);
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  border-radius: var(--nusci-radius-sm);
  box-shadow: var(--nusci-focus);
  outline: 2px solid transparent;
}

:where(button, .button, .wp-element-button, .wp-block-button__link, input[type="submit"]) {
  align-items: center;
  background: var(--nusci-color-forest);
  border: 2px solid var(--nusci-color-forest);
  border-radius: var(--nusci-radius-sm);
  color: #fff;
  cursor: pointer;
  display: inline-flex;
  font-weight: 700;
  justify-content: center;
  min-height: 2.75rem;
  padding: var(--nusci-space-2) var(--nusci-space-4);
  text-decoration: none;
}

:where(button, .button, .wp-element-button, .wp-block-button__link, input[type="submit"]):hover {
  background: var(--nusci-color-leaf);
  border-color: var(--nusci-color-leaf);
  color: #fff;
}

:where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  background: #fff;
  border: 1px solid #71869a;
  border-radius: var(--nusci-radius-sm);
  color: var(--nusci-color-ink);
  display: block;
  font: inherit;
  margin-block: var(--nusci-space-1) var(--nusci-space-3);
  min-height: 2.75rem;
  padding: var(--nusci-space-2);
  width: 100%;
}

label {
  color: var(--nusci-color-ink);
  font-weight: 700;
}

.nusci-card {
  background: #fff;
  border: 1px solid #cbdce8;
  border-radius: var(--nusci-radius-md);
  padding: var(--nusci-space-4);
}

.nusci-notice,
.woocommerce-info,
.tribe-events-notices {
  background: var(--nusci-color-mist);
  border-inline-start: 0.3rem solid var(--nusci-color-leaf);
  border-radius: var(--nusci-radius-sm);
  color: var(--nusci-color-ink);
  margin-block: var(--nusci-space-3);
  padding: var(--nusci-space-3) var(--nusci-space-4);
}

.woocommerce-error,
.ff-el-is-error .text-danger {
  color: var(--nusci-color-danger);
}

.site-header,
.main-navigation,
.site-footer {
  border-color: #d5e1ea;
}

.tribe-common,
.woocommerce,
.fluentform {
  color: var(--nusci-color-ink);
  font-family: inherit;
}

/* Practitioner survey. */
.nusci-practitioner-survey {
  margin-block: var(--nusci-space-5);
}

/* Directory results: keep the listing and its location map visible together. */
.nusci-directory-results {
  display: grid;
  gap: var(--nusci-space-5);
  grid-template-columns: minmax(0, 1fr) minmax(20rem, 1fr);
  margin-block: var(--nusci-space-5);
}

/* Keep the directory search comfortably separated from the map above it. */
.geodir-map-wrap {
  margin-bottom: var(--nusci-space-5);
}

.nusci-directory-results__map {
  min-width: 0;
  position: sticky;
  top: var(--nusci-space-4);
}

@media (max-width: 50rem) {
  .nusci-directory-results {
    grid-template-columns: 1fr;
  }

  .nusci-directory-results__map {
    position: static;
  }
}

.nusci-practitioner-survey fieldset {
  border: 1px solid #c8d8e5;
  border-radius: var(--nusci-radius-sm);
  margin: var(--nusci-space-4) 0;
  padding: var(--nusci-space-4);
}

.nusci-practitioner-survey legend {
  color: var(--nusci-color-forest);
  font-weight: 700;
  padding-inline: 0.35rem;
}

.nusci-practitioner-survey__lede {
  color: var(--nusci-color-forest);
  font-size: 1.15rem;
  font-weight: 700;
}

.nusci-practitioner-survey__hint {
  font-size: 0.9375rem;
}

.nusci-practitioner-survey__question {
  background: #fff;
  margin: var(--nusci-space-3) 0 !important;
}

.nusci-practitioner-survey__question legend {
  color: var(--nusci-color-ink);
  font-weight: 400;
}

.nusci-practitioner-survey__question label,
.nusci-practitioner-survey__inline,
.nusci-practitioner-survey__check {
  align-items: baseline;
  display: inline-flex;
  gap: 0.35rem;
  margin: 0.25rem 1rem 0.25rem 0;
}

.nusci-practitioner-survey__fields {
  display: grid;
  gap: var(--nusci-space-3);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.nusci-practitioner-survey__fields p {
  margin: 0;
}

.nusci-practitioner-survey__fields label:not(.nusci-practitioner-survey__check):not(.nusci-practitioner-survey__inline),
.nusci-practitioner-survey__label {
  display: block;
  font-weight: 700;
  margin-bottom: 0.35rem;
}

.nusci-practitioner-survey__fields input[type="text"],
.nusci-practitioner-survey__fields input[type="url"],
.nusci-practitioner-survey__fields input[type="tel"],
.nusci-practitioner-survey input[type="email"] {
  box-sizing: border-box;
  width: 100%;
}

.nusci-practitioner-survey__full {
  grid-column: 1 / -1;
}

.nusci-practitioner-survey__check {
  width: min(100%, 20rem);
}

.nusci-practitioner-survey__location .nusci-practitioner-survey__fields {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.nusci-practitioner-survey__location .nusci-practitioner-survey__fields p:nth-child(1),
.nusci-practitioner-survey__location .nusci-practitioner-survey__fields p:nth-child(2),
.nusci-practitioner-survey__location .nusci-practitioner-survey__fields p:nth-child(6),
.nusci-practitioner-survey__location .nusci-practitioner-survey__fields p:nth-child(7) {
  grid-column: span 3;
}

/* GeoDirectory's radio fields use a compact Bootstrap inline layout by
 * default. Give each philosophy question its own readable block and keep
 * the answer choices separated from the question text. */
[id^="practice_agreement_"],
[id^="practice_recommendation_"] {
  margin-block: var(--nusci-space-4);
}

[id^="practice_agreement_"] > label,
[id^="practice_recommendation_"] > label,
[id^="practice_agreement_"] .col-form-label,
[id^="practice_recommendation_"] .col-form-label {
  display: block;
  float: none;
  margin-bottom: var(--nusci-space-2);
  max-width: none;
  width: auto;
}

[id^="practice_agreement_"] .form-group.row,
[id^="practice_recommendation_"] .form-group.row {
  display: block;
  margin: 0;
}

[id^="practice_agreement_"] .form-group.row > div,
[id^="practice_recommendation_"] .form-group.row > div {
  float: none;
  max-width: none;
  width: 100%;
}

[id^="practice_agreement_"] .form-check-inline,
[id^="practice_recommendation_"] .form-check-inline {
  margin-inline-end: var(--nusci-space-4);
  margin-bottom: var(--nusci-space-2);
}

@media (max-width: 40rem) {
  [id^="practice_agreement_"] .form-check-inline,
  [id^="practice_recommendation_"] .form-check-inline {
    display: block;
    margin-inline-end: 0;
  }
}

.nusci-practitioner-survey__honeypot {
  height: 0;
  margin: 0;
  overflow: hidden;
  position: absolute;
  width: 0;
}

.nusci-practitioner-application dt {
  font-weight: 700;
  margin-top: 1rem;
}

.nusci-practitioner-application dd {
  margin-left: 0;
}

.nusci-practitioner-application pre {
  max-width: 100%;
  overflow: auto;
}

@media (max-width: 48rem) {
  .nusci-practitioner-survey__fields,
  .nusci-practitioner-survey__location .nusci-practitioner-survey__fields {
    grid-template-columns: 1fr;
  }

  .nusci-practitioner-survey__location .nusci-practitioner-survey__fields p:nth-child(n) {
    grid-column: auto;
  }
}

@media (max-width: 48rem) {
  :root {
    --nusci-space-5: 1.75rem;
    --nusci-space-6: 2.5rem;
  }

  :where(button, .button, .wp-element-button, .wp-block-button__link, input[type="submit"]) {
    width: 100%;
  }
}

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

/* Modern NuSci shell and GeneratePress integration. */
body {
  background: #f6f9fc;
  min-height: 100vh;
}

/* Keep the footer at the viewport bottom when a page has little content. */
.site.grid-container {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

.site-content {
  flex: 1 0 auto;
}

.site-footer {
  margin-top: auto;
}

.grid-container {
  max-width: var(--nusci-wide);
}

.site-header {
  background: rgba(255, 253, 248, 0.96);
  border-bottom: 1px solid #d5e1ea;
  position: sticky;
  top: 0;
  z-index: 1000;
}

.nusci-back-to-top {
  align-items: center;
  background: var(--nusci-color-leaf);
  border: 0;
  border-radius: 50%;
  bottom: max(1.25rem, env(safe-area-inset-bottom));
  box-shadow: 0 0.5rem 1.25rem rgba(21, 52, 48, 0.25);
  color: #fff;
  cursor: pointer;
  display: flex;
  font-size: 1.5rem;
  font-weight: 800;
  height: 3rem;
  justify-content: center;
  line-height: 1;
  padding: 0;
  position: fixed;
  right: max(1.25rem, env(safe-area-inset-right));
  transition: background-color 160ms ease, transform 160ms ease;
  width: 3rem;
  z-index: 999;
}

.nusci-back-to-top:hover,
.nusci-back-to-top:focus-visible {
  background: var(--nusci-color-forest);
  color: #fff;
  transform: translateY(-0.2rem);
}

.nusci-back-to-top:focus-visible {
  outline: 0.2rem solid var(--nusci-color-sun);
  outline-offset: 0.2rem;
}

.site-header .inside-header {
  align-items: center;
  display: flex;
  flex-wrap: nowrap;
  gap: var(--nusci-space-3);
  max-width: var(--nusci-wide);
  padding: 0.65rem var(--nusci-space-4);
}

.site-header .site-logo {
  align-items: center;
  display: flex;
  flex: 0 0 auto;
  line-height: 0;
}

.site-header .site-logo a {
  display: block;
}

.site-header .site-logo .header-image {
  display: block;
  height: auto;
  width: 4rem;
}

.main-title {
  font: 800 clamp(1.35rem, 1.1rem + 0.7vw, 1.85rem) / 1 Inter, ui-sans-serif, system-ui, sans-serif;
  letter-spacing: -0.04em;
}

.main-title a,
.main-title a:hover {
  color: var(--nusci-color-forest);
}

.site-description {
  color: var(--nusci-color-muted);
  font-size: 0.78rem;
  line-height: 1.35;
  margin-top: 0.3rem;
  max-width: 18rem;
}

.main-navigation {
  background: var(--nusci-color-forest);
}

.site-header #site-navigation,
.site-header #mobile-menu-control-wrapper {
  background: transparent;
  margin-left: auto;
}

.site-header #site-navigation .inside-navigation {
  padding: 0;
}

.site-header .main-navigation .main-nav ul li a,
.site-header .main-navigation .menu-toggle,
.site-header .main-navigation .menu-bar-items {
  color: var(--nusci-color-forest);
  font-size: 0.92rem;
  padding-inline: 0.85rem;
}

.site-header .main-navigation .main-nav ul li:hover > a,
.site-header .main-navigation .main-nav ul li:focus-within > a,
.site-header .main-navigation .main-nav ul li[class*="current-menu-"] > a {
  background: var(--nusci-color-mist);
  color: var(--nusci-color-leaf);
}

.main-navigation .inside-navigation {
  max-width: var(--nusci-wide);
  padding-inline: var(--nusci-space-3);
}

.main-navigation .main-nav ul li a,
.menu-toggle,
.main-navigation .menu-bar-item > a {
  color: #fff;
  font-weight: 700;
}

.main-navigation .main-nav ul li a {
  box-sizing: border-box;
  padding-inline: 1rem;
}

.main-navigation .main-nav ul li:hover > a,
.main-navigation .main-nav ul li:focus-within > a,
.main-navigation .main-nav ul li[class*="current-menu-"] > a {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}

.site-content {
  padding: var(--nusci-space-5) var(--nusci-space-4);
}

.home .site-content,
.home .content-area,
.home .site-main,
.home .inside-article,
.home .entry-content {
  margin: 0;
  max-width: none;
  padding: 0;
  width: 100%;
}

.home .site.grid-container {
  max-width: none;
}

.home .entry-header {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

.nusci-home {
  margin: 0;
  overflow: hidden;
}

.nusci-shell {
  margin-inline: auto;
  max-width: var(--nusci-wide);
  padding-inline: var(--nusci-space-4);
  width: 100%;
}

.nusci-eyebrow {
  color: var(--nusci-color-leaf);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.13em;
  margin-bottom: var(--nusci-space-2);
  text-transform: uppercase;
}

.nusci-section {
  background: var(--nusci-color-paper);
  padding-block: clamp(2.5rem, 4vw, 4rem);
}

.nusci-section__title {
  font-size: clamp(1.9rem, 1.5rem + 1.8vw, 3rem);
  letter-spacing: -0.035em;
  margin-bottom: var(--nusci-space-3);
}

.nusci-section__intro {
  color: var(--nusci-color-muted);
  font-size: 1.1rem;
  margin-bottom: var(--nusci-space-5);
  max-width: 64ch;
}

.nusci-hero {
  background: var(--nusci-color-mist);
  padding-block: clamp(2.75rem, 5vw, 5.5rem);
  position: relative;
}

.nusci-hero::before {
  display: none;
}

.nusci-hero__grid {
  gap: clamp(2rem, 5vw, 5rem);
  position: relative;
}

.nusci-hero__title {
  font-size: clamp(2.5rem, 1.8rem + 3vw, 4.5rem);
  letter-spacing: -0.055em;
  line-height: 0.98;
  margin-bottom: var(--nusci-space-4);
  max-width: 20ch;
}

.nusci-hero__lede {
  color: #344b5f;
  font-size: clamp(1.05rem, 0.98rem + 0.35vw, 1.3rem);
  margin-bottom: var(--nusci-space-4);
  max-width: 55ch;
}

.nusci-hero .is-style-outline .wp-block-button__link,
.nusci-final-cta .is-style-outline .wp-block-button__link {
  background: transparent;
  color: var(--nusci-color-forest);
}

.nusci-hero .is-style-outline .wp-block-button__link:hover,
.nusci-final-cta .is-style-outline .wp-block-button__link:hover {
  background: var(--nusci-color-forest);
  color: #fff;
}

.nusci-hero__image {
  background: #fff;
  border: 0.65rem solid #fff;
  border-radius: 1.5rem;
  box-shadow: 0 1.5rem 4rem rgba(11, 53, 88, 0.2);
  margin: 0;
  overflow: hidden;
  transform: rotate(2deg);
}

.nusci-hero__image img {
  aspect-ratio: 1 / 1;
  display: block;
  object-fit: cover;
  width: 100%;
}

.nusci-hero__image figcaption {
  background: #fff;
  color: var(--nusci-color-ink);
  font-size: 0.95rem;
  margin: 0;
  padding: var(--nusci-space-3);
  text-align: left;
}

.nusci-trust-strip {
  background: var(--nusci-color-forest);
  color: #fff;
}

.nusci-trust-strip__items {
  display: grid;
  font-size: 0.78rem;
  font-weight: 800;
  gap: 0;
  grid-template-columns: repeat(4, 1fr);
  letter-spacing: 0.08em;
  padding-block: 1.15rem;
  text-align: center;
  text-transform: uppercase;
}

.nusci-trust-strip__items span + span {
  border-left: 1px solid rgba(255, 255, 255, 0.22);
}

.nusci-path-grid,
.nusci-media-grid {
  gap: var(--nusci-space-4);
}

.nusci-path-card {
  background: #fff;
  border: 1px solid #d5e1ea;
  border-radius: 1rem;
  box-shadow: 0 0.8rem 2rem rgba(11, 53, 88, 0.07);
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: var(--nusci-space-4);
}

.nusci-path-card__number {
  color: var(--nusci-color-leaf);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.nusci-path-card h3 {
  font-size: 1.45rem;
  margin: var(--nusci-space-3) 0 var(--nusci-space-2);
}

.nusci-path-card p {
  color: var(--nusci-color-muted);
}

.nusci-path-card p:last-child {
  margin-top: auto;
  padding-top: var(--nusci-space-3);
}

.nusci-path-card a,
.nusci-text-link {
  color: var(--nusci-color-forest);
  font-weight: 800;
  text-decoration-thickness: 2px;
}

.nusci-mission {
  background: var(--nusci-color-forest);
  color: #e9f2ed;
  padding-block: clamp(2.5rem, 4vw, 4rem);
}

.nusci-mission .wp-block-columns {
  gap: clamp(2rem, 7vw, 7rem);
}

.nusci-mission h2,
.nusci-mission .nusci-eyebrow,
.nusci-mission a {
  color: #fff;
}

.nusci-mission h2 {
  font-size: clamp(1.9rem, 1.5rem + 1.8vw, 3rem);
  letter-spacing: -0.035em;
}

.nusci-mission p {
  font-size: 1rem;
}

.nusci-stories {
  background: #edf6fc;
}

.nusci-media-card {
  background: #fff;
  border-radius: 1rem;
  box-shadow: 0 0.8rem 2.5rem rgba(11, 53, 88, 0.11);
  overflow: hidden;
}

.nusci-media-card__image {
  background: #102d46;
  border: 0;
  border-radius: 0;
  color: inherit;
  cursor: pointer;
  display: block;
  min-height: 0;
  overflow: hidden;
  padding: 0;
  position: relative;
  text-align: initial;
  width: 100%;
}

.nusci-media-card__image img {
  aspect-ratio: 16 / 9;
  display: block;
  object-fit: cover;
  transition: opacity 180ms ease, transform 180ms ease;
  width: 100%;
}

.nusci-media-card__image:hover img {
  opacity: 0.82;
  transform: scale(1.025);
}

.nusci-media-card__video {
  aspect-ratio: 16 / 9;
  background: #102d46;
  display: block;
  object-fit: cover;
  width: 100%;
}

.nusci-play {
  align-items: center;
  background: rgba(255, 253, 248, 0.94);
  border-radius: 50%;
  color: var(--nusci-color-forest);
  display: flex;
  height: 3rem;
  justify-content: center;
  left: 50%;
  padding-left: 0.15rem;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 3rem;
}

.nusci-media-card__body {
  padding: var(--nusci-space-4);
}

.nusci-media-card__body h3 {
  font-size: 1.45rem;
  margin-bottom: var(--nusci-space-3);
}

.nusci-card__meta {
  color: var(--nusci-color-leaf);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  margin-bottom: var(--nusci-space-2);
  text-transform: uppercase;
}

.nusci-media-card__body a {
  font-weight: 800;
}

.nusci-video-link {
  background: transparent;
  border: 0;
  color: var(--nusci-color-leaf);
  display: inline;
  font-weight: 800;
  min-height: 0;
  padding: 0;
  text-align: left;
}

.nusci-video-link:hover,
.nusci-video-link:focus-visible {
  background: transparent;
  border-color: transparent;
  color: var(--nusci-color-forest);
}

.nusci-video-modal {
  background: #fff;
  border: 0;
  border-radius: 1rem;
  box-shadow: 0 2rem 5rem rgba(3, 22, 37, 0.35);
  color: var(--nusci-color-ink);
  max-height: 92dvh;
  max-width: 72rem;
  padding: clamp(1rem, 3vw, 2rem);
  width: calc(100% - 2rem);
}

.nusci-video-modal::backdrop {
  background: rgba(3, 22, 37, 0.78);
  backdrop-filter: blur(0.2rem);
}

.nusci-video-modal__header {
  align-items: center;
  display: flex;
  gap: var(--nusci-space-3);
  justify-content: space-between;
  margin-bottom: var(--nusci-space-3);
}

.nusci-video-modal__header h2 {
  font-size: clamp(1.4rem, 1.15rem + 1vw, 2.2rem);
  margin: 0;
}

.nusci-video-modal__close {
  flex: 0 0 auto;
  min-height: 2.5rem;
  padding: 0.4rem 0.8rem;
}

.nusci-video-modal__player {
  aspect-ratio: 16 / 9;
  background: #081b2b;
  overflow: hidden;
  width: 100%;
}

.nusci-video-modal__player :is(video, iframe) {
  border: 0;
  display: block;
  height: 100%;
  object-fit: contain;
  width: 100%;
}

.nusci-final-cta,
.nusci-content-cta {
  background: var(--nusci-color-forest);
  color: #fff;
}

.nusci-final-cta h2,
.nusci-final-cta p,
.nusci-content-cta h2,
.nusci-content-cta p {
  color: #fff;
}

.nusci-final-cta .wp-element-button,
.nusci-content-cta .wp-element-button,
.nusci-final-cta .is-style-outline .wp-block-button__link {
  background: #fff;
  border-color: #fff;
  color: var(--nusci-color-forest);
}

.nusci-final-cta .wp-element-button:hover,
.nusci-final-cta .wp-element-button:focus-visible,
.nusci-content-cta .wp-element-button:hover,
.nusci-content-cta .wp-element-button:focus-visible,
.nusci-final-cta .is-style-outline .wp-block-button__link:hover,
.nusci-final-cta .is-style-outline .wp-block-button__link:focus-visible {
  background: var(--nusci-color-mist);
  border-color: var(--nusci-color-mist);
  color: var(--nusci-color-forest);
}

.nusci-final-cta__inner {
  align-items: center;
  display: flex;
  gap: var(--nusci-space-5);
  justify-content: space-between;
}

.nusci-final-cta h2 {
  font-size: clamp(2rem, 1.7rem + 1.4vw, 3rem);
  margin-bottom: var(--nusci-space-2);
}

.site-footer,
.site-info {
  background: #082844;
  color: #dcebf6;
}

.site-footer a,
.site-info a {
  color: #fff;
}

.site-info {
  border-top: 1px solid rgba(220, 235, 246, 0.2);
}

.site-info .inside-site-info {
  padding: var(--nusci-space-3) var(--nusci-space-4);
}

.site-info .copyright-bar {
  color: #b9d0df;
  font-size: 0.875rem;
  text-align: center;
}

.nusci-footer-navigation {
  margin: 0 auto var(--nusci-space-3);
  max-width: var(--nusci-wide);
  padding: var(--nusci-space-4) var(--nusci-space-4) 0;
}

.nusci-footer-navigation__list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--nusci-space-3) var(--nusci-space-4);
  justify-content: center;
  list-style: none;
  margin: 0;
  padding: 0;
}

.nusci-footer-navigation__list a {
  border-radius: var(--nusci-radius-sm);
  display: inline-block;
  font-weight: 700;
  padding: 0.35rem 0.65rem;
  text-decoration: none;
}

.nusci-footer-navigation__list a:hover,
.nusci-footer-navigation__list a:focus-visible {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}

/* Long-form migrated content. */
.page .entry-content {
  color: var(--nusci-color-ink);
}

.page:not(.home) .site.grid-container {
  max-width: var(--nusci-wide);
}

.page:not(.home) .inside-article {
  padding-inline: clamp(1rem, 3vw, 2.5rem);
}

.page:not(.home) .entry-content {
  margin-inline: auto;
  max-width: var(--nusci-content);
  width: 100%;
}

.page .entry-title {
  font-size: clamp(2.25rem, 1.75rem + 2.2vw, 3.75rem);
  letter-spacing: -0.045em;
  margin-bottom: var(--nusci-space-5);
}

.nusci-page-intro {
  background: var(--nusci-color-mist);
  border-radius: var(--nusci-radius-md);
  margin-bottom: var(--nusci-space-6);
  padding: clamp(1.25rem, 3vw, 2.5rem);
}

.nusci-page-intro .wp-block-columns {
  gap: clamp(2rem, 6vw, 5rem);
}

.nusci-page-intro .wp-block-column {
  min-width: 0;
}

.nusci-page-kicker {
  color: var(--nusci-color-leaf);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.nusci-page-lede {
  color: var(--nusci-color-forest);
  font-family: Charter, "Bitstream Charter", "Sitka Text", Cambria, serif;
  font-size: clamp(1.2rem, 1.05rem + 0.55vw, 1.6rem);
  font-weight: 700;
  line-height: 1.35;
}

.nusci-power-plate {
  margin: 0 auto;
  max-width: 23rem;
}

.nusci-power-plate img {
  display: block;
  filter: drop-shadow(0 1rem 1.5rem rgba(11, 53, 88, 0.16));
  width: 100%;
}

.nusci-guidelines {
  margin-bottom: var(--nusci-space-6);
}

.nusci-page-nutrition .entry-content > *,
.nusci-page-nutrition :is(
  .nusci-page-intro,
  .nusci-guidelines,
  .nusci-guideline-section--avoid,
  .nusci-content-cta,
  .nusci-reading-list
) > * {
  max-width: none !important;
}

.nusci-page-nutrition .entry-content > * {
  margin-inline: 0 !important;
  width: 100%;
}

.nusci-page-nutrition .nusci-page-intro .wp-block-column:first-child {
  flex-basis: 64%;
}

.nusci-page-nutrition .nusci-page-intro .wp-block-column:last-child {
  flex-basis: 36%;
}

.nusci-page-nutrition .nusci-guidelines > p {
  max-width: 80ch !important;
}

.nusci-guidelines > h2,
.nusci-guideline-section > h2,
.nusci-reading-list > h2 {
  font-size: clamp(1.8rem, 1.5rem + 1.2vw, 2.75rem);
  letter-spacing: -0.025em;
}

.nusci-guideline-grid {
  display: grid;
  gap: var(--nusci-space-3);
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-block: var(--nusci-space-5) var(--nusci-space-4);
}

.nusci-guideline-card {
  background: var(--nusci-color-mist);
  border: 1px solid #cbdce8;
  border-radius: var(--nusci-radius-md);
  min-width: 0;
  padding: var(--nusci-space-4);
}

.nusci-guideline-card h3 {
  font-size: 1.3rem;
  margin-bottom: var(--nusci-space-2);
}

.nusci-guideline-card p {
  color: var(--nusci-color-muted);
  margin-bottom: 0;
}

.nusci-water-callout {
  background: var(--nusci-color-forest);
  border-radius: var(--nusci-radius-md);
  color: #fff;
  font-size: 1.1rem;
  padding: var(--nusci-space-3) var(--nusci-space-4);
  text-align: center;
}

.nusci-guideline-section {
  background: #fff;
  border: 1px solid #d5e1ea;
  border-radius: 1rem;
  margin-block: var(--nusci-space-4);
  padding: clamp(1.5rem, 3vw, 2.5rem);
}

.nusci-guideline-section--avoid {
  border-top: 0.4rem solid var(--nusci-color-logo-red);
}

.nusci-guideline-section li + li {
  margin-top: var(--nusci-space-2);
}

.nusci-transition-grid {
  align-items: stretch;
  display: grid;
  gap: var(--nusci-space-4);
  grid-auto-rows: 1fr;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-block: var(--nusci-space-5);
}

.nusci-transition-grid > .wp-block-column {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.nusci-transition-grid .nusci-guideline-section {
  margin: 0;
  width: 100%;
}

.nusci-content-cta {
  align-items: center;
  background: var(--nusci-color-forest);
  border-radius: 1rem;
  display: flex;
  gap: var(--nusci-space-5);
  justify-content: space-between;
  margin-block: var(--nusci-space-4);
  padding: clamp(1.25rem, 3vw, 2.25rem);
}

.nusci-content-cta h2 {
  font-size: clamp(1.8rem, 1.5rem + 1vw, 2.6rem);
  margin-bottom: var(--nusci-space-2);
}

.nusci-content-cta p:last-child {
  margin-bottom: 0;
}

.nusci-reading-list {
  border-top: 1px solid #d5e1ea;
  padding-top: var(--nusci-space-5);
}

.nusci-reading-list li + li {
  margin-top: var(--nusci-space-2);
}

/* Science reference library. */
.nusci-science-library {
  margin-inline: auto;
  max-width: 68rem;
}

.nusci-science-library > h2 {
  border-top: 1px solid #d5e1ea;
  font-size: clamp(1.8rem, 1.5rem + 1.2vw, 2.65rem);
  letter-spacing: -0.025em;
  margin-top: clamp(3rem, 6vw, 5rem);
  padding-top: var(--nusci-space-5);
  scroll-margin-top: 2rem;
}

.nusci-science-library > h2:first-of-type {
  background: var(--nusci-color-mist);
  border: 0;
  border-radius: var(--nusci-radius-md);
  margin-top: var(--nusci-space-5);
  padding: var(--nusci-space-4);
}

.nusci-science-library table {
  border: 0;
  border-collapse: separate;
  border-spacing: var(--nusci-space-2);
  margin: var(--nusci-space-4) calc(-1 * var(--nusci-space-2));
  table-layout: fixed;
  width: calc(100% + (2 * var(--nusci-space-2)));
}

.nusci-science-library td {
  background: var(--nusci-color-mist);
  border: 1px solid #cbdce8;
  border-radius: var(--nusci-radius-sm);
  padding: var(--nusci-space-3);
  text-align: center;
}

.nusci-science-library td a {
  display: block;
  font-weight: 800;
}

.nusci-science-library ol {
  margin-left: 0;
  padding-left: 2.4rem;
}

.nusci-science-library ol > li {
  border-bottom: 1px solid #e2eaf0;
  line-height: 1.7;
  overflow-wrap: anywhere;
  padding: 0 0 var(--nusci-space-4) var(--nusci-space-2);
}

.nusci-science-library ol > li + li {
  margin-top: var(--nusci-space-4);
}

.nusci-science-library a {
  overflow-wrap: anywhere;
}

.nusci-science-library a[href="#science-top"] {
  display: inline-block;
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

/* Science navigation uses the same button language as other content actions. */
.nusci-science-library p:has(> a[href="#science-top"]),
.nusci-science-library p.nusci-science-jump-row {
  align-items: flex-start;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-block: var(--nusci-space-3);
}

.nusci-science-library p:has(> a.nusci-science-jump) > a:not(.nusci-science-jump) {
  display: none;
}

.nusci-science-library a.nusci-science-jump {
  background: var(--nusci-color-logo-red);
  border: 2px solid var(--nusci-color-logo-red);
  border-radius: 0.35rem;
  color: #fff;
  display: inline-flex;
  font-weight: 800;
  padding: 0.65rem 1rem;
  text-decoration: none;
}

.nusci-science-library a.nusci-science-jump:hover,
.nusci-science-library a.nusci-science-jump:focus-visible {
  background: #c90000;
  border-color: #c90000;
  color: #fff;
}

/* Migrated movie and book recommendations. */
.nusci-library-page {
  max-width: none;
  width: 100%;
}

.nusci-library-intro {
  background: var(--nusci-color-mist);
  border-radius: var(--nusci-radius-md);
  margin-bottom: var(--nusci-space-6);
  padding: clamp(1.25rem, 3vw, 2.5rem);
}

.nusci-library-intro .nusci-page-lede {
  font-size: clamp(1.2rem, 1.05rem + 0.55vw, 1.6rem);
  max-width: 38ch;
}

.nusci-library-intro > p:last-child {
  margin-bottom: 0;
  max-width: 68ch;
}

.nusci-library-list {
  display: grid;
  gap: var(--nusci-space-4);
}

.nusci-library-card {
  align-items: start;
  background: #fff;
  border: 1px solid #cbdce8;
  border-radius: 1rem;
  display: grid;
  gap: clamp(1.5rem, 4vw, 3rem);
  grid-template-columns: minmax(8rem, 10rem) minmax(0, 1fr);
  padding: clamp(1.25rem, 3vw, 2.5rem);
  scroll-margin-top: 2rem;
}

.nusci-library-card--featured {
  background: var(--nusci-color-mist);
  border-top: 0.4rem solid var(--nusci-color-leaf);
}

.nusci-library-card > img {
  background: #f4f7f9;
  border-radius: var(--nusci-radius-sm);
  box-shadow: 0 0.75rem 1.5rem rgba(11, 53, 88, 0.14);
  height: auto;
  justify-self: center;
  max-height: 15rem;
  object-fit: contain;
  width: 100%;
}

.nusci-library-card h2 {
  font-size: clamp(1.65rem, 1.35rem + 1vw, 2.35rem);
  letter-spacing: -0.025em;
  margin-bottom: var(--nusci-space-3);
}

.nusci-library-card .nusci-card__meta {
  color: var(--nusci-color-leaf);
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  margin-bottom: var(--nusci-space-2);
  text-transform: uppercase;
}

.nusci-library-link {
  margin-bottom: 0;
  margin-top: var(--nusci-space-4);
}

.nusci-library-link a {
  font-weight: 750;
}

.nusci-library-top {
  margin-top: var(--nusci-space-5);
  text-align: right;
}

/* About Us mission, organization, and board details. */
.nusci-page-about .entry-content > *,
.nusci-page-about :is(
  .nusci-mission-intro,
  .nusci-mission-why,
  .nusci-mission-trust,
  .nusci-about-intro,
  .nusci-board
) > * {
  max-width: none !important;
}

.nusci-page-about .entry-content > * {
  margin-inline: 0 !important;
  width: 100%;
}

.nusci-mission-intro {
  background: var(--nusci-color-mist);
  border-radius: var(--nusci-radius-md);
  margin-bottom: var(--nusci-space-6);
  padding: clamp(1.25rem, 3vw, 2.5rem);
}

.nusci-mission-intro > h2,
.nusci-mission-why > h2,
.nusci-mission-trust > h2 {
  font-size: clamp(2rem, 1.6rem + 1.8vw, 3.4rem);
  letter-spacing: -0.035em;
}

.nusci-mission-intro > .nusci-page-lede {
  max-width: 46ch !important;
}

.nusci-mission-grid {
  display: grid;
  gap: var(--nusci-space-3);
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: var(--nusci-space-5);
}

.nusci-mission-card {
  background: #fff;
  border: 1px solid #cbdce8;
  border-radius: var(--nusci-radius-md);
  min-width: 0;
  padding: var(--nusci-space-4);
}

.nusci-mission-card > span {
  color: var(--nusci-color-leaf);
  display: block;
  font-size: 0.76rem;
  font-weight: 850;
  letter-spacing: 0.12em;
  margin-bottom: var(--nusci-space-2);
}

.nusci-mission-card h3 {
  font-size: 1.35rem;
  margin-bottom: var(--nusci-space-2);
}

.nusci-mission-card p {
  color: var(--nusci-color-muted);
  margin-bottom: 0;
}

.nusci-mission-why,
.nusci-mission-trust {
  margin-bottom: var(--nusci-space-6);
}

.nusci-mission-why > p,
.nusci-mission-trust > p {
  max-width: 78ch !important;
}

.nusci-mission-emphasis {
  color: var(--nusci-color-forest);
  font-family: Charter, "Bitstream Charter", "Sitka Text", Cambria, serif;
  font-size: clamp(1.35rem, 1.15rem + 0.8vw, 1.85rem);
}

.nusci-mission-why blockquote {
  background: var(--nusci-color-mist);
  border: 0;
  border-left: 0.35rem solid var(--nusci-color-leaf);
  border-radius: 0 var(--nusci-radius-md) var(--nusci-radius-md) 0;
  margin: var(--nusci-space-4) 0 var(--nusci-space-5);
  max-width: 76rem !important;
  padding: clamp(1.25rem, 3vw, 2rem);
}

.nusci-mission-why blockquote p {
  font-size: 1rem;
  font-style: normal;
}

.nusci-mission-why blockquote cite {
  color: var(--nusci-color-muted);
  font-size: 0.9rem;
  font-weight: 700;
}

.nusci-funding-grid {
  align-items: stretch;
  gap: var(--nusci-space-4);
  margin-top: var(--nusci-space-5);
}

.nusci-funding-card {
  border: 1px solid #cbdce8;
  border-radius: 1rem;
  height: 100%;
  padding: clamp(1.25rem, 3vw, 2rem);
}

.nusci-funding-card--decline {
  border-top: 0.4rem solid var(--nusci-color-sun);
}

.nusci-funding-card--accept {
  background: var(--nusci-color-mist);
  border-top: 0.4rem solid var(--nusci-color-leaf);
}

.nusci-funding-card h3 {
  font-size: clamp(1.4rem, 1.2rem + 0.6vw, 1.9rem);
}

.nusci-funding-card li + li {
  margin-top: var(--nusci-space-2);
}

.nusci-about-intro {
  background: var(--nusci-color-mist);
  border-radius: var(--nusci-radius-md);
  margin-bottom: var(--nusci-space-6);
  padding: clamp(1.25rem, 3vw, 2.5rem);
}

.nusci-about-intro > h2,
.nusci-board > h2 {
  font-size: clamp(2rem, 1.6rem + 1.8vw, 3.4rem);
  letter-spacing: -0.035em;
}

.nusci-about-intro .wp-block-columns,
.nusci-board-grid {
  gap: var(--nusci-space-4);
}

.nusci-contact-card,
.nusci-board-card {
  background: #fff;
  border: 1px solid #cbdce8;
  border-radius: var(--nusci-radius-md);
  min-width: 0;
  padding: var(--nusci-space-4);
}

.nusci-contact-card h3,
.nusci-board-card h3 {
  font-size: 1.45rem;
  margin-bottom: var(--nusci-space-3);
}

.nusci-contact-card address {
  font-style: normal;
}

.nusci-board-card {
  box-shadow: 0 0.8rem 2rem rgba(11, 53, 88, 0.07);
}

.nusci-board-card ul {
  margin: 0;
  padding-left: 1.2rem;
}

.nusci-board-card li + li {
  margin-top: var(--nusci-space-2);
}

/* Recipe collection and individual recipe presentation. */
.nusci-coming-soon {
  background: var(--nusci-color-leaf);
  border-radius: var(--nusci-radius-md);
  color: #fff;
  margin-bottom: var(--nusci-space-5);
  max-width: none !important;
  padding: clamp(1.25rem, 3vw, 2rem);
  width: 100%;
}

.nusci-coming-soon .nusci-page-kicker {
  color: #fff;
  font-size: clamp(1.15rem, 1rem + 0.55vw, 1.55rem);
  margin-bottom: 0.35rem;
}

.nusci-coming-soon p:last-child {
  margin-bottom: 0;
  max-width: 48rem;
}

.nusci-recipe {
  max-width: none !important;
  width: 100%;
}

.nusci-page-recipes .entry-content {
  max-width: var(--nusci-wide);
}

.nusci-recipe-directory-intro {
  background:
    radial-gradient(circle at 92% 10%, rgba(255, 0, 0, 0.2), transparent 28%),
    linear-gradient(135deg, var(--nusci-color-forest), #075f94);
  border-radius: clamp(0.9rem, 2vw, 1.5rem);
  color: #fff;
  margin-bottom: clamp(2rem, 5vw, 4rem);
  overflow: hidden;
  padding: clamp(1.5rem, 5vw, 4rem);
  position: relative;
}

.nusci-recipe-directory-intro > * {
  margin-inline: 0 !important;
  max-width: 46rem !important;
}

.nusci-recipe-directory-intro .nusci-page-kicker {
  color: #dcebf6;
  margin-bottom: var(--nusci-space-2);
}

.nusci-recipe-directory-intro h2 {
  color: #fff;
  font-size: clamp(2rem, 1.5rem + 2vw, 3.5rem);
  letter-spacing: -0.035em;
  margin-bottom: var(--nusci-space-3);
}

.nusci-recipe-directory-intro .nusci-page-lede {
  color: #fff;
  margin-bottom: var(--nusci-space-3);
}

.nusci-recipe-directory-intro p:last-child {
  margin-bottom: 0;
  opacity: 0.9;
}

.nusci-recipe-directory {
  display: grid;
  gap: clamp(1rem, 2.5vw, 1.75rem);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.nusci-recipe-directory__category {
  background: #fff;
  border: 1px solid #cbdce8;
  border-radius: var(--nusci-radius-md);
  box-shadow: 0 0.8rem 2rem rgba(11, 53, 88, 0.07);
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  padding: clamp(1.25rem, 3vw, 2rem);
  position: relative;
}

.nusci-recipe-directory__category::before {
  background: linear-gradient(90deg, var(--nusci-color-leaf), var(--nusci-color-logo-red));
  content: "";
  height: 0.3rem;
  inset: 0 0 auto;
  position: absolute;
}

.nusci-recipe-directory__header {
  align-items: flex-start;
  display: flex;
  gap: var(--nusci-space-3);
  justify-content: space-between;
  margin-bottom: var(--nusci-space-4);
}

.nusci-recipe-directory__eyebrow {
  color: var(--nusci-color-muted);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.11em;
  margin: 0 0 0.3rem;
  text-transform: uppercase;
}

.nusci-recipe-directory__category h2 {
  font-size: clamp(1.5rem, 1.25rem + 0.7vw, 2rem);
  margin: 0;
}

.nusci-recipe-directory__category h2 a {
  color: var(--nusci-color-forest);
  text-decoration: none;
}

.nusci-recipe-directory__category h2 a:hover {
  color: var(--nusci-color-leaf);
}

.nusci-recipe-directory__count {
  background: var(--nusci-color-mist);
  border-radius: 999px;
  color: var(--nusci-color-forest);
  flex: 0 0 auto;
  font-size: 0.76rem;
  font-weight: 800;
  padding: 0.3rem 0.65rem;
}

.nusci-recipe-directory__category ul {
  border-top: 1px solid #d7e4ed;
  list-style: none;
  margin: 0;
  padding: var(--nusci-space-2) 0 0;
}

.nusci-recipe-directory__category li {
  border-bottom: 1px solid #e3ebf1;
  margin: 0;
}

.nusci-recipe-directory__category li a {
  align-items: center;
  color: var(--nusci-color-ink);
  display: flex;
  font-weight: 650;
  gap: var(--nusci-space-2);
  justify-content: space-between;
  padding: 0.7rem 0.2rem;
  text-decoration: none;
}

.nusci-recipe-directory__category li a::after {
  color: var(--nusci-color-leaf);
  content: "›";
  font-size: 1.3rem;
  line-height: 1;
  transition: transform 160ms ease;
}

.nusci-recipe-directory__category li a:hover {
  color: var(--nusci-color-leaf);
}

.nusci-recipe-directory__category li a:hover::after {
  transform: translateX(0.2rem);
}

.nusci-recipe-directory__all {
  margin: auto 0 0;
  padding-top: var(--nusci-space-4);
}

.nusci-recipe-directory__all a {
  font-weight: 800;
  text-decoration: none;
}

@media (max-width: 767px) {
  .nusci-recipe-directory {
    grid-template-columns: 1fr;
  }

  .nusci-recipe-directory__header {
    align-items: flex-start;
    flex-direction: column;
    gap: var(--nusci-space-2);
  }
}

.nusci-recipe > * {
  margin-inline: 0 !important;
  max-width: none !important;
}

.nusci-recipe-hero {
  background: var(--nusci-color-mist);
  border-radius: 1.25rem;
  gap: clamp(2rem, 5vw, 4rem);
  margin-bottom: clamp(2.5rem, 6vw, 5rem);
  overflow: hidden;
  padding: clamp(1.5rem, 4vw, 3.5rem);
}

.nusci-recipe-hero > .wp-block-column:first-child {
  flex-basis: 62%;
}

.nusci-recipe-hero > .wp-block-column:last-child {
  flex-basis: 38%;
}

.nusci-recipe-hero h2 {
  font-size: clamp(2.25rem, 1.75rem + 2.2vw, 4rem);
  letter-spacing: -0.045em;
  line-height: 1.03;
}

.nusci-recipe-byline {
  color: var(--nusci-color-muted);
  font-weight: 700;
}

.nusci-recipe-photo img {
  aspect-ratio: 1;
  border-radius: 50% 50% 44% 56% / 48% 44% 56% 52%;
  box-shadow: 0 1.25rem 2.5rem rgba(11, 53, 88, 0.18);
  object-fit: cover;
  width: 100%;
}

.nusci-recipe-facts {
  display: grid;
  gap: var(--nusci-space-2);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: var(--nusci-space-4);
}

.nusci-recipe-facts p {
  background: #fff;
  border: 1px solid #cbdce8;
  border-radius: var(--nusci-radius-sm);
  margin: 0;
  padding: 0.8rem;
}

.nusci-recipe-ingredients {
  align-items: flex-start;
  display: grid;
  gap: clamp(2rem, 5vw, 4rem);
  grid-template-columns: minmax(0, 2fr) minmax(18rem, 1fr);
}

.nusci-recipe-ingredients > .wp-block-column {
  min-width: 0;
}

.nusci-recipe-ingredients h2,
.nusci-recipe-method h2 {
  color: var(--nusci-color-forest);
  font-size: clamp(1.8rem, 1.5rem + 1vw, 2.6rem);
}

.nusci-recipe-ingredients ul {
  margin: 0;
  padding-left: 1.4rem;
}

.nusci-recipe-ingredients li + li {
  margin-top: 0.7rem;
}

.nusci-glaze-card {
  background: #fff;
  border: 1px solid #cbdce8;
  border-top: 0.35rem solid var(--nusci-color-leaf);
  border-radius: var(--nusci-radius-md);
  box-shadow: 0 0.8rem 2rem rgba(11, 53, 88, 0.07);
  padding: var(--nusci-space-4);
}

.nusci-recipe-method {
  border-top: 1px solid #cbdce8;
  margin-top: clamp(2.5rem, 6vw, 5rem);
  padding-top: clamp(2rem, 4vw, 3.5rem);
}

.nusci-recipe-method ol {
  counter-reset: recipe-step;
  display: grid;
  gap: var(--nusci-space-3) var(--nusci-space-5);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  list-style: none;
  margin: 0;
  padding: 0;
}

.nusci-recipe-method li {
  border-bottom: 1px solid #d7e4ed;
  counter-increment: recipe-step;
  display: grid;
  gap: var(--nusci-space-3);
  grid-template-columns: 2.5rem minmax(0, 1fr);
  padding: 0 0 var(--nusci-space-4);
}

.nusci-recipe-method li::before {
  align-items: center;
  background: var(--nusci-color-leaf);
  border-radius: 50%;
  color: #fff;
  content: counter(recipe-step);
  display: flex;
  font-weight: 800;
  height: 2.5rem;
  justify-content: center;
  line-height: 1;
  width: 2.5rem;
}

.nusci-recipe-source {
  color: var(--nusci-color-muted);
  font-size: 0.9rem;
  margin-top: var(--nusci-space-5);
}

@media (max-width: 64rem) {
  .site-header .inside-header {
    gap: var(--nusci-space-2);
    padding-block: 0.55rem;
    padding-inline: var(--nusci-space-3);
  }

  .site-header .site-logo .header-image {
    width: 3.5rem;
  }

  .site-header .main-navigation .main-nav ul li a {
    font-size: 0.86rem;
    padding-inline: 0.5rem;
  }

  .nusci-path-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .nusci-media-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .nusci-guideline-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .nusci-mission-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .nusci-recipe-method ol {
    grid-template-columns: 1fr;
  }

  .nusci-final-cta__inner {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 48rem) {
  .site-header .inside-header {
    align-items: center;
    flex-wrap: wrap;
    min-height: 5.25rem;
    padding-block: 0.5rem;
    padding-inline: var(--nusci-space-3);
  }

  .site-header .site-logo .header-image {
    width: 3.25rem;
  }

  .site-header #mobile-menu-control-wrapper {
    margin-left: auto;
  }

  .site-header #site-navigation.toggled {
    background: #fff;
    flex-basis: 100%;
    margin-top: var(--nusci-space-2);
    width: 100%;
  }

  .site-header #site-navigation.toggled .main-nav ul li a {
    padding: 0.8rem var(--nusci-space-3);
  }

  .site-content {
    padding: var(--nusci-space-4) var(--nusci-space-3);
  }

  .nusci-shell {
    padding-inline: var(--nusci-space-3);
  }

  .nusci-hero::before {
    display: none;
  }

  .nusci-hero__grid {
    gap: var(--nusci-space-5);
  }

  .nusci-hero__title {
    font-size: clamp(2.55rem, 13vw, 4.2rem);
  }

  .nusci-hero__image {
    margin-inline: auto;
    max-width: 24rem;
    transform: none;
  }

  .nusci-trust-strip__items {
    gap: var(--nusci-space-2);
    grid-template-columns: repeat(2, 1fr);
  }

  .nusci-trust-strip__items span + span {
    border-left: 0;
  }

  .nusci-path-grid,
  .nusci-media-grid {
    grid-template-columns: 1fr;
  }

  .nusci-guideline-grid {
    grid-template-columns: 1fr;
  }

  .nusci-transition-grid {
    grid-template-columns: 1fr;
  }

  .nusci-recipe-facts {
    grid-template-columns: 1fr;
  }

  .nusci-recipe-ingredients {
    grid-template-columns: 1fr;
  }

  .nusci-library-card {
    grid-template-columns: 1fr;
  }

  .nusci-library-card > img {
    justify-self: start;
    max-width: 9rem;
  }

  .nusci-mission-grid {
    grid-template-columns: 1fr;
  }

  .nusci-science-library table,
  .nusci-science-library tbody,
  .nusci-science-library tr,
  .nusci-science-library td {
    display: block;
    width: 100%;
  }

  .nusci-science-library table {
    margin-inline: 0;
  }

  .nusci-science-library td + td {
    margin-top: var(--nusci-space-2);
  }

  .nusci-content-cta {
    align-items: stretch;
    flex-direction: column;
  }
}

/* Shared page rhythm: keep long-form pages aligned with the homepage system. */
.page:not(.home) .entry-content {
  font-size: 1rem;
  line-height: 1.6;
}

.page:not(.home) .entry-content h1,
.page:not(.home) .entry-content h2 {
  font-size: clamp(1.9rem, 1.5rem + 1.8vw, 3rem);
  letter-spacing: -0.035em;
}

.page:not(.home) .entry-content h3 {
  font-size: 1.35rem;
}

/*
 * NuSci visual system refresh.
 *
 * The theme's content is intentionally assembled from WordPress blocks, so
 * the design system lives here instead of in template overrides. One frame,
 * one rhythm, and one blue-led palette keep the homepage and migrated pages
 * feeling like the same publication.
 */
:root {
  --nusci-color-forest: #073b66;
  --nusci-color-leaf: #0877c9;
  --nusci-color-sun: #f2b84b;
  --nusci-color-ink: #102b43;
  --nusci-color-muted: #536b80;
  --nusci-color-mist: #e6f2fb;
  --nusci-color-paper: #fbfdff;
  --nusci-color-line: #c6d9e8;
  --nusci-wide: 76rem;
  --nusci-content: 72rem;
  --nusci-space-5: 2rem;
  --nusci-space-6: 3.25rem;
}

body {
  background: #eef5fa;
  color: var(--nusci-color-ink);
}

.site.grid-container,
.grid-container,
.site-header .inside-header,
.main-navigation .inside-navigation,
.nusci-shell,
.nusci-footer-navigation {
  max-width: var(--nusci-wide);
}

.site-header {
  background: var(--nusci-color-paper);
  border-bottom: 3px solid var(--nusci-color-leaf);
  box-shadow: 0 0.35rem 1.5rem rgba(7, 59, 102, 0.08);
}

.site-header .inside-header {
  min-height: 5.25rem;
  padding-block: 0.5rem;
}

.site-header .site-logo .header-image {
  width: 3.65rem;
}

.site-header .main-navigation .main-nav ul li a {
  border-radius: 0.3rem;
  font-size: 0.9rem;
  letter-spacing: 0.01em;
}

.site-header .main-navigation .main-nav ul li[class*="current-menu-"] > a {
  background: var(--nusci-color-mist);
  box-shadow: inset 0 -3px 0 var(--nusci-color-leaf);
  color: var(--nusci-color-forest);
}

.site-content {
  padding: clamp(1.75rem, 3vw, 2.75rem) var(--nusci-space-4);
}

.home .site-content {
  padding: 0;
}

.nusci-shell {
  padding-inline: clamp(1.25rem, 3vw, 2.5rem);
}

.nusci-section,
.nusci-hero,
.nusci-mission {
  padding-block: clamp(2rem, 4vw, 3.5rem);
}

.nusci-hero {
  background:
    linear-gradient(115deg, rgba(7, 59, 102, 0.96), rgba(8, 119, 201, 0.86)),
    var(--nusci-color-forest);
  color: #fff;
}

.nusci-hero h1,
.nusci-hero h2,
.nusci-hero .nusci-eyebrow,
.nusci-hero__lede {
  color: #fff;
}

.nusci-hero__grid {
  align-items: center;
  gap: clamp(2rem, 6vw, 6rem);
}

.nusci-hero__title {
  font-size: clamp(2.65rem, 5.5vw, 5rem);
  max-width: 20ch;
}

.nusci-hero__lede {
  opacity: 0.9;
}

.nusci-hero__image {
  border: 0.5rem solid #fff;
  border-radius: 0.5rem;
  transform: rotate(1.5deg);
}

.nusci-trust-strip__items {
  padding-block: 0.9rem;
}

/* The trust strip is a continuation of the hero, not a separate spaced block. */
.nusci-home > .nusci-trust-strip {
  margin-block-start: 0;
}

.nusci-path-grid,
.nusci-media-grid,
.nusci-guideline-grid,
.nusci-mission-grid {
  gap: 1rem;
}

.nusci-path-card,
.nusci-media-card,
.nusci-guideline-card,
.nusci-mission-card,
.nusci-library-card,
.nusci-contact-card,
.nusci-board-card,
.nusci-funding-card {
  border-color: var(--nusci-color-line);
  border-radius: 0.45rem;
  box-shadow: 0 0.5rem 1.25rem rgba(7, 59, 102, 0.06);
}

.nusci-path-card {
  border-top: 4px solid var(--nusci-color-leaf);
  padding: 1.25rem;
}

.nusci-path-card h3,
.nusci-media-card__body h3 {
  margin-top: 0.65rem;
}

.nusci-mission {
  background: var(--nusci-color-forest);
}

.nusci-stories {
  background: var(--nusci-color-mist);
}

/* Stories is a full-color band; do not leave the page background above or below it. */
.nusci-home > .nusci-stories {
  margin-block: 0;
}

.nusci-home > .nusci-stories + * {
  margin-block-start: 0;
}

.nusci-media-card {
  border-radius: 0.45rem;
}

.nusci-media-card__body {
  padding: 1.25rem;
}

.nusci-final-cta,
.nusci-content-cta {
  border-radius: 0.45rem;
}

.nusci-final-cta {
  border-radius: 0;
}

/* Page frame: structural blocks share the wide frame; prose remains legible. */
.page:not(.home) .site.grid-container {
  max-width: var(--nusci-wide);
}

.page:not(.home) .inside-article {
  padding-inline: clamp(0rem, 1.5vw, 1rem);
}

.page:not(.home) .entry-content {
  max-width: var(--nusci-content);
}

.nusci-page-intro,
.nusci-mission-intro,
.nusci-about-intro,
.nusci-library-intro,
.nusci-recipe-hero {
  border-radius: 0.45rem;
  margin-bottom: var(--nusci-space-5);
  padding: clamp(1.25rem, 2.5vw, 2rem);
}

.nusci-page-intro .wp-block-columns,
.nusci-mission-intro .wp-block-columns,
.nusci-about-intro .wp-block-columns,
.nusci-recipe-hero {
  gap: clamp(1.5rem, 4vw, 3.5rem);
}

.nusci-guideline-section,
.nusci-mission-why blockquote {
  border-radius: 0.45rem;
}

@media (max-width: 48rem) {
  .site-content {
    padding-inline: 0.9rem;
  }

  .site-header .inside-header {
    min-height: 4.75rem;
  }

  .nusci-shell {
    padding-inline: 1rem;
  }

  .nusci-hero__title {
    max-width: 18ch;
  }

  .nusci-hero__image {
    max-width: 28rem;
  }
}

/* Homepage CTA rhythm and button language. */
.home .nusci-hero__grid > .wp-block-column:last-child {
  align-items: center;
  display: flex;
  justify-content: center;
  min-width: 0;
}

.home .nusci-hero__image {
  box-sizing: border-box;
  flex: 0 1 auto;
  margin-inline: auto;
  max-width: 100%;
  transform: rotate(1.5deg);
  width: min(100%, 28rem);
}

.home .nusci-hero__image > a {
  display: block;
}

.home .wp-block-buttons {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  margin: 0;
}

.home .wp-block-button {
  margin: 0;
}

.home .wp-block-button__link,
.home .wp-element-button {
  background: var(--nusci-color-sun);
  border-color: var(--nusci-color-sun);
  color: var(--nusci-color-ink);
  min-width: 9.5rem;
}

.home .wp-block-button__link:hover,
.home .wp-block-button__link:focus-visible,
.home .wp-element-button:hover,
.home .wp-element-button:focus-visible {
  background: #ffd27a;
  border-color: #ffd27a;
  color: var(--nusci-color-ink);
}

.home .wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent;
  border-color: currentColor;
  color: inherit;
}

.home .wp-block-button.is-style-outline .wp-block-button__link:hover,
.home .wp-block-button.is-style-outline .wp-block-button__link:focus-visible {
  background: rgba(255, 255, 255, 0.14);
  border-color: currentColor;
  color: inherit;
}

.home .nusci-partner-section,
.home .nusci-events-section {
  padding-block: 1rem;
}

.home .nusci-content-cta {
  margin-block: 0;
}

.home .nusci-content-cta .wp-block-buttons {
  flex: 0 0 auto;
  max-width: 23rem;
}

@media (max-width: 48rem) {
  .home .nusci-content-cta .wp-block-buttons {
    max-width: none;
    width: 100%;
  }

  .home .nusci-content-cta .wp-block-button {
    flex: 1 1 12rem;
  }
}

/* Content controls use one NuSci button style outside Events Calendar pages. */
body:not(.tribe-events-page-template):not(.post-type-archive-tribe_events):not(.single-tribe_events) .site-content :where(
  button,
  .button,
  .wp-element-button,
  .wp-block-button__link,
  input[type="submit"]
):not(.nusci-video-link):not(.nusci-back-to-top) {
  align-items: center;
  background: var(--nusci-color-leaf);
  border: 2px solid var(--nusci-color-leaf);
  border-radius: 0.35rem;
  color: #fff;
  display: inline-flex;
  font-weight: 800;
  justify-content: center;
  min-height: 2.75rem;
  padding: 0.7rem 1.1rem;
  text-decoration: none;
}

body:not(.tribe-events-page-template):not(.post-type-archive-tribe_events):not(.single-tribe_events) .site-content :where(
  button,
  .button,
  .wp-element-button,
  .wp-block-button__link,
  input[type="submit"]
):not(.nusci-video-link):not(.nusci-back-to-top):hover,
body:not(.tribe-events-page-template):not(.post-type-archive-tribe_events):not(.single-tribe_events) .site-content :where(
  button,
  .button,
  .wp-element-button,
  .wp-block-button__link,
  input[type="submit"]
):not(.nusci-video-link):not(.nusci-back-to-top):focus-visible {
  background: var(--nusci-color-forest);
  border-color: var(--nusci-color-forest);
  color: #fff;
}

body:not(.tribe-events-page-template):not(.post-type-archive-tribe_events):not(.single-tribe_events) .site-content .wp-block-buttons {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
}

body:not(.tribe-events-page-template):not(.post-type-archive-tribe_events):not(.single-tribe_events) .site-content .wp-block-button {
  margin: 0;
}

/* Outline is a layout variant, not a second color system. */
body:not(.tribe-events-page-template):not(.post-type-archive-tribe_events):not(.single-tribe_events) .site-content .wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent;
  border-color: var(--nusci-color-leaf);
  color: var(--nusci-color-leaf);
}

body:not(.tribe-events-page-template):not(.post-type-archive-tribe_events):not(.single-tribe_events) .site-content .wp-block-button.is-style-outline .wp-block-button__link:hover,
body:not(.tribe-events-page-template):not(.post-type-archive-tribe_events):not(.single-tribe_events) .site-content .wp-block-button.is-style-outline .wp-block-button__link:focus-visible {
  background: var(--nusci-color-leaf);
  border-color: var(--nusci-color-leaf);
  color: #fff;
}

/* Keep the homepage's dark CTA bands legible while retaining the same blue. */
body:not(.tribe-events-page-template):not(.post-type-archive-tribe_events):not(.single-tribe_events) .site-content .nusci-final-cta .wp-element-button,
body:not(.tribe-events-page-template):not(.post-type-archive-tribe_events):not(.single-tribe_events) .site-content .nusci-content-cta .wp-element-button {
  background: var(--nusci-color-leaf);
  border-color: var(--nusci-color-leaf);
  color: #fff;
}

body:not(.tribe-events-page-template):not(.post-type-archive-tribe_events):not(.single-tribe_events) .site-content .nusci-final-cta .wp-element-button:hover,
body:not(.tribe-events-page-template):not(.post-type-archive-tribe_events):not(.single-tribe_events) .site-content .nusci-final-cta .wp-element-button:focus-visible,
body:not(.tribe-events-page-template):not(.post-type-archive-tribe_events):not(.single-tribe_events) .site-content .nusci-content-cta .wp-element-button:hover,
body:not(.tribe-events-page-template):not(.post-type-archive-tribe_events):not(.single-tribe_events) .site-content .nusci-content-cta .wp-element-button:focus-visible {
  background: #39a0eb;
  border-color: #39a0eb;
  color: var(--nusci-color-ink);
}

/* The homepage follows the same blue rule; gold remains reserved for accents. */
.home .site-content :where(
  button,
  .button,
  .wp-element-button,
  .wp-block-button__link,
  input[type="submit"]
):not(.nusci-video-link):not(.nusci-back-to-top) {
  background: var(--nusci-color-leaf);
  border-color: var(--nusci-color-leaf);
  color: #fff;
}

.home .site-content :where(
  button,
  .button,
  .wp-element-button,
  .wp-block-button__link,
  input[type="submit"]
):not(.nusci-video-link):not(.nusci-back-to-top):hover,
.home .site-content :where(
  button,
  .button,
  .wp-element-button,
  .wp-block-button__link,
  input[type="submit"]
):not(.nusci-video-link):not(.nusci-back-to-top):focus-visible {
  background: var(--nusci-color-forest);
  border-color: var(--nusci-color-forest);
  color: #fff;
}

.home .site-content .wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent;
  border-color: var(--nusci-color-leaf);
  color: var(--nusci-color-leaf);
}

.home .site-content .wp-block-button.is-style-outline .wp-block-button__link:hover,
.home .site-content .wp-block-button.is-style-outline .wp-block-button__link:focus-visible {
  background: var(--nusci-color-leaf);
  border-color: var(--nusci-color-leaf);
  color: #fff;
}

/* Final CTA rule: match the logo's red and remove the outline exception. */
:root {
  --nusci-color-logo-red: #ff0000;
}

body:not(.tribe-events-page-template):not(.post-type-archive-tribe_events):not(.single-tribe_events) .site-content :where(
  button,
  .button,
  .wp-element-button,
  .wp-block-button__link,
  input[type="submit"]
):not(.nusci-video-link):not(.nusci-back-to-top):not(.nusci-media-card__image) {
  background: var(--nusci-color-logo-red);
  border-color: var(--nusci-color-logo-red);
  color: #fff;
}

body:not(.tribe-events-page-template):not(.post-type-archive-tribe_events):not(.single-tribe_events) .site-content :where(
  button,
  .button,
  .wp-element-button,
  .wp-block-button__link,
  input[type="submit"]
):not(.nusci-video-link):not(.nusci-back-to-top):not(.nusci-media-card__image):hover,
body:not(.tribe-events-page-template):not(.post-type-archive-tribe_events):not(.single-tribe_events) .site-content :where(
  button,
  .button,
  .wp-element-button,
  .wp-block-button__link,
  input[type="submit"]
):not(.nusci-video-link):not(.nusci-back-to-top):not(.nusci-media-card__image):focus-visible {
  background: #c90000;
  border-color: #c90000;
  color: #fff;
}

body:not(.tribe-events-page-template):not(.post-type-archive-tribe_events):not(.single-tribe_events) .site-content .wp-block-button.is-style-outline .wp-block-button__link {
  background: var(--nusci-color-logo-red);
  border-color: var(--nusci-color-logo-red);
  color: #fff;
}

body:not(.tribe-events-page-template):not(.post-type-archive-tribe_events):not(.single-tribe_events) .site-content .wp-block-button.is-style-outline .wp-block-button__link:hover,
body:not(.tribe-events-page-template):not(.post-type-archive-tribe_events):not(.single-tribe_events) .site-content .wp-block-button.is-style-outline .wp-block-button__link:focus-visible {
  background: #c90000;
  border-color: #c90000;
  color: #fff;
}

/* GiveWP's donation action uses NuSci blue, even where generic content CTAs use red. */
.page-id-13 .site-content .root-data-givewp-embed :where(
  button[type="submit"],
  input[type="submit"],
  .give-submit,
  #give-purchase-button
) {
  background: #0877c9 !important;
  border-color: #0877c9 !important;
  color: #fff !important;
}

.page-id-13 .site-content .root-data-givewp-embed :where(
  button[type="submit"],
  input[type="submit"],
  .give-submit,
  #give-purchase-button
):hover,
.page-id-13 .site-content .root-data-givewp-embed :where(
  button[type="submit"],
  input[type="submit"],
  .give-submit,
  #give-purchase-button
):focus-visible {
  background: #073b66 !important;
  border-color: #073b66 !important;
  color: #fff !important;
}

/* Shared presentation for the Bad Press and Success Stories link lists. */
.nusci-page-resource-list .entry-content > .nusci-bad-press > :where(
  :not(.alignleft):not(.alignright):not(.alignfull)
) {
  max-width: none;
  margin-inline: 0 !important;
}

.nusci-page-resource-list .entry-content > p:first-child,
.nusci-page-resource-list .entry-content > .nusci-bad-press > .nusci-page-lede {
  color: var(--nusci-color-forest);
  font-family: Charter, "Bitstream Charter", "Sitka Text", Cambria, serif;
  font-size: clamp(1.2rem, 1.05rem + 0.55vw, 1.6rem);
  font-weight: 700;
  line-height: 1.35;
}

.nusci-page-resource-list .entry-content > ul.wp-block-list,
.nusci-page-resource-list .entry-content > .nusci-bad-press > ul.wp-block-list {
  list-style: none;
  margin: var(--nusci-space-4) 0 0;
  padding: 0;
}

.nusci-page-resource-list .entry-content > ul.wp-block-list > li,
.nusci-page-resource-list .entry-content > .nusci-bad-press > ul.wp-block-list > li {
  border-top: 1px solid #d5e1ea;
  margin: 0;
  padding: 1rem 0;
}

.nusci-page-resource-list .entry-content > ul.wp-block-list > li:last-child,
.nusci-page-resource-list .entry-content > .nusci-bad-press > ul.wp-block-list > li:last-child {
  border-bottom: 1px solid #d5e1ea;
}

.nusci-page-resource-list .entry-content > ul.wp-block-list a,
.nusci-page-resource-list .entry-content > .nusci-bad-press > ul.wp-block-list a {
  color: var(--nusci-color-leaf);
  display: block;
  font-weight: 700;
  text-decoration-thickness: 0.12em;
  text-underline-offset: 0.18em;
}

/* Use the same linked-list treatment for Recommended Cookbooks. */
.nusci-page-nutrition .nusci-reading-list > ul {
  list-style: none;
  margin: var(--nusci-space-4) 0 0;
  padding: 0;
}

.nusci-page-nutrition .nusci-reading-list > ul > li {
  border-top: 1px solid #d5e1ea;
  margin: 0;
  padding: 1rem 0;
}

.nusci-page-nutrition .nusci-reading-list > ul > li:last-child {
  border-bottom: 1px solid #d5e1ea;
}

.nusci-page-nutrition .nusci-reading-list > ul a {
	color: var(--nusci-color-leaf);
	display: block;
	font-weight: 700;
	text-decoration-thickness: 0.12em;
	text-underline-offset: 0.18em;
}

/* Keep directory result cards clear of the Find One search controls. */
.nusci-page-find-one .geodir-search-container + .geodir-listings,
.nusci-page-find-one .geodir-search-container + .geodir-listings-container {
	margin-top: var(--nusci-space-5);
}

/* Keep the map filter toggle available without showing its controls initially. */
.nusci-page-find-one .geodir-map-cat-filter-wrap .map_category {
	display: none;
}

.nusci-page-find-one .geodir-map-cat-filter-wrap:has(.gd-triggeroff) {
	background: transparent !important;
}

/* Directory cards use practice details rather than author avatars. */
.geodir-post .row.justify-content-center,
.geodir-post .tofront {
	display: none !important;
}
