:root{
  --cream:#F2E9D8;
  --teal:#1F6F6B;
  --teal-dark:#154D49;
  --cherry:#C23B3B;
  --mustard:#E0A72E;
  --ink:#2B2420;
  --chrome:#C9C7C2;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--cream);
  color:var(--ink);
  font-family:'Barlow Condensed', sans-serif;
  font-size:19px;
  line-height:1.5;
  overflow-x:hidden;
}
a{color:inherit;}

/* ===== checkerboard texture strip ===== */
.checker{
  height:14px;
  background-image: linear-gradient(45deg, var(--ink) 25%, transparent 25%, transparent 75%, var(--ink) 75%),
                     linear-gradient(45deg, var(--ink) 25%, var(--cream) 25%, var(--cream) 75%, var(--ink) 75%);
  background-size:14px 14px;
  background-position:0 0, 7px 7px;
  background-color:var(--cream);
}
.checker.dark{
  background-image: linear-gradient(45deg, var(--cream) 25%, transparent 25%, transparent 75%, var(--cream) 75%),
                     linear-gradient(45deg, var(--cream) 25%, var(--ink) 25%, var(--ink) 75%, var(--cream) 75%);
  background-color:var(--ink);
}

/* ===== top bar ===== */
.topbar{
  background:var(--ink);
  color:var(--cream);
  font-family:'Space Mono', monospace;
  font-size:13px;
  letter-spacing:.04em;
  padding:8px 20px;
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:6px;
}
.topbar .status{color:var(--mustard); font-weight:700;}

/* ===== nav ===== */
.nav{
  position:sticky;
  top:0;
  z-index:50;
  background:var(--cream);
  border-bottom:3px solid var(--ink);
}
.nav-inner{
  max-width:1040px;
  margin:0 auto;
  padding:0 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:60px;
  flex-wrap:wrap;
}
.nav-brand{
  font-family:'Bungee', sans-serif;
  font-size:1.15rem;
  color:var(--teal-dark);
  text-decoration:none;
  letter-spacing:.01em;
  padding:14px 0;
}
.nav-brand span{color:var(--cherry);}
/* Checkbox hack: kept off-screen rather than display:none so it stays keyboard-focusable. */
.nav-toggle{
  position:absolute;
  opacity:0;
  width:1px;
  height:1px;
  margin:0;
}
.nav-toggle:focus-visible + .nav-burger{outline:3px solid var(--mustard); outline-offset:2px;}
.nav-burger{
  display:none;
  cursor:pointer;
  padding:10px;
  margin:-10px;
  color:var(--ink);
}
.nav-burger svg{display:block;}
.nav-links{
  display:flex;
  align-items:center;
  gap:26px;
  list-style:none;
}
.nav-links a{
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.05em;
  font-size:.95rem;
  text-decoration:none;
  padding:6px 0;
  border-bottom:3px solid transparent;
  display:inline-block;
}
.nav-links a:hover{border-bottom-color:var(--chrome);}
.nav-links a[aria-current="page"]{
  border-bottom-color:var(--mustard);
  color:var(--teal-dark);
}
.nav-links .nav-call{
  background:var(--cherry);
  color:var(--cream);
  border-radius:3px;
  padding:8px 16px;
  border-bottom:none;
  font-family:'Space Mono', monospace;
  font-size:.82rem;
}
.nav-links .nav-call:hover{border-bottom-color:transparent; background:#a83131;}

@media(max-width:699px){
  .nav-burger{display:block;}
  .nav-inner{min-height:56px;}
  .nav-links{
    display:none;
    width:100%;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding-bottom:10px;
  }
  .nav-toggle:checked ~ .nav-links{display:flex;}
  .nav-links a{
    padding:12px 0;
    border-bottom:1px dotted var(--chrome);
  }
  .nav-links a[aria-current="page"]{border-bottom-color:var(--mustard);}
  .nav-links .nav-call{
    text-align:center;
    margin-top:10px;
    border-bottom:none;
  }
}

/* ===== hero ===== */
header.hero{
  background:var(--teal);
  color:var(--cream);
  padding:70px 24px 90px;
  position:relative;
  overflow:hidden;
  text-align:center;
}
header.hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 15% 20%, rgba(255,255,255,.06) 0, transparent 40%),
    radial-gradient(circle at 85% 80%, rgba(255,255,255,.05) 0, transparent 45%);
}
header.hero.compact{padding:52px 24px 58px;}
.sign{
  display:inline-block;
  position:relative;
  z-index:2;
  font-family:'Bungee', sans-serif;
  font-size:clamp(2.6rem, 9vw, 5.2rem);
  color:var(--mustard);
  text-shadow:
    0 0 4px rgba(224,167,46,.6),
    0 0 18px rgba(224,167,46,.35),
    4px 4px 0 var(--teal-dark);
  letter-spacing:.02em;
  line-height:1;
}
.sign small{
  display:block;
  font-family:'Kalam', cursive;
  font-size:1.3rem;
  color:var(--cream);
  text-shadow:none;
  margin-top:10px;
  font-weight:700;
}
.hero.compact .sign{font-size:clamp(2rem, 6vw, 3.2rem);}
.hero-tag{
  position:relative;
  z-index:2;
  margin-top:22px;
  font-size:1.15rem;
  max-width:520px;
  margin-left:auto;
  margin-right:auto;
  color:var(--cream);
  opacity:.92;
}
.hero-cta{
  position:relative;
  z-index:2;
  margin-top:34px;
  display:flex;
  gap:14px;
  justify-content:center;
  flex-wrap:wrap;
}
.btn{
  font-family:'Barlow Condensed', sans-serif;
  font-weight:700;
  font-size:1.05rem;
  letter-spacing:.03em;
  text-transform:uppercase;
  text-decoration:none;
  padding:14px 28px;
  border-radius:3px;
  display:inline-block;
  border:3px solid transparent;
  transition:transform .15s ease;
  cursor:pointer;
}
.btn:active{transform:scale(.96);}
.btn-primary{background:var(--cherry); color:var(--cream); border-color:var(--cherry);}
.btn-secondary{background:transparent; color:var(--cream); border-color:var(--cream);}
.btn-ink{background:var(--ink); color:var(--cream); border-color:var(--ink);}

/* ===== open sign badge ===== */
.open-badge{
  position:relative;
  z-index:2;
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:26px;
  font-family:'Space Mono', monospace;
  font-size:.85rem;
  background:rgba(0,0,0,.2);
  padding:8px 16px;
  border-radius:20px;
}
.dot{width:9px; height:9px; border-radius:50%; background:#5FCF7C; box-shadow:0 0 8px #5FCF7C;}

section{padding:64px 24px; max-width:960px; margin:0 auto;}
section.tight{padding-top:34px;}
.eyebrow{
  font-family:'Kalam', cursive;
  font-size:1.1rem;
  color:var(--cherry);
  font-weight:700;
  margin-bottom:4px;
  display:block;
}
h2{
  font-family:'Bungee', sans-serif;
  font-size:clamp(1.6rem, 5vw, 2.4rem);
  color:var(--teal-dark);
  margin-bottom:26px;
}
h3{font-family:'Bungee', sans-serif; font-size:1.15rem;}
.lede{font-size:1.1rem; max-width:640px; margin-bottom:26px;}

/* ===== specials chalkboard ===== */
.chalkboard{
  background:var(--ink);
  color:var(--cream);
  border-radius:8px;
  padding:38px 32px;
  box-shadow:0 0 0 10px #3a2f27, 0 14px 30px rgba(0,0,0,.25);
}
.chalkboard h2{color:var(--mustard);}
.chalkboard + .chalkboard{margin-top:44px;}
.board-head{
  font-family:'Bungee', sans-serif;
  color:var(--mustard);
  font-size:1.5rem;
  margin-bottom:4px;
}
.board-note{
  font-family:'Kalam', cursive;
  font-size:1rem;
  opacity:.7;
  margin-bottom:18px;
  display:block;
}
.menu-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:0;
}
.menu-item{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  padding:12px 0;
  border-bottom:1px dashed rgba(242,233,216,.25);
  gap:16px;
}
.menu-item:last-child{border-bottom:none;}
.menu-item .name{
  font-family:'Kalam', cursive;
  font-size:1.25rem;
  font-weight:700;
}
.menu-item .desc{
  font-size:.9rem;
  opacity:.7;
  display:block;
  font-family:'Barlow Condensed', sans-serif;
}
.menu-item .price{
  font-family:'Space Mono', monospace;
  color:var(--mustard);
  font-size:1.1rem;
  white-space:nowrap;
}

/* ===== about / story ===== */
.about-wrap{
  display:grid;
  grid-template-columns:1fr;
  gap:30px;
}
@media(min-width:700px){
  .about-wrap{grid-template-columns:1.1fr .9fr;}
}
.about-copy p{margin-bottom:16px; font-size:1.05rem;}
.fact-card{
  background:var(--teal);
  color:var(--cream);
  border-radius:8px;
  padding:26px;
  align-self:start;
}
.fact-card .num{
  font-family:'Bungee', sans-serif;
  font-size:2.6rem;
  color:var(--mustard);
  line-height:1;
}
.fact-card .label{
  font-family:'Space Mono', monospace;
  font-size:.85rem;
  text-transform:uppercase;
  letter-spacing:.06em;
  opacity:.85;
  margin-top:4px;
}
.fact-divider{height:1px; background:rgba(242,233,216,.25); margin:18px 0;}

/* ===== value cards (about) ===== */
.value-row{
  display:grid;
  grid-template-columns:1fr;
  gap:20px;
}
@media(min-width:700px){
  .value-row{grid-template-columns:repeat(3, 1fr);}
}
.value-card{
  background:var(--teal);
  color:var(--cream);
  border-radius:8px;
  padding:26px;
}
.value-card h3{color:var(--mustard); margin-bottom:10px;}
.value-card p{font-size:1rem; opacity:.9;}

/* ===== staff ===== */
.staff-row{
  display:grid;
  grid-template-columns:1fr;
  gap:20px;
}
@media(min-width:700px){
  .staff-row{grid-template-columns:repeat(3, 1fr);}
}
.staff-card{
  background:#fff;
  border:2px solid var(--ink);
  border-radius:8px;
  padding:24px;
  text-align:center;
}
.avatar{
  width:64px;
  height:64px;
  border-radius:50%;
  background:var(--mustard);
  color:var(--ink);
  font-family:'Bungee', sans-serif;
  font-size:1.5rem;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto 14px;
}
.staff-card .who-name{font-family:'Bungee', sans-serif; font-size:1.05rem; color:var(--teal-dark);}
.staff-card .role{
  font-family:'Space Mono', monospace;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--cherry);
  margin:4px 0 10px;
}
.staff-card p{font-size:.98rem;}

/* ===== karaoke / event banner ===== */
.karaoke-banner{
  background:var(--cherry);
  color:var(--cream);
  text-align:center;
  padding:44px 24px;
  margin:0 auto;
}
.karaoke-banner h3{
  font-family:'Bungee', sans-serif;
  font-size:clamp(1.4rem, 5vw, 2rem);
  margin-bottom:10px;
}
.karaoke-banner p{font-family:'Kalam', cursive; font-size:1.15rem;}
.karaoke-banner .btn{margin-top:20px;}

/* ===== weekly event grid ===== */
.week-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:18px;
}
@media(min-width:700px){
  .week-grid{grid-template-columns:repeat(2, 1fr);}
}
.week-card{
  background:#fff;
  border:2px solid var(--ink);
  border-radius:8px;
  padding:22px;
  display:flex;
  gap:18px;
  align-items:flex-start;
}
.week-card .day{
  font-family:'Bungee', sans-serif;
  font-size:.85rem;
  background:var(--teal);
  color:var(--cream);
  border-radius:4px;
  padding:8px 10px;
  text-align:center;
  white-space:nowrap;
  line-height:1.2;
}
.week-card h3{color:var(--teal-dark); margin-bottom:4px;}
.week-card .time{
  font-family:'Space Mono', monospace;
  font-size:.8rem;
  color:var(--cherry);
  display:block;
  margin-bottom:8px;
}
.week-card p{font-size:.98rem;}

/* ===== dated calendar list ===== */
.calendar{
  border:3px solid var(--ink);
  border-radius:10px;
  overflow:hidden;
}
.cal-row{
  display:flex;
  gap:20px;
  align-items:center;
  padding:18px 22px;
  border-bottom:1px dotted var(--chrome);
  background:var(--cream);
  flex-wrap:wrap;
}
.cal-row:last-child{border-bottom:none;}
.cal-date{
  font-family:'Space Mono', monospace;
  font-weight:700;
  font-size:.85rem;
  color:var(--cream);
  background:var(--ink);
  border-radius:4px;
  padding:8px 12px;
  white-space:nowrap;
}
.cal-body{flex:1 1 220px;}
.cal-body .title{font-family:'Kalam', cursive; font-size:1.2rem; font-weight:700;}
.cal-body .meta{font-size:.92rem; opacity:.75;}
.cal-tag{
  font-family:'Space Mono', monospace;
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.06em;
  background:var(--mustard);
  color:var(--ink);
  border-radius:20px;
  padding:5px 12px;
  white-space:nowrap;
}

/* ===== testimonials ===== */
.testimonial-row{
  display:grid;
  grid-template-columns:1fr;
  gap:20px;
}
@media(min-width:700px){
  .testimonial-row{grid-template-columns:repeat(3, 1fr);}
}
.testimonial{
  background:#fff;
  border:2px solid var(--ink);
  border-radius:8px;
  padding:22px;
  position:relative;
}
.testimonial::before{
  content:"”";
  font-family:'Bungee', sans-serif;
  font-size:2.6rem;
  color:var(--mustard);
  position:absolute;
  top:-6px;
  left:14px;
}
.testimonial p{margin-top:14px; font-size:1rem;}
.testimonial .who{
  margin-top:14px;
  font-family:'Space Mono', monospace;
  font-size:.8rem;
  color:var(--teal-dark);
  font-weight:700;
}

/* ===== hours + location ===== */
.placemat{
  background:var(--cream);
  border:3px solid var(--ink);
  border-radius:10px;
  padding:32px;
  display:grid;
  grid-template-columns:1fr;
  gap:28px;
}
@media(min-width:700px){
  .placemat{grid-template-columns:1fr 1fr;}
}
.hours-table{width:100%; border-collapse:collapse; font-family:'Space Mono', monospace; font-size:.95rem;}
.hours-table td{padding:7px 0; border-bottom:1px dotted var(--chrome);}
.hours-table td:last-child{text-align:right; font-weight:700;}
.hours-table tr.today td{color:var(--cherry); font-weight:700;}
.loc-block .addr{font-size:1.15rem; font-weight:600; margin-bottom:6px;}
.loc-block a.phone{
  font-family:'Bungee', sans-serif;
  font-size:1.5rem;
  color:var(--cherry);
  text-decoration:none;
  display:inline-block;
  margin:14px 0;
}

/* ===== stylized map ===== */
.map-frame{
  border:3px solid var(--ink);
  border-radius:10px;
  overflow:hidden;
  background:#E7DCC6;
}
.map-frame svg{display:block; width:100%; height:auto;}
.map-caption{
  font-family:'Space Mono', monospace;
  font-size:.78rem;
  padding:10px 14px;
  background:var(--ink);
  color:var(--cream);
  text-align:center;
}

/* ===== info columns (visit) ===== */
.info-row{
  display:grid;
  grid-template-columns:1fr;
  gap:20px;
}
@media(min-width:700px){
  .info-row{grid-template-columns:repeat(3, 1fr);}
}
.info-card{
  background:#fff;
  border:2px solid var(--ink);
  border-radius:8px;
  padding:22px;
}
.info-card h3{color:var(--teal-dark); margin-bottom:8px;}
.info-card p{font-size:.98rem;}

/* ===== form ===== */
.form-card{
  border:3px solid var(--ink);
  border-radius:10px;
  padding:32px;
  background:#fff;
}
.field{margin-bottom:18px;}
.field label{
  display:block;
  font-family:'Space Mono', monospace;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.06em;
  margin-bottom:6px;
}
.field input, .field select, .field textarea{
  width:100%;
  font-family:'Barlow Condensed', sans-serif;
  font-size:1rem;
  padding:11px 13px;
  border:2px solid var(--ink);
  border-radius:4px;
  background:var(--cream);
  color:var(--ink);
}
.field textarea{min-height:120px; resize:vertical;}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:3px solid var(--mustard);
  outline-offset:1px;
}
.field-row{display:grid; grid-template-columns:1fr; gap:0 18px;}
@media(min-width:700px){
  .field-row{grid-template-columns:1fr 1fr;}
}
.form-note{
  font-size:.88rem;
  opacity:.7;
  margin-top:14px;
}
.form-status{
  margin-top:18px;
  padding:14px 16px;
  border-radius:4px;
  background:var(--teal);
  color:var(--cream);
  font-family:'Space Mono', monospace;
  font-size:.85rem;
}
.form-status[hidden]{display:none;}

/* ===== demo notice ===== */
.demo-note{
  background:var(--mustard);
  color:var(--ink);
  text-align:center;
  font-family:'Space Mono', monospace;
  font-size:.76rem;
  letter-spacing:.03em;
  padding:7px 20px;
}

footer{
  background:var(--ink);
  color:var(--cream);
  text-align:center;
  padding:36px 24px;
  font-family:'Space Mono', monospace;
  font-size:.85rem;
}
footer .sign-off{
  font-family:'Kalam', cursive;
  font-size:1.1rem;
  color:var(--mustard);
  margin-bottom:10px;
}
.footer-links{
  list-style:none;
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:8px 22px;
  margin:16px 0;
}
.footer-links a{
  text-decoration:none;
  text-transform:uppercase;
  letter-spacing:.05em;
  font-size:.78rem;
  opacity:.85;
}
.footer-links a:hover{color:var(--mustard); opacity:1;}
.footer-disclaimer{
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid rgba(242,233,216,.2);
  font-size:.74rem;
  opacity:.6;
  line-height:1.6;
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .btn{transition:none;}
}
