/* Shared public-site visual system: deep blue gradient + court-orange actions. */
:root {
  --public-navy: var(--ss-blue-deep, #0f2f3a);
  --public-blue: var(--ss-blue, #397b97);
  --public-orange: var(--ss-orange-bright, #fc8b2d);
  --public-orange-deep: var(--ss-orange, #e37433);
  --public-gradient:
    radial-gradient(circle at 82% 16%, rgba(252,139,45,.52), transparent 34%),
    linear-gradient(135deg, #0f2f3a 0%, #24566a 46%, #397b97 100%);
}

.public-page :is(.hero, .page-head, .header) {
  position: relative;
  color: #fff;
  background: var(--public-gradient);
  border-bottom-color: var(--public-orange-deep);
  overflow: hidden;
}

.public-page :is(.hero, .page-head, .header)::after {
  content: '';
  position: absolute;
  right: -80px;
  bottom: -160px;
  width: 360px;
  height: 360px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 50%;
  pointer-events: none;
}

.public-page :is(.hero, .page-head, .header) > * {
  position: relative;
  z-index: 1;
}

.public-page :is(.hero, .page-head, .header) :is(h1, h2, h3, .hero-title) {
  color: #fff;
}

.public-page :is(.hero, .page-head, .header) :is(p, .lead, .subtitle) {
  color: #deedf1;
}

.public-page .page-head {
  padding-block: clamp(2.6rem, 6vw, 4.7rem);
}

.public-page main.section > .container > h1:first-child {
  color: var(--public-navy);
}

.not-found-page main.section {
  display: grid;
  place-items: center;
  min-height: calc(100vh - 110px);
  color: #fff;
  background: var(--public-gradient);
}

.not-found-page main.section h1 { color: #fff; }
.not-found-page main.section .muted { color: #deedf1; }
.not-found-page main.section .btn-outline { color: #fff; border-color: rgba(255,255,255,.5); }
.not-found-page main.section .btn-outline:hover { color: var(--public-navy); background: #fff; }

.public-page :is(.btn-primary, .cta-button, .apply-button, .public-action) {
  color: var(--public-navy);
  background: var(--public-orange);
  border-color: transparent;
  box-shadow: 0 7px 20px rgba(227,116,51,.25);
}

.public-page :is(.btn-primary, .cta-button, .apply-button, .public-action):hover,
.public-page :is(.btn-primary, .cta-button, .apply-button, .public-action):focus-visible {
  color: var(--public-navy);
  background: var(--public-orange-deep);
  text-decoration: none;
}

.public-page :is(.site-footer, .footer) {
  color: #fff;
  background: linear-gradient(135deg, #0f2f3a 0%, #24566a 54%, #397b97 100%);
  border-top: 4px solid var(--public-orange-deep);
}

.public-page :is(.site-footer, .footer) :is(h2, h3, h4, strong) { color: #fff; }
.public-page :is(.site-footer, .footer) :is(p, span) { color: #d6e7eb; }
.public-page :is(.site-footer, .footer) a { color: #ffc18d; }
.public-page :is(.site-footer, .footer) a:hover { color: #fff; }

.public-page .ss-footer-contact {
  margin: .65rem 0 0;
  color: #d6e7eb;
  font-size: .85rem;
  text-align: center;
}

.public-page [data-cms-contact-address],
.public-page [data-cms-contact-hours],
.public-page [data-cms-contact-locations] {
  white-space: pre-line;
}

@media (max-width: 640px) {
  .public-page :is(.hero, .page-head, .header)::after {
    right: -160px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .public-page * { scroll-behavior: auto; }
}
