/* =====================================================================
   biblioteca-v2 - estilos comunes y de cada bloque
   Origen: maquetas A y B de JOYS (_referencias-v2/a y b), troceadas.
   La landing NO edita este archivo: su tema va al final, solo con
   variables de :root y sus @font-face (lo anade el montaje).
   Los valores de :root de aqui son el tema de JOYS A y solo sirven
   para las paginas de prueba de la biblioteca.
   ===================================================================== */
:root{
  /* superficies */
  --fondo:#FFFFFF;          /* fondo claro de la pagina */
  --fondo-suave:#F4F1EE;    /* claro alterno: equipo-demo suave y galeria-b */
  --galeria-b-fondo:var(--fondo); /* fondo de galeria-b: --fondo o --fondo-suave (regla de color) */
  --texto:#231915;
  --texto-suave:#5E534E;
  --linea:#E2DEDA;          /* filetes sobre fondo claro */
  --guia:#C9C2BD;           /* puntos guia de precios-a */
  --oscuro:#2A1C16;         /* hero-a, datos, galeria-a, precios-b, pie */
  --en-oscuro:#E9E1DC;
  --en-oscuro-suave:#BBAEA6;
  --escaparate:var(--oscuro);        /* fondo de precios-b; con mezcla, distinto de --oscuro */
  --en-escaparate-suave:var(--en-oscuro-suave);
  --acento:#B8212D;         /* hero-b, reserva, botones */
  --acento-hondo:#9E1B26;   /* hover del boton de acento */
  --acento-texto:#B8212D;   /* acento usado como texto sobre --fondo (>= 4,5:1) */
  --en-acento:#FFFFFF;
  --en-acento-suave:#FBE9EA;
  /* tipografia */
  --display:"Barlow Condensed",system-ui,sans-serif;
  --body:"Barlow",system-ui,sans-serif;
  --display-peso:700;
  --display-caja:uppercase; /* uppercase o none, segun la marca */
  --display-tracking:-.01em;
  --marca:var(--display);   /* familia del nombre en cabecera y pie (script: Sacramento) */
  --marca-peso:var(--display-peso);
  --marca-tracking:.04em;
  --marca-escala:1;         /* multiplica el tamano del nombre (los script se ven pequenos) */
  --marca-color:#fff;       /* color del nombre en cabecera y pie (p. ej. el oro de un rotulo) */
  --hero-boton:var(--acento);         /* boton principal de hero-a; otro color si el rotulo lo pide */
  --hero-boton-hondo:var(--acento-hondo);
  --en-hero-boton:var(--en-acento);
  /* forma */
  --radio-boton:2px;        /* B: 999px */
  --radio-foto:2px;         /* B: 12px */
  --wrap:min(1180px,100% - 40px);
  /* encuadre del hero (solo object-position; el recorte ya viene hecho) */
  --hero-pos:center top;
  --hero-pos-movil:center top;
}

/* ---------- base ---------- */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--body);font-size:1.0625rem;line-height:1.6;color:var(--texto);background:var(--fondo);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
ul{list-style:none}
::selection{background:var(--acento);color:var(--en-acento)}
:focus-visible{outline:3px solid currentColor;outline-offset:3px}
.wrap{width:var(--wrap);margin-inline:auto}
h1,h2,h3,.hero-titular{font-family:var(--display);font-weight:var(--display-peso);line-height:.95;letter-spacing:var(--display-tracking);text-wrap:balance}
h1,h2,.hero-titular{text-transform:var(--display-caja)}
.skip-link{position:absolute;left:12px;top:-60px;z-index:20;background:var(--fondo);color:var(--texto);padding:10px 16px;font-weight:700}
.skip-link:focus{top:12px}
/* antetitulo: opcional, solo si dice algo que el titulo no dice (bloque 6) */
.antetitulo{font-weight:700;font-size:1rem;color:var(--acento-texto);margin-bottom:10px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;font-family:var(--display);font-weight:var(--display-peso);font-size:1.25rem;letter-spacing:.02em;line-height:1.2;text-decoration:none;padding:.8em 1.4em;border-radius:var(--radio-boton);border:2px solid transparent;transition:background .2s,color .2s,border-color .2s}
.btn svg{width:1.1em;height:1.1em;flex:none}
.btn-acento{background:var(--acento);color:var(--en-acento)}
.btn-acento:hover{background:var(--acento-hondo)}
.btn-linea{border-color:currentColor;color:inherit}
.btn-linea:hover{background:var(--en-acento);color:var(--texto);border-color:var(--en-acento)}
.btn-claro{background:var(--en-acento);color:var(--acento-texto)}
.btn-claro:hover{background:var(--oscuro);color:var(--en-oscuro)}
.acciones{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}

/* ---------- cabecera-01: va encima del hero, texto claro ---------- */
.cab{position:absolute;inset:0 0 auto 0;z-index:5;color:#fff}
.cab-barra{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:22px}
.cab-marca{text-decoration:none;line-height:1}
.cab-marca b{font-family:var(--marca);font-weight:var(--marca-peso);font-size:calc(2rem * var(--marca-escala));letter-spacing:var(--marca-tracking);color:var(--marca-color);display:block}
.cab-marca span{display:block;font-size:.8rem;letter-spacing:.06em;margin-top:2px}
.cab-nav{display:flex;align-items:center;gap:28px}
.cab-enlace{text-decoration:none;font-weight:700;font-size:.95rem}
.cab-enlace:hover{text-decoration:underline;text-underline-offset:5px}
.cab .btn{font-size:1.05rem;padding:.6em 1.1em}

/* ---------- hero-a: fundido ---------- */
.hero-a{position:relative;background:var(--oscuro);color:#fff}
.hero-a::before{content:"";position:absolute;z-index:1;pointer-events:none;inset:0 0 auto 0;height:200px;background:linear-gradient(rgba(0,0,0,.6),transparent)}
.hero-a-foto{width:100%;height:min(86svh,820px);object-fit:cover;object-position:var(--hero-pos);
  -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 48%,rgba(0,0,0,.35) 78%,transparent 100%);
          mask-image:linear-gradient(to bottom,#000 0%,#000 48%,rgba(0,0,0,.35) 78%,transparent 100%)}
.hero-a-texto{position:relative;z-index:2;margin-top:max(-34svh,-300px);padding-bottom:56px}
.hero-titular{font-size:clamp(3rem,8.4vw,7.2rem);max-width:13ch}
.hero-sub{margin-top:18px;font-size:1.2rem;max-width:46ch}
.hero-a .hero-sub{color:var(--en-oscuro)}
.hero-a .btn-linea{color:var(--en-oscuro)}
/* 26/10 (Pablo): .hero-X .btn-linea va despues de .btn-linea:hover con la misma especificidad y dejaba el texto blanco sobre el fondo blanco del hover */
.hero-a .btn-linea:hover,.hero-c .btn-linea:hover,.hero-d .btn-linea:hover{color:var(--texto)}
.hero-a .btn-acento{background:var(--hero-boton);color:var(--en-hero-boton)}
.hero-a .btn-acento:hover{background:var(--hero-boton-hondo)}

/* ---------- hero-c: partido (23/10/2026) ----------
   Texto sobre --oscuro a la izquierda y la foto vertical (hero-movil, 4:5) a sangre a la derecha, a toda la altura.
   Para locales sin fachada ancha: la foto manda sin quedar encajada en un arco. En <= 900 px la foto va arriba. */
.hero-c{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:min(100svh,900px);background:var(--oscuro);color:#fff}
.hero-c::before{content:"";position:absolute;z-index:1;pointer-events:none;inset:0 0 auto 0;height:180px;background:linear-gradient(rgba(0,0,0,.55),transparent)}
.hero-c-texto{align-self:end;padding:150px clamp(24px,5vw,72px) 72px max(24px,calc((100vw - 1200px)/2))}
.hero-c .hero-titular{font-size:clamp(2.8rem,5.6vw,5.4rem);max-width:12ch}
.hero-c .hero-sub{color:var(--en-oscuro);max-width:40ch}
.hero-c .btn-linea{color:var(--en-oscuro)}
.hero-c .btn-acento{background:var(--hero-boton);color:var(--en-hero-boton)}
.hero-c .btn-acento:hover{background:var(--hero-boton-hondo)}
.hero-c-foto{width:100%;height:100%;object-fit:cover;object-position:var(--hero-pos-movil)}

/* ---------- hero-d: mosaico (23/10/2026) ----------
   Tres fotos a sangre: dos trabajos cuadrados a los lados y la foto del hero (4:5) en el centro, mas alta;
   el titular va encima del fundido a --oscuro, como hero-a. Para locales con buenos trabajos y sin fachada. */
.hero-d{position:relative;background:var(--oscuro);color:#fff;overflow:hidden}
.hero-d::before{content:"";position:absolute;z-index:1;pointer-events:none;inset:0 0 auto 0;height:180px;background:linear-gradient(rgba(0,0,0,.55),transparent)}
.hero-d-mosaico{display:grid;grid-template-columns:1fr 1.25fr 1fr;grid-template-rows:100%;align-items:end;gap:6px;height:min(86svh,820px);
  -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 52%,rgba(0,0,0,.35) 80%,transparent 100%);
          mask-image:linear-gradient(to bottom,#000 0%,#000 52%,rgba(0,0,0,.35) 80%,transparent 100%)}
.hero-d-mosaico img{width:100%;object-fit:cover}
.hero-d-centro{height:100%;object-position:var(--hero-pos-movil)}
.hero-d-lado{height:72%}
.hero-d .hero-titular{font-size:clamp(2.6rem,5.4vw,5rem);max-width:13ch}
.hero-d-texto{position:relative;z-index:2;margin-top:max(-24svh,-220px);padding-bottom:56px}
.hero-d .hero-sub{color:var(--en-oscuro)}
.hero-d .btn-linea{color:var(--en-oscuro)}
.hero-d .btn-acento{background:var(--hero-boton);color:var(--en-hero-boton)}
.hero-d .btn-acento:hover{background:var(--hero-boton-hondo)}

/* ---------- hero-b: placa ---------- */
.hero-b{background:var(--acento);color:var(--en-acento);overflow:hidden;padding-top:96px}
.hero-b-rejilla{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;padding-block:16px 56px}
/* sello de 200 px (antes 300): con 300 el boton de cita caia bajo la pantalla a 1280x800 (Gora, 08/10/2026) */
.sello{width:200px;aspect-ratio:1;border-radius:50%;background:#fff;color:var(--texto);display:grid;place-content:center;text-align:center;margin-bottom:24px}
.sello b{font-family:var(--display);font-weight:var(--display-peso);font-size:4.2rem;line-height:.8;letter-spacing:.02em}
.sello b em{font-style:normal;color:var(--acento-texto)}
.sello span{font-size:1rem;margin-top:10px;letter-spacing:.02em}
.hero-b .hero-titular{font-size:clamp(2.8rem,6.4vw,5.6rem);max-width:12ch;text-transform:none}
.hero-b .hero-sub{color:var(--en-acento-suave);max-width:40ch}
@media (min-width:901px){.hero-b:has(.sello) .hero-titular{font-size:clamp(2.8rem,5.2vw,4.6rem)}}  /* con sello, titular algo menor (Gora) */
/* titular en dos tamanos: <span class="hero-titular-pie"> dentro de HERO_TITULAR, con un espacio delante (Clarobscur, 08/10/2026) */
.hero-titular-pie{display:block;font-size:.5em;line-height:1.1;margin-top:.3em}
.hero-b-fachada{position:relative;justify-self:end;width:min(100%,540px)}  /* 460 -> 540 (Adrian, 08/10/2026) */
.hero-b-fachada img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:var(--hero-pos-movil);border-radius:120px 120px 0 0}
/* el boton de cabecera es del color de la placa: borde claro para que se lea como boton (Clarobscur, C7) */
body:has(.hero-b) .cab .btn-acento{border-color:var(--en-acento)}
/* hero-b: un solo color fuerte (Adrian, 08/10/2026, Clarobscur y Gora). La placa se alarga a datos-01 y servicios
   (precios-b) pasa a claro: placa + otro oscuro + intro claro estrecho + servicios oscuros se leia como tricolor.
   El oscuro queda para el pie. visual comprueba --en-acento-suave sobre --acento (>= 4,5:1) y los textos sobre --fondo-suave. */
body:has(.hero-b) .datos{background:var(--acento);color:var(--en-acento-suave);border-top:1px solid rgba(255,255,255,.22)}
body:has(.hero-b) .precios-b{background:var(--fondo-suave);color:var(--texto)}
body:has(.hero-b) .precios-b::before{border-color:color-mix(in srgb,var(--texto) 16%,transparent)}
body:has(.hero-b) .precios-b .precios-nota{color:var(--acento-texto)}
body:has(.hero-b) .precios-b .fila.sin-precio,body:has(.hero-b) .precios-b .marcas{color:var(--texto-suave)}
body:has(.hero-b) .precios-b .marcas b{color:var(--texto)}
body:has(.hero-b) .precios-b .grupo h3{border-bottom-color:var(--texto)}
.hero-b-fachada figcaption{position:absolute;left:-28px;bottom:36px;background:#fff;color:var(--texto);font-family:var(--display);font-weight:var(--display-peso);font-size:1.15rem;line-height:1.15;padding:14px 18px;max-width:220px}

/* ---------- datos-01 ---------- */
.datos{background:var(--oscuro);color:var(--en-oscuro-suave);border-top:1px solid rgba(255,255,255,.12)}
.datos-rejilla{display:grid;grid-template-columns:1fr;gap:32px;padding-block:34px 44px}
/* 09/10: todos los datos en una fila desde 700 px; con auto-fit 220px, 3 datos a 768 caian en 2 + 1 (P9) */
@media (min-width:700px){.datos-rejilla{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:1fr}}
.datos-titulo{font-family:var(--display);font-weight:var(--display-peso);font-size:1.35rem;line-height:1.1;color:#fff;margin-bottom:6px}
.datos a{color:#fff;text-underline-offset:4px}

/* ---------- intro-01 ---------- */
.intro{padding-block:96px 40px}
/* intro en --oscuro (zona INTRO_OSCURO): con hero-a, une la intro a datos-01 en un solo bloque oscuro (Adrian, Pablo 23/10: oscuro + tira blanca fina + oscuro no) */
.intro:has(.intro-oscuro){background:var(--oscuro);color:var(--en-oscuro);padding-block:24px 88px}
.intro:has(.intro-oscuro) h1{color:#fff}
.intro:has(.intro-oscuro) .intro-rejilla>p{color:var(--en-oscuro-suave)}
.intro-rejilla{display:grid;grid-template-columns:1.1fr 1fr;gap:64px;align-items:end}
.intro h1{font-size:clamp(2.4rem,5vw,4.2rem)}
.intro-rejilla>p{color:var(--texto-suave);font-size:1.15rem;max-width:52ch}

/* ---------- precios (comun a A y B) ---------- */
.precios-a h2,.precios-b h2{font-size:clamp(2.4rem,5vw,4.2rem)}
.precios-nota{margin-top:10px;max-width:60ch}
.grupo{break-inside:avoid}
.fila{display:flex;align-items:baseline;gap:10px}
.fila .precio{white-space:nowrap}
.marcas{margin-top:48px;max-width:70ch}

/* precios-a: lista con puntos guia */
.precios-a{padding-block:40px 110px}
.precios-a .precios-nota,.precios-a .marcas{color:var(--texto-suave)}
.precios-a .marcas b{color:var(--texto)}
.precios-a-rejilla{columns:2 420px;column-gap:72px;margin-top:20px}
.precios-a .grupo{padding-top:34px}
.precios-a .grupo h3{font-size:2rem;color:var(--acento-texto);margin-bottom:10px}
.precios-a .fila{padding-block:9px;border-bottom:1px solid var(--linea)}
.precios-a .fila::after{content:"";order:1;flex:1 1 24px;border-bottom:2px dotted var(--guia);transform:translateY(-4px)}
.precios-a .fila .precio{order:2;font-family:var(--display);font-weight:var(--display-peso);font-size:1.3rem}
.precios-a .fila.sin-precio::after{display:none}

/* precios-b: escaparate oscuro */
.precios-b{background:var(--escaparate);color:#fff;padding-block:96px;position:relative}
.precios-b::before{content:"";position:absolute;inset:24px;border:1px solid rgba(255,255,255,.14);pointer-events:none}
.precios-b h2{letter-spacing:.02em}
.precios-b .precios-nota,.precios-b .marcas{color:var(--en-escaparate-suave)}
.precios-b .marcas b{color:#fff}
.precios-b-rejilla{display:grid;grid-template-columns:repeat(3,1fr);gap:40px 56px;margin-top:56px}
/* con 1 o 2 grupos no se deja una columna vacia (Yady Bellas, 13/10/2026, P9) */
@media (min-width:901px){
  .precios-b-rejilla:has(>.grupo:only-child){grid-template-columns:minmax(0,520px)}
  .precios-b-rejilla:has(>.grupo:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,520px))}
}
.precios-b .grupo h3{font-size:1.7rem;text-transform:var(--display-caja);letter-spacing:.04em;padding-bottom:10px;border-bottom:2px solid #fff;margin-bottom:8px}
.precios-b .fila{justify-content:space-between;gap:16px;font-family:var(--display);font-size:1.3rem;line-height:1.3;padding-block:6px;text-transform:var(--display-caja);letter-spacing:.02em}
.precios-b .fila .precio{font-weight:var(--display-peso)}
.precios-b .fila.sin-precio{color:var(--en-escaparate-suave);text-transform:none;font-family:var(--body);font-size:1rem}

/* ---------- galeria-a: deslizable sobre el oscuro ---------- */
.galeria-a{background:var(--oscuro);color:#fff;padding-block:100px}
.galeria-a .antetitulo{color:var(--en-oscuro-suave)}
.galeria-a h2{font-size:clamp(2.4rem,5vw,4.2rem);max-width:14ch}
.galeria-a-salon,.galeria-a-trabajo{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}
.galeria-a-salon{margin-top:44px}
.galeria-a-trabajo{margin-top:14px}
/* cada foto en su proporcion exacta (salon 4:5, trabajo 1:1): sin recortes ocultos (P3) */
.galeria-a-salon img{flex:1 1 0;min-width:0;max-width:calc((100% - 28px)/3);aspect-ratio:4/5;object-fit:cover;border-radius:var(--radio-foto)}
.galeria-a-trabajo img{flex:0 0 calc((100% - 56px)/5);min-width:0;aspect-ratio:1;object-fit:cover;border-radius:var(--radio-foto)}

/* ---------- galeria-b: pared ---------- */
.galeria-b{padding-block:100px;background:var(--galeria-b-fondo)}
.galeria-b-cab{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:end}
.galeria-b h2{font-size:clamp(2.6rem,5.6vw,4.6rem)}
.galeria-b-cab>p{color:var(--texto-suave);font-size:1.15rem;max-width:50ch}
.galeria-b-muro{columns:3;column-gap:16px;margin-top:56px}
.galeria-b-muro img{width:100%;margin-bottom:16px;break-inside:avoid;border-radius:var(--radio-foto)}
.galeria-b-muro img.redondo{border-radius:50%;aspect-ratio:1;object-fit:cover}

/* ---------- reserva-a: banda ---------- */
.reserva-a{background:var(--acento);color:var(--en-acento);padding-block:84px}
.reserva-a-rejilla{display:grid;grid-template-columns:1.4fr 1fr;gap:56px;align-items:center}
.reserva-a h2{font-size:clamp(2.6rem,6vw,5rem)}
.reserva-a p{margin-top:14px;font-size:1.15rem;max-width:40ch;color:var(--en-acento-suave)}
.reserva-a .btn{margin-top:28px}  /* 09/10: el boton quedaba pegado al parrafo (0 px, Libra a 1024) */
.horario{border-top:2px solid rgba(255,255,255,.5)}
.horario li{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.3);font-size:1.1rem}
.horario li b{font-family:var(--display);font-weight:var(--display-peso);font-size:1.35rem}

/* ---------- reserva-b: cita ---------- */
.reserva-b{background:var(--acento);color:var(--en-acento);padding-block:90px;text-align:center}
.reserva-b h2{font-size:clamp(3rem,8vw,6.5rem);max-width:14ch;margin-inline:auto}
.reserva-b>.wrap>p{margin:18px auto 0;font-size:1.2rem;color:var(--en-acento-suave);max-width:44ch}
.reserva-b .acciones{justify-content:center;margin-top:34px}
.horas{display:flex;justify-content:center;flex-wrap:wrap;gap:12px 40px;margin-top:44px;font-family:var(--display);font-weight:var(--display-peso);font-size:1.35rem}
.horas span{display:block;font-family:var(--body);font-weight:400;font-size:1rem;color:var(--en-acento-suave)}

/* ---------- contacto (comun a A y B) ---------- */
.contacto-a,.contacto-b{padding-block:96px}
.contacto-rejilla{display:grid;grid-template-columns:1fr 1.2fr;gap:56px;align-items:center}
.contacto-a h2,.contacto-b h2{font-size:clamp(2.4rem,5vw,4rem)}
.contacto-a address,.contacto-b address{font-style:normal;margin-top:20px;font-size:1.15rem}
.contacto-a address a,.contacto-b address a{display:inline-block;margin-top:8px;font-weight:700;color:var(--acento-texto);text-underline-offset:4px}
.contacto-a address .red,.contacto-b address .red{display:inline-flex;align-items:center;gap:.45em}
.red svg{width:1.15em;height:1.15em;flex:none}
.mapa{position:relative;display:block;overflow:hidden;border-radius:var(--radio-foto)}
.mapa img{width:100%}
.contacto-a .mapa span{position:absolute;left:16px;bottom:16px;background:var(--oscuro);color:#fff;font-family:var(--display);font-weight:var(--display-peso);font-size:1.1rem;padding:.5em 1em}
.contacto-b .mapa{border-radius:12px}
.contacto-b .mapa span{position:absolute;right:16px;bottom:16px;width:120px;aspect-ratio:1;border-radius:50%;background:var(--acento);color:var(--en-acento);display:grid;place-content:center;text-align:center;font-family:var(--display);font-weight:var(--display-peso);font-size:1.05rem;line-height:1.1}

/* ---------- equipo-demo (hueco de demo, de la v1) ---------- */
.equipo-demo{padding-block:96px}
.equipo-demo-caja{max-width:min(720px,100% - 40px);text-align:center}
.equipo-demo h2{font-size:clamp(2.4rem,5vw,4rem)}
.equipo-demo-hueco{border:1px dashed var(--texto-suave);padding:28px 24px;margin-top:28px}
.equipo-demo-hueco p{color:var(--texto-suave);font-size:1.15rem;max-width:56ch;margin-inline:auto}
.equipo-demo-hueco .equipo-demo-etiqueta{display:inline-block;font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--acento-texto);border:1px dashed var(--acento-texto);padding:4px 10px;margin-bottom:16px}
/* variantes de fondo (EQUIPO_FONDO): " suave" = claro alterno; " oscuro" = --oscuro */
.equipo-demo.suave{background:var(--fondo-suave)}
.equipo-demo.oscuro{background:var(--oscuro);color:var(--en-oscuro)}
.equipo-demo.oscuro .equipo-demo-hueco{border-color:var(--en-oscuro-suave)}
.equipo-demo.oscuro .equipo-demo-hueco p{color:var(--en-oscuro-suave)}
.equipo-demo.oscuro .equipo-demo-hueco .equipo-demo-etiqueta{color:var(--en-oscuro);border-color:var(--acento)}

/* ---------- resenas-01 (13/10/2026, Yady Bellas): cinta de citas de Google que se desliza sola ---------- */
.resenas{padding-block:96px;overflow:hidden}
.resenas.suave{background:var(--fondo-suave)}
.resenas-cab{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:20px 48px}
.resenas h2{font-size:clamp(2.4rem,5vw,4.2rem)}
.resenas-nota{display:inline-flex;flex-direction:column;gap:2px;text-decoration:none;font-weight:700;color:var(--texto-suave)}
.resenas-nota:hover{color:var(--texto)}
.estrellas{color:var(--acento-texto);font-size:1.4rem;letter-spacing:.12em;line-height:1}
/* fila deslizable con snap: dos grupos iguales; cada tarjeta lleva el hueco como margen derecho (no gap), asi un grupo
   mide 5 pasos exactos y el JS del bloque salta un grupo sin que se vea (R5). Avanza sola cada data-paso ms. */
.resenas-pista{margin-top:38px;padding-block:10px 20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;
  padding-inline:max(20px,(100% - 1180px)/2);scroll-padding-inline:max(20px,(100% - 1180px)/2)}
.resenas-pista::-webkit-scrollbar{display:none}
.resenas-pista:focus-visible{outline:2px solid var(--texto);outline-offset:4px}
.resenas-cinta{display:flex;width:max-content}
/* con raton: la tarjeta de debajo se realza un poco; padding-block de la pista deja sitio a la sombra (Adrian, 14/10) */
@media (hover:hover){
  .resena{transition:transform .2s ease,box-shadow .2s ease}
  .resena:hover{transform:translateY(-3px);box-shadow:0 8px 22px rgba(0,0,0,.09)}
}
.resenas-grupo{display:flex;align-items:stretch}
.resena{flex:none;width:360px;margin-right:20px;scroll-snap-align:start;display:flex;flex-direction:column;gap:14px;padding:28px;border-radius:var(--radio-foto);background:var(--fondo)}
.resenas:not(.suave) .resena{background:var(--fondo-suave)}
.resena .estrellas{font-size:1.05rem}
.resena blockquote{flex:1}
.resena blockquote p{font-size:1.02rem}
.resena figcaption{font-size:.95rem;color:var(--texto-suave)}
.resena figcaption b{color:var(--texto)}
.resena-mas{display:none;align-self:flex-start;margin-top:-6px;padding:0;border:0;background:none;font:inherit;font-weight:700;font-size:.92rem;color:var(--acento-texto);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
/* sin movimiento: no avanza sola (lo decide el JS) y sin la copia */
@media (prefers-reduced-motion:reduce){.resenas-grupo[aria-hidden]{display:none}}

/* ---------- whatsapp-flotante (solo <= 900 px) ---------- */
.wa-flotante{display:none}
@media (max-width:900px){
  .wa-flotante{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:20;width:58px;height:58px;border-radius:50%;
    display:grid;place-items:center;background:var(--acento);color:var(--en-acento);box-shadow:0 0 0 2px var(--en-acento),0 4px 14px rgba(0,0,0,.28)}
  .wa-flotante svg{width:30px;height:30px}
  .wa-flotante:active{background:var(--acento-hondo)}
  /* donde se puede, aparece al dejar atras el hero (el hero ya lleva su boton); si no, se ve siempre */
  @supports (animation-timeline:scroll()){
    .wa-flotante{animation:wa-entra linear both;animation-timeline:scroll(root);animation-range:40vh 75vh}
    @keyframes wa-entra{from{opacity:0;transform:translateY(16px);visibility:hidden}to{opacity:1;transform:none;visibility:visible}}
  }
}
@media (max-width:900px) and (prefers-reduced-motion:reduce){.wa-flotante{animation:none}}

/* ---------- legal y pie ---------- */
.legal{padding-block:0 40px;font-size:.85rem;color:var(--texto-suave)}
.legal summary{cursor:pointer;padding-block:4px}
.legal details+details{margin-top:6px}
.legal p{margin-top:8px;max-width:50ch}
.pie{background:var(--oscuro);color:var(--en-oscuro-suave);padding-block:36px;font-size:.9rem}
.pie b{font-family:var(--marca);font-weight:var(--marca-peso);color:var(--marca-color);font-size:calc(1.4rem * var(--marca-escala));margin-right:12px}
/* el boton flotante (58 px + 16 de margen) tapaba el final del pie a 390 (revisor, Yady Bellas, 14/10/2026) */
@media (max-width:900px){.pie{padding-bottom:calc(90px + env(safe-area-inset-bottom))}}

/* ---------- movil y tableta ---------- */
@media (max-width:900px){
  .cab-enlace{display:none}
  .cab-marca b{font-size:calc(1.6rem * var(--marca-escala))}
  /* hero-a: la foto en su proporcion (16:9 en tableta, 4:5 en movil), entera */
  .hero-a-foto{height:auto;object-position:var(--hero-pos-movil)}
  .hero-a-texto{margin-top:-14svh;padding-bottom:40px}
  .hero-c{grid-template-columns:1fr;min-height:0}
  .hero-c-foto{grid-row:1;height:auto;aspect-ratio:4/5;max-height:72svh}
  .hero-c-texto{grid-row:2;padding:28px 24px 44px}
  .hero-d-mosaico{grid-template-columns:1fr 1.6fr 1fr;height:62svh;gap:4px}
  .hero-d-texto{margin-top:-14svh;padding-bottom:40px}
  .hero-b{padding-top:84px}
  .hero-b-rejilla{grid-template-columns:1fr;gap:40px;padding-block:8px 56px}
  /* movil y tableta: el sello baja a la esquina del arco, como una pegatina, para que la foto se vea entera (Gora, 08/10/2026).
     El div del texto pasa a display:contents y el sello comparte celda (fila 5) con la foto. */
  .hero-b:has(.sello) .hero-b-rejilla{gap:0}
  .hero-b:has(.sello) .hero-b-rejilla>div:first-child{display:contents}
  .hero-b .sello{grid-row:5;grid-column:1;justify-self:start;align-self:start;position:relative;z-index:1;
    width:104px;margin:14px 0 0 calc((100% - min(100%,520px)) / 2 - 4px);box-shadow:0 6px 18px rgba(0,0,0,.18)}
  .hero-b .sello b{font-size:2.1rem}
  .hero-b .sello span{font-size:.7rem;margin-top:4px}
  .hero-b:has(.sello) .hero-b-fachada{grid-row:5;grid-column:1;margin-top:34px}
  .hero-b-fachada{justify-self:center;width:min(100%,520px)}  /* centrada: a 768 dejaba placa vacia a la derecha (Clarobscur, C7) */
  .hero-b-fachada figcaption{left:12px;bottom:12px}
  .intro{padding-block:64px 20px}
  .intro-rejilla,.reserva-a-rejilla,.contacto-rejilla,.galeria-b-cab{grid-template-columns:1fr;gap:28px}
  .precios-b{padding-block:72px}
  .precios-b::before{inset:12px}
  .precios-b-rejilla{grid-template-columns:1fr;gap:36px}
  .galeria-a{padding-block:72px}
  /* galeria-a: las dos filas se deslizan */
  .galeria-a-salon,.galeria-a-trabajo{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px}
  .galeria-a-salon img{flex:0 0 78%;max-width:none;scroll-snap-align:start}
  .galeria-a-trabajo img{flex:0 0 62%;scroll-snap-align:start}
  .galeria-b,.contacto-a,.contacto-b,.equipo-demo,.resenas{padding-block:64px}
  .resenas-pista{margin-top:22px}
  .resena{width:calc((100vw - 64px) / 2);margin-right:10px;padding:22px}  /* dos enteras y asoma la tercera (Adrian, 14/10) */
  .galeria-b-muro{columns:2;column-gap:10px;margin-top:36px}
  .galeria-b-muro img{margin-bottom:10px}
  .reserva-a,.reserva-b{padding-block:64px}
}
@media (max-width:600px){
  /* la tarjeta anterior asomaba 10 px por la izquierda: se funde en el borde */
  .resenas-pista{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 18px);mask-image:linear-gradient(90deg,transparent 0,#000 18px)}
  /* largas cortadas a 9 lineas con "Leer mas" (tarjetas de ~350 px como mucho): la larga ya no estira la fila (Adrian, 14/10) */
  .resena blockquote p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:9;line-clamp:9;overflow:hidden}
  .resena.abierta blockquote p{display:block;-webkit-line-clamp:unset;line-clamp:none}
  .resena.larga .resena-mas{display:block}
  .resena{padding:16px;gap:10px}
  .resena blockquote p{font-size:.92rem}
  .resena figcaption{font-size:.85rem}
  .cab .btn{font-size:.95rem;padding:.55em .9em}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* ---------- tema Bellessere Hair Salon (20/10/2026; ronda 2 27/10) ---------- */
:root{
  --fondo:#F7F5F3;
  --fondo-suave:#ECEEE3;
  --galeria-b-fondo:var(--fondo-suave);
  --texto:#1F1F1F;
  --texto-suave:#555E50;
  --oscuro:#283033;
  --en-oscuro:#F7F5F3;
  --en-oscuro-suave:#C3C9C6;
  --acento:#3A5138;
  --acento-hondo:#2B3D2A;
  --acento-texto:#3A5138;
  --en-acento:#FFFFFF;
  --en-acento-suave:#D9E3D0;
  --hero-boton:#FFFFFF;
  --en-hero-boton:#283033;
  --hero-boton-hondo:#E6E2DC;
  --display:"Bodoni Moda",Georgia,serif;
  --body:"Jost",system-ui,sans-serif;
  --display-peso:500;
  --display-caja:none;
  --display-tracking:0;
  --marca-tracking:.06em;
  --marca-color:#E8C6BE;
  --radio-boton:2px;
  --radio-foto:2px;
  --hero-pos-movil:center top;
}
/* el nombre en versalitas abiertas, como el rotulo (p003) */
.cab-marca b,.pie b{text-transform:uppercase}
/* galeria: solo-movil (tocador y plantas, que en escritorio van en el hero-d) y solo-ancho (t4, para casar las 2 columnas) */
@media (min-width:901px){.galeria-b-muro img.solo-movil{display:none}}
@media (max-width:900px){.galeria-b-muro img.solo-ancho{display:none}}
.reserva-a .btn+.btn{margin-left:12px}  /* Reservar + WhatsApp en la misma fila (28/10) */
@media (max-width:480px){.reserva-a .btn+.btn{margin-left:0}}  /* en movil bajan de fila: alineados a la izquierda */
/* tienda de Abril et Nature bajo la linea de marcas (28/10): boton en linea, en el verde de la marca */
.tienda{margin-top:20px;max-width:70ch;display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px}
.tienda p{margin:0;flex:1 1 34ch;color:var(--texto-suave)}
.tienda p b{color:var(--texto)}
.tienda .btn{font-size:1.05rem;padding:.6em 1.1em;color:var(--acento-texto)}
.tienda .btn:hover{background:var(--acento);color:var(--en-acento);border-color:var(--acento)}
.legal p{max-width:110ch}  /* aviso legal mas ancho, menos parrafo gordo (Adrian 27/10) */
/* hero-c en escritorio: texto centrado en vez de al pie, para que los botones se vean al abrir (Adrian 27/10, 1850x949) */
@media (min-width:901px){.hero-c-texto{align-self:center;padding-top:110px;padding-bottom:56px}}
@media (min-width:901px){.hero-d{padding-top:91px}.hero-d-mosaico{height:min(66svh,680px)}.hero-d .hero-titular{font-size:clamp(2.6rem,4.6vw,4.4rem)}}.hero-d-lado{height:88%}.hero-d-lado:first-child{object-position:center top}.hero-d .hero-titular,.hero-d .hero-sub{text-shadow:0 2px 14px rgba(0,0,0,.55),0 1px 3px rgba(0,0,0,.35)}.hero-d-mosaico{-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 70%,rgba(0,0,0,.5) 88%,transparent 100%);mask-image:linear-gradient(to bottom,#000 0%,#000 70%,rgba(0,0,0,.5) 88%,transparent 100%)}@media (max-width:900px){.hero-d{padding-top:72px}.hero-d-mosaico{grid-template-columns:1fr;grid-template-rows:auto;height:auto}.hero-d-centro{height:auto;aspect-ratio:4/5}.hero-d-lado{display:none}}@font-face{font-family:"Bodoni Moda";font-style:normal;font-weight:400 700;font-display:swap;src:url("fuentes/bodoni-moda-normal-400-700-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:"Bodoni Moda";font-style:normal;font-weight:400 700;font-display:swap;src:url("fuentes/bodoni-moda-normal-400-700-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:"Jost";font-style:normal;font-weight:400 700;font-display:swap;src:url("fuentes/jost-normal-400-700-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:"Jost";font-style:normal;font-weight:400 700;font-display:swap;src:url("fuentes/jost-normal-400-700-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}
