/*!
 * Quick Auto Center — /book/ shell (story 1.W2.18).
 * Loaded after site.css, which supplies every token and reused component (.hdr, .btn, .card, .dh, .eyebrow,
 * .field, .control, .form-alert, .ftr). Derived from the approved prototypes (design/prototypes/part-1 and
 * part-2, flow-part-1.md sections 2, 3, 6 and 7; flow-part-2.md section 3.3).
 * Rules: only var(--*) tokens (or calc() over them); no background gradient, blur, glass, emoji,
 * Unicode glyph icons or pill shape outside .tag; targets >= 44px; inputs keep --type-body (16px);
 * focus is the site's 2px --focus-ring.
 * Step contents live in book-vehicle / book-services / book-datetime / book-contact / book-summary /
 * book-result / book-price-loading.css, owned by their stories.
 */

/* Header — ADAPT of .hdr.is-solid: not sticky, no nav, logo + call only */
.hdr--static{position:relative;}
.bk-hdr__actions{margin-left:auto;display:flex;align-items:center;gap:var(--space-3);}
@media (max-width:639px){ .bk-hdr__num{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;} }

/* Page layout: content column + #summary column on desktop */
.bk{padding:clamp(var(--space-4),3vw,var(--space-6)) 0 var(--space-10);}
.bk__top{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:clamp(var(--space-4),3vw,var(--space-6));}
.bk__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-8);align-items:start;}
.bk__main{min-width:0;}
.bk-page:not(.bk-ready) .bk__aside{display:none;}
@media (min-width:1024px){
  .bk__grid{grid-template-columns:minmax(0,2fr) minmax(0,1fr);}
  .bk__aside{position:sticky;top:var(--space-4);}
}
@media (max-width:1023px){
  .bk__aside{display:none;}
  .bk-ready .bk{padding-bottom:calc(var(--space-20) + env(safe-area-inset-bottom));}
  .bk-nav [data-continue]{display:none;}
  .bk-ready .ftr__bar-spacer{display:block;}
}
.bk-noscript{margin-bottom:var(--space-4);}

/* Density layer on reused site components, booking page only (adjustment 1) */
.bk .card{padding:var(--space-4);}
.bk .field{gap:var(--space-1);}
.bk .control{min-height:44px;padding-top:var(--space-2);padding-bottom:var(--space-2);}
.bk .step__head .dh--3{font-size:var(--type-title);}
@media (min-width:1024px){ .bk .step__head .dh--3{font-size:var(--type-display-4);} }
.bk h2[tabindex="-1"]:focus{outline:none;}
.bk h2[tabindex="-1"]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;}

/* Progress indicator — CREATE from .booking__dashes + CarouselDots: one dash per step (4), text label.
   Done = Royal dash + Lucide check + button; current = Royal dash + heading colour + aria-current; to do = Bdazzled 200. */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2);}
.steps__item{min-width:0;}
.steps__btn,.steps__static{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-1);width:100%;padding:var(--space-1) 0;margin:0;
  background:none;border:0;text-align:left;font-family:var(--font-text);color:var(--text-muted);}
.steps__btn{min-height:44px;cursor:pointer;border-radius:var(--radius-sm);}
.steps__bar{display:block;height:var(--space-1);background:var(--qac-bdazzled-200);transition:background var(--duration-base) var(--ease-standard);}
.steps__label{display:flex;align-items:center;gap:var(--space-1);font-weight:var(--weight-bold);font-size:var(--type-body-sm);line-height:var(--leading-tight);}
.steps__num{font-variant-numeric:tabular-nums;}
.is-current .steps__bar,.is-done .steps__bar{background:var(--action-primary);}
.is-current .steps__label{color:var(--text-heading);}
.is-done .steps__label{color:var(--action-primary);}
.steps__btn:hover .steps__text{text-decoration:underline;text-underline-offset:3px;}
.steps__caption{display:none;margin:0;font-weight:var(--weight-bold);font-size:var(--type-body-sm);color:var(--text-heading);}
@media (max-width:639px){
  .bk-ready .steps__text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
  .bk-ready .steps__caption{display:block;}
}

/* Step panel — CREATE. Entrance slides from the left (directional, never bounce/scale); none under reduced motion. */
.step{display:flex;flex-direction:column;gap:var(--space-4);}
.step__head{display:flex;flex-direction:column;gap:var(--space-1);}
.step__body{display:flex;flex-direction:column;gap:var(--space-4);min-width:0;}
.step__lede{margin:0;max-width:62ch;font-size:var(--type-body-sm);}
.step--enter{animation:qac-step-in var(--duration-slow) var(--ease-out);}
@keyframes qac-step-in{from{opacity:0;transform:translateX(calc(-1 * var(--space-4)));}to{opacity:1;transform:none;}}
@media (prefers-reduced-motion: reduce){ .step--enter{animation:none;} }
.bk-nav{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-6);padding-top:var(--space-4);border-top:var(--border-width) solid var(--border-hairline);}

/* Final screen (not a step): no summary, no progress, no Back/Continue (pedido-nao-editavel-apos-envio) */
.bk-result{display:flex;flex-direction:column;gap:var(--space-4);}
.is-final .bk__top nav{display:none;}
.bk__grid.is-solo{grid-template-columns:minmax(0,1fr);}
.bk__grid.is-solo .bk__aside{display:none;}
.bk__grid.is-solo .bk__main{max-width:calc(var(--space-32) * 5);}

/* Shared components used by several steps */
/* Notice — ADAPT of .form-alert: info/warning backgrounds from --status-*-bg */
.notice{display:flex;align-items:flex-start;gap:var(--space-2);margin:0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);
  background:var(--status-info-bg);color:var(--text-heading);font-size:var(--type-body-sm);line-height:var(--leading-body);}
.notice--warn{background:var(--status-warning-bg);}
.notice__ic{flex:none;display:flex;padding-top:calc(var(--space-1) / 2);color:var(--status-info);}
.notice--warn .notice__ic{color:var(--text-heading);}
.notice__body{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1);min-width:0;}
.notice__body p{margin:0;}
.notice a{display:inline-block;padding-block:var(--space-3);font-weight:var(--weight-bold);}
.form-alert:focus{outline:none;}
.form-alert:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;}

/* LinkButton — ADAPT of .booking__edit: text button, 44px target */
.linkbtn{display:inline-flex;align-items:center;gap:var(--space-1);min-height:44px;padding:0;background:none;border:0;cursor:pointer;
  font-family:var(--font-text);font-size:var(--type-body-sm);font-weight:var(--weight-bold);color:var(--text-link);text-decoration:underline;text-underline-offset:3px;}
.linkbtn:hover{color:var(--text-link-hover);}

/* QuoteLoader — CREATE from CarouselDots dashes: three dashes fill left to right. Static under reduced motion. */
.qload{display:inline-flex;align-items:center;gap:var(--space-1);flex:none;}
.qload i{display:block;width:var(--space-3);height:var(--space-1);background:var(--qac-bdazzled-200);
  animation:qac-qload calc(var(--duration-slow) * 4) var(--ease-standard) infinite;}
.qload i:nth-child(2){animation-delay:var(--duration-fast);}
.qload i:nth-child(3){animation-delay:calc(var(--duration-fast) * 2);}
@keyframes qac-qload{0%,100%{background:var(--qac-bdazzled-200);}40%{background:var(--action-primary);}}
@media (prefers-reduced-motion: reduce){ .qload i{animation:none;} .qload i:first-child{background:var(--action-primary);} }

/* Summary bar container (phone and tablet, < 1024px) — ADAPT of .mbar on the muted surface with the Royal keyline.
   Its contents (toggle, sheet) are drawn by summary.js / book-summary.css (story 1.W2.23). */
.sumbar{display:none;}
@media (max-width:1023px){
  .bk-ready .sumbar{display:block;position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--surface-muted);border-top:var(--rule-accent) solid var(--action-primary);
    box-shadow:var(--shadow-lg);padding:var(--space-2) var(--space-3) calc(var(--space-2) + env(safe-area-inset-bottom));}
  .bk-ready .sumbar[hidden]{display:none;}
}
.sumbar__row{display:flex;align-items:stretch;gap:var(--space-2);}
.sumbar__slot{flex:1 1 auto;min-width:0;display:flex;}
.sumbar__slot:empty{display:none;}
.sumbar__slot:empty + .btn{flex:1 1 auto;}
.sumbar__row .btn{flex:none;}
