/* Contact: open layouts, restrained accents and the existing booking flow. */
.contact-page main * { letter-spacing:0; }
.contact-page .aurora-layer { display:none; }
.contact-page .site-burger { background:rgba(14,20,38,.72); }
.contact-page .eyebrow { gap:12px;font-size:10px;line-height:1.5; }
.contact-page .eyebrow .bar { flex:0 0 28px; }
.contact-page .eyebrow .spark { flex:0 0 12px;width:12px;height:12px; }
.contact-page main a:focus-visible,
.contact-page main button:focus-visible { outline:3px solid #a52caf;outline-offset:4px; }
.contact-page .hero { display:flex;align-items:center;min-height:clamp(480px,36vw,620px);padding:126px 0 64px;background:#101628; }
/* Cap the photo width so wide monitors do not turn the portrait into a strip of faces. */
.contact-hero-photo { position:absolute;inset:0 0 0 auto;width:min(100%,1920px);-webkit-mask-image:linear-gradient(90deg,transparent,#000 24%);mask-image:linear-gradient(90deg,transparent,#000 24%); }
.contact-hero-photo img { width:100%;height:100%;object-fit:cover;object-position:center 20%; }
.contact-page .hero .bg-veil { background:linear-gradient(90deg,rgba(9,14,27,.93),rgba(9,14,27,.84) 40%,rgba(9,14,27,.12) 66%,rgba(9,14,27,.06)); }
.contact-hero-copy { width:46%;max-width:540px; }
.contact-page .hero .eyebrow { color:#d3d6df;margin-bottom:20px; }
.contact-page .hero .eyebrow .bar { background:currentColor; }
.contact-page .hero h1 { max-width:none;margin:0 0 20px;font-size:52px;line-height:1.08; }
.contact-page .hero p.lead { max-width:44ch;font-size:16px;line-height:1.65;color:#e0e3eb; }

.contact-page .contact-block { padding:56px 0 64px;background:#faf9f6;border-radius:0; }
.contact-page .contact-block::before { display:none; }
.contact-page #message { scroll-margin-top:100px; }
.contact-page .contact-grid { grid-template-columns:minmax(0,1.35fr) minmax(320px,.85fr);gap:56px;align-items:start; }
.contact-page .form-card { min-width:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;overflow:visible; }
.contact-page .form-card h2 { max-width:none;font-size:32px;line-height:1.15;margin-bottom:12px; }
.contact-page .form-card .intro { font-size:15px;line-height:1.65;margin:0; }
.contact-response { display:flex;align-items:center;gap:8px;margin:16px 0 28px;color:#176b59;font-size:12px;line-height:1.5; }
.contact-response svg { flex-shrink:0; }
.contact-page .form-grid { gap:20px; }
.contact-page .field { min-width:0; }
.contact-page .field-label { font-family:inherit;font-size:13px;text-transform:none;color:#384055; }
.contact-page .field-label .opt { font-size:11px;color:#676e7b; }
.contact-page .field input[type="text"],
.contact-page .field input[type="email"],
.contact-page .field textarea { background:#fff;border:1px solid #bcc0c9;border-radius:8px;padding:12px 14px;font-size:16px;min-height:48px; }
.contact-page .field input:focus,
.contact-page .field textarea:focus { border-color:#a52caf;box-shadow:0 0 0 3px rgba(165,44,175,.1); }
.contact-page .field textarea { min-height:136px; }
.contact-page .chips { width:100%;margin:0;padding:0;flex-wrap:wrap;gap:8px;overflow:visible; }
.contact-page .chip { min-height:40px;padding:8px 12px;border:1px solid #c2c5ce;border-radius:8px;font-size:12px;background:#fff; }
.contact-page .chip.active { color:#fff;background:#151d34;border-color:#151d34; }
.contact-page .check { padding:0;border:0;background:transparent;border-radius:0;font-size:12px;line-height:1.6; }
.contact-page .check input { width:20px;height:20px; }
.contact-page .submit-btn { align-self:flex-start;width:auto;min-width:220px;min-height:50px;border-radius:8px;padding:13px 22px;font-size:14px;box-shadow:none; }
.contact-page .form-foot { margin:0;font-family:inherit;font-size:11px;line-height:1.6; }
.contact-page .form-foot svg { flex-shrink:0; }
.contact-page .form-foot a { color:#626875;text-underline-offset:3px; }
.contact-page .form-msg { border-radius:8px; }

.contact-page .info-col { min-width:0;width:auto;margin:0;padding:0 0 0 36px;display:flex;flex-direction:column;gap:26px;justify-content:flex-start;overflow:visible;border-left:1px solid #dcdde2; }
.contact-booking { position:relative;padding:24px;background:#151d34;color:#fff;border:1px solid #343b50;border-radius:8px;overflow:hidden; }
.contact-booking::before { content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--grad); }
.contact-booking .eyebrow { color:#cbd0dc; }
.contact-booking .eyebrow .bar { background:currentColor; }
.contact-booking h3 { margin:18px 0 12px;font-size:24px;line-height:1.2; }
.contact-booking > p { color:#cbd0dc;margin:0;font-size:14px;line-height:1.7; }
.contact-booking-btn { display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:50px;margin-top:22px;padding:13px 12px;border-radius:8px;background:var(--grad);color:#fff;font-size:13px;font-weight:700;line-height:1.5;text-decoration:none;text-align:center; }
.contact-booking-btn svg { flex-shrink:0; }
.contact-booking-btn:hover { filter:brightness(1.08); }
.contact-booking > .contact-booking-trust { margin-top:12px;font-size:10px;line-height:1.5;text-align:center; }
.contact-page .contact-booking a:focus-visible { outline-color:#fff; }
.contact-page .info-card { padding:0 0 24px;min-height:0;height:auto;border:0;border-bottom:1px solid #dcdde2;border-radius:0;box-shadow:none;background:none;text-decoration:none; }
.contact-page .info-card:last-child { padding-bottom:0;border:0; }
.contact-page .info-head { gap:10px;margin:0 0 10px; }
.contact-page .info-ico { width:32px;height:32px;border:0;border-radius:8px;background:#e8edf5;box-shadow:none;color:#2563a6; }
.contact-page .tint-cream .info-ico { background:#e4f0eb;color:#176b59; }
.contact-page .tint-rose .info-ico { background:#f7e8ed;color:#b62c4a; }
.contact-page .info-eyebrow { font-size:10px;color:#626875; }
.contact-page .info-card h3 { margin:0 0 8px;font-size:19px;line-height:1.3;overflow-wrap:anywhere; }
.contact-page .info-card p { margin:0;font-size:13px;line-height:1.6; }
.contact-page .info-link { margin-top:10px;font-size:12px; }
.contact-page .coach-row { gap:16px;margin-top:14px; }
.contact-page .ci { flex:1;min-width:0;gap:10px;padding:0;border:0;border-radius:0;background:none;box-shadow:none; }
.contact-page .ci img { width:38px;height:38px;border-radius:50%;object-fit:cover; }
.contact-page .ci .nm { font-size:12px;white-space:normal; }
.contact-page .ci:hover { transform:none;box-shadow:none;background:none; }
.contact-page .socials-grid { grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:12px; }
.contact-page .soc { display:flex;flex-direction:column;justify-content:center;gap:8px;min-height:62px;padding:8px 2px;border:0;border-radius:8px;background:transparent; }
.contact-page .soc:hover { background:#fff; }
.contact-page .soc span { display:block;font-size:10px; }
.contact-page .soc svg { width:19px;height:19px; }

.contact-page .faq-2 { padding:64px 0;background:#101628; }
.contact-page .faq-2-grid { grid-template-columns:1fr 1.55fr;gap:64px; }
.contact-page .faq-2-head { position:static;text-align:left; }
.contact-page .faq-2 h2 { margin:16px 0;font-size:36px;line-height:1.15; }
.contact-page .faq-2-head p { max-width:38ch;font-size:14px;color:#c2c7d5;line-height:1.7; }
.contact-page .faq-2-full-link { margin:0;min-height:44px;padding:10px 16px;border:1px solid #697085;border-radius:8px;background:transparent;box-shadow:none; }
.contact-page .faq-2-list details { display:block; }
.contact-page .faq-2-list summary { font-size:15px;line-height:1.5;padding:20px 0; }
.contact-page .faq-2-list details p { font-size:14px;line-height:1.75; }

@media(max-width:1100px) {
  .contact-page .hero h1 { font-size:44px; }
  .contact-page .contact-grid { grid-template-columns:minmax(0,1.2fr) minmax(300px,1fr);gap:32px; }
  .contact-page .info-col { padding-left:26px; }
  .contact-booking { padding:20px; }
}
@media(max-width:820px) {
  .contact-hero-copy { width:48%; }
  .contact-page .hero { padding-top:112px; }
  .contact-page .hero h1 { font-size:38px; }
  .contact-page .hero p.lead { font-size:15px; }
  .contact-page .contact-grid { grid-template-columns:1fr;gap:40px; }
  .contact-page .form-card { max-width:650px; }
  .contact-page .info-col { border-left:0;border-top:1px solid #dcdde2;padding:32px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:28px; }
  .contact-booking { grid-row:span 2;align-self:start; }
  .contact-page .info-card:last-child { grid-column:1 / -1; }
  .contact-page .socials-grid { max-width:360px; }
  .contact-page .faq-2-grid { grid-template-columns:1fr;gap:28px; }
  .contact-page .faq-2-head p { max-width:50ch;margin-left:0; }
}
@media(max-width:640px) {
  .contact-page .hero { display:block;min-height:0;padding:310px 0 28px; }
  .contact-hero-photo { bottom:auto;height:420px;width:100%;-webkit-mask-image:none;mask-image:none; }
  .contact-hero-photo img { object-position:center 36%; }
  .contact-page .hero .bg-veil { background:linear-gradient(180deg,rgba(9,14,27,.2) 0,rgba(9,14,27,.02) 200px,rgba(16,22,40,.58) 300px,#101628 420px); }
  .contact-hero-copy { width:100%;max-width:none; }
  .contact-page .hero .eyebrow { margin-bottom:14px; }
  .contact-page .hero h1 { margin-bottom:14px;font-size:36px;line-height:1.1; }
  .contact-page .hero p.lead { max-width:42ch;font-size:14px;line-height:1.6; }
  .contact-page .contact-block { padding:32px 0 40px; }
  .contact-page .form-card h2 { font-size:27px; }
  .contact-page .form-card .intro { font-size:14px; }
  .contact-response { margin:12px 0 24px;font-size:11px; }
  .contact-page .form-grid { gap:18px; }
  .contact-page .field-label { font-size:12px; }
  .contact-page .chip { min-height:42px; }
  .contact-page .submit-btn { width:100%; }
  .contact-page .info-col { display:flex;gap:24px; }
  .contact-booking { padding:22px; }
  .contact-booking-btn { font-size:13px; }
  .contact-page .info-card { padding-bottom:24px; }
  .contact-page .info-card:last-child { padding-bottom:0; }
  .contact-page .ci { flex:0 1 150px; }
  .contact-page .faq-2 { padding:40px 0; }
  .contact-page .faq-2 h2 { font-size:30px; }
  .contact-page .faq-2-list summary { font-size:14px; }
}
@media(max-width:360px) {
  .contact-page .hero h1 { font-size:32px; }
  .contact-booking { padding:20px 16px; }
  .contact-booking-btn { padding-inline:8px;font-size:12px; }
}
@media(min-width:480px) and (max-height:560px) {
  .contact-page .hero { display:flex;min-height:0;padding:100px 0 28px; }
  .contact-hero-photo { top:64px;bottom:0;height:auto;width:min(66%,680px);-webkit-mask-image:linear-gradient(90deg,transparent,#000 24%);mask-image:linear-gradient(90deg,transparent,#000 24%); }
  .contact-hero-copy { width:46%;max-width:540px; }
  .contact-page .hero .bg-veil { background:linear-gradient(90deg,rgba(9,14,27,.93),rgba(9,14,27,.84) 40%,rgba(9,14,27,.12) 66%,rgba(9,14,27,.06)); }
  .contact-page .hero .eyebrow { margin-bottom:12px; }
  .contact-page .hero h1 { font-size:32px;margin-bottom:12px; }
  .contact-page .hero p.lead { font-size:14px;line-height:1.55; }
}
@media(min-width:480px) and (max-width:640px) and (max-height:560px) {
  .contact-page .hero h1 { font-size:26px; }
  .contact-page .hero p.lead { font-size:13px; }
}
@media(prefers-reduced-motion:reduce) {
  .contact-page .reveal { transition:none;transform:none; }
}
