/* ═══════════════════════════════════════════════
   PAIRAHAN DESIGN CONSULTANTS — GLOBAL STYLES
   Inspired by mrwapl.com structure & polish
═══════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Raleway:wght@300;400;500;600;700;800;900&family=Open+Sans:wght@300;400;500;600;700&display=swap');

/* ── RESET ── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; }
body { font-family:'Open Sans',sans-serif; color:#333; background:#fff; overflow-x:hidden; line-height:1.6; }
a { text-decoration:none; color:inherit; transition:all .3s ease; }
ul { list-style:none; }
img { max-width:100%; display:block; }
input,textarea,select,button { font-family:inherit; outline:none; }
.container { max-width:1200px; margin:0 auto; padding:0 30px; }

/* ── VARIABLES ── */
:root {
  --green:#3a7d2c;
  --green2:#5aab3f;
  --green3:#8dc63f;
  --dark:#1a1a1a;
  --dark2:#222;
  --gray:#666;
  --lgray:#f5f5f5;
  --border:#e8e8e8;
  --white:#fff;
  --transition:.35s ease;
  --shadow:0 5px 30px rgba(0,0,0,.08);
  --shadow2:0 10px 50px rgba(0,0,0,.12);
}

/* ════════════════════════════════
   PRELOADER
════════════════════════════════ */
#preloader {
  position:fixed; inset:0; background:#fff; z-index:9999;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:24px;
  transition:opacity .6s ease, visibility .6s ease;
}
#preloader.done { opacity:0; visibility:hidden; pointer-events:none; }
.pl-logo { display:flex; align-items:center; gap:12px; }
.pl-logo svg { animation:plSpin 2s linear infinite; }
@keyframes plSpin { to { transform:rotate(360deg); } }
.pl-logo span { font-family:'Raleway',sans-serif; font-weight:800; font-size:1.1rem; color:#1a1a1a; letter-spacing:.05em; }
.pl-logo span em { color:var(--green2); font-style:normal; }
.pl-bar { width:180px; height:3px; background:#eee; border-radius:3px; overflow:hidden; }
.pl-fill { height:100%; background:var(--green2); animation:plFill 1.8s ease forwards; width:0; }
@keyframes plFill { to { width:100%; } }

/* ════════════════════════════════
   HEADER
════════════════════════════════ */
#hdr {
  position:fixed; top:0; left:0; right:0; z-index:1000;
  padding:0; transition:background .4s ease, box-shadow .4s ease;
}
#hdr.solid { background:#fff; box-shadow:0 2px 20px rgba(0,0,0,.08); }
.hdr-inner {
  max-width:1300px; margin:0 auto; padding:0 30px;
  display:flex; align-items:center; justify-content:space-between; height:78px;
}
/* Logo */
.logo { display:flex; align-items:center; gap:11px; }
.logo-svg { flex-shrink:0; }
.logo-txt { display:flex; flex-direction:column; line-height:1.15; }
.logo-txt .l1 { font-family:'Raleway',sans-serif; font-weight:900; font-size:.92rem; letter-spacing:.06em; color:#fff; transition:color .3s; }
.logo-txt .l1 em { color:var(--green3); font-style:normal; }
.logo-txt .l2 { font-family:'Raleway',sans-serif; font-size:.58rem; font-weight:600; letter-spacing:.22em; color:rgba(255,255,255,.55); transition:color .3s; text-transform:uppercase; }
#hdr.solid .logo-txt .l1 { color:var(--dark); }
#hdr.solid .logo-txt .l2 { color:#999; }

@media(max-width:900px) {
  .logo { gap:9px; }
  .logo-svg { width:32px; height:32px; }
  .logo-txt .l1 { font-size:.8rem; }
  .logo-txt .l2 { font-size:.5rem; }
}

@media(max-width:600px) {
  .logo { gap:8px; }
  .logo-svg { width:28px; height:28px; }
  .logo-txt .l1 { font-size:.72rem; }
  .logo-txt .l2 { font-size:.45rem; }
}

@media(max-width:479px) {
  .logo { gap:6px; }
  .logo-svg { width:24px; height:24px; }
  .logo-txt .l1 { font-size:.65rem; }
  .logo-txt .l2 { font-size:.4rem; letter-spacing:.18em; }
}
/* Nav */
.nav { display:flex; align-items:center; gap:2px; }
.nav > li { position:relative; }
.nav > li > a {
  display:block; font-family:'Raleway',sans-serif; font-size:.78rem; font-weight:700;
  letter-spacing:.08em; text-transform:uppercase; padding:8px 14px;
  color:rgba(255,255,255,.88); position:relative;
}
.nav > li > a::after {
  content:''; position:absolute; bottom:0; left:14px; right:14px; height:2px;
  background:var(--green3); transform:scaleX(0); transition:transform .3s ease;
}
.nav > li > a:hover::after, .nav > li > a.act::after { transform:scaleX(1); }
#hdr.solid .nav > li > a { color:var(--dark2); }
#hdr.solid .nav > li > a:hover { color:var(--green); }
/* Dropdown */
.subnav {
  position:absolute; top:100%; left:0; min-width:230px; background:#fff;
  box-shadow:0 8px 30px rgba(0,0,0,.13); opacity:0; visibility:hidden;
  transform:translateY(-6px); transition:all .3s ease;
  border-top:3px solid var(--green2);
}
.nav > li:hover .subnav { opacity:1; visibility:visible; transform:translateY(0); }
.subnav li a {
  display:block; padding:11px 18px; font-family:'Raleway',sans-serif; font-size:.75rem;
  font-weight:600; color:#444; letter-spacing:.04em; border-bottom:1px solid #f0f0f0;
  transition:all .25s;
}
.subnav li a:hover { background:#f8fdf5; color:var(--green); padding-left:24px; }
/* CTA btn */
.hdr-cta {
  font-family:'Raleway',sans-serif; font-weight:800; font-size:.72rem;
  letter-spacing:.12em; text-transform:uppercase; padding:11px 22px;
  background:var(--green2); color:#fff; transition:background .3s;
  white-space:nowrap;
}
.hdr-cta:hover { background:var(--green); }
/* Hamburger */
.burger { display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none; padding:6px; }
.burger span { width:24px; height:2px; background:#fff; display:block; transition:all .3s; }
#hdr.solid .burger span { background:var(--dark); }

@media(max-width:767px) {
  .burger { width:32px; height:32px; justify-content:center; }
  .burger span { width:20px; height:1.5px; }
}

@media(max-width:479px) {
  .burger span { width:18px; height:1.5px; gap:4px; }
}
/* Mobile */
.mob-nav {
  position:fixed; top:0; right:-290px; width:280px; height:100vh;
  background:var(--dark); z-index:1100; transition:right .38s ease;
  padding:70px 0 30px; overflow-y:auto;
}
.mob-nav.on { right:0; }
.mob-close {
  position:absolute; top:20px; right:20px; background:none; border:none;
  color:#fff; font-size:1.5rem; cursor:pointer; line-height:1;
}
.mob-nav li a {
  display:block; font-family:'Raleway',sans-serif; font-weight:700; font-size:.85rem;
  letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.8);
  padding:14px 28px; border-bottom:1px solid rgba(255,255,255,.06);
  transition:all .25s;
}
.mob-nav li a:hover { color:var(--green3); padding-left:36px; }
.mob-overlay {
  position:fixed; inset:0; background:rgba(0,0,0,.5);
  z-index:1050; opacity:0; visibility:hidden; transition:all .3s;
}
.mob-overlay.on { opacity:1; visibility:visible; }

@media(max-width:767px) {
  .mob-nav { width:75vw; max-width:280px; right:-75vw; }
  .mob-nav li a { padding:12px 20px; font-size:.8rem; }
}

@media(max-width:599px) {
  .mob-nav { width:80vw; max-width:260px; right:-80vw; padding-top:60px; }
  .mob-close { font-size:1.3rem; }
  .mob-nav li a { padding:10px 16px; font-size:.75rem; }
}

@media(max-width:479px) {
  .mob-nav { width:85vw; max-width:240px; right:-85vw; padding-top:56px; }
  .mob-nav li a { padding:9px 14px; font-size:.7rem; }
}

/* ════════════════════════════════
   BUTTONS
════════════════════════════════ */
.btn {
  display:inline-block; font-family:'Raleway',sans-serif; font-weight:800;
  font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; padding:14px 32px;
  cursor:pointer; border:none; transition:all .3s ease;
}
.btn-green { background:var(--green2); color:#fff; }
.btn-green:hover { background:var(--green); color:#fff; }
.btn-outline-w { background:transparent; color:#fff; border:2px solid #fff; }
.btn-outline-w:hover { background:#fff; color:var(--dark); }
.btn-outline-g { background:transparent; color:var(--green); border:2px solid var(--green); }
.btn-outline-g:hover { background:var(--green); color:#fff; }
.btn-dark { background:var(--dark); color:#fff; }
.btn-dark:hover { background:var(--green); }

/* ════════════════════════════════
   HERO SLIDER
════════════════════════════════ */
.hero { position:relative; height:100vh; min-height:620px; overflow:hidden; }
.hero-slides { position:absolute; inset:0; }
.hero-sl {
  position:absolute; inset:0; opacity:0; transition:opacity 1.2s ease;
  background-size:cover; background-position:center;
}
.hero-sl.on { opacity:1; }
.hero-sl::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(110deg, rgba(5,20,3,.82) 0%, rgba(10,35,8,.65) 55%, rgba(5,20,3,.4) 100%);
}
.hero-cnt {
  position:relative; z-index:2; height:100%;
  display:flex; align-items:center; padding-top:78px;
}
.hero-cnt .container { max-width:750px; }
.hero-tag {
  display:inline-flex; align-items:center; gap:10px;
  font-family:'Raleway',sans-serif; font-size:.7rem; font-weight:700;
  letter-spacing:.28em; text-transform:uppercase; color:var(--green3);
  margin-bottom:22px;
  opacity:0; transform:translateY(18px);
  animation:fadeUp .8s ease .3s forwards;
}
.hero-tag::before { content:''; width:28px; height:2px; background:var(--green3); }
.hero-h1 {
  font-family:'Raleway',sans-serif; font-weight:900;
  font-size:clamp(2.2rem,4.5vw,3.8rem); line-height:1.12; color:#fff;
  margin-bottom:20px;
  opacity:0; transform:translateY(22px);
  animation:fadeUp .8s ease .5s forwards;
}
.hero-h1 em { color:var(--green3); font-style:normal; }
.hero-sub {
  font-size:1.05rem; color:rgba(255,255,255,.75); margin-bottom:36px;
  font-weight:300; max-width:560px;
  opacity:0; transform:translateY(18px);
  animation:fadeUp .8s ease .7s forwards;
}
.hero-btns {
  display:flex; gap:14px; flex-wrap:wrap;
  opacity:0; transform:translateY(14px);
  animation:fadeUp .8s ease .9s forwards;
}
@keyframes fadeUp { to { opacity:1; transform:translateY(0); } }
/* Slide nav */
.hero-dots { position:absolute; bottom:36px; left:50%; transform:translateX(-50%); z-index:3; display:flex; gap:8px; }
.hdot { width:9px; height:9px; border-radius:50%; background:rgba(255,255,255,.35); cursor:pointer; transition:all .3s; }
.hdot.on { background:var(--green3); transform:scale(1.4); }
/* Scroll hint */
.hero-scroll {
  position:absolute; right:34px; bottom:40px; z-index:3;
  display:flex; flex-direction:column; align-items:center; gap:7px;
}
.hero-scroll span {
  font-family:'Raleway',sans-serif; font-size:.6rem; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.55);
  writing-mode:vertical-rl;
}
.scroll-line { width:1px; height:48px; background:linear-gradient(to bottom,var(--green3),transparent); animation:scrollBeat 1.6s ease-in-out infinite; }
@keyframes scrollBeat { 0%,100%{opacity:1;transform:scaleY(1)} 50%{opacity:.4;transform:scaleY(.6)} }

/* ════════════════════════════════
   STATS COUNTER BAND
════════════════════════════════ */
.stats-band { background:var(--green); }
.stats-band .container { display:grid; grid-template-columns:repeat(4,1fr); }
.s-item {
  padding:30px 20px; text-align:center;
  border-right:1px solid rgba(255,255,255,.15);
  display:flex; flex-direction:column; align-items:center;
}
.s-item:last-child { border-right:none; }
.s-num-row { display:flex; align-items:flex-end; justify-content:center; gap:2px; line-height:1; }
.s-num {
  font-family:'Raleway',sans-serif; font-weight:900; font-size:3rem;
  color:#fff;
}
.s-suf { font-family:'Raleway',sans-serif; font-weight:800; font-size:1.8rem; color:var(--green3); }
.s-label { font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.65); margin-top:6px; font-weight:600; }

/* ════════════════════════════════
   CLIENT LOGOS MARQUEE
════════════════════════════════ */
.marquee-sec { background:#fff; padding:48px 0; border-bottom:1px solid var(--border); }
.marquee-hd { text-align:center; margin-bottom:30px; }
.marquee-hd h4 { font-family:'Raleway',sans-serif; font-weight:800; font-size:1.05rem; color:var(--dark); margin-bottom:6px; }
.marquee-hd p { font-size:.82rem; color:var(--gray); max-width:480px; margin:0 auto; }
.marquee-wrap { overflow:hidden; position:relative; }
.marquee-wrap::before,
.marquee-wrap::after { content:''; position:absolute; top:0; bottom:0; width:120px; z-index:2; pointer-events:none; }
.marquee-wrap::before { left:0; background:linear-gradient(to right,#fff,transparent); }
.marquee-wrap::after { right:0; background:linear-gradient(to left,#fff,transparent); }
.marquee-track { display:flex; gap:12px; align-items:center; animation:marqRun 28s linear infinite; width:max-content; }
.marquee-track:hover { animation-play-state:paused; }
@keyframes marqRun { from{transform:translateX(0)} to{transform:translateX(-50%)} }
.cl-pill {
  background:#f5f5f5; border:1px solid var(--border); padding:11px 22px;
  font-family:'Raleway',sans-serif; font-weight:700; font-size:.7rem;
  letter-spacing:.1em; text-transform:uppercase; color:#888;
  white-space:nowrap; transition:all .3s; cursor:default;
}
.cl-pill:hover { background:var(--green2); color:#fff; border-color:var(--green2); }

/* ════════════════════════════════
   SECTION COMMONS
════════════════════════════════ */
.sec { padding:90px 0; }
.sec-sm { padding:60px 0; }
.sec-eyebrow {
  font-family:'Raleway',sans-serif; font-size:.68rem; font-weight:800;
  letter-spacing:.28em; text-transform:uppercase; color:var(--green2);
  display:flex; align-items:center; gap:12px; margin-bottom:12px;
}
.sec-eyebrow::before { content:''; width:24px; height:2px; background:var(--green2); flex-shrink:0; }
.sec-title {
  font-family:'Raleway',sans-serif; font-weight:900;
  font-size:clamp(1.7rem,3vw,2.5rem); color:var(--dark); line-height:1.1;
}
.sec-title em { color:var(--green); font-style:normal; }
.sec-title .wh { color:#fff; }
.sec-hd { margin-bottom:48px; }
.sec-hd.center { text-align:center; }
.sec-hd.center .sec-eyebrow { justify-content:center; }
.sec-hd.center .sec-eyebrow::before { display:none; }

/* Reveal animation */
.rv { opacity:0; transform:translateY(32px); transition:opacity .7s ease, transform .7s ease; }
.rv.vis { opacity:1; transform:translateY(0); }
.rv-l { opacity:0; transform:translateX(-32px); transition:opacity .7s ease, transform .7s ease; }
.rv-l.vis { opacity:1; transform:translateX(0); }
.rv-r { opacity:0; transform:translateX(32px); transition:opacity .7s ease, transform .7s ease; }
.rv-r.vis { opacity:1; transform:translateX(0); }

/* ════════════════════════════════
   ONE-STOP SECTION
════════════════════════════════ */
.onestop { background:var(--lgray); }
.onestop-grid { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
.onestop-lbl {
  display:inline-block; font-family:'Raleway',sans-serif; font-weight:800; font-size:.65rem;
  letter-spacing:.28em; text-transform:uppercase; color:var(--green2); margin-bottom:16px;
}
.onestop-txt p { color:var(--gray); font-size:.92rem; line-height:1.9; margin-bottom:14px; }
.onestop-vis { position:relative; }
.ov-grid { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:260px 210px; gap:8px; }
.ov-cell {
  background-size:cover; background-position:center; position:relative; overflow:hidden;
  cursor:pointer;
}
.ov-cell.tall { grid-row:1/3; }
.ov-cell::before { content:''; position:absolute; inset:0; background:rgba(10,40,8,.35); transition:background .4s; }
.ov-cell:hover::before { background:rgba(10,40,8,.1); }
.ov-cell .ov-lbl {
  position:absolute; bottom:0; left:0; right:0; padding:14px;
  background:linear-gradient(to top,rgba(10,35,8,.85),transparent);
  font-family:'Raleway',sans-serif; font-weight:800; font-size:.7rem;
  letter-spacing:.12em; text-transform:uppercase; color:#fff;
}

/* ════════════════════════════════
   SERVICES GRID
════════════════════════════════ */
.svc-sec { background:#fff; }
.svc-grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:0; background:var(--border);
  border:1px solid var(--border);
}
.svc-card {
  background:#fff; padding:34px 28px; position:relative; overflow:hidden;
  transition:all .35s ease; cursor:pointer; display:block;
  border-bottom:3px solid transparent;
}
.svc-card::before {
  content:''; position:absolute; top:0; left:0; right:0; height:0;
  background:var(--green2); transition:height .35s ease; z-index:0;
}
.svc-card:hover { background:#f6fbf3; border-bottom-color:var(--green2); transform:translateY(-5px); box-shadow:var(--shadow2); z-index:1; }
.svc-icon { width:50px; height:50px; margin-bottom:18px; position:relative; z-index:1; }
.svc-icon svg { width:100%; height:100%; }
.svc-card h3 {
  font-family:'Raleway',sans-serif; font-weight:800; font-size:.88rem;
  letter-spacing:.04em; text-transform:uppercase; color:var(--dark);
  margin-bottom:10px; position:relative; z-index:1;
}
.svc-card p { font-size:.82rem; color:var(--gray); line-height:1.75; position:relative; z-index:1; }
.svc-more {
  display:inline-block; margin-top:14px; font-family:'Raleway',sans-serif; font-weight:800;
  font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--green2);
  transition:all .3s; position:relative; z-index:1;
}
.svc-card:hover .svc-more { letter-spacing:.18em; color:var(--green); }
.svc-cta-row { text-align:center; margin-top:42px; }

/* ════════════════════════════════
   INDUSTRIES SLIDER
════════════════════════════════ */
.ind-sec { background:var(--dark2); }
.ind-sec .sec-title { color:#fff; }
.ind-sec .sec-eyebrow { color:var(--green3); }
.ind-sec .sec-eyebrow::before { background:var(--green3); }
.ind-slider-wrap { position:relative; }
.ind-slides { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:rgba(255,255,255,.05); }
.ind-slide { background:var(--dark2); overflow:hidden; }
.ind-img { height:220px; background-size:cover; background-position:center; transition:transform .5s ease; overflow:hidden; position:relative; }
.ind-slide:hover .ind-img { transform:scale(1.05); }
.ind-img::after { content:''; position:absolute; inset:0; background:rgba(0,0,0,.2); }
.ind-body { padding:22px 20px; }
.ind-body h3 {
  font-family:'Raleway',sans-serif; font-weight:800; font-size:.85rem;
  letter-spacing:.04em; text-transform:uppercase; color:#fff; margin-bottom:8px;
}
.ind-body p { font-size:.8rem; color:rgba(255,255,255,.5); line-height:1.75; margin-bottom:14px; }
.ind-controls { display:flex; align-items:center; justify-content:center; gap:14px; margin-top:36px; }
.ind-btn {
  width:44px; height:44px; border:1px solid rgba(255,255,255,.2); background:rgba(255,255,255,.06);
  color:#fff; font-size:1.1rem; cursor:pointer; transition:all .3s;
  display:flex; align-items:center; justify-content:center;
}
.ind-btn:hover { background:var(--green2); border-color:var(--green2); }
.ind-dots-wrap { display:flex; gap:7px; }
.id-dot { width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,.25); cursor:pointer; transition:all .3s; }
.id-dot.on { background:var(--green3); }

/* ════════════════════════════════
   HOW WE WORK
════════════════════════════════ */
.hww-sec { background:var(--lgray); }
.hww-sec .sec-hd.center p { font-size:.9rem; color:var(--gray); max-width:560px; margin:0 auto; margin-top:10px; }
.hww-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.hww-card { background:#fff; overflow:hidden; transition:all .35s ease; }
.hww-card:hover { box-shadow:var(--shadow2); transform:translateY(-5px); }
.hww-img { height:210px; background-size:cover; background-position:center; overflow:hidden; }
.hww-img-inner { width:100%; height:100%; background-size:cover; background-position:center; transition:transform .5s ease; }
.hww-card:hover .hww-img-inner { transform:scale(1.06); }
.hww-body { padding:26px 24px; }
.hww-num { font-family:'Raleway',sans-serif; font-weight:900; font-size:3rem; color:var(--green2); opacity:.18; line-height:1; margin-bottom:8px; }
.hww-body h3 {
  font-family:'Raleway',sans-serif; font-weight:800; font-size:.88rem;
  text-transform:uppercase; letter-spacing:.06em; color:var(--dark); margin-bottom:10px;
}
.hww-body p { font-size:.82rem; color:var(--gray); line-height:1.8; }

/* ════════════════════════════════
   TESTIMONIALS
════════════════════════════════ */
.testi-sec { background:#fff; }
.testi-wrap { max-width:860px; margin:0 auto; }
.testi-slides { position:relative; min-height:280px; }
.testi-sl { display:none; animation:fadeIn .5s ease; }
.testi-sl.on { display:block; }
@keyframes fadeIn { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:translateY(0)} }
.testi-body { text-align:center; padding:0 20px; }
.testi-quote {
  font-size:5rem; line-height:.7; color:var(--green2); opacity:.2;
  font-family:'Raleway',sans-serif; font-weight:900; margin-bottom:20px;
}
.testi-body p { font-size:.95rem; color:var(--gray); line-height:1.9; font-style:italic; margin-bottom:28px; }
.testi-author { display:flex; align-items:center; justify-content:center; gap:14px; }
.t-ava {
  width:52px; height:52px; border-radius:50%; background:var(--green2);
  display:flex; align-items:center; justify-content:center;
  font-family:'Raleway',sans-serif; font-weight:800; font-size:.78rem; color:#fff; flex-shrink:0;
}
.t-info strong { display:block; font-family:'Raleway',sans-serif; font-weight:800; font-size:.85rem; color:var(--dark); }
.t-info span { font-size:.75rem; color:var(--gray); }
.testi-ctrl { display:flex; align-items:center; justify-content:center; gap:14px; margin-top:32px; }
.t-btn {
  width:40px; height:40px; border:1px solid var(--border); background:#fff;
  cursor:pointer; transition:all .3s; font-size:1rem; color:var(--dark);
  display:flex; align-items:center; justify-content:center;
}
.t-btn:hover { background:var(--green2); color:#fff; border-color:var(--green2); }
.t-dots { display:flex; gap:7px; }
.t-dot { width:8px; height:8px; border-radius:50%; background:var(--border); cursor:pointer; transition:all .3s; }
.t-dot.on { background:var(--green); }

/* ════════════════════════════════
   CTA BANNER
════════════════════════════════ */
.cta-band {
  background:var(--green);
  background-image:repeating-linear-gradient(-45deg,transparent,transparent 25px,rgba(255,255,255,.025) 25px,rgba(255,255,255,.025) 26px);
  padding:70px 0;
}
.cta-band-inner { display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.cta-band h2 { font-family:'Raleway',sans-serif; font-weight:900; font-size:clamp(1.5rem,2.8vw,2.2rem); color:#fff; margin-bottom:6px; }
.cta-band p { color:rgba(255,255,255,.75); font-size:.9rem; }

/* ════════════════════════════════
   FOOTER
════════════════════════════════ */
footer { background:#111; color:rgba(255,255,255,.65); padding:70px 0 0; }
.ft-grid { display:grid; grid-template-columns:2.2fr 1fr 1fr 1.6fr; gap:40px; }
.ft-brand .logo-txt .l1 { color:#fff; }
.ft-brand .logo-txt .l2 { color:rgba(255,255,255,.4); }
.ft-tagline { font-size:.82rem; color:rgba(255,255,255,.45); line-height:1.7; margin:16px 0 20px; max-width:260px; }
.ft-social { display:flex; gap:8px; }
.ft-social a {
  width:36px; height:36px; border:1px solid rgba(255,255,255,.12);
  display:flex; align-items:center; justify-content:center;
  font-family:'Raleway',sans-serif; font-weight:800; font-size:.72rem; color:rgba(255,255,255,.5);
  transition:all .3s;
}
.ft-social a:hover { border-color:var(--green2); color:var(--green3); }
.ft-col h5 {
  font-family:'Raleway',sans-serif; font-weight:800; font-size:.72rem;
  letter-spacing:.2em; text-transform:uppercase; color:#fff; margin-bottom:18px;
  padding-bottom:10px; border-bottom:2px solid var(--green2); display:inline-block;
}
.ft-col ul li a { display:block; font-size:.8rem; color:rgba(255,255,255,.5); padding:5px 0; transition:all .3s; }
.ft-col ul li a:hover { color:var(--green3); padding-left:6px; }
.ft-contact-list li { display:flex; gap:10px; margin-bottom:12px; align-items:flex-start; }
.ft-contact-list .ic { color:var(--green2); font-size:.85rem; flex-shrink:0; margin-top:2px; }
.ft-contact-list p, .ft-contact-list a { font-size:.8rem; color:rgba(255,255,255,.5); line-height:1.5; }
.ft-contact-list a:hover { color:var(--green3); }
.ft-bottom {
  border-top:1px solid rgba(255,255,255,.06); margin-top:50px; padding:18px 0;
}
.ft-bottom .container { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; }
.ft-bottom p { font-size:.75rem; color:rgba(255,255,255,.35); }

/* Back to top */
.btt {
  position:fixed; bottom:28px; right:28px; z-index:500;
  width:44px; height:44px; background:var(--green2); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:1.1rem;
  opacity:0; visibility:hidden; transition:all .3s;
  box-shadow:0 4px 16px rgba(0,0,0,.2);
}
.btt.on { opacity:1; visibility:visible; }
.btt:hover { background:var(--green); transform:translateY(-3px); }

/* ════════════════════════════════
   PAGE HERO (inner pages)
════════════════════════════════ */
.pg-hero {
  padding:110px 0 60px;
  background:linear-gradient(130deg,#071a05 0%,#0e2a0b 45%,#071808 100%);
  text-align:center; position:relative; overflow:hidden;
}
.pg-hero::before {
  content:''; position:absolute; inset:0;
  background-image:repeating-linear-gradient(-45deg,transparent,transparent 22px,rgba(141,198,63,.025) 22px,rgba(141,198,63,.025) 23px);
}
.pg-hero-in { position:relative; z-index:1; }
.pg-hero-in .sec-eyebrow { justify-content:center; font-size:.68rem; }
.pg-hero-in .sec-eyebrow::before { display:none; }
.pg-hero-in h1 { font-family:'Raleway',sans-serif; font-weight:900; font-size:clamp(2rem,4.5vw,3.2rem); color:#fff; margin:10px 0 14px; }
.breadcrumb { display:flex; align-items:center; justify-content:center; gap:8px; font-size:.78rem; color:rgba(255,255,255,.45); }
.breadcrumb a { color:var(--green3); }
.breadcrumb span { color:rgba(255,255,255,.25); }

/* ════════════════════════════════
   ABOUT PAGE
════════════════════════════════ */
.abt-grid { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
.abt-img-wrap { position:relative; }
.abt-img-main { width:100%; aspect-ratio:4/3; background-size:cover; background-position:center; }
.abt-img-float {
  position:absolute; bottom:-28px; right:-28px; width:180px; aspect-ratio:1;
  background-size:cover; background-position:center; border:6px solid #fff; box-shadow:var(--shadow2);
}
.abt-badge {
  position:absolute; top:-20px; left:-20px; background:var(--green2); padding:20px 16px; text-align:center; min-width:90px;
}
.abt-badge strong { display:block; font-family:'Raleway',sans-serif; font-weight:900; font-size:2rem; color:#fff; line-height:1; }
.abt-badge span { display:block; font-size:.6rem; font-family:'Raleway',sans-serif; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.8); margin-top:4px; }
.abt-txt p { font-size:.9rem; color:var(--gray); line-height:1.9; margin-bottom:14px; }
.abt-list { margin:18px 0; }
.abt-list li { display:flex; align-items:center; gap:10px; font-family:'Raleway',sans-serif; font-weight:700; font-size:.82rem; color:var(--dark); padding:8px 0; border-bottom:1px solid var(--border); }
.abt-list li::before { content:'✓'; color:var(--green2); font-size:.85rem; }
.vals-sec { background:var(--lgray); padding:80px 0; }
.vals-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:40px; }
.val-card { background:#fff; padding:28px 22px; text-align:center; border-bottom:3px solid transparent; transition:all .35s; }
.val-card:hover { border-bottom-color:var(--green2); box-shadow:var(--shadow); }
.val-n { font-family:'Raleway',sans-serif; font-weight:900; font-size:2.5rem; color:var(--green2); opacity:.18; line-height:1; }
.val-card h3 { font-family:'Raleway',sans-serif; font-weight:800; font-size:.82rem; text-transform:uppercase; letter-spacing:.06em; color:var(--dark); margin:10px 0 8px; }
.val-card p { font-size:.8rem; color:var(--gray); line-height:1.7; }
.strip-band { background:var(--green); }
.strip-grid { display:grid; grid-template-columns:repeat(4,1fr); }
.strip-item { padding:28px 20px; text-align:center; border-right:1px solid rgba(255,255,255,.15); }
.strip-item:last-child { border-right:none; }
.strip-num { font-family:'Raleway',sans-serif; font-weight:900; font-size:2.8rem; color:#fff; line-height:1; }
.strip-lbl { font-size:.65rem; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.65); margin-top:5px; font-weight:600; }

/* ════════════════════════════════
   SERVICES PAGE
════════════════════════════════ */
.svc-det { padding:80px 0; border-top:1px solid var(--border); }
.svc-det:first-child { border-top:none; }
.svc-det-grid { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.svc-det-grid.rev { direction:rtl; }
.svc-det-grid.rev > * { direction:ltr; }
.svc-det-img { aspect-ratio:16/10; background-size:cover; background-position:center; overflow:hidden; position:relative; }
.svc-det-img::after { content:''; position:absolute; inset:0; background:rgba(0,0,0,.08); transition:opacity .4s; }
.svc-det-img:hover::after { opacity:0; }
.svc-big-num { font-family:'Raleway',sans-serif; font-weight:900; font-size:5.5rem; color:var(--green2); opacity:.07; line-height:1; margin-bottom:-1.5rem; }
.svc-det-txt h2 { font-family:'Raleway',sans-serif; font-weight:900; font-size:1.65rem; color:var(--dark); margin-bottom:14px; }
.svc-det-txt p { font-size:.88rem; color:var(--gray); line-height:1.9; margin-bottom:10px; }
.svc-pts { margin-top:14px; }
.svc-pts li { display:flex; gap:10px; align-items:flex-start; font-size:.84rem; color:var(--dark); padding:7px 0; border-bottom:1px solid var(--border); }
.svc-pts li::before { content:'▸'; color:var(--green2); font-size:.7rem; margin-top:3px; flex-shrink:0; }
.sw-band { background:var(--dark2); padding:60px 0; }
.sw-band h2 { font-family:'Raleway',sans-serif; font-weight:900; color:#fff; font-size:1.5rem; text-align:center; margin-bottom:8px; }
.sw-band h2 em { color:var(--green3); font-style:normal; }
.sw-band p { text-align:center; color:rgba(255,255,255,.45); font-size:.82rem; margin-bottom:30px; }
.sw-pills { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; }
.sw-pill {
  border:1px solid rgba(255,255,255,.1); background:rgba(255,255,255,.04);
  font-family:'Raleway',sans-serif; font-weight:700; font-size:.72rem; letter-spacing:.07em;
  color:rgba(255,255,255,.65); padding:9px 18px; transition:all .3s; cursor:default;
}
.sw-pill:hover { background:var(--green2); color:#fff; border-color:var(--green2); }

/* ════════════════════════════════
   PROJECTS PAGE
════════════════════════════════ */
.prj-filter { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:36px; }
.prj-fbtn {
  font-family:'Raleway',sans-serif; font-weight:700; font-size:.7rem;
  letter-spacing:.12em; text-transform:uppercase; padding:10px 20px;
  border:1px solid var(--border); background:#fff; color:var(--gray);
  cursor:pointer; transition:all .3s;
}
.prj-fbtn.on, .prj-fbtn:hover { background:var(--green2); color:#fff; border-color:var(--green2); }
.prj-masonry { display:grid; grid-template-columns:repeat(3,1fr); gap:3px; }
.prj-card { position:relative; overflow:hidden; aspect-ratio:4/3; cursor:pointer; }
.prj-card.wide { grid-column:span 2; aspect-ratio:16/7; }
.prj-img { position:absolute; inset:0; background-size:cover; background-position:center; transition:transform .6s ease; }
.prj-card:hover .prj-img { transform:scale(1.07); }
.prj-ov {
  position:absolute; inset:0;
  background:linear-gradient(to top,rgba(5,20,3,.9) 0%,rgba(5,20,3,.2) 55%,transparent 100%);
  transition:all .4s;
}
.prj-card:hover .prj-ov { background:linear-gradient(to top,rgba(5,20,3,.96) 0%,rgba(5,20,3,.55) 65%,rgba(5,20,3,.2) 100%); }
.prj-info { position:absolute; bottom:0; left:0; right:0; padding:22px 20px; }
.prj-cat { font-family:'Raleway',sans-serif; font-size:.62rem; font-weight:800; letter-spacing:.22em; text-transform:uppercase; color:var(--green3); margin-bottom:4px; }
.prj-info h3 { font-family:'Raleway',sans-serif; font-weight:800; font-size:.95rem; color:#fff; line-height:1.3; }
.prj-plus {
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%) scale(0);
  width:52px; height:52px; border:2px solid var(--green3);
  display:flex; align-items:center; justify-content:center;
  font-size:1.6rem; color:var(--green3); transition:transform .3s ease;
}
.prj-card:hover .prj-plus { transform:translate(-50%,-50%) scale(1); }
.clients-tbl-sec { background:var(--lgray); padding:70px 0; }
.cl-tbl { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--border); margin-top:36px; }
.cl-tbl-item { background:#fff; padding:22px 16px; text-align:center; transition:background .3s; }
.cl-tbl-item:hover { background:#f5fbf0; }
.cl-tbl-item .cl-name { font-family:'Raleway',sans-serif; font-weight:800; font-size:.78rem; color:#555; letter-spacing:.06em; text-transform:uppercase; }
.cl-tbl-item .cl-type { font-size:.7rem; color:#aaa; margin-top:4px; }

/* ════════════════════════════════
   CONTACT PAGE
════════════════════════════════ */
.cnt-grid { display:grid; grid-template-columns:1fr 1.6fr; gap:60px; }
.cnt-info-blk { margin-bottom:28px; }
.cnt-info-blk h4 { font-family:'Raleway',sans-serif; font-weight:800; font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; color:var(--dark); margin-bottom:6px; }
.cnt-info-blk p, .cnt-info-blk a { font-size:.88rem; color:var(--gray); line-height:1.7; display:block; }
.cnt-info-blk a:hover { color:var(--green); }
.cnt-form-hd h2 { font-family:'Raleway',sans-serif; font-weight:900; font-size:1.7rem; color:var(--dark); margin-bottom:6px; }
.cnt-form-hd p { font-size:.85rem; color:var(--gray); margin-bottom:28px; }
.frm-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.fg { display:flex; flex-direction:column; gap:5px; margin-bottom:14px; }
.fg label { font-family:'Raleway',sans-serif; font-weight:700; font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--dark); }
.fg input, .fg select, .fg textarea {
  border:1px solid var(--border); padding:13px 16px; font-size:.88rem; color:var(--dark);
  transition:border-color .3s; background:#fff; width:100%;
}
.fg input:focus, .fg select:focus, .fg textarea:focus { border-color:var(--green2); }
.fg textarea { min-height:130px; resize:vertical; }
.map-frame { width:100%; height:280px; border:none; filter:grayscale(20%); margin-top:30px; }

/* ════════════════════════════════
   RESPONSIVE DESIGN
════════════════════════════════ */

/* ── Tablets & Large Screens (1024px - 1199px) ── */
@media(max-width:1199px) {
  .container { padding:0 24px; }
  .hdr-inner { padding:0 24px; }
  .ft-grid { grid-template-columns:1fr 1fr; gap:32px; }
  .onestop-grid { grid-template-columns:1fr; gap:40px; }
  .abt-grid { grid-template-columns:1fr; gap:40px; }
  .svc-det-grid { grid-template-columns:1fr; gap:32px; }
  .svc-det-grid.rev { direction:ltr; }
  .cnt-grid { grid-template-columns:1fr; gap:40px; }
  .sec-title { font-size:clamp(1.5rem,3vw,2.2rem); }
}

/* ── Tablets (768px - 1023px) ── */
@media(max-width:1023px) {
  html { font-size:15px; }
  .container { padding:0 20px; }
  .hdr-inner { padding:0 20px; height:70px; }
  .nav, .hdr-cta { display:none; }
  .burger { display:flex; }
  .logo-txt .l1 { font-size:.85rem; }
  .logo-txt .l2 { font-size:.52rem; }
  
  .hero { min-height:500px; }
  .hero-h1 { font-size:clamp(1.8rem,5vw,2.8rem); }
  .hero-sub { font-size:.95rem; }
  .hero-btns { flex-direction:column; }
  .btn { padding:12px 24px; font-size:.68rem; }
  
  .stats-band .container { grid-template-columns:repeat(2,1fr); }
  .s-item { padding:24px 16px; }
  .s-item:nth-child(2), .s-item:nth-child(4) { border-right:none; }
  
  .svc-grid { grid-template-columns:repeat(2,1fr); }
  .svc-card { padding:26px 20px; }
  
  .ind-slides { grid-template-columns:1fr; }
  .ind-img { height:200px; }
  
  .hww-grid { grid-template-columns:1fr 1fr; gap:18px; }
  .hww-card { }
  
  .ov-grid { grid-template-columns:1fr; grid-template-rows:auto; }
  .ov-cell.tall { grid-row:auto; }
  .onestop-grid { gap:30px; }
  
  .vals-grid { grid-template-columns:repeat(2,1fr); gap:14px; }
  .val-card { padding:20px 16px; }
  
  .strip-grid { grid-template-columns:repeat(2,1fr); }
  .strip-item { padding:20px 14px; }
  .strip-num { font-size:2.2rem; }
  
  .prj-masonry { grid-template-columns:1fr 1fr; gap:2px; }
  .prj-card.wide { grid-column:span 1; aspect-ratio:4/3; }
  
  .cl-tbl { grid-template-columns:repeat(2,1fr); }
  
  .frm-row { grid-template-columns:1fr; }
  
  .map-frame { height:240px; }
  
  .sec { padding:60px 0; }
  .sec-sm { padding:45px 0; }
  
  .cta-band { padding:50px 0; }
  .cta-band h2 { font-size:clamp(1.3rem,2.5vw,1.8rem); }
  
  footer { padding:50px 0 0; }
  
  .hero-scroll { display:none; }
}

/* ── Small Tablets (600px - 767px) ── */
@media(max-width:767px) {
  html { font-size:14px; }
  .container { padding:0 16px; }
  .hdr-inner { padding:0 16px; height:64px; }
  
  .hero { min-height:420px; padding-top:64px; }
  .hero-h1 { font-size:clamp(1.5rem,4vw,2.2rem); }
  .hero-sub { font-size:.9rem; margin-bottom:24px; }
  .hero-btns { flex-direction:column; gap:10px; }
  .hero-tag { font-size:.6rem; margin-bottom:16px; }
  .hero-tag::before { width:20px; }
  .btn { padding:11px 20px; font-size:.65rem; }
  
  .stats-band .container { grid-template-columns:1fr 1fr; }
  .s-item { padding:18px 12px; border-right:none !important; border-bottom:1px solid rgba(255,255,255,.15); }
  .s-item:nth-child(2n) { border-right:none; }
  .s-num { font-size:2.2rem; }
  .s-suf { font-size:1.4rem; }
  .s-label { font-size:.6rem; }
  
  .marquee-sec { padding:36px 0; }
  .marquee-hd { margin-bottom:20px; }
  .marquee-wrap::before,
  .marquee-wrap::after { width:80px; }
  
  .sec { padding:45px 0; }
  .sec-sm { padding:35px 0; }
  .sec-title { font-size:clamp(1.3rem,3vw,1.8rem); }
  .sec-eyebrow { font-size:.62rem; }
  .sec-hd { margin-bottom:32px; }
  
  .svc-grid { grid-template-columns:1fr; }
  .svc-card { padding:22px 18px; }
  .svc-icon { width:40px; height:40px; }
  
  .hww-grid { grid-template-columns:1fr; }
  .hww-card { }
  .hww-img { height:180px; }
  .hww-body { padding:20px 18px; }
  .hww-num { font-size:2.2rem; }
  
  .ind-slides { grid-template-columns:1fr; }
  .ind-img { height:180px; }
  .ind-body { padding:16px 14px; }
  .ind-controls { margin-top:24px; }
  .ind-btn { width:40px; height:40px; }
  
  .onestop-grid { gap:24px; }
  .onestop-txt h2 { font-size:1.4rem; }
  .onestop-lbl { font-size:.6rem; }
  .ov-grid { grid-template-columns:1fr; gap:6px; }
  .ov-cell { aspect-ratio:16/9; }
  
  .vals-grid { grid-template-columns:1fr; gap:12px; }
  .val-card { padding:18px 14px; }
  .val-n { font-size:2rem; }
  
  .strip-grid { grid-template-columns:1fr; }
  .strip-item { padding:16px 12px; border-right:none; border-bottom:1px solid rgba(255,255,255,.15); }
  .strip-item:last-child { border-bottom:none; }
  .strip-num { font-size:2rem; }
  
  .prj-masonry { grid-template-columns:1fr; gap:2px; }
  .prj-card { aspect-ratio:4/3; }
  .prj-info { padding:16px 14px; }
  .prj-cat { font-size:.56rem; }
  .prj-info h3 { font-size:.85rem; }
  
  .cl-tbl { grid-template-columns:1fr; }
  .cl-tbl-item { padding:16px 12px; }
  
  .testi-wrap { max-width:100%; }
  .testi-slides { min-height:220px; }
  .testi-body { padding:0 12px; }
  .testi-quote { font-size:3rem; }
  .testi-body p { font-size:.88rem; }
  
  .cta-band { padding:40px 0; }
  .cta-band-inner { flex-direction:column; text-align:center; gap:16px; }
  .cta-band h2 { font-size:clamp(1.1rem,2.5vw,1.5rem); margin-bottom:4px; }
  .cta-band p { font-size:.8rem; }
  
  .pg-hero { padding:90px 0 45px; }
  .pg-hero-in h1 { font-size:clamp(1.5rem,4vw,2rem); }
  .breadcrumb { font-size:.72rem; gap:6px; }
  
  .abt-grid { gap:30px; }
  .abt-img-float { width:140px; bottom:-20px; right:-20px; }
  .abt-badge { padding:16px 12px; top:-15px; left:-15px; }
  .abt-badge strong { font-size:1.6rem; }
  .abt-badge span { font-size:.55rem; }
  .abt-txt h2 { font-size:1.4rem; }
  .abt-txt p { font-size:.85rem; }
  .abt-list li { font-size:.78rem; }
  
  .svc-det { padding:60px 0; }
  .svc-det-grid { gap:24px; }
  .svc-big-num { font-size:3.5rem; }
  .svc-det-txt h2 { font-size:1.4rem; }
  .svc-det-txt p { font-size:.82rem; }
  .svc-pts li { font-size:.78rem; }
  
  .sw-band { padding:45px 0; }
  .sw-band h2 { font-size:1.3rem; }
  .sw-band p { font-size:.76rem; }
  .sw-pills { gap:6px; }
  .sw-pill { font-size:.65rem; padding:7px 14px; }
  
  .cnt-grid { gap:30px; }
  .cnt-form-hd h2 { font-size:1.4rem; }
  .cnt-info-blk p, .cnt-info-blk a { font-size:.82rem; }
  .fg input, .fg select, .fg textarea { padding:11px 14px; font-size:.82rem; }
  .map-frame { height:200px; }
  
  footer { padding:40px 0 0; }
  .ft-grid { grid-template-columns:1fr; gap:24px; }
  .ft-col h5 { font-size:.65rem; }
  .ft-col ul li a { font-size:.75rem; }
  .ft-bottom { margin-top:36px; padding:14px 0; }
  .ft-bottom p { font-size:.7rem; }
  
  .btt { width:40px; height:40px; font-size:.95rem; bottom:16px; right:16px; }
}

/* ── Mobile (480px - 599px) ── */
@media(max-width:599px) {
  html { font-size:13px; }
  .container { padding:0 14px; }
  .hdr-inner { padding:0 14px; height:60px; }
  
  .hero { min-height:360px; padding-top:60px; }
  .hero-h1 { font-size:clamp(1.3rem,3.5vw,1.8rem); line-height:1.1; }
  .hero-sub { font-size:.85rem; margin-bottom:20px; }
  .hero-tag { margin-bottom:12px; }
  .hero-cnt .container { max-width:100%; }
  .btn { padding:10px 18px; font-size:.62rem; width:100%; text-align:center; }
  .hero-btns { gap:8px; }
  
  .stats-band .container { grid-template-columns:1fr 1fr; }
  .s-item { padding:14px 10px; }
  .s-num { font-size:1.8rem; }
  .s-suf { font-size:1.1rem; }
  .s-label { font-size:.55rem; }
  
  .marquee-hd h4 { font-size:.95rem; }
  .marquee-hd p { font-size:.75rem; }
  .cl-pill { padding:9px 16px; font-size:.65rem; }
  
  .sec { padding:36px 0; }
  .sec-sm { padding:28px 0; }
  .sec-title { font-size:clamp(1.2rem,2.8vw,1.6rem); }
  .sec-eyebrow { font-size:.58rem; gap:8px; }
  .sec-eyebrow::before { width:16px; }
  .sec-hd { margin-bottom:24px; }
  
  .svc-card { padding:18px 14px; }
  .svc-icon { width:36px; height:36px; margin-bottom:12px; }
  .svc-card h3 { font-size:.8rem; }
  .svc-card p { font-size:.75rem; }
  .svc-more { font-size:.62rem; }
  
  .hww-card { }
  .hww-img { height:150px; }
  .hww-body { padding:16px 14px; }
  .hww-num { font-size:1.8rem; }
  .hww-body h3 { font-size:.8rem; }
  .hww-body p { font-size:.75rem; }
  
  .ind-img { height:150px; }
  .ind-body h3 { font-size:.78rem; }
  .ind-body p { font-size:.72rem; }
  
  .onestop-txt h2 { font-size:1.2rem; }
  .onestop-txt p { font-size:.82rem; }
  .ov-cell { aspect-ratio:16/10; }
  .ov-lbl { font-size:.65rem; padding:10px; }
  
  .val-card { padding:14px 10px; }
  .val-n { font-size:1.6rem; }
  .val-card h3 { font-size:.75rem; }
  .val-card p { font-size:.72rem; }
  
  .strip-num { font-size:1.6rem; }
  .strip-lbl { font-size:.6rem; }
  
  .prj-info { padding:12px 10px; }
  .prj-cat { font-size:.5rem; }
  .prj-info h3 { font-size:.75rem; }
  .prj-plus { width:44px; height:44px; font-size:1.3rem; }
  
  .testi-slides { min-height:200px; }
  .testi-quote { font-size:2.4rem; margin-bottom:14px; }
  .testi-body p { font-size:.82rem; }
  .t-ava { width:44px; height:44px; font-size:.7rem; }
  .t-info strong { font-size:.78rem; }
  .t-info span { font-size:.68rem; }
  
  .cta-band { padding:32px 0; background-size:auto; }
  .cta-band h2 { font-size:clamp(1rem,2.2vw,1.3rem); margin-bottom:2px; }
  .cta-band p { font-size:.75rem; }
  
  .pg-hero { padding:70px 0 35px; }
  .pg-hero-in h1 { font-size:clamp(1.3rem,3.5vw,1.7rem); }
  
  .abt-img-main { aspect-ratio:3/2; }
  .abt-img-float { width:110px; bottom:-16px; right:-16px; border-width:4px; }
  .abt-badge { padding:12px 10px; top:-12px; left:-12px; min-width:75px; }
  .abt-badge strong { font-size:1.4rem; }
  .abt-txt h2 { font-size:1.2rem; }
  .abt-list li { font-size:.74rem; padding:6px 0; }
  
  .svc-det { padding:45px 0; }
  .svc-big-num { font-size:2.6rem; margin-bottom:-1rem; }
  .svc-det-txt h2 { font-size:1.2rem; }
  .svc-det-txt p { font-size:.78rem; }
  .svc-pts li { font-size:.72rem; }
  
  .sw-band h2 { font-size:1.1rem; }
  .sw-band p { font-size:.7rem; }
  .sw-pill { font-size:.6rem; padding:6px 12px; }
  
  .cnt-form-hd h2 { font-size:1.2rem; }
  .cnt-form-hd p { font-size:.8rem; }
  .fg label { font-size:.62rem; }
  .fg input, .fg select, .fg textarea { padding:10px 12px; font-size:.78rem; }
  .map-frame { height:180px; }
  
  .ft-col h5 { font-size:.6rem; }
  .ft-tagline { font-size:.75rem; }
  .ft-social { gap:6px; }
  .ft-social a { width:32px; height:32px; font-size:.65rem; }
  
  .btt { width:36px; height:36px; font-size:.9rem; }
}

/* ── Extra Small Phones (< 480px) ── */
@media(max-width:479px) {
  html { font-size:12.5px; }
  .container { padding:0 12px; }
  .hdr-inner { padding:0 12px; height:56px; }
  
  .hero { min-height:300px; padding-top:56px; }
  .hero-h1 { font-size:clamp(1.1rem,3vw,1.6rem); }
  .hero-sub { font-size:.8rem; margin-bottom:16px; }
  .hero-btns { flex-direction:column; }
  .btn { padding:9px 16px; font-size:.6rem; }
  
  .stats-band .container { grid-template-columns:1fr; }
  .s-item { padding:12px 10px; border-right:none; border-bottom:1px solid rgba(255,255,255,.15); }
  .s-item:last-child { border-bottom:none; }
  .s-num { font-size:1.5rem; }
  .s-suf { font-size:.9rem; }
  .s-label { font-size:.52rem; }
  
  .sec { padding:28px 0; }
  .sec-title { font-size:clamp(1.1rem,2.5vw,1.5rem); }
  .sec-eyebrow { font-size:.55rem; }
  .sec-hd { margin-bottom:20px; }
  
  .svc-card { padding:14px 10px; }
  .svc-icon { width:32px; height:32px; margin-bottom:8px; }
  .svc-card h3 { font-size:.75rem; }
  .svc-card p { font-size:.7rem; }
  
  .hww-img { height:130px; }
  .hww-body { padding:12px 10px; }
  .hww-num { font-size:1.5rem; }
  
  .onestop-txt h2 { font-size:1.1rem; }
  .ov-cell { aspect-ratio:3/2; }
  
  .strip-num { font-size:1.4rem; }
  
  .testi-quote { font-size:2rem; }
  .testi-body p { font-size:.76rem; }
  
  .cta-band { padding:24px 0; }
  .cta-band h2 { font-size:clamp(.95rem,2vw,1.2rem); }
  .cta-band p { font-size:.7rem; }
  
  .pg-hero { padding:60px 0 30px; }
  .pg-hero-in h1 { font-size:clamp(1.1rem,3vw,1.5rem); }
  
  .abt-badge { padding:10px 8px; top:-10px; left:-10px; }
  .abt-badge strong { font-size:1.2rem; }
  .abt-txt h2 { font-size:1.1rem; }
  
  .svc-det { padding:36px 0; }
  .svc-big-num { font-size:2rem; margin-bottom:-.8rem; }
  .svc-det-txt h2 { font-size:1.1rem; }
  
  .btt { width:34px; height:34px; font-size:.85rem; bottom:12px; right:12px; }
}

/* ════════════════════════════════
   MOTION LAYER — cursor, tilt, floats, stripes
════════════════════════════════ */
.cursor-dot, .cursor-ring {
  position:fixed; top:0; left:0; pointer-events:none; z-index:9998;
  border-radius:50%; transform:translate(-50%,-50%); mix-blend-mode:difference;
}
.cursor-dot { width:6px; height:6px; background:#5aab3f; }
.cursor-ring {
  width:34px; height:34px; border:1.5px solid rgba(90,171,63,.65);
  transition:width .3s ease, height .3s ease, border-color .3s ease, background .3s ease;
}
.cursor-ring.big { width:64px; height:64px; background:rgba(90,171,63,.1); border-color:#5aab3f; }
.cursor-ring.dot-mode { width:10px; height:10px; background:#5aab3f; border-color:#5aab3f; }
@media (hover:none), (max-width:900px) { .cursor-dot,.cursor-ring { display:none !important; } }
html.has-cursor, html.has-cursor a, html.has-cursor button, html.has-cursor input,
html.has-cursor textarea, html.has-cursor select, html.has-cursor .prj-card { cursor:none !important; }

/* idle floating accents */
.abt-badge, .abt-img-float { animation:floatY 4.4s ease-in-out infinite; }
.abt-img-float { animation-delay:.7s; }
@keyframes floatY { 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-10px); } }

/* moving diagonal stripes on CTA band */
@keyframes stripeMove { to { background-position:52px 0; } }
.cta-band { background-position:0 0; animation:stripeMove 3.4s linear infinite; }

/* magnetic / tilt targets */
.btn, .hdr-cta, .prj-plus, .svc-card, .val-card, .hww-card, .cl-tbl-item, .prj-card, .ind-img, .abt-img-main {
  will-change:transform;
}
.svc-card, .val-card, .hww-card { transform-style:preserve-3d; }

/* stat pop */
.s-item { will-change:transform; }

/* scroll progress bar */
#scrollProg {
  position:fixed; top:0; left:0; height:3px; width:0%; z-index:1200;
  background:linear-gradient(90deg,#3a7d2c,#8dc63f); transition:width .05s linear;
}

/* marquee hover speed cue */
.marquee-track { transition:filter .3s ease; }
