
:root{--green:#7bb432;--green-dark:#487419;--ink:#1f241d;--cream:#f7f4eb;--white:#fff;--line:#dbe2d0}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"DM Sans",sans-serif;color:var(--ink);background:#fff;line-height:1.55}
a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.site-header{height:78px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);z-index:20;border-bottom:1px solid #eee}
.brand{display:flex;flex-direction:column;line-height:.9;font-weight:700;letter-spacing:.06em}.brand span{font-family:"Playfair Display",serif;font-size:1.55rem}.brand small{color:var(--green);font-size:.72rem;letter-spacing:.24em;margin-top:7px}
nav{display:flex;align-items:center;gap:26px;font-weight:700}nav a:hover{color:var(--green-dark)}.nav-cta{background:var(--green);padding:11px 18px;border-radius:999px;color:#fff}.nav-toggle{display:none;background:none;border:0;font-size:1.6rem}
.hero{min-height:690px;display:grid;place-items:center;position:relative;background:url("assets/menu-page-1.png") center 29%/cover no-repeat}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,24,10,.92),rgba(15,24,10,.62) 48%,rgba(15,24,10,.15))}
.hero-content{position:relative;color:#fff;width:min(1180px,90vw);padding:90px 0}.eyebrow{font-size:.78rem;letter-spacing:.19em;font-weight:700;color:var(--green)}.hero h1{font-family:"Playfair Display",serif;font-size:clamp(3rem,7vw,6rem);line-height:.98;max-width:780px;margin:.2em 0}.hero-content>p:not(.eyebrow){font-size:1.25rem;max-width:600px}.hero-actions,.contact-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}
.button{display:inline-flex;align-items:center;justify-content:center;padding:14px 22px;border-radius:999px;font-weight:700}.primary{background:var(--green);color:#fff}.ghost{border:1px solid rgba(255,255,255,.7);color:#fff}.outline{border:1px solid var(--green-dark);color:var(--green-dark)}
.quick-info{display:grid;grid-template-columns:repeat(3,1fr);background:var(--ink);color:#fff;padding:24px 5vw;gap:25px}.quick-info div{display:flex;flex-direction:column;align-items:center}.quick-info span{color:#dce5d3}
.intro,.contact{width:min(1180px,90vw);margin:auto;padding:100px 0;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}.intro h2,.section-heading h2,.contact h2{font-family:"Playfair Display",serif;font-size:clamp(2.3rem,5vw,4.2rem);line-height:1.05;margin:.15em 0}.intro>p{font-size:1.16rem;color:#5d6458}
.popular,.menu-section,.gallery{padding:90px 5vw}.popular,.gallery{background:var(--cream)}.section-heading{max-width:780px;margin:0 auto 42px;text-align:center}.section-heading p:last-child{color:#677060}
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:1180px;margin:auto}.feature-grid article{height:400px;border-radius:28px;background-size:230%;background-position:center;position:relative;overflow:hidden;box-shadow:0 16px 38px rgba(0,0,0,.14)}.feature-grid article:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 38%,rgba(0,0,0,.82))}.feature-grid article div{position:absolute;bottom:0;z-index:1;color:#fff;padding:28px}.feature-grid h3{font-family:"Playfair Display",serif;font-size:2rem;margin:0}
.menu-tabs{position:sticky;top:78px;z-index:10;background:#fff;display:flex;gap:10px;overflow:auto;padding:14px 0;border-bottom:1px solid #eee;margin-bottom:50px}.menu-tabs a{white-space:nowrap;padding:9px 14px;border-radius:999px;background:var(--cream);font-weight:700;font-size:.9rem}.menu-tabs a:hover{background:var(--green);color:#fff}
.menu-category{max-width:1180px;margin:0 auto 72px}.menu-category h2{font-family:"Playfair Display",serif;font-size:2.4rem;border-bottom:2px solid var(--green);padding-bottom:10px}.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 38px}.menu-item{padding:16px 0;border-bottom:1px solid var(--line)}.item-head{display:flex;justify-content:space-between;gap:20px}.item-head h3{margin:0;font-size:1.05rem}.item-head span{font-weight:700;color:var(--green-dark)}.menu-item p{margin:6px 0 0;color:#687064;font-size:.94rem}.menu-note{text-align:center;color:#6b7166}
.gallery-grid{max-width:1180px;margin:auto;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.gallery-grid img{border-radius:18px;box-shadow:0 12px 32px rgba(0,0,0,.12)}
.contact{align-items:center}.contact a{color:var(--green-dark);font-weight:700}.hours-card{background:var(--ink);color:#fff;border-radius:28px;padding:38px}.hours-card h3{font-family:"Playfair Display",serif;font-size:2.2rem;margin-top:0}.hours-card p{display:flex;justify-content:space-between;gap:20px}.hours-card span{text-align:right;color:#dce5d3}.hours-card small{color:#cbd5c0}
footer{background:#11160f;color:#fff;padding:42px 5vw;display:flex;justify-content:space-between;align-items:center}footer p{color:#aeb8a5}
@media(max-width:850px){.nav-toggle{display:block}nav{display:none;position:absolute;top:78px;left:0;right:0;background:#fff;padding:22px 5vw;flex-direction:column;align-items:flex-start;border-bottom:1px solid #ddd}nav.open{display:flex}.hero{min-height:600px}.quick-info{grid-template-columns:1fr}.intro,.contact{grid-template-columns:1fr;gap:25px;padding:70px 0}.feature-grid{grid-template-columns:1fr}.feature-grid article{height:340px}.menu-grid{grid-template-columns:1fr}.gallery-grid{grid-template-columns:1fr 1fr}footer{flex-direction:column;gap:20px;text-align:center}}
@media(max-width:520px){.gallery-grid{grid-template-columns:1fr}.hero h1{font-size:3.2rem}.site-header{padding:0 20px}.hero-actions .button{width:100%}}

/* Two-location landing page additions */
.locations-section {
  padding: 100px 5vw;
  background: #fff;
}

.location-grid {
  width: min(1180px, 100%);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 30px;
}

.location-card {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 28px;
  background: var(--white);
  box-shadow: 0 18px 46px rgba(31, 36, 29, 0.12);
}

.location-image {
  min-height: 330px;
  background-position: center;
  background-size: cover;
}

.beaverton-image {
  background-image:
    linear-gradient(rgba(16, 24, 12, 0.08), rgba(16, 24, 12, 0.08)),
    url("assets/beaverton/page-01.jpg");
}

.hillsboro-image {
  background-image:
    linear-gradient(rgba(16, 24, 12, 0.08), rgba(16, 24, 12, 0.08)),
    url("assets/hillsboro/page-01.jpg");
}

.location-content {
  padding: 34px;
}

.location-content h3 {
  margin: 0.08em 0 0.25em;
  font-family: "Playfair Display", serif;
  font-size: clamp(2.25rem, 4vw, 3.2rem);
  line-height: 1;
}

.location-address,
.location-phone {
  font-size: 1.05rem;
}

.location-phone a {
  color: var(--green-dark);
  font-weight: 700;
}

.location-hours {
  margin: 24px 0;
  padding: 18px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.location-hours p {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  margin: 8px 0;
}

.location-hours span {
  color: #677060;
  text-align: right;
}

.location-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.location-actions .button {
  flex: 1 1 210px;
}

.location-contact {
  padding-top: 90px;
}

@media (max-width: 850px) {
  .location-grid {
    grid-template-columns: 1fr;
  }

  .location-image {
    min-height: 280px;
  }
}

@media (max-width: 520px) {
  .locations-section {
    padding: 70px 20px;
  }

  .location-content {
    padding: 26px 22px;
  }

  .location-hours p {
    display: block;
  }

  .location-hours span {
    display: block;
    margin-top: 2px;
    text-align: left;
  }

  .location-actions .button {
    width: 100%;
  }
}

/* Location menu pages */
.location-hero{min-height:560px;display:grid;place-items:center;position:relative;background-position:center;background-size:cover}.beaverton-hero{background-image:url("assets/beaverton/page-01.jpg")}.hillsboro-hero{background-image:url("assets/hillsboro/page-04.jpg")}.location-hero .hero-overlay{background:linear-gradient(90deg,rgba(15,24,10,.94),rgba(15,24,10,.69) 52%,rgba(15,24,10,.23))}.location-hero h1{font-family:"Playfair Display",serif;font-size:clamp(3.2rem,7vw,6rem);line-height:.98;max-width:800px;margin:.2em 0}.menu-viewer{padding:95px 5vw;background:var(--cream)}.menu-page-list{width:min(1000px,100%);margin:0 auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:start}.menu-page-list a{display:block;border-radius:20px;overflow:hidden;background:#fff;box-shadow:0 16px 40px rgba(31,36,29,.14);transition:transform .2s ease,box-shadow .2s ease}.menu-page-list a:hover{transform:translateY(-4px);box-shadow:0 20px 48px rgba(31,36,29,.2)}.menu-page-list img{width:100%;height:auto}.full-button{width:100%;margin-top:20px}.floating-order{position:fixed;right:22px;bottom:22px;z-index:30;padding:14px 20px;border-radius:999px;background:var(--green);color:#fff;font-weight:700;box-shadow:0 12px 30px rgba(31,36,29,.3)}@media(max-width:850px){.location-hero{min-height:510px}.menu-page-list{grid-template-columns:1fr;max-width:720px}}@media(max-width:520px){.menu-viewer{padding:70px 16px}.menu-page-list{gap:18px}.menu-page-list a{border-radius:12px}.floating-order{left:18px;right:18px;bottom:16px;text-align:center}footer{padding-bottom:90px}}
