/* ==========================================================================
   ARCADIA STUDIOS · hoja de estilos
   Paleta "Noche y oro arena". Los colores se definen una sola vez, aquí abajo.
   Tipografías: Instrument Serif (titulares) y Hanken Grotesk (texto), servidas
   desde la carpeta /fonts, sin conexiones a servicios externos.
   ========================================================================== */

@font-face{font-family:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/instrument-serif-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/instrument-serif-latin-400-italic.woff2) format('woff2')}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:300;font-display:swap;src:url(../fonts/hanken-grotesk-latin-300-normal.woff2) format('woff2')}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/hanken-grotesk-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/hanken-grotesk-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/hanken-grotesk-latin-600-normal.woff2) format('woff2')}

:root{
  /* Paleta */
  --noche:#0D0E10;          /* fondo principal */
  --carbon:#1B1512;         /* fondo secundario, cálido */
  --crema:#F5F0E9;          /* texto principal */
  --humo:#B5AC9C;           /* texto secundario */
  --oro:#C4A36E;            /* acento (oro arena) */
  --oro-claro:#D4B882;      /* acento al pasar el ratón */
  --oro-tinta:#7A5E2A;      /* acento sobre fondos claros (solo con .sec--crema) */
  --linea:rgba(245,240,233,.16);
  --linea-fuerte:rgba(245,240,233,.36);

  /* Tipografía */
  --f-serif:'Instrument Serif',Georgia,'Times New Roman',serif;
  --f-sans:'Hanken Grotesk',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;

  /* Medidas */
  --gut:clamp(20px,4.4vw,64px);
  --max:1320px;
  --alto-cab:76px;
  color-scheme:dark;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;background:var(--noche);color:var(--crema);
  font-family:var(--f-sans);font-size:1.0625rem;line-height:1.6;font-weight:400;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
body.sin-scroll{overflow:hidden}
img,video{display:block;max-width:100%;height:auto}
h1,h2,h3,p,ul,ol,dl,dd,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
a{color:inherit}
button{font:inherit;color:inherit}
::selection{background:var(--oro);color:var(--noche)}

:focus-visible{outline:3px solid var(--oro-claro);outline-offset:3px}
.sec--oro :focus-visible,.formu :focus-visible{outline-color:var(--noche)}

.sr{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.salto{position:fixed;left:16px;top:-80px;z-index:100;background:var(--oro);color:var(--noche);padding:12px 18px;font-weight:600;text-decoration:none;transition:top .2s}
.salto:focus{top:12px}

.wrap{
  width:100%;max-width:calc(var(--max) + 2 * var(--gut));margin-inline:auto;
  padding-left:max(var(--gut),env(safe-area-inset-left,0px));
  padding-right:max(var(--gut),env(safe-area-inset-right,0px));
}

/* ---------- Tipografía ---------- */
.etiqueta{font:500 .75rem/1.4 var(--f-sans);letter-spacing:.18em;text-transform:uppercase;color:var(--oro)}
.etiqueta b{font-weight:500;margin-right:.9em}
.titulo{
  font:400 clamp(3.25rem,8.2vw,7.5rem)/.98 var(--f-serif);letter-spacing:-.012em;text-wrap:balance;
}
.titulo em{font-style:italic;color:var(--oro)}
.titulo--hero{font-size:clamp(3.5rem,9.2vw,8.25rem)}
.titulo--hero em{white-space:nowrap}
.titulo--contacto{font-size:clamp(3.5rem,10.4vw,9.375rem)}
.lead{font-size:clamp(1.125rem,1.5vw,1.375rem);line-height:1.55;color:var(--crema)}
.texto{max-width:62ch}
.texto p+p{margin-top:1.1em}
.humo{color:var(--humo)}

/* ---------- Botones ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6em;min-height:52px;padding:0 28px;
  border:1px solid transparent;border-radius:2px;background:none;cursor:pointer;
  font:500 .9375rem/1.2 var(--f-sans);letter-spacing:.02em;text-decoration:none;text-align:center;
  transition:background-color .2s,color .2s,border-color .2s,transform .2s;
}
.btn--oro{background:var(--oro);color:var(--noche)}
.btn--oro:hover{background:var(--oro-claro)}
.btn--linea{border-color:var(--linea-fuerte);color:var(--crema)}
.btn--linea:hover{border-color:var(--oro);color:var(--oro-claro)}
.btn--noche{background:var(--noche);color:var(--crema)}
.btn--noche:hover{background:#2a2420}
.btn--linea-noche{border-color:var(--noche);color:var(--noche)}
.btn--linea-noche:hover{background:var(--noche);color:var(--crema)}
.btn svg{width:1em;height:1em;flex:none}

/* ---------- Cabecera ---------- */
.cab{
  position:fixed;inset:0 0 auto 0;z-index:60;
  padding-top:env(safe-area-inset-top,0px);
  transition:background-color .3s,box-shadow .3s;
}
.cab--solida{background:rgba(13,14,16,.9);box-shadow:0 1px 0 var(--linea)}
@supports (backdrop-filter:blur(8px)){.cab--solida{background:rgba(13,14,16,.78);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}}
.cab__in{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:var(--alto-cab)}
.cab__logo{display:block;flex:none;line-height:0}
.cab__logo img{height:54px;width:auto}
.cab__nav{margin-left:auto}
.cab__nav ul{display:flex;gap:clamp(18px,2.6vw,40px)}
.cab__nav a{
  display:inline-block;padding:10px 0;font-size:.8125rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;
  text-decoration:none;color:var(--crema);border-bottom:1px solid transparent;
}
.cab__nav a:hover,.cab__nav a[aria-current="true"]{color:var(--oro-claro);border-bottom-color:var(--oro)}
.cab__cta{min-height:46px;padding:0 20px;font-size:.875rem}
.cab__burger{
  display:none;width:48px;height:48px;margin-right:-10px;padding:0;background:none;border:0;cursor:pointer;
  align-items:center;justify-content:center;
}
.cab__burger span{position:relative;display:block;width:24px;height:2px;background:var(--crema);transition:background-color .2s}
.cab__burger span::before,.cab__burger span::after{content:"";position:absolute;left:0;width:24px;height:2px;background:var(--crema);transition:transform .25s,top .25s}
.cab__burger span::before{top:-7px}
.cab__burger span::after{top:7px}
.cab__burger[aria-expanded="true"] span{background:transparent}
.cab__burger[aria-expanded="true"] span::before{top:0;transform:rotate(45deg)}
.cab__burger[aria-expanded="true"] span::after{top:0;transform:rotate(-45deg)}

.menu{
  position:fixed;inset:0;z-index:55;background:var(--noche);
  padding:calc(var(--alto-cab) + env(safe-area-inset-top,0px) + 24px) max(var(--gut),env(safe-area-inset-left,0px)) calc(32px + env(safe-area-inset-bottom,0px));
  display:flex;flex-direction:column;overflow-y:auto;
}
.menu[hidden]{display:none}
.menu ul{display:flex;flex-direction:column}
.menu li{border-top:1px solid var(--linea)}
.menu li:last-child{border-bottom:1px solid var(--linea)}
.menu a{display:block;padding:16px 0;font:400 clamp(2.25rem,10vw,3.25rem)/1.05 var(--f-serif);text-decoration:none}
.menu a:hover{color:var(--oro-claro)}
.menu .btn{margin-top:32px}
.menu a.btn{display:inline-flex;padding:0 28px;font:500 1rem/1.2 var(--f-sans);width:100%}
.menu a.btn:hover{color:var(--noche)}
@media (prefers-reduced-motion:no-preference){.menu{animation:aparece .25s ease-out}}
@keyframes aparece{from{opacity:0}to{opacity:1}}

@media (max-width:1040px){
  .cab__nav,.cab__cta{display:none}
  .cab__burger{display:flex;margin-left:auto}
  .cab__logo img{height:46px}
}

/* ---------- Portada ---------- */
.hero{
  position:relative;display:flex;align-items:flex-end;overflow:hidden;background:var(--noche);
  min-height:100vh;min-height:100svh;
}
.hero__media{position:absolute;inset:0}
.hero__img,.hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:28% 24%}
.hero__video{opacity:0;transition:opacity 1s}
.hero__video.ok{opacity:1}
@media (prefers-reduced-motion:no-preference){.hero__img{animation:lento 30s ease-out both}}
@keyframes lento{from{transform:scale(1.07)}to{transform:scale(1)}}
.hero__velo{
  position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(to top,rgba(13,14,16,.97) 0%,rgba(13,14,16,.86) 26%,rgba(13,14,16,.42) 56%,rgba(13,14,16,.3) 78%,rgba(13,14,16,.62) 100%),
    linear-gradient(to right,rgba(13,14,16,.5) 0%,rgba(13,14,16,0) 58%);
}
.hero__in{position:relative;padding-top:calc(var(--alto-cab) + 96px);padding-bottom:clamp(40px,6vw,72px)}
.hero .etiqueta{color:var(--humo)}
.hero .titulo{margin-top:20px}
.hero__fila{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:28px 56px;margin-top:32px}
.hero__lead{max-width:50ch}
.hero__acc{display:flex;flex-wrap:wrap;gap:14px}
.hero__ambitos{margin-top:36px;padding-top:20px;border-top:1px solid var(--linea);font-size:.9375rem;color:var(--humo)}
.hero__ambitos span{white-space:nowrap}
.hero__pausa{
  position:absolute;right:max(var(--gut),env(safe-area-inset-right,0px));bottom:clamp(40px,6vw,72px);
  min-height:44px;padding:0 18px;background:rgba(13,14,16,.6);border:1px solid var(--linea-fuerte);border-radius:2px;
  font-size:.8125rem;font-weight:500;letter-spacing:.06em;cursor:pointer;
}
.hero__pausa:hover{border-color:var(--oro);color:var(--oro-claro)}
@media (max-width:640px){
  /* En móvil la imagen ocupa su propio espacio arriba, para que el titular no tape la cara de la reina */
  .hero{display:block;min-height:0}
  .hero__media{position:relative;inset:auto;height:clamp(400px,104vw,540px)}
  .hero__img,.hero__video{object-position:16% 24%}
  .hero__velo{inset:0 0 auto 0;height:clamp(400px,104vw,540px);
    background:linear-gradient(to top,var(--noche) 0%,rgba(13,14,16,.55) 34%,rgba(13,14,16,.12) 66%,rgba(13,14,16,.55) 100%)}
  .hero__in{margin-top:-88px;padding-top:0}
  .hero__pausa{top:calc(var(--alto-cab) + env(safe-area-inset-top,0px) + 8px);bottom:auto}
  .hero__ambitos span{white-space:normal}
}

/* ---------- Secciones ---------- */
.sec{position:relative;padding-block:clamp(88px,12vw,176px)}
.sec--noche{background:var(--noche)}
.sec--carbon{background:var(--carbon)}
.sec--oro{background:var(--oro);color:var(--noche)}
.sec--crema{background:var(--crema);color:var(--noche)}
.sec--crema .etiqueta{color:var(--oro-tinta)}
.sec--crema .titulo em{color:var(--oro-tinta)}
.sec--crema .humo{color:#5A544C}
.sec__cab{display:flex;flex-direction:column;gap:20px;margin-bottom:clamp(40px,6vw,80px)}

/* ---------- Estudio ---------- */
.estudio__cols{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(40px,7vw,120px);align-items:start}
.lead--2{margin-top:1.1em}
.principio{margin-top:36px;padding-left:22px;border-left:2px solid var(--oro);font-size:1.125rem;line-height:1.6}
.ambitos li{display:grid;grid-template-columns:3.2rem 1fr;align-items:baseline;padding:22px 0;border-top:1px solid var(--linea)}
.ambitos li:last-child{border-bottom:1px solid var(--linea)}
.ambitos b{font:500 .75rem/1 var(--f-sans);letter-spacing:.18em;color:var(--oro)}
.ambitos span{font:400 clamp(1.9rem,3.4vw,2.9rem)/1.05 var(--f-serif)}

/* ---------- Caso Toledo ---------- */
.caso__ficha{display:grid;grid-template-columns:repeat(3,auto);justify-content:start;gap:12px clamp(32px,6vw,96px);margin-bottom:clamp(40px,6vw,72px);padding-top:24px;border-top:1px solid var(--linea)}
.caso__ficha dt{font:500 .75rem/1.4 var(--f-sans);letter-spacing:.18em;text-transform:uppercase;color:var(--oro)}
.caso__ficha dd{margin-top:4px;font-size:1.0625rem}
.caso__resumen{max-width:34ch;font:400 clamp(1.5rem,2.6vw,2.25rem)/1.25 var(--f-serif);text-wrap:pretty}
.caso__piezas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,3vw,40px) clamp(20px,2.4vw,32px);margin-top:clamp(40px,6vw,72px)}
.pieza figcaption{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin-top:14px;font-size:.875rem;color:var(--humo)}
.pieza figcaption b{font:500 .75rem/1.4 var(--f-sans);letter-spacing:.18em;text-transform:uppercase;color:var(--oro)}
.pieza figcaption span{flex-basis:100%;font:400 clamp(1.35rem,2vw,1.75rem)/1.15 var(--f-serif);color:var(--crema)}
.caso__video{position:relative;background:#000;aspect-ratio:16/9;overflow:hidden}
.caso__video video{width:100%;height:100%;object-fit:cover}
.play{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:14px;
  width:max-content;max-width:calc(100% - 24px);
  min-height:64px;padding:0 30px 0 22px;background:rgba(13,14,16,.74);border:1px solid var(--linea-fuerte);border-radius:40px;
  font-weight:500;letter-spacing:.04em;cursor:pointer;transition:background-color .2s,border-color .2s;
}
.play:hover{background:rgba(13,14,16,.9);border-color:var(--oro)}
.play svg{width:40px;height:40px;flex:none;color:var(--oro)}
.play[hidden]{display:none}
.pendiente{
  position:absolute;inset:auto 0 0 0;padding:18px 24px;background:rgba(13,14,16,.88);border-top:1px solid var(--oro);
  font-size:.9375rem;color:var(--crema);
}
.pendiente[hidden]{display:none}
.galeria-cab{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-top:clamp(56px,8vw,104px);margin-bottom:24px}
.galeria-cab h3{font:400 clamp(1.75rem,3vw,2.5rem)/1.1 var(--f-serif)}
.galeria-flechas{display:flex;gap:10px}
.flecha{width:52px;height:52px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--linea-fuerte);border-radius:50%;background:none;cursor:pointer;transition:border-color .2s,color .2s}
.flecha:hover{border-color:var(--oro);color:var(--oro-claro)}
.flecha svg{width:20px;height:20px}
.galeria{
  display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:18px;
  scrollbar-width:thin;scrollbar-color:var(--oro) transparent;
  margin-inline:calc(-1 * max(var(--gut),env(safe-area-inset-left,0px)));
  padding-inline:max(var(--gut),env(safe-area-inset-left,0px));
  scroll-padding-inline:max(var(--gut),env(safe-area-inset-left,0px));
}
.galeria li{flex:0 0 min(80vw,560px);scroll-snap-align:start}
.galeria__item{display:block;width:100%;padding:0;background:#000;border:0;cursor:zoom-in;overflow:hidden;aspect-ratio:16/9;position:relative}
.galeria__item img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease,opacity .3s}
.galeria__item:hover img{transform:scale(1.04)}
.galeria figcaption{margin-top:12px;font-size:.9375rem;color:var(--humo)}
.nota-ia{margin-top:20px;font-size:.875rem;color:var(--humo)}
.caso__cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(32px,5vw,80px);margin-top:clamp(56px,8vw,104px);padding-top:32px;border-top:1px solid var(--linea)}
.caso__cols h3{font:500 .75rem/1.4 var(--f-sans);letter-spacing:.18em;text-transform:uppercase;color:var(--oro);margin-bottom:14px}
.caso__cols li+li{margin-top:.35em}
.caso__cols p+p{margin-top:.8em}
.cierre{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:28px 56px;margin-top:clamp(56px,8vw,104px);padding-top:clamp(32px,4vw,48px);border-top:1px solid var(--linea-fuerte)}
.cierre p{max-width:20ch;font:400 clamp(1.9rem,3.6vw,3rem)/1.08 var(--f-serif);text-wrap:balance}

/* ---------- Servicios ---------- */
.serv{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(40px,7vw,112px);align-items:start}
.serv__item{display:grid;grid-template-columns:3.2rem minmax(0,1fr);column-gap:8px;padding:clamp(24px,3vw,36px) 0;border-top:1px solid var(--linea)}
.serv__item:last-child{border-bottom:1px solid var(--linea)}
.serv__item b{padding-top:.7em;font:500 .75rem/1 var(--f-sans);letter-spacing:.18em;color:var(--humo);transition:color .3s}
.serv__item h3{font:400 clamp(1.9rem,3.2vw,2.75rem)/1.05 var(--f-serif);color:var(--humo);transition:color .3s}
.serv__item p{grid-column:2;margin-top:12px;max-width:46ch;color:var(--humo)}
.serv__item.on b{color:var(--oro)}
.serv__item.on h3{color:var(--crema)}
.serv__item figure{grid-column:2;margin-top:20px;display:none;aspect-ratio:16/10;overflow:hidden;background:#000}
.serv__item figure img{width:100%;height:100%;object-fit:cover}
.serv__visor{position:sticky;top:calc(var(--alto-cab) + 28px);aspect-ratio:4/5;max-height:calc(100svh - var(--alto-cab) - 56px);overflow:hidden;background:#000}
.serv__visor img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.04);transition:opacity .7s ease,transform 1.4s ease}
.serv__visor img.on{opacity:1;transform:none}
@media (max-width:900px){
  .serv{display:block}
  .serv__visor{display:none}
  .serv__item h3{color:var(--crema)}
  .serv__item b{color:var(--oro)}
  .serv__item figure{display:block}
}

/* ---------- Método ---------- */
.pasos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,2vw,28px)}
.paso figure{display:flex;gap:4px;aspect-ratio:4/5;overflow:hidden;background:#000}
.paso figure img{flex:1 1 0;min-width:0;width:100%;height:100%;object-fit:cover}
.paso b{display:block;margin-top:20px;font:500 .75rem/1 var(--f-sans);letter-spacing:.18em;color:var(--oro)}
.paso h3{margin-top:10px;font:400 clamp(1.75rem,2.4vw,2.25rem)/1.08 var(--f-serif)}
.paso p{margin-top:12px;color:var(--humo)}
.paso .ejemplo{margin-top:10px;font-size:.9375rem}
.metodo__nota{margin-top:36px;font-size:.875rem;color:var(--humo)}

/* ---------- Preguntas frecuentes ---------- */
.faq{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,7vw,120px);align-items:start}
.faq__item{border-top:1px solid var(--linea)}
.faq__item:last-child{border-bottom:1px solid var(--linea)}
.faq__item summary{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:44px;padding:26px 0;cursor:pointer;list-style:none;font:400 clamp(1.5rem,2.3vw,2rem)/1.15 var(--f-serif);transition:color .2s}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary:hover{color:var(--oro-claro)}
.faq__item summary i{position:relative;flex:none;width:22px;height:22px}
.faq__item summary i::before,.faq__item summary i::after{content:"";position:absolute;left:0;top:50%;width:100%;height:1.5px;background:var(--oro);transition:transform .25s ease}
.faq__item summary i::after{transform:rotate(90deg)}
.faq__item[open] summary i::after{transform:rotate(0)}
.faq__resp{padding:0 clamp(0px,6vw,64px) 30px 0;max-width:64ch;color:var(--humo)}
.faq__resp a{color:var(--oro-claro)}

/* ---------- Contacto ---------- */
.sec--oro .etiqueta{color:var(--noche)}
.sec--oro .titulo em{color:var(--noche)}
.contacto{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(40px,6vw,96px);align-items:start}
.contacto .lead{margin-top:28px;max-width:34ch;color:var(--noche)}
.contacto__botones{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px}
.contacto__lugar{margin-top:36px;font:500 .75rem/1.4 var(--f-sans);letter-spacing:.18em;text-transform:uppercase;color:var(--noche)}
#formulario{scroll-margin-top:calc(var(--alto-cab) + 20px)}
.formu{background:var(--crema);color:var(--noche);padding:clamp(24px,3vw,40px);border-radius:2px;color-scheme:light}
.formu h3{font:400 1.75rem/1.1 var(--f-serif);margin-bottom:20px}
.campo{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}
.campo label{font-size:.875rem;font-weight:600}
.campo small{font-weight:400;color:#5A544C}
.campo input,.campo select,.campo textarea{
  width:100%;min-height:52px;padding:12px 14px;background:#fff;color:var(--noche);
  border:1px solid #6b655c;border-radius:2px;font:inherit;font-size:1rem;
}
.campo textarea{min-height:140px;resize:vertical}
.campo input:focus,.campo select:focus,.campo textarea:focus{border-color:var(--noche);outline:3px solid var(--noche);outline-offset:1px}
.acepto{display:flex;gap:12px;align-items:flex-start;margin:4px 0 22px;font-size:.9375rem}
.acepto input{flex:none;width:24px;height:24px;margin:0;accent-color:var(--noche)}
.acepto a{font-weight:600}
.trampa{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.formu .btn{width:100%}
.formu .btn[disabled]{opacity:.6;cursor:progress}
.estado{margin-top:16px;font-size:.9375rem;min-height:1.5em}
.estado--error{color:#8a1c12;font-weight:600}
.estado--ok{color:#1f5a2b;font-weight:600}

.pie{margin-top:clamp(64px,9vw,128px);padding-top:28px;border-top:1px solid rgba(13,14,16,.36);display:grid;grid-template-columns:auto 1fr auto;gap:24px 40px;align-items:center;font-size:.875rem}
.pie__logo img{height:48px;width:auto}
.pie nav ul{display:flex;flex-wrap:wrap;gap:6px 24px}
.pie a{text-underline-offset:3px}
.pie__der{text-align:right}
.pie__der p+p{margin-top:2px}

/* ---------- Ventanas (reel y ampliación) ---------- */
dialog{border:0;padding:0;margin:auto;background:#070708;color:var(--crema);max-width:none;max-height:none;width:100%;height:100%;overflow:hidden}
dialog::backdrop{background:rgba(7,7,8,.94)}
.dlg{position:relative;display:flex;flex-direction:column;justify-content:center;width:100%;height:100%;padding:72px max(var(--gut),env(safe-area-inset-left,0px)) 40px}
.dlg__cerrar{position:absolute;top:calc(14px + env(safe-area-inset-top,0px));right:max(14px,env(safe-area-inset-right,0px));width:52px;height:52px;display:flex;align-items:center;justify-content:center;background:rgba(13,14,16,.7);border:1px solid var(--linea-fuerte);border-radius:50%;cursor:pointer}
.dlg__cerrar:hover{border-color:var(--oro)}
.dlg__cerrar svg{width:22px;height:22px}
.dlg__video{position:relative;width:min(100%,1280px);margin-inline:auto;aspect-ratio:16/9;background:#000}
.dlg__video video{width:100%;height:100%;object-fit:contain}
.lb__fig{margin-inline:auto;max-width:min(100%,1400px)}
.lb__fig img{max-height:calc(100svh - 190px);width:auto;margin-inline:auto;object-fit:contain}
.lb__pie{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;margin:16px auto 0;width:min(100%,1400px)}
.lb__pie p{font-size:1rem}
.lb__nav{display:flex;align-items:center;gap:12px}
.lb__n{font-size:.875rem;letter-spacing:.1em;color:var(--humo);min-width:4.5em;text-align:center}

/* ---------- Aparición suave ---------- */
@media (prefers-reduced-motion:no-preference){
  .js .rev{opacity:0;transform:translateY(24px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}
  .js .rev.in{opacity:1;transform:none}
}

/* ---------- Páginas legales ---------- */
.legal{padding-top:calc(var(--alto-cab) + 72px);padding-bottom:96px}
.legal .wrap{max-width:calc(860px + 2 * var(--gut))}
.legal h1{font:400 clamp(2.75rem,6vw,4.75rem)/1 var(--f-serif);margin:16px 0 36px}
.legal h2{font:400 1.75rem/1.15 var(--f-serif);margin:44px 0 12px;color:var(--oro)}
.legal p,.legal li{max-width:68ch}
.legal p+p,.legal ul{margin-top:.9em}
.legal ul{list-style:disc;padding-left:1.3em}
.legal li+li{margin-top:.35em}
.legal a{color:var(--oro-claro)}
.legal dl{display:grid;grid-template-columns:max-content 1fr;gap:6px 24px;margin-top:12px}
.legal dt{color:var(--humo)}
.borrador{margin-bottom:32px;padding:16px 20px;border:1px dashed var(--oro);color:var(--crema);font-size:.9375rem}
.pie-legal{padding:28px 0 40px;border-top:1px solid var(--linea);font-size:.875rem;color:var(--humo)}
.pie-legal .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 32px}

/* ---------- Adaptación a pantallas pequeñas ---------- */
@media (max-width:1100px){
  .pasos{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:48px}
  .caso__cols{grid-template-columns:1fr 1fr}
  .caso__cols>div:last-child{grid-column:1/-1}
}
@media (max-width:900px){
  .estudio__cols,.faq,.contacto{grid-template-columns:minmax(0,1fr)}
  .caso__ficha{grid-template-columns:1fr 1fr}
  .caso__ficha>div:last-child{grid-column:1/-1}
  .pie{grid-template-columns:1fr;text-align:left}
  .pie__der{text-align:left}
}
@media (max-width:700px){
  .caso__piezas{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:640px){
  .hero__acc .btn{flex:1 1 100%}
  .contacto__botones .btn{flex:1 1 100%}
  .caso__cols{grid-template-columns:minmax(0,1fr)}
  .caso__ficha{grid-template-columns:minmax(0,1fr)}
  .pasos{grid-template-columns:minmax(0,1fr)}
  .paso figure{aspect-ratio:16/11}
  .galeria-cab{align-items:center}
  .galeria li{flex-basis:84vw}
  .play{min-height:56px;padding:0 22px 0 16px}
  .play svg{width:34px;height:34px}
  .legal dl{grid-template-columns:1fr;gap:2px}
  .legal dd{margin-bottom:10px}
}

/* Móvil bajo: evitar texto cortado */
@media (max-width:360px){
  .btn{padding:0 18px}
  .titulo--contacto{font-size:3.1rem}
}

@media print{
  .cab,.menu,.hero__pausa,dialog{display:none!important}
  body{background:#fff;color:#000}
}
