:root {
  --gpis-surface: #f7f9fc;
  --gpis-surface-2: #eef4fb;
  --gpis-navy: #202a5a;
  --gpis-indigo-2: #33408f;
  --gpis-cyan: #0f8f96;
  --gpis-cyan-soft: #e6f7f7;
  --gpis-gold-soft: #fff4d6;
  --gpis-copy: #253047;
  --gpis-copy-soft: #58657e;
}

body {
  color: var(--gpis-copy);
}

.top-header {
  background: linear-gradient(90deg, #163b78 0%, #1d5a8d 55%, #0f8f96 100%) !important;
  min-height: 44px;
}

.notice-bar span,
.top-phone {
  color: #fff !important;
}

.navbar {
  padding-top: 0.55rem;
  padding-bottom: 0.55rem;
  background: rgba(255,255,255,.96) !important;
  backdrop-filter: blur(10px);
}

.navbar-brand {
  display: flex;
  align-items: center;
  min-height: 72px;
  padding-top: 0;
  padding-bottom: 0;
}

.navbar-brand img {
  width: 260px !important;
  max-width: 100%;
  max-height: 72px !important;
  object-fit: contain;
}

.navbar .nav-link {
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important;
  font-weight: 700;
  letter-spacing: .01em;
}

.navbar .btn-danger,
.btn-danger,
.btn-primary {
  background: linear-gradient(135deg, var(--gpis-indigo-2), var(--gpis-cyan)) !important;
  border-color: transparent !important;
}

.registration-strip,
.premium-home.v1-royal-red .registration-strip {
  min-height: 58px;
  background: linear-gradient(90deg, #17366e 0%, #2f5ab1 50%, #0f8f96 100%) !important;
  box-shadow: 0 14px 34px rgba(22, 59, 120, .18) !important;
}

.registration-link {
  font-size: clamp(18px, 1.7vw, 24px) !important;
  font-weight: 800 !important;
}

.welcome-notification-section,
.premium-home.v1-royal-red .welcome-notification-section {
  position: relative;
  padding: 74px 0 80px !important;
  background:
    radial-gradient(circle at 12% 10%, rgba(15, 143, 150, .08), transparent 28%),
    radial-gradient(circle at 92% 12%, rgba(60, 77, 170, .10), transparent 22%),
    linear-gradient(135deg, #ffffff 0%, #f8fbff 48%, #eef5fb 100%) !important;
}

.welcome-title,
.premium-home.v1-royal-red .welcome-title {
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important;
  font-size: clamp(38px, 4.6vw, 68px) !important;
  line-height: .96 !important;
  letter-spacing: -0.04em !important;
  color: var(--gpis-navy) !important;
  max-width: 5.8ch;
  margin-bottom: 0;
}

.welcome-title span,
.premium-home.v1-royal-red .welcome-title span {
  display: inline-flex;
  align-items: center;
  padding: 9px 18px !important;
  margin-bottom: 22px !important;
  border: 1px solid rgba(32, 42, 90, .12) !important;
  border-radius: 999px;
  background: rgba(255,255,255,.92) !important;
  color: var(--gpis-cyan) !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  letter-spacing: .16em !important;
  box-shadow: 0 12px 28px rgba(22, 59, 120, .08);
}

.welcome-copy,
.premium-home.v1-royal-red .welcome-copy {
  min-height: 100%;
  padding: 34px 36px !important;
  border: 1px solid rgba(32, 42, 90, .08) !important;
  border-radius: 28px !important;
  background: rgba(255,255,255,.96) !important;
  box-shadow: 0 18px 48px rgba(31, 49, 91, .08) !important;
}

.welcome-copy .lead-copy,
.premium-home.v1-royal-red .welcome-copy .lead-copy {
  color: var(--gpis-copy) !important;
  font-size: clamp(18px, 1.35vw, 22px) !important;
  line-height: 1.72 !important;
  font-weight: 500 !important;
}

.welcome-copy p:not(.lead-copy) {
  color: var(--gpis-copy-soft) !important;
  font-size: 17px !important;
  line-height: 1.7 !important;
}

.read-more-link,
.premium-home.v1-royal-red .read-more-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 20px !important;
  border-radius: 999px;
  background: var(--gpis-cyan-soft) !important;
  color: var(--gpis-indigo-2) !important;
  font-weight: 800 !important;
  text-decoration: none;
}

.read-more-link:hover,
.premium-home.v1-royal-red .read-more-link:hover {
  background: linear-gradient(135deg, var(--gpis-indigo-2), var(--gpis-cyan)) !important;
  color: #fff !important;
}

.notification-card,
.premium-home.v1-royal-red .notification-card {
  position: relative;
  overflow: hidden;
  min-height: 100%;
  border: 1px solid rgba(255,255,255,.18) !important;
  border-top: none !important;
  border-radius: 28px !important;
  background:
    radial-gradient(circle at 88% 8%, rgba(255,255,255,.14), transparent 28%),
    linear-gradient(145deg, #20306a 0%, #2a4b8d 56%, #176e89 100%) !important;
  box-shadow: 0 24px 56px rgba(24, 46, 99, .24) !important;
}

.notification-card::after,
.premium-home.v1-royal-red .notification-card::after {
  content: "";
  position: absolute;
  right: -56px;
  bottom: -52px;
  width: 170px;
  height: 170px;
  border-radius: 50%;
  background: rgba(255,255,255,.08);
}

.notification-heading-row,
.notification-scroll-window {
  position: relative;
  z-index: 1;
}

.notification-heading-row h2,
.premium-home.v1-royal-red .notification-heading-row h2 {
  color: #fff !important;
  font-size: clamp(34px, 2.4vw, 48px) !important;
  font-weight: 900 !important;
  letter-spacing: -.03em;
}

.all-notifications-link,
.premium-home.v1-royal-red .all-notifications-link {
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.36) !important;
  background: rgba(255,255,255,.08) !important;
  backdrop-filter: blur(6px);
}

.all-notifications-link:hover {
  background: rgba(255,255,255,.18) !important;
  color: #fff !important;
}

.notification-item-link {
  border-bottom-color: rgba(255,255,255,.18) !important;
}

.notification-category {
  display: inline-flex;
  align-items: center;
  padding: 7px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,.18) !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.notification-item h3,
.notification-item time,
.notification-item p,
.notification-plus {
  color: #fff !important;
}

.notification-item h3 {
  font-size: clamp(26px, 1.6vw, 33px) !important;
  line-height: 1.28 !important;
  font-weight: 800 !important;
}

.notification-item time {
  opacity: .82;
  font-weight: 600;
}

.notification-item p {
  opacity: .94;
}

.notification-plus {
  color: #ffd56a !important;
  font-size: 42px !important;
  line-height: 1;
}

.quick-card,
.parent-decision-card,
.event-card,
.gallery-album-card,
.award-list-card,
.testimonial-card {
  border: 1px solid rgba(31, 49, 91, .08) !important;
  border-radius: 24px !important;
  box-shadow: 0 16px 36px rgba(31,49,91,.07) !important;
}

.quick-card:hover,
.parent-decision-card:hover,
.event-card:hover,
.gallery-album-card:hover,
.award-list-card:hover {
  transform: translateY(-4px);
}

@media (max-width: 1199.98px) {
  .navbar-brand img {
    width: 225px !important;
    max-height: 64px !important;
  }

  .welcome-title,
  .premium-home.v1-royal-red .welcome-title {
    max-width: 8ch;
    margin-bottom: 18px;
  }
}

@media (max-width: 991.98px) {
  .navbar-brand {
    min-height: 62px;
  }

  .navbar-brand img {
    width: 210px !important;
    max-height: 58px !important;
  }

  .welcome-notification-section,
  .premium-home.v1-royal-red .welcome-notification-section {
    padding: 58px 0 62px !important;
  }

  .welcome-copy,
  .premium-home.v1-royal-red .welcome-copy,
  .notification-card,
  .premium-home.v1-royal-red .notification-card {
    min-height: auto;
  }
}

@media (max-width: 575.98px) {
  .registration-link {
    font-size: 16px !important;
  }

  .welcome-title,
  .premium-home.v1-royal-red .welcome-title {
    font-size: clamp(32px, 11vw, 48px) !important;
    max-width: none;
  }

  .welcome-copy,
  .premium-home.v1-royal-red .welcome-copy {
    padding: 24px 20px !important;
  }

  .notification-heading-row h2,
  .premium-home.v1-royal-red .notification-heading-row h2 {
    font-size: 32px !important;
  }

  .notification-item h3 {
    font-size: 24px !important;
  }
}

/* ==========================================================
   FINAL CSS CLEANUP — button/link colour safety across pages
   Keeps normal content links coloured, but prevents generic legacy
   link rules from overriding CTA buttons and action links.
========================================================== */
.legacy-content a.about-primary-btn,
.legacy-content a.about-primary-btn:link,
.legacy-content a.about-primary-btn:visited,
.about-school-page a.about-primary-btn,
.about-school-page a.about-primary-btn:link,
.about-school-page a.about-primary-btn:visited,
.about-school-page a.about-primary-btn:hover,
.about-school-page a.about-primary-btn:focus {
  color: #ffffff !important;
  text-decoration: none !important;
}

.legacy-content a.about-outline-btn,
.legacy-content a.about-outline-btn:link,
.legacy-content a.about-outline-btn:visited,
.about-school-page a.about-outline-btn,
.about-school-page a.about-outline-btn:link,
.about-school-page a.about-outline-btn:visited {
  color: #10294f !important;
  text-decoration: none !important;
}

.about-school-page a.about-outline-btn:hover,
.about-school-page a.about-outline-btn:focus {
  color: #10294f !important;
  text-decoration: none !important;
}

.legacy-content a.btnlink,
.legacy-content a.btnlink:link,
.legacy-content a.btnlink:visited,
.legacy-content input.btnlink,
.legacy-content a.applybtn,
.legacy-content a.applybtn:link,
.legacy-content a.applybtn:visited {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 42px !important;
  padding: 10px 18px !important;
  border: 0 !important;
  border-radius: 8px !important;
  background: linear-gradient(135deg, #4f2fae, #006d77) !important;
  color: #ffffff !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  text-decoration: none !important;
  box-shadow: none !important;
}

.legacy-content a.btnlink:hover,
.legacy-content a.btnlink:focus,
.legacy-content input.btnlink:hover,
.legacy-content input.btnlink:focus,
.legacy-content a.applybtn:hover,
.legacy-content a.applybtn:focus {
  background: linear-gradient(135deg, #3f238f, #005d65) !important;
  color: #ffffff !important;
  text-decoration: none !important;
}

.legacy-content a.disclosure-download,
.legacy-content a.disclosure-download:link,
.legacy-content a.disclosure-download:visited {
  color: var(--disclosure-red, #d92334) !important;
  text-decoration: none !important;
}

.legacy-content a.disclosure-download:hover,
.legacy-content a.disclosure-download:focus {
  color: #ffffff !important;
  text-decoration: none !important;
}

.legacy-content a.school-map-directions,
.legacy-content a.school-map-directions:link,
.legacy-content a.school-map-directions:visited {
  color: #102f5c !important;
  text-decoration: none !important;
}

.legacy-content a.school-map-directions:hover,
.legacy-content a.school-map-directions:focus {
  color: #ffffff !important;
  text-decoration: none !important;
}

.legacy-content a.holiday-btn-primary,
.legacy-content a.holiday-btn-primary:link,
.legacy-content a.holiday-btn-primary:visited,
.legacy-content a.prospectus-btn-primary,
.legacy-content a.prospectus-btn-primary:link,
.legacy-content a.prospectus-btn-primary:visited,
.legacy-content a.prospectus-btn-light,
.legacy-content a.prospectus-btn-light:link,
.legacy-content a.prospectus-btn-light:visited {
  color: #ffffff !important;
  text-decoration: none !important;
}

.legacy-content a.holiday-btn-primary:hover,
.legacy-content a.holiday-btn-primary:focus,
.legacy-content a.prospectus-btn-primary:hover,
.legacy-content a.prospectus-btn-primary:focus,
.legacy-content a.prospectus-btn-light:hover,
.legacy-content a.prospectus-btn-light:focus {
  color: #ffffff !important;
  text-decoration: none !important;
}

.legacy-content a.holiday-btn-outline,
.legacy-content a.holiday-btn-outline:link,
.legacy-content a.holiday-btn-outline:visited,
.legacy-content a.prospectus-btn-outline,
.legacy-content a.prospectus-btn-outline:link,
.legacy-content a.prospectus-btn-outline:visited,
.legacy-content a.prospectus-open-link,
.legacy-content a.prospectus-open-link:link,
.legacy-content a.prospectus-open-link:visited {
  text-decoration: none !important;
}

/* Prevent header/button layout issues on smaller screens. */
.navbar .btn-danger {
  color: #ffffff !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

@media (max-width: 991.98px) {
  .navbar .navbar-collapse {
    padding: 14px 0 6px !important;
  }

  .navbar .btn-danger {
    display: inline-flex !important;
    margin-top: 10px !important;
    margin-left: 0 !important;
  }
}

/* =====================================================
  INDEX PAGE VISIBILITY + PARENT INFO BACKGROUND POLISH
===================================================== */
.testimonials-premium-section .section-kicker,
.testimonial-heading-wrap .section-kicker {
  background: linear-gradient(135deg, #c3182f 0%, #e03d4f 100%) !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  text-shadow: none !important;
  border: 1px solid rgba(255,255,255,0.18) !important;
  box-shadow: 0 14px 34px rgba(195, 24, 47, 0.28) !important;
}

.parent-decision-section {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 12% 14%, rgba(0, 166, 166, 0.16), transparent 18%),
    radial-gradient(circle at 86% 12%, rgba(79, 47, 174, 0.16), transparent 22%),
    radial-gradient(circle at 84% 82%, rgba(249, 199, 79, 0.16), transparent 18%),
    linear-gradient(180deg, #eefbff 0%, #f8fbff 46%, #ffffff 100%) !important;
}

.parent-decision-section::before,
.parent-decision-section::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  filter: blur(1px);
}

.parent-decision-section::before {
  top: -120px;
  left: -90px;
  width: 280px;
  height: 280px;
  background: rgba(79, 47, 174, 0.08);
}

.parent-decision-section::after {
  right: -90px;
  bottom: -130px;
  width: 320px;
  height: 320px;
  background: rgba(0, 166, 166, 0.08);
}

.parent-decision-section .container,
.parent-decision-heading,
.parent-decision-card {
  position: relative;
  z-index: 1;
}

.parent-decision-heading .section-kicker {
  background: rgba(255, 255, 255, 0.88) !important;
  color: var(--gpis-teal-dark, #006d77) !important;
  border: 1px solid rgba(79, 47, 174, 0.12) !important;
  box-shadow: 0 14px 34px rgba(44, 23, 100, 0.08) !important;
}

.parent-decision-card {
  position: relative;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.94) !important;
  backdrop-filter: blur(10px);
  border: 1px solid rgba(79, 47, 174, 0.14) !important;
  box-shadow: 0 18px 42px rgba(44, 23, 100, 0.09) !important;
}

.parent-decision-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 5px;
  background: linear-gradient(90deg, #00a6a6 0%, #4f2fae 55%, #f9c74f 100%);
}

.parent-decision-card:hover {
  transform: translateY(-6px);
  border-color: rgba(0, 166, 166, 0.28) !important;
  box-shadow: 0 24px 56px rgba(0, 109, 119, 0.14) !important;
}

.parent-decision-card .decision-icon {
  box-shadow: 0 14px 30px rgba(44, 23, 100, 0.16);
}

.parent-decision-card h3 {
  color: var(--gpis-indigo-dark, #2c1764) !important;
}

.parent-decision-card p {
  color: #59667d !important;
}

