:root {
    /* Color Palette */
    --bg-dark: #080808;
    --bg-charcoal: #121212;
    --bg-card: rgba(18, 18, 18, 0.7);
    --text-main: #F5F5F0;
    --text-muted: #A0A0A0;
    --red-velvet: #722F37;
    --red-intense: #D40000;
    --border-color: rgba(255, 255, 255, 0.05);
    --glass-bg: rgba(8, 8, 8, 0.6);
    --glass-border: rgba(255, 255, 255, 0.08);
    
    /* Typography */
    --font-serif: 'Playfair Display', serif;
    --font-sans: 'Inter', sans-serif;
    
    /* Layout */
    --container-width: 1200px;
    --transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    /* Red Velvet Luxury Scrollbar (Firefox) */
    scrollbar-width: thin;
    scrollbar-color: #800020 #0c0608;
}

/* ==========================================================================
   RED VELVET LUXURY SCROLLBAR (WEBKIT / CHROMIUM / SAFARI / EDGE)
   ========================================================================== */
::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

::-webkit-scrollbar-track {
    background: #080305;
    border-left: 1px solid rgba(212, 175, 55, 0.15);
    box-shadow: inset 0 0 8px rgba(0, 0, 0, 0.85);
}

::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, #9b111e 0%, #800020 50%, #4a0404 100%);
    border: 1px solid rgba(212, 175, 55, 0.45);
    border-radius: 8px;
    box-shadow: inset 0 1px 2px rgba(255, 255, 255, 0.25), 0 0 8px rgba(128, 0, 32, 0.45);
    transition: all 0.3s ease;
}

::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(180deg, #b81427 0%, #9b111e 50%, #60020d 100%);
    border-color: #FFD700;
    box-shadow: 0 0 12px rgba(255, 215, 0, 0.65), inset 0 1px 3px rgba(255, 255, 255, 0.4);
}

::-webkit-scrollbar-thumb:active {
    background: #FFD700;
    border-color: #FFFFFF;
    box-shadow: 0 0 16px rgba(255, 215, 0, 0.95);
}

::-webkit-scrollbar-corner {
    background: #080305;
}

/* ==========================================================================
   CURSOR PERSONALIZADO: CORAZÓN RED VELVET & AURA DORADA
   ========================================================================== */
@media (hover: hover) and (pointer: fine) {
    html, body {
        cursor: url('../assets/icons/cursor-heart.png') 8 6, url('../assets/icons/cursor-heart.svg') 8 6, auto;
    }

    /* Elementos interactivos / cliqueables: Corazón resplandeciente dorado */
    a, button, [role="button"], input[type="submit"], input[type="button"], select,
    .product-card, .cat-pill, .footer-legal-btn, .lang-btn, .theme-toggle-btn,
    .cart-btn-header, .social-icon, .modal-close-btn, .accordion-header, .yessi-launcher-btn,
    .yessi-chip, .unboxing-card, .faq-question, .back-to-top, .cart-item-remove,
    .cart-qty-btn, .mood-btn, .btn, .legal-switch-btn, .modal-action-close {
        cursor: url('../assets/icons/cursor-heart-pointer.png') 10 5, url('../assets/icons/cursor-heart-pointer.svg') 10 5, pointer !important;
    }

    /* Campos de texto mantienen el cursor de texto accesible */
    input[type="text"], input[type="email"], input[type="tel"], input[type="password"], textarea {
        cursor: text !important;
    }
}

/* ==========================================================================
   CINTA DINÁMICA DE PROGRESO DE SCROLL CON CORAZÓN RED VELVET
   ========================================================================== */
.rv-scroll-progress-wrap {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 3.5px;
    background: rgba(12, 6, 8, 0.7);
    backdrop-filter: blur(4px);
    z-index: 100001;
    pointer-events: none;
}

.rv-scroll-progress-bar {
    height: 100%;
    width: 0%;
    background: linear-gradient(90deg, #800020 0%, #b31b2c 55%, #FFD700 100%);
    position: relative;
    box-shadow: 0 0 10px rgba(179, 27, 44, 0.85), 0 0 5px #FFD700;
    transition: width 0.08s ease-out;
}

.rv-scroll-heart-tip {
    position: absolute;
    right: -7px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 13px;
    line-height: 1;
    color: #FFD700;
    text-shadow: 0 0 8px rgba(255, 215, 0, 0.95), 0 0 14px rgba(179, 27, 44, 1);
    animation: rvHeartPulse 1.2s ease-in-out infinite;
}

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

/* Estela de Destellos de Rubí y Oro para Cursor en Desktop */
.rv-cursor-sparkle {
    position: fixed;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    pointer-events: none;
    z-index: 999999;
    animation: rvSparkleFade 0.55s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes rvSparkleFade {
    0% {
        opacity: 0.9;
        transform: scale(1) translateY(0);
    }
    100% {
        opacity: 0;
        transform: scale(0.2) translateY(12px);
    }
}

html {
    font-size: 16px;
    width: 100%;
    overflow-x: hidden;
    overflow-y: auto;
}

@media (min-width: 769px) {
    html {
        scroll-behavior: smooth;
    }
}

body {
    font-family: var(--font-sans);
    background-color: var(--bg-dark);
    color: var(--text-main);
    line-height: 1.6;
    width: 100%;
    min-height: 100vh;
    position: relative;
    overflow-x: hidden;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
}

h1, h2, h3, h4, .logo-text {
    font-family: var(--font-serif);
    font-weight: 400;
    letter-spacing: 1px;
}

a {
    color: var(--text-main);
    text-decoration: none;
    transition: var(--transition);
}

ul {
    list-style: none;
}

img {
    max-width: 100%;
    display: block;
}

.container {
    max-width: var(--container-width);
    margin: 0 auto;
    padding: 0 2rem;
}

.text-center {
    text-align: center;
}

/* Glassmorphism utility */
.glass {
    background: var(--glass-bg);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid var(--glass-border);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
}

/* Buttons */
.btn {
    display: inline-block;
    padding: 0.75rem 1.5rem;
    font-family: var(--font-sans);
    font-size: 0.9rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 1px;
    border-radius: 2px;
    cursor: pointer;
    transition: var(--transition);
    border: none;
    text-align: center;
}

.btn-sm {
    padding: 0.5rem 1rem;
    font-size: 0.8rem;
}

.btn-lg {
    padding: 1rem 2rem;
}

.btn-full {
    width: 100%;
    display: block;
}

.btn-primary {
    background-color: var(--red-velvet);
    color: #fff;
    border: 1px solid var(--red-velvet);
}

.btn-primary:hover {
    background-color: var(--red-intense);
    border-color: var(--red-intense);
    box-shadow: 0 0 15px rgba(212, 0, 0, 0.4);
}

.btn-outline {
    background: transparent;
    color: var(--text-main);
    border: 1px solid var(--border-color);
}

.btn-outline:hover {
    border-color: var(--text-main);
    background: rgba(255, 255, 255, 0.05);
}

/* Age Gate Modal */
.age-gate {
    position: fixed;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0, 0, 0, 0.95);
    z-index: 999999;
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
    pointer-events: none !important;
    transition: opacity 0.4s ease;
    padding: 1.2rem;
    box-sizing: border-box;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.age-gate:not(.active) {
    display: none !important;
    pointer-events: none !important;
    visibility: hidden !important;
}

.age-gate.active {
    display: flex !important;
    opacity: 1;
    pointer-events: auto !important;
    visibility: visible !important;
}

.age-gate-content {
    position: relative;
    z-index: 1000000;
    pointer-events: auto !important;
    padding: 2.2rem 1.8rem;
    text-align: center;
    max-width: 480px;
    width: 100%;
    max-height: 90vh;
    overflow-y: auto;
    border-radius: 8px;
    box-sizing: border-box;
}

#btn-adult {
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
    user-select: none;
    min-height: 48px;
    padding: 0.85rem 1.8rem;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    position: relative;
    z-index: 1000002;
    pointer-events: auto !important;
}

.age-gate-content {
    padding: 4rem;
    text-align: center;
    max-width: 500px;
    border-radius: 4px;
}

.age-gate-content h1 {
    font-size: 2.5rem;
    margin-bottom: 1rem;
    color: var(--red-velvet);
}

.age-gate-content p {
    color: var(--text-muted);
    margin-bottom: 2.5rem;
}

.modal-logo {
    max-width: 250px;
    margin: 0 auto 1.5rem;
    display: block;
}

.age-gate-buttons {
    display: flex;
    gap: 1rem;
    justify-content: center;
}

/* Header */
.header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    padding: 1.5rem 0;
    transition: var(--transition);
    border-bottom: 1px solid transparent;
}

.header.scrolled {
    background: rgba(8, 8, 8, 0.9);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--glass-border);
    padding: 1rem 0;
}

.header-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.logo-text {
    font-size: 1.5rem;
    letter-spacing: 2px;
}

.header-logo {
    height: 60px;
    width: auto;
}

.logo-accent {
    color: var(--red-velvet);
    font-size: 1.2rem;
}

.nav-menu ul {
    display: flex;
    gap: 2.5rem;
}

.nav-menu a {
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--text-muted);
}

.nav-menu a:hover {
    color: var(--text-main);
}

.header-actions {
    display: flex;
    align-items: center;
    gap: 2rem;
}

.lang-selector {
    font-size: 0.8rem;
    color: var(--text-muted);
    cursor: pointer;
    transition: var(--transition);
}

.lang-selector:hover {
    color: var(--text-main);
}

.menu-toggle {
    display: none;
    flex-direction: column;
    justify-content: space-between;
    width: 24px;
    height: 18px;
    background: transparent;
    border: none;
    cursor: pointer;
}

.menu-toggle span {
    display: block;
    width: 100%;
    height: 1px;
    background-color: var(--text-main);
    transition: var(--transition);
}

/* Hero Section */
.hero {
    height: 100vh;
    display: flex;
    align-items: center;
    position: relative;
    padding-top: 80px;
}

.hero-bg-video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
    opacity: 1 !important;
    filter: none !important;
    pointer-events: none !important;
}

.hero-bg {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: none !important;
    background-image: none !important;
    z-index: 1;
    pointer-events: none;
}

.hero-bg::after {
    display: none !important;
}

.hero-content {
    max-width: 800px;
}

.age-indicator {
    display: inline-block;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--text-muted);
    margin-bottom: 2rem;
    padding-left: 1rem;
    border-left: 2px solid var(--red-velvet);
}

.hero-headline {
    font-size: 4.5rem;
    line-height: 1.1;
    margin-bottom: 1.5rem;
}

.hero-subheadline {
    font-size: 1.25rem;
    color: var(--text-muted);
    margin-bottom: 3rem;
    max-width: 600px;
}

.hero-buttons {
    display: flex;
    gap: 1.5rem;
}

/* Grids & General Sections */
.section {
    padding: 8rem 0;
}

.section-title {
    font-size: 2.5rem;
    margin-bottom: 4rem;
}

.grid-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2.5rem;
}

/* Experiences */
.experience-card {
    background: var(--bg-charcoal);
    padding: 3rem 2rem;
    border: 1px solid var(--border-color);
    transition: var(--transition);
}

.experience-card:hover {
    transform: translateY(-10px);
    border-color: var(--red-velvet);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}

.card-number {
    font-family: var(--font-serif);
    font-size: 2rem;
    color: var(--red-velvet);
    margin-bottom: 1rem;
    opacity: 0.7;
}

.experience-card h3 {
    font-size: 1.5rem;
    margin-bottom: 1rem;
}

.experience-card p {
    color: var(--text-muted);
    font-size: 0.95rem;
}

/* Search */
.search-section {
    padding: 4rem 0;
}

.search-title {
    font-size: 2rem;
    margin-bottom: 3rem;
}

.search-bar {
    display: flex;
    align-items: center;
    padding: 1.5rem 2rem;
    border-radius: 4px;
    gap: 2rem;
}

.search-field {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.search-field label {
    font-size: 0.75rem;
    text-transform: uppercase;
    color: var(--text-muted);
    margin-bottom: 0.5rem;
    letter-spacing: 1px;
}

.search-field select {
    background: transparent;
    border: none;
    color: var(--text-main);
    font-family: var(--font-sans);
    font-size: 1rem;
    outline: none;
    cursor: pointer;
    appearance: none;
}

.search-field select option {
    background: var(--bg-charcoal);
    color: var(--text-main);
}

.search-divider {
    width: 1px;
    height: 40px;
    background: var(--border-color);
}

.search-btn {
    padding: 1rem 3rem;
}

/* Featured Profiles */
.profile-card {
    background: var(--bg-charcoal);
    border: 1px solid var(--border-color);
    overflow: hidden;
    transition: var(--transition);
}

.profile-card:hover {
    transform: translateY(-5px);
    border-color: rgba(255, 255, 255, 0.15);
    box-shadow: 0 15px 40px rgba(0,0,0,0.6);
}

.profile-img {
    position: relative;
    height: 400px;
    overflow: hidden;
}

.profile-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.8s ease;
}

.profile-card:hover .profile-img img {
    transform: scale(1.05);
}

.profile-category {
    position: absolute;
    top: 1rem;
    right: 1rem;
    padding: 0.25rem 0.75rem;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(4px);
    border: 1px solid var(--border-color);
}

.category-premium { border-left: 2px solid var(--text-main); }
.category-elite { border-left: 2px solid var(--red-velvet); }
.category-vip { border-left: 2px solid #D4AF37; /* gold */ }

.profile-info {
    padding: 1.5rem;
}

.profile-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.5rem;
}

.profile-header h3 {
    font-size: 1.3rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.verified-badge {
    font-size: 0.8rem;
    color: #4CAF50;
    font-family: var(--font-sans);
}

.profile-location {
    color: var(--text-muted);
    font-size: 0.9rem;
    margin-bottom: 1.5rem;
}

/* RED VELVET ELITE */
.elite-section {
    background: #050505;
    position: relative;
}

.elite-header {
    margin-bottom: 4rem;
}

.elite-title {
    font-size: 3rem;
    color: var(--red-velvet);
    margin-bottom: 1rem;
}

.elite-subtitle {
    color: var(--text-muted);
    max-width: 600px;
    margin: 0 auto;
}

.elite-card {
    position: relative;
    height: 500px;
    overflow: hidden;
    cursor: pointer;
}

.elite-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.8s ease, filter 0.4s ease;
    filter: grayscale(40%) brightness(0.7);
}

.elite-card:hover img {
    transform: scale(1.05);
    filter: grayscale(0%) brightness(1);
}

.elite-card-overlay {
    position: absolute;
    bottom: 0; left: 0; width: 100%;
    padding: 2rem;
    background: linear-gradient(to top, rgba(0,0,0,0.9), transparent);
    transform: translateY(20px);
    opacity: 0;
    transition: var(--transition);
}

.elite-card:hover .elite-card-overlay {
    transform: translateY(0);
    opacity: 1;
}

.elite-card-overlay h3 {
    font-size: 1.8rem;
    margin-bottom: 0.2rem;
}

.elite-card-overlay p {
    color: var(--text-muted);
    font-size: 0.9rem;
    letter-spacing: 1px;
}

.elite-action {
    margin-top: 4rem;
}

/* Timeline */
.timeline {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 900px;
    margin: 0 auto;
}

.timeline-step {
    text-align: center;
}

.timeline-step .step-number {
    font-family: var(--font-serif);
    font-size: 2.5rem;
    color: var(--red-velvet);
    margin-bottom: 0.5rem;
}

.timeline-step h3 {
    font-size: 1.1rem;
    text-transform: uppercase;
    letter-spacing: 2px;
}

.timeline-line {
    height: 1px;
    flex: 1;
    background: var(--border-color);
    margin: 0 2rem;
    position: relative;
    top: -15px;
}

/* For Companions */
.companions-section {
    position: relative;
    background-image: linear-gradient(rgba(8, 8, 8, 0.8), rgba(8, 8, 8, 0.8)), url('https://images.unsplash.com/photo-1512413914441-26cce1ce20f4?auto=format&fit=crop&q=80&w=2000');
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
}

.companions-content {
    display: flex;
    gap: 4rem;
    padding: 4rem;
}

.companions-text {
    flex: 1;
}

.companions-text h2 {
    font-size: 2.5rem;
    margin-bottom: 1.5rem;
    line-height: 1.2;
}

.companions-text p {
    color: var(--text-muted);
    margin-bottom: 2.5rem;
    font-size: 1.1rem;
}

.companions-stats {
    flex: 1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
}

.stat-item {
    border-left: 2px solid var(--red-velvet);
    padding-left: 1.5rem;
}

.stat-number {
    display: block;
    font-family: var(--font-serif);
    font-size: 2.5rem;
    margin-bottom: 0.5rem;
}

.stat-label {
    text-transform: uppercase;
    font-size: 0.8rem;
    letter-spacing: 1px;
    color: var(--text-muted);
}

/* Testimonials */
.testimonial-card {
    padding: 3rem;
    background: transparent;
    border: 1px solid var(--border-color);
    position: relative;
}

.testimonial-card::before {
    content: '"';
    position: absolute;
    top: 1rem;
    left: 1rem;
    font-family: var(--font-serif);
    font-size: 5rem;
    color: var(--red-velvet);
    opacity: 0.2;
    line-height: 1;
}

.testimonial-text {
    font-size: 1.1rem;
    font-style: italic;
    margin-bottom: 2rem;
    position: relative;
    z-index: 1;
}

.testimonial-author {
    font-size: 0.9rem;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Footer */
.footer {
    position: relative;
    overflow: hidden;
    border-top: 1px solid rgba(212, 175, 55, 0.4);
    min-height: 480px;
    padding: 6rem 0 4rem;
    background: #000;
    display: flex;
    align-items: center;
}

.footer-bg-video {
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    transform: translate(-50%, -50%);
    object-fit: cover;
    z-index: 0;
    opacity: 1 !important;
    filter: none !important;
    pointer-events: none;
}

.footer-content-wrap {
    position: relative;
    z-index: 2;
    width: 100%;
}

.footer-grid {
    display: grid;
    grid-template-columns: 1.6fr 3.2fr 0.8fr;
    gap: 3rem;
    align-items: flex-start;
}

.footer-brand .footer-logo {
    height: 85px;
    width: auto;
    margin-bottom: 1rem;
    border-radius: 6px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.7);
}

.footer-notice {
    color: #FAF5E9;
    font-size: 0.88rem;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-weight: 500;
    text-shadow: 0 2px 6px rgba(0, 0, 0, 0.95), 0 0 12px rgba(0, 0, 0, 0.9);
}

.footer-links {
    display: flex;
    gap: 2.2rem;
    flex-wrap: wrap;
}

.footer-links li {
    margin-bottom: 1.1rem;
}

.footer-links a {
    color: #FFFFFF;
    font-size: 0.96rem;
    font-weight: 500;
    text-shadow: 0 2px 6px rgba(0, 0, 0, 0.95), 0 0 10px rgba(0, 0, 0, 0.9);
    transition: color 0.25s ease, text-shadow 0.25s ease;
}

.footer-links a:hover {
    color: #FFD700;
    text-shadow: 0 0 10px rgba(255, 215, 0, 0.8), 0 2px 6px rgba(0, 0, 0, 0.95);
}

.footer-social {
    display: flex;
    gap: 1.2rem;
    justify-content: flex-end;
}

.social-icon {
    width: 44px;
    height: 44px;
    border: 1px solid rgba(212, 175, 55, 0.6);
    background: rgba(0, 0, 0, 0.4);
    backdrop-filter: blur(6px);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-size: 0.85rem;
    color: #FFF;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.9);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.6);
    transition: all 0.3s ease;
}

.social-icon:hover {
    border-color: #FFD700;
    background: #FFD700;
    color: #000;
    box-shadow: 0 0 15px rgba(255, 215, 0, 0.7);
}

/* Barra Inferior del Footer & Legal */
.footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-top: 1px solid rgba(212, 175, 55, 0.25);
    margin-top: 2.5rem;
    padding-top: 1.5rem;
    font-size: 0.88rem;
    color: rgba(255, 255, 255, 0.85);
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.8);
}

.footer-bottom-copy {
    display: flex;
    align-items: center;
    gap: 1.2rem;
    flex-wrap: wrap;
}

.footer-badge-age {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    background: rgba(128, 0, 32, 0.45);
    border: 1px solid rgba(212, 175, 55, 0.45);
    color: #FFD700;
    padding: 0.25rem 0.65rem;
    border-radius: 4px;
    font-size: 0.75rem;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    font-weight: 600;
}

.footer-bottom-legal {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    flex-wrap: wrap;
}

.footer-legal-btn {
    background: none;
    border: none;
    color: #FFFFFF;
    font-size: 0.88rem;
    font-family: inherit;
    cursor: pointer;
    padding: 0;
    transition: color 0.2s ease, text-shadow 0.2s ease;
    text-decoration: underline;
    text-underline-offset: 4px;
    text-decoration-color: rgba(212, 175, 55, 0.5);
}

.footer-legal-btn:hover {
    color: #FFD700;
    text-decoration-color: #FFD700;
    text-shadow: 0 0 10px rgba(255, 215, 0, 0.6);
}

.footer-sep {
    color: rgba(212, 175, 55, 0.5);
}

/* Legal Modals Styling (Términos & Privacidad) */
.legal-modal-container {
    max-width: 820px !important;
    max-height: 88vh !important;
    display: flex;
    flex-direction: column;
    padding: 2.5rem !important;
    border: 1px solid rgba(212, 175, 55, 0.4) !important;
    box-shadow: 0 25px 60px rgba(0, 0, 0, 0.95), 0 0 40px rgba(128, 0, 32, 0.35) !important;
}

.legal-modal-badges {
    display: flex;
    gap: 0.6rem;
    flex-wrap: wrap;
    margin-bottom: 0.8rem;
}

.legal-modal-badges .badge-gold {
    background: rgba(212, 175, 55, 0.12);
    border: 1px solid rgba(212, 175, 55, 0.45);
    color: #FFD700;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.8px;
    padding: 0.25rem 0.65rem;
    border-radius: 4px;
}

.legal-modal-body {
    overflow-y: auto;
    padding-right: 0.75rem;
    margin: 1.5rem 0;
    max-height: 52vh;
    scrollbar-width: thin;
    scrollbar-color: rgba(212, 175, 55, 0.5) rgba(0, 0, 0, 0.3);
}

.legal-modal-body::-webkit-scrollbar {
    width: 6px;
}

.legal-modal-body::-webkit-scrollbar-track {
    background: rgba(0, 0, 0, 0.2);
    border-radius: 4px;
}

.legal-modal-body::-webkit-scrollbar-thumb {
    background: rgba(212, 175, 55, 0.5);
    border-radius: 4px;
}

.legal-section {
    margin-bottom: 1.8rem;
    padding-bottom: 1.2rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}

.legal-section:last-child {
    border-bottom: none;
    margin-bottom: 0;
}

.legal-section h4 {
    font-family: var(--font-heading, 'Playfair Display', serif);
    font-size: 1.15rem;
    color: #FFD700;
    margin-bottom: 0.6rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.legal-section p {
    font-size: 0.92rem;
    line-height: 1.7;
    color: #D8D8D8;
    margin: 0;
}

.legal-alert-box {
    background: rgba(128, 0, 32, 0.3);
    border-left: 3px solid #D4AF37;
    padding: 1rem 1.2rem;
    margin: 0.75rem 0;
    border-radius: 0 6px 6px 0;
    font-size: 0.9rem;
    line-height: 1.6;
    color: #F0F0F0;
}

.legal-alert-box strong {
    color: #FFD700;
}

.legal-modal-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(212, 175, 55, 0.2);
    flex-wrap: wrap;
}

/* ==========================================================================
   FEEDBACK DE PAGO: MERCADO PAGO 8 ESTADOS (ROYAL BAROQUE SUITE)
   ========================================================================== */
.pf-modal-container {
    max-width: 720px !important;
    width: 94% !important;
    max-height: 92vh !important;
    overflow-y: auto !important;
    padding: 2.2rem 2rem !important;
    border-radius: 20px !important;
    border: 1.5px solid rgba(212, 175, 55, 0.5) !important;
    background: radial-gradient(circle at 50% 0%, rgba(45, 6, 12, 0.98), rgba(12, 10, 11, 0.98) 75%) !important;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.95), 0 0 50px rgba(155, 17, 30, 0.45) !important;
    position: relative;
    scrollbar-width: thin;
    scrollbar-color: rgba(212, 175, 55, 0.5) rgba(0, 0, 0, 0.4);
}

.pf-modal-container::-webkit-scrollbar {
    width: 6px;
}
.pf-modal-container::-webkit-scrollbar-thumb {
    background: rgba(212, 175, 55, 0.5);
    border-radius: 4px;
}

/* Simulator / Switcher Toolbar */
.pf-simulator-wrap {
    margin-bottom: 1.5rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid rgba(212, 175, 55, 0.2);
}

.pf-simulator-header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.6rem;
}

.pf-sim-icon {
    font-size: 1rem;
    filter: drop-shadow(0 0 6px #FFD700);
}

.pf-sim-title {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: #D4AF37;
}

.pf-sim-tabs {
    display: flex;
    gap: 0.4rem;
    overflow-x: auto;
    padding: 0.2rem 0.1rem 0.5rem;
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.pf-sim-tabs::-webkit-scrollbar {
    display: none;
}

.pf-tab-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(212, 175, 55, 0.25);
    color: rgba(255, 255, 255, 0.75);
    padding: 0.35rem 0.65rem;
    border-radius: 30px;
    font-size: 0.75rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.25s ease;
}

.pf-tab-btn:hover {
    background: rgba(212, 175, 55, 0.15);
    color: #FFFFFF;
    border-color: rgba(212, 175, 55, 0.6);
    transform: translateY(-1px);
}

.pf-tab-btn.active {
    background: linear-gradient(135deg, rgba(155, 17, 30, 0.9), rgba(90, 8, 16, 0.9));
    border: 1.5px solid #FFD700;
    color: #FFFFFF;
    box-shadow: 0 0 14px rgba(212, 175, 55, 0.4), inset 0 0 8px rgba(255, 215, 0, 0.2);
}

.pf-tab-badge {
    background: rgba(245, 158, 11, 0.25);
    color: #FCD34D;
    font-size: 0.62rem;
    padding: 0.1rem 0.35rem;
    border-radius: 10px;
    border: 0.5px solid rgba(245, 158, 11, 0.5);
    font-weight: 700;
}

/* Main Feedback Card */
.pf-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    position: relative;
    animation: pfFadeIn 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes pfFadeIn {
    from {
        opacity: 0;
        transform: translateY(8px) scale(0.98);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* Emblem Crest */
.pf-crest-wrapper {
    position: relative;
    width: 86px;
    height: 86px;
    margin: 0 auto 1.2rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.pf-crest-halo {
    position: absolute;
    inset: -6px;
    border-radius: 50%;
    filter: blur(12px);
    opacity: 0.7;
    animation: pfPulse 2.8s infinite ease-in-out;
}

@keyframes pfPulse {
    0%, 100% { transform: scale(1); opacity: 0.6; }
    50% { transform: scale(1.12); opacity: 0.9; }
}

.pf-crest-emblem {
    position: relative;
    z-index: 2;
    width: 82px;
    height: 82px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.3rem;
    border: 2px solid #FFD700;
    box-shadow: inset 0 0 16px rgba(0, 0, 0, 0.8), 0 8px 24px rgba(0, 0, 0, 0.6);
}

/* State Themes for Emblem & Glow */
.pf-state-apro .pf-crest-halo { background: radial-gradient(circle, #10B981, transparent 70%); }
.pf-state-apro .pf-crest-emblem {
    background: radial-gradient(circle at 35% 35%, #059669, #047857 60%, #064E3B 100%);
    border-color: #34D399;
    box-shadow: 0 0 25px rgba(16, 185, 129, 0.5), inset 0 0 12px rgba(52, 211, 153, 0.4);
}
.pf-state-apro .pf-badge {
    background: rgba(16, 185, 129, 0.15);
    border: 1px solid rgba(16, 185, 129, 0.6);
    color: #6EE7B7;
}

.pf-state-othe .pf-crest-halo { background: radial-gradient(circle, #EF4444, transparent 70%); }
.pf-state-othe .pf-crest-emblem {
    background: radial-gradient(circle at 35% 35%, #DC2626, #991B1B 60%, #450A0A 100%);
    border-color: #F87171;
    box-shadow: 0 0 25px rgba(239, 68, 68, 0.5), inset 0 0 12px rgba(248, 113, 113, 0.4);
}
.pf-state-othe .pf-badge {
    background: rgba(239, 68, 68, 0.15);
    border: 1px solid rgba(239, 68, 68, 0.6);
    color: #FCA5A5;
}

.pf-state-cont .pf-crest-halo { background: radial-gradient(circle, #8B5CF6, transparent 70%); }
.pf-state-cont .pf-crest-emblem {
    background: radial-gradient(circle at 35% 35%, #7C3AED, #5B21B6 60%, #2E1065 100%);
    border-color: #A78BFA;
    box-shadow: 0 0 25px rgba(139, 92, 246, 0.5), inset 0 0 12px rgba(167, 139, 250, 0.4);
}
.pf-state-cont .pf-badge {
    background: rgba(139, 92, 246, 0.15);
    border: 1px solid rgba(139, 92, 246, 0.6);
    color: #C4B5FD;
}

.pf-state-call .pf-crest-halo { background: radial-gradient(circle, #F59E0B, transparent 70%); }
.pf-state-call .pf-crest-emblem {
    background: radial-gradient(circle at 35% 35%, #D97706, #B45309 60%, #451A03 100%);
    border-color: #FBBF24;
    box-shadow: 0 0 25px rgba(245, 158, 11, 0.5), inset 0 0 12px rgba(251, 191, 36, 0.4);
}
.pf-state-call .pf-badge {
    background: rgba(245, 158, 11, 0.15);
    border: 1px solid rgba(245, 158, 11, 0.6);
    color: #FDE68A;
}

.pf-state-fund .pf-crest-halo { background: radial-gradient(circle, #F43F5E, transparent 70%); }
.pf-state-fund .pf-crest-emblem {
    background: radial-gradient(circle at 35% 35%, #E11D48, #9F1239 60%, #4C0519 100%);
    border-color: #FB7185;
    box-shadow: 0 0 25px rgba(244, 63, 94, 0.5), inset 0 0 12px rgba(251, 113, 133, 0.4);
}
.pf-state-fund .pf-badge {
    background: rgba(244, 63, 94, 0.15);
    border: 1px solid rgba(244, 63, 94, 0.6);
    color: #FECDD3;
}

.pf-state-secu .pf-crest-halo { background: radial-gradient(circle, #EC4899, transparent 70%); }
.pf-state-secu .pf-crest-emblem {
    background: radial-gradient(circle at 35% 35%, #DB2777, #9D174D 60%, #500724 100%);
    border-color: #F472B6;
    box-shadow: 0 0 25px rgba(236, 72, 153, 0.5), inset 0 0 12px rgba(244, 114, 182, 0.4);
}
.pf-state-secu .pf-badge {
    background: rgba(236, 72, 153, 0.15);
    border: 1px solid rgba(236, 72, 153, 0.6);
    color: #FBCFE8;
}

.pf-state-expi .pf-crest-halo { background: radial-gradient(circle, #EA580C, transparent 70%); }
.pf-state-expi .pf-crest-emblem {
    background: radial-gradient(circle at 35% 35%, #C2410C, #9A3412 60%, #431407 100%);
    border-color: #FB923C;
    box-shadow: 0 0 25px rgba(234, 88, 12, 0.5), inset 0 0 12px rgba(251, 146, 60, 0.4);
}
.pf-state-expi .pf-badge {
    background: rgba(234, 88, 12, 0.15);
    border: 1px solid rgba(234, 88, 12, 0.6);
    color: #FED7AA;
}

.pf-state-form .pf-crest-halo { background: radial-gradient(circle, #A855F7, transparent 70%); }
.pf-state-form .pf-crest-emblem {
    background: radial-gradient(circle at 35% 35%, #9333EA, #6B21A8 60%, #3B0764 100%);
    border-color: #C084FC;
    box-shadow: 0 0 25px rgba(168, 85, 247, 0.5), inset 0 0 12px rgba(192, 132, 252, 0.4);
}
.pf-state-form .pf-badge {
    background: rgba(168, 85, 247, 0.15);
    border: 1px solid rgba(168, 85, 247, 0.6);
    color: #E9D5FF;
}

/* Header Text */
.pf-header {
    margin-bottom: 1.5rem;
}

.pf-badge-wrap {
    margin-bottom: 0.6rem;
}

.pf-badge {
    display: inline-block;
    padding: 0.28rem 0.85rem;
    border-radius: 20px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.8px;
    text-transform: uppercase;
}

.pf-title {
    font-family: var(--font-heading, 'Playfair Display', serif);
    font-size: 1.6rem;
    color: #FFFFFF;
    margin-bottom: 0.5rem;
    line-height: 1.25;
}

.pf-desc {
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.95rem;
    line-height: 1.55;
    max-width: 600px;
    margin: 0 auto;
}

/* Details Grid */
.pf-details-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.85rem;
    width: 100%;
    margin-bottom: 1.6rem;
    text-align: left;
}

.pf-detail-card {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(212, 175, 55, 0.25);
    border-radius: 12px;
    padding: 1rem 0.9rem;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    position: relative;
    overflow: hidden;
    transition: all 0.25s ease;
}

.pf-detail-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, rgba(212, 175, 55, 0.6), transparent);
}

.pf-detail-label {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: #D4AF37;
    margin-bottom: 0.4rem;
}

.pf-detail-val {
    font-size: 0.82rem;
    color: rgba(255, 255, 255, 0.92);
    line-height: 1.45;
}

/* Visual Helpers / Card Guides */
.pf-guide-card {
    grid-column: 1 / -1;
    background: rgba(155, 17, 30, 0.18);
    border: 1px dashed rgba(212, 175, 55, 0.5);
    border-radius: 12px;
    padding: 0.85rem 1.1rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    text-align: left;
    margin-top: -0.2rem;
}

.pf-guide-icon {
    font-size: 1.8rem;
    flex-shrink: 0;
}

.pf-guide-text {
    font-size: 0.82rem;
    color: #FFE6E8;
    line-height: 1.45;
}

.pf-guide-text strong {
    color: #FFD700;
}

/* Actions Section */
.pf-actions {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    width: 100%;
    margin-bottom: 1.4rem;
}

.pf-btn-primary {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    width: 100%;
    padding: 0.95rem 1.5rem;
    background: linear-gradient(135deg, #D4AF37 0%, #AA8010 100%);
    color: #1A1202;
    border: 1px solid #FFE082;
    border-radius: 12px;
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-decoration: none;
    cursor: pointer;
    box-shadow: 0 6px 20px rgba(212, 175, 55, 0.35);
    transition: all 0.25s ease;
}

.pf-btn-primary:hover {
    background: linear-gradient(135deg, #FFE082 0%, #D4AF37 100%);
    box-shadow: 0 8px 28px rgba(212, 175, 55, 0.5);
    transform: translateY(-2px);
    color: #0A0701;
}

.pf-btn-secondary {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.8rem 1.2rem;
    background: rgba(255, 255, 255, 0.04);
    color: #FFFFFF;
    border: 1px solid rgba(212, 175, 55, 0.4);
    border-radius: 12px;
    font-size: 0.88rem;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    transition: all 0.2s ease;
}

.pf-btn-secondary:hover {
    background: rgba(212, 175, 55, 0.12);
    border-color: #FFD700;
    color: #FFD700;
}

/* Discretion Footer */
.pf-discretion-footer {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    background: rgba(0, 0, 0, 0.45);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 10px;
    padding: 0.85rem 1rem;
    text-align: left;
    width: 100%;
}

.pf-discretion-icon {
    font-size: 1.15rem;
    flex-shrink: 0;
    margin-top: 0.1rem;
}

.pf-discretion-text {
    font-size: 0.78rem;
    color: rgba(255, 255, 255, 0.75);
    line-height: 1.5;
}

.pf-discretion-text strong {
    color: #D4AF37;
}

/* Mobile Responsiveness */
@media (max-width: 640px) {
    .pf-modal-container {
        padding: 1.8rem 1.1rem !important;
        width: 95% !important;
        max-height: 94vh !important;
    }
    .pf-title {
        font-size: 1.35rem;
    }
    .pf-desc {
        font-size: 0.88rem;
    }
    .pf-details-grid {
        grid-template-columns: 1fr;
        gap: 0.65rem;
    }
    .pf-crest-wrapper {
        width: 72px;
        height: 72px;
        margin-bottom: 0.9rem;
    }
    .pf-crest-emblem {
        width: 68px;
        height: 68px;
        font-size: 1.9rem;
    }
    .pf-guide-card {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.4rem;
    }
}



/* Back to top con Joya de Corazón Red Velvet */
.back-to-top {
    position: fixed;
    bottom: 7.2rem;
    right: 2rem;
    width: 48px;
    height: 48px;
    background: radial-gradient(circle at 35% 35%, #9b111e, #800020 60%, #4a0008 100%);
    border: 1.5px solid rgba(212, 175, 55, 0.7);
    color: #FFFFFF;
    border-radius: 50%;
    cursor: pointer;
    opacity: 0;
    pointer-events: none;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    z-index: 99;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.8), 0 0 12px rgba(128, 0, 32, 0.4);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.back-to-top.visible {
    opacity: 1;
    pointer-events: all;
    transform: translateY(0);
}

.back-to-top:hover {
    background: radial-gradient(circle at 35% 35%, #b31b2c, #9b111e 60%, #60020d 100%);
    border-color: #FFD700;
    transform: translateY(-4px) scale(1.08);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.9), 0 0 20px rgba(212, 175, 55, 0.8);
}

.back-to-top-heart {
    font-size: 0.92rem;
    color: #FFD700;
    text-shadow: 0 0 6px rgba(255, 215, 0, 0.9);
    transition: transform 0.2s ease;
}

.back-to-top:hover .back-to-top-heart {
    transform: scale(1.25);
}

.back-to-top-arrow {
    font-size: 0.72rem;
    margin-top: -1px;
    color: #FFFFFF;
    font-weight: 700;
}

/* Animations */
.reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.8s ease;
}

.reveal.active {
    opacity: 1;
    transform: translateY(0);
}

.delay-1 { transition-delay: 0.2s; }
.delay-2 { transition-delay: 0.4s; }

/* Responsive */
@media (max-width: 1200px) {
    .hero-headline { font-size: 3.5rem; }
    .search-bar { flex-wrap: wrap; }
    .search-divider { display: none; }
    .search-field { min-width: 200px; }
}

@media (max-width: 992px) {
    .grid-3 { grid-template-columns: repeat(2, 1fr); }
    .elite-grid { grid-template-columns: repeat(2, 1fr); }
    .timeline { flex-direction: column; gap: 2rem; align-items: flex-start; }
    .timeline-line { width: 1px; height: 40px; margin: 0; left: 20px; top: 0; }
    .companions-content { flex-direction: column; }
    .footer-grid { grid-template-columns: 1fr; gap: 2rem; }
    .footer-social { justify-content: flex-start; }
}

@media (max-width: 768px) {
    .menu-toggle { display: flex; }
    .nav-menu, .header-actions .btn, .lang-selector { display: none; }
    
    .nav-menu.active {
        display: block;
        position: absolute;
        top: 100%;
        left: 0;
        width: 100%;
        background: var(--bg-dark);
        padding: 2rem;
        border-bottom: 1px solid var(--border-color);
    }
    
    .nav-menu.active ul {
        flex-direction: column;
        align-items: center;
        gap: 1.5rem;
    }
    
    .hero-headline { font-size: 2.5rem; }
    .grid-3, .elite-grid { grid-template-columns: 1fr; }
    .age-gate-content { padding: 2rem; margin: 1rem; }
}

@media (max-width: 480px) {
    .hero-buttons { flex-direction: column; }
    .search-bar { padding: 1.5rem; }
    .search-field { min-width: 100%; margin-bottom: 1rem; }
    .companions-content { padding: 2rem; }
    .companions-stats { grid-template-columns: 1fr; }
}


/* Mobile Optimization & Candidate Details */
.profile-details {
    margin-bottom: 1.5rem;
    font-size: 0.85rem;
    color: var(--text-muted);
}
.profile-details strong {
    color: var(--text-main);
}
.profile-details p {
    margin-bottom: 0.3rem;
}

@media (max-width: 900px) {
    .grid-3 {
        grid-template-columns: repeat(2, 1fr);
    }
    .footer-grid {
        grid-template-columns: 1fr 1fr;
    }
    .hero-headline {
        font-size: 3.5rem;
    }
    .search-bar {
        flex-direction: column;
        gap: 1rem;
    }
    .search-divider {
        width: 100%;
        height: 1px;
    }
}

@media (max-width: 600px) {
    .grid-3 {
        grid-template-columns: 1fr;
    }
    .footer-grid {
        grid-template-columns: 1fr;
    }
    .nav-menu {
        display: none;
    }
    .menu-toggle {
        display: flex;
    }
    .hero-headline {
        font-size: 2.5rem;
    }
    .age-gate-content {
        padding: 2rem;
    }
    .age-gate-content h1 {
        font-size: 1.8rem;
    }
    .hero-buttons {
        flex-direction: column;
    }
    .timeline {
        flex-direction: column;
        gap: 2rem;
    }
    .timeline-line {
        width: 2px;
        height: 40px;
        margin: 0 auto;
    }
    .companions-content {
        flex-direction: column;
        padding: 2rem;
    }
}


/* --- Advanced Mobile Optimizations --- */
@media (max-width: 768px) {
    /* Adjust Section Paddings for mobile */
    .section {
        padding: 4rem 0;
    }
    .section-title {
        font-size: 2rem;
        margin-bottom: 2rem;
    }
    .hero-headline {
        font-size: 2.5rem;
        line-height: 1.2;
    }
    .hero-subheadline {
        font-size: 1rem;
        margin-bottom: 2rem;
    }
    
    /* Mobile Menu styles */
    .nav-menu {
        position: fixed;
        top: 0;
        left: -100%;
        width: 80%;
        max-width: 300px;
        height: 100vh;
        background: rgba(8, 8, 8, 0.98);
        backdrop-filter: blur(15px);
        flex-direction: column;
        justify-content: center;
        align-items: center;
        transition: left 0.4s ease;
        z-index: 999;
        border-right: 1px solid var(--border-color);
        display: flex;
    }
    .nav-menu.active {
        left: 0;
    }
    .nav-menu ul {
        flex-direction: column;
        gap: 2rem;
        text-align: center;
        width: 100%;
        padding: 0;
    }
    .nav-menu ul li {
        width: 100%;
    }
    .nav-menu a {
        font-size: 1.2rem;
        display: block;
        padding: 10px;
    }

    /* Elite section */
    .elite-title {
        font-size: 2rem;
    }
    
    /* Age gate modal text adjustment */
    .age-gate-content {
        width: 90%;
        padding: 1.5rem;
    }
    .modal-logo {
        max-width: 180px;
    }
}

/* --- Elite Section Overhaul --- */
.elite-section {
    position: relative;
    background: #020202;
    overflow: hidden;
    padding: 6rem 0;
}

.elite-bg-glow {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 60%;
    height: 60%;
    background: radial-gradient(circle, rgba(212, 175, 55, 0.05) 0%, rgba(0,0,0,0) 70%);
    z-index: 0;
    pointer-events: none;
}

.elite-section .container {
    position: relative;
    z-index: 1;
}

.elite-badge {
    position: absolute;
    top: 1rem;
    left: 1rem;
    background: rgba(0, 0, 0, 0.8);
    color: #D4AF37;
    padding: 0.5rem 1rem;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    border: 1px solid #D4AF37;
    z-index: 2;
    border-radius: 2px;
    backdrop-filter: blur(5px);
}

.elite-card {
    height: 550px;
    border: 1px solid rgba(212, 175, 55, 0.2);
    border-radius: 4px;
}

.elite-card:hover {
    border: 1px solid rgba(212, 175, 55, 0.8);
    box-shadow: 0 15px 40px rgba(212, 175, 55, 0.15);
}

.elite-card-overlay {
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    background: linear-gradient(to top, rgba(0,0,0,0.95) 0%, rgba(0,0,0,0.8) 30%, transparent 100%);
    transform: translateY(0);
    opacity: 1; /* Keep it always visible but transition details */
    padding: 0;
}

.elite-info-top {
    padding: 2rem 2rem 1rem 2rem;
    transform: translateY(100px);
    transition: var(--transition);
}

.elite-card:hover .elite-info-top {
    transform: translateY(0);
}

.elite-info-top h3 {
    font-size: 2.2rem;
    color: #F5F5F0;
    margin-bottom: 0.5rem;
    font-family: var(--font-serif);
}

.elite-loc {
    color: #D4AF37;
    font-size: 0.9rem;
    letter-spacing: 1px;
}

.elite-details-premium {
    padding: 0 2rem 2rem 2rem;
    opacity: 0;
    transform: translateY(20px);
    transition: var(--transition);
    max-height: 0;
}

.elite-card:hover .elite-details-premium {
    opacity: 1;
    transform: translateY(0);
    max-height: 300px;
}

.elite-details-premium ul {
    margin-bottom: 1.5rem;
    border-top: 1px solid rgba(255,255,255,0.1);
    padding-top: 1rem;
}

.elite-details-premium li {
    display: flex;
    justify-content: space-between;
    font-size: 0.9rem;
    margin-bottom: 0.5rem;
    color: var(--text-main);
}

.elite-details-premium li span:first-child {
    color: var(--text-muted);
}

.elite-price {
    color: #D4AF37 !important;
    font-weight: 600;
}

.btn-gold {
    background: transparent;
    color: #D4AF37;
    border: 1px solid #D4AF37;
}

.btn-gold:hover {
    background: #D4AF37;
    color: #000;
    box-shadow: 0 0 15px rgba(212, 175, 55, 0.4);
}

/* ============================================
   INVITE MODAL - Acceso Exclusivo
   ============================================ */
.invite-modal {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.4s ease;
}
.invite-modal.active {
    opacity: 1;
    pointer-events: all;
}
.invite-modal-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.85);
    backdrop-filter: blur(6px);
}
.invite-modal-content {
    position: relative;
    z-index: 1;
    width: 90%;
    max-width: 440px;
    padding: 3rem 2.5rem;
    text-align: center;
    border-radius: 6px;
    border: 1px solid rgba(212,175,55,0.25);
    animation: slideUp 0.4s ease;
}
@keyframes slideUp {
    from { transform: translateY(30px); opacity: 0; }
    to   { transform: translateY(0);    opacity: 1; }
}
.invite-close {
    position: absolute;
    top: 1rem; right: 1rem;
    background: transparent;
    border: none;
    color: var(--text-muted);
    font-size: 1.2rem;
    cursor: pointer;
    transition: color 0.3s;
}
.invite-close:hover { color: var(--text-main); }
.invite-logo { height: 70px; width: auto; margin: 0 auto 1.5rem; }
.invite-title {
    font-family: var(--font-serif);
    font-size: 1.8rem;
    color: #D4AF37;
    margin-bottom: 0.75rem;
}
.invite-subtitle {
    color: var(--text-muted);
    font-size: 0.9rem;
    margin-bottom: 2rem;
    line-height: 1.7;
}
.invite-form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-bottom: 1rem;
}
.invite-input {
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(212,175,55,0.3);
    color: var(--text-main);
    font-size: 1.5rem;
    text-align: center;
    letter-spacing: 4px;
    padding: 1rem;
    border-radius: 4px;
    outline: none;
    font-family: var(--font-sans);
    transition: border-color 0.3s, box-shadow 0.3s;
    text-transform: uppercase;
}
.invite-input:focus {
    border-color: #D4AF37;
    box-shadow: 0 0 20px rgba(212,175,55,0.15);
}
.invite-input.error {
    border-color: var(--red-intense);
    animation: shake 0.4s ease;
}
.invite-input.success {
    border-color: #4CAF50;
    box-shadow: 0 0 20px rgba(76,175,80,0.2);
}
@keyframes shake {
    0%,100% { transform: translateX(0); }
    25% { transform: translateX(-8px); }
    75% { transform: translateX(8px); }
}
.invite-btn { padding: 1rem; font-size: 0.9rem; }
.invite-error  { color: var(--red-intense); font-size: 0.85rem; display: none; margin-bottom: 0.5rem; }
.invite-success { color: #4CAF50; font-size: 0.85rem; display: none; margin-bottom: 0.5rem; }
.invite-footer { font-size: 0.8rem; color: var(--text-muted); margin-top: 1.5rem; }
.invite-footer a { color: #D4AF37; }

/* Header user menu after login */
.user-menu-btn {
    background: transparent;
    border: 1px solid #D4AF37;
    color: #D4AF37;
    padding: 0.5rem 1rem;
    font-size: 0.8rem;
    cursor: pointer;
    border-radius: 2px;
    letter-spacing: 1px;
    text-transform: uppercase;
    transition: var(--transition);
}
.user-menu-btn:hover {
    background: #D4AF37;
    color: #000;
}


/* ==========================================================================
   SECCIÓN CREAR PERFIL MODELOS & MODALES LEGALES (RED VELVET LUXURY)
   ========================================================================== */

/* 1. Sección Únete Modelos */
.join-models-section {
    padding: 5rem 0;
    position: relative;
    background: radial-gradient(circle at 50% 50%, rgba(128, 0, 32, 0.15) 0%, rgba(5, 5, 5, 0.95) 70%);
}

.join-models-card {
    border: 1px solid rgba(212, 175, 55, 0.3);
    border-radius: 8px;
    padding: 3.5rem 2.5rem;
    text-align: center;
    background: rgba(15, 15, 15, 0.75);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.6), 0 0 30px rgba(212, 175, 55, 0.1);
    position: relative;
    overflow: hidden;
}

.join-models-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, transparent, #D4AF37, #FFD700, #D4AF37, transparent);
}

.join-models-title {
    font-size: 2.3rem;
    color: #fff;
    margin: 1.2rem 0 1rem;
    letter-spacing: 1px;
    font-family: var(--font-serif, 'Cinzel', serif);
}

.join-models-desc {
    max-width: 800px;
    margin: 0 auto 2.5rem;
    color: var(--text-muted, #ccc);
    font-size: 1.05rem;
    line-height: 1.7;
}

.join-perks-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 1.5rem;
    margin-bottom: 3rem;
    text-align: left;
}

.perk-item {
    background: rgba(25, 25, 25, 0.6);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 6px;
    padding: 1.5rem;
    transition: all 0.3s ease;
}

.perk-item:hover {
    border-color: rgba(212, 175, 55, 0.4);
    transform: translateY(-4px);
    background: rgba(30, 20, 25, 0.7);
}

.perk-icon {
    font-size: 2rem;
    margin-bottom: 0.8rem;
}

.perk-item h4 {
    color: #D4AF37;
    font-size: 1.15rem;
    margin-bottom: 0.5rem;
    font-weight: 600;
}

.perk-item p {
    color: #aaa;
    font-size: 0.9rem;
    line-height: 1.6;
    margin: 0;
}

.join-actions {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.8rem;
}

.pulse-gold {
    box-shadow: 0 0 20px rgba(212, 175, 55, 0.4);
    animation: pulseGold 2.5s infinite;
}

@keyframes pulseGold {
    0% {
        box-shadow: 0 0 0 0 rgba(212, 175, 55, 0.5);
    }
    70% {
        box-shadow: 0 0 0 15px rgba(212, 175, 55, 0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(212, 175, 55, 0);
    }
}

.join-note {
    font-size: 0.85rem;
    color: #888;
    font-style: italic;
}

.footer-highlight-link {
    color: #D4AF37 !important;
    font-weight: 600;
}

.footer-highlight-link:hover {
    text-shadow: 0 0 10px rgba(212, 175, 55, 0.6);
}

/* ==========================================================================
   2. SISTEMA UNIVERSAL DE MODALES (POP-UPS)
   ========================================================================== */

.modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.modal-backdrop.active {
    opacity: 1;
    visibility: visible;
}

.modal-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.88);
    backdrop-filter: blur(8px);
}

.modal-container {
    position: relative;
    z-index: 2;
    background: #0d0d0d;
    border: 1px solid rgba(212, 175, 55, 0.35);
    border-radius: 8px;
    width: 100%;
    max-width: 680px;
    max-height: 90vh;
    overflow-y: auto;
    padding: 2.5rem;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.8), 0 0 35px rgba(128, 0, 32, 0.25);
    transform: scale(0.92);
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.modal-backdrop.active .modal-container {
    transform: scale(1);
}

.modal-close-btn {
    position: absolute;
    top: 1.2rem;
    right: 1.2rem;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: #ccc;
    font-size: 1.8rem;
    line-height: 1;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
}

.modal-close-btn:hover {
    background: #D4AF37;
    color: #000;
    border-color: #D4AF37;
    transform: rotate(90deg);
}

.modal-header {
    margin-bottom: 2rem;
}

.modal-header.text-center {
    text-align: center;
}

.modal-title {
    font-size: 1.8rem;
    color: #fff;
    margin: 0.8rem 0 0.5rem;
    font-family: var(--font-serif, 'Cinzel', serif);
}

.modal-subtitle {
    color: #aaa;
    font-size: 0.9rem;
    line-height: 1.5;
    margin: 0;
}

/* Formularios dentro de Modales */
.modal-form {
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
}

.form-row-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.2rem;
}

@media (max-width: 600px) {
    .form-row-2 {
        grid-template-columns: 1fr;
    }
    .modal-container {
        padding: 1.8rem 1.2rem;
    }
}

.form-group {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    text-align: left;
}

.form-group label {
    font-size: 0.85rem;
    color: #ddd;
    font-weight: 500;
    letter-spacing: 0.5px;
}

.form-group input,
.form-group select,
.form-group textarea {
    width: 100%;
    background: rgba(20, 20, 20, 0.9);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 4px;
    color: #fff;
    padding: 0.85rem 1rem;
    font-size: 0.95rem;
    font-family: inherit;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    outline: none;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    border-color: #D4AF37;
    box-shadow: 0 0 12px rgba(212, 175, 55, 0.25);
}

.form-group select option {
    background: #111;
    color: #fff;
}

.checkbox-group {
    margin-top: 0.5rem;
}

.checkbox-label {
    display: flex;
    align-items: flex-start;
    gap: 0.8rem;
    font-size: 0.82rem;
    color: #bbb;
    line-height: 1.5;
    cursor: pointer;
}

.checkbox-label input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: #D4AF37;
    margin-top: 2px;
    cursor: pointer;
    flex-shrink: 0;
}

.checkbox-label a {
    color: #D4AF37;
    text-decoration: underline;
}

.checkbox-label a:hover {
    color: #FFD700;
}

.btn-block {
    width: 100%;
    display: block;
    text-align: center;
    padding: 1rem;
    font-size: 1rem;
    cursor: pointer;
    font-weight: 600;
}

/* Modales Legales (Términos, Privacidad, Seguridad) */
.legal-modal {
    max-width: 780px;
}

.legal-content {
    color: #ccc;
    font-size: 0.92rem;
    line-height: 1.7;
    max-height: 55vh;
    overflow-y: auto;
    padding-right: 1rem;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    padding-top: 1.2rem;
    padding-bottom: 1.2rem;
    margin-bottom: 1.5rem;
}

.legal-content::-webkit-scrollbar {
    width: 6px;
}

.legal-content::-webkit-scrollbar-thumb {
    background: rgba(212, 175, 55, 0.3);
    border-radius: 3px;
}

.legal-content h4 {
    color: #D4AF37;
    font-size: 1.05rem;
    margin-top: 1.5rem;
    margin-bottom: 0.4rem;
    font-family: var(--font-sans);
}

.legal-content h4:first-child {
    margin-top: 0;
}

.legal-content p {
    margin-bottom: 0.8rem;
}

.legal-content ul {
    margin-left: 1.2rem;
    margin-bottom: 1rem;
}

.legal-content li {
    margin-bottom: 0.4rem;
}

.modal-footer {
    display: flex;
    justify-content: flex-end;
}

/* Feedback Box */
.form-feedback-box {
    text-align: center;
    padding: 2.5rem 1.5rem;
    animation: fadeIn 0.4s ease;
}

.form-feedback-box .feedback-icon {
    font-size: 3rem;
    margin-bottom: 1rem;
}

.form-feedback-box h4 {
    color: #D4AF37;
    font-size: 1.4rem;
    margin-bottom: 0.8rem;
}

.form-feedback-box p {
    color: #ccc;
    line-height: 1.6;
    font-size: 0.95rem;
    max-width: 500px;
    margin: 0 auto;
}

/* ==========================================================================
   FAQ ACCORDION & 2-COLUMN LUXURY GRID
   ========================================================================== */
.faq-section {
    padding: 6rem 0;
    position: relative;
    background: radial-gradient(circle at 50% 20%, rgba(114, 47, 55, 0.12) 0%, rgba(8, 8, 8, 0.95) 70%);
}

.faq-section .section-title {
    font-size: 2.4rem;
    letter-spacing: 1px;
    margin-top: 0.8rem;
    margin-bottom: 0.8rem;
}

.faq-section .section-subtitle {
    max-width: 680px;
    margin: 0 auto 3.5rem;
    color: var(--text-muted, #aaa);
    font-size: 1rem;
    line-height: 1.6;
}

.faq-grid-container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2.5rem;
    align-items: start;
}

@media (max-width: 900px) {
    .faq-grid-container {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
}

.faq-category-title {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-size: 1.15rem;
    color: #D4AF37;
    margin-bottom: 1.2rem;
    font-family: var(--font-sans);
    font-weight: 600;
    letter-spacing: 0.5px;
    text-transform: uppercase;
}

.faq-cat-dot {
    width: 8px;
    height: 8px;
    background: #D4AF37;
    border-radius: 50%;
    box-shadow: 0 0 10px rgba(212, 175, 55, 0.8);
    display: inline-block;
}

.faq-accordion {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.faq-item {
    background: rgba(18, 18, 18, 0.8);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 8px;
    overflow: hidden;
    backdrop-filter: blur(10px);
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
}

.faq-item:hover {
    border-color: rgba(212, 175, 55, 0.35);
    transform: translateY(-2px);
    background: rgba(22, 18, 20, 0.9);
}

.faq-item.active {
    border-color: #D4AF37;
    background: rgba(26, 18, 22, 0.95);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.5), 0 0 20px rgba(212, 175, 55, 0.15);
}

.faq-question {
    width: 100%;
    padding: 1.3rem 1.4rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    background: transparent;
    border: none;
    color: #f5f5f0;
    font-size: 1.02rem;
    font-weight: 500;
    text-align: left;
    cursor: pointer;
    font-family: var(--font-sans);
    outline: none;
    transition: color 0.2s ease;
}

.faq-question span:first-child {
    line-height: 1.4;
}

.faq-question:hover {
    color: #D4AF37;
}

.faq-icon {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: rgba(212, 175, 55, 0.08);
    border: 1px solid rgba(212, 175, 55, 0.25);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    color: #D4AF37;
    flex-shrink: 0;
    transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
    font-weight: 300;
}

.faq-item:hover .faq-icon {
    background: rgba(212, 175, 55, 0.2);
    border-color: #D4AF37;
}

.faq-item.active .faq-icon {
    transform: rotate(45deg);
    background: #D4AF37;
    color: #000;
    font-weight: bold;
    box-shadow: 0 0 12px rgba(212, 175, 55, 0.6);
}

.faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.16, 1, 0.3, 1), padding 0.3s ease;
    padding: 0 1.4rem;
}

.faq-item.active .faq-answer {
    max-height: 420px;
    padding: 0 1.4rem 1.6rem;
    border-top: 1px solid rgba(255, 255, 255, 0.05);
    margin-top: 0.2rem;
    padding-top: 0.8rem;
}

.faq-answer p {
    color: #bbb;
    font-size: 0.94rem;
    line-height: 1.7;
    margin: 0;
}

.faq-answer .btn-open-model-trigger {
    margin-top: 1rem;
    background: linear-gradient(135deg, #800020, #4A0E17);
    border: 1px solid #D4AF37;
    color: #fff;
    padding: 0.7rem 1.4rem;
    font-size: 0.88rem;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.25s ease;
    display: inline-block;
    font-weight: 500;
    letter-spacing: 0.5px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.4);
}

.faq-answer .btn-open-model-trigger:hover {
    background: #D4AF37;
    color: #000;
    border-color: #FFD700;
    box-shadow: 0 0 20px rgba(212, 175, 55, 0.5);
    transform: translateY(-2px);
}

/* ==========================================================================
   LANGUAGE SELECTOR DROPDOWN & THEME TOGGLE
   ========================================================================== */
.header-actions {
    display: flex;
    align-items: center;
    gap: 0.9rem;
}

.lang-dropdown-wrap {
    position: relative;
}

.lang-btn {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(212, 175, 55, 0.3);
    color: var(--text-main);
    padding: 0.45rem 0.8rem;
    font-size: 0.82rem;
    font-weight: 500;
    letter-spacing: 0.5px;
    border-radius: 4px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.45rem;
    transition: var(--transition);
    backdrop-filter: blur(10px);
}

.lang-btn:hover {
    border-color: #D4AF37;
    background: rgba(212, 175, 55, 0.12);
    box-shadow: 0 0 12px rgba(212, 175, 55, 0.25);
}

.lang-btn .arrow-icon {
    font-size: 0.65rem;
    transition: transform 0.3s ease;
    opacity: 0.7;
}

.lang-dropdown-wrap.open .arrow-icon {
    transform: rotate(180deg);
}

.lang-dropdown {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    background: rgba(14, 14, 14, 0.95);
    border: 1px solid rgba(212, 175, 55, 0.35);
    border-radius: 6px;
    padding: 0.4rem;
    min-width: 140px;
    display: none;
    flex-direction: column;
    gap: 0.25rem;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.6), 0 0 15px rgba(212, 175, 55, 0.15);
    backdrop-filter: blur(20px);
    z-index: 1100;
    animation: fadeInDropdown 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.lang-dropdown-wrap.open .lang-dropdown {
    display: flex;
}

@keyframes fadeInDropdown {
    from {
        opacity: 0;
        transform: translateY(-6px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.lang-option-btn {
    background: transparent;
    border: none;
    color: var(--text-main);
    padding: 0.55rem 0.8rem;
    font-size: 0.82rem;
    font-weight: 500;
    border-radius: 4px;
    cursor: pointer;
    text-align: left;
    display: flex;
    align-items: center;
    gap: 0.6rem;
    transition: all 0.2s ease;
}

.lang-option-btn:hover {
    background: rgba(212, 175, 55, 0.15);
    color: #D4AF37;
    transform: translateX(3px);
}

.lang-option-btn.active {
    background: linear-gradient(135deg, rgba(128, 0, 32, 0.4), rgba(212, 175, 55, 0.2));
    color: #FFD700;
    font-weight: 600;
    border-left: 2px solid #D4AF37;
}

/* Theme Toggle Button */
.theme-toggle-btn {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(212, 175, 55, 0.3);
    color: #D4AF37;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    transition: var(--transition);
    backdrop-filter: blur(10px);
}

.theme-toggle-btn:hover {
    border-color: #FFD700;
    background: rgba(212, 175, 55, 0.2);
    box-shadow: 0 0 15px rgba(212, 175, 55, 0.4);
    transform: rotate(20deg) scale(1.05);
}

/* ==========================================================================
   CHAMPAGNE SILK & PEARL — LUXURY LIGHT MODE [data-theme="light"]
   ========================================================================== */
[data-theme="light"] {
    --bg-dark: #FAF8F5;
    --bg-charcoal: #F3EFE8;
    --bg-card: rgba(255, 255, 255, 0.92);
    --text-main: #1C1817;
    --text-muted: #6B6560;
    --border-color: rgba(197, 160, 89, 0.25);
    --glass-bg: rgba(255, 255, 255, 0.85);
    --glass-border: rgba(197, 160, 89, 0.35);
}

[data-theme="light"] body {
    background-color: var(--bg-dark);
    color: var(--text-main);
}

[data-theme="light"] .header {
    background: rgba(250, 248, 245, 0.92);
    border-bottom: 1px solid rgba(197, 160, 89, 0.25);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
}

[data-theme="light"] .header.scrolled {
    background: rgba(250, 248, 245, 0.98);
}

[data-theme="light"] .nav-menu a {
    color: #3A3533;
}

[data-theme="light"] .nav-menu a:hover {
    color: #800020;
}

[data-theme="light"] .lang-btn,
[data-theme="light"] .theme-toggle-btn {
    background: rgba(255, 255, 255, 0.85);
    border-color: rgba(197, 160, 89, 0.4);
    color: #2D2826;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

[data-theme="light"] .lang-dropdown {
    background: rgba(255, 255, 255, 0.98);
    border-color: rgba(197, 160, 89, 0.45);
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.12), 0 0 15px rgba(197, 160, 89, 0.15);
}

[data-theme="light"] .lang-option-btn {
    color: #2D2826;
}

[data-theme="light"] .lang-option-btn:hover {
    background: rgba(197, 160, 89, 0.12);
    color: #800020;
}

[data-theme="light"] .hero-bg {
    background: radial-gradient(circle at center, rgba(250, 248, 245, 0.5) 0%, rgba(250, 248, 245, 0.85) 100%);
}

[data-theme="light"] .hero-headline {
    color: #1A1615;
    text-shadow: 0 2px 10px rgba(255, 255, 255, 0.8);
}

[data-theme="light"] .hero-subheadline {
    color: #4A4441;
}

[data-theme="light"] .card,
[data-theme="light"] .experience-card,
[data-theme="light"] .search-container,
[data-theme="light"] .profile-card,
[data-theme="light"] .step-card,
[data-theme="light"] .faq-item,
[data-theme="light"] .recruitment-perk,
[data-theme="light"] .elite-banner {
    background: #FFFFFF;
    border-color: rgba(197, 160, 89, 0.28);
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.05);
}

[data-theme="light"] .card:hover,
[data-theme="light"] .profile-card:hover,
[data-theme="light"] .faq-item:hover {
    box-shadow: 0 14px 35px rgba(197, 160, 89, 0.18);
    border-color: rgba(197, 160, 89, 0.55);
}

[data-theme="light"] .card-number {
    color: rgba(197, 160, 89, 0.35);
}

[data-theme="light"] .experience-card h3,
[data-theme="light"] .step-card h3,
[data-theme="light"] .section-title,
[data-theme="light"] .profile-name,
[data-theme="light"] .faq-trigger h4 {
    color: #1A1615;
}

[data-theme="light"] .experience-card p,
[data-theme="light"] .step-card p,
[data-theme="light"] .faq-answer p,
[data-theme="light"] .recruitment-desc,
[data-theme="light"] .recruitment-perk p,
[data-theme="light"] .footer-col p {
    color: #5C5552;
}

[data-theme="light"] .search-group label {
    color: #3D3734;
}

[data-theme="light"] .search-group select,
[data-theme="light"] .search-group input {
    background: #FAF8F5;
    border-color: rgba(197, 160, 89, 0.35);
    color: #1A1615;
}

[data-theme="light"] .btn-outline {
    border-color: #C5A059;
    color: #1A1615;
    background: rgba(255, 255, 255, 0.7);
}

[data-theme="light"] .btn-outline:hover {
    background: #C5A059;
    color: #FFFFFF;
}

[data-theme="light"] .profile-details {
    border-color: rgba(197, 160, 89, 0.2);
}

[data-theme="light"] .detail-item .label {
    color: #7D7571;
}

[data-theme="light"] .detail-item .val {
    color: #1A1615;
}

[data-theme="light"] .profile-tags .tag {
    background: #F3EFE8;
    color: #4A4441;
    border: 1px solid rgba(197, 160, 89, 0.25);
}

[data-theme="light"] .faq-section {
    background: linear-gradient(180deg, #FAF8F5 0%, #F3EFE8 50%, #FAF8F5 100%);
}

[data-theme="light"] .faq-item {
    background: #FFFFFF;
}

[data-theme="light"] .faq-item.active {
    background: #FFFFFF;
    border-color: #C5A059;
    box-shadow: 0 10px 30px rgba(197, 160, 89, 0.15);
}

[data-theme="light"] .faq-category-header {
    border-color: rgba(197, 160, 89, 0.3);
}

[data-theme="light"] .faq-category-header h3 {
    color: #1A1615;
}

[data-theme="light"] .faq-category-header p {
    color: #6B6560;
}

[data-theme="light"] .modal-container.legal-modal,
[data-theme="light"] .modal-container {
    background: #FFFFFF;
    color: #1A1615;
    border-color: rgba(197, 160, 89, 0.4);
    box-shadow: 0 25px 60px rgba(0, 0, 0, 0.15);
}

[data-theme="light"] .modal-header .modal-title {
    color: #1A1615;
}

[data-theme="light"] .modal-header .modal-subtitle {
    color: #6B6560;
}

[data-theme="light"] .legal-content h4 {
    color: #800020;
}

[data-theme="light"] .legal-content p,
[data-theme="light"] .legal-content li {
    color: #4A4441;
}

[data-theme="light"] .footer {
    background: transparent !important;
    color: #F5F5F0;
}

[data-theme="light"] .footer-bottom {
    border-color: rgba(255, 255, 255, 0.08);
}

/* ==========================================================================
   DISPOSITIVO: SUBIDA DE FOTOGRAFÍAS & PREVISUALIZADOR DE LUJO
   ========================================================================== */
.photo-dropzone {
    border: 2px dashed rgba(212, 175, 55, 0.45);
    background: rgba(18, 18, 18, 0.65);
    border-radius: 8px;
    padding: 1.4rem;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    backdrop-filter: blur(10px);
}

.photo-dropzone:hover,
.photo-dropzone.dragover {
    border-color: #FFD700;
    background: rgba(212, 175, 55, 0.1);
    box-shadow: 0 0 25px rgba(212, 175, 55, 0.25);
    transform: translateY(-2px);
}

.dropzone-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.6rem;
}

.dropzone-icon {
    font-size: 2.2rem;
    filter: drop-shadow(0 0 10px rgba(212, 175, 55, 0.5));
    transition: transform 0.3s ease;
}

.photo-dropzone:hover .dropzone-icon {
    transform: scale(1.1) rotate(5deg);
}

.dropzone-text strong {
    display: block;
    color: #F5F5F0;
    font-size: 0.95rem;
    margin-bottom: 0.2rem;
    letter-spacing: 0.3px;
}

.dropzone-text span {
    font-size: 0.8rem;
    color: #999;
}

.btn-select-photos {
    margin-top: 0.5rem;
    pointer-events: none; /* el click pasa al dropzone */
}

.photo-preview-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem;
    margin-top: 1rem;
    padding: 0.8rem;
    background: rgba(10, 10, 10, 0.5);
    border: 1px solid rgba(212, 175, 55, 0.25);
    border-radius: 8px;
}

.photo-preview-item {
    position: relative;
    width: 90px;
    height: 90px;
    border-radius: 6px;
    overflow: hidden;
    border: 1px solid #D4AF37;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.5);
    animation: fadeInPhoto 0.3s ease forwards;
}

@keyframes fadeInPhoto {
    from {
        opacity: 0;
        transform: scale(0.85);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

.photo-preview-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.photo-badge-main {
    position: absolute;
    bottom: 2px;
    left: 2px;
    background: rgba(0, 0, 0, 0.85);
    color: #FFD700;
    font-size: 0.65rem;
    font-weight: 600;
    padding: 2px 5px;
    border-radius: 3px;
    border: 1px solid rgba(212, 175, 55, 0.5);
}

.btn-remove-preview-photo {
    position: absolute;
    top: 3px;
    right: 3px;
    background: rgba(180, 0, 0, 0.85);
    color: #fff;
    border: none;
    border-radius: 50%;
    width: 20px;
    height: 20px;
    cursor: pointer;
    font-size: 0.7rem;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s ease, transform 0.2s ease;
}

.btn-remove-preview-photo:hover {
    background: #ff2222;
    transform: scale(1.15);
}

/* Light Mode Overrides for Photo Uploader */
[data-theme="light"] .photo-dropzone {
    border-color: rgba(197, 160, 89, 0.5);
    background: #FAF8F5;
}

[data-theme="light"] .photo-dropzone:hover,
[data-theme="light"] .photo-dropzone.dragover {
    background: #F3EFE8;
    border-color: #C5A059;
    box-shadow: 0 4px 20px rgba(197, 160, 89, 0.2);
}

[data-theme="light"] .dropzone-text strong {
    color: #1A1615;
}

[data-theme="light"] .dropzone-text span {
    color: #6B6560;
}

[data-theme="light"] .photo-preview-grid {
    background: #FAF8F5;
    border-color: rgba(197, 160, 89, 0.35);
}



/* ==========================================================================
   RED VELVET LUXURY E-COMMERCE & SEX SHOP BOUTIQUE EXTENSIONS
   ========================================================================== */

/* Header Cart Button */
.cart-btn-header {
    position: relative;
    background: rgba(212, 175, 55, 0.12);
    border: 1px solid rgba(212, 175, 55, 0.4);
    color: #F5F5F0;
    padding: 0.55rem 1rem;
    border-radius: 4px;
    font-size: 0.9rem;
    font-weight: 500;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    transition: var(--transition);
}

.cart-btn-header:hover {
    background: rgba(212, 175, 55, 0.25);
    border-color: #D4AF37;
    transform: translateY(-1px);
    box-shadow: 0 4px 15px rgba(212, 175, 55, 0.2);
}

.cart-badge {
    background: linear-gradient(135deg, #D4AF37, #800020);
    color: #FFFFFF;
    font-size: 0.72rem;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 12px;
    min-width: 18px;
    text-align: center;
}

/* Trust Banner */
.trust-banner-section {
    padding: 2.5rem 0;
    background: linear-gradient(180deg, rgba(18, 18, 18, 0.95), rgba(8, 8, 8, 1));
    border-top: 1px solid rgba(212, 175, 55, 0.15);
    border-bottom: 1px solid rgba(212, 175, 55, 0.15);
}

.trust-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1.5rem;
}

.trust-item {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.2rem;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(255, 255, 255, 0.05);
    border-radius: 8px;
    transition: var(--transition);
}

.trust-item:hover {
    border-color: rgba(212, 175, 55, 0.3);
    background: rgba(212, 175, 55, 0.03);
    transform: translateY(-2px);
}

.trust-icon {
    font-size: 2rem;
    flex-shrink: 0;
}

.trust-text h4 {
    font-size: 0.95rem;
    font-weight: 600;
    color: #F5F5F0;
    margin-bottom: 0.2rem;
}

.trust-text p {
    font-size: 0.8rem;
    color: var(--text-muted);
    line-height: 1.35;
}

/* Collections Showcase */
.collections-section {
    padding: 4rem 0 2rem;
}

.collections-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 1.5rem;
    margin-top: 2rem;
}

.collection-card {
    position: relative;
    height: 320px;
    border-radius: 8px;
    overflow: hidden;
    cursor: pointer;
    border: 1px solid rgba(255, 255, 255, 0.08);
    transition: var(--transition);
}

.collection-card:hover {
    border-color: #D4AF37;
    transform: translateY(-4px);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.6);
}

.collection-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s cubic-bezier(0.25, 0.8, 0.25, 1);
}

.collection-card:hover .collection-img {
    transform: scale(1.08);
}

.collection-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(8, 8, 8, 0.1) 0%, rgba(8, 8, 8, 0.88) 100%);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 1.5rem;
}

.collection-overlay h3 {
    font-family: var(--font-serif);
    font-size: 1.35rem;
    color: #FFFFFF;
    margin-bottom: 0.3rem;
}

.collection-overlay p {
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.7);
    margin-bottom: 0.8rem;
}

.collection-link {
    font-size: 0.82rem;
    color: #D4AF37;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Filter Bar & Pills */
.catalog-filter-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 2.5rem;
    padding: 1rem 1.5rem;
    background: rgba(18, 18, 18, 0.6);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 8px;
}

.category-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.cat-pill {
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: #E0E0E0;
    padding: 0.45rem 1rem;
    border-radius: 20px;
    font-size: 0.85rem;
    cursor: pointer;
    transition: var(--transition);
}

.cat-pill:hover,
.cat-pill.active {
    background: #D4AF37;
    color: #080808;
    border-color: #D4AF37;
    font-weight: 600;
    box-shadow: 0 4px 14px rgba(212, 175, 55, 0.3);
}

.filter-controls {
    display: flex;
    align-items: center;
    gap: 0.8rem;
}

.filter-search-input {
    background: rgba(8, 8, 8, 0.8);
    border: 1px solid rgba(255, 255, 255, 0.15);
    color: #FFF;
    padding: 0.45rem 0.9rem;
    border-radius: 4px;
    font-size: 0.85rem;
    min-width: 180px;
}

.filter-search-input:focus {
    border-color: #D4AF37;
    outline: none;
}

.filter-sort-select {
    background: rgba(8, 8, 8, 0.8);
    border: 1px solid rgba(255, 255, 255, 0.15);
    color: #FFF;
    padding: 0.45rem 0.9rem;
    border-radius: 4px;
    font-size: 0.85rem;
}

/* Product Cards */
.products-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 2rem;
}

.product-shop-card {
    background: rgba(18, 18, 18, 0.8);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 8px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: var(--transition);
    position: relative;
}

.product-shop-card:hover {
    border-color: rgba(212, 175, 55, 0.6);
    transform: translateY(-5px);
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.5), 0 0 15px rgba(212, 175, 55, 0.15);
}

.product-img-box {
    position: relative;
    height: 280px;
    overflow: hidden;
    background: #000;
}

.product-img-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.product-shop-card:hover .product-img-box img {
    transform: scale(1.06);
}

.product-badge-corner {
    position: absolute;
    top: 12px;
    left: 12px;
    background: linear-gradient(135deg, #D4AF37, #800020);
    color: #FFFFFF;
    font-size: 0.72rem;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 3px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    z-index: 2;
    box-shadow: 0 2px 8px rgba(0,0,0,0.4);
}

.product-quick-view-btn {
    position: absolute;
    bottom: 12px;
    left: 50%;
    transform: translateX(-50%) translateY(20px);
    opacity: 0;
    background: rgba(8, 8, 8, 0.85);
    border: 1px solid #D4AF37;
    color: #D4AF37;
    padding: 0.4rem 1rem;
    font-size: 0.8rem;
    border-radius: 3px;
    cursor: pointer;
    transition: var(--transition);
    white-space: nowrap;
    z-index: 2;
}

.product-shop-card:hover .product-quick-view-btn {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

.product-info-box {
    padding: 1.3rem;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.product-cat-name {
    font-size: 0.75rem;
    color: #D4AF37;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 600;
    margin-bottom: 0.3rem;
}

.product-title {
    font-family: var(--font-serif);
    font-size: 1.25rem;
    color: #FFFFFF;
    margin-bottom: 0.4rem;
    line-height: 1.3;
}

.product-subtitle-short {
    font-size: 0.82rem;
    color: var(--text-muted);
    line-height: 1.4;
    margin-bottom: 1rem;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.product-price-row {
    display: flex;
    align-items: baseline;
    gap: 0.6rem;
    margin-top: auto;
    margin-bottom: 1.2rem;
}

.product-current-price {
    font-size: 1.35rem;
    font-weight: 700;
    color: #F5F5F0;
    font-family: var(--font-serif);
}

.product-compare-price {
    font-size: 0.9rem;
    color: #888;
    text-decoration: line-through;
}

.product-card-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.5rem;
}

.btn-add-to-bag {
    background: linear-gradient(135deg, #722F37, #501018);
    color: #FFFFFF;
    border: 1px solid rgba(212, 175, 55, 0.4);
    padding: 0.7rem;
    font-size: 0.85rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    border-radius: 3px;
    cursor: pointer;
    transition: var(--transition);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

.btn-add-to-bag:hover {
    background: linear-gradient(135deg, #8B0000, #722F37);
    border-color: #D4AF37;
    box-shadow: 0 4px 15px rgba(212, 175, 55, 0.3);
    transform: translateY(-1px);
}

/* ==========================================================================
   CART DRAWER (PANEL LATERAL DESLIZABLE)
   ========================================================================== */
.cart-drawer-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.75);
    backdrop-filter: blur(4px);
    z-index: 10000;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.35s ease, visibility 0.35s ease;
}

.cart-drawer-overlay.active {
    opacity: 1;
    visibility: visible;
}

.cart-drawer {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    max-width: 460px;
    background: #0D0A0B;
    border-left: 1px solid rgba(212, 175, 55, 0.3);
    box-shadow: -10px 0 35px rgba(0, 0, 0, 0.8);
    z-index: 10001;
    display: flex;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
}

.cart-drawer.active {
    transform: translateX(0);
}

.cart-drawer-header {
    padding: 1.5rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.cart-drawer-header h3 {
    font-family: var(--font-serif);
    font-size: 1.3rem;
    color: #FFFFFF;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.cart-close-btn {
    background: none;
    border: none;
    color: #A0A0A0;
    font-size: 1.5rem;
    cursor: pointer;
    transition: color 0.2s ease;
}

.cart-close-btn:hover {
    color: #FFFFFF;
}

.discreet-shipping-badge {
    background: rgba(212, 175, 55, 0.08);
    border-bottom: 1px solid rgba(212, 175, 55, 0.2);
    padding: 0.65rem 1.2rem;
    font-size: 0.78rem;
    color: #D4AF37;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.cart-items-container {
    flex-grow: 1;
    overflow-y: auto;
    padding: 1.2rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.cart-empty-message {
    text-align: center;
    padding: 3rem 1rem;
    color: var(--text-muted);
}

.cart-empty-message .empty-icon {
    font-size: 3rem;
    margin-bottom: 1rem;
    opacity: 0.6;
}

.cart-item {
    display: flex;
    gap: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.cart-item-img {
    width: 75px;
    height: 75px;
    border-radius: 4px;
    object-fit: cover;
    background: #000;
    flex-shrink: 0;
}

.cart-item-info {
    flex-grow: 1;
}

.cart-item-title {
    font-size: 0.95rem;
    font-weight: 500;
    color: #FFF;
    margin-bottom: 0.2rem;
}

.cart-item-price {
    font-size: 0.88rem;
    color: #D4AF37;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.cart-item-controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.qty-control-box {
    display: flex;
    align-items: center;
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 3px;
}

.qty-btn {
    background: none;
    border: none;
    color: #FFF;
    padding: 2px 8px;
    cursor: pointer;
    font-size: 0.9rem;
}

.qty-val {
    padding: 2px 8px;
    font-size: 0.85rem;
    min-width: 24px;
    text-align: center;
}

.cart-item-remove {
    background: none;
    border: none;
    color: #888;
    cursor: pointer;
    font-size: 0.8rem;
    transition: color 0.2s ease;
}

.cart-item-remove:hover {
    color: #FF5555;
}

.cart-drawer-footer {
    padding: 1.2rem;
    background: rgba(18, 18, 18, 0.95);
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.coupon-input-wrap {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.coupon-input {
    flex-grow: 1;
    background: rgba(8, 8, 8, 0.8);
    border: 1px solid rgba(255, 255, 255, 0.15);
    color: #FFF;
    padding: 0.5rem 0.8rem;
    border-radius: 3px;
    font-size: 0.85rem;
    text-transform: uppercase;
}

.coupon-btn {
    background: rgba(212, 175, 55, 0.15);
    border: 1px solid #D4AF37;
    color: #D4AF37;
    padding: 0.5rem 0.9rem;
    border-radius: 3px;
    font-size: 0.8rem;
    cursor: pointer;
    font-weight: 600;
}

.cart-totals {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    margin-bottom: 1.2rem;
    font-size: 0.88rem;
}

.cart-total-row {
    display: flex;
    justify-content: space-between;
    color: var(--text-muted);
}

.cart-total-row.discount-row {
    color: #4CAF50;
}

.cart-total-row.grand-total {
    font-size: 1.2rem;
    font-weight: 700;
    color: #FFFFFF;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding-top: 0.6rem;
    margin-top: 0.2rem;
}

.btn-proceed-checkout {
    width: 100%;
    background: linear-gradient(135deg, #D4AF37, #AA8222);
    color: #080808;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    padding: 0.9rem;
    border-radius: 4px;
    border: none;
    cursor: pointer;
    transition: var(--transition);
}

.btn-proceed-checkout:hover {
    box-shadow: 0 4px 20px rgba(212, 175, 55, 0.4);
    transform: translateY(-2px);
}

/* ==========================================================================
   PRODUCT DETAIL MODAL
   ========================================================================== */
.product-modal-container {
    max-width: 920px;
    width: 92%;
    max-height: 85vh;
    overflow-y: auto;
    background: #0E0B0C;
    border: 1px solid rgba(212, 175, 55, 0.4);
    border-radius: 8px;
    padding: 2.2rem 2.2rem 2.8rem;
    position: relative;
    box-shadow: 0 15px 45px rgba(0,0,0,0.9);
}

.product-modal-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 2.2rem;
}

@media (max-width: 768px) {
    .product-modal-grid {
        grid-template-columns: 1fr;
    }
}

.modal-product-img {
    width: 100%;
    border-radius: 6px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    object-fit: cover;
    max-height: 420px;
}

.modal-specs-list {
    margin-top: 1.2rem;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 6px;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.modal-spec-item {
    font-size: 0.82rem;
    display: flex;
    justify-content: space-between;
}

.modal-spec-item .spec-label {
    color: var(--text-muted);
}

.modal-spec-item .spec-value {
    color: #FFF;
    font-weight: 500;
}

/* ==========================================================================
   ULTRA-LUXURY UI/UX ENHANCEMENTS — RED VELVET
   ========================================================================== */

/* Barra de Progreso de Envío Gratis en Carrito */
.cart-free-shipping-wrap {
    background: rgba(212, 175, 55, 0.08);
    border: 1px solid rgba(212, 175, 55, 0.25);
    border-radius: 6px;
    padding: 0.8rem 1rem;
    margin-bottom: 1rem;
}

.cart-free-shipping-text {
    font-size: 0.82rem;
    color: #F5E6BE;
    margin-bottom: 0.5rem;
    text-align: center;
    line-height: 1.4;
}

.cart-free-shipping-text strong {
    color: #D4AF37;
}

.cart-progress-bar-bg {
    width: 100%;
    height: 6px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 10px;
    overflow: hidden;
    position: relative;
}

.cart-progress-bar-fill {
    height: 100%;
    background: linear-gradient(90deg, #D4AF37 0%, #FFDF73 100%);
    border-radius: 10px;
    transition: width 0.4s ease;
    box-shadow: 0 0 8px rgba(212, 175, 55, 0.6);
}

/* Barra de Estado Dinámica del Catálogo */
.catalog-status-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.6rem 0.2rem 1.4rem;
    flex-wrap: wrap;
    gap: 0.8rem;
    font-size: 0.85rem;
}

.catalog-count-pill {
    background: rgba(212, 175, 55, 0.08);
    border: 1px solid rgba(212, 175, 55, 0.2);
    color: #F5E6BE;
    padding: 0.35rem 0.85rem;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 500;
    letter-spacing: 0.5px;
}

.catalog-shipping-hint {
    color: var(--text-muted);
    font-size: 0.82rem;
}

/* Input de Búsqueda Elegante */
.filter-search-box {
    position: relative;
    display: flex;
    align-items: center;
    min-width: 260px;
}

.filter-search-box .search-icon {
    position: absolute;
    left: 1rem;
    font-size: 0.9rem;
    color: var(--gold);
    pointer-events: none;
}

.filter-search-box .filter-search-input {
    width: 100%;
    padding-left: 2.5rem;
    background: rgba(18, 14, 16, 0.75);
    border: 1px solid rgba(212, 175, 55, 0.25);
    border-radius: 30px;
    color: #FFF;
    font-size: 0.85rem;
    height: 42px;
    transition: all 0.3s ease;
}

.filter-search-box .filter-search-input:focus {
    outline: none;
    border-color: #D4AF37;
    background: rgba(25, 18, 20, 0.95);
    box-shadow: 0 0 15px rgba(212, 175, 55, 0.25);
}

/* Category Pills Refinadas */
.category-pills {
    display: flex;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.cat-pill {
    background: rgba(18, 14, 16, 0.8);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: #C0C0C0;
    padding: 0.55rem 1.1rem;
    border-radius: 30px;
    font-size: 0.84rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.25, 1, 0.5, 1);
    backdrop-filter: blur(8px);
}

.cat-pill:hover {
    color: #FFF;
    border-color: rgba(212, 175, 55, 0.4);
    background: rgba(35, 22, 26, 0.9);
    transform: translateY(-2px);
}

.cat-pill.active {
    background: linear-gradient(135deg, rgba(74, 14, 23, 0.8) 0%, rgba(20, 10, 14, 0.95) 100%);
    border: 1px solid #D4AF37;
    color: #FFDF73;
    box-shadow: 0 0 16px rgba(212, 175, 55, 0.3);
    font-weight: 600;
}

/* Tarjetas de Producto Rediseñadas */
.product-shop-card {
    background: #0E0B0C;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 8px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: all 0.45s cubic-bezier(0.25, 1, 0.5, 1);
    position: relative;
}

.product-shop-card:hover {
    border-color: rgba(212, 175, 55, 0.45);
    transform: translateY(-6px);
    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.8), 0 0 25px rgba(212, 175, 55, 0.12);
}

.product-img-box {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1.05;
    background: #060405;
    overflow: hidden;
}

.product-img-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.7s cubic-bezier(0.25, 1, 0.5, 1);
}

.product-shop-card:hover .product-img-box img {
    transform: scale(1.06);
}

.product-badge-corner {
    position: absolute;
    top: 1rem;
    left: 1rem;
    background: rgba(14, 11, 12, 0.88);
    border: 1px solid rgba(212, 175, 55, 0.4);
    color: #F5E6BE;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    padding: 0.35rem 0.75rem;
    border-radius: 20px;
    backdrop-filter: blur(8px);
    z-index: 2;
    box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}

.product-quick-view-btn {
    position: absolute;
    bottom: 0.9rem;
    left: 50%;
    transform: translateX(-50%) translateY(15px);
    opacity: 0;
    pointer-events: none;
    background: rgba(14, 11, 12, 0.92);
    border: 1px solid rgba(212, 175, 55, 0.4);
    color: #FFF;
    padding: 0.5rem 1.1rem;
    font-size: 0.78rem;
    border-radius: 30px;
    font-weight: 600;
    cursor: pointer;
    backdrop-filter: blur(10px);
    transition: all 0.3s ease;
    white-space: nowrap;
    z-index: 3;
}

.product-shop-card:hover .product-quick-view-btn {
    opacity: 1;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
}

.product-quick-view-btn:hover {
    background: #D4AF37;
    color: #000;
    border-color: #D4AF37;
}

.product-info-box {
    padding: 1.3rem;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.product-cat-name {
    font-size: 0.7rem;
    color: #D4AF37;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-weight: 600;
    margin-bottom: 0.35rem;
}

.product-title {
    font-family: var(--font-serif);
    font-size: 1.22rem;
    color: #FFFFFF;
    margin-bottom: 0.4rem;
    line-height: 1.35;
    transition: color 0.3s ease;
}

.product-shop-card:hover .product-title {
    color: #FFDF73;
}

.product-subtitle-short {
    font-size: 0.82rem;
    color: var(--text-muted);
    line-height: 1.45;
    margin-bottom: 1rem;
    flex-grow: 1;
}

.product-price-row {
    display: flex;
    align-items: baseline;
    gap: 0.8rem;
    margin-bottom: 1.1rem;
}

.product-current-price {
    font-family: var(--font-serif);
    font-size: 1.35rem;
    color: #D4AF37;
    font-weight: 600;
}

.product-compare-price {
    font-size: 0.9rem;
    color: #777;
    text-decoration: line-through;
}

.btn-add-to-bag {
    width: 100%;
    background: linear-gradient(135deg, #4A0E17 0%, #2E080E 100%);
    border: 1px solid rgba(212, 175, 55, 0.4);
    color: #FFFFFF;
    padding: 0.8rem 1rem;
    font-size: 0.88rem;
    font-weight: 600;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

.btn-add-to-bag:hover {
    background: linear-gradient(135deg, #6B1321 0%, #3B0A12 100%);
    border-color: #D4AF37;
    box-shadow: 0 4px 15px rgba(212, 175, 55, 0.25);
    transform: translateY(-2px);
}

.btn-add-to-bag.added-success {
    background: #1B4D2E !important;
    border-color: #4CAF50 !important;
    color: #FFF !important;
}

/* Toast Flotante */
.cart-toast {
    position: fixed;
    bottom: 2rem;
    right: 2rem;
    background: rgba(14, 11, 12, 0.95);
    border: 1px solid #D4AF37;
    border-radius: 8px;
    padding: 0.85rem 1.4rem;
    display: flex;
    align-items: center;
    gap: 0.8rem;
    color: #FFF;
    font-size: 0.9rem;
    box-shadow: 0 10px 30px rgba(0,0,0,0.8), 0 0 20px rgba(212, 175, 55, 0.2);
    backdrop-filter: blur(12px);
    z-index: 10000;
    opacity: 0;
    transform: translateY(20px);
    pointer-events: none;
    transition: all 0.35s cubic-bezier(0.25, 1, 0.5, 1);
}

.cart-toast.active {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

.cart-toast .toast-icon {
    color: #D4AF37;
    font-size: 1.1rem;
}

/* ==========================================================================
   LANDING VIP & LUXURY ENHANCEMENTS: HERO TRUST, RITUAL, TESTIMONIALS, CIRCLE
   ========================================================================== */

/* Hero Trust Badges */
.hero-trust-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 1.2rem;
    justify-content: center;
    margin-top: 2.2rem;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(212, 175, 55, 0.2);
}

.hero-trust-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: rgba(18, 14, 15, 0.7);
    border: 1px solid rgba(212, 175, 55, 0.35);
    border-radius: 30px;
    padding: 0.4rem 1rem;
    font-size: 0.8rem;
    letter-spacing: 0.05em;
    color: #E8E4DA;
    backdrop-filter: blur(8px);
    transition: all 0.3s ease;
}

.hero-trust-badge:hover {
    border-color: #D4AF37;
    background: rgba(43, 8, 13, 0.7);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(212, 175, 55, 0.2);
}

.badge-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #D4AF37;
    box-shadow: 0 0 6px #D4AF37;
}

/* Ritual Section */
.ritual-section {
    background: radial-gradient(circle at 50% 30%, rgba(59, 10, 18, 0.45) 0%, rgba(10, 8, 9, 0.95) 70%);
    border-top: 1px solid rgba(212, 175, 55, 0.15);
    border-bottom: 1px solid rgba(212, 175, 55, 0.15);
    position: relative;
    padding: 6rem 0;
}

.ritual-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
    margin-top: 3rem;
}

.ritual-card {
    background: rgba(18, 14, 15, 0.85);
    border: 1px solid rgba(212, 175, 55, 0.25);
    border-radius: 12px;
    padding: 2.5rem 2rem;
    position: relative;
    transition: all 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
    display: flex;
    flex-direction: column;
}

.ritual-card:hover {
    transform: translateY(-8px);
    border-color: #D4AF37;
    box-shadow: 0 15px 35px rgba(212, 175, 55, 0.2);
    background: rgba(28, 16, 20, 0.95);
}

.ritual-step {
    font-size: 0.75rem;
    font-family: var(--font-primary, 'Cinzel', serif);
    letter-spacing: 0.2em;
    color: #D4AF37;
    margin-bottom: 1rem;
    font-weight: 600;
}

.ritual-icon {
    font-size: 2.2rem;
    margin-bottom: 1rem;
}

.ritual-title {
    font-family: var(--font-primary, 'Cinzel', serif);
    font-size: 1.35rem;
    color: #FFF;
    margin-bottom: 1rem;
    line-height: 1.3;
}

.ritual-desc {
    color: #C5BCB6;
    font-size: 0.95rem;
    line-height: 1.7;
    margin-bottom: 1.5rem;
    flex-grow: 1;
}

.ritual-tag {
    font-size: 0.75rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(212, 175, 55, 0.85);
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    padding-top: 1rem;
}

/* Testimonials VIP */
.testimonials-section {
    background: #0B090A;
    padding: 6rem 0;
    border-bottom: 1px solid rgba(212, 175, 55, 0.15);
}

.testimonials-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 2rem;
    margin-top: 3rem;
}

.testimonial-card {
    background: linear-gradient(145deg, rgba(22, 16, 18, 0.9) 0%, rgba(13, 10, 11, 0.9) 100%);
    border: 1px solid rgba(212, 175, 55, 0.2);
    border-radius: 10px;
    padding: 2.2rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.4);
    transition: all 0.35s ease;
}

.testimonial-card:hover {
    border-color: rgba(212, 175, 55, 0.5);
    transform: translateY(-4px);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.6);
}

.testimonial-stars {
    color: #D4AF37;
    letter-spacing: 0.2em;
    font-size: 1.1rem;
    margin-bottom: 1.2rem;
}

.testimonial-quote {
    font-style: italic;
    color: #D8D2CD;
    font-size: 0.98rem;
    line-height: 1.75;
    margin-bottom: 1.8rem;
}

.testimonial-author {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    padding-top: 1rem;
}

.author-name {
    font-family: var(--font-primary, 'Cinzel', serif);
    font-weight: 600;
    font-size: 0.95rem;
    color: #FFF;
}

.author-verified {
    font-size: 0.78rem;
    color: #4CAF50;
    letter-spacing: 0.03em;
}

/* The Velvet Circle Section */
.velvet-circle-section {
    padding: 5rem 0;
    background: radial-gradient(ellipse at bottom, rgba(74, 14, 23, 0.3) 0%, #0A0809 70%);
}

.velvet-circle-box {
    max-width: 760px;
    margin: 0 auto;
    background: linear-gradient(135deg, rgba(26, 17, 20, 0.95) 0%, rgba(13, 9, 11, 0.95) 100%);
    border: 1px solid #D4AF37;
    border-radius: 16px;
    padding: 3.5rem 2.5rem;
    text-align: center;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.7), 0 0 30px rgba(212, 175, 55, 0.15);
}

.circle-badge {
    display: inline-block;
    font-family: var(--font-primary, 'Cinzel', serif);
    font-size: 0.75rem;
    letter-spacing: 0.25em;
    color: #D4AF37;
    text-transform: uppercase;
    border: 1px solid rgba(212, 175, 55, 0.4);
    padding: 0.35rem 1.2rem;
    border-radius: 20px;
    margin-bottom: 1.5rem;
}

.circle-title {
    font-family: var(--font-primary, 'Cinzel', serif);
    font-size: 2.2rem;
    color: #FFF;
    margin-bottom: 1rem;
    letter-spacing: 0.05em;
}

.circle-subtitle {
    color: #D0C8C1;
    font-size: 1.05rem;
    line-height: 1.7;
    margin-bottom: 2rem;
    max-width: 580px;
    margin-left: auto;
    margin-right: auto;
}

.circle-form {
    display: flex;
    gap: 0.8rem;
    max-width: 500px;
    margin: 0 auto 1.2rem;
    flex-wrap: wrap;
}

.circle-input {
    flex: 1;
    min-width: 240px;
    background: rgba(10, 8, 9, 0.8);
    border: 1px solid rgba(212, 175, 55, 0.4);
    border-radius: 6px;
    padding: 0.85rem 1.2rem;
    color: #FFF;
    font-size: 0.95rem;
    outline: none;
    transition: all 0.3s ease;
}

.circle-input:focus {
    border-color: #D4AF37;
    box-shadow: 0 0 10px rgba(212, 175, 55, 0.3);
}

.circle-btn {
    background: linear-gradient(135deg, #D4AF37 0%, #AA8010 100%);
    color: #0A0809;
    border: none;
    border-radius: 6px;
    font-weight: 700;
    padding: 0.85rem 1.8rem;
    letter-spacing: 0.05em;
    cursor: pointer;
    transition: all 0.3s ease;
}

.circle-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(212, 175, 55, 0.4);
}

.circle-privacy {
    display: block;
    font-size: 0.78rem;
    color: #8C827A;
    margin-top: 1rem;
}

.circle-feedback {
    margin-top: 1rem;
    padding: 0.75rem 1rem;
    border-radius: 6px;
    font-size: 0.88rem;
}

@media (max-width: 768px) {
    .circle-form {
        flex-direction: column;
    }
    .circle-btn {
        width: 100%;
    }
    .velvet-circle-box {
        padding: 2.2rem 1.4rem;
    }
    .circle-title {
        font-size: 1.8rem;
    }
}


/* ==========================================================================
   IPHONE & MOBILE ADVANCED ERGONOMICS (IOS SAFARI OPTIMIZATION)
   ========================================================================== */

/* 1. Touch Engine & Safe Areas Globales */
html {
    -webkit-text-size-adjust: 100%;
}

body {
    -webkit-overflow-scrolling: touch;
}

button, a, input, select, textarea {
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
}

/* 2. Prevencion de Auto-Zoom forzado en Safari iOS */
@media screen and (max-width: 768px) {
    input, select, textarea,
    .filter-search-input, .filter-sort-select,
    .coupon-input, .circle-input,
    .checkout-input, .checkout-select,
    .form-control, #catalog-search, #catalog-sort {
        font-size: 16px !important; /* Estandar Apple para evitar zoom automatico */
    }
}

/* 3. Header & Safe Area Superior (Notch / Dynamic Island) */
.header {
    padding-top: max(0.9rem, env(safe-area-inset-top));
    padding-left: max(1.2rem, env(safe-area-inset-left));
    padding-right: max(1.2rem, env(safe-area-inset-right));
}

/* 4. Age Gate Modal en iPhone */
@media (max-width: 600px) {
    .age-gate-modal {
        padding: max(1rem, env(safe-area-inset-top)) 1rem max(1rem, env(safe-area-inset-bottom)) !important;
        align-items: center;
    }

    .age-gate-content {
        max-height: 90vh !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch;
        padding: 2rem 1.4rem !important;
        border-radius: 14px !important;
    }

    .age-gate-content h2 {
        font-size: 1.5rem !important;
        margin-bottom: 0.6rem !important;
    }

    .age-gate-content p {
        font-size: 0.88rem !important;
        line-height: 1.5 !important;
    }

    .age-gate-buttons {
        gap: 0.8rem !important;
        margin-top: 1.5rem !important;
    }

    .btn-enter-adult {
        min-height: 48px !important;
        font-size: 0.92rem !important;
        letter-spacing: 0.05em !important;
    }

    .btn-enter-adult:active {
        transform: scale(0.97) !important;
    }
}

/* 5. Hero & Badges de Confianza en Movil */
@media (max-width: 768px) {
    .hero-content {
        padding-top: 5rem !important;
        padding-bottom: 3.5rem !important;
    }

    .hero-headline {
        font-size: 2.1rem !important;
        line-height: 1.25 !important;
        letter-spacing: 0.02em !important;
    }

    .hero-subheadline {
        font-size: 0.94rem !important;
        line-height: 1.55 !important;
        margin-bottom: 1.8rem !important;
    }

    .hero-buttons {
        flex-direction: column !important;
        gap: 0.8rem !important;
        width: 100% !important;
    }

    .hero-buttons .btn {
        width: 100% !important;
        min-height: 46px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    .hero-trust-badges {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 0.6rem !important;
        margin-top: 1.8rem !important;
        padding-top: 1.2rem !important;
    }

    .hero-trust-badge {
        justify-content: center !important;
        font-size: 0.72rem !important;
        padding: 0.45rem 0.6rem !important;
        text-align: center !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }
}

/* 6. Barra de Filtros Deslizable en iPhone */
@media (max-width: 768px) {
    .catalog-filter-bar {
        padding: 0.9rem !important;
        gap: 0.8rem !important;
    }

    .category-pills {
        display: flex !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
        scrollbar-width: none !important;
        padding-bottom: 0.4rem !important;
        margin: 0 -0.9rem !important;
        padding-left: 0.9rem !important;
        padding-right: 0.9rem !important;
    }

    .category-pills::-webkit-scrollbar {
        display: none !important;
    }

    .cat-pill {
        flex-shrink: 0 !important;
        white-space: nowrap !important;
        font-size: 0.78rem !important;
        padding: 0.45rem 0.95rem !important;
    }

    .filter-controls {
        flex-direction: column !important;
        width: 100% !important;
        gap: 0.6rem !important;
    }

    .filter-search-box {
        width: 100% !important;
    }

    .filter-sort-select {
        width: 100% !important;
        min-height: 44px !important;
    }
}

/* 7. Catalogo en 2 Columnas Limpias para iPhone (SE, 12, 13, 14, 15, 16 Pro) */
@media (max-width: 680px) {
    .products-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 0.75rem !important;
    }

    .product-shop-card {
        border-radius: 8px !important;
        background: #0E0B0C !important;
    }

    .product-img-box {
        aspect-ratio: 1 / 1.05 !important;
        height: auto !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    }

    .product-badge-corner {
        top: 0.45rem !important;
        left: 0.45rem !important;
        font-size: 0.58rem !important;
        letter-spacing: 0.5px !important;
        padding: 0.2rem 0.5rem !important;
    }

    .product-quick-view-btn {
        display: none !important;
    }

    .product-info-box {
        padding: 0.75rem 0.65rem !important;
    }

    .product-cat-name {
        font-size: 0.62rem !important;
        letter-spacing: 1px !important;
        margin-bottom: 0.2rem !important;
    }

    .product-title {
        font-size: 0.9rem !important;
        line-height: 1.25 !important;
        margin-bottom: 0.35rem !important;
        display: -webkit-box !important;
        -webkit-line-clamp: 2 !important;
        -webkit-box-orient: vertical !important;
        overflow: hidden !important;
        height: 2.3em !important;
    }

    .product-subtitle-short {
        display: none !important;
    }

    .product-price-row {
        margin-bottom: 0.65rem !important;
        gap: 0.4rem !important;
        flex-wrap: wrap !important;
        align-items: baseline !important;
    }

    .product-current-price {
        font-size: 1.05rem !important;
        font-weight: 700 !important;
    }

    .product-compare-price {
        font-size: 0.76rem !important;
    }

    .btn-add-to-bag {
        padding: 0.65rem 0.5rem !important;
        font-size: 0.76rem !important;
        min-height: 44px !important;
        border-radius: 6px !important;
        letter-spacing: 0.02em !important;
    }

    .btn-add-to-bag span {
        font-size: 0.76rem !important;
    }
}

/* 8. Carrito Drawer & Checkout en iPhone (Safe Area Inferior para Home Bar) */
@media (max-width: 680px) {
    .cart-drawer {
        width: 100% !important;
        max-width: 100% !important;
        display: flex !important;
        flex-direction: column !important;
    }

    .cart-drawer-header {
        padding-top: max(1.2rem, calc(0.8rem + env(safe-area-inset-top))) !important;
        padding-left: 1.2rem !important;
        padding-right: 1.2rem !important;
    }

    .cart-items-container {
        padding: 1rem 1.2rem !important;
        -webkit-overflow-scrolling: touch;
    }

    .cart-drawer-footer {
        padding-left: 1.2rem !important;
        padding-right: 1.2rem !important;
        padding-bottom: max(1.5rem, calc(1rem + env(safe-area-inset-bottom))) !important;
    }

    .btn-checkout-primary {
        min-height: 48px !important;
        font-size: 0.95rem !important;
    }

    /* Modales en iOS como Bottom Sheet nativo */
    .checkout-modal-content, .product-modal-container {
        max-height: 88vh !important;
        width: 100% !important;
        border-radius: 18px 18px 0 0 !important;
        margin: auto 0 0 0 !important;
        padding-bottom: max(2rem, calc(1rem + env(safe-area-inset-bottom))) !important;
        -webkit-overflow-scrolling: touch !important;
    }

    .checkout-modal-header, .product-modal-header {
        position: sticky !important;
        top: 0 !important;
        background: #120E10 !important;
        z-index: 10 !important;
        padding-top: 0.8rem !important;
    }
}

/* 9. Secciones Ritual y Testimonios en iPhone */
@media (max-width: 768px) {
    .ritual-section, .testimonials-section, .collections-section {
        padding: 3.5rem 0 !important;
    }

    .ritual-grid, .testimonials-grid {
        grid-template-columns: 1fr !important;
        gap: 1.2rem !important;
        margin-top: 2rem !important;
    }

    .ritual-card, .testimonial-card {
        padding: 1.8rem 1.3rem !important;
    }

    .ritual-title {
        font-size: 1.18rem !important;
    }

    .testimonial-quote {
        font-size: 0.92rem !important;
        line-height: 1.65 !important;
    }
}


/* ==========================================================================
   YESSI CONCIERGE — ASISTENTE VIRTUAL & CONCIERGE DE ULTRA-LUJO
   ========================================================================== */

/* 1. Ajuste de posición para botón Back to Top */
.back-to-top {
    bottom: 7.8rem !important;
    right: 1.8rem !important;
    z-index: 9990 !important;
}

@media (max-width: 768px) {
    .back-to-top {
        bottom: calc(5.2rem + env(safe-area-inset-bottom)) !important;
        right: 1rem !important;
    }
}

/* 2. Botón Lanzador Flotante */
.yessi-launcher {
    position: fixed;
    bottom: calc(1.5rem + env(safe-area-inset-bottom));
    right: 1.5rem;
    z-index: 9998;
    background: linear-gradient(135deg, #260B12 0%, #12090C 100%);
    border: 1.5px solid #D4AF37;
    border-radius: 60px;
    padding: 0.65rem 1.6rem 0.65rem 0.75rem;
    display: flex;
    align-items: center;
    gap: 1.1rem;
    color: #FFFFFF;
    cursor: pointer;
    box-shadow: 0 12px 35px rgba(0, 0, 0, 0.75), 0 0 25px rgba(212, 175, 55, 0.3);
    transition: all 0.35s cubic-bezier(0.25, 1, 0.5, 1);
    backdrop-filter: blur(14px);
    outline: none;
}

.yessi-launcher:hover {
    transform: translateY(-4px) scale(1.02);
    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.85), 0 0 35px rgba(212, 175, 55, 0.5);
    border-color: #FFDF73;
}

.yessi-launcher.chat-open {
    background: #0E0B0C;
    border-color: rgba(212, 175, 55, 0.5);
    opacity: 0.85;
}

.yessi-launcher-avatar {
    width: 60px;
    height: 60px;
    border-radius: 50% !important;
    position: relative;
    flex-shrink: 0;
    overflow: hidden !important;
    clip-path: circle(50% at 50% 50%) !important;
    border: 2px solid #D4AF37 !important;
    box-shadow: 0 0 16px rgba(212, 175, 55, 0.45);
    background: #12090C;
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1 / 1;
}

.yessi-launcher-avatar-video,
.yessi-launcher-avatar video,
.yessi-launcher-avatar img {
    width: 100% !important;
    height: 100% !important;
    border-radius: 50% !important;
    object-fit: cover !important;
    object-position: center !important;
    display: block !important;
    pointer-events: none;
    transform: scale(1.04);
}

.yessi-launcher-text {
    display: flex;
    flex-direction: column;
    text-align: left;
    line-height: 1.25;
}

.yessi-launcher-text strong {
    font-family: var(--font-primary, 'Cinzel', serif);
    font-size: 1.05rem;
    color: #FFF;
    letter-spacing: 0.05em;
    font-weight: 700;
}

.yessi-launcher-text small {
    font-size: 0.82rem;
    color: #4CAF50;
    letter-spacing: 0.02em;
    font-weight: 500;
}

.yessi-unread-badge {
    position: absolute;
    top: -5px;
    right: -5px;
    background: #D9534F;
    color: #FFF;
    font-size: 0.7rem;
    font-weight: 700;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #0E0B0C;
}

/* 3. Ventana de Chat Flotante */
.yessi-chat-window {
    position: fixed;
    bottom: calc(5.5rem + env(safe-area-inset-bottom));
    right: 1.5rem;
    width: 385px;
    height: 540px;
    background: linear-gradient(165deg, rgba(22, 14, 17, 0.98) 0%, rgba(10, 8, 9, 0.98) 100%);
    border: 1px solid #D4AF37;
    border-radius: 18px;
    box-shadow: 0 25px 60px rgba(0, 0, 0, 0.85), 0 0 35px rgba(212, 175, 55, 0.2);
    backdrop-filter: blur(20px);
    z-index: 9999;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
    transform: translateY(20px) scale(0.95);
    transition: all 0.35s cubic-bezier(0.25, 1, 0.5, 1);
}

.yessi-chat-window.active {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0) scale(1);
}

/* Cabecera del Chat */
.yessi-chat-header {
    background: linear-gradient(135deg, rgba(46, 12, 19, 0.95) 0%, rgba(18, 9, 12, 0.95) 100%);
    border-bottom: 1px solid rgba(212, 175, 55, 0.25);
    padding: 0.9rem 1.1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.yessi-header-info {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.yessi-avatar-ring {
    position: relative;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: #4A0E17;
    border: 1px solid #D4AF37;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
}

.yessi-status-dot {
    position: absolute;
    bottom: -1px;
    right: -1px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #4CAF50;
    border: 2px solid #1A0D10;
    box-shadow: 0 0 6px #4CAF50;
}

.yessi-header-titles {
    display: flex;
    flex-direction: column;
}

.yessi-header-name {
    font-family: var(--font-primary, 'Cinzel', serif);
    font-size: 0.96rem;
    color: #FFF;
    letter-spacing: 0.05em;
    margin: 0;
}

.yessi-header-role {
    font-size: 0.73rem;
    color: #D4AF37;
    letter-spacing: 0.02em;
}

.yessi-btn-close {
    background: none;
    border: none;
    color: #A09890;
    font-size: 1.6rem;
    cursor: pointer;
    line-height: 1;
    padding: 0.2rem 0.5rem;
    border-radius: 50%;
    transition: all 0.2s ease;
}

.yessi-btn-close:hover {
    color: #FFF;
    background: rgba(255, 255, 255, 0.1);
}

/* Banner de Privacidad */
.yessi-privacy-banner {
    background: rgba(14, 11, 12, 0.85);
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    font-size: 0.72rem;
    color: #A89F96;
    text-align: center;
    padding: 0.45rem 0.8rem;
    letter-spacing: 0.02em;
}

/* Cuerpo de Mensajes */
.yessi-messages-body {
    flex-grow: 1;
    padding: 1rem;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    -webkit-overflow-scrolling: touch;
    scroll-behavior: smooth;
}

.yessi-messages-body::-webkit-scrollbar {
    width: 5px;
}

.yessi-messages-body::-webkit-scrollbar-thumb {
    background: rgba(212, 175, 55, 0.2);
    border-radius: 4px;
}

.yessi-msg-row {
    display: flex;
    width: 100%;
}

.yessi-bot-row {
    justify-content: flex-start;
}

.yessi-user-row {
    justify-content: flex-end;
}

.yessi-msg-bubble {
    max-width: 88%;
    padding: 0.85rem 1rem;
    border-radius: 12px;
    font-size: 0.88rem;
    line-height: 1.5;
    position: relative;
    word-break: break-word;
}

.yessi-bot-row .yessi-msg-bubble {
    background: rgba(26, 18, 21, 0.95);
    border: 1px solid rgba(212, 175, 55, 0.25);
    color: #ECE5DE;
    border-bottom-left-radius: 3px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.4);
}

.yessi-user-row .yessi-msg-bubble {
    background: linear-gradient(135deg, #57121D 0%, #330A11 100%);
    border: 1px solid rgba(212, 175, 55, 0.4);
    color: #FFFFFF;
    border-bottom-right-radius: 3px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.4);
}

.yessi-msg-bubble p {
    margin: 0;
}

.yessi-msg-bubble strong {
    color: #FFDF73;
}

.yessi-msg-bubble a {
    color: #D4AF37;
    text-decoration: underline;
    font-weight: 600;
}

.yessi-msg-time {
    display: block;
    font-size: 0.65rem;
    color: rgba(255, 255, 255, 0.4);
    text-align: right;
    margin-top: 0.35rem;
}

/* Typing Indicator */
.yessi-typing-bubble {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.6rem 0.9rem;
}

.typing-dot {
    width: 6px;
    height: 6px;
    background: #D4AF37;
    border-radius: 50%;
    animation: typingBounce 1.4s infinite ease-in-out;
}

.typing-dot:nth-child(2) { animation-delay: 0.2s; }
.typing-dot:nth-child(3) { animation-delay: 0.4s; }

@keyframes typingBounce {
    0%, 80%, 100% { transform: translateY(0); opacity: 0.4; }
    40% { transform: translateY(-5px); opacity: 1; }
}

/* Mini Productos Carousel en el Chat */
.yessi-products-carousel {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: 0.75rem;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    padding-top: 0.65rem;
}

.yessi-prod-card {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    background: rgba(10, 8, 9, 0.7);
    border: 1px solid rgba(212, 175, 55, 0.2);
    border-radius: 8px;
    padding: 0.45rem;
}

.yessi-prod-img {
    width: 48px;
    height: 48px;
    border-radius: 6px;
    object-fit: cover;
    cursor: pointer;
    flex-shrink: 0;
}

.yessi-prod-info {
    flex-grow: 1;
    min-width: 0;
}

.yessi-prod-title {
    font-size: 0.78rem;
    color: #FFF;
    margin: 0 0 0.15rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.yessi-prod-price {
    font-size: 0.75rem;
    color: #D4AF37;
    font-weight: 600;
    display: block;
    margin-bottom: 0.3rem;
}

.yessi-prod-actions {
    display: flex;
    gap: 0.4rem;
}

.yessi-btn-add {
    background: linear-gradient(135deg, #7A1726 0%, #450912 100%);
    border: 1px solid rgba(212, 175, 55, 0.4);
    color: #FFF;
    font-size: 0.7rem;
    padding: 0.25rem 0.6rem;
    border-radius: 4px;
    cursor: pointer;
    font-weight: 600;
    transition: all 0.2s ease;
}

.yessi-btn-add:hover {
    background: #911A2C;
    border-color: #D4AF37;
}

.yessi-btn-view {
    background: none;
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #DDD;
    font-size: 0.7rem;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    cursor: pointer;
}

/* Quick Replies Chips */
.yessi-chips-container {
    padding: 0.4rem 0.8rem;
    display: flex;
    gap: 0.4rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    background: rgba(14, 11, 12, 0.5);
    border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.yessi-chips-container::-webkit-scrollbar {
    display: none;
}

.yessi-chip {
    flex-shrink: 0;
    white-space: nowrap;
    background: rgba(28, 18, 22, 0.9);
    border: 1px solid rgba(212, 175, 55, 0.3);
    color: #D8D0C5;
    padding: 0.35rem 0.75rem;
    border-radius: 20px;
    font-size: 0.74rem;
    cursor: pointer;
    transition: all 0.2s ease;
}

.yessi-chip:hover {
    background: rgba(74, 14, 23, 0.7);
    color: #FFF;
    border-color: #D4AF37;
    transform: translateY(-1px);
}

/* Formulario de Entrada */
.yessi-chat-form {
    padding: 0.75rem 0.9rem;
    background: rgba(16, 12, 14, 0.98);
    border-top: 1px solid rgba(212, 175, 55, 0.2);
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

.yessi-user-input {
    flex-grow: 1;
    background: rgba(8, 6, 7, 0.8);
    border: 1px solid rgba(212, 175, 55, 0.3);
    border-radius: 20px;
    padding: 0.65rem 1rem;
    color: #FFF;
    font-size: 0.86rem;
    outline: none;
    transition: border-color 0.2s ease;
}

.yessi-user-input:focus {
    border-color: #D4AF37;
    box-shadow: 0 0 8px rgba(212, 175, 55, 0.25);
}

.yessi-btn-send {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: linear-gradient(135deg, #D4AF37 0%, #AA8010 100%);
    border: none;
    color: #0A0809;
    font-size: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s ease;
    flex-shrink: 0;
}

.yessi-btn-send:hover {
    transform: scale(1.08);
    box-shadow: 0 0 12px rgba(212, 175, 55, 0.5);
}

/* 4. Adaptación para Pantallas Móviles & iPhone */
@media (max-width: 680px) {
    .yessi-launcher {
        bottom: calc(1rem + env(safe-area-inset-bottom)) !important;
        right: 1rem !important;
        padding: 0.5rem 0.9rem 0.5rem 0.5rem !important;
    }

    .yessi-launcher-avatar {
        width: 34px !important;
        height: 34px !important;
        font-size: 1.1rem !important;
    }

    .yessi-launcher-text strong {
        font-size: 0.82rem !important;
    }

    .yessi-launcher-text small {
        font-size: 0.68rem !important;
    }

    .yessi-chat-window {
        bottom: calc(0.8rem + env(safe-area-inset-bottom)) !important;
        right: 0.75rem !important;
        left: 0.75rem !important;
        width: auto !important;
        height: 76vh !important;
        max-height: 560px !important;
        border-radius: 18px !important;
    }

    .yessi-user-input {
        font-size: 16px !important; /* Evita zoom forzado en Safari iPhone */
    }

    .yessi-msg-bubble {
        max-width: 92% !important;
        font-size: 0.86rem !important;
    }
}


/* ==========================================================================
   DISCRETION & PRIVACY SECTION (DESKTOP & BASE)
   ========================================================================== */
.discretion-card {
    padding: 3rem;
    border: 1px solid rgba(212, 175, 55, 0.3);
}

.discretion-grid {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: 3rem;
    align-items: center;
}

.discretion-heading {
    font-family: var(--font-serif);
    font-size: 2.2rem;
    color: #FFF;
    margin: 0.8rem 0 1.2rem;
}

.discretion-lead {
    color: var(--text-muted);
    font-size: 1rem;
    line-height: 1.7;
    margin-bottom: 1.5rem;
}

.discretion-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    color: #E0E0E0;
    font-size: 0.95rem;
}

.discretion-seal-box {
    background: rgba(0, 0, 0, 0.5);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 8px;
    padding: 2rem;
    text-align: center;
}

.discretion-seal-icon {
    font-size: 4rem;
    margin-bottom: 1rem;
}

.discretion-seal-title {
    font-family: var(--font-serif);
    font-size: 1.4rem;
    color: #D4AF37;
    margin-bottom: 0.5rem;
}

.discretion-seal-desc {
    font-size: 0.88rem;
    color: var(--text-muted);
    line-height: 1.6;
}

/* ==========================================================================
   SENIOR MOBILE VIEWPORT & ZERO-OVERFLOW OPTIMIZATION (<= 768px & <= 480px)
   ========================================================================== */
@media screen and (max-width: 768px) {
    /* Root Mobile Fluid Momentum Scrolling & Anti-Horizontal-Stall */
    html {
        scroll-behavior: auto !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        width: 100% !important;
    }

    body {
        scroll-behavior: auto !important;
        overflow-x: hidden !important;
        overflow-y: visible !important;
        width: 100% !important;
        -webkit-overflow-scrolling: touch !important;
    }

    /* Cinta de progreso sin blur en móvil para 120fps sostenidos */
    .rv-scroll-progress-wrap {
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        background: rgba(12, 6, 8, 0.95) !important;
    }

    /* Tarjetas de catálogo con aceleración de renderizado */
    .product-shop-card {
        contain: content;
        content-visibility: auto;
        contain-intrinsic-size: 0 380px;
    }

    /* Container Padding Tightening */
    .container {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    /* Header Compact Luxury Layout */
    .header {
        padding: 0.65rem 0 !important;
        width: 100% !important;
        max-width: 100vw !important;
        box-sizing: border-box !important;
    }

    .header-container {
        padding-left: 0.75rem !important;
        padding-right: 0.75rem !important;
        gap: 0.4rem !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    .header-logo {
        height: 36px !important;
        max-width: 82px !important;
        width: auto !important;
        object-fit: contain !important;
    }

    .header-actions {
        display: flex !important;
        align-items: center !important;
        gap: 0.35rem !important;
        flex-shrink: 0 !important;
    }

    .cart-btn-header {
        padding: 0.38rem 0.55rem !important;
        gap: 0.25rem !important;
        font-size: 0.85rem !important;
    }

    .cart-btn-header .cart-label {
        display: none !important;
    }

    .cart-btn-header .cart-icon {
        font-size: 1.05rem !important;
        line-height: 1 !important;
    }

    .cart-badge {
        font-size: 0.65rem !important;
        padding: 1px 5px !important;
        min-width: 16px !important;
    }

    .lang-dropdown-wrap .lang-btn {
        padding: 0.35rem 0.45rem !important;
        font-size: 0.78rem !important;
        gap: 0.25rem !important;
    }

    .theme-toggle-btn {
        width: 32px !important;
        height: 32px !important;
        font-size: 0.85rem !important;
    }

    .menu-toggle {
        width: 28px !important;
        height: 28px !important;
        padding: 0.25rem !important;
    }

    /* Hero Section Mobile Polish */
    .hero {
        padding-top: 5rem !important;
        overflow: hidden !important;
    }

    .hero-headline {
        font-size: 2.1rem !important;
        line-height: 1.25 !important;
        word-break: break-word !important;
    }

    .hero-subheadline {
        font-size: 0.95rem !important;
        margin-bottom: 1.8rem !important;
        padding: 0 0.5rem !important;
    }

    .hero-trust-badges {
        gap: 0.45rem !important;
        margin-top: 1.5rem !important;
        padding-top: 1rem !important;
        justify-content: center !important;
    }

    .hero-trust-badge {
        font-size: 0.72rem !important;
        padding: 0.3rem 0.65rem !important;
        border-radius: 20px !important;
    }

    /* Velvet Ritual Carousel / Cards */
    .ritual-grid {
        grid-template-columns: 1fr !important;
        gap: 1.25rem !important;
        margin-top: 2rem !important;
    }

    .ritual-card {
        padding: 1.8rem 1.4rem !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    /* Discretion & Confidentiality */
    .discretion-card {
        padding: 1.5rem 1.2rem !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .discretion-grid {
        grid-template-columns: 1fr !important;
        gap: 1.8rem !important;
        width: 100% !important;
    }

    .discretion-heading {
        font-size: 1.65rem !important;
    }

    .discretion-seal-box {
        padding: 1.4rem 1rem !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    /* Catalog Filter Bar */
    .catalog-filter-bar {
        padding: 0.85rem 0.75rem !important;
        gap: 0.85rem !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        overflow: hidden !important;
    }

    .category-pills {
        width: 100% !important;
        max-width: 100% !important;
        display: flex !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
        padding-bottom: 0.4rem !important;
        box-sizing: border-box !important;
    }

    .cat-pill {
        flex-shrink: 0 !important;
        white-space: nowrap !important;
        font-size: 0.8rem !important;
        padding: 0.4rem 0.85rem !important;
    }

    .filter-controls {
        width: 100% !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0.6rem !important;
    }

    .filter-search-box {
        width: 100% !important;
        display: flex !important;
    }

    .filter-search-input {
        width: 100% !important;
        min-width: 0 !important;
        font-size: 16px !important;
        box-sizing: border-box !important;
    }

    .filter-sort-select {
        width: 100% !important;
        min-width: 0 !important;
        font-size: 16px !important;
        box-sizing: border-box !important;
    }

    /* VIP Testimonials */
    .testimonials-grid {
        grid-template-columns: 1fr !important;
        gap: 1.25rem !important;
    }

    .testimonial-card {
        padding: 1.5rem 1.2rem !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    /* The Velvet Circle */
    .velvet-circle-box {
        padding: 2.2rem 1.25rem !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .circle-title {
        font-size: 1.8rem !important;
    }

    .circle-form {
        flex-direction: column !important;
        width: 100% !important;
        max-width: 100% !important;
        gap: 0.65rem !important;
    }

    .circle-input {
        width: 100% !important;
        min-width: 0 !important;
        font-size: 16px !important;
        box-sizing: border-box !important;
    }

    .circle-btn {
        width: 100% !important;
        justify-content: center !important;
        text-align: center !important;
    }

    /* Footer */
    .footer {
        padding: 3.5rem 0 2rem !important;
        overflow: hidden !important;
    }

    .footer-grid {
        grid-template-columns: 1fr !important;
        gap: 2rem !important;
    }

    .footer-links {
        flex-direction: column !important;
        gap: 1.2rem !important;
    }

    .footer-bottom {
        flex-direction: column !important;
        text-align: center !important;
        gap: 1.2rem !important;
        align-items: center !important;
        margin-top: 2rem !important;
        padding-top: 1.2rem !important;
    }

    .footer-bottom-copy {
        justify-content: center !important;
        flex-direction: column !important;
        gap: 0.6rem !important;
    }

    .footer-bottom-legal {
        justify-content: center !important;
        gap: 0.6rem !important;
    }

    .legal-modal-container {
        padding: 1.5rem 1rem !important;
        max-height: 92vh !important;
    }

    .legal-modal-body {
        max-height: 56vh !important;
    }

    .legal-modal-footer {
        flex-direction: column !important;
        width: 100% !important;
    }

    .legal-modal-footer .btn {
        width: 100% !important;
    }

    /* Modals & Bottom Sheets */
    .modal-backdrop {
        padding: 0.5rem !important;
    }

    .modal-container {
        width: 95vw !important;
        max-width: 95vw !important;
        padding: 1.5rem 1rem !important;
        max-height: 92vh !important;
        box-sizing: border-box !important;
    }

    .modal-close-btn {
        top: 0.8rem !important;
        right: 0.8rem !important;
        width: 32px !important;
        height: 32px !important;
        font-size: 1.5rem !important;
    }

    .form-row-2 {
        grid-template-columns: 1fr !important;
        gap: 0.75rem !important;
    }

    .form-group input,
    .form-group select,
    .form-group textarea {
        font-size: 16px !important;
    }

    .product-modal-container {
        width: 95vw !important;
        max-width: 95vw !important;
        padding: 1.4rem 1rem 1.8rem !important;
        max-height: 90vh !important;
        box-sizing: border-box !important;
    }

    .product-modal-grid {
        grid-template-columns: 1fr !important;
        gap: 1.2rem !important;
    }

    .modal-product-img {
        max-height: 260px !important;
    }

    /* Cart Drawer Mobile Full Width */
    .cart-drawer {
        width: 100vw !important;
        max-width: 100vw !important;
    }

    .coupon-input {
        font-size: 16px !important;
    }

    /* Floating Concierge Chat Window */
    .yessi-chat-window {
        left: 0.5rem !important;
        right: 0.5rem !important;
        width: auto !important;
        max-width: calc(100vw - 1rem) !important;
    }
}

@media screen and (max-width: 480px) {
    .hero-headline {
        font-size: 1.8rem !important;
    }

    .hero-buttons {
        flex-direction: column !important;
        width: 100% !important;
        gap: 0.65rem !important;
    }

    .hero-buttons .btn {
        width: 100% !important;
        justify-content: center !important;
        text-align: center !important;
    }
}


/* ==========================================================================
   RUBY CONCIERGE — AVATAR CIRCULAR EN VIDEO DE ALTA DEFINICIÓN
   ========================================================================== */
.yessi-launcher-avatar {
    width: 60px;
    height: 60px;
    border-radius: 50% !important;
    position: relative;
    flex-shrink: 0;
    overflow: hidden !important;
    clip-path: circle(50% at 50% 50%) !important;
    border: 2px solid #D4AF37 !important;
    box-shadow: 0 0 18px rgba(212, 175, 55, 0.5), inset 0 0 8px rgba(0, 0, 0, 0.6);
    background: #12090C !important;
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1 / 1;
    transition: transform 0.35s cubic-bezier(0.175, 0.885, 0.32, 1.275), box-shadow 0.35s ease, border-color 0.3s ease;
}

.yessi-launcher:hover .yessi-launcher-avatar {
    transform: scale(1.08);
    box-shadow: 0 0 25px rgba(255, 215, 0, 0.75), inset 0 0 10px rgba(0, 0, 0, 0.8);
    border-color: #FFD700 !important;
}

.yessi-launcher-avatar-video,
.yessi-launcher-avatar video {
    width: 100% !important;
    height: 100% !important;
    border-radius: 50% !important;
    object-fit: cover !important;
    object-position: center !important;
    display: block !important;
    pointer-events: none;
    transform: scale(1.04);
}

.yessi-avatar-ring {
    position: relative;
    width: 44px;
    height: 44px;
    border-radius: 50% !important;
    overflow: hidden !important;
    clip-path: circle(50% at 50% 50%) !important;
    border: 2px solid #D4AF37 !important;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.6), 0 0 12px rgba(212, 175, 55, 0.4);
    background: #12090C !important;
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1 / 1;
}

.yessi-header-avatar {
    position: relative;
    width: 100%;
    height: 100%;
    border-radius: 50% !important;
    overflow: hidden !important;
    display: flex;
    align-items: center;
    justify-content: center;
}

.yessi-header-avatar-video,
.yessi-header-avatar video {
    width: 100% !important;
    height: 100% !important;
    border-radius: 50% !important;
    object-fit: cover !important;
    object-position: center !important;
    display: block !important;
    pointer-events: none;
    transform: scale(1.04);
}

.yessi-status-dot {
    position: absolute;
    bottom: -1px;
    right: -1px;
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: #25D366;
    border: 2px solid #1A0D10;
    box-shadow: 0 0 6px #25D366;
    z-index: 10;
}


/* ==========================================================================
   OPTIMIZACIONES MÓVILES DE RENDIMIENTO & MEMORIA (ANTI-CRASH)
   ========================================================================== */
@media (max-width: 768px) {
    /* Desactivar capas compuestas innecesarias que saturan la VRAM en iOS */
    .hero-bg-video {
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100% !important;
        transform: none !important;
        object-fit: cover !important;
        backface-visibility: hidden;
        -webkit-backface-visibility: hidden;
        pointer-events: none !important;
    }

    .footer-bg-video {
        top: 50% !important;
        left: 50% !important;
        transform: translate3d(-50%, -50%, 0) !important;
        backface-visibility: hidden;
        -webkit-backface-visibility: hidden;
        pointer-events: none !important;
    }

    /* Reducir desenfoques excesivos en móvil para ahorrar GPU */
    .glass,
    .age-gate-content,
    .modal-container {
        backdrop-filter: blur(8px) !important;
        -webkit-backdrop-filter: blur(8px) !important;
    }

    /* Aislamiento de capas de renderizado en catálogo */
    .product-card {
        contain: content;
    }

    /* Scroll fluido nativo con momentum sin fugas de memoria */
    body {
        -webkit-overflow-scrolling: touch;
    }
}


/* ==========================================================================
   EPIC LUXURY UI UPGRADES (VIP TOAST, MOOD BAR, UNBOXING SIMULATOR, SHIMMER)
   ========================================================================== */

/* Shimmer de Oro Líquido en Botones Primarios */
@keyframes goldShimmerSweep {
    0% { background-position: -200% 0; }
    100% { background-position: 200% 0; }
}

.btn-primary, .btn-gold {
    position: relative;
    overflow: hidden;
    background-size: 200% 100% !important;
    background-image: linear-gradient(120deg, #D4AF37 0%, #FFDF73 40%, #FFF5C0 50%, #FFDF73 60%, #D4AF37 100%) !important;
    color: #0A0A0B !important;
    font-weight: 600 !important;
    box-shadow: 0 4px 18px rgba(212, 175, 55, 0.35) !important;
    transition: transform 0.25s ease, box-shadow 0.25s ease !important;
}

.btn-primary:hover, .btn-gold:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(212, 175, 55, 0.55) !important;
    animation: goldShimmerSweep 2s infinite linear;
}

/* Curaduría por Experiencia (Mood Bar) */
.experience-mood-bar {
    margin-bottom: 1.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.8rem;
}

.mood-label {
    font-size: 0.82rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: #D4AF37;
    font-weight: 600;
}

.mood-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    justify-content: center;
}

.mood-pill {
    background: rgba(20, 18, 18, 0.7);
    border: 1px solid rgba(212, 175, 55, 0.3);
    color: #E6E1D8;
    padding: 0.5rem 1.1rem;
    border-radius: 30px;
    font-size: 0.84rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
    backdrop-filter: blur(8px);
}

.mood-pill:hover,
.mood-pill.active {
    background: #D4AF37;
    color: #080808;
    border-color: #FFD700;
    font-weight: 600;
    box-shadow: 0 0 15px rgba(212, 175, 55, 0.45);
    transform: translateY(-1px);
}

/* Ribbons de Descuento en Tarjetas */
.product-discount-ribbon {
    position: absolute;
    top: 12px;
    right: 12px;
    background: linear-gradient(135deg, #A82020 0%, #E63946 100%);
    color: #FFFFFF;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.5px;
    padding: 4px 9px;
    border-radius: 4px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.5);
    z-index: 3;
}

/* Simulador de Empaque Blindado VIP */
.discretion-simulator-card {
    background: rgba(14, 12, 12, 0.85);
    border: 1px solid rgba(212, 175, 55, 0.4);
    border-radius: 14px;
    padding: 2rem;
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.7), 0 0 20px rgba(212, 175, 55, 0.12);
    backdrop-filter: blur(12px);
}

.simulator-header {
    text-align: center;
    margin-bottom: 1.4rem;
}

.simulator-badge {
    display: inline-block;
    font-size: 0.7rem;
    letter-spacing: 2px;
    color: #D4AF37;
    border: 1px solid rgba(212, 175, 55, 0.5);
    padding: 3px 10px;
    border-radius: 20px;
    margin-bottom: 0.6rem;
    text-transform: uppercase;
}

.simulator-title {
    font-family: var(--font-serif);
    font-size: 1.4rem;
    color: #FFF;
    margin-bottom: 0.3rem;
}

.simulator-subtitle {
    font-size: 0.85rem;
    color: var(--text-muted);
}

.simulator-steps-nav {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.5rem;
    margin-bottom: 1.4rem;
}

.sim-step-btn {
    background: rgba(25, 22, 22, 0.6);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 8px;
    padding: 0.6rem 0.4rem;
    color: #DDD;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.3rem;
    transition: all 0.25s ease;
}

.sim-step-btn .step-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.1);
    font-size: 0.75rem;
    font-weight: 700;
}

.sim-step-btn .step-label {
    font-size: 0.72rem;
    font-weight: 500;
    text-align: center;
}

.sim-step-btn:hover,
.sim-step-btn.active {
    background: rgba(212, 175, 55, 0.15);
    border-color: #D4AF37;
    color: #FFDF73;
}

.sim-step-btn.active .step-num {
    background: #D4AF37;
    color: #0A0A0B;
}

.simulator-stage {
    background: rgba(8, 8, 8, 0.8);
    border: 1px dashed rgba(212, 175, 55, 0.3);
    border-radius: 10px;
    padding: 1.5rem;
}

.stage-card {
    display: flex;
    gap: 1.2rem;
    align-items: flex-start;
    transition: opacity 0.2s ease;
}

.stage-icon-wrap {
    font-size: 2.5rem;
    line-height: 1;
    background: rgba(212, 175, 55, 0.1);
    border: 1px solid rgba(212, 175, 55, 0.3);
    border-radius: 12px;
    padding: 1rem;
    flex-shrink: 0;
}

.stage-details {
    flex-grow: 1;
}

.stage-headline {
    color: #D4AF37;
    font-size: 1.15rem;
    font-family: var(--font-serif);
    margin-bottom: 0.4rem;
}

.stage-desc {
    color: #DDD;
    font-size: 0.88rem;
    line-height: 1.5;
    margin-bottom: 0.8rem;
}

.stage-specs-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.spec-pill {
    background: rgba(212, 175, 55, 0.1);
    border: 1px solid rgba(212, 175, 55, 0.35);
    color: #FAF5E9;
    font-size: 0.73rem;
    padding: 3px 8px;
    border-radius: 4px;
}

/* VIP Floating Toast */
.vip-toast-container {
    position: fixed;
    top: 24px;
    right: 24px;
    z-index: 100000;
    display: flex;
    flex-direction: column;
    gap: 10px;
    pointer-events: none;
    max-width: 420px;
    width: 90vw;
}

.vip-toast-item {
    background: rgba(14, 12, 12, 0.95);
    border: 1px solid rgba(212, 175, 55, 0.65);
    border-radius: 12px;
    padding: 1rem;
    display: flex;
    align-items: center;
    gap: 12px;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.85), 0 0 20px rgba(212, 175, 55, 0.25);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    transform: translateY(-20px) scale(0.95);
    opacity: 0;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    pointer-events: auto;
}

.vip-toast-item.visible {
    transform: translateY(0) scale(1);
    opacity: 1;
}

.vip-toast-thumb {
    width: 48px;
    height: 48px;
    border-radius: 8px;
    object-fit: cover;
    border: 1px solid rgba(212, 175, 55, 0.4);
    flex-shrink: 0;
}

.vip-toast-thumb-icon {
    font-size: 1.8rem;
    flex-shrink: 0;
}

.vip-toast-body {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.vip-toast-title {
    color: #FFD700;
    font-weight: 700;
    font-size: 0.88rem;
    letter-spacing: 0.5px;
}

.vip-toast-sub {
    color: #FAF5E9;
    font-size: 0.8rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 220px;
}

.vip-toast-btn {
    background: #D4AF37;
    color: #000;
    border: none;
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 0.76rem;
    font-weight: 700;
    cursor: pointer;
    flex-shrink: 0;
    transition: background 0.2s;
}

.vip-toast-btn:hover {
    background: #FFF;
}

.vip-toast-close {
    background: none;
    border: none;
    color: #888;
    font-size: 1.2rem;
    cursor: pointer;
    padding: 0 4px;
    transition: color 0.2s;
}

.vip-toast-close:hover {
    color: #FFF;
}

@media (max-width: 768px) {
    .vip-toast-container {
        top: 12px;
        right: 5vw;
        width: 90vw;
    }
    .discretion-simulator-card {
        padding: 1.25rem 1rem !important;
    }
    .stage-card {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }
    .stage-specs-grid {
        justify-content: center;
    }
}


@media (max-width: 680px) {
    .yessi-launcher {
        bottom: calc(1rem + env(safe-area-inset-bottom)) !important;
        right: 1rem !important;
        padding: 0.5rem 0.9rem 0.5rem 0.5rem !important;
        border-radius: 40px !important;
        gap: 0.6rem !important;
    }

    .yessi-launcher-avatar {
        width: 44px !important;
        height: 44px !important;
        border-width: 1.5px !important;
    }

    .yessi-launcher-avatar-video {
        width: 100% !important;
        height: 100% !important;
    }

    .yessi-launcher-text strong {
        font-size: 0.82rem !important;
    }

    .yessi-launcher-text small {
        font-size: 0.68rem !important;
    }
}

/* ==========================================================================
   BOTÓN FLOTANTE DE MÚSICA VELVET (AUTO-PLAY SCROLL & AMBIENTE DE LUJO)
   ========================================================================== */
.ambient-music-btn {
    position: fixed;
    bottom: calc(1.5rem + env(safe-area-inset-bottom));
    left: 1.5rem;
    z-index: 9997;
    background: linear-gradient(135deg, rgba(38, 11, 18, 0.92) 0%, rgba(18, 9, 12, 0.96) 100%);
    border: 1.5px solid rgba(212, 175, 55, 0.65);
    border-radius: 50px;
    padding: 0.55rem 1.15rem;
    display: flex;
    align-items: center;
    gap: 0.65rem;
    color: #FFFFFF;
    cursor: pointer;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.75), 0 0 15px rgba(212, 175, 55, 0.25);
    backdrop-filter: blur(14px);
    transition: all 0.35s cubic-bezier(0.25, 1, 0.5, 1);
    outline: none;
    font-size: 0.82rem;
    font-weight: 500;
}

.ambient-music-btn:hover {
    transform: translateY(-3px) scale(1.03);
    border-color: #FFDF73;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.85), 0 0 25px rgba(212, 175, 55, 0.45);
}

.ambient-music-btn.playing {
    border-color: #D4AF37;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.75), 0 0 18px rgba(212, 175, 55, 0.4);
}

.ambient-music-btn.muted {
    opacity: 0.7;
    border-color: rgba(255, 255, 255, 0.25);
    background: rgba(18, 12, 14, 0.9);
}

.ambient-music-btn .music-icon-sound {
    font-size: 1rem;
    line-height: 1;
}

.ambient-music-btn .music-soundwaves {
    display: flex;
    align-items: center;
    gap: 3px;
    height: 14px;
}

.ambient-music-btn .sw-bar {
    width: 2.5px;
    height: 4px;
    background: #D4AF37;
    border-radius: 2px;
    transition: height 0.2s ease;
}

.ambient-music-btn.playing .sw-bar-1 {
    animation: velvetSoundwave 1s ease-in-out infinite alternate;
}
.ambient-music-btn.playing .sw-bar-2 {
    animation: velvetSoundwave 1.2s ease-in-out 0.2s infinite alternate;
}
.ambient-music-btn.playing .sw-bar-3 {
    animation: velvetSoundwave 0.8s ease-in-out 0.4s infinite alternate;
}

@keyframes velvetSoundwave {
    0% { height: 4px; }
    50% { height: 14px; background: #FFD700; }
    100% { height: 6px; }
}

@media (max-width: 768px) {
    .ambient-music-btn {
        bottom: calc(1rem + env(safe-area-inset-bottom)) !important;
        left: 1rem !important;
        padding: 0.5rem 0.85rem !important;
        font-size: 0.75rem !important;
    }
    .ambient-music-btn .music-btn-text {
        display: none !important;
    }
}


/* ==========================================================================
   RED VELVET — ROYAL BAROQUE BUTTONS & SOCIAL MEDALLIONS (ULTRA-LUXURY SUITE)
   Diseño inspirado en el arte barroco real con terciopelo rubí y filigrana de oro.
   ========================================================================== */
.btn-royal-velvet {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    max-width: 320px;
    height: 70px;
    padding: 0 16px 0 12px;
    background: transparent;
    border: none;
    cursor: pointer;
    text-decoration: none;
    box-sizing: border-box;
    outline: none;
    user-select: none;
    transition: transform 0.28s cubic-bezier(0.2, 0.8, 0.2, 1), filter 0.28s ease;
    filter: drop-shadow(0 8px 18px rgba(0, 0, 0, 0.85)) drop-shadow(0 0 10px rgba(212, 175, 55, 0.22));
    margin: 0.5rem 0.25rem;
}

.btn-royal-velvet:hover {
    transform: translateY(-2px) scale(1.025);
    filter: drop-shadow(0 12px 26px rgba(0, 0, 0, 0.95)) drop-shadow(0 0 22px rgba(212, 175, 55, 0.5));
}

.btn-royal-velvet:active {
    transform: translateY(1px) scale(0.98);
}

.btn-royal-frame {
    position: absolute;
    top: -12px;
    left: -10px;
    width: calc(100% + 20px);
    height: calc(100% + 24px);
    pointer-events: none;
    z-index: 1;
}

.btn-royal-body {
    position: absolute;
    top: 5px;
    left: 6px;
    right: 6px;
    bottom: 5px;
    border-radius: 36px;
    background: radial-gradient(ellipse at 50% 25%, #940018 0%, #60000e 55%, #300007 100%);
    box-shadow: 
      inset 0 2px 6px rgba(255, 235, 170, 0.3),
      inset 0 -2px 6px rgba(0, 0, 0, 0.85);
    z-index: 2;
    overflow: hidden;
}

.btn-royal-body::after {
    content: '';
    position: absolute;
    top: -50%;
    left: -70%;
    width: 45%;
    height: 200%;
    background: linear-gradient(
      90deg, 
      transparent 0%, 
      rgba(255, 240, 180, 0.15) 45%, 
      rgba(255, 255, 255, 0.35) 50%, 
      rgba(255, 240, 180, 0.15) 55%, 
      transparent 100%
    );
    transform: rotate(25deg);
    transition: left 0.75s ease;
    pointer-events: none;
}

.btn-royal-velvet:hover .btn-royal-body::after {
    left: 140%;
}

.btn-royal-content {
    position: relative;
    z-index: 3;
    display: flex;
    align-items: center;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

.btn-royal-coin {
    width: 48px;
    height: 48px;
    min-width: 48px;
    border-radius: 50%;
    margin-right: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    filter: drop-shadow(0 3px 6px rgba(0, 0, 0, 0.8));
}

.btn-royal-coin img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: 50%;
    display: block;
}

.btn-royal-text-wrap {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-right: 6px;
}

.btn-royal-title {
    font-family: 'Cinzel', 'Playfair Display', serif;
    font-size: 0.96rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    background: linear-gradient(180deg, #FFF7DC 0%, #F5D77F 35%, #D4AF37 70%, #9E7014 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.95)) drop-shadow(0 0 8px rgba(212, 175, 55, 0.4));
    line-height: 1.1;
    white-space: nowrap;
}

.btn-royal-star {
    color: #D4AF37;
    font-size: 0.85rem;
    margin-left: 6px;
    filter: drop-shadow(0 0 6px rgba(212, 175, 55, 0.8));
}

/* Redes Sociales Circulares de Lujo */
.social-circles-wrap {
    display: flex;
    gap: 0.85rem;
    align-items: center;
    justify-content: center;
    flex-wrap: nowrap;
    margin: 1.25rem auto 0.75rem auto;
    max-width: 100%;
}

.btn-social-circle {
    width: 50px;
    height: 50px;
    min-width: 50px;
    border-radius: 50%;
    display: inline-block;
    transition: transform 0.28s cubic-bezier(0.2, 0.8, 0.2, 1), filter 0.28s ease;
    filter: drop-shadow(0 6px 14px rgba(0, 0, 0, 0.8)) drop-shadow(0 0 10px rgba(212, 175, 55, 0.3));
    outline: none;
    text-decoration: none;
    flex-shrink: 0;
}

.btn-social-circle img {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    display: block;
    object-fit: cover;
}

.btn-social-circle:hover {
    transform: translateY(-4px) scale(1.12);
    filter: drop-shadow(0 10px 22px rgba(0, 0, 0, 0.95)) drop-shadow(0 0 20px rgba(212, 175, 55, 0.75));
}

@media (max-width: 480px) {
    .social-circles-wrap {
        gap: 0.5rem;
        flex-wrap: nowrap;
        margin: 1rem auto 0.5rem auto;
    }
    .btn-social-circle {
        width: 44px;
        height: 44px;
        min-width: 44px;
    }
    .btn-royal-img {
        width: 280px;
    }
    .btn-royal-asset {
        margin: 0.25rem 0;
    }
}

/* ==========================================================================
   RED VELVET — ROYAL BAROQUE MASTER BUTTONS (ULTRA-LUXURY ASSETS)
   ========================================================================== */
.btn-royal-asset {
    display: inline-block;
    background: transparent;
    border: none;
    padding: 0;
    margin: 0.5rem 0.6rem;
    cursor: pointer;
    text-decoration: none;
    transition: transform 0.28s cubic-bezier(0.2, 0.8, 0.2, 1), filter 0.28s ease;
    filter: drop-shadow(0 10px 22px rgba(0, 0, 0, 0.9)) drop-shadow(0 0 16px rgba(212, 175, 55, 0.35));
    user-select: none;
    vertical-align: middle;
    outline: none;
    -webkit-tap-highlight-color: transparent;
}

.btn-royal-asset:hover {
    transform: translateY(-3px) scale(1.035);
    filter: drop-shadow(0 14px 30px rgba(0, 0, 0, 0.95)) drop-shadow(0 0 26px rgba(212, 175, 55, 0.7));
}

.btn-royal-asset:active {
    transform: translateY(1px) scale(0.985);
    filter: drop-shadow(0 6px 14px rgba(0, 0, 0, 0.85)) drop-shadow(0 0 14px rgba(212, 175, 55, 0.4));
}

.btn-royal-img {
    display: block;
    width: 330px;
    height: auto;
    max-height: 140px;
    object-fit: contain;
    pointer-events: none;
}

@media (max-width: 768px) {
    .btn-royal-img {
        width: 290px;
    }
}

@media (max-width: 480px) {
    .btn-royal-img {
        width: 260px;
    }
    .btn-royal-asset {
        margin: 0.35rem 0;
    }
}
