/* 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('fuentes/poppins-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Poppins';src:url('fuentes/poppins-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Poppins';src:url('fuentes/poppins-800.woff2') format('woff2');font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('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('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:'Huella de perforación';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('/img/acp-marca-agua.svg?v=207') 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('/img/acp-marca-agua.svg?v=207') 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('/img/acp-marca-agua.svg?v=207') 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;}
@media(min-width:1001px){
 body[data-foundation] .et-nav-links {grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:clamp(10px,2vw,36px)!important;}
}
@media(max-width:1000px){
 body[data-foundation] .et-nav-links {display:flex!important;overflow-x:auto!important;gap:12px!important;justify-content:space-between!important;}
 body[data-foundation] .et-nav-links>a {flex:0 0 auto!important;white-space:nowrap!important;}
 #zanjeo .trench-intro239 {gap:28px;}
 #zanjeo .trench-project-layout239 {gap:24px;}
 #zanjeo .trench-project-index239 {grid-template-columns:repeat(2,minmax(0,1fr));}
 #zanjeo .trench-project-heading239 {flex-direction:column;gap:14px;}
 #zanjeo .trench-drawing-label239 {left:16px;top:14px;font-size:9px;}
}
@media(max-width:850px){
 #zanjeo .trench-project-layout239 {grid-template-columns:1fr;gap:22px;}
 #zanjeo .trench-project-copy239 {padding-top:0;}
 #zanjeo .trench-measures239 {grid-template-columns:1.2fr 1fr 1fr;gap:0 16px;margin-bottom:22px;}
 #zanjeo .trench-measures239 .trench-volume239 {grid-column:auto;}
 #zanjeo .trench-measures239>div,#zanjeo .trench-measures239 .trench-volume239 {padding:0 0 14px;}
 #zanjeo .trench-measures239 dd,#zanjeo .trench-volume239 dd {font-size:clamp(26px,5.2vw,42px);}
 #zanjeo .trench-project-copy239>p {font-size:14px;}
}
@media(max-width:600px){
 body[data-foundation] .sistemas .trench-entry239 {padding:23px 20px;grid-template-columns:25px minmax(0,1fr) 22px;column-gap:14px;}
 body[data-foundation] .trench-entry239 b {font-size:16px;}
 .trench-entry-caption239 {font-size:11px;}
 #zanjeo {padding-top:40px;margin-top:40px;}
 #zanjeo .trench-intro239 {grid-template-columns:1fr;gap:24px;}
 #zanjeo h2 {font-size:clamp(35px,10vw,50px);letter-spacing:-1px;}
 #zanjeo .trench-intro-copy239 p {font-size:14px;}
 #zanjeo .trench-machines239 {grid-template-columns:1fr;gap:20px;margin:28px 0 44px;}
 #zanjeo .trench-machine239 figcaption {padding:20px 22px;}
 #zanjeo .trench-drawing-label239 {top:18px;left:20px;}
 #zanjeo .trench-works-heading239 {gap:16px;align-items:flex-start;}
 #zanjeo .trench-works-heading239 h3 {font-size:24px;}
 #zanjeo .trench-work-total239 {font-size:39px;}
 #zanjeo .trench-project-index239 {grid-template-columns:1fr;gap:0;margin-bottom:36px;}
 #zanjeo .trench-project-index239 a {padding:13px 0;font-size:12px;min-height:48px;}
 #zanjeo .trench-overline239 {font-size:9px;letter-spacing:.6px;}
 #zanjeo .trench-project-heading239 h3 {font-size:23px;line-height:1.35;}
 #zanjeo .trench-project239 {padding-bottom:30px;margin-bottom:30px;}
 #zanjeo .trench-type239 {font-size:9px;padding:7px 10px;}
 #zanjeo .trench-gallery-three239 {gap:7px;}
 #zanjeo .trench-measures239 {gap:0 10px;}
 #zanjeo .trench-measures239 dd,#zanjeo .trench-volume239 dd {font-size:clamp(23px,6.8vw,34px);letter-spacing:-.5px;}
 #zanjeo .trench-measures239 dt {font-size:9px;letter-spacing:0;}
 #zanjeo .trench-end239 {align-items:flex-start;flex-direction:column;gap:12px;}
}
@media(prefers-reduced-motion:reduce){#zanjeo *,#zanjeo *::before,#zanjeo *::after {scroll-behavior:auto;transition:none;}}

.foundation-panel124 .foundation-quick124>a:last-child:nth-child(odd) {grid-column:1/-1;min-height:84px;}
