
:root{--cream:#fbf3e6;--paper:#fff9ef;--ink:#2b2622;--char:#2f3033;--org:#e8680c;--org2:#c4540a;--line:#e9d9bf;--r:18px}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;scroll-padding-top:70px}
body{font:17px/1.6 'DM Sans',system-ui,sans-serif;background:var(--cream);color:var(--ink)}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3{font-family:'Fraunces',Georgia,serif;line-height:1.08}
.wrap{max-width:1120px;margin:0 auto;padding:0 22px}
section{padding:84px 0}
.eyebrow{font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:.78rem;color:var(--org2)}
h2{font-size:clamp(2rem,4.5vw,3.2rem);font-weight:800;margin:8px 0 14px}
.btn{display:inline-block;padding:14px 26px;border-radius:50px;background:var(--org);color:#fff;font-weight:700;text-decoration:none;border:2px solid var(--org);transition:.2s}
.btn:hover{background:var(--org2);border-color:var(--org2);transform:translateY(-2px)}
.btn.ghost{background:transparent;color:#fff;border-color:#fff}
.btn.ghost:hover{background:#fff;color:var(--char)}
/* nav */
header{position:sticky;top:0;z-index:20;background:rgba(47,48,51,.96);backdrop-filter:blur(8px)}
.nav{display:flex;align-items:center;justify-content:space-between;height:64px}
.nav img{height:50px}
.nav nav{display:flex;gap:26px;align-items:center}
.nav nav a{color:#fff;text-decoration:none;font-weight:500;font-size:.95rem}
.nav nav a:hover{color:#ffb27a}
.nav .call{background:var(--org);padding:8px 18px;border-radius:40px;font-weight:700}
@media(max-width:760px){.nav nav a:not(.call){display:none}}
/* hero */
.hero{background:var(--char);color:#fff;padding:0;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center;min-height:620px;padding-top:50px;padding-bottom:50px}
.hero h1{font-size:clamp(2.7rem,6.4vw,5rem);font-weight:800;letter-spacing:-.02em}
.hero h1 em{color:var(--org);font-style:italic}
.hero p.lead{font-size:1.2rem;color:#e3dcd2;margin:20px 0 28px;max-width:30em}
.cta{display:flex;gap:14px;flex-wrap:wrap}
.status{display:inline-flex;align-items:center;gap:9px;background:rgba(255,255,255,.1);padding:7px 16px;border-radius:40px;font-size:.9rem;margin-bottom:22px}
.dot{width:10px;height:10px;border-radius:50%;background:#aaa}
.dot.open{background:#4ade80;box-shadow:0 0 0 4px rgba(74,222,128,.25)}
.dot.closed{background:#f87171}
.heroimg{position:relative;height:540px}
.heroimg img{position:absolute;object-fit:cover;border-radius:var(--r);box-shadow:0 20px 50px rgba(0,0,0,.45);border:5px solid var(--paper)}
.heroimg .a{width:66%;height:78%;right:0;top:0;transform:rotate(2.5deg)}
.heroimg .b{width:48%;height:46%;left:0;bottom:0;transform:rotate(-4deg)}
.badge{position:absolute;left:4%;top:6%;background:var(--org);color:#fff;border-radius:50%;width:116px;height:116px;display:grid;place-items:center;text-align:center;font:800 .95rem/1.15 'Fraunces',serif;transform:rotate(-12deg);z-index:2}
@media(max-width:860px){.hero .wrap{grid-template-columns:1fr;min-height:0}.heroimg{height:360px}}
/* strip */
.strip{background:var(--org);color:#fff;padding:16px 0;font:600 1.05rem 'Fraunces',serif;text-align:center}
.strip{padding:16px 12px}.strip span{margin:0 8px;display:inline-block}
/* about */
.about .wrap{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.about .imgs{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.about .imgs img{border-radius:var(--r);height:300px;width:100%;object-fit:cover}
.about .imgs img:last-child{margin-top:40px}
.feat{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:26px}
.feat div{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:16px}
.feat b{display:block;font-family:'Fraunces',serif;font-size:1.1rem}
@media(max-width:860px){.about .wrap{grid-template-columns:1fr}}
/* gallery */
.gallery{background:var(--paper)}
.masonry{columns:3 240px;column-gap:16px;margin-top:34px}
.masonry figure{break-inside:avoid;margin-bottom:16px;position:relative;border-radius:var(--r);overflow:hidden;cursor:zoom-in}
.masonry img{width:100%;transition:transform .5s}
.masonry figure:hover img{transform:scale(1.05)}
.masonry figcaption{position:absolute;left:0;right:0;bottom:0;padding:30px 16px 12px;color:#fff;font:600 1rem 'Fraunces',serif;background:linear-gradient(transparent,rgba(0,0,0,.7))}
.lb{position:fixed;inset:0;background:rgba(20,18,16,.92);display:none;place-items:center;z-index:50;padding:20px;cursor:zoom-out}
.lb.on{display:grid}.lb img{max-height:90vh;border-radius:10px}
/* menu */
.tabs{display:flex;gap:10px;flex-wrap:wrap;margin:26px 0 30px}
.tabs button{font:600 .95rem 'DM Sans',sans-serif;padding:10px 20px;border-radius:40px;border:2px solid var(--char);background:transparent;color:var(--char);cursor:pointer}
.tabs button.on{background:var(--char);color:#fff}
.menu{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:12px 34px;columns:2 320px;column-gap:56px}
.menu h3{font-size:1.2rem;color:var(--org2);margin:22px 0 4px;break-after:avoid}
.item{display:flex;align-items:baseline;gap:8px;padding:9px 0;break-inside:avoid}
.item i{flex:1;border-bottom:2px dotted #d7c3a3;transform:translateY(-4px)}
.item b{font-weight:700;color:var(--org2)}
.note{font-size:.9rem;color:#7a6c5a;margin-top:14px}
/* visit */
.visit{background:var(--char);color:#fff}
.visit .wrap{display:grid;grid-template-columns:1fr 1fr;gap:56px}
.visit h2{color:#fff}.visit .eyebrow{color:#ffa566}
.hours{list-style:none;padding:0;margin:20px 0}
.hours li{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.15)}
.hours li.today{color:#ffa566;font-weight:700}
.info p{margin:12px 0;display:flex;gap:12px}
.info a{text-decoration:none;border-bottom:1px solid rgba(255,255,255,.4)}
.social{display:flex;gap:12px;margin-top:22px;flex-wrap:wrap}
@media(max-width:860px){.visit .wrap{grid-template-columns:1fr}}
footer{background:#222325;color:#b8b1a6;text-align:center;padding:26px 0;font-size:.9rem}
.tag{font:italic 600 1.1rem 'Fraunces',serif;color:var(--org);margin-bottom:6px}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.phead{background:var(--char);color:#fff;padding:64px 0 54px}.phead h1{font-size:clamp(2.4rem,5vw,3.8rem);font-weight:800}.phead .eyebrow{color:#ffa566}.phead p{color:#e3dcd2;max-width:36em;margin-top:10px}
.nav nav a.act{color:#ffb27a}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-top:30px}
.cat{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:24px;text-decoration:none;transition:.2s;display:block}
.cat:hover{transform:translateY(-4px);border-color:var(--org)}.cat span{font-size:2rem}.cat b{display:block;font:800 1.25rem 'Fraunces',serif;margin-top:6px}.cat small{color:#7a6c5a}
.prev{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:30px 0}.prev img{border-radius:var(--r);height:260px;width:100%;object-fit:cover}
@media(max-width:700px){.prev{grid-template-columns:1fr 1fr}.prev img:last-child{display:none}}
.center{text-align:center;margin-top:8px}.btn.dark{border-color:var(--char);color:var(--char);background:transparent}.btn.dark:hover{background:var(--char);color:#fff}
.fgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:30px;text-align:left;margin-bottom:22px}.fgrid a{display:block;text-decoration:none;padding:3px 0}.fgrid a:hover{color:#ffa566}.fgrid b{color:#fff;display:block;margin-bottom:6px}
@media(max-width:700px){.fgrid{grid-template-columns:1fr}}
