@import url('./liquor-image-sizing.css?v=20261007-optimised');
.catalogue-tools { padding-block: 2.5rem 2rem; }
.product-search { margin:0 0 1.5rem; width:100%; max-width:400px; }
.product-search label { display:block; color:var(--brown); margin-bottom:.35rem; font-size:.9rem; }
.product-search-controls { display:flex; flex-wrap:wrap; gap:.6rem; }
.product-search input { flex:1 1 140px; min-width:0; width:100%; padding:.5rem .65rem; border:1px solid var(--brown); border-radius:4px; background:var(--paper); color:var(--ink); font:inherit; font-size:16px; }
.product-search button { min-height:44px; padding:.5rem .8rem; border:1px solid var(--burgundy); border-radius:4px; background:var(--burgundy); color:var(--paper); font:inherit; font-size:.9rem; cursor:pointer; }
#product-search-clear { background:transparent; color:var(--burgundy); }
.product-search :focus-visible { outline:2px solid var(--burgundy); outline-offset:3px; }
.product-search[hidden],#product-search-clear[hidden] { display:none!important; }
.catalogue-tools h1 { font-family: inherit; font-size: clamp(1.65rem,3vw,2.1rem); margin: 0 0 3rem; }
.filter-toolbar { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.filter-toolbar .filter-open { margin-left:auto; border:1px solid var(--burgundy); border-radius:2rem; padding:.55rem 1.1rem; background:transparent; color:var(--burgundy); font:inherit; cursor:pointer; }
.filter-toolbar .filter-open:hover,.filter-toolbar .filter-open[aria-pressed="true"] { background:var(--burgundy); color:var(--cream, #fffaf4); }
.filter-toolbar .filter-open:focus-visible { outline:2px solid var(--burgundy); outline-offset:4px; }
.wine-pagination[hidden] { display:none!important; }
#filter-open { display:flex; align-items:center; gap:.7rem; color:var(--brown); font:inherit; letter-spacing:.06em; background:none; border:0; padding:.6rem 0; cursor:pointer; }
#filter-open svg { color:var(--gold); }
#filter-results { margin:0; color:var(--brown); }
.product-sort { display:flex; align-items:center; gap:.6rem; margin-left:auto; color:var(--brown); }
.product-sort select { max-width:100%; padding:.6rem 1.4rem .6rem .5rem; border:0; background:transparent; color:var(--brown); font:inherit; cursor:pointer; }
.product-sort select:focus-visible { outline:2px solid var(--burgundy); outline-offset:3px; }
@media (max-width:540px) { .product-sort { margin-left:0; } #filter-results { flex-basis:100%; } }
.filter-drawer { position:fixed; inset:0 0 0 auto; margin:0; width:min(460px,100%); height:100%; height:100dvh; max-width:100%; max-height:100%; padding:0; border:0; background:var(--paper); color:var(--ink); }
.filter-drawer::backdrop { background:rgba(0,0,0,.42); }
.filter-drawer[open] { animation:filter-slide .22s ease-out; }
@keyframes filter-slide { from { transform:translateX(100%); } to { transform:translateX(0); } }
body.filter-drawer-open { overflow:hidden; }
#wine-filters { height:100%; display:flex; flex-direction:column; }
.filter-drawer-head { position:relative; padding:1.2rem 4rem 1rem; text-align:center; border-bottom:1px solid var(--line); flex-shrink:0; }
.filter-drawer-head h2 { font-family:inherit; font-weight:700; font-size:1.1rem; margin:0 0 .3rem; }
.filter-drawer-head p { margin:0; color:var(--brown); font-size:.95rem; }
#filter-close { position:absolute; top:1rem; right:1.2rem; width:44px; height:44px; border:0; background:none; color:var(--brown); font:300 2.4rem/1 sans-serif; cursor:pointer; }
.filter-drawer-body { flex:1; min-height:0; overflow-y:auto; padding:1.7rem 1.8rem; }
.filter-group { margin:0; border:0; }
.filter-group summary { display:flex; align-items:center; justify-content:space-between; padding:1rem 0; list-style:none; cursor:pointer; color:var(--brown); font-size:1.1rem; }
.filter-group summary::-webkit-details-marker { display:none; }
.filter-group summary::after { content:"→"; font-size:1.3rem; }
.filter-group[open] summary::after { content:"−"; }
.filter-group fieldset { border:0; padding:.25rem 0 1rem; margin:0; min-width:0; }
.filter-choice { display:flex; align-items:center; gap:.7rem; padding:.65rem 0; cursor:pointer; font-size:.95rem; }
.filter-choice input { accent-color:var(--burgundy); width:17px; height:17px; flex-shrink:0; }
.filter-region-child { padding-left:1.35rem; font-size:.9rem; }
.filter-region-child[hidden] { display:none!important; }
.filter-region-parent { font-weight:600; margin-top:.35rem; }
.filter-price-note { font-size:.8rem; color:var(--brown); margin:0 0 1rem; }
.filter-drawer-foot { display:flex; gap:1.5rem; justify-content:space-between; padding:1.4rem 1.8rem max(1.4rem,env(safe-area-inset-bottom)); border-top:1px solid var(--line); flex-shrink:0; }
.filter-reset,.filter-apply { font:inherit; min-height:48px; cursor:pointer; }
.filter-reset { color:var(--brown); background:none; border:0; text-decoration:underline; text-underline-offset:4px; padding:.6rem; }
.filter-apply { flex:1; background:var(--gold); border:1px solid var(--gold); border-radius:4px; color:var(--ink); padding:.6rem 1.5rem; }
.filter-empty { padding-block:4rem 5rem; }
.filter-empty h2 { font-size:1.8rem; }
.filter-sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.filter-drawer :focus-visible,#filter-open:focus-visible { outline:2px solid var(--burgundy); outline-offset:4px; }
[data-wine-card][hidden],.filter-toolbar[hidden],.filter-empty[hidden] { display:none!important; }
@media(max-width:600px) { .filter-drawer { width:min(420px,92vw); } .filter-drawer-body { padding-inline:1.3rem; } .filter-drawer-foot { padding-inline:1.3rem; gap:.8rem; } }
@media(prefers-reduced-motion:reduce) { .filter-drawer[open] { animation:none; } }

.wine-product-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:3rem 2rem; padding-block:1.5rem 5rem; }
.wine-grid-card { min-width:0; }
.wine-card-link { display:block; text-decoration:none; color:var(--ink); }
.wine-card-image { aspect-ratio:1; overflow:hidden; background:transparent; }
.wine-card-image img { display:block; width:100%; height:100%; object-fit:contain; transition:transform .3s ease; }
.wine-card-link:hover img { transform:scale(1.035); }
.wine-grid-card h2 { font-family:inherit; font-size:1.05rem; line-height:1.45; font-weight:400; max-width:none; margin:1rem 0 .45rem; }
.wine-colour-dot { display:inline-block; width:.65rem; height:.65rem; border-radius:50%; background:var(--burgundy); margin-right:.55rem; vertical-align:.03em; }
.wine-card-price { font-size:.95rem; color:var(--brown); margin:0; letter-spacing:.015em; }
.wine-card-price span { font-size:.85em; }
.wine-card-link:focus-visible { outline:2px solid var(--burgundy); outline-offset:6px; }
@media(max-width:1000px) { .wine-product-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:2.5rem 1.5rem; } }
@media(max-width:640px) { .wine-product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem 1rem; padding-top:.75rem; } .wine-grid-card h2 { font-size:.95rem; margin-top:.7rem; } .wine-card-price { font-size:.85rem; } }
@media(prefers-reduced-motion:reduce) { .wine-card-image img { transition:none; } .wine-card-link:hover img { transform:none; } }

[data-category="white-wine"] .wine-colour-dot { background:#e7d99d; border:1px solid #9b8845; }
[data-category="sparkling"] .wine-colour-dot { background:#d7c28c; border:1px solid #8b7334; }

.wine-pagination { display:flex; flex-wrap:wrap; justify-content:center; gap:.5rem; padding-bottom:4rem; }
.wine-pagination[hidden] { display:none; }
.wine-pagination button { min-width:44px; min-height:44px; padding:.5rem .8rem; border:1px solid var(--line); border-radius:4px; background:var(--paper); color:var(--burgundy); font:inherit; cursor:pointer; }
.wine-pagination button[aria-current="page"] { background:var(--burgundy); border-color:var(--burgundy); color:var(--paper); }
.wine-pagination button:disabled { opacity:.45; cursor:default; }
.wine-pagination button:focus-visible { outline:2px solid var(--burgundy); outline-offset:3px; }
.catalogue-tools h1 { scroll-margin-top:7rem; }
