
:root{--navy:#07394f;--blue:#0c5b79;--green:#328b44;--mint:#eaf5ec;--ink:#123b4b;--muted:#607781;--line:#d8e5e8;--bg:#f7faf9}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font:16px/1.55 Inter,system-ui,-apple-system,Segoe UI,sans-serif;background:white}button,input,select,textarea{font:inherit}button{cursor:pointer}a{text-decoration:none;color:inherit}.wrap{max-width:1220px;width:92%;margin:auto}.strip{background:#07394f;color:#dfeff2;text-align:center;padding:9px;font-size:12px;letter-spacing:.5px}.nav{position:sticky;top:0;z-index:50;background:#ffffffed;backdrop-filter:blur(12px);border-bottom:1px solid #e2edef;box-shadow:0 3px 30px #092f4712}.navin{min-height:146px;display:flex;align-items:center;gap:24px;justify-content:space-between}.brand img{height:133px;width:350px;object-fit:contain;object-position:left center}.navlinks{display:flex;align-items:center;gap:24px;font-weight:700;font-size:14px}.navlinks a:hover{color:var(--green)}.btn{display:inline-block;background:var(--green);color:white;border:0;border-radius:12px;padding:13px 20px;font-weight:750}.btn:hover{background:#216e36}.btn.alt{background:white;color:var(--navy)}.btn.ghost{background:#e5f2e9;color:#1b6840}.hero{background:linear-gradient(115deg,#07394f,#126f7e);color:white}.hero-inner{display:grid;grid-template-columns:1.06fr .94fr;min-height:465px;align-items:center;gap:34px;padding:46px 0}.eyebrow{text-transform:uppercase;letter-spacing:2px;font-size:12px;color:#bcf1c3;font-weight:800}.hero h1{font-size:clamp(36px,4.6vw,62px);letter-spacing:-1.7px;line-height:1.09;margin:16px 0}.hero p{font-size:18px;color:#e0f1f2;max-width:600px}.hero-panel{background:#ffffff14;border:1px solid #ffffff4d;border-radius:24px;padding:30px;box-shadow:0 24px 70px #02263544}.hero-panel h3{margin-top:0;color:white;font-size:25px}.hero-panel p{font-size:15px;margin-bottom:18px}.mini{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mini div{background:#ffffff17;border-radius:12px;padding:14px;font-size:14px}.mini b{display:block;font-size:20px;color:#c2efcf}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}.trust{background:#f0f8f3;padding:22px 0;border-bottom:1px solid var(--line)}.trust .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;color:#2b6950;font-size:13px;font-weight:700}.section{padding:75px 0}.section.shade{background:var(--bg)}.kicker{font-size:12px;text-transform:uppercase;font-weight:800;letter-spacing:1.8px;color:var(--green)}h2{font-size:clamp(30px,3.6vw,46px);line-height:1.13;letter-spacing:-1px;margin:10px 0 18px;color:var(--navy)}.lead{max-width:850px;color:var(--muted);font-size:17px;margin-bottom:29px}.searchbar{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;margin-bottom:14px}.input{background:white;border:1px solid #cddfe1;border-radius:12px;padding:13px;width:100%;color:var(--ink)}.pills{display:flex;flex-wrap:wrap;gap:9px;margin:16px 0 23px}.pill{border:1px solid #adcfc0;border-radius:99px;background:white;padding:9px 14px;color:#235c49;font-size:13px;font-weight:750}.pill.selected,.pill:hover{background:var(--green);border-color:var(--green);color:white}.count{font-size:14px;font-weight:700;color:#386d60;margin-bottom:20px}.products{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.product{display:flex;flex-direction:column;background:white;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 9px 23px #1c3b4910}.photo{height:202px;background:#f2f7f7;display:flex;align-items:center;justify-content:center;padding:15px}.photo img{height:100%;width:100%;object-fit:contain}.nophoto{width:100%;height:100%;background:linear-gradient(135deg,#e7f1f3,#f3f8f5);display:grid;place-items:center;text-align:center;color:#477283;padding:15px;font-size:13px}.nophoto svg{display:block;margin:auto auto 9px}.pcard{padding:18px;display:flex;flex:1;flex-direction:column}.meta{font-size:11px;color:#548673;text-transform:uppercase;letter-spacing:.4px;font-weight:800}.product h3{font-size:17px;line-height:1.28;margin:12px 0}.product p{font-size:13px;color:var(--muted);margin:0 0 9px}.product .spacer{flex:1}.ref{font-weight:750;color:#1c4d67;font-size:13px;margin:9px 0}.product .btn{width:100%;text-align:center;margin-top:8px;padding:10px}.detailbtn{border:1px solid #cbdfe2;color:#246c68;background:#fff;border-radius:9px;padding:9px;width:100%;font-weight:700}.services{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.service{border:1px solid var(--line);padding:26px;background:white;border-radius:18px;box-shadow:0 7px 20px #163f530c}.service h3{color:var(--navy);font-size:22px;margin:0 0 9px}.service p{margin:9px 0;color:#46626a;font-size:14px}.service p strong{color:var(--green)}.sectorgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.sectorgrid div{border:1px solid var(--line);border-radius:14px;padding:22px;background:white;font-weight:700}.client{border:1px solid #d9e8e4;padding:26px;border-radius:17px;background:#f4faf6}.contact{display:grid;grid-template-columns:1fr 1fr;gap:28px}.contact-panel{background:#eff7f3;padding:32px;border-radius:18px}.contact-panel p{color:#41666b}.contact-panel a{text-decoration:underline}.form{border:1px solid var(--line);border-radius:18px;padding:26px}.form label{font-size:13px;font-weight:700;display:block;margin:10px 0 5px}.form button{width:100%;margin-top:16px}footer{background:#07394f;color:#e4f1f4;padding:38px 0}footer p{color:#bdd4db;font-size:14px}.cartbtn{position:fixed;bottom:23px;right:23px;z-index:75;box-shadow:0 16px 35px #062e3a45}.modalbg{display:none;position:fixed;inset:0;background:#061b25b7;z-index:100;justify-content:center;align-items:center;padding:18px}.modalbg.show{display:flex}.dialog{background:white;width:min(680px,100%);max-height:90vh;overflow:auto;border-radius:20px;padding:27px;box-shadow:0 25px 70px #0005}.dialog h2{font-size:26px}.x{border:0;background:transparent;font-size:30px;float:right}.cartline{border-bottom:1px solid var(--line);padding:12px 0}.cartline input{width:82px;padding:5px;border:1px solid var(--line)}.cartline button{border:0;background:none;color:#a33}.highlight{border-left:4px solid var(--green);padding:12px;background:#f0f8f3;color:#355e5b;font-size:14px}.status{padding:14px;border:1px solid #cee4db;border-radius:12px;background:#f7fbf9}#empty{font-size:15px;color:var(--muted)}@media(max-width:1000px){.products{grid-template-columns:repeat(3,1fr)}.brand img{width:280px}.navlinks{gap:14px}}@media(max-width:720px){.navin{min-height:105px}.brand img{height:94px;width:220px}.navlinks a:not(.btn){display:none}.hero-inner,.contact{grid-template-columns:1fr}.hero-inner{padding:40px 0}.products,.services{grid-template-columns:repeat(2,1fr)}.sectorgrid{grid-template-columns:repeat(2,1fr)}.searchbar{grid-template-columns:1fr}.section{padding:52px 0}.hero-panel{padding:22px}}@media(max-width:470px){.products,.services,.sectorgrid{grid-template-columns:1fr}.brand img{width:165px;height:78px}.navlinks .btn{padding:9px;font-size:12px}.mini{grid-template-columns:1fr 1fr}.hero h1{font-size:38px}}

/* CSS commercial form — responsive registration and confirmation */
.form{box-shadow:0 16px 44px #103e5310;background:white}
.form h3{font-size:24px;color:var(--navy);margin:0 0 8px}
.form-intro{color:var(--muted);font-size:14px;margin:0 0 18px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form-row>div{min-width:0}
.form .input:focus-visible{outline:3px solid #9bd4b7;outline-offset:2px}
.form label{margin:14px 0 6px}
.botfield{position:absolute!important;left:-9999px!important;height:0;width:0;overflow:hidden}
.consent-label{display:flex!important;gap:12px;align-items:flex-start;margin:22px 0 9px!important;font-size:13px!important;font-weight:500!important;line-height:1.5}
.consent-label input{width:19px;height:19px;margin:2px 0 0;accent-color:var(--green);flex:none}
.consent-label span{flex:1}
.consent-label a{text-decoration:underline;color:#0a5972;font-weight:750}
.smallnote{font-size:12px;color:var(--muted);line-height:1.45;margin:10px 0}
.submit-lead{min-height:50px}
.submit-lead:disabled{opacity:.65;cursor:wait}
.submit-feedback{min-height:25px;color:#125b4d;font-size:13px;line-height:1.4;font-weight:650}
.submit-feedback.error{color:#a93636;background:#fff1ef;padding:9px 12px;border-radius:8px}
.selected-products{background:#eff8f2;border:1px solid #cde7d4;border-radius:13px;padding:15px;margin:19px 0}
.selected-products[hidden]{display:none}
.selection-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:11px}
.text-button{background:none;border:0;text-decoration:underline;color:var(--navy);font-weight:750;font-size:13px}
.selected-line{display:flex;gap:10px;justify-content:space-between;border-top:1px solid #d8eadd;padding:8px 0;font-size:13px}
.selected-line span{color:#3e695d;flex-shrink:0}
#contacto{scroll-margin-top:170px}
@media(max-width:900px){.contact{grid-template-columns:1fr}}
@media(max-width:560px){.form-row{grid-template-columns:1fr;gap:0}.selected-line{flex-direction:column;gap:2px}.form{padding:19px}.dialog .actions button{flex:1}}

/* Prevent mobile overflow from long corporate email and grid min-content */
.contact{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.contact-panel,.form{min-width:0;overflow-wrap:anywhere}
.form .text-button{width:auto;margin:0}
@media(max-width:900px){.contact{grid-template-columns:minmax(0,1fr)}}

/* V19 · institutional narrative and empathetic brand positioning */
.strip a{color:#d0f6da;text-underline-offset:3px;font-weight:800}
.nav-instagram{font-weight:800;color:var(--green)!important}
.navlinks{gap:16px}
.hero h1{max-width:700px;font-size:clamp(38px,4.45vw,60px)}
.hero-link{display:inline-flex;align-items:center;padding:10px 2px;color:#d8f9dd;font-weight:750;text-decoration:underline;text-underline-offset:6px}
.about-section{background:#fff;position:relative;overflow:hidden}
.about-section:before{content:"";position:absolute;top:0;right:-150px;width:530px;height:530px;border:1px solid #c6e5d2;border-radius:50%;opacity:.55;pointer-events:none}
.about-intro{max-width:940px;margin-bottom:42px;position:relative}
.about-intro h2{max-width:960px;font-size:clamp(36px,4.1vw,58px);line-height:1.12;color:#063c50;letter-spacing:-1.5px}
.about-lead{font-size:clamp(17px,1.8vw,21px);line-height:1.73;color:#365865;max-width:940px}
.about-story-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:28px;align-items:stretch}
.about-manifesto{border-radius:28px;background:linear-gradient(140deg,#07394f,#0b6973);color:#edf9fa;padding:50px;display:flex;flex-direction:column;justify-content:center;box-shadow:0 20px 50px #12445821}
.about-manifesto p{line-height:1.78;color:#e4f5f3;font-size:16px;margin:0 0 19px}
.about-manifesto strong{color:#fff}
.opening-quote{font:900 100px/1 Georgia,serif;color:#a3db92;height:76px}
.about-manifesto .about-quote{font:500 clamp(23px,2.3vw,30px)/1.45 Georgia,serif;color:#fff;margin-bottom:29px}
.about-side{display:flex;flex-direction:column;gap:16px}
.about-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}
.fact{padding:16px 13px;border:1px solid #d2e8df;border-radius:16px;background:#f5fbf8;min-width:0}
.fact-number{display:block;font-size:clamp(26px,3vw,39px);font-weight:850;color:#17825b;line-height:1.1;margin-bottom:11px}
.fact span:last-child{font-size:12px;line-height:1.45;display:block;color:#47646b}
.people-note{padding:27px;border:1px solid #d7e7df;border-radius:22px;background:#f7fbf8;flex:1}
.people-note h3{font-size:clamp(23px,2.2vw,30px);color:#0c4658;line-height:1.2;margin:12px 0 15px}
.people-note p{font-size:14px;line-height:1.75;color:#365760}
.people-note p:last-child{margin-bottom:0}
.purpose-title{margin:66px 0 22px;max-width:740px}
.purpose-title h3{font-size:clamp(26px,3vw,39px);line-height:1.2;color:#083d51;margin:8px 0}
.purpose-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.purpose-grid article{background:#f6faf7;border:1px solid #dceae4;padding:29px;border-radius:20px}
.purpose-icon{color:#238b5c;font-size:32px;font-weight:800}
.purpose-grid h4{font-size:20px;color:#073d51;margin:12px 0}
.purpose-grid p{font-size:14px;color:#4a6670;line-height:1.7;margin:0}
.national-section{background:linear-gradient(125deg,#edf8f2,#ecf4f9)}
.national-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:46px;align-items:center}
.national-grid h2{font-size:clamp(34px,3.8vw,49px);letter-spacing:-1px;line-height:1.12;color:#0b4456}
.national-grid p{line-height:1.8;color:#41616a;font-size:16px}
.national-grid .btn{margin-top:15px}
.national-card{border-radius:30px;background:linear-gradient(150deg,#073d56,#0b6680);min-height:390px;color:#fff;padding:42px;display:flex;flex-direction:column;align-items:flex-start;box-shadow:0 20px 55px #0e516038;position:relative;overflow:hidden}
.national-card:after{content:"";position:absolute;width:290px;height:290px;border:1px solid #ffffff49;border-radius:50%;top:-90px;right:-100px}
.national-card .mapmark{font-size:70px;font-weight:850;line-height:1;color:#a7ebc4;margin-bottom:15px}
.national-card>span{text-transform:uppercase;font-size:12px;letter-spacing:1.6px;color:#c8f0e0;font-weight:800}
.national-card h3{font-size:clamp(25px,2.5vw,34px);line-height:1.16;max-width:420px;margin:14px 0}
.national-card p{color:#d1e9ee;font-size:14px;margin:3px 0}
.national-card-bottom{margin-top:auto;display:flex;flex-direction:column;gap:5px;border-top:1px solid #ffffff2f;padding-top:18px;font-size:11px;color:#d4e8ee}
.footer-social a,footer .company-legal{color:#d1e4e9}
.footer-social a{text-decoration:underline;text-underline-offset:4px}
.company-legal{font-size:12px}
#nosotros,#cobertura,#clientes{scroll-margin-top:120px}
@media(max-width:1120px){.navlinks{gap:10px}.navlinks>a{font-size:13px}.nav-instagram{display:none}}
@media(max-width:960px){.about-story-grid,.national-grid{grid-template-columns:1fr}.about-side{display:grid;grid-template-columns:1fr 1fr}.about-facts{grid-template-columns:1fr}.about-manifesto{padding:32px}}
@media(max-width:700px){.about-side{display:flex}.about-facts{grid-template-columns:repeat(3,1fr)}.purpose-grid{grid-template-columns:1fr}.national-card{min-height:350px;padding:30px}.about-intro h2{letter-spacing:-.6px}.about-section:before{display:none}}
@media(max-width:430px){.about-facts{grid-template-columns:1fr 1fr}.fact:last-child{grid-column:1/-1}.about-manifesto{padding:26px}.opening-quote{font-size:70px;height:53px}.strip{font-size:10px;line-height:1.55}.navlinks .btn{font-size:12px}}

/* V20 · Galería de clientes y transparencia de imágenes */
#clientes{background:linear-gradient(180deg,#fff 0%,#f4faf9 100%)}
.client-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:31px 0 24px}
.client-card{margin:0;background:#fff;border:1px solid #d9e8e8;border-radius:18px;box-shadow:0 14px 28px rgba(7,57,79,.065);padding:12px 14px 14px;min-width:0;transition:transform .2s,box-shadow .2s}
.client-card:hover{transform:translateY(-3px);box-shadow:0 17px 36px rgba(7,57,79,.13)}
.client-logo-wrap{background:#fff;display:flex;align-items:center;justify-content:center;height:135px;min-width:0}
.client-card img{width:100%;height:116px;object-fit:contain;object-position:center}
.client-card figcaption{font-size:12px;line-height:1.3;color:#3d6270;text-align:center;font-weight:700;min-height:32px;padding:7px 0 1px}
.clients-footnote{font-size:12px;line-height:1.6;color:#68808a;margin:22px 0 0}
.photo{position:relative;overflow:hidden}.photo .visual-label{position:absolute;left:10px;right:10px;bottom:9px;background:rgba(255,255,255,.96);border:1px solid #cadede;color:#385d67;border-radius:8px;padding:5px 7px;font-size:10px;font-weight:700;line-height:1.28;letter-spacing:.1px;text-align:center;max-height:42px;overflow:hidden}
.photo img{max-height:100%;object-fit:contain}
.pcard .visual-meta{color:#5a7280;font-size:11px;margin:9px 0 10px;line-height:1.35}
@media(max-width:1000px){.client-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){.client-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.client-card{padding:9px}.client-logo-wrap{height:99px}.client-card img{height:90px}.client-card figcaption{font-size:11px}.photo .visual-label{font-size:9px}}
@media(max-width:380px){.client-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.client-card figcaption{font-size:10px}}


/* V21 licencia SST */
.license-section{background:linear-gradient(180deg,#ffffff 0%,#f6fbf8 100%)}
.license-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:26px}
.license-card{background:#fff;border:1px solid #d8e7dd;border-radius:24px;padding:24px;box-shadow:0 10px 30px rgba(10,54,37,.06)}
.license-eyebrow{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#2f8a43;margin-bottom:10px}
.license-card h3{margin:0 0 12px;font-size:22px;line-height:1.2;color:#153b2d}
.license-card p{margin:0;color:#476458;line-height:1.65}
.license-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:22px}
@media (max-width: 960px){.license-grid{grid-template-columns:1fr}}

/* Galería CSS — V22 */
.ig-section{background:linear-gradient(160deg,#f2faf7 0%,#edf7f9 42%,#f7faf7 100%);border-top:1px solid #dfece8;border-bottom:1px solid #dfece8}
.ig-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:30px}
.ig-title-block{max-width:770px}
.ig-title-block h2{margin:8px 0 16px;color:#123d50;font-size:clamp(30px,3.3vw,45px);line-height:1.14}
.ig-title-block .lead{margin:0}
.ig-profile-link{flex-shrink:0;display:flex;align-items:center;gap:12px;padding:15px 22px;border-radius:20px;text-decoration:none!important;color:#fff!important;font-weight:800;background:linear-gradient(120deg,#165e65,#248e5a);box-shadow:0 14px 28px rgba(9,71,69,.16);line-height:1.3;transition:transform .2s}
.ig-profile-link:hover{transform:translateY(-3px)}
.ig-icon{font-size:37px;line-height:1;color:#fff}
.ig-profile-link small{font-weight:600;color:#e9faf0;font-size:12px}
.ig-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.ig-card{background:white;border-radius:23px;border:1px solid #dce9e4;overflow:hidden;box-shadow:0 12px 24px rgba(22,71,71,.08);transition:transform .25s, box-shadow .25s}
.ig-card:hover{transform:translateY(-4px);box-shadow:0 18px 30px rgba(22,71,71,.13)}
.ig-photo{display:block;position:relative;aspect-ratio:4/3;background:linear-gradient(145deg,#eaf3f2,#f7faf7);overflow:hidden;padding:14px}
.ig-photo img{width:100%;height:100%;display:block;object-fit:contain;background:white;border-radius:12px;transition:transform .28s}
.ig-card:hover .ig-photo img{transform:scale(1.035)}
.ig-photo-zoom{position:absolute;right:24px;top:23px;border-radius:40px;background:rgba(6,53,67,.83);color:#fff;padding:7px 12px;font-size:14px}
.ig-card-info{padding:21px 21px 22px}
.ig-eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:#287c5b;font-weight:800}
.ig-card h3{margin:8px 0 18px;font-size:19px;line-height:1.25;min-height:48px;color:#103d4e}
.ig-card-actions{display:flex;gap:8px}
.ig-download{width:100%;display:flex;align-items:center;justify-content:center;min-height:43px;font-size:14px;padding:10px 12px;border-radius:12px;text-decoration:none!important;font-weight:800;background:#e6f4ea;color:#236544!important;border:1px solid #cbe6d3;transition:background .2s}
.ig-download:hover{background:#d6efdf}
.ig-footer{display:flex;justify-content:space-between;gap:22px;align-items:flex-start;margin-top:22px;font-size:13px;color:#58746d}
.ig-footer a{color:#247d50;font-weight:800;white-space:nowrap}
@media(max-width:1050px){.ig-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ig-heading{align-items:flex-start}.ig-card h3{min-height:0}}
@media(max-width:720px){.ig-heading{flex-direction:column;align-items:stretch}.ig-profile-link{align-self:flex-start}.ig-grid{grid-template-columns:1fr;gap:16px}.ig-footer{flex-direction:column;gap:8px}.ig-photo{aspect-ratio:16/11}}
