@font-face{font-family:"Gloock";src:url("fonts/Gloock-Regular.woff2") format("woff2");font-display:swap}
@font-face{font-family:"Tenor Sans";src:url("fonts/TenorSans-Regular.woff2") format("woff2");font-display:swap}
:root{--navy:#090053;--blue:#c2dcff;--cream:#f8f9f0;--char:#4f4f4f;--char2:#454545;--serif:"Gloock",Georgia,"Times New Roman",serif;--sans:"Tenor Sans","Helvetica Neue",Arial,sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:64px;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--sans);color:var(--navy);background:var(--cream);line-height:1.5;font-size:1rem}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
a:focus-visible,.btn:focus-visible{outline:3px solid #ff9f43;outline-offset:3px;border-radius:6px}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;line-height:1.05;margin:0}
em{font-style:normal}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.narrow{max-width:720px}
.skip{position:absolute;left:-999px;top:8px;background:var(--navy);color:var(--cream);padding:8px 12px;z-index:50}
.skip:focus{left:8px}
/* top bar */
.topbar{position:sticky;top:0;z-index:20;background:var(--navy);color:var(--cream)}
.topbar-in{display:flex;align-items:center;justify-content:space-between;height:56px}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-size:1.45rem;text-decoration:none;letter-spacing:.01em}
.brand img{width:32px;height:32px;border-radius:50%}
.topbar nav{display:flex;align-items:center;gap:4px}
.topbar nav a{text-decoration:none;padding:8px 10px;font-size:.95rem;letter-spacing:.04em}
.topbar nav a:hover{text-decoration:underline}
.topbar .pill{background:var(--blue);color:var(--navy);border-radius:999px;padding:7px 16px;margin-left:4px}
/* hero */
.hero{background:var(--blue);padding:28px 0 40px;position:relative}
.hero::before{content:"";position:absolute;inset:12px;border:1px solid var(--navy);pointer-events:none}
.hero-in{display:grid;gap:22px;justify-items:center;text-align:center}
.hero-logo{width:min(62vw,250px)}
.hero h1{font-size:clamp(2.6rem,11vw,4.6rem);letter-spacing:-.01em}
.tagline{font-family:var(--serif);font-size:clamp(1.25rem,5vw,1.7rem);margin:.4rem 0 .9rem}
.lede{max-width:34rem;margin:0 auto 1.2rem;font-size:1.02rem}
.ctas{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 18px;border:1.5px solid var(--navy);border-radius:999px;text-decoration:none;font-size:.98rem;letter-spacing:.02em;background:transparent;color:var(--navy);transition:background .15s,color .15s}
.btn:hover{background:var(--navy);color:var(--cream)}
.btn.primary{background:var(--navy);color:var(--cream)}
.btn.primary:hover{background:#1c1478}
.hero .ctas .btn{flex:1 1 100%;max-width:340px}
.hero-addr{margin:1rem 0 0;font-size:.92rem}
@media (min-width:560px){.hero .ctas .btn{flex:0 0 auto}}
@media (min-width:860px){
 .hero{padding:56px 0 64px}
 .hero::before{inset:18px}
 .hero-in{grid-template-columns:300px 1fr;text-align:left;justify-items:start;align-items:center;gap:56px;padding:0 24px}
 .hero-logo{width:300px}
 .lede{margin-left:0}
 .hero .ctas{justify-content:flex-start}
}
/* sections */
.section-h{font-size:clamp(2.3rem,9vw,3.4rem);text-align:center;margin:0 0 18px}
.menu{background:var(--cream);padding:44px 0 36px}
.menu-switch{display:flex;gap:10px;justify-content:center;margin:0 0 10px}
.menu-switch a{flex:1;max-width:220px;text-align:center;text-decoration:none;padding:12px 10px;border-radius:999px;font-size:1rem;border:1.5px solid var(--navy)}
.menu-switch a:first-child{background:var(--char);border-color:var(--char);color:var(--cream)}
.menu-switch a:last-child{background:var(--blue)}
.menu-note{text-align:center;font-size:.86rem;margin:0 auto 22px;max-width:30rem;opacity:.85}
.menu-part{border-radius:4px;padding:30px 16px 18px;margin:0 -8px 26px;position:relative;scroll-margin-top:64px}
.menu-part::before{content:"";position:absolute;inset:8px;border:1px solid currentColor;opacity:.55;pointer-events:none;border-radius:2px}
.menu-part.light{background:var(--blue);color:var(--navy)}
.menu-part.dark{background:var(--char);color:var(--blue)}
.menu-part.dark h3,.menu-part.dark h2,.menu-part.dark h4,.menu-part.dark .part-head,.menu-part.dark .sub,.menu-part.dark .note-h{color:var(--cream)}
.part-head{text-align:center;margin-bottom:14px;padding:0 8px}
.part-head h3,.part-head h2{font-size:clamp(2.4rem,11vw,3.6rem)}
.part-head p{margin:.4rem 0 0;font-size:.92rem}
.chips ul{list-style:none;margin:0 0 20px;padding:0 6px;display:flex;flex-wrap:wrap;gap:7px;justify-content:center}
.chips a{display:inline-block;text-decoration:none;font-size:.85rem;padding:5px 11px;border:1px solid currentColor;border-radius:999px;line-height:1.3}
.chips a:hover{background:rgba(255,255,255,.18)}
.sheets{display:grid;gap:0}
.sheet{padding:6px 8px 4px}
.sheet+.sheet{border-top:1px dashed currentColor}
.cat{padding:18px 0 8px;scroll-margin-top:68px}
.cat h4,.cat h3{font-size:clamp(1.9rem,8vw,2.4rem);text-align:center;margin-bottom:12px}
.sub{font-family:var(--serif);font-size:1.15rem;text-align:center;margin:10px 0 6px;letter-spacing:.02em}
.sub::before,.sub::after{content:"~";margin:0 .4em;opacity:.7}
.items{list-style:none;margin:0;padding:0}
.items li{padding:5px 0}
.row{display:flex;align-items:baseline;gap:8px}
.name{font-size:1.04rem;letter-spacing:.01em}
.dots{flex:1;border-bottom:1.5px dotted currentColor;opacity:.45;min-width:14px;transform:translateY(-4px)}
.price{font-family:var(--serif);font-size:1.1rem;white-space:nowrap}
.rs{font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans",Arial,sans-serif;font-size:.78em;margin-right:2px;opacity:.85;font-weight:400}
.desc{margin:2px 0 4px;font-size:.88rem;opacity:.85;line-height:1.4;max-width:34em}
.note{text-align:center;margin:12px 0 6px;font-size:.95rem}
.note-h{font-family:var(--serif);font-size:1.2rem}
.note-o{letter-spacing:.06em}
.art{display:flex;justify-content:center;align-items:flex-end;gap:14px;padding:10px 0 12px}
.art img{width:auto;max-height:120px;max-width:44%;object-fit:contain}
.menu-link{text-align:center;font-size:.92rem;margin:4px 0 0;word-break:break-word}
@media (min-width:760px){
 .menu-part{padding:44px 34px 28px;margin:0 0 34px}
 .menu-part::before{inset:12px}
 .sheets{grid-template-columns:1fr 1fr;column-gap:44px}
 .sheet+.sheet{border-top:0}
 .sheet{border-top:1px dashed currentColor}
 .sheet:nth-child(-n+2){border-top:0}
 .art img{max-height:150px}
}
/* about */
.about{background:var(--navy);color:var(--cream);padding:48px 0;text-align:center}
.about p{font-size:1.06rem;margin:0 0 1rem}
/* visit */
.visit{background:var(--blue);padding:46px 0 50px}
.visit-in{display:grid;gap:26px}
.visit .section-h{text-align:left}
.addr{font-style:normal;font-size:1.08rem;line-height:1.55;margin-bottom:12px}
.phone a{font-family:var(--sans);font-size:1.45rem;letter-spacing:.03em;text-decoration:none}
.hours{background:var(--cream);border:1px dashed var(--navy);padding:10px 14px;border-radius:6px;font-size:.95rem}
.tbc{font-style:italic}
.pay{font-size:.95rem;margin:.4rem 0 1.2rem}
.visit .ctas{justify-content:flex-start}
.map{display:flex;flex-direction:column;gap:8px}
.map iframe{width:100%;height:340px;border:1.5px solid var(--navy);border-radius:6px;background:var(--cream)}
.map-open{font-size:.92rem;align-self:flex-start}
@media (min-width:860px){.visit-in{grid-template-columns:1fr 1.15fr;align-items:start}.map iframe{height:440px}}
/* footer */
.foot{background:var(--char);color:var(--cream);padding:38px 0 46px;text-align:center}
.foot img{margin:0 auto 10px;width:120px}
.foot-name{font-family:var(--serif);font-size:1.6rem;margin:0 0 8px}
.foot address{font-style:normal;font-size:.92rem;line-height:1.55;max-width:30rem;margin:0 auto 10px}
.foot-links{font-size:.95rem}
.small{font-size:.82rem;opacity:.8}
.crumb{margin:0 0 6px;font-size:.92rem}
.menu-intro{text-align:center;margin:-6px 0 16px;font-size:.95rem}
@media (max-width:380px){.hide-xs{display:none}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
