/* A quiet garden note, separate from the restaurant's main content. */
.opening-notice[hidden]{display:none!important}
.opening-notice{position:fixed;inset:0;z-index:200;display:flex;align-items:flex-end;justify-content:center;padding:20px 16px max(20px,env(safe-area-inset-bottom));background:rgba(25,45,29,.22);backdrop-filter:blur(2px)}
.opening-notice-card{position:relative;isolation:isolate;width:min(100%,440px);max-height:calc(100dvh - 40px);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:27px 28px 18px;border:1px solid rgba(255,255,255,.8);border-radius:36px 38px 27px 31px;background:linear-gradient(145deg,#f7f8ed 15%,#e8efdd 100%);box-shadow:0 15px 55px rgba(29,56,30,.2);color:#294535;text-align:center;outline:none}
.opening-notice-card:before{content:"";position:absolute;z-index:-1;inset:6px 8px auto auto;width:90px;height:130px;background:url('./assets/menu-leaf-branch-v20.svg') center/contain no-repeat;opacity:.1;transform:rotate(20deg);pointer-events:none}
.opening-notice-heading{padding:0 30px}.opening-notice-eyebrow{font-size:12px;letter-spacing:.09em;color:#65795a}.opening-notice-heading h2{font:400 32px/1.3 var(--brush);margin-top:3px;letter-spacing:-.02em}
.opening-notice-x{position:absolute;right:12px;top:12px;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:#5c7155;font:300 30px/1 var(--body)}
.opening-notice-mascots{width:114px;height:76px;object-fit:contain;margin:9px auto 7px}
.opening-notice-hours{font-size:18px;line-height:1.65;letter-spacing:-.035em}.opening-notice-hours strong{font-size:25px;color:#355b39;font-weight:700;background:linear-gradient(transparent 64%,#d8e5c8 64%)}
.opening-notice-detail{margin-top:16px;font-size:15px;line-height:1.6}.opening-notice-later{margin-top:10px;font-size:12px;line-height:1.7;color:#64755e}
.opening-notice-actions{display:flex;align-items:center;gap:12px;border-top:1px solid #d5decb;margin-top:22px;padding-top:13px}.opening-notice-today{flex:1;text-align:left;border:0;background:transparent;color:#5b7054;font-size:12px;min-height:44px;padding:6px 0;text-decoration:underline;text-underline-offset:3px}.opening-notice-confirm{min-width:84px;min-height:44px;border:0;border-radius:22px;background:#3c5f40;color:#fff;padding:8px 22px;font-size:14px}
body.notice-open{overflow:hidden}
.gatherings-section{position:relative;z-index:2;max-width:1050px;width:calc(100% - 64px);margin:70px auto 100px;padding:50px 52px;border-block:1px solid #d4dcc6;background:linear-gradient(125deg,rgba(232,238,220,.65),rgba(247,244,233,.4));border-radius:42px 22px 44px 24px}
.gatherings-heading h2{font-size:44px;margin:12px 0 18px}.gatherings-heading>p:last-child{font-size:15px;color:#63715b}.gatherings-spaces{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:35px 0}.gatherings-spaces>div+div{border-left:1px solid #d2dcc5;padding-left:24px}.gatherings-spaces span{font-size:13px;color:#6a7a5f}.gatherings-spaces p{font-size:17px}.gatherings-spaces strong{font:400 48px/1.4 var(--brush);margin-right:6px}.gatherings-booking{display:flex;justify-content:space-between;align-items:center;gap:20px}.gatherings-booking p{font-size:13px;color:#63715b}.gatherings-contact{white-space:nowrap;border-bottom:1px solid #7b8b6a;padding:10px 0;font-size:14px}
@media(min-width:761px){.opening-notice{align-items:center}.opening-notice-card{padding:32px 36px 20px}.opening-notice-mascots{width:126px;height:84px}}
@media(max-width:480px){.opening-notice{padding:12px 12px max(12px,env(safe-area-inset-bottom))}.opening-notice-card{max-height:calc(100dvh - 24px - env(safe-area-inset-bottom));padding:24px 22px 15px;border-radius:32px 34px 25px 28px}.gatherings-section{width:calc(100% - 36px);padding:32px 23px;margin:45px auto 65px}.gatherings-heading h2{font-size:36px}.gatherings-spaces{gap:12px}.gatherings-spaces>div+div{padding-left:12px}.gatherings-spaces span{font-size:11px}.gatherings-spaces strong{font-size:38px}.gatherings-booking{align-items:flex-start;flex-direction:column;gap:9px}}
@media(max-height:600px){.opening-notice-mascots{width:90px;height:60px;margin:3px auto}.opening-notice-card{padding-top:18px}.opening-notice-heading h2{font-size:27px}.opening-notice-detail{margin-top:10px}.opening-notice-actions{margin-top:12px}}
@media(prefers-reduced-motion:no-preference){.opening-notice-card{animation:notice-arrive .24s ease-out}@keyframes notice-arrive{from{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}}

/* Compact notice: keep the message readable without covering the page. */
.opening-notice-card{width:min(100%,400px);padding:16px 20px 10px;border-radius:27px 29px 22px 25px}
.opening-notice-heading{padding:0 36px;margin-bottom:9px}.opening-notice-eyebrow{font-size:10px;line-height:1.3}.opening-notice-heading h2{font-size:24px;line-height:1.2;margin-top:2px}
.opening-notice-mascots{position:absolute;left:12px;top:15px;width:64px;height:43px;margin:0}
.opening-notice-x{top:8px;right:8px}
.opening-notice-hours{font-size:14px;line-height:1.5}.opening-notice-hours strong{font-size:21px}
.opening-notice-detail{margin-top:7px;font-size:13px;line-height:1.5}.opening-notice-detail br{display:none}
.opening-notice-later{margin-top:4px;font-size:11px;line-height:1.45}.opening-notice-later br{display:none}
.opening-notice-actions{margin-top:9px;padding-top:4px}.opening-notice-confirm{min-height:44px;padding:5px 19px}.opening-notice-today{min-height:44px}
@media(max-width:480px){.opening-notice-card{padding:15px 18px 8px}.opening-notice-heading{margin-bottom:8px}.opening-notice-later{max-width:280px;margin-inline:auto}}
/* Grip follows the painted pine branch in the landscape image. */
.hero-scene>.brand-guest--welcome{background-image:url('./assets/mascot-pinecone-scramble-v42.png');right:auto;bottom:auto;z-index:3;transform-origin:86.9% 21.5%;animation:pine-guest-sway 4.6s ease-in-out infinite}
@keyframes pine-guest-sway{0%,100%{transform:rotate(-22deg)}50%{transform:rotate(23deg)}}
@media(prefers-reduced-motion:reduce){.hero-scene>.brand-guest--welcome{animation:none}}

.gatherings-contact{display:flex;flex-direction:column;gap:2px}.gatherings-contact>span:first-child{font-size:11px;color:#63715b}.gatherings-contact strong{font-size:17px;font-weight:500;letter-spacing:.025em}

/* Visit information reads in the requested order: welcome, spaces, directions. */
#visit.visit-section{display:block;max-width:1050px;padding-top:80px}
#visit>.visit-heading{margin-bottom:36px}
#visit>.gatherings-section{width:100%;max-width:none;margin:0 0 48px;padding:38px 42px}
#visit>.visit-details{max-width:800px}
@media(max-width:760px){#visit.visit-section{padding-top:52px}#visit>.gatherings-section{padding:28px 22px;margin-bottom:36px}.gatherings-spaces span{display:block;min-height:38px}}

/* Keep seat captions on one readable line on narrow phones. */
@media(max-width:760px){#visit>.gatherings-section{padding-left:12px;padding-right:12px}.gatherings-spaces{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.gatherings-spaces>div{min-width:0}.gatherings-spaces>div+div{padding-left:6px}.gatherings-spaces span{white-space:nowrap;font-size:11px;letter-spacing:-.035em;min-height:22px}.gatherings-spaces strong{font-size:36px}}
@media(max-width:359px){#visit.visit-section{width:calc(100% - 24px)}#visit>.gatherings-section{padding-left:8px;padding-right:8px}.gatherings-spaces{gap:4px}.gatherings-spaces>div+div{padding-left:4px}}

.gatherings-title-row{display:flex;align-items:center;gap:30px}.gatherings-title-row h2{flex:0 1 auto}.gatherings-table-sketch{width:150px;height:auto;flex:none;color:#788361;opacity:.8;transform:rotate(-3deg)}@media(max-width:760px){.gatherings-title-row{gap:10px;justify-content:space-between}.gatherings-table-sketch{width:85px}.gatherings-title-row h2{font-size:34px}}@media(max-width:359px){.gatherings-table-sketch{width:63px}.gatherings-title-row h2{font-size:31px}}

/* Quiet dining vignette beneath the mother; decorative, no service claim. */

.gatherings-title-row{justify-content:flex-start;gap:12px}.gatherings-table-sketch{width:172px}
@media(max-width:760px){.gatherings-title-row{justify-content:flex-start;gap:5px}.gatherings-table-sketch{width:96px;flex-shrink:1;min-width:63px}}
@media(max-width:359px){.gatherings-table-sketch{width:72px}.gatherings-title-row h2{font-size:30px}}
/* Keep the two main set-photo notices on one quiet line. */
.dish-image figcaption{white-space:nowrap;padding-left:0;padding-right:0;font-size:10px;letter-spacing:-.25px}
@media(max-width:760px){.dish-image figcaption{font-size:9px;letter-spacing:-.45px}}
.single-menu-image-note{white-space:nowrap;font-size:10px;letter-spacing:-.25px}
@media(max-width:760px){.single-menu-image-note{font-size:9px;letter-spacing:-.45px;padding-left:0;padding-right:0}}
