:root{--ink:#233f43;--bg:#faf9f5;--paper:#fffefa;--blue:#e3ebe7;--yellow:#d9bf90;--muted:#586961;--line:#ccd2cb;--brown:#586961;--gold:#587365;--rust:#315962;--night:#233f43;--on-night:#faf9f5;--on-night-2:#e0e8e2;--sans:'Manrope','Avenir Next',Arial,sans-serif;--display:'DM Serif Display',Georgia,serif;--gut:clamp(24px,5.5vw,100px);--max:1560px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.75 var(--sans);-webkit-font-smoothing:antialiased}h1,h2,h3,h4,p,figure{margin:0}h1,h2,h3{line-height:1.12;letter-spacing:-.045em;font-weight:500}h1{font-size:clamp(3.5rem,6.5vw,6rem)}h2{font-size:clamp(2.6rem,4.05vw,4.15rem)}h3{font-size:1.6rem;letter-spacing:-.025em}h1 em,h2 em,h3 em{font:inherit}img{display:block;max-width:100%}a{color:inherit}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #ac7835;outline-offset:5px}[hidden]{display:none!important}.wrap{max-width:var(--max);padding-inline:var(--gut);margin:auto}.section-space,.sec{padding:clamp(70px,8vw,125px) var(--gut)}.sec>.wrap{padding:0}.eyebrow,.kicker{display:block;font-size:.75rem;font-weight:600;letter-spacing:.11em;text-transform:uppercase;margin-bottom:23px}.skip-link{position:fixed;top:-100px;left:20px;background:var(--yellow);padding:12px;z-index:200}.skip-link:focus{top:15px}.button,.btn{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:14px 27px;border:1px solid transparent;border-radius:1px;text-decoration:none;font-size:.875rem;font-weight:600;transition:background .2s,color .2s,border-color .2s}.primary,.button.ink,.btn.solid{background:var(--ink);color:var(--bg)}.primary:hover,.button.ink:hover,.btn.solid:hover{background:#3d625b}.secondary,.btn{border-color:var(--ink);background:transparent}.secondary:hover,.btn:hover{background:var(--ink);color:var(--bg)}.light{background:var(--bg);color:var(--ink)}.light:hover{background:#e5e9df}.outline-light{border-color:#fff9;background:#183b3b14;color:#fff}.outline-light:hover{background:#fff2;border-color:#fff}.text-link{display:inline-block;padding:8px 0;font-size:.9rem;font-weight:600;text-decoration:underline;text-underline-offset:7px;text-decoration-thickness:1px}.text-link:hover{opacity:.72}.actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}

/* A transparent masthead belongs to the landscape; it becomes solid past it. */
.top{height:96px;position:fixed;inset:0 0 auto;z-index:50;background:var(--bg);border-bottom:1px solid var(--line);transition:background .25s,color .25s,border-color .25s}.bar{height:100%;display:flex;align-items:center;justify-content:space-between;gap:35px;max-width:none}.brand{position:relative;display:block;width:202px;flex-shrink:0}.brand img{width:202px;height:60px;object-fit:contain}.brand .logo-light{position:absolute;inset:0;opacity:0}.top nav{display:flex;align-items:center;gap:32px}.top nav a{text-decoration:none;font-size:.875rem;font-weight:500;padding:10px 0}.top nav a:hover,.top nav a[aria-current=page]{text-decoration:underline;text-underline-offset:7px}.top nav .nav-menu{padding:11px 25px;border:1px solid var(--ink);text-decoration:none}.top nav .nav-menu:hover{background:var(--ink);color:var(--bg)}.top.on-home:not(.solid):not(.open){background:transparent;color:#fff;border-color:#fff4}.top.on-home:not(.solid):not(.open) .logo-dark{opacity:0}.top.on-home:not(.solid):not(.open) .logo-light{opacity:1}.top.on-home:not(.solid):not(.open) .nav-menu{border-color:#fffb}.top.on-home:not(.solid):not(.open) .nav-menu:hover{background:#fff;color:var(--ink)}.menu-toggle{display:none;padding:9px 14px;min-height:44px;border:1px solid currentColor;background:transparent;font-size:.875rem}.interior-view{padding-top:96px}.mobile-actions{display:none}

.arrival{height:min(880px,90svh);min-height:690px;position:relative;display:flex;align-items:center;background:#315d66;color:#fff;isolation:isolate;overflow:hidden}.arrival-image{position:absolute;inset:0;z-index:-2}.arrival-image img{width:100%;height:100%;object-fit:cover;object-position:56% center}.arrival::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#0b252ca6 0%,transparent 28%,#0b252c12 55%,#0b252c66 100%),linear-gradient(90deg,#102c356e 0%,#102c352b 46%,transparent 74%)}.arrival-content{padding:125px var(--gut) 100px;position:relative;width:100%}.arrival .eyebrow{font-size:.75rem;letter-spacing:.17em;margin-bottom:25px}.arrival h1{font-family:var(--display);font-size:clamp(4.5rem,6.9vw,7.8rem);font-weight:400;line-height:1.03;letter-spacing:-.035em;max-width:980px;text-shadow:0 1px 18px #14313c18}.arrival-content>p{font-size:1.05rem;line-height:1.7;max-width:490px;margin:28px 0 30px}.arrival-caption{position:absolute;bottom:31px;left:var(--gut);right:var(--gut);display:flex;align-items:center;justify-content:space-between;gap:25px;border-top:1px solid #fff5;padding-top:21px;font-size:.75rem;letter-spacing:.035em}.arrival-details{padding:27px var(--gut);display:grid;grid-template-columns:.9fr 1.4fr auto;align-items:center;gap:45px;border-bottom:1px solid var(--line);background:#f0eee7}.arrival-details>div{display:flex;flex-direction:column;gap:2px}.arrival-details>div>span{font-size:.75rem;color:var(--muted);letter-spacing:.04em}.arrival-details strong{font-size:.9rem;font-weight:500}.arrival-details>a{font-size:.85rem;text-underline-offset:6px;white-space:nowrap}

/* The venue comes early, so the visitor meets the café as well as the coast. */
.welcome-section{display:grid;grid-template-columns:.84fr 1.16fr;gap:9%;align-items:center}.welcome-copy h2{margin-bottom:28px}.welcome-copy p{font-size:1rem;color:var(--muted);margin-bottom:18px;max-width:410px}.welcome-copy .intro{font-size:1.15rem;color:var(--ink);line-height:1.65}.welcome-copy .text-link{margin-top:7px}.gallery-image{position:relative;padding:0;border:0;width:100%;display:block;aspect-ratio:1.3;background:var(--line);overflow:hidden}.gallery-image img{width:100%;height:100%;object-fit:cover;transition:transform .8s}.gallery-image:hover img{transform:scale(1.03)}.image-expand{position:absolute;bottom:20px;right:20px;background:var(--bg);padding:10px 16px;font-size:.8rem}.gallery-caption{display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:.75rem;padding-top:14px}.gallery-controls{display:flex;align-items:center;gap:15px;white-space:nowrap}.gallery-controls button{border:0;background:none;font-size:.8rem;min-height:44px;padding:5px 0;text-decoration:underline;text-underline-offset:5px}.gallery-controls span{font-size:.75rem}.seating-note{border-top:1px solid var(--line);padding-top:18px;margin-top:16px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:.75rem}.seating-note a{text-underline-offset:5px}

.food-section{background:#f0f2ec}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:55px;margin-bottom:50px}.section-heading>div:last-child{max-width:360px}.section-heading p{font-size:1rem;color:var(--muted)}.section-heading .text-link{margin-top:13px}.food-collection{display:grid;grid-template-columns:1fr 1.22fr 1fr;gap:35px;align-items:start}.dish-card{display:block;text-decoration:none;padding-top:46px}.dish-feature{padding-top:0}.dish-image{overflow:hidden;aspect-ratio:1.06;background:#e9e8e3}.dish-feature .dish-image{aspect-ratio:.98}.dish-image img{width:100%;height:100%;object-fit:cover;transform:scale(1.07);transition:transform .7s}.dish-card:hover img{transform:scale(1.12)}.dish-heading{padding-top:25px}.dish-heading .eyebrow{font-size:.75rem;margin-bottom:12px;color:#577063}.dish-heading h3{font-size:1.65rem}.dish-card>p{font-size:1rem;color:var(--muted);line-height:1.7;margin-top:12px;max-width:340px}.card-link{display:inline-block;font-size:.85rem;font-weight:600;border-bottom:1px solid var(--ink);padding-bottom:4px;margin-top:20px}.coffee-note{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:64px;padding:29px 0 0;border-top:1px solid #b9c4b9}.coffee-note .eyebrow{margin:0;font-size:.75rem}.coffee-note>p{font-size:1.4rem;letter-spacing:-.03em}.coffee-note .text-link{white-space:nowrap}

.coast-interlude{position:relative;min-height:520px;height:42vw;max-height:630px;display:flex;align-items:center;justify-content:center;text-align:center;isolation:isolate;color:#fff;background:#76523d;overflow:hidden}.coast-interlude>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-2}.coast-interlude::after{content:'';position:absolute;inset:0;background:#212d2638;z-index:-1}.coast-interlude>div{padding:55px var(--gut)}.coast-interlude .eyebrow{letter-spacing:.15em;margin-bottom:22px}.coast-interlude p{font-family:var(--display);font-weight:400;font-size:clamp(3rem,5.8vw,5.8rem);line-height:1.08;letter-spacing:-.03em}.coast-interlude .text-link{margin-top:24px}

.visit-section{display:grid;grid-template-columns:1fr 1.2fr;gap:12%;align-items:start}.visit-title h2{margin-bottom:26px}.visit-title p{font-size:1rem;color:var(--muted);max-width:365px;margin-bottom:28px}.visit-row{display:grid;grid-template-columns:110px 1fr;gap:20px;padding:22px 0;border-top:1px solid var(--line);font-size:1rem}.visit-row .eyebrow{margin:2px 0 0;color:#577063;font-size:.75rem}.visit-row address{font-style:normal}.visit-row strong{font-weight:500}.visit-row p{color:var(--muted)}.visit-information details{border-top:1px solid var(--line)}.visit-information details:last-child{border-bottom:1px solid var(--line)}.visit-information summary{cursor:pointer;padding:21px 0;font-size:.95rem;font-weight:500}.visit-information details p{font-size:1rem;line-height:1.7;color:var(--muted);margin-bottom:20px;max-width:540px}.visit-information details a{display:inline-block;font-size:.9rem;margin:0 24px 22px 0;text-underline-offset:5px}.groups-section{display:grid;grid-template-columns:1fr 1.2fr;margin:0 var(--gut) 100px;background:#e1eae4}.groups-image{overflow:hidden;min-height:400px}.groups-image img{width:100%;height:100%;object-fit:cover;object-position:center 55%}.groups-copy{padding:60px 65px;display:flex;align-items:start;flex-direction:column;justify-content:center}.groups-copy h2{font-size:clamp(2.4rem,3.6vw,3.6rem);margin-bottom:23px}.groups-copy>p{font-size:1rem;color:var(--muted);margin-bottom:25px;max-width:450px}.groups-copy>.text-link{font-size:.85rem;margin-top:17px}

/* Interior pages share the identity, without repeating the homepage hero. */
.phead{display:grid;grid-template-columns:1.3fr 1fr;min-height:420px;background:var(--blue);position:relative}.phead>img{order:2;width:100%;height:420px;object-fit:cover}.phead>.wrap{padding:60px var(--gut);margin:0;align-self:center}.phead h1{font-size:clamp(3rem,5.5vw,5.8rem);margin:18px 0 24px;line-height:1.07}.phead p{font-size:1rem;max-width:540px;color:var(--muted)}.phead .render-label{display:none}.phead .kicker{margin-bottom:0}.menu-tabs{position:sticky;top:98px;z-index:30;background:#fffefa;border-bottom:1px solid var(--line)}.menu-tabs .wrap{display:flex;gap:10px;overflow:auto;padding-block:17px}.menu-tabs button{flex-shrink:0;background:none;border:1px solid var(--line);border-radius:3px;padding:12px 24px;font-size:.95rem;font-weight:600;min-height:48px}.menu-tabs button[aria-selected=true]{background:var(--ink);color:#fffefa;border-color:var(--ink)}.diet-filter{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:45px}.diet-filter>span{font-size:.95rem;margin-right:10px;font-weight:600}.chip{background:transparent;border:1px solid #869d9c;border-radius:25px;font-size:.9rem;padding:10px 17px;min-height:44px}.chip[aria-pressed=true]{background:var(--blue);border:2px solid var(--ink);padding:9px 16px}.mgrid{columns:2;column-gap:7%}.mcat{break-inside:avoid;margin-bottom:45px}.mcat.empty,.mi.hide{display:none}.mcat h3{font-size:1.7rem;margin-bottom:15px;border-bottom:2px solid var(--ink);padding-bottom:18px}.mcat .note{font-size:.95rem;color:var(--muted);margin-bottom:14px}.mi{display:grid;grid-template-columns:minmax(0,1fr);padding:20px 0;border-bottom:1px solid var(--line)}.mi .n{font-size:1rem;font-weight:650;line-height:1.5}.mi .d{grid-column:1/-1;font-size:.95rem;line-height:1.6;color:var(--muted);margin-top:8px}.mi .t{display:inline-block;font-size: .75rem;margin-left:10px;font-weight:500;color:var(--muted);white-space:nowrap}.soon{display:inline-block;font-size: .75rem;font-weight:500;background:var(--yellow);padding:7px 10px;margin-left:10px;vertical-align:middle}.menu-aside{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;background:var(--blue);padding:35px;margin-top:35px;font-size:.95rem}.menu-aside b{display:block;margin-bottom:10px}.sec-head{max-width:730px;margin-bottom:40px}.sec-head h2{margin-bottom:25px}.lede{font-size:1.06rem;color:var(--muted)}
.perks{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;padding-block:0 45px;margin-bottom:70px;border-bottom:1px solid var(--line)}.perks b{display:block;font-size:1.1rem;line-height:1.3;margin-bottom:15px}.perks p{font-size:1rem;color:var(--muted)}.roles{border-top:2px solid var(--ink)}.role{display:grid;grid-template-columns:1fr 1.4fr .7fr;gap:35px;padding:30px 0;border-bottom:1px solid var(--line)}.role h3{font-size:1.7rem}.role .where{display:block;font-size:.8rem;color:var(--muted);margin-bottom:13px}.role p,.role ul{font-size:1rem;color:var(--muted)}.role ul{padding-left:20px}.tag{font-size:.8rem;border:1px solid var(--line);padding:8px 12px;display:inline-block}.filled{font-size:.9rem;margin-top:25px}.dark{background:var(--ink);color:var(--on-night)}.apply{display:grid;grid-template-columns:1.1fr 1fr;gap:70px}.steps{padding-left:20px;display:grid;gap:20px;margin-top:30px;font-size:1rem}.steps li{padding-left:8px}.apply-card{display:grid;align-content:center;gap:23px;padding:35px;background:#ffffff0b;border:1px solid #a3b4b8}.apply-card h3{font-size:1.5rem}.apply-card p{font-size:1rem}.apply-card .copy-btn{color:#fffefa;border-color:#b1c0c0}.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;border-bottom:1px solid var(--line);padding-bottom:55px}.contact-grid>div{min-width:0}.contact-grid h3{margin-bottom:20px}.contact-grid p{font-size:1rem;color:var(--muted);margin:15px 0}.contact-grid .big{font-size:1.2rem!important;overflow-wrap:anywhere;color:var(--ink);font-weight:600}.copyline{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.copy-btn{padding:9px 13px;min-height:40px;border:1px solid var(--line);background:transparent;font-size:.875rem;border-radius:3px}.enquiry{display:grid;grid-template-columns:1fr 1.4fr;gap:75px;margin-top:65px}.enquiry h2{font-size:2.8rem!important}.enquiry .lede{font-size:1rem}.enquiry p{font-size:1rem!important}form{display:grid;grid-template-columns:1fr 1fr;gap:20px}label{display:grid;gap:8px;font-size:.95rem;font-weight:600}input,select,textarea{width:100%;min-width:0;border:1px solid #91a6a7;background:var(--paper);padding:13px 15px;color:var(--ink);font-size:1rem;border-radius:3px}input:focus,select:focus,textarea:focus{outline:2px solid var(--ink);outline-offset:2px}textarea{min-height:150px;resize:vertical}.full,.form-out{grid-column:1/-1}.form-out{padding:25px;background:var(--blue);font-size:1rem}.form-out b{font:600 1rem/1.6 var(--sans)!important;color:var(--ink)!important;letter-spacing:0!important;text-transform:none!important}.form-out pre{font:400 .95rem/1.7 var(--sans);white-space:pre-wrap;overflow-wrap:anywhere}.form-out .button{margin-top:20px}
footer{background:var(--ink);color:#fffefa;padding:65px var(--gut) 30px}.footer-top{display:flex;justify-content:space-between;gap:30px;align-items:center;border-bottom:1px solid #8ca2a7;padding-bottom:45px;margin-bottom:45px}.footer-top img{width:245px}.footer-top p{font-size:clamp(1.7rem,3vw,3rem);font-weight:700;letter-spacing:-.035em;line-height:1.2}.fgrid{display:grid;grid-template-columns:1.5fr 1fr 1.3fr;gap:60px}.fgrid h4{font-size:.85rem;margin-bottom:18px;font-weight:700}.fgrid p,.fgrid a{font-size:.94rem}.fgrid a{display:block;text-decoration:none;padding:6px 0}.fgrid a:hover{text-decoration:underline}.fgrid p{color:#e1e9e9;max-width:340px}.fine{margin-top:50px;border-top:1px solid #8ca2a7;padding-top:20px;display:flex;justify-content:space-between;gap:25px;align-items:start;font-size:.75rem;color:#d3e0e0}.fine>span{max-width:500px}.motion-control{font-size:.85rem;background:none;color:inherit;border:0;text-decoration:underline;text-underline-offset:4px;white-space:nowrap}
dialog{padding:22px;background:var(--bg);color:var(--ink);border:0;max-width:calc(100vw - 30px);width:1200px;max-height:95svh}dialog::backdrop{background:#132f37ed}dialog img{width:100%;max-height:74svh;object-fit:contain}.dialog-bar{display:flex;justify-content:space-between;gap:20px;align-items:center;padding-top:17px;font-size:.9rem}.dialog-bar button{padding:10px 18px;border:1px solid var(--ink);background:transparent;white-space:nowrap}body:has(dialog[open]){overflow:hidden}.motion-off *{animation:none!important;transition:none!important;scroll-behavior:auto!important}

/* Carry the coastal proportions through the secondary pages. */
.phead { margin: 26px var(--gut) 0; grid-template-columns: 1.3fr 1fr; min-height: 380px; background: #e3edeb; border-radius: 3px; overflow: hidden; }
.phead>img { height: 380px; }
.phead>.wrap { padding: 45px 55px; }
.phead h1 { font-weight: 500; font-size: clamp(3rem,5.1vw,5.3rem); }
.phead p { max-width: 500px; }
.menu-tabs { top: 100px; background: var(--bg); }
.menu-tabs .wrap { gap: 35px; padding-block: 0; }
.menu-tabs button { min-height: 75px; border: 0; border-bottom: 2px solid transparent; border-radius: 0; padding: 17px 0; background: none; color: var(--muted); }
.menu-tabs button[aria-selected=true] { background: none; color: var(--ink); border-color: var(--ink); }
.mcat h3 { font-size: 1.7rem; font-weight: 500; border-bottom-width: 1px; }
.mgrid { column-gap: 9%; }
.mi { padding: 17px 0; }
.mi .n { font-size: 1rem; font-weight: 600; }
.mi .t { font-size: .75rem; }
.mi .d { font-size: .9rem; }

.chip { font-size: .85rem; min-height: 42px; border-radius: 2px; }
.menu-aside { background: #e7eee7; }
.perks b { font-weight: 600; }
.role h3 { font-size: 1.7rem; font-weight: 500; }
.apply-card .val { font-family: var(--sans)!important; font-size: 1.2rem!important; }
.enquiry h2 { font-size: 3rem!important; font-weight: 500; }
.contact-grid h3 { font-weight: 500; }
.contact-grid .big { font-weight: 500; }
.footer-top p { font-family: var(--display); font-style: italic; font-weight: 400; font-size: 3rem; }
.footer-top img { width: 240px; }
.fine { flex-wrap: wrap; row-gap: 16px; }
.photo-credit { font-size: .75rem; flex-basis: 100%; color: #d3e0e0; }
.photo-credit a { text-underline-offset: 3px; }

@media(min-width:1700px) {
  .coastal-hero { grid-template-columns: 42% 58%; padding-left: max(var(--gut),calc((100vw - 1510px)/2)); }
  .hero-picture { min-height: 700px; }
  .section-space,.sec,.visit-section { padding-inline: max(var(--gut),calc((100vw - 1510px)/2)); }
}
@media(max-width:1150px) {
  .top nav { gap: 23px; }
  .top nav a { font-size: .82rem; }
  .brand img { width: 180px; }
  .coastal-hero { min-height: 610px; padding-right: 20px; }
  .hero-picture { min-height: 550px; }
  .hero-copy { padding-right: 27px; padding-block: 35px 15px; }
  .hero-copy h1 { font-size: 7.1vw; }
  .hero-copy .eyebrow { max-width: 280px; font-size: .75rem; }
  .hero-copy>p { font-size: .95rem; }
  .hero-footnote { margin-top: 40px; }
  .hero-picture figcaption { left: 23px; right: 23px; flex-wrap: wrap; gap: 7px; }
  .hero-picture figcaption span:first-child { flex-basis: 100%; }
  .food-editorial { gap: 30px; grid-template-columns: 1.1fr 1fr; }
  .food-small { gap: 20px; }
  .food-small h3 { font-size: 1.35rem; }
  .food-small p { font-size: .85rem; }
  .food-feature .food-photo { aspect-ratio: 1.08; }
  .food-feature .food-card-copy { display: block; }
  .food-feature .card-link { margin-top: 14px; }
  .cafe-layout { gap: 6%; }
  .gallery-caption { display: block; }
  .gallery-controls { justify-content: end; margin-top: 8px; }
  .visit-section { gap: 6%; }
  .visit-photo { min-height: 600px; }
  .fgrid { gap: 35px; }
}
@media(max-width:860px) {
  html { scroll-padding-top: 95px; }
  .top { height: 84px; }
  .brand img { width: 170px; height: 56px; }
  .menu-toggle { display: block; position: relative; z-index: 2; }
  .top nav { position: fixed; inset: 84px 0 0; background: var(--bg); display: flex; flex-direction: column; align-items: stretch; justify-content: start; padding: 35px var(--gut); gap: 10px; visibility: hidden; pointer-events: none; overflow: auto; }
  .top.open nav { visibility: visible; pointer-events: auto; }
  .top nav a { font-size: 1.9rem; font-weight: 500; padding: 15px 0; }
  .top nav .nav-menu { font-size: 1.1rem; text-align: center; margin-top: 15px; padding: 16px; }
  .coastal-hero { grid-template-columns: 46% 54%; min-height: 580px; padding-left: var(--gut); padding-right: 20px; padding-block: 20px; }
  .hero-picture { min-height: 530px; }
  .hero-copy { padding-top: 20px; }
  .hero-copy h1 { font-size: 7.6vw; }
  .hero-copy .eyebrow { margin-bottom: 25px; }
  .hero-copy>p { line-height: 1.75; }
  .actions { gap: 16px; }
  .actions .button { padding-inline: 20px; }
  .hero-footnote { margin-top: 30px; }
  .hero-footnote .short-rule { display: none; }
  .welcome-band { gap: 20px; }
  .welcome-band>div { padding-left: 20px; }
  .welcome-band>div>span:last-child { font-size: .85rem; }
  .welcome-band .eyebrow { font-size: .75rem; }
  .section-heading { align-items: start; gap: 30px; }
  .section-heading>div:last-child { max-width: 260px; }
  .food-editorial { grid-template-columns: 1fr; gap: 37px; }
  .food-feature .food-photo { aspect-ratio: 1.55; }
  .food-feature .food-card-copy { display: flex; }
  .food-side { grid-template-columns: 1fr 1fr; gap: 25px; }
  .food-small { display: block; border: 0; padding: 0; }
  .food-small .food-photo { aspect-ratio: 1.3; }
  .food-small .food-card-copy { padding-top: 20px; }
  .food-small p { font-size: .9rem; }
  .drinks-strip { grid-template-columns: 1fr auto; padding: 28px; gap: 20px; }
  .drinks-strip p { grid-row: 2; }
  .drinks-strip .button { grid-column: 2; grid-row: 1/3; }
  .cafe-layout { grid-template-columns: 1fr; gap: 40px; }
  .cafe-story { max-width: 600px; }
  .cafe-story p { max-width: 560px; }
  .gallery-image { aspect-ratio: 1.4; }
  .gallery-caption { display: flex; }
  .gallery-controls { margin-top: 0; }
  .ways-grid { grid-template-columns: 1fr 1fr; gap: 30px; margin-top: 45px; }
  .visit-section { padding-block: 70px; grid-template-columns: 1fr; gap: 40px; }
  .visit-photo { min-height: 400px; height: 400px; }
  .visit-copy { padding: 0; }
  .visit-copy h2 { font-size: 3.4rem; }
  .visit-copy p,.visit-copy address { max-width: 600px; }
  .join-band { padding-block: 45px; }
  .join-band h2 { max-width: 450px; }
  .phead { min-height: 350px; grid-template-columns: 1.3fr 1fr; }
  .phead>.wrap { padding: 35px; }
  .phead>img { height: 100%; min-height: 350px; }
  .phead h1 { font-size: 3rem; }
  .menu-tabs { top: 84px; }
  .menu-tabs .wrap { gap: 28px; }
  .menu-tabs button { min-height: 68px; font-size: .9rem; }
  .mgrid { column-gap: 6%; }
  .menu-aside { grid-template-columns: 1fr; gap: 25px; }
  .perks { grid-template-columns: repeat(2,1fr); }
  .role { grid-template-columns: 1fr 1.4fr; }
  .rate { grid-column: 2; }
  .apply { grid-template-columns: 1fr; gap: 40px; }
  .contact-grid { grid-template-columns: 1fr; gap: 35px; }
  .contact-grid>div { border-top: 1px solid var(--line); padding-top: 25px; }
  .contact-grid .kicker { margin-bottom: 12px; }
  .enquiry { grid-template-columns: 1fr; gap: 40px; }
  .enquiry>div { max-width: 600px; }
  .footer-top p { font-size: 2.1rem; }
  .fgrid { grid-template-columns: 1fr 1fr; }
  .fgrid>div:last-child { grid-column: 1/-1; }
}
@media(max-width:600px) {
  body { font-size: 16px; }
  .section-space,.sec { padding-block: 65px; }
  .coastal-hero { display: flex; flex-direction: column; padding: 0; }
  .hero-copy { padding: 43px var(--gut) 36px; }
  .hero-copy .eyebrow { font-size: .75rem; max-width: none; margin-bottom: 27px; }
  .hero-copy h1 { font-size: clamp(3.75rem,16.4vw,5.9rem); line-height: 1.02; }
  .hero-copy>p { font-size: 1rem; max-width: 360px; margin: 20px 0 26px; }
  .hero-copy .actions { gap: 28px; }
  .hero-footnote { display: none; }
  .hero-picture { margin: 0 14px; min-height: 330px; height: 330px; }
  .hero-picture>img { object-position: 45% center; }
  .hero-picture figcaption { bottom: 20px; left: 20px; right: 20px; }
  .hero-picture figcaption span:first-child { font-size: 1.5rem; }
  .hero-picture figcaption span:last-child { font-size: .75rem; }
  .welcome-band { grid-template-columns: 1fr 1fr; margin-inline: var(--gut); padding-block: 27px; gap: 20px 14px; }
  .welcome-band>div { padding-left: 17px; }
  .welcome-band>div:last-child { display: none; }
  .welcome-band .eyebrow { font-size: .75rem; letter-spacing: .07em; margin-bottom: 5px; }
  .welcome-band>div>span:last-child { font-size: .79rem; }
  .eyebrow,.kicker { font-size: .75rem; margin-bottom: 20px; }
  h2 { font-size: 2.8rem; }
  .section-heading { display: block; margin-bottom: 28px; }
  .section-heading h2 { max-width: 330px; font-size: 2.8rem; }
  .section-heading>div:last-child { margin-top: 21px; max-width: 340px; }
  .section-heading p { font-size: 1rem; }
  .food-feature .food-photo { aspect-ratio: 1.13; }
  .food-feature .food-card-copy { display: block; padding-top: 20px; }
  .food-feature h3 { font-size: 1.6rem; }
  .food-feature .card-link { margin-top: 14px; }
  .food-label { top: 16px; left: 16px; }
  .food-side { grid-template-columns: 1fr; gap: 28px; }
  .food-small { display: grid; grid-template-columns: .9fr 1.1fr; gap: 22px; padding-top: 27px; border-top: 1px solid var(--line); }
  .food-small:last-child { padding-top: 27px; border-top: 1px solid var(--line); }
  .food-small .food-photo { aspect-ratio: .78; }
  .food-small .food-card-copy { padding: 0; }
  .food-small h3 { font-size: 1.3rem; }
  .food-small .eyebrow { font-size: .75rem; margin-bottom: 10px; }
  .food-card p { font-size: .875rem; }
  .food-small .card-link { font-size: .8rem; margin-top: 13px; }
  .drinks-strip { display: block; margin-top: 37px; padding: 25px; }
  .drinks-strip h3 { font-size: 1.7rem; }
  .drinks-strip p { margin: 16px 0 22px; }
  .cafe-story h2 { font-size: 3.25rem; }
  .cafe-story p:first-of-type { font-size: 1.05rem; }
  .cafe-numbers { gap: 24px; }
  .cafe-numbers>div { gap: 7px; }
  .cafe-numbers strong { font-size: 1.5rem; }
  .cafe-numbers span { font-size: .76rem; }
  .gallery-image { aspect-ratio: 1.1; }
  .gallery-caption { display: block; }
  .gallery-controls { justify-content: space-between; margin-top: 10px; }
  .ways-grid { gap: 26px 22px; margin-top: 35px; }
  .ways-grid article>span { font-size: .75rem; }
  .ways-grid h3 { font-size: 1.25rem; }
  .ways-grid p { font-size: .875rem; }
  .visit-section { padding-block: 55px; gap: 37px; }
  .visit-photo { min-height: 320px; height: 320px; }
  .visit-photo>span { left: 14px; bottom: 14px; font-size: .75rem; }
  .visit-copy h2 { font-size: 2.9rem; }
  .visit-hours { font-size: .77rem; }
  .visit-hours strong { font-size: 1rem; }
  .join-band { display: block; padding-block: 36px 45px; }
  .join-band h2 { font-size: 2.2rem; max-width: 330px; }
  .join-band .button { margin-top: 26px; }
  .phead { margin: 16px 16px 0; display: flex; flex-direction: column; }
  .phead>.wrap { padding: 35px 24px; }
  .phead>img { height: 230px; min-height: 0; }
  .phead h1 { font-size: 3rem; margin-block: 17px 20px; }
  .phead p { font-size: .95rem; }
  .menu-tabs .wrap { gap: 27px; padding-inline: 24px; }
  .menu-tabs button { font-size: .875rem; min-height: 65px; }
  .diet-filter { gap: 8px; margin-bottom: 30px; }
  .diet-filter>span { flex-basis: 100%; margin-bottom: 3px; }
  .chip { font-size: .8rem; padding-inline: 12px; }
  .chip[aria-pressed=true] { padding-inline: 11px; }
  .mgrid { columns: 1; }
  .mcat h3 { font-size: 1.65rem; }
  .mi .n { font-size: .96rem; }


  .mi .d { font-size: .9rem; }
  .mi .t { font-size: .75rem; margin-left: 7px; }
  .menu-aside { padding: 25px; }
  .perks { gap: 28px 22px; margin-bottom: 45px; }
  .perks b { font-size: 1rem; }
  .perks p { font-size: .9rem; }
  .role { grid-template-columns: 1fr; gap: 17px; }
  .rate { grid-column: auto; }
  .apply-card { padding: 25px; }
  .apply-card .val { font-size: 1.1rem!important; }
  .enquiry h2 { font-size: 2.65rem!important; }
  form { grid-template-columns: 1fr; }
  .form-out { padding: 20px; }
  footer { padding: 45px var(--gut) 28px; }
  .footer-top { display: block; padding-bottom: 32px; margin-bottom: 32px; }
  .footer-top img { width: 220px; }
  .footer-top p { font-size: 2.1rem; margin-top: 35px; }
  .fgrid { grid-template-columns: 1fr; gap: 30px; }
  .fgrid>div:last-child { grid-column: auto; }
  .fine { display: grid; font-size: .75rem; margin-top: 35px; }
  .fine>span { max-width: none; }
  .photo-credit { font-size: .75rem; }
  .motion-control { justify-self: start; padding: 0; }
  .dialog-bar { align-items: start; font-size: .8rem; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  *,*::before,*::after { animation: none!important; transition: none!important; }
}

/* Comfortable reading and touch targets at every size. */
.food-card p,.ways-grid p,.drinks-strip p,.mi .d,.perks p{font-size:1rem}
.gallery-controls button{min-height:44px}

.menu-tabs .wrap{scrollbar-width:none}
.menu-tabs .wrap::-webkit-scrollbar{display:none}

/* The main journey stays photographic while controls remain close at hand. */
.phead h1 em,.enquiry h2 em,.sec-head h2 em,.apply h2 em{font:inherit}
.footer-top p{font-style:normal;font-size:2.8rem;font-weight:400}
.menu-tabs{top:96px}
.interior-view .top{background:var(--bg);color:var(--ink)}
.menu-tabs .wrap{scrollbar-width:none}.menu-tabs .wrap::-webkit-scrollbar{display:none}
@media(min-width:1700px){
  .welcome-section,.food-section,.visit-section{padding-inline:max(var(--gut),calc((100vw - 1450px)/2))}
  .arrival-content{padding-left:max(var(--gut),calc((100vw - 1510px)/2))}
}
@media(max-width:1150px){
  .top nav{gap:24px}.top nav a{font-size:.85rem}
  .brand,.brand img{width:190px}
  .arrival h1{font-size:7.2vw}.arrival{min-height:650px}.arrival-content{padding-top:125px}
  .welcome-section{gap:6%;grid-template-columns:1fr 1.1fr}
  .welcome-copy h2{font-size:3.1rem}.welcome-copy .intro{font-size:1.06rem}
  .gallery-caption{display:block}.gallery-controls{justify-content:end;margin-top:6px}
  .food-collection{gap:25px}.dish-heading h3{font-size:1.4rem}
  .coffee-note{flex-wrap:wrap;gap:20px}.coffee-note .eyebrow{flex-basis:100%}
  .visit-section{gap:8%}.visit-row{grid-template-columns:80px 1fr}
  .groups-copy{padding:45px}.groups-image{min-height:400px}
}
@media(max-width:860px){
  .top{height:84px}.interior-view{padding-top:84px}.menu-tabs{top:84px}
  .brand,.brand img{width:175px}.brand img{height:55px}
  .top nav{inset:84px 0 0}.top.open{background:var(--bg);color:var(--ink)}
  .top.open .logo-dark{opacity:1}.top.open .logo-light{opacity:0}
  .arrival{min-height:650px;height:88svh;max-height:850px}
  .arrival-content{padding-top:135px;padding-bottom:120px}
  .arrival h1{font-size:clamp(4rem,8.5vw,5.8rem)}
  .arrival-image img{object-position:58% center}
  .arrival-details{grid-template-columns:1fr 1.5fr;gap:25px;padding-block:24px}
  .arrival-details>a{display:none}.arrival-details strong{font-size:.85rem}
  .welcome-section{grid-template-columns:1fr;gap:40px}
  .welcome-copy{max-width:600px}.welcome-copy h2{font-size:3.4rem}
  .welcome-copy h2 br:last-child{display:none}.welcome-copy p{max-width:560px}
  .gallery-image{aspect-ratio:1.4}.gallery-caption{display:flex}.gallery-controls{margin:0}
  .seating-note{font-size:.8rem}
  .food-collection{grid-template-columns:1fr 1fr;gap:40px 25px}
  .dish-card{padding:0}.dish-feature{grid-column:1/-1;grid-row:1;display:grid;grid-template-columns:1.2fr 1fr;column-gap:30px;align-content:center}
  .dish-feature .dish-image{grid-row:1/5;aspect-ratio:1.1}.dish-feature .dish-heading{padding-top:20px}
  .dish-feature>p{margin-top:15px}.dish-feature .card-link{justify-self:start;align-self:start}
  .dish-image{aspect-ratio:1.2}.dish-heading h3{font-size:1.5rem}
  .coast-interlude{min-height:420px;height:55vw}.coast-interlude p{font-size:3.7rem}
  .visit-section{grid-template-columns:1fr;gap:35px}
  .visit-title h2{font-size:3.3rem}.visit-title h2 br{display:none}
  .visit-title p{max-width:550px}.visit-information{max-width:none}
  .visit-row{grid-template-columns:120px 1fr}
  .groups-section{grid-template-columns:.9fr 1.1fr;margin-bottom:70px}
  .groups-copy{padding:35px}.groups-copy h2{font-size:2.5rem}.groups-image{min-height:470px}
  .groups-copy .button{padding-inline:18px}.groups-copy .eyebrow{font-size:.75rem}
}
@media(max-width:600px){
  body{padding-bottom:65px}.interior-view{padding-top:78px;padding-bottom:65px}
  html{scroll-padding-top:88px}.top{height:78px}
  .bar{padding-inline:22px}.brand,.brand img{width:165px}.brand img{height:51px}
  .top nav{inset:78px 0 65px}.top nav a{font-size:1.8rem;padding:13px 0}
  .menu-toggle{font-size:.8rem;padding:9px 12px}
  .arrival{height:calc(100svh - 65px);min-height:630px;max-height:850px;align-items:end}
  .arrival-image img{object-position:57% center}
  .arrival::before{background:linear-gradient(180deg,#112d36b3 0%,#102c3514 25%,#102c3561 53%,#102c35b8 100%)}
  .arrival-content{padding:145px 24px 103px}
  .arrival .eyebrow{font-size:.75rem;letter-spacing:.11em;line-height:1.8;max-width:260px;margin-bottom:20px}
  .arrival h1{font-size:clamp(3.1rem,12.8vw,4.6rem);line-height:1.05;letter-spacing:-.03em;max-width:420px}
  .arrival-content>p{font-size:1rem;line-height:1.7;max-width:310px;margin:22px 0 25px}
  .desktop-break{display:none}.arrival .actions{gap:11px;flex-wrap:nowrap}
  .arrival .button{font-size:.81rem;padding:13px 18px;min-height:50px}
  .arrival-caption{bottom:26px;left:24px;right:24px;padding-top:16px;font-size:.75rem}
  .arrival-caption>span:first-child{display:none}
  .arrival-details{grid-template-columns:1fr;gap:15px;padding:23px 24px}
  .arrival-details>div{flex-direction:row;justify-content:space-between;gap:15px;align-items:baseline}
  .arrival-details>div:nth-child(2){flex-direction:column;gap:3px;border-top:1px solid var(--line);padding-top:13px}
  .arrival-details>div>span{font-size:.75rem}.arrival-details strong{font-size:.8rem}
  .mobile-actions{display:grid;grid-template-columns:1fr 1fr;position:fixed;bottom:0;inset-inline:0;z-index:60;background:var(--bg);height:65px;padding:10px 18px max(10px,env(safe-area-inset-bottom));gap:12px;border-top:1px solid var(--line)}
  .mobile-actions a{display:flex;align-items:center;justify-content:center;min-height:44px;text-decoration:none;font-size:.875rem;border:1px solid var(--ink)}
  .mobile-actions a:first-child{background:var(--ink);color:var(--bg)}
  body:has(dialog[open]) .mobile-actions{visibility:hidden}
  .welcome-section,.food-section,.visit-section{padding-block:62px}
  .welcome-copy h2{font-size:2.55rem;line-height:1.16}.welcome-copy h2 br:last-child{display:initial}
  .welcome-copy p,.welcome-copy .intro{font-size:1rem}.welcome-copy .eyebrow{font-size:.75rem}
  .gallery-image{aspect-ratio:1.15}.gallery-caption{display:block}.gallery-controls{margin-top:8px;justify-content:space-between}
  .image-expand{bottom:15px;right:15px;font-size:.75rem;padding:10px 13px}
  .seating-note{gap:12px 20px;justify-content:start;font-size:.75rem}.seating-note a{flex-basis:100%}
  .section-heading{display:block;margin-bottom:31px}.section-heading h2{font-size:2.6rem}
  .section-heading>div:last-child{max-width:350px;margin-top:22px}.section-heading p{font-size:1rem}
  .food-collection{grid-template-columns:1fr;gap:40px}
  .dish-card,.dish-feature{display:block;grid-column:auto;grid-row:auto}
  .dish-feature .dish-image,.dish-image{aspect-ratio:1.16}
  .dish-card .dish-heading{padding-top:23px}.dish-heading h3{font-size:1.65rem}
  .dish-card>p{font-size:1rem}.dish-heading .eyebrow{font-size:.75rem}.dish-card .card-link{font-size:.875rem}
  .coffee-note{display:block;margin-top:40px;padding-top:26px}.coffee-note>p{font-size:1.7rem;line-height:1.3;max-width:250px;margin:17px 0}
  .coast-interlude{height:420px;min-height:420px}.coast-interlude>img{object-position:60% center}
  .coast-interlude>div{padding:40px 24px}.coast-interlude .eyebrow{font-size:.75rem}.coast-interlude p{font-size:3.1rem}
  .coast-interlude::after{background:#182c2959}
  .visit-title h2{font-size:2.65rem}.visit-title h2 br{display:initial}
  .visit-title p{font-size:1rem}.visit-row{grid-template-columns:1fr;gap:10px;padding-block:21px}
  .visit-row address,.visit-row p{font-size:1rem}.visit-row .eyebrow{font-size:.75rem}
  .visit-information summary{font-size:.95rem}
  .groups-section{grid-template-columns:1fr;margin:0 18px 55px}
  .groups-image{min-height:0;height:280px}.groups-image img{object-position:center 55%}
  .groups-copy{padding:33px 26px 38px}.groups-copy h2{font-size:2.4rem}
  .groups-copy p{font-size:1rem}.groups-copy .eyebrow{font-size:.75rem;line-height:1.7}
  .menu-tabs{top:78px}.phead h1{font-size:2.85rem}
  .footer-top p{font-size:2.2rem;line-height:1.12}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

.hero-location{white-space:nowrap}
@media(max-width:600px){.arrival .eyebrow{max-width:none}.hero-location{display:block}}

@media(max-width:600px){
 :root{--quick-height:calc(65px + env(safe-area-inset-bottom,0px))}
 body,.interior-view{padding-bottom:var(--quick-height)}
 .mobile-actions{height:var(--quick-height);padding-bottom:calc(10px + env(safe-area-inset-bottom,0px))}
 .top nav{bottom:var(--quick-height)}
 .arrival{height:calc(100svh - var(--quick-height))}
}

@media(max-width:600px){
 main[data-view="menu"] .phead>img{display:none}
 main[data-view="menu"] .phead{min-height:0}
 main[data-view="menu"] .phead>.wrap{padding:28px 24px}
 main[data-view="menu"] .phead h1{font-size:2.8rem}
 main[data-view="menu"] .phead p{font-size:1rem}
}

main[data-view]:focus{outline:none}
@media(max-width:360px){.arrival h1{font-size:2.5rem}}

/* Enquiry delivery states and a bot-only field outside the visual layout. */
.enquiry-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
#enqSubmit:disabled{opacity:.65;cursor:wait}
#enqFallback{justify-self:start;border:0;background:none;color:var(--ink);text-align:left}
#enqErr{max-width:100%}#enqErr:focus{outline:none}
.form-success{padding:26px;background:var(--blue);border-left:3px solid var(--ink)}
.form-success h3{font-size:1.45rem;margin-bottom:12px}
.form-success p{font-size:1rem}
.form-success:focus,.form-out:focus{outline:2px solid var(--ink);outline-offset:4px}

.acknowledgement{margin-top:42px;padding-top:28px;border-top:1px solid #8ca2a7}
.acknowledgement p{max-width:950px;font-size:.94rem;line-height:1.8;color:#e1e9e9}
.acknowledgement+.fine{margin-top:28px}

.walkthrough-section{padding-top:0}
.walkthrough-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:35px}
.walkthrough-heading h2{font-family:var(--display);font-weight:400}
.walkthrough-heading>p{max-width:340px;font-size:1rem;color:var(--muted)}
.walkthrough-film{max-width:1200px;margin-inline:auto}
.walkthrough-film video{display:block;width:100%;height:auto;aspect-ratio:16/9;background:var(--ink)}
.walkthrough-film video:focus-visible{outline:3px solid #ac7835;outline-offset:5px}
.walkthrough-film figcaption{display:flex;justify-content:space-between;gap:12px 30px;margin-top:15px;color:var(--muted);font-size:.75rem}
@media(max-width:700px){.walkthrough-heading{display:block;margin-bottom:24px}.walkthrough-heading>p{margin-top:20px}.walkthrough-film figcaption{flex-direction:column;gap:5px}.walkthrough-heading h2{font-size:2.5rem}.walkthrough-section{padding-bottom:60px}}

/* Menu item prices */
.mi .mi-top{display:flex;align-items:baseline;justify-content:space-between;gap:18px}.mi .price{font-size:1rem;font-weight:650;white-space:nowrap;color:var(--ink)}
