/* Diseño de la web (de los novios). Sale tal cual del artefacto «Bárbara y Enrique»: estilo base y después las pieles, en este orden (las últimas ganan). */

/* ===== base ===== */
/* Layout: portada tipográfica a sangre, carrusel de fotos con scroll, secciones en dos columnas (título a la izquierda, contenido a la derecha). Sin cursivas. */
:root{
  --bg:#F4EDEA; --surface:#FBF7F5; --ink:#14284B; --blue:#2F6BB3; --muted:#55688A; --line:rgba(20,40,75,.14);
  --on-blue:#FFFFFF; --err:#B3322F;
  --display:'Bricolage Grotesque','Helvetica Neue',Arial,sans-serif;
  --body:'DM Sans','Helvetica Neue',Arial,sans-serif;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){--bg:#0E1A2E; --surface:#15243C; --ink:#E8EFFA; --blue:#7FB0EC; --muted:#9DB1CC; --line:rgba(232,239,250,.16); --on-blue:#0E1A2E; --err:#FF9D99; color-scheme:dark}
}
:root[data-theme="dark"]{--bg:#0E1A2E; --surface:#15243C; --ink:#E8EFFA; --blue:#7FB0EC; --muted:#9DB1CC; --line:rgba(232,239,250,.16); --on-blue:#0E1A2E; --err:#FF9D99; color-scheme:dark}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:72px}
img{max-width:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-style:normal;font-size:17px;line-height:1.6;overflow-x:hidden}
a{color:var(--blue)}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.g{padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
.w{max-width:1120px;margin:0 auto}

footer .fl{margin:14px 0 0}footer .fl a{color:var(--blue);font-weight:500}
.bar{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.bar .w{display:flex;align-items:center;gap:20px;height:60px}
.bar .m{font-family:var(--display);font-weight:700;font-size:20px;letter-spacing:-.02em;color:var(--blue);text-decoration:none;white-space:nowrap}
.bar .l{display:flex;gap:22px;overflow-x:auto;margin-left:auto;scrollbar-width:none;align-items:center}
.bar .l::-webkit-scrollbar{display:none}
.bar .l a{font-size:15px;font-weight:500;text-decoration:none;color:var(--ink);white-space:nowrap}
.bar .l a:hover{color:var(--blue)}

.btn{display:inline-block;font:inherit;font-weight:600;font-size:16px;text-decoration:none;cursor:pointer;border:0;background:var(--blue);color:var(--on-blue);padding:14px 26px;border-radius:10px;transition:transform .15s,opacity .15s}
.btn:hover{opacity:.9}
.btn:active{transform:translateY(1px)}
.btn.alt{background:transparent;color:var(--blue);box-shadow:inset 0 0 0 1.5px var(--blue)}
.btn:disabled{opacity:.45;cursor:default}

.hero{padding-top:clamp(48px,9vw,110px);padding-bottom:clamp(32px,6vw,64px)}
.hero .tag{margin:0 0 10px;font-family:var(--display);font-weight:700;font-size:clamp(40px,8vw,72px);line-height:1;letter-spacing:-.035em;color:var(--ink)}
.hero h1{margin:0;font-family:var(--display);font-weight:800;font-size:clamp(68px,18.5vw,230px);line-height:.86;letter-spacing:-.045em;color:var(--blue);text-wrap:balance}
.hero h1 span{display:block}
.hero h1 span+span{padding-left:.55em}
.hero .row{display:grid;grid-template-columns:1fr 1fr;gap:28px 48px;margin-top:clamp(32px,6vw,64px);align-items:end}
.hero .when{font-family:var(--display);font-weight:600;font-size:clamp(26px,4.4vw,40px);line-height:1.1;letter-spacing:-.02em;margin:0}
.hero .when small{display:block;font-family:var(--body);font-weight:400;font-size:16px;color:var(--muted);letter-spacing:0;margin-top:6px}
.hero .banner{margin-top:clamp(32px,6vw,64px);aspect-ratio:21/9;border-radius:18px;overflow:hidden}
.hero .banner img{display:block;width:100%;height:100%;object-fit:cover}
.hero .frase{margin:0;font-size:clamp(19px,2.6vw,24px);line-height:1.45;max-width:26ch;text-wrap:balance}
.hero .cta{margin-top:26px;display:flex;flex-wrap:wrap;gap:12px}

.strip{margin-top:clamp(24px,5vw,48px);overflow:hidden;padding:24px 0 40px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.track{display:flex;gap:24px;width:max-content;padding:0 12px;animation:slide 55s linear infinite}
.strip:hover .track,.strip:focus-within .track{animation-play-state:paused}
@keyframes slide{to{transform:translateX(calc(-50% - 12px))}}
.track figure{margin:0;flex:none;width:clamp(190px,26vw,260px);background:var(--surface);padding:10px 10px 36px;border-radius:3px;box-shadow:0 10px 28px rgba(20,40,75,.18)}
.track figure:nth-child(odd){transform:rotate(-2.2deg)}
.track figure:nth-child(even){transform:rotate(1.8deg) translateY(12px)}
.track img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover}
.cwrap{margin-top:clamp(8px,2vw,24px)}
.count{display:flex;gap:clamp(24px,6vw,64px);margin-top:clamp(40px,7vw,80px);padding-top:28px;border-top:1px solid var(--line)}
.count b{display:block;font-family:var(--display);font-weight:700;font-size:clamp(40px,8vw,84px);line-height:1;letter-spacing:-.03em;color:var(--blue);font-variant-numeric:tabular-nums}
.count small{color:var(--muted);font-size:15px}

.sec{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.1fr);gap:20px 56px;padding-top:clamp(64px,10vw,120px)}
.sec>*{min-width:0}
.sec h2{margin:0;font-family:var(--display);font-weight:700;font-size:clamp(34px,5vw,52px);line-height:1.02;letter-spacing:-.03em;text-wrap:balance}
.sec .lead{margin:14px 0 0;color:var(--muted);font-size:16px;max-width:30ch}
.sec.stack{grid-template-columns:minmax(0,1fr)}
.sec.stack .side{position:static}
.sec .side{align-self:start}
@media (min-width:821px){.sec .side{position:sticky;top:92px}}

.prog{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.prog li{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;padding:20px 0;border-bottom:1px solid var(--line)}
.prog time{font-family:var(--display);font-weight:700;font-size:22px;letter-spacing:-.02em;color:var(--blue);line-height:1.2}
.prog h3{margin:0;font-size:18px;font-weight:600;line-height:1.3}
.prog p{margin:2px 0 0;color:var(--muted);font-size:15px}

.prog .it{display:grid;grid-template-columns:44px minmax(0,1fr);gap:14px;align-items:start}
.ico{width:44px;height:44px;border-radius:12px;background:var(--surface);display:grid;place-items:center;color:var(--blue)}
.ico svg,.cic{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.cic{display:block;color:var(--blue);margin-bottom:8px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.card{background:var(--surface);border-radius:18px;padding:28px;display:flex;flex-direction:column;gap:6px}
.card.main{background:var(--blue);color:var(--on-blue)}
.card.main p,.card.main .hr{color:inherit}
.card h3{margin:0;font-family:var(--display);font-weight:700;font-size:28px;letter-spacing:-.02em;line-height:1.1}
.card .hr{font-weight:600;margin:6px 0 0}
.card p{margin:0;color:var(--muted);font-size:15px}
.card .btn{margin-top:18px;align-self:flex-start;font-size:15px;padding:11px 20px}
.card.main .btn{background:var(--on-blue);color:var(--blue)}

.dnd{display:grid;gap:16px}
.dnd>*{min-width:0}
.vphoto{aspect-ratio:16/9;border-radius:16px;overflow:hidden}
.vphoto img{display:block;width:100%;height:100%;object-fit:cover}
.dnd .cards{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
.dnd .card{padding:18px 20px;border-radius:14px;gap:4px}
.dnd .card h3{font-size:21px}
.dnd .card .hr{font-size:14px;margin-top:4px}
.dnd .card p{font-size:14px;line-height:1.5}
.dnd .card .btn{margin-top:12px;font-size:14px;padding:9px 16px}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:32px 40px}
.facts .wide{grid-column:1/-1}
.facts b{font-weight:600;color:var(--ink)}
.facts h3{margin:0 0 6px;font-size:18px;font-weight:600}
.facts p{margin:0;color:var(--muted);font-size:15px}
.mad{display:grid;gap:clamp(36px,6vw,56px)}
.mad>*{min-width:0}
.mh{margin:0 0 16px;font-family:var(--display);font-weight:700;font-size:clamp(22px,3vw,28px);letter-spacing:-.02em;line-height:1.1}
.mgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.mc{background:var(--surface);border-radius:14px;padding:18px 20px;display:flex;flex-direction:column;gap:4px}
.mc h4{margin:0;font-family:var(--display);font-weight:700;font-size:20px;letter-spacing:-.02em;line-height:1.15}
.mc p{margin:0;font-size:15px;line-height:1.5}
.mc .ad{color:var(--muted);font-size:14px}
.mc .by{color:var(--blue);font-weight:600;font-size:14px}
.mc .btn{margin-top:12px;align-self:flex-start;font-size:14px;padding:9px 16px}
.mlist{grid-template-columns:1fr;gap:0;border-top:1px solid var(--line)}
.mlist .mc{background:none;border-radius:0;border-bottom:1px solid var(--line);padding:16px 0;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:20px;align-items:center}
.mlist .mc h4,.mlist .mc p{grid-column:1}
.mlist .mc .btn{grid-column:2;grid-row:1/span 3;margin:0;align-self:center;white-space:nowrap}
@media(max-width:560px){.mlist .mc{grid-template-columns:1fr}.mlist .mc .btn{grid-column:1;grid-row:auto;margin-top:10px}}
.walk{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}
.wc{position:relative;display:flex;align-items:center;gap:14px;background:var(--surface);border-radius:14px;padding:18px 20px;color:var(--ink);text-decoration:none;font-size:16px;line-height:1.35;transition:transform .2s ease,box-shadow .2s ease}
a.wc:hover,a.wc:focus-visible{transform:translateY(-3px);box-shadow:0 10px 24px rgba(20,40,75,.14)}
.wc .wi{flex:none;width:42px;height:42px;padding:9px;border-radius:12px;background:var(--bg);color:var(--blue);transition:background .2s,color .2s}
a.wc:hover .wi,a.wc:focus-visible .wi{background:var(--blue);color:var(--surface)}
.wc span{flex:1;min-width:0}
.wc b{font-weight:600}
.wc .go{font-style:normal;color:var(--blue);font-size:18px;opacity:.5;transition:opacity .2s,transform .2s}
a.wc:hover .go{opacity:1;transform:translate(2px,-2px)}
@media(prefers-reduced-motion:reduce){.wc,.wc .go{transition:none}a.wc:hover{transform:none}}
.mc.corner{max-width:520px}
.wl{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.wl li{padding:14px 0;border-bottom:1px solid var(--line);font-size:17px}
.wl a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--blue);text-underline-offset:3px}
.wl a:hover{color:var(--blue)}
.note{background:var(--surface);border-radius:14px;padding:20px 22px;font-size:15px;color:var(--muted);margin:0 0 18px}

.gift{background:var(--surface);border-radius:18px;padding:clamp(24px,4vw,36px)}
.gift p{margin:0 0 18px;color:var(--muted);max-width:46ch}
.iban{display:flex;flex-wrap:wrap;gap:12px;align-items:center;font-weight:500}
.iban span{border:1.5px dashed var(--line);border-radius:10px;padding:12px 16px}

.rsvp{background:var(--surface);border-radius:18px;padding:clamp(22px,4vw,40px)}
.rsvp label,.rsvp legend{display:block;font-weight:500;font-size:14px;margin:0 0 6px}
.rsvp fieldset{border:0;padding:0;margin:0 0 20px}
.f{margin-bottom:20px}
.rsvp input[type=text],.rsvp input[type=number],.rsvp select,.rsvp textarea{width:100%;font:inherit;font-size:16px;color:var(--ink);background:var(--bg);border:1.5px solid transparent;border-radius:10px;padding:13px 14px}
.rsvp input:focus,.rsvp select:focus,.rsvp textarea:focus{outline:none;border-color:var(--blue)}
.rsvp textarea{min-height:90px;resize:vertical}
.choice{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.choice input{position:absolute;opacity:0;pointer-events:none}
.choice label{margin:0;text-align:center;padding:14px 10px;border-radius:10px;background:var(--bg);cursor:pointer;font-size:16px;font-weight:500;transition:background .15s,color .15s}
.choice input:checked+label{background:var(--blue);color:var(--on-blue)}
.choice input:focus-visible+label{outline:2px solid var(--blue);outline-offset:3px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.two>*{min-width:0}
.hintq{margin:0 0 16px;color:var(--muted);font-size:15px}
.err{color:var(--err);font-size:14px;margin:-8px 0 14px}
.send{display:flex;flex-wrap:wrap;gap:12px}
.thanks{margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}
.thanks h3{font-family:var(--display);font-weight:700;font-size:28px;letter-spacing:-.02em;margin:0 0 6px}
.thanks pre{white-space:pre-wrap;font:inherit;font-size:14px;color:var(--muted);background:var(--bg);padding:14px;border-radius:10px;margin:12px 0 16px}

details{border-bottom:1px solid var(--line);padding:18px 0}
details:first-of-type{border-top:1px solid var(--line)}
summary{cursor:pointer;font-weight:600;font-size:18px;list-style:none;display:flex;justify-content:space-between;gap:16px}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";color:var(--blue);font-size:24px;line-height:1}
details[open] summary::after{content:"–"}
details p{margin:10px 0 0;color:var(--muted);max-width:60ch;font-size:16px}

footer{margin-top:clamp(72px,11vw,130px);padding-bottom:56px}
footer .sky{display:block;width:100%;max-width:820px;height:auto;margin:0 0 20px}
:root[data-theme="dark"] footer .sky{filter:brightness(1.5)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) footer .sky{filter:brightness(1.5)}}
footer .fn{font-family:var(--display);font-weight:800;font-size:clamp(22px,3.2vw,28px);letter-spacing:-.03em;color:var(--blue);margin:0;line-height:1}
footer small{color:var(--muted)}

@media (max-width:820px){
  .sec{grid-template-columns:minmax(0,1fr)}
  .hero .row{grid-template-columns:minmax(0,1fr)}
  .bar .m{display:none}
  .bar .l{margin-left:0}
}
@media (max-width:520px){
  .hero .banner{aspect-ratio:4/3}
  .prog li{grid-template-columns:minmax(0,1fr);gap:2px}
  .two{grid-template-columns:minmax(0,1fr)}
  .count{gap:24px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn{transition:none}}

/* ===== canva ===== */
/* Piel "Canva": beige y azul cobalto, títulos script de trazo (sustituto de Madelyn Rough), texto tipo Copperplate (sustituto: Tenor Sans). Para usar las fuentes originales, cambiar solo --display y --body. */
:root,:root[data-theme="dark"]{
  --bg:#F4EDE9; --surface:#F6F6F5; --ink:#366BAA; --blue:#366BAA; --muted:#3F70AB; --line:rgba(54,107,170,.3);
  --on-blue:#FDF1F3; --rose:#F8E1E6; --err:#9B2C2C; color-scheme:light;
  --display:'Allura','Brush Script MT',cursive;
  --body:'Tenor Sans','Gill Sans','Trebuchet MS',sans-serif;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--bg:#F4EDE9; --surface:#F6F6F5; --ink:#366BAA; --blue:#366BAA; --muted:#3F70AB; --line:rgba(54,107,170,.3); --on-blue:#FDF1F3; --err:#9B2C2C; color-scheme:light}}
body{font-size:18px;letter-spacing:.02em}
h1,h2,h3,h4,.tag,.mh,.fn,.m,.thanks h3{font-weight:400!important}
/* barra */
.bar{background:var(--bg);backdrop-filter:none}
.bar .m{font-family:var(--display);font-size:38px!important;letter-spacing:0!important}
.bar .l a{font-family:var(--body);font-weight:400!important;font-size:13px!important;letter-spacing:.14em;text-transform:uppercase}
.bar .l a:hover{text-decoration:underline;text-underline-offset:6px}
/* botones: contorno de trazo a mano, sin píldoras */
.btn{font-family:var(--body);font-weight:400!important;font-size:15px!important;letter-spacing:.1em;text-transform:uppercase;border-radius:0!important;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 80' preserveAspectRatio='none'%3E%3Cpath d='M14 42C10 18 70 8 118 9s92 8 90 32-62 30-112 28S18 62 14 42Z' fill='none' stroke='%23366BAA' stroke-width='2.2' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M22 50C30 66 90 72 132 68s80-12 76-30' fill='none' stroke='%23366BAA' stroke-width='1.1' stroke-linecap='round' vector-effect='non-scaling-stroke' opacity='.55'/%3E%3C/svg%3E") center/100% 100% no-repeat!important;color:var(--blue)!important;box-shadow:none!important;padding:20px 38px!important}
.btn.alt{padding:16px 30px!important;font-size:13px!important}
.btn:hover{opacity:1;transform:rotate(-1.5deg)}
.btn:disabled{opacity:.4}
/* portada */
.hero{text-align:center;padding-top:clamp(36px,6vw,80px)}
.hero h1{font-family:var(--display)!important;font-weight:400!important;font-size:clamp(78px,17vw,210px)!important;line-height:.8!important;letter-spacing:-.01em!important;transform:rotate(-5deg);margin:clamp(20px,4vw,56px) 0 clamp(36px,6vw,70px)}
.hero h1 span+span{padding-left:0!important}
.hero .tag{font-family:var(--body)!important;font-size:clamp(20px,3vw,34px)!important;letter-spacing:.04em!important;margin:0!important}
.hero .when{font-family:var(--body)!important;font-weight:400!important;font-size:clamp(22px,3.3vw,40px)!important;letter-spacing:.03em!important;margin-top:6px!important}
.hero .when small{font-size:15px!important;letter-spacing:.2em!important;text-transform:uppercase}
.hero .row{grid-template-columns:1fr!important;justify-items:center;text-align:center;margin-top:20px!important}
.hero .frase{max-width:30ch;margin-inline:auto}
.hero .cta{justify-content:center}
.hero .ring{width:clamp(64px,8vw,100px);margin:clamp(24px,4vw,40px) auto 0;display:block;fill:none;stroke:var(--blue);stroke-width:.8;stroke-linecap:round;stroke-linejoin:round}
.hero .banner,.vphoto,.card,.mc,.wc,.gift,.rsvp,.note,.ico{border-radius:0!important}
.track figure{border-radius:0!important;background:var(--surface);box-shadow:0 10px 28px rgba(10,30,60,.22)}
.count{border-top:1px solid var(--line)!important;justify-content:center}
.count b{font-family:var(--body)!important;font-weight:400!important;letter-spacing:.02em!important}
.count small{text-transform:uppercase;letter-spacing:.18em;font-size:13px!important}
/* secciones */
.sec h2,.mh{font-family:var(--display)!important;font-size:clamp(44px,6vw,70px)!important;line-height:1.05!important;letter-spacing:0!important}
.mh{font-size:clamp(36px,4.6vw,52px)!important}
.sec .lead{font-size:17px!important;max-width:34ch}
.card,.mc,.wc,.gift,.rsvp,.note{background:var(--surface);box-shadow:none}
.card h3,.mc h4{font-family:var(--body)!important;letter-spacing:.03em!important;line-height:1.25!important}
.card h3{font-size:24px!important}
.card .hr{letter-spacing:.14em;text-transform:uppercase;font-size:13px!important;font-weight:400!important}
.card.main{background:var(--blue);color:var(--on-blue)}
.card.main .btn{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 80' preserveAspectRatio='none'%3E%3Cpath d='M14 42C10 18 70 8 118 9s92 8 90 32-62 30-112 28S18 62 14 42Z' fill='none' stroke='%23F4EDE9' stroke-width='2.2' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E")!important;color:var(--bg)!important;background-color:transparent!important}
.prog time{font-family:var(--body)!important;font-weight:400!important;letter-spacing:.1em!important}
.prog h3{font-family:var(--body);font-weight:400!important;font-size:21px!important;letter-spacing:.03em}
.prog .ico,.wc .wi{background:transparent!important;color:var(--blue)}
.wc{font-size:17px}
.wc b{font-weight:400!important;letter-spacing:.04em}
.mc .by{font-weight:400!important;letter-spacing:.16em;text-transform:uppercase}
.facts b,.facts h3,summary{font-weight:400!important}
.choice label{border-radius:0!important;background:transparent!important;border:1.5px solid var(--blue);font-weight:400!important}
.choice input:checked+label{background:var(--blue)!important;color:var(--bg)}
.rsvp input[type=text],.rsvp input[type=number],.rsvp select,.rsvp textarea{border-radius:0!important;background:transparent!important;border:0;border-bottom:1.5px solid var(--blue)!important;color:var(--blue)}
.rsvp textarea{border:1.5px solid var(--blue)!important}
.rsvp label,.rsvp legend{font-weight:400!important;letter-spacing:.14em;text-transform:uppercase;font-size:13px!important}
.iban span{border-radius:0!important;border-color:var(--blue)!important}
.thanks h3{font-family:var(--display)!important;font-size:44px!important;letter-spacing:0!important}
/* bandas azules a todo el ancho */
.sec.band{background:var(--blue);color:var(--on-blue);box-shadow:0 0 0 100vmax var(--blue);clip-path:inset(0 -100vmax);padding-bottom:clamp(56px,9vw,110px);margin-top:clamp(64px,10vw,120px)}
.sec.band h2,.sec.band .lead,.sec.band p,.sec.band h3{color:var(--rose)!important}
.sec.band .card{background:transparent;border:1px solid rgba(248,225,230,.45);color:var(--rose)}
.sec.band .card .cic{color:var(--rose)}
.sec.band .btn{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 80' preserveAspectRatio='none'%3E%3Cpath d='M14 42C10 18 70 8 118 9s92 8 90 32-62 30-112 28S18 62 14 42Z' fill='none' stroke='%23F8E1E6' stroke-width='2.2' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E")!important;color:var(--rose)!important}
/* pie azul */
footer{background:var(--blue);color:var(--rose);padding-top:clamp(44px,7vw,80px);margin-top:clamp(72px,11vw,130px)!important}
footer .w{text-align:center}
footer .sky{margin:0 auto 24px!important;filter:brightness(0) invert(.93) sepia(.1)!important}
footer .fn{font-family:var(--display)!important;font-size:clamp(44px,7vw,72px)!important;color:var(--rose)!important;letter-spacing:0!important}
footer small,footer .fl,footer .fl a{color:var(--rose)!important;font-weight:400!important}
footer .fl a{letter-spacing:.1em;text-transform:uppercase;font-size:13px;text-underline-offset:5px}

/* ===== land ===== */
.bar .w{display:grid!important;grid-template-columns:1fr auto 1fr;gap:20px;height:64px}
.bar .m{grid-column:2;grid-row:1;font-size:clamp(28px,3.6vw,40px)!important;text-align:center}
.bar .l{display:contents}
.bar .l .nl{grid-column:1;grid-row:1;display:flex;gap:22px;align-items:center}
.bar .l .nr{grid-column:3;grid-row:1;display:flex;gap:22px;align-items:center;justify-content:flex-end}
.bar .rs{border:1.5px solid var(--blue);padding:9px 16px}
@media(max-width:860px){.bar .w{grid-template-columns:1fr;height:auto;padding:10px 0;gap:6px}.bar .m{grid-column:1;grid-row:1;display:block!important}.bar .l .nl,.bar .l .nr{grid-column:1;grid-row:auto;justify-content:center;flex-wrap:wrap;gap:6px 18px}.bar .l{display:flex;flex-direction:column;margin-left:0}}
.hero2{text-align:center;padding-top:clamp(40px,7vw,84px);padding-bottom:clamp(48px,8vw,96px)}
.hero2 .tag2{font-size:14px;letter-spacing:.24em;text-transform:uppercase;margin:0}
.hero2 .nom{font-family:var(--display);font-size:clamp(44px,7vw,84px);line-height:1;margin:10px 0 0}
.hero2 .fecha{font-family:var(--display);font-size:clamp(44px,12.5vw,190px);line-height:1;margin:0;white-space:nowrap}
.hero2 .fotos{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr) minmax(0,1fr);gap:clamp(12px,3vw,40px);align-items:center;margin:clamp(20px,4vw,40px) auto 0;max-width:860px}
.hero2 figure{margin:0;background:var(--surface);padding:clamp(6px,1.2vw,12px);box-shadow:0 10px 28px rgba(10,30,60,.22)}
.hero2 figure img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover}
.hero2 figure.c img{aspect-ratio:4/5}
.hero2 figure.l{transform:rotate(-3deg)}.hero2 figure.r{transform:rotate(3deg)}
.hero2 .frase{margin:clamp(24px,4vw,40px) auto 0;max-width:32ch;font-size:clamp(17px,2vw,21px);letter-spacing:.04em}
.hero2 .cta{margin-top:22px}
.dia{padding-block:clamp(56px,9vw,104px);text-align:center;background:var(--blue);color:var(--rose)}
.dia small,.cdb small{display:block;font-size:13px;letter-spacing:.24em;text-transform:uppercase}
.dia h2,.cdb h2,.lug2 h2,.mas h2{font-family:var(--display);font-weight:400;font-size:clamp(46px,7vw,84px);line-height:1.05;margin:10px 0 0}
.dia h2{color:var(--rose)}
.hrs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 16px;max-width:900px;margin:clamp(34px,6vw,60px) auto 0}
.hrs b{display:block;font-weight:400;font-size:clamp(24px,3.4vw,38px);letter-spacing:.04em;font-variant-numeric:tabular-nums}
.hrs span{display:block;margin-top:6px;font-size:13px;letter-spacing:.2em;text-transform:uppercase;opacity:.9}
.dia .btn{margin-top:clamp(30px,5vw,48px);color:var(--rose)!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 80' preserveAspectRatio='none'%3E%3Cpath d='M14 42C10 18 70 8 118 9s92 8 90 32-62 30-112 28S18 62 14 42Z' fill='none' stroke='%23F8E1E6' stroke-width='2.2' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E")!important}
.lug2{padding-block:clamp(56px,9vw,104px);text-align:center}
.lrow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,260px) minmax(0,1fr);gap:clamp(18px,5vw,64px);align-items:center;margin:clamp(30px,5vw,56px) auto 0;max-width:960px}
.lrow+.lrow{margin-top:clamp(40px,6vw,72px)}
.lrow .t{font-size:16px;line-height:1.7;letter-spacing:.06em;text-transform:uppercase}
.lrow .t b{display:block;font-weight:400;font-size:19px;margin-bottom:4px}
.lrow .t.a{text-align:right}.lrow .t.b{text-align:left}
.lrow figure{margin:0;background:var(--surface);padding:10px;box-shadow:0 10px 28px rgba(10,30,60,.2)}
.lrow figure img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover}
.lrow .btn{margin-top:12px}
@media(max-width:720px){.lrow{grid-template-columns:1fr;text-align:center}.lrow .t.a,.lrow .t.b{text-align:center}.lrow figure{order:-1;max-width:260px;margin:0 auto}}
.cdb{padding-block:clamp(64px,10vw,120px);text-align:center;background:var(--blue);color:var(--rose)}
.cdb h2{color:var(--rose)}
.cdn{display:flex;justify-content:center;gap:clamp(10px,4vw,64px);margin-top:clamp(28px,5vw,52px)}
.cdn b{display:block;font-family:var(--display);font-weight:400;font-size:clamp(34px,13vw,190px);line-height:1;font-variant-numeric:tabular-nums}
.cdn small{margin-top:4px;font-size:clamp(9px,2.4vw,13px);letter-spacing:.14em}
.mas{padding-block:clamp(56px,9vw,104px);text-align:center}
.mcols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(28px,5vw,56px);max-width:960px;margin:clamp(30px,5vw,52px) auto 0}
.mcols h3{font-family:var(--display);font-weight:400!important;font-size:clamp(38px,5vw,54px)!important;line-height:1.05;margin:0}
.mcols p{margin:8px auto 0;font-size:16px;max-width:26ch}
.mcols .btn{margin-top:14px}
@media(max-width:720px){.mcols,.hrs{grid-template-columns:1fr 1fr}.mcols{grid-template-columns:1fr}}
.gw{padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}

/* ===== btn2 ===== */
.btn,.bar .rs{background:var(--blue)!important;background-image:none!important;color:var(--bg)!important;border:0!important;border-radius:15px!important;padding:15px 28px!important;font-size:14px!important;letter-spacing:.12em;text-transform:uppercase;box-shadow:none!important}
.btn.alt{padding:12px 22px!important;font-size:13px!important}
.bar .rs{padding:10px 18px!important;font-size:13px}
.btn:hover,.bar .rs:hover{transform:none!important;opacity:.88}
.btn:disabled{opacity:.4}
.dia .btn,.sec.band .btn,.card.main .btn,.rsvp .btn{background:var(--bg)!important;color:var(--blue)!important}
.rsvp{background:var(--blue)!important;color:var(--bg)!important}
.rsvp label,.rsvp legend,.rsvp .hintq,.rsvp p,.rsvp h3{color:var(--bg)!important}
.rsvp input[type=text],.rsvp input[type=number],.rsvp select,.rsvp textarea{color:var(--bg)!important;border-bottom-color:var(--bg)!important}
.rsvp textarea{border-color:var(--bg)!important}
.rsvp ::placeholder{color:var(--bg);opacity:.65}
.rsvp select option{color:#366BAA;background:#F4EDE9}
.rsvp .choice label{border-color:var(--bg);color:var(--bg)!important}
.rsvp .choice input:checked+label{background:var(--bg)!important;color:var(--blue)!important}
.rsvp .thanks{border-top-color:rgba(244,237,233,.45)}
.rsvp .thanks pre{background:rgba(244,237,233,.12);color:var(--bg)!important}
.rsvp .err{color:#FFD6D2!important}
.hero2 .tag2{font-family:var(--body);font-weight:700;font-size:clamp(28px,4.6vw,50px);letter-spacing:.1em;margin:0}
.hero2 .fecha{font-size:clamp(34px,7.5vw,104px)!important}
.hero2 figure{position:relative}
.hero2 figure img{position:absolute;inset:6px;width:calc(100% - 12px);height:calc(100% - 12px);aspect-ratio:auto;opacity:0;transition:opacity 1.2s ease}
.hero2 figure img.on{opacity:1}
.hero2 figure::before{content:"";display:block;aspect-ratio:3/4}
.hero2 figure.c::before{aspect-ratio:4/5}
.hrs{grid-template-columns:repeat(4,minmax(0,1fr))}
.hrs span{text-transform:none;letter-spacing:.06em;font-size:15px}
@media(max-width:720px){.hrs{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.hero2 figure img{transition:none}}

/* ===== land2 ===== */
html{scroll-padding-top:110px}
.bar .w{display:flex!important;flex-direction:column;align-items:center;height:auto!important;padding:6px 0 10px!important;gap:0!important}
.bar .m{font-size:40px!important;line-height:1.1}
.bar .l{display:flex!important;margin:0!important;gap:clamp(14px,3vw,34px);justify-content:center;flex-wrap:wrap;overflow:visible!important}
.bar .l .nl,.bar .l .nr{display:flex!important;gap:clamp(14px,3vw,34px);align-items:center;flex-wrap:wrap;justify-content:center}
.hero2{padding-bottom:clamp(16px,3vw,32px)}
.hero2 .nom{font-size:clamp(40px,6vw,72px)}
.dt{width:fit-content;margin:6px auto 0}
.dt .tag2{display:flex;justify-content:space-between;font-size:clamp(11px,1.6vw,19px)!important;letter-spacing:0!important;line-height:1;margin:0!important;width:100%}
.dt .tag2 .sp{display:inline-block;width:.6em}
.dt .fecha{margin-top:2px}
.strip{margin-top:clamp(8px,2vw,24px);overflow:hidden;padding:24px 0 40px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.track{display:flex;gap:24px;width:max-content;padding:0 12px;animation:slide 55s linear infinite}
.strip:hover .track{animation-play-state:paused}
@keyframes slide{to{transform:translateX(calc(-50% - 12px))}}
.track figure{margin:0;flex:none;width:clamp(190px,26vw,260px);background:var(--surface);padding:10px 10px 36px;box-shadow:0 10px 28px rgba(10,30,60,.22)}
.track figure:nth-child(odd){transform:rotate(-2.2deg)}
.track figure:nth-child(even){transform:rotate(1.8deg) translateY(12px)}
.track img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover}
.cta2{text-align:center;padding-bottom:clamp(40px,7vw,80px)}
.cta2 .frase{margin:0 auto;max-width:32ch;font-size:clamp(17px,2vw,21px);letter-spacing:.04em}
.cta2 .cta{margin-top:22px;display:flex;justify-content:center}
.hrs{gap:36px 16px!important}
.hrs>div{display:flex;flex-direction:column;align-items:center}
.hrs .ic{width:84px;height:84px;object-fit:contain;margin-bottom:12px;color:var(--rose)}
svg.ic{fill:none;stroke:currentColor;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}
.locs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,5vw,64px);max-width:900px;margin:clamp(30px,5vw,56px) auto 0}
.loc{display:flex;flex-direction:column;align-items:center;gap:18px}
.loc figure{margin:0;background:var(--surface);padding:10px;box-shadow:0 10px 28px rgba(10,30,60,.2);width:100%;max-width:380px}
.loc figure img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover}
.loc .t{font-size:16px;line-height:1.7;letter-spacing:.06em;text-transform:uppercase}
.loc .t b{display:block;font-weight:400;font-size:20px;margin-bottom:4px}
@media(max-width:640px){.locs{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.track{animation:none;width:auto}.strip{overflow-x:auto}}

/* ===== land3 ===== */
.hero2 .tag2{font-family:var(--display)!important;font-weight:400!important;font-size:clamp(34px,7.5vw,104px)!important;letter-spacing:0!important;line-height:1!important;margin:6px 0 0!important;display:block!important;width:auto!important}
.dt{width:auto!important}
.hero2 .tag2{text-transform:none!important}
footer{margin-top:0!important}
.dt .fecha{margin-top:0!important}
/* línea de tiempo */
.tl{list-style:none;margin:clamp(30px,5vw,56px) auto 0;padding:0;max-width:820px;position:relative}
.tl::before,.tl::after{content:"";position:absolute;left:50%;width:16px;height:16px;border-radius:50%;background:var(--rose);transform:translateX(-50%)}
.tl::before{top:-8px}.tl::after{bottom:-8px}
.tl-row{display:grid;grid-template-columns:minmax(0,1fr) 3px minmax(0,1fr);align-items:center;gap:0 28px;min-height:150px}
.tl-m{align-self:stretch;background:var(--rose)}
.tl-t{text-align:right;display:flex;flex-direction:column;justify-content:center;gap:6px}
.tl-l{font-size:clamp(17px,2.1vw,22px);letter-spacing:.04em;line-height:1.3;padding-right:4px}
.tl-h{display:flex;align-items:center;gap:12px;font-size:clamp(20px,2.6vw,28px);letter-spacing:.06em;font-variant-numeric:tabular-nums}
.tl-h i{flex:1;order:2;border-top:2px dashed var(--rose);height:0;margin-right:-28px}
.tl-h time{order:1}
.tl-i{display:flex;justify-content:center;align-items:center}
.tl-i img{height:96px;width:auto;max-width:150px;object-fit:contain}
.tl-row .tl-t{grid-column:1;grid-row:1}.tl-row .tl-m{grid-column:2;grid-row:1}.tl-row .tl-i{grid-column:3;grid-row:1}
.tl-row.rev .tl-t{grid-column:3;text-align:left}
.tl-row.rev .tl-i{grid-column:1}
.tl-row.rev .tl-h i{order:0;margin-right:0;margin-left:-28px}
.tl-row.rev .tl-h time{order:1}
.tl-row.rev .tl-l{padding-right:0;padding-left:4px}
@media(max-width:640px){
  .tl{max-width:420px;margin-left:0}
  .tl::before,.tl::after{left:11px}
  .tl-row,.tl-row.rev{grid-template-columns:22px minmax(0,1fr);gap:0 18px;min-height:0;padding:14px 0}
  .tl-m{grid-column:1!important;grid-row:1/span 2!important;width:3px;margin-left:10px}
  .tl-row .tl-i,.tl-row.rev .tl-i{grid-column:2!important;grid-row:1!important;justify-content:flex-start}
  .tl-row .tl-t,.tl-row.rev .tl-t{grid-column:2!important;grid-row:2!important;text-align:left}
  .tl-h i{display:none}.tl-h{order:-1}
  .tl-t{flex-direction:column-reverse}
  .tl-i img{height:72px}
}
/* formulario */
.conf{background:var(--blue);padding-block:clamp(56px,9vw,104px);margin-top:clamp(56px,9vw,104px);text-align:center}
.conf h2{font-family:var(--display);font-weight:400;font-size:clamp(46px,7vw,84px);line-height:1.05;color:var(--rose);margin:0}
.conf .lead{color:var(--rose);margin:10px auto 0;max-width:44ch;font-size:17px}
.conf .rsvp{background:var(--bg)!important;color:var(--blue)!important;max-width:640px;margin:clamp(28px,5vw,48px) auto 0;text-align:left}
.conf .rsvp label,.conf .rsvp legend,.conf .rsvp .hintq,.conf .rsvp p,.conf .rsvp h3{color:var(--blue)!important}
.conf .rsvp input[type=text],.conf .rsvp select,.conf .rsvp textarea{color:var(--blue)!important;border-bottom-color:var(--blue)!important}
.conf .rsvp textarea{border-color:var(--blue)!important}
.conf .rsvp ::placeholder{color:var(--blue);opacity:.6}
.conf .rsvp .choice label{border-color:var(--blue);color:var(--blue)!important}
.conf .rsvp .choice input:checked+label{background:var(--blue)!important;color:var(--bg)!important}
.conf .rsvp .btn{background:var(--blue)!important;color:var(--bg)!important}
.conf .rsvp .thanks{border-top-color:var(--line)}
.conf .rsvp .thanks pre{background:var(--surface);color:var(--blue)!important}
.conf .rsvp .err{color:#9B2C2C!important}

/* ===== land4 ===== */
/* itinerario sobre beige */
.dia{background:transparent!important;color:var(--blue)!important;padding-bottom:clamp(40px,7vw,80px)}
.dia h2{color:var(--blue)!important}
.tl::before,.tl::after,.tl-m{background:var(--blue)!important}
.tl-h i{border-top-color:var(--blue)!important}
.dia .btn{background:var(--blue)!important;color:var(--bg)!important;margin-top:clamp(36px,6vw,60px)}
.dia{text-align:center}
.tl-row{min-height:130px}
/* ceremonia y finca */
.lug2{padding-top:clamp(24px,4vw,48px)}
.locs{max-width:920px}
.loc{align-items:stretch!important;max-width:400px;margin:0 auto;width:100%}
.loc figure{max-width:none!important}
.loc .t{text-align:left!important;text-transform:none!important;font-size:16px!important;letter-spacing:.04em!important;line-height:1.5;display:flex;flex-direction:column;gap:2px}
.loc .t b{font-size:13px!important;letter-spacing:.22em;text-transform:uppercase;margin-bottom:4px!important}
.loc .t .h{font-size:20px;letter-spacing:.06em}
.loc .t .n{white-space:nowrap;font-size:17px;margin-top:6px}
.loc .t .d{margin-top:2px;text-align:justify;opacity:.9}
.loc .btn{align-self:flex-start}
@media(max-width:460px){.loc .t .n{white-space:normal}}
/* formulario */
.conf .rsvp{border-radius:15px;padding:clamp(24px,5vw,44px)!important}
.conf .rsvp .f,.conf .rsvp fieldset{margin:0 0 26px!important}
.conf .rsvp input[type=text],.conf .rsvp select,.conf .rsvp textarea{padding:10px 0!important;font-size:17px}
.conf .rsvp textarea{padding:12px!important;border-radius:10px}
.conf .rsvp .choice label{border-radius:10px!important;padding:15px 10px}
.conf .rsvp .hintq{margin:0 0 24px!important;padding:14px 16px;background:var(--surface);border-radius:10px;font-size:15px}
.conf .rsvp #detalles{margin:0}
.conf .rsvp .go,.conf .rsvp>.btn{margin-top:8px}
.conf .rsvp .send{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.conf .rsvp .send .btn{text-align:center}
@media(max-width:520px){.conf .rsvp .send{grid-template-columns:1fr}}

/* ===== land5 ===== */
.cdb{padding-block:clamp(18px,3vw,30px)!important}
.cdb .cdn{margin-top:0!important;gap:clamp(14px,4vw,48px)}
.cdb .cdn b{font-size:clamp(34px,6.5vw,68px)!important}
.cdb .cdn small{margin-top:2px}

/* ===== land6 ===== */
.rg .btn{display:inline-block;border:1.5px solid var(--blue);border-radius:15px;padding:12px 24px;margin-top:12px;cursor:pointer;font-family:var(--body);font-size:13px;letter-spacing:.16em;text-transform:uppercase;background:transparent;color:var(--blue)}
@media(max-width:560px){.bar .nl a,.bar .nr a{font-size:11.5px!important;letter-spacing:.08em!important}.bar .nl,.bar .nr{gap:4px 12px!important}}

.ptl{margin-bottom:clamp(40px,6vw,70px)!important}
/* ===== versión 3: cambios del Word ===== */
:root{--blue2:rgba(54,107,170,.78)}
.bar .nl{gap:clamp(14px,2.4vw,34px)}
/* inicio */
.hero2{padding-top:clamp(44px,8vw,100px)!important;padding-bottom:clamp(8px,2vw,20px)!important}
.hero2 .nom{font-size:clamp(54px,9.5vw,118px)!important;margin:0!important;line-height:.95}
.hero2 .dt{display:flex;align-items:center;justify-content:center;gap:clamp(14px,3vw,30px);margin-top:clamp(16px,3vw,30px)}
.hero2 .dt::before,.hero2 .dt::after{content:"";width:clamp(32px,9vw,110px);height:1px;background:var(--blue);opacity:.55}
.hero2 .fecha{font-family:var(--body)!important;font-size:clamp(14px,2.4vw,24px)!important;letter-spacing:.34em;margin:0!important;padding-left:.34em;white-space:nowrap;font-weight:400}
.cta2{padding-top:clamp(0px,1vw,10px)!important}
.cta2 .frase{font-family:var(--display)!important;font-size:clamp(30px,5.2vw,52px)!important;line-height:1.15;letter-spacing:0!important;max-width:24ch!important;margin:0 auto!important;text-wrap:balance}
.cta2 .cta{margin-top:clamp(20px,3.4vw,30px)!important}
.btn.ghost{background:transparent!important;color:var(--blue)!important;border:1.5px solid var(--blue);border-radius:15px;font-family:var(--body);letter-spacing:.16em;text-transform:uppercase;font-size:13px;padding:14px 28px}
.btn.ghost:hover{background:var(--blue)!important;color:var(--bg)!important}
/* nuestro día */
.dia{padding-block:clamp(32px,5vw,56px)!important}
.dia h2{margin:0!important}
.tl{margin-top:clamp(22px,4vw,36px)!important}
.tl-row{min-height:0!important;padding:clamp(10px,1.6vw,16px) 0!important}
.tl-l,.tl-h{font-size:clamp(17px,2.1vw,22px)!important;letter-spacing:.06em!important;line-height:1.3}
.tl-i img{height:clamp(52px,6vw,68px)!important}
.dia .btn{margin-top:clamp(24px,4vw,38px)!important}
/* ceremonia y finca */
.lug2{padding-block:clamp(36px,6vw,72px)!important;text-align:left!important}
.lug2 h2{text-align:center}
.locs{display:flex!important;flex-direction:column;gap:clamp(28px,5vw,48px)!important;max-width:880px!important}
.loc{display:grid!important;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(18px,4vw,44px)!important;align-items:center!important;max-width:none!important;width:100%}
.loc figure{max-width:none!important;padding:8px}
.loc figure img{aspect-ratio:4/3!important}
.loc .t{text-align:left!important;display:block!important}
.loc .t b{display:block;font-family:var(--display);font-weight:400!important;font-size:clamp(40px,5.4vw,60px)!important;letter-spacing:0!important;text-transform:none!important;line-height:1;margin:0 0 8px!important}
.loc .t .h{display:block;font-size:17px!important;letter-spacing:.14em;text-transform:uppercase}
.loc .t .n{display:block;white-space:normal!important;font-size:19px!important;font-weight:700;margin-top:10px!important}
.loc .t .d{display:block;text-align:left!important;margin-top:6px!important;opacity:1;font-size:16px}
.loc .btn{margin-top:16px;align-self:auto}
.loc{grid-template-areas:"f t" "f b";grid-template-rows:1fr auto;column-gap:clamp(18px,4vw,44px);row-gap:0}
.loc figure{grid-area:f}.loc .t{grid-area:t;align-self:end}.loc .btn{grid-area:b;align-self:start;justify-self:start}
.loc:nth-child(even){grid-template-columns:minmax(0,6fr) minmax(0,5fr);grid-template-areas:"t f" "b f"}
@media(max-width:640px){.loc,.loc:nth-child(even){grid-template-columns:1fr;grid-template-areas:"f" "t" "b";grid-template-rows:auto;row-gap:12px}.loc .t{align-self:start}.loc figure img{aspect-ratio:3/2!important}}
/* sección azul de enlaces */
.mas{background:var(--blue)!important;color:var(--rose)!important;padding-block:clamp(44px,7vw,80px)!important}
.mas .mcols{grid-template-columns:repeat(4,minmax(0,1fr))!important;max-width:1000px!important;margin-top:0!important;gap:clamp(24px,4vw,44px)!important}
.mas .mcols>div{display:flex;flex-direction:column;align-items:center;gap:14px}
.mas .mic{width:clamp(56px,7vw,76px);height:clamp(56px,7vw,76px);fill:none;stroke:var(--rose);stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round}
.mas h3{color:var(--rose)!important;font-size:clamp(34px,4.2vw,48px)!important;margin:0!important}
.mas .btn,.mas .btn.alt{margin:4px 0 0!important;background:transparent!important;color:var(--rose)!important;border:1.5px solid var(--rose)!important;border-radius:15px;font-size:13px;letter-spacing:.14em;text-transform:uppercase;padding:12px 22px}
.mas .btn:hover{background:var(--rose)!important;color:var(--blue)!important}
@media(max-width:820px){.mas .mcols{grid-template-columns:1fr 1fr!important}}
@media(max-width:420px){.mas .mcols{grid-template-columns:1fr!important}}
/* formulario sin caja blanca */
.conf{margin-top:0!important}
.conf .rsvp{background:transparent!important;color:var(--bg)!important;border-radius:0!important;padding:0!important;max-width:620px!important}
.conf .rsvp label,.conf .rsvp legend,.conf .rsvp .hintq,.conf .rsvp p,.conf .rsvp h3{color:var(--bg)!important}
.conf .rsvp label,.conf .rsvp legend{font-weight:700!important;letter-spacing:.04em!important;text-transform:none!important;font-size:17px!important;margin-bottom:8px}
.conf .rsvp input[type=text],.conf .rsvp select,.conf .rsvp textarea{color:var(--bg)!important;border-bottom-color:var(--bg)!important;background:transparent!important}
.conf .rsvp textarea{border-color:var(--bg)!important}
.conf .rsvp ::placeholder{color:var(--bg);opacity:.6}
.conf .rsvp select option{color:#366BAA;background:#F4EDE9}
.conf .rsvp .choice label{border-color:var(--bg)!important;color:var(--bg)!important;font-weight:400!important}
.conf .rsvp .choice input:checked+label{background:var(--bg)!important;color:var(--blue)!important;font-weight:700!important}
.conf .rsvp .hintq{background:transparent!important;padding:0!important;font-size:18px!important;font-weight:700;margin:6px 0 26px!important}
.conf .rsvp .btn{background:var(--bg)!important;color:var(--blue)!important}
.conf .rsvp .thanks{border-top-color:rgba(244,237,233,.45)}
.conf .rsvp .thanks pre{background:rgba(244,237,233,.12)!important;color:var(--bg)!important}
.conf .rsvp .err{color:#FFD6D2!important}
.conf .lead{margin-bottom:0}
/* subpáginas */
.ph{text-align:center;padding-top:clamp(40px,7vw,84px);padding-bottom:clamp(20px,4vw,40px)}
.ph h1{font-family:var(--display);font-weight:400!important;font-size:clamp(54px,9vw,104px);line-height:1;margin:0;color:var(--blue)}
.ph p{margin:12px auto 0;max-width:46ch;font-size:clamp(16px,1.9vw,19px);line-height:1.55}
.ph .dtl{letter-spacing:.3em;text-transform:uppercase;font-size:14px}
.ph img.hm{display:block;margin:clamp(18px,3vw,30px) auto 0;width:min(70%,360px)}
/* itinerario */
.ptl{list-style:none;margin:clamp(16px,3vw,32px) 0 0;padding:0}
.ptl li{padding-block:clamp(22px,3.4vw,36px)}
.ptl li.b{background:var(--blue);color:var(--rose)}
.ptl .w{display:grid;grid-template-columns:clamp(70px,12vw,120px) clamp(54px,8vw,80px) minmax(0,1fr);gap:clamp(14px,3vw,34px);align-items:center;max-width:760px}
.ptl time{font-size:clamp(22px,3.4vw,34px);letter-spacing:.06em;font-variant-numeric:tabular-nums;font-weight:700}
.ptl img{height:clamp(46px,6.5vw,64px);width:auto;max-width:100%;object-fit:contain;justify-self:center}
.ptl li.b img{filter:brightness(0) invert(1);opacity:.92}
.ptl h3{margin:0;font-weight:700;font-size:clamp(19px,2.4vw,24px);letter-spacing:.02em;line-height:1.3}
.ptl p{margin:4px 0 0;font-size:clamp(16px,1.9vw,19px);line-height:1.5;color:var(--blue2)}
.ptl li.b p{color:var(--rose);opacity:.92}
.ptl .fin p{max-width:36ch}
@media(max-width:560px){.ptl .w{grid-template-columns:64px minmax(0,1fr)}.ptl img{display:none}}
/* alojamientos / transporte / madrid / regalo */
.bk{padding-block:clamp(30px,5vw,56px)}
.bk.blue{background:var(--blue);color:var(--rose)}
.bk h2{font-family:var(--display);font-weight:400!important;font-size:clamp(44px,6.4vw,76px);line-height:1;margin:0 0 clamp(18px,3vw,30px);text-align:left}
.bk.blue h2{color:var(--rose)}
.bk .w{max-width:880px}
.bk h3.sub{font-family:var(--display);font-weight:400!important;font-size:clamp(32px,4.4vw,46px);line-height:1;margin:clamp(26px,4vw,40px) 0 14px}
.bk h3.sub:first-of-type{margin-top:0}
.hot{list-style:none;margin:0;padding:0;display:grid;gap:0}
.hot li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px clamp(16px,4vw,48px);align-items:baseline;padding:14px 0;border-bottom:1px solid rgba(54,107,170,.28)}
.hot li:first-child{border-top:1px solid rgba(54,107,170,.28)}
.hot .nm{font-weight:700;font-size:clamp(18px,2.2vw,22px);color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.hot .ad{color:inherit;text-decoration:none;font-size:16px;opacity:.88;text-align:left}
.hot .ad:hover,.hot .nm:hover{opacity:.7}
.hot .ds{grid-column:1/-1;font-size:16px;opacity:.88;margin-top:-2px}
.hot .ad::before{content:"";display:inline-block;width:.8em;height:.8em;margin-right:.5em;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M12 21s7-6.2 7-11.5A7 7 0 0 0 5 9.5C5 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M12 21s7-6.2 7-11.5A7 7 0 0 0 5 9.5C5 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E") center/contain no-repeat;vertical-align:-.05em}
@media(max-width:620px){.hot li{grid-template-columns:1fr}}
.bk.blue .hot li{border-color:rgba(248,225,230,.35)}
.zfig{display:flex;gap:clamp(18px,4vw,36px);align-items:center;margin-bottom:14px}
.zfig img{width:clamp(92px,16vw,150px);aspect-ratio:1;object-fit:cover;flex:none}
.zfig img.line{object-fit:contain;aspect-ratio:auto;height:clamp(64px,10vw,96px);width:auto}
.zfig h3.sub{margin:0!important}
.bus{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(14px,3vw,28px)}
.bus article{border:1.5px solid var(--rose);border-radius:15px;padding:clamp(18px,3vw,28px)}
.bus b.k{display:block;font-size:13px;letter-spacing:.22em;text-transform:uppercase;margin-bottom:6px}
.bus .hr{font-size:clamp(34px,5vw,48px);font-weight:700;line-height:1;margin:2px 0 12px;font-variant-numeric:tabular-nums}
.bus .rt{font-size:17px;line-height:1.6}
.bus .rt i{display:block;font-style:normal;opacity:.8;font-size:14px;letter-spacing:.16em;text-transform:uppercase;margin-top:6px}
@media(max-width:620px){.bus{grid-template-columns:1fr}}
.avisa{margin-top:clamp(20px,3.4vw,32px);font-size:17px;line-height:1.6;max-width:60ch}
.cts{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px}
.cts a{display:inline-flex;flex-direction:column;border:1.5px solid var(--rose);border-radius:15px;padding:12px 20px;color:var(--rose);text-decoration:none;line-height:1.35}
.cts a b{font-weight:700;font-size:18px}.cts a span{font-size:15px;opacity:.9}
.cts a:hover{background:var(--rose);color:var(--blue)}
.otras{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,4vw,40px)}
.otras div{display:flex;gap:16px;align-items:center}
.otras img{width:64px;height:64px;object-fit:contain;flex:none}
.otras h3{margin:0;font-weight:700;font-size:20px}.otras p{margin:2px 0 0;font-size:16px}
@media(max-width:620px){.otras{grid-template-columns:1fr}}
.plain{list-style:none;margin:0;padding:0}
.plain li{display:grid;grid-template-columns:42px minmax(0,1fr);gap:14px;align-items:start;padding:14px 0;border-bottom:1px solid rgba(54,107,170,.28)}
.plain li:first-child{border-top:1px solid rgba(54,107,170,.28)}
.plain li img{width:34px;height:34px;object-fit:contain;margin-top:2px}
.plain .nm{font-weight:700;font-size:clamp(18px,2.2vw,22px);color:inherit;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.plain .ds{display:block;font-size:17px;margin-top:3px}
.plain .ad{display:block;font-size:15px;opacity:.85;text-decoration:none;color:inherit;margin-top:2px}
.pcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,3vw,28px)}
.pcards figure{margin:0 0 10px;background:var(--surface);aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;padding:10px}
.pcards img{max-width:100%;max-height:100%;object-fit:contain}
.pcards h4{margin:0;font-size:17px;font-weight:700;line-height:1.4}
.pcards a{color:inherit;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
@media(max-width:720px){.pcards{grid-template-columns:1fr 1fr}}
@media(max-width:420px){.pcards{grid-template-columns:1fr}}
.rg{max-width:720px}
.rg .lead2{font-size:clamp(18px,2.2vw,22px);line-height:1.6;margin:0 0 clamp(24px,4vw,36px)}
.rg dl{margin:0;display:grid;gap:0}
.rg .row{padding:18px 0;border-bottom:1px solid rgba(54,107,170,.28)}
.rg .row:first-child{border-top:1px solid rgba(54,107,170,.28)}
.rg dt{font-size:13px;letter-spacing:.22em;text-transform:uppercase;margin-bottom:4px;opacity:.85}
.rg dd{margin:0;font-size:clamp(18px,2.2vw,22px);font-weight:700;line-height:1.5;overflow-wrap:anywhere}
.rg dd small{display:block;font-weight:400;font-size:16px;opacity:.9}
.rg .btn{margin-top:12px}

/* ===== ronda 2 ===== */
.bar .w{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between;gap:clamp(12px,2.4vw,32px);height:auto!important;padding:8px 0!important;max-width:1180px}
.bar .m{order:0;flex:none;grid-column:auto!important;font-size:clamp(30px,3.4vw,40px)!important;line-height:1}
.bar .l{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center;margin:0 0 0 auto!important;gap:clamp(12px,2vw,28px)!important;overflow-x:auto;scrollbar-width:none;min-width:0}
.bar .l::-webkit-scrollbar{display:none}
.bar .l .nl,.bar .l .nr{display:flex!important;flex-wrap:nowrap!important;gap:clamp(12px,2vw,28px)!important;grid-column:auto!important;align-items:center}
.bar .l a{white-space:nowrap;font-size:clamp(11px,1.05vw,13px)!important;letter-spacing:.12em!important}
.bar .rs{padding:9px 16px!important}
@media(max-width:560px){.bar .w{gap:10px}.bar .l,.bar .l .nl,.bar .l .nr{gap:12px!important}.bar .l a{font-size:10.5px!important;letter-spacing:.06em!important}.bar .rs{padding:7px 11px!important}}
.hero2 .fecha{text-transform:none!important;letter-spacing:.22em!important;font-size:clamp(15px,2.4vw,24px)!important}
.btn,.btn.ghost,.btn.alt,.bar .rs,.rg .btn{background:var(--blue)!important;color:var(--bg)!important;border:0!important;border-radius:15px!important;padding:14px 28px!important;font-family:var(--body)!important;font-size:13px!important;font-weight:400!important;letter-spacing:.16em!important;text-transform:uppercase;box-shadow:none!important;display:inline-block}
.bar .rs{padding:9px 16px!important}
.btn:hover,.btn.ghost:hover,.rg .btn:hover{background:var(--blue)!important;opacity:.88}
.mas .btn,.mas .btn.alt,.bk.blue .btn,.conf .rsvp .btn,.dia .btn.inv{background:var(--bg)!important;color:var(--blue)!important}
.mas .btn:hover{background:var(--bg)!important;color:var(--blue)!important;opacity:.88}
.loc{grid-template-rows:auto auto!important;align-content:center!important}
.loc figure{grid-row:1/span 2}
.loc .btn{margin-top:12px!important}
.pas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,2vw,18px);counter-reset:p}
.pas a{display:flex;align-items:center;gap:clamp(14px,2.4vw,24px);border:1.5px solid rgba(248,225,230,.55);border-radius:15px;padding:clamp(16px,2.4vw,24px);color:var(--rose);text-decoration:none;transition:background .2s,color .2s}
.pas a::before{counter-increment:p;content:counter(p,decimal-leading-zero);font-family:var(--display);font-size:clamp(34px,4.4vw,48px);line-height:1;opacity:.9;flex:none;min-width:1.4em}
.pas a span{flex:1;font-size:clamp(16px,1.9vw,19px);line-height:1.35}
.pas a::after{content:"↗";font-size:18px;opacity:.7;flex:none}
.pas a:hover{background:var(--rose);color:var(--blue)}
@media(max-width:640px){.pas{grid-template-columns:1fr}}
.gracias{font-family:var(--display);font-size:clamp(52px,8vw,84px);line-height:1;margin:clamp(26px,4vw,40px) 0 0;color:var(--blue)}
.bar .l{overflow-x:auto!important;overflow-y:hidden!important;flex:0 1 auto!important;max-width:100%}.bar .w{min-width:0}
.bar .l{flex:1 1 0!important;min-width:0!important;justify-content:flex-start!important;margin:0!important}
.bar .l .nl{margin-left:auto!important}
.ptl .w{padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
@media(max-width:560px){.bar.g{padding-left:12px!important;padding-right:12px!important}.bar .m{font-size:30px!important}.bar .l,.bar .l .nl,.bar .l .nr{gap:9px!important}.bar .l a{font-size:9.5px!important;letter-spacing:.03em!important}.bar .rs{padding:6px 9px!important}}
@media(max-width:560px){.bar .m{font-size:27px!important}.bar .l,.bar .l .nl,.bar .l .nr{gap:7px!important}.bar .l a{font-size:9px!important;letter-spacing:0!important}.bar .rs{padding:5px 7px!important}.bar .w{gap:8px!important}}

/* ===== ronda 3 ===== */
.pasl{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(8px,1.4vw,14px) clamp(28px,6vw,80px)}
.pasl li{padding:clamp(12px,1.8vw,18px) 0;border-bottom:1px solid rgba(54,107,170,.22)}
.pasl a{color:var(--blue);text-decoration:none;font-size:clamp(19px,2.3vw,25px);line-height:1.3;letter-spacing:.01em;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;padding-bottom:3px;transition:background-size .3s}
.pasl a::after{content:"\00a0↗";font-size:.7em;opacity:.55}
.pasl a:hover,.pasl a:focus-visible{background-size:100% 1px}
@media(max-width:640px){.pasl{grid-template-columns:1fr}}
.bk.soft{background:var(--surface)}
.fnl{display:flex;flex-direction:column;gap:2px}
.fnl i{font-style:italic}
.hrt{display:inline-block;width:1em;height:1em;vertical-align:-.12em;margin-left:.25em}
.btn.big{padding:18px 34px!important;font-size:14px!important;line-height:1.5;text-align:center;max-width:min(100%,480px)}
.btn.big small{display:block;font-size:11px;letter-spacing:.14em;opacity:.85;margin-top:3px}
.conf{background:var(--bg)!important}
.conf h2,.conf .lead{color:var(--blue)!important}
.conf .rsvp{color:var(--blue)!important}
.conf .rsvp label,.conf .rsvp legend,.conf .rsvp .hintq,.conf .rsvp p,.conf .rsvp h3{color:var(--blue)!important}
.conf .rsvp input[type=text],.conf .rsvp select,.conf .rsvp textarea{color:var(--blue)!important;border-bottom-color:var(--blue)!important}
.conf .rsvp textarea{border-color:var(--blue)!important}
.conf .rsvp ::placeholder{color:var(--blue);opacity:.6}
.conf .rsvp .choice label{border-color:var(--blue)!important;color:var(--blue)!important}
.conf .rsvp .choice input:checked+label{background:var(--blue)!important;color:var(--bg)!important}
.conf .rsvp .btn{background:var(--blue)!important;color:var(--bg)!important}
.conf .rsvp .thanks{border-top-color:rgba(54,107,170,.35)}
.conf .rsvp .thanks pre{background:var(--surface)!important;color:var(--blue)!important}
.conf .rsvp .err{color:#9B2C2C!important}
.fnl{display:block!important}.fnl span{margin:0 .35em}.btn.big{max-width:min(100%,620px)!important}
