:root { --ink:#0d120e; --green:#2f9138; --green-deep:#1f6b2b; --cream:#f4f0e6; --paper:#fbfaf5; --line:rgba(13,18,14,.16); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Arial,Helvetica,sans-serif; font-size:16px; }
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; }
.site-header { position:fixed; z-index:30; top:0; left:0; width:100%; height:92px; display:flex; align-items:center; justify-content:space-between; padding:12px clamp(24px,5vw,80px); background:rgba(251,250,245,.96); border-bottom:1px solid rgba(13,18,14,.14); backdrop-filter:blur(14px); color:var(--ink); }
.brand img { width:150px; height:64px; object-fit:contain; object-position:left center; }
nav { display:flex; align-items:center; gap:32px; font-size:.92rem; }
nav a { opacity:.82; transition:.2s; } nav a:hover { opacity:1; color:var(--green-deep); }
.nav-cta { border:1px solid rgba(13,18,14,.55); padding:12px 20px; opacity:1; }
.menu-toggle { display:none; background:none; border:0; padding:12px; }
.menu-toggle span { display:block; width:24px; height:1px; background:var(--ink); margin:6px; }
.hero { min-height:820px; height:100vh; max-height:980px; position:relative; display:flex; align-items:center; color:white; overflow:hidden; }
.hero-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero-overlay { position:absolute; inset:0; background:linear-gradient(90deg,rgba(5,8,6,.94) 0%,rgba(5,8,6,.7) 38%,rgba(5,8,6,.12) 72%),linear-gradient(0deg,rgba(5,8,6,.72),transparent 35%); }
.hero-content { position:relative; z-index:2; max-width:720px; margin-left:clamp(24px,8vw,130px); margin-top:60px; }
.eyebrow { margin:0 0 26px; color:#9be19d; font-size:.75rem; font-weight:700; text-transform:uppercase; letter-spacing:.2em; }
.eyebrow.dark { color:var(--green-deep); }
h1,h2 { font-family:Georgia,'Times New Roman',serif; font-weight:400; letter-spacing:-.045em; line-height:.94; margin:0; }
h1 { font-size:clamp(4rem,7.6vw,8rem); }
h2 { font-size:clamp(3rem,5.8vw,6rem); }
.hero-copy { max-width:570px; color:rgba(255,255,255,.76); font-family:Georgia,serif; font-size:clamp(1.1rem,1.6vw,1.42rem); line-height:1.55; margin:32px 0; }
.hero-actions { display:flex; flex-wrap:wrap; gap:14px; }
.button { display:inline-flex; justify-content:center; align-items:center; min-height:52px; padding:0 27px; border:1px solid transparent; cursor:pointer; text-transform:uppercase; letter-spacing:.1em; font-size:.76rem; font-weight:700; transition:.25s; }
.button-primary { background:var(--green); color:white; } .button-primary:hover { background:#3dab48; transform:translateY(-2px); }
.button-ghost { color:white; border-color:rgba(255,255,255,.55); } .button-ghost:hover { background:white; color:var(--ink); }
.button-dark { background:var(--ink); color:white; }
.hero-services { position:absolute; z-index:2; bottom:0; right:0; display:flex; background:rgba(9,13,10,.84); backdrop-filter:blur(8px); }
.hero-services span { padding:24px 30px; border-left:1px solid rgba(255,255,255,.12); color:rgba(255,255,255,.72); font-size:.78rem; text-transform:uppercase; letter-spacing:.12em; }
.section { padding:clamp(90px,11vw,170px) clamp(24px,8vw,130px); }
.intro { display:grid; grid-template-columns:1.1fr .9fr; gap:8vw; align-items:start; }
.intro-copy { padding-top:54px; max-width:600px; }
.intro-copy p { font-family:Georgia,serif; font-size:1.25rem; line-height:1.7; color:#495049; }
.text-link { display:inline-flex; gap:16px; margin-top:24px; padding-bottom:8px; border-bottom:1px solid var(--ink); font-size:.8rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; }
.services { background:var(--ink); color:white; }
.section-heading { display:flex; justify-content:space-between; align-items:end; margin-bottom:80px; }
.service-grid { border-top:1px solid rgba(255,255,255,.17); }
.service-card { display:grid; grid-template-columns:80px 1fr 50px; gap:28px; align-items:center; min-height:155px; border-bottom:1px solid rgba(255,255,255,.17); transition:.25s; }
.service-card:hover { padding-left:18px; background:linear-gradient(90deg,rgba(47,145,56,.18),transparent); }
.service-num { color:#71c976; font-size:.78rem; }
.service-card h3 { margin:0 0 10px; font:400 clamp(1.5rem,2vw,2rem) Georgia,serif; text-transform:capitalize; }
.service-card p { margin:0; color:rgba(255,255,255,.58); line-height:1.55; max-width:670px; }
.service-card>a { justify-self:end; border:1px solid rgba(255,255,255,.25); width:44px; height:44px; display:grid; place-items:center; }
.menu-section { background:var(--cream); }
.menu-top { display:grid; grid-template-columns:1fr 420px; gap:80px; align-items:end; }
.menu-top>p { font-family:Georgia,serif; font-size:1.2rem; line-height:1.65; color:#586058; }
.filters { display:flex; flex-wrap:wrap; gap:8px; margin:70px 0 38px; }
.filters button { background:transparent; border:1px solid #aeb2aa; padding:10px 15px; cursor:pointer; font-size:.74rem; text-transform:uppercase; letter-spacing:.08em; }
.filters button.active,.filters button:hover { background:var(--ink); color:white; border-color:var(--ink); }
.menu-grid { display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid var(--line); }
.menu-item { min-height:150px; padding:28px 24px 28px 0; display:flex; justify-content:space-between; border-bottom:1px solid var(--line); }
.menu-item:nth-child(odd) { padding-right:50px; border-right:1px solid var(--line); }
.menu-item:nth-child(even) { padding-left:50px; }
.menu-item>div>span { color:var(--green-deep); font-size:.68rem; text-transform:uppercase; letter-spacing:.14em; }
.menu-item h3 { margin:11px 0 8px; font:400 1.5rem Georgia,serif; }
.menu-item p { margin:0; color:#6c716b; }
.menu-mark { color:var(--green); font:700 2rem Georgia,serif; }
.menu-actions { margin-top:42px; display:flex; align-items:center; gap:30px; }
.menu-actions p { max-width:560px; color:#646a63; font-size:.86rem; line-height:1.5; }
.process { background:#17371e; color:white; }
.process-layout { display:grid; grid-template-columns:.9fr 1.1fr; gap:9vw; }
.process-layout>div>p { color:rgba(255,255,255,.64); line-height:1.7; max-width:480px; margin-top:30px; }
.process ol { list-style:none; margin:0; padding:0; border-top:1px solid rgba(255,255,255,.18); }
.process li { display:grid; grid-template-columns:60px 1fr; gap:20px; padding:28px 0; border-bottom:1px solid rgba(255,255,255,.18); }
.process li>span { color:#8cda90; font-size:.75rem; }
.process h3 { margin:0 0 9px; font:400 1.5rem Georgia,serif; }
.process li p { margin:0; color:rgba(255,255,255,.57); line-height:1.5; }
.quote-section { display:grid; grid-template-columns:.9fr 1.1fr; gap:10vw; background:#111512; color:white; }
.quote-copy>p { color:rgba(255,255,255,.62); line-height:1.7; max-width:500px; }
.direct-contact { display:flex; flex-direction:column; gap:10px; margin-top:45px; font-size:.9rem; }
.direct-contact span { color:#8ac88e; text-transform:uppercase; letter-spacing:.12em; font-size:.7rem; }
.direct-contact a { overflow-wrap:anywhere; }
form { display:flex; flex-direction:column; gap:22px; }
label { display:flex; flex-direction:column; gap:9px; color:rgba(255,255,255,.65); font-size:.75rem; text-transform:uppercase; letter-spacing:.1em; }
input,select,textarea { width:100%; border:0; border-bottom:1px solid rgba(255,255,255,.28); border-radius:0; background:transparent; color:white; padding:12px 0; outline:none; text-transform:none; letter-spacing:0; font-size:1rem; }
select option { color:#111; } textarea { resize:vertical; }
input:focus,select:focus,textarea:focus { border-color:#83d387; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:28px; }
form .button { align-self:flex-start; margin-top:12px; }
footer { position:relative; padding:75px clamp(24px,8vw,130px) 35px; display:grid; grid-template-columns:1.5fr .55fr .65fr; gap:50px; background:#080b09; color:white; }
.footer-brand img { width:210px; height:100px; object-fit:contain; object-position:left; background:var(--cream); padding:10px 14px; }
.footer-brand p { max-width:360px; color:rgba(255,255,255,.55); line-height:1.6; }
footer h3 { color:#77c77b; font-size:.72rem; text-transform:uppercase; letter-spacing:.14em; margin:0 0 20px; }
footer>div:not(.footer-brand) { display:flex; flex-direction:column; gap:12px; }
footer a { color:rgba(255,255,255,.7); }
.copyright { grid-column:1/-1; border-top:1px solid rgba(255,255,255,.12); margin:35px 0 0; padding-top:28px; color:rgba(255,255,255,.4); font-size:.76rem; }
@media (max-width:900px) {
  .site-header { height:78px; } .brand img { width:125px; height:56px; } .menu-toggle { display:block; }
  nav { display:none; position:absolute; top:78px; left:0; width:100%; padding:24px; background:var(--paper); color:var(--ink); flex-direction:column; align-items:stretch; gap:0; box-shadow:0 20px 35px rgba(0,0,0,.12); }
  nav.nav-open { display:flex; } nav a { padding:15px 0; border-bottom:1px solid rgba(13,18,14,.12); } .nav-cta { border:0; }
  .hero { min-height:760px; } .hero-content { margin:80px 24px 0; } h1 { font-size:clamp(3.7rem,16vw,6rem); }
  .hero-overlay { background:linear-gradient(90deg,rgba(5,8,6,.92),rgba(5,8,6,.35)),linear-gradient(0deg,rgba(5,8,6,.8),transparent); }
  .hero-services { left:0; right:auto; width:100%; overflow:auto; } .hero-services span { flex:1; min-width:max-content; padding:18px 20px; text-align:center; }
  .intro,.menu-top,.process-layout,.quote-section { grid-template-columns:1fr; gap:48px; } .intro-copy { padding-top:0; }
  .menu-grid { grid-template-columns:1fr; } .menu-item:nth-child(n) { padding:26px 0; border-right:0; }
  footer { grid-template-columns:1fr 1fr; } .footer-brand { grid-column:1/-1; }
}
@media (max-width:560px) {
  .section { padding:82px 22px; } h2 { font-size:3.1rem; } .hero-copy { font-size:1.06rem; } .button { width:100%; }
  .service-card { grid-template-columns:42px 1fr; padding:26px 0; } .service-card>a { display:none; }
  .menu-actions { align-items:stretch; flex-direction:column; } .form-row { grid-template-columns:1fr; } form .button { align-self:stretch; }
  footer { grid-template-columns:1fr; } .footer-brand,.copyright { grid-column:1; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none!important; } }

.menu-page { background:var(--cream); min-height:100vh; }
.menu-page-hero { padding:190px clamp(24px,8vw,130px) 95px; background:#111512; color:#fff; position:relative; overflow:hidden; }
.menu-page-hero:after { content:"I"; position:absolute; right:7vw; bottom:-8vw; font:700 clamp(16rem,28vw,34rem) Georgia,serif; line-height:1; color:rgba(57,163,67,.1); }
.menu-page-hero>div { position:relative; z-index:1; max-width:900px; }
.menu-page-hero p:not(.eyebrow) { max-width:650px; margin:30px 0 0; color:rgba(255,255,255,.65); font:1.2rem/1.65 Georgia,serif; }
.menu-page-nav { display:flex; flex-wrap:wrap; gap:10px; padding:30px clamp(24px,8vw,130px); background:#fff; border-bottom:1px solid var(--line); position:sticky; top:92px; z-index:15; }
.menu-page-nav a { padding:10px 15px; border:1px solid #b6bbb4; font-size:.73rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.menu-page-nav a:hover { background:var(--ink); color:#fff; border-color:var(--ink); }
.full-menu { padding:90px clamp(24px,8vw,130px) 120px; }
.full-menu-section { margin-bottom:100px; scroll-margin-top:180px; }
.full-menu-heading { display:grid; grid-template-columns:110px 1fr; gap:25px; padding-bottom:25px; border-bottom:2px solid var(--ink); margin-bottom:0; }
.full-menu-heading span { color:var(--green-deep); font-size:.74rem; font-weight:700; text-transform:uppercase; letter-spacing:.14em; padding-top:10px; }
.full-menu-heading h2 { font-size:clamp(2.5rem,4vw,4.4rem); }
.full-menu-list { display:grid; grid-template-columns:1fr 1fr; }
.full-menu-item { display:grid; grid-template-columns:58px 1fr; gap:14px; min-height:125px; padding:24px 30px 24px 0; border-bottom:1px solid var(--line); }
.full-menu-item:nth-child(odd) { border-right:1px solid var(--line); padding-right:42px; }
.full-menu-item:nth-child(even) { padding-left:42px; }
.full-menu-item .dish-number { color:var(--green-deep); font-size:.72rem; font-weight:700; letter-spacing:.1em; padding-top:5px; }
.full-menu-item h3 { margin:0; font:400 1.2rem/1.42 Georgia,serif; }
.menu-note { display:flex; justify-content:space-between; gap:40px; align-items:center; padding:42px; background:#193c21; color:#fff; }
.menu-note h2 { font-size:clamp(2rem,3.5vw,3.8rem); }
.menu-note p { max-width:520px; color:rgba(255,255,255,.68); line-height:1.6; }
.back-home { color:#fff; border-color:rgba(255,255,255,.45); }
@media (max-width:900px) {
  .menu-page-nav { top:78px; overflow:auto; flex-wrap:nowrap; }
  .full-menu-list { grid-template-columns:1fr; }
  .full-menu-item:nth-child(n) { padding:22px 0; border-right:0; }
  .menu-note { align-items:flex-start; flex-direction:column; }
}
@media (max-width:560px) {
  .menu-page-hero { padding:145px 22px 70px; }
  .full-menu { padding:70px 22px 90px; }
  .full-menu-heading { grid-template-columns:1fr; gap:5px; }
  .full-menu-item { grid-template-columns:42px 1fr; }
  .menu-note { padding:30px 22px; }
}
