/* ===== Tokens (los de D2; ningún valor suelto fuera de esta escala) ===== */
:root{
  --blanco:#fff; --ciruela:#4A1D3F; --ciruela-n:#2E0F27; --terra:#C0664A; --terra-t:#9E4328; --terra-luz:#F0B49F; --oliva:#6C6B3C; --opalo:#ECE6F4; --tinta:#1B0B17; --gris:#5F5560; --suave:#3D323B; --lila-t:#E7D6E3;
  --crema:#FBF4EF; --s1:8px; --s2:16px; --s3:24px; --s4:32px; --s5:48px; --s6:64px; --s7:96px;
  --m:48px; --g:16px; --ease:cubic-bezier(.22,.8,.24,1);
  --serif:'Fraunces',Georgia,serif; --sans:'Figtree',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;scroll-padding-top:88px}
body{background:#fff;color:var(--tinta);font:400 17px/1.55 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit}
.wrap{max-width:1440px;margin:0 auto;padding:0 var(--m)}
.g{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--g)}
.eti{font:600 13px/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase}
:focus-visible{outline:3px solid var(--terra-t);outline-offset:3px}
.skip{position:absolute;left:-999px;top:8px;background:var(--ciruela);color:#fff;padding:12px 16px;z-index:40}.skip:focus{left:8px}
h1,h2,h3{font-family:var(--serif);font-weight:500;letter-spacing:-.02em;text-wrap:balance}
h2{font-size:clamp(34px,4vw,56px);line-height:1.02;color:var(--ciruela)}
h2 em,h1 em{font-style:italic;font-weight:400;color:var(--terra-t)}
.sec{padding-top:var(--s7)}
.cab-sec{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--s3);margin-bottom:var(--s5)}
.cab-sec .eti{display:block;margin-bottom:var(--s2);color:var(--terra-t)}
.cab-sec p{max-width:44ch;color:var(--suave)}

/* ===== Borde de estampilla (máscara: deja ver lo que hay detrás) ===== */
.sf{
  -webkit-mask:
    radial-gradient(circle 5px at 50% 0,#0000 96%,#000) top/18px 10px repeat-x,
    radial-gradient(circle 5px at 50% 100%,#0000 96%,#000) bottom/18px 10px repeat-x,
    radial-gradient(circle 5px at 0 50%,#0000 96%,#000) left/10px 18px repeat-y,
    radial-gradient(circle 5px at 100% 50%,#0000 96%,#000) right/10px 18px repeat-y,
    linear-gradient(#000 0 0) center/calc(100% - 20px) calc(100% - 20px) no-repeat;
  mask:
    radial-gradient(circle 5px at 50% 0,#0000 96%,#000) top/18px 10px repeat-x,
    radial-gradient(circle 5px at 50% 100%,#0000 96%,#000) bottom/18px 10px repeat-x,
    radial-gradient(circle 5px at 0 50%,#0000 96%,#000) left/10px 18px repeat-y,
    radial-gradient(circle 5px at 100% 50%,#0000 96%,#000) right/10px 18px repeat-y,
    linear-gradient(#000 0 0) center/calc(100% - 20px) calc(100% - 20px) no-repeat}

/* ===== Fotos: una sola regla de color (saturación baja + velo ciruela) ===== */
.ph{position:relative;overflow:hidden;background:var(--opalo)}
.ph img{width:100%;height:100%;object-fit:cover;filter:saturate(.9) contrast(1.02);transition:transform 900ms var(--ease)}
.ph::after{content:"";position:absolute;inset:0;background:var(--ciruela);mix-blend-mode:soft-light;opacity:.2;pointer-events:none}
a:hover .ph img,.hv:hover .ph img{transform:scale(1.04)}

/* ===== Botones y enlaces ===== */
.btn{min-height:56px;padding:0 var(--s3);background:var(--terra);color:var(--tinta);border:0;font:700 17px/1.2 var(--sans);cursor:pointer;display:inline-flex;align-items:center;justify-content:space-between;gap:12px;text-decoration:none;transition:background 150ms,transform 150ms var(--ease)}
.btn:hover{background:#D07A5E;transform:translateY(-2px)}.btn:active{transform:none}
.btn span{transition:transform 200ms var(--ease)}.btn:hover span{transform:translateX(4px)}
.btn.osc{background:var(--ciruela);color:#fff}.btn.osc:hover{background:var(--ciruela-n)}
.btn.claro{background:#fff;color:var(--ciruela)}.btn.claro:hover{background:var(--opalo)}
.lnk{font:600 16px var(--sans);text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px;min-height:44px;display:inline-flex;align-items:center;transition:text-decoration-thickness 150ms,transform 150ms}
.lnk:hover{text-decoration-thickness:2px;transform:translateX(3px)}

/* ===== Barra de aviso + encabezado ===== */
.aviso-top{background:var(--ciruela);color:#fff;text-align:center;padding:var(--s1) var(--s2);font:500 15px/1.4 var(--sans);min-height:40px;display:flex;align-items:center;justify-content:center;gap:var(--s2);flex-wrap:wrap}
.aviso-top b{font-weight:700}
header.top{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--opalo)}
header.top .wrap{display:flex;align-items:center;justify-content:space-between;height:72px}
.logo{min-height:44px;display:flex;align-items:center;gap:10px;text-decoration:none;font:600 26px/1 var(--serif);color:var(--ciruela);letter-spacing:-.01em}
.logo svg{width:32px;height:32px}
nav.main{display:flex;gap:var(--s3);align-items:center}
nav.main a{font:500 15px var(--sans);text-decoration:none;min-height:44px;display:inline-flex;align-items:center;padding:0 4px;position:relative}
nav.main a::after{content:"";position:absolute;left:4px;right:4px;bottom:8px;height:2px;background:var(--terra);transform:scaleX(0);transform-origin:left;transition:transform 200ms var(--ease)}
nav.main a:hover::after,nav.main a[aria-current]::after{transform:scaleX(1)}
nav.main .en{border:1px solid var(--ciruela);padding:0 var(--s2);margin-left:var(--s1);transition:background 150ms,color 150ms}
nav.main .en::after{display:none}
nav.main .en:hover{background:var(--ciruela);color:#fff}
.menu-btn{display:none;min-height:44px;min-width:44px;padding:0 var(--s2);background:var(--ciruela);color:#fff;border:0;font:600 16px var(--sans);cursor:pointer}

/* ===== 1. Banner a sangre ===== */
.hero{position:relative;color:#fff;isolation:isolate;background:var(--ciruela-n)}
.hero-bg{position:absolute;inset:0;z-index:-1}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:50% 60%;filter:saturate(.92)}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(46,15,39,.84) 0,rgba(46,15,39,.58) 36%,rgba(46,15,39,.1) 66%,rgba(46,15,39,0) 100%),linear-gradient(180deg,rgba(46,15,39,.28),rgba(46,15,39,0) 30%)}
.hero-in{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--g);align-items:center;min-height:736px;padding-top:var(--s6);padding-bottom:var(--s6)}
.hero-txt{grid-column:1/7}
.etq{display:inline-flex;align-items:center;gap:12px;margin-bottom:var(--s3);color:var(--terra-luz)}
.etq i{width:32px;height:2px;background:var(--terra-luz)}
h1{font-size:clamp(44px,5.4vw,80px);line-height:.98;letter-spacing:-.03em;color:#fff;font-variation-settings:"opsz" 144}
h1 em{color:var(--terra-luz)}
.hero .sub{margin-top:var(--s3);max-width:50ch;font-size:19px;color:#F4EAF1}
.hero-card{grid-column:8/13;position:relative}
.estampa-card{background:#fff;color:var(--ciruela);padding:var(--s4) var(--s4) var(--s3)}
.estampa-card h2{font-size:clamp(26px,2.2vw,32px);line-height:1.08;margin-bottom:var(--s2);max-width:20ch}
.estampa-card .n{position:absolute;right:var(--s4);top:var(--s2);font:500 80px/.8 var(--serif);color:var(--opalo);pointer-events:none}
.buscador{position:relative}
.buscador label{display:block;margin-bottom:var(--s1);color:var(--gris)}
.campo{display:grid;gap:var(--s1)}
.campo input{min-width:0;min-height:56px;padding:0 var(--s2);border:2px solid var(--ciruela);background:#fff;color:var(--ciruela);font:500 20px var(--sans);border-radius:0;transition:border-color 150ms,box-shadow 150ms}
.campo input:focus{outline:0;border-color:var(--terra-t);box-shadow:0 0 0 3px var(--opalo)}
#sug{position:absolute;left:0;top:92px;width:100%;z-index:10;list-style:none;padding:0;background:#fff;color:var(--ciruela);box-shadow:0 12px 32px -12px rgba(40,10,35,.45);border:1px solid var(--opalo)}
#sug[hidden]{display:none}
#sug button{width:100%;text-align:left;min-height:48px;padding:0 var(--s2);border:0;background:none;font:500 17px var(--sans);cursor:pointer}
#sug button:hover,#sug button:focus-visible{background:var(--opalo)}
.ayuda{margin-top:var(--s2);font-size:16px;color:var(--gris)}
.ayuda button{background:none;border:0;padding:0 6px;color:var(--ciruela);font:600 16px var(--sans);text-decoration:underline;text-underline-offset:3px;cursor:pointer;min-height:44px}
#msg{margin-top:var(--s2);padding:var(--s2);background:var(--opalo);font-size:17px;color:var(--ciruela)}
.res{margin-top:var(--s2);border-top:2px dashed var(--ciruela);padding-top:var(--s2)}
.res .cabe{display:flex;justify-content:space-between;gap:var(--s1) var(--s2);flex-wrap:wrap;align-items:center;margin-bottom:var(--s2)}
.res .cabe b{font:500 22px/1.1 var(--serif)}
.ej{display:inline-block;background:var(--terra);color:var(--tinta);padding:4px 10px;font:700 12px/1.2 var(--sans);letter-spacing:.06em;text-transform:uppercase}
.res dl{display:grid;grid-template-columns:1fr;gap:var(--s2) var(--s3)}
.res dt{color:var(--gris);margin-bottom:4px}
.res dd{font:500 17px/1.4 var(--serif);color:var(--ciruela)}
@media (min-width:1101px){.herr .res dl{grid-template-columns:1fr 1fr}}
.res .enl{margin-top:var(--s1)}
.sello{position:absolute;right:-8px;top:-56px;width:188px;z-index:6;transform:rotate(11deg);pointer-events:none}
.sello.estampa{animation:est 650ms cubic-bezier(.2,.9,.3,1.15)}
@keyframes est{0%{opacity:0;transform:rotate(-8deg) scale(1.7)}60%{opacity:.95;transform:rotate(13deg) scale(.96)}100%{opacity:1;transform:rotate(11deg) scale(1)}}
.sello .tr{fill:rgba(255,255,255,.78)}
.sello text{font-family:var(--sans);font-weight:700;fill:var(--ciruela)}

/* ===== 2. Sellos de confianza (multicolumna con íconos) ===== */
.sellos{border-bottom:1px solid var(--opalo)}
.sellos ul{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,1fr)}
.sellos li{display:flex;align-items:center;gap:var(--s2);padding:var(--s3) var(--s3) var(--s3) 0;border-right:1px solid var(--opalo);margin-right:var(--s3)}
.sellos li:last-child{border:0;margin-right:0}
.sellos svg{width:40px;height:40px;flex:none;stroke:var(--ciruela);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.sellos b{display:block;font:600 17px/1.2 var(--sans);color:var(--ciruela)}
.sellos span{font-size:15px;color:var(--gris);line-height:1.35;display:block;margin-top:2px}

/* ===== 3. Colección destacada: herramientas ===== */
.cols3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--g)}
.tool{display:flex;flex-direction:column;background:var(--opalo);padding:12px;text-decoration:none;transition:transform 300ms var(--ease)}
.tool:hover{transform:translateY(-4px)}
.tool .ph{aspect-ratio:4/4.4}
.tool .ph .tag{position:absolute;left:var(--s2);top:var(--s2);z-index:2;background:#fff;color:var(--ciruela);padding:6px 12px;font:700 13px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase}
.tool .cuerpo{padding:var(--s3) var(--s2) var(--s2);display:flex;flex-direction:column;flex:1}
.tool h3{font-size:clamp(26px,2.2vw,32px);line-height:1.06;color:var(--ciruela)}
.tool p{margin-top:var(--s1);color:var(--suave)}
.precio{display:flex;align-items:baseline;gap:var(--s1);margin-top:var(--s2)}
.precio b{font:500 34px/1 var(--serif);color:var(--ciruela)}
.precio small{font:500 15px var(--sans);color:var(--gris)}
.tool .btn{margin-top:var(--s3);margin-top:auto;width:100%}
.tool .precio{margin-bottom:var(--s3)}

/* ===== 4. Imagen con texto, alternada y a sangre ===== */
.iot{display:grid;grid-template-columns:1fr 1fr;min-height:600px;margin-top:var(--s7)}
.iot .im{position:relative;min-height:420px}
.iot .im .ph{position:absolute;inset:0}
.iot .tx{display:flex;flex-direction:column;justify-content:center;padding:var(--s6) clamp(32px,6vw,96px)}
.iot .tx .eti{margin-bottom:var(--s2)}
.iot h2{font-size:clamp(34px,3.6vw,52px);color:inherit}
.iot p{margin-top:var(--s2);max-width:52ch}
.iot .acc{margin-top:var(--s4);display:flex;gap:var(--s2) var(--s4);flex-wrap:wrap;align-items:center}
.iot.a .tx{background:var(--oliva);color:#fff}
.iot.a .tx .eti{color:#F3F2D6}
.iot.a .lnk{color:#fff}
.iot.b .tx{background:var(--opalo);color:var(--tinta)}
.iot.b .tx .eti{color:var(--terra-t)}
.iot.b h2{color:var(--ciruela)}
.hechos{list-style:none;padding:0;margin-top:var(--s3);display:grid;grid-template-columns:1fr 1fr;gap:var(--s2) var(--s3);max-width:520px}
.hechos li{border-top:2px solid var(--ciruela);padding-top:var(--s1)}
.hechos b{display:block;font:600 13px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--terra-t)}
.hechos span{font:500 20px/1.2 var(--serif);color:var(--ciruela)}
.iot .im .sello2{position:absolute;z-index:3;width:152px;height:152px;right:var(--s4);bottom:var(--s4);transform:rotate(-9deg)}

/* ===== 5. Collage por etapa ===== */
.collage{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:140px;gap:var(--g)}
.tile{position:relative;display:block;text-decoration:none;color:#fff;overflow:hidden;background:var(--ciruela)}
.tile .ph{position:absolute;inset:0}
.tile .tl{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:var(--s6) var(--s3) var(--s3);background:linear-gradient(0deg,rgba(46,15,39,.92) 0,rgba(46,15,39,.7) 55%,rgba(46,15,39,0))}
.tile .chip{display:inline-block;background:var(--terra);color:var(--tinta);padding:6px 10px;font:700 12px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;margin-bottom:var(--s1)}
.tile h3{font-size:clamp(22px,2vw,28px);line-height:1.1;max-width:20ch}
.tile .fl{display:inline-block;margin-top:var(--s1);font:600 16px var(--sans);transition:transform 200ms var(--ease)}
.tile:hover .fl{transform:translateX(6px)}
.t1{grid-column:1/6;grid-row:1/5}
.t2{grid-column:6/10;grid-row:1/4}
.t3{grid-column:10/13;grid-row:1/3}
.t4{grid-column:10/13;grid-row:3/5}
.t5{grid-column:6/10;grid-row:4/5}
.t5 .tl,.t3 .tl{padding-top:var(--s5)}
.pilares{margin-top:var(--s4);border-top:2px dashed var(--ciruela);padding-top:var(--s3);display:flex;gap:var(--s2) var(--s4);flex-wrap:wrap;align-items:center}
.pilares .eti{color:var(--gris)}
.pilares a{font:500 20px/1.2 var(--serif);color:var(--ciruela);min-height:44px;display:inline-flex;align-items:center;text-underline-offset:5px}

/* ===== 7. Lanzamiento: invitaciones ===== */
.lanz{background:var(--ciruela);color:#fff;display:grid;grid-template-columns:repeat(12,1fr);gap:var(--g);align-items:center;padding:var(--s6) var(--s6)}
.lanz .tx{grid-column:1/7}
.lanz .tx .pill{display:inline-flex;align-items:center;gap:10px;background:var(--terra);color:var(--tinta);padding:8px 14px;font:700 13px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase}
.lanz .tx .pill::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--tinta)}
.lanz h2{color:#fff;margin-top:var(--s3);font-size:clamp(34px,4vw,56px)}
.lanz h2 em{color:var(--terra-luz)}
.lanz p{margin-top:var(--s2);color:var(--lila-t);max-width:46ch}
.lanz .acc{margin-top:var(--s4);display:flex;gap:var(--s2) var(--s3);flex-wrap:wrap;align-items:center}
.lanz .nodisp{display:inline-flex;align-items:center;min-height:56px;padding:0 var(--s3);border:2px dashed rgba(255,255,255,.6);font:600 16px var(--sans);color:#fff}
.lanz .lnk{color:#fff}
.lanz .fotos{grid-column:8/13;position:relative;height:440px}
.lanz .f1,.lanz .f2{position:absolute;background:#fff;padding:10px}
.lanz .f1{left:0;top:0;width:62%;transform:rotate(-3deg)}
.lanz .f2{right:0;bottom:0;width:58%;transform:rotate(2.5deg)}
.lanz .f1 .ph{aspect-ratio:4/5}.lanz .f2 .ph{aspect-ratio:1/1}

/* ===== 8. Confianza ===== */
.conf{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--g);align-items:center}
.conf .im{grid-column:1/6;background:var(--opalo);padding:12px}
.conf .im .ph{aspect-ratio:4/5}
.conf .tx{grid-column:7/13}
.conf .big{font:500 clamp(28px,3vw,42px)/1.1 var(--serif);letter-spacing:-.02em;color:var(--ciruela)}
.conf .big em{font-weight:400;color:var(--terra-t)}
.conf .tres{margin-top:var(--s4);display:grid;gap:var(--s2)}
.conf .tres div{border-left:4px solid var(--terra);padding:4px 0 4px var(--s2)}
.conf .tres h3{font:600 18px var(--sans);letter-spacing:0}
.conf .tres p{color:var(--suave)}
.conf .tit-e{display:block;margin-bottom:var(--s2);color:var(--terra-t)}
.conf .av{margin-top:var(--s3);font-size:15px;color:var(--gris)}

/* ===== 9. FAQ ===== */
.faq{padding-bottom:var(--s7)}
.faq .izq{grid-column:1/5}
.faq .izq .eti{color:var(--terra-t);display:block;margin-bottom:var(--s1)}
.faq .izq .im{margin-top:var(--s4);background:var(--opalo);padding:12px;max-width:320px}
.faq .izq .im .ph{aspect-ratio:4/3}
.faq .der{grid-column:6/13}
details{border-top:1px solid var(--ciruela)}
details:last-child{border-bottom:1px solid var(--ciruela)}
summary{list-style:none;cursor:pointer;min-height:64px;padding:var(--s2) 0;display:flex;justify-content:space-between;align-items:center;gap:var(--s3);font:500 clamp(20px,1.8vw,24px)/1.2 var(--serif);color:var(--ciruela)}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";flex:none;width:40px;height:40px;border-radius:50%;background:var(--opalo);display:grid;place-content:center;font:500 24px/1 var(--sans);transition:transform 250ms var(--ease),background 150ms}
details[open] summary::after{transform:rotate(45deg);background:var(--terra)}
details p{padding:0 var(--s5) var(--s3) 0;max-width:60ch;color:var(--suave)}

/* ===== Pie ===== */
footer{background:var(--ciruela);color:#fff;padding:var(--s7) 0 var(--s4)}
footer .cols{display:grid;grid-template-columns:4fr 2fr 2fr 2fr 2fr;gap:var(--s4) var(--g)}
footer .lg{font:500 clamp(36px,4vw,56px)/1 var(--serif);letter-spacing:-.02em}
footer .lg em{color:var(--terra-luz)}
footer .c{font-size:16px}
footer .c h4{margin-bottom:var(--s1);color:#D9C0D3}
footer .c a{display:flex;align-items:center;padding:6px 0;min-height:44px;text-decoration:none;color:#fff}
footer .c a:hover{text-decoration:underline}
footer .legal{margin-top:var(--s5);padding-top:var(--s3);border-top:1px dashed rgba(255,255,255,.4);font-size:15px;color:#E1CCDC;max-width:90ch}
footer .legal a{color:#fff}

@media (prefers-reduced-motion:reduce){.sello.estampa{animation:none}*{scroll-behavior:auto!important}.ph img{transition:none}}

/* ===== Tablet ===== */
@media (max-width:1100px){
  :root{--m:32px}
  nav.main a{padding:0 2px;font-size:14px}.nav-hide{display:none}
  .hero-in{min-height:0;padding-top:var(--s5);padding-bottom:var(--s6)}
  .hero-txt{grid-column:1/13}
  .hero-card{grid-column:1/13;margin-top:var(--s5)}
  .hero-bg::after{background:linear-gradient(180deg,rgba(46,15,39,.86) 0,rgba(46,15,39,.7) 45%,rgba(46,15,39,.25) 100%)}
  .sello{right:-8px;top:-64px;width:190px}
  .sellos ul{grid-template-columns:1fr 1fr}
  .sellos li{border-right:0;margin-right:0;border-bottom:1px solid var(--opalo)}
  .sellos li:nth-last-child(-n+2){border-bottom:0}
  .cols3{grid-template-columns:1fr 1fr}.cols3 .tool:last-child{grid-column:1/3}
  .cols3 .tool:last-child .ph{aspect-ratio:16/9}
  .iot{grid-template-columns:1fr}.iot .im{min-height:380px}
  .iot.b .im{order:-1}
  .collage{grid-auto-rows:120px}
  .t1{grid-column:1/8;grid-row:1/4}.t2{grid-column:8/13;grid-row:1/4}.t3{grid-column:1/6;grid-row:4/6}.t4{grid-column:6/13;grid-row:4/6}.t5{grid-column:1/13;grid-row:6/8}
  .lanz{padding:var(--s5)}.lanz .tx{grid-column:1/13}.lanz .fotos{grid-column:1/13;margin-top:var(--s4);height:420px}
  .conf .im{grid-column:1/6}.conf .tx{grid-column:6/13}
  .faq .izq{grid-column:1/13}.faq .der{grid-column:1/13;margin-top:var(--s3)}
  .faq .izq .im{display:none}
  footer .cols{grid-template-columns:repeat(4,1fr)}footer .lg{grid-column:1/-1}
}

/* ===== Móvil ===== */
@media (max-width:760px){
  :root{--m:16px;--s7:64px;--s6:48px;--s5:40px}
  body{font-size:17px}
  .aviso-top{font-size:15px;padding:var(--s1) var(--m)}
  header.top .wrap{height:60px}
  .logo{font-size:24px}
  .menu-btn{display:inline-flex;align-items:center}
  nav.main{display:none;position:absolute;left:0;right:0;top:60px;background:#fff;flex-direction:column;align-items:stretch;gap:0;padding:var(--s1) var(--m) var(--s3);border-bottom:2px solid var(--ciruela)}
  nav.main.abierto{display:flex}
  nav.main a{min-height:52px;font-size:17px;border-bottom:1px solid var(--opalo)}
  nav.main .en{margin:var(--s2) 0 0;justify-content:center}
  h1{font-size:clamp(40px,11.4vw,48px)}
  .hero .sub{font-size:18px}
  .hero-in{padding-top:var(--s4);padding-bottom:var(--s5)}
  .hero-card{margin-top:var(--s4)}
  .estampa-card{padding:var(--s3) 20px var(--s2)}
  .estampa-card .n{display:none}
  .sello{width:132px;right:-6px;top:-56px}
  .res dl{gap:var(--s2)}
  .sellos ul{grid-template-columns:1fr}
  .sellos li{border-bottom:1px solid var(--opalo)!important;padding:var(--s2) 0}
  .sellos li:last-child{border-bottom:0!important}
  .cab-sec{display:block;margin-bottom:var(--s4)}.cab-sec p{margin-top:var(--s2)}
  .cols3{grid-template-columns:1fr}.cols3 .tool:last-child{grid-column:auto}.cols3 .tool:last-child .ph{aspect-ratio:4/4.4}
  .iot{margin-top:var(--s6);min-height:0}.iot .im{min-height:300px}
  .iot .tx{padding:var(--s5) var(--m)}
  .hechos{grid-template-columns:1fr 1fr}
  .collage{grid-template-columns:1fr 1fr;grid-auto-rows:auto}
  .collage .tile{grid-column:auto!important;grid-row:auto!important;aspect-ratio:4/5}
  .collage .t1{grid-column:1/-1!important;aspect-ratio:4/4.4}
  .collage .t4,.collage .t5{grid-column:1/-1!important;aspect-ratio:16/9}
  .tile .tl,.t5 .tl,.t3 .tl{padding:var(--s5) var(--s2) var(--s2)}
  .tile h3{font-size:20px}
  .tile .fl{display:none}
  .t1 h3{font-size:26px}.t1 .fl{display:inline-block}
  .lanz{padding:var(--s4) 20px}.lanz .fotos{height:360px}
  .conf .im,.conf .tx{grid-column:1/-1}.conf .tx{margin-top:var(--s3)}
  details p{padding-right:0}
  footer .cols{grid-template-columns:1fr 1fr}
}

/* ===== Añadidos de la v0 (páginas internas, herramientas, impresión) ===== */
.ver{font-size:15px;color:var(--gris);margin-top:var(--s1)}
.bc{padding:var(--s3) 0 0;font-size:16px;color:var(--gris)}
.bc ol{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:4px 8px}
.bc li+li::before{content:"/";margin-right:8px;color:var(--gris)}
.bc a{min-height:44px;display:inline-flex;align-items:center}
.pagehead{padding:var(--s4) 0 var(--s4);border-bottom:2px dashed var(--ciruela)}
.pagehead .eti{display:block;color:var(--terra-t);margin-bottom:var(--s1)}
.pagehead h1{color:var(--ciruela);font-size:clamp(36px,4.4vw,60px);line-height:1.02}
.pagehead h1 em{color:var(--terra-t)}
.pagehead p{margin-top:var(--s2);max-width:62ch;font-size:19px;color:var(--suave)}
.bloque{padding-top:var(--s5)}
.herr{background:var(--opalo);padding:var(--s4)}
.herr h2{font-size:clamp(26px,2.6vw,36px);margin-bottom:var(--s2)}
.herr label.eti{display:block;margin-bottom:var(--s1);color:var(--gris)}
.fila{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3)}
.herr input[type=date],.herr input[type=number],.herr input[type=text]{width:100%;min-height:56px;padding:0 var(--s2);border:2px solid var(--ciruela);background:#fff;color:var(--ciruela);font:500 20px var(--sans);border-radius:0}
.herr input:focus{outline:0;border-color:var(--terra-t);box-shadow:0 0 0 3px #fff,0 0 0 6px var(--terra-t)}
.btn.sec2{background:#fff;color:var(--ciruela);border:2px solid var(--ciruela);min-height:56px}
.btn.sec2:hover{background:var(--opalo)}
.acciones{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s3)}
.herr .buscador{max-width:640px}
.herr #sug{top:96px}
.disp{margin-top:var(--s3)}
.disp h3{font:600 15px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--gris);margin-bottom:var(--s1)}
.disp ul{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:var(--s1)}
.disp button{min-height:44px;padding:0 var(--s2);border:2px solid var(--ciruela);background:#fff;color:var(--ciruela);font:600 16px var(--sans);cursor:pointer}
.disp button:hover{background:var(--ciruela);color:#fff}
.src{margin-top:var(--s2);font-size:16px;color:var(--suave)}
.res dd.nd{font:500 17px/1.25 var(--sans);color:var(--gris);font-style:italic}
.res dd small{display:block;font:400 15px/1.35 var(--sans);color:var(--gris);margin-top:4px}
.sellos-int{position:relative}
.cont{display:grid;grid-template-columns:2fr 1fr;gap:var(--s5);align-items:start}
.resumen{background:#fff;border:2px solid var(--ciruela);padding:var(--s3)}
.resumen b{display:block;font:500 clamp(32px,3vw,44px)/1 var(--serif);color:var(--ciruela)}
.resumen span{display:block;color:var(--gris);margin-top:4px}
.resumen+.resumen{margin-top:var(--s2)}
.etapa{border-top:2px solid var(--ciruela);padding:var(--s3) 0}
.etapa-cab{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:var(--s1) var(--s3)}
.etapa h3{font-size:clamp(24px,2.2vw,32px);color:var(--ciruela)}
.etapa .est{font:700 13px var(--sans);letter-spacing:.1em;text-transform:uppercase;padding:6px 10px;background:var(--opalo);color:var(--ciruela)}
.etapa.ahora .est{background:var(--terra);color:var(--tinta)}
.etapa.hecha .est{background:var(--oliva);color:#fff}
.etapa .desde{color:var(--gris);font-size:16px}
.tareas{list-style:none;padding:0;margin-top:var(--s1)}
.tareas li{border-bottom:1px solid var(--opalo)}
.tareas label{display:flex;gap:var(--s2);align-items:flex-start;min-height:48px;padding:12px 0;cursor:pointer}
.tareas input{width:28px;height:28px;flex:none;margin-top:0;accent-color:var(--ciruela);cursor:pointer}
.tareas input:checked+span{text-decoration:line-through;color:var(--gris)}
.tareas .pa{display:inline-block;margin-left:8px;font:700 12px var(--sans);letter-spacing:.08em;text-transform:uppercase;background:var(--terra-luz);color:var(--tinta);padding:3px 8px}
.tareas a{color:var(--ciruela)}
.tabla{width:100%;border-collapse:collapse;margin-top:var(--s2)}
.tabla th,.tabla td{text-align:left;padding:12px 8px;border-bottom:1px solid var(--opalo);font-size:17px}
.tabla th{font:600 13px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--gris)}
.tabla td:nth-child(n+2),.tabla th:nth-child(n+2){text-align:right;font-variant-numeric:tabular-nums}
.tabla tfoot td{font-weight:700;border-top:2px solid var(--ciruela)}
.ref{display:inline-block;background:var(--terra);color:var(--tinta);padding:4px 10px;font:700 12px/1.2 var(--sans);letter-spacing:.06em;text-transform:uppercase}
.nota{margin-top:var(--s2);font-size:16px;color:var(--gris)}
.prosa{max-width:74ch;padding-bottom:var(--s5)}
.prosa h2{font-size:clamp(28px,3vw,40px);margin:var(--s5) 0 var(--s2)}
.prosa h3{font-size:clamp(22px,2vw,28px);margin:var(--s4) 0 var(--s1);color:var(--ciruela)}
.prosa p,.prosa ul,.prosa ol{margin-top:var(--s2);color:var(--suave)}
.prosa ul,.prosa ol{padding-left:1.2em}
.prosa li{margin-top:var(--s1)}
.prosa a{color:var(--ciruela);text-underline-offset:3px}
.prosa table{border-collapse:collapse;width:100%;margin-top:var(--s2);display:block;overflow-x:auto}
.prosa th,.prosa td{border-bottom:1px solid var(--opalo);padding:10px 8px;text-align:left}
.relac{padding:var(--s5) 0 var(--s7)}
.relac h2{font-size:clamp(26px,2.6vw,36px);margin-bottom:var(--s2)}
.relac ul{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:var(--s2)}
.relac a{display:inline-flex;align-items:center;min-height:56px;padding:0 var(--s3);border:2px solid var(--ciruela);color:var(--ciruela);text-decoration:none;font:600 17px var(--sans)}
.relac a:hover{background:var(--ciruela);color:#fff}
.nodisp-en{display:inline-flex;align-items:center;min-height:44px;padding:0 var(--s2);border:1px dashed var(--gris);color:var(--gris);font:500 15px var(--sans);margin-left:var(--s1);cursor:not-allowed}
.cta-pres{background:var(--ciruela);color:#fff;padding:var(--s6);display:grid;grid-template-columns:1fr auto;gap:var(--s4);align-items:center}
.cta-pres h2{color:#fff}.cta-pres h2 em{color:var(--terra-luz)}
.cta-pres p{margin-top:var(--s2);color:var(--lila-t);max-width:52ch}
.raiz{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--s5) var(--s2);background:var(--opalo)}
.raiz h1{color:var(--ciruela);font-size:clamp(40px,7vw,72px)}
.raiz p{margin-top:var(--s2);max-width:46ch;color:var(--suave)}
.idiomas{list-style:none;padding:0;margin-top:var(--s4);display:grid;gap:var(--s2);width:min(100%,420px)}
.idiomas a,.idiomas span{display:flex;align-items:center;justify-content:space-between;min-height:64px;padding:0 var(--s3);font:600 20px var(--sans);text-decoration:none}
.idiomas a{background:var(--ciruela);color:#fff}
.idiomas a:hover{background:var(--ciruela-n)}
.idiomas span{border:2px dashed var(--gris);color:var(--gris)}
.e404{padding:var(--s7) 0}
.hero-bg img,.ph img{background:var(--opalo)}
@media (max-width:1100px){.cont{grid-template-columns:1fr}.cta-pres{grid-template-columns:1fr;padding:var(--s4)}}
@media (max-width:760px){.herr{padding:var(--s3) 16px}.fila{grid-template-columns:1fr}.pagehead p{font-size:18px}.nodisp-en{margin:var(--s2) 0 0;justify-content:center}.tabla th,.tabla td{font-size:16px;padding:10px 4px}}
@media print{
  @page{margin:16mm}
  body{font-size:12pt;color:#000}
  .skip,.aviso-top,header.top,footer,.bc,.noprint,.relac,.acciones,.herr form,.disp,.prosa,.sello,.btn{display:none!important}
  .pagehead{border:0;padding:0 0 8pt}.pagehead p{font-size:11pt}
  .bloque{padding-top:8pt}
  .herr{background:none;padding:0}
  .cont{display:block}
  .resumen{border:1px solid #000;margin-bottom:8pt;break-inside:avoid}
  .etapa{break-inside:avoid;padding:8pt 0}
  .etapa .est{background:none!important;border:1px solid #000;color:#000!important}
  .tareas li{border-bottom:1px solid #999}
  .tareas input{appearance:auto;width:14pt;height:14pt}
  .tareas label{min-height:0;padding:4pt 0}
  a{text-decoration:none;color:#000}
  .tabla th,.tabla td{border-bottom:1px solid #999}
  .solo-print{display:block!important}
}
.solo-print{display:none}

/* Espacios de anuncios reservados: discretos, con etiqueta "Publicidad", espacio fijo para no mover la página (CLS). Ocultos con [hidden] hasta activarlos. */
.pub{margin:40px auto;max-width:980px;padding:14px 16px 18px;border:1px dashed color-mix(in srgb,var(--ciruela,#4A1D3F) 22%,transparent);border-radius:4px;background:#fff}
.pub[hidden]{display:none}
.pub__eti{display:block;font:600 11px/1 Figtree,system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#6b6b6b;margin-bottom:10px;text-align:center}
.pub__slot{min-height:var(--pub-min,120px);display:flex;align-items:center;justify-content:center}
.pub--rectangulo .pub__slot{max-width:336px;margin:0 auto}

/* ===== Licencia de matrimonio V1: herramienta, estado y condado ===== */
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
#sug li{list-style:none;min-height:48px;padding:6px var(--s2);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:var(--s2);font:500 17px var(--sans)}
#sug li[aria-selected=true],#sug li:hover{background:var(--opalo)}
#sug .sug-e{font:600 13px var(--sans);color:var(--gris);text-align:right}#sug .sug-e.ok{color:var(--terra-t)}
#msg{margin-top:var(--s2);padding:var(--s2);background:var(--opalo);color:var(--ciruela)}#msg[hidden]{display:none}
.lnk-btn{background:none;border:0;padding:0 4px;min-height:44px;color:var(--ciruela);font:700 17px var(--sans);text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.herr .buscador{max-width:720px}
.ubic{margin-top:var(--s3)}.ubic[hidden]{display:none}
.fila-ubic{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s2)}
.fila-ubic .btn,.ubic-sinjs .btn{min-height:48px;text-decoration:none}
.btn.desactivada{opacity:.75;border-style:dashed}
.aviso-ubic{margin-top:var(--s2);max-width:70ch;font-size:16px;line-height:1.5;color:var(--suave)}
.aviso-ubic a,.aviso a,.ver a{color:var(--ciruela);text-underline-offset:3px}
.ubic-res{margin-top:var(--s1);color:var(--ciruela);font-weight:600}
.ubic-res:empty{display:none}
.ultimo{margin-top:var(--s1)}
.atajos{margin-top:var(--s3)}
.chips{display:flex;flex-wrap:wrap;gap:var(--s1);margin-top:var(--s1)}
.chips a,.chips-chicos a{min-height:44px;min-width:44px;padding:0 var(--s2);display:inline-flex;align-items:center;justify-content:center;border:2px solid var(--ciruela);background:#fff;color:var(--ciruela);font:600 16px var(--sans);text-decoration:none}
.chips a:hover,.chips-chicos a:hover{background:var(--ciruela);color:#fff}
.chips-chicos{display:flex;flex-wrap:wrap;gap:var(--s1);margin:var(--s1) 0 var(--s3)}
.res-vivo{scroll-margin-top:88px;outline:0}
.res-vivo:not(:empty){margin-top:var(--s4)}
.ver-guia{margin-top:var(--s2)}
.resultado{border:2px solid var(--ciruela);padding:var(--s3);background:#fff;margin-top:var(--s3)}
.resultado>h2{font-size:clamp(24px,2.4vw,34px);margin-bottom:var(--s1);outline:0}
.resultado h3{font:500 20px/1.2 var(--serif);color:var(--ciruela);margin:var(--s3) 0 var(--s1)}
.resultado ul{padding-left:1.1em}.resultado li{margin-top:6px}
.sello-ver{margin:0 0 var(--s2);font-size:16px;color:var(--suave)}
.sello-pill{display:inline-block;padding:2px 10px;border:1.5px solid var(--terra-t);color:var(--terra-t);font:700 12px var(--sans);letter-spacing:.1em;text-transform:uppercase;margin-right:6px}
.rapidos{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s2)}
.dato{background:var(--opalo);padding:var(--s2)}
.dato dt{color:var(--gris);margin-bottom:6px}
.dato dd{font:500 18px/1.4 var(--serif);color:var(--ciruela)}
.dato .nd,.nd{font:italic 400 16px/1.4 var(--sans);color:var(--gris)}
.rapidos--chico .dato{padding:12px}.rapidos--chico .dato dd{font-size:16px}
.tarjeta-estado{margin-top:var(--s3);padding-top:var(--s1);border-top:2px dashed var(--ciruela)}
.oficina{margin-top:var(--s3)}
.oficina .btn{display:inline-flex;text-decoration:none;margin-top:var(--s1)}
.nota-res{margin-top:var(--s2);color:var(--suave)}
.acciones-res{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s2);margin-top:var(--s3);align-items:center}
.acciones-res .btn{min-height:48px}
.copiado{font-weight:600;color:var(--terra-t)}
.aviso{margin-top:var(--s2);padding:var(--s2);background:var(--opalo);border-left:6px solid var(--terra-t);color:var(--ciruela)}
.lic-buscar{margin-top:var(--s4)}
.prosa--lic{margin-top:var(--s4);max-width:78ch}
.prosa--lic h2{font-size:clamp(26px,2.6vw,36px)}
.prosa--lic details{border-bottom:1px solid var(--opalo);padding:var(--s1) 0}
.prosa--lic summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600;color:var(--ciruela)}
.prosa--lic details p{margin:var(--s1) 0 var(--s2)}
.lista-cond,.lista-grupos{list-style:none;padding:0!important;display:grid;gap:var(--s1) var(--s3);grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.lista-cond li{padding:12px 0;border-bottom:1px solid var(--opalo)}
.lista-cond a{font-weight:700;color:var(--ciruela)}
.lista-cond .sub{display:block;font-size:15px;color:var(--gris);margin-top:2px}
.lista-grupos{grid-template-columns:1fr}.lista-grupos li{margin:0}.lista-grupos a{color:var(--ciruela)}
.ciudad{color:var(--gris);font-size:15px}
.tag-v,.tag-p,.tag-n{display:inline-block;font:600 13px/1.4 var(--sans);padding:0 8px}
.tag-v{background:var(--terra-luz);color:var(--tinta)}.tag-p{border:1.5px solid var(--ciruela);color:var(--ciruela)}.tag-n{color:var(--gris);font-style:italic}
.fuentes{padding-left:1.2em}.fuentes li{margin-top:8px}
.legal-pag{margin-top:var(--s4);font-size:15px;color:var(--gris)}
.mapa-caja{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:var(--s4);align-items:start;margin-top:var(--s2)}
.mapa-fig{margin:0}
.mapa-svg{width:100%;height:auto}
.mapa-svg a{cursor:pointer}
.mapa-svg path{stroke:var(--ciruela);stroke-width:1;stroke-linejoin:round;transition:fill 150ms}
.st-v path{fill:var(--terra-luz)}.st-p path{fill:var(--opalo)}.st-n path{fill:#fff;stroke-dasharray:3 2}
.mapa-svg a:hover path{fill:var(--terra)}
.mapa-svg a:focus-visible{outline:none}.mapa-svg a:focus-visible path{stroke:var(--terra-t);stroke-width:4;fill:var(--terra)}
.leyenda{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s2);align-items:center;font-size:15px;color:var(--suave);margin-top:var(--s1)}
.ley{display:inline-block;width:18px;height:18px;border:1.5px solid var(--ciruela)}
.ley-v{background:var(--terra-luz)}.ley-p{background:var(--opalo)}.ley-n{background:#fff;border-style:dashed}
.panel-estado{padding:var(--s2);border:2px solid var(--ciruela);background:#fff;outline:0}
.panel-estado[hidden]{display:none}
.panel-estado h3{font:500 22px var(--serif);color:var(--ciruela);margin-bottom:var(--s1)}
.panel-estado .btn{text-decoration:none;display:inline-flex;min-height:48px}
.panel-estado .filtro{width:100%;min-height:48px;margin:var(--s2) 0;padding:0 var(--s2);border:2px solid var(--ciruela);font:500 17px var(--sans)}
.panel-estado .lista-cond{grid-template-columns:1fr;max-height:320px;overflow:auto}
.lista-az{list-style:none;padding:0;columns:3 240px;column-gap:var(--s4);margin-top:var(--s2)}
.lista-az li{break-inside:avoid;padding:6px 0;min-height:44px}
.lista-az a{font-weight:700;color:var(--ciruela);display:inline-block;min-height:32px}
.lista-az .nom{font-weight:700;color:var(--suave)}
.lista-az li:target{background:var(--opalo)}
.lista-cond li:target{background:var(--opalo)}
@media (max-width:900px){.mapa-caja{grid-template-columns:1fr}}
@media (max-width:560px){.rapidos{grid-template-columns:1fr}.resultado{padding:var(--s2)}.lista-az{columns:1}}
@media print{
  .herr,.lic-buscar,.mapa-caja,#mapa-sec,.ubic,.atajos,.pub,.relac,.noprint,.acciones-res,.panel-estado,#sug,#msg{display:none!important}
  .resultado{border:0;padding:0}
  .prosa--lic details>*{display:block!important}
  .fuentes a[href^="http"]::after{content:" (" attr(href) ")";font-size:10pt;word-break:break-all}
  .prosa--lic{max-width:none}
}

/* ===== Herramientas v1: Presupuesto y Checklist (estilo D2-B) ===== */
.t-app{background:var(--opalo);padding:var(--s4)}
.t-app h2,.t-app h3{color:var(--ciruela)}
.t-app h3{font-size:clamp(22px,2vw,28px);margin:var(--s3) 0 var(--s1)}
.t-app input[type=text],.t-app input[type=number],.t-app input[type=date],.t-app select{width:100%;min-height:48px;padding:0 12px;border:2px solid var(--ciruela);background:#fff;color:var(--ciruela);font:500 17px var(--sans);border-radius:0}
.t-app input:focus,.t-app select:focus,.t-app button:focus-visible{outline:3px solid var(--terra-t);outline-offset:2px}
.t-app input[aria-invalid=true]{border-color:#9b1c1c}
.t-app .err{display:block;color:#8a1c1c;font:600 14px var(--sans);margin-top:4px}.t-app .err[hidden]{display:none}.t-app .err:empty{display:none}
.t-app .peq{min-height:44px;padding:0 var(--s2);font-size:16px}
.t-app .grande{font:500 20px/1.3 var(--serif);color:var(--ciruela)}
.franja{background:var(--terra-luz);color:var(--tinta);padding:12px var(--s2);margin-bottom:var(--s2);font-weight:600}.franja[hidden]{display:none}
.datos-boda{background:#fff;border:2px solid var(--ciruela);margin-bottom:var(--s2)}
.datos-boda>summary{min-height:48px;padding:12px var(--s2);font:600 17px var(--sans);cursor:pointer;color:var(--ciruela)}
.datos-boda>div{padding:0 var(--s2) var(--s2)}
.fila-db{grid-template-columns:repeat(4,1fr);gap:var(--s2)}
.campo-db{display:flex;flex-direction:column;gap:6px;min-width:0}
.campo-db .eti{color:var(--gris)}
.op{display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer}.op input{width:24px;height:24px;accent-color:var(--ciruela);flex:none}
.op.grande{min-height:56px;padding:0 var(--s2);background:#fff;border:2px solid var(--ciruela);margin-bottom:var(--s1)}
.radios{display:flex;flex-direction:column}
.sug-mini{position:absolute;z-index:12;left:0;right:0;list-style:none;padding:0;background:#fff;box-shadow:0 12px 32px -12px rgba(40,10,35,.45);border:1px solid var(--opalo)}
.sug-mini[hidden]{display:none}
.sug-mini li{min-height:48px;padding:6px var(--s2);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:var(--s2);font:500 17px var(--sans)}
.sug-mini li[aria-selected=true],.sug-mini li:hover{background:var(--opalo)}
.sug-mini .sug-e{font:600 13px var(--sans);color:var(--gris)}
[data-combo]{position:relative}
.barra{height:12px;background:#fff;border:2px solid var(--ciruela);margin-top:var(--s1)}.barra i{display:block;height:100%;background:var(--terra);transition:width 200ms var(--ease)}
.res-g{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s2)}
.res-g .resumen{padding:var(--s2)}
.ref-t{max-width:80ch}
.campo-tope{max-width:260px;margin-top:var(--s2)}
.escen{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s2);align-items:center;margin-top:var(--s3)}
.escen .nota{flex-basis:100%;margin:0}
.seg{display:flex;flex-wrap:wrap;gap:6px}
.chip-e{min-height:44px;padding:0 var(--s2);background:#fff;border:2px solid var(--ciruela);color:var(--ciruela);font:600 16px var(--sans);cursor:pointer}
.chip-e[aria-pressed=true]{background:var(--ciruela);color:#fff}
.chips-w{display:flex;flex-wrap:wrap;gap:8px;margin:var(--s2) 0}
.escen input[type=number]{width:120px}
.tabla.comp th,.tabla.comp td{text-align:right}.tabla.comp th:first-child{text-align:left}
table.partidas{background:#fff}
table.partidas th{white-space:nowrap}
table.partidas td{vertical-align:top;font-size:16px}
table.partidas td:nth-child(n+2),table.partidas th:nth-child(n+2){text-align:left}
table.partidas input{max-width:150px}
table.partidas small{display:block;color:var(--gris)}
table.partidas tr.sub .c-nom{padding-left:var(--s3)}
.nom{display:flex;align-items:center;gap:6px}
.p-nombre{background:none;border:0;font:700 17px var(--sans);color:var(--ciruela);text-align:left;min-height:44px;cursor:pointer;text-decoration:underline;text-decoration-color:var(--terra-luz);text-underline-offset:4px;padding:0}
.in-nombre{max-width:260px}
.asa,.btn-mas{min-width:44px;min-height:44px;border:2px solid transparent;background:none;color:var(--ciruela);font:700 20px var(--sans);cursor:grab;touch-action:none}
.btn-mas{cursor:pointer;border-color:var(--ciruela);background:#fff;touch-action:auto}
tr.arrastrando{opacity:.5}tr.destino{outline:3px dashed var(--terra-t)}
.menu-p{position:absolute;z-index:50;width:180px;background:#fff;border:2px solid var(--ciruela);box-shadow:0 14px 30px -10px rgba(40,10,35,.5);display:flex;flex-direction:column}
.menu-p button{min-height:44px;text-align:left;padding:0 var(--s2);border:0;background:none;font:600 16px var(--sans);color:var(--ciruela);cursor:pointer}
.menu-p button:hover:not([disabled]),.menu-p button:focus-visible{background:var(--opalo)}.menu-p button[disabled]{color:#8a808a}
tr.det td{background:var(--opalo)}
.det-g{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s2)}
.subs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:var(--s2)}.subs input{max-width:240px}
.lista-pagos{list-style:none;padding:0}.lista-pagos li{padding:10px 0;border-bottom:1px solid #fff}.lista-pagos li.venc{font-weight:700;color:#8a1c1c}
.acc-p{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s4);align-items:flex-start}
.menu-exp{display:flex;flex-wrap:wrap;gap:var(--s1);flex-basis:100%;padding:var(--s2);background:#fff;border:2px solid var(--ciruela)}.menu-exp[hidden]{display:none}
.t-app .btn-cuenta{background:none;border:2px dashed var(--ciruela);color:var(--ciruela);min-height:56px;padding:0 var(--s3);font:700 17px var(--sans);cursor:pointer;text-align:left}
.cuenta{margin-top:var(--s3)}.cuenta p{max-width:70ch;margin:var(--s1) 0}
.arranque .tres-b{display:flex;flex-wrap:wrap;gap:var(--s2);margin:var(--s3) 0}
.ar-form{background:#fff;padding:var(--s3);border:2px solid var(--ciruela);margin-top:var(--s2)}.ar-form[hidden]{display:none}
#avisos{position:fixed;left:50%;transform:translateX(-50%);bottom:84px;z-index:60;max-width:min(560px,calc(100vw - 32px))}
#avisos[hidden]{display:none}
.aviso-t{display:flex;gap:var(--s2);align-items:center;justify-content:space-between;background:var(--tinta);color:#fff;padding:12px var(--s2);box-shadow:0 14px 30px -10px rgba(0,0,0,.5)}
.aviso-t .lnk-btn{color:var(--terra-luz)}
.guardado{margin:0 0 var(--s1);min-height:24px}
/* checklist */
.plan-grid{display:grid;grid-template-columns:1fr;gap:var(--s4)}
.w-cab .barra{margin-bottom:var(--s3)}
fieldset.w-paso{border:0;padding:0;margin:0;min-width:0}
fieldset.w-paso legend{font:500 clamp(26px,3vw,38px)/1.1 var(--serif);color:var(--ciruela);padding:0;margin-bottom:var(--s2)}
fieldset.w-paso legend:focus{outline:0}
.aviso-priv{background:#fff;border-left:6px solid var(--terra);padding:var(--s2);margin-bottom:var(--s2);max-width:70ch}
.c2{background:#fff;padding:var(--s3);border:2px solid var(--ciruela)}.c2 ul{padding-left:1.2em;margin:var(--s2) 0}.c2 li{margin-top:var(--s1)}
.plan-cab h2{font-size:clamp(28px,3.4vw,44px)}
.alerta-lic{background:#fbe3e0;border:2px solid #8a1c1c;color:#4d0d0d;padding:var(--s2);margin:var(--s2) 0}
.etapa-d{background:#fff;border-top:3px solid var(--ciruela);margin-top:var(--s2);padding:0 var(--s2)}
.etapa-d>summary{display:flex;justify-content:space-between;align-items:center;min-height:56px;cursor:pointer;list-style:none}
.etapa-d>summary h3{margin:0}
.etapa-d .est{font:700 13px var(--sans);padding:6px 10px;background:var(--opalo);color:var(--ciruela)}
.tareas-l{list-style:none;padding:0}
.tarea{display:grid;grid-template-columns:44px 1fr 44px;gap:8px;align-items:start;padding:10px 0;border-top:1px solid var(--opalo)}
.tarea .cb{display:flex;min-height:44px;min-width:44px;align-items:center;justify-content:center;cursor:pointer}
.tarea input[type=checkbox]{width:28px;height:28px;accent-color:var(--ciruela)}
.tarea.hecha .t-tit{text-decoration:line-through;color:var(--gris)}
.t-tit{background:none;border:0;padding:0;min-height:44px;text-align:left;font:600 17px/1.35 var(--sans);color:var(--tinta);cursor:pointer}
.t-tit:disabled{cursor:default;color:var(--tinta)}
.t-meta{display:flex;flex-wrap:wrap;gap:6px;margin:0;font-size:15px;color:var(--gris)}
.t-fecha.atr{color:#8a1c1c;font-weight:700}
.etq{font:700 12px var(--sans);letter-spacing:.06em;text-transform:uppercase;background:var(--opalo);color:var(--ciruela);padding:3px 8px}.etq.nueva{background:var(--terra);color:var(--tinta)}
.t-extra,.t-nota{font-size:15px;margin:4px 0;color:var(--suave)}
.porque summary{font-size:15px;color:var(--ciruela);cursor:pointer;min-height:44px;display:flex;align-items:center}.porque p{font-size:15px;color:var(--suave)}
.ed{display:flex;flex-direction:column;gap:8px}
#ahora{position:fixed;left:0;right:0;bottom:0;z-index:35;background:var(--ciruela);color:#fff;box-shadow:0 -10px 24px -12px rgba(40,10,35,.6)}
#ahora[hidden]{display:none}
.ahora-btn{display:flex;width:100%;min-height:56px;align-items:center;justify-content:space-between;gap:12px;padding:0 var(--s2);background:none;border:0;color:#fff;font:700 16px var(--sans);text-align:left;cursor:pointer}
.ahora-t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ahora-l{display:none;list-style:none;padding:0 var(--s2) var(--s2);max-height:50vh;overflow:auto;background:#fff;color:var(--tinta)}
#ahora.abierto .ahora-l{display:block}#ahora.abierto .ahora-btn span[aria-hidden]{transform:rotate(180deg)}
.ahora-l li{display:flex;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--opalo)}
.ahora-l .cb{display:flex;min-width:44px;min-height:44px;align-items:center;justify-content:center}.ahora-l input{width:26px;height:26px;accent-color:var(--ciruela)}
body:has(#ahora:not([hidden])){padding-bottom:64px}html:has(#ahora:not([hidden])){scroll-padding-bottom:76px}
.fila-cer{margin-top:var(--s2);border-top:1px solid var(--opalo);padding-top:var(--s2)}
.solo-print{display:none}
@media (min-width:900px){
  .plan-grid{grid-template-columns:minmax(0,1fr) 320px;align-items:start}
  #ahora{position:sticky;top:96px;bottom:auto;grid-column:2;grid-row:1;border:2px solid var(--ciruela);background:#fff;color:var(--tinta);box-shadow:none}
  .ahora-btn{color:var(--ciruela);cursor:default}.ahora-btn span[aria-hidden]{display:none}
  .ahora-l,#ahora.abierto .ahora-l{display:block;max-height:none}
  .ahora-t{white-space:normal}
  body:has(#ahora:not([hidden])){padding-bottom:0}html:has(#ahora:not([hidden])){scroll-padding-bottom:0}
  #avisos{bottom:24px}
}
@media (max-width:1100px){.fila-db,.res-g,.det-g{grid-template-columns:repeat(2,1fr)}}
@media (max-width:899px){
  .t-app{padding:var(--s2)}
  table.partidas thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  table.partidas,table.partidas tbody,table.partidas tr,table.partidas td{display:block;width:100%}
  table.partidas tr.part,table.partidas tr.sub{border:2px solid var(--ciruela);margin:12px 0 0;padding:8px 12px;background:#fff}
  table.partidas tr.sub{margin-left:16px;width:calc(100% - 16px);border-style:dashed}
  table.partidas tr.det{margin-left:0;padding:8px 0}
  table.partidas td{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:6px 0;border:0}
  table.partidas td::before{content:attr(data-label);font:600 12px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--gris);flex:none}
  table.partidas td.c-nom::before,table.partidas td.c-mas::before{content:none}
  table.partidas td.c-nom{padding-left:0}table.partidas tr.sub .c-nom{padding-left:0}
  table.partidas td[colspan]{display:block}table.partidas td[colspan]::before{content:none}
  table.partidas td:not(.c-nom):not(.c-mas):not([colspan]){text-align:right}
  table.partidas input{max-width:140px}
}
@media (max-width:560px){.fila-db,.res-g,.det-g{grid-template-columns:1fr}.res-g{grid-template-columns:1fr 1fr}.tarea{grid-template-columns:44px 1fr 44px}}
@media (prefers-reduced-motion:reduce){.barra i{transition:none}}
@media print{
  .herr.imprimible{display:block!important;background:none;padding:0}
  .t-app .noprint,.datos-boda,.escen,.menu-p,#avisos,#ahora,.chips-w,#btn-abrir-todas,.t-app .btn-mas,.asa,.cuenta,.franja,.alerta-lic .btn,.etapa-d>summary .est{display:none!important}
  .t-app .solo-print{display:block!important;margin-bottom:8pt;font-weight:700}
  .t-app{background:none;padding:0}
  .plan-grid{display:block}
  .etapa-d{break-inside:avoid;border-top:1px solid #000;padding:0}
  .etapa-d>summary{min-height:0;list-style:none}
  .tarea{grid-template-columns:20pt 1fr;border-top:1px solid #999;break-inside:avoid}
  .tarea .cb input{display:none}
  .tarea .cb::before{content:"☐";font-size:16pt;line-height:1}
  .tarea.hecha .cb::before{content:"☑"}
  .porque{display:none}
  table.partidas input{border:0;padding:0;background:none;max-width:none;font-size:11pt}
  table.partidas tr.det{display:none}
  .res-g{grid-template-columns:repeat(4,1fr)}
}

/* sin atributos style (CSP sin 'unsafe-inline') */
.min-chk{min-height:260px}.min-pres{min-height:320px}
.eti-luz{color:var(--terra-luz)}.eti-terra{color:var(--terra-t)}.h1-404{color:var(--ciruela)}.p-404{margin-top:16px;max-width:52ch}
.pub--banda .pub__slot{min-height:120px}.pub--rectangulo .pub__slot{min-height:280px}

/* ===== Aviso de cookies (D2 Matasellos) · fijo abajo, no mueve el diseño ===== */
.ap-cookies{position:fixed;z-index:50;left:var(--s1);right:var(--s1);bottom:var(--s1);background:#fff;color:var(--tinta);border:2px solid var(--ciruela);outline:1px dashed var(--terra-t);outline-offset:-7px;padding:var(--s2) var(--s2) var(--s2);display:flex;flex-direction:column;gap:12px;font:500 15px/1.4 var(--sans);box-shadow:0 4px 18px rgba(46,15,39,.18)}
.ap-texto{margin:0}
.ap-mas{color:var(--ciruela);font-weight:600;text-decoration:underline;text-underline-offset:3px;display:inline-block;padding:12px 0;margin:-12px 0}
.ap-botones{display:flex;gap:var(--s1)}
.ap-btn{flex:1 1 0;min-height:48px;min-width:44px;padding:0 var(--s2);background:#fff;color:var(--ciruela);border:2px solid var(--ciruela);font:700 16px/1.2 var(--sans);cursor:pointer}
.ap-btn:hover{background:var(--opalo)}
.ap-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ap-con-aviso body{padding-bottom:calc(var(--ap-alto,0px) + var(--s3))}
@media (min-width:720px){
  .ap-cookies{left:50%;right:auto;bottom:var(--s2);width:min(760px,calc(100% - 32px));transform:translateX(-50%);flex-direction:row;align-items:center;gap:var(--s3)}
  .ap-botones{flex:0 0 auto}.ap-btn{flex:0 0 120px}
}
@media print{.ap-cookies{display:none}}

/* ===== Calidez humana: fondo crema, fotos con estampilla y anuncios discretos ===== */
main.calido{background:linear-gradient(180deg,var(--crema) 0,#fff 640px)}
main.calido .pagehead{border-bottom-color:var(--terra)}
.ph-grid{display:grid;grid-template-columns:1fr;gap:var(--s3)}
.ph-txt{min-width:0}
.lugar{position:relative;margin:0;width:100%;aspect-ratio:16/7;background:var(--opalo)}
.lugar .ph{position:absolute;inset:0}
.lugar-eti{position:absolute;left:var(--s2);bottom:var(--s2);z-index:2;background:#fff;color:var(--ciruela);padding:6px 12px;font:700 13px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase}
.lugar--herr{display:none}
.cinta-fotos{padding-top:var(--s5)}
.cinta-fotos-in{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2);align-items:stretch}
.cinta-fotos .ph{aspect-ratio:4/3}
.cinta-fotos .ph img{position:absolute;inset:0}
.cinta-fotos-txt{grid-column:1/-1;font:italic 400 clamp(20px,2.2vw,28px)/1.25 var(--serif);color:var(--ciruela);text-align:center;padding:var(--s2) 0 0}
@media (min-width:900px){
  .ph-grid{grid-template-columns:repeat(12,1fr);align-items:center;gap:var(--g)}
  .ph-txt{grid-column:1/8}
  .ph-grid>.lugar{grid-column:9/13;aspect-ratio:10/7}
  .lugar--herr{display:block}
  .cinta-fotos-in{grid-template-columns:1fr 1fr 1.2fr;gap:var(--s3);align-items:center}
  .cinta-fotos-txt{grid-column:auto;text-align:left;padding:0 var(--s2)}
}
@media (max-width:899px){.pagehead .lugar:not(.lugar--herr){margin-top:var(--s1)}}
/* anuncios: un bloque más, sin marco ni protagonismo */
.pub{max-width:728px;margin:var(--s5) auto;padding:var(--s1) 0;border:0;border-top:1px solid var(--opalo);border-bottom:1px solid var(--opalo);background:transparent}
.pub__eti{margin-bottom:var(--s1);color:var(--gris)}
@media print{.lugar,.cinta-fotos{display:none!important}}
