:root{--coffee:#6b4226;--dark:#3f291c;--cream:#fbf7f1;--paper:#fffdf9;--sand:#eadfce;--muted:#76695f;--line:#e5d8c8}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--dark);background:var(--cream);font-family:"DM Sans",sans-serif}button,input,select,textarea{font:inherit}.site-header{height:70px;padding:0 clamp(18px,5vw,72px);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20;background:rgba(251,247,241,.96);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:11px;color:inherit;text-decoration:none}.brand-mark{display:grid;place-items:center;width:39px;height:39px;border-radius:10px;background:var(--coffee);color:white;font-family:"Playfair Display",serif}.brand strong,.brand small{display:block}.brand small{font-size:.7rem;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}.cart-button,.primary-button{border:0;border-radius:9px;background:var(--coffee);color:white;padding:10px 15px;font-weight:700;text-decoration:none;cursor:pointer;display:inline-flex;align-items:center;gap:8px}.cart-button span{display:grid;place-items:center;min-width:21px;height:21px;padding:0 6px;background:white;color:var(--coffee);border-radius:50%;font-size:.72rem}.hero{padding:54px clamp(18px,7vw,100px) 42px;background:var(--sand);border-bottom:1px solid #ddccb7}.hero h1,.section-heading h2,.category-section h3,.drawer h2{font-family:"Playfair Display",serif}.hero h1{font-size:clamp(2.4rem,5vw,4.3rem);margin:.12em 0 0}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:700;color:var(--coffee);margin:0}.catalogue{padding:42px clamp(18px,6vw,88px) 90px;max-width:1150px;margin:auto}.section-heading{display:flex;gap:25px;align-items:end;justify-content:space-between}.section-heading h2{font-size:clamp(1.8rem,3.5vw,2.8rem);margin:0}.search{display:grid;gap:6px;color:var(--muted);font-size:.76rem;font-weight:700}.search input{width:min(310px,65vw);padding:11px 13px;border:1px solid var(--line);border-radius:9px;background:var(--paper)}.categories{display:flex;gap:7px;overflow:auto;padding:22px 0}.categories button{white-space:nowrap;border:1px solid var(--line);background:var(--paper);color:var(--dark);padding:8px 13px;border-radius:999px;cursor:pointer}.categories button.active{background:var(--coffee);color:white;border-color:var(--coffee)}.status{font-size:.86rem;color:var(--muted);margin:0 0 22px}.catalogue-lists{display:grid;gap:34px}.category-section{background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden}.category-section h3{font-size:1.45rem;margin:0;padding:16px 20px;background:#f2e8dc;border-bottom:1px solid var(--line)}.product-list{list-style:none;margin:0;padding:0}.product-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:18px;align-items:center;padding:13px 20px;border-bottom:1px solid #eee5d9}.product-row:last-child{border-bottom:0}.product-name{font-weight:600}.price{font-weight:700;color:var(--coffee)}.add-button{border:1px solid var(--coffee);color:var(--coffee);background:transparent;border-radius:8px;padding:6px 11px;font-weight:700;cursor:pointer}.add-button:hover{background:var(--coffee);color:white}.drawer{position:fixed;inset:0;z-index:40;display:none}.drawer.open{display:block}.drawer-backdrop{position:absolute;inset:0;background:rgba(39,25,17,.5)}.drawer-panel{position:absolute;right:0;top:0;bottom:0;width:min(520px,100%);overflow:auto;background:var(--cream);padding:28px;box-shadow:-20px 0 55px rgba(39,25,17,.18)}.drawer-heading{display:flex;justify-content:space-between;align-items:start}.drawer h2{margin:.15em 0;font-size:2rem}.icon-button{border:0;background:white;border-radius:50%;font-size:1.6rem;width:40px;height:40px;cursor:pointer}.cart-items{display:grid;gap:10px;margin:24px 0}.cart-line{display:grid;grid-template-columns:1fr auto;gap:8px;background:white;border:1px solid var(--line);border-radius:10px;padding:14px}.cart-line p{margin:0}.cart-line small{color:var(--muted)}.quantity{display:flex;align-items:center;gap:8px}.quantity button{width:27px;height:27px;border-radius:7px;border:1px solid var(--line);background:#f2e8dc;cursor:pointer}.cart-total{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:18px 0;font-size:1.08rem}.checkout-form{display:grid;gap:13px}.checkout-form h3{margin:10px 0 0}.checkout-form label{display:grid;gap:6px;color:var(--muted);font-size:.8rem;font-weight:700}.checkout-form input,.checkout-form select,.checkout-form textarea{width:100%;border:1px solid var(--line);background:white;border-radius:9px;padding:11px;color:var(--dark)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.submit-order{justify-content:center;margin-top:5px}.form-message{min-height:20px;color:var(--coffee);font-weight:600}.empty{padding:25px;text-align:center;color:var(--muted);background:white;border-radius:10px}footer{padding:25px clamp(18px,6vw,88px);background:var(--dark);color:white;display:flex;justify-content:space-between;gap:18px}footer span{opacity:.72}@media(max-width:650px){.site-header{height:64px}.brand small{display:none}.hero{padding-top:40px}.section-heading{display:grid;align-items:start}.search,.search input{width:100%}.product-row{grid-template-columns:minmax(0,1fr) auto;padding:12px 14px;gap:8px 12px}.product-row .add-button{grid-column:2}.category-section h3{padding:14px}.field-row{grid-template-columns:1fr}.drawer-panel{padding:20px}footer{display:grid}}
:root{--portal-close-size:42px}
.header-actions{display:flex;align-items:center;gap:10px}
.site-header .brand{font-family:"Playfair Display",serif;font-size:clamp(1.4rem,2.8vw,1.85rem);font-weight:700;line-height:1;white-space:nowrap}
.site-header .cart-button{min-width:65px;min-height:44px;justify-content:center;padding:6px 8px;background:transparent;color:var(--coffee);border:0;border-radius:10px;gap:3px}
.site-header .cart-button:hover,.site-header .cart-button:focus-visible{background:var(--sand);outline-offset:2px}
.cart-icon{width:27px;height:27px;flex:none}
.site-header .cart-button .cart-count{min-width:22px;height:22px;padding:0 5px;background:var(--coffee);color:white;border-radius:999px;font-family:"DM Sans",sans-serif;font-size:.72rem;font-weight:700;line-height:1}
.portal-close{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:var(--portal-close-size);padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--dark);font-size:.9rem;font-weight:700;text-decoration:none;white-space:nowrap}
.portal-close:hover,.portal-close:focus-visible{border-color:var(--coffee);background:#f2e8dc;outline-offset:2px}
.portal-close[hidden]{display:none}
.portal-close span[aria-hidden]{font-size:1.55rem;line-height:1}
.delivery-fields{display:grid;gap:9px}
.delivery-fields[hidden],#deliveryMapWrap[hidden]{display:none}
.map-toggle{justify-self:start;border:1px solid var(--coffee);border-radius:9px;background:var(--paper);color:var(--coffee);padding:10px 13px;font-weight:700;cursor:pointer}
.map-toggle:hover,.map-toggle:focus-visible{background:var(--sand)}
#deliveryMapWrap{display:grid;gap:8px}
#deliveryMap{height:260px;width:100%;border:1px solid var(--line);border-radius:9px;z-index:0}
.map-help{margin:0;color:var(--muted);font-size:.8rem;line-height:1.4}
@media(max-width:650px){.site-header{padding-inline:12px}.header-actions{gap:7px}.portal-close{padding:0 9px}.site-header .brand{font-size:clamp(1.25rem,5.7vw,1.5rem)}}
