:root{
  --navy:#153944;
  --navy-dark:#0E282F;
  --gold:#E8A33D;
  --gold-deep:#C97F1E;
  --cream:#FBF2DE;
  --paper:#F5E9CE;
  --red:#C1442A;
  --ink:#28211A;
  --ink-soft:#5B5246;
  --line: rgba(21,57,68,0.14);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:'Karla',sans-serif;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.display{
  font-family:'Alfa Slab One',serif;
  font-weight:400;
  line-height:1.05;
  letter-spacing:0.5px;
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:1100px;margin:0 auto;padding:0 28px;}

/* Ribbon */
.ribbon{
  background:var(--navy-dark);
  color:var(--paper);
  font-size:0.78rem;
  letter-spacing:0.06em;
  text-align:center;
  padding:8px 12px;
  font-style:italic;
  border-bottom:1px solid rgba(232,163,61,0.25);
}
.ribbon b{font-style:normal;color:var(--gold);font-weight:700;}

/* Header */
header{
  background:var(--navy);
  color:var(--cream);
  position:sticky;
  top:0;
  z-index:50;
  box-shadow:0 2px 10px rgba(0,0,0,0.15);
}
.nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:16px 28px;
  max-width:1100px;
  margin:0 auto;
}
.brand{
  display:flex;
  align-items:center;
  gap:10px;
  font-family:'Alfa Slab One',serif;
  font-size:1.35rem;
  color:var(--cream);
  text-decoration:none;
}
.brand .fish-mark{width:34px;height:34px;flex:none;}
.nav-links{display:flex;gap:28px;font-weight:600;font-size:0.92rem;letter-spacing:0.03em;}
.nav-links a{padding:6px 2px;border-bottom:2px solid transparent;transition:border-color .2s ease, color .2s ease;}
.nav-links a:hover,.nav-links a.active{border-color:var(--gold);color:var(--gold);}
.nav-cta{
  background:var(--gold);
  color:var(--navy-dark);
  font-weight:700;
  padding:9px 18px;
  border-radius:3px;
  font-size:0.88rem;
  letter-spacing:0.02em;
}
.nav-cta:hover{background:#f0b256;}
.menu-toggle{display:none;background:none;border:0;color:var(--cream);font-size:1.6rem;cursor:pointer;}
.mobile-panel{display:none;flex-direction:column;background:var(--navy-dark);padding:8px 28px 20px;gap:2px;}
.mobile-panel a{padding:12px 2px;font-weight:600;font-size:0.98rem;border-bottom:1px solid rgba(251,242,222,0.08);}
.mobile-panel.open{display:flex;}

/* Page header (non-home pages) */
.page-hero{
  background:radial-gradient(ellipse at 75% 20%, rgba(232,163,61,0.18), transparent 55%), var(--navy);
  color:var(--cream);
  padding:64px 0 54px;
  text-align:center;
}
.page-hero .eyebrow{justify-content:center;}
.page-hero .eyebrow::before{display:none;}
.page-hero h1{font-size:clamp(2.1rem,4.4vw,3rem);margin:14px 0 10px;color:var(--cream);}
.page-hero p{color:#D9E4E4;max-width:52ch;margin:0 auto;font-size:1.02rem;line-height:1.6;}

/* Hero (home only) */
.hero{
  background:
    radial-gradient(ellipse at 75% 20%, rgba(232,163,61,0.18), transparent 55%),
    var(--navy);
  color:var(--cream);
  padding:76px 0 0;
  position:relative;
  overflow:hidden;
}
.hero-inner{
  max-width:1100px;
  margin:0 auto;
  padding:0 28px 70px;
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
  gap:40px;
  align-items:center;
}
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--gold);
  font-weight:700;
  letter-spacing:0.12em;
  text-transform:uppercase;
  font-size:0.78rem;
  margin-bottom:18px;
}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--gold);display:inline-block;}
.hero h1{
  font-size:clamp(2.5rem,5.2vw,4.1rem);
  margin:0 0 20px;
  color:var(--cream);
}
.hero h1 span{color:var(--gold);}
.hero p.lede{
  font-size:1.1rem;
  color:#D9E4E4;
  max-width:46ch;
  line-height:1.6;
  margin:0 0 32px;
}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;}
.btn{
  display:inline-block;
  padding:14px 26px;
  border-radius:3px;
  font-weight:700;
  font-size:0.95rem;
  letter-spacing:0.02em;
  transition:transform .15s ease, box-shadow .15s ease;
}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:var(--gold);color:var(--navy-dark);box-shadow:0 6px 18px rgba(232,163,61,0.25);}
.btn-primary:hover{box-shadow:0 10px 22px rgba(232,163,61,0.35);}
.btn-outline{border:2px solid rgba(251,242,222,0.4);color:var(--cream);}
.btn-outline:hover{border-color:var(--gold);color:var(--gold);}

.hero-art{position:relative;display:flex;align-items:center;justify-content:center;}
.plate{
  width:min(360px,90%);
  aspect-ratio:1/1;
  border-radius:50%;
  background:radial-gradient(circle at 40% 35%, #fff, #e9e2d0 70%);
  box-shadow:0 25px 50px rgba(0,0,0,0.35), inset 0 0 0 10px #f7f1e3;
  display:flex;align-items:center;justify-content:center;
  position:relative;
}

/* scale divider */
.scales{
  height:46px;
  width:100%;
  background-color:var(--cream);
  background-image: radial-gradient(circle at 10px -6px, transparent 12px, var(--navy) 13px);
  background-size:26px 26px;
  background-position:0 -6px;
  margin-top:-2px;
}

section{padding:74px 0;}
.section-head{max-width:640px;margin:0 auto 44px;text-align:center;}
.section-head .eyebrow{justify-content:center;}
.section-head .eyebrow::before{display:none;}
.section-head h2{font-size:clamp(1.9rem,3.4vw,2.6rem);color:var(--navy);margin:0 0 12px;}
.section-head p{color:var(--ink-soft);font-size:1.02rem;line-height:1.6;}

/* About */
.about{background:var(--cream);}
.about-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:56px;
  align-items:center;
}
.about-copy h2{color:var(--navy);font-size:clamp(1.8rem,3vw,2.3rem);margin-top:0;}
.about-copy p{color:var(--ink-soft);line-height:1.75;font-size:1.02rem;}
.stat-row{display:flex;gap:36px;margin-top:28px;flex-wrap:wrap;}
.stat .num{font-family:'Alfa Slab One';font-size:1.9rem;color:var(--red);}
.stat .label{font-size:0.82rem;color:var(--ink-soft);letter-spacing:0.02em;}
.about-visual{
  background:var(--navy);
  border-radius:8px;
  padding:36px;
  color:var(--cream);
  position:relative;
  box-shadow:0 20px 40px rgba(21,57,68,0.25);
}
.about-visual .tag{
  font-family:'Alfa Slab One';
  color:var(--gold);
  font-size:1.1rem;
  margin-bottom:10px;
}
.about-visual ul{list-style:none;margin:0;padding:0;display:grid;gap:14px;}
.about-visual li{display:flex;gap:12px;align-items:flex-start;font-size:0.95rem;color:#DCE7E7;}
.about-visual li b{color:var(--cream);}
.check{width:20px;height:20px;flex:none;color:var(--gold);}

/* Menu */
.menu-section{background:var(--navy);color:var(--cream);}
.menu-section .section-head h2{color:var(--cream);}
.menu-section .section-head p{color:#C7D6D6;}
.menu-section .eyebrow{color:var(--gold);}
.menu-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:16px 48px;
}
.menu-cat:nth-child(4){grid-column:1;}
.menu-cat{margin-bottom:8px;}
.menu-cat h3{
  font-family:'Alfa Slab One';
  color:var(--gold);
  font-size:1.15rem;
  border-bottom:2px dashed rgba(232,163,61,0.35);
  padding-bottom:10px;
  margin-bottom:14px;
}
.menu-cat-photo{
  display:flex;
  gap:12px;
  height:140px;
  margin-bottom:14px;
}
.menu-cat-photo-img{
  flex:1;
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:8px;
  border:1px solid rgba(232,163,61,0.4);
}
.menu-cat-photo-text{
  flex:1;
  border-radius:8px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:10px;
  font-size:1.1rem;
  font-weight:600;
  color:var(--cream);
  background:var(--navy-dark);
  border:1px solid rgba(232,163,61,0.25);
}
.menu-cat h3 .desc{
  font-family:'Karla',sans-serif;
  font-size:0.7rem;
  font-weight:400;
  font-style:italic;
  color:#B7C6C6;
  text-transform:none;
  margin-left:8px;
}
.menu-item{
  display:flex;
  justify-content:space-between;
  gap:14px;
  padding:11px 0;
  border-bottom:1px solid rgba(251,242,222,0.09);
}
.menu-item:last-child{border-bottom:0;}
.menu-item .name{font-weight:700;font-size:0.98rem;color:var(--cream);}
.menu-item .desc{display:block;font-weight:400;font-size:0.84rem;color:#B7C6C6;margin-top:3px;font-style:italic;}
.menu-item .price{font-family:'Alfa Slab One';color:var(--gold);white-space:nowrap;font-size:0.95rem;}
.menu-note{
  text-align:center;
  margin-top:40px;
  font-size:0.9rem;
  color:#B7C6C6;
  font-style:italic;
}

/* Hours/Location */
.visit{background:var(--cream);}
.visit-grid{
  display:grid;
  grid-template-columns:0.9fr 1.1fr;
  gap:48px;
  align-items:stretch;
}
.card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px;
  padding:32px;
}
.card h3{
  font-family:'Alfa Slab One';
  color:var(--navy);
  font-size:1.2rem;
  margin-top:0;
  margin-bottom:20px;
}
.hours-row{
  display:flex;
  justify-content:space-between;
  padding:9px 0;
  border-bottom:1px dashed var(--line);
  font-size:0.95rem;
}
.hours-row:last-child{border-bottom:0;}
.hours-row .day{font-weight:700;color:var(--navy);}
.hours-row .time{color:var(--ink-soft);}
.hours-row.closed .time{color:var(--red);font-weight:700;}
.contact-block{margin-top:24px;padding-top:20px;border-top:1px solid var(--line);}
.contact-block p{margin:6px 0;font-size:0.95rem;color:var(--ink-soft);}
.contact-block b{color:var(--navy);}
.map-frame{
  border-radius:8px;
  overflow:hidden;
  border:1px solid var(--line);
  height:100%;
  min-height:340px;
}
.map-frame iframe{width:100%;height:100%;border:0;display:block;}

.directions-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px;}

/* Reviews page */
.platform-badges{
  display:flex;
  gap:16px;
  flex-wrap:wrap;
  justify-content:center;
  margin-bottom:56px;
}
.badge-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px;
  padding:20px 26px;
  display:flex;
  align-items:center;
  gap:14px;
  min-width:230px;
  transition:transform .15s ease, box-shadow .15s ease;
}
.badge-card:hover{transform:translateY(-3px);box-shadow:0 12px 24px rgba(21,57,68,0.12);}
.badge-icon{width:38px;height:38px;flex:none;border-radius:8px;display:flex;align-items:center;justify-content:center;font-family:'Alfa Slab One';color:#fff;font-size:1.1rem;}
.badge-icon.yelp{background:#D32323;}
.badge-icon.google{background:#4285F4;}
.badge-text{font-size:0.92rem;}
.badge-text .rate{font-weight:700;color:var(--navy);display:block;}
.badge-text .sub{color:var(--ink-soft);font-size:0.82rem;}

.review-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.review-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px;
  padding:26px;
}
.review-stars{color:var(--gold);letter-spacing:2px;font-size:1rem;margin-bottom:10px;}
.review-quote{font-style:italic;color:var(--ink);line-height:1.6;font-size:0.96rem;margin:0 0 16px;}
.review-author{font-weight:700;color:var(--navy);font-size:0.88rem;}
.review-source{font-size:0.78rem;color:var(--ink-soft);}
.placeholder-flag{
  text-align:center;
  max-width:640px;
  margin:36px auto 0;
  font-size:0.88rem;
  color:var(--ink-soft);
  font-style:italic;
  background:var(--paper);
  border:1px dashed var(--line);
  border-radius:8px;
  padding:14px 20px;
}

/* Footer */
footer{
  background:var(--navy-dark);
  color:#C7D6D6;
  padding:52px 0 28px;
}
.footer-grid{
  display:flex;
  justify-content:space-between;
  gap:32px;
  flex-wrap:wrap;
  padding-bottom:32px;
  border-bottom:1px solid rgba(251,242,222,0.1);
}
.footer-brand{font-family:'Alfa Slab One';color:var(--cream);font-size:1.2rem;display:flex;align-items:center;gap:10px;}
.footer-verse{
  max-width:420px;
  font-style:italic;
  font-size:0.95rem;
  line-height:1.6;
  color:#DCE7E7;
}
.footer-verse cite{
  display:block;
  margin-top:8px;
  font-style:normal;
  color:var(--gold);
  font-weight:700;
  font-size:0.82rem;
  letter-spacing:0.04em;
}
.footer-bottom{
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:10px;
  padding-top:22px;
  font-size:0.82rem;
  color:#8FA3A3;
}

@media (max-width:860px){
  .nav-links, .nav-cta{display:none;}
  .menu-toggle{display:block;}
  .hero-inner{grid-template-columns:1fr;}
  .hero-art{order:-1;}
  .about-grid, .visit-grid{grid-template-columns:1fr;}
  .menu-grid{grid-template-columns:1fr;}
  .review-grid{grid-template-columns:1fr;}
  .footer-grid{flex-direction:column;}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .btn:hover{transform:none;}
}
