@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Montserrat:wght@600;700;800&display=swap');

:root { --ink:#173238; --muted:#456066; --green:#00766c; --deep:#005248; --lime:#c9dc58; --paper:#f6f7f2; --white:#fff; --line:#d8dfda; --container:1180px; --font-body:'Inter',sans-serif; --font-heading:'Montserrat',sans-serif; }
* { box-sizing:border-box; }
section[hidden] { display:none !important; }
body { color:var(--ink); background:var(--paper); font-family:var(--font-body); font-size:16px; font-weight:400; line-height:1.6; }
h1,h2,h3 { font-family:var(--font-heading); font-weight:700; letter-spacing:.012em; line-height:1.2; }
.site-header, body > header { position:sticky; top:0; z-index:10; min-height:86px; padding:14px max(24px,calc((100% - var(--container))/2)); background:rgba(255,255,255,.98); border-bottom:1px solid var(--line); box-shadow:0 4px 16px rgba(23,50,56,.06); }
body > header .logo { display:flex; align-items:center; flex:0 0 auto; padding:2px 0; text-decoration:none; } body > header .logo img { display:block; width:150px; height:57px; background:#12356e; object-fit:contain; object-position:center; } body > header .logo:focus-visible { outline:3px solid rgba(0,118,108,.35); outline-offset:5px; }
body > header nav ul { gap:6px; } body > header nav a { min-height:42px; padding:8px 11px; border-bottom:2px solid transparent; border-radius:0; color:var(--ink); font-family:'Open Sans',sans-serif; font-size:.84rem; font-weight:600; letter-spacing:.01em; } body > header nav a:hover, body > header nav a:focus-visible, body > header nav a.active { color:var(--green); background:transparent; border-color:var(--green); outline:none; }
#inicio { position:relative; display:flex; min-height:calc(100vh - 78px); padding:clamp(76px,10vh,136px) max(24px,calc((100% - var(--container))/2)) 42px; isolation:isolate; flex-direction:column; justify-content:center; color:#eaf3ee; background:linear-gradient(90deg,rgba(5,28,31,.94) 0%,rgba(7,38,40,.82) 43%,rgba(7,38,40,.43) 72%,rgba(7,38,40,.24)),url('https://images.unsplash.com/photo-1496247749665-49cf5b1022e9?auto=format&fit=crop&w=2100&q=90') center/cover; }
.hero-content { max-width:670px; margin-bottom:clamp(64px,11vh,126px); }.hero-content .eyebrow { margin:0 0 20px; color:var(--lime); font-size:.72rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; animation:hero-reveal .65s ease-out both; }.hero-content h1 { max-width:650px; margin:0; color:var(--white); font-size:clamp(2.65rem,4.7vw,4.8rem); font-weight:800; line-height:1.14; animation:hero-reveal .75s .08s ease-out both; }.hero-description { max-width:580px; margin:26px 0 34px; color:#e3ece8; font-size:1.05rem; font-weight:400; line-height:1.75; animation:hero-reveal .75s .18s ease-out both; }.hero-cta { min-height:56px; padding:15px 25px; border-radius:6px; font-size:.88rem; letter-spacing:.01em; box-shadow:0 10px 24px rgba(0,0,0,.2); animation:hero-reveal .75s .3s ease-out both; }.hero-cta:hover,.hero-cta:focus-visible { box-shadow:0 14px 30px rgba(0,0,0,.28); }
.hero-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; width:min(890px,100%); margin:0; padding:0; border-top:1px solid rgba(255,255,255,.28); animation:hero-reveal .8s .42s ease-out both; }.hero-stats div { min-height:78px; padding:17px 24px 0 0; }.hero-stats div+div { padding-left:24px; border-left:1px solid rgba(255,255,255,.22); }.hero-stats dt { color:var(--white); font:700 1.4rem/1 'Poppins',sans-serif; }.hero-stats dd { margin:7px 0 0; color:#d4e0dc; font-size:.76rem; font-weight:600; line-height:1.35; }.scroll-cue { position:absolute; right:max(24px,calc((100% - var(--container))/2)); bottom:42px; display:flex; align-items:center; gap:10px; color:#d7e6e1; font-size:.65rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }.scroll-cue span { display:block; width:22px; height:34px; border:1px solid rgba(255,255,255,.7); border-radius:12px; }.scroll-cue span::after { display:block; width:3px; height:7px; margin:6px auto 0; border-radius:2px; background:var(--lime); content:''; animation:scroll-mark 1.7s ease-in-out infinite; }
.clientes-section { width:min(var(--container),calc(100% - 48px)); margin:0 auto; padding:64px 0 72px; }.clientes-section h2 { display:flex; align-items:center; justify-content:center; gap:16px; margin:0 0 38px; color:var(--ink); font-size:clamp(.9rem,1.5vw,1.05rem); font-weight:700; letter-spacing:.11em; text-align:center; text-transform:uppercase; }.clientes-section h2::before,.clientes-section h2::after { width:min(14vw,140px); height:1px; background:var(--line); content:''; }.clientes-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); align-items:center; gap:20px; }.cliente-logo { display:grid; min-height:126px; margin:0; padding:18px; place-items:center; border:1px solid var(--line); background:var(--white); }.cliente-logo img { display:block; width:100%; max-width:180px; max-height:82px; object-fit:contain; filter:grayscale(100%); opacity:.7; transition:filter 180ms ease,opacity 180ms ease,transform 180ms ease; }.cliente-logo:hover img { filter:grayscale(0); opacity:1; transform:scale(1.04); }
.button { display:inline-flex; align-items:center; justify-content:center; gap:16px; min-height:48px; padding:12px 19px; border:1px solid var(--green); border-radius:3px; color:var(--white); background:var(--green); font-weight:700; text-decoration:none; transition:transform .18s ease,background .18s ease; } .button:hover,.button:focus-visible { background:var(--deep); transform:translateY(-2px); } .button-accent { color:var(--ink); background:var(--lime); border-color:var(--lime); } .button-accent:hover,.button-accent:focus-visible { background:#d9e978; border-color:#d9e978; }
@keyframes hero-reveal { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:translateY(0); } } @keyframes scroll-mark { 0%,100% { opacity:.35; transform:translateY(0); } 50% { opacity:1; transform:translateY(10px); } }
@media (prefers-reduced-motion:reduce) { .hero-content .eyebrow,.hero-content h1,.hero-description,.hero-cta,.hero-stats,.scroll-cue span::after { animation:none; } }
@media (max-width:900px) { body > header { align-items:flex-start; flex-direction:column; gap:8px; } body > header nav ul { justify-content:flex-start; } .hero-stats { width:100%; } .hero-stats div { padding-right:14px; } .hero-stats div+div { padding-left:14px; } .scroll-cue { display:none; } .clientes-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } } @media (max-width:600px) { body > header { position:static; min-height:auto; padding-top:12px; padding-bottom:12px; } body > header .logo img { width:128px; height:49px; } #inicio { min-height:680px; padding-top:72px; padding-bottom:34px; background-position:58% center; } .hero-content { margin-bottom:54px; } .hero-content h1 { font-size:clamp(2.35rem,10vw,3.35rem); } .hero-description { margin-top:20px; font-size:.98rem; } .hero-stats { grid-template-columns:1fr 1fr; } .hero-stats div { min-height:67px; padding:13px 12px 0 0; } .hero-stats div+div { padding-left:12px; } .hero-stats div:nth-child(3) { border-left:0; } .hero-stats div:nth-child(n+3) { border-top:1px solid rgba(255,255,255,.22); } .hero-stats dt { font-size:1.2rem; } body > header nav a { min-height:36px; padding:6px 8px; font-size:.76rem; } .clientes-section { width:calc(100% - 36px); padding:50px 0 56px; } .clientes-section h2 { gap:10px; margin-bottom:26px; font-size:.78rem; letter-spacing:.08em; } .clientes-grid { gap:12px; } .cliente-logo { min-height:105px; padding:14px; } .cliente-logo img { max-height:64px; } }

.site-header { display:flex; align-items:center; justify-content:space-between; gap:26px; }.site-header .brand { display:grid; grid-template-columns:auto auto; gap:0 5px; color:var(--ink); font:700 1.02rem/1 'Poppins',sans-serif; letter-spacing:.03em; text-decoration:none; white-space:nowrap; }.site-header .brand span { color:var(--green); }.site-header .brand small { grid-column:1/-1; margin-top:5px; color:var(--muted); font:600 .5rem/1 'Open Sans',sans-serif; letter-spacing:.14em; }.site-header nav ul { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:2px; margin:0; padding:0; list-style:none; }.site-header nav a { display:inline-flex; align-items:center; min-height:38px; padding:7px 10px; border-bottom:2px solid transparent; color:var(--ink); font-family:'Open Sans',sans-serif; font-size:.78rem; font-weight:700; letter-spacing:.01em; text-decoration:none; }.site-header nav a.active,.site-header nav a:hover,.site-header nav a:focus-visible { color:var(--green); border-color:var(--green); outline:none; }
.page-intro,.section,.content-split,.principles,.team-note,.services-list,.certification-grid,.metrics,.industries,.gallery-grid,.contact-layout { width:min(var(--container),calc(100% - 48px)); margin:0 auto; }.page-intro { max-width:850px; margin-left:max(24px,calc((100% - var(--container))/2)); padding:104px 0 76px; }.page-intro h1 { font-size:clamp(2.5rem,5vw,4.6rem); }.page-intro p:last-child { max-width:660px; margin:0; color:var(--muted); font-size:1.13rem; font-weight:400; line-height:1.6; }.section,.team-note,.industries { padding:84px 0; }.content-split { display:grid; grid-template-columns:1fr 1fr; gap:clamp(38px,8vw,120px); align-items:center; padding:80px 0; }.content-split p,.value-grid p,.team-note p:not(.eyebrow) { color:var(--muted); font-size:1.0625rem; font-weight:400; line-height:1.6; }.content-split img { width:100%; min-height:405px; object-fit:cover; }.principles { display:grid; grid-template-columns:1fr 1fr; background:var(--deep); }.principles article { padding:clamp(38px,5vw,72px); color:#d5e7df; }.principles article+article { border-left:1px solid rgba(255,255,255,.18); }.principles .eyebrow { margin:0 0 10px; color:var(--lime); }.principles h2 { margin:0 0 18px; color:var(--white); line-height:1.2; }.principles article p:not(.eyebrow) { max-width:36rem; margin:0; color:#e5f0eb; font-size:1.0625rem; font-weight:400; line-height:1.6; }.team-note p:not(.eyebrow) { max-width:680px; }.value-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:32px; }.value-grid article { padding:22px 0; border-top:3px solid var(--lime); }
.services-list { padding-bottom:90px; }.service-row { display:grid; grid-template-columns:minmax(260px,1fr) minmax(350px,.9fr); gap:clamp(36px,8vw,130px); padding:54px 0; border-top:1px solid var(--line); }.service-row:last-child { border-bottom:1px solid var(--line); }.service-number { margin:0 0 10px; color:var(--green); font-size:.75rem; font-weight:700; letter-spacing:.12em; }.service-row>div>p:last-of-type { max-width:460px; margin:0; color:var(--muted); font-size:1rem; line-height:1.75; }.service-image { width:min(100%,330px); margin:28px auto 0; }.service-image img { width:100%; height:285px; border-radius:6px; object-fit:cover; object-position:center; box-shadow:0 12px 24px rgba(23,50,56,.13); filter:contrast(1.04) saturate(1.05); }.service-image figcaption { margin-top:9px; color:var(--muted); font-size:.76rem; text-align:center; }form { position:relative; padding:29px; overflow:hidden; background:var(--white); border:1px solid var(--line); border-radius:6px; box-shadow:0 12px 28px rgba(23,50,56,.06); }form::before { position:absolute; top:0; right:0; left:0; height:3px; background:var(--green); content:''; }form h3 { margin:2px 0 7px; color:var(--ink); font-size:1.05rem; }.form-intro { margin:0; color:var(--muted); font-size:.79rem; line-height:1.5; }label { display:block; margin:16px 0 6px; color:var(--ink); font-size:.78rem; font-weight:700; letter-spacing:.01em; }label:has(+ :required)::after { margin-left:3px; color:#b33e2e; content:'*'; }.optional { color:var(--muted); font-size:.72rem; font-weight:400; }input,textarea,select { width:100%; padding:12px 13px; border:1px solid #c5d0cb; border-radius:4px; color:var(--ink); background:#fbfcfa; font:400 .9rem/1.45 'Open Sans',sans-serif; transition:border-color .18s ease,box-shadow .18s ease,background .18s ease; }input::placeholder,textarea::placeholder { color:#82938d; }textarea { min-height:104px; resize:vertical; }input:hover,textarea:hover,select:hover { border-color:#9bafa7; }input:focus,textarea:focus,select:focus { border-color:var(--green); outline:0; background:var(--white); box-shadow:0 0 0 3px rgba(0,118,108,.13); }.form-privacy { margin:16px 0 0; color:var(--muted); font-size:.73rem; line-height:1.5; }form button { width:100%; min-height:52px; margin-top:18px; border:1px solid var(--deep); border-radius:4px; background:var(--deep); color:var(--white); box-shadow:0 8px 16px rgba(0,82,72,.19); font-size:.86rem; font-weight:700; letter-spacing:.01em; }form button:hover,form button:focus-visible { border-color:var(--green); background:var(--green); box-shadow:0 10px 20px rgba(0,118,108,.25); }
.certification-grid { display:grid; grid-template-columns:repeat(3,1fr); margin-bottom:10px; }.certification-grid article { min-height:250px; padding:40px; background:var(--white); border:1px solid var(--line); }.certification-grid span { color:var(--green); font-weight:800; letter-spacing:.12em; }.certification-grid h2 { margin:6px 0; font-size:4rem; }.certification-grid p { margin:0; color:var(--muted); }.band { width:100%; padding:84px max(24px,calc((100% - var(--container))/2)); background:#dfece5; }.band p:not(.eyebrow) { max-width:700px; }
.metrics { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.metrics article { display:flex; gap:18px; align-items:center; padding:35px; }.metrics article+article { border-left:1px solid var(--line); }.metrics strong { color:var(--green); font:800 clamp(2.6rem,5vw,4.3rem)/1 'Manrope',sans-serif; }.metrics span { color:var(--muted); font-size:.88rem; }.project-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:32px; }.project-grid article,.gallery-grid figure { background:var(--white); }.project-grid img { width:100%; height:260px; object-fit:cover; }.project-grid div { padding:21px; }.project-grid p { margin:0 0 7px; color:var(--green); font-size:.73rem; font-weight:700; text-transform:uppercase; }.project-grid h3 { min-height:48px; }.project-grid span { color:var(--muted); font-size:.86rem; }.industries ul { display:grid; grid-template-columns:repeat(2,1fr); gap:12px 42px; max-width:740px; padding:0; list-style:none; }.industries li { padding:12px 0; border-bottom:1px solid var(--line); font-weight:700; }
.gallery-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; padding-bottom:90px; }.gallery-grid figure { margin:0; }.gallery-grid figure.wide { grid-column:1/-1; }.gallery-grid img { width:100%; height:310px; object-fit:cover; }.gallery-grid .wide img { height:460px; }.gallery-grid figcaption { padding:14px 16px; color:var(--muted); font-size:.88rem; }.contact-layout { display:grid; grid-template-columns:1.25fr .75fr; gap:clamp(40px,8vw,120px); padding-bottom:86px; }.contact-form { padding:32px; }.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 18px; }.contact-details { padding-top:12px; }.contact-details dl { margin:28px 0; }.contact-details dt { margin-top:17px; color:var(--muted); font-size:.74rem; font-weight:700; text-transform:uppercase; }.contact-details dd { margin:4px 0; font-weight:600; }.contact-details dd a { color:var(--green); text-decoration:none; }.social-links { display:flex; gap:8px; }.social-links a { display:grid; width:33px; height:33px; place-items:center; background:var(--ink); color:var(--white); font-size:.75rem; font-weight:700; text-decoration:none; }.map-placeholder { display:grid; min-height:300px; place-content:center; color:var(--white); background:linear-gradient(rgba(0,82,72,.86),rgba(0,82,72,.86)),url('https://images.unsplash.com/photo-1531058020387-3be344556be6?auto=format&fit=crop&w=1600&q=80') center/cover; text-align:center; }.map-placeholder span { font:700 2rem 'Manrope',sans-serif; }.map-placeholder p { margin:2px 0 0; }.site-footer { display:flex; justify-content:space-between; gap:22px; padding:21px max(24px,calc((100% - var(--container))/2)); background:#11282c; color:#c4d6d1; font-size:.82rem; }.site-footer p { margin:0; }.site-footer a { color:inherit; text-decoration:none; }
@media (max-width:960px) { .site-header { align-items:flex-start; flex-direction:column; gap:8px; }.site-header nav ul { justify-content:flex-start; }.value-grid { grid-template-columns:repeat(2,1fr); }.project-grid { grid-template-columns:1fr 1fr; }.project-grid article:last-child { grid-column:1/-1; } } @media (max-width:680px) { .site-header { position:static; }.site-header nav a { padding:5px 7px; font-size:.72rem; }.page-intro,.section,.content-split,.principles,.team-note,.services-list,.certification-grid,.metrics,.industries,.gallery-grid,.contact-layout { width:calc(100% - 36px); }.page-intro { margin-left:18px; padding:72px 0 52px; }.content-split,.service-row,.contact-layout { grid-template-columns:1fr; padding-top:52px; padding-bottom:52px; }.content-split img { min-height:280px; }.principles,.certification-grid,.metrics,.project-grid,.gallery-grid,.form-grid { grid-template-columns:1fr; }.principles article+article,.metrics article+article { border-top:1px solid var(--line); border-left:0; }.value-grid,.industries ul { grid-template-columns:1fr; }.gallery-grid figure.wide { grid-column:auto; }.gallery-grid img,.gallery-grid .wide img { height:280px; }.site-footer { flex-direction:column; }.contact-form { padding:23px; } }