/* Consultation page: shared GSTIS tokens, native form controls and brand icons. */
.gst-booking-heading h1 {
  max-width:1000px;
  font-size:clamp(56px,6.2vw,92px);
}
.gst-booking-subtitle {
  max-width:650px;
  font-size:21px;
  line-height:1.6;
  margin:24px 0 22px;
}
.gst-booking-layout {
  display:grid;
  grid-template-columns:320px minmax(0,1fr);
  align-items:start;
  gap:clamp(45px,6vw,95px);
}
.gst-booking-aside {
  position:sticky;
  top:28px;
}
.gst-booking-details {
  background:var(--gst-navy);
  color:var(--gst-cream);
  border-radius:10px;
  padding:30px;
}
.gst-booking-details .gst-consultation-symbol {
  height:auto;
  margin-bottom:30px;
}
.gst-booking-details .gst-symbol {
  width:68px;
  height:68px;
}
.gst-booking-details .gst-eyebrow {
  margin-bottom:18px;
  opacity:.8;
}
.gst-booking-details h2 {
  font-size:44px;
  margin-bottom:8px;
}
.gst-booking-details p:not(.gst-eyebrow) {
  font-size:13px;
  line-height:1.8;
  color:#e8e6d1df;
}
.gst-booking-details .gst-booking-duration {
  margin-bottom:22px;
}
.gst-booking-hours {
  padding-top:24px;
  margin-top:25px;
  border-top:1px solid #e8e6d144;
}
.gst-booking-hours p:last-child {
  margin-bottom:0;
}
.gst-booking-process {
  padding:28px 8px 0;
}
.gst-booking-process h2 {
  font-size:28px;
  font-weight:400;
  margin-bottom:16px;
}
.gst-booking-process p {
  color:#505563;
  font-size:13px;
  line-height:1.85;
}
.gst-booking-form {
  min-width:0;
}
.gst-required-note {
  font-size:12px;
  color:#505563;
  margin-bottom:36px;
}
.gst-form-section,.gst-format-field {
  min-width:0;
  margin:0;
  border:0;
  padding:0;
}
.gst-form-section {
  border-top:1px solid var(--gst-border);
  padding-top:30px;
  margin-bottom:40px;
}
.gst-form-section>legend {
  float:left;
  width:100%;
  font-family:var(--gst-heading);
  font-size:32px;
  line-height:1.2;
  margin-bottom:28px;
  padding:0;
}
.gst-form-section>legend>span {
  font-family:var(--gst-body);
  font-size:11px;
  vertical-align:middle;
  opacity:.6;
  margin-right:10px;
}
.gst-form-section>legend+* {
  clear:both;
}
.gst-form-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px 22px;
}
.gst-field--wide {
  grid-column:1/-1;
}
.gst-field {
  min-width:0;
}
.gst-field>label,.gst-format-field>legend {
  display:block;
  font-size:13px;
  line-height:1.5;
  margin-bottom:10px;
}
.gst-field>label>span,.gst-format-field>legend>span {
  color:var(--gst-earth);
}
.gst-input {
  display:block;
  width:100%;
  min-width:0;
  min-height:52px;
  padding:13px 14px;
  background:#fff;
  border:1px solid #93958d;
  border-radius:5px;
  color:var(--gst-navy);
  font:inherit;
  font-size:15px;
  line-height:1.5;
  box-shadow:none;
}
.gst-input:focus-visible {
  outline:2px solid var(--gst-slate);
  outline-offset:3px;
}
textarea.gst-input {
  min-height:175px;
  resize:vertical;
}
select.gst-input {
  padding-right:25px;
}
input[type=date].gst-input,input[type=time].gst-input {
  min-height:54px;
  appearance:none;
  -webkit-appearance:none;
}
.gst-input[aria-invalid=true],.gst-field--invalid .gst-input {
  border-color:#923f25;
}
.gst-field-help {
  color:#505563;
  font-size:11px;
  line-height:1.7;
}
.gst-field-help:empty {
  display:none;
}
.gst-field-help p {
  margin:8px 0 0;
}
.gst-field-errors {
  list-style:none;
  padding:0;
  margin:8px 0 0;
  color:#923f25;
  font-size:12px;
}
.gst-format-options {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.gst-format-option {
  display:flex;
  align-items:center;
  gap:12px;
  min-height:78px;
  padding:18px;
  border:1px solid #93958d;
  border-radius:5px;
  background:#fff;
  cursor:pointer;
  font-size:13px;
  line-height:1.6;
}
.gst-format-option:has(input:checked) {
  background:var(--gst-cream);
  border-color:var(--gst-navy);
  box-shadow:inset 0 0 0 1px var(--gst-navy);
}
.gst-format-option input.gst-input {
  flex-shrink:0;
  min-height:20px;
  width:20px;
  height:20px;
  margin:0;
  padding:0;
  accent-color:var(--gst-navy);
}
.gst-timezone-note {
  margin:25px 0;
  padding:18px 20px;
  border-left:3px solid var(--gst-sage);
  background:var(--gst-cream);
  font-size:12px;
  line-height:1.8;
}
.gst-timezone-note p:last-child {
  margin-bottom:0;
}
.gst-before-submit {
  border-top:1px solid var(--gst-border);
  padding-top:30px;
  margin-top:10px;
}
.gst-before-submit h2 {
  font-size:30px;
  font-weight:400;
  margin-bottom:25px;
}
.gst-booking-instructions {
  padding-left:20px;
  color:#505563;
  font-size:13px;
  line-height:1.85;
  margin:0 0 25px;
}
.gst-booking-instructions li {
  margin-bottom:12px;
  padding-left:5px;
}
.gst-booking-instructions li::marker {
  color:var(--gst-sage);
}
.gst-booking-submit {
  margin-top:30px;
  min-width:250px;
  font-size:14px;
}
.gst-booking-submit:disabled {
  cursor:wait;
  opacity:.65;
  transform:none;
}
.gst-error-summary,.gst-client-error {
  padding:22px;
  border:1px solid #923f25;
  border-left-width:4px;
  background:#fff7f0;
  color:#713019;
  font-size:14px;
  line-height:1.7;
  margin-bottom:32px;
  overflow-wrap:anywhere;
}
.gst-error-summary h2 {
  font-family:var(--gst-body);
  font-size:17px;
  line-height:1.5;
  letter-spacing:0;
  margin-bottom:15px;
}
.gst-error-summary ul {
  padding-left:20px;
  margin-bottom:0;
}
.gst-error-summary a {
  text-decoration:underline;
  text-underline-offset:3px;
}
.gst-client-error {
  margin-top:28px;
}
.gst-booking-result {
  max-width:820px;
  margin-inline:auto;
  padding:45px;
  background:var(--gst-cream);
  border:1px solid var(--gst-border);
  border-radius:10px;
}
.gst-booking-result h2 {
  font-size:48px;
  margin-bottom:25px;
}
.gst-booking-result>p:not(.gst-eyebrow) {
  line-height:1.85;
  font-size:16px;
}
.gst-booking-result-mark {
  display:grid;
  place-items:center;
  background:var(--gst-navy);
  color:var(--gst-cream);
  width:55px;
  height:55px;
  border-radius:50%;
  margin-bottom:30px;
  font-size:28px;
}
.gst-pending-note {
  font-weight:500;
}
#booking-result {
  scroll-margin-top:25px;
}
@media(max-width:1099px) {
  .gst-booking-layout {
    grid-template-columns:270px minmax(0,1fr);
    gap:35px;
  }
  .gst-booking-details {
    padding:25px;
  }
  .gst-format-options {
    grid-template-columns:1fr;
    gap:10px;
  }
  .gst-format-option {
    min-height:64px;
    padding:16px;
  }
}
@media(max-width:899px) {
  .gst-booking-layout {
    grid-template-columns:1fr;
    gap:55px;
  }
  .gst-booking-aside {
    position:static;
    order:2;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px 30px;
  }
  .gst-booking-aside .gst-aside-license {
    grid-column:1/-1;
  }
  .gst-booking-process {
    padding-top:15px;
  }
  .gst-format-options {
    grid-template-columns:1fr 1fr;
  }
}
@media(max-width:599px) {
  .gst-booking-heading h1 {
    font-size:56px;
  }
  .gst-booking-subtitle {
    font-size:19px;
  }
    .gst-booking-section {
    padding-top:45px;
  }
  .gst-form-section {
    padding-top:25px;
    margin-bottom:34px;
  }
  .gst-form-section>legend {
    font-size:29px;
    margin-bottom:25px;
  }
  .gst-form-grid,.gst-format-options,.gst-booking-aside {
    grid-template-columns:1fr;
  }
  .gst-form-grid {
    gap:22px;
  }
  .gst-input {
    font-size:16px;
  }
  .gst-format-option {
    min-height:70px;
    font-size:14px;
  }
  .gst-booking-instructions {
    font-size:13px;
  }
  .gst-booking-submit {
    width:100%;
    min-width:0;
  }
  .gst-booking-process {
    padding:15px 5px 0;
  }
  .gst-booking-result {
    padding:27px;
  }
  .gst-booking-result h2 {
    font-size:38px;
  }
  .gst-booking-result>p:not(.gst-eyebrow) {
    font-size:15px;
  }
}

/* Progressive date/time picker, sharing the site's form and brand tokens. */
.gst-booking-form [hidden] { display:none !important; }
.gst-date-trigger { text-align:left; cursor:pointer; }
.gst-date-trigger::after { content:'▦'; float:right; }
.gst-date-picker { min-width:0; }
.gst-calendar { padding:14px; margin-top:10px; background:var(--gst-cream); border:1px solid var(--gst-border); border-radius:5px; }
.gst-calendar-header { display:flex; align-items:center; justify-content:space-between; gap:6px; margin-bottom:12px; font-size:14px; }
.gst-calendar button { border:0; background:transparent; color:var(--gst-navy); cursor:pointer; min-height:40px; font:inherit; border-radius:4px; }
.gst-calendar-header button { min-width:40px; }
.gst-calendar-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:2px; text-align:center; font-size:13px; }
.gst-calendar-weekday { font-size:11px; padding-bottom:8px; }
.gst-calendar button:disabled { opacity:.3; cursor:default; }
.gst-calendar button:not(:disabled):hover,.gst-calendar button[aria-pressed=true] { background:var(--gst-navy); color:var(--gst-cream); }
.gst-calendar button:focus-visible { outline:2px solid var(--gst-navy); outline-offset:1px; }
.gst-time-picker { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:8px; }
.gst-date-trigger:focus-visible { outline:2px solid var(--gst-slate); outline-offset:3px; }

.gst-client-invalid .gst-input,.gst-client-invalid .gst-format-option { border-color:#923f25; }
