/* 15 AÑOS — arquitectura mobile-first */
.q390-catalog .collection-grid{align-items:start}
.q390-catalog .q390-phone .phone-screen{overflow:hidden;background:#111}
.q390-catalog .q390-phone .phone-screen img{display:block;width:100%;height:100%;object-fit:cover;object-position:center top}
.q390-catalog .collection-preview{background:#eee!important}

.q15{
  --paper:#f4efe8;--ink:#152033;--deep:#0a1427;--accent:#a89cab;
  width:100%;max-width:480px;margin:0 auto;background:var(--paper);color:var(--ink);
  overflow:hidden;box-shadow:0 24px 70px rgba(17,12,8,.12);
  font-family:Montserrat,Arial,sans-serif;font-size:11px;line-height:1.55
}
.q15 *{box-sizing:border-box}
.q15 img{display:block;width:100%;height:100%;object-fit:cover}
.q15 h1,.q15 h2,.q15 h3{font-family:Georgia,'Times New Roman',serif;font-weight:400}
.q15 button,.q15 a,.q15 input,.q15 select,.q15 textarea{font-family:Montserrat,Arial,sans-serif}
.q15 button{cursor:pointer}
.q15 .q15-square{aspect-ratio:1/1;overflow:hidden}
.q15-head{text-align:center;padding:38px 28px 24px}
.q15-head small,.q15-story-copy small,.q15-story-copy b,.q15-celebration-copy small,.q15-dress-copy small{
  display:block;font-size:9px;line-height:1.35;letter-spacing:.28em;text-transform:uppercase
}
.q15-head h2{margin:9px 0 8px;font-size:37px;line-height:1.02;letter-spacing:.01em}
.q15-head>i{display:block;width:36px;height:1px;background:currentColor;margin:15px auto;opacity:.5}
.q15-head p{max-width:360px;margin:8px auto 0;font-size:12px;line-height:1.65;letter-spacing:.04em}
.q15-action,.q15-celebration a,.q15-trip-grid a,.q15-stay a,.q15-hotel-card a,.q15-gifts button,.q15-rsvp button{
  display:inline-flex;min-height:38px;align-items:center;justify-content:center;padding:0 18px;border:1px solid currentColor;
  background:transparent;color:inherit;text-decoration:none;font-size:9px;font-weight:600;letter-spacing:.16em;text-transform:uppercase
}

/* Cuenta regresiva */
.q15-count-inner{padding:25px 18px;text-align:center}
.q15-count-kicker{display:block;margin-bottom:15px;font:400 15px/1.2 Georgia,serif;letter-spacing:.08em}
.q15-count-grid{display:grid;grid-template-columns:repeat(4,1fr);max-width:420px;margin:auto}
.q15-count-grid div{border-left:1px solid currentColor}.q15-count-grid div:first-child{border-left:0}
.q15-count-grid strong{display:block;font:400 29px/1 Georgia,serif}
.q15-count-grid em{display:block;margin-top:5px;font-size:8px;font-style:normal;letter-spacing:.14em}
.q15-count-inner>small{display:block;margin-top:12px;font-size:8px;letter-spacing:.2em}

/* Historia */
.q15-story-photo{overflow:hidden}
.q15-story-copy{text-align:center;padding:38px 28px}
.q15-story-copy h2{font-size:39px;line-height:1.05;margin:11px 0}
.q15-story-copy p{max-width:360px;margin:0 auto;font-size:12.5px;line-height:1.7}
.q15-story-copy>i{display:block;width:40px;height:1px;background:currentColor;opacity:.45;margin:18px auto}
.q15-story-copy>b{margin-top:24px;opacity:.65}

/* Celebración */
.q15-celebration-copy{text-align:center;padding:28px 28px 38px}
.q15-celebration-copy h2{font-size:36px;line-height:1.02;margin:9px 0}
.q15-celebration-copy p,.q15-celebration-copy span,.q15-celebration-copy b{display:block;font-size:12px;letter-spacing:.04em;line-height:1.6}
.q15-celebration-copy strong{display:block;margin:9px 0;font:400 30px/1 Georgia,serif}
.q15-celebration-copy a{margin-top:18px}

/* Dress code */
.q15-dress-copy{text-align:center;padding:28px 26px 38px}
.q15-dress-copy h2{font-size:39px;margin:8px 0}.q15-dress-copy>b{font-size:11px;letter-spacing:.2em}
.q15-dress-copy p{font-size:12px;line-height:1.65}.q15-palette{display:grid;grid-template-columns:repeat(4,1fr);width:200px;height:38px;margin:22px auto 0}
.q15-palette i:nth-child(1){background:#0b1427}.q15-palette i:nth-child(2){background:#6d6876}.q15-palette i:nth-child(3){background:#b3a7b6}.q15-palette i:nth-child(4){background:#d7d6d2}
.q15-note{text-align:center;padding:24px 32px 0;font-size:11px;line-height:1.7;letter-spacing:.05em;text-transform:uppercase}
.q15-endline{display:block;text-align:center;padding:17px 0 32px;font-size:9px;letter-spacing:.22em}

/* Transporte y alojamiento */
.q15-transport,.q15-stay{padding-bottom:36px}.q15-trip-grid{display:grid;grid-template-columns:1fr 1fr;margin:0 22px;background:rgba(255,255,255,.82)}
.q15-trip-grid>div{display:flex;min-height:155px;flex-direction:column;align-items:center;text-align:center;padding:19px 12px;border-left:1px solid rgba(0,0,0,.12)}
.q15-trip-grid>div:first-child{border-left:0}.q15-trip-grid small{font-size:8px;letter-spacing:.2em}.q15-trip-grid b{margin-top:7px;font-size:10.5px}
.q15-trip-grid span{margin:4px 0 8px;font-size:10.5px;line-height:1.5}.q15-trip-grid strong{margin:auto 0 10px;font:400 22px/1 Georgia,serif}.q15-trip-grid a{min-height:30px;font-size:8px}
.q15-hotel-card{width:82%;margin:-44px auto 0;position:relative;z-index:2;padding:20px;text-align:center;background:rgba(249,245,238,.98);box-shadow:0 10px 24px rgba(30,24,18,.1)}
.q15-hotel-card small{font-size:8px;letter-spacing:.18em}.q15-hotel-card h3{font-size:21px;margin:7px 0}.q15-hotel-card span{display:block;font-size:11px;line-height:1.6}
.q15-hotel-card a{display:flex;width:138px;margin:13px auto 0;min-height:32px;font-size:8px}.q15-hotel-card a.ghost{margin-top:7px}

/* Galería */
.q15-gallery{padding-bottom:38px}.q15-carousel{padding:0 18px}.q15-carousel-stage{position:relative;aspect-ratio:1/1.12;overflow:hidden;background:#ddd}
.q15-slide{position:absolute;inset:0;margin:0;opacity:0;transform:scale(1.012);transition:opacity .38s ease,transform .48s ease}.q15-slide.active{opacity:1;transform:scale(1)}
.q15-arrow{position:absolute;top:50%;width:38px;height:38px;min-width:38px;padding:0;transform:translateY(-50%);border:1px solid rgba(255,255,255,.7);border-radius:50%;background:rgba(246,241,233,.9);color:#26301f;font:400 22px/1 Georgia,serif;box-shadow:0 4px 12px rgba(0,0,0,.08)}
.q15-arrow.prev{left:12px}.q15-arrow.next{right:12px}.q15-dots{display:flex;justify-content:center;gap:8px;margin-top:14px}.q15-dots button{width:7px;height:7px;min-width:0;padding:0;border:0;border-radius:50%;background:currentColor;opacity:.24}.q15-dots button.active{opacity:1}.q15-counter{display:block;text-align:center;margin-top:10px;font-size:9px;letter-spacing:.16em}.q15-counter b{font-weight:500}

/* Itinerario unificado */
.q15-itinerary{padding:34px 24px 46px}.q15-simple-timeline{position:relative;max-width:330px;margin:5px auto 0}.q15-simple-timeline:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:currentColor;opacity:.45}
.q15-simple-timeline>div{position:relative;width:50%;min-height:78px;padding:14px 22px 8px;text-align:right}.q15-simple-timeline>div.right{margin-left:50%;text-align:left}
.q15-simple-timeline i{position:absolute;top:25px;right:-4px;width:8px;height:8px;border:1px solid currentColor;border-radius:50%;background:var(--paper)}.q15-simple-timeline .right i{right:auto;left:-4px}
.q15-simple-timeline strong{display:block;font:400 18px/1 Georgia,serif}.q15-simple-timeline span{display:block;margin-top:5px;font-size:10.5px;letter-spacing:.06em}

/* Regalos */
.q15-gifts{text-align:center;padding:34px 24px 40px}.q15-gifts .q15-square{margin:0 auto 20px}.q15-gifts>p{font-size:12px;line-height:1.65}.q15-gifts>small{display:block;margin-top:22px;font-size:8px;letter-spacing:.16em}
.q15-gift-visual{max-width:360px;margin:5px auto 0;background:transparent}.q15-gift-visual img{height:auto}.q15-gift-info{max-height:0;overflow:hidden;opacity:0;font-size:11px;line-height:1.65;transition:.25s}.q15-gift-info.open{max-height:100px;opacity:1;margin-top:14px}

/* RSVP */
.q15-rsvp{padding:0 24px 42px;text-align:center;background:#fffdf9!important;color:var(--ink)!important}
.q15-rsvp-visual{max-width:340px;margin:0 auto}.q15-rsvp-visual img{height:auto}.q15-rsvp .q15-head{padding:28px 0 0}.q15-rsvp .q15-head h2{font-size:46px}.q15-rsvp .q15-head b{display:block;margin:2px 0 10px;font:400 18px/1.3 Georgia,serif}
.q15-rsvp .q15-head p{font-size:12px;line-height:1.65;letter-spacing:0}.q15-rsvp-open{margin-top:18px;min-width:220px}
body.q15-modal-open{overflow:hidden}
.q15-rsvp-modal{position:fixed;inset:0;z-index:10000;display:none;place-items:center;padding:18px}.q15-rsvp-modal.open{display:grid}
.q15-rsvp-backdrop{position:absolute;inset:0;background:rgba(4,8,16,.64);backdrop-filter:blur(4px)}
.q15-rsvp-dialog{position:relative;z-index:1;width:min(100%,430px);max-height:90svh;overflow:auto;background:#fffdf9;color:#172036;padding:30px 24px 24px;box-shadow:0 28px 80px rgba(0,0,0,.28)}
.q15-rsvp-close{position:absolute;right:13px;top:10px;width:34px;height:34px;border:0;background:transparent;color:inherit;font-size:28px;line-height:1}
.q15-rsvp-modal-head{text-align:center;padding:8px 18px 20px}.q15-rsvp-modal-head small{font-size:8px;letter-spacing:.22em}.q15-rsvp-modal-head h2{margin:8px 0;font-size:29px;line-height:1.05}.q15-rsvp-modal-head p{margin:0;font-size:11px;line-height:1.6}
.q15-rsvp-modal-form{display:grid;gap:14px}.q15-rsvp-modal-form fieldset{display:flex;gap:18px;margin:0;padding:14px;border:1px solid rgba(16,27,48,.18)}
.q15-rsvp-modal-form legend{padding:0 6px;font-size:9px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.q15-rsvp-modal-form label{display:grid;gap:6px;font-size:10.5px;font-weight:600;letter-spacing:.05em}
.q15-rsvp-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.q15-rsvp-modal-form input[type="text"],.q15-rsvp-modal-form input:not([type]),.q15-rsvp-modal-form select,.q15-rsvp-modal-form textarea{width:100%;border:1px solid rgba(16,27,48,.18);background:#fff;padding:11px;font-size:10px;color:inherit}
.q15-rsvp-modal-form select{height:42px}.q15-rsvp-modal-form textarea{min-height:74px;resize:vertical}.q15-participants{display:grid;gap:8px}.q15-rsvp-submit{min-height:42px;border:0;background:var(--deep);color:#fff;font-size:9px;font-weight:700;letter-spacing:.16em}

/* Cierre */
.q15-closing{display:flex;min-height:190px;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:34px}.q15-closing small{font-size:8px;letter-spacing:.24em}.q15-closing h2{margin:10px 0 0;font-size:25px}


/* Álbum compartido y legibilidad común de 15 años */
.q15>.vap289-album{--vap289-bg:#fff!important;background:#fff!important;color:var(--ink)!important;min-height:360px!important;padding:48px 28px!important;border:0!important}
.q15>.vap289-album .vap289-album__inner{max-width:390px!important}
.q15>.vap289-album .vap289-album__icon,.q15>.vap289-album .vap289-album__kicker{color:var(--accent)!important}
.q15>.vap289-album h2{font-family:Georgia,'Times New Roman',serif!important;font-size:34px!important;line-height:1.04!important;letter-spacing:.01em!important;color:var(--ink)!important}
.q15>.vap289-album p{font-family:Montserrat,Arial,sans-serif!important;font-size:12px!important;line-height:1.65!important;letter-spacing:.03em!important;color:var(--ink)!important;opacity:1!important}
.q15>.vap289-album button{font-family:Montserrat,Arial,sans-serif!important;font-size:8.5px!important;letter-spacing:.15em!important;color:var(--ink)!important;border-color:var(--accent)!important}
.q15 .q15-head p,.q15 .q15-story-copy p,.q15 .q15-celebration-copy p,.q15 .q15-celebration-copy span,.q15 .q15-celebration-copy b,.q15 .q15-dress-copy p,.q15 .q15-note,.q15 .q15-trip-grid span,.q15 .q15-hotel-card span,.q15 .q15-gifts>p,.q15 .q15-rsvp>p{font-family:Montserrat,Arial,sans-serif}
/* MAISON */
.q15-maison{--paper:#f1ede7;--ink:#101b30;--deep:#081427;--accent:#aaa1b1}.q15-maison-hero{position:relative;height:min(92svh,760px);min-height:650px;background:#081427}
.q15-maison-hero .q15-hero-media{position:absolute;inset:0}.q15-maison-hero .q15-hero-img{object-position:center}.q15-maison-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(2,6,13,.08),transparent 62%),linear-gradient(to bottom,transparent 72%,rgba(0,0,0,.12))}
.q15-maison-hero-copy{position:absolute;inset:0;z-index:2;color:#f5f4f2}.q15-maison-hero-copy small{position:absolute;top:6.8%;left:8.8%;font-size:9px;letter-spacing:.36em}.q15-maison-hero-copy h1{position:absolute;top:40.2%;left:5.7%;margin:0;font-size:61px;line-height:.9;letter-spacing:-.03em}.q15-maison-hero-copy b{position:absolute;top:50.8%;left:6%;font-size:8px;letter-spacing:.24em}.q15-maison-hero-copy p{position:absolute;top:60.5%;left:6%;font-size:9px;letter-spacing:.2em}.q15-maison-hero-copy p:after{content:"";display:block;width:52px;height:1px;margin-top:18px;background:#eee}
.q15-maison-count{background:#081427;color:#f4f0ed}.q15-maison-story{background:#f3eee8}.q15-maison-story .q15-story-photo{aspect-ratio:1003/995}
.q15-maison-celebration{background:#fffdf9;color:#101b30;padding-bottom:4px}.q15-maison-dress{background:#f1ede7}.q15-maison-dress .q15-square{background:#091528}
.q15-maison-transport,.q15-maison-stay,.q15-maison-gallery{background:#f4efe8}.q15-maison-gallery .q15-head{padding-bottom:18px}.q15-maison-itinerary{background:#081427;color:#f5f0e9}.q15-maison-itinerary .q15-simple-timeline i{background:#081427}
.q15-maison-gifts{background:#081427;color:#f5f0e9}.q15-maison-gifts .q15-head{padding:34px 24px 26px}.q15-maison-gifts .q15-head h2{font-size:38px;line-height:1.05;margin:10px 0 14px}.q15-maison-gifts .q15-head p{margin:0 auto 18px;font-size:12.5px;line-height:1.8;letter-spacing:.035em}.q15-maison-gifts .q15-head button{margin-top:2px}.q15-maison-rsvp{background:#fffdf9}.q15-maison-closing{background:#081427;color:#f4f0ea}
.q15-maison-rsvp .q15-rsvp-submit{background:#081427}.q15-maison-rsvp .q15-rsvp-open{background:#081427;color:#fff;border-color:#081427}

/* CAMPO DE LUZ */
.q15-campo{--paper:#f4f0e5;--ink:#40442b;--deep:#3b4424;--accent:#8f8a61;background:#f4f0e5}.q15-campo-hero{position:relative;height:min(92svh,760px);min-height:650px}.q15-campo-hero .q15-hero-media{position:absolute;inset:0}.q15-campo-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,transparent 48%,rgba(31,34,19,.24))}
.q15-campo-hero-copy{position:absolute;left:7%;bottom:46%;z-index:2;color:#fff}.q15-campo-hero-copy small{font-size:8px;letter-spacing:.28em}.q15-campo-hero-copy h1{margin:9px 0;font-size:48px}.q15-campo-hero-copy p{font-size:9px;letter-spacing:.22em}
.q15-campo-count{background:#3c4525;color:#f2eee3}.q15-campo-story{padding:0 30px 12px}.q15-campo-story .q15-story-copy{padding:34px 8px 26px}.q15-campo-story .q15-story-arch{aspect-ratio:1/1.14;overflow:hidden;border-radius:50% 50% 0 0/18% 18% 0 0}
.q15-campo-celebration,.q15-campo-transport,.q15-campo-stay,.q15-campo-gallery,.q15-campo-itinerary,.q15-campo-gifts{background:#f4f0e5}.q15-campo-celebration .q15-celebration-copy{padding-top:0}.q15-campo-celebration .q15-celebration-copy h3{margin:4px 0;font:400 25px/1 Georgia,serif}.q15-rounded-top{margin:0 20px;border-radius:48% 48% 0 0/18% 18% 0 0}
.q15-campo-dress{background:#fff}.q15-campo-dress .q15-dress-visual{width:74%;max-width:330px;margin:0 auto;padding:0;background:#fff}.q15-campo-dress .q15-dress-visual img{height:auto;object-fit:contain;background:#fff}.q15-campo-rsvp{background:#fffdf9}.q15-campo-rsvp .q15-rsvp-submit,.q15-campo-rsvp .q15-rsvp-open{background:#3b4424;color:#fff;border-color:#3b4424}.q15-campo-closing{background:#354123;color:#f3eee0}

/* BORGOÑA */
.q15-borgona{--paper:#f3e8d8;--ink:#7b1a2d;--deep:#77152a;--accent:#c6a07c;background:#f3e8d8}.q15-borgona-hero{position:relative;height:min(92svh,760px);min-height:650px}.q15-borgona-hero .q15-hero-media{position:absolute;inset:0}.q15-borgona-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(66,7,18,.25),transparent 55%,rgba(55,5,15,.3))}
.q15-borgona-hero-copy{position:absolute;top:8%;left:0;right:0;z-index:2;text-align:center;color:#f6e7d5}.q15-borgona-hero-copy small{font:400 16px Georgia,serif;letter-spacing:.12em}.q15-borgona-hero-copy b{display:block;margin-top:16px;font-size:8px;letter-spacing:.24em}.q15-borgona-hero-copy h1{margin:8px 0;font-size:52px;line-height:.92}.q15-borgona-hero-copy p{font-size:9px;letter-spacing:.2em}.q15-borgona-hero-copy span{display:inline-flex;margin-top:13px;border:1px solid rgba(255,255,255,.55);padding:9px 14px;font-size:8px;letter-spacing:.18em}
.q15-borgona-count{background:#7c172d;color:#f4e4d3}.q15-borgona-story{background:#f3e8d8}.q15-borgona-story .q15-story-photo{aspect-ratio:1/1}.q15-borgona-celebration{background:#79162b;color:#f5e5d5}.q15-borgona-celebration .q15-celebration-copy{text-align:center;padding:32px 36px 30px}.q15-borgona-facts{display:grid;gap:12px;margin-top:20px}.q15-borgona-facts span{display:block}.q15-borgona-facts b{font-size:12.5px;line-height:1.55;letter-spacing:.045em}
.q15-borgona-dress{background:#f4eadc}.q15-borgona-dress .q15-dress-frame{margin:0 20px 34px}.q15-borgona-transport{background:#7a172c;color:#f5e6d6}.q15-borgona-transport .q15-transport-visual{padding:0 18px;background:#7a172c}.q15-borgona-transport .q15-transport-visual img{height:auto}.q15-borgona-transport .q15-trip-grid{background:transparent;color:#f5e6d6}.q15-borgona-transport .q15-trip-grid>div{min-height:115px;border-color:rgba(255,255,255,.3)}.q15-borgona-transport .q15-action{display:flex;width:auto;max-width:190px;margin:18px auto 0;padding-left:22px;padding-right:22px}
.q15-borgona-stay,.q15-borgona-gallery,.q15-borgona-itinerary{background:#f3e8d8}
.q15-borgona-stay .q15-head b{display:block;margin:16px 0 8px;font-size:12.5px;line-height:1.55;letter-spacing:.04em}
.q15-borgona-stay .q15-head p{margin-top:8px;font-size:12.5px;line-height:1.8;letter-spacing:.025em}
.q15-borgona-stay .q15-head a{display:inline-flex;margin-top:18px}
.q15-borgona-gifts{background:#77172c;color:#f5e6d4;padding-left:18px;padding-right:18px}.q15-borgona-gifts .q15-head{padding:0 0 22px}.q15-borgona-rsvp{background:#fffdf9}.q15-borgona-rsvp .q15-rsvp-submit,.q15-borgona-rsvp .q15-rsvp-open{background:#77152a;color:#fff;border-color:#77152a}.q15-borgona-closing{background:#77172c;color:#f5e5d5}

@media(max-width:360px){
  .q15-head{padding-left:20px;padding-right:20px}.q15-head h2{font-size:33px}.q15-maison-hero-copy h1{font-size:53px}.q15-borgona-hero-copy h1{font-size:45px}
  .q15-trip-grid{margin-left:12px;margin-right:12px}.q15-trip-grid>div{padding-left:8px;padding-right:8px}.q15-carousel{padding-left:12px;padding-right:12px}.q15-rsvp-grid{grid-template-columns:1fr}
}
.q15-maison-modal .q15-rsvp-dialog{border-top:4px solid #081427}.q15-maison-modal .q15-rsvp-modal-head small{color:#60708d}.q15-maison-modal .q15-rsvp-submit{background:#081427;color:#fff}
.q15-campo-modal .q15-rsvp-dialog{border-top:4px solid #3b4424}.q15-campo-modal .q15-rsvp-modal-head small{color:#657044}.q15-campo-modal .q15-rsvp-submit{background:#3b4424;color:#fff}
.q15-borgona-modal .q15-rsvp-dialog{border-top:4px solid #77152a}.q15-borgona-modal .q15-rsvp-modal-head small{color:#8a2637}.q15-borgona-modal .q15-rsvp-submit{background:#77152a;color:#fff}
.q15-person-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.q15-person-row+ .q15-person-row{margin-top:2px}
@media(max-width:380px){.q15-person-row{grid-template-columns:1fr}}

/* V404 — ajustes directos de composición 15 años */
.q15-borgona-dress .q15-dress-frame{margin-left:0;margin-right:0}
.q15-borgona-gallery{padding-bottom:12px}
.q15-borgona-itinerary{padding-top:18px}
.q15-borgona-rsvp .q15-rsvp-visual{max-width:100%;width:100%;aspect-ratio:1/1;overflow:hidden}
.q15-borgona-rsvp .q15-rsvp-visual img{width:100%;height:100%;object-fit:cover}
.q15-campo-rsvp{padding-left:0;padding-right:0}
.q15-campo-rsvp .q15-rsvp-visual{max-width:none;width:100%;aspect-ratio:1/1;overflow:hidden}
.q15-campo-rsvp .q15-rsvp-visual img{width:100%;height:100%;object-fit:cover}
.q15-campo-rsvp .q15-head{padding-left:24px;padding-right:24px}
.q15-maison-itinerary{background:#fffdf9;color:#101b30}
.q15-maison-itinerary .q15-simple-timeline i{background:#fffdf9}
.q15>.vap289-album{border-top:1px solid rgba(21,32,51,.22)!important;margin-top:14px!important}

/* Movimiento editorial 15 años — integrado en la arquitectura de las colecciones */
.q15-motion{opacity:0;will-change:transform,opacity,filter;transition:opacity .72s cubic-bezier(.2,.7,.2,1),transform .78s cubic-bezier(.2,.7,.2,1),filter .8s ease}
.q15-motion.q15-from-left{transform:translate3d(-30px,0,0)}
.q15-motion.q15-from-right{transform:translate3d(30px,0,0)}
.q15-motion.q15-from-up{transform:translate3d(0,26px,0)}
.q15-motion.q15-glow{transform:scale(.975);filter:blur(7px) brightness(.92)}
.q15-motion.q15-in{opacity:1;transform:none;filter:none}
.q15-simple-timeline>div.q15-motion{transition-duration:.6s;transition-delay:var(--q15-delay,0ms)}
.q15-hero .q15-motion{transition-duration:.9s}
@media(max-width:430px){
  .q15-maison-hero,.q15-campo-hero,.q15-borgona-hero{height:92svh;min-height:620px;max-height:740px}
  .q15-campo-dress .q15-dress-visual{width:70%;max-width:300px}
}
@media(prefers-reduced-motion:reduce){.q15-motion{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}}

/* Campo de Luz: arco superior coherente en todas las imágenes principales */
.q15-campo-transport .q15-rounded-top,
.q15-campo-stay .q15-rounded-top,
.q15-campo-gifts .q15-square,
.q15-campo-rsvp .q15-rsvp-visual{
  overflow:hidden;
  margin-left:20px;
  margin-right:20px;
  border-radius:48% 48% 0 0/18% 18% 0 0;
}
.q15-campo-rsvp .q15-rsvp-visual{
  width:calc(100% - 40px);
  max-width:none;
}

/* V411 — Borgoña: unión limpia entre Dress Code y Transporte */
.q15-borgona-dress{padding-bottom:0}
.q15-borgona-dress .q15-dress-frame{margin-bottom:0}
.q15-borgona-transport{margin-top:0}
