*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --navy:#0A1628;--blue:#1B4FD8;--blue-light:#2563EB;--blue-bright:#3B82F6;
  --sky:#E8F0FE;--sky-mid:#DBEAFE;--white:#ffffff;
  --gray-50:#F8FAFC;--gray-100:#F1F5F9;--gray-200:#E2E8F0;
  --gray-400:#94A3B8;--gray-600:#475569;--gray-800:#1E293B;
  --accent:#0EA5E9;--green:#10B981;
  --font-d:'Barlow Condensed',sans-serif;--font-b:'Barlow',sans-serif;
  --nav-h:72px;
  --shadow-sm:0 1px 3px rgba(0,0,0,.08);
  --shadow-md:0 4px 16px rgba(0,0,0,.10);
  --shadow-lg:0 12px 40px rgba(0,0,0,.13);
}
html{scroll-behavior:smooth}
body{font-family:var(--font-b);background:var(--white);color:var(--gray-800);overflow-x:hidden}

/* ── NAV ── */
.nav{
  position:fixed;top:0;left:0;width:100%;height:var(--nav-h);
  background:rgba(255,255,255,.97);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--gray-200);
  display:flex;align-items:center;justify-content:space-between;
  padding:0 48px;z-index:1000;transition:box-shadow .3s
}
.nav.scrolled{box-shadow:var(--shadow-md)}
.nav-logo{display:flex;align-items:center;gap:10px;text-decoration:none;cursor:pointer}
.nav-links{display:flex;align-items:center;gap:4px}
.nav-links a{
  font-size:14px;font-weight:600;color:var(--gray-600);
  text-decoration:none;padding:8px 14px;border-radius:6px;
  transition:color .2s,background .2s;letter-spacing:.3px;cursor:pointer
}
.nav-links a:hover,.nav-links a.active{color:var(--blue);background:var(--sky)}
.nav-cta{
  background:var(--blue)!important;color:var(--white)!important;
  padding:10px 22px!important;border-radius:8px!important;
  transition:background .2s,transform .15s!important
}
.nav-cta:hover{background:var(--blue-light)!important;transform:translateY(-1px)!important}
.menu-toggle{display:none;background:none;border:none;cursor:pointer;padding:8px}
.menu-toggle span{display:block;width:24px;height:2px;background:var(--navy);margin:5px 0;border-radius:2px;transition:all .3s}

/* ── PAGES ── */
.page{display:none;padding-top:var(--nav-h);min-height:100vh;min-height:100dvh}
.page.active{display:block}

/* ════════════════════════════
   HOME PAGE SECTIONS
════════════════════════════ */

/* HERO */
.hero{
  position:relative;min-height:calc(100vh - var(--nav-h));min-height:calc(100dvh - var(--nav-h));
  overflow:hidden;display:flex;align-items:center;
  background:
    linear-gradient(135deg,rgba(10,22,40,.3) 0%,rgba(10,22,40,.5) 100%),
    url('../assets/video/hero-poster.jpg') center/cover no-repeat,
    var(--navy)
}
.hero-video{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;z-index:0;opacity:1
}
.hero-overlay{
  position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(90deg, rgba(10,22,40,.55) 0%, rgba(10,22,40,.30) 50%, rgba(10,22,40,.15) 100%),
    linear-gradient(180deg, rgba(10,22,40,.25) 0%, rgba(10,22,40,0) 30%, rgba(10,22,40,0) 70%, rgba(10,22,40,.25) 100%);
}
.hero-inner{
  position:relative;z-index:2;max-width:1280px;margin:0 auto;
  padding:80px 48px;width:100%;
  display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center
}
.hero-left{}
.hero-tag{
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(59,130,246,.18);border:1px solid rgba(59,130,246,.35);
  color:var(--accent);font-size:11px;font-weight:700;
  letter-spacing:2px;text-transform:uppercase;
  padding:6px 14px;border-radius:20px;margin-bottom:24px
}
.hero-tag::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--accent);animation:blink 2s infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.3}}
.hero h1{
  font-family:var(--font-d);font-size:clamp(44px,5.5vw,72px);font-weight:900;
  color:var(--white);line-height:1.04;letter-spacing:-1px;margin-bottom:24px
}
.hero h1 em{font-style:normal;color:var(--accent)}
.hero-sub{
  font-size:18px;line-height:1.72;color:rgba(255,255,255,.68);
  margin-bottom:36px;max-width:500px
}
.hero-btns{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:48px}
.btn-primary{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--blue);color:var(--white);
  font-family:var(--font-b);font-size:15px;font-weight:700;
  padding:14px 28px;border-radius:8px;text-decoration:none;
  transition:all .2s;border:none;cursor:pointer;letter-spacing:.3px
}
.btn-primary:hover{background:var(--blue-light);transform:translateY(-2px);box-shadow:0 8px 24px rgba(27,79,216,.4)}
.btn-outline-white{
  display:inline-flex;align-items:center;gap:8px;
  background:transparent;color:var(--white);
  font-family:var(--font-b);font-size:15px;font-weight:600;
  padding:14px 28px;border-radius:8px;text-decoration:none;
  border:2px solid rgba(255,255,255,.35);transition:all .2s;cursor:pointer
}
.btn-outline-white:hover{border-color:var(--white);background:rgba(255,255,255,.08);transform:translateY(-2px)}
.hero-explore{
  display:flex;align-items:center;gap:8px;color:rgba(255,255,255,.45);
  font-size:13px;font-weight:500;letter-spacing:.3px
}
.hero-explore::before{content:'↓';font-size:16px}

/* hero right — image panel */
.hero-right{
  position:relative;display:flex;align-items:center;justify-content:center
}
.hero-img-wrap{
  position:relative;width:100%;max-width:540px;
  border-radius:24px;overflow:hidden;
  box-shadow:0 32px 80px rgba(0,0,0,.5)
}
.hero-img-wrap img{width:100%;display:block;object-fit:cover}
.hero-img-badge{
  position:absolute;bottom:24px;left:24px;
  background:rgba(10,22,40,.85);backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.12);border-radius:12px;
  padding:14px 20px;display:flex;align-items:center;gap:12px
}
.hib-icon{font-size:22px}
.hib-text strong{display:block;color:var(--white);font-size:14px;font-weight:700}
.hib-text span{color:rgba(255,255,255,.5);font-size:12px}

/* hero stats strip */
.hero-stats-strip{
  background:rgba(255,255,255,.06);border-top:1px solid rgba(255,255,255,.08);
  position:relative;z-index:2
}
.hss-inner{
  max-width:1280px;margin:0 auto;padding:0 48px;
  display:grid;grid-template-columns:repeat(4,1fr);
}
.hss-item{
  padding:24px 0;text-align:center;
  border-right:1px solid rgba(255,255,255,.08)
}
.hss-item:last-child{border-right:none}
.hss-num{font-family:var(--font-d);font-size:38px;font-weight:900;color:var(--white);line-height:1}
.hss-label{font-size:12px;color:rgba(255,255,255,.45);margin-top:4px;letter-spacing:.5px}

/* ── GRADIENT TEXT BAND ── */
.gradient-band{background:var(--white);padding:72px 48px}
.gradient-band-inner{max-width:1000px;margin:0 auto;text-align:center}
.gradient-band p{
  font-size:clamp(20px,2.5vw,30px);line-height:1.6;font-weight:400;
  color:var(--navy)
}
.gradient-band p span{color:var(--blue);font-weight:600}

/* ── STACKED CONTENT (hexagon + feature list) ── */
.stacked-sec{background:var(--white);padding:0 48px 96px}
.stacked-inner{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.hexagon-wrap{display:flex;align-items:center;justify-content:center;position:relative}
.hexagon-img{
  width:420px;height:420px;
  clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);
  background:linear-gradient(135deg,#DC2626,#EA580C,#1B4FD8,#7C3AED);
  display:flex;align-items:center;justify-content:center;
  padding:6px
}
.hexagon-img img{
  width:100%;height:100%;object-fit:cover;
  clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%)
}
.feature-list{display:flex;flex-direction:column;gap:32px}
.feature-item{display:flex;gap:18px;align-items:flex-start}
.fi-icon{
  flex-shrink:0;width:36px;height:36px;
  display:flex;align-items:center;justify-content:center;
  color:var(--gray-800);font-size:22px;margin-top:2px
}
.fi-title{font-size:20px;font-weight:700;color:var(--navy);margin-bottom:8px;line-height:1.2}
.fi-desc{font-size:15px;color:var(--gray-600);line-height:1.7}

/* ── REAL RESULTS ── */
.results-sec{
  position:relative;overflow:hidden;
  min-height:420px;display:flex;align-items:center
}
.results-bg{
  position:absolute;inset:0;z-index:0;
  background-image:url("../assets/images/digital-transformation.jpg");
  background-size:cover;background-position:center right;
  filter:brightness(.35)
}
.results-inner{
  position:relative;z-index:1;max-width:1280px;margin:0 auto;
  padding:80px 48px;width:100%
}
.results-left{max-width:560px}
.results-label{font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--accent);margin-bottom:12px;display:block}
.results-title{font-family:var(--font-d);font-size:clamp(32px,4vw,52px);font-weight:900;color:var(--white);line-height:1.1;margin-bottom:16px}
.results-sub{font-size:16px;color:rgba(255,255,255,.65);line-height:1.7;margin-bottom:40px}
.results-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.rs-card{
  background:rgba(255,255,255,.1);backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:20px 16px
}
.rs-num{font-family:var(--font-d);font-size:40px;font-weight:900;color:var(--white);line-height:1}
.rs-label{font-size:12px;color:rgba(255,255,255,.55);margin-top:6px;line-height:1.4}

/* ── CERTIFIED EXPERTS SLIDER ── */
.experts-sec{background:var(--gray-50);padding:96px 48px}
.experts-inner{max-width:1280px;margin:0 auto}
.experts-header{margin-bottom:48px}
.section-label{font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--blue);margin-bottom:12px;display:block}
.section-title{font-family:var(--font-d);font-size:clamp(30px,4vw,48px);font-weight:900;color:var(--navy);line-height:1.1;letter-spacing:-.5px;margin-bottom:14px}
.section-title em{font-style:normal;color:var(--blue)}
.section-sub{font-size:16px;color:var(--gray-600);line-height:1.7;max-width:580px}
.slider-wrap{position:relative;overflow:hidden}
.slider-track{display:flex;gap:20px;transition:transform .4s ease;padding-bottom:4px}
.expert-card{
  flex:0 0 calc(25% - 15px);
  background:var(--white);border:1px solid var(--gray-200);
  border-radius:16px;padding:28px 24px;transition:all .25s
}
.expert-card:hover{box-shadow:var(--shadow-lg);border-color:var(--blue-bright);transform:translateY(-4px)}
.ec-icon{font-size:28px;margin-bottom:16px}
.ec-title{font-size:16px;font-weight:700;color:var(--navy);margin-bottom:8px}
.ec-desc{font-size:13px;color:var(--gray-600);line-height:1.65}
.slider-controls{display:flex;align-items:center;gap:12px;margin-top:28px}
.slider-btn{
  width:44px;height:44px;border-radius:50%;border:1.5px solid var(--gray-200);
  background:var(--white);cursor:pointer;font-size:16px;
  display:flex;align-items:center;justify-content:center;
  transition:all .2s
}
.slider-btn:hover{border-color:var(--navy);background:var(--navy);color:var(--white)}
.slider-dots{display:flex;gap:8px;margin-left:8px}
.sdot{width:8px;height:8px;border-radius:50%;background:var(--gray-200);cursor:pointer;transition:all .2s}
.sdot.active{background:var(--navy);width:20px;border-radius:4px}

/* ── INDUSTRY SLIDER ── */
.industry-sec{
  position:relative;overflow:hidden;
  background-image:url('https://images.unsplash.com/photo-1558494949-ef010cbdcc31?w=1600&q=80');
  background-size:cover;background-position:center;
  padding:80px 0 0
}
.industry-overlay{
  position:absolute;inset:0;
  background:linear-gradient(to right,rgba(10,22,40,.92) 0%,rgba(10,22,40,.75) 50%,rgba(10,22,40,.5) 100%)
}
.industry-inner{position:relative;z-index:1;max-width:1280px;margin:0 auto;padding:0 48px}
.ind-header{margin-bottom:40px}
.ind-header .section-title{color:var(--white)}
.ind-header .section-sub{color:rgba(255,255,255,.6)}
.ind-track-wrap{overflow:hidden;margin:0 -48px;padding:0 48px}
.ind-track{display:flex;gap:16px;transition:transform .4s ease;padding-bottom:48px}
.ind-card{
  flex:0 0 280px;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);
  border-radius:12px;padding:28px 24px;transition:all .3s;cursor:pointer
}
.ind-card:hover{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.25);transform:translateY(-4px)}
.ind-icon{font-size:24px;margin-bottom:16px;color:rgba(255,255,255,.7)}
.ind-title{font-size:17px;font-weight:700;color:var(--white);margin-bottom:10px}
.ind-desc{font-size:13px;color:rgba(255,255,255,.55);line-height:1.65;margin-bottom:16px}
.ind-link{font-size:13px;font-weight:700;color:var(--accent);display:flex;align-items:center;gap:6px;transition:gap .2s}
.ind-link:hover{gap:10px}
.ind-controls{display:flex;align-items:center;gap:12px;padding:0 48px 48px;justify-content:flex-end;position:relative;z-index:1}
.ind-dots{display:flex;gap:8px;flex:1}
.idot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.25);cursor:pointer;transition:all .2s}
.idot.active{background:var(--white);width:20px;border-radius:4px}

/* ── SCHEDULE CONSULTATION ── */
.consult-sec{
  position:relative;min-height:480px;display:flex;align-items:center;
  background:var(--navy);overflow:hidden
}
.consult-bg-glow{
  position:absolute;top:-200px;right:-100px;width:600px;height:600px;border-radius:50%;
  background:radial-gradient(circle,rgba(220,38,38,.25) 0%,rgba(234,88,12,.15) 40%,transparent 70%);
  pointer-events:none
}
.consult-inner{
  position:relative;z-index:2;max-width:1280px;margin:0 auto;
  padding:80px 48px;width:100%;text-align:center
}
.consult-inner .section-title{color:var(--white);font-size:clamp(36px,5vw,60px);margin-bottom:16px}
.consult-inner .section-title span{color:var(--accent)}
.consult-sub{font-size:17px;color:rgba(255,255,255,.6);margin-bottom:56px;max-width:600px;margin-left:auto;margin-right:auto}
.consult-cards{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:900px;margin:0 auto}
.cc-card{
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);
  border-radius:16px;padding:36px 32px;text-align:center;transition:all .25s
}
.cc-card:hover{background:rgba(255,255,255,.1);transform:translateY(-4px)}
.cc-hexicon{
  width:64px;height:64px;margin:0 auto 20px;
  background:rgba(255,255,255,.1);border-radius:12px;
  display:flex;align-items:center;justify-content:center;font-size:28px
}
.cc-title{font-size:19px;font-weight:700;color:var(--white);margin-bottom:10px}
.cc-desc{font-size:14px;color:rgba(255,255,255,.55);line-height:1.7;margin-bottom:24px}
.btn-outline-light{
  display:inline-flex;align-items:center;gap:8px;
  background:transparent;color:var(--white);
  font-family:var(--font-b);font-size:14px;font-weight:600;
  padding:12px 24px;border-radius:8px;text-decoration:none;
  border:1.5px solid rgba(255,255,255,.4);transition:all .2s;cursor:pointer
}
.btn-outline-light:hover{border-color:var(--white);background:rgba(255,255,255,.08)}

/* ── TESTIMONIALS ── */
.testi-sec{background:var(--gray-50);padding:96px 48px}
.testi-inner{max-width:1280px;margin:0 auto}
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}
.tc{
  background:var(--white);border:1px solid var(--gray-200);
  border-radius:16px;padding:32px;transition:all .25s
}
.tc:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}
.tc-stars{color:#F59E0B;font-size:14px;letter-spacing:2px;margin-bottom:16px}
.tc-quote{font-size:15px;color:var(--gray-600);line-height:1.72;font-style:italic;margin-bottom:24px}
.tc-author{display:flex;align-items:center;gap:12px}
.tc-avatar{
  width:48px;height:48px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:16px;color:white;flex-shrink:0
}
.tc-name{font-size:14px;font-weight:700;color:var(--navy)}
.tc-role{font-size:12px;color:var(--gray-400);margin-top:2px}

/* ── CTA BANNER ── */
.cta-banner{
  background:linear-gradient(135deg,var(--blue),var(--accent));
  padding:80px 48px;text-align:center
}
.cta-inner{max-width:700px;margin:0 auto}
.cta-banner h2{font-family:var(--font-d);font-size:clamp(36px,5vw,52px);font-weight:900;color:var(--white);margin-bottom:16px;line-height:1.1}
.cta-banner p{font-size:17px;color:rgba(255,255,255,.8);margin-bottom:32px}
.btn-white{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--white);color:var(--blue);
  font-family:var(--font-b);font-size:15px;font-weight:700;
  padding:14px 32px;border-radius:8px;text-decoration:none;
  transition:all .2s;border:none;cursor:pointer
}
.btn-white:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.2)}

/* ── TRUSTED BAR ── */
.trusted-bar{background:var(--white);border-top:1px solid var(--gray-200);border-bottom:1px solid var(--gray-200);padding:28px 48px}
.trusted-inner{max-width:1280px;margin:0 auto;display:flex;align-items:center;gap:40px}
.trusted-label{font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--gray-400);white-space:nowrap}
.trusted-logos{display:flex;gap:36px;align-items:center;flex-wrap:wrap}
.tl{font-family:var(--font-d);font-size:17px;font-weight:700;color:var(--gray-400);letter-spacing:.5px;transition:color .2s}
.tl:hover{color:var(--navy)}

/* ════════════════════════════
   INNER PAGES (shared)
════════════════════════════ */
.page-hero{
  padding:72px 48px 80px;position:relative;overflow:hidden;
  background-size:cover;background-position:center;background-repeat:no-repeat
}
.page-hero::before{
  content:'';position:absolute;inset:0;z-index:0;
  background:linear-gradient(135deg,rgba(10,22,40,.88) 0%,rgba(15,35,71,.82) 60%,rgba(17,43,92,.78) 100%)
}
.page-hero-inner{max-width:1280px;margin:0 auto;position:relative;z-index:1}
.page-hero h1{
  font-family:var(--font-d);font-size:clamp(36px,5vw,60px);
  font-weight:900;color:var(--white);line-height:1.1;margin-bottom:16px
}
.page-hero p{font-size:17px;color:rgba(255,255,255,.7);max-width:580px;line-height:1.7}

/* inner page shared sections */
section{padding:96px 48px}
.container{max-width:1280px;margin:0 auto}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:56px}
.sc{
  background:var(--white);border:1px solid var(--gray-200);
  border-radius:16px;padding:32px;transition:all .25s;position:relative;overflow:hidden
}
.sc::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--blue),var(--accent));
  transform:scaleX(0);transition:transform .3s;transform-origin:left
}
.sc:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:transparent}
.sc:hover::before{transform:scaleX(1)}
.sc-icon{width:52px;height:52px;border-radius:12px;background:var(--sky);display:flex;align-items:center;justify-content:center;font-size:24px;margin-bottom:20px;transition:background .2s}
.sc:hover .sc-icon{background:var(--blue)}
.sc-title{font-size:18px;font-weight:700;color:var(--navy);margin-bottom:10px}
.sc-desc{font-size:14px;color:var(--gray-600);line-height:1.65}
.sc-link{display:inline-flex;align-items:center;gap:6px;margin-top:18px;font-size:13px;font-weight:700;color:var(--blue);text-decoration:none;transition:gap .2s}
.sc-link:hover{gap:10px}

/* why page */
.why-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.why-list{display:flex;flex-direction:column;gap:28px;margin-top:40px}
.why-item{display:flex;gap:20px;align-items:flex-start}
.why-num{flex-shrink:0;width:40px;height:40px;border-radius:10px;background:var(--blue);color:var(--white);font-family:var(--font-d);font-size:18px;font-weight:800;display:flex;align-items:center;justify-content:center}
.why-item-title{font-size:16px;font-weight:700;color:var(--navy);margin-bottom:4px}
.why-item-desc{font-size:14px;color:var(--gray-600);line-height:1.65}
.why-visual{background:linear-gradient(135deg,var(--navy),#112B5C);border-radius:24px;padding:48px 40px;color:var(--white);position:relative;overflow:hidden}
.wm{position:relative;z-index:1}
.wm+.wm{margin-top:36px;padding-top:36px;border-top:1px solid rgba(255,255,255,.1)}
.wm-num{font-family:var(--font-d);font-size:56px;font-weight:900;color:var(--accent);line-height:1}
.wm-label{font-size:15px;color:rgba(255,255,255,.7);margin-top:4px}

/* adv page */
.adv-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:56px}
.adv-card{background:var(--white);border-radius:16px;padding:32px 24px;text-align:center;border:1px solid var(--gray-200);transition:all .25s}
.adv-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.adv-icon{font-size:36px;margin-bottom:16px;display:block}
.adv-title{font-size:16px;font-weight:700;color:var(--navy);margin-bottom:8px}
.adv-desc{font-size:13px;color:var(--gray-600);line-height:1.65}

/* about page */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.values-list{display:flex;flex-direction:column;gap:20px;margin-top:32px}
.value-item{display:flex;gap:16px;align-items:flex-start}
.val-dot{flex-shrink:0;width:8px;height:8px;border-radius:50%;background:var(--blue);margin-top:7px}
.val-text{font-size:15px;color:var(--gray-600);line-height:1.65}
.val-text strong{color:var(--navy)}

/* ms page */
.ms-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:56px}
.ms-card{background:var(--white);border:1px solid var(--gray-200);border-radius:16px;padding:36px;display:flex;gap:24px;align-items:flex-start;transition:all .25s}
.ms-card:hover{box-shadow:var(--shadow-lg);border-color:var(--blue-light);transform:translateY(-4px)}
.ms-icon{flex-shrink:0;width:56px;height:56px;border-radius:14px;background:var(--sky);display:flex;align-items:center;justify-content:center;font-size:26px;transition:background .2s}
.ms-card:hover .ms-icon{background:var(--blue)}
.ms-title{font-size:19px;font-weight:700;color:var(--navy);margin-bottom:8px}
.ms-desc{font-size:14px;color:var(--gray-600);line-height:1.65}
.ms-bullets{margin-top:14px;display:flex;flex-direction:column;gap:6px}
.ms-bullet{font-size:13px;color:var(--gray-600);display:flex;gap:8px;align-items:center}
.ms-bullet::before{content:'✓';color:var(--green);font-weight:700}

/* contact page */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
.contact-info{display:flex;flex-direction:column;gap:28px;margin-top:40px}
.ci-item{display:flex;gap:16px;align-items:flex-start}
.ci-icon{flex-shrink:0;width:44px;height:44px;border-radius:10px;background:var(--sky);display:flex;align-items:center;justify-content:center;font-size:20px}
.ci-label{font-size:13px;font-weight:700;color:var(--gray-400);letter-spacing:.5px;text-transform:uppercase;margin-bottom:4px}
.ci-val{font-size:15px;font-weight:600;color:var(--navy)}
.contact-form{background:var(--white);border:1px solid var(--gray-200);border-radius:20px;padding:40px;box-shadow:var(--shadow-md)}
.form-title{font-family:var(--font-d);font-size:26px;font-weight:800;color:var(--navy);margin-bottom:8px}
.form-sub{font-size:14px;color:var(--gray-600);margin-bottom:28px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.form-group label{font-size:13px;font-weight:600;color:var(--gray-600)}
.form-group input,.form-group select,.form-group textarea{
  font-family:var(--font-b);font-size:14px;color:var(--gray-800);
  background:var(--gray-50);border:1.5px solid var(--gray-200);
  border-radius:8px;padding:11px 14px;outline:none;
  transition:border-color .2s,box-shadow .2s
}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{
  border-color:var(--blue);box-shadow:0 0 0 3px rgba(27,79,216,.1);background:var(--white)
}
.form-group textarea{resize:vertical;min-height:120px}
.form-success{display:none;text-align:center;padding:40px 20px}
.form-success .check{font-size:48px;margin-bottom:16px}
.form-success h3{font-family:var(--font-d);font-size:28px;font-weight:800;color:var(--navy);margin-bottom:8px}

/* ── FOOTER ── */
footer{background:var(--navy);color:rgba(255,255,255,.6);padding:60px 48px 28px}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;max-width:1280px;margin:0 auto}
.footer-logo-wrap{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.footer-tagline{font-size:14px;line-height:1.65;max-width:260px}
.footer-col h4{font-size:13px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--white);margin-bottom:16px}
.footer-col a{display:block;font-size:14px;color:rgba(255,255,255,.55);text-decoration:none;margin-bottom:10px;transition:color .2s;cursor:pointer}
.footer-col a:hover{color:var(--accent)}
.footer-bottom{max-width:1280px;margin:40px auto 0;padding-top:24px;border-top:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;align-items:center;font-size:13px}

/* ── RESPONSIVE ── */
@media(max-width:1024px){
  .hero-inner,.stacked-inner,.why-grid,.about-grid,.contact-grid{grid-template-columns:1fr;gap:40px}
  .hss-inner{grid-template-columns:repeat(2,1fr)}
  .services-grid,.adv-grid{grid-template-columns:repeat(2,1fr)}
  .testi-grid,.ms-grid{grid-template-columns:1fr}
  .results-stats{grid-template-columns:repeat(2,1fr)}
  .consult-cards{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr;gap:32px}
  .expert-card{flex:0 0 calc(50% - 10px)}
  section,.hero-inner,.gradient-band,.stacked-sec,.results-inner,.experts-sec,.industry-inner,.consult-inner,.testi-sec,.cta-banner,.trusted-bar,footer{padding-left:32px;padding-right:32px}
}
@media(max-width:768px){
  .nav-links{display:none}
  .menu-toggle{display:block}
  .services-grid,.adv-grid,.footer-grid{grid-template-columns:1fr}
  .hss-inner{grid-template-columns:1fr 1fr}
  .form-row{grid-template-columns:1fr}
  .hero-inner{padding:48px 24px}
  .expert-card{flex:0 0 calc(100% - 0px)}
  section,.hero-inner,.gradient-band,.stacked-sec,.results-inner,.experts-sec,.industry-inner,.consult-inner,.testi-sec,.cta-banner,.trusted-bar,footer{padding-left:24px;padding-right:24px}
}

/* ══════════════════════════════════════════════
   MOTION EFFECTS — added by Claude
   Simple, performant, respects prefers-reduced-motion
   ══════════════════════════════════════════════ */

/* ── Scroll reveal: elements start hidden, fade up when .in-view is added ── */
.reveal{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .7s cubic-bezier(.22,.61,.36,1), transform .7s cubic-bezier(.22,.61,.36,1);
  will-change:opacity, transform;
}
.reveal.in-view{ opacity:1; transform:translateY(0); }

/* Stagger helpers — apply to children for cascading reveals */
.reveal.delay-1{ transition-delay:.08s; }
.reveal.delay-2{ transition-delay:.16s; }
.reveal.delay-3{ transition-delay:.24s; }
.reveal.delay-4{ transition-delay:.32s; }
.reveal.delay-5{ transition-delay:.40s; }

/* Variants */
.reveal-left{
  opacity:0; transform:translateX(-32px);
  transition:opacity .7s cubic-bezier(.22,.61,.36,1), transform .7s cubic-bezier(.22,.61,.36,1);
}
.reveal-left.in-view{ opacity:1; transform:translateX(0); }

.reveal-right{
  opacity:0; transform:translateX(32px);
  transition:opacity .7s cubic-bezier(.22,.61,.36,1), transform .7s cubic-bezier(.22,.61,.36,1);
}
.reveal-right.in-view{ opacity:1; transform:translateX(0); }

.reveal-scale{
  opacity:0; transform:scale(.94);
  transition:opacity .6s ease-out, transform .6s cubic-bezier(.22,.61,.36,1);
}
.reveal-scale.in-view{ opacity:1; transform:scale(1); }

/* ── Hero entrance animations (auto, on load) ── */
@keyframes heroFadeUp{
  from{ opacity:0; transform:translateY(24px); }
  to  { opacity:1; transform:translateY(0); }
}
@keyframes heroFadeRight{
  from{ opacity:0; transform:translateX(40px); }
  to  { opacity:1; transform:translateX(0); }
}
.hero-left > *{ opacity:0; animation:heroFadeUp .8s cubic-bezier(.22,.61,.36,1) forwards; }
.hero-left > *:nth-child(1){ animation-delay:.10s; }
.hero-left > *:nth-child(2){ animation-delay:.20s; }
.hero-left > *:nth-child(3){ animation-delay:.30s; }
.hero-left > *:nth-child(4){ animation-delay:.40s; }
.hero-left > *:nth-child(5){ animation-delay:.50s; }
.hero-left > *:nth-child(6){ animation-delay:.60s; }
.hero-right{ opacity:0; animation:heroFadeRight 1s cubic-bezier(.22,.61,.36,1) .35s forwards; }

/* ── Card hover lifts (additive — existing transitions stay) ── */
.expert-card,
.adv-card,
.cc-card,
.feature-item,
.consult-cards > *,
.testi-sec .testi-card,
.industry-sec .ind-card,
.ec-icon,
.cc-hexicon{
  transition:transform .35s cubic-bezier(.22,.61,.36,1), box-shadow .35s ease, border-color .25s ease;
}
.expert-card:hover,
.adv-card:hover,
.cc-card:hover,
.feature-item:hover,
.consult-cards > *:hover,
.testi-sec .testi-card:hover,
.industry-sec .ind-card:hover{
  transform:translateY(-6px);
  box-shadow:0 18px 40px rgba(10,22,40,.12);
}

/* Icon mini-bounce on card hover */
.expert-card:hover .ec-icon,
.adv-card:hover .adv-icon,
.cc-card:hover .cc-hexicon,
.feature-item:hover .fi-icon{
  transform:scale(1.08) rotate(-3deg);
}
.ec-icon,.adv-icon,.cc-hexicon,.fi-icon{ transition:transform .35s cubic-bezier(.22,.61,.36,1); }

/* ── Image hover zoom (hero + hexagon) ── */
.hero-img-wrap, .hexagon-img{ overflow:hidden; }
.hero-img-wrap img, .hexagon-img img{
  transition:transform .8s cubic-bezier(.22,.61,.36,1);
}
.hero-img-wrap:hover img, .hexagon-img:hover img{
  transform:scale(1.05);
}

/* ── Button micro-interactions ── */
.btn-primary, .btn-white, .btn-outline-white, .btn-outline-light{
  transition:transform .2s ease, box-shadow .25s ease, background .2s, color .2s, border-color .2s;
}
.btn-primary:hover, .btn-white:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 24px rgba(27,79,216,.28);
}
.btn-outline-white:hover, .btn-outline-light:hover{
  transform:translateY(-2px);
}

/* ── Nav link underline slide ── */
.nav-links a{ position:relative; }
.nav-links a:not(.nav-cta)::after{
  content:''; position:absolute; left:0; right:0; bottom:-4px;
  height:2px; background:var(--blue);
  transform:scaleX(0); transform-origin:left;
  transition:transform .3s cubic-bezier(.22,.61,.36,1);
}
.nav-links a:not(.nav-cta):hover::after,
.nav-links a.active:not(.nav-cta)::after{ transform:scaleX(1); }

/* ── SPA page transition ── */
.page{ animation:none; }
.page.active{
  animation:pageFade .5s cubic-bezier(.22,.61,.36,1);
}
@keyframes pageFade{
  from{ opacity:0; transform:translateY(8px); }
  to  { opacity:1; transform:translateY(0); }
}

/* ── Subtle floating motion on hero badge ── */
.hero-img-badge{
  animation:badgeFloat 4.5s ease-in-out infinite;
}
@keyframes badgeFloat{
  0%,100%{ transform:translateY(0); }
  50%    { transform:translateY(-6px); }
}

/* ── Respect reduced motion preference ── */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
  .reveal, .reveal-left, .reveal-right, .reveal-scale{
    opacity:1 !important; transform:none !important;
  }
}

/* ══════════════════════════════════════════════
   COUNT-UP NUMBER STYLE — keep stable width during anim
   ══════════════════════════════════════════════ */
.count-up{
  font-variant-numeric:tabular-nums;
  font-feature-settings:"tnum";
}

/* ══════════════════════════════════════════════
   RESPONSIVE — Mobile/Tablet/Desktop + iOS fixes
   ══════════════════════════════════════════════ */

/* iOS-safe viewport units (handles Safari address-bar resize) */
:root{
  --vh: 1vh;
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
}

/* Prevent horizontal overflow on touch zoom / odd assets */
html, body{
  max-width:100vw;
  overflow-x:hidden;
  -webkit-text-size-adjust:100%;  /* Stop iOS bumping text on rotate */
  -webkit-tap-highlight-color:transparent;
}

/* Smooth momentum scrolling on iOS */
body{ -webkit-overflow-scrolling:touch; }

/* Hero video — cover behavior consistent across iOS Safari */
.hero-video{
  width:100%; height:100%;
  object-fit:cover;
  -webkit-transform:translateZ(0);   /* Promote to compositor for smooth playback */
}

/* (removed: prefers-reduced-data rule that hid the hero video,
   since it triggered too often on mobile data connections) */

/* ── TABLET PORTRAIT (≤900px) ── */
@media (max-width:900px){
  /* Sliders: show fewer cards per view */
  .expert-card{ flex:0 0 calc(50% - 10px); }
  .ind-card{ flex:0 0 calc(50% - 8px); }
  /* Stat numbers — slightly smaller */
  .hss-num, .rs-num, .wm-num{ font-size:clamp(32px, 6vw, 48px); }
  /* Section padding tightens */
  section, .hero-inner, .gradient-band, .stacked-sec, .results-inner,
  .experts-sec, .industry-inner, .consult-inner, .testi-sec,
  .cta-banner, .trusted-bar, footer{
    padding-left:24px; padding-right:24px;
  }
}

/* ── MOBILE (≤600px) ── */
@media (max-width:600px){
  /* Nav: tighter spacing, smaller logo */
  .nav{ padding:0 16px; height:64px; }
  .nav-logo svg{ width:80px; height:32px; }
  .nav-links a{ font-size:15px; padding:12px 0; }
  .nav-cta{ width:100%; text-align:center; margin-top:8px; }

  /* Hero — readable on small screens, less padding */
  .hero{ min-height:auto; padding-top:90px; padding-bottom:60px; }
  .hero-inner{ padding:32px 20px !important; gap:32px; }
  .hero h1{ font-size:clamp(32px, 9vw, 44px) !important; line-height:1.1; }
  .hero-sub{ font-size:15px; line-height:1.6; }
  .hero-tag{ font-size:10px; }

  /* Buttons stack & become full-width for thumb-reach */
  .hero-btns{ flex-direction:column; align-items:stretch; }
  .hero-btns .btn-primary,
  .hero-btns .btn-outline-white,
  .hero-btns .btn-outline-light,
  .hero-btns .btn-white{
    width:100%; justify-content:center;
    min-height:48px;            /* Apple/Google accessibility tap target */
    padding:14px 20px;
  }

  /* Hero image badge: stays readable */
  .hero-img-badge{
    bottom:-12px; left:50%; transform:translateX(-50%);
    width:calc(100% - 32px); max-width:340px;
  }

  /* Hero stats strip: 2x2 instead of 1x4 */
  .hss-inner{ grid-template-columns:repeat(2,1fr) !important; gap:24px; }
  .hss-num{ font-size:clamp(28px, 8vw, 36px); }
  .hss-label{ font-size:11px; }

  /* Results stats: 2x2 */
  .results-stats{ grid-template-columns:repeat(2,1fr); gap:16px; }
  .rs-card{ padding:24px 16px; }
  .rs-num{ font-size:clamp(28px, 8vw, 38px); }

  /* Why metrics: 1 col */
  .why-metrics{ grid-template-columns:1fr; }

  /* Section padding */
  section, .hero-inner, .gradient-band, .stacked-sec, .results-inner,
  .experts-sec, .industry-inner, .consult-inner, .testi-sec,
  .cta-banner, .trusted-bar, footer{
    padding-left:16px; padding-right:16px;
  }

  /* Headings — fluid */
  h2{ font-size:clamp(26px, 7vw, 36px) !important; line-height:1.15; }
  h3{ font-size:clamp(18px, 5vw, 22px) !important; }

  /* Cards — full-width single column */
  .ec-icon, .adv-icon, .cc-hexicon{ width:56px; height:56px; }

  /* Slider arrows easier to tap */
  .slider-arrow{ min-width:44px; min-height:44px; }

  /* Footer */
  .footer-grid{ grid-template-columns:1fr !important; gap:32px; text-align:center; }
  .footer-col h4{ margin-bottom:12px; }

  /* Forms: bigger inputs for touch */
  input, select, textarea, button{
    font-size:16px !important;   /* prevents iOS auto-zoom on focus */
    min-height:44px;
  }
  textarea{ min-height:120px; }

  /* CTAs full-width */
  .cta-inner .btn-primary, .cta-inner .btn-white,
  .cta-inner .btn-outline-white, .cta-inner .btn-outline-light{
    width:100%; justify-content:center; min-height:48px;
  }

  /* Safe-area padding for iOS notch/home indicator */
  nav.nav{ padding-top:var(--safe-top); }
  footer{ padding-bottom:calc(40px + var(--safe-bottom)); }
}

/* ── EXTRA-SMALL MOBILE (≤380px) ── */
@media (max-width:380px){
  .hero h1{ font-size:30px !important; }
  .hero-sub{ font-size:14px; }
  .hss-inner, .results-stats{ grid-template-columns:1fr !important; }
  .nav-logo svg{ width:70px; }
}

/* ── LANDSCAPE PHONE ── short heights need extra care */
@media (max-height:500px) and (orientation:landscape){
  .hero{ min-height:auto; padding:80px 20px 40px; }
  .hero-inner{ padding:20px !important; }
  .hero h1{ font-size:32px !important; margin-bottom:12px; }
  .hero-sub{ margin-bottom:16px; }
  .hero-btns{ margin-bottom:20px; }
}

/* ── Disable hover effects on touch devices (avoids stuck-hover states) ── */
@media (hover:none){
  .expert-card:hover,
  .adv-card:hover,
  .cc-card:hover,
  .feature-item:hover,
  .consult-cards > *:hover,
  .testi-sec .testi-card:hover,
  .industry-sec .ind-card:hover{
    transform:none; box-shadow:none;
  }
  .hero-img-wrap:hover img, .hexagon-img:hover img{
    transform:none;
  }
}

/* ── High-contrast / print fallbacks ── */
@media print{
  .hero-video, .menu-toggle, .nav-cta{ display:none !important; }
  .page{ display:block !important; page-break-after:always; }
}

/* ══════════════════════════════════════════════
   TESTIMONIAL CAROUSEL — touch/drag/arrow/dot navigation
   Works on cellphone, tablet, laptop, desktop, iOS, Android
   ══════════════════════════════════════════════ */

/* Avatar with photo (overrides default initials-circle style) */
.tc-avatar{
  width:56px; height:56px; border-radius:50%;
  overflow:hidden; flex-shrink:0;
  background:var(--gray-200);
  box-shadow:0 2px 8px rgba(10,22,40,.12);
}
.tc-avatar img{
  width:100%; height:100%;
  object-fit:cover; object-position:center top;
  display:block;
  /* Preserve image quality at all sizes */
  image-rendering:auto;
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
}

/* Carousel container */
.testi-carousel{
  position:relative;
  margin-top:48px;
  padding:0 56px;            /* room for the side arrows */
}

/* Viewport (clips overflow), Track (slides horizontally) */
.testi-viewport{
  overflow:hidden;
  border-radius:16px;
  padding:8px 0 12px;        /* breathing room for hover-lift shadow */
}
.testi-track{
  display:flex;
  gap:24px;
  transition:transform .6s cubic-bezier(.22,.61,.36,1);
  will-change:transform;
  touch-action:pan-y;        /* allow vertical page scroll, capture horizontal drag */
  cursor:grab;
  user-select:none;
  -webkit-user-select:none;
}
.testi-track.dragging{
  transition:none;
  cursor:grabbing;
}

/* Each card — desktop: 3 visible, tablet: 2, mobile: 1 */
.testi-track > .tc{
  flex:0 0 calc((100% - 48px) / 3);   /* 3 cards, 2 gaps × 24px */
  display:flex;
  flex-direction:column;
  pointer-events:auto;
}
/* Disable inner-hover transforms on the card during drag */
.testi-track.dragging > .tc{ pointer-events:none; }

/* Quote text grows to fill, so cards align nicely */
.testi-track > .tc .tc-quote{ flex:1; }

/* Arrows */
.testi-arrow{
  position:absolute; top:50%; transform:translateY(-50%);
  width:44px; height:44px; border-radius:50%;
  border:1px solid var(--gray-200);
  background:var(--white);
  color:var(--navy);
  font-size:24px; line-height:1;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer;
  box-shadow:0 4px 12px rgba(10,22,40,.08);
  transition:background .2s, transform .2s, box-shadow .2s, opacity .2s;
  z-index:2;
  -webkit-tap-highlight-color:transparent;
}
.testi-arrow:hover{
  background:var(--blue); color:var(--white);
  transform:translateY(-50%) scale(1.08);
  box-shadow:0 8px 20px rgba(27,79,216,.28);
}
.testi-arrow:active{ transform:translateY(-50%) scale(.96); }
.testi-arrow:disabled{ opacity:.35; cursor:not-allowed; }
.testi-prev{ left:0; }
.testi-next{ right:0; }

/* Dots */
.testi-dots{
  display:flex; justify-content:center; gap:8px;
  margin-top:28px;
}
.testi-dot{
  width:8px; height:8px; border-radius:50%;
  background:var(--gray-200);
  border:none; padding:0; cursor:pointer;
  transition:background .25s, width .25s, transform .2s;
  -webkit-tap-highlight-color:transparent;
}
.testi-dot:hover{ background:var(--gray-400); }
.testi-dot.active{
  background:var(--blue);
  width:24px; border-radius:4px;
}

/* ── TABLET (≤1024px): 2 cards visible ── */
@media (max-width:1024px){
  .testi-track > .tc{
    flex:0 0 calc((100% - 24px) / 2);
  }
  .testi-carousel{ padding:0 48px; }
}

/* ── MOBILE (≤700px): 1 card visible, arrows tuck closer ── */
@media (max-width:700px){
  .testi-carousel{ padding:0 8px; }
  .testi-track{ gap:16px; }
  .testi-track > .tc{
    flex:0 0 calc(100% - 16px);   /* a peek of next card hints swipability */
    padding:24px 20px;
  }
  .testi-arrow{
    width:40px; height:40px; font-size:22px;
    box-shadow:0 4px 16px rgba(10,22,40,.18);
  }
  .testi-prev{ left:-4px; }
  .testi-next{ right:-4px; }
  /* Make arrows slightly transparent so card content is more visible */
  .testi-arrow{ background:rgba(255,255,255,.92); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
}

/* ── EXTRA-SMALL MOBILE (≤400px): hide arrows, swipe only ── */
@media (max-width:400px){
  .testi-arrow{ display:none; }
  .testi-carousel{ padding:0; }
  .testi-track > .tc{ flex:0 0 100%; padding:24px 18px; }
}

/* Hide static .testi-grid overrides at mobile — carousel uses .testi-track now */
@media (max-width:1024px){
  .testi-grid{ display:none; }   /* legacy class — no-op since markup is gone */
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce){
  .testi-track{ transition:none; }
}
.testi-track.no-anim-once{ transition:none !important; }

/* ══════════════════════════════════════════════
   CONTACT MAP — embedded OpenStreetMap iframe
   ══════════════════════════════════════════════ */
.contact-map{
  margin-top:32px;
  border-radius:16px;
  overflow:hidden;
  background:var(--gray-100);
  box-shadow:0 4px 16px rgba(10,22,40,.08);
  position:relative;
}
.contact-map iframe{
  display:block;
  width:100%;
  height:340px;
  border:0;
  filter:saturate(.92);
}
.map-link{
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 18px;
  background:var(--white);
  color:var(--navy);
  text-decoration:none;
  font-size:14px; font-weight:600;
  border-top:1px solid var(--gray-200);
  transition:background .2s, color .2s, gap .2s;
}
.map-link:hover{
  background:var(--blue);
  color:var(--white);
  gap:12px;
}
.map-link.directions{
  border-left:1px solid var(--gray-200);
}
.contact-map .map-link{
  display:inline-flex;
  width:50%;
  justify-content:center;
}

/* Contact info: tighten spacing now that we have 6 items + a map */
.contact-info .ci-item{
  margin-bottom:18px;
}
.contact-info .ci-val a:hover{
  color:var(--blue) !important;
}

/* Map responsive */
@media (max-width:600px){
  .contact-map iframe{ height:260px; }
  .contact-map .map-link{
    width:100%;
    border-left:0;
  }
  .contact-map .map-link.directions{
    border-top:1px solid var(--gray-200);
  }
}

/* ══════════════════════════════════════════════
   HERO TAG PILL — Est. January 2020 · Richmond, VA
   ══════════════════════════════════════════════ */
.hero-tag-pill{
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(59,130,246,.16);
  border:1px solid rgba(59,130,246,.45);
  color:var(--accent);
  font-size:11px; font-weight:700;
  letter-spacing:1.8px; text-transform:uppercase;
  padding:7px 16px; border-radius:999px;
  margin-bottom:24px;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  box-shadow:0 4px 16px rgba(59,130,246,.12);
}
.hero-tag-pill .dot{
  width:6px; height:6px; border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 8px rgba(14,165,233,.8);
  animation:dotPulse 2s ease-in-out infinite;
}
@keyframes dotPulse{
  0%,100%{ opacity:1; transform:scale(1); }
  50%   { opacity:.5; transform:scale(1.3); }
}

/* ══════════════════════════════════════════════
   NAICS BADGE — hero version
   ══════════════════════════════════════════════ */
.hero-naics{
  display:inline-flex; align-items:center; gap:10px;
  margin-top:24px;
  padding:10px 18px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
  border-radius:10px;
  color:rgba(255,255,255,.85);
  font-size:13px;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  max-width:fit-content;
}
.hero-naics .naics-icon{ font-size:16px; }
.hero-naics .naics-label{ color:rgba(255,255,255,.65); }
.hero-naics .naics-value{ color:var(--accent); font-weight:600; }

/* ══════════════════════════════════════════════
   FOOTER — unified across all pages
   ══════════════════════════════════════════════ */
.footer-brand{ max-width:340px; }
.footer-naics{
  display:inline-flex; align-items:center; gap:8px;
  margin-top:16px; padding:8px 14px;
  background:rgba(59,130,246,.12);
  border:1px solid rgba(59,130,246,.25);
  border-radius:8px;
  font-size:12px;
  color:rgba(255,255,255,.85);
}
.footer-naics strong{ color:var(--accent); }

.footer-contact-col a{
  display:flex !important;
  align-items:flex-start;
  gap:10px;
  line-height:1.5;
  cursor:pointer;
}
.footer-contact-col .fc-ico{
  flex-shrink:0;
  width:16px;
  display:inline-block;
}
.footer-contact-col a em{
  font-style:normal;
  color:rgba(255,255,255,.45);
  font-size:11px;
}
.footer-contact-col a.copyable:hover{
  color:var(--accent);
}

.footer-bottom{
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;
}
.footer-legal a{
  color:rgba(255,255,255,.5);
  cursor:pointer;
  transition:color .2s;
}
.footer-legal a:hover{ color:var(--accent); }

/* ══════════════════════════════════════════════
   COPY-TOAST — confirmation popup when copy succeeds
   ══════════════════════════════════════════════ */
.copy-toast{
  position:fixed;
  bottom:32px; left:50%;
  transform:translateX(-50%) translateY(80px);
  background:var(--navy);
  color:var(--white);
  padding:12px 22px;
  border-radius:999px;
  font-size:14px; font-weight:600;
  box-shadow:0 8px 24px rgba(10,22,40,.32), 0 0 0 1px rgba(255,255,255,.08);
  z-index:10000;
  opacity:0;
  pointer-events:none;
  transition:opacity .25s ease, transform .35s cubic-bezier(.22,.61,.36,1);
  display:flex; align-items:center; gap:10px;
}
.copy-toast.show{
  opacity:1;
  transform:translateX(-50%) translateY(0);
}
.copy-toast .toast-check{
  display:inline-flex; align-items:center; justify-content:center;
  width:20px; height:20px;
  background:var(--accent-green);
  border-radius:50%;
  color:#fff;
  font-size:12px;
  font-weight:900;
}

/* ══════════════════════════════════════════════
   MOBILE OVERFLOW FIXES — content was cutting off on right
   ══════════════════════════════════════════════ */

/* Global belt-and-suspenders against horizontal overflow */
html, body{ overflow-x:hidden !important; }
section, .container, .feature-list, .stacked-sec{
  max-width:100%;
  overflow-x:hidden;
}

@media (max-width:768px){
  /* Center and constrain stacked feature items */
  .feature-item{
    max-width:100%;
    padding-left:0 !important;
    padding-right:0 !important;
  }
  .feature-item .fi-title{
    word-wrap:break-word;
    overflow-wrap:break-word;
    hyphens:none;            /* NO mid-word breaks — "People" stays whole */
    -webkit-hyphens:none;
    -ms-hyphens:none;
  }
  /* ── HEXAGON: force small + centered on tablet/mobile ── */
  .stacked-inner{
    text-align:center !important;
  }
  .hexagon-wrap{
    width:100% !important;
    max-width:100% !important;
    margin:0 auto !important;
    display:flex !important;
    justify-content:center !important;
    align-items:center !important;
    padding:0 !important;
  }
  .hexagon-img{
    width:280px !important;
    height:280px !important;
    max-width:70vw !important;
    max-height:70vw !important;
    margin:0 auto !important;
    flex:0 0 auto !important;
  }
  /* Stats: ensure they don't overflow */
  .hss-inner, .results-stats, .why-metrics{
    width:100%;
    box-sizing:border-box;
  }
  /* Hero stats cards: keep all text on screen */
  .hss-num{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  /* Hero NAICS badge on mobile */
  .hero-naics{
    font-size:11px;
    padding:8px 12px;
    flex-wrap:wrap;
    line-height:1.4;
  }
  .hero-naics .naics-value{ flex:1; min-width:0; word-wrap:break-word; }
  /* Pill tag on mobile */
  .hero-tag-pill{
    font-size:10px;
    padding:6px 12px;
    letter-spacing:1.4px;
  }
  /* Footer brand block centered on mobile */
  .footer-brand{ max-width:100%; }
  .footer-bottom{ justify-content:center; text-align:center; }
}

@media (max-width:600px){
  /* Section padding tightens further — and absolutely no horizontal overflow */
  body, .page, section{ overflow-x:hidden; }

  /* Force max width on potentially long content */
  h1, h2, h3, p, .hero-sub, .section-sub, .hero-naics, .footer-naics{
    max-width:100%;
    word-wrap:break-word;
    overflow-wrap:break-word;
  }

  /* Hero image: contain within viewport */
  .hero-right{ width:100%; }
  .hero-img-wrap{
    max-width:100%;
    margin-left:auto;
    margin-right:auto;
  }
  .hero-img-wrap img{ width:100%; height:auto; }
  .hero-img-badge{
    width:auto;
    max-width:calc(100% - 24px);
    left:50%; transform:translateX(-50%);
  }

  /* Hexagon: smaller on phones, fully centered */
  .hexagon-wrap{
    width:100% !important;
    margin:0 auto !important;
    display:flex !important;
    justify-content:center !important;
    align-items:center !important;
  }
  .hexagon-img{
    width:240px !important;
    height:240px !important;
    max-width:65vw !important;
    max-height:65vw !important;
    margin:0 auto !important;
  }
}

@media (max-width:380px){
  .hero-tag-pill{ letter-spacing:1px; font-size:9px; padding:5px 10px; }
  .hero-naics{ font-size:10px; }
}

/* ══════════════════════════════════════════════
   HERO TEXT READABILITY — video at full opacity now,
   so we add subtle text shadows to keep copy crisp
   ══════════════════════════════════════════════ */
.hero h1{
  text-shadow:
    0 2px 16px rgba(10,22,40,.55),
    0 1px 3px rgba(10,22,40,.45);
}
.hero h1 em{
  text-shadow:
    0 2px 18px rgba(10,22,40,.6),
    0 0 24px rgba(27,79,216,.35);
}
.hero-sub{
  text-shadow:0 1px 8px rgba(10,22,40,.6);
}
.hero-explore{
  text-shadow:0 1px 4px rgba(10,22,40,.7);
}

/* ══════════════════════════════════════════════
   FINAL AUTHORITATIVE MOBILE LAYOUT FIXES
   Loaded LAST so the cascade lets these win.
   Applies to all touch devices (Android, iOS, tablets, phones).
   ══════════════════════════════════════════════ */

/* ── Stacked section: stack vertically, center everything on mobile ── */
@media (max-width: 1024px){
  .stacked-sec .stacked-inner{
    grid-template-columns: 1fr !important;
    gap: 40px !important;
    text-align: center !important;
  }
  /* Hexagon order: image FIRST, then features below */
  .stacked-sec .hexagon-wrap{
    order: -1;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    padding: 0 !important;
    transform: none !important;
  }
  .stacked-sec .hexagon-img{
    width: 300px !important;
    height: 300px !important;
    max-width: 75vw !important;
    max-height: 75vw !important;
    margin: 0 auto !important;
    flex: 0 0 auto !important;
    transform: none !important;
  }
}

/* ── Tablet & phone: feature items center-aligned, NO icons, no hyphenation ── */
@media (max-width: 900px){
  /* Hide emoji icons — they were causing layout issues on Android */
  .stacked-sec .feature-item .fi-icon{
    display: none !important;
  }
  /* Stack icon + text columns into one centered column */
  .stacked-sec .feature-item{
    display: block !important;
    text-align: center !important;
    padding: 0 16px !important;
    max-width: 600px !important;
    margin: 0 auto !important;
  }
  .stacked-sec .feature-item > div{
    width: 100% !important;
  }
  .stacked-sec .feature-item .fi-title,
  .stacked-sec .feature-item .fi-desc{
    text-align: center !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    /* NO hyphens, NO mid-word breaks */
    hyphens: none !important;
    -webkit-hyphens: none !important;
    -ms-hyphens: none !important;
    word-break: normal !important;
  }
  .stacked-sec .feature-item .fi-title{
    font-size: 22px !important;
    line-height: 1.3 !important;
    margin-bottom: 12px !important;
  }
  .stacked-sec .feature-item .fi-desc{
    font-size: 15px !important;
    line-height: 1.6 !important;
  }
  /* Tighter gap between feature items on mobile */
  .stacked-sec .feature-list{
    gap: 36px !important;
  }
}

/* ── Phone-only refinements ── */
@media (max-width: 600px){
  .stacked-sec .hexagon-img{
    width: 260px !important;
    height: 260px !important;
    max-width: 70vw !important;
    max-height: 70vw !important;
  }
  .stacked-sec .feature-item{
    padding: 0 8px !important;
  }
  .stacked-sec .feature-item .fi-title{
    font-size: 20px !important;
  }
}

/* ── Small phones (≤380px) ── */
@media (max-width: 380px){
  .stacked-sec .hexagon-img{
    width: 220px !important;
    height: 220px !important;
    max-width: 80vw !important;
    max-height: 80vw !important;
  }
  .stacked-sec .feature-item .fi-title{
    font-size: 18px !important;
    line-height: 1.25 !important;
  }
}
