/* ── Variables ── */
.ap-root {
    --ap-primary: #A78BFA;
    --ap-primary-solid: #7C3AED;
    --ap-primary-d: #6D28D9;
    --ap-gold: #F5B731;
    --ap-bg: #000;
    --ap-card: #0b0b0b;
    --ap-border: #1f1f1f;
    --ap-text: #999;
    --ap-muted: #555;
    --ap-pad: 4rem;
    --ap-max-w: 84.75rem;
}

/* ── Reset (scoped) ── */
.ap-root { font-family: 'Inter', sans-serif; font-size: 1rem; line-height: 1.5; color: var(--ap-text); background: var(--ap-bg); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
.ap-root img { max-width: 100%; height: auto; display: block; }
.ap-root ul { margin: 0; padding: 0; list-style: none; }
.ap-root h1, .ap-root h2, .ap-root h3 { margin: 0; }
.ap-root p { margin: 0; }
.ap-root a { color: inherit; text-decoration: none; }

/* ── Layout ── */
.ap-wrap { max-width: var(--ap-max-w); margin: 0 auto; padding: 0 var(--ap-pad); }
.ap-section { padding: 7rem 0; position: relative; }
.ap-section.soft { background: #050505; }

/* ── Gradient heading ── */
.ap-grad { background: linear-gradient(90deg, #fff 0%, #b0b0b0 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; padding-bottom: 0.12em; }

/* ── Title block ── */
.ap-title-block { text-align: center; max-width: 44rem; margin: 0 auto 4rem; position: relative; }
.ap-eyebrow { display: inline-flex; align-items: center; gap: .4rem; font-size: .6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: var(--ap-primary); margin-bottom: 1rem; }
.ap-eyebrow::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--ap-primary); }
.ap-title-block h2 { font-size: clamp(1.875rem, 3vw, 2.75rem); font-weight: 800; letter-spacing: -0.025em; line-height: 1.1; background: linear-gradient(90deg, #fff 0%, #b0b0b0 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; padding-bottom: 0.12em; margin-bottom: 1rem; }
.ap-title-block p { font-size: 1.0625rem; color: var(--ap-text); line-height: 1.65; }
.ap-title-block p strong { color: #fff; font-weight: 700; }

/* ── HERO ── */
.ap-hero { position: relative; min-height: 100vh; min-height: 100svh; display: flex; align-items: center; overflow: hidden; background: #000; }
.ap-hero__bg { position: absolute; inset: 0; z-index: 1; display: flex; align-items: center; justify-content: flex-end; padding-right: 14vw; pointer-events: none; transform: rotate(23deg); }
.ap-hero__cluster { position: relative; transform: scale(2.00) translateX(2%); transform-origin: center right; will-change: transform; }
.ap-hero__overlay { position: absolute; inset: 0; z-index: 2; background: linear-gradient(100deg, #000 0%, #000 7%, rgba(0,0,0,.95) 18%, rgba(0,0,0,.82) 30%, rgba(0,0,0,.58) 44%, rgba(0,0,0,.24) 58%, rgba(0,0,0,0) 70%); pointer-events: none; }
.ap-hero__container { position: relative; z-index: 3; max-width: var(--ap-max-w); width: 100%; margin: 0 auto; padding: 10rem var(--ap-pad); }
.ap-hero__content { max-width: 56%; }
.ap-hero__content h1 { font-size: clamp(2.5rem, 5vw, 4.75rem); font-weight: 900; line-height: 1.04; letter-spacing: -0.03em; margin-bottom: 1.5rem; color: #fff; animation: apFadeUp .75s cubic-bezier(.22,1,.36,1) both .05s; }
.ap-hero__content h1 span { background: linear-gradient(135deg, var(--ap-primary), #ede9fe); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.ap-hero__content p { font-size: clamp(1rem, 1.4vw, 1.2rem); color: #999; line-height: 1.65; margin-bottom: 2.5rem; animation: apFadeUp .75s cubic-bezier(.22,1,.36,1) both .18s; }
.ap-hero__content p strong { color: #fff; font-weight: 700; }
.ap-hero__pills { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 2rem; animation: apFadeUp .75s cubic-bezier(.22,1,.36,1) both .24s; }
.ap-pill { display: inline-flex; align-items: center; gap: .3rem; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); border-radius: 999px; padding: .35rem .75rem; font-size: .75rem; font-weight: 600; color: rgba(255,255,255,.85); }
.ap-pill::before { content: '✓'; color: var(--ap-primary); font-weight: 900; font-size: .6rem; }
.ap-hero__ctas { display: flex; gap: .875rem; flex-wrap: wrap; animation: apFadeUp .75s cubic-bezier(.22,1,.36,1) both .30s; }
.ap-hero__visual-img { max-width: 100%; border-radius: 1.25rem; box-shadow: 0 40px 100px rgba(0,0,0,.7); }
@media (max-width: 65rem) {
    .ap-hero__content { max-width: 72%; }
    .ap-hero__overlay { background: linear-gradient(to bottom, rgba(0,0,0,.90) 0%, rgba(0,0,0,.62) 55%, rgba(0,0,0,.18) 100%); }
    .ap-hero__cluster { transform: scale(1.15) translateX(4%); }
}
@media (max-width: 48rem) {
    .ap-hero__content { max-width: 100%; }
    .ap-hero__container { padding: 6.5rem 1.5rem 5rem; }
    .ap-hero__bg { justify-content: center; opacity: .38; }
    .ap-hero__cluster { transform: scale(.72) translateX(0); }
    .ap-hero__overlay { background: rgba(0,0,0,.55); }
}

/* ── Buttons ── */
.ap-btn { display: inline-flex; align-items: center; gap: .5rem; padding: .875rem 1.75rem; font-family: inherit; font-size: .95rem; font-weight: 700; line-height: 1; border-radius: .625rem; text-decoration: none; cursor: pointer; border: 1px solid transparent; transition: all .22s ease; }
.ap-btn--primary { color: #fff; background: linear-gradient(135deg, var(--ap-primary-solid), var(--ap-primary-d)); box-shadow: 0 8px 24px rgba(124,58,237,.35); }
.ap-btn--primary:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(124,58,237,.45); }
.ap-btn--gold { color: #111; background: var(--ap-gold); }
.ap-btn--gold:hover { background: #ffcb52; transform: translateY(-2px); }
.ap-btn--ghost { color: #fff; background: transparent; border-color: rgba(255,255,255,.35); }
.ap-btn--ghost:hover { border-color: #fff; background: rgba(255,255,255,.08); }

/* ── Trust strip ── */
.ap-trust { border-top: 1px solid var(--ap-border); border-bottom: 1px solid var(--ap-border); background: #050505; }
.ap-trust .ap-wrap { display: grid; grid-template-columns: repeat(4,1fr); }
.ap-trust-cell { text-align: center; padding: 2.25rem 1rem; border-right: 1px solid var(--ap-border); }
.ap-trust-cell:last-child { border-right: none; }
.ap-trust-n { font-size: clamp(1.75rem, 3vw, 2.75rem); font-weight: 900; color: #fff; letter-spacing: -.03em; line-height: 1; margin-bottom: .3rem; }
.ap-trust-n.accent { color: var(--ap-primary); }
.ap-trust-l { font-size: .75rem; color: var(--ap-muted); font-weight: 600; text-transform: uppercase; letter-spacing: .06em; }
@media (max-width: 40rem) { .ap-trust .ap-wrap { grid-template-columns: 1fr 1fr; } .ap-trust-cell { border-right: none; border-bottom: 1px solid var(--ap-border);} }

/* ── BENTO GRID ── */
.ap-bento { display: grid; gap: .875rem; }
.ap-bento--5 { grid-template-columns: 1fr 1.35fr 1fr; grid-template-rows: 1fr 1fr; min-height: 34rem; }
.ap-bento--5 > :nth-child(1) { grid-column: 1; grid-row: 1; }
.ap-bento--5 > :nth-child(2) { grid-column: 1; grid-row: 2; }
.ap-bento--5 > :nth-child(3) { grid-column: 2; grid-row: 1 / 3; }
.ap-bento--5 > :nth-child(4) { grid-column: 3; grid-row: 1; }
.ap-bento--5 > :nth-child(5) { grid-column: 3; grid-row: 2; }
.ap-bento-card { background: var(--ap-card); border: 1px solid var(--ap-border); border-radius: 1.25rem; overflow: hidden; display: flex; flex-direction: column; height: 100%; transition: border-color .2s; }
.ap-bento-card:hover { border-color: rgba(167,139,250,.4); }
.ap-bento-card__body { padding: 1.6rem 1.6rem 1.1rem; }
.ap-bento-card__body h3 { font-size: 1.0625rem; font-weight: 700; color: #fff; margin-bottom: .4rem; line-height: 1.3; display: flex; align-items: center; gap: .5rem; }
.ap-bento-card__body p { font-size: .9rem; color: var(--ap-muted); line-height: 1.55; }
.ap-bento-card__visual { flex: 1; position: relative; display: flex; align-items: stretch; justify-content: center; padding: 0 1.1rem 1.1rem; min-height: 8rem; }
.ap-bento-card__visual .ap-glow { position:absolute; inset:0; background: radial-gradient(ellipse 80% 60% at 50% 100%, rgba(124,58,237,.22), transparent 70%); }
.ap-bento-card__visual img { border-radius: .9rem; object-fit: cover; width: 100%; align-self: flex-end; position: relative; z-index: 1; }
@media (max-width: 65rem) {
    .ap-bento--5 { grid-template-columns: 1fr 1fr; grid-template-rows: auto; min-height: 0; }
    .ap-bento--5 > :nth-child(1) { grid-column: 1; grid-row: 1; }
    .ap-bento--5 > :nth-child(2) { grid-column: 2; grid-row: 1; }
    .ap-bento--5 > :nth-child(3) { grid-column: 1 / 3; grid-row: 2; }
    .ap-bento--5 > :nth-child(4) { grid-column: 1; grid-row: 3; }
    .ap-bento--5 > :nth-child(5) { grid-column: 2; grid-row: 3; }
}
@media (max-width: 48rem) {
    .ap-bento--5 { grid-template-columns: 1fr; }
    .ap-bento--5 > :nth-child(n) { grid-column: 1; grid-row: auto; }
}

/* mini vocab card inside bento */
.ap-vocab-card.mini { max-width: 100%; width: 100%; padding: .85rem .9rem; border-radius: .9rem; position: relative; z-index: 1; align-self: flex-end; }
.ap-vocab-card.mini .ap-vocab-head { font-size: .625rem; margin-bottom: .55rem; }
.ap-vocab-card.mini .ap-vocab-box { padding: .55rem .6rem; margin-bottom: .55rem; border-radius: .55rem; }
.ap-vocab-card.mini .ap-vocab-tag { font-size: .5625rem; margin-bottom: .35rem; }
.ap-vocab-card.mini .ap-vocab-row { padding: .3rem .45rem; margin-bottom: .25rem; font-size: .6875rem; border-radius: .4rem; }
.ap-vocab-card.mini .ap-vocab-progress-lbl { font-size: .5875rem; margin-bottom: .3rem; }
.ap-vocab-card.mini .ap-vocab-track { height: 4px; }
.ap-vocab-card.mini .ap-vocab-score { text-align: center; }
.ap-vocab-card.mini .ap-vocab-score .num { font-size: 1.75rem; font-weight: 900; color: var(--ap-primary); letter-spacing: -.03em; line-height: 1; }
.ap-vocab-card.mini .ap-vocab-score .lbl { font-size: .5625rem; color: rgba(255,255,255,.4); text-transform: uppercase; letter-spacing: .05em; margin-bottom: .2rem; }
.ap-vocab-card.mini .ap-vocab-rec { display: flex; align-items: center; gap: .4rem; background: rgba(239,68,68,.1); border: 1px solid rgba(239,68,68,.25); border-radius: .5rem; padding: .45rem .6rem; margin-bottom: .5rem; }
.ap-vocab-card.mini .ap-vocab-rec .dot { width: 6px; height: 6px; border-radius: 50%; background: #EF4444; box-shadow: 0 0 6px #EF4444; flex-shrink: 0; }
.ap-vocab-card.mini .ap-vocab-rec span { font-size: .625rem; font-weight: 700; color: #FCA5A5; }
.ap-vocab-card.mini .ap-vocab-sync-row { display: flex; align-items: center; gap: .5rem; padding: .5rem .6rem; border-radius: .5rem; font-size: .6875rem; color: #fff; margin-bottom: .4rem; background: rgba(255,255,255,.04); }
.ap-vocab-card.mini .ap-vocab-sync-row.on { background: rgba(16,185,129,.1); border: 1px solid rgba(16,185,129,.22); color: #34D399; }

/* ── IMG-TEXT SECTIONS ── */
.ap-img-text { display: flex; align-items: center; gap: 5rem; }
.ap-img-text + .ap-img-text { margin-top: 6rem; }
.ap-img-text--flip { flex-direction: row-reverse; }
.ap-img-text__copy { flex: 1; }
.ap-img-text__visual { flex: 0 0 42%; max-width: 42%; display: flex; justify-content: center; }
.ap-img-text__copy h2 { font-size: clamp(1.5rem, 2.5vw, 2.25rem); font-weight: 800; letter-spacing: -0.02em; line-height: 1.15; color: #fff; margin-bottom: 1rem; }
.ap-img-text__copy p { font-size: 1.0625rem; color: var(--ap-text); line-height: 1.7; margin-bottom: 1.25rem; }
.ap-img-text__copy p:last-of-type { margin-bottom: 0; }
.ap-img-text__copy p strong { color: #fff; font-weight: 700; }
.ap-feat-list { margin-top: 1.5rem; display: flex; flex-direction: column; gap: .625rem; }
.ap-feat-list li { font-size: 1rem; color: var(--ap-text); padding-left: 1.25rem; position: relative; line-height: 1.6; }
.ap-feat-list li::before { content: ''; position: absolute; left: 0; top: .62em; width: 5px; height: 5px; border-radius: 50%; background: var(--ap-primary); }
.ap-feat-list li strong { color: #fff; font-weight: 700; }
.ap-callout { background: rgba(124,58,237,.08); border: 1px solid rgba(124,58,237,.25); border-radius: .75rem; padding: .9rem 1.1rem; font-size: .9375rem; color: #ccc; line-height: 1.6; margin-top: 1.25rem; }
.ap-callout strong { color: #fff; }
@media (max-width: 65rem) { .ap-img-text { gap: 3rem; } .ap-img-text__visual { flex: 0 0 46%; max-width: 46%; } }
@media (max-width: 48rem) { .ap-img-text, .ap-img-text--flip { flex-direction: column; gap: 2.5rem; } .ap-img-text__visual { flex: none; max-width: 100%; } }

/* ── vocab card visual ── */
.ap-vocab-card { width: 100%; max-width: 21rem; background: var(--ap-card); border: 1px solid var(--ap-border); border-radius: 1.25rem; padding: 1.5rem; }
.ap-vocab-card img { border-radius: .9rem; }
.ap-vocab-head { display: flex; justify-content: space-between; font-size: .8rem; font-weight: 800; color: #34D399; margin-bottom: 1rem; }
.ap-vocab-box { background: rgba(16,185,129,.08); border: 1px solid rgba(16,185,129,.22); border-radius: .75rem; padding: .9rem; margin-bottom: .9rem; }
.ap-vocab-tag { font-size: .7rem; font-weight: 700; color: #34D399; text-transform: uppercase; letter-spacing: .05em; margin-bottom: .6rem; }
.ap-vocab-row { display: flex; justify-content: space-between; background: rgba(255,255,255,.04); border-radius: .5rem; padding: .5rem .65rem; margin-bottom: .4rem; font-size: .8125rem; color: #fff; }
.ap-vocab-row.hl { background: rgba(16,185,129,.15); border: 1px solid rgba(16,185,129,.3); font-weight: 700; color: #34D399; }
.ap-vocab-progress-lbl { font-size: .7rem; color: rgba(255,255,255,.4); margin-bottom: .4rem; }
.ap-vocab-track { height: 6px; background: rgba(255,255,255,.08); border-radius: 99px; overflow: hidden; }
.ap-vocab-fill { height: 100%; width: 68%; background: linear-gradient(90deg,#059669,#34D399); border-radius: 99px; }

/* ── COMPARISON TABLE ── */
.ap-ctbl-wrap { overflow-x: auto; border-radius: 1rem; border: 1px solid var(--ap-border); }
.ap-ctbl { width: 100%; border-collapse: collapse; font-size: .875rem; }
.ap-ctbl th, .ap-ctbl td { padding: .9rem 1.1rem; text-align: left; border-bottom: 1px solid var(--ap-border); }
.ap-ctbl th { background: #0d0d0d; font-weight: 700; color: #fff; font-size: .8rem; }
.ap-ctbl th.hl { background: linear-gradient(135deg, rgba(124,58,237,.35), rgba(109,40,217,.35)); }
.ap-ctbl td { color: var(--ap-text); }
.ap-ctbl td.hl { background: rgba(124,58,237,.06); text-align: center; font-weight: 700; color: var(--ap-primary); }
.ap-ctbl td.c { text-align: center; }
.ap-ctbl tr:last-child td { border-bottom: none; }
.ap-tick { color: #34D399; font-weight: 900; }
.ap-dash { color: #555; }

/* ── STEPS ── */
.ap-steps { display: flex; flex-direction: column; gap: 1rem; max-width: 46rem; margin: 0 auto; }
.ap-step { display: flex; gap: 1.25rem; align-items: flex-start; background: var(--ap-card); border: 1px solid var(--ap-border); border-radius: 1rem; padding: 1.35rem 1.5rem; transition: border-color .2s; }
.ap-step:hover { border-color: rgba(167,139,250,.35); }
.ap-step-n { width: 2.25rem; height: 2.25rem; border-radius: 50%; display: grid; place-items: center; font-size: 1rem; font-weight: 900; flex-shrink: 0; color: #fff; background: linear-gradient(135deg,var(--ap-primary-solid),var(--ap-primary-d)); }
.ap-step-h { font-size: 1rem; font-weight: 700; color: #fff; margin-bottom: .35rem; }
.ap-step-p { font-size: .9rem; color: var(--ap-text); line-height: 1.65; }
.ap-step-tip { background: rgba(124,58,237,.08); border: 1px solid rgba(124,58,237,.2); border-radius: .5rem; padding: .55rem .8rem; margin-top: .6rem; font-size: .8125rem; color: #c9b8fb; line-height: 1.55; }

/* ── REVIEWS ── */
.ap-rv-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.25rem; }
.ap-rv-card { background: var(--ap-card); border: 1px solid var(--ap-border); border-radius: 1.25rem; padding: 1.5rem; transition: border-color .2s; }
.ap-rv-card:hover { border-color: rgba(167,139,250,.35); }
.ap-rv-top { display: flex; align-items: center; gap: .5rem; margin-bottom: .9rem; }
.ap-rv-stars { color: var(--ap-gold); font-size: .85rem; letter-spacing: 2px; }
.ap-rv-src { font-size: .6875rem; font-weight: 700; color: var(--ap-text); background: rgba(255,255,255,.05); border: 1px solid var(--ap-border); border-radius: 999px; padding: .15rem .55rem; }
.ap-rv-body { font-size: .875rem; color: #ccc; line-height: 1.7; margin-bottom: 1.1rem; }
.ap-rv-body strong { color: #fff; }
.ap-rv-auth { display: flex; align-items: center; gap: .7rem; }
.ap-rv-av { width: 2.4rem; height: 2.4rem; border-radius: 50%; background: linear-gradient(135deg,var(--ap-primary-solid),#5B21B6); display: grid; place-items: center; font-size: 1.1rem; flex-shrink: 0; }
.ap-rv-name { font-size: .875rem; font-weight: 700; color: #fff; }
.ap-rv-meta { font-size: .75rem; color: var(--ap-muted); }
@media (max-width: 60rem) { .ap-rv-grid { grid-template-columns: 1fr; } }

/* ── FAQ ── */
.ap-faq-title { font-size: clamp(1.875rem, 2.5vw, 2.5rem); font-weight: 800; letter-spacing: -0.025em; background: linear-gradient(90deg, #fff 0%, #b0b0b0 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; text-align: center; margin-bottom: 3rem; }
.ap-faq-list { max-width: 48rem; margin: 0 auto; }
.ap-faq-item { padding: 1.6rem 0; border-bottom: 1px solid var(--ap-border); }
.ap-faq-item:last-child { border-bottom: none; }
.ap-faq-item h3 { font-size: 1.0625rem; font-weight: 700; color: #fff; margin-bottom: .6rem; line-height: 1.4; }
.ap-faq-item p { font-size: .9375rem; color: var(--ap-text); line-height: 1.7; }

/* ── CTA BAND ── */
.ap-cta-band { position: relative; overflow: hidden; padding: 9rem 0 10rem; text-align: center; background: #000; }
.ap-cta-band::before { content: ''; position: absolute; top: -10%; left: 50%; transform: translateX(-50%); width: 64rem; height: 64rem; background: radial-gradient(circle, rgba(124,58,237,.14) 0%, rgba(0,0,0,0) 58%); pointer-events: none; z-index: 0; }
.ap-cta-badges { position: relative; z-index: 1; height: 10rem; max-width: 46rem; margin: 0 auto 3rem; }
.ap-cta-badge { position: absolute; margin: 0; width: 4.5rem; height: 4.5rem; border-radius: 50%; background: var(--ap-card); border: 2px solid #252525; box-shadow: 0 0 0 1px rgba(255,255,255,.05); display: grid; place-items: center; font-size: 1.6rem; opacity: 0; }
.ap-cta-badges.in-view .ap-cta-badge:nth-child(1) { animation: apCtaIn .6s cubic-bezier(.22,1,.36,1) both .05s, apCtaFloat1 5s ease-in-out infinite .65s; }
.ap-cta-badges.in-view .ap-cta-badge:nth-child(2) { animation: apCtaIn .6s cubic-bezier(.22,1,.36,1) both .16s, apCtaFloat2 5.4s ease-in-out infinite .76s; }
.ap-cta-badges.in-view .ap-cta-badge:nth-child(3) { animation: apCtaIn .6s cubic-bezier(.22,1,.36,1) both .27s, apCtaFloat3 4.8s ease-in-out infinite .87s; }
.ap-cta-badges.in-view .ap-cta-badge:nth-child(4) { animation: apCtaIn .6s cubic-bezier(.22,1,.36,1) both .38s, apCtaFloat4 5.2s ease-in-out infinite .98s; }
.ap-cta-badge:nth-child(1) { top: 2rem; left: 6%; }
.ap-cta-badge:nth-child(2) { top: 0; left: 30%; }
.ap-cta-badge:nth-child(3) { top: 0; right: 30%; }
.ap-cta-badge:nth-child(4) { top: 2rem; right: 6%; }
.ap-cta-copy { position: relative; z-index: 1; margin: 0 auto; padding: 0 var(--ap-pad); }
.ap-cta-copy h2 { font-size: clamp(1.875rem, 4vw, 3rem); font-weight: 900; letter-spacing: -0.025em; background: linear-gradient(90deg, #fff 0%, #b0b0b0 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; margin-bottom: 1rem; }
.ap-cta-copy p { font-size: 1.0625rem; color: var(--ap-text); line-height: 1.65; margin-bottom: 2.25rem; }
.ap-cta-copy .ap-btnrow { display: flex; gap: .875rem; justify-content: center; flex-wrap: wrap; }
.ap-cta-fine { font-size: .8125rem; color: #444; margin-top: 1.25rem; }

/* ── Animations ── */
@keyframes apFadeUp { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
@keyframes apCtaIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes apCtaFloat1 { 0%,100%{opacity:1;transform:translate(0,0) rotate(0deg)} 30%{opacity:1;transform:translate(-6px,-11px) rotate(-1deg)} 70%{opacity:1;transform:translate(3px,-5px) rotate(.5deg)} }
@keyframes apCtaFloat2 { 0%,100%{opacity:1;transform:translate(0,0) rotate(0deg)} 40%{opacity:1;transform:translate(9px,6px) rotate(1.5deg)} 75%{opacity:1;transform:translate(-4px,-9px) rotate(-.5deg)} }
@keyframes apCtaFloat3 { 0%,100%{opacity:1;transform:translate(0,0) rotate(0deg)} 35%{opacity:1;transform:translate(-10px,-9px) rotate(-1.2deg)} 68%{opacity:1;transform:translate(5px,-3px) rotate(.8deg)} }
@keyframes apCtaFloat4 { 0%,100%{opacity:1;transform:translate(0,0) rotate(0deg)} 42%{opacity:1;transform:translate(9px,-7px) rotate(1.2deg)} 78%{opacity:1;transform:translate(-3px,-12px) rotate(-.6deg)} }
@keyframes apFloat { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-7px)} }
@keyframes apFloat2 { 0%,100%{transform:translateY(-4px)} 50%{transform:translateY(4px)} }
@keyframes apBlink3 { 0%,100%{opacity:1} 50%{opacity:.3} }

@media (max-width: 48rem) {
    .ap-section { padding: 4.5rem 0; }
}

/* ── FINAL CTA — force white button text regardless of style ───── */
.ap-cta-band .ap-btn { color: #fff; }
