/* ═══════════════════════════════════════════════════════
   Kártyaudvar — utilities.css
   sr-only, reveal animations, print
   ═══════════════════════════════════════════════════════ */

/* ── Screen Reader Only ────────────────────────────── */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* ── Reveal Animation ──────────────────────────────── */
.kv-reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 600ms var(--ease),
                transform 600ms var(--ease);
}

.kv-reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Staggered children */
.kv-reveal-stagger > .kv-reveal:nth-child(2) { transition-delay: 80ms; }
.kv-reveal-stagger > .kv-reveal:nth-child(3) { transition-delay: 160ms; }
.kv-reveal-stagger > .kv-reveal:nth-child(4) { transition-delay: 240ms; }
.kv-reveal-stagger > .kv-reveal:nth-child(5) { transition-delay: 320ms; }
.kv-reveal-stagger > .kv-reveal:nth-child(6) { transition-delay: 400ms; }

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
    .kv-reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* ── Text Alignment ────────────────────────────────── */
.text-center { text-align: center; }
.text-left   { text-align: left; }

/* ── Margin Helpers ────────────────────────────────── */
.mt-0  { margin-top: 0; }
.mt-16 { margin-top: var(--s-16); }
.mt-24 { margin-top: var(--s-24); }
.mt-32 { margin-top: var(--s-32); }
.mt-48 { margin-top: var(--s-48); }
.mb-0  { margin-bottom: 0; }
.mb-16 { margin-bottom: var(--s-16); }
.mb-24 { margin-bottom: var(--s-24); }
.mb-32 { margin-bottom: var(--s-32); }
.mb-48 { margin-bottom: var(--s-48); }

/* ── Print ─────────────────────────────────────────── */
@media print {
    .kv-header,
    .kv-footer,
    .kv-age-gate,
    .kv-hamburger,
    .kv-mobile-menu { display: none !important; }

    body {
        background: #fff;
        color: #000;
        font-size: 12pt;
    }

    a { color: #000; text-decoration: underline; }

    .kv-card {
        border: 1px solid #ccc;
        box-shadow: none;
        break-inside: avoid;
    }

    .kv-hero--split { min-height: auto; }

    .kv-section { padding: 1rem 0; }
}
