@import url('assets/fonts.css');
:root{--green:#255140;--deep:#193c30;--pink:#e9d3d1;--cream:#f8f5ee;--gold:#c3a467;--ink:#244b3d;--line:rgba(37,81,64,.24)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--cream);color:var(--ink);font-family:Mulish,Arial,sans-serif;font-size:15px;line-height:1.7}body.locked{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}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--gold);outline-offset:5px}button{color:inherit}img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:'DM Serif Display',Georgia,serif;font-weight:400;line-height:1.12;letter-spacing:.045em}h2{font-size:clamp(38px,4.2vw,64px);margin-bottom:28px}h3{font-size:31px}p{margin-bottom:20px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:.23em;text-transform:none;margin-bottom:22px}.wrap{max-width:1440px;padding:0 6.2%;margin:auto}.section{padding:104px 0}.section-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:42px}.section-head h2{margin:0}.section-head p{max-width:280px;margin:0}.header{height:88px;background:var(--green);color:var(--cream);position:fixed;inset:0 0 auto;z-index:30;border-bottom:1px solid #ffffff26}.header-inner{height:100%;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;padding:0 3.8%}.burger{justify-self:start;display:flex;align-items:center;gap:14px;background:none;border:0;padding:12px 0;text-transform:none;font-size:10px;letter-spacing:.16em}.burger-icon{display:grid;gap:6px;width:27px}.burger-icon i{height:1px;background:var(--cream);display:block}.header-logo{justify-self:center;display:block;width:117px;height:44px;background:var(--gold);mask:url('assets/logo.svg') center/contain no-repeat;-webkit-mask:url('assets/logo.svg') center/contain no-repeat}.reservation-link{justify-self:end;font-size:10px;letter-spacing:.11em;text-transform:none;border-bottom:1px solid var(--gold);padding:8px 0;white-space:nowrap}.reservation-link span{margin-left:18px;font-size:18px}.skip{position:fixed;top:-100px;z-index:100;background:var(--cream);padding:15px}.skip:focus{top:0}main{padding-top:88px}.hero{height:min(760px,calc(100svh - 88px));min-height:530px;position:relative;overflow:hidden;color:var(--cream);background:var(--deep)}.hero video,.hero-poster{position:absolute;width:100%;height:100%;object-fit:cover;object-position:50% 49%}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,24,18,.2),rgba(4,18,13,.27) 45%,rgba(4,18,13,.67))}.hero-content{position:absolute;z-index:2;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;padding-bottom:32px}.hero-logo{width:clamp(290px,39vw,570px);height:240px;background:linear-gradient(120deg,#cfb676,#eedba1 38%,#b99c58 70%,#e7d18e);mask:url('assets/logo.svg') center/contain no-repeat;-webkit-mask:url('assets/logo.svg') center/contain no-repeat;margin-bottom:27px}.hero-content .eyebrow{font-size:11px;color:#fff7e8}.hero-bottom{position:absolute;z-index:3;bottom:28px;left:3.8%;right:3.8%;display:flex;justify-content:space-between;align-items:center;font-size:10px;text-transform:none;letter-spacing:.16em}.hero-bottom a{border-bottom:1px solid #ffffff70;padding:6px 0}.video-toggle{background:none;border:1px solid #ffffff65;border-radius:50%;color:white;width:38px;height:38px;font-size:13px}.motto{padding:52px 5%;display:flex;justify-content:center;align-items:center;gap:32px;background:var(--pink)}.motto h1{font-size:clamp(28px,4.4vw,66px);margin:0;letter-spacing:.035em}.motto img{width:35px;height:45px}.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center}.story-visual{position:relative;align-self:stretch;min-height:660px;margin:22px 0 35px}.story-visual:before{content:'';position:absolute;inset:-16px 20px 25px -16px;border:1px solid var(--gold)}.story-visual>img:first-child{position:relative;width:100%;height:100%;object-fit:cover}.story-stamp{position:absolute;right:-55px;bottom:-40px;width:140px;padding:18px;background:var(--pink);border-radius:50%}.story-copy{padding:16px 0}.story-copy p{font-size:14px;line-height:1.9}.story-copy .story-close{font-family:'DM Serif Display',serif;font-size:24px;margin:8px 0 0;letter-spacing:.04em}.menus{background:#efede4;border-top:1px solid var(--line)}.menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.menu-card{display:block;width:100%;background:transparent;border:0;text-align:left;padding:0}.menu-photo{overflow:hidden;aspect-ratio:1/1.03}.menu-photo img{height:100%;width:100%;object-fit:cover;transition:transform .6s}.menu-card:hover img{transform:scale(1.04)}.menu-caption{padding:24px 0 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.menu-caption h3{margin:0;font-size:28px}.round-arrow{border:1px solid var(--line);border-radius:50%;height:37px;width:37px;display:grid;place-items:center;font-size:22px;transition:background .2s}.menu-card:hover .round-arrow{background:var(--pink)}.menu-caption small{display:block;text-transform:none;letter-spacing:.17em;font-size:9px;margin-top:10px}.gallery-heading{text-align:center;margin-bottom:40px}.gallery-heading h2{margin-bottom:10px}.gallery-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.gallery-grid button{padding:0;border:0;background:var(--pink);aspect-ratio:1;overflow:hidden}.gallery-grid img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.gallery-grid button:hover img{transform:scale(1.08)}.gallery-note{font-size:10px;color:#64766c;margin-top:18px;text-align:right;letter-spacing:.04em}.experiences{background:var(--green);color:var(--cream);position:relative;overflow:hidden}.experiences:after{content:'';position:absolute;right:-95px;top:0;width:300px;height:370px;background:var(--pink);opacity:.04;mask:url('assets/leaf-original.svg') center/contain no-repeat;pointer-events:none}.experience-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px}.experience img{width:100%;height:330px;object-fit:cover}.experience-body{padding:30px 0 0;display:grid;grid-template-columns:1fr;gap:16px}.experience h3{margin-bottom:15px}.experience p{color:#e0e5dc;max-width:420px;font-size:14px;margin-bottom:23px}.text-link{display:inline-flex;align-items:center;gap:32px;border-bottom:1px solid var(--gold);padding-bottom:7px;font-size:11px;text-transform:none;letter-spacing:.14em}.reservations{background:var(--pink);position:relative}.reservation-intro{text-align:center;max-width:680px;margin:0 auto 45px}.reservation-intro img{height:59px;margin:0 auto 24px}.reservation-intro h2{margin-bottom:18px}.reservation-intro p{font-size:14px}.booking-table{border:1px solid var(--green);max-width:1070px;margin:auto}.booking-row{display:grid;grid-template-columns:repeat(3,1fr)}.booking-row+.booking-row{border-top:1px solid var(--line)}.field{padding:21px 27px;display:block;min-width:0}.field+.field{border-left:1px solid var(--line)}.field span{display:block;font-size:9px;letter-spacing:.17em;text-transform:none;font-weight:700;margin-bottom:9px}.field input,.field select{border:0;background:transparent;width:100%;color:var(--green);min-height:32px;outline-offset:1px;font-size:15px}.field input::placeholder{color:#536b5d}.booking-action{border:0;background:var(--green);color:var(--cream);padding:22px;display:flex;justify-content:space-around;align-items:center;font-size:11px;letter-spacing:.12em;text-transform:none}.booking-action:hover{background:var(--deep)}.reservation-help{text-align:center;font-size:11px;margin:20px auto 0;max-width:800px}.reservation-help a{border-bottom:1px solid var(--line)}.visit-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:8%;align-items:center}.contact-lines{display:grid;gap:25px}.contact-lines .eyebrow{margin-bottom:7px}.contact-lines p{margin:0;font-size:14px}.contact-lines a:hover{text-decoration:underline}.contact-actions{display:flex;gap:25px;flex-wrap:wrap;margin-top:35px}.map-box{height:410px;position:relative;background:#e2e5dc;border:1px solid var(--line)}.map-box iframe{width:100%;height:100%;border:0;filter:saturate(.5)}.map-link{position:absolute;bottom:20px;left:20px;background:var(--cream);padding:13px 23px;font-size:11px;letter-spacing:.08em;box-shadow:0 2px 12px #0002}.footer{background:var(--green);color:var(--cream);padding:64px 0 28px}.footer-top{display:flex;align-items:center;justify-content:space-between;gap:25px;padding-bottom:42px;border-bottom:1px solid #ffffff26}.footer-logo{width:210px;height:88px;background:var(--gold);mask:url('assets/logo.svg') center/contain no-repeat;-webkit-mask:url('assets/logo.svg') center/contain no-repeat}.footer-motto{font-family:'DM Serif Display',serif;font-size:24px;letter-spacing:.025em}.social{display:flex;gap:25px}.social button{background:none;border:0;padding:3px 0;color:var(--cream);font-size:11px;border-bottom:1px solid var(--gold)}.footer-bottom{display:flex;justify-content:space-between;gap:20px;padding-top:22px;font-size:10px;letter-spacing:.06em}.nav-dialog{border:0;width:min(530px,100%);max-width:100%;height:100dvh;max-height:100dvh;margin:0;background:var(--green);color:var(--cream);padding:36px 50px}.nav-dialog::backdrop{background:#10281ed9}.nav-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:65px}.nav-top img{width:43px;filter:brightness(0) invert(1);opacity:.7}.close{background:transparent;border:1px solid currentColor;color:inherit;border-radius:50%;width:39px;height:39px;font-size:24px;line-height:1}.nav-links{display:grid;gap:21px}.nav-links a{font-family:'DM Serif Display',serif;font-size:36px;letter-spacing:.025em}.nav-links a:hover{color:var(--gold)}.nav-foot{margin-top:65px;font-size:12px;color:var(--pink)}.modal{border:0;padding:42px;background:var(--cream);color:var(--green);max-width:560px;width:calc(100% - 32px);box-shadow:0 20px 90px #0004}.modal::backdrop{background:#10281edd}.modal .close{float:right;margin:-16px -16px 15px 15px}.modal h2{font-size:38px;clear:both}.modal p{font-size:14px}.modal .text-link{margin-top:15px}.lightbox{padding:18px;max-width:980px;background:var(--deep);color:var(--cream)}.lightbox .close{float:none;position:absolute;top:28px;right:28px;background:var(--deep);margin:0}.lightbox img{max-height:75vh;max-width:100%;margin:auto;object-fit:contain}.lightbox p{margin:16px 0 0;text-align:center;font-size:12px}.contact-hero{background:var(--pink);padding:70px 0}.contact-hero .wrap{display:flex;justify-content:space-between;align-items:center}.contact-hero h1{font-size:70px;margin-bottom:12px}.contact-hero img{width:120px}.contact-hero p{margin:0}.contact-page .visit-grid{align-items:start}.contact-page .map-box{height:550px}.contact-page .reservations{padding:65px 0}.contact-page .reservation-intro{margin-bottom:0}.contact-page .reservation-intro .text-link{margin-top:10px}
@media(min-width:1500px){.hero{height:800px}.hero-logo{width:600px}}
@media(max-width:1000px){.wrap{padding:0 5%}.section{padding:78px 0}.story-grid{gap:7%}.story-visual{min-height:690px}.story-stamp{width:115px;right:-30px}.gallery-grid{gap:8px}.menu-grid{gap:20px}.menu-caption h3{font-size:24px}.motto{gap:20px}.experience img{height:280px}.footer-motto{font-size:20px}}
@media(max-width:700px){html{scroll-padding-top:74px}.header{height:74px}.header-inner{grid-template-columns:1fr auto 1fr;padding:0 20px}.header-logo{width:91px;height:39px}.burger>span:last-child{display:none}.reservation-link{font-size:8px;letter-spacing:.04em;max-width:117px;white-space:normal;text-align:right}.reservation-link span{display:none}main{padding-top:74px}.hero{min-height:530px;height:calc(82svh - 74px)}.hero-logo{height:180px;width:78%;max-width:430px}.hero-content .eyebrow{font-size:8px;letter-spacing:.19em}.hero-bottom{left:20px;right:20px;font-size:8px;letter-spacing:.09em}.hero-bottom .location{max-width:130px}.motto{padding:33px 18px;gap:13px}.motto h1{font-size:clamp(24px,6vw,40px)}.motto img{width:19px;height:25px}.motto img:last-child{display:none}.section{padding:64px 0}.wrap{padding:0 24px}.story-grid{grid-template-columns:1fr;gap:25px}.story-visual{height:460px;min-height:0;margin:16px 16px 30px 10px}.story-stamp{width:112px;right:-20px;bottom:-29px}.story-copy p{font-size:14px}.story-copy h2{font-size:45px}.section-head{display:block;margin-bottom:30px}.section-head p{margin-top:20px;max-width:none;font-size:13px}.menu-grid{grid-template-columns:1fr;gap:34px}.menu-photo{aspect-ratio:1.3}.menu-caption{padding:18px 0}.menu-caption h3{font-size:30px}.gallery-grid{grid-template-columns:repeat(2,1fr);gap:8px}.gallery-note{text-align:left;font-size:9px}.experience-grid{grid-template-columns:1fr;gap:43px}.experience img{height:280px}.experience-body{padding-top:23px}.booking-row{grid-template-columns:1fr}.field{padding:15px 20px}.field+.field{border-left:0;border-top:1px solid var(--line)}.booking-action{min-height:72px}.reservation-intro h2{font-size:38px}.reservation-help{font-size:10px;padding:0 10px}.visit-grid{grid-template-columns:1fr;gap:40px}.map-box{height:350px}.footer-top{flex-direction:column;align-items:flex-start;gap:28px}.footer-logo{width:185px;height:77px}.footer-bottom{flex-direction:column;gap:8px}.footer-motto{font-size:23px}.nav-dialog{padding:28px 32px}.nav-links a{font-size:32px}.contact-hero{padding:49px 0}.contact-hero h1{font-size:48px}.contact-hero img{width:63px;margin-left:20px}.contact-hero p{font-size:12px}.contact-page .map-box{height:400px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}.hero video{display:none}}

/* Footer, privacy information and optional Google Maps */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.footer{position:relative;overflow:hidden}.footer>.wrap{position:relative;z-index:1}.footer-leaf{position:absolute;width:330px;height:430px;right:-70px;bottom:-130px;background:var(--pink);opacity:.065;transform:none;mask:url('assets/leaf-original.svg') center/contain no-repeat;-webkit-mask:url('assets/leaf-original.svg') center/contain no-repeat;pointer-events:none}.footer-legal{display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid #ffffff26;padding-top:25px;margin-top:28px;font-size:10px;letter-spacing:.03em}.footer-legal>div{display:flex;flex-wrap:wrap;gap:24px}.footer-legal a,.footer-legal button{background:none;border:0;border-bottom:1px solid #c3a46780;color:inherit;padding:0 0 3px;font-size:10px}.footer-leaf-small{width:36px;height:46px;filter:brightness(0) saturate(100%) invert(77%) sepia(16%) saturate(838%) hue-rotate(1deg) brightness(86%) contrast(91%)}.social{gap:13px}.social a,.social button{display:grid;place-items:center;width:42px;height:42px;border:1px solid #c3a46790;border-radius:50%;background:transparent;color:var(--cream);padding:10px;transition:background .2s,color .2s}.social svg{width:21px;height:21px}.social a:hover,.social button:hover{background:var(--pink);color:var(--green)}.map-consent{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px 20px 70px;background:linear-gradient(145deg,#e9e8dc,#f3eee5)}.map-consent[hidden]{display:none}.map-consent>img{height:38px;margin-bottom:16px}.map-consent .eyebrow{margin-bottom:8px}.map-consent h3{font-size:25px;margin-bottom:12px}.map-consent p{font-size:12px;margin-bottom:14px}.map-load{background:var(--green);color:var(--cream);border:0;font-size:10px;letter-spacing:.05em;padding:13px 20px}.map-consent small{font-size:9px;margin-top:12px}.map-consent small a{text-decoration:underline}.privacy-content{max-width:990px}.privacy-content h2{font-size:31px;line-height:1.3;margin-top:45px;margin-bottom:18px}.privacy-content p{font-size:14px;line-height:1.9}.privacy-content a{border-bottom:1px solid var(--gold)}.privacy-contact{margin-top:42px;padding:28px;background:var(--pink)}.privacy-contact p:last-child{margin:0}
@media(max-width:700px){.footer-legal{align-items:flex-start;flex-direction:column;gap:22px}.footer-leaf-small{align-self:flex-end;margin-top:-50px}.footer-legal>div{gap:18px;padding-right:40px}.map-box{height:440px}.contact-page .map-box{height:440px}.map-consent h3{font-size:23px}.map-consent{padding-bottom:72px}.privacy-content h2{font-size:27px}.contact-hero h1{font-size:42px}}

/* Sentence-case top navigation and exact supplied photograph selection. */
.header .burger,.header .reservation-link,.hero .eyebrow,.hero-bottom{text-transform:none;letter-spacing:.055em}
.header .burger{font-size:12px}.header .reservation-link{display:flex;align-items:center;gap:10px;border:0;text-decoration:none;font-size:12px;letter-spacing:.025em;white-space:nowrap}

.hero-content .eyebrow{font-size:13px}.hero-bottom{font-size:12px}.story-visual>img:first-child{object-position:65% center}
@media(max-width:700px){.header .reservation-link{font-size:10px;gap:7px;white-space:normal;max-width:135px;text-align:left;line-height:1.35}.hero-content .eyebrow{font-size:11px}.hero-bottom{font-size:10px}}

.hero-content .eyebrow{margin-bottom:12px}.hero-hours{margin:0;text-align:center;white-space:nowrap;font-size:12px;letter-spacing:.055em}
@media(max-width:700px){.hero-hours{font-size:10px}}

/* Regale font families and regular serif weight, with spacing adapted for screen readability. */
h1,h2,h3,.story-close,.footer-motto,.nav-links a{font-weight:400}
.motto h1{min-width:0;text-align:center}.motto img{flex-shrink:0}

/* Sentence case for section labels, menu captions, form labels and actions. */
.eyebrow,.menu-caption small,.text-link,.field span,.booking-action{letter-spacing:.055em}

/* Match the opening tagline and hours in Mulish Regular. */
.hero-content .eyebrow,.hero-content .hero-hours{font-weight:400}

/* Uppercase supporting labels; sentence-case titles, body copy and actions. */
.section .eyebrow,.menu-caption small,.field span{text-transform:uppercase;letter-spacing:.14em}

/* Match the reservation action to the field text and balance its arrow. */
.booking-action{font-size:15px;font-weight:500;line-height:1.4;letter-spacing:.025em;justify-content:center;gap:18px}
.booking-action span{font-size:18px;line-height:1;flex-shrink:0}

/* Outlined reservation button in the Regale palette. */
.header .reservation-link{background:transparent;color:var(--cream);border:1px solid var(--gold);padding:12px 20px;min-height:44px;justify-content:center;text-align:center;line-height:1.35;transition:background .2s,border-color .2s,color .2s}
.header .reservation-link:hover{background:var(--gold);border-color:var(--gold);color:var(--deep)}
@media(max-width:700px){.header .reservation-link{padding:9px 10px;width:100%;max-width:135px;min-width:0;text-align:center}}

/* Leaf compositions from the Regale Execute book, pp. 9, 21, 31 and 42.
   Preserve the original marks; use paired accents and edge-cropped watermarks. */
.motto img{width:64px;height:auto}
.nav-top img{width:66px;height:auto}
.reservation-intro img{width:88px;height:auto;margin-bottom:24px}
.map-consent>img{width:58px;height:auto}
.contact-hero img{width:150px;height:auto}
.footer-leaf-small{width:62px;height:auto}

.menus,.reservations,.contact-hero{position:relative;isolation:isolate;overflow:hidden}
.menus>.wrap,.experiences>.wrap,.reservations>.wrap,.contact-hero>.wrap{position:relative;z-index:1}
.menus:before,.experiences:before,.reservations:before,.contact-hero:before,.footer:before{
 content:'';position:absolute;pointer-events:none;background:var(--green);
 mask:url('assets/leaf-original.svg') center/contain no-repeat;
 -webkit-mask:url('assets/leaf-original.svg') center/contain no-repeat;
}
/* Coffee-bag layout: a single leaf entering from the upper left. */
.menus:before{width:340px;height:445px;left:-185px;top:-235px;transform:rotate(-65deg);opacity:.075}
/* Website direction: a large leaf on the right, with a low paired cluster on the left. */
.experiences:after{width:430px;height:563px;right:-240px;top:-100px;background:var(--deep);opacity:.46;transform:rotate(30deg);-webkit-mask:url('assets/leaf-original.svg') center/contain no-repeat}
.experiences:before{width:310px;height:210px;left:-135px;bottom:-65px;background:var(--deep);opacity:.44;transform:rotate(-28deg);mask-image:url('assets/leaf-pair-execute.svg');-webkit-mask-image:url('assets/leaf-pair-execute.svg')}
/* Paired mark above the reservation heading, framed by a quiet cropped leaf. */
.reservations:before{width:330px;height:432px;right:-200px;bottom:-175px;transform:rotate(50deg);opacity:.075}
.contact-hero:before{width:270px;height:353px;left:-175px;top:-195px;transform:rotate(-65deg);opacity:.075}
/* Footer follows the execution cover and packaging: asymmetric edge crops. */
.footer:before{width:310px;height:406px;left:-215px;top:-185px;transform:rotate(-60deg);background:var(--deep);opacity:.42}
.footer-leaf{width:390px;height:264px;right:-150px;bottom:-82px;transform:rotate(-34deg);background:var(--deep);opacity:.48;mask-image:url('assets/leaf-pair-execute.svg');-webkit-mask-image:url('assets/leaf-pair-execute.svg')}
@media(max-width:700px){
 .motto img{width:38px;height:auto}
 .reservation-intro img{width:72px}
 .contact-hero img{width:84px;flex-shrink:0}
 .footer-leaf-small{width:53px}
 .menus:before{width:210px;height:275px;left:-135px;top:-145px}
 .experiences:after{width:290px;height:380px;right:-195px;top:-55px;opacity:.35}
 .experiences:before{width:210px;height:142px;left:-110px;bottom:-50px;opacity:.35}
 .reservations:before{width:235px;height:307px;right:-165px;bottom:-130px}
 .footer:before{left:-245px;opacity:.35}
 .footer-leaf{width:285px;height:193px;right:-130px;bottom:-65px;opacity:.4}
}
