/* "Get the Book Apno Event App" — Android bottom sheet (includes/app_promo.php).
   Same shape, colours and radii as the sign-in sheet (auth-modal.css) and the
   2026 design tokens; the fallbacks keep it right on legacy pages too. */
.apx{position:fixed;inset:0;z-index:1990;display:flex;align-items:flex-end;justify-content:center;
  font-family:var(--font,inherit);-webkit-tap-highlight-color:transparent}
.apx[hidden]{display:none}
.apx .apx-backdrop{position:absolute;inset:0;background:rgba(17,24,39,.55);opacity:0;transition:opacity .28s var(--ease,ease)}
.apx.is-open .apx-backdrop{opacity:1}
.apx .apx-panel{position:relative;outline:0;box-sizing:border-box;width:100%;max-width:440px;max-height:92vh;overflow:auto;
  background:var(--surface,#fff);color:var(--ink,#13161f);
  border-radius:var(--r-lg,22px) var(--r-lg,22px) 0 0;
  padding:22px 20px calc(18px + env(safe-area-inset-bottom,0px));
  box-shadow:0 -12px 40px rgba(17,24,39,.18);
  transform:translateY(100%);transition:transform .32s var(--ease,cubic-bezier(.22,.61,.36,1))}
.apx.is-open .apx-panel{transform:none}
.apx .apx-panel::before{content:"";display:block;width:40px;height:4px;border-radius:999px;background:var(--line-strong,rgba(19,22,31,.16));margin:-8px auto 14px}
.apx .apx-x{position:absolute;top:8px;right:8px;width:44px;height:44px;padding:0;margin:0;border:0;background:none;border-radius:50%;
  color:var(--ink-3,#6b7280);cursor:pointer;display:grid;place-items:center;box-shadow:none}
.apx .apx-x svg{width:22px;height:22px;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;fill:none}
.apx .apx-x:hover,.apx .apx-x:focus-visible{background:var(--surface-sunk,#f3f4f6);color:var(--ink,#111827);outline:0}
.apx .apx-head{display:flex;align-items:center;gap:14px;padding-right:40px;min-width:0}
.apx .apx-head picture{flex:0 0 auto;line-height:0}
.apx .apx-icon{width:64px;height:64px;border-radius:15px;display:block;box-shadow:0 6px 18px rgba(218,6,21,.18)}
.apx .apx-head-text{min-width:0}
.apx .apx-title{margin:0;font-size:1.2rem;line-height:1.25;font-weight:800;letter-spacing:-.01em;color:inherit;overflow-wrap:anywhere}
.apx .apx-meta{display:block;margin-top:3px;font-size:var(--fs-xs,.78rem);font-weight:600;color:var(--ink-3,#6b7280)}
.apx .apx-text{margin:14px 0 0;font-size:var(--fs-md,.94rem);line-height:1.5;color:var(--ink-2,#4b5563)}
.apx .apx-btn{box-sizing:border-box;margin-top:18px;width:100%;min-height:52px;padding:12px 16px;border:0;
  border-radius:var(--r-sm,12px);background:var(--brand,#da0615);color:#fff !important;text-decoration:none !important;
  font-weight:700;font-size:1rem;line-height:1.2;display:flex;align-items:center;justify-content:center;gap:10px;
  box-shadow:0 10px 22px -10px rgba(218,6,21,.65);cursor:pointer}
.apx .apx-btn svg{width:20px;height:20px;fill:currentColor;flex:0 0 auto}
.apx .apx-btn:hover{background:var(--brand-dark,#a60410)}
.apx .apx-btn:focus-visible{outline:3px solid var(--ink,#111827);outline-offset:2px}
.apx .apx-later{display:block;box-sizing:border-box;width:100%;min-height:var(--tap,44px);margin-top:8px;border:0;background:none;
  border-radius:var(--r-sm,12px);color:var(--ink-2,#4b5563);font:inherit;font-weight:600;font-size:.95rem;cursor:pointer}
.apx .apx-later:hover,.apx .apx-later:focus-visible{background:var(--surface-sunk,#f3f4f6);color:var(--ink,#111827);outline:0}
body.apx-lock{overflow:hidden}
/* Smallest Android phones (320px): a little tighter, nothing clipped. */
@media (max-width:359px){
  .apx .apx-panel{padding-left:16px;padding-right:16px}
  .apx .apx-head{gap:12px}
  .apx .apx-icon{width:54px;height:54px;border-radius:13px}
  .apx .apx-title{font-size:1.08rem}
}
@media (prefers-reduced-motion:reduce){.apx .apx-panel,.apx .apx-backdrop{transition:none}}
.apx .apx-btn:focus:not(:focus-visible),.apx .apx-later:focus:not(:focus-visible),.apx .apx-x:focus:not(:focus-visible){outline:0}

/* ---- Google Play (2026-11-21): smart banner, Play button, footer strip, card ---- */
/* Smart app banner: in flow at the very top (the header below is sticky). */
.apb{display:flex;align-items:center;gap:10px;box-sizing:border-box;width:100%;padding:8px 12px 8px 4px;
  background:var(--surface,#fff);color:var(--ink,#13161f);border-bottom:1px solid var(--line,rgba(19,22,31,.1));
  font-family:var(--font,inherit);font-size:.85rem;line-height:1.25;position:relative;z-index:95}
.apb[hidden]{display:none}
.apb .apb-x{flex:0 0 auto;width:36px;height:36px;padding:0;margin:0;border:0;background:none;border-radius:50%;
  color:var(--ink-3,#6b7280);display:grid;place-items:center;cursor:pointer;box-shadow:none}
.apb .apb-x svg{width:18px;height:18px;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;fill:none}
.apb .apb-icon{flex:0 0 auto;width:44px;height:44px;border-radius:11px}
.apb .apb-text{flex:1 1 auto;min-width:0}
.apb .apb-text strong{display:block;font-weight:800}
.apb .apb-text span{display:block;color:var(--ink-3,#6b7280);font-size:.76rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.apb .apb-go{flex:0 0 auto;min-width:64px;min-height:36px;padding:8px 14px;border-radius:999px;background:var(--brand,#da0615);
  color:#fff !important;font-weight:700;text-decoration:none !important;text-align:center;box-sizing:border-box}
.apb.apb-preview{max-width:380px;border:1px solid var(--line,rgba(19,22,31,.12));border-radius:12px}
/* "Get it on Google Play" text button (Google's own badge replaces it when
   assets/img/google-play-badge.png is present). */
.apb-badge{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:6px 14px 6px 10px;box-sizing:border-box;
  border-radius:8px;background:#000;color:#fff !important;text-decoration:none !important;border:1px solid #a6a6a6;line-height:1.05}
.apb-badge svg{width:22px;height:22px;fill:currentColor;flex:0 0 auto}
.apb-badge span{display:flex;flex-direction:column;font-size:1.05rem;font-weight:600;letter-spacing:.01em}
.apb-badge small{font-size:.6rem;font-weight:500;letter-spacing:.06em}
.apb-badge.apb-badge-sm{min-height:40px;padding:4px 12px 4px 8px}
.apb-badge.apb-badge-official{padding:0;border:0;background:none;min-height:0}
.apb-badge.apb-badge-official img{display:block;height:48px;width:auto}
.apb-badge:focus-visible{outline:3px solid var(--brand,#da0615);outline-offset:2px}
/* Footer "Get the app" strip */
.apf{background:var(--navy,#0f1b3d);color:#fff;padding:28px 16px 24px}
.apf-in{max-width:1080px;margin:0 auto;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.apf-icon{width:48px;height:48px;border-radius:12px;flex:0 0 auto}
.apf-text{flex:1 1 240px;min-width:0}
.apf .apf-text h2,body.ui2026 .apf .apf-text h2{display:block;margin:0;font-size:1.15rem;line-height:1.3;color:#fff}
.apf .apf-text p,body.ui2026 .apf .apf-text p{margin:6px 0 10px;font-size:.9rem;line-height:1.6;color:#dce2f0}
.apf-link{color:#fff !important;font-weight:700;font-size:.85rem}
.apf-qr{margin:0;text-align:center;flex:0 0 auto}
.apf-qr img{display:block;width:96px;height:96px;background:#fff;border-radius:8px;padding:4px;box-sizing:content-box;image-rendering:pixelated}
.apf-qr figcaption{font-size:.7rem;color:rgba(255,255,255,.7);margin-top:4px}
.apf .apf-legal,body.ui2026 .apf .apf-legal{max-width:1080px;margin:16px auto 0;font-size:.72rem;line-height:1.5;color:#b8c2d8}
.apf-link{display:inline-flex;align-items:center;min-height:44px;text-underline-offset:4px}
.apf-link:focus-visible{outline:3px solid #fff;outline-offset:4px;border-radius:4px}
.apf-help{max-width:1080px;margin:20px auto 0;padding-top:12px;border-top:1px solid #394058;display:flex;flex-wrap:wrap;gap:4px 20px}
.apf-help a{display:inline-flex;align-items:center;min-height:44px;color:#e8ecf5!important;font-size:.85rem;text-decoration:none}
.apf-help a:hover{text-decoration:underline;text-underline-offset:4px}
.apf-help a:focus-visible{outline:2px solid #fff;outline-offset:3px}
@media (max-width:720px){
  .apf-qr{display:none}
  .apf-in{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:start;gap:12px 16px}
  .apf-in>.apb-badge{grid-column:2;justify-self:start;max-width:100%}
  .apf-icon{margin-top:3px}
  .apf .apf-text p,body.ui2026 .apf .apf-text p{font-size:.875rem}
}
/* "Get your tickets in the app" card */
.apc{display:flex;gap:12px;align-items:flex-start;margin:16px 0;padding:14px;border-radius:var(--r-md,16px);
  background:var(--surface,#fff);border:1px solid var(--line,rgba(19,22,31,.1));color:var(--ink,#13161f)}
.apc-icon{width:48px;height:48px;border-radius:12px;flex:0 0 auto}
.apc-body{min-width:0;flex:1}
.apc-body strong{display:block;font-size:1rem}
.apc-body p{margin:4px 0 10px;font-size:.85rem;color:var(--ink-2,#4b5563);line-height:1.45}
.apc-actions{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center}
.apc-open{font-size:.85rem;font-weight:700;color:var(--brand,#da0615)}
@media print{.apb,.apf,.apc{display:none !important}}
