/* Source: assets/cimentacion-v241.css */
/* fuentes.css */
/* Fuentes autohospedadas — sin peticiones a servidores externos.
   Poppins e IBM Plex Mono, subconjunto latin + latin-ext, formato woff2.
   Ambas bajo licencia SIL Open Font License. */

@font-face{font-family:'Poppins';src:url('/assets/fuentes/poppins-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Poppins';src:url('/assets/fuentes/poppins-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Poppins';src:url('/assets/fuentes/poppins-800.woff2') format('woff2');font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('/assets/fuentes/plex-mono-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('/assets/fuentes/plex-mono-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}

/* estilos.css */
/* ====== Respaldo métrico de Poppins ==================================
   Mientras Poppins llega desde Google, el texto se pinta con la tipografía
   del sistema. Estos ajustes hacen que ese respaldo ocupe casi exactamente
   el mismo espacio, así que al aparecer Poppins no salta el diseño.
   Medidos sobre los archivos reales: ancho medio 0.5761 em contra
   0.5636 em de Arial. */
@font-face{
  font-family:'Poppins Respaldo';
  src:local('Arial'), local('Helvetica Neue'), local('Roboto'), local('Liberation Sans');
  font-weight:400 800;
  font-style:normal;
  size-adjust:102.22%;
  ascent-override:102.72%;
  descent-override:34.24%;
  line-gap-override:9.78%;
}

:root{--concreto:#1B2430;--concreto-2:#28323F;--senal:#F5C518;--cal:#F7F4ED;--acero:#5C6675;--linea:#E3E0D8;--blanco:#fff;--gut:clamp(20px,5vw,64px);--maxw:1240px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--blanco);color:var(--concreto);font-family:'Poppins','Poppins Respaldo',system-ui,sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;line-height:1.06;letter-spacing:-.015em;font-weight:800}img{content-visibility:visible}p{margin:0 0 1em}img{display:block;max-width:100%}a{color:inherit}.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gut)}.mono{font-family:'IBM Plex Mono',ui-monospace,monospace}.eyebrow{font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:400;letter-spacing:.24em;text-transform:uppercase;color:var(--senal);margin:0 0 18px;display:flex;align-items:center;gap:12px}.eyebrow::before{content:"";width:34px;height:2px;background:var(--senal);flex:none}.btn{display:inline-block;background:var(--senal);color:var(--concreto);font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;padding:13px 24px;border:2px solid var(--senal);transition:.18s}.btn:hover{background:transparent;color:var(--senal)}.btn.dark:hover{color:var(--concreto)}.btn.ghost{background:transparent;border-color:rgba(255,255,255,.5);color:var(--blanco)}.btn.ghost:hover{background:var(--senal);border-color:var(--senal);color:var(--concreto)}a:focus-visible,.btn:focus-visible,button:focus-visible{outline:3px solid var(--senal);outline-offset:3px}header{position:fixed;top:0;left:0;right:0;z-index:80;transition:background .3s,border-color .3s}header.solid{background:rgba(27,36,48,.96);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.12)}.nav{display:flex;align-items:center;gap:34px;height:74px}.nav .marca{display:flex;align-items:center;gap:11px;text-decoration:none}.nav .marca img{height:54px;width:auto}.nav ul{list-style:none;display:flex;gap:30px;margin:0 0 0 auto;padding:0}.nav ul a{font-size:13px;font-weight:400;color:#D3D8DE;text-decoration:none;padding:26px 0;display:block}.nav ul a:hover{color:var(--senal)}.burger{display:none;margin-left:auto;background:none;border:0;padding:10px;cursor:pointer}.burger span{display:block;width:24px;height:2px;background:#fff;margin:5px 0}#menu{display:none}@media(max-width:1000px){.nav ul{display:none}.burger{display:block}.nav .cta-top{display:none}#menu.on{display:block;background:var(--concreto);border-top:1px solid rgba(255,255,255,.12)}#menu ul{list-style:none;margin:0;padding:8px 0 22px}#menu a{display:block;padding:13px var(--gut);color:#D3D8DE;text-decoration:none;font-size:15px}}.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;background:var(--concreto);color:#fff;overflow:hidden}.hero .bg{position:absolute;inset:0}.hero .bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .85s ease;animation:slowzoom 26s ease-in-out infinite alternate}.hero .bg img.on{opacity:.5}.hero-dots{position:absolute;left:0;right:0;bottom:clamp(22px,4vw,34px);z-index:2;display:flex;justify-content:center;gap:9px}.hero-dots span{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.35);transition:.25s;cursor:default}.hero-dots span.on{background:var(--senal);width:22px;border-radius:5px}@keyframes slowzoom{from{transform:scale(1.09)}to{transform:scale(1)}}.hero .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(27,36,48,.97) 6%,rgba(27,36,48,.72) 46%,rgba(27,36,48,.42) 100%)}.hero .inner{position:relative;width:100%;padding-bottom:clamp(46px,7vw,86px);padding-top:150px}.hero .tag{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--senal);margin:0 0 22px}.hero h1{font-size:clamp(32px,5.4vw,60px);max-width:19ch}.hero p{max-width:56ch;margin-top:24px;color:#C9CFD8;font-size:clamp(15px,1.4vw,17px)}.hero .cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px}.cifras{background:var(--senal);color:var(--concreto)}.cifras .g{display:grid;grid-template-columns:repeat(4,1fr)}.cifras div{padding:38px 22px 42px;text-align:center;border-right:1px solid rgba(27,36,48,.18)}.cifras div:last-child{border-right:0}.cifras b{display:block;font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:clamp(32px,4.6vw,52px);line-height:1;letter-spacing:-.035em}.cifras span{display:block;font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.17em;text-transform:uppercase;margin-top:12px;color:#4A4322}@media(max-width:820px){.cifras .g{grid-template-columns:1fr 1fr}.cifras div{border-bottom:1px solid rgba(27,36,48,.18);padding:30px 16px 34px}.cifras div:nth-child(2n){border-right:0}.cifras div:nth-last-child(-n+2){border-bottom:0}}section{padding:clamp(66px,9vw,120px) 0}section.cal{background:var(--cal)}section.dark{background:var(--concreto);color:#fff}.kicker{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--senal);margin:0 0 10px}h2{font-size:clamp(28px,4.3vw,48px)}.dark h2{color:#fff}.lede{max-width:62ch;color:var(--acero);margin-top:22px}.dark .lede{color:#C9CFD8}.head{display:flex;align-items:flex-end;gap:32px;flex-wrap:wrap}.head .btn{margin-left:auto}.divs{margin-top:56px;display:grid;gap:2px;grid-template-columns:repeat(2,1fr);background:var(--linea)}.dark .divs{background:rgba(255,255,255,.14)}.div{position:relative;min-height:clamp(300px,38vw,430px);overflow:hidden;display:flex;align-items:flex-end;text-decoration:none;color:#fff}.div img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s ease;z-index:0}.div:hover img{transform:scale(1.06)}.div::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(15,21,29,.95) 0%,rgba(15,21,29,.82) 22%,rgba(15,21,29,.28) 50%,rgba(15,21,29,0) 68%);z-index:1}.div .t{position:relative;z-index:2;padding:28px 28px 30px;width:100%}.div .t i{font-style:normal;font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--senal);display:block;margin-bottom:9px}.div .t h3{font-size:clamp(20px,2.4vw,27px)}.div .t p{margin:10px 0 0;font-size:14px;color:#C9CFD8;max-width:44ch}.div .t em{font-style:normal;display:inline-block;margin-top:16px;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--senal);border-bottom:1px solid var(--senal);padding-bottom:3px}@media(max-width:760px){.divs{grid-template-columns:1fr}}.obras{margin-top:52px;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,2vw,26px)}.obra{background:var(--blanco);border:1px solid var(--linea);display:flex;flex-direction:column}.obra .ph{aspect-ratio:4/3;overflow:hidden;background:#DDD}.obra .ph img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.obra:hover .ph img{transform:scale(1.05)}.obra .txt{padding:18px 18px 22px;flex:1;display:flex;flex-direction:column}.obra h3{font-size:15px;font-weight:600;line-height:1.25}.obra .meta{margin-top:auto;padding-top:14px;font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--acero)}.obra .meta span{display:block}.obra .meta span+span{color:#8B95A2;margin-top:3px}@media(max-width:980px){.obras{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.obras{grid-template-columns:1fr}}.serv{margin-top:50px}.serv ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--linea)}.serv li{display:flex;gap:16px;padding:16px 20px;font-size:14.5px;line-height:1.5;background:#FBF0CD}.serv li.core{background:#F0D98A}.serv li i{font-family:'IBM Plex Mono',monospace;font-style:normal;font-size:12px;color:#4A4322;font-weight:600;padding-top:3px;flex:none}@media(max-width:760px){.serv ol{grid-template-columns:1fr}}.cap{display:grid;grid-template-columns:1fr 1fr;gap:2px;margin-top:54px;background:rgba(255,255,255,.14)}.cap figure{margin:0;aspect-ratio:4/3;overflow:hidden}.cap img{width:100%;height:100%;object-fit:cover}.specs{margin-top:34px;border-top:1px solid rgba(255,255,255,.18)}.specs dl{margin:0;display:grid;grid-template-columns:auto 1fr}.specs dt,.specs dd{padding:13px 0;border-bottom:1px solid rgba(255,255,255,.12);margin:0}.specs dt{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--senal);padding-right:28px;white-space:nowrap}.specs dd{font-size:14.5px;color:#D3D8DE}@media(max-width:860px){.specs dl{grid-template-columns:1fr}.specs dt{border-bottom:0;padding-bottom:2px}}.logos{margin-top:46px;display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--linea);border-left:1px solid var(--linea)}.logos figure{margin:0;border-right:1px solid var(--linea);border-bottom:1px solid var(--linea);aspect-ratio:7/5;display:grid;place-items:center;padding:12px;background:var(--blanco)}.logos img{max-height:80%;max-width:90%;width:auto;height:auto;object-fit:contain}@media(max-width:760px){.logos{grid-template-columns:repeat(2,1fr)}}.tabla{margin-top:42px;border-top:2px solid var(--concreto)}.tabla .row{display:grid;grid-template-columns:minmax(210px,.9fr) 1.6fr;gap:24px;padding:15px 0;border-bottom:1px solid var(--linea)}.tabla .row b{font-size:14px;font-weight:600}.tabla .row span{font-size:14px;color:var(--acero)}@media(max-width:700px){.tabla .row{grid-template-columns:1fr;gap:4px}}.clientes{display:flex;flex-wrap:wrap;gap:10px;margin-top:34px}.clientes span{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.06em;border:1px solid var(--linea);padding:9px 15px;color:var(--acero);background:var(--blanco)}.form{margin-top:52px;display:grid;grid-template-columns:1fr 1fr;gap:2px;background:rgba(255,255,255,.14)}.form .intro,.form form{background:var(--concreto-2);padding:32px 30px 36px}.form .intro h3{font-size:23px;color:#fff}.form .intro p{margin-top:14px;font-size:14.5px;color:#C9CFD8;max-width:40ch}.form .intro .alt{margin-top:26px;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#8B95A2;line-height:2}.form .intro .alt a{color:var(--senal);text-decoration:none}.f-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.f{margin-bottom:18px}.f label{display:block;font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#8B95A2;margin-bottom:7px}.f input,.f select,.f textarea{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(255,255,255,.28);color:#fff;font-family:'Poppins','Poppins Respaldo',system-ui,sans-serif;font-size:14.5px;padding:8px 0;border-radius:0}.f textarea{resize:vertical;min-height:84px}.f select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,#8B95A2 50%),linear-gradient(135deg,#8B95A2 50%,transparent 50%);background-position:calc(100% - 12px) 14px,calc(100% - 7px) 14px;background-size:5px 5px;background-repeat:no-repeat}.f select option{background:var(--concreto);color:#fff}.f input:focus,.f select:focus,.f textarea:focus{outline:0;border-bottom-color:var(--senal)}.f input::placeholder,.f textarea::placeholder{color:#6B7583}.f.err input,.f.err select,.f.err textarea{border-bottom-color:#E2725B}.f .msg{display:none;font-size:12px;color:#E2725B;margin-top:6px}.f.err .msg{display:block}.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.f-send{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:8px}.f-send button{font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;background:var(--senal);color:var(--concreto);border:2px solid var(--senal);padding:13px 26px;cursor:pointer;transition:.18s}.f-send button:hover{background:transparent;color:var(--senal)}.f-send button[disabled]{opacity:.55;cursor:progress}.f-state{font-size:13.5px;color:#C9CFD8}.f-state.bad{color:#E2725B}.sent{display:none;padding:44px 30px;background:var(--concreto-2)}.sent.on{display:block}.sent h3{font-size:23px;color:var(--senal)}.sent p{margin-top:12px;font-size:14.5px;color:#C9CFD8}@media(max-width:860px){.form{grid-template-columns:1fr}.f-row{grid-template-columns:1fr;gap:0}}footer{background:#141B25;color:#8B95A2;padding:clamp(50px,7vw,76px) 0 26px}.fgrid{display:grid;grid-template-columns:1.1fr 1fr 1fr 1fr;gap:34px}.fgrid h4{font-family:'IBM Plex Mono',monospace;font-size:10.5px;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:var(--senal);margin:0 0 14px}.fgrid p{margin:0;font-size:13.5px;line-height:1.85;color:#9AA4B1}.fgrid a{color:#9AA4B1;text-decoration:none}.fgrid a:hover{color:var(--senal)}.fgrid .marca img{height:56px;width:auto}.fgrid .marca p{margin-top:16px;max-width:32ch;font-size:13px}.fin{margin-top:46px;padding-top:22px;border-top:1px solid rgba(255,255,255,.1);display:flex;flex-wrap:wrap;gap:14px;font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase}.fin span:last-child{margin-left:auto}@media(max-width:900px){.fgrid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.fgrid{grid-template-columns:1fr}}.filo{margin-top:52px;display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--linea)}.filo article{background:var(--blanco);padding:30px 26px 34px}.cal .filo article{background:var(--blanco)}.filo h3{font-size:19px}.filo .n{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:#B9932A;display:block;margin-bottom:12px}.filo p{margin:14px 0 0;font-size:14px;color:var(--acero);line-height:1.7}.filo q{display:block;margin-top:18px;font-size:14px;font-weight:600;font-style:italic;color:var(--concreto)}@media(max-width:860px){.filo{grid-template-columns:1fr}}.filo.trabajo{grid-template-columns:1fr;background:var(--linea)}.filo.trabajo article{display:grid;grid-template-columns:minmax(150px,240px) 1fr;padding:0;background:#FBF0CD}.filo.trabajo article:nth-child(odd){background:#F0D98A}.filo.trabajo .ph{aspect-ratio:3/2;overflow:hidden;background:#DDD}.filo.trabajo .ph img{width:100%;height:100%;object-fit:cover;display:block}.filo.trabajo .tx{padding:24px 28px;display:flex;gap:14px;align-items:flex-start}.filo.trabajo .tx .n{flex:none;display:block;margin:3px 0 0;font-size:12px;color:#4A4322}.filo.trabajo h3{font-size:17px}.filo.trabajo p{margin:8px 0 0;font-size:14px;color:var(--acero);line-height:1.65}@media(max-width:700px){.filo.trabajo article{grid-template-columns:1fr}.filo.trabajo .ph{aspect-ratio:16/9}}.rama{display:grid;grid-template-columns:minmax(0,340px) 1fr;gap:26px;align-items:center;padding-bottom:30px;border-bottom:1px solid rgba(255,255,255,.16);margin-bottom:40px}.rama .mk{background:transparent;padding:0;display:grid;place-items:center;min-width:0}.rama .mk img{width:100%;height:auto;display:block}.rama p{margin:0;font-size:14.5px;color:#C9CFD8;max-width:56ch}.rama p b{color:#fff;font-weight:600}@media(max-width:640px){.rama{grid-template-columns:1fr;gap:18px}.rama .mk img{width:min(260px,72%)}}.phero+section.dark{padding-top:1px}.flota{margin-top:44px;display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:rgba(255,255,255,.14)}.flota div{background:var(--concreto-2);padding:24px 22px 28px}.flota b{display:block;font-family:'IBM Plex Mono',monospace;font-size:34px;font-weight:600;line-height:1;color:var(--senal);letter-spacing:-.03em}.flota span{display:block;font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.17em;text-transform:uppercase;color:#8B95A2;margin-top:11px}.flota em{display:block;font-style:normal;font-size:13px;color:#C9CFD8;margin-top:14px;line-height:1.65}@media(max-width:900px){.flota{grid-template-columns:1fr 1fr}}@media(max-width:520px){.flota{grid-template-columns:1fr}}.frentes{margin-top:48px;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,24px)}.frente{background:var(--concreto-2);display:flex;flex-direction:column}.frente .ph{aspect-ratio:4/3;overflow:hidden}.frente .ph img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.frente:hover .ph img{transform:scale(1.05)}.frente .tx{padding:20px 20px 24px;flex:1;display:flex;flex-direction:column}.frente h3{font-size:15.5px;color:#fff;line-height:1.3}.frente p{margin:10px 0 0;font-size:13.5px;color:#B7BFC9;line-height:1.6}.frente .mt{margin-top:auto;padding-top:16px;font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--senal);display:flex;justify-content:space-between;gap:12px}.frente .mt i{font-style:normal;color:#8B95A2}@media(max-width:900px){.frentes{grid-template-columns:1fr 1fr}}@media(max-width:560px){.frentes{grid-template-columns:1fr}}.rv{opacity:0;transform:translateY(20px);transition:opacity .75s ease,transform .75s ease}.rv.on{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}.hero .bg img{animation:none}.div img,.obra .ph img{transition:none}html{scroll-behavior:auto}}.dark .tabla{border-top-color:var(--senal)}.dark .tabla .row{border-bottom-color:rgba(255,255,255,.14)}.dark .tabla .row span{color:#C9CFD8}.tabla .row .cif{display:block;font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#B9932A;margin-top:5px}.dark .tabla .row .cif{color:var(--senal)}.tabla .row i{font-style:normal;display:block;font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--acero);margin-top:5px}.dark .tabla .row i{color:#8B95A2}.cal .clientes span{background:var(--blanco)}.dark .clientes span{background:var(--concreto-2);border-color:rgba(255,255,255,.16);color:#C9CFD8}.sub{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#B9932A;margin:52px 0 0}.dark .sub{color:var(--senal)}.nota{margin-top:26px;font-size:13.5px;color:var(--acero)}.dark .nota{color:#8B95A2}.tabs{display:flex;flex-wrap:wrap;gap:9px;margin-top:36px}.tab-btn{font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;background:transparent;border:1px solid var(--linea);color:var(--acero);padding:9px 16px;cursor:pointer;transition:.15s;white-space:nowrap}.tab-btn:hover{border-color:var(--senal);color:var(--concreto)}.tab-btn.on{background:var(--senal);border-color:var(--senal);color:var(--concreto)}.cal .tab-btn{background:var(--blanco)}.cal .tab-btn.on{background:var(--senal)}[data-cat-item][hidden]{display:none!important}.tabla-group[hidden]{display:none!important}@media(max-width:700px){.tabs{flex-wrap:wrap}}.nav>ul li.has-sub{position:relative}.nav>ul li.has-sub>a{display:flex;align-items:center;gap:6px}.nav>ul li.has-sub>a::after{content:"";width:5px;height:5px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);flex:none;margin-top:-3px;opacity:.75}.nav>ul .submenu{list-style:none;display:block;gap:0;margin:0;padding:0;position:absolute;top:100%;left:0;min-width:250px;background:var(--concreto-2);border-top:2px solid var(--senal);box-shadow:0 20px 34px rgba(0,0,0,.4);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .16s,transform .16s,visibility .16s;z-index:95}.nav>ul li.has-sub:hover>.submenu,.nav>ul li.has-sub:focus-within>.submenu{opacity:1;visibility:visible;transform:none}.nav>ul .submenu a{display:block;padding:11px 22px;font-size:12.5px;color:#C9CFD8;white-space:nowrap;background:transparent;border-left:2px solid transparent;transition:color .16s,background .16s,border-color .16s}.nav>ul .submenu li:nth-child(odd) a{background:rgba(255,255,255,.045)}.nav>ul .submenu a:hover{color:var(--senal);background:rgba(245,197,24,.10);border-left-color:var(--senal)}#menu .has-sub .sub-row{display:flex;align-items:stretch}#menu .has-sub .sub-row a{flex:1}#menu .sub-toggle{width:52px;flex:none;background:none;border:0;position:relative;cursor:pointer;-webkit-tap-highlight-color:transparent}#menu .sub-toggle::before{content:"";position:absolute;left:50%;top:50%;width:8px;height:8px;border-right:1.5px solid #D3D8DE;border-bottom:1.5px solid #D3D8DE;transform:translate(-65%,-65%) rotate(45deg);transition:transform .2s}#menu .has-sub.open .sub-toggle::before{transform:translate(-50%,-35%) rotate(225deg)}#menu .submenu{list-style:none;margin:0;padding:0;max-height:0;overflow:hidden;transition:max-height .25s ease;background:rgba(9,14,20,.34)}#menu .has-sub.open .submenu{max-height:640px}#menu .submenu a{display:block;position:relative;padding:12px var(--gut) 12px calc(var(--gut) + 24px);font-size:13.5px;color:#C3CBD6;background:transparent;border-bottom:1px solid rgba(255,255,255,.06)}
#menu .submenu li:last-child a{border-bottom:0}
#menu .submenu a::before{content:"";position:absolute;left:var(--gut);top:50%;width:7px;height:1px;background:rgba(245,197,24,.5);transform:translateY(-50%);transition:width .18s,background .18s}
#menu .submenu a:hover,#menu .submenu a:active{color:var(--senal)}
#menu .submenu a:hover::before,#menu .submenu a:active::before{width:14px;background:var(--senal)}#menu .submenu li:nth-child(odd) a{background:rgba(255,255,255,.035)}@media(max-width:1000px){.nav>ul .submenu{display:none}}.carousel{position:relative}.car-track{display:flex!important;gap:16px;overflow-x:auto;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;background:none!important;padding-bottom:4px;scrollbar-width:none}.car-track::-webkit-scrollbar{display:none}.car-track.divs>.div{flex:0 0 clamp(255px,72vw,360px);scroll-snap-align:start;min-height:clamp(280px,44vw,400px)}.car-track.obras>.obra{flex:0 0 clamp(230px,62vw,290px);scroll-snap-align:start}.car-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:rgba(27,36,48,.72);cursor:pointer;z-index:5;transition:.18s;display:flex;align-items:center;justify-content:center}.cal .car-nav{background:rgba(27,36,48,.86)}.car-nav:hover{background:var(--senal);border-color:var(--senal)}.car-nav::before{content:"";width:9px;height:9px;border-right:2px solid #fff;border-bottom:2px solid #fff}.car-nav:hover::before{border-color:var(--concreto)}.car-nav.prev{left:-6px}.car-nav.prev::before{transform:rotate(135deg);margin-left:3px}.car-nav.next{right:-6px}.car-nav.next::before{transform:rotate(-45deg);margin-right:3px}@media(max-width:640px){.car-nav{width:36px;height:36px}.car-nav.prev{left:2px}.car-nav.next{right:2px}}.dark .tab-btn{color:#C9CFD8;border-color:rgba(255,255,255,.18)}.dark .tab-btn:hover{color:var(--senal);border-color:var(--senal)}.dark .tab-btn.on{color:var(--concreto)}.row-chips{align-items:start}.row-chips[hidden]{display:none!important}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.03);padding:8px 14px;font-size:12.5px;line-height:1.55;color:#C9CFD8;max-width:380px}.chip[hidden]{display:none!important}.cal .chip{border-color:var(--linea);background:var(--blanco);color:var(--acero)}.chip-photo{flex:1 1 420px;padding:0;overflow:hidden;display:flex;flex-direction:column;max-width:560px;width:100%;transition:transform .2s,border-color .2s}.chip-photo:hover{border-color:var(--senal);transform:translateY(-2px)}.chip-photo .ph{aspect-ratio:16/10;overflow:hidden;background:#0f151d}.chip-photo .ph img{width:100%;height:100%;object-fit:cover;display:block}.chip-photo figcaption{padding:14px 16px 16px;font-size:13px;line-height:1.5;color:#C9CFD8}.cal .chip-photo figcaption{color:var(--acero)}
.frente .extra{display:grid;grid-template-columns:1fr 1fr;gap:2px}.frente .extra img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.tabla .row .fotos{grid-column:2/-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),240px));justify-content:start;gap:8px;margin-top:12px}.tabla .row .fotos img{width:100%;min-width:0;max-width:100%;aspect-ratio:4/3;height:auto;object-fit:cover;display:block;border:1px solid var(--linea);background:#0f151d}.dark .tabla .row .fotos img{border-color:rgba(255,255,255,.16)}@media(max-width:700px){.tabla .row .fotos{grid-column:1/-1}}
@media(max-width:640px){.tabla .row .fotos{grid-template-columns:repeat(auto-fit,minmax(min(140px,100%),172px));gap:6px}}

/* ---- páginas interiores ---- */
.phero{background:var(--concreto);color:var(--blanco);padding:calc(74px + clamp(44px,6vw,80px)) 0 clamp(38px,5vw,64px)}
.phero .kicker{color:var(--senal)}
.phero h1{font-size:clamp(30px,5.2vw,56px);color:#fff;letter-spacing:-.02em;line-height:1.05}
.phero p{margin:20px 0 0;max-width:760px;color:#C9CFD8;font-size:clamp(14.5px,1.6vw,17px);line-height:1.7}
.tipos{display:flex;flex-wrap:wrap;gap:9px;margin-top:28px}
.tipos a{border:1px solid var(--linea);padding:9px 15px;font-size:12.5px;text-decoration:none;color:var(--acero);transition:.18s;background:var(--blanco)}
.tipos a:hover{border-color:var(--senal);color:var(--concreto)}
.dark .tipos a,.phero .tipos a{border-color:rgba(255,255,255,.18);color:#C9CFD8;background:transparent}
.dark .tipos a:hover,.phero .tipos a:hover{border-color:var(--senal);background:var(--senal);color:var(--concreto)}
.mas{display:inline-block;margin-top:10px;font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#B9932A;text-decoration:none}
.mas:hover{color:var(--concreto)}
.dark .mas{color:var(--senal)}
.cta-band{background:var(--senal);padding:clamp(36px,5vw,58px) 0}
.cta-band .wrap{display:flex;flex-wrap:wrap;gap:20px;align-items:center;justify-content:space-between}
.cta-band h3{font-size:clamp(20px,2.8vw,30px);color:var(--concreto);max-width:640px}
.cta-band .btn.dark{background:var(--concreto);border-color:var(--concreto);color:var(--senal)}
.cta-band .btn.dark:hover{background:transparent;color:var(--concreto)}
.nav li.on>a,#menu li.on>.sub-row>a{color:var(--senal)}
.mini{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:clamp(14px,2vw,26px);margin-top:40px}
.mini div{border-top:2px solid var(--senal);padding-top:14px}
.div .t .nota{display:block;margin-top:10px;font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--senal);line-height:1.5}
.mini b{display:block;font-size:clamp(26px,3.4vw,38px);line-height:1}
.mini span{display:block;margin-top:6px;font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--acero)}
.dark .mini span{color:#8B95A2}

/* Frentes recientes · tarjetas estilo brochure (kicker + título bicolor + cifras + fotos) */
.proyectos{margin-top:48px;display:flex;flex-direction:column;gap:2px;background:rgba(255,255,255,.14)}
.proy{background:var(--concreto-2);padding:clamp(26px,4vw,40px) clamp(22px,4vw,38px) clamp(32px,4vw,44px)}
.proy .loc{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#8B95A2;margin:0 0 8px}
.proy h3{font-size:clamp(22px,3vw,32px);color:#fff}
.proy h3 .t2{color:var(--senal)}
.proy .desc{margin-top:16px;font-size:14.5px;line-height:1.7;color:#C9CFD8;max-width:64ch}
.proy-stats{margin-top:26px;display:grid;grid-template-columns:repeat(3,1fr);gap:2px;max-width:640px}
.proy-stats div{background:var(--senal);color:var(--concreto);padding:16px 16px 18px}
.proy-stats b{display:block;font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:clamp(15px,1.9vw,22px);line-height:1.15;letter-spacing:-.02em;white-space:nowrap}
.proy-stats span{display:block;font-family:'IBM Plex Mono',monospace;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;margin-top:7px;color:#4A4322}
.proy-fotos{margin-top:26px;display:grid;grid-template-columns:1.3fr 1fr;gap:6px}
.proy-fotos .fp-main{aspect-ratio:3/4;overflow:hidden}
.proy-fotos .fp-main img{width:100%;height:100%;object-fit:cover;display:block}
/* La columna lateral lleva su propia relación de aspecto: 15/26 = (3/4)/1.3.
   Así su altura sale exactamente igual a la de .fp-main sin depender de que
   el navegador estire la fila, que es lo que producía los desajustes. */
.proy-fotos .fp-side{display:grid;grid-template-rows:1fr 1fr;gap:6px;aspect-ratio:15/26;overflow:hidden;min-height:0}
.proy-fotos .fp-side.one{grid-template-rows:1fr}
.proy-fotos .fp-side img{width:100%;height:100%;object-fit:cover;display:block;min-height:0}
@media(max-width:820px){.proy-stats{grid-template-columns:1fr 1fr;max-width:none}.proy-stats div:last-child{grid-column:1/-1}}
@media(max-width:640px){.proy-fotos{grid-template-columns:1fr}.proy-fotos .fp-main{aspect-ratio:4/3}.proy-fotos .fp-side{aspect-ratio:auto;grid-template-rows:1fr;grid-template-columns:1fr 1fr;height:auto}.proy-fotos .fp-side.one{grid-template-columns:1fr}.proy-fotos .fp-side img{aspect-ratio:4/3;height:auto}}

/* Currículum de experiencia · descarga de PDF */
.cv-dl{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--linea)}
.cv-card{display:flex;flex-direction:column;gap:14px;background:var(--blanco);padding:28px 26px 26px;text-decoration:none;color:inherit;border-top:3px solid var(--senal)}
.cv-card:hover{background:var(--cal)}
.cv-card .t{font-size:18px;font-weight:600;color:var(--concreto)}
.cv-card .d{font-size:13.5px;color:var(--acero);line-height:1.6}
.cv-card .btn{margin-top:8px;align-self:flex-start;pointer-events:none}
@media(max-width:700px){.cv-dl{grid-template-columns:1fr}}

/* Cifras grandes: se evita IBM Plex Mono (su 0 lleva un punto en medio) */
.cifras b,.flota b,.proy-stats b{font-family:'Poppins','Poppins Respaldo',system-ui,sans-serif;font-weight:800;letter-spacing:-.02em}

/* Divisiones (home): más contraste sobre fotos claras para que el texto no se pierda.
   El degradado original ya estaba casi transparente a media altura, donde cae el
   antetítulo, así que se sube la opacidad en la franja media. */
.div::after{background:linear-gradient(to top,rgba(15,21,29,.96) 0%,rgba(15,21,29,.90) 30%,rgba(15,21,29,.64) 55%,rgba(15,21,29,.22) 78%,rgba(15,21,29,0) 100%)}
.div .t p,.div .t h3,.div .t i,.div .t em{text-shadow:0 1px 6px rgba(0,0,0,.8)}

/* Cifras centradas: banda amarilla y bloque .mini.
   El letter-spacing de las etiquetas mono añade un hueco tras el último
   carácter; se compensa para que el número quede al centro óptico. */
.cifras div{text-align:center}
.cifras b{text-align:center}
.cifras span{margin-right:-.17em}
.mini div{text-align:center;border-top-width:2px}
.mini b,.mini span{text-align:center}
.mini span{margin-right:-.14em}

/* Fotos de obra: ninguna imagen puede desbordar su contenedor.
   min-width:0 evita que el tamaño intrínseco del archivo fuerce el ancho. */
img{max-width:100%;height:auto}
.tabla,.tabla .row,.chips,.row-chips{min-width:0;max-width:100%}
.tabla .row>*{min-width:0}
.chip-photo{min-width:0;max-width:min(560px,100%)}
.chip-photo .ph img{width:100%;height:100%;min-width:0;object-fit:cover}
@media(max-width:700px){.chip-photo{flex:1 1 100%}}

/* Frentes de trabajo: la foto ocupa siempre todo el ancho de su tarjeta,
   sea cual sea la proporcion del archivo. */
.filo.trabajo .ph{width:100%;display:block;overflow:hidden}
.filo.trabajo .ph img{width:100%;height:100%;min-width:100%;object-fit:cover;display:block}

/* Trayectoria: un recuadro por categoria con el desglose de proyectos dentro */
.chips .lista{flex:1 1 100%;max-width:none;margin:0;padding:4px 20px;list-style:none}
.chips .lista li{position:relative;padding:10px 0 10px 20px;font-size:13.5px;line-height:1.6;
  border-bottom:1px solid rgba(255,255,255,.10)}
.chips .lista li:last-child{border-bottom:0}
.chips .lista li::before{content:"";position:absolute;left:0;top:.95em;width:8px;height:1px;background:var(--senal)}
.cal .chips .lista li{border-bottom-color:var(--linea)}
.cal .chips .lista li::before{background:#B9932A}
@media(max-width:560px){.chips .lista{padding:2px 16px}.chips .lista li{padding-left:16px}}

/* Trayectoria · ajustes finales
   1) la foto ocupa el mismo ancho que el recuadro de texto
   2) el guion se centra con la primera linea del renglon */
.chips .chip-photo{flex:1 1 100%;max-width:none;width:100%;margin:0}
.chips .chip-photo .ph{aspect-ratio:16/10}

.chips .lista li{display:flex;align-items:flex-start;gap:14px;padding-left:0}
.chips .lista li::before{position:static;flex:none;width:11px;height:1px;
  margin-top:calc(1.6em / 2);margin-right:14px;background:var(--senal)}
@media(max-width:560px){.chips .lista li{gap:11px}.chips .lista li::before{margin-right:11px}}

/* Tarjetas de obra: el enlace pasa a ser un pie de tarjeta alineado
   con el resto del contenido, en vez de un texto suelto al margen. */
.obra .mas{margin:0;padding:14px 18px;border-top:1px solid var(--linea);
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  font-family:'IBM Plex Mono',monospace;font-size:10.5px;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;text-decoration:none;
  color:var(--concreto);background:var(--blanco);
  transition:background .18s ease,color .18s ease}
.obra .mas span{display:block}
.obra .mas::after{content:"";flex:none;width:16px;height:6px;
  border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
  transform:rotate(-45deg) translateX(-2px);
  width:7px;height:7px;transition:transform .18s ease}
.obra .mas:hover,.obra .mas:focus-visible{background:var(--senal);color:var(--concreto)}
.obra .mas:hover::after{transform:rotate(-45deg) translate(1px,1px)}
.obra:hover .mas{background:var(--senal)}

/* Boton flotante de WhatsApp · abre la app nativa en movil y Web en escritorio */
.wa{position:fixed;right:clamp(14px,3vw,26px);z-index:70;
  bottom:calc(clamp(14px,3vw,26px) + env(safe-area-inset-bottom,0px));
  display:flex;align-items:center;gap:0;overflow:hidden;
  height:56px;width:56px;padding:0 16px;border-radius:28px;
  background:#25D366;color:#fff;text-decoration:none;
  box-shadow:0 6px 20px rgba(0,0,0,.28);
  transition:width .26s ease,gap .26s ease,box-shadow .2s ease}
.wa svg{flex:none;width:28px;height:28px;fill:currentColor;margin-left:-4px}
.wa-t{font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;
  opacity:0;transition:opacity .2s ease}
.wa:hover,.wa:focus-visible{width:176px;gap:12px;box-shadow:0 8px 26px rgba(0,0,0,.36)}
.wa:hover .wa-t,.wa:focus-visible .wa-t{opacity:1}
.wa:focus-visible{outline:3px solid var(--senal);outline-offset:3px}
@media(hover:none){.wa{width:56px}.wa-t{display:none}}
@media(prefers-reduced-motion:reduce){.wa{transition:none}.wa-t{transition:none}}
@media print{.wa{display:none}}

/* Empresas colaboradoras · muro de logos sobre fondo oscuro */
.logos-clientes{grid-template-columns:repeat(3,1fr);margin-top:30px;
  border-top-color:rgba(255,255,255,.14);border-left-color:rgba(255,255,255,.14)}
.logos-clientes figure{background:transparent;aspect-ratio:8/5;padding:18px;
  border-right-color:rgba(255,255,255,.14);border-bottom-color:rgba(255,255,255,.14)}
.logos-clientes img{max-height:66%;max-width:80%;opacity:.78;transition:opacity .22s}
.logos-clientes figure:hover img{opacity:1}
@media(max-width:760px){.logos-clientes{grid-template-columns:repeat(2,1fr)}
  .logos-clientes figure{padding:14px}}

/* Referencias comerciales */
.refs{margin-top:32px;border-top:2px solid var(--senal)}
.refs .refs-h,.refs .row{display:grid;grid-template-columns:1.05fr .85fr 1.35fr;gap:26px}
.refs .refs-h{padding:12px 0;border-bottom:1px solid rgba(255,255,255,.24);
  font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--senal)}
.refs .row{padding:16px 0;border-bottom:1px solid rgba(255,255,255,.14);align-items:start}
.refs .row b{font-size:14px;font-weight:600;color:#fff}
.refs .row span{font-size:13.5px;color:#C9CFD8;line-height:1.6}
.refs .row span.ct{color:#8B95A2}
@media(max-width:760px){.refs .refs-h{display:none}
  .refs .row{grid-template-columns:1fr;gap:5px;padding:18px 0}
  .refs .row span.ct{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.05em}}

/* Botones sobre fondo claro: al pasar el cursor el fondo se vuelve
   transparente, y el amarillo de señal sobre blanco no se lee. Se deja
   texto oscuro por defecto y se conserva el amarillo solo donde el
   fondo es oscuro (secciones .dark, hero y encabezado). */
.btn:hover{background:transparent;color:var(--concreto)}
.dark .btn:hover,.hero .btn:hover,header .btn:hover{color:var(--senal)}
.btn.ghost:hover{color:var(--concreto)}

/* Submenú de escritorio: se quita el rayado cebra (se leía como recuadros
   sueltos), el panel pasa a vidrio esmerilado y al recorrer la lista los
   renglones que no están bajo el cursor se atenúan, de modo que solo
   destaque el que se está señalando. */
.nav>ul .submenu{background:rgba(27,36,48,.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:2px solid var(--senal);box-shadow:0 24px 40px rgba(0,0,0,.5);padding:6px 0}
.nav>ul .submenu li:nth-child(odd) a{background:transparent}
.nav>ul .submenu a{transition:color .18s,background .18s,border-color .18s,opacity .18s,transform .18s}
.nav>ul .submenu:hover a{opacity:.38}
.nav>ul .submenu a:hover{opacity:1;color:var(--senal);background:rgba(245,197,24,.14);border-left-color:var(--senal);transform:translateX(3px)}
.nav>ul .submenu a:focus-visible{opacity:1}

/* Menú móvil: mismo criterio, sin rayado. */
#menu .submenu li:nth-child(odd) a{background:transparent}

@media(prefers-reduced-motion:reduce){
  .nav>ul .submenu:hover a{opacity:1}
  .nav>ul .submenu a:hover{transform:none}
}

/* Muro de logos: las columnas 1fr no pueden encogerse por debajo del ancho
   intrínseco de su imagen (min-width:auto), y el logo de Ecko Terra mide
   1228 px, así que ensanchaba su columna y empujaba la rejilla fuera del
   contenedor por la derecha. minmax(0,1fr) + min-width:0 lo corrige. */
.logos{grid-template-columns:repeat(5,minmax(0,1fr))}
.logos figure{min-width:0;padding:clamp(12px,1.3vw,18px)}
.logos img{min-width:0}
.logos-clientes{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:760px){
  .logos{grid-template-columns:repeat(2,minmax(0,1fr))}
  .logos-clientes{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ---- Logo A|CP en 3D dentro del recuadro de contacto ---- */
.form .intro{display:flex;flex-direction:column}
.acp3d{--acp-ancho:300px;--acp-canto:1.5px;--acp-vuelta:14s;flex:1;display:flex;align-items:center;justify-content:center;perspective:1100px;padding:34px 0 6px;min-height:0}
.acp3d__obj{position:relative;width:var(--acp-ancho);aspect-ratio:495/348;transform-style:preserve-3d;animation:acp-giro var(--acp-vuelta) linear infinite;will-change:transform}
.acp3d__obj i{position:absolute;inset:0;background:url("/img/alianza-a-cp-cimentaciones-paragon.svg?v=207") center/contain no-repeat;transform:translateZ(calc(var(--n) * var(--acp-canto) * -1));filter:brightness(var(--b))}
@keyframes acp-giro{from{transform:rotateY(0deg)}to{transform:rotateY(360deg)}}
.acp3d:hover .acp3d__obj{animation-play-state:paused}
@media(max-width:860px){.acp3d{--acp-ancho:230px;padding:26px 0 4px}}
@media(prefers-reduced-motion:reduce){.acp3d__obj{animation:none;transform:rotateY(-22deg)}}

/* ================= Frentes de trabajo — amarillo transparente que entra deslizando ========= */
.filo.trabajo{background:transparent;gap:14px}
.filo.trabajo article{position:relative;overflow:hidden;background:transparent;border:1px solid rgba(185,147,42,.28);transition:border-color .3s}
.filo.trabajo article::after{content:"";position:absolute;inset:0;z-index:0;background:rgba(245,197,24,.19);transform:scaleX(0);transform-origin:left center;transition:transform .85s cubic-bezier(.22,.61,.36,1) var(--d,0ms),background .3s}
.filo.trabajo article:nth-child(even)::after{background:rgba(245,197,24,.10)}
.filo.trabajo article.vis::after{transform:scaleX(1)}
.filo.trabajo article:hover{border-color:rgba(185,147,42,.55)}
.filo.trabajo article:hover::after{background:rgba(245,197,24,.28)}
.filo.trabajo .ph,.filo.trabajo .tx{position:relative;z-index:1}
.filo.trabajo .ph{background:transparent}

/* ================= 16 especialidades — índice por disciplina ================= */
.serv{margin-top:44px}
.serv-cap{display:flex;align-items:baseline;gap:14px;margin:0 0 6px;padding-bottom:14px;border-bottom:2px solid var(--concreto)}
.serv-cap b{font-family:'IBM Plex Mono',monospace;font-size:clamp(30px,4vw,44px);font-weight:600;line-height:1;letter-spacing:-.04em;color:var(--concreto)}
.serv-cap span{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--acero)}
.serv-grupos{column-count:2;column-gap:clamp(30px,5vw,72px);column-fill:balance}
.serv-g{display:inline-block;width:100%;break-inside:avoid;-webkit-column-break-inside:avoid;page-break-inside:avoid;vertical-align:top}
.serv-g{padding:30px 0 4px}
.serv-g h3{display:flex;align-items:center;gap:12px;margin:0 0 6px;font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#B9932A}
.serv-g h3::after{content:"";flex:1;height:1px;background:var(--linea)}
.serv-g ol{list-style:none;margin:0;padding:0;display:block;background:none;grid-template-columns:none;gap:0}
.serv-g li{display:block;padding:13px 0 13px 18px;background:none;border-bottom:1px solid var(--linea);font-size:14.5px;line-height:1.5;position:relative;overflow:hidden}
.serv-g li::before,.serv-g li::after{content:none}
.serv-g li span{display:block;color:var(--concreto)}
.serv-g li:hover span{color:#000}
@media(max-width:820px){.serv-grupos{column-count:1}.serv-g{padding:26px 0 2px}.serv-g li{font-size:14px}}

/* ================= Táctil: no existe el hover ================= */
@media (hover:none){
  /* --- espejo táctil de todos los efectos de hover del escritorio --- */
  /* lo que en escritorio se revela al pasar el cursor, en táctil se muestra siempre */
  .logos-clientes img{opacity:1}
  .obra .mas{background:var(--senal);color:var(--concreto)}

  /* lo que responde al cursor, aquí responde al dedo */
  .serv-g li,.filo.trabajo article,.chip-photo,.cv-card,.obra,.div,.frente,.logos figure{-webkit-tap-highlight-color:transparent}
  .serv-g li:active{background:rgba(27,36,48,.05)}
  .filo.trabajo article:active::after{background:rgba(245,197,24,.30)}
  .filo.trabajo article:active{border-color:rgba(185,147,42,.55)}
  .obra:active .ph img,.div:active img,.frente:active .ph img,.chip-photo:active img{transform:scale(1.05)}
  .chip-photo:active{border-color:var(--senal);transform:translateY(-2px)}
  .serv-g li:active span{color:#000}
  .obra--ficha:active{border-color:var(--senal);transform:translateY(-3px);box-shadow:0 14px 30px rgba(27,36,48,.16)}
  .cv-card:active{background:var(--cal)}
  .acp3d:active .acp3d__obj{animation-play-state:paused}

  /* botones y enlaces: realimentación inmediata al tocar */
  .btn:active,.f-send button:active,.tab-btn:active,.tipos a:active,.mas:active{background:var(--senal);border-color:var(--senal);color:var(--concreto)}
  .btn.ghost:active{background:var(--senal);color:var(--concreto)}
  .car-nav:active{background:var(--senal);border-color:var(--senal)}
  .nav ul a:active,.fgrid a:active{color:var(--senal)}
  .mas:active::after{transform:rotate(-45deg) translate(1px,1px)}
}
/* el logo 3D con menos capas en pantalla chica: mismo grosor, la mitad de trabajo para la GPU */
@media (max-width:640px){
  .acp3d{--acp-canto:2.4px}
  .acp3d__obj i:nth-child(n+13){display:none}
  .acp3d__obj{backface-visibility:hidden}
}
/* sin movimiento: todo se muestra ya en su estado final */
@media (prefers-reduced-motion:reduce){
  .filo.trabajo article::after{transform:scaleX(1);transition:none}
}

/* ====== Banner de sección con fondo fotográfico rotatorio (empresa y obras) ====== */
.phero{position:relative;overflow:hidden;isolation:isolate}
.phero:has(.bg){display:flex;align-items:flex-end;min-height:clamp(280px,34vh,340px);padding-bottom:clamp(46px,5.5vw,74px)}
.phero:has(.bg) > .wrap{width:100%}
.phero .bg{position:absolute;inset:0;z-index:0}
.phero .bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .85s ease;animation:slowzoom 26s ease-in-out infinite alternate}
.phero .bg img.on{opacity:.5}
.phero .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(27,36,48,.97) 6%,rgba(27,36,48,.72) 46%,rgba(27,36,48,.42) 100%)}
.phero > .wrap{position:relative;z-index:1}
@media (prefers-reduced-motion:reduce){.phero .bg img{animation:none;transition:none}}

/* ====== Submenú móvil: sin guiones, igual que la versión de escritorio ====== */
#menu .submenu a{padding-left:var(--gut);border-left:2px solid transparent;transition:color .16s,background .16s,border-color .16s}
#menu .submenu a::before{content:none}
#menu .submenu li:nth-child(odd) a{background:rgba(255,255,255,.045)}
#menu .submenu a:hover,#menu .submenu a:active{color:var(--senal);background:rgba(245,197,24,.10);border-left-color:var(--senal)}

/* ====== Submenú móvil: nivel claramente anidado, más claro que el menú principal ====== */
#menu .submenu{background:#2F3B4A;box-shadow:inset 3px 0 0 var(--senal),inset 0 1px 0 rgba(0,0,0,.35),inset 0 -1px 0 rgba(0,0,0,.35)}
#menu .submenu li:nth-child(odd) a{background:transparent}
#menu .submenu a{padding:13px var(--gut) 13px calc(var(--gut) + 18px);font-size:14px;color:#E1E7EE;border-bottom:1px solid rgba(255,255,255,.09);border-left:0}
#menu .submenu li:last-child a{border-bottom:0}
#menu .submenu a:hover,#menu .submenu a:active{color:var(--concreto);background:var(--senal);border-left:0}
/* la categoría abierta se marca para que se vea de dónde cuelga el submenú */
#menu .has-sub.open > .sub-row{background:rgba(0,0,0,.28)}
#menu .has-sub.open > .sub-row > a{color:var(--senal)}

/* ====== Menú móvil: jerarquía clara entre categoría y subpágina ====== */
/* nivel 1: más grande, en negrita y en blanco puro */
#menu > ul > li > a,
#menu > ul > li > .sub-row > a{font-size:16.5px;font-weight:600;color:#fff;letter-spacing:-.01em;padding-top:17px;padding-bottom:17px}
#menu > ul > li{border-bottom:1px solid rgba(255,255,255,.10)}
#menu > ul > li:last-child{border-bottom:0}

/* nivel 2: panel claramente más claro, escalonado y con riel dorado */
#menu .submenu{background:#3A4859;box-shadow:inset 4px 0 0 var(--senal),inset 0 2px 6px rgba(0,0,0,.4)}
#menu .submenu li a,
#menu .submenu li:nth-child(odd) a{background:transparent}
#menu .submenu a{padding:11px var(--gut) 11px calc(var(--gut) + 30px);font-size:13.5px;font-weight:400;color:#CBD5E1;border-bottom:1px solid rgba(255,255,255,.10);border-left:0}
#menu .submenu li:last-child a{border-bottom:0}
#menu .submenu a:hover,#menu .submenu a:active{color:var(--concreto);background:var(--senal)}

/* ====== Muro de logotipos: retícula continua y escala óptica pareja ====== */
/* La retícula usa gap de 1px sobre el color de línea: así los filetes nunca
   se cortan ni se desalinean, pase lo que pase con el contenido de cada celda. */
.logos{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--linea);border:1px solid var(--linea);margin-top:46px}
.logos figure{margin:0;border:0;aspect-ratio:7/5;display:grid;place-items:center;padding:10px;background:var(--blanco);overflow:hidden}
/* Cada logo trae su propio --h calculado a partir de su proporción, para que
   todos pesen ópticamente lo mismo: los sellos cuadrados no se ven gigantes
   y los logotipos alargados no quedan en miniatura. */
.logos img{width:auto;height:auto;max-height:var(--h,34%);max-width:88%;object-fit:contain;content-visibility:visible}
.cal .logos figure,section.cal .logos figure{background:var(--blanco)}
.dark .logos{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.16)}
.dark .logos figure{background:var(--concreto-2)}
@media(max-width:980px){.logos{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){.logos{grid-template-columns:repeat(2,1fr)}}

/* ====== Aparición de las especialidades: sondeo y estratos ======
   Sin amarillo. La metáfora es la del oficio: primero se traza el nivel
   (el filete del encabezado corre de izquierda a derecha), luego baja la
   sonda por el costado (el riel vertical crece de arriba hacia abajo) y
   cada especialidad emerge desde debajo de su propia línea, como un
   testigo de suelo que sale del barreno, una capa tras otra. */
.serv-g{position:relative}
.serv-g h3::after{transform:scaleX(0);transform-origin:left center;transition:transform .55s cubic-bezier(.22,.61,.36,1)}
.serv-g::before{content:"";position:absolute;left:0;top:40px;bottom:8px;width:1px;background:rgba(27,36,48,.22);transform:scaleY(0);transform-origin:top center;transition:transform 1s cubic-bezier(.33,.1,.29,1) .22s}
.serv-g li > span{display:block;transform:translateY(115%);opacity:0;transition:transform .6s cubic-bezier(.22,.61,.36,1),opacity .4s ease;transition-delay:var(--d,0ms)}
.serv-g.vis h3::after{transform:scaleX(1)}
.serv-g.vis::before{transform:scaleY(1)}
.serv-g.vis li > span{transform:none;opacity:1}
.serv-g li:nth-child(1){--d:340ms}
.serv-g li:nth-child(2){--d:430ms}
.serv-g li:nth-child(3){--d:520ms}
.serv-g li:nth-child(4){--d:610ms}
.serv-g li:nth-child(5){--d:700ms}
.serv-g li:nth-child(6){--d:790ms}
/* al pasar el cursor la sonda marca ese renglón */
.serv-g li{transition:background .2s}
.serv-g li:hover{background:rgba(27,36,48,.035)}
@media (prefers-reduced-motion:reduce){
  .serv-g h3::after,.serv-g::before{transform:none;transition:none}
  .serv-g li > span{transform:none;opacity:1;transition:none}
}

/* ====== Cursor: la mira de la marca (solo en equipos con puntero fino) ====== */
@media (hover:hover) and (pointer:fine){
  html,body{
    cursor:auto;
    cursor:auto;
  }
  /* sobre lo que se puede activar, la mira se enciende con el punto central */
  a,button,summary,label,.tab-btn,.car-nav,.sub-toggle,.burger,.obra,.div,.frente,.chip-photo,.cv-card,[role="button"]{
    cursor:pointer;
    cursor:pointer;
  }
  /* en campos de escritura manda la usabilidad: cursor de texto normal */
  input,textarea,select,[contenteditable]{cursor:auto}
  input[type=submit],input[type=button],select{cursor:pointer}
}

/* ====== Del carrusel de obras a su ficha en la tabla ====== */
.obra{position:relative}
.obra-go{
  position:absolute;inset:0;z-index:4;text-decoration:none;
  font-size:0;line-height:0;color:transparent;
}
.obra-go:focus-visible{outline:3px solid var(--senal);outline-offset:-3px}
.obra--ficha{transition:border-color .2s,transform .2s,box-shadow .2s}
.obra--ficha:hover{
  border-color:var(--senal);transform:translateY(-3px);
  box-shadow:0 14px 30px rgba(27,36,48,.16);
}
#obras-track .obra--ficha .txt::after{
  content:"Ver ficha de obra";
  display:block;margin-top:12px;
  font-family:'IBM Plex Mono',monospace;font-size:9.5px;letter-spacing:.16em;
  text-transform:uppercase;color:#B9932A;
  opacity:0;transform:translateY(4px);transition:opacity .2s,transform .2s;
}
#obras-track .obra--ficha:hover .txt::after,
#obras-track .obra--ficha:focus-within .txt::after{opacity:1;transform:none}
@media (hover:none){
  #obras-track .obra--ficha .txt::after{opacity:1;transform:none}
}
/* al llegar, la ficha se marca unos segundos */
.tabla .row.ficha-destacada{position:relative}
.tabla .row.ficha-destacada::before{
  content:"";position:absolute;inset:-8px -14px;pointer-events:none;
  border:2px solid var(--senal);background:rgba(245,197,24,.13);
  animation:fichaDestaca 2.8s ease forwards;
}
@keyframes fichaDestaca{0%,68%{opacity:1}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){
  .obra--ficha{transition:none}
  #obras-track .obra--ficha .txt::after{transition:none}
  .tabla .row.ficha-destacada::before{animation:none;opacity:1}
}

.obra .mas{position:relative;z-index:5}

/* ====== Aviso de marcas en el pie ====== */
.aviso-marcas{
  margin:44px 0 0;padding-top:22px;
  border-top:1px solid rgba(255,255,255,.1);
  font-size:12px;line-height:1.75;color:#7B8593;max-width:82ch;
}
.aviso-marcas+.fin{margin-top:18px;padding-top:0;border-top:0}

/* ====== Ajustes de pantalla chica para lo añadido ====== */
@media (max-width:640px){
  /* el marco de la ficha destacada no debe sobresalir del margen lateral */
  .tabla .row.ficha-destacada::before{inset:-6px -8px}
  /* leyenda de la tarjeta: en táctil está siempre visible, que no robe altura */
  #obras-track .obra--ficha .txt::after{margin-top:9px;font-size:9px}
  /* aviso legal del pie */
  .aviso-marcas{margin-top:34px;padding-top:18px;font-size:11.5px;line-height:1.7}
  /* especialidades: una columna, sangría menor */
  .serv-g li{padding-left:14px}
}

/* ====== Menú móvil: desplazamiento propio y bloqueo del fondo ====== */
/* Con dos submenús abiertos el menú supera la altura de la pantalla. Antes no
   tenía desplazamiento propio, así que el dedo arrastraba la página de atrás y
   los últimos renglones quedaban fuera de alcance. */
@media (max-width:1000px){
  #menu.on{
    max-height:calc(100vh - 74px);
    max-height:calc(100svh - 74px);
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
  }
  /* barra de desplazamiento discreta, sin robar ancho al texto */
  #menu.on{scrollbar-width:thin;scrollbar-color:rgba(245,197,24,.45) transparent}
  #menu.on::-webkit-scrollbar{width:3px}
  #menu.on::-webkit-scrollbar-thumb{background:rgba(245,197,24,.45);border-radius:3px}
  #menu.on::-webkit-scrollbar-track{background:transparent}
  /* margen final para que el último renglón no quede pegado al borde */
  #menu.on > ul{padding-bottom:calc(22px + env(safe-area-inset-bottom))}
}
/* mientras el menú está abierto la página de atrás no se mueve */
body.menu-abierto{position:fixed;left:0;right:0;width:100%;overflow:hidden}
/* con el menú abierto la barra superior nunca queda transparente, aunque el
   navegador crea que estamos arriba del todo */
body.menu-abierto header{
  background:rgba(27,36,48,.96);
  backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(255,255,255,.12);
}
/* el botón flotante estorba por encima de la página congelada */
body.menu-abierto .wa{opacity:0;visibility:hidden;pointer-events:none}

/* ====== Filtros del portafolio ======
   Dos preguntas independientes, una debajo de otra: para quién se construyó y
   qué se construyó. Cada fila lleva su rótulo para que se lean como filtros que
   se combinan y no como una sola lista larga. */
.filtros{margin-top:26px}
.filtro-lab{margin:0;font-family:'IBM Plex Mono',monospace;font-size:10.5px;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:#B9932A}
.filtros .tabs{margin-top:11px}
.filtros .filtro-lab + .tabs{margin-bottom:26px}
.filtros .subtabs + .filtro-cuenta,
.filtros .tabs + .filtro-cuenta{margin-top:22px}
.filtro-cuenta{margin:22px 0 0;font-family:'IBM Plex Mono',monospace;font-size:11.5px;
  letter-spacing:.08em;color:var(--acero)}
.dark .filtro-lab{color:var(--senal)}
.dark .filtro-cuenta{color:#C9CFD8}

/* ====== Segunda fila de filtros ======
   Aparece bajo la división elegida y solo cuando esa división tiene tipologías
   que distinguir. Va más discreta que la fila principal para que se lea como
   dependiente de ella y no como otra lista de igual peso. */
.subtabs{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;padding-left:14px;
  border-left:2px solid var(--senal)}
.subtabs[hidden]{display:none}
.sub-btn{font-family:'IBM Plex Mono',monospace;font-size:10.5px;font-weight:600;
  letter-spacing:.09em;text-transform:uppercase;background:transparent;
  border:1px dashed var(--linea);color:var(--acero);padding:7px 13px;cursor:pointer;
  transition:.15s;white-space:nowrap}
.sub-btn[hidden]{display:none}
.sub-btn:hover{border-color:var(--senal);color:var(--concreto)}
.sub-btn.on{background:var(--concreto);border-color:var(--concreto);border-style:solid;color:var(--senal)}
.sub-btn:focus-visible{outline:3px solid var(--senal);outline-offset:2px}
@media (max-width:640px){ .sub-btn{white-space:normal;text-align:left} }

/* ====== Destinos de ancla ======
   La barra superior es fija y mide 74 px: sin este margen, cualquier salto a
   un #ancla del menú deja el título del destino escondido detrás de ella. */
[id]{scroll-margin-top:88px}

/* ====== Zonas táctiles del pie ======
   Los enlaces del pie medían 19 px de alto: por debajo del mínimo cómodo
   para el dedo. Se les da cuerpo sin alterar el ritmo visual del bloque. */
.fgrid a,.fin a{display:inline-block;padding-block:5px}
.fgrid p{line-height:1.75}
@media (max-width:640px){
  .fgrid a,.fin a{padding-block:7px}
  .fin{gap:10px 14px}
}

/* ====== Páginas legales (aviso de privacidad) ====== */
.legal-hero .nota{margin-top:20px}
.legal .wrap{max-width:820px}
.legal h2{
  font-size:clamp(19px,2.2vw,23px);margin:46px 0 14px;
  padding-top:26px;border-top:1px solid var(--linea);
}
.legal h2:first-of-type{margin-top:0;padding-top:0;border-top:0}
.legal p{font-size:15.5px;line-height:1.78;color:var(--concreto);margin:0 0 14px;max-width:74ch}
.legal p b{font-weight:600}
.legal a{display:inline-block;padding-block:3px;color:#B9932A;text-decoration:none;border-bottom:1px solid rgba(185,147,42,.4)}
.legal a:hover{color:var(--concreto);border-bottom-color:var(--concreto)}
.fin a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.22)}
.fin a:hover{color:var(--senal);border-bottom-color:var(--senal)}
@media (max-width:640px){
  .legal h2{margin:34px 0 12px;padding-top:20px}
  .legal p{font-size:14.5px}
}

/* =====================================================================
   1. BOTONES: la mira nunca se pierde
   Al pasar el cursor, el botón invierte sus colores. El claro se vuelve
   oscuro con perímetro amarillo; el oscuro se vuelve amarillo con
   perímetro oscuro. Antes el fondo pasaba a transparente y sobre el
   crema o sobre la banda amarilla la mira desaparecía.
   ===================================================================== */
.btn:hover,
.f-send button:hover{
  background:var(--concreto);
  border-color:var(--senal);
  color:var(--senal);
}
.btn.dark:hover{
  background:var(--senal);
  border-color:var(--concreto);
  color:var(--concreto);
}
.btn.ghost:hover{
  background:var(--concreto);
  border-color:var(--senal);
  color:var(--senal);
}
.hero .btn:hover,
header .btn:hover{background:var(--concreto);border-color:var(--senal);color:var(--senal)}
/* botón de "ver obra" dentro de las tarjetas */
.obra .mas:hover,.obra .mas:focus-visible,.obra:hover .mas{
  background:var(--concreto);border-color:var(--senal);color:var(--senal);
}
/* filtros del portafolio */
.tab-btn:hover{background:var(--concreto);border-color:var(--senal);color:var(--senal)}
.tab-btn.on:hover{background:var(--concreto);border-color:var(--senal);color:var(--senal)}
.cal .tab-btn:hover{background:var(--concreto)}
.dark .tab-btn:hover{background:var(--senal);border-color:var(--concreto);color:var(--concreto)}
/* flechas del carrusel: eran amarillas al pasar el cursor */
.car-nav:hover{background:var(--concreto);border-color:var(--senal)}
.car-nav:hover::before{border-color:var(--senal)}
/* chips de tipo de obra */
.dark .tipos a:hover,.phero .tipos a:hover{
  background:var(--concreto);border-color:var(--senal);color:var(--senal);
}
/* descarga del currículum: ahora es un botón real, no la tarjeta entera */
.cv-card .btn{pointer-events:auto}

/* =====================================================================
   2. MIRA OSCURA SOBRE LAS ZONAS AMARILLAS
   La mira amarilla desaparece sobre el amarillo de marca. En esas zonas
   se usa la misma mira dibujada en el azul tinta, con el centro igual
   de transparente.
   ===================================================================== */
@media (hover:hover) and (pointer:fine){
  .cta-band, .cta-band *,
  .cifras, .cifras *,
  .serv li, .serv li *,
  .filo.trabajo article, .filo.trabajo article *,
  .proy-stats div, .proy-stats div *{
    cursor:auto;
    cursor:auto;
  }
  /* elementos activables dentro de esas zonas, y botones amarillos sueltos */
  .cta-band a, .cta-band button,
  .cifras a, .cifras button,
  .serv li a, .filo.trabajo article a,
  .btn, .f-send button, .tab-btn.on, .obra .mas,
  .btn.dark:hover, .tab-btn.on:hover{
    cursor:pointer;
    cursor:pointer;
  }
  /* cuando un botón claro se oscurece al pasar el cursor, la mira
     vuelve a la versión amarilla para que contraste con el fondo */
  .btn:hover, .f-send button:hover, .tab-btn:hover, .obra .mas:hover,
  .car-nav:hover, .btn.ghost:hover{
    cursor:pointer;
    cursor:pointer;
  }
}

/* =====================================================================
   3. LAS 16 ESPECIALIDADES: BORDES DEFINIDOS
   Antes cada grupo se marcaba solo con un filete vertical tenue y los
   renglones con una línea inferior, así que los bloques no se leían como
   unidades. Ahora cada grupo es un recuadro cerrado con su encabezado.
   ===================================================================== */
.serv-grupos{column-gap:clamp(20px,3vw,36px)}
.serv-g{
  padding:0;
  margin:0 0 clamp(20px,3vw,32px);
  border:1px solid var(--linea);
  background:var(--blanco);
}
/* el filete vertical se sustituye por el marco */
.serv-g::before{display:none}

.serv-g h3{
  margin:0;
  padding:15px 20px;
  background:#F1EDE3;
  border-bottom:1px solid var(--linea);
  color:#8A6D18;
}
.serv-g h3::after{display:none}

.serv-g ol{padding:0}
.serv-g li{
  padding:14px 20px;
  padding-left:20px;
  border-bottom:1px solid var(--linea);
}
.serv-g li:last-child{border-bottom:0}
.serv-g li:hover{background:#FBF7EC}

@media (max-width:640px){
  .serv-g{margin-bottom:18px}
  .serv-g h3{padding:13px 16px}
  .serv-g li{padding:12px 16px}
}

/* interface-polish.css */
/* Improvements scoped to the requested sections. */
.foundation-banner{position:relative;isolation:isolate;overflow:hidden;padding-top:clamp(220px,30vw,420px)}
.foundation-banner-photo{position:absolute;top:0;left:0;width:100%;height:620px;object-fit:cover;object-position:center 45%;z-index:-2}
.foundation-banner::before{content:"";position:absolute;inset:0 0 auto;height:640px;z-index:-1;background:linear-gradient(180deg,rgba(27,36,48,.12),rgba(27,36,48,.2) 25%,var(--concreto) 96%)}
.foundation-banner .head{max-width:900px}.foundation-banner .lede{color:#e4e8ed}
/* Natural aspect ratios reveal the entire original photograph, without frames. */
#ecko .proy-fotos{align-items:start;gap:10px}
#ecko .proy-fotos .fp-main,#ecko .proy-fotos .fp-side{aspect-ratio:auto;height:auto;overflow:visible;background:transparent;padding:0;border:0}
#ecko .proy-fotos .fp-side{grid-template-rows:auto auto;align-items:start;gap:10px}
#ecko .proy-fotos img{width:100%;height:auto;object-fit:contain;display:block}
.soil-detail{margin-top:24px;border-top:1px solid #ffffff30;border-bottom:1px solid #ffffff30}
.soil-detail summary{cursor:pointer;min-height:58px;padding:16px 0;display:flex;gap:12px;align-items:center;justify-content:space-between;font-weight:600;font-size:14px;list-style:none}
.soil-detail summary::-webkit-details-marker{display:none}.soil-detail summary span{color:var(--senal);font-family:'IBM Plex Mono',monospace;font-size:12px}
.soil-content{padding:0 0 22px}.soil-content>p{font-size:14px;color:#d0d6df;max-width:65ch}
.soil-section{height:270px;position:relative;margin:38px 0 32px;border-top:2px solid var(--senal);border-bottom:1px dashed #ffffff40}
.ground-label{position:absolute;left:0;top:-28px;font-size:12px;color:var(--senal)}
.soil-layers{position:absolute;inset:0;display:grid;grid-template-rows:25% 35% 40%;overflow:hidden}
.soil-layers i:nth-child(1){background:repeating-linear-gradient(160deg,#7e6c512c 0 2px,#7e6c514a 2px 12px)}
.soil-layers i:nth-child(2){background:repeating-linear-gradient(20deg,#77695144 0 1px,#77695122 1px 9px)}
.soil-layers i:nth-child(3){background:repeating-linear-gradient(160deg,#4b56633b 0 2px,#4b56636b 2px 20px)}
.soil-pile{position:absolute;left:23%;top:0;width:30px;height:var(--depth);background:linear-gradient(90deg,#c8cfd7,#f1f2f5 50%,#818c98);border:1px solid white;transform-origin:top;box-shadow:0 0 24px #0003}
.soil-detail[open] .soil-pile{animation:descend 1.6s ease-out both}
.soil-depth{position:absolute;left:42%;top:calc(var(--depth) - 42px);color:var(--senal);font-size:26px;line-height:1.2}
.soil-depth small{display:block;font-size:11px;font-weight:400;color:#e1e6ed;margin-top:5px}
.soil-scale{position:absolute;bottom:-25px;right:0;font-size:11px;color:#b3becb}
.soil-content .soil-note{font-size:11px;color:#aab5c4;margin-top:38px}.soil-replay{border:1px solid #ffffff45;background:transparent;color:var(--senal);padding:10px 15px;cursor:pointer}
@keyframes descend{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.trajectory-route .tabla{position:relative;padding-left:30px;border-left:1px solid #ffffff35;margin-left:12px}
.trajectory-route .route-stop{display:block;position:relative;padding:0;border:0;border-bottom:1px solid #ffffff20;margin:0}
.trajectory-route .route-stop::before{content:"";position:absolute;width:11px;height:11px;border-radius:50%;left:-36px;top:30px;background:var(--concreto);border:2px solid var(--senal)}
.trajectory-route .route-stop[open]::before{background:var(--senal);box-shadow:0 0 0 5px #f5c5181a}
.route-stop summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:22px;padding:22px 0;font-size:clamp(18px,2.3vw,27px);font-weight:600;line-height:1.25}
.route-stop summary::-webkit-details-marker{display:none}.route-stop summary::after{content:'+';margin-left:auto;color:var(--senal);font-size:24px;font-weight:400}.route-stop[open] summary::after{content:'−'}
.route-stop .route-number{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--senal);flex:none}
.route-stop>.chips{padding:0 0 28px}.route-stop .chip.lista{flex:1 1 320px;max-width:none}.route-stop .chip-photo .ph{height:auto;aspect-ratio:auto}.route-stop .chip-photo img{height:auto;object-fit:contain}
@media(max-width:700px){.foundation-banner{padding-top:240px}.foundation-banner-photo{height:420px}.foundation-banner::before{height:450px}.foundation-banner .head .btn{margin-left:0}.soil-detail summary{align-items:flex-start;flex-direction:column;gap:6px}.soil-section{height:230px}.trajectory-route .tabla{padding-left:20px;margin-left:5px}.trajectory-route .route-stop::before{left:-26px}.route-stop summary{gap:12px}.route-stop .chip{max-width:100%}}
@media(prefers-reduced-motion:reduce){.soil-detail[open] .soil-pile{animation:none}}
/* The trajectory sits on the original light portfolio background. */
.trajectory-route .tabla{border-left-color:#b8b3a9;border-top:0}
.trajectory-route .route-stop{border-bottom-color:#d5d0c6}
.trajectory-route .route-stop::before{background:var(--cal);border-color:#a8850b}
.trajectory-route .route-stop[open]::before{background:var(--senal)}
.trajectory-route .route-number,.trajectory-route summary::after{color:#8a6c00}
/* Align photographic slides to the viewport, including fractional mobile widths. */
#destacados-track{gap:0;scroll-padding:0}
#destacados-track>.obra{scroll-snap-align:start;scroll-snap-stop:always}
#obras{padding-top:30px}
#obras>.wrap>.sub:first-child{margin-top:0!important}
.foundation-metrics{display:grid;grid-template-columns:minmax(110px,.65fr) minmax(0,2fr);gap:0;margin-top:28px;align-items:stretch;border:1px solid #ffffff25}
.pile-count{padding:24px 16px;background:var(--senal);color:var(--concreto);display:flex;flex-direction:column;justify-content:center;gap:12px}
.pile-count>b{font-size:clamp(34px,4vw,54px);line-height:1;font-weight:800}
.pile-count>span{font-family:'IBM Plex Mono',monospace;font-size:11px;line-height:1.5;text-transform:uppercase}
.soil-feature{padding:22px 20px 14px;min-width:0;background:#1b243075}
.soil-heading{display:flex;flex-direction:column;gap:10px;font-size:14px}.soil-heading>span{font-size:12px;color:#cbd2dc}.soil-heading b{color:var(--senal)}
.soil-feature .soil-section{height:230px;margin:40px 0 32px}
.soil-feature .soil-pile{transform:scaleY(0);left:15%;width:26px}
.soil-feature.is-visible .soil-pile{animation:descend 1.8s cubic-bezier(.2,.65,.3,1) forwards}
.soil-feature .soil-depth{left:39%;font-size:27px}.soil-feature .soil-note{font-size:10px;line-height:1.5;color:#adb7c6;margin:0}
.route-stop{scroll-margin-top:100px}.route-stop.is-current summary{color:#8a6c00}
@media(max-width:700px){.foundation-metrics{grid-template-columns:94px minmax(0,1fr)}.pile-count{padding:16px 10px}.pile-count>b{font-size:34px}.pile-count>span{font-size:10px}.soil-feature{padding:18px 12px 12px}.soil-heading{font-size:13px}.soil-heading>span{font-size:11px}.soil-feature .soil-section{height:210px}.soil-feature .soil-pile{left:9%;width:20px}.soil-feature .soil-depth{left:32%;font-size:25px}.soil-depth small{font-size:10px}.soil-scale{font-size:10px}#obras{padding-top:24px}}
@media(prefers-reduced-motion:reduce){.soil-feature .soil-pile{transform:none}.soil-feature.is-visible .soil-pile{animation:none}}
.diameter-view{margin:20px 0 22px;padding:14px 0;border-top:1px solid #ffffff20;border-bottom:1px solid #ffffff20;text-align:center}
.diameter-view>p{margin:0 0 10px;font-size:11px;color:#cbd2dc}
.diameter-view svg{display:block;width:140px;max-width:100%;height:auto;margin:0 auto;overflow:visible}
.diameter-axis{stroke:#ffffff25;stroke-width:1;stroke-dasharray:3 4}
.diameter-ring{fill:none;stroke:var(--senal);stroke-width:2;opacity:0;transform-origin:70px 70px}
.diameter-ring:nth-of-type(2){stroke:#e7edf4}.diameter-ring:nth-of-type(3){stroke:#9db3c9}
.diameter-values{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 12px;margin-top:10px}
.diameter-label{color:var(--senal);font-size:12px;font-family:'IBM Plex Mono',monospace;opacity:0}
.diameter-label:nth-child(2){color:#e7edf4}.diameter-label:nth-child(3){color:#9db3c9}
.diameter-view>small{display:block;color:#adb7c6;font-size:10px;margin-top:8px}
.soil-feature.is-visible .diameter-ring{animation:ring-arrive .65s ease-out var(--ring-delay) forwards}
.soil-feature.is-visible .diameter-label{animation:ring-label .4s ease-out var(--ring-delay) forwards}
@keyframes ring-arrive{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}
@keyframes ring-label{to{opacity:1}}
@media(max-width:700px){.diameter-view svg{width:120px}.diameter-label{font-size:11px}}
@media(prefers-reduced-motion:reduce){.diameter-ring,.diameter-label{opacity:1}.soil-feature.is-visible .diameter-ring,.soil-feature.is-visible .diameter-label{animation:none}}
.foundation-banner-photo{left:-1%;width:102%;max-width:none}
.logos{display:flex;flex-wrap:wrap;background:transparent!important;border:0;gap:1px}
.logos figure{flex:1 1 calc(33.333% - 2px);aspect-ratio:3/1;min-width:0;border:1px solid #ffffff20;padding:20px}
.logos img{max-height:64px;max-width:85%}
#ecko{padding-top:40px}
#ecko>.wrap>.lede{max-width:74ch;margin-top:0}
#ecko .ecko-brand{padding:28px 0;grid-template-columns:260px minmax(0,1fr);gap:40px;margin-top:24px!important}
.ecko-brand .mk{position:relative}.ecko-brand .mk img{mix-blend-mode:lighten;max-width:260px}
.ecko-brand p{font-size:14px;max-width:70ch}
.foundation-metrics{display:block;border:0;background:#1b243070}
.pile-count{flex-direction:row;justify-content:flex-start;align-items:center;padding:16px 22px;gap:18px;background:transparent;border-bottom:1px solid #ffffff25;color:var(--senal)}
.pile-count>b{font-size:38px}.pile-count>span{max-width:160px;color:#d2d9e2}
.soil-feature{padding:20px 24px;background:transparent}
.soil-heading{flex-direction:row;justify-content:space-between;flex-wrap:wrap}
.soil-feature .soil-section{height:320px;margin-top:38px}
.bore-plan{position:absolute;top:8px;right:5%;width:140px;text-align:center;z-index:2;background:#1b2430d9;border-radius:50%;padding:4px}
.bore-plan svg{width:100%;display:block}.bore-current{display:block;color:var(--senal);font:12px 'IBM Plex Mono',monospace;white-space:nowrap}
.bore-ring{fill:none;stroke:#9cabb9;stroke-width:1;opacity:0;transform-origin:center}.final-ring{stroke:var(--senal);stroke-width:2.3}
.bore-measure{stroke:#ffffff50;stroke-dasharray:3 4;fill:none}
.soil-feature.is-visible .bore-ring{animation:ring-arrive .35s ease-out var(--delay) forwards}
.soil-feature .soil-pile{left:18%;width:34px}.soil-feature .soil-depth{left:36%;top:auto;bottom:16px;font-size:32px}
#ecko .proy-fotos{grid-template-columns:var(--gallery-columns,1fr 1fr);align-items:start}
#ecko .proy-fotos .fp-side{display:grid;grid-template-columns:1fr;grid-template-rows:auto auto}
#ecko .proy-fotos img{width:100%;height:auto;object-fit:contain}
@media(min-width:1050px){#ecko .proy{padding:36px}.soil-feature .soil-section{height:280px}.bore-plan{right:12%;width:150px}}
@media(max-width:700px){.logos figure{flex-basis:calc(50% - 2px);aspect-ratio:2/1;padding:12px}.logos img{max-height:48px}#ecko .ecko-brand{grid-template-columns:1fr;gap:20px}.ecko-brand .mk{justify-items:start}.ecko-brand .mk img{width:230px!important}.soil-feature{padding:18px 14px}.soil-heading{flex-direction:column}.bore-plan{right:3%;width:116px}.soil-feature .soil-pile{left:12%;width:26px}.soil-feature .soil-depth{left:38%;font-size:29px}.soil-feature .soil-section{height:300px}#ecko .proy-fotos{grid-template-columns:1fr}#ecko .proy-fotos .fp-side{grid-template-columns:var(--side-columns,1fr 1fr);grid-template-rows:auto}#ecko .proy-fotos .fp-side.one{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.bore-ring{opacity:1}.soil-feature.is-visible .bore-ring{animation:none}}
.ecko-brand .mk img{mix-blend-mode:normal;filter:url(#ecko-background)}
/* The bore footprint lies horizontally beneath the drilling bar. */
.soil-feature .soil-section{--tool-x:25%}
.soil-feature .soil-pile.drill-bar{left:var(--tool-x);width:30px;margin-left:-15px;background:none;border:0;box-shadow:none;z-index:3}
.drill-shaft{position:absolute;inset:0 9px 12px;background:linear-gradient(90deg,#687682,#e4eaf0 43%,#8b99a6 68%,#45535e);border:1px solid #d0d7de}
.drill-flutes{position:absolute;inset:12px 2px 15px;background:repeating-linear-gradient(155deg,transparent 0 12px,#4f606f 12px 15px,#d9e2e9 15px 18px,transparent 18px 29px);border-radius:4px}
.drill-tip{position:absolute;bottom:0;left:0;width:30px;height:20px;background:linear-gradient(90deg,#586878,#e4eaf0 45%,#627382);clip-path:polygon(5% 0,95% 0,80% 60%,50% 100%,20% 60%)}
.soil-feature .bore-plan{left:var(--tool-x);right:auto;top:var(--depth);width:150px;height:58px;margin-left:-75px;margin-top:-20px;padding:0;border-radius:0;background:none;z-index:2}
.bore-plan svg{position:absolute;left:0;top:0;width:150px;height:150px;transform:scaleY(.34);transform-origin:center top;overflow:visible}
.bore-plan .bore-current{position:absolute;top:55px;left:0;right:0;font-size:12px}
.bore-plan::after{content:'Drilling footprint';position:absolute;top:74px;left:-20px;right:-20px;font-size:10px;color:#c4ced8;text-align:center}
.soil-feature .soil-depth{left:auto;right:5%;top:calc(var(--depth) - 45px);bottom:auto;font-size:30px}
.soil-feature .soil-section{margin-bottom:105px}
@media(max-width:700px){.soil-feature .soil-section{--tool-x:29%;margin-bottom:105px}.soil-feature .bore-plan{width:120px;margin-left:-60px}.bore-plan svg{width:120px;height:120px}.bore-plan .bore-current{top:46px}.bore-plan::after{top:65px;font-size:9px}.soil-feature .soil-depth{right:0;left:auto;font-size:27px}.soil-feature .soil-depth small{font-size:10px}}
.reading-progress{position:fixed;left:0;top:0;bottom:0;width:3px;z-index:150;background:var(--senal);transform:scaleY(var(--reading-progress,0));transform-origin:top;pointer-events:none}
#ecko .ecko-brand{grid-template-columns:1fr;gap:24px;padding-top:12px}
#ecko .ecko-brand .mk{width:100%;display:block;overflow:hidden}
#ecko .ecko-brand .mk img{width:100%!important;max-width:none;height:auto;margin:0;display:block}
#ecko .ecko-brand p{max-width:none;columns:2;column-gap:36px}
.soil-feature .soil-section{margin-top:135px}
.mini-rig{position:absolute;width:146px;height:101px;top:-99px;left:calc(var(--tool-x) - 35px);overflow:visible;z-index:4}
.soil-feature .ground-label{left:auto;right:0;top:-25px}
.drill-collars{position:absolute;bottom:31px;left:5px;right:5px;height:28px;border-top:4px solid #b9c5cc;border-bottom:4px solid #87949e;background:repeating-linear-gradient(0deg,#60717f 0 4px,#c8d2d9 4px 7px);border-radius:5px}
.drill-bucket{position:absolute;bottom:0;left:-6px;width:42px;height:34px;border:1px solid #d0b28b;border-radius:3px 3px 7px 7px;background:linear-gradient(90deg,#705743,#c0a481 45%,#80654a);box-shadow:inset 0 -5px #524334}
.drill-bucket::before{content:"";position:absolute;left:-1px;right:-1px;top:-4px;height:9px;border:2px solid #b69b76;border-radius:50%;background:#493e32}
.drill-bucket i{position:absolute;inset:0 17px;background:#a28b6c;border-left:1px solid #d2bca1;transform:skew(-12deg)}
.route-stop{overflow-anchor:none}.trajectory-route .route-stop summary{touch-action:manipulation}
.logo-banner{margin-top:32px;border-block:1px solid var(--linea)}
.logo-banner-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;font-size:12px;color:var(--acero)}
.logo-rotation-toggle{background:transparent;color:inherit;border:1px solid #9aa1a8;padding:9px 12px;cursor:pointer;min-height:40px}
.logos.home-logo-track{display:flex;flex-wrap:nowrap;gap:0;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin:0;background:white!important;padding:12px 0}
.home-logo-track::-webkit-scrollbar{display:none}.logos.home-logo-track figure{flex:0 0 25%;aspect-ratio:auto;height:150px;scroll-snap-align:start;border:0;padding:22px;display:flex;justify-content:center;align-items:center}
.logos.home-logo-track img{max-width:100%;max-height:90px;width:auto;height:auto}
.logos.company-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:30px}
.logos.company-cards figure{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;aspect-ratio:auto;min-height:230px;background:white;border:1px solid #e1ded5;padding:28px;box-shadow:0 6px 18px #1b243006}
.logos.company-cards img{height:90px;max-height:90px;width:100%;max-width:100%;object-fit:contain;object-position:left center;margin-bottom:24px}
.company-cards figcaption{font-weight:600;font-size:14px;line-height:1.45;color:var(--concreto);border-top:2px solid var(--senal);padding-top:14px;width:100%}
.company-cards figcaption small{display:block;font-size:10px;font-weight:400;letter-spacing:.03em;margin-top:7px;color:var(--acero)}
@media(max-width:700px){#ecko .ecko-brand p{columns:1}.mini-rig{width:126px;height:88px;top:-86px;left:calc(var(--tool-x) - 30px)}.soil-feature .soil-section{margin-top:120px}.logos.home-logo-track figure{flex-basis:50%;height:140px;padding:18px}.logos.company-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.logos.company-cards figure{padding:16px;min-height:220px}.logos.company-cards img{height:75px;max-height:75px}.company-cards figcaption{font-size:12px}.logo-banner-controls{align-items:center}}
@media(max-width:360px){.logos.company-cards{grid-template-columns:1fr}}

.company-cards figcaption{min-height:100px}.logos.company-cards img{flex-shrink:0}

/* Soil classifications supplied for the project portfolio. */
.soil-classification{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;margin-top:18px;padding:12px 0;border-top:1px solid #ffffff24;font-size:14px;color:#c4ced8}
.soil-classification strong{color:#fff;font-weight:600}.soil-classification b{color:var(--senal);margin-left:auto}
.soil-feature .soil-depth{left:54%;right:auto;width:43%;text-align:center;top:calc(var(--depth) - 45px)}
.stabilizer-circuit{margin:0 0 22px;padding:18px 0;border-block:1px solid #ffffff24}
.stabilizer-circuit figcaption{color:var(--senal);font-weight:600;font-size:15px}.stabilizer-circuit figcaption span{display:block;color:#c4ced8;font-weight:400;font-size:13px;margin-top:5px}
.stabilizer-circuit svg{display:block;width:100%;height:auto;max-width:650px;margin:16px auto 0}
.slurry-hoses{stroke-dasharray:8 5;animation:slurry-flow 2s linear infinite}@keyframes slurry-flow{to{stroke-dashoffset:-26}}
@media(max-width:700px){.soil-feature .soil-depth{left:53%;right:auto;width:47%;font-size:27px}.soil-classification{gap:6px 10px}.soil-classification b{margin-left:0}.stabilizer-circuit{margin-inline:-4px}.stabilizer-circuit svg{min-width:0}.stabilizer-circuit svg text{font-size:15px}}
@media(prefers-reduced-motion:reduce){.slurry-hoses{animation:none}}

/* Compact sections and keep the complete footprint within the soil drawing. */
.foundation-intro{padding-top:120px!important;padding-bottom:24px!important}.foundation-intro p{margin-bottom:0}
#ecko{padding-top:20px}#ecko .ecko-brand{margin-top:14px!important;padding-block:10px;gap:18px}
#ecko .ecko-brand p{margin:0}#ecko .lede{margin-bottom:18px}
.soil-feature .soil-section{height:400px;margin-bottom:44px}.soil-feature .soil-note{margin-top:16px;margin-bottom:0}
.casing-diagram{margin:20px 0;padding-top:18px;border-top:1px solid #ffffff24}.casing-diagram figcaption{color:var(--senal);font-weight:600}.casing-diagram svg{display:block;width:100%;max-width:680px;height:auto;margin:12px auto}.casing-diagram p{font-size:14px;line-height:1.55;color:#c4ced8;margin:12px 0 0}
.civil-photo{background:#111d27;color:#fff}.civil-photo .mini span{color:#8B95A2}.civil-photo h2,.civil-photo .lede,.civil-photo p,.civil-photo b{color:#fff}.civil-photo .kicker,.civil-photo .nums span{color:#f5c518!important}
.trajectory-route .tabla{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:0;margin:0;border:0}
.trajectory-route .route-stop{border:1px solid #d9d4c8;background:#fff;margin:0;padding:0 20px;border-radius:3px;min-width:0}.trajectory-route .route-stop::before{display:none}
.trajectory-route .route-stop summary{min-height:94px;font-size:19px;gap:14px;padding:18px 0}.trajectory-route .route-number{font-size:22px;color:#af8d20}
.trajectory-route .route-stop[open]{grid-column:1/-1;border-top:3px solid #f5c518}.route-stop>.chips{padding-bottom:20px;gap:18px}.route-stop .chip.lista{border:0;background:transparent;padding:0}.route-stop .chip.lista li{padding:10px 0;font-size:15px;line-height:1.5}
@media(max-width:700px){.foundation-intro{padding-top:104px!important;padding-bottom:18px!important}#ecko{padding-top:12px}.soil-feature .soil-section{height:400px;margin-bottom:40px}.trajectory-route .tabla{grid-template-columns:1fr;gap:10px}.trajectory-route .route-stop summary{min-height:78px;font-size:18px}.casing-diagram svg text{font-size:17px}}

/* Company logos: centered artwork and complete paired rows. */
.logos.company-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
.logos.company-cards figure{align-items:center;text-align:center}
.logos.company-cards img{object-position:center center;margin-inline:auto}
.logos.company-cards figcaption{text-align:center}
@media(max-width:360px){.logos.company-cards{grid-template-columns:1fr}}

/* Panoramic homepage photography: 5:2 desktop, 3:2 mobile. */
.hero.hero-fullbleed{display:grid;grid-template-columns:1fr;gap:0;min-height:0;margin-top:74px;padding:0}
.hero-fullbleed .bg{position:relative;inset:auto;grid-column:1;grid-row:1;width:100%;aspect-ratio:5/2;z-index:0;overflow:hidden}
.hero-fullbleed .bg img{position:absolute;inset:0;object-position:center}
.hero-fullbleed .inner{grid-column:1;grid-row:1;align-self:center;z-index:1;padding-top:28px;padding-bottom:28px}
.hero-fullbleed h1{font-size:clamp(34px,4.2vw,64px);max-width:14ch}
.hero-fullbleed .tag{margin-bottom:12px}.hero-fullbleed .inner>p:not(.tag){font-size:16px;line-height:1.5;margin-top:16px;max-width:540px}.hero-fullbleed .cta{margin-top:18px}
.hero-fullbleed .hero-dock{grid-column:1;grid-row:2;padding-top:12px;padding-bottom:20px}
#destacados-track>.obra{min-height:0;aspect-ratio:5/2;padding:40px max(var(--gut),calc((100% - var(--maxw))/2 + var(--gut)))}
#destacados-track h3{font-size:clamp(28px,3.2vw,46px)}
#destacados-track .ph img{object-position:center}.featured-fullbleed .car-nav{top:50%}
@media(max-width:900px){
.hero-fullbleed .bg{aspect-ratio:3/2}.hero-fullbleed .inner{grid-row:2;padding-top:24px;padding-bottom:18px}.hero-fullbleed .hero-dock{grid-row:3}.hero-fullbleed .bg::after{background:linear-gradient(0deg,#111d2766,transparent 35%)}
.hero-fullbleed h1{font-size:clamp(34px,7vw,52px)}.hero-fullbleed .inner>p:not(.tag){max-width:none}.hero-fullbleed .tag{font-size:12px}
#destacados-track>.obra{display:flex;aspect-ratio:auto;padding:0 0 28px;justify-content:flex-start}
#destacados-track .ph{position:relative;inset:auto;aspect-ratio:3/2;width:100%;flex:none;z-index:0}
#destacados-track .ph::after{background:linear-gradient(0deg,#1b243070,transparent 35%)}
#destacados-track .txt{padding:22px var(--gut) 0;max-width:none}#destacados-track h3{font-size:30px}#destacados-track .meta{padding-top:12px}
#destacados-track .mas{margin:18px var(--gut) 0}.featured-fullbleed .car-nav{top:calc(100vw / 3)}
}

/* Civil introduction: upright architectural brand backdrop. */
header#hd,header#hd.solid{background:#1b2430;border-bottom:1px solid #ffffff20}
section.civil-photo{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(110deg,#111e28,#223341);color:#fff}
section.civil-photo::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjY3IDEzNSAzNjEgMTUzIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyLjA4Nzk0NTk5ODEgNS40MTczMDQ3MjUyKSBzY2FsZSgwLjMyNzg3ODQ5NTY2MSkiPjxwYXRoIGZpbGw9IiNlOWYwZjUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTIzMC4wMDAsNjI0LjUwMCBMMjMwLjAwMCw0MzAuMDAwIDM1Ni41MDAsNDMwLjAwMCBDNDI2LjA3NSw0MzAuMDAwIDQ4My4wMDAsNDMwLjE5MyA0ODMuMDAwLDQzMC40MzAgQzQ4My4wMDAsNDMwLjY2NiA0NzMuODU0LDQ0NC43MjkgNDYyLjY3NSw0NjEuNjgwIEM0MzAuNzgwLDUxMC4wNDQgMzg5LjI3Miw1NzQuMTg1IDM1MC41MTQsNjM1LjAwMCBDMzQwLjE3NCw2NTEuMjI1IDMyNi45MDEsNjcxLjkyNSAzMjEuMDE5LDY4MS4wMDAgQzMxNS4xMzcsNjkwLjA3NSAzMDMuNjUxLDcwNy44NTAgMjk1LjQ5NCw3MjAuNTAwIEMyODcuMzM3LDczMy4xNTAgMjczLjYyMCw3NTQuMzAwIDI2NS4wMTEsNzY3LjUwMCBDMjU2LjQwMiw3ODAuNzAwIDI0NS40MTQsNzk3LjY4OCAyNDAuNTkyLDgwNS4yNTAgQzIzNS43NzEsODEyLjgxMiAyMzEuNDE2LDgxOS4wMDAgMjMwLjkxMyw4MTkuMDAwIEMyMzAuMzY1LDgxOS4wMDAgMjMwLjAwMCw3NDEuMjA0IDIzMC4wMDAsNjI0LjUwMCBaIE00MDMuMDAwLDczMy4zMzQgQzQwMy4wMDAsNzMyLjk2NyA0MTkuNzYyLDcwNy41NTQgNDQwLjI1MCw2NzYuODU5IEM0NjAuNzM4LDY0Ni4xNjQgNDc3Ljk1MCw2MjEuMTg5IDQ3OC41MDAsNjIxLjM1OSBDNDc5LjA1MCw2MjEuNTI4IDQ4Mi4wMDksNjI1LjY3OSA0ODUuMDc1LDYzMC41ODMgQzQ4OC4xNDIsNjM1LjQ4NyA1MDMuNTgxLDY2MC4xMjEgNTE5LjM4NSw2ODUuMzI1IEM1MzUuMTkwLDcxMC41MjggNTQ4LjM2Niw3MzEuNzkxIDU0OC42NjcsNzMyLjU3NSBDNTQ5LjEzNyw3MzMuODAwIDUzOC45NzYsNzM0LjAwMCA0NzYuMTA3LDczNC4wMDAgQzQzNS44OTgsNzM0LjAwMCA0MDMuMDAwLDczMy43MDAgNDAzLjAwMCw3MzMuMzM0IFogTTYxNy43MTksNjUzLjI1MCBDNjEwLjYxMCw2NDAuNzI3IDU5OS44NzMsNjIyLjQyNSA1ODEuNDk0LDU5MS41MDAgQzU3Mi4wMTUsNTc1LjU1MCA1NTguNzQwLDU1My4wNTAgNTUxLjk5NSw1NDEuNTAwIEM1NDUuMjUwLDUyOS45NTAgNTI3LjYwNCw1MDAuMzI1IDUxMi43ODMsNDc1LjY2NiBDNDk3Ljk2MSw0NTEuMDA3IDQ4Ni4wMjQsNDMwLjY0MyA0ODYuMjU1LDQzMC40MTIgQzQ4Ni40ODYsNDMwLjE4MCA1MzYuNTg2LDQzMC4xMDYgNTk3LjU4OCw0MzAuMjQ2IEw3MDguNTAwLDQzMC41MDAgNzAyLjAwMCw0MzMuNDU0IEM2ODIuNjU3LDQ0Mi4yNDYgNjcxLjQyOCw0NDkuMjY5IDY2MC4wNjIsNDU5LjY4NCBDNjQxLjI3Niw0NzYuOTAwIDYyOC42MjAsNTAxLjkzMSA2MjYuMDUzLDUyNi45NTMgQzYyNS40MzgsNTMyLjk0OCA2MjUuMDAwLDU2Mi45MzkgNjI1LjAwMCw1OTkuMTA2IEM2MjUuMDAwLDY1Mi4zMTkgNjI0Ljc5OCw2NjEuMDAwIDYyMy41NjAsNjYxLjAwMCBDNjIyLjc2Nyw2NjEuMDAwIDYyMC4xMzksNjU3LjUxMyA2MTcuNzE5LDY1My4yNTAgWiIvPjxwYXRoIGZpbGw9IiNlOWYwZjUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTc4OS44NjEsODI0LjA4OSBMNzg3LjUwMCw4MjIuMTc4IDc4Ny4wMDAsNzc2LjgzOSBMNzg2LjUwMCw3MzEuNTAwIDc2Ni4wMDAsNzMxLjAwMCBDNzQ1LjYxNCw3MzAuNTAzIDc0NS40NjQsNzMwLjQ4MyA3MzkuMDAwLDcyNy40MDUgQzczNS40MjUsNzI1LjcwMyA3MzAuNTE4LDcyMi4zMjggNzI4LjA5NSw3MTkuOTA1IEM3MjUuNjcyLDcxNy40ODIgNzIyLjI5Nyw3MTIuNTc1IDcyMC41OTUsNzA5LjAwMCBMNzE3LjUwMCw3MDIuNTAwIDcxNy41MDAsNjMyLjAwMCBDNzE3LjUwMCw1NjIuMzM1IDcxNy41MjUsNTYxLjQzMyA3MTkuNjQ1LDU1NS44MzIgQzcyNC4wNzAsNTQ0LjE0MyA3MzIuNTUwLDUzNS4zNDQgNzQzLjc0OCw1MzAuODIzIEw3NDkuNTAwLDUyOC41MDAgODI3LjUwMCw1MjguMDAwIEw5MDUuNTAwLDUyNy41MDAgOTA2LjAwMCw0ODEuMjc3IEw5MDYuNTAwLDQzNS4wNTQgOTA4Ljc3NSw0MzIuNzc3IEM5MTAuODMyLDQzMC43MTggOTEyLjE1OCw0MzAuNDY4IDkyMi42MDYsNDMwLjE2MiBDOTMwLjM0NCw0MjkuOTM2IDkzNS4xNjYsNDMwLjI0MCA5MzcuMjAzLDQzMS4wODQgQzk0Mi44ODUsNDMzLjQzOCA5NDMuMDAwLDQzNC40NzUgOTQzLjAwMCw0ODMuNDU0IEw5NDMuMDAwLDUyNy45NzMgMTA0Ni43NTAsNTI4LjIzNiBMMTE1MC41MDAsNTI4LjUwMCAxMTU2LjE1NSw1MzEuMTUxIEMxMTU5LjI2Niw1MzIuNjEwIDExNjMuNzIyLDUzNS43NjAgMTE2Ni4wNTgsNTM4LjE1MSBDMTE2OC4zOTQsNTQwLjU0MyAxMTcxLjY5OSw1NDUuNDI1IDExNzMuNDAzLDU0OS4wMDAgTDExNzYuNTAwLDU1NS41MDAgMTE3Ni44MzgsNTc1LjY5MSBDMTE3Ny4xMTcsNTkyLjMzNyAxMTc2Ljg4Miw1OTYuOTAyIDExNzUuNTAwLDYwMS42OTEgQzExNzEuOTY0LDYxMy45NDMgMTE2NS41MDUsNjIyLjA3MSAxMTU0Ljg0MCw2MjcuNjg3IEwxMTQ5LjUwMCw2MzAuNTAwIDEwMjcuNzUwLDYzMC43NjYgTDkwNi4wMDAsNjMxLjAzMSA5MDYuMDAwLDY4MS4wMDUgTDkwNi4wMDAsNzMwLjk3OCA4NjMuNzUwLDczMS4yMzkgTDgyMS41MDAsNzMxLjUwMCA4MjEuMDAwLDc3Ni44MzkgTDgyMC41MDAsODIyLjE3OCA4MTguMTM5LDgyNC4wODkgQzgxNi4xMTQsODI1LjcyOSA4MTQuMTA1LDgyNi4wMDAgODA0LjAwMCw4MjYuMDAwIEM3OTMuODk1LDgyNi4wMDAgNzkxLjg4Niw4MjUuNzI5IDc4OS44NjEsODI0LjA4OSBaIE05MTEuMjEwLDgyMi40NDYgQzkwOS41MzEsODIxLjc0MCA5MDcuNjY3LDgyMC4yNDcgOTA3LjA2OCw4MTkuMTI3IEM5MDYuMzE4LDgxNy43MjYgOTA2LjA2MCw4MDMuNTkwIDkwNi4yMzksNzczLjc5NiBMOTA2LjUwMCw3MzAuNTAwIDEwMzkuMDAwLDcyOS45NjIgQzExNzEuNDAwLDcyOS40MjQgMTE3MS41MDYsNzI5LjQyMiAxMTc5LjAzNyw3MjcuMjQzIEMxMjAxLjQ4Nyw3MjAuNzQ4IDEyMjAuMDgyLDcwOS4zNTQgMTIzNi4xNjIsNjkyLjIzOSBDMTI0NS4wNTMsNjgyLjc3NiAxMjUwLjAyMiw2NzUuMjU5IDEyNTcuMjA0LDY2MC40MDAgQzEyNjAuNTAxLDY1My41ODAgMTI2My41NDksNjQ4LjAwMCAxMjYzLjk3Nyw2NDguMDAwIEMxMjY2Ljg4NSw2NDguMDAwIDEyNjcuMDA4LDY1MS45MjQgMTI2Ni43NTYsNzM3LjA5NCBMMTI2Ni41MDAsODIzLjQ3MCAxMDkwLjM4MSw4MjMuNjAwIEM5NDkuMDU4LDgyMy43MDQgOTEzLjY1OSw4MjMuNDc2IDkxMS4yMTAsODIyLjQ0NiBaIE0xMjYxLjM2OSw1MTQuNzk4IEMxMjYwLjg0Myw1MTQuMDg0IDEyNTkuNTc2LDUxMS4wMjUgMTI1OC41NTQsNTA4LjAwMCBDMTI1Ni4xOTIsNTAxLjAwOSAxMjUzLjAxNyw0OTQuNTczIDEyNDYuOTYwLDQ4NC41MDAgQzEyMzQuMzg1LDQ2My41ODQgMTIxMi44NzgsNDQ1LjIwNSAxMTkwLjI0Nyw0MzYuMDM4IEMxMTg2LjQyNCw0MzQuNDg5IDExODMuNTAwLDQzMi42OTcgMTE4My41MDAsNDMxLjkwMiBDMTE4My41MDAsNDMwLjcyMiAxMTkwLjA2MCw0MzAuNTAwIDEyMjUuMDAwLDQzMC41MDAgTDEyNjYuNTAwLDQzMC41MDAgMTI2Ni41MDAsNDczLjAwMCBDMTI2Ni41MDAsNTE1LjMzMiAxMjY2LjQ5Miw1MTUuNTAxIDEyNjQuNDEyLDUxNS43OTggQzEyNjMuMjY0LDUxNS45NjIgMTI2MS44OTUsNTE1LjUxMiAxMjYxLjM2OSw1MTQuNzk4IFoiLz48L2c+PGcgaWQ9Im1hcmNhLXJlZ2lzdHJhZGEiIGFyaWEtbGFiZWw9Ik1hcmNhIHJlZ2lzdHJhZGEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQyMSAxNDApIHNjYWxlKDAuMikiIGZpbGw9IiNlOWYwZjUiPgogPGNpcmNsZSByPSIxOSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZTlmMGY1IiBzdHJva2Utd2lkdGg9IjIuNCIvPgogPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNLTcuNSAxMC41Vi0xMUgxQzYuNS0xMSA5LTguNCA5LTQuN0M5LTEuNSA3LjIuOCAzLjggMS42TDkuOCAxMC41SDUuN0wuMiAyLjFILTRWMTAuNVpNLTQtOFYtLjlILjhDNC4yLS45IDUuNS0yLjEgNS41LTQuNkM1LjUtNi44IDQuMi04IC44LThaIi8+CjwvZz48L3N2Zz4K') no-repeat 90% 45%;background-size:min(76%,1000px) auto;opacity:.12;transform:none}
section.civil-photo::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,#111e2840,transparent 70%);border-block:1px solid #ffffff16}
section.civil-photo .nums{position:relative;background:#111e284d}
@media(max-width:700px){section.civil-photo::before{background-position:center 46%;background-size:90% auto;opacity:.12}section.civil-photo .nums{background:transparent}}

/* design-system.css */
/* Shared visual language: navy, white space, restrained yellow accents. */
:root{--concreto:#1b2430;--concreto-2:#28323f;--senal:#f5c518;--cal:#f5f6f7;--linea:#dce1e5;--gut:clamp(20px,4.5vw,64px);--maxw:1320px}
body{overflow-wrap:break-word}section{padding-block:clamp(48px,6vw,88px)}.wrap{width:100%}h1,h2,h3{text-wrap:balance}p{max-width:75ch}.kicker,.sub,.eyebrow{letter-spacing:.16em}.btn{letter-spacing:.07em;min-height:46px;display:inline-flex;align-items:center;justify-content:center}.phero{padding-top:144px;padding-bottom:64px}.phero p{max-width:62ch}.phero h1{font-size:clamp(36px,5vw,64px)}.nav .marca img{content-visibility:visible}.reading-progress{pointer-events:none}.tab-btn{min-height:44px}.proy{scroll-margin-top:94px}.proy h3{font-size:clamp(25px,3vw,40px)}.fgrid{gap:32px}footer p{max-width:50ch}.company-cards figure{border-radius:4px}.company-cards figcaption{text-align:center;width:100%}.logos.company-cards figure{align-items:center}.company-cards figure img{object-position:center}.section-head{gap:20px}.portfolio-page .phero{min-height:400px;display:flex;align-items:flex-end}.portfolio-page .phero .bg:after{background:linear-gradient(90deg,#101c29ed,#101c2940)}.portfolio-page .phero .wrap{position:relative}.portfolio-page .phero p{font-size:17px;color:#e1e5e9;max-width:58ch}.portfolio-page .phero .kicker{color:var(--senal);font-size:12px}.portfolio-page .phero .btn{margin-top:12px}
.portfolio-page #obras{padding-top:0}.portfolio-nav{display:flex;flex-wrap:wrap;gap:12px 28px;border-bottom:1px solid var(--linea);padding:24px 0;margin-bottom:36px}.portfolio-nav a{font-size:14px;font-weight:600;text-decoration:none;border-bottom:2px solid transparent;padding:4px 0}.portfolio-nav a:hover{border-color:var(--senal)}.catalog-title{font-size:clamp(26px,3vw,38px);font-weight:800;color:var(--concreto);margin:0 0 12px}.portfolio-page .nota{font-size:15px;line-height:1.7;margin:0 0 20px}.portfolio-page .filtros{padding:24px;background:white;border:1px solid var(--linea);margin:24px 0 40px;border-radius:4px}.portfolio-page .filtro-lab{font-size:12px;letter-spacing:.12em;margin:16px 0 10px}.portfolio-page .filtro-lab:first-child{margin-top:0}.portfolio-page .tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0}.portfolio-page .tab-btn,.portfolio-page .sub-btn{font-family:inherit;font-size:14px;letter-spacing:0;text-transform:none;padding:9px 14px;border:1px solid #dce1e5;background:#f7f8fa;color:#344050;border-radius:3px}.portfolio-page .tab-btn.on,.portfolio-page .sub-btn.on{background:#1b2430;color:#fff;border-color:#1b2430;box-shadow:inset 0 -3px var(--senal)}.portfolio-page .filtro-cuenta{margin:20px 0 0;padding-top:16px;border-top:1px solid var(--linea);font-size:13px;letter-spacing:0;color:#5c6675}.portfolio-page .tabla-group{margin:0 0 56px;scroll-margin-top:100px}.catalog-heading{font-size:25px;font-weight:700;margin:0 0 24px;border-left:4px solid var(--senal);padding-left:16px;color:#1b2430}.portfolio-page #grp-clientes>.tabla,.portfolio-page #grp-fichas>.tabla{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;border:0;margin-top:0!important;align-items:start}.project-card{min-width:0;background:white;border:1px solid #dce1e5;border-radius:4px;overflow:hidden;scroll-margin-top:96px}.project-card[hidden],.project-card.page-hidden{display:none!important}.project-cover{display:block;list-style:none;cursor:pointer}.project-cover::-webkit-details-marker{display:none}.project-cover:focus-visible{outline:3px solid #b08a00;outline-offset:-3px}.project-image{width:100%;height:220px;object-fit:contain;background:#e8edf0;content-visibility:visible}.project-placeholder{height:220px;display:grid;place-items:center;color:#ffffff40;font-size:64px;font-weight:800;background:#233241}.project-info{padding:22px;display:flex;flex-direction:column;gap:10px}.project-category{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#6a7280}.project-info>b{font-size:20px;line-height:1.3;color:#1b2430;min-height:52px}.project-location{font-size:13px;color:#687283}.project-cue{font-size:13px;font-weight:600;border-top:1px solid #e3e7ea;padding-top:16px;margin-top:8px;color:#28323f}.project-card[open]{border-color:#b19a41}.project-card[open] .project-cue{color:#897017}.project-detail{border-top:1px solid #e0e4e8;padding:22px;font-size:15px;line-height:1.75;color:#536070}.project-detail>span{display:block}.project-detail .cif{display:block;font-size:13px;line-height:1.7;margin-top:18px;color:#1b2430}.project-detail .fotos{display:grid;grid-template-columns:1fr;gap:10px;margin-top:20px}.project-detail .fotos img{width:100%;height:auto;max-height:none;object-fit:contain}.catalog-more{display:block;margin:28px auto 0;padding:14px 28px;min-height:48px;background:transparent;border:1px solid #1b2430;color:#1b2430;font:600 14px Poppins,sans-serif;cursor:pointer}.catalog-more:hover{background:#1b2430;color:white}.catalog-more[hidden]{display:none}.portfolio-page #grp-trayectoria{padding-top:32px;border-top:1px solid #dce1e5}.portfolio-page #grp-trayectoria>.sub{font-size:25px;letter-spacing:0;color:#1b2430;text-transform:none;font-family:inherit;font-weight:700}.portfolio-page .trajectory-route{gap:14px}.portfolio-page .trajectory-route .route-stop{padding:0 20px;border:1px solid #dce1e5;border-radius:4px}.portfolio-page .route-stop summary{font-size:17px;padding:22px 0}.portfolio-page .route-stop .chips{padding-bottom:20px}.portfolio-page .route-stop .lista{padding:0 16px;border:0;background:#f6f7f8}.portfolio-page .route-stop .lista li{font-size:15px;line-height:1.7}.portfolio-page .route-stop .chip-photo{max-width:100%;margin:0}.portfolio-page .route-stop .chip-photo img{object-fit:contain}.portfolio-page #trayectoria{scroll-margin-top:100px}.portfolio-page .rv{opacity:1;transform:none}
@media(max-width:1000px){.portfolio-page #grp-clientes>.tabla,.portfolio-page #grp-fichas>.tabla{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.phero{padding-top:116px;padding-bottom:40px}.portfolio-page .phero{min-height:360px}.portfolio-page .phero h1{font-size:38px}.portfolio-page .phero p{font-size:15px}.portfolio-nav{gap:12px 20px;margin-bottom:28px}.portfolio-nav a{font-size:13px}.portfolio-page .filtros{padding:18px;margin-bottom:32px}.portfolio-page .tab-btn{padding:9px 11px;font-size:13px}.portfolio-page #grp-clientes>.tabla,.portfolio-page #grp-fichas>.tabla{grid-template-columns:1fr;gap:20px}.project-image,.project-placeholder{height:230px}.project-info>b{min-height:0}.project-info{padding:20px}.catalog-heading{font-size:23px}.portfolio-page .tabla-group{margin-bottom:40px}.btn{max-width:100%}.portfolio-page .route-stop summary{font-size:16px}.portfolio-page .filtro-cuenta{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Portfolio: one ordered index, photography only inside each project. */
.portfolio-page #grp-clientes>.tabla{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px;background:transparent}
.project-card{border:0;border-bottom:1px solid #cfd6dc;border-radius:0;background:transparent}
.project-cover{display:grid;grid-template-columns:40px minmax(0,1fr);gap:14px;padding:26px 0;min-height:220px}
.project-number{font:500 14px 'IBM Plex Mono',monospace;color:#8a7130;padding-top:2px}
.project-info{padding:0;gap:9px}.project-info>b{font-size:21px;min-height:0;line-height:1.35;max-width:30ch}
.project-category{font-size:11px;color:#687383}.project-cue{border:0;padding:0;margin-top:8px;color:#39495a}
.project-card[open]{grid-column:1/-1;border-bottom:2px solid #cfaa2c;background:#fff;padding:0 24px}
.project-card[open] .project-cover{min-height:0}.project-card[open] .project-info>b{max-width:none}
.project-detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:28px;padding:24px 0 32px}
.project-detail .fotos{margin:0;align-content:start;gap:16px}.project-detail .fotos img{max-height:520px;object-fit:contain;background:#f1f3f5}
.portfolio-page .catalog-heading{margin-top:0}.portfolio-page .portfolio-nav{margin-bottom:28px}
@media(max-width:640px){.portfolio-page #grp-clientes>.tabla{grid-template-columns:1fr}.project-cover{min-height:0;padding:24px 0;grid-template-columns:28px minmax(0,1fr);gap:12px}.project-info>b{font-size:20px}.project-detail{grid-template-columns:1fr;gap:24px}.project-card[open]{padding:0 16px}.project-number{font-size:12px}.project-detail .fotos img{max-height:420px}}

/* recorrido.css */
/* Continuous project journey */
.portfolio-page #grp-clientes>.tabla{display:block!important;perspective:1400px;max-width:1050px;margin-inline:auto}.portfolio-page .journey-card{margin:0 0 48px!important;transform-style:preserve-3d;transform:perspective(1400px) rotateX(var(--tilt,0deg)) scale(var(--scale,1));transform-origin:center center;transition:box-shadow .3s;box-shadow:0 18px 50px #15233412;will-change:transform}.portfolio-page .journey-card .project-cover{display:grid!important;grid-template-columns:1.3fr 1fr!important;align-items:stretch;min-height:360px}.portfolio-page .journey-card .editorial-card-photo{height:100%!important;min-height:360px;object-fit:cover}.portfolio-page .journey-card .project-number{display:none!important}.portfolio-page .journey-card .project-info{padding:36px!important;margin:0!important;display:flex;flex-direction:column;justify-content:center;min-width:0}.portfolio-page .project-category{display:block;font-size:12px;letter-spacing:.1em;line-height:1.7;margin-bottom:16px}.portfolio-page .project-info>b{font-size:clamp(24px,2.8vw,34px);line-height:1.22;overflow-wrap:anywhere}.portfolio-page .project-location{display:block;font-size:15px;line-height:1.65;margin:18px 0 24px}.portfolio-page .project-cue{display:block;margin-top:auto!important;padding:18px 0 0!important}.portfolio-page .catalog-more{display:none!important}.portfolio-page .project-card.page-hidden{display:block!important}.portfolio-page .editorial-hero{min-height:340px}.portfolio-page #project-viewer[open]{animation:unfold-project .5s cubic-bezier(.2,.8,.2,1)}@keyframes unfold-project{from{opacity:0;transform:perspective(1600px) rotateY(-14deg) scale(.9)}to{opacity:1;transform:perspective(1600px) rotateY(0) scale(1)}}
/* Trajectory: chapters connected by a gold spine. */
.portfolio-page .trajectory-route>.tabla{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;padding-left:28px;border-left:3px solid #e6b916}.portfolio-page .history-chapter{border:1px solid #dce1e5!important;background:#fff;border-radius:12px;overflow:hidden;margin:0!important;padding:0!important;position:relative}.portfolio-page .history-chapter>summary{padding:24px!important;display:flex;gap:18px;align-items:center;font-size:19px;line-height:1.35;min-height:112px;cursor:pointer}.portfolio-page .history-chapter .route-number{font:700 32px 'IBM Plex Mono',monospace;color:#b18b0c}.portfolio-page .history-chapter[open]{grid-column:1/-1;background:#f8fafb;border-top:4px solid #f5c518!important}.portfolio-page .history-chapter .chips{padding:0 24px 24px!important}.portfolio-page .history-chapter .chip{max-width:100%;min-width:0}.portfolio-page .history-chapter li{font-size:15px;line-height:1.8;padding-block:12px}.portfolio-page .history-chapter.is-current{box-shadow:0 8px 30px #1b243010}.viewer-description p{line-height:1.8!important}.viewer-description h2{margin:16px 0 24px!important}.viewer-stage{overflow:hidden}
/* Foundation reading rhythm */
body[data-foundation] .foundation-intro{padding-block:clamp(72px,9vw,112px) 48px!important}body[data-foundation] .foundation-intro h1{margin:18px 0 28px;line-height:1.12}body[data-foundation] p{line-height:1.85;max-width:76ch}body[data-foundation] #ecko{padding-top:28px}body[data-foundation] #ecko p{margin-bottom:28px}body[data-foundation] .soil-feature{margin-top:28px}body[data-foundation] .proy p{margin-top:18px;margin-bottom:26px}body[data-foundation] .wrap{padding-inline:clamp(24px,4vw,60px)}
@media(max-width:700px){.portfolio-page .journey-card{margin-bottom:28px!important}.portfolio-page .journey-card .project-cover{display:flex!important;min-height:0}.portfolio-page .journey-card .editorial-card-photo{height:240px!important;min-height:0}.portfolio-page .journey-card .project-info{padding:24px!important}.portfolio-page .project-info>b{font-size:25px}.portfolio-page .trajectory-route>.tabla{grid-template-columns:1fr;padding-left:14px;gap:14px}.portfolio-page .history-chapter>summary{padding:20px!important;font-size:18px}.portfolio-page .history-chapter .chips{padding:0 18px 20px!important}body[data-foundation] .foundation-intro{padding-top:70px!important}body[data-foundation] .foundation-intro h1{font-size:clamp(34px,9vw,46px)}body[data-foundation] p{font-size:16px;line-height:1.85}.viewer-description{padding:26px!important}}
@media(prefers-reduced-motion:reduce){.portfolio-page .journey-card{transform:none!important;will-change:auto}.portfolio-page #project-viewer[open]{animation:none}}
/* Vertical carousel: stable panels, native scrolling, no rotation or zoom. */
.portfolio-page #grp-clientes>.vertical-carousel{display:block!important;height:min(720px,76dvh);min-height:430px;overflow-y:auto;overflow-x:hidden;scroll-snap-type:y mandatory;scroll-behavior:auto;perspective:none!important;position:relative;scrollbar-width:thin;scrollbar-color:#b59a32 #e8edf0;border-radius:10px;-webkit-overflow-scrolling:touch}.portfolio-page .vertical-carousel .journey-card{height:100%;min-height:100%;box-sizing:border-box;margin:0!important;border-radius:0;scroll-snap-align:start;scroll-snap-stop:always;transform:none!important;transition:none!important;will-change:auto;box-shadow:none}.portfolio-page .vertical-carousel .project-cover{height:100%;min-height:0!important}.portfolio-page .vertical-carousel .editorial-card-photo{min-height:0!important;object-fit:cover}.vertical-status{display:flex;justify-content:space-between;gap:18px;max-width:1050px;margin:22px auto 12px;font-size:13px;color:#576471}.vertical-status span{font-variant-numeric:tabular-nums;color:#826709}.vertical-carousel:focus-visible{outline:3px solid #e6b916;outline-offset:4px}.portfolio-page #project-viewer[open]{animation:none!important;transform:none!important}@media(max-width:700px){.portfolio-page #grp-clientes>.vertical-carousel{height:74dvh;min-height:440px}.portfolio-page .vertical-carousel .project-cover{display:grid!important;grid-template-columns:1fr!important;grid-template-rows:48% 52%;gap:0}.portfolio-page .vertical-carousel .editorial-card-photo{height:100%!important;width:100%;object-fit:cover}.portfolio-page .vertical-carousel .project-info{padding:20px 24px!important;justify-content:flex-start;overflow:auto}.portfolio-page .vertical-carousel .project-info>b{font-size:clamp(20px,5.5vw,26px)}.portfolio-page .vertical-carousel .project-category{font-size:11px;margin-bottom:10px}.portfolio-page .vertical-carousel .project-location{font-size:13px;margin:10px 0 12px}.portfolio-page .vertical-carousel .project-cue{padding-top:10px!important;font-size:14px}}

/* refinement.css */
/* Keep the call to action inside the first mobile viewport. */
@media(max-width:700px){
.home-compact .hero.hero-fullbleed{position:relative;min-height:calc(100svh - 74px);display:flex;justify-content:center;gap:0;padding:20px 0}
.home-compact .hero-fullbleed .bg{position:absolute;inset:0;height:100%;max-height:none;width:100%;z-index:0}
.home-compact .hero-fullbleed .bg::after{background:linear-gradient(0deg,#111d27 0%,#111d27e8 38%,#111d2766 100%)}
.home-compact .hero-fullbleed .inner{position:relative;margin-top:auto;padding:24px var(--gut) 12px;width:100%}
.home-compact .hero-fullbleed h1{font-size:clamp(30px,8.5vw,42px);line-height:1.05;margin:12px 0}
.home-compact .hero-fullbleed .inner>p:not(.tag){font-size:14px;line-height:1.45;margin-top:12px}
.home-compact .hero-fullbleed .tag{font-size:10px;letter-spacing:.04em}
.home-compact .hero-fullbleed .cta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}
.home-compact .hero-fullbleed .cta .btn{font-size:11px;padding:12px 8px;min-height:46px;text-align:center}
.home-compact .hero-fullbleed .hero-dock{position:relative;padding:0 var(--gut);gap:0}
.home-compact .hero-caption,.home-compact .hero-controls{display:none}
.home-compact .hero-pagination{gap:8px}.home-compact .hero-pagination button{min-height:32px;font-size:11px}
}
.foundation-film-zone{position:relative;isolation:isolate;background:#1b2531;color:#fff;padding-bottom:30px}
.foundation-film-zone .foundation-intro{background:transparent;padding-bottom:0!important}
.foundation-story{padding-top:20px}.foundation-story .lede{margin:0;line-height:1.65}
.foundation-story .rama{margin-top:24px!important;gap:24px}.foundation-story p{line-height:1.65}
.foundation-story .mk img{max-width:360px;width:100%}
#ecko{padding-top:24px!important}
.fleet-immersive{position:relative;isolation:isolate;overflow:hidden;width:100vw;margin-left:calc(50% - 50vw);padding:56px max(var(--gut),calc((100vw - var(--maxw))/2 + var(--gut)));background:#1b2531}
.fleet-immersive::before{content:'';position:absolute;inset:0;z-index:-2;background:linear-gradient(140deg,#1d2835,#161f2a)}
.fleet-immersive::after{content:'';position:absolute;inset:0;z-index:-1;background:none}
.fleet-immersive .flota{background:transparent}.fleet-immersive .flota>div{background:#14212b80;border-bottom:1px solid #ffffff30;backdrop-filter:blur(2px)}
.fleet-immersive .flota em{color:#f0f2f4}.fleet-immersive .kicker{margin-top:0}
.specialty-map{margin:36px 0;background:#14222d;color:#fff;padding:32px;display:grid;grid-template-columns:1fr 1.4fr;gap:40px;background-image:linear-gradient(#ffffff05 1px,transparent 1px),linear-gradient(90deg,#ffffff05 1px,transparent 1px);background-size:32px 32px}
.map-heading{display:flex;flex-direction:column;gap:24px;justify-content:center}.map-heading>span{color:#f5c518;font:12px monospace;letter-spacing:.18em}.map-heading>strong{font-size:clamp(28px,3vw,44px);line-height:1.1}.map-heading a{color:#fff;text-decoration:none;border-bottom:1px solid #f5c518;padding-bottom:14px}
.map-routes{border-left:1px solid #f5c518;padding-left:24px}.map-routes button,.map-routes a{display:flex;width:100%;align-items:center;text-align:left;gap:18px;background:transparent;border:0;border-bottom:1px solid #ffffff25;color:#fff;padding:22px 0;font:inherit;cursor:pointer;text-decoration:none}.map-routes span{font:13px monospace;color:#f5c518}.map-routes strong{font-size:16px;flex:1}.map-routes i{font-style:normal;color:#f5c518}.map-routes button:hover,.map-routes button[aria-pressed=true]{background:#ffffff12;color:#f5c518}
@media(max-width:700px){.specialty-map{grid-template-columns:1fr;padding:24px;gap:28px}.map-heading{gap:18px}.map-routes{padding-left:16px}.map-routes button,.map-routes a{padding:18px 0}.foundation-story .rama{display:block}.foundation-story .mk{margin:20px 0}.foundation-story .mk img{max-width:260px}.fleet-immersive{padding-block:36px}}

/* quality-pass.css */
/* Shared responsive safeguards. */
*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:90px}
img,video{max-width:100%}
.wrap,.project-info,.viewer-description,.native-content,.map-heading,.map-routes{min-width:0}
h1,h2,h3,p,li,dd{overflow-wrap:break-word}
[hidden]{display:none!important}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,select:focus-visible{outline:2px solid #d7ae16;outline-offset:4px}
.foundation-film-zone{overflow:hidden;background:#14212b;padding-bottom:64px}
.foundation-background-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;pointer-events:none}
.foundation-film-zone::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,#111d27e8,#111d2799),linear-gradient(0deg,#1b2531,transparent 20%)}
.foundation-film-zone .foundation-intro,.foundation-film-zone .foundation-story{background:transparent!important;color:#fff}
.foundation-film-zone p{color:#eef1f4}
.foundation-film-zone .foundation-intro{padding-top:110px!important;margin-top:0}
.foundation-film-zone .foundation-story{padding-top:20px;padding-bottom:0}
.foundation-video-toggle{position:absolute;bottom:18px;right:max(24px,var(--gut));background:#111d2799;border:1px solid #ffffff70;color:white;padding:10px 16px;min-height:44px;cursor:pointer}
.foundation-story .ecko-brand{align-items:center}
.foundation-story .mk img{height:auto}
.viewer-stage img,.native-hero img,.native-gallery img{height:auto;object-fit:contain}
.scope-controls select{width:100%;min-height:44px;font-size:16px}
.specialty-map button{touch-action:manipulation}
@media(max-width:700px){
.foundation-film-zone .foundation-intro{padding-top:108px!important}
.foundation-film-zone h1{font-size:clamp(36px,10vw,50px);line-height:1.08}
.foundation-film-zone .foundation-intro p,.foundation-story p,.foundation-story .lede{font-size:16px;line-height:1.6}
.foundation-film-zone .kicker{font-size:11px;letter-spacing:.12em}
.foundation-story .ecko-brand{margin-top:18px!important}
.foundation-story .mk{margin-block:16px}.foundation-story .ecko-brand p{margin-block:16px 0}
.foundation-video-toggle{font-size:12px}
.fleet-immersive .flota>div{padding:24px}.fleet-immersive .flota em{font-size:15px;line-height:1.6}
.project-info,.viewer-description{padding:24px!important}
.project-info b{font-size:clamp(22px,6vw,30px);line-height:1.2}
.viewer-controls{gap:8px}.viewer-controls button{min-height:44px}
.banner-lightbox-bar{padding-inline:12px;gap:8px}.banner-lightbox button{font-size:14px}
.home-compact .hero.hero-fullbleed{min-height:calc(100svh - 74px);padding-block:12px}
.home-compact .hero-fullbleed .inner{padding-bottom:8px}
.home-compact .hero-fullbleed .hero-pagination button{min-height:44px}
.home-compact .hero-fullbleed .cta{padding-right:0}
}
@media(max-width:700px) and (max-height:650px){
.home-compact .hero-fullbleed .inner{padding-top:12px}
.home-compact .hero-fullbleed h1{font-size:29px}
.home-compact .hero-fullbleed .inner>p:not(.tag){font-size:13px;line-height:1.35;margin-top:8px}
.home-compact .hero-fullbleed .cta{margin-top:10px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
.foundation-film-zone{background:#14212b url('/img/cimentacion-poster-v7.jpg') center/cover no-repeat}

/* ============================================================
   Ajuste fotográfico — septiembre 2026
   1. Las fotos se veían lavadas: se quita el velo que las apagaba.
   2. Se veían recortadas: se quita el zoom artificial.
   3. La foto de la flota se muestra completa y a resolución nativa.
   4. Menos aire en la explicación de cimentación.
   ============================================================ */

/* --- 1. Fotos a su opacidad real --------------------------- */
.hero .bg img.on,
.hero-fullbleed .bg img.on,
.phero .bg img.on{opacity:1}
#destacados-track .ph img{opacity:1}
.civil-mosaic img{opacity:1}

/* --- 2. Sin acercamiento automático ------------------------ */
.hero .bg img,
.hero-fullbleed .bg img,
.phero .bg img{animation:none!important;transform:none!important}

/* --- Velos más ligeros: sólo donde hay texto encima -------- */
.hero-fullbleed .bg::after{background:linear-gradient(90deg,#101a23cc 0%,#101a2359 44%,#101a2300 74%),linear-gradient(0deg,#101a23f2 0%,#101a235e 17%,transparent 44%)}
.phero .bg::after{background:linear-gradient(to top,rgba(16,26,35,.93) 4%,rgba(16,26,35,.58) 44%,rgba(16,26,35,.2) 100%)}
.foundation-film-zone::before{background:linear-gradient(90deg,#111d27cc,#111d278c),linear-gradient(0deg,#1b2531,transparent 22%)}

/* --- 3. Flota propia: la foto como imagen, no como fondo --- */
.fleet-layout{margin-top:38px;display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.7fr);gap:22px;align-items:stretch}
.fleet-photo{margin:0;min-width:0;background:#0f1922;border:1px solid #ffffff26;line-height:0}
.fleet-photo img{width:100%;height:auto;display:block}
.fleet-layout .flota{margin-top:0;grid-template-columns:repeat(2,1fr)}
.fleet-immersive .flota>div{background:#1e2937;backdrop-filter:none;border-bottom:1px solid #ffffff1f}
@media(max-width:1000px){
.fleet-layout{grid-template-columns:1fr;gap:20px}
.fleet-photo{max-width:520px}
}
@media(max-width:560px){.fleet-layout .flota{grid-template-columns:1fr}}

/* --- 4. Explicación de cimentación: menos aire ------------- */
.foundation-film-zone{padding-bottom:42px}
.foundation-film-zone .foundation-intro{padding-bottom:0!important}
.foundation-film-zone .foundation-story{padding-top:16px;padding-bottom:0}
.foundation-story .lede{margin-top:0}
.foundation-story .ecko-brand{margin-top:28px!important;padding-bottom:24px;margin-bottom:0}
.foundation-story .mk{margin-block:0}
.foundation-story .ecko-brand p{margin-block:0}

@media(max-width:700px){
.foundation-film-zone{padding-bottom:34px}
.foundation-film-zone .foundation-story{padding-top:12px}
.foundation-story .ecko-brand{margin-top:22px!important;padding-bottom:20px}
.foundation-story .mk{margin-block:14px}
.foundation-story .ecko-brand p{margin-block:14px 0}
}

/* ============================================================
   Ajustes — segunda revisión
   ============================================================ */

/* --- Barra superior más transparente, integrada al contenido --- */
header#hd,header#hd.solid{background:rgba(19,28,39,.7);-webkit-backdrop-filter:blur(20px) saturate(135%);backdrop-filter:blur(20px) saturate(135%);border-bottom:1px solid rgba(255,255,255,.09)}
#menu.on{background:rgba(15,23,32,.96);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}

/* --- Sin flechas en el listado de especialidades ------------ */
.map-routes i{display:none}
.map-heading a{padding-bottom:12px}

/* --- Cimentación: párrafos juntos, sin hueco muerto --------- */
body[data-foundation] .foundation-film-zone .foundation-intro{padding-bottom:0!important}
body[data-foundation] .foundation-film-zone .foundation-intro p:last-of-type{margin-bottom:0!important}
body[data-foundation] .foundation-film-zone .foundation-story{padding-top:14px!important}
body[data-foundation] .foundation-film-zone .foundation-story .lede{margin-top:0!important}
.foundation-story .ecko-brand{margin-top:22px!important;padding-bottom:20px}

/* --- Logo Ecko Terra de margen a margen -------------------- */
.foundation-story .ecko-brand .mk{width:100%;display:block;justify-items:stretch}
.foundation-story .ecko-brand .mk img{width:100%!important;max-width:none!important;height:auto;margin:0}
@media(min-width:701px){.foundation-story .rama{grid-template-columns:minmax(0,440px) 1fr}}

/* --- Entrada suave del texto de cimentación ---------------- */
@keyframes entra-suave{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
body[data-foundation] .foundation-intro .kicker,
body[data-foundation] .foundation-intro h1,
body[data-foundation] .foundation-intro p,
body[data-foundation] .foundation-story .lede,
body[data-foundation] .foundation-story .ecko-brand{animation:entra-suave .85s cubic-bezier(.22,.61,.36,1) both}
body[data-foundation] .foundation-intro .kicker{animation-delay:.06s}
body[data-foundation] .foundation-intro h1{animation-delay:.2s}
body[data-foundation] .foundation-intro p{animation-delay:.36s}
body[data-foundation] .foundation-story .lede{animation-delay:.52s}
body[data-foundation] .foundation-story .ecko-brand{animation-delay:.68s}

@media(max-width:700px){
/* --- Inicio: foto panorámica 3:2 con el texto debajo -------
   home-compact la estiraba a pantalla completa (recorte brutal)
   y le encimaba un degradado casi opaco. Se revierte. --------- */
.home-compact .hero.hero-fullbleed{display:grid;grid-template-columns:1fr;min-height:0;justify-content:stretch;gap:0;padding:0 0 4px}
.home-compact .hero-fullbleed .bg{position:relative;inset:auto;grid-column:1;grid-row:1;width:100%;height:auto;max-height:none;aspect-ratio:3/2;z-index:0}
.home-compact .hero-fullbleed .bg img{object-position:center}
.home-compact .hero-fullbleed .bg::after{background:linear-gradient(0deg,#111d2799,transparent 40%)}
.home-compact .hero-fullbleed .inner{grid-column:1;grid-row:2;margin-top:0;padding:22px var(--gut) 10px}
.home-compact .hero-fullbleed .inner>p:not(.tag){font-size:15px;line-height:1.55}
.home-compact .hero-fullbleed .hero-dock{grid-column:1;grid-row:3;padding:0 var(--gut) 4px}

/* --- Inicio: destacados, foto completa y texto debajo ------ */
.featured-fullbleed{padding-bottom:48px}
#destacados-track>.obra{min-height:0;padding:0 0 30px;justify-content:flex-start}
#destacados-track .ph{position:relative;inset:auto;width:100%;aspect-ratio:3/2;z-index:0;overflow:hidden}
#destacados-track .ph img{opacity:1;object-position:center}
#destacados-track .ph::after{background:linear-gradient(0deg,#1b243070,transparent 35%)}
#destacados-track .txt{padding:22px var(--gut) 0;max-width:none}
#destacados-track h3{font-size:30px}
.featured-fullbleed .car-nav{top:22%}

/* --- Logo Ecko: ancho completo del texto ------------------- */
.foundation-story .ecko-brand .mk img{max-width:none!important;width:100%!important}
}

/* ============================================================
   Divisiones: la foto se veía casi negra bajo el degradado
   ============================================================ */
/* Escritorio: velo más ligero, el texto sigue legible al pie */
.div::after{background:linear-gradient(to top,rgba(15,21,29,.95) 0%,rgba(15,21,29,.8) 26%,rgba(15,21,29,.42) 52%,rgba(15,21,29,.08) 76%,rgba(15,21,29,0) 100%)}

@media(max-width:700px){
/* Móvil: la foto arriba, completa y sin velo; el texto debajo */
.divs .div{min-height:0;display:flex;flex-direction:column;align-items:stretch;background:#1f2a36}
.car-track.divs>.div{min-height:0}
.divs .div>img{position:relative;inset:auto;flex:none;width:100%;height:auto;aspect-ratio:3/2;z-index:0}
.divs .div::after{display:none}
.divs .div .t{padding:20px 22px 26px}
/* Los botones del carrusel, sobre la foto y no encima del título */
#divisiones .car-nav{top:24vw}
}

/* ============================================================
   Sistemas y procedimientos — fichas desplegables
   ============================================================ */
.sistemas{margin-top:32px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px;background:rgba(255,255,255,.14);border-block:1px solid rgba(255,255,255,.14)}
.sistema{background:var(--concreto-2);min-width:0}
.sistema summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:14px;padding:22px 22px 24px;min-height:44px}
.sistema summary::-webkit-details-marker{display:none}
.sistema summary::marker{content:""}
.sistema summary:hover b{color:var(--senal)}
.sistema summary:focus-visible{outline:3px solid var(--senal);outline-offset:-3px}
.sistema .num{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.14em;color:var(--senal);padding-top:4px}
.sistema summary b{font-size:16.5px;font-weight:600;line-height:1.32;color:#fff;transition:color .16s}
.sistema .sig{position:relative;width:15px;height:15px;margin-top:5px}
.sistema .sig::before,.sistema .sig::after{content:"";position:absolute;background:var(--senal);transition:transform .25s ease}
.sistema .sig::before{left:0;right:0;top:6.5px;height:2px}
.sistema .sig::after{top:0;bottom:0;left:6.5px;width:2px}
.sistema[open] .sig::after{transform:scaleY(0)}
.sistema-cuerpo{padding:0 22px 24px 58px}
.sistema-cuerpo p{margin:0;font-size:14.5px;line-height:1.72;color:#C9CFD8;max-width:none}
.sistemas+.nota{margin-top:22px;font-size:13.5px;color:#8B95A2;max-width:70ch}
@media(max-width:820px){
.sistemas{grid-template-columns:1fr}
.sistema summary{padding:20px;gap:12px}
.sistema summary b{font-size:16px}
.sistema-cuerpo{padding:0 20px 22px 50px}
.sistema-cuerpo p{font-size:15px;line-height:1.66}
}

/* Aviso cuando la especialidad no tiene registro fotográfico */
.sin-fichas{margin:0 0 48px;padding:22px 24px;background:#fff;border:1px solid var(--linea);border-left:4px solid var(--senal);border-radius:3px;font-size:15px;line-height:1.7;color:#39495a}
.sin-fichas a{color:#8a6b08;font-weight:600}
.sin-fichas[hidden]{display:none!important}
@media(max-width:640px){.sin-fichas{padding:18px 18px;margin-bottom:36px;font-size:14.5px}}

/* ============================================================
   Escritorio — revisión de septiembre
   ============================================================ */
/* Cursor normal en todo el sitio (se retiró la mira de marca) */
html,body,a,button,summary,label,.tab-btn,.car-nav,.obra,.div,.frente,.chip-photo,.cv-card{cursor:auto}
a,button,summary,label,.tab-btn,.car-nav,.sub-toggle,.burger,.obra,.div,.frente,.chip-photo,.cv-card,[role="button"],.btn,.project-cover,.sistema summary{cursor:pointer}
input,textarea,[contenteditable]{cursor:auto}

/* Fichas del catálogo: la foto completa, sin recortar */
.portfolio-page .journey-card .editorial-card-photo,
.portfolio-page .vertical-carousel .clean-photo,
.portfolio-page .journey-card .project-cover>canvas{object-fit:contain!important;background:#0e1820;height:100%!important;width:100%!important;min-height:0!important;grid-column:1;grid-row:1;align-self:stretch}
.portfolio-page .journey-card .project-cover{min-height:440px!important;align-items:stretch}
.portfolio-page .project-cue{display:inline-flex;align-items:center;min-height:44px;margin-top:18px!important;padding:0 20px!important;border:1px solid #cdb14a!important;border-radius:3px;background:#fdf7e3;color:#7a6210!important;font-weight:600}
.portfolio-page .journey-card:hover .project-cue{background:var(--senal);border-color:var(--senal)!important;color:#1b2430!important}
.vertical-status{display:flex;justify-content:space-between;align-items:baseline;gap:18px;font-size:13.5px;color:#5c6675}
.vertical-status #vertical-count{font-family:'IBM Plex Mono',monospace;color:#8a6b08;white-space:nowrap}
.portfolio-page .vertical-carousel{scroll-snap-type:y mandatory;background:#e9edf0;padding:14px;border-radius:6px;border:1px solid var(--linea)}
.portfolio-page .journey-card{scroll-snap-align:start;background:#fff!important;border:1px solid var(--linea)!important;border-radius:5px;overflow:hidden;box-shadow:0 2px 10px #15233410}

@media(min-width:1001px){
/* Logos del grupo: cuatro por fila, marca contenida y sin huecos enormes */
.logos.company-cards{grid-template-columns:repeat(4,minmax(0,1fr))}
.logos.company-cards figure,.logos figure{aspect-ratio:auto;min-height:170px;padding:18px 16px;gap:10px}
.logos.company-cards img,.logos img{max-height:58px;max-width:78%;width:auto;object-fit:contain}
.logos.company-cards figcaption{font-size:13px;line-height:1.5}

/* Cimentación: una sola columna de texto, todo alineado como en móvil */
.foundation-story .rama.ecko-brand{display:block!important;padding-bottom:26px}
.foundation-story .ecko-brand .mk{width:auto;display:block;justify-items:start;margin:0 0 20px}
.foundation-story .ecko-brand .mk img{width:min(420px,60%)!important;max-width:420px!important;margin:0}
.foundation-film-zone .foundation-intro p,
.foundation-story .lede,
.foundation-story .ecko-brand p{max-width:80ch}
.foundation-video-toggle{bottom:auto;top:96px;right:max(24px,var(--gut))}

/* Titulares y textos con el ancho que da la pantalla */
.lede,.nota,.scope-note,.portfolio-page .trajectory-route>.nota{max-width:82ch}
.catalog-title{font-size:clamp(30px,2.6vw,42px)}
.catalog-heading{font-size:28px}
.portfolio-page .project-info>b{font-size:26px;max-width:26ch}
.portfolio-page .project-location{font-size:16px}
.portfolio-page .project-category{font-size:12.5px}
.sistemas{grid-template-columns:repeat(3,minmax(0,1fr))}
.sistema summary b{font-size:17.5px}
.sistema-cuerpo p{font-size:15px}

/* Divisiones y destacados: tarjetas a la escala de la pantalla */
.car-track.divs>.div{flex:0 0 clamp(330px,26vw,430px);min-height:clamp(380px,30vw,460px)}
#destacados-track>.obra{aspect-ratio:21/9}
#destacados-track h3{font-size:clamp(34px,3.4vw,50px)}
#destacados-track .meta{font-size:13.5px}
}

/* Ficha del catálogo: que ocupe la altura del recuadro, sin hueco muerto */
.portfolio-page .vertical-carousel .journey-card{display:flex;flex-direction:column;min-height:0!important;height:auto!important}
.portfolio-page .journey-card .project-cover{flex:none;height:auto!important}
.portfolio-page .journey-card .project-info{justify-content:center}
@media(min-width:1001px){
.portfolio-page .vertical-carousel{height:min(620px,72vh)}
.portfolio-page .journey-card{margin:0 0 22px!important}
.portfolio-page .journey-card .project-cover{min-height:clamp(380px,44vh,470px)!important}
}

/* responsive-v34.css */
/* v34: one shared geometry for desktop and mobile. */
:root{--page-gutter:clamp(20px,3.4vw,64px)}
body .wrap{width:100%;max-width:none;padding-inline:var(--page-gutter)}
body p,body .lede,body .nota,body .desc,body .viewer-description p,body .native-content p{text-align:justify;text-justify:inter-word;hyphens:auto;text-wrap:pretty}
p.kicker,p.tag,p.loc,.project-category,.hero-pagination p,.hero-caption,.vertical-status,figcaption{text-align:start;text-wrap:wrap}
img{display:block}
section{padding-block:clamp(36px,4vw,64px)}
/* Keep photographs flush with the frame, preserving their proportions. */
.portfolio-page #grp-clientes>.vertical-carousel{width:100%;max-width:none;height:clamp(440px,68vh,720px);min-height:0;margin:20px 0 0!important;padding:0;border:0;border-radius:0;scroll-snap-type:y mandatory}
.portfolio-page .vertical-carousel .journey-card{display:block;height:100%!important;min-height:100%!important;margin:0!important;padding:0!important;border:0!important;border-radius:0;overflow:hidden;scroll-snap-stop:normal}
.portfolio-page .vertical-carousel .journey-card .project-cover{display:grid!important;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)!important;grid-template-rows:minmax(0,1fr);gap:0;padding:0!important;width:100%;height:100%!important;min-height:0!important;align-items:stretch}
.portfolio-page .vertical-carousel .journey-card .editorial-card-photo,
.portfolio-page .vertical-carousel .journey-card .project-cover>canvas{grid-area:1/1!important;display:block;width:100%!important;max-width:100%;height:100%!important;min-height:0!important;margin:0!important;object-fit:cover!important;object-position:center;background:transparent}
.portfolio-page .vertical-carousel .journey-card .project-info{grid-area:1/2;align-self:stretch;justify-content:center;gap:12px;padding:clamp(24px,3.5vw,64px)!important;overflow:auto}
.portfolio-page .vertical-carousel .project-info>b{max-width:none;font-size:clamp(25px,2.5vw,42px);line-height:1.2}
.portfolio-page .vertical-carousel .project-category{margin:0}
.portfolio-page .vertical-carousel .project-location{margin:0;line-height:1.6}
.portfolio-page .vertical-carousel .project-cue{margin-top:12px!important;flex-shrink:0;align-self:flex-start}
.vertical-status{max-width:none;margin-inline:0}
/* Remove nested gutters around horizontal galleries. */
section:has(.car-track)>.wrap{padding-inline:0;max-width:none}
section:has(.car-track)>.wrap>:not(.carousel):not(.car-track){margin-inline:var(--page-gutter)}
section:has(.car-track) .carousel{width:100%;max-width:none;margin-inline:0}
.car-track{width:100%;max-width:none;padding-inline:0;scroll-padding-inline:0;gap:0}
.car-track.divs>.div{flex:0 0 33.333333%;min-width:0;margin:0;border-radius:0;min-height:clamp(400px,38vw,600px)}
.car-track img{object-fit:cover}
.car-nav.prev{left:16px}.car-nav.next{right:16px}
#destacados-track>.obra{flex:0 0 100%;width:100%;margin:0;border-radius:0}
/* Equal logo cells, with ten brands arranged in two complete rows. */
.logos.company-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px}
.logos.company-cards figure{display:grid;grid-template-rows:90px 1fr;align-items:center;justify-items:center;align-content:start;gap:16px;margin:0;padding:22px 14px;min-width:0;min-height:190px;aspect-ratio:auto;border-radius:0}
.logos.company-cards figure img{width:100%!important;max-width:180px!important;height:80px!important;max-height:80px!important;object-fit:contain;object-position:center}
.logos.company-cards figcaption{font-size:13px;line-height:1.5;align-self:start;text-align:center}
/* Video occupies the first viewport; the explanation follows naturally. */
body[data-foundation] .foundation-film-zone{position:relative;isolation:isolate;display:flex;align-items:flex-end;width:100%;height:100svh;min-height:540px;padding:0!important;background-size:cover}
.foundation-film-zone .foundation-background-video{z-index:0;position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover}
body[data-foundation] .foundation-film-zone::before{z-index:1;background:linear-gradient(0deg,rgba(12,23,31,.86),rgba(12,23,31,.2) 40%,transparent 68%)}
body[data-foundation] .foundation-film-zone .foundation-intro{position:relative;z-index:2;min-height:0;width:100%;padding:120px 0 90px!important;background:transparent}
body[data-foundation] .foundation-intro h1{font-size:clamp(42px,6.7vw,100px);max-width:18ch;margin:14px 0 20px}
body[data-foundation] .foundation-intro p{max-width:65ch}
.foundation-film-zone .foundation-video-toggle{z-index:3;top:auto;bottom:20px;right:var(--page-gutter)}
body[data-foundation] .foundation-explanation{padding-block:32px 24px}
body[data-foundation] .foundation-explanation .foundation-story{padding-top:0!important;padding-bottom:0}
body[data-foundation] .foundation-story .lede{max-width:none;margin:0 0 22px!important}
body[data-foundation] .foundation-story .rama.ecko-brand{display:grid!important;grid-template-columns:minmax(200px,.7fr) minmax(0,2fr);gap:clamp(24px,4vw,64px);align-items:center;margin:0!important;padding:0}
body[data-foundation] .foundation-story .ecko-brand .mk{width:100%;margin:0}
body[data-foundation] .foundation-story .ecko-brand .mk img{width:100%!important;max-width:360px!important;height:auto;margin:auto}
body[data-foundation] .foundation-story .ecko-brand p{max-width:none;margin:0!important}
.sistemas{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.sistema summary{min-height:85px}
.fleet-layout{gap:0;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
.fleet-photo{border:0;background:transparent;max-width:none;align-self:start}
.fleet-photo img{width:100%;height:auto}
.fleet-layout .flota{height:100%;gap:0}
@media(min-width:1800px){.car-track.divs>.div{flex-basis:25%}}
@media(max-width:1000px){
.logos.company-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
.car-track.divs>.div{flex-basis:50%}
body[data-foundation] .foundation-story .rama.ecko-brand{grid-template-columns:minmax(180px,.7fr) minmax(0,1.3fr)}
}
@media(max-width:700px){
.portfolio-page #grp-clientes>.vertical-carousel{height:clamp(530px,78svh,740px);min-height:0}
.portfolio-page .vertical-carousel .journey-card .project-cover{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:48% minmax(0,1fr);}
.portfolio-page .vertical-carousel .journey-card .project-info{grid-area:2/1;padding:20px!important;gap:10px;justify-content:center}
.portfolio-page .vertical-carousel .project-info>b{font-size:clamp(21px,5.6vw,30px)}
.portfolio-page .vertical-carousel .project-location{font-size:14px}
.portfolio-page .vertical-carousel .project-cue{font-size:14px;margin-top:4px!important;padding:8px 14px!important}
.vertical-status{font-size:12px;gap:10px}
.car-track.divs>.div{flex-basis:100%;min-height:0}
.car-track.divs>.div>img{height:auto;aspect-ratio:3/2;object-fit:cover}
#destacados-track .ph img{width:100%;height:100%;object-fit:cover}
body[data-foundation] .foundation-film-zone{height:100svh;min-height:560px}
body[data-foundation] .foundation-film-zone .foundation-intro{padding:100px 0 90px!important}
body[data-foundation] .foundation-intro h1{font-size:clamp(40px,10vw,64px)}
body[data-foundation] .foundation-intro p{font-size:15px;line-height:1.6}
body[data-foundation] .foundation-story .rama.ecko-brand{grid-template-columns:1fr;gap:20px}
body[data-foundation] .foundation-story .ecko-brand .mk img{max-width:300px!important}
.sistemas{grid-template-columns:1fr}.sistema summary{min-height:0}
.fleet-layout{grid-template-columns:1fr}.fleet-layout .flota{grid-template-columns:repeat(2,minmax(0,1fr))}
.fleet-immersive .flota>div{padding:20px 14px}.fleet-immersive .flota em{font-size:14px}
.logos.company-cards figure{padding:18px 12px;grid-template-rows:74px 1fr;min-height:178px;gap:12px}
.logos.company-cards figure img{height:68px!important;max-height:68px!important}
}

/* Let the catalogue span the viewport while its headings retain a reading gutter. */
.portfolio-page #grp-clientes>.vertical-carousel{width:calc(100% + 2 * var(--page-gutter));max-width:none;margin-left:calc(-1 * var(--page-gutter))!important;margin-right:calc(-1 * var(--page-gutter))!important}
/* Native project pages keep full images without forced-height letterboxing. */
.native-hero,.native-gallery a{background:transparent}
.native-hero img,.native-hero .clean-photo,.native-gallery img,.native-gallery .clean-photo{width:100%;height:auto;max-height:none;min-height:0;object-fit:cover}
.native-gallery-grid{gap:20px}
.featured-fullbleed .head,.featured-fullbleed .lede,.featured-fullbleed .tipos,.featured-fullbleed>.wrap>.kicker{max-width:none;padding-inline:0}
@media(min-width:701px){#destacados-track>.obra{padding-left:var(--page-gutter);padding-right:var(--page-gutter)}}
.foundation-film-zone .foundation-video-toggle{left:var(--page-gutter);right:auto}
@media(max-width:700px){
.portfolio-page .vertical-carousel .journey-card .project-cover{grid-template-rows:minmax(0,1fr) auto}
.portfolio-page .vertical-carousel .journey-card .project-info{padding:24px 20px!important;max-height:360px}
}
/* Content is immediately readable, including during fast scrolling. */
.rv{opacity:1!important;transform:none!important;transition:none!important}
/* v35: a compact main banner avoids enlarging photos to viewport height. */
@media(min-width:701px){
body.home-compact .hero.hero-fullbleed{min-height:0;height:clamp(510px,43vw,640px);gap:16px;padding:0;justify-content:space-between}
body.home-compact .hero-fullbleed .inner{padding:54px var(--page-gutter) 12px;margin-top:0}
body.home-compact .hero-fullbleed h1{font-size:clamp(40px,4.2vw,62px);max-width:none;line-height:1.08}
body.home-compact .hero-fullbleed .inner>p:not(.tag){font-size:16px;line-height:1.6;max-width:54ch;margin-top:18px}
body.home-compact .hero-fullbleed .tag{margin-bottom:16px}
body.home-compact .hero-fullbleed .cta{margin-top:20px}
body.home-compact .hero-fullbleed .hero-dock{padding:0 var(--page-gutter) 24px}
body.home-compact .hero-fullbleed .bg img{object-fit:cover;object-position:center;transform:none!important}
}
@media(min-width:701px){
body.home-compact .hero.hero-fullbleed{display:flex;flex-direction:column;position:relative}
body.home-compact .hero-fullbleed .bg{position:absolute;inset:0;aspect-ratio:auto;width:100%;height:100%;max-height:none;z-index:0}
body.home-compact .hero-fullbleed .inner,body.home-compact .hero-fullbleed .hero-dock{flex-shrink:0;position:relative;z-index:1}
}

/* v36 · Banner principal: la fotografía ocupa su propio panel y se ve limpia.
   Antes la foto vivía detrás del texto, atenuada y con dos degradados encima,
   así que en escritorio prácticamente no se distinguía la obra. */
@media(min-width:901px){
body.home-compact .hero.hero-fullbleed{
  display:grid!important;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  grid-template-rows:minmax(0,1fr) auto;
  height:clamp(468px,38vw,566px);
  min-height:0;gap:0;padding:0;background:#111d27;overflow:hidden}
body.home-compact .hero-fullbleed .bg{
  position:relative;inset:auto;grid-column:2;grid-row:1/-1;
  width:100%;height:100%;min-height:0;max-height:none;aspect-ratio:auto;z-index:0;overflow:hidden}
body.home-compact .hero-fullbleed .bg img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center;opacity:0;transform:none!important}
body.home-compact .hero-fullbleed .bg img.on{opacity:1}
body.home-compact .hero-fullbleed .bg::after{
  background:linear-gradient(90deg,#111d27 0%,rgba(17,29,39,.55) 7%,rgba(17,29,39,.12) 18%,transparent 34%)}
body.home-compact .hero-fullbleed .inner{
  grid-column:1;grid-row:1;align-self:center;z-index:1;
  width:100%;max-width:none;
  padding:clamp(20px,2.4vw,34px) clamp(26px,2.6vw,44px) 0 var(--page-gutter)}
body.home-compact .hero-fullbleed h1{font-size:clamp(38px,3.7vw,56px);line-height:1.06;max-width:none}
body.home-compact .hero-fullbleed .tag{margin-bottom:14px}
body.home-compact .hero-fullbleed .inner>p:not(.tag){font-size:15.5px;line-height:1.62;max-width:46ch;margin-top:16px}
body.home-compact .hero-fullbleed .cta{margin-top:20px}
body.home-compact .hero-fullbleed .hero-dock{
  grid-column:1;grid-row:2;z-index:1;
  grid-template-columns:minmax(0,1fr) auto;gap:10px 18px;
  padding:0 clamp(26px,2.6vw,44px) clamp(20px,2vw,28px) var(--page-gutter)}
body.home-compact .hero-fullbleed .hero-pagination{gap:10px}
body.home-compact .hero-fullbleed .hero-pagination button{font-size:12px;gap:8px;min-height:34px}
body.home-compact .hero-fullbleed .hero-caption{font-size:12.5px;line-height:1.55}
body.home-compact .hero-fullbleed .hero-controls{margin-right:0!important;gap:6px}
body.home-compact .hero-fullbleed .hero-controls button{width:38px;height:38px;padding:8px}
body.home-compact .hero-fullbleed .hero-controls svg{width:19px;height:19px}
body.home-compact .hero-fullbleed .hero-count{font-size:12px;margin-right:10px}
}
/* 701–900 px: se conserva la foto de fondo, pero sin el velo que la apagaba. */
@media(min-width:701px) and (max-width:900px){
body.home-compact .hero-fullbleed .bg img.on{opacity:1}
body.home-compact .hero-fullbleed .bg::after{
  background:linear-gradient(90deg,rgba(17,29,39,.9) 0%,rgba(17,29,39,.72) 38%,rgba(17,29,39,.18) 62%,transparent 78%),linear-gradient(0deg,rgba(17,29,39,.92) 0%,rgba(17,29,39,.3) 16%,transparent 34%)}
}

/* v36 · Marca de agua A|CP: la filigrana sube y se acota en altura para que
   las cifras queden por debajo y dejen de taparla en escritorio. */
@media(min-width:701px){
section.civil-photo::before{
  background-position:93% 20%;
  background-size:auto clamp(190px,23vw,310px)}
section.civil-photo .mini{margin-top:clamp(56px,6vw,86px)}
section.civil-photo .mini div{border-top-color:var(--senal)}
}

/* v36 · Logos del grupo: la columna interna de cada tarjeta ocupa todo el ancho
   de la celda, así el logotipo y su pie quedan centrados y no pegados al margen. */
.logos.company-cards figure{grid-template-columns:minmax(0,1fr);justify-items:center;justify-content:center;text-align:center}
.logos.company-cards figure img{width:auto!important;max-width:min(100%,190px)!important;margin-inline:auto}
.logos.company-cards figcaption{width:100%;text-align:center}

/* v36 · Flota propia con el mismo peso visual que los carruseles de división:
   a todo lo ancho, fotografía a sangre y cifras grandes y aireadas. */
@media(min-width:901px){
.fleet-immersive{padding:clamp(40px,4vw,64px) 0 0}
.fleet-immersive>.kicker{margin:0 0 clamp(20px,2.2vw,30px);padding-inline:var(--page-gutter);font-size:13px}
.fleet-layout{margin-top:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.22fr);gap:0;
  align-items:stretch;height:clamp(440px,41vw,600px)}
.fleet-photo{position:relative;margin:0;align-self:stretch;height:100%;min-height:0;overflow:hidden;border:0;background:#0f1922}
.fleet-photo img{position:absolute;inset:0;width:100%;height:100%;max-width:none;min-height:0;object-fit:cover;object-position:center}
.fleet-layout .flota{margin:0;height:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  grid-auto-rows:1fr;gap:1px;background:#ffffff1f}
.fleet-immersive .flota>div{display:flex;flex-direction:column;justify-content:center;
  padding:clamp(26px,2.6vw,44px) clamp(24px,2.4vw,40px);border-bottom:0;background:#16222dcc}
.fleet-immersive .flota>div:nth-child(even){padding-right:max(var(--page-gutter),clamp(24px,2.4vw,40px))}
.fleet-immersive .flota b{font-size:clamp(44px,4.4vw,68px);line-height:.95}
.fleet-immersive .flota span{font-size:11.5px;letter-spacing:.16em;margin-top:14px}
.fleet-immersive .flota em{font-size:clamp(14.5px,1.1vw,16.5px);line-height:1.65;margin-top:16px}
}

/* v37 · El mismo banner dividido de la portada en La empresa y Obras y proyectos:
   texto en panel sólido a la izquierda, fotografía limpia en su propio panel. */
@media(min-width:901px){
.hero.hero-fullbleed.compact-banner{
  display:grid!important;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  grid-template-rows:minmax(0,1fr) auto;
  height:clamp(468px,38vw,566px);
  min-height:0!important;max-height:none;gap:0;padding:0;
  background:#111d27;overflow:hidden;position:relative}
.compact-banner .bg{
  position:relative!important;inset:auto!important;grid-column:2;grid-row:1/-1;
  width:100%;height:100%!important;min-height:0!important;max-height:none;
  aspect-ratio:auto!important;z-index:0;overflow:hidden}
.compact-banner .bg img{
  position:absolute;inset:0;width:100%;height:100%;max-height:none;
  object-fit:cover;object-position:center;opacity:0;transform:none!important}
.compact-banner .bg img.on{opacity:1}
.compact-banner .bg::after{
  background:linear-gradient(90deg,#111d27 0%,rgba(17,29,39,.55) 7%,rgba(17,29,39,.12) 18%,transparent 34%)}
.compact-banner .banner-expand{
  grid-column:2;grid-row:1/-1;position:relative;inset:auto;width:100%;height:100%;z-index:2}
.compact-banner .inner{
  grid-column:1;grid-row:1;align-self:center;z-index:1;width:100%;max-width:none;
  padding:clamp(20px,2.4vw,34px) clamp(26px,2.6vw,44px) 0 var(--page-gutter)}
.compact-banner h1{font-size:clamp(34px,3.3vw,52px);line-height:1.07;max-width:none;margin:0}
.compact-banner .inner .kicker,.compact-banner .inner .tag{margin:0 0 14px;font-size:13px;letter-spacing:.09em}
.compact-banner .inner>p:not(.kicker):not(.tag){
  font-size:15.5px;line-height:1.62;max-width:46ch;margin:16px 0 0}
.compact-banner .inner .btn{display:inline-flex;margin-top:20px;font-size:13px;min-height:48px;padding:13px 20px}
.compact-banner .hero-dock{
  grid-column:1;grid-row:2;z-index:1;
  grid-template-columns:minmax(0,1fr) auto;gap:10px 18px;
  padding:0 clamp(26px,2.6vw,44px) clamp(20px,2vw,28px) var(--page-gutter)}
.compact-banner .hero-pagination{gap:10px}
.compact-banner .hero-pagination button{font-size:12px;gap:8px;min-height:34px}
.compact-banner .hero-caption{font-size:12.5px;line-height:1.55;margin:0}
.compact-banner .hero-controls{margin-right:0!important;gap:6px}
.compact-banner .hero-controls button{width:38px;height:38px;padding:8px}
.compact-banner .hero-controls svg{width:19px;height:19px}
.compact-banner .hero-count{font-size:12px;margin-right:10px}
}
/* Móvil y tablet: se conserva la foto arriba y el texto debajo, con el mando al pie. */
@media(max-width:900px){
.compact-banner .hero-dock{padding:16px var(--page-gutter) 22px;gap:10px}
.compact-banner .hero-caption{font-size:12.5px;margin:0}
}

/* v40 · Banda de cimentación. El video es vertical, así que antes se recortaba
   (a todo el ancho) o imponía una altura enorme (con panel propio). Aquí la altura
   de la banda manda y el ancho del panel se deriva de ella, topado en 660 px: ese
   es el límite real del material —el original aporta 720 px de detalle— así que
   más allá sólo se vería blando. El fondo deja ver la propia foto desenfocada y
   la filigrana A|CP, en lugar del negro plano. */
@media(min-width:901px){
body[data-foundation] .foundation-film-zone{
  display:grid;align-items:stretch;
  grid-template-columns:minmax(0,1fr) clamp(430px,36.3vw,660px);
  position:relative;width:100%;height:clamp(520px,44vw,800px)!important;min-height:0!important;
  padding:0!important;
  background:
    linear-gradient(100deg,rgba(10,19,26,.95) 0%,rgba(14,26,35,.87) 46%,rgba(19,33,44,.7) 100%),
    url('/img/cimentacion-fondo-v7.jpg') center/cover no-repeat,
    #0c171f!important;
  border-block:1px solid rgba(255,255,255,.08)}
.foundation-film-zone .foundation-background-video{
  position:relative!important;inset:auto!important;grid-column:2;grid-row:1;
  display:block;width:100%!important;height:100%!important;max-width:none;
  aspect-ratio:auto;object-fit:cover;object-position:center}
body[data-foundation] .foundation-film-zone::before{
  content:"";position:relative;inset:auto;grid-column:2;grid-row:1;z-index:2;
  align-self:stretch;justify-self:stretch;width:100%;height:100%;pointer-events:none;
  background:linear-gradient(90deg,rgba(12,23,31,.96) 0%,rgba(12,23,31,.5) 7%,rgba(12,23,31,.1) 20%,transparent 36%)}
body[data-foundation] .foundation-film-zone .foundation-intro{
  grid-column:1;grid-row:1;align-self:center;z-index:2;position:relative;isolation:isolate;
  width:100%;min-height:0;padding:0!important;background:transparent}
body[data-foundation] .foundation-film-zone .foundation-intro>.wrap{
  padding:0 clamp(28px,3vw,56px) 0 var(--page-gutter)}
/* Filigrana A|CP detrás del texto, como en la portada. */
body[data-foundation] .foundation-film-zone .foundation-intro::after{
  content:"";position:absolute;z-index:-1;pointer-events:none;
  right:clamp(10px,1.6vw,40px);top:54%;transform:translateY(-50%);
  width:min(50%,470px);aspect-ratio:361/153;opacity:.085;
  background:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjY3IDEzNSAzNjEgMTUzIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyLjA4Nzk0NTk5ODEgNS40MTczMDQ3MjUyKSBzY2FsZSgwLjMyNzg3ODQ5NTY2MSkiPjxwYXRoIGZpbGw9IiNlOWYwZjUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTIzMC4wMDAsNjI0LjUwMCBMMjMwLjAwMCw0MzAuMDAwIDM1Ni41MDAsNDMwLjAwMCBDNDI2LjA3NSw0MzAuMDAwIDQ4My4wMDAsNDMwLjE5MyA0ODMuMDAwLDQzMC40MzAgQzQ4My4wMDAsNDMwLjY2NiA0NzMuODU0LDQ0NC43MjkgNDYyLjY3NSw0NjEuNjgwIEM0MzAuNzgwLDUxMC4wNDQgMzg5LjI3Miw1NzQuMTg1IDM1MC41MTQsNjM1LjAwMCBDMzQwLjE3NCw2NTEuMjI1IDMyNi45MDEsNjcxLjkyNSAzMjEuMDE5LDY4MS4wMDAgQzMxNS4xMzcsNjkwLjA3NSAzMDMuNjUxLDcwNy44NTAgMjk1LjQ5NCw3MjAuNTAwIEMyODcuMzM3LDczMy4xNTAgMjczLjYyMCw3NTQuMzAwIDI2NS4wMTEsNzY3LjUwMCBDMjU2LjQwMiw3ODAuNzAwIDI0NS40MTQsNzk3LjY4OCAyNDAuNTkyLDgwNS4yNTAgQzIzNS43NzEsODEyLjgxMiAyMzEuNDE2LDgxOS4wMDAgMjMwLjkxMyw4MTkuMDAwIEMyMzAuMzY1LDgxOS4wMDAgMjMwLjAwMCw3NDEuMjA0IDIzMC4wMDAsNjI0LjUwMCBaIE00MDMuMDAwLDczMy4zMzQgQzQwMy4wMDAsNzMyLjk2NyA0MTkuNzYyLDcwNy41NTQgNDQwLjI1MCw2NzYuODU5IEM0NjAuNzM4LDY0Ni4xNjQgNDc3Ljk1MCw2MjEuMTg5IDQ3OC41MDAsNjIxLjM1OSBDNDc5LjA1MCw2MjEuNTI4IDQ4Mi4wMDksNjI1LjY3OSA0ODUuMDc1LDYzMC41ODMgQzQ4OC4xNDIsNjM1LjQ4NyA1MDMuNTgxLDY2MC4xMjEgNTE5LjM4NSw2ODUuMzI1IEM1MzUuMTkwLDcxMC41MjggNTQ4LjM2Niw3MzEuNzkxIDU0OC42NjcsNzMyLjU3NSBDNTQ5LjEzNyw3MzMuODAwIDUzOC45NzYsNzM0LjAwMCA0NzYuMTA3LDczNC4wMDAgQzQzNS44OTgsNzM0LjAwMCA0MDMuMDAwLDczMy43MDAgNDAzLjAwMCw3MzMuMzM0IFogTTYxNy43MTksNjUzLjI1MCBDNjEwLjYxMCw2NDAuNzI3IDU5OS44NzMsNjIyLjQyNSA1ODEuNDk0LDU5MS41MDAgQzU3Mi4wMTUsNTc1LjU1MCA1NTguNzQwLDU1My4wNTAgNTUxLjk5NSw1NDEuNTAwIEM1NDUuMjUwLDUyOS45NTAgNTI3LjYwNCw1MDAuMzI1IDUxMi43ODMsNDc1LjY2NiBDNDk3Ljk2MSw0NTEuMDA3IDQ4Ni4wMjQsNDMwLjY0MyA0ODYuMjU1LDQzMC40MTIgQzQ4Ni40ODYsNDMwLjE4MCA1MzYuNTg2LDQzMC4xMDYgNTk3LjU4OCw0MzAuMjQ2IEw3MDguNTAwLDQzMC41MDAgNzAyLjAwMCw0MzMuNDU0IEM2ODIuNjU3LDQ0Mi4yNDYgNjcxLjQyOCw0NDkuMjY5IDY2MC4wNjIsNDU5LjY4NCBDNjQxLjI3Niw0NzYuOTAwIDYyOC42MjAsNTAxLjkzMSA2MjYuMDUzLDUyNi45NTMgQzYyNS40MzgsNTMyLjk0OCA2MjUuMDAwLDU2Mi45MzkgNjI1LjAwMCw1OTkuMTA2IEM2MjUuMDAwLDY1Mi4zMTkgNjI0Ljc5OCw2NjEuMDAwIDYyMy41NjAsNjYxLjAwMCBDNjIyLjc2Nyw2NjEuMDAwIDYyMC4xMzksNjU3LjUxMyA2MTcuNzE5LDY1My4yNTAgWiIvPjxwYXRoIGZpbGw9IiNlOWYwZjUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTc4OS44NjEsODI0LjA4OSBMNzg3LjUwMCw4MjIuMTc4IDc4Ny4wMDAsNzc2LjgzOSBMNzg2LjUwMCw3MzEuNTAwIDc2Ni4wMDAsNzMxLjAwMCBDNzQ1LjYxNCw3MzAuNTAzIDc0NS40NjQsNzMwLjQ4MyA3MzkuMDAwLDcyNy40MDUgQzczNS40MjUsNzI1LjcwMyA3MzAuNTE4LDcyMi4zMjggNzI4LjA5NSw3MTkuOTA1IEM3MjUuNjcyLDcxNy40ODIgNzIyLjI5Nyw3MTIuNTc1IDcyMC41OTUsNzA5LjAwMCBMNzE3LjUwMCw3MDIuNTAwIDcxNy41MDAsNjMyLjAwMCBDNzE3LjUwMCw1NjIuMzM1IDcxNy41MjUsNTYxLjQzMyA3MTkuNjQ1LDU1NS44MzIgQzcyNC4wNzAsNTQ0LjE0MyA3MzIuNTUwLDUzNS4zNDQgNzQzLjc0OCw1MzAuODIzIEw3NDkuNTAwLDUyOC41MDAgODI3LjUwMCw1MjguMDAwIEw5MDUuNTAwLDUyNy41MDAgOTA2LjAwMCw0ODEuMjc3IEw5MDYuNTAwLDQzNS4wNTQgOTA4Ljc3NSw0MzIuNzc3IEM5MTAuODMyLDQzMC43MTggOTEyLjE1OCw0MzAuNDY4IDkyMi42MDYsNDMwLjE2MiBDOTMwLjM0NCw0MjkuOTM2IDkzNS4xNjYsNDMwLjI0MCA5MzcuMjAzLDQzMS4wODQgQzk0Mi44ODUsNDMzLjQzOCA5NDMuMDAwLDQzNC40NzUgOTQzLjAwMCw0ODMuNDU0IEw5NDMuMDAwLDUyNy45NzMgMTA0Ni43NTAsNTI4LjIzNiBMMTE1MC41MDAsNTI4LjUwMCAxMTU2LjE1NSw1MzEuMTUxIEMxMTU5LjI2Niw1MzIuNjEwIDExNjMuNzIyLDUzNS43NjAgMTE2Ni4wNTgsNTM4LjE1MSBDMTE2OC4zOTQsNTQwLjU0MyAxMTcxLjY5OSw1NDUuNDI1IDExNzMuNDAzLDU0OS4wMDAgTDExNzYuNTAwLDU1NS41MDAgMTE3Ni44MzgsNTc1LjY5MSBDMTE3Ny4xMTcsNTkyLjMzNyAxMTc2Ljg4Miw1OTYuOTAyIDExNzUuNTAwLDYwMS42OTEgQzExNzEuOTY0LDYxMy45NDMgMTE2NS41MDUsNjIyLjA3MSAxMTU0Ljg0MCw2MjcuNjg3IEwxMTQ5LjUwMCw2MzAuNTAwIDEwMjcuNzUwLDYzMC43NjYgTDkwNi4wMDAsNjMxLjAzMSA5MDYuMDAwLDY4MS4wMDUgTDkwNi4wMDAsNzMwLjk3OCA4NjMuNzUwLDczMS4yMzkgTDgyMS41MDAsNzMxLjUwMCA4MjEuMDAwLDc3Ni44MzkgTDgyMC41MDAsODIyLjE3OCA4MTguMTM5LDgyNC4wODkgQzgxNi4xMTQsODI1LjcyOSA4MTQuMTA1LDgyNi4wMDAgODA0LjAwMCw4MjYuMDAwIEM3OTMuODk1LDgyNi4wMDAgNzkxLjg4Niw4MjUuNzI5IDc4OS44NjEsODI0LjA4OSBaIE05MTEuMjEwLDgyMi40NDYgQzkwOS41MzEsODIxLjc0MCA5MDcuNjY3LDgyMC4yNDcgOTA3LjA2OCw4MTkuMTI3IEM5MDYuMzE4LDgxNy43MjYgOTA2LjA2MCw4MDMuNTkwIDkwNi4yMzksNzczLjc5NiBMOTA2LjUwMCw3MzAuNTAwIDEwMzkuMDAwLDcyOS45NjIgQzExNzEuNDAwLDcyOS40MjQgMTE3MS41MDYsNzI5LjQyMiAxMTc5LjAzNyw3MjcuMjQzIEMxMjAxLjQ4Nyw3MjAuNzQ4IDEyMjAuMDgyLDcwOS4zNTQgMTIzNi4xNjIsNjkyLjIzOSBDMTI0NS4wNTMsNjgyLjc3NiAxMjUwLjAyMiw2NzUuMjU5IDEyNTcuMjA0LDY2MC40MDAgQzEyNjAuNTAxLDY1My41ODAgMTI2My41NDksNjQ4LjAwMCAxMjYzLjk3Nyw2NDguMDAwIEMxMjY2Ljg4NSw2NDguMDAwIDEyNjcuMDA4LDY1MS45MjQgMTI2Ni43NTYsNzM3LjA5NCBMMTI2Ni41MDAsODIzLjQ3MCAxMDkwLjM4MSw4MjMuNjAwIEM5NDkuMDU4LDgyMy43MDQgOTEzLjY1OSw4MjMuNDc2IDkxMS4yMTAsODIyLjQ0NiBaIE0xMjYxLjM2OSw1MTQuNzk4IEMxMjYwLjg0Myw1MTQuMDg0IDEyNTkuNTc2LDUxMS4wMjUgMTI1OC41NTQsNTA4LjAwMCBDMTI1Ni4xOTIsNTAxLjAwOSAxMjUzLjAxNyw0OTQuNTczIDEyNDYuOTYwLDQ4NC41MDAgQzEyMzQuMzg1LDQ2My41ODQgMTIxMi44NzgsNDQ1LjIwNSAxMTkwLjI0Nyw0MzYuMDM4IEMxMTg2LjQyNCw0MzQuNDg5IDExODMuNTAwLDQzMi42OTcgMTE4My41MDAsNDMxLjkwMiBDMTE4My41MDAsNDMwLjcyMiAxMTkwLjA2MCw0MzAuNTAwIDEyMjUuMDAwLDQzMC41MDAgTDEyNjYuNTAwLDQzMC41MDAgMTI2Ni41MDAsNDczLjAwMCBDMTI2Ni41MDAsNTE1LjMzMiAxMjY2LjQ5Miw1MTUuNTAxIDEyNjQuNDEyLDUxNS43OTggQzEyNjMuMjY0LDUxNS45NjIgMTI2MS44OTUsNTE1LjUxMiAxMjYxLjM2OSw1MTQuNzk4IFoiLz48L2c+PGcgaWQ9Im1hcmNhLXJlZ2lzdHJhZGEiIGFyaWEtbGFiZWw9Ik1hcmNhIHJlZ2lzdHJhZGEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQyMSAxNDApIHNjYWxlKDAuMikiIGZpbGw9IiNlOWYwZjUiPgogPGNpcmNsZSByPSIxOSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZTlmMGY1IiBzdHJva2Utd2lkdGg9IjIuNCIvPgogPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNLTcuNSAxMC41Vi0xMUgxQzYuNS0xMSA5LTguNCA5LTQuN0M5LTEuNSA3LjIuOCAzLjggMS42TDkuOCAxMC41SDUuN0wuMiAyLjFILTRWMTAuNVpNLTQtOFYtLjlILjhDNC4yLS45IDUuNS0yLjEgNS41LTQuNkM1LjUtNi44IDQuMi04IC44LThaIi8+CjwvZz48L3N2Zz4K') no-repeat center/contain}
body[data-foundation] .foundation-intro h1{font-size:clamp(44px,5.4vw,88px);max-width:12ch;margin:16px 0 22px;line-height:1.04}
body[data-foundation] .foundation-intro p{max-width:64ch;font-size:clamp(16px,1.2vw,19px);line-height:1.68;margin:0}
body[data-foundation] .foundation-film-zone .foundation-intro .kicker{
  display:inline-flex;align-items:center;gap:14px;font-size:clamp(12px,.95vw,14px);margin:0}
body[data-foundation] .foundation-film-zone .foundation-intro .kicker::before{
  content:"";width:clamp(28px,3vw,54px);height:2px;background:var(--senal);flex:none}
.foundation-film-zone .foundation-video-toggle{
  position:absolute;left:var(--page-gutter);right:auto;top:auto;
  bottom:clamp(24px,2.6vw,40px);z-index:3;margin:0}
}
/* v43 · Móvil y tablet: el video vuelve a ser portada a pantalla completa,
   con el texto encima (reglas base de arriba: 100svh, object-fit:cover y velo). */

/* v39 · Sistemas y procedimientos: al abrir una ficha, su vecina de fila quedaba
   corta y se veía el fondo de la rejilla como un recuadro vacío. La ficha abierta
   pasa a ocupar la fila completa —igual que la trayectoria y el catálogo— y las
   celdas vuelven a igualar altura, así no queda fondo expuesto. */
.sistemas{align-items:stretch;background:transparent;gap:1px;border-block:0}
.sistema{display:flex;flex-direction:column;box-shadow:0 0 0 1px rgba(255,255,255,.14)}
.sistema[open]{grid-column:1/-1}

/* v42 · Flota propia alineada con Sistemas y procedimientos. El bloque deja de
   ir a sangre: foto y cifras toman los mismos márgenes que la rejilla de arriba,
   y sólo el fondo de la banda sigue a todo lo ancho. */
.fleet-immersive{
  width:auto;margin-left:0;margin-right:0;padding-inline:0;overflow:visible;
  background:#1a2430;box-shadow:0 0 0 100vmax #1a2430;clip-path:inset(0 -100vmax)}
.fleet-immersive::before{display:none}
.fleet-immersive>.kicker{padding-inline:0}
/* Escritorio: la foto conserva la altura del bloque y su ancho sale de la
   proporción del original (1320 × 1618), así se ve completa, sin recorte. */
@media(min-width:901px){
.fleet-immersive{--fleet-h:clamp(440px,41vw,600px)}
.fleet-layout{
  grid-template-columns:calc(var(--fleet-h) * 1320 / 1618) minmax(0,1fr);
  height:auto;min-height:var(--fleet-h)}
.fleet-photo{height:var(--fleet-h);align-self:start}
.fleet-photo img{object-fit:contain;object-position:center}
.fleet-immersive .flota>div:nth-child(even){padding-right:clamp(24px,2.4vw,40px)}
}
/* Escritorio angosto: las fichas se compactan para caber en la altura de la foto. */
@media(min-width:901px) and (max-width:1180px){
.fleet-immersive .flota>div{padding-block:18px}
.fleet-immersive .flota span{margin-top:10px}
.fleet-immersive .flota em{margin-top:10px;line-height:1.55}
}

/* v43 · Las etiquetas no se parten con guion ("Ecko Te-rra"). */
.kicker{hyphens:none;-webkit-hyphens:none}
/* v48 · Justificado también en las fichas de flota y en las listas de datos. */
body .flota em,body dd{text-align:justify;text-justify:inter-word;hyphens:auto;-webkit-hyphens:auto;text-wrap:pretty}

/* v46 · Portada de cimentación: texto | Ecko Terra | video.
   El bloque Ecko Terra vive dentro de .foundation-film-zone y queda en logo
   + un solo párrafo. El control del video pasa a flotar sobre el propio video. */

/* Control del video: píldora con icono (el icono sale de aria-pressed). */
.foundation-film-zone .foundation-video-toggle{
  display:inline-flex;align-items:center;gap:10px;min-height:40px;padding:0 16px 0 14px;
  border:1px solid rgba(255,255,255,.3);border-radius:999px;
  background:rgba(10,19,26,.55);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  color:#fff;font:500 12.5px/1 'Poppins','Poppins Respaldo',system-ui,sans-serif;letter-spacing:.01em;
  cursor:pointer;transition:background-color .2s,border-color .2s}
.foundation-film-zone .foundation-video-toggle::before{
  content:"";flex:none;width:10px;height:12px;
  background:linear-gradient(90deg,currentColor 0 35%,transparent 35% 65%,currentColor 65%)}
.foundation-film-zone .foundation-video-toggle[aria-pressed="true"]::before{
  width:11px;background:currentColor;clip-path:polygon(0 0,100% 50%,0 100%)}
.foundation-film-zone .foundation-video-toggle:hover{background:rgba(10,19,26,.8);border-color:var(--senal)}
.foundation-film-zone .foundation-video-toggle:focus-visible{outline:2px solid var(--senal);outline-offset:3px}

/* Bloque Ecko Terra: logo arriba, párrafo debajo. */
body[data-foundation] .foundation-film-zone .foundation-story .rama.ecko-brand{
  display:block!important;margin:0!important;padding:0!important;border:0}
body[data-foundation] .foundation-film-zone .foundation-story .ecko-brand .mk{width:auto;margin:0!important}
body[data-foundation] .foundation-film-zone .foundation-story .ecko-brand .mk img{
  display:block;width:min(100%,520px)!important;max-width:520px!important;height:auto;margin:0!important}
body[data-foundation] .foundation-film-zone .foundation-story .lede{
  margin:0!important;max-width:44ch;
  font-size:clamp(15.5px,1.1vw,18px);line-height:1.65;color:#dbe2e8}
body[data-foundation] .foundation-film-zone .foundation-story .ecko-brand{animation-delay:.52s}
body[data-foundation] .foundation-film-zone .foundation-story .lede{animation-delay:.68s}

/* Móvil y tablet: fila 1 = video a pantalla completa con el texto encima;
   fila 2 = Ecko Terra. Los elementos absolutos se anclan a la fila 1. */
@media(max-width:900px){
body[data-foundation] .foundation-film-zone{
  display:grid;grid-template-columns:minmax(0,1fr);
  grid-template-rows:max(540px,100svh) auto;align-items:end;
  height:auto!important;min-height:0!important}
.foundation-film-zone .foundation-background-video,
body[data-foundation] .foundation-film-zone::before,
.foundation-film-zone .foundation-video-toggle{grid-column:1/2;grid-row:1/2}
body[data-foundation] .foundation-film-zone .foundation-intro{grid-column:1;grid-row:1;align-self:end}
.foundation-film-zone .foundation-video-toggle{
  position:absolute;top:auto;right:auto;bottom:22px;left:var(--page-gutter);z-index:3;margin:0}
.foundation-film-zone .foundation-explanation{
  grid-column:1;grid-row:2;position:relative;z-index:2;padding:40px 0 44px!important}
body[data-foundation] .foundation-film-zone .foundation-story{
  display:flex;flex-direction:column;gap:22px;padding-top:0!important}
body[data-foundation] .foundation-film-zone .foundation-story .ecko-brand .mk img{width:min(100%,400px)!important}
body[data-foundation] .foundation-film-zone .foundation-story .lede{max-width:52ch}
}
@media(max-width:700px){
body[data-foundation] .foundation-film-zone{grid-template-rows:max(560px,100svh) auto}
body[data-foundation] .foundation-film-zone .foundation-story .lede{font-size:16px}
}

/* Escritorio. */
@media(min-width:901px){
body[data-foundation] .foundation-film-zone{
  --film-w:clamp(420px,32vw,620px);--hd-h:75px;
  --intro-pad:clamp(24px,2.6vw,56px);--h1-size:clamp(42px,3.8vw,76px);--wm-gap:clamp(14px,1.2vw,24px);
  grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr) var(--film-w);
  grid-template-rows:minmax(0,1fr);
  height:auto!important;min-height:clamp(580px,44vw,800px)!important}
body[data-foundation] .foundation-film-zone::before{display:none}
.foundation-film-zone .foundation-background-video{grid-column:3;grid-row:1/-1}
body[data-foundation] .foundation-film-zone .foundation-intro{
  grid-column:1;grid-row:1;align-self:center;
  padding:calc(var(--hd-h) + 48px) 0 56px!important}
body[data-foundation] .foundation-film-zone .foundation-intro>.wrap{
  padding:0 var(--intro-pad) 0 var(--page-gutter)}
body[data-foundation] .foundation-intro h1{font-size:var(--h1-size);margin:18px 0 22px}
body[data-foundation] .foundation-film-zone .foundation-intro p:not(.kicker){max-width:48ch}
/* Filigrana A|CP detrás del título, completa y con aire (sube más de lo que
   baja, sin deformarse): arranca a --wm-gap
   del borde de la pantalla y nunca llega a la línea del bloque Ecko Terra.
   La .wrap es rejilla para que la filigrana se centre en la fila del título. */
body[data-foundation] .foundation-film-zone .foundation-intro::after{content:none}
body[data-foundation] .foundation-film-zone .foundation-intro>.wrap{
  display:grid;grid-template-columns:minmax(0,1fr);position:relative}
body[data-foundation] .foundation-film-zone .foundation-intro>.wrap::before{
  content:"";position:absolute;z-index:-1;pointer-events:none;
  grid-column:1/2;grid-row:2/3;
  left:calc(var(--wm-gap) - var(--page-gutter));top:50%;transform:translateY(-62%);
  width:min(calc(100% + var(--page-gutter) + var(--intro-pad) - 2 * var(--wm-gap)),calc(var(--h1-size) * 10));
  aspect-ratio:361/153;opacity:.085;
  background:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjY3IDEzNSAzNjEgMTUzIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyLjA4Nzk0NTk5ODEgNS40MTczMDQ3MjUyKSBzY2FsZSgwLjMyNzg3ODQ5NTY2MSkiPjxwYXRoIGZpbGw9IiNlOWYwZjUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTIzMC4wMDAsNjI0LjUwMCBMMjMwLjAwMCw0MzAuMDAwIDM1Ni41MDAsNDMwLjAwMCBDNDI2LjA3NSw0MzAuMDAwIDQ4My4wMDAsNDMwLjE5MyA0ODMuMDAwLDQzMC40MzAgQzQ4My4wMDAsNDMwLjY2NiA0NzMuODU0LDQ0NC43MjkgNDYyLjY3NSw0NjEuNjgwIEM0MzAuNzgwLDUxMC4wNDQgMzg5LjI3Miw1NzQuMTg1IDM1MC41MTQsNjM1LjAwMCBDMzQwLjE3NCw2NTEuMjI1IDMyNi45MDEsNjcxLjkyNSAzMjEuMDE5LDY4MS4wMDAgQzMxNS4xMzcsNjkwLjA3NSAzMDMuNjUxLDcwNy44NTAgMjk1LjQ5NCw3MjAuNTAwIEMyODcuMzM3LDczMy4xNTAgMjczLjYyMCw3NTQuMzAwIDI2NS4wMTEsNzY3LjUwMCBDMjU2LjQwMiw3ODAuNzAwIDI0NS40MTQsNzk3LjY4OCAyNDAuNTkyLDgwNS4yNTAgQzIzNS43NzEsODEyLjgxMiAyMzEuNDE2LDgxOS4wMDAgMjMwLjkxMyw4MTkuMDAwIEMyMzAuMzY1LDgxOS4wMDAgMjMwLjAwMCw3NDEuMjA0IDIzMC4wMDAsNjI0LjUwMCBaIE00MDMuMDAwLDczMy4zMzQgQzQwMy4wMDAsNzMyLjk2NyA0MTkuNzYyLDcwNy41NTQgNDQwLjI1MCw2NzYuODU5IEM0NjAuNzM4LDY0Ni4xNjQgNDc3Ljk1MCw2MjEuMTg5IDQ3OC41MDAsNjIxLjM1OSBDNDc5LjA1MCw2MjEuNTI4IDQ4Mi4wMDksNjI1LjY3OSA0ODUuMDc1LDYzMC41ODMgQzQ4OC4xNDIsNjM1LjQ4NyA1MDMuNTgxLDY2MC4xMjEgNTE5LjM4NSw2ODUuMzI1IEM1MzUuMTkwLDcxMC41MjggNTQ4LjM2Niw3MzEuNzkxIDU0OC42NjcsNzMyLjU3NSBDNTQ5LjEzNyw3MzMuODAwIDUzOC45NzYsNzM0LjAwMCA0NzYuMTA3LDczNC4wMDAgQzQzNS44OTgsNzM0LjAwMCA0MDMuMDAwLDczMy43MDAgNDAzLjAwMCw3MzMuMzM0IFogTTYxNy43MTksNjUzLjI1MCBDNjEwLjYxMCw2NDAuNzI3IDU5OS44NzMsNjIyLjQyNSA1ODEuNDk0LDU5MS41MDAgQzU3Mi4wMTUsNTc1LjU1MCA1NTguNzQwLDU1My4wNTAgNTUxLjk5NSw1NDEuNTAwIEM1NDUuMjUwLDUyOS45NTAgNTI3LjYwNCw1MDAuMzI1IDUxMi43ODMsNDc1LjY2NiBDNDk3Ljk2MSw0NTEuMDA3IDQ4Ni4wMjQsNDMwLjY0MyA0ODYuMjU1LDQzMC40MTIgQzQ4Ni40ODYsNDMwLjE4MCA1MzYuNTg2LDQzMC4xMDYgNTk3LjU4OCw0MzAuMjQ2IEw3MDguNTAwLDQzMC41MDAgNzAyLjAwMCw0MzMuNDU0IEM2ODIuNjU3LDQ0Mi4yNDYgNjcxLjQyOCw0NDkuMjY5IDY2MC4wNjIsNDU5LjY4NCBDNjQxLjI3Niw0NzYuOTAwIDYyOC42MjAsNTAxLjkzMSA2MjYuMDUzLDUyNi45NTMgQzYyNS40MzgsNTMyLjk0OCA2MjUuMDAwLDU2Mi45MzkgNjI1LjAwMCw1OTkuMTA2IEM2MjUuMDAwLDY1Mi4zMTkgNjI0Ljc5OCw2NjEuMDAwIDYyMy41NjAsNjYxLjAwMCBDNjIyLjc2Nyw2NjEuMDAwIDYyMC4xMzksNjU3LjUxMyA2MTcuNzE5LDY1My4yNTAgWiIvPjxwYXRoIGZpbGw9IiNlOWYwZjUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTc4OS44NjEsODI0LjA4OSBMNzg3LjUwMCw4MjIuMTc4IDc4Ny4wMDAsNzc2LjgzOSBMNzg2LjUwMCw3MzEuNTAwIDc2Ni4wMDAsNzMxLjAwMCBDNzQ1LjYxNCw3MzAuNTAzIDc0NS40NjQsNzMwLjQ4MyA3MzkuMDAwLDcyNy40MDUgQzczNS40MjUsNzI1LjcwMyA3MzAuNTE4LDcyMi4zMjggNzI4LjA5NSw3MTkuOTA1IEM3MjUuNjcyLDcxNy40ODIgNzIyLjI5Nyw3MTIuNTc1IDcyMC41OTUsNzA5LjAwMCBMNzE3LjUwMCw3MDIuNTAwIDcxNy41MDAsNjMyLjAwMCBDNzE3LjUwMCw1NjIuMzM1IDcxNy41MjUsNTYxLjQzMyA3MTkuNjQ1LDU1NS44MzIgQzcyNC4wNzAsNTQ0LjE0MyA3MzIuNTUwLDUzNS4zNDQgNzQzLjc0OCw1MzAuODIzIEw3NDkuNTAwLDUyOC41MDAgODI3LjUwMCw1MjguMDAwIEw5MDUuNTAwLDUyNy41MDAgOTA2LjAwMCw0ODEuMjc3IEw5MDYuNTAwLDQzNS4wNTQgOTA4Ljc3NSw0MzIuNzc3IEM5MTAuODMyLDQzMC43MTggOTEyLjE1OCw0MzAuNDY4IDkyMi42MDYsNDMwLjE2MiBDOTMwLjM0NCw0MjkuOTM2IDkzNS4xNjYsNDMwLjI0MCA5MzcuMjAzLDQzMS4wODQgQzk0Mi44ODUsNDMzLjQzOCA5NDMuMDAwLDQzNC40NzUgOTQzLjAwMCw0ODMuNDU0IEw5NDMuMDAwLDUyNy45NzMgMTA0Ni43NTAsNTI4LjIzNiBMMTE1MC41MDAsNTI4LjUwMCAxMTU2LjE1NSw1MzEuMTUxIEMxMTU5LjI2Niw1MzIuNjEwIDExNjMuNzIyLDUzNS43NjAgMTE2Ni4wNTgsNTM4LjE1MSBDMTE2OC4zOTQsNTQwLjU0MyAxMTcxLjY5OSw1NDUuNDI1IDExNzMuNDAzLDU0OS4wMDAgTDExNzYuNTAwLDU1NS41MDAgMTE3Ni44MzgsNTc1LjY5MSBDMTE3Ny4xMTcsNTkyLjMzNyAxMTc2Ljg4Miw1OTYuOTAyIDExNzUuNTAwLDYwMS42OTEgQzExNzEuOTY0LDYxMy45NDMgMTE2NS41MDUsNjIyLjA3MSAxMTU0Ljg0MCw2MjcuNjg3IEwxMTQ5LjUwMCw2MzAuNTAwIDEwMjcuNzUwLDYzMC43NjYgTDkwNi4wMDAsNjMxLjAzMSA5MDYuMDAwLDY4MS4wMDUgTDkwNi4wMDAsNzMwLjk3OCA4NjMuNzUwLDczMS4yMzkgTDgyMS41MDAsNzMxLjUwMCA4MjEuMDAwLDc3Ni44MzkgTDgyMC41MDAsODIyLjE3OCA4MTguMTM5LDgyNC4wODkgQzgxNi4xMTQsODI1LjcyOSA4MTQuMTA1LDgyNi4wMDAgODA0LjAwMCw4MjYuMDAwIEM3OTMuODk1LDgyNi4wMDAgNzkxLjg4Niw4MjUuNzI5IDc4OS44NjEsODI0LjA4OSBaIE05MTEuMjEwLDgyMi40NDYgQzkwOS41MzEsODIxLjc0MCA5MDcuNjY3LDgyMC4yNDcgOTA3LjA2OCw4MTkuMTI3IEM5MDYuMzE4LDgxNy43MjYgOTA2LjA2MCw4MDMuNTkwIDkwNi4yMzksNzczLjc5NiBMOTA2LjUwMCw3MzAuNTAwIDEwMzkuMDAwLDcyOS45NjIgQzExNzEuNDAwLDcyOS40MjQgMTE3MS41MDYsNzI5LjQyMiAxMTc5LjAzNyw3MjcuMjQzIEMxMjAxLjQ4Nyw3MjAuNzQ4IDEyMjAuMDgyLDcwOS4zNTQgMTIzNi4xNjIsNjkyLjIzOSBDMTI0NS4wNTMsNjgyLjc3NiAxMjUwLjAyMiw2NzUuMjU5IDEyNTcuMjA0LDY2MC40MDAgQzEyNjAuNTAxLDY1My41ODAgMTI2My41NDksNjQ4LjAwMCAxMjYzLjk3Nyw2NDguMDAwIEMxMjY2Ljg4NSw2NDguMDAwIDEyNjcuMDA4LDY1MS45MjQgMTI2Ni43NTYsNzM3LjA5NCBMMTI2Ni41MDAsODIzLjQ3MCAxMDkwLjM4MSw4MjMuNjAwIEM5NDkuMDU4LDgyMy43MDQgOTEzLjY1OSw4MjMuNDc2IDkxMS4yMTAsODIyLjQ0NiBaIE0xMjYxLjM2OSw1MTQuNzk4IEMxMjYwLjg0Myw1MTQuMDg0IDEyNTkuNTc2LDUxMS4wMjUgMTI1OC41NTQsNTA4LjAwMCBDMTI1Ni4xOTIsNTAxLjAwOSAxMjUzLjAxNyw0OTQuNTczIDEyNDYuOTYwLDQ4NC41MDAgQzEyMzQuMzg1LDQ2My41ODQgMTIxMi44NzgsNDQ1LjIwNSAxMTkwLjI0Nyw0MzYuMDM4IEMxMTg2LjQyNCw0MzQuNDg5IDExODMuNTAwLDQzMi42OTcgMTE4My41MDAsNDMxLjkwMiBDMTE4My41MDAsNDMwLjcyMiAxMTkwLjA2MCw0MzAuNTAwIDEyMjUuMDAwLDQzMC41MDAgTDEyNjYuNTAwLDQzMC41MDAgMTI2Ni41MDAsNDczLjAwMCBDMTI2Ni41MDAsNTE1LjMzMiAxMjY2LjQ5Miw1MTUuNTAxIDEyNjQuNDEyLDUxNS43OTggQzEyNjMuMjY0LDUxNS45NjIgMTI2MS44OTUsNTE1LjUxMiAxMjYxLjM2OSw1MTQuNzk4IFoiLz48L2c+PGcgaWQ9Im1hcmNhLXJlZ2lzdHJhZGEiIGFyaWEtbGFiZWw9Ik1hcmNhIHJlZ2lzdHJhZGEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQyMSAxNDApIHNjYWxlKDAuMikiIGZpbGw9IiNlOWYwZjUiPgogPGNpcmNsZSByPSIxOSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZTlmMGY1IiBzdHJva2Utd2lkdGg9IjIuNCIvPgogPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNLTcuNSAxMC41Vi0xMUgxQzYuNS0xMSA5LTguNCA5LTQuN0M5LTEuNSA3LjIuOCAzLjggMS42TDkuOCAxMC41SDUuN0wuMiAyLjFILTRWMTAuNVpNLTQtOFYtLjlILjhDNC4yLS45IDUuNS0yLjEgNS41LTQuNkM1LjUtNi44IDQuMi04IC44LThaIi8+CjwvZz48L3N2Zz4K') no-repeat center/contain}
/* Etiqueta: si parte en dos renglones, la línea queda con el primero. */
body[data-foundation] .foundation-film-zone .foundation-intro .kicker{align-items:flex-start;line-height:1.7}
body[data-foundation] .foundation-film-zone .foundation-intro .kicker::before{margin-top:.85em}
/* Ecko Terra: columna propia, separada del título por un filete. */
.foundation-film-zone .foundation-explanation{
  grid-column:2;grid-row:1;align-self:center;position:relative;z-index:2;background:transparent;
  padding:calc(var(--hd-h) + 48px) clamp(24px,2.6vw,56px) 56px 0!important}
body[data-foundation] .foundation-film-zone .foundation-story{
  display:flex;flex-direction:column;gap:clamp(22px,2vw,32px);max-width:none;
  padding:6px 0 6px clamp(24px,2.4vw,48px)!important;
  border-left:1px solid rgba(255,255,255,.14)}
/* Control del video sobre el video, abajo a la izquierda. */
.foundation-film-zone .foundation-video-toggle{
  grid-column:3;grid-row:1;position:relative;top:auto;right:auto;bottom:auto;left:auto;z-index:3;
  align-self:end;justify-self:start;margin:0 0 clamp(20px,2vw,32px) clamp(20px,2vw,32px)}
}
/* Escritorio angosto: Ecko Terra debajo del título, junto al video. */
@media(min-width:901px) and (max-width:1279px){
body[data-foundation] .foundation-film-zone{
  grid-template-columns:minmax(0,1fr) var(--film-w);grid-template-rows:auto auto}
.foundation-film-zone .foundation-background-video{grid-column:2;grid-row:1/-1}
body[data-foundation] .foundation-film-zone .foundation-intro{align-self:end;padding-bottom:0!important}
.foundation-film-zone .foundation-explanation{
  grid-column:1;grid-row:2;align-self:start;
  padding:36px clamp(32px,3.4vw,64px) 56px var(--page-gutter)!important}
body[data-foundation] .foundation-film-zone .foundation-story{
  padding:32px 0 0!important;border-left:0;border-top:1px solid rgba(255,255,255,.14)}
.foundation-film-zone .foundation-video-toggle{grid-column:2;grid-row:2}
}

/* v50 · Ajustes de uso en pantallas táctiles.
   - Campos a 16 px: con menos, el iPhone amplía la página al tocarlos.
   - Enlaces sueltos con al menos 44 px de alto para tocarlos cómodo. */
@media(max-width:900px),(pointer:coarse){
.f input,.f select,.f textarea{font-size:16px}
.f input,.f select{min-height:44px}
a.native-back{display:inline-flex;align-items:center;min-height:44px}
.mapa a{display:inline-flex;align-items:center;min-height:44px}
}
/* v50 · Fichas de proyecto: el alcance va justificado y la ubicación/fecha
   pasa a su propio renglón (antes quedaba pegada: "ventas.Aldea Zamá"). */
.native-scope{text-align:justify;text-justify:inter-word;hyphens:auto;-webkit-hyphens:auto}
.native-scope>span>i{display:block;margin-top:12px;font-size:.88em;line-height:1.6;color:#6b7684;text-align:start}

/* v51 · (derogada en v56) Apagaba los guiones en todo el sitio con !important,
   lo que obligaba al justificado a estirar los espacios entre palabras. */
/* Los bloques de texto usan todo el ancho de su columna para que la
   justificación no deje huecos grandes al no partir palabras. */
@media(min-width:901px){
body[data-foundation] .foundation-film-zone .foundation-intro p:not(.kicker),
body[data-foundation] .foundation-film-zone .foundation-story .lede{max-width:none}
#ecko>.wrap>.lede{max-width:none}
}
/* v51 · Más aire entre título y subtítulo en Cimentación. */
#ecko .wrap>h2{margin-bottom:0}
#ecko .wrap>h2+.lede{margin-top:clamp(14px,1.3vw,22px)!important}

/* v51 · Divisiones (Inicio) como acordeón de paneles.
   Solo aplica cuando divisiones-acordeon.js marca la tira con .divs-accordion;
   sin JavaScript queda el carrusel anterior. */
.car-nav[data-target="divs-track"]{display:none!important}
#divs-track.divs-accordion{
  display:flex;gap:0;overflow:hidden;scroll-snap-type:none;
  height:clamp(460px,40vw,640px);background:#111a23}
#divs-track.divs-accordion>.div{
  position:relative;display:block;flex:1 1 0;min-width:0;min-height:0;height:auto;margin:0;
  overflow:hidden;border-left:1px solid rgba(255,255,255,.14);background:#16202b;
  transition:flex-grow .75s cubic-bezier(.22,.61,.36,1)}
#divs-track.divs-accordion>.div:first-child{border-left:0}
#divs-track.divs-accordion>.div.is-open{flex-grow:5.2}
#divs-track.divs-accordion>.div>img{
  position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;z-index:0;
  transform:scale(1.08);filter:saturate(.55) brightness(.62);
  transition:transform 1.1s cubic-bezier(.22,.61,.36,1),filter .75s ease}
#divs-track.divs-accordion>.div.is-open>img{transform:scale(1);filter:none}
/* velo: azul marca en franjas, degradado inferior en el panel abierto */
#divs-track.divs-accordion>.div::after{
  content:"";display:block;position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(to top,rgba(12,19,27,.88),rgba(12,19,27,.35) 55%,rgba(20,44,70,.30));
  transition:opacity .75s ease}
#divs-track.divs-accordion>.div.is-open::after{
  background:linear-gradient(to top,rgba(12,19,27,.94) 0%,rgba(12,19,27,.72) 30%,rgba(12,19,27,.18) 62%,rgba(12,19,27,0) 100%)}
/* texto del panel abierto: ancho fijo para que no se reacomode al animar */
#divs-track.divs-accordion>.div .t{
  position:absolute;left:0;bottom:0;z-index:2;
  width:min(640px,calc(50vw - 24px));padding:0 clamp(24px,2.6vw,44px) clamp(26px,2.6vw,42px);
  opacity:0;transform:translateY(14px);visibility:hidden;
  transition:opacity .35s ease,transform .35s ease,visibility 0s linear .35s}
#divs-track.divs-accordion>.div.is-open .t{
  opacity:1;transform:none;visibility:visible;
  transition:opacity .5s ease .38s,transform .6s cubic-bezier(.22,.61,.36,1) .38s,visibility 0s}
#divs-track.divs-accordion>.div .t h3{font-size:clamp(24px,2.3vw,36px);line-height:1.1}
#divs-track.divs-accordion>.div .t p{max-width:46ch}
/* nombre vertical en las franjas */
#divs-track.divs-accordion .div-label{
  position:absolute;z-index:2;left:50%;bottom:clamp(24px,2.4vw,38px);
  display:flex;align-items:center;gap:14px;
  writing-mode:vertical-rl;transform:translateX(-50%) rotate(180deg);
  color:#fff;font:700 clamp(15px,1.15vw,19px)/1 'Poppins','Poppins Respaldo',system-ui,sans-serif;
  letter-spacing:.01em;white-space:nowrap;text-shadow:0 1px 8px rgba(0,0,0,.55);
  transition:opacity .35s ease .3s}
#divs-track.divs-accordion .div-label b{
  font:500 11px/1 'IBM Plex Mono',monospace;letter-spacing:.18em;color:var(--senal)}
#divs-track.divs-accordion .div-label::after{
  content:"";width:1px;height:38px;background:rgba(255,255,255,.45)}
#divs-track.divs-accordion>.div.is-open .div-label{opacity:0;transition:opacity .2s ease}
#divs-track.divs-accordion>.div:not(.is-open):hover>img{filter:saturate(.8) brightness(.78)}
#divs-track.divs-accordion>.div:focus-visible{outline:3px solid var(--senal);outline-offset:-3px}

/* Celular y tablet: acordeón vertical. */
@media(max-width:900px){
#divs-track.divs-accordion{flex-direction:column;height:auto}
#divs-track.divs-accordion>.div{
  flex:none;height:74px;border-left:0;border-top:1px solid rgba(255,255,255,.14);
  transition:height .65s cubic-bezier(.22,.61,.36,1)}
#divs-track.divs-accordion>.div:first-child{border-top:0}
#divs-track.divs-accordion>.div.is-open{height:clamp(420px,112vw,560px)}
#divs-track.divs-accordion>.div .t{width:100%;padding:0 var(--page-gutter) 28px}
#divs-track.divs-accordion .div-label{
  writing-mode:horizontal-tb;transform:translateY(50%);left:var(--page-gutter);right:var(--page-gutter);
  bottom:50%;gap:14px;font-size:17px}
#divs-track.divs-accordion .div-label::after{width:auto;height:1px;flex:1;order:2;background:rgba(255,255,255,.28)}
#divs-track.divs-accordion .div-label>span{order:1}
#divs-track.divs-accordion .div-label>b{order:0}
}
@media(prefers-reduced-motion:reduce){
#divs-track.divs-accordion>.div,#divs-track.divs-accordion>.div>img,
#divs-track.divs-accordion>.div .t,#divs-track.divs-accordion .div-label{transition:none!important}
}
/* v51 · Galerías de fichas: las fotos verticales muy altas se limitan en alto
   (sin deformarse) para que la cuadrícula no deje huecos enormes. */
.native-gallery-grid figure>a{display:block}
.native-gallery-grid img{width:100%;height:auto;max-height:min(78vh,760px);object-fit:contain;display:block}

/* ============================================================
   v56 · Tipografía justificada y acordeón de divisiones
   ============================================================ */

/* v56 · Justificado CON partición de palabras.
   La v51 apagaba los guiones en todo el sitio (`*{hyphens:manual!important}`).
   Sin guiones, una columna angosta con palabras largas ("telecomunicaciones",
   "hidrosanitarias") obliga al navegador a estirar los espacios de la línea
   completa: son los huecos que se veían en móvil. Aquí se reactivan los
   guiones solo en el texto corrido. */
body p,
body li,
body .lede,
body .nota,
body .desc,
body .flota em,
body dd,
body .native-scope,
body .viewer-description p,
body .native-content p,
body .project-detail>span,
body .rama p,
body .filo p,
body .frente p,
body .form .intro p{
  text-align:justify;text-justify:inter-word;text-align-last:start;
  -webkit-hyphens:auto;hyphens:auto;
  -webkit-hyphenate-limit-before:4;-webkit-hyphenate-limit-after:3;
  hyphenate-limit-chars:7 4 3;
  overflow-wrap:break-word;word-break:normal;text-wrap:pretty}

/* Títulos, etiquetas y textos cortos: ni justificado ni guiones. */
h1,h2,h3,h4,h5,h6,
.kicker,.tag,.eyebrow,.sub,.btn,.mono,.div-label,
.hero-caption,.hero-count,.hero-pagination,.project-category,
.cifras b,.cifras span,.flota b,.flota span,.specs dt,
.obra .meta,.frente .mt,.clientes span,.tab-btn,.fin,
.catalog-heading,.catalog-title,.filtro-lab,.filtro-cuenta,
figcaption,th,label,button,
p.kicker,p.tag,p.loc,.vertical-status{
  -webkit-hyphens:manual;hyphens:manual;
  text-align:start;text-justify:auto}

/* En columnas muy angostas caben pocos caracteres por línea: se permite
   partir palabras un poco antes para que no reaparezcan los huecos. */
@media(max-width:600px){
body p,body li,body .lede,body .nota,body .desc,body .native-scope,
body .rama p,body .filo p,body .frente p{
  hyphenate-limit-chars:6 3 3;line-height:1.66}
}

/* Renglones seguidos que podían quedar pegados por falta de margen. */
.div .t p+.nota{margin-top:12px}
.tabla .row b+span,.tabla .row span+span{margin-top:4px}
.rama p+p,.filo p+p,.frente p+p{margin-top:.9em}

/* ------------------------------------------------------------
   v56 · Acordeón de divisiones (escritorio): deslizamiento fluido.
   Tres cambios respecto a v51:
   1. La foto deja de medir 100% del panel. Con `width:100%` el navegador
      reescala una imagen grande en cada cuadro mientras el panel crece, y
      ahí se perdía la fluidez. Ahora tiene ancho fijo (62vw, siempre mayor
      que el panel abierto) y el panel solo la recorta.
   2. Curva de salida larga en vez de la anterior: el frenado final es lo
      que da la sensación de deslizamiento continuo.
   3. La foto se promueve a capa propia con translate3d, para que el
      desplazamiento y el zoom los resuelva la GPU.
   El bloque de celular (max-width:900px) queda intacto más abajo.
   ------------------------------------------------------------ */
#divs-track.divs-accordion>.div{
  transition:flex-grow .85s cubic-bezier(.16,1,.3,1)}
#divs-track.divs-accordion>.div>img{
  position:absolute;inset:auto;top:0;left:50%;
  width:62vw;max-width:none;height:100%;object-fit:cover;object-position:center;
  transform:translate3d(-50%,0,0) scale(1.06);
  backface-visibility:hidden;
  filter:saturate(.38) brightness(.6);
  transition:transform 1.05s cubic-bezier(.16,1,.3,1),
             filter .8s cubic-bezier(.16,1,.3,1)}
#divs-track.divs-accordion>.div.is-open>img{
  transform:translate3d(-50%,0,0) scale(1);filter:none}
#divs-track.divs-accordion>.div:not(.is-open):hover>img{
  filter:saturate(.72) brightness(.76)}
/* El velo también se atenúa con la misma curva. */
#divs-track.divs-accordion>.div::after{
  transition:background .8s cubic-bezier(.16,1,.3,1)}
/* El rótulo vertical entra y sale acompañando el movimiento, no antes. */
#divs-track.divs-accordion .div-label{
  transition:opacity .4s ease .34s}
#divs-track.divs-accordion>.div.is-open .div-label{
  opacity:0;transition:opacity .24s ease}

/* Celular y tablet: la foto vuelve a ocupar el panel completo, para no
   alterar en nada el carrusel vertical que ya estaba funcionando. */
@media(max-width:900px){
#divs-track.divs-accordion>.div>img{
  left:0;width:100%;max-width:100%;transform:none;
  filter:saturate(.6) brightness(.66);
  transition:filter .5s ease}
#divs-track.divs-accordion>.div.is-open>img{transform:none;filter:none}
#divs-track.divs-accordion>.div:not(.is-open):hover>img{
  filter:saturate(.6) brightness(.66)}
#divs-track.divs-accordion>.div::after{transition:background .5s ease}
}

@media(prefers-reduced-motion:reduce){
#divs-track.divs-accordion>.div,
#divs-track.divs-accordion>.div>img,
#divs-track.divs-accordion>.div::after,
#divs-track.divs-accordion .div-label{transition:none!important}
}

/* v56 · Etiquetas cortas en monoespaciada y mayúsculas: nunca justificadas.
   Con dos o tres palabras, el justificado abre huecos enormes (se veía en
   "SALAS DE CAPACITACIÓN, CORPORATIVO COCA-COLA" bajo cada división). */
.div .t .nota,.div .t em,.div .t i,
.hero .tag,.form .intro .alt,.fgrid h4,
.tabla .row .cif,.tabla .row i,
.specs dd,.obra .meta span,.project-location,
.route-stop summary,.scope-note{
  text-align:start!important;text-justify:auto;
  -webkit-hyphens:manual;hyphens:manual}

/* v56 · Franjas cerradas: lavado azul uniforme, como en la referencia.
   Se usa el azul de la marca, no el del sitio de referencia.
   Para atenuarlo o reforzarlo basta con mover la opacidad de --franja-azul. */
@media(min-width:901px){
#divs-track.divs-accordion{--franja-azul:rgba(24,52,86,.42)}
#divs-track.divs-accordion>.div>img{filter:saturate(.18) brightness(.62)}
#divs-track.divs-accordion>.div:not(.is-open)::before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:var(--franja-azul);
  transition:opacity .8s cubic-bezier(.16,1,.3,1)}
#divs-track.divs-accordion>.div.is-open::before{opacity:0}
#divs-track.divs-accordion>.div:not(.is-open):hover>img{
  filter:saturate(.45) brightness(.74)}
}

/* cimentaciones-v57.css */
/* Identidad y navegación exclusivas de Cimentaciones. */
body[data-foundation]{--et-gold:#dbb46e;--et-ink:#101b24}
body[data-foundation] #cimentaciones{background:var(--et-ink)}
body[data-foundation] .et-actions{display:flex;flex-wrap:wrap;align-items:center;gap:22px;margin-top:30px}
body[data-foundation] .et-actions .btn{font-size:12px;padding:16px 20px}
body[data-foundation] .et-text-link{font-size:12px;color:#ede6d8;text-decoration:underline;text-underline-offset:6px}
body[data-foundation] .et-nav{position:sticky;top:var(--et-header,75px);z-index:40;background:#14232df5;border-block:1px solid #ffffff20;backdrop-filter:blur(18px)}
body[data-foundation] .et-nav-inner{display:flex;align-items:center;justify-content:space-between;gap:28px;min-height:82px}
body[data-foundation] .et-signature{font-size:19px;letter-spacing:.12em;font-weight:800;white-space:nowrap;color:#f4f0e7;line-height:1.4}
body[data-foundation] .et-signature span{display:block;font-size:8px;letter-spacing:.22em;color:var(--et-gold)}
body[data-foundation] .et-nav-links{display:flex;gap:24px;align-self:stretch;align-items:stretch}
body[data-foundation] .et-nav-links a{display:flex;align-items:center;border-bottom:2px solid transparent;font-size:12px;color:#d1d9dd;white-space:nowrap;padding-block:18px}
body[data-foundation] .et-nav-links a:hover,body[data-foundation] .et-nav-links a[aria-current]{color:var(--et-gold);border-color:var(--et-gold)}
body[data-foundation] .et-nav-cta{color:var(--et-gold);font-size:12px;white-space:nowrap}
body[data-foundation] .et-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding-block:38px;border-bottom:1px solid #ffffff20;gap:24px;color:white}
body[data-foundation] .et-facts>div{border-left:1px solid #dbb46e70;padding-left:22px}
body[data-foundation] .et-facts strong{display:block;font-size:clamp(25px,3vw,44px);line-height:1.2;font-weight:600;color:var(--et-gold)}
body[data-foundation] .et-facts span{display:block;font-size:11px;margin-top:10px;color:#c3cdd2}
body[data-foundation] #ecko{padding-top:64px;background:radial-gradient(ellipse at top right,#23313a 0,transparent 45%),var(--et-ink)}
body[data-foundation] #ecko .sistemas{gap:12px;margin-top:30px}
body[data-foundation] #ecko .sistema{background:#ffffff04;border:1px solid #ffffff16;border-radius:8px;box-shadow:none;overflow:hidden}
body[data-foundation] #ecko .sistema summary{padding:24px;min-height:86px}
body[data-foundation] #ecko .sistema[open]{background:#23313b;border-color:#dbb46e65}
body[data-foundation] #ecko .sistema .num{color:var(--et-gold)}
body[data-foundation] #ecko .sistema-cuerpo{padding:0 24px 24px}
body[data-foundation] .et-section-title{font-size:clamp(28px,3.6vw,48px)!important;line-height:1.18;margin:12px 0 28px!important;max-width:24ch;letter-spacing:-.035em}
body[data-foundation] .et-section-lede{max-width:65ch;color:#c1cdd4;font-size:15px;margin-bottom:24px}
body[data-foundation] .fleet-immersive{margin-top:64px;padding-top:38px;border-top:1px solid #ffffff26}
body[data-foundation] .fleet-layout{border:1px solid #ffffff20;border-radius:12px;overflow:hidden;background:#17252f}
body[data-foundation] .fleet-photo img{object-fit:contain!important;filter:none!important;transform:none!important}
body[data-foundation] .et-project-index{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 36px}
body[data-foundation] .et-project-index a{padding:10px 14px;border:1px solid #ffffff25;border-radius:4px;font-size:11px;color:#dbe1e4;transition:background .15s}
body[data-foundation] .et-project-index a:hover{background:#dbb46e20;border-color:var(--et-gold)}
body[data-foundation] .et-project-index a span{color:var(--et-gold);margin-right:7px}
body[data-foundation] #ecko .proy{border-top:1px solid #dbb46e55;padding-top:32px}
body[data-foundation] #ecko .specs{padding:clamp(18px,3vw,40px);background:#ffffff04;border:1px solid #ffffff20;border-radius:10px}
body[data-foundation] #ecko .specs dt{color:var(--et-gold)}
body[data-foundation] :is(#sistemas,#flota,#frentes-recientes,#maquinaria,.proy){scroll-margin-top:calc(var(--et-header,75px) + 115px)}
body[data-foundation] #cimentaciones{scroll-margin-top:var(--et-header,75px)}
body[data-foundation] #cimentaciones a:focus-visible{outline:2px solid var(--et-gold);outline-offset:5px}
@media(min-width:901px){
body[data-foundation] .foundation-film-zone{grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr);grid-template-rows:auto auto;min-height:720px!important}
body[data-foundation] .foundation-film-zone .foundation-intro{grid-column:1;grid-row:1;padding:140px 0 24px!important;align-self:end}
body[data-foundation] .foundation-film-zone .foundation-intro>.wrap{padding-left:var(--page-gutter);padding-right:50px}
body[data-foundation] .foundation-intro h1{font-size:clamp(46px,5.3vw,84px);max-width:12ch;line-height:1.04}
body[data-foundation] .foundation-film-zone .foundation-background-video{grid-column:2;grid-row:1/3;object-fit:contain!important;background:#101820}
body[data-foundation] .foundation-film-zone .foundation-explanation{grid-column:1;grid-row:2;padding:20px 50px 45px var(--page-gutter)!important}
body[data-foundation] .foundation-film-zone .foundation-story{display:grid;grid-template-columns:150px minmax(0,1fr);gap:25px;align-items:center;padding:24px 0 0!important;border-left:0;border-top:1px solid #ffffff25}
body[data-foundation] .foundation-film-zone .foundation-story .lede{font-size:13px;line-height:1.8}
body[data-foundation] .foundation-film-zone .foundation-video-toggle{grid-column:2;grid-row:2}
}
@media(max-width:900px){
body[data-foundation] .et-nav-inner{gap:0;flex-wrap:wrap;padding-top:14px;min-height:0}
body[data-foundation] .et-signature{font-size:15px}
body[data-foundation] .et-nav-cta{margin-left:auto;font-size:11px}
body[data-foundation] .et-nav-links{order:3;width:100%;justify-content:space-between;gap:12px}
body[data-foundation] .et-nav-links a{font-size:11px;padding-block:14px}
body[data-foundation] .et-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 14px;padding-block:30px}
body[data-foundation] .et-facts>div{padding-left:14px}
body[data-foundation] #ecko{padding-top:40px}
body[data-foundation] .et-actions{margin-bottom:30px;gap:18px}
body[data-foundation] .et-project-index{gap:7px}
body[data-foundation] .et-project-index a{font-size:10px;padding:9px}
body[data-foundation] #ecko .sistema summary{padding:18px;min-height:76px}
}

/* cimentaciones-gallery-v59.css */
body[data-foundation] #ecko .proy-fotos img{cursor:zoom-in;border-radius:8px;outline-offset:4px;transition:box-shadow .2s}
body[data-foundation] #ecko .proy-fotos img:hover{box-shadow:0 0 0 2px #dbb46e}
body[data-foundation] #ecko .proy-fotos img:focus-visible{outline:3px solid #dbb46e}
.et-gallery-bar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:30px;padding-top:18px;border-top:1px solid #ffffff22}
.et-gallery-bar>span{font-size:10px;letter-spacing:.12em;color:#aebdc6}
.et-gallery-open,.et-diagram-open{font:inherit;font-size:12px;color:#edcb8a;background:#24343e;border:1px solid #dbb46e60;border-radius:6px;padding:12px 15px;cursor:pointer}
.et-diagram-open{display:block;margin:18px 0 0 auto}
body[data-foundation] #ecko .foundation-metrics{border:1px solid #ffffff20;border-radius:12px;overflow:hidden;background:linear-gradient(135deg,#263640,#16242e)}
body[data-foundation] #ecko .pile-count{border-bottom:1px solid #ffffff20}
.et-viewer{box-sizing:border-box;width:min(1200px,96vw);max-width:96vw;height:min(900px,94dvh);max-height:94dvh;padding:22px;margin:auto;border:1px solid #ffffff30;border-radius:16px;background:#101b24;color:#f5f2ec;box-shadow:0 24px 100px #0009;overflow:hidden}
.et-viewer[open]{display:flex;flex-direction:column;gap:12px}
.et-viewer::backdrop{background:#050b11e8;backdrop-filter:blur(8px)}
.et-viewer-head{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-shrink:0}
.et-viewer-kicker{font-size:9px;letter-spacing:.16em;color:#dbb46e}
.et-viewer-head h2{font-size:clamp(16px,2vw,25px);line-height:1.3;margin:6px 0 0}
.et-viewer button{cursor:pointer;font-family:inherit}
.et-close,.et-prev,.et-next{flex-shrink:0;border:1px solid #ffffff35;background:#21313e;color:white;border-radius:50%;width:44px;height:44px;font-size:24px;display:grid;place-items:center}
.et-viewer-stage{display:flex;align-items:center;gap:12px;flex:1;min-height:0}
.et-viewer-content{height:100%;flex:1;min-width:0;display:flex;align-items:center;justify-content:center;overflow:auto;background:#0b131a;border-radius:8px}
.et-viewer-content>img{display:block;width:100%;height:100%;object-fit:contain;filter:none;transform:none}
.et-viewer-caption{font-size:12px;color:#c7d0d7;margin:0;text-align:center;flex-shrink:0}
.et-thumbnails{display:flex;justify-content:flex-start;gap:8px;overflow-x:auto;padding:4px;margin-inline:auto;max-width:100%;flex-shrink:0}
.et-thumbnail{padding:0;background:#15232c;border:2px solid transparent;border-radius:5px;width:72px;height:56px;flex-shrink:0;overflow:hidden}
.et-thumbnail img{width:100%;height:100%;object-fit:contain}
.et-thumbnail[aria-pressed=true]{border-color:#dbb46e;background:#32424c}
.et-viewer [hidden]{display:none!important}
.et-viewer button:focus-visible{outline:2px solid #dbb46e;outline-offset:3px}
.et-diagram-view .et-viewer-content{display:block;padding:clamp(12px,3vw,32px)}
.et-diagram-view .soil-feature{max-width:800px;margin:auto}
.et-diagram-view .soil-feature .soil-section{min-height:330px}
.et-diagram-view .bore-ring{opacity:1;animation:none!important}
@media(max-width:600px){.et-viewer{padding:12px;width:96vw;height:92dvh;max-height:92dvh;border-radius:10px}.et-viewer-stage{gap:4px;position:relative}.et-prev,.et-next{position:absolute;z-index:2;top:50%;background:#14232ded}.et-prev{left:4px}.et-next{right:4px}.et-gallery-bar{align-items:flex-start}.et-gallery-bar>span{max-width:50%;line-height:1.7}.et-gallery-open{font-size:11px}.et-viewer-caption{font-size:10px}.et-diagram-view .et-viewer-content{padding:8px}.et-viewer-kicker{font-size:8px}}
@media(prefers-reduced-motion:reduce){.et-viewer *{animation:none!important;transition:none!important}}

/* cimentaciones-gallery-v60.css */
/* Galerías uniformes: portada completa y registro inferior en dos columnas. */
body[data-foundation] #ecko .proy-fotos{
 display:grid;grid-template-columns:minmax(0,1fr)!important;
 align-items:start;gap:12px;width:100%;min-width:0;
}
body[data-foundation] #ecko .proy-fotos .fp-main{
 width:100%;height:auto!important;min-height:0;max-height:none;
 aspect-ratio:auto!important;padding:0;border:0;overflow:visible;
 background:transparent;
}
body[data-foundation] #ecko .proy-fotos .fp-main img{
 display:block;width:100%!important;height:auto!important;
 min-height:0;max-height:none;aspect-ratio:auto!important;
 object-fit:contain!important;object-position:center;
 margin:0;padding:0;transform:none!important;
}
body[data-foundation] #ecko .proy-fotos .fp-side,
body[data-foundation] #ecko .proy-fotos .fp-side.one{
 display:grid;grid-template-columns:repeat(2,minmax(0,1fr))!important;
 grid-template-rows:auto!important;align-items:start;gap:12px;
 width:100%;height:auto!important;min-height:0;max-height:none;
 aspect-ratio:auto!important;overflow:visible;padding:0;background:transparent;
}
body[data-foundation] #ecko .proy-fotos .fp-side img{
 display:block;width:100%!important;height:auto!important;
 aspect-ratio:5 / 3!important;min-width:0;min-height:0;max-height:none;
 object-fit:cover!important;object-position:center;
 margin:0;padding:0;border-radius:8px;transform:none!important;
}
@media(max-width:700px){
 body[data-foundation] #ecko .proy-fotos,
 body[data-foundation] #ecko .proy-fotos .fp-side{gap:10px}
}

/* cimentaciones-desktop-v61.css */
/* Escala de marca y navegación para escritorio. */
@media(min-width:901px){
 body[data-foundation] .foundation-film-zone .foundation-background-video{grid-row:1;grid-column:2}
 body[data-foundation] .foundation-film-zone .foundation-video-toggle{grid-row:1;grid-column:2}
 body[data-foundation] .foundation-film-zone .foundation-intro{padding-bottom:48px!important}
 body[data-foundation] .foundation-film-zone .foundation-explanation{
  grid-column:1 / -1;grid-row:2;width:100%;box-sizing:border-box;
  padding:48px var(--page-gutter) 56px!important;
  background:#15232de8!important;border-top:1px solid #ffffff25;
 }
 body[data-foundation] .foundation-film-zone .foundation-story{
  display:grid!important;grid-template-columns:minmax(260px,.85fr) minmax(0,1.65fr);
  align-items:center;gap:clamp(36px,5vw,90px);
  width:100%;max-width:1600px;margin-inline:auto;
  padding:0!important;border:0;
 }
 body[data-foundation] .foundation-film-zone .foundation-story .rama.ecko-brand{
  display:block!important;width:100%;max-width:none;padding:0!important;margin:0!important;
 }
 body[data-foundation] .foundation-film-zone .foundation-story .ecko-brand .mk{width:100%!important}
 body[data-foundation] .foundation-film-zone .foundation-story .ecko-brand .mk img{
  display:block;width:100%!important;max-width:480px!important;height:auto!important;
  object-fit:contain;margin:0 auto!important;
 }
 body[data-foundation] .foundation-film-zone .foundation-story .lede{
  font-size:clamp(19px,1.55vw,26px)!important;line-height:1.75;
  text-align:left;max-width:66ch;margin:0!important;
 }
 body[data-foundation] .et-nav-inner{min-height:112px;gap:clamp(24px,3vw,54px)}
 body[data-foundation] .et-signature{font-size:clamp(25px,2vw,34px);letter-spacing:.09em;text-decoration:none}
 body[data-foundation] .et-signature span{font-size:clamp(10px,.8vw,13px);letter-spacing:.17em}
 body[data-foundation] .et-nav-links{flex:1;justify-content:space-evenly;gap:clamp(16px,2vw,36px)}
 body[data-foundation] .et-nav-links a{font-size:clamp(17px,1.3vw,22px);font-weight:600;padding:28px 4px;text-decoration:none;border-bottom-width:3px;justify-content:center}
 body[data-foundation] .et-nav-cta{font-size:clamp(15px,1.05vw,18px);padding:14px 18px;border:1px solid #dbb46e65;border-radius:6px;text-decoration:none}
 body[data-foundation] :is(#sistemas,#flota,#frentes-recientes,#maquinaria,.proy){scroll-margin-top:calc(var(--et-header,75px) + 145px)}
}
@media(min-width:901px) and (max-width:1200px){
 body[data-foundation] .et-nav-inner{display:grid;grid-template-columns:1fr auto;gap:0 24px;padding-top:18px}
 body[data-foundation] .et-nav-links{grid-column:1 / -1;grid-row:2;width:100%;justify-content:space-between}
 body[data-foundation] .et-nav-links a{padding-block:18px;font-size:18px}
 body[data-foundation] .et-nav-cta{grid-column:2;grid-row:1}
 body[data-foundation] :is(#sistemas,#flota,#frentes-recientes,#maquinaria,.proy){scroll-margin-top:calc(var(--et-header,75px) + 185px)}
}

/* refinamiento-v62.css */
/* v62: responsive motion and photographic trajectory. */
@media(min-width:901px){
 #divs-track.divs-accordion>.div{transition:flex-grow .65s cubic-bezier(.22,.75,.25,1)}
 #divs-track.divs-accordion>.div>img{transition:transform .8s cubic-bezier(.22,.75,.25,1),filter .5s ease}
 #divs-track.divs-accordion>.div.is-open>img{filter:none}
}
body[data-foundation] .et-project-index a,body[data-foundation] .et-project-index a *,body[data-foundation] .et-signature{text-decoration:none!important}
body[data-foundation] .foundation-film-zone .foundation-background-video{filter:none!important;opacity:1!important;transform:none!important;object-fit:contain!important;image-rendering:auto}
.portfolio-page #grp-trayectoria{margin-top:80px;padding:clamp(24px,4vw,64px);background:#122330;color:#fff;position:relative;overflow:hidden;border-top:4px solid #e6b916}
.portfolio-page #trayectoria{font-size:clamp(34px,4.8vw,72px);line-height:1.08;letter-spacing:-.04em;max-width:22ch;margin:0}
.portfolio-page #trayectoria span{color:#e6b916}
.portfolio-page #grp-trayectoria>.nota{color:#bac6cf;line-height:1.8;margin-top:28px!important}
.portfolio-page #grp-trayectoria>.tabla{border:0;padding:0;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:40px!important}
.portfolio-page #grp-trayectoria .history-chapter{background:#1a3040;border:1px solid #ffffff24!important;border-radius:0;transition:border-color .3s,transform .45s,box-shadow .45s;color:white;isolation:isolate}
.portfolio-page #grp-trayectoria .history-chapter>summary{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:12px;min-height:310px;padding:26px!important;overflow:hidden;font-size:clamp(20px,1.8vw,27px);text-align:left;list-style:none}
.portfolio-page #grp-trayectoria .history-chapter>summary::-webkit-details-marker{display:none}
.portfolio-page #grp-trayectoria .history-chapter>summary::after{content:'↗';position:absolute;top:22px;right:24px;color:#f5c518;font-size:28px;transition:transform .4s}
.portfolio-page #grp-trayectoria .history-chapter[open]>summary::after{content:'−';transform:rotate(180deg)}
.portfolio-page #grp-trayectoria .history-cover,.portfolio-page #grp-trayectoria .history-blueprint{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .8s;opacity:.65}
.portfolio-page #grp-trayectoria .history-blueprint{background:linear-gradient(135deg,#315067,#122330);opacity:1}
.portfolio-page #grp-trayectoria .history-blueprint::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 39px,#ffffff0c 40px),repeating-linear-gradient(90deg,transparent 0 39px,#ffffff0c 40px);transform:perspective(350px) rotateX(25deg) scale(1.3)}
.portfolio-page #grp-trayectoria summary::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#10202d20,#10202d70 30%,#10202df5);z-index:-1}
.portfolio-page #grp-trayectoria .route-number{font-size:64px;line-height:1;font-weight:400;color:#f5c518;margin-bottom:auto}
.portfolio-page #grp-trayectoria .history-meta{font:11px 'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:.08em;color:#bdcbd5}
.portfolio-page #grp-trayectoria .history-chapter:hover{border-color:#e6b916!important;box-shadow:0 16px 34px #0004;transform:translateY(-4px)}
.portfolio-page #grp-trayectoria .history-chapter:hover .history-cover{transform:scale(1.06)}
.portfolio-page #grp-trayectoria .history-chapter[open]{grid-column:1/-1;background:#f3f3ee;color:#172936}
.portfolio-page #grp-trayectoria .history-chapter[open]>summary{min-height:250px;color:#fff}
.portfolio-page #grp-trayectoria .history-chapter .chips{padding:24px!important}
.portfolio-page #grp-trayectoria .history-chapter .chips li{color:#172936}
.portfolio-page #grp-trayectoria summary:focus-visible{outline:3px solid #f5c518;outline-offset:-4px}
@media(max-width:1050px){.portfolio-page #grp-trayectoria>.tabla{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.portfolio-page #grp-trayectoria{padding:24px 16px;margin-top:40px}.portfolio-page #grp-trayectoria>.tabla{grid-template-columns:1fr}.portfolio-page #grp-trayectoria .history-chapter>summary{min-height:260px}.portfolio-page #grp-trayectoria .history-chapter .chips{padding:16px!important}}
@media(prefers-reduced-motion:reduce){.portfolio-page #grp-trayectoria *,#divs-track.divs-accordion>.div{transition:none!important;animation:none!important}.portfolio-page #grp-trayectoria .history-chapter:hover{transform:none}}
@media(min-width:901px){body[data-foundation] .foundation-film-zone .foundation-background-video{max-width:512px!important;justify-self:center}body[data-foundation] .foundation-film-zone::before{display:none}}

/* refinamiento-v63.css */
/* Portfolio: fill the desktop introduction with an existing project photograph. */
.portfolio-intro-v63{display:grid;grid-template-columns:1fr 1.12fr;gap:clamp(32px,5vw,80px);align-items:center;margin-bottom:40px}
.portfolio-intro-copy>p:not(.kicker){line-height:1.8;color:#5c6870;max-width:54ch}
.portfolio-intro-v63 h2{font-size:clamp(32px,3.2vw,54px);line-height:1.15;margin:16px 0 24px}
.portfolio-intro-photo{position:relative;margin:0;min-width:0;overflow:hidden;background:#142431;aspect-ratio:1.35}
.portfolio-intro-photo>img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.portfolio-intro-photo:hover>img{transform:scale(1.035)}
.portfolio-intro-photo figcaption{position:absolute;inset:auto 0 0;padding:70px 28px 26px;display:grid;gap:8px;color:#fff;background:linear-gradient(transparent,#10212feb)}
.portfolio-intro-photo figcaption span{font:11px 'IBM Plex Mono',monospace;letter-spacing:.08em}
.portfolio-intro-photo figcaption span:first-child{color:#f5c518}.portfolio-intro-photo figcaption strong{font-size:27px;line-height:1.2}
.portfolio-facts-v63{display:flex;gap:36px;border-top:1px solid #c8d0d4;margin-top:30px;padding-top:22px}.portfolio-facts-v63 b{display:block;font-size:44px;line-height:1.1;color:#172c3b}.portfolio-facts-v63 span{display:block;font-size:12px;color:#66747e;margin-top:7px}
@media(min-width:1100px){.portfolio-page #grp-clientes>.vertical-carousel,.portfolio-page .vertical-status{max-width:none}.portfolio-page .vertical-carousel .project-cover{grid-template-columns:1.55fr 1fr!important}}
/* A single secondary photograph should use the whole available row. */
body[data-foundation] #ecko .proy-fotos .fp-side.one{grid-template-columns:minmax(0,1fr)!important}
body[data-foundation] #ecko .nave-industrial .fp-side.one img{aspect-ratio:auto!important;height:auto!important;object-fit:contain!important}
.division-touch-controls,.division-touch-caption{display:none}
@media(max-width:900px){
 .portfolio-intro-v63{grid-template-columns:1fr;gap:28px}.portfolio-intro-photo{aspect-ratio:1.45}.portfolio-intro-photo figcaption{padding:50px 20px 20px}
 #divisiones .carousel{margin-inline:0}
 #divs-track.divs-accordion{flex-direction:row!important;height:clamp(360px,92vw,480px);width:100%;touch-action:pan-y;overflow:hidden}
 #divs-track.divs-accordion>.div{flex:0 0 24px!important;height:100%!important;min-width:0;border-top:0;border-left:1px solid #ffffff30;transition:flex-basis .65s cubic-bezier(.22,.75,.25,1)!important}
 #divs-track.divs-accordion>.div.is-open{flex-basis:calc(100% - 120px)!important}
 #divs-track.divs-accordion>.div>img{left:50%;width:calc(100vw - 48px);max-width:none;transform:translateX(-50%) scale(1.06)!important;filter:saturate(.3) brightness(.55);transition:transform .8s cubic-bezier(.22,.75,.25,1),filter .65s ease}
 #divs-track.divs-accordion>.div.is-open>img{transform:translateX(-50%) scale(1)!important;filter:none}
 #divs-track.divs-accordion>.div .t{width:calc(100vw - 168px);padding:0 15px 24px;bottom:0}
 #divs-track.divs-accordion>.div .t h3{font-size:clamp(19px,4.8vw,30px);line-height:1.17;word-break:normal}
 #divs-track.divs-accordion>.div .t :is(p,.nota,i){display:none}
 #divs-track.divs-accordion>.div .t em{font-size:11px;margin-top:18px}
 #divs-track.divs-accordion .div-label{writing-mode:vertical-rl;transform:translateX(-50%) rotate(180deg);left:50%;right:auto;bottom:22px;gap:10px;font-size:11px;letter-spacing:.04em}
 #divs-track.divs-accordion .div-label::after{display:none}
 #divs-track.divs-accordion .div-label b{font-size:9px}
 .division-touch-controls{display:flex;justify-content:space-between;gap:6px;margin-top:18px}
 .division-touch-controls button{flex:1;min-height:44px;min-width:0;border:1px solid #ffffff35;background:transparent;color:#c9d2da;font:12px 'IBM Plex Mono',monospace;cursor:pointer;transition:background .3s,color .3s}
 .division-touch-controls button[aria-pressed=true]{background:#e6b916;border-color:#e6b916;color:#122330}
 .division-touch-controls button:focus-visible{outline:2px solid white;outline-offset:3px}
 .division-touch-caption{display:block;min-height:170px;padding-top:18px;max-width:65ch}
 .division-touch-caption p{font-size:15px;line-height:1.65;color:#e1e7eb;margin:0 0 12px;text-align:left}
 .division-touch-caption>span{font:10px/1.6 'IBM Plex Mono',monospace;text-transform:uppercase;color:#b5c1ca;letter-spacing:.06em}
}
@media(min-width:601px) and (max-width:900px){#divs-track.divs-accordion>.div .t{width:calc(100vw - 240px);padding:0 24px 30px}}
@media(prefers-reduced-motion:reduce){#divs-track.divs-accordion>.div,#divs-track.divs-accordion>.div>img,.portfolio-intro-photo>img{transition:none!important}.portfolio-intro-photo:hover>img{transform:none}}
.portfolio-intro-copy>p{text-align:left!important;text-justify:auto}
.portfolio-page #grp-trayectoria .history-chapter>summary{color:#fff!important}
.portfolio-page #grp-trayectoria .history-chapter>summary>span:not(.route-number):not(.history-meta):not(.history-blueprint){color:#fff!important;font-size:clamp(19px,1.7vw,26px)!important;font-weight:600;line-height:1.3}

.portfolio-intro-copy>p{text-align:left!important}.portfolio-page #grp-trayectoria .history-chapter>summary{color:#fff!important}.portfolio-page #grp-trayectoria .history-chapter>summary>span:not(.route-number):not(.history-meta):not(.history-blueprint){color:#fff!important;font-size:clamp(19px,1.7vw,26px)!important;font-weight:600;line-height:1.3}

/* refinamiento-v64.css */
/* Final typographic rules: complete words, no discretionary hyphenation. */
html body *,html body *::before,html body *::after{-webkit-hyphens:none!important;hyphens:none!important;word-break:normal!important}
body p,body .lede,body .desc,body .nota,body dd{text-align:left!important;text-justify:auto!important;overflow-wrap:normal!important}
body h1,body h2,body h3{overflow-wrap:normal!important}
body[data-foundation] a,body[data-foundation] a *,body[data-foundation] .et-project-index a,body[data-foundation] .et-project-index a *{text-decoration:none!important;text-decoration-line:none!important}
body[data-foundation] .et-project-index a{border-bottom:1px solid #ffffff25!important;box-shadow:none!important;background-image:none!important}
body[data-foundation] .et-project-index a::after{display:none!important}
/* One integrated banner, with no fixed height to clip its text. */
body[data-foundation] .foundation-film-zone{display:grid!important;grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr)!important;grid-template-rows:auto auto!important;gap:0 38px!important;height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;padding:58px max(24px,4vw)!important;background:radial-gradient(ellipse at 20% 10%,#2a404e,#101d27 70%)!important;align-items:start!important}
body[data-foundation] .foundation-film-zone::before,body[data-foundation] .foundation-film-zone::after{display:none!important}
body[data-foundation] .foundation-film-zone .foundation-intro{grid-column:1!important;grid-row:1!important;position:relative!important;align-self:start!important;padding:0!important;margin:0!important;min-height:0!important;height:auto!important;background:none!important}
body[data-foundation] .foundation-intro>.wrap{padding:0!important;width:100%!important;max-width:none!important}
body[data-foundation] .foundation-intro::after{display:none!important}
body[data-foundation] .foundation-intro h1{font-size:clamp(38px,4.5vw,72px)!important;line-height:1.08!important;max-width:none!important;margin:20px 0!important}
body[data-foundation] .foundation-intro p{max-width:60ch!important;font-size:17px!important;line-height:1.75!important}
body[data-foundation] .foundation-film-zone .foundation-background-video{grid-column:2!important;grid-row:1/3!important;position:relative!important;inset:auto!important;display:block!important;width:100%!important;height:auto!important;max-height:650px!important;max-width:366px!important;aspect-ratio:512/910!important;object-fit:contain!important;justify-self:center;align-self:center;filter:none!important;opacity:1!important;border:1px solid #ffffff24;border-radius:12px;background:#0c171e!important}
body[data-foundation] .foundation-film-zone .foundation-explanation{grid-column:1!important;grid-row:2!important;padding:28px 0 0!important;margin:28px 0 0!important;background:none!important;border-top:1px solid #ffffff26;width:auto!important;min-width:0}
body[data-foundation] .foundation-film-zone .foundation-story{display:block!important;padding:0!important;margin:0!important;border:0!important;width:100%!important}
body[data-foundation] .foundation-film-zone .foundation-story .rama{display:block!important;width:190px!important;padding:0!important;margin:0 0 20px!important}
body[data-foundation] .foundation-film-zone .foundation-story .mk img{width:190px!important;height:auto!important;max-width:100%!important;margin:0!important}
body[data-foundation] .foundation-film-zone .foundation-story .lede{font-size:16px!important;line-height:1.75!important;max-width:62ch!important;margin:0!important}
body[data-foundation] .foundation-film-zone .foundation-video-toggle{grid-column:2!important;grid-row:3!important;position:static!important;justify-self:center;margin:14px 0 0!important}
body[data-foundation] .et-actions{flex-wrap:wrap!important;gap:18px!important}
body[data-foundation] .et-actions .btn{white-space:normal!important;text-align:center!important;max-width:100%}
body[data-foundation] :is(#capacidad-instalada,#maquinaria,.proy){scroll-margin-top:calc(var(--et-header,80px) + 150px)!important}
/* Diagram and photographs share the same outer frame and height. */
body[data-foundation] #ecko .front-layout64{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:stretch;margin-top:26px}
body[data-foundation] #ecko .front-layout64>.foundation-metrics{grid-column:1;grid-row:1/3;margin:0!important;min-width:0;align-self:stretch}
body[data-foundation] #ecko .front-layout64>.et-gallery-bar{grid-column:2;grid-row:1;margin:0!important;padding:0 0 12px!important;align-self:start;min-width:0}
body[data-foundation] #ecko .front-layout64>.proy-fotos{grid-column:2;grid-row:2;align-self:stretch;display:flex!important;flex-direction:column;gap:12px!important;min-width:0;height:490px!important;overflow:hidden}
body[data-foundation] #ecko .front-layout64 .fp-main{flex:1;min-height:0!important;display:flex;align-items:center;justify-content:center;overflow:hidden!important;background:#0f1c25!important;border-radius:10px}
body[data-foundation] #ecko .front-layout64 .fp-main img{height:100%!important;width:100%!important;max-height:100%!important;object-fit:contain!important;aspect-ratio:auto!important}
body[data-foundation] #ecko .front-layout64 .fp-side,body[data-foundation] #ecko .front-layout64 .fp-side.one{display:flex!important;flex-direction:row;height:82px!important;min-height:82px!important;gap:10px;overflow-x:auto!important;overflow-y:hidden!important}
body[data-foundation] #ecko .front-layout64 .fp-side img{flex:0 0 110px;width:110px!important;height:82px!important;object-fit:contain!important;aspect-ratio:auto!important;background:#101d26}
body[data-foundation] #ecko .front-layout64 .soil-feature{margin-top:0!important;padding:20px!important}
body[data-foundation] #ecko .front-layout64 .soil-section{height:235px!important}
body[data-foundation] #ecko .front-layout64 .soil-note{font-size:12px!important;line-height:1.65!important;margin:16px 0!important}
body[data-foundation] #ecko .front-layout64 .pile-count{padding:18px 22px!important}
/* Informational stock cards: touch scroll plus a slow automatic tour. */
.stock-tools64{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:25px 0 18px;color:#c3cfd7;font-size:13px}.stock-tools64 button{padding:12px 16px;color:#edcb8a;background:transparent;border:1px solid #dbb46e80;font:inherit;cursor:pointer}
.stock-track64{display:flex;gap:18px;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#dbb46e #1b2d38;touch-action:pan-x pan-y;padding:0 0 18px;overscroll-behavior-x:contain;cursor:grab}
.stock-card64{flex:0 0 min(360px,82vw);padding:30px;background:linear-gradient(140deg,#2a3e4c,#162630);border:1px solid #ffffff24;box-sizing:border-box;min-width:0}
.stock-number64{font:48px 'IBM Plex Mono',monospace;color:#dbb46e}.stock-card64 h3{font-size:23px!important;line-height:1.3;margin:25px 0 18px!important}.stock-card64 p{font-size:15px!important;line-height:1.8!important;color:#cfdae1}
/* Reference interaction: all equal, expand under pointer, reset on leave. */
.division-touch-controls,.division-touch-caption{display:none!important}
#divs-track.divs-accordion{display:flex!important;flex-direction:row!important;height:clamp(400px,40vw,580px)!important;gap:5px!important;overflow:hidden!important;touch-action:pan-y}
#divs-track.divs-accordion>.div{flex:1 1 0%!important;height:100%!important;min-width:0!important;border:0!important;transition:flex .5s ease!important}
#divs-track.divs-accordion>.div.is-open{flex:3 1 0%!important}
#divs-track.divs-accordion>.div>img{inset:0!important;left:0!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover!important;transform:none!important;transition:filter .5s ease!important;filter:saturate(.7) brightness(.7)!important}
#divs-track.divs-accordion>.div.is-open>img{filter:none!important}
#divs-track.divs-accordion .div-label{left:50%!important;right:auto!important;top:50%!important;bottom:auto!important;transform:translate(-50%,-50%) rotate(180deg)!important;writing-mode:vertical-rl!important;white-space:nowrap;font-size:clamp(16px,1.6vw,24px)!important;opacity:1;transition:opacity .35s ease!important;gap:14px!important}
#divs-track.divs-accordion .div-label::after,#divs-track.divs-accordion .div-label b{display:none!important}
#divs-track.divs-accordion>.div.is-open .div-label{opacity:0!important}
#divs-track.divs-accordion>.div .t{width:100%!important;box-sizing:border-box!important;padding:26px!important;transition:opacity .35s ease .15s!important;transform:none!important}
#divs-track.divs-accordion>.div .t h3{font-size:clamp(20px,2vw,30px)!important}.division-mobile-detail64{display:none}
@media(max-width:900px){
 body[data-foundation] .foundation-film-zone{padding:32px 24px!important;gap:24px!important;grid-template-columns:1fr!important;grid-template-rows:auto auto auto auto!important}
 body[data-foundation] .foundation-film-zone .foundation-intro{grid-row:1!important;grid-column:1!important}
 body[data-foundation] .foundation-intro h1{font-size:clamp(34px,8vw,54px)!important}
 body[data-foundation] .foundation-film-zone .foundation-background-video{grid-row:2!important;grid-column:1!important;max-height:480px!important;max-width:270px!important}
 body[data-foundation] .foundation-film-zone .foundation-video-toggle{grid-row:3!important;grid-column:1!important;margin:0!important}
 body[data-foundation] .foundation-film-zone .foundation-explanation{grid-row:4!important;grid-column:1!important;margin:0!important;padding-top:24px!important}
 body[data-foundation] .et-nav-inner{padding-block:15px!important;gap:14px!important}.et-nav-links{width:100%;justify-content:space-between!important;gap:10px!important}.et-nav-links a{font-size:14px!important;padding-block:12px!important}
 #divs-track.divs-accordion{height:400px!important;gap:3px!important}#divs-track.divs-accordion .div-label{font-size:12px!important}#divs-track.divs-accordion>.div.is-open{flex:5 1 0%!important}#divs-track.divs-accordion>.div .t{padding:16px!important}#divs-track.divs-accordion>.div .t h3{font-size:19px!important}#divs-track.divs-accordion>.div .t :is(p,.nota,i){display:none!important}
 .division-mobile-detail64{display:block;min-height:92px;margin-top:20px;color:#d3dde4;font-size:14px;line-height:1.7;text-align:left}
}
@media(max-width:650px){body[data-foundation] #ecko .front-layout64{grid-template-columns:1fr;gap:18px}body[data-foundation] #ecko .front-layout64>.foundation-metrics{grid-column:1;grid-row:1}body[data-foundation] #ecko .front-layout64>.et-gallery-bar{grid-column:1;grid-row:2}body[data-foundation] #ecko .front-layout64>.proy-fotos{grid-column:1;grid-row:3;height:430px!important}.stock-tools64{align-items:flex-start}.stock-tools64 span{max-width:20ch}}
@media(prefers-reduced-motion:reduce){#divs-track.divs-accordion>.div,#divs-track.divs-accordion>.div>img{transition:none!important}}
@media(min-width:651px){body[data-foundation] #ecko .front-layout64{height:640px;grid-template-rows:62px minmax(0,1fr)}body[data-foundation] #ecko .front-layout64>.foundation-metrics{height:100%;box-sizing:border-box;overflow:auto}body[data-foundation] #ecko .front-layout64>.proy-fotos{height:100%!important;box-sizing:border-box}}
@media(max-width:900px){#divs-track.divs-accordion>.div .t h3{font-size:clamp(13px,3.4vw,22px)!important}body[data-foundation] .et-facts{grid-template-columns:repeat(2,minmax(0,1fr))!important}body[data-foundation] .et-facts>div{min-width:0}}
body[data-foundation] #capacidad-instalada,body[data-foundation] #maquinaria{scroll-margin-top:var(--foundation-anchor64,220px)!important}
body[data-foundation] #cimentaciones{padding-top:var(--et-header,80px)!important}

/* refinamiento-v65.css */
/* A graphic editorial panel replaces the extra Senate photograph. */
.portfolio-engineering65{position:relative;overflow:hidden;background:#152632;color:#f3f4f1;padding:clamp(26px,3vw,48px);min-height:440px;display:flex;flex-direction:column;justify-content:flex-end;border-top:3px solid #e6b916;isolation:isolate}
.portfolio-engineering65::before{content:'';position:absolute;inset:0;z-index:-2;background:repeating-linear-gradient(0deg,transparent 0 39px,#ffffff08 40px),repeating-linear-gradient(90deg,transparent 0 39px,#ffffff08 40px)}
.engineering-kicker65{font:11px/1.6 'IBM Plex Mono',monospace;letter-spacing:.1em;color:#e6b916;margin-bottom:auto}
.portfolio-engineering65 h3{font-size:clamp(28px,3vw,44px);line-height:1.15;max-width:16ch;margin:120px 0 26px}
.engineering-stages65{display:flex;flex-wrap:wrap;gap:18px 24px;border-top:1px solid #ffffff30;padding-top:18px}.engineering-stages65 span{font-size:12px}.engineering-stages65 b{display:block;color:#e6b916;font:18px 'IBM Plex Mono',monospace;margin-bottom:8px}
.portfolio-engineering65>a{color:#fff;font-size:13px;text-decoration:none;margin-top:30px}.portfolio-engineering65>a span{color:#e6b916;margin-left:16px}
.engineering-drawing65{position:absolute;right:28px;top:62px;width:160px;height:130px;opacity:.5;z-index:-1}.engineering-drawing65 span{display:block;position:absolute;border:1px solid #e6b916;width:100px;height:72px;transform:skewY(-24deg);right:0;top:0}.engineering-drawing65 span:nth-child(2){right:25px;top:26px}.engineering-drawing65 span:nth-child(3){right:50px;top:52px}.engineering-drawing65 i{position:absolute;right:50px;top:0;height:140px;border-left:1px dashed #d2dde5}
#grp-trayectoria .history-chapter:nth-child(10) .history-cover,#grp-trayectoria .history-chapter:nth-child(11) .history-cover{object-position:center 34%}
@media(max-width:900px){
 /* Restore the full-width photograph and two secondary photographs. */
 body[data-foundation] #ecko .front-layout64{display:block!important;height:auto!important;min-height:0!important;margin-top:26px}
 body[data-foundation] #ecko .front-layout64>.foundation-metrics{height:auto!important;overflow:visible!important}
 body[data-foundation] #ecko .front-layout64>.et-gallery-bar{margin-top:28px!important;padding:18px 0!important}
 body[data-foundation] #ecko .front-layout64>.proy-fotos{display:grid!important;grid-template-columns:minmax(0,1fr)!important;height:auto!important;min-height:0!important;overflow:visible!important;gap:10px!important}
 body[data-foundation] #ecko .front-layout64 .fp-main{display:block!important;flex:none!important;width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;overflow:hidden!important;background:transparent!important;aspect-ratio:auto!important}
 body[data-foundation] #ecko .front-layout64 .fp-main img{display:block!important;width:100%!important;height:auto!important;max-height:none!important;object-fit:contain!important;aspect-ratio:auto!important;border-radius:8px}
 body[data-foundation] #ecko .front-layout64 .fp-side,body[data-foundation] #ecko .front-layout64 .fp-side.one{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;gap:10px!important}
 body[data-foundation] #ecko .front-layout64 .fp-side img{display:block!important;width:100%!important;height:auto!important;aspect-ratio:5/3!important;object-fit:cover!important;max-height:none!important;min-width:0!important}
 /* Restore the vertical mobile accordion, with smooth opening. */
 #divs-track.divs-accordion{flex-direction:column!important;height:auto!important;gap:0!important;touch-action:pan-y}
 #divs-track.divs-accordion>.div{flex:none!important;height:74px!important;width:100%!important;border-top:1px solid #ffffff25!important;transition:height .65s cubic-bezier(.22,.75,.25,1)!important}
 #divs-track.divs-accordion>.div.is-open{flex:none!important;height:clamp(460px,120vw,600px)!important}
 #divs-track.divs-accordion>.div>img{width:100%!important;height:100%!important;object-fit:cover!important;transform:scale(1.035)!important;transition:transform .8s cubic-bezier(.22,.75,.25,1),filter .55s ease!important}
 #divs-track.divs-accordion>.div.is-open>img{transform:scale(1)!important}
 #divs-track.divs-accordion .div-label{writing-mode:horizontal-tb!important;transform:translateY(-50%)!important;top:50%!important;bottom:auto!important;left:20px!important;right:20px!important;font-size:clamp(15px,4.3vw,20px)!important;gap:14px!important;white-space:normal!important}
 #divs-track.divs-accordion .div-label b{display:block!important;font-size:11px!important;color:#e6b916}
 #divs-track.divs-accordion .div-label::after{display:block!important;content:'';height:1px;width:auto;flex:1;background:#ffffff40}
 #divs-track.divs-accordion>.div .t{padding:0 20px 28px!important;width:100%!important;bottom:0!important}
 #divs-track.divs-accordion>.div .t h3{font-size:clamp(24px,6vw,34px)!important;line-height:1.15!important}
 #divs-track.divs-accordion>.div .t :is(p,.nota,i){display:block!important}
 #divs-track.divs-accordion>.div .t p{font-size:16px!important;line-height:1.65!important;margin-top:18px!important}
 #divs-track.divs-accordion>.div .t i,#divs-track.divs-accordion>.div .t .nota{font-size:10px!important;line-height:1.7!important;letter-spacing:.12em!important}
 .division-mobile-detail64{display:none!important}
 /* Return the video to the background, edge to edge behind the introduction. */
 body[data-foundation] .foundation-film-zone{position:relative!important;display:grid!important;grid-template-columns:minmax(0,1fr)!important;grid-template-rows:auto auto!important;padding:0!important;gap:0!important;isolation:isolate;background:#152431!important}
 body[data-foundation] .foundation-film-zone .foundation-intro{grid-column:1!important;grid-row:1!important;position:relative!important;z-index:1!important;display:flex!important;align-items:flex-end!important;min-height:calc(100svh - var(--et-header,80px))!important;height:auto!important;padding:clamp(120px,22svh,220px) 22px 120px!important;isolation:isolate;background:linear-gradient(180deg,#09172210 0%,#09172235 25%,#09172285 55%,#091722e8 100%)!important}
 body[data-foundation] .foundation-intro>.wrap{width:100%!important;max-width:none!important;padding:0!important}
 body[data-foundation] .foundation-intro h1{font-size:clamp(36px,9vw,60px)!important;color:white!important;line-height:1.08!important}
 body[data-foundation] .foundation-intro p{font-size:16px!important;line-height:1.75!important;color:#f1f4f6!important}
 body[data-foundation] .foundation-intro .kicker{font-size:11px!important;color:#f5c518!important;letter-spacing:.12em!important}
 body[data-foundation] .foundation-film-zone .foundation-background-video{position:absolute!important;grid-column:1!important;grid-row:1!important;inset:0!important;width:100%!important;height:100%!important;max-height:none!important;max-width:none!important;aspect-ratio:auto!important;object-fit:cover!important;object-position:center!important;border:0!important;border-radius:0!important;z-index:0!important}
 body[data-foundation] .foundation-film-zone .foundation-video-toggle{position:relative!important;grid-column:1!important;grid-row:1!important;align-self:end!important;justify-self:start!important;margin:0 22px 26px!important;z-index:2!important}
 body[data-foundation] .foundation-film-zone .foundation-explanation{grid-column:1!important;grid-row:2!important;position:relative!important;z-index:2!important;margin:0!important;padding:48px 22px!important;background:#1b2430!important;border-top:1px solid #ffffff20!important}
 body[data-foundation] .foundation-film-zone .foundation-story .rama.ecko-brand{width:100%!important;max-width:none!important;margin:0 0 30px!important}
 body[data-foundation] .foundation-film-zone .foundation-story .ecko-brand .mk{width:100%!important;max-width:none!important}
 body[data-foundation] .foundation-film-zone .foundation-story .ecko-brand .mk img{width:100%!important;max-width:560px!important;height:auto!important;margin:0 auto!important}
 body[data-foundation] .foundation-film-zone .foundation-story .lede{font-size:16px!important;line-height:1.85!important}
}
@media(prefers-reduced-motion:reduce){#divs-track.divs-accordion>.div,#divs-track.divs-accordion>.div>img{transition:none!important}}

/* refinamiento-v67.css */
/* Isolated refinements: preserve existing mobile galleries and hero. */
.installed-capacity67{margin-top:58px;scroll-margin-top:220px}.equipment-layout67{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px;align-items:start;margin-top:32px}.equipment-photo67{margin:0;position:sticky;top:190px;background:#101c26;border:1px solid #bda36d66;border-radius:12px;overflow:hidden}.equipment-photo67 img{display:block;width:100%;height:540px;max-height:65vh;object-fit:contain}.equipment-photo67 figcaption{padding:18px 22px;color:#dec08a;border-top:1px solid #bda36d44;font-size:13px;letter-spacing:.06em}.equipment-row67{border-top:1px solid #bda36d66;padding:0;background:transparent}.equipment-row67:last-child{border-bottom:1px solid #bda36d66}.equipment-row67 summary{display:flex;align-items:center;gap:16px;list-style:none;padding:22px 12px;cursor:pointer}.equipment-row67 summary::-webkit-details-marker{display:none}.equipment-row67 summary h3{margin:0;flex:1;font-size:clamp(17px,1.6vw,22px);line-height:1.35}.equipment-number67{color:#dec08a;font:14px monospace}.equipment-sign67:before{content:'+';font-size:25px;color:#dec08a}.equipment-row67[open] .equipment-sign67:before{content:'−'}.equipment-row67[open]{background:#ffffff05}.equipment-content67{padding:0 18px 22px 48px}.equipment-content67 ul{padding-left:18px;margin:0;line-height:1.7;font-size:15px}.equipment-content67 li+li{margin-top:6px}.equipment-mobile67{display:none}.equipment-row67 summary:focus-visible{outline:2px solid #f5ca23;outline-offset:-3px}
.portfolio-engineering67{min-width:0;background:#142631;color:#f5f1e7;border:1px solid #ba9c6655;padding:22px;border-radius:12px}.portfolio-engineering67>p{font:11px monospace;letter-spacing:.15em;color:#ddbd7b}.plan-sheet67{display:block;text-decoration:none!important;color:#ddbd7b}.plan-sheet67 img{display:block;width:100%;height:auto;border:1px solid #c4ab6855}.plan-sheet67 span{display:block;text-align:right;font-size:12px;padding:10px 0}.portfolio-engineering67 h3{font-size:22px;margin:14px 0 6px}.portfolio-engineering67 small{display:block;color:#bbc7ce;margin-bottom:18px}.portfolio-engineering67>a:last-child{color:#ddbd7b}
@media(max-width:1000px){body.menu-abierto #hd{z-index:1000;overflow:visible;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:#16232e!important}body.menu-abierto #menu.on{position:fixed!important;top:var(--menu-bar67,74px)!important;left:0!important;right:0!important;bottom:0!important;width:100%!important;height:calc(100dvh - var(--menu-bar67,74px))!important;max-height:none!important;overflow-y:auto!important;overscroll-behavior:contain;background:#16232e!important;padding-bottom:max(32px,env(safe-area-inset-bottom));z-index:1001}body.menu-abierto .et-nav{visibility:hidden!important}}
@media(max-width:760px){.equipment-layout67{display:block;margin-top:24px}.equipment-photo67{display:none}.equipment-mobile67{display:block;margin:0 0 20px;background:#101c26;border-radius:10px;overflow:hidden}.equipment-mobile67 img{display:block;width:100%;height:auto;max-height:65svh;object-fit:contain}.equipment-content67{padding:0 12px 24px}.equipment-row67 summary{padding:20px 8px;gap:12px}.equipment-content67 ul{padding-left:20px}.portfolio-engineering67{padding:14px}.installed-capacity67{margin-top:42px}}

/* refinamiento-v68.css */
/* Trayectoria keeps category covers and all written references. */
.history-reference68{margin:12px 0 0;padding:12px 0;border-top:1px solid #b7b1a733;font-size:14px;line-height:1.7}
/* Each source photograph occupies a proportional column, without letterboxing. */
body[data-foundation] #ecko .front-layout64>.proy-fotos.gallery-row68{display:grid!important;grid-template-columns:var(--photo-columns68)!important;grid-template-rows:auto!important;align-items:start!important;align-self:start!important;gap:8px!important;height:auto!important;min-height:0!important;overflow:visible!important;background:none!important;border:0!important;padding:0!important;box-shadow:none!important}
body[data-foundation] #ecko .front-layout64 .gallery-row68 :is(.fp-main,.fp-side,.fp-side.one){display:contents!important;background:none!important;border:0!important;box-shadow:none!important}
body[data-foundation] #ecko .front-layout64 .gallery-row68 .fp-main::after,body[data-foundation] #ecko .front-layout64 .gallery-row68 .fp-main::before{display:none!important}
body[data-foundation] #ecko .front-layout64 .gallery-row68 img{display:block!important;position:static!important;width:100%!important;height:auto!important;max-height:none!important;min-height:0!important;min-width:0!important;aspect-ratio:auto!important;object-fit:contain!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;outline:0;cursor:zoom-in;transform:none!important;transition:filter .2s ease}
body[data-foundation] #ecko .front-layout64 .gallery-row68 img:hover{filter:brightness(1.08)}
body[data-foundation] #ecko .front-layout64 .gallery-row68 img:focus-visible{outline:2px solid #f5c518;outline-offset:3px}
.featured-atlas68{display:none}
@media(min-width:901px){
 body[data-foundation] .foundation-film-zone .foundation-intro{overflow:visible!important}
 body[data-foundation] .foundation-film-zone .foundation-intro>.wrap{isolation:isolate;overflow:visible!important}
 body[data-foundation] .foundation-film-zone .foundation-intro>.wrap::before{inset:0!important;grid-area:auto!important;transform:none!important;width:100%!important;height:100%!important;aspect-ratio:auto!important;background-position:center!important;background-size:contain!important;opacity:.065!important}
 body[data-foundation] .foundation-film-zone .foundation-story .rama.ecko-brand{width:clamp(300px,30vw,440px)!important;max-width:100%!important;margin:0 0 24px!important}
 body[data-foundation] .foundation-film-zone .foundation-story .ecko-brand .mk{width:100%!important;max-width:none!important}
 body[data-foundation] .foundation-film-zone .foundation-story .ecko-brand .mk img{width:100%!important;max-width:none!important;height:auto!important}
 body[data-foundation] .foundation-film-zone .foundation-story .lede{font-size:clamp(18px,1.5vw,23px)!important;line-height:1.7!important;max-width:60ch!important}
 body[data-foundation] .foundation-film-zone .foundation-explanation{padding-top:30px!important;margin-top:32px!important}
}
@media(min-width:1001px){
 #proyectos-destacados .carousel:has(#destacados-track){display:none!important}
 .featured-atlas68{display:block;max-width:1240px;margin:44px auto 0;padding:0 var(--gut)}
 .atlas-heading68{display:flex;justify-content:space-between;border-top:1px solid #ffffff50;padding:15px 0 24px;color:#e0bb72;font:11px 'IBM Plex Mono',monospace;letter-spacing:.12em}
 .atlas-grid68{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:34px 24px;align-items:start}
 .atlas-work68:nth-child(even){padding-top:34px}
 .atlas-link68{display:block;text-decoration:none;color:#f7f4ed;padding-bottom:20px;border-bottom:1px solid #ffffff25}
 .atlas-index68{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px;font:9px 'IBM Plex Mono',monospace;letter-spacing:.04em;color:#aeb9c6}
 .atlas-index68>span:first-child{font-size:26px;letter-spacing:-.08em;color:#d9b676}
 .atlas-link68 figure{position:relative;margin:0 0 18px;aspect-ratio:4/3;overflow:hidden}
 .atlas-link68 figure img{width:100%;height:100%;object-fit:cover;transition:filter .35s ease;filter:saturate(.8)}
 .atlas-view68{position:absolute;right:0;bottom:0;width:34px;height:34px;display:grid;place-items:center;background:#f5c518;color:#1b2430;font-size:22px;transform:translateY(100%);transition:transform .25s ease}
 .atlas-link68:hover .atlas-view68,.atlas-link68:focus-visible .atlas-view68{transform:none}
 .atlas-link68:hover img,.atlas-link68:focus-visible img{filter:saturate(1.1)}
 .atlas-link68 h3{font-size:18px;line-height:1.35;letter-spacing:-.02em;text-wrap:pretty;margin:0 0 10px;min-height:49px}
 .atlas-location68{font-size:11px;line-height:1.65;color:#aeb9c6;min-height:38px}.atlas-location68 span{display:block}
 .atlas-cta68{display:flex;justify-content:space-between;margin-top:18px;font-size:11px;color:#e0bb72}
}
@media(prefers-reduced-motion:reduce){.atlas-view68,.atlas-link68 figure img{transition:none}}

/* video-v69.css */
/* Native panoramic framing: original video pixels, complete composition. */
body[data-foundation] .foundation-film-zone{display:grid!important;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)!important;grid-template-rows:auto auto!important;gap:0 48px!important;max-width:1322px!important;width:100%!important;margin-inline:auto!important;padding:28px 64px 48px!important;isolation:isolate}
body[data-foundation] .foundation-film-zone .foundation-background-video{position:relative!important;inset:auto!important;grid-column:1/-1!important;grid-row:1!important;display:block!important;width:100%!important;height:auto!important;max-width:1194px!important;max-height:none!important;aspect-ratio:1194/512!important;object-fit:contain!important;object-position:center!important;align-self:start!important;justify-self:center!important;border:0!important;border-radius:0!important;filter:none!important;opacity:1!important;z-index:0!important;background:transparent!important}
body[data-foundation] .foundation-film-zone .foundation-video-toggle{position:relative!important;inset:auto!important;grid-column:1/-1!important;grid-row:1!important;justify-self:end!important;align-self:end!important;margin:0 16px 16px!important;z-index:2!important;background:#14212edb!important;color:white!important;border:1px solid #ffffff88!important;padding:10px 16px!important;border-radius:24px!important;font-size:13px!important;min-height:44px}
body[data-foundation] .foundation-film-zone .foundation-intro{grid-column:1!important;grid-row:2!important;padding:38px 0 0!important;margin:0!important;display:block!important;min-height:0!important;height:auto!important;background:none!important;align-self:start!important}
body[data-foundation] .foundation-film-zone .foundation-explanation{grid-column:2!important;grid-row:2!important;align-self:start!important;margin:38px 0 0!important;padding:0 0 0 32px!important;border:0!important;border-left:1px solid #ffffff26!important;background:none!important}
body[data-foundation] .foundation-film-zone .foundation-intro>.wrap{padding:0!important}
body[data-foundation] .foundation-film-zone .foundation-intro h1{font-size:clamp(36px,4vw,60px)!important}
body[data-foundation] .foundation-film-zone .foundation-story .rama.ecko-brand{width:100%!important;max-width:400px!important;margin:0 0 24px!important}
body[data-foundation] .foundation-film-zone .foundation-story .ecko-brand .mk,body[data-foundation] .foundation-film-zone .foundation-story .ecko-brand .mk img{width:100%!important;max-width:none!important;height:auto!important}
body[data-foundation] .foundation-film-zone .foundation-story .lede{font-size:clamp(17px,1.4vw,20px)!important;line-height:1.75!important}
@media(max-width:900px){
 body[data-foundation] .foundation-film-zone{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:auto auto auto!important;padding:0 0 36px!important;gap:0!important}
 body[data-foundation] .foundation-film-zone .foundation-background-video{grid-column:1!important;grid-row:1!important}
 body[data-foundation] .foundation-film-zone .foundation-video-toggle{grid-column:1!important;grid-row:1!important;margin:0 12px 12px!important;font-size:12px!important;padding:8px 12px!important}
 body[data-foundation] .foundation-film-zone .foundation-intro{grid-column:1!important;grid-row:2!important;padding:32px 22px!important}
 body[data-foundation] .foundation-film-zone .foundation-intro h1{font-size:clamp(34px,8.5vw,58px)!important}
 body[data-foundation] .foundation-film-zone .foundation-intro>.wrap::before{display:none!important}
 body[data-foundation] .foundation-film-zone .foundation-explanation{grid-column:1!important;grid-row:3!important;margin:0 22px!important;padding:30px 0 0!important;border:0!important;border-top:1px solid #ffffff26!important}
 body[data-foundation] .foundation-film-zone .foundation-story .rama.ecko-brand{max-width:560px!important;margin:0 auto 26px!important}
 body[data-foundation] .foundation-film-zone .foundation-story .lede{font-size:17px!important;line-height:1.8!important}
}

/* equipo-v70.css */
.portfolio-intro-v63{grid-template-columns:minmax(0,1fr)!important;min-height:0!important}.portfolio-intro-copy{max-width:960px}.portfolio-intro-copy h2{max-width:26ch}.portfolio-intro-copy>p{max-width:76ch}
.fleet-showcase70{margin-top:32px;border-top:1px solid #d8b679;color:#f7f4ed}.fleet-toolbar70{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0}.fleet-status70{font:10px 'IBM Plex Mono',monospace;letter-spacing:.14em;color:#d8b679}.fleet-toggle70{font:12px inherit;color:#e6c48b;border:1px solid #d8b67970;background:transparent;border-radius:30px;min-height:44px;padding:9px 18px;cursor:pointer}.fleet-panel70{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:42px;align-items:center;padding:20px 0 32px}.fleet-image70{position:relative;margin:0;min-width:0;align-self:center}.fleet-image70 img{width:100%;height:480px;object-fit:contain;display:block}.fleet-image70 figcaption{display:flex;justify-content:space-between;margin:20px 0 0;padding-top:12px;border-top:1px solid #ffffff25;font:11px 'IBM Plex Mono',monospace;letter-spacing:.15em;color:#aebbc5}.fleet-copy70{min-height:490px;padding-top:12px}.fleet-overline70{color:#d8b679;font:10px 'IBM Plex Mono',monospace;letter-spacing:.16em;margin:0 0 20px}.fleet-copy70 h3{font-size:clamp(28px,3.6vw,46px)!important;line-height:1.1;margin:0 0 16px!important;max-width:15ch}.fleet-statement70{color:#c6cfd5;font-size:16px;margin-bottom:24px}.fleet-stat70{display:flex;align-items:center;gap:16px;padding:15px 0;border-block:1px solid #ffffff25;margin-bottom:24px}.fleet-stat70 strong{font:600 38px 'IBM Plex Mono',monospace;color:#e2bb70;letter-spacing:-.04em}.fleet-stat70 span{font-size:12px;color:#b6c2ca;max-width:13ch}.fleet-copy70 h4{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:#bdc9d0;margin-bottom:12px}.fleet-copy70 ul{padding:0;margin:0;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:9px 20px;font-size:12px;line-height:1.6}.fleet-copy70 li{padding-left:12px;position:relative}.fleet-copy70 li:before{content:'';position:absolute;left:0;top:.7em;width:4px;height:4px;background:#d8b679}.fleet-tabs70{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;border-top:1px solid #ffffff25}.fleet-tabs70 button{position:relative;min-width:0;min-height:90px;padding:18px 12px;background:transparent;border:0;border-right:1px solid #ffffff20;color:#aebbc5;font:600 12px/1.5 'Poppins',sans-serif;text-align:left;cursor:pointer}.fleet-tabs70 button:last-child{border-right:0}.fleet-tabs70 button>span{display:block;font:11px 'IBM Plex Mono',monospace;color:#d8b679;margin-bottom:9px}.fleet-tabs70 button[aria-selected=true]{color:white;background:#ffffff07}.fleet-tabs70 button i{position:absolute;left:0;bottom:0;width:100%;height:3px;background:#f5c518;transform:scaleX(0);transform-origin:left}.fleet-tabs70 button[aria-selected=true] i{transform:scaleX(var(--fleet-progress70,0))}.fleet-showcase70:not(.is-enhanced70) .fleet-toolbar70,.fleet-showcase70:not(.is-enhanced70) .fleet-tabs70{display:none}.fleet-panel70[hidden]{display:none!important}.fleet-showcase70 :focus-visible{outline:2px solid #f5c518;outline-offset:4px}
@media(max-width:760px){.fleet-toolbar70{gap:10px}.fleet-status70{max-width:19ch;font-size:9px;line-height:1.6}.fleet-toggle70{font-size:11px;padding:8px 12px}.fleet-panel70{grid-template-columns:1fr;gap:28px;padding-top:6px}.fleet-image70 img{height:300px;max-height:45svh}.fleet-image70 figcaption{margin-top:12px}.fleet-copy70{min-height:440px;padding:0}.fleet-copy70 h3{font-size:34px!important;max-width:none}.fleet-copy70 ul{font-size:12px;gap:9px 14px}.fleet-stat70{margin-bottom:18px}.fleet-stat70 strong{font-size:32px}.fleet-tabs70{grid-template-columns:repeat(3,minmax(0,1fr))}.fleet-tabs70 button{min-height:84px;border-bottom:1px solid #ffffff20;font-size:11px;padding:14px 8px}.fleet-tabs70 button:nth-child(3){border-right:0}.fleet-overline70{margin-bottom:12px}}

/* ecko-v71.css */
/* Palette sampled from the supplied Ecko Terra logo. Scoped to foundations. */
body[data-foundation]{--ecko-blue:#162d4c;--ecko-green:#7eb929;--ecko-light:#f2f5ef;--et-ink:var(--ecko-blue);--et-gold:#91ca43;--senal:var(--ecko-green);--concreto:var(--ecko-blue);--concreto-2:#213d5c;background:var(--ecko-blue);color:#f7faf5}
body[data-foundation] :is(#cimentaciones,#ecko){background:var(--ecko-blue)!important}
body[data-foundation] #hd{background:#162d4cf5;border-bottom:1px solid #ffffff20}
body[data-foundation] #hd .marca{border-left:3px solid #f5c518;padding-left:10px}
body[data-foundation].menu-abierto #hd,body[data-foundation].menu-abierto #menu.on{background:#162d4c!important}
body[data-foundation] :is(.et-nav,.fleet-layout){background:#1c3757f5!important;box-shadow:none!important}
body[data-foundation] :is(.et-signature span,.et-nav-cta,.et-project-index a span,.soil-depth,.bore-current,.soil-heading b,.fleet-overline70,.fleet-status70,.fleet-stat70 strong,.fleet-tabs70 button>span,.kicker,.t2){color:#91ca43!important}
body[data-foundation] .et-nav-links a[aria-current]{color:#a5db5d!important;border-color:#7eb929!important}
body[data-foundation] .et-actions .btn,body[data-foundation] #capacidad-instalada .btn{background:#7eb929!important;border-color:#7eb929!important;color:#10233c!important}
body[data-foundation] .et-actions .btn:hover,body[data-foundation] #capacidad-instalada .btn:hover{background:#a2d45e!important;border-color:#a2d45e!important}
body[data-foundation] .et-project-index a:hover{background:#7eb92920!important;border-color:#7eb929!important}
body[data-foundation] .et-facts{background:#f2f5ef;color:#162d4c;border:0;padding-block:34px}
body[data-foundation] .et-facts strong{color:#496f16!important}body[data-foundation] .et-facts span{color:#3e5568}body[data-foundation] .et-facts>div{border-color:#7eb92980}
body[data-foundation] #ecko :is(.sistema,.proy,.specs,.foundation-metrics){background:transparent!important;box-shadow:none!important;border-color:#99bd814d!important;border-radius:0!important}
body[data-foundation] #ecko .sistema[open]{background:#213d5c!important;border-color:#7eb92980!important}
body[data-foundation] #ecko .proy{border-top:1px solid #7eb92980!important}
body[data-foundation] :is(.pile-count,.soil-feature,.fleet-photo){background:transparent!important;box-shadow:none!important}
body[data-foundation] .pile-count b{color:#91ca43!important}
body[data-foundation] .slurry-hoses{stroke:#91ca43}
body[data-foundation] .et-gallery-open,body[data-foundation] .et-diagram-open{color:#a5db5d!important;border-color:#7eb92970!important;background:transparent!important}
/* Open panoramic banner: no outer frame, no inset video card. */
body[data-foundation] .foundation-film-zone{max-width:1600px!important;padding:0 0 46px!important;gap:0!important;background:#162d4c!important;border:0!important;box-shadow:none!important}
body[data-foundation] .foundation-film-zone .foundation-background-video{max-width:none!important;width:100%!important;border:0!important;border-radius:0!important;background:transparent!important}
body[data-foundation] .foundation-film-zone .foundation-intro{padding:40px 30px 0 clamp(24px,5vw,80px)!important}
body[data-foundation] .foundation-film-zone .foundation-explanation{padding:40px clamp(24px,5vw,80px) 0 30px!important;margin:0!important;border:0!important}
body[data-foundation] .foundation-film-zone .foundation-story .lede{font-size:18px!important;color:#e2e9ef!important}
body[data-foundation] .foundation-film-zone .foundation-video-toggle{background:#162d4ccc!important;border-color:#ffffff66!important}
body[data-foundation] #capacidad-instalada{background:#f2f5ef;color:#162d4c;padding:clamp(22px,3vw,40px);border:0;border-top:5px solid #7eb929}
body[data-foundation] #capacidad-instalada :is(h2,h3,h4){color:#162d4c!important}
body[data-foundation] #capacidad-instalada :is(.lede,.fleet-statement70,.fleet-copy70 li,.fleet-stat70 span,.fleet-image70 figcaption){color:#405367!important}
body[data-foundation] #capacidad-instalada :is(.kicker,.fleet-overline70,.fleet-status70,.fleet-stat70 strong,.fleet-tabs70 button>span){color:#496f16!important}
body[data-foundation] .fleet-showcase70{border-color:#7eb929;color:#162d4c}
body[data-foundation] .fleet-stat70,body[data-foundation] .fleet-image70 figcaption,body[data-foundation] .fleet-tabs70,body[data-foundation] .fleet-tabs70 button{border-color:#162d4c26}
body[data-foundation] .fleet-toggle70{color:#365514!important;border-color:#5d8928!important;font-family:inherit}
body[data-foundation] .fleet-tabs70 button{color:#405367}
body[data-foundation] .fleet-tabs70 button[aria-selected=true]{color:#162d4c;background:#7eb92918}
body[data-foundation] .fleet-tabs70 button i,body[data-foundation] .fleet-copy70 li:before{background:#7eb929}
body[data-foundation] #fleet-panel70-3 .fleet-image70 img{height:auto;max-height:none;aspect-ratio:4/3;object-fit:contain}
body[data-foundation] .cta-band{background:#7eb929;color:#162d4c}body[data-foundation] .cta-band .btn{background:#162d4c;border-color:#162d4c;color:white}
@media(max-width:900px){
 body[data-foundation] .foundation-film-zone{padding:0 0 32px!important}
 body[data-foundation] .foundation-film-zone .foundation-background-video{height:auto!important;aspect-ratio:16/9!important;object-fit:cover!important;object-position:51% center!important}
 body[data-foundation] .foundation-film-zone .foundation-intro{padding:30px 22px 18px!important}
 body[data-foundation] .foundation-film-zone .foundation-explanation{padding:24px 22px 0!important;margin:0!important;border:0!important}
 body[data-foundation] .foundation-film-zone .foundation-story .lede{font-size:16px!important}
 body[data-foundation] #capacidad-instalada{padding:22px 14px}
}

/* ajustes-v73.css */
/* Fondo original de los frentes; la identidad Ecko permanece en el resto. */
body[data-foundation] #ecko .proy{background:#28323f!important}
body[data-foundation] #ecko .foundation-metrics,body[data-foundation] #ecko .pile-count,body[data-foundation] #ecko .soil-feature{background:#1b2430!important}
body[data-foundation] #ecko .proy-fotos{background:transparent!important}
.fleet-ribbon73{display:flex;gap:0;background:#162d4c;align-items:stretch}
.fleet-panel73{position:relative;flex:1;min-width:0;overflow:hidden;transition:flex .5s ease;color:#fff;background:#162d4c}
.fleet-panel73.is-active{flex:7}
.fleet-trigger73{position:relative;z-index:2;display:block;width:100%;min-height:72px;padding:22px 16px;border:0;border-radius:0;background:#162d4c;color:#fff;text-align:left;font-family:inherit;font-weight:700;font-size:17px;line-height:1.4;cursor:pointer}
.fleet-panel73:not(.is-active) .fleet-trigger73{writing-mode:vertical-rl;height:100%;text-orientation:mixed}
.fleet-panel73.is-active .fleet-trigger73{background:#7eb929;color:#142d22}
.fleet-trigger73:focus-visible{outline:3px solid white;outline-offset:-5px}
.fleet-panel73 .fleet-image70{margin:0!important;border:0!important;border-radius:0!important;height:360px!important;min-height:0!important;background:transparent!important;overflow:hidden}
.fleet-panel73 .fleet-image70 img{width:100%!important;height:100%!important;object-fit:cover!important;border-radius:0!important}
.fleet-panel73:not(.is-active) .fleet-image70{position:absolute;inset:0;height:100%!important;opacity:.4;pointer-events:none}
.fleet-panel73:not(.is-active) .fleet-trigger73{background:linear-gradient(90deg,#162d4ca0,transparent)}
.fleet-panel73 .fleet-copy70{padding:25px!important;color:#fff!important;background:#162d4c!important}
.fleet-panel73 .fleet-copy70 h3,.fleet-panel73 .fleet-copy70 h4{color:#fff!important}
.fleet-panel73 .fleet-copy70 p,.fleet-panel73 .fleet-copy70 li{color:#dce5e9!important}
.fleet-panel73 .fleet-copy70 h3,.fleet-panel73 .fleet-overline70{display:none}
.fleet-panel73 .fleet-stat70{color:#a0d453!important;margin:12px 0!important}
.fleet-panel73 .fleet-stat70 strong{font-size:30px!important;color:#a0d453!important}
.fleet-panel73 .fleet-copy70 ul{columns:2;column-gap:28px;font-size:14px;line-height:1.6}
.fleet-panel73 .fleet-copy70 li{break-inside:avoid}
.fleet-panel73:not(.is-active) .fleet-copy70{display:none}
.fleet-showcase73 .fleet-toolbar70{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:20px}
@media(max-width:900px){
#divs-track.divs-accordion{gap:0!important}
#divs-track.divs-accordion>.div,#divs-track.divs-accordion>.div.is-open{border:0!important;margin:0!important;height:calc(74px + var(--division-share73,0) * (clamp(460px,120vw,600px) - 74px))!important;transition:height .5s ease!important}
#divs-track.divs-accordion.division-drag72>.div{transition:height .08s linear!important}
#divs-track.divs-accordion>.div img{transform:scale(1.035)!important;transition:transform .5s ease!important}
#divs-track.divs-accordion>.div.is-open img{transform:scale(1)!important}
.fleet-ribbon73{flex-direction:column}
.fleet-panel73,.fleet-panel73.is-active{flex:none}
.fleet-panel73:not(.is-active) .fleet-trigger73{writing-mode:horizontal-tb;height:auto}
.fleet-panel73 .fleet-image70{height:320px!important}
.fleet-panel73 .fleet-copy70 ul{columns:1}
.fleet-panel73:not(.is-active) .fleet-image70{height:100%!important}
}
@media(prefers-reduced-motion:reduce){#divs-track.divs-accordion>.div,.fleet-panel73{transition:none!important}}

/* ajustes-v74.css */
.specialty-map{background-color:#dce5e9!important;background-image:linear-gradient(#617c8a12 1px,transparent 1px),linear-gradient(90deg,#617c8a12 1px,transparent 1px)!important;color:#243e50!important}
.specialty-map .map-heading strong,.specialty-map .map-heading a,.specialty-map .map-routes strong{color:#243e50!important}
.specialty-map .map-heading>span,.specialty-map .map-routes span{color:#81611c!important}
.specialty-map .map-routes :is(button,a){color:#243e50!important;border-color:#71869250!important}
.fleet-ribbon73{height:420px;flex-direction:row!important;gap:0!important}
.fleet-panel73,.fleet-panel73.is-active{flex:1!important;min-width:0;transition:flex .5s ease!important}
.fleet-panel73.is-active{flex:8!important}
.fleet-panel73 .fleet-image70,.fleet-panel73:not(.is-active) .fleet-image70{position:absolute!important;inset:0;height:100%!important;opacity:1;pointer-events:none}
.fleet-panel73 .fleet-image70 img{max-height:none!important;object-fit:cover!important}
.fleet-panel73 .fleet-trigger73{position:absolute!important;inset:0;width:100%;height:100%!important;writing-mode:vertical-rl!important;transform:rotate(180deg);text-align:left;padding:20px 12px!important;background:linear-gradient(90deg,#14283de6,transparent)!important;color:white!important;font-size:15px!important;display:flex;align-items:center}
.fleet-panel73.is-active .fleet-trigger73{writing-mode:horizontal-tb!important;transform:none;align-items:end;padding:26px!important;font-size:26px!important;background:linear-gradient(0deg,#14283df0,transparent 60%)!important}
body[data-foundation] #capacidad-instalada .fleet-shelf74{background:#e4ece8;color:#203e45;padding:28px}
body[data-foundation] #capacidad-instalada .fleet-shelf74 .fleet-copy70{min-height:0;padding:0!important;background:transparent!important}
body[data-foundation] #capacidad-instalada .fleet-shelf74 :is(p,li,span,h3,h4){color:#203e45!important;opacity:1!important}
body[data-foundation] #capacidad-instalada .fleet-shelf74 strong{color:#486d16!important}
.fleet-shelf74 .fleet-copy70[hidden]{display:none!important}
.fleet-shelf74 .fleet-copy70 h3{display:none}
.fleet-shelf74 .fleet-copy70 ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 24px}
#cotizar{scroll-margin-top:0!important}
@media(max-width:900px){.fleet-ribbon73{height:370px}.fleet-panel73{flex:0 0 25px!important}.fleet-panel73.is-active{flex:1!important}.fleet-panel73 .fleet-trigger73{font-size:11px!important;padding:14px 5px!important}.fleet-panel73.is-active .fleet-trigger73{font-size:19px!important;padding:15px!important}body[data-foundation] #capacidad-instalada .fleet-shelf74{padding:20px}.fleet-shelf74 .fleet-copy70 ul{grid-template-columns:1fr}.fleet-toolbar70{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.fleet-panel73{transition:none!important}}

/* escritorio-v75.css */
/* Exclusivamente escritorio. Las reglas móviles permanecen intactas. */
@media(min-width:1001px){
#proyectos-destacados .carousel:has(#destacados-track){width:100vw!important;max-width:none!important;margin:30px 0 0!important;left:50%;transform:translateX(-50%)}
#destacados-track{gap:18px!important;padding:0 24px 18px!important}
#destacados-track>.obra{flex:0 0 calc((100% - 36px)/3)!important;display:grid!important;grid-template-columns:1fr!important;grid-template-rows:minmax(0,1fr) auto auto!important;height:clamp(400px,40vw,580px)!important;min-height:0!important;border:0!important;background:#24313e!important}
#destacados-track .ph{grid-column:1!important;grid-row:1!important;height:100%!important;min-height:0;display:flex;align-items:center;justify-content:center;background:#1b2430}
#destacados-track .ph img{object-fit:contain!important;width:100%!important;height:100%!important;max-height:340px;opacity:1!important}
#destacados-track .txt{grid-column:1!important;grid-row:2!important;padding:22px 24px 8px!important}
#destacados-track .meta{padding-top:10px!important}
#destacados-track .mas{grid-column:1!important;grid-row:3!important;margin:6px 24px 24px!important}
#proyectos-destacados .car-nav.prev{left:8px!important}#proyectos-destacados .car-nav.next{right:8px!important}
.foundation-banner{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:44px;padding:70px max(40px,calc((100vw - 1440px)/2))!important;background:#1b2430!important;overflow:hidden;isolation:isolate}
.foundation-banner .foundation-banner-photo{position:relative!important;inset:auto!important;width:100%!important;max-width:640px!important;height:auto!important;max-height:500px!important;object-fit:contain!important;opacity:1!important;filter:none!important;transform:none!important;grid-column:1;grid-row:1;box-shadow:0 -24px 40px #10192380,0 24px 40px #10192380}
.foundation-banner:before,.foundation-banner:after{display:none!important}
.foundation-banner>.wrap{grid-column:2;grid-row:1;width:100%!important;padding:0!important;min-width:0}
.foundation-banner .head{display:block}.foundation-banner .head .btn{margin-top:20px}
body[data-foundation] #ecko .front-layout64>.proy-fotos.gallery-row68{grid-template-columns:var(--photo-columns68)!important;align-items:center!important;align-content:start!important;height:auto!important;max-height:none!important;overflow:visible!important}
body[data-foundation] #ecko .front-layout64 .gallery-row68 img,body[data-foundation] #ecko .front-layout64 .gallery-row68 img:hover{width:100%!important;height:260px!important;max-height:260px!important;object-fit:contain!important;transform:none!important;filter:none!important;transition:none!important;clip-path:none!important}
body[data-foundation] #capacidad-instalada .fleet-showcase73{max-width:1060px;margin:0 auto}
body[data-foundation] #capacidad-instalada .fleet-ribbon73{height:320px!important}
body[data-foundation] #capacidad-instalada .fleet-panel73.is-active{flex:4!important}
body[data-foundation] #capacidad-instalada .fleet-panel73.is-active .fleet-image70 img{object-fit:contain!important;height:100%!important;width:100%!important;max-height:320px!important}
body[data-foundation] #capacidad-instalada .fleet-panel73.is-active .fleet-trigger73{font-size:21px!important;padding:16px!important;background:linear-gradient(0deg,#14283ded,transparent 28%)!important}
body[data-foundation] #capacidad-instalada .fleet-shelf74{padding:20px 26px!important}
body[data-foundation] #capacidad-instalada .fleet-shelf74 .fleet-stat70{padding:8px 0!important;margin:10px 0!important}
body[data-foundation] #capacidad-instalada .fleet-shelf74 .fleet-statement70{margin-bottom:10px!important}
body[data-foundation] .foundation-film-zone{max-width:1440px!important;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)!important;grid-template-rows:auto auto!important;gap:36px 52px!important;padding:64px 56px!important;align-items:center!important;background:radial-gradient(ellipse at 80% 20%,#294f65 0,transparent 65%),#162d4c!important}
body[data-foundation] .foundation-film-zone .foundation-intro{grid-column:1!important;grid-row:1!important;padding:0!important;align-self:center!important}
body[data-foundation] .foundation-film-zone .foundation-intro>.wrap{position:relative!important;isolation:isolate}
body[data-foundation] .foundation-film-zone .foundation-intro>.wrap::before{inset:0!important;background-size:contain!important;background-position:center!important;opacity:.06!important;z-index:-1!important;pointer-events:none}
body[data-foundation] .foundation-film-zone .foundation-intro h1{font-size:clamp(38px,4vw,60px)!important;line-height:1.05!important;margin-bottom:24px!important}
body[data-foundation] .foundation-film-zone .foundation-background-video{grid-column:2!important;grid-row:1!important;max-width:720px!important;width:100%!important;aspect-ratio:1194/512!important;height:auto!important;object-fit:contain!important;align-self:center!important;box-shadow:0 28px 60px #08162666!important}
body[data-foundation] .foundation-film-zone .foundation-video-toggle{grid-column:2!important;grid-row:1!important;align-self:end!important;justify-self:end!important;margin:0 0 -22px!important}
body[data-foundation] .foundation-film-zone .foundation-explanation{grid-column:1/-1!important;grid-row:2!important;padding:28px 0 0!important;margin:0!important;border-top:1px solid #91ca4345!important}
body[data-foundation] .foundation-film-zone .foundation-story{display:grid!important;grid-template-columns:330px minmax(0,1fr);align-items:center;gap:54px;padding:0!important;width:100%!important;max-width:none!important}
body[data-foundation] .foundation-film-zone .foundation-story .rama.ecko-brand{margin:0!important;width:100%!important;max-width:none!important}
body[data-foundation] .foundation-film-zone .foundation-story .lede{margin:0!important;font-size:17px!important;line-height:1.7!important}
}
/* v76: centrar las fotografías respecto a la altura completa del diagrama. */
@media(min-width:1001px){
 body[data-foundation] #ecko .front-layout64>.proy-fotos.gallery-row68{grid-row:1 / 3!important;align-self:center!important;align-content:center!important;margin-block:0!important}
}

/* ajustes-v77.css */
/* Material claro y respuesta de los accesos de Obras y proyectos. */
.specialty-map{background-color:#f7f5ef!important;background-image:linear-gradient(#967f4510 1px,transparent 1px),linear-gradient(90deg,#967f4510 1px,transparent 1px)!important;border:0!important}
.specialty-map .map-routes :is(button,a){transition:transform .35s ease,background-color .35s ease,box-shadow .35s ease!important}
.specialty-map .map-routes :is(button,a):is(:hover,:focus-visible,:active){transform:translateX(8px);background:#eee7d6!important;box-shadow:inset 3px 0 #ba963b;outline-offset:-3px}
.fleet-open77{position:absolute;z-index:5;right:16px;top:16px;border:1px solid #ffffff80;border-radius:24px;color:white;background:#14283ddd;padding:10px 16px;min-height:44px;font-family:inherit;font-size:13px;font-weight:600;line-height:1.4;cursor:zoom-in}
.fleet-open77[hidden]{display:none!important}.fleet-open77:focus-visible{outline:3px solid #a0d453;outline-offset:3px}.fleet-ribbon73{touch-action:pan-y}
body[data-foundation] #capacidad-instalada .fleet-trigger73{cursor:pointer}
body[data-foundation] #capacidad-instalada .fleet-shelf74 :is(p,li,span){text-align:left!important;word-spacing:normal!important;letter-spacing:normal;hyphens:none!important;-webkit-hyphens:none!important;overflow-wrap:normal!important}
@media(prefers-reduced-motion:reduce){.specialty-map .map-routes :is(button,a){transition:none!important;transform:none!important}}
@media(min-width:1001px){
/* Una banda continua de tres tarjetas con idénticos renglones. */
#destacados-track{gap:2px!important;background:#33414c;padding:0 0 14px!important}
#destacados-track>.obra{flex:0 0 calc((100% - 4px)/3)!important;height:clamp(500px,38vw,610px)!important;grid-template-rows:minmax(0,1fr) 174px 66px!important;background:#24313e!important}
#destacados-track .ph{background:#24313e!important;overflow:hidden!important}
#destacados-track .ph img{width:100%!important;height:100%!important;max-height:none!important;object-fit:cover!important;object-position:center!important}
#destacados-track .txt{height:174px!important;box-sizing:border-box;align-self:stretch!important;padding:24px 28px 12px!important;display:flex;flex-direction:column;justify-content:flex-start}
#destacados-track h3{font-size:clamp(23px,1.8vw,32px)!important;line-height:1.18!important;min-height:2.36em;margin:0!important}
#destacados-track .meta{font-size:12px!important;line-height:1.5!important;margin-top:auto;padding-top:12px!important}
#destacados-track .mas{align-self:center!important;margin:0 28px!important}
/* Alineación con los márgenes de los accesos a divisiones. */
.foundation-banner{padding:64px var(--page-gutter)!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:clamp(32px,4vw,72px)!important}
.foundation-banner .foundation-banner-photo{max-width:none!important;max-height:none!important;width:100%!important;height:auto!important;align-self:center;object-fit:contain!important}
.foundation-banner>.wrap{max-width:none!important;width:100%!important}
.foundation-banner h2{font-size:clamp(38px,3vw,62px)!important;line-height:1.08!important}
.foundation-banner :is(p,.lede,.nota,.flota em){text-align:left!important;word-spacing:normal!important;hyphens:none!important;-webkit-hyphens:none!important;overflow-wrap:normal!important}
.foundation-banner .lede{font-size:clamp(19px,1.3vw,24px)!important;line-height:1.65!important;max-width:none!important}
.foundation-banner .nota{font-size:15px!important;line-height:1.7!important}
.foundation-banner .flota{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px!important}
.foundation-banner .flota em{font-size:14px!important;line-height:1.6!important}
/* Composición amplia, vídeo nativo y tipografía sin justificación. */
body[data-foundation] .foundation-film-zone{width:100%!important;max-width:none!important;margin:0!important;padding:64px var(--page-gutter)!important;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)!important;gap:48px clamp(32px,4vw,76px)!important;border:0!important}
body[data-foundation] .foundation-film-zone .foundation-background-video{max-width:1194px!important;justify-self:stretch!important;width:100%!important;object-fit:contain!important;aspect-ratio:1194/512!important;filter:none!important;opacity:1!important}
body[data-foundation] .foundation-film-zone .foundation-intro h1{font-size:clamp(46px,4.3vw,88px)!important;line-height:1.04!important;max-width:100%!important}
body[data-foundation] .foundation-film-zone :is(p,.lede){font-size:clamp(19px,1.35vw,26px)!important;line-height:1.6!important;text-align:left!important;word-spacing:normal!important;hyphens:none!important;-webkit-hyphens:none!important;overflow-wrap:normal!important}
body[data-foundation] .foundation-film-zone .kicker{font-size:13px!important}
body[data-foundation] .foundation-film-zone .foundation-story{grid-template-columns:minmax(300px,.7fr) minmax(0,1.3fr)!important;gap:clamp(36px,5vw,90px)!important}
body[data-foundation] .foundation-film-zone .foundation-story .rama.ecko-brand{max-width:560px!important;justify-self:start}
body[data-foundation] .foundation-film-zone .foundation-story .lede{font-size:clamp(19px,1.35vw,26px)!important;max-width:none!important}
/* Equipo: fotografías completas, texto amplio, sin marco exterior. */
body[data-foundation] #capacidad-instalada{padding:40px 0!important;border:0!important}
body[data-foundation] #capacidad-instalada .fleet-showcase73{max-width:none!important;width:100%!important;margin:0!important;border:0!important}
body[data-foundation] #capacidad-instalada .fleet-ribbon73{height:clamp(430px,30vw,570px)!important;border:0!important}
body[data-foundation] #capacidad-instalada .fleet-panel73.is-active{flex:6!important}
body[data-foundation] #capacidad-instalada .fleet-panel73.is-active .fleet-image70 img{max-height:none!important;object-fit:contain!important;width:100%!important;height:100%!important}
body[data-foundation] #capacidad-instalada .fleet-trigger73{font-size:18px!important;border:0!important}
body[data-foundation] #capacidad-instalada .fleet-panel73.is-active .fleet-trigger73{font-size:30px!important;padding:24px!important}
body[data-foundation] #capacidad-instalada .fleet-shelf74{padding:30px 36px!important;border:0!important}
body[data-foundation] #capacidad-instalada .fleet-shelf74 .fleet-statement70{font-size:24px!important;line-height:1.5!important}
body[data-foundation] #capacidad-instalada .fleet-shelf74 .fleet-copy70 ul{font-size:18px!important;line-height:1.6!important;gap:14px 32px!important}
body[data-foundation] #capacidad-instalada .fleet-shelf74 .fleet-stat70 strong{font-size:44px!important}
body[data-foundation] #capacidad-instalada .fleet-shelf74 .fleet-stat70 span{font-size:17px!important;max-width:none!important}
body[data-foundation] #capacidad-instalada .fleet-shelf74 h4{font-size:14px!important}
body[data-foundation] #capacidad-instalada .fleet-status70{font-size:12px!important;max-width:none!important}
}
@media(min-width:1001px){
.reading-progress{display:none!important}
body[data-foundation] #hd .marca{border-left:0!important;padding-left:0!important}
.foundation-banner{grid-template-columns:var(--home-photo-width77,minmax(0,1fr)) minmax(0,1fr)!important}
.foundation-banner .lede,.foundation-banner .nota{max-width:70ch!important}
}

/* ajustes-v78.css */
/* La fotografía de flota permanece; se elimina el inventario duplicado. */
body[data-foundation] #ecko .fleet-layout.fleet-photo-only78{display:block!important;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important}
body[data-foundation] #ecko .fleet-photo-only78 .fleet-photo{margin:0 auto!important;width:100%!important;max-width:720px;min-height:0!important}
body[data-foundation] #ecko .fleet-photo-only78 .fleet-photo img{position:static!important;display:block;width:100%!important;height:auto!important;max-height:600px;object-fit:contain!important}
.cv-dl.cv-single78{grid-template-columns:minmax(0,1fr)!important}
body[data-foundation] .foundation-cv78{padding:50px 0;background:#f7f5ef;color:#162d4c}
body[data-foundation] .foundation-cv78 .cv-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px 48px;padding:0;background:none;border:0}
body[data-foundation] .foundation-cv78 .t{font-size:clamp(26px,3vw,42px);color:#162d4c;line-height:1.15}
body[data-foundation] .foundation-cv78 .d{grid-column:1;max-width:70ch;font-size:18px;line-height:1.65;color:#405367;text-align:left}
body[data-foundation] .foundation-cv78 .btn{grid-column:2;grid-row:1/3;align-self:center;background:#7eb929;border-color:#7eb929;color:#162d4c}
@media(max-width:900px){body[data-foundation] .foundation-cv78 .cv-card{display:flex;flex-direction:column;align-items:flex-start;gap:20px}body[data-foundation] .foundation-cv78 .btn{align-self:flex-start}body[data-foundation] .foundation-cv78 .d{font-size:16px}}

/* ajustes-v79.css */
/* Trayectoria: encabezado editorial y seis accesos con identidad propia. */
.specialty-map.specialty-atlas79{display:grid!important;grid-template-columns:minmax(250px,.8fr) minmax(0,1.7fr)!important;gap:40px!important;padding:42px!important;background:#f8f6f1!important;background-image:none!important;border:0!important;box-shadow:0 15px 45px #172b3910}
.specialty-atlas79 .map-heading{display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:space-between;gap:22px;border:0!important;padding:0!important}
.specialty-atlas79 .map-heading>span{font-size:10px!important;letter-spacing:.18em;line-height:1.7}
.specialty-atlas79 .map-heading>strong{font-size:clamp(28px,2.8vw,44px)!important;line-height:1.1!important}
.specialty-atlas79 .map-heading>a{display:flex;align-items:center;gap:16px;text-decoration:none!important;border:0!important;padding:0!important}
.specialty-atlas79 .map-heading b{font-size:clamp(64px,7vw,104px);line-height:1;color:#b39036;letter-spacing:-.07em}
.specialty-atlas79 .map-heading b span{font-size:.48em;vertical-align:top;letter-spacing:0}
.specialty-atlas79 .map-heading em{font-size:12px;font-style:normal;line-height:1.7}
.specialty-atlas79 .map-routes{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important;border:0!important;padding:0!important;margin:0!important}
.specialty-map.specialty-atlas79 .map-routes>:is(a,button){position:relative;display:flex!important;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:12px;min-height:210px;padding:22px!important;border:0!important;border-radius:0!important;background:#fff!important;text-decoration:none!important;text-align:left;box-shadow:0 2px 0 #e6dec9;transform:none}
.specialty-atlas79 .specialty-number79{font-size:11px!important;color:#8c723b!important}
.specialty-atlas79 .specialty-icon79{width:40px;height:40px;color:#6c7c7c}
.specialty-icon79 path{fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.specialty-atlas79 .map-routes strong{font-size:17px!important;line-height:1.2!important;font-weight:700}
.specialty-atlas79 .map-routes small{font-size:11px;line-height:1.5;color:#65727b}
.specialty-atlas79 .map-routes i{position:absolute;right:17px;top:17px;font-style:normal;font-size:19px;color:#9b813f}
.specialty-map.specialty-atlas79 .map-routes>:is(a,button):is(:hover,:focus-visible,[aria-pressed=true]){transform:translateY(-5px)!important;background:#fff6d9!important;box-shadow:0 12px 22px #293d4b15,inset 0 -3px #c3a04b}
/* Vista previa del PDF con canto y lomo de libro, sin inventar páginas. */
body[data-foundation] .fleet-library79 .foundation-cv78{padding:0!important;background:transparent!important;color:inherit}
body[data-foundation] .fleet-library79 .foundation-cv78>.wrap{padding:0!important;width:100%!important}
body[data-foundation] .fleet-library79 .cv-card{display:flex!important;flex-direction:column;align-items:flex-start;gap:14px!important;padding:0!important;background:transparent!important;border:0!important}
body[data-foundation] .fleet-library79 .cv-card h3{font-size:23px;color:#f7faf5}
body[data-foundation] .fleet-library79 .cv-card p{font-size:15px;line-height:1.65;text-align:left;margin:0;color:#d0dce5}
.cv-book79{width:min(100%,250px);position:relative;margin:14px auto 4px;transform:perspective(1000px) rotateY(-8deg);border-radius:2px 5px 5px 2px;background:#fff;box-shadow:5px 3px 0 #ded9ce,8px 5px 0 #f2efe8,12px 7px 0 #c6c2b7,0 20px 32px #07162655}
.cv-book79:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#14203333,transparent 5%,#ffffff20 6%,transparent 10%);border-radius:inherit}
.cv-book79 img{position:static!important;width:100%!important;height:auto!important;display:block;object-fit:contain}
.cv-book-controls79{display:flex;align-items:center;justify-content:center;gap:18px;width:100%;margin:14px 0}
.cv-book-controls79 button{width:44px;height:44px;border:1px solid #a5ca7655;background:transparent;color:#bdde91;font-size:22px;cursor:pointer;border-radius:50%}
.cv-book-controls79 button:disabled{opacity:.3;cursor:default}.cv-book-controls79 span{font-size:12px;color:#d5dfe9}
.cv-downloads79{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;width:100%;margin-top:4px}
body[data-foundation] .cv-downloads79 .btn{align-self:auto!important;margin:0!important}
.cv-downloads79>a:not(.btn){color:#b8da92;font-size:14px;text-underline-offset:5px;min-height:44px;display:inline-flex;align-items:center}
/* Botones con área y separación consistentes. */
.et-actions,.cta-band>.wrap{gap:20px!important}.et-actions{flex-wrap:wrap}
.et-actions>a,.et-gallery-open,.et-diagram-open,.et-nav-cta{min-height:44px;display:inline-flex;align-items:center;justify-content:center;line-height:1.4!important}
.et-gallery-bar{display:flex;align-items:center!important;justify-content:space-between;gap:18px!important}
.et-gallery-open{flex:none;margin:0!important;padding:12px 18px!important}
@media(min-width:1001px){
body[data-foundation] #ecko .fleet-library79{padding:52px 0!important;height:auto!important;min-height:0!important;overflow:visible!important;clip-path:none!important;box-shadow:none!important;background:transparent!important}
body[data-foundation] #ecko .fleet-library79 .fleet-layout.fleet-photo-only78{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;align-items:center!important;gap:clamp(36px,5vw,84px)!important;height:auto!important;min-height:0!important;overflow:visible!important}
body[data-foundation] #ecko .fleet-library79 .fleet-photo{position:relative!important;inset:auto!important;align-self:center!important;height:auto!important;min-height:0!important;max-height:none!important;max-width:none!important;width:100%!important;margin:0!important;overflow:visible!important;transform:none!important}
body[data-foundation] #ecko .fleet-library79 .fleet-photo img{position:static!important;width:100%!important;height:auto!important;max-height:none!important;object-fit:contain!important;transform:none!important;opacity:1!important}
.fleet-copy79{display:flex;flex-direction:column;gap:20px;min-width:0}.fleet-copy79>.kicker{margin:0!important}.fleet-copy79>.et-section-title{font-size:clamp(28px,2.7vw,46px)!important;margin:0!important}
body[data-foundation] #ecko .front-layout64>.proy-fotos.gallery-row68{width:var(--gallery-width79,100%)!important;max-width:100%!important;justify-self:center!important;gap:8px!important;align-self:center!important;grid-row:1 / 3!important}
body[data-foundation] #ecko .front-layout64 .gallery-row68 img{height:var(--gallery-height79,380px)!important;max-height:none!important;width:100%!important;object-fit:contain!important;transition:transform .3s ease,filter .3s ease,box-shadow .3s ease!important}
body[data-foundation] #ecko .front-layout64 .gallery-row68 img:is(:hover,:focus-visible){height:var(--gallery-height79,380px)!important;max-height:none!important;transform:translateY(-5px) scale(1.015)!important;filter:brightness(1.08)!important;box-shadow:0 14px 24px #0c182640!important;z-index:2}
body[data-foundation] .et-nav-inner{gap:clamp(20px,3vw,48px)!important}.et-nav-cta{margin-left:16px!important;margin-right:0!important}.et-nav-links{gap:clamp(20px,3vw,48px)!important;align-items:center}
body[data-foundation] #ecko .front-layout64>.et-gallery-bar{padding:0 0 16px!important;align-self:start!important;z-index:3}
}
@media(max-width:1000px){
.specialty-map.specialty-atlas79{grid-template-columns:1fr!important;gap:28px!important;padding:24px!important}.specialty-atlas79 .map-heading{gap:20px}.specialty-atlas79 .map-heading>strong{font-size:30px!important}.specialty-atlas79 .map-heading b{font-size:72px}.specialty-atlas79 .map-routes{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}.specialty-map.specialty-atlas79 .map-routes>:is(a,button){min-height:180px;padding:16px!important;gap:10px}.specialty-atlas79 .map-routes strong{font-size:15px!important}.specialty-atlas79 .map-routes small{font-size:11px}.specialty-atlas79 .specialty-icon79{width:32px;height:32px}
body[data-foundation] #ecko .fleet-library79 .fleet-layout{display:flex!important;flex-direction:column!important;height:auto!important;min-height:0!important;gap:28px!important;overflow:visible!important}
body[data-foundation] #ecko .fleet-library79 .fleet-photo{height:auto!important;overflow:visible!important}.fleet-copy79{display:flex;flex-direction:column;gap:18px}.fleet-copy79>.kicker,.fleet-copy79>.et-section-title{margin:0!important}.fleet-copy79 .cv-book79{width:min(65%,250px)}
}
/* Móvil: marca, película y contenido comparten una misma superficie. */
@media(max-width:900px){
body[data-foundation] .foundation-film-zone{display:grid!important;grid-template-columns:minmax(0,1fr)!important;grid-template-rows:auto auto auto auto!important;gap:0!important;padding:0 0 30px!important;background:linear-gradient(150deg,#203c55,#142d46 62%,#24463d)!important}
body[data-foundation] .foundation-film-zone .foundation-explanation,body[data-foundation] .foundation-film-zone .foundation-story{display:contents!important}
body[data-foundation] .foundation-film-zone .foundation-story .rama.ecko-brand{grid-column:1!important;grid-row:1!important;width:60%!important;max-width:270px!important;margin:24px auto!important;padding:0!important;min-height:0!important;justify-self:center}
body[data-foundation] .foundation-film-zone .foundation-background-video{grid-row:2!important;grid-column:1!important;width:100%!important;aspect-ratio:1194/512!important;height:auto!important;object-fit:contain!important;box-shadow:0 20px 36px #06162925!important}
body[data-foundation] .foundation-film-zone .foundation-video-toggle{grid-row:2!important;grid-column:1!important;align-self:end!important;justify-self:end!important;margin:0 12px 12px!important;min-height:40px!important;font-size:11px!important;padding:8px 12px!important;background:#142d46c9!important}
body[data-foundation] .foundation-film-zone .foundation-intro{grid-row:3!important;grid-column:1!important;padding:28px 22px 24px!important}
body[data-foundation] .foundation-film-zone .foundation-intro .kicker{font-size:9px!important;letter-spacing:.12em!important;margin-bottom:16px!important;color:#b1d777!important}
body[data-foundation] .foundation-film-zone .foundation-intro h1{font-size:clamp(36px,9vw,54px)!important;line-height:1.06!important;margin:0 0 20px!important}
body[data-foundation] .foundation-film-zone .foundation-intro p:not(.kicker){font-size:16px!important;line-height:1.7!important;text-align:left!important;margin-bottom:22px!important}
body[data-foundation] .foundation-film-zone .et-actions{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:12px!important;margin:0!important}
body[data-foundation] .foundation-film-zone .et-actions .btn{width:100%!important;box-sizing:border-box;padding:16px 12px!important;text-align:center;font-size:11px!important;letter-spacing:.07em!important;margin:0!important}
body[data-foundation] .foundation-film-zone .et-text-link{justify-content:center!important;padding:8px!important;font-size:14px!important}
body[data-foundation] .foundation-film-zone .foundation-story>.lede{grid-column:1!important;grid-row:4!important;margin:0 22px!important;padding:20px 0 0!important;border-top:1px solid #a7ce6d50!important;font-size:14px!important;line-height:1.8!important;text-align:left!important;color:#cedbdc!important}
}
@media(prefers-reduced-motion:reduce){.specialty-map.specialty-atlas79 .map-routes>:is(a,button),body[data-foundation] #ecko .front-layout64 .gallery-row68 img{transition:none!important;transform:none!important}}

/* ajustes-v80.css */
/* Identidad original, sin aproximar el dibujo tipográfico de la marca. */
body[data-foundation] .et-signature .et-wordmark80{display:block;width:156px;height:auto;max-height:67px;object-fit:contain;margin:0 0 5px;filter:none}
body[data-foundation] .et-signature{flex-shrink:0}
body[data-foundation] #capacidad-instalada .fleet-panel73,body[data-foundation] #capacidad-instalada .fleet-image70,body[data-foundation] #capacidad-instalada .fleet-image70 img{background:transparent!important;border:0!important;box-shadow:none!important}
body[data-foundation] #capacidad-instalada .fleet-ribbon73{background:#e3ece7!important}
body[data-foundation] #capacidad-instalada .fleet-panel73.is-active .fleet-trigger73{background:linear-gradient(0deg,#18314bd9,transparent 32%)!important}
.et-viewer.et-equipment80{background:#edf1eb!important;color:#19354a!important;border:0!important;box-shadow:none!important}
.et-equipment80 .et-viewer-content,.et-equipment80 .et-viewer-stage,.et-equipment80 .et-viewer-content>img{background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important}
.et-equipment80 .et-viewer-caption{color:#34515d!important}.et-equipment80 .et-viewer-kicker{color:#4e7323!important}.et-equipment80 .et-thumbnail{background:transparent!important;border-radius:0}.et-equipment80 .et-thumbnail[aria-pressed=true]{border-color:#7eb929}
.et-equipment80::backdrop{background:#e6ece4eb;backdrop-filter:blur(10px)}
.foundation-allies80{background:#edf1e9;color:#18314b;padding:clamp(36px,5vw,72px) 0}.foundation-allies80 .kicker{color:#54792c!important}.foundation-allies80 h2{font-size:clamp(27px,3vw,42px);margin:10px 0 28px}.allies-grid80{display:grid;grid-template-columns:1fr 1fr;gap:40px}.allies-grid80 article{border-top:2px solid #7eb929;padding-top:22px}.ally-name80{font-weight:800;font-size:30px;letter-spacing:.06em;color:#18314b}.allies-grid80 h3{font-size:19px;margin:12px 0}.allies-grid80 p{font-size:16px;line-height:1.7;text-align:left!important;max-width:56ch;color:#3b555f}
@media(min-width:1001px){body[data-foundation] #capacidad-instalada{padding:48px clamp(28px,4vw,76px)!important}body[data-foundation] #capacidad-instalada>.kicker,body[data-foundation] #capacidad-instalada>h2,body[data-foundation] #capacidad-instalada>.lede{margin-left:0!important;margin-right:0!important}body[data-foundation] #capacidad-instalada .fleet-toolbar70{padding:24px 0!important}body[data-foundation] #capacidad-instalada>p:last-child{margin:36px 0 8px!important}body[data-foundation] #capacidad-instalada .fleet-shelf74{padding:32px 40px!important}}
@media(max-width:760px){body[data-foundation] .et-signature .et-wordmark80{width:128px;max-height:55px}.allies-grid80{grid-template-columns:1fr;gap:28px}.foundation-allies80 .wrap{padding-inline:24px}.et-equipment80 .et-viewer-head h2{color:#18314b}}

/* ajustes-v81.css */
.et-transparent81{display:none}
@media(max-width:900px){
/* El arte original conserva sus letras; la máscara SVG retira únicamente el azul. */
body[data-foundation] .et-signature .et-wordmark80,body[data-foundation] .foundation-film-zone .rama.ecko-brand .mk>img{display:none!important}
body[data-foundation] .et-signature .et-transparent81{display:block;width:144px;max-width:100%;height:auto;margin:0 0 8px;overflow:visible}
body[data-foundation] .et-signature{background:transparent!important;padding:0!important}
body[data-foundation] .foundation-film-zone .foundation-story .rama.ecko-brand{width:92%!important;max-width:none!important;justify-self:start!important;margin:26px 0!important;padding:0!important;background:transparent!important}
body[data-foundation] .foundation-film-zone .rama.ecko-brand .mk{width:100%!important;max-width:none!important;padding:0!important;margin:0!important;background:transparent!important;min-height:0!important;height:auto!important;aspect-ratio:auto!important;overflow:visible!important}
body[data-foundation] .foundation-film-zone .rama.ecko-brand .mk .et-transparent81{display:block;width:100%;height:auto;margin:0;overflow:visible}
}
@media(max-width:700px){
/* Cada ficha aporta su altura completa; el texto puede recorrerse sin quedar bajo Trayectoria. */
.portfolio-page #grp-clientes{height:auto!important;min-height:0!important;overflow:visible!important;padding-bottom:32px!important}
.portfolio-page #grp-clientes>.vertical-carousel{height:clamp(560px,82svh,780px)!important;min-height:0!important;max-height:none!important;overflow-y:auto!important;overflow-x:hidden!important;scroll-snap-type:y proximity!important;isolation:isolate;contain:layout;position:relative;box-sizing:border-box!important;padding-bottom:24px!important;margin-bottom:24px!important}
.portfolio-page #grp-clientes>.vertical-carousel .journey-card{height:auto!important;min-height:100%!important;overflow:visible!important;scroll-snap-align:start;position:relative!important;box-sizing:border-box;display:block!important}
.portfolio-page #grp-clientes>.vertical-carousel .journey-card .project-cover{height:auto!important;min-height:100%!important;display:grid!important;grid-template-columns:minmax(0,1fr)!important;grid-template-rows:auto auto!important;align-content:start!important;overflow:visible!important}
.portfolio-page #grp-clientes>.vertical-carousel .journey-card .editorial-card-photo{position:static!important;width:100%!important;height:auto!important;max-height:44svh!important;min-height:0!important;object-fit:contain!important;grid-area:1/1!important;margin:0!important}
.portfolio-page #grp-clientes>.vertical-carousel .journey-card .project-info{position:static!important;grid-area:2/1!important;height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;padding:22px 24px 30px!important;display:flex!important;gap:12px!important}
.portfolio-page #grp-clientes>.vertical-carousel .project-info>b{font-size:clamp(21px,5.5vw,28px)!important;line-height:1.25!important;overflow-wrap:normal!important;hyphens:none!important}
.portfolio-page #grp-clientes>.vertical-carousel .project-cue{margin:8px 0 0!important;min-height:44px!important;align-self:flex-start!important}
}

/* ajustes-v82.css */
/* Clear, centered alliance introduction; scoped colors beat the dark section defaults. */
body[data-foundation] .foundation-allies80{margin:0!important;padding:36px 0!important;background:#edf1e9!important;min-height:0!important}
body[data-foundation] .foundation-allies80 h2{color:#18314b!important;font-size:clamp(28px,3vw,42px)!important;line-height:1.15!important;text-align:center!important;margin:10px auto 28px!important;max-width:24ch}
body[data-foundation] .foundation-allies80>.wrap>.kicker{color:#4d7228!important;text-align:center!important;margin:0 auto!important}
body[data-foundation] .foundation-allies80 .ally-legal82{color:#41612b!important;font-size:14px!important;font-weight:600;line-height:1.5!important;margin:6px 0 18px!important;max-width:100%;text-align:left!important}
body[data-foundation] .foundation-allies80 .allies-grid80 h3{color:#18314b!important}
body[data-foundation] .foundation-allies80 .allies-grid80 p{color:#3b555f!important;margin-bottom:0!important}
/* Flat technical dossier, without book shadows, perspective or page controls. */
body[data-foundation] .fleet-library79 .cv-foundation82{padding:24px 0 0!important;margin:24px 0 0!important;border-top:1px solid #a7ce6d60;background:transparent!important}
.cv-flat82{display:grid;grid-template-columns:104px minmax(0,1fr);align-items:center;gap:22px}
.cv-cover82{display:block;background:transparent;box-shadow:none;transform:none}
body[data-foundation] .cv-cover82 img{display:block;position:static!important;width:100%!important;height:auto!important;max-height:none!important;object-fit:contain!important;transform:none!important;border-radius:0!important;box-shadow:none!important}
body[data-foundation] .cv-summary82 h3{color:#fff!important;font-size:clamp(22px,2vw,30px)!important;line-height:1.2!important;margin:10px 0 12px!important;hyphens:none}
body[data-foundation] .cv-summary82 p{color:#ccd9df!important;font-size:15px!important;line-height:1.65!important;margin:0!important;text-align:left!important}
.cv-meta82{font:10px/1.6 'IBM Plex Mono',monospace;color:#b4d781;letter-spacing:.06em}
.cv-actions82{display:flex;align-items:center;flex-wrap:wrap;gap:14px 24px;margin-top:24px}
body[data-foundation] .cv-actions82 .btn{margin:0!important;min-height:48px;white-space:normal}
.cv-actions82>a:not(.btn){color:#c1df9c;font-size:14px;min-height:44px;display:flex;align-items:center;text-underline-offset:5px}
.fleet-heading82{min-width:0}.fleet-heading82 .kicker{margin:0 0 14px!important}.fleet-heading82 h2{margin:0!important;line-height:1.15!important}
@media(min-width:1001px){body[data-foundation] #ecko .fleet-library79 .fleet-layout.fleet-photo-only78{column-gap:clamp(36px,5vw,84px)!important;row-gap:0!important;align-items:center!important}body[data-foundation] #ecko .fleet-library79 .fleet-photo{grid-column:1;grid-row:1/3}.fleet-heading82{grid-column:2;grid-row:1;align-self:end}.fleet-copy79{grid-column:2;grid-row:2;align-self:start}}
/* Company download: a graphic yellow band with a large dark action, no PDF mockup. */
.company-cv82{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:24px 40px;background:#f5c518;color:#172936;padding:clamp(28px,4vw,56px);margin:56px 0 0;scroll-margin-top:120px}
.company-cv-label82{font:11px/1.6 'IBM Plex Mono',monospace;letter-spacing:.1em;margin:0 0 18px!important;color:#263847!important}
.company-cv82 h2{font-size:clamp(30px,3.5vw,48px)!important;line-height:1.08!important;margin:0 0 22px!important;color:#172936!important}
.company-cv82 p{font-size:16px;line-height:1.7;color:#263847!important;max-width:52ch;text-align:left}
.company-cv-meta82{display:block;font:11px/1.6 'IBM Plex Mono',monospace;margin-top:18px;color:#32434a}
.company-cv-download82{align-self:stretch;display:flex;flex-direction:column;justify-content:space-between;gap:24px;background:#172936;color:#fff!important;padding:28px;text-decoration:none;font-size:20px;line-height:1.35;transition:background .25s,transform .25s}
.company-cv-arrow82{font-size:62px;line-height:1;color:#f5c518;align-self:flex-end;transition:transform .25s}
.company-cv-download82:hover{background:#294656;transform:translateY(-3px)}.company-cv-download82:hover .company-cv-arrow82{transform:translateY(6px)}
.company-cv-open82{grid-column:2;color:#172936!important;font-size:14px;text-underline-offset:5px;min-height:44px;display:flex;align-items:center}
.company-cv-quick82{display:inline-flex;align-items:center;gap:20px;background:#f5c518;color:#172936!important;font-size:14px;font-weight:600;padding:15px 20px;margin-top:22px;text-decoration:none;min-height:48px;box-sizing:border-box}.company-cv-quick82 span{font-size:24px}
.company-cv82 a:focus-visible,.company-cv-quick82:focus-visible,.cv-foundation82 a:focus-visible{outline:3px solid #5c7b2c;outline-offset:5px}
/* History is not a filtered subset of the catalogue. Its thirteen chapters flow naturally. */
.portfolio-page #grp-trayectoria{height:auto!important;max-height:none!important;content-visibility:visible!important}
.portfolio-page #grp-trayectoria>.tabla{height:auto!important;max-height:none!important;overflow:visible!important;content-visibility:visible!important}
@media(max-width:1000px){
body[data-foundation] #ecko .fleet-library79 .fleet-layout.fleet-photo-only78{display:flex!important;flex-direction:column!important;gap:24px!important}
body[data-foundation] #ecko .fleet-library79 .fleet-heading82{order:0;width:100%;margin:0!important}
body[data-foundation] #ecko .fleet-library79 .fleet-photo{order:1;width:100%!important;margin:0!important}
body[data-foundation] #ecko .fleet-library79 .fleet-copy79{order:2;width:100%;margin:0!important}
body[data-foundation] #ecko .fleet-library79 .fleet-heading82 h2{font-size:clamp(28px,6vw,38px)!important}
}
@media(max-width:700px){
body[data-foundation] .foundation-allies80{padding:24px 0 30px!important}
body[data-foundation] .foundation-allies80>.wrap{padding:0 22px!important}
body[data-foundation] .foundation-allies80 h2{font-size:30px!important;margin:10px auto 24px!important}
body[data-foundation] .foundation-allies80 .allies-grid80{gap:24px}.allies-grid80 article{padding-top:18px}
.cv-flat82{grid-template-columns:76px minmax(0,1fr);gap:16px}.cv-meta82{font-size:9px}
body[data-foundation] .cv-summary82 h3{font-size:22px!important}.cv-actions82{align-items:stretch;flex-direction:column;gap:8px}.cv-actions82>a{justify-content:center;text-align:center}
.company-cv82{grid-template-columns:1fr;gap:24px;margin-top:36px;padding:28px 22px}
.company-cv-download82{flex-direction:row-reverse;align-items:center;padding:24px;font-size:18px;gap:18px}.company-cv-arrow82{font-size:46px;align-self:center}.company-cv-open82{grid-column:1;margin:0;justify-content:center}.company-cv-quick82{max-width:100%;font-size:13px;gap:12px}
}
@media(prefers-reduced-motion:reduce){.company-cv-download82,.company-cv-arrow82{transition:none!important;transform:none!important}}

/* ajustes-v84.css */
/* Mobile refinements: distinct project cards and clear foundation hierarchy. */
@media(max-width:700px){
.portfolio-page #grp-clientes>.vertical-carousel{background:#e7ebef!important;padding:14px!important;border:1px solid #d2d9e0!important;border-radius:12px!important;scroll-padding:14px}
.portfolio-page #grp-clientes>.vertical-carousel .journey-card{min-height:0!important;margin:0 0 22px!important;border:1px solid #cbd3dc!important;border-radius:9px!important;background:#fff!important;overflow:hidden!important;box-shadow:0 5px 15px #17293612!important}
.portfolio-page #grp-clientes>.vertical-carousel .journey-card .project-cover{min-height:0!important;background:#fff!important}
.portfolio-page #grp-clientes>.vertical-carousel .journey-card .editorial-card-photo{height:clamp(220px,38svh,350px)!important;max-height:none!important;box-sizing:border-box!important;padding:12px!important;background:#1b2c3c!important;border-bottom:3px solid #f5c518!important;object-fit:contain!important}
.portfolio-page #grp-clientes>.vertical-carousel .journey-card .project-info{margin:0!important;padding:22px 20px!important;justify-content:flex-start!important}
body[data-foundation] .fleet-library79 .cv-foundation82{padding-top:30px!important;margin-top:24px!important}
.cv-flat82{grid-template-columns:68px minmax(0,1fr);align-items:start;gap:16px}
.cv-summary82{display:contents}
body[data-foundation] .cv-summary82 h3{grid-column:1/-1;grid-row:1;font-size:26px!important;margin:0 0 8px!important;text-align:left!important;max-width:20ch}
.cv-cover82{grid-column:1;grid-row:2/4}
.cv-meta82{grid-column:2;grid-row:2;align-self:end}
body[data-foundation] .cv-summary82 p{grid-column:2;grid-row:3;font-size:14px!important;line-height:1.55!important}
body[data-foundation] .cv-actions82{align-items:flex-start!important;gap:8px;margin-top:24px}
body[data-foundation] .cv-actions82>a:not(.btn){justify-content:flex-start!important;text-align:left!important;align-self:flex-start!important;margin:0!important;padding:0!important}
body[data-foundation] #frente-san-juan .soil-depth{top:80px!important;bottom:auto!important;font-size:25px!important;left:54%!important;width:46%!important}
body[data-foundation] #capacidad-instalada .fleet-toolbar70{flex-wrap:wrap;gap:14px;align-items:center}
body[data-foundation] #capacidad-instalada .fleet-status70{flex:1 1 140px;max-width:none!important;font-size:10px!important;line-height:1.7;letter-spacing:.08em;white-space:normal;overflow:visible}
body[data-foundation] #capacidad-instalada .fleet-toggle70{flex:0 0 auto}
body[data-foundation] .foundation-allies80 h2{font-size:26px!important;line-height:1.2!important;text-align:left!important;margin:12px 0 24px!important;max-width:22ch}
body[data-foundation] .foundation-allies80>.wrap>.kicker{text-align:left!important;margin:0!important;font-size:11px!important;letter-spacing:.12em!important}
}
@media(max-width:900px){
body[data-foundation] .foundation-film-zone .foundation-story{padding-left:var(--page-gutter,22px)!important;padding-right:var(--page-gutter,22px)!important;box-sizing:border-box}
body[data-foundation] .foundation-film-zone .foundation-story .rama.ecko-brand{width:80%!important;max-width:380px!important;margin:24px 0 24px var(--page-gutter,22px)!important;justify-self:start!important}
}
@media(max-width:700px){
.portfolio-page #grp-clientes>.vertical-carousel .journey-card[hidden]{display:none!important}
}

/* ajustes-v85.css */
/* Real document artwork anchors the download, on the page's white surface. */
.company-cv82{background:#fff!important;border-top:1px solid #dbe1e5;padding:36px 0!important;align-items:center}
.company-cv-download82{position:relative;isolation:isolate;overflow:hidden;min-height:340px;box-sizing:border-box;justify-content:flex-end!important;align-items:flex-start!important;background:#162d3d!important;border:1px solid #bdc8cf;box-shadow:0 14px 32px #142d3d18;gap:16px!important}
.company-cv-preview85{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center 18%!important;z-index:-2;transition:transform .5s ease!important}
.company-cv-download82::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#12283800 25%,#12283840 48%,#122838f5 100%)}
.company-cv-download82>span:not(.company-cv-arrow82){color:#fff;text-shadow:0 2px 10px #0008;position:relative;max-width:85%;font-size:clamp(20px,2vw,27px);line-height:1.3}
.company-cv-download82 .company-cv-arrow82{position:absolute;right:24px;bottom:28px;font-size:52px!important;align-self:auto}
.company-cv-download82:hover .company-cv-preview85{transform:scale(1.035)}
.company-cv-open82{justify-content:flex-start!important}
body[data-foundation] .foundation-allies80>.wrap{width:100%!important;max-width:none!important;padding-left:0!important;padding-right:0!important;box-sizing:border-box}
body[data-foundation] .foundation-allies80 h2{margin:12px 0 28px!important;text-align:left!important;max-width:none}
body[data-foundation] .foundation-allies80>.wrap>.kicker{margin:0!important;text-align:left!important}
.catalog-controls85{display:none}
@media(min-width:1001px){
/* No nested wheel-scrolling: six distinct cards, then the history section. */
.portfolio-page #grp-clientes>.vertical-carousel{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:24px!important;height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;padding:0!important;border:0!important;background:transparent!important;scroll-snap-type:none!important;contain:none!important}
.portfolio-page #grp-clientes>.vertical-carousel .journey-card{height:auto!important;min-height:0!important;border:1px solid #bcc8d1!important;border-radius:8px!important;overflow:hidden!important;margin:0!important;background:#fff!important;box-shadow:0 6px 20px #142d3d0d!important}
.portfolio-page #grp-clientes>.vertical-carousel .journey-card .project-cover{display:flex!important;flex-direction:column!important;height:100%!important;min-height:0!important;gap:0!important}
.portfolio-page #grp-clientes>.vertical-carousel .journey-card .editorial-card-photo{position:static!important;flex:none!important;width:100%!important;height:240px!important;min-height:0!important;max-height:none!important;object-fit:contain!important;background:#192d3e!important;padding:12px!important;margin:0!important;box-sizing:border-box!important;border-bottom:3px solid #f5c518!important}
.portfolio-page #grp-clientes>.vertical-carousel .journey-card .project-info{padding:22px!important;margin:0!important;overflow:visible!important;justify-content:flex-start!important;gap:12px!important;min-width:0!important}
.portfolio-page #grp-clientes>.vertical-carousel .project-info>b{font-size:22px!important;line-height:1.25!important}
.portfolio-page #grp-clientes>.vertical-carousel .project-number{display:none!important}
.portfolio-page #grp-clientes>.vertical-carousel .journey-card[hidden],.portfolio-page #grp-clientes>.vertical-carousel .journey-card.catalog-page-hidden85{display:none!important}
.catalog-controls85{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:22px 0;margin-bottom:26px;border-bottom:1px solid #d3dbe1}
.catalog-controls85 button{font:inherit;font-size:14px;min-height:44px;padding:10px 18px;border:1px solid #aab9c4;border-radius:4px;background:#fff;color:#19354b;cursor:pointer}
.catalog-controls85 button:disabled{opacity:.4;cursor:default}.catalog-controls85 button:hover:not(:disabled){background:#f5c518}
.catalog-controls85 span{font-size:13px;color:#536675}.catalog-controls85 a{margin-left:auto;color:#19354b;text-underline-offset:5px}
body[data-foundation] #ecko .fleet-library79 .fleet-layout.fleet-photo-only78{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)!important;gap:24px 48px!important;align-items:start!important}
body[data-foundation] #ecko .fleet-library79 .fleet-photo{max-width:480px!important;max-height:520px!important;height:100%!important;align-self:center!important;overflow:hidden!important}
body[data-foundation] #ecko .fleet-library79 .fleet-photo img{height:100%!important;max-height:520px!important;width:100%!important;object-fit:contain!important}
body[data-foundation] .cv-flat82{grid-template-columns:150px minmax(0,1fr);gap:24px}
body[data-foundation] .cv-summary82 h3{font-size:30px!important}.cv-meta82{font-size:11px}
body[data-foundation] #ecko .front-layout64>.foundation-metrics:has(.stabilizer-circuit,.casing-diagram){height:620px!important;max-height:620px!important;overflow-y:auto!important;overscroll-behavior-y:auto;scrollbar-width:thin;scrollbar-color:#83b83a #223643;box-sizing:border-box}
}
@media(max-width:700px){
.company-cv-download82{min-height:340px;flex-direction:column!important;padding:24px!important;width:100%}
.company-cv82{padding:30px 0!important}.company-cv-download82>span:not(.company-cv-arrow82){font-size:22px}
}
@media(prefers-reduced-motion:reduce){.company-cv-preview85{transition:none!important}.company-cv-download82:hover .company-cv-preview85{transform:none}}
@media(min-width:1001px){
body[data-foundation] .foundation-allies80>.wrap{padding-left:clamp(28px,4vw,76px)!important;padding-right:clamp(28px,4vw,76px)!important}
.portfolio-page #grp-clientes>.vertical-carousel{scroll-margin-top:110px}
}
@media(min-width:1001px){
.portfolio-page #grp-clientes>.vertical-carousel{width:100%!important;max-width:100%!important;margin-left:0!important;margin-right:0!important;align-items:stretch!important}
.portfolio-page #grp-clientes>.vertical-carousel .journey-card{align-self:stretch!important}
}
.portfolio-page #grp-clientes>.vertical-carousel[hidden]{display:none!important}

/* ajustes-v86.css */
.logos.home-logo-track{scroll-snap-type:none!important;scroll-behavior:auto!important;overflow-anchor:none}
.logos.home-logo-track figure{background:#f4f7fc!important;flex-shrink:0!important}
.logos.home-logo-track img{width:100%!important;height:90px!important;max-width:230px!important;max-height:90px!important;object-fit:contain!important;filter:none!important;opacity:1!important;transform:none!important}
@media(max-width:700px){.logos.home-logo-track img{height:70px!important;max-height:70px!important;max-width:180px!important}}
/* Use the same transparent original artwork on desktop and mobile. */
body[data-foundation] .et-signature .et-wordmark80,body[data-foundation] .foundation-film-zone .rama.ecko-brand .mk>img{display:none!important}
body[data-foundation] .et-signature{background:transparent!important}
body[data-foundation] .et-signature .et-transparent81{display:block;width:144px;max-width:100%;height:auto;margin:0 0 8px;overflow:visible}
body[data-foundation] .foundation-film-zone .rama.ecko-brand .mk{background:transparent!important}
body[data-foundation] .foundation-film-zone .rama.ecko-brand .mk .et-transparent81{display:block;width:100%;height:auto;margin:0;overflow:visible}
body[data-foundation] #frente-san-juan .soil-depth{top:80px!important;bottom:auto!important;left:54%!important;width:46%!important;font-size:25px!important;line-height:1.2!important}

/* ajustes-v87.css */
/* Solid navy keeps the Alianza mark legible at the top and after scrolling. */
body[data-foundation] #hd,
body[data-foundation] #hd.scrolled,
body[data-foundation].menu-abierto #hd,
body[data-foundation].menu-abierto #menu.on{background:#091b33!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;border-bottom-color:#ffffff1f!important}
body[data-foundation] #hd .nav{background:transparent!important}
body[data-foundation] #hd .submenu{background:#091b33!important}
/* Higher resolution original marks share a quiet, consistent image area. */
.logos.company-cards img{background:#f4f7fc!important;padding:10px!important;box-sizing:border-box!important;object-fit:contain!important;filter:none!important;opacity:1!important}
.logos.company-cards img{width:100%!important;max-width:100%!important;height:100px!important;max-height:100px!important;object-position:center!important}
@media(max-width:700px){.logos.company-cards img{height:90px!important;max-height:90px!important}}

/* ajustes-v89.css */
/* Contact footer without office-location columns. */
footer .fgrid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)!important;gap:36px!important}
body[data-legal] .legal-hero{padding-top:124px!important;padding-bottom:40px!important;min-height:0!important;height:auto!important;overflow:visible!important}
body[data-legal] .legal-hero>.wrap,body[data-legal] .legal>.wrap{max-width:none!important;width:100%!important;margin-left:0!important;margin-right:0!important;text-align:left!important}
body[data-legal] .legal-hero .kicker{position:static!important;transform:none!important;margin:0 0 18px!important;line-height:1.5!important;overflow:visible!important;text-align:left!important}
body[data-legal] .legal-hero h1,body[data-legal] .legal-hero p,body[data-legal] .legal h2,body[data-legal] .legal p{text-align:left!important;margin-left:0!important;margin-right:0!important}
body[data-legal] .legal p{max-width:100ch!important}
@media(max-width:700px){footer .fgrid{grid-template-columns:1fr!important;gap:24px!important}body[data-legal] .legal-hero{padding-top:102px!important;padding-bottom:30px!important}body[data-legal] .legal-hero .kicker{margin-bottom:14px!important}}

/* alianzas-v93.css */
/* Logos retain their artwork; SVG filters remove their pale paper backgrounds. */
.monarca-logo88{background:transparent!important;mix-blend-mode:multiply}
.monarca-copy88,.monarca-layout88>*{min-width:0}
#marmoles-monarca h2{overflow-wrap:normal;word-break:normal;width:100%;max-width:100%!important}
body[data-foundation] .foundation-allies80 .allies-grid80{grid-template-columns:1fr!important}
body[data-foundation] .lci93{border-top:1px solid #9fab99!important;padding:26px 0 0!important;margin-top:10px;min-width:0}
.lci-head93{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:28px;font:10px/1.6 'IBM Plex Mono',monospace;letter-spacing:.1em;color:#476238}
.lci-head93 a{color:#18314b;text-decoration:none}
.lci-layout93{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(24px,4vw,60px);align-items:center}
.lci-layout93>*{min-width:0}.lci-brand93{display:flex;align-items:center;gap:16px;margin-bottom:24px;color:#233641}.lci-brand93 img{width:56px!important;height:54px!important;object-fit:contain;background:transparent;mix-blend-mode:multiply}.lci-brand93>span{font-size:15px;letter-spacing:.15em}.lci-brand93 b{font-size:32px;letter-spacing:.02em}
body[data-foundation] .foundation-allies80 .lci93 h3{font-size:clamp(28px,2.7vw,42px)!important;line-height:1.13!important;letter-spacing:-.035em;margin:0 0 22px!important;text-align:left!important}
.lci93 h3 em{font-family:Georgia,serif;font-weight:400;color:#52723a}
body[data-foundation] .foundation-allies80 .lci93 p{font-size:14px!important;line-height:1.8!important;text-align:left;margin:0!important;max-width:52ch}
.lci-services93{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:24px 0}.lci-services93>div{border-top:1px solid #b7c2ae;padding-top:14px}.lci-services93 span{display:block;font:10px/1.5 'IBM Plex Mono',monospace;color:#476238;margin-bottom:10px}
body[data-foundation] .foundation-allies80 .lci93 .lci-note93{font-size:11px!important;margin:0 0 20px!important;color:#64705d!important}
.lci-cta93{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;background:#18314b;color:white!important;text-decoration:none;font-size:12px;font-weight:600;min-height:52px}.lci-cta93 span{font-size:24px;color:#8abe39}
.lci-gallery93 figure{margin:0;position:relative;overflow:hidden;background:#dbe1d4}.lci-gallery93 img{display:block;width:100%!important;height:100%!important;object-fit:cover}.lci-main93{height:280px}.lci-gallery93 figcaption{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#152b39ed);padding:35px 18px 16px;color:white;font-size:14px}.lci-details93{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.lci-details93 figure{height:145px}.lci-details93 figcaption{font-size:11px;padding:28px 12px 12px}.lci-source93{display:block;width:fit-content;color:#52614d!important;font-size:11px;margin-top:12px;text-underline-offset:4px}
.lci93 a:focus-visible{outline:3px solid #7fb329;outline-offset:4px}
@media(max-width:760px){.lci-layout93{grid-template-columns:1fr;gap:28px}.lci-head93{font-size:9px;letter-spacing:.04em}.lci-brand93{margin-bottom:20px}.lci-main93{height:220px}.lci-details93{gap:8px}.lci-details93 figure{height:130px}.lci-services93{gap:16px}body[data-foundation] .foundation-allies80 .lci93 h3{font-size:clamp(28px,7.5vw,36px)!important}#marmoles-monarca .monarca-top88{flex-wrap:wrap}#marmoles-monarca h2{font-size:clamp(30px,8vw,40px)!important}}

/* pulido-v94.css */
/* Document artwork, complete from its top edge, with a separate download bar. */
.company-cv82{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(260px,420px)!important;gap:24px 64px!important;padding:48px 0!important;border:0!important;scroll-margin-top:120px}
.company-cv-copy82{align-self:center;min-width:0}.company-cv-label82{line-height:1.7!important;letter-spacing:.12em!important;font-size:11px!important;white-space:normal!important}
.company-cv-download82{display:flex!important;flex-direction:column!important;padding:0!important;min-height:0!important;height:auto!important;width:100%!important;background:white!important;border:1px solid #d6d9d6!important;border-radius:6px;overflow:hidden;gap:0!important;grid-column:2;grid-row:1 / 3}
.company-cv-preview85{position:static!important;inset:auto!important;width:100%!important;height:auto!important;max-height:none!important;object-fit:contain!important;z-index:auto!important;transform:none!important;display:block!important}
.company-cv-download82::after{display:none!important}
.company-cv-download82>.cv-action94{display:flex!important;align-items:center;justify-content:space-between;gap:20px;max-width:none!important;width:100%;padding:18px 22px;box-sizing:border-box;color:#182c3a!important;background:#f5c518;text-shadow:none!important;font-size:16px!important;line-height:1.4!important}
.cv-action94 strong{display:block}.cv-action94>span:last-child{font-size:34px;font-weight:400}.company-cv-open82{grid-column:1;align-self:start;justify-self:start;margin:0!important;font-size:14px!important}
/* Neutral surfaces for the original brand artwork. */
.logos.company-cards figure,.logos.home-logo-track figure,.logos.company-cards img,.logos.home-logo-track img{background:#fff!important;box-shadow:none!important}
.logos.company-cards img,.logos.home-logo-track img{padding:8px!important;mix-blend-mode:multiply}
/* A single reading direction and no inner scroll trap. */
.portfolio-page #grp-clientes>.vertical-carousel{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:30px!important;width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;scroll-snap-type:none!important;contain:none!important}
.portfolio-page #grp-clientes>.vertical-carousel .journey-card{width:100%!important;max-width:none!important;height:auto!important;min-height:0!important;margin:0!important;border:1px solid #d9dedf!important;border-radius:4px!important;box-shadow:none!important;overflow:hidden!important;background:#fff!important;transform:none!important}
.portfolio-page #grp-clientes>.vertical-carousel .journey-card .project-cover{display:flex!important;flex-direction:column!important;gap:0!important;height:auto!important;min-height:0!important;padding:0!important;background:#fff!important}
.portfolio-page #grp-clientes>.vertical-carousel .journey-card .editorial-card-photo{position:static!important;display:block!important;width:100%!important;height:clamp(280px,46vw,600px)!important;min-height:0!important;max-height:none!important;margin:0!important;padding:0!important;border:0!important;object-fit:cover!important;object-position:center!important;background:transparent!important;clip-path:inset(1.3%);transform:scale(1.028)!important;box-sizing:border-box!important}
.portfolio-page #grp-clientes>.vertical-carousel .journey-card .project-info{position:relative!important;background:#fff!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;padding:28px 32px!important;margin:0!important;gap:12px!important;min-height:0!important}
.portfolio-page #grp-clientes>.vertical-carousel .project-info>b{font-size:clamp(25px,3vw,40px)!important;line-height:1.15!important;max-width:none!important}
.portfolio-page #grp-clientes>.vertical-carousel .project-number{display:none!important}
.portfolio-page #grp-clientes>.vertical-carousel .journey-card[hidden],.portfolio-page #grp-clientes>.vertical-carousel .journey-card.catalog-page-hidden85{display:none!important}
.catalog-controls85{display:flex!important;flex-wrap:wrap;gap:12px;align-items:center;margin:24px 0;padding:16px 0;border-bottom:1px solid #d9dedf}.catalog-controls85 button{font:inherit;font-size:13px;padding:12px 18px;min-height:44px;background:white;color:#182c3a;border:1px solid #b9c4ca;border-radius:4px}.catalog-controls85 button:disabled{opacity:.4}.catalog-controls85 span,.catalog-controls85 a{font-size:12px}.catalog-controls85 a{color:#182c3a;text-underline-offset:4px}
@media(max-width:760px){.company-cv82{grid-template-columns:minmax(0,1fr)!important;gap:24px!important;padding:32px 0!important}.company-cv-download82{grid-column:1;grid-row:auto;max-width:420px;justify-self:start}.company-cv-open82{grid-column:1}.portfolio-page #grp-clientes>.vertical-carousel{gap:24px!important}.portfolio-page #grp-clientes>.vertical-carousel .journey-card .editorial-card-photo{height:clamp(240px,70vw,430px)!important}.portfolio-page #grp-clientes>.vertical-carousel .journey-card .project-info{padding:22px!important}.catalog-controls85 a{flex-basis:100%;margin:8px 0 0}}
.portfolio-page #grp-clientes>.vertical-carousel .journey-card .editorial-card-photo.photo-source-hidden,.portfolio-page #grp-clientes>.vertical-carousel .journey-card .editorial-card-photo[hidden]{display:none!important}

/* ajustes-v95.css */
/* Consistent call-to-action sizing without oversized labels on phones. */
.btn,.company-cv-quick82,.monarca-cta88,.lci-cta93{box-sizing:border-box!important;min-height:48px!important;padding:14px 22px!important;font-size:12px!important;line-height:1.45!important;letter-spacing:.07em!important;white-space:normal!important;max-width:100%!important;text-align:center!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:12px!important}
#fleet-panel70-6 .fleet-image70 img{object-fit:contain!important;object-position:center!important;background:#e8e9e3!important}
@media(max-width:760px){
.btn,.company-cv-quick82,.monarca-cta88,.lci-cta93{font-size:11px!important;letter-spacing:.055em!important;min-height:48px!important;padding:14px 18px!important;width:fit-content!important;max-width:100%!important;overflow-wrap:break-word}
body[data-foundation] .foundation-allies80{padding:36px 0 40px!important;scroll-margin-top:260px}
body[data-foundation] .foundation-allies80>.wrap{padding:0 22px!important;width:100%!important;box-sizing:border-box!important}
body[data-foundation] .foundation-allies80>.wrap>.kicker{line-height:1.7!important;margin-bottom:14px!important;font-size:10px!important;letter-spacing:.14em!important}
body[data-foundation] .foundation-allies80 h2{font-size:28px!important;line-height:1.2!important;margin:0 0 30px!important}
body[data-foundation] .foundation-allies80 .allies-grid80{gap:36px!important}
body[data-foundation] .foundation-allies80 .allies-grid80>article{padding-top:26px!important;margin:0!important}
body[data-foundation] .foundation-allies80 .allies-grid80>article:first-child{padding-bottom:8px!important}
body[data-foundation] .foundation-allies80 .ally-name80{display:block;margin-bottom:16px!important;font-size:32px!important}
body[data-foundation] .foundation-allies80 .ally-legal82{font-size:13px!important;line-height:1.65!important;margin:0 0 22px!important}
body[data-foundation] .foundation-allies80 .allies-grid80>article:first-child h3{font-size:21px!important;line-height:1.3!important;margin:0 0 16px!important}
body[data-foundation] .foundation-allies80 .allies-grid80>article:first-child>p:last-child{font-size:14px!important;line-height:1.85!important}
.lci-head93{margin-bottom:28px!important;flex-wrap:wrap;gap:12px}.lci-layout93{gap:30px!important}.lci-services93{margin:26px 0!important}
body[data-foundation] #capacidad-instalada .btn{margin-top:12px!important}
}

/* fotos-v96.css */
/* Each scanned photograph now has its own exact clean image viewport. */
.portfolio-page #grp-clientes>.vertical-carousel .journey-card .editorial-card-photo{clip-path:none!important;transform:none!important;padding:0!important;border:0!important;margin:0!important}
.native-hero img,.native-gallery img,.native-gallery-grid img,#viewer-photo,.trajectory-route .chip-photo img{padding:0!important;border:0!important;outline:0!important;box-shadow:none!important;clip-path:none!important;transform:none!important;display:block}
.native-gallery-grid figure,.native-gallery figure{padding:0!important;border:0!important;background:transparent!important;overflow:hidden}
.native-gallery-grid figure>a{display:block;line-height:0;padding:0!important;border:0!important}
.native-gallery-grid figure img{width:100%;height:auto;object-fit:cover}

/* ajustes-v97.css */
/* Brand artwork belongs directly on its surrounding surface. */
.logos,.logos.home-logo-track,.logos.company-cards,.logos figure,.logos img,.logos.home-logo-track figure,.logos.company-cards figure,.logos.home-logo-track img,.logos.company-cards img,.monarca-logo88,.lci-logo93{background:transparent!important;background-image:none!important;box-shadow:none!important;mix-blend-mode:normal!important}
/* One continuous vertical catalog; the page owns the scroll. */
.portfolio-page #grp-clientes>.vertical-carousel{display:grid!important;grid-template-columns:minmax(0,1fr)!important;grid-auto-flow:row!important;height:auto!important;max-height:none!important;overflow:visible!important;touch-action:pan-y!important;scroll-snap-type:none!important;transform:none!important}
.portfolio-page #grp-clientes>.vertical-carousel .journey-card{position:relative!important;inset:auto!important;scroll-snap-align:none!important;flex:none!important}
.portfolio-page #grp-clientes>.vertical-carousel .journey-card[hidden]{display:none!important}
.catalog-jump97{display:inline-flex;align-items:center;min-height:44px;margin:0 0 24px;color:#182c3a;text-underline-offset:5px;font-size:14px}

/* diseno-v98.css */
/* Company document: editorial layout with complete cover and clear actions. */
.cv-dossier98{box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);grid-template-rows:auto auto;column-gap:clamp(32px,6vw,88px);row-gap:28px;margin:56px 0;padding:48px 0;border-top:3px solid #f4c414;border-bottom:1px solid #dce0e1;background:#fff;color:#192d39;align-items:center;scroll-margin-top:120px}
.cv-dossier98 *{box-sizing:border-box}.cv-copy98{min-width:0;align-self:end}.cv-dossier98 .cv-eyebrow98{font:500 11px/1.6 monospace;letter-spacing:.16em;color:#7c651d;margin:0 0 24px}.cv-dossier98 h2{font-size:clamp(32px,3.7vw,54px)!important;line-height:1.1!important;letter-spacing:-.035em;margin:0 0 24px!important;text-align:left!important;color:#192d39!important}.cv-dossier98 .cv-intro98{font-size:17px;line-height:1.7;max-width:440px;color:#596771;margin:0 0 28px}.cv-meta98{display:flex;flex-direction:column;gap:8px;font:12px/1.6 monospace;letter-spacing:.04em}.cv-meta98 span:last-child{color:#67727a}
.cv-art98{grid-column:2;grid-row:1/3;display:block;position:relative;justify-self:center;width:min(100%,350px);background:white;border:1px solid #d9dedf;box-shadow:8px 8px 0 #f2f1ed,9px 9px 0 #d9dedf,0 18px 36px #182c3a12;text-decoration:none;color:#192d39}.cv-art98 img{display:block;width:100%!important;height:auto!important;max-height:none!important;object-fit:contain!important;margin:0!important;padding:0!important;transform:none!important;clip-path:none!important}.cv-art98>span{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-top:1px solid #e0e3e3;font-size:12px}.cv-art98 b{font-size:20px;color:#8c741d}.cv-actions98{align-self:start;display:flex;flex-direction:column;align-items:flex-start;gap:18px;min-width:0}.cv-download98{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;background:#192d39;color:#fff!important;text-decoration:none!important;padding:16px 22px;min-height:54px;max-width:100%;font-size:14px;font-weight:600;border-radius:3px}.cv-download98 b{color:#f4c414;font-size:24px;font-weight:400;line-height:1}.cv-download98:hover{background:#304754}.cv-online98{font-size:14px;color:#192d39;text-underline-offset:5px}.cv-actions98 p{font-size:11px;line-height:1.5;color:#78838a;margin:0}.cv-dossier98 a:focus-visible{outline:3px solid #bc981e;outline-offset:5px}
@media(max-width:700px){.cv-dossier98{grid-template-columns:minmax(0,1fr);gap:28px;margin:36px 0;padding:32px 0}.cv-dossier98 h2{font-size:34px!important}.cv-dossier98 .cv-eyebrow98{font-size:10px;margin-bottom:18px}.cv-dossier98 .cv-intro98{font-size:16px;margin-bottom:22px}.cv-art98{grid-column:1;grid-row:2;width:min(82%,300px);margin:0 0 8px}.cv-actions98{grid-column:1;grid-row:3;width:100%}.cv-download98{width:100%;font-size:14px}.cv-dossier98 .cv-meta98{font-size:11px}}
/* Desktop fleet photo: more visual weight, complete framing. */
@media(min-width:1001px){body[data-foundation] #ecko .fleet-library79 .fleet-layout.fleet-photo-only78{display:grid!important;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)!important;gap:32px 48px!important;align-items:center!important}body[data-foundation] #ecko .fleet-library79 .fleet-heading82{grid-column:1/-1!important;grid-row:1!important;align-self:start!important;width:100%!important}body[data-foundation] #ecko .fleet-library79 .fleet-photo{grid-column:1!important;grid-row:2!important;width:100%!important;max-width:none!important;height:auto!important;max-height:none!important;margin:0!important;align-self:center!important}body[data-foundation] #ecko .fleet-library79 .fleet-photo img{display:block!important;width:100%!important;height:auto!important;max-height:none!important;object-fit:contain!important}body[data-foundation] #ecko .fleet-library79 .fleet-copy79{grid-column:2!important;grid-row:2!important;align-self:center!important;min-width:0!important;width:100%!important}}

/* Desktop document stays beside its text instead of stretching across the page. */
@media(min-width:1001px){.cv-dossier98{grid-template-columns:minmax(0,480px) minmax(0,350px)!important;column-gap:36px!important;justify-content:start!important}.cv-dossier98 .cv-art98{justify-self:start!important;margin-left:0!important}.cv-dossier98 .cv-copy98,.cv-dossier98 .cv-actions98{width:100%!important;max-width:480px!important}}

/* galerias-v99.css */
body[data-foundation] .foundation-film-zone .foundation-film99{grid-column:1/-1;grid-row:1;width:100%;margin:0;min-width:0;align-self:center}.foundation-player99{position:relative}body[data-foundation] .foundation-film-zone .foundation-player99 .foundation-background-video{position:relative!important;display:block!important;margin:0!important;max-width:none!important;width:100%!important;height:auto!important}body[data-foundation] .foundation-film-zone .foundation-player99 .foundation-video-toggle{position:absolute!important;inset:auto 12px 12px auto!important;margin:0!important}.foundation-film99 figcaption{display:block!important;font-size:10px!important;line-height:1.5!important;color:#c1cbd2!important;text-align:left!important;padding:10px 0 0!important;margin:0!important;letter-spacing:0!important;position:static!important;background:none!important}@media(min-width:1001px){body[data-foundation] .foundation-film-zone .foundation-film99{grid-column:2!important;grid-row:1!important}}@media(max-width:900px){.foundation-film99 figcaption{padding:9px 22px 0!important}}
.monarca-gallery88 figure,.lci-gallery93 figure{position:relative}.photo-open99{display:block;position:relative;width:100%;height:100%;color:white;cursor:zoom-in}.photo-open99>span{position:absolute;right:10px;top:10px;background:#152b38df;color:white;padding:7px 10px;border-radius:3px;font:12px/1.4 sans-serif;z-index:2}.monarca-gallery88 figcaption,.lci-gallery93 figcaption{pointer-events:none}.photo-open99:focus-visible{outline:3px solid #edc41c;outline-offset:3px}.photo-dialog99{padding:56px 16px 18px;border:0;background:#13202bea;color:white;max-width:96vw;width:1100px;max-height:94dvh;box-sizing:border-box;border-radius:6px}.photo-dialog99::backdrop{background:#000c}.photo-dialog99 img{display:block;width:100%;height:70dvh;object-fit:contain}.photo-dialog99 p{font-size:13px;text-align:center;margin:12px 0 0;line-height:1.5;color:white}.photo-dialog99 button{background:#fff;color:#192d39;border:0;border-radius:3px;min-height:44px;padding:8px 16px;font:14px sans-serif;cursor:pointer}.photo-close99{position:absolute;right:12px;top:8px}.photo-nav99{display:flex;justify-content:center;gap:16px;margin-top:14px}@media(max-width:600px){.photo-dialog99 img{height:58dvh}.photo-dialog99{padding-inline:8px}}

/* boton-v101.css */
body[data-foundation] .et-nav-cta{display:inline-flex!important;align-items:center;justify-content:center;gap:10px;position:relative;overflow:hidden;isolation:isolate;border:1px solid #8ac329!important;border-radius:4px!important;padding:11px 16px!important;min-height:44px;box-sizing:border-box;background:transparent!important;color:#a7db54!important;text-decoration:none!important;transition:background-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease,border-color .18s ease;-webkit-tap-highlight-color:transparent}
body[data-foundation] .et-nav-cta .quote-arrow101{display:inline-block;transition:transform .2s ease;font-size:1.2em;line-height:1}
@media(hover:hover){body[data-foundation] .et-nav-cta:hover{background:#8ac329!important;color:#12263b!important;box-shadow:0 5px 16px #0003!important;transform:translateY(-2px)}body[data-foundation] .et-nav-cta:hover .quote-arrow101{transform:translate(3px,-3px)}}
body[data-foundation] .et-nav-cta:focus-visible{outline:3px solid #d5f5a0!important;outline-offset:4px;background:#8ac329!important;color:#12263b!important}
body[data-foundation] .et-nav-cta:active,body[data-foundation] .et-nav-cta.quote-pressed101{background:#a7db54!important;color:#12263b!important;transform:scale(.96);border-color:#c6ed89!important;box-shadow:0 0 0 5px #8ac32933!important}
body[data-foundation] .et-nav-cta.quote-pressed101 .quote-arrow101{transform:translate(4px,-4px)}
@media(prefers-reduced-motion:reduce){body[data-foundation] .et-nav-cta,body[data-foundation] .et-nav-cta .quote-arrow101{transition:none!important;transform:none!important}}

/* simbolo-v103.css */
body[data-foundation] .et-signature.et-symbol103{display:flex!important;align-items:center!important;justify-content:flex-start!important;width:auto!important;min-width:0!important;gap:0!important;padding:0!important;background:transparent!important;box-shadow:none!important}body[data-foundation] .et-signature.et-symbol103>img{display:block!important;width:76px!important;height:auto!important;max-width:100%!important;max-height:none!important;margin:0!important;padding:0!important;object-fit:contain!important;background:transparent!important;filter:none!important;opacity:1!important}@media(max-width:700px){body[data-foundation] .et-signature.et-symbol103>img{width:58px!important}}

/* titulos-v104.css */
/* Consistent breathing room for section labels and their headings. */
body main .kicker,body main .cv-eyebrow98,body main .fleet-overline70{line-height:1.65!important;height:auto!important;max-height:none!important;overflow:visible!important;white-space:normal!important;margin-top:0!important;margin-bottom:20px!important;padding-top:2px!important;padding-bottom:2px!important;box-sizing:border-box}
body main .kicker+h1,body main .kicker+h2,body main .kicker+h3,body main .fleet-overline70+h3{margin-top:0!important}
body[data-foundation] .foundation-film-zone .foundation-intro .kicker{position:relative!important;top:-12px!important;margin-bottom:20px!important;line-height:1.75!important}
body[data-foundation] .foundation-allies80>.wrap>.kicker{margin-bottom:20px!important;line-height:1.65!important}
body main .cv-meta82{display:block!important;line-height:1.65!important;margin-bottom:16px!important;white-space:normal!important;height:auto!important}
body main .monarca-top88,body main .lci-head93{line-height:1.65!important;height:auto!important;min-height:0!important;flex-wrap:wrap!important;row-gap:12px!important}
@media(max-width:700px){body main .kicker,body main .cv-eyebrow98,body main .fleet-overline70{margin-bottom:18px!important;line-height:1.7!important}body[data-foundation] .foundation-film-zone .foundation-intro .kicker{top:-8px!important;margin-bottom:18px!important}}

/* pulido-v105.css */
/* Header is navigation only. */
#hd .nav>a[href*="#cotizar"],#hd a[href*="#cotizar"]{display:none!important}.reading-progress{display:none!important}#hd .marca,body[data-foundation] #hd .marca{border-left:0!important;padding-left:0!important}#hd::before,#hd::after{border-left:0!important}
/* Clear photos; captions live below them. */
.portfolio-page #grp-trayectoria summary::before{display:none!important}
.portfolio-page #grp-trayectoria .history-chapter>summary{padding:0 0 22px!important;gap:14px!important;min-height:0!important;justify-content:flex-start!important;background:#fff!important}
.portfolio-page #grp-trayectoria .history-cover{position:relative!important;inset:auto!important;z-index:auto!important;width:100%!important;height:200px!important;object-fit:cover!important;opacity:1!important;filter:none!important;transform:none!important}
.portfolio-page #grp-trayectoria .history-chapter[open] .history-cover{height:260px!important}
.portfolio-page #grp-trayectoria .history-chapter>summary>span:not(.route-number){margin:0 20px!important}
.portfolio-page #grp-trayectoria .route-number{position:absolute!important;left:12px;top:12px;z-index:1;font-size:23px!important;line-height:1!important;padding:9px;background:#fff!important;border-radius:3px;margin:0!important}
.portfolio-page #grp-trayectoria .history-chapter>summary::after{top:12px!important;right:12px!important;font-size:24px!important;background:#fff;border-radius:3px;padding:3px 10px}
/* Symbol sits on the Systems axis at the bottom of its row. */
body[data-foundation] .et-nav-inner{display:grid!important;grid-template-columns:1fr!important;gap:16px!important;align-items:end!important;padding-top:20px!important;padding-bottom:12px!important}
body[data-foundation] .et-signature.et-symbol103{grid-column:1;grid-row:1;align-self:end!important;justify-self:start!important;margin:8px 0 0!important}
body[data-foundation] .et-nav-links{grid-column:1;grid-row:2;width:100%!important;display:flex!important;justify-content:space-between!important;padding:0!important;margin:0!important}
body[data-foundation] .et-nav-links>a:first-child{padding-left:0!important;margin-left:0!important}
body[data-foundation] .et-signature.et-symbol103>img{width:60px!important}
body[data-foundation] #ecko #frentes-recientes{margin-top:64px!important;margin-bottom:24px!important;padding-top:8px!important;scroll-margin-top:290px!important}
body[data-foundation] #ecko #sistemas,body[data-foundation] #ecko #flota,body[data-foundation] #ecko #capacidad-instalada{scroll-margin-top:290px!important}
body[data-foundation] .foundation-allies80>.wrap>.kicker{margin-top:24px!important;margin-bottom:24px!important}
.trec-logo105{display:block!important;width:220px!important;max-width:80%!important;height:auto!important;background:transparent!important;mix-blend-mode:normal!important;margin:0 0 24px!important;object-fit:contain!important}
.lci-brand93{margin:20px 0 28px!important;gap:18px!important}.lci-brand93 img{display:block!important;visibility:visible!important;opacity:1!important;width:82px!important;height:78px!important;background:transparent!important;mix-blend-mode:normal!important;filter:none!important}
/* Discreet enlargement control, with a comfortable tap target. */
.photo-open99>span.photo-icon105{display:grid;place-items:center;top:12px;right:12px;width:40px;height:40px;padding:10px;border:1px solid #ffffffa6;border-radius:50%;background:#fffefb;color:#213541;box-shadow:0 2px 8px #0002;transition:transform .2s,background .2s}
.photo-icon105 svg{display:block;width:20px;height:20px}.photo-open99:hover .photo-icon105{transform:scale(1.06);background:#fff}
.photo-dialog99{background:#f8f8f5;color:#253844;border-radius:12px;padding:60px 22px 20px;box-shadow:0 22px 90px #0005}.photo-dialog99::backdrop{background:#101820d9;backdrop-filter:blur(6px)}.photo-dialog99 img{height:65dvh!important;background:transparent;object-fit:contain}.photo-dialog99 p{color:#52616a;font-size:12px;max-width:720px;margin:16px auto 0}.photo-dialog99 button{border:1px solid #d8dfdf;background:white;border-radius:50%;width:44px;height:44px;padding:0;font-size:26px;line-height:1;display:grid;place-items:center}.photo-dialog99 .photo-close99{top:10px;right:12px;font-size:26px}.photo-nav99{gap:16px;margin-top:16px}
@media(max-width:760px){
body[data-foundation] #ecko #frentes-recientes{margin-top:56px!important;padding-top:16px!important;margin-bottom:24px!important}
body[data-foundation] .et-signature.et-symbol103>img{width:48px!important}.photo-dialog99{padding:58px 12px 16px;border-radius:10px}.photo-dialog99 img{height:56dvh!important}
.portfolio-page #grp-clientes>.vertical-carousel.catalog-book105{display:block!important;width:100%!important;margin:0!important;padding:0!important;box-sizing:border-box!important}
.book-group105{margin:0 0 14px;border:1px solid #dce0dc;border-radius:6px;background:#fff;overflow:hidden}.book-group105>summary{display:grid;grid-template-columns:1fr auto;gap:7px 16px;align-items:center;padding:20px;list-style:none;cursor:pointer}.book-group105>summary::-webkit-details-marker{display:none}.book-group105>summary strong{font-size:18px;line-height:1.3;color:#20333e}.book-group105>summary span{grid-column:1;font-size:12px;color:#69777d}.book-group105>summary b{grid-column:2;grid-row:1/3;font-size:26px;color:#92751d;font-weight:400}.book-group105[open]>summary{border-bottom:1px solid #e4e6e1;background:#f8f8f3}.book-pages105{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 10px;padding:14px 12px;transform-origin:left center;background:linear-gradient(90deg,#fafaf7 49.6%,#e3e4df 50%,#fafaf7 50.4%)}
.portfolio-page #grp-clientes>.vertical-carousel.catalog-book105 .journey-card{min-width:0!important;width:100%!important;border:1px solid #e0e4df!important;border-radius:3px!important;margin:0!important;box-shadow:none!important}
.portfolio-page #grp-clientes>.vertical-carousel.catalog-book105 .journey-card .project-cover{display:flex!important;flex-direction:column!important;height:100%!important;min-width:0!important}
.portfolio-page #grp-clientes>.vertical-carousel.catalog-book105 .journey-card .editorial-card-photo{height:128px!important;min-height:0!important;width:100%!important;object-fit:cover!important}
.portfolio-page #grp-clientes>.vertical-carousel.catalog-book105 .journey-card .project-info{padding:13px 10px!important;gap:10px!important;min-width:0!important;flex:1}
.portfolio-page #grp-clientes>.vertical-carousel.catalog-book105 .project-info>b{font-size:16px!important;line-height:1.25!important;min-height:0!important;overflow-wrap:anywhere}
.portfolio-page #grp-clientes>.vertical-carousel.catalog-book105 .project-category{display:none!important}
.portfolio-page #grp-clientes>.vertical-carousel.catalog-book105 .project-cue{font-size:11px!important;line-height:1.4!important;padding:6px 0!important;border:0!important;border-bottom:1px solid #bca246!important;background:none!important;white-space:normal!important}
.portfolio-page #grp-clientes>.vertical-carousel.catalog-book105 .project-location{font-size:10px!important;line-height:1.5!important}
.book-group105[hidden]{display:none!important}
}
@media(prefers-reduced-motion:reduce){.photo-open99>span.photo-icon105{transition:none!important}}
@media(max-width:760px){.portfolio-page #obras>.wrap{padding-left:20px!important;padding-right:20px!important}.portfolio-page #grp-clientes{width:100%!important;max-width:100%!important;margin-left:0!important;margin-right:0!important;padding-left:0!important;padding-right:0!important}}
body main .kicker[style*="margin-top"]{margin-top:56px!important}

/* escritorio-v106.css */
@media(min-width:761px){
.logos.home-logo-track figure{display:flex!important;align-items:center!important;justify-content:center!important;flex:0 0 300px!important;width:300px!important;height:190px!important;min-height:190px!important;padding:20px!important;margin:0!important}
.logos.home-logo-track img{width:100%!important;height:150px!important;max-height:150px!important;max-width:280px!important;object-fit:contain!important;object-position:center!important;padding:0!important;margin:auto!important}
.logos.company-cards figure{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important;padding:26px 22px!important;gap:24px!important}
.logos.company-cards img{display:block!important;width:100%!important;max-width:290px!important;height:160px!important;max-height:160px!important;object-fit:contain!important;object-position:center!important;margin:0 auto!important;padding:0!important;align-self:center!important}
.logos.company-cards figcaption{width:100%!important;margin:0!important;text-align:center!important}
.monarca-main88 .photo-open99>img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center 85%!important}
.monarca-details88 .photo-open99>img{width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important}
.portfolio-page #grp-clientes>.vertical-carousel.catalog-book105{display:block!important;width:100%!important;max-width:none!important}
.book-group105{margin:0 0 16px;border:1px solid #dce0dc;border-radius:5px;background:#fff;overflow:hidden}.book-group105>summary{display:grid;grid-template-columns:1fr auto 24px;gap:20px;align-items:center;padding:23px 28px;list-style:none;cursor:pointer}.book-group105>summary::-webkit-details-marker{display:none}.book-group105>summary strong{font-size:21px;line-height:1.3;color:#20333e}.book-group105>summary span{font-size:13px;color:#69777d}.book-group105>summary b{font-size:28px;color:#92751d;font-weight:400}.book-group105[open]>summary{border-bottom:1px solid #e4e6e1;background:#f8f8f3}.book-pages105{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;padding:24px;background:#f7f8f5}.book-group105[hidden]{display:none!important}
.portfolio-page #grp-clientes>.vertical-carousel.catalog-book105 .journey-card{width:100%!important;min-width:0!important;border:1px solid #e0e4df!important;border-radius:4px!important;background:#fff!important}
.portfolio-page #grp-clientes>.vertical-carousel.catalog-book105 .journey-card .project-cover{display:flex!important;flex-direction:column!important;min-height:0!important;height:100%!important}
.portfolio-page #grp-clientes>.vertical-carousel.catalog-book105 .journey-card .editorial-card-photo{width:100%!important;height:190px!important;min-height:0!important;object-fit:cover!important}
.portfolio-page #grp-clientes>.vertical-carousel.catalog-book105 .journey-card .project-info{padding:20px!important;gap:12px!important;flex:1;background:#fff!important;justify-content:flex-start!important;min-width:0!important}
.portfolio-page #grp-clientes>.vertical-carousel.catalog-book105 .project-info>b{font-size:21px!important;line-height:1.25!important;min-height:0!important}
.portfolio-page #grp-clientes>.vertical-carousel.catalog-book105 .project-cue{font-size:12px!important;padding:8px 0!important;min-height:0!important}
}
@media(min-width:761px) and (max-width:1000px){.book-pages105{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1001px){
body[data-foundation] #ecko .fleet-library79 .fleet-layout.fleet-photo-only78{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;grid-template-rows:auto auto!important;gap:24px 44px!important;align-items:center!important}
body[data-foundation] #ecko .fleet-library79 .fleet-photo{grid-column:1!important;grid-row:1/3!important;max-width:640px!important;width:100%!important;height:440px!important;max-height:500px!important;align-self:center!important;margin:0!important}
body[data-foundation] #ecko .fleet-library79 .fleet-photo img{width:100%!important;height:440px!important;max-height:500px!important;object-fit:cover!important;object-position:center 55%!important}
body[data-foundation] #ecko .fleet-library79 .fleet-heading82{grid-column:2!important;grid-row:1!important;align-self:end!important;margin:0!important}
body[data-foundation] #ecko .fleet-library79 .fleet-copy79{grid-column:2!important;grid-row:2!important;align-self:start!important;margin:0!important}
body[data-foundation] #ecko .fleet-library79 .cv-foundation82{margin-top:0!important;padding-top:24px!important}
body[data-foundation] #ecko .fleet-library79 .cv-cover82{max-width:110px!important}.fleet-library79 .cv-summary82 h3{font-size:26px!important}
body[data-foundation] .et-nav-inner{display:grid!important;grid-template-columns:100px minmax(0,1fr)!important;gap:32px!important;align-items:center!important;padding-top:16px!important;padding-bottom:16px!important}
body[data-foundation] .et-signature.et-symbol103{grid-column:1!important;grid-row:1!important;justify-self:end!important;align-self:center!important;margin:0!important}
body[data-foundation] .et-nav-links{grid-column:2!important;grid-row:1!important;align-items:center!important;justify-content:space-between!important}
body[data-foundation] .et-signature.et-symbol103>img{width:52px!important}
}

/* trec-cabecera-v107.css */
.trec-main107{position:relative;margin:30px 0 0!important;width:100%;height:340px;overflow:hidden;border-radius:3px;background:#e5e9e3}.trec-main107 .photo-open99 img{display:block;width:100%!important;height:100%!important;object-fit:cover;object-position:center}.trec-main107::after{content:'';position:absolute;inset:60% 0 0;background:linear-gradient(transparent,#10222dcc);pointer-events:none}.trec-main107 figcaption{position:absolute;bottom:22px;left:22px;right:22px;z-index:1;color:#fff;font-size:17px;line-height:1.5;pointer-events:none}.foundation-sentinel107{height:0;min-height:0;margin:0;padding:0;overflow:hidden}body[data-foundation] #hd{transition:transform .22s ease,opacity .22s ease}body[data-foundation].foundation-sticky107 #hd{transform:translateY(-105%)!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important}body[data-foundation].foundation-sticky107 .et-nav{top:0!important}body[data-foundation].foundation-sticky107{--et-header:0px!important}@media(max-width:760px){.trec-main107{height:250px}.trec-main107 figcaption{font-size:15px;left:18px;bottom:18px}}@media(prefers-reduced-motion:reduce){body[data-foundation] #hd{transition:none!important}}

/* contacto-v108.css */
/* Adjacent brand and contact columns on desktop. */
@media(min-width:901px){
body footer .fgrid{display:grid!important;grid-template-columns:minmax(0,380px) minmax(0,340px)!important;column-gap:clamp(40px,5vw,72px)!important;row-gap:0!important;justify-content:start!important;align-items:start!important;width:100%!important;margin:0!important}
body footer .fgrid>div{grid-column:auto!important;grid-row:1!important;align-self:start!important;justify-self:start!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important;text-align:left!important}
body footer .fgrid>.marca{display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important}
body footer .fgrid>.marca img{margin:0 0 18px!important}
body footer .fgrid>div h4{margin:0 0 18px!important;padding:0!important;line-height:1.5!important}
body footer .fgrid p{margin-left:0!important;margin-right:0!important;max-width:38ch!important;text-align:left!important}
}

/* cotizar-desktop-v109.css */
body #hd .nav>a.quote-desktop109{display:none!important}
@media(min-width:1001px){body #hd .nav>a.quote-desktop109{display:inline-flex!important;position:static!important;align-items:center!important;justify-content:center!important;flex:0 0 auto!important;min-height:44px!important;height:auto!important;padding:12px 22px!important;margin:0 0 0 26px!important;background:#f5c518!important;color:#1b2430!important;border:1px solid #f5c518!important;border-radius:0!important;font-size:12px!important;line-height:1.4!important;letter-spacing:.07em!important;text-transform:uppercase;text-decoration:none!important;transition:background-color .18s,transform .18s}body #hd .nav>a.quote-desktop109:hover{background:#ffda42!important;transform:translateY(-1px)}body #hd .nav>a.quote-desktop109:focus-visible{outline:2px solid white;outline-offset:4px}}
@media(prefers-reduced-motion:reduce){body #hd .nav>a.quote-desktop109{transition:none!important;transform:none!important}}

/* menu-transparente-v110.css */
@media(max-width:1000px){
body.menu-abierto #menu,body.menu-abierto #menu.on,body.menu-abierto #menu ul,body.menu-abierto #menu li,body.menu-abierto #menu .submenu,body.menu-abierto #menu .sub-row,body.menu-abierto #menu a,body.menu-abierto #menu .submenu a,body.menu-abierto #menu button{background:transparent!important;background-image:none!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
body.menu-abierto #menu::before,body.menu-abierto #menu::after{background:none!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
body.menu-abierto #menu a{color:#fff!important;text-shadow:0 1px 3px #000,0 0 7px #000,0 0 16px #000b;line-height:1.55!important}
body.menu-abierto #menu .sub-toggle::before{border-color:white!important;filter:drop-shadow(0 1px 2px #000)}
body.menu-abierto #menu li,body.menu-abierto #menu a{border-color:#ffffff40!important}
body.menu-abierto #menu a:focus-visible,body.menu-abierto #menu button:focus-visible{outline:2px solid #f5c518!important;outline-offset:-4px}
body.menu-abierto #menu a:hover{color:#ffe06b!important}
}

/* colecciones-v111.css */
/* Collections reveal a sample before opening. */
.portfolio-page #grp-clientes>.vertical-carousel.catalog-book105{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:22px!important;align-items:start!important}
.catalog-book105 .book-group105{margin:0!important;min-width:0;box-shadow:0 4px 18px #20333e06}
.catalog-book105 .book-group105[open]{grid-column:1/-1}
.catalog-book105 .book-group105>summary{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-rows:auto auto auto auto!important;gap:10px 16px!important;padding:22px!important;background:#fff!important}
.catalog-book105 .book-group105>summary>strong{grid-column:1!important;grid-row:1!important;font-size:20px!important}
.catalog-book105 .book-group105>summary>span{grid-column:1!important;grid-row:2!important;font-size:12px!important}
.catalog-book105 .book-group105>summary>b{grid-column:2!important;grid-row:1/3!important}
.book-preview111{grid-column:1/-1;grid-row:3;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:6px}
.book-sample111{min-width:0}.book-sample111 img{display:block;width:100%!important;height:100px!important;object-fit:cover!important;border-radius:2px;transform:none!important;padding:0!important;border:0!important}.book-sample111 small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:11px;line-height:1.5;color:#4d606b;margin-top:7px}
.book-cue111{grid-column:1/-1;grid-row:4;font-style:normal;font-size:12px;color:#806718;justify-self:start;border-bottom:1px solid #c5ad66;padding:4px 0;margin-top:3px}
.book-group105[open] .book-preview111{display:none}
.catalog-book105 .book-group105>summary:focus-visible{outline:3px solid #ba982d;outline-offset:-3px}
@media(max-width:760px){
.portfolio-page #grp-clientes>.vertical-carousel.catalog-book105{grid-template-columns:minmax(0,1fr)!important;gap:16px!important}
.catalog-book105 .book-group105>summary{padding:18px!important}.catalog-book105 .book-group105>summary>strong{font-size:19px!important}.book-preview111{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.book-sample111:nth-child(n+3){display:none}.book-sample111 img{height:105px!important}.book-sample111 small{font-size:11px}
body[data-foundation] .et-nav-inner{display:grid!important;grid-template-columns:30px minmax(0,1fr)!important;gap:14px!important;align-items:center!important;padding:14px 18px!important}
body[data-foundation] .et-signature.et-symbol103{grid-column:1!important;grid-row:1!important;align-self:center!important;justify-self:start!important;margin:0!important}
body[data-foundation] .et-signature.et-symbol103>img{width:30px!important}
body[data-foundation] .et-nav-links{grid-column:2!important;grid-row:1!important;display:flex!important;gap:10px!important;justify-content:space-between!important;align-items:center!important;min-width:0!important;overflow:visible!important}
body[data-foundation] .et-nav-links>a{font-size:12px!important;line-height:1.4!important;padding:12px 0!important;white-space:nowrap!important;min-height:44px!important;margin:0!important}
body[data-foundation] #ecko #sistemas,body[data-foundation] #ecko #flota,body[data-foundation] #ecko #frentes-recientes,body[data-foundation] #ecko #capacidad-instalada{scroll-margin-top:110px!important}
}
@media(max-width:360px){body[data-foundation] .et-nav-inner{padding-inline:14px!important;gap:10px!important;grid-template-columns:26px minmax(0,1fr)!important}body[data-foundation] .et-signature.et-symbol103>img{width:26px!important}body[data-foundation] .et-nav-links{gap:7px!important}body[data-foundation] .et-nav-links>a{font-size:11px!important}}

/* transicion-v112.css */
@media(max-width:1000px){
body[data-foundation] #hd{visibility:visible!important;transition:transform .42s cubic-bezier(.22,.61,.36,1),opacity .36s ease,visibility 0s linear 0s!important}
body[data-foundation].foundation-sticky107 #hd{visibility:hidden!important;transition:transform .42s cubic-bezier(.22,.61,.36,1),opacity .36s ease,visibility 0s linear .42s!important}
body[data-foundation] .et-nav{transition:top .42s cubic-bezier(.22,.61,.36,1)!important}
}
@media(max-width:1000px) and (prefers-reduced-motion:reduce){body[data-foundation] #hd,body[data-foundation].foundation-sticky107 #hd,body[data-foundation] .et-nav{transition:none!important}}

/* menu-cimentacion-v114.css */
body[data-foundation] .et-nav-inner{grid-template-columns:76px minmax(0,1fr) 44px!important;column-gap:28px!important;align-items:center!important;padding:16px clamp(24px,4vw,64px)!important;max-width:1440px!important;margin-inline:auto!important;width:100%!important;box-sizing:border-box!important}body[data-foundation] .et-signature.et-symbol103{grid-column:1!important;grid-row:1!important;justify-self:start!important}body[data-foundation] .et-signature.et-symbol103>img{width:72px!important}body[data-foundation] .et-nav-links{grid-column:2!important;grid-row:1!important;gap:24px!important;align-items:center!important;justify-content:space-around!important}.foundation-menu114{grid-column:3;grid-row:1;display:grid;place-items:center;width:44px;min-height:44px;padding:10px;border:1px solid #ffffff44;border-radius:4px;background:transparent;color:white;cursor:pointer}.foundation-menu114 svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8}.foundation-menu114:hover{background:#ffffff12}.foundation-menu114:focus-visible{outline:2px solid #a5d751;outline-offset:3px}.foundation-menu-dialog114{position:fixed;inset:24px 24px auto auto;margin:0;width:min(430px,calc(100vw - 32px));max-height:calc(100dvh - 48px);overflow-y:auto;box-sizing:border-box;padding:20px 24px 28px;border:1px solid #d8dfdc;border-radius:8px;background:#f9faf7;color:#203541;box-shadow:0 16px 60px #0004}.foundation-menu-dialog114::backdrop{background:#0e1d2a88}.foundation-menu-close114{display:block;margin:0 0 16px auto;min-height:44px;padding:8px 12px;background:transparent;border:1px solid #82908e;border-radius:4px;color:inherit;font:inherit;font-size:13px;cursor:pointer}.foundation-menu-dialog114 nav>a,.foundation-menu-dialog114 summary{display:block;padding:16px 0;border-bottom:1px solid #dce1dc;font-size:17px;font-weight:600;text-decoration:none;cursor:pointer}.foundation-menu-dialog114 summary{display:list-item;list-style:inside disclosure-closed}.foundation-menu-dialog114 details[open]>summary{list-style-type:disclosure-open}.foundation-menu-dialog114 details>a{display:block;padding:12px 10px;font-size:14px;line-height:1.5;text-decoration:none}.foundation-menu-dialog114 a:hover{text-decoration:underline}.foundation-menu-dialog114 a:focus-visible,.foundation-menu-dialog114 summary:focus-visible{outline:2px solid #739f31;outline-offset:2px}
@media(max-width:1000px){body[data-foundation] .et-nav-inner{grid-template-columns:30px minmax(0,1fr) 36px!important;gap:10px!important;padding:12px 16px!important}body[data-foundation] .et-signature.et-symbol103>img{width:30px!important}body[data-foundation] .et-nav-links{gap:9px!important;justify-content:space-between!important}body[data-foundation] .et-nav-links>a{font-size:11px!important;line-height:1.4!important;padding:12px 0!important;min-height:44px!important;white-space:normal!important;text-align:center}.foundation-menu114{width:36px;min-height:44px;padding:7px}.foundation-menu-dialog114{inset:16px 16px auto 16px;width:auto;background:transparent;color:white;border:0;box-shadow:none;padding:12px 12px 24px;max-height:calc(100dvh - 32px);text-shadow:0 1px 4px #000,0 0 12px #000}.foundation-menu-dialog114::backdrop{background:#0d1f305c}.foundation-menu-dialog114 a,.foundation-menu-dialog114 summary{border-color:#ffffff44}.foundation-menu-close114{border-color:#ffffff88}}
@media(max-width:360px){body[data-foundation] .et-nav-inner{grid-template-columns:26px minmax(0,1fr) 32px!important;gap:7px!important;padding-inline:12px!important}body[data-foundation] .et-signature.et-symbol103>img{width:26px!important}body[data-foundation] .et-nav-links{gap:7px!important}.foundation-menu114{width:32px}}

/* flota-diagramas-v115.css */
/* Desktop refinement: retain outer spacing, reveal full photograph. */
@media(min-width:1001px){
 body[data-foundation] #ecko .fleet-library79 .fleet-layout.fleet-photo-only78 .fleet-photo{height:540px!important;max-height:540px!important;align-self:start!important}
 body[data-foundation] #ecko .fleet-library79 .fleet-layout.fleet-photo-only78 .fleet-photo img{height:540px!important;max-height:540px!important;width:100%!important;object-fit:contain!important;object-position:left center!important}
 body[data-foundation] #ecko .soil-feature .et-diagram-open{display:flex!important;width:fit-content!important;max-width:calc(100% - 24px);margin:24px 12px 16px auto!important;padding:12px 18px!important}
 body[data-foundation] #ecko .et-gallery-bar,
 body[data-foundation] #ecko .front-layout64>.et-gallery-bar{padding:20px 18px!important;margin-top:0!important;gap:20px!important;box-sizing:border-box;align-items:center!important}
 body[data-foundation] #ecko .front-layout64{grid-template-rows:auto minmax(0,1fr)!important}
 body[data-foundation] #ecko .front-layout64>.proy-fotos.gallery-row68{grid-row:2!important;max-height:100%!important;min-height:0!important}
 body[data-foundation] #ecko .et-actions{padding-block:18px!important;gap:18px!important}
 body[data-foundation] #ecko .et-gallery-open{flex-shrink:0;margin:0!important}
}

/* trec-footer-v116.css */
/* Keep footer labels outside the floating contact control. */
body footer .fin{padding-right:196px!important;box-sizing:border-box;gap:14px 24px!important;flex-wrap:wrap!important}
body footer .fin>span{max-width:100%;white-space:normal;overflow-wrap:break-word}
@media(max-width:1000px){body footer .fin{padding-right:76px!important;justify-content:flex-start!important;gap:14px!important}body footer .fin>span:last-child{text-align:left!important;margin-left:0!important}}
@media(min-width:1001px){body[data-foundation] .trec-main107 .photo-open99 img{object-position:center 88%!important}}

/* menu-movil-v117.css */
@media(max-width:1000px){
 body{--menu-accent117:#f5c518}
 body[data-foundation]{--menu-accent117:#a5d751}
 body.menu-abierto #menu.on{background:#16232e!important;background-image:none!important;padding:22px 20px calc(32px + env(safe-area-inset-bottom))!important;color:#fff;animation:menuEnter117 .28s ease-out}
 body.menu-abierto #menu.on::before{content:'EXPLORA ALIANZA';display:block;color:var(--menu-accent117);font:11px/1.5 'IBM Plex Mono',monospace;letter-spacing:.2em;padding:0 4px 18px}
 body.menu-abierto #menu.on>ul{counter-reset:menu117;padding:0!important}
 body.menu-abierto #menu.on>ul>li{counter-increment:menu117;border:0!important;margin:0 0 10px!important;border-radius:8px;overflow:hidden;background:#20313f!important}
 body.menu-abierto #menu.on a{text-shadow:none!important;line-height:1.45!important}
 body.menu-abierto #menu.on>ul>li>a,body.menu-abierto #menu.on .sub-row>a{padding:18px 14px!important;font-size:17px!important;min-height:60px;display:flex;align-items:center;gap:14px;color:white!important;border:0!important}
 body.menu-abierto #menu.on>ul>li>a::before,body.menu-abierto #menu.on .sub-row>a::before{content:counter(menu117,decimal-leading-zero);color:var(--menu-accent117);font:11px/1 'IBM Plex Mono',monospace;flex:none}
 body.menu-abierto #menu.on .sub-toggle{width:52px!important;min-height:60px;border-left:0!important}
 body.menu-abierto #menu.on .sub-toggle::before{border-color:var(--menu-accent117)!important;filter:none!important}
 body.menu-abierto #menu.on .has-sub.open>.sub-row{background:#10212e!important}
 body.menu-abierto #menu.on .has-sub.open>.sub-row>a{color:var(--menu-accent117)!important}
 body.menu-abierto #menu.on .submenu{background:#3a4859!important;box-shadow:inset 3px 0 0 var(--menu-accent117)!important;padding:0!important}
 body.menu-abierto #menu.on .submenu a{padding:14px 18px 14px 42px!important;font-size:14px!important;font-weight:400!important;min-height:48px;color:#e1e7ee!important;border-bottom:1px solid #ffffff14!important}
 body.menu-abierto #menu.on .submenu a:hover,body.menu-abierto #menu.on .submenu a:focus-visible{background:var(--menu-accent117)!important;color:#16232e!important}
 body.menu-abierto #menu.on a:focus-visible,body.menu-abierto #menu.on button:focus-visible{outline:2px solid var(--menu-accent117)!important;outline-offset:-3px}
 .foundation-menu-dialog114{background:#16232e!important;color:#fff!important;text-shadow:none!important;border:1px solid #ffffff22!important;border-radius:12px!important;padding:18px!important;box-shadow:0 20px 70px #0007!important}
 .foundation-menu-dialog114::backdrop{background:#08121bd9!important}
 .foundation-menu-dialog114 nav>a,.foundation-menu-dialog114 summary{background:#20313f;margin-bottom:8px;padding:16px;border:0;border-radius:6px;min-height:52px;font-size:17px}
 .foundation-menu-dialog114 details[open]{background:#3a4859;border-left:3px solid #a5d751;border-radius:6px;margin-bottom:10px}
 .foundation-menu-dialog114 details[open]>summary{color:#a5d751;background:#10212e}
 .foundation-menu-dialog114 details>a{padding:14px 18px;min-height:48px;color:#e1e7ee}
 .foundation-menu-close114{color:#fff;border-color:#a5d751}
 @keyframes menuEnter117{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}
}
@media(prefers-reduced-motion:reduce){body.menu-abierto #menu.on{animation:none!important}}

/* barra-movil-v118.css */
@media(max-width:1000px){
body[data-foundation] .et-nav-inner{grid-template-columns:28px minmax(0,1fr) 36px!important;column-gap:16px!important;padding:16px 22px!important;align-items:center!important}
body[data-foundation] .et-signature.et-symbol103>img{width:28px!important;height:auto!important}
body[data-foundation] .et-nav-links{display:flex!important;gap:18px!important;justify-content:space-between!important;overflow-x:auto!important;min-width:0!important;scrollbar-width:none;overscroll-behavior-x:contain;scroll-padding-inline:8px;padding:0 2px!important}
body[data-foundation] .et-nav-links::-webkit-scrollbar{display:none}
body[data-foundation] .et-nav-links>a{flex:0 0 auto!important;font-size:11px!important;white-space:nowrap!important;min-height:44px!important;padding:14px 2px!important;line-height:1.4!important}
body[data-foundation] .foundation-menu114{width:36px!important;min-height:44px!important;margin:0!important;justify-self:end}
}
@media(max-width:360px){body[data-foundation] .et-nav-inner{padding-inline:18px!important;column-gap:12px!important}}

/* flota-menu-v120.css */
body[data-foundation] #ecko .fleet-photo .fleet-open120{display:block;max-width:100%;height:100%}
@media(min-width:1001px){
 body[data-foundation] .et-nav-inner{column-gap:44px!important}
 body[data-foundation] .et-nav-links{justify-content:space-evenly!important;gap:clamp(40px,5vw,80px)!important}
 body[data-foundation] .et-nav-links>a{padding-inline:10px!important;white-space:nowrap}
 body[data-foundation] #ecko .fleet-library79{padding-top:64px!important}
 body[data-foundation] #ecko .fleet-library79 .fleet-layout.fleet-photo-only78{grid-template-rows:auto auto!important;row-gap:28px!important}
 body[data-foundation] #ecko .fleet-library79 .fleet-layout .fleet-heading82{grid-column:1!important;grid-row:1!important;align-self:start!important;margin:0!important}
 body[data-foundation] #ecko .fleet-library79 .fleet-layout.fleet-photo-only78 .fleet-photo{grid-column:1!important;grid-row:2!important;align-self:start!important}
 body[data-foundation] #ecko .fleet-library79 .fleet-layout .fleet-copy79{grid-column:2!important;grid-row:2!important;align-self:center!important}
}

/* trec-completo-v121.css */
@media(min-width:1001px){
body[data-foundation] .foundation-allies80 .trec-layout121{display:grid!important;grid-template-columns:minmax(0,400px) minmax(0,480px)!important;gap:40px!important;justify-content:start!important;align-items:center!important;padding-top:32px!important}
body[data-foundation] .trec-copy121{min-width:0;max-width:440px}
body[data-foundation] .trec-copy121 h3{margin-top:24px!important;margin-bottom:14px!important}
body[data-foundation] .trec-layout121 .trec-main107{margin:0!important;height:auto!important;max-height:none!important;overflow:visible!important;background:transparent!important;border-radius:0!important}
body[data-foundation] .trec-layout121 .trec-main107 .photo-open99{height:auto!important;display:block!important}
body[data-foundation] .trec-layout121 .trec-main107 .photo-open99 img{display:block!important;width:100%!important;height:auto!important;max-height:none!important;aspect-ratio:3/2!important;object-fit:contain!important;object-position:center!important;border-radius:4px}
body[data-foundation] .trec-layout121 .trec-main107::after{display:none!important}
body[data-foundation] .trec-layout121 .trec-main107 figcaption{position:static!important;color:#3b555f!important;font-size:13px!important;line-height:1.6!important;padding:12px 0 0!important}
}

/* orden-escritorio-v122.css */
@media(min-width:1001px){
body[data-foundation] .et-nav-inner{max-width:none!important;width:100%!important;padding:18px clamp(32px,4vw,80px)!important;grid-template-columns:76px minmax(0,1fr) 44px!important;column-gap:clamp(40px,5vw,96px)!important}
body[data-foundation] .et-nav-links{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;width:100%!important;gap:clamp(24px,4vw,80px)!important;justify-content:stretch!important}
body[data-foundation] .et-nav-links>a{text-align:center!important;justify-self:center!important;padding:18px 12px!important}
body[data-foundation] #ecko .fleet-library79{padding:44px 0!important}
body[data-foundation] #ecko .fleet-library79 .fleet-layout.fleet-photo-only78{grid-template-columns:minmax(0,360px) minmax(0,520px)!important;grid-template-rows:auto auto!important;gap:22px 48px!important;justify-content:start!important;align-items:start!important}
body[data-foundation] #ecko .fleet-library79 .fleet-layout.fleet-photo-only78 .fleet-heading82{grid-column:1!important;grid-row:1!important;align-self:start!important}
body[data-foundation] #ecko .fleet-library79 .fleet-heading82 h2{font-size:clamp(26px,2.2vw,34px)!important;line-height:1.15!important}
body[data-foundation] #ecko .fleet-library79 .fleet-layout.fleet-photo-only78 .fleet-photo{grid-column:1!important;grid-row:2!important;width:100%!important;max-width:360px!important;height:auto!important;max-height:none!important;align-self:start!important}
body[data-foundation] #ecko .fleet-library79 .fleet-layout.fleet-photo-only78 .fleet-photo img{width:100%!important;height:auto!important;max-height:none!important;aspect-ratio:1320/1618!important;object-fit:contain!important}
body[data-foundation] #ecko .fleet-library79 .fleet-photo .fleet-open120{height:auto!important}
body[data-foundation] #ecko .fleet-library79 .fleet-layout.fleet-photo-only78 .fleet-copy79{grid-column:2!important;grid-row:1/3!important;align-self:center!important;margin:0!important}
body[data-foundation] #ecko .fleet-library79 .cv-foundation82{padding-top:24px!important;margin-top:0!important}
}

/* menu-especial-v124.css */
body .foundation-menu-dialog114.foundation-panel124{inset:24px 24px auto auto!important;width:min(660px,calc(100vw - 48px))!important;max-height:calc(100dvh - 48px)!important;margin:0!important;padding:28px!important;background:#152b40!important;color:#f4f7f8!important;border:1px solid #ffffff24!important;border-radius:16px!important;box-shadow:0 24px 90px #0008!important;text-shadow:none!important;overflow-y:auto;overscroll-behavior:contain}
.foundation-panel124::backdrop{background:#07121bcc!important;backdrop-filter:blur(4px)}
.foundation-head124{display:grid;grid-template-columns:46px 1fr 44px;gap:16px;align-items:center;margin-bottom:26px;position:static!important;background:none!important}
.foundation-head124 img{width:46px;height:46px;object-fit:contain}
.foundation-head124 span{font:10px/1.5 'IBM Plex Mono',monospace;color:#a5d751;letter-spacing:.12em}
.foundation-head124 h2{font-size:23px;line-height:1.2;margin:6px 0 0;color:#fff}
.foundation-panel124 .foundation-menu-close114{margin:0!important;width:44px;height:44px;padding:0!important;border:1px solid #ffffff30!important;background:#ffffff08!important;border-radius:50%!important;font-size:28px;color:#fff}
.foundation-panel124 .foundation-quick124{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:28px}
.foundation-panel124 .foundation-quick124>a{position:relative;display:grid;grid-template-columns:28px 1fr;gap:7px 12px;margin:0!important;padding:18px!important;background:#213e55!important;border:1px solid #ffffff1c!important;border-radius:8px!important;text-decoration:none!important;min-height:94px;transition:background .2s,transform .2s}
.foundation-quick124 .quick-number124{grid-column:1;grid-row:1/3;font:12px/1.8 'IBM Plex Mono',monospace;color:#a5d751}
.foundation-quick124 strong{font-size:17px;line-height:1.4;color:#fff}
.foundation-quick124 small{grid-column:2;font-size:11px;line-height:1.5;color:#bdcdd7;font-weight:400}
.foundation-panel124 .foundation-quick124>a:hover{background:#2b4c61!important;transform:translateY(-2px)}
.foundation-label124{font:10px/1.5 'IBM Plex Mono',monospace;letter-spacing:.18em;color:#a5d751;margin:0 0 10px}
.foundation-panel124 .foundation-general124>a,.foundation-panel124 .foundation-general124 summary{background:transparent!important;border:0!important;border-bottom:1px solid #ffffff20!important;border-radius:0!important;margin:0!important;padding:15px 4px!important;min-height:50px;font-size:16px;text-decoration:none;list-style:none!important;display:block}
.foundation-panel124 .foundation-general124 summary::-webkit-details-marker{display:none}
.foundation-panel124 .foundation-general124 summary::after{content:'+';float:right;color:#a5d751;font-size:22px;line-height:1}
.foundation-panel124 .foundation-general124 details[open]>summary::after{content:'−'}
.foundation-panel124 .foundation-general124 details[open]{background:#3a4859!important;border-left:3px solid #a5d751!important;border-radius:6px;margin:8px 0}
.foundation-panel124 .foundation-general124 details[open]>summary{padding-inline:14px!important;color:#a5d751}
.foundation-panel124 .foundation-general124 details>a{display:block;padding:13px 18px;min-height:46px;color:#e1e7ee;font-size:14px;text-decoration:none;line-height:1.5}
.foundation-panel124 .foundation-general124 details>a:hover{background:#a5d751;color:#152b40}
.foundation-panel124 a:focus-visible,.foundation-panel124 summary:focus-visible,.foundation-panel124 button:focus-visible{outline:2px solid #a5d751!important;outline-offset:3px}
.foundation-panel124[open]{animation:foundationReveal124 .25s ease-out}
@keyframes foundationReveal124{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1000px){body .foundation-menu-dialog114.foundation-panel124{inset:12px 12px auto!important;width:calc(100vw - 24px)!important;max-height:calc(100dvh - 24px)!important;padding:20px 18px calc(20px + env(safe-area-inset-bottom))!important}.foundation-head124{grid-template-columns:34px 1fr 40px;gap:12px;margin-bottom:22px}.foundation-head124 img{width:34px;height:34px}.foundation-head124 h2{font-size:19px}.foundation-head124 span{font-size:8px}.foundation-panel124 .foundation-menu-close114{width:40px;height:40px;min-height:40px}.foundation-panel124 .foundation-quick124{gap:10px;margin-bottom:24px}.foundation-panel124 .foundation-quick124>a{padding:14px 12px!important;grid-template-columns:1fr;gap:6px;min-height:112px}.foundation-quick124 .quick-number124{grid-column:1;grid-row:auto}.foundation-quick124 small{grid-column:1}.foundation-quick124 strong{font-size:15px}}
@media(prefers-reduced-motion:reduce){.foundation-panel124[open]{animation:none}.foundation-panel124 .foundation-quick124>a{transition:none}}

/* revision-v127.css */
/* Typography: whole words, natural-height labels and readable spacing. */
html body,html body *{-webkit-hyphens:none!important;hyphens:none!important;word-break:normal!important}
body :is(h1,h2,h3,h4,p,li,dt,dd,figcaption,summary){overflow-wrap:normal!important}
body :is(p,li,dd){text-align:start!important}
body :is(h1,h2,h3,h4){text-overflow:clip!important;max-width:100%;line-height:1.16}
body :is(.section-head,.fleet-heading82,.cv-summary82,.book-sample111,.trec-copy121,.lci-copy93){min-width:0}
body .book-sample111 small{display:block!important;-webkit-line-clamp:unset!important;overflow:visible!important;max-height:none!important;height:auto!important}
body :is(.btn,.et-gallery-open,.et-diagram-open){white-space:normal!important;max-width:100%;height:auto;line-height:1.5!important;text-align:center}
body :is(.cv-actions82,.et-actions){display:flex;flex-wrap:wrap;gap:16px!important;align-items:center}
body :is(.section-head,.fleet-heading82)>.kicker{margin-bottom:16px!important}
body :is(.section-head,.fleet-heading82)>h2{margin-bottom:18px!important}
body #ecko .et-gallery-bar{gap:20px!important;padding-block:20px!important;box-sizing:border-box}
body #ecko .soil-feature .et-diagram-open{margin-top:24px!important;margin-bottom:16px!important}
body a[href^='mailto:']{overflow-wrap:anywhere!important}
@media(max-width:760px){
body :is(.section-head,.fleet-heading82){max-width:100%}
body .book-pages105 .journey-card :is(h2,h3){font-size:19px!important;line-height:1.25!important;overflow:visible!important;-webkit-line-clamp:unset!important}
body .book-pages105 .journey-card{min-width:0!important}
body .book-group105>summary>strong{font-size:18px!important;line-height:1.35!important}
body .history-chapter>summary>span:not(.route-number){line-height:1.4!important}
body #ecko .et-gallery-bar{flex-wrap:wrap!important;padding-inline:12px!important}
body .photo-dialog99 p{padding-inline:12px;line-height:1.6}
}
@media(max-width:400px){body h1{font-size:30px!important;line-height:1.15!important}body .et-section-title{font-size:27px!important}body .book-pages105{grid-template-columns:minmax(0,1fr)!important}}

@media(max-width:400px){body .specialty-atlas79 .map-routes{grid-template-columns:minmax(0,1fr)!important}body .specialty-atlas79 .map-routes strong{font-size:18px!important;white-space:normal!important}}

/* ajustes-v129.css */
@media(max-width:1000px){body[data-foundation] .fleet-panel73 img[src*="equipo-5-v67"]{object-position:25% center!important}}
@media(min-width:1001px){body[data-foundation] #ecko .fleet-library79{padding-block:54px!important}body[data-foundation] #ecko .fleet-library79 .fleet-layout.fleet-photo-only78{grid-template-columns:minmax(0,480px) minmax(0,680px)!important;gap:26px 64px!important}body[data-foundation] #ecko .fleet-library79 .fleet-layout.fleet-photo-only78 .fleet-photo{max-width:480px!important}body[data-foundation] #ecko .fleet-library79 .fleet-heading82 h2{font-size:38px!important}body[data-foundation] #ecko .fleet-library79 .cv-cover82{max-width:154px!important}body[data-foundation] #ecko .fleet-library79 .cv-summary82 h3{font-size:32px!important}}
body .cv-preview129{--cv-accent:#e8b918;position:fixed;inset:0;margin:auto;width:min(900px,calc(100vw - 32px));height:min(900px,calc(100dvh - 32px));max-height:calc(100dvh - 32px);max-width:calc(100vw - 32px);padding:0;border:3px solid var(--cv-accent);border-radius:14px;background:#f5f5f0;color:#1b3040;box-sizing:border-box;overflow:auto}
body .cv-preview129.cv-green129{--cv-accent:#86b936}
.cv-preview129::backdrop{background:#07121dd9;backdrop-filter:blur(5px)}
.cv-preview129[open]{display:flex;flex-direction:column;animation:cvReveal129 .24s ease-out}
body .cv-preview129>header{position:static!important;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;background:#fff;color:#1b3040;border-bottom:1px solid #dce0dd;flex:none}
.cv-preview129 header span{font:10px/1.5 monospace;letter-spacing:.15em;color:#6c777d}
.cv-preview129 h2{font-size:22px;margin:5px 0 0;line-height:1.25}
.cv-preview129 button{width:44px;height:44px;flex:none;border:1px solid #ccd4d5;border-radius:50%;background:#fff;color:#203541;font-size:28px;cursor:pointer}
.cv-stage129{flex:1;min-height:0;display:flex;justify-content:center;padding:20px;overflow:auto;background:#e7eae7}
.cv-stage129 img{width:100%;height:100%;object-fit:contain;min-height:0}
body .cv-preview129>footer{background:#fff;color:#203541;padding:18px 24px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;flex:none}
.cv-preview129 footer>span{font-size:12px;color:#687780}.cv-preview129 footer>div{display:flex;gap:12px;flex-wrap:wrap}
.cv-preview129 footer a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 14px;border:1px solid var(--cv-accent);border-radius:5px;font-size:13px;text-decoration:none}.cv-preview129 .cv-download129{background:var(--cv-accent);font-weight:600}
.cv-preview129 :is(a,button):focus-visible{outline:2px solid var(--cv-accent);outline-offset:3px}
body .cv-selected129{outline:3px solid #e8b918!important;outline-offset:5px}body[data-foundation] .cv-selected129{outline-color:#86b936!important}
@media(max-width:600px){body .cv-preview129>header{padding:16px;gap:12px}.cv-preview129 h2{font-size:18px}.cv-stage129{padding:12px}body .cv-preview129>footer{padding:14px 16px;gap:10px}.cv-preview129 footer>div{width:100%}.cv-preview129 footer a{flex:1;font-size:12px}}
@keyframes cvReveal129{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.cv-preview129[open]{animation:none}}

body .cv-preview129>header>button{display:grid!important;place-items:center!important;padding:0!important;margin:0!important;width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;box-sizing:border-box!important;line-height:1!important;border-radius:50%!important;align-self:center!important}
body .cv-preview129>header>button svg{display:block;width:22px;height:22px;margin:0;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}

@media(min-width:1001px){
body[data-foundation] #ecko .fleet-library79 .cv-flat82{grid-template-columns:154px minmax(0,1fr)!important;gap:28px!important}
body[data-foundation] #ecko .fleet-library79 .cv-summary82 p{font-size:18px!important;line-height:1.65!important}
body[data-foundation] #ecko .fleet-library79 .cv-meta82{font-size:12px!important;line-height:1.6!important}
}
body .cv-preview129>header>button{border:2px solid var(--cv-accent)!important;transition:border-color .3s,background-color .3s,box-shadow .3s!important}
body .cv-preview129>header>button:is(:hover,:focus,:active){background:color-mix(in srgb,var(--cv-accent) 12%,white)!important;box-shadow:0 0 0 5px color-mix(in srgb,var(--cv-accent) 22%,transparent),0 0 18px color-mix(in srgb,var(--cv-accent) 45%,transparent)!important;outline:0!important}
body .cv-dossier98 .cv-art98>span{box-sizing:border-box!important;width:100%!important;margin:0!important;padding:18px 24px!important;gap:20px!important;min-height:58px!important}
body .cv-dossier98 .cv-art98{box-sizing:border-box!important}
body .cv-dossier98 .cv-art98>span{width:calc(100% - 28px)!important;margin:14px!important;padding:14px 16px!important;border:1px solid #d9dedf!important;border-radius:4px;min-height:56px!important}
/* One aligned document card without the offset decorative sheet. */
body .cv-dossier98 .cv-art98{box-shadow:none!important;min-width:0!important;max-width:100%!important;transform:none!important;translate:none!important}
body .cv-dossier98 .cv-art98::before,body .cv-dossier98 .cv-art98::after{display:none!important}
body .cv-dossier98 .cv-art98>img{box-sizing:border-box!important;display:block!important;width:100%!important;max-width:100%!important;height:auto!important;border:0!important}
@media(max-width:1000px){
body .cv-dossier98{grid-template-columns:minmax(0,1fr)!important;width:100%!important;min-width:0!important;max-width:100%!important;padding-inline:0!important}
body .cv-dossier98 .cv-copy98{grid-column:1!important;grid-row:1!important}
body .cv-dossier98 .cv-art98{grid-column:1!important;grid-row:2!important;justify-self:center!important;width:min(100%,320px)!important;margin:0 auto!important}
body .cv-dossier98 .cv-actions98{grid-column:1!important;grid-row:3!important;width:100%!important;min-width:0!important}
body .cv-dossier98 .cv-download98{box-sizing:border-box!important;max-width:100%!important;gap:16px!important}
}

@media(min-width:1001px){
body[data-foundation] #ecko .fleet-library79 .fleet-layout.fleet-photo-only78{grid-template-rows:auto auto!important;align-items:start!important}
body[data-foundation] #ecko .fleet-library79 .fleet-layout.fleet-photo-only78 .fleet-copy79{grid-row:1!important;align-self:start!important}
body[data-foundation] #ecko .fleet-library79 .fronts-beside143{grid-column:2;grid-row:2;align-self:start;min-width:0;padding-top:12px}
body[data-foundation] #ecko .fronts-beside143 #frentes-recientes{margin-top:0!important}
body[data-foundation] #ecko .fronts-beside143 .et-section-title{font-size:32px!important;line-height:1.2!important}
body[data-foundation] #ecko .fronts-beside143 .et-project-index{display:flex!important;flex-wrap:wrap!important;gap:12px!important;margin-top:24px!important}
body[data-foundation] #ecko .fronts-beside143 .et-project-index a{white-space:normal!important;line-height:1.5!important}
}

.fleet-left143,.fleet-right143{display:contents}
@media(min-width:1001px){
body[data-foundation] #ecko .fleet-library79 .fleet-left143,body[data-foundation] #ecko .fleet-library79 .fleet-right143{display:flex;flex-direction:column;gap:38px;min-width:0}
body[data-foundation] #ecko .fleet-library79 .fleet-right143{gap:48px}
body[data-foundation] #ecko .fleet-library79 .fronts-beside143{padding-top:0}
}

body .cv-cover82 .cv-preview-label146{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:5px;box-sizing:border-box;width:100%;padding:10px 5px;margin:0;background:#233e50;color:#c0e88a;border:1px solid #8ac426;font-size:12px;line-height:1.4;text-align:center;font-weight:600}
body .cv-cover82{text-decoration:none!important}
body .cv-cover82 .cv-preview-label146 b{font-size:15px;line-height:1}
@media(max-width:1000px){
body[data-foundation] #ecko .fleet-library79 .fleet-layout.fleet-photo-only78{display:flex!important;flex-direction:column!important;gap:32px!important}
body[data-foundation] #ecko .fleet-library79 .fleet-left143,body[data-foundation] #ecko .fleet-library79 .fleet-right143{display:flex!important;flex-direction:column!important;width:100%!important;min-width:0!important;gap:28px!important}
body[data-foundation] #ecko .fleet-library79 .fleet-left143{order:0!important}
body[data-foundation] #ecko .fleet-library79 .fleet-right143{order:1!important}
body[data-foundation] #ecko .fleet-library79 .fleet-heading82{order:0!important;margin:0!important}
body[data-foundation] #ecko .fleet-library79 .fleet-photo{order:1!important;margin:0!important;width:100%!important}
body[data-foundation] #ecko .fleet-library79 .fleet-copy79{order:0!important;width:100%!important;margin:0!important}
body[data-foundation] #ecko .fleet-library79 .fronts-beside143{order:1!important;width:100%!important}
body[data-foundation] #ecko .fleet-library79 .cv-flat82{display:grid!important;grid-template-columns:90px minmax(0,1fr)!important;align-items:center!important;gap:18px!important}
body[data-foundation] #ecko .fleet-library79 .cv-cover82{display:block!important;grid-column:1!important;grid-row:1!important;width:90px!important;max-width:90px!important;margin:0!important}
body[data-foundation] #ecko .fleet-library79 .cv-summary82{grid-column:2!important;grid-row:1!important;min-width:0!important;text-align:left!important}
body[data-foundation] #ecko .fleet-library79 .cv-summary82 h3{font-size:22px!important;line-height:1.25!important;margin:10px 0!important}
body[data-foundation] #ecko .fleet-library79 .cv-summary82 p{font-size:14px!important;line-height:1.6!important}
body[data-foundation] #ecko .fleet-library79 .cv-actions82{display:flex!important;flex-wrap:wrap!important;gap:18px!important;margin-top:24px!important}
}
/* Restore the original photo/document pair; give recent fronts its own column. */
@media(min-width:1001px){
body[data-foundation] #ecko .fleet-library79 .fleet-left143,body[data-foundation] #ecko .fleet-library79 .fleet-right143{display:contents!important}
body[data-foundation] #ecko .fleet-library79 .fleet-layout.fleet-photo-only78{grid-template-columns:minmax(0,480px) minmax(0,680px)!important;grid-template-rows:auto auto auto!important;gap:26px 64px!important}
body[data-foundation] #ecko .fleet-library79 .fleet-layout.fleet-photo-only78 .fleet-copy79{grid-column:2!important;grid-row:1/3!important;align-self:center!important}
body[data-foundation] #ecko .fleet-library79 .fronts-beside143{grid-column:1/-1!important;grid-row:3!important;margin-top:28px!important}
}
@media(min-width:1800px){
body[data-foundation] #ecko .fleet-library79 .fleet-layout.fleet-photo-only78{grid-template-columns:480px 680px minmax(0,1fr)!important;grid-template-rows:auto auto!important}
body[data-foundation] #ecko .fleet-library79 .fronts-beside143{grid-column:3!important;grid-row:1/3!important;align-self:center!important;margin-top:0!important}
}
@media(max-width:1000px){body[data-foundation] #ecko .fleet-library79 .cv-summary82{display:block!important;position:static!important}body[data-foundation] #ecko .fleet-library79 .cv-summary82 h3{position:static!important;transform:none!important}}
@media(max-width:1000px){
body[data-foundation] #ecko .fleet-library79 .cv-foundation82{padding-top:24px!important;padding-bottom:0!important;margin-bottom:0!important}
body[data-foundation] #ecko .fleet-library79 .cv-flat82{grid-template-columns:100px minmax(0,1fr)!important;grid-template-rows:auto auto auto!important;gap:14px 18px!important;align-items:start!important}
body[data-foundation] #ecko .fleet-library79 .cv-summary82{display:contents!important}
body[data-foundation] #ecko .fleet-library79 .cv-meta82{grid-column:1/-1!important;grid-row:1!important;display:block!important;position:static!important;margin:0 0 4px!important;font-size:10px!important;line-height:1.6!important}
body[data-foundation] #ecko .fleet-library79 .cv-cover82{grid-column:1!important;grid-row:2/4!important;width:100px!important;max-width:100px!important;align-self:start!important}
body[data-foundation] #ecko .fleet-library79 .cv-summary82 h3{grid-column:2!important;grid-row:2!important;align-self:start!important;margin:0!important;font-size:22px!important;line-height:1.2!important}
body[data-foundation] #ecko .fleet-library79 .cv-summary82 p{grid-column:2!important;grid-row:3!important;align-self:start!important;margin:0!important}
body[data-foundation] #ecko .fleet-library79 .cv-preview-label146{flex-wrap:nowrap!important;gap:4px!important;padding:10px 2px!important;min-height:44px;border:0!important;border-bottom:1px solid #8ac426!important;background:transparent!important;font-size:11px!important;white-space:nowrap!important}
body[data-foundation] #ecko .fleet-library79 .fleet-right143{gap:28px!important}
body[data-foundation] #ecko .fleet-library79 .fronts-beside143{margin:0!important;padding:0!important}
body[data-foundation] #ecko .fleet-library79 #frentes-recientes{margin-top:0!important}
body[data-foundation] #ecko .fleet-library79 .cv-actions82{margin-bottom:0!important;padding-bottom:0!important;row-gap:12px!important}
}
@media(max-width:1000px){body[data-foundation] #ecko .fleet-library79 .cv-flat82{grid-template-rows:auto min-content 1fr!important}}
body .cv-dossier98 .cv-art98>span,body .cv-cover82 .cv-preview-label146{transition:background-color .25s ease,color .25s ease,border-color .25s ease!important}
body .cv-dossier98 .cv-art98:is(:hover,:focus-visible,:active,.cv-selected129)>span{background:#f5c518!important;color:#192d39!important;border-color:#f5c518!important}
body .cv-dossier98 .cv-art98:is(:hover,:focus-visible,:active,.cv-selected129)>span b{color:inherit!important}
body .cv-cover82:is(:hover,:focus-visible,:active,.cv-selected129) .cv-preview-label146{background:#8ac426!important;color:#152b40!important;border-color:#8ac426!important}
@media(prefers-reduced-motion:reduce){body .cv-dossier98 .cv-art98>span,body .cv-cover82 .cv-preview-label146{transition:none!important}}

/* v163: centrado y transiciones únicamente en móvil. */
@media(max-width:1000px){
 body .logos.company-cards figure{justify-items:center!important;align-items:center!important}
 body .logos.company-cards figure img{margin:0 auto!important;align-self:center!important;justify-self:center!important;object-position:center!important}
 body[data-foundation] .fleet-panel73{transition:flex-grow .7s cubic-bezier(.22,1,.36,1),flex-basis .7s cubic-bezier(.22,1,.36,1)!important}
}
@media(max-width:1000px) and (prefers-reduced-motion:reduce){body[data-foundation] .fleet-panel73{transition:none!important}}

/* aro-menu-v130.css */
body .foundation-panel124 .foundation-menu-close114{display:grid!important;place-items:center!important;align-self:center!important;justify-self:center!important;padding:0!important;line-height:1!important;text-align:center!important;border:2px solid #86b936!important;color:#d3eea5!important;background:#152b40!important;box-sizing:border-box!important;transition:border-color .22s ease,box-shadow .22s ease,background .22s ease,transform .22s ease!important}
body .foundation-panel124 .foundation-menu-close114:is(:hover,:focus-visible,:active){border-color:#b6ee59!important;box-shadow:0 0 0 4px #a5d75120,0 0 18px #a5d75170!important;background:#294438!important;color:#fff!important;outline:none!important}
body .foundation-panel124 .foundation-menu-close114:active{transform:scale(.94)}
@media(prefers-reduced-motion:reduce){body .foundation-panel124 .foundation-menu-close114{transition:none!important;transform:none!important}}
body[data-foundation] .et-symbol103 img,body .foundation-head124>img{transition:filter .35s ease!important}
body[data-foundation] .et-symbol103:is(:hover,:focus,:active) img,body .foundation-head124>img:is(:hover,:active){filter:drop-shadow(0 0 5px #8ac426) drop-shadow(0 0 12px #8ac426b3)!important}
body[data-foundation] .foundation-menu114{transition:color .3s,border-color .3s,box-shadow .3s,background-color .3s!important}
body[data-foundation] .foundation-menu114:is(:hover,:focus,:active,[aria-expanded="true"]){color:#b6ee59!important;border-color:#8ac426!important;background-color:#294438!important;box-shadow:0 0 0 3px #8ac42622,0 0 16px #8ac42680!important;outline:none!important}
@media(prefers-reduced-motion:reduce){body[data-foundation] .et-symbol103 img,body .foundation-head124>img,body[data-foundation] .foundation-menu114{transition:none!important}}

/* botones-v134.css */
/* Shared feedback without overriding existing transforms or special effects. */
body :is(button,[role="button"],a.btn,a.mas,a[class*="cta"],a[class*="download"],a[class*="read129"],a.cv-online98,.et-gallery-open,.et-diagram-open,summary){transition:background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease,opacity .2s ease,translate .2s ease,scale .16s ease; -webkit-tap-highlight-color:transparent}
@media(hover:hover){body :is(button,[role="button"],a.btn,a.mas,a[class*="cta"],a[class*="download"],a[class*="read129"],a.cv-online98,.et-gallery-open,.et-diagram-open):not(:disabled):not([aria-disabled="true"]):hover{translate:0 -2px}}
body :is(button,[role="button"],a.btn,a.mas,a[class*="cta"],a[class*="download"],a[class*="read129"],a.cv-online98,.et-gallery-open,.et-diagram-open,summary):not(:disabled):not([aria-disabled="true"]):active{scale:.97;translate:0 0}
body :is(button,[role="button"],a.btn,a.mas,a[class*="cta"],a[class*="download"],a[class*="read129"],a.cv-online98,summary):focus-visible{outline:2px solid var(--menu-accent117,var(--senal,#f5c518));outline-offset:4px}
body :is(button,[role="button"],a.btn,a.mas,a[class*="cta"],a[class*="download"],a[class*="read129"],a.cv-online98).tap-feedback134{animation:tapFeedback134 .3s ease-out}
@keyframes tapFeedback134{0%{scale:.96}60%{scale:1.02}100%{scale:1}}
@media(prefers-reduced-motion:reduce){body :is(button,[role="button"],a.btn,a.mas,a[class*="cta"],a[class*="download"],a[class*="read129"],a.cv-online98,summary){animation:none!important;transition:none!important;translate:none!important;scale:1!important}}
body #hd .marca img{transition:filter .3s ease!important}
body #hd .marca:is(:hover,:focus-visible,:active) img{filter:brightness(1.18)!important}
@media(hover:none){body #hd .marca:active img{transition:none!important}}
@media(prefers-reduced-motion:reduce){body #hd .marca img{transition:none!important}}

/* scroll-v144.css */
/* Dedicated bottom rail: content scrolls above it, with WhatsApp above the rail. */
body{padding-bottom:calc(58px + env(safe-area-inset-bottom,0px))!important;scroll-padding-bottom:70px}
.page-scroll144{--scroll-accent:#f5c518;position:fixed;inset:auto 0 0;z-index:80;display:flex;justify-content:center;align-items:center;box-sizing:border-box;height:calc(58px + env(safe-area-inset-bottom,0px));padding:6px 20px calc(6px + env(safe-area-inset-bottom,0px));background:#15232e;border-top:1px solid #ffffff26}
body[data-foundation] .page-scroll144{--scroll-accent:#8ac426;background:#1c3652}
.page-scroll144[hidden]{display:none}
.page-scroll144 button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-width:104px;min-height:44px;padding:8px 18px;background:transparent;border:1px solid var(--scroll-accent);border-radius:24px;color:var(--scroll-accent);font-family:inherit;font-size:14px;font-weight:600;line-height:1.2;cursor:pointer;transition:background .25s,color .25s,transform .25s}
.page-scroll144 button:hover,.page-scroll144 button:focus-visible{background:var(--scroll-accent);color:#15232e;outline:2px solid var(--scroll-accent);outline-offset:2px}
body:has(dialog[open]) .page-scroll144,body:has(.mobile-nav.open) .page-scroll144{visibility:hidden}
body .wa{bottom:calc(76px + env(safe-area-inset-bottom,0px))!important}
html{scroll-padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))}
@media(prefers-reduced-motion:reduce){.page-scroll144 button{transition:none!important}}
.page-scroll144{justify-content:flex-start;padding-inline:clamp(18px,4vw,58px)}
.page-scroll144 button{border:0;border-radius:0;min-width:0;padding-inline:4px;box-shadow:none;background:transparent}
.page-scroll144 button:hover,.page-scroll144 button:focus-visible{background:transparent;color:var(--scroll-accent);outline:none;text-decoration:underline;text-underline-offset:5px}

/* logos-movil-v168.css */
/* Mobile-only logo adjustments; retain the existing desktop presentation. */
.et-transparent81>.ecko-hero-mobile168{display:none}
@media(max-width:700px){
 .logos.home-logo-track>figure{padding:16px!important}
 .logos.home-logo-track>figure>img{height:78px!important;max-height:78px!important;max-width:200px!important;width:100%!important;padding:4px!important;object-fit:contain!important;object-position:center!important}
 .et-transparent81>.ecko-hero-desktop168{display:none}
 .et-transparent81>.ecko-hero-mobile168{display:inline}
}

/* menu-fluido-v180.css */
@media (max-width:1000px) {
  body.menu-abierto #menu.on {
    touch-action: pan-y;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    scroll-behavior: auto;
    overflow-anchor: none;
    animation: none !important;
  }
  #bg, #menu a, #menu button { touch-action: manipulation; }
  #hd #bg.tap-feedback134, #menu .tap-feedback134 { animation: none !important; }
  body.menu-abierto > section *, body.menu-abierto main *, body.menu-abierto > footer * {
    animation-play-state: paused !important;
  }
}

/* alianza-interaccion-v181.css */
/* Keep the footer image's original sizing and alignment. */
a.alianza-inicio:not(.acp3d) { display: contents; }
a.alianza-inicio img { transition: filter .3s ease; }
a.alianza-inicio:is(:hover,:focus-visible,:active) img { filter: brightness(1.18); }
a.acp3d {
  color: inherit;
  text-decoration: none;
  cursor: grab;
  touch-action: pan-y;
  user-select: none;
  -webkit-user-select: none;
  -webkit-user-drag: none;
  -webkit-tap-highlight-color: transparent;
}
a.acp3d.is-dragging { cursor: grabbing; }
/* Filters on the parent flatten preserve-3d in Safari and Chromium.
   The fixed link receives gestures; its rotating child is never a hit target. */
a.acp3d .acp3d__obj {
  width: min(100%, var(--acp-ancho));
  flex: 0 0 auto;
  pointer-events: none;
  transform-style: preserve-3d;
  -webkit-transform-style: preserve-3d;
  backface-visibility: visible;
  -webkit-backface-visibility: visible;
  filter: none;
  transition: none;
}
/* Keep the bright rear face on phones too, instead of hiding half the turn. */
a.acp3d .acp3d__obj i {
  display: block;
  backface-visibility: visible;
  -webkit-backface-visibility: visible;
}

/* documentos-v204.css */
/* Existing document cards keep their size, spacing and alignment. */
body [data-document-preview] {
  translate:none!important; transform:none!important; scale:1!important;
  animation:none!important; -webkit-tap-highlight-color:transparent;
}
body .cv-dossier98 .cv-art98>span,
body[data-foundation] #ecko .fleet-library79 .cv-preview-label146 {
  transition:background-color .22s ease,color .22s ease,border-color .22s ease,box-shadow .22s ease!important;
}
body .cv-dossier98 .cv-art98>span { background:#fff!important; color:#192d39!important; }
body .cv-dossier98 .cv-art98:is(:hover,:focus-visible,:active,.preview-selected204)>span {
  background:#f5c518!important; color:#192d39!important; border-color:#f5c518!important;
  box-shadow:0 0 0 4px #f5c51824,0 0 23px #f5c51870!important;
}
body[data-foundation] #ecko .fleet-library79 .cv-preview-label146 { color:#c5e4a4!important; }
body[data-foundation] #ecko .fleet-library79 .cv-cover82:is(:hover,:focus-visible,:active,.preview-selected204) .cv-preview-label146 {
  background:#8ac426!important; color:#152b40!important; border-color:#8ac426!important;
  box-shadow:0 0 0 4px #8ac42624,0 0 23px #8ac42670!important;
}
body .cv-dossier98 .cv-art98>span b,
body[data-foundation] #ecko .fleet-library79 .cv-preview-label146 b { color:inherit!important; }
body [data-document-preview="empresa"]:not(.cv-art98),
body [data-document-preview="cimentaciones"]:not(.cv-cover82),
body [data-document-preview="brochure"]:not(.brochure-preview204) {
  transition:background-color .22s ease,color .22s ease,box-shadow .22s ease!important;
}
body [data-document-preview="empresa"]:not(.cv-art98):is(:hover,:focus-visible,:active,.preview-selected204) {
  background:#f5c518!important;color:#192d39!important;box-shadow:0 0 0 4px #f5c51824,0 0 23px #f5c51870!important;
}
body [data-document-preview="cimentaciones"]:not(.cv-cover82):is(:hover,:focus-visible,:active,.preview-selected204) {
  background:#8ac426!important;color:#152b40!important;box-shadow:0 0 0 4px #8ac42624,0 0 23px #8ac42670!important;
}
body [data-document-preview="brochure"]:not(.brochure-preview204):is(:hover,:focus-visible,:active,.preview-selected204) {
  background:#162d4c!important;color:#fff!important;box-shadow:0 0 0 4px #162d4c30,0 0 25px #365d8aaa!important;
}
/* A compact booklet presentation in the original equipment CTA position. */
body[data-foundation] #ecko .brochure-preview204 {
  display:inline-grid; grid-template-columns:106px minmax(0,1fr); gap:22px; align-items:center;
  width:min(100%,390px); min-height:172px; box-sizing:border-box; margin:0; padding:18px;
  border:1px solid #162d4c48; border-left:3px solid #162d4c; border-radius:4px;
  background:#f5f6f2; color:#162d4c; text-decoration:none; white-space:normal; line-height:1.35;
  transition:background-color .22s ease,color .22s ease,border-color .22s ease,box-shadow .22s ease;
}
body[data-foundation] #ecko .brochure-mini204 { position:relative; display:block; width:106px; height:133px; }
body[data-foundation] #ecko .brochure-mini204 img {
  display:block; position:absolute; height:124px; width:88px; object-fit:contain; margin:0; border:1px solid #d1d8d8;
  box-shadow:0 3px 10px #162d4c20; background:#f5f6f2;
}
body[data-foundation] #ecko .brochure-mini204 img:first-child { top:0; right:0; }
body[data-foundation] #ecko .brochure-mini204 img:last-child { bottom:0; left:0; }
body[data-foundation] #ecko .brochure-copy204 { display:grid; gap:7px; text-align:left; }
body[data-foundation] #ecko .brochure-copy204 small { font-size:10px; font-weight:600; line-height:1.4; letter-spacing:.1em; }
body[data-foundation] #ecko .brochure-copy204 strong { font-size:22px; line-height:1.15; color:inherit; }
body[data-foundation] #ecko .brochure-copy204 .brochure-open204 { display:flex; gap:12px; align-items:center; font-size:13px; color:inherit; }
body[data-foundation] #ecko .brochure-preview204:is(:hover,:focus-visible,:active,.preview-selected204) {
  background:#162d4c; color:#fff; border-color:#162d4c;
  box-shadow:0 0 0 4px #162d4c30,0 0 26px #365d8a80;
}
body [data-document-preview]:focus-visible { outline:2px solid currentColor; outline-offset:4px; }

body .document-preview204 {
  --document-accent:#f5c518; position:fixed; inset:0; margin:auto; padding:0;
  width:min(880px,calc(100vw - 32px)); max-width:calc(100vw - 32px);
  max-height:calc(100vh - 32px); max-height:calc(100dvh - 32px);
  border:2px solid var(--document-accent); border-radius:10px; box-sizing:border-box;
  background:#f5f6f2; color:#162d4c; box-shadow:0 16px 60px #0005; overflow:hidden;
}
body .document-preview204 *,body .document-preview204 *::before,body .document-preview204 *::after { box-sizing:border-box; }
body .document-preview204[data-document="cimentaciones"] { --document-accent:#8ac426; }
body .document-preview204[data-document="brochure"] { --document-accent:#162d4c; }
body .document-preview204::backdrop { background:#0d182de0; }
body .document-preview204[open] { display:flex; flex-direction:column; }
body .document-preview204 .document-heading204 {
  display:flex; justify-content:space-between; align-items:center; gap:16px; flex:none;
  margin:0; padding:18px 22px; background:#fff; border-bottom:1px solid #dce2df;
}
body .document-preview204 .document-eyebrow204 { display:block; font:10px/1.5 monospace; letter-spacing:.1em; color:#536975; }
body .document-preview204 h2 { margin:5px 0 0; font-family:inherit; font-size:22px; line-height:1.25; font-weight:700; color:#162d4c; letter-spacing:-.02em; }
body .document-preview204 .document-close204 {
  display:grid; place-items:center; flex:none; width:44px; height:44px; min-height:44px; padding:0;
  border:1px solid #bac5ca; border-radius:50%; background:#fff; color:#162d4c; font:28px/1 Arial,sans-serif; cursor:pointer;
}
body .document-preview204 .document-stage204 { flex:1 1 auto; min-height:0; padding:20px; overflow:auto; overscroll-behavior:contain; background:#e9ede9; }
body .document-preview204 .document-cover204 { position:relative; display:block; width:min(100%,430px); margin:0 auto; line-height:0; }
body .document-preview204 .document-cover204 img { position:static; display:block; width:100%; height:auto; margin:0; border:0; box-shadow:0 2px 12px #162d4c18; }
body .document-preview204 .document-qr204 {
  position:absolute; display:block; min-width:44px; min-height:44px; padding:0; margin:0;
  transform:translate(-50%,-50%); background:transparent; border:0; border-radius:0;
  touch-action:pan-y pinch-zoom; -webkit-tap-highlight-color:transparent;
}
body .document-preview204 .document-pair204 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:20px; }
body .document-preview204 .document-pair204 figure { min-width:0; margin:0; padding:0; border:0; }
body .document-preview204 .document-pair204 figcaption { margin:9px 0 0; text-align:center; font-size:12px; color:#425e69; }
body .document-preview204 .document-footer204 { flex:none; display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px; padding:16px 22px; background:#fff; border-top:1px solid #dce2df; }
body .document-preview204 .document-footer204 p { margin:0; font-size:12px; color:#536975; }
body .document-preview204 .document-actions204 { display:flex; flex-wrap:wrap; gap:10px; }
body .document-preview204 .document-actions204 a { display:inline-flex; min-height:44px; align-items:center; justify-content:center; padding:9px 13px; border:1px solid var(--document-accent); border-radius:4px; color:#162d4c; background:#fff; font-size:13px; line-height:1.3; text-decoration:none; }
body .document-preview204 .document-actions204 a[download] { background:var(--document-accent); font-weight:600; }
body .document-preview204[data-document="brochure"] .document-actions204 :is(a[download],.document-book204) { background:#162d4c; color:#fff; }
body .document-preview204 :is(a,button):focus-visible { outline:3px solid #448bce; outline-offset:3px; }
@media(max-width:600px) {
  body .document-preview204 .document-heading204 { padding:14px; gap:10px; }
  body .document-preview204 h2 { font-size:18px; }
  body .document-preview204 .document-stage204 { padding:12px; }
  body .document-preview204 .document-pair204 { gap:12px; }
  body .document-preview204 .document-footer204 { padding:12px 14px; }
  body .document-preview204 .document-actions204 { gap:8px; }
  body .document-preview204 .document-actions204 a { padding:9px 10px; font-size:12px; }
}
@media(max-width:360px) {
  body[data-foundation] #ecko .brochure-preview204 { grid-template-columns:92px minmax(0,1fr); gap:14px; padding:14px; }
  body[data-foundation] #ecko .brochure-mini204 { width:92px; }
  body[data-foundation] #ecko .brochure-copy204 strong { font-size:20px; }
}
@media(prefers-reduced-motion:reduce) {
  body [data-document-preview],body [data-document-preview] *,
  body .cv-dossier98 .cv-art98>span,
  body[data-foundation] #ecko .fleet-library79 .cv-preview-label146,
  body[data-foundation] #ecko .brochure-preview204 { transition:none!important; }
}

/* video-controls-v208.css */
/* Controles compactos de reproducción para contacto y cimentaciones. */
#contacto .contacto-presentacion .contacto-video-toggle,
body[data-foundation] .foundation-film-zone .foundation-player99 .foundation-video-toggle {
  position: absolute !important;
  inset: auto 10px 10px auto !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  max-width: 44px !important;
  max-height: 44px !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: 0 !important;
  border: 1px solid rgba(22, 45, 76, .16) !important;
  border-radius: 50% !important;
  background: #fff !important;
  color: #162d4c !important;
  box-shadow: 0 2px 12px rgba(0, 0, 0, .15) !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  -webkit-user-select: none;
  user-select: none;
  z-index: 3;
  transition: background-color .16s ease, box-shadow .16s ease;
}

#contacto .contacto-video-toggle[hidden],
body[data-foundation] .foundation-film-zone .foundation-player99 .foundation-video-toggle[hidden] {
  display: none !important;
}

#contacto .contacto-video-toggle::before,
#contacto .contacto-video-toggle::after,
body[data-foundation] .foundation-video-toggle::before,
body[data-foundation] .foundation-video-toggle::after {
  content: none !important;
  display: none !important;
}

.video-toggle-icon {
  display: block;
  flex: none;
  width: 18px;
  height: 18px;
  overflow: visible;
  pointer-events: none;
  fill: currentColor;
}

.video-toggle-icon .video-icon-play { display: none; }
[data-video-paused="true"] > .video-toggle-icon .video-icon-play { display: block; }
[data-video-paused="true"] > .video-toggle-icon .video-icon-pause { display: none; }

@media (hover: hover) {
  #contacto .contacto-presentacion .contacto-video-toggle:hover,
  body[data-foundation] .foundation-film-zone .foundation-player99 .foundation-video-toggle:hover {
    background: #eff3f6 !important;
    box-shadow: 0 2px 16px rgba(0, 0, 0, .22) !important;
  }
}

#contacto .contacto-presentacion .contacto-video-toggle:active,
body[data-foundation] .foundation-film-zone .foundation-player99 .foundation-video-toggle:active {
  background: #e4eaf0 !important;
}

#contacto .contacto-video-toggle:focus-visible,
body[data-foundation] .foundation-video-toggle:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  #contacto .contacto-video-toggle,
  body[data-foundation] .foundation-video-toggle { transition: none; }
}

/* broca-helice-v219.css */
/* Tool illustrated for Expofer's continuous-auger project, including its enlarged viewer. */
.soil-auger219 .drill-shaft{bottom:62px}
.soil-auger219 .drill-collars{bottom:69px}
.soil-auger219 .drill-auger219{position:absolute;left:-6px;bottom:0;width:42px;height:74px;overflow:visible}

/* perforadora-v235.css */
/* Rotary rig: same ground contact and drill axis, sharper native vector detail. */
.soil-feature .soil-section .mini-rig.rig-detail235{
  position:absolute;width:146px!important;height:132.7273px!important;
  max-width:none!important;max-height:none!important;top:-132.7273px;
  left:calc(var(--tool-x) - 35.1727px);object-fit:contain!important;
  object-position:center!important;display:block;margin:0;padding:0;
  border:0;border-radius:0;background:none;box-shadow:none;z-index:4;
  pointer-events:none;
}
@media(max-width:700px){
  .soil-feature .soil-section .mini-rig.rig-detail235{
    width:126px!important;height:114.5455px!important;top:-114.5455px;
    left:calc(var(--tool-x) - 30.3545px);
  }
}

/* v238: suspend off-screen animation; keep the original layout and anchor geometry. */
.animation-visibility238 .proy:not(.is-in-view238) *,
.animation-visibility238 .proy:not(.is-in-view238) *::before,
.animation-visibility238 .proy:not(.is-in-view238) *::after,
.document-hidden238 .proy *,
.document-hidden238 .proy *::before,
.document-hidden238 .proy *::after { animation-play-state: paused !important; }

/* Zanjeo: own category, shared foundation navigation and photo viewer. */
body[data-foundation] .sistemas .trench-entry239 {
 display:grid; grid-template-columns:40px minmax(0,1fr) 28px; gap:8px 16px;
 align-items:center; padding:26px 28px; color:#a5cf48; text-decoration:none;
 background:#a4ce4810; border:1px solid #a4ce4860; min-width:0;
}
body[data-foundation] .trench-entry239 .num {font-family:'IBM Plex Mono',monospace;font-size:13px;letter-spacing:2px;color:#a5cf48;}
body[data-foundation] .trench-entry239 b {font-size:18px;line-height:1.5;}
.trench-entry-arrow239 {font-size:28px;line-height:1;text-align:right;}
.trench-entry-caption239 {grid-column:2/-1;color:#c2cdd3;font-size:12px;line-height:1.6;}
body[data-foundation] .trench-entry239:hover {background:#a4ce481c;border-color:#a5cf48;}
body[data-foundation] .trench-entry239:focus-visible {outline:2px solid #b5e567;outline-offset:4px;}
#zanjeo {box-sizing:border-box;min-width:0;max-width:100%;margin:64px 0 0;padding:64px 0 0;border-top:1px solid #a5cf4850;scroll-margin-top:120px;}
#zanjeo *,#zanjeo *::before,#zanjeo *::after {box-sizing:border-box;}
#zanjeo .trench-intro239 {display:grid;grid-template-columns:1.12fr 1fr;gap:44px;align-items:end;}
#zanjeo .kicker {color:#a5cf48;font-size:11px;letter-spacing:2.6px;line-height:1.8;margin:0 0 16px;}
#zanjeo h2 {font-size:clamp(36px,4.8vw,62px);line-height:1.1;font-weight:800;letter-spacing:-1.5px;color:#fff;margin:0;}
#zanjeo h2 span {color:#a5cf48;}
#zanjeo .trench-intro-copy239 p {margin:0 0 12px;font-size:15px;line-height:1.8;color:#c7d2d8;}
#zanjeo .trench-jump239 {display:inline-flex;align-items:center;gap:20px;min-height:44px;color:#b3db60;font-size:13px;font-weight:600;text-decoration:none;border-bottom:1px solid #a5cf4870;}
#zanjeo .trench-jump239 span {font-size:20px;}
#zanjeo .trench-jump239:hover {color:#e3f7bd;border-color:#e3f7bd;}
#zanjeo .trench-machines239 {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:36px 0 64px;}
#zanjeo .trench-machine239 {margin:0;background:#21384e;border:1px solid #a9bec323;overflow:hidden;min-width:0;}
#zanjeo .trench-machine-stage239 {position:relative;background-color:#e8eee1;background-image:radial-gradient(#8fa09942 .7px,transparent .7px);background-size:18px 18px;padding:8px 6px 0;}
#zanjeo .trench-machine-stage239 img {display:block;width:100%;height:auto;max-height:310px;object-fit:contain;filter:none;}
#zanjeo .trench-drawing-label239 {position:absolute;left:22px;top:20px;font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:1.5px;color:#425948;}
#zanjeo .trench-machine239 figcaption {padding:22px 26px 24px;}
#zanjeo .trench-machine239 h3 {font-size:22px;line-height:1.3;font-weight:700;letter-spacing:-.3px;color:white;margin:0 0 10px;}
#zanjeo .trench-machine239 p {font-size:13px;line-height:1.8;color:#c5d0d7;margin:0;}
#zanjeo .trench-machine-count239 {display:block;margin-top:16px;color:#b3db60;font:10px/1.7 'IBM Plex Mono',monospace;letter-spacing:.5px;text-transform:uppercase;}
#zanjeo .trench-works-heading239 {display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:0 0 24px;scroll-margin-top:120px;}
#zanjeo .trench-works-heading239 h3 {font-size:clamp(23px,3vw,34px);line-height:1.35;font-weight:700;letter-spacing:-.6px;margin:0;color:#fff;max-width:700px;}
#zanjeo .trench-work-total239 {font-size:52px;font-weight:800;line-height:1;color:#a5cf48;text-align:right;}
#zanjeo .trench-work-total239 small {display:block;font:9px/1.8 'IBM Plex Mono',monospace;letter-spacing:2px;margin-top:8px;color:#bdd0d2;}
#zanjeo .trench-project-index239 {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 24px;margin-bottom:42px;border-top:1px solid #a9bec32b;}
#zanjeo .trench-project-index239 a {display:flex;align-items:flex-start;gap:12px;font-size:12px;line-height:1.7;padding:15px 0;min-height:52px;color:#c9d4db;text-decoration:none;border-bottom:1px solid #a9bec32b;}
#zanjeo .trench-project-index239 a span {font:10px/2 'IBM Plex Mono',monospace;color:#a5cf48;flex-shrink:0;}
#zanjeo .trench-project-index239 a:hover {color:#b5e56a;}
#zanjeo a:focus-visible,#zanjeo button:focus-visible,#zanjeo img[role=button]:focus-visible {outline:2px solid #b5e56a;outline-offset:4px;}
#zanjeo .trench-project239 {padding:0 0 38px;margin:0 0 38px;border-bottom:1px solid #a9bec32b;scroll-margin-top:120px;}
#zanjeo .trench-project-heading239 {display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:22px;}
#zanjeo .trench-overline239 {font:10px/1.8 'IBM Plex Mono',monospace;color:#aebecb;letter-spacing:.8px;text-transform:uppercase;margin:0 0 12px;}
#zanjeo .trench-overline239>span {display:inline-block;color:#a5cf48;margin-right:12px;}
#zanjeo .trench-project-heading239 h3 {font-size:clamp(23px,2.6vw,30px);font-weight:700;line-height:1.3;letter-spacing:-.6px;margin:0;color:white;}
#zanjeo .trench-type239 {display:inline-block;flex-shrink:0;border:1px solid #a5cf4865;background:#a5cf480c;color:#b5d980;font:10px/1.6 'IBM Plex Mono',monospace;padding:9px 12px;white-space:nowrap;}
#zanjeo .trench-project-layout239 {display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:32px;align-items:start;}
#zanjeo .trench-photo-area239 {min-width:0;}
#zanjeo .trench-gallery239 {display:block;width:100%;min-width:0;}
#zanjeo .trench-gallery239 img {display:block;width:100%;height:auto;max-width:100%;border:0;border-radius:0;object-fit:contain;cursor:zoom-in;}
#zanjeo .trench-gallery-three239 {display:grid;grid-template-columns:.45fr .55fr;grid-template-rows:1fr 1fr;gap:10px;aspect-ratio:1.7;}
#zanjeo .trench-gallery-three239 img {height:100%;width:100%;object-fit:cover;min-height:0;}
#zanjeo .trench-gallery-three239 img:first-child {grid-row:1/3;}
#zanjeo .et-gallery-bar {display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;max-width:none;margin:0 0 12px;padding:0;}
#zanjeo .et-gallery-bar>span {font-size:8px;letter-spacing:1px;color:#abbfcc;line-height:1.8;}
#zanjeo .et-gallery-open {min-height:36px;font-size:11px;color:#c7dfaa;background:transparent;border:0;padding:6px 0;white-space:nowrap;cursor:pointer;}
#zanjeo .trench-project-copy239 {min-width:0;padding-top:48px;}
#zanjeo .trench-measures239 {display:grid;grid-template-columns:1fr 1fr;gap:0 20px;margin:0 0 22px;padding:0;}
#zanjeo .trench-measures239>div {display:flex;flex-direction:column;padding:15px 0 12px;border-bottom:1px solid #a9bec338;min-width:0;}
#zanjeo .trench-measures239 .trench-volume239 {grid-column:1/-1;padding:0 0 16px;}
#zanjeo .trench-measures239 dt {order:2;font-size:10px;font-weight:400;letter-spacing:.5px;color:#b4c5cd;line-height:1.6;margin-top:7px;}
#zanjeo .trench-measures239 dd {font-size:clamp(25px,2.5vw,34px);font-weight:700;line-height:1.1;letter-spacing:-.5px;color:#fff;margin:0;}
#zanjeo .trench-measures239 dd span {font-size:.5em;font-weight:500;letter-spacing:0;}
#zanjeo .trench-volume239 dd {font-size:clamp(42px,4vw,56px);color:#a5cf48;}
#zanjeo .trench-project-copy239>p {font-size:13px;line-height:1.85;margin:0 0 16px;color:#ced8de;}
#zanjeo .trench-project-copy239 .trench-scope239 {font-size:11px;line-height:1.8;color:#a6c68c;margin:0;}
#zanjeo .trench-end239 {display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 0 24px;}
#zanjeo .trench-end239 p {font-size:16px;font-weight:600;line-height:1.6;margin:0;color:#fff;}


/* v240: system 08 owns all trenching content and animation. */
body[data-foundation] #ecko .sistema-zanjeo240:not([open]) > .zanjeo-panel240 {display:none!important}
body[data-foundation] #ecko .sistema-zanjeo240[open] {grid-column:1/-1}
body[data-foundation] #ecko .sistema-zanjeo240 > .zanjeo-panel240 {padding:8px clamp(16px,2.5vw,32px) 28px}
.sistema-zanjeo240 {scroll-margin-top:120px}
#zanjeo {margin:0;padding:0;border:0;max-width:100%;min-width:0}
#zanjeo .trench-intro239 {gap:28px;align-items:start;margin-bottom:36px}
#zanjeo h2 {font-size:clamp(30px,4vw,48px);letter-spacing:-1px}
#zanjeo .trench-intro-copy239 p {font-size:14px}
#zanjeo .trench-project-layout239 {display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.15fr);gap:30px;align-items:start}
#zanjeo .trench-project-description240 {font-size:14px;line-height:1.85;color:#cbd7df;margin:0 0 22px;max-width:none}
#zanjeo .trench-scope239 {font-size:12px;line-height:1.8;color:#b0ca97;margin:18px 0 0}
#zanjeo .trench-engineering240 {min-width:0}
#zanjeo .trench-quantity240 {display:flex;align-items:center;gap:20px;border-bottom:1px solid #a7c98155;padding:0 0 16px;margin:0 0 18px}
#zanjeo .trench-quantity240 strong {font-size:clamp(34px,3.7vw,48px);line-height:1.1;letter-spacing:-1px;color:#add15c;font-weight:800;white-space:nowrap}
#zanjeo .trench-quantity240 strong span {font-size:.46em;letter-spacing:0}
#zanjeo .trench-quantity240>span {font-size:11px;line-height:1.65;color:#bdd0d9;max-width:120px}
.trench-diagram240 {box-sizing:border-box;background:#142c42;color:#f2f6f5;border:1px solid #a5cf4847;padding:16px;margin:0;min-width:0;max-width:100%;text-align:left}
.trench-diagram240 *, .trench-diagram240 *::before, .trench-diagram240 *::after {box-sizing:border-box}
.trench-diagram-heading240 {display:flex;flex-direction:column;gap:5px;padding:0 0 12px;margin:0;border-bottom:1px solid #abc1be2c}
.trench-diagram-heading240 strong {font-size:16px;font-weight:600;line-height:1.45;color:#fff}
.trench-diagram-heading240>span {font-size:10px;line-height:1.6;color:#b0c58d}
.trench-view-label240 {display:flex;justify-content:space-between;gap:12px;margin:14px 0 4px;font-size:9px;line-height:1.5;letter-spacing:.3px;color:#bccbd4}
.trench-side240 {display:block;width:100%;height:auto;max-height:260px;overflow:hidden}
.trench-section240 {display:grid;grid-template-columns:120px minmax(0,1fr);gap:18px;align-items:center;margin-top:8px}
.trench-cross-view240>span {display:block;color:#b7c7d2;font-size:9px;line-height:1.5;text-align:center}
.trench-cross240 {display:block;width:100%;height:auto;max-height:117px}
.trench-dimensions240 {margin:0;display:grid;grid-template-columns:1fr;gap:12px}
.trench-dimensions240>div {display:flex;flex-direction:column;gap:2px}
.trench-dimensions240 dt {font-size:9px;font-weight:400;letter-spacing:.4px;color:#adc3cd;line-height:1.6}
.trench-dimensions240 dd {font-size:27px;line-height:1.15;color:#e5f1d2;font-weight:700;letter-spacing:-.5px;margin:0}
.trench-dimensions240 dd span {font-size:13px;letter-spacing:0;font-weight:400}
.trench-sequence240 {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:20px 0 8px;font-size:8px;line-height:1.55;color:#7d98a9}
.trench-sequence240>span {min-width:0;text-align:center}
.trench-sequence240>.is-current {color:#b9db7c}
.trench-progress240 {height:2px;background:#adbdcc24;overflow:hidden}
.trench-progress240 i {display:block;transform-origin:left center;transform:scaleX(0);width:100%;height:100%;background:#acd457}
#zanjeo .trench-status240,.trench-viewer240 .trench-status240 {font-size:10px;line-height:1.65;color:#c3d8d6;margin:10px 0 6px;min-height:17px;max-width:none}
.trench-controls240 {display:flex;flex-wrap:wrap;gap:4px 8px;margin-top:2px}
.trench-controls240 button {background:transparent;border:0;color:#c2df99;padding:8px 4px;min-height:44px;font-family:inherit;font-size:11px;line-height:1.5;cursor:pointer}
.trench-controls240 button:first-child {padding-left:0}
.trench-controls240 button:last-child {margin-left:auto}
.trench-controls240 button:hover {color:#fff}
.trench-controls240 button:disabled {color:#a5b6bf;cursor:default;opacity:.55}
.trench-controls240 button:focus-visible {outline:2px solid #b5e56a;outline-offset:2px}
#zanjeo .trench-diagram-note240,.trench-viewer240 .trench-diagram-note240 {font-size:8px;line-height:1.7;color:#9fb4c2;margin:3px 0 0;max-width:none}
#zanjeo .trench-collapse240 {display:flex;align-items:center;justify-content:space-between;gap:24px;width:100%;border:1px solid #9cc35f66;background:#97bf3210;color:#c2df99;padding:14px 18px;margin:22px 0 0;font:600 13px/1.5 'Poppins',sans-serif;min-height:48px;cursor:pointer}
#zanjeo .trench-collapse240 span {font-size:23px;font-weight:400}
.trench-viewer240[open] {display:block;overflow-y:auto;max-height:94dvh;overscroll-behavior:contain}
.trench-viewer240 .et-viewer-head {position:sticky;top:0;z-index:2;background:#142c42}
.trench-viewer-content240 {max-width:780px;margin:0 auto;padding:20px}
.trench-viewer240 .trench-side240 {max-height:340px}
.trench-viewer240 .trench-diagram240 {width:100%;max-width:none}
.trench-viewer240 .trench-diagram-heading240 strong {font-size:20px}
.trench-viewer240 .trench-section240 {grid-template-columns:160px 1fr;gap:28px}
.trench-viewer240 .trench-cross240 {max-height:150px}
.trench-viewer240 .trench-dimensions240 {grid-template-columns:1fr 1fr}
.trench-viewer240 .trench-dimensions240 dd {font-size:34px}
.trench-viewer240 .trench-sequence240 {font-size:10px}
.trench-viewer240 .trench-controls240 {justify-content:flex-start}
.trench-viewer240 .trench-controls240 button:last-child {margin-left:12px}
@media(max-width:1000px){
 #zanjeo .trench-project-index239 {grid-template-columns:repeat(2,minmax(0,1fr))}
 #zanjeo .trench-project-heading239 {flex-direction:column;gap:12px}
 #zanjeo .trench-project-layout239 {gap:20px}
 .trench-section240 {grid-template-columns:100px minmax(0,1fr);gap:12px}
 .trench-diagram240 {padding:14px}
}
@media(max-width:850px){
 #zanjeo .trench-intro239 {grid-template-columns:1fr;gap:22px}
 #zanjeo .trench-project-layout239 {grid-template-columns:1fr;gap:24px}
 #zanjeo .trench-engineering240 {order:0}
 #zanjeo .trench-photo-area239 {order:1}
 .trench-diagram240 {padding:18px}
 .trench-side240 {max-height:290px}
 .trench-section240 {grid-template-columns:125px minmax(0,1fr);gap:22px;max-width:470px;margin:10px auto 0}
 .trench-dimensions240 {grid-template-columns:1fr 1fr;gap:14px}
 .trench-controls240 button {font-size:12px}
}
@media(max-width:600px){
 body[data-foundation] #ecko .sistema-zanjeo240>.zanjeo-panel240 {padding:0 12px 18px}
 #zanjeo .kicker {font-size:9px;letter-spacing:1.8px}
 #zanjeo h2 {font-size:32px}
 #zanjeo .trench-intro239 {margin-bottom:30px}
 #zanjeo .trench-intro-copy239 p {font-size:13px}
 #zanjeo .trench-project-index239 {grid-template-columns:1fr;margin-bottom:30px}
 #zanjeo .trench-project-index239 a {font-size:11px;padding:12px 0}
 #zanjeo .trench-project-heading239 h3 {font-size:22px}
 #zanjeo .trench-overline239 {font-size:8px;line-height:1.85}
 #zanjeo .trench-type239 {font-size:9px;padding:7px 10px}
 #zanjeo .trench-project239 {padding-bottom:30px;margin-bottom:30px}
 #zanjeo .trench-project-description240 {font-size:13px}
 #zanjeo .trench-quantity240 {gap:16px}
 #zanjeo .trench-quantity240 strong {font-size:36px}
 #zanjeo .trench-quantity240>span {font-size:10px}
 #zanjeo .trench-works-heading239 {gap:16px;align-items:flex-start}
 #zanjeo .trench-works-heading239 h3 {font-size:23px}
 #zanjeo .trench-work-total239 {font-size:34px}
 #zanjeo .trench-gallery-three239 {gap:6px}
 #zanjeo .trench-end239 {align-items:flex-start;flex-direction:column;gap:12px}
 .trench-diagram240 {padding:12px}
 .trench-diagram-heading240 strong {font-size:15px}
 .trench-section240 {grid-template-columns:100px minmax(0,1fr);gap:12px}
 .trench-dimensions240 {grid-template-columns:1fr;gap:10px}
 .trench-dimensions240 dd {font-size:25px}
 .trench-controls240 {gap:4px}
 .trench-controls240 button {font-size:10px}
 .trench-viewer-content240 {padding:10px}
 .trench-viewer240 .trench-section240 {grid-template-columns:120px minmax(0,1fr);gap:14px}
 .trench-viewer240 .trench-dimensions240 {grid-template-columns:1fr}
 .trench-viewer240 .trench-dimensions240 dd {font-size:27px}
}
@media(prefers-reduced-motion:reduce){.trench-diagram240 *{transition:none;animation:none}}


/* A complete static cut remains readable if scripting is unavailable. */
.trench-diagram240:not(.is-ready240) :is(.trench-controls240,.trench-sequence240,.trench-progress240,.trench-status240){display:none}

/* v241: slender equipment silhouettes, independent paint zones and bounded tools. */
.soil-feature.soil-refined241 .soil-section {
 --rig-width241:128px;
 --rig-height241:192px;
 --rig-axis241:24.685714px;
 margin-top:216px;
}
.soil-feature.soil-refined241 .soil-section .mini-rig.rig-detail241 {
 position:absolute;
 width:var(--rig-width241)!important;
 height:var(--rig-height241)!important;
 top:calc(0px - var(--rig-height241));
 left:calc(var(--tool-x) - var(--rig-axis241));
 max-width:none!important;
 max-height:none!important;
 display:block;
 margin:0!important;
 padding:0!important;
 object-fit:contain!important;
 object-position:center!important;
 border:0!important;
 border-radius:0!important;
 box-shadow:none!important;
 background:none!important;
 pointer-events:none;
 z-index:4;
}
.soil-feature.soil-refined241 .soil-pile.drill-refined241 {
 width:36px;
 margin-left:-18px;
 overflow:hidden;
}
.soil-feature.soil-refined241 .drill-refined241 .drill-shaft {
 inset:auto;
 top:0;
 bottom:min(49px,85%);
 left:15px;
 width:6px;
 border:0;
 border-radius:0;
 background:linear-gradient(90deg,#627d85,#dce4d9 45%,#6e8d97 75%,#425d6b);
}
.soil-feature.soil-refined241 .ground-label {
 top:8px;
 right:0;
 left:auto;
}
.et-diagram-view .soil-feature.soil-refined241 .soil-section {
 --rig-width241:176px;
 --rig-height241:264px;
 --rig-axis241:33.942857px;
 margin-top:288px;
}
.soil-feature.soil-refined241 .drill-refined241 .drill-tool241 {
 position:absolute;
 bottom:0;
 left:50%;
 width:34px!important;
 height:100%!important;
 max-height:58px!important;
 max-width:none!important;
 margin:0!important;
 padding:0!important;
 transform:translateX(-50%);
 object-fit:contain!important;
 object-position:center bottom!important;
 display:block;
 border:0!important;
 border-radius:0!important;
 box-shadow:none!important;
 background:none!important;
 pointer-events:none;
}
/* The shallow case must also work in the enlarged clone, where project IDs are removed. */
body[data-foundation] #ecko .soil-feature.soil-shallow241 .soil-depth,
.et-diagram-view .soil-feature.soil-shallow241 .soil-depth {
 top:124px!important;
 bottom:auto!important;
 left:54%!important;
 right:auto!important;
 width:46%!important;
 line-height:1.2!important;
}
@media(max-width:700px) {
 .soil-feature.soil-refined241 .soil-section {
  --rig-width241:112px;
  --rig-height241:168px;
  --rig-axis241:21.6px;
  margin-top:192px;
 }
 .et-diagram-view .soil-feature.soil-refined241 .soil-section {
  --rig-width241:128px;
  --rig-height241:192px;
  --rig-axis241:24.685714px;
  margin-top:216px;
 }
}


/* Source: assets/zanjeo-acceso-v249.css */
/* A clear invitation to open the native trenching disclosure. */
body[data-foundation] #ecko #sistema-zanjeo {
  border:2px solid #a8d443;
  border-left-width:5px;
  background:linear-gradient(115deg,rgba(168,212,67,.13),rgba(168,212,67,.025)),#172d49;
  box-shadow:0 6px 22px rgba(0,0,0,.12);
}
body[data-foundation] #ecko #sistema-zanjeo > summary {
  grid-template-columns:38px minmax(0,1fr) 32px;
  align-items:center;
  gap:12px;
  padding:22px;
}
#sistema-zanjeo > summary .num {
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  margin:0;
  border:1px solid rgba(168,212,67,.5);
  background:rgba(168,212,67,.12);
  color:#c5ea77;
  font-size:16px;
  letter-spacing:.05em;
}
#sistema-zanjeo .zanjeo-access-copy249 {min-width:0}
#sistema-zanjeo > summary b {display:block;color:#fff}
#sistema-zanjeo .zanjeo-access-info249 {
  display:block;
  margin-top:7px;
  color:#d1ddca;
  font-size:12px;
  line-height:1.6;
  font-weight:400;
}
#sistema-zanjeo > summary .sig {
  width:32px;
  height:32px;
  margin:0;
  border-radius:50%;
  background:#a8d443;
}
#sistema-zanjeo > summary .sig::before {
  left:9px;right:9px;top:15px;height:2px;background:#172d49;
}
#sistema-zanjeo > summary .sig::after {
  top:9px;bottom:9px;left:15px;width:2px;background:#172d49;
}
#sistema-zanjeo .zanjeo-access-action249 {
  grid-column:2/-1;
  justify-self:start;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:44px;
  max-width:100%;
  box-sizing:border-box;
  padding:10px 14px;
  border:1px solid #a8d443;
  background:#a8d443;
  color:#172d49;
  font-size:12px;
  font-weight:600;
  line-height:1.5;
  text-align:left;
}
#sistema-zanjeo .zanjeo-access-action249 svg {flex:0 0 20px}
#sistema-zanjeo .zanjeo-access-close249 {display:none}
#sistema-zanjeo[open] .zanjeo-access-open249 {display:none}
#sistema-zanjeo[open] .zanjeo-access-close249 {display:inline}
#sistema-zanjeo[open] .zanjeo-access-action249 {background:transparent;color:#c5ea77}
#sistema-zanjeo[open] .zanjeo-access-action249 svg {transform:rotate(180deg)}
#sistema-zanjeo > summary:focus-visible {outline:3px solid #fff;outline-offset:-6px}
@media (hover:hover) {
  #sistema-zanjeo > summary:hover .zanjeo-access-action249 {background:#c5ea77;color:#172d49}
}
@media (max-width:600px) {
  body[data-foundation] #ecko #sistema-zanjeo > summary {
    grid-template-columns:32px minmax(0,1fr) 30px;
    gap:12px 10px;
    padding:18px 14px;
  }
  #sistema-zanjeo > summary .num {width:32px;height:32px;font-size:14px}
  #sistema-zanjeo > summary b {font-size:17px}
  #sistema-zanjeo .zanjeo-access-action249 {grid-column:1/-1;justify-self:stretch;font-size:13px}
}


/* Source: assets/cimentacion-layout-v250.css */
/* Each drawing, measurement and control has its own reserved space. */
body[data-foundation] #ecko .proy .front-layout64 {
  display:grid!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  grid-template-rows:auto 1fr!important;
  align-items:start!important;
  gap:24px 32px!important;
}
body[data-foundation] #ecko .proy .front-layout64 > .foundation-metrics,
body[data-foundation] #ecko .proy .front-layout64 > .foundation-metrics:has(.stabilizer-circuit,.casing-diagram) {
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
  align-self:start!important;
  min-width:0;
}
body[data-foundation] #ecko .proy .front-layout64 > .et-gallery-bar {
  grid-column:2!important;grid-row:1!important;
  width:100%;box-sizing:border-box;
  margin:0!important;padding:0!important;
  align-items:center!important;
  gap:16px!important;flex-wrap:wrap;
}
body[data-foundation] #ecko .proy .front-layout64 > .proy-fotos.gallery-row68 {
  grid-column:2!important;grid-row:2!important;
  align-self:start!important;
  max-height:none!important;
}
body[data-foundation] #ecko .soil-feature.soil-spaced250,
.et-diagram-view .soil-feature.soil-spaced250 {
  min-width:0;box-sizing:border-box;
  padding:24px!important;
  margin:0!important;
  overflow:visible;
}
.soil-spaced250 .soil-heading {display:flex;flex-wrap:wrap;gap:12px 20px;align-items:start}
.soil-spaced250 .soil-heading > span {line-height:1.6}
.soil-spaced250 .soil-classification {gap:10px 16px;line-height:1.65}
.soil-spaced250 .soil-classification b {margin-left:0}
body[data-foundation] #ecko .proy .soil-spaced250 .soil-section,
.et-diagram-view .soil-feature.soil-spaced250 .soil-section {
  --tool-x:max(64px,28%);
  --rig-width241:128px;
  --rig-height241:192px;
  --rig-axis241:24.685714px;
  height:240px!important;
  min-height:0!important;
  margin:calc(var(--rig-height241) + 32px) 0 0!important;
  overflow:visible;
}
body[data-foundation] #ecko .soil-spaced250 .bore-plan,
.et-diagram-view .soil-spaced250 .bore-plan {
  width:112px!important;height:48px!important;
  margin-left:-56px!important;margin-top:-19px!important;
}
.soil-spaced250 .bore-plan svg {width:112px!important;height:112px!important}
.soil-spaced250 .bore-plan::after {content:none!important;display:none!important}
.soil-spaced250 .soil-reference250 {
  display:flex;justify-content:space-between;flex-wrap:wrap;
  gap:8px 20px;margin:14px 0 24px;
}
.soil-spaced250 .soil-reference250 .ground-label,
.soil-spaced250 .soil-reference250 .soil-scale {
  position:static!important;inset:auto!important;
  display:block;font-size:10px;line-height:1.6;
  margin:0;padding:0;color:#b8c8d0;max-width:100%;
}
.soil-spaced250 .soil-measurements250 {
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;padding:20px 0;margin:0 0 24px;
  border-block:1px solid #99bd814d;
}
.soil-spaced250 .soil-measurements250 > div {min-width:0;display:flex;flex-direction:column;justify-content:end;gap:8px}
body[data-foundation] #ecko .proy .soil-spaced250 .soil-measurements250 .soil-depth,
.et-diagram-view .soil-feature.soil-spaced250 .soil-measurements250 .soil-depth {
  position:static!important;inset:auto!important;
  display:flex;flex-direction:column;
  width:auto!important;max-width:100%;
  margin:0!important;padding:0!important;
  text-align:left!important;font-size:27px!important;
  line-height:1.3!important;gap:8px;
}
.soil-spaced250 .soil-measurements250 .soil-depth small {order:-1;font-size:10px;line-height:1.6;font-weight:400;color:#b8c8d0;text-transform:none;letter-spacing:0}
.soil-spaced250 .soil-measure-label250 {font-size:10px;line-height:1.6;color:#b8c8d0}
.soil-spaced250 .soil-measurements250 .bore-current {
  position:static!important;inset:auto!important;
  display:block;margin:0!important;padding:0!important;
  width:auto!important;font-size:27px!important;line-height:1.3!important;
  font-family:'Poppins',system-ui,sans-serif;font-weight:700;
  white-space:normal;overflow-wrap:anywhere;text-align:left!important;color:#91ca43;
}
body[data-foundation] #ecko .soil-spaced250 .soil-note,
.et-diagram-view .soil-spaced250 .soil-note {
  margin:20px 0 0!important;line-height:1.75!important;
  font-size:11px!important;max-width:none;
}
body[data-foundation] #ecko .soil-spaced250 .et-diagram-open {margin:24px 0 0 auto!important;max-width:100%!important}
.soil-spaced250 .stabilizer-circuit,.soil-spaced250 .casing-diagram {margin:24px 0!important;min-width:0;max-width:100%}
.soil-spaced250 :is(.stabilizer-circuit,.casing-diagram) svg {display:block;width:100%;height:auto;max-width:100%}
.et-diagram-view .soil-spaced250 {width:100%;max-width:640px!important}
.et-diagram-view .soil-spaced250 .soil-pile {transform:scaleY(1)!important;animation:none!important}
.et-diagram-view .soil-spaced250 .bore-ring {opacity:1!important;animation:none!important}
.et-diagram-view .soil-spaced250 .slurry-hoses {animation:none!important}
.foundation-static250 .soil-spaced250 .soil-pile {transform:scaleY(1)!important;animation:none!important}
.foundation-static250 .soil-spaced250 .bore-ring {opacity:1!important;animation:none!important}

/* Only the diagram that is actually visible can animate. */
.foundation-motion250 .soil-feature:not(.diagram-active250) *,
.foundation-motion250 .soil-feature:not(.diagram-active250) *::before,
.foundation-motion250 .soil-feature:not(.diagram-active250) *::after,
.foundation-background-paused250 .soil-feature *,
.foundation-background-paused250 .soil-feature *::before,
.foundation-background-paused250 .soil-feature *::after {animation-play-state:paused!important}
body[data-foundation].menu-abierto .soil-feature * {animation-play-state:paused!important}
body[data-foundation] .media-suspended250 {visibility:hidden!important}
.foundation-motion250 .soil-feature .slurry-hoses {animation-iteration-count:2}
@supports(content-visibility:auto) {
  body[data-foundation] #ecko .proy {
    content-visibility:auto;
    contain-intrinsic-size:auto 1100px;
  }
}

/* Each trenching project remains closed until deliberately selected. */
#zanjeo .trench-project239 {margin:0 0 16px;padding:0;border:1px solid #99bd814d;background:#142c4266}
#zanjeo .trench-project-disclosure250 > summary {
  display:block!important;list-style:none;padding:22px!important;min-height:0;cursor:pointer;
  translate:none!important;scale:1!important;
}
#zanjeo .trench-project-disclosure250 > summary::-webkit-details-marker {display:none}
#zanjeo .trench-project-disclosure250 > summary::marker {content:''}
#zanjeo .trench-project-heading239 {margin:0;gap:16px;flex-wrap:wrap}
#zanjeo .trench-project-heading239 > div {min-width:0;flex:1 1 260px}
#zanjeo .trench-project-heading239 h3 {font-size:clamp(19px,2.4vw,27px);line-height:1.45}
#zanjeo .trench-overline239 {margin:0 0 10px!important;line-height:1.8}
#zanjeo .trench-project-cue250 {display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px;color:#c5ea77;font-size:12px;font-weight:600}
#zanjeo .trench-project-icon250 {flex:none;display:grid;place-items:center;width:32px;height:32px;border:1px solid #a8d443;border-radius:50%;font-size:24px;font-weight:400;line-height:1}
#zanjeo .trench-project-close250 {display:none}
#zanjeo .trench-project-disclosure250[open] > summary .trench-project-open250 {display:none}
#zanjeo .trench-project-disclosure250[open] > summary .trench-project-close250 {display:inline}
#zanjeo .trench-project-disclosure250[open] > summary .trench-project-icon250 {transform:rotate(45deg)}
#zanjeo .trench-project-disclosure250 > summary:focus-visible {outline:3px solid #c5ea77;outline-offset:-4px}
#zanjeo .trench-project-disclosure250 > summary:hover {background:#a8d4430a}
#zanjeo .trench-project-disclosure250:not([open]) > .trench-project-body250 {display:none!important}
#zanjeo .trench-project-body250 {padding:0 22px 28px}
#zanjeo .trench-project-layout239 {padding-top:24px;border-top:1px solid #99bd8130;gap:32px;min-width:0}
.trench-diagram-slot250 {min-width:0}
.trench-diagram240 {padding:20px}
.trench-section240 {gap:20px;margin-block:16px}
.trench-view-label240 {flex-wrap:wrap;gap:6px 16px}
.trench-dimensions240 dd {line-height:1.35}
.trench-sequence240 {gap:10px;margin-top:24px;font-size:9px}
.trench-controls240 {gap:10px;margin-top:12px}
.trench-controls240 button {padding:10px 6px;min-height:44px}
body[data-foundation] .et-nav,
body[data-foundation] .et-viewer::backdrop {backdrop-filter:none!important;-webkit-backdrop-filter:none!important}

@media(max-width:1100px) {
  body[data-foundation] #ecko .proy .front-layout64 {grid-template-columns:minmax(0,1fr)!important;grid-template-rows:auto!important;gap:24px!important}
  body[data-foundation] #ecko .proy .front-layout64 > .foundation-metrics {grid-column:1!important;grid-row:auto!important}
  body[data-foundation] #ecko .proy .front-layout64 > .et-gallery-bar {grid-column:1!important;grid-row:auto!important}
  body[data-foundation] #ecko .proy .front-layout64 > .proy-fotos.gallery-row68 {grid-column:1!important;grid-row:auto!important;align-self:start!important}
  #zanjeo .trench-project-layout239 {grid-template-columns:minmax(0,1fr);gap:30px}
}
@media(max-width:600px) {
  body[data-foundation] #ecko .soil-feature.soil-spaced250,
  .et-diagram-view .soil-feature.soil-spaced250 {padding:18px 14px!important}
  .soil-spaced250 .soil-heading {flex-direction:column;gap:10px}
  body[data-foundation] #ecko .proy .soil-spaced250 .soil-section,
  .et-diagram-view .soil-feature.soil-spaced250 .soil-section {
    --rig-width241:112px;--rig-height241:168px;--rig-axis241:21.6px;
    height:220px!important;
  }
  .soil-spaced250 .soil-measurements250 {gap:12px}
  body[data-foundation] #ecko .proy .soil-spaced250 .soil-measurements250 .soil-depth,
  .et-diagram-view .soil-feature.soil-spaced250 .soil-measurements250 .soil-depth,
  .soil-spaced250 .soil-measurements250 .bore-current {font-size:clamp(20px,5.5vw,22px)!important}
  #zanjeo .trench-project-disclosure250 > summary {padding:18px 14px!important}
  #zanjeo .trench-project-heading239 {gap:12px}
  #zanjeo .trench-project-heading239 > div {flex-basis:auto}
  #zanjeo .trench-project-body250 {padding:0 12px 22px}
  #zanjeo .trench-type239 {white-space:normal}
  #zanjeo .trench-quantity240 {flex-wrap:wrap;gap:12px}
  .trench-diagram240 {padding:14px}
  .trench-section240,.trench-viewer240 .trench-section240 {grid-template-columns:minmax(0,1fr);gap:20px}
  .trench-cross-view240 {width:140px;max-width:100%;justify-self:center}
  .trench-dimensions240,.trench-viewer240 .trench-dimensions240 {grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .trench-dimensions240 dd,.trench-viewer240 .trench-dimensions240 dd {font-size:24px}
  .trench-sequence240 {grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;font-size:9px}
  .trench-controls240 {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .trench-controls240 button {font-size:11px;margin:0!important;border:1px solid #99bd814d;padding:10px 6px!important}
  .trench-controls240 [data-enlarge] {grid-column:1/-1}
  #zanjeo .et-gallery-bar {flex-wrap:wrap;gap:12px}
}

/* The selector stays available; the index and projects start fully hidden. */
body[data-foundation] #ecko #frentes-content250[hidden],
body[data-foundation] #ecko #frentes-index250[hidden],
body[data-foundation] #ecko .proy .front-layout64 > [hidden] {display:none!important}
.front-view-picker250 {margin:24px 0 0;min-width:0}
body[data-foundation] #ecko .front-view-picker250 h3 {font-size:18px;line-height:1.5;margin:0 0 8px}
.front-view-picker250 > p {font-size:12px;line-height:1.7;color:#b8c8d0;margin:0 0 18px}
.front-view-options250 {display:grid;gap:10px}
.front-view-options250 button {
  display:flex;align-items:center;gap:14px;width:100%;min-height:74px;
  padding:15px 16px;text-align:left;font:inherit;color:#edf4f2;
  background:#142c42;border:1px solid #99bd8159;border-radius:6px;cursor:pointer;
}
.front-view-options250 button > span:last-child {display:grid;gap:5px;min-width:0}
.front-view-options250 strong {font-size:14px;line-height:1.5;font-weight:600}
.front-view-options250 small {font-size:11px;line-height:1.6;color:#b8c8d0}
.front-view-dot250 {flex:none;width:16px;height:16px;box-sizing:border-box;border:1px solid #9daeaa;border-radius:50%}
.front-view-options250 button[aria-pressed="true"] {border-color:#a8d443;background:#223d38}
.front-view-options250 button[aria-pressed="true"] .front-view-dot250 {border:5px solid #a8d443;background:#142c42}
.front-view-options250 button:hover {border-color:#c5ea77}
.front-view-options250 button:focus-visible {outline:3px solid #c5ea77;outline-offset:3px}
.front-view-picker250 .front-view-status250 {margin:16px 0 0;font-size:11px;min-height:3.4em}
body[data-foundation] #ecko .front-facts250 {
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.5fr);
  gap:22px;margin:24px 0 30px;padding:22px 0;
  border-block:1px solid #99bd814d;
}
.front-facts250 > div {min-width:0}
.front-facts250 dt {font-size:11px;line-height:1.7;color:#b8c8d0;margin:0 0 8px}
.front-facts250 dd {font-size:22px;line-height:1.5;font-weight:600;color:#a8d443;margin:0;overflow-wrap:anywhere}
body[data-foundation] #ecko[data-fronts-view="gallery"] .proy .front-layout64,
body[data-foundation] #ecko[data-fronts-view="diagram"] .proy .front-layout64 {grid-template-columns:minmax(0,1fr)!important;grid-template-rows:auto!important}
body[data-foundation] #ecko[data-fronts-view="gallery"] .proy .front-layout64 > :is(.et-gallery-bar,.proy-fotos.gallery-row68) {grid-column:1!important;grid-row:auto!important}
body[data-foundation] #ecko[data-fronts-view="diagram"] .proy .front-layout64 > .foundation-metrics {grid-column:1!important;grid-row:auto!important;max-width:720px;width:100%;box-sizing:border-box}
@media(max-width:600px) {
  body[data-foundation] #ecko .front-facts250 {grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
  .front-facts250 > div:last-child {grid-column:1/-1}
  .front-facts250 dd {font-size:21px}
  .front-view-options250 button {padding:14px 12px}
}
@media(prefers-reduced-motion:reduce) {
  .soil-spaced250 .soil-pile {transform:scaleY(1)!important;animation:none!important}
  .soil-spaced250 .bore-ring {opacity:1!important;animation:none!important}
  .soil-spaced250 .slurry-hoses {animation:none!important}
}


/* Source: assets/cimentacion-interfaz-v252.css */
/* Read one front at a time while the project headings remain part of the page. */
body[data-foundation] #ecko #frentes-content250 .proy {
  content-visibility:visible;contain:none;contain-intrinsic-size:none;
  overflow-anchor:none;padding-block:26px 30px;
}
#frentes-content250 {overflow-anchor:none}
html.front-positioning252 {overflow-anchor:none!important}
body[data-foundation] #ecko .front-body252[hidden] {display:none!important}
body[data-foundation] #ecko .front-summary252 .loc {margin:0 0 12px}
body[data-foundation] #ecko .front-summary252 h3 {margin:0;line-height:1.3}
.front-summary252 h3 a {display:inline;outline-offset:7px}
.front-summary252 h3 a:hover {color:#bfdf8c}
body[data-foundation] #ecko .proy:not(.is-current252) .front-summary252 h3 {font-size:clamp(21px,2.3vw,31px)}
body[data-foundation] #ecko .proy.is-current252 .front-summary252 {border-left:3px solid #91ca43;padding-left:18px}
body[data-foundation] #ecko .front-reading-hint252 {font-size:12px;color:#b8c8d0;line-height:1.8;margin:0 0 24px}
.front-body252 {padding-top:12px}

/* The left lane shows the bore and live diameter; depth sits inside the right lane. */
body[data-foundation] #ecko .proy .soil-feature.soil-inside252 .soil-section,
.et-diagram-view .soil-feature.soil-spaced250.soil-inside252 .soil-section {
  --tool-x:max(54px,26%);
  height:320px!important;min-height:320px!important;
}
body[data-foundation] #ecko .proy .soil-inside252 .bore-plan,
.et-diagram-view .soil-feature.soil-inside252 .bore-plan {
  width:96px!important;height:84px!important;
  top:var(--depth)!important;left:var(--tool-x)!important;
  margin-left:-48px!important;margin-top:-16px!important;
}
body[data-foundation] #ecko .soil-inside252 .bore-plan svg,
.et-diagram-view .soil-inside252 .bore-plan svg {width:96px!important;height:96px!important}
body[data-foundation] #ecko .proy .soil-inside252 .bore-plan .bore-current,
.et-diagram-view .soil-feature.soil-inside252 .bore-plan .bore-current {
  position:absolute!important;top:39px!important;left:-7px!important;right:-7px!important;bottom:auto!important;
  display:block;width:auto!important;margin:0!important;padding:0!important;
  font:16px/1.5 'IBM Plex Mono',ui-monospace,monospace!important;
  font-variant-numeric:tabular-nums;text-align:center!important;white-space:nowrap;
  color:#a8d443!important;
}
body[data-foundation] #ecko .soil-inside252 .bore-plan::after,
.et-diagram-view .soil-inside252 .bore-plan::after {
  content:'Drilling footprint'!important;display:block!important;
  position:absolute;top:65px;left:-8px;right:-8px;
  font-size:9px;line-height:1.5;white-space:normal;text-align:center;color:#bdc9ce;
}
body[data-foundation] #ecko .proy .soil-feature.soil-inside252 .soil-section > .soil-depth,
.et-diagram-view .soil-feature.soil-spaced250.soil-inside252 .soil-section > .soil-depth {
  position:absolute!important;left:auto!important;right:0!important;bottom:auto!important;
  top:clamp(108px,calc(var(--depth) - 24px),calc(100% - 72px))!important;
  width:44%!important;max-width:none;margin:0!important;padding:0!important;
  display:block;text-align:center!important;font-size:clamp(20px,2.5vw,30px)!important;
  line-height:1.3!important;white-space:nowrap;z-index:5;
}
body[data-foundation] #ecko .soil-inside252 .soil-depth small,
.et-diagram-view .soil-inside252 .soil-depth small {
  display:block;font-size:10px;line-height:1.7;margin-top:7px;color:#d5dfe1;white-space:normal;
}
body[data-foundation] #ecko .soil-feature.soil-inside252 .soil-section > .ground-label,
.et-diagram-view .soil-feature.soil-inside252 .soil-section > .ground-label {
  position:absolute!important;top:8px!important;right:5px!important;left:auto!important;bottom:auto!important;
  margin:0;padding:0;font-size:9px;line-height:1.5;color:#b6d58d;
}
.soil-inside252 .soil-reference250 {justify-content:flex-end;margin:16px 0 24px}
@media(max-width:600px) {
  body[data-foundation] #ecko .proy .soil-feature.soil-inside252 .soil-section > .soil-depth,
  .et-diagram-view .soil-feature.soil-spaced250.soil-inside252 .soil-section > .soil-depth {
    font-size:clamp(20px,5.5vw,27px)!important;
  }
  body[data-foundation] #ecko .proy {padding-inline:18px!important}
  .soil-inside252 .bore-plan::after {font-size:9px}
}


/* Source: assets/zanjeo-visor-v253.css */
/* Align the expanded trench diagram heading with its diagram card. */
html.fleet-positioning253,html.fleet-positioning253 body {overflow-anchor:none}
.trench-viewer240 {
  --trench-viewer-gutter:20px;
  --trench-viewer-inset:16px;
}
.trench-viewer240 > .et-viewer-head {
  box-sizing:border-box;
  display:grid;
  grid-template-columns:minmax(0,1fr) 44px;
  align-items:start;
  gap:16px;
  width:calc(100% - 2 * var(--trench-viewer-gutter));
  max-width:calc(780px - 2 * var(--trench-viewer-gutter));
  margin:0 auto;
  padding:var(--trench-viewer-inset);
  border:1px solid #a5cf4847;
  text-align:left;
}
.trench-viewer240 > .et-viewer-head > div {
  min-width:0;
}
.trench-viewer240 > .et-viewer-head .et-viewer-kicker {
  display:block;
  margin:0;
  line-height:1.6;
  white-space:normal;
  overflow-wrap:anywhere;
}
.trench-viewer240 > .et-viewer-head h2 {
  max-width:none;
  margin:6px 0 0;
  text-align:left;
  white-space:normal;
  overflow-wrap:anywhere;
}
.trench-viewer240 > .et-viewer-head > .et-close {
  position:static;
  align-self:start;
  width:44px;
  height:44px;
  min-width:44px;
  min-height:44px;
  margin:0;
  padding:0;
  line-height:1;
}
@media (max-width:1000px) {
  .trench-viewer240 {--trench-viewer-inset:14px}
}
@media (max-width:600px) {
  .trench-viewer240 {--trench-viewer-gutter:10px}
}


/* Source: assets/cimentacion-lectura-v254.css */
/* Keep reading guidance outside the card background and align it with the copy. */
body[data-foundation] #ecko .front-reading-hint252 {
  display:block;box-sizing:border-box;max-width:none;
  margin:28px 0 18px!important;padding:0 clamp(22px,4vw,38px);
  background:none;border:0;color:#b8c8d0;font-size:12px;line-height:1.75;
  text-align:left;letter-spacing:0;
}
body[data-foundation] #ecko .front-reading-hint252[hidden] {display:none!important}
body[data-foundation] #ecko #frentes-content250 {margin-top:0}
body[data-foundation] #ecko .proy .front-summary252 {
  position:relative;border:0!important;padding:0!important;
}
body[data-foundation] #ecko .proy .front-summary252::before {
  content:'';position:absolute;left:-12px;top:0;bottom:0;width:3px;
  background:#91ca43;opacity:0;transition:opacity .2s ease;pointer-events:none;
}
body[data-foundation] #ecko .proy.is-current252 .front-summary252::before {opacity:1}
body[data-foundation] #ecko .proy .front-summary252 h3 {
  font-size:clamp(21px,2.3vw,31px)!important;line-height:1.35;
}
.front-body252.front-reveal254 {animation:front-reveal254 .22s ease-out both}
@keyframes front-reveal254 {from{opacity:0}to{opacity:1}}
html.front-positioning252,html.front-positioning252 body {overflow-anchor:none!important}

/* The rule, caption and gallery control each have their own spacing. */
body[data-foundation] #ecko .proy .front-layout64 > .et-gallery-bar {
  display:grid!important;grid-template-columns:minmax(0,1fr) auto;
  padding:18px 0 4px!important;margin:0!important;gap:16px!important;
  align-items:center!important;min-width:0;
}
body[data-foundation] #ecko .proy .front-layout64 > .et-gallery-bar > span {
  max-width:none;min-width:0;line-height:1.65;
}
body[data-foundation] #ecko .proy .et-gallery-open {margin:0;min-height:44px}

/* The trench picker controls resources as well as visibility. */
#zanjeo .trench-view-picker254 {margin:24px 0 28px;padding:0!important;border:0}
#zanjeo .trench-view-picker254 h4 {margin:0 0 8px;color:white;font-size:18px;line-height:1.5}
#zanjeo .trench-view-picker254 > p {margin:0 0 16px;max-width:none;color:#b8c8d0;font-size:12px;line-height:1.7}
#zanjeo .trench-view-picker254 .front-view-status250 {margin:14px 0 0;font-size:11px;min-height:1.7em}
#zanjeo .trench-view-picker254 .front-view-options250 {grid-template-columns:repeat(3,minmax(0,1fr))}
#zanjeo .trench-view-picker254 .front-view-options250 button {height:100%;align-items:flex-start}
#zanjeo .trench-view-picker254 .front-view-dot250 {margin-top:3px}
#zanjeo .trench-projects239[hidden],#zanjeo .trench-project-index239[hidden],
#zanjeo .trench-project-body250 [hidden] {display:none!important}
#zanjeo[data-trench-view="gallery"] .trench-project-layout239 {grid-template-columns:minmax(0,1fr)}
#zanjeo .trench-static-specs254 {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:18px 0 0}
#zanjeo .trench-static-specs254 > div {min-width:0}
#zanjeo .trench-static-specs254 dt {font-size:11px;line-height:1.7;color:#b8c8d0}
#zanjeo .trench-static-specs254 dd {margin:5px 0 0;font-size:25px;line-height:1.3;font-weight:700;color:#c5ea77}
@media(min-width:1050px) {
  body[data-foundation] #ecko .front-reading-hint252 {padding-inline:36px}
}
@media(max-width:850px) {
  #zanjeo .trench-view-picker254 .front-view-options250 {grid-template-columns:minmax(0,1fr)}
}
@media(max-width:600px) {
  body[data-foundation] #ecko .front-reading-hint252 {padding-inline:18px}
  body[data-foundation] #ecko .proy .front-layout64 > .et-gallery-bar {grid-template-columns:minmax(0,1fr);gap:14px!important}
  body[data-foundation] #ecko .proy .et-gallery-open {justify-self:start}
}
@media(prefers-reduced-motion:reduce) {
  .front-body252.front-reveal254 {animation:none}
  body[data-foundation] #ecko .proy .front-summary252::before {transition:none}
}


/* Source: assets/diagramas-interfaz-v255.css */
/* One spacing system for the inline diagrams and their expanded viewers. */
body[data-foundation] {
  --diagram-inset255:clamp(18px,2.4vw,28px);
  --diagram-ink255:#142a32;
  --diagram-accent255:#b6de65;
  --diagram-expand255:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 3H3v5M16 3h5v5M21 16v5h-5M8 21H3v-5M3 3l6 6M21 3l-6 6M21 21l-6-6M3 21l6-6'/%3E%3C/svg%3E");
  --diagram-replay255:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 5v5h5M3.5 10a8 8 0 1 1 .7 6'/%3E%3C/svg%3E");
  --diagram-pause255:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M8 5v14M16 5v14'/%3E%3C/svg%3E");
  --diagram-play255:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m8 4 12 8-12 8Z'/%3E%3C/svg%3E");
  --diagram-done255:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 4 4L19 6'/%3E%3C/svg%3E");
}

/* Text follows the same inset above and below every drawing. */
body[data-foundation] #ecko .soil-feature.soil-spaced250,
body[data-foundation] .et-diagram-view .soil-feature.soil-spaced250 {
  padding:24px var(--diagram-inset255)!important;
  text-align:left;
}
body[data-foundation] #ecko .soil-spaced250 .soil-heading,
body[data-foundation] .et-diagram-view .soil-spaced250 .soil-heading {
  align-items:flex-start;gap:10px 24px;margin:0;padding:0;
  text-align:left;
}
body[data-foundation] .soil-spaced250 .soil-heading strong {
  display:block;font-size:17px;line-height:1.5;
}
body[data-foundation] .soil-spaced250 .soil-heading > span {
  display:block;font-size:12px;line-height:1.7;
}
body[data-foundation] #ecko .soil-spaced250 .soil-note,
body[data-foundation] .et-diagram-view .soil-spaced250 .soil-note {
  margin:24px 0 0!important;padding:0;
  font-size:12px!important;line-height:1.8!important;text-align:left;
}
body[data-foundation] .soil-spaced250 :is(.stabilizer-circuit,.casing-diagram) figcaption {
  padding:0;margin:0 0 18px;text-align:left;line-height:1.65;
}
body[data-foundation] .soil-spaced250 :is(.stabilizer-circuit,.casing-diagram) figcaption span {
  display:block;margin-top:8px;line-height:1.7;
}

/* Project headings and bodies use matching horizontal gutters. */
body[data-foundation] #ecko #sistema-zanjeo > summary {padding:24px}
body[data-foundation] #ecko #sistema-zanjeo > .zanjeo-panel240 {padding:0 24px 28px}
body[data-foundation] #zanjeo .trench-project-disclosure250 > summary {
  padding:24px!important;
}
body[data-foundation] #zanjeo .trench-project-body250 {padding:0 24px 28px}
body[data-foundation] #zanjeo .trench-project-heading239 h3 {
  margin:0;text-align:left;line-height:1.5;
}
body[data-foundation] .trench-diagram240 {
  padding:24px var(--diagram-inset255);border-radius:12px;
}
body[data-foundation] .trench-diagram240 .trench-diagram-heading240 {
  display:flex;flex-direction:column;align-items:flex-start;gap:8px;
  margin:0;padding:0 0 20px;text-align:left;
}
body[data-foundation] .trench-diagram240 .trench-diagram-heading240 strong {
  font-size:18px;line-height:1.5;
}
body[data-foundation] .trench-diagram240 .trench-diagram-heading240 > span {
  font-size:12px;line-height:1.7;
}
body[data-foundation] .trench-diagram240 .trench-view-label240 {
  margin:18px 0 12px;gap:8px 20px;font-size:10px;line-height:1.7;
}
body[data-foundation] .trench-diagram240 .trench-section240 {margin-block:24px;gap:24px}
body[data-foundation] .trench-diagram240 .trench-dimensions240 dt {font-size:11px;line-height:1.7}
body[data-foundation] .trench-diagram240 .trench-dimensions240 > div {gap:8px;min-width:0}
body[data-foundation] .trench-diagram240 .trench-sequence240 {gap:12px;margin:24px 0 14px}
body[data-foundation] :is(#zanjeo,.trench-viewer240) .trench-diagram240 .trench-status240 {
  margin:16px 0 0!important;padding:0;font-size:12px;line-height:1.75;text-align:left;
}
body[data-foundation] :is(#zanjeo,.trench-viewer240) .trench-diagram240 .trench-diagram-note240 {
  margin:18px 0 0!important;padding:0;font-size:10px;line-height:1.8;text-align:left;
}

/* A clear primary action, with secondary playback controls on separate rows. */
body[data-foundation] #ecko .soil-feature.soil-spaced250 .et-diagram-open,
body[data-foundation] .trench-diagram240 .trench-controls240 button {
  box-sizing:border-box;display:flex!important;align-items:center;justify-content:center;
  gap:10px;width:100%!important;max-width:100%!important;min-width:0;
  min-height:52px;height:auto;padding:14px 18px!important;margin:0!important;
  border:1px solid #6a8e87!important;border-radius:10px;
  background:#233c4b!important;color:#e0ebdd!important;
  font:600 13px/1.6 'Poppins',system-ui,sans-serif!important;
  text-align:center;white-space:normal!important;overflow-wrap:break-word;
  text-decoration:none;cursor:pointer;touch-action:manipulation;
  translate:none!important;scale:1!important;
  transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease;
}
body[data-foundation] #ecko .soil-feature.soil-spaced250 .et-diagram-open,
body[data-foundation] .trench-diagram240 .trench-controls240 [data-enlarge] {
  color:var(--diagram-ink255)!important;background:var(--diagram-accent255)!important;
  border-color:#caec8c!important;box-shadow:0 3px 0 #6d913d,0 6px 16px #08150e24;
}
body[data-foundation] #ecko .soil-feature.soil-spaced250 .et-diagram-open {
  margin:28px 0 4px!important;
}
body[data-foundation] .trench-diagram240.is-ready240 .trench-controls240 {
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));
  gap:12px;margin:24px 0 4px;padding:0;align-items:stretch;
}
body[data-foundation] .trench-diagram240 .trench-controls240 [data-enlarge] {grid-column:1/-1}
body[data-foundation] #ecko .soil-feature .et-diagram-open::before,
body[data-foundation] .trench-diagram240 .trench-controls240 button::before {
  content:'';display:block;flex:0 0 18px;width:18px;height:18px;
  background:currentColor;
  -webkit-mask:var(--diagram-icon255,var(--diagram-expand255)) center/contain no-repeat;
  mask:var(--diagram-icon255,var(--diagram-expand255)) center/contain no-repeat;
}
body[data-foundation] .trench-controls240 [data-replay] {--diagram-icon255:var(--diagram-replay255)}
body[data-foundation] .trench-controls240 [data-pause] {--diagram-icon255:var(--diagram-pause255)}
body[data-foundation] .trench-controls240 [data-pause][data-play-state="paused"] {--diagram-icon255:var(--diagram-play255)}
body[data-foundation] .trench-controls240 [data-pause]:disabled {--diagram-icon255:var(--diagram-done255)}
body[data-foundation] .trench-diagram240 .trench-controls240 button:disabled {
  opacity:1;background:#1c303d!important;color:#a8bcbf!important;
  border-color:#405865!important;box-shadow:none;cursor:default;
}
body[data-foundation] #ecko .soil-feature .et-diagram-open:focus-visible,
body[data-foundation] .trench-diagram240 .trench-controls240 button:focus-visible {
  outline:3px solid #f0ffc9;outline-offset:4px;
}
@media(hover:hover) {
  body[data-foundation] #ecko .soil-feature.soil-spaced250 .et-diagram-open:hover,
  body[data-foundation] .trench-diagram240 .trench-controls240 [data-enlarge]:hover {
    background:#c9ed8a!important;border-color:#e0f7b9!important;
  }
  body[data-foundation] .trench-diagram240 .trench-controls240 button:not([data-enlarge]):not(:disabled):hover {
    background:#2c4958!important;border-color:#abd37e!important;
  }
}

/* Gallery labels, rules and buttons each have their own space. */
body[data-foundation] #ecko .proy .front-layout64 > .et-gallery-bar,
body[data-foundation] #ecko #zanjeo .et-gallery-bar {
  box-sizing:border-box;display:grid!important;grid-template-columns:minmax(0,1fr) auto;
  align-items:center!important;gap:18px!important;
  margin:0!important;padding:24px 0 4px!important;
}
body[data-foundation] #ecko :is(.proy,#zanjeo) .et-gallery-bar > span {
  min-width:0;max-width:none;text-align:left;line-height:1.8;
}
body[data-foundation] #ecko :is(.proy,#zanjeo) .et-gallery-open {
  box-sizing:border-box;min-height:48px;padding:13px 18px!important;margin:0!important;
  border:1px solid #82a663!important;border-radius:10px;
  color:#c8e89d!important;background:#253c43!important;
  font:600 12px/1.6 'Poppins',system-ui,sans-serif!important;
  white-space:normal!important;text-align:center;translate:none!important;scale:1!important;
}
body[data-foundation] #ecko #zanjeo .trench-gallery239 {margin-top:20px}
body[data-foundation] #ecko :is(.proy,#zanjeo) .et-gallery-bar[hidden] {display:none!important}

/* View selectors share the same control proportions and text alignment. */
body[data-foundation] #ecko .front-view-options250 button {
  box-sizing:border-box;gap:16px;padding:18px 20px;
  border-radius:10px;min-height:88px;align-items:flex-start;text-align:left;
  translate:none!important;scale:1!important;
}
body[data-foundation] #ecko .front-view-options250 button > span:last-child {gap:8px}
body[data-foundation] #ecko .front-view-options250 .front-view-dot250 {margin-top:3px}
body[data-foundation] #ecko .front-view-options250 strong {line-height:1.65}
body[data-foundation] #ecko .front-view-options250 small {font-size:12px;line-height:1.7}

/* The header and drawing have identical outer edges and identical text insets.
   Both diagram viewers scroll as one panel, keeping the close control visible. */
body[data-foundation] .et-viewer:is(.et-diagram-view,.trench-viewer240) {
  --diagram-panel255:640px;
  box-sizing:border-box;width:min(860px,calc(100vw - 24px));
  max-width:calc(100vw - 24px);padding:12px;
  overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;
}
body[data-foundation] .et-viewer.trench-viewer240 {--diagram-panel255:780px}
body[data-foundation] .et-viewer:is(.et-diagram-view,.trench-viewer240)[open] {display:block}
body[data-foundation] .et-viewer:is(.et-diagram-view,.trench-viewer240) > .et-viewer-head {
  position:sticky;top:0;z-index:10;box-sizing:border-box;
  display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:start;gap:14px;
  width:100%;max-width:var(--diagram-panel255);margin:0 auto 16px;
  padding:24px var(--diagram-inset255);border:1px solid #668449;
  border-radius:12px;background:#183247;text-align:left;
}
body[data-foundation] .et-viewer:is(.et-diagram-view,.trench-viewer240) > .et-viewer-head > div {min-width:0}
body[data-foundation] .et-viewer:is(.et-diagram-view,.trench-viewer240) .et-viewer-kicker {
  display:block;margin:0;padding:0;font-size:10px;line-height:1.8;
  letter-spacing:.1em;color:#cfdfa8;white-space:normal;overflow-wrap:anywhere;
}
body[data-foundation] .et-viewer:is(.et-diagram-view,.trench-viewer240) .et-viewer-head h2 {
  margin:10px 0 0;padding:0;max-width:none;color:#f4f8f6;
  font-size:clamp(17px,2.2vw,24px);line-height:1.5;text-align:left;
  white-space:normal;overflow-wrap:anywhere;
}
body[data-foundation] .et-viewer:is(.et-diagram-view,.trench-viewer240) .et-close {
  position:static;align-self:start;box-sizing:border-box;display:grid;place-items:center;
  width:44px;height:44px;min-width:44px;min-height:44px;margin:0;padding:0;
  border:1px solid #9abc6b;border-radius:12px;background:#2a4553;color:#f2f9e9;
  font-size:24px;line-height:1;translate:none!important;scale:1!important;
}
body[data-foundation] .et-viewer:is(.et-diagram-view,.trench-viewer240) .et-close:focus-visible {
  outline:2px solid #d6f79b;outline-offset:3px;
}
body[data-foundation] .et-viewer.et-diagram-view .et-viewer-stage {
  display:block;width:100%;height:auto;min-height:0;margin:0;padding:0;
}
body[data-foundation] .et-viewer.et-diagram-view .et-viewer-content,
body[data-foundation] .et-viewer.trench-viewer240 .trench-viewer-content240 {
  box-sizing:border-box;width:100%;max-width:var(--diagram-panel255);
  height:auto;margin:0 auto;padding:0;overflow:visible;background:transparent;border-radius:0;
}
body[data-foundation] .et-viewer.et-diagram-view .soil-feature.soil-spaced250 {
  width:100%;max-width:var(--diagram-panel255)!important;
  margin:0!important;border:1px solid #99bd814d;border-radius:12px;
}
body[data-foundation] .et-viewer.et-diagram-view .et-viewer-caption {
  box-sizing:border-box;max-width:var(--diagram-panel255);margin:20px auto 8px;
  padding:0 var(--diagram-inset255);font-size:11px;line-height:1.8;text-align:left;
}
@media(max-width:600px) {
  body[data-foundation] #ecko #sistema-zanjeo > summary {padding:20px 18px}
  body[data-foundation] #ecko #sistema-zanjeo > .zanjeo-panel240 {padding:0 18px 24px}
  body[data-foundation] #zanjeo .trench-project-disclosure250 > summary {padding:22px 18px!important}
  body[data-foundation] #zanjeo .trench-project-body250 {padding:0 18px 24px}
  body[data-foundation] #ecko .proy .front-layout64 > .et-gallery-bar,
  body[data-foundation] #ecko #zanjeo .et-gallery-bar {grid-template-columns:minmax(0,1fr)}
  body[data-foundation] #ecko :is(.proy,#zanjeo) .et-gallery-open {justify-self:stretch;width:100%}
  body[data-foundation] .trench-diagram240 .trench-dimensions240 {gap:12px}
}
@media(prefers-reduced-motion:reduce) {
  body[data-foundation] #ecko .soil-feature .et-diagram-open,
  body[data-foundation] .trench-diagram240 .trench-controls240 button {transition:none}
}


/* Source: assets/cimentacion-navegacion-v256.css */
/* Programmatic compensation must be immediate; only explicit travel is eased. */
html.foundation-layout256,html.foundation-layout256 body,
html.foundation-travel256,html.foundation-travel256 body {
  scroll-behavior:auto!important;overflow-anchor:none!important;
}
body[data-foundation] #ecko .sistemas,
body[data-foundation] #ecko #frentes-content250 {overflow-anchor:none}
body[data-foundation] #ecko .front-summary252 h3 a {
  color:#f3f7f4!important;text-decoration:none;cursor:pointer;
  -webkit-tap-highlight-color:transparent;touch-action:manipulation;
  transition:color .18s ease;
}
body[data-foundation] #ecko .front-summary252 h3 a .t2 {color:inherit!important}
body[data-foundation] #ecko .proy.is-current252 .front-summary252 h3 a {color:#a8d443!important}
body[data-foundation] #ecko .front-summary252 h3 a:focus-visible {
  outline:2px solid #c8eb8b;outline-offset:7px;border-radius:3px;
}
body[data-foundation] #ecko .et-project-index a[aria-current="true"] {
  color:#cbeb9b;border-color:#9ccb58;background:#a8d44312;
}
body[data-foundation] #ecko .trench-project-disclosure250 > summary {touch-action:manipulation}
body[data-foundation] #ecko .trench-project-disclosure250 > summary h3 {
  color:#f3f7f4;transition:color .18s ease;
}
body[data-foundation] #ecko .trench-project-disclosure250[open] > summary h3 {color:#a8d443}
@media(hover:hover) {
  body[data-foundation] #ecko .front-summary252 h3 a:hover {text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px}
}
@media(prefers-reduced-motion:reduce) {
  body[data-foundation] #ecko .front-summary252 h3 a,
  body[data-foundation] #ecko .trench-project-disclosure250 > summary h3 {transition:none}
}


/* Source: assets/cimentacion-navegacion-v257.css */
/* A closed offscreen section keeps its height until scroll compensation is
   confirmed. No height animation or visible spacer is inserted in the view. */
body[data-foundation] .foundation-height-hold257 {
  overflow-anchor:none!important;
  transition:none!important;
}


/* Source: assets/cimentacion-compacta-v257.css */
/* Project names are the controls; the page never changes their size on selection. */
body[data-foundation] #ecko .et-project-index a,
body[data-foundation] #ecko .et-project-index a:hover {color:#f3f7f4!important}
body[data-foundation] #ecko .et-project-index a[aria-current="true"] {color:#a8d443!important}
body[data-foundation] #ecko #zanjeo .trench-project239 {
  margin:0;padding:0;border-bottom:1px solid #9aafba38;
}
body[data-foundation] #ecko #zanjeo .trench-project-disclosure250 {
  background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible;
}
body[data-foundation] #ecko #zanjeo .trench-project-disclosure250 > summary {
  position:relative;cursor:default;background:transparent;padding:22px 18px!important;
}
body[data-foundation] #ecko #zanjeo .trench-project-disclosure250 > summary::after,
body[data-foundation] #ecko #zanjeo .trench-project-cue250 {display:none!important}
body[data-foundation] #ecko #zanjeo .trench-project-disclosure250[open] > summary::before {
  content:'';position:absolute;inset:22px auto 22px 0;width:3px;background:#a8d443;
}
body[data-foundation] #ecko #zanjeo .trench-project-heading239 {align-items:flex-start;flex-direction:column;justify-content:flex-start}
body[data-foundation] #ecko #zanjeo .trench-project-heading239 > div {flex:0 1 auto;width:100%}
body[data-foundation] #ecko #zanjeo .trench-type239 {align-self:flex-start;justify-self:start;margin-inline:0}
@media(max-width:1000px) {
  body[data-foundation] #ecko #zanjeo .trench-project-select257 {
    display:grid;grid-template-columns:minmax(0,1fr) auto;width:100%;min-width:0;
  }
}
@media(min-width:1001px) {
  body[data-foundation] #ecko #zanjeo .trench-project-heading239 {
    flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:space-between;
  }
  body[data-foundation] #ecko #zanjeo .trench-project-heading239 > div {flex:1 1 auto;width:auto}
  body[data-foundation] #ecko #zanjeo .trench-type239 {align-self:center}
}
body[data-foundation] #ecko #zanjeo .trench-project-select257 {
  appearance:none;display:inline-flex;align-items:center;gap:14px;
  min-height:44px;max-width:100%;margin:0;padding:4px 0;border:0;border-radius:0;
  background:none;box-shadow:none;color:#f3f7f4!important;
  font:inherit;letter-spacing:inherit;line-height:1.5;text-align:left;
  cursor:pointer;touch-action:manipulation;translate:none!important;scale:1!important;
  transition:color .18s ease;
}
body[data-foundation] #ecko #zanjeo .trench-project-select257::after {
  content:'+';font:400 21px/1 system-ui;flex:none;padding:4px;opacity:.8;
}
body[data-foundation] #ecko #zanjeo .trench-project-select257[aria-expanded="true"] {color:#a8d443!important}
body[data-foundation] #ecko #zanjeo .trench-project-select257[aria-expanded="true"]::after {content:'−'}
body[data-foundation] #ecko #zanjeo .trench-project-select257:focus-visible {outline:2px solid #c5ea77;outline-offset:6px}
body[data-foundation] #ecko #zanjeo .trench-project-body250 {padding:0 18px 24px}
body[data-foundation] #ecko #zanjeo .trench-end239 {
  flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:4px;
  margin-top:24px;padding-bottom:4px;
}
body[data-foundation] #ecko #zanjeo .trench-end239 p {margin:0!important}
body[data-foundation] #ecko #zanjeo .trench-collapse240 {
  width:fit-content;max-width:100%;justify-content:flex-start;gap:24px;border-radius:8px;
  padding:12px 18px;min-height:46px;margin-top:20px;
}

/* Playback has one finite clock, including its enlarged version. */
body[data-foundation] .soil-feature.drill-controlled257 .bore-ring,
body[data-foundation] .soil-feature.drill-controlled257 .soil-pile {animation:none!important;transition:none!important}
body[data-foundation] .soil-feature.drill-controlled257 .bore-ring {opacity:0}
body[data-foundation] .drill-controls257 {
  display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:18px;
}
body[data-foundation] .drill-controls257 button {
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  width:fit-content;max-width:100%;min-height:46px;padding:12px 18px;margin:0;
  border:1px solid #719583;border-radius:9px;background:#233c4b;color:#e0ebdd;
  font:600 12px/1.65 'Poppins',system-ui,sans-serif;text-align:left;
  cursor:pointer;touch-action:manipulation;translate:none!important;scale:1!important;
}
body[data-foundation] .drill-controls257 button::before {
  content:'';width:17px;height:17px;flex:0 0 17px;background:currentColor;
  -webkit-mask:var(--diagram-icon255) center/contain no-repeat;
  mask:var(--diagram-icon255) center/contain no-repeat;
}
body[data-foundation] .drill-controls257 [data-drill-replay] {--diagram-icon255:var(--diagram-replay255)}
body[data-foundation] .drill-controls257 [data-drill-pause] {--diagram-icon255:var(--diagram-pause255)}
body[data-foundation] .drill-controls257 [data-play-state="paused"] {--diagram-icon255:var(--diagram-play255)}
body[data-foundation] .drill-controls257 button:disabled {color:#a8bcbf;background:#1c303d;border-color:#405865;cursor:default}
body[data-foundation] .drill-controls257 [data-drill-pause]:disabled {--diagram-icon255:var(--diagram-done255)}
body[data-foundation] .drill-controls257 button:focus-visible {outline:2px solid #e1ffc0;outline-offset:4px}
body[data-foundation] .drill-progress257 {height:2px;background:#8eb58c30;overflow:hidden;margin-top:20px}
body[data-foundation] .drill-progress257 i {display:block;width:100%;height:100%;background:#a8d443;transform-origin:left;transform:scaleX(0)}
body[data-foundation] #ecko .soil-feature.soil-spaced250 .et-diagram-open,
body[data-foundation] .trench-diagram240 .trench-controls240 button {
  width:fit-content!important;max-width:100%!important;min-height:46px;padding:12px 18px!important;
  justify-content:flex-start;text-align:left;font-size:12px!important;
}
body[data-foundation] .trench-diagram240.is-ready240 .trench-controls240 {
  display:flex;flex-wrap:wrap;align-items:center;gap:12px;
}
body[data-foundation] #ecko .soil-feature.soil-spaced250 .et-diagram-open {margin:18px 0 4px!important}

/* The title scrolls away with the diagram instead of covering it. */
body[data-foundation] .et-viewer:is(.et-diagram-view,.trench-viewer240) > .et-viewer-head {
  position:static;top:auto;z-index:auto;
}
body[data-foundation] .et-viewer:is(.et-diagram-view,.trench-viewer240) .viewer-close-bottom257 {
  display:block;width:fit-content;max-width:100%;min-height:46px;margin:24px auto 8px;
  padding:12px 20px;border:1px solid #8dbd78;border-radius:9px;background:#233c4b;color:#e8f4dd;
  font:600 13px/1.6 'Poppins',system-ui,sans-serif;cursor:pointer;
}
body[data-foundation] .et-viewer:not(.et-diagram-view):not(.trench-viewer240) .viewer-close-bottom257 {display:none}

@media(min-width:1001px) {
  /* A bounded reading area, rather than stretching six sheets across a monitor. */
  body[data-foundation] #ecko #sistema-zanjeo > .zanjeo-panel240 {padding:0 28px 28px}
  body[data-foundation] #ecko #zanjeo {max-width:1120px;margin-inline:0;padding-top:10px}
  body[data-foundation] #ecko #zanjeo .trench-intro239 {
    display:grid;grid-template-columns:minmax(240px,.75fr) minmax(0,1.25fr);
    align-items:start;gap:28px;margin-bottom:28px;max-width:980px;
  }
  body[data-foundation] #ecko #zanjeo h2 {font-size:34px;line-height:1.18}
  body[data-foundation] #ecko #zanjeo .trench-intro-copy239 {max-width:60ch;justify-self:start}
  body[data-foundation] #ecko #zanjeo .trench-intro-copy239 p {font-size:13px;line-height:1.75;margin:0 0 12px!important}
  body[data-foundation] #ecko #zanjeo .trench-works-heading239 {margin-bottom:18px}
  body[data-foundation] #ecko #zanjeo .trench-works-heading239 h3 {font-size:24px;line-height:1.4}
  body[data-foundation] #ecko #zanjeo .trench-work-total239 {font-size:36px}
  body[data-foundation] #ecko #zanjeo .trench-view-picker254 {max-width:980px;margin:20px 0 24px}
  body[data-foundation] #ecko .front-view-options250 button {padding:16px 18px;min-height:76px;gap:12px}
  body[data-foundation] #ecko .front-view-options250 small {font-size:11px;line-height:1.6}
  body[data-foundation] #ecko #zanjeo .trench-project-disclosure250 > summary {padding:20px 24px!important}
  body[data-foundation] #ecko #zanjeo .trench-project-body250 {padding:0 24px 28px}
  body[data-foundation] #ecko #zanjeo .trench-project-heading239 h3 {font-size:22px}
  body[data-foundation] #ecko #zanjeo .trench-type239 {padding:7px 10px}
  body[data-foundation] #ecko #zanjeo .trench-project-layout239 {
    grid-template-columns:minmax(0,1fr) minmax(0,460px);gap:28px;padding-top:22px;
  }
  body[data-foundation] #ecko #zanjeo .trench-project-copy239 {padding-top:0;max-width:62ch}
  body[data-foundation] #ecko #zanjeo .trench-volume239 dd {font-size:36px}
  body[data-foundation] #ecko #zanjeo .trench-diagram240 {padding:20px}
  body[data-foundation] #ecko #zanjeo .trench-side240 {max-height:216px}
  body[data-foundation] #ecko #zanjeo .trench-diagram240 .trench-section240 {margin-block:18px;gap:18px}
  body[data-foundation] #ecko #zanjeo .trench-diagram240 .trench-sequence240 {margin:18px 0 12px}
  body[data-foundation] #ecko #zanjeo .trench-gallery239 {max-width:760px;margin-inline:0}
  body[data-foundation] #ecko #zanjeo .trench-gallery239:not(.trench-gallery-three239) img {max-height:320px;width:auto;max-width:100%;object-fit:contain}
  body[data-foundation] #ecko #zanjeo .trench-gallery-three239 {max-width:680px;aspect-ratio:1.9}
  body[data-foundation] #ecko #zanjeo .trench-project-body250 > .et-gallery-bar {max-width:760px}
  body[data-foundation] #ecko #zanjeo[data-trench-view="gallery"] .trench-project-layout239 {grid-template-columns:minmax(0,1fr);max-width:760px}

  body[data-foundation] #ecko #frentes-content250 {max-width:1120px;margin-inline:0}
  body[data-foundation] #ecko #frentes-content250 .proy {padding:24px 28px 28px}
  body[data-foundation] #ecko #frentes-content250 .front-summary252 h3 {font-size:25px!important}
  body[data-foundation] #ecko #frentes-content250 .front-summary252 .loc {font-size:10px;margin-bottom:8px!important}
  body[data-foundation] #ecko #frentes-content250 .front-body252 > .desc {max-width:82ch;font-size:14px;line-height:1.8;margin:12px 0 24px}
  body[data-foundation] #ecko .proy .front-layout64 {
    grid-template-columns:minmax(0,420px) minmax(0,1fr)!important;
    grid-template-rows:auto 1fr!important;gap:20px 28px!important;
  }
  body[data-foundation] #ecko .proy .front-layout64 > .foundation-metrics {grid-column:1!important;grid-row:1/3!important;max-width:420px}
  body[data-foundation] #ecko .proy .front-layout64 > .et-gallery-bar {grid-column:2!important;grid-row:1!important;padding-top:20px!important}
  body[data-foundation] #ecko .proy .front-layout64 > .proy-fotos.gallery-row68 {
    grid-column:2!important;grid-row:2!important;width:100%!important;justify-self:start!important;
  }
  body[data-foundation] #ecko .proy .front-layout64 .gallery-row68 img,
  body[data-foundation] #ecko .proy .front-layout64 .gallery-row68 img:is(:hover,:focus-visible) {
    height:auto!important;max-height:280px!important;width:100%!important;object-fit:contain!important;
    transform:none!important;filter:none!important;box-shadow:none!important;transition:none!important;
  }
  body[data-foundation] #ecko .soil-feature.soil-spaced250 {padding:20px var(--diagram-inset255)!important}
  body[data-foundation] #ecko .proy .soil-feature.soil-inside252 .soil-section {
    --rig-width241:96px;--rig-height241:144px;--rig-axis241:18.514286px;
    height:240px!important;min-height:240px!important;
    margin:calc(var(--rig-height241) + 24px) 0 0!important;
  }
  body[data-foundation] #ecko .soil-spaced250 .soil-heading {gap:6px 18px}
  body[data-foundation] #ecko .soil-spaced250 .soil-heading strong {font-size:16px}
  body[data-foundation] #ecko .soil-spaced250 .soil-reference250 {margin:14px 0 18px}
  body[data-foundation] #ecko .soil-spaced250 :is(.stabilizer-circuit,.casing-diagram) {margin:18px 0!important;padding-top:16px}
  body[data-foundation] #ecko .soil-spaced250 :is(.stabilizer-circuit,.casing-diagram) figcaption {font-size:12px;line-height:1.6;margin-bottom:12px}
  body[data-foundation] #ecko .soil-spaced250 :is(.stabilizer-circuit,.casing-diagram) figcaption span {font-size:11px;margin-top:4px}
  body[data-foundation] #ecko .soil-feature.soil-spaced250 .soil-note {margin-top:18px!important;font-size:11px!important;line-height:1.75!important}
  body[data-foundation] #ecko .front-reading-hint252 {padding-inline:28px}
  body[data-foundation] #ecko[data-fronts-view="diagram"] .proy .front-layout64,
  body[data-foundation] #ecko[data-fronts-view="gallery"] .proy .front-layout64 {grid-template-columns:minmax(0,1fr)!important}
  body[data-foundation] #ecko[data-fronts-view="gallery"] .proy .front-layout64 > :is(.et-gallery-bar,.proy-fotos.gallery-row68) {grid-column:1!important;max-width:880px;justify-self:start}
  body[data-foundation] #ecko[data-fronts-view="diagram"] .proy .front-layout64 > .foundation-metrics {max-width:420px}
}
@media(hover:hover) {
  body[data-foundation] #ecko #zanjeo .trench-project-select257:hover {text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}
  body[data-foundation] .drill-controls257 button:not(:disabled):hover {background:#2c4958;border-color:#abd37e}
}
@media(prefers-reduced-motion:reduce) {
  body[data-foundation] #ecko #zanjeo .trench-project-select257 {transition:none}
}


/* Source: assets/foundation-audit-v258.css */
/* Preserve the existing layout while preventing modal scrollbar shifts. */
html:has(body[data-foundation]) {scrollbar-gutter:stable}
body[data-foundation] .et-viewer {overscroll-behavior:contain}
/* A closed sheet stays closed even when older component rules set display. */
body[data-foundation] #ecko .front-body252[hidden],
body[data-foundation] #ecko .front-layout64 > [hidden],
body[data-foundation] #zanjeo .trench-project-body250 [hidden] {display:none!important}
/* Decorative labels must not leak from collapsed sheets into the reading tree. */
body[data-foundation] #ecko .front-body252[hidden] .bore-plan::after,
body[data-foundation] #frentes-content250[hidden] .bore-plan::after {content:none!important}


/* Source: assets/frentes-tarjetas-v260.css */
/* Clear project headings, with one stable selection target. */
body[data-foundation] #ecko #frentes-content250 {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  align-content:start;
  align-items:start;
  gap:12px;
}
body[data-foundation] #ecko #frentes-content250 > .proy {
  min-width:0;
  margin:0;
  padding:22px clamp(18px,2.4vw,28px)!important;
  border:1px solid #b2c8d42e!important;
  border-radius:10px;
  box-shadow:none;
}
body[data-foundation] #ecko #frentes-content250 > .proy.is-current252 {
  border-color:#a8d44380!important;
}
body[data-foundation] #ecko #frentes-content250 .front-summary252 {
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:64px;
  gap:12px;
  text-align:left;
}
body[data-foundation] #ecko #frentes-content250 .front-summary252::before {
  content:none;
}
body[data-foundation] #ecko #frentes-content250 .front-summary252 h3 {
  margin:0;
  min-width:0;
  overflow-wrap:break-word;
}
body[data-foundation] #ecko #frentes-content250 .front-summary252 h3 a {
  color:#a8d443!important;
}
body[data-foundation] #ecko #frentes-content250 .front-summary252 h3 .front-title-first260 {
  color:#f3f7f4!important;
  transition:color .18s ease;
}
body[data-foundation] #ecko #frentes-content250 .front-summary252 h3 a[aria-expanded="true"] .front-title-first260 {
  color:inherit!important;
}
body[data-foundation] #ecko #frentes-content250 .front-summary252 h3 .front-title-rest260 {
  color:inherit!important;
}

/* A compact year badge and a readable location/context column. */
body[data-foundation] #ecko #frentes-content250 .front-summary252 .loc.front-meta260 {
  display:grid;
  grid-template-columns:max-content minmax(0,1fr);
  align-items:center;
  gap:10px 12px;
  margin:0!important;
  min-width:0;
  font-family:'Poppins',system-ui,sans-serif;
  font-size:11px;
  font-weight:500;
  line-height:1.6;
  letter-spacing:.045em;
  text-transform:uppercase;
  color:#b5c6d0;
}
body[data-foundation] #ecko #frentes-content250 .front-meta-year260 {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  align-self:center;
  padding:5px 8px;
  border:1px solid #a8d44354;
  border-radius:5px;
  background:#a8d44310;
  color:#c8e98c;
  font-weight:700;
  line-height:1.3;
  letter-spacing:.025em;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
body[data-foundation] #ecko #frentes-content250 .front-meta-year260 svg {
  display:block;
  width:13px;
  height:13px;
  flex:0 0 13px;
}
body[data-foundation] #ecko #frentes-content250 .front-meta-context260 {
  min-width:0;
  overflow-wrap:anywhere;
}
body[data-foundation] #ecko #frentes-content250 .front-meta-location260 {
  color:#e1eaf0;
  font-weight:600;
}
body[data-foundation] #ecko #frentes-content250 .front-meta-status260 {
  color:#c8e98c;
}

/* Center the number, title and plus sign in every Systems header. */
body[data-foundation] #ecko .sistemas > .sistema > summary {
  align-items:center;
  align-content:center;
}
body[data-foundation] #ecko .sistemas > .sistema > summary > :is(.num,.sig,b,.zanjeo-access-copy249) {
  align-self:center;
}
body[data-foundation] #ecko .sistemas > .sistema > summary > :is(.num,.sig) {
  margin-block:0;
}
body[data-foundation] #ecko .sistemas > .sistema > summary > .num {
  padding-block:0;
}

@media(min-width:1001px) {
  body[data-foundation] #ecko #frentes-content250 .front-summary252 .loc.front-meta260 {
    font-size:12px;
  }
}
@media(prefers-reduced-motion:reduce) {
  body[data-foundation] #ecko #frentes-content250 .front-summary252 h3 .front-title-first260 {
    transition:none;
  }
}


/* Source: assets/cimentacion-escritorio-v261.css */
/* The neutral wrapper keeps the original reading order on small screens and in viewers. */
.soil-main261,.soil-methods261 {display:contents}

@media(min-width:1001px) {
  /* One centered workspace, with the same edges for picker, index and sheets. */
  body[data-foundation] #ecko :is(#elegir-vista-frentes,#frentes-index250,#frentes-content250,.front-reading-hint252) {
    width:100%;max-width:1440px;margin-inline:auto;box-sizing:border-box;
  }
  body[data-foundation] #ecko #frentes-content250 {background:transparent}
  body[data-foundation] #ecko .front-reading-hint252 {padding-inline:24px}
  body[data-foundation] #ecko #frentes-content250 > .proy {padding:24px!important}
  body[data-foundation] #ecko #frentes-content250 .front-summary252 {min-height:0;gap:10px}
  body[data-foundation] #ecko #frentes-content250 .front-body252 {
    display:grid;grid-template-columns:minmax(320px,360px) minmax(0,1fr);
    grid-template-rows:auto auto auto minmax(0,1fr);
    align-items:start;align-content:start;gap:18px 28px;
    margin-top:18px;padding-top:18px;border-top:1px solid #b2c8d426;
  }
  /* Only this presentational wrapper is flattened. The sheet retains its own
     measurable box for the existing scroll and automatic closing logic. */
  body[data-foundation] #ecko #frentes-content250 .front-layout64 {display:contents!important}
  body[data-foundation] #ecko #frentes-content250 .front-body252 > .desc {
    grid-column:2;grid-row:1;margin:0;max-width:78ch;
    font-size:14px;line-height:1.85;
  }
  body[data-foundation] #ecko #frentes-content250 .front-facts250 {
    grid-column:2;grid-row:2;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.4fr);
    gap:16px;margin:0;padding:16px 18px;
    border:1px solid #b2c8d426;border-radius:8px;background:#13273730;
  }
  body[data-foundation] #ecko #frentes-content250 .front-facts250 dt {
    font-size:11px;line-height:1.7;margin-bottom:6px;
  }
  body[data-foundation] #ecko #frentes-content250 .front-facts250 dd {
    font-size:21px;line-height:1.5;
  }
  body[data-foundation] #ecko #frentes-content250 .front-layout64 > .foundation-metrics {
    grid-column:1!important;grid-row:1/5!important;
    width:100%;max-width:none;min-width:0;
    border:0!important;background:transparent!important;
  }
  body[data-foundation] #ecko #frentes-content250 .front-layout64 > .et-gallery-bar {
    grid-column:2!important;grid-row:3!important;max-width:none;
    padding:0!important;border:0;gap:16px!important;
  }
  body[data-foundation] #ecko #frentes-content250 .front-layout64 > .gallery-row68 {
    grid-column:2!important;grid-row:4!important;
    width:min(100%,var(--gallery-cap261,100%))!important;
    max-width:100%!important;justify-self:start!important;align-self:start!important;
    margin:0!important;gap:8px!important;
  }
  body[data-foundation] #ecko #frentes-content250 .gallery-row68 img,
  body[data-foundation] #ecko #frentes-content250 .gallery-row68 img:is(:hover,:focus-visible) {
    height:auto!important;max-height:280px!important;max-width:100%!important;
    width:100%!important;object-fit:contain!important;
  }

  /* The machine and the strata stay compact; the measurement lanes are retained. */
  body[data-foundation] #ecko #frentes-content250 .soil-feature.soil-spaced250 {
    padding:18px!important;border-radius:10px;
  }
  body[data-foundation] #ecko #frentes-content250 .soil-feature .soil-heading {gap:6px 16px}
  body[data-foundation] #ecko #frentes-content250 .soil-feature .soil-heading strong {font-size:15px}
  body[data-foundation] #ecko #frentes-content250 .soil-feature .soil-heading > span {font-size:11px}
  body[data-foundation] #ecko #frentes-content250 .soil-feature .soil-classification {
    margin-top:12px;padding-block:10px;font-size:11px;gap:8px 12px;
  }
  body[data-foundation] #ecko #frentes-content250 .soil-feature.soil-inside252 .soil-section {
    --rig-width241:84px;--rig-height241:126px;--rig-axis241:16.2px;
    height:224px!important;min-height:224px!important;
    margin:calc(var(--rig-height241) + 18px) 0 0!important;
  }
  body[data-foundation] #ecko #frentes-content250 .soil-feature .soil-reference250 {margin:10px 0 0}
  body[data-foundation] #ecko #frentes-content250 .soil-feature .soil-note {
    margin:14px 0 0!important;font-size:11px!important;line-height:1.7!important;
  }
  body[data-foundation] #ecko #frentes-content250 .drill-progress257 {margin-top:14px}
  body[data-foundation] #ecko #frentes-content250 .drill-controls257 {gap:8px;margin-top:12px}
  body[data-foundation] #ecko #frentes-content250 .drill-controls257 button {
    min-height:44px;padding:10px 12px;font-size:11px;gap:7px;
  }
  body[data-foundation] #ecko #frentes-content250 .et-diagram-open {
    min-height:44px;padding:10px 14px!important;font-size:11px!important;
    margin:12px 0 0!important;
  }

  /* Gallery-only view: the brief and figures have a column of their own. */
  body[data-foundation] #ecko[data-fronts-view="gallery"] #frentes-content250 .front-body252 {
    grid-template-columns:minmax(260px,.85fr) minmax(0,1.4fr);
    grid-template-rows:auto minmax(0,1fr);
  }
  body[data-foundation] #ecko[data-fronts-view="gallery"] #frentes-content250 .front-body252 > .desc {grid-column:1;grid-row:1}
  body[data-foundation] #ecko[data-fronts-view="gallery"] #frentes-content250 .front-facts250 {
    grid-column:1;grid-row:2;grid-template-columns:repeat(2,minmax(0,1fr));
  }
  body[data-foundation] #ecko[data-fronts-view="gallery"] #frentes-content250 .front-facts250 > div:last-child {grid-column:1/-1}
  body[data-foundation] #ecko[data-fronts-view="gallery"] #frentes-content250 .front-layout64 > .et-gallery-bar {grid-row:1!important}
  body[data-foundation] #ecko[data-fronts-view="gallery"] #frentes-content250 .front-layout64 > .gallery-row68 {grid-row:2!important}

  /* Diagram-only view: a bounded drawing beside the technical brief. */
  body[data-foundation] #ecko[data-fronts-view="diagram"] #frentes-content250 {max-width:1120px}
  body[data-foundation] #ecko[data-fronts-view="diagram"] #frentes-content250 .front-body252 {
    grid-template-columns:minmax(300px,360px) minmax(0,1fr);
    grid-template-rows:auto minmax(0,1fr);
  }
  body[data-foundation] #ecko[data-fronts-view="diagram"] #frentes-content250 .front-layout64 > .foundation-metrics {grid-row:1/3!important}
  body[data-foundation] #ecko[data-fronts-view="diagram"] #frentes-content250 .front-facts250 {grid-template-columns:repeat(2,minmax(0,1fr))}
  body[data-foundation] #ecko[data-fronts-view="diagram"] #frentes-content250 .front-facts250 > div:last-child {grid-column:1/-1}

  /* Trenches use the same centered, balanced workspace. */
  body[data-foundation] #ecko #zanjeo {width:100%;max-width:1440px;margin-inline:auto}
  body[data-foundation] #ecko #zanjeo :is(.trench-intro239,.trench-view-picker254) {max-width:none}
  body[data-foundation] #ecko #zanjeo .trench-project-layout239 {
    grid-template-columns:minmax(320px,420px) minmax(0,1fr);gap:28px;
  }
  body[data-foundation] #ecko #zanjeo .trench-photo-area239 {min-width:0}
  body[data-foundation] #ecko #zanjeo .trench-project-description240 {max-width:75ch;margin-bottom:18px}
  body[data-foundation] #ecko #zanjeo .trench-photo-area239 > .et-gallery-bar {padding:16px 0 0!important;border:0}
  body[data-foundation] #ecko #zanjeo .trench-gallery239 {max-width:680px;margin:16px 0 0}
  body[data-foundation] #ecko #zanjeo .trench-gallery239:not(.trench-gallery-three239) img {
    max-height:280px;max-width:100%;width:auto;height:auto;object-fit:contain;
  }
  body[data-foundation] #ecko #zanjeo .trench-gallery-three239 {max-width:560px}
  body[data-foundation] #ecko #zanjeo[data-trench-view="gallery"] .trench-project-layout239 {
    grid-template-columns:minmax(240px,.65fr) minmax(0,1.35fr);max-width:none;
  }
  body[data-foundation] #ecko #zanjeo[data-trench-view="diagram"] .trench-project-layout239 {max-width:1120px;margin-inline:auto}
  body[data-foundation] #ecko #zanjeo .trench-diagram240 {padding:18px}
}

@media(min-width:1360px) {
  /* Supplemental schematics share the drawing's height instead of adding to it. */
  body[data-foundation] #ecko #frentes-content250 .front-has-methods261 .front-body252 {
    grid-template-columns:minmax(520px,1fr) minmax(0,1fr);
  }
  body[data-foundation] #ecko #frentes-content250 .front-has-methods261 .soil-feature {
    display:grid;grid-template-columns:minmax(250px,1.1fr) minmax(180px,.9fr);
    column-gap:20px;align-items:start;
  }
  body[data-foundation] #ecko #frentes-content250 .front-has-methods261 .soil-heading {grid-column:1/-1;grid-row:1}
  body[data-foundation] #ecko #frentes-content250 .front-has-methods261 .soil-classification {grid-column:1/-1;grid-row:2}
  body[data-foundation] #ecko #frentes-content250 .front-has-methods261 .soil-section {grid-column:1;grid-row:3}
  body[data-foundation] #ecko #frentes-content250 .front-has-methods261 .soil-reference250 {grid-column:1;grid-row:4}
  body[data-foundation] #ecko #frentes-content250 .front-has-methods261 .soil-methods261 {
    grid-column:2;grid-row:3/5;display:flex;flex-direction:column;gap:18px;
    min-width:0;margin-top:20px;padding-left:18px;border-left:1px solid #b2c8d426;
  }
  body[data-foundation] #ecko #frentes-content250 .soil-methods261 > figure {
    margin:0!important;padding:0;border:0;
  }
  body[data-foundation] #ecko #frentes-content250 .soil-methods261 figcaption {font-size:11px;margin-bottom:10px;line-height:1.7}
  body[data-foundation] #ecko #frentes-content250 .soil-methods261 figcaption span {font-size:10px}
  body[data-foundation] #ecko #frentes-content250 .front-has-methods261 .soil-note {grid-column:1/-1;grid-row:5}
  body[data-foundation] #ecko #frentes-content250 .front-has-methods261 .drill-progress257 {grid-column:1/-1;grid-row:6}
  body[data-foundation] #ecko #frentes-content250 .front-has-methods261 .drill-controls257 {grid-column:1;grid-row:7}
  body[data-foundation] #ecko #frentes-content250 .front-has-methods261 .et-diagram-open {grid-column:2;grid-row:7;justify-self:start}

  body[data-foundation] #ecko[data-fronts-view="gallery"] #frentes-content250 .front-has-methods261 .front-body252 {
    grid-template-columns:minmax(260px,.85fr) minmax(0,1.4fr);
  }
  /* Without photographs, place a landscape-format drawing beside the brief.
     The cut itself stays the same size; its legend and controls fill the side. */
  body[data-foundation] #ecko[data-fronts-view="diagram"] #frentes-content250 {max-width:1440px}
  body[data-foundation] #ecko[data-fronts-view="diagram"] #frentes-content250 .proy .front-body252 {
    grid-template-columns:minmax(260px,.6fr) minmax(0,1.4fr);
  }
  body[data-foundation] #ecko[data-fronts-view="diagram"] #frentes-content250 .front-body252 > .desc,
  body[data-foundation] #ecko[data-fronts-view="diagram"] #frentes-content250 .front-facts250 {grid-column:1}
  body[data-foundation] #ecko[data-fronts-view="diagram"] #frentes-content250 .front-layout64 > .foundation-metrics {grid-column:2!important}
  body[data-foundation] #ecko[data-fronts-view="diagram"] #frentes-content250 .soil-feature {
    display:grid;grid-template-columns:minmax(250px,320px) minmax(180px,1fr);
    column-gap:22px;align-items:start;align-content:start;
  }
  body[data-foundation] #ecko[data-fronts-view="diagram"] #frentes-content250 .soil-main261 {display:block;grid-column:1;grid-row:1/8}
  body[data-foundation] #ecko[data-fronts-view="diagram"] #frentes-content250 .soil-heading {grid-column:2;grid-row:1}
  body[data-foundation] #ecko[data-fronts-view="diagram"] #frentes-content250 .soil-classification {grid-column:2;grid-row:2}
  body[data-foundation] #ecko[data-fronts-view="diagram"] #frentes-content250 .soil-methods261 {
    display:flex;flex-direction:column;gap:16px;grid-column:2;grid-row:3;
    margin-top:16px;padding:0;border:0;
  }
  body[data-foundation] #ecko[data-fronts-view="diagram"] #frentes-content250 .soil-note {grid-column:2;grid-row:4}
  body[data-foundation] #ecko[data-fronts-view="diagram"] #frentes-content250 .drill-progress257 {grid-column:2;grid-row:5}
  body[data-foundation] #ecko[data-fronts-view="diagram"] #frentes-content250 .drill-controls257 {grid-column:2;grid-row:6}
  body[data-foundation] #ecko[data-fronts-view="diagram"] #frentes-content250 .et-diagram-open {grid-column:2;grid-row:7;justify-self:start}

  /* A longitudinal cut and cross-section sit side by side on wide screens. */
  body[data-foundation] #ecko #zanjeo .trench-project-layout239 {
    grid-template-columns:minmax(500px,1fr) minmax(0,1fr);
  }
  body[data-foundation] #ecko #zanjeo .trench-diagram240 {
    display:grid;grid-template-columns:minmax(0,1fr) 140px;column-gap:18px;
    align-items:start;
  }
  body[data-foundation] #ecko #zanjeo .trench-diagram-heading240 {grid-column:1/-1;grid-row:1;padding-bottom:14px}
  body[data-foundation] #ecko #zanjeo .trench-view-label240 {grid-column:1/-1;grid-row:2;margin-block:12px}
  body[data-foundation] #ecko #zanjeo .trench-side240 {grid-column:1;grid-row:3;align-self:center}
  body[data-foundation] #ecko #zanjeo .trench-section240 {
    grid-column:2;grid-row:3;grid-template-columns:minmax(0,1fr);gap:12px;
    margin:0!important;align-self:center;
  }
  body[data-foundation] #ecko #zanjeo .trench-cross240 {max-height:82px}
  body[data-foundation] #ecko #zanjeo .trench-dimensions240 {grid-template-columns:minmax(0,1fr);gap:10px}
  body[data-foundation] #ecko #zanjeo .trench-dimensions240 dd {font-size:24px}
  body[data-foundation] #ecko #zanjeo .trench-sequence240 {grid-column:1/-1;grid-row:4}
  body[data-foundation] #ecko #zanjeo .trench-progress240 {grid-column:1/-1;grid-row:5}
  body[data-foundation] #ecko #zanjeo .trench-status240 {grid-column:1/-1;grid-row:6}
  body[data-foundation] #ecko #zanjeo .trench-controls240 {grid-column:1/-1;grid-row:7}
  body[data-foundation] #ecko #zanjeo .trench-diagram-note240 {grid-column:1/-1;grid-row:8}
  body[data-foundation] #ecko #zanjeo[data-trench-view="gallery"] .trench-project-layout239 {
    grid-template-columns:minmax(240px,.65fr) minmax(0,1.35fr);
  }
}

@media(min-width:1600px) {
  body[data-foundation] #ecko[data-fronts-view="diagram"] #frentes-content250 .soil-methods261:has(> figure + figure) {
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;
  }
}


/* Source: assets/diagramas-cierre-v262.css */
/* Align the expanded diagram's bottom close button with the text inset.
   Keep the same alignment when the drawing is centered in a wider viewer. */
body[data-foundation] .et-viewer:is(.et-diagram-view,.trench-viewer240) > .viewer-close-bottom257 {
  margin-inline-start:max(var(--diagram-inset255),calc((100% - var(--diagram-panel255)) / 2 + var(--diagram-inset255)));
  margin-inline-end:0;
  max-width:calc(min(100%,var(--diagram-panel255)) - 2 * var(--diagram-inset255));
}



/* v272: a stable accent and a smooth, deliberate title selection. */
body[data-foundation] #ecko #zanjeo .trench-title-label272 {
  display:block;min-width:0;overflow-wrap:break-word;
}
body[data-foundation] #ecko #zanjeo .trench-title-lead272 {
  color:#8fc9e9!important;
  transition:color .28s ease!important;
}
body[data-foundation] #ecko #zanjeo .trench-title-rest272,
body[data-foundation] #ecko #frentes-content250 .front-summary252 h3 .front-title-rest260 {
  color:#a8d443!important;
}
body[data-foundation] #ecko #frentes-content250 .front-summary252 h3 .front-title-first260 {
  color:#f3f7f4!important;
  transition:color .28s ease!important;
}
body[data-foundation] #ecko #zanjeo .trench-project-disclosure250[open] .trench-title-lead272,
body[data-foundation] #ecko #frentes-content250 .front-summary252 h3 a[aria-expanded="true"] .front-title-first260 {
  color:#a8d443!important;
}
body[data-foundation] #ecko #zanjeo .trench-project-select257:focus-visible .trench-title-lead272,
body[data-foundation] #ecko #frentes-content250 .front-summary252 h3 a:focus-visible .front-title-first260 {
  color:#a8d443!important;
}
body[data-foundation] #ecko .front-reading-hint252 {
  text-align:center;
  margin-inline:auto!important;
  text-wrap:balance;
}
@media(hover:hover) and (pointer:fine) {
  body[data-foundation] #ecko #zanjeo .trench-project-select257:hover .trench-title-lead272,
  body[data-foundation] #ecko #frentes-content250 .front-summary252 h3 a:hover .front-title-first260 {
    color:#a8d443!important;
  }
}
@media(prefers-reduced-motion:reduce) {
  body[data-foundation] #ecko #zanjeo .trench-title-lead272,
  body[data-foundation] #ecko #frentes-content250 .front-summary252 h3 .front-title-first260 {
    transition:none!important;
  }
}


/* v273: match the full-width Mahahual photo row on desktop only.
   Preserve the existing sheet, diagram, figures, toolbar and row height. */
@media (min-width:1001px) {
  body[data-foundation] #ecko #frentes-content250 .front-layout64 > .gallery-row68 {
    width:100%!important;
  }
  body[data-foundation] #ecko #frentes-content250 .front-layout64 .gallery-row68 img,
  body[data-foundation] #ecko #frentes-content250 .front-layout64 .gallery-row68 img:is(:hover,:focus-visible) {
    height:min(280px,var(--gallery-height79,280px))!important;
    object-fit:cover!important;
  }
  /* Two or three photos keep their proportional columns. Larger sets use
     balanced rows of two or three; no orphan stretches across a full row. */
  body[data-foundation] #ecko #frentes-content250 .front-layout64 > .gallery-row68.gallery-many273 {
    grid-template-columns:repeat(6,minmax(0,1fr))!important;
    grid-template-rows:none!important;
    grid-auto-flow:row!important;
  }
  body[data-foundation] #ecko #frentes-content250 .front-layout64 .gallery-many273 img {
    grid-column:span var(--photo-span273,2)!important;
  }
}
