:root{--tinta:#182622;--gris:#53605a;--blanco:#fff;--hueso:#f3f5f2;--linea:#dce3dd;--naranja:#a95a29;--naranja-claro:#eef2ed;--texto:'DM Sans',sans-serif;--display:'Manrope',sans-serif;--gap:100px;--pad:clamp(24px,5vw,80px)}
body{font-weight:400;font-size:16px;line-height:1.7}h1,h2,h3{letter-spacing:-.045em}h1,h2{text-transform:none;font-weight:500}h2{color:var(--tinta);font-size:clamp(2rem,4vw,3.4rem);line-height:1.15}h3{letter-spacing:-.02em}p,.lead,.valor p,.det p,.dir li,.eq p,.ben p,.slide blockquote,.svc>div>p,.banner-lead{text-align:left;hyphens:none}.wrap{max-width:1440px}.head{background:#fff;border-bottom:1px solid #e8ece8}.head-in{min-height:92px}.logo img{height:51px}.nav{gap:24px}.nav a{font-size:14px;color:var(--tinta)}.nav .btn{color:white;padding:12px 20px}.btn{background:var(--tinta);border:1px solid var(--tinta);color:white;border-radius:0;padding:15px 25px;font-size:14px}.btn:hover{background:#354b40;border-color:#354b40}.btn-claro{background:transparent;border-color:#ffffff80;color:white}.banner{min-height:680px;align-items:center}.banner>img{object-position:center 55%}.banner::after{background:linear-gradient(90deg,rgba(9,26,22,.88),rgba(9,26,22,.55) 52%,rgba(9,26,22,.13))}.banner-in{padding-block:85px}.banner h1{font-size:clamp(3.3rem,7.7vw,7.3rem);max-width:12ch;line-height:1.03;letter-spacing:-.065em}.banner h1 em{font-style:normal;color:#d9e4ca}.cintillo{color:#e0e7d6;letter-spacing:.2em;font-size:12px;margin-bottom:30px}.banner-lead{font-size:18px;max-width:44ch;line-height:1.65}.banner .btn-solid{background:#fff;color:#182622;border-color:white}.banner-pie{font-size:12px;color:#dce4db;max-width:58ch;margin-top:50px}.cifras{background:#182622;color:white;border:0}.cifras-in{padding-inline:var(--pad)!important}.cifra{padding:35px 25px;border-color:#ffffff25}.cifra:first-child{padding-left:0}.cifra b{font-size:2rem;color:#d9e4ca;letter-spacing:-.04em}.cifra span{font-size:14px;color:#c4cfc8;max-width:24ch}.eyebrow{font-size:12px;letter-spacing:.16em;font-weight:600;color:#7a6251;margin-bottom:20px}.sec-h{grid-template-columns:1.15fr 1fr;gap:70px;margin-bottom:45px}.text-link{display:inline-block;margin-top:22px;text-decoration:none;border-bottom:1px solid #182622;padding-bottom:6px;font-size:14px}.grid{gap:38px 25px}.proj,.proj.f-d{display:flex;grid-column:auto;border:0;border-radius:0;background:transparent}.proj .pic,.proj.f-d .pic{padding-top:68%;height:0;min-height:0;border:0}.proj img{transition:transform .7s}.proj:hover img{transform:scale(1.035)}.proj-b,.proj.f-d .proj-b{padding:20px 0 0;display:block}.proj h3,.proj.f-d h3{text-transform:none;font-family:var(--display);font-size:19px;line-height:1.35;font-weight:600}.proj .alc,.proj.f-d .alc{font-size:14px;margin-top:10px}.proj .meta,.proj.f-d .meta{font-size:14px;color:#53605a}.proj .cli{font-size:13px;color:#53605a}.featured{grid-template-columns:repeat(3,1fr)}.sec-hueso{border:0}.svcs{gap:0 45px}.svc{border:0;border-top:1px solid #cbd5cc;border-radius:0;background:transparent;padding:30px 0;gap:25px}.svc .num{font-size:15px;color:#7d897e;margin-top:5px}.svc h3{font-size:21px}.svc p{font-size:16px!important}.tags li{font-size:12px;background:transparent;border-color:#d0d8d0}.svc summary{font-size:14px;color:#4d6456}.somos-img{border-radius:0;padding-top:100%}.valor{border-radius:0;background:#182622;color:#dde6df;padding:40px}.valor h3{color:#d9e4ca;text-transform:none;font-size:24px}.bens{gap:28px}.ben{border-color:#b6c3b7}.ben h3{font-size:18px}.ben p{font-size:15px}.car{padding-inline:50px}.slide{border:0!important;background:#f3f5f2!important;padding:45px!important}.slide blockquote{font-size:18px!important}.testi.ceo{background:white;border-left:2px solid #a95a29;padding:20px 30px}.dir{border:0;border-top:1px solid #dce3dd;border-radius:0;padding:28px 0;background:transparent}.dir details summary{cursor:pointer;font-size:14px;color:#53605a}.dir details ul{margin-top:20px}.dir .ini{background:#e4eae2;color:#31473b;border-radius:0}.eq p{font-size:15px}.meto li{padding:16px 0}.meto span{color:#72816f}.cont{gap:80px}.dato{border-top:1px solid #c5d0c6}.dato h3{font-size:20px}.dato a{color:#31473b}.form-note{font-size:14px;margin-top:18px;color:#53605a}.foot{background:#182622;color:#e1e9e3;border:0}.foot a,.foot-b{color:#becac1}.foot img{background:white;padding:8px;height:66px}.foot-b{border-color:#ffffff25}.wa{background:#314f3b;box-shadow:none;border:1px solid #ffffff66}.portfolio{padding-top:45px}.chip{border-radius:2px;font-size:14px}.chip.is-on{background:#182622;border-color:#182622}.f label{font-size:14px}.f input,.f textarea,.f select{border-radius:0;padding:13px}.eqs{gap:30px}.foot-g p{font-size:14px}.norm{font-size:13px}
@media(min-width:901px){.featured .proj:first-child{grid-column:span 2}.featured .proj:first-child .pic{padding-top:48%}.featured .proj:nth-child(2) .pic{padding-top:100%}.featured .proj:first-child h3{font-size:26px}}
@media(max-width:1100px){.nav{gap:12px}.nav a{font-size:13px}.head-in{gap:20px}.logo img{height:40px}.banner{min-height:590px}}
@media(max-width:900px){:root{--gap:65px}.sec-h{grid-template-columns:1fr;gap:25px}.featured{grid-template-columns:repeat(2,1fr)}.cont{gap:45px}.banner{min-height:580px}.banner-in{padding-block:65px}.bens{grid-template-columns:repeat(2,1fr)}.cifra{padding:25px 15px}.car{padding:0}.nav a{font-size:14px}}
@media(max-width:700px){.head-in{min-height:78px}.banner h1{font-size:clamp(3.2rem,12vw,5rem)}.banner{min-height:610px}.banner-lead{font-size:16px}.banner::after{background:linear-gradient(90deg,#10241ee8,#10241e80)}.banner-pie{margin-top:36px}.featured{grid-template-columns:1fr}.cifra:nth-child(3){padding-left:0}.cifra b{font-size:1.65rem}.cifra span{font-size:13px}.bens{grid-template-columns:1fr}.slide{padding:25px!important}.slide blockquote{font-size:16px!important}.car .flecha{display:none}.svcs{grid-template-columns:1fr}.eyebrow{font-size:12px}.sec-h{margin-bottom:30px}.banner-cta .btn{padding:13px 18px}.valor{padding:28px}.nav .btn{margin-top:12px}.eje{grid-template-columns:1fr}.proj.f-d{grid-column:auto}.grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media(min-width:701px) and (max-width:1100px){.menu-btn{display:block}.head-in{position:relative}.nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;background:#fff;border-bottom:1px solid var(--linea);padding:16px var(--pad)}.nav.open{display:flex}.nav a{padding:12px 0}.nav .btn{padding:12px 20px;text-align:center}}
/* AVe refinement: original photographs, complete framing, clear structural expertise. */
.cintillo{text-transform:none}.banner{display:block;min-height:0;aspect-ratio:16/9;background:#d0e5ec;isolation:isolate}.banner>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;z-index:-2}.banner::after{background:linear-gradient(180deg,rgba(9,28,30,.32),rgba(9,28,30,0) 68%)}.banner-in{padding-top:clamp(35px,4vw,75px);padding-bottom:220px}.banner h1{font-size:clamp(2.6rem,5.5vw,5.7rem);max-width:20ch;line-height:1.07;letter-spacing:-.05em}.banner h1 em{color:#fff}.banner-lead{font-size:16px;max-width:50ch;margin-top:20px}.banner .cintillo{margin-bottom:20px;color:#fff}.banner-cta{margin-top:25px}.banner-caption{position:absolute;bottom:0;left:0;right:0;padding:14px var(--pad);background:linear-gradient(transparent,#10241ed9);color:white;font-size:13px;text-align:right}.expertise{background:#182622;color:#cbd7cd}.expert-intro{display:grid;grid-template-columns:1.05fr 1fr;gap:70px}.expertise h2{color:#fff;font-size:clamp(2rem,3.6vw,3.3rem)}.expertise .eyebrow{color:#c7d8b7}.expert-lead{font-size:25px;line-height:1.4;color:#e0eccf;margin-bottom:20px;letter-spacing:-.025em}.expert-proof{margin-top:18px}.expert-cases{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;margin-top:55px}.expert-cases a{border-top:1px solid #748674;padding-top:24px;text-decoration:none}.expert-cases span{font-size:12px;letter-spacing:.12em;color:#bfceb6}.expert-cases h3{font-size:20px;line-height:1.4;color:white;margin:16px 0 10px}.expert-cases p{font-size:14px}.expert-cases a:hover h3{color:#d9e4ca}.expertise .text-link{color:#d9e4ca;border-color:#748674;margin-top:35px}.cifras{background:#f3f5f2;color:#182622}.cifra b{color:#182622}.cifra span{color:#53605a}.cifra{border-color:#dce3dd}
.grid,.featured{align-items:start}.proj .pic,.proj.f-d .pic,.featured .proj:first-child .pic,.featured .proj:nth-child(2) .pic{padding:0;height:auto;min-height:0;background:#f3f5f2;overflow:visible}.pic img,.proj.f-d .pic img{position:static;display:block;width:100%;height:auto;max-height:none;object-fit:contain;transform:none!important}.project-image{display:block;cursor:zoom-in}.featured .proj:first-child{grid-column:auto}.featured .proj:first-child h3{font-size:19px}.featured{grid-template-columns:repeat(3,minmax(0,1fr))}.somos-img{padding:0}.somos-img img{position:static;height:auto;object-fit:contain}
@media(max-width:900px){.expert-intro{grid-template-columns:1fr;gap:30px}.expert-cases{gap:22px}.banner{aspect-ratio:auto;padding-bottom:0}.banner>img{position:relative;z-index:0;aspect-ratio:16/9;object-fit:contain}.banner::after{display:none}.banner-in{background:#182622;padding-block:35px;position:relative}.banner-caption{position:static;background:#182622;text-align:left;padding-top:0}.banner h1{font-size:clamp(2.5rem,7vw,4rem)}.featured{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.expert-cases,.featured{grid-template-columns:1fr}.expert-cases{margin-top:35px}.expert-lead{font-size:22px}.banner h1{font-size:clamp(2.3rem,9vw,3.8rem)}.banner-cta{gap:12px}.banner-in{padding-bottom:35px}}
/* Uniform project frames: complete image, consistent size, vertical buildings grouped. */
.grid,.featured{align-items:stretch}.proj,.proj.f-d{height:100%}.grid .proj .pic,.grid .proj.f-d .pic,.grid.featured .proj:first-child .pic,.grid.featured .proj:nth-child(2) .pic{position:relative;width:100%;height:auto;min-height:0;padding:0;aspect-ratio:4/3;overflow:hidden;background:#edf0ed;flex:none}.grid .project-image{display:flex;align-items:center;justify-content:center;width:100%;height:100%;position:absolute;inset:0}.grid .pic img,.grid .proj.f-d .pic img{position:static;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center;transform:none!important}.grid .proj-b,.grid .proj.f-d .proj-b{padding:20px 0 24px;flex:1;border-bottom:1px solid var(--linea)}.somos-img img{width:100%;height:auto;object-fit:contain}

/* Justified body copy; headings, controls and contact details keep their alignment. */
main .lead, main .banner-lead, main .valor p, main .det p,
main .ben p, main .svc > div > p, main .eq p,
main .slide blockquote, main .expert-lead, main .expert-proof,
main .expert-cases p, main .pub-intro,
main .pub-card > p:not(.pub-meta), main .pub-empty > p {
  text-align: justify;
  text-align-last: start;
  hyphens: auto;
  -webkit-hyphens: auto;
}

/* Prominent project and brochure actions. */
.feature-cta{display:inline-flex;align-items:center;justify-content:space-between;gap:26px;min-height:64px;max-width:100%;margin-top:28px;padding:18px 26px;background:#182622;color:#fff;border:1px solid #182622;border-radius:4px;text-decoration:none;font-size:16px;font-weight:600;line-height:1.45;text-align:left;box-shadow:0 5px 14px #18262214;transition:background .2s,box-shadow .2s}
.feature-cta:hover{background:#354b40;border-color:#354b40;box-shadow:0 7px 20px #18262226}
.feature-cta:focus-visible{outline:3px solid #a95a29;outline-offset:5px}
.feature-cta .cta-icon{display:block;flex:none;width:24px;height:24px;font-size:25px;line-height:24px}
.feature-cta-light{background:#fff;color:#182622;border-color:#fff;margin-top:35px}
.feature-cta-light:hover{background:#e5eddd;border-color:#e5eddd}
.cta-format{display:inline-block;font-size:12px;letter-spacing:.04em;border:1px solid #ffffff60;border-radius:3px;padding:2px 6px;margin-left:8px;vertical-align:middle}
@media(max-width:600px){.feature-cta{display:flex;width:100%;padding:18px 20px;gap:16px}}

/* Legal company name and white footer brand on dark green. */
.hero-legal-name{display:block;font-size:14px;line-height:1.5;letter-spacing:.055em;margin-top:8px}
.foot{isolation:isolate}
.foot img{background:transparent;padding:0;filter:grayscale(1) invert(1) brightness(3);mix-blend-mode:screen}
.foot .footer-legal-name{color:#fff;font-size:14px;font-weight:600;line-height:1.5;letter-spacing:.025em;margin-bottom:12px;max-width:36ch}
.foot .footer-brand{color:#becac1;font-size:14px;max-width:36ch}

/* Clear hero actions and full-width value statement. */
.banner .btn-claro{background:#182622;color:#fff;border:2px solid #fff;font-weight:600;box-shadow:0 3px 14px #0003}
.banner .btn-claro:hover{background:#314f3b;color:#fff;border-color:#fff}
.banner .hero-brochure{background:#e1e9dc;color:#182622;border-color:#e1e9dc;display:inline-flex;align-items:center;gap:14px;font-weight:600}
.banner .hero-brochure:hover{background:#fff;border-color:#fff}
.banner-cta{flex-wrap:wrap}
.banner-cta a:focus-visible{outline:3px solid #fff;outline-offset:5px}
main .valor p{max-width:none;width:100%;hyphens:none;-webkit-hyphens:none;word-break:normal;overflow-wrap:normal}
.valor h3{max-width:none;height:auto;overflow:visible;hyphens:none}
.testi.ceo::before{content:none}
.testi.ceo blockquote{padding:0;line-height:1.8}
.featured .proj{min-width:0;grid-column:auto}

.hero-brochure .cta-icon{width:24px;height:24px;flex:none}.hero-brochure .cta-format{border-color:#18262255}

/* Consistent section headings and a 20 percent larger header brand. */
.logo img{height:61.2px}
@media(max-width:1100px){.logo img{height:48px}}
.sec-h>div>h2,.somos h2,.como h2{text-align:left}

/* Keep desktop hero content in the sky, above the building facade. */
@media(min-width:901px){
  .banner-in{padding-top:clamp(32px,3.5vw,64px);padding-bottom:0}
  .banner .cintillo{font-size:11px;line-height:1.4;margin-bottom:10px}
  .banner .hero-legal-name{font-size:12px;line-height:1.4;margin-top:5px}
  .banner h1{font-size:clamp(34px,3.8vw,70px);line-height:1.04;margin:0}
  .banner-lead{font-size:14px;line-height:1.5;max-width:70ch;margin-top:10px}
  .banner-cta{margin-top:12px;gap:12px}
  .banner-cta .btn{padding:12px 18px;min-height:48px;line-height:1.4}
}

/* Align the actions with the roof tip, keeping a small clear gap. */
@media(min-width:901px){
  .banner-in{position:absolute;left:0;right:0;bottom:calc(52.2% + 12px);padding-top:0;padding-bottom:0}
}
@media(min-width:901px) and (max-width:1050px){
  .banner h1{font-size:3.5vw}
}

/* Compact service marks with gentle interaction. */
.service-heading{display:flex;align-items:center;gap:16px;margin-bottom:18px}
.service-icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;flex:0 0 64px;border-radius:14px;background:#eef2ed;color:#314f3b}
.service-icon svg{width:44px;height:44px;transition:transform .3s ease}
.service-heading h3{margin:0;min-width:0}
.svc:hover .service-icon svg,.svc:focus-within .service-icon svg{transform:translateY(-3px)}
.svc>div{min-width:0}
@media(max-width:600px){.service-heading{gap:12px}.service-icon{width:52px;height:52px;flex-basis:52px}.service-icon svg{width:36px;height:36px}}
@media(prefers-reduced-motion:reduce){.service-icon svg{transition:none}.svc:hover .service-icon svg,.svc:focus-within .service-icon svg{transform:none}}

/* Recognizable expandable controls, including professional backgrounds. */
main details>summary{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%;min-height:52px;margin-top:16px;padding:14px 18px;border:1px solid #9cab9f;border-radius:5px;background:#edf2ed;color:#182622;font-size:14px;font-weight:600;line-height:1.5;list-style:none;cursor:pointer;box-shadow:0 2px 5px #1826220d;text-align:left}
main details>summary::-webkit-details-marker{display:none}
main details>summary::before{content:none}
main details>summary::after{content:"+";display:flex;align-items:center;justify-content:center;flex:0 0 26px;height:26px;border-radius:50%;background:#314f3b;color:#fff;font-size:20px;line-height:1}
main details[open]>summary{background:#182622;border-color:#182622;color:#fff}
main details[open]>summary::before{content:none}
main details[open]>summary::after{content:"−";background:#e1e9dc;color:#182622}
main details>summary:hover{border-color:#314f3b;box-shadow:0 3px 9px #18262220}
main details>summary:focus-visible{outline:3px solid #a95a29;outline-offset:4px}
.contact-whatsapp{margin-top:0}
main .svc details>summary::before,main .svc details[open]>summary::before{content:none}
main .dir details>summary,main .svc details>summary{color:#182622;font-weight:600}
main .dir details[open]>summary,main .svc details[open]>summary{color:#fff}

.linkedin-icon{width:20px;height:20px;flex:none}a[href*="linkedin.com"]{display:inline-flex;align-items:center;gap:8px}#servicios>.wrap>.sec-h{grid-template-columns:1fr}

/* Aligned service actions and compact methodology symbols. */
.svc>div{display:flex;flex-direction:column;min-width:0}
.svc .tags{margin-bottom:16px}
.svc details{margin-top:auto}
.meto li{grid-template-columns:2.6rem 44px minmax(0,1fr);align-items:center;gap:16px}
.stage-label{font-weight:400}
.stage-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:#e3eae1;color:#314f3b}
.stage-icon svg{width:30px;height:30px;transition:transform .25s ease}
.meto li:hover .stage-icon svg{transform:translateY(-3px) rotate(-4deg)}
.client-reel{margin:0 0 48px}
.client-reel-controls{display:flex;justify-content:flex-end;margin-bottom:14px}
.client-reel-toggle{font:inherit;font-size:13px;color:#314f3b;background:white;border:1px solid #9cab9f;border-radius:4px;padding:8px 14px;cursor:pointer}
.client-reel-toggle:hover{background:#e3eae1}
.client-reel-toggle:focus-visible,.client-reel-window:focus-visible{outline:2px solid #314f3b;outline-offset:4px}
.client-reel-window{overflow-x:auto;scrollbar-width:thin;border-block:1px solid #d0d8d0;padding:22px 0}
.client-logo-track{display:flex;width:max-content;animation:client-drift 150s linear infinite}
.client-logo-track ul{display:flex;gap:24px;list-style:none;padding:0 24px 0 0;margin:0;flex-shrink:0}
.client-logo-track li{display:flex;align-items:center;justify-content:center;background:white;width:200px;height:130px;padding:15px;border:1px solid #e4e9e3;border-radius:6px}
.client-logo-track img{width:100%;height:100%;object-fit:contain}
.client-reel.is-paused .client-logo-track,.client-reel-window:hover .client-logo-track,.client-reel-window:focus-within .client-logo-track{animation-play-state:paused}
@keyframes client-drift{to{transform:translateX(-50%)}}
@media(max-width:600px){.meto li{grid-template-columns:28px 38px minmax(0,1fr);gap:12px}.stage-icon{width:38px;height:38px}.stage-icon svg{width:26px;height:26px}}
@media(prefers-reduced-motion:reduce){.client-logo-track{animation:none}.client-logo-track ul[aria-hidden]{display:none}.client-reel-controls{display:none}.stage-icon svg{transition:none}.meto li:hover .stage-icon svg{transform:none}}

/* Customer marks sit directly on the page, below the testimonials. */
.client-reel{margin:36px 0 40px}
.client-reel-window{border:0;isolation:isolate}
.client-logo-track{animation-duration:190s}
.client-logo-track li{width:160px;height:104px;padding:12px;background:transparent;border:0;border-radius:0}
.client-logo-track img{mix-blend-mode:multiply}

/* Natural mobile text flow without justification gaps or forced line breaks. */
@media(max-width:900px){
 main p,main .lead,main .banner-lead,main .valor p,main .det p,main .ben p,main .svc>div>p,main .eq p,main .slide blockquote,main .expert-lead,main .expert-proof,main .expert-cases p,main .pub-intro,main .pub-card>p:not(.pub-meta),main .pub-empty>p{text-align:left;text-align-last:auto;hyphens:none;-webkit-hyphens:none}
 .expert-intro{gap:18px}
 .expert-intro h2 br,.expert-intro .expert-lead br{display:none}
 .expert-intro h2{margin-bottom:0}
 .expert-intro .expert-lead{margin-bottom:14px}
 .expert-intro .expert-proof{margin-top:12px}
}
