:root {
    /* --- PALETA OSCURA (DEFAULT) --- */
    --bg-primary: #000000;
    --bg-secondary: #0a0a0a;
    --panel-bg: #111111;
    --panel-hover: #1a1a1a;
    --text-primary: #ffffff;
    --text-secondary: #cccccc;
    --border-color: rgba(255, 255, 255, 0.05);
    
    --gold: #d4af37;
    --gold-gradient: linear-gradient(to right, #bf953f, #fcf6ba, #b38728, #fbf5b7, #aa771c);
}

body.light-mode {
    /* --- PALETA CLARA --- */
    --bg-primary: #f5f5f7;
    --bg-secondary: #ffffff;
    --panel-bg: #ffffff;
    --panel-hover: #f0f0f5;
    --text-primary: #1c1c1e;
    --text-secondary: #666666;
    --border-color: #d1d1d6;
    
    --gold: #FF8C00; /* Naranja en lugar de Dorado */
    --gold-gradient: linear-gradient(to right, #FF8C00, #FFA500, #FF7F50, #FF8C00);
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    background-color: var(--bg-primary);
}

body {
    font-family: 'Montserrat', sans-serif;
    background-color: var(--bg-secondary);
    color: var(--text-primary);
    transition: background-color 0.3s, color 0.3s;
}

/* Aplicamos la fuente elegante a los títulos */
h1, h2, h3, .logo {
    font-family: 'Playfair Display', serif;
    letter-spacing: 1px;
}

/* LA MAGIA DEL DEGRADADO EN LAS LETRAS */
.gold-text {
    background: var(--gold-gradient);
    -webkit-background-clip: text; /* Para Chrome, Safari y Edge */
    background-clip: text;         /* PROPIEDAD ESTÁNDAR (Añade esta línea) */
    -webkit-text-fill-color: transparent;
    display: inline-block;
    font-weight: bold;
}

.navbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 50px; /* Un poco más compacto */
    position: fixed; /* FIXED para que te siga al bajar */
    top: 0;
    width: 100%;
    z-index: 1000; /* Siempre encima de todo */
    
    /* Efecto Vidrio Premium */
    background: var(--bg-secondary);
    opacity: 0.95;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--border-color);
}

.logo {
    /* Font styles removed or kept for fallback, but main is image */
    display: flex;
    align-items: center;
}

.logo img {
    height: 65px; /* Adjust as needed */
    width: auto;
    transition: transform 0.3s ease;
}

.logo img:hover {
    transform: scale(1.05);
    filter: drop-shadow(0 0 10px rgba(212, 175, 55, 0.3));
}

.logo span {
    color: white;
    font-size: 1rem;
    font-weight: normal;
}

.nav-links {
    list-style: none;
    display: flex;
    gap: 30px;
}

.nav-links a {
    text-decoration: none;
    color: var(--text-primary);
    font-size: 0.9rem;
    text-transform: uppercase;
    transition: color 0.3s;
}

.nav-links a:hover, .nav-links a.active {
    color: var(--gold); 
}

/* --- 2. HERO SECTION (CORREGIDO PARA QUE NO CHOQUE) --- */
.hero-section {
    height: 100vh;
    width: 100%;
    display: flex;
    align-items: center;      /* Centra verticalmente */
    justify-content: flex-end; /* Alinea a la derecha */
    
    /* ESTA ES LA CLAVE: */
    padding-right: 8%;         
    padding-bottom: 180px;     /* <--- RESERVA ESPACIO PARA EL CARRUSEL ABAJO */
    
    position: relative;
    background: linear-gradient(to left, rgba(0, 0, 0, 0.9) 30%, transparent 70%), 
                url('fondo1.jpg');
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
}


.carousel-arrow:hover {
    opacity: 1;
    color: var(--gold);
    transform: scale(1.2);
}

/* Posicionamiento absoluto opcional para que floten sobre las tarjetas */
.carousel-arrow.prev { margin-right: -10px; }
.carousel-arrow.next { margin-left: -10px; }

/* ESTILO DE LA TARJETA (Actualizado para el look de la imagen) */
.review-card {
    background: var(--panel-bg);
    border: 1px solid var(--border-color);
    padding: 12px 20px; /* Reducimos el relleno de arriba/abajo (antes era 15px o 20px) */
    
    width: 280px;
    min-width: 280px;
    height: fit-content; /* Se ajusta al contenido */
    max-height: 140px;   /* <--- LIMITE DE ALTURA PARA QUE NO CREZCA DEMASIADO */
    border-radius: 12px;
}

/* Opcional: Reducir un poco el margen del texto para compactar más */
.review-card .stars { margin-bottom: 2px !important; }
.review-card .review-text { margin-bottom: 5px !important; }

.hero-content {
    text-align: right; /* Alinea el texto a la derecha */
    max-width: 800px;
    z-index: 2;
}

.hero-content h1 {
    font-size: 5rem; /* Tamaño grande y elegante */
    line-height: 1;  /* Texto más pegadito como en la imagen */
    margin-bottom: 30px;
    text-transform: uppercase;
}

/* --- BOTÓN ESTILO "SOLID GOLD" (RELLENO) - FORZADO --- */
.btn-primary, .hero-content .btn-primary {
    display: inline-block;
    padding: 15px 45px;
    background: #d4af37 !important;   /* Fondo Dorado FORCE */
    color: #000000 !important;         /* Letras Negras FORCE */
    border: 2px solid #d4af37 !important;
    text-decoration: none;
    font-weight: bold;
    letter-spacing: 2px;
    text-transform: uppercase;
    transition: all 0.3s ease-in-out;
    box-shadow: 0 4px 15px rgba(212, 175, 55, 0.3);
}

.btn-primary:hover, .hero-content .btn-primary:hover {
    background: transparent !important;  /* Fondo transparente */
    color: #d4af37 !important;           /* Letras Doradas (Visible sobre negro) */
    box-shadow: 0 0 15px rgba(212, 175, 55, 0.8) !important; /* Brillo más fuerte */
    transform: translateY(-2px);
}



.google-icon {
    position: absolute;
    top: 10px;
    right: 10px;
    font-weight: bold;
    background: white;
    color: #333;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    text-align: center;
    font-size: 12px;
    line-height: 18px;
}

.stars {
    color: #d4af37;
    margin-bottom: 5px;
    font-size: 1rem;
}

.author {
    display: block;
    margin-top: 8px;
    font-weight: bold;
    color: #fff;
    font-size: 0.75rem;
    opacity: 0.8;
}

.services-section {
    padding: 150px 5% 80px 5%; /* Aumentamos el padding superior de 80px a 150px */
    background-color: #0a0a0a; /* Fondo negro profundo */
    text-align: center;
    position: relative;
    z-index: 1;
}

.section-title {
    font-family: 'Playfair Display', serif;
    font-size: 3rem;
    margin-bottom: 50px;
    color: white;
}

.services-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); 
    gap: 30px;
    max-width: 1200px;
    margin: 0 auto;
}

/* TARJETA MODERNA */
.service-card {
    background: #111;          /* Fondo casi negro */
    border: 1px solid #333;    /* Borde gris sutil (apagado) */
    border-radius: 12px;
    padding: 20px;
    transition: all 0.4s ease; /* Animación suave */
    position: relative;
    overflow: hidden;
}

/* AL PASAR EL MOUSE (HOVER) */
.service-card:hover {
    transform: translateY(-10px); /* Flota hacia arriba */
    border-color: var(--gold);    /* ¡Aquí aparece el borde dorado! */
    box-shadow: 0 10px 30px rgba(212, 175, 55, 0.15); /* Resplandor dorado */
}

/* IMAGEN CON ZOOM */
.card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
    filter: grayscale(30%); /* Un poco desaturada para ser elegante */
}

.service-card:hover .card-image img {
    transform: scale(1.1); /* Zoom suave */
    filter: grayscale(0%); /* Color completo al pasar el mouse */
}

/* BOTÓN FINO (OUTLINE) */
.btn-small {
    padding: 10px 30px;
    background-color: transparent; /* Fondo transparente */
    border: 1px solid var(--gold); /* Borde dorado */
    color: var(--gold);            /* Letras doradas */
    font-weight: bold;
    cursor: pointer;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: 0.8rem;
    transition: all 0.3s;
    margin-top: 10px;
}

.btn-small:hover {
    background-color: var(--gold); /* Se rellena de dorado */
    color: black;                  /* Letras negras */
    box-shadow: 0 0 15px rgba(212, 175, 55, 0.5); /* Brillo */
}

footer {
    background-color: #050505; 
    color: #ccc;
    padding-top: 60px;
    border-top: 1px solid #333; 
}

.footer-container {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap; 
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 50px;
    gap: 40px;
}

.footer-col {
    flex: 1; 
    min-width: 250px;
}

.footer-col h3 {
    color: #d4af37;
    margin-bottom: 20px;
    font-size: 1.2rem;
    letter-spacing: 1px;
}

.footer-col p {
    margin-bottom: 10px;
    line-height: 1.6;
    font-size: 0.9rem;
}

.phone {
    color: white;
    font-weight: bold;
    margin-top: 15px;
}

.footer-bottom {
    margin-top: 50px;
    padding: 20px 0;
    text-align: center;
    background-color: #000;
    font-size: 0.8rem;
    color: #666;
}

@media (max-width: 768px) {
    .navbar {
        flex-direction: column;
        background: #0a0a0a; 
        padding: 15px;
        position: relative; 
    }

    .nav-links {
        margin-top: 15px;
        flex-wrap: wrap;
        justify-content: center;
        gap: 15px;
    }

    .nav-links a {
        font-size: 0.8rem;
    }

    .hero-section {
        align-items: center; 
        justify-content: flex-start; 
        padding-top: 40px;
        padding-right: 0;
        text-align: center;
        height: auto; 
        min-height: 100vh;
    }

    .hero-content {
        text-align: center;
        margin: 0 20px 40px 20px; 
    }

    .hero-content h1 {
        font-size: 2.5rem; 
    }

    

    .services-section {
        padding: 50px 20px;
    }
    
    .section-title {
        font-size: 2rem;
    }

    .footer-container {
        flex-direction: column;
        text-align: center;
        gap: 30px;
    }
}

.modal {
    display: none; 
    position: fixed; 
    z-index: 1000; 
    left: 0;
    top: 0;
    width: 100%; 
    height: 100%; 
    background-color: rgba(var(--bg-primary-rgb), 0.8); 
    justify-content: center;
    align-items: center;
    backdrop-filter: blur(5px); 
}

.modal-content {
    background-color: var(--panel-hover); 
    color: #fff;
    padding: 30px;
    border: 1px solid #d4af37; 
    width: 90%;
    max-width: 400px;
    border-radius: 8px;
    position: relative;
    box-shadow: 0 4px 15px rgba(212, 175, 55, 0.2);
    overflow-y: auto;
    max-height: 80vh; 
}

.close-btn {
    color: #aaa;
    float: right;
    font-size: 28px;
    font-weight: bold;
    cursor: pointer;
}

.close-btn:hover {
    color: #d4af37;
}

#form-cita label {
    display: block;
    margin-top: 10px;
    font-size: 0.9em;
    color: #ccc;
}

#form-cita input, 
#form-cita select {
    width: 100%;
    padding: 10px;
    margin-top: 5px;
    background: var(--border-color);
    border: 1px solid #555;
    color: white;
    border-radius: 4px;
}

.contact-section {
    padding: 80px 20px;
    background-color: var(--panel-bg);
    color: white;
    text-align: center;
}

.contact-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 40px;
    margin-top: 40px;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
}

.contact-info, .map-container {
    flex: 1;
    min-width: 300px;
    text-align: left;
}

.contact-info h3 {
    color: #d4af37;
    margin-bottom: 20px;
    font-size: 1.5rem;
}

.contact-info p {
    margin-bottom: 15px;
    font-size: 1.1rem;
    line-height: 1.6;
}

.map-container iframe {
    width: 100%;
    height: 300px;
    border: 2px solid var(--border-color);
    border-radius: 8px;
    filter: grayscale(100%) invert(92%) contrast(83%); 
}

footer {
    background-color: var(--bg-primary);
    color: #888;
    text-align: center;
    padding: 20px;
    border-top: 1px solid var(--border-color);
    font-size: 0.9rem;
}

footer span {
    color: #d4af37;
}

.shop-section {
    padding: 60px 20px;
    background-color: #141414; 
    text-align: center;
}

.shop-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 30px;
    max-width: 1000px;
    margin: 40px auto;
}

.product-card {
    background: var(--bg-primary);
    border: 1px solid var(--border-color);
    width: 280px;
    border-radius: 8px;
    overflow: hidden;
    transition: transform 0.3s ease;
    text-align: left;
}

.product-card:hover {
    transform: translateY(-5px);
    border-color: #d4af37;
}

.product-image {
    position: relative;
    height: 250px;
    overflow: hidden;
}

.product-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.tag {
    position: absolute;
    top: 10px;
    right: 10px;
    background: #d4af37;
    color: black;
    padding: 3px 8px;
    font-size: 0.7rem;
    font-weight: bold;
    border-radius: 3px;
}

.product-info {
    padding: 15px;
}

.product-info h3 {
    color: white;
    font-size: 1.1rem;
    margin-bottom: 5px;
}

.product-desc {
    color: #888;
    font-size: 0.85rem;
    margin-bottom: 15px;
}

.price-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 10px;
}

.price {
    color: #d4af37;
    font-size: 1.2rem;
    font-weight: bold;
}

.btn-shop {
    background: white;
    color: black;
    border: none;
    width: 35px;
    height: 35px;
    border-radius: 50%;
    font-size: 1.2rem;
    cursor: pointer;
    transition: 0.3s;
}

.btn-shop:hover {
    background: #d4af37;
}

.barber-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 15px;
    margin-top: 20px;
}

.barber-card {
    background: var(--panel-hover);
    border: 1px solid var(--border-color);
    border-radius: 10px;
    padding: 20px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s ease;
}

.barber-card:hover {
    border-color: #d4af37;
    background: var(--panel-bg);
    transform: translateY(-5px);
    box-shadow: 0 5px 15px rgba(212, 175, 55, 0.1);
}

.barber-avatar {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    object-fit: cover;
    margin-bottom: 10px;
    border: 2px solid var(--border-color); 
    transition: 0.3s;
}

.barber-card:hover .barber-avatar {
    border-color: #d4af37; 
}

.booking-container {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    height: 100%;
    text-align: left; 
}

.booking-left {
    flex: 2;
    min-width: 300px;
    border-right: 1px solid var(--border-color); 
    padding-right: 20px;
}

/* CONTENEDOR DERECHO (RESUMEN) */
.booking-right {
    background: #0a0a0a; /* Fondo más oscuro que el modal */
    border: 1px solid rgba(212, 175, 55, 0.2); /* Borde dorado fino */
    border-radius: 12px;
    padding: 25px;
    box-shadow: inset 0 0 20px rgba(var(--bg-primary-rgb),0.8); /* Sombra interna para profundidad */
}

.date-scroller {
    display: flex;
    gap: 10px;
    overflow-x: auto; 
    padding-bottom: 10px;
    margin-bottom: 20px;
    margin-top: 10px;
}

.date-scroller::-webkit-scrollbar {
    height: 6px;
}
.date-scroller::-webkit-scrollbar-thumb {
    background: var(--border-color);
    border-radius: 3px;
}

/* --- FECHAS (ESTILO CALENDARIO DE LUJO) --- */
.date-pill {
    background: var(--panel-bg);           /* Fondo negro elegante */
    border: 1px solid var(--border-color);     /* Borde sutil */
    border-radius: 6px;         /* Cuadrado con esquinas suavizadas */
    width: 65px;                /* Un poco más ancho */
    height: 75px;               /* Más alto para parecer tarjeta */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
    margin-right: 5px;          /* Espacio entre tarjetas */
}

/* Texto del Día (LUN, MAR...) */
.date-pill div:first-child {
    font-size: 0.75rem;
    color: #888;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 5px;
}

/* Número del Día (16, 17...) */
.date-pill div:last-child {
    font-size: 1.4rem;
    font-weight: bold;
    color: white;
    font-family: 'Playfair Display', serif; /* Fuente elegante */
}

/* HOVER (Al pasar el mouse) */
.date-pill:hover {
    border-color: #d4af37;
    transform: translateY(-3px); /* Se levanta un poco */
    box-shadow: 0 5px 15px rgba(var(--bg-primary-rgb),0.5);
}

/* ACTIVO (Seleccionado) - LA JOYA DE LA CORONA */
.date-pill.active {
    background: linear-gradient(135deg, #d4af37 0%, #aa892c 100%); /* Oro metálico */
    border-color: #ffd700;
    box-shadow: 0 0 20px rgba(212, 175, 55, 0.4); /* Resplandor dorado */
    transform: scale(1.05);
}

.date-pill.active div:first-child,
.date-pill.active div:last-child {
    color: black; /* Texto negro para contraste máximo sobre oro */
    text-shadow: none;
}

/* BOTONES DE TIEMPO NORMALES (Más sutiles) */
/* --- HORAS (ESTILO GRID METÁLICO) --- */
.time-grid {
    display: grid;
    /* Ajuste automático: columnas de mínimo 90px */
    grid-template-columns: repeat(auto-fill, minmax(90px, 1fr)); 
    gap: 12px; /* Más espacio entre botones para que respiren */
    margin-bottom: 25px;
}

.time-btn {
    background: rgba(255, 255, 255, 0.03); /* Casi invisible */
    border: 1px solid var(--border-color);
    color: #ccc;
    padding: 10px 0; /* Más altura */
    border-radius: 4px; /* Rectangulares y serios */
    cursor: pointer;
    font-size: 0.85rem;
    letter-spacing: 1px;
    transition: all 0.3s ease;
    font-family: 'Montserrat', sans-serif;
}

/* Hover: Borde dorado y texto dorado */
.time-btn:hover {
    border-color: #d4af37;
    color: #d4af37;
    background: rgba(212, 175, 55, 0.05);
}

/* ACTIVO: Efecto Lingote */
.time-btn.active {
    background: #d4af37; /* Oro sólido */
    color: black;        /* Texto negro */
    border-color: #d4af37;
    box-shadow: 0 0 15px rgba(212, 175, 55, 0.3); /* Brillo alrededor */
}

/* OCUPADO: Tachado elegante */
.time-btn.ocupado {
    background: #0f0f0f;
    color: var(--border-color);
    border-color: var(--panel-bg);
    text-decoration: line-through;
    cursor: not-allowed;
    opacity: 0.5;
}

.btn-disabled {
    background: #444 !important;
    color: #888 !important;
    cursor: not-allowed !important;
    transform: none !important;
}

@media (max-width: 768px) {
    .booking-left {
        border-right: none;
        border-bottom: 1px solid var(--border-color);
        padding-right: 0;
        padding-bottom: 20px;
    }
}

.ios-backdrop {
    display: none; 
    position: fixed;
    top: 0; left: 0;
    width: 100%; height: 100%;
    background: rgba(var(--bg-primary-rgb), 0.4); 
    z-index: 9999;
    justify-content: center;
    align-items: center;
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
}

.ios-modal {
    background: rgba(30, 30, 30, 0.85); 
    backdrop-filter: blur(20px); 
    -webkit-backdrop-filter: blur(20px);
    width: 270px;
    border-radius: 14px;
    text-align: center;
    box-shadow: 0 10px 30px rgba(var(--bg-primary-rgb),0.5);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    transform: scale(1.1); 
    animation: popIn 0.2s forwards;
}

@keyframes popIn { to { transform: scale(1); } }

.ios-modal h3 {
    margin: 20px 0 5px 0;
    font-size: 17px;
    font-weight: 600;
    color: white;
}

.ios-modal p {
    margin: 0 15px 15px 15px;
    font-size: 13px;
    color: #ddd;
}

.ios-modal input {
    width: 80%;
    padding: 8px;
    margin-bottom: 20px;
    border: 1px solid #555;
    background: rgba(255,255,255,0.1);
    border-radius: 5px;
    color: white;
    font-size: 14px;
    outline: none;
}

.ios-buttons {
    display: flex;
    border-top: 1px solid rgba(84, 84, 88, 0.65);
}

.ios-btn {
    flex: 1;
    background: transparent;
    border: none;
    padding: 12px 0;
    font-size: 17px;
    cursor: pointer;
    color: #0A84FF; 
}

.ios-btn:first-child { border-right: 1px solid rgba(84, 84, 88, 0.65); }
.ios-btn:last-child { font-weight: 600; }

.time-btn.ocupado {
    background-color: #2a2a2a; 
    color: #555;
    cursor: not-allowed;
    text-decoration: line-through; 
    border-color: var(--border-color);
    pointer-events: none;
}

.mensaje-lleno {
    color: #ff4d4d; 
    font-size: 0.8rem;
    text-align: center;
    margin-top: 15px;
    font-style: italic;
    display: none; 
}

.auth-modal {
    display: none; 
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(var(--bg-primary-rgb),0.85); 
    z-index: 2000;
    justify-content: center; align-items: center;
    backdrop-filter: blur(5px);
}
.auth-box {
    background: #1e1e1e;
    padding: 30px;
    border-radius: 15px;
    width: 90%; max-width: 400px;
    text-align: center;
    border: 1px solid var(--border-color);
    position: relative;
    box-shadow: 0 10px 25px rgba(var(--bg-primary-rgb),0.5);
}
.auth-tabs { display: flex; margin-bottom: 20px; border-bottom: 1px solid var(--border-color); }
.auth-tab {
    flex: 1; padding: 10px; cursor: pointer; color: #888; font-weight: bold; transition: 0.3s;
}
.auth-tab.active { color: #d4af37; border-bottom: 2px solid #d4af37; }
.auth-form { display: none; animation: fadeIn 0.3s ease; }
.auth-form.active { display: block; }

.input-group { margin-bottom: 15px; text-align: left; }
.input-group label { display: block; color: #bbb; font-size: 0.8rem; margin-bottom: 5px; }
.input-group input {
    width: 100%; padding: 12px; border-radius: 8px; border: 1px solid var(--border-color);
    background: #2a2a2a; color: white; outline: none; box-sizing: border-box; font-size: 1rem;
}
.input-group input:focus { border-color: #d4af37; }
.btn-auth {
    width: 100%; padding: 12px; border: none; border-radius: 8px;
    background: #d4af37; color: black; font-weight: bold; cursor: pointer; margin-top: 10px; font-size: 1rem;
}
.btn-auth:hover { background: #b5952f; }
.close-auth { position: absolute; top: 10px; right: 15px; color: #fff; cursor: pointer; font-size: 1.5rem; }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }


/* LA TARJETA ESTILO "LUXURY GLASS" */
.review-card {
    background: rgba(15, 15, 15, 0.7); /* Negro traslúcido */
    backdrop-filter: blur(12px);      /* Efecto borroso de fondo */
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.1); /* Borde de cristal */
    border-left: 3px solid var(--gold);        /* Detalle dorado lateral */
    padding: 20px;
    border-radius: 8px;
    min-width: 300px; /* Ancho fijo para cada reseña */
    flex-shrink: 0;
    box-shadow: 0 10px 30px rgba(var(--bg-primary-rgb),0.5);
}

/* Flechas doradas minimalistas */
.slider-arrow {
    background: transparent;
    border: 1px solid var(--gold);
    color: var(--gold);
    width: 35px;
    height: 35px;
    border-radius: 50%;
    cursor: pointer;
    transition: 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
}

.slider-arrow:hover {
    background: var(--gold);
    color: black;
}



/* Animación de entrada */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.hero-content h1 {
    animation: fadeInUp 1s ease-out forwards; /* Tarda 1 segundo en aparecer */
}

.hero-content .btn-primary {
    opacity: 0; /* Empieza invisible */
    animation: fadeInUp 1s ease-out 0.5s forwards; /* Aparece medio segundo después del título */
}

/* Estilo para que el botón ocupado se vea intencional */
.btn-occupied {
    position: relative;
    overflow: hidden;
}

.btn-occupied::after {
    content: 'LLENO';
    position: absolute;
    font-size: 0.5rem;
    bottom: 2px;
    left: 50%;
    transform: translateX(-50%);
    color: #d4af37; /* El dorado de tu marca */
    letter-spacing: 1px;
}

/* Notificación estilo iOS/Premium */
.toast-premium {
    position: fixed;
    top: 20px;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(15px); /* Efecto cristal */
    -webkit-backdrop-filter: blur(15px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: #fff;
    padding: 12px 24px;
    border-radius: 20px; /* Bordes muy curvos estilo iPhone */
    font-size: 0.9rem;
    z-index: 9999;
    box-shadow: 0 10px 30px rgba(var(--bg-primary-rgb),0.5);
    display: none;
}

/* Botón de Confirmación Profesional */
.btn-confirmar-premium {
    width: 100%;
    background: #d4af37; /* Tu dorado */
    color: var(--bg-primary);
    border: none;
    padding: 15px;
    border-radius: 12px;
    font-weight: 700;
    font-size: 1rem;
    letter-spacing: 1px;
    cursor: pointer;
    transition: all 0.2s ease;
    text-transform: uppercase;
}

.btn-confirmar-premium:active {
    transform: scale(0.97); /* Respuesta táctil al presionar */
    opacity: 0.8;
}

.btn-confirmar-premium:disabled {
    background: var(--border-color);
    color: #666;
    cursor: not-allowed;
    transform: none;
}

/* Botón Confirmar Cita - Estilo iPhone/Premium */
#btn-confirmar {
    width: 100%;
    background: #d4af37; /* Dorado Mostache */
    color: var(--bg-primary);
    border: none;
    padding: 18px;
    border-radius: 14px; /* Curva clásica de iOS */
    font-weight: 700;
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    cursor: pointer;
    transition: background 0.2s, transform 0.1s;
    margin-top: 15px;
}

/* Efecto al presionar (Feedback táctil de Apple) */
#btn-confirmar:active {
    transform: scale(0.96);
    opacity: 0.9;
}

/* Estado Desactivado */
#btn-confirmar:disabled, .btn-disabled {
    background: var(--border-color) !important;
    color: #666 !important;
    cursor: not-allowed;
    transform: none !important;
}
.iphone-input-group {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 20px 0;
}

.iphone-input-group input {
    background: var(--panel-hover);
    border: 1px solid var(--border-color);
    padding: 15px;
    border-radius: 12px;
    color: #fff;
    font-size: 1rem;
    outline: none;
}

.iphone-input-group input:focus { border-color: #d4af37; }

.welcome-badge {
    font-size: 0.85rem;
    color: #d4af37;
    font-weight: 600;
    text-align: center;
    height: 20px; /* Evita que el modal salte al aparecer el texto */
}

/* Contenedor principal en fila */
.row-estilo-foto {
    display: flex;
    gap: 15px; /* Espacio entre el selector y la foto */
    margin-top: 15px;
    border-top: 1px solid var(--border-color);
    padding-top: 15px;
    align-items: flex-start; /* Alinea los títulos arriba */
}

/* Columna del Selector (ocupa más espacio) */
.col-estilo {
    flex: 3; /* Proporción 3/5 */
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* Columna de la Foto (ocupa menos espacio) */
.col-foto {
    flex: 2; /* Proporción 2/5 */
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* Estilo para el select compacto */
.select-dark-compact {
    background: var(--panel-bg);
    color: white;
    width: 100%;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 10px;
    height: 45px; /* Altura fija para alinear con el botón de foto */
}

/* Contenedor del botón de foto y la preview */
.photo-uploader-compact {
    display: flex;
    gap: 8px;
    height: 45px; /* Misma altura que el selector */
}

/* El botón de añadir foto */
.btn-photo-compact {
    flex: 1; /* Ocupa el espacio disponible */
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    cursor: pointer;
    border: 1px dashed #d4af37;
    background: rgba(212,175,55,0.05);
    border-radius: 8px;
    font-size: 0.9rem;
    color: #d4af37;
    transition: 0.2s;
    padding: 0 10px; /* Padding lateral */
}

.btn-photo-compact:hover { background: rgba(212,175,55,0.1); }

/* La imagen miniatura */
.img-mini-compact {
    width: 45px;
    height: 45px;
    object-fit: cover;
    border-radius: 8px;
    border: 1px solid #d4af37;
}

/* --- RESPONSIVE PARA CELULARES MUY PEQUEÑOS --- */
/* Si la pantalla es muy angosta, los vuelve a poner uno debajo del otro */
@media (max-width: 400px) {
    .row-estilo-foto {
        flex-direction: column;
    }
    .col-estilo, .col-foto {
        width: 100%;
    }
}

/* --- FONDO GLOBAL PARA QUE RESALTE EL CRISTAL --- */
body {
    /* Fondo oscuro con un leve degradado para que se note la transparencia */
    background: radial-gradient(circle at 50% 0%, #1a1a1a 0%, var(--bg-primary) 100%);
    color: #ffffff;
}

/* --- CLASE MAESTRA DE CRISTAL (GLASSMORPHISM) --- */
/* Aplicamos esto a Navbar, Tarjetas, Modales y Paneles */
.navbar, 
.service-card, 
.modal-content, 
.booking-right, 
.review-card,
#blog-preview > div > div, /* Para las cards del blog */
.auth-box {
    background: rgba(30, 30, 30, 0.6) !important; /* Gris oscuro translúcido */
    backdrop-filter: blur(20px) !important; /* El desenfoque estilo iOS */
    -webkit-backdrop-filter: blur(20px) !important; /* Soporte para Safari/iPhone */
    border: 1px solid rgba(255, 255, 255, 0.08) !important; /* Borde sutil */
    box-shadow: 0 8px 32px 0 rgba(var(--bg-primary-rgb), 0.3) !important; /* Sombra suave */
}

/* --- AJUSTES ESPECÍFICOS --- */

/* 1. Navbar Flotante */
.navbar {
    background: rgba(var(--bg-primary-rgb), 0.7) !important; /* Un poco más oscuro para leer bien */
    border-bottom: 1px solid rgba(255, 255, 255, 0.05) !important;
}

/* 2. Tarjetas de Servicios y Blog */
.service-card, .review-card {
    border-radius: 24px !important; /* Bordes más redondeados tipo Apple */
    transition: transform 0.3s ease, border-color 0.3s ease;
}

.service-card:hover {
    transform: translateY(-5px);
    border-color: #d4af37 !important; /* Brillo dorado al pasar el mouse */
}

/* 3. Inputs (Formularios) estilo Cristal */
input, select, .payment-btn {
    background: rgba(var(--bg-primary-rgb), 0.3) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    backdrop-filter: blur(10px);
    border-radius: 12px !important;
    color: white !important;
}

input:focus, select:focus {
    border-color: #d4af37 !important;
    outline: none;
    background: rgba(var(--bg-primary-rgb), 0.5) !important;
}

/* 4. Modal (El cambio más notorio) */
.modal-content {
    background: rgba(20, 20, 20, 0.85) !important; /* Más opaco para que no distraiga el fondo */
    border-radius: 30px !important;
}

/* 5. Botones Principales (Se mantienen sólidos para contraste) */
.btn-confirmar-premium, .btn-small {
    background: #d4af37 !important;
    color: var(--bg-primary) !important;
    border: none !important;
    box-shadow: 0 4px 15px rgba(212, 175, 55, 0.3); /* Resplandor dorado */
    font-weight: 700;
}

.btn-confirmar-premium:hover, .btn-small:hover {
    background: #fff !important;
    box-shadow: 0 4px 20px rgb(255, 255, 255);
}

/* 6. Scrollbars Invisibles (Look limpio) */
::-webkit-scrollbar {
    width: 8px;
}
::-webkit-scrollbar-track {
    background: transparent;
}
::-webkit-scrollbar-thumb {
    background: rgb(255, 255, 255);
    border-radius: 10px;
}

/* --- RESEÑAS GOOGLE: VERSIÓN SÚPER MINI (Baja Altura) --- */

/* 1. El Contenedor (FLOTANTE Y SIN FONDO) */
.reviews-section {
    position: absolute !important;
    bottom: 15px !important;       /* Un poco más pegado al borde inferior */
    left: 0 !important;
    width: 100% !important;
    background: transparent !important;
    padding: 0 !important;
    z-index: 20 !important;
    overflow: hidden !important;
    border: none !important;
    display: block !important;
}

/* Ocultamos el título */
.reviews-section h3 { display: none !important; }

/* 2. La Pista */
.reviews-track {
    display: flex !important;
    gap: 12px !important; /* Más juntitas */
    width: max-content !important;
    animation: scrollGoogle 40s linear infinite !important;
    padding-left: 15px !important;
}

.reviews-track:hover { animation-play-state: paused !important; }

/* 3. La Tarjeta (SÚPER MINI) */
.reviews-track .review-card {
    /* TAMAÑO */
    width: 230px !important;
    min-width: 230px !important;
    height: 105px !important; /* <--- ¡AQUÍ ESTÁ EL CAMBIO DE ALTURA! */
    
    /* ESTILO */
    background: rgba(var(--bg-primary-rgb), 0.65) !important;
    backdrop-filter: blur(6px) !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    border-radius: 10px !important;
    
    padding: 12px !important; /* Menos relleno */
    margin: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    box-shadow: none !important;
}

/* 4. Textos y Detalles (Ajustados al tamaño mini) */
.reviews-track .review-card .google-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-bottom: 3px !important;
    border: none !important;
    padding: 0 !important;
}

.reviews-track .review-card .author {
    font-size: 0.75rem !important;
    color: #fff !important;
    font-weight: bold !important;
    margin: 0 !important;
}

.reviews-track .review-card img {
    width: 14px !important;
    height: 14px !important;
    background: white !important;
    border-radius: 50% !important;
    padding: 1px !important;
}

.reviews-track .review-card .stars {
    font-size: 0.65rem !important;
    margin: 0 0 4px 0 !important;
    color: #FFD700 !important;
    letter-spacing: 0px !important;
}

.reviews-track .review-card .review-text {
    font-size: 0.65rem !important;
    line-height: 1.25 !important;
    color: #ccc !important;
    margin: 0 !important;
    font-style: italic !important;
    
    /* Cortar texto a 3 líneas máx y poner puntos suspensivos */
    display: -webkit-box !important;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden !important;
}

/* Ocultar elementos sobrantes */
.reviews-track .review-card .verified,
.reviews-track .review-card .avatar {
    display: none !important; 
}

/* Animación */
@keyframes scrollGoogle {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); } 
}
/* --- RESEÑAS VERSIÓN ULTRA-COMPACTA (BAJITAS) --- */

.reviews-section {
    position: absolute !important;
    bottom: 10px !important;       /* Pegaditas al piso */
    left: 0 !important;
    width: 100% !important;
    background: transparent !important; /* Sin fondo negro */
    padding: 0 !important;
    z-index: 100 !important;
    overflow: hidden !important;
}

.reviews-track {
    display: flex !important;
    gap: 10px !important; 
    width: max-content !important;
    animation: scrollGoogle 30s linear infinite !important;
}

/* AQUÍ CONTROLAS EL TAMAÑO DE LOS CUADROS */
.reviews-track .review-card {
    width: 210px !important;       /* Más angostas */
    height: 90px !important;       /* <--- ¡SÚPER BAJITAS! */
    min-width: 210px !important;
    
    background: rgba(var(--bg-primary-rgb), 0.7) !important; /* Cristal oscuro */
    backdrop-filter: blur(4px) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    border-radius: 8px !important;
    padding: 8px 12px !important;  /* Relleno mínimo */
    
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
}

/* Texto de la reseña súper pequeño */
.reviews-track .review-card .review-text {
    font-size: 0.65rem !important; 
    line-height: 1.1 !important;
    color: #ddd !important;
    margin: 2px 0 0 0 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important; /* Solo 2 líneas de texto */
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Autor y Estrellas en una sola línea para ahorrar altura */
.google-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-bottom: 2px !important;
}

.author {
    font-size: 0.75rem !important;
    font-weight: bold !important;
}

.stars {
    font-size: 0.6rem !important;
    color: #FBBC05 !important;
}

/* Logo de Google miniatura */
.google-header img {
    width: 12px !important;
    height: 12px !important;
}

@keyframes scrollGoogle {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}
/* --- RESEÑAS VERSIÓN ULTRA-COMPACTA (ESTILO ETIQUETA) --- */

.reviews-section {
    position: absolute !important;
    bottom: 10px !important;
    left: 0 !important;
    width: 100% !important;
    background: transparent !important;
    padding: 0 !important;
    z-index: 100 !important;
}

/* LA PISTA (TRACK) */
.reviews-track {
    display: flex !important;
    gap: 12px !important;
    width: max-content !important;
    animation: scrollGoogle 35s linear infinite !important;
    align-items: center !important;
}

/* LA TARJETA (AQUÍ CONTROLAS LO "CHAPARRITO") */
.reviews-track .review-card {
    width: 240px !important;      /* Mantiene el ancho */
    height: 140px !important;      /* <--- ¡ALTURA SÚPER BAJA! */
    min-width: 240px !important;
    min-height: 140px !important;
    
    background: rgba(var(--bg-primary-rgb), 0.75) !important;
    backdrop-filter: blur(5px) !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    border-radius: 8px !important;
    
    padding: 8px 12px !important; /* Relleno mínimo para que no crezca */
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important; /* Centra el contenido en esos 75px */
    margin: 0 !important;
}


/* CABECERA (Nombre y Estrellas en una sola línea para ahorrar espacio) */
.google-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-bottom: 2px !important;
    padding: 0 !important;
}

.author {
    font-size: 0.75rem !important;
    font-weight: bold !important;
    color: #fff !important;
}

.stars {
    font-size: 0.65rem !important;
    color: #FBBC05 !important;
}

/* TEXTO DE LA RESEÑA (Solo una línea para que no empuje la altura) */
.reviews-track .review-card .review-text {
    font-size: 0.65rem !important;
    line-height: 1.1 !important;
    color: #ccc !important;
    margin: 0 !important;
    
    display: -webkit-box !important;
    -webkit-line-clamp: 1 !important; /* <--- SOLO 1 LÍNEA DE TEXTO */
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ELIMINAR ICONOS GIGANTES O VERIFICADOS */
.reviews-track .review-card img, 
.reviews-track .review-card .verified, 
.reviews-track .review-card .avatar {
    display: none !important;
}

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

/* --- AJUSTE ESPECIAL PARA CELULARES (SUBIR RESEÑAS) --- */
@media (max-width: 768px) {
    .reviews-section {
        /* Aquí controlas qué tan arriba se ven en el celular */
        bottom: 190px !important; 
    }

    /* Opcional: Hacerlas un poquitito más chicas para que no estorben */
    .reviews-track .review-card {
        width: 200px !important;
        height: 70px !important;
    }
    
    .reviews-track .review-card .review-text {
        font-size: 0.6rem !important; /* Letra un pelín más chica */
    }
}
/* --- POSICIÓN FINAL: PC vs CELULAR --- */

/* 1. Ajuste para PC (Escritorio) */
.reviews-section {
    /* Sube este número si lo quieres más arriba en la compu */
    bottom: 100px !important; 
}

/* 2. Ajuste para Celular (Móvil) - SE QUEDA IGUAL */
@media (max-width: 768px) {
    .reviews-section {
        /* Este es el que ya te había gustado en el teléfono */
        bottom: 120px !important; 
    }
}

/* --- AJUSTE FINAL: BUCLE INFINITO Y POSICIÓN --- */

/* 1. Contenedor: Más arriba en PC */
.reviews-section {
    position: absolute !important;
    bottom: 80px !important; /* <--- Subido para que no se vea pegado abajo en PC */
    left: 0 !important;
    width: 100% !important;
    background: transparent !important;
    z-index: 100 !important;
    overflow: hidden !important;
}

/* 2. La Pista: El secreto del bucle es el width y el -50% */
.reviews-track {
    display: flex !important;
    gap: 15px !important;
    width: max-content !important; /* Deja que crezca según las tarjetas */
    animation: scrollGoogle 35s linear infinite !important; /* Movimiento constante */
}

/* 3. La Tarjeta: Chaparrita pero con ancho estable */
.reviews-track .review-card {
    width: 240px !important;
    height: 75px !important; /* <--- Se queda chaparrita */
    min-width: 240px !important;
    background: rgba(var(--bg-primary-rgb), 0.75) !important;
    backdrop-filter: blur(8px) !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    border-radius: 10px !important;
    padding: 10px 15px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
}

/* 4. Animación: Debe ser exactamente -50% para que sea infinita */
@keyframes scrollGoogle {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); } 
}

/* 5. Ajuste para Celular: Todavía más arriba */
@media (max-width: 768px) {
    .reviews-section {
        bottom: 140px !important; /* <--- Más arriba en celular para evitar barras del navegador */
    }
    .reviews-track .review-card {
        width: 210px !important;
        min-width: 210px !important;
    }
}
/* --- MOTOR DE BUCLE INFINITO REFORZADO --- */

.reviews-track {
    display: flex !important;
    /* gap debe ser el mismo que restamos en el cálculo si es necesario, 
       pero con -50% y max-content suele ser automático */
    gap: 20px !important; 
    width: max-content !important; 
    animation: scrollGoogle 30s linear infinite !important;
    will-change: transform; /* Ayuda a que la animación sea más fluida */
}

.review-card {
    flex-shrink: 0 !important; /* <--- ¡ESTO ES LO MÁS IMPORTANTE! */
    width: 240px !important;
    height: 80px !important;
    /* ... resto de tus estilos (fondo, bordes, etc) ... */
}

/* La animación DEBE ser exactamente -50% */
@keyframes scrollGoogle {
    0% {
        transform: translateX(0);
    }
    100% {
        /* Movemos la mitad exacta del ancho del track */
        transform: translateX(calc(-50% - 10px)); /* El 10px es la mitad del gap (20px) */
    }
}
/* --- MOTOR DE BUCLE INFINITO SIN HUECOS --- */

.reviews-section {
    position: absolute !important;
    bottom: 80px !important; /* Ajuste para PC */
    width: 100% !important;
    overflow: hidden !important;
    background: transparent !important;
}

.reviews-track {
    display: flex !important;
    gap: 20px !important; /* Espacio entre tarjetas */
    width: max-content !important; /* Deja que la tira sea larguísima */
    animation: scrollInfinito 65s linear infinite !important;
}

.review-card {
    flex-shrink: 0 !important; /* ESTO ES VITAL: Si se aplastan, el cálculo falla y verás el hueco */
    width: 250px !important;
    height: 80px !important;
    background: rgba(var(--bg-primary-rgb), 0.8) !important;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 10px;
    padding: 10px;
}

/* LA MAGIA: Mover exactamente el 50% del ancho total */
@keyframes scrollInfinito {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%);
    }
}

/* Ajuste para que en celular sigan arriba */
@media (max-width: 768px) {
    .reviews-section {
        bottom: 140px !important;
    }
}

/* --- 5. BOOKING WIZARD (PANTALLA COMPLETA) --- */

/* Contenedor Principal (Overlay) */
.wizard-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: var(--bg-primary); /* Fondo Negro Puro */
    z-index: 2000; /* Por encima de todo */
    display: flex;
    flex-direction: column;
    font-family: 'Montserrat', sans-serif;
}

/* --- HEADER DEL WIZARD --- */
.wizard-header {
    background: #0a0a0a;
    padding: 15px 20px 0 20px;
    border-bottom: 1px solid var(--panel-bg);
}

.wizard-top-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.wizard-top-bar h3 {
    color: white;
    font-size: 1.2rem;
    margin: 0;
    letter-spacing: 2px;
}

.btn-wizard-back {
    background: none;
    border: none;
    color: #888;
    font-size: 0.9rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 5px;
    transition: 0.3s;
}
.btn-wizard-back:hover { color: var(--gold); }

/* --- STEPPER (LOS CÍRCULOS) --- */
.stepper-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 600px;
    margin: 0 auto;
    padding-bottom: 15px;
    position: relative;
}

.step-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    position: relative;
    z-index: 2;
    opacity: 0.5; /* Inactivo por defecto */
    transition: 0.3s;
}

.step-item.active { opacity: 1; }

.step-circle {
    width: 35px;
    height: 35px;
    border-radius: 50%;
    background: var(--panel-bg);
    border: 2px solid var(--border-color);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #888;
    transition: 0.3s;
}

.step-item.active .step-circle {
    background: var(--gold);
    border-color: var(--gold);
    color: black;
    box-shadow: 0 0 10px rgba(212, 175, 55, 0.4);
}

.step-item span {
    font-size: 0.7rem;
    text-transform: uppercase;
    font-weight: 600;
}

.step-line {
    flex-grow: 1;
    height: 2px;
    background: var(--border-color);
    margin: -15px 10px 0 10px; /* Alineado con los círculos */
}

/* Línea dorada si el paso siguiente está activo (opcional, requiere JS avanzado, por ahora simple) */

/* --- CONTENIDO DEL WIZARD --- */
.wizard-content {
    flex-grow: 1;
    overflow-y: auto;
    padding: 30px 20px 80px 20px; /* Padding inferior para el footer */
    max-width: 800px;
    margin: 0 auto;
    width: 100%;
}

@keyframes fadeInStep {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

.wizard-step {
    display: none;
    /* animation: none; */
}

.wizard-step.active {
    display: block;
    animation: fadeInStep 0.5s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

.step-title {
    text-align: center;
    font-size: 1.8rem;
    color: var(--gold);
    margin-bottom: 5px;
}

.step-subtitle {
    text-align: center;
    color: #888;
    margin-bottom: 30px;
    font-size: 0.9rem;
}

/* --- HORARIOS (PASO 3) --- */
.wiz-date-scroller {
    display: flex;
    overflow-x: auto;
    gap: 10px;
    padding-bottom: 10px;
    margin-bottom: 20px;
    scrollbar-width: thin;
    scrollbar-color: #d4af37 var(--panel-bg);
}

.date-pill {
    min-width: 70px;
    background: var(--panel-bg);
    border: 1px solid var(--border-color);
    border-radius: 12px;
    padding: 10px 5px;
    text-align: center;
    cursor: pointer;
    transition: 0.3s;
    color: #888;
}

.date-pill:hover, .date-pill.active {
    background: #d4af37;
    color: var(--bg-primary);
    font-weight: bold;
    border-color: #d4af37;
    transform: scale(1.05);
}

.date-pill.day-off {
    opacity: 0.5;
    background: #1a0505; /* Un rojo muy oscuro sutil */
    border-color: #442222;
    cursor: not-allowed;
    color: #774444; /* Texto rojizo apagado */
}

.date-pill.day-off:hover {
    transform: none;
    background: #1a0505;
    color: #774444;
}

.wiz-section-divider {
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--border-color), transparent);
    margin: 20px 0;
}

/* --- GRID DE SERVICIOS (PASO 1) --- */
.wiz-service-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 15px;
}

.wiz-card {
    background: var(--panel-bg);
    border: 1px solid var(--border-color);
    border-radius: 12px;
    padding: 20px;
    text-align: center;
    cursor: pointer;
    transition: 0.3s;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.wiz-card:hover { border-color: #666; }

.wiz-card.selected {
    border-color: var(--gold);
    background: rgba(212, 175, 55, 0.05);
    box-shadow: 0 0 15px rgba(212, 175, 55, 0.1);
}

.wiz-icon {
    font-size: 2rem;
    color: #666;
    margin-bottom: 15px;
}
.wiz-card.selected .wiz-icon { color: var(--gold); }

.wiz-card h4 {
    font-size: 1rem;
    margin-bottom: 5px;
    color: white;
}
.wiz-card p {
    font-size: 0.85rem;
    color: #888;
}

/* --- ANIMACIONES WIZARD --- */
@keyframes popBounce {
    0% { opacity: 0; transform: scale(0.9) translateY(10px); }
    60% { transform: scale(1.02) translateY(-2px); }
    100% { opacity: 1; transform: scale(1) translateY(0); }
}

/* --- BARBEROS (PASO 2) - REDISEÑO --- */
.wiz-barber-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); /* Tarjetas más anchas */
    gap: 20px;
    justify-items: center;
    padding: 10px;
}

.wiz-barber-card {
    background: var(--panel-bg);
    border: 1px solid var(--border-color);
    border-radius: 16px; /* Bordes redondeados */
    padding: 20px 10px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s ease;
    width: 100%;
    position: relative;
    
    /* Animación de entrada "Pop Up" */
    animation: popBounce 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
    opacity: 0; /* Empieza invisible para el stagger */
}

.wiz-barber-card:hover {
    border-color: #d4af37;
    background: var(--panel-hover);
    transform: translateY(-5px);
    box-shadow: 0 5px 20px rgba(var(--bg-primary-rgb),0.5);
}

.wiz-barber-card.selected {
    border-color: #d4af37;
    background: rgba(212, 175, 55, 0.1);
    box-shadow: 0 0 20px rgba(212, 175, 55, 0.2);
    transform: scale(1.02);
}

.wiz-stars {
    color: #d4af37;
    font-size: 0.8rem;
    letter-spacing: 2px;
    margin-bottom: 8px; /* Por encima del círculo */
}

.wiz-barber-img {
    width: 70px;
    height: 70px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid var(--border-color);
    margin-bottom: 10px;
    transition: 0.3s;
    box-shadow: 0 4px 10px rgba(var(--bg-primary-rgb),0.3);
}

.wiz-barber-card.selected .wiz-barber-img {
    border-color: #d4af37;
}

.wiz-barber-name {
    color: white;
    font-size: 0.95rem;
    font-weight: bold;
    margin: 0;
    font-family: 'Playfair Display', serif;
}

/* --- HORARIOS (PASO 3) --- */
.wiz-date-scroller {
    display: flex;     
    gap: 10px;     
    overflow-x: auto; 
    padding: 10px 0;
    margin-bottom: 20px; 
    /* Estilos base reutilizados de .date-scroller, pero aseguramos layout */
}
/* Reutilizamos .date-pill y .time-btn del CSS anterior */

.wiz-section-divider {
    height: 1px;
    background: var(--border-color);
    margin: 30px 0;
}

.wiz-time-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
    gap: 10px;
}

.wiz-msg-neutral {
    text-align: center;
    color: #666;
    grid-column: 1 / -1;
    padding: 20px;
}

/* --- FORMULARIO DATOS (PASO 4) --- */
.wiz-form-container {
    max-width: 400px;
    margin: 0 auto;
}

.wiz-form-container label {
    display: block;
    margin-bottom: 8px;
    color: #ccc;
    font-size: 0.9rem;
}

.input-with-icon {
    position: relative;
    margin-bottom: 20px;
}

.input-with-icon i {
    position: absolute;
    left: 15px;
    top: 50%;
    transform: translateY(-50%);
    color: #666;
    font-size: 1.2rem;
}

.input-with-icon input {
    width: 100%;
    padding: 15px 15px 15px 45px; /* Espacio para el icono */
    background: var(--panel-bg);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    color: white;
    font-size: 1rem;
    transition: 0.3s;
}

.input-with-icon input:focus {
    border-color: var(--gold);
    outline: none;
}

.photo-upload-box {
    border: 2px dashed var(--border-color);
    border-radius: 12px;
    padding: 30px;
    text-align: center;
    cursor: pointer;
    transition: 0.3s;
    background: rgba(255,255,255,0.02);
}

.photo-upload-box:hover {
    border-color: var(--gold);
    background: rgba(212, 175, 55, 0.05);
}

.photo-upload-box i {
    font-size: 2rem;
    color: #666;
    margin-bottom: 10px;
    display: block;
}

/* --- PAGO (PASO 5) --- */
.wiz-summary-card {
    background: var(--panel-bg);
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 30px;
    border: 1px solid var(--border-color);
}

.wiz-sum-row {
    display: flex;
    justify-content: space-between;
    margin-bottom: 12px;
    font-size: 0.9rem;
    color: #ccc;
    border-bottom: 1px solid var(--panel-bg);
    padding-bottom: 12px;
}

.wiz-sum-row strong { color: white; }

.wiz-sum-total {
    display: flex;
    justify-content: space-between;
    margin-top: 10px;
    font-size: 1.2rem;
    color: var(--gold);
    font-weight: bold;
}

.wiz-payment-options {
    display: grid;
    gap: 15px;
}

.wiz-pay-card {
    background: var(--panel-bg);
    border: 1px solid var(--border-color);
    border-radius: 12px;
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 15px;
    cursor: pointer;
    transition: 0.3s;
    position: relative;
    overflow: hidden;
}

.wiz-pay-card:hover {
    border-color: #666;
    transform: translateY(-2px);
}

.pay-icon {
    font-size: 1.8rem;
    color: #888;
}

.pay-info {
    flex-grow: 1;
}

.pay-info strong { display: block; color: white; margin-bottom: 3px; }
.pay-info span { font-size: 0.8rem; color: #666; }

.badge-rec {
    background: var(--gold);
    color: black;
    font-size: 0.7rem;
    padding: 3px 8px;
    border-radius: 4px;
    font-weight: bold;
}

.wiz-legal {
    text-align: center;
    font-size: 0.7rem;
    color: #555;
    margin-top: 20px;
}

.success-icon {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: transparent;
    border: 3px solid var(--gold);
    color: var(--gold);
    font-size: 3rem;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    animation: popIn 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

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


/* --- FOOTER DEL WIZARD (FIXED) --- */
.wizard-footer {
    background: #0a0a0a;
    padding: 20px;
    border-top: 1px solid var(--panel-bg);
    display: flex;
    justify-content: space-between;
    align-items: center;
    /* Fixed bottom se rompe en mobile a veces, mejor flex-col en overlay pero lo pondremos fixed para asegurar */
}

.btn-wiz-nav {
    padding: 12px 24px;
    border-radius: 8px;
    font-weight: bold;
    cursor: pointer;
    font-size: 1rem;
    border: none;
    transition: 0.3s;
}

.btn-wiz-nav.prev {
    background: transparent;
    color: #888;
    display: flex;
    align-items: center;
    gap: 8px;
}
.btn-wiz-nav.prev:hover { color: white; }

.btn-wiz-nav.next {
    background: var(--gold);
    color: black;
    box-shadow: 0 0 15px rgba(212, 175, 55, 0.2);
}
.btn-wiz-nav.next:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 20px rgba(212, 175, 55, 0.4);
}

/* --- MENSAJE DE BIENVENIDA (PASO 4) --- */
.wiz-welcome-text {
    color: #d4af37;
    font-size: 0.9rem;
    margin-top: 5px;
    margin-bottom: 5px;
    font-style: italic;
    min-height: 20px; /* Evita saltos de layout */
    transition: opacity 0.3s;
    font-weight: 500;
}

/* --- NUEVO SELECTOR DE ESTILO (PASO 4) --- */
.wiz-style-container {
    display: flex;
    gap: 12px;
    align-items: center;
    margin-top: 5px;
}

.wiz-style-selector {
    flex: 1;
    background: var(--panel-bg);
    border: 1px solid var(--border-color);
    border-radius: 12px;
    padding: 12px 15px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: #fff;
    cursor: pointer;
    transition: 0.3s;
}

.wiz-style-selector:hover {
    border-color: #d4af37;
    background: var(--panel-hover);
}

.wiz-style-selector span {
    font-size: 0.95rem;
    color: #ccc;
}

.wiz-mini-upload {
    width: 50px;
    height: 50px;
    background: var(--panel-bg);
    border: 1px dashed #444;
    border-radius: 12px;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    transition: 0.3s;
    position: relative;
    overflow: hidden;
}

.wiz-mini-upload:hover {
    border-color: #d4af37;
    background: var(--panel-hover);
}

.wiz-mini-upload i {
    font-size: 1.5rem;
    color: #888;
}

.wiz-mini-upload img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    top: 0; left: 0;
}

/* --- MODAL DE ESTILOS --- */
.wiz-modal-overlay {
    position: fixed;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(var(--bg-primary-rgb),0.8);
    backdrop-filter: blur(5px);
    z-index: 2000;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 20px;
}

.wiz-modal-card {
    background: var(--panel-bg);
    border: 1px solid #d4af37;
    border-radius: 16px;
    padding: 20px;
    width: 100%;
    max-width: 350px;
    text-align: center;
    box-shadow: 0 10px 30px rgba(var(--bg-primary-rgb),0.5);
    animation: popIn 0.3s ease;
}

.wiz-style-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin: 20px 0;
    max-height: 50vh;
    overflow-y: auto;
}

.wiz-style-option {
    background: #222;
    padding: 10px;
    border-radius: 8px;
    color: #fff;
    cursor: pointer;
    border: 1px solid #333;
    transition: 0.2s;
    font-size: 0.9rem;
}

.wiz-style-option:hover {
    background: #d4af37;
    color: #000;
    transform: scale(1.02);
}

.btn-wiz-close-modal {
    background: transparent;
    border: 1px solid #444;
    color: #888;
    padding: 8px 20px;
    border-radius: 20px;
    cursor: pointer;
}