
/* Reference-match elegance */
body{background:#f7f3ec}.site-shell{max-width:1540px;background:white;box-shadow:0 8px 38px #18352a1a}
.site-header{border-bottom:1px solid #f0ede8;background:white}
.header-inner{max-width:1500px;min-height:105px}
.brand-copy strong{font-family:Georgia,serif;font-weight:700;color:#18352b}
.desktop-nav a{font-size:15px}.nav-book{border-radius:12px}
.home-hero{min-height:760px;background:#faf8f4}
.home-hero:before{background-image:linear-gradient(90deg,#faf8f5 0%,#faf8f5 29%,#faf8f5ed 43%,#faf8f5a1 56%,transparent 76%),var(--hero-image);background-size:cover,cover;background-position:center,right center}
.hero-content h1{font-family:Georgia,serif;font-weight:700;color:#04372d;line-height:1.07;font-size:clamp(60px,5.8vw,94px)}
.hero-content{max-width:890px}.hero-actions .btn{border-radius:12px}
.value-bar{background:#fff;box-shadow:0 10px 20px #00000005}
.menu-intro{min-height:245px;text-align:center;justify-content:center;background:#382713;color:white}
.menu-intro:before{content:'';position:absolute;inset:0;background:linear-gradient(#0009,#0009),var(--menu-banner);background-position:center;background-size:cover}
.menu-intro h1,.menu-intro p{color:#fff}.menu-intro .eyebrow{display:none}
.menu-content.section{padding-top:35px}.menu-note{display:none}.menu-toolbar{justify-content:center}
.menu-filter{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.menu-filter button{background:#f3f3f2;border:0;min-height:50px;padding:12px 20px;border-radius:10px}
.menu-filter button.active{background:#00503e;color:#fff}
.menu-layout{grid-template-columns:minmax(0,1fr);gap:30px}
.menu-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.photo-menu-card{border-radius:13px;overflow:hidden;background:#f7f7f6;border:1px solid #f0ece5;box-shadow:0 4px 12px #16352a0c}
.menu-card-photo{width:100%;height:184px;object-fit:cover;display:block}
.photo-menu-card .menu-card-head{padding:16px 14px 0;border:0}
.photo-menu-card .menu-card-head h3{font:700 18px/1.25 'DM Sans',Arial,sans-serif;color:#263b32;margin:0}
.photo-menu-card .cat-icon{display:none}
.photo-menu-card .menu-choice-details{padding:10px 13px 14px}
.menu-choice-details summary{list-style:none;cursor:pointer;text-align:center;background:#00503e;color:white;padding:12px;border-radius:9px;font-size:13px;font-weight:700}
.menu-choice-details summary::-webkit-details-marker{display:none}
.menu-choice-details .dish-list{padding:10px 2px;max-height:300px;overflow:auto}
.menu-sidebar{position:static}.menu-sidebar .sticky-panel{position:static;max-width:940px;margin:auto}
.booking-page{grid-template-columns:44% 56%;background:#064035}
.booking-aside{background:linear-gradient(100deg,#00382f,#0a4036);position:relative}
.booking-aside-inner{padding-top:75px}.booking-aside h1{font:700 clamp(49px,4vw,67px)/1.07 Georgia,serif}
.booking-card{margin:40px 35px 40px 0;border-radius:23px;padding:35px;box-shadow:0 13px 33px #061b1533}
.booking-card .step-head h2{font-family:Georgia,serif}
@media(max-width:1040px){.menu-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-page{grid-template-columns:1fr}.booking-card{margin:23px 6vw 50px}}
@media(max-width:760px){.site-shell{width:100%;margin:0;border-radius:0}.home-hero{min-height:720px}.home-hero:before{background-image:linear-gradient(0deg,#faf8f5 0%,#faf8f5 26%,#faf8f5d8 48%,transparent 77%),var(--hero-image);background-position:center,top center;background-size:cover,auto 66%}.hero-content{width:100%;margin:0;padding:260px 25px 50px}.hero-content h1{font-size:clamp(42px,11vw,64px);line-height:1.08}.hero-content .lead{font-size:15px}.menu-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.menu-card-photo{height:135px}.photo-menu-card .menu-card-head{padding:12px 10px}.photo-menu-card .menu-card-head h3{font-size:14px}.menu-choice-details summary{font-size:11px;padding:10px}.booking-card{margin:20px 14px 40px;padding:24px 18px}}
@media(max-width:390px){.menu-grid{grid-template-columns:1fr}.menu-card-photo{height:185px}}



/* Royal Feast v5: reliable touch navigation and editorial scroll movement */
@media(max-width:1040px){
.site-shell{overflow:visible!important}
.site-header{position:sticky!important;top:0;z-index:1001!important;overflow:visible!important;isolation:isolate}
.site-header.royal-scrolled{box-shadow:0 8px 25px rgba(1,45,36,.12)}
.menu-toggle{display:flex!important;position:relative!important;z-index:5;cursor:pointer;touch-action:manipulation}
.menu-toggle.is-open span:first-child{transform:translateY(4px) rotate(45deg)!important}
.menu-toggle.is-open span:last-child{transform:translateY(-4px) rotate(-45deg)!important}
.mobile-nav{display:none!important;position:fixed!important;left:auto!important;right:15px!important;top:var(--royal-menu-top,88px)!important;z-index:1002!important;
width:min(335px,calc(100vw - 30px))!important;max-height:calc(100dvh - 112px)!important;overflow-y:auto;
background:#fff!important;border:1px solid #eae3d8;border-radius:20px!important;
padding:17px!important;gap:3px!important;box-shadow:0 28px 62px rgba(2,40,29,.24)!important;
flex-direction:column!important;animation:rfNavAppear .32s cubic-bezier(.2,.8,.2,1) both}
.mobile-nav.open{display:flex!important;pointer-events:auto!important;visibility:visible!important}
.mobile-nav a:not(.btn){font:600 15px/1.5 'DM Sans',Arial,sans-serif!important;padding:11px 12px!important;border-radius:10px!important;}
.mobile-nav a:not(.btn):hover,.mobile-nav a:not(.btn).active{background:#f4f1e9!important;color:#a27b39!important}
.mobile-nav .btn{width:100%!important;margin-top:9px!important;min-height:49px!important;font-size:14px!important}
.mobile-nav:before{display:none!important}
.royal-nav-backdrop.open{display:block;position:fixed;inset:0;z-index:999;background:rgba(4,34,27,.27)}
body.nav-open{overflow:hidden!important}
@keyframes rfNavAppear{from{opacity:0;transform:translateY(-12px) scale(.975)}to{opacity:1;transform:translateY(0) scale(1)}}
}
@media(min-width:1041px){.mobile-nav.open{display:none!important}}
@media(prefers-reduced-motion:no-preference){
.royal-enter{opacity:0!important;transform:translate3d(0,38px,0)!important;filter:blur(2px)!important;transition:opacity .95s cubic-bezier(.19,1,.22,1),transform 1s cubic-bezier(.19,1,.22,1),filter .95s ease!important;transition-delay:var(--royal-delay,0ms)!important}
.royal-enter.royal-visible{opacity:1!important;transform:translate3d(0,0,0)!important;filter:none!important}
.occasion-card.royal-enter,.welcome-photo.royal-enter,.teaser-image.royal-enter,.gallery-grid figure.royal-enter{transform:translate3d(0,45px,0) scale(.975)!important}
.occasion-card.royal-enter.royal-visible,.welcome-photo.royal-enter.royal-visible,.teaser-image.royal-enter.royal-visible,.gallery-grid figure.royal-enter.royal-visible{transform:translate3d(0,0,0) scale(1)!important}
.home-hero .eyebrow{animation:rfRise .85s .1s both}
.home-hero h1{animation:rfRise .95s .19s both}
.home-hero .lead{animation:rfRise .95s .32s both}
.home-hero .hero-actions{animation:rfRise .95s .45s both}
@keyframes rfRise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
}
@media(prefers-reduced-motion:reduce){.royal-enter,.royal-enter.royal-visible{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}.mobile-nav{animation:none!important}}


/* RF Mobile navigation and premium scroll refinements - 2026-11-02 */
@media(max-width:1040px){
 .site-header {position:sticky!important;top:0;z-index:1600!important;overflow:visible!important;}
 .header-inner {position:relative;z-index:4;}
 .menu-toggle {display:flex!important;position:relative;z-index:8;align-items:center;justify-content:center;cursor:pointer;touch-action:manipulation;}
 .mobile-nav{position:absolute!important;z-index:7!important;top:calc(100% + 9px)!important;right:12px!important;left:auto!important;width:min(335px,calc(100vw - 24px))!important;max-height:calc(100dvh - 105px);overflow-y:auto;display:none!important;padding:16px!important;flex-direction:column!important;gap:3px!important;border:1px solid #e6e3da!important;border-radius:18px!important;background:#fff!important;box-shadow:0 22px 65px rgba(4,34,29,.18)!important}
 .mobile-nav.open{display:flex!important;visibility:visible!important;pointer-events:auto!important;animation:rfMenuOpen .32s cubic-bezier(.22,1,.36,1) both;}
 .mobile-nav a:not(.btn){font:600 15px/1.35 'DM Sans',Arial,sans-serif!important;padding:12px 13px!important;border-radius:9px!important}
 .mobile-nav a:not(.btn):active,.mobile-nav a:not(.btn).active{background:#f6f2e9!important;color:#ab8244!important}
 .mobile-nav .btn{width:100%;align-self:stretch!important;margin-top:7px;min-height:48px;border-radius:12px!important}
 .rf-nav-shade.open{display:block;position:fixed;inset:0;z-index:1500;background:rgba(8,31,25,.30);animation:rfShadeIn .26s ease both}
 @keyframes rfMenuOpen{from{opacity:0;transform:translateY(-12px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
 @keyframes rfShadeIn{from{opacity:0}to{opacity:1}}
}
.rf-nav-shade{display:none}
.menu-toggle:focus-visible,.mobile-nav a:focus-visible{outline:2px solid #c29e5e;outline-offset:4px}
@media(prefers-reduced-motion:no-preference){
 .rf-scroll-item.rf-scroll-item:not(.rf-in-view){opacity:0!important;transform:translate3d(0,35px,0)!important;filter:blur(3px)!important}
 .rf-scroll-item.rf-in-view{opacity:1!important;transform:translate3d(0,0,0)!important;filter:blur(0)!important}
 .rf-scroll-item{transition:opacity .84s cubic-bezier(.22,1,.36,1),transform .95s cubic-bezier(.22,1,.36,1),filter .82s ease!important;transition-delay:var(--rf-stagger,0ms)!important}
 .rf-scroll-image.rf-scroll-image:not(.rf-in-view){transform:translate3d(0,42px,0) scale(.973)!important}
 .rf-scroll-image.rf-in-view{transform:translate3d(0,0,0) scale(1)!important}
 .home-hero .eyebrow{animation:rfHeroEntrance .9s .07s both}
 .home-hero h1{animation:rfHeroEntrance 1s .15s both}
 .home-hero .lead{animation:rfHeroEntrance 1.08s .27s both}
 .home-hero .hero-actions{animation:rfHeroEntrance 1s .39s both}
 @keyframes rfHeroEntrance{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
 @media(max-width:760px){.rf-scroll-item.rf-scroll-item:not(.rf-in-view){filter:none!important;transform:translate3d(0,22px,0)!important}}
}
@media(prefers-reduced-motion:reduce){.rf-scroll-item{opacity:1!important;transform:none!important;filter:none!important;transition:none!important;animation:none!important}.mobile-nav.open{animation:none!important}}
