body.tour-gate-open {
  overflow: hidden;
}
.tour-gate {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: grid;
  place-items: center;
  padding: 24px;
}
.tour-gate-backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  background: #06131dd9;
  cursor: default;
}
.tour-gate-dialog {
  position: relative;
  z-index: 1;
  width: min(100%, 540px);
  max-height: min(760px, calc(100dvh - 48px));
  overflow-y: auto;
  overscroll-behavior: contain;
  background: var(--cream);
  padding: 46px 48px 38px;
  box-shadow: 0 28px 80px #0008;
}
.tour-gate-dialog h2 {
  margin: 0 0 14px;
  color: #203e37;
  font:
    34px/1.45 var(--serif),
    serif;
  letter-spacing: 0.05em;
}
.tour-gate-intro {
  margin: 0 0 26px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.9;
}
.tour-gate-close {
  position: absolute;
  top: 14px;
  right: 16px;
  width: 42px;
  height: 42px;
  border: 0;
  background: transparent;
  color: #203e37;
  font: 30px/1 var(--sans);
}
.tour-auth-form {
  display: grid;
  gap: 8px;
}
.tour-auth-form > label:not(.tour-auth-consent) {
  margin-top: 7px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
}
.tour-auth-form > input {
  width: 100%;
  min-height: 50px;
  border: 1px solid #bdc4c2;
  border-radius: 0;
  background: #fff;
  padding: 11px 13px;
  color: #203e37;
}
.tour-auth-form > input:focus {
  border-color: #9b7734;
}
.tour-auth-form > .button {
  width: 100%;
  margin-top: 12px;
}
.tour-auth-return {
  display: block;
  width: max-content;
  max-width: 100%;
  margin: 11px auto 0;
  border: 0;
  border-bottom: 1px solid #9a927f;
  background: transparent;
  padding: 5px 0;
  color: #45535a;
  font-size: 12px;
}
.tour-auth-return[hidden] {
  display: none;
}
.tour-auth-consent {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 11px;
  font-size: 11px;
  line-height: 1.75;
  color: #59656b;
}
.tour-auth-consent input {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin: 3px 0 0;
  accent-color: #203e37;
}
.tour-auth-consent a {
  border-bottom: 1px solid #9b7734;
  color: #203e37;
}
.tour-otp-sent {
  margin: 0 0 5px;
  padding: 12px 14px;
  background: #ebe7db;
  color: #526069;
  font-size: 12px;
}
.tour-otp-input {
  font:
    26px/1.2 Georgia,
    serif;
  letter-spacing: 0.35em;
  text-align: center;
}
.tour-otp-actions {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  margin-top: 7px;
}
.tour-otp-actions button {
  border: 0;
  border-bottom: 1px solid #9a927f;
  background: transparent;
  padding: 5px 0;
  color: #5d676c;
  font-size: 11px;
}
.tour-otp-actions button:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}
.tour-auth-success {
  border-top: 1px solid var(--line);
  padding-top: 24px;
  text-align: center;
}
.tour-auth-success > strong {
  display: block;
  color: #285b38;
  font-family: var(--serif);
  font-size: 23px;
}
.tour-auth-success > p {
  margin: 8px 0 20px;
  color: var(--muted);
  font-size: 12px;
}
.tour-auth-success .button {
  width: 100%;
}
.tour-auth-message {
  min-height: 1.8em;
  margin: 16px 0 0;
  color: #285b38;
  font-size: 12px;
  text-align: center;
}
.tour-auth-message.error {
  color: #a33425;
}
.tour-auth-meta {
  margin: 8px 0 0;
  color: #80868a;
  font-size: 10px;
  letter-spacing: 0.04em;
  text-align: center;
}

@media (max-width: 600px) {
  .tour-gate {
    align-items: end;
    padding: 0;
  }
  .tour-gate-dialog {
    width: 100%;
    max-height: 92dvh;
    padding: 38px 22px calc(24px + env(safe-area-inset-bottom));
  }
  .tour-gate-dialog h2 {
    font-size: 28px;
  }
  .tour-gate-intro {
    margin-bottom: 18px;
  }
  .tour-auth-form > input {
    font-size: 16px;
  }
}

.tour-gate[hidden],.tour-auth-form[hidden],.tour-auth-success[hidden]{display:none!important}
.tour-gate{z-index:2000}.tour-gate-dialog{color:#203e37;background:#f8f6ed}
.tour-gate button{cursor:pointer}.tour-gate .button{justify-content:center}
.tour-auth-message.error,[data-state="error"]{color:#a12626}
#appointment-form textarea{display:block;width:100%;box-sizing:border-box;background:transparent;border:0;border-bottom:1px solid #a6b1a8;padding:12px 0;font:inherit;color:inherit;resize:vertical}
#appointment-form .form-row>*{min-width:0}#appointment-form .consent a{text-decoration:underline}
#form-status{font-size:14px;line-height:1.8;margin-top:16px}
.button:disabled{opacity:.65;cursor:wait}.privacy-page{max-width:850px;margin:auto;padding:120px 24px 70px;line-height:1.9}.privacy-page h2{font-size:24px;margin:28px 0 12px}.privacy-page h1{font-size:36px}.privacy-page a{text-decoration:underline}

.appointment-success[hidden]{display:none!important}
.appointment-success{border:1px solid #9caa96;background:#eff4eb;padding:28px;margin:0 0 24px;color:#203e37;outline-offset:5px}
.appointment-success h3{font-size:26px;line-height:1.5;margin:12px 0}
.appointment-success p{font-size:14px;line-height:1.9;margin:12px 0}
.appointment-success a{display:inline-block;font-size:24px;margin-top:8px;text-decoration:underline}
.success-mark{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#203e37;color:white;font-size:24px}
#appointment-form.is-complete>:not(#appointment-success):not(#appointment-submit):not(#form-status){display:none}
#appointment-form.is-complete #appointment-submit{opacity:1;cursor:default;background:#5b7068}
@media(max-width:600px){.appointment-success{padding:20px}.appointment-success h3{font-size:23px}}
