/* --- IMPORTACIÓN DE FUENTE LOCAL --- */
@font-face {
    font-family: 'Kinglane';
    src: url('fonts/Kinglane.otf') format('opentype');
    font-weight: normal;
    font-style: normal;
}

:root {
    --color-principal: #636B2F; /* Verde Oliva solicitado */
    --color-fondo: #fcfcfc;
    --color-texto: #4a4a4a;
    --fuente-titulos: 'Kinglane', cursive;
    --fuente-textos: 'Montserrat', sans-serif;
    --fuente-cursiva: 'Cormorant Upright', serif;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    background-color: #ececec; /* Fondo oscuro fuera de la invitación para escritorio */
    font-family: var(--fuente-textos);
    color: var(--color-texto);
    -webkit-font-smoothing: antialiased;
}

/* --- CONTENEDOR PRINCIPAL --- */
.invitacion-contenedor {
    max-width: 1080px;
    width: 100%;
    margin: 0 auto;
    background-color: var(--color-fondo);
    position: relative;
    overflow: hidden;
    box-shadow: 0 0 20px rgba(0,0,0,0.1);
    text-align: center;
    padding-bottom: 50px;
}

/* --- DECORACIONES FLORALES --- */
.decoracion-floral {
    width: 100%;
    display: block;
    margin: 0 auto;
}

.decoracion-floral.top {
    position: absolute; 
    top: 0;
    left: 0;
    max-width: 450px; 
    margin: 0;
    z-index: 1; 
    transform: translate(-10%, -10%); 
}

.decoracion-floral.bottom {
    position: absolute;
    bottom: 0;
    right: 0;
    max-width: 450px; 
    margin: 0;
    z-index: 1;
    transform: translate(10%, 10%); 
    pointer-events: none; 
}

/* =========================================
   AJUSTES ESPECÍFICOS PARA MÓVILES
========================================= */
@media (max-width: 768px) {
    
    /* 1. Hacemos la rosa superior más pequeña para que no invada la pantalla */
    .decoracion-floral.top {
        max-width: 300px; /* En PC mide 450px, en celular la limitamos a 300px */
    }

    /* 2. Empujamos la sección un poco más abajo SOLO en celulares */
    .seccion-inicio {
        padding-top: 130px; 
    }

    /* 3. Achicamos sutilmente las iniciales para que se vean proporcionadas */
    h1.iniciales {
        font-size: 4rem;
    }
    .ampersand-iniciales {
        font-size: 3.2rem;
    }

    /* 4. Le damos margen a los lados al texto para que no choque con los bordes de la pantalla ni con las hojas */
    .contenedor-texto-animado {
        padding: 0 15px;
    }
}

/* --- SECCIONES GENERALES --- */
section {
    padding: 40px 20px;
    position: relative;
    z-index: 2;
}

.seccion-inicio {
    padding-top: 100px; 
    position: relative;
    z-index: 2;
}

/* --- TIPOGRAFÍA BÁSICA --- */
h1.iniciales {
    font-family: var(--fuente-titulos);
    font-size: 5rem;
    color: var(--color-principal);
    margin-bottom: 20px;
}

.ampersand-iniciales {
    font-family: var(--fuente-textos); 
    font-size: 4rem; 
    font-weight: 300; 
    margin: 0 5px; 
}

.y-ampersand {
    font-family: var(--fuente-textos);
    font-size: 3rem;
    color: #999;
}

.titulo-seccion {
    font-family: var(--fuente-titulos);
    font-size: 3.5rem;
    color: var(--color-principal);
    margin: 20px 0;
}

p {
    font-size: 1.1rem;
    line-height: 1.6;
    margin-bottom: 15px;
}

/* --- CONTENEDOR PARA MÁQUINA DE ESCRIBIR SIN SALTOS --- */
.contenedor-texto-animado {
    position: relative;
    width: 100%;
    max-width: 800px;
    margin: 0 auto; /* Centra el bloque de texto */
}

.texto-intro.invisible {
    visibility: hidden; /* Se vuelve invisible, pero el navegador sigue respetando su altura y espacio */
    margin-bottom: 0; /* Anula el margen para que el contenedor tenga la medida exacta */
    pointer-events: none;
}

.texto-intro.animado {
    position: absolute; /* Se coloca encima del texto invisible */
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    margin-bottom: 0;
}

/* --- CURSOR MÁQUINA DE ESCRIBIR --- */
.cursor-tipeo {
    display: inline-block;
    width: 2px;
    height: 1.1em;
    background-color: var(--color-texto);
    vertical-align: middle;
    animation: parpadeo 0.8s infinite;
    margin-left: 2px;
}
/* Estilo específico para el texto en cursiva <i> dentro de la introducción */
.texto-intro i {
    font-family: var(--fuente-cursiva);
    font-size: 1.4rem; /* Un poco más grande para que la letra elegante sea legible */
    color: var(--color-principal); /* Opcional: ponerle tu verde oliva para que resalte más, si lo deseas quita esta línea */
    font-weight: 500; /* Le da un poco más de cuerpo a la fuente */
}

@keyframes parpadeo {
    0%, 100% { opacity: 1; }
    50% { opacity: 0; }
}

/* --- REPRODUCTOR DE AUDIO Y BARRA INTERACTIVA --- */
.reproductor-audio {
    margin: 40px auto;
    padding: 0;
    border: none;
    width: 90%;
    max-width: 350px;
}

.reproductor-audio p {
    color: var(--color-texto);
    font-size: 1.1rem;
    margin-bottom: 10px;
}

.barra-progreso-contenedor {
    position: relative;
    height: 20px;
    margin-bottom: 15px;
    display: flex;
    align-items: center;
    cursor: pointer;
}

.barra-linea {
    width: 100%;
    height: 4px;
    background-color: #d3d8c4;
    border-radius: 2px;
    position: relative;
}

.barra-progreso-llena {
    height: 100%;
    width: 0%;
    background-color: #8fa05e;
    border-radius: 2px;
    position: absolute;
    top: 0;
    left: 0;
}

.barra-punto {
    position: absolute;
    left: 0%;
    width: 14px;
    height: 14px;
    background-color: #515c32;
    border-radius: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    box-shadow: 0 0 5px rgba(0,0,0,0.3);
    transition: left 0.1s linear;
    z-index: 2;
}

.controles-audio {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px; 
}

.btn-icono {
    background: none;
    border: none;
    color: var(--color-principal); 
    width: 22px;
    height: 22px;
    cursor: pointer;
    opacity: 0.8;
    transition: opacity 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
}

.btn-icono:hover {
    opacity: 1;
}

.btn-circular {
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: var(--color-principal);
    color: white;
    border: none;
    border-radius: 50%;
    width: 55px;
    height: 55px;
    cursor: pointer;
    transition: transform 0.3s ease;
    box-shadow: 0 4px 10px rgba(99, 107, 47, 0.3);
}

.btn-circular:hover { 
    transform: scale(1.05); 
}

/* --- FOTOS ANCHO COMPLETO CON DIFUMINADO --- */
.seccion-foto {
    padding: 0; 
    /* El margen negativo tira de las secciones superior e inferior para que se superpongan a la foto */
    margin: -50px 0; 
    width: 100%;
    position: relative;
    /* Las demás secciones tienen z-index: 2. Al ponerle 1 a la foto, esta se va hacia el fondo */
    z-index: 1; 
    pointer-events: none; /* Asegura que la foto no bloquee clics en botones o enlaces cercanos */
}

.foto-pareja {
    width: 100%;
    max-width: 1080px;
    display: block;
    border-radius: 0; 
    box-shadow: none;
    
    /* Aumenté ligeramente el porcentaje de difuminado (de 15% a 20%) 
       para que la transición con los márgenes negativos sea mucho más suave y natural */
    -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 20%, black 80%, transparent 100%);
    mask-image: linear-gradient(to bottom, transparent 0%, black 20%, black 80%, transparent 100%);
}

/* --- SECCIÓN FAMILIA Y PADRINOS --- */
.seccion-familia {
    padding: 20px 20px 0 20px; 
    position: relative;
    z-index: 2;
}

.texto-familia {
    font-size: 1.1rem;
    margin-bottom: 25px;
    color: var(--color-texto);
}

.bloque-nombres {
    margin-bottom: 35px;
}

.bloque-nombres p {
    font-family: var(--fuente-cursiva);
    font-size: 1.5rem; 
    color: #555; 
    margin-bottom: 20px;
    line-height: 1.2;
}

.tipo-padrino {
    display: block; 
    font-size: 1.5rem;
    font-style: italic; 
    color: #8b99a8;
    margin-top: 6px; 
    font-family: var(--fuente-global); 
}

.texto-anuncio {
    font-size: 1.2rem;
    letter-spacing: 2px;
    margin-top: 40px;
    margin-bottom: 10px;
    color: var(--color-texto);
    font-weight: 600;
}

/* --- SECCIÓN NOMBRES Y FLORES LATERALES --- */
.seccion-nombres {
    position: relative;
    padding: 80px 0 10px 0;
    width: 100%; 
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 2;
    overflow: hidden; 
}

.flor-lateral {
    position: absolute;
    width: 35vw; 
    max-width: 290px; 
    z-index: 1; 
    pointer-events: none; 
    
    /* ESTA ES LA MAGIA DEL CENTRADO VERTICAL */
    top: 50%; 
    transform: translateY(-50%); 
}

.flor-izq {
    /* La pegamos a la izquierda. 
       Puedes usar un valor negativo como -20px si quieres que la flor empiece más "afuera" de la pantalla */
    left: 0; 
}

.flor-der {
    /* La pegamos a la derecha. 
       También puedes usar -20px si quieres esconder el tallo */
    right: 0; 
}

.nombres-novios {
    position: relative;
    z-index: 2; 
    font-family: var(--fuente-titulos);
    font-size: 6.5rem; 
    color: var(--color-principal); 
    line-height: 0.9;
    margin: 20px 0;
}

/* --- FECHA Y CUENTA REGRESIVA --- */
.seccion-fecha {
    padding: 60px 20px;
}

.texto-invitacion-ceremonia {
    font-size: 1.2rem;
    line-height: 1.8;
    margin-bottom: 40px;
    color: var(--color-texto);
}

/* Diseño de la Fecha */
.fecha-destacada {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 50px;
}

.mes-fecha {
    font-size: 1.2rem;
    letter-spacing: 3px;
    color: var(--color-texto);
    margin-bottom: 15px;
}

.dia-anio-contenedor {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
}

/* Líneas arriba y abajo para SÁBADO y 2026 */
.dia-semana-fecha, .anio-fecha {
    font-size: 1.1rem;
    letter-spacing: 2px;
    color: var(--color-texto);
    border-top: 1px solid #d4cba8; /* Un tono crema/dorado elegante para la línea */
    border-bottom: 1px solid #d4cba8;
    padding: 12px 0;
    width: 100px; 
    text-align: center;
}

.dia-numero-fecha {
    font-size: 6rem;
    color: var(--color-principal);
    line-height: 1;
    font-weight: 300; /* Hace la letra más delgada como en la foto */
}

/* Diseño de la Cuenta Regresiva */
.falta-texto {
    font-size: 1.2rem;
    letter-spacing: 2px;
    margin-bottom: 25px;
    color: var(--color-texto);
}

.cuenta-regresiva {
    display: flex;
    justify-content: center;
    align-items: flex-start; /* Alinea arriba para que los : se centren con los números */
    gap: 15px;
}

.tiempo-caja {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 60px;
}

.tiempo-caja span {
    font-size: 4.5rem;
    font-weight: 300; /* Letra delgada */
    color: var(--color-principal);
    line-height: 1;
}

.tiempo-caja p {
    font-size: 1rem;
    text-transform: none; /* Texto normal, no todo mayúsculas */
    letter-spacing: 0;
    margin-top: 15px;
    color: var(--color-texto);
}

.dos-puntos {
    font-size: 4.5rem;
    font-weight: 300;
    color: var(--color-principal);
    line-height: 0.9;
    margin-top: -2px; /* Alineación óptica con los números */
}

/* Ajustes para Teléfonos Móviles (Para que no se deforme) */
@media (max-width: 600px) {
    .dia-semana-fecha, .anio-fecha {
        width: 80px;
        font-size: 0.9rem;
        padding: 8px 0;
    }
    .dia-numero-fecha {
        font-size: 5rem;
    }
    .tiempo-caja span, .dos-puntos {
        font-size: 3rem; /* Achicamos los números en el celular */
    }
    .cuenta-regresiva {
        gap: 8px; /* Reducimos el espacio entre números */
    }
    .tiempo-caja {
        min-width: 45px;
    }
}

/* --- BOTONES Y TARJETAS --- */
.btn-principal {
    display: inline-block;
    background-color: var(--color-principal);
    color: white;
    text-decoration: none;
    padding: 12px 30px;
    border-radius: 25px;
    font-weight: 600;
    letter-spacing: 1px;
    margin-top: 15px;
    transition: background 0.3s, transform 0.3s;
}

.btn-principal:hover {
    background-color: #4a5123; 
    transform: translateY(-3px);
}

/* --- TARJETAS DE UBICACIÓN --- */
.seccion-ubicaciones {
    padding: 20px 20px;
    position: relative;
    z-index: 2;
}

.tarjeta-ubicacion {
    position: relative;
    margin-bottom: 60px;
    padding: 40px 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* Flor de la tarjeta pegada arriba a la derecha */
.flor-tarjeta-der {
    position: absolute;
    top: -50px; /* Sube la flor por encima del borde de la tarjeta */
    right: -20px; /* La pega al borde derecho de la pantalla */
    width: 45vw; /* Tamaño dinámico */
    max-width: 220px;
    z-index: 1; /* Detrás del texto */
    pointer-events: none;
}

/* --- TARJETAS DE UBICACIÓN --- */
.tarjeta-ubicacion {
    position: relative;
    margin-bottom: 5px; 
    display: flex;
    flex-direction: column;
    align-items: center;
}

.tarjeta-ubicacion:last-child {
    margin-bottom: 0;
}

/* Base general para todos los iconos de ubicación */
.icono-ubicacion {
    margin-bottom: 15px; 
    position: relative;
    z-index: 2;
}

/* Modificadores de ancho específicos */
.icono-iglesia {
    width: 100px;
}

.icono-copas {
    width: 60px;
}

/* --- TIPOGRAFÍA Y TEXTOS DE UBICACIÓN --- */
.titulo-ubicacion {
    font-family: var(--fuente-titulos); 
    font-size: 4.5rem;
    color: var(--color-principal); 
    font-weight: normal;
    margin-bottom: 20px;
    position: relative;
    z-index: 2;
    line-height: 1;
}

.detalle-ubicacion {
    position: relative;
    z-index: 2;
    margin-bottom: 25px;
    line-height: 1.8;
}

.detalle-ubicacion p {
    margin-bottom: 10px;
    color: var(--color-texto);
    font-size: 1.1rem;
}

.texto-destacado {
    font-size: 1.1rem !important;
    letter-spacing: 1px;
    margin: 15px 0 !important;
}

.texto-subrayado {
    border-bottom: 1px solid #b5b5b5; 
    padding-bottom: 3px;
}


.icono-seccion {
    width: 60px;
    margin-bottom: 15px;
}

.icono-timeline {
    width: 70px;
    margin-bottom: 15px;
    position: relative;
    z-index: 2;
}

.icono-traje {
    width: 120px;
    margin-bottom: 15px;
    position: relative;
    z-index: 2;
}

/* --- LÍNEA DE TIEMPO (ITINERARIO ZIG-ZAG PERFECTO) --- */
.seccion-itinerario {
    position: relative;
    padding: 80px 20px 100px 20px;
    z-index: 2;
    overflow: hidden; 
}

/* Flores en las esquinas */
.flor-itinerario {
    position: absolute;
    width: 45vw;
    max-width: 250px;
    z-index: 1;
    pointer-events: none;
}

.flor-itinerario.top-izq { top: -20px; left: -20px; }
.flor-itinerario.bottom-der { bottom: -20px; right: -20px; }

/* Título */
.titulo-itinerario {
    font-family: var(--fuente-titulos);
    font-size: 5.5rem;
    color: var(--color-principal);
    line-height: 0.8;
    margin-bottom: 70px;
    position: relative;
    z-index: 2;
    font-weight: normal;
    text-align: center;
}

.titulo-itinerario span {
    font-size: 3.5rem;
    color: #3b4c6b; /* Azul-grisáceo elegante de tu captura */
    margin-left: 50px;
}

.linea-tiempo {
    position: relative;
    max-width: 600px;
    margin: 0 auto;
    z-index: 2;
}

/* Contenedor que crea la línea dorada exacta */
.eventos-contenedor {
    position: relative;
}

/* La línea empieza en el primer corazón y termina en el último de forma milimétrica */
.eventos-contenedor::before {
    content: '';
    position: absolute;
    width: 2px;
    background-color: #d4cba8;
    top: 80px; /* Mitad de los 160px del primer evento */
    bottom: 80px; /* Mitad de los 160px del último evento */
    left: 50%;
    transform: translateX(-50%);
    z-index: 1;
}

/* Filas de eventos idénticas */
.evento-timeline {
    position: relative;
    width: 100%;
    display: flex;
    align-items: center;
    min-height: 160px; /* Esto asegura que todos estén separados a la misma distancia exacta */
}

/* Alineaciones Izquierda y Derecha */
.evento-timeline.izq { justify-content: flex-start; }
.evento-timeline.der { justify-content: flex-end; }

/* Contenido de texto e icono */
.caja-contenido {
    width: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 0 20px;
}

/* Corazón centrado absolutamente en la fila */
.marcador-corazon {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%); /* Centrado total */
    width: 28px;
    height: 28px;
    background-color: var(--color-fondo);
    border: 2px solid #d4cba8;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #d4cba8;
    font-size: 13px;
    z-index: 2;
}

/* Textos de las horas (Color azul oscuro de tu captura) */
.caja-contenido h4 {
    font-size: 1.1rem;
    color: #2c3e50; 
    font-weight: 700;
    margin: 0 0 5px 0;
}

.caja-contenido p {
    font-size: 0.95rem;
    color: #64748b; /* Gris sutil */
    margin-bottom: 0;
}

/* Evento final (Infinito) */
.evento-final {
    text-align: center;
    margin-top: 50px;
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    z-index: 2;
}

.evento-final .icono-timeline {
    width: 110px;
    margin-bottom: 15px;
}

.evento-final p {
    font-size: 1.1rem;
    color: #64748b;
}

/* Ajustes para celulares */
@media (max-width: 600px) {
    .titulo-itinerario { font-size: 4rem; }
    .titulo-itinerario span { font-size: 2.8rem; margin-left: 20px; }
    
    .evento-timeline { min-height: 140px; }
    .eventos-contenedor::before { top: 70px; bottom: 70px; } /* Ajuste de línea para móvil */
    
    .caja-contenido { padding: 0 5px; }
    .icono-timeline { width: 55px; margin-bottom: 10px; }
    .caja-contenido h4 { font-size: 0.9rem; }
    .caja-contenido p { font-size: 0.8rem; }
}

/* --- ANIMACIONES ESTRUCTURALES --- */
.animar-fade {
    opacity: 0;
    transition: opacity 1s ease-out;
}

.animar-fade.visible {
    opacity: 1;
}

.animar-slide-up {
    opacity: 0;
    transform: translateY(50px);
    transition: opacity 1s ease-out, transform 1s ease-out;
}

.animar-slide-up.visible {
    opacity: 1;
    transform: translateY(0);
}

.separador {
    height: 1px;
    background-color: rgba(99, 107, 47, 0.2);
    width: 50%;
    margin: 40px auto;
}

/* --- AGRADECIMIENTO FINAL --- */
.agradecimiento {
    font-family: var(--fuente-titulos); /* Aplica tu fuente Kinglane */
    font-size: 5rem; /* Un tamaño grande para que destaque al final */
    color: var(--color-principal); /* El verde oliva de la temática */
    font-weight: normal;
    margin-top: 50px;
    line-height: 1;
}

/* Ajuste para pantallas pequeñas (móviles) */
@media (max-width: 600px) {
    .agradecimiento {
        font-size: 4rem;
        margin-top: 30px;
    }
}

/* --- SECCIÓN REGALOS (ARCO) --- */
.seccion-regalos {
    padding: 60px 20px;
    display: flex;
    justify-content: center;
    position: relative;
    z-index: 2;
}

/* El fondo en forma de arco */
.arco-regalos {
    background-color: #FDF9F1; /* Color crema suave */
    border: 1px solid #d4cba8; /* Borde dorado/crema oscuro */
    /* Curva solo en las esquinas superiores para crear el arco */
    border-radius: 250px 250px 0 0; 
    padding: 80px 40px 60px 40px;
    max-width: 480px;
    width: 100%;
    position: relative;
    text-align: center;
    box-shadow: 0 10px 30px rgba(0,0,0,0.03); /* Sombra muy sutil */
}

/* Flores que se salen del arco */
/* Flores que se salen del arco (Tamaño para Computadora) */
.flor-arco {
    position: absolute;
    width: 45vw; /* Un tamaño relativo más equilibrado */
    max-width: 280px; /* Aquí está la magia: le permitimos crecer hasta 280px en PC */
    z-index: 3;
    pointer-events: none;
}

.flor-arco.top-izq {
    top: -50px;
    left: -60px; /* Las empujamos un poco más afuera para que el arco respire */
}

.flor-arco.bottom-der {
    bottom: -50px;
    right: -60px; 
}
/* Iconos y Textos del Arco */
.icono-regalo {
    width: 65px;
    margin-bottom: 20px;
    position: relative;
    z-index: 2;
}

.titulo-regalos {
    font-family: var(--fuente-titulos);
    font-size: 5rem;
    color: #2c3e50; /* Azul oscuro elegante similar a la foto */
    margin-bottom: 25px;
    font-weight: normal;
    line-height: 1;
    position: relative;
    z-index: 2;
}

.texto-arco {
    font-size: 1.1rem;
    line-height: 1.8;
    color: var(--color-texto);
    margin-bottom: 35px;
    position: relative;
    z-index: 2;
}

/* Bloques de Bancos */
.bloque-banco {
    margin-bottom: 30px;
    position: relative;
    z-index: 2;
}

.bloque-banco p {
    margin-bottom: 5px;
    font-size: 1.05rem;
    color: var(--color-texto);
}

.banco-nombre {
    font-size: 1.2rem !important;
    color: #2c3e50 !important;
    font-weight: 600;
    margin-bottom: 10px !important;
}

.banco-titular {
    font-size: 0.95rem !important;
    color: #64748b !important; /* Gris suave */
}

/* --- MESA DE REGALOS VIRTUAL (NUEVO DISEÑO CON AYUDA VISUAL) --- */
.contenedor-codigo-ayuda {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-bottom: 25px;
    flex-wrap: nowrap; /* Evita que el ícono se vaya abajo */
}

/* Igualamos el tamaño y color a los de las cuentas bancarias */
.texto-codigo-novios {
    font-size: 1.05rem !important;
    color: var(--color-texto) !important;
    margin-bottom: 0 !important; /* Para que quede alineado perfecto con el ícono */
    white-space: nowrap; /* Fuerza a que "737783-05" NUNCA se parta en dos líneas */
}

.texto-codigo-novios strong {
    font-weight: 600;
}

/* Contenedor interactivo del ícono */
.icono-ayuda-container {
    position: relative;
    display: flex;
    align-items: center;
    cursor: help;
}

.icono-info {
    width: 20px;
    height: 20px;
    color: #8b99a8;
    transition: color 0.3s;
}

.icono-ayuda-container:hover .icono-info {
    color: #636B2F; /* El ícono se vuelve verde oliva al pasar el mouse */
}

/* Popover / Tooltip con la Imagen */
.tooltip-imagen {
    visibility: hidden;
    opacity: 0;
    position: absolute;
    bottom: 140%;
    left: 50%;
    transform: translateX(-50%) translateY(10px);
    background-color: #ffffff;
    padding: 10px;
    border-radius: 12px;
    box-shadow: 0 10px 25px rgba(0,0,0,0.15);
    width: 250px;
    z-index: 100;
    transition: all 0.3s ease;
    border: 1px solid #e2e8f0;
}

.tooltip-imagen img {
    width: 100%;
    height: auto;
    border-radius: 6px;
    display: block;
    margin-bottom: 8px;
    border: 1px solid #f1f5f9;
}

.tooltip-imagen p {
    font-size: 0.85rem;
    color: #64748b;
    margin: 0;
    line-height: 1.2;
    font-weight: 500;
}

.tooltip-imagen::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 50%;
    margin-left: -8px;
    border-width: 8px;
    border-style: solid;
    border-color: #ffffff transparent transparent transparent;
}

.icono-ayuda-container:hover .tooltip-imagen,
.icono-ayuda-container:active .tooltip-imagen {
    visibility: visible;
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

/* Botón Falabella - AHORA EN VERDE OLIVA */
.btn-falabella {
    display: inline-block;
    background-color: #636B2F; /* Verde Oliva de la temática */
    color: #ffffff !important; 
    text-decoration: none;
    padding: 14px 35px;
    border-radius: 30px;
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: 1px;
    transition: all 0.3s ease;
    box-shadow: 0 4px 10px rgba(99, 107, 47, 0.2); /* Sombra oliva suave */
}

.btn-falabella:hover {
    background-color: #4b5223; /* Verde Oliva más oscuro */
    transform: translateY(-2px);
    box-shadow: 0 6px 15px rgba(99, 107, 47, 0.3);
}

/* --- AJUSTE DEL TOOLTIP PARA MÓVILES --- */
@media (max-width: 600px) {
    .tooltip-imagen {
        /* Desanclamos del centro y anclamos a la derecha */
        left: auto;
        right: -15px; 
        transform: translateY(10px); /* Quitamos el translateX(-50%) */
    }

    /* Ajuste de la animación al aparecer en móvil */
    .icono-ayuda-container:hover .tooltip-imagen,
    .icono-ayuda-container:active .tooltip-imagen {
        transform: translateY(0); /* Aparece sin el translateX */
    }

    /* Movemos el triangulito (flecha) hacia la derecha para que coincida con la "i" */
    .tooltip-imagen::after {
        left: auto;
        right: 18px; 
        margin-left: 0;
    }
}

/* Ajustes para móviles (Sección Regalos) */
@media (max-width: 600px) {
    .arco-regalos {
        border-radius: 180px 180px 0 0; 
        padding: 70px 25px 50px 25px;
    }
    
    .titulo-regalos { font-size: 4.5rem; }
    
    /* --- AGREGAMOS EL LÍMITE DE TAMAÑO PARA LA FLOR AQUÍ --- */
    .flor-arco {
        max-width: 160px; 
    }

    .flor-arco.top-izq { left: -25px; top: -25px; }
    .flor-arco.bottom-der { right: -25px; bottom: -25px; }
}