/* Mobile advertising enhancements. Desktop presentation stays as authored. */
.mobile-promo, .mobile-promo-dock, .mobile-promo-space, .mobile-node-link { display: none; }
.node-download-row { display: contents; }
@media (max-width: 767px) {
  .mobile-promo {
    display: block; position: relative; box-sizing: border-box;
    margin: 16px; padding: 17px; border: 1px solid #2789a4; border-radius: 18px;
    background: radial-gradient(ellipse at 100% 0, #0e74904d, transparent 70%), linear-gradient(115deg, #102d44, #102034);
    box-shadow: 0 8px 24px #0f172a14; color: #f0f9ff; text-align: start; overflow-wrap: anywhere;
  }
  .mobile-promo__meta { display: flex; align-items: center; gap: 8px; font-size: 13px; line-height: 20px; }
  .mobile-promo__brand { display: inline-flex; align-items: center; gap: 7px; color: #cffafe; font-weight: 700; }
  .mobile-promo__brand svg { width: 18px; height: 18px; flex: none; color: #67e8f9; }
  .mobile-promo__label { margin-inline-start: auto; border: 1px solid #547889; border-radius: 5px; padding: 1px 7px; color: #c0d9e2; font-size: 11px; }
  .mobile-promo__title { margin: 10px 0 5px; font-size: clamp(21px, 5.8vw, 27px); font-weight: 800; line-height: 1.4; letter-spacing: -.025em; color: #f0f9ff; }
  .mobile-promo__title em { color: #67e8f9; font-style: normal; white-space: nowrap; }
  .mobile-promo__terms, .mobile-promo__payment { margin: 0; color: #c5d9e2; font-size: 12px; line-height: 1.75; }
  .mobile-promo__payment { margin-top: 5px; }
  .mobile-promo__cta {
    display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px;
    margin-top: 13px; padding: 11px 14px; border: 1px solid #a5f3fc; border-radius: 11px;
    background: #67e8f9; color: #083344; font-size: 15px; font-weight: 800; line-height: 1.5;
    text-align: center; touch-action: manipulation;
  }
  .mobile-promo__cta:hover, .mobile-promo-dock__cta:hover, .mobile-node-link:hover { background: #a5f3fc; }
  .mobile-promo a:focus-visible, .mobile-promo-dock a:focus-visible, .mobile-promo-dock button:focus-visible, .mobile-node-link:focus-visible { outline: 3px solid #38bdf8; outline-offset: 3px; }
  .mobile-promo-dock {
    display: grid; position: fixed; z-index: 90; inset: auto 0 0;
    grid-template-columns: minmax(0, 1fr) auto 36px; align-items: center; gap: 10px;
    padding: 12px max(10px, env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
    border-top: 1px solid #3485a0; background: #102b3c; color: #f0f9ff; box-shadow: 0 -8px 28px #0f172a33;
    text-align: start; overflow-wrap: anywhere;
  }
  .mobile-promo-dock[hidden], .mobile-promo-space[hidden] { display: none; }
  .mobile-promo-dock__brand, .mobile-promo-dock__terms { display: block; color: #c5d9e2; font-size: 11px; line-height: 1.5; }
  .mobile-promo-dock__offer { display: block; margin: 3px 0 2px; font-size: 15px; line-height: 1.4; font-weight: 750; }
  .mobile-promo-dock__cta { display: flex; justify-content: center; align-items: center; gap: 5px; min-height: 46px; max-width: 130px; padding: 10px 13px; border: 1px solid #a5f3fc; border-radius: 10px; background: #67e8f9; color: #083344; text-align: center; font-size: 14px; font-weight: 750; line-height: 1.4; touch-action: manipulation; }
  .mobile-promo-dock__close { display: flex; align-items: center; justify-content: center; width: 44px; min-height: 44px; margin-inline: -4px; padding: 0; border: 0; border-radius: 8px; background: transparent; color: #c5d9e2; font-size: 26px; line-height: 1; cursor: pointer; touch-action: manipulation; }
  .mobile-promo-dock__close:hover { background: #ffffff14; color: #fff; }
  .mobile-promo-space { display: block; height: var(--mobile-promo-height, 100px); }
  .dl-card { min-width: 0; padding: 22px 16px; }
  .dl-platforms, .dl-plat-group, .dl-actions { min-width: 0; }
  .node-download-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(84px, .72fr); gap: 8px; align-items: stretch; }
  .node-download-row > .btn { justify-content: center; min-width: 0; min-height: 48px; padding: 10px 8px; gap: 5px; font-size: 13px; white-space: normal; line-height: 1.5; text-align: center; overflow-wrap: anywhere; }
  .node-download-row > .btn svg, .node-download-row > .btn .arch { display: none; }
  .mobile-node-link { display: flex; justify-content: center; align-items: center; min-width: 0; min-height: 48px; padding: 9px 6px; border: 1px solid #0891b2; border-radius: 10px; background: #cffafe; color: #155e75; font-size: 12px; font-weight: 750; line-height: 1.5; text-align: center; overflow-wrap: anywhere; touch-action: manipulation; }
  .dl-card .download-card-ad, .dl-actions > .btn-node-ad { display: none; }
  .hero-actions .btn-recommend { min-height: 48px; background: #67e8f9; border-color: #a5f3fc; color: #083344; }
  .hero-actions .btn-recommend svg { color: #083344; filter: none; }
  .hero-actions .promo-tag { background: #08334414; color: #155e75; }
  .affiliate-cta { min-height: 44px; }
  .hero .btn, .dl-actions .btn-dark { white-space: normal; justify-content: center; text-align: center; }
}
@media print {
  .mobile-promo, .mobile-promo-dock, .mobile-promo-space, .mobile-node-link { display: none !important; }
}

