:root { --cream:#f3ebdc; --paper:#fbf7ef; --espresso:#2b1b14; --wood:#704229; --brick:#9f3a2e; --tan:#b99b78; --line:rgba(43,27,20,.2); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--espresso); font-family:var(--font-geist-sans),Arial,sans-serif; }
button,a { font:inherit; }
button { color:inherit; }
a { color:inherit; text-decoration:none; }
.demo-banner { min-height:30px; display:grid; place-items:center; padding:6px 18px; background:var(--espresso); color:var(--cream); text-transform:uppercase; letter-spacing:.13em; font-size:9px; text-align:center; }
.store-header { min-height:90px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:30px; padding:10px clamp(22px,5vw,76px); background:var(--cream); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:30; }
.brand img { width:136px; height:64px; object-fit:cover; mix-blend-mode:multiply; }
.store-header nav { display:flex; gap:clamp(24px,4vw,60px); font-size:13px; font-weight:650; }
.store-header nav a { position:relative; }
.store-header nav a::after { content:""; position:absolute; left:0; right:100%; bottom:-8px; height:1px; background:var(--brick); transition:.25s; }
.store-header nav a:hover::after { right:0; }
.cart-button { justify-self:end; min-width:112px; height:48px; padding:0 8px 0 20px; border:1px solid var(--brick); background:transparent; display:flex; align-items:center; justify-content:space-between; gap:16px; cursor:pointer; font-weight:700; }
.cart-button b { width:31px; height:31px; display:grid; place-items:center; background:var(--brick); color:var(--paper); border-radius:50%; }
.eyebrow { margin:0; color:#8c6646; text-transform:uppercase; letter-spacing:.22em; font-size:10px; font-weight:750; }
h1,h2,h3,p { margin-top:0; }
h1,h2 { font-family:Georgia,"Times New Roman",serif; font-weight:400; }
h1 em,h2 em { color:var(--brick); font-weight:400; }
.store-hero { min-height:740px; display:grid; grid-template-columns:.88fr 1.12fr; border-bottom:1px solid var(--line); }
.store-hero-copy { padding:clamp(72px,8vw,120px) clamp(26px,6vw,92px); display:flex; flex-direction:column; justify-content:center; }
.store-hero h1 { margin:27px 0 34px; font-size:clamp(66px,7.5vw,116px); line-height:.88; letter-spacing:-.055em; }
.store-hero-copy>p:not(.eyebrow) { max-width:560px; font-size:18px; line-height:1.65; }
.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:28px; margin-top:26px; }
.primary-button { min-height:58px; padding:0 24px; display:inline-flex; align-items:center; justify-content:center; gap:36px; border:1px solid var(--brick); background:var(--brick); color:var(--paper); font-size:13px; font-weight:700; cursor:pointer; transition:.25s; }
.primary-button:hover { transform:translateY(-2px); background:#7f2d24; }
.text-link { font-size:12px; font-weight:700; text-decoration:underline; text-underline-offset:5px; }
.open-note { margin-top:42px; display:flex; align-items:center; gap:10px; text-transform:uppercase; letter-spacing:.1em; font-size:10px; font-weight:700; }
.open-note span { width:8px; height:8px; background:#628145; border-radius:50%; box-shadow:0 0 0 4px rgba(98,129,69,.14); }
.store-hero-image { position:relative; min-height:650px; margin:30px 30px 30px 0; background:linear-gradient(90deg,rgba(35,18,9,.05),rgba(35,18,9,.25)),url("/assets/island-interior.jpg") center/cover; }
.store-hero-image::before { content:""; position:absolute; inset:25px; border:1px solid rgba(251,247,239,.52); }
.store-hero-image>p { position:absolute; left:52px; top:52px; color:var(--paper); font:italic clamp(27px,3vw,44px)/1.1 Georgia,serif; max-width:360px; }
.hero-stamp { position:absolute; left:-64px; bottom:42px; width:230px; min-height:132px; padding:25px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; background:var(--paper); border:4px double var(--tan); color:var(--brick); box-shadow:0 15px 35px rgba(43,27,20,.18); text-align:center; }
.hero-stamp strong { font:28px Georgia,serif; }
.hero-stamp small { color:var(--espresso); font-size:9px; letter-spacing:.18em; font-weight:700; }
.quick-order { display:grid; grid-template-columns:repeat(3,1fr); background:var(--paper); border-bottom:1px solid var(--line); }
.quick-order>div { min-height:116px; padding:24px clamp(22px,4vw,54px); display:flex; align-items:center; gap:20px; border-right:1px solid var(--line); }
.quick-order>div:last-child { border-right:0; }
.quick-order>div>span { color:var(--brick); font:24px Georgia,serif; }
.quick-order p { margin:0; display:flex; flex-direction:column; gap:7px; }
.quick-order b { font:19px Georgia,serif; }
.quick-order small { color:#756153; }
.menu-section { padding:clamp(90px,10vw,150px) clamp(22px,6vw,92px); background:var(--paper); }
.section-heading { display:grid; grid-template-columns:1.15fr .85fr; gap:70px; align-items:end; padding-bottom:42px; border-bottom:1px solid var(--line); }
.section-heading h2,.cake-copy h2,.story-copy h2,.visit-copy h2 { margin:20px 0 0; font-size:clamp(54px,6.3vw,94px); line-height:.92; letter-spacing:-.05em; }
.section-heading>p { max-width:520px; line-height:1.7; color:#645147; }
.category-tabs { display:flex; gap:8px; flex-wrap:wrap; padding:30px 0 44px; }
.category-tabs button { min-height:42px; padding:0 20px; border:1px solid var(--line); background:transparent; cursor:pointer; font-size:12px; font-weight:700; }
.category-tabs button.active,.category-tabs button:hover { background:var(--espresso); color:var(--paper); }
.product-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.product-card { background:var(--cream); border:1px solid var(--line); display:flex; flex-direction:column; min-width:0; }
.product-image { aspect-ratio:1/1; overflow:hidden; position:relative; background:#d8c5ad; }
.product-image img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.product-card:hover img { transform:scale(1.035); }
.product-image span { position:absolute; top:14px; left:14px; padding:8px 10px; background:var(--paper); color:var(--brick); text-transform:uppercase; letter-spacing:.1em; font-size:8px; font-weight:800; }
.product-info { padding:22px; display:flex; flex-direction:column; justify-content:space-between; flex:1; gap:28px; }
.product-info h3 { margin-bottom:8px; font:23px/1.1 Georgia,serif; }
.product-info p { margin:0; color:#69564b; font-size:13px; line-height:1.55; }
.product-order { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.product-order strong { font:20px Georgia,serif; }
.product-order button { height:38px; padding:0 12px 0 16px; display:flex; align-items:center; gap:12px; border:1px solid var(--brick); background:transparent; color:var(--brick); cursor:pointer; font-size:11px; font-weight:800; }
.product-order button span { font-size:19px; font-weight:400; }
.product-order button:hover { background:var(--brick); color:white; }
.cake-callout { display:grid; grid-template-columns:1.08fr .92fr; min-height:760px; background:var(--espresso); color:var(--cream); }
.cake-image { min-height:650px; background:url("/assets/menu-cake.jpg") center/cover; }
.cake-copy { padding:clamp(66px,8vw,120px); display:flex; flex-direction:column; justify-content:center; }
.cake-copy .eyebrow { color:#d3ad8e; }
.cake-copy h2 em { color:#df8d73; }
.cake-copy>p:not(.eyebrow) { margin:34px 0; max-width:550px; color:#d7c9b8; font-size:17px; line-height:1.7; }
.primary-button.light { align-self:flex-start; border-color:var(--cream); background:var(--cream); color:var(--espresso); }
.story-section { min-height:700px; display:grid; grid-template-columns:1fr 1fr; background:var(--wood); color:var(--paper); overflow:hidden; }
.story-number { display:grid; place-items:center; color:rgba(251,247,239,.13); font:clamp(170px,25vw,400px)/1 Georgia,serif; transform:rotate(-7deg); }
.story-copy { padding:clamp(70px,9vw,140px) clamp(30px,7vw,110px); display:flex; flex-direction:column; justify-content:center; }
.story-copy .eyebrow { color:#e6c3a6; }
.story-copy h2 em { color:#f0b39b; }
.story-copy>p:not(.eyebrow) { max-width:610px; margin:34px 0; color:#f0ddcb; font-size:17px; line-height:1.7; }
.visit-section { display:grid; grid-template-columns:.92fr 1.08fr; min-height:760px; background:var(--cream); }
.visit-copy { padding:clamp(72px,9vw,140px) clamp(26px,6vw,92px); }
.visit-details { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin:48px 0; padding:28px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.visit-details p { margin:0; display:flex; flex-direction:column; gap:12px; }
.visit-details small { color:#8c6646; text-transform:uppercase; letter-spacing:.15em; font-size:8px; font-weight:800; }
.visit-details b { font:16px/1.45 Georgia,serif; }
.visit-image { position:relative; margin:32px 32px 32px 0; background:linear-gradient(rgba(43,27,20,.08),rgba(43,27,20,.35)),url("/assets/island-interior.jpg") center/cover; }
.visit-image span { position:absolute; left:45px; bottom:45px; color:white; font:italic 34px/1.15 Georgia,serif; }
footer { min-height:140px; padding:24px clamp(22px,6vw,92px); display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:40px; border-top:1px solid var(--line); background:var(--paper); font-size:11px; }
footer img { width:120px; mix-blend-mode:multiply; }
footer p { margin:0; }
footer>div { display:flex; gap:22px; font-weight:700; }
footer small { grid-column:1/-1; padding-top:16px; border-top:1px solid var(--line); text-transform:uppercase; letter-spacing:.12em; color:#887367; }
.drawer-backdrop { position:fixed; inset:0; z-index:50; background:rgba(31,17,11,.52); backdrop-filter:blur(3px); }
.cart-drawer { position:fixed; z-index:60; top:0; right:0; width:min(470px,100%); height:100dvh; padding:30px; background:var(--paper); box-shadow:-20px 0 60px rgba(25,12,7,.18); transform:translateX(105%); transition:transform .35s cubic-bezier(.22,1,.36,1); overflow-y:auto; }
.cart-drawer.open { transform:translateX(0); }
.drawer-header { display:flex; align-items:flex-start; justify-content:space-between; padding-bottom:24px; border-bottom:1px solid var(--line); }
.drawer-header h2 { margin:8px 0 0; font-size:46px; }
.drawer-header>button { border:0; background:transparent; font-size:34px; cursor:pointer; }
.fulfillment-tabs { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:24px 0; }
.fulfillment-tabs button { padding:15px; border:1px solid var(--line); background:transparent; display:flex; flex-direction:column; gap:6px; text-align:left; cursor:pointer; }
.fulfillment-tabs button.active { border-color:var(--brick); background:#f3e4d7; }
.fulfillment-tabs small { color:#806c5f; }
.empty-cart { min-height:520px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; }
.empty-cart>span { color:var(--brick); font:italic 58px Georgia,serif; }
.empty-cart h3 { margin:22px 0 8px; font:30px Georgia,serif; }
.empty-cart p { max-width:290px; color:#756154; line-height:1.55; }
.cart-items { border-top:1px solid var(--line); }
.cart-items article { display:grid; grid-template-columns:74px 1fr auto; gap:14px; padding:18px 0; border-bottom:1px solid var(--line); }
.cart-items img { width:74px; height:74px; object-fit:cover; }
.cart-items h3 { margin:0 0 5px; font:18px Georgia,serif; }
.cart-items p { margin:0; font-size:11px; color:#7a6558; }
.quantity { display:flex; align-items:center; gap:13px; margin-top:12px; }
.quantity button { width:26px; height:26px; border:1px solid var(--line); background:transparent; cursor:pointer; }
.cart-items article>strong { font:17px Georgia,serif; }
.order-summary { padding:22px 0; border-bottom:1px solid var(--line); }
.order-summary p { display:flex; justify-content:space-between; margin:0 0 12px; font-size:13px; }
.order-summary .total { margin-top:20px; padding-top:20px; border-top:1px solid var(--line); font:22px Georgia,serif; }
.checkout-button { width:100%; min-height:58px; margin-top:22px; padding:0 20px; border:0; background:var(--brick); color:white; display:flex; justify-content:space-between; align-items:center; cursor:pointer; font-weight:800; }
.drawer-note { display:block; margin-top:12px; text-align:center; color:#8d786a; }
.demo-success { margin-top:22px; padding:18px; background:#e8efdf; border:1px solid #90a378; }
.demo-success p { margin:8px 0 0; font-size:12px; line-height:1.5; }

@media(max-width:1100px){ .product-grid{grid-template-columns:repeat(2,1fr)} .store-hero{grid-template-columns:1fr 1fr}.visit-details{grid-template-columns:1fr}.store-hero h1{font-size:82px} }
@media(max-width:820px){ .store-header{grid-template-columns:1fr auto}.store-header nav{display:none}.store-hero,.cake-callout,.story-section,.visit-section,.section-heading{grid-template-columns:1fr}.store-hero-image{margin:0 22px 58px;min-height:560px}.hero-stamp{left:18px}.quick-order{grid-template-columns:1fr}.quick-order>div{border-right:0;border-bottom:1px solid var(--line)}.cake-image{min-height:520px}.story-number{min-height:380px}.visit-image{min-height:560px;margin:0 22px 22px}.section-heading{gap:26px}footer{grid-template-columns:1fr;text-align:center}footer img{margin:auto}footer>div{justify-content:center} }
@media(max-width:560px){ .demo-banner{font-size:8px}.store-header{min-height:74px;padding:7px 16px}.brand img{width:105px;height:50px}.cart-button{min-width:92px;height:42px}.store-hero-copy{padding:64px 22px}.store-hero h1{font-size:62px}.store-hero-image{min-height:460px}.store-hero-image>p{left:30px;top:30px;font-size:28px}.hero-stamp{width:190px;min-height:115px}.product-grid{grid-template-columns:1fr}.menu-section{padding-left:18px;padding-right:18px}.cake-copy,.story-copy,.visit-copy{padding:72px 22px}.story-number{font-size:170px}.visit-image{min-height:420px}.visit-image span{left:24px;bottom:24px;font-size:27px}.cart-drawer{padding:22px}.hero-actions{align-items:stretch;flex-direction:column}.primary-button{width:100%} }
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms!important}}
