:root{
  --ink:#171711;
  --coal:#202019;
  --paper:#efe8da;
  --cream:#f7f1e7;
  --sand:#d8c5a9;
  --clay:#aa4f2f;
  --ember:#d86432;
  --olive:#363b2c;
  --olive-dark:#262a20;
  --muted:#80786a;
  --line:rgba(23,23,17,.18);
  --line-light:rgba(247,241,231,.22);
  --serif:"Bodoni Moda",Georgia,serif;
  --sans:"Manrope",Arial,sans-serif;
  --gutter:clamp(20px,3.2vw,58px);
  --max:1700px;
  --ease:cubic-bezier(.2,.7,.2,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--ink)}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
#main{overflow-x:clip}
body.menu-open{overflow:hidden}
img,svg{display:block;max-width:100%}
img{height:auto}
picture{display:block}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{color:inherit}
fieldset{border:0;padding:0;margin:0;min-width:0}
legend{padding:0}
::selection{background:var(--clay);color:var(--cream)}
/* Keyboard focus.
   Text fields, selects and textareas already show focus through their own
   border + soft ring (form.css / .field). The blanket ember outline used to
   stack a second orange rectangle 5px outside them, which read as a stray
   box whenever a field was clicked. Fields keep their own indicator; every
   other focusable element keeps a proper, visible ring. */
:focus-visible{outline:2px solid var(--ember);outline-offset:3px;border-radius:2px}
/* Never paint the offset ring on a control that is merely clicked. */
input:focus,select:focus,textarea:focus{outline:none}
/* Text-like controls keep a tight, in-place ring instead of a floating box. */
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--clay);outline-offset:0}
/* …and none at all where the field already draws its own focus treatment. */
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible,
.c-field input:focus-visible,.c-field select:focus-visible,.c-field textarea:focus-visible{outline:none}
.field input[type="checkbox"]:focus-visible,.c-field input[type="checkbox"]:focus-visible,
.field input[type="radio"]:focus-visible,.c-field input[type="radio"]:focus-visible{outline:2px solid var(--ember);outline-offset:3px}

.skip-link{position:fixed;z-index:9999;left:18px;top:18px;padding:12px 16px;background:var(--cream);color:var(--ink);transform:translateY(-160%);transition:transform .25s}
.skip-link:focus{transform:translateY(0)}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

.site-header{position:fixed;z-index:1000;inset:0 0 auto;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:28px;padding:22px var(--gutter);color:var(--cream);transition:padding .35s var(--ease),background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease);border-bottom:1px solid transparent}
.site-header.is-scrolled{padding-top:14px;padding-bottom:14px;background:rgba(23,23,17,.94);backdrop-filter:blur(12px);border-color:rgba(255,255,255,.11)}
.brand{display:inline-flex;align-items:center;gap:12px;width:max-content;min-width:0}
.brand__seal{width:41px;height:41px;flex:0 0 auto}
.brand__seal svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.25}
.brand__seal svg path:last-child{stroke-width:1.6}
.brand__name{display:grid;line-height:1.1}
.brand__name strong{font-family:var(--serif);font-weight:500;font-size:1.03rem;letter-spacing:.02em}
.brand__name small{font-size:0.72rem;text-transform:uppercase;letter-spacing:.18em;margin-top:5px}
.primary-nav{display:flex;align-items:center;gap:clamp(18px,2.2vw,42px);font-size:0.75rem;text-transform:uppercase;letter-spacing:.14em}
.primary-nav a{position:relative;padding:8px 0}
.primary-nav a::after{content:"";position:absolute;left:0;right:100%;bottom:3px;height:1px;background:currentColor;transition:right .25s var(--ease)}
.primary-nav a:hover::after{right:0}
.header-tools{justify-self:end;display:flex;align-items:center;gap:18px}
.language-link{font-size:0.75rem;letter-spacing:.18em}
.header-enquiry{font-size:0.75rem;text-transform:uppercase;letter-spacing:.12em;border-bottom:1px solid currentColor;padding:8px 0}
.menu-button{display:none;border:0;background:transparent;padding:8px 0 8px 10px;align-items:center;gap:12px;cursor:pointer}
.menu-button__label{font-size:0.75rem;text-transform:uppercase;letter-spacing:.16em}
.menu-button__lines{display:grid;gap:6px;width:27px}
.menu-button__lines i{height:1px;background:currentColor;display:block;transition:transform .3s var(--ease),width .3s var(--ease)}
.menu-button__lines i:last-child{width:18px;justify-self:end}
.menu-button[aria-expanded="true"] .menu-button__lines i:first-child{transform:translateY(3.5px) rotate(45deg)}
.menu-button[aria-expanded="true"] .menu-button__lines i:last-child{width:27px;transform:translateY(-3.5px) rotate(-45deg)}
/* While the panel is open the header sits on top of it and only the toggle
   stays live, so the inert links are faded out rather than left looking
   clickable, and the bar blends into the panel behind it. */
/* Solid, so the scrolling panel cannot ghost through the bar. It is the same
   ink as the panel, so the edge is invisible and the bar reads as part of it. */
body.menu-open .site-header{background:var(--ink);border-color:transparent;backdrop-filter:none}
body.menu-open .language-link,body.menu-open .header-enquiry{opacity:0;visibility:hidden;transition:opacity .2s var(--ease),visibility .2s var(--ease)}

/* ------------------------------------------------------- mobile menu ----
   Full-screen panel. The header sits above it (z-index 1000 vs 990) so the
   hamburger stays visible and doubles as the close control.
   Everything animates in with CSS keyframes rather than transitions, because
   the panel is toggled with the `hidden` attribute — a display change never
   fires a transition, but it does restart an animation. */
.mobile-menu{position:fixed;z-index:990;inset:0;background:var(--ink);color:var(--cream);overflow:auto;overscroll-behavior:contain;touch-action:pan-y;animation:menuPanelIn .38s var(--ease) both}
.mobile-menu[hidden]{display:none}
.mobile-menu__glow{position:absolute;z-index:0;top:2%;right:-20%;width:min(560px,86vw);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(216,100,50,.30),rgba(216,100,50,.07) 46%,transparent 70%);filter:blur(6px);pointer-events:none;animation:menuGlowIn 1.1s var(--ease) both}
.mobile-menu__inner{position:relative;z-index:1;display:flex;flex-direction:column;min-height:100%;max-width:min(100%,760px);padding:calc(96px + env(safe-area-inset-top)) var(--gutter) calc(32px + env(safe-area-inset-bottom))}

.mobile-menu__intro{margin:0 0 26px;max-width:22ch;font-family:var(--serif);font-size:clamp(1.05rem,4.2vw,1.5rem);line-height:1.25;color:var(--sand);animation:menuItemIn .5s var(--ease) both;animation-delay:calc(var(--i,0) * 45ms + 60ms)}

.mobile-menu__nav{display:grid;border-top:1px solid var(--line-light)}
.mobile-menu__nav a{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:baseline;gap:0 14px;padding:15px 0;border-bottom:1px solid var(--line-light);animation:menuItemIn .5s var(--ease) both;animation-delay:calc(var(--i,0) * 45ms + 60ms)}
.mobile-menu__nav a::after{content:"";position:absolute;left:0;right:100%;bottom:-1px;height:1px;background:var(--ember);transition:right .4s var(--ease)}
.mobile-menu__nav a:hover::after,.mobile-menu__nav a:focus-visible::after{right:0}
.mobile-menu__nav em{font-family:var(--sans);font-size:.64rem;font-style:normal;font-weight:600;letter-spacing:.16em;color:#8b8475;transition:color .25s var(--ease)}
.mobile-menu__nav span{font-family:var(--serif);font-size:clamp(2rem,9vw,3.4rem);line-height:1.02;letter-spacing:-.02em;transition:transform .32s var(--ease),color .25s var(--ease);transform-origin:left center}
.mobile-menu__nav i{font-style:normal;font-size:.95rem;color:#6f6959;opacity:0;transform:translate(-6px,4px);transition:opacity .3s var(--ease),transform .3s var(--ease),color .25s var(--ease)}
.mobile-menu__nav a:hover span,.mobile-menu__nav a:focus-visible span{transform:translateX(8px)}
.mobile-menu__nav a:hover i,.mobile-menu__nav a:focus-visible i{opacity:1;transform:none;color:var(--ember)}
.mobile-menu__nav a:hover em,.mobile-menu__nav a:focus-visible em{color:var(--ember)}
.mobile-menu__nav a[aria-current="page"] em{color:var(--ember)}
.mobile-menu__nav a[aria-current="page"] span{color:var(--sand)}
.mobile-menu__nav a[aria-current="page"] i{opacity:1;transform:none;color:var(--ember)}

.mobile-menu__cta{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:26px;padding:17px 22px;border-radius:999px;background:var(--ember);color:#fff;font-size:.78rem;text-transform:uppercase;letter-spacing:.14em;animation:menuItemIn .5s var(--ease) both;animation-delay:calc(var(--i,0) * 45ms + 60ms);transition:background .25s var(--ease)}
.mobile-menu__cta i{font-style:normal;transition:transform .25s var(--ease)}
.mobile-menu__cta:hover{background:#c3562a}
.mobile-menu__cta:hover i{transform:translate(3px,-3px)}

.mobile-menu__foot{margin-top:auto;padding-top:30px;animation:menuItemIn .5s var(--ease) both;animation-delay:calc(var(--i,0) * 45ms + 60ms)}
.mobile-menu__contact{display:grid;gap:14px;margin:0 0 22px;padding:0;list-style:none}
.mobile-menu__contact li{display:grid;gap:2px}
.mobile-menu__contact span{font-size:.62rem;text-transform:uppercase;letter-spacing:.16em;color:#7d7666}
.mobile-menu__contact a{width:max-content;max-width:100%;overflow-wrap:anywhere;font-size:1rem;color:var(--cream);border-bottom:1px solid rgba(247,241,231,.24);transition:color .2s var(--ease),border-color .2s var(--ease)}
.mobile-menu__contact a:hover{color:var(--ember);border-color:var(--ember)}

.mobile-menu__meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;padding-top:20px;border-top:1px solid var(--line-light)}
.mobile-menu__languages{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--line-light);border-radius:999px}
.mobile-menu__languages a{display:inline-flex;align-items:center;min-height:34px;padding:0 15px;border-radius:999px;font-size:.7rem;letter-spacing:.1em;color:#c9c2b4;transition:background .25s var(--ease),color .25s var(--ease)}
.mobile-menu__languages a.is-active{background:var(--cream);color:var(--ink);pointer-events:none}
.mobile-menu__place{margin:0;font-size:.68rem;text-transform:uppercase;letter-spacing:.13em;color:#7d7666}

@keyframes menuPanelIn{from{opacity:0}to{opacity:1}}
@keyframes menuGlowIn{from{opacity:0;transform:scale(.75)}to{opacity:1;transform:none}}
@keyframes menuItemIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}


.hero{position:relative;min-height:100svh;background:var(--ink);color:var(--cream);overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,31vw);grid-template-rows:1fr auto}
.hero__picture{position:absolute;inset:0}
.hero__picture img{width:100%;height:100%;object-fit:cover;object-position:center 44%}
.hero__shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,14,10,.64) 0%,rgba(14,14,10,.24) 52%,rgba(14,14,10,.66) 100%),linear-gradient(0deg,rgba(14,14,10,.72) 0%,transparent 48%)}
.hero__grain{position:absolute;inset:0;opacity:.16;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.38'/%3E%3C/svg%3E")}
.hero__side-note{position:absolute;left:var(--gutter);top:50%;transform:translateY(-50%);writing-mode:vertical-rl;display:flex;gap:18px;font-size:0.72rem;letter-spacing:.18em;color:rgba(247,241,231,.72)}
.hero__copy{position:relative;z-index:2;grid-column:1/3;align-self:end;padding:clamp(140px,18vh,240px) calc(var(--gutter) + 38px) 42px;max-width:1450px}
.kicker{font-size:0.75rem;text-transform:uppercase;letter-spacing:.18em;font-weight:600;margin:0 0 24px}
.hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(4.1rem,10.7vw,11.6rem);line-height:.77;letter-spacing:-.055em;margin:0;display:grid;width:max-content;max-width:100%}
.hero h1 span:nth-child(2){padding-left:clamp(20px,8vw,145px)}
.hero h1 em{font-weight:400;color:#e28152;padding-left:clamp(70px,19vw,370px)}
.hero__service-note{position:relative;z-index:3;grid-column:2;grid-row:2;background:rgba(28,28,22,.89);backdrop-filter:blur(8px);border-left:1px solid var(--line-light);border-top:1px solid var(--line-light);padding:36px var(--gutter) 42px 38px}
.hero__service-note>p{margin:0 0 26px;font-family:var(--serif);font-size:clamp(1.22rem,1.8vw,1.85rem);line-height:1.35;max-width:500px}
.hero__actions{display:flex;align-items:center;gap:25px;flex-wrap:wrap}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;min-width:210px;padding:15px 18px 15px 20px;border:1px solid currentColor;text-transform:uppercase;font-size:0.75rem;letter-spacing:.14em;font-weight:600;transition:background .25s,color .25s,border-color .25s,transform .25s}
.button i{font-style:normal;font-size:1rem}
.button:hover{transform:translateY(-2px)}
.button--ember{background:var(--ember);border-color:var(--ember);color:#fff}
.button--ember:hover{background:#eb7540;border-color:#eb7540}
.button--sand{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.underlink{font-size:0.75rem;text-transform:uppercase;letter-spacing:.12em;border-bottom:1px solid rgba(255,255,255,.6);padding-bottom:5px}
.hero__location{position:relative;z-index:3;grid-column:1;grid-row:2;align-self:end;display:flex;align-items:center;gap:28px;padding:0 0 35px calc(var(--gutter) + 38px);font-size:0.72rem;text-transform:uppercase;letter-spacing:.14em}
.hero__location span{position:relative}
.hero__location span:not(:last-of-type)::after{content:"";position:absolute;width:4px;height:4px;border-radius:50%;background:var(--ember);right:-16px;top:50%;transform:translateY(-50%)}
.hero__location small{margin-left:auto;margin-right:32px;color:rgba(247,241,231,.62);font-size:0.72rem;letter-spacing:.12em}
.hero__scroll{position:absolute;z-index:4;right:calc(31vw + 22px);bottom:42px;display:flex;align-items:center;gap:10px;writing-mode:vertical-rl;font-size: 0.72rem;text-transform:uppercase;letter-spacing:.18em;color:rgba(247,241,231,.8)}
.hero__scroll i{height:58px;width:1px;background:linear-gradient(to bottom,currentColor,transparent)}

.section-index{display:flex;align-items:center;gap:14px;font-size:0.75rem;text-transform:uppercase;letter-spacing:.15em;color:#686256}
.section-index span{
  position:relative;
  display:grid;
  place-items:center;
  width:clamp(42px,4.5vw,56px);
  height:clamp(42px,4.5vw,56px);
  border:1px solid currentColor;
  border-radius:50%;
  background:rgba(23,23,17,.035);
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(.88rem,1.2vw,1.12rem);
  letter-spacing:0;
  line-height:1;
  transition:color .3s var(--ease),background .3s var(--ease),border-color .3s var(--ease);
}
.section-index span::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:50%;
  background:radial-gradient(circle 3px at 50% 7px,currentColor 98%,transparent 100%);
  pointer-events:none;
}
.section-index p{margin:0;font-weight:600}
.section-index--light{color:#c8bfad}
.section-index--light span{background:rgba(247,241,231,.05)}

.manifesto{display:grid;grid-template-columns:minmax(240px,.55fr) minmax(0,1.18fr) minmax(300px,.72fr);column-gap:clamp(30px,5vw,95px);row-gap:45px;padding:clamp(90px,11vw,80px) var(--gutter);max-width:var(--max);margin:0 auto;background:var(--cream)}
.manifesto>.section-index{grid-column:1}
.manifesto__text{grid-column:2/4}
.manifesto__text h2{font-family:var(--serif);font-weight:400;font-size:clamp(2.9rem,5.7vw,7rem);line-height:.98;letter-spacing:-.04em;margin:0;max-width:1270px}
.manifesto__text h2 em{color:var(--clay)}
.manifesto__image{grid-column:1/3;position:relative;margin-top:50px;min-height:650px;overflow:hidden}
.manifesto__image picture,.manifesto__image img{width:100%;height:100%}
.manifesto__image img{object-position:center 58%;transform:translateY(var(--parallax-y,0)) scale(1.05)}
.photo-caption{font-size:0.72rem;text-transform:uppercase;letter-spacing:.12em;line-height:1.55;margin:12px 0 0;color:#746c60}
.manifesto__image .photo-caption{position:absolute;left:18px;bottom:16px;background:rgba(23,23,17,.9);color:var(--cream);padding:10px 13px;margin:0;max-width:380px}
.manifesto__body{grid-column:3;align-self:center;padding-top:45px}
.manifesto__body p{color:#5d574e}
.manifesto__body .lead{font-family:var(--serif);font-size:clamp(1.5rem,2.1vw,2.25rem);line-height:1.35;color:var(--ink)}
.manifesto__facts{margin:45px 0 0}
.manifesto__facts div{display:grid;grid-template-columns:92px 1fr;gap:18px;border-top:1px solid var(--line);padding:15px 0}
.manifesto__facts div:last-child{border-bottom:1px solid var(--line)}
.manifesto__facts dt{font-size:0.72rem;text-transform:uppercase;letter-spacing:.12em;color:#827a6d}
.manifesto__facts dd{margin:0;font-family:var(--serif);font-size:1.08rem}

.villa-story{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(450px,.92fr);background:var(--olive-dark);color:var(--cream)}
.villa-story__visual{position:relative;min-height:1050px;overflow:hidden}
.villa-story__visual picture,.villa-story__visual img{width:100%;height:100%}
.villa-story__visual img{object-position:center 55%}
.villa-story__visual::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(21,24,18,.5),transparent 38%)}
.villa-story__stamp{position:absolute;z-index:2;left:0;bottom:0;max-width:400px;background:var(--paper);color:var(--ink);padding:22px 28px}
.villa-story__stamp span{font-family:var(--serif);font-size:1.55rem;display:block}
.villa-story__stamp small{display:block;margin-top:7px;font-size: 0.72rem;line-height:1.55;text-transform:uppercase;letter-spacing:.1em;color:#6d665b}
.villa-story__content{padding:clamp(80px,9vw,150px) clamp(35px,7vw,120px);display:flex;flex-direction:column;gap:32px}
.villa-story__content .section-index{margin-bottom:0}
.villa-story__content .kicker{margin:0}
.villa-story__content h2{font-family:var(--serif);font-size:clamp(3.1rem,5.6vw,6.6rem);line-height:.95;font-weight:400;letter-spacing:-.04em;margin:0}
.villa-story__content>p:not(.kicker){color:#c9c1b1;max-width:650px;margin:0}
.villa-story__chapters{margin:0}
.villa-story__chapters article{display:grid;grid-template-columns:72px 1fr;column-gap:24px;align-items:start;padding:28px 0;border-top:1px solid var(--line-light)}
.villa-story__chapters article:last-child{border-bottom:1px solid var(--line-light)}
.villa-story__chapters span{grid-column:1;grid-row:1;font-size:0.72rem;text-transform:uppercase;letter-spacing:.16em;color:#b3ab9a;padding-top:7px}
.villa-story__chapters h3{grid-column:2;grid-row:1;margin:0 0 12px;font-family:var(--serif);font-size:1.6rem;font-weight:400;line-height:1.15;color:var(--cream)}
.villa-story__chapters p{grid-column:2;grid-row:2;margin:0;color:#bcb4a3;font-size:.92rem;line-height:1.65;max-width:540px}
.text-arrow{display:inline-flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line-light);padding-bottom:12px;max-width:350px;text-transform:uppercase;font-size:0.75rem;letter-spacing:.13em}
.text-arrow span{font-size:1rem}

.occasions{padding:clamp(95px,11vw,180px) 0;background:var(--paper);overflow:hidden}
.occasions__heading{padding:0 var(--gutter);max-width:var(--max);margin:0 auto 70px;display:grid;grid-template-columns:.45fr 1.25fr .52fr;gap:clamp(25px,4vw,70px);align-items:end}
.occasions__heading h2{font-family:var(--serif);font-size:clamp(3rem,5.5vw,6.4rem);font-weight:400;line-height:.95;letter-spacing:-.04em;margin:0}
.occasions__heading h2 em{color:var(--clay)}
.occasions__heading>p{margin:0;color:#665f55;font-size:.91rem}
.occasion-rail{display:flex;align-items:flex-start;gap:18px;overflow-x:auto;padding:0 var(--gutter) 28px;scrollbar-width:thin;scrollbar-color:var(--clay) rgba(23,23,17,.12);cursor:grab;overscroll-behavior-x:contain;scroll-snap-type:x proximity;touch-action:pan-x}
.occasion-rail::-webkit-scrollbar{height:8px}
.occasion-rail::-webkit-scrollbar-track{background:rgba(23,23,17,.12);border-radius:99px}
.occasion-rail::-webkit-scrollbar-thumb{background:var(--clay);border-radius:99px}
.occasion-rail.is-dragging{cursor:grabbing;scroll-snap-type:none}
.occasion{flex:0 0 min(78vw,1050px);scroll-snap-align:start;display:grid;min-height:690px;background:var(--cream);border:1px solid rgba(23,23,17,.1)}
.occasion--wide{grid-template-columns:minmax(0,1.45fr) minmax(250px,.55fr)}
.occasion--portrait{flex-basis:min(52vw,690px);grid-template-rows:1fr auto}
.occasion--text{flex-basis:min(34vw,490px);background:var(--clay);color:var(--cream);align-content:end}
.occasion--dark{flex-basis:min(34vw,490px);background:var(--ink);color:var(--cream);align-content:center}
.occasion__image{overflow:hidden;min-height:430px}
.occasion__image picture,.occasion__image img{width:100%;height:100%}
.occasion__image img{transition:transform .8s var(--ease)}
.occasion:hover .occasion__image img{transform:scale(1.035)}
.occasion__copy{padding:34px;align-self:end}
.occasion__copy>span{font-size:0.72rem;letter-spacing:.13em;text-transform:uppercase;color:currentColor;opacity:.65}
.occasion__copy h3{font-family:var(--serif);font-weight:400;font-size:clamp(2rem,3.1vw,4rem);line-height:1;margin:18px 0}
.occasion__copy p{margin:0;font-size:.86rem;max-width:380px;opacity:.78}
.occasion--text .occasion__copy,.occasion--dark .occasion__copy{padding:48px 40px}
.rail-instruction{display:flex;align-items:center;gap:18px;padding:18px var(--gutter) 0;margin-left:auto;width:max-content;font-size:0.72rem;text-transform:uppercase;letter-spacing:.13em;color:#70695d}
.rail-instruction i{width:80px;height:1px;background:currentColor;position:relative}
.rail-instruction i::after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}

.process{background:var(--olive-dark);color:var(--cream);padding:clamp(95px,11vw,180px) var(--gutter)}
.process__intro{max-width:var(--max);margin:0 auto 80px;display:grid;grid-template-columns:.46fr 1.54fr;align-items:start;gap:50px}
.process__intro h2{font-family:var(--serif);font-weight:400;font-size:clamp(3.5rem,7vw,8.2rem);line-height:.88;letter-spacing:-.05em;margin:0;max-width:1050px}
.process__steps{list-style:none;padding:0;margin:0 auto;max-width:var(--max)}
.process__steps li{display:grid;grid-template-columns:.3fr 1.7fr;gap:50px;padding:35px 0;border-top:1px solid var(--line-light)}
.process__steps li:last-child{border-bottom:1px solid var(--line-light)}
.process__number{font-family:var(--serif);font-size:clamp(3.8rem,6vw,7rem);font-style:italic;color:#8f8a7c;line-height:1}
.process__steps li>div{display:grid;grid-template-columns:.3fr 1fr .8fr;gap:35px;align-items:start}
.process__eyebrow{font-size:0.72rem;text-transform:uppercase;letter-spacing:.14em;color:#a19a8b;margin:7px 0 0}
.process__steps h3{font-family:var(--serif);font-size:clamp(1.7rem,2.7vw,3.4rem);font-weight:400;line-height:1.05;margin:0}
.process__steps li>div>p:last-child{margin:5px 0 0;color:#aaa392;font-size:.86rem;max-width:360px}

.menus{display:grid;grid-template-columns:minmax(0,.95fr) minmax(480px,1.05fr);background:var(--cream)}
.menus__visual{position:relative;min-height:1100px;overflow:hidden}
.menus__visual picture,.menus__visual img{width:100%;height:100%}
.menus__visual img{object-position:center 52%;transform:translateY(var(--parallax-y,0)) scale(1.04)}
.menus__visual::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(22,21,16,.54),transparent 48%)}
.menus__quote{position:absolute;z-index:2;left:var(--gutter);right:var(--gutter);bottom:50px;color:var(--cream);max-width:560px}
.menus__quote p{font-family:var(--serif);font-size:clamp(1.9rem,3.1vw,3.7rem);line-height:1.08;margin:0 0 16px}
.menus__quote span{font-size:0.72rem;text-transform:uppercase;letter-spacing:.14em}
.menus__content{padding:clamp(85px,9vw,150px) clamp(40px,7vw,120px);display:flex;flex-direction:column;}
.menus__content h2{font-family:var(--serif);font-size:clamp(3.2rem,5.4vw,6.4rem);font-weight:400;line-height:.94;letter-spacing:-.04em;margin:20px 0 30px}
.menus__content>p:not(.kicker){color:#615a50;max-width:650px}
.menu-directions{display:grid;grid-template-columns:1fr 1fr;margin:50px 0 36px;border-top:1px solid var(--line)}
.menu-directions div{display:grid;grid-template-columns:35px 1fr;gap:12px;padding:17px 10px 17px 0;border-bottom:1px solid var(--line)}
.menu-directions div:nth-child(odd){border-right:1px solid var(--line);padding-right:20px}
.menu-directions div:nth-child(even){padding-left:20px}
.menu-directions span{font-size:0.72rem;color:#8b8376}
.menu-directions p{margin:0;font-family:var(--serif);font-size:1.1rem}
.sample-menu{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;column-gap:24px;padding:20px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);max-width:500px}
.sample-menu span{font-family:var(--serif);font-size:1.35rem}
.sample-menu small{font-size:0.72rem;text-transform:uppercase;letter-spacing:.12em;color:#7a7266}
.sample-menu i{grid-column:2;grid-row:1/3;align-self:center;font-style:normal;font-size:1.3rem}

.service-choice{background:var(--paper);padding-top:clamp(95px,10vw,100px)}
.service-choice__heading{max-width:var(--max);margin:0 auto 60px;padding:0 var(--gutter);display:grid;grid-template-columns:.45fr 1.55fr;gap:50px;align-items:start}
.service-choice__heading h2{font-family:var(--serif);font-size:clamp(3.3rem,6vw,7.2rem);line-height:.9;font-weight:400;letter-spacing:-.05em;margin:0;max-width:1100px}
.service-scenes{display:grid;grid-template-columns:1fr 1fr;min-height:850px}
.service-scene{position:relative;overflow:hidden;color:var(--cream);display:flex;align-items:flex-end}
.service-scene picture,.service-scene img{position:absolute;inset:0;width:100%;height:100%}
.service-scene img{transition:transform 1s var(--ease)}
.service-scene:hover img{transform:scale(1.03)}
.service-scene__veil{position:absolute;inset:0;background:linear-gradient(0deg,rgba(16,16,12,.88),rgba(16,16,12,.1) 70%)}
.service-scene--hosted{clip-path:polygon(5% 0,100% 0,100% 100%,0 100%)}
.service-scene--hosted .service-scene__copy{padding-left:clamp(65px,7vw,120px)}
.service-scene__copy{position:relative;z-index:2;padding:55px var(--gutter);max-width:760px}
.service-scene__copy>span{font-size:0.72rem;text-transform:uppercase;letter-spacing:.14em;color:#c0b8aa}
.service-scene__copy h3{font-family:var(--serif);font-size:clamp(2.6rem,4.5vw,5.4rem);font-weight:400;line-height:.95;margin:18px 0 22px}
.service-scene__copy p{max-width:540px;color:#d1c9ba;margin-bottom:0}
.service-scene__copy .service-note{font-size:0.72rem;text-transform:uppercase;letter-spacing:.11em;color:#9e9688;margin-top:22px}

.chef{display:grid;grid-template-columns:minmax(350px,.8fr) minmax(0,1.2fr);gap:clamp(55px,8vw,140px);padding:clamp(95px,11vw,180px) var(--gutter);max-width:var(--max);margin:0 auto;background:var(--cream)}
.chef__portrait{align-self:start}
.portrait-placeholder{aspect-ratio:4/5;background:linear-gradient(145deg,#464638,#212119);color:var(--cream);padding:32px;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden}
.portrait-placeholder::before{content:"";position:absolute;width:56%;aspect-ratio:1;border:1px solid rgba(255,255,255,.18);border-radius:50%;left:22%;top:17%}
.portrait-placeholder::after{content:"";position:absolute;width:86%;height:52%;border:1px solid rgba(255,255,255,.15);border-radius:48% 48% 0 0;left:7%;bottom:-13%}
.portrait-placeholder span,.portrait-placeholder p,.portrait-placeholder strong{position:relative;z-index:1}
.portrait-placeholder span{font-size:0.72rem;text-transform:uppercase;letter-spacing:.14em;color:#a9a294}
.portrait-placeholder p{max-width:340px;color:#c2baac;font-size:.82rem}
.portrait-placeholder strong{font-family:var(--serif);font-weight:400;font-size:clamp(2.3rem,4vw,4.8rem);line-height:1}
.portrait-figure{margin:0;position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--coal)}
.portrait-figure picture,.portrait-figure img{width:100%;height:100%}
.portrait-figure img{object-position:center 42%}
.chef__content{align-self:center}
.chef__content h2{font-family:var(--serif);font-size:clamp(3.1rem,5.8vw,7rem);font-weight:400;line-height:.95;letter-spacing:-.04em;margin:22px 0 35px}
.chef__content>p{color:#625b50;max-width:760px}
.chef__intro{font-family:var(--serif);font-size:clamp(1.45rem,2.3vw,2.5rem);line-height:1.35;color:var(--ink)!important}
.chef__details{margin-top:45px}
.chef__details div{display:grid;grid-template-columns:190px 1fr;gap:24px;padding:17px 0;border-top:1px solid var(--line)}
.chef__details div:last-child{border-bottom:1px solid var(--line)}
.chef__details dt{font-size:0.72rem;text-transform:uppercase;letter-spacing:.12em;color:#7c7468}
.chef__details dd{margin:0;font-family:var(--serif);font-size:1.13rem}

.area{display:grid;grid-template-columns:1fr 1fr;background:var(--clay);color:var(--cream);min-height:880px}
.area__copy{padding:clamp(80px,9vw,150px) var(--gutter);display:flex;flex-direction:column;justify-content:center;max-width:790px;margin-left:auto}
.area__copy h2{font-family:var(--serif);font-size:clamp(3.6rem,6.5vw,7.7rem);font-weight:400;line-height:.87;letter-spacing:-.05em;margin:24px 0 35px}
.area__copy>p{color:#ead9cc;max-width:620px}
.area__statement{font-family:var(--serif);font-size:1.45rem;color:var(--cream)!important;border-left:1px solid rgba(255,255,255,.5);padding-left:20px;margin:35px 0!important}
.area__map{display:grid;place-items:center;position:relative;background:#944328;overflow:hidden;padding:60px}
.area__map::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:48px 48px}
.area__map svg{position:relative;z-index:1;width:min(72%,520px);overflow:visible}
.map-island{fill:#e8d7c4;stroke:#f4e9dc;stroke-width:1.4}
.map-points circle{fill:#1f2019;stroke:#f7f1e7;stroke-width:2}
.map-points text{fill:#f7f1e7;font-family:var(--sans);font-size:14px;letter-spacing:.04em}
.map-route{fill:none;stroke:#71311f;stroke-width:2;stroke-dasharray:5 8}
.area__map-note{position:absolute;z-index:2;left:28px;bottom:24px;font-size: 0.72rem;text-transform:uppercase;letter-spacing:.13em;color:#ead5c7}

.journal{padding:clamp(95px,11vw,180px) var(--gutter);background:var(--cream)}
.journal__heading{max-width:var(--max);margin:0 auto 75px;display:grid;grid-template-columns:.43fr 1.1fr .47fr;gap:clamp(25px,4vw,70px);align-items:end}
.journal__heading h2{font-family:var(--serif);font-size:clamp(3.1rem,5.6vw,6.7rem);font-weight:400;line-height:.95;letter-spacing:-.04em;margin:0}
.journal__heading>p{margin:0;color:#696157;font-size:.87rem}
.journal-grid{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:1.12fr .72fr .72fr;grid-template-rows:420px 560px 430px;gap:18px}
.journal-item{margin:0;position:relative;overflow:hidden;background:var(--coal)}
.journal-item picture,.journal-item img{width:100%;height:100%}
.journal-item img{transition:transform .8s var(--ease);filter:saturate(.82)}
.journal-item:hover img{transform:scale(1.035);filter:saturate(1)}
.journal-item::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(18,18,13,.74),transparent 50%)}
.journal-item figcaption{position:absolute;z-index:2;left:22px;right:22px;bottom:18px;color:var(--cream);display:grid;grid-template-columns:30px 1fr;gap:10px}
.journal-item figcaption span{font-size:0.72rem;letter-spacing:.13em;padding-top:5px}
.journal-item figcaption p{font-family:var(--serif);font-size:1.35rem;line-height:1.1;margin:0}
.journal-item figcaption small{grid-column:2;font-size:0.72rem;letter-spacing:.11em;color:#bcb4a6;margin-top:4px}
.journal-item--a{grid-column:1/3;grid-row:1}
.journal-item--b{grid-column:3;grid-row:1/3}
.journal-item--c{grid-column:1;grid-row:2/4}
.journal-item--d{grid-column:2;grid-row:2}
.journal-item--e{grid-column:2/4;grid-row:3}

.reviews{background:var(--ink);color:var(--cream);padding:clamp(95px,10vw,170px) var(--gutter)}
.reviews__heading{max-width:var(--max);margin:0 auto 65px;display:grid;grid-template-columns:.42fr 1.08fr .5fr;gap:50px;align-items:end}
.reviews__heading h2{font-family:var(--serif);font-size:clamp(3.3rem,6vw,7.2rem);font-weight:400;line-height:.9;margin:0}
.reviews__heading>p{margin:0;color:#aca495;font-size:.86rem}
.review-placeholders{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:1.15fr .85fr 1fr;border-top:1px solid var(--line-light);border-bottom:1px solid var(--line-light)}
.review-placeholders article{padding:34px;border-right:1px solid var(--line-light);min-height:360px;display:flex;flex-direction:column}
.review-placeholders article:last-child{border-right:0}
.review-placeholders article>span{font-size:0.72rem;text-transform:uppercase;letter-spacing:.13em;color:#868071}
.review-placeholders blockquote{font-family:var(--serif);font-size:clamp(1.45rem,2.1vw,2.35rem);line-height:1.3;margin:35px 0 auto;color:#d6cec0}
.review-placeholders article>p{font-size:0.72rem;text-transform:uppercase;letter-spacing:.12em;color:#827b6e;margin:25px 0 0}

.enquiry{display:grid;grid-template-columns:minmax(400px,.72fr) minmax(0,1.28fr);gap:clamp(50px,8vw,150px);padding:clamp(95px,11vw,180px) var(--gutter);max-width:var(--max);margin:0 auto;background:var(--paper)}
.enquiry__intro{align-self:start;position:sticky;top:110px}
.enquiry__intro h2{font-family:var(--serif);font-size:clamp(3.5rem,6.5vw,7.7rem);font-weight:400;line-height:.88;letter-spacing:-.05em;margin:20px 0 35px}
.enquiry__intro>p:not(.kicker){max-width:560px;color:#615a50}
.direct-contact{margin-top:45px;border-top:1px solid var(--line)}
.direct-contact a{display:grid;grid-template-columns:85px 1fr;padding:17px 0;border-bottom:1px solid var(--line)}
.direct-contact span{font-size:0.72rem;text-transform:uppercase;letter-spacing:.13em;color:#7b7366}
.direct-contact strong{font-family:var(--serif);font-weight:400;font-size:1.08rem;overflow-wrap:anywhere}
.event-form{align-self:start;background:var(--cream);padding:clamp(28px,4vw,60px);border:1px solid rgba(23,23,17,.1)}
.form-progress{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-bottom:55px;border-bottom:1px solid var(--line)}
.form-progress button{border:0;background:transparent;text-align:left;padding:0 0 14px;color:#8b8376;font-size:0.72rem;text-transform:uppercase;letter-spacing:.12em;position:relative}
.form-progress button::after{content:"";position:absolute;left:0;right:100%;bottom:-1px;height:2px;background:var(--clay);transition:right .35s var(--ease)}
.form-progress button.is-active{color:var(--ink)}
.form-progress button.is-active::after{right:0}
.form-progress span{margin-right:8px}
.form-step legend{font-family:var(--serif);font-size:clamp(2rem,3.3vw,3.8rem);line-height:1.05;margin-bottom:36px;display:block}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px 24px}
.field-grid--small{grid-template-columns:1fr 1fr}
.field{display:grid;gap:9px}
.field--wide{grid-column:1/-1}
.field>span{font-size:0.72rem;text-transform:uppercase;letter-spacing:.12em;color:#6f675b}
.field input,.field select,.field textarea{width:100%;border:0;border-bottom:1px solid #7f776a;background:transparent;border-radius:0;padding:11px 0;color:var(--ink);outline:0;transition:border-color .2s}
.field textarea{resize:vertical;min-height:92px}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--clay);box-shadow:0 1px 0 var(--clay)}
.field input[aria-invalid="true"],.field select[aria-invalid="true"],.field textarea[aria-invalid="true"]{border-color:#a1271d}
.consent{display:flex;gap:12px;align-items:flex-start;font-size: 0.75rem;color:#615a50}
.consent input{margin-top:4px;accent-color:var(--clay)}
.form-footer{display:flex;align-items:center;gap:18px;margin-top:42px;min-height:54px}
.form-footer button{border:0;background:transparent;cursor:pointer}
.form-back{font-size:0.75rem;text-transform:uppercase;letter-spacing:.12em;border-bottom:1px solid currentColor!important;padding:5px 0!important}
.form-next,.form-submit{margin-left:auto;background:var(--ink)!important;color:var(--cream);padding:16px 20px!important;min-width:190px;display:flex;justify-content:space-between;gap:20px;text-transform:uppercase;font-size:0.72rem;letter-spacing:.12em}
.form-message{font-size:0.75rem;color:#9c3528;margin:0;max-width:360px}
.honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}

.closing{min-height:92svh;position:relative;color:var(--cream);display:flex;align-items:center;overflow:hidden;padding:130px var(--gutter)}
.closing__picture,.closing__picture img{position:absolute;inset:0;width:100%;height:100%}
.closing__picture img{object-position:center 46%}
.closing__veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(17,17,12,.88),rgba(17,17,12,.28) 70%),linear-gradient(0deg,rgba(17,17,12,.42),transparent)}
.closing__copy{position:relative;z-index:2;margin-left:clamp(0px,8vw,130px);max-width:1250px}
.closing__copy h2{font-family:var(--serif);font-weight:400;font-size:clamp(3.8rem,7.8vw,9.5rem);line-height:.88;letter-spacing:-.05em;margin:0 0 45px}
.closing__copy h2 em{color:#e8895d}
.closing__location{position:absolute;z-index:2;right:var(--gutter);bottom:30px;margin:0;font-size: 0.72rem;text-transform:uppercase;letter-spacing:.13em;color:#c8c0b1}

/* ---------------------------------------------------------------- footer */
.site-footer{background:var(--ink);color:var(--cream);padding:clamp(56px,6vw,92px) var(--gutter) 26px;border-top:1px solid var(--line-light)}
.site-footer__inner{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.85fr) minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,4vw,64px);max-width:var(--max);margin:0 auto;padding-bottom:clamp(38px,4vw,58px)}

.site-footer__brand{display:grid;align-content:start;gap:14px;max-width:430px}
.site-footer__mark{display:inline-flex;width:48px;height:48px;color:var(--sand)}
.site-footer__mark img{width:48px;height:48px;object-fit:contain}
.site-footer__mark .brand__seal{width:48px;height:48px}
.site-footer__name{margin:0;font-family:var(--serif);font-size:1.42rem;font-weight:500;line-height:1.15;letter-spacing:-.01em}
.site-footer__tagline{margin:-6px 0 0;font-family:var(--serif);font-size:1.02rem;line-height:1.4;color:#d6cdbd}
.site-footer__about{margin:2px 0 0;font-size:.83rem;line-height:1.7;color:#a49c8e;max-width:42ch}
.site-footer__cta{display:inline-flex;align-items:center;gap:10px;justify-self:start;margin-top:6px;padding:13px 22px;border:1px solid rgba(247,241,231,.28);border-radius:999px;font-size:.74rem;text-transform:uppercase;letter-spacing:.13em;transition:background .25s var(--ease),border-color .25s var(--ease),color .25s var(--ease)}
.site-footer__cta i{font-style:normal;transition:transform .25s var(--ease)}
.site-footer__cta:hover{background:var(--ember);border-color:var(--ember);color:#fff}
.site-footer__cta:hover i{transform:translate(3px,-3px)}
.site-footer__social{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 0;padding:0;list-style:none}
.site-footer__social a{display:inline-flex;padding:7px 14px;border:1px solid rgba(247,241,231,.18);border-radius:999px;font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;color:#b5ad9e;transition:color .2s,border-color .2s}
.site-footer__social a:hover{color:var(--cream);border-color:rgba(247,241,231,.5)}

.site-footer__col{display:grid;align-content:start;gap:16px;min-width:0}
.site-footer__col-title{margin:0;font-family:var(--sans);font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.18em;color:#7d7666}
.site-footer__col ul{display:grid;gap:11px;margin:0;padding:0;list-style:none}

.site-footer__nav a{position:relative;display:inline-block;font-size:.88rem;color:#cfc7b8;transition:color .2s var(--ease)}
.site-footer__nav a::after{content:"";position:absolute;left:0;right:100%;bottom:-3px;height:1px;background:currentColor;transition:right .28s var(--ease)}
.site-footer__nav a:hover{color:var(--cream)}
.site-footer__nav a:hover::after{right:0}
.site-footer__nav a[aria-current="page"]{color:var(--sand)}

.site-footer__contact li{display:grid;gap:3px}
.site-footer__label{font-size:.64rem;text-transform:uppercase;letter-spacing:.15em;color:#7d7666}
.site-footer__contact a{font-size:.94rem;color:var(--cream);border-bottom:1px solid rgba(247,241,231,.22);width:max-content;max-width:100%;overflow-wrap:anywhere;transition:border-color .2s,color .2s}
.site-footer__contact a:hover{color:var(--ember);border-color:var(--ember)}

.site-footer__places{display:flex!important;flex-wrap:wrap;gap:6px 8px}
.site-footer__places li{font-size:.72rem;letter-spacing:.02em;color:#a49c8e;padding:5px 10px;border:1px solid rgba(247,241,231,.13);border-radius:4px}
.site-footer__note{margin:0;font-size:.76rem;line-height:1.65;color:#8d8577}
.site-footer__note--season{color:var(--sand)}

.site-footer__legal{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 26px;max-width:var(--max);margin:0 auto;padding-top:24px;border-top:1px solid var(--line-light);font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:#777165}
.site-footer__legal-links,.site-footer__legal-meta{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px}
.site-footer__legal a{transition:color .2s}
.site-footer__legal a:hover{color:var(--cream)}
.site-footer__languages{display:flex;gap:12px}
.site-footer__languages a{color:#777165}
.site-footer__languages a.is-active{color:var(--sand);pointer-events:none}
.mobile-contact-bar{display:none}

.reveal{opacity:1;transform:none}
.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.js .reveal.is-visible{opacity:1;transform:translateY(0)}

@media (max-width:1280px){
  .primary-nav{display:none}.menu-button{display:flex}.header-enquiry{display:none}
  .hero{grid-template-columns:1fr minmax(320px,36vw)}
  .hero__scroll{right:calc(36vw + 20px)}
  .manifesto{grid-template-columns:.45fr 1fr .7fr}
  .process__steps li>div{grid-template-columns:.28fr 1.1fr .8fr}
}

@media (max-width:1050px){
  :root{--gutter:clamp(20px,4.5vw,44px)}
  .hero{grid-template-columns:1fr;grid-template-rows:1fr auto}
  .hero__copy{grid-column:1;padding-left:var(--gutter);padding-right:var(--gutter)}
  .hero__service-note{grid-column:1;grid-row:2;margin-left:30%;border-left:1px solid var(--line-light)}
  .hero__location{display:none}.hero__scroll{right:22px;bottom:230px}
  .manifesto{grid-template-columns:1fr 1fr}
  .manifesto>.section-index{grid-column:1}.manifesto__text{grid-column:1/3}.manifesto__image{grid-column:1}.manifesto__body{grid-column:2;padding-top:0}
  .villa-story{grid-template-columns:1fr}.villa-story__visual{min-height:760px}.villa-story__content{padding-top:85px;padding-bottom:95px}
  .occasions__heading{grid-template-columns:.4fr 1.2fr}.occasions__heading>p{grid-column:2;margin-top:15px}
  .occasion{flex-basis:min(86vw,850px)}.occasion--text,.occasion--dark{flex-basis:min(48vw,520px)}.occasion--portrait{flex-basis:min(62vw,620px)}
  .process__intro{grid-template-columns:1fr}.process__steps li{grid-template-columns:90px 1fr}.process__steps li>div{grid-template-columns:1fr 1.4fr}.process__steps li>div>p:last-child{grid-column:2}.process__eyebrow{grid-column:1;grid-row:1/3}
  .menus{grid-template-columns:1fr}.menus__visual{min-height:780px}.menus__content{padding-top:90px;padding-bottom:100px}
  .service-scenes{min-height:750px}
  .chef{grid-template-columns:.75fr 1.25fr}
  .area{grid-template-columns:1fr}.area__copy{max-width:none;margin:0;padding-top:95px;padding-bottom:75px}.area__map{min-height:680px}
  .journal__heading{grid-template-columns:.4fr 1.2fr}.journal__heading>p{grid-column:2;margin-top:10px}
  .reviews__heading{grid-template-columns:.4fr 1.2fr}.reviews__heading>p{grid-column:2}
  .enquiry{grid-template-columns:1fr}.enquiry__intro{position:static}.direct-contact{display:grid;grid-template-columns:repeat(3,1fr);border-top:0;gap:1px;background:var(--line)}.direct-contact a{background:var(--paper);display:block;border:0;padding:20px}.direct-contact span,.direct-contact strong{display:block}.direct-contact strong{margin-top:8px}
  .site-footer__inner{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr)}
  .site-footer__brand{grid-column:1/-1;max-width:600px}
}

@media (max-width:760px){
  body{padding-bottom:calc(62px + env(safe-area-inset-bottom));scroll-padding-bottom:calc(62px + env(safe-area-inset-bottom))}
  .site-header{grid-template-columns:minmax(0,1fr) auto;gap:10px;padding-top:15px;padding-bottom:15px}.brand{max-width:100%;min-width:0}.brand__name{min-width:0;overflow:hidden}.brand__name strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand__name small{display:none}.brand__seal{width:34px;height:34px}.language-link{display:inline-flex;align-items:center;padding:7px 11px;border:1px solid rgba(255,255,255,.32);border-radius:999px;font-size:.72rem;letter-spacing:.14em}.header-tools{gap:8px;min-width:0;flex-shrink:0}.menu-button{flex-shrink:0}
  .no-js .menu-button{display:none}.no-js .primary-nav{display:flex;grid-column:1/-1;grid-row:2;flex-wrap:wrap;gap:8px 16px;font-size:.68rem}.no-js .site-header{grid-template-rows:auto auto}
  .mobile-menu__inner{padding-top:calc(84px + env(safe-area-inset-top));padding-bottom:calc(26px + env(safe-area-inset-bottom))}
  .mobile-menu__nav a{padding:13px 0}
  .mobile-menu__foot{padding-top:24px}
  .hero{min-height:max(100svh,620px);display:grid;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;padding-bottom:0}
  .hero__picture img{object-position:62% center}
  .hero__shade{background:linear-gradient(0deg,rgba(15,15,10,.9) 0%,rgba(15,15,10,.15) 63%,rgba(15,15,10,.35) 100%)}
  .hero__copy{position:relative;left:auto;right:auto;bottom:auto;grid-column:1;grid-row:1;align-self:end;padding:clamp(120px,18svh,180px) var(--gutter) clamp(28px,6svh,56px);max-width:none}
  .hero__copy .kicker{margin-bottom:15px}
  .hero h1{font-size:clamp(3.6rem,17vw,6.5rem);line-height:.82}
  .hero h1 span:nth-child(2){padding-left:0}.hero h1 em{padding-left:12vw}
  .hero__service-note{position:relative;left:auto;right:auto;bottom:auto;grid-column:1;grid-row:2;margin:0;padding:25px var(--gutter) 28px;background:rgba(24,24,18,.93)}
  .hero__service-note>p{font-size:1.15rem;margin-bottom:18px}.hero__actions{gap:16px}.button{min-width:190px;padding:13px 15px}.underlink{font-size:0.72rem}.hero__side-note,.hero__scroll{display:none}
  .section-index{margin-bottom:14px}
  .manifesto{display:block;padding-top:80px;padding-bottom:90px}.manifesto__text h2{font-size:clamp(2.65rem,12vw,4.7rem)}.manifesto__image{min-height:480px;margin:45px 0 35px}.manifesto__body .lead{font-size:1.45rem}.manifesto__facts div{grid-template-columns:80px 1fr}
  .villa-story__visual{min-height:610px}.villa-story__stamp{max-width:80%;padding:17px 20px}.villa-story__content{padding:70px var(--gutter) 80px}.villa-story__content h2{font-size:clamp(3rem,13vw,5rem)}.villa-story__chapters article{grid-template-columns:64px 1fr;padding:24px 0}
  .occasions{padding-top:80px;padding-bottom:95px}.occasions__heading{display:block;margin-bottom:45px}.occasions__heading h2{font-size:clamp(2.9rem,13vw,5rem)}.occasions__heading>p{margin-top:25px}.occasion-rail{gap:12px}.occasion{flex-basis:88vw;min-height:620px}.occasion--wide{grid-template-columns:1fr;grid-template-rows:1fr auto}.occasion--text,.occasion--dark{flex-basis:76vw}.occasion--portrait{flex-basis:80vw}.occasion__copy{padding:25px}.occasion__copy h3{font-size:2.35rem}.rail-instruction{margin-left:var(--gutter);padding-left:0}
  .process{padding-top:80px;padding-bottom:90px}.process__intro{margin-bottom:45px}.process__intro h2{font-size:clamp(3.2rem,14vw,5.4rem)}.process__steps li{grid-template-columns:48px 1fr;gap:15px;padding:28px 0}.process__number{font-size:3.4rem}.process__steps li>div{display:block}.process__eyebrow{margin-bottom:10px}.process__steps h3{font-size:1.85rem}.process__steps li>div>p:last-child{margin-top:12px}
  .menus__visual{min-height:670px}.menus__quote{left:var(--gutter);right:var(--gutter);bottom:28px}.menus__content{padding:75px var(--gutter) 85px}.menus__content h2{font-size:clamp(3rem,13vw,5rem)}.menu-directions{grid-template-columns:1fr}.menu-directions div:nth-child(odd){border-right:0;padding-right:0}.menu-directions div:nth-child(even){padding-left:0}
  .service-choice{padding-top:80px}.service-choice__heading{display:block;margin-bottom:45px}.service-choice__heading h2{font-size:clamp(3rem,13vw,5rem)}.service-scenes{display:block}.service-scene{min-height:690px}.service-scene--hosted{clip-path:none}.service-scene--hosted .service-scene__copy{padding-left:var(--gutter)}.service-scene__copy{width:100%;min-width:0;max-width:none;padding:38px var(--gutter)}.service-scene__copy h3{font-size:3rem}
  .chef{display:block;padding-top:85px;padding-bottom:95px}.portrait-placeholder,.portrait-figure{max-width:560px;margin:0 auto}.chef__content{margin-top:65px}.chef__content h2{font-size:clamp(3rem,13vw,5.1rem)}.chef__details div{grid-template-columns:1fr;gap:4px}
  .area{min-height:0}.area__copy{padding:80px var(--gutter)}.area__copy h2{font-size:clamp(3.2rem,14vw,5.4rem)}.area__map{min-height:590px;padding:40px 20px}.area__map svg{width:88%}
  .journal{padding-top:80px;padding-bottom:90px}.journal__heading{display:block;margin-bottom:45px}.journal__heading h2{font-size:clamp(3rem,13vw,5rem)}.journal__heading>p{margin-top:24px}.journal-grid{display:block}.journal-item{height:520px;margin-bottom:12px}.journal-item--a,.journal-item--e{height:390px}.journal-item figcaption p{font-size:1.2rem}
  .reviews{padding-top:80px;padding-bottom:90px}.reviews__heading{display:block;margin-bottom:45px}.reviews__heading h2{font-size:clamp(3.2rem,14vw,5.4rem)}.reviews__heading>p{margin-top:24px}.review-placeholders{display:block}.review-placeholders article{min-height:300px;border-right:0;border-bottom:1px solid var(--line-light);padding:28px 0}.review-placeholders article:last-child{border-bottom:0}
  .enquiry{padding-top:80px;padding-bottom:90px}.enquiry__intro h2{font-size:clamp(3.3rem,14vw,5.5rem)}.direct-contact{grid-template-columns:1fr}.event-form{padding:28px 20px}.form-progress button{font-size:0.72rem}.form-step legend{font-size:2.15rem}.field-grid,.field-grid--small{grid-template-columns:1fr}.field--wide{grid-column:auto}.form-footer{flex-wrap:wrap}.form-message{order:3;width:100%}.form-next,.form-submit{min-width:170px}
  .closing{min-height:88svh;padding:90px var(--gutter)}.closing__copy{margin:0}.closing__copy h2{font-size:clamp(3.35rem,15vw,6rem)}.closing__location{left:var(--gutter);right:auto}
  .site-footer{padding-bottom:calc(84px + env(safe-area-inset-bottom))}
  .site-footer__inner{grid-template-columns:1fr 1fr;gap:34px 28px}
  .site-footer__brand{grid-column:1/-1;max-width:none}
  .site-footer__area{grid-column:1/-1}
  .site-footer__legal{flex-direction:column;align-items:flex-start;gap:14px}
  .site-footer__legal-links,.site-footer__legal-meta{gap:10px 18px}
  .mobile-contact-bar{position:fixed;z-index:950;left:0;right:0;bottom:0;height:calc(62px + env(safe-area-inset-bottom));display:grid;grid-template-columns:.42fr .58fr;background:var(--ink);color:var(--cream);border-top:1px solid rgba(255,255,255,.16);padding-bottom:env(safe-area-inset-bottom)}.mobile-contact-bar a,.mobile-contact-bar__disabled{display:flex;align-items:center;justify-content:center;min-height:44px;font-size:0.72rem;text-transform:uppercase;letter-spacing:.12em}.mobile-contact-bar a+ a{background:var(--ember);justify-content:space-between;padding:0 18px}.mobile-contact-bar__disabled{color:rgba(247,241,231,.52)}
}

@media (max-width:420px){
  .menu-button__label{display:none}
  .hero h1{font-size:15.4vw}.hero__service-note>p{font-size:1.04rem}.hero__actions{justify-content:space-between}.button{min-width:175px}.underlink{font-size: 0.72rem}
  .occasion{min-height:570px}.occasion__image{min-height:350px}
  .site-footer__inner{grid-template-columns:1fr}
  .site-footer__brand,.site-footer__area{grid-column:auto}
  .site-footer__cta{width:100%;justify-content:space-between}
}

@media (max-width:360px){
  .site-header{padding-inline:14px}.header-tools{gap:5px}.menu-button{padding-left:5px}.menu-button__label{display:none}
}

/* Progressive enhancement and accessible validation feedback. */
.no-js .form-step[hidden]{display:block!important}
.no-js [data-form-next],.no-js [data-form-back]{display:none!important}
.no-js [data-form-submit][hidden]{display:flex!important}
.form-message[hidden],.field-error[hidden]{display:none}
.field-error{display:block;color:#8f2118;font-size:.78rem;line-height:1.45}
.field:has(.field-error:not([hidden]))::after{background:#8f2118;transform:scaleX(1)}

/* Keep image crops stable while logos/icons retain their natural proportions. */
.hero__picture img,.page-hero__picture img,.manifesto__image img,.villa-story__visual img,
.occasion__image img,.menus__visual img,.service-scene img,.portrait-figure img,
.journal-item img,.closing__picture img{object-fit:cover}
.brand__logo img{object-fit:contain}
.enquiry{scroll-margin-top:100px;scroll-margin-bottom:calc(62px + env(safe-area-inset-bottom))}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .js .reveal{opacity:1;transform:none}
  .manifesto__image img,.menus__visual img{transform:none!important}
}
