:root{--bg:#ffffff;--s1:#f6f5f2;--s2:#ffffff;--tx:#2b2b2b;--mu:#66645f;--ink:#2b2b2b;--gold:#fcd53b;--or:#f58220;--g:linear-gradient(120deg,#fcd53b,#f58220);--r:18px}
*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--tx);font:16px/1.65 'DM Sans',system-ui,sans-serif}
h1,h2,h3,h4{font-family:'Bricolage Grotesque',sans-serif;line-height:1.1;letter-spacing:-.02em}
img{max-width:100%;display:block}a{color:inherit;text-decoration:none}
.wrap{width:min(1180px,92%);margin:auto}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.btn{display:inline-block;background:var(--g);color:#1b1b1b;font-weight:700;padding:.85em 1.6em;border-radius:99px;transition:transform .2s,box-shadow .2s}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 30px #f5822040}.btn.sm{padding:.55em 1.2em}
.btn.ghost{background:none;color:var(--tx);border:1.5px solid #2b2b2b40}
.nav{position:sticky;top:0;z-index:50;background:#ffffffee;backdrop-filter:blur(10px);border-bottom:1px solid #00000014}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:84px}
.brand img{height:64px;width:auto}
nav{display:flex;align-items:center;gap:1.7rem}nav>a,.dd>a{color:var(--mu);font-weight:500;transition:color .2s}
nav>a:hover,.dd>a:hover,nav .on{color:var(--or)}nav .btn{color:#1b1b1b}
.dd{position:relative}.dd-menu{position:absolute;top:100%;left:-1rem;min-width:260px;background:#fff;border:1px solid #0000001a;box-shadow:0 18px 40px #0000001f;border-radius:14px;padding:.5rem;display:none}
.dd:hover .dd-menu,.dd:focus-within .dd-menu{display:block}.dd-menu a{display:block;padding:.6rem .9rem;border-radius:8px;color:var(--tx)}.dd-menu a:hover{background:var(--s1);color:var(--or)}
.burger{display:none;background:none;border:0;width:40px;height:40px;cursor:pointer}.burger span{display:block;height:2px;background:var(--tx);margin:8px 6px}
.hero{position:relative;overflow:hidden;padding:5rem 0 6rem;background:radial-gradient(circle at 85% 25%,#fcd53b38,transparent 50%),radial-gradient(circle at 5% 95%,#f5822022,transparent 45%)}
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center}
.hero h1{font-size:clamp(2.6rem,6vw,5rem);font-weight:800}.hero h1 em{font-style:normal;background:linear-gradient(120deg,#f5a800,#f58220);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p.lead{font-size:1.15rem;color:var(--mu);max-width:34em;margin:1.4rem 0 2rem}.hero .row{display:flex;gap:1rem;flex-wrap:wrap}
.range{position:relative;aspect-ratio:1;display:grid;place-items:center}
.range i{position:absolute;border-radius:50%;border:1.5px solid #f5822066;inset:calc(var(--n)*9%);animation:ping 5s ease-out infinite;animation-delay:calc(var(--n)*-1s)}
@keyframes ping{0%{transform:scale(.55);opacity:0}30%{opacity:1}100%{transform:scale(1.05);opacity:0}}
.range .core{position:relative;width:62%;aspect-ratio:1;border-radius:50%;overflow:hidden;border:3px solid var(--gold);background:var(--s2) center/cover}
.range .core img{width:100%;height:100%;object-fit:cover}
.chip{position:absolute;background:#fff;box-shadow:0 8px 24px #0000001a;border:1px solid #0000000f;border-radius:99px;padding:.45em 1em;font-weight:700;font-size:.9rem}
.chip b{color:var(--or)}
.band{background:var(--g);color:#1b1b1b}.band .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;padding:2.2rem 0;text-align:center}
.band strong{display:block;font:800 clamp(2rem,4vw,3rem)/1 'Bricolage Grotesque'}
.sec{padding:5.5rem 0}.sec.alt{background:var(--s1)}.c{text-align:center}
.sec h2{font-size:clamp(1.9rem,4vw,3rem);margin-bottom:1rem}.sub{color:var(--mu);max-width:40em;margin:0 auto 3rem;text-align:center}
.tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem}.tiles.small{grid-template-columns:repeat(4,1fr);margin-top:2rem}
.tile{color:#fff;position:relative;min-height:300px;border-radius:var(--r);background:linear-gradient(135deg,#2a2a2a,#3b2a18);overflow:hidden;display:flex;align-items:flex-end;padding:1.6rem;isolation:isolate}
.tile::before{content:"";position:absolute;inset:0;background:var(--bg) center/cover;z-index:-2;transition:transform .5s}
.tile::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#000d,#0003 70%);z-index:-1}
.tile:hover::before{transform:scale(1.07)}.tile span{font:700 1.5rem 'Bricolage Grotesque';max-width:12em}
.tile p{color:#eee;font-size:.95rem;margin-top:.4rem}.tile.big{min-height:360px}.tiles.small .tile{min-height:190px}.tiles.small .tile span{font-size:1.15rem}
.cyber{display:grid;grid-template-columns:1fr 1fr;border-radius:var(--r);overflow:hidden;background:var(--ink);color:#fff}
.cyber img{width:100%;height:100%;min-height:320px;object-fit:cover}.cyber div{padding:3rem}.cyber p{color:#d6d4cf;margin:1rem 0 1.6rem}
.why{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}.why div{padding:1.8rem;border-radius:var(--r);background:var(--s2);border-top:3px solid var(--or)}
.why h3{font-size:1.25rem;margin-bottom:.5rem}.why p{color:var(--mu)}
.steps{counter-reset:s;display:grid;gap:1.2rem;max-width:820px;margin:auto}
.step{display:grid;grid-template-columns:80px 1fr;gap:1.2rem;padding:1.5rem;border-left:4px solid var(--or);background:var(--s1);border-radius:0 var(--r) var(--r) 0}
.step::before{counter-increment:s;content:"0" counter(s);font:800 3rem/1 'Bricolage Grotesque';color:#00000018}
.step h3{font-size:1.4rem;margin-bottom:.3rem}.step p{color:var(--mu)}
.mini{display:flex;gap:.8rem;flex-wrap:wrap;justify-content:center}.mini span{padding:.6em 1.2em;border:1px solid #0000002a;border-radius:99px}.mini span:first-child{border-color:var(--or)}
.phead{color:#fff;position:relative;padding:5.5rem 0 4.5rem;isolation:isolate;background:#222}.phead::before{content:"";position:absolute;inset:0;background:var(--bg) center/cover;z-index:-2}
.phead::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#1b1b1bf0 25%,#1b1b1b99);z-index:-1}
.phead h1{font-size:clamp(2.2rem,5vw,4rem);font-weight:800}.crumb{color:#ddd;margin-bottom:1rem}.crumb a:hover{color:var(--gold)}.phead .lead{font-size:1.15rem;color:#eee;max-width:36em;margin-top:1rem}
.svc{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;align-items:center;margin-bottom:5rem}.svc.flip .svc-img{order:2}
.svc-img{border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;background:linear-gradient(135deg,var(--ac),#2a2a2a);box-shadow:18px 18px 0 -2px var(--ac)}.svc-img img{width:100%;height:100%;object-fit:cover}
.svc-txt h2{font-size:clamp(1.8rem,3.5vw,2.6rem)}.svc-txt p{color:var(--mu);margin-bottom:1.2rem}.svc-txt h3{font-size:1.05rem;margin-bottom:.6rem;color:var(--tx)}
.ticks{list-style:none;padding:0;margin:0 0 1.8rem;display:grid;gap:.5rem}.ticks li{padding-left:1.8rem;position:relative}.ticks li::before{content:"";position:absolute;left:0;top:.5em;width:.9rem;height:.5rem;border-left:3px solid var(--ac,var(--or));border-bottom:3px solid var(--ac,var(--or));transform:rotate(-45deg)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;align-items:center}.two img{border-radius:var(--r);width:100%;aspect-ratio:4/3;object-fit:cover}.two p{color:var(--mu);margin-bottom:1rem}
.mv{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}.mv div{padding:2rem;background:var(--s2);border-radius:var(--r)}.mv h3{color:var(--or);margin-bottom:.5rem}
.prod{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.pcard{background:#fff;border:1px solid #0000001a;box-shadow:0 14px 36px #00000012;border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column}
.pcard img{height:240px;width:100%;object-fit:cover}.pcard div{padding:2rem;display:flex;flex-direction:column;gap:1rem;flex:1}.pcard h2{font-size:2rem;margin:0}.pcard p{color:var(--mu);flex:1}.pcard .btn{align-self:flex-start}
.cgrid{display:grid;grid-template-columns:.8fr 1.2fr;gap:3rem}.info p{margin-bottom:1.2rem;color:var(--mu)}.info b{display:block;color:var(--tx)}
form{display:grid;gap:1rem;background:var(--s1);border:1px solid #0000000f;padding:2rem;border-radius:var(--r)}label{display:grid;gap:.35rem;font-weight:500}
input,select,textarea{font:inherit;background:var(--bg);color:var(--tx);border:1px solid #0000002e;border-radius:10px;padding:.8em 1em}textarea{min-height:130px}
.hp{position:absolute;left:-9999px}.msg{padding:1rem;border-radius:10px;margin-bottom:1rem}.msg.ok{background:#1d3b25}.msg.err{background:#4a2020}
.map{border:0;width:100%;height:320px;border-radius:var(--r);margin-top:1rem}
.cta{text-align:center;padding:5rem 0;background:radial-gradient(circle at 50% 130%,#f5822040,transparent 60%),var(--s1)}.cta h2{font-size:clamp(2rem,4.5vw,3.4rem);margin-bottom:1.5rem}
.foot{background:var(--s1);border-top:3px solid var(--or);padding-top:4rem}.fgrid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.3fr;gap:2.5rem}.flogo{height:84px;margin-bottom:1rem}
.foot h4{margin-bottom:.8rem;color:var(--or)}.foot a,.foot p{display:block;color:var(--mu);margin-bottom:.5rem}.foot a:hover{color:var(--or)}
.copy{border-top:1px solid #0000001a;margin-top:3rem;padding:1.4rem 0;color:var(--mu);font-size:.9rem}.copy a{display:inline;color:var(--or)}
.rv{opacity:0;transform:translateY(18px);transition:.7s}.rv.in{opacity:1;transform:none}
@media(max-width:900px){.burger{display:block}nav{position:absolute;top:84px;left:0;right:0;background:var(--s1);flex-direction:column;align-items:flex-start;padding:1.2rem 4%;display:none}nav.open{display:flex}
.dd-menu{position:static;display:block;border:0;padding-left:1rem;background:none}
.hero .wrap,.two,.svc,.cyber,.prod,.cgrid,.mv{grid-template-columns:1fr}.svc.flip .svc-img{order:0}.range{max-width:420px;margin:auto}
.tiles,.why,.fgrid{grid-template-columns:1fr}.tiles.small{grid-template-columns:1fr 1fr}.band .wrap{grid-template-columns:1fr 1fr}.step{grid-template-columns:56px 1fr}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}}
.why.two{grid-template-columns:repeat(2,1fr)}.pcard .ticks{margin:0 0 .5rem;color:var(--tx)}a.pcard{color:var(--tx);transition:transform .25s,box-shadow .25s}a.pcard:hover{transform:translateY(-4px);box-shadow:0 20px 44px #0000001f}
@media(max-width:900px){.why.two{grid-template-columns:1fr}.tiles.small[style]{grid-template-columns:1fr 1fr!important}}
.dd-menu{max-height:75vh;overflow:auto}.dd-menu .ddh{font-weight:700;color:var(--or)}.dd-menu .sb{padding-left:1.6rem;font-size:.92rem}
.prod.three{grid-template-columns:repeat(3,1fr)}.prod.three .pcard img{height:200px}.prod.three .pcard h2{font-size:1.4rem}
.logos{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.logo-box{width:190px;height:96px;display:grid;place-items:center;padding:1rem;background:#fff;border:1px solid #0000001a;border-radius:14px}
.logo-box img{max-height:60px;width:auto;filter:grayscale(1);opacity:.8;transition:.25s}.logo-box:hover img{filter:none;opacity:1}
.logo-box.ph{border:2px dashed #00000030;background:none;color:#8a8883;font-weight:500}
.prose{max-width:820px;margin:auto;text-align:center}.prose p{color:var(--mu);margin-bottom:1rem}.prose h2{margin-bottom:1.2rem}
.grp{font-size:1.5rem;margin:3rem 0 1.2rem}.why h3 a:hover{color:var(--or)}.mv ul{margin-top:1rem}.mv p{color:var(--mu)}
.tag{font:800 clamp(1.8rem,4vw,2.8rem)/1.1 'Bricolage Grotesque';background:linear-gradient(120deg,#f5a800,#f58220);-webkit-background-clip:text;background-clip:text;color:transparent;margin:1.2rem 0 1.8rem}
@media(max-width:900px){.prod.three{grid-template-columns:1fr}}
.step{align-items:start}.step>div{min-width:0}
