/* Wi-Fire Alarmes · design system v2 */
:root{
  --red:#E2001A;--red-d:#B50014;--red-soft:#FFE9EC;--ember:#FF6A3D;
  --ink:#0B0B0D;--ink-2:#3F4046;--ink-3:#73747C;--line:#E7E4DF;--line-2:#D9D5CE;
  --paper:#F7F5F1;--paper-2:#EFECE6;--white:#FFFFFF;--night:#0E0E11;--night-2:#17171B;
  --wa:#25D366;--wa-d:#1DB457;
  --fh:"Space Grotesk","Manrope",system-ui,sans-serif;
  --fb:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --r:16px;--r-lg:28px;--r-xl:36px;
  --sh:0 1px 2px rgba(11,11,13,.04),0 12px 32px -12px rgba(11,11,13,.14);
  --sh-lg:0 30px 70px -20px rgba(11,11,13,.28);
  --max:1240px;--gutter:clamp(18px,4vw,40px);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
html,body{overflow-x:clip}
body{margin:0;font-family:var(--fb);color:var(--ink);background:var(--paper);line-height:1.6;font-size:16.5px;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
svg{max-width:100%}
h1,h2,h3,h4{font-family:var(--fh);line-height:1.05;margin:0 0 .5em;font-weight:700;letter-spacing:-.03em}
h1{font-size:clamp(2.4rem,5.6vw,4.4rem)}
h2{font-size:clamp(1.9rem,3.6vw,2.9rem)}
h3{font-size:1.3rem;letter-spacing:-.015em;line-height:1.2}
p{margin:0 0 1em}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.sec{padding:clamp(64px,9vw,120px) 0}
.sec-tight{padding:clamp(40px,6vw,72px) 0}
.sec-white{background:var(--white)}
.sec-night{background:var(--night);color:#fff}
.sec-night .lead,.sec-night p{color:#B9BAC3}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--fh);font-weight:700;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--red);margin-bottom:18px}
.eyebrow::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--red);box-shadow:0 0 0 4px var(--red-soft)}
.sec-night .eyebrow{color:#FF6B7A}.sec-night .eyebrow::before{box-shadow:0 0 0 4px rgba(255,107,122,.2)}
.lead{font-size:clamp(1.05rem,1.4vw,1.25rem);color:var(--ink-2);max-width:60ch;line-height:1.55}
.center{text-align:center}.center .lead{margin-inline:auto}
.sec-head{max-width:820px;margin-bottom:clamp(32px,5vw,56px)}
.sec-head.center{margin-inline:auto}
.muted{color:var(--ink-3)}.small{font-size:.9rem}
.mt-2{margin-top:16px}.mt-3{margin-top:28px}.mt-4{margin-top:48px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:16px 26px;border-radius:999px;font-family:var(--fh);font-weight:700;font-size:1rem;letter-spacing:-.01em;border:1.5px solid transparent;cursor:pointer;transition:transform .18s,box-shadow .18s,background .18s,border-color .18s;white-space:nowrap;line-height:1}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn svg{width:20px;height:20px;flex:none}
.btn-wa{background:var(--wa);color:#fff;box-shadow:0 14px 30px -10px rgba(37,211,102,.7)}
.btn-wa:hover{background:var(--wa-d)}
.btn-red{background:var(--red);color:#fff;box-shadow:0 14px 30px -10px rgba(226,0,26,.6)}
.btn-red:hover{background:var(--red-d)}
.btn-dark{background:var(--ink);color:#fff}
.btn-dark:hover{background:#26262B}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line-2)}
.btn-ghost:hover{border-color:var(--ink)}
.btn-light{background:#fff;color:var(--ink)}
.btn-sm{padding:12px 18px;font-size:.92rem}
.btn-lg{padding:19px 32px;font-size:1.08rem}
@media(max-width:520px){.btn{white-space:normal;text-align:center;line-height:1.2}.btn-lg{padding:16px 22px;font-size:1rem}.hero-cta .btn{width:100%}}
.on-dark .btn-ghost{color:#fff;border-color:rgba(255,255,255,.3)}
.on-dark .btn-ghost:hover{border-color:#fff}
.link{color:var(--red);font-weight:600;display:inline-flex;align-items:center;gap:6px}
.link svg{width:16px;height:16px;flex:none;transition:transform .18s}
.link:hover svg{transform:translateX(3px)}

/* header */
.header{position:sticky;top:0;z-index:60;padding:14px 0;transition:padding .2s}
.header .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;background:rgba(255,255,255,.72);backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);border:1px solid rgba(11,11,13,.06);border-radius:999px;padding:8px 8px 8px 20px;box-shadow:0 10px 30px -18px rgba(11,11,13,.3);max-width:calc(var(--max) - 40px)}
.header.scrolled{padding:8px 0}
.logo img{width:132px;height:auto}
.nav{display:flex;align-items:center;gap:4px}
.nav>a{font-weight:600;font-size:.94rem;color:var(--ink-2);padding:10px 14px;border-radius:999px}
.nav>a:hover{background:var(--paper-2);color:var(--ink)}
.nav>a[aria-current]{color:var(--red)}
.nav .btn{margin-left:8px}
.burger{display:none;background:var(--ink);border:0;width:44px;height:44px;border-radius:50%;cursor:pointer;padding:0;place-items:center}
.burger span{display:block;width:18px;height:2px;background:#fff;margin:4px auto;transition:.2s;border-radius:2px}
.burger[aria-expanded=true] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.burger[aria-expanded=true] span:nth-child(2){opacity:0}
.burger[aria-expanded=true] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
@media(max-width:960px){
  .header .wrap{padding:8px 8px 8px 16px}
  .nav{display:none;position:absolute;top:calc(100% + 10px);left:var(--gutter);right:var(--gutter);background:#fff;flex-direction:column;align-items:stretch;padding:12px;border-radius:var(--r-lg);box-shadow:var(--sh-lg);gap:2px;border:1px solid var(--line)}
  .nav>a{padding:14px 16px;font-size:1.05rem}
  .nav .btn{margin:10px 0 0}
  .nav.open{display:flex}
  .burger{display:grid}
}

/* hero */
.hero{position:relative;overflow:hidden;padding:clamp(28px,5vw,64px) 0 clamp(56px,7vw,96px)}
.hero::before{content:"";position:absolute;inset:0;background:
  radial-gradient(900px 500px at 88% 10%,rgba(226,0,26,.10),transparent 60%),
  radial-gradient(700px 400px at 10% 90%,rgba(255,106,61,.10),transparent 60%);pointer-events:none}
.hero .wrap{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(32px,5vw,72px);align-items:center}
.pill{display:inline-flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 14px 8px 8px;font-size:.86rem;font-weight:600;color:var(--ink-2);box-shadow:var(--sh);margin-bottom:26px}
.pill b{background:var(--red);color:#fff;border-radius:999px;padding:4px 10px;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;font-family:var(--fh)}
.hero h1{margin-bottom:22px}
.hero h1 .accent{color:var(--red);position:relative;white-space:nowrap}
.hero h1 .accent::after{content:"";position:absolute;left:0;right:0;bottom:.04em;height:.14em;background:linear-gradient(90deg,var(--red),var(--ember));border-radius:3px;opacity:.28}
.hero .lead{margin-bottom:32px}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:30px}
.hero-cta .sub{font-size:.88rem;color:var(--ink-3);flex-basis:100%}
.hero-proof{display:flex;flex-wrap:wrap;gap:10px 26px;color:var(--ink-2);font-size:.92rem;font-weight:500}
.hero-proof span{display:inline-flex;align-items:center;gap:8px}
.hero-proof svg{width:18px;height:18px;color:var(--red)}
/* malha sem fio */
.mesh{position:relative;aspect-ratio:1/1;max-width:560px;margin-inline:auto;width:100%}
.mesh svg.lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.mesh .ln{stroke:rgba(226,0,26,.45);stroke-width:1.5;stroke-dasharray:6 8;animation:dash 6s linear infinite;vector-effect:non-scaling-stroke}
.mesh .ln.slow{animation-duration:9s;stroke:rgba(11,11,13,.18)}
@keyframes dash{to{stroke-dashoffset:-140}}
.node{position:absolute;transform:translate(-50%,-50%);display:grid;place-items:center}
.node .ring{position:absolute;inset:0;border-radius:50%;border:1.5px solid rgba(226,0,26,.5);animation:ping 3.2s cubic-bezier(.2,.7,.3,1) infinite}
.node .ring:nth-child(2){animation-delay:1.1s}
.node .ring:nth-child(3){animation-delay:2.2s}
@keyframes ping{0%{transform:scale(.6);opacity:.9}100%{transform:scale(1.9);opacity:0}}
.node .disc{position:relative;background:#fff;border-radius:50%;box-shadow:var(--sh-lg);display:grid;place-items:center;border:1px solid var(--line);width:100%;height:100%;padding:14%}
.node .disc img{object-fit:contain;max-height:100%;width:auto}
.node.n-central{left:50%;top:52%;width:46%;height:46%}
.node.n-central .disc{border-radius:32%;padding:8%}
.node.n-det{left:18%;top:20%;width:24%;height:24%}
.node.n-sir{left:84%;top:26%;width:22%;height:22%}
.node.n-aci{left:14%;top:78%;width:22%;height:22%}
.node.n-rep{left:86%;top:80%;width:20%;height:20%}
.node .lbl{position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);white-space:nowrap;font-family:var(--fh);font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);background:#fff;padding:4px 10px;border-radius:999px;border:1px solid var(--line)}
.node.n-central .lbl{background:var(--ink);color:#fff;border-color:var(--ink);top:auto;bottom:-16px;font-size:.76rem}
.mesh .float{animation:float 7s ease-in-out infinite}
.mesh .float.d2{animation-delay:-2.5s}.mesh .float.d3{animation-delay:-4.5s}
@keyframes float{0%,100%{transform:translate(-50%,-50%)}50%{transform:translate(-50%,calc(-50% - 8px))}}
@media(max-width:960px){.hero .wrap{grid-template-columns:1fr}.mesh{max-width:420px}.hero{padding-top:12px}}
@media(prefers-reduced-motion:reduce){.mesh *{animation:none!important}}

/* marquee */
.marquee{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;padding:16px 0;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee .track{display:flex;gap:44px;width:max-content;animation:mq 42s linear infinite;font-family:var(--fh);font-weight:700;font-size:.92rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}
.marquee .track span{display:inline-flex;align-items:center;gap:14px;white-space:nowrap}
.marquee .track span::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--red)}
@keyframes mq{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.marquee .track{animation:none}}

/* bento */
.bento{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}
.tile{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:30px;position:relative;overflow:hidden;min-height:220px;display:flex;flex-direction:column;justify-content:flex-end}
.tile .big{font-family:var(--fh);font-weight:700;font-size:clamp(3rem,6vw,5rem);letter-spacing:-.05em;line-height:.95;color:var(--ink)}
.tile .big i{font-style:normal;color:var(--red)}
.tile .lab{font-weight:600;color:var(--ink-2);margin-top:8px}
.tile .desc{color:var(--ink-3);font-size:.94rem;margin-top:8px}
.tile-6{grid-column:span 6}.tile-4{grid-column:span 4}.tile-3{grid-column:span 3}.tile-8{grid-column:span 8}
.tile.dark{background:var(--night);border-color:var(--night);color:#fff}
.tile.dark .big{color:#fff}.tile.dark .lab{color:#D6D7DE}.tile.dark .desc{color:#9A9BA6}
.tile.red{background:linear-gradient(135deg,var(--red),#9E0012);border-color:transparent;color:#fff}
.tile.red .big,.tile.red .lab{color:#fff}.tile.red .desc{color:rgba(255,255,255,.8)}
.tile .glow{position:absolute;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,rgba(226,0,26,.35),transparent 65%);right:-120px;top:-120px;pointer-events:none}
.tile .logos-in{display:flex;flex-wrap:wrap;gap:14px 22px;align-items:center;margin-top:18px}
.tile .logos-in img{height:30px;width:auto;filter:grayscale(1) brightness(1.6);opacity:.85}
.tile .ic{width:48px;height:48px;border-radius:14px;background:var(--red-soft);color:var(--red);display:grid;place-items:center;margin-bottom:auto}
.tile .ic svg{width:24px;height:24px}
.tile.dark .ic{background:rgba(255,255,255,.08);color:#FF6B7A}
@media(max-width:960px){.tile-6,.tile-4,.tile-3,.tile-8{grid-column:span 6}}
@media(max-width:600px){.tile-6,.tile-4,.tile-3,.tile-8{grid-column:span 12}.tile{min-height:170px}}

/* steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;position:relative}
.step{background:var(--night-2);border:1px solid rgba(255,255,255,.08);border-radius:var(--r-lg);padding:32px 28px 28px;position:relative}
.step .num{font-family:var(--fh);font-size:.8rem;letter-spacing:.14em;color:#FF6B7A;font-weight:700;margin-bottom:26px;display:flex;align-items:center;gap:12px}
.step .num::after{content:"";flex:1;height:1px;background:rgba(255,255,255,.12)}
.step h3{color:#fff;margin-bottom:10px;font-size:1.35rem}
.step p{margin:0;color:#B9BAC3}
@media(max-width:860px){.steps{grid-template-columns:1fr}}

/* product strip */
.strip-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px}
.strip-nav{display:flex;gap:8px}
.strip-nav button{width:46px;height:46px;border-radius:50%;border:1.5px solid var(--line-2);background:#fff;cursor:pointer;display:grid;place-items:center;transition:.18s;color:var(--ink)}
.strip-nav button:hover{border-color:var(--ink);background:var(--ink);color:#fff}
.strip-nav svg{width:18px;height:18px}
.strip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(272px,1fr);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 6px 22px;margin:0 -6px;scrollbar-width:none}
.strip::-webkit-scrollbar{display:none}
.strip>*{scroll-snap-align:start}
@media(min-width:1100px){.strip{grid-auto-columns:calc((100% - 60px)/4)}}
.pcard{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column;transition:transform .22s,box-shadow .22s,border-color .22s;position:relative}
.pcard:hover{transform:translateY(-5px);box-shadow:var(--sh-lg);border-color:transparent}
.pcard .pimg{background:radial-gradient(circle at 50% 60%,#fff,var(--paper-2));aspect-ratio:1/.9;display:grid;place-items:center;padding:26px;position:relative}
.pcard .pimg::after{content:"";position:absolute;width:60%;height:14%;bottom:12%;left:20%;background:radial-gradient(ellipse,rgba(11,11,13,.14),transparent 70%);filter:blur(6px)}
.pcard .pimg img{max-height:100%;width:auto;max-width:72%;object-fit:contain;position:relative;z-index:1;transition:transform .3s}
.pcard:hover .pimg img{transform:scale(1.05)}
.pcard .tag{position:absolute;top:14px;left:14px;z-index:2;background:var(--red);color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:6px 10px;border-radius:999px;font-family:var(--fh)}
.pcard .pbody{padding:20px 22px 22px;display:flex;flex-direction:column;gap:8px;flex:1}
.pcard .pcat{font-size:.72rem;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.1em;font-family:var(--fh)}
.pcard h3{font-size:1.1rem;margin:0}
.pcard p{color:var(--ink-2);font-size:.93rem;margin:0;flex:1}
.pcard .link{margin-top:8px;font-size:.92rem}

/* grid genérico */
.grid{display:grid;gap:18px}
.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:980px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}}

/* segment tiles com foto */
.segs{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}
.segt{position:relative;border-radius:var(--r-lg);overflow:hidden;min-height:300px;display:flex;align-items:flex-end;color:#fff;grid-column:span 2;isolation:isolate}
.segt:nth-child(1),.segt:nth-child(2){grid-column:span 3;min-height:340px}
.segt img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .6s}
.segt:hover img{transform:scale(1.05)}
.segt::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(14,14,17,.05) 30%,rgba(14,14,17,.88) 100%)}
.segt .sb{padding:26px}
.segt .sb h3{color:#fff;margin-bottom:6px;font-size:1.35rem}
.segt .sb p{color:#D6D7DE;margin:0;font-size:.92rem}
.segt .arr{position:absolute;top:18px;right:18px;width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.14);backdrop-filter:blur(6px);display:grid;place-items:center;transition:.2s}
.segt .arr svg{width:18px;height:18px}
.segt:hover .arr{background:var(--red)}
@media(max-width:960px){.segt,.segt:nth-child(1),.segt:nth-child(2){grid-column:span 3}}
@media(max-width:600px){.segt,.segt:nth-child(1),.segt:nth-child(2){grid-column:span 6;min-height:240px}}

/* versus */
.versus{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.vcol{border-radius:var(--r-lg);padding:30px;border:1px solid var(--line);background:#fff}
.vcol.win{background:var(--night);color:#fff;border-color:var(--night)}
.vcol h3{display:flex;align-items:center;gap:10px;margin-bottom:18px;font-size:1.25rem}
.vcol.win h3{color:#fff}
.vcol ul{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.vcol li{display:flex;gap:12px;align-items:flex-start;line-height:1.45;color:var(--ink-2);font-size:.97rem}
.vcol li b{display:block;color:inherit;font-weight:600}
.vcol.win li{color:#D6D7DE}.vcol.win li b{color:#fff}
.vcol li::before{content:"";flex:none;width:22px;height:22px;border-radius:50%;margin-top:1px;background:var(--paper-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2373747C' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E") center/11px no-repeat}
.vcol.win li::before{background:rgba(37,211,102,.18) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2325D366' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/12px no-repeat}
.vcol .badge{margin-bottom:12px}
@media(max-width:820px){.versus{grid-template-columns:1fr}}

/* split */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:center}
.split>*,.grid>*,.bento>*,.segs>*,.versus>*,.steps>*,.art-layout>*{min-width:0}
.split.rev>:first-child{order:2}
@media(max-width:900px){.split{grid-template-columns:minmax(0,1fr)}.split.rev>:first-child{order:0}}
.split-media{border-radius:var(--r-xl);overflow:hidden;background:#fff;border:1px solid var(--line);display:grid;place-items:center;padding:36px;position:relative}
.split-media img{max-height:440px;width:auto;object-fit:contain}
.checks{list-style:none;padding:0;margin:0 0 26px;display:grid;gap:12px}
.checks li{display:flex;gap:12px;align-items:flex-start;color:var(--ink-2)}
.checks li::before{content:"";flex:none;width:22px;height:22px;border-radius:50%;background:var(--red-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E2001A' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/12px no-repeat;margin-top:3px}
.on-dark .checks li{color:#D6D7DE}
.timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:26px 0}
.timeline div{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:14px}
.timeline b{display:block;font-family:var(--fh);font-size:1.4rem;color:var(--red);letter-spacing:-.03em}
.timeline span{font-size:.82rem;color:var(--ink-3)}
@media(max-width:600px){.timeline{grid-template-columns:repeat(2,1fr)}}

/* faq */
.faq{max-width:840px;margin-inline:auto}
.faq details{background:#fff;border:1px solid var(--line);border-radius:var(--r);margin-bottom:10px;overflow:hidden;transition:border-color .2s}
.faq details[open]{border-color:var(--ink)}
.faq summary{cursor:pointer;padding:20px 22px;font-weight:600;font-family:var(--fh);font-size:1.05rem;list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center;letter-spacing:-.01em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:28px;height:28px;border-radius:50%;background:var(--paper-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B0B0D' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center/14px no-repeat;transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .fa{padding:0 22px 22px;color:var(--ink-2)}

/* WhatsApp por tipo de obra */
.obras{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.obra{display:flex;align-items:center;gap:14px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:var(--r);padding:16px 18px;color:#fff;transition:.2s}
.obra:hover{background:var(--wa);border-color:var(--wa);transform:translateY(-2px)}
.obra .ic{flex:none;width:42px;height:42px;border-radius:12px;background:rgba(255,255,255,.1);display:grid;place-items:center}
.obra .ic svg{width:22px;height:22px}
.obra b{display:block;font-family:var(--fh);font-size:1rem;letter-spacing:-.01em}
.obra span{font-size:.82rem;color:#B9BAC3}
.obra:hover span{color:rgba(255,255,255,.85)}
.obra .go{margin-left:auto;width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.1);display:grid;place-items:center;flex:none}
.obra .go svg{width:16px;height:16px}
.split .obras{grid-template-columns:repeat(2,1fr)}
@media(max-width:900px){.obras,.split .obras{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.obras,.split .obras{grid-template-columns:1fr}}
.obra>span{min-width:0}.obra b,.obra span{overflow-wrap:anywhere}
.obras.light .obra{background:#fff;border-color:var(--line);color:var(--ink)}
.obras.light .obra span{color:var(--ink-3)}
.obras.light .obra .ic{background:var(--red-soft);color:var(--red)}
.obras.light .obra .go{background:var(--paper-2);color:var(--ink)}
.obras.light .obra:hover{background:var(--wa);border-color:var(--wa);color:#fff}
.obras.light .obra:hover .ic,.obras.light .obra:hover .go{background:rgba(255,255,255,.2);color:#fff}
.wa-card{background:#fff;color:var(--ink);border-radius:var(--r-xl);padding:clamp(26px,4vw,40px);box-shadow:var(--sh-lg);display:grid;gap:18px;align-content:start;border:1px solid var(--line)}
.wa-card .btn{width:100%}
.wa-card .num{font-family:var(--fh);font-size:clamp(1.6rem,3vw,2.2rem);font-weight:700;letter-spacing:-.03em}
.wa-card .row{display:flex;align-items:center;gap:14px}
.wa-card .row .ic{width:48px;height:48px;border-radius:14px;background:rgba(37,211,102,.14);color:var(--wa);display:grid;place-items:center;flex:none}
.wa-card .row .ic svg{width:26px;height:26px}
.wa-card .meta{font-size:.9rem;color:var(--ink-3)}
.wa-card .alt{border-top:1px solid var(--line);padding-top:16px;font-size:.92rem;color:var(--ink-2);display:grid;gap:6px}
.wa-card .alt a{font-weight:600}
.wa-card .alt a:hover{color:var(--red)}

/* contact list */
.contact-list{list-style:none;padding:0;margin:0;display:grid;gap:16px}
.contact-list li{display:flex;gap:14px;align-items:flex-start}
.contact-list .ic{flex:none;width:44px;height:44px;border-radius:12px;background:rgba(255,255,255,.08);display:grid;place-items:center}
.contact-list svg{width:20px;height:20px}
.contact-list b{display:block;font-family:var(--fh)}
.contact-list a:hover{text-decoration:underline}

/* blog cards */
.post-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column;transition:transform .22s,box-shadow .22s}
.post-card:hover{transform:translateY(-5px);box-shadow:var(--sh-lg)}
.post-card .im{aspect-ratio:16/10;overflow:hidden}
.post-card img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.post-card:hover img{transform:scale(1.04)}
.post-card .pb{padding:20px 22px 22px;display:flex;flex-direction:column;gap:8px;flex:1}
.post-card .pcat{font-size:.72rem;font-weight:700;color:var(--red);text-transform:uppercase;letter-spacing:.1em;font-family:var(--fh)}
.post-card h3{font-size:1.08rem;margin:0;line-height:1.3}
.post-card p{color:var(--ink-2);font-size:.92rem;margin:0;flex:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.post-card time{color:var(--ink-3);font-size:.8rem}
.post-feat{grid-column:1/-1;display:grid;grid-template-columns:1.2fr 1fr;background:var(--night);color:#fff;border-color:var(--night)}
.post-feat .im{aspect-ratio:auto;min-height:320px}
.post-feat .pb{padding:36px;justify-content:center}
.post-feat h3{font-size:clamp(1.4rem,2.4vw,2rem);color:#fff}
.post-feat p{color:#B9BAC3;-webkit-line-clamp:4;font-size:1rem}
.post-feat time{color:#9A9BA6}
@media(max-width:820px){.post-feat{grid-template-columns:1fr}.post-feat .im{min-height:220px}}

/* page hero interno */
.phero{padding:clamp(28px,5vw,64px) 0 clamp(36px,5vw,64px)}
.phero .lead{margin-bottom:0}
.phero h1{font-size:clamp(2rem,4.6vw,3.6rem);margin-bottom:16px;max-width:22ch}
.phero.dark{background:var(--night);color:#fff}
.phero.dark .lead{color:#B9BAC3}
.crumbs{font-size:.84rem;color:var(--ink-3);margin-bottom:22px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.crumbs a:hover{color:var(--ink)}
.crumbs span::before{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--line-2);margin:0 8px 3px 0}
.phero.dark .crumbs{color:#9A9BA6}.phero.dark .crumbs a:hover{color:#fff}
.badge{display:inline-flex;align-items:center;background:var(--red-soft);color:var(--red);font-weight:700;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;padding:6px 11px;border-radius:999px;font-family:var(--fh)}
.badge.neutral{background:#fff;color:var(--ink-3);border:1px solid var(--line)}

/* chips */
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:30px}
.chip{padding:10px 16px;border-radius:999px;border:1.5px solid var(--line-2);font-weight:600;font-size:.88rem;color:var(--ink-2);background:#fff;transition:.15s}
.chip:hover{border-color:var(--ink);color:var(--ink)}
.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}

/* product page */
.prod-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,4vw,56px);align-items:start}
@media(max-width:900px){.prod-hero{grid-template-columns:1fr}}
.prod-img{background:radial-gradient(circle at 50% 55%,#fff,var(--paper-2));border:1px solid var(--line);border-radius:var(--r-xl);display:grid;place-items:center;padding:48px;min-height:420px;position:sticky;top:96px}
.prod-img img{max-height:440px;width:auto;object-fit:contain;max-width:78%;filter:drop-shadow(0 30px 30px rgba(11,11,13,.18))}
@media(max-width:900px){.prod-img{position:static;min-height:300px}}
.spec-list{list-style:none;padding:0;margin:0 0 28px;display:grid;gap:8px}
.spec-list li{padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:12px;color:var(--ink-2);display:flex;gap:12px;font-size:.96rem}
.spec-list li::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--red);margin-top:8px}
.apps{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:30px}
.apps span{background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 14px;font-size:.86rem;font-weight:600}

/* article */
.art-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(28px,4vw,64px);align-items:start}
@media(max-width:1000px){.art-layout{grid-template-columns:1fr}}
.article{max-width:760px}
.article-hero{border-radius:var(--r-xl);overflow:hidden;margin:0 0 36px;border:1px solid var(--line)}
.article-hero img{width:100%;aspect-ratio:16/8;object-fit:cover}
.article-meta{display:flex;flex-wrap:wrap;gap:10px 18px;color:var(--ink-3);font-size:.88rem;margin-bottom:20px;align-items:center}
.article-meta .pcat{color:var(--red);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;font-family:var(--fh)}
.article-body{font-size:1.1rem;line-height:1.78;color:#1E1F24}
.article-body h2{font-size:1.75rem;margin:1.7em 0 .6em;scroll-margin-top:100px}
.article-body h3{font-size:1.3rem;margin:1.4em 0 .5em;scroll-margin-top:100px}
.article-body p{margin:0 0 1.25em}
.article-body ul,.article-body ol{padding-left:1.35em;margin:0 0 1.25em}
.article-body li{margin-bottom:.45em}
.article-body a{color:var(--red);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px}
.article-body img{border-radius:var(--r);margin:1.5em 0}
.article-body blockquote{border-left:3px solid var(--red);margin:1.5em 0;padding:6px 0 6px 22px;color:var(--ink-2);font-style:italic}
.article-body table{width:100%;border-collapse:collapse;font-size:.94rem;margin:1.5em 0;display:block;overflow-x:auto}
.article-body th,.article-body td{border:1px solid var(--line);padding:10px 12px;text-align:left}
.article-body th{background:var(--paper)}
.article-body figure{margin:1.5em 0}
.article-inline-cta{border:1px solid var(--line);background:#fff;border-radius:var(--r-lg);padding:22px 24px;margin:2em 0;font-size:1rem;display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.article-inline-cta .t{flex:1;min-width:220px}
.article-inline-cta b{font-family:var(--fh);display:block;margin-bottom:4px}
.share{display:flex;gap:8px;align-items:center;margin:30px 0;flex-wrap:wrap;color:var(--ink-3);font-size:.88rem}
.share a{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid var(--line-2);border-radius:999px;font-weight:600;color:var(--ink);font-size:.84rem;background:#fff}
.share a:hover{border-color:var(--ink)}
.share a svg{width:15px;height:15px}
.author-box{display:flex;gap:16px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:20px 22px;margin:32px 0}
.author-box .av{flex:none;width:56px;height:56px;border-radius:50%;background:var(--paper);display:grid;place-items:center;border:1px solid var(--line)}
.author-box .av img{width:38px}
.author-box b{display:block;font-family:var(--fh)}
.author-box span{color:var(--ink-3);font-size:.9rem}
.aside{position:sticky;top:96px;display:grid;gap:16px}
.aside .toc{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:20px 22px;font-size:.92rem}
.aside .toc b{display:block;margin-bottom:10px;font-family:var(--fh)}
.aside .toc ol{margin:0;padding-left:1.2em;display:grid;gap:6px}
.aside .toc a{color:var(--ink-2)}.aside .toc a:hover{color:var(--red)}
.aside .cta{background:var(--night);color:#fff;border-radius:var(--r-lg);padding:24px}
.aside .cta h3{color:#fff;font-size:1.2rem}
.aside .cta p{color:#B9BAC3;font-size:.92rem}
.aside .cta .btn{width:100%}
@media(max-width:1000px){.aside{position:static}.aside .toc{order:-1}}
.progress{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,var(--red),var(--ember));width:0;z-index:70}

/* cta band */
.cta-band{background:var(--night);color:#fff;border-radius:var(--r-xl);padding:clamp(32px,5vw,60px);display:grid;grid-template-columns:1.2fr .8fr;gap:28px;align-items:center;position:relative;overflow:hidden}
.cta-band::before{content:"";position:absolute;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(226,0,26,.4),transparent 65%);right:-160px;top:-200px;pointer-events:none}
.cta-band h2{margin-bottom:8px;color:#fff;position:relative}
.cta-band p{color:#B9BAC3;margin:0;position:relative}
.cta-band .acts{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end;position:relative}
@media(max-width:820px){.cta-band{grid-template-columns:1fr}.cta-band .acts{justify-content:flex-start}}

/* footer */
.footer{background:var(--night);color:#A9AAB4;padding:72px 0 28px;font-size:.94rem;border-top:1px solid rgba(255,255,255,.06)}
.footer .top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:36px;margin-bottom:44px}
@media(max-width:900px){.footer .top{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.footer .top{grid-template-columns:1fr}}
.footer h4{color:#fff;font-size:.78rem;text-transform:uppercase;letter-spacing:.14em;margin-bottom:18px;font-family:var(--fh)}
.footer ul{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.footer a:hover{color:#fff}
.footer .flogo{width:140px;margin-bottom:18px;background:#fff;padding:10px 14px;border-radius:12px}
.footer .social{display:flex;gap:10px;margin-top:18px}
.footer .social a{width:40px;height:40px;border-radius:12px;background:rgba(255,255,255,.07);display:grid;place-items:center;transition:.2s}
.footer .social a:hover{background:var(--red)}
.footer .social svg{width:18px;height:18px;color:#fff}
.footer .bottom{border-top:1px solid rgba(255,255,255,.08);padding-top:22px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:.84rem;color:#7C7D88}

/* floating whatsapp + mobile bar */
.wa-float{position:fixed;right:22px;bottom:22px;z-index:65;height:58px;padding:0 20px 0 14px;border-radius:999px;background:var(--wa);color:#fff;display:flex;align-items:center;gap:10px;box-shadow:0 16px 36px -10px rgba(37,211,102,.7);transition:transform .2s;font-family:var(--fh);font-weight:700}
.wa-float:hover{transform:translateY(-2px)}
.wa-float svg{width:28px;height:28px}
.mbar{display:none}
@media(max-width:720px){
  .wa-float{display:none}
  .mbar{display:flex;position:fixed;left:12px;right:12px;bottom:12px;z-index:65}
  .mbar .btn{flex:1;padding:16px;font-size:1rem;box-shadow:0 16px 36px -10px rgba(37,211,102,.8)}
  body{padding-bottom:84px}
}

/* utilities */
.reveal{opacity:1}
.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .6s,transform .6s}
.js .reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none}}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.pag{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:40px}
.pag a,.pag span{min-width:44px;height:44px;display:grid;place-items:center;border:1.5px solid var(--line-2);border-radius:12px;font-weight:600;padding:0 12px;background:#fff}
.pag .on{background:var(--ink);color:#fff;border-color:var(--ink)}
.compare-wrap{overflow-x:auto}
