/* Product purchase layout. Scoped to this page. */
.product-page { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(0,1fr); gap:clamp(3rem,7vw,8rem); max-width:1440px; margin:auto; padding:3.5rem clamp(1.5rem,6vw,6rem) 6rem; align-items:start; }
.product-gallery { min-width:0; position:sticky; top:190px; }
.product-breadcrumb { display:flex; gap:.85rem; align-items:center; color:var(--muted); font-size:.75rem; }
.product-breadcrumb a { text-underline-offset:5px; text-decoration:underline; }
.product-stage { min-height:490px; display:grid; place-items:center; padding:4rem 2rem 2rem; }
.product-stage .small-card { width:90%; max-width:29rem; padding:2rem; transform:rotate(-9deg); border-radius:1rem; box-shadow:1rem 2rem 3rem #0007,inset 1px 1px #ffffff60; }
.product-stage .small-card img { width:22%; }
.product-stage .small-card span { font-size:.6rem; }
.product-caption { text-align:center; font-size:.65rem; letter-spacing:.15em; color:#d1cabc; }
.product-image-note { text-align:center; font-size:.7rem; line-height:1.6; color:var(--muted); }
.product-information { min-width:0; padding-top:.1rem; }
.product-information .eyebrow { font-size:.6rem; margin:0 0 1rem; }
.product-information h1 { font-family:Georgia,'Times New Roman',serif; font-size:clamp(2rem,3vw,2.75rem); font-weight:400; line-height:1.2; letter-spacing:-.025em; margin:0 0 1rem; }
.product-material,.product-detail-link,.product-story,.product-details p { font-size:.85rem; line-height:1.8; color:var(--muted); }
.product-material { margin:0 0 .5rem; }
.product-detail-link { text-decoration:underline; text-underline-offset:5px; }
.product-price { margin:1.75rem 0 2rem; font-size:1rem; color:var(--text); }
.product-story { margin:0 0 .8rem; }
.product-details summary,.reservation-details summary { display:flex; justify-content:space-between; gap:1rem; cursor:pointer; list-style:none; font-size:.8rem; color:#c7c1b6; padding:1rem 0; }
.product-details summary::-webkit-details-marker,.reservation-details summary::-webkit-details-marker { display:none; }
.product-details[open] summary span,.reservation-details[open] summary span { transform:rotate(45deg); }
.product-details p { margin:0 0 1rem; }
.product-variation { margin-top:2rem; font-size:.62rem; letter-spacing:.12em; color:var(--muted); }
.product-variation select { margin-top:1rem; padding:1.1rem .9rem; background:transparent; color:var(--text); font-size:.8rem; letter-spacing:0; }
.product-variation option { background:#141413; }
.reservation-details { margin:1rem 0; border-bottom:1px solid var(--line); padding-bottom:.2rem; }
.reservation-details[open] { padding-bottom:1.5rem; }
.product-information .button { width:100%; min-height:3.5rem; justify-content:center; position:relative; margin-top:1.4rem; letter-spacing:.12em; }
.product-information .button span { position:absolute; right:1.2rem; }
.product-purchase-note { color:var(--muted); font-size:.73rem; line-height:1.7; margin:1.5rem 0 2rem; }
.product-enquiry { display:flex; justify-content:space-between; padding:1.25rem; background:#ffffff05; font-size:.8rem; color:#c7c1b6; }
#checkout-status:empty { display:none; }
@media(min-width:1600px) { .product-stage { min-height:560px; } }
@media(max-width:800px) { .product-page { grid-template-columns:1fr; gap:2.5rem; padding:1.5rem 1.25rem 4rem; }.product-gallery { position:static; }.product-stage { min-height:310px; padding:3rem 1.5rem 2rem; }.product-stage .small-card { max-width:25rem; padding:1.5rem; }.product-information h1 { font-size:2.25rem; }.product-information { max-width:34rem; width:100%; margin:auto; }.product-breadcrumb { font-size:.65rem; }.product-caption { font-size:.55rem; }.product-price { margin:1.5rem 0; } }

.product-stage .small-card { border-radius:3.715% / 5.89%; }

.payment-page { max-width:1200px; margin:auto; padding:3rem clamp(1.25rem,5vw,4rem) 6rem; }
.payment-intro h1,.payment-confirmation h2 { font:400 clamp(2.8rem,5vw,5rem)/1.05 Georgia,serif; margin:1.5rem 0; letter-spacing:-.04em; }
.payment-intro em,.payment-confirmation em { color:#d6c29a; }
.payment-intro>p:not(.eyebrow),.payment-confirmation>p:not(.eyebrow) { color:#aaa8a3; font-size:.9rem; line-height:1.8; max-width:32rem; }
.payment-layout { display:grid; grid-template-columns:1.2fr 1fr; gap:clamp(2rem,6vw,6rem); margin-top:3rem; align-items:start; }
.payment-layout[hidden],.payment-intro[hidden],.payment-confirmation[hidden] { display:none; }
.payment-step { margin-bottom:2.5rem; }.payment-step .eyebrow { margin-bottom:1.5rem; }
.payment-fields { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.demo-fill,.edit-bag { padding:.5rem 0; border:0; background:none; color:#d6c29a; text-decoration:underline; cursor:pointer; font-size:.8rem; }
.demo-payment { display:flex; justify-content:space-between; padding:1.25rem; border:1px solid #48443a; border-radius:.3rem; font-size:.85rem; }
.payment-summary { background:#17191e; padding:2rem; position:sticky; top:calc(var(--header-height) + 1rem); }
.payment-line { display:flex; justify-content:space-between; gap:1rem; padding:1.5rem 0; border-bottom:1px solid #383b42; font-size:.85rem; line-height:1.6; }
.payment-totals { margin:1.5rem 0; }.payment-totals p { display:flex; justify-content:space-between; font-size:.8rem; gap:1rem; }.payment-totals p:last-child { color:#d6c29a; font-size:1rem; padding-top:1rem; }
.payment-confirmation { padding:5rem 0; }
@media(max-width:800px) { .payment-layout { grid-template-columns:1fr; }.payment-summary { position:static; grid-row:1; padding:1.5rem; }.payment-fields { grid-template-columns:1fr; } }
