/*
Theme Name: Northpoint Recreation
Theme URI: https://northpointweb.com/
Description: A recreation and youth sports child theme for Twenty Twenty-Five, designed for municipal recreation departments using Northpoint Core and Northpoint Recreation.
Author: Northpoint Web Solutions
Author URI: https://northpointweb.com/
Template: twentytwentyfive
Version: 1.5.5
Requires at least: 6.7
Requires PHP: 7.4
Text Domain: northpoint-recreation
*/

:root {
  --np-rec-radius: 18px;
  --np-rec-radius-sm: 12px;
  --np-rec-shadow: 0 12px 36px rgba(15, 23, 42, .10);
  --np-rec-shadow-soft: 0 5px 18px rgba(15, 23, 42, .08);
}

html { scroll-behavior: smooth; }
body { overflow-x: hidden; }

.wp-site-blocks { min-height: 100vh; }

.np-site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  backdrop-filter: blur(14px);
  box-shadow: 0 1px 0 rgba(255,255,255,.10);
}

.admin-bar .np-site-header { top: 32px; }

.np-brand-kicker,
.np-eyebrow {
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: .76rem;
  font-weight: 800;
}

.np-hero {
  position: relative;
  overflow: hidden;
  border-radius: 0 0 32px 32px;
}

.np-hero::after {
  content: "";
  position: absolute;
  width: 460px;
  height: 460px;
  border-radius: 50%;
  right: -180px;
  top: -180px;
  background: rgba(255,255,255,.07);
  pointer-events: none;
}

.np-hero .wp-block-heading { text-wrap: balance; }

.np-quick-actions {
  position: relative;
  z-index: 3;
  margin-top: -34px !important;
}

.np-card,
.np-program-card,
.np-event-card,
.np-facility-card {
  border-radius: var(--np-rec-radius);
  box-shadow: var(--np-rec-shadow-soft);
  transition: transform .18s ease, box-shadow .18s ease;
}

.np-card:hover,
.np-program-card:hover,
.np-facility-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--np-rec-shadow);
}

.np-action-card {
  min-height: 100%;
  border-radius: var(--np-rec-radius);
  box-shadow: var(--np-rec-shadow);
}

.np-action-card .wp-block-button__link,
.np-hero .wp-block-button__link {
  font-weight: 800;
}

.np-program-card { overflow: hidden; }
.np-program-card .wp-block-group { height: 100%; }

.np-status {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  border-radius: 999px;
  padding: .35rem .7rem;
  font-size: .78rem;
  line-height: 1;
  font-weight: 800;
}

.np-status-open { background: #e8f7ee; color: #166534; }
.np-status-soon { background: #fff7dc; color: #8a5a00; }
.np-status-closed { background: #f1f5f9; color: #475569; }

.np-section-heading { margin-bottom: .4rem; }
.np-section-intro { max-width: 720px; }

.np-dark-panel {
  border-radius: 24px;
  box-shadow: var(--np-rec-shadow);
}

.np-event-row {
  border-bottom: 1px solid rgba(15,23,42,.10);
  padding: 1rem 0;
}
.np-event-row:last-child { border-bottom: 0; }

.np-date-badge {
  min-width: 66px;
  border-radius: 14px;
  text-align: center;
  padding: .55rem .45rem;
  font-weight: 800;
}

.np-footer a { text-decoration: none; }
.np-footer a:hover { text-decoration: underline; }

/* Friendly defaults for Northpoint Recreation plugin output */
.np-rec-dashboard,
.np-rec-public,
.northpoint-recreation {
  --np-surface: #ffffff;
  --np-border: #e2e8f0;
  --np-muted: #64748b;
}

.np-rec-dashboard table,
.np-rec-public table,
.northpoint-recreation table {
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
  border: 1px solid var(--np-border);
  border-radius: 14px;
  background: var(--np-surface);
}

.np-rec-dashboard th,
.np-rec-public th,
.northpoint-recreation th {
  background: #f8fafc;
  font-weight: 800;
}

.np-rec-dashboard th,
.np-rec-dashboard td,
.np-rec-public th,
.np-rec-public td,
.northpoint-recreation th,
.northpoint-recreation td {
  padding: .85rem 1rem;
  border-bottom: 1px solid var(--np-border);
}

@media (max-width: 782px) {
  .admin-bar .np-site-header { top: 46px; }
  .np-site-header { position: relative; top: auto; }
  .np-quick-actions { margin-top: -18px !important; }
  .np-hero { border-radius: 0 0 24px 24px; }
}


/* Header portal CTA */
.np-header-inner {
  gap: 22px;
}

.np-header-actions {
  gap: 14px;
}

.np-my-team-button .wp-block-button__link {
  background: #d4a72c !important;
  color: #10243f !important;
  border: 2px solid #d4a72c;
  border-radius: 999px;
  padding: .72rem 1.15rem;
  font-weight: 900;
  letter-spacing: .02em;
  white-space: nowrap;
  box-shadow: 0 5px 16px rgba(0,0,0,.18);
}

.np-my-team-button .wp-block-button__link:hover,
.np-my-team-button .wp-block-button__link:focus {
  background: #f0c443 !important;
  border-color: #f0c443;
  color: #10243f !important;
  transform: translateY(-1px);
}

/* My Team sign-in landing page */
.np-my-team-shell {
  max-width: 1120px;
  margin: 0 auto;
}

.np-my-team-login-card {
  max-width: 520px;
  margin: 0 auto;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 22px;
  padding: clamp(24px, 5vw, 44px);
  box-shadow: var(--np-rec-shadow);
}

.np-my-team-login-card .login-username,
.np-my-team-login-card .login-password {
  margin-bottom: 1rem;
}

.np-my-team-login-card label {
  display: block;
  font-weight: 800;
  margin-bottom: .35rem;
}

.np-my-team-login-card input[type="text"],
.np-my-team-login-card input[type="password"] {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  padding: .8rem .9rem;
  font: inherit;
}

.np-my-team-login-card input[type="submit"] {
  border: 0;
  border-radius: 999px;
  background: #d4a72c;
  color: #10243f;
  padding: .8rem 1.25rem;
  font-weight: 900;
  cursor: pointer;
}

.np-my-team-login-card input[type="submit"]:hover {
  background: #f0c443;
}

.np-my-team-login-card .login-remember label {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  font-weight: 600;
}

.np-my-team-login-help {
  margin-top: 1rem;
  color: #64748b;
  font-size: .92rem;
}

@media (max-width: 900px) {
  .np-header-inner,
  .np-header-actions {
    width: 100%;
  }
  .np-header-actions {
    justify-content: space-between !important;
  }
}

@media (max-width: 600px) {
  .np-my-team-button .wp-block-button__link {
    padding: .62rem .9rem;
    font-size: .88rem;
  }
}


/* Install App CTA */
.np-install-app-button .wp-block-button__link {
  background: transparent !important;
  color: #ffffff !important;
  border: 2px solid rgba(255,255,255,.72);
  border-radius: 999px;
  padding: .68rem 1rem;
  font-weight: 800;
  white-space: nowrap;
}

.np-install-app-button .wp-block-button__link:hover,
.np-install-app-button .wp-block-button__link:focus-visible {
  background: rgba(255,255,255,.12) !important;
  border-color: #ffffff;
  color: #ffffff !important;
}

.np-install-modal[hidden] { display: none !important; }
.np-install-modal {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(10, 20, 35, .68);
}
.np-install-modal__card {
  position: relative;
  width: min(520px, 100%);
  max-height: calc(100vh - 40px);
  overflow: auto;
  box-sizing: border-box;
  background: #fff;
  color: #172033;
  border-radius: 20px;
  padding: 28px;
  box-shadow: 0 24px 70px rgba(0,0,0,.28);
}
.np-install-modal__close {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 999px;
  background: #f0f4f8;
  color: #10233f;
  font-size: 25px;
  line-height: 1;
  cursor: pointer;
}
.np-install-modal__eyebrow {
  margin: 0 46px 8px 0;
  color: #9a7210;
  font-size: .75rem;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.np-install-modal__card h2 { margin: 0 46px 12px 0; }
.np-install-steps {
  margin: 18px 0 0;
  padding-left: 1.35rem;
}
.np-install-steps li { margin: 0 0 12px; }
.np-install-hint {
  margin-top: 18px;
  padding: 14px 16px;
  background: #f4f7fa;
  border-radius: 12px;
  color: #475569;
}
.np-install-primary {
  display: inline-block;
  margin-top: 10px;
  border: 0;
  border-radius: 999px;
  background: #d4a72c;
  color: #10233f;
  padding: .8rem 1.15rem;
  font: inherit;
  font-weight: 900;
  cursor: pointer;
}

@media (max-width: 760px) {
  .np-header-actions { flex-wrap: wrap !important; }
  .np-install-app-button .wp-block-button__link { padding: .62rem .85rem; font-size: .86rem; }
  .np-install-modal__card { padding: 24px 20px; }
}


/* v1.3.0 — Recreation Manager integration */
.np-gold-text { color: #b48715; }

.np-public-tools {
  border-radius: 22px;
  box-shadow: var(--np-rec-shadow-soft);
  overflow: hidden;
}

.np-public-tools .wp-block-column { min-width: 0; }

.np-live-content {
  width: 100%;
}

.np-live-content > :first-child { margin-top: 0; }
.np-live-content > :last-child { margin-bottom: 0; }

.np-live-section .nrm-card,
.np-live-section .np-rec-card,
.np-live-section .northpoint-rec-card {
  border-radius: var(--np-rec-radius);
  box-shadow: var(--np-rec-shadow-soft);
}

.np-alert-strip {
  position: relative;
  z-index: 4;
}

.np-alert-strip:empty,
.np-alert-strip .nrm-empty:only-child {
  display: none;
}

.np-action-card a {
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}

.np-action-icon {
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  background: #eef6ff;
  font-size: 1.25rem;
  margin-bottom: .5rem;
}

.np-home-section-title {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: end;
  flex-wrap: wrap;
}

.np-theme-note {
  border: 1px dashed #cbd5e1;
  background: #f8fafc;
  border-radius: 14px;
  padding: 1rem 1.15rem;
  color: #475569;
}

/* Give public plugin forms the same visual language as the theme. */
.np-rec-public input[type="text"],
.np-rec-public input[type="email"],
.np-rec-public input[type="tel"],
.np-rec-public input[type="number"],
.np-rec-public input[type="date"],
.np-rec-public select,
.np-rec-public textarea,
.northpoint-recreation input[type="text"],
.northpoint-recreation input[type="email"],
.northpoint-recreation input[type="tel"],
.northpoint-recreation input[type="number"],
.northpoint-recreation input[type="date"],
.northpoint-recreation select,
.northpoint-recreation textarea {
  box-sizing: border-box;
  max-width: 100%;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  padding: .72rem .82rem;
  background: #fff;
  font: inherit;
}

.np-rec-public button,
.np-rec-public input[type="submit"],
.northpoint-recreation button,
.northpoint-recreation input[type="submit"] {
  border-radius: 999px;
  font-weight: 800;
}

@media (max-width: 900px) {
  .np-header-actions { width: 100%; justify-content: space-between; }
  .np-header-actions .wp-block-navigation { flex: 1; }
}

@media (max-width: 600px) {
  .np-header-actions { align-items: stretch; flex-wrap: wrap !important; }
  .np-header-actions .wp-block-buttons { width: 100%; }
  .np-header-actions .wp-block-button { flex: 1; }
  .np-header-actions .wp-block-button__link { width: 100%; box-sizing: border-box; text-align: center; }
  .np-my-team-shell { padding-top: 42px !important; }
}


/* v1.4.0 — Recreation Portal visual refresh */
:root {
  --np-rec-navy:#10243f;
  --np-rec-blue:#1f67a8;
  --np-rec-sky:#eaf4fb;
  --np-rec-gold:#d4a72c;
  --np-rec-ink:#142033;
  --np-rec-green:#1d7a4a;
}

.np-hero-v2 {
  min-height: 570px;
  display:flex;
  align-items:center;
  position:relative;
  isolation:isolate;
  background:
    radial-gradient(circle at 82% 20%, rgba(212,167,44,.28) 0 10%, transparent 28%),
    radial-gradient(circle at 70% 75%, rgba(60,155,214,.25) 0 12%, transparent 34%),
    linear-gradient(120deg,#0b1c33 0%,#123a61 58%,#176899 100%);
  overflow:hidden;
  border-radius:0 0 42px 42px;
}
.np-hero-v2:before {
  content:"";position:absolute;inset:0;z-index:-1;opacity:.16;
  background-image:linear-gradient(rgba(255,255,255,.2) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.2) 1px,transparent 1px);
  background-size:46px 46px;mask-image:linear-gradient(to left,#000,transparent 80%);
}
.np-hero-v2__content{max-width:760px}
.np-hero-v2 h1{font-size:clamp(3rem,7vw,6.2rem)!important;line-height:.92!important;letter-spacing:-.045em;margin:.18em 0 .25em;text-wrap:balance}
.np-hero-v2 .np-hero-lead{max-width:680px;font-size:clamp(1.08rem,2vw,1.35rem);opacity:.9}
.np-hero-v2 .wp-block-buttons{margin-top:28px;gap:12px}
.np-hero-v2 .wp-block-button__link{border-radius:999px;padding:.9rem 1.3rem;font-weight:900;box-shadow:0 8px 20px rgba(0,0,0,.16)}
.np-hero-badge{display:inline-flex;align-items:center;gap:8px;padding:.45rem .75rem;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.10);border-radius:999px;font-weight:800;font-size:.84rem;backdrop-filter:blur(8px)}
.np-hero-badge:before{content:"";width:9px;height:9px;border-radius:50%;background:#78e6a3;box-shadow:0 0 0 5px rgba(120,230,163,.13)}

.np-quick-actions-v2{position:relative;z-index:5;margin-top:-56px!important}
.np-action-grid-v2{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.np-action-tile{display:block;text-decoration:none!important;color:var(--np-rec-ink)!important;background:#fff;border:1px solid #e8edf3;border-radius:22px;padding:24px;box-shadow:0 14px 34px rgba(15,35,60,.13);transition:.2s ease;min-height:158px}
.np-action-tile:hover{transform:translateY(-6px);box-shadow:0 20px 44px rgba(15,35,60,.18);border-color:#cbddec}
.np-action-tile__icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:var(--np-rec-sky);color:var(--np-rec-blue);font-size:1.4rem;font-weight:900;margin-bottom:16px}
.np-action-tile:nth-child(1) .np-action-tile__icon{background:#e7f6ed;color:#197544}
.np-action-tile:nth-child(3) .np-action-tile__icon{background:#fff3ce;color:#7c5900}
.np-action-tile:nth-child(4) .np-action-tile__icon{background:#f1ebfb;color:#6d43a5}
.np-action-tile h3{margin:0 0 6px;font-size:1.18rem}
.np-action-tile p{margin:0;color:#64748b;font-size:.93rem;line-height:1.45}
.np-action-tile__link{display:block;margin-top:14px;color:var(--np-rec-blue);font-weight:900;font-size:.9rem}

.np-today-band{background:linear-gradient(135deg,#10243f,#173d65);color:#fff;overflow:hidden;position:relative}
.np-today-band:after{content:"";position:absolute;width:330px;height:330px;border:52px solid rgba(255,255,255,.04);border-radius:50%;right:-130px;top:-170px}
.np-today-shell{position:relative;z-index:1}
.np-today-heading{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:28px}
.np-today-heading h2{color:#fff;margin-bottom:5px}
.np-today-heading p{color:rgba(255,255,255,.72);margin:0}
.np-today-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.np-today-card{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:20px;backdrop-filter:blur(10px)}
.np-today-card__time{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:#f0c443;margin-bottom:7px}
.np-today-card h3{color:#fff;font-size:1.05rem;margin:0 0 8px}
.np-today-card p{color:rgba(255,255,255,.72);font-size:.9rem;margin:.2rem 0}
.np-today-empty{padding:24px;border:1px dashed rgba(255,255,255,.25);border-radius:18px;color:rgba(255,255,255,.75)}
.np-today-heading a{color:#fff;font-weight:900;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.4)}

.np-home-section-title{display:flex;justify-content:space-between;align-items:end;gap:30px}
.np-home-section-title h2{font-size:clamp(2rem,4vw,3.25rem)!important;letter-spacing:-.035em;line-height:1.02;margin:.1em 0 .2em}
.np-live-section{overflow:hidden}
.np-live-content .nrm-wrap{max-width:none!important;padding:0!important}
.np-live-content .nrm-grid,.np-live-content .nrm-program-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px!important}
.np-live-content .nrm-card,.np-live-content .nrm-program-card,.np-live-content .nrm-facility-card{background:#fff;border:1px solid #e2e8f0;border-radius:22px!important;padding:24px!important;box-shadow:0 9px 25px rgba(15,35,60,.08);overflow:hidden;transition:.2s ease}
.np-live-content .nrm-card:hover,.np-live-content .nrm-program-card:hover,.np-live-content .nrm-facility-card:hover{transform:translateY(-4px);box-shadow:0 16px 34px rgba(15,35,60,.13)}
.np-live-content .nrm-card-image{display:block;margin:-24px -24px 20px;height:180px;overflow:hidden}
.np-live-content .nrm-card-image img,.np-live-content .nrm-facility-card>a:first-child img{width:100%;height:180px;object-fit:cover;display:block}
.np-live-content .nrm-facility-card>a:first-child{display:block;margin:-24px -24px 20px}
.np-live-content .nrm-program-card-top{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;align-items:center}
.np-live-content .nrm-program-status,.np-live-content .nrm-season-chip,.np-live-content .nrm-status{display:inline-flex;border-radius:999px;padding:.4rem .65rem;font-size:.73rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.np-live-content .nrm-program-status-open,.np-live-content .nrm-status-open{background:#e6f6ec;color:#176a3e}
.np-live-content .nrm-program-status-soon{background:#fff2c9;color:#775600}
.np-live-content .nrm-program-status-closed,.np-live-content .nrm-status-closed{background:#f1f5f9;color:#536273}
.np-live-content .nrm-season-chip{background:#edf5fb;color:#245f8f}
.np-live-content .nrm-program-card h4,.np-live-content .nrm-facility-card h3{font-size:1.35rem;margin:.75rem 0 .4rem}
.np-live-content .nrm-program-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;align-items:center}
.np-live-content .nrm-button,.np-live-content .nrm-button-accent{display:inline-flex!important;border-radius:999px!important;padding:.7rem 1rem!important;background:var(--np-rec-navy)!important;color:#fff!important;font-weight:900!important;text-decoration:none!important;border:0!important}
.np-live-content .nrm-button-accent{background:var(--np-rec-gold)!important;color:var(--np-rec-navy)!important}
.np-live-content .nrm-text-link{font-weight:800;text-decoration:none}
.np-live-content .nrm-table-scroll{border-radius:20px;box-shadow:0 8px 25px rgba(15,35,60,.08);background:#fff}
.np-live-content .nrm-table{margin:0;border:0!important}
.np-live-content .nrm-table th{background:#10243f!important;color:#fff!important;border:0!important}
.np-live-content .nrm-table tr:last-child td{border-bottom:0}

.np-section-kicker{display:inline-flex;align-items:center;gap:8px;font-size:.78rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:var(--np-rec-blue)}
.np-section-kicker:before{content:"";width:24px;height:3px;border-radius:3px;background:var(--np-rec-gold)}

@media(max-width:980px){
 .np-action-grid-v2{grid-template-columns:repeat(2,minmax(0,1fr))}
 .np-today-grid,.np-live-content .nrm-grid,.np-live-content .nrm-program-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .np-hero-v2{min-height:500px}
}
@media(max-width:640px){
 .np-hero-v2{min-height:auto;padding-top:74px!important;padding-bottom:100px!important;border-radius:0 0 28px 28px}
 .np-hero-v2 h1{font-size:3.15rem!important}
 .np-quick-actions-v2{margin-top:-52px!important}
 .np-action-grid-v2,.np-today-grid,.np-live-content .nrm-grid,.np-live-content .nrm-program-grid{grid-template-columns:1fr!important}
 .np-action-tile{min-height:0}
 .np-today-heading,.np-home-section-title{align-items:flex-start;flex-direction:column}
 .np-home-section-title h2{font-size:2.25rem!important}
}

/* v1.5.0 — simplified, configurable homepage */
.np-program-catalog{padding-left:clamp(18px,3vw,48px)!important;padding-right:clamp(18px,3vw,48px)!important}
.np-program-catalog__inner{width:min(1580px,100%)!important;max-width:1580px!important;margin-left:auto!important;margin-right:auto!important}
.np-program-catalog .np-live-content .nrm-grid,
.np-program-catalog .np-live-content .nrm-program-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))!important;gap:16px!important}
.np-program-catalog .np-live-content .nrm-program-card{padding:17px!important;border-radius:18px!important;box-shadow:0 6px 18px rgba(15,35,60,.07)}
.np-program-catalog .np-live-content .nrm-card-image{height:118px;margin:-17px -17px 13px}
.np-program-catalog .np-live-content .nrm-card-image img{height:118px}
.np-program-catalog .np-live-content .nrm-program-card>p{display:none!important}
.np-program-catalog .np-live-content .nrm-program-card h4{font-size:1.08rem;margin:.6rem 0 .25rem;line-height:1.2}
.np-program-catalog .np-live-content .nrm-program-status,
.np-program-catalog .np-live-content .nrm-season-chip{font-size:.66rem;padding:.32rem .5rem}
.np-program-catalog .np-live-content .nrm-program-actions{margin-top:12px;gap:8px}
.np-program-catalog .np-live-content .nrm-program-actions .nrm-button,
.np-program-catalog .np-live-content .nrm-program-actions .nrm-button-accent{padding:.56rem .75rem!important;font-size:.82rem}
.np-program-catalog .np-live-content .nrm-program-actions .nrm-text-link{font-size:.82rem}
.np-program-catalog .np-live-content .nrm-program-actions a[target="_blank"]{display:none!important}
.np-program-catalog .np-home-section-title{width:min(1580px,100%);margin-inline:auto}

.np-field-status-section{background:#fff;border-top:1px solid #e8edf3}
.np-field-status-heading h2{font-size:clamp(1.8rem,3vw,2.65rem)!important;margin:.12em 0 .15em}
.np-field-status-heading p{margin:.25rem 0;color:#64748b}
.np-field-status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-top:22px}
.np-field-status-card{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:10px;padding:14px 15px;border:1px solid #e3eaf1;border-radius:15px;background:#f8fbfd;text-decoration:none!important;color:var(--np-rec-ink)!important;transition:.18s ease}
.np-field-status-card:hover{background:#fff;transform:translateY(-2px);box-shadow:0 8px 20px rgba(15,35,60,.08)}
.np-field-status-dot{width:10px;height:10px;border-radius:50%;background:#8a99a8}
.np-field-status-dot--open{background:#2ca568;box-shadow:0 0 0 4px rgba(44,165,104,.12)}
.np-field-status-dot--use_caution,.np-field-status-dot--delayed{background:#d79b1d;box-shadow:0 0 0 4px rgba(215,155,29,.12)}
.np-field-status-dot--closed{background:#d94b4b;box-shadow:0 0 0 4px rgba(217,75,75,.12)}
.np-field-status-name{font-weight:850;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.np-field-status-label{font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:#607080}
.np-home-page-content:has(.wp-block-post-content:empty){display:none}

@media(max-width:640px){
 .np-program-catalog .np-live-content .nrm-grid,.np-program-catalog .np-live-content .nrm-program-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
 .np-program-catalog .np-live-content .nrm-program-card{padding:13px!important}
 .np-program-catalog .np-live-content .nrm-card-image{height:92px;margin:-13px -13px 10px}
 .np-program-catalog .np-live-content .nrm-card-image img{height:92px}
 .np-program-catalog .np-live-content .nrm-program-card-top{display:block}
 .np-program-catalog .np-live-content .nrm-season-chip{display:none}
 .np-program-catalog .np-live-content .nrm-program-actions{display:block}
 .np-program-catalog .np-live-content .nrm-program-actions .nrm-text-link{display:block;margin-top:8px}
 .np-field-status-grid{grid-template-columns:1fr}
}


/* v1.5.1 — cleaner front page, true wide program catalog, full facility names */
.np-program-catalog__inner,
.np-program-catalog__inner.wp-block-group,
.np-program-catalog .np-live-content,
.np-program-catalog .np-live-content > *,
.np-program-catalog .np-live-content .nrm-wrap {
  width: min(1760px, 100%) !important;
  max-width: 1760px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.np-program-catalog .np-home-section-title {
  width: min(1760px, 100%) !important;
  max-width: 1760px !important;
}
.np-program-catalog .np-live-content .nrm-grid,
.np-program-catalog .np-live-content .nrm-program-grid {
  grid-template-columns: repeat(auto-fit, minmax(205px, 1fr)) !important;
  gap: 14px !important;
}
@media (min-width: 1280px) {
  .np-program-catalog .np-live-content .nrm-grid,
  .np-program-catalog .np-live-content .nrm-program-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  }
}
@media (min-width: 1680px) {
  .np-program-catalog .np-live-content .nrm-grid,
  .np-program-catalog .np-live-content .nrm-program-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  }
}
.np-field-status-section > .alignwide,
.np-field-status-section .alignwide {
  width: min(1320px, calc(100% - 24px)) !important;
  max-width: 1320px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.np-field-status-card {
  grid-template-columns: 12px minmax(0, 1fr) auto !important;
  min-width: 0;
}
.np-field-status-name {
  display: block !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  overflow: visible !important;
  text-overflow: clip !important;
  white-space: normal !important;
  line-height: 1.2;
}
@media (max-width: 1279px) and (min-width: 641px) {
  .np-program-catalog .np-live-content .nrm-grid,
  .np-program-catalog .np-live-content .nrm-program-grid {
    grid-template-columns: repeat(auto-fit, minmax(205px, 1fr)) !important;
  }
}

/* v1.5.2 — polished quick actions and facility status cards */
.np-quick-actions-v2 > .wp-block-group__inner-container,
.np-quick-actions-v2 .np-action-grid-v2 { width:min(1240px,100%);max-width:1240px;margin-inline:auto; }
.np-action-grid-v2{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:18px!important;align-items:stretch}
.np-action-tile{position:relative;display:flex!important;flex-direction:column!important;min-width:0!important;min-height:210px!important;padding:24px!important;border-radius:22px!important;background:#fff!important;border:1px solid #e1e8f0!important;box-shadow:0 14px 34px rgba(15,35,60,.12)!important;overflow:hidden}
.np-action-tile:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:#2f76ad;opacity:.85}
.np-action-tile--register:before{background:#2ca568}.np-action-tile--portal:before{background:#d4a72c}.np-action-tile--facilities:before{background:#7b5bb2}
.np-action-tile__icon{flex:0 0 auto!important;width:48px!important;height:48px!important;margin:0 0 18px!important;border-radius:14px!important;display:grid!important;place-items:center!important;font-size:1.35rem!important;font-weight:900!important}
.np-action-tile__body{display:block!important;min-width:0!important;flex:1 1 auto!important}
.np-action-tile h3{display:block!important;margin:0 0 8px!important;font-size:1.22rem!important;line-height:1.08!important;color:#10243f!important}
.np-action-tile p{display:block!important;margin:0!important;color:#66758a!important;font-size:.93rem!important;line-height:1.45!important}
.np-action-tile__link{display:inline-flex!important;align-items:center!important;gap:6px!important;margin-top:18px!important;padding-top:14px!important;border-top:1px solid #edf1f5!important;color:#075ea8!important;font-weight:900!important;font-size:.9rem!important;text-decoration:none!important}
.np-action-tile__link:hover{text-decoration:underline!important}

.np-field-status-shell{width:min(1320px,100%);max-width:1320px;margin-inline:auto}
.np-field-status-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:14px!important;margin-top:24px!important}
.np-field-status-card{display:grid!important;grid-template-columns:46px minmax(0,1fr) auto!important;align-items:center!important;gap:14px!important;min-height:84px!important;padding:16px 18px!important;border:1px solid #dfe7ef!important;border-radius:18px!important;background:#fff!important;box-shadow:0 7px 20px rgba(15,35,60,.07)!important;color:#10243f!important;text-decoration:none!important}
.np-field-status-card:hover{transform:translateY(-3px)!important;box-shadow:0 13px 28px rgba(15,35,60,.12)!important;border-color:#c9d8e6!important}
.np-field-status-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:#edf5fb;color:#1e6c9f;font-size:1.2rem;font-weight:900}
.np-field-status-copy{display:flex;flex-direction:column;min-width:0;gap:3px}
.np-field-status-name{font-size:1rem;line-height:1.18;white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
.np-field-status-type{font-size:.76rem;color:#7a8899;font-weight:700;text-transform:uppercase;letter-spacing:.045em}
.np-field-status-pill{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:999px;background:#f3f6f9;color:#5f6e7d;font-size:.69rem;font-weight:900;text-transform:uppercase;letter-spacing:.045em;white-space:nowrap}
.np-field-status-pill--open{background:#e8f7ee;color:#187446}.np-field-status-pill--use_caution,.np-field-status-pill--delayed{background:#fff4d6;color:#8a6200}.np-field-status-pill--closed{background:#fdecec;color:#a42d2d}
.np-field-status-dot{width:8px!important;height:8px!important;box-shadow:none!important;flex:0 0 auto}

@media(max-width:980px){.np-action-grid-v2{grid-template-columns:repeat(2,minmax(0,1fr))!important}.np-field-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:640px){.np-action-grid-v2,.np-field-status-grid{grid-template-columns:1fr!important}.np-action-tile{min-height:0!important}.np-field-status-card{grid-template-columns:42px minmax(0,1fr) auto!important;padding:14px!important}.np-field-status-icon{width:42px;height:42px}}


/* v1.5.3 — Recreation alert type styling */
.np-alert-strip {
  padding: 0;
  background: transparent;
}
.np-alert-strip .nrm-alert {
  position: relative;
  margin: 0;
  padding: 15px 22px 15px 62px;
  border: 0;
  border-left: 6px solid #3973b8;
  border-radius: 0;
  background: #eaf3ff;
  color: #10233d;
  box-shadow: inset 0 -1px rgba(16,35,61,.08);
}
.np-alert-strip .nrm-alert + .nrm-alert { border-top: 1px solid rgba(16,35,61,.08); }
.np-alert-strip .nrm-alert::before {
  content: "i";
  position: absolute;
  left: 22px;
  top: 18px;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-weight: 800;
  font-size: 14px;
  background: #3973b8;
  color: #fff;
}
.np-alert-strip .nrm-alert-inner { max-width: 1500px; margin: 0 auto; }
.np-alert-strip .nrm-alert-type {
  display: inline-block;
  margin: 0 9px 3px 0;
  font-size: 11px;
  line-height: 1;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .07em;
  opacity: .78;
}
.np-alert-strip .nrm-alert-title { font-size: 16px; font-weight: 800; }
.np-alert-strip .nrm-alert-content { margin-top: 4px; font-size: 14px; line-height: 1.45; }
.np-alert-strip .nrm-alert-content p { margin: 0; }

.np-alert-strip .nrm-alert-registration { background:#e9f8ef; border-left-color:#258a50; color:#153c27; }
.np-alert-strip .nrm-alert-registration::before { content:"✓"; background:#258a50; }
.np-alert-strip .nrm-alert-weather { background:#fff5cc; border-left-color:#d59b00; color:#443400; }
.np-alert-strip .nrm-alert-weather::before { content:"!"; background:#d59b00; color:#1b1600; }
.np-alert-strip .nrm-alert-warning { background:#ffead2; border-left-color:#e56b00; color:#4a2600; }
.np-alert-strip .nrm-alert-warning::before { content:"!"; background:#e56b00; }
.np-alert-strip .nrm-alert-urgent { background:#fde2e1; border-left-color:#c62828; color:#541111; }
.np-alert-strip .nrm-alert-urgent::before { content:"!"; background:#c62828; }

@media (max-width:700px){
  .np-alert-strip .nrm-alert { padding:13px 16px 13px 48px; }
  .np-alert-strip .nrm-alert::before { left:14px; top:15px; width:24px; height:24px; }
  .np-alert-strip .nrm-alert-title { display:block; margin-top:2px; }
}


/* v1.5.4 — Dedicated Alerts page card layout */
.nrm-wrap .nrm-alert-center{
  display:grid;
  gap:20px;
  width:min(1120px,calc(100% - 32px));
  margin:18px auto 34px;
}
.nrm-wrap .nrm-alert-center .nrm-alert{
  position:relative;
  display:grid;
  grid-template-columns:58px minmax(0,1fr);
  gap:18px;
  padding:24px 26px;
  border:1px solid #dce6f0;
  border-left:7px solid #3973b8;
  border-radius:18px;
  background:#f5f9ff;
  color:#10233d;
  box-shadow:0 10px 28px rgba(15,35,60,.08);
  overflow:hidden;
}
.nrm-wrap .nrm-alert-center .nrm-alert::after{
  content:"";
  position:absolute;
  right:-55px;
  top:-55px;
  width:160px;
  height:160px;
  border-radius:50%;
  background:currentColor;
  opacity:.035;
  pointer-events:none;
}
.nrm-wrap .nrm-alert-center .nrm-alert-icon{
  width:52px;
  height:52px;
  border-radius:15px;
  display:grid;
  place-items:center;
  font-size:24px;
  font-weight:900;
  background:#3973b8;
  color:#fff;
}
.nrm-wrap .nrm-alert-center .nrm-alert-icon::before{content:"i"}
.nrm-wrap .nrm-alert-center .nrm-alert-heading{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:center;
  flex-wrap:wrap;
  margin-bottom:8px;
}
.nrm-wrap .nrm-alert-center .nrm-alert-type{
  display:inline-flex;
  align-items:center;
  min-height:26px;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(16,35,61,.10);
  font-size:11px;
  line-height:1;
  font-weight:900;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.nrm-wrap .nrm-alert-center .nrm-alert-meta{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  font-size:12px;
  opacity:.72;
}
.nrm-wrap .nrm-alert-center .nrm-alert-title{
  margin:0 0 7px;
  font-size:clamp(1.2rem,2vw,1.55rem);
  line-height:1.2;
  color:inherit;
}
.nrm-wrap .nrm-alert-center .nrm-alert-content{
  font-size:15px;
  line-height:1.6;
}
.nrm-wrap .nrm-alert-center .nrm-alert-content p{margin:0 0 8px}
.nrm-wrap .nrm-alert-center .nrm-alert-content p:last-child{margin-bottom:0}
.nrm-wrap .nrm-alert-center .nrm-alert-registration{background:#edf9f1;border-color:#cfe9d8;border-left-color:#258a50;color:#153c27}
.nrm-wrap .nrm-alert-center .nrm-alert-registration .nrm-alert-icon{background:#258a50}.nrm-wrap .nrm-alert-center .nrm-alert-registration .nrm-alert-icon::before{content:"✓"}
.nrm-wrap .nrm-alert-center .nrm-alert-weather{background:#fff8dc;border-color:#f0df9c;border-left-color:#d59b00;color:#443400}
.nrm-wrap .nrm-alert-center .nrm-alert-weather .nrm-alert-icon{background:#d59b00;color:#221900}.nrm-wrap .nrm-alert-center .nrm-alert-weather .nrm-alert-icon::before{content:"☁"}
.nrm-wrap .nrm-alert-center .nrm-alert-warning{background:#fff0df;border-color:#f0d0aa;border-left-color:#e56b00;color:#4a2600}
.nrm-wrap .nrm-alert-center .nrm-alert-warning .nrm-alert-icon{background:#e56b00}.nrm-wrap .nrm-alert-center .nrm-alert-warning .nrm-alert-icon::before{content:"!"}
.nrm-wrap .nrm-alert-center .nrm-alert-urgent{background:#fff0ef;border-color:#efc6c4;border-left-color:#c62828;color:#541111}
.nrm-wrap .nrm-alert-center .nrm-alert-urgent .nrm-alert-icon{background:#c62828}.nrm-wrap .nrm-alert-center .nrm-alert-urgent .nrm-alert-icon::before{content:"!"}
.nrm-wrap .nrm-alert-center-empty{
  width:min(1120px,calc(100% - 32px));margin:18px auto 34px;padding:28px;border-radius:16px;
  background:#f4f7fa;border:1px solid #dce5ed;color:#526476;text-align:center
}
@media(max-width:650px){
  .nrm-wrap .nrm-alert-center .nrm-alert{grid-template-columns:42px minmax(0,1fr);gap:13px;padding:18px;border-radius:14px}
  .nrm-wrap .nrm-alert-center .nrm-alert-icon{width:42px;height:42px;border-radius:12px;font-size:19px}
  .nrm-wrap .nrm-alert-center .nrm-alert-heading{display:block}.nrm-wrap .nrm-alert-center .nrm-alert-meta{margin-top:8px}
}

/* v1.5.5 — facility photo cards */
.np-field-status-section{padding-top:54px!important;padding-bottom:58px!important}
.np-field-status-shell{width:min(1460px,100%)!important;max-width:1460px!important}
.np-field-status-grid{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(215px,1fr))!important;
  gap:20px!important;
  margin-top:28px!important;
  align-items:stretch!important;
}
.np-field-status-card{
  display:flex!important;
  flex-direction:column!important;
  gap:0!important;
  min-height:0!important;
  padding:0!important;
  overflow:hidden!important;
  border:1px solid #dfe7ef!important;
  border-radius:20px!important;
  background:#fff!important;
  box-shadow:0 8px 24px rgba(15,35,60,.08)!important;
  color:#10243f!important;
  text-decoration:none!important;
  position:relative!important;
}
.np-field-status-card:hover{
  transform:translateY(-5px)!important;
  box-shadow:0 17px 38px rgba(15,35,60,.14)!important;
  border-color:#c5d5e5!important;
}
.np-field-status-media{
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  overflow:hidden;
  background:linear-gradient(135deg,#eaf3fa,#dbeaf6);
}
.np-field-status-media img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  transition:transform .28s ease;
}
.np-field-status-card:hover .np-field-status-media img{transform:scale(1.035)}
.np-field-status-media--fallback{
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,#edf6fc 0%,#dcebf7 100%);
}
.np-field-status-media--fallback .np-field-status-icon{
  width:62px!important;
  height:62px!important;
  border-radius:18px!important;
  background:rgba(255,255,255,.78)!important;
  box-shadow:0 6px 20px rgba(15,35,60,.09);
  font-size:1.45rem!important;
}
.np-field-status-pill{
  position:absolute!important;
  top:12px!important;
  right:12px!important;
  z-index:2!important;
  padding:7px 10px!important;
  box-shadow:0 4px 14px rgba(15,35,60,.12)!important;
  border:1px solid rgba(255,255,255,.85)!important;
}
.np-field-status-body{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  padding:17px 18px 18px;
  min-height:86px;
}
.np-field-status-copy{gap:4px!important}
.np-field-status-name{
  font-size:1.02rem!important;
  line-height:1.18!important;
  font-weight:850!important;
  color:#10243f!important;
}
.np-field-status-type{
  font-size:.7rem!important;
  color:#758499!important;
  letter-spacing:.055em!important;
}
.np-field-status-arrow{
  flex:0 0 auto;
  width:31px;
  height:31px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#f0f6fb;
  color:#1768a0;
  font-weight:900;
  transition:.18s ease;
}
.np-field-status-card:hover .np-field-status-arrow{background:#1768a0;color:#fff;transform:translateX(2px)}

@media (min-width:1380px){
  .np-field-status-grid{grid-template-columns:repeat(5,minmax(0,1fr))!important}
}
@media (max-width:1080px){
  .np-field-status-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media (max-width:760px){
  .np-field-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important}
}
@media (max-width:520px){
  .np-field-status-grid{grid-template-columns:1fr!important}
  .np-field-status-media{aspect-ratio:16/8.5}
}

