.store-page { background:#f0efe7; }
.store-main { width:min(1320px,calc(100% - 112px)); margin:0 auto; min-height:calc(100vh - 180px); padding:42px 0 70px; }
.breadcrumbs { display:flex; gap:12px; align-items:center; color:#708078; font:12px/1.5 var(--sans); margin-bottom:30px; }
.breadcrumbs a { text-decoration:none; }
.breadcrumbs a:hover { color:var(--accent); }
.shop-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:30px; margin-bottom:32px; }
.shop-heading h1 { font:700 italic 48px/1.1 var(--serif); margin:12px 0 0; }
.shop-heading>.scribble { color:var(--accent); font-size:23px; transform:rotate(-3deg); }
.shop-toolbar { display:flex; align-items:center; gap:22px; justify-content:space-between; padding:20px 0; border-block:1px solid #c9d1c7; margin-bottom:28px; }
.shop-filters { display:flex; gap:24px; }
.shop-filters button { font:13px var(--sans); border:0; border-bottom:2px solid transparent; padding:9px 0; background:none; }
.shop-filters button[aria-pressed=true] { color:var(--accent); border-color:var(--accent); }
.shop-search { border:1px solid #c3cdc4; border-radius:0; background:transparent; padding:10px 13px; font:13px var(--sans); width:220px; }
.shop-sort { display:flex; align-items:center; gap:10px; font-size:12px; }
.shop-sort select { border:0; background:none; font:13px var(--sans); color:var(--ink); padding:10px 0; }
.shop-results { color:#718076; font-size:12px; margin-bottom:20px; }
.product-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:38px 26px; }
.product-card { min-width:0; }
.product-card>a { display:block; text-decoration:none; }
.catalogue-image { aspect-ratio:1; overflow:hidden; background:white; position:relative; }
.catalogue-image img { width:100%; height:100%; object-fit:contain; transition:transform .5s ease; }
.product-card a:hover .catalogue-image img { transform:scale(1.025); }
.product-card h2 { font:400 19px/1.3 var(--serif); margin:15px 0 7px; }
.card-meta { display:flex; align-items:center; justify-content:space-between; gap:12px; color:#63756b; font-size:12px; }
.card-meta strong { color:var(--ink); font-weight:500; font-size:14px; white-space:nowrap; }
.shop-empty { grid-column:1/-1; padding:70px 0; text-align:center; }
.shop-empty h2 { font:30px var(--serif); margin:0 0 15px; }
.shop-empty button { background:var(--ink); color:white; border:0; padding:12px 22px; }
.product-detail { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(330px,1fr); gap:70px; align-items:start; }
.detail-photos { min-width:0; }
.detail-photos .product-photo-button { height:auto; aspect-ratio:1; }
.detail-photos .product-photo { height:100%; }
.detail-photos .photo-tabs { min-height:44px; gap:10px 22px; flex-wrap:wrap; }
.detail-photos .photo-tabs button { font-size:13px; }
.detail-copy { padding-top:16px; min-width:0; }
.detail-copy h1 { font:400 37px/1.12 var(--serif); margin:14px 0 18px; overflow-wrap:break-word; }
.detail-price { font:20px var(--sans); margin-bottom:23px; }
.detail-price span { font-size:12px; color:#718078; }
.detail-description { font:15px/1.7 var(--sans); color:#61736a; margin-bottom:26px; }
.detail-colour { display:flex; align-items:center; gap:12px; font-size:13px; margin-bottom:26px; }
.detail-colour i { width:19px; height:19px; border:1px solid #a8b3a7; border-radius:50%; box-shadow:0 0 0 3px #f0efe7,0 0 0 4px #8a9c8e; }
.size-label { font-size:13px; display:block; margin-bottom:12px; }
.size-options { display:flex; gap:8px; flex-wrap:wrap; border:0; padding:0; margin:0 0 24px; }
.size-options legend { font-size:13px; margin-bottom:12px; }
.size-options label { position:relative; }
.size-options input { position:absolute; opacity:0; width:100%; height:100%; margin:0; cursor:pointer; }
.size-options span { display:grid; place-items:center; min-width:48px; height:42px; padding:0 8px; border:1px solid #bec9bf; font:13px var(--sans); }
.size-options input:checked+span { background:var(--ink); color:white; border-color:var(--ink); }
.size-options input:focus-visible+span { outline:2px solid var(--accent); outline-offset:3px; }
.detail-copy .add-button { display:block; width:100%; min-height:52px; font-size:14px; }
.detail-copy .live-store-link { display:block; margin:16px 0 28px; text-align:center; color:#64766c; font-size:12px; }
.detail-copy details { border-top:1px solid #c5cfc4; padding:18px 0; }
.detail-copy details:last-child { border-bottom:1px solid #c5cfc4; }
.detail-copy summary { cursor:pointer; font-size:13px; }
.detail-copy details p { font:13px/1.7 var(--sans); color:#677a6e; margin-top:13px; }
.product-specs { display:grid; gap:7px; margin:14px 0 0; padding-left:18px; color:#677a6e; font:13px/1.55 var(--sans); }
.detail-copy details a { color:var(--ink); }
.related { margin-top:65px; padding-top:30px; border-top:1px solid #c5cfc4; }
.related h2 { font:30px var(--serif); margin:0 0 25px; }
.related .product-card h2 { font-size:19px; margin:15px 0 7px; }
.not-found { text-align:center; padding:80px 0; }
.not-found h1 { font:38px var(--serif); margin-bottom:20px; }
@media(max-width:1250px) { .store-main { width:calc(100% - 64px); } .product-detail { gap:40px; } .detail-copy h1 { font-size:32px; } .shop-toolbar { gap:18px; } .shop-filters { gap:18px; } .shop-search { width:180px; } }

.checkout-heading { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:34px; }
.checkout-heading h1 { font:700 italic 48px/1.05 var(--serif); margin-top:10px; }
.checkout-heading a { font-size:13px; }
.checkout-layout { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(330px,.75fr); gap:50px; align-items:start; }
.checkout-fields { display:grid; gap:20px; }
.checkout-fields section { border-top:1px solid var(--line); padding-top:22px; }
.checkout-fields h2,.checkout-summary h2 { font:28px/1.15 var(--serif); margin:0 0 20px; }
.checkout-fields label { display:grid; gap:8px; margin-bottom:15px; font-size:12px; }
.shop-field { width:100%; min-height:48px; border:1px solid #91a095; border-radius:0; background:#ece9dc; padding:12px 14px; color:var(--ink); font:15px var(--sans); }
.checkout-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.checkout-grid-thirds { grid-template-columns:1.2fr .7fr .8fr; }
.payment-note { padding:18px; border:1px solid #91a095; background:#e8e5d9; }
.payment-note>p { margin-bottom:17px; color:var(--muted); font-size:13px; }
.stripe-field { min-height:48px; padding:14px 12px; border:1px solid #91a095; background:#f8f7ef; }
.checkout-pay { justify-content:center; margin-top:4px; }
.checkout-status { min-height:20px; color:var(--muted); font-size:13px; }
.checkout-status[data-state=error] { color:#9e443a; }
.checkout-summary { position:sticky; top:115px; padding:30px; background:#fcfbef; box-shadow:2px 6px 15px #21372e24; }
.checkout-summary .receipt-brand { margin-bottom:24px; }
.checkout-line { display:grid; grid-template-columns:70px 1fr auto; gap:14px; align-items:center; padding:16px 0; border-bottom:1px dashed #aeb8ad; }
.checkout-line img { width:70px; height:76px; object-fit:contain; background:white; }
.checkout-line div { min-width:0; }
.checkout-line strong,.checkout-line span { display:block; }
.checkout-line strong { font:18px/1.2 var(--hand); }
.checkout-line span { margin-top:6px; font:10px monospace; color:var(--muted); }
.checkout-line b { font-size:12px; white-space:nowrap; }
.checkout-total { display:flex; justify-content:space-between; gap:20px; margin-top:24px; padding-top:18px; border-top:2px solid var(--ink); font:23px var(--hand); }
.checkout-summary>p:last-child { margin-top:13px; text-align:center; font-size:11px; color:var(--muted); }
.checkout-empty,.checkout-success { max-width:650px; margin:80px auto; text-align:center; }
.checkout-empty h1,.checkout-success h1 { font:700 italic 52px/1.1 var(--serif); margin:15px 0 20px; }
.checkout-empty p:not(.eyebrow),.checkout-success p:not(.eyebrow) { color:var(--muted); line-height:1.7; }
.checkout-empty .checkout-button,.checkout-success .checkout-button { max-width:300px; justify-content:center; margin:30px auto 0; text-decoration:none; }
