/* ===== v3: images, right rail, more sections ===== */
.mbar,.fab{display:none!important}
.progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--red);z-index:100}
.eyebrow{color:var(--red);font-weight:600;font-size:13px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:14px;opacity:0;animation:wordup .6s forwards}
.btn svg{width:18px;height:18px;fill:currentColor}
/* right side call + whatsapp rail */
.rail{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:60;display:flex;flex-direction:column;gap:8px}
.rail a{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:600;font-size:14px;padding:13px 14px;border-radius:30px 0 0 30px;box-shadow:0 6px 18px rgba(0,0,0,.18);transform:translateX(calc(100% - 52px));transition:transform .35s cubic-bezier(.2,.8,.2,1);white-space:nowrap;animation:railin .7s 1.2s both}
.rail a:hover,.rail a:focus{transform:none}
.rail a svg{width:24px;height:24px;fill:#fff;flex:none}
.rail .r-call{background:var(--red)}
.rail .r-wa{background:var(--wa);animation:railin .7s 1.35s both,pulse 2.4s 2s infinite}
.rail .r-call svg{animation:ring 2.8s 2s infinite}
@keyframes railin{from{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(calc(100% - 52px))}}
@keyframes ring{0%,8%,16%{transform:rotate(0)}4%,12%{transform:rotate(-14deg)}6%,14%{transform:rotate(14deg)}}
.totop{position:fixed;right:14px;bottom:16px;z-index:55;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--red);font-size:18px;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;transform:translateY(10px)}
.totop.show{opacity:1;pointer-events:auto;transform:none}
/* hero with image */
.hero .wrap{grid-template-columns:1.05fr 1fr}
.heroimg{position:relative;animation:cardin 1s .3s cubic-bezier(.2,.8,.2,1) both}
.heroimg img{width:100%;aspect-ratio:4/4.3;object-fit:cover;border-radius:6px 120px 6px 6px}
.chip{position:absolute;background:#fff;border-radius:6px;padding:12px 16px;font-size:14px;box-shadow:0 14px 34px rgba(40,0,0,.14);display:flex;align-items:center;gap:8px;animation:float 6s ease-in-out infinite}
.chip b{font-family:"Fraunces",serif;font-size:20px;color:var(--red)}
.chip .i{width:20px;height:20px;fill:none;stroke:var(--red);stroke-width:1.8}
.chip.c1{left:-26px;top:16%}.chip.c2{right:-14px;bottom:12%;animation-delay:-3s}
.road{margin-top:40px}
/* quote bar */
.qbar{padding:48px 0 0}
.qbar .card{display:grid;grid-template-columns:240px 1fr;gap:28px;align-items:center;box-shadow:0 20px 50px rgba(60,0,0,.07)}
.qbar form{display:grid;grid-template-columns:repeat(5,1fr) auto;gap:10px;align-items:end}
.qbar form .row2{display:contents}
.qbar form label{margin-top:0}
.qbar form .btn{margin:0;width:auto;height:46px}
.qbar .note{display:none}
/* image service cards */
.svc{padding:0;text-decoration:none;color:inherit;display:block;border-top:none}
.svc .sim{overflow:hidden;aspect-ratio:16/10}
.svc .sim img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.svc:hover .sim img{transform:scale(1.08)}
.svc .sbody{padding:24px;border-top:3px solid var(--red);position:relative}
.svc .ico{position:absolute;top:-28px;right:20px;width:54px;height:54px;background:#fff;border-radius:50%;display:grid;place-items:center;box-shadow:0 6px 16px rgba(0,0,0,.1);margin:0}
.svc .ico .i{width:26px;height:26px;fill:none;stroke:var(--red);stroke-width:1.6}
.svc:hover .ico .i{stroke:var(--red)}
.svc .n{font-family:"Inter",sans-serif;font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:600}
.svc .ask{color:var(--red);font-weight:600;font-size:14px;display:inline-block;transition:transform .3s}
.svc:hover .ask{transform:translateX(6px)}
/* stats */
.stats{background:var(--ink);color:#fff;padding:54px 0}
.stats .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;text-align:center}
.stats b{display:block;font-family:"Fraunces",serif;font-size:46px;color:#fff;line-height:1.1}
.stats .wrap>div{color:#bbb;font-size:14px;border-right:1px solid #333}.stats .wrap>div:last-child{border:0}
/* why / images */
.split.rev>:first-child{order:2}
.imgstack{position:relative;padding:0 60px 60px 0}
.imgstack img{border-radius:6px;width:100%;aspect-ratio:4/3.4;object-fit:cover}
.imgstack img.sm{position:absolute;right:0;bottom:0;width:48%;aspect-ratio:1;border:6px solid #fff;box-shadow:0 14px 34px rgba(0,0,0,.14)}
.imgstack .badge{position:absolute;left:20px;bottom:30px;background:var(--red);color:#fff;padding:16px 20px;border-radius:6px;font-size:13px}
.imgstack .badge b{display:block;font-family:"Fraunces",serif;font-size:30px}
.imgone{overflow:hidden;border-radius:6px}
.imgone img{width:100%;aspect-ratio:5/4;object-fit:cover;transition:transform 1s}
.imgone:hover img{transform:scale(1.05)}
.feat{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.feat .i,.vals .i{width:38px;height:38px;fill:none;stroke:var(--red);stroke-width:1.5;margin-bottom:10px}
.feat h3{font-size:19px;margin-bottom:4px}.feat p{color:var(--mute);font-size:15px}
.vals .card{transition:transform .3s,box-shadow .3s}.vals .card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(60,0,0,.1)}
.vals p{color:var(--mute)}
ul.tick li b{color:var(--ink)}
.gnote{margin-top:26px;color:var(--mute)}.gnote a{color:var(--red);font-weight:600;text-decoration:none}
.band p{opacity:.85;margin-top:6px}
.bandbtns{display:flex;gap:12px;flex-wrap:wrap}
.band .btn.ghost{background:transparent;color:#fff;border-color:#fff}
/* page head with photo */
.pagehead.withimg{background:linear-gradient(90deg,rgba(25,5,5,.82),rgba(25,5,5,.35)),var(--bg) center/cover;color:#fff;padding:110px 0 80px;border:0}
.pagehead.withimg p,.pagehead.withimg .crumb{color:#eee}.pagehead.withimg .crumb a{color:#fff}
.pagehead.withimg:after{display:none}
/* services detail */
.sdetail{display:grid;grid-template-columns:1fr 1.1fr;gap:56px;align-items:center;padding:44px 0;border-bottom:1px solid var(--line);scroll-margin-top:90px}
.sdetail.rev .simg{order:2}
.simg{position:relative;overflow:hidden;border-radius:6px}
.simg img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform 1s}
.simg:hover img{transform:scale(1.06)}
.simg .num{position:absolute;left:16px;top:12px;font-family:"Fraunces",serif;font-size:56px;color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.4)}
.sdetail .tag{color:var(--red);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}
.sdetail h2{font-size:34px;margin:4px 0 12px}
.lead2{color:#444;margin-bottom:14px}
.sdetail .cta{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}
/* gallery */
.masonry{columns:3;column-gap:16px}
.masonry figure{break-inside:avoid;margin-bottom:16px;position:relative;overflow:hidden;border-radius:6px;cursor:zoom-in}
.masonry img{width:100%;transition:transform .8s}
.masonry figure:nth-child(3n+1) img{aspect-ratio:3/4;object-fit:cover}
.masonry figure:hover img{transform:scale(1.06)}
.masonry figcaption{position:absolute;left:0;right:0;bottom:0;padding:30px 16px 14px;color:#fff;font-size:14px;background:linear-gradient(transparent,rgba(0,0,0,.7));transform:translateY(100%);transition:transform .4s}
.masonry figure:hover figcaption{transform:none}
.lightbox{position:fixed;inset:0;background:rgba(10,0,0,.9);z-index:200;display:grid;place-items:center;padding:30px;animation:pagein .3s}
.lightbox[hidden]{display:none}
.lightbox img{max-height:80vh;max-width:100%;border-radius:4px}
.lightbox p{color:#fff;text-align:center;margin-top:10px}
.lightbox button{position:absolute;top:16px;right:22px;background:none;border:0;color:#fff;font-size:40px;cursor:pointer}
/* areas */
.areagrp{margin-bottom:40px}.areagrp h2{font-size:28px;margin-bottom:16px}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chips a{padding:10px 18px;border:1px solid var(--line);border-radius:30px;text-decoration:none;font-weight:500;transition:all .25s}
.chips a:hover{background:var(--red);color:#fff;border-color:var(--red);transform:translateY(-3px)}
/* contact tiles */
.ctiles{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:10px}
.ct{border:1px solid var(--line);border-radius:6px;padding:18px;text-decoration:none;transition:all .25s}
.ct svg{width:26px;height:26px;fill:var(--red);display:block;margin-bottom:10px}
.ct span{display:block;font-size:12px;color:var(--mute);text-transform:uppercase;letter-spacing:.06em}
.ct b{font-size:15px}
.ct.wa svg{fill:var(--wa)}
.ct:hover{border-color:var(--red);transform:translateY(-4px);box-shadow:0 12px 28px rgba(60,0,0,.08)}
.logo.light{color:#fff}.logo.light small{color:#999}
footer .wrap{grid-template-columns:1.5fr 1fr 1fr 1fr}
footer{padding-bottom:40px}
@media(max-width:1000px){.qbar .card{grid-template-columns:1fr}.qbar form{grid-template-columns:1fr 1fr}.qbar form .btn{grid-column:1/-1;width:100%}}
@media(max-width:900px){
 .sdetail{grid-template-columns:1fr;gap:24px}.sdetail.rev .simg{order:0}.split.rev>:first-child{order:0}
 .stats .wrap{grid-template-columns:1fr 1fr;row-gap:30px}.stats .wrap>div:nth-child(2){border:0}
 .masonry{columns:2}.ctiles{grid-template-columns:1fr}
 footer .wrap{grid-template-columns:1fr 1fr}
 .chip.c1{left:8px}.chip.c2{right:8px}
 .rail a{padding:11px 12px}.rail a svg{width:22px;height:22px}
}
@media(max-width:520px){.feat,.qbar form{grid-template-columns:1fr}.masonry{columns:1}footer .wrap{grid-template-columns:1fr}.imgstack{padding:0 30px 40px 0}}
/* phosphor duotone icons */
svg.i{fill:currentColor!important;stroke:none!important;color:var(--red)}
.svc .ico{width:60px;height:60px;top:-30px;border-radius:16px;transition:transform .4s cubic-bezier(.3,1.6,.5,1),background .3s}
.svc .ico .i{width:32px;height:32px}
.svc:hover .ico{transform:rotate(-8deg) scale(1.08)}
.svc:hover .ico .i{color:var(--red)!important}
.feat>div>.i,.vals .i{width:52px;height:52px;padding:11px;background:#f7eceb;border-radius:14px;transition:transform .4s cubic-bezier(.3,1.6,.5,1),background .3s,color .3s}
.feat>div:hover>.i,.vals .card:hover .i{transform:translateY(-4px) rotate(-6deg);background:var(--red);color:#fff}
.chip .i{width:22px;height:22px}
.chip.c1 .i{color:#e0a100}
