/* Foto Master Digital · v7 · "la sala clara" (1-nov): misma maqueta que v6, paleta marfil + bronce.
   Antes: v5/v6 "la sala oscura"
   Dirección: dark-room (taste). Tipos: Newsreader (todo) + Pinyon Script (solo el logo, activo de marca).
   Todo usa estos tokens. */
/* Fuentes alojadas en el sitio (30-oct): nada externo antes de aceptar cookies. Mismo subconjunto "latin" que servía Google. */
@font-face{font-family:"Newsreader";font-style:normal;font-weight:300 500;font-display:swap;src:url(../fuentes/newsreader-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Newsreader";font-style:italic;font-weight:300;font-display:swap;src:url(../fuentes/newsreader-italic-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Pinyon Script";font-style:normal;font-weight:400;font-display:swap;src:url(../fuentes/pinyon-script-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{
  --vh:100svh;         /* alto de pantalla (fijo en capturas) */
  --fondo:#f7f2ea;      /* marfil cálido (papel de copia fina) */
  --sup:#ede5d8;        /* crema un paso más oscura: paneles (Navidad, pasos, pie) */
  --sup2:#e3d9c8;       /* campos, chips en hover, aviso de cookies */
  --tinta:#1d1915;      /* casi negro cálido: texto corrido */
  --suave:#5e5449;      /* notas secundarias (≥ 6:1 sobre fondo y paneles) */
  --bronce:#7a5a35;     /* bronce/sepia profundo de la marca: botones, selector, enlaces */
  --bronce-hover:#634829;
  --bronce-luz:#b9966b; /* el bronce original: solo líneas y detalles decorativos */
  --bronce-osc:#fbf8f2; /* texto sobre bronce */
  --sobre-foto:#f7f2ea; /* texto claro encima de fotos con velo */
  --linea:rgba(29,25,21,.12);
  --sombra:0 6px 18px rgba(60,42,22,.22);

  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --firma:"Pinyon Script","Newsreader",cursive;

  /* cinco tamaños */
  --t-logo:clamp(58px,12.9vw,236px);
  --t-h:clamp(34px,4.4vw,68px);
  --t-lead:clamp(21px,2vw,30px);
  --t-txt:clamp(17px,1rem + .2vw,19px);
  --t-peq:15px;

  --m:clamp(20px,3.2vw,48px);         /* margen exterior, igual a ambos lados */
  --gap:clamp(12px,1.6vw,24px);
  --sec:clamp(88px,11vw,180px);        /* entre secciones */

  --ease-out:cubic-bezier(.23,1,.32,1);
  --ease-io:cubic-bezier(.77,0,.175,1);

  /* acabado de las fotos (selector "Ver las fotos en") */
  --acabado:grayscale(1) contrast(1.08) brightness(.97);
}
html[data-acabado="sepia"]{--acabado:grayscale(1) sepia(.62) contrast(1.04) brightness(.92) saturate(1.15)}
html[data-acabado="color"]{--acabado:none}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scrollbar-color:#c9b9a2 var(--fondo);color-scheme:light;scroll-padding-top:88px} /* 2-nov (cambio 28): al saltar a una sección, el encabezado fijo no tapa el texto */
@media (max-width:820px){html{scroll-padding-top:76px}}
html:has(.filtros){scroll-padding-top:140px} /* galería: barra + filtros fijos */
body{margin:0;background:var(--fondo);color:var(--tinta);font-family:var(--serif);font-size:var(--t-txt);line-height:1.55;font-optical-sizing:auto;-webkit-font-smoothing:antialiased;overflow-x:hidden}
::selection{background:var(--bronce);color:var(--bronce-osc)}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
p{margin:0 0 1em}
h1,h2,h3{margin:0;font-weight:300;line-height:1.02;letter-spacing:-.025em;text-wrap:balance}
h2{font-size:var(--t-h)}
h3{font-size:var(--t-lead);font-weight:400;letter-spacing:-.01em;line-height:1.2}
:focus-visible{outline:2px solid var(--bronce);outline-offset:3px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.nb{font-size:.75em;margin-left:.3em;letter-spacing:0;color:var(--suave);font-weight:400;white-space:nowrap}
.suave{color:var(--suave)}
.sin-scroll{overflow:hidden}

/* ---------- fotos: el revelado ---------- */
.foto{position:relative;overflow:hidden;background:var(--sup)}
.foto picture,.tile picture{display:contents} /* el <picture> de WebP no cambia el diseño */
.foto img{width:100%;height:100%;object-fit:cover;filter:var(--acabado);transition:filter .9s var(--ease-out),transform 1.2s var(--ease-out)}
.foto.tenue img{filter:var(--acabado) brightness(.9)}

/* ---------- botones ---------- */
.btn{display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:0 26px;background:var(--bronce);color:var(--bronce-osc);font-size:var(--t-peq);font-weight:500;letter-spacing:.01em;border:0;border-radius:0;cursor:pointer;transition:transform .16s var(--ease-out),background-color .2s ease}
.btn:active{transform:scale(.97)}
.btn svg{width:18px;height:18px;flex:none}
.enlace{display:inline-block;font-size:var(--t-txt);text-decoration:underline;text-decoration-color:var(--bronce);text-decoration-thickness:1px;text-underline-offset:5px;transition:color .2s ease,text-underline-offset .2s ease}
@media (hover:hover) and (pointer:fine){
  .btn:hover{background:var(--bronce-hover)}
  .enlace:hover{color:var(--bronce);text-underline-offset:8px}
}

/* ---------- barra ---------- */
.barra{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:28px;height:64px;padding:0 var(--m);background:var(--fondo);border-bottom:1px solid var(--linea);transition:background-color .3s ease}
.barra .logo{font-family:var(--firma);font-size:30px;line-height:1;white-space:nowrap;letter-spacing:0;transition:opacity .3s ease,transform .3s var(--ease-out)}
.inicio .barra:not(.solida) .logo{opacity:0;transform:translateY(6px);pointer-events:none}
.barra ul{display:flex;gap:26px;margin:0 0 0 auto;padding:0;list-style:none;font-size:var(--t-peq)}
.barra ul a{padding:8px 0;color:var(--suave);transition:color .2s ease}
.barra ul a[aria-current],.barra ul a:hover{color:var(--tinta)}
.barra .btn{min-height:40px;padding:0 18px}
.menu-btn{display:none;margin-left:auto;background:none;border:0;color:var(--tinta);font:inherit;font-size:var(--t-peq);min-height:44px;padding:0 4px;cursor:pointer}
.menu-movil{position:fixed;inset:0;z-index:60;background:var(--fondo);padding:20px var(--m);display:flex;flex-direction:column;gap:6px;opacity:0;visibility:hidden;transform:translateY(-12px);transition:opacity .22s var(--ease-out),transform .22s var(--ease-out),visibility 0s .22s}
.menu-movil.abierto{opacity:1;visibility:visible;transform:none;transition:opacity .26s var(--ease-out),transform .26s var(--ease-out)}
.menu-movil .cerrar{align-self:flex-end;display:block}
.menu-movil a{font-size:34px;font-weight:300;letter-spacing:-.02em;padding:6px 0}
.menu-movil .btn{font-size:var(--t-peq);margin-top:18px;align-self:flex-start}

/* ---------- portada de inicio: el nombre bajo la foto ---------- */
/* v6: una sola foto premium (quince, 2560 px) en 7 de 12 columnas; debajo, el nombre de corrido (una línea) a todo el ancho, como en la v5 */
.portada{position:relative;height:calc(var(--vh) - 64px);min-height:640px;max-height:1080px;display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:minmax(0,1fr);column-gap:var(--gap);padding:0 var(--m)}
.portada .cuadro{grid-column:1/-1;grid-row:1;margin:0 calc(-1 * var(--m));position:relative;overflow:hidden;background:var(--sup)}
.portada .cuadro::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse 34% 30% at 100% 100%,rgba(20,16,12,.38),rgba(20,16,12,0)),linear-gradient(90deg,rgba(247,242,234,.97) 0%,rgba(247,242,234,.93) 27%,rgba(247,242,234,.55) 37%,rgba(247,242,234,0) 50%)}
.portada .cuadro .foto{position:absolute;inset:0;background:var(--sup)}
.portada .cuadro picture{display:block;width:100%;height:100%}
.portada .cuadro .foto img{transition:filter .9s var(--ease-out),opacity 1.6s ease,transform 9s cubic-bezier(.2,.6,.2,1)}
.portada .banda{display:contents}
.portada .fila{grid-column:1/6;grid-row:1;align-self:start;padding-top:clamp(28px,6vh,72px);position:relative;z-index:2}
.portada .fila{display:flex;flex-direction:column;align-items:flex-start;gap:30px}
.portada .fila p{max-width:36ch;margin:0;font-size:var(--t-txt)}
.portada .fila p b{font-weight:400;color:var(--tinta);display:block;font-size:var(--t-lead);line-height:1.2;margin-bottom:8px}
/* 2-nov (cambio 25): el nombre ya no va en franja bajo la foto; es una firma blanca, pequeña, abajo a la derecha de la foto */
.portada h1{position:absolute;right:calc(var(--m) * .8);bottom:clamp(14px,2.4vh,26px);z-index:2;margin:0;font-family:var(--firma);font-weight:400;font-size:clamp(34px,3.4vw,54px);line-height:1.1;letter-spacing:0;white-space:nowrap;color:#fff;text-shadow:0 1px 2px rgba(20,16,12,.45),0 2px 16px rgba(20,16,12,.4);pointer-events:none}
.portada .pie-foto{position:absolute;left:var(--m);bottom:16px;z-index:2;font-size:var(--t-peq);color:var(--tinta);background:rgba(247,242,234,.9);padding:8px 14px;min-height:40px;display:inline-flex;align-items:center;transition:background-color .2s ease,color .2s ease,transform .16s var(--ease-out)}
.portada .pie-foto:active{transform:scale(.97)}
@media (hover:hover) and (pointer:fine){.portada .pie-foto:hover{background:var(--bronce);color:var(--bronce-osc)}}

/* ---------- encabezado de sección ---------- */
.marco{padding-left:var(--m);padding-right:var(--m)}
.cab{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:clamp(28px,4vw,56px)}
.cab p{margin:0;max-width:38ch;color:var(--suave)}
.cab>div:first-child{display:flex;flex-direction:column;align-items:flex-start;gap:14px}

/* ---------- selector de acabado (lo vivo) ---------- */
.acabado{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:var(--t-peq);color:var(--suave)}
.acabado .opc{position:relative;display:inline-flex;background:var(--sup);padding:4px}
.acabado .marcador{position:absolute;top:4px;bottom:4px;left:0;width:var(--mw,calc((100% - 8px)/3));transform:translateX(var(--mx,4px));background:var(--bronce);transition:transform .32s var(--ease-io),width .32s var(--ease-io)}
.acabado button{position:relative;z-index:1;min-height:40px;padding:0 16px;background:none;border:0;color:var(--tinta);font:inherit;font-size:var(--t-peq);cursor:pointer;white-space:nowrap;transition:color .25s ease}
.acabado button[aria-pressed="true"]{color:var(--bronce-osc)}
.acabado button:active{transform:scale(.97)}

/* ---------- sesiones: tarjetas desiguales ---------- */
.sesiones{padding-top:var(--sec)}
.panel-fila{display:flex;height:min(calc(var(--vh) * 0.62),600px);gap:4px}
.panel-fila+.panel-fila{margin-top:4px}
.panel{position:relative;display:block;overflow:hidden;flex:1 1 0;min-width:0}
.panel .foto{position:absolute;inset:0}
.panel .txt{position:absolute;left:0;right:0;bottom:0;padding:70px 24px 22px;background:linear-gradient(to top,rgba(20,16,12,.8),rgba(20,16,12,0));color:var(--sobre-foto)} /* única excepción: velo neutro bajo texto sobre foto */
.panel h3{font-size:var(--t-lead);font-weight:400}
.panel .txt p{margin:6px 0 0;font-size:var(--t-peq);color:var(--sobre-foto);max-width:32ch}
.panel .ir{display:inline-block;margin-top:10px;font-size:var(--t-peq);color:#e6cba1;transition:transform .25s var(--ease-out)}
@media (hover:hover) and (pointer:fine){
  .panel:hover .foto img{transform:scale(1.045)}
  .panel:hover .ir{transform:translateX(6px)}
}
.panel:active{transform:scale(.995)}
.g5{flex-grow:5}.g4{flex-grow:4}.g3{flex-grow:3}.g2{flex-grow:2}

/* ---------- sesiones de la portada (1-nov): tarjetas verticales 4:5, 2 columnas, más aire ---------- */
.sesiones-rejilla{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,2.4vw,36px);max-width:1180px;margin:0 auto}
.tarjeta{position:relative;display:block;overflow:hidden;aspect-ratio:4/5;background:var(--sup);transition:transform .16s var(--ease-out)}
.tarjeta:nth-child(even){margin-top:clamp(48px,7vw,112px)}
.tarjeta .foto{position:absolute;inset:0}
.tarjeta .txt{position:absolute;left:0;right:0;bottom:0;padding:120px clamp(20px,2.4vw,32px) clamp(20px,2.2vw,30px);background:linear-gradient(to top,rgba(20,16,12,.82),rgba(20,16,12,.45) 55%,rgba(20,16,12,0));color:var(--sobre-foto)}
.tarjeta h3{font-size:clamp(28px,2.6vw,40px);font-weight:400;letter-spacing:-.015em;line-height:1.1}
.tarjeta h3 .nb{display:inline-block;margin-left:.35em;font-size:.5em;letter-spacing:.02em;color:var(--sobre-foto);opacity:.92;vertical-align:.25em}
.tarjeta .txt p{margin:8px 0 0;font-size:var(--t-txt);color:var(--sobre-foto);max-width:32ch}
.tarjeta .ir{display:inline-block;margin-top:12px;font-size:var(--t-peq);color:#ecd3ab;transition:transform .25s var(--ease-out)}
@media (hover:hover) and (pointer:fine){
  .tarjeta:hover .foto img{transform:scale(1.04)}
  .tarjeta:hover .ir{transform:translateX(6px)}
}
.tarjeta:active{transform:scale(.99)}
.panel h3 .nb{color:var(--sobre-foto);opacity:.92;font-size:.55em}

/* ---------- el estudio ---------- */
.estudio{display:grid;grid-template-columns:repeat(12,1fr);column-gap:var(--gap);padding-top:var(--sec)}
.estudio .foto{grid-column:1/6;grid-row:1/3;aspect-ratio:4/5;align-self:start}
.estudio h2{grid-column:7/13;margin-bottom:28px}
.estudio .texto{grid-column:7/13}
.estudio .texto>p:first-child{font-size:var(--t-lead);line-height:1.3;text-indent:2.5em;max-width:30em}
.datos{display:grid;grid-template-columns:auto 1fr;gap:10px 28px;margin:34px 0 30px;font-size:var(--t-txt)}
.datos dt{color:var(--suave)}
.datos dd{margin:0}
.estudio .acciones{display:flex;gap:28px;align-items:center;flex-wrap:wrap}

/* ---------- cómo es: fotos en diagonal ---------- */
.diagonal{display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:auto 1fr auto;column-gap:var(--gap);padding-top:var(--sec)}
.diagonal .paso{display:contents}
.diagonal h2{grid-column:7/13;grid-row:1;align-self:start;margin-bottom:28px}
.diagonal .e1 .foto{grid-column:1/6;grid-row:1/3;aspect-ratio:3/4}
.diagonal .e1 p{grid-column:7/11;grid-row:2;align-self:start}
.diagonal .e2 .foto{grid-column:7/10;grid-row:2;align-self:end;aspect-ratio:1}
.diagonal .e2 p{grid-column:10/13;grid-row:2;align-self:end;padding-left:4px}
.diagonal .e3 .foto{grid-column:4/10;grid-row:3;aspect-ratio:16/10;margin-top:clamp(40px,6vw,96px)}
.diagonal .e3 p{grid-column:10/13;grid-row:3;align-self:end;padding-left:4px}
.diagonal .paso p{max-width:34ch;margin:0}
.diagonal .paso b{display:block;font-weight:400;font-size:var(--t-lead);line-height:1.2;margin-bottom:8px}

/* ---------- navidad ---------- */
.navidad{margin-top:var(--sec);background:var(--sup);display:grid;grid-template-columns:repeat(12,1fr);column-gap:var(--gap);padding:clamp(56px,7vw,110px) var(--m)}
.navidad .foto{grid-column:2/6;aspect-ratio:386/735;max-width:400px;width:100%;justify-self:end}
.navidad .texto{grid-column:7/12;align-self:center}
.navidad h2{margin-bottom:22px}
.navidad .texto>p{font-size:var(--t-lead);line-height:1.3;max-width:26em}
.ofertas{margin-top:40px;display:grid;gap:34px}
.ofertas h3{margin-bottom:6px}
.ofertas p{margin:0 0 10px;max-width:40ch}

/* ---------- cierre: última foto, texto a un lado ---------- */
.cierre{position:relative;margin-top:var(--sec);min-height:calc(var(--vh) * 0.9);display:grid;grid-template-columns:repeat(12,1fr);column-gap:var(--gap);padding:0 var(--m);overflow:hidden}
.cierre>.foto{position:absolute;top:0;bottom:0;left:0;width:60%}
.cierre>.foto img{filter:var(--acabado)}
.cierre::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(270deg,var(--fondo) 0%,var(--fondo) 40%,rgba(247,242,234,.6) 45%,rgba(247,242,234,0) 52%)}
.cierre .texto{position:relative;z-index:1;grid-column:8/13;align-self:end;padding-bottom:clamp(48px,calc(var(--vh) * 0.08),96px)}
.cierre h2{margin-bottom:18px}
.cierre p{max-width:36ch}
.cierre .acciones{display:flex;flex-direction:column;align-items:flex-start;gap:20px;margin-top:26px}

/* ---------- pie ---------- */
.pie{background:var(--sup);border-top:1px solid var(--linea);padding:clamp(48px,6vw,80px) var(--m) 20px}
.pie .arriba{display:grid;grid-template-columns:repeat(12,1fr);column-gap:var(--gap);row-gap:32px}
.pie ul{list-style:none;margin:0;padding:0;grid-column:1/5;display:grid;gap:8px}
.pie .contacto{grid-column:5/9;display:grid;gap:8px;align-content:start}
.pie .lema{grid-column:9/13;color:var(--suave);margin:0}
.pie a{transition:color .2s ease}
.pie a:hover{color:var(--bronce)}
.pie .firma{display:block;font-family:var(--firma);font-size:clamp(40px,5.8vw,96px);line-height:1.15;white-space:nowrap;margin:clamp(32px,4vw,56px) 0 0;letter-spacing:0}
.pie .pie-legal{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:var(--t-peq);color:var(--suave);padding-top:10px}

/* ---------- flotantes: Instagram al lado de WhatsApp, mismo tamaño ---------- */
.flotantes{position:fixed;right:18px;bottom:18px;z-index:50;display:flex;gap:12px}
.flot{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;box-shadow:var(--sombra);transition:transform .16s var(--ease-out),background-color .2s ease}
.flot:active{transform:scale(.94)}
.flot svg{width:26px;height:26px}
.wa-flot{background:var(--bronce);color:var(--bronce-osc)}
.ig-flot{background:var(--tinta);color:var(--fondo)}
@media (hover:hover) and (pointer:fine){.wa-flot:hover{background:var(--bronce-hover)}.ig-flot:hover{background:#3a3129}}

/* ---------- cookies ---------- */
.cookies{position:fixed;left:18px;bottom:18px;z-index:55;max-width:420px;background:var(--sup2);color:var(--tinta);padding:16px 18px;font-size:var(--t-peq);box-shadow:0 8px 28px rgba(60,42,22,.2);border:1px solid var(--linea);display:none}
.cookies.ver{display:block;animation:sube-c .3s var(--ease-out)}
@keyframes sube-c{from{opacity:0;transform:translateY(12px)}}
.cookies .bt{display:flex;gap:10px;align-items:center;margin-top:10px;flex-wrap:wrap}
.cookies button{min-height:40px;padding:0 16px;border:0;font:inherit;font-size:var(--t-peq);cursor:pointer}
.cookies .si{background:var(--bronce);color:var(--bronce-osc)}
.cookies .no{background:var(--fondo);color:var(--tinta);box-shadow:inset 0 0 0 1px var(--linea)}
.cookies a{text-decoration:underline;text-underline-offset:4px;color:var(--suave)}

/* ======================= PÁGINAS DE SERVICIO ======================= */
/* 2-nov (cambio 26): sin la foto pequeña encimada; texto a la izquierda, foto grande a la derecha, centrados en vertical */
.p-portada{display:grid;grid-template-columns:repeat(12,1fr);column-gap:var(--gap);align-items:center;padding:28px var(--m) 36px}
.p-portada .grande{grid-column:7/13;grid-row:1;position:relative;aspect-ratio:4/5;height:min(calc(var(--vh) - 128px),860px);width:auto;max-width:100%;justify-self:end}
.p-portada .grande .foto{position:absolute;inset:0;opacity:0;transition:opacity 1.6s ease}
.p-portada .grande .foto.on{opacity:1}
.p-portada .chica{display:none}
.p-portada .texto{grid-column:1/7;grid-row:1;align-self:center;padding-right:clamp(0px,2vw,32px)}
.p-portada h1{font-size:clamp(46px,6vw,96px);line-height:.98;letter-spacing:-.035em;margin-bottom:18px}
.p-portada h1 .nb{display:inline-block;margin-left:.2em;font-size:.36em;vertical-align:.5em}
.p-portada .texto p{font-size:var(--t-lead);line-height:1.25;margin:0 0 6px}
.p-portada .texto .suave{font-size:var(--t-txt);margin-bottom:26px}

/* 2-nov (cambio 27): presentación en una columna (título + párrafos juntos) y "qué incluye" como lista numerada a la par */
.sesion{display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:auto auto auto 1fr;column-gap:var(--gap);align-items:start;padding-top:var(--sec)}
.sesion h2{grid-column:1/6;grid-row:1;margin-bottom:24px}
.sesion .lead{grid-column:1/6;grid-row:2;font-size:var(--t-lead);line-height:1.3;margin:0;max-width:24em}
.sesion .lead+p{grid-column:1/6;grid-row:3;margin:18px 0 0;max-width:42ch;color:var(--suave)}
.incluye{grid-column:7/13;grid-row:1/5;display:grid;grid-template-columns:1fr;gap:0;margin:0;padding:0;counter-reset:inc;border-bottom:1px solid var(--linea)}
.incluye div{margin:0;display:grid;grid-template-columns:2.6em 1fr;column-gap:12px;padding:18px 0 20px;border-top:1px solid var(--linea);counter-increment:inc}
.incluye div::before{content:counter(inc,decimal-leading-zero);grid-row:1/3;padding-top:.3em;font-size:var(--t-peq);letter-spacing:.06em;color:var(--bronce);font-variant-numeric:tabular-nums}
.incluye dt{grid-column:2;font-size:clamp(20px,1.6vw,24px);line-height:1.25;margin-bottom:4px}
.incluye dd{grid-column:2;margin:0;max-width:44ch;color:var(--tinta)}

.extra{display:grid;grid-template-columns:repeat(12,1fr);column-gap:var(--gap);padding-top:var(--sec);align-items:center}
.extra .foto{grid-column:1/8;aspect-ratio:10/7}
.extra .texto{grid-column:9/13}
.extra h2{margin-bottom:20px}

.galeria-sec{padding-top:clamp(56px,7vw,112px)}
.galeria{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.galeria .tile{display:block;width:100%;aspect-ratio:3/2;margin:0;padding:0;border:0;background:var(--sup);cursor:zoom-in;overflow:hidden}
.galeria .tile img{width:100%;height:100%;object-fit:cover;object-position:50% 35%;filter:var(--acabado);transition:filter .9s var(--ease-out),transform .6s var(--ease-out)}
@media (hover:hover) and (pointer:fine){.galeria .tile:hover img{transform:scale(1.03)}}
.galeria .tile.oculta{display:none}
.ver-mas{display:block;margin:28px auto 0;min-height:52px;padding:0 28px;background:var(--sup);color:var(--tinta);border:0;font:inherit;font-size:var(--t-peq);cursor:pointer;transition:transform .16s var(--ease-out),background-color .2s ease}
.ver-mas:hover{background:var(--sup2)}
.ver-mas:active{transform:scale(.97)}

.pasos{margin-top:var(--sec);background:var(--sup);padding:clamp(56px,7vw,104px) var(--m)}
.pasos .fila{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap)}
.pasos h2{margin-bottom:clamp(32px,4vw,56px)}
.pasos p{margin:0;max-width:30ch}
.pasos b{display:block;font-weight:400;font-size:var(--t-lead);line-height:1.2;margin-bottom:8px}

.faq{display:grid;grid-template-columns:repeat(12,1fr);column-gap:var(--gap);padding-top:var(--sec)}
.faq .col{grid-column:1/7}
.faq h2{margin-bottom:24px}
.faq .hechos{margin:0 0 36px;padding:0;list-style:none;display:grid;gap:4px;color:var(--suave)}
.faq details{padding:14px 0}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;align-items:center;font-size:clamp(19px,1.5vw,22px);line-height:1.3;min-height:44px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:10px;height:10px;border-right:2px solid var(--bronce);border-bottom:2px solid var(--bronce);transform:rotate(45deg) translateY(-3px);transition:transform .25s var(--ease-out)}
.faq details[open] summary::after{transform:rotate(225deg) translateY(-1px)}
.faq details p{margin:10px 0 4px;max-width:58ch;color:var(--tinta)}
.faq details p a{text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--bronce)}
.faq .col .btn{margin-top:30px}
.faq .fotos{grid-column:8/13;position:relative;align-self:start}
.faq .fotos .alta{aspect-ratio:3/4}
.faq .fotos .cuad{position:absolute;width:42%;aspect-ratio:1;left:-14%;bottom:-40px}

.otras{padding:var(--sec) var(--m) 0}
.otras .panel-fila{height:min(calc(var(--vh) * 0.42),380px)}

/* ======================= GALERÍA (portafolio con filtros) ======================= */
.g-cab{display:grid;grid-template-columns:repeat(12,1fr);column-gap:var(--gap);row-gap:22px;align-items:end;padding-top:clamp(40px,6vw,96px)}
.g-cab h1{grid-column:1/7;grid-row:1/3;font-size:clamp(68px,10vw,170px);line-height:.88;letter-spacing:-.045em;align-self:end}
.g-cab p{grid-column:7/13;grid-row:1;font-size:var(--t-lead);line-height:1.3;max-width:26em;margin:0}
.g-cab .acabado{grid-column:7/13;grid-row:2}
.filtros{position:sticky;top:64px;z-index:30;background:var(--fondo);margin-top:clamp(32px,4vw,60px);padding:10px var(--m)}
.fil-in{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.fil-in::-webkit-scrollbar{display:none}
.filtros a{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:46px;padding:0 20px;background:var(--sup);color:var(--tinta);font-size:var(--t-peq);white-space:nowrap;transition:background-color .2s ease,color .2s ease,transform .16s var(--ease-out)}
.filtros a .nb{font-size:.8em;color:inherit;opacity:.75}
.filtros a[aria-current="true"]{background:var(--bronce);color:var(--bronce-osc)}
.filtros a:active{transform:scale(.97)}
@media (hover:hover) and (pointer:fine){.filtros a:not([aria-current="true"]):hover{background:var(--sup2)}}
.muro-sec{padding-top:14px}
/* filas justificadas: cada foto crece según su proporción (--r = ancho/alto), en orden de lectura */
.muro{display:flex;flex-wrap:wrap;gap:8px}
.muro::after{content:"";flex-grow:999}
.muro .tile{display:block;flex:var(--r) 1 calc(var(--r) * 250px);aspect-ratio:var(--r);max-height:520px;margin:0;padding:0;border:0;background:var(--sup);cursor:zoom-in;overflow:hidden}
.muro .tile img{width:100%;height:100%;object-fit:cover;filter:var(--acabado);transition:filter .9s var(--ease-out),transform .6s var(--ease-out)}
.muro .tile.oculta{display:none}
@media (hover:hover) and (pointer:fine){.muro .tile:hover img{transform:scale(1.03)}}
.muro .tile.entra{animation:entra .5s var(--ease-out) both}
@keyframes entra{from{opacity:0;transform:translateY(18px)}}
.g-cta{display:grid;grid-template-columns:repeat(12,1fr);column-gap:var(--gap);padding-top:var(--sec);padding-bottom:var(--sec);align-items:end}
.g-cta h2{grid-column:1/7}
.g-cta p{grid-column:7/13;max-width:40ch;margin:0 0 24px}
.g-cta .acciones{grid-column:7/13;display:flex;gap:28px;align-items:center;flex-wrap:wrap}

/* ---------- privacidad ---------- */
.legal{padding:clamp(48px,7vw,96px) var(--m) var(--sec);display:grid;grid-template-columns:repeat(12,1fr);column-gap:var(--gap)}
.legal h1{grid-column:1/5;font-size:var(--t-h);align-self:start;position:sticky;top:100px}
.legal .cuerpo{grid-column:6/13;max-width:72ch}
.legal h2{font-size:var(--t-lead);font-weight:400;margin:0 0 18px;line-height:1.25}
.legal h3{font-size:var(--t-txt);font-weight:500;letter-spacing:0;margin:38px 0 10px;scroll-margin-top:90px}
.legal ul{padding-left:20px}
.legal li{margin-bottom:6px}
.legal a{text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--bronce)}
.legal strong{font-weight:500}

/* ---------- 404 ---------- */
.no-existe{min-height:calc(var(--vh) - 64px);display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding-top:clamp(48px,8vw,120px);padding-bottom:clamp(64px,9vw,140px)}
.no-existe .codigo{font-family:var(--firma);font-size:clamp(96px,16vw,220px);line-height:1;color:var(--bronce);margin:0 0 8px}
.no-existe h1{font-size:var(--t-h);margin-bottom:22px}
.no-existe .lead{font-size:var(--t-lead);line-height:1.3;max-width:30ch;margin-bottom:34px}
.no-existe .acciones{display:flex;gap:28px;align-items:center;flex-wrap:wrap}
@media (max-width:820px){.no-existe{min-height:0}.no-existe .btn{width:100%;justify-content:center}}

/* ---------- visor (1-nov): sala oscura para que las fotos luzcan ---------- */
.visor{position:fixed;inset:0;z-index:80;background:rgba(14,12,10,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#f3ede4;opacity:0;visibility:hidden;transition:opacity .2s var(--ease-out),visibility 0s .2s}
.visor.abierto{opacity:1;visibility:visible;transition:opacity .28s var(--ease-out)}
.visor .escena{position:absolute;inset:72px 96px 72px;touch-action:pan-y pinch-zoom;transform:scale(.97);transition:transform .32s var(--ease-out)}
.visor.abierto .escena{transform:none}
.visor .v-img{position:absolute;inset:0;margin:auto;max-width:100%;max-height:100%;width:auto;height:auto;filter:var(--acabado);opacity:0;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;will-change:transform,opacity}
.visor .v-img.actual{opacity:1}
.visor .v-img:not([src]){display:none}
.visor button{position:absolute;display:grid;place-items:center;width:52px;height:52px;padding:0;border-radius:50%;border:1px solid rgba(243,237,228,.3);background:rgba(243,237,228,.07);color:#f3ede4;cursor:pointer;transition:background-color .2s ease,border-color .2s ease,transform .16s var(--ease-out)}
.visor button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.visor button:active{transform:scale(.94)}
.visor :focus-visible{outline:2px solid #e6cba1;outline-offset:3px}
@media (hover:hover) and (pointer:fine){.visor button:hover{background:rgba(243,237,228,.18);border-color:rgba(243,237,228,.55)}}
.visor .cerrar-v{top:16px;right:20px}
.visor .ant{left:24px;top:50%;margin-top:-26px}
.visor .sig{right:24px;top:50%;margin-top:-26px}
.visor .cuenta{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);font-size:14px;letter-spacing:.06em;color:rgba(243,237,228,.72);font-variant-numeric:tabular-nums}

/* ---------- entradas (solo con JS; sin JS todo se ve) ---------- */
.js .sube{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out)}
.js .sube.in{opacity:1;transform:none}
.js .sube.d1{transition-delay:.08s}.js .sube.d2{transition-delay:.16s}.js .sube.d3{transition-delay:.24s}
.js .revela{clip-path:inset(0 0 100% 0);transition:clip-path 1.1s var(--ease-io)}
.js .revela img{transform:scale(1.12)}
.js .revela.in{clip-path:inset(0 0 0 0)}
.js .revela.in img{transform:scale(1)}
.js .portada h1{transform:translateY(.25em);transition:transform 1s var(--ease-out) .25s}
.js .portada.in h1{opacity:1;transform:none}
/* firma v6: la foto de entrada "se revela" desde el negro y se asienta despacio */
.js .portada .cuadro img{transform:scale(1.07)}
.js .portada.in .cuadro img{opacity:1;transform:none}
.js .portada .fila{opacity:0;transform:translateY(16px);transition:opacity .8s var(--ease-out) .5s,transform .8s var(--ease-out) .5s}
.js .portada.in .fila{opacity:1;transform:none}

/* ======================= CELULAR / TABLETA ======================= */
@media (max-width:1100px){
  .pasos .fila{grid-template-columns:repeat(2,1fr);row-gap:36px}
}
@media (max-width:820px){
  :root{--sec:76px}
  .barra{height:58px}
  .barra ul,.barra .btn{display:none}
  .menu-btn{display:block}
  .portada{height:auto;min-height:0;max-height:none;grid-template-columns:1fr;padding:0}
  .portada{grid-template-rows:auto}
  .portada .cuadro,.portada .fila,.portada h1{grid-column:1;grid-row:auto}
  .portada .fila{padding:22px var(--m) 0}
  .portada .cuadro{height:calc(var(--vh) * 0.68);min-height:420px;max-height:720px}
  .portada .fila{gap:20px}
  .portada .fila .btn{width:100%;justify-content:center}
  .portada .cuadro{margin:0}
  .portada .cuadro::after{background:radial-gradient(ellipse 70% 26% at 100% 100%,rgba(20,16,12,.42),rgba(20,16,12,0))}
  .portada .fila{z-index:auto}
  /* firma: abajo a la derecha de la foto (la foto mide clamp(420px, 68vh, 720px)) */
  .portada h1{grid-row:auto;right:14px;bottom:auto;top:calc(clamp(420px,calc(var(--vh) * 0.68),720px) - 98px);font-size:32px}
  .portada .pie-foto{left:10px;right:auto;bottom:10px}

  .cab{flex-direction:column;align-items:flex-start;gap:16px}
  .acabado button{padding:0 12px}
  .panel-fila{height:auto;display:grid;grid-template-columns:64fr 36fr;gap:4px}
  .panel-fila .panel{height:250px}
  .panel-fila.b{grid-template-columns:36fr 64fr}
  .panel-fila .panel:nth-child(3){grid-column:1/-1;height:220px}
  .panel .txt{padding:50px 14px 14px}
  .panel .txt p{display:none}
  .panel .ir{display:none}
  .sesiones-rejilla{grid-template-columns:1fr;gap:18px}
  .tarjeta:nth-child(n){margin-top:0}
  .tarjeta .txt{padding:100px 20px 20px}
  .tarjeta h3{font-size:30px}

  .estudio,.diagonal,.navidad,.cierre,.sesion,.extra,.faq,.legal,.p-portada{grid-template-columns:1fr}
  .estudio>*,.diagonal>*,.navidad>*,.cierre>*,.sesion>*,.extra>*,.faq>*,.legal>*,.p-portada>*{grid-column:1/-1 !important;grid-row:auto !important}
  .estudio h2{order:-2}
  .estudio .texto{order:-1}
  .estudio .foto{width:100%;justify-self:center;margin-top:28px}
  .estudio .texto>p:first-child{text-indent:0}

  .diagonal h2{margin-bottom:28px}
  .diagonal .paso>*{grid-column:auto !important;grid-row:auto !important;align-self:center !important}
  .navidad .foto{max-width:300px}
  .diagonal .e1 .foto,.diagonal .e1 p,.diagonal .e2 .foto,.diagonal .e2 p,.diagonal .e3 .foto,.diagonal .e3 p{margin-top:0;padding-left:0}
  .diagonal .e1,.diagonal .e2,.diagonal .e3{display:grid;grid-template-columns:44% 1fr;gap:16px;margin-top:0;align-items:center}
  .diagonal .e2,.diagonal .e3{margin-top:28px}
  .diagonal .e2{grid-template-columns:1fr 44%}
  .diagonal .e2 .foto{order:2}
  .diagonal .e3 .foto{order:0;aspect-ratio:1}
  .diagonal .e1 .foto{aspect-ratio:1}
  .diagonal .paso b{font-size:21px}
  .diagonal .paso p{font-size:16px}

  .navidad{padding:48px var(--m) 56px}
  .navidad .foto{width:min(80%,340px);max-width:none;justify-self:center;margin-bottom:34px}
  .navidad .texto{max-width:560px;justify-self:center;width:100%}
  .navidad .texto>p{font-size:20px}

  .cierre{min-height:0;padding:0;background:var(--sup)}
  .cierre::after{display:none}
  .cierre>.foto{position:relative;width:auto;height:calc(var(--vh) * 0.58)}
  .cierre .texto{padding:32px var(--m) 52px}
  .cierre .btn{width:100%;justify-content:center}

  /* pie en celular: composición centrada, como el reverso de una tarjeta */
  .pie{padding-top:56px;text-align:center}
  .pie .arriba{grid-template-columns:1fr;justify-items:center;row-gap:30px}
  .pie ul,.pie .contacto,.pie .lema{grid-column:1/-1}
  .pie .lema{order:-1;max-width:30ch;font-size:var(--t-lead);line-height:1.3;color:var(--tinta)}
  .pie ul{grid-template-columns:1fr 1fr;gap:4px 18px;width:100%;max-width:380px}
  .pie ul a,.pie .contacto a{display:inline-flex;align-items:center;justify-content:center;min-height:40px}
  .pie .contacto{justify-items:center;gap:0}
  .pie .firma{font-size:calc((100vw - 2 * var(--m)) / 11);margin-top:28px}
  .pie .pie-legal{flex-direction:column;align-items:center;gap:4px;padding-bottom:84px}

  .p-portada{min-height:0;max-height:none;padding-top:16px;position:relative}
  .p-portada .grande{width:100%;height:auto;max-height:none;justify-self:stretch}
  .p-portada .texto{margin-top:26px;padding-right:0}
  .p-portada h1{font-size:clamp(42px,12vw,64px)}
  .p-portada .btn{width:100%;justify-content:center}

  .sesion{grid-template-rows:none}
  .sesion h2{margin-bottom:18px}
  .incluye{margin-top:34px}
  .incluye div{padding:16px 0 18px}
  .extra .foto{margin-bottom:22px}
  .galeria{grid-template-columns:1fr 1fr;gap:6px}
  .galeria .tile{aspect-ratio:1}
  .pasos{padding:56px var(--m)}
  .pasos .fila{grid-template-columns:1fr;row-gap:22px}
  .faq .fotos{display:none}
  .faq .col .btn{width:100%;justify-content:center}
  .otras .panel-fila{height:auto}
  .otras .panel-fila .panel{height:180px}
  .otras .panel-fila .panel:nth-child(3){height:180px;grid-column:auto}
  .legal h1{position:static;margin-bottom:28px}
  .visor .escena{inset:64px 0 92px}
  .visor .ant,.visor .sig{top:auto;bottom:18px;margin-top:0}
  .visor .ant{left:18px}
  .visor .sig{right:18px}
  .visor .cuenta{bottom:34px}
  .visor .cerrar-v{top:10px;right:12px}
  .cookies{left:12px;right:12px;bottom:84px;max-width:none}
  .flotantes{right:14px;bottom:14px;gap:10px}

  .g-cab{grid-template-columns:1fr;padding-top:36px}
  .g-cab>*{grid-column:1 !important;grid-row:auto !important}
  .g-cab p{font-size:20px}
  .filtros{top:58px;padding:8px 0}
  .fil-in{padding:0 var(--m)}
  .muro{gap:6px}
  .muro .tile{flex-basis:calc(var(--r) * 150px)}
  .g-cta{grid-template-columns:1fr}
  .g-cta>*{grid-column:1 !important}
  .g-cta h2{margin-bottom:18px}
  .g-cta .btn{width:100%;justify-content:center}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .sube,.js .revela{opacity:1;transform:none;clip-path:none;transition:opacity .3s ease}
  .js .revela img,.portada .cuadro .foto img{transform:none !important}
  .portada .cuadro .foto,.p-portada .grande .foto{transition:none}
  .acabado .marcador{transition:none}
  .visor .escena{transform:none;transition:none}
  *{scroll-behavior:auto}
}

/* capturas: alto de pantalla fijo para que la página entera se vea como en un monitor */
html.captura{--vh:900px}
@media (max-width:820px){html.captura{--vh:844px}}

/* 2-nov (cambio 31): firma arriba de la foto para que los botones flotantes no la tapen;
   flotantes sin Instagram (ya está en el pie) y, en la portada, visibles solo al bajar */
.portada h1{top:clamp(84px,11vh,120px);bottom:auto}
.ig-flot{display:none}
.flotantes{transition:opacity .3s ease,transform .3s var(--ease-out)}
.flotantes.oculto{opacity:0;transform:translateY(12px);pointer-events:none}
@media (max-width:820px){
  .portada h1{top:74px;bottom:auto;right:14px}
}
@media (prefers-reduced-motion:reduce){.flotantes{transition:none}}

/* 2-nov 9:25 (Jefferson): en celular la firma se salía y tapaba la cabeza; más pequeña, arriba a la derecha, sin desbordar */
@media (max-width:820px){
  .portada h1{top:16px;right:14px;font-size:clamp(22px,6.6vw,28px);max-width:calc(100% - 28px);text-shadow:0 1px 10px rgba(0,0,0,.45)}
}
