/* App promotion: inactive unless config.appPromotion.enabled is true. */
.store-badge{display:inline-flex;align-items:center;min-height:72px;padding:12px;width:max-content;max-width:100%;flex:none}
.store-badge img{height:48px;width:auto;max-width:100%}
.app-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-left:-12px}
.app-web-link,.app-address{display:inline-flex;align-items:center;min-height:44px;font-weight:700}
.app-address{overflow-wrap:anywhere}
.app-screen{justify-self:center;width:440px;min-width:0;max-width:100%;margin:0}
.app-preview-open{display:block;color:var(--teal);text-decoration:none;border-radius:20px}
.app-preview-label{display:flex;align-items:center;justify-content:center;min-height:44px;margin-top:4px;font-size:14px;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.app-iphone{position:relative;aspect-ratio:1350/2760;container-type:inline-size}
.app-iphone-display{position:absolute;inset:2.5% 5.333333%;overflow:hidden;border-radius:14% / 6.44%;background:var(--fog,#f2f4f3)}
.app-iphone-display::after{content:"";position:absolute;inset:auto 0 0;height:2.7%;background:var(--fog,#f2f4f3);pointer-events:none}
.app-iphone .app-capture{display:block;width:100%;height:100%;object-fit:cover}
.app-iphone .app-iphone-frame{position:relative;z-index:2;display:block;width:100%;height:auto;pointer-events:none}
.app-iphone-status{position:absolute;z-index:1;top:1.5%;left:7.8%;right:7.8%;display:flex;align-items:center;justify-content:space-between;color:#111;font:600 3.8cqw/1 system-ui,sans-serif;pointer-events:none}
.app-iphone-status svg{width:15%;height:auto}
.app-iphone-home{position:absolute;z-index:1;bottom:1.1%;left:34%;width:32%;height:.55%;border-radius:20px;background:#111;pointer-events:none}
.app-screen-slot{aspect-ratio:9/16;border:2px dashed var(--line);border-radius:20px;background:var(--paper);padding:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;font-size:14px}
.app-screen-slot b{color:var(--ink);font-family:var(--display);font-size:20px}
.app-qr{display:none;gap:16px;align-items:center;font-size:14px}
.app-qr img{width:140px;height:140px;max-width:none;flex:none}
.app-qr > div{min-width:0;max-width:240px}
.app-web-label{font-size:14px;font-weight:800;color:var(--teal);margin-bottom:8px}
.app-legal{font-size:12px;margin-top:16px;max-width:720px}
.app-footer-link{margin-left:12px}
@media (hover:hover) and (pointer:fine) and (min-width:900px){.app-qr{display:flex}}
.app-promotion .hero-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}
.app-promotion .nav{gap:16px}
.app-promotion .nav .app-get{color:#fff}
@media (max-width:1000px){.app-promotion .nav a:not(.btn){display:none}}
/* Keep the desktop hero within a typical laptop viewport; mobile stays full width. */
@media (min-width:821px){
  .app-promotion .hero-grid{align-items:start}
  .app-promotion .hero-left{padding-top:clamp(16px,4vh,40px)}
  .app-promotion .hero h1{font-size:clamp(48px,5vw,72px)}
  .app-promotion .app-screen{width:clamp(270px,calc((100svh - 190px)*.48913),360px)}
  .app-promotion .app-qr img{width:104px;height:104px}
}
@media (max-width:820px){.app-promotion .hero-grid{grid-template-columns:minmax(0,1fr)}}
/* /app has a complete web-booking fallback even with scripts blocked. */
.app-landing{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:calc(24px + env(safe-area-inset-top,0px)) calc(16px + env(safe-area-inset-right,0px)) calc(24px + env(safe-area-inset-bottom,0px)) calc(16px + env(safe-area-inset-left,0px))}
.app-card{width:min(100%,640px);padding:clamp(24px,5vw,40px);border:1px solid var(--line);border-radius:28px;background:var(--paper);display:grid;gap:20px;justify-items:start;box-shadow:0 30px 60px -36px rgba(30,58,138,.45)}
.app-card h1{font-size:clamp(32px,5vw,44px);line-height:1.05}
.app-card .logo{min-height:44px}
.app-card .app-actions{margin-left:0;gap:12px}
.app-card .app-legal{margin-top:0}
.app-card .app-address{font-size:14px}
.app-download{display:grid;gap:16px}
.app-download:empty{display:none}
@media (max-width:520px){.app-card .app-actions{width:100%}.app-card .app-actions .btn{width:100%}}
