/* Order form uses the approved brand typography, paper and colours. */
.checkout-main { max-width: 1200px; }
.checkout-heading { margin: 30px 0 40px; }
.checkout-heading h1 { font-size: clamp(38px,5vw,58px); margin-bottom: 18px; }
.checkout-layout { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:36px; align-items:start; }
.checkout-page fieldset, .checkout-summary, .checkout-success { background:#fffaf0; border:1px solid var(--line); border-radius:20px; padding:26px; min-width:0; }
.checkout-page fieldset { margin:0 0 24px; }
.checkout-page legend { font-weight:800; padding:0 8px; color:var(--green); }
.checkout-page label { display:block; font-weight:800; font-size:15px; margin:16px 0 7px; }
.checkout-page input:not([type=checkbox]), .checkout-page select { width:100%; min-height:48px; padding:10px 12px; border:1px solid #a7b3a6; border-radius:8px; background:white; color:var(--ink); font:inherit; font-size:16px; }
.checkout-page input:focus-visible, .checkout-page select:focus-visible { outline:3px solid var(--gold); outline-offset:2px; }
.checkout-page .optional, .checkout-page .field-note { font-weight:400; font-size:14px; line-height:1.55; }
.checkout-page .field-note { margin-top:10px; color:var(--muted); }
.checkout-page .check { display:flex; gap:12px; align-items:flex-start; font-weight:600; line-height:1.55; }
.checkout-page .check input { flex:0 0 20px; width:20px; height:20px; margin-top:3px; accent-color:var(--green); }
.checkout-page .check .optional { display:block; margin-top:7px; }
.checkout-address-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.checkout-notice { background:#edf4e8; border-left:3px solid var(--gold); padding:14px 16px; margin:16px 0; font-size:14px; line-height:1.55; }
.checkout-page [hidden] { display:none!important; }
.checkout-page .bot-field { display:none; }
.checkout-page button { cursor:pointer; font-family:inherit; }
.checkout-page button:disabled { opacity:.65; cursor:wait; }
.checkout-summary h2, .checkout-success h2 { font-size:28px; margin-bottom:20px; }
.checkout-summary p { font-size:15px; margin:12px 0; }
.checkout-summary .checkout-total { font-size:30px; font-weight:800; color:var(--green); }
.checkout-summary .checkout-total s { font-size:16px; font-weight:600; color:var(--muted); margin-right:.35em; }
.checkout-summary ol { padding-left:22px; font-size:15px; }
.checkout-summary li { padding:6px 0; }
.checkout-success { max-width:720px; }
.checkout-success p { margin:16px 0; }
.checkout-success h3 { font-size:22px; margin-top:8px; }
.payment-details { margin:8px 0 0; }
.payment-details dt { font-weight:800; margin-top:12px; }
.payment-details dd { margin:2px 0 0; overflow-wrap:anywhere; }
.payment-qr { margin:16px 0; }
.payment-qr img { width:220px; height:auto; background:#fff; border-radius:8px; }
.payment-qr figcaption { margin-top:8px; font-size:14px; line-height:1.5; max-width:46ch; }
@media(max-width:900px) { .checkout-layout { grid-template-columns:1fr; } .checkout-summary { grid-row:1; } }
@media(max-width:640px) { .checkout-page fieldset, .checkout-summary, .checkout-success { padding:20px 16px; } .checkout-address-row { grid-template-columns:1fr; gap:0; } .checkout-heading { margin-bottom:28px; } .checkout-page #place-order { width:100%; gap:10px; white-space:normal; } }
