/* Approved poster-inspired blues; the original eight-colour symbol stays intact. */
:root {
  --ink: #102e47;
  --ink-soft: #466176;
  --plum: #06365b;
  --violet: #145f8c;
  --berry: #145f8c;
  --cream: #f7fafc;
  --mist: #edf5fa;
  --line: #d5e3ee;
  --shadow: 0 20px 55px rgba(6,54,91,.12);
}
body::before { background: radial-gradient(circle, rgba(19,102,154,.08), rgba(79,151,197,.025) 42%, transparent 70%); }
.site-header { background: rgba(247,250,252,.82); }
.hero { background: radial-gradient(circle at 80% 20%, rgba(78,148,194,.15), transparent 32rem), linear-gradient(145deg,#f7fafc,#e7f2f9); }
.hero::before { background: radial-gradient(circle,rgba(78,148,194,.13),transparent 70%); }
.wellness-mark-panel { background: transparent; border: 0; box-shadow: none; }
.page-hero { background: radial-gradient(circle at 88% 20%, rgba(80,151,195,.2), transparent 22rem), var(--mist); }
.page-hero::before { border-color: rgba(19,102,154,.07); }
.section--plum .eyebrow { color: #b9e3f7; }
.section--plum .lead { color: #e0edf5; }
.site-footer { background: #092c4a; color: #f4f9fc; }
.footer-grid h2, .footer-grid p, .footer-grid address, .brand--footer small, .footer-bottom { color: #d3e3ee; }
.primary-nav a:hover, .primary-nav a[aria-current="page"] { background: #e5f0f7; }
.section-content { margin-top: 1.8rem; }
.section-content > p { max-width: 72rem; }
.section-content .lead { margin-top: 0; }
/* Reuse the homepage counter while keeping the metric card's label separate. */
.metric-primary > .impact-number { display: inline-flex; font-size: clamp(3.2rem, 7vw, 6rem); letter-spacing: 0; }
.metric-primary .impact-digit, .metric-primary .impact-separator { display: inline-grid; margin-top: 0; font-size: inherit; font-weight: inherit; }
.subheading { margin-top: 2.5rem; }
.card h3 { line-height: 1.2; }
.card ul { padding-left: 1.25rem; margin-top: .7rem; color: var(--ink-soft); }
.card [class*="button"] { margin-top: auto; align-self: flex-start; }
.card [class*="button"]:not(:last-child) { margin-bottom: .8rem; }
[id] { scroll-margin-top: 10rem; }
.blue-panel { border-radius: var(--radius-lg); padding: clamp(1.5rem,4vw,3rem); background: var(--plum); color: #fff; }
.blue-panel p { color: #e2edf5; }
.blue-panel .eyebrow { color: #b5dff1; }
.blue-panel h3 { line-height: 1.2; }
.blue-panel .button { background: white; color: var(--plum); border-color: white; }
.blue-panel .button:hover { background: #dfedf5; }
.event-layout { display: grid; grid-template-columns: 1.35fr .65fr; gap: clamp(2rem,5vw,5rem); align-items: start; }
.event-facts { display: grid; grid-template-columns: 7rem minmax(0,1fr); gap: .9rem 1.5rem; margin-top: 2rem; }
.event-facts dt { font-weight: 800; color: var(--plum); }
.event-facts dd { margin: 0; }
.source-poster { margin: 0; max-width: 36rem; }
.source-poster img { width: 100%; height: auto; border-radius: 1rem; border: 1px solid var(--line); }
.source-poster figcaption { margin-top: .8rem; font-size: .8rem; color: var(--ink-soft); }
.guidance-panel { margin-top: 2rem; padding: 1.5rem 2rem; border-left: .4rem solid var(--blue); border-radius: .3rem 1rem 1rem .3rem; background: var(--mist); }
.offer-code { font-family: ui-monospace,monospace; background: #edf5fa; color: #06365b; padding: .2rem .4rem; border-radius: .25rem; }
.offer-schedule { font-size: .88rem; }
.offer-filters { display: flex; flex-wrap: wrap; gap: .6rem; margin-block: 1.5rem .8rem; }
.filter-button { border: 1px solid var(--line); color: var(--plum); background: white; border-radius: 2rem; padding: .7rem 1rem; font-weight: 700; cursor: pointer; min-height: 44px; }
.filter-button[aria-pressed="true"] { background: var(--plum); color: white; border-color: var(--plum); }
[hidden] { display: none !important; }
details { margin-top: 1rem; border: 1px solid var(--line); border-radius: .7rem; padding: 1rem 1.2rem; background: #fff; }
details .source-poster { margin-top: 1.5rem; }
summary { cursor: pointer; font-weight: 700; color: var(--plum); }
.offer-card details { font-size: .82rem; }
.faq-list { max-width: 72rem; }
.tool-panel { background: #fff; padding: clamp(1.4rem,4vw,3rem); border: 1px solid var(--line); border-radius: 1.4rem; max-width: 75rem; }
.budget-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem 1.5rem; }
.budget-results { padding: 1rem 1.5rem; background: var(--mist); border-radius: .8rem; margin-top: 1.5rem; }
.budget-results strong { font-size: 1.35rem; }
.checkin-next-links { margin-top: 1.5rem; padding-top: 1.3rem; border-top: 1px solid var(--line); }
.checkin-next-links h3 { font-size: 1.15rem; }
.checkin-next-links a { display: block; padding-top: .7rem; font-weight: 650; }
.print-value { display: none; }
/* Keep the wider campaign label from compressing the desktop controls. */
@media (min-width:79.001rem) and (max-width:90rem) {
  .nav-shell { gap: .65rem; padding-inline: .8rem; }
  .brand { gap: .45rem; }
  .brand strong { font-size: 1.02rem; }
  .primary-nav { gap: .4rem; }
  .primary-nav a { padding-inline: .28rem; font-size: .67rem; }
  .primary-nav .nav-cta, .primary-nav .nav-contact { padding-inline: .6rem; }
  .header-socials { gap: .2rem; margin-left: .2rem; }
  .header-socials .social-icon { width: 1.95rem; height: 1.95rem; }
}
@media (max-width: 60rem) { .event-layout { grid-template-columns: 1fr; } .source-poster { max-width: 32rem; } }
@media (max-width: 36rem) { .event-facts { grid-template-columns: 1fr; gap: .35rem; } .event-facts dd { margin-bottom: .8rem; } .budget-fields { grid-template-columns: 1fr; } .guidance-panel { padding: 1.2rem; } }
@media print {
  :root { --ink: #111; --ink-soft: #333; }
  .site-header, .site-footer, .skip-link, .button-row, .form-actions, .source-poster, .page-hero, [data-print], .button, .notice-bar { display: none !important; }
  body, main, .section { background: white !important; overflow: visible !important; }
  .section { padding: 1rem 0; }
  .card, .tool-panel { box-shadow: none !important; transform: none !important; break-inside: avoid; }
  .card-grid { grid-template-columns: 1fr 1fr; }
  .print-mode main > section:not(.print-target) { display: none !important; }
  .print-mode .print-target { display: block !important; }
  .print-mode input, .print-mode textarea { display: none !important; }
  .print-value { display: block; white-space: pre-wrap; padding: .5rem 0; border-bottom: 1px solid #aaa; min-height: 2rem; }
}
