.checkout-page { padding-top:24px; padding-bottom:76px; color:#193b34; }
.checkout-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:30px; }
.checkout-heading h1 { margin:8px 0 7px; color:#173c35; font-family:Georgia,serif; font-size:clamp(3rem,5vw,4.4rem); letter-spacing:-.045em; }
.checkout-heading p { margin:0; color:#718078; font-size:1.15rem; }
.checkout-layout { display:grid; grid-template-columns:minmax(0,1fr) 350px; align-items:start; gap:25px; }
.checkout-main { display:grid; gap:16px; }
.checkout-card,.checkout-summary .cart-summary-card,.checkout-summary .cart-promise { border:1px solid #e4eae4; border-radius:16px; background:#fff; box-shadow:0 12px 36px rgba(23,60,53,.045); }
.checkout-card { padding:22px 24px; }
.checkout-card-heading { display:flex; align-items:center; gap:12px; margin-bottom:18px; }
.checkout-card-heading > div { flex:1; }
.checkout-card-heading h2 { margin:0; color:#193b34; font-size:1.25rem; font-weight:700; }
.checkout-card-heading p { margin:4px 0 0; color:#819087; font-size:.92rem; }
.checkout-section-number { display:grid; place-items:center; flex:0 0 32px; width:32px; height:32px; border-radius:50%; background:#edf4ed; color:#315b48; font-weight:700; }
.fulfilment-options { display:grid; grid-template-columns:1fr 1fr; gap:11px; }
.fulfilment-option,.checkout-choice-card,.checkout-payment-option { position:relative; display:flex; align-items:center; gap:12px; padding:15px; border:1px solid #e0e7df; border-radius:12px; background:#fff; cursor:pointer; transition:border-color .15s,background .15s; }
.fulfilment-option input,.checkout-choice-card input,.checkout-payment-option input { position:absolute; opacity:0; pointer-events:none; }
.fulfilment-option.is-selected,.checkout-choice-card.is-selected,.checkout-payment-option.is-selected { border-color:#6f9477; background:#f6faf5; }
.fulfilment-option.is-disabled { opacity:.48; cursor:not-allowed; }
.fulfilment-icon { display:grid; place-items:center; flex:0 0 42px; width:42px; height:42px; border-radius:10px; background:#edf4ed; color:#3d6a52; font-size:1.45rem; }
.fulfilment-option > span:nth-of-type(2),.checkout-choice-copy,.checkout-payment-copy { display:grid; gap:4px; min-width:0; }
.fulfilment-option strong,.checkout-choice-copy strong,.checkout-payment-copy strong { color:#234537; font-size:1rem; }
.fulfilment-option small,.checkout-choice-copy small,.checkout-payment-copy small { color:#7e8b82; font-size:.86rem; line-height:1.45; }
.option-check { margin-left:auto; color:#60816a; font-size:1.2rem; opacity:0; }
.is-selected .option-check { opacity:1; }
.checkout-subsection { margin-top:18px; padding-top:16px; border-top:1px solid #edf0ec; }
.checkout-subsection h3 { margin:0 0 12px; color:#28483b; font-size:1.05rem; }
.checkout-field-label,.checkout-form-grid label { display:grid; gap:6px; color:#50635a; font-size:.91rem; font-weight:700; }
.checkout-select,.checkout-form-grid input,.checkout-form-grid select { width:100%; min-height:43px; padding:9px 11px; border:1px solid #dbe4dc; border-radius:8px; background:#fff; color:#193b34; font:inherit; font-weight:400; }
.checkout-select { max-width:440px; margin-top:7px; }
.checkout-help,.checkout-optional { display:block; margin-top:6px; color:#849188; font-size:.84rem; font-weight:400; }
.checkout-choice-list { display:grid; gap:10px; }
.checkout-choice-card { align-items:flex-start; }
.checkout-choice-card > input { position:static; opacity:1; pointer-events:auto; accent-color:#315b48; margin-top:3px; }
.checkout-choice-copy { flex:1; }
.checkout-address-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.checkout-address-card { position:relative; display:flex; align-items:flex-start; gap:11px; min-height:100px; padding:14px; border:1px solid #e0e7df; border-radius:11px; background:#fff; cursor:pointer; }
.checkout-address-card.is-selected { border-color:#6f9477; background:#f6faf5; }
.checkout-address-card > input { margin:3px 0 0; accent-color:#315b48; }
.checkout-address-copy { display:grid; gap:5px; padding-right:15px; }
.checkout-address-copy strong { color:#234537; font-size:.98rem; }
.checkout-address-copy span { color:#68776e; font-size:.88rem; line-height:1.45; }
.checkout-address-copy small { color:#879289; font-size:.8rem; }
.checkout-address-check { position:absolute; top:12px; right:12px; color:#60816a; opacity:0; }
.checkout-address-card.is-selected .checkout-address-check { opacity:1; }
.checkout-add-address { margin-left:auto; padding:7px 10px; border:1px solid #dce5dc; border-radius:8px; background:#fff; color:#3b6250; font-size:.9rem; font-weight:700; cursor:pointer; }
.checkout-add-address:hover { background:#f4f8f2; }
.checkout-same-address { display:flex; align-items:center; gap:9px; margin:0 0 14px; color:#607067; font-size:.94rem; cursor:pointer; }
.checkout-same-address input,.checkout-terms input { accent-color:#315b48; }
.checkout-inline-note { margin-top:10px; padding:12px; border-radius:8px; background:#f7f8f4; color:#718078; font-size:.9rem; }
.checkout-address-form { border-color:#bbd0bd; }
.checkout-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:13px; }
.checkout-validation-message { color:#a34d42; font-size:.8rem; font-weight:500; }
.checkout-form-grid input[aria-invalid="true"] { border-color:#c9796e; }
.checkout-postal-control { display:flex; gap:8px; }
.checkout-postal-control input { flex:1; min-width:0; }
.checkout-lookup-button { flex:0 0 auto; padding:8px 11px; border:1px solid #d5e1d5; border-radius:8px; background:#f3f8f1; color:#315b48; font-size:.82rem; font-weight:700; }
.checkout-lookup-button:disabled { opacity:.6; cursor:wait; }
.checkout-google-address-mount { min-height:44px; padding:3px; border:1px solid #dbe4dc; border-radius:8px; background:#fff; }
.checkout-google-address-mount gmp-place-autocomplete { display:block; width:100%; }
.checkout-location-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; }
.checkout-location-actions small { color:#7e8b82; font-size:.8rem; font-weight:400; }
.checkout-form-wide { grid-column:1/-1; }
.checkout-form-message { min-height:20px; margin:9px 0; color:#a34d42; font-size:.9rem; }
.checkout-save-address { width:auto; min-width:170px; min-height:44px; }
.checkout-payment-list { display:grid; }
.checkout-payment-option > i { color:#4c7459; font-size:1.45rem; }
.checkout-payment-note { margin:12px 0 0; color:#839087; font-size:.83rem; }
.checkout-payment-note i { color:#52775e; }
.checkout-confirm-overlay { position:fixed; z-index:1100; inset:0; display:grid; place-items:center; padding:20px; background:rgba(18,39,33,.48); backdrop-filter:blur(3px); }
.checkout-confirm-overlay.d-none { display:none; }
.checkout-confirm-card { width:min(100%,480px); padding:30px; border:1px solid #e1e9df; border-radius:18px; background:#fff; box-shadow:0 24px 70px rgba(20,48,39,.22); text-align:center; }
.checkout-confirm-icon { display:grid; place-items:center; width:58px; height:58px; margin:0 auto 14px; border-radius:50%; background:#edf5ed; color:#39684d; font-size:1.8rem; }
.checkout-confirm-card h2 { margin:0 0 8px; color:#193b34; font-family:Georgia,serif; font-size:1.65rem; }
.checkout-confirm-card p { margin:0; color:#748178; line-height:1.55; }
.checkout-confirm-total { display:flex; justify-content:space-between; margin:20px 0; padding:14px 0; border-top:1px solid #edf0ec; border-bottom:1px solid #edf0ec; color:#64746b; }
.checkout-confirm-total strong { color:#193b34; }
.checkout-confirm-actions { display:flex; justify-content:center; flex-wrap:wrap; gap:10px; }
.checkout-confirm-actions button { min-height:46px; padding:0 18px; }
.checkout-confirm-secondary { border:1px solid #dbe4dc; border-radius:9px; background:#fff; color:#315d48; font-weight:600; }
.checkout-test-payment-note { padding:12px 14px; border:1px solid #d8e8d8; border-radius:9px; background:#f2f8f0; color:#46684d; font-size:.9rem; line-height:1.5; }
.checkout-notification-message { padding:10px 13px; border:1px solid #dce9dc; border-radius:9px; background:#f6f9f4; color:#526d58; font-size:.85rem; line-height:1.5; }
.checkout-summary { position:sticky; top:160px; }
.checkout-summary .cart-summary-card { min-width:0; padding:23px; overflow:hidden; }
.checkout-summary h2 { margin:0; padding-bottom:16px; border-bottom:1px solid #edf0ec; color:#193b34; font-size:1.3rem; }
.checkout-summary-items { display:grid; min-width:0; gap:10px; padding:15px 0 6px; border-bottom:1px solid #edf0ec; }
.checkout-summary-item { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; min-width:0; width:100%; gap:12px; color:#718078; font-size:.9rem; }
.checkout-summary-item span { display:block; min-width:0; max-width:100%; }
.checkout-summary-item-name { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; cursor:help; }
.checkout-summary-item-name:focus { outline:2px solid #8eaa93; outline-offset:2px; }
.checkout-summary-item strong { min-width:0; color:#345344; text-align:right; white-space:nowrap; }
.checkout-terms { display:flex; align-items:flex-start; gap:8px; margin:3px 0 10px; color:#748178; font-size:.82rem; line-height:1.45; }
.checkout-terms a { color:#315d48; text-decoration:underline; }
.checkout-summary .cart-checkout-button:disabled { opacity:.55; cursor:not-allowed; }
.checkout-summary .cart-promise { display:flex; gap:12px; align-items:flex-start; margin-top:13px; padding:16px; }
.checkout-summary .cart-promise > i { color:#789475; font-size:1.5rem; }
.checkout-summary .cart-promise div { display:grid; gap:4px; }
.checkout-summary .cart-promise strong { color:#304f42; font-size:.95rem; }
.checkout-summary .cart-promise span { color:#859188; font-size:.85rem; line-height:1.5; }
.checkout-success { display:grid; justify-items:center; max-width:620px; margin:20px auto; padding:50px 25px; border:1px solid #e1e9df; border-radius:18px; background:white; text-align:center; }
.checkout-success > span:first-child { display:grid; place-items:center; width:75px; height:75px; margin-bottom:20px; border-radius:50%; background:#eaf4e9; color:#39704f; font-size:2.4rem; }
.checkout-success h2 { margin:10px 0; color:#193b34; font-family:Georgia,serif; font-size:2.3rem; }
.checkout-success p { color:#758279; }
.checkout-success .cart-primary-button { width:auto; min-width:210px; margin-top:12px; }
@media(max-width:991px) { .checkout-layout { grid-template-columns:minmax(0,1fr) 310px; gap:17px; } }
@media(max-width:767px) { .checkout-heading { align-items:flex-start; flex-direction:column; } .checkout-layout { grid-template-columns:1fr; } .checkout-summary { position:static; } }
@media(max-width:520px) { .checkout-page { padding-top:18px; } .checkout-card { padding:18px 15px; } .checkout-card-heading { flex-wrap:wrap; } .checkout-card-heading h2 { font-size:1.1rem; } .checkout-card-heading p { font-size:.85rem; } .fulfilment-options,.checkout-address-grid,.checkout-form-grid { grid-template-columns:1fr; } .checkout-form-wide { grid-column:auto; } .checkout-heading .cart-steps { gap:8px; font-size:.82rem; } .checkout-heading .cart-steps > i { width:13px; } .checkout-summary .cart-summary-card { padding:20px 17px; } }
