/* Checkout uses the shop's existing palette and type. */
.checkout-page{max-width:1120px;min-height:calc(100svh - 120px)}
.checkout-page .page-heading{display:block;margin-block:24px 30px}
.checkout-page .page-heading .eyebrow{margin-block-end:8px}
.checkout-page .page-heading h1{font-size:56px;line-height:1.2}
.checkout-intro{font-size:14px;color:var(--ink-soft);line-height:1.8;margin-block-start:12px;max-width:570px}
.cart-page #catalog-status,.checkout-page #catalog-status{min-height:44px;padding:0;margin-block-end:12px;font-size:12px;line-height:1.8;display:flex;align-items:center;justify-content:space-between;gap:12px;background:none;border-radius:0}
.cart-page #catalog-status p,.checkout-page #catalog-status p{min-width:0}
.cart-page #catalog-status[hidden],.checkout-page #catalog-status[hidden]{display:flex!important;visibility:hidden;pointer-events:none}
.cart-page #catalog-status .button,.checkout-page #catalog-status .button{font-size:12px;min-height:36px;padding:5px 12px;margin:0;flex-shrink:0}
.checkout-page .checkout-layout{grid-template-columns:minmax(0,1.45fr) minmax(280px,.8fr);gap:28px}
.checkout-page .checkout-form-panel{padding:30px;background:var(--white);border-radius:18px}
.checkout-page .checkout-account{min-height:83px;box-sizing:border-box;margin-block-end:26px;gap:12px}
.checkout-page .checkout-account p{min-width:0}
.checkout-page .checkout-account .account-email{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:32ch}
.checkout-page .checkout-account a{padding-block:10px;min-height:44px;display:flex;align-items:center}
.checkout-section+.checkout-section{border-block-start:1px solid var(--line);padding-block-start:26px;margin-block-start:26px}
.checkout-section-heading{display:flex;align-items:center;gap:12px;margin-block-end:20px}
.checkout-section-heading h2{font:500 20px/1.5 var(--font);margin:0}
.checkout-section-number{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border:1px solid var(--line);border-radius:50%;font-size:13px;color:var(--ink-soft);background:var(--cream)}
.checkout-section-caption{font-size:12px;color:var(--ink-soft);margin-inline-start:auto;white-space:nowrap}
.checkout-page .form-grid{gap:18px 16px}
.checkout-page .field input,.checkout-page .field textarea{min-height:52px;border-radius:10px;background:var(--cream);font-size:16px}
.checkout-page .field input:focus,.checkout-page .field textarea:focus{background:var(--white)}
.checkout-page .field textarea{min-height:94px}
.checkout-page #customer-phone{font-variant-numeric:tabular-nums;text-align:start;letter-spacing:.025em}
.checkout-page #phone-hint{min-height:21px;font-size:12px;line-height:1.75}
.checkout-page .field-error:not(:empty){font-size:13px}
.checkout-location{margin-block-end:20px}
.location-button{display:flex;align-items:center;justify-content:flex-start;gap:10px;width:100%;min-height:52px;border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:var(--pink-soft);font:500 14px/1.5 var(--font);color:var(--ink);cursor:pointer;text-align:start}
.location-button:hover{border-color:var(--pink-deep)}
.location-button:disabled{cursor:wait}
.location-button svg{width:21px;height:21px;flex-shrink:0}
.location-optional{font-size:12px;font-weight:400;color:var(--ink-soft);margin-inline-start:auto}
.location-status{font-size:12px;line-height:1.8;color:var(--ink-soft);margin-block-start:8px;min-height:5.4em}
.location-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:12px;margin-block-start:3px;min-height:44px}
/* GPS and permission responses can arrive after the interaction window. Keep their space reserved. */
.location-actions[hidden]{display:flex!important;visibility:hidden;pointer-events:none}
.location-actions a,.location-actions button{font:inherit;color:var(--ink);padding-block:10px;min-height:44px;text-decoration:underline;text-underline-offset:3px}
.location-actions button{background:none;border:0;cursor:pointer;padding-inline:0}
.checkout-page .payment-fieldset{margin:0}
/* Reserve the initial payment area while availability is checked. Wrapped
   descriptions can grow this region; no placeholder is a payment method. */
.checkout-page #payment-options{min-height:270px}
.checkout-page .payment-loading{font-size:13px;color:var(--ink-soft);padding:20px 0}
.checkout-page .payment-option{min-height:80px;margin-block-end:10px;padding:15px;align-items:center}
.checkout-page .payment-option input{margin-block-start:0}
.checkout-page .payment-option small{line-height:1.7}
.checkout-page .optional-details{margin-block:26px 20px}
.checkout-page .optional-details summary{min-height:54px}
.checkout-page #turnstile-container{max-width:100%;margin-block:18px}
.checkout-page #turnstile-container.turnstile-reserved{min-height:65px}
.checkout-page .order-terms{margin-block:18px 14px;font-size:12px}
.checkout-page #submit-order{min-height:58px;font-size:16px;font-variant-numeric:tabular-nums}
.checkout-payment-note{font-size:12px;text-align:center;color:var(--ink-soft);margin-block-start:10px}
.checkout-page .checkout-aside{padding:24px;border-radius:18px}
.checkout-page .checkout-summary-head h2{font:500 18px/1.5 var(--font)}
.checkout-page .checkout-summary-head a{min-height:44px;display:flex;align-items:center;font-size:12px}
.checkout-compact-total{display:none}
.checkout-page .checkout-summary-items{margin-block:12px 16px}
.checkout-page .checkout-summary-items li{gap:12px;padding-block:13px;align-items:flex-start;line-height:1.7;font-size:14px}
.checkout-page .checkout-summary-items strong{font-weight:500;white-space:nowrap;flex-shrink:0}
.checkout-page .checkout-summary-items small{display:block;margin-block-start:2px;font-size:12px}
.checkout-page .basket-totals{padding-block:3px 0}
.checkout-page .basket-totals>div{font-size:14px;line-height:1.7}
.checkout-page .basket-totals>div>span:last-child{white-space:nowrap}
.checkout-page .basket-totals .grand-total{font-size:21px;margin-block-end:0}
.checkout-page .checkout-delivery-note{font-size:12px;line-height:1.8;color:var(--ink-soft);margin-block-start:16px;padding-block-start:15px;border-block-start:1px solid var(--line)}
.checkout-page .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(max-width:900px){.checkout-page .checkout-layout{grid-template-columns:minmax(0,1.2fr) minmax(250px,.8fr);gap:20px}.checkout-page .checkout-form-panel,.checkout-page .checkout-aside{padding:22px}.checkout-page .form-grid{grid-template-columns:1fr}.checkout-page .field-wide{grid-column:auto}}
@media(max-width:760px){.checkout-page .page-heading{margin-block:20px 24px}.checkout-page .page-heading h1{font-size:46px}.checkout-intro{font-size:13px;line-height:1.8}.checkout-page .checkout-layout{grid-template-columns:1fr;gap:20px}.checkout-page .checkout-form-panel{padding:22px 18px}.checkout-page .checkout-aside{padding:18px 20px;grid-row:1;position:static}.checkout-page .checkout-summary-items{margin-block:5px 12px}.checkout-page .checkout-summary-items li{font-size:13px;padding-block:10px}.checkout-page .checkout-summary-items small{display:inline;margin-inline-start:8px;font-size:12px}.checkout-page .basket-totals>div{font-size:13px;margin-block-end:6px}.checkout-page .basket-totals .grand-total{font-size:20px;padding-block-start:10px;margin-block-start:10px}.checkout-page .checkout-delivery-note{margin-block-start:12px;padding-block-start:10px}.checkout-page .checkout-account{margin-block-end:22px;min-height:83px}.checkout-section-heading h2{font-size:19px}.checkout-section+.checkout-section{margin-block-start:24px;padding-block-start:24px}.checkout-page #submit-order{font-size:15px}.checkout-page .checkout-account .account-email{max-width:23ch}.checkout-page .checkout-summary-head h2{font-size:17px}}
@media(max-width:360px){.checkout-page .checkout-form-panel{padding-inline:14px}.checkout-page .checkout-summary-items small{display:block;margin-inline-start:0}.checkout-page .checkout-account .account-email{max-width:19ch}.location-button{font-size:13px;gap:8px}.location-optional{font-size:11px}}
@media(max-width:760px){
  .checkout-page .breadcrumbs{margin-block:12px 14px}
  .checkout-page .page-heading{margin-block:14px 18px}
  .checkout-page .page-heading .eyebrow{margin-block-end:4px}
  .checkout-page .page-heading h1{font-size:42px}
  .checkout-intro{margin-block-start:8px;font-size:12px}
  .checkout-page .checkout-layout{gap:16px}
  .checkout-page .checkout-aside{padding:12px 18px}
  .checkout-page .checkout-summary-head h2{font-size:15px}
  .checkout-page .checkout-summary-head a{min-height:36px}
  .checkout-compact-total{display:grid;grid-template-columns:1fr auto;align-items:center;gap:0 12px}
  .checkout-compact-total>div{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:14px;margin-block:2px}
  .checkout-compact-total strong{font-size:23px;font-weight:600;white-space:nowrap;line-height:1.5}
  .checkout-compact-total p{font-size:12px;color:var(--ink-soft);margin:0;line-height:1.8}
  #toggle-checkout-summary{display:flex;align-items:center;gap:8px;min-height:44px;border:0;background:none;padding:7px 0;font:500 12px/1.5 var(--font);color:var(--ink);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
  .checkout-disclosure-icon{display:inline-grid;place-items:center;width:18px;font-size:18px;text-decoration:none}
  #checkout-breakdown{border-block-start:1px solid var(--line);margin-block-start:7px;padding-block-start:5px}
  .checkout-page .checkout-form-panel{padding-block:16px 22px}
  .checkout-page .checkout-account{min-height:66px;margin-block-end:18px;padding-block-end:14px;font-size:12px}
  .checkout-page .checkout-account .account-greeting{margin-block-start:2px}
  .checkout-page .checkout-section-heading{margin-block-end:16px}
}
