:root{
  --red:#a8201a; --red-dk:#7d1712; --cream:#f7efdc; --paper:#efe3c6; --ink:#2b1d14;
  --brown:#5a3b24; --green:#2f5233; --gold:#c99a3b;
  --serif:'Playfair Display', Georgia, 'Times New Roman', serif;
  --western:'Rye', 'Playfair Display', Georgia, serif;
  --body:'Lora', Georgia, serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:64px}
body{margin:0;font-family:var(--body);color:var(--ink);background:var(--cream);line-height:1.6;font-size:17px}
img{max-width:100%;display:block}
a{color:inherit}
.wrap{width:100%;max-width:1120px;margin:0 auto;padding:0 20px}
.narrow{max-width:760px}
.center{text-align:center}
h1,h2,h3{font-family:var(--serif);line-height:1.15;margin:0 0 .5em;color:var(--brown)}
h1{font-size:2rem}
h2{font-family:var(--western);font-weight:400;font-size:2rem;color:var(--red)}
h3{font-size:1.3rem}
.eyebrow{font-family:var(--serif);text-transform:uppercase;letter-spacing:.18em;font-size:.8rem;color:var(--red);margin:0 0 .4em;font-weight:700}
.eyebrow.light{color:var(--gold)}
.fine{font-size:.88rem;opacity:.8}
.big{font-size:1.12rem}
section{padding:56px 0}
.section-paper{background:var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.8' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .23 0 0 0 0 .14 0 0 0 .06 0'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E")}
.sec-head{text-align:center;margin-bottom:28px}
.sec-head h2{position:relative;display:inline-block;padding:0 0 12px}
.sec-head h2::after{content:"";position:absolute;left:15%;right:15%;bottom:0;height:3px;background:repeating-linear-gradient(90deg,var(--red) 0 14px,transparent 14px 20px)}

/* buttons */
.btn{display:inline-block;text-decoration:none;font-family:var(--serif);font-weight:700;padding:12px 20px;border-radius:4px;border:2px solid transparent;text-align:center;transition:transform .1s, background .2s}
.btn:active{transform:translateY(1px)}
.btn-red{background:var(--red);color:#fff;border-color:var(--red-dk);box-shadow:0 3px 0 var(--red-dk)}
.btn-red:hover{background:var(--red-dk)}
.btn-cream{background:var(--cream);color:var(--red);border-color:var(--cream)}
.btn-outline{border-color:var(--cream);color:var(--cream)}
.btn-outline:hover{background:rgba(255,255,255,.1)}
.btn-outline-dark{border-color:var(--brown);color:var(--brown)}

/* top bar */
.topbar{position:sticky;top:0;z-index:20;background:var(--red);color:#fff;border-bottom:4px solid var(--gold);box-shadow:0 2px 8px rgba(0,0,0,.2)}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;height:58px;gap:12px}
.brand{font-family:var(--western);text-decoration:none;font-size:1.3rem;white-space:nowrap}
.brand span{display:none;font-family:var(--serif);font-size:.95rem;margin-left:6px;opacity:.9}
.nav{display:none;gap:22px}
.nav a{text-decoration:none;font-family:var(--serif);font-weight:700}
.nav a:hover{text-decoration:underline}
.btn-call-sm{background:var(--cream);color:var(--red);padding:7px 14px}

/* hero */
.hero{padding:0;background:#3a2516}
.hero-img img{width:100%;height:auto;max-height:520px;object-fit:cover;margin:0 auto}
.hero-bar{background:var(--brown);color:var(--cream);border-top:3px solid var(--gold);padding:18px 0}
.hero-bar-inner{display:flex;flex-direction:column;gap:14px;align-items:center}
.hero-tag{margin:0;font-family:var(--western);font-size:1.25rem;text-align:center}
.hero-ctas{display:grid;grid-template-columns:1fr;gap:10px;width:100%}

/* about */
.about h1{font-size:1.9rem}
.rule{display:flex;align-items:center;gap:12px;color:var(--red);margin:6px auto 18px;max-width:300px}
.rule::before,.rule::after{content:"";flex:1;height:2px;background:var(--red)}
.lead{font-style:italic;font-size:1.18rem;color:var(--brown)}
.badges{list-style:none;padding:0;margin:22px 0;display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.badges li{border:2px solid var(--red);color:var(--red);padding:5px 14px;border-radius:999px;font-family:var(--serif);font-weight:700;font-size:.9rem;background:#fffaf0}
.recommend{font-size:1.05rem}
.recommend strong{font-family:var(--serif);font-size:1.6rem;color:var(--red)}
.recommend span{opacity:.7}

/* cards & photos */
.grid-2{display:grid;gap:24px;align-items:center}
.card{background:#fffaf0;border:1px solid #d9c49a;border-radius:6px;padding:24px;box-shadow:0 4px 0 #d9c49a}
.card h3{color:var(--red)}
.card h3:not(:first-child){margin-top:1em}
.card p{margin:0 0 .6em}
.photo{margin:0;border:8px solid #fff;box-shadow:0 6px 18px rgba(60,35,15,.25);background:#fff}
.photo img{width:100%;height:100%;object-fit:cover}
.deli .grid-2 .photo img{max-height:440px}
.photo-stack{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.photo-stack img{aspect-ratio:3/4}
.photo-stack .photo:first-child{transform:rotate(-1.5deg)}
.photo-stack .photo:last-child{transform:rotate(1.5deg)}

/* pizza */
.pizza{display:grid;gap:24px;margin-top:36px;align-items:center}
.price-board{background:var(--ink);color:var(--cream);border:6px solid var(--brown);outline:2px solid var(--gold);outline-offset:-12px;border-radius:6px;padding:28px 26px;text-align:center}
.price-board h3{color:var(--gold);font-family:var(--western);font-weight:400;font-size:1.6rem}
.price-board dl{margin:0 0 18px}
.price-board dl div{display:flex;align-items:baseline;gap:8px;padding:8px 0;border-bottom:1px dashed rgba(247,239,220,.3)}
.price-board dt{font-family:var(--serif);font-weight:700;font-size:1.1rem}
.price-board dt small{font-weight:400;opacity:.75;font-family:var(--body)}
.price-board dd{margin:0 0 0 auto;font-family:var(--serif);font-weight:900;font-size:1.5rem;color:#fff}
.price-board dl div::after{content:none}

/* lists */
.checks{list-style:none;padding:0;margin:14px 0}
.checks li{padding:6px 0 6px 30px;position:relative}
.checks li::before{content:"\2605";position:absolute;left:4px;color:var(--red)}
.checks.light li::before{color:var(--gold)}
.ebt{display:flex;gap:14px;align-items:center;margin-top:16px;padding:14px;border:2px dashed var(--green);border-radius:6px;background:#f1f5ec}
.ebt p{margin:0}
.ebt-mark{flex:none;background:var(--green);color:#fff;font-family:var(--serif);font-weight:900;padding:8px 10px;border-radius:4px;letter-spacing:.05em}

/* fishing */
.fishing{background:linear-gradient(rgba(25,40,30,.92),rgba(25,40,30,.92)),var(--green);color:var(--cream)}
.fishing h2{color:var(--cream)}
.fishing .photo.framed{border-color:var(--cream);max-width:420px;margin:0 auto;transform:rotate(-1deg)}
.fishing .photo img{aspect-ratio:3/4}

/* visit */
.visit-card h3{margin-bottom:.2em}
.phone{font-family:var(--serif);font-weight:700;font-size:1.4rem;color:var(--red);text-decoration:none}
.link{color:var(--red);font-weight:600}
.hours-note{font-weight:600}
.visit-ctas{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.map{border:8px solid #fff;box-shadow:0 6px 18px rgba(60,35,15,.25);min-height:320px;height:100%;background:#ddd}
.map iframe{width:100%;height:100%;min-height:320px;border:0;display:block}

/* footer */
.footer{background:var(--ink);color:var(--cream);padding:40px 0 90px;border-top:6px solid var(--red)}
.footer a{color:var(--cream)}
.footer p{margin:.4em 0}
.footer-brand{font-family:var(--western);font-size:1.6rem;color:var(--gold)}
.footer-since{font-family:var(--serif);letter-spacing:.2em;text-transform:uppercase;font-size:.85rem}
.footer-links{display:flex;gap:20px;justify-content:center;flex-wrap:wrap;margin:14px 0!important}
.footer-links a{font-family:var(--serif);font-weight:700}

/* mobile sticky call */
.sticky-call{position:fixed;left:16px;right:16px;bottom:14px;z-index:30;background:var(--red);color:#fff;text-align:center;text-decoration:none;font-family:var(--serif);font-weight:700;font-size:1.1rem;padding:14px;border-radius:6px;box-shadow:0 4px 14px rgba(0,0,0,.35);border:2px solid var(--gold)}

@media (min-width:600px){
  .hero-ctas{grid-template-columns:repeat(3,auto);width:auto}
  .brand span{display:inline}
}
@media (min-width:860px){
  body{font-size:18px}
  section{padding:84px 0}
  h1,.about h1{font-size:2.6rem}
  h2{font-size:2.6rem}
  .nav{display:flex}
  .grid-2{grid-template-columns:1fr 1fr;gap:48px}
  .grid-2.reverse > :first-child{order:2}
  .pizza{grid-template-columns:1.3fr 1fr}
  .hero-bar-inner{flex-direction:row;justify-content:space-between}
  .hero-tag{font-size:1.5rem}
  .sticky-call{display:none}
  .footer{padding-bottom:40px}
  .map,.map iframe{min-height:440px}
}
.hours{border-collapse:collapse;width:100%;margin:4px 0 6px;font-size:1rem}
.hours th,.hours td{padding:7px 0;border-bottom:1px dashed #d9c49a;text-align:left}
.hours th{font-family:var(--serif);font-weight:700}
.hours td{text-align:right}
.footer-hours{font-family:var(--serif);font-weight:700;color:var(--gold)}

/* menu */
.menu{background:var(--cream)}
.menu-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:0 0 28px}
.menu-board{display:grid;gap:20px;background:var(--red);padding:12px;border-radius:6px;box-shadow:0 6px 18px rgba(60,35,15,.25)}
.menu-col{background:#fffaf0;border:2px solid var(--green);padding:18px 18px 8px}
.menu-block{margin-bottom:22px}
.menu-block h3{font-family:var(--western);font-weight:400;color:var(--red);font-size:1.45rem;border-bottom:2px solid var(--green);padding-bottom:4px;margin:0 0 10px}
.menu-block h3 small{font-family:var(--serif);font-weight:700;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--green);margin-left:6px}
.menu-list{list-style:none;margin:0;padding:0}
.menu-list li{font-variant-numeric:lining-nums;display:flex;align-items:baseline;gap:6px;padding:3px 0;font-size:1rem}
.menu-list li::after{content:"";order:1;flex:1;border-bottom:2px dotted #b49a74;transform:translateY(-4px);min-width:16px}
.mi-n{order:0}
.mi-n i{font-size:.82em;color:var(--brown)}
.mi-p{order:2;font-variant-numeric:lining-nums tabular-nums;font-family:var(--serif);font-weight:700;color:var(--red);white-space:nowrap}
.menu-pre{font-size:.9rem;line-height:1.45;color:var(--ink)}
.menu-pre p{margin:0 0 .5em}
.menu-note{font-size:.85rem;font-style:italic;color:var(--brown);margin:6px 0 0;line-height:1.4}
.menu-fine{margin-top:16px}
@media (min-width:860px){
  .menu-board{grid-template-columns:repeat(3,1fr);gap:12px}
  .menu-list li{font-size:.95rem}
}
@media (max-width:599px){
  .menu-actions .btn{width:100%}
}

/* Menu image (Josh's printed menu design) */
.menu-image{margin:1.5rem auto 0;max-width:1200px}
.menu-image a{display:block;border-radius:8px;overflow:hidden;box-shadow:0 6px 24px rgba(0,0,0,.18);cursor:zoom-in}
.menu-image img{display:block;width:100%;height:auto}
.menu-image figcaption{margin-top:.6rem}
