@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=DM+Serif+Display&family=Oswald:wght@700&display=swap");

:root { --ink:#172018; --green:#536f55; --deep:#293b2d; --cream:#f3eedf; --paper:#fffaf0; --warm-cream:#dfd6c1; --sage:#b9c9aa; --line:rgba(23,32,24,.18); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--cream); font-family:"DM Sans",Arial,sans-serif; }
a { color:inherit; }
img { display:block; max-width:100%; }
button,input,select,textarea { font:inherit; color:inherit; }
:focus-visible { outline:3px solid #b8d6ae; outline-offset:4px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; top:-5rem; left:1rem; z-index:30; padding:.8rem 1rem; background:var(--paper); }
.skip-link:focus { top:1rem; }

.site-header { position:relative; z-index:20; min-height:88px; display:flex; align-items:center; justify-content:space-between; gap:2rem; padding:1rem clamp(1.25rem,4vw,4.5rem); border-bottom:1px solid var(--line); background:var(--cream); transition:background-color .35s ease,color .35s ease,border-color .35s ease,box-shadow .35s ease; }
.site-header--hero { position:fixed; top:0; right:0; left:0; color:var(--paper); border-color:rgba(255,255,255,.24); background:linear-gradient(to bottom,rgba(15,20,15,.52),rgba(15,20,15,0)); }
.site-header--hero.is-scrolled { color:var(--ink); border-color:var(--line); background:rgba(243,239,223,.94); box-shadow:0 8px 28px rgba(24,34,25,.08); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); }
.wordmark { display:block; flex:none; color:#111; font:700 clamp(1.65rem,2.8vw,2.5rem)/1 "Oswald","Arial Narrow",sans-serif; letter-spacing:.025em; text-decoration:none; white-space:nowrap; }
.site-header--hero .wordmark { color:var(--paper); }
.site-header--hero.is-scrolled .wordmark { color:var(--ink); }
nav { display:flex; align-items:center; justify-content:flex-end; gap:clamp(.9rem,2.4vw,2.2rem); }
nav a { font-size:.72rem; font-weight:600; letter-spacing:.08em; text-decoration:none; text-transform:uppercase; }
.nav-menu { min-height:44px; display:inline-flex; align-items:center; padding:.7rem 1.15rem; border:1px solid currentColor; }

.hero { position:relative; width:100%; height:100svh; min-height:680px; max-height:980px; overflow:hidden; background:var(--ink); }
.hero::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(12,17,12,.5) 0%,rgba(12,17,12,.16) 18%,rgba(12,17,12,0) 42%); pointer-events:none; }
.hero img { width:100%; height:100%; object-fit:cover; object-position:center 58%; }
.hero img.exterior-hero-image { object-position:center 58%; }
.visit-hours { flex:none; font-size:.78rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.visit-hours span { padding:0 .35rem; opacity:.55; }

.gallery { padding:clamp(4.5rem,8vw,8rem) clamp(1.25rem,6vw,7rem); background:var(--deep); color:var(--paper); }
.gallery-heading { display:flex; align-items:end; justify-content:space-between; gap:2rem; margin-bottom:2.5rem; }
.gallery-heading h1,.gallery-heading h2 { max-width:760px; margin:0; font:400 clamp(3.2rem,7vw,7rem)/.9 "DM Serif Display",Georgia,serif; letter-spacing:-.05em; text-align:right; }
.gallery-page { min-height:calc(100vh - 180px); }
.gallery-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(.7rem,1.5vw,1.25rem); }
.gallery-grid img { width:100%; aspect-ratio:4/3; height:auto; object-fit:cover; }
.gallery-wide { grid-column:1/-1; }
.gallery-note { max-width:520px; margin:1.25rem 0 0 auto; color:rgba(255,253,245,.62); font-size:.68rem; line-height:1.5; text-align:right; }

.menu-section { padding:clamp(5.5rem,9vw,9rem) clamp(1.25rem,6vw,7rem); background:var(--cream); }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:3rem; border-bottom:1px solid var(--line); padding-bottom:2.2rem; }
.eyebrow { margin:0 0 1rem; font-size:.66rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; }
.section-heading h2,.contact h2 { margin:0; font:400 clamp(4rem,9vw,8rem)/.8 "DM Serif Display",Georgia,serif; letter-spacing:-.055em; }
.section-heading .eyebrow { margin:0; text-align:right; }
.menu-tabs { display:flex; gap:1.6rem; margin:2rem 0 3.5rem; border-bottom:1px solid var(--line); }
.menu-tabs button { position:relative; min-height:48px; padding:0 0 .9rem; border:0; background:transparent; font-weight:600; cursor:pointer; }
.menu-tabs button::after { content:""; position:absolute; right:0; bottom:-1px; left:0; height:3px; background:transparent; }
.menu-tabs button[aria-selected="true"]::after { background:var(--green); }
.menu-panel[hidden] { display:none; }
.menu-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:clamp(3rem,8vw,9rem); }
.menu-item { display:grid; grid-template-columns:1fr auto; gap:.55rem 1.5rem; align-content:start; padding:1.8rem 0; border-bottom:1px solid var(--line); }
.menu-item h3,.add-ons h3 { margin:0 0 .35rem; font:400 1.45rem/1.1 "DM Serif Display",Georgia,serif; }
.menu-item p { margin:0; color:rgba(24,34,25,.7); font-size:.9rem; line-height:1.55; }
.menu-item .price { color:var(--ink); font-weight:600; }
.option { grid-column:1/-1; display:flex; justify-content:space-between; padding-top:.25rem; font-size:.78rem!important; font-weight:600; }
.add-ons { max-width:none; margin:3rem 0 0; padding:2rem 0 0; border-top:1px solid var(--line); background:transparent; }
.add-ons h3 { margin-bottom:1.25rem; }
.add-ons p { display:flex; justify-content:space-between; gap:2rem; max-width:620px; margin:.7rem 0; font-size:.88rem; }
.menu-coming { min-height:340px; display:grid; place-items:center; border-bottom:1px solid var(--line); }
.menu-coming p { font:400 clamp(2rem,5vw,4.5rem)/1 "DM Serif Display",Georgia,serif; }

.visit { display:flex; align-items:end; justify-content:space-between; gap:3rem; padding:clamp(3rem,5vw,5rem) clamp(1.25rem,6vw,7rem); background:var(--green); color:var(--paper); }
.visit h2 { margin:0; font:400 clamp(3.2rem,7vw,7rem)/.92 "DM Serif Display",Georgia,serif; letter-spacing:-.04em; }
.visit-hours { margin:2rem 0 0; }
.map-button { min-height:50px; display:inline-flex; align-items:center; justify-content:center; gap:.5rem; flex:none; padding:.9rem 1.15rem; background:var(--paper); color:var(--ink); font-size:.75rem; font-weight:600; text-decoration:none; }

.contact { display:grid; grid-template-columns:minmax(0,.8fr) minmax(420px,1.2fr); gap:clamp(4rem,10vw,10rem); padding:clamp(5.5rem,9vw,9rem) clamp(1.25rem,6vw,7rem); background:var(--warm-cream); border-top:1px solid rgba(23,32,24,.12); }
.contact-copy { display:flex; flex-direction:column; justify-content:center; }
.contact-copy h2 { text-align:left; font-size:clamp(2.6rem,5vw,4.75rem); line-height:.9; }
.contact-copy > p:not(.eyebrow) { max-width:440px; margin:2rem 0 1.5rem; line-height:1.65; }
.contact-copy > a { font-weight:600; text-underline-offset:.3rem; }
form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.4rem; align-content:start; }
.field { display:grid; gap:.55rem; }
.full-field { grid-column:1/-1; }
label { font-size:.72rem; font-weight:600; letter-spacing:.04em; text-transform:uppercase; }
label span { opacity:.55; text-transform:none; }
input,select,textarea { width:100%; border:0; border-bottom:1px solid rgba(23,32,24,.6); border-radius:0; padding:.9rem .1rem; background:transparent; transition:border-color .2s ease; }
input:focus,select:focus,textarea:focus { border-bottom-color:var(--green); outline:0; }
textarea { resize:vertical; }
.form-action { display:flex; align-items:center; gap:1.2rem; margin-top:.7rem; }
.form-action button { min-height:50px; border:0; padding:.85rem 1.4rem; background:var(--ink); color:var(--paper); font-size:.75rem; font-weight:600; cursor:pointer; }
.form-action p { max-width:290px; margin:0; color:rgba(24,34,25,.65); font-size:.7rem; line-height:1.45; }
footer { display:flex; align-items:end; justify-content:space-between; gap:2rem; padding:3rem clamp(1.25rem,6vw,7rem); background:var(--deep); color:var(--paper); }
footer .wordmark { color:var(--paper); }
footer p { margin:0; font-size:.75rem; }
.footer-links { display:flex; align-items:center; gap:2rem; }
.footer-links a { font-size:.72rem; font-weight:600; letter-spacing:.08em; text-decoration:none; text-transform:uppercase; }

@media (max-width:800px) {
  .site-header { min-height:68px; flex-direction:row; align-items:center; gap:.8rem; padding:.7rem 1rem; }
  .wordmark { font-size:1.35rem; }
  nav { width:auto; flex:1; justify-content:flex-end; gap:clamp(.45rem,1.8vw,.8rem); white-space:nowrap; }
  nav a { font-size:.56rem; letter-spacing:.035em; }
  .nav-menu { min-height:36px; padding:.5rem .65rem; }
  .gallery-heading { align-items:flex-start; flex-direction:column; }
  .gallery-heading h1,.gallery-heading h2 { text-align:left; }
  .menu-list { grid-template-columns:1fr; }
  .contact { grid-template-columns:1fr; }
}

@media (max-width:520px) {
  .site-header { gap:.55rem; padding-right:.7rem; padding-left:.7rem; }
  .wordmark { font-size:1.12rem; }
  nav { gap:.38rem; }
  nav a { font-size:.48rem; letter-spacing:0; }
  .nav-menu { min-height:34px; padding:.45rem .55rem; }
  .hero { height:100svh; min-height:600px; max-height:820px; }
  .hero::after { background:linear-gradient(180deg,rgba(12,17,12,.5) 0%,rgba(12,17,12,.12) 20%,rgba(12,17,12,0) 44%); }
  .hero img { width:100%; height:100%; object-fit:cover; object-position:42% center; }
  .hero img.exterior-hero-image { object-position:center 56%; }
  .gallery-grid { grid-template-columns:1fr; }
  .gallery-wide { grid-column:auto; }
  .gallery-note { margin-left:0; text-align:left; }
  .section-heading { align-items:flex-start; flex-direction:column; gap:1.25rem; }
  .section-heading h2 { text-align:left; }
  .section-heading .eyebrow { text-align:left; }
  .menu-section { padding-top:4rem; }
  .menu-item h3 { font-size:1.3rem; }
  .add-ons { margin-top:2.5rem; padding-top:1.75rem; }
  .visit { align-items:flex-start; flex-direction:column; justify-content:space-between; }
  .visit h2 { font-size:clamp(3rem,15vw,4.5rem); }
  form { grid-template-columns:1fr; }
  .field { grid-column:1; }
  .form-action { align-items:flex-start; flex-direction:column; }
  footer { align-items:flex-start; flex-direction:column; }
  .footer-links { align-items:flex-start; flex-direction:column; gap:1rem; }
}

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