.inner-page{color:#26333d}
.inner-heading,.contact-panel,.story-values{position:relative;isolation:isolate;overflow:hidden;background:#f6f2e9;margin:var(--gutter);border-radius:20px;padding:140px clamp(24px,6vw,100px) 85px}
.inner-heading{text-align:center;padding-bottom:100px}.inner-mark{width:160px;height:160px;object-fit:contain;filter:brightness(0);margin-bottom:35px}
.inner-heading h1,.contact-heading h1{font-size:clamp(64px,8vw,120px);letter-spacing:-.045em;line-height:1.07;font-weight:400;margin:0 0 30px}
.inner-script{font-family:RungDisplayRegular,cursive;font-weight:400;display:inline-block;letter-spacing:0;font-size:1.16em;transform:rotate(-4deg)}
.inner-lead{font-size:clamp(21px,2vw,28px);line-height:1.4;margin:0}
.inner-flower{width:clamp(250px,29vw,430px);right:-25px;bottom:15px;transform:scaleX(-1);z-index:-1}
.inner-page .chef-story{margin-top:12px}
.story-values{display:grid;grid-template-columns:1.2fr 1fr;gap:80px;padding-top:100px;padding-bottom:110px}
.story-values h2{font-size:clamp(38px,4.4vw,66px);line-height:1.1;letter-spacing:-.035em;font-weight:400;margin:0}
.story-values__copy{max-width:40ch;font-size:20px;line-height:1.55}.story-values__copy p{margin:0 0 26px}
.contact-heading{margin-bottom:75px}.contact-heading .inner-lead{max-width:36ch}
.contact-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(40px,7vw,110px);align-items:start;position:relative;z-index:1}
.contact-details section{margin-bottom:55px}.contact-details h2{font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:500;margin:0 0 20px;color:#71765b}
.contact-details address{font-style:normal;font-size:clamp(24px,2.6vw,38px);line-height:1.3;letter-spacing:-.025em;margin-bottom:22px}
.contact-details p{font-size:18px;line-height:1.5;max-width:34ch;margin:20px 0}.contact-email{font-size:clamp(20px,2vw,30px);color:inherit;text-decoration:none;overflow-wrap:anywhere}.contact-email:hover{text-decoration:underline;text-underline-offset:5px}
.contact-photo{margin:0}.contact-photo img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:12px}.contact-photo figcaption{font-size:12px;letter-spacing:.08em;margin-top:16px}
.contact-flower{width:320px;right:-40px;bottom:-15px;transform:scaleX(-1);z-index:0}
.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.contact-booking{background:none;border:0;padding:0;cursor:pointer;font-family:inherit}
.contact-heading{position:relative;z-index:1}
.contact-panel{padding-bottom:230px}
.contact-photo img{aspect-ratio:auto}
.contact-flower--top{top:90px;bottom:auto;right:-25px;width:360px}
.contact-flower--bottom{top:auto;bottom:-15px;left:-20px;right:auto;width:340px;transform:none}
@media(max-width:900px){.inner-flower{width:260px;right:-60px;opacity:.35;--reveal-opacity:.35}.story-values{gap:40px}.contact-layout{gap:35px}}
@media(max-width:600px){.inner-heading,.contact-panel,.story-values{border-radius:16px;padding:125px 24px 65px}.inner-heading{padding-bottom:160px}.inner-mark{width:130px;height:130px;margin-bottom:30px}.inner-heading h1,.contact-heading h1{font-size:clamp(54px,13vw,78px)}.inner-flower{width:240px;right:-25px;bottom:-10px}.story-values{grid-template-columns:1fr;gap:30px;padding-top:65px}.story-values__copy{font-size:18px}.contact-heading{margin-bottom:50px}.contact-layout{grid-template-columns:1fr;gap:15px}.contact-details section{margin-bottom:40px}.contact-photo img{aspect-ratio:1/1}.contact-panel{padding-bottom:130px}.contact-flower{width:230px;bottom:-20px}.inner-lead br{display:none}}
@media(max-width:900px) and (min-width:601px){.contact-flower--top{width:260px;opacity:.35;--reveal-opacity:.35}}
@media(max-width:600px){.contact-panel{padding-top:240px;padding-bottom:200px}.contact-photo img{aspect-ratio:auto}.contact-flower--top{top:85px;bottom:auto;right:-20px;width:210px}.contact-flower--bottom{bottom:-15px;width:280px}}

/* Contact entrance: grow from the branch roots, then reveal the invitation.
   CSS owns the initial sequence so content never flashes before JS is ready. */
.contact-title-line,.contact-title-say{display:inline-block}
.contact-handwriting{padding:.12em .09em .12em .03em;margin:-.12em -.09em -.12em .03em}
.contact-flower--top{transform-origin:50% 50%}
.contact-flower--bottom{transform-origin:10% 85%}
@media(prefers-reduced-motion:no-preference){
 .contact-flower--top{animation:contact-bloom 1.65s cubic-bezier(.16,1,.3,1) both}
 .contact-flower--bottom.is-visible{animation:contact-bloom 1.65s cubic-bezier(.16,1,.3,1) both}
 .contact-title-line{animation:contact-words 1s cubic-bezier(.16,1,.3,1) .55s both}
 .contact-title-say{animation:contact-words 1s cubic-bezier(.16,1,.3,1) .78s both}
 .contact-handwriting{animation:contact-ink 1.65s linear 1.1s both}
 .contact-heading .inner-lead{animation:contact-words 1s cubic-bezier(.16,1,.3,1) 1.9s both}
 .contact-details{animation:contact-words 1s cubic-bezier(.16,1,.3,1) 2.1s both}
 /* Keyboard users can reach these links immediately during the entrance. */
 .contact-details:focus-within{animation:none}
}
@keyframes contact-bloom{
 from{opacity:0;scale:.35;rotate:-14deg;translate:0 18px}
 65%{opacity:var(--reveal-opacity,.6)}
 to{opacity:var(--reveal-opacity,.6);scale:1;rotate:0deg;translate:0 0}
}
@keyframes contact-words{
 from{opacity:0;translate:0 28px}
 to{opacity:1;translate:0 0}
}
/* A slanted ink reveal preserves the actual Rung font and accessible text. */
@keyframes contact-ink{
 0%{clip-path:polygon(0 0,0 0,0 100%,0 100%);opacity:0}
 3%{opacity:1}
 28%{clip-path:polygon(0 0,29% 0,20% 100%,0 100%)}
 45%{clip-path:polygon(0 0,43% 0,36% 100%,0 100%)}
 70%{clip-path:polygon(0 0,72% 0,65% 100%,0 100%)}
 100%{clip-path:polygon(0 0,110% 0,100% 100%,0 100%);opacity:1}
}
