:root{
    /* Tokens */
    --bg:#FAF8F4;
    --ink:#1E1E1E;
    --muted:#3a3939;
    --rail-w:140px;           /* ancho columna izquierda (nav) */
    --maxw:1180px;            /* ancho editorial */
    --gutter:32px;
    --panel:#f0f0f3;          /* gris suave UI */
    --shadow:0 4px 20px rgba(0,0,0,.08);
  }

  /* ============ RESET BÁSICO ============ */
  html,body{margin:0;padding:0}
  img{max-width:100%;height:auto;display:block}
  a{color:inherit}

  /* ============ BASE TIPOGRAFÍA ============ */
  body{color:var(--ink);background:var(--bg)}
  h2,h3,h4,.ff-date{font-family:"Poppins",sans-serif;font-weight:400}

  /* ============ HERO ============ */
  .ff-hero{
    position:relative;
    min-height:100vh;
    display:grid;
    grid-template-columns: 1fr;
    align-items: start;
    justify-items: center;
    margin:0;padding:0;
  }
  /* Fondo en B/N (evitamos doble carga: solo ::before) */
  .ff-hero::before{
    content:"";position:absolute;inset:0;z-index:0;
    background:url('images/bg-hero.jpg') center/cover no-repeat;
    filter:grayscale(100%);
  }
  .ff-hero>.ff-rail,.ff-hero>.ff-center{position:relative;z-index:1}

  /* NAV lateral (oculto; ya no se usa menú lateral) */
  .ff-rail{display:none !important;}
  .ff-menu{list-style:none;margin:0;padding:0}
  .ff-menu li{margin:12px 0}
  .ff-menu a{
    font-family:"Poppins",system-ui,sans-serif;font-size:12px;
    letter-spacing:.18em;text-transform:uppercase;
    color:rgba(0,0,0,.7);text-decoration:none;transition:color .2s
  }
  .ff-menu a:hover{color:#666;text-decoration:underline}

  /* Centro hero */
  .ff-center{display:flex;align-items:center;justify-content:center;padding:5vh var(--gutter) 42px;width:100%}
  .ff-inner{width:min(100%,var(--maxw));text-align:center}
  .ff-hero .ff-inner{width:100%;max-width:none}
  .ff-logo{
    display:block;
    width:min(70%, 1400px); /* más grande */
    margin:6vh auto 24px;
  }
@media (min-width: 1024px){
  .ff-logo{
    width: min(58%, 1100px); /* más pequeño que antes (70%) */
    transform: translateX(2.5vw); /* empuje sutil hacia la derecha */
  }
}
  .ff-title{margin:0 0 8px;}
  .ff-date{margin:0;font-size:30px;color:#373737;letter-spacing:.2em;font-style:italic;font-family:"Poppins",sans-serif;font-weight:400}

  /* ============ SECCIONES GENÉRICAS ============ */
  .ff-section{position:relative;padding:50px;overflow:hidden;background:var(--panel)}
  .ff-section .ff-video-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
  .ff-section-inner{max-width:900px;margin:0 auto;text-align:center;position:relative;z-index:1}
  .ff-section-title{font-size:42px;margin-bottom:40px;color:#000}
  .ff-box{background:#fff;border-radius:8px;padding:40px;box-shadow:var(--shadow)}
  .ff-box h3{font-size:28px;margin:0 0 20px;color:#000}
  .ff-box p{font-family:"Poppins",sans-serif;font-size:16px;line-height:1.6;color:#333}

  /* ============ SECCIÓN BODA (split) ============ */
.ff-wedding-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  row-gap: 6px;
  column-gap: 40px;
  align-items: center;
  text-align: left;
}
  .boda-centered {
  max-width: 90%;
  margin: 0 auto;
  padding-left: 5%;
}
.ff-wedding-left{
  position:relative;
  display:flex;
  flex-direction: column;
  justify-content:center;
  align-items:center;
  min-height:180px;
  gap:40px; /* espacio entre logo y texto */
  text-align: center;
}
.ff-wedding-logo {
  width: 22%;
  max-width: 280px;
  opacity: .9;
  margin: 0 0 0 auto; /* empuja el logo hacia la derecha */
  display: block;
}
  .ff-wedding-right{font-family: "Poppins",sans-serif;
  font-size: 19px;
  line-height: 1.8;
  color: #333;
  font-weight: 200;}
  .ff-wedding-right p{margin:0}
  .ff-wedding-right strong{font-weight:700;color:#000}
  .ff-wedding-right h3{font-size: 21px;
  letter-spacing: 1.5px;
  font-weight: 300;
  margin: 0;
  color: #000;}

  .ff-wedding-actions {
    grid-column: 1 / -1;   /* Ocupa todo el ancho de la grid */
    display: flex;
    justify-content: center;
    margin-top: 15px;
    padding-top: 15px;
  }

  .ff-wedding-actions .btn-rsvp{
    margin-top: 0;
  }

  /* ============ BOTONES ============ */
  /* RSVP neumórfico claro */
  .btn-rsvp{background:var(--panel);border-radius:50px;padding:5px 36px;font-family:"Poppins",sans-serif;font-weight:300;color:#000;text-decoration:none;display:inline-block;box-shadow:8px 8px 16px #d1d1d1,-8px -8px 16px #fff;transition:all .2s;margin-top:30px}
  .btn-rsvp:hover,.btn-rsvp:active{box-shadow:inset 4px 4px 8px #d1d1d1,inset -4px -4px 8px #fff}

  /* Ubicación negro simple */
  .btn-location{background:#000;border-radius:50px;padding:10px 36px;font-family:"Poppins",sans-serif;font-weight:600;color:#fff;text-decoration:none;display:inline-block;transition:all .2s;margin-top:30px}
  .btn-location:hover{color:#fff;background:#000;box-shadow:0 4px 8px rgba(0,0,0,.25)}
  .btn-location:active{background:#000;color:#fff}

  /* ============ DETALLES (Dress Code + Regalos) ============ */
  .ff-duo{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
  .ff-duo-left,.ff-duo-right{text-align:left}
  .ff-kicker{margin:0 0 .5rem;text-transform:uppercase;letter-spacing:.18em;font-size:.9rem;color:#666;font-family:"Poppins",sans-serif}
  .ff-head{font-family:"Poppins",sans-serif;font-size:25px;margin:0 0 1rem;font-weight:300;color:#000}
  .ff-sub{font-weight:400;margin:1.1rem 0 .35rem;font-size:1rem;font-family:"Poppins",sans-serif}
  .ff-duo p{font-family:"Poppins",sans-serif;line-height:1.4;margin:.25rem 0;color:#000; font-weight: 200;}
  .ff-link{color:#111;text-decoration:underline;font-weight:300}
  .ff-link:hover{opacity:.75}

  /* Frase llamada */
  .ff-cta-phrase{max-width:980px;margin:0 auto;text-align:center}
  .ff-cta-phrase .line1{font-family:"Poppins",sans-serif;font-size:22px;letter-spacing:.02em;color:#1E1E1E}
  .ff-cta-phrase .line2{font-family:"Poppins",sans-serif;font-size:46px;margin-top:10px;font-weight:400}
  .ff-cta-phrase-left{margin-top:18px;text-align:left}
  .ff-cta-phrase-left .line1{font-family:"Poppins",sans-serif;font-size:18px;letter-spacing:.02em;color:#3e3e3e;text-align:center}
  .ff-cta-phrase-left .line2{font-family:"Poppins",sans-serif;font-size:29px;text-align:center;font-weight:100}

  /* ============ GALERÍA (3-up full-bleed) ============ */
  .ff-gallery.ff-section{padding:0;background:var(--panel)}
  .ff-gallery .ff-section-inner{max-width:100%;padding:0;margin:0}
  .ff-quote{font-family:"Poppins",sans-serif;font-size:20px;text-align:center;color:#1E1E1E;max-width:1180px;margin:24px auto; font-weight: 200;}

  :root{--slider-gap:16px}
  .slider{position:relative;margin:0;width:100vw}
  .slides{display:flex;gap:var(--slider-gap);overflow:hidden;scroll-behavior:smooth}
  .slide{flex:0 0 calc((100% - (var(--slider-gap)*2))/3);border-radius:6px;overflow:hidden}
  .slide img{width:100%;height:60vh;object-fit:cover;filter:grayscale(100%)}
  .slide img.pos-bottom{object-position:center bottom}
  .slider-nav{position:absolute;inset:0;display:flex;justify-content:space-between;align-items:center;pointer-events:none}
  .slider-btn{pointer-events:auto;background:transparent;border:none;width:60px;height:60px;display:grid;place-items:center;cursor:pointer;font-size:0}
  .slider-btn::before{content:"";display:block;width:22px;height:22px;border-right:4px solid #fff;border-top:4px solid #fff;transform:rotate(45deg);filter:drop-shadow(0 2px 0 rgba(0,0,0,.25));transition:transform .15s ease,filter .15s ease,opacity .15s ease;opacity:.95}
  .slider-btn[data-dir="prev"]::before{transform:rotate(225deg)}
  .slider-btn:hover::before{filter:drop-shadow(0 3px 2px rgba(0,0,0,.35));opacity:1}

  /* ============ LUGAR (fondo con overlay blanco) ============ */
  #lugar{position:relative;color:#000;background:url('images/gotera.webp') center/cover no-repeat}
  #lugar::before{content:"";position:absolute;inset:0;background:rgba(255,255,255,.6);z-index:0}
  #lugar .ff-section-inner{position:relative;z-index:1}
  #lugar .ff-section-inner p{font-family:"Poppins",sans-serif;font-size:18px}

  /* ============ SELLO FINAL ============ */
  .ff-seal{background:#373737;padding:30px 24px}
  .ff-seal-inner{max-width:1180px;margin:0 auto;display:flex;justify-content:center;align-items:center}
  .ff-seal-logo{width:70px;opacity:.9;filter:contrast(0)}

  /* ============ SCROLL REVEAL ============ */
  @media (prefers-reduced-motion:no-preference){
    [data-reveal]{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease;will-change:opacity,transform}
    [data-reveal="left"]{transform:translateX(-24px)}
    [data-reveal="right"]{transform:translateX(24px)}
    .is-visible{opacity:1!important;transform:none!important}
    .slides .slide{opacity:0;transform:translateY(12px);transition:opacity .6s ease,transform .6s ease}
    .slider.is-visible .slide{opacity:1;transform:none}
    .slider.is-visible .slide:nth-child(1){transition-delay:.05s}
    .slider.is-visible .slide:nth-child(2){transition-delay:.10s}
    .slider.is-visible .slide:nth-child(3){transition-delay:.15s}
    .slider.is-visible .slide:nth-child(4){transition-delay:.20s}
    .slider.is-visible .slide:nth-child(5){transition-delay:.25s}
    .slider.is-visible .slide:nth-child(6){transition-delay:.30s}
  }

  /* ============ RESPONSIVE ============ */
  @media (max-width:900px){
    :root{--rail-w:110px}
    .ff-title{font-size:64px;line-height:1.1}
    .ff-logo{width:100%}
    .ff-wedding-left h2{font-size:48px}
    .ff-wedding-logo{left:-52px;width:56%}
    .ff-duo{grid-template-columns:1fr;gap:24px}
    .slide{flex:0 0 calc((100% - var(--slider-gap))/2)}
    .slide img{height:50vh}
  }
  @media (max-width:640px){
    /* En móvil, el hero usa una sola columna para que el centro ocupe todo el ancho */
    .ff-hero{grid-template-columns:1fr; min-height: 50vh;}
    .ff-center{grid-column:1 / -1}
    .ff-hero > .ff-rail{display:none !important}
.ff-box { padding: 15px;}
.ff-section { padding: 50px 15px;}
    .ff-center{padding:48px var(--gutter) 42px}
    .ff-menu{display:flex;gap:16px;flex-wrap:wrap;justify-content:center}
    .ff-center .ff-inner{padding-top:.5rem}
    .ff-date{letter-spacing:.12em}
    .ff-logo{margin-top:1rem;width:min(88%,340px)}
    .ff-quote {margin: 24px 10px;}
    .ff-wedding-grid{grid-template-columns:1fr;gap:28px;text-align:center}
    .ff-wedding-left{min-height:auto;justify-content:flex-start}
    .ff-wedding-left h2{writing-mode:initial;transform:none;font-size:40px;letter-spacing:.1em}
    .ff-wedding-logo{
      position: static;
      transform: none;
      margin: 0 auto 8px auto; /* centrado */
      width: 100px;
      display: block;
    }
    .slide{flex:0 0 100%}
    .slide img{height:45vh}
  }