.contact-page { overflow-x: clip; }
.contact-page .section { position: relative; }
.contact-hero { padding-block: var(--space-20); }
.contact-hero__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: center; gap: var(--space-8); }
.contact-hero__grid > * { min-width: 0; width: 100%; }
.contact-hero__panel { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); padding: var(--space-10); }
.contact-hero__panel > * { margin: 0; }
.contact-hero__lead { max-width: 620px; }
.contact-hero__text-link { min-height: 44px; display: inline-flex; align-items: center; font-weight: 600; }
.contact-hero__note { max-width: 560px; color: rgba(32,35,72,.75); font-size: 14px; line-height: 1.43; }
.contact-hero__figure { width: 100%; margin: 0; }
.contact-hero__figure img { width: 100%; aspect-ratio: 3 / 2; object-position: right center; }
.contact-direct { background: var(--color-cloud-100); }
.contact-direct__intro, .contact-pathways__intro, .contact-guidance__intro { max-width: 680px; }
.contact-direct__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); margin-top: var(--space-8); }
.contact-direct__grid > * { min-width: 0; width: 100%; }
.contact-detail { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3); }
.contact-detail > * { margin: 0; }
.contact-detail__icon { display: grid; width: 40px; min-width: 40px; height: 40px; place-items: center; border-radius: 50%; background: var(--color-cloud-100); color: var(--color-indigo-700); font-size: 22px; }
.contact-detail__value { font-size: 18px; font-weight: 700; line-height: 1.35; }
.contact-detail__address { font-style: normal; font-size: 17px; font-weight: 700; line-height: 1.5; }
.contact-detail__map { min-height: 44px; display: inline-flex; align-items: center; font-weight: 600; }
.contact-pathways__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); margin-top: var(--space-8); }
.contact-pathways__grid > * { min-width: 0; width: 100%; }
.contact-pathway { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3); overflow: hidden; }
.contact-pathway > * { margin: 0; }
.contact-pathway--offset { margin-top: var(--space-6); }
.contact-pathway a { min-height: 44px; display: inline-flex; align-items: center; font-weight: 600; }
.contact-pathway__motif { position: absolute; top: 18px; right: 20px; width: 28px; height: 28px; opacity: .8; }
.contact-pathway__motif--apricot { border-radius: 50%; background: var(--color-apricot-300); }
.contact-pathway__motif--card { display: grid; place-items: center; border: 2px solid var(--color-indigo-500); border-radius: 7px; color: var(--color-indigo-700); font-size: 18px; }
.contact-pathway__motif--sage { border: 3px solid var(--color-sage-300); border-radius: 60% 0 60% 0; transform: rotate(-28deg); }
.contact-pathway__motif--group { width: auto; color: var(--color-indigo-500); font-size: 16px; letter-spacing: 2px; }
.contact-pathway__badge { margin-right: 40px; }
.contact-lounge__field { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: center; gap: var(--space-8); padding: var(--space-10); border-radius: var(--radius-xl); background: #dce3fa; box-shadow: var(--shadow-inset-highlight), var(--shadow-inset-shade); }
.contact-lounge__field > * { min-width: 0; width: 100%; }
.contact-lounge__copy { max-width: 620px; }
.contact-lounge__points { display: flex; flex-direction: column; gap: var(--space-5); margin-top: var(--space-6); }
.contact-lounge__point { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: var(--space-3); }
.contact-lounge__point > * { min-width: 0; }
.contact-lounge__point > span { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 50%; background: var(--color-indigo-700); color: #fff; font-weight: 700; }
.contact-lounge__point h3 { margin-bottom: var(--space-2); }
.contact-lounge__figure { margin: 0; }
.contact-lounge__figure img { width: 100%; aspect-ratio: 3 / 2; object-position: right center; }
.contact-guidance { background: var(--color-cloud-100); }
.contact-guidance__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); margin-top: var(--space-8); }
.contact-guidance__grid > * { min-width: 0; width: 100%; }
.contact-guidance__card { position: relative; padding-top: var(--space-12); }
.contact-guidance__card h3 { margin-bottom: var(--space-3); }
.contact-guidance__card p:last-child { margin-bottom: 0; }
.contact-guidance__number { position: absolute; top: var(--space-5); left: var(--space-6); display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; background: var(--color-indigo-700); color: #fff; font-size: 14px; font-weight: 700; }
.contact-form-card { width: min(100%, 900px); margin-inline: auto; padding: var(--space-10); }
.contact-form-card__intro { max-width: 620px; }
.contact-form { margin-top: var(--space-8); }
.contact-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5) var(--space-6); }
.contact-form__grid > * { min-width: 0; width: 100%; }
.contact-form__field--message, .contact-form__submit { grid-column: 1 / -1; }
.contact-form__optional { color: rgba(32,35,72,.68); font-size: 12px; font-weight: 400; }
.contact-form__helper { max-width: 520px; margin-bottom: var(--space-2); color: rgba(32,35,72,.72); font-size: 14px; line-height: 1.43; }
.contact-form__error { min-height: 0; margin: var(--space-2) 0 0; color: #aa3d17; font-size: 14px; font-weight: 600; line-height: 1.4; }
.contact-form__field.is-invalid input, .contact-form__field.is-invalid select, .contact-form__field.is-invalid textarea { border-color: #aa3d17; }
.contact-form__submit { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3); }
.contact-form__submit > * { margin: 0; }
.contact-form__submit > p { max-width: 580px; font-size: 14px; line-height: 1.43; }
.contact-form__status { display: none; width: 100%; padding: var(--space-3) var(--space-4); border-radius: var(--radius-sm); background: var(--color-cloud-100); font-weight: 600; }
.contact-form__status.is-visible { display: block; }
.contact-faq { background: var(--color-cloud-100); }
.contact-faq__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-8); align-items: start; }
.contact-faq__grid > * { min-width: 0; width: 100%; }
.contact-faq__intro { max-width: 650px; }
.contact-faq__intro .badge { margin-bottom: var(--space-4); }
.contact-faq__list { display: flex; flex-direction: column; gap: var(--space-4); }
.contact-faq__item { overflow: hidden; border: var(--border-subtle); border-radius: var(--radius-md); background: #fff; }
.contact-faq__item h3 { margin: 0; }
.contact-faq__item button { display: flex; width: 100%; min-width: 0; min-height: 56px; align-items: center; justify-content: space-between; gap: var(--space-4); padding: var(--space-4) var(--space-5); background: #fff; color: var(--color-indigo-950); font-family: var(--font-heading); font-size: 18px; font-weight: 700; line-height: 1.3; text-align: left; }
.contact-faq__item button span { flex: 0 0 auto; font-family: var(--font-body); font-size: 24px; transition: transform var(--transition-control); }
.contact-faq__item button[aria-expanded="true"] span { transform: rotate(180deg); }
.contact-faq__answer { padding: 0 var(--space-5) var(--space-5); }
.contact-faq__answer p { max-width: 620px; margin: 0; }
.contact-closing { padding-top: var(--space-20); }
.contact-closing__panel { display: flex; max-width: 100%; flex-direction: column; align-items: center; gap: var(--space-4); padding: var(--space-16) var(--space-8); border-radius: var(--radius-xl); background: var(--color-indigo-700); color: #fff; text-align: center; box-shadow: var(--shadow-inset-highlight), inset 0 -3px 10px rgba(32,35,72,.12); }
.contact-closing__panel > * { margin: 0; }
.contact-closing__panel .eyebrow, .contact-closing__panel h2 { color: #fff; }
.contact-closing__panel > p:not(.eyebrow) { max-width: 620px; }
.contact-closing__links { display: flex; min-width: 0; flex-wrap: wrap; justify-content: center; gap: var(--space-3) var(--space-5); }
.contact-closing__links > * { min-width: 0; color: #fff; font-weight: 600; }
@media (max-width: 960px) { .contact-guidance__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .contact-guidance__card:last-child { grid-column: 1 / -1; } }
@media (max-width: 900px) { .contact-hero__grid, .contact-lounge__field, .contact-faq__grid { grid-template-columns: minmax(0, 1fr); } .contact-hero__grid { gap: var(--space-6); } .contact-hero__figure img, .contact-lounge__figure img { aspect-ratio: 4 / 3; object-position: center; } .contact-direct__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .contact-direct__grid > :last-child { grid-column: 1 / -1; } .contact-pathways__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); } .contact-pathway--offset { margin-top: 0; } .contact-faq__grid { gap: var(--space-6); } }
@media (max-width: 760px) { .contact-hero { padding-block: var(--space-8); } .contact-hero__panel, .contact-lounge__field, .contact-form-card { padding: var(--space-6); border-radius: var(--radius-card); } .contact-direct__grid, .contact-guidance__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); } .contact-direct__grid > :last-child, .contact-guidance__card:last-child { grid-column: auto; } .contact-guidance__card { padding-top: var(--space-12); } .contact-form__grid { grid-template-columns: minmax(0, 1fr); } .contact-form__field--message, .contact-form__submit { grid-column: auto; } .contact-faq__item { border-radius: var(--radius-md); } .contact-faq__item button { padding: var(--space-4) var(--space-5); } .contact-closing { padding-top: var(--space-8); } .contact-closing__panel { padding: var(--space-8) var(--space-6); border-radius: var(--radius-card); } }
@media (max-width: 420px) { .contact-hero__button, .contact-form__submit .button, .contact-closing__panel .button { width: 100%; } }
@media (prefers-reduced-motion: reduce) { .contact-faq__item button span { transition: none; } }
