* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
body {
    background: #ffffff;
    color: #111;
    font-family: "Abhaya Libre", serif;
  font-weight: 400;
  font-style: normal;
    letter-spacing: 0.5px;
}
/*Hero*/
.hero {
  position: relative;
  min-height: 100vh;

  background-image:
    linear-gradient(
      to bottom,
      rgba(255,255,255,0) 65%,
      rgba(255,255,255,1) 100%
    ),
    url("Fotos/Editfondo.jpg");

  background-size: cover;
  background-position: center;
}


.hero .hero-img { 
    position: absolute; 
    top: 15px; 
    left: 50%; 
    width: 50px;
    opacity: 0.9; 
    transform: translateX(-50%); 
    z-index: 5 
}

 .hero-text {
  position: absolute;
  top: 10%;           /* baja el texto */
  left: 50%;
  transform: translateX(-50%);
  text-align: center;
  color: #444;
  text-shadow: 0 2px 6px rgba(0,0,0,0.15);
    }

.us {
  font-size: 0.9rem;
  letter-spacing: 3px;
}

.couple {
  font-size: 2.5rem;
  font-family: "Kaisei Tokumin", serif;
}
.date {
    margin-top: 10px;
    font-size: 1.8rem;
    letter-spacing: 4px;
}

.date-numbers {
  font-size: 2rem;   
  letter-spacing: 4px;
}

.invite-block{
    min-height: auto;
  display: flex;
  text-align: center;
    margin-top: -150px; 
  padding-top: 120px;
    padding: 40px 20px;
    flex-direction: column;
  justify-content: center;
}

/*CONTENEDOR*/
.wrapper {
    margin: auto;
    background-color:#fff;
}
/*SECCIONES*/
.section {
    padding: 10px 15px;
    text-align: center;
}

/*TEXTO*/
h1 {
    margin-bottom: 6px;
}
.section h2 {
    font-family: "Abhaya Libre", serif;
  font-weight: 500;
  font-style: normal;
    font-size: 1.3rem;
    letter-spacing: 3px;
    text-transform: uppercase;
    margin-bottom: 8px;
}
.section p,
.section li {
    font-size: 1rem;
    line-height: 1.35;
    margin: 6px 0;
}
ul {
    list-style: none;
}
.small {
    font-size: 0.9rem;
    color: #555;
}

/* ===================== ITINERARIO ===================== */
/* Título */
.it-title{
  font-family: "Abhaya Libre", serif;
  font-weight: 700;
  font-style: normal;
  font-size: 1.3rem;
  letter-spacing: 3px;
  text-transform: uppercase;
  margin: 0 0 20px 0;
  text-align: center;
}
.section {
    padding: 30px 20px;
}
.event-details {
  margin-bottom: 10px;
    margin-top: 0; 
    padding-top: 10px; 
}
.itinerary-section {
    margin-top: 0;
    padding-bottom: 5px;
    display: flex;
    justify-content: center;
}
section:has(.timeline) {
  background: #dcdcdc;
    padding: 20px 10px;
    border-radius: 4px;
}
/* Contenedor del timeline: grid de 3 columnas (izq | línea | der) */
.timeline{
    background: #fff;
  padding: 30px 0 50px 0;
  border-radius: 6px;
  box-shadow: 0 6px 18px rgba(0,0,0,0.08);
    width: 100%;
    max-width: 650px;
    margin: 0 auto;
    
  position: relative;
  width: 95%;
  max-width: 800px;
  display: grid;
  grid-template-columns: 1fr 2rem 1fr;
  column-gap: 24px;
  row-gap: 28px;
}
/* Línea vertical central */
.timeline::before{
  content:"";
  position:absolute;
  left:50%;
  top:30px;
  bottom:30px;
  width:2px;
  background:#2b2b2b;
  transform:translateX(-50%);
  z-index:0; /* la línea va detrás */
}
/* Cada evento debe ocupar una fila completa del grid padre */
.timeline > .event{
  grid-column: 1 / -1;
}
/* Cada evento es un mini-grid de 3 columnas y 2 filas:
   Fila 1: hora (arriba)
   Fila 2: contenido (abajo) */
.event{
  display:grid;                         
  grid-template-columns: 1fr 2rem 1fr;  /* izq | línea | der */
  grid-template-rows: auto auto;        /* 1: hora, 2: contenido */
  align-items:center;
  position:relative;
}
/* Puntito centrado en la columna de la línea, a mitad entre hora y contenido */
.event::after{
  content:"";
  grid-column: 2;        
  grid-row: 1 / 3;       
  justify-self:center;
  align-self:center;
  width:10px;
  height:10px;
  background:#2b2b2b;
  border-radius:50%;
  z-index:1;            
}
/* ----- Hora (encima) ----- */
.event .time{
  color:#555;
  font-size:1rem;
  line-height:1;
  white-space:nowrap;
  margin:0 0 6px 0;     
  z-index:1;
}
/* Hora y contenido del lado izquierdo */
.event.left  .time   { grid-column: 1 / 2; grid-row: 1; justify-self: end;  text-align: right; }
.event.left  .content{ grid-column: 1 / 2; grid-row: 2; justify-self: end;  text-align: right; }
/* Hora y contenido del lado derecho */
.event.right .time   { grid-column: 3 / 4; grid-row: 1; justify-self: start; text-align: left; }
.event.right .content{ grid-column: 3 / 4; grid-row: 2; justify-self: start; text-align: left; }
/* ----- Contenido (icono + texto) ----- */
.event .content{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 10px;
  background:transparent;
  line-height:1.2;
  border-radius:10px;
  z-index:1;
}
.event i{
  font-size:18px;
  display:inline-block;
  transform: translateY(-1px);
}
.event .content p{ margin:0; }
.event .content strong{ font-weight:600; }


/* ===== Icono PNG Tornaboda ===== */
.icon-png{
  width:18px;
  height:18px;
  display:inline-block;
  background-size:contain;
  background-repeat:no-repeat;
  background-position:center;
  transform: translateY(-1px); /* igual que los FA */
}

/* Icono específico */
.icon-tornaboda{
  background-image: url("Fotos/dance_8904190.png");
}

.icon-vals{
  background-image: url("Fotos/people_10048200.png");
}


/* ============ Responsive (móvil) ============ */
@media (max-width: 600px){
  .timeline{
    grid-template-columns: 1fr 1.6rem 1fr; /* línea un poco más delgada */
    column-gap:14px;
    row-gap:22px;
    padding:0 6px;
      width: 92%;
  }
  .timeline > .event{
    grid-column: 1 / -1; /* mantener cada evento en su propia fila */
  }
  .event{
    grid-template-columns: 1fr 1.6rem 1fr; /* mini-grid consistente */
    grid-template-rows: auto auto;         /* hora arriba */
  }
  .event .time{ font-size:1rem; margin-bottom:5px; }
  .event i{ font-size:18px; }
    .rsvp-form{
        width: 92%
    }
}


.dress-img {
  width: 90px;
  margin: 10px auto;
  display: block;
}

.dress-section{
  padding: 30px 20px 20px;
  border-radius: 12px;
  margin: 20px auto;
  max-width: 400px;
    display:flex;
align-items:center;
flex-direction:column;
}

/* Texto "Formal" */
.dress-type{
  font-size: 1.1rem;
  letter-spacing: 2px;
  margin: 6px 0 12px 0;
}

/* Texto aclaratorio */
.dress-note{
  font-size: 0.85rem;
  color: #555;
  max-width: 320px;
  margin: 0 auto 10px auto;
  line-height: 1.5;
text-align:center;
}

.dress-colors {
    display: flex;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap; 
}

/* Círculos */
.color-circle{
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 1.2px solid #bbb;
}


/* Colores */
.color-circle.white{
  background: #ffffff;
}

.color-circle.ivory{
  background: #f5f0e6;
}

.color-circle.beige{
  background: #e4d2b8;
}

@media (max-width: 600px) {

  .dress-img {
    width: 120px; /* imagen más grande en móvil */
  }

  .dress-note {
    font-size: 0.95rem;
    max-width: 90%;
  }

  .color-circle {
    width: 22px;   /* círculos más grandes */
    height: 22px;
  }

  .dress-colors {
    gap: 16px;     /* más espacio entre colores */
    margin-top: 8px;
  }
}

/*FOTOS*/

.quote {
  text-align: center;
  font-style: italic;
  margin: 40px auto 20px;
  color: #5f5f5f;
  font-size: 1.1rem;
  line-height: 1.6;
  max-width: 600px;
  padding: 15px 20px;
  background: rgba(255,255,255,0.6);
  border-radius: 12px;
font-weight: bold;
}

.quote span {
  display: block;
  margin-top: 10px;
  font-size: 0.85rem;
  letter-spacing: 1px;
}

.gallery img {
  max-width: 100%;
  height: auto;
  display: block;
}
.gallery {
  display: flex;
  flex-direction: column;
  gap: 12px;
padding: 5px 0 !important;
}

.section:has(.gallery) {
  background: #DCDCDC;  /* mismo crema del itinerario */
  padding: 30px 15px;
    border-radius: 4px;
}

.gallery h2 {
  text-align: center;
  margin-bottom: 12px;
  letter-spacing: 2px;
}

.block {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
    align-items: stretch;
}
.block img {
  width: 100%;
  height: auto;          /*  respeta si es horizontal o vertical */
  border-radius: 10px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
  display: block;
}

.stack { /*columan con dos fotos*/
  display: grid;
  grid-template-rows: 1fr 1fr;
  gap: 8px;
}
.block.left img:first-child{
  grid-row: span 2;
}
.block.right img:last-child{
  grid-row: span 2;
}
.block,
.stack { margin: 0;
       padding: 0; }

@media (max-width: 600px) {

  .block {
    grid-template-columns: 1fr;
  }

  .stack {
    grid-template-rows: auto;
  }

  .block.left img:first-child,
  .block.right img:last-child {
    grid-row: auto;
  }

  .gallery img {
    max-height: none;
  }
}

.event-details .button{
    display: inline-block;
    margin-top: 8px;
    padding: 10px 22px;
    border: 1px #000 solid;
    border-radius: 20px;
    text-decoration: none;
    margin-bottom: 18px;
    font-size: 13px;
    letter-spacing: 1px;
    color: black;
}
/*RSVP*/
    
.rsvp-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-width: 400px;
  margin: 20px auto 0;
width: 90%;
}
.rsvp-form input,
.rsvp-form select {
  padding: 10px 14px;
  border-radius: 20px;
  border: 1px solid #ccc;
  font-family: "Abhaya Libre", serif;
  font-weight: 400;
  font-style: normal;
  font-size: 1.2rem;
}
.rsvp-form button {
  margin-top: 10px;
  padding: 10px;
  border-radius: 25px;
  border: 1px solid #000;
  background: #000;
  color: #fff;
  font-size: 1rem;
  letter-spacing: 2px;
  cursor: pointer;
}
#formMsg {
  margin-top: 10px;
  font-size: 1rem;
}
.no-kids {
    background: #fff;
    text-align: center;
    padding: 20px 25px;
    margin-top: 30px;
    font-size: 16px;
    letter-spacing: 1px;
}
.no-kids h2 {
    font-size: 16px;
    letter-spacing: 2px;
    margin-top: 15px;
    margin-bottom: 10px;
    color: #2b2b2b;
}
.no-kids p {
    font-size: 15px;
    line-height: 1.6;
    color: #444;
}
@media (min-width: 768px) {
    .wrapper {
        max-width: 800px;
    }
    .hero h1 {
        font-size: 4rem;
    }
}

.countdown-section {
  background: #dcdcdc;
  padding: 40px 10px;
  text-align: center;
    border-radius: 5px;
}
.countdown-section .small {
  font-size: 1.3rem;
  letter-spacing: 2px;
  margin-bottom: 16px;
  color: #444;
}


.countdown {
  display: flex;
  justify-content: center;
  gap: 16px;
}

.countdown .segment {
  display: flex;
  flex-direction: column;   /* 👈 número arriba, texto abajo */
  align-items: center;
  min-width: 60px;
}

.countdown .segment strong {
  font-size: 2.4rem
}
.countdown-section .corner-img {
    position: absolute;
    bottom: 10px;     
    left: 10px;      
    width: 40px;      
    opacity: 0.8;
      filter: drop-shadow(0 0 6px rgba(255, 255, 255, 0.6));
}

footer {
  display: flex;
  justify-content: center;
  align-items: center;
  background: #000;
  color: #fff;
  text-align: center;
  padding: 30px 10px;
}
footer p{
  text-transform: uppercase;
  letter-spacing: 3px;
  font-size: 0.8rem;
  margin: 0;
}

/* --- ANIMACIONES GENERALES --- */
.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: all 0.9s ease-out;
}
.reveal.active {
  opacity: 1;
  transform: translateY(0);
}
/* Portada (fade in suave) */
.hero {
  opacity: 0;
  transform: scale(1.05);
  transition: all 1.2s ease-out;
}
.hero.active {
  opacity: 1;
  transform: scale(1);
}
.fade-in {
  opacity: 0;
  transform: translateY(30px);
  transition: all 0.8s ease;
}
.fade-in.active {
  opacity: 1;
  transform: translateY(0);
}
/* Itinerario fade in */
.timeline {
  opacity: 0;
  transform: translateY(30px);
  transition: all 1s ease-out;
}
.timeline.active {
  opacity: 1;
  transform: translateY(0);
}


























