@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,500;9..144,600&display=swap');

:root{
  --cream:#fbf6ed;
  --paper:#fffdf9;
  --espresso:#25140f;
  --espresso-2:#130907;
  --cocoa:#5d3023;
  --gold:#c8922d;
  --gold-soft:#e6bd67;
  --mango:#f3a64a;
  --mango-dark:#db8426;
  --peach:#f5dfcc;
  --rose:#c60091;
  --sage:#a9ba9d;
  --ink:#2b1a15;
  --muted:#786963;
  --line:rgba(43,26,21,.14);
  --shadow:0 24px 72px rgba(42,22,15,.15);
  --container:min(1180px,calc(100% - 40px));
  --header-h:76px;
  --radius:28px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--cream)}
body{margin:0;color:var(--ink);background:var(--cream);font-family:"DM Sans",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body.no-scroll,body.menu-open{overflow:hidden}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{color:inherit}
img{display:block;max-width:100%}
[hidden]{display:none!important}
::selection{background:var(--mango);color:var(--espresso)}
.container{width:var(--container);margin-inline:auto}
.skip-link{position:fixed;left:12px;top:12px;z-index:9999;padding:10px 14px;background:var(--espresso);color:white;border-radius:12px;transform:translateY(-160%)}
.skip-link:focus{transform:none}
.eyebrow{margin:0 0 9px;text-transform:uppercase;letter-spacing:.16em;font-size:.7rem;font-weight:700;color:var(--cocoa)}
.lead{font-size:clamp(.98rem,1.4vw,1.15rem);color:var(--muted);max-width:620px}
.fine-print{font-size:.76rem;color:var(--muted);line-height:1.45}
.centered{text-align:center}
.display,.hero h1,.page-hero h1,.section-head h2,.delivery-copy h2,.visit-card h2,.drawer-head h2,.product-modal h2,.checkout-modal h2,.cake-hero h1,.cake-form-copy h2,.info-aside h1{font-family:"Fraunces",Georgia,serif;letter-spacing:-.047em;line-height:.98;font-weight:600}

.utility-bar{background:var(--espresso-2);color:#fff6ec;font-size:.72rem;letter-spacing:.02em}
.utility-inner{min-height:32px;display:flex;align-items:center;justify-content:space-between;gap:18px}
.utility-inner strong{color:#ffd6a1;font-weight:600}
.utility-links{display:flex;align-items:center;gap:18px}.utility-links a{opacity:.8}.utility-links a:hover{opacity:1}

.site-header{position:sticky;top:0;z-index:100;height:var(--header-h);background:rgba(251,246,237,.91);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}
.header-inner{height:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:28px}
.brand-logo{display:flex;align-items:center;width:clamp(190px,18vw,248px);height:56px;min-width:0}
.brand-logo img{width:100%;height:100%;object-fit:contain;object-position:left center;filter:drop-shadow(0 4px 5px rgba(95,55,5,.12))}
.desktop-nav{display:flex;justify-content:center;align-items:center;gap:clamp(18px,2.25vw,32px);font-size:.82rem;font-weight:600}
.desktop-nav a{position:relative;padding:8px 0;white-space:nowrap}
.desktop-nav a::after{content:"";position:absolute;left:0;right:100%;bottom:2px;height:1px;background:var(--espresso);transition:right .24s ease}
.desktop-nav a:hover::after,.desktop-nav a[aria-current="page"]::after{right:0}
.header-actions{display:flex;align-items:center;gap:7px}
.icon-button{position:relative;width:43px;height:43px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.52);cursor:pointer;transition:.2s ease}
.icon-button:hover{transform:translateY(-1px);background:var(--paper);border-color:rgba(43,26,21,.25)}
.icon-button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.menu-toggle{display:none}.cart-count{position:absolute;right:-2px;top:-2px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;display:grid;place-items:center;background:var(--rose);color:white;border:2px solid var(--cream);font-size:.58rem;font-weight:800}
.mobile-menu{display:none}

.button{min-height:48px;border:0;border-radius:999px;padding:12px 22px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:.79rem;font-weight:700;line-height:1;text-align:center;cursor:pointer;transition:.22s ease}
.button:hover{transform:translateY(-1px)}
.button-dark{background:var(--espresso);color:white}.button-dark:hover{background:#3a1d15}
.button-mango{background:var(--mango);color:var(--espresso)}.button-mango:hover{background:#ffb85c}
.button-outline{border:1px solid rgba(43,26,21,.25);background:transparent;color:var(--espresso)}.button-outline:hover{background:rgba(255,255,255,.55)}
.button-light{background:var(--paper);color:var(--espresso)}
.button-whatsapp{background:#1e9e52;color:white}.button-whatsapp svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.button-row{display:flex;flex-wrap:wrap;gap:10px}
.inline-link,.tile-link{font-size:.8rem;font-weight:700}.inline-link span,.tile-link span{transition:transform .2s ease;display:inline-block}.inline-link:hover span,.tile-link:hover span{transform:translateX(4px)}

.hero{padding:14px 0 34px}
.hero-shell{width:min(1360px,calc(100% - 28px));margin:auto;min-height:min(720px,calc(100svh - 128px));border-radius:32px;overflow:hidden;display:grid;grid-template-columns:.9fr 1.1fr;background:#f6e8d8;box-shadow:0 20px 56px rgba(39,20,13,.13)}
.hero-copy{padding:clamp(42px,6vw,86px);display:flex;flex-direction:column;justify-content:center;position:relative;z-index:2}
.hero-copy::after{content:"";position:absolute;right:-85px;top:0;bottom:0;width:170px;background:linear-gradient(90deg,#f6e8d8,transparent);pointer-events:none}
.hero h1{font-size:clamp(4.2rem,7vw,7.6rem);margin:0 0 22px;color:var(--espresso);max-width:760px}
.hero h1 em{color:var(--mango-dark);font-style:normal}
.hero-copy .lead{margin:0 0 28px;max-width:560px}
.hero-meta{display:flex;flex-wrap:wrap;gap:18px;margin-top:26px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--cocoa)}
.hero-meta span{display:flex;align-items:center;gap:7px}.hero-meta i{width:6px;height:6px;border-radius:50%;background:var(--mango)}
.hero-media{position:relative;min-height:600px;background:#d8c5ae;overflow:hidden}
.hero-media picture,.hero-media img{width:100%;height:100%}.hero-media img{object-fit:cover;object-position:center 43%}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(29,12,8,.22))}
.hero-float{position:absolute;z-index:2;right:22px;bottom:22px;width:min(365px,calc(100% - 44px));display:flex;align-items:end;justify-content:space-between;gap:16px;padding:16px 18px;border-radius:19px;background:rgba(255,253,249,.91);backdrop-filter:blur(16px);box-shadow:0 10px 32px rgba(28,13,9,.16)}
.hero-float p{font-size:.65rem;text-transform:uppercase;letter-spacing:.12em;font-weight:700;color:var(--cocoa);margin:0 0 3px}.hero-float strong{font-family:"Fraunces",serif;font-size:1.3rem}.hero-float span{font-size:.72rem;font-weight:700;color:var(--cocoa)}

.quick-strip{padding:0 0 10px;overflow:hidden}.quick-strip-inner{width:min(1180px,100%);margin:auto;display:flex;justify-content:center;gap:8px;overflow:auto;padding:0 20px 8px;scrollbar-width:none}.quick-strip-inner::-webkit-scrollbar{display:none}.quick-pill{flex:0 0 auto;padding:9px 14px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.46);font-size:.7rem;font-weight:700}.quick-pill:hover{background:var(--paper)}

.section{padding:88px 0}.section-soft{background:#f4e8dc}.section-dark{background:var(--espresso-2);color:#fff7ef}.section-dark .eyebrow{color:#e8be75}.section-dark .section-head>p{color:rgba(255,247,239,.65)}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:36px;margin-bottom:34px}.section-head h2{font-size:clamp(3.2rem,5vw,5.7rem);margin:0}.section-head>p{max-width:430px;color:var(--muted);margin:0}
.category-rail{display:grid;grid-template-columns:1.15fr .85fr .85fr;gap:14px}
.category-tile{position:relative;min-height:480px;border-radius:24px;overflow:hidden;color:white;display:flex;align-items:flex-end;padding:28px;isolation:isolate}
.category-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .55s ease;z-index:-2}.category-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(19,7,4,.83));z-index:-1}.category-tile:hover img{transform:scale(1.035)}
.category-tile .eyebrow{color:#ffe0ad}.category-tile h3{font-family:"Fraunces",serif;letter-spacing:-.04em;font-size:clamp(2.6rem,4vw,4.6rem);line-height:.95;margin:0 0 10px}.category-tile p{max-width:340px;margin:0 0 16px;color:rgba(255,255,255,.78);font-size:.86rem}.category-tile .tile-link{color:white}
.product-rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(240px,27%);gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:3px 0 14px;scrollbar-width:none}.product-rail::-webkit-scrollbar{display:none}.product-rail .menu-card{scroll-snap-align:start}.swipe-hint{display:none;font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;margin:8px 0 0}

.delivery-story{display:grid;grid-template-columns:1.04fr .96fr;border-radius:30px;overflow:hidden;background:var(--paper);box-shadow:var(--shadow)}
.delivery-copy{padding:clamp(38px,6vw,76px);display:flex;flex-direction:column;justify-content:center}.delivery-copy h2{font-size:clamp(4rem,6vw,6.6rem);margin:0 0 20px}.delivery-copy>p{color:var(--muted);max-width:560px}.delivery-checks{display:grid;gap:10px;margin:22px 0 28px}.delivery-checks span{display:flex;align-items:flex-start;gap:10px;font-size:.82rem}.delivery-checks i{flex:0 0 auto;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#ffe0b9;color:var(--espresso);font-style:normal;font-size:.7rem;font-weight:800}
.delivery-image{min-height:620px}.delivery-image img{width:100%;height:100%;object-fit:cover}
.gallery-grid{display:grid;grid-template-columns:1.3fr .7fr .7fr;grid-template-rows:300px 300px;gap:12px}.gallery-item{margin:0;border-radius:22px;overflow:hidden}.gallery-item:first-child{grid-row:1/3}.gallery-item:nth-child(4){grid-column:2/4}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}.gallery-item:hover img{transform:scale(1.03)}
.social-strip{display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center;margin-top:28px;padding-top:26px;border-top:1px solid rgba(255,255,255,.13)}.social-strip p{max-width:590px;margin:0;color:rgba(255,255,255,.66)}.social-seal{width:86px;height:86px;border-radius:50%;box-shadow:0 10px 28px rgba(0,0,0,.25)}

.visit-band{padding:0 0 88px}.visit-card{position:relative;overflow:hidden;display:grid;grid-template-columns:1.2fr .8fr;gap:50px;background:var(--espresso);color:white;border-radius:30px;padding:clamp(34px,5vw,68px)}.visit-card h2{font-size:clamp(3.4rem,5vw,6rem);margin:0 0 18px}.visit-card>div>p{color:rgba(255,255,255,.68);max-width:620px}.visit-card .eyebrow{color:#f3c473}.visit-card::after{content:"SD";position:absolute;right:-28px;bottom:-82px;font-family:"Fraunces",serif;font-size:18rem;color:rgba(255,255,255,.035);line-height:1;pointer-events:none}.visit-details{display:grid;align-content:center;gap:18px;position:relative;z-index:1}.visit-details div{padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.14)}.visit-details span{display:block;color:rgba(255,255,255,.55);font-size:.66rem;text-transform:uppercase;letter-spacing:.12em;margin-bottom:4px}.visit-details strong{font-size:.93rem}

.site-footer{background:#130806;color:#f8eee8;padding:62px 0 22px}.footer-grid{display:grid;grid-template-columns:1.3fr .7fr .7fr .9fr;gap:42px}.footer-brand .brand-logo{width:220px;height:58px}.footer-brand p{max-width:330px;color:rgba(255,255,255,.58);font-size:.82rem}.footer-column{display:flex;flex-direction:column;align-items:flex-start;gap:9px}.footer-column h3{font-size:.68rem;text-transform:uppercase;letter-spacing:.14em;color:#eac27d;margin:0 0 5px}.footer-column a,.footer-column p{font-size:.77rem;color:rgba(255,255,255,.66);margin:0}.footer-column a:hover{color:white}.footer-bottom{margin-top:42px;padding-top:18px;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;gap:12px;font-size:.67rem;color:rgba(255,255,255,.42)}

/* Menu */
.page-hero{padding:58px 0 32px}.page-hero-grid{display:grid;grid-template-columns:1fr .8fr;align-items:end;gap:50px}.page-hero h1{font-size:clamp(4.8rem,8vw,8.8rem);margin:0}.page-hero p{color:var(--muted);max-width:540px;margin:0 0 10px}.menu-toolbar{position:sticky;top:var(--header-h);z-index:80;background:rgba(251,246,237,.93);backdrop-filter:blur(16px);border-block:1px solid var(--line);padding:12px 0}.toolbar-inner{display:grid;grid-template-columns:minmax(240px,360px) 1fr;align-items:center;gap:14px}.search-wrap{height:46px;border:1px solid var(--line);border-radius:999px;background:var(--paper);display:flex;align-items:center;padding:0 13px;gap:9px}.search-wrap svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7}.search-wrap input{width:100%;border:0;background:transparent;outline:0;font-size:.8rem}.search-clear{border:0;background:transparent;cursor:pointer;color:var(--muted);font-size:.68rem;font-weight:700}.filter-row{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;padding:2px}.filter-row::-webkit-scrollbar{display:none}.filter-button{height:42px;flex:0 0 auto;border:1px solid var(--line);border-radius:999px;padding:0 12px;background:rgba(255,255,255,.45);display:flex;align-items:center;gap:7px;cursor:pointer;font-size:.7rem;font-weight:700;transition:.2s ease}.filter-button small{min-width:19px;height:19px;border-radius:999px;display:grid;place-items:center;background:rgba(43,26,21,.08);font-size:.56rem}.filter-button.is-active{background:var(--espresso);color:white;border-color:var(--espresso)}.filter-button.is-active small{background:rgba(255,255,255,.14)}
.menu-section{padding:34px 0 90px}.delivery-banner{display:flex;align-items:center;justify-content:space-between;gap:22px;background:#f6dfc8;border:1px solid rgba(90,48,36,.08);border-radius:20px;padding:17px 20px;margin-bottom:28px}.delivery-banner strong{font-family:"Fraunces",serif;font-size:1.35rem}.delivery-banner span{font-size:.78rem;color:var(--cocoa);max-width:600px}.menu-results-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin:0 0 18px}.menu-results-head h2{font-family:"Fraunces",serif;font-size:clamp(2.8rem,4vw,4.7rem);letter-spacing:-.045em;line-height:1;margin:0}.menu-results-head p{margin:5px 0 0;color:var(--muted);font-size:.8rem}.menu-results-head>span{font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
.menu-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.menu-card{min-width:0;border-radius:22px;background:var(--paper);border:1px solid rgba(43,26,21,.1);overflow:hidden;transition:transform .25s ease,box-shadow .25s ease}.menu-card:hover{transform:translateY(-3px);box-shadow:0 16px 38px rgba(43,23,16,.1)}.menu-card-media{position:relative;width:100%;border:0;padding:0;background:#eaded2;aspect-ratio:1.08/1;overflow:hidden;cursor:pointer}.menu-card-media img{width:100%;height:100%;object-fit:cover;object-position:var(--image-position,center);transition:transform .4s ease}.menu-card:hover .menu-card-media img{transform:scale(1.025)}.menu-badge{position:absolute;left:10px;top:10px;background:rgba(255,253,249,.9);backdrop-filter:blur(8px);padding:6px 9px;border-radius:999px;font-size:.58rem;text-transform:uppercase;letter-spacing:.09em;font-weight:800}.media-plus{position:absolute;right:10px;bottom:10px;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--espresso);color:white;font-size:1.2rem}.menu-card-body{padding:17px}.menu-category{margin:0 0 6px;color:var(--cocoa);font-size:.59rem;text-transform:uppercase;letter-spacing:.11em;font-weight:700}.menu-card-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.menu-card h3{font-family:"Fraunces",serif;letter-spacing:-.03em;font-size:1.44rem;line-height:1.04;margin:0}.menu-card-row strong{flex:0 0 auto;font-size:.77rem;color:var(--cocoa);text-align:right;max-width:110px}.menu-card-body>p:not(.menu-category){margin:10px 0 15px;color:var(--muted);font-size:.78rem;line-height:1.42}.menu-card-actions{padding-top:12px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.text-button,.add-button{border:0;background:transparent;padding:3px 0;font-size:.69rem;font-weight:700;cursor:pointer}.add-button{display:flex;align-items:center;gap:7px}.add-button span{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#f1dfd0}.menu-empty{text-align:center;padding:80px 20px}.menu-empty h2{font-family:"Fraunces",serif;font-size:3rem;margin:0 0 8px}.menu-empty p{color:var(--muted)}
.category-nav{margin-top:30px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.category-nav button{border:1px solid var(--line);border-radius:18px;background:var(--paper);padding:16px 18px;display:flex;flex-direction:column;gap:3px;cursor:pointer;text-align:left}.category-nav button:last-child{text-align:right;align-items:flex-end}.category-nav span{font-size:.62rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.category-nav strong{font-family:"Fraunces",serif;font-size:1.5rem;letter-spacing:-.03em}

/* Overlays, cart and checkout */
.overlay-backdrop,.modal-backdrop{position:fixed;inset:0;z-index:210;background:rgba(15,7,5,.55);backdrop-filter:blur(7px);opacity:0;visibility:hidden;transition:.25s ease}.overlay-backdrop.is-open,.modal-backdrop.is-open{opacity:1;visibility:visible}
.cart-drawer{position:fixed;z-index:220;right:0;top:0;height:100dvh;width:min(470px,100%);background:var(--paper);box-shadow:-22px 0 70px rgba(16,8,5,.26);transform:translateX(105%);transition:.3s cubic-bezier(.22,.7,.22,1);display:flex;flex-direction:column;outline:none}.cart-drawer.is-open{transform:none}.drawer-head{padding:21px 22px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:18px}.drawer-head .eyebrow{margin-bottom:4px}.drawer-head h2{font-size:2.35rem;margin:0}.round-close{width:42px;height:42px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;background:white;font-size:1.45rem;cursor:pointer}.cart-items{flex:1;overflow:auto;padding:8px 18px}.cart-item{display:grid;grid-template-columns:84px 1fr auto;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}.cart-item>img{width:84px;height:100px;border-radius:13px;object-fit:cover}.cart-item-copy{min-width:0}.cart-item-copy p{font-size:.56rem;text-transform:uppercase;letter-spacing:.1em;color:var(--cocoa);font-weight:700;margin:1px 0 4px}.cart-item-copy strong{font-family:"Fraunces",serif;font-size:1.08rem;line-height:1.05;display:block}.cart-item-copy>span{display:block;font-size:.66rem;color:var(--muted);margin-top:3px}.remove-button{align-self:start;border:0;background:transparent;color:var(--muted);font-size:.61rem;text-decoration:underline;cursor:pointer}.qty-control{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;margin-top:9px;overflow:hidden;background:white}.qty-control button{width:30px;height:29px;border:0;background:transparent;cursor:pointer}.qty-control span,.qty-control output{min-width:25px;text-align:center;font-size:.72rem;font-weight:700}.cart-footer{padding:16px 20px calc(19px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:rgba(255,253,249,.97)}.delivery-meter{margin-bottom:13px}.delivery-meter span{display:block;font-size:.68rem;font-weight:700;color:var(--cocoa);margin-bottom:7px}.delivery-meter>div{height:6px;border-radius:999px;background:#eadcd0;overflow:hidden}.delivery-meter i{display:block;width:5%;height:100%;background:linear-gradient(90deg,var(--mango-dark),var(--mango));border-radius:999px;transition:width .3s ease}.summary-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:10px 0}.summary-row span{font-size:.76rem}.summary-row strong{font-family:"Fraunces",serif;font-size:1.25rem;text-align:right}.cart-footer>.button{width:100%;margin-top:8px}.drawer-secondary{display:flex;justify-content:space-between;gap:10px;margin-top:12px}.drawer-link{border:0;background:transparent;font-size:.68rem;color:var(--muted);cursor:pointer}.drawer-link.danger{color:#9b4436}.empty-state{height:100%;min-height:430px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:34px}.empty-state img{width:90px;height:90px;object-fit:contain}.empty-state h3{font-family:"Fraunces",serif;font-size:2rem;margin:12px 0 7px}.empty-state p{color:var(--muted);max-width:310px;margin:0 0 21px;font-size:.85rem}
.product-modal,.checkout-modal{position:absolute;left:50%;top:50%;transform:translate(-50%,-46%) scale(.985);width:min(920px,calc(100% - 28px));max-height:calc(100dvh - 28px);background:var(--paper);border-radius:28px;overflow:auto;box-shadow:var(--shadow);opacity:0;transition:.28s ease;outline:none}.modal-backdrop.is-open .product-modal,.modal-backdrop.is-open .checkout-modal{transform:translate(-50%,-50%) scale(1);opacity:1}.product-modal{display:grid;grid-template-columns:.86fr 1.14fr;overflow:hidden}.product-modal-media{min-height:620px;background:#e8d9cd}.product-modal-media img{width:100%;height:100%;object-fit:cover}.product-modal-copy{padding:clamp(30px,5vw,60px);display:flex;flex-direction:column;justify-content:center}.product-modal h2{font-size:clamp(3rem,5vw,5.3rem);margin:0 0 10px}.product-modal-copy>p:not(.eyebrow,.modal-price){color:var(--muted);font-size:.9rem}.modal-price{font-weight:800;color:var(--cocoa);margin:0 0 12px}.modal-close{position:absolute;right:15px;top:15px;z-index:2;background:rgba(255,255,255,.9)}.product-modal form{margin-top:17px;display:grid;gap:14px}.product-option-group{border:0;padding:0;margin:0}.product-option-group legend,.quantity-field>span,.checkout-form label>span,.cake-form label>span{display:block;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:7px;color:var(--cocoa)}.choice-grid{display:flex;flex-wrap:wrap;gap:7px}.choice-grid label{position:relative}.choice-grid input{position:absolute;opacity:0}.choice-grid span{min-height:39px;display:grid;place-items:center;border:1px solid var(--line);border-radius:999px;padding:7px 12px;font-size:.7rem;font-weight:700;background:white;cursor:pointer}.choice-grid input:checked+span{background:var(--espresso);border-color:var(--espresso);color:white}.quantity-field{display:flex;justify-content:space-between;align-items:center}.quantity-field>span{margin:0}.modal-cake-link{font-size:.72rem;font-weight:700;color:var(--cocoa);text-align:center}
.checkout-modal{width:min(760px,calc(100% - 28px))}.checkout-head{position:sticky;top:0;background:rgba(255,253,249,.96);backdrop-filter:blur(14px);z-index:2}.checkout-form{padding:22px 25px 28px;display:grid;gap:15px}.checkout-summary{border:1px solid var(--line);border-radius:15px;background:#fff;padding:13px 15px;display:flex;align-items:center;justify-content:space-between;gap:16px}.checkout-summary div{display:flex;align-items:center;gap:10px}.checkout-summary span{font-size:.75rem;font-weight:700}.checkout-summary button{border:0;background:transparent;color:var(--cocoa);font-size:.65rem;text-decoration:underline;cursor:pointer}.checkout-summary strong{font-family:"Fraunces",serif;font-size:1.15rem;text-align:right}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.delivery-fields{display:grid;grid-template-columns:.72fr 1.28fr;gap:12px}.checkout-form input,.checkout-form select,.checkout-form textarea,.cake-form input,.cake-form select,.cake-form textarea{width:100%;border:1px solid var(--line);border-radius:12px;background:white;padding:11px 12px;outline:none;color:var(--ink)}.checkout-form input:focus,.checkout-form select:focus,.checkout-form textarea:focus,.cake-form input:focus,.cake-form select:focus,.cake-form textarea:focus{border-color:var(--cocoa);box-shadow:0 0 0 3px rgba(90,48,36,.08)}.order-type{border:0;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:9px}.order-type legend{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--cocoa);margin-bottom:7px}.order-type label{position:relative}.order-type input{position:absolute;opacity:0}.order-type label>span{min-height:58px;border:1px solid var(--line);border-radius:13px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:10px 13px;cursor:pointer;background:white}.order-type b{font-size:.78rem}.order-type small{font-size:.64rem;color:var(--muted)}.order-type input:checked+span{background:var(--espresso);border-color:var(--espresso);color:white}.order-type input:checked+span small{color:rgba(255,255,255,.65)}.checkout-note{padding:13px 15px;border-radius:13px;background:#f4e2d0;display:flex;flex-direction:column;font-size:.73rem;color:var(--cocoa)}
.mobile-order-bar{display:none}.toast{position:fixed;z-index:999;left:50%;bottom:24px;transform:translate(-50%,20px);opacity:0;padding:11px 16px;border-radius:999px;background:var(--espresso);color:white;font-size:.75rem;font-weight:700;box-shadow:0 10px 28px rgba(0,0,0,.2);transition:.25s ease;pointer-events:none}.toast.is-visible{opacity:1;transform:translate(-50%,0)}

/* Visit and info */
.info-page{padding:64px 0 90px}.info-grid{display:grid;grid-template-columns:.74fr 1.26fr;gap:55px}.info-aside{position:sticky;top:130px;align-self:start}.info-aside h1{font-size:clamp(4.2rem,7vw,7.7rem);margin:0 0 18px}.info-aside>p{color:var(--muted)}.info-stack{display:grid;gap:14px}.info-block{background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:25px}.info-block h2{font-family:"Fraunces",serif;font-size:2rem;margin:0 0 10px}.info-block p{color:var(--muted);margin:0 0 10px}.info-block .button-row{margin-top:17px}.contact-list{display:grid;gap:12px}.contact-list a,.contact-list div{display:flex;justify-content:space-between;gap:15px;padding:12px 0;border-bottom:1px solid var(--line);font-size:.8rem}.contact-list span{color:var(--muted)}.social-profile{display:grid;grid-template-columns:94px 1fr;gap:18px;align-items:center}.social-profile img{width:94px;height:94px;border-radius:22px}.social-profile h3{font-family:"Fraunces",serif;font-size:1.7rem;margin:0 0 5px}.social-profile p{font-size:.78rem;margin:0}

/* Cakes */
.cake-hero{padding:18px 0 70px}.cake-hero-card{min-height:620px;border-radius:32px;overflow:hidden;display:grid;grid-template-columns:.92fr 1.08fr;background:var(--espresso);color:white}.cake-hero-copy{padding:clamp(40px,6vw,80px);display:flex;flex-direction:column;justify-content:center}.cake-hero .eyebrow{color:#efc77f}.cake-hero h1{font-size:clamp(4.8rem,7vw,7.8rem);margin:0 0 20px}.cake-hero-copy>p{color:rgba(255,255,255,.66);max-width:540px}.cake-hero-media{position:relative;min-height:560px}.cake-hero-media img{width:100%;height:100%;object-fit:cover}.cake-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-top:28px}.cake-steps article{border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:14px}.cake-steps b{display:block;color:#f2c77d;font-size:.68rem}.cake-steps span{font-size:.72rem;color:rgba(255,255,255,.68)}
.cake-form-section{padding:0 0 90px}.cake-form-grid{display:grid;grid-template-columns:.76fr 1.24fr;gap:36px;align-items:start}.cake-form-copy{position:sticky;top:125px}.cake-form-copy h2{font-size:clamp(3.5rem,5vw,5.8rem);margin:0 0 17px}.cake-form-copy p{color:var(--muted)}.cake-form{background:var(--paper);border:1px solid var(--line);border-radius:25px;padding:28px;display:grid;gap:15px;box-shadow:0 18px 50px rgba(43,23,16,.08)}.cake-form>.button{width:100%}.cake-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:22px}.cake-gallery img{width:100%;aspect-ratio:.82;object-fit:cover;border-radius:18px}

[data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}[data-reveal].is-visible{opacity:1;transform:none}

@media (max-width:1000px){
  :root{--container:min(100% - 28px,780px)}
  .desktop-nav{display:none}.menu-toggle{display:grid}.hide-tablet{display:none}
  .mobile-menu{display:flex;position:fixed;z-index:90;left:0;right:0;top:calc(32px + var(--header-h));height:calc(100dvh - 32px - var(--header-h));background:var(--cream);padding:22px 20px 38px;flex-direction:column;transform:translateY(-112%);opacity:0;visibility:hidden;transition:.3s ease;overflow:auto}
  .mobile-menu.is-open{transform:none;opacity:1;visibility:visible}.mobile-menu a{font-family:"Fraunces",serif;font-size:2rem;line-height:1.05;letter-spacing:-.04em;padding:14px 3px;border-bottom:1px solid var(--line)}.mobile-menu .mobile-small{font-family:"DM Sans",sans-serif;font-size:.83rem;font-weight:700}
  .hero-shell{grid-template-columns:1fr;min-height:auto}.hero-copy{padding:48px 34px}.hero-copy::after{display:none}.hero h1{font-size:clamp(4.2rem,12vw,7rem)}.hero-media{min-height:600px}
  .category-rail{grid-template-columns:1fr 1fr}.category-tile:first-child{grid-column:1/3}.category-tile{min-height:380px}
  .product-rail{grid-auto-columns:minmax(260px,46%)}
  .delivery-story{grid-template-columns:1fr}.delivery-image{min-height:510px;order:-1}
  .gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:410px 280px}.gallery-item:first-child{grid-row:auto;grid-column:1/3}.gallery-item:nth-child(4){grid-column:auto}
  .visit-card{grid-template-columns:1fr}.visit-card::after{font-size:14rem}
  .footer-grid{grid-template-columns:1.2fr .8fr .8fr}.footer-brand{grid-column:1/4}.footer-column:last-child{grid-column:auto}
  .page-hero-grid,.info-grid,.cake-form-grid{grid-template-columns:1fr}.info-aside,.cake-form-copy{position:static}.page-hero p{max-width:600px}
  .toolbar-inner{grid-template-columns:1fr}.menu-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cake-hero-card{grid-template-columns:1fr}.cake-hero-media{min-height:500px;order:-1}.cake-steps{max-width:620px}
}

@media (max-width:680px){
  :root{--container:calc(100% - 24px);--header-h:64px;--radius:22px}
  .utility-inner{min-height:29px;justify-content:center;text-align:center}.utility-links{display:none}
  .site-header{height:var(--header-h)}.header-inner{gap:8px}.brand-logo{width:150px;height:49px}.header-actions{gap:4px}.icon-button{width:38px;height:38px}.hide-mobile{display:none}.mobile-menu{top:calc(29px + var(--header-h));height:calc(100dvh - 29px - var(--header-h))}
  .hero{padding:8px 0 26px}.hero-shell{width:calc(100% - 14px);border-radius:23px;display:flex;flex-direction:column-reverse}.hero-media{min-height:49svh}.hero-media img{object-position:center 42%}.hero-copy{padding:28px 20px 26px}.hero h1{font-size:clamp(3.4rem,16vw,5.35rem);margin-bottom:15px}.hero-copy .lead{font-size:.88rem;margin-bottom:20px}.hero .button-row{display:grid;grid-template-columns:1fr 1fr}.hero .button{padding-inline:12px}.hero-meta{gap:11px;font-size:.59rem;margin-top:18px}.hero-float{right:10px;bottom:10px;width:calc(100% - 20px);padding:12px 14px;border-radius:15px}.hero-float strong{font-size:1.06rem}.hero-float span{font-size:.64rem}
  .quick-strip-inner{justify-content:flex-start;padding-inline:12px}.section{padding:60px 0}.section-head{align-items:flex-start;flex-direction:column;margin-bottom:24px;gap:12px}.section-head h2{font-size:3rem}.section-head>p{font-size:.84rem}
  .category-rail{display:grid;grid-auto-flow:column;grid-auto-columns:84%;grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;padding-bottom:10px;scrollbar-width:none}.category-rail::-webkit-scrollbar{display:none}.category-tile,.category-tile:first-child{grid-column:auto;min-height:400px;scroll-snap-align:center;padding:21px}.category-tile h3{font-size:2.65rem}
  .product-rail{grid-auto-columns:82%;gap:10px}.swipe-hint{display:block}.menu-card:hover{transform:none;box-shadow:none}
  .delivery-copy{padding:29px 22px}.delivery-copy h2{font-size:3.55rem}.delivery-image{min-height:430px}
  .gallery-grid{display:grid;grid-auto-flow:column;grid-auto-columns:82%;grid-template-columns:none;grid-template-rows:420px;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;scrollbar-width:none}.gallery-grid::-webkit-scrollbar{display:none}.gallery-item,.gallery-item:first-child,.gallery-item:nth-child(4){grid-row:auto;grid-column:auto;scroll-snap-align:center}.social-strip{grid-template-columns:1fr auto;gap:14px}.social-strip p{font-size:.78rem}.social-seal{width:70px;height:70px}
  .visit-band{padding-bottom:60px}.visit-card{padding:30px 22px}.visit-card h2{font-size:3.35rem}.visit-card::after{display:none}
  .footer-grid{grid-template-columns:1fr 1fr;gap:30px}.footer-brand{grid-column:1/3}.footer-brand .brand-logo{width:190px}.footer-column:last-child{grid-column:1/3}.footer-bottom{flex-direction:column}
  .page-hero{padding:39px 0 23px}.page-hero h1{font-size:4.2rem}.page-hero p{font-size:.86rem}.menu-toolbar{top:var(--header-h);padding:9px 0}.search-wrap{height:43px}.filter-row{margin-inline:-12px;padding-inline:12px}.filter-button{height:38px;padding-inline:10px}
  .menu-section{padding:24px 0 100px}.delivery-banner{align-items:flex-start;flex-direction:column;padding:15px;margin-bottom:22px}.delivery-banner strong{font-size:1.15rem}.menu-results-head{margin-bottom:13px}.menu-results-head h2{font-size:2.75rem}.menu-results-head>span{font-size:.6rem}.menu-grid{grid-template-columns:1fr;gap:10px}.menu-card{display:grid;grid-template-columns:112px 1fr;border-radius:17px}.menu-card-media{aspect-ratio:auto;height:100%;min-height:158px}.menu-card-body{padding:13px}.menu-card h3{font-size:1.15rem}.menu-card-row{gap:7px}.menu-card-row strong{font-size:.65rem;max-width:92px}.menu-card-body>p:not(.menu-category){font-size:.72rem;margin:7px 0 10px}.menu-card-actions{padding-top:8px}.media-plus{width:31px;height:31px;right:7px;bottom:7px}.menu-badge{left:7px;top:7px;font-size:.52rem;padding:5px 7px}.category-nav{grid-template-columns:1fr;gap:8px}.category-nav button:last-child{text-align:left;align-items:flex-start}.category-nav strong{font-size:1.25rem}
  .info-page{padding:46px 0 75px}.info-aside h1{font-size:4.1rem}.info-block{padding:21px}.social-profile{grid-template-columns:76px 1fr}.social-profile img{width:76px;height:76px}
  .cart-drawer{width:100%}.drawer-head{padding:16px 17px}.drawer-head h2{font-size:1.9rem}.cart-items{padding-inline:14px}.cart-footer{padding:15px 17px calc(17px + env(safe-area-inset-bottom))}.cart-item{grid-template-columns:69px 1fr auto;gap:10px}.cart-item>img{width:69px;height:82px}.cart-item-copy strong{font-size:.98rem}
  .product-modal{grid-template-columns:1fr;max-height:calc(100dvh - 12px);width:calc(100% - 12px);overflow:auto;border-radius:21px}.product-modal-media{min-height:310px;max-height:39dvh}.product-modal-copy{padding:23px 19px}.product-modal h2{font-size:2.85rem}.modal-close{position:fixed}.choice-grid span{min-height:37px;font-size:.65rem;padding-inline:10px}
  .checkout-modal{width:calc(100% - 10px);max-height:calc(100dvh - 10px);border-radius:20px}.checkout-form{padding:18px 16px 22px}.field-grid,.delivery-fields{grid-template-columns:1fr}.checkout-head{padding:15px 16px}.checkout-summary strong{font-size:.98rem}.order-type label>span{min-height:55px}
  .mobile-order-bar{position:fixed;z-index:150;left:10px;right:10px;bottom:calc(9px + env(safe-area-inset-bottom));min-height:52px;border:0;border-radius:999px;background:var(--espresso);color:white;padding:8px 15px;display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 12px 34px rgba(28,12,8,.3);font-size:.75rem;font-weight:700}.mobile-order-bar span{display:flex;align-items:center;gap:9px}.mobile-order-bar b{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:var(--mango);color:var(--espresso)}.mobile-order-bar strong{font-family:"Fraunces",serif;font-size:1rem}.toast{bottom:82px}
  .cake-hero{padding:8px 0 55px}.cake-hero-card{border-radius:22px;min-height:auto}.cake-hero-media{min-height:390px}.cake-hero-copy{padding:29px 21px}.cake-hero h1{font-size:4.15rem}.cake-steps{grid-template-columns:1fr;gap:8px}.cake-form{padding:20px}.cake-gallery{display:grid;grid-auto-flow:column;grid-auto-columns:78%;grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory}.cake-gallery img{scroll-snap-align:start}
}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}[data-reveal]{opacity:1;transform:none}}

/* Defensive layout fixes */
.info-grid>* , .info-stack, .info-block, .social-profile>div, .contact-list strong{min-width:0}
.contact-list strong,.social-profile h3{overflow-wrap:anywhere}
@media (max-width:680px){
  .info-grid{gap:34px}
  .info-aside,.info-stack{width:100%;max-width:100%}
  .brand-logo{width:164px}
}
