/* ===========================================================
   AIA Estudio — Lorca
   Dirección: "EL EXPEDIENTE"
   Paleta real del negocio (su CSS): #1b6979 teal, #737071, #888b8d, #f5f5f5
   Firma: el monograma AIA (trapecios de su logotipo) revelando su propia foto
   =========================================================== */

:root{
  --carbon:#0E1416;
  --carbon-2:#152025;
  --carbon-3:#1D2C32;
  --teal:#1B6979;          /* su color de marca */
  --teal-cl:#3FA3B8;
  --teal-hd:#0F3D47;
  --papel:#F5F5F5;         /* su blanco real */
  --papel-2:#E7EAEA;
  --hormigon:#8A8F91;
  --hormigon-2:#5E6668;

  --fd:'Archivo Black', 'Archivo', system-ui, sans-serif;
  --fb:'Hanken Grotesk', system-ui, -apple-system, sans-serif;
  --fm:'Space Mono', ui-monospace, 'SFMono-Regular', monospace;

  --wrap:1280px;
  --pad:clamp(1.15rem, 4vw, 3.5rem);
  --r:2px;
  --e:cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;background:var(--papel);color:var(--carbon);
  font-family:var(--fb);font-size:1.0625rem;line-height:1.62;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit}
::selection{background:var(--teal);color:#fff}

.wrap{width:min(100% - var(--pad)*2, var(--wrap));margin-inline:auto}
.mono{font-family:var(--fm);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase}
.nowrap{white-space:nowrap}

.skip{position:absolute;left:-9999px;top:0;background:var(--carbon);color:#fff;padding:.8rem 1.2rem;z-index:200}
.skip:focus{left:.5rem;top:.5rem}
:focus-visible{outline:2px solid var(--teal-cl);outline-offset:3px}

/* ---------- escala tipográfica (salto ~12x) ---------- */
.h-xl{
  font-family:var(--fd);font-weight:400;
  font-size:clamp(3.1rem, 10.5vw, 9.5rem);
  line-height:.86;letter-spacing:-.035em;margin:0;
  text-wrap:balance;
}
.h-xl em{font-style:normal;color:var(--teal-cl)}
.h-lg{
  font-family:var(--fd);font-weight:400;
  font-size:clamp(2.15rem, 6vw, 4.6rem);
  line-height:.94;letter-spacing:-.03em;margin:.55rem 0 0;
}
.h-lg em{font-style:normal;color:var(--teal)}
.sec-dark .h-lg em,.sec-iee .h-lg em{color:var(--teal-cl)}
.h-lg-sm{font-family:var(--fb);font-weight:600;font-size:clamp(1rem,1.7vw,1.35rem);letter-spacing:-.01em;display:block;margin-top:.5rem;color:var(--hormigon-2)}

.eyebrow{
  font-family:var(--fm);font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--teal);margin:0;display:flex;align-items:center;gap:.7rem;
}
.eyebrow::after{content:"";flex:1;height:1px;background:currentColor;opacity:.35;max-width:120px}
.sec-dark .eyebrow,.sec-iee .eyebrow,.hero .eyebrow{color:var(--teal-cl)}

/* ---------- botones ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-family:var(--fb);font-weight:700;font-size:.97rem;letter-spacing:.01em;
  padding:.95rem 1.6rem;border-radius:var(--r);text-decoration:none;border:2px solid transparent;
  transition:background-color .22s var(--e), color .22s var(--e), border-color .22s var(--e), transform .16s var(--e);
  cursor:pointer;
}
.btn-fill{background:var(--teal);color:#fff}
.btn-line{border-color:currentColor;color:var(--papel)}
.sec-pale .btn-line{color:var(--carbon)}
@media (hover:hover){
  .btn-fill:hover{background:var(--teal-cl);color:var(--carbon)}
  .btn-line:hover{background:var(--papel);color:var(--carbon);border-color:var(--papel)}
}
.btn:active{transform:scale(.97)}
.btn-b{width:100%;padding:1.05rem 1.6rem}

/* ===========================================================
   HEADER — filetes de lado a lado
   =========================================================== */
.hd{
  position:fixed;inset:0 0 auto;z-index:100;
  padding:.85rem 0;
  transition:background-color .28s var(--e), border-color .28s var(--e);
  border-bottom:1px solid transparent;
}
.hd.scrolled{background:rgba(14,20,22,.94);border-bottom-color:rgba(245,245,245,.12)}
.hd-in{
  width:min(100% - var(--pad)*2, var(--wrap));margin-inline:auto;
  display:flex;align-items:center;gap:clamp(.9rem,2.5vw,2rem);
}
.hd-mark{display:flex;align-items:baseline;gap:.5rem;color:var(--papel);text-decoration:none;flex:none}
.mono-sm{width:auto;height:clamp(15px,1.8vw,21px);display:block}
.hd-mark-txt{font-family:var(--fm);font-size:.75rem;letter-spacing:.22em;text-transform:uppercase;color:var(--teal-cl)}

.hd-nav{display:flex;align-items:center;gap:.85rem;margin-left:auto}
.hd-nav a{
  font-family:var(--fm);font-size:.74rem;letter-spacing:.11em;text-transform:uppercase;
  color:rgba(245,245,245,.72);text-decoration:none;padding:.3rem 0;
  transition:color .2s var(--e);
}
@media (hover:hover){.hd-nav a:hover{color:var(--papel)}}
.hd-nav a.active{color:var(--teal-cl)}
.hd-nav .fil{flex:1;min-width:14px;max-width:52px;height:1px;background:rgba(245,245,245,.28)}

.hd-tel{
  flex:none;text-decoration:none;color:var(--papel);
  font-family:var(--fm);font-size:.78rem;letter-spacing:.05em;
  border:1px solid rgba(245,245,245,.32);padding:.5rem .85rem;border-radius:var(--r);
  transition:background-color .2s var(--e),border-color .2s var(--e),color .2s var(--e);
}
@media (hover:hover){.hd-tel:hover{background:var(--teal);border-color:var(--teal);color:#fff}}

.burger{display:none;width:44px;height:38px;background:none;border:0;cursor:pointer;padding:9px 6px;flex-direction:column;justify-content:space-between}
.burger span{display:block;height:2px;background:var(--papel);transition:transform .28s var(--e),opacity .2s var(--e)}
.burger[aria-expanded="true"] span:first-child{transform:translateY(9px) rotate(45deg)}
.burger[aria-expanded="true"] span:last-child{transform:translateY(-9px) rotate(-45deg)}

@media (max-width:940px){
  .burger{display:flex;margin-left:auto;order:3}
  .hd-tel{order:2;margin-left:auto}
  .hd-nav{
    position:fixed;inset:0;background:var(--carbon);
    flex-direction:column;justify-content:center;gap:1.4rem;
    margin:0;transform:translateY(-100%);transition:transform .38s var(--e);
    visibility:hidden;
  }
  .hd-nav.open{transform:translateY(0);visibility:visible}
  .hd-nav a{font-size:1.35rem;letter-spacing:.07em}
  .hd-nav .fil{display:none}
}
@media (max-width:420px){.hd-tel .hd-tel-n{display:none}.hd-tel::after{content:"Llamar"}}

/* ===========================================================
   HERO — la firma: el monograma revela su propia foto
   =========================================================== */
.hero{
  position:relative;height:100svh;min-height:600px;max-height:1000px;
  background:var(--carbon);
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:clamp(6.5rem,14vh,9rem) 0 0;overflow:hidden;isolation:isolate;
}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:center 38%;filter:saturate(.95)}

/* FIRMA: el monograma AIA recorta la MISMA foto en versión luminosa.
   Ocupa todo el hero y comparte encuadre exacto con .hero-bg img (cover + center 38%),
   así el revelado casa al píxel; la máscara es la que coloca y dimensiona las letras. */
.hero-mono{
  position:absolute;inset:0;z-index:1;
  background-image:url("assets/hero-claro.webp");
  background-size:cover;background-position:center 38%;background-repeat:no-repeat;
  -webkit-mask-image:url("mono.svg");mask-image:url("mono.svg");
  -webkit-mask-size:min(1340px,116%) auto;mask-size:min(1340px,116%) auto;
  -webkit-mask-position:center 11%;mask-position:center 11%;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
}
@media (max-width:700px){
  .hero-mono{-webkit-mask-size:150% auto;mask-size:150% auto;-webkit-mask-position:center 24%;mask-position:center 24%}
}
.hero-veil{
  position:absolute;inset:0;z-index:2;pointer-events:none;
  background:
    linear-gradient(to bottom,
      rgba(10,16,18,.42) 0%, rgba(10,16,18,.10) 14%, rgba(10,16,18,.12) 30%,
      rgba(10,16,18,.62) 44%, rgba(10,16,18,.92) 58%, rgba(10,16,18,.97) 100%);
}
/* grano */
.hero::after,.sec-iee::after{
  content:"";position:absolute;inset:0;z-index:3;pointer-events:none;opacity:.055;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}

.hero-in{
  position:relative;z-index:4;
  width:min(100% - var(--pad)*2, var(--wrap));margin-inline:auto;
  padding-bottom:clamp(2rem,5vh,3.5rem);
  color:var(--papel);max-width:min(100% - var(--pad)*2, var(--wrap));
}
.hero-in .eyebrow{
  margin-bottom:1.2rem;display:inline-flex;
  background:var(--carbon);padding:.5rem .9rem;border-left:2px solid var(--teal-cl);
}
.hero-in .eyebrow::after{display:none}
.hero .h-xl{color:var(--papel);text-shadow:0 2px 40px rgba(8,14,16,.55)}
.hero-lead{
  max-width:46ch;margin:1.5rem 0 0;font-size:clamp(1.02rem,1.5vw,1.2rem);
  color:rgba(245,245,245,.86);line-height:1.6;
}
.hero-cta{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.9rem}

.hero-foot{
  position:relative;z-index:4;
  width:min(100% - var(--pad)*2, var(--wrap));margin-inline:auto;
  display:flex;justify-content:space-between;align-items:center;gap:1rem;
  padding:.9rem 0;border-top:1px solid rgba(245,245,245,.18);
  color:rgba(245,245,245,.78);font-size:.75rem;
}
.hero-foot-r{color:rgba(245,245,245,.45)}
@media (max-width:640px){.hero-foot-r{display:none}}
.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--hormigon);vertical-align:baseline}
.dot.open{background:#49C08A;box-shadow:0 0 0 3px rgba(73,192,138,.22)}
.dot.closed{background:#C97A5B}

/* ===========================================================
   BANDA DE CIFRAS
   =========================================================== */
.cifras{background:var(--carbon);color:var(--papel);padding:clamp(2.2rem,5vw,3.4rem) 0;border-top:1px solid rgba(245,245,245,.1)}
.cifras-g{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1rem,3vw,2.5rem)}
.cifra b{
  display:block;font-family:var(--fd);font-weight:400;
  font-size:clamp(2.1rem,4.6vw,3.5rem);line-height:1;letter-spacing:-.03em;color:var(--teal-cl);
}
.cifra b i{font-style:normal;font-size:.55em;color:var(--papel)}
.cifra span{display:block;margin-top:.5rem;font-size:.86rem;color:rgba(245,245,245,.7);line-height:1.35}
@media (max-width:760px){.cifras-g{grid-template-columns:repeat(2,1fr);gap:1.6rem}}

/* ===========================================================
   SECCIONES
   =========================================================== */
.sec{padding:clamp(4rem,9vw,7.5rem) 0;position:relative}
.sec-pale{background:var(--papel-2)}
.sec-dark{background:var(--carbon);color:var(--papel)}
.sec-dark .sec-lead,.sec-dark p{color:rgba(245,245,245,.78)}
.sec-hd{max-width:62ch;margin-bottom:clamp(2.2rem,5vw,3.6rem)}
.sec-hd-c{max-width:none;text-align:center}
.sec-hd-c .eyebrow{justify-content:center}
.sec-hd-c .eyebrow::after{display:none}
.sec-lead{margin:1.3rem 0 0;font-size:clamp(1rem,1.35vw,1.13rem);color:var(--hormigon-2);line-height:1.62}

/* ---------- servicios ---------- */
.serv{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(14,20,22,.14)}
.sv{background:var(--papel-2);padding:clamp(1.4rem,2.2vw,2rem);position:relative;transition:background-color .25s var(--e)}
@media (hover:hover){.sv:hover{background:var(--papel)}}
.sv-n{display:block;color:var(--teal);font-size:.72rem;margin-bottom:1.6rem}
.sv h3{font-family:var(--fb);font-weight:700;font-size:1.14rem;line-height:1.28;margin:0 0 .55rem;letter-spacing:-.015em}
.sv p{margin:0;font-size:.94rem;color:var(--hormigon-2);line-height:1.55}
.sv p a{color:var(--teal);text-underline-offset:3px}
@media (max-width:1000px){.serv{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.serv{grid-template-columns:1fr}.sv-n{margin-bottom:.9rem}}

/* ---------- el archivo ---------- */
.filtros{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:1.6rem}
.fl{
  font-family:var(--fm);font-size:.72rem;letter-spacing:.07em;text-transform:uppercase;
  background:transparent;color:rgba(245,245,245,.7);
  border:1px solid rgba(245,245,245,.22);border-radius:var(--r);
  padding:.52rem .8rem;cursor:pointer;display:inline-flex;align-items:center;gap:.45rem;
  transition:background-color .2s var(--e),color .2s var(--e),border-color .2s var(--e);
}
.fl i{font-style:normal;color:rgba(245,245,245,.42);font-size:.75rem}
@media (hover:hover){.fl:hover{border-color:var(--teal-cl);color:var(--papel)}}
.fl.is-on{background:var(--teal);border-color:var(--teal);color:#fff}
.fl.is-on i{color:rgba(255,255,255,.7)}

.rej{
  display:grid;grid-template-columns:repeat(4,1fr);
  grid-auto-rows:clamp(140px,15vw,215px);gap:10px;
}
.pz{margin:0;position:relative;overflow:hidden;background:var(--carbon-2);cursor:zoom-in}
.pz-w2{grid-column:span 2}
.pz-h2{grid-row:span 2}
.pz img{width:100%;height:100%;object-fit:cover;transition:transform .55s var(--e), opacity .3s var(--e)}
@media (hover:hover){.pz:hover img{transform:scale(1.045)}}
.pz figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:.62rem .8rem .6rem;
  background:linear-gradient(to top,rgba(6,11,13,.96) 0%,rgba(6,11,13,.92) 62%,rgba(6,11,13,.55) 88%,rgba(6,11,13,0) 100%);
  color:var(--papel);font-size:.8rem;font-weight:600;
  display:flex;flex-direction:column;gap:.05rem;line-height:1.3;
}
.pz figcaption .mono{font-size:.72rem;font-weight:400;color:#7FCFE0;letter-spacing:.07em}
.pz[hidden]{display:none}
.pz.oculta{display:none}
@media (max-width:900px){
  .rej{grid-template-columns:repeat(2,1fr);grid-auto-rows:clamp(130px,26vw,190px)}
}
@media (max-width:520px){
  .rej{grid-template-columns:repeat(2,1fr);gap:7px}
  .pz-w2{grid-column:span 2}.pz-h2{grid-row:span 1}
}
.rej-vacio{margin:1.6rem 0 0;color:rgba(245,245,245,.6);font-size:.95rem}

/* muro de expedientes: el volumen se VE, no se cuenta */
.muro{margin-top:clamp(2.4rem,5vw,3.6rem);border-top:1px solid rgba(245,245,245,.16);padding-top:1.6rem}
.muro-t{color:var(--teal-cl);font-size:.72rem;margin:0 0 1rem}
.muro-g{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));
  gap:.32rem .7rem;font-size:.75rem;letter-spacing:.04em;text-transform:none;
  color:rgba(245,245,245,.42);
}
.muro-g span{transition:color .2s var(--e)}
.muro-g span.hi{color:var(--teal-cl)}
.muro-p{margin:1.1rem 0 0;font-size:.9rem;color:rgba(245,245,245,.55)}

/* ---------- IEE ---------- */
.sec-iee{background:var(--teal-hd);color:var(--papel);overflow:hidden;isolation:isolate;--teal-cl:#79CEDE}
.iee-bg{position:absolute;inset:0;z-index:0;opacity:.4}
.iee-bg img{width:100%;height:100%;object-fit:cover;object-position:center 30%}
.sec-iee::before{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(105deg, rgba(11,44,52,.97) 0%, rgba(11,44,52,.86) 46%, rgba(11,44,52,.6) 100%);
}
.iee-in{position:relative;z-index:4;display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,5vw,4.5rem);align-items:start}
.sec-iee .sec-lead{color:rgba(245,245,245,.82)}
.sec-iee .sec-lead b{color:var(--papel)}
.iee-l{list-style:none;margin:1.6rem 0 0;padding:0;display:grid;gap:.55rem}
.iee-l li{position:relative;padding-left:1.5rem;font-size:.98rem;color:rgba(245,245,245,.82)}
.iee-l li::before{content:"";position:absolute;left:0;top:.62em;width:9px;height:2px;background:var(--teal-cl)}
.iee-nota{margin:1.5rem 0 0;font-size:.9rem;color:rgba(245,245,245,.6);max-width:48ch}

.iee-card{background:var(--papel);color:var(--carbon);padding:clamp(1.5rem,2.6vw,2.2rem);border-radius:var(--r)}
.iee-lab{display:block;font-family:var(--fm);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--teal);margin-bottom:.6rem}
.iee-row{display:flex;gap:.5rem}
.iee-in-n{
  flex:1;min-width:0;font-family:var(--fd);font-size:1.9rem;letter-spacing:-.02em;
  border:2px solid rgba(14,20,22,.18);border-radius:var(--r);
  padding:.5rem .8rem;background:#fff;color:var(--carbon);width:100%;
  transition:border-color .2s var(--e);
}
.iee-in-n:focus{border-color:var(--teal);outline:none}
.iee-in-n::-webkit-outer-spin-button,.iee-in-n::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.iee-in-n{-moz-appearance:textfield}
.iee-row .btn{flex:none;padding-inline:1.15rem}
.iee-out{
  display:block;margin-top:1.1rem;min-height:2.6rem;font-size:1rem;line-height:1.5;color:var(--carbon);
}
.iee-out b{display:block;font-family:var(--fd);font-weight:400;font-size:1.45rem;letter-spacing:-.02em;margin-bottom:.3rem;line-height:1.12}
.iee-out.vence b{color:#A8412A}
.iee-out.pronto b{color:var(--teal)}
.iee-out.lejos b{color:var(--hormigon-2)}
.iee-out small{display:block;margin-top:.4rem;font-size:.86rem;color:var(--hormigon-2)}
.iee-legal{margin:1rem 0 0;font-size:.75rem;color:var(--hormigon-2);letter-spacing:.04em;text-transform:none}
@media (max-width:880px){.iee-in{grid-template-columns:1fr}}

/* ---------- el estudio ---------- */
.est{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(2rem,5vw,4.5rem);align-items:stretch}
.est-img{position:relative;min-height:100%}
.est-img img{width:100%;height:100%;min-height:clamp(320px,42vw,560px);object-fit:cover;object-position:center 46%}
.est-cap{
  position:absolute;left:0;bottom:0;background:var(--carbon);color:var(--teal-cl);
  padding:.5rem .8rem;font-size:.75rem;letter-spacing:.1em;
}
.est-txt p{margin:1.05rem 0 0;color:var(--hormigon-2);font-size:1.01rem}
.est-txt .h-lg + p{margin-top:1.6rem}
.est-firma{margin-top:1.8rem !important;color:var(--teal) !important;font-size:.72rem !important;letter-spacing:.1em}
@media (max-width:900px){.est{grid-template-columns:1fr}}

/* ---------- reseñas ---------- */
.est-star{font-style:normal;color:var(--teal)}
.ops{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(14,20,22,.14)}
.op{margin:0;background:var(--papel-2);padding:clamp(1.4rem,2.2vw,1.9rem);display:flex;flex-direction:column;justify-content:space-between;gap:1.2rem}
.op p{margin:0;font-size:1rem;line-height:1.55;color:var(--carbon)}
.op cite{font-style:normal;font-weight:700;font-size:.86rem;display:flex;flex-direction:column;gap:.25rem}
.op cite .mono{font-weight:400;font-size:.7rem;color:var(--teal);letter-spacing:.14em}
@media (max-width:1000px){.ops{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.ops{grid-template-columns:1fr}}

/* ---------- contacto ---------- */
.cont{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:start}
.dato{padding:1.3rem 0;border-top:1px solid rgba(245,245,245,.16)}
.dato:first-of-type{margin-top:2.2rem}
.dato-k{display:block;color:var(--teal-cl);font-size:.7rem;margin-bottom:.55rem}
.dato-v{margin:0;color:rgba(245,245,245,.88);text-decoration:none;font-size:1.02rem;line-height:1.5}
.dato-big{
  font-family:var(--fd);font-size:clamp(1.7rem,3.4vw,2.5rem);letter-spacing:-.025em;
  color:var(--papel);display:inline-block;transition:color .2s var(--e);
}
@media (hover:hover){.dato-big:hover{color:var(--teal-cl)}}
.dato-link{display:inline-block;margin-top:.6rem;font-size:.86rem;color:var(--teal-cl);text-underline-offset:3px}
.estado{margin:0 0 .7rem;display:flex;align-items:center;gap:.55rem;font-size:.95rem;color:var(--papel)}
.hours{display:grid;gap:.18rem;font-size:.74rem;letter-spacing:.04em;text-transform:none;color:rgba(245,245,245,.62)}
.hours .row{display:flex;justify-content:space-between;gap:1rem;padding:.22rem 0}
.hours .row.today{color:var(--teal-cl)}

.form{background:var(--carbon-2);padding:clamp(1.4rem,2.6vw,2.1rem);border:1px solid rgba(245,245,245,.1);border-radius:var(--r)}
.f-row{margin-bottom:1rem}
.f-row label{display:block;font-family:var(--fm);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--teal-cl);margin-bottom:.4rem}
.f-row input,.f-row select,.f-row textarea{
  width:100%;background:rgba(245,245,245,.05);border:1px solid rgba(245,245,245,.18);
  border-radius:var(--r);padding:.75rem .85rem;color:var(--papel);
  font-family:var(--fb);font-size:.98rem;transition:border-color .2s var(--e),background-color .2s var(--e);
}
.f-row textarea{resize:vertical;min-height:96px}
.f-row input::placeholder,.f-row textarea::placeholder{color:rgba(245,245,245,.35)}
.f-row input:focus,.f-row select:focus,.f-row textarea:focus{border-color:var(--teal-cl);background:rgba(245,245,245,.08);outline:none}
.f-row select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='%233FA3B8'%3E%3Cpath d='M6 8 0 0h12z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .9rem center}
.f-row select option{background:var(--carbon-2);color:var(--papel)}
.f-nota{margin:.85rem 0 0;font-size:.75rem;color:rgba(245,245,245,.45);letter-spacing:.04em;text-transform:none;text-align:center}

.mapa{
  margin-top:clamp(2.4rem,5vw,3.6rem);height:clamp(280px,34vw,420px);
  background:var(--carbon-2);filter:grayscale(1) contrast(.92) brightness(.86);
}
.mapa iframe{width:100%;height:100%;border:0;display:block}
@media (max-width:880px){.cont{grid-template-columns:1fr}}

/* ===========================================================
   FOOTER
   =========================================================== */
.ft{background:#0A1012;color:var(--papel);padding-top:clamp(2.8rem,6vw,4.5rem)}
.ft-in{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:clamp(1.6rem,4vw,3rem);padding-bottom:clamp(2.2rem,4vw,3.2rem)}
.ft-brand .mono-sm{height:24px;color:var(--papel);margin-bottom:1rem}
.ft-desc{margin:0;font-size:.9rem;color:rgba(245,245,245,.6);line-height:1.55}
.ft-nav{display:flex;flex-direction:column;gap:.5rem}
.ft-nav a{font-size:.9rem;color:rgba(245,245,245,.72);text-decoration:none;transition:color .2s var(--e)}
@media (hover:hover){.ft-nav a:hover{color:var(--teal-cl)}}
.ft-c a{display:block;font-family:var(--fm);font-size:.92rem;color:var(--papel);text-decoration:none;margin-bottom:.7rem}
.ft-c p{margin:0;font-size:.88rem;color:rgba(245,245,245,.6);line-height:1.55}
@media (max-width:760px){.ft-in{grid-template-columns:1fr 1fr}.ft-brand{grid-column:1/-1}}

.ft-bar{border-top:1px solid rgba(245,245,245,.12);padding:1.2rem 0 1.6rem}
.ft-bar-in{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1.4rem}
.ft-cp{margin:0;font-size:.8rem;color:rgba(245,245,245,.5)}
.ft-legal{display:flex;gap:1.1rem}
.ft-legal a{font-size:.8rem;color:rgba(245,245,245,.5);text-decoration:none}
@media (hover:hover){.ft-legal a:hover{color:rgba(245,245,245,.8)}}
.demo-aviso{
  width:min(100% - var(--pad)*2, var(--wrap));margin:.9rem auto 0;
  font-size:.72rem;color:rgba(245,245,245,.32);line-height:1.45;
}

/* ===========================================================
   CALLBAR MÓVIL
   =========================================================== */
.callbar{display:none}
@media (max-width:720px){
  .callbar{
    display:grid;grid-template-columns:1fr 1fr;position:fixed;inset:auto 0 0;z-index:90;
    border-top:1px solid rgba(245,245,245,.14);
  }
  .cb{
    padding:.95rem;text-align:center;text-decoration:none;font-weight:700;font-size:.95rem;
  }
  .cb-1{background:var(--carbon);color:var(--papel)}
  .cb-2{background:var(--teal);color:#fff}
  body{padding-bottom:52px}
  .ft-bar{padding-bottom:1.2rem}
}

/* ===========================================================
   LIGHTBOX
   =========================================================== */
.lb{
  position:fixed;inset:0;z-index:150;background:rgba(8,13,15,.96);
  display:grid;place-items:center;padding:clamp(1rem,4vw,3rem);
}
.lb[hidden]{display:none}
.lb img{max-width:100%;max-height:88vh;object-fit:contain}
.lb-x{
  position:absolute;top:1rem;right:1rem;width:44px;height:44px;
  background:none;border:1px solid rgba(245,245,245,.3);color:var(--papel);
  font-size:1.1rem;cursor:pointer;border-radius:var(--r);
}

/* ===========================================================
   REVEAL
   =========================================================== */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s var(--e),transform .7s var(--e)}
.reveal.in,.reveal.is-in,.reveal.visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .pz img{transition:none}
}
