/* Direction 2a request and booking pages: editorial openings, generous
   paper space, warm utility panels, and simple form controls. */
.request-page {
  --request-gutter: clamp(1.25rem, 4.5vw, 4rem);
  --request-section-gap: clamp(2rem, 3.5vw, 3.25rem);
  --request-content-gap: clamp(0.8rem, 1.4vw, 1.1rem);
  --request-panel-padding: clamp(1.25rem, 2.5vw, 2.25rem);
  --request-warm-paper: color-mix(in srgb, var(--linen) 32%, var(--paper));
  --request-light-sand: color-mix(in srgb, var(--straw) 38%, var(--paper));
  --request-muted-sage: color-mix(in srgb, var(--sage) 52%, var(--paper));
  --request-pale-clay: color-mix(in srgb, var(--clay) 7%, var(--paper));
  background: var(--paper);
  color: var(--ink);
  overflow: clip;
}

.request-page h1,
.request-page h2,
.request-page h3 {
  color: var(--moss);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  letter-spacing: -0.025em;
}

.request-page h1 { font-size: clamp(2.7rem, 5.2vw, 4.8rem); line-height: 1.02; margin: 0; text-wrap: balance; }
.request-page h2 { font-size: clamp(1.65rem, 2.5vw, 2.35rem); line-height: 1.12; margin: 0; }
.request-page h3 { font-size: 1.35rem; margin: 0; }
.request-page p { max-width: none; }

.request-kicker {
  color: var(--clay);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  margin: 0 0 0.9rem;
  text-transform: uppercase;
}

.request-editorial-intro {
  align-items: end;
  background: var(--paper);
  display: grid;
  gap: clamp(1.5rem, 4vw, 3.5rem);
  grid-template-columns: minmax(0, 1.45fr) minmax(17rem, 0.8fr);
  margin-inline: auto;
  max-width: 90rem;
  padding: clamp(2.5rem, 4.5vw, 4.5rem) var(--request-gutter) var(--request-section-gap);
}
.request-editorial-intro > * { min-width: 0; }
.request-heading-group { display: grid; gap: 0.6rem; }
.request-heading-group .request-kicker { margin: 0; }
.request-intro-details { display: grid; gap: var(--request-content-gap); }
.request-intro-details > * { margin: 0; }
.request-intro-details .request-call-details { margin-top: 0.2rem; }

.request-intro-copy {
  color: color-mix(in srgb, var(--ink) 88%, var(--moss));
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.15rem, 1.6vw, 1.45rem);
  line-height: 1.45;
  margin: 0;
}

.request-action,
.request-form-actions button {
  align-items: center;
  background: var(--garden) !important;
  border: 1px solid var(--garden);
  border-radius: 0.2rem !important;
  color: #fff;
  display: inline-flex;
  font-family: inherit;
  font-size: 0.74rem;
  font-weight: 700;
  justify-content: center;
  letter-spacing: 0.09em;
  min-height: 3rem;
  padding: 0.75rem 1.25rem;
  text-decoration: none;
  text-transform: uppercase;
}

.request-action:hover,
.request-action:focus-visible,
.request-form-actions button:hover:not(:disabled),
.request-form-actions button:focus-visible:not(:disabled) { background: var(--clay) !important; border-color: var(--clay); color: #fff; }
.request-action-small { min-height: 2.75rem; }

.request-call-details {
  border-top: 1px solid color-mix(in srgb, var(--moss) 32%, transparent);
  display: grid;
  gap: 0.45rem 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 1.5rem 0 0;
  padding-top: 1rem;
}
.request-call-details div { display: grid; gap: 0.15rem; }
.request-call-details dt { color: var(--muted); font-size: 0.76rem; }
.request-call-details dd { font-size: 0.92rem; margin: 0; }
.request-route-link { font-size: 0.86rem; margin: 1rem 0 0; }

.request-booking-guidance {
  display: grid;
  gap: 0.8rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0 auto;
  max-width: 90rem;
  padding: 0 var(--request-gutter);
}
.request-guidance-card { min-height: 9rem; padding: clamp(1.15rem, 2vw, 1.7rem); }
.request-guidance-sage { background: var(--request-muted-sage); }
.request-guidance-straw { background: var(--request-light-sand); }
.request-guidance-card p:last-child { font-size: 0.93rem; line-height: 1.55; margin-bottom: 0; }
.request-guidance-card p a { display: inline-block; margin: 0.3rem 1.25rem 0.3rem 0; }

.request-calendar-panel {
  background: var(--paper);
  margin: var(--request-section-gap) auto 0;
  max-width: 90rem;
  padding: 0 var(--request-gutter);
}
.request-calendar-panel:last-child { margin-bottom: var(--request-section-gap); }
.request-calendar-heading { align-items: end; display: flex; flex-wrap: wrap; gap: 1rem 2rem; justify-content: space-between; margin-bottom: 1.25rem; }
.request-booking-frame-wrap { background: var(--paper); border: 1px solid color-mix(in srgb, var(--moss) 25%, transparent); min-height: 37.5rem; padding: clamp(0.6rem, 1.25vw, 1rem); }
.request-booking-frame { background: #fff; border: 0; border-radius: 0; display: block; min-height: 37.5rem; width: 100%; }
.request-booking-fallback { color: var(--muted); font-size: 0.85rem; margin: 1rem 0 0; }

.request-flow-preview { background: var(--request-warm-paper); border: 1px solid color-mix(in srgb, var(--moss) 25%, transparent); }
.request-flow-preview > summary,
.request-state-reference > summary { cursor: pointer; font-weight: 700; padding: 1.1rem 1.25rem; }
.request-flow-preview-body { border-top: 1px solid color-mix(in srgb, var(--moss) 20%, transparent); padding: clamp(1rem, 2vw, 1.6rem); }
.request-booking-provider-preview { background: var(--request-light-sand); border-left: 0.25rem solid var(--clay); margin-top: 0.75rem; padding: clamp(1rem, 2vw, 1.5rem); }
.request-booking-provider-preview h2 { margin-bottom: 0.7rem; }
.request-action-disabled { background: var(--muted) !important; border-color: var(--muted); cursor: not-allowed; opacity: 0.75; }

.request-service-feature {
  align-items: stretch;
  background: var(--request-light-sand);
  display: grid;
  grid-template-columns: minmax(16rem, 0.85fr) minmax(20rem, 1.15fr);
  margin: 0 auto var(--request-section-gap);
  max-width: 90rem;
}
.request-service-copy { align-content: center; display: grid; justify-items: start; padding: clamp(1.5rem, 3.5vw, 3.25rem); }
.request-service-copy h2 { margin-bottom: 0.75rem; }
.request-service-copy p:not(.request-kicker) { margin: 0 0 1.35rem; }
.request-service-image-link { display: block; min-height: 20rem; }
.request-service-image { height: 100%; object-fit: cover; width: 100%; }

.request-support-layout {
  align-items: start;
  background: var(--request-muted-sage);
  display: grid;
  gap: clamp(1.25rem, 2.5vw, 2.5rem);
  grid-template-columns: minmax(0, 1.7fr) minmax(16rem, 0.7fr);
  margin: 0 auto var(--request-section-gap);
  max-width: 90rem;
  padding: 0 var(--request-gutter);
}
.request-support-panel { background: var(--request-warm-paper); border: 1px solid color-mix(in srgb, var(--moss) 27%, transparent); padding: var(--request-panel-padding); }
.request-support-panel > h2 { margin-bottom: 0.75rem; }
.request-support-panel > p:not(.request-kicker) { line-height: 1.55; margin: 0; }
.request-support-panel > .request-kicker { margin-bottom: 0.65rem; }
.request-support-rail { display: grid; gap: 0.9rem; }
.request-support-rail > div { background: var(--request-pale-clay); border: 1px solid color-mix(in srgb, var(--moss) 26%, transparent); padding: 1.1rem; }
.request-support-rail > div p:last-child { font-size: 0.9rem; line-height: 1.55; margin-bottom: 0; }
.request-support-rail .request-support-tip { background: var(--request-light-sand); border: 0; }
.request-support-image { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.request-pending-note { background: color-mix(in srgb, var(--clay) 13%, var(--cream)); border-left: 0.25rem solid var(--clay); line-height: 1.5; margin: 1rem 0; padding: 0.85rem 1rem; }

.request-field-grid { display: grid; gap: 0.9rem 1.1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 1.25rem 0; }
.request-form { display: grid; gap: 1.1rem; margin-top: 1.25rem; }
.request-form .request-field-grid { margin: 0; }
.request-support-panel > .request-field-grid { margin-bottom: 1.15rem; }
.request-field-grid label { align-items: baseline; column-gap: 0.35rem; display: grid; font-size: 0.83rem; font-weight: 700; grid-template-columns: max-content minmax(0, 1fr); row-gap: 0.45rem; }
.request-field-grid > label > span { color: var(--clay); font-size: 0.73rem; font-weight: 400; }
.request-field-wide { grid-column: 1 / -1; }
.request-field-grid input,
.request-field-grid select,
.request-field-grid textarea { background: #fff; border: 1px solid color-mix(in srgb, var(--moss) 48%, transparent); border-radius: 0.2rem; color: var(--ink); font: inherit; grid-column: 1 / -1; min-height: 2.9rem; padding: 0.7rem 0.75rem; }
.request-field-grid textarea { min-height: 7rem; resize: vertical; }
.request-field-grid input:focus,
.request-field-grid select:focus,
.request-field-grid textarea:focus { background: #fff; border-color: var(--ink); outline: 2px solid var(--ink); outline-offset: 2px; }
.request-field-grid input:disabled,
.request-field-grid select:disabled,
.request-field-grid textarea:disabled { background: var(--linen); color: var(--muted); }

.request-category-fieldset { border: 0; grid-column: 1 / -1; margin: 0; min-inline-size: 0; padding: 0; }
.request-category-fieldset legend { font-size: 0.83rem; font-weight: 700; margin-bottom: 0.2rem; padding: 0; }
.request-category-fieldset legend span { color: var(--clay); font-size: 0.73rem; font-weight: 400; }
.request-category-hint { color: var(--muted); font-size: 0.8rem; line-height: 1.4; margin: 0 0 0.55rem; }
.request-category-grid { display: grid; gap: 0.45rem; grid-template-columns: minmax(0, 1fr); max-width: 48rem; }
.request-category-card { align-items: center; background: #fff; border: 1px solid color-mix(in srgb, var(--moss) 40%, transparent); cursor: pointer; display: grid; gap: 0.75rem; grid-template-columns: 1.2rem minmax(0, 1fr); min-height: 0; padding: 0.7rem 0.85rem; }
.request-category-card:hover:not(:has(input:disabled)):not(:has(input:checked)) { background: color-mix(in srgb, var(--sage) 48%, #fff); border-color: var(--moss); }
.request-category-card:has(input:checked) { background: var(--sage); border: 2px solid var(--moss); padding: calc(0.7rem - 1px) calc(0.85rem - 1px); }
.request-category-card:has(input:focus-visible) { outline: 0.2rem solid var(--focus); outline-offset: 0.2rem; }
.request-category-card:has(input[aria-invalid="true"]) { border-color: #7a2e1d; }
.request-category-card:has(input:disabled) { cursor: wait; opacity: 0.68; }
.request-category-card input.request-category-radio { accent-color: var(--moss); appearance: auto; background: initial; border: initial; border-radius: 50%; block-size: 1.1rem; color: initial; font: initial; inline-size: 1.1rem; margin: 0; min-height: 0; padding: 0; }
.request-category-card input.request-category-radio:focus { background: initial; border: initial; outline: 0; }
.request-category-copy { color: var(--ink); display: grid; gap: 0.1rem; min-width: 0; }
.request-category-card-title { color: var(--ink); font-size: 0.9rem; font-weight: 700; }
.request-category-card-description { color: var(--muted); font-size: 0.78rem; font-weight: 400; line-height: 1.35; }
.request-field-error { color: #7a2e1d; font-size: 0.8rem; font-weight: 400; grid-column: 1 / -1; margin-top: 0.25rem; }
.request-form-status { border-top: 1px solid color-mix(in srgb, var(--moss) 22%, transparent); color: var(--muted); font-size: 0.86rem; margin: 0; padding-top: 0.75rem; }
.request-form-status p { margin: 0; }
.request-form-status[data-state="ready"] { border: 0; clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden; padding: 0; position: absolute; white-space: nowrap; width: 1px; }
.request-form-status[data-state="error"] { color: #7a2e1d; }
.request-form-actions { display: flex; flex-wrap: wrap; gap: 0.85rem; margin: 0; }
.request-form-actions button:disabled { cursor: wait; opacity: 0.65; }
.request-secondary-action { background: transparent !important; border-color: var(--clay) !important; color: var(--clay) !important; }
.request-form [hidden] { display: none !important; }
.request-form-success { background: var(--request-muted-sage); display: grid; gap: 0.75rem; margin: 0; padding: var(--request-panel-padding); }
.request-form-success p { margin: 0; }
.request-check { align-items: center; background: var(--garden); border-radius: 50%; display: inline-flex; height: 2.7rem; justify-content: center; margin: 0; position: relative; width: 2.7rem; }
.request-check::after { border-bottom: 0.18rem solid #fff; border-right: 0.18rem solid #fff; content: ""; height: 0.78rem; margin-top: -0.16rem; transform: rotate(45deg); width: 0.4rem; }

.request-state-reference { border-top: 1px solid color-mix(in srgb, var(--moss) 22%, transparent); margin-top: 1.25rem; }
.request-state-grid { display: grid; gap: 0.75rem; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 0 0 1rem; }
.request-state-grid section { background: var(--paper); padding: 1rem; }
.request-state-grid h3 { font-family: inherit; font-size: 0.8rem; font-weight: 700; letter-spacing: 0.08em; margin-bottom: 0.35rem; text-transform: uppercase; }
.request-state-grid p { font-size: 0.8rem; margin: 0; }

.request-next-steps { background: var(--request-muted-sage); margin-top: var(--request-section-gap); padding: clamp(1.75rem, 3.5vw, 3rem) max(var(--request-gutter), calc((100vw - 80rem) / 2)); }
.request-next-steps > h2 { margin-bottom: 1rem; }
.request-next-steps ol { display: grid; gap: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); list-style: none; margin: 0; padding: 0; }
.request-next-steps li { background: var(--cream); border: 1px solid color-mix(in srgb, var(--garden) 38%, transparent); line-height: 1.5; padding: 0.95rem; }
.request-next-steps li span { color: var(--clay); display: inline; font-family: Georgia, "Times New Roman", serif; font-size: 1.3rem; margin-right: 0.35rem; }

.request-contact-details { background: var(--request-pale-clay); border-top: 1px solid color-mix(in srgb, var(--moss) 22%, transparent); margin: var(--request-section-gap) auto; max-width: 90rem; padding: 1.35rem var(--request-gutter) 0; }
.request-contact-details h2 { font-size: 1.6rem; margin-bottom: 0.75rem; }

.request-result-layout { align-items: start; display: grid; gap: clamp(1.5rem, 4vw, 3.5rem); grid-template-columns: minmax(0, 1.4fr) minmax(16rem, 0.6fr); margin: 0 auto; max-width: 80rem; padding: clamp(2.75rem, 5vw, 4.5rem) var(--request-gutter); }
.request-result-page { background: var(--request-light-sand); }
.request-result-copy { display: grid; gap: var(--request-content-gap); max-width: 42rem; }
.request-result-layout h1 { margin: 0; }
.request-result-copy > p:not(.request-kicker) { line-height: 1.6; margin: 0; }
.request-result-copy .request-kicker { margin: 0; }
.request-result-copy .request-action { justify-self: start; margin-top: 0.35rem; }
.request-result-layout > aside { background: var(--request-muted-sage); display: grid; gap: 0.85rem; padding: var(--request-panel-padding); }
.request-result-layout > aside p { margin: 0; }

@media (max-width: 50rem) {
  .request-editorial-intro,
  .request-support-layout,
  .request-service-feature,
  .request-result-layout { grid-template-columns: 1fr; }
  .request-service-image-link { min-height: 17rem; order: -1; }
  .request-support-rail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .request-support-image { grid-column: 1 / -1; max-height: 22rem; }
}

@media (max-width: 38rem) {
  .request-page {
    --request-section-gap: 2rem;
    --request-panel-padding: 1.2rem;
  }
  .request-editorial-intro { gap: 1.15rem; padding-block: 2.4rem 2rem; }
  .request-page h1 { font-size: clamp(2.4rem, 12vw, 3.25rem); }
  .request-booking-guidance,
  .request-field-grid,
  .request-category-grid,
  .request-next-steps ol,
  .request-state-grid,
  .request-support-rail { grid-template-columns: 1fr; }
  .request-field-wide { grid-column: 1; }
  .request-calendar-heading { align-items: start; flex-direction: column; }
  .request-calendar-heading .request-action { width: 100%; }
  .request-booking-frame-wrap,
  .request-booking-frame { min-height: 32rem; }
  .request-call-details { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .request-page *, .request-page *::before, .request-page *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; }
}
