/* Carmen e Ignacio · portada con acceso, invitación en desplegables y «Nuestro gran día» */

/* ---------- Portada: polaroids a los lados y la tarjeta de acceso en el centro ---------- */
.portal{width:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,440px) minmax(0,1fr);gap:clamp(16px,3vw,44px);align-items:center;margin:28px 0 4px}
.pila{position:relative;height:440px}
.pila .cromo{position:absolute;width:clamp(120px,13vw,172px);padding:7px 7px 20px}
.pila.izq .cromo:nth-child(1){right:22%;top:0;transform:rotate(-7deg);z-index:1}
.pila.izq .cromo:nth-child(2){right:2%;top:118px;transform:rotate(4deg);z-index:2}
.pila.izq .cromo:nth-child(3){right:30%;top:236px;transform:rotate(-3deg);z-index:3}
.pila.der .cromo:nth-child(1){left:20%;top:10px;transform:rotate(6deg);z-index:1}
.pila.der .cromo:nth-child(2){left:0;top:132px;transform:rotate(-4deg);z-index:2}
.pila.der .cromo:nth-child(3){left:26%;top:244px;transform:rotate(3deg);z-index:3}
.tarjeta{position:relative;background:#FBF8EF;border:1px solid rgba(127,154,120,.75);border-radius:6px;box-shadow:inset 0 0 0 5px #FBF8EF,inset 0 0 0 6px rgba(143,168,138,.55),0 18px 40px -18px rgba(46,68,48,.42),0 2px 4px rgba(46,68,48,.08);padding:30px clamp(20px,3vw,34px) 26px;text-align:left}
.tarjeta .kicker{text-align:center;font-size:17px}
.tarjeta h2{font-family:var(--antigua);font-style:italic;font-weight:400;text-align:center;font-size:clamp(30px,3.2vw,36px);line-height:1.1;margin:2px 0 0}
.tarjeta .filete2{display:block;width:90px;height:4px;margin:12px auto 18px;border-top:1px solid var(--salvia-fuerte);border-bottom:1px solid var(--salvia-fuerte)}
.af{display:grid;gap:4px;margin:0 0 14px}
.af>span{font-size:13.5px;letter-spacing:.04em;color:var(--texto-suave)}
.af input{font:inherit;font-size:16px;color:var(--verde-oscuro);width:100%;min-height:46px;border:1px solid #C9D5C2;border-radius:10px;padding:10px 14px;background:#fff;transition:border-color .2s,box-shadow .2s}
.af input:focus{outline:none;border-color:var(--verde);box-shadow:0 0 0 3px rgba(94,125,92,.14)}
.af small{font-size:13px;color:var(--texto-suave);font-style:italic}
.acceso .btn{width:100%;margin-top:4px;min-height:48px}
.amsg{margin:12px 0 0;font-size:14.5px;line-height:1.45;color:var(--verde-oscuro);text-align:center}
.hola{text-align:center}
.hola .fotos-inv{display:flex;justify-content:center;margin:-2px 0 12px}
.hola .fotos-inv .cromo{width:min(150px,40%);flex:none;margin:0 -10px;padding:6px 6px 18px}
.hola .fotos-inv .cromo:nth-child(odd){transform:rotate(-3deg)}.hola .fotos-inv .cromo:nth-child(even){transform:rotate(3deg);margin-top:12px}
.hola .fotos-inv.una .cromo{width:min(170px,46%);transform:rotate(-2deg)}
@media (max-width:600px){.hola .fotos-inv .cromo{width:min(112px,34%);padding:5px 5px 14px}.hola .fotos-inv.una .cromo{width:min(124px,40%)}}
/* con la foto del invitado en el saludo, las polaroids de los lados no la repiten */
body.con-inv.con-foto .pila{visibility:hidden}
@media (max-width:860px){body.con-inv.con-foto .pila{display:none}}
.hola .lead{font-family:var(--display);font-style:italic;font-size:20px;line-height:1.35;color:var(--verde);margin:8px 0 18px}
.hola .btn{min-height:48px}
.hola .salir{margin:16px 0 0;font-size:14px}
.hola .salir a{color:var(--texto-suave);display:inline-block;padding:10px 6px}
@media (max-width:860px){
  .portal{display:flex;flex-direction:column;align-items:center;margin-top:22px}
  .centro{order:-1;width:100%;max-width:460px}
  .pila{height:auto;display:flex;justify-content:center;margin-top:22px}
  .pila .cromo{position:relative;inset:auto!important;width:96px;margin:0 -8px;padding:5px 5px 14px}
  .pila .cromo:nth-child(2){margin-top:12px}
  .pila.der{display:none}
}
@media (max-width:420px){.tarjeta{padding:24px 16px 20px}.pila .cromo{width:84px}}

/* ---------- Títulos de la parte pública ---------- */
.plansub{font-family:var(--antigua);font-style:italic;font-size:clamp(19px,2vw,23px);color:var(--verde);margin:6px auto 0!important;max-width:none!important}
.filete2{display:block;width:110px;height:4px;margin:14px auto 0;border-top:1px solid var(--salvia-fuerte);border-bottom:1px solid var(--salvia-fuerte)}

/* ---------- Nuestro gran día: línea de tiempo con dibujos grabados ---------- */
.tl{position:relative;max-width:820px;margin:0 auto;padding:0;list-style:none}
.tl::before{content:"";position:absolute;left:112px;top:12px;bottom:12px;width:3px;border-left:1px solid var(--salvia-fuerte);border-right:1px solid var(--salvia-fuerte);opacity:.7}
.tl>li{position:relative;display:grid;grid-template-columns:92px 1fr;gap:42px;padding:0 0 26px}
.tl>li:last-child{padding-bottom:0}
.tl .tl-day{display:block;padding:0 0 16px 154px}
.tl .tl-day span{font-variant:small-caps;text-transform:lowercase;letter-spacing:.2em;font-size:15px;color:var(--verde-oscuro);background:rgba(251,248,239,.92);border-radius:999px;padding:3px 12px}
.tl .when{text-align:right;padding:8px 10px 6px;margin-top:6px;align-self:start;background:rgba(251,248,239,.92);border-radius:10px;box-shadow:0 4px 12px -6px rgba(46,68,48,.3)}
.tl .when b{display:block;font-family:var(--display);font-style:italic;font-weight:500;font-size:36px;line-height:1;color:var(--verde-oscuro)}
.tl .dot{position:absolute;left:106px;top:24px;width:15px;height:15px;border-radius:50%;background:#FBF8EF;border:1px solid var(--verde)}
.tl .dot::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--salvia)}
.tl .card{position:relative;overflow:hidden;isolation:isolate;background:rgba(251,248,239,.95);border:3px double rgba(127,154,120,.6);border-radius:10px;box-shadow:0 10px 26px -16px rgba(46,68,48,.42);padding:0}
.tl .card .sitio{position:absolute;right:-8px;bottom:-8px;width:min(220px,40%);height:auto;aspect-ratio:260/170;opacity:.16;z-index:-1;pointer-events:none}
/* el texto no se monta sobre el dibujo: le deja su hueco a la derecha */
@media (min-width:641px){.tl .stx{max-width:calc(100% - min(200px,36%))}}
.tl details{display:block}
.tl summary{display:block;list-style:none;cursor:pointer;padding:18px 62px 20px 22px;border-radius:8px}
.tl summary::-webkit-details-marker{display:none}
.tl summary.nodet{cursor:default;padding-right:22px}
.tl summary:not(.nodet)::after{content:"▸";position:absolute;right:16px;top:16px;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--salvia-fuerte);background:#FBF8EF;color:var(--verde-oscuro);font-size:17px;line-height:1;transition:transform .25s,background .2s}
.tl summary:hover::after{background:#fff}
.tl details[open]>summary::after{transform:rotate(90deg)}
.tl summary:focus-visible{outline:none}
.tl summary,.tl summary *{text-decoration:none!important}
.tl summary:not(.nodet):focus-visible{box-shadow:inset 0 0 0 2px rgba(63,90,64,.45)}
.tl h3{font-size:28px;font-weight:500}
.tl .stx p{margin:4px 0 0;color:var(--texto)}
.tl .stx .para{font-style:italic;color:var(--verde-oscuro)}
.tl .det{padding:0 22px 18px;color:var(--texto);animation:abrir .3s ease}
.tl .det p{margin:0 0 8px}
@keyframes abrir{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.tl .det{animation:none}}
@media (max-width:640px){
  .tl::before{left:12px}.tl>li{grid-template-columns:1fr;gap:6px;padding-left:36px}
  .tl .tl-day{padding-left:36px}
  .tl .dot{left:5px;top:8px}.tl .when{text-align:left;padding-top:0;display:flex;align-items:baseline;gap:10px}.tl .when b{font-size:30px}
  .tl summary{padding:14px 56px 16px 16px}.tl .det{padding:0 16px 16px}
  .tl .card .sitio{width:46%;opacity:.09}
  .tl h3{font-size:25px}
}

/* ---------- Invitación: desplegables a todo el ancho ---------- */
.inv{padding:44px 0 0}
.inv-wrap{max-width:980px;display:grid;gap:16px}
.inv-tit{text-align:center;margin:0 auto 6px;background:rgba(251,248,239,.92);padding:12px 28px 14px;border-radius:12px;box-shadow:0 8px 22px -12px rgba(46,68,48,.3)}
.inv-tit h2{font-family:var(--antigua);font-style:italic;font-weight:400;font-size:clamp(30px,4vw,42px)}
.inv-cargando{padding:22px;text-align:center;color:var(--verde-oscuro)}
.dz{border-radius:12px;overflow:hidden}
.dz>summary{display:grid;grid-template-columns:44px minmax(0,1fr) 36px;gap:14px;align-items:center;padding:16px clamp(16px,2.6vw,26px);cursor:pointer;list-style:none;min-height:72px}
.dz>summary::-webkit-details-marker{display:none}
.dz-i{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:var(--verde);border:1px solid rgba(127,154,120,.55);box-shadow:inset 0 0 0 3px #FBF8EF,inset 0 0 0 4px rgba(220,229,214,.9);background:#FBF8EF}
.dz-i svg{width:22px;height:22px}
.dz-t{display:grid;gap:1px;min-width:0}
.dz-h{font-family:var(--antigua);font-style:italic;font-size:clamp(24px,2.6vw,29px);line-height:1.15;color:var(--verde-oscuro);font-feature-settings:"liga","dlig"}
.dz-r{font-size:14.5px;color:var(--texto-suave);line-height:1.4}
.dz-a{width:34px;height:34px;border-radius:50%;border:1px solid var(--salvia-fuerte);display:grid;place-items:center;color:var(--verde-oscuro);transition:transform .25s}
.dz-a::before{content:"▸";font-size:16px;line-height:1}
.dz[open]>summary .dz-a{transform:rotate(90deg)}
.dz>summary:focus-visible{outline:none}
.dz>summary:focus-visible .dz-h{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px;text-decoration-color:rgba(63,90,64,.55)}
.dz>summary:hover .dz-a{background:#fff}
.dz-b{padding:4px clamp(16px,3vw,30px) 26px;border-top:3px double rgba(143,168,138,.45);animation:abrir .3s ease}
.dz-b>*:first-child{margin-top:16px}
.dz .lead{font-family:var(--display);font-style:italic;font-size:21px;line-height:1.35;color:var(--verde-oscuro);margin:14px 0 6px}
.dz p{margin:0 0 10px}
.dz .nota{font-size:13.5px;color:var(--texto-suave)}
.dz .kicker{text-align:center}
.plan-in>.plansub{text-align:center;margin:2px 0 22px!important}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 14px}
.chips span{font-size:13.5px;background:var(--sky);border-radius:999px;padding:3px 12px;color:var(--navy)}
.rico p{margin:0 0 10px}
@media (max-width:600px){.dz>summary{grid-template-columns:38px minmax(0,1fr) 32px;gap:10px;padding:14px}.dz-i{width:38px;height:38px}.dz-i svg{width:19px;height:19px}.dz-a{width:32px;height:32px}.dz-r{font-size:13.5px}}

/* Alojamiento */
.estancia{padding:12px 0 6px}
.estancia+.estancia,.recom{border-top:1px dashed #C9D5C2;margin-top:12px;padding-top:14px}
.estancia h3,.recom h3{font-family:var(--antigua);font-style:italic;font-weight:400;font-size:26px}
.frase{color:var(--texto);font-size:15.5px;line-height:1.55;margin:6px 0 10px}
.ficha{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:10px 0;font-size:15px}
.ficha dt{font-variant:small-caps;text-transform:lowercase;letter-spacing:.14em;color:var(--verde)}
.ficha dd{margin:0;color:var(--texto)}
.aviso{background:#F6F0DC;border-left:3px solid #C9B46E;border-radius:6px;padding:9px 12px;font-size:14.5px;color:#5B4F23}
.aloj-conf{background:#E6F0E9;border-radius:8px;padding:10px 12px;font-size:14.5px;color:#2F5A3E;margin-top:12px!important}
.aloj-conf.pend{background:#F3EFE2;color:var(--texto)}
.galeria{display:flex;flex-wrap:wrap;gap:14px 12px;margin:14px 0 4px;padding:4px 2px}
.galeria .pol{display:block;width:150px;background:#fff;padding:6px 6px 18px;border-radius:3px;box-shadow:0 6px 14px rgba(90,74,40,.16),0 1px 2px rgba(90,74,40,.1);transform:rotate(var(--r,0deg));transition:transform .2s}
.galeria .pol:hover{transform:rotate(0) scale(1.03)}
.galeria img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:2px}
@media (max-width:600px){.galeria .pol{width:calc(50% - 6px)}}
.hoteles{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.hoteles li{border-left:2px solid #C9D5C2;padding:4px 0 4px 12px;font-size:15px}
.hoteles li b{font-family:var(--display);font-size:20px;font-weight:600;color:var(--verde-oscuro)}
.hoteles li small{display:block;color:var(--texto-suave)}
.hoteles .hl{display:flex;gap:14px;flex-wrap:wrap;margin-top:4px}
.hoteles .hl a,.ucard .hl a{display:inline-flex;align-items:center;min-height:44px;padding:0 2px}
.info-who{font-weight:500}

/* Información útil, regalo, canciones, fotos, palabras */
.util-in{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:4px 28px}
.bl{padding:8px 0}
.bl h3{display:flex;align-items:center;gap:10px;font-size:23px;margin-bottom:6px}
.bl-i{color:var(--verde)}.bl-i svg{width:22px;height:22px;display:block}
.cuenta{border:1px solid #C9D5C2;border-radius:10px;padding:10px 14px;margin:10px 0 4px;display:grid;gap:4px;background:#fff}
.cuenta p{margin:0;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.cuenta .ck{font-variant:small-caps;text-transform:lowercase;letter-spacing:.16em;color:var(--verde);min-width:56px}
.cuenta .iban{font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:500;letter-spacing:.04em;word-break:break-all}
.mini{font:inherit;font-size:13.5px;border:1px solid var(--salvia);background:#FBFCF8;border-radius:999px;padding:8px 16px;min-height:44px;min-width:44px;cursor:pointer;color:var(--verde-oscuro)}
/* «Ver en el mapa» y demás enlaces sueltos: zona táctil de 44 px */
a.maps{display:inline-flex;align-items:center;min-height:44px;padding:0 2px}
.sp-i svg{width:36px;height:36px;display:block}
.sp-b{background:#1DB954;color:#0E2A17;font-weight:600;font-size:14px;border-radius:999px;padding:9px 16px;white-space:nowrap}
.fi-in{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.fi-btn{cursor:pointer;margin-top:4px;min-height:46px}
.fi-st{font-size:14.5px;color:var(--verde);margin:8px 0 0;min-height:20px}
.fi-grid{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px}
.fi-grid .pol{margin:0;width:110px;background:#fff;padding:5px 5px 14px;border-radius:3px;box-shadow:0 4px 10px rgba(90,74,40,.15)}
.fi-grid img{display:block;width:100%;aspect-ratio:1;object-fit:cover}
.fi-grid video{display:block;width:100%;aspect-ratio:1;object-fit:cover;background:#2B2B2B}
.fi-grid .pol.vid{position:relative}
.fi-grid .fi-play{position:absolute;left:50%;top:50%;width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:50%;background:rgba(255,255,255,.88);box-shadow:0 1px 4px rgba(0,0,0,.25);pointer-events:none}
.fi-grid .fi-play::after{content:"";position:absolute;left:13px;top:10px;border-left:11px solid var(--verde,#3F5A40);border-top:7px solid transparent;border-bottom:7px solid transparent}
.msgnov{width:100%;min-height:160px;font-family:var(--display)!important;font-style:italic;font-size:19px!important;line-height:1.5;color:var(--verde-oscuro);border:1px solid #C9D5C2;border-radius:10px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='30'%3E%3Cpath d='M0 29.5H10' stroke='%23DCE5D6'/%3E%3C/svg%3E") repeat;background-attachment:local;padding:10px 16px;resize:vertical}
.acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}

/* ---------- Formulario de confirmación ---------- */
.inv-formu fieldset{border:none;margin:0;padding:0;min-width:0}
.inv-formu .blk{border-top:1px solid #C9D5C2;padding:22px 0 4px;margin-top:22px}
.inv-formu .blk:first-child{border-top:0;margin-top:4px;padding-top:6px}
.inv-formu legend{font-family:var(--antigua);font-style:italic;font-size:25px;color:var(--verde-oscuro);padding:0;margin:0 0 6px}
.inv-formu .hint{font-size:14.5px;color:var(--texto-suave);margin:0 0 12px}
.who{border-top:1px dashed #C9D5C2;padding:14px 0 6px}
.who:first-child{border-top:0;padding-top:4px}
.people.multi{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:0 32px}
.people.multi .who{border-top:1px dashed #C9D5C2;padding-top:14px}
.q{display:block;margin:14px 0 0}
.q>span,.q>.l{display:block;font-size:14.5px;color:var(--texto-suave);margin-bottom:6px}
.q.req>.l b,.q.req>.l{color:var(--verde-oscuro)}
.q.req>.l b{font-weight:600;font-size:15.5px}
.q .l small{font-size:13px;color:var(--texto-suave);font-weight:400}
.req-t{color:var(--verde-oscuro)!important;font-weight:500}
.seg{display:flex;flex-wrap:wrap;gap:8px}
.seg label{position:relative}
.seg input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.seg span{display:inline-flex;align-items:center;min-height:44px;border:1px solid var(--salvia);background:#fff;color:var(--verde-oscuro);border-radius:999px;padding:8px 18px;font-size:15px;cursor:pointer;transition:background .15s,color .15s;user-select:none}
.seg input:checked+span{background:var(--verde-oscuro);border-color:var(--verde-oscuro);color:#fff}
.seg input:focus-visible+span{box-shadow:0 0 0 3px rgba(94,125,92,.25)}
.seg.col{flex-direction:column;align-items:flex-start}
.seg.col span{border-radius:12px;text-align:left}
.p1w{margin:4px 0 0 0;padding:2px 0 4px 14px;border-left:2px solid var(--salvia-palido)}
.inv-formu input[type=text],.inv-formu input[type=email],.inv-formu input[type=tel],.inv-formu select,.inv-formu textarea{font:inherit;font-size:16px;color:var(--verde-oscuro);width:100%;min-height:46px;border:1px solid #C9D5C2;border-radius:10px;padding:10px 14px;background:#fff;transition:border-color .2s,box-shadow .2s}
.inv-formu input:focus,.inv-formu select:focus,.inv-formu textarea:focus{outline:none;border-color:var(--verde);box-shadow:0 0 0 3px rgba(94,125,92,.14)}
.inv-formu textarea{min-height:90px;resize:vertical}
.inv-formu .q.req input{font-weight:500}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.grid3{display:grid;grid-template-columns:1fr 1.4fr 1.4fr;gap:12px}
.corto{max-width:160px}
.duda{font-size:14px;color:var(--verde);font-style:italic;margin:8px 0 0}
.consent{display:flex;gap:12px;align-items:flex-start;padding:4px 0;font-size:14.5px;line-height:1.45;cursor:pointer}
.consent input{width:22px;height:22px;flex:none;margin-top:1px;accent-color:var(--verde-oscuro)}
.err{color:var(--bad);font-size:14.5px;min-height:22px;text-align:center;margin:14px 0 0}
.send{display:flex;justify-content:center;margin-top:8px}
.send .btn{min-width:260px;min-height:48px}
.sum{margin:14px 0;border-top:1px solid #C9D5C2;border-bottom:1px solid #C9D5C2;padding:10px 0;font-size:15px}
.sum div{padding:3px 0}.sum b{font-weight:500}
.gracias h3{font-family:var(--antigua);font-style:italic;font-weight:400;font-size:32px}
[hidden]{display:none!important}
@media (max-width:700px){.grid2,.grid3{grid-template-columns:1fr}.corto{max-width:none}.people.multi{grid-template-columns:1fr}.send .btn{width:100%}.ficha{grid-template-columns:1fr;gap:0 0}.ficha dd{margin-bottom:6px}}

/* Ceremonia: grabado del retablo como cabecera al abrir */
.tl .det-img{height:250px;margin:0 0 14px;border-radius:10px;background:#FBF8EF url("/assets/iglesia_interior.svg") center center/cover no-repeat;box-shadow:inset 0 0 0 1px rgba(127,154,120,.35)}
.tl .card[data-tipo=ceremonia] .stx h3{padding-right:0}
@media (max-width:640px){.tl .det-img{height:160px}}
.fotosboda{display:grid;grid-template-columns:28px 1fr;gap:10px;background:rgba(220,229,214,.45);border-radius:10px;padding:10px 12px;margin:2px 0 6px}
.fotosboda b{font-weight:500;color:var(--verde-oscuro)}.fotosboda p{margin:2px 0 0!important;font-size:14.5px;color:var(--texto)}
.fotosboda .bl-i svg{width:24px;height:24px}
.llegsal{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px 14px;align-items:start;background:#F1F5EE;border:1px solid rgba(143,168,138,.45);border-radius:10px;padding:12px 14px;margin:12px 0}
.llegsal b{font-weight:500;color:var(--verde-oscuro)}.llegsal p{margin:3px 0 0!important;font-size:15px}
.llegsal .ls-i{color:var(--verde)}.llegsal .ls-i svg{width:26px;height:26px}
.llegsal .ls-k{display:inline-block;min-width:64px;font-variant:small-caps;text-transform:lowercase;letter-spacing:.14em;color:var(--verde);margin-right:6px}
.llegsal .ls-t{color:var(--texto-suave);font-style:italic}
@media (max-width:640px){
  .dz-b{padding:4px 12px 20px}
  .dz .tl>li{padding-left:26px;gap:4px}.dz .tl .tl-day{padding-left:26px}.dz .tl::before{left:7px}.dz .tl .dot{left:0}
  .tl .tl-day span{letter-spacing:.12em;white-space:nowrap;padding:3px 10px}
  .tl summary{padding:14px 50px 16px 14px}.tl summary:not(.nodet)::after{right:10px;top:12px}
  .tl .card .sitio{opacity:.09}
}
.hola .sello{display:block;width:58px;height:58px;margin:0 auto 6px;color:var(--verde)}
.hola .sello svg{width:100%;height:100%}
.hola .solo-tuya{font-family:var(--antigua);font-style:italic;font-size:19px;line-height:1.4;color:var(--verde-oscuro);margin:6px 0 18px}
.acceso .personal{font-family:var(--antigua);font-style:italic;text-align:center;color:var(--verde-oscuro);font-size:16.5px;line-height:1.4;margin:-6px 0 16px}

/* ---------- Tipografía del cuestionario y de las tarjetas: Cormorant Garamond (Jost solo en detalles menores) ---------- */
.inv-formu .q>span,.inv-formu .q>.l,.inv-formu .q.req>.l b,.af>span,.req-t{font-family:var(--display)!important;font-style:italic;font-weight:500!important;font-size:1.25rem!important;line-height:1.3;color:var(--verde-oscuro)!important;letter-spacing:.01em}
.inv-formu .q .l small{font-family:var(--display);font-style:italic;font-size:1rem;color:#6E7F6A}
.inv-formu .hint,.inv-formu .duda,.af small,.acceso .personal+*{font-family:var(--display);font-weight:500;font-size:1.1rem;line-height:1.6;color:#6E7F6A}
.inv-formu .duda{font-style:italic}
.seg span{font-family:var(--display);font-weight:600;font-size:1.1rem;letter-spacing:.03em;font-variant:small-caps;border:1px solid var(--salvia);background:#FFFDF8;color:var(--verde-oscuro);padding:8px 20px}
.seg input:checked+span{background:var(--verde-oscuro);border-color:var(--verde-oscuro);color:#F7F3E8}
.inv-formu input[type=text],.inv-formu input[type=email],.inv-formu input[type=tel],.inv-formu select,.inv-formu textarea,.af input,.dz .msgnov{font-family:var(--display)!important;font-weight:500;font-size:1.15rem!important;color:var(--verde-oscuro)}
.inv-formu ::placeholder,.af input::placeholder,.dz textarea::placeholder{font-family:var(--display);font-style:italic;color:#8D9A88;opacity:1}
.consent{font-family:var(--display);font-weight:500;font-size:1.1rem;line-height:1.5}
.err{font-family:var(--display);font-weight:600;font-size:1.1rem}
/* texto corrido de «Nuestro gran día», alojamiento y bloques informativos */
.tl .stx p,.tl .det,.dz-b p,.dz-b li,.dz-b dd,.dz-b .rico,.frase,.hoteles li,.llegsal p,.aviso,.aloj-conf,.sum,.fotosboda p,.way p,.ucard p,.ucard li,.hola .lead{font-family:var(--display);font-weight:500;font-size:max(17px,1.12rem);line-height:1.55}
.hoteles li small,.ucard li small{font-family:var(--display);font-size:max(16px,1.02rem)}
.dz-r{font-family:var(--display);font-style:italic;font-weight:500;font-size:max(16px,1.05rem)}
.ficha dt,.llegsal .ls-k,.cuenta .ck{font-family:var(--display);font-weight:600}
.aloj-form{border-top:1px dashed #C9D5C2;margin-top:16px;padding-top:14px}
.aloj-form h3{font-family:var(--antigua);font-style:italic;font-weight:400;font-size:26px}
.aloj-form input[type=text]{font-family:var(--display);font-weight:500;font-size:1.15rem;color:var(--verde-oscuro);width:100%;min-height:46px;border:1px solid #C9D5C2;border-radius:10px;padding:10px 14px;background:#fff}
.aloj-form input[type=text]:focus{outline:none;border-color:var(--verde);box-shadow:0 0 0 3px rgba(94,125,92,.14)}
.aloj-form .q>span,.aloj-form .q>.l{display:block;margin-bottom:6px}
.aloj-form .q>.l b,.aloj-form .q.req>.l b,.aloj-form .q>.l{font-family:var(--display);font-style:italic;font-weight:500;font-size:1.25rem;color:var(--verde-oscuro)}
.aloj-form .hint{font-family:var(--display);font-weight:500;font-size:1.1rem;line-height:1.6;color:#6E7F6A;margin:12px 0 4px}
.aloj-form .dni-ok{margin:0!important;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.aloj-form .dni-m{font-family:ui-monospace,Menlo,Consolas,monospace;background:#E6F0E9;color:#2F5A3E;border-radius:6px;padding:1px 8px}
.aloj-form .consent{margin-top:14px}
.aloj-form .err{text-align:left}
.aloj-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 24px;margin-top:12px}
.aloj-col{background:rgba(255,255,255,.55);border:1px solid rgba(143,168,138,.45);border-radius:10px;padding:14px 16px 12px}
.aloj-col h4{font-family:var(--antigua);font-style:italic;font-weight:400;font-size:23px;color:var(--verde-oscuro);margin:0}
.aloj-col .col-nota{font-family:var(--display);font-style:italic;font-weight:500;color:var(--verde);margin:2px 0 8px!important}
.aloj-col .hoteles{grid-template-columns:1fr}
.aloj-col .pueblo{font-variant:small-caps;text-transform:lowercase;letter-spacing:.12em;color:var(--verde)!important}
@media (max-width:900px){.aloj-cols{grid-template-columns:1fr}}

/* Protección de datos junto a «Enviar» */
.consent-blk{display:grid;gap:10px}
.consent a{color:var(--verde-oscuro);text-decoration:underline;text-decoration-thickness:1px}
.consent-blk .nota{font-family:var(--display);font-style:italic;font-size:1.02rem;color:#6E7F6A;margin:2px 0 0}
.inv-formu .msgnov{min-height:130px}
/* Fase 1: hora de fin de un acto (solo si se pone) */
.tl .when small.hfin{display:block;margin-top:4px;font-size:11.5px;line-height:1.25;letter-spacing:.02em;color:var(--verde);font-style:normal;white-space:normal;overflow-wrap:normal}
@media (max-width:700px){.tl .when small.hfin{display:inline;margin:0}}
/* Fase 1: transporte (ida con su hora y vuelta eligiendo una hora) y facilidades propias */
.trdet{display:grid;gap:12px;margin-top:10px;animation:trIn .25s ease-out}
@keyframes trIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.trtramo{border:1px solid rgba(143,168,138,.45);border-radius:12px;padding:10px 12px;background:rgba(255,255,255,.55)}
.trt{margin:0 0 6px;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}
.trt b{font-weight:600;color:var(--verde-oscuro)}.trh{font-size:.92em;color:var(--verde)}
.facil .faci{padding:8px 0;border-bottom:1px solid rgba(143,168,138,.3)}.facil .faci:last-child{border-bottom:none}
.facil .faci b{display:block;color:var(--verde-oscuro);margin-bottom:2px}
@media (prefers-reduced-motion:reduce){.trdet{animation:none}}
.vistaprev{position:sticky;top:0;z-index:200;background:var(--verde-oscuro);color:#F7F3E8;text-align:center;font-size:14px;padding:9px 16px}
/* Línea de tiempo: cada momento en su propia capa (sin solapes al desplegar) y los dibujos recortados dentro de la tarjeta */
.tl>li{z-index:0;isolation:isolate}
.tl .card{contain:paint}
.tl .card .sitio{max-height:100%}

/* ---------- Fase 1b · protección de datos al entrar ---------- */
.acc-priv{margin:4px 0 16px;padding:12px 14px 10px;border-radius:10px;background:rgba(220,229,214,.38);border:1px solid rgba(143,168,138,.45)}
.acc-ok{display:flex;gap:12px;align-items:flex-start;cursor:pointer;min-height:44px;font-family:var(--display);font-weight:500;font-size:1.08rem;line-height:1.4;color:var(--verde-oscuro)}
.acc-ok input{width:24px;height:24px;flex:none;margin:1px 0 0;accent-color:var(--verde-oscuro);cursor:pointer}
.acc-ok a{color:var(--verde-oscuro);text-decoration-color:rgba(63,90,64,.45)}
.acc-quien{margin:6px 0 0 36px;font-size:12.5px;line-height:1.45;color:var(--texto-suave);font-style:italic}
.acceso .btn[disabled]{opacity:.48;cursor:not-allowed;box-shadow:none;filter:saturate(.6)}
.acceso.modo-permiso .personal{margin-bottom:18px}
.acceso .acc-salir{text-align:center;margin:12px 0 0;font-size:14px}.acceso .acc-salir a{color:var(--texto-suave);display:inline-block;padding:10px 6px}
.privnota{margin:14px 2px 0;font-size:13px;line-height:1.5;color:var(--texto-suave);font-style:italic}
.privnota a{color:var(--verde-oscuro)}
.consent-blk .consent{padding:12px 14px;border-radius:10px;background:rgba(243,227,166,.28);border:1px solid rgba(201,151,58,.35)}
/* panel con la información de /privacidad/ */
.privpanel{position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:16px}
.privpanel[hidden]{display:none}
.pp-fondo{position:absolute;inset:0;background:rgba(36,52,37,.46);opacity:0;transition:opacity .18s}
.pp-hoja{position:relative;width:min(760px,100%);max-height:min(88vh,920px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#FBF8EF;border-radius:12px;border:1px solid rgba(127,154,120,.7);box-shadow:inset 0 0 0 5px #FBF8EF,inset 0 0 0 6px rgba(143,168,138,.5),0 30px 60px -24px rgba(30,45,31,.55);opacity:0;transform:translateY(10px) scale(.985);transition:opacity .18s,transform .18s}
.privpanel.on .pp-fondo{opacity:1}.privpanel.on .pp-hoja{opacity:1;transform:none}
.pp-cab{position:relative;text-align:center;padding:22px 60px 12px;border-bottom:1px solid rgba(143,168,138,.4)}
.pp-cab .kicker{font-size:16px}
.pp-cab h2{font-family:var(--antigua);font-style:italic;font-weight:400;font-size:clamp(28px,4vw,38px);margin:2px 0 0}
.pp-x{position:absolute;right:12px;top:12px;width:44px;height:44px;border-radius:50%;border:1px solid var(--salvia-fuerte);background:#FBF8EF;color:var(--verde-oscuro);font-size:24px;line-height:1;cursor:pointer}
.pp-x:hover,.pp-x:focus-visible{background:var(--salvia-palido);outline:none}
.pp-txt{overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:18px clamp(18px,4vw,36px) 10px;font-family:var(--display);font-weight:500;font-size:max(17px,1.08rem);line-height:1.6;color:var(--texto)}
.pp-txt:focus-visible{outline:2px solid rgba(94,125,92,.35);outline-offset:-4px}
.pp-txt h2{font-family:var(--antigua);font-style:italic;font-weight:400;font-size:clamp(23px,3vw,27px);margin:22px 0 6px;color:var(--verde-oscuro)}
.pp-txt h2:first-child{margin-top:4px}
.pp-txt p{margin:0 0 10px}.pp-txt ul{margin:0 0 12px;padding-left:22px}.pp-txt li{margin:0 0 5px}.pp-txt li::marker{color:var(--salvia-fuerte)}
.pp-txt b{font-weight:600;color:var(--verde-oscuro)}.pp-txt a{color:var(--verde-oscuro)}
.pp-txt .act{font-style:italic;color:var(--texto-suave)}
.pp-pie{padding:12px 18px 16px;text-align:center;border-top:1px solid rgba(143,168,138,.4)}
.pp-pie .btn{min-height:46px;padding:0 26px}
html.pp-abierto{overflow:hidden}
@media (max-width:600px){.privpanel{padding:0;align-items:end}.pp-hoja{max-height:92vh;border-radius:14px 14px 0 0}.pp-cab{padding:18px 56px 10px}.acc-quien{margin-left:0}}
@media (prefers-reduced-motion:reduce){.pp-fondo,.pp-hoja{transition:none}}

/* ---------- Fase 1b · encabezado de la invitación: tarjeta en su sobre con sello de lacre ---------- */
.inv-tit.sobre{position:relative;max-width:660px;margin:40px auto 22px;padding:0;background:none;box-shadow:none;border-radius:0;text-align:center;perspective:1400px}
.sobre-papel{position:relative;z-index:1;background:#FBF8EF linear-gradient(180deg,rgba(255,255,255,.55),rgba(239,232,216,.35));border:1px solid rgba(127,154,120,.75);border-radius:6px;box-shadow:inset 0 0 0 6px #FBF8EF,inset 0 0 0 7px rgba(143,168,138,.55),0 22px 44px -22px rgba(46,68,48,.48),0 2px 5px rgba(46,68,48,.08);padding:50px clamp(22px,6vw,64px) 30px}
.sobre-papel>*{transition:opacity .7s ease .6s,transform .9s cubic-bezier(.2,.7,.2,1) .5s}
.sobre-para{margin:0;font-family:var(--antigua);font-style:italic;font-size:clamp(18px,2vw,21px);color:var(--verde);letter-spacing:.01em}
.inv-tit.sobre h2{margin:6px auto 0;max-width:15em;font-family:var(--antigua);font-style:italic;font-weight:400;font-size:clamp(29px,4.4vw,44px);line-height:1.12;color:var(--verde-oscuro);text-wrap:balance}
.sobre .filete2{display:block;width:96px;height:4px;margin:16px auto 16px;border-top:1px solid var(--salvia-fuerte);border-bottom:1px solid var(--salvia-fuerte)}
.sobre-texto{max-width:31em;margin:0 auto;font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(19px,2.1vw,22px);line-height:1.5;color:var(--texto);text-wrap:pretty}
.sobre-texto p{margin:0 0 10px}.sobre-texto p:last-child{margin-bottom:0}
.sobre-firma{margin:18px 0 0;white-space:pre-line;font-family:var(--antigua);font-style:italic;font-size:clamp(18px,1.9vw,20px);line-height:1.4;color:var(--verde-oscuro)}
.sobre .lacre{position:absolute;z-index:3;left:50%;top:0;width:70px;height:70px;transform:translate(-50%,-48%) rotate(-8deg);filter:drop-shadow(0 4px 5px rgba(30,45,31,.32));transition:top .95s cubic-bezier(.3,.7,.2,1),transform .95s cubic-bezier(.3,.7,.2,1)}
.sobre .lacre svg{display:block;width:100%;height:100%}
/* la solapa del sobre: solo se ve mientras se abre la primera vez */
.sobre-solapa{position:absolute;z-index:2;left:0;right:0;top:0;height:52%;display:none;transform-origin:50% 0;background:linear-gradient(180deg,#F3EDDC,#EAE2CC);clip-path:polygon(0 0,100% 0,50% 100%);border-radius:6px 6px 0 0;transition:transform .9s cubic-bezier(.45,.05,.3,1),opacity .35s ease .6s}
.sobre-solapa svg{position:absolute;inset:0;width:100%;height:100%}
.sobre.cerrado .sobre-solapa{display:block}
.sobre.cerrado .sobre-papel>*{opacity:0;transform:translateY(12px)}
.sobre.cerrado .lacre{top:52%;transform:translate(-50%,-50%) rotate(-8deg) scale(1.08)}
.sobre.cerrado.abriendo .sobre-solapa{transform:rotateX(-178deg);opacity:0}
.sobre.cerrado.abriendo .sobre-papel>*{opacity:1;transform:none}
.sobre.cerrado.abriendo .lacre{top:0;transform:translate(-50%,-48%) rotate(-8deg)}
@media (max-width:600px){.inv-tit.sobre{margin:34px 0 18px}.sobre-papel{padding:44px 20px 24px}.sobre .lacre{width:60px;height:60px}}
@media (prefers-reduced-motion:reduce){.sobre-papel>*,.sobre .lacre,.sobre-solapa{transition:none}}

/* ---------- Fase 1b · «Lo que hemos preparado para ti»: facilidades con icono, título y pregunta ---------- */
.facil{display:grid;gap:0}
.facil .faci{display:grid;grid-template-columns:44px minmax(0,1fr);gap:14px;align-items:start;padding:14px 0;border-bottom:1px solid rgba(143,168,138,.3)}
.facil .faci:first-child{padding-top:4px}
.faci-i{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid rgba(127,154,120,.55);background:#FBF8EF;color:var(--verde)}
.faci-i svg{width:22px;height:22px}
.faci-i.sm{width:34px;height:34px;flex:none}.faci-i.sm svg{width:18px;height:18px}
.faci-t h3{font-family:var(--antigua);font-style:italic;font-weight:400;font-size:clamp(21px,2.2vw,24px);line-height:1.2;margin:2px 0 4px;color:var(--verde-oscuro)}
.facil .faci-t b{display:inline;margin:0}
.faci-t p{margin:0 0 6px;font-family:var(--display);font-weight:500;font-size:1.08rem;line-height:1.55}
.faci-q{font-style:italic;color:var(--texto-suave)!important;font-size:1rem!important}
.faci-q a{display:inline-flex;align-items:center;min-height:44px;color:var(--verde-oscuro)}
.fac-blk .fq{display:grid;gap:8px}
.fac-blk .fql{display:flex;align-items:center;gap:10px}

/* ---------- Acceso: primero un sobre cerrado con el sello; al abrirlo aparecen los datos ---------- */
#acceso.cerrado>:not(.sobre-acc){display:none!important}
#acceso:not(.cerrado) .sobre-acc{display:none}
.sobre-acc{text-align:center}
.sobre-acc h2{margin-bottom:22px}
.sa-sobre{position:relative;display:block;width:min(100%,330px);aspect-ratio:3/2;margin:0 auto 26px;padding:0;border:0;background:none;cursor:pointer;perspective:900px;-webkit-tap-highlight-color:transparent}
.sa-cuerpo{position:absolute;inset:0;border-radius:6px;background:#F6F0E0 linear-gradient(180deg,rgba(255,255,255,.5),rgba(234,226,204,.55));border:1px solid rgba(127,154,120,.7);box-shadow:inset 0 0 0 5px #F6F0E0,inset 0 0 0 6px rgba(143,168,138,.45),0 18px 34px -18px rgba(46,68,48,.5)}
.sa-cuerpo::before,.sa-cuerpo::after{content:"";position:absolute;bottom:0;width:50%;height:62%;background:linear-gradient(180deg,transparent,rgba(127,154,120,.08));}
.sa-cuerpo::before{left:0;clip-path:polygon(0 100%,0 0,100% 100%);border-bottom-left-radius:6px}
.sa-cuerpo::after{right:0;clip-path:polygon(100% 100%,100% 0,0 100%);border-bottom-right-radius:6px}
.sa-solapa{position:absolute;left:0;right:0;top:0;height:58%;transform-origin:50% 0;background:linear-gradient(180deg,#F1EAD6,#E7DEC6);clip-path:polygon(0 0,100% 0,50% 100%);border-radius:6px 6px 0 0;transition:transform .8s cubic-bezier(.45,.05,.3,1),opacity .3s ease .55s;filter:drop-shadow(0 1px 0 rgba(127,154,120,.5))}
.sa-sobre .lacre{position:absolute;left:50%;top:58%;width:74px;height:74px;transform:translate(-50%,-50%) rotate(-8deg);filter:drop-shadow(0 4px 5px rgba(30,45,31,.32));transition:transform .5s ease,opacity .45s ease}
.sa-sobre .lacre svg{display:block;width:100%;height:100%}
.sa-sobre:hover .lacre{transform:translate(-50%,-50%) rotate(-4deg) scale(1.05)}
.sa-sobre:focus-visible{outline:2px solid var(--verde);outline-offset:6px;border-radius:8px}
#acceso.abriendo .sa-solapa{transform:rotateX(-178deg);opacity:0}
#acceso.abriendo .sa-sobre .lacre{transform:translate(-50%,-90%) rotate(-8deg) scale(.9);opacity:0}
#acceso.abriendo .sobre-acc{transition:opacity .45s ease .55s;opacity:0}
#acceso:not(.cerrado)>*{animation:accIn .6s ease both}
@keyframes accIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.sa-solapa,.sa-sobre .lacre,#acceso.abriendo .sobre-acc{transition:none}#acceso:not(.cerrado)>*{animation:none}}
.sobre-acc .kicker,.sobre-acc h2{position:relative;z-index:2}
.sa-sobre{z-index:1}

/* Hasta que no se abre el sobre no se ve nada más (ni la cuenta atrás ni el plan del día); con la sesión ya abierta, todo */
body.sellada:not(:has(#acceso[hidden])) :is(#faltan,#cd,.hero .acts,#plan,#llegar,#util,#basica){display:none!important}

/* ---------- Final de la página: sin tarjeta ni anillos; nombres, fecha y una línea discreta ---------- */
footer{padding:44px 16px 56px!important}
.pie-fin{max-width:520px;margin:0 auto;padding:26px 24px 22px;text-align:center;background:rgba(251,248,239,.9);border-radius:6px;box-shadow:0 14px 34px -24px rgba(46,68,48,.5)}
.pf-filete{display:block;width:120px;height:4px;margin:0 auto;border-top:1px solid var(--salvia-fuerte,#7F9A78);border-bottom:1px solid var(--salvia-fuerte,#7F9A78)}
.pf-n{margin:16px 0 4px;font-family:var(--antigua,'IM Fell English'),Georgia,serif;font-style:italic;font-size:clamp(30px,4vw,40px);line-height:1.1;color:var(--verde-oscuro,#3F5A40)}
.pf-f{margin:0 0 16px;font-family:var(--antigua,'IM Fell English'),Georgia,serif;font-size:13px;letter-spacing:.24em;text-transform:uppercase;color:var(--verde,#5E7D5C)}
.pie-legal{display:flex;justify-content:center;align-items:center;gap:10px;margin:18px 0 0!important;font-size:13px;color:rgba(47,71,48,.7)}
.pie-legal a{display:inline-flex!important;align-items:center;min-height:44px;padding:0 4px!important;background:none!important;border-radius:0!important;font-family:Jost,system-ui,sans-serif!important;font-size:12.5px!important;letter-spacing:.06em;color:var(--verde-oscuro,#3F5A40)!important;text-decoration:none}
.pie-legal a:hover{text-decoration:underline!important;text-underline-offset:3px}
.pie-legal .enlacia b{font-family:'IM Fell English',Georgia,serif;font-style:italic;font-weight:400;font-size:15px;letter-spacing:.01em;margin-left:4px}
/* Facilidades con pregunta: la respuesta, justo debajo de cada una */
.facil .faci-resp{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:12px 0 2px;padding:12px 14px;border:1px solid rgba(127,154,120,.35);border-radius:12px;background:rgba(251,248,239,.7)}
.facil .faci-resp .fql{font-family:var(--antigua);font-style:italic;font-size:17px;color:var(--verde-oscuro);flex:1 1 220px}
.facil .faci-resp .seg{margin:0}
.faci-est{flex-basis:100%;font-size:12.5px;color:var(--verde);opacity:.8;min-height:0}
.faci-est:empty{display:none}.faci-est.ok{opacity:1}.faci-est.mal{color:#8a3b2e;opacity:1}
.facil .faci-resp select{font-family:var(--display);font-weight:500;font-size:1.05rem;color:var(--verde-oscuro);min-height:44px;min-width:130px;border:1px solid #C9D5C2;border-radius:10px;padding:8px 12px;background:#fff}
.facil .faci-resp select:focus{outline:none;border-color:var(--verde);box-shadow:0 0 0 3px rgba(94,125,92,.14)}

/* Pie: enlaces legales en una línea y, debajo, Instagram y «Hecho con Enlacia» */
.pie-legal{flex-wrap:wrap;gap:4px 12px!important;color:rgba(47,71,48,.5)!important}
.pie-marca{display:flex;justify-content:center;align-items:center;gap:14px;margin:2px 0 0}
.pie-marca a{display:inline-flex;align-items:center;min-height:40px;font-family:Jost,system-ui,sans-serif;font-size:12.5px;letter-spacing:.06em;color:var(--verde-oscuro,#3F5A40);text-decoration:none}
.pie-marca a:hover{text-decoration:underline;text-underline-offset:3px}
.pie-marca .enlacia b{font-family:'IM Fell English',Georgia,serif;font-style:italic;font-weight:400;font-size:15px;margin-left:4px}

/* ---------- Acceso: entrada de teatro antigua en tinta roja (se arranca el talón al validar) ---------- */
.entrada-acc{--rojo:#8E2B25;--rojo-o:#6E1F1B}
.entrada-acc .kicker{color:var(--rojo)!important}
.ent{position:relative;display:flex;width:min(100%,380px);height:206px;margin:16px auto 28px;padding:0;border:0;background:none;cursor:pointer;text-align:left;filter:drop-shadow(0 18px 18px rgba(40,30,20,.3)) drop-shadow(0 2px 2px rgba(40,30,20,.2));-webkit-tap-highlight-color:transparent}
.ent-c,.ent-t{position:relative;background:repeating-linear-gradient(45deg,rgba(142,43,37,.05) 0 1px,transparent 1px 5px),repeating-linear-gradient(-45deg,rgba(142,43,37,.05) 0 1px,transparent 1px 5px),linear-gradient(180deg,#F6EEDC,#EFE3C8)}
.ent-c{flex:1;display:flex;flex-direction:column;padding:20px 20px 14px;-webkit-mask:radial-gradient(circle 12px at 0 50%,transparent 11.5px,#000 12px);mask:radial-gradient(circle 12px at 0 50%,transparent 11.5px,#000 12px)}
.ent-c::before{content:"";position:absolute;inset:8px;border:1.5px solid var(--rojo);border-radius:3px;box-shadow:inset 0 0 0 3px #F3E9D3,inset 0 0 0 4px rgba(142,43,37,.55);pointer-events:none}
.ent-t{width:84px;border-left:2px dashed rgba(142,43,37,.55);display:grid;place-items:center;transform-origin:0 100%;transition:transform .9s cubic-bezier(.5,.1,.4,1),opacity .6s ease .4s;-webkit-mask:radial-gradient(circle 12px at 100% 50%,transparent 11.5px,#000 12px);mask:radial-gradient(circle 12px at 100% 50%,transparent 11.5px,#000 12px)}
.ent-t::before{content:"";position:absolute;inset:8px 8px 8px 6px;border:1.5px solid var(--rojo);border-radius:3px}
.ent-t b{writing-mode:vertical-rl;transform:rotate(180deg);font-family:var(--antigua);font-variant:small-caps;font-weight:400;font-size:17px;letter-spacing:.24em;color:var(--rojo)}
.ent-t small{position:absolute;bottom:15px;font-family:var(--antigua);font-variant:small-caps;font-size:11px;letter-spacing:.12em;color:var(--rojo)}
.ent-tit{position:relative;display:block;text-align:center;font-family:var(--antigua);font-variant:small-caps;font-size:13px;letter-spacing:.26em;color:var(--rojo)}
.ent-h{position:relative;display:block;text-align:center;font-family:var(--antigua);font-style:italic;font-size:31px;line-height:1.05;color:var(--rojo-o);margin-top:2px}
.ent-orla{position:relative;display:block;height:5px;margin:8px 20px 10px;border-top:1px solid var(--rojo);border-bottom:1px solid var(--rojo)}
.ent-dl{position:relative;display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0 10px;align-items:baseline}
.ent-dl i{font-style:normal;font-family:var(--antigua);font-variant:small-caps;font-size:12.5px;letter-spacing:.14em;color:var(--rojo)}
.ent-dl em{font-family:var(--antigua);font-style:italic;font-size:16px;line-height:1.2;color:#3A2A22}
.ent:focus-visible{outline:2px solid var(--rojo);outline-offset:6px;border-radius:6px}
.ent:hover .ent-t{transform:rotate(1.5deg)}
.ent-btn{background:var(--rojo)!important;border-color:var(--rojo)!important}
.ent-btn:hover{background:var(--rojo-o)!important}
#acceso.abriendo .ent-t{transform:translate(22px,46px) rotate(26deg);opacity:0}
#acceso.abriendo .sobre-acc{transition:opacity .45s ease .55s;opacity:0}
@media (max-width:420px){.ent{height:190px}.ent-h{font-size:26px}.ent-dl em{font-size:14.5px}.ent-t{width:70px}}
@media (prefers-reduced-motion:reduce){.ent-t{transition:none}}
.ent-btn{box-shadow:inset 0 0 0 3px var(--rojo),inset 0 0 0 4px rgba(246,238,220,.55),0 8px 18px -10px rgba(110,31,27,.6)!important}

/* ---------- Invitación básica (?general): confirmar sin palabra secreta ---------- */
#acceso .acc-basica{display:none;text-align:center}
#acceso.modo-basica-acc:not(.cerrado) .acc-basica{display:block}
#acceso.modo-basica-acc:not(.cerrado)>:not(.acc-basica):not(.kicker):not(h2):not(.filete2){display:none!important}
#acceso .acc-basica .btn{display:inline-flex;justify-content:center;width:100%;margin-top:6px}
#acceso .acc-tengo{margin:14px 0 0}#acceso .acc-tengo a{font-family:Jost,system-ui,sans-serif;font-size:14px;color:var(--verde-oscuro)}
body:has(#acceso[hidden]) #basica{display:none}
.bas-card{max-width:720px;margin:0 auto;background:rgba(251,248,239,.95);border-radius:14px;padding:clamp(20px,4vw,36px);box-shadow:0 18px 40px -28px rgba(46,68,48,.55)}
.bas-f{display:flex;flex-direction:column;gap:18px}
.bas-fila{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 16px}
.bas-c{display:flex;flex-direction:column;gap:6px}
.bas-c>span{font-family:var(--antigua);font-style:italic;font-size:19px;color:var(--verde-oscuro)}
.bas-c small{font-family:var(--display);font-size:15px;color:var(--texto-suave)}
.bas-f input[type=text],.bas-f input[type=email],.bas-f input[type=tel],.bas-f select,.bas-f textarea{width:100%;box-sizing:border-box;min-height:46px;padding:10px 14px;border:1px solid #CFD8C9;border-radius:12px;background:#fff;font:400 16px/1.4 Jost,system-ui,sans-serif;color:var(--texto)}
.bas-f textarea{resize:vertical}
.bas-blq{display:flex;flex-direction:column;gap:10px;padding-top:16px;border-top:1px solid rgba(143,168,138,.35)}
.bas-blq h3{margin:0;font-family:var(--antigua);font-style:italic;font-weight:400;font-size:clamp(22px,2.6vw,26px);color:var(--verde-oscuro)}
.bas-i{margin:0;font-family:var(--display);font-size:17px;line-height:1.45;color:var(--texto)}
.bas-op{display:flex;flex-wrap:wrap;gap:8px}
.bas-op label{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border:1px solid #CFD8C9;border-radius:999px;background:#fff;cursor:pointer;font:400 15px Jost,system-ui,sans-serif}
.bas-op label:has(input:checked){border-color:var(--verde-oscuro);background:#EEF3EA}
.bas-op input{accent-color:var(--verde-oscuro)}
.bas-chk{display:flex;gap:10px;align-items:flex-start;font-family:var(--display);font-size:16px;line-height:1.4}
.bas-chk input{width:20px;height:20px;margin-top:2px;accent-color:var(--verde-oscuro);flex:none}
.bas-msg{margin:0;color:#A04A3A;font-family:var(--display);font-size:16px}
.bas-ok{text-align:center;padding:10px 0}.bas-ok h3{font-family:var(--antigua);font-style:italic;font-weight:400;font-size:30px;margin:0 0 6px;color:var(--verde-oscuro)}.bas-ok p{font-family:var(--display);font-size:18px;margin:0}
#acceso .acc-basica .btn{font-family:Jost,system-ui,sans-serif!important;font-size:16px!important;font-weight:500!important;line-height:1.2!important;color:var(--crema,#F7F3E8)!important;opacity:1!important;min-height:50px;align-items:center;text-decoration:none}
/* Canción y unas palabras: su propio desplegable, al final */
.pal-form .blk:first-child{margin-top:0}
.pal-send{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;justify-content:center;margin-top:14px}
.pal-send .faci-est{flex-basis:auto;text-align:center}

/* ---------- Tarjeta personal: sobre de algodón con filete dorado, forro de toile y lacre verde y oro ---------- */
.sobre-papel{box-shadow:inset 0 0 0 6px #FBF8EF,inset 0 0 0 7px rgba(201,162,79,.6),0 26px 44px -24px rgba(46,68,48,.5),0 2px 6px rgba(46,68,48,.1)!important}
.sobre .lacre{width:84px!important;height:84px!important;filter:drop-shadow(0 6px 6px rgba(25,35,22,.4)) drop-shadow(0 1px 1px rgba(25,35,22,.45))!important}
.sobre-solapa{background:linear-gradient(180deg,#F6F0E3,#EADFC5)!important}
.sobre.cerrado.abriendo .sobre-solapa{background:#E9EFE4 url("/assets/toile-verde.webp") center/180px auto!important;transition:transform .9s cubic-bezier(.45,.05,.3,1),opacity .35s ease .6s,background 0s linear .35s}
@media (max-width:600px){.sobre .lacre{width:70px!important;height:70px!important}}

/* ---------- La entrada según el diseño elegido: sobre antiguo (Toile verde loza) o entrada de teatro (diseño 2) ---------- */
#sobreAcc .ent,#sobreAcc .e-ticket,#sobreAcc .mc,#sobreAcc .e-mesa,#sobreAcc .ab,#sobreAcc .e-abanico{display:none}
body[data-entrada="ticket"] #sobreAcc .ent{display:flex}body[data-entrada="ticket"] #sobreAcc .e-ticket,body[data-entrada="mesa"] #sobreAcc .e-mesa{display:inline}
body[data-entrada="mesa"] #sobreAcc .mc{display:block}
body[data-entrada="abanico"] #sobreAcc .ab{display:block}body[data-entrada="abanico"] #sobreAcc .e-abanico{display:inline}
body:is([data-entrada="ticket"],[data-entrada="mesa"],[data-entrada="abanico"]) #sobreAcc .sv,body:is([data-entrada="ticket"],[data-entrada="mesa"],[data-entrada="abanico"]) #sobreAcc .e-sobre{display:none}
body:not([data-entrada="ticket"]) #sobreAcc{--rojo:var(--verde-oscuro);--rojo-o:#2F4730}
body:not([data-entrada="ticket"]) #sobreAcc .kicker{color:var(--verde)!important}
/* Papel de algodón antiguo: fibra, manchas suaves de los años y el borde algo más tostado */
.sv{--papel:#F2EAD6;margin-top:30px!important;--fibra:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 .42 0 0 0 0 .36 0 0 0 0 .24 0 0 0 .13 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)'/%3E%3C/svg%3E");
  --manchas:radial-gradient(ellipse 60% 45% at 18% 82%,rgba(176,146,92,.13),transparent 70%),radial-gradient(ellipse 40% 35% at 86% 22%,rgba(176,146,92,.10),transparent 70%),radial-gradient(ellipse 120% 90% at 50% 50%,transparent 58%,rgba(150,120,70,.20) 100%);
  position:relative;display:block;width:min(100%,370px);aspect-ratio:1.5;margin:18px auto 30px;padding:0;border:0;background:none;cursor:pointer;perspective:1100px;transform:rotate(-1.4deg);-webkit-tap-highlight-color:transparent;z-index:1}
.sv>span{position:absolute;display:block}
.sv:focus-visible{outline:2px solid var(--verde);outline-offset:8px;border-radius:6px}
/* el interior, forrado con el toile verde */
.sv-dentro{inset:0;border-radius:3px;background:#C9D8C2 var(--toile) center/150px auto;background-blend-mode:multiply;box-shadow:inset 0 0 0 1px rgba(63,90,64,.25),inset 0 14px 18px -10px rgba(40,56,40,.35)}
/* la tarjeta que asoma al abrir */
.sv-carta{left:11%;right:11%;top:13%;bottom:7%;border-radius:2px;background:var(--fibra),linear-gradient(180deg,#FCF9F1,#F5EFE1);box-shadow:0 1px 0 rgba(255,255,255,.8) inset,0 0 0 1px rgba(127,154,120,.35),0 6px 14px -8px rgba(40,56,40,.45);display:flex!important;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:9%;transition:transform .9s cubic-bezier(.3,.1,.25,1) .55s}
.sv-carta::before{content:"";position:absolute;inset:6px;border:1px solid rgba(201,162,79,.55);outline:1px solid rgba(201,162,79,.25);outline-offset:-4px;pointer-events:none}
.sv-carta em{font-family:'IM Fell English','Cormorant Garamond',Georgia,serif;font-style:italic;font-size:clamp(22px,6vw,27px);color:var(--verde-oscuro);line-height:1.1}
.sv-carta small{margin-top:6px;font-family:'Cormorant Garamond',Georgia,serif;font-size:13px;letter-spacing:.22em;color:#8C7A4E}
/* el bolsillo delantero, con sus pliegues laterales */
.sv-bolsa{inset:0;border-radius:3px;clip-path:polygon(0 0,50% 54%,100% 0,100% 100%,0 100%);background:var(--manchas),var(--fibra),linear-gradient(180deg,#F4EDDB,var(--papel));box-shadow:inset 0 0 0 1px rgba(140,112,64,.28),inset 0 0 0 6px var(--papel),inset 0 0 0 7px rgba(201,162,79,.45)}
.sv-bolsa::before,.sv-bolsa::after{content:"";position:absolute;bottom:0;height:100%;width:50%}
.sv-bolsa::before{left:0;background:linear-gradient(to top right,rgba(120,96,56,.10),transparent 60%);clip-path:polygon(0 0,100% 54%,100% 100%,0 100%)}
.sv-bolsa::after{right:0;background:linear-gradient(to top left,rgba(120,96,56,.13),transparent 60%);clip-path:polygon(100% 0,0 54%,0 100%,100% 100%)}
/* la solapa: por fuera el papel, por dentro el toile */
.sv-solapa{left:0;right:0;top:0;height:60%;transform-origin:50% 0;transform-style:preserve-3d;transition:transform 1s cubic-bezier(.45,.05,.3,1),z-index 0s linear .5s;z-index:4}
.sv-solapa>span{position:absolute;inset:0;clip-path:polygon(0 0,100% 0,52% 97%,50% 100%,48% 97%);backface-visibility:hidden;-webkit-backface-visibility:hidden}
.sv-cara{box-shadow:0 2px 3px rgba(80,62,30,.2);background:var(--manchas),var(--fibra),linear-gradient(180deg,#EFE6CF,#F3EBD7 70%,#EAE0C6);border-radius:3px 3px 0 0}
.sv-cara::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 62%,rgba(201,162,79,.35) 62.4%,transparent 63.2%)}
.sv-forro{background:#C9D8C2 var(--toile) center/150px auto;background-blend-mode:multiply;transform:rotateX(180deg);box-shadow:inset 0 0 0 1px rgba(63,90,64,.25)}
.sv-bolsa{z-index:3}.sv-carta{z-index:2}.sv-dentro{z-index:1}
.sv-lacre{left:50%;top:60%;width:78px;height:78px;z-index:5;transform:translate(-50%,-50%) rotate(-9deg);filter:drop-shadow(0 4px 5px rgba(30,45,31,.35));transition:transform .5s ease,opacity .4s ease}
.sv-lacre svg{display:block;width:100%;height:100%}
.sv:hover .sv-lacre{transform:translate(-50%,-50%) rotate(-5deg) scale(1.05)}
/* sombra en la mesa */
.sv::after{content:"";position:absolute;left:4%;right:4%;bottom:-14px;height:24px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(40,56,40,.32),transparent 70%);z-index:0;filter:blur(3px)}
/* al abrir: salta el lacre, se levanta la solapa enseñando el forro y asoma la tarjeta */
#acceso.abriendo .sv-lacre{transform:translate(-50%,-115%) rotate(-20deg) scale(.85);opacity:0}
#acceso.abriendo .sv-solapa{transform:rotateX(180deg);z-index:0}
#acceso.abriendo .sv-carta{transform:translateY(-30%)}
body:not([data-entrada="ticket"]) #acceso.abriendo .sobre-acc{transition:opacity .5s ease 1.25s;opacity:0}
@media (prefers-reduced-motion:reduce){.sv-solapa,.sv-carta,.sv-lacre{transition:none}}
@media (max-width:420px){.sv{width:min(100%,320px)}.sv-lacre{width:66px;height:66px}}

/* ---------- Entrada «mesa» (El Madrileño): una tarjeta de sitio sobre la mesa larga; al tocarla se levanta ---------- */
.mc{position:relative;width:min(100%,380px);aspect-ratio:320/150;margin:22px auto 26px;padding:0;border:0;background:none;cursor:pointer;perspective:900px;-webkit-tap-highlight-color:transparent}
.mc:focus-visible{outline:2px solid #A8322A;outline-offset:8px;border-radius:10px}
.mc-mesa{position:absolute;left:0;right:0;bottom:0;display:block}
.mc-mesa svg{display:block;width:100%;height:auto}
.mc-tarjeta{position:absolute;left:50%;bottom:41%;width:50%;aspect-ratio:2.1;transform:translateX(-50%) rotate(-3deg);transform-origin:50% 100%;transition:transform .9s cubic-bezier(.3,.1,.25,1),opacity .4s ease .9s;filter:drop-shadow(0 8px 10px rgba(30,43,69,.22))}
.mc-cara{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:#FAF5EC;border:1px solid #A8322A;border-radius:2px;box-shadow:inset 0 0 0 4px #FAF5EC,inset 0 0 0 5px rgba(168,50,42,.35)}
.mc-cara small{font:400 9.5px 'DM Mono',ui-monospace,monospace;text-transform:uppercase;letter-spacing:.14em;color:#A8322A}
.mc-cara em{font:400 clamp(26px,7.5vw,34px)/1 'Mrs Saint Delafield','Snell Roundhand','Apple Chancery',cursive;color:#A8322A}
.mc:hover .mc-tarjeta{transform:translateX(-50%) rotate(-1deg) translateY(-3px)}
#acceso.abriendo .mc-tarjeta{transform:translateX(-50%) translateY(-60%) rotate(6deg) scale(1.08)}
body[data-entrada="mesa"] #acceso.abriendo .sobre-acc{transition:opacity .5s ease 1.1s;opacity:0}
@media (prefers-reduced-motion:reduce){.mc-tarjeta{transition:none}}

/* «Añadir a mi calendario» al final del plan del día */
.cal-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 16px;margin:26px 0 0;text-align:center}
.cal-row .cal-btn{min-height:46px}
.cal-row .cal-g{font-family:var(--display);font-style:italic;font-size:17px;color:var(--verde-oscuro);min-height:44px;display:inline-flex;align-items:center}
.fondo-toile .cal-row .cal-g,#plan .cal-row .cal-g{background:rgba(251,248,239,.9);padding:0 14px;border-radius:999px}

/* El día de la boda: lo que está pasando ahora y lo siguiente */
.tl .tl-hoy{display:block;padding:0 0 18px 154px}
.tl .tl-hoy span{display:inline-block;font-family:var(--display);font-style:italic;font-size:18px;color:#fff;background:var(--verde-oscuro);border-radius:999px;padding:6px 16px}
.tl>li.ahora .card{box-shadow:0 0 0 2px var(--verde-oscuro),0 12px 28px -14px rgba(46,68,48,.5)!important}
.tl>li.ahora .dot{background:var(--verde-oscuro)!important;animation:latido 1.6s ease-in-out infinite}
.tl>li.luego .when b{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px}
@keyframes latido{0%,100%{box-shadow:0 0 0 0 rgba(63,90,64,.45)}50%{box-shadow:0 0 0 7px rgba(63,90,64,0)}}
@media (prefers-reduced-motion:reduce){.tl>li.ahora .dot{animation:none}}
@media (max-width:640px){.tl .tl-hoy{padding-left:36px}.tl .tl-hoy span{font-size:16px}}

/* Sobre antiguo (Toile verde loza): papel envejecido con manchas, pliegues y los bordes algo rasgados; lacre de oro con las iniciales en caligrafía */
.sv{--papel:#E8D9B6!important;--manchas:radial-gradient(ellipse 55% 40% at 16% 84%,rgba(150,110,52,.22),transparent 70%),radial-gradient(ellipse 36% 30% at 88% 18%,rgba(150,110,52,.18),transparent 70%),radial-gradient(ellipse 28% 22% at 64% 70%,rgba(120,84,36,.12),transparent 70%),radial-gradient(ellipse 120% 95% at 50% 50%,transparent 52%,rgba(120,86,40,.34) 100%)!important}
.sv-bolsa{clip-path:polygon(0.40% 0.00%,50.00% 54.00%,99.60% 0.00%,99.21% 7.14%,99.62% 14.29%,99.35% 21.43%,99.66% 28.57%,99.67% 35.71%,98.86% 42.86%,98.77% 50.00%,99.90% 57.14%,99.07% 64.29%,99.01% 71.43%,100.06% 78.57%,99.30% 85.71%,99.79% 92.86%,99.30% 99.40%,94.81% 99.37%,90.33% 99.63%,85.84% 98.85%,81.35% 99.63%,76.87% 100.01%,72.38% 99.46%,67.90% 99.82%,63.41% 99.71%,58.92% 98.74%,54.44% 99.86%,49.95% 99.60%,45.46% 99.14%,40.98% 98.71%,36.49% 100.05%,32.00% 99.42%,27.52% 99.82%,23.03% 100.08%,18.55% 99.82%,14.06% 100.16%,9.57% 99.32%,5.09% 99.98%,0.60% 99.50%,0.51% 92.39%,1.18% 85.29%,1.09% 78.18%,-0.02% 71.07%,0.02% 63.96%,0.12% 56.86%,1.15% 49.75%,0.40% 42.64%,0.65% 35.54%,0.18% 28.43%,0.45% 21.32%,0.27% 14.21%,0.21% 7.11%)!important;background:linear-gradient(104deg,transparent 47.6%,rgba(110,80,40,.12) 48.2%,transparent 49.4%),linear-gradient(8deg,transparent 60%,rgba(255,255,255,.18) 61%,transparent 63%),var(--manchas),var(--fibra),linear-gradient(180deg,#EADCB9,#E2D0A6)!important;box-shadow:inset 0 0 0 1px rgba(120,86,40,.25)!important}
.sv-dentro{clip-path:polygon(0.00% 0.50%,4.55% 0.64%,9.09% 0.63%,13.64% 1.20%,18.18% 0.79%,22.73% 1.23%,27.27% 1.09%,31.82% 1.32%,36.36% 0.74%,40.91% -0.19%,45.45% 1.06%,50.00% 1.24%,54.55% 1.12%,59.09% 0.51%,63.64% 0.76%,68.18% -0.16%,72.73% 0.95%,77.27% 0.48%,81.82% -0.05%,86.36% -0.46%,90.91% 0.96%,95.45% 1.19%,100.00% 0.30%,99.46% 8.57%,100.26% 16.85%,99.74% 25.12%,99.38% 33.40%,99.50% 41.67%,100.02% 49.95%,100.10% 58.23%,99.05% 66.50%,99.69% 74.77%,98.95% 83.05%,99.71% 91.32%,99.40% 99.60%,94.46% 99.36%,89.51% 100.12%,84.56% 100.26%,79.62% 99.59%,74.68% 100.27%,69.73% 99.30%,64.78% 98.97%,59.84% 99.70%,54.90% 98.90%,49.95% 99.13%,45.00% 99.42%,40.06% 99.69%,35.11% 99.05%,30.17% 98.89%,25.22% 100.04%,20.28% 99.26%,15.34% 100.16%,10.39% 100.07%,5.45% 99.33%,0.50% 99.50%)!important}
.sv-solapa>span{clip-path:polygon(0.00% 1.20%,3.85% 1.06%,7.69% 1.23%,11.54% 1.61%,15.38% 1.44%,19.23% 1.31%,23.08% 1.49%,26.92% 2.50%,30.77% 1.10%,34.62% 0.84%,38.46% 1.75%,42.31% 0.19%,46.15% 0.38%,50.00% 2.53%,53.85% 1.05%,57.69% 1.12%,61.54% -0.61%,65.38% 0.67%,69.23% 1.18%,73.08% -0.63%,76.92% 1.26%,80.77% 1.30%,84.62% -0.55%,88.46% 1.25%,92.31% 0.72%,96.15% 1.39%,100.00% 0.80%,52.00% 97.00%,50.00% 100.00%,48.00% 97.00%)!important}
.sv-cara{background:linear-gradient(170deg,transparent 40%,rgba(110,80,40,.12) 41%,transparent 43%),var(--manchas),var(--fibra),linear-gradient(180deg,#E3D2A9,#EADCBA 70%,#E0CC9E)!important}
.sv-cara::after{background:none!important}
.sv-carta{background:var(--fibra),linear-gradient(180deg,#FBF6EA,#F2EAD6)!important}
.sv::after{filter:blur(4px)!important;background:radial-gradient(ellipse at center,rgba(60,44,20,.38),transparent 70%)!important}
.sv-lacre{width:84px!important;height:84px!important;filter:drop-shadow(0 4px 4px rgba(70,48,12,.38)) drop-shadow(0 1px 1px rgba(70,48,12,.4))!important}
.sobre .lacre,.sobre-acc .lacre{filter:drop-shadow(0 4px 4px rgba(70,48,12,.38))}
.sv-dentro{inset:2.2% 2% 2.6% 2%!important}

/* Aviso para todos (lo encienden los novios desde Invitación → Portada) */
.aviso-todos{display:flex;gap:14px;align-items:flex-start;width:100%;box-sizing:border-box;max-width:min(860px,100%);margin:18px auto 6px;padding:14px 18px;background:#FFF8DE;border:1px solid #E8D58A;border-left:3px solid #C9A227;border-radius:10px;text-align:left;box-shadow:0 8px 20px -16px rgba(80,60,10,.4)}
.aviso-todos .at-i{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#fff;border:1px solid #E8D58A;color:#7A5B12}
.aviso-todos .at-i svg{width:18px;height:18px}
.aviso-todos b{display:block;font-family:var(--antigua);font-style:italic;font-weight:400;font-size:19px;color:#6B5313;margin-bottom:2px}
.aviso-todos p{margin:0;font-family:var(--display);font-size:1.05rem;line-height:1.5;color:#3E3418}
.inv-wrap>.aviso-todos{margin:0 auto 18px}

/* «Tu mesa» (el día de la boda, si los novios lo activan) */
.mesa-tuya{display:flex;gap:16px;align-items:center;max-width:min(560px,100%);margin:0 auto 18px;padding:16px 22px;box-sizing:border-box}
.mesa-tuya .mt-i{flex:none;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;border:1px solid var(--salvia-fuerte);color:var(--verde-oscuro)}
.mesa-tuya .mt-i svg{width:22px;height:22px}
.mesa-tuya .mt-k{margin:0;font-family:var(--display);font-style:italic;font-size:17px;color:var(--texto-suave)}
.mesa-tuya .mt-m{margin:0;font-family:var(--antigua);font-style:italic;font-size:clamp(28px,4vw,36px);line-height:1.1;color:var(--verde-oscuro)}
.mesa-tuya .mt-l{list-style:none;margin:2px 0 0;padding:0;font-family:var(--display);font-size:18px}

/* ===== Ajustes de móvil y tableta (todos los estilos) ===== */
/* pie: enlaces legales sin barras sueltas al partirse la línea */
@media (max-width:700px){
  .pie-legal{display:flex!important;flex-wrap:wrap;justify-content:center;gap:0 18px!important}
  .pie-legal>span[aria-hidden="true"]{display:none!important}
  .pf-f{letter-spacing:.14em!important;line-height:1.7}
}
/* cierre: la finca entera, sin recortes */
@media (max-width:700px){
  .cierre .cierre-svg{width:100%!important;margin-left:0!important}
  .cierre .cierre-img{width:100%!important}
}


/* ---------- Entrada «abanico» (Sevillano): abanico de feria entreabierto; al tocarlo se abre del todo y aparecen los nombres ---------- */
.ab{position:relative;display:block;width:min(100%,390px);margin:14px auto 18px;padding:0;border:0;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
.ab:focus-visible{outline:2px solid #B5232E;outline-offset:8px;border-radius:12px}
.ab-dib,.ab-dib svg{display:block;width:100%;height:auto;overflow:visible}
.ab-dib svg{filter:drop-shadow(0 8px 10px rgba(58,33,27,.2))}
.ab .ab-v{transform-box:view-box;transform-origin:160px 200px;transform:rotate(calc(var(--a) * .3deg));transition:transform 1.1s cubic-bezier(.3,.1,.2,1)}
.ab:hover .ab-v{transform:rotate(calc(var(--a) * .38deg))}
#acceso.abriendo .ab .ab-v{transform:rotate(calc(var(--a) * 1deg))}
.ab-txt{opacity:0;transition:opacity .6s ease .75s;fill:#FFFBF2;font-family:'Grand Hotel','Pinyon Script','Snell Roundhand',cursive}
.ab-txt .ab-n{paint-order:stroke;stroke:#6E1520;stroke-width:3px;stroke-linejoin:round}
.ab-txt .ab-f{font-family:'Alegreya SC','Cormorant Garamond',Georgia,serif;letter-spacing:.1em;fill:#8E1A24}
#acceso.abriendo .ab-txt{opacity:1}
body[data-entrada="abanico"] #acceso.abriendo .sobre-acc{transition:opacity .5s ease 1.9s;opacity:0}
@media (prefers-reduced-motion:reduce){.ab .ab-v,.ab-txt{transition:none}}

/* marca Enlacia: siempre con su símbolo (la pérgola) */
.pie-marca .enlacia{display:inline-flex;align-items:center;gap:0}.pie-marca .enlacia .enl-sim{width:19px;height:auto;margin:0 0 0 7px;flex:none;color:var(--verde-oscuro,#3F5A40);position:relative;top:-1px}.pie-marca .enlacia b{margin-left:6px!important}

/* valoración de Google en los alojamientos recomendados */
.hoteles .aloj-val{color:#8C6A2A}

/* textos de la servilleta: solo los enseña el diseño que la usa */
.mc-cara .mc-x{display:none}

/* facilidad con talla (p. ej. calzado): un desplegable por persona */
.facil .faci-resp .tallas{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center}
.facil .faci-resp .talla{display:inline-flex;align-items:center;gap:8px;font-size:15px;color:var(--texto,#2F3B2E)}

/* «Añadir a mi calendario» discreto: en cursiva, como un enlace, en todos los diseños */
.cal-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 10px}
.cal-row button.cal-g{appearance:none;-webkit-appearance:none;border:0;background:none;cursor:pointer;font-family:var(--display);font-style:italic;font-size:17px;color:var(--verde-oscuro);min-height:44px;padding:0;letter-spacing:0;text-transform:none;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.cal-row a.cal-g{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.cal-row .cal-sep{opacity:.6}
.fondo-toile .cal-row .cal-g,#plan .cal-row .cal-g{background:rgba(251,248,239,.92);padding:0 14px;border-radius:999px;min-height:36px;font-size:16px}
.fondo-toile .cal-row .cal-sep,#plan .cal-row .cal-sep{display:none}

/* ficha de la ceremonia (en lugar del dibujo): dónde, hora, dirección y cómo llegar */
.acto-ficha{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 18px;margin:4px 0 14px;padding:14px 18px;border-top:1px solid rgba(127,154,120,.35);border-bottom:1px solid rgba(127,154,120,.35);text-align:left}
.acto-ficha dt{font-family:var(--display);font-style:italic;font-size:15px;color:var(--texto-suave,#6B7768);padding-top:2px}
.acto-ficha dd{margin:0;font-size:16.5px;line-height:1.4;color:var(--texto,#2F3B2E)}
.acto-ficha .af-lugar{font-family:var(--display);font-size:19px;color:var(--verde-oscuro)}
@media (max-width:520px){.acto-ficha{grid-template-columns:1fr;gap:2px}.acto-ficha dd{margin-bottom:8px}}

/* «Comparte tus fotos»: recuadro de papel con borde fino discontinuo, icono, botón y una sola nota en cursiva, con el mismo aire entre todo */
.fi-zona{display:flex;flex-direction:column;align-items:center;gap:12px;margin:16px 0 6px;padding:22px 20px 20px;border:1px dashed rgba(127,154,120,.55);border-radius:14px;background:rgba(255,255,255,.45);text-align:center}
.fi-zona .fi-ico{display:grid;place-items:center;color:var(--verde)}.fi-zona .fi-ico svg{width:28px;height:28px}
.fi-zona .fi-btn{margin:0!important}
.fi-zona .fi-nota{margin:0!important;font-family:var(--display);font-style:italic;font-size:16px!important;line-height:1.45;color:var(--texto-suave,#6B7768);max-width:46ch}
.fi-st:empty{display:none}

/* lacre realista (assets/sello.js): la imagen ocupa el hueco del dibujo */
.lacre img.lacre-real{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}

/* «Cómo funciona esta invitación»: nota breve justo después de la tarjeta */
.inv-ayuda{display:flex;gap:14px;align-items:flex-start;max-width:640px;margin:6px auto 26px;padding:14px 18px;border:1px solid color-mix(in srgb,currentColor 22%,transparent);border-radius:14px;background:color-mix(in srgb,#fff 55%,transparent);font-size:15px;line-height:1.5}
.inv-ayuda b{display:block;margin:0 0 2px;font-family:var(--display);font-style:italic;font-weight:400;font-size:18px}
.inv-ayuda .rico p{margin:0}
.inv-ayuda-i{flex:none;width:28px;height:28px;display:grid;place-items:center;opacity:.8}
.inv-ayuda-i svg{width:22px;height:22px}
@media (max-width:600px){.inv-ayuda{margin:4px 12px 20px;font-size:14.5px}}

/* la canción con su enlace de Spotify, y los comentarios aparte, al final */
.song-in{display:grid;gap:8px}
.blk.aparte,.aparte{margin-top:26px;padding-top:18px;border-top:1px dashed color-mix(in srgb,currentColor 25%,transparent)}

/* pie: la fecha y el lugar no se parten; en pantallas estrechas, cada uno en su línea */
.pf-f .pf-nw{white-space:nowrap}
@media (max-width:520px){.pf-f .pf-sep{display:none}.pf-f .pf-nw{display:block}}
/* Alergias, intolerancias y menú: bloque propio, una fila por persona */
.algrows{display:grid;gap:12px}
.algrows.multi .algrow{padding:10px 14px 4px;border-left:2px solid var(--salvia-palido)}
.algrow[hidden],.algp1[hidden]{display:none}
.algrow .algp1{margin-top:8px}
.algq{margin:0 0 2px;font-style:italic;font-weight:600;color:var(--verde-oscuro);font-size:1.2em}
.algp1{padding-top:8px;border-top:1px dashed var(--salvia-palido)}
