/* Scoped app promotion; shared by the home hero and every article category. */
.app-promo-hero{position:relative;overflow:hidden;color:#fff;background:radial-gradient(ellipse at 80% 40%,#214caa70,transparent 58%),linear-gradient(120deg,#071329,#102657 65%,#173c88)}
.app-promo-hero::before,.app-promo-hero::after{content:"";position:absolute;width:600px;height:600px;border:1px solid #fbbf2430;border-radius:50%;box-shadow:0 0 0 45px #60a5fa10,0 0 0 90px #60a5fa10,0 0 0 135px #60a5fa08;pointer-events:none}
.app-promo-hero::before{right:-250px;top:-120px}.app-promo-hero::after{left:-530px;top:40px}
.app-promo-hero__inner{position:relative;z-index:1;max-width:1152px;margin:auto;padding:44px 16px;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:center;gap:40px}
.app-promo-eyebrow{display:inline-block;margin:0 0 20px;padding:6px 12px;border:1px solid #fbbf2450;border-radius:30px;background:#fbbf2410;color:#fcd34d;font-size:12px;font-weight:700;letter-spacing:.05em}
.app-promo-hero h1{margin:0;color:#fff;font-size:clamp(30px,3.3vw,46px);font-weight:900;line-height:1.45;letter-spacing:-.035em}.app-promo-hero h1 span{color:#fcd34d}
.app-promo-description{margin:20px 0 24px;color:#dbeafe;font-size:16px;line-height:1.9}
.app-promo-button{display:inline-flex;align-items:center;justify-content:center;gap:28px;min-height:50px;padding:13px 25px;border-radius:12px;background:#fbbf24;color:#102044;font-size:16px;font-weight:800;box-shadow:0 8px 24px #0003;text-decoration:none;transition:background .15s}
.app-promo-button:hover{background:#fde047;color:#102044}.app-promo-button:focus-visible,.app-promo-banner__link:focus-visible{outline:3px solid #fbbf24;outline-offset:5px}
.app-promo-features{display:flex;flex-wrap:wrap;gap:10px 20px;margin:24px 0 0;padding:0;list-style:none;color:#bfdbfe;font-size:12px}.app-promo-features li::before{content:"✓";margin-right:6px;color:#fcd34d}
.app-promo-hero__visual{position:relative;height:400px;max-width:420px;width:100%;margin:auto}
.app-promo-shot{position:absolute;display:block;width:auto;object-fit:contain;border:1px solid #ffffff30;border-radius:18px;box-shadow:0 20px 45px #0005}
.app-promo-shot--front{height:400px;left:4%;top:0;transform:rotate(-4deg)}.app-promo-shot--back{height:350px;right:0;top:28px;transform:rotate(7deg)}
.app-promo-banner{padding:16px 16px 0;max-width:1152px;width:100%;margin:0 auto}
.app-promo-banner__link{display:flex;align-items:center;gap:24px;min-height:88px;padding:16px 24px;border:1px solid #294475;border-radius:12px;background:radial-gradient(ellipse at 100% 50%,#234ea070,transparent 60%),#0b1b3b;color:#fff;text-decoration:none}
.app-promo-banner__link:hover{border-color:#fbbf24}.app-promo-banner__link img{display:block;width:156px;height:auto;flex-shrink:0}.app-promo-banner__message{flex:1;color:#fff;font-size:18px;font-weight:700;line-height:1.6}.app-promo-banner__cta{display:inline-flex;gap:18px;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;border-radius:8px;background:#fbbf24;color:#102044;font-size:14px;font-weight:800;flex-shrink:0}
@media(max-width:767px){.app-promo-hero__inner{grid-template-columns:1fr;gap:26px;padding:28px 20px 0}.app-promo-hero h1{font-size:clamp(27px,6.9vw,42px)}.app-promo-eyebrow{margin-bottom:14px;font-size:11px}.app-promo-description{font-size:14px;margin:14px 0 20px}.app-promo-features{margin-top:18px;gap:8px 14px;font-size:11px}.app-promo-hero__visual{height:170px;max-width:300px;overflow:hidden}.app-promo-shot--front{height:330px;left:12%;top:0;transform:rotate(-4deg)}.app-promo-shot--back{height:290px;right:5%;top:12px;transform:rotate(8deg)}.app-promo-banner{padding:12px 16px 0}.app-promo-banner__link{gap:10px 12px;padding:12px 14px;display:grid;grid-template-columns:minmax(0,1fr) auto;min-height:0}.app-promo-banner__link img{width:120px;max-width:100%}.app-promo-banner__message{font-size:12px;grid-column:1/-1;grid-row:2}.app-promo-banner__cta{font-size:12px;padding:8px 12px;gap:10px;min-height:44px;grid-column:2;grid-row:1}}
@media(prefers-reduced-motion:reduce){.app-promo-button{transition:none}}

/* Mobile bottom promotion. Its measured height also reserves reading space. */
.app-promo-anchor { display: none; }
.app-promo-anchor[hidden] { display: none !important; }
@media (max-width: 767px) and (min-height: 420px) {
    html.has-app-promo-anchor { scroll-padding-bottom: calc(var(--app-anchor-height, 90px) + 16px); }
    html.has-app-promo-anchor body { padding-bottom: var(--app-anchor-height, 90px); }
    .app-promo-anchor {
        display: block;
        position: fixed;
        z-index: 40;
        inset: auto 0 0;
        padding: 10px max(10px, env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
        border-top: 1px solid #5778ac;
        background: #10244b;
        color: #fff;
        box-shadow: 0 -5px 22px #02061730;
    }
    .app-promo-anchor__inner { display: flex; align-items: center; gap: 8px; max-width: 550px; margin: auto; }
    .app-promo-anchor__copy { flex: 1; min-width: 0; line-height: 1.6; }
    .app-promo-anchor__copy span { display: block; font-size: 10px; font-weight: 700; letter-spacing: .04em; color: #fcd34d; }
    .app-promo-anchor__copy strong { display: block; font-size: 12px; color: #fff; }
    .app-promo-anchor__cta { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; padding: 8px 12px; border-radius: 8px; background: #fbbf24; color: #102044; font-size: 12px; font-weight: 800; text-decoration: none; flex-shrink: 0; }
    .app-promo-anchor__cta:hover { background: #fde047; color: #102044; }
    .app-promo-anchor__close { display: grid; place-items: center; width: 44px; height: 44px; flex-shrink: 0; border: 1px solid #7891ba; border-radius: 8px; background: transparent; color: #fff; font-size: 22px; cursor: pointer; }
    .app-promo-anchor__close:hover { background: #ffffff15; }
    .app-promo-anchor a:focus-visible, .app-promo-anchor button:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
}
