/* Contact page and shared invitation. Reuses Acosta's editorial colors and type. */
.ac-contact-intro { padding-block:46px 35px; }
.ac-contact-intro h1 { font-size:clamp(56px,7vw,94px); margin:0 0 23px; max-width:14ch; }
.ac-contact-intro .ac-lead { max-width:55ch; }
.ac-contact-phone { display:grid; grid-template-columns:1fr 1fr; gap:48px; padding-block:36px; border-block:1px solid var(--line); }
.ac-contact-phone h2 { font-size:clamp(35px,4vw,51px); margin:0 0 17px; }
.ac-contact-phone p { max-width:45ch; }
.ac-contact-phone .ac-kicker { margin-bottom:16px; }
.ac-contact-phone .ac-contact-number { margin:15px 0 16px; font-size:clamp(32px,4.2vw,57px); letter-spacing:-.04em; line-height:1.2; font-weight:500; white-space:nowrap; }
.ac-contact-number a { color:var(--blue); text-decoration:none; display:inline-flex; min-height:54px; align-items:center; }
.ac-contact-number a:hover { text-decoration:underline; }
.ac-contact-phone-note { color:var(--muted); font-size:14px; line-height:1.6; margin:0; }
.ac-contact-options { display:grid; grid-template-columns:1fr 1fr; gap:56px; padding-block:35px 49px; }
.ac-contact-option { min-width:0; padding:27px 0; border-bottom:1px solid var(--line); }
.ac-contact-option .ac-kicker { margin-bottom:17px; }
.ac-contact-option h3 { font-size:32px; margin-bottom:17px; }
.ac-contact-option>p:not(.ac-kicker):not(.ac-text-link) { color:var(--muted); font-size:17px; max-width:44ch; margin-bottom:21px; }
.ac-contact-channel { gap:24px; }
.ac-contact-booking { padding-block:19px 85px; scroll-margin-top:35px; }
.ac-contact-booking>h2 { font-size:clamp(36px,4.5vw,56px); margin:0 0 21px; }
.ac-contact-booking-layout { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,.7fr); gap:clamp(35px,5vw,75px); align-items:start; margin-top:35px; }
.ac-contact-form-panel,.ac-contact-aside { min-width:0; }
.ac-contact-aside { border-top:1px solid var(--line); padding-top:24px; }
.ac-contact-aside h2 { font-size:32px; margin:0 0 21px; }
.ac-contact-aside>p:not(.ac-kicker) { font-size:16px; color:var(--muted); }
.ac-contact-form-panel legend,.ac-contact-form-panel .form-heading { font-weight:500; font-size:27px; }
.ac-booking-mode { margin-bottom:30px; }
.ac-mode-options { display:grid; grid-template-columns:1fr 1fr; gap:13px; }
.ac-mode-option { display:flex; align-items:flex-start; gap:12px; min-height:88px; padding:18px; border:1px solid var(--line); border-radius:5px; line-height:1.5; cursor:pointer; }
.ac-mode-option:has(input:checked) { background:var(--sky); border-color:var(--blue); box-shadow:inset 0 0 0 1px var(--blue); }
.ac-mode-option input { width:18px; height:18px; margin:4px 0 0; accent-color:var(--blue); flex:0 0 18px; }
.ac-mode-option strong { display:block; font-size:16px; font-weight:600; }
.ac-mode-option small { display:block; font-size:13px; color:var(--muted); margin-top:4px; }
.ac-video-note { font-size:16px; color:var(--muted); padding:20px; background:var(--sky); border-radius:5px; margin-bottom:27px; }
.ac-contact-form-panel .center-option,.ac-contact-form-panel .field input,.ac-contact-form-panel .field select,.ac-contact-form-panel .field textarea { border-radius:5px; }
.ac-contact-form-panel .booking-progress { gap:22px; flex-wrap:wrap; }
.ac-contact-form-panel .booking-progress span[data-progress-location] { display:inline; width:auto; height:auto; border:0; border-radius:0; background:transparent; color:inherit; font-size:inherit; }
.ac-field-optional { font-weight:400; color:var(--muted); }
.ac-contact-form-panel .form-summary div { grid-template-columns:110px minmax(0,1fr); }
.ac-contact-form-panel .form-summary dd { white-space:pre-wrap; }
.ac-booking-summary-note { margin-top:23px; }
.ac-contact-form-panel .success-panel { border-radius:5px; }
.ac-talk-global { margin-top:0; }
.ac-talk-global .ac-cta-inner>div { min-width:0; }
.ac-talk-global .wp-block-buttons { flex:0 0 auto; }
@media(max-width:900px) {
  .ac-contact-booking-layout { grid-template-columns:1fr; gap:39px; }
  .ac-contact-aside { max-width:650px; }
}
@media(max-width:680px) {
  .ac-contact-intro { padding-block:32px 20px; }
  .ac-contact-intro h1 { font-size:clamp(49px,12vw,66px); }
  .ac-contact-phone { grid-template-columns:1fr; gap:10px; padding-block:29px; }
  .ac-contact-phone h2 { font-size:37px; }
  .ac-contact-phone .ac-contact-number { font-size:clamp(32px,8.5vw,46px); margin-top:0; }
  .ac-contact-options { grid-template-columns:1fr; gap:0; padding-block:8px 30px; }
  .ac-contact-option { padding-block:26px; }
  .ac-contact-option h3 { font-size:29px; }
  .ac-contact-option>p:not(.ac-kicker):not(.ac-text-link) { font-size:16px; }
  .ac-contact-booking { padding-block:15px 55px; }
  .ac-contact-booking-layout { margin-top:27px; }
  .ac-mode-options { grid-template-columns:1fr; gap:10px; }
  .ac-mode-option { min-height:80px; padding:16px; }
  .ac-contact-form-panel .booking-progress { gap:13px 18px; font-size:12px; }
  .ac-contact-form-panel .booking-progress li { min-height:27px; }
  .ac-contact-form-panel .form-summary div { grid-template-columns:85px minmax(0,1fr); gap:15px; }
  .ac-contact-form-panel legend,.ac-contact-form-panel .form-heading { font-size:25px; }
  .ac-contact-aside h2 { font-size:29px; }
}
