@font-face {
  font-family: 'Burrito';
  src: url('assets/fonts/burrito.woff2') format('woff2'),
       url('assets/fonts/burrito.ttf') format('truetype');
  font-display: swap;
}

:root {
  --bg: #f6efe6;
  --panel: #fffaf5;
  --hero: #f3d3ad;
  --text: #1a1a1a;
  --muted: #534b45;
  --accent: #8e3418;
  --line: rgba(0,0,0,0.09);
  --shadow: 0 12px 30px rgba(0,0,0,0.08);
  --shadow-strong: 0 18px 40px rgba(0,0,0,0.16);
  --radius: 22px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Arial, Helvetica, sans-serif;
  background: var(--bg);
  color: var(--text);
  line-height: 1.55;
}
img { max-width: 100%; display: block; }
a { color: inherit; }

.shell {
  width: min(1180px, calc(100% - 36px));
  margin: 0 auto;
}
.narrow-shell {
  width: min(980px, 100%);
  margin: 0 auto;
}

.brand-name-text {
  font-family: 'Burrito', Arial, Helvetica, sans-serif;
  letter-spacing: 0.02em;
}

.site-header {
  background: var(--hero);
  padding: 18px 0 8px;
}
.header-shell {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}
.brand-link {
  text-decoration: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}
.site-logo {
  width: 120px;
  height: auto;
}
.brand-title {
  font-size: clamp(1.6rem, 3.4vw, 2.3rem);
  text-align: center;
}
.top-nav {
  display: flex;
  gap: 22px;
  flex-wrap: wrap;
  justify-content: center;
  font-size: 0.98rem;
  font-weight: 700;
}
.top-nav a {
  text-decoration: none;
}

.hero-band {
  background: var(--hero);
  padding: 22px 0 34px;
}
.hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.95fr);
  gap: 38px;
  align-items: center;
}
.eyebrow {
  margin: 0 0 10px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.82rem;
  font-weight: 800;
  color: var(--accent);
}
.hero-title {
  margin: 0;
  font-size: clamp(2.35rem, 5.4vw, 4.65rem);
  line-height: 0.98;
  max-width: 12ch;
}
.hero-intro,
.hero-support {
  margin: 18px 0 0;
  font-size: clamp(1.06rem, 1.55vw, 1.22rem);
  max-width: 62ch;
}
.hero-support { color: var(--muted); }
.hero-media-wrap,
.visit-media-wrap {
  border-radius: 24px;
  overflow: hidden;
  box-shadow: var(--shadow-strong);
}
.hero-media {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.button-row,
.button-stack {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 22px;
}
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 11px 18px;
  border-radius: 999px;
  border: 2px solid var(--text);
  background: #fff;
  color: var(--text);
  text-decoration: none;
  font-size: 0.95rem;
  font-weight: 800;
}
.button-primary {
  background: var(--text);
  color: #fff;
}

.section {
  padding: 48px 0;
}
.section h2 {
  margin: 0 0 16px;
  font-size: clamp(2rem, 3.2vw, 3rem);
  line-height: 1.06;
  text-align: center;
}
.section-intro,
.centered-copy,
.story-copy p {
  max-width: 880px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
  font-size: 1.08rem;
}

.intro-shell {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.menu-cta-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 24px 28px;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 24px;
  box-shadow: var(--shadow);
}
.menu-cta-banner h3 {
  margin: 0 0 6px;
  font-size: 1.7rem;
  text-align: left;
}
.menu-cta-banner p {
  margin: 0;
  font-size: 1.02rem;
  color: var(--muted);
}
.feature-card-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}
.feature-card {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 20px 18px;
  box-shadow: var(--shadow);
  text-align: center;
}
.feature-card h3 {
  margin: 0 0 10px;
  font-size: 1.42rem;
}
.feature-card p {
  margin: 0;
  font-size: 1rem;
}

.section-divider {
  display: flex;
  justify-content: center;
  padding: 4px 0;
}
.section-divider img {
  width: min(210px, 42vw);
}

.bullet-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px 44px;
  margin-top: 8px;
}
.bullet-columns ul,
.highlight-card ul,
.printed-menu-nav,
.printed-menu-items,
.menu-gallery,
.top-nav {
  margin: 0;
  padding: 0;
}
.bullet-columns ul,
.highlight-card ul {
  padding-left: 22px;
}
.bullet-columns li,
.highlight-card li {
  margin-bottom: 10px;
  font-size: 1.04rem;
}
.section-lead {
  margin-top: 4px;
  margin-bottom: 18px;
}
.cheese-choice-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 18px;
}
.choice-card {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 96px;
  padding: 18px;
  text-align: center;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: var(--shadow);
  font-weight: 700;
}
.section-note {
  margin-top: 18px;
  color: var(--muted);
}

.gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.gallery-grid img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 18px;
  box-shadow: var(--shadow);
  background: #ece7e0;
}

.visit-grid,
.location-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 32px;
  align-items: center;
}
.visit-copy h2,
.location-copy h2 {
  text-align: left;
}
.visit-copy p,
.location-copy p {
  font-size: 1.08rem;
  margin: 0 0 16px;
}
.visit-media {
  width: 100%;
  aspect-ratio: 1.15 / 1;
  object-fit: cover;
}

.panel-shell {
  background: var(--panel);
  border-radius: 26px;
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
  padding: 34px 30px;
}
.story-copy {
  max-width: 920px;
  margin: 0 auto;
}
.compact-columns li { margin-bottom: 9px; }
.highlight-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 14px;
}
.highlight-card {
  background: #fbf5ee;
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 22px 22px 18px;
  box-shadow: var(--shadow);
}
.highlight-card h3 {
  margin: 0 0 12px;
  text-align: center;
  font-size: 1.22rem;
}

.location-copy {
  max-width: 360px;
}
.button-stack {
  flex-direction: column;
  align-items: flex-start;
}
.location-photo-stack {
  display: grid;
  gap: 18px;
}
.location-photo-stack img {
  width: 100%;
  border-radius: 18px;
  box-shadow: var(--shadow);
  object-fit: cover;
}
.location-photo-stack img:first-child { aspect-ratio: 4 / 3; }
.location-photo-stack img:last-child { aspect-ratio: 16 / 9; }

.site-footer {
  background: #111;
  color: #fff;
  padding: 26px 0 30px;
  text-align: center;
}
.site-footer p {
  margin: 6px 0;
}
.site-footer a {
  color: #fff;
  text-decoration: none;
}

/* Menu pages */
.printed-menu-page {
  width: min(1180px, calc(100% - 36px));
  margin: 0 auto;
  padding: 44px 0 56px;
}
.printed-menu-page > h1,
.menu-page-block h1,
.menu-page-block h2,
.printed-menu-subsection h2 {
  line-height: 1.08;
}
.menu-price-note,
.menu-intro {
  font-size: 1.05rem;
  color: var(--muted);
}
.printed-menu-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  list-style: none;
  margin: 18px 0 28px;
}
.printed-menu-nav a {
  text-decoration: none;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 10px 14px;
  background: var(--panel);
  font-weight: 700;
}
.menu-page-block {
  margin: 0 0 30px;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 24px;
  box-shadow: var(--shadow);
  padding: 24px;
}
.menu-page-head {
  margin-bottom: 18px;
}
.menu-gallery {
  display: grid;
  gap: 16px;
  margin-bottom: 24px;
}
.menu-gallery.cols-1 { grid-template-columns: 1fr; }
.menu-gallery.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.menu-gallery.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.menu-gallery-tile {
  margin: 0;
  background: #fff;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: var(--shadow);
}
.menu-gallery-tile img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.menu-gallery-tile figcaption {
  padding: 10px 12px 14px;
  text-align: center;
  font-weight: 700;
}
.menu-page-sections {
  display: grid;
  gap: 24px;
}
.printed-menu-subsection {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 20px;
  padding: 18px;
}
.printed-menu-subsection h2 {
  margin: 0 0 14px;
}
.printed-menu-items {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 24px;
}
.printed-menu-item {
  padding-top: 14px;
  border-top: 1px solid var(--line);
}
.printed-menu-item:first-child,
.printed-menu-item:nth-child(2) {
  border-top: 0;
  padding-top: 0;
}
.menu-item-line {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: baseline;
}
.menu-item-line h3 {
  margin: 0 0 6px;
  font-size: 1.08rem;
}
.menu-price {
  font-weight: 800;
  white-space: nowrap;
}
.printed-menu-item p {
  margin: 0;
  font-size: 0.96rem;
  color: var(--muted);
}

@media (max-width: 980px) {
  .hero-grid,
  .visit-grid,
  .location-grid {
    grid-template-columns: 1fr;
  }
  .hero-title {
    max-width: none;
  }
  .hero-media,
  .visit-media {
    aspect-ratio: 4 / 3;
  }
  .feature-card-grid,
  .cheese-choice-grid,
  .gallery-grid,
  .highlight-grid,
  .printed-menu-items {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .menu-cta-banner {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 700px) {
  .site-logo { width: 96px; }
  .top-nav { gap: 14px; font-size: 0.92rem; }
  .section { padding: 38px 0; }
  .hero-band { padding-top: 12px; }
  .hero-grid { gap: 24px; }
  .hero-title { font-size: clamp(2rem, 10vw, 3rem); }
  .hero-intro, .hero-support, .section-intro, .visit-copy p, .location-copy p, .centered-copy, .story-copy p {
    font-size: 1rem;
  }
  .feature-card-grid,
  .gallery-grid,
  .highlight-grid,
  .menu-gallery.cols-2,
  .menu-gallery.cols-3,
  .printed-menu-items {
    grid-template-columns: 1fr;
  }
  .bullet-columns,
  .cheese-choice-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .feature-card {
    padding: 18px 16px;
  }
  .feature-card h3 { font-size: 1.22rem; }
  .panel-shell { padding: 26px 18px; }
  .section-divider img { width: min(190px, 50vw); }
  .button-stack,
  .button-row {
    gap: 10px;
  }
  .button-stack .button,
  .button-row .button,
  .menu-cta-banner .button {
    width: 100%;
  }
  .location-copy { max-width: none; }
  .printed-menu-page {
    width: min(1180px, calc(100% - 24px));
    padding: 28px 0 40px;
  }
  .menu-page-block,
  .printed-menu-subsection { padding: 18px 14px; }
}

/* V42 targeted refinement */
.site-header{padding:22px 0 12px;}
.site-logo{width:190px;}
.brand-title{font-size:clamp(2rem,4vw,3rem);}
.top-nav{font-size:1.06rem;gap:26px;}

.hero-grid{grid-template-columns:minmax(0,1.22fr) minmax(300px,.78fr);gap:30px;}
.hero-title{max-width:16ch;font-size:clamp(2.65rem,5.25vw,4.8rem);}
.hero-media{aspect-ratio:4/3;}

.intro-shell{gap:26px;}
.feature-card-grid{margin-top:2px;}
.menu-cta-banner{margin-top:2px;}

.bullet-columns{gap:24px 30px;}
.bullet-columns li{font-size:1.18rem;line-height:1.5;margin-bottom:11px;}

.choice-card{min-height:118px;padding:24px;font-size:1.1rem;line-height:1.35;}

.visit-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:42px;}
.visit-copy{align-self:center;max-width:560px;}
.visit-copy h2{font-size:clamp(2.35rem,3.4vw,3.6rem);line-height:1.05;}
.visit-copy p{font-size:1.2rem;line-height:1.65;}
.visit-copy .button{font-size:1rem;padding:12px 20px;}

.story-copy p{font-size:1.2rem;line-height:1.7;margin-bottom:18px;}
.compact-columns li{font-size:1.13rem;line-height:1.5;}
.highlight-grid{align-items:start;}
.highlight-card{height:auto;min-height:0;padding:22px;}
.highlight-card h3{font-size:1.3rem;}
.highlight-card li{font-size:1.08rem;line-height:1.45;}

.location-grid{grid-template-columns:minmax(320px,.88fr) minmax(0,1.12fr);gap:44px;align-items:center;}
.location-copy{max-width:460px;align-self:center;}
.location-copy p{font-size:1.24rem;line-height:1.65;}
.location-copy .button{font-size:1rem;padding:12px 20px;}

.site-footer{padding:32px 0 36px;}
.site-footer p{font-size:1rem;}

.section-divider img{width:min(245px,48vw);}

@media (max-width:980px){
  .site-logo{width:150px;}
  .hero-grid{grid-template-columns:1fr;}
  .hero-title{max-width:none;}
  .visit-grid,.location-grid{grid-template-columns:1fr;}
  .visit-copy,.location-copy{max-width:760px;margin:0 auto;text-align:center;}
  .visit-copy h2{text-align:center;}
  .visit-copy .button-row,.location-copy .button-stack{justify-content:center;align-items:center;}
}

@media (max-width:700px){
  .site-logo{width:118px;}
  .brand-title{font-size:clamp(1.7rem,8vw,2.4rem);}
  .top-nav{font-size:.96rem;gap:16px;}
  .hero-title{font-size:clamp(2.2rem,10vw,3.2rem);}
  .bullet-columns li{font-size:1.02rem;}
  .choice-card{min-height:88px;font-size:1rem;}
  .story-copy p,.visit-copy p,.location-copy p{font-size:1.04rem;}
  .compact-columns li,.highlight-card li{font-size:1rem;}
  .section-divider img{width:min(215px,52vw);}
}

/* V44 full typography and balance pass */
.shell{width:min(1280px,calc(100% - 48px));}
.site-header{padding:28px 0 16px;}
.site-logo{width:250px;}
.brand-title{font-size:clamp(2.5rem,4.6vw,3.7rem);}
.top-nav{font-size:1.18rem;gap:32px;}

.hero-band{padding:28px 0 46px;}
.hero-grid{grid-template-columns:minmax(0,1.36fr) minmax(300px,.64fr);gap:42px;}
.hero-title{max-width:19ch;font-size:clamp(3.1rem,5.4vw,5.25rem);line-height:.98;}
.hero-intro,.hero-support{font-size:1.25rem;line-height:1.7;}
.hero-media{aspect-ratio:4/3;}
.button{font-size:1.08rem;min-height:50px;padding:13px 22px;}

.section{padding:58px 0;}
.section h2{font-size:clamp(2.45rem,3.6vw,3.6rem);margin-bottom:20px;}
.section-intro,.centered-copy,.story-copy p{font-size:1.22rem;line-height:1.72;}

.feature-card-grid{gap:20px;}
.feature-card{padding:26px 22px;}
.feature-card h3{font-size:1.6rem;margin-bottom:12px;}
.feature-card p{font-size:1.12rem;line-height:1.55;}
.menu-cta-banner{padding:28px 32px;}
.menu-cta-banner h3{font-size:2rem;}
.menu-cta-banner p{font-size:1.12rem;}

.bullet-columns{gap:28px 52px;max-width:1100px;margin-left:auto;margin-right:auto;}
.bullet-columns li{font-size:1.24rem;line-height:1.55;margin-bottom:12px;}
.cheese-choice-grid{gap:20px;}
.choice-card{min-height:132px;padding:28px;font-size:1.2rem;}

.gallery-grid{gap:22px;}
.gallery-grid img{border-radius:20px;}

.visit-grid{grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:54px;align-items:center;}
.visit-copy{max-width:680px;}
.visit-copy h2{font-size:clamp(2.7rem,4vw,4.2rem);white-space:nowrap;}
.visit-copy p{font-size:1.28rem;line-height:1.72;}
.visit-media{aspect-ratio:1.18/1;}

.panel-shell{padding:46px 44px;}
.story-copy p{font-size:1.28rem;line-height:1.75;margin-bottom:20px;}
.compact-columns{max-width:1040px;margin-left:auto;margin-right:auto;}
.compact-columns li{font-size:1.2rem;line-height:1.55;}
.highlight-grid{gap:22px;align-items:start;}
.highlight-card{padding:26px 26px 22px;align-self:start;}
.highlight-card h3{font-size:1.5rem;margin-bottom:14px;}
.highlight-card li{font-size:1.16rem;line-height:1.55;margin-bottom:8px;}

.location-grid{grid-template-columns:minmax(380px,.95fr) minmax(0,1.05fr);gap:56px;align-items:center;}
.location-copy{max-width:560px;align-self:center;}
.location-copy p{font-size:1.34rem;line-height:1.72;}
.location-copy .button{font-size:1.08rem;}
.location-photo-stack{gap:22px;}

.site-footer{padding:40px 0 44px;}
.site-footer p{font-size:1.12rem;}

@media (max-width:1100px){
  .hero-grid{grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);}
  .hero-title{font-size:clamp(2.8rem,5vw,4.5rem);}
  .visit-copy h2{white-space:normal;}
}

@media (max-width:980px){
  .shell{width:min(900px,calc(100% - 36px));}
  .site-logo{width:200px;}
  .brand-title{font-size:clamp(2.2rem,6vw,3.1rem);}
  .hero-grid,.visit-grid,.location-grid{grid-template-columns:1fr;}
  .hero-title{max-width:none;text-align:center;}
  .hero-copy{text-align:center;}
  .hero-intro,.hero-support{margin-left:auto;margin-right:auto;}
  .button-row{justify-content:center;}
  .visit-copy,.location-copy{max-width:760px;margin:0 auto;text-align:center;}
  .visit-copy h2{text-align:center;white-space:normal;}
  .button-stack{align-items:center;}
  .feature-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .cheese-choice-grid{grid-template-columns:1fr;max-width:720px;margin-left:auto;margin-right:auto;}
}

@media (max-width:700px){
  .shell{width:calc(100% - 28px);}
  .site-header{padding:22px 0 12px;}
  .site-logo{width:150px;}
  .brand-title{font-size:clamp(2rem,9vw,2.8rem);}
  .top-nav{font-size:1.05rem;gap:18px;}
  .hero-band{padding:18px 0 34px;}
  .hero-title{font-size:clamp(2.5rem,11vw,3.6rem);}
  .hero-intro,.hero-support{font-size:1.12rem;line-height:1.65;}
  .section{padding:46px 0;}
  .section h2{font-size:clamp(2.1rem,9vw,2.9rem);}
  .section-intro,.centered-copy,.story-copy p{font-size:1.1rem;}
  .feature-card-grid,.gallery-grid,.highlight-grid{grid-template-columns:1fr;}
  .feature-card{padding:24px 20px;}
  .feature-card h3{font-size:1.45rem;}
  .feature-card p{font-size:1.08rem;}
  .menu-cta-banner{padding:24px 22px;}
  .menu-cta-banner h3{font-size:1.7rem;}
  .menu-cta-banner p{font-size:1.06rem;}
  .bullet-columns{grid-template-columns:1fr;gap:0;}
  .bullet-columns li{font-size:1.1rem;}
  .choice-card{min-height:104px;font-size:1.08rem;}
  .visit-copy p,.location-copy p{font-size:1.14rem;}
  .panel-shell{padding:30px 20px;}
  .story-copy p{font-size:1.12rem;}
  .compact-columns li,.highlight-card li{font-size:1.08rem;}
  .highlight-card h3{font-size:1.35rem;}
  .site-footer p{font-size:1rem;}
}
