:root{--teal:#1d7f86;--deep:#14474f;--coral:#f2876b;--pink:#f6a8bd;--mint:#a6e3c4;--peach:#f8c08a;--cream:#fffaf2;--sand:#f6ede0;--ink:#173a42;--mut:#5f7479}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font:400 17px/1.6 Nunito,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
img,video,svg{display:block;max-width:100%}a{color:inherit}
h1,h2,h3,h4{font-family:Fredoka,system-ui,sans-serif;margin:0;line-height:1.02;letter-spacing:-.01em}
h2{font-size:clamp(38px,5.4vw,72px);font-weight:600;color:var(--deep)}
.w{max-width:1200px;margin:0 auto;padding:0 22px}
.sub{color:var(--mut);font-size:19px;margin:12px 0 0}
.btn{display:inline-flex;align-items:center;gap:9px;padding:16px 24px;border-radius:999px;font:600 17px Fredoka,sans-serif;text-decoration:none;transition:transform .2s}
.btn svg{width:19px;height:19px}.btn:hover{transform:translateY(-2px)}
.b1{background:var(--pink);color:var(--deep)}.b2{background:rgba(255,255,255,.18);color:#fff;backdrop-filter:blur(8px);box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.55)}.b3{background:var(--deep);color:#fff}
:focus-visible{outline:3px solid var(--coral);outline-offset:3px}
/* nav */
.nav{position:fixed;inset:0 0 auto;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 22px;transition:background .3s,box-shadow .3s;color:#fff}
.nav.solid{background:rgba(255,250,242,.94);backdrop-filter:blur(12px);color:var(--deep);box-shadow:0 1px 0 rgba(20,71,79,.08)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.brand .badge{width:52px;height:52px;filter:drop-shadow(0 4px 10px rgba(0,0,0,.18))}
.brand span{font-family:Pacifico,cursive;font-size:24px}
.nav nav{display:flex;gap:28px;font:600 16px Fredoka,sans-serif}.nav nav a{text-decoration:none;opacity:.9}.nav nav a:hover{opacity:1}
.ncall{display:flex;align-items:center;gap:8px;text-decoration:none;font:600 16px Fredoka,sans-serif;background:var(--pink);color:var(--deep);padding:10px 16px;border-radius:999px}.ncall svg{width:17px}
/* hero */
.hero{position:relative;height:100svh;min-height:620px;overflow:hidden;color:#fff;background:var(--deep)}
.reel{position:absolute;inset:0}
.reel video,.reel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s ease}
.reel .on{opacity:1}
.reel img.on{animation:kb 6.5s ease-out forwards}
@keyframes kb{from{transform:scale(1.14) translate(1.5%,1%)}to{transform:scale(1.02) translate(0,0)}}
.shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,48,54,.55) 0,rgba(14,48,54,0) 28%,rgba(14,48,54,.15) 50%,rgba(14,48,54,.85) 100%)}
.hin{position:absolute;left:0;right:0;bottom:0;padding:0 22px clamp(36px,8vh,80px);max-width:1200px;margin:0 auto}
.hero h1{font-size:clamp(50px,9vw,128px);font-weight:600;letter-spacing:-.025em;line-height:.92;text-shadow:0 4px 30px rgba(0,0,0,.25)}
.hin p{font-size:clamp(17px,1.6vw,21px);max-width:31em;margin:18px 0 26px;opacity:.95}
.ctas{display:flex;gap:12px;flex-wrap:wrap}
.openpill{display:inline-flex;align-items:center;gap:8px;font:600 14px Fredoka,sans-serif;background:rgba(255,255,255,.18);backdrop-filter:blur(8px);padding:7px 14px;border-radius:99px;margin-bottom:18px}
.openpill:before{content:"";width:9px;height:9px;border-radius:50%;background:#7ef0a6;box-shadow:0 0 0 4px rgba(126,240,166,.25)}
.openpill.closed:before{background:#ffb37c;box-shadow:0 0 0 4px rgba(255,179,124,.25)}
.rate{display:flex;align-items:center;gap:6px;margin-top:22px;font-size:15px}.rate svg{width:16px;color:#ffc94d}.rate b{margin-left:4px}
.scroll{position:absolute;right:22px;bottom:30px;font:600 13px Fredoka,sans-serif;writing-mode:vertical-rl;opacity:.8;display:flex;align-items:center;gap:10px}.scroll:after{content:"";width:1.5px;height:50px;background:currentColor}
/* ribbon */
.ribbon{background:var(--coral);color:#fff;overflow:hidden;padding:16px 0;transform:rotate(-1.2deg);margin:-14px -10px 0;position:relative;z-index:2}
.rtrack{display:flex;gap:44px;width:max-content;animation:mq 38s linear infinite;font:600 24px Fredoka,sans-serif}
.rtrack span:after{content:"✦";margin-left:44px;opacity:.7}
@keyframes mq{to{transform:translateX(-50%)}}
/* flavors */
.flavors{padding:clamp(90px,11vw,150px) 0}
.fg{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(36px,5vw,80px);align-items:start}
.ftext p{color:var(--mut);font-size:18px;margin:20px 0}
.lnk{font:600 17px Fredoka,sans-serif;color:var(--teal);text-decoration:underline;text-underline-offset:5px}
.caseimg{margin-top:30px;border-radius:28px;overflow:hidden;aspect-ratio:4/3;box-shadow:0 30px 60px -30px rgba(20,71,79,.5)}.caseimg img{width:100%;height:100%;object-fit:cover}
.fbox{background:#fff;border-radius:32px;padding:clamp(20px,3vw,34px);box-shadow:0 30px 70px -40px rgba(20,71,79,.35)}
.fchips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.fchip{font:600 15px Fredoka,sans-serif;border:0;border-radius:99px;padding:9px 16px;background:var(--sand);color:var(--deep);cursor:pointer}
.fchip.on{background:var(--deep);color:#fff}
.flist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:4px 18px}
.flist li{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px dashed #eadfcd;font:500 17px Fredoka,sans-serif;transition:opacity .25s}
.flist li i{width:26px;height:26px;border-radius:50%;background:var(--c);box-shadow:inset 0 -3px 0 rgba(0,0,0,.12),0 2px 0 rgba(0,0,0,.05);flex:none}
.flist li.hide{display:none}
/* menu */
.menu{background:var(--deep);color:#fff;padding:clamp(90px,11vw,150px) 0;border-radius:44px 44px 0 0}
.menu h2{color:#fff}.menu .sub{color:#b7d6d6}
.mgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:44px}
.mcard{border-radius:30px;padding:30px;color:var(--deep)}
.mcard.pink{background:var(--pink)}.mcard.mint{background:var(--mint)}.mcard.peach{background:var(--peach)}
.mcard h3{font-size:28px;font-weight:600;margin-bottom:14px}.mcard h4{font-size:19px;font-weight:600;margin:22px 0 8px}
.mcard ul{list-style:none;margin:0;padding:0}
.mcard li{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:9px 0;border-bottom:2px dotted rgba(20,71,79,.25);font:500 18px Fredoka,sans-serif}
.mcard li b{font-weight:700}.mcard em{font-style:normal;font-size:13px;background:rgba(255,255,255,.6);padding:2px 8px;border-radius:99px;margin-left:4px}
.ex{font-size:15px;margin:16px 0 0;font-weight:600}
/* shakes */
.shakes{background:var(--deep);padding:0 0 clamp(90px,11vw,150px)}
.shakes h2{color:#fff}.shakes .sub{color:#b7d6d6}
.sgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:44px}
.shake{background:var(--cream);border-radius:30px;overflow:hidden;display:flex;flex-direction:column}
.sim{aspect-ratio:3/4;overflow:hidden}.sim img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.shake:hover .sim img{transform:scale(1.05)}
.sb{padding:20px 22px 24px;position:relative}
.sp{position:absolute;top:-24px;right:18px;width:56px;height:56px;border-radius:50%;background:var(--coral);color:#fff;display:grid;place-items:center;font:700 18px Fredoka,sans-serif;box-shadow:0 6px 16px -4px rgba(0,0,0,.3)}
.sb h3{font-size:24px;font-weight:600;color:var(--deep);margin-bottom:8px}.sb p{margin:0;color:var(--mut);font-size:15.5px;line-height:1.5}
.shake.dream{background:var(--coral);justify-content:center}.shake.dream .sb{padding:30px}.shake.dream h3{color:#fff;font-size:32px;line-height:1.05}.shake.dream p{color:#fff;opacity:.92;margin-top:12px}
.shake.dream .sp{position:static;background:#fff;color:var(--coral);margin-bottom:20px}
/* gallery */
.gal{padding:clamp(90px,11vw,150px) 0 40px}
.gtrack{display:flex;gap:16px;overflow-x:auto;padding:36px 22px 20px;scroll-snap-type:x mandatory;scrollbar-width:none}
.gtrack::-webkit-scrollbar{display:none}
.gtrack figure{margin:0;flex:0 0 clamp(240px,26vw,340px);scroll-snap-align:start;position:relative}
.gtrack img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:26px}
.gtrack figure:nth-child(even){margin-top:40px}
.gtrack figcaption{font:500 15px Fredoka,sans-serif;color:var(--mut);margin-top:10px;padding-left:4px}
/* reviews */
.revs{padding:60px 0 clamp(90px,11vw,140px)}
.rhead{display:flex;align-items:center;gap:18px;margin-bottom:30px}
.big{font:600 84px Fredoka,sans-serif;color:var(--deep);line-height:1}
.st{display:flex;gap:2px;color:#f5b30f}.st svg{width:22px}.rhead p{margin:4px 0 0;color:var(--mut)}
.rgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.rv{margin:0;background:#fff;border-radius:28px;padding:28px;box-shadow:0 20px 50px -36px rgba(20,71,79,.4)}
.rv .st svg{width:17px}.rv blockquote{margin:14px 0;font:500 20px/1.4 Fredoka,sans-serif;color:var(--deep)}.rv figcaption{font-size:14.5px;color:var(--mut)}
/* visit */
.visit{background:var(--sand);padding:clamp(90px,11vw,150px) 0;border-radius:44px 44px 0 0}
.vg{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,70px);align-items:start}
.addr{font:500 22px Fredoka,sans-serif;margin:20px 0 22px}
.hours{list-style:none;margin:30px 0 0;padding:0;background:#fff;border-radius:24px;padding:10px 22px}
.hours li{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px dashed #eadfcd;font:500 17px Fredoka,sans-serif}.hours li:last-child{border:0}
.hours li.today{color:var(--teal);font-weight:700}.hours li.today span:after{content:" · Today";font-size:13px}
.perks{list-style:none;padding:0;margin:22px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.perks li{background:#fff;border-radius:99px;padding:8px 14px;font:500 15px Fredoka,sans-serif}
.map{border-radius:30px;overflow:hidden;min-height:520px;height:100%;box-shadow:0 30px 60px -35px rgba(20,71,79,.5)}
.map iframe{width:100%;height:100%;min-height:520px;border:0}
/* footer */
footer{background:var(--deep);color:#cfe3e3;padding:60px 0 30px}
.fgf{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:36px}
.fb .badge{width:110px;height:110px}.fb p{margin:14px 0 0}
footer h4{color:#fff;font-size:18px;margin-bottom:10px}footer p{margin:4px 0}footer a{text-decoration:none}footer a:hover{color:#fff}
.legal{margin-top:40px;padding-top:20px;border-top:1px solid rgba(255,255,255,.12);font-size:14px}
.mbar{display:none}
@media (max-width:980px){.nav nav{display:none}.fg,.vg{grid-template-columns:1fr}.mgrid{grid-template-columns:1fr}.sgrid{grid-template-columns:1fr 1fr}.rgrid{grid-template-columns:1fr}.fgf{grid-template-columns:1fr}.map,.map iframe{min-height:360px}}
@media (max-width:640px){
 body{padding-bottom:74px}.ncall span{display:none}.ncall{padding:11px}.brand .badge{width:46px;height:46px}.brand span{font-size:21px}
 .hin{padding-bottom:110px}.ctas .btn{flex:1 1 100%;justify-content:center}.scroll{display:none}
 .flist{grid-template-columns:1fr}.sgrid{grid-template-columns:1fr}.sim{aspect-ratio:4/3.4}
 .gtrack figure:nth-child(even){margin-top:0}
 .mbar{display:grid;grid-template-columns:1fr 1fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:60;padding:10px 10px calc(10px + env(safe-area-inset-bottom));background:rgba(255,250,242,.96);backdrop-filter:blur(10px);box-shadow:0 -1px 0 rgba(20,71,79,.1)}
 .mbar a{display:flex;align-items:center;justify-content:center;gap:8px;padding:15px;border-radius:99px;font:600 17px Fredoka,sans-serif;text-decoration:none;background:var(--pink);color:var(--deep)}.mbar a+a{background:var(--deep);color:#fff}.mbar svg{width:18px}}
@media (prefers-reduced-motion:reduce){.rtrack{animation:none}.reel img.on{animation:none}}
.sim.art{display:grid;place-items:center;padding:20px;text-align:center}
.shake.c0 .sim.art{background:repeating-linear-gradient(135deg,#6b4130 0 18px,#7a4c38 18px 36px)}
.shake.c2 .sim.art{background:repeating-linear-gradient(135deg,#c98a4b 0 18px,#d39a5e 18px 36px)}
.sim.art span{font:400 clamp(30px,3vw,40px)/1.15 Pacifico,cursive;color:#fffaf2;text-shadow:0 3px 0 rgba(0,0,0,.15)}
