/* Shop. Copied from shop-frame/styles.css (frozen 12 Sep). Header, banner, footer and fonts come from /chrome.css (injected by build.mjs). */

*{box-sizing:border-box}
:root{--paper:#fff;--ink:#191817;--brown:#191817;--sand:#e8e2d8;--muted:#625f5a;--line:#d8d5cf;--white:#fff;--soft:#f4f2ec;--gutter:clamp(22px,4.2vw,108px);--font:"General Sans",Arial,sans-serif;--display:"Cabinet Grotesk",Arial,sans-serif;color-scheme:light}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.55 var(--font);-webkit-font-smoothing:antialiased}
a{color:inherit;text-underline-offset:4px}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.05;letter-spacing:-.047em}
h1{font-size:clamp(40px,4.4vw,88px);margin-bottom:22px}
h2{font-size:26px;letter-spacing:-.043em;line-height:1.1}
h3{font-size:18px;font-weight:500;letter-spacing:-.025em}
p{margin-bottom:16px}

/* Pill */
button,.button{border:1px solid var(--brown);background:var(--brown);color:#fff;padding:15px 25px;min-height:50px;border-radius:999px;cursor:pointer;font:500 14px/1.35 var(--font);transition:background .2s,transform .15s;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:10px}
button:hover,.button:hover{background:#353535}
button:active,.button:active{transform:scale(.98)}
button:disabled{cursor:not-allowed;opacity:.4}
button:disabled:hover{background:var(--brown)}
.secondary{background:transparent;color:var(--ink);border-color:var(--ink)}
.secondary:hover{background:var(--soft)}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #83654a;outline-offset:4px}

/* Collections sub-nav, shop pages only. Header is the site chrome. */
.shop-nav{display:flex;gap:22px;padding:0 var(--gutter);border-bottom:1px solid var(--line);font-size:13px;color:var(--muted);overflow-x:auto;white-space:nowrap;scrollbar-width:none}
.shop-nav::-webkit-scrollbar{display:none}
.shop-nav a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none}
.shop-nav a:hover,.shop-nav .current{color:var(--ink)}
.shop-nav .current{text-decoration:none;text-underline-offset:6px}
.skip{position:absolute;left:12px;top:-40px;z-index:40;background:var(--ink);color:#fff;padding:8px 14px}
.skip:focus{top:12px}
.shell{margin:auto;padding:40px var(--gutter) 70px;min-height:60vh}

/* Type helpers */
.eyebrow{font-size:11px;margin-bottom:22px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.intro{color:var(--muted);font-size:17px;max-width:640px;margin-bottom:28px}
.small{font-size:13px}
.muted{color:var(--muted)}

/* Home fold */
.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center;padding-bottom:70px;border-bottom:1px solid var(--line);margin-bottom:60px}
.hero h1{max-width:12ch}
.media{background:var(--sand);border-radius:12px;aspect-ratio:4/5;overflow:hidden}
.media img{width:100%;height:100%;object-fit:cover;display:block}
.hero .media{aspect-ratio:5/4}
.section-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:28px}
.send-on{margin-top:70px;padding:40px;background:var(--sand);border-radius:12px;display:flex;justify-content:space-between;align-items:center;gap:24px}
.send-on h2{margin:0}

/* Cards, same geometry as planner unit grid */
.unit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 24px;margin-bottom:18px}
.unit-card{display:block;text-decoration:none}
.unit-visual{aspect-ratio:4/5;background:var(--sand);border-radius:12px;overflow:hidden;transition:box-shadow .2s}
.unit-visual img{width:100%;height:100%;object-fit:cover;display:block}
.unit-card:hover .unit-visual{box-shadow:0 0 0 2px var(--ink)}
.unit-content{padding:18px 0 0;display:flex;flex-direction:column;align-items:flex-start}
.unit-content h3{font-size:20px;font-weight:500;margin-bottom:6px}
.unit-content p{font-size:14px;color:var(--muted);margin-bottom:14px}
.unit-cta{font-size:13px;padding:11px 18px;min-height:0}

/* Collection empty */
.empty{border:1px dashed #aaa091;border-radius:12px;padding:40px;max-width:640px;margin-bottom:48px}
.empty p{margin:0;color:var(--muted)}

/* Product */
.product{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px, .8fr);gap:64px;align-items:start}
.product-info{position:sticky;top:102px}
.product-info h1{font-size:clamp(32px,2.8vw,56px);margin-bottom:16px}
.product-info .intro{font-size:16px}
.price-row{font-size:15px;padding:18px 0;border-block:1px solid var(--line);margin:24px 0}
.tax-note{display:block;font-size:12px;color:var(--muted);margin-top:8px}
.thumbs{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
.thumbs button{width:72px;height:90px;padding:0;border:1px solid transparent;border-radius:8px;background:var(--sand);overflow:hidden;min-height:0;min-width:0}
.thumbs button[aria-pressed=true]{border-color:var(--ink)}
.thumbs img{width:100%;height:100%;object-fit:cover;display:block}
.folds{margin-top:32px}
.product-info button{width:100%}
.option{display:block;font-size:13px;font-weight:500;margin-bottom:14px}
.option select{display:block;width:100%;margin-top:6px;min-height:50px;padding:0 16px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);font:400 15px/1.35 var(--font)}
.option select:focus-visible{outline:3px solid #83654a;outline-offset:2px}
.fold{border-bottom:1px solid var(--line)}
.fold summary{cursor:pointer;padding:16px 0;font-weight:500;font-size:15px;list-style:none;display:flex;justify-content:space-between}
.fold summary::after{content:"+";color:var(--muted)}
.fold[open] summary::after{content:"\2212"}
.fold p{font-size:14px;color:var(--muted);padding-bottom:16px;margin:0}
.fineprint{font-size:12px;color:var(--muted);margin-top:24px}

/* Cart, sand panel like the hire ticket */
.ticket{background:var(--sand);padding:28px 24px;border-radius:12px;max-width:480px}
.ticket h2{font-family:var(--font);font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;color:var(--muted);margin-bottom:22px}
.ticket p{font-size:14px}
.ticket .note{border-top:1px solid #d3cbbf;padding-top:18px;margin:24px 0 0;font-size:13px;color:var(--ink)}
.cart{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px, .8fr);gap:64px;align-items:start}
#checkout[aria-disabled="true"]{pointer-events:none;opacity:.4}
.cart .ticket{position:sticky;top:102px;max-width:none}
.ticket .row{display:flex;justify-content:space-between;gap:16px;font-size:15px;padding:12px 0;border-bottom:1px solid #d3cbbf;margin:0}
.ticket .button{width:100%;margin-top:22px}
.lines{list-style:none;margin:0;padding:0}
.line{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:24px;padding:24px 0;border-bottom:1px solid var(--line)}
.line-visual{display:block;aspect-ratio:4/5;background:var(--sand);border-radius:12px;overflow:hidden}
.line-visual img{width:100%;height:100%;object-fit:cover;display:block}
.line-body h3{font-size:20px;font-weight:500;margin-bottom:4px}
.line-body h3 a{text-decoration:none}
.line-price{font-size:15px;white-space:nowrap}
.qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;margin-top:16px}
.qty button{min-height:44px;min-width:44px;padding:0;border:0;border-radius:999px;background:none;color:var(--ink);font:500 18px/1 var(--font);cursor:pointer}
.qty button:disabled{color:var(--muted);cursor:default}
.qty span{min-width:28px;text-align:center;font-size:15px;font-weight:500}
.remove{display:block;min-height:44px;padding:0;border:0;background:none;color:var(--muted);font:400 13px/1 var(--font);text-decoration:none;text-underline-offset:3px;cursor:pointer;margin-top:8px}
.qty button:focus-visible,.remove:focus-visible{outline:3px solid #83654a;outline-offset:2px}

/* R18: hide the catalogue until this tab has confirmed. Header, banner, footer stay. */
html:not(.age-ok) .shell,html:not(.age-ok) .shop-nav{visibility:hidden}
#age-gate{border:0;padding:40px 32px;max-width:420px;width:calc(100% - 48px);background:var(--paper);color:var(--ink);border-radius:12px}
#age-gate::backdrop{background:#191817cc}
#age-gate h2{font-size:32px;margin-bottom:14px}
#age-gate p{color:var(--muted);margin-bottom:28px}
#age-gate .age-actions{display:flex;gap:12px;flex-wrap:wrap}
#age-gate .age-actions button{flex:1;min-width:140px}

@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ≤768, same block as the Shopify port */
@media(min-width:1800px){.product-info,.cart .ticket{top:140px}}
@media(max-width:768px){.shop-nav{gap:18px}.hero{grid-template-columns:1fr;gap:32px;padding-bottom:48px;margin-bottom:40px}.unit-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 16px}.send-on{flex-direction:column;align-items:flex-start;padding:28px}.product{grid-template-columns:1fr;gap:32px}.product-info{position:static}.cart{grid-template-columns:1fr;gap:32px}.cart .ticket{position:static}.line{grid-template-columns:88px minmax(0,1fr);gap:16px}.line-price{grid-column:2}#age-gate{padding:28px 22px}#age-gate h2{font-size:28px}#age-gate .age-actions{flex-direction:column}#age-gate .age-actions button{width:100%;min-width:0}}

/* Shop refinement: measured against the current home drinks chapter, 12 September. */
[hidden]{display:none!important}
html{scroll-padding-top:104px;scroll-behavior:smooth}
body{letter-spacing:-.012em}
.shell{padding:48px var(--gutter) 80px}
h1{line-height:1;letter-spacing:-.043em}
h2{font-size:clamp(32px,3.7vw,56px);line-height:1;letter-spacing:-.043em}
.shop-nav{gap:28px;font-size:14px;background:#fff}
.shop-nav a{min-height:52px;border-bottom:2px solid transparent}
.shop-nav .current{border-bottom-color:#46513c;text-decoration:none}
.hero{background:#46513c;color:#faf8f3;border:0;border-radius:20px;padding:48px;gap:48px;grid-template-columns:1.15fr 1fr;margin-bottom:72px;min-height:480px}
.hero h1{font-size:clamp(52px,5.3vw,88px);max-width:12ch;margin-bottom:24px}
.hero .eyebrow{color:#e2e5db;font-size:12px;letter-spacing:.04em;text-transform:none;margin-bottom:32px}
.hero .intro{color:#f0f0e9;font-size:18px;line-height:1.5;max-width:370px;margin-bottom:28px}
.hero .button{background:#faf8f3;color:#303929;border-color:#faf8f3}
.hero .button:hover{background:#e8e2d8}
.hero .media{aspect-ratio:6/5;border-radius:12px;height:100%;max-height:490px}
.hero .media img{object-position:center 55%}
.section-head{gap:24px;align-items:end;margin-bottom:32px}
.section-head h2{margin:0;scroll-margin-top:110px}
.section-head p{font-size:14px;color:var(--muted);margin:0}
#collections-grid,#others{gap:16px;grid-template-columns:repeat(3,minmax(0,1fr))}
#collections-grid .unit-card,#others .unit-card{background:#f3f2ef;border:1px solid transparent;border-radius:12px;overflow:hidden;transition:background .2s,border-color .2s}
#collections-grid .unit-card:hover,#others .unit-card:hover{background:#e8e2d8;border-color:#c9c4b9}
#collections-grid .unit-content,#others .unit-content{padding:28px 64px 28px 28px;position:relative;min-height:132px;justify-content:center}
#collections-grid h3,#others h3{font-size:28px;font-weight:400;margin:0 0 8px}
#collections-grid p,#others p{margin:0;font-size:14px}
.unit-arrow{position:absolute;right:24px;top:50%;transform:translateY(-50%);font-size:24px}
#collections-grid .unit-visual,#others .unit-visual{aspect-ratio:16/9;border-radius:0}
#others{grid-template-columns:repeat(3,minmax(0,1fr))}
.send-on{margin-top:72px;padding:40px 48px;border-radius:20px;background:#e8e2d8}
.send-on h2{font-size:36px;margin-bottom:12px}
.send-on p{margin:0;color:var(--muted);font-size:16px;max-width:470px}
.send-on .button{flex-shrink:0}
.shell[data-page=collection]>h1,.shell[data-page=cart]>h1{margin-bottom:40px}
.eyebrow{text-transform:none;letter-spacing:0;font-size:14px;margin-bottom:24px}
.empty{border:0;background:#f3f2ef;padding:40px;border-radius:16px;max-width:none;margin-bottom:64px}
.empty p{max-width:520px}
#products{gap:40px 24px;margin-bottom:64px}
#products .unit-content{position:relative;padding-right:66px}
#products .unit-cta{position:absolute;right:0;top:18px;background:transparent;color:var(--ink);padding:8px 14px;min-height:44px}
.product{grid-template-columns:minmax(0,1fr) minmax(320px,.8fr);gap:clamp(32px,5vw,80px)}
.product>.media,.product>div>.media{max-height:720px;aspect-ratio:1/1}
.product-info h1{font-size:clamp(36px,3.7vw,56px)}
.price-row{font-size:24px}
.cart{grid-template-columns:minmax(0,1fr) minmax(320px,.65fr);gap:48px}
.cart:has(#lines[hidden]){display:block}
.cart:has(#lines[hidden]) .ticket{max-width:none;padding:48px;background:#f3f2ef}
.cart:has(#lines[hidden]) .ticket h2{display:none}
.empty-cart>p:first-child{font-family:var(--display);font-size:32px;letter-spacing:-.03em}
.empty-cart .button{width:auto}
.cart:has(#lines[hidden]) .note{max-width:480px}
#age-gate{max-width:480px;padding:40px;border-radius:20px}
#age-gate h2{font-size:40px}
#age-gate .age-actions{flex-direction:column;gap:10px}
#age-gate .age-actions button{width:100%}
#age-gate .age-actions button:first-child{background:#46513c;border-color:#46513c}
@media(min-width:1800px){.hero{padding:64px;min-height:600px}.hero .media{max-height:560px}.hero .intro{font-size:20px;max-width:440px}}
@media(max-width:1024px){.hero{gap:32px;padding:32px;min-height:400px}.hero h1{font-size:56px}.hero .intro{font-size:16px}.product,.cart{gap:32px}.section-head{align-items:start;flex-direction:column;gap:16px}}
@media(max-width:780px){
 .shell{padding:24px 22px 48px}.shop-nav{gap:24px}.shop-nav a{min-height:48px}
 .hero{grid-template-columns:1fr;padding:28px;gap:28px;margin-bottom:48px;min-height:0;border-radius:16px}
 .hero h1{font-size:48px}.hero .eyebrow{margin-bottom:24px;font-size:11px}.hero .intro{font-size:16px;margin-bottom:24px}
 .hero .media{aspect-ratio:4/3;max-height:360px}.hero .button{font-size:14px}
 h2{font-size:36px}.section-head{margin-bottom:24px}.section-head p{font-size:14px}
 #collections-grid,#others{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 #collections-grid .unit-content,#others .unit-content{padding:20px 18px 46px;min-height:148px;justify-content:flex-start}
 #collections-grid h3,#others h3{font-size:24px}#collections-grid p,#others p{font-size:13px;line-height:1.4}
 .unit-arrow{top:auto;bottom:12px;right:18px;transform:none;font-size:22px}
 .send-on{margin-top:48px;padding:28px;gap:24px;border-radius:16px}.send-on h2{font-size:32px}.send-on p{font-size:15px}
 .product,.cart{grid-template-columns:1fr}.product-info,.cart .ticket{position:static}
 .empty{padding:28px;margin-bottom:48px}.cart:has(#lines[hidden]) .ticket{padding:28px}
 #products .unit-content{padding-right:0}#products .unit-cta{position:static;margin-top:12px}
 #age-gate{padding:32px 24px}#age-gate h2{font-size:34px}
}
@media(max-width:359px){.shell{padding-inline:16px}.hero{padding:24px}.hero h1{font-size:42px}#collections-grid,#others{grid-template-columns:1fr}#collections-grid .unit-content,#others .unit-content{min-height:110px;padding:24px 54px 24px 24px}.unit-arrow{top:50%;bottom:auto;transform:translateY(-50%)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.skip{top:12px;transform:translateY(-160%)}
.skip:focus{transform:none}
.product-missing .product{display:block}
.product-missing .product>div:first-child{display:none}
.product-missing .product-info{position:static}
.product-missing .fineprint{max-width:600px}
.product-missing .empty{margin-bottom:24px}
/* The extra Cart link needs the compact navigation through tablet widths. */
@media(min-width:781px) and (max-width:1100px){
 html .header .desktop-nav,html .header .nav-cta,html .header .cart-link{display:none}
 html .header .mobile-menu{display:block;margin-left:auto}
 html .header .mobile-menu>summary{font-size:14px;padding:15px 0;display:flex;gap:14px;cursor:pointer;list-style:none}
 html .header .mobile-menu>summary::-webkit-details-marker{display:none}
 html .header .mobile-menu nav{position:absolute;left:0;right:0;top:78px;padding:20px var(--gutter) 30px;display:grid;gap:0;border-bottom:1px solid var(--line)}
 html .header .mobile-menu nav a{padding:14px 0;font-size:16px}
}
@media(min-width:781px){.hero{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}.hero>div{min-width:0}}
@media(min-width:781px) and (max-width:1024px){.hero h1{font-size:48px}}
.hero .media{width:100%;min-width:0}

/* Decorative, unbranded category photography. Real Shopify imagery takes priority. */
.collection-thumb{position:absolute;right:18px;top:50%;transform:translateY(-50%);width:112px;height:112px;background-image:url('/shop/category-art.webp');background-size:300% 200%;background-repeat:no-repeat;mix-blend-mode:multiply;pointer-events:none;transition:transform .2s}
.thumb-kegs{background-position:0 0}.thumb-cans-rtds{background-position:50% 0}.thumb-wine{background-position:100% 0}
.thumb-spirits{background-position:0 100%}.thumb-gift-cards{background-position:50% 100%}.thumb-specials{background-position:100% 100%}
.collection-thumb.is-live{background:none;mix-blend-mode:normal}
.collection-thumb img{width:100%;height:100%;object-fit:contain;border-radius:8px}
#collections-grid .unit-content,#others .unit-content{min-height:152px;padding-right:144px}
#collections-grid .unit-card:hover,#others .unit-card:hover{background:#ebe9e3}
.unit-card:hover .collection-thumb{transform:translateY(-50%) scale(1.04)}
@media(min-width:781px) and (max-width:1100px){#collections-grid,#others{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:780px){
 #collections-grid .unit-content,#others .unit-content{min-height:198px;padding:20px 18px 104px}
 .collection-thumb{width:100px;height:100px;right:10px;bottom:4px;top:auto;transform:none}
 .unit-card:hover .collection-thumb{transform:scale(1.04)}
}
@media(max-width:359px){#collections-grid .unit-content,#others .unit-content{min-height:132px;padding:24px 132px 24px 24px}.collection-thumb{right:14px;top:50%;bottom:auto;transform:translateY(-50%)}.unit-card:hover .collection-thumb{transform:translateY(-50%) scale(1.04)}}
@media(prefers-reduced-motion:reduce){.collection-thumb{transition:none}}
.collection-thumb{mix-blend-mode:darken}
.collection-thumb.is-live{mix-blend-mode:normal}

/* Stage 1: catalogue controls follow the existing shop type, palette and buttons. */
.shop-search{margin:28px 0 20px;max-width:850px}.shop-search label{display:block;margin-bottom:10px;font-size:16px}.search-controls{display:flex;gap:12px;align-items:center}.search-controls input{flex:1;min-width:0;width:100%;padding:14px 18px;border:1px solid var(--line,#ccc);border-radius:8px;font:inherit;background:#fff;color:inherit;min-height:48px}.search-controls button{flex-shrink:0}.browse-actions{display:flex;gap:12px;justify-content:center;margin:28px 0}.card-price{font-weight:500;color:var(--ink,#222)}.pack-note{overflow-wrap:anywhere}.stock-note{font-size:14px}.image-pending{font-size:14px;color:#696860}.unit-visual{display:flex;align-items:center;justify-content:center}#browse-status{min-height:24px;margin:20px 0}#products .unit-content{display:flex;flex-direction:column}#products .unit-cta{align-self:flex-start;margin-top:auto}#products h3{overflow-wrap:anywhere}#products .pack-note{font-size:15px}button:disabled{cursor:wait;opacity:.55}.shop-search :focus-visible,.browse-actions :focus-visible,#products a:focus-visible{outline:2px solid #4b5541;outline-offset:4px}
@media(max-width:600px){.search-controls{flex-wrap:wrap}.search-controls input{flex-basis:100%}.search-controls button{min-height:48px}.shop-search{margin-top:24px}}

.hire-reference{border-bottom:1px solid var(--line,#ccc);padding-bottom:22px;margin-bottom:22px}.reference-actions{display:flex;gap:10px;flex-wrap:wrap}.reference-actions button{font-size:14px;min-height:44px;padding:12px 16px}#job{overflow-wrap:anywhere}#checkout[aria-disabled="true"]{opacity:.5;cursor:not-allowed}#cart-retry{margin-bottom:30px}.line .stock-note{color:#77452f;max-width:32em}.line-body{min-width:0}
