*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
--black:#090909;--dark:#0f0f0f;--dark2:#141414;--dark3:#181818;--card:#121212;--border:#1e1e1e;--border2:#282828;
--green:#3bb54b;--green-light:#4ecc5f;--green-dim:rgba(59,181,75,0.10);--green-glow:rgba(59,181,75,0.04);--green-mid:rgba(59,181,75,0.20);
--gold:#c9a84c;--gold-dim:rgba(201,168,76,0.12);--gold-light:#d4b85c;
--white:#f5f5f5;--off:#e8e8e8;--muted:#999;--light:#bbb;--subtle:#666;
--sans:'Inter',-apple-system,sans-serif;--serif:'Playfair Display',Georgia,serif;
--shadow-sm:0 2px 8px rgba(0,0,0,.3);--shadow-md:0 4px 20px rgba(0,0,0,.4);--shadow-lg:0 8px 40px rgba(0,0,0,.5);
}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased}
body{font-family:var(--sans);background:var(--black);color:var(--white);line-height:1.6;overflow-x:hidden}
a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{cursor:pointer;border:none;font-family:var(--sans)}
.container{max-width:1280px;margin:0 auto;padding:0 24px}
.section{padding:120px 0}
.gold{color:var(--gold)}.green{color:var(--green)}
.label{font-size:.7rem;text-transform:uppercase;letter-spacing:.2em;color:var(--green);font-weight:600;margin-bottom:16px}
.h2{font-family:var(--serif);font-size:clamp(2rem,4vw,3.2rem);font-weight:400;line-height:1.15}
.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}.reveal.v{opacity:1;transform:none}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s}.d4{transition-delay:.4s}.d5{transition-delay:.5s}
.shimmer{position:relative;overflow:hidden}.shimmer::after{content:'';position:absolute;top:0;left:-100%;width:50%;height:100%;background:linear-gradient(90deg,transparent,rgba(59,181,75,.04),transparent);animation:shimmer 3s infinite}
@keyframes shimmer{0%{left:-100%}100%{left:200%}}
.pulse-green{animation:pulseGreen 2s ease-in-out infinite}@keyframes pulseGreen{0%,100%{box-shadow:0 0 0 0 rgba(59,181,75,.3)}50%{box-shadow:0 0 0 12px rgba(59,181,75,0)}}
.counter{font-variant-numeric:tabular-nums}

/* NAV */
.nav{position:fixed;top:0;left:0;right:0;z-index:1000;padding:18px 0;transition:all .4s}
.nav.scrolled{background:rgba(10,10,10,.96);backdrop-filter:blur(20px);padding:10px 0;border-bottom:1px solid var(--border)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;max-width:1280px;margin:0 auto;padding:0 24px}
.nav-logo img{height:48px;width:auto}
.nav-links{display:flex;gap:28px;align-items:center}
.nav-links>a,.nav-dd>span{font-size:.82rem;color:var(--light);transition:color .3s;letter-spacing:.01em;cursor:pointer}
.nav-links>a:hover,.nav-links .nav-links-a:hover,.nav-dd:hover>span{color:var(--green)}
.nav-dd{position:relative}
.nav-dd>span{display:inline-flex;align-items:center;gap:4px}
.nav-dd>span::after{content:'';border:solid var(--muted);border-width:0 1.5px 1.5px 0;padding:2.5px;transform:rotate(45deg);transition:transform .3s,border-color .3s;margin-top:-2px}
.nav-dd:hover>span::after{border-color:var(--green);transform:rotate(-135deg)}
.nav-dd-menu{position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%);background:rgba(10,10,10,.98);backdrop-filter:blur(20px);border:1px solid var(--border);min-width:200px;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,transform .25s;transform:translateX(-50%) translateY(6px);padding:8px 0;z-index:1001}
.nav-dd:hover .nav-dd-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.nav-dd-menu a{display:block;padding:10px 20px;font-size:.8rem;color:var(--light);transition:all .2s;white-space:nowrap}
.nav-dd-menu a:hover{color:var(--green);background:var(--green-glow);padding-left:24px}
.btn-g{background:var(--green);color:var(--white);padding:11px 26px;font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;transition:all .3s;display:inline-flex;align-items:center;gap:8px;position:relative;overflow:hidden}
.btn-g::after{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transition:left .5s}
.btn-g:hover{background:var(--green-light);transform:translateY(-2px);box-shadow:0 4px 20px rgba(59,181,75,.25)}.btn-g:hover::after{left:100%}
.btn-o{background:transparent;color:var(--white);padding:11px 26px;font-size:.75rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--border2);transition:all .3s;display:inline-flex;align-items:center;gap:8px}
.btn-o:hover{border-color:var(--green);color:var(--green)}
.nav-mob{display:none;background:none;color:var(--white);font-size:1.5rem}

/* HERO */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;overflow:hidden}
.hero-bg{position:absolute;inset:0}
.hero-img{position:absolute;inset:0;background:url('img/hero-luxury-estate-night.jpg') center/cover no-repeat}
.hero-img::after{content:'';position:absolute;inset:0;background:linear-gradient(100deg,rgba(9,9,9,.95) 0%,rgba(9,9,9,.82) 45%,rgba(9,9,9,.55) 75%,rgba(9,9,9,.35) 100%)}
.hero-content{position:relative;z-index:2;max-width:1280px;margin:0 auto;padding:0 24px;padding-top:120px}
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:var(--green-dim);border:1px solid rgba(59,181,75,.3);padding:8px 20px;margin-bottom:32px}
.hero-badge span{font-size:.68rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--green)}
.hero h1{font-family:var(--serif);font-size:clamp(2.6rem,5.5vw,5rem);font-weight:400;line-height:1.08;margin-bottom:24px;max-width:720px}
.hero h1 em{font-style:italic;color:var(--green)}
.hero-sub{font-size:1.1rem;color:var(--light);max-width:520px;line-height:1.7;margin-bottom:44px;font-weight:300}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.hero-stats{display:flex;gap:48px;margin-top:72px;padding-top:32px;border-top:1px solid var(--border)}
.hero-stat h3{font-size:2rem;font-weight:300;color:var(--green);font-family:var(--serif)}
.hero-stat p{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-top:4px}

/* CREDENTIALS */
.creds{padding:44px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--dark)}
.creds-inner{display:flex;align-items:center;justify-content:center;gap:48px;flex-wrap:wrap}
.cred-badge{text-align:center;opacity:.55;transition:all .3s;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:90px;padding:12px 8px;border:1px solid transparent;cursor:default}.cred-badge:hover{opacity:1;border-color:var(--border)}
.cred-logo{height:28px;width:auto;margin-bottom:2px}
.cred-logo svg{height:28px;width:auto;fill:var(--white)}
.cred-logo img{height:36px;width:auto;filter:brightness(0) invert(1);object-fit:contain}
.cred-sub{font-size:.52rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:500}

/* ABOUT */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.about p{color:var(--light);font-size:1rem;line-height:1.8;margin-bottom:14px;font-weight:300}
.feat-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:36px}
.feat{padding:20px;border:1px solid var(--border);background:var(--card)}
.feat h4{font-size:.82rem;font-weight:600;margin-bottom:4px}.feat p{font-size:.78rem;color:var(--muted);line-height:1.5;margin:0}
.about-visual{position:relative;aspect-ratio:4/5;overflow:hidden;border:1px solid var(--border)}
.about-vis-img{position:absolute;inset:0;background:url('img/savant-outdoor-pool.jpg') center/cover}
.about-vis-img::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(10,10,10,.85) 0%,transparent 50%)}
.about-vis-text{position:absolute;bottom:32px;left:32px;right:32px}
.about-vis-text .big{font-family:var(--serif);font-size:5rem;color:var(--green);line-height:1;font-weight:300}
.about-vis-text p{color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;margin-top:8px}

/* SERVICES */
.srv-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.srv{background:var(--card);border:1px solid var(--border);padding:36px 28px;transition:all .4s;position:relative;overflow:hidden;box-shadow:var(--shadow-sm)}
.srv::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--green),var(--green-light));transform:scaleX(0);transition:transform .4s;transform-origin:left}
.srv:hover{border-color:rgba(59,181,75,.3);transform:translateY(-6px);box-shadow:var(--shadow-md),0 0 30px rgba(59,181,75,.06)}.srv:hover::before{transform:scaleX(1)}.srv:hover .srv-icon{background:var(--green-mid);transform:scale(1.05)}.srv:hover .srv-link{letter-spacing:.14em}
.srv-icon{width:44px;height:44px;background:var(--green-dim);display:flex;align-items:center;justify-content:center;margin-bottom:20px;transition:all .4s}
.srv-icon svg{width:22px;height:22px;stroke:var(--green);fill:none;stroke-width:1.5}
.srv h3{font-size:1.05rem;font-weight:600;margin-bottom:10px}
.srv p{font-size:.85rem;color:var(--muted);line-height:1.6;margin-bottom:16px}
.srv-link{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--green);font-weight:600;transition:letter-spacing .3s}

/* STACK */
.stack{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.stack-i{background:var(--card);padding:28px 14px;text-align:center;border:1px solid var(--border);transition:all .3s}
.stack-i:hover{background:var(--dark3);border-color:rgba(59,181,75,.15)}
.stack-i:last-child{background:var(--green-dim);border-color:rgba(59,181,75,.3)}
.stack-n{font-family:var(--serif);font-size:1.6rem;color:var(--green);font-weight:300;margin-bottom:8px}
.stack-i h4{font-size:.78rem;font-weight:600;margin-bottom:4px}
.stack-i p{font-size:.65rem;color:var(--muted);line-height:1.4}

/* PROJECTS */
.proj-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.proj{position:relative;overflow:hidden;cursor:pointer;aspect-ratio:16/10;border:1px solid var(--border)}
.proj.feat{grid-column:span 2;aspect-ratio:21/9}
.proj-bg{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .6s}
.proj:hover .proj-bg{transform:scale(1.04)}
.proj-ov{position:absolute;inset:0;background:linear-gradient(to top,rgba(5,5,5,.92) 0%,rgba(5,5,5,.5) 35%,rgba(5,5,5,.1) 60%,transparent 100%);padding:28px;display:flex;flex-direction:column;justify-content:flex-end;transition:background .4s}
.proj:hover .proj-ov{background:linear-gradient(to top,rgba(5,5,5,.95) 0%,rgba(5,5,5,.6) 40%,rgba(5,5,5,.2) 70%,transparent 100%)}
.proj-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.proj-tag{font-size:.58rem;text-transform:uppercase;letter-spacing:.08em;padding:3px 8px;border:1px solid rgba(59,181,75,.3);color:var(--green)}
.proj h3{font-size:1.2rem;font-weight:600;margin-bottom:4px}
.proj p{font-size:.82rem;color:var(--muted)}

/* LANDING PAGES */
/* Multi-page: pages are visible by default, padding for fixed nav */
main[role="main"]{padding-top:80px;display:block}
.page-hero{padding:100px 0 60px;background:var(--dark);border-bottom:1px solid var(--border);position:relative;overflow:hidden}
.page-hero::after{content:'';position:absolute;bottom:0;left:0;right:0;height:80px;background:linear-gradient(to top,var(--black),transparent);z-index:1}
.page-hero-img{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.15;transition:opacity .6s}
.page:hover .page-hero-img{opacity:.2}
@keyframes shadeMove{0%{clip-path:inset(0 0 0 0)}30%{clip-path:inset(0 0 50% 0)}60%{clip-path:inset(0 0 20% 0)}100%{clip-path:inset(0 0 0 0)}}
.shade-hero-animated{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(255,255,255,.06) 0%,transparent 60%);animation:shadeMove 8s ease-in-out infinite;pointer-events:none}
.shade-hero-overlay{position:absolute;top:0;left:0;right:0;height:4px;background:rgba(255,255,255,.5);animation:shadeBar 8s ease-in-out infinite}
@keyframes shadeBar{0%{top:0}30%{top:50%}60%{top:20%}100%{top:0}}
.page-hero .container{position:relative;z-index:2}
.page-hero h1{font-family:var(--serif);font-size:clamp(2rem,4vw,3.5rem);font-weight:400;margin-bottom:16px}
.page-hero p{color:var(--light);font-size:1.1rem;max-width:600px;font-weight:300;line-height:1.7}
.page-split{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
.page-split img{width:100%;aspect-ratio:16/10;object-fit:cover;border:1px solid var(--border)}
.page-features{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:48px}
.page-feat{padding:28px;border:1px solid var(--border);background:var(--card)}
.page-feat h4{font-size:.9rem;margin-bottom:8px;font-weight:600}.page-feat p{font-size:.82rem;color:var(--muted);line-height:1.6}
.brands-row{display:flex;gap:40px;align-items:center;flex-wrap:wrap;padding:40px 0;border-top:1px solid var(--border);margin-top:48px}
.brands-row span{font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);padding:8px 16px;border:1px solid var(--border)}
.badge-bar{display:flex;align-items:center;justify-content:center;gap:40px;flex-wrap:wrap;padding:48px 24px;max-width:1280px;margin:0 auto}
.badge-bar .bb-item{display:flex;flex-direction:column;align-items:center;gap:6px;opacity:.55;transition:opacity .3s;min-width:80px}.badge-bar .bb-item:hover{opacity:1}
.badge-bar .bb-img{height:48px;width:auto;object-fit:contain;filter:brightness(0) invert(1)}
.badge-bar .bb-img.no-invert{filter:none}
.badge-bar .bb-label{font-size:.5rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);text-align:center;white-space:nowrap}
.badge-bar .bb-svg{height:20px;fill:var(--white)}


.prod-img-placeholder{background:var(--card);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;padding:16px;flex-direction:column;gap:8px;min-height:120px}
.prod-img-placeholder svg{opacity:.3}
.prod-img-placeholder span{font-size:.65rem;color:var(--subtle);text-transform:uppercase;letter-spacing:.08em}
.van-banner{aspect-ratio:21/5;background:var(--card);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;margin:48px 0;flex-direction:column;gap:8px}
.van-banner svg{opacity:.3}
.van-banner span{font-size:.7rem;color:var(--subtle);text-transform:uppercase;letter-spacing:.08em}
/* DIFF */
.diff-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:40px;margin-top:48px}
.diff{text-align:center}.diff h3{font-family:var(--serif);font-size:1.3rem;margin-bottom:10px}
.diff p{font-size:.88rem;color:var(--muted);line-height:1.7}
.diff-line{width:36px;height:2px;background:var(--green);margin:0 auto 16px}

/* TESTIMONIAL */
.test-card{background:var(--card);border:1px solid var(--border);padding:48px;max-width:800px;margin:0 auto;text-align:center}
.test-q{font-family:var(--serif);font-size:1.3rem;font-weight:400;line-height:1.7;font-style:italic;color:var(--light);margin-bottom:20px}
.test-q::before{content:'\201C';font-size:3.5rem;color:var(--green);display:block;line-height:.5;margin-bottom:14px}
.test-a{font-size:.82rem;font-weight:600}.test-r{font-size:.72rem;color:var(--muted)}

/* CTA */
.cta{background:linear-gradient(135deg,var(--dark) 0%,#0c0c0c 50%,#111 100%);text-align:center;padding:100px 24px;position:relative;overflow:hidden}
.cta::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 600px 300px at center,rgba(255,255,255,.015),transparent 70%)}
.cta h2{font-family:var(--serif);font-size:clamp(2rem,4vw,3.2rem);font-weight:400;margin-bottom:14px;position:relative}
.cta>p{color:var(--muted);font-size:1rem;margin-bottom:36px;max-width:480px;margin-left:auto;margin-right:auto;position:relative}

/* CONTACT */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px}
.form{display:flex;flex-direction:column;gap:18px}
.fg{display:flex;flex-direction:column;gap:5px}
.fg label{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:500}
.fg input,.fg select,.fg textarea{background:var(--card);border:1px solid var(--border);color:var(--white);padding:13px 14px;font-family:var(--sans);font-size:.88rem;transition:border-color .3s}
.fg input:focus,.fg select:focus,.fg textarea:focus{outline:none;border-color:var(--green)}
.fg textarea{resize:vertical;min-height:110px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.ci h3{font-family:var(--serif);font-size:1.4rem;margin-bottom:16px}
.ci>p{color:var(--muted);line-height:1.7;margin-bottom:28px}
.cd{display:flex;gap:14px;align-items:flex-start;margin-bottom:20px}
.cd-icon{width:38px;height:38px;background:var(--green-dim);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.cd-icon svg{width:17px;height:17px;stroke:var(--green);fill:none;stroke-width:1.5}
.cd h4{font-size:.82rem;font-weight:600;margin-bottom:2px}.cd p{font-size:.82rem;color:var(--muted);margin:0}
.svc-area{margin-top:28px;padding:20px;background:var(--green-dim);border:1px solid rgba(59,181,75,.15)}
.svc-area h4{font-size:.82rem;color:var(--green);margin-bottom:6px}
.svc-area p{font-size:.78rem;color:var(--muted);line-height:1.6;margin:0}

/* FOOTER */
footer{background:var(--dark);border-top:1px solid var(--border);padding:48px 0 24px}
.ft-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:32px;margin-bottom:32px}
.ft-brand p{color:var(--muted);font-size:.82rem;line-height:1.6;margin-top:10px;max-width:280px}
.ft-col h4{font-size:.7rem;text-transform:uppercase;letter-spacing:.14em;color:var(--green);margin-bottom:14px;font-weight:600}
.ft-col a{display:block;font-size:.82rem;color:var(--muted);margin-bottom:8px;transition:color .3s}.ft-col a:hover{color:var(--green)}
.ft-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:20px;border-top:1px solid var(--border)}
.ft-bottom p{font-size:.72rem;color:var(--muted)}
.ft-badges{display:flex;gap:12px}
.ft-badge{font-size:.6rem;text-transform:uppercase;letter-spacing:.08em;color:var(--green);padding:5px 10px;border:1px solid rgba(59,181,75,.25)}

/* BLOG */
.blog-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.blog-card{background:var(--card);border:1px solid var(--border);overflow:hidden;transition:all .4s;cursor:pointer}
.blog-card:hover{border-color:rgba(59,181,75,.3);transform:translateY(-3px);box-shadow:var(--shadow-md)}
.blog-card-img{aspect-ratio:16/9;background-size:cover;background-position:center;position:relative}
.blog-card-img::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(5,5,5,.6),transparent 50%)}
.blog-card-body{padding:28px}
.blog-card-meta{font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--green);margin-bottom:10px;font-weight:600}
.blog-card h3{font-size:1.1rem;font-weight:600;margin-bottom:8px;line-height:1.4}
.blog-card p{font-size:.85rem;color:var(--muted);line-height:1.65}
.blog-card-link{display:inline-block;margin-top:14px;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--green);font-weight:600}
.blog-post{max-width:800px;margin:0 auto}
.blog-post h2{font-family:var(--serif);font-size:1.6rem;margin:40px 0 16px;font-weight:400}
.blog-post h3{font-size:1.1rem;margin:32px 0 12px;font-weight:600;color:var(--white)}
.blog-post p{color:var(--light);font-size:.95rem;line-height:1.85;margin-bottom:16px;font-weight:300}
.blog-post ul{margin:12px 0 20px 24px;color:var(--light);font-size:.9rem;line-height:1.8}
.blog-post ul li{margin-bottom:6px}
.blog-post .blog-cta{background:var(--green-dim);border:1px solid rgba(59,181,75,.2);padding:28px;margin:40px 0;text-align:center}
.blog-post .blog-cta h4{font-family:var(--serif);font-size:1.2rem;margin-bottom:8px}
.blog-post .blog-cta p{color:var(--muted);font-size:.88rem;margin-bottom:16px}
.blog-back{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--green);font-weight:600;margin-bottom:24px;cursor:pointer}

/* VIDEO */
.video-embed{position:relative;width:100%;padding-bottom:56.25%;background:var(--card);border:1px solid var(--border);overflow:hidden}
.video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:none}
.video-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--card);cursor:pointer;transition:all .3s}
.video-placeholder:hover{background:var(--dark3)}
.video-placeholder .play-btn{width:72px;height:72px;background:rgba(59,181,75,.9);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:16px;transition:transform .3s}
.video-placeholder:hover .play-btn{transform:scale(1.1)}
.video-placeholder .play-btn::after{content:'';border-style:solid;border-width:12px 0 12px 22px;border-color:transparent transparent transparent #fff;margin-left:4px}
.video-placeholder p{color:var(--muted);font-size:.82rem;text-transform:uppercase;letter-spacing:.1em}
/* PROCESS TIMELINE */
.timeline{position:relative;max-width:900px;margin:48px auto 0}
.timeline::before{content:'';position:absolute;left:50%;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,var(--green),var(--green-dim));transform:translateX(-50%)}
.tl-item{display:flex;align-items:flex-start;margin-bottom:48px;position:relative}
.tl-item:nth-child(odd){flex-direction:row;padding-right:calc(50% + 40px)}
.tl-item:nth-child(even){flex-direction:row-reverse;padding-left:calc(50% + 40px)}
.tl-dot{position:absolute;left:50%;transform:translateX(-50%);width:16px;height:16px;background:var(--green);border:3px solid var(--dark);border-radius:50%;z-index:2}
.tl-content{background:var(--card);border:1px solid var(--border);padding:24px;width:100%;transition:all .3s}
.tl-content:hover{border-color:rgba(59,181,75,.3);box-shadow:0 0 20px rgba(59,181,75,.05)}
.tl-content h4{font-size:.95rem;font-weight:600;margin-bottom:6px}.tl-content p{font-size:.82rem;color:var(--muted);line-height:1.6;margin:0}
.tl-num{font-family:var(--serif);font-size:1.4rem;color:var(--green);font-weight:300;margin-bottom:4px}
@media(max-width:768px){.timeline::before{left:20px}.tl-item,.tl-item:nth-child(odd),.tl-item:nth-child(even){flex-direction:row;padding:0 0 0 52px}.tl-dot{left:20px}}

/* VIDEO HERO */
.video-hero{position:relative;padding:100px 0;background:var(--dark);overflow:hidden}
.video-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 800px 400px at 50% 50%,rgba(255,255,255,.015),transparent)}
.vh-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.vh-video{position:relative;border:1px solid var(--border);aspect-ratio:16/9;overflow:hidden;background:var(--card)}
.vh-video img{width:100%;height:100%;object-fit:cover;opacity:.6;transition:opacity .3s}
.vh-video:hover img{opacity:.8}
.vh-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.vh-play-btn{width:80px;height:80px;background:rgba(59,181,75,.9);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .3s;cursor:pointer}
.vh-play-btn:hover{background:var(--green);transform:scale(1.1);box-shadow:0 0 30px rgba(59,181,75,.3)}
.vh-play-btn::after{content:'';border-style:solid;border-width:14px 0 14px 24px;border-color:transparent transparent transparent #fff;margin-left:4px}
@media(max-width:768px){.vh-grid{grid-template-columns:1fr}}

/* STAT COUNTERS */
.stat-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:var(--dark);border:1px solid var(--border)}
.stat-item{padding:36px 20px;text-align:center;background:var(--card);transition:all .3s}
.stat-item:hover{background:var(--dark3)}
.stat-num{font-family:var(--serif);font-size:clamp(2rem,3vw,2.8rem);color:var(--green);font-weight:300;line-height:1;margin-bottom:8px}
.stat-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:500}
@media(max-width:768px){.stat-bar{grid-template-columns:1fr 1fr}}

/* CONSULTATION */
.consult-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:40px}
.consult-step{text-align:center;padding:28px 20px;background:var(--card);border:1px solid var(--border);transition:all .3s}
.consult-step:hover{border-color:rgba(59,181,75,.3)}
.consult-step-num{font-family:var(--serif);font-size:2rem;color:var(--green);margin-bottom:8px;font-weight:300}
.consult-step h4{font-size:.88rem;margin-bottom:6px;font-weight:600}
.consult-step p{font-size:.78rem;color:var(--muted);line-height:1.5}
.quote-types{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:32px 0}
.quote-type{background:var(--card);border:1px solid var(--border);padding:24px;cursor:pointer;transition:all .3s;text-align:center}
.quote-type:hover,.quote-type.active{border-color:var(--green);background:var(--green-dim)}
.quote-type h4{font-size:.9rem;margin-bottom:6px;font-weight:600}
.quote-type p{font-size:.75rem;color:var(--muted);line-height:1.5}

/* FEATURED PROJECT SHOWCASE */
.fp-showcase{position:relative;overflow:hidden;border:1px solid var(--border);aspect-ratio:21/9;cursor:pointer}
.fp-showcase .proj-bg{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .8s cubic-bezier(.16,1,.3,1)}
.fp-showcase:hover .proj-bg{transform:scale(1.03)}
.fp-showcase .fp-ov{position:absolute;inset:0;background:linear-gradient(100deg,rgba(9,9,9,.92) 0%,rgba(9,9,9,.7) 40%,rgba(9,9,9,.25) 70%,rgba(9,9,9,.1) 100%);display:flex;align-items:center;padding:60px}
.fp-showcase .fp-content{max-width:520px}
.fp-showcase .fp-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.16em;color:var(--green);font-weight:600;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.fp-showcase .fp-label::before{content:'';width:24px;height:1px;background:var(--green)}
.fp-showcase h3{font-family:var(--serif);font-size:clamp(1.6rem,3vw,2.4rem);font-weight:400;line-height:1.15;margin-bottom:14px}
.fp-showcase p{color:var(--light);font-size:.92rem;line-height:1.7;font-weight:300;margin-bottom:20px}
.fp-showcase .fp-tags{display:flex;gap:6px;flex-wrap:wrap}
.fp-showcase .fp-tags span{font-size:.58rem;text-transform:uppercase;letter-spacing:.08em;padding:4px 10px;border:1px solid rgba(59,181,75,.3);color:var(--green)}
@media(max-width:768px){.fp-showcase{aspect-ratio:4/3}.fp-showcase .fp-ov{padding:28px;align-items:flex-end;background:linear-gradient(to top,rgba(9,9,9,.95) 0%,rgba(9,9,9,.6) 50%,rgba(9,9,9,.2) 100%)}}

/* SHADING CALLOUT */
.shade-banner{position:relative;overflow:hidden;border:1px solid var(--border);background:var(--card)}
.shade-banner-inner{display:grid;grid-template-columns:1fr 1fr;gap:0;min-height:280px}
.shade-banner-img{background-size:cover;background-position:center;position:relative}
.shade-banner-img::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 60%,var(--card) 100%)}
.shade-banner-text{padding:48px;display:flex;flex-direction:column;justify-content:center}
.shade-banner-text h3{font-family:var(--serif);font-size:clamp(1.3rem,2.5vw,1.8rem);margin-bottom:12px;font-weight:400}
.shade-banner-text p{color:var(--light);font-size:.9rem;line-height:1.7;font-weight:300;margin-bottom:20px}
@media(max-width:768px){.shade-banner-inner{grid-template-columns:1fr}.shade-banner-img{min-height:200px}.shade-banner-img::after{background:linear-gradient(to top,var(--card) 0%,transparent 60%)}}

/* MULTI-STEP FORM */
.wizard{max-width:720px;margin:0 auto}
.wizard-progress{display:flex;gap:2px;margin-bottom:36px}
.wizard-progress .wp-step{flex:1;text-align:center;padding:12px 8px;background:var(--dark3);border:1px solid var(--border);transition:all .3s;position:relative}
.wizard-progress .wp-step.active{border-color:var(--green);background:var(--green-dim)}
.wizard-progress .wp-step.done{border-color:rgba(59,181,75,.4);background:rgba(59,181,75,.08)}
.wizard-progress .wp-step .wp-num{font-family:var(--serif);font-size:1.2rem;color:var(--muted);line-height:1;margin-bottom:4px;transition:color .3s}
.wizard-progress .wp-step.active .wp-num,.wizard-progress .wp-step.done .wp-num{color:var(--green)}
.wizard-progress .wp-step .wp-label{font-size:.62rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);transition:color .3s}
.wizard-progress .wp-step.active .wp-label{color:var(--white)}
.wiz-panel{display:none;animation:fadeUp .4s ease}.wiz-panel.active{display:block}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.wiz-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:24px}
.wiz-card{background:var(--dark3);border:2px solid var(--border);padding:20px;cursor:pointer;transition:all .3s;text-align:center;border-radius:6px}
.wiz-card:hover{border-color:rgba(59,181,75,.5)}
.wiz-card.selected{border-color:var(--green);background:var(--green-dim);box-shadow:0 0 0 1px var(--green)}
.wiz-card .wiz-icon{font-size:1.8rem;margin-bottom:6px}
.wiz-card h4{font-size:.9rem;margin-bottom:4px;font-weight:600}
.wiz-card p{font-size:.72rem;color:var(--muted);line-height:1.4}
.wiz-checks{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.wiz-check{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--dark3);border:1px solid var(--border);cursor:pointer;transition:all .2s;border-radius:4px}
.wiz-check:hover{border-color:rgba(59,181,75,.4)}
.wiz-check.checked{border-color:var(--green);background:var(--green-dim)}
.wiz-check .wiz-checkbox{width:16px;height:16px;border:1.5px solid var(--border2);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s;border-radius:3px}
.wiz-check.checked .wiz-checkbox{border-color:var(--green);background:var(--green)}
.wiz-check.checked .wiz-checkbox::after{content:'\2713';color:#fff;font-size:.65rem;font-weight:700}
.wiz-check span{font-size:.82rem;color:var(--light)}
.wiz-nav{display:flex;gap:12px;justify-content:flex-end;margin-top:28px}
@media(max-width:768px){.wizard-progress .wp-label{display:none}.wiz-checks{grid-template-columns:1fr}}

/* RESPONSIVE */
@media(max-width:1024px){.srv-grid{grid-template-columns:repeat(2,1fr)}.stack,.stack[style]{grid-template-columns:repeat(3,1fr)!important}.diff-grid,.page-features{grid-template-columns:1fr 1fr}.about-grid,.page-split{grid-template-columns:1fr}.ft-grid{grid-template-columns:1fr 1fr}.blog-grid[style*="1fr 1fr 1fr 1fr"]{grid-template-columns:1fr 1fr!important}}
@media(max-width:768px){.section{padding:80px 0}.nav-links{display:none}.nav-mob{display:block}.hero h1{font-size:2.2rem}.hero-stats{flex-direction:column;gap:20px}.srv-grid,.proj-grid,.diff-grid,.page-features,.blog-grid,.consult-steps,.quote-types{grid-template-columns:1fr}.proj.feat{grid-column:span 1;aspect-ratio:16/10}.stack{grid-template-columns:repeat(2,1fr)}.contact-grid{grid-template-columns:1fr}.form-row{grid-template-columns:1fr}.hero-actions{flex-direction:column}.btn-g,.btn-o{text-align:center;justify-content:center}.feat-grid{grid-template-columns:1fr}.ft-grid{grid-template-columns:1fr}.ft-bottom{flex-direction:column;gap:12px;text-align:center}.creds-inner{gap:12px}.cred-badge{min-width:70px;padding:8px 4px}.cred-logo svg{height:20px}.about-visual{max-height:300px}}
.nav-links.show{display:flex!important;position:fixed;top:56px;left:0;right:0;bottom:0;background:rgba(10,10,10,.98);flex-direction:column;align-items:center;justify-content:center;gap:20px;z-index:999}
.nav-links.show>a,.nav-links.show .nav-dd>span{font-size:1.05rem}
@media(max-width:768px){
.nav-dd-menu{position:static;transform:none;opacity:1;visibility:visible;background:transparent;border:none;min-width:0;padding:4px 0 0;backdrop-filter:none;display:none}
.nav-dd.open .nav-dd-menu{display:block}
.nav-dd-menu a{padding:6px 0;text-align:center;font-size:.95rem}
.nav-dd-menu a:hover{padding-left:0}
}