/* ============================================================
   FINESSE JANITORIAL — Shared Stylesheet
   Used by: index.html, services.html, about.html,
            service-area.html, contact.html
============================================================ */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --g900: #0f2419; --g800: #1B3A2D; --g700: #235238;
  --g600: #2E6B4F; --g500: #3d8a60; --g400: #52B788;
  --g300: #74c69d; --g100: #d8f3dc; --g50:  #f0f7f2;
  --white:#ffffff;
  --gray900:#111827; --gray700:#374151; --gray500:#6b7280;
  --gray300:#d1d5db; --gray100:#f3f4f6;
  --amber: #f59e0b; --red: #ef4444;
  --sh-xs: 0 1px 3px rgba(0,0,0,.08);
  --sh-sm: 0 2px 8px rgba(0,0,0,.10);
  --sh-md: 0 4px 20px rgba(0,0,0,.12);
  --sh-lg: 0 8px 40px rgba(0,0,0,.16);
  --sh-xl: 0 16px 64px rgba(0,0,0,.20);
  --r-sm: 8px; --r-md:14px; --r-lg:20px; --r-xl:28px;
}

html { scroll-behavior: smooth; }
body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  color: var(--gray900); background: var(--white);
  line-height: 1.6; -webkit-font-smoothing: antialiased; overflow-x: hidden;
}
img { max-width:100%; height:auto; display:block; }
a   { text-decoration:none; color:inherit; }
button { font-family:inherit; }
.container { max-width:1180px; margin:0 auto; padding:0 28px; }
.img-fill { width:100%; height:100%; object-fit:cover; display:block; }

/* ── Buttons ─────────────────────────────────────────────── */
.btn {
  display:inline-flex; align-items:center; justify-content:center;
  gap:8px; padding:14px 28px; border-radius:var(--r-sm);
  font-weight:700; font-size:15px; cursor:pointer;
  transition:all .22s ease; border:2px solid transparent;
  white-space:nowrap; line-height:1;
}
.btn-primary  { background:var(--g400); color:var(--white); border-color:var(--g400); }
.btn-primary:hover { background:var(--g500); border-color:var(--g500); transform:translateY(-1px); box-shadow:var(--sh-md); }
.btn-dark     { background:var(--g800); color:var(--white); border-color:var(--g800); }
.btn-dark:hover { background:var(--g700); border-color:var(--g700); transform:translateY(-1px); box-shadow:var(--sh-md); }
.btn-ghost-w  { background:transparent; color:var(--white); border-color:rgba(255,255,255,.6); }
.btn-ghost-w:hover { background:rgba(255,255,255,.12); border-color:var(--white); }
.btn-ghost-g  { background:transparent; color:var(--g800); border-color:var(--g800); }
.btn-ghost-g:hover { background:var(--g800); color:var(--white); }

/* ── Section primitives ───────────────────────────────────── */
.eyebrow {
  display:inline-flex; align-items:center; gap:8px;
  font-size:12px; font-weight:700; letter-spacing:.1em;
  text-transform:uppercase; color:var(--g400); margin-bottom:14px;
}
.eyebrow::before { content:''; display:block; width:28px; height:2px; background:var(--g400); border-radius:2px; }
.stitle { font-size:clamp(26px,3.6vw,44px); font-weight:800; line-height:1.12; letter-spacing:-.025em; color:var(--gray900); }
.slead  { font-size:clamp(15px,1.4vw,18px); color:var(--gray500); line-height:1.75; max-width:600px; }

/* ── Scroll reveal ────────────────────────────────────────── */
.rv { opacity:0; transform:translateY(28px); transition:opacity .65s ease, transform .65s ease; }
.rv.vis { opacity:1; transform:none; }
.d1{transition-delay:.1s} .d2{transition-delay:.2s} .d3{transition-delay:.3s} .d4{transition-delay:.4s}

/* ── Page breadcrumb ─────────────────────────────────────── */
.breadcrumb { padding:14px 0; font-size:13px; color:var(--gray500); }
.breadcrumb a { color:var(--g600); font-weight:500; }
.breadcrumb a:hover { color:var(--g800); }
.breadcrumb span { margin:0 7px; }

/* ===========================================================
   NAVIGATION
=========================================================== */
.nav {
  position:sticky; top:0; z-index:200;
  background:var(--white); border-bottom:1px solid var(--gray100); box-shadow:var(--sh-xs);
}
.nav-inner { display:flex; align-items:center; height:72px; gap:32px; }
.nav-brand { display:flex; align-items:center; gap:10px; flex-shrink:0; }
.nav-logo-img { height:44px; width:auto; display:block; }
.nav-brand-text span { font-size:10.5px; color:var(--gray500); font-weight:500; letter-spacing:.04em; display:block; margin-top:1px; }
.nav-links { display:flex; align-items:center; gap:28px; list-style:none; margin-left:auto; }
.nav-links a { font-size:14px; font-weight:500; color:var(--gray700); transition:color .2s; padding-bottom:3px; border-bottom:2px solid transparent; }
.nav-links a:hover,.nav-links a.active { color:var(--g800); border-bottom-color:var(--g400); }
.nav-right { display:flex; align-items:center; gap:14px; flex-shrink:0; }
.nav-phone { font-size:14px; font-weight:700; color:var(--g800); }
.hamburger { display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:5px; margin-left:auto; }
.hamburger span { display:block; width:24px; height:2px; background:var(--gray900); border-radius:2px; transition:all .3s; }
.hamburger.on span:nth-child(1){ transform:rotate(45deg) translate(5px,5px); }
.hamburger.on span:nth-child(2){ opacity:0; }
.hamburger.on span:nth-child(3){ transform:rotate(-45deg) translate(5px,-5px); }
.mmenu {
  display:none; position:fixed; inset:72px 0 0 0;
  background:var(--white); z-index:199;
  flex-direction:column; padding:20px 28px 32px;
  overflow-y:auto; gap:4px; box-shadow:var(--sh-lg);
}
.mmenu.open { display:flex; }
.mmenu a { padding:14px 0; font-size:17px; font-weight:600; color:var(--gray900); border-bottom:1px solid var(--gray100); }
.mmenu .btn { margin-top:10px; width:100%; }

/* ===========================================================
   INNER PAGE HERO (shorter than homepage)
=========================================================== */
.page-hero {
  position:relative; background:var(--g900);
  padding:80px 0 88px; overflow:hidden;
}
.page-hero-bg {
  position:absolute; inset:0; z-index:0;
  background-size:cover; background-position:center; background-repeat:no-repeat;
  opacity:.28;
}
.page-hero::after {
  content:''; position:absolute; inset:0; z-index:1;
  background:linear-gradient(135deg,rgba(15,36,25,.95) 0%,rgba(27,58,45,.85) 100%);
}
.page-hero .container { position:relative; z-index:2; }
.page-hero .eyebrow { color:var(--g300); }
.page-hero h1 { font-size:clamp(30px,4.5vw,56px); font-weight:900; color:var(--white); line-height:1.08; letter-spacing:-.03em; margin-bottom:18px; }
.page-hero h1 em { font-style:normal; color:var(--g400); }
.page-hero .slead { color:rgba(255,255,255,.75); max-width:620px; }
.page-hero-ctas { display:flex; gap:12px; flex-wrap:wrap; margin-top:32px; }

/* ===========================================================
   HOMEPAGE HERO (index.html only)
=========================================================== */
.hero {
  position:relative; background:var(--g900);
  min-height:min(700px,90vh); display:flex; align-items:center; overflow:hidden;
}
.hero-bg {
  position:absolute; inset:0; z-index:0;
  background-image:url('images/hero-team.png');
  background-size:cover; background-position:center center; background-repeat:no-repeat;
}
.hero-overlay {
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(108deg, rgba(15,36,25,.92) 0%, rgba(27,58,45,.80) 55%, rgba(27,58,45,.42) 100%);
}
.hero-content { position:relative; z-index:2; max-width:680px; padding:88px 0 96px; }
.hero-badge {
  display:inline-flex; align-items:center; gap:8px; padding:7px 16px;
  border-radius:100px; border:1px solid rgba(82,183,136,.5);
  background:rgba(82,183,136,.12); color:var(--g300);
  font-size:12.5px; font-weight:700; letter-spacing:.04em; margin-bottom:26px;
}
.hero-dot { width:7px;height:7px;border-radius:50%;background:var(--g300);animation:blink 2.2s ease-in-out infinite; }
@keyframes blink{0%,100%{opacity:1}50%{opacity:.3}}
.hero h1 { font-size:clamp(34px,5.2vw,64px); font-weight:900; color:var(--white); line-height:1.06; letter-spacing:-.03em; margin-bottom:22px; }
.hero h1 em { font-style:normal; color:var(--g400); }
.hero-sub { font-size:clamp(16px,1.6vw,19px); color:rgba(255,255,255,.78); line-height:1.72; margin-bottom:38px; max-width:560px; }
.hero-ctas { display:flex; gap:12px; flex-wrap:wrap; }
.hero-ctas .btn { font-size:16px; padding:16px 34px; }
.hero-stats { display:flex; flex-wrap:wrap; gap:36px 48px; margin-top:60px; padding-top:48px; border-top:1px solid rgba(255,255,255,.12); }
.hero-stat strong { display:block; font-size:clamp(24px,3vw,32px); font-weight:900; color:var(--white); letter-spacing:-.02em; line-height:1; margin-bottom:4px; }
.hero-stat span   { font-size:12.5px; color:rgba(255,255,255,.55); font-weight:500; line-height:1.4; }

/* ===========================================================
   TRUST BAR
=========================================================== */
.trust-bar { background:var(--g800); padding:18px 0; }
.trust-items { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:10px 36px; }
.trust-item { display:flex; align-items:center; gap:9px; font-size:13.5px; font-weight:600; color:rgba(255,255,255,.88); }
.trust-icon { width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0; }
.trust-sep  { color:rgba(255,255,255,.2); font-size:20px; line-height:1; }

/* ===========================================================
   SERVICES GRID
=========================================================== */
.services { padding:108px 0; background:var(--white); }
.services-hd { text-align:center; margin-bottom:64px; }
.services-hd .slead { margin:16px auto 0; }
.services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.scard { border-radius:var(--r-lg); border:1.5px solid var(--gray100); overflow:hidden; background:var(--white); transition:all .25s ease; display:flex; flex-direction:column; }
.scard:hover { transform:translateY(-5px); box-shadow:var(--sh-xl); border-color:var(--g300); }
.scard-img { width:100%; height:210px; overflow:hidden; position:relative; background:var(--g50); }
.scard-img img { transition:transform .45s ease; width:100%; height:100%; object-fit:cover; display:block; }
.scard:hover .scard-img img { transform:scale(1.06); }
.scard-tag { position:absolute; top:14px; left:14px; background:var(--g800); color:var(--white); font-size:10.5px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; padding:4px 10px; border-radius:100px; z-index:1; }
.scard-body { padding:26px 24px 24px; flex:1; display:flex; flex-direction:column; }
.scard-body h3 { font-size:18px; font-weight:700; margin-bottom:10px; line-height:1.25; }
.scard-body p  { font-size:14px; color:var(--gray500); line-height:1.72; flex:1; margin-bottom:20px; }
.scard-link { display:inline-flex; align-items:center; gap:5px; font-size:13.5px; font-weight:700; color:var(--g600); transition:gap .2s; }
.scard:hover .scard-link { gap:9px; }

/* ===========================================================
   SERVICE DETAIL SECTION (services.html)
=========================================================== */
.svc-detail { padding:96px 0; }
.svc-detail:nth-child(even) { background:var(--g50); }
.svc-detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.svc-detail-grid.flip { direction:rtl; }
.svc-detail-grid.flip > * { direction:ltr; }
.svc-img { border-radius:var(--r-xl); overflow:hidden; height:420px; box-shadow:var(--sh-xl); }
.svc-img img { width:100%; height:100%; object-fit:cover; }
.svc-content .slead { margin-top:14px; max-width:100%; }
.process-steps { margin-top:32px; display:flex; flex-direction:column; gap:16px; }
.pstep-row { display:flex; gap:16px; align-items:flex-start; }
.pstep-num { width:34px; height:34px; border-radius:50%; background:var(--g800); color:var(--white); font-size:13px; font-weight:800; display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-top:2px; }
.pstep-row h5 { font-size:14.5px; font-weight:700; margin-bottom:3px; }
.pstep-row p  { font-size:13.5px; color:var(--gray500); line-height:1.6; }
.svc-includes { margin-top:32px; display:grid; grid-template-columns:1fr 1fr; gap:10px 24px; }
.svc-inc-item { display:flex; align-items:center; gap:9px; font-size:14px; color:var(--gray700); }
.svc-inc-item::before { content:'✓'; color:var(--g400); font-weight:800; font-size:13px; flex-shrink:0; }
.svc-ctas { margin-top:36px; display:flex; gap:12px; flex-wrap:wrap; }

/* ===========================================================
   ABOUT / WHY US
=========================================================== */
.about { padding:108px 0; background:var(--g50); }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.about-visual { position:relative; padding-bottom:40px; }
.about-main { border-radius:var(--r-xl); overflow:hidden; height:480px; box-shadow:var(--sh-xl); }
.about-float {
  position:absolute; bottom:0; right:-24px;
  width:196px; height:196px; border-radius:var(--r-lg);
  overflow:hidden; box-shadow:var(--sh-xl); border:5px solid var(--white);
}
.about-badge {
  position:absolute; top:24px; left:-20px;
  background:var(--g400); color:var(--white);
  padding:18px 22px; border-radius:var(--r-md); box-shadow:var(--sh-lg); text-align:center; z-index:2;
}
.about-badge strong { display:block; font-size:30px; font-weight:900; line-height:1; }
.about-badge span   { font-size:12px; font-weight:600; opacity:.9; display:block; margin-top:3px; line-height:1.3; }
.about-content .slead { margin-top:14px; }
.diffs { margin-top:42px; display:flex; flex-direction:column; gap:24px; }
.diff  { display:flex; gap:18px; align-items:flex-start; }
.diff-icon { width:46px;height:46px;background:var(--g100);border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;font-size:21px;flex-shrink:0; }
.diff h4 { font-size:15.5px; font-weight:700; margin-bottom:4px; line-height:1.3; }
.diff p  { font-size:14px; color:var(--gray500); line-height:1.65; }
.about-ctas { display:flex; gap:12px; margin-top:40px; flex-wrap:wrap; }

/* ===========================================================
   PROCESS
=========================================================== */
.process { padding:108px 0; background:var(--white); }
.process-hd { text-align:center; margin-bottom:68px; }
.process-hd .slead { margin:16px auto 0; }
.process-track {
  display:grid; grid-template-columns:repeat(4,1fr); gap:0;
  position:relative; margin-bottom:52px;
}
.process-track::before {
  content:''; position:absolute; top:35px;
  left:12.5%; width:75%; height:2px;
  background:linear-gradient(to right,var(--g400),var(--g600)); z-index:0;
}
.pstep { text-align:center; padding:0 12px; position:relative; z-index:1; }
.pnum {
  width:70px;height:70px;border-radius:50%;
  background:var(--g800);color:var(--white);
  font-size:22px;font-weight:800;
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 22px; border:4px solid var(--white); box-shadow:var(--sh-md);
}
.pstep h4 { font-size:15.5px; font-weight:700; margin-bottom:10px; line-height:1.3; }
.pstep p  { font-size:13.5px; color:var(--gray500); line-height:1.68; }
.process-imgs { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.pimg { border-radius:var(--r-md); overflow:hidden; height:168px; box-shadow:var(--sh-sm); }
.pimg img { transition:transform .4s ease; width:100%; height:100%; object-fit:cover; }
.pimg:hover img { transform:scale(1.05); }

/* ===========================================================
   INDUSTRIES
=========================================================== */
.industries { padding:96px 0; background:var(--g800); }
.ind-hd { text-align:center; margin-bottom:52px; }
.ind-hd .eyebrow { color:var(--g300); }
.ind-hd .stitle  { color:var(--white); }
.ind-hd .slead   { color:rgba(255,255,255,.65); margin:14px auto 0; }
.ind-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.icard {
  background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.12);
  border-radius:var(--r-md); padding:26px 18px 22px;
  text-align:center; transition:all .22s; cursor:default;
}
.icard:hover { background:rgba(82,183,136,.22); border-color:var(--g400); transform:translateY(-3px); }
.icard .icon { font-size:30px; margin-bottom:14px; }
.icard h4 { font-size:14px; font-weight:600; color:var(--white); line-height:1.35; }
.icard p  { font-size:12.5px; color:rgba(255,255,255,.55); margin-top:5px; line-height:1.5; }
.ind-cta  { text-align:center; margin-top:48px; }

/* ===========================================================
   FLEET
=========================================================== */
.fleet { padding:108px 0; background:var(--g50); }
.fleet-grid { display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:center; }
.fleet-imgs { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.fimg { border-radius:var(--r-md); overflow:hidden; box-shadow:var(--sh-md); }
.fimg.wide { grid-column:1/-1; height:240px; }
.fimg:not(.wide) { height:172px; }
.fimg img { width:100%; height:100%; object-fit:cover; display:block; }
.fleet-content .slead { margin-top:14px; }
.fleet-checks { margin-top:32px; display:flex; flex-direction:column; gap:13px; }
.fcheck { display:flex; align-items:center; gap:12px; font-size:15px; color:var(--gray700); font-weight:500; }
.chk { width:24px;height:24px;border-radius:50%;background:var(--g400);color:var(--white);font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0; }
.fleet-ctas { margin-top:36px; display:flex; gap:12px; flex-wrap:wrap; }

/* ===========================================================
   STATS BAR
=========================================================== */
.stats-bar { background:var(--g800); padding:60px 0; }
.stats-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:32px; text-align:center; }
.stat-item strong { display:block; font-size:clamp(32px,4vw,48px); font-weight:900; color:var(--white); letter-spacing:-.03em; line-height:1; }
.stat-item span   { font-size:13px; color:rgba(255,255,255,.6); font-weight:500; margin-top:6px; display:block; }
.stat-divider { width:1px; background:rgba(255,255,255,.12); margin:0 auto; display:none; }

/* ===========================================================
   TESTIMONIALS
=========================================================== */
.testimonials { padding:108px 0; background:var(--white); }
.test-hd { text-align:center; margin-bottom:60px; }
.stars-row { display:flex; align-items:center; justify-content:center; gap:10px; margin-top:14px; }
.stars { color:var(--amber); font-size:20px; letter-spacing:2px; }
.stars-lbl { font-size:15px; color:var(--gray500); font-weight:500; }
.test-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.tcard { background:var(--g50); border:1.5px solid var(--g100); border-radius:var(--r-lg); padding:34px; display:flex; flex-direction:column; }
.tcard-stars { color:var(--amber); font-size:14px; margin-bottom:10px; }
.tcard-q    { font-size:44px; color:var(--g300); font-family:Georgia,serif; line-height:1; margin-bottom:6px; }
.tcard-body { font-size:14.5px; color:var(--gray700); line-height:1.75; flex:1; margin-bottom:26px; }
.tcard-auth { display:flex; align-items:center; gap:12px; }
.tcard-av   { width:44px;height:44px;border-radius:50%;background:var(--g800);color:var(--white);font-size:15px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0; }
.tcard-name { font-size:14.5px; font-weight:700; line-height:1.2; }
.tcard-role { font-size:12.5px; color:var(--gray500); margin-top:2px; }
.clients-strip { margin-top:72px; padding-top:52px; border-top:1.5px solid var(--gray100); }
.clients-lbl   { text-align:center; font-size:11.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--gray500); margin-bottom:28px; }
.clients-logos { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:10px 28px; }
.cpill { padding:8px 18px; border-radius:100px; border:1.5px solid var(--gray300); font-size:13px; font-weight:700; color:var(--gray500); letter-spacing:.02em; transition:all .2s; }
.cpill:hover { border-color:var(--g400); color:var(--g700); }

/* ===========================================================
   CTA / CONTACT
=========================================================== */
.cta-sec {
  padding:108px 0;
  background:linear-gradient(140deg,var(--g900) 0%,var(--g800) 100%);
  position:relative; overflow:hidden;
}
.cta-sec::after { content:''; position:absolute; top:-200px; right:-200px; width:700px; height:700px; border-radius:50%; background:radial-gradient(circle,rgba(82,183,136,.12) 0%,transparent 70%); pointer-events:none; }
.cta-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; position:relative; z-index:1; }
.cta-left .eyebrow { color:var(--g300); }
.cta-left .stitle  { color:var(--white); }
.cta-left .slead   { color:rgba(255,255,255,.72); margin-top:14px; }
.cta-perks { margin-top:34px; display:flex; flex-direction:column; gap:13px; }
.cta-perk  { display:flex; align-items:center; gap:11px; font-size:15px; color:rgba(255,255,255,.85); font-weight:500; }
.cta-ck    { width:22px;height:22px;border-radius:50%;background:var(--g400);color:var(--white);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0; }
.cta-imgbox { margin-top:36px; border-radius:var(--r-lg); overflow:hidden; height:230px; }
.cta-imgbox img { width:100%; height:100%; object-fit:cover; object-position:center 20%; }
.cta-contact { margin-top:28px; font-size:15px; color:rgba(255,255,255,.75); line-height:1.8; }
.cta-contact a { color:var(--g300); font-weight:700; }
.cta-contact a:hover { color:var(--g400); }

/* Form */
.eform { background:var(--white); border-radius:var(--r-xl); padding:44px 40px; box-shadow:var(--sh-xl); }
.eform-h { margin-bottom:28px; }
.eform-h h3 { font-size:22px; font-weight:800; margin-bottom:4px; }
.eform-h p  { font-size:14px; color:var(--gray500); }
.frow   { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.fg     { display:flex; flex-direction:column; gap:6px; margin-bottom:16px; }
.fg label { font-size:12.5px; font-weight:700; color:var(--gray700); letter-spacing:.02em; }
.fg input,.fg select,.fg textarea {
  padding:12px 15px; border:1.5px solid var(--gray300); border-radius:var(--r-sm);
  font-size:15px; font-family:inherit; color:var(--gray900); background:var(--white);
  transition:border-color .2s, box-shadow .2s; outline:none; -webkit-appearance:none;
}
.fg input:focus,.fg select:focus,.fg textarea:focus { border-color:var(--g400); box-shadow:0 0 0 3px rgba(82,183,136,.18); }
.fg textarea { resize:vertical; min-height:96px; }
.fsub { width:100%; padding:17px; background:var(--g800); color:var(--white); border:none; border-radius:var(--r-sm); font-size:16px; font-weight:700; cursor:pointer; transition:all .22s; margin-top:4px; }
.fsub:hover { background:var(--g700); transform:translateY(-1px); box-shadow:var(--sh-md); }
.fdisclaim { text-align:center; font-size:12px; color:var(--gray500); margin-top:12px; }
.fsuccess { display:none; text-align:center; padding:52px 20px; }
.fsuccess-circle { width:72px;height:72px;border-radius:50%;background:var(--g400);display:flex;align-items:center;justify-content:center;font-size:32px;margin:0 auto 22px;color:white; }
.fsuccess h3 { font-size:22px; font-weight:800; margin-bottom:10px; }
.fsuccess p  { font-size:15px; color:var(--gray500); line-height:1.7; }
.fsuccess a  { color:var(--g700); font-weight:700; }

/* ===========================================================
   SERVICE AREA PAGE
=========================================================== */
.map-section { padding:80px 0; background:var(--white); }
.map-wrap { border-radius:var(--r-xl); overflow:hidden; box-shadow:var(--sh-xl); height:520px; }
.map-wrap iframe { width:100%; height:100%; border:0; display:block; }
.cities-section { padding:96px 0; background:var(--g50); }
.cities-hd { text-align:center; margin-bottom:56px; }
.cities-hd .slead { margin:14px auto 0; }
.cities-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.city-card {
  background:var(--white); border:1.5px solid var(--gray100);
  border-radius:var(--r-lg); padding:32px 28px; transition:all .22s;
}
.city-card:hover { border-color:var(--g300); box-shadow:var(--sh-lg); transform:translateY(-3px); }
.city-icon { width:52px;height:52px;background:var(--g100);border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;font-size:24px;margin-bottom:16px; }
.city-card h3 { font-size:19px; font-weight:800; margin-bottom:6px; color:var(--gray900); }
.city-card .county { font-size:12.5px; color:var(--g600); font-weight:600; letter-spacing:.04em; text-transform:uppercase; margin-bottom:12px; }
.city-card p { font-size:13.5px; color:var(--gray500); line-height:1.65; margin-bottom:14px; }
.city-zips { font-size:12px; color:var(--gray500); font-weight:500; }
.city-zips strong { color:var(--gray700); }
.coverage-band { background:var(--g800); padding:60px 0; }
.coverage-inner { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.coverage-inner .stitle { color:var(--white); }
.coverage-inner .slead  { color:rgba(255,255,255,.7); margin-top:14px; max-width:100%; }
.zip-cloud { display:flex; flex-wrap:wrap; gap:8px; margin-top:28px; }
.zip-pill { background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2); color:rgba(255,255,255,.8); padding:5px 12px; border-radius:100px; font-size:12.5px; font-weight:600; }

/* ===========================================================
   CONTACT PAGE
=========================================================== */
.contact-section { padding:96px 0; background:var(--white); }
.contact-grid { display:grid; grid-template-columns:1fr 1.1fr; gap:72px; align-items:start; }
.contact-info { padding-top:8px; }
.contact-info h2 { font-size:clamp(22px,3vw,34px); font-weight:800; letter-spacing:-.02em; margin-bottom:14px; }
.contact-info .slead { max-width:100%; }
.cinfo-blocks { margin-top:36px; display:flex; flex-direction:column; gap:0; }
.cinfo-block { display:flex; gap:16px; align-items:flex-start; padding:22px 0; border-bottom:1px solid var(--gray100); }
.cinfo-block:last-child { border-bottom:none; }
.cinfo-ico { width:48px;height:48px;background:var(--g100);border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0; }
.cinfo-block h4 { font-size:14px; font-weight:700; color:var(--gray700); text-transform:uppercase; letter-spacing:.04em; margin-bottom:5px; }
.cinfo-block p,.cinfo-block a { font-size:16px; color:var(--gray900); font-weight:600; line-height:1.5; }
.cinfo-block a:hover { color:var(--g600); }
.contact-map-mini { margin-top:36px; border-radius:var(--r-lg); overflow:hidden; height:240px; box-shadow:var(--sh-md); }
.contact-map-mini iframe { width:100%;height:100%;border:0;display:block; }
.hours-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:16px; }
.hour-row { font-size:13.5px; color:var(--gray700); }
.hour-row strong { display:block; font-weight:600; color:var(--gray900); }

/* ===========================================================
   CONTACT PAGE — EXTENDED STYLES
=========================================================== */

/* Page hero bg image + overlay */
.page-hero[style] { background-size:cover; background-position:center; background-repeat:no-repeat; }
.page-hero-overlay {
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(135deg,rgba(15,36,25,.93) 0%,rgba(27,58,45,.84) 100%);
}
.page-hero-content { position:relative; z-index:2; max-width:700px; }
.page-hero-lead { font-size:clamp(15px,1.5vw,18px); color:rgba(255,255,255,.76); line-height:1.75; margin-bottom:32px; margin-top:16px; max-width:620px; }
.page-hero-btns { display:flex; gap:12px; flex-wrap:wrap; }

/* Outline white button */
.btn-outline-white { background:transparent; color:var(--white); border-color:rgba(255,255,255,.6); }
.btn-outline-white:hover { background:rgba(255,255,255,.12); border-color:var(--white); }

/* Gold CTA button */
.btn-gold { background:var(--amber); color:#111; border-color:var(--amber); font-weight:800; }
.btn-gold:hover { background:#e08e0b; border-color:#e08e0b; transform:translateY(-1px); box-shadow:var(--sh-md); }

/* Full-width button */
.btn-full { width:100%; padding:17px 28px; font-size:16px; }

/* Trust bar list variant */
.trust-bar-list {
  list-style:none; display:flex; align-items:center; justify-content:center;
  flex-wrap:wrap; gap:10px 40px;
}
.trust-bar-list li {
  display:flex; align-items:center; gap:9px;
  font-size:13.5px; font-weight:600; color:rgba(255,255,255,.88);
}
.trust-dot {
  width:6px; height:6px; border-radius:50%;
  background:var(--g400); display:inline-block; flex-shrink:0;
}

/* Contact info lead paragraph */
.contact-info-lead { font-size:15.5px; color:var(--gray500); line-height:1.78; margin-bottom:0; }

/* cinfo-block icon/body variants */
.cinfo-icon {
  width:48px; height:48px; background:var(--g100); border-radius:var(--r-sm);
  display:flex; align-items:center; justify-content:center;
  font-size:22px; flex-shrink:0;
}
.cinfo-body { display:flex; flex-direction:column; gap:3px; }
.cinfo-body strong { font-size:12px; font-weight:700; color:var(--gray500); text-transform:uppercase; letter-spacing:.06em; margin-bottom:3px; }
.cinfo-primary { font-size:16px; font-weight:700; color:var(--gray900); }
a.cinfo-primary:hover { color:var(--g600); }
.cinfo-note { font-size:13px; color:var(--gray500); line-height:1.6; margin-top:2px; }

/* Hours grid */
.hours-grid {
  display:grid; grid-template-columns:auto 1fr; gap:6px 16px; margin-top:10px;
  font-size:13.5px;
}
.hours-grid span:nth-child(odd) { font-weight:600; color:var(--gray700); white-space:nowrap; }
.hours-grid span:nth-child(even) { color:var(--gray500); }
.hours-grid a { color:var(--g600); font-weight:700; }
.hours-grid a:hover { color:var(--g800); }

/* Form group (contact page uses .fgroup, existing CSS uses .fg) */
.fgroup { display:flex; flex-direction:column; gap:6px; margin-bottom:16px; }
.fgroup label { font-size:12.5px; font-weight:700; color:var(--gray700); letter-spacing:.02em; }
.fgroup .req { color:var(--red); }
.fgroup input,
.fgroup select,
.fgroup textarea {
  padding:12px 15px; border:1.5px solid var(--gray300); border-radius:var(--r-sm);
  font-size:15px; font-family:inherit; color:var(--gray900); background:var(--white);
  transition:border-color .2s, box-shadow .2s; outline:none; -webkit-appearance:none;
}
.fgroup input:focus,
.fgroup select:focus,
.fgroup textarea:focus { border-color:var(--g400); box-shadow:0 0 0 3px rgba(82,183,136,.18); }
.fgroup textarea { resize:vertical; min-height:100px; }
.fgroup select { cursor:pointer; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; padding-right:38px; }

/* Form privacy note */
.form-privacy { font-size:12px; color:var(--gray500); text-align:center; margin-top:12px; line-height:1.6; }

/* Why Us Strip */
.why-strip {
  background:linear-gradient(140deg,var(--g900) 0%,var(--g800) 100%);
  padding:60px 0;
}
.why-strip-grid {
  display:grid; grid-template-columns:repeat(4,1fr); gap:32px; text-align:center;
}
.why-strip-item {
  display:flex; flex-direction:column; align-items:center; gap:10px;
  padding:8px 16px;
}
.why-strip-icon { font-size:36px; line-height:1; margin-bottom:4px; }
.why-strip-item strong { display:block; font-size:17px; font-weight:800; color:var(--white); line-height:1.2; }
.why-strip-item span { font-size:13.5px; color:rgba(255,255,255,.62); line-height:1.6; }

/* FAQ Section */
.faq-section { padding:96px 0; background:var(--white); }
.section-header { text-align:center; margin-bottom:60px; }
.section-header h2 { font-size:clamp(26px,3.6vw,44px); font-weight:800; line-height:1.12; letter-spacing:-.025em; margin-top:4px; }
.section-lead { font-size:clamp(15px,1.4vw,18px); color:var(--gray500); line-height:1.75; max-width:540px; margin:12px auto 0; }
.faq-grid {
  display:grid; grid-template-columns:1fr 1fr; gap:0 56px;
}
.faq-item {
  padding:24px 0; border-bottom:1px solid var(--gray100);
}
.faq-item:nth-last-child(-n+2) { border-bottom:none; }
.faq-item h4 { font-size:16px; font-weight:700; color:var(--gray900); line-height:1.4; margin-bottom:8px; }
.faq-item p { font-size:14.5px; color:var(--gray500); line-height:1.72; }

/* CTA Centered variant */
.cta-sec-centered { text-align:center; }
.cta-centered-content { position:relative; z-index:1; max-width:640px; margin:0 auto; }
.cta-centered-content h2 { font-size:clamp(28px,4vw,50px); font-weight:900; color:var(--white); letter-spacing:-.025em; line-height:1.1; margin-bottom:18px; }
.cta-centered-content p { font-size:clamp(15px,1.5vw,18px); color:rgba(255,255,255,.72); line-height:1.75; margin-bottom:36px; }
.cta-btns { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }

/* ===========================================================
   AREA BAND
=========================================================== */
.area-band { background:var(--g50); border-top:1.5px solid var(--g100); border-bottom:1.5px solid var(--g100); padding:28px 0; }
.area-band-in { text-align:center; font-size:14.5px; color:var(--gray700); }
.area-band-in strong { color:var(--gray900); }
.area-band-in .zips { display:block; font-size:12.5px; color:var(--gray500); margin-top:5px; }

/* ===========================================================
   FOOTER
=========================================================== */
.footer { background:#0a1a12; color:rgba(255,255,255,.7); padding:80px 0 34px; }
.footer-grid { display:grid; grid-template-columns:1.6fr 1fr 1fr 1.1fr; gap:56px; margin-bottom:60px; }
.footer-bmark { margin-bottom:12px; }
.footer-bmark img { height:40px; width:auto; display:block; filter:brightness(0) invert(1); opacity:.9; }
.footer-bname strong { display:block; font-size:16px; font-weight:800; color:var(--white); }
.footer-bname span   { font-size:11px; letter-spacing:.04em; }
.footer-brand p { font-size:13.5px; line-height:1.75; margin-top:16px; max-width:270px; }
.fsocials { display:flex; gap:10px; margin-top:22px; }
.fsoc { width:36px;height:36px;border-radius:var(--r-sm);background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:rgba(255,255,255,.6);transition:all .2s; }
.fsoc:hover { background:var(--g600); color:white; }
.fcol h5 { font-size:13px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--white);margin-bottom:20px; }
.flinks { list-style:none; display:flex; flex-direction:column; gap:10px; }
.flinks a { font-size:13.5px;color:rgba(255,255,255,.55);transition:color .2s; }
.flinks a:hover { color:var(--g300); }
.fcon-row { display:flex; align-items:flex-start; gap:10px; margin-bottom:14px; font-size:13.5px; }
.fcon-row strong { display:block; color:var(--white); font-weight:600; }
.fcon-row a { color:var(--white); }
.fcon-row a:hover { color:var(--g300); }
.footer-bot { border-top:1px solid rgba(255,255,255,.08); padding-top:28px; display:flex; justify-content:space-between; align-items:center; font-size:13px; flex-wrap:wrap; gap:12px; }

/* ===========================================================
   CHAT WIDGET
=========================================================== */
.chat-launcher { position:fixed; bottom:28px; right:28px; z-index:1000; }
.chat-fab {
  width:62px; height:62px; border-radius:50%; background:var(--g800); border:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 24px rgba(27,58,45,.55);
  transition:transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .25s; position:relative;
}
.chat-fab:hover { transform:scale(1.1); box-shadow:0 8px 32px rgba(27,58,45,.65); }
.chat-notif {
  position:absolute; top:-3px; right:-3px; width:20px; height:20px; background:var(--red);
  border-radius:50%; border:2.5px solid white; font-size:10.5px; font-weight:800; color:white;
  display:flex; align-items:center; justify-content:center; animation:npulse 2.5s ease-in-out infinite;
}
@keyframes npulse { 0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,.5)} 50%{box-shadow:0 0 0 6px rgba(239,68,68,0)} }
.chat-panel {
  position:fixed; right:28px; bottom:104px; width:370px; max-height:580px;
  background:var(--white); border-radius:var(--r-xl); box-shadow:0 24px 72px rgba(0,0,0,.22);
  display:flex; flex-direction:column; overflow:hidden; z-index:999;
  transform:scale(.85) translateY(18px); opacity:0; pointer-events:none;
  transition:transform .32s cubic-bezier(.34,1.56,.64,1), opacity .28s ease; transform-origin:bottom right;
}
.chat-panel.open { transform:scale(1) translateY(0); opacity:1; pointer-events:all; }
.chat-head { background:var(--g800); padding:18px 20px; display:flex; align-items:center; gap:13px; flex-shrink:0; }
.chat-av   { width:42px;height:42px;background:var(--g400);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:19px;flex-shrink:0; }
.chat-info strong { display:block; color:var(--white); font-size:15px; font-weight:700; }
.chat-status { font-size:12px; color:rgba(255,255,255,.65); display:flex; align-items:center; gap:5px; margin-top:2px; }
.ondot { width:7px;height:7px;border-radius:50%;background:#4ade80;animation:blink 2s infinite; }
.chat-x { margin-left:auto; background:none; border:none; color:rgba(255,255,255,.6); cursor:pointer; font-size:19px; line-height:1; padding:4px; border-radius:6px; transition:all .2s; }
.chat-x:hover { color:white; background:rgba(255,255,255,.12); }
.chat-body { flex:1; overflow-y:auto; padding:20px 18px; display:flex; flex-direction:column; gap:10px; background:#f7faf9; scroll-behavior:smooth; }
.msg { max-width:88%; padding:11px 15px; border-radius:16px; font-size:14px; line-height:1.55; animation:mi .3s ease; }
@keyframes mi{ from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none} }
.msg.bot { background:var(--white); color:var(--gray900); border-radius:4px 16px 16px 16px; box-shadow:var(--sh-xs); align-self:flex-start; }
.msg.usr { background:var(--g800); color:var(--white); border-radius:16px 4px 16px 16px; align-self:flex-end; }
.chips { display:flex; flex-wrap:wrap; gap:7px; align-self:flex-start; margin-top:2px; }
.chip { background:var(--white); border:1.5px solid var(--g400); color:var(--g800); padding:7px 14px; border-radius:100px; font-size:13px; font-weight:600; cursor:pointer; transition:all .2s; white-space:nowrap; }
.chip:hover { background:var(--g400); color:white; border-color:var(--g400); }
.typing-b { display:flex;align-items:center;gap:4px;padding:13px 15px;background:var(--white);border-radius:4px 16px 16px 16px;box-shadow:var(--sh-xs);align-self:flex-start;width:fit-content; }
.td { width:6px;height:6px;border-radius:50%;background:var(--gray500);animation:td .9s ease-in-out infinite; }
.td:nth-child(2){animation-delay:.15s} .td:nth-child(3){animation-delay:.3s}
@keyframes td{0%,60%,100%{transform:none;opacity:.4}30%{transform:translateY(-5px);opacity:1}}
.chat-foot { padding:14px 16px; border-top:1px solid var(--gray100); display:flex; gap:10px; align-items:flex-end; background:var(--white); flex-shrink:0; }
.chat-input { flex:1; border:1.5px solid var(--gray300); border-radius:var(--r-md); padding:10px 14px; font-size:14px; font-family:inherit; resize:none; outline:none; max-height:80px; overflow-y:auto; transition:border-color .2s; line-height:1.45; }
.chat-input:focus { border-color:var(--g400); }
.chat-send { width:40px;height:40px;background:var(--g800);border:none;border-radius:var(--r-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .2s; }
.chat-send:hover { background:var(--g600); }

/* ===========================================================
   RESPONSIVE
=========================================================== */
@media(max-width:1024px){
  .services-grid{grid-template-columns:repeat(2,1fr)}
  .about-grid{grid-template-columns:1fr;gap:56px}
  .about-visual{max-width:520px}
  .about-float{right:0}
  .fleet-grid{grid-template-columns:1fr}
  .fleet-imgs{max-width:560px}
  .cta-grid{grid-template-columns:1fr;gap:52px}
  .footer-grid{grid-template-columns:1fr 1fr;gap:40px}
  .ind-grid{grid-template-columns:repeat(4,1fr)}
  .svc-detail-grid{grid-template-columns:1fr;gap:48px}
  .svc-detail-grid.flip{direction:ltr}
  .cities-grid{grid-template-columns:repeat(2,1fr)}
  .stats-grid{grid-template-columns:repeat(2,1fr);gap:40px}
  .contact-grid{grid-template-columns:1fr;gap:52px}
  .coverage-inner{grid-template-columns:1fr;gap:40px}
  .why-strip-grid{grid-template-columns:repeat(2,1fr);gap:32px}
  .faq-grid{grid-template-columns:1fr;gap:0}
  .faq-item:last-child{border-bottom:none}
}
@media(max-width:768px){
  .nav-links,.nav-right .btn,.nav-phone{display:none}
  .hamburger{display:flex}
  .services-grid{grid-template-columns:1fr}
  .process-track{grid-template-columns:1fr 1fr}
  .process-track::before{display:none}
  .process-imgs{grid-template-columns:1fr 1fr}
  .ind-grid{grid-template-columns:repeat(2,1fr)}
  .test-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr;gap:32px}
  .footer-bot{flex-direction:column;text-align:center}
  .frow{grid-template-columns:1fr}
  .chat-panel{right:0;left:0;bottom:0;width:100%;max-height:78vh;border-radius:var(--r-xl) var(--r-xl) 0 0;transform-origin:bottom center}
  .chat-launcher{bottom:20px;right:16px}
  .chat-fab{width:54px;height:54px}
  .cities-grid{grid-template-columns:1fr}
  .svc-includes{grid-template-columns:1fr}
  .map-wrap{height:380px}
  .why-strip-grid{grid-template-columns:repeat(2,1fr)}
  .cta-btns{flex-direction:column;align-items:center}
  .page-hero-btns{flex-direction:column;align-items:flex-start}
}
@media(max-width:480px){
  .container{padding:0 18px}
  .process-track{grid-template-columns:1fr}
  .process-imgs{display:none}
  .ind-grid{grid-template-columns:repeat(2,1fr)}
  .hero-stats{gap:24px 32px}
  .about-float{display:none}
  .about-badge{top:14px;left:14px;padding:12px 16px}
  .eform{padding:28px 22px}
  .footer-grid{grid-template-columns:1fr}
  .trust-sep{display:none}
  .stats-grid{grid-template-columns:1fr 1fr}
  .why-strip-grid{grid-template-columns:1fr 1fr}
  .trust-bar-list{gap:8px 24px}
  .faq-grid{grid-template-columns:1fr}
}
