@font-face{font-family:Fredoka;src:url(../fonts/Fredoka-var.woff2) format("woff2");font-weight:300 700;font-stretch:75% 125%;font-display:swap}
@font-face{font-family:Hanken;src:url(../fonts/HankenGrotesk-var.woff2) format("woff2");font-weight:300 800;font-display:swap}
:root{--navy:#0e2a5e;--navy2:#16398a;--sky:#2f9be6;--sky-l:#e4f2fd;--sun:#ffd43b;--sun-d:#e8b800;--lav:#cfc8f4;--lav-l:#f1effc;--cream:#fffbee;--ink:#14213d;--mute:#56627c;--ok:#1f9d63;--bad:#d94b4b;--r:22px;--sh:0 14px 40px -18px rgba(14,42,94,.45)}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{font:17px/1.6 Hanken,system-ui,sans-serif;color:var(--ink);background:var(--cream);overflow-x:hidden;-webkit-text-size-adjust:100%}
img,svg{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,.f{font-family:Fredoka,system-ui,sans-serif;font-weight:600;line-height:1.08;letter-spacing:-.01em;color:var(--navy)}
h1{font-size:clamp(2.4rem,7.4vw,4.6rem)}
h2{font-size:clamp(1.9rem,5vw,3rem)}
h3{font-size:1.35rem}
p{max-width:62ch}
.wrap{width:min(1160px,100% - 32px);margin-inline:auto}
section{padding:clamp(56px,9vw,104px) 0}
.eyebrow{font:600 .8rem/1 Hanken;letter-spacing:.14em;text-transform:uppercase;color:var(--sky);margin-bottom:14px;display:block}
.lede{font-size:1.15rem;color:var(--mute);margin-top:14px}
/* header */
.top{position:sticky;top:0;z-index:50;background:rgba(255,251,238,.94);border-bottom:2px solid var(--lav)}
.top .wrap{display:flex;align-items:center;gap:14px;height:68px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font:600 1.15rem/1 Fredoka;color:var(--navy);min-width:0}
.brand svg{width:34px;height:34px;flex:none}
.brand small{display:block;font:500 .62rem/1 Hanken;letter-spacing:.14em;text-transform:uppercase;color:var(--sky);margin-top:3px}
nav{margin-left:auto;display:flex;gap:2px}
nav a{padding:9px 13px;border-radius:99px;text-decoration:none;font-weight:600;font-size:.95rem;color:var(--navy)}
nav a:hover,nav a[aria-current]{background:var(--sky-l)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;cursor:pointer;font:600 1rem/1 Hanken;padding:15px 24px;border-radius:99px;text-decoration:none;min-height:50px;transition:transform .15s,box-shadow .15s}
.btn:hover{transform:translateY(-2px)}
.btn-sun{background:var(--sun);color:var(--navy);box-shadow:0 6px 0 var(--sun-d)}
.btn-sun:active{transform:translateY(3px);box-shadow:0 2px 0 var(--sun-d)}
.btn-navy{background:var(--navy);color:#fff}
.btn-wa{background:#25d366;color:#053b1c}
.btn-ghost{background:#fff;color:var(--navy);box-shadow:inset 0 0 0 2px var(--lav)}
.top .btn{padding:11px 18px;min-height:44px;font-size:.92rem}
.menu{display:none;margin-left:auto;background:var(--sky-l);border:0;width:46px;height:46px;border-radius:14px;cursor:pointer;color:var(--navy)}
.menu svg{margin:auto;width:24px}
.open-chip{display:inline-flex;align-items:center;gap:8px;background:#fff;border-radius:99px;padding:8px 14px;font-weight:600;font-size:.9rem;box-shadow:inset 0 0 0 2px var(--lav)}
.open-chip i{width:10px;height:10px;border-radius:50%;background:var(--bad)}
.open-chip.on i{background:var(--ok);animation:pulse 1.8s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(31,157,99,.55)}100%{box-shadow:0 0 0 10px rgba(31,157,99,0)}}
/* hero */
.hero{padding:clamp(36px,6vw,72px) 0 clamp(48px,7vw,90px);background:radial-gradient(circle at 90% 10%,var(--sun) 0 90px,transparent 91px),radial-gradient(circle at 4% 96%,var(--lav) 0 120px,transparent 121px),var(--cream);overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(24px,5vw,60px);align-items:center}
.hero h1 em{font-style:normal;color:var(--sky);position:relative;white-space:nowrap}
.hero h1 em::after{content:"";position:absolute;left:0;right:0;bottom:-.08em;height:.14em;background:var(--sun);border-radius:9px;z-index:-1}
.hero .row{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.rate{display:flex;align-items:center;gap:12px;margin-top:26px;font-weight:600}
.stars{color:var(--sun-d);letter-spacing:2px;font-size:1.2rem}
.polaroid{background:#fff;padding:12px 12px 44px;border-radius:18px;box-shadow:var(--sh);transform:rotate(2.5deg);position:relative}
.polaroid img{border-radius:10px;aspect-ratio:4/3.2;object-fit:cover;width:100%}
.polaroid b{position:absolute;bottom:11px;left:0;right:0;text-align:center;font:500 1.05rem Fredoka;color:var(--navy)}
.polaroid.b2{position:absolute;width:46%;right:-4%;bottom:-8%;transform:rotate(-6deg)}
.pics{position:relative;padding-bottom:8%}
.sticker{position:absolute;left:-3%;top:-4%;background:var(--navy);color:#fff;border-radius:50%;width:118px;height:118px;display:grid;place-content:center;text-align:center;font:600 .78rem/1.15 Hanken;transform:rotate(-10deg);z-index:2;box-shadow:var(--sh)}
.sticker b{font:600 2rem/1 Fredoka;color:var(--sun)}
/* topics */
.topics{background:var(--navy);color:#fff;padding:34px 0;overflow:hidden}
.mq{display:flex;gap:14px;width:max-content;animation:mq 38s linear infinite}
.mq span{background:rgba(255,255,255,.1);padding:12px 20px;border-radius:99px;font-weight:600;white-space:nowrap}
.mq span b{color:var(--sun);margin-left:6px;font-family:Fredoka}
@keyframes mq{to{transform:translateX(-50%)}}
/* cards */
.grid{display:grid;gap:20px;margin-top:36px}
.g3{grid-template-columns:repeat(3,1fr)}
.g2{grid-template-columns:repeat(2,1fr)}
.card{background:#fff;border-radius:var(--r);padding:26px;box-shadow:var(--sh);position:relative;transition:transform .2s}
.card:hover{transform:translateY(-4px) rotate(-.4deg)}
.card .ic{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;margin-bottom:16px;background:var(--sky-l)}
.card:nth-child(3n+2) .ic{background:#fff3bd}
.card:nth-child(3n) .ic{background:var(--lav-l)}
.card .ic svg{width:32px;height:32px}
.card p{margin-top:8px;color:var(--mute);font-size:.98rem}
.tag{display:inline-block;margin-top:14px;font-size:.78rem;font-weight:700;background:var(--sky-l);color:var(--navy2);padding:5px 12px;border-radius:99px}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,64px);align-items:center}
.split img{border-radius:var(--r);box-shadow:var(--sh);width:100%}
.band{background:var(--sun);border-radius:34px;padding:clamp(30px,5vw,56px);display:flex;gap:24px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.band h2{max-width:20ch}
.band .row{display:flex;gap:12px;flex-wrap:wrap}
.q{background:#fff;border-radius:var(--r);padding:26px;box-shadow:var(--sh);display:flex;flex-direction:column;gap:12px}
.q p{font-size:1.04rem}
.q footer{margin-top:auto;font-weight:700;color:var(--navy);display:flex;justify-content:space-between;gap:8px;font-size:.92rem}
.q footer span{font-weight:500;color:var(--mute)}
.note{font-size:.85rem;color:var(--mute);margin-top:18px}
/* checker */
.chk{display:grid;grid-template-columns:1.1fr .9fr;gap:26px;margin-top:36px;align-items:start}
.arch{background:#fff;border-radius:28px;padding:20px;box-shadow:var(--sh)}
.arch svg{width:100%;height:auto}
.tooth{cursor:pointer;fill:#fff;stroke:var(--navy);stroke-width:2.5;transition:fill .15s,transform .15s;transform-box:fill-box;transform-origin:center}
.tooth:hover{fill:var(--sky-l);transform:scale(1.07)}
.tooth.on{fill:var(--sun)}
.tooth:focus-visible{outline:3px solid var(--sky)}
.gum{fill:#ffc9d1}
.chips{display:flex;flex-wrap:wrap;gap:9px;margin-top:16px}
.chip{border:0;cursor:pointer;background:var(--lav-l);color:var(--navy);padding:11px 16px;border-radius:99px;font:600 .95rem Hanken;min-height:44px;transition:.15s}
.chip:hover{background:var(--lav)}
.chip.on{background:var(--navy);color:#fff}
.res{background:var(--navy);color:#fff;border-radius:28px;padding:30px;position:sticky;top:90px}
.res h3{color:var(--sun);font-size:1.7rem}
.res p{color:#d9e3ff;margin-top:12px}
.res ul{margin:14px 0 20px 18px;color:#d9e3ff}
.res li{margin:6px 0}
/* booking */
.bk>*,.chk>*,.split>*,.hero .wrap>*{min-width:0}
.bk{display:grid;grid-template-columns:1.15fr .85fr;gap:28px;align-items:start;margin-top:30px}
.panel{background:#fff;border-radius:var(--r);padding:clamp(20px,3vw,32px);box-shadow:var(--sh)}
.panel+.panel{margin-top:18px}
.panel h3{margin-bottom:14px;display:flex;gap:10px;align-items:center}
.panel h3 span{background:var(--sun);width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:1rem}
.days{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 12px;scroll-snap-type:x mandatory}
.day{flex:none;scroll-snap-align:start;border:2px solid var(--lav);background:#fff;border-radius:16px;width:74px;padding:10px 0;text-align:center;cursor:pointer;font:600 .85rem Hanken;color:var(--navy)}
.day b{display:block;font:600 1.5rem Fredoka}
.day.on{background:var(--navy);border-color:var(--navy);color:#fff}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:9px}
.slot{border:2px solid var(--lav);background:#fff;border-radius:12px;padding:11px 0;font:600 .95rem Hanken;cursor:pointer;color:var(--navy);min-height:44px}
.slot.on{background:var(--sun);border-color:var(--sun-d)}
.slot:disabled{opacity:.35;cursor:not-allowed;text-decoration:line-through}
label{font-weight:600;font-size:.92rem;display:block;margin-bottom:6px;color:var(--navy)}
input[type=text],input[type=tel]{width:100%;font:inherit;padding:14px 16px;border:2px solid var(--lav);border-radius:14px;background:#fff;min-height:50px}
input:focus{outline:3px solid var(--sky);border-color:var(--sky)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.wa{background:#e7ddd0;border-radius:var(--r);padding:20px;position:sticky;top:90px;box-shadow:var(--sh);background-image:radial-gradient(#d6c9b8 1.2px,transparent 1.3px);background-size:18px 18px}
.wa h3{font-size:1rem;font-family:Hanken;margin-bottom:12px;color:#4a3f31}
.bub{background:#dcf8c6;border-radius:14px 14px 4px 14px;padding:14px 16px;white-space:pre-wrap;font-size:.97rem;box-shadow:0 1px 2px rgba(0,0,0,.15);min-height:120px;word-break:break-word}
.bub s{opacity:.5;text-decoration:none}
.wa .btn{width:100%;margin-top:14px}
.wa small{display:block;margin-top:10px;color:#6a5d4c;font-size:.8rem}
/* hours */
table{width:100%;border-collapse:collapse}
td{padding:12px 14px;border-bottom:2px dashed var(--lav)}
tr.today td{background:#fff3bd;font-weight:700}
td:last-child{text-align:right}
.map{border:0;width:100%;height:100%;min-height:340px;border-radius:var(--r);box-shadow:var(--sh)}
/* pano */
.pano{overflow-x:auto;border-radius:var(--r);box-shadow:var(--sh);cursor:grab;scrollbar-width:thin}
.pano img{height:min(62vw,460px);max-width:none;width:auto}
.gal{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}
.gal img{border-radius:var(--r);width:100%;aspect-ratio:4/3;object-fit:cover;box-shadow:var(--sh)}
/* footer */
footer.f{background:var(--navy);color:#cdd8f5;padding:54px 0 110px;font-family:Hanken;font-weight:400;letter-spacing:0;line-height:1.6;font-size:.95rem}
footer.f .wrap{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:30px}
footer.f h4{font:600 1.1rem Fredoka;color:#fff;margin-bottom:10px}
footer.f a{display:block;text-decoration:none;padding:3px 0}
footer.f small{display:block;margin-top:30px;grid-column:1/-1;opacity:.7;border-top:1px solid rgba(255,255,255,.15);padding-top:18px}
.bar{display:none}
.rv{opacity:1;transform:none}
.js .rv{opacity:0;transform:translateY(22px);transition:.6s}
.js .rv.in{opacity:1;transform:none}
:focus-visible{outline:3px solid var(--sky);outline-offset:2px}
@media(max-width:900px){
 .hero .wrap,.split,.chk,.bk{grid-template-columns:1fr}
 .g3{grid-template-columns:1fr 1fr}
 .res,.wa{position:static}
 nav{display:none;position:absolute;top:68px;left:0;right:0;flex-direction:column;background:var(--cream);padding:12px 16px 18px;border-bottom:2px solid var(--lav);box-shadow:var(--sh)}
 nav.open{display:flex}
 nav a{padding:14px}
 .menu{display:grid}
 .top .btn{display:none}
 .pics{max-width:520px;margin:10px auto 0}
 footer.f .wrap{grid-template-columns:1fr 1fr}
 footer.f .wrap>div:first-child{grid-column:1/-1}
 .bar{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;position:fixed;bottom:0;left:0;right:0;z-index:60;background:#fff;padding:9px 12px calc(9px + env(safe-area-inset-bottom));box-shadow:0 -6px 24px rgba(14,42,94,.18)}
 .bar a{display:flex;align-items:center;justify-content:center;min-height:48px;border-radius:14px;font-weight:700;text-decoration:none;font-size:.95rem}
}
@media(max-width:600px){
 body{font-size:16px}
 .g3,.g2,.gal,.two{grid-template-columns:1fr}
 .sticker{width:92px;height:92px;font-size:.66rem}.sticker b{font-size:1.5rem}
 .brand small{display:none}
 footer.f .wrap{grid-template-columns:1fr}
 .hero .row .btn{flex:1 1 100%}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.js .rv{opacity:1;transform:none}}

footer.f .open-chip,footer.f .open-chip span{color:var(--navy)}
