/* ============================================================================
   removemusic.io — landing + legal
   Color system inspired by the logo: deep navy disc, neon teal, purple groove.
   ============================================================================ */
:root {
    --bg:          #070b13;
    --bg-elev:     #0d141f;
    --bg-card:     rgba(15, 24, 37, 0.62);
    --bg-card-2:   rgba(15, 24, 37, 0.78);
    --border:      rgba(255,255,255,0.07);
    --border-hi:   rgba(255,255,255,0.14);
    --text:        #e5edf6;
    --text-dim:    #97a4b8;
    --text-faint:  #5e6a7e;

    --teal:        #2dd4bf;
    --teal-bright: #5ddae0;
    --purple:      #8b5cf6;
    --blue:        #60a5fa;
    --magenta:     #d2a8ff;

    --grad-brand:  linear-gradient(115deg, #8b5cf6 0%, #5a7dee 45%, #2dd4bf 100%);
    --grad-text:   linear-gradient(110deg, #5ddae0 0%, #2dd4bf 50%, #8b5cf6 100%);
    --grad-edge:   linear-gradient(135deg, rgba(45,212,191,0.50), rgba(139,92,246,0.45));

    --radius-sm:  8px;
    --radius:     14px;
    --radius-lg:  22px;

    --shadow-glow: 0 0 60px rgba(45,212,191,0.18), 0 0 120px rgba(139,92,246,0.08);
    --shadow-card: 0 10px 30px rgba(0,0,0,0.35), 0 1px 0 rgba(255,255,255,0.04) inset;
}

* { box-sizing: border-box; }
/* v7.1.204: backdrop on <html> ONLY. Pre-v7.1.204 both <html> and
   <body> had `background: var(--bg)` set — and because .bg-aurora is
   position:fixed at z-index:-2, body's opaque fill painted OVER it.
   The aurora has been invisible on this site since the initial commit.
   Keeping body transparent lets the aurora layer (z-index -2, between
   html's canvas background and the in-flow body content) actually
   show through. */
html {
    background: var(--bg);
}
html, body {
    margin: 0;
    padding: 0;
    color: var(--text);
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
    font-size: 16px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    overflow-x: hidden;
    scroll-behavior: smooth;
}
body { background: transparent; }
.mono { font-family: 'JetBrains Mono', monospace; }
a { color: var(--teal-bright); text-decoration: none; transition: color 0.15s; }
a:hover { color: var(--teal); }
img, svg, object { display: block; max-width: 100%; }
::selection { background: rgba(45,212,191,0.32); color: #fff; }

/* ============================================================================
   Animated backdrop — blurred aurora blobs + canvas particles
   ----------------------------------------------------------------------------
   v7.1.205: amped from "barely-there ambient" to "felt-but-still-tasteful".
   Aurora: 3 blobs → 5, opacity 0.45 → 0.50-0.65, blur 120 → 100 (more
   defined shape), motion range doubled, scale variance widened (0.88-1.20
   vs 0.95-1.08), each blob gets its OWN keyframe so they breathe out of
   phase. Particles (canvas, see main.js): 50% denser, brighter, faster,
   per-particle twinkle, connection lines for the constellation-mesh look.
   ============================================================================ */
.bg-aurora {
    position: fixed; inset: 0; z-index: -2; pointer-events: none; overflow: hidden;
}
.bg-aurora span {
    position: absolute;
    border-radius: 50%;
    filter: blur(100px);
    will-change: transform;
}
.bg-aurora span:nth-child(1) {
    width: 720px; height: 720px;
    background: radial-gradient(circle at 40% 40%, #8b5cf6 0%, transparent 70%);
    top: -220px; left: -200px;
    opacity: 0.65;
    animation: aurora-1 22s ease-in-out infinite alternate;
}
.bg-aurora span:nth-child(2) {
    width: 840px; height: 840px;
    background: radial-gradient(circle at 60% 50%, #2dd4bf 0%, transparent 70%);
    top: 22%; right: -300px;
    opacity: 0.60;
    animation: aurora-2 26s ease-in-out infinite alternate;
    animation-delay: -7s;
}
.bg-aurora span:nth-child(3) {
    width: 640px; height: 640px;
    background: radial-gradient(circle at 50% 50%, #5a7dee 0%, transparent 70%);
    bottom: -220px; left: 28%;
    opacity: 0.60;
    animation: aurora-3 19s ease-in-out infinite alternate;
    animation-delay: -11s;
}
/* v7.1.205: two extra blobs — magenta mid-left + a brighter teal accent
   top-right — to fill out the middle of the canvas. Without these the
   3-blob layout left a visible dim band across the center on tall
   viewports (the hero + features always crossed it). */
.bg-aurora span:nth-child(4) {
    width: 540px; height: 540px;
    background: radial-gradient(circle at 45% 55%, #d2a8ff 0%, transparent 70%);
    top: 55%; left: -120px;
    opacity: 0.45;
    animation: aurora-4 24s ease-in-out infinite alternate;
    animation-delay: -3s;
}
.bg-aurora span:nth-child(5) {
    width: 480px; height: 480px;
    background: radial-gradient(circle at 50% 50%, #5ddae0 0%, transparent 70%);
    top: -100px; right: 18%;
    opacity: 0.50;
    animation: aurora-5 20s ease-in-out infinite alternate;
    animation-delay: -14s;
}
/* Five distinct keyframes so the blobs breathe out of sync — synchronized
   motion reads as artificial. Translate range ±50-80 px (was ±40 / ±30),
   scale range 0.88-1.20 (was 0.95-1.08). Larger but still slow. */
@keyframes aurora-1 {
    0%   { transform: translate3d(0, 0, 0) scale(1); }
    50%  { transform: translate3d(70px, -50px, 0) scale(1.15); }
    100% { transform: translate3d(-50px, 70px, 0) scale(0.88); }
}
@keyframes aurora-2 {
    0%   { transform: translate3d(0, 0, 0) scale(0.92); }
    50%  { transform: translate3d(-60px, 50px, 0) scale(1.10); }
    100% { transform: translate3d(60px, -40px, 0) scale(1.05); }
}
@keyframes aurora-3 {
    0%   { transform: translate3d(0, 0, 0) scale(1); }
    50%  { transform: translate3d(50px, -60px, 0) scale(1.12); }
    100% { transform: translate3d(-60px, -40px, 0) scale(0.95); }
}
@keyframes aurora-4 {
    0%   { transform: translate3d(0, 0, 0) scale(0.95); }
    50%  { transform: translate3d(80px, 60px, 0) scale(1.20); }
    100% { transform: translate3d(-40px, 80px, 0) scale(1.00); }
}
@keyframes aurora-5 {
    0%   { transform: translate3d(0, 0, 0) scale(1); }
    50%  { transform: translate3d(-70px, 40px, 0) scale(0.90); }
    100% { transform: translate3d(50px, -60px, 0) scale(1.15); }
}
#bg-particles {
    position: fixed; inset: 0; z-index: -1; pointer-events: none;
    /* v7.1.205: 0.55 → 0.75 — particles are now brighter on their own
       (per-particle alpha 0.25-0.75 vs 0.10-0.45), this canvas-level
       multiplier just lets them breathe properly against the aurora. */
    opacity: 0.75;
}
/* v7.1.205: respect users who've asked for reduced motion. Aurora stays
   visible (it's the gradient itself that matters, not the breath); only
   the keyframes stop. main.js mirrors this for the particle drift +
   twinkle so static dots remain. */
@media (prefers-reduced-motion: reduce) {
    .bg-aurora span { animation: none !important; }
}

/* ============================================================================
   Top nav
   ============================================================================ */
.site-nav {
    position: sticky;
    top: 0;
    z-index: 50;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 18px 32px;
    backdrop-filter: blur(14px) saturate(1.4);
    -webkit-backdrop-filter: blur(14px) saturate(1.4);
    background: rgba(7, 11, 19, 0.55);
    border-bottom: 1px solid var(--border);
}
.brand { display: flex; align-items: center; gap: 12px; }
.brand-mark {
    width: 40px; height: 40px;
    display: inline-flex; align-items: center; justify-content: center;
    filter: drop-shadow(0 0 10px rgba(45,212,191,0.35));
}
.brand-mark.small { width: 28px; height: 28px; }
.brand-mark object { width: 100%; height: 100%; pointer-events: none; }
.brand-word {
    font-weight: 700;
    font-size: 17px;
    letter-spacing: -0.01em;
    background: var(--grad-text);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.site-nav-links {
    display: flex;
    align-items: center;
    gap: 26px;
}
.site-nav-links a {
    color: var(--text-dim);
    font-weight: 500;
    font-size: 14px;
    transition: color 0.15s;
}
.site-nav-links a:hover { color: var(--text); }
.site-nav-links a.btn {
    margin-left: 8px;
}
@media (max-width: 720px) {
    .site-nav { padding: 14px 18px; }
    .site-nav-links a:not(.btn) { display: none; }
}

/* ============================================================================
   Buttons
   ============================================================================ */
.btn {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 12px 22px;
    border-radius: 999px;
    font-weight: 600;
    font-size: 14.5px;
    letter-spacing: 0.005em;
    cursor: pointer;
    border: 1px solid transparent;
    transition: transform 0.15s, box-shadow 0.25s, background 0.25s, color 0.15s, border-color 0.25s;
    text-decoration: none;
}
.btn-primary {
    color: #061321;
    background: linear-gradient(95deg, #5ddae0 0%, #2dd4bf 100%);
    box-shadow: 0 8px 24px rgba(45,212,191,0.28), 0 0 0 1px rgba(255,255,255,0.08) inset;
}
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 14px 38px rgba(45,212,191,0.36), 0 0 0 1px rgba(255,255,255,0.12) inset; color: #061321; }
/* Telegram-blue primary variant. Same shape + hover pattern as .btn-primary so
   the two buttons read as equal-billing CTAs; only the colour swap signals
   platform choice. Brand colour #2AABEE matches Telegram's own gradient and
   the badge-avenue-tgbot palette used in the analytics dashboard. */
.btn-tg {
    color: #fff;
    background: linear-gradient(95deg, #56d4dd 0%, #2AABEE 100%);
    box-shadow: 0 8px 24px rgba(42,171,238,0.32), 0 0 0 1px rgba(255,255,255,0.08) inset;
}
.btn-tg:hover { transform: translateY(-2px); box-shadow: 0 14px 38px rgba(42,171,238,0.40), 0 0 0 1px rgba(255,255,255,0.12) inset; color: #fff; }
.btn-ghost {
    color: var(--text);
    background: rgba(255,255,255,0.04);
    border: 1px solid var(--border-hi);
}
.btn-ghost:hover { background: rgba(255,255,255,0.08); color: var(--text); }
/* Subtle platform-tinted hover for the nav-bar ghost buttons so the
   user gets a brand-coloured affordance on the right action. The base
   .btn-ghost rest state stays uniform so the nav doesn't look noisy. */
.btn-wa-ghost:hover { border-color: rgba(45,212,191,0.50); color: #5ddae0; }
.btn-tg-ghost:hover { border-color: rgba(42,171,238,0.55); color: #56d4dd; }
.btn-lg { padding: 16px 30px; font-size: 16px; }
/* Equal-billing CTA row for the final cta-card section. Flex wraps to
   stacked layout on narrow viewports so each button still feels prominent. */
.cta-card-actions {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 14px;
    justify-content: center;
    margin-bottom: 18px;
}

/* ============================================================================
   Hero
   ============================================================================ */
.hero {
    position: relative;
    max-width: 1180px;
    margin: 0 auto;
    padding: 80px 32px 64px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 64px;
}
.hero-inner { text-align: center; }
.hero-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 6px 14px;
    margin-bottom: 26px;
    border-radius: 999px;
    background: rgba(45,212,191,0.10);
    border: 1px solid rgba(45,212,191,0.30);
    color: var(--teal-bright);
    font-size: 12.5px;
    font-weight: 500;
    letter-spacing: 0.02em;
}
.hero-eyebrow .dot {
    width: 7px; height: 7px; border-radius: 50%;
    background: var(--teal);
    box-shadow: 0 0 10px var(--teal);
    animation: pulse 1.8s infinite;
}
@keyframes pulse {
    0%,100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.55; transform: scale(0.9); }
}
.hero-title {
    font-size: clamp(40px, 7vw, 88px);
    font-weight: 800;
    line-height: 1.02;
    letter-spacing: -0.025em;
    margin: 0 0 22px 0;
}
.grad-text {
    background: var(--grad-text);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    display: inline-block;
}
.hero-sub {
    max-width: 660px;
    margin: 0 auto 36px;
    color: var(--text-dim);
    font-size: clamp(15px, 1.6vw, 18.5px);
    line-height: 1.65;
}
.hero-cta {
    display: inline-flex; flex-wrap: wrap; gap: 12px; justify-content: center;
    margin-bottom: 38px;
}
.hero-pill-row {
    display: flex; flex-wrap: wrap; gap: 8px; justify-content: center;
}
.pill {
    display: inline-flex; align-items: center; gap: 5px;
    padding: 6px 14px;
    border-radius: 999px;
    background: rgba(255,255,255,0.04);
    border: 1px solid var(--border);
    color: var(--text-dim);
    font-size: 12.5px;
    font-family: 'JetBrains Mono', monospace;
}
.pill strong { color: var(--teal-bright); font-weight: 600; }

/* hero visual — before/after waveforms */
.hero-visual {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 18px;
    max-width: 980px;
    width: 100%;
    margin: 0 auto;
}
@media (max-width: 720px) {
    .hero-visual { grid-template-columns: 1fr; }
    .wave-arrow svg { transform: rotate(90deg); }
}
.wave-card {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 16px 18px;
    box-shadow: var(--shadow-card);
    position: relative;
    overflow: hidden;
}
.wave-card::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: var(--radius);
    padding: 1px;
    background: var(--grad-edge);
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
            mask-composite: exclude;
    pointer-events: none;
    opacity: 0.35;
}
.wave-card-head {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 10px;
}
.wave-card-label {
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 10.5px;
    font-weight: 600;
    color: var(--text-faint);
    padding: 3px 8px;
    border-radius: 4px;
    background: rgba(255,255,255,0.05);
}
.wave-card-label.clean {
    color: var(--teal);
    background: rgba(45,212,191,0.10);
}
.wave-card-meta {
    color: var(--text-faint);
    font-size: 11px;
    font-family: 'JetBrains Mono', monospace;
}
.wave-svg {
    width: 100%;
    height: 80px;
}
.wave-svg .bars rect {
    animation: barPulse 2.4s ease-in-out infinite;
}
@keyframes barPulse {
    0%,100% { transform: scaleY(1); }
    50% { transform: scaleY(0.7); }
}
.wave-arrow {
    color: var(--teal);
    opacity: 0.7;
    display: flex; justify-content: center;
}

/* ============================================================================
   Generic section
   ============================================================================ */
.section {
    max-width: 1180px;
    margin: 0 auto;
    padding: 96px 32px;
}
.section-alt {
    background: linear-gradient(180deg, rgba(45,212,191,0.03), rgba(139,92,246,0.02));
}
.section-head {
    text-align: center;
    margin-bottom: 56px;
}
.section-head .eyebrow {
    display: inline-block;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    font-size: 11.5px;
    font-weight: 600;
    color: var(--teal);
    margin-bottom: 14px;
}
.section-head h2 {
    font-size: clamp(28px, 4vw, 46px);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.1;
    margin: 0 0 14px 0;
}
.section-head p {
    color: var(--text-dim);
    max-width: 620px;
    margin: 0 auto;
    font-size: 16px;
}

/* ============================================================================
   Steps
   ============================================================================ */
.steps {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
    counter-reset: step;
}
@media (max-width: 920px) { .steps { grid-template-columns: 1fr; } }
.step {
    position: relative;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 30px 26px 22px;
    box-shadow: var(--shadow-card);
    overflow: hidden;
    transition: transform 0.22s, border-color 0.22s;
}
.step:hover { transform: translateY(-4px); border-color: rgba(45,212,191,0.35); }
.step::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(120% 80% at 80% 0%, rgba(45,212,191,0.10), transparent 60%);
    pointer-events: none;
}
.step-num {
    font-family: 'JetBrains Mono', monospace;
    font-size: 13px;
    font-weight: 600;
    color: var(--teal);
    background: rgba(45,212,191,0.10);
    border: 1px solid rgba(45,212,191,0.30);
    padding: 3px 9px;
    border-radius: 999px;
    display: inline-block;
    margin-bottom: 16px;
}
.step h3 {
    font-size: 22px;
    font-weight: 700;
    margin: 0 0 10px 0;
    letter-spacing: -0.01em;
}
.step p {
    color: var(--text-dim);
    margin: 0 0 22px 0;
    font-size: 14.5px;
}
.step-art {
    position: relative;
    height: 90px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.phone-mock {
    width: 230px;
    background: rgba(0,0,0,0.32);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 10px;
}
.bubble {
    padding: 8px 12px;
    border-radius: 12px;
    font-size: 13.5px;
    font-family: 'JetBrains Mono', monospace;
    color: var(--text);
    margin: 2px 0;
}
.bubble.out { background: rgba(139,92,246,0.18); border: 1px solid rgba(139,92,246,0.35); margin-left: auto; max-width: 80%; }
.bubble.in  { background: rgba(45,212,191,0.16); border: 1px solid rgba(45,212,191,0.35); max-width: 80%; }

.proc-mock {
    display: flex; gap: 10px;
}
.proc-dot {
    width: 14px; height: 14px; border-radius: 50%;
    background: var(--teal);
    box-shadow: 0 0 14px var(--teal);
    animation: procDot 1.4s ease-in-out infinite;
}
.proc-dot:nth-child(2) { animation-delay: 0.2s; background: var(--blue); box-shadow: 0 0 14px var(--blue); }
.proc-dot:nth-child(3) { animation-delay: 0.4s; background: var(--purple); box-shadow: 0 0 14px var(--purple); }
@keyframes procDot {
    0%,100% { transform: translateY(0); opacity: 1; }
    50% { transform: translateY(-12px); opacity: 0.55; }
}

/* ============================================================================
   Feature cards
   ============================================================================ */
.features-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}
@media (max-width: 920px) { .features-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .features-grid { grid-template-columns: 1fr; } }

.feature-card {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 26px 22px 24px;
    transition: transform 0.2s, border-color 0.25s, background 0.25s;
    box-shadow: var(--shadow-card);
}
.feature-card:hover {
    transform: translateY(-3px);
    border-color: rgba(45,212,191,0.35);
    background: var(--bg-card-2);
}
.feature-ico {
    width: 44px; height: 44px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(45,212,191,0.15), rgba(139,92,246,0.12));
    color: var(--teal-bright);
    margin-bottom: 18px;
}
.feature-ico svg { width: 22px; height: 22px; }
.feature-card h3 {
    margin: 0 0 8px 0;
    font-size: 17px;
    font-weight: 700;
    letter-spacing: -0.005em;
}
.feature-card p {
    margin: 0;
    color: var(--text-dim);
    font-size: 14px;
    line-height: 1.6;
}

/* ============================================================================
   Use cases
   ============================================================================ */
.use-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
}
@media (max-width: 900px) { .use-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 540px) { .use-grid { grid-template-columns: 1fr; } }
.use-card {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 20px 18px;
    transition: border-color 0.25s, transform 0.2s;
}
.use-card:hover { border-color: rgba(139,92,246,0.45); transform: translateY(-2px); }
.use-badge {
    display: inline-block;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: 10.5px;
    font-weight: 700;
    padding: 3px 8px;
    border-radius: 4px;
    margin-bottom: 12px;
    background: rgba(139,92,246,0.14);
    color: var(--magenta);
    border: 1px solid rgba(139,92,246,0.32);
}
.use-card p {
    color: var(--text-dim);
    margin: 0;
    font-size: 14px;
}

/* ============================================================================
   CTA final
   ============================================================================ */
.cta-final { padding: 80px 32px; }
.cta-card {
    text-align: center;
    background: linear-gradient(135deg, rgba(45,212,191,0.10), rgba(139,92,246,0.12));
    border: 1px solid rgba(45,212,191,0.35);
    border-radius: var(--radius-lg);
    padding: 64px 32px;
    max-width: 820px;
    margin: 0 auto;
    box-shadow: var(--shadow-glow), var(--shadow-card);
    position: relative;
    overflow: hidden;
}
.cta-card::before {
    content: "";
    position: absolute;
    inset: -1px;
    border-radius: var(--radius-lg);
    background: var(--grad-edge);
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
            mask-composite: exclude;
    padding: 1px;
    pointer-events: none;
    opacity: 0.6;
}
.cta-card h2 {
    font-size: clamp(28px, 4vw, 42px);
    margin: 0 0 14px 0;
    letter-spacing: -0.02em;
}
.cta-card p {
    color: var(--text-dim);
    margin: 0 auto 28px;
    max-width: 520px;
}
.cta-fine {
    color: var(--text-faint);
    font-size: 12px !important;
    margin-top: 22px !important;
}
.cta-fine a { color: var(--text-dim); text-decoration: underline; text-decoration-color: var(--border-hi); }

/* ============================================================================
   FAQ
   ============================================================================ */
.faq-list {
    max-width: 780px;
    margin: 0 auto;
    display: flex; flex-direction: column; gap: 12px;
}
.faq {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    overflow: hidden;
    transition: border-color 0.2s;
}
.faq[open] { border-color: rgba(45,212,191,0.35); }
.faq summary {
    list-style: none;
    cursor: pointer;
    padding: 18px 22px;
    font-weight: 600;
    font-size: 15.5px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.faq summary::after {
    content: "+";
    color: var(--teal);
    font-weight: 400;
    font-size: 24px;
    line-height: 1;
    transition: transform 0.2s;
}
.faq[open] summary::after { transform: rotate(45deg); }
.faq summary::-webkit-details-marker { display: none; }
.faq p {
    margin: 0;
    padding: 0 22px 22px;
    color: var(--text-dim);
    font-size: 14.5px;
    line-height: 1.65;
}

/* ============================================================================
   Footer
   ============================================================================ */
.site-footer {
    margin-top: 80px;
    padding: 48px 32px 56px;
    border-top: 1px solid var(--border);
    background: linear-gradient(180deg, transparent, rgba(7,11,19,0.6));
}
.site-footer-inner {
    max-width: 1180px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-areas:
        "brand links"
        "meta  meta ";
    gap: 18px 32px;
    align-items: center;
}
@media (max-width: 720px) {
    .site-footer-inner {
        grid-template-columns: 1fr;
        grid-template-areas: "brand" "links" "meta";
        text-align: center;
        gap: 22px;
    }
}
.footer-brand { grid-area: brand; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.footer-tag {
    color: var(--text-faint);
    font-size: 12px;
    margin-left: 8px;
}
.footer-links { grid-area: links; display: flex; gap: 22px; flex-wrap: wrap; }
.footer-links a { color: var(--text-dim); font-size: 14px; }
.footer-links a:hover { color: var(--text); }
.footer-meta {
    grid-area: meta;
    color: var(--text-faint);
    font-size: 12px;
    border-top: 1px solid var(--border);
    padding-top: 16px;
    display: flex; gap: 16px; flex-wrap: wrap;
}

/* ============================================================================
   Reveal on scroll
   ============================================================================ */
.reveal {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.7s cubic-bezier(.22,.61,.36,1), transform 0.7s cubic-bezier(.22,.61,.36,1);
}
.reveal.in {
    opacity: 1;
    transform: translateY(0);
}

/* ============================================================================
   Legal / policy pages — shared narrow document layout
   ============================================================================ */
.doc {
    max-width: 820px;
    margin: 0 auto;
    padding: 56px 28px 96px;
}
.doc .doc-back {
    color: var(--text-dim);
    font-size: 13px;
    display: inline-flex; align-items: center; gap: 6px;
    margin-bottom: 26px;
}
.doc h1 {
    font-size: clamp(28px, 4.5vw, 42px);
    letter-spacing: -0.02em;
    margin: 0 0 8px 0;
}
.doc .doc-meta {
    color: var(--text-faint);
    font-size: 13px;
    margin-bottom: 36px;
    font-family: 'JetBrains Mono', monospace;
}
.doc h2 {
    font-size: 20px;
    margin: 38px 0 12px;
    color: var(--teal-bright);
    letter-spacing: -0.005em;
}
.doc h3 {
    font-size: 16px;
    margin: 24px 0 8px;
    color: var(--text);
}
.doc p, .doc li {
    color: var(--text-dim);
    font-size: 15px;
    line-height: 1.75;
}
.doc ul, .doc ol {
    padding-left: 22px;
}
.doc strong { color: var(--text); font-weight: 600; }
.doc table {
    width: 100%;
    border-collapse: collapse;
    margin: 14px 0 22px;
    font-size: 14px;
}
.doc th, .doc td {
    text-align: left;
    padding: 10px 12px;
    border: 1px solid var(--border);
    vertical-align: top;
    color: var(--text-dim);
}
.doc th {
    background: rgba(255,255,255,0.03);
    color: var(--text);
    font-weight: 600;
    font-size: 13px;
}
.doc code {
    background: rgba(255,255,255,0.05);
    padding: 1px 6px;
    border-radius: 4px;
    font-size: 13.5px;
    color: var(--teal-bright);
}
.doc .callout {
    margin: 20px 0;
    padding: 16px 20px;
    background: var(--bg-card);
    border: 1px solid rgba(45,212,191,0.30);
    border-left-width: 3px;
    border-radius: var(--radius-sm);
    color: var(--text);
}
.doc .callout strong { color: var(--teal-bright); }
.doc .contact-card {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 22px 24px;
    margin: 24px 0;
}
.doc .contact-card .row {
    display: grid;
    grid-template-columns: 160px 1fr;
    gap: 8px 18px;
    padding: 8px 0;
    border-top: 1px solid var(--border);
    color: var(--text-dim);
    font-size: 14px;
}
.doc .contact-card .row:first-of-type { border-top: 0; }
.doc .contact-card .row strong { color: var(--text); font-weight: 600; }
@media (max-width: 560px) {
    .doc .contact-card .row { grid-template-columns: 1fr; gap: 4px; }
}

/* ============================================================================
   v7.1.184 — commercial-grade rework. Adds:
     - trust strip (right after hero)
     - mission section (why this exists, with use-case mini-cards)
     - free-forever band (full-width promise statement)
     - footer mission line
     - accent-pill highlight for the "100% free" hero chip
   Plus subtle polish: refined card hover, better section breathing.
   ============================================================================ */

/* ---- accent pill (the "100% free" pill in the hero) ----------------------- */
.hero-pill-row .pill-accent {
    background: rgba(45,212,191,0.10);
    border-color: rgba(45,212,191,0.45);
    color: var(--teal-bright);
}
.hero-pill-row .pill-accent strong { color: var(--teal-bright); }

/* ---- trust strip ---------------------------------------------------------- */
/* Sits right under the hero. Four chips with subtle iconography that
   communicate the four most-important trust signals at-a-glance:
   private, no-account, free, on-our-hardware. Stays as a single row on
   wide viewports, wraps to a 2×2 grid on narrow. */
.trust-strip {
    max-width: 1180px;
    margin: 0 auto;
    padding: 18px 32px 28px;
}
.trust-strip-inner {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 18px 22px;
    background: linear-gradient(180deg,
        rgba(45,212,191,0.04) 0%,
        rgba(255,255,255,0.01) 100%);
    backdrop-filter: blur(6px);
}
.trust-chip {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--text-dim);
    font-size: 13px;
    line-height: 1.4;
}
.trust-chip svg {
    flex: 0 0 auto;
    color: var(--teal-bright);
    opacity: 0.85;
}
.trust-chip strong {
    color: var(--text);
    font-weight: 600;
}
@media (max-width: 920px) {
    .trust-strip-inner { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px) {
    .trust-strip-inner { grid-template-columns: 1fr; }
}

/* ---- mission section ------------------------------------------------------ */
/* Two-column editorial layout: text on the left tells the "why we built
   it" story; four small cards on the right show the actual people the
   bot was built for. Wraps to single column on narrow viewports. */
.section-mission {
    padding-top: 88px;
    padding-bottom: 96px;
}
.mission-grid {
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 32px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 56px;
    align-items: start;
}
.mission-text .eyebrow {
    display: inline-block;
    margin-bottom: 18px;
}
.mission-text h2 {
    font-size: clamp(30px, 4.2vw, 52px);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -0.02em;
    margin: 0 0 26px 0;
    color: var(--text);
}
.mission-text p {
    color: var(--text-dim);
    font-size: 15.5px;
    line-height: 1.7;
    margin: 0 0 18px 0;
    max-width: 540px;
}
.mission-text p em {
    color: var(--text);
    font-style: italic;
}
.mission-cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
}
.mission-card {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 20px 22px;
    transition: transform 0.18s, border-color 0.18s, background 0.18s;
}
.mission-card:hover {
    transform: translateY(-3px);
    border-color: var(--border-hi);
    background: var(--bg-card-hover, var(--bg-card));
}
.mission-card-emoji {
    font-size: 28px;
    line-height: 1;
    margin-bottom: 10px;
    filter: grayscale(0);
}
.mission-card-title {
    font-size: 15px;
    font-weight: 600;
    color: var(--text);
    margin-bottom: 6px;
}
.mission-card-body {
    font-size: 13px;
    color: var(--text-dim);
    line-height: 1.55;
}
@media (max-width: 920px) {
    .mission-grid {
        grid-template-columns: 1fr;
        gap: 36px;
    }
    .mission-cards {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 520px) {
    .mission-cards {
        grid-template-columns: 1fr;
    }
}

/* ---- free-forever band ---------------------------------------------------- */
/* The strongest commercial-mission statement on the page. Full-width
   centered block with a soft teal-tinted card background, eyebrow,
   big headline, supporting paragraph, then a 4-stat strip. */
.section-free-band {
    padding-top: 24px;
    padding-bottom: 72px;
}
.free-band {
    max-width: 1080px;
    margin: 0 auto;
    padding: 56px 56px 48px;
    border: 1px solid rgba(45,212,191,0.32);
    border-radius: 24px;
    background:
        radial-gradient(1200px 600px at 50% -10%, rgba(45,212,191,0.10), transparent 60%),
        linear-gradient(180deg, rgba(45,212,191,0.06) 0%, rgba(45,212,191,0.02) 100%);
    text-align: center;
    box-shadow: 0 30px 80px -30px rgba(45,212,191,0.18);
}
.free-band-eyebrow {
    display: inline-block;
    color: var(--teal-bright);
    font-size: 11.5px;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    margin-bottom: 18px;
    padding: 4px 12px;
    border: 1px solid rgba(45,212,191,0.40);
    border-radius: 999px;
    background: rgba(45,212,191,0.08);
}
.free-band h2 {
    font-size: clamp(36px, 5.5vw, 64px);
    font-weight: 800;
    line-height: 1.02;
    letter-spacing: -0.025em;
    margin: 0 0 22px 0;
    color: var(--text);
}
.free-band p {
    max-width: 640px;
    margin: 0 auto 36px;
    color: var(--text-dim);
    font-size: 16px;
    line-height: 1.7;
}
.free-band-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
    margin-top: 8px;
    padding-top: 28px;
    border-top: 1px solid rgba(255,255,255,0.06);
}
.free-band-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}
.free-band-stat-val {
    font-size: 32px;
    font-weight: 800;
    color: var(--teal-bright);
    line-height: 1;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.02em;
}
.free-band-stat-label {
    color: var(--text-dim);
    font-size: 12.5px;
    line-height: 1.45;
    text-align: center;
}
@media (max-width: 720px) {
    .free-band { padding: 40px 28px 32px; border-radius: 18px; }
    .free-band-stats { grid-template-columns: repeat(2, 1fr); gap: 22px; }
    .free-band-stat-val { font-size: 26px; }
}

/* ---- footer mission line -------------------------------------------------- */
.footer-mission {
    color: var(--text-dim);
    font-size: 13px;
    line-height: 1.6;
    max-width: 620px;
    margin: 18px 0;
    padding-top: 18px;
    border-top: 1px solid var(--border);
}

/* ---- subtle polish: feature & use-case card hovers ------------------------ */
/* Slightly more pronounced lift on hover so cards feel intentional
   without going gaudy. */
.feature-card,
.use-card {
    transition: transform 0.22s, border-color 0.22s, background 0.22s, box-shadow 0.22s;
}
.feature-card:hover,
.use-card:hover {
    transform: translateY(-4px);
    border-color: rgba(45,212,191,0.30);
    box-shadow: 0 12px 32px -16px rgba(45,212,191,0.25);
}

/* ============================================================================
   v7.1.197 — Arabic page (RTL) + language switcher.
   The Arabic page sets <html lang="ar" dir="rtl">. The dir="rtl" attribute
   makes most flex / grid layouts auto-mirror for us; the rules below only
   handle what the browser doesn't reverse on its own:
     - Arabic-tuned font stack (Tajawal pairs cleanly with Inter)
     - typographic adjustments — letter-spacing zeroed because Tajawal
       doesn't appreciate -0.025em, and Arabic doesn't have word-tracking
       in the Latin sense
     - the .lang-switch button styling — visible on both pages
   ============================================================================ */

/* Arabic font stack — applied to everything under [lang="ar"]. Tajawal
   covers Arabic glyphs, Inter falls through for Latin punctuation /
   brand names ("removemusic"), system stack catches the rest. */
[lang="ar"] body,
[lang="ar"] .hero-title,
[lang="ar"] .hero-sub,
[lang="ar"] .hero-eyebrow,
[lang="ar"] .pill,
[lang="ar"] .trust-chip,
[lang="ar"] .mission-text,
[lang="ar"] .mission-card,
[lang="ar"] .section-head,
[lang="ar"] .step,
[lang="ar"] .feature-card,
[lang="ar"] .use-card,
[lang="ar"] .free-band,
[lang="ar"] .cta-card,
[lang="ar"] .faq,
[lang="ar"] .site-footer {
    font-family: "Tajawal", "Inter", -apple-system, BlinkMacSystemFont,
                 "Segoe UI", Roboto, sans-serif;
}

/* Latin letter-spacing values look awkward on Arabic glyphs (Tajawal
   has tight default kerning already). Reset the negative tracking on
   the big headlines. */
[lang="ar"] .hero-title,
[lang="ar"] .mission-text h2,
[lang="ar"] .free-band h2,
[lang="ar"] .section-head h2,
[lang="ar"] .cta-card h2 {
    letter-spacing: 0;
}

/* Arabic eyebrows + uppercase-styled labels: Arabic glyphs don't have
   case so `text-transform: uppercase` is a no-op but the v7.1.184 CSS
   does set `letter-spacing: 0.08em` on .eyebrow which still applies —
   Arabic doesn't need that either. */
[lang="ar"] .eyebrow,
[lang="ar"] .free-band-eyebrow,
[lang="ar"] .cp-summary-label {
    letter-spacing: 0.04em;
    text-transform: none;
}

/* Brand mark stays Latin in the nav — pin its direction so it doesn't
   reorder under the parent's dir=rtl. */
[lang="ar"] .brand-word,
[lang="ar"] .footer-meta {
    direction: ltr;
    unicode-bidi: bidi-override;
    display: inline-block;
}

/* Hero pills inside RTL — `flex-wrap` already adapts but the `.pill
   strong` highlight color renders right next to the value; ensure
   left/right padding stays symmetric (was inherently symmetric from
   the v7.1.184 base, no override needed). The "100% free" accent
   pill uses Latin "100%" — pin direction so the % stays on the right
   side of the number in RTL. */
[lang="ar"] .pill-accent strong,
[lang="ar"] .free-band-stat-val {
    direction: ltr;
    unicode-bidi: bidi-override;
    display: inline-block;
}

/* Mono cells (timestamps, codes) — keep them LTR even in Arabic context. */
[lang="ar"] .mono,
[lang="ar"] code {
    direction: ltr;
    unicode-bidi: embed;
}

/* Language switcher button — same .btn-ghost shape, with a small
   tightening so the single-glyph label ("ع" / "EN") doesn't look
   stranded. Lives in both nav bars. */
.lang-switch {
    padding: 8px 14px;
    min-width: 44px;
    justify-content: center;
    font-weight: 600;
    letter-spacing: 0.02em;
}
.lang-switch span {
    line-height: 1;
}
/* Arabic ع glyph wants a slightly larger render than Latin "EN" to
   look balanced — apply only when the button itself is tagged lang="ar"
   (which is what the EN→AR switcher on the English page is). */
.lang-switch[lang="ar"] span {
    font-size: 17px;
    font-family: "Tajawal", "Inter", -apple-system, sans-serif;
    font-weight: 700;
}
/* Subtle hover — same brand-color shift as the WA/TG ghost buttons. */
.lang-switch:hover {
    border-color: rgba(45,212,191,0.45);
    color: var(--teal-bright);
}

/* Footer mission line in Arabic — wider, comfortable for Arabic
   reading rhythm. */
[lang="ar"] .footer-mission {
    max-width: 720px;
    line-height: 1.75;
}
