/* Editorial styling for product pages and checkout. */
.shop-design { --paper:#faf9f5; --line:#e5e2d9; --muted:#74736d; background:var(--paper); }
.shop-design h1,.shop-design .checkout h2,.shop-design .checkout-total,.shop-design .product-visit-banner h2 { font-family:Georgia,'Times New Roman',serif; font-weight:400; letter-spacing:-.045em; }
.shop-design .nav-actions>.saved-link+ .saved-link { border-left:1px solid #cfccc1; padding-left:20px; }
.shop-design .btn { font-weight:550; }
.shop-design .swatch { box-shadow:inset 0 0 0 1px #0002; border:2px solid #fff; }
/* Cart */
.checkout-page .nav { height:88px; max-width:1280px; }
.checkout-page .nav-shell { background:var(--paper); }
.checkout { max-width:1280px; padding:32px 0 44px; }
.checkout-heading { margin-bottom:24px; }
.checkout-heading .text-link { font-size:13px; gap:14px; }
.checkout-grid { grid-template-columns:minmax(0,1.56fr) minmax(310px,1fr); gap:24px; }
.checkout-main,.checkout-summary { background:#fff9; border-color:var(--line); padding:30px; border-radius:18px; }
.checkout-progress { gap:12px; margin-bottom:26px; }
.checkout-progress button { position:relative; display:flex; gap:10px; align-items:center; flex:1; font-size:12px; font-weight:400; white-space:nowrap; }
.checkout-progress button:not(:last-child)::after { content:''; height:1px; background:#dddcd4; flex:1; margin-left:2px; }
.checkout-step-number { width:30px; height:30px; border-radius:50%; display:grid; place-items:center; background:#efeee4; flex-shrink:0; color:var(--ink); }
.checkout-progress [aria-current] { font-weight:500; }
.checkout-progress [aria-current] .checkout-step-number { background:var(--yellow); }
.checkout h2 { font-size:36px; }
.checkout-help { font-size:14px; margin:8px 0 28px; }
.checkout-summary h2 { font-size:30px; margin-bottom:24px; }
.checkout-summary h2>span { width:30px; height:30px; }
.summary-item { grid-template-columns:72px minmax(0,1fr) auto; gap:16px; font-size:14px; margin-bottom:24px; }
.summary-photo img { width:72px; height:72px; border-radius:10px; }
.summary-photo>span { display:none; }
.summary-item small { font-size:12px; }
.checkout-summary dl { margin-top:24px; padding-top:24px; }
.checkout-summary dl>div { font-size:14px; margin-bottom:16px; }
.checkout-summary .checkout-total { font-size:27px; padding-top:20px; margin-top:20px; }
.checkout .checkout-primary { background:var(--yellow); color:var(--ink); font-size:14px; padding:16px 18px; }
.checkout .checkout-primary:hover { background:#e9d700; }
.checkout-summary-note { margin:18px 0 22px; font-size:11px; }
.checkout-summary .text-link { font-size:12px; }
.bag-line { grid-template-columns:170px minmax(0,1fr); gap:24px; padding-bottom:24px; margin-bottom:22px; }
.bag-line>img { width:170px; height:150px; border-radius:12px; background:#f8f5ed; }
.bag-line h3 { font-family:Georgia,'Times New Roman',serif; font-weight:400; font-size:26px; }
.bag-line p { font-size:13px; }
.bag-line-fields { grid-template-columns:1fr 80px; gap:18px; margin:16px 0; }
.bag-line label,.checkout-label,.checkout-fields label { font-size:12px; }
.checkout select,.checkout input:not([type=radio]):not([type=checkbox]),.checkout textarea { padding:12px 14px; font-size:14px; background:#fffc; }
.checkout-colour-select { display:block; position:relative; }
.checkout-colour-select>.swatch { position:absolute; left:14px; top:20px; width:22px; height:22px; z-index:1; pointer-events:none; }
.checkout-colour-select select { padding-left:47px; }
.bag-line .bag-line-price { font-size:18px; margin-top:20px; }
.checkout-price-note { font-size:11px; }
.checkout-page .footer>.wrap { max-width:1280px; }
/* Product photography and purchase details */
.product-breadcrumb { padding:28px 0 24px; }
.product-breadcrumb .breadcrumb { margin:0; font-size:11px; }
.product-page .product-detail { grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:48px; padding-bottom:38px; align-items:start; }
.product-gallery { min-width:0; }
.product-page .product-art { position:relative; top:auto; aspect-ratio:1.15; border-radius:12px; background:#f3f0e7; overflow:hidden; display:block; }
.product-page .product-art>img { width:100%; max-width:100%; height:100%; object-fit:cover; transition:transform .25s ease; mix-blend-mode:normal; }
.product-page .product-art.is-zoomed>img { transform:scale(1.65); }
.product-page .product-label { background:#f4efc7; color:var(--ink); top:18px; left:18px; font-size:10px; padding:8px 14px; }
.gallery-zoom,.gallery-arrow { border:1px solid #e8e5db; background:#fff; color:var(--ink); width:36px; height:36px; border-radius:50%; display:grid; place-items:center; position:absolute; z-index:2; padding:0; }
.gallery-zoom { top:18px; right:18px; }
.gallery-arrow { top:calc(50% - 18px); }
.gallery-prev { left:14px; }
.gallery-next { right:14px; }
.gallery-zoom .icon,.gallery-arrow .icon { width:18px; height:18px; }
.gallery-thumbs { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:14px; }
.gallery-thumbs button { position:relative; min-width:0; border:1px solid transparent; border-radius:10px; overflow:hidden; background:#f4f1e9; padding:0; height:100px; }
.gallery-thumbs button[aria-pressed=true] { border-color:#cfc100; }
.gallery-thumbs img { width:100%; height:100%; object-fit:cover; mix-blend-mode:normal; }
.gallery-thumbs [data-gallery-view=detail] img { transform:scale(1.55); }
.gallery-thumbs span { position:absolute; bottom:6px; left:8px; background:#fffD; border-radius:999px; padding:3px 8px; font-size:10px; }
.product-copy>.eyebrow { font-size:10px; letter-spacing:.12em; color:var(--muted); margin:0 0 8px; }
.product-copy>.eyebrow:before { display:none; }
.product-copy h1 { font-size:clamp(62px,6.5vw,94px); margin:0 0 14px; line-height:1; }
.product-price-row { display:flex; align-items:center; gap:18px; margin-bottom:20px; }
.product-page .detail-price { font-size:25px; margin:0; font-weight:500; letter-spacing:-.035em; white-space:nowrap; }
.product-price-row .fine-print { font-size:10px; line-height:1.5; border-left:1px solid var(--line); padding-left:16px; }
.product-page .description { font-size:14px; line-height:1.6; margin:0 0 23px; color:#66675f; }
.product-colour-label { margin:0 0 10px; font-size:12px; }
.product-colour-label b { color:var(--ink); }
.product-page .colour-options { gap:10px; margin:0 0 18px; }
.product-page .colour-btn { border-radius:10px; padding:10px 16px; min-width:115px; border-color:var(--line); background:#fff; font-size:12px; }
.product-page .colour-btn[aria-pressed=true] { background:#f8f4d6; border-color:#d1c400; }
.product-page .detail-actions { gap:10px; margin:0 0 22px; }
.product-page .detail-actions .tryon-action { border-color:#a9aaa0; padding:14px 20px; gap:12px; }
.product-page .detail-actions .purchase-row { grid-template-columns:1.45fr 1fr; gap:10px; }
.product-page .detail-actions .purchase-row .btn { padding:14px 18px; }
.product-page .specs { display:grid; grid-template-columns:1fr 1fr; gap:10px; padding:18px 0; margin:0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.product-page .specs>div { display:flex; align-items:center; gap:14px; padding:14px; border:1px solid #efede5; border-radius:12px; background:#fffc; }
.product-page .specs .icon { width:24px; height:24px; flex-shrink:0; }
.product-page .specs dt { font-size:10px; line-height:1.4; color:var(--muted); }
.product-page .specs dd { font-size:13px; margin:4px 0 0; }
.product-service-notes { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; padding:20px 0 12px; }
.product-service-notes>div { display:flex; align-items:flex-start; gap:10px; }
.product-service-notes .icon { width:21px; height:21px; flex-shrink:0; }
.product-service-notes b { font-weight:500; font-size:10px; display:block; }
.product-service-notes small { font-size:9px; color:var(--muted); display:block; margin-top:3px; line-height:1.5; }
.product-demo-caption { font-size:10px; color:var(--muted); }
.product-visit-banner { position:relative; overflow:hidden; border-radius:22px; background:#f0e9da; margin-bottom:36px; min-height:300px; }
.product-visit-banner>img { position:absolute; right:0; top:0; width:65%; height:100%; object-fit:cover; object-position:right center; }
.product-visit-banner:after { position:absolute; content:''; inset:0; background:linear-gradient(90deg,#f3eddf 0%,#f3eddf 34%,#f3eddf00 63%); pointer-events:none; }
.product-visit-banner>div { position:relative; z-index:1; padding:36px; width:57%; }
.product-visit-banner .eyebrow { font-size:9px; margin-bottom:16px; }
.product-visit-banner .eyebrow:before { display:none; }
.product-visit-banner h2 { font-size:40px; line-height:1.08; }
.product-visit-banner p { font-size:13px; line-height:1.6; color:#626258; margin:16px 0; }
.product-visit-banner .btn { padding:13px 20px; font-size:12px; }
.product-page .footer { padding:35px 0 22px; }
.product-page .footer-grid { padding-bottom:30px; }
.product-page .footer-grid p { font-size:11px; }
.product-page .footer h3 { font-size:12px; }
.product-page .footer-links { font-size:11px; gap:10px; }
@media(max-width:1050px) {
 .product-page .product-detail { gap:28px; }
 .bag-line { grid-template-columns:120px minmax(0,1fr); gap:18px; }
 .bag-line>img { width:120px; height:120px; }
 .checkout-main,.checkout-summary { padding:24px; }
 .checkout-progress button { gap:7px; font-size:11px; }
 .checkout-progress button:not(:last-child)::after { margin-left:0; }
 .checkout-step-number { width:26px; height:26px; }
 .product-service-notes { gap:10px; }
 .product-service-notes>div { display:block; }
 .product-service-notes .icon { margin-bottom:5px; }
}
@media(max-width:760px) {
 .checkout-grid { grid-template-columns:1fr; }
 .checkout-main,.checkout-summary { padding:22px; }
 .checkout h2 { font-size:31px; }
 .checkout-help { font-size:12px; }
 .checkout-summary h2 { font-size:28px; }
 .checkout-progress { gap:8px; }
 .checkout-progress button { font-size:11px; gap:7px; }
 .checkout-step-number { width:26px; height:26px; }
 .bag-line { grid-template-columns:85px minmax(0,1fr); gap:14px; }
 .bag-line>img { width:85px; height:100px; }
 .bag-line h3 { font-size:24px; }
 .bag-line p { font-size:11px; }
 .bag-line-fields { gap:10px; grid-template-columns:1fr 65px; }
 .checkout select { font-size:12px; padding:10px; }
 .checkout-colour-select select { padding-left:35px; }
 .checkout-colour-select>.swatch { left:9px; width:18px; height:18px; top:19px; }
 .shop-design .nav-actions>.saved-link+ .saved-link { padding-left:12px; }
 .product-page .product-detail { grid-template-columns:1fr; gap:28px; }
 .product-page .product-art { aspect-ratio:1.15; }
 .product-page .product-copy h1 { font-size:68px; }
 .product-page .product-copy>.eyebrow { font-size:10px; }
 .product-breadcrumb { padding:22px 0; }
 .product-visit-banner { min-height:470px; }
 .product-visit-banner>div { padding:25px; width:100%; }
 .product-visit-banner h2 { font-size:35px; }
 .product-visit-banner>img { width:100%; height:100%; object-position:75% center; }
 .product-visit-banner:after { background:linear-gradient(180deg,#f3eddf 0%,#f3eddf 28%,#f3eddf00 68%); }
 .product-visit-banner p { font-size:12px; max-width:240px; }
 .product-page .product-service-notes>div { display:flex; }
 .gallery-thumbs button { height:85px; }
}
@media(prefers-reduced-motion:reduce) { .product-page .product-art>img { transition:none; } }

/* Genuine alpha cutouts need no colour blending or white photo backdrop. */
.shop-design .bag-line>img,.shop-design .summary-photo img { background:transparent; }
