/* Consultation booking. Tokens only. */

.consult-rate {
  margin-top: var(--space-md);
  font-size: var(--text-lg);
  color: var(--color-ink-secondary);
}

.consult-note {
  max-width: 52ch;
  margin-block: var(--space-sm) var(--space-lg);
  color: var(--color-ink-secondary);
  font-size: var(--text-sm);
}

.booker { margin-top: var(--space-lg); }

.booker__zone {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2xs) var(--space-sm);
  padding: var(--space-sm) var(--space-md);
  border: var(--border-hairline) solid var(--color-rule);
  border-left: var(--border-thick) solid var(--color-accent);
  background-color: var(--color-surface-sunken);
}

.booker__zone label { font-size: var(--text-sm); font-weight: var(--weight-medium); }

.booker__zone select {
  min-width: 0;
  max-width: 100%;
  padding: 0.4rem 0.6rem;
  border: var(--border-hairline) solid var(--color-rule-strong);
  border-radius: var(--radius-sm);
  background-color: var(--color-surface);
  font-size: var(--text-sm);
}

.booker__zone-note {
  flex: 1 1 100%;
  color: var(--color-ink-muted);
  font-size: var(--text-xs);
}

.booker__status {
  padding: var(--space-md) 0;
  color: var(--color-ink-muted);
  font-size: var(--text-sm);
}

.booker__noscript {
  padding: var(--space-sm);
  border: var(--border-hairline) solid var(--color-rule-strong);
  font-size: var(--text-sm);
  color: var(--color-ink-secondary);
}

.booker__day { margin-top: var(--space-lg); }

.booker__day-title {
  padding-bottom: var(--space-2xs);
  border-bottom: var(--border-hairline) solid var(--color-rule);
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-snug);
}

.booker__slots {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 7rem), 1fr));
  gap: var(--space-2xs);
  margin-top: var(--space-sm);
}

.booker__slot {
  padding: 0.6rem 0.5rem;
  border: var(--border-hairline) solid var(--color-rule-strong);
  border-radius: var(--radius-sm);
  background-color: var(--color-surface);
  color: var(--color-ink);
  font-size: var(--text-sm);
  cursor: pointer;
  min-width: 0;
}

.booker__slot:hover { border-color: var(--color-ink); }

.booker__slot--on {
  background-color: var(--color-accent);
  border-color: var(--color-accent-hover);
  /* Ink on the orange, like every other orange element — white fails
     contrast on this accent. */
  color: var(--color-ink);
  font-weight: var(--weight-medium);
}

.booker__form {
  display: grid;
  gap: var(--space-md);
  margin-top: var(--space-xl);
  padding: var(--space-lg) var(--space-md);
  border: var(--border-hairline) solid var(--color-rule);
  background-color: var(--color-surface-sunken);
}

.booker__chosen {
  font-size: var(--text-base);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-snug);
}

.booker__reassure { color: var(--color-ink-muted); font-size: var(--text-xs); }

/* -------------------------------------------------------------- intake --- */

.intake { padding-block: var(--space-section); }

.intake__notice {
  padding: var(--space-sm);
  margin-bottom: var(--space-lg);
  border-left: var(--border-thick) solid var(--color-accent);
  background-color: var(--color-accent-quiet);
  font-size: var(--text-sm);
}

.intake__form { display: grid; gap: var(--space-xl); }

.intake__group {
  display: grid;
  gap: var(--space-md);
  padding: var(--space-lg) var(--space-md);
  border: var(--border-hairline) solid var(--color-rule);
  margin: 0;
}

.intake__group legend {
  padding-inline: var(--space-2xs);
  color: var(--color-ink-faint);
  font-size: var(--text-2xs);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
}

.intake__aside {
  color: var(--color-ink-muted);
  font-size: var(--text-xs);
  max-width: 60ch;
}

.intake__form textarea,
.intake__form select,
.intake__form input[type="text"],
.intake__form input[type="email"] {
  width: 100%;
  max-width: 100%;
  padding: 0.65rem 0.8rem;
  border: var(--border-hairline) solid var(--color-rule-strong);
  border-radius: var(--radius-sm);
  background-color: var(--color-surface);
  font-size: var(--text-base);
  font-family: inherit;
}

.intake__form input[type="file"] {
  width: 100%;
  max-width: 100%;
  font-size: var(--text-sm);
}

.field--check {
  display: flex;
  align-items: center;
  gap: var(--space-2xs);
}

.field--check input { width: auto; }
.field--check label { font-weight: var(--weight-normal); }


/* ------------------------------------------------------- post-book next --- */

.signup__next {
  margin-block: var(--space-lg);
  padding: var(--space-md);
  background: var(--color-accent-quiet);
  border: var(--border-hairline) solid var(--color-rule);
  border-radius: var(--radius-sm);
}

.signup__next-label {
  margin-bottom: var(--space-sm);
  font-family: var(--font-display);
  font-size: var(--text-xs);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
}

.signup__next-note {
  margin-top: var(--space-sm);
  color: var(--color-ink-secondary);
  font-size: var(--text-sm);
}


/* ------------------------------------------------------------ day strip --- */

.booker__daystrip {
  display: flex;
  gap: var(--space-2xs);
  overflow-x: auto;
  padding-bottom: var(--space-2xs);
  margin-bottom: var(--space-md);
  scrollbar-width: thin;
}

.booker__daybtn {
  flex: none;
  padding: var(--space-2xs) var(--space-sm);
  border: var(--border-hairline) solid var(--color-rule-strong);
  border-radius: 999px;
  background: var(--color-surface);
  font-size: var(--text-xs);
  font-weight: var(--weight-semibold);
  white-space: nowrap;
  cursor: pointer;
  transition: border-color var(--transition-fast),
    background-color var(--transition-fast);
}

.booker__daybtn:hover { border-color: var(--color-ink); }

.booker__daybtn--on {
  background: var(--color-ink);
  border-color: var(--color-ink);
  color: var(--color-on-accent);
}


/* --------------------------------------------------------- consult page --- */

.page-hero--consult { padding-bottom: var(--space-lg); }

.consult-grid {
  display: grid;
  gap: var(--space-xl);
  align-items: start;
}

@media (min-width: 62rem) {
  .consult-grid { grid-template-columns: 1fr 26rem; gap: var(--space-2xl); }
  .consult-book { position: sticky; top: var(--space-md); }
}

/* Phone: the card follows the intro, before the long read. */
@media (max-width: 61.99rem) {
  .consult-info { display: contents; }
  .consult-intro { order: 0; }
  .consult-book { order: 1; }
  .consult-info > .prose:not(.consult-intro) { order: 2; }
}

.consult-book {
  padding: var(--space-md);
  background: var(--color-surface-sunken);
  border: var(--border-hairline) solid var(--color-rule);
  border-top: 3px solid var(--color-accent);
  border-radius: var(--radius-sm);
}

.consult-book__title {
  font-size: var(--text-lg);
  margin-bottom: var(--space-2xs);
}

.consult-book .consult-note {
  margin-bottom: var(--space-md);
  color: var(--color-ink-secondary);
  font-size: var(--text-sm);
}

.booker__pick {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  margin-bottom: var(--space-md);
}

.booker__pick label {
  font-size: var(--text-xs);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
}

.booker__date {
  flex: 1;
  padding: 0.5rem 0.7rem;
  border: var(--border-hairline) solid var(--color-rule-strong);
  border-radius: var(--radius-sm);
  background: var(--color-surface);
  font: inherit;
  font-size: var(--text-sm);
}

.booker__empty { display: grid; gap: var(--space-sm); justify-items: start; }

.booker__privacy {
  margin-top: var(--space-2xs);
  color: var(--color-ink-muted);
  font-size: var(--text-xs);
}

/* The one quote that sits with the buy decision. */
.booker__proof {
  margin: var(--space-md) 0 0;
  padding: var(--space-sm) var(--space-md);
  border-left: 3px solid var(--color-accent);
  background: var(--color-surface);
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
}
.booker__proof p { margin: 0; }
.booker__proof footer { margin-top: var(--space-2xs); color: var(--color-ink-muted); font-size: var(--text-xs); }
