:root {
  --ink:#133b3d;
  --ink-deep:#0e2d2f;
  --mint:#d7e9d4;
  --paper:#f4f5ef;
  --paper-2:#e8eee4;
  --accent:#e05e31;
  --line:rgb(19 59 61 / .18);
  --radius:14px;
  --ease-out:cubic-bezier(.23,1,.32,1);
  --ease-in-out:cubic-bezier(.77,0,.175,1);
}

* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; overflow-x:hidden; color:var(--ink); background:var(--paper); font-family:Arial, Helvetica, sans-serif; font-size:16px; line-height:1.5; }
body.lightbox-open,body.mobile-nav-open { position:fixed; width:100%; overflow:hidden; }
a { color:inherit; }
img { display:block; max-width:100%; }
button,select { font:inherit; }
.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; z-index:50; top:-48px; left:12px; padding:10px 14px; color:#fff; border-radius:0 0 var(--radius) var(--radius); background:var(--accent); transition:top 160ms var(--ease-out); }
.skip-link:focus { top:0; }

.site-header { position:fixed; z-index:10; inset:0 0 auto; display:flex; height:70px; align-items:center; justify-content:space-between; gap:8px; padding:10px 4vw; color:#fff; border-bottom:1px solid rgb(255 255 255 / .28); background:rgb(8 28 29 / .78); box-shadow:0 0 0 transparent; backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); transition:background-color 220ms var(--ease-out),border-color 220ms var(--ease-out),box-shadow 220ms var(--ease-out); }
.site-header.is-scrolled { border-color:rgb(255 255 255 / .18); background:rgb(8 28 29 / .93); box-shadow:0 8px 22px rgb(8 28 29 / .2); }
.brand,.footer-brand { display:block; overflow:hidden; }
.brand { width:108px; flex:0 0 108px; padding:3px 4px; background:#fff; transform-origin:left center; transition:transform 220ms var(--ease-out); }
.site-header.is-scrolled .brand { transform:scale(.94); }
.brand img,.footer-brand img { width:100%; object-fit:contain; object-position:center; }
.brand img { height:38px; }
.desktop-nav { display:none; gap:22px; font-size:.88rem; font-weight:700; }
.desktop-nav a { position:relative; text-decoration:none; }
.text-link::after { position:absolute; right:0; bottom:-5px; left:0; height:2px; content:""; background:currentColor; transform:scaleX(.72); transform-origin:left center; transition:transform 180ms var(--ease-out); }
.header-actions { display:flex; min-width:0; flex:0 0 auto; align-items:center; gap:6px; }
.language-control { position:relative; display:block; transform-origin:right top; transition:transform 160ms var(--ease-out); }
.language-trigger { display:flex; min-height:38px; width:47px; align-items:center; justify-content:center; gap:5px; padding:0; color:#fff; border:1px solid rgb(255 255 255 / .55); border-radius:0; background:rgb(8 28 29 / .22); font-weight:700; cursor:pointer; transition:background-color 160ms var(--ease-out),color 160ms var(--ease-out),transform 130ms var(--ease-out); }
.language-trigger:active { transform:scale(.97); }
.language-chevron { width:6px; height:6px; border-right:1px solid currentColor; border-bottom:1px solid currentColor; transform:translateY(-2px) rotate(45deg); transition:transform 180ms var(--ease-out); }
.language-control.is-open .language-chevron { transform:translateY(1px) rotate(225deg); }
.language-menu { position:absolute; top:calc(100% + 8px); right:0; z-index:22; display:grid; width:178px; padding:6px; border:1px solid rgb(19 59 61 / .16); border-radius:10px; background:#fff; box-shadow:0 14px 30px rgb(8 28 29 / .18); opacity:0; pointer-events:none; transform:translateY(-6px) scale(.98); transform-origin:top right; transition:opacity 180ms var(--ease-out),transform 200ms var(--ease-out),visibility 0s linear 200ms; visibility:hidden; }
.language-control.is-open .language-menu { opacity:1; pointer-events:auto; transform:translateY(0) scale(1); transition-delay:0s; visibility:visible; }
.language-menu button,.mobile-language-list button { display:flex; min-height:38px; align-items:center; justify-content:space-between; gap:12px; padding:0 10px; color:var(--ink); border:0; border-radius:6px; background:transparent; font-weight:700; text-align:left; cursor:pointer; transition:background-color 150ms var(--ease-out),color 150ms var(--ease-out),transform 130ms var(--ease-out); }
.language-menu button small,.mobile-language-list button small { color:rgb(19 59 61 / .55); font-size:.68rem; font-weight:800; letter-spacing:.08em; }
.language-menu button[aria-selected="true"],.mobile-language-list button[aria-selected="true"] { color:var(--accent); background:rgb(224 94 49 / .09); }
.header-social { display:flex; gap:5px; }
.header-social a { display:grid; width:38px; min-height:38px; place-items:center; color:#fff; border:1px solid rgb(255 255 255 / .55); line-height:1; text-decoration:none; transition:background-color 160ms var(--ease-out),color 160ms var(--ease-out),transform 130ms var(--ease-out); }
.social-mark { position:relative; display:inline-grid; width:18px; height:18px; place-items:center; color:currentColor; }
.instagram-mark { border:1.8px solid currentColor; border-radius:5px; }
.instagram-mark::before { width:6px; height:6px; border:1.6px solid currentColor; border-radius:50%; content:""; }
.instagram-mark::after { position:absolute; top:2.5px; right:2.5px; width:2.7px; height:2.7px; border-radius:50%; background:currentColor; content:""; }
.facebook-mark { width:auto; height:auto; font-family:Arial, Helvetica, sans-serif; font-size:22px; font-weight:900; line-height:1; transform:translateY(1px); }
.menu-trigger { display:inline-flex; min-height:38px; align-items:center; padding:0 9px; color:#fff; border:1px solid rgb(255 255 255 / .55); border-radius:0; background:rgb(8 28 29 / .18); font-size:.78rem; font-weight:700; text-decoration:none; white-space:nowrap; transition:background-color 160ms var(--ease-out),color 160ms var(--ease-out),transform 130ms var(--ease-out); }
.mobile-nav-toggle { display:grid; width:38px; height:38px; padding:9px; place-content:center; gap:4px; color:#fff; border:1px solid rgb(255 255 255 / .55); border-radius:0; background:rgb(8 28 29 / .18); cursor:pointer; transition:background-color 160ms var(--ease-out),transform 130ms var(--ease-out); }
.mobile-nav-toggle span { display:block; width:16px; height:1px; background:currentColor; }
.mobile-nav,.mobile-language,.mobile-nav-scrim { display:none; }

.hero { position:relative; display:flex; min-height:100svh; align-items:flex-end; overflow:hidden; background:var(--ink); isolation:isolate; }
.hero::after { position:absolute; z-index:1; inset:0; content:""; pointer-events:none; background:linear-gradient(90deg,rgb(8 28 29 / .26) 0%,rgb(8 28 29 / .12) 34%,transparent 62%),linear-gradient(0deg,rgb(8 28 29 / .12) 0%,transparent 44%); }
.hero-copy { position:relative; z-index:2; display:flex; width:100%; max-width:1180px; flex-direction:column; justify-content:flex-end; margin:0 auto; padding:148px 7vw clamp(64px,9vw,118px); color:#fff; text-shadow:0 2px 14px rgb(8 28 29 / .58); }
.hero-actions { text-shadow:none; }
.eyebrow { margin:0 0 14px; color:#fff; font-size:.72rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { letter-spacing:-.04em; line-height:1; text-wrap:balance; }
h1 { max-width:10ch; margin-bottom:20px; font-size:clamp(2.65rem,7vw,5.4rem); overflow-wrap:break-word; }
h2 { max-width:16ch; margin-bottom:18px; font-size:clamp(2.15rem,8vw,4.4rem); }
h3 { margin-bottom:9px; font-size:1.4rem; }
.hero-text { max-width:32rem; margin-bottom:25px; font-size:1.05rem; text-wrap:pretty; }
.hero-actions,.visit-actions { display:flex; flex-wrap:wrap; gap:10px; }
.button { display:inline-flex; min-height:48px; align-items:center; justify-content:center; padding:0 17px; border:1px solid var(--ink); border-radius:0; font-weight:800; text-decoration:none; transition:transform 140ms var(--ease-out),background-color 180ms var(--ease-out),border-color 180ms var(--ease-out),color 180ms var(--ease-out); }
.button:active,.menu-trigger:active,.header-social a:active,.mobile-nav-toggle:active,.mobile-nav-close:active { transform:scale(.97); }
.button-primary { color:#fff; background:var(--ink); }
.button-secondary { background:transparent; }
.hero .button-primary { color:var(--ink); border-color:var(--accent); background:var(--accent); }
.hero .button-secondary { color:#fff; border-color:rgb(255 255 255 / .75); }
.hero-image { position:absolute; z-index:0; inset:0; width:100%; margin:0; background:var(--ink); }
.hero-image img { width:100%; height:100%; object-fit:cover; object-position:center 40%; filter:none; transition:transform 650ms var(--ease-out),clip-path 650ms var(--ease-out); }

.section { padding:72px 7vw; }
.intro { display:grid; gap:32px; background:var(--paper); }
.intro-copy .eyebrow { margin-bottom:18px; }
.intro-copy h2 { margin-bottom:28px; }
.intro-copy p:not(.eyebrow) { max-width:37rem; margin-bottom:22px; font-size:1.3rem; line-height:1.65; }
.intro-copy .text-link { margin-top:3px; }
.intro-image { margin:0; background:var(--paper-2); }
.intro-image img { width:100%; height:auto; object-fit:contain; }
.text-link { position:relative; display:inline-block; margin-top:9px; color:var(--accent); font-weight:800; text-decoration:none; transition:color 160ms var(--ease-out),transform 160ms var(--ease-out); }
.text-link::after { bottom:-4px; }
.menu { background:var(--ink); color:#f8fbf2; }
.menu .eyebrow { color:#b4d8bc; }
.menu h2 { max-width:14ch; }
.section-heading { max-width:42rem; }
.section-heading > p:last-child { max-width:34rem; }
.menu-grid { display:grid; gap:0; margin-top:40px; border-top:1px solid rgb(255 255 255 / .25); }
.menu-item { display:block; min-height:152px; padding:23px 0 22px; border-bottom:1px solid rgb(255 255 255 / .25); }
.menu-number { display:block; padding-top:0; color:#b4d8bc; font-size:.75rem; font-weight:700; }
.menu-item h3 { margin:8px 0 22px; font-size:1.76rem; }
.menu-product { display:flex; align-items:baseline; justify-content:space-between; gap:12px; padding:14px 0; border-top:1px solid rgb(255 255 255 / .25); color:#e2ece5; font-size:1.18rem; }
.menu-product strong { max-width:75%; color:#f8fbf2; }
.menu-product span { flex:none; font-weight:800; }
.gallery { background:var(--paper-2); }
.gallery-heading { margin-bottom:33px; }
.gallery-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:14px; }
.gallery-item { aspect-ratio:4 / 5; padding:0; overflow:hidden; border:0; border-radius:var(--radius); background:var(--mint); cursor:zoom-in; transition:transform 140ms var(--ease-out); }
.gallery-item:active { transform:scale(.97); }
.gallery-item img { width:100%; height:100%; object-fit:cover; object-position:50% 50%; transition:transform 280ms var(--ease-out),filter 220ms var(--ease-out); }
.gallery-item.focus-carrot img { object-position:22% 50%; }
.gallery-item.focus-strawberry img { object-position:20% 50%; }
.gallery-item.focus-chocolate img { object-position:50% 54%; }
.visit { display:grid; gap:34px; padding-bottom:0; background:var(--mint); }
.visit-copy { padding-bottom:62px; }
address { margin:23px 0 12px; font-size:1.1rem; font-style:normal; font-weight:700; }
.telephone { display:inline-block; margin-bottom:24px; font-size:1.1rem; font-weight:800; }
.opening-hours { margin:-2px 0 26px; }
.opening-hours p { margin:0; font-size:1rem; font-weight:700; line-height:1.55; }
.opening-hours .hours-label { margin-bottom:4px; color:rgb(19 59 61 / .72); font-size:.74rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.map-frame { min-height:440px; margin:0 -7vw; border-top:1px solid var(--line); }
.map-frame iframe { width:100%; height:100%; min-height:440px; border:0; filter:saturate(.74) contrast(.95); }
.site-footer { display:grid; gap:27px; padding:42px 7vw 48px; color:#f8fbf2; background:var(--ink); }
.footer-brand { width:190px; flex:0 0 190px; padding:6px; background:#fff; }
.footer-brand img { height:58px; }
.site-footer p { margin-bottom:6px; }
.site-footer a { font-weight:700; }
.footer-links { display:flex; gap:18px; flex-wrap:wrap; }
.footer-social-link { display:inline-flex; align-items:center; gap:6px; text-decoration:none; }
.footer-social-link .social-mark { width:14px; height:14px; }
.footer-social-link .instagram-mark { border-width:1.5px; border-radius:4px; }
.footer-social-link .instagram-mark::before { width:4px; height:4px; border-width:1px; }
.footer-social-link .instagram-mark::after { top:2px; right:2px; width:2px; height:2px; }
.footer-social-link .facebook-mark { font-size:17px; }

.reviews { overflow:hidden; background:var(--paper); }
.reviews-carousel { display:block; width:100%; max-width:none; margin:38px 0 0; }
.review-stage { position:relative; height:324px; isolation:isolate; touch-action:pan-y; outline:none; }
.review-card { position:absolute; top:0; left:50%; display:flex; width:min(100%,620px); min-height:286px; flex-direction:column; padding:32px 40px; color:var(--ink); border:1px solid var(--line); border-radius:16px; background:#fff; box-shadow:0 8px 18px rgb(19 59 61 / .12); transition:transform 280ms var(--ease-in-out),opacity 160ms var(--ease-out); }
.review-card[data-position="current"] { z-index:3; transform:translateX(-50%); opacity:1; }
.review-card[data-position="previous"] { z-index:1; transform:translateX(calc(-50% - 320px)) translateY(14px) scale(.84); opacity:.48; cursor:pointer; }
.review-card[data-position="next"] { z-index:1; transform:translateX(calc(-50% + 320px)) translateY(14px) scale(.84); opacity:.48; cursor:pointer; }
.review-card[data-position="previous"]:active,.review-card[data-position="next"]:active { opacity:.8; }
.review-stage.is-switching .review-card { opacity:0; }
.review-card-header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.review-person { display:flex; min-height:56px; min-width:0; align-items:center; gap:14px; }
.review-avatar { width:56px; height:56px; flex:0 0 56px; object-fit:cover; border:1px solid rgb(19 59 61 / .16); border-radius:50%; background:var(--paper-2); }
.review-name { margin:0; font-size:1.18rem; font-weight:800; }
.review-source { display:block; margin:4px 0 0; color:rgb(19 59 61 / .72); font-size:.86rem; }
.review-source[href] { text-decoration-color:transparent; text-underline-offset:3px; transition:color 160ms var(--ease-out),text-decoration-color 160ms var(--ease-out); }
.review-stage:focus-visible { outline:3px solid var(--accent); outline-offset:7px; }
.review-stars { margin:0; color:var(--accent); font-size:.92rem; letter-spacing:.06em; white-space:nowrap; }
.review-card blockquote { max-width:42ch; margin:25px 0 0; font-size:clamp(1.15rem,2.15vw,1.42rem); font-weight:650; line-height:1.42; text-wrap:pretty; }

.lightbox { position:fixed; z-index:30; inset:0; display:grid; grid-template-columns:46px minmax(0,1fr) 46px; align-items:center; padding:20px 9px; color:#fff; background:rgb(9 28 29 / .96); opacity:0; visibility:hidden; transition:opacity 260ms var(--ease-out),visibility 0s linear 260ms; }
.lightbox[hidden] { display:grid; pointer-events:none; }
.lightbox.is-open { pointer-events:auto; opacity:1; visibility:visible; transition-delay:0s; }
.lightbox figure { display:grid; max-height:88dvh; margin:0; place-items:center; opacity:0; transform:translateY(12px) scale(.97); transition:opacity 260ms var(--ease-out),transform 320ms var(--ease-out); }
.lightbox.is-open figure { opacity:1; transform:translateY(0) scale(1); }
.lightbox figure.is-switching { opacity:0; transform:translateX(var(--lightbox-shift,0)) scale(.985); }
.lightbox img { max-width:100%; max-height:80dvh; object-fit:contain; }
.lightbox figcaption { padding-top:10px; font-size:.9rem; }
.lightbox button { width:40px; height:52px; color:#fff; border:0; background:transparent; font-size:2.7rem; cursor:pointer; transition:opacity 150ms var(--ease-out),transform 130ms var(--ease-out); }
.lightbox button:active { transform:scale(.97); }
.lightbox-close { position:absolute; top:max(10px,env(safe-area-inset-top)); right:max(12px,env(safe-area-inset-right)); font-size:2rem!important; }
.lightbox button:focus-visible,.gallery-item:focus-visible,a:focus-visible,.language-trigger:focus-visible,.language-menu button:focus-visible,.mobile-nav-toggle:focus-visible,.mobile-nav-close:focus-visible,.mobile-language-close:focus-visible,.mobile-language-list button:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }

html.motion-ready:not(.hero-ready) .hero-image img { clip-path:inset(0 0 8% 0); transform:scale(1.035); }
html.motion-ready:not(.hero-ready) .hero-copy > * { opacity:0; transform:translateY(14px); }
html.motion-ready .hero-copy > * { transition:opacity 440ms var(--ease-out),transform 440ms var(--ease-out); }
html.motion-ready .hero-copy > :nth-child(1) { transition-delay:0ms; }
html.motion-ready .hero-copy > :nth-child(2) { transition-delay:60ms; }
html.motion-ready .hero-copy > :nth-child(3) { transition-delay:120ms; }
html.motion-ready .hero-copy > :nth-child(4) { transition-delay:180ms; }
html.motion-ready [data-reveal] { opacity:1; transform:none; clip-path:none; }
html.motion-ready [data-reveal="rise"].is-revealed { animation:section-rise-in 360ms var(--ease-out) both; }
html.motion-ready [data-reveal="clip"].is-revealed { animation:section-clip-in 400ms var(--ease-out) both; }
@keyframes section-rise-in { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:translateY(0); } }
@keyframes section-clip-in { from { opacity:0; clip-path:inset(0 0 12% 0); } to { opacity:1; clip-path:inset(0 0 0 0); } }

@media (hover:hover) and (pointer:fine) {
  .button:hover { transform:translateY(-2px); }
  .button-primary:hover { background:var(--ink-deep); }
  .hero .button-primary:hover { background:#f06d3f; }
  .text-link:hover::after { transform:scaleX(1); }
  .text-link:hover { color:#bd4823; transform:translateX(2px); }
  .header-social a:hover,.menu-trigger:hover,.mobile-nav-toggle:hover,.language-trigger:hover { color:var(--ink); background:#fff; }
  .language-menu button:hover { color:var(--accent); background:rgb(224 94 49 / .09); }
  .language-control:hover { transform:translateY(-1px); }
  .gallery-item:hover img { transform:scale(1.025); filter:brightness(1.04); }
  .review-card[data-position="previous"]:hover,.review-card[data-position="next"]:hover { opacity:.68; }
  .review-source[href]:hover { color:var(--ink); text-decoration-color:currentColor; }
  .lightbox button:hover { opacity:.72; transform:scale(1.04); }
}

@media (max-width:759px) {
  .header-actions { position:absolute; top:13px; right:4vw; display:flex; margin-left:0; }
  .language-control { display:block; }
  .language-trigger { min-height:44px; }
  .mobile-nav-toggle { display:grid; width:44px; height:44px; }
  .header-social { display:none; }
  .mobile-nav-scrim { position:fixed; z-index:19; inset:0; display:block; pointer-events:none; background:rgb(8 28 29 / .28); opacity:0; transition:opacity 200ms var(--ease-out),visibility 0s linear 200ms; visibility:hidden; }
  .mobile-nav-scrim.is-open { pointer-events:auto; opacity:1; visibility:visible; transition-delay:0s; }
  .language-menu { display:none; }
  .mobile-nav,.mobile-language { position:fixed; z-index:20; top:0; right:0; bottom:0; display:flex; width:min(84vw,340px); flex-direction:column; padding:calc(98px + env(safe-area-inset-top)) 34px 34px; color:#f8fbf2; background:var(--ink); box-shadow:-16px 0 38px rgb(8 28 29 / .24); transform:translateX(100%); transition:transform 300ms var(--ease-out),visibility 0s linear 300ms; visibility:hidden; }
  .mobile-nav.is-open,.mobile-language.is-open { transform:translateX(0); visibility:visible; transition-delay:0s; }
  .mobile-nav.is-closing,.mobile-language.is-closing { transition-duration:180ms,0s; transition-delay:0s,180ms; }
  .mobile-nav a { padding:16px 0; border-top:1px solid rgb(255 255 255 / .18); font-size:clamp(1.35rem,7vw,2rem); font-weight:800; text-decoration:none; opacity:0; transform:translateX(12px); transition:opacity 180ms var(--ease-out),transform 220ms var(--ease-out),color 160ms var(--ease-out); }
  .mobile-nav.is-open a { opacity:1; transform:translateX(0); }
  .mobile-nav.is-open a:nth-of-type(1) { transition-delay:50ms; }
  .mobile-nav.is-open a:nth-of-type(2) { transition-delay:90ms; }
  .mobile-nav.is-open a:nth-of-type(3) { transition-delay:130ms; }
  .mobile-nav-close,.mobile-language-close { position:absolute; top:max(14px,env(safe-area-inset-top)); right:22px; display:grid; width:44px; height:44px; padding:0; place-items:center; color:#fff; border:1px solid rgb(255 255 255 / .5); background:transparent; font-size:2rem; line-height:1; cursor:pointer; transition:transform 130ms var(--ease-out),background-color 160ms var(--ease-out),color 160ms var(--ease-out); }
  .mobile-nav-close span,.mobile-language-close span { transform:translateY(-1px); }
  .mobile-language-title { margin:0 0 24px; color:#b4d8bc; font-size:.76rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
  .mobile-language-list { display:grid; border-top:1px solid rgb(255 255 255 / .18); }
  .mobile-language-list button { min-height:52px; padding:0; color:#f8fbf2; border-radius:0; border-bottom:1px solid rgb(255 255 255 / .18); font-size:1.2rem; opacity:0; transform:translateX(12px); transition:opacity 180ms var(--ease-out),transform 220ms var(--ease-out),color 160ms var(--ease-out); }
  .mobile-language.is-open .mobile-language-list button { opacity:1; transform:translateX(0); }
  .mobile-language.is-open .mobile-language-list button:nth-child(1) { transition-delay:50ms; }
  .mobile-language.is-open .mobile-language-list button:nth-child(2) { transition-delay:75ms; }
  .mobile-language.is-open .mobile-language-list button:nth-child(3) { transition-delay:100ms; }
  .mobile-language.is-open .mobile-language-list button:nth-child(4) { transition-delay:125ms; }
  .mobile-language.is-open .mobile-language-list button:nth-child(5) { transition-delay:150ms; }
  .mobile-language.is-open .mobile-language-list button:nth-child(6) { transition-delay:175ms; }
  .mobile-language.is-open .mobile-language-list button:nth-child(7) { transition-delay:200ms; }
  .mobile-language.is-open .mobile-language-list button:nth-child(8) { transition-delay:225ms; }
  .mobile-language-list button small { color:rgb(248 251 242 / .56); }
  .mobile-language-list button[aria-selected="true"] { color:#fff; background:transparent; }
  .mobile-language-list button[aria-selected="true"] small { color:var(--accent); }
}

@media (min-width:600px) { .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; } }
@media (min-width:760px) {
  .site-header { padding-inline:4.5vw; }
  .header-actions { position:static; }
  .desktop-nav { display:flex; }
  .mobile-nav-toggle { display:none; }
  .hero-copy { padding-inline:0; }
  .section { padding:104px 7vw; }
  .intro { grid-template-columns:minmax(0,1fr) minmax(330px,.78fr); align-items:center; gap:8vw; }
  .intro-image { align-self:stretch; }
  .intro-image img { height:100%; }
  .menu-grid { grid-template-columns:repeat(3,1fr); }
  .menu-item { min-height:190px; padding:25px 24px 22px 0; }
  .menu-item + .menu-item { padding-left:24px; border-left:1px solid rgb(255 255 255 / .25); }
  .visit { grid-template-columns:.82fr 1.18fr; gap:6vw; padding:104px 7vw; }
  .visit-copy { padding-bottom:0; }
  .map-frame { min-height:530px; margin:0; }
  .map-frame iframe { min-height:530px; }
  .site-footer { grid-template-columns:1fr 1.2fr auto; align-items:center; padding:50px 7vw; }
}
@media (min-width:1024px) { .gallery-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:599px) {
  .review-stage { height:220px; }
  .review-card { width:100%; min-height:0; padding:22px 20px; border-radius:14px; }
  .review-card[data-position="previous"],.review-card[data-position="next"] { display:none; }
  .review-person { min-height:52px; gap:12px; }
  .review-avatar { width:52px; height:52px; flex-basis:52px; }
  .review-name { font-size:1.1rem; }
  .review-card blockquote { max-width:31ch; margin-top:20px; font-size:1rem; line-height:1.34; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  html.motion-ready:not(.hero-ready) .hero-image img,html.motion-ready:not(.hero-ready) .hero-copy > *,html.motion-ready [data-reveal] { opacity:1; clip-path:none; transform:none; }
  html.motion-ready [data-reveal].is-revealed { animation:none!important; }
  .hero-image img,.hero-copy > *,html.motion-ready [data-reveal],.review-card,.lightbox,.lightbox figure,.mobile-nav,.mobile-language,.mobile-nav-scrim,.mobile-nav a,.mobile-language-list button,.language-menu { transition-duration:120ms!important; }
}
