/* Scoped overrides for the public service request form. */
.request-hero { padding: 34px 0 28px; background: var(--surface); }
.request-hero .kicker { margin-bottom: 8px; font-size: .7rem; }
.request-hero h1 { max-width: none; margin: 0 0 12px; font-size: clamp(1.75rem,3vw,2.4rem); line-height: 1.15; letter-spacing: -.035em; }
.request-hero .hero-lead { max-width: 680px; margin-bottom: 0; font-size: .95rem; line-height: 1.6; }
.request-assurance-list { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-top: 16px; font-size: .8rem; }
.request-assurance-list li { padding-left: 20px; }
.request-form-section { padding: 28px 0 48px; background: var(--paper); }
.request-layout { grid-template-columns: minmax(0,1fr) 290px; gap: 24px; }
.public-request-form { min-width: 0; padding: 28px; border-radius: 16px; box-shadow: none; }
.request-step-progress { margin-bottom: 20px; }
.request-step-progress button { min-height: 48px; border-radius: 8px; }
.request-summary-card { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: center; gap: 16px; margin-bottom: 24px; padding: 16px 18px; border-radius: 10px; background: var(--surface-soft); box-shadow: none; }
.request-summary-card .kicker { margin: 0 0 6px; font-size: .66rem; }
.request-summary-card [data-estimated-total] { margin: 0; font-size: 1.15rem; line-height: 1.35; letter-spacing: -.02em; }
.request-summary-card [data-estimated-note] { margin: 0; font-size: .76rem; line-height: 1.5; }
.public-request-form legend { margin-bottom: 16px; font-size: 1.15rem; }
.request-step-intro { margin: -6px 0 18px; font-size: .8rem; }
.request-items-fieldset { gap: 16px; }
.request-device-card { padding: 20px; border-radius: 12px; background: #fff; }
.request-device-heading { margin-bottom: 14px; }
.request-device-heading .kicker { margin-bottom: 0; font-size: .66rem; }
.request-device-selection { margin-bottom: 18px; border-radius: 8px; }
.request-device-selection > summary { min-height: 68px; padding: 12px 14px; }
.request-device-selection > summary strong { font-size: 1rem; }
.public-form-grid > .public-form-field { margin-bottom: 0; }
.public-form-field textarea { min-height: 104px; resize: vertical; }
.request-repair-selection { margin: 0 0 20px; border: 1px solid var(--line); border-radius: 8px; }
.request-repair-selection > summary, .request-repair-category > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; padding: 12px 14px; list-style: none; cursor: pointer; }
.request-repair-selection > summary::-webkit-details-marker, .request-repair-category > summary::-webkit-details-marker { display: none; }
.request-repair-selection > summary { flex-wrap: wrap; color: var(--accent-dark); font-size: .82rem; font-weight: 750; }
.request-repair-selection > summary > span:first-child::before, .request-repair-category > summary > span::before { display: inline-block; width: 16px; margin-right: 6px; content: "+"; }
.request-repair-selection[open] > summary > span:first-child::before, .request-repair-category[open] > summary > span::before { content: "−"; }
.request-repair-selection > summary small { color: var(--muted); font-size: .73rem; font-weight: 500; }
.request-selection-count { color: var(--muted); font-size: .7rem; font-weight: 600; }
.request-repair-selection > .public-form-field { padding: 0 14px 14px; margin: 0; }
.request-repair-hint { margin: 0 0 12px; font-size: .76rem; line-height: 1.5; }
.request-repair-options { display: grid; gap: 8px; }
.request-repair-category { min-width: 0; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.request-repair-category > summary { background: var(--surface-soft); font-size: .8rem; font-weight: 750; }
.request-repair-category > summary small { flex-shrink: 0; color: var(--muted); font-size: .68rem; font-weight: 500; }
.request-repair-category > .request-repair-choice-list { grid-template-columns: 1fr; padding: 10px; }
.request-repair-choice-list .request-repair-choice { display: flex; min-height: 48px; padding: 12px; margin: 0; font-weight: 500; }
.request-repair-choice input { flex: 0 0 18px; width: 18px; height: 18px; accent-color: var(--accent-dark); }
.request-repair-selection summary:focus-visible, .request-next-steps summary:focus-visible { outline: 3px solid var(--accent-dark); outline-offset: -3px; }
.request-side-panel { top: 100px; }
.request-next-steps { padding: 20px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.request-next-steps > summary { min-height: 44px; color: var(--ink); font-size: .95rem; font-weight: 750; cursor: pointer; }
.request-next-steps ol { margin-top: 14px; gap: 14px; }
.request-next-steps p { margin: 18px 0 0; padding-top: 14px; border-top: 1px solid var(--line); font-size: .75rem; }
.delivery-choice-list { gap: 12px; }
.delivery-choice { padding: 16px; border-radius: 10px; }
.request-step-actions .request-submit-bar { flex-direction: column; align-items: flex-end; gap: 16px; }
.request-submit-bar > div { max-width: 370px; }
.request-submit-bar strong { font-size: .76rem; }
.request-step-actions-split { display: flex; align-items: flex-end; }
.request-step-actions-split > [data-step-back] { display: none; }
.is-stepped .request-step-actions-split > [data-step-back] { display: inline-flex; }
@media(max-width:1000px){
  .request-layout { grid-template-columns: minmax(0,1fr); }
  .request-side-panel { position: static; }
  .request-next-steps { padding: 16px 20px; }
}
@media(max-width:760px){
  .request-hero { padding: 24px 0 20px; }
  .request-hero .hero-lead { font-size: .86rem; }
  .request-assurance-list { gap: 6px 16px; font-size: .74rem; }
  .request-form-section { padding-top: 16px; }
  .public-request-form { padding: 18px 14px; border-radius: 12px; }
  .request-step-progress ol { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; }
  .request-step-progress li:not(:has(button[aria-current="step"])) { display: block; }
  .request-step-progress button { gap: 6px; padding: 8px; font-size: .66rem; line-height: 1.4; }
  .request-step-progress button span { flex-basis: 22px; width: 22px; height: 22px; }
  .request-summary-card { grid-template-columns: 1fr; gap: 6px; padding: 12px; margin-bottom: 20px; }
  .request-summary-card [data-estimated-total] { font-size: 1rem; }
  .request-summary-card [data-estimated-note] { font-size: .72rem; }
  .request-device-card { padding: 14px; }
  .request-device-heading { flex-direction: row; gap: 8px; }
  .request-device-selection > summary { flex-direction: row; align-items: center; gap: 10px; }
  .request-device-selection > summary > span:first-child { min-width: 0; }
  .request-device-selection > summary strong { overflow-wrap: anywhere; }
  .request-device-change { align-self: auto; font-size: .68rem; }
  .request-device-selectors { padding: 14px !important; }
  .public-phone-group { grid-template-columns: 150px minmax(0,1fr); gap: 10px; }
  .public-phone-group select, .public-phone-group input { padding-inline: 10px; }
  .request-add-device { width: 100%; font-size: .8rem; }
  .request-step-actions { flex-direction: column; }
  .request-step-actions-split { flex-direction: column-reverse; align-items: stretch; }
  .request-step-actions .request-submit-bar { align-items: stretch; }
  .request-submit-bar > div { max-width: none; }
  .request-repair-category > summary { gap: 8px; padding: 12px; }
}
