/* A quieter route action that follows the contact text rhythm. */
.button.route-button:not(.header-route){min-width:160px;min-height:44px;padding:10px 18px;gap:9px;font-size:16px;line-height:1.35;letter-spacing:0;box-shadow:0 2px 5px #193c441a;margin:5px 0 0}
.button.route-button:not(.header-route) svg{width:18px;height:20px}
.visit .contact-links{margin-top:22px;gap:13px}
.menu-information .button.route-button{margin-top:18px}
.logo-out-of-view .logo-gold-orbit,.logo-out-of-view .logo-gold-orbit:after{animation-play-state:paused}
@media(max-width:750px){.button.route-button:not(.header-route){min-width:160px;min-height:44px;font-size:16px;padding:10px 18px}.menu-information .button.route-button{width:auto;min-width:160px}.visit .contact-links{margin-top:22px}}

/* Vector symbols stay monochrome and consistent on every phone. */
.ui-icon{display:block;width:22px;height:22px}
#nav-toggle{align-items:center;justify-content:center}#privacy-close .ui-icon{width:20px;height:20px}
.heart-mark{display:inline-block;width:24px;height:24px;vertical-align:middle}
.floral-mark{display:inline-block;width:17px;height:17px;vertical-align:-3px}
.ribbon .floral-mark{width:20px;height:20px;vertical-align:middle}
.amenities .floral-mark{width:12px;height:12px;vertical-align:-1px;margin-right:4px}
.olive-mark{display:inline-block;width:42px;height:28px;vertical-align:middle}
.reservation-box .olive-mark{width:36px;height:28px}
@media(max-width:750px){#nav-toggle{display:flex}}

.menu-preview-section{text-align:center}.menu-preview-section .inline-menu-intro{margin:22px auto 30px;max-width:650px}.menu-preview-section .menu-page-button{min-width:225px;padding:16px 32px;font-size:20px;border-radius:32px;box-shadow:0 4px 12px #193c4420}

/* Content stays readable without JavaScript; motion begins only on entry. */
@media(prefers-reduced-motion:no-preference){
 .scroll-reveal-in{animation:rustic-scroll-reveal .85s cubic-bezier(.2,.65,.25,1) var(--reveal-delay,0ms) backwards}
 @keyframes rustic-scroll-reveal{from{opacity:0;transform:translateY(24px);filter:blur(3px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
}
@media(max-width:750px) and (prefers-reduced-motion:no-preference){.scroll-reveal-in{animation-duration:.7s;animation-delay:calc(var(--reveal-delay,0ms)*.5)}}
@media print{.scroll-reveal-in{animation:none!important;opacity:1!important;transform:none!important;filter:none!important}}

/* A consistent, centered mobile footer and tidy text columns. */
@media(max-width:750px){
 footer{align-items:center;text-align:center;gap:26px;padding:36px 7% 30px}
 footer .footer-brand{width:100%;flex-direction:column;justify-content:center;gap:12px}
 footer .footer-brand .brand-wordmark{align-items:center;width:100%;max-width:290px}
 footer .footer-brand .written-name{width:190px;height:50px}
 footer .footer-brand .brand-full-name{max-width:260px;font-size:12px;line-height:1.6;margin:6px auto 0;text-wrap:balance}
 footer>p{text-align:center;width:100%;font-size:18px;line-height:1.6;text-wrap:balance}
 footer>div{justify-content:center;gap:12px 24px;text-align:center}
 footer>div>span{margin:0;text-align:center;line-height:1.6}
 .social-bar{text-align:center;align-items:center}
 .social-bar p{width:100%;margin:0;text-wrap:balance}
 .social-bar>div{display:grid;grid-template-columns:1fr;max-width:340px;margin:8px auto 0}
 .social-bar>div .social-button{width:100%}
 .welcome-text,.moments-copy,.visit-grid>div{min-width:0}
 .contact-links>a:not(.contact-phone){overflow-wrap:anywhere;line-height:1.65}
 .section h2,.moments-copy h2,.menu-intro h1{ text-wrap:balance }
 .visit dl>div{gap:14px}.visit dd{text-align:right}
 .menu-information p,.category-empty{overflow-wrap:break-word}
}
@media(max-width:750px){
 header{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:8px}
 header .brand{width:100%;min-width:0;gap:10px}
 header .logo-halo{flex-shrink:0;width:66px;height:91px}
 header .brand-wordmark{min-width:0;flex:1;max-width:245px}
 header .written-name{width:100%;max-width:195px;height:53px}
 header .brand-full-name{max-width:100%;text-wrap:balance}
 header .brand-top{white-space:normal;line-height:1.6}
 header nav{grid-column:1/-1}
 #nav-toggle{justify-self:end}
}
@media(max-width:360px){header .logo-halo{width:55px;height:77px}header .written-name{height:44px}header .brand-full-name{font-size:10px}header .brand-top{font-size:6px;letter-spacing:.6px}}
