
  :root {
    --dorado-accion: #E6AB45;   /* Botones y números importantes */
    --beige-piedra: #BCB294;    /* Bordes y textos secundarios */
    --arena-suave: #E6CE95;     /* Fondos de cajas y detalles */
    --crema-fondo: #F9EFE3;     /* Fondo principal de la web */
    --verde-musgo: #C0B46E;     /* Iconos y acentos botánicos */
    
    /* El color Terracota de la invitación para vuestros nombres */
    --terracota-nombres: #D16B4D; 
    
    /* Texto oscuro para legibilidad */
    --texto-oscuro: #4A4439;
        }

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

        body {
            background-image: url('background-2.jpg');
			background-attachment: fixed;
			background-repeat:no-repeat;
			background-position: center;
			background-size: cover;
			background-color: var(--crema-fondo);
            font-family: 'Poppins', sans-serif;
            color: var(--texto-oscuro);
            text-align: center;
            overflow-x: hidden;
        }

        /* Hero Section */
        header {
            height: 100vh;
            background: linear-gradient(rgba(0,0,0,0.3), rgba(0,0,0,0.3)), 
                        url('IMG_20230904_131150.jpg') center/cover;
            display: flex;
            flex-direction: column;
            justify-content: flex-end;
            align-items: center;
            color: white;
            padding-bottom: 20vh;
        }

        h1 {
            font-family: 'Dancing Script', cursive;
            font-size: 5rem;
            margin-bottom: 10px;
            text-shadow: 2px 2px 4px rgba(0,0,0,0.5);
        }
		
		header h1{
			font-family: 'Dancing Script', cursive;
			font-size: 5rem;
			margin-top: 20px; /* Espacio extra por encima de los nombres */
			margin-bottom: 10px;
			text-shadow: 2px 2px 4px rgba(0,0,0,0.5);
		}
		.fecha-header:first-of-type {
		margin-top: 40px; /* Empuja todo el bloque de texto hacia abajo */
		}

        .fecha-header {
            font-family: 'Playfair Display', serif;
            font-size: 1.5rem;
            letter-spacing: 3px;
            text-transform: uppercase;
        }
		
	
        /* Contador */
        .countdown-container {
            padding: 60px 20px;
            background: white;
        }

        .countdown-title {
            font-family: 'Playfair Display', serif;
            margin-bottom: 30px;
            font-size: 2rem;
            color: var(--beige-piedra);
        }

        #countdown {
            display: flex;
            justify-content: center;
            gap: 20px;
            flex-wrap: wrap;
        }

        .time-box {
            background: white;
            padding: 5px;
			border: 1px solid var(--arena-suave);
            border-radius: 10px;
            min-width: 7px;
            box-shadow: 0 4px 15px rgba(188,178,148,0.2);
        }

        .time-box span {
            display: block;
            font-size: 2rem;
            font-weight: bold;
            color: var(--dorado-accion);
        }

        /* Secciones de Información */
        .info-section {
            padding: 80px 20px;
            max-width: 800px;
            margin: 0 auto;
        }
		 .timeline-section {
            padding: 0px 20px;          
        }


        .card {
           background: white;
			padding: 40px;
			border-radius: 20px;
			box-shadow: 0 10px 30px rgba(0,0,0,0.03);
			
			display: flex;
			flex-direction: column; /* Alinea los hijos uno debajo de otro */
          
        }

        .card h2 {
            font-family: 'Playfair Display', serif;
			font-size: 2.3rem;
            margin-bottom: 20px;
            color: var(--beige-piedra);
        }
		.card h3 {
            font-family: 'Playfair Display', serif;
            margin-bottom: 10px;
            color: var(--beige-piedra);
        }

        .btn {
            display: inline-block;
            padding: 12px 30px;
            background-color: var(--dorado-accion);
            color: white;
            text-decoration: none;
            border-radius: 50px;
            transition: 0.3s;
            margin-top: 20px;
        }

        .btn:hover {
            background-color: var(--beige-piedra);
            transform: scale(1.05);
        }
		

        footer {
            padding: 40px;
            font-family: 'Dancing Script', cursive;
            font-size: 1.8rem;
            color: var(--verde-musgo);
        }

        @media (max-width: 600px) {
            h1 { font-size: 3rem; }
            .time-box { min-width: 70px; padding: 5px; }
        }
		.rsvp-section {
			padding: 60px 20px;
			 /* Un tono crema suave para diferenciar la sección */
		}

		.rsvp-card {
			max-width: 600px;
			margin: 0 auto;
			border: 2px solid var(--beige-piedra);
			background: white;
		}

		.icon-wedding {
			font-size: 3rem;
			margin-bottom: 10px;
			color: var(--verde-musgo);
		}

		.form-features {
			display: flex;
			flex-direction: column;
			align-items: center;
			gap: 10px;
			margin: 20px 0;
			font-size: 0.9rem;
			color: #666;
		}

		.left {
			float:left;
		}


    .carousel-slide img {
        width: 100%;
        display: none; /* Escondemos todas las fotos */
        transition: opacity 0.5s ease-in-out;
    }

    .carousel-slide img.active {
        display: block; /* Solo mostramos la activa */
    }

    /* Estilo de las flechas */
    .prev, .next {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        background-color: rgba(255, 255, 255, 0.7);
        color: #333;
        padding: 15px;
        border: none;
        cursor: pointer;
        font-size: 20px;
        border-radius: 50%;
        margin: 0 10px;
        transition: background 0.3s;
    }

    .prev:hover, .next:hover {
        background-color: white;
    }

    .next { right: 0; }
    .prev { left: 0; }
	
	.regalos-section {
        padding: 50px 20px;
        text-align: center;
        background-color: #fdfaf7; /* Un color crema suave */
        font-family: 'Segoe UI', sans-serif;
    }
    .regalos-container {
        display: flex;
        justify-content: center;
        gap: 30px;
        flex-wrap: wrap;
        margin-top: 30px;
    }
    .regalo-card {
        background: white;
        padding: 30px;
        border-radius: 15px;
        box-shadow: 0 5px 15px rgba(0,0,0,0.05);
        max-width: 300px;
        flex: 1;
    }
    .logo-bizum { width: 100px; margin-bottom: 15px; }
    .numero-telefono {
        display: block;
        font-size: 1.4rem;
        color: #00aabd; /* Color corporativo Bizum */
        margin: 10px 0;
    }
    .iban {
        display: block;
        background: #f4f4f4;
        padding: 10px;
        margin: 10px 0;
        font-size: 0.9rem;
    }

	
	body {
        padding-top: 60px; /* Evita que la barra tape el inicio de la página */
    }

    .navbar-fija {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 60px;
        background-color: rgba(249, 239, 227, 0.95); /* Crema con ligera transparencia */
        display: flex;
        justify-content: space-between; /* Distribuye izquierda, centro y derecha */
        align-items: center;
        padding: 0 15px;
        box-shadow: 0 2px 10px rgba(0,0,0,0.1);
        z-index: 2000; /* Asegura que esté por encima de todo */
        box-sizing: border-box;
		border-bottom: 1px solid var(--arena-suave);
    }


    .nav-nombres {
        flex: 1;
        text-align: left;
        font-family: 'Dancing Script', cursive;
        font-size: 1.5rem;
        color: var(--terracota-nombres);
        white-space: nowrap;
		padding-left: 20px;
    }
	
	.nav-actions{
		display: flex;
		align-items: right;
		gap: 25px;
		padding-right: 10px;
	}
    .btn-nav {
        background-color: var(--dorado-accion);
        color: white;
        padding: 8px 15px;
        border-radius: 50px;
        text-decoration: none;
        font-family: 'Poppins', sans-serif;
        font-size: 0.8rem;
        font-weight: bold;
        transition: 0.3s;
    }

    .btn-nav:hover {
        background-color: var(--beige-piedra);
		transform: translateY(-2px);
    }

    /* Ajuste para móviles: ocultamos la fecha para que no se amontone */
    @media (max-width: 600px) {
        .nav-fecha { display: none; }
        .nav-nombres { text-align: left; }
    }
	
	/* --- Estilos del Timeline --- */

/* La línea vertical central */
.timeline {
    position: relative;
    max-width: 900px;
    margin: 0 auto;

}

.timeline::after {
    content: '';
    position: absolute;
    width: 4px;
    background-color: var(--beige-piedra); /* Color de la línea */
    top: 0;
    bottom: 0;
    left: 50%;
    margin-left: -2px;
    border-radius: 2px;
}

/* Contenedores de cada evento */
.timeline-container {
    padding: 10px 40px;
    position: relative;
    background-color: inherit;
    width: 50%;
	margin-bottom: 20px;
	clear:both;
    box-sizing: border-box;
}

/* Lado Izquierdo */
.left {
    left: 0;
    text-align: right;
	padding-right: 50px;
}

/* Lado Derecho */
.right {
    left: 50%;
    text-align: left;
	padding-left:50px;
	margin-top:-30px;
}
.timeline-container:first-child{
margin-top: 0;}

/* Los círculos (puntos) en la línea */
.timeline-container::after {
    content: '';
    position: absolute;
    width: 20px;
    height: 20px;
    right: -14px; /* Ajuste para la izquierda */
    background-color: var(--crema-fondo);
    border: 4px solid var(--terracota-nombres); /* Borde terracota */
    top: 50%; 
    transform: translateY(-50%);
    border-radius: 50%;
    z-index: 1;
}

/* Corrección del punto para el lado derecho */
.right::after {
    left: -14px;
}

/* Estilo del contenido (Tarjetas de texto) */
.content {
    padding: 20px;
    background-color: rgba(255, 255, 255, 0.8); /* Fondo semitransparente */
    border-radius: 15px;
    border: 1px solid var(--arena-suave);
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
	display: inline-block;
}

.content h3 {
    color: var(--terracota-nombres);
    font-family: 'Playfair Display', serif;
    margin-bottom: 5px;
}

.content h4 {
    color: var(--dorado-accion);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 10px;
}

.link-mapa {
    color: var(--verde-musgo);
    text-decoration: none;
    font-weight: bold;
    border-bottom: 1px dotted var(--verde-musgo);
}

.btn-timeline {
    display: inline-block;
    margin-top: 10px;
    padding: 5px 15px;
    background-color: var(--dorado-accion);
    color: white;
    text-decoration: none;
    border-radius: 20px;
    font-size: 0.9rem;
}
.btn-timeline:hover {
            background-color: var(--beige-piedra);
            transform: scale(1.05);
        }
/* --- RESPONSIVE (Móvil) --- */
/* En pantallas pequeñas, la línea se mueve a la izquierda */
@media screen and (max-width: 600px) {
    .timeline::after {
        left: 31px;
    }
    
    .timeline-container {
        width: 100%;
        padding-left: 70px;
        padding-right: 25px;
    }
    
    .timeline-container::after {
        left: 21px; /* Mueve los puntos a la izquierda */
    }
    
    .left::after, .right::after {
        left: 21px;
    }
    
    .left, .right {
        left: 0%; /* Quita el zig-zag */
        text-align: left; /* Todo alineado a la izquierda */
    }
	.card h2 {
	  font-family: 'Playfair Display', serif;
	  font-size: 2.0rem;
	  margin-bottom: 20px;
	  color: var(--beige-piedra);
}
}


.historia-libre-container{
	padding: 50px 20px 10px;
	Display: flex;
	justify-content: center;
}

.historia-texto{
	max-width: 800px;
	width: 60%;
	text-align: center;
	background: transparent;
}
.historia-texto h2 {
	font-family: 'Playfair Display', serif;
    color: var(--beige-piedra);
    font-size: 2.3rem;
    margin-bottom: 30px;
}

.historia-texto p {
    font-family: 'Poppins', sans-serif;
    line-height: 1.8;
    color: var(--texto-oscuro);
    font-size: 1.1rem;
    margin-bottom: 20px;
}

.historia-texto .destacado {
    font-weight: 500;
    margin-top: 30px;
    font-style: italic;
}

/* Ajuste para pantallas verticales / móviles */
@media (max-width: 768px) {

}

/* Navbar y Hamburguesa */
.nav-links { display: flex; align-items: center; gap: 20px; }
.nav-links a { text-decoration: none; color: var(--texto-oscuro); font-weight: 500; }
.menu-toggle { display: none; font-size: 1.8rem; cursor: pointer; color: var(--terracota-nombres); }

/* Info Carousel */
.carousel-container {
	position:relative;
	width: 100%;
	max-width: 1000px;
	margin: 0 auto;
	overflow: hidden;
	padding: 20px 0;
}

.carousel-viewport {
	min-height: 450px;
	height:auto;
	padding: 20px 0;
	position: relative;
	display: flex;
	align-items: center;
}

.carousel-track {
	display: flex;
	transition: transform 0.5s cubic-bezier(0.25,1,0.5,1);
	width:100%;
}

.carousel-card {
	min-width: 50.333%;
	box-sizing: border-box;
	padding: 10px;
	opacity: 0.5;
	transform: scale(0.85);
	transition: all 0.5s ease;
	
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}

.carousel-card.active{
	opacity: 1;
	transform: scale(1.1);
	z-index: 10;
	box-shadow: 0 10px 30px rgba(0,0,0,0.1);
}

.carousel-card img{
	width: 100%;
	height: auto;
	object-fit: cover;
	border-radius: 10px;
}	

.info-card {
	background: white;
	border-radius: 15px;
	padding: 25px;
	border: 1px solid var(--arena-suave);
	height: auto;
	overflow:visible;
	display:flex;
	flex-direction: column;
	justify-content: center;
}

.carousel-dots{
	text-align: center;
	margin-top: 20px;
}
.dot{
	height:12px;
	width: 12px;
	margin: 0 5px;
	background-color:#bbb;
	border-radius: 50%;
	display: inline-block;
	cursor: pointer;
	transition: background-color 0.3s;
}

.dot.active{
	background-color: var(--terracota-nombres);
	transform: scale(1.2);
}

/* Hacemos que las tarjetas de texto sean mucho más anchas para que el contenido se lea horizontalmente */
#infoCarousel .carousel-card {
    min-width: 60%; /* En PC: La carta principal ocupa el 60% del contenedor */
    opacity: 0.3;   /* Bajamos opacidad a las laterales para destacar más la central */
    transform: scale(0.9); /* Las laterales un poco más pequeñas */
}

/* La tarjeta activa crece y se hace totalmente visible */
#infoCarousel .carousel-card.active {
    transform: scale(1.05); /* No la agrandamos tanto para que no se salga */
    opacity: 1;
    z-index: 20;
}

/* Ajuste interno de la tarjeta de información para aprovechar el ancho */
#infoCarousel .info-card {
    width: 95%; /* Usamos casi todo el ancho disponible del slide */
    max-width: none; /* Quitamos límites si los hubiera */
    padding: 30px 40px; /* Más espacio lateral para que el texto respire */
    
    /* Aseguramos que la altura sea dinámica o fija según prefieras */
    height: auto; 
    min-height: 300px; 
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* --- AJUSTE PARA MÓVIL --- */
@media (max-width: 800px) {
    /* En móvil ocupamos casi toda la pantalla para que se lea bien */
    #infoCarousel .carousel-card {
        min-width: 90%; 
    }

    .carousel-card {
        /* En móvil, mostramos casi 1 entera, con un poco de las de al lado */
        min-width: 80%; 
    }
    .carousel-viewport {
        height: 500px; /* Quizás más alto en móvil por el texto */
		padding: 10px;
    }

    .menu-toggle { display: block; }
    .nav-links { 
        display: none; flex-direction: column; position: absolute; top: 60px; left: 0; 
        width: 100%; background: var(--crema-fondo); padding: 20px; box-shadow: 0 5px 10px rgba(0,0,0,0.1); 
    }
    .nav-links.active { display: flex; }
	.btn-nav{ padding: 5px 8px; font-size: 0.65rem; white-space: nowrap;
	display: inline-flex; align-items:center; justify-content:center; line-height: 1; height:35px;}
	.menu-toggle{display:block; order:2;}
	.nav-actions{gap:10px; display:flex; align-items: center;}
	.historia-texto {
	width: 95%; /* En móvil aprovechamos más el ancho */
	max-width: none;
	padding: 0 10px;
	
    }
    
    .historia-texto h2 {
        font-size: 2rem;
    }
    
    .historia-texto p {
        font-size: 0.8rem;
		text-align: justify;
		hyphens: none;
        line-height: 1.4;
    }
	
	
	#countdown{gap: 10px;}
	.countdown-item{ min-width: 60px;}
	.countdown-item span{ font-size: 1.5rem;}
	.countdow-item p {font-size: 0.6rem;}
	
	#photoCarousel .carousel-viewport {
        height: 300px; /* Reducimos el alto del "agujero" */
    }
    #photoCarousel .carousel-card {
        min-width: 93%; /* Las fotos ocupan más ancho */
        padding: 4px; /* Menos margen entre fotos */
    }
    #photoCarousel .carousel-card img {
        height: 350px; /* Ajustamos la imagen al nuevo alto */
    }
	
	#infoCarousel .carousel-viewport {
       padding: 6px;
    }
	
	#infoCarousel .carousel-card {
        min-width: 90%; /* La tarjeta ocupa casi todo el ancho */
        padding: 4px; /* Menos espacio entre tarjetas laterales */
    }
    
    #infoCarousel .info-card {
        padding: 4px; /* Menos margen interno para ganar espacio de texto */
        min-height: 250px;
    }

    #infoCarousel .info-card h3 {
        font-size: 1.1rem;
    }

    #infoCarousel .info-card p, 
    #infoCarousel .info-card li {
        font-size: 0.85rem; /* Fuente más pequeña para que quepa más texto */
        line-height: 1.3;
    }
	.nav-nombres{
		padding-right:7px;
	}
	
	.info-section {
            padding: 40px 20px;
            max-width: 800px;
            margin: 0 auto;
        }
	.card{padding:20px;}
}