/* Shared essentials, followed by ten deliberately different art directions. */
:root { --paper:#f1eee6; --ink:#34352d; --muted:#68695f; --accent:#5b6549; --line:#d1cfc0; --display:'Cormorant Garamond',Georgia,serif; --body:'DM Sans',Arial,sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:25px; }
body { margin:0; color:var(--ink); background:var(--paper); font:400 15px/1.7 var(--body); -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
button,input,select { font:inherit; }
button { cursor:pointer; }
img { display:block; width:100%; max-width:100%; }
p,figure { margin:0; }
h1,h2,h3 { margin:0; font-family:var(--display); font-weight:400; }
h1 { font-size:clamp(68px,6.7vw,112px); line-height:.98; letter-spacing:-.045em; }
h1 span { display:block; }
h2 { font-size:clamp(43px,4vw,66px); line-height:1.08; letter-spacing:-.025em; }
::selection { background:var(--accent); color:var(--paper); }
button,a,input,select { outline-offset:5px; }
:focus-visible { outline:2px solid var(--accent); }
[hidden] { display:none!important; }
.c-wrap { width:88%; max-width:1440px; margin-inline:auto; }
.skip-link { position:absolute; left:16px; top:10px; transform:translateY(-150%); background:var(--paper); color:var(--ink); z-index:50; padding:12px 20px; }
.skip-link:focus { transform:none; }
.concept-toolbar { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:12px 6%; background:#191d18; color:#f3f0e7; font:400 11px/1.5 var(--body); }
.concept-toolbar span { color:#c6c9bf; }
.concept-toolbar a { padding:3px 0; }
.concept-toolbar a:hover { text-decoration:underline; text-underline-offset:4px; }
.business-header { display:flex; justify-content:space-between; align-items:center; gap:35px; min-height:116px; border-bottom:1px solid var(--line); }
.business-brand { display:inline-flex; flex-direction:column; gap:7px; text-align:center; line-height:1; }
.business-brand > span { font-family:var(--display); font-size:42px; letter-spacing:-.03em; }
.business-brand small { font:500 8px/1.4 var(--body); letter-spacing:.24em; }
.business-header nav { display:flex; align-items:center; gap:35px; font-size:12px; }
.business-header nav a { padding:15px 0; }
.business-header nav a:hover { text-decoration:underline; text-underline-offset:5px; }
.business-header .nav-book { border-bottom:1px solid var(--ink); display:flex; gap:25px; }
.kicker { font:500 10px/1.6 var(--body); text-transform:uppercase; letter-spacing:.2em; margin-bottom:22px; color:var(--muted); }
.hero-intro { max-width:380px; font-size:15px; line-height:1.8; margin-top:27px; color:var(--muted); }
.hero-actions { display:flex; gap:20px 30px; flex-wrap:wrap; align-items:center; margin-top:30px; }
.c-button { display:inline-flex; align-items:center; justify-content:space-between; gap:25px; min-height:52px; border:1px solid var(--accent); padding:16px 22px; background:var(--accent); color:var(--paper); font:500 12px/1.5 var(--body); border-radius:0; transition:filter .2s; }
.c-button:hover { filter:brightness(1.12); }
.c-text-link { font:500 12px/1.5 var(--body); padding:11px 0; border-bottom:1px solid currentColor; }
.c-text-link:hover { opacity:.75; }
.hero-photo { overflow:hidden; }
.hero-photo img { height:100%; object-fit:cover; }
.hero-detail { font:400 10px/1.6 var(--body); letter-spacing:.12em; text-transform:uppercase; }
.story-section { display:grid; grid-template-columns:1.1fr 1fr; gap:12%; padding-block:115px; align-items:center; }
.story-mark { display:block; font:400 42px/1 var(--display); margin-bottom:30px; color:var(--accent); }
.story-heading h2 { max-width:600px; }
.story-copy p { color:var(--muted); max-width:550px; margin-bottom:22px; font-size:16px; line-height:1.9; }
.story-copy .c-text-link { display:inline-block; margin-top:6px; }
.menu-section { background:var(--ink); color:var(--paper); padding-block:100px; }
.menu-section .kicker { color:inherit; opacity:.7; }
.section-intro { max-width:740px; }
.section-intro > p:last-child { color:inherit; opacity:.8; margin-top:24px; font-size:15px; }
.menu-tabs { display:flex; flex-wrap:wrap; gap:12px; padding-block:35px; }
.menu-tabs button { color:inherit; background:transparent; border:1px solid currentColor; padding:12px 22px; min-height:44px; font-size:12px; }
.menu-tabs button[aria-pressed=true] { background:var(--paper); color:var(--ink); border-color:var(--paper); }
.menu-section :focus-visible { outline-color:var(--paper); }
.dish-list { display:grid; grid-template-columns:1fr 1fr; gap:0 8%; padding:0; margin:0; list-style:none; }
.dish-list li { padding:26px 0; border-top:1px solid color-mix(in srgb,var(--paper) 30%,transparent); display:flex; justify-content:space-between; gap:25px; align-items:start; }
.dish-list h3 { font-size:28px; line-height:1.15; margin-bottom:8px; letter-spacing:-.015em; }
.dish-list p { opacity:.75; font-size:13px; max-width:390px; }
.dish-price { font-size:13px; white-space:nowrap; padding-top:4px; }
.menu-note { font-size:11px; opacity:.75; margin-top:28px; max-width:640px; }
.booking-section { padding-block:105px; border-top:1px solid var(--line); }
.booking-layout { display:grid; grid-template-columns:1fr 1fr; gap:12%; }
.booking-layout h2 { max-width:550px; }
.booking-intro { font-size:15px; color:var(--muted); max-width:430px; margin-top:24px; }
.opening-hours { margin-top:40px; }
.opening-hours h3 { font:500 12px/1.5 var(--body); margin-bottom:15px; }
.opening-hours ul { list-style:none; margin:0; padding:0; color:var(--muted); font-size:13px; line-height:2; }
.demo-booking { padding:35px; border:1px solid var(--line); align-self:start; }
.form-kicker { font:500 11px/1.5 var(--body); text-transform:uppercase; letter-spacing:.15em; }
.demo-help { font-size:12px; color:var(--muted); margin-block:10px 24px; }
.demo-booking label { display:flex; flex-direction:column; gap:8px; font-size:12px; margin-bottom:19px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
input,select { min-width:0; width:100%; min-height:48px; border:1px solid var(--line); padding:10px 12px; border-radius:0; background:var(--paper); color:var(--ink); font-size:16px; color-scheme:light; }
.demo-booking .c-button { width:100%; }
.booking-result { font-size:13px; margin-top:20px; }
.booking-result:empty { display:none; }
.business-footer { display:flex; align-items:center; gap:50px; justify-content:space-between; padding-block:40px; border-top:1px solid var(--line); }
.business-footer p { font-size:11px; color:var(--muted); line-height:1.8; }
.business-footer p a { text-decoration:underline; text-underline-offset:4px; }
.business-footer button { border:0; background:transparent; color:inherit; font-size:11px; padding:10px 0; }
.concept-next { background:#191d18; color:#f3f0e7; font-size:12px; }
.concept-next > div { display:flex; align-items:center; justify-content:space-between; gap:25px; padding-block:25px; }
.concept-next a:hover { text-decoration:underline; text-underline-offset:5px; }
.is-preview .concept-toolbar,.is-preview .concept-next { display:none; }

/* 01 / Orsa — a quiet architectural split composition. */
.layout-atelier { --paper:#f2eee5; --ink:#393c31; --muted:#696b5d; --accent:#596248; --line:#cdcaba; }
.layout-atelier .business-brand > span { font-size:53px; letter-spacing:.08em; }
.atelier-hero { display:grid; grid-template-columns:1.05fr 1fr; gap:6%; align-items:center; padding-block:55px 35px; position:relative; }
.atelier-hero h1 { font-size:clamp(60px,6.25vw,108px); }
.atelier-hero h1 span { font-style:italic; }
.atelier-hero .hero-photo { height:610px; }
.atelier-hero .hero-photo img { object-position:54% center; }
.hero-note { grid-column:2; text-align:right; font-size:10px; color:var(--muted); margin-top:0; }
.layout-atelier .story-heading { padding-right:30px; border-right:1px solid var(--line); }

/* 02 / Ember & Salt — big poster lettering and a cropped cinematic photograph. */
.layout-poster { --paper:#511f29; --ink:#f7deb4; --muted:#eac8ba; --accent:#f6c764; --line:#93656b; --display:'Fraunces',Georgia,serif; }
.layout-poster .business-header { min-height:97px; }
.layout-poster .business-brand > span { font-weight:600; font-size:33px; }
.layout-poster .c-button { color:#511f29; }
.poster-top { padding-block:48px 35px; }
.poster-top .kicker { margin-bottom:20px; }
.poster-top h1 { font-size:clamp(66px,7.8vw,138px); font-weight:600; letter-spacing:-.06em; line-height:1; }
.poster-top h1 span { padding-left:19%; font-style:italic; color:var(--accent); }
.poster-bottom { display:grid; grid-template-columns:1.6fr 1fr; gap:8%; align-items:center; }
.poster-bottom .hero-photo { height:375px; }
.poster-bottom .hero-photo img { object-position:center 56%; }
.poster-aside { padding-bottom:20px; }
.roundel { display:inline-flex; gap:9px; align-items:center; font:600 42px/1 var(--display); border:1px solid var(--accent); border-radius:50%; padding:24px; color:var(--accent); transform:rotate(-9deg); }
.roundel span { font-style:italic; font-size:29px; }
.poster-hero > .hero-detail { border-block:1px solid var(--line); margin-top:40px; padding:18px 6%; text-align:center; }
.layout-poster .menu-section { color:#511f29; background:#f7deb4; }
.layout-poster .menu-tabs button[aria-pressed=true] { color:#f7deb4; background:#511f29; border-color:#511f29; }
.layout-poster .menu-section .dish-list li { border-color:#c2a282; }
.layout-poster .menu-section :focus-visible { outline-color:#511f29; }
.layout-poster .story-mark { font-style:italic; }
.layout-poster input,.layout-poster select { color-scheme:dark; }

/* 03 / Sora — dark, exact spacing and the chef at the centre of the experience. */
.layout-minimal { --paper:#151716; --ink:#f2f0e8; --muted:#b7bcb5; --accent:#c2c9b7; --line:#3c423b; --display:'Space Grotesk',Arial,sans-serif; }
.layout-minimal .business-brand > span { text-transform:uppercase; font-size:30px; letter-spacing:.28em; }
.layout-minimal .business-brand small { font-size:7px; letter-spacing:.14em; }
.minimal-hero { display:grid; grid-template-columns:1fr .9fr; gap:12%; padding-block:48px; align-items:center; position:relative; }
.minimal-hero .hero-photo { height:630px; }
.minimal-hero .hero-photo img { object-position:50% 42%; }
.minimal-hero h1 { font-size:clamp(43px,4.8vw,83px); line-height:1.14; letter-spacing:-.055em; }
.minimal-hero .kicker { font-size:9px; }
.minimal-hero .hero-intro { font-size:14px; }
.layout-minimal .c-button { color:#151716; }
.vertical-note { position:absolute; right:-4%; top:48px; writing-mode:vertical-rl; font-size:11px; letter-spacing:.3em; color:var(--muted); }
.layout-minimal h2 { font-size:clamp(34px,3.5vw,56px); line-height:1.2; }
.layout-minimal .menu-section { background:#202520; color:#f2f0e8; }
.layout-minimal .menu-tabs button[aria-pressed=true] { color:#151716; background:#c2c9b7; border-color:#c2c9b7; }
.layout-minimal .dish-list h3 { font-size:21px; }
.layout-minimal input,.layout-minimal select { color-scheme:dark; }
.layout-minimal .story-section { border-top:1px solid var(--line); }

/* 04 / Wren & Willow — centred country typography above a garden view. */
.layout-garden { --paper:#f3f0e5; --ink:#294e3c; --muted:#5d6b58; --accent:#294e3c; --line:#c9cebd; }
.layout-garden .business-header { flex-direction:column; justify-content:center; gap:18px; padding-block:28px 14px; }
.layout-garden .business-brand > span { font-size:45px; }
.layout-garden .business-header nav { gap:50px; }
.garden-hero { padding-block:42px 32px; text-align:center; }
.garden-hero .hero-copy { max-width:950px; margin:auto; }
.garden-hero h1 { font-size:clamp(64px,6.2vw,105px); }
.garden-hero h1 span { font-style:italic; }
.garden-hero .hero-intro { margin:23px auto 0; max-width:510px; }
.garden-hero .hero-actions { justify-content:center; margin-top:24px; }
.garden-hero .hero-photo { height:410px; margin-top:42px; border-radius:200px 200px 0 0 / 95px 95px 0 0; }
.garden-hero .hero-photo img { object-position:50% 62%; }
.garden-hero .hero-detail { margin-top:22px; }
.layout-garden .story-mark { font-size:65px; }
.layout-garden .demo-booking { border-radius:100px 100px 0 0 / 30px 30px 0 0; padding-top:45px; }

/* 05 / Low Tide — airy blue type and a harbour panorama. */
.layout-coastal { --paper:#f5f6f1; --ink:#143b63; --muted:#54697a; --accent:#154e7f; --line:#c6d2d8; --display:'Space Grotesk',Arial,sans-serif; }
.layout-coastal .business-brand { flex-direction:row; align-items:center; gap:23px; }
.layout-coastal .business-brand > span { font-weight:600; font-size:36px; letter-spacing:-.06em; }
.layout-coastal .business-brand small { border-left:1px solid var(--line); padding-left:23px; font-size:8px; }
.coastal-top { display:grid; grid-template-columns:1.45fr 1fr; gap:8%; align-items:end; padding-block:52px 44px; }
.coastal-top h1 { font-size:clamp(48px,5.5vw,94px); font-weight:500; letter-spacing:-.065em; line-height:1.07; }
.coastal-top h1 span { color:#527c9c; }
.coastal-aside { padding-bottom:5px; }
.coastal-aside .hero-intro { margin-top:0; }
.coastal-aside .hero-actions { gap:16px; }
.coastal-hero .hero-photo { height:420px; }
.coastal-hero .hero-photo img { object-position:center 59%; }
.coastal-strip { display:flex; justify-content:space-between; align-items:center; padding:18px 6%; border-bottom:1px solid var(--line); }
.coastal-strip > span { font-size:40px; line-height:1; }
.layout-coastal h2 { font-weight:500; font-size:clamp(38px,3.8vw,62px); }
.layout-coastal .story-mark { font-size:65px; }
.layout-coastal .dish-list h3 { font-size:23px; }
.layout-coastal .menu-section { background:#e4edf0; color:#143b63; border-top:5px solid var(--accent); }
.layout-coastal .menu-tabs button[aria-pressed=true] { background:#143b63; color:#f5f6f1; border-color:#143b63; }
.layout-coastal .dish-list li { border-color:#adbecb; }
.layout-coastal .menu-section :focus-visible { outline-color:#143b63; }

/* 06 / Casa Rosa — tomato type, an oval food portrait and trattoria checks. */
.layout-trattoria { --paper:#faf0db; --ink:#a22c24; --muted:#835c48; --accent:#a22c24; --line:#d3b8a0; --display:'Fraunces',Georgia,serif; }
.layout-trattoria .business-brand > span { font-size:39px; font-style:italic; font-weight:600; }
.trattoria-hero { display:grid; grid-template-columns:1.05fr 1fr; align-items:center; gap:6%; padding-block:52px 28px; }
.trattoria-hero h1 { font-size:clamp(58px,6.2vw,107px); font-style:italic; font-weight:600; }
.trattoria-picture { position:relative; }
.trattoria-picture .hero-photo { height:560px; border-radius:50% 50% 47% 47%; border:1px solid var(--ink); padding:9px; }
.trattoria-picture .hero-photo img { border-radius:50%; object-position:48% center; }
.pasta-seal { position:absolute; right:-5px; bottom:13px; display:grid; place-content:center; width:117px; height:117px; border-radius:50%; border:6px double var(--paper); background:var(--ink); color:var(--paper); text-align:center; font:600 13px/1.5 var(--display); transform:rotate(12deg); }
.checker { grid-column:1/-1; height:20px; margin-top:32px; background:conic-gradient(var(--ink) 25%,transparent 0 50%,var(--ink) 0 75%,transparent 0) 0 0/20px 20px; }
.layout-trattoria .story-mark { font-size:55px; font-style:italic; }
.layout-trattoria .menu-section { border-block:12px solid #d6b989; }
.layout-trattoria .dish-list h3 { font-size:25px; }
.layout-trattoria .demo-booking { border:2px solid var(--line); }

/* 07 / Fieldwork — an ingredient-led, asymmetrical editorial layout. */
.layout-harvest { --paper:#e7eadb; --ink:#283f28; --muted:#5b6851; --accent:#354e2a; --line:#b8c2aa; --display:'Space Grotesk',Arial,sans-serif; }
.layout-harvest .business-brand > span { font-size:31px; letter-spacing:-.065em; font-weight:600; text-transform:uppercase; }
.layout-harvest .business-brand small { text-align:left; letter-spacing:.18em; }
.harvest-hero { padding-block:48px 30px; }
.harvest-hero h1 { font-size:clamp(66px,8.2vw,140px); text-transform:uppercase; font-weight:500; letter-spacing:-.075em; line-height:.96; }
.harvest-hero h1 span { padding-left:18%; }
.harvest-bottom { display:grid; grid-template-columns:1.55fr 1fr; gap:8%; margin-top:38px; align-items:center; }
.harvest-bottom .hero-photo { height:405px; }
.harvest-bottom .hero-photo img { object-position:center; }
.plant-mark { display:block; font-size:66px; line-height:1; }
.harvest-bottom .hero-intro { max-width:350px; margin-top:22px; }
.harvest-bottom .hero-actions { gap:12px; }
.harvest-hero > .hero-detail { border-top:1px solid var(--line); margin-top:28px; padding-top:17px; }
.layout-harvest h2 { font-size:clamp(37px,3.8vw,61px); font-weight:500; letter-spacing:-.055em; }
.layout-harvest .dish-list h3 { font-size:22px; }
.layout-harvest .menu-section { background:#d5ddc6; color:#283f28; }
.layout-harvest .menu-tabs button[aria-pressed=true] { background:#283f28; color:#e7eadb; border-color:#283f28; }
.layout-harvest .dish-list li { border-color:#a3b18e; }
.layout-harvest .menu-section :focus-visible { outline-color:#283f28; }

/* 08 / After Hours — immersive nightlife, electric lettering and a cocktail close-up. */
.layout-night { --paper:#191120; --ink:#f3eaf9; --muted:#cbbad8; --accent:#d2fa91; --line:#4f3a61; --display:'Space Grotesk',Arial,sans-serif; }
.layout-night .business-header { min-height:96px; }
.layout-night .business-brand > span { font-weight:600; text-transform:uppercase; font-size:28px; letter-spacing:-.06em; }
.layout-night .business-brand small { text-align:left; }
.night-hero { position:relative; isolation:isolate; }
.night-hero > .hero-photo { position:absolute; inset:0 0 65px; z-index:-2; }
.night-hero > .hero-photo img { object-position:80% center; }
.night-hero::before { content:""; position:absolute; inset:0 0 65px; z-index:-1; background:linear-gradient(90deg,#191120fa 0%,#191120e6 30%,#19112075 60%,transparent 85%); }
.night-copy { min-height:660px; display:flex; align-items:center; padding-block:70px; }
.night-copy .hero-copy { max-width:780px; }
.night-copy h1 { font-size:clamp(70px,8.3vw,140px); font-weight:600; letter-spacing:-.065em; line-height:.96; }
.night-copy h1 span { color:#caadff; }
.night-copy .kicker { color:var(--accent); }
.night-copy .hero-intro { color:#e4dceb; }
.layout-night .c-button { color:#191120; }
.night-strip { display:flex; justify-content:space-between; align-items:center; gap:30px; background:var(--accent); color:#191120; padding:21px 6%; }
.night-strip > span { font-weight:600; font-size:17px; letter-spacing:-.03em; }
.layout-night h2 { font-size:clamp(37px,4vw,66px); font-weight:500; letter-spacing:-.05em; }
.layout-night .menu-section { background:#281935; color:#f3eaf9; }
.layout-night .menu-tabs button[aria-pressed=true] { background:#caadff; color:#191120; border-color:#caadff; }
.layout-night .dish-list h3 { font-size:24px; }
.layout-night .story-mark { font-weight:600; }
.layout-night input,.layout-night select { color-scheme:dark; }

/* 09 / The Fox at Bracken — double rules, elegant country type and a fireside frame. */
.layout-heritage { --paper:#eee8d9; --ink:#2c493f; --muted:#626c5d; --accent:#2c493f; --line:#b4b9a5; }
.layout-heritage .business-header { border-bottom:4px double var(--ink); min-height:128px; }
.layout-heritage .business-brand > span { font-size:42px; font-weight:500; }
.heritage-hero { padding-block:45px 30px; }
.heritage-title { text-align:center; }
.heritage-title h1 { font-size:clamp(67px,6.75vw,115px); }
.heritage-title h1 span { font-style:italic; display:inline; }
.heritage-title .kicker { margin-bottom:18px; }
.heritage-bottom { display:grid; grid-template-columns:1.65fr 1fr; gap:8%; align-items:center; margin-top:38px; }
.heritage-bottom .hero-photo { height:400px; padding:8px; border:1px solid var(--ink); }
.heritage-bottom .hero-photo img { object-position:center; }
.heritage-aside .hero-intro { margin-top:0; }
.heritage-aside .hero-actions { gap:15px; }
.heritage-flourish { display:block; margin-top:22px; font-size:48px; line-height:1; }
.heritage-hero > .hero-detail { padding-top:22px; margin-top:30px; border-top:4px double var(--ink); text-align:center; }
.layout-heritage .story-section { gap:8%; }
.layout-heritage .menu-section .section-intro { text-align:center; margin:auto; }
.layout-heritage .menu-tabs { justify-content:center; }
.layout-heritage .demo-booking { border:4px double var(--ink); }

/* 10 / Sunday Social — sunny colour, rounded geometry and bold brunch type. */
.layout-social { --paper:#faf5e4; --ink:#733d31; --muted:#78584b; --accent:#984b36; --line:#d8bfa4; --display:'Space Grotesk',Arial,sans-serif; }
.layout-social .business-header { min-height:106px; border-bottom:2px solid var(--ink); }
.layout-social .business-brand > span { font-weight:600; font-size:31px; letter-spacing:-.06em; }
.layout-social .business-brand small { text-align:left; }
.layout-social .c-button { border-radius:40px; }
.social-hero { display:grid; grid-template-columns:1.02fr 1fr; gap:7%; padding-block:48px 25px; align-items:center; }
.social-hero h1 { font-size:clamp(58px,6.2vw,108px); font-weight:600; letter-spacing:-.07em; line-height:1.04; }
.social-hero h1 span { color:#984b36; }
.social-picture { position:relative; padding-top:36px; }
.social-picture .hero-photo { height:530px; border-radius:220px 220px 50px 50px; border:2px solid var(--ink); }
.social-picture .hero-photo img { object-position:50% center; }
.sun-mark { position:absolute; right:-25px; top:-5px; display:grid; place-items:center; width:135px; height:135px; border:2px solid var(--ink); border-radius:50%; background:#f6d776; color:var(--ink); font-size:95px; line-height:1; transform:rotate(10deg); }
.social-strip { grid-column:1/-1; margin-top:25px; padding:16px; background:#f6d776; font-size:14px; font-weight:600; letter-spacing:.09em; text-align:center; border-radius:40px; }
.layout-social h2 { font-size:clamp(37px,3.8vw,62px); font-weight:500; letter-spacing:-.06em; }
.layout-social .menu-section { background:#f3d984; color:#733d31; }
.layout-social .menu-tabs button { border-radius:30px; }
.layout-social .menu-tabs button[aria-pressed=true] { background:#733d31; color:#faf5e4; border-color:#733d31; }
.layout-social .dish-list h3 { font-size:23px; }
.layout-social .dish-list li { border-color:#b69b65; }
.layout-social .menu-section :focus-visible { outline-color:#733d31; }
.layout-social .story-mark { font-size:65px; }
.layout-social .demo-booking { border-radius:30px; background:#f9edd1; border-color:#cba78f; }

@media (min-width:1700px) { .c-wrap { width:84%; } }
@media (max-width:1100px) {
  .business-header nav { gap:23px; }
  .business-brand > span { font-size:36px; }
  .hero-actions { gap:16px; }
  .hero-intro { font-size:14px; }
  .story-section,.booking-layout { gap:7%; }
  .demo-booking { padding:27px; }
  .business-footer { gap:25px; }
  .coastal-top { grid-template-columns:1.25fr 1fr; gap:6%; }
  .coastal-top h1 { font-size:5.7vw; }
  .layout-coastal .business-brand small { display:none; }
  .heritage-title h1 span { display:block; }
  .trattoria-picture .hero-photo { height:500px; }
}
@media (max-width:760px) {
  .c-wrap { width:88%; }
  .concept-toolbar { padding:10px 6%; flex-wrap:wrap; gap:5px 16px; font-size:10px; }
  .concept-toolbar span { margin-left:auto; }
  .concept-toolbar > a:last-child { width:100%; }
  .business-header { min-height:auto; flex-direction:column; gap:18px; padding-block:25px 15px; }
  .business-header nav { width:100%; justify-content:center; gap:28px; font-size:12px; }
  .business-header nav a { padding-block:10px; }
  .business-header .nav-book { gap:12px; }
  .business-brand > span { font-size:37px; }
  .business-brand small { font-size:7px; }
  .kicker { font-size:9px; margin-bottom:17px; }
  h1 { font-size:60px; }
  h2 { font-size:42px; }
  .hero-intro { font-size:15px; margin-top:22px; max-width:100%; }
  .hero-actions { gap:18px 25px; margin-top:25px; }
  .c-button { padding:15px 19px; font-size:12px; }
  .c-text-link { font-size:12px; }
  .story-section { grid-template-columns:1fr; gap:27px; padding-block:66px; }
  .story-mark { margin-bottom:22px; }
  .story-copy p { font-size:15px; }
  .menu-section { padding-block:65px; }
  .menu-tabs { padding-block:28px; gap:8px; }
  .menu-tabs button { padding:11px 15px; }
  .dish-list { grid-template-columns:1fr; }
  .dish-list li { padding-block:23px; }
  .dish-list h3 { font-size:25px; }
  .menu-note { margin-top:15px; }
  .booking-section { padding-block:66px; }
  .booking-layout { grid-template-columns:1fr; gap:35px; }
  .opening-hours { margin-top:28px; }
  .demo-booking { padding:25px 20px; }
  .form-row { gap:13px; }
  .business-footer { flex-direction:column; align-items:start; gap:25px; padding-block:33px; }
  .concept-next > div { gap:15px; flex-wrap:wrap; font-size:11px; }
  .concept-next a:nth-child(2) { order:3; width:100%; text-align:center; }
  .atelier-hero { grid-template-columns:1fr; gap:30px; padding-block:40px 15px; }
  .atelier-hero h1 { font-size:64px; }
  .atelier-hero .hero-photo { height:400px; }
  .hero-note { grid-column:1; margin-top:-16px; }
  .layout-atelier .story-heading { border-right:0; padding-right:0; }
  .layout-poster .business-header { min-height:auto; }
  .layout-poster .business-brand > span { font-size:31px; }
  .poster-top { padding-block:38px 28px; }
  .poster-top h1 { font-size:51px; letter-spacing:-.065em; }
  .poster-top h1 span { padding-left:10%; }
  .poster-bottom { grid-template-columns:1fr; gap:28px; }
  .poster-bottom .hero-photo { height:300px; }
  .poster-aside { display:grid; grid-template-columns:80px 1fr; gap:20px; padding-bottom:0; }
  .roundel { padding:14px; font-size:27px; align-self:start; gap:5px; width:80px; height:80px; justify-content:center; }
  .roundel span { font-size:19px; }
  .poster-aside .hero-intro { margin-top:0; }
  .poster-aside .hero-actions { grid-column:1/-1; margin-top:0; }
  .poster-hero > .hero-detail { margin-top:30px; font-size:8px; }
  .minimal-hero { grid-template-columns:1fr; gap:30px; padding-block:35px 40px; }
  .minimal-hero .hero-photo { height:390px; }
  .minimal-hero .hero-copy { padding-right:10px; }
  .minimal-hero h1 { font-size:46px; }
  .vertical-note { right:-4%; top:35px; font-size:9px; }
  .layout-minimal h2 { font-size:35px; }
  .layout-garden .business-header { padding-block:25px 15px; }
  .layout-garden .business-brand > span { font-size:37px; }
  .layout-garden .business-header nav { gap:28px; }
  .garden-hero { padding-block:36px 20px; }
  .garden-hero h1 { font-size:58px; }
  .garden-hero .hero-photo { height:300px; margin-top:30px; border-radius:150px 150px 0 0 / 45px 45px 0 0; }
  .garden-hero .hero-detail { font-size:8px; }
  .layout-coastal .business-brand { flex-direction:column; }
  .coastal-top { grid-template-columns:1fr; gap:26px; padding-block:37px 30px; }
  .coastal-top h1 { font-size:49px; }
  .coastal-hero .hero-photo { height:310px; }
  .coastal-strip { gap:15px; padding-block:15px; }
  .coastal-strip .hero-detail { font-size:8px; }
  .layout-coastal h2 { font-size:37px; }
  .trattoria-hero { grid-template-columns:1fr; gap:35px; padding-block:35px 20px; }
  .trattoria-hero h1 { font-size:62px; }
  .trattoria-picture { width:90%; margin:auto; }
  .trattoria-picture .hero-photo { height:375px; }
  .pasta-seal { width:94px; height:94px; font-size:11px; bottom:5px; right:-10px; }
  .checker { margin-top:5px; }
  .harvest-hero { padding-block:35px 20px; }
  .harvest-hero h1 { font-size:56px; }
  .harvest-hero h1 span { padding-left:6%; }
  .harvest-bottom { grid-template-columns:1fr; gap:27px; margin-top:28px; }
  .harvest-bottom .hero-photo { height:300px; }
  .harvest-bottom > div { position:relative; padding-right:40px; }
  .plant-mark { position:absolute; right:0; top:4px; font-size:43px; }
  .harvest-bottom .hero-intro { margin-top:0; }
  .harvest-hero > .hero-detail { font-size:8px; }
  .layout-harvest h2 { font-size:38px; }
  .layout-night .business-header { min-height:auto; }
  .night-copy { min-height:680px; align-items:start; padding-block:42px 250px; }
  .night-copy h1 { font-size:61px; }
  .night-copy .hero-intro { max-width:290px; }
  .night-hero > .hero-photo { inset:0 0 94px; }
  .night-hero > .hero-photo img { object-position:62% center; }
  .night-hero::before { inset:0 0 94px; background:linear-gradient(180deg,#191120eb 0%,#191120cc 37%,#19112045 72%,transparent); }
  .night-strip { flex-direction:column; align-items:start; gap:12px; padding-block:18px; }
  .night-strip .hero-detail { font-size:8px; }
  .night-strip > span { font-size:13px; }
  .layout-night h2 { font-size:38px; }
  .layout-heritage .business-header { min-height:auto; }
  .layout-heritage .business-brand > span { font-size:35px; }
  .heritage-hero { padding-block:35px 20px; }
  .heritage-title h1 { font-size:59px; }
  .heritage-bottom { grid-template-columns:1fr; gap:27px; margin-top:28px; }
  .heritage-bottom .hero-photo { height:320px; }
  .heritage-aside { position:relative; }
  .heritage-flourish { position:absolute; right:0; top:0; font-size:35px; margin-top:0; }
  .heritage-aside .hero-intro { padding-right:45px; }
  .heritage-hero > .hero-detail { font-size:8px; }
  .layout-social .business-header { min-height:auto; }
  .social-hero { grid-template-columns:1fr; gap:27px; padding-block:35px 20px; }
  .social-hero h1 { font-size:63px; }
  .social-picture { width:95%; margin:auto; padding-top:10px; }
  .social-picture .hero-photo { height:360px; border-radius:150px 150px 35px 35px; }
  .sun-mark { width:97px; height:97px; font-size:71px; right:-15px; top:-14px; }
  .social-strip { margin-top:2px; font-size:9px; padding:14px; letter-spacing:.07em; }
  .layout-social h2 { font-size:39px; }
}
@media (max-width:370px) {
  .business-header nav { gap:20px; }
  .atelier-hero h1 { font-size:56px; }
  .poster-top h1 { font-size:44px; }
  .minimal-hero h1 { font-size:41px; }
  .garden-hero h1 { font-size:51px; }
  .coastal-top h1 { font-size:43px; }
  .trattoria-hero h1 { font-size:56px; }
  .harvest-hero h1 { font-size:49px; }
  .night-copy h1 { font-size:55px; }
  .heritage-title h1 { font-size:53px; }
  .social-hero h1 { font-size:56px; }
  .concept-toolbar span { font-size:9px; }
  .form-row { grid-template-columns:1fr; gap:0; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; } }
