/* ==================================================================
   New Horizons — health theme layer
   Mint green + deep purple, near-black headings on light grey,
   solid buttons with a chevron, accent bar above headlines,
   ring decorations in the hero, purple band under the hero.
   Loaded after the inline header styles so it takes precedence.
   ================================================================== */
:root {
    --hl-green: #00c896;
    --hl-green-600: #00a87e;
    --hl-green-text: #008f6b;      /* green readable on white */
    --hl-purple: #48317f;
    --hl-purple-700: #3a2768;
    --hl-ink: #15122b;
    --hl-muted: #6f7378;
    --hl-surface: #f2f4f3;
    --hl-radius: 8px;
    --hl-ease: cubic-bezier(.22, .61, .36, 1);

    --primary-color: var(--hl-green);
    --accent-color: var(--hl-purple);
    --ink-color: var(--hl-ink);
    --text-main: var(--hl-ink);
}

body { color: var(--hl-ink); }
h1, h2, h3, h4, h5, h6 { color: var(--hl-ink); }

/* ---- Buttons: one shape everywhere --------------------------------
   Solid green, 8px corners, bold white label, chevron that nudges on
   hover. Secondary buttons share the shape and weight as an outline.
   Functional controls (tabs, filters, accordions, close, cookie
   consent) are deliberately left out. */
.nh-btn,
.btn-primary-nurture,
.btn-pill-primary,
.btn-pink,
.btn-primary,
.btn-accent,
.blog-cta-btn,
.sd-cta-btn,
.comment-submit-btn,
.btn-success-page,
.nh-popup-submit,
.careers-cta,
body .nh-home-hero .nh-home-hero-actions a:first-child,
.nh-btn--ghost,
.btn-pill-secondary,
.btn-outline-pink,
.btn-outline-primary,
.btn-outline-success,
.btn-outline-success-page,
.nh-outline-link,
body .nh-home-hero .nh-home-hero-actions a:not(:first-child) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .7em;
    min-height: 48px;
    padding: .8rem 1.6rem !important;
    border-radius: var(--hl-radius) !important;
    font-family: 'Manrope', sans-serif;
    font-size: 1rem !important;
    font-weight: 700 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    text-decoration: none !important;
    line-height: 1.2;
    box-shadow: none !important;
    cursor: pointer;
    transition: background-color .2s, border-color .2s, color .2s, transform .2s var(--hl-ease);
}

/* Primary: solid green */
.nh-btn,
.btn-primary-nurture,
.btn-pill-primary,
.btn-pink,
.btn-primary,
.btn-accent,
.blog-cta-btn,
.sd-cta-btn,
.comment-submit-btn,
.btn-success-page,
.nh-popup-submit,
.careers-cta,
body .nh-home-hero .nh-home-hero-actions a:first-child {
    background: var(--hl-green) !important;
    border: 1.5px solid var(--hl-green) !important;
    color: #fff !important;
}
.nh-btn:hover,
.btn-primary-nurture:hover,
.btn-pill-primary:hover,
.btn-pink:hover,
.btn-primary:hover,
.btn-accent:hover,
.blog-cta-btn:hover,
.sd-cta-btn:hover,
.comment-submit-btn:hover,
.btn-success-page:hover,
.nh-popup-submit:hover,
.careers-cta:hover,
body .nh-home-hero .nh-home-hero-actions a:first-child:hover {
    background: var(--hl-green-600) !important;
    border-color: var(--hl-green-600) !important;
    color: #fff !important;
    transform: translateY(-1px);
}

/* Secondary: same shape, outlined */
.nh-btn--ghost,
.btn-pill-secondary,
.btn-outline-pink,
.btn-outline-primary,
.btn-outline-success,
.btn-outline-success-page,
.nh-outline-link,
body .nh-home-hero .nh-home-hero-actions a:not(:first-child) {
    background: #fff !important;
    border: 1.5px solid var(--hl-green) !important;
    color: var(--hl-green-text) !important;
}
.nh-btn--ghost:hover,
.btn-pill-secondary:hover,
.btn-outline-pink:hover,
.btn-outline-primary:hover,
.btn-outline-success:hover,
.btn-outline-success-page:hover,
.nh-outline-link:hover,
body .nh-home-hero .nh-home-hero-actions a:not(:first-child):hover {
    background: var(--hl-green) !important;
    color: #fff !important;
    transform: translateY(-1px);
}

/* Drawn chevron, skipped when the button already carries its own icon. */
.nh-btn:not(:has(i, svg))::after,
.btn-primary-nurture:not(:has(i, svg))::after,
.btn-pill-primary:not(:has(i, svg))::after,
.btn-pink:not(:has(i, svg))::after,
.blog-cta-btn:not(:has(i, svg))::after,
.sd-cta-btn:not(:has(i, svg))::after,
.comment-submit-btn:not(:has(i, svg))::after,
.btn-success-page:not(:has(i, svg))::after,
.nh-popup-submit:not(:has(i, svg))::after,
.careers-cta:not(:has(i, svg))::after,
body .nh-home-hero .nh-home-hero-actions a:first-child::after {
    content: "";
    flex: 0 0 auto;
    width: .42em;
    height: .42em;
    margin: 0 .1em 0 .15em;
    border-top: 2.5px solid currentColor;
    border-right: 2.5px solid currentColor;
    transform: rotate(45deg);
    transition: transform .2s var(--hl-ease);
    font-size: 1em;
    line-height: 0;
}
.nh-btn:hover::after,
.btn-primary-nurture:hover::after,
.btn-pill-primary:hover::after,
.btn-pink:hover::after,
.blog-cta-btn:hover::after,
.sd-cta-btn:hover::after,
.comment-submit-btn:hover::after,
.btn-success-page:hover::after,
.nh-popup-submit:hover::after,
.careers-cta:hover::after,
body .nh-home-hero .nh-home-hero-actions a:first-child:hover::after {
    transform: translateX(3px) rotate(45deg);
}

/* Small buttons keep the look at a tighter size. */
.btn-sm.btn-primary,
.btn-sm.btn-outline-success,
.btn-sm.btn-outline-primary {
    min-height: 36px;
    padding: .45rem 1rem !important;
    font-size: .875rem !important;
}

/* ---- Headings: green accent bar + highlighted words --------------- */
body .nh-accent { color: var(--hl-green); }
body .nh-section-title { font-weight: 800; color: var(--hl-ink); }
body .nh-section-copy { color: var(--hl-muted); }
body .nh-kicker,
body .nh-section-kicker { color: var(--hl-purple) !important; font-weight: 800; letter-spacing: .1em; }
.text-pink { color: var(--hl-purple) !important; }
.text-classic-blue { color: var(--hl-ink) !important; }

/* ---- Navigation --------------------------------------------------- */
.navbar .nav-link { color: var(--hl-ink); font-weight: 500; transition: color .2s; }
.navbar .nav-link:hover,
.navbar .nav-link.active { color: var(--hl-green-text) !important; }

/* ---- Hero: accent bar, near-black headline, ring decorations ------ */
body .nh-home-hero h1 { color: var(--hl-ink); font-weight: 800; letter-spacing: -.02em; }
body .nh-home-hero h1::before {
    content: "";
    display: block;
    width: 110px; height: 7px;
    margin-bottom: 1.4rem;
    background: var(--hl-green);
}
body .nh-home-hero p { color: var(--hl-muted); }

/* ---- Stats strip as the purple band under the hero ---------------- */
body .nh-focus-strip .nh-focus-grid {
    gap: 0;
    background: var(--hl-purple);
    border-radius: var(--hl-radius);
    overflow: hidden;
    box-shadow: 0 24px 50px rgba(72, 49, 127, .28);
}
body .nh-focus-card,
body .nh-focus-card.is-pink,
body .nh-focus-card.is-plum,
body .nh-focus-card.is-soft {
    background: transparent !important;
    color: #fff !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    border-right: 1px solid rgba(255, 255, 255, .14);
    transition: background-color .3s;
}
body .nh-focus-card:last-child { border-right: 0; }
body .nh-focus-card * { color: inherit !important; }
body .nh-focus-card strong { color: #fff !important; }
body .nh-focus-card span { color: rgba(255, 255, 255, .78) !important; }
body .nh-focus-card:hover { background: var(--hl-purple-700) !important; }
body .nh-focus-card:first-child { background: var(--hl-green) !important; }
body .nh-focus-card:first-child:hover { background: var(--hl-green-600) !important; }
body .nh-focus-card:first-child span { color: rgba(255, 255, 255, .9) !important; }

/* ---- Cards -------------------------------------------------------- */
body .nh-program-card,
body .nh-resource-card,
.gallery-item-card {
    border-radius: var(--hl-radius) !important;
    transition: transform .35s var(--hl-ease), box-shadow .35s var(--hl-ease);
}
body .nh-program-card:hover,
body .nh-resource-card:hover,
.gallery-item-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 36px rgba(21, 18, 43, .12);
}
body .nh-program-card-category { background: var(--hl-purple) !important; color: #fff !important; }

/* ---- Dark bands in purple ---------------------------------------- */
body section.nh-sanctuary:not(.nh-sanctuary--plain),
.facility-section { background: var(--hl-purple) !important; }

/* ---- Forms -------------------------------------------------------- */
.form-control:focus,
.form-select:focus { border-color: var(--hl-green); box-shadow: 0 0 0 4px rgba(0, 200, 150, .15); }

@media (max-width: 991.98px) {
    body .nh-focus-strip .nh-focus-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body .nh-focus-card:nth-child(2) { border-right: 0; }
    body .nh-focus-card:nth-child(-n+2) { border-bottom: 1px solid rgba(255, 255, 255, .14); }
}
@media (prefers-reduced-motion: reduce) {
    body .nh-program-card, .nh-resource-card, .gallery-item-card, .nh-focus-card { transition: none; }
}

/* ---- Dotted pattern decoration -------------------------------------
   Drop <span class="nh-dots nh-dots--tl" aria-hidden="true"></span> into
   any position:relative container. Modifiers: --tl / --tr / --bl / --br
   for the corner, --light for use on dark or photo backgrounds. */
.nh-dots {
    position: absolute;
    z-index: 0;
    width: clamp(120px, 16vw, 230px);
    height: clamp(120px, 16vw, 230px);
    pointer-events: none;
    background-image: radial-gradient(circle, rgba(72, 49, 127, 0.28) 1.6px, transparent 2px);
    background-size: 22px 22px;
}
.nh-dots--light { background-image: radial-gradient(circle, rgba(255, 255, 255, 0.75) 1.6px, transparent 2px); }
.nh-dots--tl { top: 24px; left: 24px; }
.nh-dots--tr { top: 24px; right: 24px; }
.nh-dots--bl { bottom: 24px; left: 24px; }
.nh-dots--br { bottom: 24px; right: 24px; }
/* Hugging a card or image: sit behind it, offset out from the corner. */
.nh-dots--behind.nh-dots--tl { top: -28px; left: -28px; }
.nh-dots--behind.nh-dots--tr { top: -28px; right: -28px; }
.nh-dots--behind.nh-dots--bl { bottom: -28px; left: -28px; }
.nh-dots--behind.nh-dots--br { bottom: -28px; right: -28px; }
@media (max-width: 575.98px) {
    .nh-dots { width: 96px; height: 96px; background-size: 18px 18px; }
}

/* Sections that carry a dotted decoration: give it a corner to sit in and
   keep the real content above it. */
body .nh-about-intro,
body .nh-programs,
body .nh-continuity,
body .nh-resources { position: relative; }
body .nh-about-intro > .container,
body .nh-programs > .container,
body .nh-continuity > .container,
body .nh-resources > .container { position: relative; z-index: 1; }

/* ---- Top admissions bar --------------------------------------------
   Deep purple strip with a green pill, matching the band palette. */
body .admissions-bar {
    background: var(--hl-purple);
    border-bottom: 0;
}
body .admissions-bar .admissions-pill {
    background: var(--hl-green);
    color: #fff;
}
body .admissions-bar a { color: #fff; }
body .admissions-bar a:hover { color: var(--hl-green); }
