:root{
  --ink:#10160f;
  --ink-2:#171f16;
  --ink-3:#1e281c;
  --hairline:rgba(244,241,232,.14);
  --hairline-strong:rgba(244,241,232,.28);
  --bone:#f4f1e8;
  --bone-dim:rgba(244,241,232,.62);
  --bone-faint:rgba(244,241,232,.4);
  --sage:#9db08d;
  --moss:#5c7a52;
  --brass:#c9a15a;
  --brass-dim:rgba(201,161,90,.5);
  --font-display:'Fraunces', Georgia, serif;
  --font-body:'Space Grotesk', system-ui, -apple-system, Segoe UI, sans-serif;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;font-family:var(--font-body);color:var(--bone);background:var(--ink);
  line-height:1.6;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul,ol{list-style:none;margin:0;padding:0;}
h1,h2,h3{font-family:var(--font-display);font-weight:500;line-height:1.1;margin:0 0 .5em;color:var(--bone);}
em{font-style:italic;color:var(--brass);}
p{margin:0 0 1em;color:var(--bone-dim);}
.container{width:100%;max-width:1180px;margin:0 auto;padding:0 28px;}
.skip-link{position:absolute;left:-999px;top:0;background:var(--brass);color:var(--ink);padding:10px 16px;z-index:200;}
.skip-link:focus{left:0;}

svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;width:100%;height:100%;}

/* Buttons */
.btn-line{
  display:inline-flex;align-items:center;gap:10px;padding:13px 24px;
  border:1px solid var(--brass-dim);color:var(--bone);font-family:var(--font-body);
  font-weight:600;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;
  background:transparent;cursor:pointer;transition:background .2s ease, border-color .2s ease, color .2s ease;
  white-space:nowrap;
}
.btn-line:hover{background:var(--brass);border-color:var(--brass);color:var(--ink);}
.btn-line:hover .arrow{transform:translateX(3px);}
.btn-line .arrow{display:inline-block;transition:transform .2s ease;}
.btn-line-lg{padding:16px 30px;font-size:.85rem;}
.btn-block{width:100%;justify-content:center;}
.btn-line:disabled{opacity:.35;cursor:not-allowed;}
.btn-line:disabled:hover{background:transparent;border-color:var(--brass-dim);color:var(--bone);}
.btn-text{
  color:var(--bone-dim);font-weight:600;font-size:.85rem;letter-spacing:.03em;
  border-bottom:1px solid transparent;padding-bottom:2px;background:none;border-top:none;border-left:none;border-right:none;cursor:pointer;font-family:var(--font-body);
}
.btn-text:hover{color:var(--brass);border-bottom-color:var(--brass);}

/* Header */
.site-header{position:sticky;top:0;z-index:100;background:rgba(16,22,15,.85);backdrop-filter:blur(10px);border-bottom:1px solid var(--hairline);}
.header-inner{display:flex;align-items:center;gap:28px;padding:18px 28px;}
.brand{display:flex;align-items:center;gap:10px;margin-right:auto;}
.brand-mark{width:30px;height:30px;color:var(--brass);flex:0 0 auto;}
.brand-text{display:flex;flex-direction:column;line-height:1.2;}
.brand-text strong{font-family:var(--font-display);font-size:1.05rem;color:var(--bone);letter-spacing:.01em;}
.brand-text small{font-size:.68rem;color:var(--bone-faint);letter-spacing:.08em;text-transform:uppercase;}
.main-nav{display:flex;gap:30px;}
.main-nav a{display:flex;align-items:center;gap:8px;font-weight:600;font-size:.82rem;letter-spacing:.04em;text-transform:uppercase;color:var(--bone-dim);}
.main-nav a span{color:var(--brass);font-family:var(--font-display);font-style:italic;font-size:.9rem;}
.main-nav a:hover{color:var(--bone);}
.header-actions{display:flex;align-items:center;gap:22px;}
.header-phone{font-size:.85rem;color:var(--bone-dim);letter-spacing:.02em;}
.header-phone:hover{color:var(--brass);}
.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:6px;width:32px;height:32px;background:none;border:none;cursor:pointer;padding:0;}
.nav-toggle span{display:block;width:100%;height:1px;background:var(--bone);}

/* Hero */
.hero{position:relative;padding:64px 0 90px;border-bottom:1px solid var(--hairline);overflow:hidden;}
.hero-vertical{
  position:absolute;right:24px;top:110px;bottom:60px;writing-mode:vertical-rl;
  font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--bone-faint);
  display:flex;align-items:center;justify-content:center;
}
.hero-inner{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:end;position:relative;}
.kicker{display:block;font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--brass);margin-bottom:22px;}
.hero h1{font-size:clamp(2.6rem,6vw,4.2rem);letter-spacing:-.01em;}
.hero .lead{font-size:1.05rem;max-width:42ch;margin-top:20px;}
.hero-actions{display:flex;align-items:center;gap:26px;flex-wrap:wrap;margin:32px 0 40px;}
.hero-facts{display:flex;gap:36px;padding-top:24px;border-top:1px solid var(--hairline);}
.hero-facts dt{font-family:var(--font-display);font-size:1.6rem;color:var(--bone);}
.hero-facts dd{margin:2px 0 0;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--bone-faint);}

.hero-media{position:relative;border:1px solid var(--hairline-strong);}
.hero-media img{width:100%;aspect-ratio:4/5;object-fit:cover;}
.hero-media figcaption{
  position:absolute;left:16px;bottom:14px;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--bone);
}

/* Duotone treatment for photography */
.duotone{position:relative;overflow:hidden;}
.duotone img{filter:grayscale(1) contrast(1.08) brightness(.92);}
.duotone::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(150deg, rgba(92,122,82,.6), rgba(16,22,15,.72));
  mix-blend-mode:color;
}

/* Section heads */
.section-head{display:flex;align-items:baseline;gap:16px;margin-bottom:36px;}
.section-num{font-family:var(--font-display);font-style:italic;color:var(--brass);font-size:1rem;}
.section-head h2{font-size:clamp(1.6rem,3vw,2.3rem);margin:0;}

/* Ledger (process) */
.ledger-section{padding:90px 0;border-bottom:1px solid var(--hairline);}
.ledger{border-top:1px solid var(--hairline);}
.ledger-row{display:grid;grid-template-columns:100px 1fr;gap:24px;padding:30px 0;border-bottom:1px solid var(--hairline);align-items:start;}
.ledger-num{font-family:var(--font-display);font-style:italic;font-size:2.2rem;color:var(--brass-dim);}
.ledger-text h3{font-size:1.2rem;margin-bottom:8px;}
.ledger-text p{margin:0;max-width:56ch;}

/* Gallery */
.gallery{padding:90px 0;border-bottom:1px solid var(--hairline);}
.gallery-strip{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;gap:16px;}
.gallery-item{border:1px solid var(--hairline);margin:0;}
.gallery-item img{width:100%;aspect-ratio:3/4;object-fit:cover;}
.gallery-item-lg img{aspect-ratio:3/4;}
.gallery-item figcaption{padding:10px 2px 0;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--bone-faint);}

/* Menu list */
.menu-section{padding:90px 0;border-bottom:1px solid var(--hairline);}
.menu-intro{max-width:52ch;margin-bottom:36px;}
.menu-list{display:grid;grid-template-columns:1fr 1fr;column-gap:48px;border-top:1px solid var(--hairline);}
.menu-list li{
  display:grid;grid-template-columns:36px 1fr auto;align-items:baseline;gap:14px;
  padding:18px 0;border-bottom:1px solid var(--hairline);transition:padding-left .2s ease;
}
.menu-list li:hover{padding-left:8px;border-bottom-color:var(--brass-dim);}
.menu-num{font-family:var(--font-display);font-style:italic;color:var(--brass);font-size:.95rem;}
.menu-name{font-weight:600;font-size:.98rem;}
.menu-desc{font-size:.8rem;color:var(--bone-faint);text-align:right;}

/* Booking */
.booking{padding:90px 0;border-bottom:1px solid var(--hairline);}
.booking-widget{background:var(--ink-2);border:1px solid var(--hairline);max-width:760px;margin:0 auto;}

.stepper-line{padding:28px 32px 0;}
.stepper-track{height:1px;background:var(--hairline);position:relative;margin-bottom:20px;}
.stepper-fill{position:absolute;left:0;top:0;height:1px;background:var(--brass);width:0%;transition:width .3s ease;}
.stepper{display:flex;justify-content:space-between;gap:6px;padding-bottom:24px;overflow-x:auto;}
.stepper-item{
  display:flex;align-items:center;gap:6px;font-size:.72rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;
  color:var(--bone-faint);white-space:nowrap;
}
.stepper-item span{font-family:var(--font-display);font-style:italic;color:var(--bone-faint);font-size:.85rem;}
.stepper-item.is-active{color:var(--bone);}
.stepper-item.is-active span{color:var(--brass);}
.stepper-item.is-done{color:var(--sage);cursor:pointer;}
.stepper-item.is-done span{color:var(--sage);}

.booking-panel{padding:8px 32px 36px;}
.booking-step{display:none;}
.booking-step.is-active{display:block;animation:fadein .25s ease;}
@keyframes fadein{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
.booking-step h3{font-size:1.3rem;margin-bottom:6px;}
.step-hint{font-size:.85rem;margin-bottom:20px;color:var(--bone-faint);}

.option-list{border-top:1px solid var(--hairline);}
.option-list .option-card{
  display:flex;align-items:center;justify-content:space-between;width:100%;
  border:none;border-bottom:1px solid var(--hairline);background:transparent;
  padding:16px 4px;font-family:var(--font-body);font-size:.95rem;color:var(--bone-dim);
  text-align:left;cursor:pointer;transition:color .15s ease, padding-left .15s ease;
}
.option-list .option-card::after{content:"";width:7px;height:7px;border:1px solid var(--brass-dim);border-radius:50%;flex:0 0 auto;}
.option-list .option-card:hover{color:var(--bone);padding-left:10px;}
.option-list .option-card.is-selected{color:var(--brass);padding-left:10px;}
.option-list .option-card.is-selected::after{background:var(--brass);border-color:var(--brass);}

.option-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.option-grid .option-card{
  background:transparent;border:1px solid var(--hairline);color:var(--bone-dim);
  font-family:var(--font-body);font-weight:600;font-size:.88rem;padding:14px 10px;
  cursor:pointer;transition:border-color .15s ease, color .15s ease;text-align:center;
}
.option-grid .option-card:hover{border-color:var(--brass-dim);color:var(--bone);}
.option-grid .option-card.is-selected{border-color:var(--brass);color:var(--brass);}
.dates-grid .date-card{display:flex;flex-direction:column;align-items:center;gap:3px;}
.dates-grid .dow{font-size:.65rem;letter-spacing:.06em;text-transform:uppercase;color:var(--bone-faint);}
.dates-grid .option-card.is-selected .dow{color:var(--brass-dim);}

.details-form{display:flex;flex-direction:column;gap:22px;}
.form-field{display:flex;flex-direction:column;gap:8px;}
.form-field label{font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--bone-faint);}
.form-field input,.form-field textarea{
  background:transparent;border:none;border-bottom:1px solid var(--hairline-strong);
  padding:8px 2px;font-family:var(--font-body);font-size:1rem;color:var(--bone);border-radius:0;
}
.form-field input:focus,.form-field textarea:focus{outline:none;border-color:var(--brass);}
.form-field textarea{resize:vertical;}

.summary-card{border:1px solid var(--hairline);padding:24px;margin-bottom:24px;}
.summary-card dl{display:grid;grid-template-columns:auto 1fr;gap:10px 20px;margin:0;}
.summary-card dt{font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--brass);}
.summary-card dd{margin:0;font-size:.95rem;color:var(--bone);}

.booking-nav{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:8px;}
.form-note{min-height:1.2em;font-size:.8rem;color:#d98c6b;font-weight:600;margin-top:14px;}
.tag{font-size:.65rem;color:var(--brass-dim);border:1px solid var(--brass-dim);padding:2px 8px;margin-left:6px;text-transform:uppercase;letter-spacing:.04em;}

/* Contact */
.contact{padding:90px 0;}
.contact-inner{display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;align-items:start;}
.contact-list{border-top:1px solid var(--hairline);}
.contact-list li{display:flex;justify-content:space-between;gap:20px;padding:18px 0;border-bottom:1px solid var(--hairline);font-size:.95rem;}
.contact-label{font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--bone-faint);}
.contact-list a:hover{color:var(--brass);}
.map-embed{border:1px solid var(--hairline);min-height:340px;}
.map-embed iframe{width:100%;height:100%;min-height:340px;border:0;filter:grayscale(.45) contrast(1.05) brightness(.92);}

/* Footer */
.site-footer{padding:60px 0 30px;}
.footer-word{
  font-family:var(--font-display);font-size:clamp(2.4rem,8vw,5.4rem);margin:0 0 40px;
  letter-spacing:-.01em;color:var(--bone);border-bottom:1px solid var(--hairline);padding-bottom:30px;
}
.footer-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;}
.footer-nav{display:flex;gap:24px;font-size:.8rem;letter-spacing:.04em;text-transform:uppercase;font-weight:600;color:var(--bone-dim);}
.footer-nav a:hover{color:var(--brass);}
.footer-copy{font-size:.75rem;color:var(--bone-faint);margin:0;}

/* Responsive */
@media (max-width:960px){
  .hero-inner{grid-template-columns:1fr;}
  .hero-media{order:-1;max-width:340px;}
  .hero-vertical{display:none;}
  .ledger-row{grid-template-columns:60px 1fr;}
  .gallery-strip{grid-template-columns:repeat(3,1fr);}
  .gallery-item-lg{grid-column:span 2;}
  .menu-list{grid-template-columns:1fr;column-gap:0;}
  .contact-inner{grid-template-columns:1fr;}
}

@media (max-width:720px){
  .main-nav{
    position:fixed;top:66px;left:0;right:0;background:var(--ink);
    flex-direction:column;padding:20px 28px;gap:4px;
    transform:translateY(-140%);opacity:0;transition:transform .25s ease, opacity .25s ease;
    border-bottom:1px solid var(--hairline);
  }
  .main-nav.is-open{transform:translateY(0);opacity:1;}
  .main-nav a{padding:14px 4px;border-bottom:1px solid var(--hairline);}
  .header-actions .header-phone{display:none;}
  .nav-toggle{display:flex;}
  .gallery-strip{grid-template-columns:repeat(2,1fr);}
  .gallery-item-lg{grid-column:span 2;}
  .option-grid{grid-template-columns:repeat(2,1fr);}
  .stepper-line{padding:22px 18px 0;}
  .stepper{gap:14px;}
  .booking-panel{padding:6px 18px 28px;}
  .booking-nav{flex-wrap:wrap;}
  .menu-desc{display:none;}
  .menu-list li{grid-template-columns:30px 1fr;}
  .hero-facts{gap:24px;}
}

@media (max-width:420px){
  .hero-actions{flex-direction:column;align-items:flex-start;gap:18px;}
  .option-grid{grid-template-columns:repeat(2,1fr);}
  .dates-grid,.times-grid{grid-template-columns:repeat(2,1fr);}
}
