:root{--green:#173d2f;--green-2:#245540;--green-dark:#0d291f;--lime:#8abb36;--lime-light:#a8ce55;--ink:#132019;--muted:#607068;--paper:#f4f6f3;--white:#fff;--line:#d8e0da;--radius:16px;--shadow:0 22px 60px rgba(12,41,29,.12)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:var(--white);font-family:"DM Sans",Arial,sans-serif;font-size:16px;line-height:1.65}
body.menu-open{overflow:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
.shell{width:min(1180px,calc(100% - 40px));margin-inline:auto}
.section{padding:106px 0}.paper{background:var(--paper)}.green{background:var(--green);color:#fff}.flush{padding-block:0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;left:16px;top:10px;z-index:1000;transform:translateY(-150%);padding:10px 16px;background:#fff;box-shadow:var(--shadow)}.skip-link:focus{transform:none}
h1,h2,h3{font-family:"Manrope",sans-serif;letter-spacing:-.04em;margin-top:0}h2{font-size:clamp(2.25rem,4vw,4rem);line-height:1.08;margin-bottom:22px}h3{line-height:1.18}p{margin-top:0}
.eyebrow{margin:0 0 17px;color:var(--green-2);font:700 .77rem/1.2 "Manrope",sans-serif;letter-spacing:.15em;text-transform:uppercase}.eyebrow.light{color:var(--lime-light)}.lead{font-size:1.13rem;color:var(--muted)}.lead p{margin-bottom:28px}
.button{display:inline-flex;min-height:50px;align-items:center;justify-content:center;padding:0 23px;border:1px solid transparent;border-radius:4px;font-weight:700;transition:.2s ease;cursor:pointer}.button:hover,.button:focus-visible{transform:translateY(-2px)}.button-primary{background:var(--lime);color:#112118}.button-primary:hover{background:var(--lime-light)}.button-dark{background:var(--green);color:#fff}
.text-link{display:inline-flex;gap:9px;align-items:center;margin-top:10px;color:var(--green);font-weight:700}.text-link b{font-size:1.25rem;transition:.2s}.text-link:hover b{transform:translateX(4px)}
.site-header{position:fixed;z-index:100;inset:0 0 auto;height:78px;background:rgba(255,255,255,.98);box-shadow:0 6px 24px rgba(15,41,30,.08);backdrop-filter:blur(12px);transition:.25s}.site-header.scrolled{height:70px;box-shadow:0 8px 35px rgba(15,41,30,.13)}.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between}.brand{width:148px;transition:.25s}.site-header.scrolled .brand{width:138px}.brand img{width:100%;height:auto}
.main-nav{display:flex;align-items:center;gap:20px;color:var(--ink);font-size:.89rem;font-weight:700}.main-nav a{position:relative;padding:8px 0}.main-nav a:not(.language)::after{content:"";position:absolute;left:0;right:100%;bottom:2px;height:2px;background:var(--lime);transition:.2s}.main-nav a:hover::after,.main-nav a[aria-current="page"]::after{right:0}.language{display:grid;place-items:center;width:38px;height:32px;padding:0!important;border:1px solid var(--line);color:var(--green);font-size:.76rem;letter-spacing:.08em}.menu-toggle{display:none;border:0;background:transparent;padding:8px;color:var(--ink)}.menu-toggle span:not(.sr-only){display:block;width:25px;height:2px;margin:5px;background:currentColor;transition:.2s}
.nav-group{position:relative}.nav-parent{display:flex;align-items:center;gap:5px}.nav-parent span{color:var(--green-2);font-size:1rem;transition:.2s}.nav-group:hover .nav-parent span,.nav-group:focus-within .nav-parent span{transform:rotate(180deg)}.submenu{position:absolute;top:calc(100% + 10px);left:-24px;width:290px;display:grid;padding:13px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 18px 45px rgba(12,41,29,.16);opacity:0;visibility:hidden;transform:translateY(-7px);transition:.2s}.submenu::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}.submenu a{display:block;padding:10px 12px;border-radius:5px;color:var(--ink);font-size:.86rem;line-height:1.25}.submenu a::after{display:none}.submenu a:hover,.submenu a:focus-visible,.submenu a[aria-current="page"]{background:var(--paper);color:var(--green-2)}.nav-group:hover .submenu,.nav-group:focus-within .submenu{opacity:1;visibility:visible;transform:none}
.page-hero{position:relative;min-height:690px;margin-top:78px;display:flex;align-items:flex-end;color:#fff;overflow:hidden}.page-inicio .page-hero{min-height:calc(100svh - 78px)}.page-hero>img,.page-hero-shade{position:absolute;inset:0;width:100%;height:100%}.page-hero>img{object-fit:cover;object-position:center;transform:scale(1.015)}.page-asfalto .page-hero>img{object-position:center 55%}.page-hero-shade{background:linear-gradient(90deg,rgba(8,29,20,.94) 0%,rgba(8,29,20,.72) 50%,rgba(8,29,20,.18) 82%),linear-gradient(0deg,rgba(8,29,20,.7),transparent 52%)}.page-hero-content{position:relative;padding-block:100px 78px}.page-hero h1{max-width:950px;margin:0 0 25px;font-size:clamp(3.35rem,6.6vw,6.8rem);line-height:.95}.page-hero h1 span{color:var(--lime-light)}.page-hero-content>p:last-child{max-width:750px;margin:0;color:rgba(255,255,255,.84);font-size:1.22rem;line-height:1.6}
.intro-grid{display:grid;grid-template-columns:1.12fr .8fr;gap:100px;align-items:start}.intro-grid h2{margin-bottom:0}.section-heading{max-width:900px;margin-bottom:55px}.section-heading>p:last-child{max-width:720px;color:var(--muted);font-size:1.08rem}
.division-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.image-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:.25s}.image-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}.image-card>img{width:100%;height:260px;object-fit:cover}.image-card>div{padding:29px}.image-card span{display:block;margin-bottom:12px;color:var(--green-2);font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.image-card h3{font-size:1.55rem;margin-bottom:12px}.image-card p{color:var(--muted);margin-bottom:0}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.stats div{display:grid;padding:20px 30px;border-left:1px solid rgba(255,255,255,.24)}.stats strong{color:var(--lime-light);font:700 clamp(1.8rem,3vw,3rem)/1.1 "Manrope",sans-serif}.stats span{margin-top:8px;color:rgba(255,255,255,.65)}
.milestones{background:linear-gradient(135deg,#2d674e 0%,#235740 58%,#1e4e3a 100%)}.milestones-heading{max-width:760px;margin:0 auto 58px;text-align:center}.milestones-heading h2{margin-bottom:0}.gauge-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.gauge-card{padding:28px 22px 26px;border:1px solid rgba(255,255,255,.23);border-radius:var(--radius);background:rgba(255,255,255,.075);box-shadow:0 18px 45px rgba(7,31,22,.12);text-align:center}.gauge-dial{position:relative;width:min(100%,260px);aspect-ratio:1;margin:0 auto}.gauge-dial::before{content:"";position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 225deg,var(--lime) 0deg,var(--lime-light) 235deg,rgba(255,255,255,.26) 235deg 270deg,transparent 270deg 360deg);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 18px),#000 0);mask:radial-gradient(farthest-side,transparent calc(100% - 18px),#000 0)}.gauge-dial::after{content:"";position:absolute;left:12%;right:12%;bottom:13%;height:1px;background:rgba(255,255,255,.28)}.gauge-needle{position:absolute;z-index:2;left:50%;top:50%;width:37%;height:4px;border-radius:4px;background:linear-gradient(90deg,#fff,var(--lime-light));box-shadow:0 0 14px rgba(168,206,85,.32);transform:rotate(var(--needle));transform-origin:left center}.gauge-hub{position:absolute;z-index:3;left:50%;top:50%;width:18px;height:18px;border:5px solid var(--lime-light);border-radius:50%;background:#184332;transform:translate(-50%,-50%)}.gauge-value{position:absolute;z-index:4;inset:52% 10% auto;display:grid;justify-items:center}.gauge-value strong{color:#fff;font:800 clamp(2.45rem,4.2vw,4.15rem)/.95 "Manrope",sans-serif;letter-spacing:-.06em}.gauge-value strong small{color:var(--lime-light);font-size:.58em;vertical-align:.25em}.gauge-value span{margin-top:9px;color:#c2e47b;font:700 .78rem/1.2 "Manrope",sans-serif;letter-spacing:.08em;text-transform:uppercase}.gauge-card>p{max-width:270px;margin:10px auto 0;color:rgba(255,255,255,.82);font-size:1.02rem}.gauge-card:hover .gauge-needle{animation:gauge-pulse .7s ease both}@keyframes gauge-pulse{0%{transform:rotate(calc(var(--needle) - 10deg))}100%{transform:rotate(var(--needle))}}
.split{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:start}.project-mini{border-top:1px solid #cbd5cd}.project-mini a{display:grid;gap:4px;padding:25px 8px;border-bottom:1px solid #cbd5cd;transition:.2s}.project-mini a:hover{padding-left:18px;background:#fff}.project-mini span{color:var(--green-2);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em}.project-mini b{font:700 1.1rem/1.35 "Manrope",sans-serif}
.service-list{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line)}.service-list article{display:grid;grid-template-columns:45px 1fr;gap:8px 18px;padding:32px;border-bottom:1px solid var(--line)}.service-list article:nth-child(odd){border-right:1px solid var(--line)}.service-list span{grid-row:1/3;color:var(--lime);font-weight:700}.service-list h3{margin:0;font-size:1.32rem}.service-list p{margin:0;color:var(--muted)}
.engineering-index{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.engineering-index a{display:grid;grid-template-columns:38px 1fr;align-items:center;min-height:92px;padding:20px 24px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font:700 1rem/1.3 "Manrope",sans-serif;transition:.2s}.engineering-index a:hover{background:var(--paper);color:var(--green-2)}.engineering-index span{color:var(--lime);font-size:.78rem}.engineering-service{display:grid;grid-template-columns:1.05fr .95fr;gap:70px;align-items:center;scroll-margin-top:100px}.engineering-service.reverse>img{order:2}.engineering-service>img{width:100%;height:500px;object-fit:cover;border-radius:var(--radius);box-shadow:var(--shadow)}.engineering-service h2{font-size:clamp(2.2rem,3.7vw,3.7rem)}.engineering-service h3{max-width:570px;margin-bottom:20px;color:var(--green-2);font-size:1.25rem;letter-spacing:-.02em}.engineering-service>div>p:not(.eyebrow){color:var(--muted);font-size:1.06rem}.engineering-service ul{display:grid;gap:10px;margin:25px 0 0;padding:0;list-style:none}.engineering-service li{position:relative;padding-left:26px;font-weight:600}.engineering-service li::before{content:"";position:absolute;left:0;top:.62em;width:9px;height:9px;border-radius:50%;background:var(--lime)}
.media-split{display:grid;grid-template-columns:1fr 1fr;min-height:600px}.media-split>img{width:100%;height:100%;min-height:600px;object-fit:cover}.media-split>div{display:flex;flex-direction:column;justify-content:center;padding:70px clamp(35px,6vw,95px)}.media-split>div p:last-child{color:rgba(255,255,255,.7);font-size:1.08rem}.media-split.reverse>img{order:2}
.feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.feature-grid .image-card>img{height:410px}.process{display:grid;grid-template-columns:repeat(3,1fr);gap:45px}.process div{border-top:1px solid rgba(255,255,255,.25);padding-top:24px}.process span{color:var(--lime-light);font-weight:700}.process h3{margin:10px 0 8px}.process p{color:rgba(255,255,255,.66)}
.national-callout{max-width:980px}.national-callout p:last-child{max-width:760px;color:var(--muted);font-size:1.16rem}.project-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.project-cards .image-card>img{height:300px}.values{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.values article{padding:35px;border:1px solid var(--line);border-radius:var(--radius)}.values span{color:var(--lime);font-weight:700}.values h3{margin:30px 0 10px;font-size:1.45rem}.values p{margin:0;color:var(--muted)}
.coverage-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:55px;align-items:center}.coverage-grid>div>p:last-child{color:var(--muted);font-size:1.08rem}.coverage-grid iframe{width:100%;height:420px;border:0;border-radius:var(--radius);box-shadow:var(--shadow)}
.cta{padding:95px 0;background:var(--green-dark);color:#fff}.cta h2{max-width:900px;margin-bottom:35px}
.contact-layout{display:grid;grid-template-columns:.82fr 1.18fr;gap:90px;align-items:start}.contact-data{display:grid;gap:19px;margin-top:45px}.contact-data a,.contact-data p{margin:0;font-size:1.05rem}.contact-data span{display:block;color:var(--green-2);font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.contact-form{position:relative;padding:36px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.contact-form label{display:grid;gap:7px;margin-bottom:18px;font-size:.84rem;font-weight:700}.contact-form input,.contact-form select,.contact-form textarea{width:100%;border:1px solid #cbd5cd;border-radius:5px;padding:12px 13px;color:var(--ink);background:#fff}.contact-form input,.contact-form select{height:49px}.contact-form textarea{resize:vertical}.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:3px solid rgba(138,187,54,.24);border-color:var(--lime)}.contact-form .button{width:100%;border:0}.contact-form .button:disabled{cursor:wait;opacity:.7}.form-hp{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.form-note{margin:11px 0 0;text-align:center;color:var(--muted);font-size:.78rem}.form-note.success{color:#2f6f22;font-weight:700}.form-note.error{color:#a52a2a;font-weight:700}.map{height:460px}.map iframe{width:100%;height:100%;border:0;display:block;filter:saturate(.8)}
.site-footer{padding:62px 0 22px;background:#091f17;color:rgba(255,255,255,.64)}.footer-grid{display:grid;grid-template-columns:1.35fr .65fr 1fr;gap:70px;padding-bottom:45px}.footer-brand img{width:190px;filter:brightness(0) invert(1);opacity:.92}.footer-brand p{max-width:400px;margin:20px 0 0}.footer-grid h2{color:#fff;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase}.footer-grid>div:not(:first-child){display:flex;flex-direction:column;align-items:flex-start;gap:9px}.footer-grid a{color:#fff}.footer-grid p{margin:0}.footer-bottom{display:flex;justify-content:space-between;padding-top:20px;border-top:1px solid rgba(255,255,255,.13);font-size:.8rem}
.whatsapp{position:fixed;right:22px;bottom:22px;z-index:70;width:56px;height:56px;display:grid;place-items:center;background:#25d366;border-radius:50%;box-shadow:0 8px 28px rgba(0,0,0,.24);transition:.2s}.whatsapp:hover{transform:translateY(-3px) scale(1.04)}.whatsapp svg{width:29px;fill:#fff}
.service-detail-links{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:23px}.service-detail-links .text-link{margin-top:0}
.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.detail-grid article{padding:34px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.detail-grid span{display:grid;place-items:center;width:34px;height:34px;margin-bottom:42px;border-radius:50%;background:var(--lime);color:var(--green-dark);font-weight:800}.detail-grid h3{margin-bottom:12px;font-size:1.42rem}.detail-grid p{margin:0;color:var(--muted)}
.service-columns{display:grid;grid-template-columns:1fr 1fr;gap:80px}.service-columns h2{font-size:clamp(2rem,3.2vw,3.3rem)}.check-list{display:grid;gap:14px;margin:30px 0 0;padding:0;list-style:none}.check-list li{position:relative;padding:0 0 14px 30px;border-bottom:1px solid var(--line);font-weight:600}.check-list li::before{content:"✓";position:absolute;left:0;color:var(--green-2);font-weight:800}
.service-process{grid-template-columns:repeat(4,1fr)}
.case-study{max-width:920px;padding:50px;border-left:5px solid var(--lime);background:#fff;box-shadow:var(--shadow)}.case-study h2{font-size:clamp(2rem,3.6vw,3.5rem)}.case-study p:last-child{max-width:760px;margin-bottom:0;color:var(--muted);font-size:1.1rem}
.faq-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:90px}.faq-list{border-top:1px solid var(--line)}.faq-list details{border-bottom:1px solid var(--line)}.faq-list summary{position:relative;padding:23px 48px 23px 0;cursor:pointer;font:700 1.08rem/1.4 "Manrope",sans-serif;list-style:none}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary::after{content:"+";position:absolute;right:4px;top:18px;color:var(--green-2);font-size:1.6rem;font-weight:500}.faq-list details[open] summary::after{content:"−"}.faq-list details p{padding:0 45px 23px 0;margin:0;color:var(--muted)}
.related-services{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.related-services a{position:relative;display:flex;min-height:190px;flex-direction:column;padding:30px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;transition:.2s}.related-services a:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.related-services span{margin-bottom:25px;color:var(--green-2);font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.related-services strong{max-width:90%;font:700 1.3rem/1.25 "Manrope",sans-serif}.related-services b{position:absolute;right:28px;bottom:23px;color:var(--lime);font-size:1.4rem}
.service-contact-section{background:linear-gradient(135deg,#eef3ee,#f8faf7)}.service-contact .contact-form{margin-top:-8px}
@media(max-width:1080px){.main-nav{gap:13px;font-size:.8rem}.brand{width:135px}}
@media(max-width:940px){.section{padding:82px 0}.menu-toggle{display:block;z-index:2}.main-nav{position:fixed;inset:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:10vw;background:var(--green-dark);font-size:1.6rem;transform:translateX(100%);transition:.3s;color:#fff!important}.main-nav.open{transform:none}.main-nav a{padding:4px 0}.language{border-color:rgba(255,255,255,.35)}.intro-grid,.split,.contact-layout,.coverage-grid,.engineering-service{grid-template-columns:1fr;gap:42px}.gauge-grid{grid-template-columns:repeat(2,1fr)}.gauge-card:last-child{grid-column:1/-1;width:calc(50% - 16px);justify-self:center}.engineering-index{grid-template-columns:repeat(2,1fr)}.engineering-service.reverse>img{order:0}.engineering-service>img{height:440px}.division-cards,.project-cards{grid-template-columns:1fr 1fr}.project-cards .image-card:last-child{grid-column:1/-1}.media-split{grid-template-columns:1fr}.media-split>img{min-height:440px;height:440px}.media-split.reverse>img{order:0}.feature-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}}
@media(max-width:680px){.shell{width:min(100% - 28px,1180px)}.section{padding:68px 0}.site-header{height:68px}.site-header.scrolled{height:64px}.brand,.site-header.scrolled .brand{width:132px}.page-hero,.page-inicio .page-hero{min-height:690px;margin-top:68px}.page-hero-content{padding-block:90px 46px}.page-hero h1{font-size:3.15rem}.page-hero-content>p:last-child{font-size:1.02rem}.page-hero-shade{background:linear-gradient(90deg,rgba(8,29,20,.94),rgba(8,29,20,.58)),linear-gradient(0deg,rgba(8,29,20,.76),transparent)}h2{font-size:2.25rem}.division-cards,.project-cards,.service-list,.feature-grid,.stats,.process,.values,.engineering-index,.gauge-grid{grid-template-columns:1fr}.milestones-heading{margin-bottom:38px}.gauge-card:last-child{grid-column:auto;width:100%}.gauge-dial{width:min(100%,240px)}.engineering-index a{min-height:72px}.engineering-service>img{height:280px}.division-cards .image-card:last-child,.project-cards .image-card:last-child{grid-column:auto}.image-card>img,.project-cards .image-card>img{height:245px}.feature-grid .image-card>img{height:300px}.service-list article{border-right:0!important;padding:27px 8px}.stats div{border-left:0;border-top:1px solid rgba(255,255,255,.22);padding-inline:0}.media-split>img{height:330px;min-height:330px}.media-split>div{padding:55px 22px}.field-row{grid-template-columns:1fr}.contact-form{padding:24px 18px}.footer-grid{grid-template-columns:1fr;gap:35px}.footer-brand{grid-column:auto}.footer-bottom{flex-direction:column;gap:5px}.whatsapp{right:14px;bottom:14px;width:51px;height:51px}}
@media(max-width:940px){.service-columns,.faq-layout{grid-template-columns:1fr;gap:42px}.detail-grid,.related-services{grid-template-columns:repeat(2,1fr)}.detail-grid article:last-child,.related-services a:last-child{grid-column:1/-1}.service-process{grid-template-columns:repeat(2,1fr)}}
@media(max-width:940px){.main-nav{justify-content:flex-start;gap:9px;padding-top:90px;overflow-y:auto}.nav-group{width:100%}.nav-parent span{color:var(--lime-light);transform:none!important}.submenu{position:static;width:100%;display:grid;gap:2px;margin-top:4px;padding:5px 0 5px 18px;background:transparent;border:0;border-left:1px solid rgba(255,255,255,.22);border-radius:0;box-shadow:none;opacity:1;visibility:visible;transform:none}.submenu::before{display:none}.main-nav .submenu a{padding:5px 10px;color:rgba(255,255,255,.76);font-size:.92rem}.main-nav .submenu a:hover,.main-nav .submenu a:focus-visible{background:rgba(255,255,255,.08);color:#fff}}
@media(max-width:680px){.detail-grid,.related-services,.service-process{grid-template-columns:1fr}.detail-grid article:last-child,.related-services a:last-child{grid-column:auto}.detail-grid article{padding:28px}.detail-grid span{margin-bottom:28px}.case-study{padding:32px 25px}.related-services a{min-height:165px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
