/*
Theme Name: Hello Elementor Child — PRF 2026
Theme URI: https://peniscolaremember.com
Description: Child theme de Hello Elementor con design system propio para Peñíscola Remember Festival 2026.
Author: PRF
Version: 2.0.0
Template: hello-elementor
Text Domain: hello-elementor-child
*/

/* =================================================================
   ÍNDICE COMPLETO
   -----------------------------------------------------------------
   01.  TOKENS                  (variables, prefijo único --prf-*)
   02.  RESET / BASE
   03.  TIPOGRAFÍA
   04.  CONTAINERS Y SECCIONES
   05.  UTILITIES
   06.  BOTONES (sistema único)
   07.  BADGES, CHIPS, TAGS
   08.  ANIMACIONES (keyframes globales)
   09.  FORMAS DECORATIVAS
   10.  TICKER SUPERIOR
   11.  HEADER / NAVBAR
   12.  WOOCOMMERCE — listado productos (archive)
   13.  WOOCOMMERCE — formularios genéricos
   14.  FOOTER
   15.  ELEMENTOR — overrides
   16.  ACCESIBILIDAD Y RESPONSIVE FINAL

   --- PÁGINAS ---
   20.  PORTADA / HOME
   21.  LINEUP
   22.  UBICACIÓN
   23.  PREGUNTAS / FAQ
   24.  CONTACTO
   25.  EMBAJADORES (página pública)
   26.  ENTRADAS
   27.  PÁGINAS LEGALES
   28.  CARRITO
   29.  CHECKOUT
   30.  THANK YOU
   31.  MI CUENTA — wrapper + sidebar + dashboard
   32.  MI CUENTA — endpoints (orders, view-order, edit-account, embajadores)

   ================================================================= */


/* =================================================================
   01. TOKENS — Variables (UN ÚNICO NAMESPACE)
   ================================================================= */
:root {

    /* ========== COLORES PRIMARIOS ========== */
    --prf-white: #ffffff;
    --prf-ink: #0a1628;
    --prf-ink-soft: #1e293b;
    --prf-muted: #64748b;

    /* Acentos de marca */
    --prf-pink: #ff2d9b;
    --prf-pink-soft: #ff6cc1;
    --prf-purple: #8b2fc9;
    --prf-purple-deep: #6b21a8;
    --prf-yellow: #ffd600;
    --prf-yellow-soft: #fde047;
    --prf-coral: #ff6b6b;

    /* Sky scale (azul cielo) */
    --prf-sky-50:  #f0f9ff;
    --prf-sky-100: #e0f2fe;
    --prf-sky-200: #bae6fd;
    --prf-sky-300: #7dd3fc;
    --prf-sky-400: #38bdf8;
    --prf-sky-500: #0ea5e9;
    --prf-sky-600: #0284c7;
    --prf-sky-700: #0369a1;
    --prf-sky-800: #075985;
    --prf-sky-900: #082f49;

    /* Estados */
    --prf-green: #10b981;
    --prf-green-light: #4ade80;
    --prf-red: #dc2626;
    --prf-red-light: #f87171;
    --prf-amber: #f59e0b;

    /* ========== TOKENS SEMÁNTICOS ========== */
    /* Backgrounds por contexto */
    --prf-bg-light: var(--prf-white);
    --prf-bg-soft: var(--prf-sky-50);
    --prf-bg-dark: var(--prf-ink);
    --prf-bg-darker: #050d1a;

    /* Text por contexto */
    --prf-text-on-light: var(--prf-ink);
    --prf-text-on-light-muted: var(--prf-muted);
    --prf-text-on-dark: var(--prf-white);
    --prf-text-on-dark-muted: var(--prf-sky-300);

    /* Borders por contexto */
    --prf-border-light: var(--prf-sky-100);
    --prf-border-dark: rgba(255, 255, 255, 0.08);
    --prf-border-dark-strong: rgba(255, 255, 255, 0.15);

    /* Glass surfaces (cards sobre fondo dark) */
    --prf-glass-dark: linear-gradient(135deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0.02) 100%);
    --prf-glass-dark-hover: linear-gradient(135deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0.03) 100%);

    /* ========== TIPOGRAFÍA ========== */
    --prf-font-body: 'Outfit', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --prf-font-display: 'Kanit', sans-serif;
    --prf-font-mono: 'Space Mono', 'Courier New', monospace;

    /* Tamaños fluidos */
    --prf-fs-xs: 0.75rem;
    --prf-fs-sm: 0.85rem;
    --prf-fs-base: 1rem;
    --prf-fs-md: 1.125rem;
    --prf-fs-lg: 1.25rem;
    --prf-fs-xl: clamp(1.5rem, 2.5vw, 2rem);
    --prf-fs-2xl: clamp(2rem, 5vw, 3.5rem);
    --prf-fs-3xl: clamp(2.5rem, 7vw, 5rem);
    --prf-fs-hero: clamp(3rem, 9vw, 7rem);

    /* ========== ESPACIADOS ========== */
    --prf-space-1: 4px;
    --prf-space-2: 8px;
    --prf-space-3: 12px;
    --prf-space-4: 16px;
    --prf-space-5: 24px;
    --prf-space-6: 32px;
    --prf-space-7: 48px;
    --prf-space-8: 64px;
    --prf-space-9: 80px;
    --prf-space-10: 100px;

    /* ========== LAYOUT ========== */
    --prf-container-max: 1200px;
    --prf-container-narrow: 800px;
    --prf-section-pad-y: 100px;
    --prf-section-pad-y-mobile: 70px;

    /* ========== RADIUS ========== */
    --prf-radius-sm: 8px;
    --prf-radius-md: 12px;
    --prf-radius-lg: 20px;
    --prf-radius-xl: 28px;
    --prf-radius-pill: 100px;
    --prf-radius-full: 9999px;

    /* ========== SOMBRAS ========== */
    --prf-shadow-sm: 0 2px 8px rgba(14, 165, 233, 0.06);
    --prf-shadow-md: 0 10px 40px rgba(14, 165, 233, 0.08);
    --prf-shadow-lg: 0 20px 60px -10px rgba(14, 165, 233, 0.15);
    --prf-shadow-xl: 0 30px 80px -20px rgba(10, 22, 40, 0.25);
    --prf-shadow-pink: 0 10px 30px -10px rgba(255, 45, 155, 0.5);
    --prf-shadow-pink-lg: 0 20px 50px -10px rgba(255, 45, 155, 0.6);
    --prf-shadow-yellow: 0 20px 50px -15px rgba(255, 214, 0, 0.4);
    --prf-shadow-dark: 0 16px 40px rgba(0, 0, 0, 0.25);

    /* ========== GRADIENTES ========== */
    --prf-grad-pink: linear-gradient(135deg, var(--prf-pink) 0%, var(--prf-purple) 100%);
    --prf-grad-pink-h: linear-gradient(90deg, var(--prf-pink), var(--prf-purple), var(--prf-pink));
    --prf-grad-sunset: linear-gradient(135deg, var(--prf-pink) 0%, var(--prf-purple) 50%, var(--prf-sky-500) 100%);
    --prf-grad-sky: linear-gradient(180deg, var(--prf-white) 0%, var(--prf-sky-50) 30%, var(--prf-sky-100) 55%, var(--prf-sky-200) 75%, var(--prf-sky-300) 100%);
    --prf-grad-dark: linear-gradient(135deg, var(--prf-ink) 0%, var(--prf-ink-soft) 50%, var(--prf-purple-deep) 100%);
    --prf-grad-yellow: linear-gradient(135deg, var(--prf-yellow) 0%, var(--prf-amber) 100%);
    --prf-grad-text-light: linear-gradient(135deg, #fff 0%, var(--prf-yellow) 100%);

    /* ========== EASINGS ========== */
    --prf-ease: cubic-bezier(0.22, 1, 0.36, 1);
    --prf-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
    --prf-ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);

    /* ========== Z-INDEX ========== */
    --prf-z-ticker: 50;
    --prf-z-navbar: 100;
    --prf-z-overlay: 200;
    --prf-z-modal: 300;
    --prf-z-tooltip: 400;

    /* ========== ALIASES LEGACY (para no romper código que aún use sin prefijo) ========== */
    --white: var(--prf-white);
    --ink: var(--prf-ink);
    --ink-soft: var(--prf-ink-soft);
    --muted: var(--prf-muted);
    --pink: var(--prf-pink);
    --pink-soft: var(--prf-pink-soft);
    --purple: var(--prf-purple);
    --purple-deep: var(--prf-purple-deep);
    --yellow: var(--prf-yellow);
    --yellow-soft: var(--prf-yellow-soft);
    --coral: var(--prf-coral);
    --green: var(--prf-green);
    --red-error: var(--prf-red);
    --sky-50: var(--prf-sky-50);
    --sky-100: var(--prf-sky-100);
    --sky-200: var(--prf-sky-200);
    --sky-300: var(--prf-sky-300);
    --sky-400: var(--prf-sky-400);
    --sky-500: var(--prf-sky-500);
    --sky-700: var(--prf-sky-700);
    --sky-900: var(--prf-sky-900);
    --font-body: var(--prf-font-body);
    --font-display: var(--prf-font-display);
    --font-mono: var(--prf-font-mono);
    --fs-xs: var(--prf-fs-xs);
    --fs-sm: var(--prf-fs-sm);
    --fs-base: var(--prf-fs-base);
    --fs-md: var(--prf-fs-md);
    --fs-lg: var(--prf-fs-lg);
    --fs-xl: var(--prf-fs-xl);
    --fs-2xl: var(--prf-fs-2xl);
    --fs-3xl: var(--prf-fs-3xl);
    --fs-hero: var(--prf-fs-hero);
    --space-1: var(--prf-space-1);
    --space-2: var(--prf-space-2);
    --space-3: var(--prf-space-3);
    --space-4: var(--prf-space-4);
    --space-5: var(--prf-space-5);
    --space-6: var(--prf-space-6);
    --space-7: var(--prf-space-7);
    --space-8: var(--prf-space-8);
    --space-9: var(--prf-space-9);
    --space-10: var(--prf-space-10);
    --container-max: var(--prf-container-max);
    --container-narrow: var(--prf-container-narrow);
    --section-pad-y: var(--prf-section-pad-y);
    --section-pad-y-mobile: var(--prf-section-pad-y-mobile);
    --radius-sm: var(--prf-radius-sm);
    --radius-md: var(--prf-radius-md);
    --radius-lg: var(--prf-radius-lg);
    --radius-xl: var(--prf-radius-xl);
    --radius-pill: var(--prf-radius-pill);
    --radius-full: var(--prf-radius-full);
    --shadow-sm: var(--prf-shadow-sm);
    --shadow-md: var(--prf-shadow-md);
    --shadow-lg: var(--prf-shadow-lg);
    --shadow-xl: var(--prf-shadow-xl);
    --shadow-pink: var(--prf-shadow-pink);
    --shadow-pink-lg: var(--prf-shadow-pink-lg);
    --shadow-yellow: var(--prf-shadow-yellow);
    --grad-pink: var(--prf-grad-pink);
    --grad-pink-h: var(--prf-grad-pink-h);
    --grad-sunset: var(--prf-grad-sunset);
    --grad-sky: var(--prf-grad-sky);
    --grad-dark: var(--prf-grad-dark);
    --easing: var(--prf-ease);
    --easing-bounce: var(--prf-ease-bounce);
    --z-ticker: var(--prf-z-ticker);
    --z-navbar: var(--prf-z-navbar);
    --z-overlay: var(--prf-z-overlay);
    --z-modal: var(--prf-z-modal);
}


/* =================================================================
   02. RESET / BASE
   ================================================================= */
*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
}

body {
    font-family: var(--prf-font-body);
    font-weight: 400;
    background: var(--prf-bg-light);
    color: var(--prf-text-on-light);
    line-height: 1.6;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

img, svg, video {
    max-width: 100%;
    height: auto;
    display: block;
}

button {
    font-family: inherit;
    cursor: pointer;
    border: none;
    background: none;
}

input, textarea, select {
    font-family: inherit;
    font-size: inherit;
}

ul, ol {
    list-style: none;
}


/* =================================================================
   03. TIPOGRAFÍA
   ================================================================= */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: var(--prf-font-display);
    font-weight: 800;
    font-style: italic;
    color: var(--prf-text-on-light);
    line-height: 1.15;
    letter-spacing: -0.5px;
    margin: 0 0 0.5em 0;
}

h1, .h1 {
    font-size: var(--prf-fs-3xl);
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: -1.5px;
    line-height: 1;
}

h2, .h2 {
    font-size: var(--prf-fs-2xl);
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: -1px;
    line-height: 1.05;
}

h3, .h3 {
    font-size: var(--prf-fs-xl);
    font-weight: 800;
    letter-spacing: -0.5px;
}

h4, .h4 {
    font-size: var(--prf-fs-lg);
    font-weight: 700;
    font-style: normal;
}

h5, .h5 {
    font-size: var(--prf-fs-md);
    font-weight: 700;
    font-style: normal;
}

h6, .h6 {
    font-size: var(--prf-fs-base);
    font-weight: 700;
    font-style: normal;
}

p {
    margin: 0 0 1em 0;
}

a {
    color: var(--prf-pink);
    text-decoration: none;
    transition: color 0.2s ease;
}

a:hover {
    color: var(--prf-purple);
}

strong, b {
    font-weight: 700;
}

small {
    font-size: var(--prf-fs-sm);
}

/* Texto con gradiente */
.text-gradient,
.prf-text-gradient {
    background: var(--prf-grad-pink);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

.text-gradient-sunset,
.prf-text-gradient-sunset {
    background: var(--prf-grad-sunset);
    background-size: 200% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    animation: prfGradientShift 5s ease infinite;
}

.text-mono,
.prf-text-mono {
    font-family: var(--prf-font-mono);
    font-size: var(--prf-fs-xs);
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--prf-muted);
}


/* =================================================================
   04. CONTAINERS Y SECCIONES
   ================================================================= */
.prf-container {
    width: 100%;
    max-width: var(--prf-container-max);
    margin: 0 auto;
    padding: 0 var(--prf-space-5);
}

.prf-container-narrow {
    width: 100%;
    max-width: var(--prf-container-narrow);
    margin: 0 auto;
    padding: 0 var(--prf-space-5);
}

.prf-section {
    padding: var(--prf-section-pad-y) var(--prf-space-5);
    position: relative;
}

.prf-section-head {
    text-align: center;
    margin-bottom: var(--prf-space-8);
}

.prf-section-head h2 {
    margin-bottom: var(--prf-space-4);
}

.prf-section-eyebrow {
    display: inline-block;
    font-family: var(--prf-font-mono);
    font-size: var(--prf-fs-xs);
    text-transform: uppercase;
    letter-spacing: 2.5px;
    color: var(--prf-pink);
    margin-bottom: var(--prf-space-4);
    padding: 6px 14px;
    background: rgba(255, 45, 155, 0.08);
    border-radius: var(--prf-radius-pill);
    border: 1px solid rgba(255, 45, 155, 0.2);
}

.prf-section-lead {
    font-size: var(--prf-fs-md);
    color: var(--prf-muted);
    max-width: 600px;
    margin: 0 auto;
    line-height: 1.6;
}


/* =================================================================
   05. UTILITIES
   ================================================================= */
.prf-bg-sky    { background: var(--prf-grad-sky); }
.prf-bg-dark   { background: var(--prf-bg-dark); color: var(--prf-text-on-dark); }
.prf-bg-light  { background: var(--prf-bg-soft); }
.prf-bg-white  { background: var(--prf-white); }

.prf-text-center { text-align: center; }
.prf-text-left   { text-align: left; }
.prf-text-right  { text-align: right; }

.prf-flex        { display: flex; }
.prf-flex-center { display: flex; align-items: center; justify-content: center; }
.prf-flex-col    { display: flex; flex-direction: column; }
.prf-grid        { display: grid; }

.prf-gap-2 { gap: var(--prf-space-2); }
.prf-gap-4 { gap: var(--prf-space-4); }
.prf-gap-5 { gap: var(--prf-space-5); }
.prf-gap-6 { gap: var(--prf-space-6); }

.prf-hidden { display: none; }

.prf-sr-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;
}


/* =================================================================
   06. BOTONES — Sistema único consolidado
   -----------------------------------------------------------------
   Variantes:
     .prf-btn          → Pink/purple (primario default)
     .prf-btn-yellow   → Yellow (accion alternativa)
     .prf-btn-dark     → Ink → hover pink
     .prf-btn-ghost    → Glass sobre fondo claro
     .prf-btn-ghost-d  → Glass sobre fondo oscuro
   Tamaños:
     .prf-btn-sm       → Pequeño
     (default)         → Mediano
     .prf-btn-lg       → Grande
   ================================================================= */

.prf-btn,
.prf-btn-yellow,
.prf-btn-dark,
.prf-btn-ghost,
.prf-btn-ghost-d,
.prf-btn-pink {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    font-family: var(--prf-font-body);
    font-weight: 600;
    font-size: var(--prf-fs-sm);
    letter-spacing: 0.3px;
    padding: 14px 28px;
    border-radius: var(--prf-radius-pill);
    text-decoration: none;
    border: none;
    cursor: pointer;
    transition: transform 0.3s var(--prf-ease), box-shadow 0.3s var(--prf-ease), background 0.3s var(--prf-ease), color 0.3s var(--prf-ease);
    position: relative;
    overflow: hidden;
    white-space: nowrap;
    line-height: 1.2;
}

/* === PRIMARIO (pink/purple gradient) === */
.prf-btn,
.prf-btn-pink {
    background: var(--prf-grad-pink);
    color: var(--prf-white);
    box-shadow: var(--prf-shadow-pink);
}
.prf-btn:hover,
.prf-btn-pink:hover {
    color: var(--prf-white);
    transform: translateY(-3px);
    box-shadow: var(--prf-shadow-pink-lg);
}

/* === YELLOW === */
.prf-btn-yellow {
    background: var(--prf-grad-yellow);
    color: var(--prf-ink);
    box-shadow: var(--prf-shadow-yellow);
    font-weight: 700;
}
.prf-btn-yellow:hover {
    color: var(--prf-ink);
    transform: translateY(-2px);
    box-shadow: 0 25px 60px -15px rgba(255, 214, 0, 0.6);
}

/* === DARK (ink → hover pink) === */
.prf-btn-dark {
    background: var(--prf-ink);
    color: var(--prf-white);
    box-shadow: 0 10px 30px -10px rgba(10, 22, 40, 0.4);
}
.prf-btn-dark::before {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--prf-grad-pink);
    transform: scale(0);
    transform-origin: center;
    transition: transform 0.5s var(--prf-ease);
    border-radius: inherit;
}
.prf-btn-dark > * { position: relative; z-index: 1; }
.prf-btn-dark:hover::before { transform: scale(1.5); }
.prf-btn-dark:hover {
    color: var(--prf-white);
    transform: translateY(-3px);
    box-shadow: var(--prf-shadow-pink-lg);
}

/* === GHOST (sobre fondo claro) === */
.prf-btn-ghost {
    background: rgba(255, 255, 255, 0.6);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    color: var(--prf-ink);
    border: 1px solid rgba(186, 230, 253, 0.7);
}
.prf-btn-ghost:hover {
    background: var(--prf-white);
    color: var(--prf-pink);
    transform: translateY(-2px);
    box-shadow: var(--prf-shadow-md);
}

/* === GHOST sobre fondo oscuro === */
.prf-btn-ghost-d {
    background: rgba(255, 255, 255, 0.08);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    color: var(--prf-white);
    border: 1px solid rgba(255, 255, 255, 0.15);
}
.prf-btn-ghost-d:hover {
    background: rgba(255, 255, 255, 0.15);
    border-color: var(--prf-yellow);
    color: var(--prf-yellow);
    transform: translateY(-2px);
}

/* === Tamaños === */
.prf-btn-sm { padding: 10px 20px; font-size: var(--prf-fs-xs); }
.prf-btn-lg { padding: 16px 32px; font-size: var(--prf-fs-base); }


/* =================================================================
   07. BADGES, CHIPS Y TAGS
   ================================================================= */
.prf-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--prf-font-mono);
    font-size: var(--prf-fs-xs);
    text-transform: uppercase;
    letter-spacing: 1.5px;
    padding: 6px 14px;
    border-radius: var(--prf-radius-pill);
    line-height: 1.2;
}

.prf-badge-pink {
    background: rgba(255, 45, 155, 0.08);
    color: var(--prf-pink);
    border: 1px solid rgba(255, 45, 155, 0.2);
}

.prf-badge-yellow {
    background: var(--prf-yellow);
    color: var(--prf-ink);
    font-weight: 700;
}

.prf-badge-dark {
    background: var(--prf-ink);
    color: var(--prf-white);
}

.prf-badge-glass {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: var(--prf-yellow);
    font-weight: 600;
}

.prf-pulse-dot {
    width: 8px; height: 8px;
    background: var(--prf-pink);
    border-radius: 50%;
    box-shadow: 0 0 10px var(--prf-pink);
    animation: prfPulseDot 2s ease-in-out infinite;
    flex-shrink: 0;
}


/* =================================================================
   08. ANIMACIONES — Keyframes globales (consolidadas)
   ================================================================= */
@keyframes prfFadeUp {
    from { opacity: 0; transform: translateY(30px); }
    to   { opacity: 1; transform: translateY(0); }
}

@keyframes prfFadeIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}

@keyframes prfGradientShift {
    0%, 100% { background-position: 0% 50%; }
    50%      { background-position: 100% 50%; }
}

@keyframes prfPulseDot {
    0%, 100% { opacity: 1; transform: scale(1); }
    50%      { opacity: 0.4; transform: scale(1.3); }
}

@keyframes prfPulseRing {
    0%, 100% { box-shadow: 0 0 0 0 rgba(255, 214, 0, 0.6); }
    50%      { box-shadow: 0 0 0 8px rgba(255, 214, 0, 0); }
}

@keyframes prfFloat {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50%      { transform: translate(20px, -30px) scale(1.05); }
}

@keyframes prfFloatBig {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50%      { transform: translate(40px, -50px) scale(1.1); }
}

@keyframes prfFloatShape {
    0%, 100% { transform: translate(0, 0) rotate(0deg); }
    50%      { transform: translate(20px, -50px) rotate(20deg); }
}

@keyframes prfFloatShape2 {
    0%, 100% { transform: rotate(45deg) translate(0, 0); }
    50%      { transform: rotate(70deg) translate(-30px, -40px); }
}

@keyframes prfSunPulse {
    0%, 100% { transform: scale(1) translateY(0); opacity: 0.9; }
    50%      { transform: scale(1.15) translateY(-20px); opacity: 1; }
}

@keyframes prfOrbFloat {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50%      { transform: translate(120px, -80px) scale(1.1); }
}

@keyframes prfWaveFlow {
    0%, 100% { transform: translateX(0); }
    50%      { transform: translateX(-25px); }
}

@keyframes prfTickerScroll {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

@keyframes prfMarqueeScroll {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

@keyframes prfMarqueeScrollReverse {
    0%   { transform: translateX(-50%); }
    100% { transform: translateX(0); }
}

@keyframes prfCartBump {
    0%   { transform: scale(1); }
    25%  { transform: scale(1.4) rotate(-10deg); }
    50%  { transform: scale(0.95) rotate(5deg); }
    75%  { transform: scale(1.15) rotate(-3deg); }
    100% { transform: scale(1) rotate(0); }
}

@keyframes prfBtnShine {
    0%, 100% { background-position: 0% 50%; }
    50%      { background-position: 100% 50%; }
}

@keyframes prfScrollDot {
    0%   { transform: translateY(0); opacity: 1; }
    50%  { transform: translateY(12px); opacity: 0.4; }
    100% { transform: translateY(0); opacity: 1; }
}

/* Aliases legacy (por si algún HTML aún usa los nombres antiguos) */
@keyframes fadeUp   { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }
@keyframes fadeIn   { from { opacity: 0; } to { opacity: 1; } }
@keyframes gradientShift { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }
@keyframes pulseDot { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.4; transform: scale(1.3); } }
@keyframes orbFloat { 0%, 100% { transform: translate(0, 0) scale(1); } 50% { transform: translate(120px, -80px) scale(1.1); } }
@keyframes floatShape { 0%, 100% { transform: translate(0, 0) rotate(0deg); } 50% { transform: translate(20px, -50px) rotate(20deg); } }
@keyframes floatShape2 { 0%, 100% { transform: rotate(45deg) translate(0, 0); } 50% { transform: rotate(70deg) translate(-30px, -40px); } }
@keyframes sunPulse { 0%, 100% { transform: scale(1) translateY(0); opacity: 0.9; } 50% { transform: scale(1.15) translateY(-20px); opacity: 1; } }
@keyframes waveFlow { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(-25px); } }
@keyframes tickerScroll { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
@keyframes marqueeScroll { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
@keyframes marqueeScrollReverse { 0% { transform: translateX(-50%); } 100% { transform: translateX(0); } }
@keyframes cartBump { 0% { transform: scale(1); } 25% { transform: scale(1.4) rotate(-10deg); } 50% { transform: scale(0.95) rotate(5deg); } 75% { transform: scale(1.15) rotate(-3deg); } 100% { transform: scale(1) rotate(0); } }

/* Helpers */
.prf-animate-fade-up   { animation: prfFadeUp 0.8s var(--prf-ease) both; }
.prf-animate-fade-in   { animation: prfFadeIn 0.8s var(--prf-ease) both; }
.prf-animate-delay-1   { animation-delay: 0.1s; }
.prf-animate-delay-2   { animation-delay: 0.2s; }
.prf-animate-delay-3   { animation-delay: 0.3s; }
.prf-animate-delay-4   { animation-delay: 0.4s; }
.prf-animate-delay-5   { animation-delay: 0.5s; }


/* =================================================================
   09. FORMAS DECORATIVAS Y FONDOS
   ================================================================= */
.prf-decor-sun {
    position: absolute;
    width: 600px; height: 600px;
    background: radial-gradient(circle,
        rgba(255, 214, 0, 0.5) 0%,
        rgba(255, 214, 0, 0.15) 30%,
        transparent 65%);
    z-index: -1;
    animation: prfSunPulse 6s ease-in-out infinite;
    pointer-events: none;
    filter: blur(20px);
}

.prf-decor-pink-orb {
    position: absolute;
    width: 500px; height: 500px;
    background: radial-gradient(circle, rgba(255, 45, 155, 0.25) 0%, transparent 70%);
    z-index: -1;
    animation: prfOrbFloat 14s ease-in-out infinite;
    filter: blur(30px);
    pointer-events: none;
}

.prf-decor-shape {
    position: absolute;
    pointer-events: none;
    z-index: 0;
}

.prf-shape-circle-pink {
    width: 56px; height: 56px;
    border: 3px solid var(--prf-pink);
    border-radius: 50%;
    animation: prfFloatShape 12s ease-in-out infinite;
    box-shadow: 0 0 40px rgba(255, 45, 155, 0.5);
}

.prf-shape-square-yellow {
    width: 44px; height: 44px;
    background: var(--prf-yellow);
    border-radius: 12px;
    transform: rotate(45deg);
    animation: prfFloatShape2 16s ease-in-out infinite;
    box-shadow: 0 0 50px rgba(255, 214, 0, 0.7);
}

.prf-shape-diamond-purple {
    width: 52px; height: 52px;
    border: 3px solid var(--prf-purple);
    transform: rotate(45deg);
    animation: prfFloatShape 14s ease-in-out infinite reverse;
    box-shadow: 0 0 35px rgba(139, 47, 201, 0.5);
}

.prf-shape-circle-sky {
    width: 36px; height: 36px;
    background: var(--prf-sky-400);
    border-radius: 50%;
    animation: prfFloatShape 18s ease-in-out infinite;
    box-shadow: 0 0 40px var(--prf-sky-400);
}
/* =================================================================
   10. TICKER SUPERIOR
   ================================================================= */
.prf-ticker {
    background: var(--prf-ink);
    color: var(--prf-white);
    padding: 12px 0;
    overflow: hidden;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    z-index: var(--prf-z-ticker);
    position: relative;
}

.prf-ticker-track {
    display: flex;
    gap: 60px;
    white-space: nowrap;
    animation: prfTickerScroll 30s linear infinite;
    width: max-content;
}

.prf-ticker-item {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    font-family: var(--prf-font-mono);
    font-size: var(--prf-fs-xs);
    letter-spacing: 1px;
    text-transform: uppercase;
}

.prf-ticker-item strong {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    color: var(--prf-yellow);
    letter-spacing: 0.5px;
}


/* =================================================================
   11. HEADER / NAVBAR
   ================================================================= */
.prf-navbar {
    position: sticky;
    top: 0;
    z-index: var(--prf-z-navbar);
    padding: 18px 20px;
    display: flex;
    justify-content: center;
    pointer-events: none;
}

.prf-navbar-inner {
    pointer-events: auto;
    padding: 12px 16px 12px 22px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 32px;
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(28px) saturate(200%);
    -webkit-backdrop-filter: blur(28px) saturate(200%);
    border: 1px solid rgba(186, 230, 253, 0.7);
    border-radius: var(--prf-radius-pill);
    box-shadow: 0 20px 60px -10px rgba(14, 165, 233, 0.15),
                inset 0 1px 0 0 rgba(255, 255, 255, 0.6);
    width: min(100%, 1000px);
    transition: box-shadow 0.4s var(--prf-ease);
}

.prf-navbar.is-scrolled .prf-navbar-inner {
    box-shadow: 0 25px 70px -10px rgba(14, 165, 233, 0.25),
                inset 0 1px 0 0 rgba(255, 255, 255, 0.6);
}

/* Logo */
.prf-nav-logo-img {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    height: 40px;
}

.prf-nav-logo-img img {
    height: 100%;
    width: auto;
    max-height: 40px;
    transition: transform 0.3s var(--prf-ease);
}

.prf-nav-logo-img:hover img {
    transform: scale(1.05);
}

/* Menú central */
.prf-nav-links {
    display: flex;
    gap: 28px;
    align-items: center;
}

.prf-nav-links a {
    color: var(--prf-ink);
    text-decoration: none;
    font-size: 0.82rem;
    font-weight: 500;
    letter-spacing: 0.3px;
    position: relative;
    padding: 6px 0;
    transition: color 0.2s;
}

.prf-nav-links a::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: 0;
    width: 0;
    height: 2px;
    background: var(--prf-grad-pink);
    border-radius: 2px;
    transition: all 0.3s var(--prf-ease);
    transform: translateX(-50%);
}

.prf-nav-links a:hover,
.prf-nav-links a.active,
.prf-nav-links .current-menu-item a {
    color: var(--prf-pink);
}

.prf-nav-links a:hover::after,
.prf-nav-links a.active::after,
.prf-nav-links .current-menu-item a::after {
    width: 100%;
}

/* Acciones derecha */
.prf-nav-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.prf-nav-icon-btn {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: transparent;
    color: var(--prf-ink);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s var(--prf-ease);
    border: 1.5px solid transparent;
}

.prf-nav-icon-btn:hover {
    background: var(--prf-sky-50);
    border-color: var(--prf-sky-200);
    color: var(--prf-pink);
}

/* Cuenta dropdown */
.prf-nav-account {
    position: relative;
}

.prf-nav-dropdown {
    position: absolute;
    top: calc(100% + 16px);
    right: 0;
    width: 240px;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(28px) saturate(200%);
    -webkit-backdrop-filter: blur(28px) saturate(200%);
    border: 1px solid rgba(186, 230, 253, 0.7);
    border-radius: var(--prf-radius-md);
    box-shadow: var(--prf-shadow-xl);
    padding: 8px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px) scale(0.95);
    transition: all 0.3s var(--prf-ease);
    z-index: var(--prf-z-overlay);
}

.prf-nav-dropdown::before {
    content: '';
    position: absolute;
    top: -16px;
    left: 0;
    right: 0;
    height: 16px;
}

.prf-nav-account:hover .prf-nav-dropdown,
.prf-nav-account:focus-within .prf-nav-dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0) scale(1);
}

.prf-nav-dropdown-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 14px;
    color: var(--prf-ink);
    text-decoration: none;
    font-size: var(--prf-fs-sm);
    font-weight: 500;
    border-radius: var(--prf-radius-sm);
    transition: all 0.2s;
}

.prf-nav-dropdown-link:hover {
    background: var(--prf-sky-50);
    color: var(--prf-pink);
    transform: translateX(2px);
}

.prf-nav-dropdown-link svg {
    color: var(--prf-muted);
    transition: color 0.2s;
    flex-shrink: 0;
}

.prf-nav-dropdown-link:hover svg {
    color: var(--prf-pink);
}

.prf-nav-dropdown-logout {
    color: var(--prf-red);
}

.prf-nav-dropdown-logout:hover {
    background: rgba(220, 38, 38, 0.08);
    color: var(--prf-red);
}

.prf-nav-dropdown-logout:hover svg {
    color: var(--prf-red);
}

.prf-nav-dropdown-sep {
    border: none;
    border-top: 1px solid var(--prf-sky-100);
    margin: 6px 0;
}

/* Show/hide según login */
.prf-nav-dropdown-user { display: none; }
.logged-in .prf-nav-dropdown-guest { display: none; }
.logged-in .prf-nav-dropdown-user { display: block; }

/* CTA principal navbar */
.prf-nav-cta {
    background: var(--prf-ink);
    color: var(--prf-white);
    padding: 11px 22px;
    border-radius: var(--prf-radius-pill);
    font-weight: 600;
    font-size: 0.82rem;
    letter-spacing: 0.3px;
    text-decoration: none;
    transition: all 0.3s var(--prf-ease);
    white-space: nowrap;
    position: relative;
    overflow: hidden;
}

.prf-nav-cta::before {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--prf-grad-pink);
    transform: translateY(100%);
    transition: transform 0.4s var(--prf-ease);
}

.prf-nav-cta > * {
    position: relative;
    z-index: 1;
}

.prf-nav-cta:hover {
    color: var(--prf-white);
    transform: scale(1.04);
    box-shadow: 0 10px 30px -5px rgba(255, 45, 155, 0.5);
}

.prf-nav-cta:hover::before {
    transform: translateY(0);
}

/* Carrito */
.prf-nav-cart {
    position: relative;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: transparent;
    color: var(--prf-ink);
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: all 0.3s var(--prf-ease);
    border: 1.5px solid transparent;
}

.prf-nav-cart:hover {
    background: var(--prf-sky-50);
    border-color: var(--prf-sky-200);
    color: var(--prf-pink);
}

.prf-nav-cart-count {
    position: absolute;
    top: -4px;
    right: -4px;
    min-width: 20px;
    height: 20px;
    padding: 0 5px;
    background: var(--prf-grad-pink);
    color: var(--prf-white);
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    font-size: 11px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 12px -2px rgba(255, 45, 155, 0.6);
    border: 2px solid var(--prf-white);
    transition: all 0.3s var(--prf-ease-bounce);
    line-height: 1;
}

.prf-nav-cart-count[data-count="0"] {
    opacity: 0;
    transform: scale(0);
}

.prf-nav-cart-count.is-bumped {
    animation: prfCartBump 0.6s var(--prf-ease-bounce);
}

.prf-nav-cart:hover .prf-nav-cart-count:not([data-count="0"]) {
    transform: scale(1.1);
}

/* Responsive header */
@media (max-width: 900px) {
    .prf-nav-cta { padding: 10px 18px; font-size: var(--prf-fs-xs); }
}

@media (max-width: 768px) {
    .prf-nav-links { display: none; }
    .prf-navbar-inner { gap: 12px; padding: 10px 12px 10px 16px; }
    .prf-nav-actions { gap: 4px; }
    .prf-nav-cta { padding: 9px 14px; font-size: 0.72rem; }
    .prf-nav-icon-btn,
    .prf-nav-cart { width: 38px; height: 38px; }
    .prf-nav-logo-img { height: 32px; }
    .prf-nav-logo-img img { max-height: 32px; }
}

@media (max-width: 480px) {
    .prf-navbar { padding: 12px; }
    .prf-nav-cta span { display: none; }
    .prf-nav-cta {
        width: 38px;
        height: 38px;
        padding: 0;
        border-radius: 50%;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 9l10 5 10-5-10-5-10 5z'/%3E%3Cpath d='M2 9v6l10 5 10-5V9'/%3E%3C/svg%3E");
        background-position: center;
        background-repeat: no-repeat;
    }
    .prf-nav-dropdown {
        right: -50px;
        width: calc(100vw - 40px);
        max-width: 280px;
    }
}


/* =================================================================
   12. WOOCOMMERCE — Listado productos (archive shop / categoría)
   ================================================================= */
.woocommerce ul.products,
.woocommerce-page ul.products {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: var(--prf-space-5) !important;
    list-style: none;
    padding: 0;
    margin: 0 0 var(--prf-space-7) 0;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after {
    display: none !important;
    content: none !important;
}

@media (max-width: 1024px) {
    .woocommerce ul.products,
    .woocommerce-page ul.products { grid-template-columns: repeat(2, 1fr) !important; }
}

@media (max-width: 600px) {
    .woocommerce ul.products,
    .woocommerce-page ul.products { grid-template-columns: 1fr !important; gap: var(--prf-space-4) !important; }
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
    padding: var(--prf-space-6) var(--prf-space-5) !important;
    background: var(--prf-white);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-lg);
    box-shadow: var(--prf-shadow-sm);
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    transition: all 0.4s var(--prf-ease);
    position: relative;
    overflow: hidden;
}

.woocommerce ul.products li.product::before,
.woocommerce-page ul.products li.product::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    background: var(--prf-grad-pink);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.5s var(--prf-ease);
}

.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover {
    transform: translateY(-8px);
    box-shadow: var(--prf-shadow-xl);
    border-color: var(--prf-pink);
}

.woocommerce ul.products li.product:hover::before,
.woocommerce-page ul.products li.product:hover::before {
    transform: scaleX(1);
}

.woocommerce ul.products li.product .woocommerce-LoopProduct-link img {
    display: block !important;
    width: 100% !important;
    max-width: 220px !important;
    height: auto !important;
    margin: 0 auto var(--prf-space-4) auto !important;
    border-radius: var(--prf-radius-md) !important;
    transition: transform 0.4s var(--prf-ease);
}

.woocommerce ul.products li.product:hover .woocommerce-LoopProduct-link img {
    transform: scale(1.04);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-family: var(--prf-font-display) !important;
    font-style: italic !important;
    font-size: var(--prf-fs-xl) !important;
    font-weight: 800 !important;
    line-height: 1.15 !important;
    color: var(--prf-ink) !important;
    text-transform: uppercase !important;
    letter-spacing: -0.5px !important;
    margin: var(--prf-space-2) 0 var(--prf-space-4) 0 !important;
    padding: 0 !important;
}

.woocommerce ul.products li.product .price {
    font-family: var(--prf-font-display) !important;
    font-style: italic !important;
    font-size: clamp(1.8rem, 3vw, 2.4rem) !important;
    font-weight: 900 !important;
    background: var(--prf-grad-pink) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    color: transparent !important;
    margin: 0 0 var(--prf-space-4) 0 !important;
    display: block !important;
    line-height: 1 !important;
}

.woocommerce ul.products li.product .price .woocommerce-Price-amount {
    background: var(--prf-grad-pink);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.woocommerce ul.products li.product .price ins {
    background: transparent !important;
    text-decoration: none !important;
}

/* Selector cantidad archive */
.prf-archive-qty-wrap {
    margin: var(--prf-space-4) auto !important;
    display: flex;
    justify-content: center;
}

.prf-archive-qty-wrap .quantity {
    display: inline-flex !important;
    align-items: center;
    gap: 0;
    border: 2px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-sm);
    overflow: hidden;
    transition: border-color 0.2s;
}

.prf-archive-qty-wrap .quantity:focus-within {
    border-color: var(--prf-pink);
}

.prf-archive-qty-wrap .quantity input.qty {
    width: 60px !important;
    height: 44px !important;
    border: none !important;
    text-align: center !important;
    font-family: var(--prf-font-display) !important;
    font-size: var(--prf-fs-md) !important;
    font-weight: 800 !important;
    background: var(--prf-white) !important;
    color: var(--prf-ink) !important;
    -moz-appearance: textfield;
}

.prf-archive-qty-wrap .quantity input.qty::-webkit-outer-spin-button,
.prf-archive-qty-wrap .quantity input.qty::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.woocommerce ul.products li.product .button {
    width: 100% !important;
    background: var(--prf-ink) !important;
    color: var(--prf-white) !important;
    padding: 14px 20px !important;
    font-family: var(--prf-font-body) !important;
    font-size: var(--prf-fs-sm) !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    border-radius: var(--prf-radius-pill) !important;
    margin-top: var(--prf-space-3) !important;
    border: none !important;
    transition: all 0.3s var(--prf-ease);
    position: relative;
    overflow: hidden;
}

.woocommerce ul.products li.product .button::before {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--prf-grad-pink);
    transform: scale(0);
    transition: transform 0.5s var(--prf-ease);
    border-radius: var(--prf-radius-pill);
}

.woocommerce ul.products li.product .button:hover::before {
    transform: scale(1.5);
}

.woocommerce ul.products li.product .button:hover {
    color: var(--prf-white) !important;
    transform: translateY(-2px);
    box-shadow: var(--prf-shadow-pink);
}

.woocommerce ul.products li.product .button > * {
    position: relative;
    z-index: 1;
}

.woocommerce ul.products li.product .added_to_cart {
    display: block;
    margin-top: var(--prf-space-2);
    text-align: center;
    color: var(--prf-green);
    font-weight: 600;
    font-size: var(--prf-fs-xs);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.woocommerce ul.products li.product .star-rating,
.woocommerce ul.products li.product .onsale,
.woocommerce ul.products li.product .woocommerce-loop-category__title {
    display: none !important;
}

.term-description {
    background: var(--prf-sky-50) !important;
    border-left: 4px solid var(--prf-pink) !important;
    padding: var(--prf-space-4) var(--prf-space-5) !important;
    margin: 0 0 var(--prf-space-6) 0 !important;
    border-radius: var(--prf-radius-sm);
    font-size: var(--prf-fs-sm) !important;
    color: var(--prf-ink-soft) !important;
    font-style: normal !important;
    font-weight: 500 !important;
    line-height: 1.6;
}


/* =================================================================
   13. WOOCOMMERCE — Forms genéricos y mensajes
   ================================================================= */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text {
    padding: 12px 16px !important;
    border: 1.5px solid var(--prf-sky-100) !important;
    border-radius: var(--prf-radius-sm) !important;
    font-family: var(--prf-font-body) !important;
    font-size: var(--prf-fs-base) !important;
    transition: all 0.2s !important;
    background: var(--prf-white);
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
    border-color: var(--prf-pink) !important;
    box-shadow: 0 0 0 3px rgba(255, 45, 155, 0.1) !important;
    outline: none !important;
}

.woocommerce form .form-row label {
    font-weight: 500 !important;
    color: var(--prf-ink) !important;
    margin-bottom: 6px !important;
    display: block !important;
}

/* Mensajes Woo (versión clara default) */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
    border-radius: var(--prf-radius-md) !important;
    padding: var(--prf-space-4) var(--prf-space-5) !important;
    border: none !important;
    font-weight: 500;
}

.woocommerce-message {
    background: rgba(16, 185, 129, 0.1) !important;
    color: var(--prf-green) !important;
    border-left: 4px solid var(--prf-green) !important;
}

.woocommerce-info {
    background: rgba(14, 165, 233, 0.1) !important;
    color: var(--prf-sky-700) !important;
    border-left: 4px solid var(--prf-sky-500) !important;
}

.woocommerce-error {
    background: rgba(220, 38, 38, 0.08) !important;
    color: var(--prf-red) !important;
    border-left: 4px solid var(--prf-red) !important;
}


/* =================================================================
   14. FOOTER
   ================================================================= */
.prf-footer {
    background: var(--prf-ink);
    color: var(--prf-white);
    padding: var(--prf-space-9) var(--prf-space-5) var(--prf-space-6);
    position: relative;
    overflow: hidden;
}

.prf-footer::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 1px;
    background: var(--prf-grad-pink);
}

.prf-footer-logo {
    display: inline-block;
    margin-bottom: var(--prf-space-4);
}

.prf-footer-logo img {
    height: 50px;
    width: auto;
    transition: opacity 0.3s;
}

.prf-footer-logo:hover img {
    opacity: 0.8;
}

.prf-footer-tag {
    color: rgba(255, 255, 255, 0.6);
    font-size: var(--prf-fs-sm);
    line-height: 1.6;
    max-width: 320px;
}

.prf-footer-address {
    font-style: normal;
    font-size: var(--prf-fs-sm);
    color: rgba(255, 255, 255, 0.6);
    line-height: 1.7;
    margin-top: var(--prf-space-4);
}

.prf-footer-address strong {
    color: var(--prf-white);
    font-weight: 600;
}

.prf-footer-inner {
    max-width: var(--prf-container-max);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: var(--prf-space-7);
    margin-bottom: var(--prf-space-8);
}

.prf-footer-col h4 {
    font-family: var(--prf-font-body);
    font-style: normal;
    font-size: var(--prf-fs-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--prf-yellow);
    margin-bottom: var(--prf-space-4);
}

.prf-footer-col ul {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.prf-footer-col a {
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    font-size: var(--prf-fs-sm);
    transition: color 0.2s;
}

.prf-footer-col a:hover {
    color: var(--prf-pink);
}

.prf-footer-social {
    display: flex;
    gap: 10px;
    margin-top: var(--prf-space-5);
}

.prf-footer-social a {
    width: 40px; height: 40px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.08);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--prf-white);
    transition: all 0.3s var(--prf-ease);
}

.prf-footer-social a:hover {
    background: var(--prf-grad-pink);
    color: var(--prf-white);
    transform: translateY(-3px) scale(1.1);
    box-shadow: var(--prf-shadow-pink);
}

/* Sponsors */
.prf-footer-sponsors {
    max-width: var(--prf-container-max);
    margin: 0 auto var(--prf-space-9);
    padding-bottom: var(--prf-space-7);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.prf-sponsors-block {
    margin-bottom: var(--prf-space-8);
    text-align: center;
}

.prf-sponsors-block:last-child {
    margin-bottom: 0;
}

.prf-sponsors-label {
    font-family: var(--prf-font-mono);
    font-size: var(--prf-fs-xs);
    text-transform: uppercase;
    letter-spacing: 3px;
    color: var(--prf-yellow);
    margin-bottom: var(--prf-space-5);
    font-weight: 700;
}

.prf-sponsors-marquee {
    overflow: hidden;
    width: 100%;
    position: relative;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, black 8%, black 92%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0%, black 8%, black 92%, transparent 100%);
}

.prf-sponsors-track {
    display: flex;
    gap: 60px;
    align-items: center;
    width: max-content;
    animation: prfMarqueeScroll 35s linear infinite;
}

.prf-sponsors-track-reverse {
    animation: prfMarqueeScrollReverse 30s linear infinite;
}

.prf-sponsors-marquee:hover .prf-sponsors-track {
    animation-play-state: paused;
}

.prf-sponsors-track a {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 120px;
    padding: 0 10px;
    transition: transform 0.3s var(--prf-ease);
}

.prf-sponsors-track a:hover {
    transform: scale(1.1);
}

.prf-sponsors-track img {
    max-height: 120px;
    width: auto;
    opacity: 0.85;
    filter: brightness(1.05);
    transition: opacity 0.2s;
}

.prf-sponsors-track a:hover img {
    opacity: 1;
}

.prf-sponsors-block-subv {
    text-align: center;
}

.prf-sponsors-institutional {
    background: var(--prf-white);
    padding: var(--prf-space-5) var(--prf-space-7);
    border-radius: var(--prf-radius-md);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 8px 24px -10px rgba(0, 0, 0, 0.3);
}

.prf-sponsors-institutional img {
    max-height: 70px;
    max-width: 100%;
    width: auto;
    opacity: 1;
    filter: none;
}

.prf-footer-bottom {
    max-width: var(--prf-container-max);
    margin: 0 auto;
    padding-top: var(--prf-space-6);
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: var(--prf-fs-xs);
    color: rgba(255, 255, 255, 0.5);
    flex-wrap: wrap;
    gap: var(--prf-space-4);
}

.prf-footer-heart {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

@media (max-width: 900px) {
    .prf-footer-inner { grid-template-columns: 1fr 1fr; gap: var(--prf-space-6); }
    .prf-sponsors-label { font-size: 0.65rem; letter-spacing: 2px; }
    .prf-sponsors-track { gap: 40px; }
    .prf-sponsors-track img { max-height: 55px; }
    .prf-sponsors-track a { height: 55px; }
}

@media (max-width: 600px) {
    .prf-footer { padding: var(--prf-space-7) var(--prf-space-4) var(--prf-space-5); }
    .prf-footer-inner { grid-template-columns: 1fr; }
    .prf-sponsors-block { margin-bottom: var(--prf-space-7); }
    .prf-sponsors-track { gap: 30px; animation-duration: 25s; }
    .prf-sponsors-track-reverse { animation-duration: 22s; }
    .prf-sponsors-track img { max-height: 45px; }
    .prf-sponsors-track a { height: 45px; }
    .prf-sponsors-institutional { padding: var(--prf-space-4) var(--prf-space-5); }
    .prf-sponsors-institutional img { max-height: 50px; }
    .prf-footer-bottom { flex-direction: column; text-align: center; gap: 8px; }
}


/* =================================================================
   15. ELEMENTOR — Overrides puntuales
   ================================================================= */
.elementor-widget-shortcode .woocommerce ul.products,
.elementor-widget-shortcode .woocommerce-page ul.products {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: var(--prf-space-5) !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.elementor-widget-shortcode .woocommerce ul.products li.product {
    width: 100% !important;
    float: none !important;
    margin-right: 0 !important;
    clear: none !important;
}

@media (max-width: 1024px) {
    .elementor-widget-shortcode .woocommerce ul.products,
    .elementor-widget-shortcode .woocommerce-page ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 600px) {
    .elementor-widget-shortcode .woocommerce ul.products,
    .elementor-widget-shortcode .woocommerce-page ul.products {
        grid-template-columns: 1fr !important;
    }
}

.elementor h1, .elementor h2, .elementor h3,
.elementor h4, .elementor h5, .elementor h6 {
    font-family: var(--prf-font-display);
}


/* =================================================================
   16. ACCESIBILIDAD Y RESPONSIVE FINAL
   ================================================================= */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

@media (max-width: 768px) {
    :root {
        --prf-section-pad-y: 70px;
        --section-pad-y: 70px;
    }
}

@media (max-width: 480px) {
    .prf-section { padding: var(--prf-section-pad-y-mobile) var(--prf-space-4); }
    .prf-container { padding: 0 var(--prf-space-4); }
}

*:focus-visible {
    outline: 3px solid var(--prf-pink);
    outline-offset: 2px;
    border-radius: var(--prf-radius-sm);
}

::selection {
    background: var(--prf-pink);
    color: var(--prf-white);
}

::-moz-selection {
    background: var(--prf-pink);
    color: var(--prf-white);
}

::-webkit-scrollbar {
    width: 12px;
    height: 12px;
}

::-webkit-scrollbar-track {
    background: var(--prf-sky-50);
}

::-webkit-scrollbar-thumb {
    background: var(--prf-sky-300);
    border-radius: var(--prf-radius-pill);
    border: 3px solid var(--prf-sky-50);
}

::-webkit-scrollbar-thumb:hover {
    background: var(--prf-pink);
}
/* =================================================================
   20. PORTADA / HOME — PRF 2026
   -----------------------------------------------------------------
   Bloques:
     20.1  HERO V4 — 2 cols (texto + cartel popup) + bottom row
     20.2  STICKY URGENCIA
     20.3  ENTRADAS preview (3 tickets)
     20.4  UBICACIÓN preview
     20.5  EMBAJADORES preview
     20.6  5º ANIVERSARIO (stats)
     20.7  QUICK-INFO cards
     20.8  TILT 3D utility
   ================================================================= */


/* =================================================================
   20.1  HERO V4 — 2 cols texto+cartel + bottom centrado
   ================================================================= */
.prf-hero {
    position: relative;
    min-height: 100vh;
    min-height: 100svh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    overflow: hidden;
    color: var(--prf-white);
    padding: clamp(80px, 10vh, 120px) clamp(20px, 4vw, 48px) clamp(160px, 18vh, 200px);
}

/* Vídeo de fondo */
.prf-hero-video-wrap {
    position: absolute;
    inset: 0;
    z-index: -2;
    overflow: hidden;
}

.prf-hero-video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.prf-hero-overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(10, 22, 40, 0.55) 0%, rgba(10, 22, 40, 0.7) 100%),
        radial-gradient(ellipse at top right, rgba(139, 47, 201, 0.45) 0%, transparent 60%),
        radial-gradient(ellipse at bottom left, rgba(255, 45, 155, 0.4) 0%, transparent 60%);
    z-index: 1;
}

/* Formas flotantes */
.prf-hero-shape {
    position: absolute;
    z-index: 0;
    pointer-events: none;
    opacity: 0.6;
}

.prf-hero-shape-1 {
    top: 15%; left: 6%;
    width: 56px; height: 56px;
    border: 3px solid var(--prf-pink);
    border-radius: 50%;
    animation: prfFloatShape 14s ease-in-out infinite;
    box-shadow: 0 0 40px rgba(255, 45, 155, 0.6);
}

.prf-hero-shape-2 {
    top: 25%; right: 8%;
    width: 44px; height: 44px;
    background: var(--prf-yellow);
    border-radius: 12px;
    transform: rotate(45deg);
    animation: prfFloatShape2 18s ease-in-out infinite reverse;
    box-shadow: 0 0 50px rgba(255, 214, 0, 0.7);
}

.prf-hero-shape-3 {
    bottom: 20%; left: 8%;
    width: 38px; height: 38px;
    background: var(--prf-sky-400);
    border-radius: 50%;
    animation: prfFloatShape 16s ease-in-out infinite;
    box-shadow: 0 0 40px var(--prf-sky-400);
}

/* Castillo y elementos legacy del hero v3 — ocultos */
.prf-hero-castle,
.prf-hero-content {
    display: none;
}

/* GRID 2 columnas */
.prf-hero-grid {
    position: relative;
    z-index: 4;
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.15fr 1fr;
    gap: clamp(32px, 5vw, 72px);
    align-items: center;
}

@media (max-width: 900px) {
    .prf-hero-grid {
        grid-template-columns: 1fr;
        gap: 32px;
        text-align: center;
    }
}

/* Columna texto */
.prf-hero-text {
    display: flex;
    flex-direction: column;
    gap: clamp(16px, 2.4vw, 24px);
    align-items: flex-start;
}

@media (max-width: 900px) {
    .prf-hero-text { align-items: center; }
}

.prf-hero-text > * { margin: 0; }

.prf-hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--prf-font-mono);
    font-size: var(--prf-fs-xs);
    text-transform: uppercase;
    letter-spacing: 2px;
    background: rgba(255, 255, 255, 0.12);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    padding: 10px 20px;
    border-radius: var(--prf-radius-pill);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: var(--prf-white);
    animation: prfFadeUp 0.8s var(--prf-ease) 0.1s both;
}

.prf-hero-badge .prf-pulse-dot {
    background: var(--prf-yellow);
    box-shadow: 0 0 12px var(--prf-yellow);
}

.prf-hero-title {
    font-family: var(--prf-font-display);
    font-weight: 900;
    font-style: italic;
    font-size: clamp(3rem, 9vw, 7.5rem);
    line-height: 0.9;
    letter-spacing: -3px;
    text-transform: uppercase;
    color: var(--prf-white);
    text-shadow: 0 4px 30px rgba(0, 0, 0, 0.3);
    animation: prfFadeUp 1s var(--prf-ease) 0.2s both;
}

.prf-hero-title-accent {
    background: linear-gradient(135deg, var(--prf-pink) 0%, var(--prf-yellow) 100%);
    background-size: 200% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    animation: prfGradientShift 5s ease infinite;
}

.prf-hero-sub {
    font-size: clamp(1rem, 1.6vw, 1.3rem);
    color: rgba(255, 255, 255, 0.85);
    line-height: 1.5;
    font-weight: 400;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
    animation: prfFadeUp 1s var(--prf-ease) 0.3s both;
}

.prf-hero-sub strong {
    color: var(--prf-yellow);
    font-weight: 700;
}

/* Columna cartel */
.prf-hero-poster-col {
    display: flex;
    align-items: center;
    justify-content: center;
}

@media (max-width: 900px) {
    .prf-hero-poster-col { display: none; }
}

.prf-hero-poster-btn {
    position: relative;
    display: block;
    width: 100%;
    max-width: 440px;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 18px;
    cursor: pointer;
    overflow: hidden;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45),
                0 0 0 1px rgba(255, 255, 255, 0.08);
    transition: transform 0.4s var(--prf-ease), box-shadow 0.4s;
}

.prf-hero-poster-btn img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 18px;
    transition: transform 0.6s var(--prf-ease);
}

.prf-hero-poster-btn:hover {
    transform: translateY(-6px) scale(1.02);
    box-shadow: 0 32px 80px rgba(0, 0, 0, 0.6),
                0 0 0 1px rgba(255, 214, 0, 0.4);
}

.prf-hero-poster-btn:hover img {
    transform: scale(1.05);
}

.prf-hero-poster-zoom {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: linear-gradient(135deg,
        rgba(255, 45, 155, 0.85) 0%,
        rgba(139, 47, 201, 0.85) 100%);
    color: var(--prf-white);
    font-family: var(--prf-font-mono);
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    opacity: 0;
    transition: opacity 0.3s;
    border-radius: 18px;
}

.prf-hero-poster-zoom svg {
    width: 36px;
    height: 36px;
}

.prf-hero-poster-btn:hover .prf-hero-poster-zoom,
.prf-hero-poster-btn:focus-visible .prf-hero-poster-zoom {
    opacity: 1;
}

/* BOTTOM ROW: countdown + CTAs centrados */
.prf-hero-bottom {
    position: relative;
    z-index: 4;
    width: 100%;
    max-width: 1280px;
    margin: clamp(32px, 5vh, 56px) auto 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: clamp(20px, 3vh, 32px);
}

/* Countdown */
.prf-hero-countdown {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(20px) saturate(180%);
    -webkit-backdrop-filter: blur(20px) saturate(180%);
    border: 1px solid rgba(255, 255, 255, 0.2);
    padding: 20px 32px;
    border-radius: var(--prf-radius-lg);
    box-shadow: 0 20px 60px -20px rgba(0, 0, 0, 0.5);
    animation: prfFadeUp 1s var(--prf-ease) 0.4s both;
    margin: 0;
}

.prf-countdown-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    min-width: 64px;
}

.prf-countdown-num {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1;
    color: var(--prf-yellow);
    text-shadow: 0 0 30px rgba(255, 214, 0, 0.4);
    font-variant-numeric: tabular-nums;
    letter-spacing: -1px;
}

.prf-countdown-label {
    font-family: var(--prf-font-mono);
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: rgba(255, 255, 255, 0.7);
}

.prf-countdown-sep {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    font-size: clamp(1.5rem, 3vw, 2.5rem);
    color: rgba(255, 255, 255, 0.4);
    margin-top: -16px;
}

/* CTAs hero */
.prf-hero-cta-row {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    justify-content: center;
    animation: prfFadeUp 1s var(--prf-ease) 0.5s both;
    margin: 0;
}

/* Scroll indicator */
.prf-hero-scroll {
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    width: 26px;
    height: 42px;
    border: 2px solid rgba(255, 255, 255, 0.4);
    border-radius: 14px;
    z-index: 5;
}

.prf-hero-scroll span {
    display: block;
    width: 4px;
    height: 8px;
    background: var(--prf-white);
    border-radius: 2px;
    margin: 6px auto;
    animation: prfScrollDot 1.8s ease-in-out infinite;
}

/* Olas SVG animadas */
.prf-hero-waves {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 120px;
    z-index: 3;
    pointer-events: none;
}

.prf-hero-waves svg {
    width: 100%;
    height: 100%;
    display: block;
}

.prf-wave-path-1 { animation: prfWaveFlow 8s ease-in-out infinite; }
.prf-wave-path-2 { animation: prfWaveFlow 11s ease-in-out infinite reverse; }

/* Responsive hero */
@media (max-width: 768px) {
    .prf-hero { padding: 100px 16px 100px; }
    .prf-hero-countdown { padding: 16px 20px; gap: 8px; }
    .prf-countdown-block { min-width: 50px; }
    .prf-countdown-sep { display: none; }
    .prf-hero-shape { display: none; }
    .prf-hero-waves { height: 80px; }
}

@media (max-width: 480px) {
    .prf-hero-countdown { gap: 4px; padding: 14px 16px; }
    .prf-countdown-block { min-width: 44px; }
    .prf-hero-scroll { display: none; }
}


/* =================================================================
   20.1.2  LIGHTBOX CARTEL
   ================================================================= */
.prf-hero-lightbox {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s;
}

.prf-hero-lightbox.is-open {
    opacity: 1;
    pointer-events: auto;
}

.prf-hero-lightbox-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(10, 22, 40, 0.92);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    cursor: zoom-out;
}

.prf-hero-lightbox-close {
    position: absolute;
    top: clamp(16px, 3vw, 32px);
    right: clamp(16px, 3vw, 32px);
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: var(--prf-white);
    border-radius: 50%;
    cursor: pointer;
    z-index: 2;
    transition: background 0.2s, transform 0.3s;
}

.prf-hero-lightbox-close:hover {
    background: rgba(255, 255, 255, 0.2);
    transform: rotate(90deg);
}

.prf-hero-lightbox-close svg {
    width: 22px;
    height: 22px;
}

.prf-hero-lightbox-content {
    position: relative;
    z-index: 1;
    max-width: 90vw;
    max-height: 90vh;
    display: flex;
    align-items: center;
    justify-content: center;
    transform: scale(0.92);
    opacity: 0;
    transition: transform 0.4s var(--prf-ease), opacity 0.4s;
}

.prf-hero-lightbox.is-open .prf-hero-lightbox-content {
    transform: scale(1);
    opacity: 1;
}

.prf-hero-lightbox-content img {
    max-width: 100%;
    max-height: 90vh;
    width: auto;
    height: auto;
    display: block;
    border-radius: 12px;
    box-shadow: 0 32px 80px rgba(0, 0, 0, 0.6);
}


/* =================================================================
   20.2  STICKY URGENCIA
   ================================================================= */
.prf-home-urgent {
    position: sticky;
    top: 110px;
    z-index: 90;
    margin: 0 20px;
    transition: opacity 0.4s, transform 0.4s;
}

.prf-home-urgent.is-closing {
    opacity: 0;
    transform: translateY(-10px);
}

.prf-home-urgent-inner {
    max-width: var(--prf-container-max);
    margin: 0 auto;
    background: linear-gradient(90deg, var(--prf-yellow) 0%, var(--prf-yellow-soft) 100%);
    color: var(--prf-ink);
    padding: 14px 20px 14px 60px;
    border-radius: var(--prf-radius-md);
    display: flex;
    align-items: center;
    gap: 16px;
    box-shadow: 0 12px 40px -10px rgba(255, 214, 0, 0.5);
    position: relative;
    flex-wrap: wrap;
}

.prf-home-urgent-icon {
    position: absolute;
    left: 18px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.4rem;
    animation: prfUrgentBounce 1s ease-in-out infinite;
}

@keyframes prfUrgentBounce {
    0%, 100% { transform: translateY(-50%) scale(1); }
    50%      { transform: translateY(-50%) scale(1.15); }
}

.prf-home-urgent-text {
    flex: 1;
    min-width: 200px;
    font-size: var(--prf-fs-sm);
    line-height: 1.4;
}

.prf-home-urgent-text strong {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    margin-right: 6px;
}

.prf-home-urgent-cta {
    background: var(--prf-ink);
    color: var(--prf-white);
    padding: 8px 18px;
    border-radius: var(--prf-radius-pill);
    font-weight: 700;
    font-size: var(--prf-fs-xs);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    text-decoration: none;
    transition: all 0.2s var(--prf-ease);
    white-space: nowrap;
}

.prf-home-urgent-cta:hover {
    background: var(--prf-pink);
    color: var(--prf-white);
    transform: translateY(-1px);
}

.prf-home-urgent-close {
    background: rgba(10, 22, 40, 0.1);
    border: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    font-size: 1.2rem;
    color: var(--prf-ink);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s;
    flex-shrink: 0;
}

.prf-home-urgent-close:hover {
    background: rgba(10, 22, 40, 0.2);
}

@media (max-width: 600px) {
    .prf-home-urgent { top: 90px; margin: 0 12px; }
    .prf-home-urgent-inner { padding: 12px 50px 12px 48px; gap: 10px; }
    .prf-home-urgent-text { font-size: var(--prf-fs-xs); }
    .prf-home-urgent-icon { left: 14px; font-size: 1.2rem; }
    .prf-home-urgent-close {
        position: absolute;
        right: 12px;
        top: 50%;
        transform: translateY(-50%);
    }
    .prf-home-urgent-cta { font-size: 0.7rem; padding: 7px 14px; }
}


/* =================================================================
   20.3  ENTRADAS preview (3 cards)
   ================================================================= */
.prf-home-tickets {
    background: linear-gradient(180deg, var(--prf-white) 0%, var(--prf-sky-50) 100%);
    position: relative;
    overflow: hidden;
}

.prf-home-tickets::before {
    content: '';
    position: absolute;
    top: -150px;
    right: -150px;
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, rgba(255, 45, 155, 0.1) 0%, transparent 70%);
    pointer-events: none;
}

.prf-home-tickets-title {
    font-family: var(--prf-font-display);
    font-weight: 900;
    font-style: italic;
    font-size: clamp(2.5rem, 6vw, 4.5rem);
    line-height: 0.95;
    letter-spacing: -1.5px;
    text-transform: uppercase;
    margin: 0 0 16px 0;
}

.prf-home-tickets-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-bottom: 48px;
}

.prf-home-ticket-card {
    background: var(--prf-white);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-xl);
    padding: 36px 28px 28px;
    position: relative;
    transition: all 0.4s var(--prf-ease);
    display: flex;
    flex-direction: column;
}

.prf-home-ticket-card:hover {
    transform: translateY(-12px);
    box-shadow: var(--prf-shadow-xl);
    border-color: var(--prf-pink);
}

.prf-home-ticket-card-featured {
    background: var(--prf-grad-dark);
    color: var(--prf-white);
    border: none;
    transform: scale(1.04);
    box-shadow: 0 30px 80px -20px rgba(139, 47, 201, 0.5);
    position: relative;
    z-index: 2;
}

.prf-home-ticket-card-featured::before {
    content: '';
    position: absolute;
    inset: -1px;
    background: linear-gradient(135deg, var(--prf-pink), var(--prf-purple), var(--prf-sky-500));
    border-radius: var(--prf-radius-xl);
    z-index: -1;
    opacity: 0.6;
}

.prf-home-ticket-card-featured:hover {
    transform: scale(1.04) translateY(-8px);
    box-shadow: 0 40px 100px -20px rgba(139, 47, 201, 0.7);
}

.prf-home-ticket-badge {
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--prf-yellow);
    color: var(--prf-ink);
    padding: 6px 16px;
    border-radius: var(--prf-radius-pill);
    font-family: var(--prf-font-mono);
    font-size: var(--prf-fs-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    box-shadow: 0 8px 24px -6px rgba(255, 214, 0, 0.6);
    white-space: nowrap;
}

.prf-home-ticket-tag {
    font-family: var(--prf-font-mono);
    font-size: var(--prf-fs-xs);
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--prf-muted);
    margin-bottom: 12px;
}

.prf-home-ticket-card-featured .prf-home-ticket-tag {
    color: rgba(255, 255, 255, 0.7);
}

.prf-home-ticket-name {
    font-family: var(--prf-font-display);
    font-weight: 900;
    font-style: italic;
    font-size: 1.8rem;
    text-transform: uppercase;
    letter-spacing: -0.5px;
    margin: 0 0 12px 0;
    color: var(--prf-ink);
}

.prf-home-ticket-card-featured .prf-home-ticket-name {
    color: var(--prf-white);
}

.prf-home-ticket-price {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    font-size: 3rem;
    line-height: 1;
    background: var(--prf-grad-pink);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    margin: 0 0 16px 0;
}

.prf-home-ticket-card-featured .prf-home-ticket-price {
    background: linear-gradient(135deg, var(--prf-yellow) 0%, #fff 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.prf-home-ticket-desc {
    font-size: var(--prf-fs-sm);
    color: var(--prf-muted);
    line-height: 1.5;
    margin-bottom: 20px;
}

.prf-home-ticket-card-featured .prf-home-ticket-desc {
    color: rgba(255, 255, 255, 0.75);
}

.prf-home-ticket-features {
    list-style: none;
    padding: 0;
    margin: 0 0 28px 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1;
}

.prf-home-ticket-features li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: var(--prf-fs-sm);
    color: var(--prf-ink);
    padding: 8px 0;
    border-bottom: 1px dashed var(--prf-sky-100);
}

.prf-home-ticket-features li:last-child { border-bottom: none; }

.prf-home-ticket-features li::before {
    content: '✓';
    color: var(--prf-pink);
    font-weight: 900;
    flex-shrink: 0;
    background: rgba(255, 45, 155, 0.1);
    width: 20px;
    height: 20px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.7rem;
}

.prf-home-ticket-card-featured .prf-home-ticket-features li {
    color: rgba(255, 255, 255, 0.9);
    border-bottom-color: rgba(255, 255, 255, 0.1);
}

.prf-home-ticket-card-featured .prf-home-ticket-features li::before {
    color: var(--prf-yellow);
    background: rgba(255, 214, 0, 0.2);
}

.prf-home-tickets-footer {
    text-align: center;
}

/* === FIX: Botón "Comprar General" SIN cambio en hover === */
.prf-home-ticket-card:not(.prf-home-ticket-card-featured) .prf-btn,
.prf-home-ticket-card:not(.prf-home-ticket-card-featured) .prf-btn:hover,
.prf-home-ticket-card:not(.prf-home-ticket-card-featured) .prf-btn:focus,
.prf-home-ticket-card:not(.prf-home-ticket-card-featured) .prf-btn:active {
    background: var(--prf-grad-yellow);
    color: var(--prf-ink);
    border: none;
    transform: none;
    box-shadow: var(--prf-shadow-yellow);
}

.prf-home-ticket-card:not(.prf-home-ticket-card-featured) .prf-btn::before,
.prf-home-ticket-card:not(.prf-home-ticket-card-featured) .prf-btn::after {
    display: none;
}

@media (max-width: 1024px) {
    .prf-home-tickets-grid { grid-template-columns: 1fr; max-width: 480px; margin-left: auto; margin-right: auto; }
    .prf-home-ticket-card-featured { transform: none; }
    .prf-home-ticket-card-featured:hover { transform: translateY(-8px); }
}


/* =================================================================
   20.4  UBICACIÓN preview
   ================================================================= */
.prf-home-location {
    background: var(--prf-white);
}

.prf-home-location-grid {
    display: grid;
    grid-template-columns: 1fr 1.3fr;
    gap: 48px;
    align-items: center;
}

.prf-home-location-title {
    font-family: var(--prf-font-display);
    font-weight: 900;
    font-style: italic;
    font-size: clamp(2.5rem, 6vw, 4.5rem);
    line-height: 0.95;
    letter-spacing: -1.5px;
    text-transform: uppercase;
    margin: 16px 0;
}

.prf-home-location-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-bottom: 40px;
}

.prf-home-location-stat {
    background: var(--prf-sky-50);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-md);
    padding: 18px 12px;
    text-align: center;
    transition: all 0.3s var(--prf-ease);
}

.prf-home-location-stat:hover {
    border-color: var(--prf-pink);
    transform: translateY(-4px);
}

.prf-home-location-stat-value {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    font-size: 1.5rem;
    color: var(--prf-ink);
    line-height: 1;
    margin-bottom: 4px;
}

.prf-home-location-stat-label {
    font-family: var(--prf-font-mono);
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--prf-muted);
}

.prf-home-location-cta-row {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.prf-home-location-map {
    border-radius: var(--prf-radius-xl);
    overflow: hidden;
    background: var(--prf-sky-100);
    aspect-ratio: 4 / 3;
    box-shadow: 0 30px 80px -20px rgba(14, 165, 233, 0.25);
    border: 1px solid var(--prf-sky-100);
}

.prf-home-location-map iframe {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
    filter: saturate(1.1) contrast(1.05);
}

@media (max-width: 900px) {
    .prf-home-location-grid { grid-template-columns: 1fr; gap: 32px; }
    .prf-home-location-map { aspect-ratio: 16 / 10; }
}

@media (max-width: 480px) {
    .prf-home-location-stats { grid-template-columns: 1fr; }
}


/* =================================================================
   20.5  EMBAJADORES preview (home)
   ================================================================= */
.prf-home-embassadors {
    background: linear-gradient(180deg, var(--prf-sky-50) 0%, var(--prf-white) 100%);
}

.prf-home-embassadors-card {
    background: var(--prf-grad-dark);
    border-radius: var(--prf-radius-xl);
    padding: 80px 60px;
    color: var(--prf-white);
    position: relative;
    overflow: hidden;
    box-shadow: 0 40px 100px -30px rgba(139, 47, 201, 0.5);
}

.prf-home-embassadors-glow {
    position: absolute;
    top: -100px;
    right: -100px;
    width: 500px;
    height: 500px;
    background: radial-gradient(circle, rgba(255, 214, 0, 0.25) 0%, transparent 60%);
    pointer-events: none;
    animation: prfOrbFloat 12s ease-in-out infinite;
}

.prf-home-embassadors-noise {
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.4'/%3E%3C/svg%3E");
    opacity: 0.08;
    pointer-events: none;
}

.prf-home-embassadors-content {
    position: relative;
    z-index: 2;
    text-align: center;
    max-width: 700px;
    margin: 0 auto;
}

.prf-home-embassadors-title {
    font-family: var(--prf-font-display);
    font-weight: 900;
    font-style: italic;
    font-size: clamp(2rem, 5vw, 3.5rem);
    line-height: 0.98;
    letter-spacing: -1px;
    text-transform: uppercase;
    margin: 16px 0 20px 0;
    color: var(--prf-white);
}

.prf-home-embassadors-accent {
    background: linear-gradient(135deg, var(--prf-yellow) 0%, #fff 50%, var(--prf-yellow) 100%);
    background-size: 200% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: prfGradientShift 4s ease infinite;
}

.prf-home-embassadors-sub {
    font-size: var(--prf-fs-md);
    color: rgba(255, 255, 255, 0.75);
    line-height: 1.6;
    margin-bottom: 40px;
}

.prf-home-embassadors-steps {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-bottom: 40px;
}

.prf-home-embassadors-step {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    padding: 28px 20px 22px;
    border-radius: var(--prf-radius-md);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    font-size: var(--prf-fs-sm);
    color: rgba(255, 255, 255, 0.85);
    font-weight: 600;
    transition: all 0.3s var(--prf-ease);
    position: relative;
    overflow: hidden;
    text-align: center;
}

.prf-home-embassadors-step::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(255, 214, 0, 0.08) 0%, transparent 100%);
    opacity: 0;
    transition: opacity 0.3s;
    pointer-events: none;
}

.prf-home-embassadors-step:hover {
    background: rgba(255, 214, 0, 0.1);
    border-color: rgba(255, 214, 0, 0.3);
    transform: translateY(-4px);
}

.prf-home-embassadors-step:hover::before {
    opacity: 1;
}

.prf-home-embassadors-step-num {
    position: absolute;
    top: 12px;
    right: 14px;
    width: 28px;
    height: 28px;
    background: var(--prf-yellow);
    color: var(--prf-ink);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    font-size: 0.85rem;
    box-shadow: 0 6px 16px -3px rgba(255, 214, 0, 0.5);
}

.prf-home-embassadors-step-icon {
    width: 48px;
    height: 48px;
    margin: 0 auto 16px;
    border-radius: var(--prf-radius-md);
    background: rgba(255, 255, 255, 0.08);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--prf-yellow);
    transition: all 0.4s var(--prf-ease-bounce);
    border: 1px solid rgba(255, 214, 0, 0.2);
}

.prf-home-embassadors-step:hover .prf-home-embassadors-step-icon {
    transform: rotate(-8deg) scale(1.1);
    background: rgba(255, 214, 0, 0.15);
    border-color: rgba(255, 214, 0, 0.5);
    color: var(--prf-yellow);
}

.prf-home-embassadors-step strong {
    display: block;
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 800;
    font-size: 1.05rem;
    text-transform: uppercase;
    letter-spacing: -0.3px;
    color: var(--prf-white);
    margin-bottom: 4px;
}

.prf-home-embassadors-step small {
    display: block;
    font-size: 0.75rem;
    color: rgba(255, 255, 255, 0.6);
    line-height: 1.4;
    font-weight: 400;
}

.prf-home-embassadors-cta-row {
    display: flex;
    justify-content: center;
}

@media (max-width: 768px) {
    .prf-home-embassadors-card { padding: 60px 32px; }
    .prf-home-embassadors-steps { grid-template-columns: 1fr; gap: 10px; }
}

@media (max-width: 480px) {
    .prf-home-embassadors-card { padding: 50px 24px; }
}


/* =================================================================
   20.6  5º ANIVERSARIO (stats)
   ================================================================= */
.prf-home-anniversary {
    background: var(--prf-grad-dark);
    color: var(--prf-white);
    position: relative;
    overflow: hidden;
}

.prf-home-anniv-glow-1 {
    position: absolute;
    top: -150px;
    left: -150px;
    width: 500px;
    height: 500px;
    background: radial-gradient(circle, rgba(255, 45, 155, 0.25) 0%, transparent 65%);
    pointer-events: none;
    animation: prfOrbFloat 12s ease-in-out infinite;
}

.prf-home-anniv-glow-2 {
    position: absolute;
    bottom: -150px;
    right: -150px;
    width: 600px;
    height: 600px;
    background: radial-gradient(circle, rgba(255, 214, 0, 0.18) 0%, transparent 65%);
    pointer-events: none;
    animation: prfOrbFloat 14s ease-in-out infinite reverse;
}

.prf-home-anniv-content {
    position: relative;
    z-index: 2;
    text-align: center;
    max-width: 900px;
    margin: 0 auto;
}

.prf-home-anniv-title {
    font-family: var(--prf-font-display);
    font-weight: 900;
    font-style: italic;
    font-size: clamp(2.5rem, 6vw, 4.5rem);
    line-height: 0.95;
    letter-spacing: -1.5px;
    text-transform: uppercase;
    margin: 16px 0 24px 0;
    color: var(--prf-white);
}

.prf-home-anniv-accent {
    background: linear-gradient(135deg, var(--prf-yellow) 0%, var(--prf-pink) 100%);
    background-size: 200% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: prfGradientShift 5s ease infinite;
}

.prf-home-anniv-sub {
    font-size: var(--prf-fs-md);
    color: rgba(255, 255, 255, 0.75);
    max-width: 640px;
    margin: 0 auto 56px;
    line-height: 1.6;
}

.prf-home-anniv-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
    align-items: end;
}

.prf-home-anniv-stat {
    text-align: center;
    padding: 24px 16px;
    border-left: 1px solid rgba(255, 255, 255, 0.1);
    transition: all 0.3s var(--prf-ease);
}

.prf-home-anniv-stat:first-child { border-left: none; }

.prf-home-anniv-stat:hover {
    transform: translateY(-6px);
}

.prf-home-anniv-stat-num {
    display: block;
    font-family: var(--prf-font-display);
    font-weight: 900;
    font-style: italic;
    font-size: clamp(3.5rem, 8vw, 6rem);
    line-height: 0.9;
    background: linear-gradient(135deg, var(--prf-yellow) 0%, var(--prf-pink) 60%, var(--prf-white) 100%);
    background-size: 200% 200%;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    margin-bottom: 4px;
    animation: prfGradientShift 6s ease infinite;
    font-variant-numeric: tabular-nums;
}

.prf-home-anniv-stat-suf {
    display: block;
    font-family: var(--prf-font-display);
    font-weight: 800;
    font-style: italic;
    font-size: clamp(1rem, 2vw, 1.4rem);
    text-transform: uppercase;
    letter-spacing: -0.5px;
    color: var(--prf-yellow);
    margin-bottom: 12px;
}

.prf-home-anniv-stat-lbl {
    display: block;
    font-family: var(--prf-font-mono);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: rgba(255, 255, 255, 0.6);
    line-height: 1.4;
}

@media (max-width: 768px) {
    .prf-home-anniv-stats {
        grid-template-columns: 1fr;
        gap: 16px;
        max-width: 360px;
        margin: 0 auto;
    }
    .prf-home-anniv-stat {
        border-left: none;
        border-top: 1px solid rgba(255, 255, 255, 0.1);
        padding: 20px 0;
    }
    .prf-home-anniv-stat:first-child {
        border-top: none;
    }
}


/* =================================================================
   20.7  QUICK-INFO cards (solapando hero)
   ================================================================= */
.prf-home-quickinfo {
    position: relative;
    margin-top: -60px;
    z-index: 10;
    padding: 0 24px 60px;
}

.prf-home-quickinfo-grid {
    max-width: 980px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

.prf-home-qi-card {
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(28px) saturate(200%);
    -webkit-backdrop-filter: blur(28px) saturate(200%);
    border: 1px solid rgba(186, 230, 253, 0.6);
    border-radius: var(--prf-radius-lg);
    padding: 28px 22px;
    text-align: center;
    transition: all 0.4s var(--prf-ease);
    position: relative;
    overflow: hidden;
    box-shadow: 0 20px 50px -20px rgba(14, 165, 233, 0.2);
}

.prf-home-qi-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 30px 80px -20px rgba(14, 165, 233, 0.3);
    border-color: rgba(255, 45, 155, 0.4);
}

.prf-home-qi-icon {
    width: 48px;
    height: 48px;
    margin: 0 auto 14px;
    background: var(--prf-grad-pink);
    border-radius: var(--prf-radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--prf-white);
    box-shadow: 0 10px 24px -8px rgba(255, 45, 155, 0.5);
    transition: transform 0.4s var(--prf-ease-bounce);
}

.prf-home-qi-card:hover .prf-home-qi-icon {
    transform: rotate(-8deg) scale(1.1);
}

.prf-home-qi-label {
    font-family: var(--prf-font-mono);
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--prf-muted);
    margin-bottom: 4px;
}

.prf-home-qi-value {
    font-family: var(--prf-font-display);
    font-weight: 800;
    font-style: italic;
    font-size: 1.2rem;
    color: var(--prf-ink);
    text-transform: uppercase;
    letter-spacing: -0.3px;
    line-height: 1.15;
    margin-bottom: 4px;
}

.prf-home-qi-sub {
    font-size: 0.78rem;
    color: var(--prf-muted);
}

@media (max-width: 768px) {
    .prf-home-quickinfo { margin-top: -40px; padding: 0 16px 40px; }
    .prf-home-quickinfo-grid { gap: 10px; }
    .prf-home-qi-card { padding: 20px 14px; }
    .prf-home-qi-value { font-size: 1rem; }
    .prf-home-qi-sub { font-size: 0.7rem; }
}

@media (max-width: 480px) {
    .prf-home-quickinfo-grid { grid-template-columns: 1fr; }
}


/* =================================================================
   20.8  TILT 3D utility
   ================================================================= */
.prf-tilt-3d {
    transform-style: preserve-3d;
    will-change: transform;
}

.prf-tilt-3d:hover {
    box-shadow: var(--prf-shadow-xl);
}
/* =================================================================
   21. LINEUP — PRF 2026
   -----------------------------------------------------------------
     21.1  HERO LINEUP
     21.2  HEADLINER (Alice DJ)
     21.3  ARTISTAS Originals Live (grid)
     21.4  DJs (grid)
     21.5  PRESENTADORES
     21.6  2 PISTAS / Escenarios
     21.7  TIMELINE DEL DÍA
     21.8  CTA FINAL
     21.9  MODAL YOUTUBE
   ================================================================= */


/* =================================================================
   21.1  HERO LINEUP
   ================================================================= */
.prf-lineup-hero {
    position: relative;
    padding: 80px 24px 100px;
    background: linear-gradient(180deg, var(--prf-white) 0%, var(--prf-sky-50) 100%);
    overflow: hidden;
}

.prf-lineup-hero-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
    position: relative;
    z-index: 2;
}

.prf-lineup-hero-text {
    max-width: 540px;
}

.prf-lineup-hero-title {
    font-family: var(--prf-font-display);
    font-weight: 900;
    font-style: italic;
    font-size: clamp(3rem, 7vw, 5.5rem);
    line-height: 0.92;
    letter-spacing: -2px;
    text-transform: uppercase;
    margin: 16px 0 24px 0;
}

.prf-lineup-hero-sub {
    font-size: var(--prf-fs-md);
    color: var(--prf-ink-soft);
    line-height: 1.55;
    margin-bottom: 32px;
}

.prf-lineup-hero-sub strong {
    color: var(--prf-pink);
    font-weight: 700;
}

.prf-lineup-hero-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-bottom: 36px;
    max-width: 420px;
}

.prf-lineup-hero-stat {
    background: var(--prf-white);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-md);
    padding: 16px 12px;
    text-align: center;
    transition: all 0.3s var(--prf-ease);
}

.prf-lineup-hero-stat:hover {
    border-color: var(--prf-pink);
    transform: translateY(-3px);
    box-shadow: var(--prf-shadow-md);
}

.prf-lineup-hero-stat-num {
    display: block;
    font-family: var(--prf-font-display);
    font-weight: 900;
    font-style: italic;
    font-size: 2rem;
    line-height: 1;
    background: var(--prf-grad-pink);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.prf-lineup-hero-stat-lbl {
    display: block;
    font-family: var(--prf-font-mono);
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--prf-muted);
    margin-top: 4px;
}

.prf-lineup-hero-poster,
.prf-poster-3d {
    position: relative;
    aspect-ratio: 1 / 1.2;
    max-width: 480px;
    margin: 0 auto;
    transform: rotate(-2deg);
    transform-style: preserve-3d;
    transition: transform 0.6s var(--prf-ease);
    will-change: transform;
}

.prf-lineup-hero-poster:hover {
    transform: rotate(0) scale(1.02);
}

.prf-lineup-hero-poster img,
.prf-poster-3d img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: var(--prf-radius-lg);
    box-shadow: 0 30px 80px -20px rgba(139, 47, 201, 0.4),
                0 50px 100px -30px rgba(255, 45, 155, 0.3);
    position: relative;
    z-index: 2;
    transform: translateZ(0);
    backface-visibility: hidden;
}

.prf-lineup-hero-poster-glow,
.prf-lineup-hero-poster-glow-anim {
    position: absolute;
    inset: -30px;
    background: radial-gradient(ellipse, rgba(255, 45, 155, 0.4) 0%, transparent 60%);
    z-index: 1;
    filter: blur(40px);
    animation: prfOrbFloat 10s ease-in-out infinite;
}

.prf-lineup-hero-poster-glow-anim {
    inset: -40px;
    background:
        radial-gradient(circle at 30% 30%, rgba(255, 45, 155, 0.5) 0%, transparent 55%),
        radial-gradient(circle at 70% 70%, rgba(255, 214, 0, 0.4) 0%, transparent 55%),
        radial-gradient(circle at 50% 50%, rgba(139, 47, 201, 0.4) 0%, transparent 65%);
    filter: blur(50px);
    animation: prfPosterGlowShift 8s ease-in-out infinite;
    border-radius: var(--prf-radius-xl);
}

@keyframes prfPosterGlowShift {
    0%, 100% { transform: scale(1) rotate(0deg); opacity: 0.85; }
    33%      { transform: scale(1.08) rotate(120deg); opacity: 1; }
    66%      { transform: scale(0.95) rotate(240deg); opacity: 0.75; }
}

.prf-lineup-hero-poster-shine {
    position: absolute;
    inset: 0;
    border-radius: var(--prf-radius-lg);
    overflow: hidden;
    pointer-events: none;
    z-index: 3;
}

.prf-lineup-hero-poster-shine::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -100%;
    width: 60%;
    height: 200%;
    background: linear-gradient(120deg,
        transparent 0%,
        rgba(255, 255, 255, 0.15) 45%,
        rgba(255, 255, 255, 0.4) 50%,
        rgba(255, 255, 255, 0.15) 55%,
        transparent 100%);
    transform: rotate(8deg);
    animation: prfPosterShine 6s ease-in-out infinite;
}

@keyframes prfPosterShine {
    0%, 30% { left: -100%; }
    50%     { left: 200%; }
    100%    { left: 200%; }
}

/* Esquinas decorativas amarillas */
.prf-lineup-hero-poster-corner {
    position: absolute;
    width: 32px;
    height: 32px;
    border: 3px solid var(--prf-yellow);
    z-index: 4;
    pointer-events: none;
    transition: all 0.5s var(--prf-ease);
}

.prf-poster-corner-tl { top: -10px; left: -10px;  border-right: none; border-bottom: none; border-radius: 6px 0 0 0; }
.prf-poster-corner-tr { top: -10px; right: -10px; border-left: none;  border-bottom: none; border-radius: 0 6px 0 0; }
.prf-poster-corner-bl { bottom: -10px; left: -10px;  border-right: none; border-top: none; border-radius: 0 0 0 6px; }
.prf-poster-corner-br { bottom: -10px; right: -10px; border-left: none;  border-top: none; border-radius: 0 0 6px 0; }

.prf-poster-3d:hover .prf-lineup-hero-poster-corner {
    width: 44px;
    height: 44px;
    box-shadow: 0 0 20px rgba(255, 214, 0, 0.6);
}

@media (max-width: 900px) {
    .prf-lineup-hero-inner { grid-template-columns: 1fr; gap: 40px; }
    .prf-lineup-hero-text { max-width: 100%; text-align: center; margin: 0 auto; }
    .prf-lineup-hero-stats { margin-left: auto; margin-right: auto; }
    .prf-lineup-hero-poster, .prf-poster-3d { max-width: 360px; }
    .prf-lineup-hero-poster-corner { width: 24px; height: 24px; }
    .prf-poster-3d:hover .prf-lineup-hero-poster-corner { width: 32px; height: 32px; }
}


/* =================================================================
   21.2  HEADLINER (Alice DJ)
   ================================================================= */
.prf-lineup-headliner {
    background: var(--prf-white);
}

.prf-lineup-headliner-card {
    position: relative;
    background: var(--prf-grad-dark);
    border-radius: var(--prf-radius-xl);
    overflow: hidden;
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    color: var(--prf-white);
    box-shadow: 0 40px 100px -30px rgba(139, 47, 201, 0.5);
}

.prf-lineup-headliner-bg {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 20% 30%, rgba(255, 45, 155, 0.4) 0%, transparent 50%),
        radial-gradient(circle at 80% 70%, rgba(255, 214, 0, 0.3) 0%, transparent 50%);
    pointer-events: none;
    animation: prfGradientShift 8s ease infinite;
}

.prf-lineup-headliner-photo {
    position: relative;
    aspect-ratio: 1;
    overflow: hidden;
}

.prf-lineup-headliner-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s var(--prf-ease);
}

.prf-lineup-headliner-card:hover .prf-lineup-headliner-photo img {
    transform: scale(1.05);
}

.prf-lineup-headliner-info {
    padding: 60px 50px;
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.prf-lineup-headliner-info .prf-badge {
    align-self: flex-start;
    margin-bottom: 20px;
}

.prf-lineup-headliner-name {
    font-family: var(--prf-font-display);
    font-weight: 900;
    font-style: italic;
    font-size: clamp(3rem, 6vw, 5rem);
    line-height: 0.95;
    letter-spacing: -2px;
    text-transform: uppercase;
    margin: 0 0 16px 0;
    color: var(--prf-white);
    text-shadow: 0 4px 30px rgba(0, 0, 0, 0.3);
}

.prf-lineup-headliner-tag {
    font-family: var(--prf-font-mono);
    font-size: var(--prf-fs-xs);
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--prf-yellow);
    margin-bottom: 24px;
    line-height: 1.5;
}

.prf-lineup-headliner-bio {
    font-size: var(--prf-fs-md);
    color: rgba(255, 255, 255, 0.85);
    line-height: 1.6;
    margin-bottom: 32px;
}

.prf-lineup-headliner-tracks {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 8px;
}

.prf-lineup-headliner-tracks .prf-btn,
.prf-lineup-headliner-tracks .prf-btn-pink {
    flex: 1 1 auto;
    min-width: 0;
    justify-content: center;
}

@media (max-width: 600px) {
    .prf-lineup-headliner-tracks { flex-direction: column; }
    .prf-lineup-headliner-tracks .prf-btn,
    .prf-lineup-headliner-tracks .prf-btn-pink { width: 100%; }
}

@media (max-width: 900px) {
    .prf-lineup-headliner-card { grid-template-columns: 1fr; }
    .prf-lineup-headliner-photo { aspect-ratio: 16 / 10; }
    .prf-lineup-headliner-info { padding: 40px 32px; }
}


/* =================================================================
   21.3  ARTISTAS Originals Live (grid)
   ================================================================= */
.prf-lineup-artists {
    background: linear-gradient(180deg, var(--prf-white) 0%, var(--prf-sky-50) 100%);
}

.prf-lineup-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}

.prf-artist-card,
.prf-artist-card-v2 {
    background: var(--prf-white);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-lg);
    overflow: hidden;
    transition: all 0.4s var(--prf-ease);
    display: flex;
    flex-direction: column;
    position: relative;
    transform-style: preserve-3d;
    will-change: transform;
}

.prf-artist-card:hover,
.prf-artist-card-v2:hover {
    transform: translateY(-8px);
    box-shadow: var(--prf-shadow-xl);
    border-color: var(--prf-pink);
}

.prf-artist-photo {
    position: relative;
    aspect-ratio: 1;
    overflow: hidden;
    background: var(--prf-sky-100);
}

.prf-artist-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s var(--prf-ease);
}

.prf-artist-card:hover .prf-artist-photo img,
.prf-artist-card-v2:hover .prf-artist-photo img {
    transform: scale(1.08);
}

.prf-artist-photo::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 60%, rgba(10, 22, 40, 0.4) 100%);
    pointer-events: none;
}

.prf-artist-info {
    padding: 20px 18px;
    text-align: center;
}

.prf-artist-name {
    font-family: var(--prf-font-display);
    font-weight: 800;
    font-style: italic;
    font-size: 1.3rem;
    line-height: 1.1;
    letter-spacing: -0.5px;
    text-transform: uppercase;
    margin: 0 0 4px 0;
    color: var(--prf-ink);
}

.prf-artist-ex {
    font-family: var(--prf-font-mono);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--prf-muted);
    margin: 0 0 14px 0;
}

.prf-artist-tracks {
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: stretch;
    width: 100%;
}

.prf-artist-tracks .prf-artist-play {
    width: 100%;
    justify-content: center;
}

.prf-artist-play {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(255, 45, 155, 0.08);
    color: var(--prf-pink);
    border: 1px solid rgba(255, 45, 155, 0.2);
    padding: 8px 14px;
    border-radius: var(--prf-radius-pill);
    font-size: var(--prf-fs-xs);
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s var(--prf-ease);
    font-family: var(--prf-font-body);
}

.prf-artist-play:hover {
    background: var(--prf-grad-pink);
    color: var(--prf-white);
    border-color: transparent;
    transform: scale(1.05);
    box-shadow: var(--prf-shadow-pink);
}

/* Chip de género (esquina superior derecha) */
.prf-artist-genre {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 3;
    background: rgba(10, 22, 40, 0.85);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    color: var(--prf-white);
    font-family: var(--prf-font-mono);
    font-size: 0.62rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    padding: 5px 10px;
    border-radius: var(--prf-radius-pill);
    border: 1px solid rgba(255, 255, 255, 0.15);
    transition: all 0.3s var(--prf-ease);
}

.prf-artist-card-v2:hover .prf-artist-genre {
    background: var(--prf-pink);
    border-color: var(--prf-pink);
    transform: scale(1.05);
}

/* Badge "Voz original" (esquina superior izquierda) */
.prf-artist-badge {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 3;
    background: var(--prf-yellow);
    color: var(--prf-ink);
    font-family: var(--prf-font-mono);
    font-size: 0.6rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    padding: 5px 10px;
    border-radius: var(--prf-radius-pill);
    box-shadow: 0 6px 16px -4px rgba(255, 214, 0, 0.6);
    transition: transform 0.3s var(--prf-ease-bounce);
}

.prf-artist-card-v2:hover .prf-artist-badge {
    transform: scale(1.08) rotate(-3deg);
}

@media (max-width: 1024px) {
    .prf-lineup-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 768px) {
    .prf-lineup-grid { grid-template-columns: 1fr 1fr; gap: 16px; }
}

@media (max-width: 480px) {
    .prf-lineup-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
    .prf-artist-info { padding: 14px 10px; }
    .prf-artist-name { font-size: 1.05rem; }
    .prf-artist-genre, .prf-artist-badge {
        font-size: 0.55rem;
        padding: 4px 8px;
        top: 8px;
    }
}

.prf-lineup-artists .prf-artist-photo {
    aspect-ratio: 1 / 1;
    overflow: hidden;
    position: relative;
}

.prf-lineup-artists .prf-artist-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    display: block;
}

/* =================================================================
   21.4  DJs (grid 5 cols)
   ================================================================= */
.prf-lineup-djs {
    background: var(--prf-ink);
    color: var(--prf-white);
    position: relative;
    overflow: hidden;
}

.prf-lineup-djs::before {
    content: '';
    position: absolute;
    top: -200px;
    right: -200px;
    width: 500px;
    height: 500px;
    background: radial-gradient(circle, rgba(255, 45, 155, 0.15) 0%, transparent 70%);
    pointer-events: none;
}

.prf-lineup-djs::after {
    content: '';
    position: absolute;
    bottom: -200px;
    left: -200px;
    width: 500px;
    height: 500px;
    background: radial-gradient(circle, rgba(139, 47, 201, 0.15) 0%, transparent 70%);
    pointer-events: none;
}

.prf-lineup-djs .prf-section-head h2 {
    color: var(--prf-white);
}

.prf-lineup-djs .prf-section-lead {
    color: rgba(255, 255, 255, 0.7);
}

.prf-lineup-grid-dj {
    grid-template-columns: repeat(5, 1fr);
    gap: 20px;
}

.prf-dj-card,
.prf-dj-card-v2 {
    text-align: center;
    transition: all 0.4s var(--prf-ease);
}

.prf-dj-card:hover,
.prf-dj-card-v2:hover {
    transform: translateY(-6px);
}

.prf-dj-photo {
    aspect-ratio: 1;
    overflow: hidden;
    border-radius: 50%;
    margin-bottom: 16px;
    background: var(--prf-ink-soft);
    border: 3px solid transparent;
    transition: all 0.4s var(--prf-ease);
    position: relative;
}

.prf-dj-card:hover .prf-dj-photo,
.prf-dj-card-v2:hover .prf-dj-photo {
    border-color: var(--prf-pink);
}

.prf-dj-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s var(--prf-ease);
}

.prf-dj-card:hover .prf-dj-photo img,
.prf-dj-card-v2:hover .prf-dj-photo img {
    transform: scale(1.08);
}

.prf-dj-overlay {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: linear-gradient(180deg, transparent 0%, rgba(255, 45, 155, 0.85) 60%, rgba(139, 47, 201, 0.95) 100%);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 12px;
    color: var(--prf-white);
    opacity: 0;
    transition: opacity 0.4s var(--prf-ease);
    pointer-events: none;
}

.prf-dj-card-v2:hover .prf-dj-overlay {
    opacity: 1;
}

.prf-dj-overlay small {
    display: block;
    font-family: var(--prf-font-mono);
    font-size: 0.6rem;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    opacity: 0.85;
    margin-bottom: 6px;
}

.prf-dj-overlay strong {
    display: block;
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 800;
    font-size: 1rem;
    line-height: 1.1;
    text-transform: uppercase;
    letter-spacing: -0.3px;
    color: var(--prf-yellow);
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}

.prf-dj-name {
    font-family: var(--prf-font-display);
    font-weight: 800;
    font-style: italic;
    font-size: 1.15rem;
    line-height: 1.1;
    letter-spacing: -0.3px;
    text-transform: uppercase;
    margin: 0 0 8px 0;
    color: var(--prf-white);
}

.prf-dj-ig {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: rgba(255, 255, 255, 0.6);
    text-decoration: none;
    font-size: 0.78rem;
    font-family: var(--prf-font-mono);
    transition: color 0.2s;
}

.prf-dj-ig:hover {
    color: var(--prf-yellow);
}

@media (max-width: 1024px) {
    .prf-lineup-grid-dj { grid-template-columns: repeat(4, 1fr); }
}

@media (max-width: 768px) {
    .prf-lineup-grid-dj { grid-template-columns: repeat(3, 1fr); gap: 16px; }
}

@media (max-width: 480px) {
    .prf-lineup-grid-dj { grid-template-columns: repeat(2, 1fr); }
    .prf-dj-overlay strong { font-size: 0.85rem; }
    .prf-dj-overlay small { font-size: 0.55rem; }
}


/* =================================================================
   21.5  PRESENTADORES
   ================================================================= */
.prf-lineup-hosts {
    background: linear-gradient(180deg, var(--prf-ink) 0%, var(--prf-sky-50) 100%);
}

.prf-lineup-hosts .prf-section-head h2 {
    color: var(--prf-ink);
}

.prf-lineup-hosts-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
}

.prf-host-card {
    background: var(--prf-white);
    border-radius: var(--prf-radius-xl);
    overflow: hidden;
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    border: 1px solid var(--prf-sky-100);
    transition: all 0.4s var(--prf-ease);
}

.prf-host-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--prf-shadow-xl);
    border-color: var(--prf-pink);
}

.prf-host-photo {
    aspect-ratio: 1;
    overflow: hidden;
}

.prf-host-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s var(--prf-ease);
}

.prf-host-card:hover .prf-host-photo img {
    transform: scale(1.05);
}

.prf-host-info {
    padding: 28px 24px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 10px;
}

.prf-host-name {
    font-family: var(--prf-font-display);
    font-weight: 900;
    font-style: italic;
    font-size: 1.6rem;
    line-height: 1;
    letter-spacing: -0.5px;
    text-transform: uppercase;
    margin: 0;
}

.prf-host-bio {
    font-size: var(--prf-fs-sm);
    color: var(--prf-muted);
    line-height: 1.5;
    margin: 0;
}

.prf-host-card .prf-dj-ig {
    color: var(--prf-muted);
    margin-top: 4px;
}

.prf-host-card .prf-dj-ig:hover {
    color: var(--prf-pink);
}

@media (max-width: 900px) {
    .prf-lineup-hosts-grid { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
    .prf-host-card { grid-template-columns: 1fr; }
    .prf-host-photo { aspect-ratio: 16 / 10; }
}


/* =================================================================
   21.6  2 PISTAS / Escenarios
   ================================================================= */
.prf-lineup-stages {
    background: var(--prf-white);
}

.prf-lineup-stages-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}

.prf-stage-card {
    background: linear-gradient(135deg, var(--prf-sky-50) 0%, var(--prf-white) 100%);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-xl);
    padding: 48px 36px;
    position: relative;
    transition: all 0.4s var(--prf-ease);
    overflow: hidden;
}

.prf-stage-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: var(--prf-grad-pink);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.5s var(--prf-ease);
}

.prf-stage-card:hover {
    transform: translateY(-8px);
    box-shadow: var(--prf-shadow-xl);
}

.prf-stage-card:hover::before {
    transform: scaleX(1);
}

.prf-stage-card-alt {
    background: linear-gradient(135deg, var(--prf-ink) 0%, var(--prf-ink-soft) 100%);
    color: var(--prf-white);
    border: none;
}

.prf-stage-card-alt::after {
    content: '';
    position: absolute;
    top: -100px;
    right: -100px;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, rgba(255, 214, 0, 0.2) 0%, transparent 70%);
    pointer-events: none;
}

.prf-stage-card-alt::before {
    background: var(--prf-yellow);
}

.prf-stage-num {
    font-family: var(--prf-font-display);
    font-weight: 900;
    font-style: italic;
    font-size: 4rem;
    line-height: 1;
    background: var(--prf-grad-pink);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    margin-bottom: 12px;
    opacity: 0.4;
}

.prf-stage-card-alt .prf-stage-num {
    background: linear-gradient(135deg, var(--prf-yellow) 0%, var(--prf-yellow-soft) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.prf-stage-name {
    font-family: var(--prf-font-display);
    font-weight: 900;
    font-style: italic;
    font-size: 2rem;
    line-height: 1;
    letter-spacing: -1px;
    text-transform: uppercase;
    margin: 16px 0;
    color: var(--prf-ink);
}

.prf-stage-card-alt .prf-stage-name {
    color: var(--prf-white);
}

.prf-stage-desc {
    font-size: var(--prf-fs-sm);
    line-height: 1.6;
    margin-bottom: 24px;
    color: var(--prf-muted);
}

.prf-stage-card-alt .prf-stage-desc {
    color: rgba(255, 255, 255, 0.75);
}

.prf-stage-features {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.prf-stage-features li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: var(--prf-fs-sm);
    padding: 10px 0;
    border-bottom: 1px dashed rgba(0, 0, 0, 0.08);
    color: var(--prf-ink);
}

.prf-stage-features li::before {
    content: '✓';
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: rgba(255, 45, 155, 0.1);
    color: var(--prf-pink);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 0.75rem;
}

.prf-stage-features li:last-child { border-bottom: none; }

.prf-stage-card-alt .prf-stage-features li {
    color: rgba(255, 255, 255, 0.85);
    border-bottom-color: rgba(255, 255, 255, 0.1);
}

.prf-stage-card-alt .prf-stage-features li::before {
    background: rgba(255, 214, 0, 0.2);
    color: var(--prf-yellow);
}

@media (max-width: 800px) {
    .prf-lineup-stages-grid { grid-template-columns: 1fr; }
    .prf-stage-card { padding: 36px 28px; }
    .prf-stage-name { font-size: 1.6rem; }
}


/* =================================================================
   21.7  TIMELINE DEL DÍA
   ================================================================= */
.prf-lineup-timeline {
    background: linear-gradient(180deg, var(--prf-white) 0%, var(--prf-sky-50) 100%);
}

.prf-timeline {
    max-width: 880px;
    margin: 0 auto;
    position: relative;
}

.prf-timeline::before {
    content: '';
    position: absolute;
    left: 110px;
    top: 20px;
    bottom: 20px;
    width: 2px;
    background: linear-gradient(180deg, var(--prf-pink) 0%, var(--prf-purple) 50%, var(--prf-yellow) 100%);
    border-radius: 1px;
    opacity: 0.3;
}

.prf-timeline-item {
    display: grid;
    grid-template-columns: 100px 1fr;
    gap: 32px;
    align-items: start;
    margin-bottom: 28px;
    position: relative;
}

.prf-timeline-item:last-child {
    margin-bottom: 0;
}

.prf-timeline-item::before {
    content: '';
    position: absolute;
    left: 102px;
    top: 28px;
    width: 18px;
    height: 18px;
    background: var(--prf-white);
    border: 3px solid var(--prf-pink);
    border-radius: 50%;
    z-index: 2;
    box-shadow: 0 4px 12px -2px rgba(255, 45, 155, 0.5);
    transition: all 0.3s var(--prf-ease-bounce);
}

.prf-timeline-item:hover::before {
    transform: scale(1.3);
    border-color: var(--prf-purple);
    box-shadow: 0 6px 20px -2px rgba(139, 47, 201, 0.6);
}

.prf-timeline-time {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    text-align: right;
    padding-right: 16px;
}

.prf-timeline-hour {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    font-size: 1.6rem;
    line-height: 1;
    background: var(--prf-grad-pink);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    letter-spacing: -0.5px;
    font-variant-numeric: tabular-nums;
}

.prf-timeline-label {
    display: block;
    font-family: var(--prf-font-mono);
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--prf-muted);
    margin-top: 4px;
}

.prf-timeline-card {
    background: var(--prf-white);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-lg);
    padding: 22px 24px;
    transition: all 0.3s var(--prf-ease);
    margin-left: 16px;
}

.prf-timeline-card:hover {
    transform: translateX(6px);
    box-shadow: var(--prf-shadow-lg);
    border-color: var(--prf-pink);
}

.prf-timeline-card .prf-badge {
    margin-bottom: 10px;
}

.prf-timeline-card h3 {
    font-family: var(--prf-font-display);
    font-weight: 800;
    font-style: italic;
    font-size: 1.2rem;
    line-height: 1.2;
    text-transform: uppercase;
    letter-spacing: -0.3px;
    color: var(--prf-ink);
    margin: 0 0 8px 0;
}

.prf-timeline-card p {
    font-size: var(--prf-fs-sm);
    color: var(--prf-muted);
    line-height: 1.5;
    margin: 0;
}

.prf-timeline-card-highlight {
    border: 2px solid var(--prf-pink);
    background: linear-gradient(135deg, var(--prf-white) 0%, rgba(255, 45, 155, 0.04) 100%);
    box-shadow: 0 8px 30px -10px rgba(255, 45, 155, 0.25);
}

.prf-timeline-card-headliner {
    background: var(--prf-grad-dark);
    border: none;
    color: var(--prf-white);
    box-shadow: 0 16px 40px -12px rgba(139, 47, 201, 0.5);
    position: relative;
    overflow: hidden;
}

.prf-timeline-card-headliner::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 80% 30%, rgba(255, 214, 0, 0.25) 0%, transparent 60%),
        radial-gradient(circle at 20% 80%, rgba(255, 45, 155, 0.2) 0%, transparent 60%);
    pointer-events: none;
    opacity: 0.8;
}

.prf-timeline-card-headliner > * {
    position: relative;
    z-index: 1;
}

.prf-timeline-card-headliner h3 {
    color: var(--prf-white);
    font-size: 1.4rem;
}

.prf-timeline-card-headliner p {
    color: rgba(255, 255, 255, 0.85);
}

.prf-timeline-card-headliner:hover {
    transform: translateX(6px);
    box-shadow: 0 20px 60px -12px rgba(139, 47, 201, 0.7);
}

.prf-timeline-item:has(.prf-timeline-card-headliner) .prf-timeline-hour {
    background: linear-gradient(135deg, var(--prf-yellow) 0%, var(--prf-pink) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.prf-timeline-item:has(.prf-timeline-card-headliner)::before {
    border-color: var(--prf-yellow);
    box-shadow: 0 4px 16px -2px rgba(255, 214, 0, 0.7);
}

.prf-timeline-note {
    max-width: 760px;
    margin: 56px auto 0;
    padding: 16px 24px;
    background: rgba(14, 165, 233, 0.08);
    border-left: 3px solid var(--prf-sky-500);
    border-radius: var(--prf-radius-sm);
    font-size: var(--prf-fs-sm);
    color: var(--prf-ink-soft);
    display: flex;
    align-items: flex-start;
    gap: 10px;
    line-height: 1.5;
}

.prf-timeline-note svg {
    flex-shrink: 0;
    color: var(--prf-sky-500);
    margin-top: 3px;
}

@media (max-width: 700px) {
    .prf-timeline::before { left: 14px; }
    .prf-timeline-item {
        grid-template-columns: 1fr;
        gap: 12px;
        padding-left: 50px;
    }
    .prf-timeline-item::before { left: 6px; top: 8px; }
    .prf-timeline-time {
        flex-direction: row;
        align-items: center;
        gap: 12px;
        text-align: left;
        padding-right: 0;
    }
    .prf-timeline-hour { font-size: 1.4rem; }
    .prf-timeline-card { margin-left: 0; }
    .prf-timeline-card:hover,
    .prf-timeline-card-headliner:hover {
        transform: translateX(0) translateY(-3px);
    }
}


/* =================================================================
   21.8  CTA FINAL LINEUP
   ================================================================= */
.prf-lineup-cta {
    background: linear-gradient(180deg, var(--prf-white) 0%, var(--prf-sky-50) 100%);
}

.prf-lineup-cta-card {
    background: linear-gradient(135deg, var(--prf-ink) 0%, var(--prf-purple-deep) 100%);
    border-radius: var(--prf-radius-xl);
    padding: 80px 40px;
    text-align: center;
    color: var(--prf-white);
    position: relative;
    overflow: hidden;
    box-shadow: 0 40px 100px -30px rgba(139, 47, 201, 0.5);
}

.prf-lineup-cta-glow {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 20% 30%, rgba(255, 45, 155, 0.4) 0%, transparent 50%),
        radial-gradient(circle at 80% 70%, rgba(255, 214, 0, 0.3) 0%, transparent 50%);
    pointer-events: none;
    animation: prfGradientShift 8s ease infinite;
}

.prf-lineup-cta-title {
    position: relative;
    z-index: 2;
    font-family: var(--prf-font-display);
    font-weight: 900;
    font-style: italic;
    font-size: clamp(2.5rem, 7vw, 5rem);
    line-height: 0.95;
    letter-spacing: -2px;
    text-transform: uppercase;
    margin: 0 0 20px 0;
    color: var(--prf-white);
    text-shadow: 0 4px 30px rgba(0, 0, 0, 0.3);
}

.prf-lineup-cta-sub {
    position: relative;
    z-index: 2;
    font-size: var(--prf-fs-md);
    color: rgba(255, 255, 255, 0.85);
    margin-bottom: 36px;
}

.prf-lineup-cta-row {
    position: relative;
    z-index: 2;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 12px;
}

@media (max-width: 600px) {
    .prf-lineup-cta-card { padding: 60px 24px; }
}


/* =================================================================
   21.9  MODAL YOUTUBE
   ================================================================= */
.prf-yt-modal {
    position: fixed;
    inset: 0;
    background: rgba(10, 22, 40, 0.92);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s var(--prf-ease);
}

.prf-yt-modal.is-open {
    opacity: 1;
    visibility: visible;
}

.prf-yt-modal-close {
    position: absolute;
    top: 24px;
    right: 24px;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.1);
    color: var(--prf-white);
    border: 1px solid rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    font-size: 1.6rem;
    cursor: pointer;
    transition: all 0.2s var(--prf-ease);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
}

.prf-yt-modal-close:hover {
    background: var(--prf-pink);
    border-color: var(--prf-pink);
    transform: scale(1.05);
}

.prf-yt-modal-frame {
    width: 100%;
    max-width: 1000px;
    aspect-ratio: 16 / 9;
    border-radius: var(--prf-radius-md);
    overflow: hidden;
    box-shadow: 0 40px 100px -20px rgba(0, 0, 0, 0.5);
    transform: scale(0.95);
    transition: transform 0.3s var(--prf-ease);
}

.prf-yt-modal.is-open .prf-yt-modal-frame {
    transform: scale(1);
}

.prf-yt-modal-frame iframe {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}

@media (max-width: 600px) {
    .prf-yt-modal-close { top: 16px; right: 16px; width: 40px; height: 40px; }
}
/* =================================================================
   22. UBICACIÓN — Página /ubicacion/
   -----------------------------------------------------------------
     22.1  HERO UBICACIÓN (con mapa, sin castillo)
     22.2  BREADCRUMB
     22.3  INFO PRÁCTICA grid
     22.4  CÓMO LLEGAR (transport options)
     22.5  PARKING cards (igualadas)
     22.6  ALOJAMIENTO
   ================================================================= */


/* =================================================================
   22.1  HERO UBICACIÓN
   ================================================================= */
.prf-ub-hero {
    position: relative;
    padding: clamp(60px, 10vh, 100px) clamp(20px, 4vw, 48px) clamp(80px, 12vh, 140px);
    background: linear-gradient(180deg, var(--prf-ink) 0%, var(--prf-purple-deep) 100%);
    color: var(--prf-white);
    overflow: hidden;
}

.prf-ub-hero-overlay {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 20% 30%, rgba(255, 45, 155, 0.3) 0%, transparent 55%),
        radial-gradient(circle at 80% 70%, rgba(14, 165, 233, 0.3) 0%, transparent 55%);
    pointer-events: none;
}

.prf-ub-hero-grid {
    position: relative;
    z-index: 2;
    max-width: 1280px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: center;
}

.prf-ub-hero-text {
    max-width: 540px;
}

.prf-ub-hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--prf-font-mono);
    font-size: var(--prf-fs-xs);
    text-transform: uppercase;
    letter-spacing: 2px;
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    padding: 8px 16px;
    border-radius: var(--prf-radius-pill);
    border: 1px solid rgba(255, 255, 255, 0.15);
    margin-bottom: 20px;
    color: var(--prf-white);
}

.prf-ub-hero-title {
    font-family: var(--prf-font-display);
    font-weight: 900;
    font-style: italic;
    font-size: clamp(3rem, 7vw, 5.5rem);
    line-height: 0.92;
    letter-spacing: -2px;
    text-transform: uppercase;
    margin: 0 0 20px 0;
    color: var(--prf-white);
    text-shadow: 0 4px 30px rgba(0, 0, 0, 0.3);
}

.prf-ub-hero-title-accent {
    background: linear-gradient(135deg, var(--prf-yellow) 0%, var(--prf-pink) 100%);
    background-size: 200% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: prfGradientShift 5s ease infinite;
}

.prf-ub-hero-sub {
    font-size: var(--prf-fs-md);
    color: rgba(255, 255, 255, 0.85);
    line-height: 1.6;
    margin-bottom: 32px;
}

.prf-ub-hero-coords {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--prf-font-mono);
    font-size: var(--prf-fs-xs);
    color: rgba(255, 255, 255, 0.65);
    margin-top: 16px;
    padding: 10px 16px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: var(--prf-radius-sm);
}

.prf-ub-hero-coords strong {
    color: var(--prf-yellow);
}

.prf-ub-hero-map {
    border-radius: var(--prf-radius-xl);
    overflow: hidden;
    aspect-ratio: 4 / 3;
    box-shadow: 0 30px 80px -20px rgba(139, 47, 201, 0.5);
    border: 2px solid rgba(255, 255, 255, 0.1);
    background: var(--prf-ink-soft);
}

.prf-ub-hero-map iframe {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
    filter: saturate(1.1) contrast(1.05);
}

@media (max-width: 900px) {
    .prf-ub-hero-grid { grid-template-columns: 1fr; gap: 32px; }
    .prf-ub-hero-text { max-width: 100%; text-align: center; margin: 0 auto; }
    .prf-ub-hero-map { aspect-ratio: 16 / 10; }
}


/* =================================================================
   22.2  BREADCRUMB
   ================================================================= */
.prf-ub-crumbs,
.prf-page-crumbs {
    background: var(--prf-white);
    padding: 16px 24px;
    border-bottom: 1px solid var(--prf-sky-100);
}

.prf-ub-crumbs-inner,
.prf-page-crumbs-inner {
    max-width: var(--prf-container-max);
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: var(--prf-fs-xs);
    color: var(--prf-muted);
    font-family: var(--prf-font-mono);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.prf-ub-crumbs-inner a,
.prf-page-crumbs-inner a {
    color: var(--prf-muted);
    text-decoration: none;
    transition: color 0.2s;
}

.prf-ub-crumbs-inner a:hover,
.prf-page-crumbs-inner a:hover {
    color: var(--prf-pink);
}

.prf-ub-crumbs-inner span,
.prf-page-crumbs-inner span {
    color: var(--prf-pink);
    font-weight: 600;
}


/* =================================================================
   22.3  INFO PRÁCTICA grid
   ================================================================= */
.prf-ub-info {
    background: linear-gradient(180deg, var(--prf-white) 0%, var(--prf-sky-50) 100%);
}

.prf-ub-info-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.prf-ub-info-card {
    background: var(--prf-white);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-lg);
    padding: 32px 28px;
    transition: all 0.4s var(--prf-ease);
    text-align: center;
    position: relative;
    overflow: hidden;
}

.prf-ub-info-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: var(--prf-grad-pink);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.5s var(--prf-ease);
}

.prf-ub-info-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--prf-shadow-xl);
    border-color: var(--prf-pink);
}

.prf-ub-info-card:hover::before {
    transform: scaleX(1);
}

.prf-ub-info-icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 18px;
    background: var(--prf-grad-pink);
    border-radius: var(--prf-radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--prf-white);
    box-shadow: var(--prf-shadow-pink);
    transition: transform 0.4s var(--prf-ease-bounce);
}

.prf-ub-info-card:hover .prf-ub-info-icon {
    transform: rotate(-8deg) scale(1.1);
}

.prf-ub-info-label {
    font-family: var(--prf-font-mono);
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--prf-muted);
    margin-bottom: 8px;
}

.prf-ub-info-value {
    font-family: var(--prf-font-display);
    font-weight: 800;
    font-style: italic;
    font-size: 1.4rem;
    line-height: 1.15;
    text-transform: uppercase;
    letter-spacing: -0.5px;
    color: var(--prf-ink);
    margin-bottom: 8px;
}

.prf-ub-info-desc {
    font-size: var(--prf-fs-sm);
    color: var(--prf-muted);
    line-height: 1.5;
}

@media (max-width: 768px) {
    .prf-ub-info-grid { grid-template-columns: 1fr; max-width: 420px; margin: 0 auto; }
}


/* =================================================================
   22.4  CÓMO LLEGAR
   ================================================================= */
.prf-ub-howto {
    background: var(--prf-white);
}

.prf-ub-howto-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

.prf-ub-transport {
    background: linear-gradient(135deg, var(--prf-sky-50) 0%, var(--prf-white) 100%);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-lg);
    padding: 28px 22px;
    transition: all 0.4s var(--prf-ease);
    position: relative;
    overflow: hidden;
}

.prf-ub-transport:hover {
    transform: translateY(-6px);
    border-color: var(--prf-pink);
    box-shadow: var(--prf-shadow-lg);
}

.prf-ub-transport-icon {
    width: 48px;
    height: 48px;
    background: var(--prf-grad-pink);
    border-radius: var(--prf-radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--prf-white);
    margin-bottom: 16px;
    box-shadow: var(--prf-shadow-pink);
}

.prf-ub-transport h3 {
    font-family: var(--prf-font-display);
    font-weight: 800;
    font-style: italic;
    font-size: 1.2rem;
    line-height: 1.15;
    text-transform: uppercase;
    letter-spacing: -0.3px;
    color: var(--prf-ink);
    margin: 0 0 8px 0;
}

.prf-ub-transport p {
    font-size: var(--prf-fs-sm);
    color: var(--prf-muted);
    line-height: 1.5;
    margin: 0 0 12px 0;
}

.prf-ub-transport-meta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--prf-font-mono);
    font-size: 0.7rem;
    color: var(--prf-pink);
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 600;
}

@media (max-width: 1024px) {
    .prf-ub-howto-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 480px) {
    .prf-ub-howto-grid { grid-template-columns: 1fr; }
}


/* =================================================================
   22.5  PARKING cards (igualadas)
   ================================================================= */
.prf-ub-parking {
    background: linear-gradient(180deg, var(--prf-sky-50) 0%, var(--prf-white) 100%);
}

.prf-ub-parking-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    align-items: stretch;
}

.prf-ub-parking-card {
    background: var(--prf-white);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-lg);
    padding: 32px 28px;
    transition: all 0.4s var(--prf-ease);
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
}

.prf-ub-parking-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--prf-shadow-xl);
    border-color: var(--prf-pink);
}

.prf-ub-parking-card-recommended {
    border: 2px solid var(--prf-pink);
    background: linear-gradient(135deg, var(--prf-white) 0%, rgba(255, 45, 155, 0.04) 100%);
}

.prf-ub-parking-tag {
    position: absolute;
    top: -12px;
    left: 24px;
    background: var(--prf-grad-pink);
    color: var(--prf-white);
    padding: 6px 14px;
    border-radius: var(--prf-radius-pill);
    font-family: var(--prf-font-mono);
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    box-shadow: var(--prf-shadow-pink);
}

.prf-ub-parking-icon {
    width: 52px;
    height: 52px;
    background: var(--prf-grad-pink);
    border-radius: var(--prf-radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--prf-white);
    margin-bottom: 16px;
    box-shadow: var(--prf-shadow-pink);
    flex-shrink: 0;
}

.prf-ub-parking-name {
    font-family: var(--prf-font-display);
    font-weight: 800;
    font-style: italic;
    font-size: 1.3rem;
    line-height: 1.1;
    text-transform: uppercase;
    letter-spacing: -0.5px;
    color: var(--prf-ink);
    margin: 0 0 8px 0;
}

.prf-ub-parking-desc {
    font-size: var(--prf-fs-sm);
    color: var(--prf-muted);
    line-height: 1.5;
    margin: 0 0 16px 0;
    flex-grow: 1;
}

.prf-ub-parking-stats {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 20px;
}

.prf-ub-parking-stat {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: var(--prf-fs-xs);
    color: var(--prf-ink-soft);
    background: var(--prf-sky-50);
    padding: 6px 12px;
    border-radius: var(--prf-radius-pill);
    font-weight: 600;
}

.prf-ub-parking-stat svg {
    color: var(--prf-pink);
    flex-shrink: 0;
}

.prf-ub-parking-card .prf-btn,
.prf-ub-parking-card .prf-btn-pink {
    margin-top: auto;
    width: 100%;
    justify-content: center;
}

@media (max-width: 900px) {
    .prf-ub-parking-grid { grid-template-columns: 1fr; max-width: 480px; margin: 0 auto; }
}


/* =================================================================
   22.6  ALOJAMIENTO
   ================================================================= */
.prf-ub-stay {
    background: var(--prf-white);
}

.prf-ub-stay-card {
    background: var(--prf-grad-dark);
    color: var(--prf-white);
    border-radius: var(--prf-radius-xl);
    padding: 60px 50px;
    text-align: center;
    position: relative;
    overflow: hidden;
    box-shadow: 0 30px 80px -20px rgba(139, 47, 201, 0.4);
}

.prf-ub-stay-card::before {
    content: '';
    position: absolute;
    top: -100px;
    right: -100px;
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, rgba(255, 214, 0, 0.2) 0%, transparent 60%);
    pointer-events: none;
    animation: prfOrbFloat 12s ease-in-out infinite;
}

.prf-ub-stay-content {
    position: relative;
    z-index: 2;
    max-width: 640px;
    margin: 0 auto;
}

.prf-ub-stay-title {
    font-family: var(--prf-font-display);
    font-weight: 900;
    font-style: italic;
    font-size: clamp(2rem, 5vw, 3.5rem);
    line-height: 0.95;
    letter-spacing: -1px;
    text-transform: uppercase;
    margin: 16px 0 20px 0;
    color: var(--prf-white);
}

.prf-ub-stay-sub {
    font-size: var(--prf-fs-md);
    color: rgba(255, 255, 255, 0.85);
    margin-bottom: 32px;
}

@media (max-width: 600px) {
    .prf-ub-stay-card { padding: 48px 28px; }
}


/* =================================================================
   23. PREGUNTAS / FAQ — Página /preguntas/
   ================================================================= */
.prf-faq-hero {
    background: linear-gradient(135deg, var(--prf-ink) 0%, var(--prf-purple-deep) 100%);
    color: var(--prf-white);
    padding: clamp(60px, 10vh, 100px) clamp(20px, 4vw, 48px);
    text-align: center;
    position: relative;
    overflow: hidden;
}

.prf-faq-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 20% 30%, rgba(255, 45, 155, 0.3) 0%, transparent 55%),
        radial-gradient(circle at 80% 70%, rgba(14, 165, 233, 0.3) 0%, transparent 55%);
    pointer-events: none;
}

.prf-faq-hero-inner {
    position: relative;
    z-index: 2;
    max-width: 720px;
    margin: 0 auto;
}

.prf-faq-hero-title {
    font-family: var(--prf-font-display);
    font-weight: 900;
    font-style: italic;
    font-size: clamp(2.5rem, 6vw, 4.5rem);
    line-height: 0.95;
    letter-spacing: -1.5px;
    text-transform: uppercase;
    margin: 16px 0 20px 0;
    color: var(--prf-white);
}

.prf-faq-hero-title-accent {
    background: linear-gradient(135deg, var(--prf-yellow) 0%, var(--prf-pink) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.prf-faq-hero-sub {
    font-size: var(--prf-fs-md);
    color: rgba(255, 255, 255, 0.85);
    line-height: 1.6;
}

/* Categorías chips */
.prf-faq-categories {
    background: var(--prf-white);
    padding: 32px 24px;
    border-bottom: 1px solid var(--prf-sky-100);
    position: sticky;
    top: 90px;
    z-index: 80;
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    background: rgba(255, 255, 255, 0.95);
}

.prf-faq-categories-inner {
    max-width: var(--prf-container-max);
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.prf-faq-cat {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--prf-white);
    border: 1.5px solid var(--prf-sky-100);
    color: var(--prf-ink);
    padding: 10px 18px;
    border-radius: var(--prf-radius-pill);
    font-size: var(--prf-fs-xs);
    font-weight: 600;
    font-family: var(--prf-font-body);
    cursor: pointer;
    transition: all 0.3s var(--prf-ease);
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.prf-faq-cat:hover {
    border-color: var(--prf-pink);
    color: var(--prf-pink);
}

.prf-faq-cat.is-active {
    background: var(--prf-grad-pink);
    color: var(--prf-white);
    border-color: transparent;
    box-shadow: var(--prf-shadow-pink);
}

/* Items */
.prf-faq-list {
    background: linear-gradient(180deg, var(--prf-white) 0%, var(--prf-sky-50) 100%);
    padding: clamp(48px, 7vh, 80px) clamp(20px, 4vw, 48px);
}

.prf-faq-list-inner {
    max-width: 880px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.prf-faq-item {
    background: var(--prf-white);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-lg);
    overflow: hidden;
    transition: all 0.3s var(--prf-ease);
}

.prf-faq-item:hover {
    border-color: var(--prf-pink);
    box-shadow: var(--prf-shadow-md);
}

.prf-faq-item.is-open {
    border-color: var(--prf-pink);
    box-shadow: var(--prf-shadow-lg);
}

.prf-faq-q {
    width: 100%;
    background: none;
    border: none;
    padding: 22px 28px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    cursor: pointer;
    font-family: var(--prf-font-body);
    font-size: var(--prf-fs-base);
    font-weight: 600;
    color: var(--prf-ink);
    text-align: left;
    line-height: 1.4;
    transition: color 0.2s;
}

.prf-faq-q:hover {
    color: var(--prf-pink);
}

.prf-faq-item.is-open .prf-faq-q {
    color: var(--prf-pink);
}

.prf-faq-icon {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--prf-sky-50);
    color: var(--prf-pink);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s var(--prf-ease);
}

.prf-faq-item.is-open .prf-faq-icon {
    background: var(--prf-grad-pink);
    color: var(--prf-white);
    transform: rotate(45deg);
}

.prf-faq-a {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s var(--prf-ease);
}

.prf-faq-item.is-open .prf-faq-a {
    max-height: 1000px;
}

.prf-faq-a-inner {
    padding: 0 28px 24px 28px;
    color: var(--prf-ink-soft);
    line-height: 1.65;
    font-size: var(--prf-fs-sm);
}

.prf-faq-a-inner p {
    margin: 0 0 10px 0;
}

.prf-faq-a-inner p:last-child {
    margin-bottom: 0;
}

.prf-faq-a-inner ul {
    list-style: none;
    padding: 0;
    margin: 12px 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.prf-faq-a-inner ul li {
    padding-left: 20px;
    position: relative;
}

.prf-faq-a-inner ul li::before {
    content: '→';
    position: absolute;
    left: 0;
    color: var(--prf-pink);
    font-weight: 700;
}

.prf-faq-a-inner a {
    color: var(--prf-pink);
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: rgba(255, 45, 155, 0.3);
    transition: text-decoration-color 0.2s;
}

.prf-faq-a-inner a:hover {
    text-decoration-color: var(--prf-pink);
}

.prf-faq-a-inner strong {
    color: var(--prf-ink);
    font-weight: 700;
}

/* CTA contacto FAQ */
.prf-faq-cta {
    background: var(--prf-white);
    padding: clamp(48px, 7vh, 80px) clamp(20px, 4vw, 48px);
}

.prf-faq-cta-card {
    max-width: 720px;
    margin: 0 auto;
    background: var(--prf-grad-dark);
    color: var(--prf-white);
    padding: 48px 40px;
    border-radius: var(--prf-radius-xl);
    text-align: center;
    position: relative;
    overflow: hidden;
    box-shadow: 0 30px 80px -20px rgba(139, 47, 201, 0.4);
}

.prf-faq-cta-card::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 70% 30%, rgba(255, 214, 0, 0.2) 0%, transparent 55%);
    pointer-events: none;
}

.prf-faq-cta-card > * {
    position: relative;
    z-index: 1;
}

.prf-faq-cta-title {
    font-family: var(--prf-font-display);
    font-weight: 900;
    font-style: italic;
    font-size: clamp(1.8rem, 4vw, 2.6rem);
    line-height: 1;
    letter-spacing: -0.5px;
    text-transform: uppercase;
    margin: 0 0 16px 0;
    color: var(--prf-white);
}

.prf-faq-cta-sub {
    font-size: var(--prf-fs-md);
    color: rgba(255, 255, 255, 0.85);
    margin-bottom: 28px;
}

.prf-faq-cta-row {
    display: flex;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
}


/* =================================================================
   24. CONTACTO — Página /contacto/
   ================================================================= */
.prf-co-hero {
    background: linear-gradient(135deg, var(--prf-ink) 0%, var(--prf-purple-deep) 100%);
    color: var(--prf-white);
    padding: clamp(60px, 10vh, 100px) clamp(20px, 4vw, 48px);
    text-align: center;
    position: relative;
    overflow: hidden;
}

.prf-co-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 30% 30%, rgba(255, 45, 155, 0.3) 0%, transparent 55%),
        radial-gradient(circle at 70% 70%, rgba(14, 165, 233, 0.3) 0%, transparent 55%);
    pointer-events: none;
}

.prf-co-hero-inner {
    position: relative;
    z-index: 2;
    max-width: 720px;
    margin: 0 auto;
}

.prf-co-hero-title {
    font-family: var(--prf-font-display);
    font-weight: 900;
    font-style: italic;
    font-size: clamp(2.5rem, 6vw, 4.5rem);
    line-height: 0.95;
    letter-spacing: -1.5px;
    text-transform: uppercase;
    margin: 16px 0 20px 0;
    color: var(--prf-white);
}

.prf-co-hero-title-accent {
    background: linear-gradient(135deg, var(--prf-yellow) 0%, var(--prf-pink) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.prf-co-hero-sub {
    font-size: var(--prf-fs-md);
    color: rgba(255, 255, 255, 0.85);
    line-height: 1.6;
}

/* Quick contact cards */
.prf-co-quick {
    background: linear-gradient(180deg, var(--prf-white) 0%, var(--prf-sky-50) 100%);
}

.prf-co-quick-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.prf-co-quick-card {
    background: var(--prf-white);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-lg);
    padding: 32px 28px;
    text-align: center;
    transition: all 0.4s var(--prf-ease);
    position: relative;
    overflow: hidden;
    text-decoration: none;
    color: var(--prf-ink);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.prf-co-quick-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: var(--prf-grad-pink);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.5s var(--prf-ease);
}

.prf-co-quick-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--prf-shadow-xl);
    border-color: var(--prf-pink);
    color: var(--prf-ink);
}

.prf-co-quick-card:hover::before {
    transform: scaleX(1);
}

.prf-co-quick-icon {
    width: 56px;
    height: 56px;
    margin-bottom: 18px;
    background: var(--prf-grad-pink);
    border-radius: var(--prf-radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--prf-white);
    box-shadow: var(--prf-shadow-pink);
    transition: transform 0.4s var(--prf-ease-bounce);
}

.prf-co-quick-card:hover .prf-co-quick-icon {
    transform: rotate(-8deg) scale(1.1);
}

.prf-co-quick-label {
    font-family: var(--prf-font-mono);
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--prf-muted);
    margin-bottom: 8px;
}

.prf-co-quick-value {
    font-family: var(--prf-font-display);
    font-weight: 800;
    font-style: italic;
    font-size: 1.25rem;
    line-height: 1.15;
    color: var(--prf-ink);
    margin-bottom: 6px;
    word-break: break-all;
}

.prf-co-quick-meta {
    font-size: var(--prf-fs-xs);
    color: var(--prf-muted);
}

@media (max-width: 768px) {
    .prf-co-quick-grid { grid-template-columns: 1fr; max-width: 420px; margin: 0 auto; }
}

/* Form */
.prf-co-form {
    background: var(--prf-white);
}

.prf-co-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: start;
}

.prf-co-form-info-title {
    font-family: var(--prf-font-display);
    font-weight: 900;
    font-style: italic;
    font-size: clamp(2rem, 5vw, 3rem);
    line-height: 1;
    letter-spacing: -1px;
    text-transform: uppercase;
    margin: 16px 0 16px 0;
}

.prf-co-form-info p {
    color: var(--prf-muted);
    line-height: 1.65;
    margin-bottom: 20px;
}

.prf-co-form-list {
    list-style: none;
    padding: 0;
    margin: 24px 0 0 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.prf-co-form-list li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    color: var(--prf-ink-soft);
}

.prf-co-form-list li svg {
    flex-shrink: 0;
    color: var(--prf-pink);
    margin-top: 2px;
}

.prf-co-form-list strong {
    display: block;
    color: var(--prf-ink);
    font-weight: 700;
    margin-bottom: 2px;
}

.prf-co-form-list span {
    font-size: var(--prf-fs-sm);
    color: var(--prf-muted);
}

.prf-co-form-card {
    background: var(--prf-sky-50);
    border-radius: var(--prf-radius-xl);
    padding: 40px 36px;
    border: 1px solid var(--prf-sky-100);
}

.prf-co-form-row {
    margin-bottom: 18px;
}

.prf-co-form-row label {
    display: block;
    font-size: var(--prf-fs-xs);
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--prf-ink);
    font-weight: 600;
    margin-bottom: 8px;
}

.prf-co-form-row input,
.prf-co-form-row textarea,
.prf-co-form-row select {
    width: 100%;
    padding: 14px 16px;
    border: 1.5px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-sm);
    background: var(--prf-white);
    font-family: var(--prf-font-body);
    font-size: var(--prf-fs-base);
    color: var(--prf-ink);
    transition: all 0.2s;
}

.prf-co-form-row input:focus,
.prf-co-form-row textarea:focus,
.prf-co-form-row select:focus {
    outline: none;
    border-color: var(--prf-pink);
    box-shadow: 0 0 0 3px rgba(255, 45, 155, 0.1);
}

.prf-co-form-row textarea {
    resize: vertical;
    min-height: 120px;
}

.prf-co-form-card .prf-btn,
.prf-co-form-card .prf-btn-pink,
.prf-co-form-card button[type="submit"] {
    width: 100%;
    justify-content: center;
    margin-top: 8px;
}

@media (max-width: 900px) {
    .prf-co-form-grid { grid-template-columns: 1fr; gap: 40px; }
    .prf-co-form-card { padding: 32px 24px; }
}


/* =================================================================
   25. EMBAJADORES — Página /embajadores/ (pública)
   ================================================================= */
.prf-emb {
    background: var(--prf-white);
}

.prf-emb-hero {
    position: relative;
    background: var(--prf-grad-dark);
    color: var(--prf-white);
    padding: clamp(80px, 12vh, 140px) clamp(20px, 4vw, 48px) clamp(80px, 14vh, 160px);
    overflow: hidden;
    text-align: center;
}

.prf-emb-hero::before {
    content: '';
    position: absolute;
    top: -100px;
    left: -100px;
    width: 600px;
    height: 600px;
    background: radial-gradient(circle, rgba(255, 45, 155, 0.3) 0%, transparent 60%);
    pointer-events: none;
    animation: prfOrbFloat 14s ease-in-out infinite;
}

.prf-emb-hero::after {
    content: '';
    position: absolute;
    bottom: -100px;
    right: -100px;
    width: 600px;
    height: 600px;
    background: radial-gradient(circle, rgba(255, 214, 0, 0.2) 0%, transparent 60%);
    pointer-events: none;
    animation: prfOrbFloat 16s ease-in-out infinite reverse;
}

.prf-emb-hero-inner {
    position: relative;
    z-index: 2;
    max-width: 800px;
    margin: 0 auto;
}

.prf-emb-hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    padding: 8px 18px;
    border-radius: var(--prf-radius-pill);
    border: 1px solid rgba(255, 255, 255, 0.15);
    font-family: var(--prf-font-mono);
    font-size: var(--prf-fs-xs);
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--prf-white);
    margin-bottom: 24px;
}

.prf-emb-hero-title {
    font-family: var(--prf-font-display);
    font-weight: 900;
    font-style: italic;
    font-size: clamp(2.8rem, 7vw, 5rem);
    line-height: 0.92;
    letter-spacing: -2px;
    text-transform: uppercase;
    margin: 0 0 20px 0;
    color: var(--prf-white);
    text-shadow: 0 4px 30px rgba(0, 0, 0, 0.3);
}

.prf-emb-hero-title-accent {
    background: linear-gradient(135deg, var(--prf-yellow) 0%, var(--prf-pink) 100%);
    background-size: 200% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: prfGradientShift 5s ease infinite;
}

.prf-emb-hero-sub {
    font-size: var(--prf-fs-md);
    color: rgba(255, 255, 255, 0.85);
    line-height: 1.6;
    max-width: 580px;
    margin: 0 auto 32px;
}

/* Cómo funciona steps */
.prf-emb-how {
    background: linear-gradient(180deg, var(--prf-white) 0%, var(--prf-sky-50) 100%);
}

.prf-emb-how-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.prf-emb-how-card {
    background: var(--prf-white);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-lg);
    padding: 36px 28px 32px;
    transition: all 0.4s var(--prf-ease);
    position: relative;
    text-align: center;
}

.prf-emb-how-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--prf-shadow-xl);
    border-color: var(--prf-pink);
}

.prf-emb-how-num {
    position: absolute;
    top: 16px;
    right: 18px;
    font-family: var(--prf-font-display);
    font-weight: 900;
    font-style: italic;
    font-size: 2.4rem;
    line-height: 1;
    color: var(--prf-sky-100);
    transition: color 0.3s;
}

.prf-emb-how-card:hover .prf-emb-how-num {
    color: var(--prf-pink);
}

.prf-emb-how-icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 18px;
    background: var(--prf-grad-pink);
    border-radius: var(--prf-radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--prf-white);
    box-shadow: var(--prf-shadow-pink);
    transition: transform 0.4s var(--prf-ease-bounce);
}

.prf-emb-how-card:hover .prf-emb-how-icon {
    transform: rotate(-8deg) scale(1.1);
}

.prf-emb-how-title {
    font-family: var(--prf-font-display);
    font-weight: 800;
    font-style: italic;
    font-size: 1.3rem;
    line-height: 1.15;
    text-transform: uppercase;
    letter-spacing: -0.3px;
    color: var(--prf-ink);
    margin: 0 0 10px 0;
}

.prf-emb-how-desc {
    font-size: var(--prf-fs-sm);
    color: var(--prf-muted);
    line-height: 1.55;
}

@media (max-width: 900px) {
    .prf-emb-how-grid { grid-template-columns: 1fr; max-width: 420px; margin: 0 auto; }
}

/* Niveles / tiers */
.prf-emb-tiers {
    background: var(--prf-white);
}

.prf-emb-tiers-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

.prf-emb-tier-card {
    background: var(--prf-white);
    border: 2px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-lg);
    padding: 32px 22px 28px;
    text-align: center;
    transition: all 0.4s var(--prf-ease);
    position: relative;
    overflow: hidden;
}

.prf-emb-tier-card:hover {
    transform: translateY(-8px);
    box-shadow: var(--prf-shadow-xl);
    border-color: var(--prf-pink);
}

.prf-emb-tier-icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 16px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.8rem;
    background: var(--prf-grad-pink);
    color: var(--prf-white);
    box-shadow: var(--prf-shadow-pink);
}

.prf-emb-tier-card:nth-child(1) .prf-emb-tier-icon {
    background: linear-gradient(135deg, var(--prf-sky-400) 0%, var(--prf-sky-600) 100%);
    box-shadow: 0 10px 30px -8px rgba(14, 165, 233, 0.5);
}

.prf-emb-tier-card:nth-child(2) .prf-emb-tier-icon {
    background: linear-gradient(135deg, var(--prf-pink) 0%, var(--prf-purple) 100%);
}

.prf-emb-tier-card:nth-child(3) .prf-emb-tier-icon {
    background: var(--prf-grad-yellow);
    color: var(--prf-ink);
    box-shadow: var(--prf-shadow-yellow);
}

.prf-emb-tier-card:nth-child(4) .prf-emb-tier-icon {
    background: linear-gradient(135deg, var(--prf-purple) 0%, var(--prf-pink) 100%);
}

.prf-emb-tier-name {
    font-family: var(--prf-font-display);
    font-weight: 800;
    font-style: italic;
    font-size: 1.2rem;
    line-height: 1.1;
    text-transform: uppercase;
    letter-spacing: -0.3px;
    color: var(--prf-ink);
    margin: 0 0 6px 0;
}

.prf-emb-tier-req {
    font-family: var(--prf-font-mono);
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--prf-muted);
    margin: 0 0 16px 0;
}

.prf-emb-tier-desc {
    font-size: var(--prf-fs-sm);
    color: var(--prf-ink-soft);
    line-height: 1.5;
}

@media (max-width: 900px) {
    .prf-emb-tiers-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 480px) {
    .prf-emb-tiers-grid { grid-template-columns: 1fr; max-width: 360px; margin: 0 auto; }
}

/* CTA final embajadores */
.prf-emb-cta {
    background: linear-gradient(180deg, var(--prf-sky-50) 0%, var(--prf-white) 100%);
}

.prf-emb-cta-card {
    max-width: 720px;
    margin: 0 auto;
    background: var(--prf-grad-dark);
    color: var(--prf-white);
    padding: 56px 44px;
    border-radius: var(--prf-radius-xl);
    text-align: center;
    position: relative;
    overflow: hidden;
    box-shadow: 0 30px 80px -20px rgba(139, 47, 201, 0.5);
}

.prf-emb-cta-card::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 70% 30%, rgba(255, 214, 0, 0.25) 0%, transparent 55%);
    pointer-events: none;
}

.prf-emb-cta-card > * {
    position: relative;
    z-index: 1;
}

.prf-emb-cta-title {
    font-family: var(--prf-font-display);
    font-weight: 900;
    font-style: italic;
    font-size: clamp(2rem, 5vw, 3rem);
    line-height: 0.95;
    letter-spacing: -1px;
    text-transform: uppercase;
    margin: 0 0 16px 0;
    color: var(--prf-white);
}

.prf-emb-cta-sub {
    font-size: var(--prf-fs-md);
    color: rgba(255, 255, 255, 0.85);
    margin-bottom: 28px;
}

.prf-emb-cta-row {
    display: flex;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
}
/* =================================================================
   26. ENTRADAS — Página /entradas/
   -----------------------------------------------------------------
     26.1  HERO ENTRADAS (con countdown ocultable)
     26.2  TABS Generales / Residentes
     26.3  TICKETS GRID (3 cards por tab)
     26.4  BENEFICIOS
     26.5  POLÍTICAS / FAQ corto
   ================================================================= */


/* =================================================================
   26.1  HERO ENTRADAS + COUNTDOWN OCULTABLE
   ================================================================= */
.prf-tk-hero {
    position: relative;
    background: linear-gradient(135deg, var(--prf-ink) 0%, var(--prf-purple-deep) 100%);
    color: var(--prf-white);
    padding: clamp(60px, 10vh, 100px) clamp(20px, 4vw, 48px) clamp(40px, 6vh, 60px);
    overflow: hidden;
    text-align: center;
}

.prf-tk-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 20% 30%, rgba(255, 45, 155, 0.3) 0%, transparent 55%),
        radial-gradient(circle at 80% 70%, rgba(255, 214, 0, 0.2) 0%, transparent 55%);
    pointer-events: none;
}

.prf-tk-hero-inner {
    position: relative;
    z-index: 2;
    max-width: 760px;
    margin: 0 auto;
}

.prf-tk-hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    padding: 8px 18px;
    border-radius: var(--prf-radius-pill);
    border: 1px solid rgba(255, 255, 255, 0.15);
    font-family: var(--prf-font-mono);
    font-size: var(--prf-fs-xs);
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--prf-white);
    margin-bottom: 20px;
}

.prf-tk-hero-title {
    font-family: var(--prf-font-display);
    font-weight: 900;
    font-style: italic;
    font-size: clamp(2.8rem, 7vw, 5rem);
    line-height: 0.92;
    letter-spacing: -2px;
    text-transform: uppercase;
    margin: 0 0 18px 0;
    color: var(--prf-white);
    text-shadow: 0 4px 30px rgba(0, 0, 0, 0.3);
}

.prf-tk-hero-title-accent {
    background: linear-gradient(135deg, var(--prf-yellow) 0%, var(--prf-pink) 100%);
    background-size: 200% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: prfGradientShift 5s ease infinite;
}

.prf-tk-hero-sub {
    font-size: var(--prf-fs-md);
    color: rgba(255, 255, 255, 0.85);
    line-height: 1.6;
    margin-bottom: 32px;
}

/* Countdown (ocultable con close) */
.prf-tk-countdown-wrap {
    position: relative;
    display: inline-block;
    transition: opacity 0.4s, transform 0.4s, max-height 0.5s;
    max-height: 200px;
    overflow: hidden;
}

.prf-tk-countdown-wrap.is-closed {
    opacity: 0;
    transform: translateY(-10px);
    max-height: 0;
    margin: 0;
    padding: 0;
}

.prf-tk-countdown {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: rgba(255, 255, 255, 0.08);
    backdrop-filter: blur(20px) saturate(180%);
    -webkit-backdrop-filter: blur(20px) saturate(180%);
    border: 1px solid rgba(255, 255, 255, 0.15);
    padding: 18px 56px 18px 28px;
    border-radius: var(--prf-radius-lg);
    box-shadow: 0 20px 50px -20px rgba(0, 0, 0, 0.5);
    position: relative;
}

.prf-tk-countdown-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    min-width: 60px;
}

.prf-tk-countdown-num {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    font-size: clamp(1.8rem, 4vw, 2.6rem);
    line-height: 1;
    color: var(--prf-yellow);
    text-shadow: 0 0 30px rgba(255, 214, 0, 0.4);
    font-variant-numeric: tabular-nums;
    letter-spacing: -1px;
}

.prf-tk-countdown-label {
    font-family: var(--prf-font-mono);
    font-size: 0.6rem;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: rgba(255, 255, 255, 0.7);
}

.prf-tk-countdown-sep {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    font-size: clamp(1.4rem, 3vw, 2rem);
    color: rgba(255, 255, 255, 0.4);
    margin-top: -12px;
}

.prf-tk-countdown-close {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.1);
    border: none;
    color: var(--prf-white);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s;
}

.prf-tk-countdown-close:hover {
    background: rgba(255, 255, 255, 0.2);
}

@media (max-width: 600px) {
    .prf-tk-countdown { gap: 6px; padding: 14px 44px 14px 18px; }
    .prf-tk-countdown-block { min-width: 44px; }
    .prf-tk-countdown-sep { display: none; }
}


/* =================================================================
   26.2  TABS Generales / Residentes
   ================================================================= */
.prf-tk-tabs-wrap {
    background: var(--prf-white);
    padding: clamp(40px, 6vh, 60px) clamp(20px, 4vw, 48px) 0;
    text-align: center;
}

.prf-tk-tabs {
    display: inline-flex;
    background: var(--prf-sky-50);
    border: 1px solid var(--prf-sky-100);
    padding: 6px;
    border-radius: var(--prf-radius-pill);
    gap: 4px;
}

.prf-tk-tab {
    background: none;
    border: none;
    padding: 12px 28px;
    font-family: var(--prf-font-body);
    font-size: var(--prf-fs-sm);
    font-weight: 600;
    color: var(--prf-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-radius: var(--prf-radius-pill);
    cursor: pointer;
    transition: all 0.3s var(--prf-ease);
}

.prf-tk-tab.is-active {
    background: var(--prf-grad-pink);
    color: var(--prf-white);
    box-shadow: var(--prf-shadow-pink);
}

.prf-tk-tab:not(.is-active):hover {
    color: var(--prf-pink);
}


/* =================================================================
   26.3  TICKETS GRID (3 cards)
   ================================================================= */
.prf-tk-grid-section {
    background: linear-gradient(180deg, var(--prf-white) 0%, var(--prf-sky-50) 100%);
    padding: clamp(40px, 6vh, 60px) clamp(20px, 4vw, 48px) clamp(60px, 9vh, 90px);
}

.prf-tk-grid {
    max-width: var(--prf-container-max);
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.prf-tk-card {
    background: var(--prf-white);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-xl);
    padding: 36px 28px 28px;
    position: relative;
    transition: all 0.4s var(--prf-ease);
    display: flex;
    flex-direction: column;
}

.prf-tk-card:hover {
    transform: translateY(-10px);
    box-shadow: var(--prf-shadow-xl);
    border-color: var(--prf-pink);
}

.prf-tk-card-featured {
    background: var(--prf-grad-dark);
    color: var(--prf-white);
    border: none;
    transform: scale(1.04);
    box-shadow: 0 30px 80px -20px rgba(139, 47, 201, 0.5);
    position: relative;
    z-index: 2;
    overflow: hidden;
}

.prf-tk-card-featured::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 80% 20%, rgba(255, 214, 0, 0.2) 0%, transparent 50%),
        radial-gradient(circle at 20% 80%, rgba(255, 45, 155, 0.2) 0%, transparent 50%);
    pointer-events: none;
}

.prf-tk-card-featured > * {
    position: relative;
    z-index: 1;
}

.prf-tk-card-featured:hover {
    transform: scale(1.04) translateY(-8px);
    box-shadow: 0 40px 100px -20px rgba(139, 47, 201, 0.7);
}

.prf-tk-badge {
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--prf-yellow);
    color: var(--prf-ink);
    padding: 6px 16px;
    border-radius: var(--prf-radius-pill);
    font-family: var(--prf-font-mono);
    font-size: var(--prf-fs-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    box-shadow: 0 8px 24px -6px rgba(255, 214, 0, 0.6);
    white-space: nowrap;
    z-index: 3;
}

.prf-tk-card-tag {
    font-family: var(--prf-font-mono);
    font-size: var(--prf-fs-xs);
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--prf-muted);
    margin-bottom: 12px;
}

.prf-tk-card-featured .prf-tk-card-tag {
    color: rgba(255, 255, 255, 0.7);
}

.prf-tk-card-name {
    font-family: var(--prf-font-display);
    font-weight: 900;
    font-style: italic;
    font-size: 1.6rem;
    line-height: 1.05;
    text-transform: uppercase;
    letter-spacing: -0.5px;
    margin: 0 0 14px 0;
    color: var(--prf-ink);
}

.prf-tk-card-featured .prf-tk-card-name {
    color: var(--prf-white);
}

.prf-tk-card-price-row {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin-bottom: 16px;
}

.prf-tk-card-price {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    font-size: 2.8rem;
    line-height: 1;
    background: var(--prf-grad-pink);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.prf-tk-card-featured .prf-tk-card-price {
    background: linear-gradient(135deg, var(--prf-yellow) 0%, #fff 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.prf-tk-card-currency {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 800;
    font-size: 1.2rem;
    color: var(--prf-muted);
}

.prf-tk-card-featured .prf-tk-card-currency {
    color: rgba(255, 255, 255, 0.6);
}

.prf-tk-card-desc {
    font-size: var(--prf-fs-sm);
    color: var(--prf-muted);
    line-height: 1.5;
    margin-bottom: 20px;
}

.prf-tk-card-featured .prf-tk-card-desc {
    color: rgba(255, 255, 255, 0.75);
}

.prf-tk-card-features {
    list-style: none;
    padding: 0;
    margin: 0 0 24px 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
}

.prf-tk-card-features li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: var(--prf-fs-sm);
    color: var(--prf-ink);
    padding: 6px 0;
    border-bottom: 1px dashed var(--prf-sky-100);
    line-height: 1.4;
}

.prf-tk-card-features li:last-child { border-bottom: none; }

.prf-tk-card-features li::before {
    content: '✓';
    color: var(--prf-pink);
    font-weight: 900;
    flex-shrink: 0;
    background: rgba(255, 45, 155, 0.1);
    width: 20px;
    height: 20px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.7rem;
}

.prf-tk-card-featured .prf-tk-card-features li {
    color: rgba(255, 255, 255, 0.9);
    border-bottom-color: rgba(255, 255, 255, 0.1);
}

.prf-tk-card-featured .prf-tk-card-features li::before {
    color: var(--prf-yellow);
    background: rgba(255, 214, 0, 0.2);
}

.prf-tk-card .prf-btn,
.prf-tk-card .prf-btn-pink,
.prf-tk-card .prf-btn-dark,
.prf-tk-card .prf-btn-yellow {
    width: 100%;
    justify-content: center;
}

@media (max-width: 1024px) {
    .prf-tk-grid {
        grid-template-columns: 1fr;
        max-width: 480px;
        margin-left: auto;
        margin-right: auto;
    }
    .prf-tk-card-featured { transform: none; }
    .prf-tk-card-featured:hover { transform: translateY(-8px); }
}


/* =================================================================
   26.4  BENEFICIOS
   ================================================================= */
.prf-tk-benefits {
    background: var(--prf-white);
}

.prf-tk-benefits-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

.prf-tk-benefit {
    text-align: center;
    padding: 24px 18px;
    border-radius: var(--prf-radius-md);
    background: var(--prf-sky-50);
    border: 1px solid var(--prf-sky-100);
    transition: all 0.3s var(--prf-ease);
}

.prf-tk-benefit:hover {
    transform: translateY(-4px);
    border-color: var(--prf-pink);
    background: var(--prf-white);
    box-shadow: var(--prf-shadow-md);
}

.prf-tk-benefit-icon {
    width: 48px;
    height: 48px;
    margin: 0 auto 12px;
    background: var(--prf-grad-pink);
    border-radius: var(--prf-radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--prf-white);
    box-shadow: var(--prf-shadow-pink);
    transition: transform 0.4s var(--prf-ease-bounce);
}

.prf-tk-benefit:hover .prf-tk-benefit-icon {
    transform: rotate(-8deg) scale(1.1);
}

.prf-tk-benefit-title {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 800;
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: -0.3px;
    color: var(--prf-ink);
    margin: 0 0 4px 0;
}

.prf-tk-benefit-desc {
    font-size: 0.8rem;
    color: var(--prf-muted);
    line-height: 1.4;
}

@media (max-width: 1024px) {
    .prf-tk-benefits-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 480px) {
    .prf-tk-benefits-grid { grid-template-columns: 1fr; max-width: 320px; margin: 0 auto; }
}


/* =================================================================
   26.5  POLÍTICAS / FAQ corto
   ================================================================= */
.prf-tk-policies {
    background: linear-gradient(180deg, var(--prf-sky-50) 0%, var(--prf-white) 100%);
}

.prf-tk-policies-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    max-width: 880px;
    margin: 0 auto;
}

.prf-tk-policy {
    background: var(--prf-white);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-md);
    padding: 24px 24px;
    display: flex;
    align-items: flex-start;
    gap: 16px;
    transition: all 0.3s var(--prf-ease);
}

.prf-tk-policy:hover {
    border-color: var(--prf-pink);
    transform: translateY(-3px);
    box-shadow: var(--prf-shadow-md);
}

.prf-tk-policy-icon {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: var(--prf-radius-sm);
    background: rgba(255, 45, 155, 0.1);
    color: var(--prf-pink);
    display: flex;
    align-items: center;
    justify-content: center;
}

.prf-tk-policy-title {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 800;
    font-size: 1.05rem;
    text-transform: uppercase;
    letter-spacing: -0.3px;
    color: var(--prf-ink);
    margin: 0 0 4px 0;
}

.prf-tk-policy-desc {
    font-size: var(--prf-fs-sm);
    color: var(--prf-muted);
    line-height: 1.5;
    margin: 0;
}

@media (max-width: 700px) {
    .prf-tk-policies-grid { grid-template-columns: 1fr; }
}


/* =================================================================
   27. PÁGINAS LEGALES — Aviso legal · Términos · Privacidad+Cookies
   -----------------------------------------------------------------
     27.1  HERO LEGAL (con icono)
     27.2  CRUMBS
     27.3  LAYOUT 2 cols (TOC sticky + contenido)
     27.4  TIPOGRAFÍA legal
   ================================================================= */


/* =================================================================
   27.1  HERO LEGAL
   ================================================================= */
.prf-legal {
    background: var(--prf-white);
    color: var(--prf-text-on-light);
}

.prf-legal-hero {
    position: relative;
    background: var(--prf-grad-dark);
    color: var(--prf-white);
    padding: clamp(60px, 10vh, 100px) clamp(20px, 4vw, 48px) clamp(60px, 9vh, 80px);
    overflow: hidden;
    text-align: center;
}

.prf-legal-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 20% 30%, rgba(255, 45, 155, 0.25) 0%, transparent 55%),
        radial-gradient(circle at 80% 70%, rgba(14, 165, 233, 0.25) 0%, transparent 55%);
    pointer-events: none;
}

.prf-legal-hero-inner {
    position: relative;
    z-index: 2;
    max-width: 720px;
    margin: 0 auto;
}

.prf-legal-hero-icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 20px;
    background: var(--prf-grad-pink);
    border-radius: var(--prf-radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--prf-white);
    box-shadow: var(--prf-shadow-pink);
}

.prf-legal-hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    padding: 8px 18px;
    border-radius: var(--prf-radius-pill);
    border: 1px solid rgba(255, 255, 255, 0.15);
    font-family: var(--prf-font-mono);
    font-size: var(--prf-fs-xs);
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--prf-white);
    margin-bottom: 18px;
}

.prf-legal-hero-title {
    font-family: var(--prf-font-display);
    font-weight: 900;
    font-style: italic;
    font-size: clamp(2.2rem, 5.5vw, 3.8rem);
    line-height: 0.95;
    letter-spacing: -1.5px;
    text-transform: uppercase;
    margin: 0 0 16px 0;
    color: var(--prf-white);
    text-shadow: 0 4px 30px rgba(0, 0, 0, 0.3);
}

.prf-legal-hero-sub {
    font-size: var(--prf-fs-md);
    color: rgba(255, 255, 255, 0.8);
    line-height: 1.6;
    margin: 0;
}

.prf-legal-hero-meta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 16px;
    font-family: var(--prf-font-mono);
    font-size: var(--prf-fs-xs);
    color: rgba(255, 255, 255, 0.6);
    text-transform: uppercase;
    letter-spacing: 1px;
}


/* =================================================================
   27.2  CRUMBS legales
   ================================================================= */
.prf-legal-crumbs {
    background: var(--prf-white);
    padding: 16px 24px;
    border-bottom: 1px solid var(--prf-sky-100);
}

.prf-legal-crumbs-inner {
    max-width: var(--prf-container-max);
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: var(--prf-fs-xs);
    color: var(--prf-muted);
    font-family: var(--prf-font-mono);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.prf-legal-crumbs-inner a {
    color: var(--prf-muted);
    text-decoration: none;
}

.prf-legal-crumbs-inner a:hover {
    color: var(--prf-pink);
}

.prf-legal-crumbs-inner span {
    color: var(--prf-pink);
    font-weight: 600;
}


/* =================================================================
   27.3  LAYOUT 2 cols (TOC + contenido)
   ================================================================= */
.prf-legal-body {
    background: var(--prf-white);
    padding: clamp(48px, 7vh, 80px) clamp(20px, 4vw, 48px);
}

.prf-legal-body-inner {
    max-width: 1180px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 60px;
    align-items: start;
}

/* TOC sticky */
.prf-legal-toc {
    position: sticky;
    top: 110px;
    background: var(--prf-sky-50);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-lg);
    padding: 24px 22px;
    max-height: calc(100vh - 130px);
    overflow-y: auto;
}

.prf-legal-toc-title {
    font-family: var(--prf-font-mono);
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--prf-pink);
    font-weight: 700;
    margin: 0 0 14px 0;
}

.prf-legal-toc-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.prf-legal-toc-list a {
    display: block;
    padding: 8px 12px;
    font-size: var(--prf-fs-sm);
    color: var(--prf-ink-soft);
    text-decoration: none;
    border-radius: var(--prf-radius-sm);
    transition: all 0.2s;
    line-height: 1.4;
    border-left: 2px solid transparent;
}

.prf-legal-toc-list a:hover,
.prf-legal-toc-list a.is-active {
    background: var(--prf-white);
    color: var(--prf-pink);
    border-left-color: var(--prf-pink);
}

/* Contenido */
.prf-legal-content {
    color: var(--prf-text-on-light);
    line-height: 1.7;
    font-size: var(--prf-fs-base);
    min-width: 0;
}

.prf-legal-content > section {
    margin-bottom: 48px;
    scroll-margin-top: 110px;
}

.prf-legal-content > section:last-child {
    margin-bottom: 0;
}

.prf-legal-content h2 {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    font-size: clamp(1.5rem, 3vw, 2rem);
    line-height: 1.1;
    text-transform: uppercase;
    letter-spacing: -0.5px;
    color: var(--prf-ink);
    margin: 0 0 18px 0;
    padding-bottom: 14px;
    border-bottom: 2px solid var(--prf-sky-100);
    position: relative;
}

.prf-legal-content h2::before {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 60px;
    height: 2px;
    background: var(--prf-grad-pink);
}

.prf-legal-content h3 {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 800;
    font-size: clamp(1.15rem, 2.2vw, 1.4rem);
    line-height: 1.2;
    text-transform: uppercase;
    letter-spacing: -0.3px;
    color: var(--prf-ink);
    margin: 28px 0 12px 0;
}

.prf-legal-content h4 {
    font-family: var(--prf-font-body);
    font-style: normal;
    font-weight: 700;
    font-size: 1.05rem;
    color: var(--prf-ink);
    margin: 20px 0 8px 0;
}

.prf-legal-content p {
    color: var(--prf-ink-soft);
    margin: 0 0 14px 0;
    line-height: 1.7;
}

.prf-legal-content a {
    color: var(--prf-pink);
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: rgba(255, 45, 155, 0.3);
    transition: text-decoration-color 0.2s;
}

.prf-legal-content a:hover {
    text-decoration-color: var(--prf-pink);
}

.prf-legal-content strong {
    color: var(--prf-ink);
    font-weight: 700;
}

.prf-legal-content ul,
.prf-legal-content ol {
    margin: 0 0 16px 0;
    padding-left: 24px;
    color: var(--prf-ink-soft);
}

.prf-legal-content ul li,
.prf-legal-content ol li {
    margin-bottom: 8px;
    line-height: 1.65;
    list-style: disc;
}

.prf-legal-content ol li {
    list-style: decimal;
}

.prf-legal-content ul li::marker {
    color: var(--prf-pink);
}

.prf-legal-content table {
    width: 100%;
    border-collapse: collapse;
    margin: 16px 0;
    font-size: var(--prf-fs-sm);
    background: var(--prf-white);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-md);
    overflow: hidden;
}

.prf-legal-content table th,
.prf-legal-content table td {
    padding: 12px 16px;
    text-align: left;
    border-bottom: 1px solid var(--prf-sky-100);
    color: var(--prf-ink);
}

.prf-legal-content table th {
    background: var(--prf-sky-50);
    font-family: var(--prf-font-mono);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 700;
    color: var(--prf-pink);
}

.prf-legal-content table tr:last-child td {
    border-bottom: none;
}

/* Box info destacado dentro de legal */
.prf-legal-info-box {
    background: linear-gradient(135deg, rgba(14, 165, 233, 0.08) 0%, rgba(14, 165, 233, 0.03) 100%);
    border-left: 4px solid var(--prf-sky-500);
    padding: 18px 22px;
    border-radius: var(--prf-radius-sm);
    margin: 20px 0;
    color: var(--prf-ink-soft);
}

.prf-legal-info-box strong {
    color: var(--prf-sky-700);
}

.prf-legal-warning-box {
    background: linear-gradient(135deg, rgba(245, 158, 11, 0.08) 0%, rgba(245, 158, 11, 0.03) 100%);
    border-left: 4px solid var(--prf-amber);
    padding: 18px 22px;
    border-radius: var(--prf-radius-sm);
    margin: 20px 0;
    color: var(--prf-ink-soft);
}

.prf-legal-warning-box strong {
    color: var(--prf-amber);
}

.prf-legal-contact-box {
    background: var(--prf-grad-dark);
    color: var(--prf-white);
    padding: 32px 28px;
    border-radius: var(--prf-radius-lg);
    margin: 32px 0;
}

.prf-legal-contact-box h3,
.prf-legal-contact-box h4 {
    color: var(--prf-white);
    margin-top: 0;
}

.prf-legal-contact-box p {
    color: rgba(255, 255, 255, 0.85);
}

.prf-legal-contact-box a {
    color: var(--prf-yellow);
    text-decoration-color: rgba(255, 214, 0, 0.4);
}

.prf-legal-contact-box a:hover {
    text-decoration-color: var(--prf-yellow);
}

@media (max-width: 1000px) {
    .prf-legal-body-inner {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    .prf-legal-toc {
        position: static;
        max-height: none;
    }
}


/* =================================================================
   28. CARRITO — Página /carrito/
   -----------------------------------------------------------------
     28.1  HERO CARRITO
     28.2  TABLA CARRITO (Woo customizada)
     28.3  TOTALES + CUPÓN
     28.4  UPSELL "Te falta..." 
     28.5  CARRITO VACÍO
   ================================================================= */


/* =================================================================
   28.1  HERO CARRITO
   ================================================================= */
.prf-cart {
    background: var(--prf-white);
    color: var(--prf-text-on-light);
}

.prf-cart-hero {
    position: relative;
    background: var(--prf-grad-dark);
    color: var(--prf-white);
    padding: clamp(50px, 8vh, 80px) clamp(20px, 4vw, 48px);
    overflow: hidden;
    text-align: center;
}

.prf-cart-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 20% 30%, rgba(255, 45, 155, 0.25) 0%, transparent 55%),
        radial-gradient(circle at 80% 70%, rgba(255, 214, 0, 0.15) 0%, transparent 55%);
    pointer-events: none;
}

.prf-cart-hero-inner {
    position: relative;
    z-index: 2;
    max-width: 720px;
    margin: 0 auto;
}

.prf-cart-hero-tag {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    padding: 8px 18px;
    border-radius: var(--prf-radius-pill);
    border: 1px solid rgba(255, 255, 255, 0.15);
    font-family: var(--prf-font-mono);
    font-size: var(--prf-fs-xs);
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--prf-white);
    margin-bottom: 18px;
}

.prf-cart-hero-title {
    font-family: var(--prf-font-display);
    font-weight: 900;
    font-style: italic;
    font-size: clamp(2.2rem, 5.5vw, 3.8rem);
    line-height: 0.95;
    letter-spacing: -1.5px;
    text-transform: uppercase;
    margin: 0 0 14px 0;
    color: var(--prf-white);
    text-shadow: 0 4px 30px rgba(0, 0, 0, 0.3);
}

.prf-cart-hero-sub {
    font-size: var(--prf-fs-md);
    color: rgba(255, 255, 255, 0.85);
    line-height: 1.6;
    margin: 0;
}

.prf-cart-hero-steps {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 24px;
    margin-top: 28px;
    flex-wrap: wrap;
}

.prf-cart-step {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: var(--prf-font-mono);
    font-size: var(--prf-fs-xs);
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: rgba(255, 255, 255, 0.5);
}

.prf-cart-step.is-active {
    color: var(--prf-yellow);
}

.prf-cart-step-num {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.1);
    border: 1.5px solid rgba(255, 255, 255, 0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    color: var(--prf-white);
}

.prf-cart-step.is-active .prf-cart-step-num {
    background: var(--prf-yellow);
    border-color: var(--prf-yellow);
    color: var(--prf-ink);
    box-shadow: 0 6px 16px -4px rgba(255, 214, 0, 0.6);
}

.prf-cart-step-arrow {
    color: rgba(255, 255, 255, 0.3);
}


/* =================================================================
   28.2  TABLA CARRITO (Woo customizada)
   ================================================================= */
.prf-cart-body {
    background: linear-gradient(180deg, var(--prf-white) 0%, var(--prf-sky-50) 100%);
    padding: clamp(40px, 6vh, 60px) clamp(20px, 4vw, 48px) clamp(60px, 9vh, 90px);
}

.prf-cart-body-inner {
    max-width: var(--prf-container-max);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: 32px;
    align-items: start;
}

.prf-cart-table-wrap {
    background: var(--prf-white);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-lg);
    overflow: hidden;
    box-shadow: var(--prf-shadow-md);
}

.prf-cart-table {
    width: 100%;
    border-collapse: collapse;
}

.woocommerce-cart-form .shop_table.cart,
.prf-cart-table {
    width: 100%;
    border-collapse: collapse;
    background: var(--prf-white);
    margin: 0;
}

.woocommerce-cart-form .shop_table.cart thead,
.prf-cart-table thead {
    background: var(--prf-sky-50);
}

.woocommerce-cart-form .shop_table.cart thead th,
.prf-cart-table thead th {
    padding: 16px 20px;
    text-align: left;
    font-family: var(--prf-font-mono);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-weight: 700;
    color: var(--prf-pink);
    border-bottom: 1px solid var(--prf-sky-100);
}

.woocommerce-cart-form .shop_table.cart tbody td,
.prf-cart-table tbody td {
    padding: 20px;
    border-bottom: 1px solid var(--prf-sky-100);
    vertical-align: middle;
    color: var(--prf-ink);
}

.woocommerce-cart-form .shop_table.cart tbody tr:last-child td,
.prf-cart-table tbody tr:last-child td {
    border-bottom: none;
}

.woocommerce-cart-form .shop_table.cart .product-thumbnail img {
    width: 70px;
    height: auto;
    border-radius: var(--prf-radius-sm);
    border: 1px solid var(--prf-sky-100);
}

.woocommerce-cart-form .shop_table.cart .product-name a,
.prf-cart-table .product-name a {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 800;
    font-size: var(--prf-fs-md);
    color: var(--prf-ink);
    text-decoration: none;
    line-height: 1.2;
    text-transform: uppercase;
    letter-spacing: -0.3px;
}

.woocommerce-cart-form .shop_table.cart .product-name a:hover,
.prf-cart-table .product-name a:hover {
    color: var(--prf-pink);
}

.woocommerce-cart-form .shop_table.cart .product-price,
.woocommerce-cart-form .shop_table.cart .product-subtotal,
.prf-cart-table .product-price,
.prf-cart-table .product-subtotal {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 800;
    font-size: 1.15rem;
    color: var(--prf-ink);
}

.woocommerce-cart-form .shop_table.cart .product-subtotal {
    color: var(--prf-pink);
}

.woocommerce-cart-form .shop_table.cart .product-quantity .quantity {
    display: inline-flex;
    align-items: center;
    border: 1.5px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-sm);
    overflow: hidden;
    transition: border-color 0.2s;
}

.woocommerce-cart-form .shop_table.cart .product-quantity .quantity:focus-within {
    border-color: var(--prf-pink);
}

.woocommerce-cart-form .shop_table.cart .product-quantity input.qty {
    width: 56px;
    height: 40px;
    border: none;
    text-align: center;
    font-family: var(--prf-font-display);
    font-size: 1rem;
    font-weight: 800;
    background: var(--prf-white);
    color: var(--prf-ink);
    -moz-appearance: textfield;
}

.woocommerce-cart-form .shop_table.cart .product-quantity input.qty::-webkit-outer-spin-button,
.woocommerce-cart-form .shop_table.cart .product-quantity input.qty::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.woocommerce-cart-form .shop_table.cart .product-remove a.remove {
    width: 32px;
    height: 32px;
    background: rgba(220, 38, 38, 0.08);
    color: var(--prf-red);
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    line-height: 1;
    text-decoration: none;
    transition: all 0.2s var(--prf-ease);
}

.woocommerce-cart-form .shop_table.cart .product-remove a.remove:hover {
    background: var(--prf-red);
    color: var(--prf-white);
    transform: rotate(90deg);
}

/* Action row (cupón, actualizar) */
.woocommerce-cart-form .shop_table.cart .actions {
    background: var(--prf-sky-50);
    padding: 18px 20px;
    border-top: 1px solid var(--prf-sky-100);
}

.woocommerce-cart-form .coupon {
    display: flex;
    gap: 8px;
    align-items: stretch;
}

.woocommerce-cart-form .coupon input.input-text {
    flex: 1;
    max-width: 280px;
    padding: 12px 14px !important;
    background: var(--prf-white) !important;
    border: 1.5px solid var(--prf-sky-100) !important;
    border-radius: var(--prf-radius-sm) !important;
    font-size: var(--prf-fs-sm) !important;
}

.woocommerce-cart-form .coupon button[name="apply_coupon"],
.woocommerce-cart-form button[name="update_cart"] {
    background: var(--prf-ink) !important;
    color: var(--prf-white) !important;
    padding: 10px 22px !important;
    border-radius: var(--prf-radius-pill) !important;
    font-family: var(--prf-font-body) !important;
    font-weight: 600 !important;
    font-size: var(--prf-fs-xs) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    border: none !important;
    cursor: pointer;
    transition: all 0.3s var(--prf-ease);
}

.woocommerce-cart-form .coupon button[name="apply_coupon"]:hover,
.woocommerce-cart-form button[name="update_cart"]:hover {
    background: var(--prf-pink) !important;
    transform: translateY(-2px);
    box-shadow: var(--prf-shadow-pink);
}


/* =================================================================
   28.3  TOTALES + RESUMEN (sidebar derecha)
   ================================================================= */
.cart_totals,
.prf-cart-totals {
    background: var(--prf-white);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-lg);
    padding: 28px 26px;
    box-shadow: var(--prf-shadow-md);
    position: sticky;
    top: 110px;
}

.cart_totals h2,
.prf-cart-totals h2 {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    font-size: 1.4rem;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: -0.5px;
    color: var(--prf-ink);
    margin: 0 0 20px 0;
    padding-bottom: 14px;
    border-bottom: 2px solid var(--prf-sky-100);
}

.cart_totals table.shop_table,
.prf-cart-totals table {
    width: 100%;
    border-collapse: collapse;
}

.cart_totals table.shop_table th,
.cart_totals table.shop_table td,
.prf-cart-totals table th,
.prf-cart-totals table td {
    padding: 12px 0;
    border-bottom: 1px dashed var(--prf-sky-100);
    text-align: right;
    color: var(--prf-ink);
    background: transparent !important;
}

.cart_totals table.shop_table th,
.prf-cart-totals table th {
    text-align: left;
    font-family: var(--prf-font-mono);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-weight: 700;
    color: var(--prf-muted);
}

.cart_totals .order-total th,
.prf-cart-totals .order-total th {
    color: var(--prf-pink);
    font-size: var(--prf-fs-xs);
}

.cart_totals .order-total td,
.cart_totals .order-total td .amount,
.prf-cart-totals .order-total td {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    font-size: 1.8rem;
    background: var(--prf-grad-pink);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    line-height: 1;
}

.cart_totals .wc-proceed-to-checkout {
    margin-top: 20px;
    padding-top: 0;
}

.cart_totals .wc-proceed-to-checkout .checkout-button {
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100% !important;
    background: var(--prf-grad-pink) !important;
    color: var(--prf-white) !important;
    padding: 16px 24px !important;
    font-family: var(--prf-font-body) !important;
    font-size: var(--prf-fs-base) !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    border-radius: var(--prf-radius-pill) !important;
    border: none !important;
    box-shadow: var(--prf-shadow-pink) !important;
    transition: all 0.3s var(--prf-ease) !important;
    text-decoration: none !important;
}

.cart_totals .wc-proceed-to-checkout .checkout-button:hover {
    transform: translateY(-3px);
    box-shadow: var(--prf-shadow-pink-lg) !important;
    color: var(--prf-white) !important;
}

.prf-cart-secure {
    margin-top: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-size: var(--prf-fs-xs);
    color: var(--prf-muted);
    font-family: var(--prf-font-mono);
    text-transform: uppercase;
    letter-spacing: 1px;
}

.prf-cart-secure svg {
    color: var(--prf-green);
    flex-shrink: 0;
}


/* =================================================================
   28.4  UPSELL "Añade más entradas"
   ================================================================= */
.prf-cart-upsell {
    background: linear-gradient(135deg, rgba(255, 214, 0, 0.08) 0%, rgba(255, 45, 155, 0.05) 100%);
    border: 1px dashed var(--prf-pink);
    border-radius: var(--prf-radius-lg);
    padding: 22px 24px;
    margin-bottom: 24px;
    display: flex;
    align-items: center;
    gap: 16px;
}

.prf-cart-upsell-icon {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    background: var(--prf-grad-pink);
    border-radius: var(--prf-radius-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--prf-white);
    box-shadow: var(--prf-shadow-pink);
}

.prf-cart-upsell-content {
    flex: 1;
}

.prf-cart-upsell-title {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 800;
    font-size: 1.05rem;
    text-transform: uppercase;
    letter-spacing: -0.3px;
    color: var(--prf-ink);
    margin: 0 0 4px 0;
}

.prf-cart-upsell-desc {
    font-size: var(--prf-fs-sm);
    color: var(--prf-ink-soft);
    line-height: 1.4;
    margin: 0;
}

.prf-cart-upsell-cta {
    flex-shrink: 0;
}


/* =================================================================
   28.5  CARRITO VACÍO
   ================================================================= */
.cart-empty,
.prf-cart-empty {
    text-align: center;
    padding: 40px 24px;
    background: var(--prf-white);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-lg);
    color: var(--prf-ink);
    font-size: var(--prf-fs-md);
}

.prf-cart-empty-icon {
    width: 80px;
    height: 80px;
    margin: 0 auto 20px;
    background: var(--prf-sky-50);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--prf-pink);
}

.prf-cart-empty-title {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    font-size: 1.6rem;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: -0.5px;
    color: var(--prf-ink);
    margin: 0 0 8px 0;
}

.prf-cart-empty-sub {
    font-size: var(--prf-fs-md);
    color: var(--prf-muted);
    margin-bottom: 24px;
}

.return-to-shop {
    margin-top: 20px;
}

.return-to-shop a.button,
.prf-cart-empty .prf-btn {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: var(--prf-grad-pink) !important;
    color: var(--prf-white) !important;
    padding: 14px 28px !important;
    border-radius: var(--prf-radius-pill) !important;
    font-family: var(--prf-font-body) !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.3px !important;
    text-decoration: none !important;
    box-shadow: var(--prf-shadow-pink) !important;
    border: none !important;
    transition: all 0.3s var(--prf-ease) !important;
}

.return-to-shop a.button:hover,
.prf-cart-empty .prf-btn:hover {
    transform: translateY(-3px);
    box-shadow: var(--prf-shadow-pink-lg) !important;
    color: var(--prf-white) !important;
}

@media (max-width: 900px) {
    .prf-cart-body-inner { grid-template-columns: 1fr; gap: 24px; }
    .cart_totals,
    .prf-cart-totals { position: static; }

    /* Tabla → cards en móvil */
    .woocommerce-cart-form .shop_table.cart thead { display: none; }
    .woocommerce-cart-form .shop_table.cart tbody tr {
        display: block;
        padding: 16px;
        border-bottom: 1px solid var(--prf-sky-100);
    }
    .woocommerce-cart-form .shop_table.cart tbody td {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 8px 0;
        border-bottom: none;
    }
    .woocommerce-cart-form .shop_table.cart tbody td::before {
        content: attr(data-title);
        font-family: var(--prf-font-mono);
        font-size: 0.65rem;
        text-transform: uppercase;
        letter-spacing: 1px;
        color: var(--prf-muted);
        font-weight: 700;
    }
    .woocommerce-cart-form .shop_table.cart .actions {
        display: block;
        padding: 16px;
    }
    .woocommerce-cart-form .coupon {
        flex-wrap: wrap;
    }
    .woocommerce-cart-form .coupon input.input-text {
        max-width: 100%;
    }
}
/* =================================================================
   29. CHECKOUT — Página /checkout/ (PRF 2026, template override)
   -----------------------------------------------------------------
   Estructura DOM real (gracias a form-checkout.php):
     .prf-co-hero
     .prf-co-body
       form.checkout.prf-co-form-root
         .prf-co-grid
           .prf-co-col-left
             .prf-co-card.prf-co-billing  → #customer_details
             .prf-co-card.prf-co-attendees → .tickera_owner_info
           .prf-co-col-right
             .prf-co-card.prf-co-summary  → #order_review
             .prf-co-trust
   ================================================================= */

/* === HERO === */
.prf-co {
    background: var(--prf-white);
    color: var(--prf-text-on-light);
}

.prf-co-hero {
    position: relative;
    background: var(--prf-grad-dark);
    color: var(--prf-white);
    padding: clamp(50px, 8vh, 80px) clamp(20px, 4vw, 48px);
    overflow: hidden;
    text-align: center;
}

.prf-co-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 20% 30%, rgba(255, 45, 155, 0.25) 0%, transparent 55%),
        radial-gradient(circle at 80% 70%, rgba(14, 165, 233, 0.2) 0%, transparent 55%);
    pointer-events: none;
}

.prf-co-hero-inner {
    position: relative;
    z-index: 2;
    max-width: 720px;
    margin: 0 auto;
}

.prf-co-hero-tag {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    padding: 8px 18px;
    border-radius: var(--prf-radius-pill);
    border: 1px solid rgba(255, 255, 255, 0.15);
    font-family: var(--prf-font-mono);
    font-size: var(--prf-fs-xs);
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--prf-white);
    margin-bottom: 18px;
}

.prf-co-hero-title {
    font-family: var(--prf-font-display);
    font-weight: 900;
    font-style: italic;
    font-size: clamp(2.2rem, 5.5vw, 3.6rem);
    line-height: 0.95;
    letter-spacing: -1.5px;
    text-transform: uppercase;
    margin: 0 0 14px 0;
    color: var(--prf-white);
    text-shadow: 0 4px 30px rgba(0, 0, 0, 0.3);
}

.prf-co-hero-sub {
    font-size: var(--prf-fs-md);
    color: rgba(255, 255, 255, 0.85);
    line-height: 1.6;
    margin: 0;
}

/* === BODY + GRID === */
.prf-co-body {
    background: linear-gradient(180deg, var(--prf-white) 0%, var(--prf-sky-50) 100%);
    padding: clamp(40px, 6vh, 60px) clamp(20px, 4vw, 48px) clamp(60px, 9vh, 90px);
}

.prf-co-form-root {
    max-width: var(--prf-container-max);
    margin: 0 auto;
}

.prf-co-grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: 28px;
    align-items: start;
}

.prf-co-col-left,
.prf-co-col-right {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.prf-co-col-right {
    position: sticky;
    top: 110px;
}

@media (max-width: 900px) {
    .prf-co-grid { grid-template-columns: 1fr; gap: 20px; }
    .prf-co-col-right { position: static; }
}

/* === CARDS === */
.prf-co-card {
    background: var(--prf-white);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-lg);
    box-shadow: var(--prf-shadow-md);
    overflow: hidden;
}

.prf-co-card-head {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 22px 28px 18px;
    border-bottom: 1px solid var(--prf-sky-100);
}

.prf-co-card-num {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    background: var(--prf-grad-pink);
    color: var(--prf-white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    font-size: 0.9rem;
    box-shadow: var(--prf-shadow-pink);
}

.prf-co-card-title {
    font-family: var(--prf-font-display) !important;
    font-style: italic !important;
    font-weight: 900 !important;
    font-size: 1.25rem !important;
    line-height: 1 !important;
    text-transform: uppercase !important;
    letter-spacing: -0.4px !important;
    color: var(--prf-ink) !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
}

.prf-co-card-body {
    padding: 24px 28px 28px;
}

/* Reset agresivo del markup nativo de WC dentro de .prf-co-billing */
.prf-co-billing .col2-set,
.prf-co-billing #customer_details {
    display: block !important;
}

.prf-co-billing .col-1,
.prf-co-billing .col-2 {
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.prf-co-billing .woocommerce-billing-fields > h3,
.prf-co-billing .woocommerce-shipping-fields > h3,
.prf-co-billing .woocommerce-additional-fields > h3 {
    display: none !important; /* el título lo da .prf-co-card-head */
}

/* === FORM ROWS (billing) === */
.prf-co-billing .form-row {
    margin-bottom: 16px;
}

.prf-co-billing .form-row label {
    display: block !important;
    font-size: var(--prf-fs-xs) !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    color: var(--prf-ink) !important;
    font-weight: 600 !important;
    margin-bottom: 6px !important;
}

.prf-co-billing .form-row .required {
    color: var(--prf-pink);
    text-decoration: none;
}

.prf-co-billing .form-row input.input-text,
.prf-co-billing .form-row textarea,
.prf-co-billing .form-row select {
    width: 100% !important;
    padding: 12px 14px !important;
    border: 1.5px solid var(--prf-sky-100) !important;
    border-radius: var(--prf-radius-sm) !important;
    background: var(--prf-white) !important;
    font-family: var(--prf-font-body) !important;
    font-size: var(--prf-fs-base) !important;
    color: var(--prf-ink) !important;
    line-height: 1.4 !important;
    transition: border-color 0.2s, box-shadow 0.2s !important;
}

.prf-co-billing .form-row input.input-text:focus,
.prf-co-billing .form-row textarea:focus,
.prf-co-billing .form-row select:focus {
    outline: none !important;
    border-color: var(--prf-pink) !important;
    box-shadow: 0 0 0 3px rgba(255, 45, 155, 0.1) !important;
}

.prf-co-billing .form-row-first,
.prf-co-billing .form-row-last {
    width: calc(50% - 8px) !important;
    display: inline-block;
    vertical-align: top;
}

.prf-co-billing .form-row-first { margin-right: 16px !important; }

.prf-co-billing .form-row-wide { width: 100% !important; clear: both; }

@media (max-width: 600px) {
    .prf-co-billing .form-row-first,
    .prf-co-billing .form-row-last {
        width: 100% !important;
        margin-right: 0 !important;
    }
}

/* === ASISTENTES === */
.prf-co-attendees-info {
    background: linear-gradient(135deg, rgba(14, 165, 233, 0.08) 0%, rgba(14, 165, 233, 0.03) 100%);
    border-left: 4px solid var(--prf-sky-500);
    margin: 0 28px 20px;
    padding: 12px 16px;
    border-radius: var(--prf-radius-sm);
    font-size: var(--prf-fs-sm);
    color: var(--prf-ink-soft);
    line-height: 1.5;
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.prf-co-attendees-info svg {
    color: var(--prf-sky-500);
    flex-shrink: 0;
    margin-top: 2px;
}

.tickera_owner_info {
    padding: 0 28px 28px;
}

.prf-co-attendees-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.prf-co-attendee {
    background: var(--prf-sky-50);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-md);
    padding: 20px 20px;
    transition: border-color 0.3s var(--prf-ease);
}

.prf-co-attendee:hover { border-color: var(--prf-pink); }

.prf-co-attendee-head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px dashed var(--prf-sky-200);
}

.prf-co-attendee-num {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    background: var(--prf-grad-pink);
    color: var(--prf-white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    font-size: 0.9rem;
    box-shadow: var(--prf-shadow-pink);
}

.prf-co-attendee-meta { flex: 1; min-width: 0; }

.prf-co-attendee-product {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 800;
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: -0.3px;
    color: var(--prf-ink);
    line-height: 1.1;
}

.prf-co-attendee-tag {
    font-family: var(--prf-font-mono);
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--prf-muted);
    margin-top: 2px;
}

.prf-co-copy-me {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(255, 45, 155, 0.08);
    border: 1px solid rgba(255, 45, 155, 0.25);
    color: var(--prf-pink);
    padding: 7px 12px;
    border-radius: var(--prf-radius-pill);
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    cursor: pointer;
    transition: all 0.2s var(--prf-ease);
    font-family: var(--prf-font-body);
}

.prf-co-copy-me:hover {
    background: var(--prf-grad-pink);
    color: var(--prf-white);
    border-color: transparent;
}

.prf-co-attendee-fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.prf-co-attendee-fields .prf-co-field-full { grid-column: span 2; }

.prf-co-attendee-fields .fields-wrap {
    margin: 0;
    padding: 0;
}

.prf-co-attendee-fields label {
    display: block;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: var(--prf-ink);
    font-weight: 600;
    margin-bottom: 5px;
}

.prf-co-attendee-fields label .required {
    color: var(--prf-pink);
    text-decoration: none;
}

.prf-co-attendee-fields input {
    width: 100%;
    padding: 10px 12px;
    border: 1.5px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-sm);
    background: var(--prf-white);
    font-family: var(--prf-font-body);
    font-size: var(--prf-fs-sm);
    color: var(--prf-ink);
    transition: border-color 0.2s, box-shadow 0.2s;
}

.prf-co-attendee-fields input:focus {
    outline: none;
    border-color: var(--prf-pink);
    box-shadow: 0 0 0 3px rgba(255, 45, 155, 0.1);
}

@media (max-width: 600px) {
    .prf-co-attendee-fields { grid-template-columns: 1fr; }
    .prf-co-attendee-fields .prf-co-field-full { grid-column: auto; }
    .prf-co-attendee-head { flex-wrap: wrap; }
    .prf-co-copy-me { width: 100%; justify-content: center; }
}

/* === RESUMEN PEDIDO === */
.prf-co-summary .prf-co-card-body {
    padding: 0 24px 24px;
}

.prf-co-summary #order_review {
    background: transparent;
    border: none;
    padding: 0;
    box-shadow: none;
    position: static;
}

.prf-co-summary .shop_table {
    width: 100% !important;
    border-collapse: collapse !important;
    background: transparent !important;
    border: none !important;
    margin: 16px 0 0 0 !important;
}

.prf-co-summary .shop_table thead { display: none; }

.prf-co-summary .shop_table tbody td {
    padding: 12px 0 !important;
    border-bottom: 1px dashed var(--prf-sky-100) !important;
    background: transparent !important;
    color: var(--prf-ink) !important;
    font-size: var(--prf-fs-sm) !important;
    vertical-align: top !important;
}

.prf-co-summary .shop_table .product-name {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 700;
    color: var(--prf-ink);
    line-height: 1.3;
}

.prf-co-summary .shop_table .product-name strong {
    color: var(--prf-pink);
    margin-left: 4px;
}

.prf-co-summary .shop_table .product-name dl.variation {
    margin: 6px 0 0;
    font-size: 0.75rem;
    font-style: normal;
    font-weight: 400;
    color: var(--prf-muted);
}

.prf-co-summary .shop_table .product-name dl.variation dt,
.prf-co-summary .shop_table .product-name dl.variation dd {
    display: inline;
    margin: 0 4px 0 0;
}

.prf-co-summary .shop_table .product-total {
    text-align: right !important;
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 800;
    font-size: 1rem;
    color: var(--prf-ink);
    white-space: nowrap;
}

.prf-co-summary .shop_table tfoot th,
.prf-co-summary .shop_table tfoot td {
    padding: 10px 0 !important;
    border-bottom: 1px dashed var(--prf-sky-100) !important;
    background: transparent !important;
}

.prf-co-summary .shop_table tfoot th {
    text-align: left !important;
    font-family: var(--prf-font-mono) !important;
    font-size: 0.7rem !important;
    text-transform: uppercase !important;
    letter-spacing: 1.5px !important;
    font-weight: 700 !important;
    color: var(--prf-muted) !important;
}

.prf-co-summary .shop_table tfoot td {
    text-align: right !important;
    color: var(--prf-ink) !important;
    font-weight: 600 !important;
}

.prf-co-summary .shop_table tfoot .order-total th {
    color: var(--prf-pink) !important;
    font-size: var(--prf-fs-xs) !important;
}

.prf-co-summary .shop_table tfoot .order-total td {
    font-family: var(--prf-font-display) !important;
    font-style: italic !important;
    font-weight: 900 !important;
    font-size: 1.6rem !important;
    background: var(--prf-grad-pink) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    line-height: 1 !important;
    border: none !important;
}

/* === PAYMENT === */
.prf-co-summary #payment {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    margin-top: 18px !important;
}

.prf-co-summary #payment ul.payment_methods {
    background: var(--prf-sky-50);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-sm);
    padding: 10px !important;
    list-style: none;
    margin: 0 0 16px 0 !important;
}

.prf-co-summary #payment ul.payment_methods li {
    background: transparent !important;
    padding: 10px 12px !important;
    border-radius: var(--prf-radius-sm) !important;
    list-style: none !important;
}

.prf-co-summary #payment ul.payment_methods li:has(input:checked) {
    background: var(--prf-white);
    box-shadow: var(--prf-shadow-sm);
}

.prf-co-summary #payment ul.payment_methods li label {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 700;
    color: var(--prf-ink);
    cursor: pointer;
    margin-left: 6px;
    font-size: 0.95rem;
}

.prf-co-summary #payment ul.payment_methods li img {
    max-height: 24px;
    margin-left: 8px;
    vertical-align: middle;
}

.prf-co-summary #payment .payment_box {
    background: var(--prf-white) !important;
    border: 1px solid var(--prf-sky-100) !important;
    border-radius: var(--prf-radius-sm) !important;
    padding: 12px 14px !important;
    margin: 8px 0 0 !important;
    color: var(--prf-ink-soft) !important;
    font-size: var(--prf-fs-sm) !important;
    line-height: 1.5;
}

.prf-co-summary #payment .payment_box::before { display: none !important; }

/* === TÉRMINOS === */
.prf-co-summary .woocommerce-terms-and-conditions-wrapper {
    margin: 14px 0;
    padding: 12px 14px;
    background: var(--prf-sky-50);
    border-radius: var(--prf-radius-sm);
    border: 1px solid var(--prf-sky-100);
}

.prf-co-summary .woocommerce-terms-and-conditions-wrapper .woocommerce-form__label-for-checkbox {
    display: flex !important;
    align-items: flex-start;
    gap: 10px;
    cursor: pointer;
    color: var(--prf-ink);
    font-size: var(--prf-fs-sm);
    line-height: 1.5;
    margin: 0;
}

.prf-co-summary .woocommerce-terms-and-conditions-wrapper input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: var(--prf-pink);
    cursor: pointer;
    flex-shrink: 0;
    margin-top: 2px;
}

.prf-co-summary .woocommerce-terms-and-conditions-wrapper a {
    color: var(--prf-pink);
    font-weight: 600;
    text-decoration: underline;
}

/* === BOTÓN FINALIZAR === */
.prf-co-summary #place_order {
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100% !important;
    background: var(--prf-grad-pink) !important;
    color: var(--prf-white) !important;
    padding: 16px 24px !important;
    font-family: var(--prf-font-body) !important;
    font-size: var(--prf-fs-base) !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    border-radius: var(--prf-radius-pill) !important;
    border: none !important;
    box-shadow: var(--prf-shadow-pink) !important;
    transition: transform 0.3s var(--prf-ease), box-shadow 0.3s var(--prf-ease) !important;
    cursor: pointer;
    margin-top: 14px !important;
    text-decoration: none !important;
    line-height: 1.2 !important;
}

.prf-co-summary #place_order:hover {
    transform: translateY(-3px) !important;
    box-shadow: var(--prf-shadow-pink-lg) !important;
}

.prf-co-summary #place_order:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none !important;
}

/* === TRUST BAR === */
.prf-co-trust {
    display: flex;
    flex-direction: column;
    gap: 10px;
    background: var(--prf-white);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-md);
    padding: 16px 18px;
    box-shadow: var(--prf-shadow-sm);
}

.prf-co-trust-item {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: var(--prf-fs-xs);
    color: var(--prf-ink-soft);
    font-weight: 500;
}

.prf-co-trust-item svg {
    color: var(--prf-green);
    flex-shrink: 0;
}


/* =================================================================
   30. THANK YOU — Página /pedido-recibido/
   -----------------------------------------------------------------
     30.1  HERO SUCCESS
     30.2  RESUMEN PEDIDO
     30.3  DATOS ASISTENTES (entradas)
     30.4  BANNER EMBAJADOR (destacado pink/yellow)
     30.5  SIGUIENTES PASOS
   ================================================================= */


/* =================================================================
   30.1  HERO SUCCESS
   ================================================================= */
.prf-ty {
    background: var(--prf-white);
    color: var(--prf-text-on-light);
}

.prf-ty-hero {
    position: relative;
    background: linear-gradient(135deg, var(--prf-ink) 0%, var(--prf-purple-deep) 100%);
    color: var(--prf-white);
    padding: clamp(60px, 10vh, 100px) clamp(20px, 4vw, 48px);
    overflow: hidden;
    text-align: center;
}

.prf-ty-hero::before {
    content: '';
    position: absolute;
    top: -150px;
    left: -150px;
    width: 500px;
    height: 500px;
    background: radial-gradient(circle, rgba(16, 185, 129, 0.3) 0%, transparent 60%);
    pointer-events: none;
    animation: prfOrbFloat 14s ease-in-out infinite;
}

.prf-ty-hero::after {
    content: '';
    position: absolute;
    bottom: -150px;
    right: -150px;
    width: 600px;
    height: 600px;
    background: radial-gradient(circle, rgba(255, 214, 0, 0.2) 0%, transparent 60%);
    pointer-events: none;
    animation: prfOrbFloat 16s ease-in-out infinite reverse;
}

.prf-ty-hero-inner {
    position: relative;
    z-index: 2;
    max-width: 720px;
    margin: 0 auto;
}

.prf-ty-success-icon {
    width: 84px;
    height: 84px;
    margin: 0 auto 24px;
    background: linear-gradient(135deg, var(--prf-green) 0%, var(--prf-green-light) 100%);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--prf-white);
    box-shadow: 0 20px 50px -10px rgba(16, 185, 129, 0.5);
    animation: prfFadeUp 0.6s var(--prf-ease-bounce) both;
}

.prf-ty-success-icon svg {
    width: 44px;
    height: 44px;
    stroke-width: 3;
}

.prf-ty-hero-title {
    font-family: var(--prf-font-display);
    font-weight: 900;
    font-style: italic;
    font-size: clamp(2.5rem, 6vw, 4rem);
    line-height: 0.95;
    letter-spacing: -1.5px;
    text-transform: uppercase;
    margin: 0 0 16px 0;
    color: var(--prf-white);
    text-shadow: 0 4px 30px rgba(0, 0, 0, 0.3);
    animation: prfFadeUp 0.8s var(--prf-ease) 0.1s both;
}

.prf-ty-hero-title-accent {
    background: linear-gradient(135deg, var(--prf-yellow) 0%, var(--prf-pink) 100%);
    background-size: 200% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: prfGradientShift 5s ease infinite;
}

.prf-ty-hero-sub {
    font-size: var(--prf-fs-md);
    color: rgba(255, 255, 255, 0.85);
    line-height: 1.6;
    margin: 0 0 24px 0;
    animation: prfFadeUp 0.8s var(--prf-ease) 0.2s both;
}

.prf-ty-hero-order {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: rgba(255, 255, 255, 0.08);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    padding: 12px 22px;
    border-radius: var(--prf-radius-pill);
    border: 1px solid rgba(255, 255, 255, 0.15);
    font-family: var(--prf-font-mono);
    font-size: var(--prf-fs-xs);
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: rgba(255, 255, 255, 0.85);
    animation: prfFadeUp 0.8s var(--prf-ease) 0.3s both;
}

.prf-ty-hero-order strong {
    color: var(--prf-yellow);
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    letter-spacing: -0.3px;
    font-size: var(--prf-fs-base);
}


/* =================================================================
   30.2  RESUMEN PEDIDO
   ================================================================= */
.prf-ty-body {
    background: linear-gradient(180deg, var(--prf-white) 0%, var(--prf-sky-50) 100%);
    padding: clamp(40px, 6vh, 60px) clamp(20px, 4vw, 48px) clamp(60px, 9vh, 90px);
}

.prf-ty-body-inner,
.woocommerce-order {
    max-width: 920px;
    margin: 0 auto;
}

.prf-ty-section,
.woocommerce-order .woocommerce-order-details,
.woocommerce-order .woocommerce-customer-details,
.woocommerce-order .woocommerce-order-overview {
    background: var(--prf-white);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-lg);
    padding: 32px 28px;
    margin-bottom: 24px;
    box-shadow: var(--prf-shadow-md);
}

.prf-ty-section-title,
.woocommerce-order h2,
.woocommerce-order h3 {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    font-size: 1.3rem;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: -0.5px;
    color: var(--prf-ink);
    margin: 0 0 20px 0;
    padding-bottom: 14px;
    border-bottom: 2px solid var(--prf-sky-100);
    position: relative;
}

.prf-ty-section-title::before,
.woocommerce-order h2::before,
.woocommerce-order h3::before {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 60px;
    height: 2px;
    background: var(--prf-grad-pink);
}

/* Overview list (fecha, total, método) */
.woocommerce-order-overview {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 16px;
}

.woocommerce-order-overview li {
    background: var(--prf-sky-50);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-md);
    padding: 16px 18px;
    list-style: none !important;
    color: var(--prf-ink);
    font-size: var(--prf-fs-sm);
    line-height: 1.4;
    text-transform: none;
    margin: 0 !important;
}

.woocommerce-order-overview li strong {
    display: block;
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 800;
    font-size: 1.1rem;
    color: var(--prf-ink);
    margin-top: 4px;
}

.woocommerce-order-overview li::before {
    content: none;
}

.woocommerce-order-overview li.order::before { display: none; }

.woocommerce-order .woocommerce-order-details table.shop_table {
    width: 100%;
    border-collapse: collapse;
    margin: 16px 0 0 0;
    background: transparent;
    border: none;
}

.woocommerce-order .woocommerce-order-details table.shop_table thead th {
    padding: 12px 14px;
    background: var(--prf-sky-50);
    font-family: var(--prf-font-mono);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-weight: 700;
    color: var(--prf-pink);
    text-align: left;
    border-bottom: 1px solid var(--prf-sky-100);
}

.woocommerce-order .woocommerce-order-details table.shop_table tbody td {
    padding: 14px;
    border-bottom: 1px dashed var(--prf-sky-100);
    color: var(--prf-ink);
    background: transparent;
    font-size: var(--prf-fs-sm);
    vertical-align: top;
}

.woocommerce-order .woocommerce-order-details table.shop_table .product-name {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 700;
    color: var(--prf-ink);
}

.woocommerce-order .woocommerce-order-details table.shop_table .product-total,
.woocommerce-order .woocommerce-order-details table.shop_table tfoot td {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 800;
    font-size: 1rem;
    color: var(--prf-ink);
    text-align: right;
}

.woocommerce-order .woocommerce-order-details table.shop_table tfoot th {
    text-align: left;
    font-family: var(--prf-font-mono);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-weight: 700;
    color: var(--prf-muted);
    background: transparent;
    padding: 10px 14px;
    border-bottom: 1px dashed var(--prf-sky-100);
}

.woocommerce-order .woocommerce-order-details table.shop_table tfoot .order-total th {
    color: var(--prf-pink);
    font-size: var(--prf-fs-xs);
}

.woocommerce-order .woocommerce-order-details table.shop_table tfoot .order-total td {
    font-size: 1.6rem;
    background: var(--prf-grad-pink);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}


/* =================================================================
   30.3  DATOS ASISTENTES (entradas listadas)
   ================================================================= */
.prf-ty-attendees {
    background: var(--prf-white);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-lg);
    padding: 32px 28px;
    margin-bottom: 24px;
    box-shadow: var(--prf-shadow-md);
}

.prf-ty-attendees-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.prf-ty-attendee {
    background: var(--prf-sky-50);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-md);
    padding: 18px 22px;
    display: flex;
    align-items: center;
    gap: 16px;
    transition: all 0.3s var(--prf-ease);
}

.prf-ty-attendee:hover {
    border-color: var(--prf-pink);
    transform: translateX(4px);
    box-shadow: var(--prf-shadow-md);
}

.prf-ty-attendee-num {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    background: var(--prf-grad-pink);
    color: var(--prf-white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    font-size: 1rem;
    box-shadow: var(--prf-shadow-pink);
}

.prf-ty-attendee-info {
    flex: 1;
    min-width: 0;
}

.prf-ty-attendee-name {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 800;
    font-size: 1.05rem;
    color: var(--prf-ink);
    line-height: 1.2;
    margin: 0 0 4px 0;
    text-transform: uppercase;
    letter-spacing: -0.3px;
}

.prf-ty-attendee-meta {
    font-size: var(--prf-fs-xs);
    color: var(--prf-muted);
    font-family: var(--prf-font-mono);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.prf-ty-attendee-product {
    flex-shrink: 0;
    background: var(--prf-white);
    border: 1px solid var(--prf-sky-100);
    color: var(--prf-pink);
    padding: 6px 12px;
    border-radius: var(--prf-radius-pill);
    font-family: var(--prf-font-mono);
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    white-space: nowrap;
}

@media (max-width: 600px) {
    .prf-ty-attendee {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }
    .prf-ty-attendee-product {
        align-self: flex-start;
    }
}


/* =================================================================
   30.4  BANNER EMBAJADOR (destacado pink/yellow)
   ================================================================= */
.prf-ty-ambassador {
    position: relative;
    background: linear-gradient(135deg, var(--prf-pink) 0%, var(--prf-purple) 50%, var(--prf-pink) 100%);
    background-size: 200% 100%;
    border-radius: var(--prf-radius-xl);
    padding: 44px 36px;
    margin-bottom: 24px;
    color: var(--prf-white);
    overflow: hidden;
    box-shadow: 0 30px 80px -20px rgba(255, 45, 155, 0.5);
    animation: prfGradientShift 8s ease infinite;
}

.prf-ty-ambassador::before {
    content: '';
    position: absolute;
    top: -100px;
    right: -100px;
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, rgba(255, 214, 0, 0.4) 0%, transparent 60%);
    pointer-events: none;
    animation: prfOrbFloat 12s ease-in-out infinite;
}

.prf-ty-ambassador::after {
    content: '';
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.4'/%3E%3C/svg%3E");
    opacity: 0.08;
    pointer-events: none;
}

.prf-ty-ambassador-inner {
    position: relative;
    z-index: 2;
}

.prf-ty-ambassador-badge {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--prf-yellow);
    color: var(--prf-ink);
    padding: 8px 18px;
    border-radius: var(--prf-radius-pill);
    font-family: var(--prf-font-mono);
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 16px;
    box-shadow: 0 8px 24px -6px rgba(255, 214, 0, 0.6);
}

.prf-ty-ambassador-title {
    font-family: var(--prf-font-display);
    font-weight: 900;
    font-style: italic;
    font-size: clamp(1.8rem, 4vw, 2.6rem);
    line-height: 0.95;
    letter-spacing: -1px;
    text-transform: uppercase;
    margin: 0 0 14px 0;
    color: var(--prf-white);
    text-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
}

.prf-ty-ambassador-title strong {
    background: linear-gradient(135deg, var(--prf-yellow) 0%, #fff 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.prf-ty-ambassador-desc {
    font-size: var(--prf-fs-md);
    color: rgba(255, 255, 255, 0.95);
    line-height: 1.55;
    margin: 0 0 24px 0;
    max-width: 580px;
}

/* Caja link de referido */
.prf-ty-ambassador-link {
    background: rgba(10, 22, 40, 0.4);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px dashed rgba(255, 214, 0, 0.5);
    border-radius: var(--prf-radius-md);
    padding: 16px 18px;
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 24px;
    flex-wrap: wrap;
}

.prf-ty-ambassador-link-label {
    font-family: var(--prf-font-mono);
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--prf-yellow);
    font-weight: 700;
    flex-shrink: 0;
}

.prf-ty-ambassador-link-value {
    flex: 1;
    min-width: 200px;
    font-family: var(--prf-font-mono);
    font-size: var(--prf-fs-sm);
    color: var(--prf-white);
    word-break: break-all;
    line-height: 1.4;
}

.prf-ty-ambassador-copy {
    flex-shrink: 0;
    background: var(--prf-yellow);
    color: var(--prf-ink);
    border: none;
    padding: 10px 18px;
    border-radius: var(--prf-radius-pill);
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    cursor: pointer;
    transition: all 0.2s var(--prf-ease);
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.prf-ty-ambassador-copy:hover {
    background: var(--prf-white);
    transform: translateY(-2px);
    box-shadow: 0 10px 20px -5px rgba(0, 0, 0, 0.2);
}

.prf-ty-ambassador-copy.is-copied {
    background: var(--prf-green-light);
    color: var(--prf-white);
}

/* Stats embajador (10 referidos = 1 upgrade) */
.prf-ty-ambassador-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-bottom: 24px;
}

.prf-ty-ambassador-stat {
    background: rgba(10, 22, 40, 0.3);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: var(--prf-radius-md);
    padding: 16px 14px;
    text-align: center;
}

.prf-ty-ambassador-stat-num {
    display: block;
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    font-size: 1.6rem;
    line-height: 1;
    color: var(--prf-yellow);
    margin-bottom: 4px;
}

.prf-ty-ambassador-stat-lbl {
    display: block;
    font-family: var(--prf-font-mono);
    font-size: 0.6rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: rgba(255, 255, 255, 0.75);
}

.prf-ty-ambassador-share {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.prf-ty-ambassador-share-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    color: var(--prf-white);
    border: 1px solid rgba(255, 255, 255, 0.2);
    padding: 10px 18px;
    border-radius: var(--prf-radius-pill);
    font-size: var(--prf-fs-xs);
    font-weight: 600;
    text-decoration: none;
    transition: all 0.3s var(--prf-ease);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.prf-ty-ambassador-share-btn:hover {
    background: var(--prf-yellow);
    color: var(--prf-ink);
    border-color: var(--prf-yellow);
    transform: translateY(-2px);
    box-shadow: 0 10px 24px -8px rgba(255, 214, 0, 0.5);
}

@media (max-width: 600px) {
    .prf-ty-ambassador { padding: 32px 22px; }
    .prf-ty-ambassador-stats { grid-template-columns: 1fr; }
    .prf-ty-ambassador-link { flex-direction: column; align-items: stretch; }
    .prf-ty-ambassador-copy { width: 100%; justify-content: center; }
}


/* =================================================================
   30.5  SIGUIENTES PASOS
   ================================================================= */
.prf-ty-next {
    background: var(--prf-white);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-lg);
    padding: 32px 28px;
    box-shadow: var(--prf-shadow-md);
}

.prf-ty-next-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.prf-ty-next-card {
    background: var(--prf-sky-50);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-md);
    padding: 22px 20px;
    transition: all 0.3s var(--prf-ease);
    text-align: center;
}

.prf-ty-next-card:hover {
    transform: translateY(-4px);
    border-color: var(--prf-pink);
    background: var(--prf-white);
    box-shadow: var(--prf-shadow-md);
}

.prf-ty-next-icon {
    width: 44px;
    height: 44px;
    margin: 0 auto 12px;
    background: var(--prf-grad-pink);
    color: var(--prf-white);
    border-radius: var(--prf-radius-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--prf-shadow-pink);
    transition: transform 0.4s var(--prf-ease-bounce);
}

.prf-ty-next-card:hover .prf-ty-next-icon {
    transform: rotate(-8deg) scale(1.1);
}

.prf-ty-next-title {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 800;
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: -0.3px;
    color: var(--prf-ink);
    margin: 0 0 6px 0;
}

.prf-ty-next-desc {
    font-size: var(--prf-fs-xs);
    color: var(--prf-muted);
    line-height: 1.4;
    margin: 0 0 14px 0;
}

.prf-ty-next-card .prf-btn-pink,
.prf-ty-next-card .prf-btn,
.prf-ty-next-card .prf-btn-ghost {
    width: 100%;
    justify-content: center;
    font-size: 0.7rem;
    padding: 10px 16px;
}

@media (max-width: 800px) {
    .prf-ty-next-grid {
        grid-template-columns: 1fr;
        max-width: 360px;
        margin: 0 auto;
    }
}


/* Mensajes WC en thank you */
.woocommerce-order .woocommerce-thankyou-order-received {
    display: none;
}

.woocommerce-order .woocommerce-notice {
    display: none;
}

.woocommerce-order address {
    font-style: normal;
    color: var(--prf-ink-soft);
    line-height: 1.6;
    background: var(--prf-sky-50);
    padding: 16px 18px;
    border-radius: var(--prf-radius-sm);
    border-left: 3px solid var(--prf-pink);
    margin-top: 12px;
}
/* =================================================================
   31. MI CUENTA — Wrapper + Sidebar + Dashboard
   -----------------------------------------------------------------
     31.1  CONTAINER (sidebar + content)
     31.2  HERO USUARIO
     31.3  SIDEBAR (nav)
     31.4  CONTENT (right column)
     31.5  DASHBOARD (cards stats + ticket destacado)
     31.6  LOGIN / LOST PASSWORD
   ================================================================= */


/* =================================================================
   31.1  CONTAINER
   ================================================================= */
.prf-account {
    background: var(--prf-bg-soft);
    color: var(--prf-text-on-light);
    min-height: 60vh;
    padding: clamp(24px, 4vh, 40px) clamp(16px, 3vw, 32px) clamp(60px, 9vh, 90px);
}

.prf-account-inner {
    max-width: var(--prf-container-max);
    margin: 0 auto;
}

.prf-account-grid {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 28px;
    align-items: start;
}

@media (max-width: 900px) {
    .prf-account-grid { grid-template-columns: 1fr; }
}


/* =================================================================
   31.2  HERO USUARIO (top de mi cuenta)
   ================================================================= */
.prf-account-hero {
    background: var(--prf-grad-dark);
    color: var(--prf-white);
    border-radius: var(--prf-radius-xl);
    padding: 32px 36px;
    margin-bottom: 28px;
    position: relative;
    overflow: hidden;
    box-shadow: 0 20px 50px -20px rgba(139, 47, 201, 0.4);
}

.prf-account-hero::before {
    content: '';
    position: absolute;
    top: -100px;
    right: -100px;
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, rgba(255, 45, 155, 0.3) 0%, transparent 60%);
    pointer-events: none;
    animation: prfOrbFloat 12s ease-in-out infinite;
}

.prf-account-hero::after {
    content: '';
    position: absolute;
    bottom: -100px;
    left: -100px;
    width: 350px;
    height: 350px;
    background: radial-gradient(circle, rgba(255, 214, 0, 0.2) 0%, transparent 60%);
    pointer-events: none;
    animation: prfOrbFloat 14s ease-in-out infinite reverse;
}

.prf-account-hero-inner {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
}

.prf-account-avatar {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: var(--prf-grad-pink);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--prf-white);
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    font-size: 2rem;
    box-shadow: var(--prf-shadow-pink);
    border: 3px solid rgba(255, 255, 255, 0.15);
    flex-shrink: 0;
}

.prf-account-hero-text {
    flex: 1;
    min-width: 200px;
}

.prf-account-hello {
    font-family: var(--prf-font-mono);
    font-size: var(--prf-fs-xs);
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--prf-yellow);
    margin: 0 0 6px 0;
}

.prf-account-name {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    font-size: clamp(1.6rem, 4vw, 2.2rem);
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: -0.5px;
    color: var(--prf-white);
    margin: 0;
}

.prf-account-meta {
    font-size: var(--prf-fs-sm);
    color: rgba(255, 255, 255, 0.7);
    margin-top: 6px;
}

.prf-account-hero-actions {
    flex-shrink: 0;
}


/* =================================================================
   31.3  SIDEBAR (nav)
   ================================================================= */
.prf-account-sidebar,
.woocommerce-MyAccount-navigation {
    background: var(--prf-white);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-lg);
    padding: 16px;
    box-shadow: var(--prf-shadow-md);
    position: sticky;
    top: 110px;
}

.woocommerce-MyAccount-navigation ul,
.prf-account-sidebar ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.woocommerce-MyAccount-navigation li,
.prf-account-sidebar li {
    list-style: none;
    margin: 0;
    padding: 0;
}

.woocommerce-MyAccount-navigation a,
.prf-account-sidebar a {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    color: var(--prf-ink);
    text-decoration: none;
    font-size: var(--prf-fs-sm);
    font-weight: 500;
    border-radius: var(--prf-radius-sm);
    transition: all 0.2s var(--prf-ease);
    border-left: 3px solid transparent;
}

.woocommerce-MyAccount-navigation a:hover,
.prf-account-sidebar a:hover {
    background: var(--prf-sky-50);
    color: var(--prf-pink);
    transform: translateX(2px);
}

.woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--dashboard a:hover,
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link.is-active a,
.prf-account-sidebar a.is-active {
    background: linear-gradient(135deg, rgba(255, 45, 155, 0.08) 0%, rgba(255, 45, 155, 0.02) 100%);
    color: var(--prf-pink);
    border-left-color: var(--prf-pink);
    font-weight: 600;
}

.woocommerce-MyAccount-navigation a svg,
.prf-account-sidebar a svg {
    width: 18px;
    height: 18px;
    color: var(--prf-muted);
    transition: color 0.2s;
    flex-shrink: 0;
}

.woocommerce-MyAccount-navigation a:hover svg,
.woocommerce-MyAccount-navigation li.is-active a svg,
.prf-account-sidebar a:hover svg,
.prf-account-sidebar a.is-active svg {
    color: var(--prf-pink);
}

/* Logout en rojo */
.woocommerce-MyAccount-navigation-link--customer-logout a {
    color: var(--prf-red);
    margin-top: 8px;
    padding-top: 12px;
    border-top: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-sm);
}

.woocommerce-MyAccount-navigation-link--customer-logout a:hover {
    background: rgba(220, 38, 38, 0.08);
    color: var(--prf-red);
}

.woocommerce-MyAccount-navigation-link--customer-logout a svg {
    color: var(--prf-red);
}


/* =================================================================
   31.4  CONTENT (right column)
   ================================================================= */
.prf-account-content,
.woocommerce-MyAccount-content {
    background: var(--prf-white);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-lg);
    padding: 32px 28px;
    box-shadow: var(--prf-shadow-md);
    min-width: 0;
}

.prf-account-content h1,
.prf-account-content h2,
.woocommerce-MyAccount-content h2,
.woocommerce-MyAccount-content h3 {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    font-size: 1.5rem;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: -0.5px;
    color: var(--prf-ink);
    margin: 0 0 20px 0;
    padding-bottom: 14px;
    border-bottom: 2px solid var(--prf-sky-100);
    position: relative;
}

.prf-account-content h1::before,
.prf-account-content h2::before,
.woocommerce-MyAccount-content h2::before,
.woocommerce-MyAccount-content h3::before {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 60px;
    height: 2px;
    background: var(--prf-grad-pink);
}

.prf-account-content p,
.woocommerce-MyAccount-content p {
    color: var(--prf-ink-soft);
    line-height: 1.65;
    margin: 0 0 14px 0;
}

.prf-account-content a,
.woocommerce-MyAccount-content a {
    color: var(--prf-pink);
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: rgba(255, 45, 155, 0.3);
    transition: text-decoration-color 0.2s;
}

.prf-account-content a:hover,
.woocommerce-MyAccount-content a:hover {
    text-decoration-color: var(--prf-pink);
}


/* =================================================================
   31.5  DASHBOARD (stats + welcome)
   ================================================================= */
.prf-account-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-bottom: 28px;
}

.prf-account-stat {
    background: var(--prf-sky-50);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-md);
    padding: 20px 22px;
    transition: all 0.3s var(--prf-ease);
    position: relative;
    overflow: hidden;
}

.prf-account-stat:hover {
    transform: translateY(-4px);
    border-color: var(--prf-pink);
    box-shadow: var(--prf-shadow-md);
    background: var(--prf-white);
}

.prf-account-stat-label {
    font-family: var(--prf-font-mono);
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--prf-muted);
    margin-bottom: 8px;
}

.prf-account-stat-value {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    font-size: 1.8rem;
    line-height: 1;
    color: var(--prf-ink);
    margin-bottom: 4px;
    background: var(--prf-grad-pink);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.prf-account-stat-meta {
    font-size: var(--prf-fs-xs);
    color: var(--prf-muted);
}

@media (max-width: 600px) {
    .prf-account-stats { grid-template-columns: 1fr; }
}

/* Ticket destacado en dashboard */
.prf-account-ticket-card {
    background: var(--prf-grad-dark);
    color: var(--prf-white);
    border-radius: var(--prf-radius-lg);
    padding: 28px 26px;
    position: relative;
    overflow: hidden;
    margin-bottom: 24px;
    box-shadow: 0 20px 50px -20px rgba(139, 47, 201, 0.4);
}

.prf-account-ticket-card::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 20% 30%, rgba(255, 45, 155, 0.25) 0%, transparent 55%),
        radial-gradient(circle at 80% 70%, rgba(255, 214, 0, 0.15) 0%, transparent 55%);
    pointer-events: none;
}

.prf-account-ticket-card > * {
    position: relative;
    z-index: 1;
}

.prf-account-ticket-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
    flex-wrap: wrap;
}

.prf-account-ticket-card-title {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 800;
    font-size: 1.2rem;
    text-transform: uppercase;
    letter-spacing: -0.3px;
    color: var(--prf-white);
    margin: 0;
}

.prf-account-ticket-card-num {
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.15);
    padding: 5px 12px;
    border-radius: var(--prf-radius-pill);
    font-family: var(--prf-font-mono);
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--prf-yellow);
    font-weight: 700;
}

.prf-account-ticket-card-event {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    font-size: clamp(1.4rem, 3vw, 1.8rem);
    line-height: 1.1;
    text-transform: uppercase;
    letter-spacing: -0.5px;
    color: var(--prf-white);
    margin: 0 0 14px 0;
}

.prf-account-ticket-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 18px;
}

.prf-account-ticket-card-meta-item {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: var(--prf-fs-sm);
    color: rgba(255, 255, 255, 0.85);
}

.prf-account-ticket-card-meta-item svg {
    color: var(--prf-yellow);
    flex-shrink: 0;
}

.prf-account-welcome {
    background: linear-gradient(135deg, rgba(255, 214, 0, 0.06) 0%, rgba(255, 45, 155, 0.04) 100%);
    border: 1px dashed var(--prf-pink);
    border-radius: var(--prf-radius-md);
    padding: 18px 20px;
    margin-bottom: 24px;
    color: var(--prf-ink-soft);
    line-height: 1.55;
}

.prf-account-welcome strong {
    color: var(--prf-pink);
    font-weight: 700;
}


/* =================================================================
   31.6  LOGIN / LOST PASSWORD
   ================================================================= */
.woocommerce-account .woocommerce-form-login,
.woocommerce-account .woocommerce-form-register,
.woocommerce-account .lost_reset_password,
.prf-account-form {
    background: var(--prf-white);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-lg);
    padding: 32px 28px;
    box-shadow: var(--prf-shadow-md);
    max-width: 480px;
    margin: 0 auto;
}

.woocommerce-account .u-columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}

.woocommerce-account .u-columns h2 {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    font-size: 1.4rem;
    text-transform: uppercase;
    letter-spacing: -0.5px;
    color: var(--prf-ink);
    margin: 0 0 16px 0;
}

.woocommerce-account .woocommerce-form .form-row label {
    font-size: var(--prf-fs-xs) !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    color: var(--prf-ink) !important;
    font-weight: 600 !important;
    margin-bottom: 8px !important;
}

.woocommerce-account .woocommerce-form .form-row input {
    padding: 14px 16px !important;
    border: 1.5px solid var(--prf-sky-100) !important;
    border-radius: var(--prf-radius-sm) !important;
    background: var(--prf-white) !important;
    font-size: var(--prf-fs-base) !important;
    width: 100%;
    transition: all 0.2s !important;
}

.woocommerce-account .woocommerce-form .form-row input:focus {
    border-color: var(--prf-pink) !important;
    box-shadow: 0 0 0 3px rgba(255, 45, 155, 0.1) !important;
    outline: none !important;
}

.woocommerce-account .woocommerce-form button[type="submit"],
.woocommerce-account .woocommerce-Button {
    background: var(--prf-grad-pink) !important;
    color: var(--prf-white) !important;
    padding: 14px 28px !important;
    border-radius: var(--prf-radius-pill) !important;
    font-family: var(--prf-font-body) !important;
    font-weight: 600 !important;
    font-size: var(--prf-fs-sm) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    border: none !important;
    box-shadow: var(--prf-shadow-pink) !important;
    transition: all 0.3s var(--prf-ease) !important;
    cursor: pointer;
}

.woocommerce-account .woocommerce-form button[type="submit"]:hover,
.woocommerce-account .woocommerce-Button:hover {
    transform: translateY(-2px) !important;
    box-shadow: var(--prf-shadow-pink-lg) !important;
    color: var(--prf-white) !important;
}

.woocommerce-account .woocommerce-LostPassword {
    margin-top: 8px;
}

.woocommerce-account .woocommerce-LostPassword a {
    color: var(--prf-pink);
    font-size: var(--prf-fs-sm);
}

.woocommerce-form-login__rememberme {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--prf-ink);
    font-size: var(--prf-fs-sm);
    cursor: pointer;
}

.woocommerce-form-login__rememberme input[type="checkbox"] {
    width: 16px;
    height: 16px;
    accent-color: var(--prf-pink);
    cursor: pointer;
}

@media (max-width: 800px) {
    .woocommerce-account .u-columns {
        grid-template-columns: 1fr;
    }
}


/* =================================================================
   32. MI CUENTA — Endpoints (orders, view-order, edit-account, embajadores)
   -----------------------------------------------------------------
     32.1  ORDERS (lista pedidos)
     32.2  VIEW ORDER (detalle)
     32.3  EDIT ACCOUNT
     32.4  EMBAJADORES (panel)
   ================================================================= */


/* =================================================================
   32.1  ORDERS — Lista de pedidos
   ================================================================= */
.woocommerce-orders-table {
    width: 100% !important;
    border-collapse: collapse !important;
    background: transparent !important;
    border: none !important;
}

.woocommerce-orders-table thead {
    background: var(--prf-sky-50);
}

.woocommerce-orders-table thead th {
    padding: 14px 16px !important;
    font-family: var(--prf-font-mono) !important;
    font-size: 0.7rem !important;
    text-transform: uppercase !important;
    letter-spacing: 1.5px !important;
    font-weight: 700 !important;
    color: var(--prf-pink) !important;
    text-align: left !important;
    border-bottom: 1px solid var(--prf-sky-100) !important;
}

.woocommerce-orders-table tbody td {
    padding: 16px !important;
    border-bottom: 1px solid var(--prf-sky-100) !important;
    color: var(--prf-ink) !important;
    background: transparent !important;
    font-size: var(--prf-fs-sm) !important;
    vertical-align: middle !important;
}

.woocommerce-orders-table tbody tr:hover {
    background: rgba(255, 45, 155, 0.02);
}

.woocommerce-orders-table .order-number a {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 800;
    color: var(--prf-pink);
    text-decoration: none;
    font-size: 1rem;
}

.woocommerce-orders-table .order-number a:hover {
    color: var(--prf-purple);
}

.woocommerce-orders-table .order-status {
    display: inline-block;
    padding: 4px 12px;
    border-radius: var(--prf-radius-pill);
    font-family: var(--prf-font-mono);
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 700;
}

.woocommerce-orders-table .order-status.status-completed {
    background: rgba(16, 185, 129, 0.1);
    color: var(--prf-green);
    border: 1px solid rgba(16, 185, 129, 0.2);
}

.woocommerce-orders-table .order-status.status-processing {
    background: rgba(14, 165, 233, 0.1);
    color: var(--prf-sky-700);
    border: 1px solid rgba(14, 165, 233, 0.2);
}

.woocommerce-orders-table .order-status.status-pending,
.woocommerce-orders-table .order-status.status-on-hold {
    background: rgba(245, 158, 11, 0.1);
    color: var(--prf-amber);
    border: 1px solid rgba(245, 158, 11, 0.2);
}

.woocommerce-orders-table .order-status.status-cancelled,
.woocommerce-orders-table .order-status.status-failed,
.woocommerce-orders-table .order-status.status-refunded {
    background: rgba(220, 38, 38, 0.08);
    color: var(--prf-red);
    border: 1px solid rgba(220, 38, 38, 0.2);
}

.woocommerce-orders-table .order-total {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 800;
    color: var(--prf-ink);
}

.woocommerce-orders-table .order-actions a.button {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--prf-ink) !important;
    color: var(--prf-white) !important;
    padding: 8px 16px !important;
    border-radius: var(--prf-radius-pill) !important;
    font-family: var(--prf-font-body) !important;
    font-weight: 600 !important;
    font-size: 0.7rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    text-decoration: none !important;
    border: none !important;
    transition: all 0.3s var(--prf-ease) !important;
}

.woocommerce-orders-table .order-actions a.button:hover {
    background: var(--prf-pink) !important;
    transform: translateY(-2px);
    box-shadow: var(--prf-shadow-pink);
    color: var(--prf-white) !important;
}

@media (max-width: 768px) {
    .woocommerce-orders-table thead { display: none; }
    .woocommerce-orders-table tbody tr {
        display: block;
        background: var(--prf-sky-50);
        border-radius: var(--prf-radius-md);
        margin-bottom: 12px;
        padding: 14px 16px;
    }
    .woocommerce-orders-table tbody td {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 8px 0 !important;
        border: none !important;
    }
    .woocommerce-orders-table tbody td::before {
        content: attr(data-title);
        font-family: var(--prf-font-mono);
        font-size: 0.65rem;
        text-transform: uppercase;
        letter-spacing: 1px;
        color: var(--prf-muted);
        font-weight: 700;
        margin-right: 10px;
    }
    .woocommerce-orders-table .order-actions {
        justify-content: flex-end;
    }
}

/* No orders */
.woocommerce-Message--info,
.woocommerce-account .woocommerce-Message {
    background: linear-gradient(135deg, rgba(14, 165, 233, 0.08) 0%, rgba(14, 165, 233, 0.03) 100%) !important;
    border: 1px solid rgba(14, 165, 233, 0.2) !important;
    border-left: 4px solid var(--prf-sky-500) !important;
    border-radius: var(--prf-radius-md) !important;
    padding: 20px 24px !important;
    color: var(--prf-ink-soft) !important;
    font-size: var(--prf-fs-base) !important;
}

.woocommerce-Message--info a,
.woocommerce-account .woocommerce-Message a {
    color: var(--prf-pink);
    font-weight: 600;
}


/* =================================================================
   32.2  VIEW ORDER (detalle pedido)
   ================================================================= */
.woocommerce-view-order .woocommerce-order-details,
.woocommerce-view-order .woocommerce-customer-details {
    background: transparent;
    border: none;
    padding: 0;
    margin-bottom: 28px;
    box-shadow: none;
}

.woocommerce-view-order .woocommerce-order-details h2,
.woocommerce-view-order .woocommerce-customer-details h2 {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    font-size: 1.3rem;
    text-transform: uppercase;
    letter-spacing: -0.5px;
    color: var(--prf-ink);
    margin: 0 0 16px 0;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--prf-sky-100);
    position: relative;
}

.woocommerce-view-order .woocommerce-order-details h2::before,
.woocommerce-view-order .woocommerce-customer-details h2::before {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 60px;
    height: 2px;
    background: var(--prf-grad-pink);
}

.woocommerce-view-order .order_details {
    width: 100%;
    border-collapse: collapse;
    background: var(--prf-sky-50);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-md);
    overflow: hidden;
}

.woocommerce-view-order .order_details thead th {
    padding: 12px 16px;
    background: var(--prf-white);
    font-family: var(--prf-font-mono);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-weight: 700;
    color: var(--prf-pink);
    border-bottom: 1px solid var(--prf-sky-100);
    text-align: left;
}

.woocommerce-view-order .order_details tbody td {
    padding: 14px 16px;
    border-bottom: 1px dashed var(--prf-sky-100);
    color: var(--prf-ink);
    background: transparent;
    font-size: var(--prf-fs-sm);
}

.woocommerce-view-order .order_details .product-name {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 700;
    color: var(--prf-ink);
}

.woocommerce-view-order .order_details .product-total {
    text-align: right;
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 800;
    color: var(--prf-ink);
}

.woocommerce-view-order .order_details tfoot th {
    text-align: left;
    font-family: var(--prf-font-mono);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-weight: 700;
    color: var(--prf-muted);
    padding: 10px 16px;
    background: transparent;
    border-bottom: 1px dashed var(--prf-sky-100);
}

.woocommerce-view-order .order_details tfoot td {
    text-align: right;
    color: var(--prf-ink);
    padding: 10px 16px;
    background: transparent;
    border-bottom: 1px dashed var(--prf-sky-100);
}

.woocommerce-view-order .order_details tfoot tr:last-child th,
.woocommerce-view-order .order_details tfoot tr:last-child td {
    border-bottom: none;
}

.woocommerce-view-order .order_details tfoot .order-total th {
    color: var(--prf-pink);
    font-size: var(--prf-fs-xs);
}

.woocommerce-view-order .order_details tfoot .order-total td {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    font-size: 1.4rem;
    background: var(--prf-grad-pink);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* Customer details (direcciones) */
.woocommerce-view-order .woocommerce-customer-details .col2-set {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.woocommerce-view-order .woocommerce-customer-details .col-1,
.woocommerce-view-order .woocommerce-customer-details .col-2 {
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.woocommerce-view-order .woocommerce-customer-details address {
    font-style: normal;
    background: var(--prf-sky-50);
    padding: 18px 20px;
    border-radius: var(--prf-radius-md);
    border-left: 3px solid var(--prf-pink);
    color: var(--prf-ink-soft);
    line-height: 1.65;
    font-size: var(--prf-fs-sm);
}

.woocommerce-view-order .woocommerce-customer-details h3 {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 800;
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: -0.3px;
    color: var(--prf-ink);
    margin: 0 0 10px 0;
}

@media (max-width: 700px) {
    .woocommerce-view-order .woocommerce-customer-details .col2-set {
        grid-template-columns: 1fr;
    }
}


/* =================================================================
   32.3  EDIT ACCOUNT (formulario datos)
   ================================================================= */
.woocommerce-EditAccountForm {
    max-width: 100%;
}

.woocommerce-EditAccountForm fieldset {
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-md);
    padding: 20px 22px;
    margin-top: 24px;
    background: var(--prf-sky-50);
}

.woocommerce-EditAccountForm fieldset legend {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 800;
    font-size: 1.05rem;
    text-transform: uppercase;
    letter-spacing: -0.3px;
    color: var(--prf-pink);
    padding: 0 10px;
}

.woocommerce-EditAccountForm .form-row {
    margin-bottom: 16px;
}

.woocommerce-EditAccountForm .form-row label {
    display: block !important;
    font-size: var(--prf-fs-xs) !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    color: var(--prf-ink) !important;
    font-weight: 600 !important;
    margin-bottom: 8px !important;
}

.woocommerce-EditAccountForm .form-row input {
    width: 100%;
    padding: 14px 16px !important;
    border: 1.5px solid var(--prf-sky-100) !important;
    border-radius: var(--prf-radius-sm) !important;
    background: var(--prf-white) !important;
    font-family: var(--prf-font-body) !important;
    font-size: var(--prf-fs-base) !important;
    color: var(--prf-ink) !important;
    transition: all 0.2s !important;
}

.woocommerce-EditAccountForm .form-row input:focus {
    border-color: var(--prf-pink) !important;
    box-shadow: 0 0 0 3px rgba(255, 45, 155, 0.1) !important;
    outline: none !important;
}

.woocommerce-EditAccountForm .form-row-first,
.woocommerce-EditAccountForm .form-row-last {
    width: calc(50% - 8px) !important;
    display: inline-block;
    vertical-align: top;
}

.woocommerce-EditAccountForm .form-row-first {
    margin-right: 16px !important;
}

.woocommerce-EditAccountForm .button[type="submit"],
.woocommerce-EditAccountForm .woocommerce-Button {
    margin-top: 20px;
    background: var(--prf-grad-pink) !important;
    color: var(--prf-white) !important;
    padding: 14px 28px !important;
    border-radius: var(--prf-radius-pill) !important;
    font-family: var(--prf-font-body) !important;
    font-weight: 600 !important;
    font-size: var(--prf-fs-sm) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    border: none !important;
    box-shadow: var(--prf-shadow-pink) !important;
    transition: all 0.3s var(--prf-ease) !important;
    cursor: pointer;
}

.woocommerce-EditAccountForm .button[type="submit"]:hover,
.woocommerce-EditAccountForm .woocommerce-Button:hover {
    transform: translateY(-2px) !important;
    box-shadow: var(--prf-shadow-pink-lg) !important;
    color: var(--prf-white) !important;
}

@media (max-width: 600px) {
    .woocommerce-EditAccountForm .form-row-first,
    .woocommerce-EditAccountForm .form-row-last {
        width: 100% !important;
        margin-right: 0 !important;
    }
}


/* =================================================================
   32.4  EMBAJADORES — Panel en mi cuenta
   ================================================================= */
.prf-emb-panel {
    color: var(--prf-text-on-light);
}

.prf-emb-panel-hero {
    background: linear-gradient(135deg, var(--prf-pink) 0%, var(--prf-purple) 50%, var(--prf-pink) 100%);
    background-size: 200% 100%;
    color: var(--prf-white);
    border-radius: var(--prf-radius-xl);
    padding: 32px 32px;
    margin-bottom: 28px;
    position: relative;
    overflow: hidden;
    box-shadow: 0 20px 50px -20px rgba(255, 45, 155, 0.5);
    animation: prfGradientShift 8s ease infinite;
}

.prf-emb-panel-hero::before {
    content: '';
    position: absolute;
    top: -100px;
    right: -100px;
    width: 350px;
    height: 350px;
    background: radial-gradient(circle, rgba(255, 214, 0, 0.4) 0%, transparent 60%);
    pointer-events: none;
    animation: prfOrbFloat 14s ease-in-out infinite;
}

.prf-emb-panel-hero-inner {
    position: relative;
    z-index: 2;
}

.prf-emb-panel-tier-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--prf-yellow);
    color: var(--prf-ink);
    padding: 6px 16px;
    border-radius: var(--prf-radius-pill);
    font-family: var(--prf-font-mono);
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    box-shadow: 0 8px 24px -6px rgba(255, 214, 0, 0.6);
    margin-bottom: 14px;
}

.prf-emb-panel-title {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    font-size: clamp(1.6rem, 4vw, 2.2rem);
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: -0.5px;
    color: var(--prf-white);
    margin: 0 0 8px 0;
    text-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
}

.prf-emb-panel-sub {
    font-size: var(--prf-fs-md);
    color: rgba(255, 255, 255, 0.9);
    margin: 0;
    line-height: 1.55;
}

/* Link referido box */
.prf-emb-panel-link {
    background: rgba(10, 22, 40, 0.4);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px dashed rgba(255, 214, 0, 0.5);
    border-radius: var(--prf-radius-md);
    padding: 16px 18px;
    margin-top: 20px;
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.prf-emb-panel-link-label {
    font-family: var(--prf-font-mono);
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--prf-yellow);
    font-weight: 700;
    flex-shrink: 0;
}

.prf-emb-panel-link-value {
    flex: 1;
    min-width: 200px;
    font-family: var(--prf-font-mono);
    font-size: var(--prf-fs-sm);
    color: var(--prf-white);
    word-break: break-all;
    line-height: 1.4;
}

.prf-emb-panel-copy {
    flex-shrink: 0;
    background: var(--prf-yellow);
    color: var(--prf-ink);
    border: none;
    padding: 10px 18px;
    border-radius: var(--prf-radius-pill);
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    cursor: pointer;
    transition: all 0.2s var(--prf-ease);
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.prf-emb-panel-copy:hover {
    background: var(--prf-white);
    transform: translateY(-2px);
    box-shadow: 0 10px 20px -5px rgba(0, 0, 0, 0.2);
}

.prf-emb-panel-copy.is-copied {
    background: var(--prf-green-light);
    color: var(--prf-white);
}

/* Progress hacia upgrade */
.prf-emb-panel-progress {
    background: var(--prf-white);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-lg);
    padding: 28px 26px;
    margin-bottom: 24px;
    box-shadow: var(--prf-shadow-md);
}

.prf-emb-panel-progress-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
    flex-wrap: wrap;
}

.prf-emb-panel-progress-title {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 800;
    font-size: 1.1rem;
    text-transform: uppercase;
    letter-spacing: -0.3px;
    color: var(--prf-ink);
    margin: 0;
}

.prf-emb-panel-progress-count {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    font-size: 1.4rem;
    background: var(--prf-grad-pink);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.prf-emb-panel-progress-bar {
    height: 14px;
    background: var(--prf-sky-100);
    border-radius: var(--prf-radius-pill);
    overflow: hidden;
    position: relative;
    margin-bottom: 14px;
}

.prf-emb-panel-progress-fill {
    height: 100%;
    background: var(--prf-grad-pink);
    border-radius: var(--prf-radius-pill);
    transition: width 0.6s var(--prf-ease);
    position: relative;
    overflow: hidden;
    box-shadow: 0 4px 12px -2px rgba(255, 45, 155, 0.5);
}

.prf-emb-panel-progress-fill::after {
    content: '';
    position: absolute;
    top: 0;
    left: -50%;
    width: 50%;
    height: 100%;
    background: linear-gradient(90deg,
        transparent 0%,
        rgba(255, 255, 255, 0.4) 50%,
        transparent 100%);
    animation: prfProgressShine 2s ease-in-out infinite;
}

@keyframes prfProgressShine {
    0%   { left: -50%; }
    100% { left: 150%; }
}

.prf-emb-panel-progress-meta {
    font-size: var(--prf-fs-sm);
    color: var(--prf-muted);
    line-height: 1.5;
}

.prf-emb-panel-progress-meta strong {
    color: var(--prf-pink);
    font-weight: 700;
}

/* Stats grid embajador */
.prf-emb-panel-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    margin-bottom: 24px;
}

.prf-emb-panel-stat {
    background: var(--prf-white);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-md);
    padding: 18px 18px;
    text-align: center;
    transition: all 0.3s var(--prf-ease);
}

.prf-emb-panel-stat:hover {
    transform: translateY(-3px);
    border-color: var(--prf-pink);
    box-shadow: var(--prf-shadow-md);
}

.prf-emb-panel-stat-num {
    display: block;
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    font-size: 1.8rem;
    line-height: 1;
    background: var(--prf-grad-pink);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    margin-bottom: 4px;
}

.prf-emb-panel-stat-lbl {
    font-family: var(--prf-font-mono);
    font-size: 0.6rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--prf-muted);
}

@media (max-width: 600px) {
    .prf-emb-panel-stats { grid-template-columns: 1fr; }
}

/* Lista referidos */
.prf-emb-panel-referrals {
    background: var(--prf-white);
    border: 1px solid var(--prf-sky-100);
    border-radius: var(--prf-radius-lg);
    padding: 28px 26px;
    box-shadow: var(--prf-shadow-md);
}

.prf-emb-panel-referrals-title {
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 800;
    font-size: 1.15rem;
    text-transform: uppercase;
    letter-spacing: -0.3px;
    color: var(--prf-ink);
    margin: 0 0 18px 0;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--prf-sky-100);
    position: relative;
}

.prf-emb-panel-referrals-title::before {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 50px;
    height: 2px;
    background: var(--prf-grad-pink);
}

.prf-emb-panel-referral-item {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 0;
    border-bottom: 1px dashed var(--prf-sky-100);
    transition: padding 0.2s;
}

.prf-emb-panel-referral-item:last-child {
    border-bottom: none;
}

.prf-emb-panel-referral-item:hover {
    padding-left: 6px;
}

.prf-emb-panel-referral-avatar {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    background: var(--prf-grad-pink);
    color: var(--prf-white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--prf-font-display);
    font-style: italic;
    font-weight: 900;
    font-size: 0.85rem;
}

.prf-emb-panel-referral-info {
    flex: 1;
    min-width: 0;
}

.prf-emb-panel-referral-name {
    font-family: var(--prf-font-body);
    font-size: var(--prf-fs-sm);
    font-weight: 600;
    color: var(--prf-ink);
    line-height: 1.2;
}

.prf-emb-panel-referral-date {
    font-size: var(--prf-fs-xs);
    color: var(--prf-muted);
    font-family: var(--prf-font-mono);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: 2px;
}

.prf-emb-panel-referral-status {
    flex-shrink: 0;
    background: rgba(16, 185, 129, 0.1);
    color: var(--prf-green);
    border: 1px solid rgba(16, 185, 129, 0.2);
    padding: 4px 12px;
    border-radius: var(--prf-radius-pill);
    font-family: var(--prf-font-mono);
    font-size: 0.6rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 700;
}

.prf-emb-panel-referral-status.is-pending {
    background: rgba(245, 158, 11, 0.1);
    color: var(--prf-amber);
    border-color: rgba(245, 158, 11, 0.2);
}

.prf-emb-panel-empty {
    background: var(--prf-sky-50);
    border: 1px dashed var(--prf-sky-200);
    border-radius: var(--prf-radius-md);
    padding: 32px 24px;
    text-align: center;
    color: var(--prf-muted);
}

.prf-emb-panel-empty-icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 14px;
    background: var(--prf-white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--prf-pink);
    box-shadow: var(--prf-shadow-sm);
}

.prf-emb-panel-empty p {
    margin: 0 0 6px 0;
    color: var(--prf-ink);
    font-weight: 600;
}

.prf-emb-panel-empty small {
    font-size: var(--prf-fs-xs);
    color: var(--prf-muted);
}



/* =================================================================
   01. REGLA BASE GLOBAL — TODOS los SVG dentro de bloques prf-*
   -----------------------------------------------------------------
   Por defecto: 1em (≈ 16px). Cada sección puede sobreescribir.
   Solo aplica si el SVG NO tiene width/height explícitos.
   ================================================================= */
[class*="prf-"] svg:not([width]):not([height]) {
    width: 1em;
    height: 1em;
    flex-shrink: 0;
}
 
 
/* =================================================================
   02. HEADER / NAVBAR
   ================================================================= */
.prf-nav-icon-btn svg,
.prf-nav-cart svg {
    width: 22px;
    height: 22px;
}
 
.prf-nav-dropdown-link svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}
 
 
/* =================================================================
   03. FOOTER
   ================================================================= */
.prf-footer-social a svg {
    width: 18px;
    height: 18px;
}
 
 
/* =================================================================
   04. PORTADA / HERO V4
   ================================================================= */
.prf-hero-v4 svg,
.prf-hero svg,
.prf-sticky-urg svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}
 
.prf-hero-v4-cta svg,
.prf-hero-cta svg {
    width: 18px;
    height: 18px;
}
 
.prf-quick-info-card svg,
.prf-quickinfo-card svg {
    width: 24px;
    height: 24px;
}
 
.prf-anniversary-stat svg,
.prf-stat svg {
    width: 28px;
    height: 28px;
}
 
 
/* =================================================================
   05. LINEUP
   ================================================================= */
.prf-lineup svg,
.prf-lu svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}
 
.prf-lu-headliner-cta svg,
.prf-lu-cta svg,
.prf-lu-final-cta svg {
    width: 20px;
    height: 20px;
}
 
.prf-lu-stage-icon svg,
.prf-lu-timeline-icon svg {
    width: 22px;
    height: 22px;
}
 
.prf-lu-play svg {
    width: 28px;
    height: 28px;
}
 
 
/* =================================================================
   06. UBICACIÓN
   ================================================================= */
.prf-ub svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}
 
.prf-ub-info-card svg,
.prf-ub-card svg,
.prf-ub-parking svg,
.prf-ub-howto svg {
    width: 22px;
    height: 22px;
}
 
.prf-ub-hotel svg {
    width: 18px;
    height: 18px;
}
 
 
/* =================================================================
   07. PREGUNTAS / FAQ
   ================================================================= */
.prf-faq svg,
.prf-faq-icon {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}
 
.prf-faq-cat-icon svg {
    width: 22px;
    height: 22px;
}
 
 
/* =================================================================
   08. CONTACTO
   ================================================================= */
.prf-ct svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}
 
.prf-ct-quick-card svg,
.prf-ct-card svg {
    width: 22px;
    height: 22px;
}
 
 
/* =================================================================
   09. EMBAJADORES (página pública)
   ================================================================= */
.prf-emb svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}
 
.prf-emb-how-step svg,
.prf-emb-tier svg {
    width: 22px;
    height: 22px;
}
 
.prf-emb-cta svg {
    width: 18px;
    height: 18px;
}
 
 
/* =================================================================
   10. ENTRADAS
   ================================================================= */
.prf-tickets svg,
.prf-tk-sect-badge svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}
 
.prf-tk-countdown-icon svg {
    width: 28px;
    height: 28px;
}
 
.prf-tk-countdown-toggle svg {
    width: 14px;
    height: 14px;
}
 
.prf-tk-countdown-show svg {
    width: 16px;
    height: 16px;
}
 
.prf-tk-card-features li svg {
    width: 16px;
    height: 16px;
}
 
.prf-tk-card-popular-badge svg,
.prf-tk-card-saving svg {
    width: 14px;
    height: 14px;
}
 
.prf-tk-card-btn svg {
    width: 18px;
    height: 18px;
}
 
.prf-tk-resident-warning > svg {
    width: 24px;
    height: 24px;
}
 
.prf-tk-faq-bottom-link svg {
    width: 16px;
    height: 16px;
}
 
 
/* =================================================================
   11. PÁGINAS LEGALES
   ================================================================= */
.prf-legal svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}
 
.prf-legal-hero-icon svg {
    width: 32px;
    height: 32px;
}
 
 
/* =================================================================
   12. CARRITO
   ================================================================= */
.prf-cart svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}
 
.prf-cart-secure svg,
.prf-cart-upsell-icon svg {
    width: 20px;
    height: 20px;
}
 
.prf-cart-empty-icon svg {
    width: 40px;
    height: 40px;
}
 
 
/* =================================================================
   13. CHECKOUT
   ================================================================= */
.prf-co svg,
.prf-co-attendees-info svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}
 
.prf-co-secure svg {
    width: 18px;
    height: 18px;
}
 
.prf-co-place-order svg {
    width: 20px;
    height: 20px;
}
 
 
/* =================================================================
   14. THANK YOU
   ================================================================= */
.prf-ty svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}
 
.prf-ty-success-icon svg {
    width: 44px;
    height: 44px;
}
 
.prf-ty-next-icon svg {
    width: 22px;
    height: 22px;
}
 
.prf-ty-ambassador-share-btn svg,
.prf-ty-ambassador-copy svg {
    width: 14px;
    height: 14px;
}
 
.prf-ty-attendee svg {
    width: 16px;
    height: 16px;
}
 
 
/* =================================================================
   15. MI CUENTA
   ================================================================= */
.prf-account svg,
.woocommerce-MyAccount-navigation a svg {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}
 
.prf-account-stat svg,
.prf-account-ticket-card-meta-item svg {
    width: 16px;
    height: 16px;
}
 
.prf-emb-panel svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}
 
.prf-emb-panel-empty-icon svg {
    width: 28px;
    height: 28px;
}
 
 
/* =================================================================
   16. FALLBACK FINAL — Cualquier SVG suelto en el body (último recurso)
   -----------------------------------------------------------------
   Captura SVGs sueltos sin clase ancestor `prf-*` (raros pero existen).
   Solo se aplica si NO tiene width/height explícitos.
   No afecta a SVGs de Elementor, WooCommerce ni plugins (esos sí
   suelen llevar dimensiones).
   ================================================================= */
body svg:not([width]):not([height]):not([class*="elementor"]):not([class*="woocommerce"]):not([class*="wc-"]):not([class*="joinchat"]):not([class*="dashicons"]):not([class*="eicon"]) {
    max-width: 32px;
    max-height: 32px;
}
