:root{--navy:#121552;--navy-deep:#090b35;--blue:#0a6fb0;--cyan:#18c8e8;--paper:#f5f8fc;--white:#fcfdff;--ink:#111a34;--muted:#44516a;--line:#ccd5e2;--max:1160px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.55 'Source Sans 3',Arial,sans-serif}img{max-width:100%;height:auto;display:block}a{color:inherit}.wrap{width:min(var(--max),calc(100% - 48px));margin:auto}.skip{position:fixed;left:-10000px;top:12px;z-index:100;background:var(--white);color:var(--ink);padding:12px 16px}.skip:focus{left:12px}h1,h2,h3,p{margin-top:0}h1,h2,h3,.button,.site-nav,.menu-toggle{font-family:'Barlow Condensed',Arial,sans-serif}h1{font-size:clamp(4rem,7vw,6.4rem);line-height:.88;letter-spacing:-.035em}h2{font-size:clamp(2.85rem,4.8vw,4.6rem);line-height:.92;letter-spacing:-.025em}h3{font-size:1.65rem;line-height:1}.section{padding:104px 0}.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 22px;text-decoration:none;background:var(--cyan);border:1px solid var(--cyan);color:var(--navy-deep);font-weight:800;letter-spacing:.04em}.button.alt{background:transparent;border-color:rgba(255,255,255,.7);color:var(--white)}.button.dark{background:var(--navy);border-color:var(--navy);color:var(--white)}.text-link{color:var(--blue);font-weight:800;letter-spacing:.04em;text-decoration:none}.section-copy{font-size:1.15rem;color:var(--muted);max-width:58ch}.eyebrow,.code{font:700 .82rem/1 'Barlow Condensed',sans-serif;letter-spacing:.11em;color:var(--blue)}

/* Shared diagonal navigation */
.site-header{height:96px;position:absolute;inset:0 0 auto;z-index:20;color:var(--white);border-bottom:1px solid rgba(255,255,255,.24)}.site-header.solid{position:relative;background:var(--navy)}.header-inner{width:min(var(--max),calc(100% - 48px));height:100%;margin:auto;display:flex;justify-content:flex-end;align-items:center}.brand-plate{position:absolute;inset:0 auto auto 0;width:210px;height:112px;background:var(--white);clip-path:polygon(0 0,100% 0,86% 100%,0 100%);display:flex;align-items:center;justify-content:center;padding-right:20px}.brand-plate img{height:74px;width:auto;object-fit:contain}.site-nav{display:flex;align-items:center;gap:29px;font-weight:700;letter-spacing:.04em}.site-nav a{text-decoration:none}.site-nav a:hover,.site-nav a[aria-current="page"]{color:var(--cyan)}.site-nav .nav-cta{border:1px solid rgba(255,255,255,.7);padding:11px 15px}.menu-toggle{display:none;background:transparent;color:var(--white);border:0;font-size:1.35rem;font-weight:800;letter-spacing:.08em}

/* Home */
.hero{min-height:710px;color:var(--white);position:relative;overflow:hidden;background:linear-gradient(90deg,rgba(7,9,47,.96),rgba(8,12,51,.77) 48%,rgba(8,11,49,.34)),url('projects/hero-planta.jpg') center/cover}.hero .wrap{padding-top:208px}.hero-copy{max-width:760px}.hero p{font-size:1.22rem;line-height:1.55;max-width:650px;color:#e0eaff}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.credentials{position:absolute;bottom:0;inset-inline:0;background:rgba(7,9,47,.92);border-top:1px solid rgba(255,255,255,.25)}.credential-grid{display:grid;grid-template-columns:1.25fr repeat(3,1fr)}.credential{min-height:94px;padding:20px;border-right:1px solid rgba(255,255,255,.2)}.credential:first-child{padding-left:0}.credential:last-child{border-right:0}.credential b{display:block;font:800 2.1rem/.9 'Barlow Condensed';color:var(--cyan)}.credential span{display:block;font-size:.83rem;color:#dce7fd}.intro-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:90px;align-items:end;margin-bottom:48px}.intro-grid h2{margin-bottom:0}.services-ledger{border-top:1px solid var(--line)}.service-row{display:grid;grid-template-columns:112px 1fr 1.12fr 34px;gap:22px;align-items:center;padding:25px 0;border-bottom:1px solid var(--line)}.service-row h2,.service-row h3{font-size:1.65rem;line-height:1;margin:0}.service-row p{margin:0;color:var(--muted)}.service-row .arrow{font-size:0;line-height:0;width:30px;height:18px;display:inline-block;background:no-repeat center/contain;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230a6fb0' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E")}.projects{background:var(--navy);color:var(--white)}.project-intro{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:44px}.project-intro p{max-width:440px;margin:0;color:#ced9f3}.project-grid{display:grid;grid-template-columns:1.2fr .8fr;grid-template-rows:280px 280px;gap:16px}.project-card{position:relative;overflow:hidden;min-height:240px;background:#0b0e45}.project-card img{width:100%;height:100%;object-fit:cover;opacity:.75}.project-card:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,7,35,.96),rgba(5,7,35,.02) 70%)}.project-card.big{grid-row:span 2}.project-card .case-body{position:absolute;left:24px;right:24px;bottom:22px;z-index:1}.case-label{margin:0;color:var(--cyan);font:700 .8rem/1 'Barlow Condensed';letter-spacing:.08em}.case-body h3{font-size:2.25rem;margin:6px 0}.case-body p{margin:0;color:#e4ecff;line-height:1.35}.client-section{background:var(--paper)}.client-head{display:flex;justify-content:space-between;align-items:flex-start;gap:45px;margin-bottom:36px}.client-head h2{margin-bottom:0}.client-head>p{margin-top:26px}.client-head p{max-width:430px;color:var(--muted)}.client-ledger{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.client-ledger article{background:var(--white);min-height:116px;padding:22px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-rows:90px auto 1fr;align-content:start;gap:12px}.client-logo{height:90px;display:flex;align-items:center}.client-ledger h3,.client-ledger p{margin:0}.client-ledger b{font:700 1.7rem/1 'Barlow Condensed'}.client-ledger span{font-size:.86rem;color:var(--muted)}.statement{background:var(--white)}.statement-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:90px;align-items:start}.statement-grid h2{margin:0}.statement-copy{border-top:5px solid var(--cyan);padding-top:22px}.statement-copy p{font-size:1.15rem;color:var(--muted)}

/* Contact and page detail */
.page-hero{background:var(--navy);color:var(--white);padding:72px 0 78px}.page-hero h1{max-width:860px;margin-bottom:20px}.page-hero p{max-width:640px;color:#dce7ff;font-size:1.15rem}.crumbs{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:18px;color:var(--cyan);font:700 .82rem/1 'Barlow Condensed';letter-spacing:.1em}.crumbs a{text-decoration:none}.crumbs a:hover,.crumbs a:focus-visible{color:var(--white)}.crumbs [aria-current="page"]{color:#dce7ff}.detail{display:grid;grid-template-columns:1fr 330px;gap:72px}.detail-single{max-width:820px}.detail aside{border-top:5px solid var(--cyan);padding-top:20px}.detail li{margin:0 0 9px}.project-facts{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);margin:34px 0}.project-facts div{padding:18px;border-right:1px solid var(--line)}.project-facts div:last-child{border-right:0}.project-facts span{display:block;color:var(--blue);font:700 .8rem/1 'Barlow Condensed';letter-spacing:.08em}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px}.about-block{border-top:5px solid var(--cyan);padding-top:20px}.about-block h2{font-size:3.1rem}.values{display:flex;gap:10px;flex-wrap:wrap}.values span{border:1px solid var(--line);padding:9px 12px;font-size:.94rem}.contact-panel{background:var(--blue);color:var(--white)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px}.contact-panel .contact-grid p{color:#e2f5ff;font-size:1.14rem}.contact-panel .contact-actions{border-top-color:rgba(255,255,255,.45)}.contact-panel .contact-actions a{border-bottom-color:rgba(255,255,255,.45)}.contact-grid .section-copy{font-size:1.14rem;color:var(--muted)}.contact-actions{display:grid;border-top:1px solid var(--line)}.contact-actions a{padding:18px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:18px;min-width:0;flex-wrap:wrap;text-decoration:none;font-weight:700;overflow-wrap:anywhere;word-break:break-word}.contact-actions a span{min-width:0;overflow-wrap:anywhere;word-break:break-word}.form{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:24px}.form label{display:grid;gap:6px;font-size:.9rem;font-weight:700}.form .full{grid-column:1/-1}.form input,.form select,.form textarea{width:100%;min-height:48px;border:1px solid #aebcd3;background:var(--white);color:var(--ink);padding:11px;font:inherit}.form textarea{min-height:135px}.form-status{min-height:25px;margin:0}.footer{background:var(--navy-deep);color:#cad7ef;padding:30px 0}.footer-in{display:flex;justify-content:space-between;gap:25px;font-size:.9rem}

/* Legacy route shells receive the same language */
.top{background:var(--navy);border-bottom:1px solid rgba(255,255,255,.25)}.nav{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand img{width:112px;height:76px;object-fit:contain;background:var(--white);padding:7px}.nav-links{display:flex;align-items:center;gap:23px;color:var(--white);font:700 1rem/1 'Barlow Condensed';letter-spacing:.04em}.nav-links a{text-decoration:none}.nav-links a:hover{color:var(--cyan)}.nav-links .button{min-height:40px;padding:0 14px}.top .button.dark{background:var(--cyan);border-color:var(--cyan);color:var(--navy-deep)}

:focus-visible{outline:3px solid var(--cyan);outline-offset:4px}@media(max-width:820px){body{font-size:16px}.wrap,.header-inner{width:min(var(--max),calc(100% - 30px))}.site-header{height:78px}.brand-plate{height:78px;width:138px;padding-right:14px}.brand-plate img{height:54px;width:auto}.site-nav{position:absolute;inset:78px 0 auto;background:var(--navy);padding:22px 15px;display:none;flex-direction:column;align-items:stretch;gap:0;border-bottom:1px solid rgba(255,255,255,.25)}.site-nav a{padding:13px 0}.site-nav .nav-cta{margin-top:10px;text-align:center}.nav-open .site-nav{display:flex}.menu-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:62px;min-height:44px}h1{font-size:clamp(2.45rem,11vw,3rem);line-height:.94}h2{font-size:clamp(2.15rem,10vw,2.8rem);line-height:.98}h1,h2{overflow-wrap:anywhere;text-wrap:balance}.hero{min-height:750px}.hero .wrap{padding-top:155px}.hero h1{font-size:clamp(2.45rem,11vw,3rem)}.hero p{font-size:1.1rem}.credential-grid{grid-template-columns:1fr 1fr}.credential{min-height:86px;padding:16px}.credential:first-child{padding-left:0}.intro-grid,.statement-grid,.detail,.contact-grid,.about-grid{grid-template-columns:1fr;gap:34px}.section{padding:72px 0}.service-row{grid-template-columns:1fr auto;grid-template-areas:"code arrow""title arrow";column-gap:14px;row-gap:5px}.service-row .code{grid-area:code}.service-row h2,.service-row h3{grid-area:title;font-size:1.35rem}.service-row p{display:none}.service-row .arrow{grid-area:arrow;align-self:center}.project-intro,.client-head{display:block}.project-intro p,.client-head p{margin-top:18px}.project-grid{grid-template-columns:1fr;grid-template-rows:370px 260px 260px}.project-card.big{grid-row:auto}.client-ledger{grid-template-columns:1fr 1fr}.contact-grid{gap:38px}.form{grid-template-columns:1fr}.footer-in{display:block}.footer-in span{display:block;margin-bottom:8px}.detail aside{border-top:5px solid var(--cyan);border-left:0}.project-facts{grid-template-columns:1fr}.project-facts div{border-right:0;border-bottom:1px solid var(--line)}.nav-links{display:none}}
@media(max-width:820px){.page-hero{padding-top:48px}}
.hero .credentials .wrap{padding-top:0}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}

/* Interaction polish */
.button{transition:background .2s cubic-bezier(.4,0,.2,1),transform .15s ease,box-shadow .2s}
.button:hover{background:#0fb4d4;transform:translateY(-1px);box-shadow:0 6px 22px rgba(24,200,232,.28)}
.button:active{transform:translateY(0)}
.button.alt:hover{background:rgba(255,255,255,.12);border-color:#fff;box-shadow:none}
.button.dark:hover{background:#1b2070;box-shadow:0 6px 22px rgba(9,11,53,.25)}
.text-link{transition:color .2s}.text-link:hover{color:var(--cyan)}
.site-nav a{transition:color .2s}
.service-row{transition:background .2s}.service-row:hover{background:rgba(8,12,51,.03)}
.service-row .arrow{transition:transform .2s}.service-row:hover .arrow{transform:translateX(5px)}
.project-card img{transition:opacity .3s,transform .45s cubic-bezier(.2,0,.2,1)}
.project-card:hover img{opacity:.92;transform:scale(1.045)}
.contact-actions a{transition:padding-left .2s,color .2s}.contact-actions a:hover{padding-left:8px}

/* Client logos: uniform grayscale, color on hover */
.client-logo img{opacity:.68;transition:opacity .25s}
.client-ledger article{transition:box-shadow .25s,transform .25s}
/* A color siempre; opacidad sube al pasar el mouse (desktop) */
@media(hover:hover){
.client-ledger article:hover .client-logo img{opacity:1}
.client-ledger article:hover{box-shadow:0 10px 30px rgba(9,11,53,.10);transform:translateY(-2px);position:relative;z-index:1}
}
@media(hover:none){.client-logo img{opacity:1}}

/* Expanded footer */
.footer{background:var(--navy-deep);color:#cad7ef;padding:56px 0 26px}
.footer a{text-decoration:none}
.footer-grid{display:grid;grid-template-columns:1.7fr 1fr 1.3fr;gap:44px;padding-bottom:34px;border-bottom:1px solid rgba(255,255,255,.14)}
.footer-brand strong{font:800 1.55rem/1 'Barlow Condensed',sans-serif;color:#fff;display:block;margin-bottom:12px;letter-spacing:.02em}
.footer-brand p{margin:0 0 8px;font-size:.92rem;line-height:1.5;color:#9fb0d4;max-width:36ch}
.footer-ruc{font-weight:700;color:#cad7ef!important}
.footer-col{display:flex;flex-direction:column;gap:9px}
.footer-h{font:700 .8rem/1 'Barlow Condensed',sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--cyan);margin-bottom:5px}
.footer-col a,.footer-col span{font-size:.92rem;line-height:1.5;color:#cad7ef}
.footer-col a:hover{color:var(--cyan)}
.footer-base{display:flex;justify-content:space-between;gap:20px;padding-top:18px;font-size:.84rem;color:#7e90b8}
@media(max-width:820px){.footer-grid{grid-template-columns:1fr;gap:28px}.footer-base{display:block}.footer-base span{display:block;margin-top:6px}}

/* Metas estratégicas 2030 (página Nosotros) */
.goals{background:var(--navy);color:var(--white)}
.goals-head{max-width:780px;margin-bottom:46px}
.goals-head h2{margin:0}
.goals-head .eyebrow{display:block;color:var(--cyan);margin-bottom:14px}
.goals-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px}
.goals-grid article{border-top:3px solid var(--cyan);padding-top:20px}
.goals-grid h3{font-size:1.5rem;line-height:1.05;margin:0 0 12px}
.goals-grid p{margin:0;color:#cdd9f2;line-height:1.6;font-size:.97rem}
@media(max-width:820px){.goals-grid{grid-template-columns:1fr;gap:26px}}

/* Botón flotante de WhatsApp */
.wa-float{position:fixed;right:22px;bottom:22px;z-index:90;width:58px;height:58px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 20px rgba(0,0,0,.28);transition:transform .2s ease,box-shadow .2s ease}
.wa-float:hover{transform:translateY(-2px) scale(1.05);box-shadow:0 10px 28px rgba(0,0,0,.34)}
.wa-float:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}
.wa-float svg{width:32px;height:32px;fill:#fff}
@media(max-width:820px){.wa-float{right:16px;bottom:16px;width:54px;height:54px}.wa-float svg{width:30px;height:30px}}

/* Galería de servicio (secuencia de fotos del trabajo) */
.gallery-section{padding-top:0;padding-bottom:clamp(72px,8vw,112px)}
.gallery-head{border-top:1px solid var(--line);padding-top:26px;margin-bottom:30px}
.gallery-head .eyebrow{margin:0 0 12px}
.gallery-head h2{max-width:22ch;margin:0;font-size:clamp(2.2rem,4.2vw,3.6rem)}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:start}
.gallery img{width:100%;height:auto;border-radius:2px;display:block;background:var(--navy-deep)}
@media(max-width:820px){.gallery-head{padding-top:22px;margin-bottom:22px}.gallery{grid-template-columns:1fr;gap:16px}.gallery img{height:auto}}

/* Hero de servicio con foto + galería con encabezado */
.page-hero.has-photo{background-size:cover;background-position:center}
.gallery.two{grid-template-columns:1fr 1fr}
@media(max-width:820px){.gallery.two{grid-template-columns:1fr}}
.gallery.one{grid-template-columns:1fr}
.gallery.one img{height:auto}

@media(max-width:820px){.credentials{overflow:hidden}.credential{min-width:0;border-right:0}.credential:nth-child(odd){padding-left:0}.credential:nth-child(2n){border-right:0}.credential:nth-child(2n+1){border-right:1px solid rgba(255,255,255,.2)}.credential:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.2)}.credential span{overflow-wrap:anywhere}}

@media(max-width:430px){.credential{padding:17px 13px}.credential:nth-child(odd){padding-left:0}.credential b{font-size:clamp(1.65rem,8vw,2rem);overflow-wrap:anywhere}.credential span{font-size:.9rem;line-height:1.24}}

@media(max-width:560px){.client-ledger{grid-template-columns:1fr}.client-ledger article{min-height:auto}.client-ledger b{font-size:1.55rem}.client-logo img{max-width:min(220px,100%)}}


.hero-copy,.intro-grid>*,.statement-grid>*,.contact-grid>*,.credential,.service-row>*,.client-ledger article,.footer-grid>*{min-width:0}
.client-ledger article,.client-ledger b,.client-ledger span{overflow-wrap:anywhere}
@media(max-width:820px){.contact-actions a{display:grid;grid-template-columns:1fr;gap:6px}.contact-actions a span:last-child{text-align:left}.page-hero p,.hero p,.section-copy,.footer-col a{overflow-wrap:anywhere}}
@media(max-width:430px){.actions{display:grid;grid-template-columns:1fr}.button{width:100%}}
