/* NMR Page Design Studio 1.0.0: visual only, scoped to eligible published pages. */
body.nmrpd-designed-page {
  --nmrpd-purple: #71318b;
  --nmrpd-deep: #261637;
  --nmrpd-green: #159b6a;
  --nmrpd-purple-tint: #f3ebf7;
  --nmrpd-green-tint: #e9f8f0;
  --nmrpd-radius: 20px;
}

/* Gentle typographic rhythm, leaving the site's theme, navigation and footer intact. */
body.nmrpd-designed-page main :is(h1, h2, h3, h4) {
  color: var(--nmrpd-deep);
  line-height: 1.22;
  text-wrap: pretty;
}
body.nmrpd-designed-page main h1 {
  font-size: clamp(1.9rem, 3.4vw, 3rem);
  letter-spacing: -.026em;
}
body.nmrpd-designed-page main h2 {
  font-size: clamp(1.4rem, 2.4vw, 2.1rem);
  letter-spacing: -.015em;
  margin-block: 2.1rem .75rem;
}
body.nmrpd-designed-page main h3 {
  font-size: clamp(1.15rem, 1.8vw, 1.45rem);
  margin-block: 1.25rem .5rem;
}
body.nmrpd-designed-page main :is(p, li) {
  line-height: 1.72;
  overflow-wrap: break-word;
}
body.nmrpd-designed-page main :is(.wp-block-columns, .wp-block-group) {
  scroll-margin-top: 2rem;
}
body.nmrpd-designed-page main .wp-block-columns {
  column-gap: clamp(16px, 2.4vw, 30px);
  row-gap: 18px;
}
body.nmrpd-designed-page main .wp-block-group.has-background,
body.nmrpd-designed-page main .wp-block-cover {
  border-radius: var(--nmrpd-radius);
  overflow: hidden;
}
body.nmrpd-designed-page main .wp-block-column > .wp-block-group.has-background,
body.nmrpd-designed-page main .wp-block-column > .wp-block-stack.has-background {
  padding: clamp(20px, 3.2vw, 32px);
  border-radius: var(--nmrpd-radius);
  box-sizing: border-box;
}
body.nmrpd-designed-page main .wp-block-column > .wp-block-group.has-background > :first-child,
body.nmrpd-designed-page main .wp-block-column > .wp-block-stack.has-background > :first-child {
  margin-top: 0;
}
body.nmrpd-designed-page main .wp-block-column > .wp-block-group.has-background > :last-child,
body.nmrpd-designed-page main .wp-block-column > .wp-block-stack.has-background > :last-child {
  margin-bottom: 0;
}
body.nmrpd-designed-page main .wp-block-buttons {
  gap: 12px;
  margin-block: 1rem 1.4rem;
}
body.nmrpd-designed-page main .wp-block-button:not(.is-style-outline) .wp-block-button__link {
  background-color: var(--nmrpd-purple);
  color: #fff;
  border-radius: 10px;
  padding: .9em 1.4em;
  font-weight: 700;
  text-decoration: none;
  transition: background-color .16s ease, box-shadow .16s ease;
}
body.nmrpd-designed-page main .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
body.nmrpd-designed-page main .wp-block-button:not(.is-style-outline) .wp-block-button__link:focus-visible {
  background-color: #4f2263;
  box-shadow: 0 3px 12px #71318b33;
}
body.nmrpd-designed-page main a:focus-visible {
  outline: 3px solid var(--nmrpd-green);
  outline-offset: 3px;
}
body.nmrpd-designed-page main figure img {
  max-width: 100%;
  height: auto;
}

/* Non-destructive, independent photo slots: no page post_content is changed. */
body.nmrpd-designed-page .nmrpd-photo {
  width: 100%;
  max-width: 1080px;
  margin: 22px auto 34px;
  box-sizing: border-box;
}
body.nmrpd-designed-page .nmrpd-photo--hero {
  margin-top: 0;
}
body.nmrpd-designed-page .nmrpd-photo-image {
  display: block;
  width: 100%;
  height: auto;
  max-height: 520px;
  object-fit: cover;
  border-radius: var(--nmrpd-radius);
}
body.nmrpd-designed-page .nmrpd-photo--section .nmrpd-photo-image {
  max-height: 410px;
}
body.nmrpd-designed-page .nmrpd-photo-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  min-height: 230px;
  padding: 28px;
  text-align: center;
  border: 2px dashed #b993cb;
  border-radius: var(--nmrpd-radius);
  background: linear-gradient(135deg, #f3ebf7 0%, #e7f7ee 100%);
  color: #412b52;
  box-sizing: border-box;
}
body.nmrpd-designed-page .nmrpd-camera {
  display: inline-block;
  font-size: 2rem;
  line-height: 1.1;
  margin-bottom: 12px;
  color: var(--nmrpd-purple);
}
body.nmrpd-designed-page .nmrpd-photo-empty-heading {
  font-size: 1.2rem;
  font-weight: 750;
}
body.nmrpd-designed-page .nmrpd-photo-empty-caption {
  margin: 7px auto 12px;
  font-size: .9rem;
}
body.nmrpd-designed-page .nmrpd-photo-empty a {
  display: inline-flex;
  padding: 9px 15px;
  border-radius: 8px;
  background: var(--nmrpd-purple);
  color: white;
  font-weight: 650;
  text-decoration: none;
}
body.nmrpd-designed-page .nmrpd-photo-outro {
  margin-block: 1.6rem 2.4rem;
}

/* The existing 4 coloured volunteering cards: improve rhythm without reordering data. */
body.nmrpd-designed-page.page-id-1235 main .wp-block-column > .wp-block-group.has-background,
body.nmrpd-designed-page.page-id-1235 main .wp-block-column > .wp-block-stack.has-background {
  margin-bottom: 16px;
  border-radius: 22px;
}
body.nmrpd-designed-page.page-id-1235 main .wp-block-column > .wp-block-group.has-background:first-child,
body.nmrpd-designed-page.page-id-1235 main .wp-block-column > .wp-block-stack.has-background:first-child {
  min-height: 245px;
}
body.nmrpd-designed-page.page-id-1235 main .wp-block-column > .wp-block-group.has-background :is(h2, h3),
body.nmrpd-designed-page.page-id-1235 main .wp-block-column > .wp-block-stack.has-background :is(h2, h3) {
  font-size: clamp(1.3rem, 1.7vw, 1.58rem);
}

body.nmrpd-designed-page.page-id-1235 main .wp-block-column > .wp-block-group.has-background :is(h2, h3),
body.nmrpd-designed-page.page-id-1235 main .wp-block-column > .wp-block-stack.has-background :is(h2, h3) {
  margin-top: 0;
}

@media (max-width: 782px) {
  body.nmrpd-designed-page main .wp-block-columns:not(.is-not-stacked-on-mobile) {
    flex-direction: column;
  }
  body.nmrpd-designed-page main .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
    flex-basis: 100% !important;
    width: 100%;
  }
  body.nmrpd-designed-page.page-id-1235 main .wp-block-column > .wp-block-group.has-background:first-child,
  body.nmrpd-designed-page.page-id-1235 main .wp-block-column > .wp-block-stack.has-background:first-child {
    min-height: 0;
  }
  body.nmrpd-designed-page .nmrpd-photo {
    margin-block: 16px 22px;
  }
  body.nmrpd-designed-page .nmrpd-photo-empty {
    min-height: 200px;
  }
}
@media (prefers-reduced-motion: reduce) {
  body.nmrpd-designed-page main .wp-block-button__link { transition: none; }
}

/* v1.2.4 safety: conceal any stale empty-slot HTML while server/CDN caches expire.
   The PHP renderer is authoritative and emits no empty figures at all. */
body.nmrpd-designed-page .nmrpd-photo-empty { display: none !important; }
body.nmrpd-designed-page figure.nmrpd-photo:has(> .nmrpd-photo-empty),
body.nmrpd-designed-page aside.nmrpd-photo-outro:has(> figure.nmrpd-photo > .nmrpd-photo-empty) { display: none !important; }
