:root {
  --contact-blue: #003087;
  --contact-sky: #0878d1;
  --contact-ink: #073b55;
  --contact-muted: #526f7e;
  --contact-line: rgba(8, 120, 209, 0.18);
  --contact-glass: rgba(255, 255, 255, 0.8);
}

html { scroll-behavior: smooth; }
.rainbow_contact_page { color: var(--contact-ink); background: radial-gradient(circle at 8% 18%, rgba(56, 183, 231, .14), transparent 29%), radial-gradient(circle at 91% 48%, rgba(109, 121, 220, .11), transparent 27%), #f6fbfe; }
.rainbow_contact_page main { padding-top: 18px; }
.rainbow_contact_page .rainbow_synced_header { position: relative; z-index: 50; }

.rainbow_contact_breadcrumb { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 26px; color: var(--contact-muted); font-size: 15px; }
.rainbow_contact_breadcrumb a { color: var(--contact-sky); }
.rainbow_contact_eyebrow { width: fit-content; margin: 0 0 15px; padding: 8px 12px; border-radius: 8px; color: #0574c6; background: rgba(255,255,255,.84); font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }

.rainbow_contact_hero { padding: 34px 0 70px; }
.rainbow_contact_hero__layout { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(340px, .95fr); gap: clamp(40px, 8vw, 125px); align-items: end; padding: clamp(36px, 6vw, 82px); border: 1px solid rgba(255,255,255,.95); border-radius: 30px; background: linear-gradient(125deg, rgba(225,245,255,.82), rgba(255,255,255,.76)); box-shadow: 0 28px 70px rgba(8,67,109,.12); }
.rainbow_contact_hero h1 { margin: 0; color: var(--contact-blue); font-size: clamp(48px, 6.3vw, 88px); line-height: 1.01; }
.rainbow_contact_hero__copy > p { margin: 0 0 28px; color: var(--contact-muted); font-size: clamp(19px, 1.7vw, 25px); line-height: 1.65; }
.rainbow_contact_hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.rainbow_contact_button { display: inline-flex; min-height: 56px; gap: 10px; align-items: center; justify-content: center; padding: 0 24px; border: 0; border-radius: 10px; font: inherit; font-weight: 700; transition: transform .22s ease, box-shadow .22s ease; }
.rainbow_contact_button--primary { color: white; background: linear-gradient(100deg, #0649a1, #0787d9); box-shadow: 0 12px 26px rgba(4,83,164,.22); }
.rainbow_contact_button--primary:hover { color: white; transform: translateY(-2px); }
.rainbow_contact_button--secondary { border: 1px solid #0b76c6; color: var(--contact-blue); background: rgba(255,255,255,.7); }

.rainbow_contact_paths { padding: 0 0 88px; }
.rainbow_contact_section_heading h2 { margin: 0 0 16px; color: var(--contact-blue); font-size: clamp(36px, 4vw, 58px); line-height: 1.1; }
.rainbow_contact_section_heading > span { display: block; max-width: 720px; color: var(--contact-muted); font-size: 18px; line-height: 1.65; }
.rainbow_contact_paths .rainbow_contact_section_heading { margin-bottom: 32px; }
.rainbow_contact_paths__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.rainbow_contact_action { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 18px; align-items: center; min-width: 0; padding: 26px; border: 1px solid rgba(255,255,255,.95); border-radius: 20px; color: var(--contact-ink); background: var(--contact-glass); box-shadow: 0 16px 38px rgba(8,67,109,.09); transition: transform .22s ease, box-shadow .22s ease; }
.rainbow_contact_action:hover { color: var(--contact-ink); transform: translateY(-4px); box-shadow: 0 23px 46px rgba(8,67,109,.14); }
.rainbow_contact_action__icon { display: grid; width: 58px; height: 58px; place-items: center; border-radius: 16px; color: white; background: linear-gradient(135deg, var(--contact-blue), var(--contact-sky)); font-size: 23px; }
.rainbow_contact_action strong, .rainbow_contact_action small { display: block; }
.rainbow_contact_action strong { margin-bottom: 7px; color: var(--contact-blue); font-size: 20px; line-height: 1.25; }
.rainbow_contact_action small { color: var(--contact-muted); font-size: 16px; line-height: 1.45; }
.rainbow_contact_action > i { color: var(--contact-sky); }

.rainbow_contact_enquiry { padding: 88px 0; background: rgba(225,243,252,.58); }
.rainbow_contact_enquiry__layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(310px, .65fr); gap: 24px; align-items: stretch; }
.rainbow_contact_form_card, .rainbow_contact_visit { border: 1px solid rgba(255,255,255,.95); border-radius: 26px; background: rgba(255,255,255,.76); box-shadow: 0 22px 58px rgba(8,67,109,.11); }
.rainbow_contact_form_card { padding: clamp(28px, 4.2vw, 56px); }
.rainbow_contact_form_card .rainbow_contact_section_heading { margin-bottom: 34px; }
.rainbow_contact_form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.rainbow_contact_field { min-width: 0; }
.rainbow_contact_field--wide, .rainbow_contact_form__footer { grid-column: 1 / -1; }
.rainbow_contact_field label { display: block; margin-bottom: 9px; color: var(--contact-blue); font-size: 16px; font-weight: 700; }
.rainbow_contact_field label span { color: var(--contact-muted); font-size: 14px; font-weight: 500; }
.rainbow_contact_field input, .rainbow_contact_field select, .rainbow_contact_field textarea { width: 100%; min-height: 54px; padding: 13px 15px; border: 1px solid var(--contact-line); border-radius: 10px; outline: none; color: var(--contact-ink); background: rgba(255,255,255,.9); font: inherit; }
.rainbow_contact_field textarea { min-height: 150px; resize: vertical; }
.rainbow_contact_field input:focus, .rainbow_contact_field select:focus, .rainbow_contact_field textarea:focus { border-color: var(--contact-sky); box-shadow: 0 0 0 4px rgba(8,120,209,.12); }
.rainbow_contact_field .is-invalid { border-color: #d43333; box-shadow: 0 0 0 4px rgba(212,51,51,.1); }
.rainbow_contact_form__footer { display: flex; gap: 20px; align-items: center; flex-wrap: wrap; }
#contactFormStatus { flex: 1; min-width: 240px; margin: 0; color: var(--contact-muted); font-size: 16px; line-height: 1.45; }
#contactFormStatus[data-state="error"] { color: #a51e1e; }
#contactFormStatus[data-state="ready"] { color: #075e47; }

.rainbow_contact_visit { padding: clamp(28px, 4vw, 48px); background: linear-gradient(145deg, rgba(6,73,161,.96), rgba(4,130,201,.9)); color: white; }
.rainbow_contact_visit .rainbow_contact_eyebrow { color: #d8f2ff; background: rgba(255,255,255,.12); }
.rainbow_contact_visit__icon { display: grid; width: 72px; height: 72px; margin-bottom: 28px; place-items: center; border: 1px solid rgba(255,255,255,.25); border-radius: 20px; background: rgba(255,255,255,.12); font-size: 30px; }
.rainbow_contact_visit h2 { margin: 0 0 34px; color: white; font-size: clamp(31px, 3vw, 44px); line-height: 1.15; }
.rainbow_contact_visit__item { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 13px; padding: 22px 0; border-top: 1px solid rgba(255,255,255,.2); }
.rainbow_contact_visit__item > i { margin-top: 3px; color: #bfeaff; font-size: 20px; }
.rainbow_contact_visit__item strong { display: block; margin-bottom: 6px; color: white; font-size: 18px; }
.rainbow_contact_visit__item p { margin: 0; color: rgba(255,255,255,.83); font-size: 16px; line-height: 1.55; }
.rainbow_contact_visit__actions { display: grid; gap: 10px; margin-top: 28px; }
.rainbow_contact_visit__actions a { display: flex; min-height: 52px; gap: 10px; align-items: center; justify-content: center; padding: 10px 16px; border: 1px solid rgba(255,255,255,.28); border-radius: 10px; color: white; background: rgba(255,255,255,.12); font-weight: 700; }
.rainbow_contact_visit__actions a:hover { color: white; background: rgba(255,255,255,.2); }

.rainbow_contact_map { padding: 90px 0 105px; scroll-margin-top: 170px; }
.rainbow_contact_map__heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .55fr); gap: 40px; align-items: end; margin-bottom: 30px; }
.rainbow_contact_map__heading h2 { margin: 0; color: var(--contact-blue); font-size: clamp(36px, 4vw, 58px); }
.rainbow_contact_map__heading > p { margin: 0; color: var(--contact-muted); font-size: 18px; line-height: 1.65; }
.rainbow_contact_map__frame { aspect-ratio: 16 / 9; overflow: hidden; border: 1px solid rgba(255,255,255,.95); border-radius: 26px; background: #e7f4fa; box-shadow: 0 24px 58px rgba(8,67,109,.13); }
.rainbow_contact_map__frame iframe { display: block; width: 100%; height: 100%; border: 0; }

@media (max-width: 991px) {
  .rainbow_contact_hero__layout, .rainbow_contact_enquiry__layout { grid-template-columns: 1fr; }
  .rainbow_contact_paths__grid { grid-template-columns: 1fr; }
  .rainbow_contact_map__heading { grid-template-columns: 1fr; gap: 12px; }
}

@media (max-width: 767px) {
  .rainbow_contact_page main { padding-top: 12px; }
  .rainbow_contact_hero { padding: 20px 0 52px; }
  .rainbow_contact_breadcrumb { margin-bottom: 14px; }
  .rainbow_contact_hero__layout { gap: 28px; padding: 28px 20px; border-radius: 22px; }
  .rainbow_contact_hero h1 { font-size: 44px; }
  .rainbow_contact_hero__actions, .rainbow_contact_hero__actions a { width: 100%; }
  .rainbow_contact_paths { padding-bottom: 64px; }
  .rainbow_contact_action { grid-template-columns: auto minmax(0,1fr); padding: 20px; }
  .rainbow_contact_action > i { display: none; }
  .rainbow_contact_enquiry { padding: 64px 0; }
  .rainbow_contact_form_card, .rainbow_contact_visit { padding: 24px 20px; border-radius: 22px; }
  .rainbow_contact_form { grid-template-columns: 1fr; }
  .rainbow_contact_field--wide, .rainbow_contact_form__footer { grid-column: auto; }
  .rainbow_contact_form__footer { display: grid; }
  .rainbow_contact_form__footer .rainbow_contact_button { width: 100%; }
  #contactFormStatus { min-width: 0; }
  .rainbow_contact_map { padding: 64px 0 76px; scroll-margin-top: 100px; }
  .rainbow_contact_map__frame { aspect-ratio: 4 / 5; border-radius: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  .rainbow_contact_page * { scroll-behavior: auto !important; }
  .rainbow_contact_action, .rainbow_contact_button { transition: none; }
}
