@font-face{font-family:Poppins;font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/poppins-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:Poppins;font-weight:500;font-style:normal;font-display:swap;src:url(../fonts/poppins-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:Poppins;font-weight:600;font-style:normal;font-display:swap;src:url(../fonts/poppins-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:Poppins;font-weight:700;font-style:normal;font-display:swap;src:url(../fonts/poppins-latin-700-normal.woff2) format("woff2")}

:root{--red:#d91c1c;--ink:#222529;--tx:#6b6b6b;--bg2:#f7f7f7;--bg3:#f4f4f4;--line:#d5d8dc;--dark:#222529}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font:400 14px/26px Poppins,Arial,sans-serif;color:var(--tx);background:#fff;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--red);text-decoration:none}
a:hover{text-decoration:underline}
ul{margin:0;padding:0;list-style:none}
h1,h2,h3,h4,p{margin:0}
button{font:inherit;cursor:pointer}
.wrap{width:100%;max-width:1170px;margin:0 auto;padding:0 15px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:#fff;padding:8px 14px;z-index:200}
.skip:focus{left:10px;top:10px}
.ic{width:1em;height:1em;flex:none}
.ic.sm{width:9px;height:9px;margin-left:4px}
.ic.lg{width:26px;height:26px}
.ctr{text-align:center}
.hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}

/* ---------- header ---------- */
.hd{background:#fff;position:relative;z-index:60}
.hd.over{position:absolute;left:0;right:0;top:0;padding-top:50px;background:linear-gradient(to bottom,transparent 50px,#fff 50px)}
.hd-in{display:flex;align-items:center;justify-content:space-between;min-height:120px;padding-left:27px;padding-right:27px}
.sub-btn{position:relative}
.sub-btn .ic.sm{position:absolute;right:3px;top:50%;margin:-4px 0 0}
.logo img{width:220px;height:auto}
.nav>ul{display:flex}
.nav>ul>li{position:relative}
.nav>ul>li>a,.sub-btn{display:flex;align-items:center;padding:50px 15px;font:600 14px/20px Poppins,Arial,sans-serif;letter-spacing:-.5px;color:var(--ink);background:none;border:0;text-transform:capitalize}
.nav a:hover,.sub-btn:hover{color:var(--red);text-decoration:none}
.nav>ul>li>a.on,.has-sub.on>.sub-btn{color:var(--red)}
.sub{position:absolute;left:0;top:100%;min-width:210px;background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.14);padding:5px 0;opacity:0;visibility:hidden;transform:translateY(8px);transition:.2s}
.sub a{display:block;padding:8px 15px;font-size:13px;line-height:20px;color:var(--tx)}
.sub a:hover{color:var(--red);background:var(--bg3);text-decoration:none}
.has-sub:hover>.sub,.has-sub.open>.sub,.has-sub:focus-within>.sub{opacity:1;visibility:visible;transform:none}
.burger{display:none;background:#f00;border:0;color:#fff;width:37px;height:34px;border-radius:3px;padding:0;align-items:center;justify-content:center}
.burger .ic{width:16px;height:16px}

/* ---------- hero ---------- */
.hero{position:relative;height:600px;overflow:hidden;background:#eee}
.sl{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .8s}
.sl.on{opacity:1;visibility:visible}
.hero .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-in{position:relative;height:100%}
.hero-tx{position:absolute;inset:0;z-index:2}
.hero-tx h1,.hero-tx h2{position:absolute;left:223px;top:263px;width:722px;font:700 80px/80px Poppins,Arial,sans-serif;letter-spacing:5px;text-transform:uppercase;color:#fff}
.hero-tx .ghost{position:absolute;left:195px;top:223px;white-space:nowrap;font:700 83.2px/70.72px Poppins,Arial,sans-serif;letter-spacing:5px;text-transform:uppercase;color:transparent;-webkit-text-stroke:.3px #fff}
.hero-tx .ghost+h1+.ghost{top:399px;font-size:80px;line-height:68px}
.hero-tx.dark h2{left:195px;top:293px;width:744px;font-size:65.6px;line-height:65.6px}
.hero-tx.dark .ghost{left:195px;top:255px;font-size:70.4px;line-height:59.84px}
.hero-img{position:absolute;left:775px;top:-238px;width:855px;height:838px;max-width:none}
.hero-bar{position:absolute;left:587px;right:calc(50% - 50vw);top:450px;height:96px;display:flex;align-items:center;background:#f00;color:#fff;font:700 23px/30px Poppins,Arial,sans-serif;padding:0 0 0 128px;clip-path:polygon(96px 0,100% 0,100% 100%,0 100%)}
.hero-in.r .hero-bar{left:696px;background:linear-gradient(90deg,#f00 96px,#212529 96px)}
.hero-nav{position:absolute;top:50%;width:57px;height:57px;margin-top:-28px;border:0;background:rgba(38,42,47,.4);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:5;opacity:0;transition:opacity .25s,background .2s}
.hero:hover .hero-nav,.hero-nav:focus-visible{opacity:1}
.hero-nav:hover{background:var(--red)}
.hero-nav.p{left:22px;transform:scaleX(-1)}
.hero-nav.n{right:22px}
.hero .dots{display:none}
.dots{position:absolute;left:0;right:0;bottom:16px;display:flex;justify-content:center;gap:8px;z-index:5}
.dots button{width:10px;height:10px;border-radius:50%;border:0;padding:0;background:rgba(34,37,41,.35)}
.dots button.on{background:var(--red)}

/* ---------- secciones ---------- */
.sec{padding:60px 0}
.sec.gray{background:var(--bg2)}
.h2{font:700 28px/42px Poppins,Arial,sans-serif;color:var(--ink);margin-bottom:24px}
.h3{font:700 20px/30px Poppins,Arial,sans-serif;color:var(--ink);margin:28px 0 8px}
.h-main{font:700 30.8px/36px Poppins,Arial,sans-serif;color:var(--ink);margin-bottom:24px}
.lead{font-size:16.8px;font-weight:300;line-height:28px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.two.eq .col-m{min-width:0}
.about .two{gap:60px}
.more{display:inline-flex;align-items:center;gap:10px;margin-top:18px;font:600 12px/20px Poppins,Arial,sans-serif;text-transform:uppercase;letter-spacing:.3px;color:var(--red)}
.more .ic{width:22px;height:22px}
.btn,.btn-ficha{display:inline-block;background:var(--red);color:#fff;border:0;padding:11px 34px;font:600 13px/20px Poppins,Arial,sans-serif;border-radius:2px}
.btn:hover,.btn-ficha:hover{background:var(--ink);color:#fff;text-decoration:none}
.btn.sm{padding:6px 20px;font-size:12px}
.btn-ficha{margin:4px 6px 4px 0}

.svs{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.sv{background:#fff;padding:30px;text-align:left}
.sv img{width:80px;height:auto;margin-bottom:16px}
.sv h3{font:700 21px/28px Poppins,Arial,sans-serif;margin-bottom:8px}
.sv h3 a{color:var(--ink)}
.sv h3 a:hover{color:var(--red);text-decoration:none}

.cats{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.cat{position:relative;display:block;overflow:hidden;background:var(--ink)}
.cat img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;transition:transform .5s}
.cat:hover img{transform:scale(1.06)}
.cat-in{position:absolute;left:0;right:0;bottom:0;padding:18px 20px;background:linear-gradient(transparent,rgba(0,0,0,.7));color:#fff}
.cat-in h2,.cat-in h3{font:700 15px/20px Poppins,Arial,sans-serif;text-transform:uppercase;color:#fff}
.cat-in p{font-size:12px;line-height:20px;text-transform:uppercase}
.cat-w{display:flex;flex-direction:column}
.all{display:block;margin-top:10px;text-align:center;font:600 13px/20px Poppins,Arial,sans-serif;padding:8px;background:var(--bg3);color:var(--ink)}
.all:hover{background:var(--red);color:#fff;text-decoration:none}

.pjs{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:20px 0 24px;scrollbar-width:thin}
.pj{flex:0 0 calc((100% - 48px)/4);scroll-snap-align:start;overflow:hidden}
.pj img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .5s}
.pj:hover img{transform:scale(1.07)}
.logos{overflow:hidden;margin-top:10px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.logos ul{display:flex;gap:30px;width:max-content;animation:mq 120s linear infinite}
.logos:hover ul{animation-play-state:paused}
.logos li img{width:130px;height:130px;object-fit:contain}
@keyframes mq{to{transform:translateX(-50%)}}

/* ---------- barra de página ---------- */
.bar{background:#f7f7f7;padding:52px 0;overflow:hidden}
.bar .wrap{padding-right:27px}
.bar-in{display:grid;grid-template-columns:minmax(0,1fr);justify-content:end;row-gap:4px;width:max-content;min-width:451px;max-width:100%;margin-left:auto}
.crumbs{padding-left:32px;font:400 11.2px/26px Poppins,Arial,sans-serif;text-transform:uppercase;color:#666}
.crumbs a,.crumbs span:not(.sep):not(:last-child){color:#c93a17}
.crumbs .sep{display:inline-block;width:20px;margin:0;text-align:center;font-size:12px}
.bar-t{position:relative;display:flex;align-items:center;height:86px;padding-left:32px;background:#222529;color:#fff;font:700 18px/21.6px Poppins,Arial,sans-serif;letter-spacing:-.9px}
.bar-t:before{content:"";position:absolute;left:calc(100% - 1px);top:0;width:100vw;height:100%;background:#222529}
.bar-t:after{content:"";position:absolute;left:-86px;top:0;width:87px;height:86px;background:#222529;clip-path:polygon(100% 0,100% 100%,0 100%)}

/* ---------- servicios ---------- */
.two:has(.col-s){grid-template-columns:260px 1fr}
.col-s{order:0;min-width:0}
.col-m{min-width:0}
.side-t{position:relative;font:700 18px/24px Poppins,Arial,sans-serif;color:var(--ink);margin:0 0 20px;padding-bottom:14px}
.side-t:after{content:"";position:absolute;left:0;bottom:0;width:40px;height:3px;background:var(--red);border-radius:2px}
.side-list{margin:0 0 38px;padding:0;list-style:none;border:1px solid #e6e8ea;border-radius:6px;overflow:hidden;background:#fff}
.side-list li{border-bottom:1px solid #eceef0}
.side-list li:last-child{border-bottom:0}
.side-list a{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 18px 13px 20px;font:500 14px/20px Poppins,Arial,sans-serif;color:#555;border-left:3px solid transparent;transition:background .2s,color .2s,padding .2s,border-color .2s}
.side-list a:after{content:"";flex:none;width:7px;height:7px;border:solid currentColor;border-width:2px 2px 0 0;transform:rotate(45deg);opacity:.45;transition:transform .2s,opacity .2s}
.side-list a:hover{background:var(--bg2);color:var(--red);padding-left:24px;text-decoration:none}
.side-list a:hover:after{opacity:1;transform:translateX(3px) rotate(45deg)}
.side-list li.on a{background:var(--bg2);color:var(--ink);font-weight:700;border-left-color:var(--red)}
.side-list li.on a:after{color:var(--red);opacity:1}
.thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.thumbs img{width:100%;aspect-ratio:1;object-fit:cover}
.thumbs.six{grid-template-columns:repeat(6,1fr);gap:12px}
.car{position:relative;overflow:hidden;margin-bottom:30px;background:#eee;aspect-ratio:3/2}
.car .sl img{width:100%;height:100%;object-fit:cover}
.car .dots{bottom:10px}
.txt p+p,.txt ul{margin-top:12px}
.txt{margin-bottom:24px}
.txt ul,.acc-b ul{list-style:none}
.acc-b li{position:relative;padding-left:16px}
.acc-b li::before,.txt li::before{content:"";position:absolute;left:0;top:11px;width:5px;height:5px;border-radius:50%;background:var(--red)}
.txt li{position:relative;padding-left:16px}
.acc{margin-top:10px}
.acc-i{border:1px solid var(--line);margin-bottom:16px}
.acc-h{font:inherit}
.acc-h button{width:100%;display:flex;align-items:center;gap:14px;text-align:left;background:none;border:0;padding:15px 20px;font:700 14px/20px Poppins,Arial,sans-serif;color:var(--tx)}
.acc-h button .ic{transition:transform .25s}
.acc-i.open .acc-h button .ic{transform:rotate(45deg)}
.acc-i.open .acc-h button{color:var(--ink)}
.acc-b{background:var(--bg3);padding:32px}
.acc-b p+p,.acc-b p+ul,.acc-b ul+p{margin-top:12px}
.acc-b[hidden],.tab-p[hidden]{display:none}

/* ---------- nosotros ---------- */
.banner img{width:100%;height:auto;margin-bottom:32px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:40px;text-align:center}
.num{font:700 46px/52px Poppins,Arial,sans-serif;color:var(--red)}
.lbl{font:600 14px/22px Poppins,Arial,sans-serif;color:var(--ink);text-transform:uppercase}
.vm{display:grid;grid-template-columns:1fr 1fr;gap:30px}
.vm-i{background:#fff;padding:32px;border-top:3px solid var(--red)}
.vm-i h3{font:700 21px/28px Poppins,Arial,sans-serif;color:var(--ink);margin-bottom:10px}
.tabs{margin-top:10px}
.tab-l{display:flex;flex-wrap:wrap;border-bottom:1px solid var(--line)}
.tab-l button{background:none;border:0;border-bottom:3px solid transparent;margin-bottom:-1px;padding:12px 26px;font:700 13px/20px Poppins,Arial,sans-serif;color:var(--tx);text-transform:uppercase}
.tab-l button.on{color:var(--ink);border-bottom-color:var(--red)}
.tab-p{padding:24px 0}
.rd{color:var(--red)}

/* ---------- productos ---------- */
.pgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px}
.pgrid.three{grid-template-columns:repeat(3,1fr)}
.pc{text-align:left}
.pc-img{display:block;background:#fff;border:1px solid #eee;margin-bottom:12px;overflow:hidden}
.pc-img img{width:100%;aspect-ratio:1;object-fit:contain;transition:transform .4s}
.pc:hover .pc-img img{transform:scale(1.05)}
.pc-c{font-size:11px;line-height:18px;text-transform:uppercase;color:#aaa}
.pc-t{font:600 14px/20px Poppins,Arial,sans-serif;margin:4px 0 12px}
.pc-t a{color:var(--ink)}
.pc-t a:hover{color:var(--red);text-decoration:none}
.empty{padding:20px;background:var(--bg3);text-align:center}
.pg{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:50px}
.pg-main{width:100%;height:auto;border:1px solid #eee}
.pg-th{display:flex;gap:10px;margin-top:10px}
.pg-th button{padding:0;border:2px solid transparent;background:none;width:90px}
.pg-th button.on{border-color:var(--red)}
.pg-d p+p,.pg-d ul{margin-top:10px}
.pg-d ul{list-style:none}
.pg-d li{position:relative;padding-left:16px;margin:2px 0}
.pg-d li::before{content:"";position:absolute;left:0;top:11px;width:5px;height:5px;border-radius:50%;background:var(--red)}
.pg-cat{margin-top:20px;font-size:13px}
.pg+.tabs{margin-top:40px}
.pg~.tabs{margin-top:40px}
.tab-p ul{list-style:none;margin:10px 0}
.tab-p li{position:relative;padding-left:16px}
.tab-p li::before{content:"";position:absolute;left:0;top:11px;width:5px;height:5px;border-radius:50%;background:var(--red)}
.tab-p ul ul{margin:0}
.tab-p h3,.tab-p h2.h3{font:700 16px/24px Poppins,Arial,sans-serif;color:var(--ink);margin:12px 0 4px}
.meta{font-size:12px;color:#aaa;margin-bottom:12px}
.det li{padding:6px 0;border-bottom:1px solid var(--line)}
.pj-img{width:100%;height:auto;margin-bottom:16px}

/* ---------- contacto ---------- */
.offs{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.off h2{font:700 20px/30px Poppins,Arial,sans-serif;color:var(--ink);margin-bottom:8px}
.off p{display:flex;gap:10px;align-items:flex-start;margin:6px 0}
.off .ic{width:18px;height:18px;margin-top:4px;color:var(--red)}
.frm{margin-top:20px}
.f{display:block;margin-bottom:14px}
.f input,.f textarea{width:100%;padding:12px 16px;border:1px solid var(--line);background:#fff;font:400 14px/22px Poppins,Arial,sans-serif;color:var(--ink);border-radius:2px}
.f input:focus,.f textarea:focus{outline:2px solid var(--red);outline-offset:0;border-color:var(--red)}
.chk{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;line-height:20px;margin:6px 0 18px}
.chk input{margin-top:3px}
.form-msg{margin-top:14px;font-weight:600}
.form-msg.ok{color:#1c7c3b}
.form-msg.err{color:#c0392b}
.map iframe{width:100%;height:380px;border:0;margin-top:14px}
.narrow{max-width:860px}
.n404{font:700 110px/110px Poppins,Arial,sans-serif;color:var(--red)}

/* ---------- footer ---------- */
.ft{background:var(--bg3);padding-top:60px;font-size:12.6px}
.ft-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;padding-bottom:40px}
.ft .logo img{width:200px;margin-bottom:18px}
.ft-info li{margin-bottom:10px}
.ft-t{font:700 17.64px/24px Poppins,Arial,sans-serif;color:#333;text-transform:capitalize;margin-bottom:18px}
.ft-list li{padding:6px 0 6px 15px;position:relative}
.ft-list li::before{content:"";position:absolute;left:0;top:16px;width:5px;height:5px;border-radius:50%;background:var(--red)}
.ft-list a,.ft-info a{color:var(--tx);font-weight:600}
.off a{color:inherit}
.off a:hover{color:var(--red)}
.ft-list a:hover,.ft-info a:hover,.ft-bot a:hover{color:var(--red)}
.ft-bot{border-top:1px solid #e3e3e3;padding:22px 0;color:#9a9a9a}
.ft-bot .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.ft-bot a{color:#9a9a9a}
.totop{position:fixed;right:18px;bottom:18px;width:44px;height:44px;border:0;border-radius:50%;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:.25s;z-index:80}
.totop.show{opacity:.9;visibility:visible}
.totop:hover{background:var(--red)}
.wa{position:fixed;left:18px;bottom:18px;width:52px;height:52px;border-radius:50%;background:#25d366;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 10px rgba(0,0,0,.25);z-index:80;transition:transform .2s}
.wa:hover{transform:scale(1.08);text-decoration:none}
.wa .ic{width:30px;height:30px}
.rv{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}
:focus-visible{outline:2px solid var(--red);outline-offset:2px}

/* ---------- responsive ---------- */
@media (max-width:991px){
.hd{padding-top:0}
.hd.over{background:#fff;padding-top:0}
.hd-in{min-height:90px;flex-wrap:wrap;padding:0 28px 0 20px}
.sub-btn .ic.sm{right:6px}
.logo img{width:150px}
.burger{display:flex}
.nav{display:none;width:100%;order:3;border-top:1px solid #eee;margin-top:6px}
.nav.open{display:block}
.nav>ul{flex-direction:column}
.nav>ul>li>a,.sub-btn{padding:12px 4px;width:100%;justify-content:space-between}
.sub{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;display:none;padding:0 0 6px 14px;background:var(--bg2)}
.has-sub.open>.sub{display:block}
.has-sub:hover>.sub{display:none}
.has-sub.open:hover>.sub{display:block}
.hero{height:320px}
.hero-tx h1,.hero-tx h2,.hero-tx.dark h2{left:20px;top:143px;width:312px;font-size:35.1px;line-height:35.1px;letter-spacing:2.2px}
.hero-tx .ghost,.hero-tx.dark .ghost{left:20px;top:124px;font-size:36.5px;line-height:31px;letter-spacing:2.2px}
.hero-tx .ghost+h1+.ghost{top:206px;font-size:35.1px;line-height:29.8px}
.hero-tx.dark h2{top:143px}
.hero-img{left:auto;right:-190px;top:33px;width:293px;height:287px}
.hero-bar,.hero-nav{display:none}
.sec{padding:44px 0}
.svs,.cats{grid-template-columns:repeat(2,1fr)}
.pgrid{grid-template-columns:repeat(3,1fr)}
.pj{flex-basis:calc((100% - 32px)/3)}
.two:has(.col-s){grid-template-columns:1fr}
.col-s{order:2}
.stats{grid-template-columns:repeat(2,1fr)}
.offs{grid-template-columns:1fr}
.ft-grid{grid-template-columns:1fr 1fr}
.thumbs.six{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:767px){
.two,.vm,.pg{grid-template-columns:1fr;gap:28px}
.about .two{gap:10px}
.svs,.cats,.pgrid,.pgrid.three{grid-template-columns:1fr}
.pgrid,.pgrid.three{grid-template-columns:repeat(2,1fr);gap:18px}
.pj{flex-basis:calc((100% - 16px)/2)}
.h2{font-size:24px;line-height:34px}
.h-main{font-size:25px;line-height:32px}
.bar .wrap{padding-right:20px}
.bar-in{width:calc(100vw - 196px);min-width:0}
.crumbs{font-size:10.4px;line-height:24px}
.bar-t{height:80px}
.bar-t:after{left:-80px;width:81px;height:80px}
.ft-grid{grid-template-columns:1fr}
.acc-b{padding:20px}
.stats{gap:10px}
.num{font-size:36px}
.logos li img{width:100px;height:100px}
.n404{font-size:80px;line-height:80px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
