/* ============================================================
   SOLARIS ENERGY — pixel-accurate replica
   All values extracted from live computed styles (1px fidelity).
   Container: max-width 1310 / padding 0 30 -> inner 1250. Section pad 80.
   ============================================================ */

:root{
  --lime:#E2FA5A;            /* rgb(226,250,90) accent */
  --ink:#111111;            /* rgb(17,17,17) text */
  --ink-70:rgba(17,17,17,.7);
  --ink-40:rgba(17,17,17,.4);
  --gray:#F2F2F2;           /* rgb(242,242,242) panel bg */
  --white:#fff;
  --social-bg:#F8F9FA;      /* rgb(248,249,250) */
  --contact-bg:#F6F3F2;     /* rgb(246,243,242) */
  --shadow-card:0 3px 6px 0 rgba(0,0,0,.06);
  --f-head:'Host Grotesk','Pretendard',sans-serif;
  --f-body:'Instrument Sans','Pretendard',sans-serif;
  --f-ui:'Geist','Pretendard',sans-serif;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{ -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
body{
  font-family:var(--f-body);
  background:var(--white);
  color:var(--ink);
  overflow-x:hidden;
}
/* natural Korean line-breaking: keep words intact + balance lines (no orphans) */
:where(h1,h2,h3,h4,p,.h1,.h2,.h3,.h4,.body,.quote,.tagline){word-break:keep-all;}
:where(p,.body,.hero-desc,.reel-desc,.tagline,.quote){text-wrap:balance;}
img{display:block;max-width:100%;}
a{text-decoration:none;color:inherit;}
button{font-family:inherit;border:none;background:none;cursor:pointer;}
ul{list-style:none;}

/* ---------- shared layout ---------- */
.container{width:100%;max-width:1310px;margin:0 auto;padding:0 30px;}
.section{padding:80px 0;position:relative;}

/* ---------- typography ---------- */
/* Korean hierarchy via weight: bold titles vs regular body for clear 강약 */
h1,.h1{font:700 64px/70.4px var(--f-head);letter-spacing:-1.6px;color:var(--ink);}
.h2{font:600 40px/48px var(--f-head);letter-spacing:-1.6px;color:var(--ink);text-wrap:balance;}
.h3{font:600 26px/36.4px var(--f-head);letter-spacing:-.52px;color:var(--ink);text-wrap:nowrap;}
.h4{font:600 20px/28px var(--f-head);letter-spacing:-.4px;color:var(--ink);text-wrap:nowrap;}
.body{font:400 16px/22.4px var(--f-body);letter-spacing:-.16px;color:var(--ink-70);}

/* eyebrow badge "/ Label" */
.eyebrow{display:inline-flex;align-items:center;gap:4px;font:500 14px/16.8px var(--f-ui);letter-spacing:-.28px;color:var(--ink-70);}
.eyebrow .slash{color:var(--ink-70);}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  background:var(--ink);border-radius:12px;padding:6px 6px 6px 10px;
  width:max-content;
}
.btn .label{font:600 16px/25.6px var(--f-ui);letter-spacing:-.16px;color:var(--white);}
.btn .arrow{
  width:30px;height:30px;border-radius:8px;background:var(--lime);
  display:flex;align-items:center;justify-content:center;flex:0 0 30px;
  overflow:hidden;
}
.btn .arrow svg{width:20px;height:20px;display:block;transition:transform .35s ease;}
.btn:hover .arrow svg{transform:translateX(2px);}

/* lime icon box helper */
.icon-box{background:var(--lime);display:flex;align-items:center;justify-content:center;}

/* ============================================================
   NAVBAR  (fixed, full-width white, 66px)
   ============================================================ */
.nav{position:fixed;top:0;left:0;right:0;height:66px;background:var(--white);z-index:100;display:flex;justify-content:center;align-items:center;}
.nav-inner{width:100%;max-width:1310px;height:66px;padding:12px 30px;display:flex;justify-content:space-between;align-items:center;}
.logo{display:flex;align-items:center;gap:10px;}
.logo .bolt{width:40px;height:40px;border-radius:10px;background:var(--lime);display:flex;align-items:center;justify-content:center;}
.logo .bolt svg{width:20px;height:20px;}
.logo .wordmark{height:24px;width:auto;display:block;}
.nav-links{display:flex;align-items:center;gap:24px;}
.nav-links a{font:500 16px/25.6px var(--f-ui);letter-spacing:-.16px;color:var(--ink-70);transition:color .2s;}
.nav-links a:hover{color:var(--ink);}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative;height:1062px;display:flex;flex-direction:column;align-items:center;overflow:hidden;}
.hero-sky{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;z-index:0;}
.hero-house{position:absolute;left:0;bottom:0;width:100%;height:auto;z-index:1;}
.hero-content{position:relative;z-index:2;padding-top:160px;display:flex;flex-direction:column;align-items:center;width:100%;}
.hero-main{display:flex;flex-direction:column;align-items:center;gap:32px;max-width:700px;text-align:center;}
.hero-text{display:flex;flex-direction:column;align-items:center;gap:16px;}
.hero-text h1{text-align:center;}
.hero-desc{font:400 16px/22.4px var(--f-body);letter-spacing:-.16px;color:var(--ink);max-width:500px;text-align:center;}

/* trusted pill */
.trust-pill{display:inline-flex;align-items:center;gap:8px;background:var(--ink);border-radius:70px;padding:3px 14px 3px 3px;}
.trust-pill .badge{background:var(--lime);border-radius:30px;padding:2px 9px;font:500 14px/16.8px var(--f-ui);letter-spacing:-.28px;color:var(--ink);}
.trust-pill .txt{font:500 14px/16.8px var(--f-ui);letter-spacing:-.28px;color:var(--white);}

/* noise grain overlay */
.noise{position:absolute;inset:-28px 0 0 0;height:calc(100% + 28px);background-image:url('assets/rR6HYXBrMmX4cRpXfXUOvpvpB0.png');background-size:200px;opacity:.04;z-index:10;pointer-events:none;}

/* ============================================================
   SECTION HEADER (badge + h2 + desc), centered variant
   ============================================================ */
.sec-head{display:flex;flex-direction:column;align-items:center;gap:16px;max-width:600px;margin:0 auto;text-align:center;}
.sec-head .h2{text-align:center;}
.sec-head .body{text-align:center;}

/* ============================================================
   ABOUT
   ============================================================ */
.about .container{display:flex;flex-direction:column;align-items:center;gap:60px;}
.about-overview{display:flex;justify-content:center;gap:80px;width:100%;}
.about-text{display:flex;flex-direction:column;justify-content:center;gap:32px;width:585px;flex:0 0 585px;}
.about-top{display:flex;flex-direction:column;gap:16px;}
.about-text .h2{font-size:40px;line-height:48px;}
.about-reel{position:relative;width:585px;flex:0 0 585px;height:489.3px;border-radius:20px;overflow:hidden;}
.reel-slide{position:absolute;inset:0;opacity:0;transition:opacity .8s ease;pointer-events:none;}
.reel-slide.active{opacity:1;pointer-events:auto;}
.reel-slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.07);transition:transform 6s ease;}
.reel-slide.active img{transform:scale(1);}
.about-reel .reel-grad{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.6),rgba(0,0,0,0));}
.about-reel .reel-bars{position:absolute;top:16px;left:16px;right:16px;display:flex;gap:4px;z-index:8;}
.about-reel .reel-bars span{flex:1;height:4px;border-radius:2px;background:rgba(255,255,255,.3);overflow:hidden;}
.about-reel .reel-bars span i{display:block;height:100%;width:0;background:#fff;border-radius:2px;}
.about-reel .reel-bars span.done i{width:100%;}
.about-reel .reel-bars span.active i{animation:reelfill 2s linear forwards;}
@keyframes reelfill{from{width:0}to{width:100%}}
.about-reel .reel-next{position:absolute;right:16px;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;background:rgba(0,0,0,.35);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:8;transition:background .2s ease,transform .2s ease;}
.about-reel .reel-next:hover{background:rgba(0,0,0,.55);transform:translateY(-50%) scale(1.08);}
.about-reel .reel-caption{position:absolute;left:0;right:0;bottom:0;padding:24px;z-index:6;display:flex;flex-direction:column;gap:16px;}
.about-reel .reel-cap-top{display:flex;flex-direction:column;gap:8px;}
.about-reel .reel-date{font:500 14px/14px 'Inter','Pretendard',sans-serif;letter-spacing:-.14px;color:#cccccc;}
.about-reel .reel-title{font:700 32px/32px var(--f-head);letter-spacing:-.64px;color:#fff;}
.about-reel .reel-desc{font:400 16px/22px 'Inter','Pretendard',sans-serif;letter-spacing:-.16px;color:#fff;}
.about-reel .reel-mute{position:absolute;top:16px;right:16px;width:32px;height:32px;border-radius:50%;background:rgba(0,0,0,.3);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;opacity:.7;z-index:8;}

/* stat / feature cards strip */
.stat-strip{width:100%;background:var(--gray);border-radius:24px;padding:10px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.stat-card{background:var(--white);border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:16px;}
.stat-card .top{display:flex;align-items:center;gap:10px;}
.stat-card .ico{width:54px;height:54px;border-radius:12px;background:var(--gray);display:flex;align-items:center;justify-content:center;flex:0 0 54px;}
.stat-card .ico svg{width:30px;height:30px;}
.stat-card .tc{display:flex;flex-direction:column;gap:4px;}
.stat-card .num{font:700 32px/38.4px var(--f-ui);letter-spacing:-.64px;color:var(--ink);}
.stat-card .lab{font:400 16px/22.4px var(--f-body);letter-spacing:-.16px;color:var(--ink-70);}
.stat-card .desc{font:400 16px/22.4px var(--f-body);letter-spacing:-.16px;color:var(--ink-70);}

/* ============================================================
   SOLAR SOLUTIONS — 6 cards grid
   ============================================================ */
.solutions .container{display:flex;flex-direction:column;align-items:center;gap:60px;}
.cards-grid{width:100%;background:var(--gray);border-radius:24px;padding:10px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.svc-card{background:var(--white);border-radius:12px;box-shadow:var(--shadow-card);padding:20px;display:flex;flex-direction:column;gap:40px;}
.svc-card .ico{width:40px;height:40px;border-radius:10px;background:var(--lime);display:flex;align-items:center;justify-content:center;padding:6px;flex:0 0 40px;}
.svc-card .ico svg{width:28px;height:28px;}
.svc-card .text{display:flex;flex-direction:column;gap:10px;}
.svc-card .text .h3{}
.svc-card .text p{font:400 16px/22.4px var(--f-body);letter-spacing:-.16px;color:var(--ink-70);}
.svc-card .illus{margin-top:auto;height:174.39px;border-radius:8px;overflow:hidden;}
.svc-card .illus img{width:100%;height:100%;object-fit:cover;object-position:center bottom;}

/* ============================================================
   SOLAR BENEFITS — accordion + image (2col inside gray box)
   ============================================================ */
.benefits .container{display:flex;flex-direction:column;align-items:center;gap:60px;}
.benefits-box{width:100%;background:var(--gray);border-radius:24px;padding:10px;display:flex;gap:10px;}
.benefits-list{flex:1;display:flex;flex-direction:column;gap:10px;}
.benefit-item{background:var(--white);border-radius:16px;padding:20px;display:flex;flex-direction:column;}
.benefit-row{display:flex;justify-content:space-between;align-items:center;gap:10px;}
.benefit-row .lead{display:flex;align-items:center;gap:10px;}
.benefit-row .lead svg{width:24px;height:24px;flex:0 0 24px;}
.benefit-row .lead h4{}
.benefit-row .chev{width:28px;height:28px;flex:0 0 28px;color:var(--ink);}
.benefit-item.open .chev{transform:rotate(90deg);}
.benefit-desc{font:400 16px/22.4px var(--f-body);letter-spacing:-.16px;color:var(--ink-70);margin-top:10px;}
.benefit-item:not(.open) .benefit-desc{display:none;}
.benefits-img{flex:1;border-radius:16px;overflow:hidden;position:relative;}
.benefits-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}

/* ============================================================
   PROJECTS (Savings & Impact) — 2 asymmetric rows
   ============================================================ */
.projects .container{display:flex;flex-direction:column;align-items:center;gap:60px;}
.proj-rows{display:flex;flex-direction:column;gap:12px;width:100%;}
.proj-row{display:flex;gap:12px;height:450px;}
.proj-card{position:relative;border-radius:12px;box-shadow:var(--shadow-card);overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;}
.proj-card.w588{flex:0 0 588px;}
.proj-card.wgrow{flex:1;}
.proj-card>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.proj-card .blur{position:absolute;left:0;right:0;bottom:0;height:225px;background:rgba(0,0,0,.7);backdrop-filter:blur(30px);-webkit-mask:linear-gradient(to top,#000 60%,transparent);mask:linear-gradient(to top,#000 60%,transparent);z-index:1;}
.proj-card .caption{position:relative;z-index:2;padding:22px;display:flex;flex-direction:column;gap:4px;}
.proj-card .caption h4{color:#fff;}
.proj-card .caption p{font:500 16px/25.6px var(--f-ui);letter-spacing:-.16px;color:#fff;}

/* ============================================================
   HOW IT WORKS — sticky title + 4 step cards
   ============================================================ */
.how .container{display:flex;justify-content:center;gap:60px;align-items:flex-start;}
.how-title{position:sticky;top:120px;width:585px;flex:0 0 585px;display:flex;flex-direction:column;gap:16px;align-self:flex-start;}
.how-title .h2{font-size:40px;line-height:48px;}
.how-steps{flex:1;background:var(--gray);border-radius:24px;padding:10px;display:flex;flex-direction:column;gap:10px;}
.step-card{background:var(--white);border-radius:16px;padding:20px;display:flex;flex-direction:column;justify-content:center;}
.step-inner{display:flex;flex-direction:column;gap:32px;}
.step-num{width:51px;height:51px;border-radius:8px;background:var(--lime);display:flex;align-items:center;justify-content:center;}
.step-num span{font:400 20px/28px var(--f-head);letter-spacing:-.4px;color:var(--ink);}
.step-text{display:flex;flex-direction:column;gap:10px;}
.step-points{display:flex;flex-direction:column;gap:6px;margin-top:0;}
.step-point{display:flex;align-items:center;gap:10px;}
.step-point .dot{width:7px;height:7px;border-radius:1px;background:var(--ink-40);flex:0 0 7px;}
.step-point p{font:400 16px/22.4px var(--f-body);letter-spacing:-.16px;color:var(--ink-70);}

/* ============================================================
   TESTIMONIALS — 3D coverflow carousel
   ============================================================ */
.testi .container{display:flex;flex-direction:column;align-items:center;gap:60px;}
.testi-stage{position:relative;width:100%;height:470px;margin-top:30px;overflow:hidden;perspective:2000px;perspective-origin:50% 50%;}
.testi-track{position:absolute;left:50%;top:50%;transform-style:preserve-3d;}
.testi-card{position:absolute;width:350px;height:450px;margin-left:-175px;margin-top:-225px;border-radius:16px;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;backface-visibility:hidden;box-shadow:0 24px 50px rgba(0,0,0,.28);will-change:transform,opacity;}
.testi-card>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.testi-card .blur{position:absolute;left:0;right:0;bottom:0;height:55%;background:rgba(0,0,0,.1);backdrop-filter:blur(30px);-webkit-mask:linear-gradient(to top,#000 55%,transparent);mask:linear-gradient(to top,#000 55%,transparent);z-index:1;}
.testi-card .content{position:relative;z-index:2;padding:22px;display:flex;flex-direction:column;gap:12px;}
.testi-card .stars{display:flex;gap:2px;}
.testi-card .stars svg{width:16px;height:16px;}
.testi-card .quote{font:400 16px/22.4px var(--f-body);letter-spacing:-.16px;color:#fff;}
.testi-card .user{display:flex;align-items:center;gap:10px;}
.testi-card .user .av{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.2);flex:0 0 36px;}
.testi-card .user .name{font:600 16px/22px var(--f-ui);color:#fff;}

/* ============================================================
   FAQ — 2 col
   ============================================================ */
.faq{padding-bottom:80px;}
.faq .container{display:flex;justify-content:center;gap:60px;align-items:stretch;}
.faq-left{width:540px;flex:0 0 540px;display:flex;flex-direction:column;justify-content:space-between;}
.faq-left .top{display:flex;flex-direction:column;gap:16px;}
.faq-left .top .h2{font-size:40px;line-height:48px;}
.faq-help{display:flex;flex-direction:column;gap:10px;}
.faq-help .h4{}
.faq-help .box{background:var(--gray);border-radius:20px;padding:20px;display:flex;flex-direction:column;gap:12px;}
.faq-help .box p{font:400 16px/22.4px var(--f-body);letter-spacing:-.16px;color:var(--ink-70);}
.faq-right{flex:1;background:var(--gray);border-radius:20px;padding:10px;display:flex;flex-direction:column;gap:10px;}
.faq-item{background:var(--white);border-radius:16px;padding:24px;}
.faq-q{display:flex;justify-content:space-between;align-items:center;gap:12px;cursor:pointer;}
.faq-q p{font:600 18px/28.8px var(--f-body);letter-spacing:-.18px;color:var(--ink);}
.faq-toggle{width:28px;height:28px;border-radius:100px;background:var(--gray);position:relative;flex:0 0 28px;}
.faq-toggle::before,.faq-toggle::after{content:"";position:absolute;background:var(--ink);top:50%;left:50%;transition:transform .25s;}
.faq-toggle::before{width:12px;height:1px;transform:translate(-50%,-50%);}
.faq-toggle::after{width:1px;height:12px;transform:translate(-50%,-50%);}
.faq-item.open .faq-toggle::after{transform:translate(-50%,-50%) rotate(90deg);opacity:0;}
.faq-a{font:400 16px/22.4px var(--f-body);letter-spacing:-.16px;color:var(--ink-70);overflow:hidden;max-height:0;transition:max-height .3s ease,margin .3s ease;}
.faq-item.open .faq-a{max-height:200px;margin-top:16px;}

/* ============================================================
   FOOTER + CTA
   ============================================================ */
.footer{padding:80px 0;}
.footer .container{display:flex;justify-content:center;}
.footer-shell{width:100%;background:var(--gray);border-radius:24px;padding:10px;display:flex;flex-direction:column;gap:10px;}
.footer-panel{background:var(--white);border-radius:20px;overflow:hidden;display:flex;flex-direction:column;align-items:center;}
.footer-cta{padding:60px 0 0;display:flex;flex-direction:column;align-items:center;gap:40px;width:100%;}
.footer-cta .cta-content{display:flex;flex-direction:column;align-items:center;gap:32px;max-width:600px;text-align:center;}
.footer-cta .cta-text{display:flex;flex-direction:column;align-items:center;gap:16px;}
.footer-cta .cta-text .h2{text-align:center;}
.footer-cta .cta-text p{font:400 16px/22.4px var(--f-body);letter-spacing:-.16px;color:var(--ink);max-width:500px;text-align:center;}
.footer-cta .cta-banner{width:100%;height:527px;}
.footer-cta .cta-banner img{width:100%;height:100%;object-fit:cover;}
.footer-links{width:100%;background:var(--white);border-radius:20px;padding:30px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:40px;}
.footer-brand{display:flex;flex-direction:column;gap:30px;max-width:350px;}
.footer-brand .blk{display:flex;flex-direction:column;gap:16px;}
.footer-logo{display:flex;align-items:center;gap:16px;}
.footer-logo .bolt{width:44px;height:44px;border-radius:12px;background:var(--lime);display:flex;align-items:center;justify-content:center;}
.footer-logo .bolt svg{width:24px;height:24px;}
.footer-logo .wordmark{height:36px;}
.footer-brand .tagline{font:400 16px/22.4px var(--f-body);letter-spacing:-.16px;color:var(--ink-70);}
.footer-social{display:flex;align-items:center;gap:16px;}
.footer-social a{width:44px;height:44px;border-radius:12px;background:var(--social-bg);display:flex;align-items:center;justify-content:center;}
.footer-social a img{width:24px;height:24px;}
.footer-cols{display:grid;grid-template-columns:225px 225px;}
.footer-col{display:flex;flex-direction:column;gap:20px;}
.footer-col .h4{}
.footer-col .items{display:flex;flex-direction:column;gap:16px;}
.footer-col .items a{font:500 16px/25.6px var(--f-ui);letter-spacing:-.16px;color:var(--ink-70);transition:color .2s;}
.footer-col .items a:hover{color:var(--ink);}
.contact-items{display:flex;flex-direction:column;gap:20px;}
.contact-item{display:flex;align-items:flex-start;gap:12px;}
.contact-item .ci{width:30px;height:30px;border-radius:10px;background:var(--contact-bg);display:flex;align-items:center;justify-content:center;padding:4px;flex:0 0 30px;}
.contact-item .ci svg{width:22px;height:22px;}
.contact-item a,.contact-item span{font:400 16px/22.4px var(--f-body);letter-spacing:-.16px;color:var(--ink-70);}
.footer-copy{background:var(--white);border-radius:20px;padding:26px 60px;display:flex;justify-content:center;align-items:center;}
.footer-copy p{font:400 16px/22.4px var(--f-body);letter-spacing:-.16px;color:var(--ink);}

/* ============================================================
   MOTION — scroll reveal, hero entrance, hover micro-interactions
   ============================================================ */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1);}
.reveal.in{opacity:1;transform:none;}

/* hero entrance on load */
@keyframes heroIn{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes heroImg{from{opacity:0;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}
.hero-main .trust-pill{animation:heroIn .85s .15s both cubic-bezier(.22,.61,.36,1);}
.hero-main .hero-text{animation:heroIn .85s .3s both cubic-bezier(.22,.61,.36,1);}
.hero-main .btn{animation:heroIn .85s .45s both cubic-bezier(.22,.61,.36,1);}
.hero-house{animation:heroImg 1.5s .1s both ease;}

/* nav shadow on scroll */
.nav{transition:box-shadow .3s ease;}
.nav.scrolled{box-shadow:0 1px 0 rgba(17,17,17,.06),0 10px 28px rgba(17,17,17,.06);}

/* buttons & logo */
.btn{transition:transform .25s ease,box-shadow .25s ease;}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(17,17,17,.18);}
.logo .bolt{transition:transform .4s cubic-bezier(.34,1.56,.64,1);}
.logo:hover .bolt{transform:rotate(-10deg) scale(1.06);}

/* nav link underline sweep */
.nav-links a{position:relative;}
.nav-links a::after{content:"";position:absolute;left:0;right:100%;bottom:-3px;height:2px;background:var(--ink);border-radius:2px;transition:right .3s ease;}
.nav-links a:hover::after{right:0;}

/* card hover lift + image zoom + icon pop */
.svc-card,.stat-card,.step-card,.faq-item{transition:transform .35s ease,box-shadow .35s ease;}
.svc-card:hover{transform:translateY(-6px);box-shadow:0 16px 36px rgba(0,0,0,.10);}
.stat-card:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(0,0,0,.08);}
.step-card:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(0,0,0,.07);}
.faq-item:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.06);}
.svc-card .illus img{transition:transform .6s cubic-bezier(.22,.61,.36,1);}
.svc-card:hover .illus img{transform:scale(1.05);}
.svc-card .ico,.step-num{transition:transform .35s cubic-bezier(.34,1.56,.64,1);}
.svc-card:hover .ico{transform:scale(1.08) rotate(-5deg);}
.proj-card{transition:transform .35s ease,box-shadow .35s ease;}
.proj-card:hover{transform:translateY(-5px);box-shadow:0 20px 44px rgba(0,0,0,.20);}
.proj-card>img{transition:transform .7s cubic-bezier(.22,.61,.36,1);}
.proj-card:hover>img{transform:scale(1.06);}
.benefits-img img{transition:transform .8s cubic-bezier(.22,.61,.36,1);}
.benefits-box:hover .benefits-img img{transform:scale(1.04);}
.footer-social a,.contact-item .ci{transition:transform .3s ease,background .3s ease;}
.footer-social a:hover{transform:translateY(-3px);background:var(--lime);}
.footer-col .items a{position:relative;width:max-content;}
.cta-banner img{transition:transform 1s cubic-bezier(.22,.61,.36,1);}
.footer-cta:hover .cta-banner img{transform:scale(1.03);}

@media (prefers-reduced-motion:reduce){
  .reveal,.reveal.in{opacity:1!important;transform:none!important;transition:none!important;}
  .hero-main .trust-pill,.hero-main .hero-text,.hero-main .btn,.hero-house{animation:none!important;}
  .reel-slide img{transition:none!important;transform:none!important;}
}
