:root{
  --navy:#111c2d;
  --navy-dark:#0b1320;
  --ink:#243b63;
  --muted:#65718a;
  --paper:#ffffff;
  --soft:#f7f4ed;
  --line:#ded8cc;
  --script:'Pinyon Script','Snell Roundhand','Brush Script MT',cursive;
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Montserrat',Arial,sans-serif;
  --countdown-font:'Cormorant Garamond',serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);font-weight:400;text-align:center}
button,input,textarea,select{font-family:var(--serif)}
a{color:inherit}
.top-nav{position:fixed;top:0;left:0;right:0;z-index:1002;height:62px;padding:0 12px;background:rgba(17,28,45,.985);display:flex;align-items:center;justify-content:center;gap:18px;overflow-x:auto;overflow-y:hidden;white-space:nowrap;box-shadow:0 2px 10px rgba(0,0,0,.08);scrollbar-width:none}
.top-nav::-webkit-scrollbar{display:none}
.top-nav a{flex:0 0 auto;color:#fff;text-decoration:none;font-family:var(--serif);font-size:20px;line-height:1;letter-spacing:.08em;text-transform:none;font-weight:500;padding:7px 5px 5px;border-bottom:1px solid transparent;opacity:.97}
.top-nav a:hover,.top-nav a:focus{opacity:1;border-bottom-color:rgba(255,255,255,.75)}
main{overflow:hidden}
.hero{height:82vh;min-height:620px;max-height:940px;position:relative;background:#111c2d;display:flex;align-items:center;justify-content:center;overflow:hidden;padding-top:64px}
.hero-track-viewport{position:absolute;left:0;right:0;bottom:0;top:64px;overflow:hidden}
.hero-track{position:absolute;left:0;top:48%;display:flex;gap:18px;align-items:center;padding:0 18px;transform:translate3d(0,-50%,0);will-change:transform}
.hero-card{flex:0 0 auto;margin:0;display:block;width:clamp(220px,27vw,430px);height:min(72vh,760px);border-radius:0;overflow:hidden;box-shadow:0 18px 45px rgba(0,0,0,.16);background:#ddd}
.hero-card img{display:block;width:100%;height:100%;object-fit:cover;object-position:center center}
.hero-shade{position:absolute;inset:0;z-index:2;background:linear-gradient(to bottom,rgba(7,15,27,.20),rgba(7,15,27,.28) 44%,rgba(7,15,27,.50))}
.hero-copy{position:relative;z-index:3;color:#fff;padding:34px 24px 24px;max-width:920px;text-shadow:0 2px 18px rgba(0,0,0,.34)}
.hero-kicker{font-family:var(--serif);font-size:clamp(17px,2.1vw,25px);letter-spacing:.18em;text-transform:uppercase;font-weight:500;margin-bottom:16px}
.hero h1{font-family:var(--script);font-weight:400;font-size:clamp(72px,11vw,132px);line-height:.88;margin:0}
.hero-date{font-family:var(--serif);font-size:clamp(17px,2.1vw,25px);letter-spacing:.18em;text-transform:uppercase;margin-top:28px}
.scroll-cue{position:absolute;z-index:4;bottom:22px;left:50%;transform:translateX(-50%);color:#fff;text-decoration:none;font-size:40px;font-weight:200;line-height:1;animation:bob 2s ease-in-out infinite}
@keyframes bob{50%{transform:translate(-50%,7px)}}
.section{padding:92px 20px}
.section-soft{background:var(--soft)}
.section-inner{max-width:1080px;margin:0 auto}
.section-inner.narrow{max-width:820px}
.eyebrow{margin:0 0 8px!important;font-size:12px!important;text-transform:uppercase;letter-spacing:.28em;font-weight:600;color:var(--muted)}
h2{font-family:var(--serif);font-weight:500;font-size:clamp(42px,6vw,68px);margin:0 0 42px;line-height:1}
h3{font-family:var(--serif);font-size:30px;font-weight:500;margin:0 0 10px}
p{font-size:17px;line-height:1.75;margin:12px 0}.lead{font-family:var(--serif);font-size:28px;line-height:1.35}
.countdown{display:flex;justify-content:center;gap:34px;flex-wrap:wrap;margin-bottom:38px}
.countdown>div{min-width:92px;padding:0;background:transparent;border:0;border-radius:0}
.countdown strong{font-family:var(--countdown-font);font-size:84px;font-weight:600;font-style:italic;display:block;line-height:.80;color:#0f1827;font-variant-numeric:lining-nums tabular-nums;letter-spacing:-.02em}
.countdown span{font-family:var(--serif);font-size:12px;text-transform:uppercase;letter-spacing:.16em;color:var(--muted);display:block;margin-top:10px}
.event-card{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:54px;margin:58px 0 90px;text-align:left}
.event-card.reverse{grid-template-columns:.95fr 1.05fr}.event-card.reverse .event-art{order:2}.event-card.reverse .event-copy{order:1}
.event-art img{display:block;width:100%;height:auto;max-height:520px;object-fit:contain;border-radius:2px}
.event-copy{text-align:center}.event-time{font-size:12px;text-transform:uppercase;letter-spacing:.22em;font-weight:600;color:var(--muted);margin-bottom:9px}.event-copy h3{font-size:40px}.place-link{display:inline-block;font-family:var(--serif);font-size:22px;font-weight:600;margin:8px 0 4px;text-decoration-thickness:1px;text-underline-offset:5px}
.placeholder-card{border:1px solid var(--line);background:#fff;padding:42px;border-radius:4px}.section:not(.section-soft) .placeholder-card{background:var(--soft)}
.simple-icon{font-family:var(--serif);font-size:46px;margin-bottom:10px}.mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:26px}.mini-grid>div{border-top:1px solid var(--line);padding-top:16px}.mini-grid span,.mini-grid strong{display:block}.mini-grid span{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.mini-grid strong{font-family:var(--serif);font-size:22px;font-weight:500}
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.info-card{background:#fff;border:1px solid var(--line);padding:30px;text-align:left}.info-card span{font-family:var(--serif);font-size:18px;color:var(--muted)}.info-card h3{margin-top:24px;font-size:27px}.info-card p{margin-bottom:0;color:var(--muted)}
.gift-card{padding:58px 42px}.gift-mark{font-family:var(--serif);font-size:72px;line-height:1;color:var(--navy);margin-bottom:12px}
footer{padding:78px 20px 86px;background:#111c2d;color:#fff;letter-spacing:.14em;text-transform:uppercase;font-size:12px}.footer-names{font-family:var(--script);font-size:48px;text-transform:none;letter-spacing:0;margin-bottom:4px}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .75s ease,transform .75s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:760px){
 .top-nav{height:56px;justify-content:center;gap:14px;padding:0 8px}
 .top-nav a{font-size:15px;letter-spacing:.04em;padding:7px 2px 5px}
 .hero{height:78vh;min-height:560px;padding-top:58px}
 .hero-track-viewport{top:58px}
 .hero-track{top:48%;gap:12px;padding:0 12px}
 .hero-card{width:clamp(220px,58vw,320px);height:min(50vh,420px)}
 .hero-kicker{font-size:14px;letter-spacing:.12em;margin-bottom:12px}
 .hero h1{font-size:clamp(62px,18vw,88px)}
 .hero-date{font-size:14px;letter-spacing:.12em;line-height:1.45;margin-top:22px}
 .section{padding:70px 18px}h2{margin-bottom:34px}.lead{font-size:24px}
 .countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:34px}
 .countdown>div{min-width:0;padding:0;background:transparent;border:0;border-radius:0}
 .countdown strong{font-family:var(--countdown-font);font-size:64px;font-weight:600;font-style:italic;display:block;line-height:.80;color:#0f1827;font-variant-numeric:lining-nums tabular-nums;letter-spacing:-.02em}
 .countdown span{font-family:var(--serif);font-size:9px;text-transform:uppercase;letter-spacing:.10em;color:var(--muted);display:block;margin-top:7px}
 .event-card,.event-card.reverse{grid-template-columns:1fr;gap:26px;margin:40px 0 68px;text-align:center}.event-card.reverse .event-art,.event-card.reverse .event-copy{order:initial}.event-art img{max-height:370px}.event-copy h3{font-size:34px}.place-link{font-size:20px}
 .placeholder-card{padding:30px 22px}.mini-grid,.info-grid{grid-template-columns:1fr}.info-card{text-align:center}.gift-card{padding:42px 24px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.scroll-cue{animation:none}.reveal{transition:none}}

.section-intro{padding-top:54px;padding-bottom:54px}.section-intro .countdown{margin-bottom:0}
@media(max-width:760px){.section-intro{padding-top:42px;padding-bottom:42px}.section-intro .countdown{margin-bottom:0}}


/* Agenda */
#agenda h2{margin-bottom:26px}
.event-copy{font-family:var(--serif);color:var(--navy)}
.event-copy .event-time{font-family:var(--serif);font-size:30px;line-height:1.1;letter-spacing:.08em;text-transform:none;font-weight:500;color:var(--navy);margin:0 0 10px}
.event-copy h3{font-family:var(--serif);font-size:42px;line-height:1.05;font-weight:500;color:var(--navy);margin:0 0 10px}
.event-copy .place-link{font-family:var(--serif);font-size:24px;line-height:1.25;font-weight:500;color:var(--navy);margin:8px 0 4px;text-decoration-thickness:1px;text-underline-offset:5px}
.event-copy p:not(.event-time){font-family:var(--serif);font-size:19px;line-height:1.45;color:var(--navy)}

/* Información */
.info-inner{max-width:1180px}
.info-grid-three{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:stretch}
.info-card-featured{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;padding:38px 30px;background:#fff;border:1px solid var(--line);min-height:100%}
.info-card-featured .info-number{font-family:var(--serif);font-size:17px;letter-spacing:.12em;color:var(--muted)}
.info-card-featured h3{font-family:var(--serif);font-size:34px;line-height:1.05;font-weight:500;color:var(--navy);margin:22px 0 16px}
.info-card-featured p{font-family:var(--serif);font-size:18px;line-height:1.55;color:var(--ink);margin:8px 0}
.info-card-featured strong{font-weight:600;color:var(--navy)}
.info-note{margin-top:18px!important;padding-top:16px;border-top:1px solid var(--line);font-size:16px!important;color:var(--muted)!important}
.bank-label{margin-top:14px!important;margin-bottom:2px!important;font-size:12px!important;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)!important}
.bank-value{margin-top:0!important;font-size:20px!important;color:var(--navy)!important;font-weight:500}
.bank-iban{letter-spacing:.04em;word-break:break-word}

@media(max-width:900px){
 .info-grid-three{grid-template-columns:1fr}
 .info-card-featured{max-width:720px;width:100%;margin:0 auto}
}
@media(max-width:760px){
 #agenda h2{margin-bottom:18px}
 .event-copy .event-time{font-size:25px}
 .event-copy h3{font-size:36px}
 .event-copy .place-link{font-size:21px}
 .event-copy p:not(.event-time){font-size:18px}
 .info-card-featured{padding:30px 22px}
 .info-card-featured h3{font-size:31px}
 .info-card-featured p{font-size:17px}
}


/* Tarjetas giratorias de Información */
.info-grid-three{align-items:stretch}
.flip-card{position:relative;min-height:390px;perspective:1400px;cursor:pointer;outline:none}
.flip-card:focus-visible{outline:2px solid var(--navy);outline-offset:5px}
.flip-card-inner{position:relative;width:100%;height:100%;min-height:390px;transition:transform .72s cubic-bezier(.2,.7,.2,1);transform-style:preserve-3d}
.flip-card.is-flipped .flip-card-inner{transform:rotateY(180deg)}
.flip-card-face{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:38px 30px;background:#fff;border:1px solid var(--line);backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:auto}
.flip-card-front h3,.flip-card-back h3{font-family:var(--serif);font-size:36px;line-height:1.05;font-weight:500;color:var(--navy);margin:0}
.flip-card-back{transform:rotateY(180deg);justify-content:flex-start;padding-top:34px}
.flip-card-back h3{margin:0 0 18px}
.flip-card-back p{font-family:var(--serif);font-size:18px;line-height:1.5;color:var(--ink);margin:7px 0}
.flip-card-back strong{font-weight:600;color:var(--navy)}
.flip-card-back .info-note{margin-top:16px!important;padding-top:14px;border-top:1px solid var(--line);font-size:16px!important;color:var(--muted)!important}
.flip-card-back .bank-label{margin-top:12px!important;margin-bottom:2px!important;font-size:12px!important;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)!important}
.flip-card-back .bank-value{margin-top:0!important;font-size:20px!important;color:var(--navy)!important;font-weight:500}
.flip-card-back .bank-iban{letter-spacing:.035em;word-break:break-word}
.copy-iban{margin-top:18px;padding:11px 18px;border:1px solid var(--navy);background:var(--navy);color:#fff;border-radius:999px;font-family:var(--serif);font-size:16px;cursor:pointer;transition:background .2s ease,color .2s ease}
.copy-iban:hover,.copy-iban:focus-visible{background:#fff;color:var(--navy)}
.copy-status{min-height:22px;margin-top:8px!important;font-size:14px!important;color:var(--muted)!important}

@media(max-width:900px){
 .flip-card,.flip-card-inner{min-height:340px}
}
@media(max-width:760px){
 .flip-card,.flip-card-inner{min-height:320px}
 .flip-card-face{padding:30px 22px}
 .flip-card-front h3,.flip-card-back h3{font-size:32px}
 .flip-card-back p{font-size:17px}
 .flip-card-back .bank-value{font-size:18px!important}
}
@media(prefers-reduced-motion:reduce){.flip-card-inner{transition:none}}


.card-doodles{display:flex;align-items:flex-end;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:18px;color:var(--navy)}
.doodle{width:48px;height:48px;display:block;opacity:.95}
.doodle.accent-gold{color:#9d7a3c}
.doodle.accent-olive{color:#6f8158}
.flip-card-front{justify-content:center;gap:10px}
.flip-card-front h3,.flip-card-back h3{max-width:90%;text-align:center}
.flip-card-back p strong{font-weight:700}

@media(max-width:760px){
  .card-doodles{gap:10px;margin-top:14px}
  .doodle{width:40px;height:40px}
}


/* Ajustes V19: azul oscuro de títulos principales */
#agenda h2, #confirmacion h2, #confirmacion .eyebrow{color:#111c2d}


@media(max-width:760px){
  /* Portada más compacta sin reducir fotos ni tipografía */
  .hero{height:62vh;min-height:500px;padding-top:58px}
  .hero-track-viewport{top:58px}
  .hero-track{top:45%}
  .section-intro{padding-top:24px;padding-bottom:30px}

  /* Cuenta atrás un poco más pequeña en móvil */
  .countdown strong{font-size:60px}
}


/* V20: cuenta atrás más especial */
.countdown-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center}
.countdown-kicker{font-family:var(--script);font-size:34px;line-height:1;color:#111c2d;margin-bottom:18px}
.countdown-kicker span{display:inline-block;font-family:var(--serif);font-size:.72em;margin-left:4px;transform:translateY(-1px)}
.countdown{position:relative}
.countdown>div{position:relative}
.countdown>div:not(:last-child)::after{content:'·';position:absolute;right:-20px;top:17px;font-family:var(--serif);font-size:26px;line-height:1;color:#111c2d;opacity:.45}

@media(max-width:760px){
  /* Primera pantalla: solo carrusel + cuenta atrás */
  .hero{height:calc(100svh - 172px);min-height:0;padding-top:58px}
  .hero-track-viewport{top:58px}
  .hero-track{top:45%}
  .section-intro{height:172px;min-height:172px;padding:0 12px;display:flex;align-items:center;justify-content:center}
  .section-intro .section-inner{width:100%}
  .countdown-kicker{font-size:27px;margin-bottom:10px}
  .countdown{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;width:100%;margin:0}
  .countdown strong{font-size:57px}
  .countdown span{font-size:8px;letter-spacing:.08em;margin-top:5px}
  .countdown>div:not(:last-child)::after{right:-4px;top:13px;font-size:20px}
}

@media(max-width:390px){
  .countdown strong{font-size:53px}
  .countdown-kicker{font-size:25px}
}


/* V21B — camino de la pedida a la boda */
.path-section{padding:32px 20px 28px}
.timeline-path-wrap{position:relative;width:100%;max-width:820px}
.wedding-path-box{position:relative;height:112px;margin:0 4px 4px}
.wedding-path{display:block;width:100%;height:100%;overflow:visible}
.path-label{position:absolute;top:2px;z-index:2;display:flex;flex-direction:column;color:#111c2d}
.path-label-start{left:0;text-align:left}.path-label-end{right:0;text-align:right}
.path-label strong{font-family:var(--serif);font-size:13px;letter-spacing:.08em;font-weight:600}
.path-label span{font-family:var(--serif);font-size:11px;color:var(--muted)}
.path-days{position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);font-family:var(--serif);font-size:12px;font-weight:600;color:#111c2d;background:rgba(255,255,255,.9);padding:2px 6px;border-radius:10px;white-space:nowrap;pointer-events:none}
.compact-countdown{margin:4px 0 0;gap:24px}
.compact-countdown>div{min-width:58px}
.compact-countdown strong{font-size:44px!important;line-height:.82!important}
.compact-countdown span{font-size:9px!important;margin-top:4px!important;letter-spacing:.10em!important}
.compact-countdown>div:not(:last-child)::after{display:none!important}

@media(max-width:760px){
  .hero{height:calc(100svh - 190px);min-height:0}
  .path-section{height:190px;min-height:190px;padding:10px 10px 8px;display:flex;align-items:center}
  .path-section .section-inner{width:100%}
  .wedding-path-box{height:94px;margin-top:8px}
  .path-label{top:0}
  .path-label strong{font-size:9.5px}
  .path-label span{font-size:8.5px}
  .path-days{font-size:9px;padding:1px 4px}
  .compact-countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;margin-top:-2px}
  .compact-countdown strong{font-size:40px!important}
  .compact-countdown span{font-size:7.5px!important;letter-spacing:.06em!important}
}
@media(max-width:390px){.compact-countdown strong{font-size:37px!important}}

/* V34 — azul plomo oscuro uniforme y cuenta atrás simple */
:root{--lead-blue:#0d1830} /* V40: azul marino oscuro (V39 #1a2a4a, antes azul plomo #5f768b) */
.top-nav{background:var(--lead-blue)}
.hero{background:var(--lead-blue)}
.hero-shade{background:transparent}
#informacion{background:var(--lead-blue)}
#informacion h2{color:#fff}
footer{background:var(--lead-blue)}

.countdown-blue-section{
  background:var(--lead-blue);
  padding:40px 20px 38px;
}
.countdown-blue-inner{position:relative;z-index:1}
.countdown-blue{
  margin:0;
  gap:34px;
  align-items:end;
}
.countdown-blue>div{
  min-width:62px;
  padding:0;
  background:transparent;
  border:0;
  border-radius:0;
}
.countdown-blue strong{
  font-family:var(--countdown-font);
  font-size:38px!important;
  font-weight:400!important;
  font-style:normal!important;
  line-height:.9!important;
  color:#fff;
  letter-spacing:-.025em!important;
}
.countdown-blue span{
  margin-top:8px!important;
  font-size:8px!important;
  font-weight:700!important;
  letter-spacing:.14em!important;
  color:rgba(255,255,255,.92);
}
.countdown-blue>div:not(:last-child)::after{display:none!important}

@media(max-width:760px){
  .hero{height:calc(100svh - 132px);min-height:0;padding-top:58px}
  .hero-track-viewport{top:58px}
  .hero-track{top:45%}
  .section-intro{padding-top:0;padding-bottom:0}
  .countdown-blue-section{
    height:132px;
    min-height:132px;
    padding:0 12px;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .countdown-blue-section .section-inner{width:100%}
  .countdown-blue{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:4px;
    width:100%;
  }
  .countdown-blue>div{min-width:0}
  .countdown-blue strong{font-size:32px!important}
  .countdown-blue span{font-size:8px!important;margin-top:6px!important;letter-spacing:.08em!important}
}
@media(max-width:390px){.countdown-blue strong{font-size:30px!important}}


/* V37 — Agenda como lámina de invitación (estilo dibujo del diseñador) */
.lamina{
  --tinta:#0d1830; /* V40: azul marino oscuro */
  position:relative;
  width:100%;
  max-width:1080px;
  margin:10px auto 0;
  aspect-ratio:4550/2490;
  container-type:inline-size;
  text-align:center;
}
.lamina img{display:block;width:100%;height:auto}
.lamina-ruta{position:absolute;left:22.75%;top:21.4%;width:57.8%!important;z-index:1;pointer-events:none}
.lamina-dibujo{position:absolute;z-index:2}
.lamina-dibujo-iglesia{left:2%;top:7.4%;width:39.4%}
.lamina-dibujo-finca{left:68.2%;top:46%;width:29.6%}
.lamina-texto{position:absolute;z-index:3;color:var(--tinta)}
.lamina-texto-iglesia{left:0;width:42%;top:73%}
.lamina-texto-finca{left:58%;width:42%;top:4%}
.lamina-hora{
  margin:0 0 .5em!important;
  font-family:var(--serif);
  font-size:clamp(11px,1.25cqw,15px)!important;
  line-height:1.3!important;
  letter-spacing:.2em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--tinta);
}
.lamina-nombre{
  display:inline-block;
  font-family:var(--script);
  font-size:clamp(28px,3.4cqw,40px);
  line-height:1.05;
  color:var(--tinta);
  text-decoration:none;
  border-bottom:1px solid rgba(26,42,74,.25);
  padding-bottom:2px;
  transition:border-color .2s ease;
}
.lamina-nombre:hover,.lamina-nombre:focus-visible{border-bottom-color:rgba(26,42,74,.8)}
.lamina-dir{
  margin:.45em 0 0!important;
  font-family:var(--serif);
  font-style:italic;
  font-size:clamp(16px,1.85cqw,22px)!important;
  line-height:1.35!important;
  color:var(--tinta);
}

@media(max-width:760px){
  .lamina{aspect-ratio:auto;display:flex;flex-direction:column;align-items:center;margin-top:0}
  .lamina-ruta,.lamina-dibujo,.lamina-texto{position:static}
  .lamina-dibujo-iglesia{order:1;width:100%;max-width:440px}
  .lamina-texto-iglesia{order:2;width:100%;margin-top:14px}
  .lamina-ruta{order:3;width:78%!important;max-width:360px;margin:26px auto 10px;opacity:.95}
  .lamina-dibujo-finca{order:4;width:84%;max-width:380px}
  .lamina-texto-finca{order:5;width:100%;margin-top:14px}
  .lamina-hora{font-size:11px!important;letter-spacing:.16em}
  .lamina-nombre{font-size:31px}
  .lamina-dir{font-size:18px!important}
}


/* V38 — Línea del tiempo bajo la cuenta atrás: de la pedida a la boda, con los novios en moto con sidecar */
.tl-boda{
  --p:0%;
  --moto-w:168px;
  position:relative;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:end;
  gap:12px;
  max-width:760px;
  margin:22px auto 0;
  padding-bottom:34px;
  color:#fff;
}
.tl-hito{position:relative;width:50px;display:flex;justify-content:center}
.tl-icono{display:block;width:50px;height:50px;overflow:visible}
.tl-esmeralda{fill:#2f8a5c;stroke:#fff}
.tl-etiqueta{
  position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);
  font-family:var(--serif);font-size:10px;line-height:1.35;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;color:rgba(255,255,255,.92);
}
.tl-pista{position:relative;height:calc(var(--moto-w) * .65)}
.tl-linea{position:absolute;left:0;bottom:2px;height:0}
.tl-linea-pendiente{right:0;border-top:2px dotted rgba(255,255,255,.5)}
.tl-linea-recorrida{width:var(--p);border-top:2px solid #fff;transition:width 1.2s ease}
.tl-moto{
  position:absolute;bottom:calc(3px - var(--moto-w) * .0325);
  left:clamp(var(--moto-w), var(--p), 100%);
  width:var(--moto-w);
  transform:translateX(-100%);
  transition:left 1.2s ease;
}
.tl-moto-svg{display:block;width:100%;height:auto;overflow:visible;animation:tl-traqueteo .9s ease-in-out infinite alternate}
.tl-moto-svg .tl-fill{fill:var(--lead-blue)}
@keyframes tl-traqueteo{from{transform:translateY(0)}to{transform:translateY(-1.5px)}}
@media(prefers-reduced-motion:reduce){.tl-moto-svg{animation:none}.tl-moto,.tl-linea-recorrida{transition:none}}

@media(max-width:760px){
  /* la franja azul crece hacia abajo; la cuenta atrás queda en el mismo sitio de la primera pantalla */
  .countdown-blue-section{height:auto;min-height:132px;padding:38px 14px 30px;display:block}
  .tl-boda{--moto-w:118px;gap:8px;margin-top:22px;padding-bottom:32px}
  .tl-hito{width:34px}
  .tl-icono{width:34px;height:34px}
  .tl-etiqueta{font-size:8.5px;letter-spacing:.1em}
}


/* V40 — Agenda: sin direcciones, hora y tipo de evento más grandes, nombres subrayados que llevan a Google Maps */
.lamina-hora{
  font-size:clamp(15px,1.95cqw,22px)!important;
  letter-spacing:.16em;
  margin-bottom:.35em!important;
}
.lamina-nombre{
  border-bottom:0;
  padding-bottom:0;
  display:inline-block;
  cursor:pointer;
}
.lamina-nombre-texto{
  text-decoration:underline;
  text-decoration-color:rgba(13,24,48,.6);
  text-decoration-thickness:1.5px;
  text-underline-offset:.2em;
  text-decoration-skip-ink:none;
  transition:text-decoration-color .2s ease;
}
.lamina-nombre:hover .lamina-nombre-texto,.lamina-nombre:focus-visible .lamina-nombre-texto{text-decoration-color:var(--tinta);text-decoration-thickness:2px}
.lamina-pin{display:inline-block;width:.62em;height:.62em;margin-left:.18em;vertical-align:-.02em;opacity:.9}
@media(max-width:760px){
  .lamina-hora{font-size:15px!important;letter-spacing:.12em}
}


/* V41 — Carretera: sale de la iglesia (arriba izquierda) y llega a la finca (abajo derecha), y se dibuja sola al llegar a la Agenda */
.lamina-ruta{left:42.5%;top:41%;width:25%!important}
.reveal .lamina-ruta{clip-path:inset(0 100% 0 0);transition:clip-path 2.4s cubic-bezier(.45,.05,.3,1) .5s}
.reveal.visible .lamina-ruta{clip-path:inset(0 0 0 0)}
@media(max-width:760px){
  .lamina-ruta{width:70%!important;max-width:330px;margin:18px auto 6px}
}
@media(prefers-reduced-motion:reduce){.reveal .lamina-ruta{clip-path:none;transition:none}}


/* V42 — Iconos dibujados a mano en las tarjetas de Información */
.card-doodles .doodle-tinta{width:76px;height:76px;color:#0d1830;--icon-bg:#fff;opacity:1}
.card-doodles{gap:16px;margin-top:22px}
@media(max-width:760px){.card-doodles .doodle-tinta{width:56px;height:56px}.card-doodles{gap:12px}}

/* V42 — Línea del tiempo: al abrir la web se dibuja la carretera desde la pedida,
   la moto avanza hasta hoy, aparecen los días que faltan y después el tramo punteado hasta la boda */
.tl-linea-recorrida,.tl-moto{transition-duration:3s;transition-timing-function:cubic-bezier(.45,.05,.25,1)}
.tl-linea-pendiente{clip-path:inset(0 100% 0 0);transition:clip-path 1.6s ease 2.9s}
.tl-boda.tl-arrancado .tl-linea-pendiente{clip-path:inset(0 0 0 0)}
.tl-dias{
  position:absolute;left:50%;bottom:calc(100% + 6px);transform:translate(-50%,6px);
  font-family:var(--serif);font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;
  color:#fff;opacity:0;transition:opacity .8s ease 3s,transform .8s ease 3s;
}
.tl-boda.tl-arrancado .tl-dias{opacity:1;transform:translate(-50%,0)}
@media(max-width:760px){.tl-dias{font-size:10.5px;letter-spacing:.08em;bottom:calc(100% + 3px)}}
.tl-boda{margin-top:44px}
@media(max-width:760px){.tl-boda{margin-top:34px}}
@media(prefers-reduced-motion:reduce){.tl-linea-pendiente,.tl-dias{transition:none}}


/* V43 — Todo el texto en azul marino (o blanco sobre fondo azul marino) */
:root{--navy:#0d1830;--ink:#0d1830;--muted:#0d1830}
#agenda h2,#confirmacion h2,#confirmacion .eyebrow,.countdown strong{color:#0d1830}
.countdown-blue strong,.countdown-blue span{color:#fff}

/* V43 — Agenda: "Ceremonia · 18:00 h" y "Celebración" algo más grandes */
.lamina-hora{font-size:clamp(17px,2.25cqw,26px)!important;letter-spacing:.14em}
@media(max-width:760px){.lamina-hora{font-size:17px!important;letter-spacing:.1em}}

/* V43 — Tarjetas de Información: horarios claros */
.flip-card,.flip-card-inner{min-height:430px}
.flip-card-back{padding:30px 26px}
.flip-card-back h3{margin-bottom:12px!important}
.info-intro{margin:0 0 6px!important}
.info-rutas{list-style:none;margin:4px 0 0;padding:0;width:100%;text-align:left}
.info-rutas li{display:grid;grid-template-columns:7.2em 1fr;gap:10px;align-items:baseline;padding:7px 0;border-top:1px solid var(--line);font-family:var(--serif);font-size:17px;line-height:1.3;color:#0d1830}
.info-rutas li:first-child{border-top:0}
.info-hora{font-weight:700;letter-spacing:.04em;text-align:right}
.info-rutas small{font-size:.85em;opacity:.8}
.flip-card-back .info-note{font-size:15.5px!important;color:#0d1830!important;margin-top:10px!important}
@media(max-width:900px){.flip-card,.flip-card-inner{min-height:420px}}
@media(max-width:760px){.info-rutas li{font-size:16px;grid-template-columns:6.4em 1fr;gap:8px}}

/* V43 — Formulario de confirmación */
.rsvp-intro{font-size:18px;margin:-18px auto 26px;max-width:620px;color:#0d1830}
.rsvp{background:#fff;border:1px solid var(--line);padding:38px 40px;text-align:left;color:#0d1830}
.rsvp-campo{margin:0 0 22px;border:0;padding:0;min-width:0}
.rsvp label,.rsvp legend{display:block;font-family:var(--serif);font-size:19px;font-weight:600;margin:0 0 8px;color:#0d1830;padding:0}
.rsvp small{font-weight:400;opacity:.8}
.rsvp input[type=text],.rsvp select,.rsvp textarea{
  width:100%;font-family:var(--serif);font-size:18px;color:#0d1830;background:#fbf9f4;
  border:1px solid #cfc8b9;border-radius:2px;padding:11px 13px;outline:none;transition:border-color .2s,box-shadow .2s;
}
.rsvp input[type=text]:focus,.rsvp select:focus,.rsvp textarea:focus{border-color:#0d1830;box-shadow:0 0 0 3px rgba(13,24,48,.12)}
.rsvp textarea{resize:vertical}
.rsvp-fila{display:grid;grid-template-columns:1fr 1.6fr;gap:18px}
.rsvp-opciones{display:flex;flex-wrap:wrap;gap:10px}
.rsvp-opciones-col{flex-direction:column}
.rsvp-opcion{display:flex!important;align-items:center;gap:10px;margin:0!important;font-weight:400!important;font-size:18px!important;cursor:pointer;
  border:1px solid #cfc8b9;border-radius:2px;padding:10px 14px;background:#fbf9f4;transition:border-color .2s,background .2s}
.rsvp-opcion input{accent-color:#0d1830;width:18px;height:18px;margin:0;flex:0 0 auto}
.rsvp-opcion:has(input:checked){border-color:#0d1830;background:#eef0f4}
.rsvp-opcion b{font-weight:700;margin-right:4px}
.rsvp-si{border-left:2px solid #0d1830;padding-left:18px;margin:0 0 22px}
.rsvp-enviar{display:block;width:100%;margin-top:8px;padding:15px 20px;border:1px solid #0d1830;background:#0d1830;color:#fff;border-radius:999px;
  font-family:var(--serif);font-size:19px;letter-spacing:.06em;cursor:pointer;transition:background .2s,color .2s}
.rsvp-enviar:hover,.rsvp-enviar:focus-visible{background:#fff;color:#0d1830}
.rsvp-enviar[disabled]{opacity:.6;cursor:wait}
.rsvp-estado{min-height:24px;margin:12px 0 0!important;text-align:center;font-size:16px!important}
.rsvp-estado.error{color:#8a2a1f}
.rsvp-campo.invalido input[type=text],.rsvp-campo.invalido .rsvp-opcion{border-color:#8a2a1f}
.rsvp-gracias{background:#fff;border:1px solid var(--line);padding:46px 30px;color:#0d1830}
.rsvp-gracias h3{font-family:var(--script);font-size:54px;font-weight:400;margin:0 0 6px}
@media(max-width:760px){
  .rsvp{padding:26px 18px}
  .rsvp-fila{grid-template-columns:1fr;gap:0}
  .rsvp-si{padding-left:12px}
  .rsvp label,.rsvp legend{font-size:18px}
}
.rsvp .rsvp-opcion{padding:11px 16px;min-height:46px}
.rsvp-opciones:not(.rsvp-opciones-col) .rsvp-opcion{flex:1 1 200px}

/* V44 — tarjetas con horarios más largos: más altura y columna de hora más estrecha */
.flip-card,.flip-card-inner{min-height:480px}
.info-rutas li{grid-template-columns:3.6em 1fr;font-size:16.5px;padding:6px 0}
@media(max-width:900px){.flip-card,.flip-card-inner{min-height:470px}}
@media(max-width:760px){.info-rutas li{grid-template-columns:3.4em 1fr;font-size:15.5px}}


/* V45 — Formulario con varias personas */
.rsvp-titulo{display:block;font-family:var(--serif);font-size:19px;font-weight:600;color:#0d1830;margin:0 0 8px}
.rsvp-cabecera{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.rsvp-cabecera .rsvp-titulo{margin:0}
.rsvp-mas{width:42px;height:42px;flex:0 0 auto;border-radius:50%;border:1px solid #0d1830;background:#0d1830;color:#fff;
  font-family:var(--sans);font-size:26px;line-height:1;font-weight:300;cursor:pointer;display:grid;place-items:center;padding:0 0 2px;transition:background .2s,color .2s}
.rsvp-mas:hover,.rsvp-mas:focus-visible{background:#fff;color:#0d1830}
.rsvp-personas{display:flex;flex-direction:column;gap:10px}
.rsvp-persona{display:flex;gap:8px;align-items:center}
.rsvp-persona input{flex:1 1 auto}
.rsvp-quitar{width:38px;height:38px;flex:0 0 auto;border:1px solid #cfc8b9;background:#fff;color:#0d1830;border-radius:50%;font-size:22px;line-height:1;cursor:pointer;padding:0 0 2px}
.rsvp-quitar:hover{border-color:#0d1830}
.rsvp-ayuda{margin:-4px 0 10px!important;font-size:15.5px!important;line-height:1.45!important;color:#0d1830;opacity:.85}
.rsvp-alergias{display:flex;flex-direction:column;gap:10px}
.rsvp-alergia{display:grid;grid-template-columns:minmax(120px,32%) 1fr;gap:12px;align-items:center}
.rsvp .rsvp-alergia label{margin:0;font-weight:500;font-size:17px;overflow-wrap:anywhere}
.rsvp-check-todos{display:flex!important;align-items:center;gap:10px;font-weight:500!important;font-size:17px!important;margin:0 0 12px!important;cursor:pointer}
.rsvp-check-todos input{accent-color:#0d1830;width:18px;height:18px;margin:0}
.rsvp-buses{display:flex;flex-direction:column;gap:16px}
.rsvp-bus-nombre{margin:0 0 6px!important;font-weight:700;font-size:17px!important;color:#0d1830}
.rsvp-campo.invalido .rsvp-persona:first-child input{border-color:#8a2a1f}
@media(max-width:760px){
  .rsvp-alergia{grid-template-columns:1fr;gap:4px}
  .rsvp .rsvp-opcion{font-size:16.5px!important}
}

/* V46 — ¿Qué necesitas saber? en puntos */
.info-puntos{list-style:none;margin:6px 0 0;padding:0;width:100%;text-align:left}
.info-puntos li{position:relative;padding:12px 0 12px 22px;border-top:1px solid var(--line);font-family:var(--serif);font-size:18px;line-height:1.45;color:#0d1830}
.info-puntos li:first-child{border-top:0}
.info-puntos li::before{content:'';position:absolute;left:4px;top:22px;width:7px;height:7px;border-radius:50%;background:#0d1830}
@media(max-width:760px){.info-puntos li{font-size:17px}}

/* V48 — velo de tul de la novia en la moto */
.tl-moto-svg .tl-velo{fill:rgba(255,255,255,.2)}


/* V49 — Ajustes pensados para verse en el móvil (enlace de WhatsApp y código QR) */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{-webkit-tap-highlight-color:transparent}
.flip-pista{display:inline-flex;align-items:center;gap:6px;margin-top:20px;font-family:var(--serif);font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#0d1830;opacity:.75}
.flip-pista::before{content:'';width:14px;height:14px;border:1.6px solid currentColor;border-radius:50%;border-right-color:transparent;transform:rotate(30deg)}
@media(max-width:760px){
  /* Primera pantalla: fotos grandes + cuenta atrás + línea del tiempo, sin huecos vacíos */
  .top-nav{padding-top:env(safe-area-inset-top)}
  .hero{height:calc(100svh - 268px);min-height:400px;padding-top:56px}
  .hero-track-viewport{top:56px}
  .hero-track{top:50%}
  .hero-card{height:calc(100svh - 268px - 56px - 34px);min-height:320px;width:clamp(210px,64vw,300px)}
  .scroll-cue{bottom:2px;font-size:32px}
  .countdown-blue-section{padding:16px 12px 10px}
  .tl-boda{margin-top:16px;padding-bottom:30px;--moto-w:112px}
  /* Secciones algo más compactas */
  .section{padding:56px 16px}
  h2{margin-bottom:26px}
  /* Información: tarjetas sin tanto blanco en el frente */
  .flip-card,.flip-card-inner{min-height:440px}
  .flip-card-face{padding:26px 20px}
  .card-doodles .doodle-tinta{width:70px;height:70px}
  /* Formulario cómodo con el dedo */
  .rsvp{padding:24px 16px}
  .rsvp .rsvp-opcion{min-height:50px}
  .rsvp-mas{width:46px;height:46px}
  footer{padding:56px 16px calc(60px + env(safe-area-inset-bottom))}
}
@media(max-width:380px){
  .hero h1{font-size:clamp(56px,17vw,76px)}
  .hero-date{font-size:12.5px;letter-spacing:.1em}
  .top-nav{gap:10px}
  .top-nav a{font-size:14px}
}


/* V51 — Escala de letra única para el móvil (todo legible y coherente)
   Títulos de sección 40 · títulos de tarjeta 30 · texto 17 · notas 15 · etiquetas 11–12 */
@media(max-width:760px){
  /* Menú y portada */
  .top-nav a{font-size:15.5px}
  .hero-kicker{font-size:14px;letter-spacing:.16em}
  .hero-date{font-size:14px;letter-spacing:.12em}
  /* Cuenta atrás y línea del tiempo */
  .countdown-blue strong{font-size:34px!important}
  .countdown-blue span{font-size:10.5px!important;letter-spacing:.1em!important;margin-top:7px!important}
  .tl-etiqueta{font-size:10.5px;letter-spacing:.08em;line-height:1.4}
  /* Títulos de sección */
  h2,#agenda h2,#informacion h2,#confirmacion h2{font-size:40px;line-height:1.08}
  #confirmacion .eyebrow{font-size:12px!important;letter-spacing:.22em}
  /* Agenda */
  .lamina-hora{font-size:17px!important;letter-spacing:.12em}
  .lamina-nombre{font-size:32px;line-height:1.1}
  /* Tarjetas de Información: mismo título delante y detrás, contenido centrado */
  .flip-card-face{padding:28px 22px;justify-content:center}
  .flip-card-back{justify-content:center;padding-top:28px}
  .flip-card-front h3,.flip-card-back h3{font-size:30px;line-height:1.12;max-width:100%}
  .flip-card-back h3{margin:0 0 14px!important}
  .flip-pista{font-size:12px;margin-top:18px}
  .flip-card-back p,.info-intro{font-size:17px!important;line-height:1.5!important}
  .info-intro{margin:0 0 8px!important;text-align:center}
  .info-rutas,.info-puntos{max-width:330px;margin-left:auto;margin-right:auto}
  .info-rutas li{font-size:17px;line-height:1.35;grid-template-columns:3.3em 1fr;gap:10px;padding:8px 0}
  .info-rutas small{font-size:14.5px}
  .info-puntos li{font-size:17px;line-height:1.5;padding:12px 0 12px 20px}
  .info-puntos li::before{top:21px}
  .flip-card-back .info-note{font-size:16px!important;line-height:1.5!important;margin-top:12px!important;padding-top:12px}
  .flip-card-back .bank-label{font-size:12px!important;letter-spacing:.16em}
  .flip-card-back .bank-value{font-size:19px!important}
  .flip-card-back .bank-iban{font-size:18px!important;letter-spacing:.02em}
  .copy-iban{font-size:17px;padding:12px 22px}
  .copy-status{font-size:15px!important}
  /* Formulario */
  .rsvp-intro{font-size:17px;line-height:1.55;margin:-10px auto 22px}
  .rsvp-titulo,.rsvp legend,.rsvp label[for=rsvpMensaje]{font-size:18px!important}
  .rsvp label[for=rsvpMensaje] small{font-size:15px}
  .rsvp input[type=text],.rsvp select,.rsvp textarea{font-size:17px}
  .rsvp .rsvp-opcion{font-size:17px!important}
  .rsvp-ayuda{font-size:15px!important}
  .rsvp .rsvp-alergia label{font-size:16.5px}
  .rsvp-check-todos{font-size:16.5px!important}
  .rsvp-bus-nombre{font-size:17px!important}
  .rsvp-enviar{font-size:18px}
  .rsvp-estado{font-size:15px!important}
  .rsvp-gracias h3{font-size:46px}
  .rsvp-gracias p{font-size:17px}
  /* Pie */
  .footer-names{font-size:44px}
  footer div:last-child{font-size:12px}
}
@media(max-width:380px){
  .flip-card-front h3,.flip-card-back h3{font-size:28px}
  .info-rutas li,.info-puntos li,.flip-card-back p{font-size:16.5px!important}
  .countdown-blue strong{font-size:31px!important}
}
/* V51 — en pantallas táctiles, los botones no se quedan "pulsados" en gris */
@media(hover:none){
  .rsvp-mas:hover{background:#0d1830;color:#fff}
  .rsvp-enviar:hover{background:#0d1830;color:#fff}
  .copy-iban:hover{background:var(--navy);color:#fff}
  .rsvp-quitar:hover{border-color:#cfc8b9}
}
.rsvp-mas:active,.rsvp-enviar:active,.copy-iban:active{transform:scale(.97)}
@media(max-width:760px){.countdown-blue-section{padding-left:18px;padding-right:18px}}
