.checkout-flow [hidden]{display:none!important}
.checkout-flow{overflow-x:clip}
.checkout-flow .checkout-heading{position:relative;padding:20px 0 30px}
.checkout-flow .checkout-heading h1{font-size:clamp(34px,6vw,64px);overflow-wrap:anywhere}
.checkout-close{position:absolute;right:0;top:20px;display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);font-size:24px}
.checkout-intro{max-width:560px;margin:0;color:var(--ink-soft);font-size:15px}
.checkout-progress ol{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 14px;padding:0;list-style:none}
.checkout-progress-btn{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:8px 12px;border:1px solid var(--line);border-top:3px solid var(--line);background:var(--cream);color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;text-align:left}
.checkout-progress-num{display:grid;place-items:center;flex:0 0 auto;width:24px;height:24px;border:1px solid currentColor;border-radius:50%;font-size:11px}
.checkout-progress-btn[aria-current="step"]{border-top-color:var(--ink);color:var(--ink)}
.checkout-progress-btn[aria-current="step"] .checkout-progress-num{background:var(--ink);border-color:var(--ink);color:var(--cream)}
.checkout-step-label{margin:0 0 36px;color:var(--rust);font-size:11px;letter-spacing:.14em;text-transform:uppercase}
.checkout-flow .checkout-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.75fr);gap:0}
.checkout-panel h2{margin:0 0 8px;font-size:clamp(28px,4vw,40px);letter-spacing:-.03em;outline:0}
.checkout-panel h2:focus-visible{outline:2px solid var(--ink);outline-offset:6px}
.checkout-panel-note{margin:0 0 24px;color:var(--muted);font-size:13px}
.checkout-flow .checkout-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px;margin:0;padding:0!important;border:0}
.checkout-flow .checkout-field{display:block;min-width:0}
.checkout-field-wide{grid-column:1/-1}
.checkout-field-label{display:block;margin-bottom:6px;color:var(--ink-soft);font-size:10px;letter-spacing:.09em;text-transform:uppercase}
.checkout-flow .checkout-field-label{font-size:13px!important}
.checkout-flow .checkout-field-label .checkout-optional{color:var(--muted)}
.checkout-flow .checkout-heading .checkout-intro{margin:12px auto 0;line-height:1.6}
.checkout-optional{color:var(--muted);text-transform:none;letter-spacing:0}
.checkout-control{display:flex;align-items:center;gap:8px;min-height:48px;padding:0 12px;border:1px solid var(--line);background:var(--cream);transition:border-color .2s}
.checkout-control:focus-within{border-color:var(--ink);outline:2px solid var(--ink);outline-offset:2px}
.checkout-control input:not([type=checkbox]),.checkout-control select{flex:1;min-width:0;width:100%;min-height:46px;padding:0;border:0;outline:0;background:transparent;color:var(--ink);font-size:16px}
.checkout-flow .checkout-control input:not([type=checkbox]),.checkout-flow .checkout-control select{font:16px/1.4 var(--sans)!important;padding:8px!important;min-height:48px}
.checkout-flow .checkout-phone-prefix{padding-left:0;font-size:16px}
.checkout-flow .checkout-field-province .checkout-control select{min-height:48px;border:0!important;padding:8px!important}
.checkout-phone-prefix{color:var(--ink-soft);font-weight:700;font-size:14px}
.checkout-flow .field-error{min-height:16px;padding-top:4px;color:#a3180f;font-size:12px;line-height:1.35}
.checkout-field.has-error .checkout-control,.checkout-control[aria-invalid="true"],.checkout-field:has([aria-invalid="true"]) .checkout-control{border-color:#a3180f}
.review-block{border-top:1px solid var(--line);padding:16px 0}
.review-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.review-head h3{margin:0;font:normal 20px var(--display)}
.review-body{margin-top:8px;color:var(--ink-soft);font-size:14px;overflow-wrap:anywhere}
.checkout-edit{min-height:44px;padding:0 4px;border:0;background:none;color:var(--rust);font-size:11px;letter-spacing:.1em;text-transform:uppercase;text-decoration:underline;text-underline-offset:4px}
.review-total{display:flex;justify-content:space-between;align-items:baseline;padding:16px 0;border-top:1px solid var(--ink);font:18px var(--display)}
.review-total strong{font-family:var(--sans);font-size:18px}
.checkout-confirm .checkout-control{align-items:flex-start;padding:14px}
.checkout-confirm input{flex:0 0 auto;width:22px;height:22px;margin:1px 0 0;accent-color:var(--ink)}
.checkout-flow .checkout-confirm input{min-height:22px;padding:0!important;margin:2px 0 0!important}
.checkout-flow .checkout-confirm .checkout-control{align-items:flex-start;gap:12px}
.checkout-confirm label{font-size:13px;line-height:1.5}
.checkout-flow .checkout-error{padding:12px 14px;border:1px solid #a3180f;background:#fbeeec;color:#7d120b;font-size:13px}
.checkout-actions{display:flex;gap:10px;margin-top:24px}
.checkout-actions .button{flex:1;min-height:52px;justify-content:center;gap:12px}
.checkout-actions .checkout-back{flex:0 0 auto;min-width:110px}
.checkout-actions .checkout-submit{text-align:center}
.checkout-flow .button:focus-visible,.checkout-flow a:focus-visible,.checkout-flow button:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.checkout-empty-hint{margin:16px 0 0;color:var(--muted);font-size:12px}
.checkout-empty-hint a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.checkout-flow .summary-sticky{padding:24px}
.checkout-flow .checkout-item{min-width:0}
.checkout-flow .checkout-item-copy{min-width:0;overflow-wrap:anywhere}
.review-item{display:flex;justify-content:space-between;gap:16px;margin:12px 0}
.review-item small{display:block;color:var(--muted)}
.review-item strong{white-space:nowrap}
.receipt-item{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.receipt-item span{color:var(--muted);font-size:13px}
/* Thank you */
.thankyou-card{max-width:760px;margin:20px auto 0;padding:clamp(32px,6vw,72px) clamp(20px,5vw,56px);background:var(--paper-deep);text-align:center}
.thankyou-card h1{margin:14px 0;font:normal clamp(32px,6vw,56px)/1 var(--display);letter-spacing:-.04em;outline:0;overflow-wrap:anywhere}
.thankyou-lede{max-width:560px;margin:0 auto 28px;color:var(--ink-soft);font-size:15px}
.receipt-list{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:0 0 28px;border:1px solid var(--line);background:var(--line);text-align:left}
.receipt-list div{padding:14px 16px;background:var(--cream);min-width:0}
.receipt-list dt{color:var(--muted);font-size:10px;letter-spacing:.1em;text-transform:uppercase}
.receipt-list dd{margin:4px 0 0;font-weight:700;overflow-wrap:anywhere}
.receipt-items-wrap{margin-bottom:28px;text-align:left}
.receipt-items-wrap h2{margin:0 0 8px;font-size:24px;letter-spacing:-.02em}
.thankyou-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.thankyou-actions .button{justify-content:center}
@media (max-width:900px){
.checkout-flow.container{width:calc(100% - 32px)}
.checkout-flow .checkout-layout{grid-template-columns:minmax(0,1fr);gap:32px}
.checkout-flow .summary-sticky{position:static}
.checkout-flow .checkout-summary{order:2}
.checkout-flow .breadcrumb{margin-bottom:24px}
}
@media (max-width:560px){
.checkout-progress-btn{flex-direction:column;justify-content:center;gap:4px;padding:8px 4px;text-align:center;font-size:9px;letter-spacing:.04em}
.checkout-flow .checkout-fields{grid-template-columns:minmax(0,1fr)}
.checkout-actions{flex-direction:column-reverse}
.checkout-actions .checkout-back{flex:1}
.receipt-list{grid-template-columns:minmax(0,1fr)}
.thankyou-actions .button{width:100%}
}
@media (prefers-reduced-motion:reduce){.checkout-flow *{transition:none!important}}
