/* Site-specific overrides on top of theme.css + frontend.css */

/* ---------- Global: prevent horizontal overflow on mobile ---------- */
html { scroll-behavior: smooth; }
html, body { overflow-x: hidden; -webkit-text-size-adjust: 100%; }
img, svg, video { max-width: 100%; height: auto; }

/* ---------- Buttons: refined gradient + tap feedback ---------- */
.tvr-btn {
    transition: transform .15s ease, box-shadow .15s ease, filter .15s ease, background .2s ease;
    border-radius: 12px;
    font-weight: 700;
    letter-spacing: .005em;
    will-change: transform;
}
.tvr-btn--primary {
    background: var(--tvr-grad, linear-gradient(135deg, var(--tvr-blue), var(--tvr-cyan))) !important;
    border: 0 !important;
    color: #fff !important;
    box-shadow: 0 6px 18px rgba(37,99,235,.28), inset 0 1px 0 rgba(255,255,255,.18);
}
.tvr-btn--primary:hover, .tvr-btn--primary:focus-visible {
    transform: translateY(-1px);
    box-shadow: 0 10px 26px rgba(37,99,235,.36), inset 0 1px 0 rgba(255,255,255,.22);
    filter: brightness(1.06);
    text-decoration: none;
}
.tvr-btn--primary:active { transform: translateY(0); filter: brightness(.96); transition-duration: .05s; }
.tvr-btn--lg { padding: .85rem 1.4rem; font-size: 1rem; }
.tvr-btn--block { width: 100%; }

/* Subtle focus ring on all interactive elements */
a:focus-visible, button:focus-visible, .tvr-btn:focus-visible {
    outline: 3px solid var(--tvr-accent, #FFD93D);
    outline-offset: 3px;
}

/* ---------- Hero ghost button: legible on dark gradient ---------- */
.tvr-hero--compact .tvr-btn--ghost {
    background: rgba(255,255,255,.12) !important;
    color: #fff !important;
    border: 1.5px solid rgba(255,255,255,.55) !important;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}
.tvr-hero--compact .tvr-btn--ghost:hover {
    background: rgba(255,255,255,.22) !important;
    border-color: rgba(255,255,255,.9) !important;
}

/* ---------- Hero polish ---------- */
.tvr-hero--compact { box-shadow: inset 0 -1px 0 rgba(255,255,255,.06); }
.tvr-hero--compact::after { display: none !important; } /* kill fade overlay that hides trust items */
.tvr-hero--compact .tvr-hero__title {
    word-break: break-word;
    overflow-wrap: anywhere !important;
    hyphens: auto;
    max-width: 100%;
    box-sizing: border-box;
}
.tvr-hero--compact .tvr-hero__sub { overflow-wrap: anywhere; }
/* Trust items: bright on dark hero, with safe contrast */
.tvr-hero--compact .tvr-hero__trust {
    color: #cbd5e1 !important;
    margin-top: .8rem !important;
    padding-bottom: .25rem;
    text-shadow: 0 1px 2px rgba(0,0,0,.15);
}
.tvr-hero--compact .tvr-hero__trust span { color: #e2e8f0; }
.tvr-hero--compact .tvr-hero__trust span::before { color: #34d399; }

/* ---------- Mobile: ≤720px ---------- */
@media (max-width: 720px) {
    /* Hero */
    .tvr-hero--compact { padding: .9rem 0 1rem; }
    .tvr-hero--compact .tvr-hero__inner { padding: 0 1rem; gap: .5rem; max-width: none; }
    .tvr-hero--compact .tvr-hero__eyebrow { font-size: .65rem; padding: .2rem .55rem; letter-spacing: .1em; }
    .tvr-hero--compact .tvr-hero__title {
        font-size: clamp(1.25rem, 5.4vw, 1.55rem);
        line-height: 1.2;
        margin: .15rem 0 .15rem;
    }
    .tvr-hero--compact .tvr-hero__sub { font-size: .88rem; max-width: none; line-height: 1.45; }
    .tvr-hero--compact .tvr-hero__ctas {
        flex-direction: column;
        gap: .5rem;
        align-items: stretch;
        margin-top: .55rem;
    }
    .tvr-hero--compact .tvr-hero__ctas .tvr-btn {
        width: 100%;
        max-width: 360px;
        margin-inline: auto;
        padding: .8rem 1rem;
        font-size: .95rem;
    }
    .tvr-hero--compact .tvr-hero__trust {
        font-size: .68rem;
        gap: .55rem;
        flex-wrap: nowrap;
        overflow-x: auto;
        scrollbar-width: none;
        white-space: nowrap;
        padding: .1rem .25rem 0;
        justify-content: flex-start;
        margin-top: .35rem;
    }
    .tvr-hero--compact .tvr-hero__trust::-webkit-scrollbar { display: none; }
    .tvr-hero--compact .tvr-hero__trust span { flex: 0 0 auto; }

    /* Top3 cards: tighter, more compact, mobile-optimized */
    .tvr-top3 .tvr-container { padding: 0 .85rem; }
    .tvr-top3card { padding: 1.1rem .95rem 1rem !important; gap: .4rem !important; }
    .tvr-top3card__title { font-size: 1.15rem !important; }
    .tvr-top3card__bestfor { font-size: .85rem; }
    .tvr-top3card__note { font-size: .82rem; line-height: 1.4; }
    .tvr-top3card__logo { min-height: 60px; }
    .tvr-top3card__logo .tvr-vpn-logo {
        width: 150px !important;
        height: 50px !important;
        padding: 6px 10px !important;
    }
    .tvr-top3card__badge { font-size: .68rem !important; padding: .2rem .55rem !important; }
    .tvr-score-pill--xl {
        font-size: 1.4rem !important;
        padding: .2rem .85rem !important;
    }
    .tvr-top3card .tvr-btn--block { padding: .85rem; font-size: 1rem; }

    /* Section spacing */
    .tvr-section-heading { font-size: 1.15rem; padding: 0 1rem; }
    .tvr-list { padding: 1.5rem 0 .5rem; }
    .tvr-top3 { padding: 1rem 0; }

    /* Ticker: lift higher when GDPR or sticky present */
    .tvr-ticker {
        left: .5rem !important;
        right: .5rem !important;
        bottom: 5.5rem !important;
        width: auto !important;
        font-size: .85rem;
    }
    body.has-gdpr .tvr-ticker { bottom: 12rem !important; }

    /* Pricing on mobile */
    .tvr-price__now { font-size: 1.25rem; }
    .tvr-list-row__body .tvr-price__now { font-size: 1.05rem; }
    .tvr-price__save { font-size: .72rem; padding: .15rem .45rem; }

    /* GDPR banner: tighter padding */
    .gdpr-banner__text { font-size: .8rem; }
    .gdpr-banner__inner { padding: .65rem .8rem; gap: .65rem; }
}

/* Even tighter on small phones */
@media (max-width: 380px) {
    .tvr-hero--compact .tvr-hero__title { font-size: 1.2rem; }
    .tvr-top3card__title { font-size: 1.05rem !important; }
    .tvr-score-pill--xl { font-size: 1.25rem !important; }
}


/* ---------- Header (clean, logo only) ---------- */
.tvr-site-header--clean .tvr-site-header__inner { justify-content: flex-start; }
.tvr-site-header--clean .tvr-nav,
.tvr-site-header--clean .tvr-nav-toggle,
.tvr-site-header--clean .tvr-language { display: none !important; }

/* ---------- Hero (compact, fold-friendly) ---------- */
.tvr-hero--compact {
    padding: 1.5rem 0 1.25rem;
    background: linear-gradient(135deg, var(--tvr-navy) 0%, var(--tvr-navy-2) 60%, var(--tvr-blue) 130%);
    color: #fff;
}
.tvr-hero--compact .tvr-hero__inner {
    display: grid; gap: .65rem; max-width: 800px; margin-inline: auto; padding: 0 1.25rem;
    text-align: center;
}
.tvr-hero--compact .tvr-hero__eyebrow {
    display: inline-block; font-size: .72rem; letter-spacing: .14em; text-transform: uppercase;
    color: #cbd5e1; padding: .25rem .65rem; background: rgba(255,255,255,.08);
    border-radius: 999px; margin: 0 auto;
}
.tvr-hero--compact .tvr-hero__title {
    font-size: clamp(1.55rem, 4.4vw, 2.45rem);
    line-height: 1.15;
    margin: .15rem 0 .25rem;
    font-weight: 800;
    letter-spacing: -0.015em;
}
.tvr-hero--compact .tvr-hero__sub { color: #cbd5e1; font-size: 1rem; margin: 0 auto; max-width: 60ch; }
.tvr-hero--compact .tvr-hero__ctas {
    display: flex; gap: .6rem; justify-content: center; flex-wrap: wrap; margin-top: .35rem;
}
.tvr-hero--compact .tvr-btn--ghost {
    background: rgba(255,255,255,.08); color: #fff; border: 1px solid rgba(255,255,255,.4);
}
.tvr-hero--compact .tvr-btn--ghost:hover { background: rgba(255,255,255,.15); }
.tvr-hero--compact .tvr-hero__trust {
    display: flex; gap: 1.2rem; justify-content: center; flex-wrap: wrap;
    color: #94a3b8; font-size: .82rem; margin-top: .5rem;
}
.tvr-hero--compact .tvr-hero__trust span::before { content: "✓ "; color: #34d399; font-weight: 700; }

@media (max-width: 640px) {
    .tvr-hero--compact { padding: 1rem 0 .9rem; }
    .tvr-hero--compact .tvr-hero__title { font-size: 1.35rem; }
    .tvr-hero--compact .tvr-hero__sub { font-size: .92rem; }
    .tvr-hero--compact .tvr-hero__trust { gap: .65rem; font-size: .75rem; }
}

/* ---------- All picks list ---------- */
.tvr-list { padding: 2rem 0 1rem; }
.tvr-list .tvr-section-heading { margin-bottom: 1rem; }
.tvr-list__rows { display: grid; gap: .75rem; }

.tvr-list-row {
    display: grid;
    grid-template-columns: 56px 96px 1fr auto auto;
    align-items: center;
    gap: 1rem;
    background: var(--tvr-card);
    border: 1px solid var(--tvr-border);
    border-radius: var(--tvr-radius);
    padding: .85rem 1rem;
    box-shadow: 0 1px 2px rgba(7,27,51,.04);
    transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}
.tvr-list-row:hover { border-color: var(--tvr-blue); transform: translateY(-1px); box-shadow: var(--tvr-shadow); }
.tvr-list-row__rank {
    font-size: 1.35rem; font-weight: 800; color: var(--tvr-muted);
    text-align: center; font-variant-numeric: tabular-nums;
}
.tvr-list-row__logo { display: flex; align-items: center; justify-content: center; }
.tvr-list-row__logo img { max-height: 40px; max-width: 96px; width: auto; }
.tvr-list-row__body h3 { margin: 0; font-size: 1.05rem; color: var(--tvr-navy); }
.tvr-list-row__body p { margin: .15rem 0 0; color: var(--tvr-muted); font-size: .88rem; }
.tvr-list-row__score { min-width: 64px; text-align: right; }
.tvr-list-row__cta .tvr-btn { white-space: nowrap; }

@media (max-width: 720px) {
    .tvr-list-row {
        grid-template-columns: 40px 64px 1fr;
        grid-template-areas:
            "rank logo body"
            "rank logo score"
            "cta cta cta";
        gap: .55rem .8rem;
    }
    .tvr-list-row__rank  { grid-area: rank; font-size: 1.1rem; }
    .tvr-list-row__logo  { grid-area: logo; }
    .tvr-list-row__logo img { max-height: 32px; max-width: 64px; }
    .tvr-list-row__body  { grid-area: body; }
    .tvr-list-row__body h3 { font-size: .95rem; }
    .tvr-list-row__score { grid-area: score; text-align: left; }
    .tvr-list-row__cta   { grid-area: cta; }
    .tvr-list-row__cta .tvr-btn { display: block; text-align: center; width: 100%; }
}

/* ---------- Footer ---------- */
.tvr-footer {
    margin-top: 3rem;
    padding: 1.75rem 0;
    background: var(--tvr-navy);
    color: #cbd5e1;
}
.tvr-footer a { color: #93c5fd; }
.tvr-footer__inner {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
    gap: 1rem; padding: 0 1.25rem; max-width: var(--tvr-content-w); margin-inline: auto;
}
.tvr-footer__copyright { margin: 0; font-size: .85rem; }
.tvr-footer__links { list-style: none; padding: 0; margin: 0; display: flex; gap: 1rem; flex-wrap: wrap; }
.tvr-footer__links a { font-size: .85rem; }

/* Long-tail link cloud */
.tvr-footer__longtail {
    border-bottom: 1px solid rgba(255,255,255,.08);
    padding: 1.25rem 1.25rem 1rem;
    margin: 0 auto 1rem;
    max-width: var(--tvr-content-w);
}
.tvr-footer__heading {
    margin: 0 0 .65rem;
    color: #cbd5e1;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .14em;
    font-weight: 700;
}
.tvr-footer__cloud {
    list-style: none; padding: 0; margin: 0;
    display: flex; flex-wrap: wrap; gap: .35rem;
}
.tvr-footer__cloud a {
    display: inline-block;
    padding: .3rem .65rem;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 999px;
    color: #cbd5e1 !important;
    font-size: .78rem;
    text-decoration: none;
    transition: background .15s, border-color .15s, color .15s;
}
.tvr-footer__cloud a:hover {
    background: rgba(255,255,255,.12);
    border-color: rgba(255,255,255,.25);
    color: #fff !important;
}
@media (max-width: 720px) {
    .tvr-footer__longtail { padding: 1rem 1rem .85rem; }
    .tvr-footer__cloud a { font-size: .72rem; padding: .25rem .55rem; }
}

/* Language picker in footer */
.tvr-language--footer { position: relative; }
.tvr-language--footer .tvr-language__button {
    background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.2);
    color: #fff;
}
.tvr-language--footer .tvr-language__button::after { border-top-color: #cbd5e1; }
.tvr-language--footer .tvr-language__menu {
    bottom: calc(100% + .45rem); top: auto; right: 0;
    background: #fff; color: var(--tvr-text);
}
.tvr-language--footer .tvr-language__menu a { color: var(--tvr-text); }

@media (max-width: 640px) {
    .tvr-footer__inner { flex-direction: column; align-items: flex-start; }
    .tvr-language--footer { align-self: flex-end; }
}

/* ---------- Trust strip ---------- */
.tvr-trust-strip {
    background: #0f2a4d;
    color: #cbd5e1;
    font-size: .82rem;
    padding: .5rem 1rem;
    display: flex; gap: 1.4rem; justify-content: center; flex-wrap: wrap;
}
.tvr-trust-strip span::before { content: "✓ "; color: #34d399; font-weight: 700; }
@media (max-width: 720px) {
    .tvr-trust-strip {
        flex-wrap: nowrap;
        overflow-x: auto;
        gap: .85rem;
        font-size: .72rem;
        padding: .4rem .65rem;
        justify-content: flex-start;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
        white-space: nowrap;
    }
    .tvr-trust-strip::-webkit-scrollbar { display: none; }
    .tvr-trust-strip span { flex: 0 0 auto; }
    .tvr-trust-strip span::before { content: "✓ "; }
}

/* ---------- Pricing block ---------- */
.tvr-deal-ribbon {
    position: absolute;
    top: 12px; right: 12px;
    background: var(--tvr-danger);
    color: #fff;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .04em;
    padding: .25rem .55rem;
    border-radius: 999px;
    transform: rotate(2deg);
}
.tvr-top3card { position: relative; }
.tvr-deal-chip {
    display: inline-block;
    background: var(--tvr-danger);
    color: #fff;
    font-size: .68rem;
    font-weight: 700;
    padding: .15rem .45rem;
    border-radius: 6px;
    vertical-align: middle;
    margin-left: .25rem;
}
.tvr-list-row--deal { border-color: rgba(220, 38, 38, .35); }

.tvr-price {
    display: flex; align-items: baseline; gap: .55rem; flex-wrap: wrap; justify-content: center;
    margin: .25rem 0;
}
.tvr-price--inline { justify-content: flex-start; margin-top: .2rem; }
.tvr-price__now {
    font-size: 1.45rem;
    font-weight: 800;
    color: var(--tvr-navy);
    letter-spacing: -.01em;
}
.tvr-price__now small { font-size: .7em; color: var(--tvr-muted); font-weight: 600; }
.tvr-price__was {
    color: var(--tvr-muted); text-decoration: line-through; font-size: 1rem;
}
.tvr-price__save {
    background: #dcfce7; color: #166534;
    font-size: .78rem; font-weight: 700;
    padding: .2rem .55rem; border-radius: 999px;
}
.tvr-list-row__body .tvr-price__now { font-size: 1.15rem; }

/* ---------- Countdown ---------- */
.tvr-countdown {
    background: #fff7ed; color: #9a3412; border: 1px solid #fed7aa;
    border-radius: 8px; padding: .35rem .6rem;
    font-size: .8rem; display: flex; align-items: center; gap: .4rem; justify-content: center;
    margin: .25rem 0;
}
.tvr-countdown__label { color: #c2410c; }
.tvr-countdown__time { font-weight: 800; font-variant-numeric: tabular-nums; color: #7c2d12; }
.tvr-countdown.is-expired { background:#fee2e2; color:#7f1d1d; border-color:#fecaca; }

/* ---------- Purchases ticker (aggressive variant) ---------- */
.tvr-ticker {
    position: fixed; left: 1rem; bottom: 1rem; z-index: 150;
    background: #fff;
    border: 2px solid #16a34a;
    border-radius: 14px;
    box-shadow: 0 18px 40px rgba(22,163,74,.25), 0 4px 12px rgba(0,0,0,.10);
    padding: 0;
    width: 360px; max-width: calc(100vw - 2rem);
    transform: translateX(-110%) rotate(-1deg);
    opacity: 0;
    transition: transform .42s cubic-bezier(.2,1.3,.6,1), opacity .25s ease-out;
    font-size: .92rem;
    overflow: hidden;
}
.tvr-ticker.is-in  { transform: translateX(0) rotate(0); opacity: 1; }
.tvr-ticker.is-out { transform: translateX(0) rotate(0); opacity: .92; }
.tvr-ticker__link {
    display: grid; grid-template-columns: 56px 1fr; gap: .8rem;
    padding: .85rem 2rem .85rem .85rem;
    color: var(--tvr-text); text-decoration: none;
}
.tvr-ticker__link:hover { background: #f0fdf4; }
.tvr-ticker__avatar {
    position: relative;
    width: 56px; height: 56px; border-radius: 50%;
    background: #f9fafb; border: 2px solid #16a34a;
    display: flex; align-items: center; justify-content: center;
    overflow: visible;
}
.tvr-ticker__avatar img { width: 80%; height: 80%; object-fit: contain; border-radius: 50%; }
.tvr-ticker__pulse {
    position: absolute; right: -2px; top: -2px;
    width: 14px; height: 14px; border-radius: 50%;
    background: #16a34a; border: 2px solid #fff;
    box-shadow: 0 0 0 0 rgba(22,163,74,.6);
    animation: tickPulse 1.4s infinite;
}
@keyframes tickPulse {
    0%   { box-shadow: 0 0 0 0 rgba(22,163,74,.6); }
    60%  { box-shadow: 0 0 0 12px rgba(22,163,74,0); }
    100% { box-shadow: 0 0 0 0 rgba(22,163,74,0); }
}
.tvr-ticker__body { min-width: 0; line-height: 1.35; }
.tvr-ticker__title {
    display: block;
    font-size: .68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .12em;
    color: #16a34a;
}
.tvr-ticker__text  { display: block; font-size: .92rem; color: var(--tvr-text); }
.tvr-ticker__text strong { color: var(--tvr-navy); }
.tvr-ticker__save {
    display: inline-block;
    background: var(--tvr-danger); color: #fff;
    padding: .05rem .35rem; border-radius: 4px;
    font-size: .72rem; font-weight: 800; margin-left: .15rem;
}
.tvr-ticker__time { display: block; font-size: .72rem; color: var(--tvr-muted); margin-top: .15rem; }
.tvr-ticker__cta {
    grid-column: 1 / -1;
    background: var(--tvr-grad, linear-gradient(135deg, var(--tvr-blue), var(--tvr-cyan)));
    color: #fff; font-size: .8rem; font-weight: 700;
    text-align: center; padding: .35rem; margin: .25rem -.85rem -.85rem;
    border-radius: 0 0 12px 12px;
}
.tvr-ticker__close {
    position: absolute; top: .35rem; right: .45rem;
    border: 0; background: rgba(0,0,0,.05); color: var(--tvr-muted);
    width: 22px; height: 22px; border-radius: 50%;
    font-size: 1rem; cursor: pointer; line-height: 1; padding: 0;
}
.tvr-ticker__close:hover { background: rgba(0,0,0,.12); color: var(--tvr-text); }
@media (max-width: 520px) {
    .tvr-ticker {
        left: .5rem; right: .5rem; bottom: 5.25rem; width: auto;
        font-size: .85rem;
    }
}

/* ---------- Intro video ---------- */
.tvr-intro-video { padding: 1.25rem 0 0; }
.tvr-intro-video__inner { padding: 0 1.25rem; }
.tvr-intro-video__frame {
    position: relative;
    width: 100%; max-width: 900px; margin: 0 auto;
    aspect-ratio: 16 / 9;
    border-radius: 14px; overflow: hidden;
    box-shadow: 0 18px 40px rgba(7,27,51,.20);
    background: #000;
}
.tvr-intro-video__frame iframe,
.tvr-intro-video__frame video {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    border: 0;
}

/* ---------- Mobile sticky CTA ---------- */
.tvr-sticky {
    display: none;
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 140;
    background: #fff; border-top: 1px solid var(--tvr-border);
    box-shadow: 0 -10px 25px rgba(7,27,51,.10);
    padding: .55rem .85rem .55rem .75rem;
    min-height: 64px;
}
.tvr-sticky__slide {
    display: none;
    align-items: center; gap: .65rem;
    color: var(--tvr-text); text-decoration: none;
}
.tvr-sticky__slide.is-active { display: flex; }
.tvr-sticky__logo { width: 40px; height: 40px; object-fit: contain; flex: 0 0 auto; }
.tvr-sticky__body { flex: 1; min-width: 0; line-height: 1.2; }
.tvr-sticky__name { display: block; font-size: .92rem; color: var(--tvr-navy); }
.tvr-sticky__sub  { display: flex; gap: .35rem; align-items: baseline; font-size: .76rem; color: var(--tvr-muted); }
.tvr-sticky__price { font-weight: 800; color: var(--tvr-navy); font-size: .9rem; }
.tvr-sticky__save  { background:#dcfce7; color:#166534; font-weight:700; padding:.1rem .35rem; border-radius:999px; font-size:.7rem; }
.tvr-sticky__cta {
    background: var(--tvr-blue); color: #fff;
    padding: .55rem .8rem; border-radius: 8px; font-weight: 700; font-size: .82rem;
    flex: 0 0 auto;
}
.tvr-sticky__dots {
    position: absolute; left: 0; right: 0; top: -.6rem;
    display: flex; gap: .25rem; justify-content: center; pointer-events: none;
}
.tvr-sticky__dot {
    width: 6px; height: 6px; border-radius: 50%;
    background: rgba(11,37,71,.25); transition: background .15s, width .15s;
    pointer-events: auto; cursor: pointer;
}
.tvr-sticky__dot.is-active { background: var(--tvr-blue); width: 18px; border-radius: 999px; }

@media (max-width: 720px) {
    .tvr-sticky { display: block; }
    body { padding-bottom: 70px; } /* prevent footer overlap */
    .gdpr-banner { bottom: 5rem; } /* lift GDPR banner above sticky */
}

/* ---------- GDPR banner ---------- */
.gdpr-banner {
    position: fixed; left: 1rem; right: 1rem; bottom: 1rem; z-index: 200;
    background: #fff; color: var(--tvr-text);
    border: 1px solid var(--tvr-border); border-radius: 14px;
    box-shadow: 0 20px 50px rgba(7,27,51,.18);
    animation: gdpr-up .25s ease-out;
}
@keyframes gdpr-up { from { transform: translateY(20px); opacity: 0 } to { transform: none; opacity: 1 } }
.gdpr-banner__inner {
    display: flex; flex-wrap: wrap; align-items: center; gap: 1rem;
    padding: .9rem 1.1rem;
    max-width: var(--tvr-content-w); margin-inline: auto;
}
.gdpr-banner__text { margin: 0; flex: 1 1 320px; font-size: .85rem; line-height: 1.45; }
.gdpr-banner__text a { color: var(--tvr-blue); text-decoration: underline; }
.gdpr-banner__actions { display: flex; gap: .5rem; }
.gdpr-banner__btn { padding: .55rem 1rem; }
@media (max-width: 520px) {
    .gdpr-banner { left: .5rem; right: .5rem; bottom: .5rem; }
    .gdpr-banner__inner { padding: .75rem .9rem; }
    .gdpr-banner__actions { width: 100%; justify-content: stretch; }
    .gdpr-banner__btn { flex: 1; }
}
