/* Kalunga · sistema visual (oscuro)
   Negro cálido y hueso, sin color de acento: la jerarquía la marcan el brillo
   y el peso, y el color lo ponen las fotos de la tienda. Nada de dorado ni bronce.

   Reglas del sistema
   · Tipos: Archivo 600 en titulares, Jost en texto. Una sola escala para toda
     la web (--t-*). Nada en mayúsculas espaciadas, salvo la marca «Agotado».
   · Formas rectas: superficies y fotos a 0 (--r-0), controles a 2 px (--r-1).
     Sin círculos ni píldoras.
   · Espaciado en múltiplos de 8 px (--e-*) y tres ritmos de sección (--ritmo-*).
   · Un solo botón por bloque; lo secundario va como enlace de texto.
   · El revelado al hacer scroll, solo en cabeceras de sección y fotos grandes. */

@font-face{font-family:'Archivo';src:url(../fonts/archivo.woff2) format('woff2');font-weight:400 700;font-display:swap}
@font-face{font-family:'Jost';src:url(../fonts/jost.woff2) format('woff2');font-weight:300 600;font-display:swap}

:root{
  /* color */
  --fondo:#0B0A09;     /* negro cálido */
  --fondo-2:#121110;   /* franjas y tarjetas */
  --sup:#191614;       /* capas que flotan: reserva y ficha */
  --sup-2:#211E1B;     /* hover de superficies */
  --hueso:#EFEBE5;     /* titulares y texto principal (17:1) */
  --hueso-2:#CFC8BF;   /* párrafos (12:1) */
  --piedra:#8B837A;    /* texto secundario: 5,1:1 sobre el fondo */
  --acento:var(--hueso); /* sin color de acento: el color lo ponen las fotos */
  --linea:#262220;     /* filete */
  --linea-2:#37322E;   /* filete marcado */
  --borde:#6E665E;     /* borde de control: 3,5:1 */
  --velo:rgba(6,5,4,.74);
  --sombra:0 24px 48px -24px rgba(0,0,0,.6);   /* solo reserva y ficha */

  /* tipografía: una sola escala */
  --f-t:'Archivo',ui-sans-serif,system-ui,sans-serif;
  --f-c:'Jost',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
  --t-h1:clamp(2.125rem,1.55rem + 2.3vw,3.375rem);  /* 34 → 54 */
  --t-h2:clamp(1.75rem,1.4rem + 1.3vw,2.5rem);      /* 28 → 40 */
  --t-h3:clamp(1.25rem,1.15rem + .4vw,1.5rem);      /* 20 → 24 */
  --t-h4:1.125rem;                                  /* 18 */
  --t-lead:clamp(1.0625rem,1rem + .3vw,1.1875rem);  /* 17 → 19 */
  --t-body:1rem;                                    /* 16, 17 en escritorio */
  --t-small:.9375rem;                               /* 15 */
  --t-cap:.8125rem;                                 /* 13 */
  --t-label:.875rem;                                /* 14: etiquetas, en minúscula y sin espaciado */

  /* espaciado: 8 px */
  --e-1:8px;--e-2:16px;--e-3:24px;--e-4:32px;--e-5:40px;--e-6:48px;
  --e-8:64px;--e-10:80px;--e-12:96px;--e-16:128px;
  --ritmo-l:80px;--ritmo-m:64px;--ritmo-s:48px;   /* ritmo de secciones en móvil; en escritorio 128 / 96 / 64 */

  /* forma, movimiento, capas */
  --r-0:0;           /* superficies y fotos */
  --r-1:2px;         /* controles */
  --r-c:var(--r-1);
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-s:cubic-bezier(.32,.72,0,1);
  --d-1:.2s;--d-2:.35s;--d-3:.7s;
  --z-cab:50;--z-ck:55;--z-velo:60;--z-car:70;--z-modal:80;--z-salta:90;

  /* maqueta */
  --ancho:1320px;
  --margen:20px;
  --cab:76px;
  --vh:100vh;
  --alto:100vh;     /* alto de pantalla estable (sin saltos por la barra del móvil) */
  --encima:111px;   /* aviso + cabecera; el JS pone la medida real */
}
@supports (height:100dvh){:root{--vh:100dvh}}
@supports (height:100svh){:root{--alto:100svh}}
@media(max-width:620px){:root{--encima:124px}}
@media(min-width:760px){:root{--margen:40px}}
@media(min-width:900px){:root{--t-body:1.0625rem;--ritmo-l:128px;--ritmo-m:96px;--ritmo-s:64px}}
@media(min-width:1200px){:root{--margen:56px}}

/* ── base ── */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--cab) + var(--e-3))}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
body{background:var(--fondo);color:var(--hueso);font-family:var(--f-c);font-size:var(--t-body);font-weight:400;line-height:1.7;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
main{overflow-x:clip}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:none;cursor:pointer}
ul,ol{list-style:none}
:focus-visible{outline:2px solid var(--hueso);outline-offset:3px}
::selection{background:var(--hueso);color:var(--fondo)}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.env{width:min(var(--ancho),100% - var(--margen) * 2);margin-inline:auto}

h1,h2,h3,h4{font-family:var(--f-t);font-weight:600;color:var(--hueso);text-wrap:balance}
h1{font-size:var(--t-h1);line-height:1.04;letter-spacing:-.028em}
h2{font-size:var(--t-h2);line-height:1.08;letter-spacing:-.024em}
h3{font-size:var(--t-h3);line-height:1.25;letter-spacing:-.014em;font-weight:500}
h4{font-size:var(--t-h4);line-height:1.3;letter-spacing:-.01em;font-weight:500}
p{text-wrap:pretty}

/* etiqueta: una frase corta en piedra; el filete delante, solo en la del hero */
.eyebrow{display:inline-flex;align-items:center;gap:12px;font-family:var(--f-t);font-size:var(--t-label);font-weight:500;line-height:1.4;letter-spacing:0;text-transform:none;color:var(--piedra)}
.eyebrow::before{content:none}
.port .eyebrow::before{content:'';width:24px;height:1px;background:var(--borde)}
.muted{color:var(--piedra)}
.num{font-variant-numeric:tabular-nums}
.lnk{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.3em;text-decoration-color:var(--borde);transition:color var(--d-1) var(--ease),text-decoration-color var(--d-1) var(--ease)}
.lnk:hover{color:var(--hueso);text-decoration-color:var(--hueso)}

/* fotos que cubren su caja: un revelado común para que parezcan una sesión */
.cubre{position:relative;overflow:hidden;background:var(--fondo-2)}
.cubre picture,.cubre img{position:absolute;inset:0;width:100%;height:100%}
.cubre img{object-fit:cover;filter:saturate(.82) brightness(.74) contrast(1.04)}

.salta{position:absolute;top:-64px;left:var(--e-2);z-index:var(--z-salta);background:var(--hueso);color:var(--fondo);padding:var(--e-1) var(--e-2);font-size:var(--t-small);font-weight:500;transition:top var(--d-1) var(--ease)}
.salta:focus{top:var(--e-2)}

/* ── aviso ── */
.aviso{padding:var(--e-1) var(--margen);background:var(--fondo-2);border-bottom:1px solid var(--linea);text-align:center;font-family:var(--f-t);font-size:var(--t-cap);font-weight:500;line-height:1.5;letter-spacing:0;text-transform:none;color:var(--piedra)}
.aviso b{color:var(--hueso);font-weight:500}
.aviso a{color:var(--hueso);border-bottom:1px solid var(--borde);transition:border-color var(--d-1) var(--ease)}
.aviso a:hover{border-color:var(--hueso)}
@media(max-width:620px){.aviso{font-size:.75rem}}

/* ── cabecera ── */
.cab{position:sticky;top:0;z-index:var(--z-cab);background:rgba(11,10,9,.96);border-bottom:1px solid var(--linea)}
.cab>.env{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--e-4);height:var(--cab)}
.marca{display:flex;align-items:center;gap:10px}
.marca-b{height:44px;width:auto}
.marca-n{height:24px;width:auto;margin-top:8px}
.nav{display:flex;gap:var(--e-4);justify-self:center;font-family:var(--f-t);font-size:var(--t-label);font-weight:500;letter-spacing:0;text-transform:none;color:var(--piedra)}
.nav a{position:relative;padding-block:var(--e-1);transition:color var(--d-1) var(--ease)}
.nav a::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--hueso);transform:scaleX(0);transform-origin:left;transition:transform var(--d-2) var(--ease)}
.nav a:hover,.nav a.on{color:var(--hueso)}
.nav a:hover::after,.nav a.on::after{transform:scaleX(1)}
.acc{display:flex;align-items:center;gap:4px}
.tel-cab{margin-right:var(--e-1);padding-block:var(--e-1);font-family:var(--f-t);font-size:12.5px;font-weight:500;letter-spacing:.08em;color:var(--piedra);transition:color var(--d-1) var(--ease)}
.tel-cab:hover{color:var(--hueso)}
.ico{width:40px;height:40px;display:grid;place-items:center;border-radius:var(--r-c);color:var(--hueso);transition:background var(--d-1) var(--ease),transform var(--d-1) var(--ease)}
.ico:hover{background:var(--sup-2)}
.ico:active{transform:translateY(1px)}
.ico svg,.b svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.pin{position:relative}
.pin b{position:absolute;top:3px;right:1px;min-width:17px;height:17px;padding:0 4px;border-radius:var(--r-c);background:var(--hueso);color:var(--fondo);font-family:var(--f-t);font-size:10px;font-weight:600;line-height:1;display:grid;place-items:center}
.menu-b{display:none}
@media(max-width:1100px){.tel-cab{display:none}}
@media(max-width:900px){.nav{display:none}.cab>.env{grid-template-columns:auto 1fr;gap:var(--e-2)}.acc{justify-self:end}.menu-b{display:grid}}
@media(max-width:520px){.marca-b{height:36px}.marca-n{height:20px;margin-top:6px}}
.menu-m{border-top:1px solid var(--linea);background:var(--fondo)}
.menu-m .env{display:flex;flex-direction:column;padding:var(--e-1) 0 var(--e-4)}
.menu-m a{padding:var(--e-2) 0;border-bottom:1px solid var(--linea);font-family:var(--f-t);font-size:1.5rem;font-weight:500;line-height:1.2;letter-spacing:-.02em}
.menu-m a.on{color:var(--hueso);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.3em}
.menu-m .tel-m{padding-top:var(--e-3);border:none;font-family:var(--f-c);font-size:var(--t-small);letter-spacing:.02em;color:var(--piedra)}
@media(min-width:901px){.menu-m{display:none!important}}

/* ── botones: un solo botón lleno por bloque; lo secundario, como enlace de texto ── */
.b,.bp{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 var(--e-3);border:1px solid var(--borde);border-radius:var(--r-c);font-family:var(--f-t);font-size:.9375rem;font-weight:500;line-height:1.3;letter-spacing:-.005em;text-transform:none;text-align:center;white-space:nowrap;color:var(--hueso);background:transparent;transition:background var(--d-2) var(--ease),color var(--d-2) var(--ease),border-color var(--d-2) var(--ease),transform var(--d-1) var(--ease)}
.b:hover{background:var(--hueso);border-color:var(--hueso);color:var(--fondo)}
.b-f,.bp{background:var(--hueso);border-color:var(--hueso);color:var(--fondo)}
.b-f:hover,.bp:hover{background:transparent;border-color:var(--hueso);color:var(--hueso)}
.b:not(.b-f),.bp.bp-g{background:transparent;border-color:transparent;padding-inline:0;color:var(--hueso);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.35em;text-decoration-color:var(--borde)}
.b:not(.b-f):hover,.bp.bp-g:hover{background:transparent;border-color:transparent;color:var(--hueso);text-decoration-color:var(--hueso)}
/* la flecha ↗ solo en los enlaces que salen de la web (kal_bp solo pone target en los externos) */
.bp:not([target]) i{display:none}
.b:active,.bp:active{transform:translateY(1px)}
.bp i{display:grid;place-items:center;width:14px;height:14px;transition:transform var(--d-2) var(--ease)}
.bp svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.bp:hover i{transform:translate(2px,-2px)}
@media(max-width:420px){.b,.bp{white-space:normal;padding-inline:var(--e-3)}}
.port-cta{display:flex;flex-wrap:wrap;gap:var(--e-1)}

/* ── portada: la foto de la tienda a sangre y el texto a la derecha, para que
   la figura de San Lázaro, a la izquierda, se vea entera ── */
.port{position:relative;display:flex;align-items:center;min-height:calc(var(--alto) - var(--encima));overflow:hidden;border-bottom:1px solid var(--linea);background:var(--fondo)}
.port-fondo{position:absolute;inset:0}
.port-fondo img{object-position:18% 45%;filter:saturate(.8) brightness(.7) contrast(1.04)}
.port-fondo::after{content:'';position:absolute;inset:0;background:linear-gradient(270deg,rgba(11,10,9,.95) 0%,rgba(11,10,9,.86) 34%,rgba(11,10,9,.4) 62%,rgba(11,10,9,.08) 100%),linear-gradient(0deg,rgba(11,10,9,.9) 0%,transparent 26%)}
.port-txt{position:relative;z-index:2;display:grid;grid-template-columns:1fr minmax(0,620px);align-content:center;padding-block:clamp(32px,8vh,96px)}
.port-txt>*{grid-column:2;justify-self:start}
/* los espacios del hero se ajustan a la altura de la pantalla para que quepa entero en una */
.port h1{margin-top:clamp(12px,2.6vh,24px);font-size:max(1.875rem,min(var(--t-h1),6.4vh))}
.port .port-txt>p:not(.estado):not(.port-modelo){margin-top:clamp(12px,2.6vh,24px);max-width:48ch;font-size:var(--t-lead);line-height:1.65;color:var(--hueso-2)}
.port .port-cta{margin-top:clamp(20px,4vh,40px)}
.port .port-txt>p.port-modelo{margin-top:clamp(16px,3.2vh,32px);padding-top:clamp(10px,1.8vh,16px);border-top:1px solid var(--linea-2);font-family:var(--f-t);font-size:var(--t-label);font-weight:500;letter-spacing:0;text-transform:none;color:var(--hueso-2)}
.port-modelo+.estado{margin-top:clamp(8px,1.6vh,16px)}
@media(min-width:901px) and (max-width:1200px){.port-txt{grid-template-columns:1fr minmax(0,520px)}.port-fondo img{object-position:6% 45%}}
@media(max-width:900px){
  .port{align-items:flex-end}
  .port-fondo img{object-position:16% 30%}
  .port-fondo::after{background:linear-gradient(0deg,rgba(11,10,9,.97) 0%,rgba(11,10,9,.93) 48%,rgba(11,10,9,.72) 78%,rgba(11,10,9,.4) 100%)}
  .port .eyebrow{color:var(--hueso-2)}
  .port-txt{grid-template-columns:minmax(0,1fr);padding-block:clamp(24px,6vh,48px) clamp(24px,5vh,40px)}
  .port-txt>*{grid-column:1}
}
/* en móvil los dos botones del hero caben en una fila */
@media(max-width:420px){.port .b-f{padding-inline:18px}}

/* estado abierto/cerrado: un cuadrado pequeño, no un punto */
.estado{display:inline-flex;align-items:center;gap:10px;margin-top:var(--e-3);font-size:var(--t-small);color:var(--piedra)}
.estado::before{content:'';flex:none;width:7px;height:7px;background:var(--linea-2)}
.estado.abierto{color:var(--hueso)}
.estado.abierto::before{background:var(--hueso)}

/* ── franja de garantías: cada dato con su ancho natural, separados por filetes ── */
.gar{display:flex;flex-direction:column;padding-inline:max(var(--margen),calc((100% - var(--ancho)) / 2));border-bottom:1px solid var(--linea)}
.gar div{padding:var(--e-2) 0;border-top:1px solid var(--linea)}
.gar div:first-child{border-top:0}
.gar b{display:block;font-family:var(--f-t);font-size:var(--t-small);font-weight:600;line-height:1.3;letter-spacing:-.005em;color:var(--hueso)}
.gar span{display:block;margin-top:4px;font-size:var(--t-cap);line-height:1.55;color:var(--piedra)}
@media(min-width:900px){
  .gar{flex-direction:row;flex-wrap:wrap;justify-content:space-between}
  .gar div{flex:0 1 auto;padding:var(--e-4) 0 var(--e-4) var(--e-3);border-top:0;border-left:1px solid var(--linea)}
  .gar div:first-child{padding-left:0;border-left:0}
}

/* ── secciones: tres ritmos (--ritmo-*), repartidos para que no respiren todas igual ── */
.sec{padding-block:var(--ritmo-m)}
.sec-0{padding-top:0}
.home section:has(#t-grupos){padding-block:var(--ritmo-l) var(--ritmo-m)}
.home section:has(#t-dest){padding-bottom:var(--ritmo-s)}
.home section:has(#t-busca),.home section:has(#t-pasos){padding-bottom:var(--ritmo-l)}
.home section:has(#t-sobre){padding-bottom:var(--ritmo-s)}
.home section:has(.ayuda):not(:has(#t-busca)){padding-bottom:var(--ritmo-l)}
.home section:has(#t-visita){padding-bottom:var(--ritmo-m)}
.home section:has(#t-faq){padding-bottom:var(--ritmo-l)}
.sec-cab{display:flex;flex-direction:column;align-items:flex-start;margin-bottom:var(--e-6)}
.sec-cab h2{margin-top:var(--e-2)}
.sec-cab>p{margin-top:var(--e-2);max-width:60ch;color:var(--hueso-2)}
.sec-cab:has(>p>.lnk){flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:var(--e-2) var(--e-4)}

/* ── lo que encontrarás: los grupos en cuatro familias, cada una sobre una foto de la tienda ── */
.grupos-cab{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--e-3);margin-bottom:var(--e-6)}
.grupos-cab h2{margin-top:var(--e-2)}
.grupos-cab p{max-width:46ch;color:var(--hueso-2)}
.grupos-cab .port-cta{margin-top:var(--e-3)}
@media(min-width:900px){.grupos-cab{grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:var(--e-8);align-items:end}}
.fam-g{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--e-2)}
@media(min-width:900px){
  .fam-g{grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:minmax(400px,auto);gap:var(--e-3)}
  .fam:nth-child(1){grid-column:1 / 8}
  .fam:nth-child(2){grid-column:8 / 13}
  .fam:nth-child(3){grid-column:1 / 6}
  .fam:nth-child(4){grid-column:6 / 13}
}
.fam{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:flex-end;min-height:320px;overflow:hidden;background:var(--fondo-2);border:1px solid var(--linea)}
.fam-f{position:absolute;inset:0;z-index:-1}
.fam-f img{transition:transform 1.2s var(--ease)}
.fam-f::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(11,10,9,.95) 0%,rgba(11,10,9,.8) 38%,rgba(11,10,9,.22) 78%,rgba(11,10,9,.08) 100%)}
.fam:hover .fam-f img{transform:scale(1.04)}
.fam-t{padding:var(--e-4) var(--e-3)}
@media(min-width:900px){.fam-t{padding:var(--e-5)}}
.fam h3{margin-bottom:var(--e-2);font-size:var(--t-h2);font-weight:600;letter-spacing:-.024em}
.fam-l{display:flex;flex-wrap:wrap;gap:var(--e-1)}
.fam-l a{display:inline-flex;align-items:center;gap:10px;min-height:40px;padding:0 var(--e-2);background:rgba(11,10,9,.5);border:1px solid rgba(239,235,229,.3);border-radius:var(--r-c);font-size:var(--t-small);font-weight:500;color:var(--hueso);transition:background var(--d-1) var(--ease),color var(--d-1) var(--ease),border-color var(--d-1) var(--ease)}
.fam-l a:hover{background:var(--hueso);border-color:var(--hueso);color:var(--fondo)}
.fam-l .num{font-size:var(--t-cap);font-weight:400;color:var(--piedra)}
.fam-l a:hover .num{color:var(--fondo)}
.fam-resto{margin-top:var(--e-3)}
.fam-resto a{background:transparent;border-color:var(--linea-2)}

/* ── pasos de la reserva ── */
.pasos{display:grid;grid-template-columns:minmax(0,1fr);border-top:1px solid var(--linea-2)}
.paso{padding:var(--e-3) 0 var(--e-4);border-bottom:1px solid var(--linea)}
.paso .n{font-family:var(--f-t);font-size:var(--t-cap);font-weight:600;letter-spacing:.04em;color:var(--piedra)}
.paso b{display:block;margin-top:var(--e-2);font-family:var(--f-t);font-size:var(--t-h4);font-weight:600;line-height:1.3;letter-spacing:-.01em}
.paso p{margin-top:var(--e-1);max-width:30ch;font-size:var(--t-small);color:var(--hueso-2)}
@media(min-width:760px){
  .pasos{grid-template-columns:repeat(2,minmax(0,1fr))}
  .paso:nth-child(even){padding-left:var(--e-3);border-left:1px solid var(--linea)}
}
/* en escritorio: título fijo a la izquierda y los cuatro pasos como filas a la derecha */
@media(min-width:1100px){
  section:has(#t-pasos) .env{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);column-gap:calc(100% / 12);align-items:start}
  section:has(#t-pasos) .sec-cab{position:sticky;top:calc(var(--cab) + var(--e-5));margin-bottom:0}
  .pasos{grid-template-columns:minmax(0,1fr)}
  .paso,.paso:nth-child(even){display:grid;grid-template-columns:4ch minmax(0,1fr);column-gap:var(--e-3);padding:var(--e-3) 0;border-left:0;border-bottom:1px solid var(--linea)}
  .paso .n{grid-row:1 / span 2;line-height:1.9}
  .paso b,.paso p{grid-column:2}
  .paso b{margin-top:0}
  .paso p{max-width:52ch}
}

/* ── catálogo ── */
.rej{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--e-2)}
@media(min-width:760px){.rej{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--e-3)}}
@media(min-width:1100px){.rej{grid-template-columns:repeat(4,minmax(0,1fr))}}
.p{position:relative;display:flex;flex-direction:column;min-width:0;background:var(--fondo-2);border:1px solid var(--linea);transition:border-color var(--d-2) var(--ease)}
.p:hover{border-color:var(--linea-2)}
.p-img{position:relative;display:block;width:100%;aspect-ratio:4/5;overflow:hidden;background:var(--sup)}
.p-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.82) brightness(.76) contrast(1.04);transition:transform .9s var(--ease),filter var(--d-3) var(--ease)}
.p:hover .p-img img{transform:scale(1.03);filter:saturate(.9) brightness(.88) contrast(1.04)}
.p-sin{position:absolute;inset:0;background:var(--sup) url(../img/marca-kalunga-96.png?v=hueso) center/28% auto no-repeat;opacity:.3}
.agot .p-img img{filter:grayscale(1) brightness(.6)}
.tag{position:absolute;top:var(--e-1);left:var(--e-1);z-index:2;padding:4px var(--e-1);background:rgba(11,10,9,.88);font-family:var(--f-t);font-size:10px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--hueso)}
.p-cnt{display:flex;flex-direction:column;flex:1;padding:var(--e-2) var(--e-2) var(--e-2)}
.p-fam{font-family:var(--f-t);font-size:var(--t-cap);font-weight:500;line-height:1.3;letter-spacing:0;text-transform:none;color:var(--piedra)}
.p-nom{margin-top:6px;font-family:var(--f-c);font-size:var(--t-small);font-weight:500;line-height:1.4;letter-spacing:0;text-wrap:pretty}
.p-nom button{text-align:left;font-weight:inherit;line-height:inherit;letter-spacing:inherit;transition:color var(--d-1) var(--ease)}
.p-nom button:hover{color:var(--hueso);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.25em}
.p-pie{display:flex;align-items:center;justify-content:space-between;gap:var(--e-1);min-height:calc(40px + var(--e-2));margin-top:auto;padding-top:var(--e-2);border-top:1px solid var(--linea)}
.p-cnt .p-nom+.p-pie{margin-top:var(--e-2)}
.p-eur{font-family:var(--f-t);font-size:1.0625rem;font-weight:600;letter-spacing:-.01em}
.add{flex:none;width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--borde);border-radius:var(--r-c);transition:background var(--d-1) var(--ease),color var(--d-1) var(--ease),border-color var(--d-1) var(--ease),transform var(--d-1) var(--ease)}
.add:hover{background:var(--hueso);border-color:var(--hueso);color:var(--fondo)}
.add:active{transform:translateY(1px)}
.add svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}

.vacio{padding:var(--e-8) var(--e-3);text-align:center;background:var(--fondo-2);border:1px solid var(--linea)}
.vacio b{display:block;margin-bottom:var(--e-1);font-family:var(--f-t);font-size:var(--t-h3);font-weight:600;letter-spacing:-.014em}
.vacio p{max-width:44ch;margin:0 auto var(--e-3);color:var(--hueso-2)}

/* ── franja: el mismo bloque en toda la web para las llamadas a la acción ── */
.ayuda{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--e-4);padding:var(--e-5) var(--e-3);background:var(--fondo-2);border:1px solid var(--linea)}
.ayuda h2{margin-top:var(--e-2)}
.ayuda p{margin-top:var(--e-2);max-width:56ch;color:var(--hueso-2)}
.ayuda-b{display:flex;flex-direction:column;align-items:stretch;gap:var(--e-1)}
@media(min-width:900px){.ayuda{grid-template-columns:minmax(0,7fr) minmax(0,4fr);column-gap:calc(100% / 12);align-items:center;padding:var(--e-8) var(--e-6)}}

/* ── sobre nosotros en portada ── */
.edi{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--e-5)}
.edi-img{aspect-ratio:3/2}
.edi h2{margin-top:var(--e-2)}
.edi p{margin-top:var(--e-2);max-width:52ch;color:var(--hueso-2)}
.edi .port-cta{margin-top:var(--e-4)}
@media(min-width:900px){.edi{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--e-8);align-items:center}}

/* ── visita ── */
.visita{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--e-6)}
.visita h2{margin-top:var(--e-2)}
.visita-d{margin-top:var(--e-2);max-width:48ch;color:var(--hueso-2)}
.visita-d a{color:var(--hueso);border-bottom:1px solid var(--borde)}
.visita-l{display:flex;flex-direction:column;gap:var(--e-1);margin-top:var(--e-2);font-size:var(--t-small);color:var(--hueso-2)}
.visita-l li{position:relative;padding-left:var(--e-3)}
.visita-l li::before{content:'';position:absolute;left:0;top:.85em;width:12px;height:1px;background:var(--borde)}
.visita .hor{margin-top:var(--e-3)}
.visita .port-cta{margin-top:var(--e-4)}
.visita .mapa{aspect-ratio:4/3}
@media(min-width:900px){.visita{grid-template-columns:minmax(0,5fr) minmax(0,6fr);column-gap:calc(100% / 12);align-items:start}.visita .mapa{position:sticky;top:calc(var(--cab) + var(--e-5))}}

.hor{width:100%;max-width:480px;border-collapse:collapse;font-size:var(--t-small)}
.hor th,.hor td{padding:10px 0;border-bottom:1px solid var(--linea);font-weight:400;text-align:left}
.hor tr:first-child th,.hor tr:first-child td{border-top:1px solid var(--linea)}
.hor td{text-align:right;color:var(--hueso-2)}
.hor tr.hoy th,.hor tr.hoy td{color:var(--hueso);font-weight:500}
.hor tr.hoy th::after{content:' · hoy';font-size:var(--t-cap);color:var(--piedra)}

.mapa{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--fondo-2);border:1px solid var(--linea)}
.mapa button{position:absolute;inset:0;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:var(--e-4);text-align:left;color:var(--hueso);transition:background var(--d-2) var(--ease)}
.mapa button:hover{background:var(--sup)}
.mapa button svg{width:26px;height:26px;margin-bottom:auto;fill:none;stroke:var(--borde);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.mapa button b{font-family:var(--f-t);font-size:var(--t-h3);font-weight:500;line-height:1.25;letter-spacing:-.014em}
.mapa button span{font-size:var(--t-cap);color:var(--piedra)}
/* el mapa de Google, pasado a oscuro para que no rompa la página (invertido y
   devuelto a sus tonos: el pin sigue siendo rojo) */
.mapa iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:invert(.9) hue-rotate(180deg) saturate(.55) brightness(.95) contrast(.95)}

/* ── preguntas: título a la izquierda, respuestas a la derecha ── */
.txt{max-width:70ch}
.txt>h2{margin:var(--e-2) 0 var(--e-4)}
.txt:has(>details){display:grid;grid-template-columns:minmax(0,1fr);grid-auto-flow:dense;max-width:none}
@media(min-width:900px){
  .txt:has(>details){grid-template-columns:minmax(0,4fr) minmax(0,7fr);column-gap:calc(100% / 12);align-items:start}
  .txt:has(>details)>*{grid-column:1}
  .txt:has(>details)>:first-child{grid-row:1}
  .txt:has(>details)>h2{grid-row:1 / span 12;margin:var(--e-5) 0 0}
  .txt:has(>details)>details,.txt:has(>details)>p{grid-column:2}
}
.fq{border-bottom:1px solid var(--linea)}
.fq:first-of-type{border-top:1px solid var(--linea-2)}
.fq summary{position:relative;cursor:pointer;list-style:none;padding:var(--e-3) var(--e-6) var(--e-3) 0;font-family:var(--f-t);font-size:var(--t-h4);font-weight:500;line-height:1.4;letter-spacing:-.01em;transition:color var(--d-1) var(--ease)}
.fq summary::-webkit-details-marker{display:none}
.fq summary::before,.fq summary::after{content:'';position:absolute;right:var(--e-1);top:50%;width:14px;height:1.5px;background:var(--borde);transition:transform var(--d-2) var(--ease)}
.fq summary::after{transform:rotate(90deg)}
.fq[open] summary::after{transform:rotate(0)}
.fq summary:hover{color:var(--hueso);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.3em}
.fq p{padding:0 var(--e-6) var(--e-3) 0;max-width:64ch;color:var(--hueso-2)}

/* ── textos legales ── */
.prosa{max-width:72ch}
.prosa h1{margin:var(--e-2) 0 var(--e-5)}
.prosa h2{margin:var(--e-5) 0 var(--e-2);font-size:var(--t-h3)}
.prosa h3{margin:var(--e-4) 0 var(--e-1);font-size:var(--t-h4)}
.prosa p,.prosa li{margin-bottom:var(--e-2);color:var(--hueso-2)}
.prosa ul,.prosa ol{padding-left:var(--e-3);margin-bottom:var(--e-2)}
.prosa ul{list-style:disc}
.prosa ol{list-style:decimal}
.prosa a{color:var(--hueso);text-decoration:underline;text-underline-offset:.2em;text-decoration-color:var(--borde)}
.prosa strong{color:var(--hueso);font-weight:500}
.prosa .prosa-f{margin-top:var(--e-5);font-size:var(--t-cap);color:var(--piedra)}

.e404{display:flex;align-items:center;min-height:60vh}
.e404 h1{margin:var(--e-2) 0 var(--e-3)}
.e404 p{max-width:50ch;color:var(--hueso-2)}
.e404 .port-cta{margin-top:var(--e-4)}

/* ── panel de la reserva ── */
.velo{position:fixed;inset:0;z-index:var(--z-velo);background:var(--velo);opacity:0;pointer-events:none;transition:opacity var(--d-3) var(--ease)}
.velo.on{opacity:1;pointer-events:auto}
.car{position:fixed;top:0;right:0;bottom:0;z-index:var(--z-car);width:min(440px,100%);display:flex;flex-direction:column;background:var(--sup);border-left:1px solid var(--linea-2);box-shadow:var(--sombra);transform:translateX(101%);visibility:hidden;transition:transform .5s var(--ease-s),visibility 0s linear .5s}
.car.on{transform:none;visibility:visible;transition:transform .5s var(--ease-s)}
.car-t{display:flex;align-items:center;justify-content:space-between;padding:var(--e-2) var(--e-2) var(--e-2) var(--e-3);border-bottom:1px solid var(--linea)}
.car-t b{font-family:var(--f-t);font-size:var(--t-label);font-weight:500;letter-spacing:0;text-transform:none}
.car-b{flex:1;overflow-y:auto;padding:0 var(--e-3)}
.li{display:grid;grid-template-columns:64px minmax(0,1fr);gap:var(--e-2);padding:var(--e-3) 0;border-bottom:1px solid var(--linea)}
.li-i{aspect-ratio:4/5;background:var(--fondo-2) center/cover no-repeat;filter:saturate(.82) brightness(.8)}
.li-n{font-size:var(--t-small);font-weight:500;line-height:1.4}
.li-r{display:flex;align-items:center;justify-content:space-between;gap:var(--e-2);margin-top:var(--e-1)}
.qt{display:flex;align-items:center;border:1px solid var(--borde);border-radius:var(--r-c)}
.qt button{width:32px;height:32px;display:grid;place-items:center;font-size:1rem;line-height:1;color:var(--hueso-2);transition:background var(--d-1) var(--ease),color var(--d-1) var(--ease)}
.qt button:hover{background:var(--sup-2);color:var(--hueso)}
.qt span{min-width:24px;text-align:center;font-size:var(--t-cap)}
.li-e{font-family:var(--f-t);font-size:var(--t-small);font-weight:600}
.li-x{margin-top:var(--e-1);font-family:var(--f-t);font-size:var(--t-cap);font-weight:500;letter-spacing:0;text-transform:none;color:var(--piedra);transition:color var(--d-1) var(--ease)}
.li-x:hover{color:var(--hueso)}
.car-v{padding:var(--e-8) 0;font-size:var(--t-small);color:var(--piedra)}
.car-v b{display:block;margin-bottom:var(--e-1);font-family:var(--f-t);font-size:var(--t-h4);font-weight:600;letter-spacing:-.01em;color:var(--hueso)}
.car-p{padding:var(--e-3);border-top:1px solid var(--linea)}
.tot{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--e-1)}
.tot span{font-family:var(--f-t);font-size:var(--t-cap);font-weight:500;letter-spacing:0;text-transform:none;color:var(--piedra)}
.tot b{font-family:var(--f-t);font-size:1.625rem;font-weight:600;letter-spacing:-.02em}
.car-nota{margin-bottom:var(--e-2);font-size:var(--t-cap);line-height:1.6;color:var(--hueso-2)}
.car-campo span{display:block;margin-bottom:var(--e-1);font-size:var(--t-cap);font-weight:500;color:var(--hueso)}
.car-campo input{width:100%;height:48px;margin-bottom:var(--e-2);padding:0 var(--e-2);background:var(--fondo-2);border:1px solid var(--borde);border-radius:var(--r-c);font-size:1rem;transition:border-color var(--d-1) var(--ease)}
.car-campo input:hover{border-color:var(--piedra)}
.car-campo input:focus{outline:2px solid var(--hueso);outline-offset:1px;border-color:var(--hueso)}
.car-p .b{width:100%}
.car-alt{margin-top:var(--e-2);font-size:var(--t-cap);text-align:center;color:var(--piedra)}
.car-alt a{color:var(--hueso)}
.car-alt button{font-size:var(--t-cap);color:var(--piedra);text-decoration:underline;text-underline-offset:3px}
.car-alt button:hover{color:var(--hueso)}

/* ── ficha rápida ── */
.modal{position:fixed;inset:0;z-index:var(--z-modal);display:grid;place-items:center;padding:var(--e-2);opacity:0;visibility:hidden;transition:opacity var(--d-2) var(--ease),visibility 0s linear var(--d-2)}
.modal.on{opacity:1;visibility:visible;transition:opacity var(--d-2) var(--ease)}
.modal-fondo{position:absolute;inset:0;background:var(--velo)}
.modal-c{position:relative;width:min(920px,100%);max-height:calc(var(--vh) - var(--e-4));overflow:auto;display:grid;grid-template-columns:minmax(0,1fr);background:var(--sup);border:1px solid var(--linea-2);box-shadow:var(--sombra);transform:translateY(12px);transition:transform .45s var(--ease-s)}
.modal.on .modal-c{transform:none}
@media(min-width:760px){.modal-c{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.modal-i{aspect-ratio:1;background:var(--fondo-2) center/cover no-repeat;filter:saturate(.85) brightness(.82)}
@media(min-width:760px){.modal-i{aspect-ratio:4/5}}
.modal-i.vacia{background:var(--fondo-2) url(../img/marca-kalunga-96.png?v=hueso) center/28% auto no-repeat;opacity:.5}
.modal-t{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:var(--e-5) var(--e-4)}
.modal-n{margin-top:var(--e-1);font-family:var(--f-t);font-size:var(--t-h2);font-weight:600;line-height:1.1;letter-spacing:-.024em}
.modal-t .d{margin-top:var(--e-2);font-size:var(--t-small);color:var(--hueso-2)}
.modal-e{margin:var(--e-3) 0}
.modal-e b{font-family:var(--f-t);font-size:1.625rem;font-weight:600;letter-spacing:-.02em}
.modal-agot{font-size:var(--t-small);color:var(--piedra)}
.modal-x{position:absolute;top:var(--e-1);right:var(--e-1);z-index:3;width:40px;height:40px;display:grid;place-items:center;background:rgba(11,10,9,.85);border:1px solid var(--linea-2);border-radius:var(--r-c);color:var(--hueso);transition:background var(--d-1) var(--ease),color var(--d-1) var(--ease)}
.modal-x:hover{background:var(--hueso);color:var(--fondo)}
.modal-x svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}

/* ── pie: navegación y NAP ── */
.pie{padding:var(--e-10) 0 var(--e-5);border-top:1px solid var(--linea);background:var(--fondo)}
.pie-r{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--e-5)}
@media(min-width:620px){.pie-r{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1000px){.pie-r{grid-template-columns:minmax(0,5fr) minmax(0,2fr) minmax(0,3fr) minmax(0,2fr);gap:var(--e-4)}}
.pie-a{max-width:40ch}
.pie-logo{display:inline-block}
.pie-logo img{width:140px;height:auto}
.pie-d{margin-top:var(--e-3);max-width:34ch;font-size:var(--t-small);color:var(--hueso-2)}
.pie-nap{margin-top:var(--e-2);font-style:normal;font-size:var(--t-small);line-height:1.75;color:var(--piedra)}
.pie-nap b{font-weight:500;color:var(--hueso)}
.pie-nap a{color:var(--hueso);border-bottom:1px solid var(--borde)}
.pie-nap a:hover{border-color:var(--hueso)}
.pie-h{margin-bottom:var(--e-2);font-family:var(--f-t);font-size:var(--t-label);font-weight:500;line-height:1.4;letter-spacing:0;text-transform:none;color:var(--piedra)}
.pie ul{display:flex;flex-direction:column;gap:var(--e-1)}
.pie li{font-size:var(--t-small);line-height:1.55}
.pie li a{color:var(--hueso-2);transition:color var(--d-1) var(--ease)}
.pie li a:hover{color:var(--hueso)}
.pie-hor li{color:var(--piedra)}
.pie-hor span{display:block;color:var(--hueso-2)}
.pie-l{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--e-2) var(--e-5);margin-top:var(--e-8);padding-top:var(--e-3);border-top:1px solid var(--linea);font-size:var(--t-cap);line-height:1.7;color:var(--piedra)}
.pie-l p{max-width:80ch}
.pie-legal{display:flex;gap:var(--e-3)}
.pie-legal a{transition:color var(--d-1) var(--ease)}
.pie-legal a:hover{color:var(--hueso)}

.pie-legal{flex-wrap:wrap;align-items:baseline}
.pie-ck{padding:0;font:inherit;line-height:inherit;color:inherit;transition:color var(--d-1) var(--ease)}
.pie-ck:hover{color:var(--hueso)}

/* ── aviso de cookies: abajo a la izquierda, sin tapar la página ni bloquearla.
   Aceptar y Rechazar tienen el mismo peso, como pide la AEPD ── */
.ck{position:fixed;left:var(--e-2);right:var(--e-2);bottom:var(--e-2);z-index:var(--z-ck);max-width:460px;padding:var(--e-3);background:var(--sup);border:1px solid var(--linea-2);box-shadow:var(--sombra)}
@media(min-width:620px){.ck{right:auto;left:var(--e-3);bottom:var(--e-3)}}
.ck-t{font-size:var(--t-small);line-height:1.6;color:var(--hueso-2)}
.ck-t b{display:block;margin-bottom:6px;font-family:var(--f-t);font-size:var(--t-label);font-weight:500;letter-spacing:0;text-transform:none;color:var(--piedra)}
.ck-t a{color:var(--hueso);border-bottom:1px solid var(--borde);transition:border-color var(--d-1) var(--ease)}
.ck-t a:hover{border-color:var(--hueso)}
.ck-b{display:grid;grid-template-columns:1fr 1fr;gap:var(--e-1);margin-top:var(--e-2)}
/* Aceptar y Rechazar mantienen el mismo peso (dos botones iguales), como pide la AEPD */
.ck-b .b{min-height:44px;padding-inline:var(--e-2);border-color:var(--borde);text-decoration:none}
.ck-b .b:hover{background:var(--hueso);border-color:var(--hueso);color:var(--fondo)}

/* ── revelado: solo en cabeceras de sección y fotos grandes; lo demás, quieto.
   Nada arranca oculto: solo se oculta si el JS confirma que va a animar (.sfx) ── */
.sfx .rv{opacity:1;transform:none}
.sfx :is(.sec-cab,.grupos-cab,.edi,.collage,.ed-nombre-g).rv:not(.in){opacity:0;transform:translateY(12px)}
.sfx :is(.sec-cab,.grupos-cab,.edi,.collage,.ed-nombre-g).rv.in{opacity:1;transform:none;transition:opacity var(--d-3) var(--ease),transform var(--d-3) var(--ease)}
