@import url("/canopy-tokens.css");

@font-face {
  font-family: "AGF Inter";
  src: url("/assets/fonts/InterVariable.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

html {
  overflow-x: clip;
  scroll-behavior: smooth;
  scrollbar-color: #76a7bd var(--canopy-sky, #d9eef3);
  scrollbar-width: thin;
}

html::-webkit-scrollbar { width: 0.72rem; }
html::-webkit-scrollbar-track { background: var(--canopy-sky, #d9eef3); }
html::-webkit-scrollbar-thumb {
  border: 0.2rem solid var(--canopy-sky, #d9eef3);
  border-radius: 999px;
  background: #76a7bd;
}

.booking-page {
  --booking-paper: var(--canopy-paper, #f7f5f1);
  --booking-ink: var(--canopy-ink, #050a11);
  --booking-navy: var(--canopy-navy, #07101c);
  --booking-blue: var(--canopy-blue, #0a5cff);
  --booking-blue-dark: var(--canopy-blue-dark, #0647c8);
  --booking-sky: var(--canopy-sky, #d9eef3);
  --booking-mint: var(--canopy-mint, #dcefdc);
  --booking-line: rgba(7, 16, 28, 0.16);
  min-height: 100vh;
  overflow-x: clip;
  overflow-y: visible;
  color: var(--booking-ink);
  background: var(--booking-sky);
  font-family: "AGF Inter", ui-sans-serif, system-ui, sans-serif;
  font-synthesis: none;
}

.booking-page ::selection {
  color: #fff;
  background: var(--booking-blue);
}

.booking-page :focus-visible {
  outline: 3px solid rgba(10, 92, 255, 0.45);
  outline-offset: 4px;
}

.booking-page .ui-icon {
  width: 1.05rem;
  height: 1.05rem;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.booking-page .ui-icon--close { width: 0.9rem; height: 0.9rem; }

.booking-page .site-header.is-scrolled {
  border-color: transparent;
  background: rgba(247, 245, 241, 0.94);
  box-shadow: 0 0.75rem 2.5rem rgba(7, 16, 28, 0.09);
  backdrop-filter: blur(14px);
}

.booking-page .site-header__cta.is-current {
  color: var(--booking-navy);
  background: #fff;
  box-shadow: inset 0 0 0 1px rgba(7, 16, 28, 0.16);
}

.booking-page .skip-link {
  position: fixed;
  top: 0.75rem;
  left: 0.75rem;
  z-index: 100;
  padding: 0.75rem 1rem;
  color: #fff;
  background: var(--booking-navy);
  transform: translateY(-200%);
}

.booking-page .skip-link:focus { transform: translateY(0); }

.booking-hero {
  display: grid;
  grid-template-columns: minmax(20rem, 0.78fr) minmax(36rem, 1.22fr);
  gap: clamp(2.5rem, 6vw, 7rem);
  align-items: start;
  min-height: 100svh;
  padding: clamp(8.5rem, 14vh, 10.5rem) clamp(1.25rem, 4.5vw, 5rem) clamp(5rem, 9vw, 8rem);
  isolation: isolate;
}

.booking-hero__intro { grid-column: 1; grid-row: 1; }

.booking-hero > .call-notes { grid-column: 1; grid-row: 2; align-self: start; }

.booking-hero > .booking-planner { grid-column: 2; grid-row: 1 / span 2; }

.booking-hero::before {
  position: absolute;
  top: clamp(7.5rem, 13vh, 9rem);
  left: 0;
  z-index: -1;
  width: clamp(5rem, 12vw, 12rem);
  height: clamp(14rem, 37vw, 34rem);
  border-radius: 0 55% 55% 0;
  background: rgba(255, 255, 255, 0.28);
  content: "";
}

.booking-hero__intro {
  padding-top: clamp(0.5rem, 2vh, 1.5rem);
}

.booking-hero__intro h1 {
  max-width: 9.8ch;
  margin: 0;
  font-size: clamp(3.35rem, 5.9vw, 6rem);
  font-weight: 890;
  letter-spacing: -0.04em;
  line-height: 0.89;
  text-wrap: balance;
}

.booking-hero__intro h1 span { color: var(--booking-blue); }

.booking-hero__lede {
  max-width: 34rem;
  margin: clamp(1.5rem, 3vw, 2.25rem) 0 0;
  color: #263f64;
  font-size: clamp(1rem, 1.2vw, 1.2rem);
  line-height: 1.62;
}

.call-notes {
  display: grid;
  gap: 0;
  max-width: 34rem;
  margin-top: clamp(2.4rem, 5vw, 4.5rem);
  border-top: 1px solid rgba(7, 16, 28, 0.22);
}

.call-notes article {
  display: grid;
  grid-template-columns: 2.4rem 1fr;
  gap: 1rem;
  align-items: start;
  padding: 1.1rem 0 1.25rem;
  border-bottom: 1px solid rgba(7, 16, 28, 0.16);
}

.call-notes svg {
  width: 1.65rem;
  margin-top: 0.1rem;
  fill: none;
  stroke: var(--booking-blue);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.6;
}

.call-notes h2,
.call-notes p { margin: 0; }

.call-notes h2 {
  font-size: 0.94rem;
  font-weight: 810;
  letter-spacing: -0.02em;
}

.call-notes p {
  max-width: 35ch;
  margin-top: 0.27rem;
  color: #3b536f;
  font-size: 0.84rem;
  line-height: 1.48;
}

.booking-planner {
  position: relative;
  min-height: 42rem;
  scroll-margin-top: 6.5rem;
  overflow: hidden;
  border-radius: 1.25rem;
  background: #fff;
  box-shadow: 0 1.7rem 5rem rgba(36, 75, 91, 0.17);
}

.booking-planner__header {
  display: flex;
  gap: 1.5rem;
  align-items: flex-start;
  justify-content: space-between;
  padding: clamp(1.4rem, 3vw, 2.25rem) clamp(1.25rem, 3vw, 2.5rem) 1.5rem;
}

.booking-planner__header h2,
.booking-planner__header p { margin: 0; }

.booking-planner__header h2 {
  font-size: clamp(1.45rem, 2.25vw, 2.1rem);
  font-weight: 850;
  letter-spacing: -0.035em;
  line-height: 1;
}

.booking-planner__header p {
  max-width: 50ch;
  margin-top: 0.65rem;
  color: #51647d;
  font-size: 0.88rem;
  line-height: 1.5;
}

.booking-planner__status {
  flex: 0 0 auto;
  padding: 0.5rem 0.72rem;
  border-radius: 999px;
  color: #36506f;
  background: #edf4f7;
  font-size: 0.72rem;
  font-weight: 780;
  letter-spacing: 0.02em;
}

.booking-progress {
  --progress-scale: 0;
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  padding: 0 2.5rem 1.55rem;
  margin: 0;
  list-style: none;
}

.booking-progress::before,
.booking-progress::after {
  position: absolute;
  top: 1rem;
  right: calc(2.5rem + 16.666%);
  left: calc(2.5rem + 16.666%);
  height: 2px;
  content: "";
}

.booking-progress::before { background: #dbe2e8; }

.booking-progress::after {
  transform: scaleX(var(--progress-scale));
  transform-origin: left;
  background: var(--booking-blue);
  transition: transform 520ms cubic-bezier(0.16, 1, 0.3, 1);
}

.booking-progress li {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
}

.booking-progress button {
  display: grid;
  gap: 0.42rem;
  justify-items: center;
  padding: 0;
  border: 0;
  color: #8b98a8;
  background: transparent;
  font: inherit;
  cursor: pointer;
}

.booking-progress button:disabled { cursor: default; }

.booking-progress button span {
  display: grid;
  width: 2rem;
  height: 2rem;
  place-items: center;
  border: 2px solid #dbe2e8;
  border-radius: 50%;
  color: #768598;
  background: #fff;
  font-size: 0.72rem;
  font-weight: 820;
  transition: color 180ms ease, border-color 180ms ease, background 180ms ease, transform 260ms cubic-bezier(0.16, 1, 0.3, 1);
}

.booking-progress button b {
  font-size: 0.72rem;
  font-weight: 760;
}

.booking-progress li.is-active button,
.booking-progress li.is-complete button { color: var(--booking-navy); }

.booking-progress li.is-active button span,
.booking-progress li.is-complete button span {
  border-color: var(--booking-blue);
  color: #fff;
  background: var(--booking-blue);
}

.booking-progress li.is-active button span {
  transform: scale(1.12);
  box-shadow: 0 0.6rem 1.4rem rgba(10, 92, 255, 0.22);
}

.booking-form { border-top: 1px solid #e2e8ec; }

.booking-step {
  min-height: 30.5rem;
  padding: clamp(1.5rem, 3vw, 2.35rem) clamp(1.25rem, 3vw, 2.5rem) clamp(1.75rem, 3vw, 2.5rem);
}

.booking-step.is-entering {
  animation: booking-step-in 480ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

@keyframes booking-step-in {
  from { opacity: 0; clip-path: inset(0 0 0 9%); transform: translateX(1.3rem); }
  to { opacity: 1; clip-path: inset(0 0 0 0); transform: translateX(0); }
}

.booking-step__title {
  display: flex;
  gap: 1.5rem;
  align-items: flex-start;
  justify-content: space-between;
}

.booking-step__title--stacked { display: block; }

.booking-step__title h3,
.booking-step__title p { margin: 0; }

.booking-step__title h3 {
  max-width: 18ch;
  font-size: clamp(1.45rem, 2vw, 1.9rem);
  font-weight: 830;
  letter-spacing: -0.03em;
  line-height: 1.08;
}

.booking-step__title p {
  max-width: 55ch;
  margin-top: 0.65rem;
  color: #53657e;
  font-size: 0.88rem;
  line-height: 1.5;
}

.timezone-field {
  display: grid;
  gap: 0.32rem;
  min-width: 12rem;
}

.timezone-field > span,
.booking-form legend,
.form-grid label > span,
.details-field > span {
  color: #233a59;
  font-size: 0.72rem;
  font-weight: 790;
  letter-spacing: 0.025em;
}

.timezone-field select {
  min-height: 2.75rem;
  padding: 0 2.2rem 0 0.8rem;
  border: 1px solid #ced9df;
  border-radius: 0.7rem;
  color: var(--booking-navy);
  background: #f7fafb;
  font: inherit;
  font-size: 0.82rem;
}

.booking-form fieldset {
  padding: 0;
  margin: 0;
  border: 0;
}

.booking-form legend { margin-bottom: 0.7rem; }

.date-fieldset { margin-top: 1.6rem !important; }
.time-fieldset { margin-top: 1.7rem !important; }

.date-options {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.58rem;
}

.date-options button {
  display: grid;
  gap: 0.15rem;
  justify-items: start;
  min-height: 5.1rem;
  padding: 0.75rem;
  border: 1px solid #d4dee4;
  border-radius: 0.8rem;
  color: #4a5f78;
  background: #fff;
  font: inherit;
  cursor: pointer;
  transition: border-color 160ms ease, color 160ms ease, background 160ms ease, transform 160ms ease;
}

.date-options button:hover { border-color: #88a9bb; transform: translateY(-2px); }
.date-options button[aria-pressed="true"] {
  border-color: var(--booking-blue);
  color: #fff;
  background: var(--booking-blue);
}

.date-options button span {
  font-size: 0.67rem;
  font-weight: 760;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.date-options button strong {
  font-size: 1.45rem;
  font-weight: 850;
  line-height: 1;
}

.date-options button small { font-size: 0.7rem; font-weight: 650; }

.time-options {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.58rem;
}

.time-options button {
  min-height: 2.9rem;
  padding: 0.6rem;
  border: 1px solid #d4dee4;
  border-radius: 0.7rem;
  color: #1f3756;
  background: #f7fafb;
  font: inherit;
  font-size: 0.8rem;
  font-weight: 730;
  font-variant-numeric: tabular-nums;
  cursor: pointer;
  transition: border-color 160ms ease, color 160ms ease, background 160ms ease;
}

.time-options button:hover { border-color: #88a9bb; background: #fff; }
.time-options button[aria-pressed="true"] {
  border-color: var(--booking-navy);
  color: #fff;
  background: var(--booking-navy);
}

.field-error,
.form-message {
  margin: 1rem 0 0;
  color: #a3253b;
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1.45;
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 1.5rem;
}

.form-grid label,
.details-field { display: grid; gap: 0.43rem; }

.form-grid small { color: #52647a; font-size: 0.65rem; font-weight: 650; }

.form-grid input,
.details-field textarea {
  width: 100%;
  border: 1px solid #cbd8df;
  border-radius: 0.72rem;
  color: var(--booking-navy);
  background: #f9fbfc;
  font: inherit;
  font-size: 0.9rem;
  caret-color: var(--booking-blue);
  transition: border-color 160ms ease, background 160ms ease, box-shadow 160ms ease;
}

.form-grid input { min-height: 3rem; padding: 0 0.85rem; }

.form-grid input:hover,
.details-field textarea:hover { border-color: #8ea8b7; background: #fff; }

.form-grid input:focus,
.details-field textarea:focus {
  border-color: var(--booking-blue);
  outline: 0;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(10, 92, 255, 0.12);
}

.focus-fieldset { margin-top: 1.4rem !important; }

.focus-options {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.focus-options label { cursor: pointer; }
.focus-options input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
}

.focus-options span {
  display: inline-flex;
  min-height: 2.45rem;
  align-items: center;
  padding: 0.55rem 0.82rem;
  border: 1px solid #d3dde3;
  border-radius: 999px;
  color: #334d6d;
  background: #f7fafb;
  font-size: 0.76rem;
  font-weight: 720;
  transition: border-color 160ms ease, color 160ms ease, background 160ms ease;
}

.focus-options input:checked + span {
  border-color: var(--booking-blue);
  color: #fff;
  background: var(--booking-blue);
}

.focus-options input:focus-visible + span {
  outline: 3px solid rgba(10, 92, 255, 0.45);
  outline-offset: 3px;
}

.details-field { position: relative; margin-top: 1.35rem; }

.details-field textarea {
  min-height: 7rem;
  padding: 0.8rem 0.9rem 1.6rem;
  resize: vertical;
  line-height: 1.5;
}

.details-field > small {
  position: absolute;
  right: 0.7rem;
  bottom: 0.55rem;
  color: #52647a;
  font-size: 0.67rem;
  font-variant-numeric: tabular-nums;
}

.details-field textarea::placeholder { color: #52647a; opacity: 1; }

.honeypot {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.booking-actions {
  display: flex;
  gap: 0.75rem;
  align-items: center;
  justify-content: space-between;
  margin-top: 1.55rem;
}

.booking-actions--end { justify-content: flex-end; }

.booking-button {
  display: inline-flex;
  min-height: 3.2rem;
  gap: 1.25rem;
  align-items: center;
  justify-content: space-between;
  padding: 0.78rem 1.05rem;
  border: 0;
  border-radius: 0.72rem;
  font: inherit;
  font-size: 0.82rem;
  font-weight: 800;
  cursor: pointer;
  transition: background 160ms ease, color 160ms ease, transform 160ms ease;
}

.booking-button:not(:disabled):hover { transform: translateY(-2px); }

.booking-button--primary { color: #fff; background: var(--booking-blue); }
.booking-button--primary:not(:disabled):hover { background: var(--booking-blue-dark); }
.booking-button--primary:disabled { color: #92a0ae; background: #e4e9ec; cursor: not-allowed; }

.booking-button--secondary { color: var(--booking-navy); background: #edf2f4; }
.booking-button--secondary:hover { background: #dfe8ec; }

.booking-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 1.45rem 0 0;
  border-top: 1px solid #dce4e8;
}

.booking-summary > div {
  position: relative;
  min-height: 7.2rem;
  padding: 1rem 4rem 1rem 0;
  border-bottom: 1px solid #dce4e8;
}

.booking-summary > div:nth-child(odd) { padding-right: 5rem; border-right: 1px solid #dce4e8; }
.booking-summary > div:nth-child(even) { padding-left: 1rem; }

.booking-summary dt {
  color: #52647a;
  font-size: 0.68rem;
  font-weight: 760;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.booking-summary dd {
  display: -webkit-box;
  max-width: 42ch;
  margin: 0.4rem 0 0;
  overflow: hidden;
  color: #1c3555;
  font-size: 0.84rem;
  font-weight: 690;
  line-height: 1.45;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.booking-summary button {
  position: absolute;
  top: 0.9rem;
  right: 0.8rem;
  padding: 0.15rem 0;
  border: 0;
  border-bottom: 1px solid currentColor;
  color: var(--booking-blue-dark);
  background: transparent;
  font: inherit;
  font-size: 0.7rem;
  font-weight: 750;
  cursor: pointer;
}

.consent-field {
  display: grid;
  grid-template-columns: 1.1rem 1fr;
  gap: 0.7rem;
  align-items: start;
  margin-top: 1.25rem;
  color: #4b607a;
  font-size: 0.76rem;
  line-height: 1.5;
}

.consent-field input {
  width: 1.05rem;
  height: 1.05rem;
  margin: 0.1rem 0 0;
  accent-color: var(--booking-blue);
}

.form-message.is-error { color: #a3253b; }
.form-message.is-success { color: #137a4d; }

.booking-success {
  min-height: 34rem;
  padding: clamp(3rem, 8vw, 6rem) clamp(1.5rem, 6vw, 5rem);
  text-align: center;
}

.booking-success svg {
  width: 4rem;
  fill: none;
  stroke: var(--booking-blue);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
}

.booking-success h2 {
  max-width: 11ch;
  margin: 1.4rem auto 0;
  font-size: clamp(2.4rem, 5vw, 4rem);
  font-weight: 880;
  letter-spacing: -0.04em;
  line-height: 0.95;
}

.booking-success p {
  max-width: 46ch;
  margin: 1.25rem auto 0;
  color: #50647e;
  line-height: 1.58;
}

.booking-success a {
  display: inline-flex;
  gap: 1.1rem;
  margin-top: 1.5rem;
  color: var(--booking-blue-dark);
  font-weight: 800;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.3rem;
}

.call-agenda {
  display: grid;
  grid-template-columns: minmax(18rem, 0.82fr) minmax(32rem, 1.18fr);
  gap: clamp(3rem, 8vw, 8rem);
  padding: clamp(5rem, 10vw, 9rem) clamp(1.25rem, 6vw, 7rem);
  background: var(--booking-mint);
}

.call-agenda__heading h2,
.call-agenda__heading p { margin: 0; }

.call-agenda__heading h2 {
  max-width: 11ch;
  font-size: clamp(2.7rem, 5vw, 5.25rem);
  font-weight: 880;
  letter-spacing: -0.04em;
  line-height: 0.94;
  text-wrap: balance;
}

.call-agenda__heading p {
  max-width: 34rem;
  margin-top: 1.5rem;
  color: #2d5142;
  font-size: clamp(1rem, 1.2vw, 1.18rem);
  line-height: 1.62;
}

.call-agenda__path { border-top: 1px solid rgba(7, 16, 28, 0.28); }

.call-agenda__path article {
  display: grid;
  grid-template-columns: minmax(5rem, 0.25fr) minmax(11rem, 0.7fr) minmax(15rem, 1.05fr);
  gap: 1.25rem;
  align-items: baseline;
  padding: 1.6rem 0 1.8rem;
  border-bottom: 1px solid rgba(7, 16, 28, 0.22);
}

.call-agenda__path span {
  color: #366651;
  font-size: 0.7rem;
  font-weight: 790;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.call-agenda__path h3,
.call-agenda__path p { margin: 0; }

.call-agenda__path h3 {
  font-size: clamp(1.1rem, 1.5vw, 1.4rem);
  font-weight: 830;
  letter-spacing: -0.025em;
}

.call-agenda__path p {
  color: #345947;
  font-size: 0.9rem;
  line-height: 1.55;
}

.booking-footer {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 2rem;
  align-items: center;
  min-height: 8rem;
  padding: 1.5rem clamp(1.25rem, 4vw, 4rem);
  color: #fff;
  background: var(--booking-navy);
}

.booking-footer a {
  color: #fff;
  font-size: 0.78rem;
  font-weight: 850;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.3rem;
}

.booking-footer p {
  margin: 0;
  color: #b9c7d8;
  font-size: 0.82rem;
}

@media (max-width: 1080px) {
  .booking-hero {
    grid-template-columns: 1fr;
    gap: 3.5rem;
    padding-top: 8rem;
  }

  .booking-hero__intro {
    position: relative;
    top: auto;
    display: block;
  }

  .booking-hero__intro,
  .booking-hero > .booking-planner,
  .booking-hero > .call-notes { grid-column: 1; grid-row: auto; }

  .booking-hero__intro { order: 1; }
  .booking-hero > .booking-planner { order: 2; }
  .booking-hero > .call-notes { order: 3; }

  .booking-hero__lede { max-width: 42rem; }
  .call-notes { grid-template-columns: repeat(3, 1fr); max-width: none; margin-top: 0; }
  .call-notes article { border-top: 1px solid rgba(7, 16, 28, 0.16); }
  .call-notes article + article { padding-left: 1rem; border-left: 1px solid rgba(7, 16, 28, 0.16); }

  .call-agenda { grid-template-columns: 1fr; gap: 3rem; }
  .call-agenda__heading h2 { max-width: 15ch; }
}

@media (max-width: 720px) {
  html { scroll-behavior: auto; }

  .booking-hero {
    gap: 2.5rem;
    padding: 6.7rem 0.85rem 4rem;
  }

  .booking-hero::before { display: none; }

  .booking-hero__intro {
    display: block;
    padding: 0 0.35rem;
  }

  .booking-hero__intro h1 { font-size: clamp(3.15rem, 14.6vw, 4.4rem); }
  .booking-hero__lede { margin-top: 1.25rem; font-size: 0.98rem; }

  .call-notes { display: grid; grid-template-columns: 1fr; margin-top: 2.5rem; }
  .call-notes article + article { padding-left: 0; border-left: 0; }

  .booking-planner { border-radius: 0.95rem; }
  .booking-planner__header { display: block; }
  .booking-planner__status { display: inline-flex; margin-top: 1rem; }

  .booking-progress { padding-right: 1.25rem; padding-left: 1.25rem; }
  .booking-progress::before,
  .booking-progress::after { right: calc(1.25rem + 16.666%); left: calc(1.25rem + 16.666%); }

  .booking-step { min-height: 0; }
  .booking-step__title { display: block; }
  .timezone-field { margin-top: 1.1rem; }
  .date-options { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.35rem; }
  .date-options button { min-height: 4.7rem; padding: 0.58rem 0.36rem; }
  .date-options button span { font-size: 0.61rem; }
  .date-options button strong { font-size: 1.25rem; }
  .date-options button small { font-size: 0.61rem; }
  .time-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .time-options button:last-child { grid-column: 1 / -1; }
  .form-grid { grid-template-columns: 1fr; }
  .booking-summary { grid-template-columns: 1fr; }
  .booking-summary > div:nth-child(odd) { padding-right: 4rem; border-right: 0; }
  .booking-summary > div:nth-child(even) { padding-left: 0; }

  .booking-actions { align-items: stretch; }
  .booking-button { min-height: 3.35rem; }

  .call-agenda { padding: 4.5rem 1.2rem; }
  .call-agenda__heading h2 { font-size: clamp(2.7rem, 13vw, 4rem); }
  .call-agenda__path article { grid-template-columns: 1fr; gap: 0.45rem; }
  .call-agenda__path p { margin-top: 0.25rem; }

  .booking-footer { grid-template-columns: 1fr auto; gap: 0.8rem; min-height: 7rem; }
  .booking-footer p { grid-column: 1 / -1; grid-row: 2; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .booking-step.is-entering { animation: none; }
  .booking-progress::after,
  .booking-page * { transition-duration: 0.01ms !important; }
}

/* Direct intake form: scheduling follows after the request is reviewed. */
.booking-planner{min-height:0;overflow:visible}
.booking-planner__header{padding-bottom:2rem;border-bottom:1px solid #e2e8ec}
.booking-planner__header h2{font-size:clamp(2rem,3.2vw,3.2rem)}
.booking-planner__header p{max-width:60ch;font-size:.98rem}
.booking-intake-form{padding:clamp(1.5rem,3vw,2.5rem)}
.booking-intake-form .form-grid{margin-top:0}
.booking-intake-form .details-field{margin-top:1.5rem}
.booking-intake-form .details-field textarea{min-height:10rem}
.booking-consents{display:grid;gap:.8rem;margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid #dce4e8}
.booking-consents .consent-field{margin-top:0;padding:.85rem 1rem;background:#f7fafb;border-radius:.75rem}
.booking-intake-form input[aria-invalid="true"],.booking-intake-form textarea[aria-invalid="true"]{border-color:#a3253b;box-shadow:0 0 0 3px rgba(163,37,59,.1)}
@media(max-width:600px){.booking-intake-form{padding:1.25rem}.booking-planner__header h2{font-size:2.2rem}.booking-consents .consent-field{padding:.75rem}}

/* Guided intake survey */
.booking-planner__header{display:block;padding:clamp(1.5rem,3vw,2.4rem)}
.booking-planner__header h2{margin:.35rem 0 0;letter-spacing:-.035em}
.booking-planner__header p:not(.survey-progress-copy){margin-top:.7rem}
.survey-progress-copy{margin:0!important;color:var(--booking-blue)!important;font-size:.72rem!important;font-weight:820;letter-spacing:.04em;text-transform:uppercase}
.survey-progress{height:3px;margin-top:1.6rem;overflow:hidden;background:#e7edf1}
.survey-progress span{display:block;width:100%;height:100%;background:var(--booking-blue);transform:scaleX(.25);transform-origin:left;transition:transform 420ms cubic-bezier(.16,1,.3,1)}
.booking-intake-form{min-height:31rem;display:flex;flex-direction:column}
.survey-step{flex:1}
.survey-step.is-active{animation:survey-in 420ms cubic-bezier(.16,1,.3,1) both}
.survey-step.is-active.is-reverse{animation-name:survey-in-reverse}
@keyframes survey-in{from{opacity:.35;transform:translateX(1.25rem);clip-path:inset(0 0 0 8%)}to{opacity:1;transform:none;clip-path:inset(0)}}
@keyframes survey-in-reverse{from{opacity:.35;transform:translateX(-1.25rem);clip-path:inset(0 8% 0 0)}to{opacity:1;transform:none;clip-path:inset(0)}}
.survey-question{position:relative;display:grid;grid-template-columns:2.25rem 1fr;gap:1rem;align-items:start;margin-bottom:1.7rem}
.survey-question::after{content:"";position:absolute;top:2.45rem;bottom:-1.2rem;left:1.08rem;width:1px;background:#cfdbe2}
.survey-question>span{display:grid;width:2.2rem;height:2.2rem;place-items:center;border-radius:50%;color:#fff;background:var(--booking-blue);font-size:.72rem;font-weight:850;font-variant-numeric:tabular-nums}
.survey-question h3,.survey-question p{margin:0}
.survey-question h3{font-size:clamp(1.3rem,2vw,1.75rem);font-weight:830;letter-spacing:-.03em;line-height:1.08}
.survey-question p{max-width:48ch;margin-top:.45rem;color:#52647a;font-size:.88rem;line-height:1.5}
.survey-fields{position:relative;margin:0 0 0 3.2rem;padding:1rem;background:#f0f4f6;border-radius:.8rem}
.survey-fields label,.details-field{gap:.4rem}
.survey-fields input,.details-field textarea{border:1px solid transparent;background:#fff}
.survey-fields input:hover,.details-field textarea:hover{border-color:#b9c9d2}
.survey-step .details-field{margin:0 0 0 3.2rem;padding:1rem;background:#f0f4f6;border-radius:.8rem}
.survey-step .details-field textarea{min-height:13rem}
.survey-review{display:grid;grid-template-columns:1fr 1fr;margin:0 0 0 3.2rem;border-top:1px solid #d5e0e5}
.survey-review div{padding:1rem 1rem 1rem 0;border-bottom:1px solid #d5e0e5}
.survey-review dt{color:#53677d;font-size:.68rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.survey-review dd{display:-webkit-box;margin:.35rem 0 0;overflow:hidden;color:#163153;font-size:.84rem;font-weight:650;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:3}
.survey-step .booking-consents{margin:1.1rem 0 0 3.2rem}
.booking-actions{margin-top:1.6rem;padding-top:1.2rem;border-top:1px solid #dce4e8}
.booking-actions .booking-button--primary{margin-left:auto;min-width:10rem}
.booking-actions .booking-button[hidden]{display:none!important}
.booking-button:focus-visible{outline:3px solid rgba(10,92,255,.35);outline-offset:3px}
.booking-intake-form::selection{color:#fff;background:var(--booking-blue)}
@media(max-width:600px){.booking-intake-form{min-height:35rem}.survey-fields,.survey-step .details-field,.survey-review,.survey-step .booking-consents{margin-left:0}.survey-question::after{display:none}.survey-review{grid-template-columns:1fr}.booking-actions{gap:.55rem}.booking-button{gap:.65rem;padding-inline:.85rem}.booking-actions .booking-button--primary{min-width:0}}
@media(prefers-reduced-motion:reduce){.survey-step.is-active,.survey-step.is-active.is-reverse{animation:none}.survey-progress span{transition:none}}

/* 2026 survey redesign: an editorial working brief. */
.booking-page{background:var(--booking-paper)}
.booking-page .site-header{border-bottom:1px solid rgba(7,16,28,.12);background:var(--booking-paper)}
.booking-page .site-header__cta.is-current{color:#fff;background:var(--booking-navy);box-shadow:none}
.booking-hero{grid-template-columns:minmax(21rem,.72fr) minmax(38rem,1.28fr);gap:0;min-height:100svh;padding:0;background:var(--booking-paper)}
.booking-hero::before{display:none}
.booking-hero__intro{position:relative;grid-column:1;grid-row:1;padding:clamp(9rem,15vh,11rem) clamp(2rem,5vw,5.5rem) 2rem;color:#fff;background:var(--booking-navy)}
.booking-hero__intro::after{position:absolute;right:0;bottom:0;width:58%;height:28%;border-top:1px solid rgba(255,255,255,.18);border-left:1px solid rgba(255,255,255,.18);border-radius:100% 0 0;content:""}
.booking-hero__intro h1{max-width:8.5ch;font-size:clamp(3.25rem,5.3vw,5.8rem);line-height:.9}
.booking-hero__intro h1 span{color:#76ccff}
.booking-hero__lede{max-width:29rem;color:#c9d6e4;font-size:clamp(.98rem,1.1vw,1.12rem)}
.booking-hero>.call-notes{grid-column:1;grid-row:2;margin:0;padding:0 clamp(2rem,5vw,5.5rem) clamp(3rem,8vh,6rem);color:#fff;background:var(--booking-navy);border-top:0}
.call-notes article{grid-template-columns:2rem 1fr;padding:1rem 0;border-color:rgba(255,255,255,.16)}
.call-notes article:first-child{border-top:1px solid rgba(255,255,255,.16)}
.call-notes svg{width:1.35rem;stroke:#76ccff}
.call-notes h2{font-size:.82rem}
.call-notes p{color:#9fb1c5;font-size:.76rem}
.booking-hero>.booking-planner{grid-column:2;grid-row:1 / span 2;align-self:stretch}
.booking-planner{min-height:100%;scroll-margin-top:5rem;overflow:visible;border-radius:0;background:var(--booking-paper);box-shadow:none}
.booking-planner__header{padding:clamp(9rem,15vh,11rem) clamp(2rem,6vw,7rem) 2.25rem;border-bottom:0}
.survey-progress-copy{font-size:.69rem!important}
.booking-planner__header h2{max-width:12ch;font-size:clamp(2.8rem,4.5vw,5rem);line-height:.92}
.booking-planner__header p:not(.survey-progress-copy){max-width:51ch;margin-top:1rem;color:#405572;font-size:.94rem}
.survey-progress{height:2px;margin-top:2rem;background:#d5dde2}
.booking-intake-form{min-height:36rem;padding:2.25rem clamp(2rem,6vw,7rem) clamp(4rem,8vh,6rem)}
.survey-question{grid-template-columns:2.65rem 1fr;gap:1.2rem;margin-bottom:1.75rem}
.survey-question::after{top:2.8rem;bottom:-1.5rem;left:1.3rem;background:#bdcbd4}
.survey-question>span{width:2.6rem;height:2.6rem;border:1px solid var(--booking-blue);color:var(--booking-blue);background:transparent}
.survey-question h3{font-size:clamp(1.45rem,2.1vw,2rem)}
.survey-question p{color:#405572}
.survey-fields{margin-left:3.85rem;padding:0;border-radius:0;background:transparent}
.survey-fields label{padding:.8rem 1rem;background:#e9eef0}
.survey-fields label:nth-child(1){border-radius:.8rem 0 0 0}
.survey-fields label:nth-child(2){border-radius:0 .8rem 0 0}
.survey-fields label:nth-last-child(2){border-radius:0 0 0 .8rem}
.survey-fields label:last-child{border-radius:0 0 .8rem 0}
.survey-fields input{min-height:3.15rem;border-radius:.45rem}
.survey-step .details-field{margin-left:3.85rem;padding:1rem;border-radius:.8rem;background:#e9eef0}
.survey-step .details-field textarea{min-height:15rem}
.survey-review{margin-left:3.85rem}
.survey-step .booking-consents{margin-left:3.85rem}
.booking-consents .consent-field{border-radius:.6rem;background:#e9eef0}
.booking-actions{margin-top:auto;padding-top:1.4rem}
.booking-button{border-radius:.55rem}
.booking-button--secondary{padding-left:0;color:#213b59;background:transparent;text-decoration:underline;text-underline-offset:.28rem}
.booking-button--secondary:hover{background:transparent}
.call-agenda{grid-template-columns:minmax(20rem,.72fr) minmax(36rem,1.28fr);gap:0;padding:0;color:#fff;background:var(--booking-navy)}
.call-agenda__heading{padding:clamp(4rem,8vw,7rem) clamp(2rem,5vw,5.5rem);background:#0a1625}
.call-agenda__heading h2{font-size:clamp(2.8rem,4.5vw,4.8rem)}
.call-agenda__heading p{color:#b9cadb}
.call-agenda__path{padding:clamp(4rem,8vw,7rem) clamp(2rem,6vw,7rem);border-top:0;background:var(--booking-blue)}
.call-agenda__path article{grid-template-columns:minmax(4.5rem,.25fr) minmax(10rem,.75fr) minmax(14rem,1fr);border-color:rgba(255,255,255,.28)}
.call-agenda__path span,.call-agenda__path p{color:#e1ecff}
@media(max-width:1080px){.booking-hero{display:grid;grid-template-columns:1fr;padding-top:0}.booking-hero__intro{grid-column:1;grid-row:1;padding:8rem 1.5rem 3rem}.booking-hero>.call-notes{grid-column:1;grid-row:2;padding:0 1.5rem 3rem}.booking-hero>.booking-planner{grid-column:1;grid-row:3}.booking-planner__header{padding:4rem 1.5rem 2rem}.booking-intake-form{padding:2rem 1.5rem 4rem}.call-notes{grid-template-columns:repeat(3,1fr)}.call-agenda{grid-template-columns:1fr}.call-agenda__heading,.call-agenda__path{padding:4rem 1.5rem}}
@media(max-width:720px){.booking-hero{gap:0;padding:0}.booking-hero__intro{padding-top:7rem}.booking-hero__intro h1{font-size:clamp(3rem,15vw,4.5rem)}.booking-hero>.call-notes{display:none}.booking-planner__header{padding:3.5rem 1.15rem 1.75rem}.booking-planner__header h2{font-size:clamp(2.6rem,12vw,3.8rem)}.booking-intake-form{min-height:33rem;padding:1.6rem 1.15rem 3rem}.survey-fields,.survey-step .details-field,.survey-review,.survey-step .booking-consents{margin-left:0}.survey-fields label,.survey-fields label:nth-child(n){border-radius:.6rem}.call-agenda__path article{grid-template-columns:1fr}}

/* Minimal single-form page */
.booking-page .site-header,.booking-hero__intro,.booking-hero>.call-notes,.call-agenda,.agf-footer{display:none!important}
.booking-hero{display:block;min-height:100svh;padding:clamp(2rem,6vh,5rem) 1.25rem;background:#fff}
.booking-hero>.booking-planner{width:min(100%,52rem);min-height:0;margin:0 auto;border-left:6px solid var(--booking-blue);background:#fff}
.booking-planner__header{padding:0 0 2rem 2rem}
.booking-planner__header h2{margin:0;font-size:clamp(2.25rem,5vw,4rem);font-weight:780;letter-spacing:-.035em}
.booking-intake-form{display:block;min-height:0;padding:0 0 0 2rem}
.simple-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.55rem 2rem}
.simple-form-grid__full{grid-column:1/-1}
.simple-form-grid label,.simple-details{display:grid;gap:.35rem;color:#707070;font-size:1rem}
.simple-form-grid small{font-size:.75rem}
.simple-form-grid input,.simple-details textarea{width:100%;padding:.45rem 0 .65rem;border:0;border-bottom:1px solid #cfcfcf;border-radius:0;color:#111;background:transparent;font:inherit;outline:0}
.simple-form-grid input:focus,.simple-details textarea:focus{border-color:var(--booking-blue);box-shadow:none}
.simple-details{position:relative;margin-top:1.55rem}
.simple-details textarea{min-height:6rem;resize:vertical}
.simple-details>small{position:absolute;right:0;bottom:.55rem;font-size:.7rem}
.booking-consents{gap:.75rem;margin-top:1.5rem;padding-top:0;border-top:0}
.booking-consents .consent-field{margin:0;padding:0;color:#555;background:transparent;border-radius:0;font-size:.83rem}
.booking-consents .consent-field input{border-radius:2px}
.booking-actions{margin-top:2rem;padding-top:0;border-top:0}
.booking-actions .booking-button--primary{width:100%;min-height:4.1rem;margin:0;border-radius:.3rem;font-size:1.1rem;text-transform:uppercase}
.form-message{margin-top:1rem}
@media(max-width:620px){.booking-hero{padding:2rem .9rem}.booking-hero>.booking-planner{border-left-width:4px}.booking-planner__header,.booking-intake-form{padding-left:1.15rem}.simple-form-grid{grid-template-columns:1fr;gap:1.2rem}.booking-planner__header h2{font-size:2.5rem}}

/* Keep the form inside the complete site shell. */
.booking-page .site-header{display:grid!important}
.booking-page .agf-footer{display:block!important}
.booking-hero{padding-top:clamp(8rem,14vh,10rem);padding-bottom:clamp(4rem,8vh,7rem)}
@media(max-width:620px){.booking-hero{padding-top:7rem}}
