
/* =========================================================================
   NÍTIDO STUDIO — segunda dirección de arte
   Recorrido: niebla y movimiento -> ruido denso -> luz -> grafito ->
   sistema editorial -> proceso progresivo -> presencia humana -> blanco.
   Una sola familia tipográfica (Jost). El contraste lo hacen la escala,
   el peso, el espacio y el fondo.
   ========================================================================= */
:root{
  --carbon:#17181A;
  --grafito:#4E4F4D;
  --mineral:#B8B9B6;
  --niebla:#CFD0CD;
  --roto:#F2F2EF;
  --puro:#FFFFFF;
  --piedra:#5F6165;   /* AA sobre blanco roto, mineral suave y blanco */
  --linea:#C2C3BF;

  --tipo:"Jost","Century Gothic","Helvetica Neue",Arial,sans-serif;
  /* retícula global: un solo margen lateral para toda la web */
  --margen:clamp(28px,6vw,120px);
  /* Margen izquierdo del contenido, del apartado 01 al pie.
     La apertura queda fuera a propósito: es imagen a pantalla completa. */
  --margen-contenido:clamp(24px,6vw,90px);
  --micro:11px;
}
/* portátiles y tablets: el clamp por vw se queda corto, se fija por tramos */
@media(min-width:1441px){ :root{--margen-contenido:90px} }
@media(min-width:1024px) and (max-width:1440px){ :root{--margen:clamp(64px,6vw,88px); --margen-contenido:clamp(70px,6vw,86px)} }
@media(min-width:768px)  and (max-width:1023px){ :root{--margen:48px; --margen-contenido:36px} }
@media(max-width:767px){ :root{--margen:28px; --margen-contenido:24px} }
@media(max-width:360px){ :root{--margen:24px; --margen-contenido:20px} }

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto} }
body{
  margin:0; background:var(--niebla); color:var(--carbon);
  font-family:var(--tipo); font-size:17px; line-height:1.7; font-weight:400;
  letter-spacing:.005em; -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
/* pesos: 200 solo para titulares muy grandes, 400 para cuerpo e interfaz */
@media(max-width:700px){
  .colosal{font-weight:300}
  .grande{font-weight:300}
}
a{color:inherit; text-decoration:none}
img{max-width:100%; height:auto; display:block}   /* nunca se deforman */
:focus-visible{outline:2px solid currentColor; outline-offset:5px}
.saltar{
  position:absolute; left:-9999px; top:0; z-index:100;
  background:var(--carbon); color:var(--roto); padding:12px 20px;
  font-size:12px; letter-spacing:.14em; text-transform:uppercase;
}
.saltar:focus{left:0}

/* ---------- sistema tipográfico ---------- */
.micro{font-size:var(--micro); letter-spacing:.24em; text-transform:uppercase; font-weight:400; color:var(--piedra)}
.colosal{font-weight:200; font-size:clamp(42px,9.6vw,152px); line-height:.94; letter-spacing:-.01em; text-transform:uppercase; margin:0}
.grande{font-weight:200; font-size:clamp(32px,5.8vw,84px); line-height:1.02; letter-spacing:-.005em; text-transform:uppercase; margin:0}
.media{font-weight:300; font-size:clamp(23px,3.2vw,46px); line-height:1.1; text-transform:uppercase; margin:0}
.cuerpo{font-size:clamp(16px,1.15vw,18px); line-height:1.75; max-width:44ch; margin:0 0 18px; font-weight:400}
.suave{color:var(--piedra)}
.estrecha{max-width:34ch}
.envoltura{padding-left:var(--margen); padding-right:var(--margen)}
.escena{position:relative; padding:clamp(90px,16vh,190px) 0}
.numero-escena{
  position:absolute; top:clamp(30px,6vh,70px); right:var(--margen);
  font-size:clamp(60px,12vw,180px); font-weight:200; line-height:1;
  color:currentColor; opacity:.07; pointer-events:none; user-select:none;
}

/* ---------- fondos por fase del relato ---------- */
.f-niebla{background:var(--niebla)}
.f-mineral{background:var(--mineral)}
.f-roto{background:var(--roto)}
/* La presentación del estudio va un punto más densa: más íntima y contenida.
   "Lo que construimos" abre en un gris casi blanco: más luminoso y funcional. */
.f-estudio{background:#E3E3E0}
.f-claro{background:#F3F3F0}
.f-grafito{background:var(--grafito); color:var(--roto)}
.f-puro{background:var(--puro)}
.f-grafito .micro{color:#C7C8C4}
.f-grafito .suave{color:#C7C8C4}
/* sobre gris mineral, todo el texto va en carbón: el gris secundario no llega a AA */
.f-mineral .micro,.f-mineral .suave,.f-mineral .cuerpo{color:var(--carbon)}
.f-mineral .suave{opacity:.78}   /* jerarquía sin perder contraste */
/* fundidos entre fases contiguas */
.fundido-arriba::before{
  content:""; position:absolute; inset:0 0 auto 0; height:clamp(60px,10vh,130px);
  background:linear-gradient(180deg, var(--desde,transparent), transparent);
  pointer-events:none;
}


/* ---------- retícula del contenido (del apartado 01 al pie) ----------
   Un único margen izquierdo para todo lo que no sea la apertura.       */
main > section:not(.apertura),
footer.pie{padding-left:var(--margen-contenido)}
main > section:not(.apertura).envoltura,
footer.pie.envoltura{padding-left:var(--margen-contenido); padding-right:var(--margen)}
#juntos{padding-left:0}                     /* su interior ya lo aplica */
.humano .palabra-lado{padding-left:var(--margen-contenido)}
@media(max-width:1100px){
  .humano .imagen-lado{padding-left:var(--margen-contenido)}
}

/* ---------- cabecera ---------- */
.cabecera{
  position:fixed; inset:0 0 auto 0; z-index:60;
  display:flex; align-items:center; justify-content:space-between;
  padding:20px var(--margen);
  transition:background .5s ease, padding .4s ease, box-shadow .4s ease, color .5s ease;
}
.cabecera.compacta{background:rgba(242,242,239,.9); backdrop-filter:blur(14px); padding-top:12px; padding-bottom:12px}
.cabecera.inversa{color:var(--roto)}
.cabecera.inversa.compacta{background:rgba(30,31,30,.86)}
.cabecera.inversa .logo img{filter:invert(1) brightness(1.4)}
.cabecera.inversa .nav a{color:#D5D6D3}
.cabecera.inversa .nav a.hablemos{color:var(--roto); border-color:var(--roto)}
.logo{display:block; line-height:0}
.logo img{width:auto; height:clamp(21px,2.4vw,28px); filter:contrast(1.35)}
.nav{display:flex; align-items:center; gap:clamp(16px,2.4vw,30px)}
.nav a{font-size:var(--micro); letter-spacing:.2em; text-transform:uppercase; color:#3D3E41; font-weight:400; transition:color .4s ease}
.nav a:hover{color:var(--carbon)}
.nav a.hablemos{color:var(--carbon); border-bottom:1px solid currentColor; padding-bottom:3px}
.abrir-menu{display:none; background:none; border:0; padding:0; cursor:pointer; font:inherit; font-size:var(--micro); letter-spacing:.2em; text-transform:uppercase; color:inherit}
@media(max-width:900px){ .nav .interna{display:none} .abrir-menu{display:inline-block} }
.panel{
  position:fixed; inset:0; z-index:55; background:var(--roto); color:var(--carbon);
  display:flex; flex-direction:column; justify-content:center; gap:20px; padding:0 var(--margen);
  transform:translateY(-100%); transition:transform .55s cubic-bezier(.7,0,.2,1);
}
.panel.abierto{transform:none}
.panel a{font-size:clamp(28px,9vw,46px); font-weight:200; text-transform:uppercase}

/* =======================================================================
   01 APERTURA — atmósfera, movimiento y foco
   ======================================================================= */
.apertura{position:relative; min-height:100svh; display:flex; align-items:flex-end; overflow:hidden; background:var(--niebla)}
.atmosfera{position:absolute; inset:0; overflow:hidden}
.atmosfera .capa{
  position:absolute; inset:-4%; width:108%; height:108%;
  background-image:url('apertura.jpg?v=6'); background-size:cover; background-position:center 46%;
  animation:deriva 52s ease-in-out infinite alternate;
}
/* el vídeo cubre sin deformarse y comparte encuadre con la imagen */
video.capa{object-fit:cover; object-position:center 42%; background-color:var(--niebla); border:0; pointer-events:none}
@keyframes deriva{ from{transform:scale(1.02)} to{transform:scale(1.09) translate3d(-1.5%,-1%,0)} }
.borrosa{filter:blur(30px) contrast(.96); transform:scale(1.12)}
.nitida{
  filter:contrast(1.06);
  --r:min(46vw,540px);
  -webkit-mask-image:radial-gradient(circle var(--r) at var(--mx,50%) var(--my,52%), #000 0%, rgba(0,0,0,.86) 26%, rgba(0,0,0,.45) 55%, transparent 88%);
  mask-image:radial-gradient(circle var(--r) at var(--mx,50%) var(--my,52%), #000 0%, rgba(0,0,0,.86) 26%, rgba(0,0,0,.45) 55%, transparent 88%);
  transition:opacity 1.2s ease;
}
.lavado{
  position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(102deg, rgba(242,242,239,.6) 0%, rgba(242,242,239,.22) 30%, rgba(242,242,239,0) 52%),
             linear-gradient(0deg, rgba(242,242,239,.52) 0%, rgba(242,242,239,0) 30%);
}
.grano{position:absolute; inset:0; pointer-events:none; opacity:.26; mix-blend-mode:multiply}
.apertura-contenido{position:relative; z-index:3; width:100%; padding-bottom:clamp(38px,8vh,76px)}
.claim{margin:0}
.claim span{display:block; opacity:0; transform:translateY(26px)}
.claim .l1{
  font-weight:300; font-size:clamp(22px,3.4vw,44px); letter-spacing:.02em; text-transform:uppercase;
  color:var(--grafito); animation:sube 1.3s cubic-bezier(.2,.7,.2,1) .5s forwards;
}
.claim .l2{
  font-weight:200; font-size:clamp(44px,10.5vw,150px); line-height:.95; letter-spacing:-.015em;
  text-transform:uppercase; color:var(--carbon); margin-top:.06em;
  animation:sube 1.5s cubic-bezier(.2,.7,.2,1) 1.35s forwards;
}
@keyframes sube{to{opacity:1; transform:none}}
.seguir{display:inline-flex; align-items:center; gap:10px; margin-top:clamp(26px,5vh,52px); opacity:0; animation:sube 1.1s ease 2.5s forwards; color:var(--carbon)}
.seguir .flecha{animation:respira 2.8s ease-in-out infinite}
@keyframes respira{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}
.pista-cursor{position:absolute; right:var(--margen); bottom:clamp(38px,8vh,76px); z-index:3; margin:0; text-align:right; opacity:0; animation:sube 1.1s ease 3.1s forwards}
@media(max-width:900px){ .pista-cursor{display:none} }
@media(max-width:860px) and (orientation:portrait){
  .atmosfera .capa{background-image:url('apertura-vertical.jpg?v=6'); background-position:center 38%}
  video.capa{display:none}   /* en móvil no se carga el vídeo: manda la imagen vertical */
  .lavado{background:linear-gradient(0deg, rgba(242,242,239,.9) 0%, rgba(242,242,239,.6) 24%, rgba(242,242,239,0) 54%)}
}

/* =======================================================================
   02 EL RUIDO — denso, superpuesto, a sangre
   ======================================================================= */
.ruido{overflow:hidden}
.ruido .apertura-texto{max-width:38ch}
.pila{margin:clamp(40px,7vh,90px) 0 clamp(30px,6vh,70px); --p:0}
.pila p{
  margin:0; font-weight:300; text-transform:uppercase; white-space:nowrap;
  font-size:clamp(44px,14.5vw,230px); line-height:.88; letter-spacing:-.015em;
  color:var(--carbon); will-change:transform,filter;
}
/* en móvil estrecho las frases se ajustan: ninguna palabra esencial se corta */
@media(max-width:600px){
  .pila p{white-space:normal; font-size:clamp(34px,11.5vw,52px); font-weight:300; line-height:1.02}
}
/* todos los desplazamientos son positivos: las frases entran desde la derecha
   y terminan sobre el margen. Ninguna cruza nunca el borde izquierdo. */
.pila .r1{
  transform:translateX(calc(9vw * (1 - var(--p)))) translateY(calc(30px * (1 - var(--p))));
  filter:blur(calc(9px * (1 - var(--p)))); opacity:calc(.5 + .5 * var(--p));
}
.pila .r2{
  transform:translateX(calc(26vw * (1 - var(--p)))) translateY(calc(-12px * (1 - var(--p))));
  filter:blur(calc(14px * (1 - var(--p)))); opacity:calc(.42 + .58 * var(--p));
}
.pila .r3{
  transform:translateX(calc(16vw * (1 - var(--p)))) translateY(calc(-36px * (1 - var(--p))));
  filter:blur(calc(20px * (1 - var(--p)))); opacity:calc(.34 + .66 * var(--p));
}
.respiro{
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,6vw,90px);
  opacity:calc(var(--p2,0)); transform:translateY(calc(20px * (1 - var(--p2,0))));
  transition:opacity .2s linear, transform .2s linear;
}
@media(max-width:820px){ .respiro{grid-template-columns:1fr; gap:20px} }

/* =======================================================================
   03 LA DIRECCIÓN — luz, aire, alineación y primera imagen enfocada
   ======================================================================= */
.direccion .titular-descanso{margin:clamp(30px,6vh,70px) 0 clamp(50px,9vh,110px); max-width:14ch}
/* el problema, las tres piezas y la explicación leídos como una sola idea */
.bloque-idea{max-width:min(56ch,62%)}
.bloque-idea .media{margin-bottom:clamp(20px,3.5vh,34px)}
.bloque-idea .cuerpo{max-width:46ch}
@media(max-width:900px){ .bloque-idea{max-width:100%} }
.presentacion{display:grid; grid-template-columns:44% 1fr; gap:clamp(26px,4vw,64px); align-items:center}
.presentacion .foto-sangre{
  margin-left:calc(-1 * var(--margen-contenido)); /* solo la foto sangra; el texto no */
  overflow:hidden;
}
.presentacion .foto-sangre img{width:100%; height:auto; filter:blur(14px) contrast(.95); transform:scale(1.04); transition:filter 2s cubic-bezier(.5,0,.2,1), transform 2s cubic-bezier(.5,0,.2,1)}
.visible .presentacion .foto-sangre img{filter:none; transform:none}
.cierre-capitulo{margin-top:clamp(80px,16vh,220px)}
@media(max-width:900px){
  .presentacion{grid-template-columns:1fr; gap:28px}
  .presentacion .foto-sangre{margin-right:calc(-1 * var(--margen))}
}

/* =======================================================================
   04 MOMENTOS — ruptura en grafito
   ======================================================================= */
.momentos{padding-top:clamp(80px,14vh,170px); padding-bottom:clamp(80px,14vh,170px)}
.momentos .micro{color:#C7C8C4}
.tablero{display:grid; grid-template-columns:1.25fr 1fr; gap:clamp(24px,5vw,90px); margin-top:clamp(50px,9vh,110px); align-items:start}
.palabras{position:relative}
.palabra{
  display:block; width:100%; text-align:left; background:none; border:0; padding:0; cursor:pointer;
  font-family:inherit; font-weight:200; text-transform:uppercase; color:#A9AAA7;
  font-size:clamp(38px,7.6vw,116px); line-height:.94; letter-spacing:-.015em;
  transition:color .7s ease, filter .7s ease, transform .7s cubic-bezier(.4,0,.2,1), opacity .7s ease;
}
.palabra:nth-child(1){margin-left:0}
.palabra:nth-child(2){margin-left:8%}
.palabra:nth-child(3){margin-left:3%}
.palabra:nth-child(4){margin-left:11%}
.tablero.tocado .palabra{opacity:.5; filter:blur(2.4px)}
.tablero.tocado .palabra.activa{opacity:1; filter:none; color:var(--puro); transform:scale(1.035); transform-origin:left center}
.palabra .conector{
  display:inline-block; vertical-align:middle; height:1px; width:0; background:rgba(242,242,239,.55);
  margin-left:18px; transition:width .8s cubic-bezier(.5,0,.2,1);
}
.palabra.activa .conector{width:clamp(30px,7vw,150px)}
.detalles{position:sticky; top:clamp(90px,14vh,150px); min-height:clamp(220px,30vh,300px)}
.detalle{opacity:0; transform:translateY(14px); transition:opacity .6s ease, transform .6s ease; position:absolute; inset:0}
.detalle.activo{opacity:1; transform:none; position:relative}
.detalle p{margin:0 0 16px; max-width:38ch}
.detalle .disciplinas{
  font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:#C7C8C4;
  border-top:1px solid rgba(242,242,239,.28); padding-top:14px; margin-top:22px;
}
.momentos .cierre{display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,6vw,90px); margin-top:clamp(60px,11vh,140px); align-items:start}
/* las dos frases como un solo par, con cuerpo suficiente para el fondo oscuro */
.par-cierre{
  margin:0; max-width:26ch; font-weight:400; color:var(--roto);
  font-size:clamp(19px,1.9vw,26px); line-height:1.45; letter-spacing:.005em;
}
.par-cierre span{color:#D5D6D3}
.f-grafito .cuerpo{font-weight:400}
.f-grafito .suave{color:#D5D6D3}
@media(max-width:900px){
  /* en móvil: secuencia vertical simple, sin composición de escritorio */
  .tablero,.momentos .cierre{grid-template-columns:1fr; gap:0}
  .palabra{margin-left:0 !important; font-size:clamp(34px,11vw,60px)}
  .palabra .conector{display:none}
  .tablero.tocado .palabra{opacity:1; filter:none}
  .detalles{position:static; min-height:0}
  .detalle{position:static; opacity:1; transform:none; padding:14px 0 34px; border-bottom:1px solid rgba(242,242,239,.2)}
  .momentos .cierre{margin-top:50px; gap:16px}
}
/* orden intercalado en móvil: cada palabra seguida de su explicación */
@media(max-width:900px){
  .tablero{display:flex; flex-direction:column}
  .palabras,.detalles{display:contents}
  .palabra:nth-child(1){order:1} #d-nacer{order:2}
  .palabra:nth-child(2){order:3} #d-lanzarse{order:4}
  .palabra:nth-child(3){order:5} #d-crecer{order:6}
  .palabra:nth-child(4){order:7} #d-evolucionar{order:8}
  .momentos .cierre{order:9}
}

/* =======================================================================
   05 LO QUE CONSTRUIMOS — sistema editorial, una composición por ámbito
   ======================================================================= */
#construimos{padding-top:clamp(100px,16vh,190px)}
/* Los cinco servicios comparten una única rejilla por ÁREAS NOMBRADAS.
   Con áreas, la posición no depende del orden en el HTML ni del índice par
   o impar: el texto ocupa "texto" y la imagen "imagen", siempre. */
.ambito{
  position:relative; padding:clamp(46px,8vh,104px) 0; border-top:1px solid var(--linea);
  display:grid;
  grid-template-columns:auto minmax(0,1fr) 390px;
  grid-template-areas:"num texto imagen";
  gap:clamp(20px,3.4vw,56px) clamp(70px,6vw,100px);
  align-items:center; direction:ltr;
}
.ambito > .indice{grid-area:num}
.ambito > div:not(.motivo){
  grid-area:texto; min-width:0; max-width:620px;
  padding-left:0; margin-left:0; text-align:left;
}
.ambito > .motivo{grid-area:imagen; width:100%; align-self:center}

/* Blindaje: ningún servicio par puede invertirse, venga de donde venga la regla */
.ambito:nth-child(even),
.ambito:nth-of-type(even){
  grid-template-columns:auto minmax(0,1fr) 390px;
  grid-template-areas:"num texto imagen";
  direction:ltr;
}
.ambito:nth-child(even) > div:not(.motivo),
.ambito:nth-of-type(even) > div:not(.motivo){grid-area:texto; padding-left:0; margin-left:0}
.ambito:nth-child(even) > .motivo,
.ambito:nth-of-type(even) > .motivo{grid-area:imagen; width:100%; order:0}
.ambito:first-of-type{border-top:0}
.ambito .indice{font-size:clamp(34px,5vw,78px); font-weight:200; line-height:.8; color:var(--linea)}
.ambito .rotulo{margin:0 0 14px}
.ambito h3{margin:0 0 20px; font-weight:200; font-size:clamp(23px,3.4vw,48px); line-height:1.06; text-transform:uppercase; max-width:16ch}
.ambito .cuerpo{margin-bottom:12px}
.ambito .alcance{font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--piedra); line-height:1.95; margin:6px 0 0}
.ambito .resultado{border-top:1px solid var(--linea); padding-top:12px; margin-top:18px; font-size:15px; max-width:34ch}
.ambito .motivo{margin-top:6px}
@media(max-width:900px){
  .ambito,
  .ambito:nth-child(even),
  .ambito:nth-of-type(even){
    grid-template-columns:1fr;
    grid-template-areas:"num" "texto" "imagen";
    row-gap:14px; padding:clamp(40px,6vh,70px) 0;
  }
  .ambito .indice{font-size:38px}
  .ambito > .motivo{justify-self:start; margin-top:18px}
  .ambito > div:not(.motivo){max-width:none}
}
/* --- fotografías de los cinco servicios ---
   Todas exactamente iguales: misma anchura, misma altura, misma proporción
   y el mismo desenfoque de partida. Son apoyo, no protagonistas. */
.foto-servicio{
  margin:0 0 0 auto; overflow:hidden; cursor:pointer; border:0;
  width:390px; max-width:100%; aspect-ratio:4 / 3;
}
.foto-servicio picture{display:block; width:100%; height:100%}
.foto-servicio img{
  width:100%; height:100%; display:block;
  object-fit:cover; object-position:var(--pos,50% 50%);
  filter:blur(7px); transform:scale(1.015);
  transition:filter .8s ease, transform .8s ease;
}
/* recupera nitidez con cursor, con teclado y, en táctil, al entrar en el centro de pantalla */
.foto-servicio:hover img,
.foto-servicio:focus-within img,
.foto-servicio.enfocada img{filter:blur(0); transform:scale(1)}
.foto-servicio:focus-visible{outline:2px solid var(--carbon); outline-offset:4px}
/* si algún día la columna necesita altura fija, el recorte va por foto */
.foto-servicio.recorta img{height:100%; object-fit:cover; object-position:var(--pos,50% 50%)}
@media(max-width:900px){ .foto-servicio{margin-bottom:10px} }

.cierre-sistema{display:grid; grid-template-columns:1fr 1.2fr; gap:clamp(24px,6vw,90px); margin-top:clamp(60px,10vh,130px)}
@media(max-width:820px){ .cierre-sistema{grid-template-columns:1fr; gap:20px} }

/* =======================================================================
   07 TRABAJAR JUNTOS — presencia humana, composición partida
   ======================================================================= */
.humano{display:grid; grid-template-columns:1.05fr .95fr; gap:0; align-items:stretch; position:relative}
.humano .palabra-lado{padding:clamp(70px,13vh,160px) clamp(36px,5vw,80px) clamp(70px,13vh,160px) var(--margen)}
.humano .imagen-lado{
  display:flex; align-items:center; justify-content:center;
  padding:clamp(20px,3vw,48px) clamp(20px,3vw,48px) clamp(20px,3vw,48px) 0;
}
.humano .imagen-lado img{width:100%; height:auto; object-fit:contain}
/* la firma del estudio: el logotipo introduce la presentación */
.firma-nitido{display:block; line-height:0; margin-bottom:clamp(22px,3.5vh,34px)}
.firma-nitido img{width:clamp(110px,13vw,180px); height:auto}
/* entradilla: introduce el titular sin competir con él */
.entradilla{
  font-size:clamp(20px,2.4vw,34px); line-height:1.3; font-weight:300;
  text-transform:none; letter-spacing:0; color:var(--piedra);
  margin:26px 0 clamp(18px,2.6vh,28px); max-width:30ch;
}
/* en tablet y portátil pequeño la foto pasa debajo antes de estrechar las columnas */
@media(max-width:1100px){
  .humano{grid-template-columns:1fr}
  .humano .palabra-lado{padding:clamp(60px,10vh,110px) var(--margen)}
  .humano .imagen-lado{padding:0 var(--margen) clamp(30px,6vh,60px)}
    }

/* =======================================================================
   08 AHORA, TÚ — máxima claridad
   ======================================================================= */
.cierre-blanco{padding:clamp(90px,16vh,190px) 0 clamp(70px,12vh,140px)}
.invitacion{display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,6vw,110px); margin-top:clamp(50px,9vh,110px)}
@media(max-width:820px){ .invitacion{grid-template-columns:1fr; gap:24px} }
.cierre-titular{font-size:clamp(40px,8.5vw,132px)}
.hablemos-grande{margin-top:clamp(56px,9vh,120px)}
.formulario{
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(26px,4vw,70px);
  margin-top:clamp(34px,6vh,72px);
  opacity:0; transform:translateY(22px); transition:opacity 1.1s ease, transform 1.1s cubic-bezier(.5,0,.2,1);
}
.formulario.visible{opacity:1; transform:none}
@media(max-width:820px){ .formulario{grid-template-columns:1fr} }
.campo{margin-bottom:30px}
.campo label{display:block; font-size:var(--micro); letter-spacing:.2em; text-transform:uppercase; color:var(--piedra); margin-bottom:10px}
.campo input,.campo textarea{
  width:100%; border:0; border-bottom:1px solid var(--linea); background:transparent;
  font:inherit; font-size:17px; color:var(--carbon); padding:9px 0; border-radius:0; transition:border-color .3s ease;
}
.campo input:focus,.campo textarea:focus{outline:none; border-color:var(--carbon)}
.campo textarea{resize:vertical; min-height:110px}
.campo.error input,.campo.error textarea{border-color:#8E3327}
.aviso{display:none; font-size:13px; color:#8E3327; margin-top:8px}
.campo.error .aviso{display:block}
.opciones{display:flex; flex-wrap:wrap; gap:10px}
.opciones label{
  position:relative; display:inline-flex; align-items:center; margin:0; cursor:pointer;
  border:1px solid var(--linea); padding:11px 17px; font-size:13px; letter-spacing:.02em;
  text-transform:none; color:var(--carbon); transition:border-color .3s ease, background .3s ease, color .3s ease;
}
.opciones input{position:absolute; inset:0; opacity:0; width:100%; height:100%; cursor:pointer}
.opciones label:has(input:checked){border-color:var(--carbon); background:var(--carbon); color:var(--puro)}
.opciones label:has(input:focus-visible){outline:2px solid var(--carbon); outline-offset:3px}
.trampa{position:absolute; left:-9999px; height:0; overflow:hidden}
.enviar{
  border:0; background:var(--carbon); color:var(--puro); font:inherit; font-weight:400;
  font-size:12px; letter-spacing:.26em; text-transform:uppercase; padding:21px 46px; cursor:pointer;
  transition:opacity .3s ease;
}
.enviar:hover{opacity:.84}
.enviar[disabled]{opacity:.4; cursor:progress}
.estado{margin-top:20px; font-size:15px; min-height:1.6em}
.estado.mal{color:#8E3327}
.confirmacion{display:none}
.confirmacion.puesta{display:block; margin-top:clamp(50px,9vh,110px)}
.enviado .formulario{display:none}
.contacto-directo{display:flex; flex-wrap:wrap; gap:26px; margin-top:clamp(40px,7vh,80px); font-size:15px}
.contacto-directo a{border-bottom:1px solid var(--linea); padding-bottom:2px; transition:border-color .3s ease}
.contacto-directo a:hover{border-color:var(--carbon)}

/* ---------- pie ---------- */
.pie{background:var(--carbon); color:var(--roto); padding:clamp(60px,10vh,120px) 0 38px}
.pie .micro{color:#8C8E92}
.pie-alto{display:grid; grid-template-columns:1fr 1fr; gap:36px; align-items:start}
.pie-claim{font-weight:200; text-transform:uppercase; font-size:clamp(26px,4vw,56px); line-height:1; margin:0}
.pie-enlaces{display:flex; flex-wrap:wrap; gap:22px; margin-top:56px; font-size:13px; color:#8C8E92}
.pie-enlaces a:hover{color:var(--roto)}
.pie-bajo{display:flex; justify-content:space-between; flex-wrap:wrap; gap:14px; margin-top:46px; border-top:1px solid #2E2F32; padding-top:20px}
@media(max-width:760px){ .pie-alto{grid-template-columns:1fr} }

/* ---------- revelados diferenciados por función ---------- */
.rev{opacity:0; transform:translateY(24px); transition:opacity 1s ease, transform 1s cubic-bezier(.5,0,.2,1)}
.rev.visible{opacity:1; transform:none}
.rev-luz{opacity:0; filter:blur(6px); transition:opacity 1.4s ease, filter 1.6s ease}
.rev-luz.visible{opacity:1; filter:none}
.rev-escala{opacity:0; transform:scale(.965); transform-origin:left bottom; transition:opacity 1.2s ease, transform 1.4s cubic-bezier(.4,0,.15,1)}
.rev-escala.visible{opacity:1; transform:none}
.rev-lento{opacity:0; transition:opacity 1.8s ease}
.rev-lento.visible{opacity:1}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important; transition:none !important}
  .rev,.rev-luz,.rev-escala,.rev-lento{opacity:1; transform:none; filter:none}
  .claim span,.seguir,.pista-cursor{opacity:1; transform:none}
  .nitida{-webkit-mask-image:none; mask-image:none; opacity:.5}
  .pila{--p:1}
  .respiro{opacity:1; transform:none}
  .presentacion .foto-sangre img{filter:none; transform:none}
  .foto-servicio img{filter:none; transform:none}
  .formulario{opacity:1; transform:none}
}


/* =======================================================================
   AÑADIDOS DE ESTA VERSIÓN
   ======================================================================= */

/* Apertura: línea que explica qué es NÍTIDO, sin competir con el claim */
.subclaim{
  margin:clamp(14px,2vh,22px) 0 0; max-width:44ch;
  font-size:clamp(14px,1.15vw,17px); line-height:1.6; font-weight:400;
  color:var(--carbon); opacity:.86; letter-spacing:.01em;
}
.seguir{white-space:nowrap}          /* la flecha nunca se separa del texto */

/* Servicios: "Podemos trabajar" visible y con jerarquía propia */
.alcance-bloque{margin-top:clamp(22px,3vh,32px); border-top:1px solid var(--linea); padding-top:16px}
.alcance-titulo{
  margin:0 0 10px; font-size:12px; letter-spacing:.22em; text-transform:uppercase;
  font-weight:500; color:var(--carbon);
}
.alcance-bloque .alcance{
  margin:0; font-size:14px; line-height:1.85; letter-spacing:.04em;
  color:var(--carbon); text-transform:none; max-width:46ch;
}
@media(min-width:901px){ .ambito > .motivo{display:flex; flex-direction:column; gap:0} }

/* (desplegable retirado: la información va visible) */

/* Alternancia de composición: los servicios impares invierten las columnas */

@media(max-width:900px){
  /* la imagen ocupa el ancho disponible, conservando la proporción */
  .foto-servicio{width:100%; max-width:390px; margin:0; aspect-ratio:4 / 3}
}

/* Formulario: casilla de privacidad */
.casilla{display:flex; gap:12px; align-items:flex-start; margin:4px 0 28px}
.casilla input[type="checkbox"]{
  width:18px; height:18px; margin:3px 0 0; flex:0 0 auto; accent-color:var(--carbon); cursor:pointer;
}
.casilla label{
  margin:0; font-size:14px; line-height:1.55; letter-spacing:0; text-transform:none;
  color:var(--piedra); font-weight:400; cursor:pointer;
}
.casilla a{color:var(--carbon); border-bottom:1px solid var(--linea)}
.casilla a:hover{border-color:var(--carbon)}
.campo.error .casilla label{color:#8E3327}

/* Páginas legales */
.legal{max-width:70ch}
.legal h2{font-size:clamp(20px,2.2vw,28px); font-weight:400; text-transform:uppercase;
          letter-spacing:.01em; margin:clamp(36px,5vh,56px) 0 14px}
.legal p,.legal li{font-size:16px; line-height:1.75; color:var(--carbon); margin:0 0 14px}
.legal ul{padding-left:20px; margin:0 0 18px}
.legal .pendiente{
  background:#EDEDEA; border-left:2px solid var(--carbon);
  padding:10px 14px; display:inline-block; font-size:14px; color:var(--carbon);
}
.volver{display:inline-block; margin-top:clamp(40px,6vh,70px); font-size:var(--micro);
        letter-spacing:.2em; text-transform:uppercase; color:var(--piedra);
        border-bottom:1px solid var(--linea); padding-bottom:3px}
.volver:hover{color:var(--carbon); border-color:var(--carbon)}


/* =======================================================================
   PRESENTACIÓN DEL ESTUDIO — foto pequeña a la izquierda, contenido a la derecha
   ======================================================================= */
.presentacion-estudio{padding:clamp(90px,15vh,170px) 0 clamp(100px,16vh,190px)}
.presenta{
  display:grid; grid-template-columns:minmax(0,36fr) minmax(0,55fr);
  gap:clamp(40px,6vw,100px); align-items:center; max-width:1180px;
}
.presenta-foto{margin:0; width:min(100%,390px); aspect-ratio:4 / 5; overflow:hidden}
.presenta-foto picture{display:block; width:100%; height:100%}
.presenta-foto img{width:100%; height:100%; object-fit:cover; object-position:50% 42%; display:block}
.presenta-texto .firma-logo{
  width:clamp(110px,9vw,140px); height:auto; display:block;
  margin:0 0 clamp(26px,3.5vh,38px);
}
.presenta-titular{
  margin:0 0 clamp(22px,3vh,32px); max-width:26ch;
  font-weight:300; font-size:clamp(21px,2.4vw,32px); line-height:1.24;
  letter-spacing:0; text-transform:none;
}
.presenta-texto .cuerpo{max-width:52ch; margin-bottom:16px}
.presenta-texto .cuerpo:last-child{margin-bottom:0}
@media(max-width:900px){
  .presenta{grid-template-columns:1fr; gap:30px}
  .presenta-foto{order:2; width:min(100%,320px); margin:0 auto}
  .presenta-texto{order:1}
  .presenta-texto .firma-logo{width:clamp(95px,26vw,110px)}
}

/* =======================================================================
   TRABAJAR JUNTOS — transición hacia el formulario
   ======================================================================= */
.empezar{
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,4vw,70px);
  margin-top:clamp(34px,5vh,60px); align-items:start;
}
.empezar .cuerpo{font-size:clamp(15px,1.05vw,17px); margin-bottom:10px}
.empezar .lista-inicio{line-height:1.9; margin:0}
@media(max-width:820px){
  .empezar{grid-template-columns:1fr; gap:18px}
  .empezar-a{order:1}
  .empezar-b{order:2}
}
