/* ============================================================
   Residencia Don Luis Christian — hoja de estilo
   Paleta derivada del logo (morado #834494 · verde #C0DF55 · naranja #E4930B)
   Contrastes verificados AA. Tipografias autoalojadas (Ley 21.719).
   ============================================================ */
:root{
  --noche:#33203A;        /* berenjena profunda: fondos oscuros y titulares */
  --ciruela:#6B3C7E;      /* morado de marca legible sobre claro (7.8:1) */
  --ciruela-cl:#8E5CA3;   /* SOLO decorativo: no usar como texto */
  --lila:#F3EDF6;
  --crema:#FCF9F4;
  --superficie:#F5EFE6;
  --ambar:#A85B08;        /* texto/boton: 4.8:1 sobre crema */
  --ambar-vivo:#E4930B;   /* SOLO sobre fondo oscuro (6:1 sobre noche) */
  --salvia:#5E7A45;
  --texto:#2E2430;
  --texto-med:#5C4D60;
  --borde:#E3D8E7;
  --borde-calido:#E8DECE;
  --papel:#FFFDF9;
  --sombra:0 1px 2px rgba(51,32,58,.05), 0 8px 24px -12px rgba(51,32,58,.16);
  --sombra-alta:0 2px 6px rgba(51,32,58,.07), 0 22px 48px -20px rgba(51,32,58,.28);
  --r:14px; --r-lg:22px;
  --env:1140px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion: no-preference){ html{scroll-behavior:smooth} }
body{
  margin:0; background:var(--crema); color:var(--texto);
  font-family:'Sarabun',system-ui,-apple-system,'Segoe UI',sans-serif;
  font-size:18px; line-height:1.68; letter-spacing:.005em;
  -webkit-font-smoothing:antialiased;
}
img,video{max-width:100%; height:auto; display:block}
a{color:var(--ciruela); text-decoration-thickness:1px; text-underline-offset:3px}
a:hover{color:var(--noche)}
h1,h2,h3,h4{font-family:'Brygada 1918',Georgia,serif; color:var(--noche); margin:0; line-height:1.14; letter-spacing:-.012em; font-weight:600}
p{margin:0 0 1.05em}
:focus-visible{outline:3px solid var(--ambar); outline-offset:3px; border-radius:4px}
::selection{background:var(--ciruela); color:#fff}

.env{width:min(100% - 40px, var(--env)); margin-inline:auto}
.sec{padding:clamp(56px,7vw,104px) 0}
.sec + .sec:not([style*=background]){padding-top:clamp(20px,2.4vw,34px)}
.sec-ap{padding:clamp(72px,9vw,128px) 0}
.tit-xl{font-size:clamp(34px,5.4vw,60px)}
.tit-lg{font-size:clamp(28px,3.8vw,42px)}
.tit-md{font-size:clamp(22px,2.5vw,29px)}
.tit-sm{font-size:clamp(19px,2vw,22px)}
.bajada{font-size:clamp(18px,1.6vw,20.5px); color:var(--texto-med); max-width:62ch; line-height:1.66}
.rotulo{
  font-family:'Sarabun',sans-serif; font-size:13px; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ambar); margin:0 0 16px; display:flex; align-items:center; gap:10px;
}
.rotulo::before{content:""; width:26px; height:2px; background:var(--ambar-vivo); flex:none}
.rotulo.claro{color:var(--ambar-vivo)}
.centrado{text-align:center}
.centrado .rotulo{justify-content:center}
.centrado .bajada{margin-inline:auto}

/* ---------- botones (objetivo tactil >=48px) ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  min-height:52px; padding:13px 26px; border-radius:999px; cursor:pointer;
  font-family:'Sarabun',sans-serif; font-size:17px; font-weight:600; line-height:1.2;
  text-decoration:none; border:1.5px solid transparent; transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.btn:hover{transform:translateY(-2px)}
.btn-primario{background:var(--ambar); color:#fff; box-shadow:0 10px 22px -12px rgba(168,91,8,.85)}
.btn-primario:hover{background:#8F4C06; color:#fff; box-shadow:0 14px 28px -12px rgba(168,91,8,.9)}
.btn-oscuro{background:var(--noche); color:#FCF9F4}
.btn-oscuro:hover{background:#221529; color:#fff}
.btn-linea{border-color:var(--borde); background:var(--papel); color:var(--noche)}
.btn-linea:hover{border-color:var(--ciruela); color:var(--ciruela); background:#fff}
.btn-claro{background:#FCF9F4; color:var(--noche)}
.btn-claro:hover{background:#fff; color:var(--noche)}
.btn-fantasma{border-color:rgba(252,249,244,.42); color:#FCF9F4}
.btn-fantasma:hover{border-color:#FCF9F4; color:#fff; background:rgba(252,249,244,.08)}
.btns{display:flex; flex-wrap:wrap; gap:14px; align-items:center}

/* ---------- navegacion ---------- */
.nav{position:sticky; top:0; z-index:60; background:rgba(252,249,244,.93); border-bottom:1px solid transparent; transition:box-shadow .2s, border-color .2s}
@supports (backdrop-filter:blur(8px)){ .nav{backdrop-filter:blur(12px) saturate(1.3)} }
.nav.sombra{box-shadow:0 1px 0 var(--borde), 0 10px 26px -20px rgba(51,32,58,.4); border-color:var(--borde)}
.nav-in{display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:76px}
.marca{display:flex; align-items:center; gap:11px; text-decoration:none; flex:none}
.marca img{width:40px; height:40px}
.marca-nom{display:block; font-family:'Brygada 1918',serif; font-size:19px; font-weight:700; color:var(--noche); line-height:1.1}
.marca-sub{display:block; font-size:11.5px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--ambar); margin-top:3px}
.nav-links ul{display:flex; gap:22px; align-items:center; list-style:none; margin:0; padding:0}
.nav-links a{color:var(--texto-med); text-decoration:none; font-size:16px; font-weight:500; padding:8px 2px; border-bottom:2px solid transparent; transition:color .15s, border-color .15s}
.nav-links a:hover{color:var(--noche); border-color:var(--borde)}
.nav-links a.activo{color:var(--ciruela); border-color:var(--ambar-vivo); font-weight:600}
.nav-cta{display:flex; align-items:center; gap:12px; flex:none}
.burger{display:none; width:48px; height:48px; border:1px solid var(--borde); border-radius:12px; background:var(--papel); cursor:pointer; padding:0; align-items:center; justify-content:center; flex-direction:column; gap:5px}
.burger span{display:block; width:20px; height:2px; background:var(--noche); border-radius:2px; transition:transform .22s, opacity .22s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.menu-movil{display:none; position:fixed; inset:76px 0 0; background:var(--crema); z-index:55; overflow-y:auto; padding:18px 20px 40px}
.menu-movil.abierto{display:block}
.menu-movil ul{list-style:none; margin:0 0 18px; padding:0}
.menu-movil a{display:block; padding:16px 4px; font-size:19px; color:var(--noche); text-decoration:none; border-bottom:1px solid var(--borde); font-weight:500}
.menu-movil a.activo{color:var(--ciruela); font-weight:700}
.mm-cta{display:flex; flex-direction:column; gap:12px; margin-top:8px}
.mm-cta .btn{width:100%}

/* ---------- hero ---------- */
.hero{position:relative; overflow:hidden; background:
   radial-gradient(900px 480px at 88% -8%, rgba(142,92,163,.16), transparent 62%),
   radial-gradient(700px 420px at 6% 100%, rgba(228,147,11,.11), transparent 60%), var(--crema);
   padding:clamp(30px,3.6vw,52px) 0 clamp(52px,6vw,84px)}
.hero-in{display:grid; grid-template-columns:1fr 1.02fr; gap:clamp(30px,4.5vw,64px); align-items:center}
.hero h1{font-size:clamp(36px,5.6vw,63px); line-height:1.07; letter-spacing:-.022em}
.hero h1 em{font-style:normal; color:var(--ciruela)}
.nw{white-space:nowrap}
@media (max-width:520px){ .nw{white-space:normal} }
.hero .bajada{margin-top:22px; font-size:clamp(18px,1.75vw,21px)}
.hero .btns{margin-top:32px}
.hero-nota{margin-top:24px; font-size:15.5px; color:var(--texto-med); display:flex; align-items:center; gap:9px}
.hero-nota svg{flex:none; color:var(--salvia)}

/* mosaico del hero: fotos verticales reales, como un album */
.mosaico{display:grid; grid-template-columns:1fr 1fr; gap:14px; align-items:start}
.mosaico figure{margin:0; background:var(--papel); padding:9px 9px 9px; border-radius:10px; box-shadow:var(--sombra-alta); border:1px solid var(--borde-calido)}
.mosaico img{border-radius:5px; width:100%; aspect-ratio:3/4; object-fit:cover}
.mosaico .alta img{aspect-ratio:3/4.35}
.mosaico .col{display:grid; gap:14px}
.mosaico .col:first-child{padding-top:26px}
.mosaico figure:nth-child(odd){transform:rotate(-.8deg)}
.mosaico figure:nth-child(even){transform:rotate(.7deg)}

/* ---------- certezas ---------- */
.certezas{background:var(--noche); color:#EFE6F2}
.certezas-in{display:grid; grid-template-columns:repeat(4,1fr); gap:0}
.certeza{padding:clamp(26px,3vw,38px) clamp(18px,2.2vw,30px); border-left:1px solid rgba(239,230,242,.16)}
.certeza:first-child{border-left:0; padding-left:0}
.certeza b{display:block; font-family:'Brygada 1918',serif; font-size:clamp(36px,4.4vw,52px); font-weight:700; color:var(--ambar-vivo); line-height:1}
.certeza span{display:block; font-size:16.5px; font-weight:600; color:#FCF9F4; margin-top:8px}
.certeza p{margin:9px 0 0; font-size:15px; line-height:1.55; color:rgba(239,230,242,.76)}

/* ---------- tarjetas ---------- */
.rejilla{display:grid; gap:22px}
.r2{grid-template-columns:repeat(2,1fr)}
.r3{grid-template-columns:repeat(3,1fr)}
.tarjeta{background:var(--papel); border:1px solid var(--borde-calido); border-radius:var(--r-lg); padding:clamp(24px,2.6vw,32px); box-shadow:var(--sombra); transition:transform .22s ease, box-shadow .22s ease}
.tarjeta:hover{transform:translateY(-3px); box-shadow:var(--sombra-alta)}
.tarjeta h3{margin-bottom:10px}
.tarjeta p{color:var(--texto-med); margin-bottom:0; font-size:16.8px}
.tarjeta .num{font-family:'Brygada 1918',serif; font-size:15px; font-weight:700; color:var(--ambar); letter-spacing:.08em; display:block; margin-bottom:12px}
.lista{list-style:none; margin:16px 0 0; padding:0}
.lista li{position:relative; padding-left:26px; margin-bottom:9px; font-size:16.4px; color:var(--texto-med); line-height:1.5}
.lista li::before{content:""; position:absolute; left:0; top:.62em; width:9px; height:9px; border-radius:50%; background:var(--salvia)}
.lista.clara li{color:rgba(239,230,242,.82)}
.lista.clara li::before{background:var(--ambar-vivo)}

/* ---------- filas alternadas (cuidados) ---------- */
.fila{display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4.5vw,64px); align-items:center; padding:clamp(34px,4vw,56px) 0; border-top:1px solid var(--borde)}
.fila:first-of-type{border-top:0}
.fila.inv .fila-img{order:-1}
.fila-img{position:relative}
.fila-img img{border-radius:var(--r-lg); box-shadow:var(--sombra-alta); width:100%; aspect-ratio:4/3.1; object-fit:cover}
.fila-img.vert img{aspect-ratio:4/4.2; max-height:600px; object-position:center 32%}
/* con foto vertical, la columna de imagen se angosta: si no, la foto crece
   tanto que el texto queda centrado contra un vacio. */
.fila:has(.fila-img.vert){grid-template-columns:1.12fr .88fr}
.fila.inv:has(.fila-img.vert){grid-template-columns:.88fr 1.12fr}

/* ---------- jornada (timeline) ---------- */
.jornada{position:relative; margin-top:44px}
.jornada::before{content:""; position:absolute; left:84px; top:12px; bottom:12px; width:2px; background:linear-gradient(var(--borde), var(--ambar-vivo), var(--borde))}
.hito{display:grid; grid-template-columns:70px 1fr; gap:38px; align-items:start; padding:20px 0; position:relative}
.hito-h{font-family:'Brygada 1918',serif; font-size:19px; font-weight:700; color:var(--ciruela); text-align:right; padding-top:2px}
.hito::after{content:""; position:absolute; left:78px; top:29px; width:14px; height:14px; border-radius:50%; background:var(--papel); border:3px solid var(--ambar-vivo); z-index:1}
.hito-c h3{font-size:21px; margin-bottom:6px}
.hito-c p{color:var(--texto-med); margin-bottom:0; font-size:16.8px}

/* ---------- galeria album ---------- */
.album{display:grid; grid-template-columns:repeat(4,1fr); gap:20px}
.album figure{margin:0; background:var(--papel); padding:10px 10px 0; border-radius:10px; border:1px solid var(--borde-calido); box-shadow:var(--sombra); transition:transform .25s ease, box-shadow .25s ease}
.album figure:hover{transform:translateY(-5px) rotate(0deg) !important; box-shadow:var(--sombra-alta); z-index:2}
.album figure:nth-child(4n+1){transform:rotate(-1deg)}
.album figure:nth-child(4n+2){transform:rotate(.8deg)}
.album figure:nth-child(4n+3){transform:rotate(-.5deg)}
.album figure:nth-child(4n+4){transform:rotate(1.1deg)}
.album img{border-radius:4px; width:100%; aspect-ratio:3/4; object-fit:cover}
.album figcaption{font-family:'Brygada 1918',serif; font-style:italic; font-size:15.5px; color:var(--texto-med); padding:11px 4px 13px; text-align:center; line-height:1.4}

/* ---------- video ---------- */
.video-caja{background:var(--papel); border:1px solid var(--borde-calido); border-radius:var(--r-lg); padding:14px; box-shadow:var(--sombra-alta)}
.video-caja video{border-radius:12px; width:100%; background:#1a1020}
.video-pie{display:flex; align-items:center; gap:13px; padding:15px 6px 4px}
.video-pie .ini{width:46px; height:46px; border-radius:50%; background:var(--lila); color:var(--ciruela); display:grid; place-items:center; font-family:'Brygada 1918',serif; font-size:20px; font-weight:700; flex:none}
.video-pie b{display:block; font-size:16.5px; color:var(--noche)}
.video-pie span{display:block; font-size:14.5px; color:var(--texto-med)}

/* ---------- testimonio ---------- */
.cita{background:var(--lila); border-radius:var(--r-lg); padding:clamp(28px,3.4vw,44px); border-left:5px solid var(--ciruela-cl)}
.cita blockquote{margin:0; font-family:'Brygada 1918',serif; font-size:clamp(19px,1.9vw,23px); line-height:1.58; color:var(--noche)}
.cita footer{margin-top:20px; font-size:16px; color:var(--texto-med)}
.cita footer b{color:var(--noche); display:block; font-size:16.5px}

/* ---------- FAQ ---------- */
.faq{border-top:1px solid var(--borde)}
.faq details{border-bottom:1px solid var(--borde)}
.faq summary{cursor:pointer; list-style:none; padding:22px 44px 22px 0; position:relative; font-family:'Brygada 1918',serif; font-size:clamp(18px,1.85vw,21px); font-weight:600; color:var(--noche); line-height:1.35}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:""; position:absolute; right:10px; top:31px; width:11px; height:11px; border-right:2.4px solid var(--ambar); border-bottom:2.4px solid var(--ambar); transform:rotate(45deg); transition:transform .22s}
.faq details[open] summary::after{transform:rotate(-135deg)}
.faq summary:hover{color:var(--ciruela)}
.faq-r{padding:0 40px 24px 0; color:var(--texto-med); font-size:17px; line-height:1.66}
.faq-r p:last-child{margin-bottom:0}
.faq-cat{font-size:13px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--ambar); margin:40px 0 4px}
.faq-cat:first-child{margin-top:0}

/* ---------- formulario ---------- */
.form{display:grid; gap:16px}
.campo label{display:block; font-size:15.5px; font-weight:600; color:var(--noche); margin-bottom:7px}
.campo input,.campo textarea,.campo select{
  width:100%; padding:14px 16px; min-height:52px; border:1.5px solid var(--borde); border-radius:12px;
  background:var(--papel); font-family:inherit; font-size:17px; color:var(--texto);
}
.campo textarea{min-height:128px; resize:vertical}
.campo input:focus,.campo textarea:focus,.campo select:focus{border-color:var(--ciruela); outline:none; box-shadow:0 0 0 3px rgba(107,60,126,.14)}
.consent{display:flex; gap:12px; align-items:flex-start; font-size:15.4px; color:var(--texto-med); line-height:1.5}
.consent input{width:22px; height:22px; margin:2px 0 0; flex:none; accent-color:var(--ciruela)}
.form-error{color:#A3231F; font-size:15px; margin:0; display:none}
.form-error.ver{display:block}

/* ---------- contacto / datos ---------- */
.datos{list-style:none; margin:0; padding:0}
.datos li{display:flex; gap:14px; align-items:flex-start; padding:15px 0; border-bottom:1px solid var(--borde)}
.datos li:last-child{border-bottom:0}
.datos svg{flex:none; color:var(--ciruela); margin-top:3px}
.datos b{display:block; font-size:14px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--texto-med)}
.datos a,.datos span{font-size:17.5px; color:var(--noche); text-decoration:none}
.datos a:hover{color:var(--ciruela); text-decoration:underline}

/* ---------- bloque oscuro / cierre ---------- */
.oscuro{background:var(--noche); color:#EFE6F2}
.oscuro h2,.oscuro h3{color:#FCF9F4}
.oscuro .bajada{color:rgba(239,230,242,.8)}
.oscuro .tarjeta{background:rgba(252,249,244,.055); border-color:rgba(239,230,242,.17); box-shadow:none}
.oscuro .tarjeta h3{color:#FCF9F4}
.oscuro .tarjeta p{color:rgba(239,230,242,.78)}
.cierre-in{display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(28px,4vw,56px); align-items:center}

/* ---------- migas ---------- */
.migas{font-size:14.5px; color:var(--texto-med); margin:0 0 20px}
.migas a{color:var(--texto-med); text-decoration:none}
.migas a:hover{color:var(--ciruela); text-decoration:underline}

/* ---------- pie ---------- */
.pie{background:var(--noche); color:rgba(239,230,242,.78); padding:clamp(48px,6vw,72px) 0 26px; font-size:16px}
.pie-in{display:grid; grid-template-columns:1.5fr 1fr 1fr 1.25fr; gap:clamp(26px,3.4vw,44px)}
.pie h4{color:#FCF9F4; font-size:16.5px; margin:0 0 15px; font-family:'Sarabun',sans-serif; font-weight:700; letter-spacing:.03em}
.pie ul{list-style:none; margin:0; padding:0}
.pie li{margin-bottom:10px; line-height:1.5}
.pie a{color:rgba(239,230,242,.78); text-decoration:none}
.pie a:hover{color:var(--ambar-vivo); text-decoration:underline}
.pie-lema{font-family:'Brygada 1918',serif; font-size:23px; color:#FCF9F4; line-height:1.28; margin:14px 0 10px}
.pie-desc{font-size:15.5px; line-height:1.6; color:rgba(239,230,242,.66); margin:0}
.pie-base{margin-top:40px; padding-top:22px; border-top:1px solid rgba(239,230,242,.17); display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; font-size:14.5px; color:rgba(239,230,242,.62)}
.redes{display:flex; gap:12px; margin-top:16px}
.redes a{width:42px; height:42px; border-radius:50%; border:1px solid rgba(239,230,242,.24); display:grid; place-items:center; color:rgba(239,230,242,.8)}
.redes a:hover{border-color:var(--ambar-vivo); color:var(--ambar-vivo)}

/* ---------- flotante WhatsApp + barra movil ---------- */
.wa{position:fixed; right:18px; bottom:18px; z-index:70; width:58px; height:58px; border-radius:50%; background:#25D366; color:#fff; display:grid; place-items:center; box-shadow:0 8px 24px -6px rgba(37,211,102,.6); transition:transform .2s}
.wa:hover{transform:scale(1.07); color:#fff}
.wa svg{width:31px; height:31px; fill:currentColor}
.barra-movil{display:none; position:fixed; left:0; right:0; bottom:0; z-index:65; background:rgba(252,249,244,.97); border-top:1px solid var(--borde); padding:10px 14px; gap:10px}
@supports (backdrop-filter:blur(8px)){ .barra-movil{backdrop-filter:blur(12px)} }
.barra-movil .btn{flex:1; min-height:50px; font-size:16px; padding:11px 14px}

/* ---------- aviso / nota honesta ---------- */
.aviso{background:var(--superficie); border:1px solid var(--borde-calido); border-left:4px solid var(--ambar-vivo); border-radius:12px; padding:20px 24px; font-size:16.2px; color:var(--texto-med); line-height:1.6}
.aviso b{color:var(--noche)}
.aviso p:last-child{margin-bottom:0}

/* ---------- objetivos tactiles: el publico de este sitio tiene 45-70 anos ----------
   Los enlaces en linea quedaban en 21-22px de alto. Se les da area de toque
   sin alterar el ritmo vertical del texto (margen negativo compensatorio). */
.tarjeta p a,
.pie li a,
.migas a,
.album figcaption a{
  display:inline-block; padding-block:9px; margin-block:-9px;
}
@media (max-width:720px){
  .pie li a{padding-block:11px; margin-block:-6px}
  .pie li{margin-bottom:4px}
  .nav-links a{padding:12px 2px}
}

/* ---------- reveal ---------- */
.reveal{opacity:0; transform:translateY(20px); transition:opacity .62s cubic-bezier(.22,.7,.3,1), transform .62s cubic-bezier(.22,.7,.3,1)}
.reveal.visto{opacity:1; transform:none}
.reveal:nth-child(2){transition-delay:.07s}
.reveal:nth-child(3){transition-delay:.14s}
.reveal:nth-child(4){transition-delay:.21s}

/* ============================ responsive ============================ */
@media (max-width:1000px){
  .nav-links{display:none}
  .nav-cta .btn-primario{display:none}
  .burger{display:flex}
  .hero-in{grid-template-columns:1fr; gap:34px}
  .mosaico{max-width:520px}
  .certezas-in{grid-template-columns:repeat(2,1fr)}
  .certeza{border-left:0; padding-left:0; border-top:1px solid rgba(239,230,242,.16)}
  .certeza:nth-child(-n+2){border-top:0}
  .certeza:nth-child(even){padding-left:24px; border-left:1px solid rgba(239,230,242,.16)}
  .r3{grid-template-columns:repeat(2,1fr)}
  .album{grid-template-columns:repeat(3,1fr)}
  .pie-in{grid-template-columns:1fr 1fr}
  .cierre-in{grid-template-columns:1fr}
}
@media (max-width:720px){
  body{font-size:17px}
  .sec{padding:48px 0}
  .sec-ap{padding:56px 0}
  .r2,.r3{grid-template-columns:1fr}
  .album{grid-template-columns:repeat(2,1fr); gap:14px}
  .fila,.fila:has(.fila-img.vert),.fila.inv:has(.fila-img.vert){grid-template-columns:1fr; gap:24px; padding:32px 0}
  .fila-img.vert img{max-height:none}
  .fila.inv .fila-img{order:0}
  .jornada::before{left:9px}
  .hito{grid-template-columns:1fr; gap:6px; padding-left:38px}
  .hito-h{text-align:left}
  .hito::after{left:3px; top:26px}
  .pie-in{grid-template-columns:1fr; gap:30px}
  .barra-movil{display:flex}
  .wa{bottom:82px; width:54px; height:54px}
  body{padding-bottom:72px}
  .menu-movil{inset:70px 0 0}
  .nav-in{min-height:70px}
  .btns .btn{width:100%}
}
@media (max-width:420px){
  .mosaico{gap:10px}
  .album{gap:11px}
  .album figcaption{font-size:14px}
}

/* ---------- reduced motion: todo visible, sin transformaciones ---------- */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important}
  .reveal{opacity:1 !important; transform:none !important}
  .btn:hover,.tarjeta:hover,.album figure:hover,.wa:hover{transform:none}
  .mosaico figure,.album figure{transform:none !important}
}

/* ---------- impresion ---------- */
@media print{
  .nav,.menu-movil,.wa,.barra-movil,.btns{display:none !important}
  body{font-size:12pt; background:#fff}
  .reveal{opacity:1 !important; transform:none !important}
}
