/* Left Hand Path — shared styles */
:root{
  --bark:#2B1D0E;
  --moss:#3D4A2A;
  --rust:#C45A28;
  --cream:#F5EDDE;
  --leaf:#6B7A3F;
  --muted:#8A7B5E;
  --hair:#D4C5A9;
  --nav-h:48px;
}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--cream);
  color:var(--bark);
  font-family:"Roboto",sans-serif;
  font-size:15px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
  display:flex;
  flex-direction:column;
}
.wrap{max-width:42rem;margin:0 auto;padding:0 1.25rem;width:100%;}

/* masthead */
.mast{padding:2.5rem 0 1.5rem;}
.mast h1{
  font-family:"Oswald",sans-serif;font-weight:700;
  font-size:clamp(2.8rem,14vw,5rem);
  line-height:.92;letter-spacing:-.01em;
  text-transform:uppercase;margin:0;
  color:var(--bark);
}
.mast h1 a{color:inherit;text-decoration:none;}
.mast h1 .accent{color:var(--rust);}
.mast p{
  margin:1rem 0 0;font-size:.72rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--muted);font-weight:500;
}

/* top nav */
.topnav{
  position:sticky;top:0;z-index:40;
  background:var(--cream);
  border-bottom:1.5px solid var(--bark);
  height:var(--nav-h);display:flex;align-items:center;
  overflow-x:auto;scrollbar-width:none;
}
.topnav::-webkit-scrollbar{display:none;}
.topnav ul{
  display:flex;gap:1.3rem;list-style:none;margin:0;
  padding:0 1.25rem;max-width:42rem;width:100%;
  font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;
  white-space:nowrap;font-weight:600;
}
.topnav a{color:var(--bark);text-decoration:none;padding:.35rem 0;display:block;}
.topnav a:hover,.topnav a:focus-visible{color:var(--rust);}

/* hero (landing only) */
.hero{
  flex:1;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:3.5rem 0 3rem;
}
.hero h1{
  font-family:"Oswald",sans-serif;
  font-weight:700;
  font-size:clamp(3rem,14vw,5.5rem);
  line-height:.92;
  letter-spacing:-.01em;
  text-transform:uppercase;
  margin:0;
  color:var(--bark);
}
.hero h1 .accent{color:var(--rust);}
.hero .tag{
  margin:1.2rem 0 0;
  font-size:.72rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--muted);
  font-weight:500;
}
.hero-image{
  margin:2rem 0 0;
  width:100%;
  border-radius:2px;
  border:1px solid var(--hair);
}
.pitch{
  margin:2.5rem 0 0;
  max-width:30rem;
  font-size:1.08rem;
  line-height:1.65;
  color:var(--bark);
  font-weight:300;
}
.pitch strong{font-weight:500;color:var(--moss);}

/* info block */
.info{
  margin:3rem 0 0;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.5rem 2rem;
  font-size:.82rem;
}
.info .label{
  font-family:"Oswald",sans-serif;
  font-size:.66rem;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--muted);
  margin:0 0 .35rem;
}
.info .val{line-height:1.55;font-weight:300;}
.info .val strong{font-weight:500;}
.info a{color:var(--rust);text-decoration:none;}
.info a:hover{color:var(--bark);}

/* CTA */
.cta{
  margin:3rem 0 0;
  display:flex;
  gap:.8rem;
  flex-wrap:wrap;
}
.cta a{
  display:inline-block;
  font-family:"Oswald",sans-serif;
  font-weight:600;
  font-size:.82rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  text-decoration:none;
  padding:.8rem 1.5rem;
  border:1.5px solid var(--bark);
  color:var(--bark);
  background:var(--cream);
  transition:background .15s,color .15s,border-color .15s;
}
.cta a:hover,.cta a:focus-visible{
  background:var(--bark);
  color:var(--cream);
}
.cta a.primary{
  background:var(--moss);
  border-color:var(--moss);
  color:var(--cream);
}
.cta a.primary:hover,.cta a.primary:focus-visible{
  background:var(--bark);
  border-color:var(--bark);
}

/* big section title */
.sect{padding-top:3rem;scroll-margin-top:calc(var(--nav-h) + 4px);}
.title{
  font-family:"Oswald",sans-serif;font-weight:700;
  font-size:clamp(1.8rem,7vw,2.6rem);line-height:1;
  letter-spacing:-.01em;text-transform:uppercase;
  margin:0 0 1.4rem;
  color:var(--bark);
}

/* sticky category tab */
.cat{
  position:sticky;top:var(--nav-h);z-index:20;
  background:var(--moss);color:var(--cream);
  font-family:"Oswald",sans-serif;
  font-size:.68rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  margin:2.1rem 0 0;padding:.42rem .7rem;
}
.cat:first-of-type{margin-top:0;}
.cat[id]{scroll-margin-top:var(--nav-h);}

/* chips */
.chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:-.6rem 0 1.6rem;}
.chips a{
  font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;
  font-weight:500;
  color:var(--bark);text-decoration:none;
  border:1px solid var(--hair);padding:.3rem .55rem;
}
.chips a:hover,.chips a:focus-visible{border-color:var(--rust);color:var(--rust);}

/* menu rows */
.list{list-style:none;margin:0;padding:0;}
.row{
  display:grid;grid-template-columns:1fr auto;gap:.15rem .9rem;
  padding:.55rem 0;border-bottom:1px solid var(--hair);
}
.row .what{font-weight:500;text-transform:uppercase;letter-spacing:.02em;font-size:.92rem;}
.row .who{color:var(--muted);text-transform:none;letter-spacing:0;font-weight:300;font-size:.86rem;}
.row .cost{font-weight:500;font-variant-numeric:tabular-nums;align-self:start;color:var(--rust);}
.row .desc{grid-column:1 / -1;color:var(--muted);font-size:.84rem;margin-top:.1rem;font-weight:300;font-style:italic;}

.aside{
  margin:1.4rem 0 0;padding:.55rem 0 0;
  border-top:1px solid var(--hair);
  font-size:.8rem;color:var(--muted);font-weight:300;
}
.lede{margin:-.8rem 0 1.4rem;font-size:.82rem;color:var(--muted);font-weight:300;}

/* food note */
.food-note{
  margin:1.6rem 0 0;padding:1rem 1.2rem;
  background:var(--bark);color:var(--cream);
  font-size:.85rem;line-height:1.5;
  border-radius:2px;
}
.food-note strong{
  font-family:"Oswald",sans-serif;
  font-weight:600;text-transform:uppercase;letter-spacing:.04em;
  color:var(--rust);
}

/* gallery */
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:.5rem;
  margin:2rem 0;
}
.gallery-grid a{
  display:block;
  overflow:hidden;
  border-radius:2px;
  border:1px solid var(--hair);
}
.gallery-grid img{
  width:100%;height:100%;
  object-fit:cover;
  aspect-ratio:1;
  display:block;
  transition:opacity .15s;
}
.gallery-grid a:hover img{opacity:.85;}

/* lightbox */
.lightbox{
  position:fixed;inset:0;z-index:100;
  background:rgba(43,29,14,.95);
  display:none;
  align-items:center;justify-content:center;
  padding:2rem;
}
.lightbox.open{display:flex;}
.lightbox img{
  max-width:90vw;max-height:85vh;
  object-fit:contain;
  border-radius:2px;
}
.lightbox .close{
  position:absolute;top:1rem;right:1.5rem;
  font-size:2rem;color:var(--cream);
  cursor:pointer;line-height:1;
  font-family:"Oswald",sans-serif;font-weight:300;
}

/* FAQ */
.faq-item{
  border-bottom:1px solid var(--hair);
  padding:1rem 0;
}
.faq-item summary{
  font-family:"Oswald",sans-serif;
  font-weight:600;
  font-size:1rem;
  cursor:pointer;
  list-style:none;
  padding-right:1.5rem;
  position:relative;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{
  content:'+';
  position:absolute;right:0;top:0;
  font-size:1.2rem;color:var(--rust);
  font-weight:400;
}
.faq-item[open] summary::after{content:'\2212';}
.faq-item .answer{
  margin:.8rem 0 0;
  font-weight:300;
  color:var(--muted);
  line-height:1.6;
}
.faq-item .answer a{color:var(--rust);text-decoration:none;}

/* booking */
.booking-form{
  margin:2rem 0;
}
.form-row{
  margin:0 0 1.2rem;
}
.form-row label{
  display:block;
  font-family:"Oswald",sans-serif;
  font-size:.66rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);
  margin:0 0 .4rem;
}
.form-row input,
.form-row select,
.form-row textarea{
  width:100%;
  padding:.6rem .8rem;
  border:1.5px solid var(--hair);
  background:var(--cream);
  color:var(--bark);
  font-family:"Roboto",sans-serif;
  font-size:.9rem;
  border-radius:2px;
}
.form-row input:focus,
.form-row select:focus,
.form-row textarea:focus{
  outline:none;border-color:var(--rust);
}
.form-row textarea{min-height:6rem;resize:vertical;}
.form-grid-2{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 1rem;
}
.form-submit{
  font-family:"Oswald",sans-serif;
  font-weight:600;
  font-size:.82rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  padding:.8rem 1.5rem;
  border:1.5px solid var(--bark);
  color:var(--cream);
  background:var(--moss);
  cursor:pointer;
  border-radius:2px;
  transition:background .15s,border-color .15s;
}
.form-submit:hover{background:var(--bark);border-color:var(--bark);}

/* merch */
.merch-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1.5rem;
  margin:2rem 0;
}
.merch-card{
  border:1px solid var(--hair);
  border-radius:2px;
  overflow:hidden;
  background:var(--cream);
}
.merch-card .merch-img{
  width:100%;
  aspect-ratio:1;
  object-fit:cover;
  display:block;
  background:var(--hair);
}
.merch-card .merch-info{
  padding:.8rem .9rem;
}
.merch-card .merch-name{
  font-family:"Oswald",sans-serif;
  font-weight:600;
  font-size:.92rem;
  text-transform:uppercase;
  letter-spacing:.02em;
  margin:0 0 .2rem;
}
.merch-card .merch-desc{
  font-size:.78rem;
  color:var(--muted);
  font-weight:300;
  margin:0 0 .6rem;
  line-height:1.4;
}
.merch-card .merch-bottom{
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.merch-card .merch-price{
  font-weight:600;
  font-variant-numeric:tabular-nums;
  color:var(--rust);
  font-size:1rem;
}
.merch-card .merch-buy{
  font-family:"Oswald",sans-serif;
  font-weight:600;
  font-size:.7rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  text-decoration:none;
  padding:.4rem .8rem;
  background:var(--moss);
  color:var(--cream);
  border-radius:2px;
  transition:background .15s;
}
.merch-card .merch-buy:hover{background:var(--bark);}
.merch-card .merch-sold{
  font-size:.7rem;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--muted);
  font-weight:500;
}
.merch-note{
  margin:2rem 0 0;
  padding:1rem 1.2rem;
  background:var(--bark);
  color:var(--cream);
  font-size:.82rem;
  border-radius:2px;
}

/* content blocks */
.content-block{
  margin:2rem 0;
  font-weight:300;
  line-height:1.7;
  color:var(--bark);
}
.content-block h3{
  font-family:"Oswald",sans-serif;
  font-weight:600;
  font-size:1.1rem;
  text-transform:uppercase;
  letter-spacing:.02em;
  color:var(--moss);
  margin:0 0 .6rem;
}
.content-block p{margin:0 0 1rem;}
.content-block a{color:var(--rust);text-decoration:none;}
.content-block a:hover{color:var(--bark);}

/* footer */
.foot{
  margin-top:auto;
  padding:1.2rem 0 2rem;
}
.foot .wrap{
  border-top:1.5px solid var(--bark);
  padding-top:1.2rem;
  font-size:.75rem;
  line-height:1.65;
  color:var(--muted);
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:.5rem;
}
.foot a{color:var(--muted);text-decoration:none;}
.foot a:hover{color:var(--rust);}

/* animations */
.hero,.sect,.mast{animation:in .45s ease-out both;}
@keyframes in{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
@media (prefers-reduced-motion:reduce){
  .hero,.sect,.mast{animation:none;}
  html{scroll-behavior:auto;}
}
a:focus-visible{outline:2px solid var(--rust);outline-offset:3px;}

@media (max-width:480px){
  .info{grid-template-columns:1fr;}
  .form-grid-2{grid-template-columns:1fr;}
  .gallery-grid{grid-template-columns:1fr;}
  .merch-grid{grid-template-columns:1fr;}
}
@media (min-width:700px){
  .gallery-grid{grid-template-columns:repeat(3,1fr);}
}
@media (min-width:900px){
  .gallery-grid{grid-template-columns:repeat(3,1fr);}
  .merch-grid{grid-template-columns:repeat(3,1fr);}
}
