/* Ventcor v3 · «autoridad» (decisiones: ../../investigacion/DECISIONES-v3.md)
   Una familia (Instrument Sans), blanco y aluminio, bandas negras con foto a sangre,
   verde del ventilador solo como acento. Rojo y azul, solo dentro del logo y del corte. */
@font-face{font-family:'Instrument Sans';src:url('../fonts/instrument-var-latin.woff2') format('woff2');font-weight:400 700;font-display:swap}

:root{
  --tinta:#15171A; --tinta-2:#22262A; --tinta-3:#30353A; --estructura:#454B51;
  --gris:#868D93; --gris-osc:#565D63; --linea:#D5D9DC; --linea-2:#E6E9EB;
  --alu:#EEF0F1; --blanco:#FFFFFF;
  --verde:#6CC04A; --verde-claro:#94D477; --verde-texto:#2C6F1C;
  --imp:#6FB0EA; --ret:#EE6A78;
  --f:'Instrument Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --curva:cubic-bezier(.22,.8,.26,1);
  --ancho:80rem; --g:clamp(1rem,4vw,2.5rem);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:6rem}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--blanco);color:var(--tinta);font:400 1.0625rem/1.65 var(--f);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
main{overflow-x:clip}
img,svg{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--f);font-weight:700;margin:0;letter-spacing:-.03em;line-height:1.04}
p{margin:0 0 1rem}
ul,ol{margin:0;padding:0}
.wrap{max-width:var(--ancho);margin:0 auto;padding:0 var(--g)}
.ico{width:1.1em;height:1.1em;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
:focus-visible{outline:3px solid var(--verde);outline-offset:3px}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.pte{display:inline-block;font:600 .72rem/1.3 var(--f);padding:.12rem .42rem;border:1px dashed currentColor;border-radius:2px;vertical-align:middle;white-space:normal;letter-spacing:0}
.franja{background:var(--tinta);color:#C9CED2;font:500 .78rem/1.4 var(--f);text-align:center;padding:.45rem 1rem}
.franja a{color:var(--verde-claro)}

/* ---------- cabecera ---------- */
.util{background:var(--alu);font-size:.82rem;color:var(--gris-osc)}
.util .wrap{display:flex;gap:1.5rem;justify-content:flex-end;min-height:2.1rem;align-items:center}
.util a{text-decoration:none}.util a:hover{color:var(--tinta)}
.cab{position:sticky;top:0;z-index:50;background:var(--blanco);border-bottom:1px solid var(--linea-2);transition:box-shadow .3s}
.cab.sombra{box-shadow:0 6px 24px #15171a14}
.cab .wrap{display:flex;align-items:center;gap:2rem;min-height:4.6rem}
.marca img{height:2.55rem;width:auto}
.nav{display:flex;align-items:center;gap:.25rem;margin-left:auto;font-weight:600;font-size:.97rem}
.nav > li{list-style:none;position:relative}
.nav > li > a{display:block;text-decoration:none;padding:.7rem .85rem;border-radius:3px}
.nav > li > a:hover,.nav > li:focus-within > a{background:var(--alu)}
.nav > li > a[aria-current]{box-shadow:inset 0 -2px 0 var(--verde)}
.sub{position:absolute;top:100%;left:0;min-width:19rem;background:var(--blanco);border:1px solid var(--linea);box-shadow:0 18px 40px #15171a1f;padding:.5rem;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .2s,transform .2s,visibility .2s}
.nav > li:hover .sub,.nav > li:focus-within .sub{opacity:1;visibility:visible;transform:none}
.sub a{display:block;padding:.6rem .75rem;text-decoration:none;font-weight:500;border-radius:3px}
.sub a small{display:block;color:var(--gris-osc);font-weight:400;font-size:.82rem}
.sub a:hover{background:var(--alu)}
.cab .btn{margin-left:.5rem}
.menu-btn{display:none;margin-left:auto;background:none;border:1px solid var(--linea);font:600 .9rem var(--f);padding:.6rem .85rem;border-radius:3px;cursor:pointer;color:var(--tinta)}
@media (max-width:1060px){
  .menu-btn{display:inline-flex}.cab .btn{display:none}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--blanco);flex-direction:column;align-items:stretch;gap:0;padding:.5rem var(--g) 1.5rem;border-bottom:1px solid var(--linea);max-height:calc(100vh - 5rem);overflow:auto}
  .nav.abierto{display:flex}
  .nav > li > a{padding:.9rem 0;border-bottom:1px solid var(--linea-2);font-size:1.05rem}
  .sub{position:static;opacity:1;visibility:visible;transform:none;border:0;box-shadow:none;padding:0 0 .5rem .75rem;min-width:0}
  .sub a{padding:.45rem 0}
  .sub a small{display:none}
}

/* ---------- botones ---------- */
.btn{display:inline-flex;align-items:center;gap:.6rem;font:600 1rem/1.1 var(--f);text-decoration:none;border:0;border-radius:3px;padding:1rem 1.35rem;cursor:pointer;transition:background .25s var(--curva),box-shadow .25s var(--curva),color .25s}
.btn .ico{transition:transform .25s var(--curva)}
.btn:hover .ico{transform:translateX(3px)}
.btn-pri{background:var(--verde);color:var(--tinta)}
.btn-pri:hover{background:var(--verde-claro)}
.btn-osc{background:var(--tinta);color:var(--blanco)}
.btn-osc:hover{background:var(--tinta-3)}
.btn-lin{background:transparent;color:var(--tinta);box-shadow:inset 0 0 0 1.5px var(--tinta)}
.btn-lin:hover{background:var(--tinta);color:var(--blanco)}
.btn-blanco{background:transparent;color:var(--blanco);box-shadow:inset 0 0 0 1.5px #ffffff80}
.btn-blanco:hover{box-shadow:inset 0 0 0 1.5px var(--blanco);background:#ffffff14}
.btn-peq{padding:.72rem 1rem;font-size:.92rem}
.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}
.btns{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.enlace{display:inline-flex;align-items:center;gap:.45rem;font-weight:600;text-decoration:none;border-bottom:1.5px solid var(--verde);padding-bottom:.15rem}
.enlace:hover{border-color:currentColor}

/* ---------- portada ---------- */
.hero{position:relative;min-height:min(88vh,52rem);display:flex;align-items:flex-end;color:var(--blanco);background:var(--tinta);isolation:isolate}
.hero > picture,.hero > img{position:absolute;inset:0;z-index:-2}
.hero picture img,.hero > img{width:100%;height:100%;object-fit:cover}
.hero::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#15171ae6 0%,#15171ab3 38%,#15171a26 75%),linear-gradient(0deg,#15171acc 0%,transparent 45%)}
.hero .wrap{width:100%;padding-top:clamp(5rem,12vh,8rem);padding-bottom:clamp(2rem,5vh,3rem)}
.hero h1{font-size:clamp(2.5rem,5.4vw,4.9rem);max-width:15ch;letter-spacing:-.038em;line-height:.98}
.hero .lead{font-size:clamp(1.08rem,1.5vw,1.28rem);max-width:44ch;color:#DDE1E4;margin:1.5rem 0 2rem}
.credenciales{display:grid;grid-template-columns:auto repeat(4,minmax(0,1fr));gap:0;margin-top:clamp(2.5rem,7vh,4.5rem);border-top:1px solid #ffffff33;font-size:.92rem}
.credenciales > *{padding:1rem 1.25rem 0 0}
.credenciales dt{color:#AEB5BA;font-weight:500;padding-right:2rem}
.credenciales dd{margin:0;font-weight:600;border-left:1px solid #ffffff26;padding-left:1.1rem}
.credenciales dd a{text-decoration:none}.credenciales dd a:hover{text-decoration:underline}
.credenciales dd small{display:block;color:#AEB5BA;font-weight:400}
@media (max-width:900px){.credenciales{grid-template-columns:1fr 1fr}.credenciales dt{grid-column:1/-1}.credenciales dd{border-left:0;padding-left:0}}
.ilustrativa{position:absolute;right:.75rem;bottom:.75rem;z-index:1;font:500 .7rem var(--f);color:#E6E9EB;background:#15171a99;padding:.2rem .5rem;border-radius:2px}

/* ---------- página interior: banda de foto ---------- */
.pag-hero{position:relative;color:var(--blanco);background:var(--tinta);isolation:isolate;min-height:clamp(22rem,58vh,34rem);display:flex;align-items:flex-end}
.pag-hero > picture{position:absolute;inset:0;z-index:-2}
.pag-hero picture img{width:100%;height:100%;object-fit:cover}
.pag-hero::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#15171ae0 0%,#15171a99 45%,#15171a1a 85%),linear-gradient(0deg,#15171ab3,transparent 50%)}
.pag-hero.sin-foto{min-height:auto}
.pag-hero.sin-foto::before{display:none}
.pag-hero .wrap{width:100%;padding-top:4rem;padding-bottom:clamp(2.25rem,5vw,3.5rem)}
.pag-hero h1{font-size:clamp(2.2rem,4.6vw,4rem);max-width:18ch}
.pag-hero .lead{font-size:1.15rem;max-width:52ch;color:#DDE1E4;margin:1.25rem 0 0}
.migas{font-size:.85rem;color:#AEB5BA;margin-bottom:1.25rem;display:flex;flex-wrap:wrap;gap:.35rem}
.migas a{color:#DDE1E4;text-decoration:none}.migas a:hover{text-decoration:underline}
.migas span[aria-hidden]{opacity:.6}

/* ---------- secciones ---------- */
.sec{padding:clamp(4rem,9vw,7.5rem) 0}
.sec.corta{padding:clamp(3rem,6vw,4.5rem) 0}
.alu{background:var(--alu)}
.oscura{background:var(--tinta);color:#E6E9EB}
.cab-sec{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;margin-bottom:clamp(2.25rem,5vw,3.5rem);max-width:52rem}
.cab-sec h2{font-size:clamp(2rem,3.8vw,3.3rem)}
.cab-sec p{font-size:1.13rem;color:var(--gris-osc);margin:0;max-width:56ch}
.oscura .cab-sec p{color:#AEB5BA}
.filete{width:3rem;height:3px;background:var(--verde);margin-bottom:1.25rem}

/* declaración + datos */
.declara{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(2rem,6vw,6rem);align-items:start}
.declara p.grande{font-size:clamp(1.6rem,2.8vw,2.4rem);line-height:1.2;letter-spacing:-.025em;font-weight:600;margin:0}
.declara p.grande em{font-style:normal;color:var(--gris)}
.datos{display:grid;margin:0}
.datos div{display:grid;grid-template-columns:9rem minmax(0,1fr);gap:1rem;padding:1.05rem 0;border-top:1px solid var(--linea)}
.datos div:last-child{border-bottom:1px solid var(--linea)}
.datos dt{color:var(--gris-osc);font-size:.92rem}
.datos dd{margin:0;font-weight:600}
.oscura .datos div{border-color:var(--estructura)}.oscura .datos dt{color:#AEB5BA}
@media (max-width:860px){.declara{grid-template-columns:1fr}.datos div{grid-template-columns:7.5rem minmax(0,1fr)}}

/* índice de montaje: foto + filas */
.indice{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(2rem,5vw,4.5rem);align-items:stretch}
.indice figure{margin:0;position:relative;min-height:22rem}
.indice figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.filas{list-style:none;border-top:1px solid var(--tinta)}
.filas a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:center;padding:1.3rem 0;border-bottom:1px solid var(--linea);text-decoration:none;transition:padding .3s var(--curva)}
.filas a:hover{padding-left:.6rem}
.filas b{display:block;font-size:clamp(1.2rem,1.8vw,1.45rem);letter-spacing:-.02em;font-weight:700}
.filas span{color:var(--gris-osc);font-size:.97rem}
.filas .ico{width:1.4rem;height:1.4rem;color:var(--verde-texto)}
.filas a:hover .ico{color:var(--tinta)}
@media (max-width:860px){.indice{grid-template-columns:1fr}.indice figure{min-height:15rem}}

/* sectores: mosaico de fotos */
.sectores{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:minmax(15rem,auto);gap:1rem}
.sector{position:relative;display:flex;align-items:flex-end;color:var(--blanco);text-decoration:none;isolation:isolate;overflow:hidden;background:var(--tinta);min-height:16rem}
.sector img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .8s var(--curva)}
.sector::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#15171ad9 0%,#15171a40 55%,transparent)}
.sector:hover img{transform:scale(1.04)}
.sector div{padding:1.5rem}
.sector h3{font-size:clamp(1.45rem,2.2vw,1.9rem)}
.sector p{margin:.4rem 0 0;color:#DDE1E4;font-size:.97rem;max-width:36ch}
.sector.a{grid-column:span 7;grid-row:span 2}.sector.b{grid-column:span 5}.sector.c{grid-column:span 5}
.sector.d{grid-column:span 12;min-height:13rem}
@media (max-width:860px){.sector.a,.sector.b,.sector.c,.sector.d{grid-column:span 12;grid-row:auto}}

/* obras */
.obras-dest{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:1rem}
.obra-card{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:24rem;padding:clamp(1.5rem,3vw,2.25rem);text-decoration:none;color:var(--blanco);background:var(--tinta-2);isolation:isolate;overflow:hidden;border:1px solid var(--estructura)}
.obra-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .8s var(--curva)}
.obra-card.con-foto::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#15171ae6,#15171a33 65%)}
.obra-card:hover img{transform:scale(1.03)}
.obra-card .cifra{font-size:clamp(3.5rem,7vw,6rem);font-weight:700;letter-spacing:-.05em;line-height:.9;color:var(--verde)}
.obra-card .cifra small{font-size:.3em;letter-spacing:-.01em;color:#DDE1E4;font-weight:600;margin-left:.4rem}
.obra-card h3{font-size:clamp(1.5rem,2.6vw,2.2rem);margin:.75rem 0 .35rem}
.obra-card p{color:#C9CED2;margin:0}
.estado{display:inline-block;align-self:flex-start;font:600 .78rem var(--f);padding:.3rem .6rem;border:1px solid currentColor;margin-bottom:auto}
.estado.curso{background:var(--verde);border-color:var(--verde);color:var(--tinta)}
.obras-lista{list-style:none;margin-top:1rem;border-top:1px solid var(--estructura)}
.obras-lista a{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr) auto;gap:1.25rem;align-items:center;padding:1.2rem 0;border-bottom:1px solid var(--estructura);text-decoration:none}
.obras-lista b{font-size:1.15rem;letter-spacing:-.015em}
.obras-lista span{color:#AEB5BA;font-size:.95rem}
.obras-lista a:hover b{color:var(--verde-claro)}
.alu .obras-lista,.blanca .obras-lista{border-color:var(--tinta)}
.alu .obras-lista a{border-color:var(--linea)}.alu .obras-lista span{color:var(--gris-osc)}.alu .obras-lista a:hover b{color:var(--verde-texto)}
@media (max-width:860px){.obras-dest{grid-template-columns:1fr}.obras-lista a{grid-template-columns:minmax(0,1fr) auto}.obras-lista a span:nth-of-type(2){display:none}}

/* proceso */
.pasos{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;counter-reset:p;border-top:1px solid var(--tinta)}
.pasos li{counter-increment:p;padding:1.5rem 1.5rem 0 0}
.pasos li::before{content:counter(p,decimal-leading-zero);display:block;font-weight:700;font-size:.95rem;color:var(--verde-texto);margin-bottom:1.25rem}
.pasos h3{font-size:1.25rem;margin-bottom:.5rem;letter-spacing:-.02em}
.pasos p{color:var(--gris-osc);font-size:.98rem;margin:0}
.nota{margin-top:2.5rem;display:grid;grid-template-columns:auto minmax(0,1fr);gap:1.25rem;align-items:start;padding:1.5rem 1.75rem;background:var(--tinta);color:#E6E9EB}
.nota b{color:var(--blanco);font-size:1.15rem;display:block;margin-bottom:.3rem}
.nota p{margin:0;color:#C9CED2}
.nota .barra{width:4px;align-self:stretch;background:var(--verde)}
@media (max-width:860px){.pasos{grid-template-columns:1fr 1fr}.pasos li{padding-bottom:1.5rem}}
@media (max-width:520px){.pasos{grid-template-columns:1fr}}

/* documentación */
.docu{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.papeles{list-style:none;border-top:1px solid var(--tinta)}
.papeles li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;padding:.95rem 0;border-bottom:1px solid var(--linea);align-items:center}
.papeles small{display:block;color:var(--gris-osc)}
.sello{font:600 .75rem var(--f);padding:.28rem .55rem;border:1px solid var(--verde-texto);color:var(--verde-texto);white-space:nowrap}
.sello.pend{border-style:dashed;border-color:var(--gris);color:var(--gris-osc)}
@media (max-width:860px){.docu{grid-template-columns:1fr}}

/* zonas */
.zonas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.zona{display:block;padding:clamp(1.5rem,3vw,2.25rem);background:var(--blanco);border:1px solid var(--linea);text-decoration:none;transition:border-color .3s}
.zona:hover{border-color:var(--tinta)}
.zona h3{font-size:1.6rem;margin-bottom:.6rem}
.zona p{color:var(--gris-osc);margin:0 0 1.2rem}
@media (max-width:760px){.zonas{grid-template-columns:1fr}}

/* llamada final */
.llamada{background:var(--tinta);color:var(--blanco);position:relative;isolation:isolate;overflow:hidden}
.llamada .wrap{display:grid;grid-template-columns:minmax(0,1.4fr) auto;gap:2rem;align-items:end;padding-top:clamp(3.5rem,7vw,5.5rem);padding-bottom:clamp(3.5rem,7vw,5.5rem)}
.llamada h2{font-size:clamp(2rem,4.2vw,3.6rem);max-width:18ch}
.llamada p{color:#C9CED2;font-size:1.1rem;margin:1rem 0 0;max-width:50ch}
.llamada .simbolo{position:absolute;right:-6rem;top:50%;width:26rem;transform:translateY(-50%);opacity:.07;z-index:-1}
@media (max-width:760px){.llamada .wrap{grid-template-columns:1fr}}

/* ---------- contenido de páginas ---------- */
.cuerpo{display:grid;grid-template-columns:minmax(0,1fr) 20rem;gap:clamp(2rem,6vw,5.5rem);align-items:start}
.texto{max-width:44rem}
.texto h2{font-size:clamp(1.6rem,2.6vw,2.15rem);margin:3rem 0 1rem}
.texto h2:first-child{margin-top:0}
.texto h3{font-size:1.2rem;margin:2rem 0 .6rem;letter-spacing:-.015em}
.texto p,.texto li{color:#2E3338}
.texto ul.lista{list-style:none;display:grid;gap:.55rem;margin:0 0 1.25rem}
.texto ul.lista li{padding-left:1.4rem;position:relative}
.texto ul.lista li::before{content:'';position:absolute;left:0;top:.72em;width:.75rem;height:2px;background:var(--verde)}
.texto ol.lista{list-style:none;counter-reset:n;display:grid;gap:0;margin:0 0 1.25rem;border-top:1px solid var(--linea)}
.texto ol.lista li{counter-increment:n;display:grid;grid-template-columns:2.5rem minmax(0,1fr);padding:.85rem 0;border-bottom:1px solid var(--linea)}
.texto ol.lista li::before{content:counter(n,decimal-leading-zero);font-weight:700;color:var(--verde-texto)}
.norma{margin:2rem 0;padding:1.1rem 1.25rem;background:var(--alu);border-left:3px solid var(--verde);font-size:.97rem}
.norma b{display:block;margin-bottom:.2rem}
.lateral{position:sticky;top:7rem;display:grid;gap:1rem}
.caja{border:1px solid var(--linea);padding:1.4rem;background:var(--blanco)}
.caja.negra{background:var(--tinta);color:#E6E9EB;border-color:var(--tinta)}
.caja h2,.caja h3{font-size:1.1rem;margin-bottom:.8rem;letter-spacing:-.01em}
.caja ul{list-style:none;display:grid;gap:.1rem}
.caja ul a{display:flex;justify-content:space-between;gap:.5rem;padding:.5rem 0;border-bottom:1px solid var(--linea-2);text-decoration:none;font-weight:500}
.caja ul a:hover{color:var(--verde-texto)}
.caja.negra p{color:#C9CED2;font-size:.97rem}
@media (max-width:960px){.cuerpo{grid-template-columns:1fr}.lateral{position:static}}

.faq{border-top:1px solid var(--tinta);margin-top:1rem}
.faq details{border-bottom:1px solid var(--linea)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1rem;padding:1.1rem 0;font-weight:600;font-size:1.05rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';font-weight:400;font-size:1.4rem;line-height:1;color:var(--verde-texto)}
.faq details[open] summary::after{content:'–'}
.faq details p{margin:0 0 1.2rem;color:var(--gris-osc);max-width:62ch}

.figura{margin:2rem 0;position:relative}
.figura img{width:100%}
.figura figcaption{font-size:.82rem;color:var(--gris-osc);margin-top:.5rem}

/* ficha de obra */
.cajetin{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--tinta);margin:0 0 2rem}
.cajetin div{padding:.8rem 1rem;border-right:1px solid var(--linea);border-bottom:1px solid var(--linea);min-width:0}
.cajetin div:nth-child(3n){border-right:0}
.cajetin dt{font-size:.78rem;color:var(--gris-osc);font-weight:500}
.cajetin dd{margin:.2rem 0 0;font-weight:600;line-height:1.35}
@media (max-width:620px){.cajetin{grid-template-columns:1fr 1fr}.cajetin div:nth-child(3n){border-right:1px solid var(--linea)}.cajetin div:nth-child(2n){border-right:0}}

/* el corte del edificio (pieza técnica de la página de montaje) */
.corte-banda{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2rem,5vw,4rem);align-items:center}
.corte-banda .leyenda{display:flex;flex-wrap:wrap;gap:.4rem 1rem;font-size:.85rem;color:#AEB5BA;margin-top:1rem}
.leyenda i{display:inline-block;width:1.4rem;height:.35rem;margin-right:.4rem;vertical-align:middle}
.leyenda .ft{height:0;border-top:2px dashed var(--estructura)}
@media (max-width:860px){.corte-banda{grid-template-columns:1fr}}
.c-estr{stroke:var(--estructura);fill:none;stroke-width:2}.c-losa{fill:var(--tinta-3)}.c-terreno{fill:url(#rayado)}
.c-ft{stroke:var(--gris-osc);stroke-width:1.5;stroke-dasharray:6 6;fill:none}
.c-imp{stroke:var(--imp)}.c-ret{stroke:var(--ret)}.c-ext{stroke:#AEB5BA}.c-hueco{stroke:var(--tinta)}
.c-boca{fill:none;stroke-width:2;stroke-linejoin:round}.c-coche{fill:none;stroke:var(--gris-osc);stroke-width:2;stroke-linejoin:round}
.c-carcasa{fill:none;stroke:var(--gris-osc);stroke-width:1.5}
.punto-imp{fill:#BFE0FA}.punto-ret{fill:#FFC2C8}.punto-ext{fill:var(--alu)}
.monta{opacity:0;transform:translateY(-8px);animation:monta .6s var(--curva) forwards}
.monta.n1{animation-delay:.05s}.monta.n2{animation-delay:.25s}.monta.n3{animation-delay:.45s}.monta.n4{animation-delay:.65s}.monta.n5{animation-delay:.85s}.monta.n6{animation-delay:1.05s}
@keyframes monta{to{opacity:1;transform:none}}
.rotor{transform-box:fill-box;transform-origin:center;animation:gira 2.4s linear infinite}.rotor.lento{animation-duration:4.5s}
@keyframes gira{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.monta{opacity:1;transform:none;animation:none}.rotor{animation:none}}

/* formulario de oferta */
.hoja{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);gap:clamp(2rem,5vw,4rem);align-items:start}
.form{display:grid;gap:1.2rem}
.form .dos{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form fieldset{border:0;padding:0;margin:0;min-width:0}
.form legend,.form label.et{font-weight:600;font-size:.95rem;margin-bottom:.45rem;display:block;padding:0}
.form input[type=text],.form input[type=email],.form input[type=tel],.form textarea{width:100%;font:inherit;padding:.8rem .9rem;border:1px solid #B9C0C5;border-radius:3px;background:var(--blanco);color:var(--tinta)}
.form input:focus,.form textarea:focus{border-color:var(--tinta);outline:2px solid var(--verde);outline-offset:0}
.form textarea{min-height:6rem;resize:vertical}
.opciones{display:flex;flex-wrap:wrap;gap:.5rem}
.opcion{position:relative}
.opcion input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.opcion span{display:inline-block;padding:.55rem .85rem;border:1px solid #B9C0C5;border-radius:3px;font-weight:500;font-size:.95rem;background:var(--blanco);cursor:pointer;transition:all .2s}
.opcion input:checked + span{background:var(--tinta);border-color:var(--tinta);color:var(--blanco)}
.opcion input:focus-visible + span{outline:3px solid var(--verde);outline-offset:2px}
.mensaje{position:sticky;top:7rem;background:var(--tinta);color:#E6E9EB;padding:1.5rem}
.mensaje h2{font-size:1.15rem;margin-bottom:.9rem;color:var(--blanco);letter-spacing:-.01em}
.mensaje pre{white-space:pre-wrap;font:400 .95rem/1.55 var(--f);margin:0 0 1rem;padding:1rem;background:var(--tinta-2);border-left:3px solid var(--verde);min-height:10rem}
.mensaje .aviso{font-size:.85rem;color:#AEB5BA;margin:.9rem 0 0}
@media (max-width:860px){.hoja{grid-template-columns:1fr}.mensaje{position:static}.form .dos{grid-template-columns:1fr}}

/* ---------- pie ---------- */
.pie{background:#0E1012;color:#AEB5BA;padding:3.5rem 0 2rem;font-size:.94rem}
.pie .wrap{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(4,minmax(0,1fr));gap:2rem}
.pie h2{font-size:.95rem;color:var(--blanco);margin:0 0 .9rem;letter-spacing:0}
.pie ul{list-style:none;display:grid;gap:.45rem}
.pie a{text-decoration:none}.pie a:hover{color:var(--blanco);text-decoration:underline}
.pie .legal{grid-column:1/-1;border-top:1px solid #2A2F34;padding-top:1.25rem;font-size:.8rem;display:flex;flex-wrap:wrap;gap:.5rem 1.5rem}
@media (max-width:960px){.pie .wrap{grid-template-columns:1fr 1fr}.pie .wrap > div:first-child{grid-column:1/-1}}

/* entradas al hacer scroll (sin JS o con movimiento reducido: visible) */
.js .revela{opacity:0;transform:translateY(16px);transition:opacity .8s var(--curva),transform .8s var(--curva)}
.js .revela.visto{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .revela{opacity:1;transform:none;transition:none}}
.nav .solo-movil{display:none}
@media (max-width:1060px){.nav .solo-movil{display:block}}
.pag-hero .estado{color:var(--blanco)}.pag-hero .estado.curso{color:var(--tinta)}
.filas a > span{color:inherit;font-size:inherit}
.filas a > span > span{display:block;color:var(--gris-osc);font-size:.97rem;margin-top:.15rem}
.obra-card.con-foto::before{background:linear-gradient(0deg,#15171af5 0%,#15171ad9 38%,#15171a40 75%)}
.obra-card.con-foto img{object-position:center 30%}
.hero .ilustrativa,.sector .ilustrativa,.pag-hero .ilustrativa{top:.75rem;bottom:auto}
/* lista de obras: en claro por defecto, en negro dentro de .oscura */
.obras-lista{border-top-color:var(--tinta)}
.obras-lista a{border-bottom-color:var(--linea)}
.obras-lista span{color:var(--gris-osc)}
.obras-lista a:hover b{color:var(--verde-texto)}
.oscura .obras-lista{border-top-color:var(--estructura)}
.oscura .obras-lista a{border-bottom-color:var(--estructura)}
.oscura .obras-lista span{color:#AEB5BA}
.oscura .obras-lista a:hover b{color:var(--verde-claro)}
.pag-hero .cifra-hero{font-size:clamp(3.5rem,8vw,6.5rem);font-weight:700;letter-spacing:-.05em;line-height:.9;color:var(--verde);margin-top:1.5rem}
.pag-hero .cifra-hero small{font-size:.28em;color:#DDE1E4;letter-spacing:-.01em;margin-left:.5rem}
@media (max-width:860px){
  .obras-lista a{grid-template-columns:minmax(0,1fr) auto;row-gap:.2rem}
  .obras-lista a b{grid-column:1}
  .obras-lista a span:nth-of-type(1){grid-column:1;grid-row:2;display:block}
  .obras-lista a .ico{grid-column:2;grid-row:1/3}
}
