.siteFooter .appInstall{display:flex;align-items:center;justify-content:space-between;gap:24px;width:calc(100% - 40px);max-width:1200px;margin:0 auto 30px;padding:26px 30px;border:1px solid #d0a95445;border-radius:14px;background:linear-gradient(120deg,#28231988,#0c0f0b)}
.siteFooter .appInstallCopy{display:flex;align-items:center;gap:18px;min-width:0}
.siteFooter .appInstallIcon{display:block;flex:none;width:68px;height:68px;object-fit:contain;border:1px solid #d0a95440;border-radius:15px;background:#060706}
.siteFooter .appInstall h3{margin:0 0 8px;font-size:23px;color:#f2eadb}
.siteFooter .appInstall p{margin:0;color:#c7b79a;font-size:14px;line-height:1.7}
.appInstallButton{display:inline-flex;align-items:center;justify-content:center;gap:12px;flex:none;min-height:48px;padding:14px 22px;border:1px solid #e4c17d;border-radius:9px;background:linear-gradient(110deg,#ba904b,#f0d79a 55%,#c49b55);color:#17170f;font:700 11px/1.5 Manrope,Arial,sans-serif;letter-spacing:.06em;cursor:pointer}
.appInstallButton svg{width:20px;height:20px;flex:none}
.appInstallButton:hover{filter:brightness(1.08)}
.appInstallButton:disabled{opacity:.6;cursor:wait}
.appInstallButton:focus-visible,.appInstallDialog button:focus-visible{outline:2px solid #efd397;outline-offset:4px}
.appInstall[hidden]{display:none!important}
.appInstallFloating{position:fixed;left:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:21;min-height:48px;padding:13px 18px;box-shadow:0 5px 24px #0006}
.appInstallFloating[hidden]{display:none!important}
body.mobileMenuOpen .appInstallFloating{display:none}
.appInstallDialog{width:min(460px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:30px;border:1px solid #d0a95470;border-radius:16px;background:#10130e;color:#eee8df;box-shadow:0 20px 80px #0009;font:15px/1.75 Arial,sans-serif}
.appInstallDialog::backdrop{background:#030403c9;backdrop-filter:blur(5px)}
.appInstallDialog h2{margin:0 0 16px;font-size:27px}
.appInstallDialog p{color:#c7b79a;margin:0 0 18px}
.appInstallSiteLink{display:inline-block;margin:0 0 20px;color:#e6ce9c;font-size:14px;overflow-wrap:anywhere}
.appInstallSiteLink:focus-visible{outline:2px solid #efd397;outline-offset:4px}
.appInstallDialog ol{margin:0 0 24px;padding-left:22px;color:#eee2ca}
.appInstallDialog li{padding-left:5px;margin-bottom:12px}
.appInstallDialogClose{width:100%;min-height:46px;padding:12px;border:1px solid #d0a95470;border-radius:8px;background:#d0a954;color:#17170f;font-weight:700;cursor:pointer}
@media(max-width:700px){
 .siteFooter .appInstall{flex-direction:column;align-items:stretch;padding:22px 18px;gap:22px}
 .siteFooter .appInstallCopy{align-items:flex-start;gap:14px}
 .siteFooter .appInstallIcon{width:58px;height:58px;border-radius:12px}
 .siteFooter .appInstall h3{font-size:21px}
 .siteFooter .appInstall p{font-size:14px}
 .appInstallButton{width:100%;padding-inline:12px;font-size:11px}
 .appInstallFloating{left:12px;width:136px;min-height:44px;padding:10px;gap:8px;font-size:9px}
 .appInstallDialog{padding:26px 22px}
}

/* Keep the two floating actions compact and aligned above the safe area. */
body .floatingStack{position:fixed;right:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px));align-items:center}
body .appInstallFloating{left:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px))}
body .floatingStack .floating.primary,
body .appInstallFloating{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:140px;min-width:0;height:40px;min-height:40px;padding:8px 12px;margin:0;box-sizing:border-box;font-size:10px;line-height:1.2;white-space:nowrap}
body .floatingStack .floating.primary{position:relative;inset:auto}
body .appInstallFloating svg{width:16px;height:16px}
@media(max-width:700px){
 body .floatingStack .floating.primary,body .appInstallFloating{width:128px;font-size:9px;padding:8px 10px}
}
@media(max-width:560px){.reservationMenu{bottom:calc(66px + env(safe-area-inset-bottom,0px))}}
