    :root{--navy:#081727;--navy2:#112b45;--blue:#145aa3;--sky:#6db9dc;--ink:#182a3d;--muted:#607084;--paper:#f4f7fa;--line:#dbe4ec;--white:#fff;--wrap:1160px}
    *{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font:16px/1.65 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#fff}button,a{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}img{max-width:100%;display:block}.wrap{width:min(calc(100% - 40px),var(--wrap));margin:auto}.eyebrow{color:var(--blue);font-size:.78rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase}.section{padding:92px 0}.section-head{max-width:740px;margin-bottom:37px}.section-head h2{font-size:clamp(2rem,4vw,3.15rem);line-height:1.15;letter-spacing:-.045em;margin:10px 0 13px}.section-head p{color:var(--muted);margin:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:11px 21px;border-radius:5px;font-weight:750;transition:transform .2s,background .2s,border-color .2s}.btn:hover{transform:translateY(-2px)}.btn:focus-visible,a:focus-visible,button:focus-visible{outline:3px solid #69c7f1;outline-offset:3px}.btn-primary{background:#1774bc;color:#fff;border:1px solid #1774bc}.btn-primary:hover{background:#0e5c99}.btn-whatsapp{background:#16834b;color:#fff;border:1px solid #16834b}.btn-whatsapp:hover{background:#116d3d}.btn-outline{color:#fff;border:1px solid #7591ab}.btn-outline:hover{border-color:#fff;background:#ffffff16}
    .site-header{position:sticky;top:0;z-index:20;background:#fff;color:var(--navy);border-bottom:1px solid var(--line);box-shadow:0 4px 20px #0d274012}.header-inner{height:106px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;gap:12px;align-items:center;min-width:0}.brand-logo{width:90px;height:90px;object-fit:contain;flex:none}.brand-name{display:block;font-size:2rem;line-height:1.02;font-weight:900;letter-spacing:-.035em;white-space:nowrap}.brand-sub{display:block;font-size:.67rem;letter-spacing:.11em;color:#64778b;margin-top:7px;line-height:1.2}.nav{display:flex;gap:25px;align-items:center}.nav a{font-size:.9rem;color:#304c66;font-weight:650}.nav a:hover{color:var(--blue)}.nav .nav-cta{background:#1774bc;color:#fff;padding:9px 15px;border-radius:4px}.nav .nav-cta:hover{background:#0e5c99;color:#fff}.menu-toggle{display:none;background:none;color:var(--navy);border:1px solid #9bb0c1;border-radius:4px;padding:6px 12px;font-size:1.45rem;line-height:1}
    .hero{position:relative;isolation:isolate;overflow:hidden;color:#fff;background:linear-gradient(90deg,rgba(5,20,34,.94) 0%,rgba(5,20,34,.76) 42%,rgba(5,20,34,.16) 100%),linear-gradient(0deg,rgba(5,20,34,.55),transparent 55%),url("../images/hero-bg.jpg") center 54%/cover no-repeat;background-color:#081727}.hero-inner{min-height:620px;display:grid;align-content:center;padding:90px 0 100px}.hero-copy{max-width:850px}.hero-brand{display:block;width:max-content;max-width:100%;font-size:clamp(2.65rem,6vw,5rem);font-weight:900;line-height:1.05;letter-spacing:-.06em;color:#fff;text-shadow:0 3px 24px #071a2f99}.hero-kicker{display:block;margin-top:20px}.hero .eyebrow{color:#84cdef}.hero h1{font-size:clamp(2.25rem,4.8vw,4.3rem);line-height:1.11;letter-spacing:-.05em;margin:12px 0 23px}.hero h1 em{font-style:normal;color:#8dd0ee}.hero p{font-size:clamp(1.05rem,1.8vw,1.25rem);color:#c6d7e6;max-width:660px;margin:0 0 32px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.hero-foot{display:flex;gap:16px 34px;flex-wrap:wrap;margin-top:68px;color:#aec6d8;font-size:.82rem;text-transform:uppercase;letter-spacing:.12em;font-weight:700}.hero-foot span{display:inline-flex;align-items:center;gap:10px}.hero-foot span:before{content:"";width:6px;height:6px;background:#79d0ec;border-radius:50%}
    .about-story{max-width:930px}.about-story h2{font-size:clamp(2rem,4vw,3.15rem);line-height:1.15;letter-spacing:-.045em;margin:0 0 27px}.about-story p{color:var(--muted);margin:0 0 20px;font-size:1.06rem}.about-story strong{color:var(--navy)}.about-story .about-closing{margin:29px 0 0;padding:19px 24px;background:#eaf2f8;border-left:4px solid var(--blue);font-size:1.13rem}
    .coverage{background:#e9f2f8}.coverage-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:65px;align-items:center}.coverage h2{font-size:clamp(2rem,4vw,3.15rem);line-height:1.15;letter-spacing:-.045em;margin:10px 0 18px}.coverage p{color:#4c6276;max-width:610px}.coverage .coverage-callout{border-left:3px solid var(--blue);padding-left:18px;margin-top:22px;font-weight:700;color:var(--navy)}.map-panel{position:relative;overflow:hidden;border-radius:10px;background:#020f1f;border:1px solid #0d3653;min-height:440px;display:grid;place-items:center}.map-panel img{display:block;width:100%;height:100%;object-fit:contain}.map-caption{position:absolute;bottom:0;left:0;right:0;padding:18px 14px 12px;background:linear-gradient(transparent,#020e20de 45%);text-align:center;font-size:.73rem;font-weight:800;letter-spacing:.095em;text-transform:uppercase;color:#dff7ff;text-shadow:0 1px 4px #000}
    .services{background:var(--paper)}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{background:#fff;padding:27px;min-height:225px;border:1px solid var(--line);border-top:3px solid var(--blue);transition:transform .2s,box-shadow .2s}.card:hover{transform:translateY(-4px);box-shadow:0 18px 34px #10253a13}.card-number{color:#6e9cb9;font-size:.79rem;font-weight:800;letter-spacing:.15em}.card h3{font-size:1.24rem;line-height:1.3;margin:20px 0 10px}.card p{color:var(--muted);margin:0;font-size:.95rem}.service-note{margin:27px 0 0;color:var(--muted);font-size:.9rem}
    .experience-card+.experience-card{margin-top:24px}.experience-card{background:#f4f7fa;border:1px solid var(--line);padding:30px 30px 26px}.experience-card h3{font-size:clamp(1.5rem,2.5vw,2rem);letter-spacing:-.03em;line-height:1.2;margin:6px 0 10px}.experience-card p{margin:0;color:var(--muted);max-width:830px;min-height:5.4em}.photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:24px}.photo-grid figure{margin:0;background:#d9e3eb;overflow:hidden;aspect-ratio:16/9}.photo-grid img{width:100%;height:100%;object-fit:cover}.photo-grid figure:hover img{transform:scale(1.03)}.photo-grid img{transition:transform .25s}@media(max-width:680px){.experience-card{padding:22px}.experience-card p{min-height:0}.photo-grid{grid-template-columns:1fr;gap:11px}.photo-grid figure{aspect-ratio:4/3}}.projects-intro{display:flex;justify-content:space-between;gap:20px;align-items:end}.projects-intro .section-head{margin-bottom:30px}.project-preview{border:1px solid var(--line);display:grid;grid-template-columns:1.05fr 1fr;min-height:270px;background:#fff}.project-visual{background:linear-gradient(145deg,#0a2945,#245b80);display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:34px;color:#d4edfc;position:relative;overflow:hidden}.project-visual:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 33px,#a6d9f31a 34px 35px),repeating-linear-gradient(90deg,transparent 0 33px,#a6d9f31a 34px 35px);transform:rotate(-12deg) scale(1.4)}.project-visual>*{position:relative}.project-visual .project-symbol{font-weight:850;font-size:3rem;line-height:1;letter-spacing:-.07em}.project-visual small{letter-spacing:.15em;text-transform:uppercase;font-weight:700}.project-body{padding:36px;display:flex;flex-direction:column;justify-content:center}.project-body h3{font-size:1.55rem;line-height:1.25;margin:8px 0 12px}.project-body p{color:var(--muted);margin:0}.project-body .eyebrow{font-size:.72rem}
    .process{background:var(--navy);color:#fff}.process .eyebrow{color:#78c9e9}.process .section-head p{color:#b6cad8}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.step{border-top:1px solid #5f829c;padding-top:23px}.step span{color:#82cde8;font-size:.87rem;letter-spacing:.12em;font-weight:800}.step h3{font-size:1.25rem;margin:16px 0 8px}.step p{color:#adc1d0;margin:0;font-size:.95rem}
    .contact{background:#eaf2f8}.contact-box{display:flex;align-items:center;justify-content:space-between;gap:32px}.contact-box h2{font-size:clamp(2rem,4vw,3.15rem);line-height:1.13;letter-spacing:-.045em;margin:10px 0}.contact-box p{margin:0;color:#567085}.contact-actions{display:flex;flex-direction:column;align-items:flex-start;gap:11px}.contact-email{font-size:.91rem;color:var(--blue);font-weight:700;overflow-wrap:anywhere}.footer{background:#081727;color:#afc2d1;padding:28px 0;font-size:.83rem}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:16px 26px;flex-wrap:wrap}.footer a:hover{color:white}.footer-social{display:flex;align-items:center;gap:12px}.footer-social-label{font-weight:700;color:#e4f3fc}.social-link{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #6994ac;border-radius:50%;color:#fff;transition:background .2s,transform .2s}.social-link:hover{background:#145aa3;transform:translateY(-2px)}.social-link svg{width:22px;height:22px;fill:currentColor}
    .reviews{background:#fff}.reviews .section-head{max-width:790px}.reviews .section-head p{color:var(--muted)}.reviews-shell{max-width:900px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:28px;box-shadow:0 12px 30px #10253a0a}.reviews-pending{margin:0;color:var(--muted)}.reviews-shell hyvor-talk-comments{display:block;min-height:160px}
    /* Galerías de proyectos: desplazamiento táctil y con botones. */
    .photo-grid{display:flex;gap:14px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:#8daec6 transparent}
    .photo-grid figure{flex:0 0 calc((100% - 14px)/2);scroll-snap-align:start;scroll-snap-stop:always}
    .gallery-controls{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:14px}
    .gallery-controls button{width:40px;height:40px;display:grid;place-items:center;border:1px solid #a9bfd1;border-radius:50%;background:#fff;color:var(--navy);font-size:1.45rem;line-height:1}
    .gallery-controls button:hover:not(:disabled){background:var(--navy);color:#fff}
    .gallery-controls button:disabled{opacity:.4;cursor:default}
    .gallery-status{min-width:85px;text-align:center;font-size:.88rem;font-weight:700;color:var(--muted)}
    @media(max-width:680px){.photo-grid figure{flex-basis:100%}}
    @media(prefers-reduced-motion:reduce){.photo-grid{scroll-behavior:auto}}
    @media(max-width:980px){.menu-toggle{display:block}.nav{display:none;position:absolute;top:106px;left:0;right:0;background:#fff;flex-direction:column;align-items:stretch;gap:0;padding:10px 20px 18px;border-bottom:1px solid var(--line);box-shadow:0 18px 28px #0002}.nav.is-active{display:flex}.nav a,.nav .nav-cta{display:block;padding:11px 12px;font-size:.96rem}.nav .nav-cta{color:#fff}.coverage-grid{gap:35px}.cards{grid-template-columns:repeat(2,1fr)}}
    @media(max-width:680px){.hero{background-position:center,center,60% center} .hero:before{content:"";position:absolute;inset:0;z-index:-1;background:#061a2b59} .wrap{width:min(calc(100% - 32px),var(--wrap))}.section{padding:70px 0}.header-inner{height:80px}.brand-logo{width:62px;height:62px}.brand-name{font-size:1.5rem}.brand-sub{font-size:.52rem;letter-spacing:.06em}.menu-toggle{display:block}.nav{display:none;position:absolute;top:80px;left:0;right:0;background:#fff;flex-direction:column;align-items:stretch;gap:0;padding:10px 16px 18px;border-bottom:1px solid var(--line);box-shadow:0 18px 28px #0002}.nav.is-active{display:flex}.nav a{display:block;padding:11px 12px;font-size:.96rem}.nav .nav-cta{display:block;padding:11px 12px;font-size:.96rem;color:#fff}.hero-inner{min-height:585px;padding:65px 0}.hero-brand{font-size:clamp(2.85rem,11vw,4.1rem)}.hero h1{font-size:clamp(2.2rem,7.5vw,3.45rem)}.hero-foot{margin-top:50px}.coverage-grid,.project-preview{grid-template-columns:1fr}.map-panel{min-height:340px}.cards,.steps{grid-template-columns:1fr}.card{min-height:auto}.project-visual{min-height:210px}.contact-box{align-items:flex-start;flex-direction:column}.projects-intro{display:block}}
    @media(max-width:390px){.brand{gap:7px}.brand-logo{width:54px;height:54px}.brand-name{font-size:1.29rem}.brand-sub{font-size:.45rem;letter-spacing:.025em}.header-inner{gap:8px}.menu-toggle{padding:6px 9px}}
    @media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

    /* Más contraste para llamadas a la acción y lectura exterior. */
    .btn-outline{color:#fff;background:#103a5b;border:2px solid #fff}
    .btn-outline:hover{background:#fff;color:#081727}
    .card-number{color:#24547a}
    .process .section-head p,.process .step p{color:#e1edf4}
    .process .step span,.process .eyebrow{color:#b4eaff}
    .floating-whatsapp{position:fixed;right:24px;bottom:24px;z-index:30;width:60px;height:60px;display:grid;place-items:center;border-radius:50%;background:#16834b;color:#fff;box-shadow:0 9px 24px #07182766;border:2px solid #fff}
    .floating-whatsapp:hover{background:#0c6d3a;transform:translateY(-2px)}
    .floating-whatsapp svg{width:31px;height:31px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
    .equipment{background:#edf4f9}.equipment-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
    .equipment-item{background:#fff;padding:25px;border-top:3px solid var(--blue);border-inline:1px solid var(--line);border-bottom:1px solid var(--line)}
    .equipment-item h3{font-size:1.12rem;line-height:1.25;margin:0 0 12px}.equipment-item p{color:#495e72;margin:0;font-size:.93rem}
    .references{background:#f7f9fb}.reference-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
    .reference-item{border:1px solid var(--line);background:#fff;padding:24px}.reference-item span{display:block;color:#24547a;font-size:.73rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.reference-item h3{margin:9px 0;font-size:1.16rem}.reference-item p{margin:0;color:#495e72;font-size:.94rem}.reference-item a{display:inline-block;margin-top:12px;color:#145aa3;font-weight:750;text-decoration:underline;text-underline-offset:3px}
    .reference-note{margin:22px 0 0;color:#43586c}
    @media(max-width:980px){.equipment-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
    @media(max-width:768px){.nav{display:none}.nav.is-active{display:flex;flex-direction:column}.menu-toggle{display:block}.nav a{width:100%}.floating-whatsapp{right:16px;bottom:16px;width:54px;height:54px}.reference-list{grid-template-columns:1fr}}
    @media(max-width:540px){.equipment-list{grid-template-columns:1fr}}
