@font-face {
font-family:"Instrument Serif";
  src:url('./assets/instrument-serif-regular.woff2') format('woff2'), url('./assets/instrument-serif-regular.ttf') format('truetype');
  font-display:swap;
  font-weight:400;
  font-style:normal
}
@font-face {
font-family:Manrope;
  src:url('./assets/manrope-400.woff2') format('woff2'), url('./assets/manrope-400.ttf') format('truetype');
  font-display:swap;
  font-weight:400
}
@font-face {
font-family:Manrope;
  src:url('./assets/manrope-600.woff2') format('woff2'), url('./assets/manrope-600.ttf') format('truetype');
  font-display:swap;
  font-weight:600
}
:root {
--lime-hover:#c9df6a;
  --photo-scrim:#08090888;
  --modal-scrim:#080908cc;
  --menu-line:rgba(8,9,8,.22);
  --type-menu:1.5rem;
  --type-hero:clamp(3.5rem,7.2vw,6rem);
  --type-heading:clamp(2.5rem,5vw,4.5rem);
  --type-title:clamp(2rem,2.7vw,2.5rem);
  --type-body:1rem;
  --type-ui:.875rem;
  --type-caption:.75rem;
  --leading-body:1.75;
  --leading-heading:1.08;
  --control-border:#74766d;
  --ink-muted:#55594c;
  --space-small:.5rem;
  --space-text:1rem;
  --space-group:1.5rem;
  --space-block:2rem;
  --space-column:3rem;
  --space-section:clamp(4rem,7vw,7rem);
  --black:#080908;
  --surface:#111310;
  --ivory:#f3efe6;
  --muted:#aaa9a3;
  --lime:#b7d33d;
  --wine:#641f2b;
  --line:rgba(243,239,230,.17);
  --serif:"Instrument Serif",Georgia,serif;
  --sans:Manrope,Arial,sans-serif;
  --gutter:clamp(22px,5vw,88px)
}
* {
box-sizing:border-box
}
html {
scroll-behavior:smooth;
  scroll-padding-top:100px
}
body {
margin:0;
  background:var(--black);
  color:var(--ivory);
  font-family:var(--sans);
  font-size:var(--type-body);
  line-height:var(--leading-body);
  -webkit-font-smoothing:antialiased;
  letter-spacing:.005em;
}
body.menu-open {
overflow:hidden
}
a {
color:inherit;
  text-decoration:none
}
button,input,select,textarea {
font:inherit
}
button,a,input,select,textarea {
-webkit-tap-highlight-color:transparent
}
button {
cursor:pointer
}
a,button {
touch-action:manipulation
}
button {
color:inherit
}
img {
display:block;
  width:100%;
  height:100%;
  object-fit:cover
}
figure {
margin:0
}
p {
margin:0 0 1.2em
}
h1,h2,h3,h4 {
font-weight:400;
  margin:0;
  line-height:1.05
}
h1,h2,h3 {
font-family:var(--serif)
}
h2 {
font-size:var(--type-heading);
  letter-spacing:-.02em;
  line-height:var(--leading-heading);
}
h3 {
font-size:var(--type-title);
  line-height:1.15;
}
em {
font-weight:400
}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible {
outline:2px solid var(--lime);
  outline-offset:5px
}
::selection {
background:var(--lime);
  color:var(--black)
}
.skip-link {
position:fixed;
  top:-100px;
  left:16px;
  z-index:200;
  background:var(--lime);
  color:var(--black);
  padding:12px
}
.skip-link:focus {
top:10px
}
.shell {
max-width:1600px;
  margin:auto;
  padding-inline:var(--gutter)
}
.section {
padding-top:var(--space-section);padding-bottom:var(--space-section);
  scroll-margin-top:0
}
.eyebrow {
font-size:var(--type-caption);
  text-transform:uppercase;
  letter-spacing:.2em;
  line-height:1.6;
  font-weight:600
}
.muted {
color:var(--muted)
}
.accent {
color:var(--lime)
}
.section-top {
display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:28px;
  margin-bottom:44px
}
.section-top>p {
max-width:340px;
  color:var(--muted);
  margin:0
}
.section-top .eyebrow {
margin-bottom:17px
}
.button {
display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  min-height:52px;
  padding:14px 23px;
  border:1px solid var(--lime);
  background:var(--lime);
  color:var(--black);
  font-size:var(--type-ui);
  font-weight:600;
  transition:background .2s,color .2s;
  line-height:1.5
}
.button:hover {
background:#c9df6a;
  border-color:#c9df6a
}
.button:disabled {
  background:var(--surface);
  border-color:var(--control-border);
  color:var(--muted);
  cursor:not-allowed;
}
.button.secondary {
background:transparent;
  color:var(--ivory);
  border-color:var(--line)
}
.button.secondary:hover {
border-color:var(--ivory);
  background:var(--surface)
}
.arrow {
line-height:1
}
.text-link {
display:inline-flex;
  align-items:center;
  gap:18px;
  font-size:var(--type-ui);
  border-bottom:1px solid currentColor;
  padding-bottom:5px
}
.text-link:hover {
color:var(--lime)
}
.button-row {
display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:25px
}
.site-header {
height:94px;
  position:sticky;
  top:0;
  z-index:30;
  background:var(--black);
  border-bottom:1px solid var(--line);
  backdrop-filter:none;
}
.header-inner {
height:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px
}
.brand {
display:inline-flex;
  align-items:center;
  gap:13px;
  flex-shrink:1;
  min-height:44px;
  min-width:0
}
.brand img {
width:42px;
  height:31px;
  object-fit:contain;
  flex-shrink:0
}
.brand span {
font-size:var(--type-caption);
  letter-spacing:.15em;
  overflow-wrap:anywhere
}
.nav-links {
display:flex;
  align-items:center;
  gap:29px
}
.nav-links>a {
font-size:var(--type-ui);
  position:relative
}
.nav-links>a:not(.nav-book):after {
content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:-8px;
  height:1px;
  background:var(--lime);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .2s
}
.nav-links>a:hover:after {
transform:scaleX(1)
}
.nav-links .nav-book {
border:1px solid var(--control-border);
  padding:10px 16px;
  margin-left:12px
}
.nav-links .nav-book:hover {
background:var(--ivory);
  color:var(--black)
}
.menu-toggle {
display:none;
  border:0;
  background:none;
  padding:12px 0;
  font-size:var(--type-ui)
}
.hero {
display:grid;
  grid-template-columns:47% 53%;
  min-height:min(750px,calc(100svh - 94px));
  position:relative;
  max-width:1800px;
  margin:auto
}
.hero-copy {
padding:clamp(55px,7vw,110px) 30px 36px var(--gutter);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  position:relative;
  z-index:1
}
.hero-copy>.eyebrow {
display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:27px
}
.status-dot {
display:inline-block;
  width:5px;
  height:5px;
  background:var(--lime);
  border-radius:50%
}
.hero h1 {
font-size:var(--type-hero);
  letter-spacing:-.025em;
  line-height:1.04;
  margin-bottom:27px
}
.hero h1 em {
color:var(--lime)
}
.hero-intro {
max-width:375px;
  font-size:var(--type-body);
  color:var(--muted);
  line-height:var(--leading-body);
  margin-bottom:33px
}
.hero .button-row {
gap:22px
}
.hero .text-link {
font-size:var(--type-ui);
}
.hero-foot {
margin-top:60px;
  border-top:1px solid var(--line);
  padding-top:20px;
  display:flex;
  gap:30px;
  color:var(--muted);
  font-size:var(--type-ui);
  letter-spacing:.04em;
  width:100%;
  max-width:430px
}
.hero-media {
position:relative;
  min-height:650px;
  overflow:hidden
}
.hero-media>img {
position:absolute;
  inset:0;
  object-position:center 45%;
  filter:brightness(.84)
}
.hero-media:after {
content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(0deg,var(--photo-scrim),transparent 35%)
}
.service-rail {
border-block:1px solid var(--line);
  padding-top:22px;padding-bottom:22px;
}
.service-rail .shell {
display:flex;
  justify-content:space-between;
  gap:25px;
  flex-wrap:wrap
}
.service-rail a {
font-size:var(--type-ui);
  color:var(--muted)
}
.service-rail a:hover {
color:var(--lime)
}
.intro {
display:grid;
  grid-template-columns:1fr 1.15fr;
  gap:clamp(40px,8vw,140px);
  align-items:center
}
.intro figure {
aspect-ratio:4/4.25;
  position:relative;
  max-width:490px
}
.intro figcaption {
position:absolute;
  bottom:18px;
  left:20px;
  color:var(--ivory);
  font-size:var(--type-caption);
  text-transform:uppercase;
  letter-spacing:.15em;
  background:var(--black);
  padding:4px 8px;
  max-width:calc(100% - 40px)
}
.intro-copy .eyebrow {
margin-bottom:25px
}
.intro-copy h2 {
margin-bottom:28px;
  font-size:var(--type-heading);
  line-height:var(--leading-heading);
  letter-spacing:-.02em;
}
.intro-copy>p:not(.eyebrow) {
max-width:465px;
  color:var(--muted);
  font-size:var(--type-body);
  line-height:var(--leading-body);
}
.inclusion-list {
padding:0;
  margin:32px 0 0;
  list-style:none;
  display:grid;
  grid-template-columns:1fr 1fr;
  column-gap:25px
}
.inclusion-list li {
border-top:1px solid var(--line);
  padding:14px 0;
  font-size:var(--type-caption);
  display:flex;
  gap:14px
}
.inclusion-list span {
color:var(--lime);
  font-size:var(--type-caption);
  padding-top:2px
}
.experience-section {
border-top:1px solid var(--line);
  background:var(--surface)
}
.category-tabs {
display:flex;
  gap:30px;
  border-bottom:1px solid var(--line);
  margin-bottom:32px
}
.category-tabs button {
background:none;
  border:0;
  border-bottom:2px solid transparent;
  padding:12px 0 17px;
  font-size:var(--type-ui);
  color:var(--muted);
  white-space:nowrap
}
.category-tabs button[aria-selected=true] {
border-color:var(--lime);
  color:var(--ivory)
}
.category-tabs button:hover {
color:var(--ivory)
}
.service-grid {
display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:26px
}
.service-card {
display:flex;
  flex-direction:column;
  min-width:0
}
.service-card figure {
aspect-ratio:1.3;
  overflow:hidden;
  margin-bottom:22px;
  position:relative
}
.service-card img {
transition:transform .5s
}
.service-card:hover img {
transform:scale(1.035)
}
.service-card .eyebrow {
font-size:var(--type-caption);
  color:var(--lime);
  margin-bottom:9px
}
.service-card h3 {
font-size:var(--type-title);
  margin-bottom:12px;
  line-height:1.15;
}
.service-card p {
font-size:var(--type-body);
  color:var(--muted);
  max-width:350px;
  line-height:var(--leading-body);
}
.service-card-bottom {
display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-top:auto;
  padding-top:17px;
  border-top:1px solid var(--line);
  font-size:var(--type-ui);
}
.round-arrow {
border:0;
  width:24px;
  height:24px;
  display:grid;
  place-items:center;
  flex-shrink:0;
  
  transition:background .2s,color .2s
}
.service-card:hover .round-arrow {
color:var(--lime)
}
[hidden] {
display:none!important
}
.section-note {
display:flex;
  justify-content:space-between;
  gap:30px;
  align-items:baseline;
  margin-top:38px;
  color:var(--muted);
  font-size:var(--type-ui);
}
.section-note p {
margin:0;
  max-width:620px
}
.section-note .text-link {
white-space:nowrap
}
.menu-section {
background:var(--ivory);
  color:var(--black);
  position:relative
}
.menu-section .section-top>p {
color:var(--ink-muted)
}
.menu-layout {
display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:clamp(36px,8vw,130px);
  align-items:start
}
.menu-layout h2 {
margin-bottom:24px
}
.menu-layout>div>p {
color:var(--ink-muted);
  font-size:var(--type-body);
  max-width:360px;
  line-height:var(--leading-body);
}
.menu-tabs {
margin:30px 0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:9px
}
.menu-tabs button {
border:0;
  background:transparent;
  color:var(--ink-muted);
  font-family:var(--serif);
  
  line-height:1.3;
  padding:7px 0;

  font-size:var(--type-menu);
}
.menu-tabs button[aria-selected=true] {
color:#080908;
  border-bottom:1px solid #641f2b
}
.menu-tabs button[aria-selected=true]:after {
opacity:1
}
.menu-sheet {
padding:35px 0 0;
  border-top:1px solid var(--menu-line)
}
.menu-sheet-header {
display:flex;
  justify-content:space-between;
  gap:15px;
  align-items:baseline;
  padding-bottom:28px;
  border-bottom:1px solid var(--menu-line)
}
.menu-sheet-header h3 {
font-size:var(--type-title);
  line-height:1.15;
}
.menu-sheet-header>span {
font-size:var(--type-caption);
  text-transform:uppercase;
  letter-spacing:.15em;
  color:var(--ink-muted)
}
.menu-course {
display:grid;
  grid-template-columns:110px 1fr;
  gap:20px;
  padding-top:19px;padding-bottom:19px;
  border-bottom:1px solid var(--menu-line)
}
.menu-course h4 {
font-family:var(--sans);
  font-size:var(--type-caption);
  text-transform:none;
  letter-spacing:.04em;
  line-height:1.8;
  color:var(--ink-muted);
}
.menu-course ul {
list-style:none;
  padding:0;
  margin:0
}
.menu-course li {
font-size:var(--type-body);
  line-height:var(--leading-body);
  margin-bottom:5px
}
.menu-sheet .fine {
color:var(--ink-muted)
}
.fine {
font-size:var(--type-caption);
  line-height:1.7;
  color:var(--muted);
  margin-top:21px
}
.menu-section .text-link:hover {
color:var(--wine)
}
.meal-prep {
border-bottom:1px solid var(--line)
}
.prep-layout {
display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:clamp(35px,8vw,130px);
  align-items:start
}
.prep-copy h2 {
margin:20px 0 25px;
  font-size:var(--type-heading);
  line-height:var(--leading-heading);
  letter-spacing:-.02em;
}
.prep-copy>p:not(.eyebrow) {
max-width:370px;
  font-size:var(--type-body);
  color:var(--muted);
  line-height:var(--leading-body);
}
.prep-copy figure {
aspect-ratio:1.55;
  margin-top:32px;
  max-width:400px
}
.prep-builder {
background:transparent;
  border:0;
  padding:32px 0;
  border-top:1px solid var(--line);
}
.prep-builder h3 {
font-size:var(--type-title);
  margin-bottom:24px;
  line-height:1.15;
}
.builder-row {
border:0;
  border-bottom:1px solid var(--line);
  margin:0 0 19px;
  padding:0 0 19px
}
.builder-row legend,.field-label {
font-size:var(--type-ui);
  margin-bottom:12px;
  display:block
}
.segmented {
display:flex;
  gap:8px;
  flex-wrap:wrap
}
.choice {
position:relative
}
.choice input {
position:absolute;
  inset:0;
  opacity:0;
  width:100%;
  height:100%;
  min-height:0;
  padding:0;
  margin:0;
  z-index:1;
  cursor:pointer
}
.choice span {
display:flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  border:1px solid var(--control-border);
  padding:10px 15px;
  font-size:var(--type-ui);
  cursor:pointer;
  min-width:55px;
  text-align:center
}
.choice input:checked+span {
background:var(--ivory);
  border-color:var(--ivory);
  color:var(--black)
}
.choice input:focus-visible+span {
outline:2px solid var(--lime);
  outline-offset:3px
}
.builder-inline {
display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px
}
.builder-inline label {
font-size:var(--type-ui);
}
.builder-inline input,.builder-inline select {
margin-top:10px
}
.builder-summary {
display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  margin:28px 0 24px
}
.builder-summary strong {
font-family:var(--serif);
  
  line-height:1;

  font-size:var(--type-title);
}
.builder-summary span {
font-size:var(--type-caption);
  color:var(--muted);
  display:block;
  margin-top:7px
}
.builder-summary>p {
font-size:var(--type-caption);
  color:var(--muted);
  max-width:170px;
  margin:0
}
.prep-builder>.button {
width:100%
}
.kitchen-section .section-top {
align-items:start
}
.kitchen-section .section-top h2 {
max-width:600px
}
.kitchen-photo {
aspect-ratio:2.1;
  overflow:hidden;
  margin-bottom:28px
}
.kitchen-photo img {
object-position:center 40%;
  filter:brightness(.85)
}
.kitchen-caption {
display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  max-width:900px;
  margin-left:auto
}
.kitchen-caption p {
font-size:var(--type-body);
  color:var(--muted);
  margin:0;
  line-height:var(--leading-body);
}
.gallery {
display:grid;
  grid-template-columns:1.1fr .8fr 1fr;
  gap:20px;
  align-items:start;
  margin-top:60px
}
.gallery button {
border:0;
  padding:0;
  background:none;
  display:block;
  width:100%;
  text-align:left
}
.gallery button:nth-child(1) {
padding-top:50px
}
.gallery button:nth-child(3) {
padding-top:100px
}
.gallery figure {
aspect-ratio:.85;
  overflow:hidden
}
.gallery button:nth-child(2) figure {
aspect-ratio:.72
}
.gallery img {
transition:transform .5s
}
.gallery button:hover img {
transform:scale(1.035)
}
.gallery figcaption {
font-size:var(--type-caption);
  color:var(--muted);
  margin-top:13px;
  display:flex;
  justify-content:space-between
}
.process-section {
background:var(--surface);
  border-block:1px solid var(--line)
}
.process-grid {
display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:42px;
  margin-top:50px
}
.process-step {
border-top:1px solid var(--line);
  padding-top:24px
}
.process-step>span {
font-size:var(--type-caption);
  color:var(--lime)
}
.process-step h3 {
font-size:var(--type-title);
  margin:20px 0 16px;
  line-height:1.15;
}
.process-step p {
font-size:var(--type-body);
  color:var(--muted);
  max-width:330px;
  line-height:var(--leading-body);
}
.faq-layout {
display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:90px
}
.faq-layout h2 {
margin-top:18px;
  font-size:var(--type-heading);
  line-height:var(--leading-heading);
  letter-spacing:-.02em;
}
.faq-list details {
border-top:1px solid var(--line);
  padding-top:12px;padding-bottom:12px;
}
.faq-list details:last-child {
border-bottom:1px solid var(--line)
}
.faq-list summary {
list-style:none;
  display:flex;
  justify-content:space-between;
  gap:22px;
  font-size:var(--type-ui);
  cursor:pointer;
  min-height:44px;
  align-items:center
}
.faq-list summary::-webkit-details-marker {
display:none
}
.faq-list summary:after {
content:'+';
  
  line-height:1;
  color:var(--lime)
}
.faq-list details[open] summary:after {
content:'−'
}
.faq-list details p {
font-size:var(--type-body);
  color:var(--muted);
  margin:19px 35px 0 0;
  line-height:var(--leading-body);
}
.enquire-section {
border-top:1px solid var(--wine);
  background:var(--surface)
}
.enquire-layout {
display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:clamp(40px,8vw,130px)
}
.enquire-copy h2 {
margin:21px 0 26px;
  font-size:var(--type-heading);
  line-height:var(--leading-heading);
  letter-spacing:-.02em;
}
.enquire-copy>p:not(.eyebrow) {
color:var(--muted);
  font-size:var(--type-body);
  max-width:350px;
  line-height:var(--leading-body);
}
.contact-links {
display:flex;
  align-items:flex-start;
  flex-direction:column;
  gap:21px;
  margin-top:36px
}
.contact-links .text-link {
font-size:var(--type-ui);
}
.contact-links small {
font-size:var(--type-caption);
  color:var(--muted)
}
.enquiry-form {
display:grid;
  grid-template-columns:1fr 1fr;
  gap:22px 20px
}
.enquiry-form label {
font-size:var(--type-ui);
  display:block;
  color:var(--ivory)
}
.enquiry-form input,.enquiry-form select,.enquiry-form textarea {
margin-top:9px
}
input,select,textarea {
width:100%;
  min-height:50px;
  border:1px solid var(--control-border);
  background:#080908;
  color:var(--ivory);
  border-radius:0;
  padding:12px 14px;
  font-size:var(--type-body);
  line-height:var(--leading-body);
  color-scheme:dark
}
input::placeholder,textarea::placeholder {
color:var(--muted)
}
textarea {
resize:vertical;
  min-height:100px
}
.full-width {
grid-column:1/-1
}
.enquiry-form .button {
width:100%
}
.enquiry-form .fine {
margin:0
}
.site-footer {
padding:55px 0 25px
}
.footer-top {
display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:40px;
  padding-bottom:50px
}
.footer-top p {
font-size:var(--type-caption);
  color:var(--muted);
  max-width:260px;
  margin:0
}
.footer-nav {
display:flex;
  gap:25px;
  font-size:var(--type-ui);
}
.footer-bottom {
display:flex;
  justify-content:space-between;
  gap:25px;
  border-top:1px solid var(--line);
  padding-top:23px;
  color:var(--muted);
  font-size:var(--type-caption);
}
.footer-bottom div {
display:flex;
  gap:25px;
  flex-wrap:wrap
}
.footer-bottom a {
  display:inline-flex;
  align-items:center;
  min-height:44px;
}
dialog {
background:#111310;
  color:var(--ivory);
  border:1px solid var(--control-border);
  padding:35px;
  max-width:min(620px,calc(100vw - 32px));
  max-height:90svh;
  width:100%;
  overscroll-behavior:contain
}
dialog::backdrop {
background:var(--modal-scrim);
  backdrop-filter:blur(4px)
}
.dialog-close {
position:absolute;
  right:14px;
  top:10px;
  padding:8px;
  border:0;
  background:none;
  
  line-height:1
}
.dialog-heading {
font-size:var(--type-title);
  margin:10px 0 20px;
  line-height:1.15;
  padding-inline-end:28px;
}
.review-details {
white-space:pre-wrap;
  font-family:var(--sans);
  font-size:var(--type-body);
  line-height:var(--leading-body);
  background:#080908;
  padding:20px;
  max-height:40svh;
  overflow:auto;
  color:var(--ivory);
  margin:22px 0
}
.dialog-actions {
display:flex;
  gap:18px;
  align-items:center;
  flex-wrap:wrap
}
.status-message {
min-height:20px;
  font-size:var(--type-caption);
  margin:15px 0 0;
  color:var(--lime)
}
.gallery-dialog {
max-width:1000px;
  width:calc(100vw - 32px);
  padding:24px;
}
.gallery-dialog img {
max-height:76svh;
  object-fit:contain
}
.gallery-dialog .dialog-close {
background:var(--surface)
}
.gallery-dialog p {
font-size:var(--type-caption);
  margin:12px 5px 0
}
.detail-hero {
display:grid;
  grid-template-columns:1fr 1fr;
  border-bottom:1px solid var(--line);
  min-height:600px
}
.detail-title {
padding:75px var(--gutter) 65px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center
}
.back-link {
font-size:var(--type-ui);
  color:var(--muted);
  margin-bottom:42px;
  display:inline-flex;
  align-items:center;
  min-height:44px
}
.detail-title h1 {
letter-spacing:-.03em;
  margin:17px 0 24px;

  font-size:var(--type-heading);
}
.detail-title>p:not(.eyebrow) {
color:var(--muted);
  font-size:var(--type-body);
  max-width:420px;
  line-height:var(--leading-body);
}
.detail-rate {
font-size:var(--type-ui);
  color:var(--lime);
  margin:8px 0 26px
}
.detail-image {
position:relative;
  min-height:550px
}
.detail-image img {
position:absolute;
  inset:0;
  filter:brightness(.85)
}
.detail-content {
display:grid;
  grid-template-columns:1fr .85fr;
  gap:clamp(40px,8vw,130px)
}
.detail-main h2 {
font-size:var(--type-heading);
  margin-bottom:25px;
  line-height:var(--leading-heading);
  letter-spacing:-.02em;
}
.detail-main p {
font-size:var(--type-body);
  color:var(--muted);
  max-width:660px;
  line-height:var(--leading-body);
}
.detail-main h3 {
font-size:var(--type-title);
  margin:38px 0 16px;
  line-height:1.15;
}
.detail-main ul {
padding-left:19px;
  color:var(--muted);
  font-size:var(--type-body);
  line-height:var(--leading-body);
}
.detail-main li {
padding-bottom:10px
}
.rates-box {
padding:30px;
  background:var(--surface);
  border-top:1px solid var(--wine);
  align-self:start
}
.rates-box h3 {
font-size:var(--type-title);
  margin-bottom:24px;
  line-height:1.15;
}
.rate-row {
border-top:1px solid var(--line);
  padding:17px 0;
  display:flex;
  justify-content:space-between;
  gap:25px;
  font-size:var(--type-ui);
}
.rate-row strong {
font-weight:600;
  text-align:right
}
.rates-box>.button {
margin-top:24px;
  width:100%
}
.detail-ending {
text-align:center;
  border-top:1px solid var(--line);
  padding-top:64px;padding-bottom:64px;
}
.detail-ending h2 {
font-size:var(--type-heading);
  margin-bottom:23px;
  line-height:var(--leading-heading);
  letter-spacing:-.02em;
}
.prose {
max-width:800px;
  padding-top:70px;padding-bottom:70px;
}
.prose h1 {
margin-bottom:30px;

  font-size:var(--type-heading);
}
.prose h2 {
margin:35px 0 17px;

  font-size:var(--type-title);
}
.prose p,.prose li {
font-size:var(--type-body);
  color:var(--muted);
  line-height:var(--leading-body);
}



@media(min-width:1800px) {.hero-copy {
padding-left:90px
}



}

@media(max-width:1100px) {.nav-links {
gap:20px
}
.nav-links .nav-book {
margin-left:0
}
.hero {
grid-template-columns:49% 51%;
  min-height:650px
}
.hero h1 {
font-size:var(--type-hero);
  line-height:1.04;
  letter-spacing:-.025em;
}
.hero-copy {
padding-right:22px
}
.hero .button-row {
gap:18px
}
.hero .text-link {
margin-top:5px;
  font-size:var(--type-ui);
}
.hero-foot {
margin-top:35px;
  font-size:var(--type-ui);
}
.hero-media {
min-height:650px
}
.intro,.menu-layout,.prep-layout,.enquire-layout {
gap:50px
}
.service-card h3 {
font-size:var(--type-title);
  line-height:1.15;
}
.service-card figure {
aspect-ratio:1.05
}
.service-grid {
gap:22px
}
.faq-layout {
gap:50px
}
.prep-builder {
padding:32px 0;
  background:transparent;
  border:0;
  border-top:1px solid var(--line);
}
.footer-top {
flex-wrap:wrap
}
.footer-nav {
gap:20px;
  font-size:var(--type-ui);
}
.detail-title {
padding-inline:var(--gutter)
}



}


@media(max-width:760px) {html {
scroll-padding-top:76px
}
.site-header {
height:76px;
  background:var(--black);
  backdrop-filter:none;
}
.brand img {
width:34px;
  height:26px
}
.brand span {
font-size:var(--type-caption);
  letter-spacing:.13em
}
.menu-toggle {
display:flex;
  align-items:center;
  gap:12px
}
.nav-links {
display:none;
  position:fixed;
  top:76px;
  left:0;
  right:0;
  height:calc(100svh - 76px);
  background:var(--black);
  padding:40px var(--gutter);
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
  gap:0;
  overflow:auto
}
.nav-links.is-open {
display:flex
}
.nav-links>a {
font-family:var(--serif);
  font-size:var(--type-ui);
  padding:18px 0;
  border-bottom:1px solid var(--line)
}
.nav-links .nav-book {
font-family:var(--sans);
  font-size:var(--type-body);
  padding:17px;
  margin-top:28px;
  text-align:center;
  background:var(--lime);
  color:var(--black);
  border-color:var(--lime)
}
.section {
padding-top:var(--space-section);padding-bottom:var(--space-section);
}
.hero {
grid-template-columns:1fr;
  min-height:0
}
.hero-copy {
padding:52px var(--gutter) 37px;
  min-height:470px
}
.hero-copy>.eyebrow {
margin-bottom:24px;
  font-size:var(--type-caption)
}
.hero h1 {
font-size:var(--type-hero);
  line-height:1.04;
  max-width:100%;
  margin-bottom:22px;
  letter-spacing:-.025em;
}
.hero-intro {
font-size:var(--type-body);
  max-width:360px;
  margin-bottom:27px;
  line-height:var(--leading-body);
}
.hero .button-row {
gap:21px
}
.hero .text-link {
font-size:var(--type-ui);
}
.hero-foot {
display:none;
  font-size:var(--type-ui);
}
.hero-media {
min-height:0;
  aspect-ratio:1.3
}
.hero-media>img {
object-position:center 44%
}
.service-rail {
padding-top:18px;padding-bottom:18px;
}
.service-rail .shell {
justify-content:center;
  gap:13px 23px
}
.service-rail a {
font-size:var(--type-ui);
}
.intro {
grid-template-columns:1fr;
  gap:35px
}
.intro figure {
aspect-ratio:1.35;
  max-width:none
}
.intro-copy .eyebrow {
margin-bottom:18px
}
.intro-copy h2 {
margin-bottom:23px;
  font-size:var(--type-heading);
  line-height:var(--leading-heading);
  letter-spacing:-.02em;
}
.intro-copy>p:not(.eyebrow) {
font-size:var(--type-body);
  line-height:var(--leading-body);
}
.inclusion-list {
margin-top:26px;
  gap:0 20px
}
.inclusion-list li {
font-size:var(--type-caption);
  gap:9px;
  padding-top:14px;padding-bottom:14px;
}
.section-top {
display:block;
  margin-bottom:30px
}
.section-top h2 {
font-size:var(--type-heading);
  line-height:var(--leading-heading);
  letter-spacing:-.02em;
}
.section-top>p {
margin-top:23px;
  font-size:var(--type-ui);
  max-width:330px
}
.section-top .eyebrow {
margin-bottom:17px
}
.category-tabs {
gap:24px;
  overflow-x:auto;
  margin-bottom:28px
}
.category-tabs button {
font-size:var(--type-caption)
}
.service-grid {
grid-template-columns:1fr;
  gap:38px
}
.service-card {
display:grid;
  grid-template-columns:1fr
}
.service-card figure {
aspect-ratio:1.45;
  margin-bottom:20px
}
.service-card h3 {
font-size:var(--type-title);
  line-height:1.15;
}
.service-card p {
font-size:var(--type-body);
  max-width:none;
  line-height:var(--leading-body);
}
.service-card-bottom {
margin-top:3px;
  font-size:var(--type-ui);
}
.section-note {
display:block;
  margin-top:32px;
  font-size:var(--type-ui);
}
.section-note .text-link {
margin-top:20px
}
.menu-layout {
grid-template-columns:1fr;
  gap:20px
}
.menu-layout>div>p {
max-width:420px;
  font-size:var(--type-body);
  line-height:var(--leading-body);
}
.menu-tabs {
flex-direction:row;
  gap:16px;
  margin:25px 0 12px;
  overflow:auto;
  align-items:baseline;
  padding-bottom:5px
}
.menu-tabs button {
font-family:var(--sans);
  
  white-space:nowrap;
  padding:8px 0;

  font-size:var(--type-menu);
}
.menu-sheet {
padding-top:25px
}
.menu-sheet-header h3 {
font-size:var(--type-title);
  line-height:1.15;
}
.menu-course {
grid-template-columns:84px 1fr;
  gap:15px
}
.menu-course h4 {
font-size:var(--type-caption);
  letter-spacing:.04em;
  text-transform:none;
  color:var(--ink-muted);
}
.menu-course li {
font-size:var(--type-body);
  line-height:var(--leading-body);
}
.prep-layout {
grid-template-columns:1fr;
  gap:33px
}
.prep-copy h2 {
font-size:var(--type-heading);
  line-height:var(--leading-heading);
  letter-spacing:-.02em;
}
.prep-copy figure {
display:none
}
.prep-copy>p:not(.eyebrow) {
max-width:none;
  font-size:var(--type-body);
  line-height:var(--leading-body);
}
.prep-builder {
padding:32px 0;
  background:transparent;
  border:0;
  border-top:1px solid var(--line);
}
.builder-inline {
gap:13px
}
.choice span {
padding-inline:13px;
  font-size:var(--type-ui);
  border:1px solid var(--control-border);
  padding:10px 15px;
}
.builder-summary strong {
font-size:var(--type-title);
}
.builder-summary>p {
max-width:150px;
  font-size:var(--type-caption);
}
.kitchen-photo {
aspect-ratio:1.4;
  margin-top:32px
}
.kitchen-photo img {
object-position:44% center
}
.kitchen-caption {
grid-template-columns:1fr;
  gap:15px
}
.kitchen-caption p {
font-size:var(--type-body);
  line-height:var(--leading-body);
}
.gallery {
grid-template-columns:1fr 1fr;
  gap:16px;
  margin-top:35px
}
.gallery button:nth-child(1) {
padding-top:0
}
.gallery button:nth-child(2) {
padding-top:40px
}
.gallery button:nth-child(3) {
display:block;
  padding-top:0;
  grid-column:1/-1
}
.gallery button:nth-child(3) figure { aspect-ratio:1.6; }
.gallery button:nth-child(2) figure {
aspect-ratio:.85
}
.gallery figure {
aspect-ratio:.85
}
.gallery figcaption {
font-size:var(--type-caption);
}
.process-grid {
grid-template-columns:1fr;
  gap:24px;
  margin-top:32px
}
.process-step {
display:grid;
  grid-template-columns:30px 1fr;
  gap:10px;
  padding-top:22px
}
.process-step>span {
padding-top:7px
}
.process-step h3 {
margin:0 0 14px;
  font-size:var(--type-title);
  line-height:1.15;
}
.process-step p {
max-width:none;
  font-size:var(--type-body);
  line-height:var(--leading-body);
}
.faq-layout {
grid-template-columns:1fr;
  gap:30px
}
.faq-layout h2 {
font-size:var(--type-heading);
  line-height:var(--leading-heading);
  letter-spacing:-.02em;
}
.faq-list details {
padding-top:10px;padding-bottom:10px;
}
.faq-list summary {
font-size:var(--type-ui);
}
.enquire-layout {
grid-template-columns:1fr;
  gap:35px
}
.enquire-copy h2 {
font-size:var(--type-heading);
  line-height:var(--leading-heading);
  letter-spacing:-.02em;
}
.contact-links {
margin-top:25px;
  gap:16px
}
.enquiry-form {
gap:20px 14px
}
.footer-top {
display:grid;
  grid-template-columns:1fr;
  gap:25px;
  padding-bottom:30px
}
.footer-nav {
flex-wrap:wrap;
  gap:22px;
  font-size:var(--type-ui);
}
.footer-bottom {
flex-wrap:wrap;
  gap:12px;
  font-size:var(--type-caption);
}
.footer-bottom div {
gap:20px
}
.site-footer {
padding-top:38px
}
.detail-hero {
grid-template-columns:1fr;
  min-height:0
}
.detail-title {
padding-top:35px;padding-bottom:43px;
}
.detail-title h1 {
font-size:var(--type-heading);
}
.back-link {
margin-bottom:29px;
  font-size:var(--type-ui);
}
.detail-image {
min-height:0;
  aspect-ratio:1.3
}
.detail-content {
grid-template-columns:1fr;
  gap:32px
}
.detail-main h2 {
font-size:var(--type-heading);
  line-height:var(--leading-heading);
  letter-spacing:-.02em;
}
.rates-box {
padding:25px;
  border-top:1px solid var(--wine);
}
.detail-ending h2 {
font-size:var(--type-heading);
  line-height:var(--leading-heading);
  letter-spacing:-.02em;
}
.prose h1 {
font-size:var(--type-heading);
}
.prose {
padding-top:50px;padding-bottom:50px;
}
.dialog-heading {
font-size:var(--type-title);
  line-height:1.15;
}
dialog {
padding:30px 22px
}
.review-details {
padding:14px;
  font-size:var(--type-body);
  line-height:var(--leading-body);
}
.dialog-actions .button {
width:100%
}



}


@media(prefers-reduced-motion:reduce) {html {
scroll-behavior:auto
}
.button,.nav-links>a:after,.service-card img,.round-arrow,.gallery img {
transition:none
}
.service-card:hover img,.gallery button:hover img { transform:none; }



}/* Shared refinement rules: preserve the original structure and brand palette. */
.ui-icon {
width:20px;
  height:20px;
  display:inline-block;
  flex:none;
  vertical-align:middle
}
.arrow,.round-arrow {
display:inline-flex;
  align-items:center;
  justify-content:center
}
.hero h1 span {
color:var(--lime)
}
h1,h2,h3 {
text-wrap:balance
}
p,li {
overflow-wrap:break-word
}
/* Owner-authored copy must wrap without expanding grid tracks or hiding words. */
h1,h2,h3,h4,a,button,label,legend,figcaption,summary,strong {
  overflow-wrap:anywhere;
}
.hero-copy,.detail-title,.intro-copy,.enquire-copy,.menu-layout>div,
.prep-layout>div,.detail-content>*,.faq-layout>*,.enquiry-form>*,.builder-inline>* {
  min-width:0;
}
.button,.text-link { max-width:100%; }
.button>*:not(.arrow),.text-link>chef-text { min-width:0; }
.category-tabs,.menu-tabs { overscroll-behavior-inline:contain; }
p:has(chef-text):not(:has(chef-text:not(:empty))) { display:none; }
.hero-intro,.intro-copy>p,.prep-copy>p,.enquire-copy>p {
max-width:55ch
}
.detail-main p,.prose p,.prose li {
max-width:65ch
}
.section-top {
align-items:end
}
.section-top>p {
font-size:var(--type-body);
  max-width:38ch;
  line-height:var(--leading-body)
}
.service-card h3 {
margin-bottom:16px
}
.service-card p {
margin-bottom:24px
}
.service-card-bottom,.rate-row {
font-variant-numeric:tabular-nums;
  flex-wrap:wrap;
  align-items:baseline
}
.service-card-bottom .round-arrow {
margin-left:auto
}
.menu-tabs button {
min-height:44px;

  font-size:var(--type-menu);
}
.menu-section :is(a,button):focus-visible {
outline-color:var(--wine)
}
.menu-course {
grid-template-columns:120px 1fr;
  padding-top:24px;padding-bottom:24px;
}
.menu-course h4 {
font-weight:600;
  line-height:1.6
}
.menu-sheet-header {
align-items:center;
  flex-wrap:wrap
}
.menu-sheet-header>span {
letter-spacing:.03em;
  text-transform:none
}
.menu-sheet .fine {
color:var(--ink-muted)
}
.nav-links .nav-book {
border-color:var(--control-border)
}
.nav-links>a,.footer-nav a,.text-link,.service-rail a {
min-height:44px;
  display:inline-flex;
  align-items:center;
  gap:8px
}
.menu-toggle {
min-height:44px
}
.dialog-close {
width:44px;
  height:44px;
  display:grid;
  place-items:center;
  right:8px;
  top:8px
}
.enquiry-form .fine a {
text-decoration:underline;
  text-underline-offset:3px
}
.review-details {
white-space:pre-wrap;
  overflow-wrap:anywhere
}
.builder-summary {
flex-wrap:wrap
}
.builder-summary>p {
max-width:24ch
}
.status-message {
font-size:var(--type-ui)
}
input,select,textarea {
caret-color:var(--lime)
}
html {
scrollbar-color:#74766d var(--black);
  scrollbar-width:thin
}



@media(max-width:1100px) {.hero {
grid-template-columns:49% 51%
}
.hero .button-row {
align-items:flex-start;
  flex-direction:column;
  gap:12px
}
.hero h1 {
font-size:clamp(3.25rem,7.2vw,5.5rem)
}



}


@media(max-width:760px) {.hero {
grid-template-columns:1fr
}
.hero h1 {
font-size:clamp(3.25rem,13vw,5rem)
}
.hero-copy {
padding-top:44px;padding-bottom:36px;
  min-height:0
}
.hero-intro {
margin-bottom:24px
}
.hero .button-row {
flex-direction:row;
  align-items:center;
  gap:18px
}
.hero-media {
margin-top:0
}
.section-top>p {
margin-top:24px
}
.nav-links>a {
font-family:var(--serif);
  font-size:var(--type-title);
  padding-top:18px;padding-bottom:18px;
}
.nav-links .nav-book {
font-family:var(--sans);
  font-size:var(--type-ui)
}
.menu-tabs button {
min-height:44px;

  font-size:var(--type-menu);
}
.menu-tabs {
gap:20px
}
.menu-course {
grid-template-columns:1fr;
  gap:8px;
  padding-top:22px;padding-bottom:22px;
}
.menu-course h4 {
font-size:var(--type-caption)
}
.prep-builder {
padding:28px 0
}
.section-note p {
font-size:var(--type-ui);
  line-height:1.7
}
.service-grid {
gap:44px
}
.inclusion-list li {
font-size:var(--type-ui)
}
.brand span {
font-size:.75rem;
  letter-spacing:.08em
}
.footer-bottom,.gallery figcaption {
font-size:var(--type-caption)
}
.detail-title h1 {
font-size:var(--type-heading);
}
.rates-box {
padding:28px 22px
}
.rate-row {
gap:8px;
  flex-direction:column
}
.rate-row strong {
text-align:left
}
}


@media(max-width:420px) {.enquiry-form {
grid-template-columns:1fr
}
.hero .button-row {
flex-direction:column;
  align-items:flex-start;
  gap:14px
}
.builder-inline {
grid-template-columns:1fr
}
.category-tabs {
gap:22px
}
.service-card-bottom {
font-size:var(--type-ui)
}




}



.menu-toggle .close-icon { display:none; }
.menu-toggle[aria-expanded=true] .menu-icon { display:none; }
.menu-toggle[aria-expanded=true] .close-icon { display:inline-block; }
.menu-section .menu-tabs button { font-weight:400; }
.menu-layout > div { min-width:0; }
@media(max-width:760px) {
 .menu-section .menu-tabs button { font-family:var(--sans);font-size:var(--type-ui);font-weight:600; }
 .nav-links>a { font-size:var(--type-title); }
}

/* Editing wrappers retain the established layout and typography. */
chef-text{display:contents}
