/* Vista Contact Page - Acuity booking integration */
.booking-section{
  padding:88px 0 96px;
  background:#fff;
}
.booking-head{
  max-width:780px;
  margin:0 auto 34px;
  text-align:center;
}
.booking-head h2{
  margin:10px 0 14px;
}
.booking-head p{
  max-width:680px;
  margin:0 auto;
  color:var(--muted);
}
.booking-frame-wrap{
  width:100%;
  max-width:1040px;
  margin:0 auto;
  background:#fff;
  border:1px solid #dfe6ee;
  border-radius:22px;
  overflow:hidden;
  box-shadow:0 18px 55px rgba(25,39,74,.10);
}
.booking-frame{
  display:block;
  width:100%;
  height:900px;
  border:0;
  background:#fff;
}
.booking-fallback{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:18px 22px;
  border-top:1px solid #e5eaf0;
  background:#f7f9fb;
}
.booking-fallback p{
  margin:0;
  color:var(--muted);
  font-size:13px;
}
.booking-fallback .btn{
  flex:none;
}
@media(max-width:900px){
  .booking-section{padding:72px 0 80px}
  .booking-frame{height:940px}
}
@media(max-width:720px){
  .booking-section{padding:60px 0 68px}
  .booking-head{margin-bottom:24px}
  .booking-frame-wrap{border-radius:16px}
  .booking-frame{height:980px}
  .booking-fallback{align-items:stretch;flex-direction:column;padding:16px}
  .booking-fallback .btn{width:100%;text-align:center}
}
@media(max-width:480px){
  .booking-frame{height:1040px}
}


/* Contact page alignment + margin rebuild — 2026-09-05 */
.contact-page-body .inner-hero.centered{
  padding:66px 0 42px;
}
.contact-page-body .inner-hero.centered .shell{
  width:min(calc(100% - 48px),1120px);
  max-width:1120px;
}
.contact-page-body .inner-hero.centered h1{
  max-width:900px;
  margin:14px auto 18px;
}
.contact-page-body .inner-hero.centered p{
  max-width:760px;
  margin-left:auto;
  margin-right:auto;
}
.contact-page-body .scenic-strip.visual-frame{
  width:min(calc(100% - 48px),1120px)!important;
  margin:0 auto 58px!important;
  padding:14px!important;
  background:#fff!important;
  border:1px solid #dfe6ee!important;
  border-radius:24px!important;
  box-shadow:0 16px 42px rgba(25,39,74,.08)!important;
}
.contact-page-body .scenic-strip.visual-frame .visual-composite{
  width:100%!important;
  height:auto!important;
  display:block!important;
  border-radius:16px!important;
}
.contact-page-body .booking-section{
  padding:74px 0 84px;
}
.contact-page-body .booking-section>.shell{
  width:min(calc(100% - 48px),1120px);
  max-width:1120px;
}
.contact-page-body .booking-head{
  max-width:780px;
  margin:0 auto 34px;
}
.contact-page-body .booking-agenda{
  max-width:1120px;
  gap:16px;
  margin-bottom:28px;
}
.contact-page-body .booking-agenda article{
  padding:20px;
  min-height:150px;
}
.contact-page-body .booking-frame-wrap{
  max-width:1120px;
}
.contact-page-body .soft{
  padding:88px 0 96px;
}
.contact-page-body .soft>.shell:first-child{
  width:min(calc(100% - 48px),1120px);
  max-width:1120px;
}
.contact-page-body .soft .center-head{
  max-width:760px;
  margin-bottom:38px;
}
.contact-page-body .contact-shell{
  width:min(calc(100% - 48px),1120px)!important;
  max-width:1120px!important;
  margin:0 auto!important;
  display:grid!important;
  grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr)!important;
  gap:24px!important;
  align-items:stretch!important;
  border:0!important;
  border-radius:0!important;
  overflow:visible!important;
  background:transparent!important;
  box-shadow:none!important;
}
.contact-page-body .contact-shell aside{
  background:#fff!important;
  border:1px solid #dfe6ee!important;
  border-radius:22px!important;
  padding:36px!important;
  box-shadow:0 14px 38px rgba(25,39,74,.06)!important;
  overflow:hidden!important;
}
.contact-page-body .contact-shell aside h2{
  font-size:clamp(30px,3.5vw,42px);
  margin:10px 0 24px;
}
.contact-page-body .contact-stat{
  grid-template-columns:38px 1fr!important;
  gap:4px 14px!important;
  padding:16px 0!important;
  margin:0!important;
  background:transparent!important;
  border:0!important;
  border-bottom:1px solid #e3e8ef!important;
  border-radius:0!important;
}
.contact-page-body .contact-stat:last-of-type{border-bottom:0!important;}
.contact-page-body .contact-stat>span{font-size:11px!important;}
.contact-page-body .contact-stat b{font-size:14px!important;}
.contact-page-body .contact-stat small{font-size:11px!important;line-height:1.5!important;}
.contact-page-body .address-card{
  margin-top:24px!important;
  padding:18px 20px!important;
  border:1px solid #e1e7ef!important;
  border-radius:16px!important;
  background:#f7f9fc!important;
}
.contact-page-body .contact-form{
  padding:36px!important;
  display:grid!important;
  gap:16px!important;
  background:#fff!important;
  border:1px solid #dfe6ee!important;
  border-radius:22px!important;
  box-shadow:0 14px 38px rgba(25,39,74,.06)!important;
}
.contact-page-body .contact-form .field-grid{gap:16px!important;}
.contact-page-body .contact-form input,
.contact-page-body .contact-form select,
.contact-page-body .contact-form textarea{
  padding:13px 14px!important;
  border-radius:10px!important;
}
@media(max-width:900px){
  .contact-page-body .inner-hero.centered .shell,
  .contact-page-body .booking-section>.shell,
  .contact-page-body .soft>.shell:first-child,
  .contact-page-body .contact-shell,
  .contact-page-body .scenic-strip.visual-frame{width:min(calc(100% - 36px),760px)!important;}
  .contact-page-body .booking-agenda{grid-template-columns:repeat(2,minmax(0,1fr));}
  .contact-page-body .contact-shell{grid-template-columns:1fr!important;gap:18px!important;}
}
@media(max-width:600px){
  .contact-page-body .inner-hero.centered{padding:48px 0 30px;}
  .contact-page-body .scenic-strip.visual-frame{margin-bottom:42px!important;padding:10px!important;border-radius:18px!important;}
  .contact-page-body .booking-section{padding:58px 0 66px;}
  .contact-page-body .booking-agenda{grid-template-columns:1fr;gap:12px;}
  .contact-page-body .booking-agenda article{min-height:0;}
  .contact-page-body .soft{padding:66px 0 72px;}
  .contact-page-body .contact-shell aside,
  .contact-page-body .contact-form{padding:24px!important;border-radius:18px!important;}
  .contact-page-body .contact-form .field-grid{grid-template-columns:1fr!important;}
}
