/* Guest app: opt-in at /app, or when launched as an installed application. */
.guest-symbols { position: absolute; width: 0; height: 0; overflow: hidden; }
.guest-icon { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.guest-app-only { display: none !important; }
.mobile-bottom-navigation .guest-nav-label { font-size: 12px; line-height: 1.6; }
.guest-install-dialog { width: min(440px, calc(100% - 32px)); max-height: calc(100dvh - 40px); overflow: auto; border: 0; border-radius: 28px; padding: 32px 26px 24px; color: #193e36; box-shadow: 0 30px 120px #12392e30; }
.guest-install-dialog::backdrop { background: #12292390; backdrop-filter: blur(5px); }
.guest-install-dialog img { border-radius: 19px; }
.guest-install-dialog h2 { font-size: 25px; margin: 10px 0; }
.guest-install-dialog p, .guest-install-dialog ol { font-size: 14px; line-height: 1.9; color: #63756e; }
.guest-install-dialog ol { padding-inline-start: 24px; }
.guest-install-dialog li { padding: 6px 2px; }
.guest-install-dialog .guest-install-eyebrow { color: #0f766e; font-size: 12px; margin-bottom: 0; }
.guest-install-dialog .primary-button, .guest-install-dialog .secondary-button { width: 100%; margin-top: 12px; }
.guest-dialog-close { position: absolute; inset-inline-end: 16px; top: 16px; width: 44px; height: 44px; border: 0; border-radius: 50%; background: #f2f5f3; color: #37564b; font-size: 26px; cursor: pointer; }
.guest-install-link { border: 0; background: transparent; color: #0f766e; padding: 8px 0; min-height: 44px; font: inherit; cursor: pointer; text-align: start; }
.site-header .header-actions { gap: 8px; flex-shrink: 0; }
.site-header .header-login-button { min-height: 44px; white-space: nowrap; }
.guest-install-button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 44px; padding: 8px 13px; border: 1px solid #0f766e; border-radius: 11px; background: #0f766e; color: white; font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; white-space: nowrap; }
.guest-install-button:hover { background: #0c615a; }
/* Tall login forms must keep their install and close controls above the header. */
#login-modal { z-index: 1100; }
.guest-login-install-actions { margin-bottom: 18px; padding-inline-end: 44px; }
.guest-login-install-actions:has([hidden]) { display: none; }
.customer-dashboard .dashboard-heading { flex-wrap: wrap; }
.customer-dashboard .dashboard-heading .guest-install-button { flex-shrink: 0; }
.guest-install-button .guest-icon { width: 17px; height: 17px; }
[data-guest-install]:disabled { opacity: .65; cursor: wait; }
.guest-install-banner[hidden], [data-guest-install][hidden] { display: none !important; }
.guest-install-banner { position: fixed; z-index: 65; inset-inline: max(12px, env(safe-area-inset-left), env(safe-area-inset-right)); bottom: calc(max(var(--install-nav-height, 0px), env(safe-area-inset-bottom)) + 12px); display: grid; grid-template-columns: 48px minmax(0, 1fr); align-items: center; gap: 10px 12px; width: auto; max-width: 460px; margin-inline: auto; padding: 16px; border: 1px solid #cddfd8; border-radius: 22px; background: #fff; color: #193e36; box-shadow: 0 10px 36px #12392e26; }
.guest-install-banner > img { width: 48px; height: 48px; border-radius: 14px; }
.guest-install-banner-copy { min-width: 0; }
.guest-install-banner h2 { margin: 0; font-size: 14px; font-weight: 800; line-height: 1.8; }
.guest-install-banner p { margin: 3px 0 0; color: #63756e; font-size: 12px; line-height: 1.8; }
.guest-install-banner-actions { grid-column: 1 / -1; display: flex; gap: 10px; }
.guest-install-banner-actions button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 8px 18px; border: 0; border-radius: 12px; font: inherit; font-size: 13px; cursor: pointer; }
.guest-install-banner-actions [data-guest-install] { flex: 1; background: #0f766e; color: white; }
.guest-install-banner-actions #guest-install-later { background: #f2f6f4; color: #456358; }
.guest-install-banner .guest-icon { width: 18px; height: 18px; }
.guest-install-banner button:focus-visible, .guest-install-link:focus-visible, .guest-install-button:focus-visible, .guest-install-dialog button:focus-visible { outline: 3px solid #bd913b; outline-offset: 3px; }
.guest-network-status, .guest-update { padding: 12px 18px; border: 1px solid #e8d7a9; border-radius: 14px; margin: 12px 0; background: #fff8e7; color: #6c5317; font-size: 13px; }
.guest-update { display: flex; align-items: center; gap: 16px; }
.guest-update button { flex-shrink: 0; min-height: 44px; border: 0; border-radius: 10px; background: #735515; color: white; padding: 5px 14px; cursor: pointer; }

html[data-guest-app="true"] { background: #edf2ef; --guest-max: 1080px; }
html[data-guest-app="true"] body { min-width: 0; background: #f6f8f7; font-size: 15px; }
html[data-guest-app="true"] .page-shell { --guest-gutter: 28px; width: 100%; max-width: var(--guest-max); min-height: 100dvh; margin: 0 auto; padding: 0 var(--guest-gutter) calc(110px + env(safe-area-inset-bottom)) !important; background: #f6f8f7; }
html[data-guest-app="true"] .site-header { position: relative !important; inset: auto !important; width: 100%; max-width: none; min-height: 90px; margin: 0; padding: max(16px, env(safe-area-inset-top)) 0 16px !important; border: 0; background: transparent; box-shadow: none; }
html[data-guest-app="true"] .brand { gap: 10px; }
html[data-guest-app="true"] .brand-mark { width: 42px; height: 42px; border-radius: 15px; font-size: 26px; background: #0f766e; color: white; }
html[data-guest-app="true"] .brand strong { font-size: 23px; color: #0e4d43; }
html[data-guest-app="true"] .brand small { display: block; font-size: 12px; color: #63786b; }
html[data-guest-app="true"] .desktop-navigation,
html[data-guest-app="true"] .site-footer { display: none !important; }
html[data-guest-app="true"] .guest-app-only:not([hidden]) { display: block !important; }
html[data-guest-app="true"][data-route="home"] .marketplace-hero { width: 100%; margin: 0 !important; padding: 0 !important; }
/* Extend through the frame's padding, never beyond the frame itself. */
html[data-guest-app="true"][data-route="home"] .homepage-hero-visual { width: calc(100% + 2 * var(--guest-gutter)); margin-inline: calc(-1 * var(--guest-gutter)); min-height: 0; height: 285px; border-radius: 0; overflow: hidden; }
html[data-guest-app="true"][data-route="home"] .homepage-hero-visual::after { background: linear-gradient(270deg, #102b24cc, #102b2433 80%); }
html[data-guest-app="true"][data-route="home"] .hero-content { width: min(100%, var(--guest-max)); margin-inline: auto; padding: 32px; justify-content: center; }
html[data-guest-app="true"][data-route="home"] .hero-content .eyebrow { font-size: 11px; color: #ecf7ef; margin: 0 0 12px; font-weight: 500; }
html[data-guest-app="true"][data-route="home"] .hero-content h1 { font-size: clamp(24px, 3.2vw, 36px); max-width: 510px; line-height: 1.65; font-weight: 800; }
html[data-guest-app="true"][data-route="home"] .hero-content > p:last-child { font-size: 12px; max-width: 350px; margin-top: 10px; color: #ebf1ee; }
html[data-guest-app="true"][data-route="home"] .marketplace-search-v201[data-mobile-step="idle"] { width: calc(100% - 28px); margin: -24px auto 0; border: 1px solid #e2e9e4; border-radius: 19px; box-shadow: 0 8px 24px #143e2e0c; }
html[data-guest-app="true"][data-route="home"] .guest-shortcuts { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 30px 0 34px; }
.guest-shortcuts button, .guest-shortcuts a { display: flex; align-items: center; justify-content: center; gap: 12px; min-width: 0; border: 0; background: transparent; color: #405d50; text-decoration: none; font-size: 13px; cursor: pointer; padding: 0; }
.guest-shortcut-icon { display: grid; place-items: center; width: 52px; height: 52px; border: 1px solid #e1e8e2; border-radius: 18px; background: white; }
.guest-shortcuts button:nth-child(2) .guest-shortcut-icon { background: #faf1e1; border-color: #f3e8d4; color: #97763a; }
.guest-shortcuts button:nth-child(3) .guest-shortcut-icon { background: #edf0fa; border-color: #e2e8f4; color: #667bb1; }
.guest-shortcuts a .guest-shortcut-icon { background: #e9f3ee; border-color: #deeee5; color: #3f876c; }
html[data-guest-app="true"] .marketplace-discovery { margin: 0 !important; padding: 0; width: 100%; max-width: none; }
html[data-guest-app="true"] .marketplace-discovery-rows { gap: 32px; }
html[data-guest-app="true"] .marketplace-discovery-title-link h2 { font-size: 20px; color: #193f32; }
html[data-guest-app="true"] .marketplace-discovery-title-link > span { font-size: 11px; }
html[data-guest-app="true"] .marketplace-discovery-track .marketplace-card { border-radius: 20px; box-shadow: none; border: 1px solid #e1e8e3; background: white; }
html[data-guest-app="true"] .marketplace-card-copy { padding: 15px; }
html[data-guest-app="true"] .marketplace-card-media img { object-fit: cover; }
html[data-guest-app="true"] .marketplace-card-price strong { color: #135b46; }
html[data-guest-app="true"] .guest-home-footnote { display: flex !important; align-items: center; justify-content: space-between; gap: 16px; margin-top: 36px; padding: 22px 0 0; border-top: 1px solid #e3e9e5; color: #829087; font-size: 12px; }
.guest-home-footnote a { display: inline-flex; align-items: center; gap: 5px; color: #5e7869; text-decoration: none; }
.guest-home-footnote .guest-icon { width: 16px; height: 16px; }
html[data-guest-app="true"]:not([data-route="home"]) .guest-shortcuts,
html[data-guest-app="true"]:not([data-route="home"]) .guest-home-footnote { display: none !important; }
html[data-guest-app="true"] .mobile-bottom-navigation { position: fixed; inset: auto 0 0; z-index: 60; display: grid !important; grid-template-columns: repeat(5, 1fr); width: min(100%, var(--guest-max)); margin: 0 auto; gap: 4px; padding: 10px max(12px, env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); border-top: 1px solid #e0e8e1; border-radius: 24px 24px 0 0; background: #ffffffed; backdrop-filter: blur(20px); box-shadow: 0 -6px 25px #193c2e05; }
html[data-guest-app="true"] .mobile-bottom-navigation a,
html[data-guest-app="true"] .mobile-bottom-navigation button { display: flex !important; flex-direction: column; justify-content: center; align-items: center; gap: 6px; min-width: 0; min-height: 52px; border: 0; border-radius: 14px; background: transparent; color: #87968e; text-decoration: none; cursor: pointer; padding: 5px 2px; }
html[data-guest-app="true"] .mobile-bottom-navigation [aria-current="page"] { color: #0f766e; background: #eaf4ee; font-weight: 700; }
html[data-guest-app="true"] .mobile-bottom-navigation .guest-nav-label { font-size: 11px; line-height: 1.5; white-space: nowrap; }
html[data-guest-app="true"] .mobile-bottom-navigation .guest-icon { width: 22px; height: 22px; }
html[data-guest-app="true"] .guest-account-prompt { text-align: center; padding: 60px 20px; max-width: 420px; margin: auto; }
.guest-account-prompt > .guest-icon { width: 48px; height: 48px; color: #0f766e; }
.guest-account-prompt h1 { font-size: 24px; }.guest-account-prompt p { color: #6b7c72; font-size: 14px; }
html[data-guest-app="true"] .booking-card { border-radius: 22px; }
html[data-guest-app="true"][data-route="account"] .account-dashboard-card { margin: 0; }
html[data-guest-app="true"][data-route="account"] .customer-dashboard { padding-top: 0 !important; }
html[data-guest-app="true"] button:focus-visible,
html[data-guest-app="true"] a:focus-visible { outline: 3px solid #c1964c; outline-offset: 3px; }
@media (min-width: 1080px) {
  html[data-guest-app="true"] body { background: #edf2ef; }
  html[data-guest-app="true"] .page-shell { border-inline: 1px solid #e2e9e4; }
}
@media (max-width: 680px) {
  html[data-guest-app="true"] .page-shell { --guest-gutter: max(18px, env(safe-area-inset-left), env(safe-area-inset-right)); }
  html[data-guest-app="true"] .site-header { min-height: 84px; }
  html[data-guest-app="true"] .brand strong { font-size: 21px; }
  html[data-guest-app="true"] .brand small { font-size: 10px; }
  html[data-guest-app="true"] .brand-mark { width: 39px; height: 39px; }
  html[data-guest-app="true"][data-route="home"] .homepage-hero-visual { height: 222px; }
  html[data-guest-app="true"][data-route="home"] .hero-content { width: 100%; padding: 24px; justify-content: center; }
  html[data-guest-app="true"][data-route="home"] .hero-content h1 { font-size: 25px; max-width: 260px; }
  html[data-guest-app="true"][data-route="home"] .hero-content > p:last-child { font-size: 11px; max-width: 250px; }
  html[data-guest-app="true"][data-route="home"] .hero-content .eyebrow { margin-bottom: 6px; font-size: 10px; }
  html[data-guest-app="true"][data-route="home"] .marketplace-search-v201[data-mobile-step="idle"] { width: calc(100% - 20px); margin-top: -19px; }
  html[data-guest-app="true"][data-route="home"] .marketplace-search-v201[data-mobile-step]:not([data-mobile-step="idle"]) { width: 100%; margin: 0; border-radius: 0; }
  html[data-guest-app="true"][data-route="home"] .guest-shortcuts { gap: 8px; margin: 24px 0 30px; }
  .guest-shortcuts button, .guest-shortcuts a { flex-direction: column; gap: 8px; font-size: 11px; }
  .guest-shortcut-icon { width: 50px; height: 50px; border-radius: 17px; }
  html[data-guest-app="true"] .marketplace-discovery-title-link h2 { font-size: 18px; }
  html[data-guest-app="true"] .marketplace-discovery-track .marketplace-card { flex-basis: min(280px, 83vw); }
  html[data-guest-app="true"] .marketplace-discovery-track .marketplace-card-title-row h3 { font-size: 16px; }
  html[data-guest-app="true"] .guest-home-footnote { font-size: 10px; }
  html[data-guest-app="true"] .guest-update { flex-direction: column; gap: 6px; align-items: stretch; }
  html[data-guest-app="true"] .marketplace-search input,
  html[data-guest-app="true"] .login-modal input { font-size: 16px; }
}
@media (max-width: 760px) {
  html[data-guest-app="true"] .dashboard-menu-toggle { position: static; width: 100%; box-shadow: none; border-color: #dce7df; font-size: 14px; font-weight: 600; }
  html[data-guest-app="true"] .dashboard-menu.dashboard-tabs { position: static; width: 100%; max-height: none; box-shadow: none; backdrop-filter: none; }
  html[data-guest-app="true"] .dashboard-heading { margin-bottom: 18px; }
  html[data-guest-app="true"] .dashboard-heading .eyebrow { display: none; }
  html[data-guest-app="true"] .dashboard-heading h2 { font-size: 24px; }
  html[data-guest-app="true"] .account-dashboard-card { box-shadow: none; padding: 20px 14px; }
  html[data-guest-app="true"] .reservation-tabs { display: flex; gap: 8px; }
  html[data-guest-app="true"] .reservation-tabs button { flex: 1; font-size: 14px; }
}
@media (max-width: 350px) {
  html[data-guest-app="true"] .page-shell { --guest-gutter: max(12px, env(safe-area-inset-left), env(safe-area-inset-right)); }
  html[data-guest-app="true"][data-route="home"] .hero-content { padding: 21px; }
  html[data-guest-app="true"] .brand small { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  html[data-guest-app="true"] *, html[data-guest-app="true"] *::before, html[data-guest-app="true"] *::after { scroll-behavior: auto !important; transition-duration: 0s !important; animation-duration: 0s !important; }
}

/* Keep account and install actions together on narrow phones. */
@media (max-width: 620px) {
  .site-header .header-actions { gap: 6px; }
  .site-header .header-login-button, .site-header .guest-install-button { padding: 7px 9px; font-size: 12px; }
  html .site-header .brand { gap: 6px; }
  html .site-header .brand-mark { width: 32px; height: 36px; font-size: 23px; }
  html .site-header .brand strong { font-size: 19px; }
  html[data-guest-app="true"] .site-header .brand small { display: none; }
}
@media (max-width: 380px) {
  .site-header .guest-install-button .guest-icon { display: none; }
}
