:root { --green:#465a39; --green-dark:#34442b; --yellow:#ffdb0c; --cream:#f7f4ea; --ink:#1d2419; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:#fff; color:var(--ink); font-family:var(--font-body),"Arial Rounded MT Bold",Arial,sans-serif; }
a { color:inherit; text-decoration:none; }
button,a { -webkit-tap-highlight-color:transparent; }
.announcement { position:absolute; z-index:30; top:0; left:0; width:100%; min-height:42px; display:flex; align-items:center; justify-content:center; gap:12px; padding:10px clamp(20px,4vw,64px); background:var(--yellow); color:var(--green-dark); text-align:center; box-shadow:0 5px 18px rgba(32,42,27,.12); }
.announcement strong { flex:0 0 auto; padding-right:12px; border-right:1px solid rgba(52,68,43,.28); font-size:9px; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
.announcement span { font-size:10px; font-weight:700; line-height:1.45; }
.has-announcement .site-header { top:42px; }
.vacation-modal-open { overflow:hidden; }
.vacation-modal { position:fixed; z-index:100; inset:0; display:grid; place-items:center; padding:24px; overflow:auto; background:rgba(22,29,18,.82); backdrop-filter:blur(9px); -webkit-backdrop-filter:blur(9px); animation:vacationBackdropIn .35s ease both; }
.vacation-modal[hidden] { display:none; }
.vacation-modal.is-closing { animation:vacationBackdropOut .25s ease both; }
.vacation-dialog { position:relative; width:min(1050px,100%); min-height:540px; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(380px,.85fr); overflow:hidden; border:1px solid rgba(255,255,255,.13); border-radius:12px; background:var(--green-dark); color:#fff; box-shadow:0 35px 100px rgba(8,13,6,.42); animation:vacationCardIn .45s cubic-bezier(.2,.8,.2,1) both; }
.vacation-modal.is-closing .vacation-dialog { animation:vacationCardOut .22s ease both; }
.vacation-image { position:relative; min-height:540px; overflow:hidden; background:var(--green); }
.vacation-image::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,transparent 70%,rgba(52,68,43,.28)); pointer-events:none; }
.vacation-image img { width:100%; height:100%; display:block; object-fit:cover; object-position:center top; }
.vacation-copy { position:relative; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:clamp(42px,5vw,72px); isolation:isolate; }
.vacation-copy::before { content:""; position:absolute; z-index:-1; right:-130px; bottom:-150px; width:330px; aspect-ratio:1; border:1px solid rgba(255,255,255,.09); border-radius:50%; }
.vacation-copy .section-kicker { color:#fff; }
.vacation-copy h2 { margin:0; font-family:var(--font-display),Georgia,serif; font-size:clamp(54px,5.3vw,78px); line-height:.82; letter-spacing:-.045em; }
.vacation-copy h2 em { color:var(--yellow); font-weight:500; }
.vacation-copy>p:not(.section-kicker) { margin:30px 0; color:rgba(255,255,255,.68); font-size:13px; line-height:1.75; }
.vacation-copy>p strong { color:#fff; }
.vacation-copy small { margin-top:20px; color:rgba(255,255,255,.43); font-size:8px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.vacation-continue { border:0; cursor:pointer; }
.vacation-close { position:absolute; z-index:4; top:18px; right:18px; width:42px; height:42px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.18); border-radius:50%; background:rgba(34,46,27,.72); color:#fff; font:300 25px/1 Arial,sans-serif; cursor:pointer; transition:background .2s,transform .2s; }
.vacation-close:hover { background:var(--yellow); color:var(--green-dark); transform:rotate(4deg); }
@keyframes vacationBackdropIn { from { opacity:0; } }
@keyframes vacationBackdropOut { to { opacity:0; } }
@keyframes vacationCardIn { from { opacity:0; transform:translateY(24px) scale(.98); } }
@keyframes vacationCardOut { to { opacity:0; transform:translateY(15px) scale(.985); } }
.site-header { position:absolute; z-index:20; top:0; left:0; width:100%; height:104px; display:flex; align-items:center; justify-content:space-between; padding:18px clamp(24px,4.5vw,76px); color:#fff; }
.brand { flex:0 0 auto; width:170px; height:70px; display:flex; align-items:center; justify-content:flex-start; overflow:visible; transform:none; }
.brand img { display:block; width:170px; height:auto; max-width:100%; object-fit:contain; transform:none; }
.nav { display:flex; align-items:center; gap:clamp(18px,2.2vw,38px); font-size:13px; font-weight:700; letter-spacing:.04em; }
.nav>a:not(.nav-cta) { padding:14px 0; position:relative; }
.nav>a:not(.nav-cta)::after { content:""; position:absolute; height:2px; left:0; right:100%; bottom:6px; background:var(--yellow); transition:right .25s ease; }
.nav>a:not(.nav-cta):hover::after { right:0; }
.nav-cta { background:var(--yellow); color:var(--green-dark); padding:14px 20px; border-radius:999px; transition:transform .2s ease,box-shadow .2s ease; }
.nav-cta:hover { transform:translateY(-2px); box-shadow:0 10px 24px rgba(0,0,0,.16); }
.menu-toggle { position:relative; display:none; width:42px; height:34px; border:0; border-radius:0; background:transparent; padding:0; place-items:center; }
.menu-toggle span { position:absolute; width:28px; height:2px; border-radius:2px; background:#fff; transition:transform .25s ease,opacity .2s ease; }
.menu-toggle span:first-child { transform:translateY(-8px); }
.menu-toggle span:nth-child(2) { transform:translateY(0); }
.menu-toggle span:last-child { transform:translateY(8px); }
.menu-toggle.active span:first-child { transform:rotate(45deg); }
.menu-toggle.active span:nth-child(2) { opacity:0; }
.menu-toggle.active span:last-child { transform:rotate(-45deg); }
.hero { min-height:min(860px,100svh); position:relative; overflow:hidden; display:grid; align-items:center; padding:132px clamp(24px,7.3vw,120px) 94px; background:radial-gradient(circle at 78% 38%,rgba(255,219,12,.13),transparent 30%),var(--green); color:#fff; isolation:isolate; }
.hero::before { content:""; position:absolute; z-index:-1; width:65vw; aspect-ratio:1; border:1px solid rgba(255,255,255,.08); border-radius:50%; right:-16vw; top:-20vw; }
.hero-glow { position:absolute; width:440px; height:440px; background:var(--yellow); filter:blur(170px); opacity:.1; right:12%; top:23%; }
.floating-lemon { position:absolute; z-index:3; top:158px; left:51%; width:62px; aspect-ratio:1; display:grid; place-items:center; pointer-events:none; user-select:none; filter:drop-shadow(0 14px 16px rgba(25,34,20,.25)); animation:lemonDrift 6.5s ease-in-out infinite; }
.floating-lemon::before { content:""; position:absolute; inset:-12px; border:1px solid rgba(255,219,12,.28); border-radius:50%; animation:lemonHalo 3.2s ease-in-out infinite; }
.floating-lemon img { display:block; width:100%; height:100%; object-fit:contain; transform:rotate(-9deg); }
@keyframes lemonDrift { 0%,100% { transform:translate3d(0,0,0) rotate(-4deg); } 35% { transform:translate3d(12px,-12px,0) rotate(5deg); } 70% { transform:translate3d(-7px,5px,0) rotate(-8deg); } }
@keyframes lemonHalo { 0%,100% { opacity:.32; transform:scale(.88); } 50% { opacity:.8; transform:scale(1.08); } }
.hero-copy { max-width:790px; z-index:2; }
.eyebrow { margin:0 0 24px; text-transform:uppercase; font-size:12px; letter-spacing:.2em; font-weight:800; display:flex; align-items:center; gap:12px; }
.eyebrow span { width:32px; height:2px; background:var(--yellow); }
.hero h1 { margin:0; max-width:760px; font-family:var(--font-display),Georgia,serif; font-size:clamp(58px,7.6vw,122px); line-height:.84; letter-spacing:-.055em; font-weight:700; }
.hero h1 em { color:var(--yellow); font-weight:500; }
.hero-intro { max-width:500px; margin:32px 0 0; font-size:clamp(16px,1.25vw,20px); line-height:1.65; color:rgba(255,255,255,.78); }
.hero-actions { margin-top:38px; display:flex; align-items:center; gap:30px; }
.button { display:inline-flex; align-items:center; gap:28px; padding:17px 23px; border-radius:3px; font-size:13px; font-weight:800; letter-spacing:.04em; }
.button-yellow { color:var(--green-dark); background:var(--yellow); box-shadow:0 16px 36px rgba(31,41,24,.18); }
.button span { transition:transform .2s ease; }
.button:hover span { transform:translate(3px,-3px); }
.text-link { font-size:13px; font-weight:800; display:inline-flex; gap:12px; align-items:center; }
.text-link span { color:var(--yellow); }
.hero-mark { position:absolute; z-index:1; right:clamp(-100px,3vw,50px); top:50%; transform:translateY(-44%); width:clamp(310px,37vw,590px); aspect-ratio:1; border:1px solid rgba(255,255,255,.13); border-radius:50%; display:grid; place-items:center; }
.hero-mark::before { content:""; position:absolute; inset:10%; border:1px dashed rgba(255,255,255,.16); border-radius:50%; animation:spin 25s linear infinite; }
.hero-mark img { width:58%; filter:drop-shadow(0 34px 28px rgba(30,40,23,.25)); transform:rotate(-10deg); animation:float 5s ease-in-out infinite; }
.orbit { position:absolute; font-family:var(--font-display),Georgia,serif; font-style:italic; color:rgba(255,255,255,.55); font-size:15px; }
.orbit-one { top:12%; right:19%; }.orbit-two { bottom:8%; right:28%; }.orbit-three { top:48%; left:-2%; }
.hero-footer { position:absolute; left:clamp(24px,7.3vw,120px); right:clamp(24px,4.5vw,76px); bottom:27px; display:flex; justify-content:space-between; color:rgba(255,255,255,.48); text-transform:uppercase; font-size:9px; font-weight:800; letter-spacing:.2em; }
@keyframes float { 50% { transform:rotate(-6deg) translateY(-13px); } }
@keyframes spin { to { transform:rotate(360deg); } }
.section-pad { padding:clamp(80px,10vw,150px) clamp(24px,7.3vw,120px); }
.section-kicker { margin:0 0 20px; color:var(--green); font-size:10px; font-weight:800; letter-spacing:.22em; text-transform:uppercase; }
.section-kicker::before { content:""; display:inline-block; width:24px; height:2px; margin:0 10px 3px 0; background:var(--yellow); }
.section-heading { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(260px,.6fr); gap:60px; align-items:end; margin-bottom:58px; }
.section-heading h2,.about h2,.reservation h2,.contact-section h2 { margin:0; font-family:var(--font-display),Georgia,serif; font-size:clamp(52px,6.2vw,92px); line-height:.88; letter-spacing:-.045em; font-weight:700; }
.section-heading h2 em,.about h2 em,.reservation h2 em,.contact-section h2 em { color:var(--green); font-weight:500; }
.section-heading>p { margin:0; max-width:450px; color:#687061; font-size:15px; line-height:1.75; }
.about { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(380px,.95fr); gap:clamp(50px,8vw,130px); align-items:center; background:var(--cream); }
.about-visual { position:relative; isolation:isolate; }
.about-slideshow { position:relative; z-index:1; width:100%; aspect-ratio:4/5; overflow:hidden; border-radius:220px 220px 12px 12px; background:#e3e0d4; box-shadow:0 30px 70px rgba(40,55,31,.13); }
.about-slide { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transform:scale(1.035); transition:opacity 1.2s ease,transform 5.2s ease; }
.about-slide.active { z-index:1; opacity:1; transform:scale(1); }
.image-note { position:absolute; z-index:6; right:-28px; bottom:38px; width:180px; aspect-ratio:1; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; background:var(--yellow); color:var(--green-dark); transform:rotate(-7deg); box-shadow:0 18px 35px rgba(53,62,32,.18); pointer-events:none; }
.image-note strong { font-family:var(--font-display),Georgia,serif; font-size:29px; line-height:1; }.image-note span { margin-top:4px; font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.about-copy>p:not(.section-kicker) { color:#606859; font-size:15px; line-height:1.8; }
.about-copy .lead { margin-top:30px; color:var(--ink)!important; font-size:18px!important; line-height:1.7!important; }
.about-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:42px; padding-top:28px; border-top:1px solid #d9d7cc; }
.about-stats div { display:flex; flex-direction:column; gap:6px; }.about-stats strong { color:var(--green); font-family:var(--font-display),Georgia,serif; font-size:24px; }.about-stats span { color:#7b8175; font-size:9px; line-height:1.4; text-transform:uppercase; letter-spacing:.1em; }
.menu-section { background:var(--green); color:#fff; overflow:hidden; }
.light-heading .section-kicker { color:#fff; }.light-heading h2 em { color:var(--yellow); }.light-heading>p { color:rgba(255,255,255,.64); }
.menu-tabs { display:flex; gap:6px; width:100%; overflow-x:auto; padding:0 0 18px; scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.25) transparent; }
.menu-tabs button { flex:0 0 auto; border:1px solid rgba(255,255,255,.22); border-radius:999px; background:transparent; color:#fff; padding:12px 18px; font:700 11px var(--font-body),sans-serif; letter-spacing:.03em; cursor:pointer; transition:.2s ease; }
.menu-tabs button:hover,.menu-tabs button.active { border-color:var(--yellow); background:var(--yellow); color:var(--green-dark); }
.menu-list { margin-top:20px; border-top:1px solid rgba(255,255,255,.17); }
.menu-item { min-height:114px; display:grid; grid-template-columns:48px 1fr auto; gap:26px; align-items:center; padding:23px 8px; border-bottom:1px solid rgba(255,255,255,.17); animation:fadeUp .42s ease both; }
@keyframes fadeUp { from { opacity:0; transform:translateY(10px); } }
.item-number { color:var(--yellow); font-size:10px; font-weight:800; letter-spacing:.12em; }.item-title { display:flex; align-items:center; gap:12px; }.item-title h3 { margin:0; font-family:var(--font-display),Georgia,serif; font-size:clamp(25px,2.3vw,36px); font-weight:600; }.menu-item p { margin:6px 0 0; color:rgba(255,255,255,.6); font-size:12px; line-height:1.55; }.price { font-family:var(--font-display),Georgia,serif; color:var(--yellow); font-size:24px; white-space:nowrap; }
.menu-note { margin-top:22px; padding:16px 18px; border-left:3px solid var(--yellow); background:rgba(255,255,255,.055); color:rgba(255,255,255,.68); font-size:10px; line-height:1.65; }.menu-note[hidden] { display:none; }.menu-note p { margin:0; }
.arrangements { background:#fff; }
.arrangement-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.arrangement-card { min-height:610px; display:flex; flex-direction:column; padding:clamp(30px,4vw,58px); border-radius:10px; overflow:hidden; position:relative; }
.arrangement-card::after { content:""; position:absolute; right:-110px; bottom:-140px; width:310px; aspect-ratio:1; border:1px solid currentColor; border-radius:50%; opacity:.08; }
.arrangement-light { background:var(--cream); color:var(--green-dark); }.arrangement-green { background:var(--green); color:#fff; }
.arrangement-top { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:54px; }.arrangement-top>span { display:grid; place-items:center; width:42px; height:42px; border:1px solid currentColor; border-radius:50%; font-size:10px; font-weight:800; }.arrangement-top small { padding:8px 11px; border-radius:999px; background:var(--yellow); color:var(--green-dark); font-size:8px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.arrangement-label { margin:0 0 13px!important; color:inherit!important; opacity:.6; font-size:9px!important; font-weight:800; letter-spacing:.17em; text-transform:uppercase; }.arrangement-card h3 { margin:0 0 20px; font-family:var(--font-display),Georgia,serif; font-size:clamp(43px,4vw,65px); line-height:.9; font-weight:650; letter-spacing:-.035em; }.arrangement-card>p { max-width:520px; margin:0; color:inherit; opacity:.7; font-size:13px; line-height:1.7; }.arrangement-card ul { display:grid; gap:11px; margin:28px 0 34px; padding:0; list-style:none; }.arrangement-card li { position:relative; padding-left:22px; font-size:11px; line-height:1.55; }.arrangement-card li::before { content:"✓"; position:absolute; left:0; color:var(--yellow); font-weight:900; }.arrangement-light li::before { color:var(--green); }.arrangement-card>a { z-index:1; display:flex; justify-content:space-between; gap:24px; margin-top:auto; padding-top:20px; border-top:1px solid currentColor; font-size:11px; font-weight:800; }.arrangement-card>a span { color:var(--yellow); }.arrangement-light>a span { color:var(--green); }
.arrangement-info { display:grid; grid-template-columns:repeat(4,1fr); margin-top:24px; border:1px solid #e2e4dc; border-radius:8px; background:#fff; }.arrangement-info>div { padding:24px; border-right:1px solid #e2e4dc; }.arrangement-info>div:last-child { border-right:0; }.arrangement-info span { display:block; margin-bottom:9px; color:var(--green); font-size:9px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }.arrangement-info p { margin:0; color:#747b6e; font-size:10px; line-height:1.6; }
.allergens { background:#fff; }
.allergen-teaser { display:grid; grid-template-columns:minmax(0,.8fr) minmax(420px,1.2fr); min-height:570px; overflow:hidden; border-radius:10px; background:var(--green-dark); color:#fff; box-shadow:0 28px 80px rgba(36,50,27,.12); }.allergen-teaser-copy { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:clamp(35px,5vw,76px); }.allergen-teaser-copy .section-kicker { color:#fff; }.allergen-teaser-copy h2 em { color:var(--yellow); }.allergen-teaser-copy>p:not(.section-kicker) { max-width:500px; margin:26px 0 34px; color:rgba(255,255,255,.65); font-size:13px; line-height:1.75; }.allergen-teaser-image { position:relative; overflow:hidden; background:#fff; }.allergen-teaser-image img { width:100%; height:100%; object-fit:cover; object-position:top left; opacity:.92; transition:transform .5s ease; }.allergen-teaser-image:hover img { transform:scale(1.025); }.allergen-teaser-image span { position:absolute; right:24px; bottom:24px; padding:12px 16px; border-radius:999px; background:var(--yellow); color:var(--green-dark); font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.1em; }
.allergen-teaser-preview { position:relative; min-width:0; display:flex; align-items:center; justify-content:center; overflow:hidden; padding:clamp(32px,4.5vw,68px); background:radial-gradient(circle at 85% 12%,rgba(255,219,12,.2),transparent 26%),#f4f3ed; color:var(--ink); }
.allergen-teaser-preview::before { content:""; position:absolute; width:330px; aspect-ratio:1; right:-190px; bottom:-190px; border:1px solid rgba(70,90,57,.12); border-radius:50%; }
.preview-matrix-card { position:relative; z-index:1; width:100%; max-width:720px; overflow:hidden; border:1px solid #dfe1da; border-radius:8px; background:#fff; box-shadow:0 24px 60px rgba(44,57,35,.14); transition:transform .35s ease,box-shadow .35s ease; }
.allergen-teaser-preview:hover .preview-matrix-card { transform:translateY(-5px); box-shadow:0 32px 75px rgba(44,57,35,.19); }
.preview-matrix-toolbar { min-height:72px; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 20px; }
.preview-matrix-toolbar strong { color:var(--green-dark); font-size:11px; }
.preview-matrix-toolbar span { display:flex; align-items:center; gap:6px; color:#7d8478; font-size:7px; white-space:nowrap; }
.preview-matrix-toolbar i { width:9px; height:9px; border-radius:2px; background:#cdf1d8; }.preview-matrix-toolbar i:last-of-type { margin-left:5px; background:#ffd0d5; }
.preview-matrix-scroll { overflow:hidden; }
.preview-matrix-card table { width:100%; border-collapse:separate; border-spacing:0; font-size:8px; }
.preview-matrix-card th,.preview-matrix-card td { height:51px; padding:9px; border-right:1px solid rgba(70,90,57,.09); border-bottom:1px solid rgba(70,90,57,.09); text-align:center; }
.preview-matrix-card thead th { background:var(--yellow); color:var(--green-dark); font-size:7px; font-weight:800; text-transform:uppercase; }
.preview-matrix-card thead th:first-child,.preview-matrix-card tbody th { width:32%; padding-left:16px; text-align:left; }
.preview-matrix-card tbody th { background:#fff; color:#3c4837; font-size:8px; }
.preview-matrix-card td { color:#33412f; font-weight:800; text-transform:uppercase; }.preview-matrix-card td.preview-no { background:#cdf1d8; }.preview-matrix-card td.preview-yes { background:#ffd0d5; color:#652c33; }
.preview-matrix-action { position:absolute; z-index:3; right:24px; bottom:24px; display:flex; align-items:center; gap:18px; padding:12px 15px; border-radius:999px; background:var(--green); color:#fff; box-shadow:0 10px 25px rgba(44,57,35,.18); font-size:8px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }.preview-matrix-action b { color:var(--yellow); font-size:12px; }
.allergen-card { overflow:hidden; border:1px solid #e4e5de; border-radius:8px; box-shadow:0 26px 80px rgba(36,50,27,.08); }
.allergen-document { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(310px,.75fr); align-items:center; background:var(--cream); }
.allergen-preview { position:relative; height:700px; overflow:hidden; background:#fff; display:block; }
.allergen-preview img { width:100%; height:100%; object-fit:contain; padding:24px; transition:transform .4s ease; }.allergen-preview:hover img { transform:scale(1.02); }.allergen-preview>span { position:absolute; left:24px; bottom:24px; padding:12px 16px; background:var(--green); color:#fff; border-radius:999px; font-size:10px; font-weight:800; }
.allergen-aside { padding:50px; }.allergen-aside>img { width:74px; height:74px; object-fit:contain; filter:drop-shadow(0 8px 15px rgba(70,90,57,.14)); }.allergen-aside h3 { margin:12px 0 16px; font-family:var(--font-display),Georgia,serif; color:var(--green-dark); font-size:46px; line-height:.95; }.allergen-aside>p:not(.section-kicker) { color:#697063; font-size:14px; line-height:1.75; }.allergen-key { display:flex; flex-wrap:wrap; gap:7px; margin:24px 0 30px; }.allergen-key span { padding:7px 10px; border-radius:999px; background:#fff; border:1px solid #dedfd7; color:#66705e; font-size:9px; font-weight:700; }.button-green { background:var(--green); color:#fff; box-shadow:none; }
.allergen-note { grid-column:1/-1; display:grid; grid-template-columns:42px 1fr auto; gap:18px; align-items:center; padding:20px 26px; background:#fff; border-top:1px solid #e4e5de; }.allergen-note>span { display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:var(--yellow); font-weight:900; }.allergen-note p { margin:0; color:#697063; font-size:11px; line-height:1.55; }.allergen-note p strong { display:block; color:var(--ink); font-size:12px; }.allergen-note a { color:var(--green); font-size:11px; font-weight:800; white-space:nowrap; }
.reservation { position:relative; display:grid; grid-template-columns:minmax(300px,.7fr) minmax(500px,1.3fr); gap:clamp(50px,8vw,130px); color:#fff; background:var(--green-dark); overflow:hidden; }
.reservation::before { content:""; position:absolute; width:420px; height:420px; left:-160px; bottom:-180px; border:1px solid rgba(255,255,255,.08); border-radius:50%; }.reservation .section-kicker { color:#fff; }.reservation h2 em { color:var(--yellow); }.reservation-intro>p:not(.section-kicker) { margin:28px 0; color:rgba(255,255,255,.65); font-size:14px; line-height:1.75; }.phone-reserve { display:flex; flex-direction:column; gap:5px; width:max-content; max-width:100%; margin:0 0 26px; padding:13px 18px; border:1px solid rgba(255,255,255,.18); border-radius:4px; }.phone-reserve span { color:rgba(255,255,255,.55); font-size:9px; letter-spacing:.14em; text-transform:uppercase; }.phone-reserve strong { color:var(--yellow); font-size:17px; }.opening-card { margin-top:30px; overflow:hidden; padding:0 22px; border:1px solid rgba(255,255,255,.13); border-radius:8px; background:rgba(255,255,255,.045); box-shadow:inset 0 1px 0 rgba(255,255,255,.04); }.hours-heading { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:18px 0 15px; border-bottom:1px solid rgba(255,255,255,.12); }.hours-heading>span:first-child { color:#fff; font-size:10px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }.hours-status { display:inline-flex; align-items:center; gap:7px; padding:7px 10px; border-radius:999px; background:rgba(255,219,12,.12); color:var(--yellow); font-size:8px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }.hours-status i { width:6px; height:6px; border-radius:50%; background:var(--yellow); box-shadow:0 0 0 4px rgba(255,219,12,.1); }.hour-row { display:grid; grid-template-columns:1fr auto; gap:18px; align-items:center; padding:13px 0; border-bottom:1px solid rgba(255,255,255,.08); font-size:11px; }.hour-row:last-child { border-bottom:0; }.hour-row span { color:rgba(255,255,255,.58); }.hour-row strong { color:#fff; font-weight:650; font-variant-numeric:tabular-nums; }
.reservation-form { position:relative; z-index:1; min-width:0; padding:38px; border-radius:8px; background:#fff; color:var(--ink); box-shadow:0 30px 80px rgba(0,0,0,.16); }.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }.form-grid>* { min-width:0; }.request-type-field { grid-column:1/-1; padding:15px; border:1px solid rgba(70,90,57,.12); border-radius:5px; background:#f5f5ef; transition:background .25s,box-shadow .25s; }.request-type-field.is-highlighted { background:#fff9cf; box-shadow:0 0 0 4px rgba(255,219,12,.16); }.reservation-form label { display:flex; min-width:0; flex-direction:column; gap:9px; color:var(--green-dark); font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.12em; }.reservation-form input,.reservation-form select,.reservation-form textarea { display:block; box-sizing:border-box; width:100%; min-width:0; max-width:100%; min-height:48px; padding:12px 13px; border:1px solid #dfe1da; border-radius:3px; outline:none; background:#fafaf7; color:var(--ink); font:500 13px var(--font-body),sans-serif; text-transform:none; letter-spacing:0; transition:border .2s,box-shadow .2s; }.reservation-form input[type="date"] { overflow:hidden; -webkit-appearance:none; appearance:none; }.request-type-field select { border-color:rgba(70,90,57,.3); background:#fff; color:var(--green-dark); font-weight:700; }.reservation-form textarea { resize:vertical; }.reservation-form input:focus,.reservation-form select:focus,.reservation-form textarea:focus { border-color:var(--green); box-shadow:0 0 0 3px rgba(70,90,57,.1); }.time-help { color:#858b80; font-size:8px; font-weight:600; line-height:1.45; letter-spacing:0; text-transform:none; }.full-field { margin-top:20px; }.form-honeypot { position:absolute!important; left:-9999px!important; width:1px!important; height:1px!important; overflow:hidden!important; }.form-status { display:none; margin:20px 0 0; padding:13px 15px; border-radius:4px; font-size:11px; font-weight:700; line-height:1.5; }.form-status.is-visible { display:block; }.form-status.is-success { background:#eef6e8; color:#38502d; }.form-status.is-error { background:#fff0ed; color:#8b3026; }.form-submit-row { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:24px; }.form-submit-row p { max-width:260px; margin:0; color:#7b8176; font-size:9px; line-height:1.5; }.reservation-form button { border:0; cursor:pointer; }.reservation-form button:disabled { cursor:wait; opacity:.65; }.reservation-success { min-height:440px; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding:52px; border-radius:8px; background:#fff; color:var(--ink); }.success-check { display:grid; place-items:center; width:58px; height:58px; margin-bottom:24px; border-radius:50%; background:var(--yellow); color:var(--green-dark); font-size:27px; font-weight:900; }.reservation-success h3 { margin:0 0 14px; font-family:var(--font-display),Georgia,serif; color:var(--green-dark); font-size:48px; }.reservation-success>p:not(.section-kicker) { max-width:530px; color:#687061; line-height:1.7; }.text-button { margin-top:24px; border:0; padding:0; background:none; color:var(--green); font-weight:800; cursor:pointer; }
.contact-section { display:grid; grid-template-columns:1fr 1fr; min-height:750px; }.contact-copy { background:var(--cream); }.contact-copy address { margin-top:50px; font-style:normal; }.contact-copy address>a { display:grid; grid-template-columns:32px 1fr 20px; gap:16px; align-items:center; padding:19px 0; border-bottom:1px solid #dadbd2; transition:padding .2s ease; }.contact-copy address>a:hover { padding-left:7px; }.contact-copy address>a>span { color:#a0a596; font-size:9px; }.contact-copy address div { color:var(--green-dark); font-size:13px; font-weight:650; line-height:1.55; }.contact-copy small { display:block; margin-bottom:4px; color:#8c9286; font-size:8px; font-weight:800; text-transform:uppercase; letter-spacing:.15em; }.contact-copy address b { color:var(--green); }
.map-card { position:relative; overflow:hidden; min-height:620px; background:#e9e7dd; }.map-card iframe { position:absolute; inset:0; width:100%; height:100%; border:0; filter:saturate(.78) contrast(.98); }.map-action { position:absolute; z-index:4; right:28px; bottom:28px; display:flex; gap:30px; padding:16px 20px; background:var(--yellow); color:var(--green-dark); box-shadow:0 14px 35px rgba(32,42,27,.16); font-size:11px; font-weight:800; }.map-action span { transition:transform .2s; }.map-action:hover span { transform:translate(3px,-3px); }
footer { padding:70px clamp(24px,7.3vw,120px) 28px; background:var(--green); color:#fff; text-align:center; }.footer-logo { display:inline-grid; width:190px; height:150px; place-items:center; overflow:hidden; }.footer-logo img { width:180px; height:180px; object-fit:contain; transform:scale(1.35); }footer>p { margin:0 0 50px; color:var(--yellow); font-family:var(--font-display),Georgia,serif; font-size:30px; font-style:italic; }.footer-bottom { display:flex; justify-content:space-between; gap:20px; padding-top:24px; border-top:1px solid rgba(255,255,255,.15); color:rgba(255,255,255,.5); font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.12em; }
.site-credit { margin-top:26px; padding-top:22px; border-top:1px solid rgba(255,255,255,.08); color:rgba(255,255,255,.34); font-size:8px; font-weight:600; letter-spacing:.11em; text-transform:uppercase; }.site-credit strong { color:rgba(255,255,255,.7); font-weight:800; }
@media (max-width:1180px) {
  .floating-lemon { left:auto; right:88px; top:155px; width:56px; }.menu-toggle { display:grid; z-index:22; }.nav { position:fixed; inset:0; background:var(--green-dark); flex-direction:column; justify-content:center; gap:10px; transform:translateX(100%); transition:transform .35s ease; font-size:24px; }.nav-open { transform:translateX(0); }.nav-cta { margin-top:18px; font-size:14px; }
}
@media (max-width:980px) {
  .vacation-dialog { grid-template-columns:1fr; width:min(620px,100%); }.vacation-image { min-height:290px; height:290px; }.vacation-copy { padding:40px; }.vacation-image::after { background:linear-gradient(0deg,rgba(52,68,43,.38),transparent 35%); }.allergen-teaser-preview { min-height:460px; }.menu-toggle { display:grid; z-index:22; }.nav { position:fixed; inset:0; background:var(--green-dark); flex-direction:column; justify-content:center; gap:10px; transform:translateX(100%); transition:transform .35s ease; font-size:24px; }.nav-open { transform:translateX(0); }.nav-cta { margin-top:18px; font-size:14px; }.hero { min-height:790px; align-items:start; }.hero-copy { margin-top:72px; }.hero h1 { font-size:clamp(58px,12vw,92px); }.hero-mark { opacity:.7; right:-150px; top:65%; width:440px; }
}
@media (max-width:620px) {
  .vacation-modal { align-items:start; padding:12px; }.vacation-dialog { min-height:0; border-radius:9px; }.vacation-image { height:230px; min-height:230px; }.vacation-copy { padding:30px 24px 28px; }.vacation-copy h2 { font-size:52px; }.vacation-copy>p:not(.section-kicker) { margin:22px 0; font-size:11px; }.vacation-copy small { margin-top:15px; }.vacation-close { top:12px; right:12px; width:38px; height:38px; }.announcement { min-height:58px; align-items:flex-start; gap:5px; flex-direction:column; padding:9px 20px 10px; text-align:left; }.announcement strong { padding:0; border:0; }.announcement span { font-size:9px; }.has-announcement .site-header { top:58px; }.site-header { height:86px; padding:8px 20px; }.brand { width:155px; height:74px; transform:none; }.brand img { width:155px; height:auto; }.floating-lemon { top:153px; right:24px; width:44px; opacity:.82; }.hero { min-height:800px; padding:146px 22px 78px; }.hero-copy { margin-top:34px; }.hero h1 { font-size:clamp(52px,16vw,74px); line-height:.89; }.hero-intro { max-width:90%; margin-top:26px; }.hero-actions { align-items:flex-start; flex-direction:column; gap:20px; margin-top:30px; }.hero-mark { width:315px; right:-155px; top:69%; opacity:.48; }.hero-footer span:last-child { display:none; }
}
@media (max-width:980px) {
  .about { grid-template-columns:1fr; }.about-visual { max-width:650px; }.about-slideshow { aspect-ratio:5/4; border-radius:160px 160px 12px 12px; }.about-copy { max-width:700px; }.section-heading { grid-template-columns:1fr; gap:24px; }.arrangement-info { grid-template-columns:repeat(2,1fr); }.arrangement-info>div:nth-child(2) { border-right:0; }.arrangement-info>div:nth-child(-n+2) { border-bottom:1px solid #e2e4dc; }.reservation { grid-template-columns:1fr; }.reservation-intro { max-width:620px; }.contact-section { grid-template-columns:1fr; }.map-card { min-height:560px; }.allergen-teaser { grid-template-columns:1fr; }.allergen-teaser-image { min-height:460px; }.allergen-document { grid-template-columns:1fr; }.allergen-preview { height:auto; max-height:720px; }.allergen-preview img { height:auto; }.allergen-aside { border-top:1px solid #e4e5de; }.allergen-note { grid-column:auto; }
}
@media (max-width:620px) {
  .section-pad { padding:76px 22px; }.section-heading h2,.about h2,.reservation h2,.contact-section h2 { font-size:clamp(48px,14vw,68px); }.section-heading { margin-bottom:38px; }.about { gap:60px; }.about-slideshow { aspect-ratio:4/5; border-radius:130px 130px 8px 8px; }.image-note { right:-7px; bottom:22px; width:130px; }.image-note strong { font-size:23px; }.about-stats { grid-template-columns:1fr; }.about-stats div { flex-direction:row; justify-content:space-between; align-items:baseline; }.menu-tabs { margin-right:-22px; width:calc(100% + 22px); }.menu-item { grid-template-columns:30px 1fr auto; gap:10px; padding:20px 0; }.item-title h3 { font-size:24px; }.price { font-size:19px; }.menu-note { margin-top:18px; }.arrangement-grid { grid-template-columns:1fr; }.arrangement-card { min-height:560px; padding:32px 24px; }.arrangement-top { margin-bottom:38px; }.arrangement-info { grid-template-columns:1fr; }.arrangement-info>div,.arrangement-info>div:nth-child(2) { border-right:0; border-bottom:1px solid #e2e4dc; }.arrangement-info>div:last-child { border-bottom:0; }.allergen-teaser-copy { padding:42px 24px; }.allergen-teaser-image { min-height:360px; }.allergen-preview img { padding:8px; }.allergen-preview>span { left:12px; bottom:12px; }.allergen-aside { padding:34px 24px; }.allergen-aside h3 { font-size:40px; }.allergen-note { grid-template-columns:38px 1fr; padding:18px; }.allergen-note a { grid-column:2; }.reservation-form { padding:28px 20px; }.form-grid { grid-template-columns:1fr; }.form-submit-row { align-items:flex-start; flex-direction:column; }.form-submit-row .button { width:100%; justify-content:space-between; }.reservation-success { min-height:420px; padding:34px 24px; }.reservation-success h3 { font-size:40px; }.contact-section { min-height:0; }.contact-copy address { margin-top:34px; }.map-card { min-height:470px; }.footer-bottom { flex-direction:column; }.footer-bottom a { margin-top:8px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }.about-slide { display:none; }.about-slide:first-child { display:block; opacity:1; transform:none; } }
