/*
Theme Name: PRAVUS White Architectural Edition
Theme URI: https://prvs.cl
Author: PRAVUS
Description: Edición blanca premium, multipágina y optimizada para búsqueda orgánica.
Version: 1.3.6
Text Domain: pravus-white
*/
@font-face{font-family:PravusCondensed;src:url('assets/fonts/pravus-condensed-regular-premium.ttf') format('truetype');font-display:swap;font-weight:400}
@font-face{font-family:PravusCondensed;src:url('assets/fonts/pravus-condensed-bold-premium.ttf') format('truetype');font-display:swap;font-weight:700}
:root{--green:#009b79;--green-dark:#007d63;--ink:#0a0d0c;--muted:#5d6763;--soft:#f5f7f6;--line:#dce3e0;--max:1680px;--header:78px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:var(--header)}
body{margin:0;color:var(--ink);background:#fff;font:15px/1.55 Arial,Helvetica,sans-serif;overflow-x:hidden}
img{display:block;width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
.container{width:min(calc(100% - 132px),var(--max));margin-inline:auto}
.pv-icon{width:1.35em;height:1.35em;display:inline-block;vertical-align:middle}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:0 28px;border:1px solid transparent;border-radius:0;font-size:11px;font-weight:700;letter-spacing:.045em;text-transform:uppercase;transition:color .2s ease,background .2s ease,border-color .2s ease}
.btn-green{background:var(--green);color:#fff}
.btn-green:hover{background:var(--green-dark)}
.btn-outline{border-color:#626b67;color:var(--ink);background:#fff}
.btn-outline:hover{border-color:var(--green);color:var(--green)}
.kicker,.eyebrow{margin:0 0 18px;color:var(--green);font-size:11px;font-weight:700;letter-spacing:.055em;text-transform:uppercase}
.site-header{position:fixed;z-index:100;inset:0 0 auto;height:var(--header);background:rgba(255,255,255,.97);border-bottom:1px solid rgba(10,13,12,.09);backdrop-filter:blur(10px)}
body.admin-bar .site-header{top:32px}
.header-inner{height:100%;display:flex;align-items:center;gap:34px}
.brand{display:flex;flex-direction:column;white-space:nowrap;line-height:.86}
.brand>span,.footer-brand{font:700 31px/1 PravusCondensed,Arial,sans-serif;letter-spacing:.17em}
.brand>span span,.footer-brand span{color:var(--green)}
.brand small,.footer-brand small{display:block;margin-top:7px;font:700 6px/1 Arial,sans-serif;letter-spacing:.28em;color:#505955}
.nav{display:flex;align-self:stretch;align-items:center;gap:34px;margin-left:auto}
.nav a{height:100%;display:flex;align-items:center;border-bottom:2px solid transparent;color:#222825;font-size:10px;font-weight:700;letter-spacing:.055em;text-transform:uppercase}
.nav a.active,.nav a:hover{border-color:var(--green);color:var(--green)}
.header-actions{display:flex;align-items:center;gap:18px}
.header-actions .btn{min-height:40px;padding-inline:22px}
.whatsapp{display:grid;place-items:center;color:var(--green);font-size:21px}
.menu-toggle{display:none;border:0;background:none;color:var(--ink);font-size:24px;padding:8px}
.hero,.services,.partner,.metrics,.projects,.field,.safety,.final-cta,.site-footer,.section-mark{position:relative;isolation:isolate}
.hero>.container,.services>.container,.partner>.container,.metrics>.container,.projects>.container,.field>.container,.final-cta>.container,.site-footer>.container,.safety-grid,.section-mark>.container{position:relative;z-index:2}
.hero:before,.services:before,.partner:before,.metrics:before,.projects:before,.field:before,.safety:before,.final-cta:after,.site-footer:before,.section-mark:before{position:absolute;z-index:4;left:17px;top:20px;width:20px;height:74px;padding-top:6px;border-left:1px solid rgba(0,155,121,.44);border-top:1px solid rgba(0,155,121,.44);color:var(--green);font:700 8px/1 Arial,sans-serif;letter-spacing:.08em;pointer-events:none}
.hero:after,.services:after,.partner:after,.metrics:after,.projects:after,.field:after,.safety:after,.site-footer:after,.section-mark:after{content:"";position:absolute;z-index:1;right:18px;top:22px;width:28px;height:150px;opacity:.28;background:radial-gradient(circle,var(--green) 1px,transparent 1.2px) 0 0/9px 9px;pointer-events:none}
.hero:before{content:"01"}.services:before{content:"02"}.partner:before{content:"03"}.metrics:before{content:"04"}.projects:before{content:"05"}.field:before{content:"06"}.safety:before{content:"07"}.final-cta:after{content:"08"}.site-footer:before{content:"09"}.section-mark:before{content:attr(data-section)}
.hero{height:clamp(650px,43.75vw,840px);min-height:650px;margin-top:var(--header);background:#fff;overflow:hidden}
.hero-slides,.hero-slide{position:absolute;inset:0}
.hero-slide{opacity:0;transition:opacity .7s ease}
.hero-slide.active{opacity:1}
.hero-slide img{width:100%;height:100%;object-fit:cover;object-position:center}
.hero-slide:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.97) 25%,rgba(255,255,255,.55) 43%,rgba(255,255,255,0) 62%)}
.hero-content{height:100%;display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;padding-top:clamp(88px,6vw,118px);padding-bottom:26px}
.hero-message{display:none;max-width:640px}
.hero-message.active{display:block;animation:none}
@keyframes heroIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.hero h1,.hero h2{margin:0 0 24px;font:700 clamp(66px,4.8vw,92px)/.88 PravusCondensed,Arial,sans-serif;letter-spacing:.004em;text-transform:uppercase}
.hero h1 span,.hero h2 span{color:var(--green)}
.hero-message>p:last-child{max-width:520px;margin:0;color:#353c39;font-size:15px;line-height:1.52}
.hero-buttons{display:flex;gap:14px;margin-top:28px}
.hero-dots{position:absolute;z-index:5;bottom:23px;left:50%;display:flex;gap:9px;transform:translateX(-50%)}
.hero-dots button{width:28px;height:2px;padding:0;border:0;background:#b9c3bf;cursor:pointer}
.hero-dots button.active{width:46px;background:var(--green)}
.services{padding:78px 0 82px;background:#fff;border-top:1px solid #edf1ef}
.service-layout{display:grid;grid-template-columns:24% 1fr;gap:3.4%;align-items:center}
.service-intro h2,.projects h2,.field h2{margin:0 0 20px;font:700 46px/.94 PravusCondensed,Arial,sans-serif;text-transform:uppercase}
.service-intro h2 span{display:block;white-space:nowrap}
.service-intro>p:not(.kicker){max-width:310px;margin:0 0 27px;color:var(--muted);font-size:13px;line-height:1.58}
.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.service-card{position:relative;overflow:visible;background:#fff;border:1px solid var(--line);transition:transform .2s ease,border-color .2s ease}
.service-card:before,.projects-grid article:before,.route-service-card:before{content:"";position:absolute;z-index:4;inset:-4px;pointer-events:none;background:linear-gradient(var(--green),var(--green)) left top/22px 1px no-repeat,linear-gradient(var(--green),var(--green)) left top/1px 22px no-repeat,linear-gradient(var(--green),var(--green)) right bottom/22px 1px no-repeat,linear-gradient(var(--green),var(--green)) right bottom/1px 22px no-repeat;opacity:.78}
.service-card:hover,.route-service-card:hover{transform:translateY(-4px);border-color:#a9c7bc}
.service-card>img{aspect-ratio:1.08;object-fit:cover;filter:grayscale(1) contrast(1.04);transition:filter .42s ease}
.service-card:hover>img,.service-card:focus-visible>img{filter:grayscale(0) contrast(1)}
.service-card--publicidad>img{object-position:center 58%}
.service-card>div{min-height:112px;display:flex;align-items:flex-start;gap:14px;padding:21px 18px}
.service-icon{flex:0 0 auto;color:var(--green);font-size:26px}
.service-card h3{margin:0;font:700 23px/.98 PravusCondensed,Arial,sans-serif;text-transform:uppercase}
.partner{background:#fff;border-top:1px solid #edf1ef}
.partner-grid{min-height:510px;display:grid;grid-template-columns:28% 1fr;gap:3.5%;align-items:stretch}
.partner-copy{align-self:center;padding:62px 0}
.partner-copy h2{margin:0 0 24px;font:700 54px/.91 PravusCondensed,Arial,sans-serif;text-transform:uppercase}
.partner-copy h2 span,.about-subhero h1 span{color:var(--green)}
.partner-copy i,.field-copy i{display:block;width:54px;height:2px;margin:0 0 23px;background:var(--green)}
.partner-copy p{max-width:390px;margin:0 0 27px;color:var(--muted);font-size:13px;line-height:1.62}
.partner-photo{position:relative;min-height:510px}
.partner-photo img{height:100%;object-fit:cover}
.partner-photo:after,.subhero figure:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.52) 8%,transparent 19%)}
.metrics{padding:64px 0;background:#fff;border-top:1px solid #edf1ef}
.metrics-grid{display:grid;grid-template-columns:1.15fr repeat(3,1fr)}
.years,.metric{min-height:176px;padding:8px 38px;border-right:1px solid var(--line)}
.years{padding-left:0;display:grid;grid-template-columns:auto 1fr;align-content:center}
.years strong{grid-row:1/3;color:var(--green);font:700 96px/.8 PravusCondensed,Arial,sans-serif}
.years strong span{font-size:48px;vertical-align:top}
.years b{align-self:end;font:700 35px/1 PravusCondensed,Arial,sans-serif;text-transform:uppercase}
.years small{color:#4f5955;font-size:11px}
.metric:last-child{border-right:0}
.metric>span{display:block;margin-bottom:15px;color:var(--green);font-size:34px}
.metric h3,.metric h2{margin:0 0 10px;font:700 23px/1 PravusCondensed,Arial,sans-serif;text-transform:uppercase}
.metric p{max-width:260px;margin:0;color:var(--muted);font-size:11px;line-height:1.55}
.projects{padding:76px 0 78px;background:#fff;border-top:1px solid #edf1ef}
.projects-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:31px}
.projects h2{margin:0}
.projects-head>a,.field-more{color:var(--green);font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.projects-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.projects-grid article{position:relative;border:1px solid var(--line);background:#fff}
.projects-grid img{aspect-ratio:1.42;object-fit:cover}
.projects-grid article>div{padding:17px 17px 19px}
.projects-grid h3,.projects-grid h2{margin:0 0 6px;font:700 22px/1 PravusCondensed,Arial,sans-serif;text-transform:uppercase}
.projects-grid b{display:block;margin-bottom:12px;color:var(--green);font-size:9px;text-transform:uppercase}
.projects-grid p{margin:0;color:#69736f;font-size:9.5px}
.projects-grid p svg{width:14px}
.field{padding:0 0 76px;background:#fff}
.field-grid{display:grid;grid-template-columns:24% 1fr;gap:3.4%;align-items:center}
.field-copy h2{margin-bottom:15px}
.field-copy p{max-width:300px;margin:0;color:var(--muted);font-size:13px;line-height:1.55}
.instagram-link{display:flex;align-items:center;gap:9px;margin:20px 0 13px;font-size:12px;font-weight:700}
.instagram-link svg{color:var(--green);font-size:22px}
.field-gallery{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.field-gallery:before,.field-gallery:after{content:"";position:absolute;z-index:3;width:28px;height:28px;pointer-events:none}
.field-gallery:before{left:-5px;top:-5px;border-left:1px solid var(--green);border-top:1px solid var(--green)}
.field-gallery:after{right:-5px;bottom:-5px;border-right:1px solid var(--green);border-bottom:1px solid var(--green)}
.field-gallery img{aspect-ratio:1.26;object-fit:cover;border:1px solid #d9e2de}
.safety{background:#fff;border-top:1px solid #e8eeeb}
.safety-grid{min-height:560px;display:grid;grid-template-columns:34% 1fr;max-width:1920px;margin:auto}
.safety-photo{position:relative}
.safety-photo img{height:560px;object-fit:cover;object-position:center 38%;filter:grayscale(1)}
.safety-photo:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 78%,#fff 100%)}
.safety-content{position:relative;padding:62px 5.2% 48px}
.safety-content>h2{margin:0 0 17px;font:700 47px/.92 PravusCondensed,Arial,sans-serif;text-transform:uppercase}
.safety-content>h2:after{content:"";display:block;width:51px;height:2px;margin-top:21px;background:var(--green)}
.safety-content>p{max-width:650px;margin:0;color:var(--muted);font-size:12px;line-height:1.55}
.safety-items{display:grid;grid-template-columns:repeat(5,1fr);gap:17px;margin-top:31px}
.safety-items>div{padding-top:16px;border-top:1px solid var(--line)}
.safety-items span{color:var(--green);font-size:28px}
.safety-items h3,.safety-items h2{margin:10px 0 7px;font:700 16px/1 PravusCondensed,Arial,sans-serif;text-transform:uppercase}
.safety-items p{margin:0;color:var(--muted);font-size:9px;line-height:1.5}
.safety-note{display:flex;align-items:center;gap:13px;margin-top:26px;padding:12px 15px;border:1px solid rgba(0,155,121,.42);color:#4f5955;font-size:9.5px;text-transform:uppercase;letter-spacing:.025em}
.safety-note svg{flex:0 0 auto;color:var(--green);font-size:23px}
.final-cta{background-color:#fff;background-image:linear-gradient(90deg,rgba(255,255,255,.93),rgba(255,255,255,.88)),url('assets/images/cta-boceto.webp');background-position:center;background-size:cover;border-top:1px solid #e5ebe8}
.final-cta-grid{min-height:188px;display:grid;grid-template-columns:1.15fr .8fr auto;align-items:center;gap:50px}
.final-cta h2{margin:0;font:700 52px/.88 PravusCondensed,Arial,sans-serif;text-transform:uppercase}
.final-cta h2 span{color:var(--green)}
.final-cta p{margin:0;color:#505a56;font-size:13px;line-height:1.55}
.site-footer{padding:58px 0 21px;background:#fff;border-top:1px solid #e5ebe8}
.footer-grid{display:grid;grid-template-columns:1.65fr repeat(4,1fr);gap:43px}
.footer-brand small{font-size:6px}
.footer-grid>div:first-child>p{max-width:315px;margin:16px 0 0;color:#69736f;font-size:10.5px;line-height:1.52}
.social-box{width:31px;height:31px;display:grid;place-items:center;margin-top:22px;border:1px solid #aab5b0;font-size:9px;font-weight:700}
.footer-grid h3{margin:4px 0 18px;color:var(--green);font-size:10px;letter-spacing:.08em;text-transform:uppercase}
.footer-grid>div:not(:first-child) a,.footer-grid>div:not(:first-child) p{display:block;margin:0 0 9px;color:#58625e;font-size:9.5px}
.footer-grid a:hover{color:var(--green)}
.footer-bottom{display:flex;justify-content:space-between;margin-top:39px;padding-top:16px;border-top:1px solid var(--line);color:#818b87;font-size:8.5px}
.inner-page{padding-top:var(--header)}
.page-main{min-height:65vh;padding:calc(var(--header) + 70px) 0 90px;background:#fff}.page-main h1{margin:0 0 30px;font:700 58px/.94 PravusCondensed,Arial,sans-serif;text-transform:uppercase}.page-main p{max-width:820px;color:var(--muted)}
.subhero{min-height:610px;display:flex;align-items:stretch;background:#fff;border-bottom:1px solid #e7ecea}
.subhero-grid{display:grid;grid-template-columns:43% 1fr;gap:4%;align-items:stretch}
.subhero-grid>div{align-self:center;padding:70px 0}
.subhero h1,.contact-page h1{max-width:720px;margin:0 0 25px;font:700 clamp(58px,4.2vw,82px)/.9 PravusCondensed,Arial,sans-serif;text-transform:uppercase}
.subhero-grid>div>p:not(.kicker){max-width:600px;margin:0 0 30px;color:var(--muted);font-size:15px;line-height:1.62}
.subhero figure{position:relative;margin:0;min-height:610px}
.subhero figure img{height:100%;object-fit:cover}
.service-subhero figure img{object-position:center}
.service-subhero,.compact-subhero{min-height:550px}
.service-subhero figure,.compact-subhero figure{min-height:550px}
.about-subhero h1 span{display:block}
.safety-subhero figure img{object-position:center 30%;filter:grayscale(1)}
.route-services{padding:84px 0}
.route-service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px}
.route-service-card{position:relative;display:grid;grid-template-columns:43% 1fr;border:1px solid var(--line);background:#fff;transition:.2s ease}
.route-service-card>img{height:100%;min-height:330px;object-fit:cover}
.route-service-card>div{padding:35px}
.route-service-card span{color:var(--green);font-size:31px}
.route-service-card h2{margin:14px 0 13px;font:700 34px/.95 PravusCondensed,Arial,sans-serif;text-transform:uppercase}
.route-service-card p{margin:0 0 22px;color:var(--muted);font-size:12px}
.route-service-card b{display:flex;align-items:center;gap:8px;color:var(--green);font-size:10px;text-transform:uppercase}
.route-service-card b svg{font-size:15px}
.service-detail{padding:80px 0;border-bottom:1px solid #e7ecea}
.service-detail-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:8%}
.service-detail h2,.section-heading h2,.editorial-grid h2{margin:0 0 18px;font:700 48px/.94 PravusCondensed,Arial,sans-serif;text-transform:uppercase}
.service-detail p{max-width:500px;margin:0;color:var(--muted)}
.service-detail ul{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;margin:0;padding:0;list-style:none}
.service-detail li{display:flex;align-items:center;gap:13px;min-height:76px;padding:14px 17px;border:1px solid var(--line);font-size:12px;font-weight:700}
.service-detail li svg{flex:0 0 auto;color:var(--green);font-size:23px}
.related-services{padding:68px 0 80px}
.section-heading{margin-bottom:27px}
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}
.related-grid a{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;padding:24px;border:1px solid var(--line);transition:.2s ease}
.related-grid a:hover{border-color:var(--green);color:var(--green)}
.related-grid span{color:var(--green);font-size:25px}
.related-grid b{font:700 20px/1 PravusCondensed,Arial,sans-serif;text-transform:uppercase}
.related-grid>a>svg{color:var(--green)}
.route-projects{padding-top:84px}
.route-projects .projects-grid h2{font-size:24px}
.route-metrics{padding:78px 0;border-bottom:1px solid #e7ecea}
.editorial-copy{padding:86px 0}
.editorial-grid{display:grid;grid-template-columns:1fr 1fr;gap:9%}
.editorial-grid h2{max-width:520px;font-size:55px}
.editorial-grid p{margin:0 0 18px;color:var(--muted);font-size:14px;line-height:1.72}
.route-safety{padding:76px 0 82px}
.route-safety .safety-items{margin-top:0}
.route-safety .safety-items h2{font-size:20px}
.route-safety .safety-items p{font-size:11px}
.contact-page{padding:92px 0 100px;background:#fff}
.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:8%;align-items:start}
.contact-copy{padding-top:38px}
.contact-copy>p:not(.kicker){max-width:590px;margin:0;color:var(--muted);font-size:15px}
.contact-data{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:43px}
.contact-data>a,.contact-data>div{padding-top:15px;border-top:1px solid var(--line)}
.contact-data b,.contact-data span{display:block}
.contact-data b{margin-bottom:6px;color:var(--green);font-size:10px;text-transform:uppercase}
.contact-data span{color:#343b38;font-size:12px}
.quote-panel{padding:44px;border:1px solid var(--line);background:#fff;box-shadow:0 18px 55px rgba(18,37,30,.07)}
.quote-panel h2{margin:0 0 7px;font:700 42px/1 PravusCondensed,Arial,sans-serif;text-transform:uppercase}
.quote-panel>p{margin:0 0 26px;color:var(--muted);font-size:11px}
.quote-form{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.quote-form label{display:grid;gap:7px;color:#4f5854;font-size:10px;font-weight:700;text-transform:uppercase}
.quote-form .full{grid-column:1/-1}
.quote-form input,.quote-form select,.quote-form textarea{width:100%;border:1px solid #cfd8d4;border-radius:0;background:#fff;color:var(--ink);padding:12px 13px;font-size:14px;text-transform:none;outline:none}
.quote-form input,.quote-form select{height:46px}
.quote-form textarea{resize:vertical}
.quote-form input:focus,.quote-form select:focus,.quote-form textarea:focus{border-color:var(--green);box-shadow:0 0 0 2px rgba(0,155,121,.1)}
.quote-form .btn{justify-self:start;margin-top:3px}
.form-message{margin:0 0 23px;padding:13px 15px;border:1px solid;font-size:12px}
.form-message.success{color:#116c56;border-color:#9bcebf;background:#f2fbf8}
.form-message.error{color:#8b3434;border-color:#ddb6b6;background:#fff7f7}
@media(max-width:1220px){
 .container{width:calc(100% - 76px)}.nav{gap:19px}.header-actions .btn{display:none}
 .service-intro h2{font-size:40px}.service-grid,.projects-grid{grid-template-columns:repeat(2,1fr)}
 .partner-copy h2{font-size:47px}.safety-grid{grid-template-columns:32% 1fr}.safety-items{grid-template-columns:repeat(3,1fr)}
 .route-service-card{grid-template-columns:40% 1fr}.footer-grid{gap:26px}
}
@media(max-width:920px){
 :root{--header:70px}.container{width:calc(100% - 48px)}
 body.admin-bar .site-header{top:32px}.menu-toggle{display:block;margin-left:auto}
 .nav{display:none;position:absolute;top:var(--header);left:0;right:0;align-items:stretch;padding:8px 24px 18px;background:#fff;box-shadow:0 15px 30px rgba(0,0,0,.08);flex-direction:column;gap:0}
 .nav.open{display:flex}.nav a{min-height:45px;border-bottom:1px solid #e7ecea}.whatsapp{display:none}
 .hero-slide img{width:130%;height:auto;max-width:none;object-fit:contain;object-position:center top;transform:translateX(-23%)}
 .hero-slide:after{background:linear-gradient(0deg,#fff 0%,rgba(255,255,255,.93) 38%,rgba(255,255,255,.05) 74%)}
 .hero-content{justify-content:flex-end;padding-top:0;padding-bottom:78px}.hero-message{max-width:610px}
 .hero h1,.hero h2{font-size:64px}.hero-message>p:last-child{max-width:520px}
 .service-layout,.field-grid,.partner-grid{grid-template-columns:1fr}.service-intro>p:not(.kicker){max-width:520px}
 .partner-copy{padding-bottom:25px}.partner-photo{min-height:380px}.metrics-grid{grid-template-columns:repeat(2,1fr)}
 .years,.metric{border-bottom:1px solid var(--line)}.safety-grid{grid-template-columns:1fr}.safety-photo img{height:430px}
 .final-cta-grid{grid-template-columns:1fr 1fr;padding-block:44px}.footer-grid{grid-template-columns:2fr repeat(2,1fr)}
 .hero:before,.hero:after,.services:before,.services:after,.partner:before,.partner:after,.metrics:before,.metrics:after,.projects:before,.projects:after,.field:before,.field:after,.safety:before,.safety:after,.final-cta:after,.site-footer:before,.site-footer:after,.section-mark:before,.section-mark:after{display:none}
 .subhero-grid,.contact-grid{grid-template-columns:1fr}.subhero-grid>div{padding-bottom:38px}.subhero figure,.service-subhero figure,.compact-subhero figure{min-height:430px}
 .subhero{min-height:auto}.route-service-grid{grid-template-columns:1fr}.service-detail-grid,.editorial-grid{grid-template-columns:1fr;gap:36px}.related-grid{grid-template-columns:1fr}
 .contact-copy{padding-top:0}.contact-page{padding-top:66px}
}
@media(max-width:640px){
 :root{--header:64px}.container{width:calc(100% - 32px)}body.admin-bar .site-header{top:46px}
 .brand>span{font-size:26px}.header-actions{display:none}
 .hero{height:670px;min-height:670px}.hero-slide img{width:150%;height:auto;object-fit:contain;object-position:center top;transform:translateX(-32%)}
 .hero h1,.hero h2{font-size:52px}.hero-message>p:last-child{font-size:13px}.eyebrow,.kicker{font-size:9px}
 .hero-buttons{width:100%;gap:8px}.hero-buttons .btn{flex:1;padding-inline:9px;font-size:9px}
 .services,.projects{padding:62px 0}.service-layout{gap:37px}.service-intro h2,.projects h2,.field h2{font-size:39px}
 .service-grid,.projects-grid{grid-template-columns:1fr}.service-card>img{aspect-ratio:1.5}
 .partner-grid{gap:0}.partner-copy{padding:58px 0 25px}.partner-copy h2{font-size:46px}.partner-photo{min-height:300px}
 .metrics{padding:40px 0}.metrics-grid{grid-template-columns:1fr}.years,.metric{min-height:124px;padding:22px 0;border-right:0}
 .years strong{font-size:82px}.projects-head{align-items:start;flex-direction:column;gap:15px}
 .field{padding-bottom:62px}.field-grid{gap:31px}.field-gallery{grid-template-columns:repeat(2,1fr);gap:8px}.field-gallery img{aspect-ratio:1}
 .safety-photo img{height:350px}.safety-content{padding:51px 18px 58px}.safety-content>h2{font-size:43px}.safety-items{grid-template-columns:repeat(2,1fr);gap:22px 14px}.safety-items>div:last-child{grid-column:1/-1}.safety-items p{font-size:9.5px}
 .final-cta-grid{grid-template-columns:1fr;gap:18px;min-height:330px}.final-cta h2{font-size:50px}
 .site-footer{padding-top:49px}.footer-grid{grid-template-columns:1fr 1fr;gap:34px 20px}.footer-grid>div:first-child{grid-column:1/-1}.footer-bottom{flex-direction:column;gap:7px}
 .subhero-grid>div{padding:56px 0 32px}.subhero h1,.contact-page h1{font-size:52px}.subhero-grid>div>p:not(.kicker){font-size:13px}
 .subhero figure,.service-subhero figure,.compact-subhero figure{min-height:300px}.route-services,.service-detail,.related-services,.route-safety,.editorial-copy{padding:60px 0}
 .route-service-card{grid-template-columns:1fr}.route-service-card>img{min-height:220px;aspect-ratio:1.45}.route-service-card>div{padding:27px}
 .service-detail h2,.section-heading h2,.editorial-grid h2{font-size:42px}.service-detail ul{grid-template-columns:1fr}
 .route-projects{padding-top:60px}.route-safety .safety-items{grid-template-columns:1fr}.route-safety .safety-items>div:last-child{grid-column:auto}
 .contact-page{padding:54px 0 68px}.contact-data{grid-template-columns:1fr}.quote-panel{padding:29px 20px}.quote-form{grid-template-columns:1fr}.quote-form .full{grid-column:auto}
}

/* HITO 02.1 — CORRECCION DE PORTADA CONTRA BOCETO MAESTRO */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* 02 · Servicios abiertos, sin cajas uniformes ni columna sobredimensionada. */
.services{padding:58px 0 76px}
.service-layout{display:block}
.service-intro{display:grid;grid-template-columns:31.5% minmax(0,1fr);gap:5%;align-items:center;margin:0 0 42px}
.service-intro .kicker{margin:0 0 15px}
.service-intro h2{margin:0;font:700 clamp(43px,3.55vw,58px)/.88 PravusCondensed,Arial,sans-serif;letter-spacing:.003em;text-transform:uppercase}
.service-intro h2 span{color:var(--green)}
.service-intro-copy{align-self:center;padding-top:10px}
.service-intro-copy i{display:block;width:54px;height:1px;margin:0 0 25px;background:var(--green)}
.service-intro-copy p{max-width:760px;margin:0;color:var(--muted);font-size:14px;line-height:1.62}
.service-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:25px;align-items:start}
.service-card{border:0;background:transparent;overflow:visible;transform:none!important}
.service-card:before{inset:-5px auto auto -5px;width:30px;height:30px;background:none;border-left:1px solid var(--green);border-top:1px solid var(--green);opacity:.82}
.service-card>img{width:100%;height:clamp(238px,18vw,310px);aspect-ratio:auto;object-fit:cover;border-radius:21px 21px 0 21px}
.service-card:nth-child(2)>img{height:clamp(258px,19.5vw,335px)}
.service-card:nth-child(3)>img{height:clamp(218px,16.5vw,285px)}
.service-card:nth-child(4)>img{height:clamp(246px,18.6vw,320px)}
.service-card>div{min-height:0;display:grid;grid-template-columns:32px 38px 1fr;align-items:start;gap:10px;padding:16px 2px 0}
.service-number{color:var(--green);font:700 12px/1 Arial,sans-serif;padding-top:7px}
.service-icon{font-size:27px}
.service-card h3{font-size:22px}

/* 03 · Imagen del equipo como ventana arquitectonica; se elimina el degradado. */
.partner{padding:56px 0 70px}
.partner-grid{min-height:0;grid-template-columns:27% minmax(0,1fr);gap:4.5%;align-items:center}
.partner-copy{padding:25px 0}
.partner-copy h2{font-size:47px}
.partner-copy h2 span{white-space:nowrap}
.partner-photo{height:clamp(350px,27vw,455px);min-height:0;margin:20px 42px 22px 0;overflow:visible}
.partner-photo>img{width:100%;height:100%;object-fit:cover;object-position:center;border-radius:25px 25px 0 25px}
.partner-photo:before{content:"";position:absolute;z-index:-1;left:24%;right:-22px;top:-24px;height:88px;border-top:1px solid var(--green-line);border-right:1px solid var(--green-line);pointer-events:none}
.partner-photo:after{content:"";position:absolute;z-index:3;inset:auto -7px -7px auto;width:50px;height:50px;background:none;border-right:1px solid var(--green-line);border-bottom:1px solid var(--green-line);pointer-events:none}
.partner-detail{position:absolute;z-index:5;right:-46px;bottom:-26px;width:142px;height:142px;padding:5px;overflow:hidden;border-radius:50%;background:#fff;box-shadow:0 14px 38px rgba(23,40,34,.12)}
.partner-detail:after{content:"";position:absolute;inset:5px;border:1px solid rgba(0,155,121,.76);border-radius:50%;pointer-events:none}
.partner-detail img{width:100%;height:100%;object-fit:cover;transform:scale(1.45)}

/* 04 · Metricas compactas como en el hito aprobado. */
.metrics{padding:54px 0}
.years,.metric{min-height:158px}
.years{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding-left:0}
.years strong{order:1;font-size:88px;line-height:.78}
.years b{order:2;align-self:flex-start;margin-top:13px;font-size:32px;line-height:1}
.years small{order:3;margin-top:8px}

/* 05 · Proyectos con ritmo editorial y alturas distintas. */
.projects:not(.route-projects){padding:68px 0 86px}
.projects:not(.route-projects) .projects-head{margin-bottom:29px}
.projects-head h2 span{color:var(--green)}
.projects:not(.route-projects) .projects-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:22px;align-items:start}
.projects:not(.route-projects) .projects-grid article{border:0;background:#fff}
.projects:not(.route-projects) .projects-grid article:nth-child(1){grid-column:span 4}
.projects:not(.route-projects) .projects-grid article:nth-child(2){grid-column:span 2;margin-top:34px}
.projects:not(.route-projects) .projects-grid article:nth-child(3){grid-column:span 4;margin-top:52px}
.projects:not(.route-projects) .projects-grid article:nth-child(4){grid-column:span 2;margin-top:16px}
.projects:not(.route-projects) .projects-grid article:before{inset:-5px auto auto -5px;width:30px;height:30px;background:none;border-left:1px solid var(--green);border-top:1px solid var(--green);opacity:.85}
.projects:not(.route-projects) .projects-grid img{width:100%;height:clamp(210px,17vw,280px);aspect-ratio:auto;object-fit:cover;border-radius:21px 21px 0 21px}
.projects:not(.route-projects) .projects-grid article:nth-child(2) img{height:clamp(255px,21vw,340px)}
.projects:not(.route-projects) .projects-grid article:nth-child(3) img{height:clamp(190px,15vw,245px)}
.projects:not(.route-projects) .projects-grid article:nth-child(4) img{height:clamp(235px,19vw,310px)}
.projects:not(.route-projects) .projects-grid article>div{min-height:116px;border:1px solid var(--line);border-top:0;border-radius:0 0 14px 14px}

/* 06 · Galeria conectada por una linea tecnica y modulos no uniformes. */
.field{padding:2px 0 76px}
.field-grid{grid-template-columns:22% minmax(0,1fr);gap:4.5%}
.field-gallery{display:flex;align-items:center;gap:18px}
.field-gallery:before{left:-36px;right:-5px;top:58%;width:auto;height:1px;border:0;background:var(--green);opacity:.7}
.field-gallery:after{right:-6px;bottom:auto;top:calc(58% - 14px);width:28px;height:28px;border:0;border-right:1px solid var(--green);border-bottom:1px solid var(--green)}
.field-gallery img{position:relative;z-index:2;flex:1 1 0;min-width:0;width:auto;height:150px;aspect-ratio:auto;object-fit:cover;border:5px solid #fff;border-radius:13px 13px 0 13px}
.field-gallery img:nth-child(2){height:184px}
.field-gallery img:nth-child(3){height:132px}
.field-gallery img:nth-child(4){height:172px}

/* 07 · Seguridad dentro de la grilla y sin fotografia a sangre ni difuminado. */
.safety{padding:64px 0 58px;overflow:hidden}
.safety-grid{width:min(calc(100% - 132px),var(--max));min-height:0;grid-template-columns:31% minmax(0,1fr);gap:5%;align-items:center}
.safety-photo{height:390px;margin:8px 0;overflow:visible}
.safety-photo img{width:100%;height:100%;object-fit:cover;object-position:center 34%;filter:grayscale(1);clip-path:polygon(0 0,88% 0,100% 12%,100% 100%,0 100%)}
.safety-photo:before{content:"";position:absolute;z-index:2;inset:-5px auto auto -5px;width:42px;height:42px;border-left:1px solid var(--green);border-top:1px solid var(--green);pointer-events:none}
.safety-photo:after{content:"";display:block;position:absolute;z-index:2;inset:auto -5px -5px auto;width:42px;height:42px;background:none;border-right:1px solid var(--green);border-bottom:1px solid var(--green);pointer-events:none}
.safety-content{padding:18px 0 12px}
.safety-content>h2{font-size:44px}
.safety-items{gap:14px;margin-top:27px}
.safety-items>div{padding:14px 8px 0}
.safety-note{margin-top:22px}
.final-cta-grid{min-height:164px}

@media(max-width:1220px){
 .service-grid{gap:19px}.service-card>img{height:245px}.service-card:nth-child(2)>img{height:270px}.service-card:nth-child(3)>img{height:225px}.service-card:nth-child(4)>img{height:255px}
 .partner-grid{grid-template-columns:28% minmax(0,1fr)}.partner-copy h2{font-size:45px}.partner-photo{margin-right:34px}
 .projects:not(.route-projects) .projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.projects:not(.route-projects) .projects-grid article:nth-child(n){grid-column:auto;margin-top:0}.projects:not(.route-projects) .projects-grid article:nth-child(even){margin-top:28px}.projects:not(.route-projects) .projects-grid article:nth-child(n) img{height:260px}
 .safety-grid{width:calc(100% - 76px);grid-template-columns:34% minmax(0,1fr)}
}
@media(max-width:920px){
 .services{padding:54px 0 66px}.service-intro{grid-template-columns:35% minmax(0,1fr);gap:5%;margin-bottom:36px}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 22px}.service-card>img,.service-card:nth-child(2)>img,.service-card:nth-child(3)>img,.service-card:nth-child(4)>img{height:300px}
 .partner{padding-top:48px}.partner-grid{grid-template-columns:1fr;gap:12px}.partner-copy{padding-bottom:24px}.partner-photo{height:430px;margin:0 34px 24px 0}.partner-photo:after{display:block}
 .field-grid{grid-template-columns:1fr;gap:30px}.field-gallery{grid-template-columns:repeat(4,1fr)}
 .safety-grid{width:calc(100% - 48px);grid-template-columns:1fr;gap:34px}.safety-photo{height:430px}.safety-content{padding:0 0 24px}
}
@media(max-width:640px){
 .services{padding:48px 0 58px}.service-intro{grid-template-columns:1fr;gap:24px;margin-bottom:34px}.service-intro h2{font-size:43px}.service-intro-copy{padding-top:0}.service-intro-copy i{margin-bottom:16px}.service-intro-copy p{font-size:13px}.service-grid{grid-template-columns:1fr;gap:38px}.service-card>img,.service-card:nth-child(2)>img,.service-card:nth-child(3)>img,.service-card:nth-child(4)>img{height:255px}.service-card>div{grid-template-columns:30px 36px 1fr}.service-card h3{font-size:21px}
 .partner{padding:42px 0 56px}.partner-copy h2{font-size:45px}.partner-photo{height:292px;margin-right:18px}.partner-photo:before{right:-9px;top:-13px;height:60px}.partner-detail{right:-14px;bottom:-19px;width:92px;height:92px}
 .years strong{font-size:76px}.years b{font-size:29px}
 .projects:not(.route-projects){padding:56px 0 68px}.projects:not(.route-projects) .projects-head h2{font-size:38px}.projects:not(.route-projects) .projects-grid{grid-template-columns:1fr;gap:34px}.projects:not(.route-projects) .projects-grid article:nth-child(even){margin-top:0}.projects:not(.route-projects) .projects-grid article:nth-child(n) img{height:235px}
 .field-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.field-gallery:before,.field-gallery:after{display:none}.field-gallery img,.field-gallery img:nth-child(2),.field-gallery img:nth-child(3),.field-gallery img:nth-child(4){width:100%;height:150px}
 .safety{padding:50px 0}.safety-grid{width:calc(100% - 32px)}.safety-photo{height:330px}.safety-content>h2{font-size:41px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-slide,.btn,.service-card,.route-service-card{transition:none}.hero-message.active{animation:none}}

/* HITO 02 — SISTEMA ARQUITECTONICO APROBADO */
:root{--graphite:#353b39;--green-line:rgba(0,155,121,.58);--radius-arch:28px;--radius-detail:16px}

/* Hero maestro: ventana fotografica, recorte tecnico y aire editorial. */
.hero{height:clamp(650px,46vw,780px);min-height:650px;background:#fff;overflow:hidden}
.hero-visual{position:absolute!important;inset:0;height:100%;pointer-events:none}
.hero-slides{inset:34px 0 48px 39%;overflow:visible}
.hero-slide{overflow:visible}
.hero-slide>.hero-main-image{width:100%;height:100%;max-width:none;object-fit:cover;object-position:center;border-radius:var(--radius-arch) var(--radius-arch) var(--radius-arch) 0;transform:none}
.hero-slide:before{content:"";position:absolute;z-index:-1;left:17%;right:-1px;top:-25px;height:88px;border-top:1px solid var(--green-line);border-right:1px solid var(--green-line);pointer-events:none}
.hero-slide:after{content:"";position:absolute;z-index:3;right:-5px;bottom:-5px;width:48px;height:48px;background:none;border-right:1px solid var(--green-line);border-bottom:1px solid var(--green-line);pointer-events:none}
.hero-detail{position:absolute;z-index:5;left:-72px;bottom:-24px;width:136px;height:168px;padding:5px;overflow:hidden;border-radius:var(--radius-detail) var(--radius-detail) var(--radius-detail) 0;background:#fff;box-shadow:0 13px 34px rgba(23,40,34,.13)}
.hero-detail:before{content:"";position:absolute;z-index:2;inset:0;border:1px solid rgba(0,155,121,.78);border-radius:inherit;pointer-events:none}
.hero-detail img{width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1.22)}
.hero-slide:nth-child(1) .hero-detail img{object-position:center;transform:none}
.hero-slide:nth-child(2) .hero-detail img{object-position:52% 48%;transform:scale(1.45)}
.hero-slide:nth-child(3) .hero-detail img{object-position:58% 54%;transform:scale(1.45)}
.hero-content{position:relative;z-index:6;padding-top:clamp(76px,5.2vw,101px)}
.hero-message{max-width:38%}
.hero h1,.hero h2{font-size:clamp(64px,4.45vw,86px)}
.hero-message>p:last-child{max-width:420px;font-size:14px}
.hero-dots{bottom:18px}

/* Lenguaje compartido por todas las paginas interiores. */
.inner-page{overflow:hidden;background:#fff}
.inner-page .subhero{min-height:0;padding:52px 0 70px;align-items:center;overflow:visible}
.inner-page .subhero-grid{grid-template-columns:minmax(330px,.78fr) minmax(0,1.22fr);gap:6.5%;align-items:center}
.inner-page .subhero-grid>div{position:relative;z-index:4;padding:30px 0}
.inner-page .subhero h1{max-width:660px;font-size:clamp(55px,3.9vw,76px)}
.inner-page .subhero-grid>div>p:not(.kicker){max-width:540px;font-size:14px}
.inner-page .subhero-grid>div:after{content:"";display:block;width:52px;height:1px;margin-top:34px;background:var(--green)}
.architectural-media{position:relative;height:clamp(430px,31vw,560px);min-height:0!important;margin:0 20px 24px 0;overflow:visible}
.architectural-media>.architectural-main{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-arch) var(--radius-arch) var(--radius-arch) 0}
.subhero .architectural-media:before{content:"";position:absolute;z-index:-1;left:18%;right:-20px;top:-27px;height:96px;border-top:1px solid var(--green-line);border-right:1px solid var(--green-line);pointer-events:none}
.subhero .architectural-media:after{content:"";position:absolute;z-index:2;right:-7px;bottom:-7px;width:52px;height:52px;inset:auto -7px -7px auto;background:none;border-right:1px solid var(--green-line);border-bottom:1px solid var(--green-line);pointer-events:none}
.architectural-detail{position:absolute;z-index:5;left:-46px;bottom:-25px;width:126px;height:156px;padding:5px;overflow:hidden;border-radius:var(--radius-detail) var(--radius-detail) var(--radius-detail) 0;background:#fff;box-shadow:0 14px 38px rgba(23,40,34,.12)}
.architectural-detail:after{content:"";position:absolute;inset:5px;border:1px solid rgba(0,155,121,.76);border-radius:calc(var(--radius-detail) - 4px);pointer-events:none}
.architectural-detail img{width:100%;height:100%;object-fit:cover;transform:scale(1.15)}
.architectural-detail--round{left:auto;right:-26px;width:146px;height:146px;border-radius:50%}
.architectural-detail--round:after{border-radius:50%}
.architectural-media--wide>.architectural-main,.architectural-media--about>.architectural-main{object-position:center}
.architectural-media--projects>.architectural-main{object-position:center 42%}
.architectural-media--safety>.architectural-main{object-position:center 28%;filter:grayscale(1)}
.architectural-media--safety .architectural-detail img{object-position:center 30%;filter:grayscale(1);transform:scale(1.55)}

/* Servicios: secuencia editorial de alturas variables. */
.route-services{padding:78px 0 110px}
.route-service-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;align-items:start}
.route-service-card{position:relative;display:block;border:0;background:transparent;transform:none!important}
.route-service-card:before{inset:-5px auto auto -5px;width:34px;height:34px;background:none;border-left:1px solid var(--green);border-top:1px solid var(--green);opacity:.82}
.route-service-card:after{content:"";position:absolute;z-index:3;right:-5px;top:46%;width:30px;height:30px;border-right:1px solid rgba(0,155,121,.5);border-bottom:1px solid rgba(0,155,121,.5);pointer-events:none}
.route-service-card>img{width:100%;height:auto;min-height:0;aspect-ratio:.88;object-fit:cover;border-radius:22px 22px 22px 0}
.route-service-card--2,.route-service-card--4{margin-top:44px}
.route-service-card--2>img{aspect-ratio:.78}
.route-service-card--3>img{aspect-ratio:.94}
.route-service-card--4>img{aspect-ratio:.82}
.route-index{position:absolute;z-index:5;left:10px;top:10px;display:grid!important;place-items:center;width:35px;height:35px;border-radius:0 10px 10px 10px;background:var(--green);color:#fff!important;font:700 11px/1 Arial,sans-serif}
.route-service-card>div{padding:20px 5px 0}
.route-service-card>div>span{display:inline-block;margin-bottom:8px;font-size:28px}
.route-service-card h2{margin:0 0 11px;font-size:29px}
.route-service-card p{min-height:78px;margin-bottom:15px;font-size:11px}
.route-service-card b{padding-top:12px;border-top:1px solid var(--line)}

/* Contenido tecnico y enlaces relacionados. */
.service-detail,.editorial-copy,.route-safety{position:relative;overflow:hidden}
.service-detail:after,.editorial-copy:after,.route-safety:after{content:"";position:absolute;z-index:0;right:-54px;bottom:24px;width:430px;height:92px;opacity:.045;background:repeating-linear-gradient(28deg,transparent 0 25px,var(--graphite) 26px 27px),repeating-linear-gradient(-28deg,transparent 0 25px,var(--graphite) 26px 27px);pointer-events:none}
.service-detail>.container,.editorial-copy>.container,.route-safety>.container{position:relative;z-index:2}
.service-detail li{position:relative;border:0;border-top:1px solid var(--line);border-radius:0 15px 15px 15px;background:#f8faf9}
.service-detail li:after{content:"";position:absolute;left:0;top:-1px;width:30px;height:1px;background:var(--green)}
.related-grid a{position:relative;border:0;border-bottom:1px solid var(--line);border-radius:0 13px 13px 13px;background:#fff}
.related-grid a:before{content:"";position:absolute;left:0;top:0;width:18px;height:18px;border-left:1px solid var(--green);border-top:1px solid var(--green)}

/* Proyectos: mosaico asimetrico, sin perder jerarquia de lectura. */
.route-projects{padding:86px 0 116px}
.route-projects .projects-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:22px;align-items:start}
.route-projects .projects-grid article{border:0;background:#fff}
.route-projects .projects-grid article:nth-child(1){grid-column:span 4}
.route-projects .projects-grid article:nth-child(2){grid-column:span 3;margin-top:46px}
.route-projects .projects-grid article:nth-child(3){grid-column:span 3;margin-top:19px}
.route-projects .projects-grid article:nth-child(4){grid-column:span 2;margin-top:66px}
.route-projects .projects-grid article:before{inset:-5px auto auto -5px;width:30px;height:30px;background:none;border-left:1px solid var(--green);border-top:1px solid var(--green);opacity:.85}
.route-projects .projects-grid img{width:100%;aspect-ratio:1.08;object-fit:cover;border-radius:22px 22px 0 22px}
.route-projects .projects-grid article:nth-child(2) img{aspect-ratio:.8}
.route-projects .projects-grid article:nth-child(3) img{aspect-ratio:.92}
.route-projects .projects-grid article:nth-child(4) img{aspect-ratio:.72}
.route-projects .projects-grid article>div{min-height:126px;border:1px solid var(--line);border-top:0;border-radius:0 0 15px 15px}

/* Nosotros, seguridad y contacto heredan el mismo rigor modular. */
.route-metrics{position:relative}
.route-metrics:before{content:"";position:absolute;left:50%;top:0;width:1px;height:32px;background:var(--green-line)}
.editorial-grid h2{position:relative}
.editorial-grid h2:after{content:"";display:block;width:52px;height:1px;margin-top:28px;background:var(--green)}
.route-safety .safety-items>div{position:relative;padding:22px 14px 17px;border-top:1px solid var(--line);border-radius:0 14px 14px 14px;background:#f8faf9}
.route-safety .safety-items>div:before{content:"";position:absolute;left:0;top:-1px;width:28px;height:1px;background:var(--green)}
.route-safety .safety-note{border-radius:0 13px 13px 13px;background:#fff}
.contact-page{position:relative;padding:86px 0 108px}
.contact-copy{position:relative;padding:38px 8% 0 0}
.contact-copy:after{content:"";position:absolute;right:1%;top:7%;width:74px;height:1px;background:var(--green-line)}
.quote-panel{position:relative;padding:48px;border-radius:var(--radius-arch) var(--radius-arch) 0 var(--radius-arch);box-shadow:0 20px 60px rgba(18,37,30,.075)}
.quote-panel:before{content:"";position:absolute;z-index:-1;left:15%;right:-22px;top:-24px;height:88px;border-top:1px solid var(--green-line);border-right:1px solid var(--green-line)}
.quote-panel:after{content:"";position:absolute;right:-7px;bottom:-7px;width:46px;height:46px;border-right:1px solid var(--green-line);border-bottom:1px solid var(--green-line)}
.quote-form input,.quote-form select,.quote-form textarea{border-radius:0 9px 9px 9px;background:#fbfcfc}
.final-cta-grid{position:relative}
.final-cta-grid:before{content:"";position:absolute;left:0;top:26px;width:52px;height:1px;background:var(--green)}
.generic-page{min-height:70vh;padding:90px 0 110px;background:#fff}
.generic-page-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:8%;align-items:start}
.generic-page header h1{margin:0;font:700 clamp(55px,3.9vw,76px)/.9 PravusCondensed,Arial,sans-serif;text-transform:uppercase}
.generic-page header>span{display:block;width:52px;height:1px;margin-top:30px;background:var(--green)}
.generic-page-content{position:relative;padding:44px;border:1px solid var(--line);border-radius:var(--radius-arch) var(--radius-arch) 0 var(--radius-arch);color:var(--muted)}
.generic-page-content:before{content:"";position:absolute;z-index:-1;left:17%;right:-22px;top:-24px;height:88px;border-top:1px solid var(--green-line);border-right:1px solid var(--green-line)}
.generic-page-content>*:first-child{margin-top:0}.generic-page-content>*:last-child{margin-bottom:0}

@media(max-width:1220px){
 .hero-slides{left:36%}.hero-message{max-width:35%}.hero h1,.hero h2{font-size:62px}
 .route-service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px}.route-service-card--2,.route-service-card--4{margin-top:34px}
 .route-projects .projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.route-projects .projects-grid article:nth-child(n){grid-column:auto;margin-top:0}.route-projects .projects-grid article:nth-child(even){margin-top:34px}
}
@media(max-width:920px){
 .hero{height:780px;min-height:780px}.hero-visual{height:100%}.hero-slides{left:0;right:0;top:22px;bottom:auto;height:390px}.hero-slide>.hero-main-image{width:100%;height:100%;transform:none;object-fit:cover}.hero-slide:before{top:-14px}.hero-detail{left:18px;bottom:-20px;width:96px;height:118px}
 .hero-content{justify-content:flex-end;padding:0 0 66px}.hero-message{max-width:100%}.hero h1,.hero h2{font-size:60px}.hero-message>p:last-child{max-width:570px}.hero-dots{bottom:19px}
 .inner-page .subhero{padding:48px 0 74px}.inner-page .subhero-grid{grid-template-columns:1fr;gap:26px}.inner-page .subhero-grid>div{padding:22px 0 34px}.architectural-media{height:430px;margin-left:38px}.architectural-detail{left:-38px}
 .route-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.route-projects .projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .contact-copy{padding-right:0}.contact-copy:after{display:none}.quote-panel{margin-top:26px}
 .generic-page-grid{grid-template-columns:1fr;gap:42px}
}
@media(max-width:640px){
 .hero{height:720px;min-height:720px}.hero-slides{top:15px;height:292px}.hero-slide>.hero-main-image{border-radius:18px 18px 18px 0}.hero-slide:before{left:24%;top:-9px;height:55px}.hero-detail{display:none}.hero-content{padding-bottom:58px}.hero h1,.hero h2{font-size:49px}.hero-message>p:last-child{font-size:12.5px}
 .inner-page .subhero{padding:35px 0 56px}.inner-page .subhero h1{font-size:49px}.architectural-media{height:310px;margin:0 0 18px 21px}.architectural-media>.architectural-main{border-radius:19px 19px 19px 0}.subhero .architectural-media:before{left:24%;right:-9px;top:-14px;height:55px}.architectural-detail{left:-21px;bottom:-17px;width:82px;height:101px;padding:4px}.architectural-detail--round{left:auto;right:-8px;width:92px;height:92px}
 .route-services,.route-projects{padding:58px 0 74px}.route-service-grid,.route-projects .projects-grid{grid-template-columns:1fr;gap:38px}.route-service-card--2,.route-service-card--4,.route-projects .projects-grid article:nth-child(even){margin-top:0}.route-service-card>img,.route-service-card--2>img,.route-service-card--3>img,.route-service-card--4>img{aspect-ratio:1.28}.route-service-card p{min-height:0}.route-projects .projects-grid article:nth-child(n) img{aspect-ratio:1.28}
 .quote-panel{padding:30px 20px;border-radius:20px 20px 0 20px}.quote-panel:before{right:-9px;top:-13px;height:55px}
 .generic-page{padding:58px 0 78px}.generic-page-content{padding:28px 20px;border-radius:20px 20px 0 20px}
}

/* HITO 03 — HERO OSCURO EDITORIAL SOBRE LA PORTADA BLANCA */
.site-header--hero{transition:background-color .28s ease,border-color .28s ease,box-shadow .28s ease}
.site-header--hero:not(.scrolled){background:linear-gradient(180deg,rgba(3,6,5,.68) 0%,rgba(3,6,5,.36) 68%,rgba(3,6,5,0) 100%);border-bottom-color:transparent;box-shadow:none;backdrop-filter:none}
.site-header--hero:not(.scrolled) .brand>span{color:#fff}
.site-header--hero:not(.scrolled) .brand small{color:rgba(255,255,255,.72)}
.site-header--hero:not(.scrolled) .nav a{color:rgba(255,255,255,.88)}
.site-header--hero:not(.scrolled) .nav a.active,.site-header--hero:not(.scrolled) .nav a:hover{color:#fff;border-color:var(--green)}
.site-header--hero:not(.scrolled) .menu-toggle{color:#fff}

.hero{height:clamp(650px,47.5vw,790px);min-height:650px;margin-top:0;background:#050807;overflow:hidden}
.hero .hero-visual{position:absolute!important;inset:0;width:100%;max-width:none;height:100%;margin:0;pointer-events:none}
.hero .hero-slides{position:absolute;inset:0;overflow:hidden}
.hero .hero-slide{position:absolute;inset:0;overflow:hidden}
.hero .hero-slide:before{display:none}
.hero .hero-slide:after{content:"";display:block;position:absolute;z-index:3;inset:0;width:auto;height:auto;border:0;background:linear-gradient(90deg,rgba(3,6,5,.3) 0%,rgba(3,6,5,.22) 30%,rgba(3,6,5,.1) 42%,transparent 58%);pointer-events:none}
.hero .hero-slide picture{position:absolute;inset:0;display:block}
.hero .hero-slide .hero-main-image{width:100%;height:100%;max-width:none;object-fit:cover;object-position:center;border:0;border-radius:0;transform:none}
.hero .hero-content{position:relative;z-index:6;height:100%;justify-content:flex-start;padding-top:clamp(88px,7vw,110px);padding-bottom:58px}
.hero .hero-message{max-width:39%}
.hero h1,.hero h2{margin-bottom:22px;color:#fff;font-size:clamp(62px,4.35vw,84px)}
.hero .hero-message>p:last-child{max-width:420px;min-height:130px;color:rgba(255,255,255,.82);font-size:13.5px;line-height:1.58}
.hero .hero-buttons{margin-top:20px}
.hero .hero-buttons .btn-outline{min-width:166px;border-color:rgba(255,255,255,.68);background:rgba(0,0,0,.12);color:#fff}
.hero .hero-buttons .btn-outline:hover{border-color:var(--green);background:var(--green);color:#fff}
.hero .hero-dots{bottom:22px}
.hero .hero-dots button{background:rgba(255,255,255,.4)}
.hero .hero-dots button.active{background:var(--green)}

/* Encuadre aprobado: fotografia ampliada e integrada detras del texto, sin corte lateral. */
@media(min-width:921px){
 .hero .hero-slide:first-child picture{inset:0 0 6% 28%}
 .hero .hero-slide:first-child .hero-main-image{
  object-fit:cover;
  object-position:center top;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.22) 12%,#000 31%,#000 100%);
  mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.22) 12%,#000 31%,#000 100%);
 }
 .hero .hero-slide:first-child:after{background:linear-gradient(0deg,rgba(3,6,5,.82) 0%,rgba(3,6,5,.22) 14%,transparent 30%),linear-gradient(90deg,rgba(3,6,5,.68) 0%,rgba(3,6,5,.5) 31%,rgba(3,6,5,.18) 48%,transparent 66%)}
}

@media(max-width:1220px){
 .hero .hero-message{max-width:43%}
 .hero h1,.hero h2{font-size:60px}
}
@media(max-width:920px){
 .site-header--hero:not(.scrolled) .nav.open{background:#070a09;box-shadow:0 16px 32px rgba(0,0,0,.28)}
 .site-header--hero:not(.scrolled) .nav.open a{border-bottom-color:rgba(255,255,255,.12)}
 .hero{height:820px;min-height:820px}
 .hero:before,.hero:after{display:none}
 .hero .hero-slide:after{background:linear-gradient(0deg,rgba(3,6,5,.99) 0%,rgba(3,6,5,.94) 51%,rgba(3,6,5,.43) 76%,rgba(3,6,5,.12) 100%)}
 .hero .hero-slide .hero-main-image{object-position:center 28%}
 .hero .hero-slide:first-child picture{inset:0;height:46%;bottom:auto}
 .hero .hero-slide:first-child .hero-main-image{object-fit:contain;object-position:center top;-webkit-mask-image:linear-gradient(0deg,transparent 0%,#000 24%,#000 100%);mask-image:linear-gradient(0deg,transparent 0%,#000 24%,#000 100%)}
 .hero .hero-content{justify-content:flex-end;padding:0 0 62px}
 .hero .hero-message{max-width:100%}
 .hero h1,.hero h2{font-size:58px}
 .hero .hero-message>p:last-child{max-width:450px;min-height:0;font-size:13px}
 .hero .hero-dots{bottom:20px}
}
@media(max-width:640px){
 .hero{height:790px;min-height:790px}
 .hero .hero-slide .hero-main-image{object-position:center 22%}
 .hero .hero-slide:first-child picture{height:43%}
 .hero .hero-content{padding-bottom:54px}
 .hero h1,.hero h2{font-size:48px}
 .hero .hero-message>p:last-child{font-size:12px;line-height:1.52}
 .hero .hero-buttons{margin-top:18px;width:auto}
 .hero .hero-buttons .btn{min-width:154px;flex:0 0 auto;padding-inline:20px;font-size:9px}
}
