/* First-visit enquiry dialog. Uses the satellite's editorial palette. */
.gt-visit-dialog {
  width: min(540px, calc(100% - 32px));
  max-width: 540px;
  max-height: calc(100vh - 32px);
  max-height: calc(100dvh - 32px);
  margin: auto;
  padding: 28px;
  border: 1px solid var(--ed-line, #d8d1c7);
  border-radius: 12px;
  overflow-y: auto;
  overscroll-behavior: contain;
  background: var(--ed-paper, #faf8f4);
  color: var(--ed-ink, #232823);
  box-shadow: 0 24px 90px rgba(24, 28, 24, .24);
  font: 14px/1.6 Arial, Helvetica, sans-serif;
  text-align: left;
}
.gt-visit-dialog::backdrop { background: rgba(24, 28, 24, .76); }
.gt-visit-dialog *, .gt-visit-dialog *::before, .gt-visit-dialog *::after { box-sizing: border-box; min-width: 0; }
.gt-visit-dialog [hidden] { display: none !important; }
.gt-visit-dialog :focus-visible { outline: 3px solid var(--ed-clay, #9f3d26); outline-offset: 3px; }
.gt-visit-header { margin-bottom: 19px; }
.gt-visit-title {
  margin: 0 45px 10px 0;
  color: var(--ed-ink, #232823);
  font: 400 34px/1.12 Georgia, "Times New Roman", serif;
  letter-spacing: -.035em;
  text-wrap: balance;
}
.gt-visit-intro { margin: 0; max-width: 410px; color: var(--ed-muted, #62645d); font-size: 14px; line-height: 1.65; }
.gt-visit-close {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  border: 1px solid var(--ed-line, #d8d1c7);
  border-radius: 7px;
  background: var(--ed-paper, #faf8f4);
  color: var(--ed-ink, #232823);
  font: 400 27px/1 Arial, Helvetica, sans-serif;
  cursor: pointer;
}
.gt-visit-close:hover { background: var(--ed-sand, #eee4d7); border-color: #aaa297; }
.gt-visit-offer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 6px 18px;
  margin: 0 0 21px;
  padding: 15px 17px;
  border: 1px solid #d7c8b7;
  border-radius: 8px;
  background: var(--ed-sand, #eee4d7);
  font-size: 14px;
  line-height: 1.5;
}
.gt-visit-offer > span, .gt-visit-offer > div { flex: 1 1 220px; }
.gt-visit-offer strong { color: var(--ed-clay, #9f3d26); font: 400 29px/1.15 Georgia, "Times New Roman", serif; white-space: nowrap; }
.gt-visit-offer small { display: block; margin-top: 3px; color: var(--ed-muted, #62645d); font-size: 12px; line-height: 1.5; }
.gt-visit-form { display: grid; gap: 17px; margin: 0; }
.gt-visit-fields { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
.gt-visit-field { display: grid; gap: 7px; align-content: start; margin: 0; color: var(--ed-ink, #232823); font-size: 13px; line-height: 1.5; font-weight: 700; }
.gt-visit-field > span { display: block; }
.gt-visit-field small { color: var(--ed-muted, #62645d); font-size: 11px; font-weight: 400; line-height: 1.5; }
.gt-visit-field input, .gt-visit-field select {
  display: block;
  width: 100%;
  max-width: 100%;
  min-height: 48px;
  margin: 0;
  padding: 11px 12px;
  border: 1px solid #aaa297;
  border-radius: 7px;
  background: var(--ed-white, #fffefd);
  color: var(--ed-ink, #232823);
  font: 400 16px/1.4 Arial, Helvetica, sans-serif;
}
.gt-visit-field input[type="date"] { min-width: 0; -webkit-appearance: none; appearance: none; }
.gt-visit-field input[type="date"]::-webkit-date-and-time-value { min-height: 22px; text-align: left; }
.gt-visit-field select { padding-right: 28px; }
.gt-visit-field input::placeholder { color: #77786f; opacity: 1; }
.gt-visit-field input:hover, .gt-visit-field select:hover { border-color: var(--ed-ink, #232823); }
.gt-visit-field input[aria-invalid="true"], .gt-visit-field select[aria-invalid="true"] { border-color: var(--ed-clay, #9f3d26); box-shadow: inset 0 0 0 1px var(--ed-clay, #9f3d26); }
.gt-visit-field .gt-visit-error { color: var(--ed-clay, #9f3d26); font-size: 12px; font-weight: 400; line-height: 1.5; }
.gt-visit-details { padding: 0; border-block: 1px solid var(--ed-line, #d8d1c7); }
.gt-visit-details > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0 10px;
  min-height: 46px;
  padding: 10px 0;
  list-style: none;
  color: var(--ed-ink, #232823);
  font-size: 13px;
  line-height: 1.5;
  cursor: pointer;
}
.gt-visit-details > summary::-webkit-details-marker { display: none; }
.gt-visit-details > summary::after { content: "+"; margin-left: auto; color: var(--ed-clay, #9f3d26); font: 400 21px/1 Arial, Helvetica, sans-serif; }
.gt-visit-details[open] > summary::after { content: "−"; }
.gt-visit-details > summary:hover { text-decoration: underline; text-underline-offset: 4px; }
.gt-visit-details > summary small { color: var(--ed-muted, #62645d); font-size: 11px; }
.gt-visit-details-body { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px 16px; padding: 6px 0 17px; }
.gt-visit-details-body > small, .gt-visit-details-body > .gt-visit-note { grid-column: 1 / -1; }
.gt-visit-note { margin: 0; color: var(--ed-muted, #62645d); font-size: 12px; line-height: 1.6; }
.gt-visit-consent { display: grid; grid-template-columns: 22px minmax(0, 1fr); align-items: start; gap: 11px; min-height: 44px; margin: 0; padding: 3px 0; color: var(--ed-muted, #62645d); font-size: 12px; font-weight: 400; line-height: 1.65; cursor: pointer; }
.gt-visit-consent input { flex: none; width: 21px; height: 21px; margin: 2px 0 0; accent-color: var(--ed-clay, #9f3d26); cursor: pointer; }
.gt-visit-consent a { color: var(--ed-clay, #9f3d26); text-decoration: underline; text-underline-offset: 3px; }
.gt-visit-consent a:hover { text-decoration-thickness: 2px; }
.gt-visit-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  width: 100%;
  min-height: 48px;
  max-width: 100%;
  margin: 0;
  padding: 13px 20px;
  border: 1px solid var(--ed-clay, #9f3d26);
  border-radius: 8px;
  background: var(--ed-clay, #9f3d26);
  color: #fff;
  font: 700 14px/1.4 Arial, Helvetica, sans-serif;
  text-align: center;
  cursor: pointer;
  transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.gt-visit-submit:hover { background: var(--ed-clay-hover, #7e2f1d); border-color: var(--ed-clay-hover, #7e2f1d); box-shadow: 0 3px 0 rgba(35, 40, 35, .14); }
.gt-visit-submit:disabled, .gt-visit-form[aria-busy="true"] .gt-visit-submit { cursor: wait; opacity: .7; box-shadow: none; }
.gt-visit-status { margin: 0; padding: 12px 14px; border: 1px solid var(--ed-line, #d8d1c7); border-radius: 7px; background: var(--ed-pale, #f3ede5); color: var(--ed-ink, #232823); font-size: 13px; line-height: 1.65; overflow-wrap: anywhere; }
.gt-visit-status:empty { display: none; }
.gt-visit-status.is-error, .gt-visit-status[data-state="error"] { border-color: #c89482; background: #faeee7; color: #862e1a; }
.gt-visit-status.is-success, .gt-visit-status[data-state="success"] { border-color: #b6c5af; background: #edf1e8; color: #31412b; }
.gt-visit-hp { position: absolute !important; top: 0; left: -10000px; width: 1px; height: 1px; padding: 0; margin: 0; overflow: hidden; white-space: nowrap; }

@media (max-width: 480px) {
  .gt-visit-dialog { width: calc(100% - 24px); max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px); padding: 25px 21px 23px; }
  .gt-visit-title { font-size: 31px; }
  .gt-visit-intro { font-size: 13px; }
  .gt-visit-offer { margin-bottom: 19px; padding: 14px 15px; }
  .gt-visit-offer > span, .gt-visit-offer > div { flex-basis: 165px; }
  .gt-visit-offer strong { font-size: 28px; }
  .gt-visit-fields { grid-template-columns: 1fr; gap: 14px; }
  .gt-visit-form { gap: 16px; }
}

@media (max-width: 390px) {
  .gt-visit-dialog { width: calc(100% - 16px); max-height: calc(100vh - 16px); max-height: calc(100dvh - 16px); padding: 23px 17px 21px; border-radius: 10px; }
  .gt-visit-close { top: 8px; right: 8px; }
  .gt-visit-title { margin-right: 42px; font-size: 29px; }
  .gt-visit-header { margin-bottom: 17px; }
  .gt-visit-offer { padding: 13px; gap: 7px 12px; }
  .gt-visit-offer > span, .gt-visit-offer > div { flex-basis: 150px; }
  .gt-visit-offer strong { font-size: 27px; }
  .gt-visit-details-body { grid-template-columns: 1fr; gap: 13px; }
  .gt-visit-details > summary { font-size: 12px; }
  .gt-visit-consent { gap: 9px; font-size: 11px; }
  .gt-visit-submit { padding-inline: 13px; font-size: 13px; }
}

@media (prefers-reduced-motion: reduce) {
  .gt-visit-dialog *, .gt-visit-dialog *::before, .gt-visit-dialog *::after { transition: none !important; animation: none !important; }
}

.gt-visit-dialog { position: fixed; inset: 0; }
.gt-visit-contact { margin-top: 16px; }
.gt-visit-dialog > .gt-visit-status { margin-top: 17px; }
.gt-visit-dialog .gt-eyebrow { margin: 0 45px 8px 0; }
