:root{
  --bg:#fdf6f1; --fg:#3a1f1a; --card:#ffffff; --muted:#8a6a62; --muted-2:#f6ebe5;
  --primary:#e26a7a; --primary-fg:#fff8f5; --secondary:#f3d9d3; --accent:#f0c28a;
  --cream:#fbeedd; --strawberry:#e0556b; --border:#ecdcd4; --radius:1rem;
  --display:"Fraunces", Georgia, serif; --body:"Plus Jakarta Sans", system-ui, sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:var(--body);background:var(--bg);color:var(--fg);line-height:1.5;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.container{max-width:72rem;margin:0 auto;padding:0 1.5rem}
.display{font-family:var(--display);font-weight:600;letter-spacing:-0.02em;margin:0}
.muted{color:var(--muted)}
.muted-hoursClosed{color:var(--primary)}
.small{font-size:.875rem}
.eyebrow{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-weight:600}
.eyebrow.primary{color:var(--primary)}
.lead{font-size:1.125rem;color:var(--muted);max-width:30rem}

/* Nav */
.nav{position:sticky;top:0;z-index:40;backdrop-filter:blur(10px);background:rgba(253,246,241,.75);border-bottom:1px solid rgba(236,220,212,.6)}
.nav-inner{height:4rem;display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:.5rem}
.fish{font-size:1.5rem}
.brand-name{font-family:var(--display);font-size:1.25rem;font-weight:600;letter-spacing:-0.02em}
.nav-links{display:none;gap:2rem;font-size:.875rem;font-weight:500}
.nav-links a:hover{color:var(--primary)}
@media(min-width:768px){.nav-links{display:flex}}

.btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;border-radius:999px;font-weight:600;transition:opacity .2s, background .2s;border:1px solid transparent;cursor:pointer}
.btn-sm{padding:.5rem 1rem;font-size:.875rem}
.btn-primary{background:var(--primary);color:var(--primary-fg)}
.btn-primary:hover{opacity:.9}
.btn-ghost{background:var(--card);border-color:var(--border)}
.btn-ghost:hover{background:var(--secondary)}

/* Hero */
.hero{position:relative;overflow:hidden}
.hero-bg{position:absolute;inset:0;z-index:-2;background:linear-gradient(135deg,var(--cream),var(--bg) 55%,var(--secondary))}
.blob{position:absolute;width:24rem;height:24rem;border-radius:50%;filter:blur(80px);z-index:-1;opacity:.5}
.blob-1{top:-6rem;left:-6rem;background:var(--primary)}
.blob-2{top:10rem;right:-6rem;background:var(--accent)}
.hero-grid{padding:4rem 1.5rem 6rem;display:grid;gap:3rem;grid-template-columns:1fr;align-items:center}
@media(min-width:768px){.hero-grid{grid-template-columns:1fr 1fr;padding:6rem 1.5rem 8rem}}
.badge{display:inline-flex;align-items:center;gap:.5rem;border:1px solid var(--border);background:rgba(255,255,255,.6);padding:.25rem .75rem;border-radius:999px;font-size:.75rem;color:var(--muted);margin-bottom:1.5rem;font-weight:500}
.star{color:var(--strawberry)}
.hero-title{font-size:3rem;line-height:1.05}
@media(min-width:768px){.hero-title{font-size:4.5rem}}
.hero-title em{font-style:italic;color:var(--primary)}
.cta-row{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:2rem}
.hero-img-wrap{position:relative}
.hero-glow{position:absolute;inset:-1.5rem;background:linear-gradient(45deg,rgba(226,106,122,.3),rgba(240,194,138,.3));border-radius:2.5rem;filter:blur(40px);z-index:-1}
.hero-img-wrap img{border-radius:2rem;box-shadow:0 25px 50px -12px rgba(0,0,0,.25);width:100%;aspect-ratio:4/5;object-fit:cover}
.today-card{position:absolute;bottom:-1.5rem;left:-1.5rem;background:var(--card);border:1px solid var(--border);border-radius:1rem;padding:1rem 1.25rem;box-shadow:0 20px 25px -5px rgba(0,0,0,.1)}
.today-text{font-size:1.125rem;font-weight:600;margin-top:.25rem}

/* Sections */
.section{padding:6rem 1.5rem}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:1rem;margin-bottom:3rem}
.section-title{font-size:2.25rem;margin-top:.5rem}
@media(min-width:768px){.section-title{font-size:3rem}}
.section-sub{max-width:22rem}

.menu-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}
@media(min-width:640px){.menu-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.menu-grid{grid-template-columns:repeat(3,1fr)}}
.card{background:var(--card);border:1px solid var(--border);border-radius:1.5rem;overflow:hidden;transition:box-shadow .3s}
.card:hover{box-shadow:0 25px 50px -12px rgba(0,0,0,.15)}
.card-img{position:relative;aspect-ratio:1/1;overflow:hidden}
.card-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.card:hover .card-img img{transform:scale(1.05)}
.tag{position:absolute;top:1rem;left:1rem;background:rgba(253,246,241,.9);backdrop-filter:blur(4px);padding:.25rem .75rem;border-radius:999px;font-size:.75rem;font-weight:600}
.card-body{padding:1.5rem}
.card-body h3{font-size:1.5rem}
.card-body p{margin:.5rem 0 0;font-size:.875rem}

.cat-grid{margin-top:4rem;display:grid;grid-template-columns:1fr;gap:.75rem}
@media(min-width:640px){.cat-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:768px){.cat-grid{grid-template-columns:repeat(4,1fr)}}
.cat{background:rgba(243,217,211,.5);border:1px solid var(--border);border-radius:1rem;padding:1.5rem 1.25rem;text-align:center;font-family:var(--display);font-size:1.25rem}

/* About */
.about{background:rgba(243,217,211,.35);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.about-grid{padding:6rem 1.5rem;display:grid;grid-template-columns:1fr;gap:3rem;align-items:center}
@media(min-width:768px){.about-grid{grid-template-columns:1fr 1fr}}
.about-img{border-radius:2rem;aspect-ratio:1/1;object-fit:cover;box-shadow:0 25px 50px -12px rgba(0,0,0,.2)}
.stats{margin-top:2rem;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.stat{background:var(--card);border:1px solid var(--border);border-radius:1rem;padding:1rem;text-align:center}
.stat-n{font-family:var(--display);font-size:1.5rem;color:var(--primary)}
.stat-l{font-size:.75rem;color:var(--muted);margin-top:.25rem}

/* Visit */
.visit-grid{display:grid;grid-template-columns:1fr;gap:3rem}
@media(min-width:768px){.visit-grid{grid-template-columns:1fr 1fr}}
address{font-style:normal;font-size:1.125rem;margin:1.5rem 0}
.hours-card{background:var(--card);border:1px solid var(--border);border-radius:1.5rem;padding:2rem}
.hours-title{font-size:1.5rem;margin-bottom:1.5rem}
.hours-list{list-style:none;padding:0;margin:0}
.hours-list li{display:flex;justify-content:space-between;padding:.75rem 0;font-size:.875rem;border-top:1px solid var(--border)}
.hours-list li:first-child{border-top:none}
.hours-list span:first-child{font-weight:600}

/* Footer */
.footer{border-top:1px solid var(--border);background:rgba(251,238,221,.5)}
.footer-inner{padding:3rem 1.5rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1.5rem}
