/* Visit booking modal — isolated final layer */
#visit.visit-dialog{
  width:min(760px,calc(100vw - 48px));
  max-height:min(92dvh,900px);
  padding:54px 62px 46px;
  background:#f1f1f1;
  color:#1a1a1a;
  border:0;
  box-shadow:0 30px 100px rgba(0,0,0,.34);
  overflow:auto;
}
#visit.visit-dialog::backdrop{background:rgba(12,12,12,.78);backdrop-filter:blur(4px)}
#visit .dialog-close{top:28px;right:32px}
#visit .eyebrow{display:block;margin-bottom:26px}
#visit h2{font-size:clamp(46px,5vw,68px);line-height:.96;letter-spacing:-.06em;margin:0 0 34px;max-width:620px}

#visit .booking-card{
  display:grid;
  grid-template-columns:54px minmax(0,1fr) auto;
  align-items:center;
  gap:22px;
  width:100%;
  padding:24px 26px;
  margin:0;
  background:#1f1f1f;
  color:#fff;
  border:1px solid #1f1f1f;
  text-decoration:none;
  box-sizing:border-box;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease;
}
#visit .booking-card:hover{transform:translateY(-2px);background:#282828;box-shadow:0 16px 36px rgba(0,0,0,.16)}
#visit .booking-calendar-icon{
  position:relative;
  width:54px;height:54px;
  display:grid;place-items:end center;
  padding-bottom:8px;
  box-sizing:border-box;
  background:#fff;color:#262626;border-radius:5px;overflow:hidden;
}
#visit .booking-calendar-top{position:absolute;inset:0 0 auto;height:14px;background:linear-gradient(90deg,#4285f4 0 25%,#34a853 25% 50%,#fbbc04 50% 75%,#ea4335 75%)}
#visit .booking-calendar-icon strong{font-size:18px;line-height:1;font-weight:750}
#visit .booking-card-copy{display:flex;flex-direction:column;gap:5px;min-width:0}
#visit .booking-card-copy small{font-size:9px;letter-spacing:.14em;color:#b5b5b5}
#visit .booking-card-copy strong{font-size:19px;font-weight:650;letter-spacing:-.025em;line-height:1.15}
#visit .booking-card-copy>span{font-size:12px;line-height:1.48;color:#cecece;max-width:390px}
#visit .booking-card-action{display:flex;align-items:center;gap:8px;white-space:nowrap;font-size:11px;font-weight:650;color:#fff}
#visit .booking-card-action b{font-size:17px;font-weight:400}

#visit .booking-divider{display:flex;align-items:center;gap:16px;margin:30px 0 25px;color:#808080;font-size:10px;letter-spacing:.11em;text-transform:uppercase}
#visit .booking-divider:before,#visit .booking-divider:after{content:"";height:1px;background:#c9c9c9;flex:1}

#visit form{display:block;margin:0;padding:0}
#visit label{display:block;margin:0 0 18px;font-size:12px;font-weight:600}
#visit input,#visit textarea{display:block;width:100%;box-sizing:border-box;margin-top:8px;padding:13px 14px;background:#f8f8f8;color:#1a1a1a;border:1px solid #bbbbbb;border-radius:0}
#visit input{min-height:50px}
#visit textarea{min-height:110px;resize:vertical}
#visit .form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
#visit .solid-button{margin-top:2px;padding:15px 22px}
#visit .form-help{margin:10px 0 0;font-size:10.5px;line-height:1.5;color:#797979}
#visit .visit-phone{display:inline-block;margin-top:22px;padding-bottom:5px;font-size:12px;color:#353535;border-bottom:1px solid #aeaeae}

@media(max-width:700px){
  #visit.visit-dialog{width:calc(100vw - 24px);padding:40px 24px 32px}
  #visit h2{font-size:44px;margin-bottom:28px}
  #visit .booking-card{grid-template-columns:48px minmax(0,1fr);gap:16px;padding:20px}
  #visit .booking-calendar-icon{width:48px;height:48px}
  #visit .booking-card-action{grid-column:1/-1;padding-left:64px}
  #visit .form-row{grid-template-columns:1fr;gap:0}
}

#visit .contact-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
#visit input,#visit textarea{font-size:16px}
#visit .dialog-close{min-width:44px;min-height:44px}
#visit .form-help{font-size:13px;color:#5f5f5f}
#visit .visit-status{padding:16px;border:1px solid #6b6b6b;background:#ececec;color:#2d2d2d;font-size:15px;line-height:1.6;margin:18px 0 0}
#visit .visit-status.is-error{border-color:#a83949;background:#ededed;color:#812035}
#visit .visit-status[hidden],#visit #visit-fallback[hidden]{display:none}
#visit #visit-fallback a{text-decoration:underline;overflow-wrap:anywhere}
#visit button:disabled{cursor:default;opacity:.65}
#visit .booking-divider{color:#5f5f5f}
@media(max-width:700px){
  #visit.visit-dialog{max-height:calc(100dvh - 24px);padding-top:56px}
  #visit .dialog-close{top:8px;right:8px}
  #visit .eyebrow{max-width:calc(100% - 30px);font-size:10px;line-height:1.6}
  #visit .booking-card{padding:18px 16px;gap:14px}
  #visit .booking-card-action{padding-left:62px;white-space:normal;font-size:13px;min-height:36px}
  #visit .booking-card-copy>span{font-size:13px}
  #visit .solid-button{width:100%;min-height:48px}
}


/* Cloudflare Turnstile — unobtrusive verification in visit modal */
#visit .visit-turnstile{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin:2px 0 17px;min-height:69px}
#visit .visit-turnstile-widget{display:block;max-width:100%;min-height:56px}
#visit .visit-turnstile-widget iframe{max-width:100%}
#visit .visit-turnstile .form-help{font-size:11px;margin:0;color:#646464;line-height:1.5}
#visit .visit-verification-warning{padding:12px 14px;margin:0 0 16px;border:1px solid #be8e98;background:#f7f1f2;color:#842738;font-size:13px;line-height:1.5}
@media(max-width:390px){
  #visit .visit-turnstile{width:100%;overflow:visible}
  #visit .visit-turnstile-widget{max-width:100%}
}

/* Centralized visit form, loaded from one protected permanent domain. */
#visit .central-visit-frame{
  display:block;
  width:100%;
  height:525px;
  min-height:250px;
  max-width:100%;
  border:0;
  margin:0;
  padding:0;
  background:transparent;
  overflow:hidden;
}
#visit .central-visit-help{
  margin:8px 0 0;
  line-height:1.5;
  color:#6b6b6b;
  font-size:11px;
}
@media(max-width:700px){
  #visit .central-visit-frame{height:630px;max-width:100%}
}
