/* ==========================================================================
   SELVAMURUGAN FAST DRILLS — SINGLE STYLESHEET
   Site design system + loader, merged into one file.
   Dark is the default theme; add data-theme="light" on <html> (your
   existing theme-toggle script already does this) to switch both the
   site AND the loader into their light-theme colors together.
   ========================================================================== */

/* ==========================================================================
   SELVAMURUGAN FAST DRILLS — "STRATA" DESIGN SYSTEM
   Concept: the page reads like a core sample — layered, deep, precise.
   Palette:  well-black #0A1218 · slate #16232C · rust #C1571E (drill-iron)
             aqua #2FD3C9 (aquifer / water-struck signal) · ochre #D9A441 (soil)
   Type:     Space Grotesk (display) · IBM Plex Sans (body) · IBM Plex Mono (data/depth)
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap');

/* -------------------------------- TOKENS -------------------------------- */
:root{
  --well:        #0A1218;
  --slate:       #16232C;
  --slate-2:     #1F313C;
  --rust:        #C1571E;
  --rust-light:  #E07A3D;
  --aqua:        #2FD3C9;
  --aqua-glow:   rgba(47,211,201,.35);
  --ochre:       #D9A441;
  --mist:        #EAF1F2;
  --ink:         #EAF1F2;
  --ink-dim:     #9FB2BA;
  --line:        rgba(234,241,242,.10);
  --card:        #101B22;
  --card-2:      #142029;
  --on-accent:   #062622;  /* dark text/icons sitting on bright accent fills — stays legible in both themes */
  --radius:      18px;
  --radius-sm:   10px;
  --shadow:      0 20px 60px -20px rgba(0,0,0,.55);
  --ease:        cubic-bezier(.22,.9,.3,1);
  --font-display:'Space Grotesk', sans-serif;
  --font-body:   'IBM Plex Sans', sans-serif;
  --font-mono:   'IBM Plex Mono', monospace;
}

/* -------------------------------- LIGHT THEME ----------------------------
   Warm sandstone base instead of a flat clinical white, with a deepened
   teal/rust/gold accent trio so the palette still reads "drilling site",
   not "generic SaaS light mode". Every accent color is darkened just
   enough from its dark-theme value to clear AA contrast on the pale bg. */
html[data-theme="light"] {
  --well:       #F3F0E7;   /* warm sandstone-cream backdrop */
  --slate:      #FFFFFF;
  --slate-2:    #ECE6D8;   /* deeper sand for section banding */
  --ink:        #17211F;   /* near-black forest-ink, richer than plain navy */
  --ink-dim:    #5B6B64;   /* muted olive-grey secondary text */
  --line:       rgba(23,33,31,.13);
  --card:       #FFFDF8;
  --card-2:     #F3ECDB;   /* warm tinted cards */
  --rust:       #B44E14;   /* deepened for contrast on cream */
  --rust-light: #D9711F;
  --aqua:       #0B9C8F;   /* deepened teal — stays vivid, reads on white */
  --aqua-glow:  rgba(11,156,143,.22);
  --ochre:      #A9791F;   /* deepened gold, legible as text */
  --on-accent:  #FCFFFE;   /* on light theme, accent fills are deep enough for light text */
  --shadow:     0 16px 40px -14px rgba(23,33,31,.16);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--well);
  color:var(--ink);
  font-family:var(--font-body);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  transition:background .5s var(--ease), color .5s var(--ease);
}
body.menu-open{ overflow:hidden; }
h1,h2,h3,h4,h5{ font-family:var(--font-display); margin:0; letter-spacing:-.01em; }
p{ margin:0; color:var(--ink-dim); }
a{ text-decoration:none; color:inherit; }
img{ max-width:100%; display:block; }
ul{ list-style:none; margin:0; padding:0; }
::selection{ background:var(--aqua); color:var(--on-accent); }
::-webkit-scrollbar{ width:10px; }
::-webkit-scrollbar-track{ background:var(--well); }
::-webkit-scrollbar-thumb{ background:var(--slate-2); border-radius:10px; border:2px solid var(--well); }

/* ambient strata backdrop */
.bg{
  position:fixed; inset:0; z-index:-2; pointer-events:none;
  background:
    radial-gradient(1100px 600px at 85% -10%, rgba(193,87,30,.14), transparent 60%),
    radial-gradient(900px 500px at 5% 15%, rgba(47,211,201,.10), transparent 55%),
    repeating-linear-gradient(180deg, transparent 0 140px, rgba(234,241,242,.025) 140px 142px),
    var(--well);
  transition:background-color .5s var(--ease);
}

.txtcolor{
  background:linear-gradient(100deg,var(--ink) 30%,var(--aqua) 65%,var(--ochre));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}

/* -------------------------------- TITLE1 / FLOATING CTAs ---------------- */
.title1 h2{ position:absolute; left:-9999px; } /* SEO heading, visually hidden */

/* Floating AI assistant button (replaced the WhatsApp / Instagram floats) */
.ai-float{
  position:fixed; right:26px; bottom:26px; z-index:60;
  width:60px; height:60px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:1.55rem; color:#fff;
  background:linear-gradient(145deg,#5B5BE6,#8B3FE0);
  box-shadow:0 14px 32px -8px rgba(124,58,237,.65);
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.ai-float::after{
  content:''; position:absolute; inset:-6px; border-radius:50%;
  border:2px solid #8B3FE0; opacity:.35;
  animation:pulseRing 2.4s ease-out infinite;
}
.ai-float:hover{ transform:translateY(-4px) scale(1.06); box-shadow:0 18px 38px -8px rgba(124,58,237,.8); }
.ai-float__badge{
  position:absolute; top:-4px; right:-4px;
  background:var(--aqua); color:var(--on-accent);
  font-family:var(--font-body); font-size:.62rem; font-weight:700; line-height:1;
  padding:4px 6px; border-radius:999px; border:2px solid var(--well);
}
.ai-float__tip{
  position:absolute; right:calc(100% + 12px); top:50%; transform:translateY(-50%) translateX(6px);
  white-space:nowrap; font-family:var(--font-body); font-size:.8rem; font-weight:600;
  color:var(--ink); background:var(--card); border:1px solid var(--line);
  padding:7px 12px; border-radius:999px; box-shadow:var(--shadow);
  opacity:0; pointer-events:none; transition:opacity .25s var(--ease), transform .25s var(--ease);
}
.ai-float:hover .ai-float__tip,
.ai-float:focus-visible .ai-float__tip{ opacity:1; transform:translateY(-50%) translateX(0); }
@keyframes pulseRing{
  0%{ transform:scale(.9); opacity:.5; }
  100%{ transform:scale(1.5); opacity:0; }
}

/* -------------------------------- NAVBAR --------------------------------- */
.navbar{
  position:sticky; top:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:18px 40px;
  background:rgba(10,18,24,.55);
  backdrop-filter:blur(16px) saturate(140%);
  -webkit-backdrop-filter:blur(16px) saturate(140%);
  border-bottom:1px solid var(--line);
  transition:padding .35s var(--ease), background .35s var(--ease), box-shadow .35s var(--ease);
}
html[data-theme="light"] .navbar{ background:rgba(255,255,255,.7); }
.navbar.scrolled{ padding:10px 40px; box-shadow:var(--shadow); }
.title{ display:flex; align-items:center; gap:12px; }
.brand-logo{
  width:46px; height:46px; border-radius:50%; flex-shrink:0;
  object-fit:cover; background:var(--slate-2);
  border:2px solid var(--aqua);
  box-shadow:0 0 0 3px rgba(47,211,201,.12), 0 6px 16px -6px var(--aqua-glow);
  transition:box-shadow .35s var(--ease), border-color .35s var(--ease);
}
.title-text{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.brand-title{
  font-size:clamp(.92rem,2.6vw,1.15rem); font-weight:700; letter-spacing:.02em;
  color:var(--ink);
}
.title span{ font-family:var(--font-mono); font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--aqua); }

.nav-links{ display:flex; align-items:center; gap:30px; }
.nav-links a{
  position:relative; font-size:.92rem; font-weight:500; color:var(--ink-dim);
  padding:6px 2px; transition:color .3s var(--ease);
}
.nav-links a::after{
  content:''; position:absolute; left:0; bottom:0; width:0; height:2px;
  background:linear-gradient(90deg,var(--aqua),var(--rust));
  transition:width .35s var(--ease);
}
.nav-links a:hover{ color:var(--ink); }
.nav-links a:hover::after{ width:100%; }

/* Desktop: show icons in nav links, hide chevrons */
.mnav-list .mnav-ico{ display:inline-flex; align-items:center; justify-content:center; margin-right:5px; font-size:.85rem; color:var(--aqua); }
.desktop-hide{ display:none !important; }

/* Desktop corner box: theme toggle + admin stacked */
.desktop-corner-box{
  display:flex; flex-direction:column; align-items:center; gap:4px;
  background:var(--glass); border:1px solid var(--border);
  border-radius:10px; padding:6px 8px;
  box-shadow:0 4px 16px -6px rgba(0,0,0,.25);
}

/* Admin button inside corner box */
.admin-btn-nav{
  display:flex; align-items:center; justify-content:center; gap:5px;
  background:rgba(193,87,30,.12); color:var(--rust);
  border:1px solid rgba(193,87,30,.35); padding:5px 10px; border-radius:6px;
  font-family:var(--font-body); font-weight:600; font-size:.75rem; cursor:pointer;
  transition:background .3s var(--ease), box-shadow .3s var(--ease);
  white-space:nowrap; text-decoration:none; width:100%;
}
.admin-btn-nav:hover{ background:rgba(193,87,30,.22); box-shadow:0 4px 12px -6px rgba(193,87,30,.5); }

.calc-btn-nav{
  display:flex; align-items:center; gap:8px;
  background:linear-gradient(135deg,var(--rust),var(--rust-light));
  color:#fff; border:none; padding:11px 20px; border-radius:999px;
  font-family:var(--font-body); font-weight:600; font-size:.88rem; cursor:pointer;
  box-shadow:0 10px 24px -10px rgba(193,87,30,.7);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.calc-btn-nav:hover{ transform:translateY(-2px); box-shadow:0 14px 30px -8px rgba(193,87,30,.85); }

.theme-toggle{
  width:52px; height:28px; border-radius:999px; border:1px solid var(--line);
  background:var(--slate-2); position:relative; cursor:pointer; flex-shrink:0;
}
.toggle-thumb{
  position:absolute; top:2px; left:2px; width:22px; height:22px; border-radius:50%;
  background:linear-gradient(145deg,var(--aqua),#1BA79D);
  display:flex; align-items:center; justify-content:center; color:var(--on-accent); font-size:.62rem;
  transition:transform .4s var(--ease); box-shadow:0 4px 10px rgba(0,0,0,.35);
}
html[data-theme="light"] .toggle-thumb{ transform:translateX(24px); background:linear-gradient(145deg,var(--ochre),#B97F26); }
.icon-sun,.icon-moon{ position:absolute; }
html[data-theme="dark"] .icon-sun,html:not([data-theme="light"]) .icon-sun{ opacity:0; }
html[data-theme="light"] .icon-moon{ opacity:0; }

.menu-toggle{
  display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:6px;
}
.menu-toggle .bar{ width:24px; height:2px; background:var(--ink); border-radius:2px; transition:transform .35s var(--ease), opacity .35s var(--ease); }
.menu-toggle.active .bar:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.menu-toggle.active .bar:nth-child(2){ opacity:0; }
.menu-toggle.active .bar:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

.nav-overlay{
  position:fixed; inset:0; background:rgba(6,10,13,.6); backdrop-filter:blur(4px);
  z-index:40; opacity:0; pointer-events:none; transition:opacity .35s var(--ease);
}
.nav-overlay.active{ opacity:1; pointer-events:auto; }

/* ---------- MOBILE DRAWER (Home / About / Calculator / Install / Admin
   / Call / WhatsApp panel) — hidden by default; switched on for the
   ≤860px drawer in index2.css. On desktop .nav-links stays the plain
   inline text menu above; only the icon/chevron/card chrome is hidden
   here so the anchors themselves keep working as ordinary nav links. */
.mnav-head,
.mnav-cards,
.mnav-contact-row,
.mnav-footer-tag{ display:none; }
.mnav-chev{ display:none; }
.mnav-list{ display:contents; }
/* On desktop, show the icon but keep it subtle */
.mnav-ico{ display:inline-flex; align-items:center; margin-right:4px; font-size:.85rem; color:var(--aqua); }

/* -------------------------------- SLIDER --------------------------------- */
.slider{ position:relative; height:78vh; min-height:480px; overflow:hidden; }
.slide-truck{ position:relative; width:100%; height:100%; }
.slide-truck img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  opacity:0; transform:scale(1.08);
  animation:kenSlide 20s var(--ease) infinite;
}
.slide-truck img:nth-child(1){ animation-delay:0s; }
.slide-truck img:nth-child(2){ animation-delay:5s; }
.slide-truck img:nth-child(3){ animation-delay:10s; }
.slide-truck img:nth-child(4){ animation-delay:15s; }
@keyframes kenSlide{
  0%{ opacity:0; transform:scale(1.08); }
  4%{ opacity:1; transform:scale(1.08); }
  22%{ opacity:1; transform:scale(1); }
  26%{ opacity:0; }
  100%{ opacity:0; }
}
.slider::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,18,24,.35) 0%, rgba(10,18,24,.75) 75%, var(--well) 100%);
}
.slider-text{
  position:absolute; z-index:2; left:6%; bottom:14%; max-width:640px;
}
.slider-text h1{
  color:#fff; font-size:clamp(2rem,4.4vw,3.4rem); line-height:1.08; margin-bottom:14px;
  animation:riseIn 1s var(--ease) both;
}
.slider-text p{ color:rgba(234,241,242,.85); font-size:1.05rem; margin-bottom:22px; animation:riseIn 1s var(--ease) .15s both; }
.slider-text a{ display:inline-flex; align-items:center; gap:8px; margin-right:14px; animation:riseIn 1s var(--ease) .3s both; }
.call-btn{
  background:linear-gradient(135deg,var(--aqua),#1BA79D); color:var(--on-accent); font-weight:700;
  padding:14px 26px; border-radius:999px; box-shadow:0 16px 34px -10px var(--aqua-glow);
  transition:transform .3s var(--ease);
}
.call-btn:hover{ transform:translateY(-3px); }
.slider-text a:not(.call-btn){ color:#fff; border-bottom:1px solid rgba(255,255,255,.4); padding-bottom:2px; transition:border-color .3s; }
.slider-text a:not(.call-btn):hover{ border-color:var(--aqua); color:var(--aqua); }
@keyframes riseIn{ from{ opacity:0; transform:translateY(24px);} to{ opacity:1; transform:translateY(0);} }

.spacer{ height:4px; background:linear-gradient(90deg,var(--rust),var(--ochre),var(--aqua)); }

/* -------------------------------- HERO ------------------------------------ */
.hero{ position:relative; padding:110px 8% 90px; overflow:hidden; }
.hero-container{ position:relative; max-width:920px; margin:0 auto; text-align:center; z-index:2; }

.hero-badge{
  display:inline-flex; align-items:center; gap:8px; font-family:var(--font-mono);
  font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ochre);
  border:1px solid rgba(217,164,65,.4); padding:8px 16px; border-radius:999px;
  background:rgba(217,164,65,.08); margin-bottom:26px;
  opacity:0; animation:popIn .7s var(--ease) .1s forwards;
}
.hero h1{ font-size:clamp(2.3rem,5vw,3.8rem); line-height:1.05; margin-bottom:14px;
  opacity:0; animation:riseIn .8s var(--ease) .25s forwards; }
.hero h2{ font-size:clamp(1.1rem,2.2vw,1.5rem); font-weight:500; color:var(--ink-dim); margin-bottom:20px;
  opacity:0; animation:riseIn .8s var(--ease) .38s forwards; }
.hero-text{ font-size:1.05rem; max-width:640px; margin:0 auto 34px; color:var(--ink-dim);
  opacity:0; animation:riseIn .8s var(--ease) .5s forwards; }
.hero-text strong{ color:var(--aqua); font-weight:600; }

.hero-buttons{ display:flex; justify-content:center; gap:16px; flex-wrap:wrap; margin-bottom:22px;
  opacity:0; animation:riseIn .8s var(--ease) .62s forwards; }
.primary-btn,.secondary-btn{
  position:relative; overflow:hidden; font-weight:600; padding:15px 28px; border-radius:999px; font-size:.95rem;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.primary-btn{ background:linear-gradient(135deg,var(--rust),var(--rust-light)); color:#fff; box-shadow:0 16px 34px -10px rgba(193,87,30,.6); }
.secondary-btn{ background:transparent; color:var(--ink); border:1px solid var(--line); }
.primary-btn:hover,.secondary-btn:hover{ transform:translateY(-3px); }
.secondary-btn:hover{ border-color:var(--aqua); color:var(--aqua); }
.ripple{ position:absolute; border-radius:50%; background:rgba(255,255,255,.5); transform:scale(0); animation:rippleFx .6s ease-out; pointer-events:none; }
@keyframes rippleFx{ to{ transform:scale(3); opacity:0; } }

.quote-btn-box{ margin-bottom:52px; opacity:0; animation:riseIn .8s var(--ease) .72s forwards; }
.quote-btn{
  font-family:var(--font-mono); font-size:.85rem; letter-spacing:.05em; color:var(--aqua);
  border-bottom:1px dashed var(--aqua); padding-bottom:3px; transition:letter-spacing .3s var(--ease), color .3s;
}
.quote-btn:hover{ letter-spacing:.12em; color:var(--ochre); border-color:var(--ochre); }

.stats{
  display:flex; justify-content:center; align-items:center; gap:0; flex-wrap:nowrap;
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:22px 4px; margin-bottom:36px; box-shadow:var(--shadow);
  opacity:0; animation:riseIn .8s var(--ease) .82s forwards;
}
.stat{ padding:0 6px; text-align:center; flex:1 1 0; min-width:0; }
.stat h3{
  font-family:var(--font-mono); font-size:clamp(1rem,4.2vw,2rem); color:var(--aqua);
  text-shadow:0 0 24px var(--aqua-glow); white-space:nowrap;
}
.stat span{ font-size:clamp(.5rem,1.7vw,.78rem); color:var(--ink-dim); letter-spacing:.01em; display:block; line-height:1.2; }
.divider{ width:1px; height:34px; background:var(--line); flex-shrink:0; }
@media (min-width:640px){
  .stats{ padding:30px 10px; }
  .stat{ padding:0 24px; }
  .divider{ height:44px; }
}

/* -------------------------------- HERO EXTRAS: process panel + quick
   actions. Shown at every breakpoint (mobile-first sizing below, enlarged
   for tablet/desktop via the min-width query). The Call+WhatsApp pill on
   phones is defined here too, hidden by default and switched on in the
   mobile media query in index2.css. ------------------------------------- */
.whatsapp-btn-mobile{ display:none; }

.water-process-mobile{
  border:1px solid var(--line); border-radius:var(--radius); background:var(--card);
  padding:18px 12px 16px; margin-bottom:22px; text-align:left;
}
.wp-heading{ display:flex; align-items:center; gap:10px; justify-content:center; margin-bottom:16px; }
.wp-heading h3{ font-size:.82rem; letter-spacing:.04em; text-transform:uppercase; white-space:nowrap; color:var(--ink); }
.wp-heading .wp-line{ flex:1 1 auto; max-width:34px; height:1px; background:var(--line); }
.wp-grid{ display:flex; align-items:flex-start; justify-content:space-between; gap:2px; }
.wp-step{ flex:1 1 0; min-width:0; text-align:center; border:1px solid var(--line); border-radius:var(--radius-sm); padding:10px 4px 8px; }
.wp-step--aqua{ border-color:rgba(47,211,201,.4); }
.wp-step--ochre{ border-color:rgba(217,164,65,.5); background:rgba(217,164,65,.06); }
.wp-num{
  display:inline-flex; align-items:center; justify-content:center;
  width:20px; height:20px; margin:0 auto 6px; border-radius:50%;
  background:var(--slate-2); color:var(--aqua); font-family:var(--font-mono); font-size:.58rem; font-weight:600;
}
.wp-step--ochre .wp-num{ color:var(--ochre); }
.wp-icon{ font-size:1rem; color:var(--ink); margin-bottom:4px; }
.wp-step--aqua .wp-icon{ color:var(--aqua); }
.wp-step--ochre .wp-icon{ color:var(--ochre); }
.wp-step h4{ font-size:.58rem; letter-spacing:.01em; line-height:1.15; margin-bottom:2px; }
.wp-step p{ font-size:.48rem; line-height:1.1; color:var(--ink-dim); }
.wp-arrow{ flex:0 0 auto; color:var(--ink-dim); font-size:.6rem; padding-top:20px; }

.quick-actions-mobile{ display:flex; gap:10px; margin-bottom:24px; }
.qa-btn{
  flex:1 1 0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px;
  min-width:0; padding:16px 4px; border-radius:var(--radius-sm); border:1px solid var(--line);
  font-size:.74rem; font-weight:600; text-align:center; color:var(--ink);
}
.qa-btn .qa-ico{ font-size:1.1rem; }
.qa-btn--book{ border-color:rgba(47,211,201,.45); }
.qa-btn--book .qa-ico{ color:var(--aqua); }
.qa-btn--cost{ border-color:rgba(217,164,65,.5); }
.qa-btn--cost .qa-ico{ color:var(--ochre); }
.qa-btn--area{ border-color:rgba(51,214,113,.45); }
.qa-btn--area .qa-ico{ color:#33D671; }

/* Roomier sizing once there's space (tablet/desktop) */
@media (min-width:640px){
  .water-process-mobile{ max-width:760px; margin-left:auto; margin-right:auto; padding:26px 22px 22px; }
  .wp-heading{ margin-bottom:22px; }
  .wp-heading h3{ font-size:.95rem; }
  .wp-grid{ gap:14px; }
  .wp-step{ padding:16px 10px 14px; }
  .wp-num{ width:26px; height:26px; font-size:.7rem; }
  .wp-icon{ font-size:1.4rem; margin-bottom:8px; }
  .wp-step h4{ font-size:.82rem; margin-bottom:4px; }
  .wp-step p{ font-size:.68rem; }
  .wp-arrow{ font-size:.85rem; padding-top:34px; }

  .quick-actions-mobile{ max-width:760px; margin-left:auto; margin-right:auto; gap:18px; }
  .qa-btn{ padding:22px 10px; font-size:.92rem; gap:10px; }
  .qa-btn .qa-ico{ font-size:1.5rem; }
}

.trust{ display:flex; justify-content:center; gap:12px; flex-wrap:wrap; margin-bottom:30px; }
.trust span{
  font-size:.76rem; font-family:var(--font-mono); letter-spacing:.04em; color:var(--ink-dim);
  border:1px solid var(--line); padding:7px 14px; border-radius:999px; transition:all .3s var(--ease);
}
.trust span:hover{ color:var(--aqua); border-color:var(--aqua); transform:translateY(-2px); }

.hero-review{ display:flex; flex-direction:column; align-items:center; gap:6px; margin-bottom:30px; }
.hero-review .stars{ color:var(--ochre); letter-spacing:3px; }
.hero-review p{ font-size:.85rem; }

.scroll-down{
  display:inline-block; font-size:.8rem; color:var(--ink-dim); font-family:var(--font-mono);
  animation:bounceHint 2.2s ease-in-out infinite;
}
@keyframes bounceHint{ 0%,100%{ transform:translateY(0); opacity:.6; } 50%{ transform:translateY(8px); opacity:1; } }
@keyframes popIn{ from{ opacity:0; transform:scale(.85);} to{ opacity:1; transform:scale(1);} }

/* depth gauge — signature element injected by JS into .hero */
.depth-gauge{
  position:absolute; top:0; bottom:0; width:120px; z-index:1; pointer-events:none;
  opacity:.55;
}
.depth-gauge.left{ left:0; }
.depth-gauge.right{ right:0; }
.depth-gauge .strata-band{ position:absolute; left:0; right:0; }
.depth-gauge .bit{
  position:absolute; left:50%; width:2px; top:0; height:100%; transform:translateX(-50%);
  background:linear-gradient(180deg, transparent, var(--ink-dim) 30%, var(--ink-dim) 70%, transparent);
  opacity:.25;
}
.depth-gauge .bit::after{
  content:'⛏'; position:absolute; left:50%; transform:translateX(-50%); font-size:1rem;
  top:0; color:var(--aqua); text-shadow:0 0 14px var(--aqua-glow);
  animation:drillDescend 4.5s var(--ease) infinite;
}
@keyframes drillDescend{
  0%{ top:0; opacity:1; }
  85%{ top:90%; opacity:1; }
  92%{ top:90%; opacity:0; }
  93%{ top:0; opacity:0; }
  100%{ top:0; opacity:1; }
}
.depth-readout{
  position:absolute; left:50%; bottom:8%; transform:translateX(-50%);
  font-family:var(--font-mono); font-size:.66rem; color:var(--aqua); white-space:nowrap;
  writing-mode:vertical-rl; letter-spacing:.08em;
}

/* -------------------------------- SECTION HEADERS ------------------------ */
#about,#services1,.calculator-title,.section-title,#faq .section-title,.baccor2 #contact{
  text-align:center; max-width:760px; margin:0 auto 46px; padding:0 6%;
  opacity:0; transform:translateY(24px); transition:opacity .7s var(--ease), transform .7s var(--ease);
}
#about.in-view,#services1.in-view,.calculator-title.in-view,.section-title.in-view,#faq .section-title.in-view,.baccor2 #contact.in-view{
  opacity:1; transform:translateY(0);
}
#about{ padding-top:var(--section-top); }
#about h1,#services1 h1,.calculator-title h1,.section-title h1,.baccor2 #contact h1{ font-size:clamp(1.9rem,3.6vw,2.7rem); margin-bottom:12px; }
#about h2,.calculator-title h2{ font-size:1.2rem; color:var(--ochre); font-weight:500; margin-bottom:8px; }
#about p,#services1 p,.calculator-title p,.section-title p,#faq .section-title p,.baccor2 #contact p{ font-size:1rem; }

/* consistent vertical rhythm — each major block owns its own top space
   instead of relying on a fragile `section > div:first-child` selector
   that only ever matched 4 of the page's ~11 sections */
:root{ --section-top:100px; }

/* -------------------------------- ABOUT ----------------------------------- */
#about1{
  display:grid; grid-template-columns:repeat(3,1fr); gap:22px;
  max-width:1100px; margin:0 auto; padding:0 6% 100px;
}
.aboutbox{
  position:relative; overflow:hidden;
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:32px 24px; transition:transform .45s var(--ease), border-color .4s var(--ease), box-shadow .4s var(--ease);
  opacity:0; transform:translateY(30px);
}
.aboutbox.in-view{ opacity:1; transform:translateY(0); }
.aboutbox::before{
  content:''; position:absolute; inset:0; opacity:0; pointer-events:none;
  background:radial-gradient(220px circle at var(--mx,50%) var(--my,50%), var(--aqua-glow), transparent 70%);
  transition:opacity .4s var(--ease);
}
.aboutbox:hover::before{ opacity:1; }
.aboutbox:hover{ transform:translateY(-10px) scale(1.015); border-color:var(--aqua); box-shadow:0 24px 50px -20px var(--aqua-glow); }
.aboutboxh{
  font-size:2rem; margin-bottom:14px; display:inline-block;
  transition:transform .5s var(--ease);
}
.aboutbox:hover .aboutboxh{ transform:rotate(-8deg) scale(1.15); }
.aboutbox h2{ font-size:1.1rem; margin-bottom:6px; position:relative; }
.aboutbox h5{ color:var(--rust-light); font-weight:600; font-size:.85rem; margin-bottom:10px; position:relative; }
.aboutbox p{ font-size:.9rem; position:relative; }

/* -------------------------------- SERVICE AREAS --------------------------- */
.service-area{ padding:var(--section-top) 6% 100px; text-align:center; }
.section-heading{ max-width:760px; margin:0 auto 40px; }
.section-heading h2{ font-size:clamp(1.9rem,3.6vw,2.6rem); }
.section-heading span{ display:block; width:60px; height:3px; margin:16px auto; background:linear-gradient(90deg,var(--rust),var(--aqua)); border-radius:3px; }
.section-heading h3{ font-size:1.1rem; color:var(--ink-dim); font-weight:500; margin-bottom:6px; }
.section-heading h4{ font-size:.85rem; color:var(--ink-dim); font-weight:400; margin-top:4px; }

.service-area1{ display:flex; justify-content:center; gap:24px; flex-wrap:wrap; max-width:900px; margin:0 auto; }
.service-card{
  flex:1 1 320px; background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:8px;
  transition:border-color .4s var(--ease), transform .4s var(--ease), box-shadow .4s var(--ease);
  opacity:0; transform:translateY(24px);
}
.service-card.in-view{ opacity:1; transform:translateY(0); }
.service-card:hover{ border-color:var(--aqua); transform:translateY(-4px); box-shadow:0 20px 40px -20px var(--aqua-glow); }
.service-btn{
  width:100%; background:var(--slate-2); color:var(--ink); border:none; padding:18px 20px;
  border-radius:var(--radius-sm); font-family:var(--font-body); font-weight:600; font-size:.95rem;
  cursor:pointer; text-align:left; display:flex; justify-content:space-between; align-items:center;
  transition:background .3s var(--ease), color .3s var(--ease);
}
.service-btn::after{
  content:'⌄'; font-size:1.1rem; transition:transform .4s var(--ease); margin-left:12px;
}
.service-btn:hover{ background:var(--rust); color:#fff; }
.district-list{
  max-height:0; overflow:hidden; display:flex; flex-direction:column;
  transition:max-height .5s var(--ease), padding .4s var(--ease);
}
.district-list.show{ max-height:400px; padding:10px 4px; }
.service-card:has(.district-list.show) .service-btn::after{ transform:rotate(180deg); }
.district-list a{
  padding:12px 16px; font-size:.9rem; color:var(--ink-dim); border-radius:8px;
  opacity:0; transform:translateX(-8px);
  transition:opacity .4s var(--ease), transform .4s var(--ease), background .25s var(--ease), color .25s var(--ease), padding-left .25s var(--ease);
}
.district-list.show a{ opacity:1; transform:translateX(0); }
.district-list.show a:nth-child(1){ transition-delay:.03s; }
.district-list.show a:nth-child(2){ transition-delay:.06s; }
.district-list.show a:nth-child(3){ transition-delay:.09s; }
.district-list.show a:nth-child(4){ transition-delay:.12s; }
.district-list.show a:nth-child(5){ transition-delay:.15s; }
.district-list.show a:nth-child(6){ transition-delay:.18s; }
.district-list a:hover{ background:rgba(47,211,201,.08); color:var(--aqua); padding-left:22px; }

/* -------------------------------- SHORT SERVICES LIST --------------------- */
.short-serv{ max-width:760px; margin:0 auto 34px; padding:0 6%; }
.short-serv ul{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:12px; }
.short-serv li{
  position:relative; padding:14px 16px 14px 38px; background:var(--card); border:1px solid var(--line);
  border-radius:var(--radius-sm); font-size:.9rem; color:var(--ink-dim);
}
.short-serv li::before{
  content:'✓'; position:absolute; left:14px; top:50%; transform:translateY(-50%);
  color:var(--aqua); font-weight:700;
}

.cont2{ display:flex; justify-content:center; gap:18px; flex-wrap:wrap; margin:0 auto 90px; padding:0 6%; }
.cont2 a{
  margin-top: 50px;
  font-family:var(--font-mono); font-size:.82rem; letter-spacing:.03em; color:var(--ink);
  border:1px solid var(--line); padding:12px 22px; border-radius:999px;
  transition:all .3s var(--ease);
}
.cont2 a:hover{ border-color:var(--rust); color:var(--rust-light); transform:translateY(-2px); }

/* -------------------------------- OUR SERVICES (detailed) ----------------- */
#ourservices1{ padding:0 6% 100px; }
#ourservices{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; max-width:1200px; margin:0 auto; }
.services{
  position:relative; overflow:hidden;
  background:linear-gradient(165deg,var(--card),var(--card-2)); border:1px solid var(--line);
  border-radius:var(--radius); padding:34px 26px 30px; transition:transform .45s var(--ease), box-shadow .45s var(--ease), border-color .45s var(--ease);
  opacity:0; transform:translateY(30px);
}
.services.in-view{ opacity:1; transform:translateY(0); }
.services::before{
  content:''; position:absolute; top:0; left:0; right:0; height:3px; transform:scaleX(0); transform-origin:left;
  background:linear-gradient(90deg,var(--rust),var(--ochre),var(--aqua)); transition:transform .5s var(--ease);
}
.services::after{
  content:''; position:absolute; inset:0; opacity:0; pointer-events:none;
  background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%), rgba(193,87,30,.16), transparent 70%);
  transition:opacity .4s var(--ease);
}
.services:hover::before{ transform:scaleX(1); }
.services:hover::after{ opacity:1; }
.services:hover{ transform:translateY(-10px); box-shadow:0 26px 54px -22px rgba(193,87,30,.35); border-color:rgba(193,87,30,.4); }
.services h2{
  font-size:1.8rem; margin-bottom:12px; display:inline-block; position:relative;
  transition:transform .5s var(--ease);
}
.services:hover h2{ transform:scale(1.18) rotate(-6deg); }
.services h1{ font-size:1.15rem; margin-bottom:10px; line-height:1.3; position:relative; }
.services h3{ font-size:.88rem; font-weight:400; color:var(--ink-dim); margin-bottom:14px; position:relative; }
.services p{ font-size:.83rem; padding-left:16px; position:relative; margin-bottom:6px; opacity:0; transform:translateX(-6px); transition:opacity .4s var(--ease), transform .4s var(--ease); }
.services.in-view p{ opacity:1; transform:translateX(0); }
.services.in-view p:nth-child(4){ transition-delay:.05s; }
.services.in-view p:nth-child(5){ transition-delay:.1s; }
.services.in-view p:nth-child(6){ transition-delay:.15s; }
.services.in-view p:nth-child(7){ transition-delay:.2s; }
.services.in-view p:nth-child(8){ transition-delay:.25s; }
.services p::before{ content:'—'; position:absolute; left:0; color:var(--aqua); }

/* -------------------------------- GALLERY ---------------------------------- */
.baccor{ padding:var(--section-top) 0 100px; text-align:center; }
#galary{ padding:0 6% 44px; }
.gaimg{
  display:grid; grid-template-columns:repeat(3,1fr); gap:18px;
  max-width:1200px; margin:0 auto; padding:0 6%;
}
.gaimg-item{
  position:relative; overflow:hidden; border-radius:var(--radius-sm);
  opacity:0; transform:scale(.92); transition:opacity .6s var(--ease), transform .6s var(--ease);
  box-shadow:0 4px 18px -10px rgba(0,0,0,.4);
}
.gaimg-item.in-view{ opacity:1; transform:scale(1); }
.gaimg img{
  width:100%; height:240px; object-fit:cover; display:block;
  filter:grayscale(.2) brightness(.92); transition:transform .6s var(--ease), filter .5s var(--ease);
}
.gaimg-item::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 40%, rgba(10,18,24,.85) 100%);
  opacity:0; transition:opacity .4s var(--ease);
}
.gaimg-item .cap{
  position:absolute; left:16px; right:16px; bottom:-14px; z-index:2;
  font-family:var(--font-mono); font-size:.78rem; color:var(--aqua);
  opacity:0; transform:translateY(10px); transition:opacity .4s var(--ease), transform .4s var(--ease);
}
.gaimg-item:hover img{ transform:scale(1.1); filter:grayscale(0) brightness(1); }
.gaimg-item:hover::after{ opacity:1; }
.gaimg-item:hover .cap{ opacity:1; transform:translateY(0); bottom:14px; }

/* -------------------------------- CALCULATOR ------------------------------- */
#calculator-section{ padding:var(--section-top) 6% 100px; }
.calculator-container{
  position:relative; max-width:1050px; margin:0 auto; border-radius:var(--radius); overflow:hidden;
  border:1px solid var(--line); box-shadow:var(--shadow);
}
.calculator-container::before{
  content:''; position:absolute; inset:0; padding:1.5px; border-radius:var(--radius); z-index:1; pointer-events:none;
  background:linear-gradient(120deg,var(--rust),var(--aqua),var(--ochre));
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude; opacity:.6;
}
.calculator-frame{ width:100%; height:640px; border:none; display:block; background:var(--card); }

/* -------------------------------- TESTIMONIALS ------------------------------ */
.testimonials{ padding:var(--section-top) 6% 90px; }
.testimonial-container{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:22px; max-width:1200px; margin:0 auto; }
.testimonial-card{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:30px 26px;
  transition:transform .4s var(--ease), border-color .4s var(--ease);
  opacity:0; transform:translateY(30px);
}
.testimonial-card.in-view{ opacity:1; transform:translateY(0); }
.testimonial-card:hover{ transform:translateY(-6px); border-color:var(--ochre); }
.testimonial-card .stars{ color:var(--ochre); letter-spacing:2px; margin-bottom:14px; }
.testimonial-card p{ font-size:.92rem; font-style:italic; margin-bottom:18px; color:var(--ink); }
.testimonial-card h4{ font-size:.95rem; margin-bottom:2px; }
.testimonial-card span{ font-size:.78rem; color:var(--aqua); font-family:var(--font-mono); }

/* -------------------------------- REVIEW BAR -------------------------------- */
.review-section{ padding:20px 6% 90px; }
.review-bar{
  max-width:900px; margin:0 auto; display:flex; align-items:center; justify-content:space-between;
  gap:20px; flex-wrap:wrap; background:var(--card); border:1px solid var(--line);
  border-radius:999px; padding:16px 28px; box-shadow:var(--shadow);
}
.review-bar .left{ display:flex; align-items:center; gap:14px; }
.google-icon{ width:32px; }
.review-bar .stars{ color:var(--ochre); letter-spacing:2px; }
.rating-text{ display:flex; flex-direction:column; line-height:1.2; }
.rating-text strong{ font-size:1.1rem; }
.rating-text span{ font-size:.75rem; color:var(--ink-dim); }
.review-bar button{
  background:linear-gradient(135deg,var(--aqua),#1BA79D); color:var(--on-accent); border:none;
  padding:12px 24px; border-radius:999px; font-weight:600; cursor:pointer; font-family:var(--font-body);
  transition:transform .3s var(--ease);
}
.review-bar button:hover{ transform:translateY(-2px); }

/* -------------------------------- FAQ ---------------------------------------- */
.faq{ padding:var(--section-top) 6% 100px; }
.faq-container{ max-width:800px; margin:0 auto; display:flex; flex-direction:column; gap:12px; }
.faq-container details{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius-sm);
  padding:18px 22px; transition:border-color .3s var(--ease), background .3s var(--ease);
}
.faq-container details[open]{ border-color:var(--aqua); background:var(--card-2); }
.faq-container summary{
  cursor:pointer; font-weight:600; font-size:.98rem; list-style:none; display:flex;
  justify-content:space-between; align-items:center; color:var(--ink);
}
.faq-container summary::-webkit-details-marker{ display:none; }
.faq-container summary::after{
  content:'+'; font-size:1.3rem; color:var(--aqua); transition:transform .35s var(--ease); margin-left:14px;
}
.faq-container details[open] summary::after{ transform:rotate(45deg); }
.faq-container details p{ margin-top:14px; font-size:.88rem; line-height:1.7; }

/* -------------------------------- CONTACT ------------------------------------ */
.baccor2{ padding:var(--section-top) 0 100px; }

/* ---- Quick info cards (Phone / WhatsApp / Email / Location) ---- */
.qcards{
  display:grid; grid-template-columns:repeat(4,1fr); gap:18px;
  max-width:1200px; margin:0 auto 56px; padding:0 6%;
}
.qcard{
  position:relative; display:flex; flex-direction:column; align-items:flex-start;
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:26px 22px; font-family:var(--font-body);
  transition:transform .35s var(--ease), border-color .35s var(--ease), box-shadow .35s var(--ease);
}
.qcard:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
.qcard__head{ display:flex; align-items:center; justify-content:space-between; width:100%; margin-bottom:16px; }
.qcard__icon{
  width:48px; height:48px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:1.15rem; flex-shrink:0;
}
.qcard__go{
  width:26px; height:26px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:.65rem; flex-shrink:0; opacity:.85; transition:transform .35s var(--ease);
}
.qcard:hover .qcard__go{ transform:translateX(3px); }
.qcard h3{ font-size:1.05rem; color:var(--ink); margin-bottom:4px; }
.qcard p{ font-size:.82rem; margin-bottom:16px; word-break:break-word; }
.qcard__link{
  margin-top:auto; display:inline-flex; align-items:center; gap:7px;
  font-size:.82rem; font-weight:600; transition:gap .3s var(--ease);
}
.qcard:hover .qcard__link{ gap:11px; }

.qcard--phone .qcard__icon,.qcard--phone .qcard__go,.qcard--phone .qcard__link{ color:#3B82F6; }
.qcard--phone .qcard__icon,.qcard--phone .qcard__go{ background:rgba(59,130,246,.14); }
.qcard--phone:hover{ border-color:#3B82F6; }

.qcard--whatsapp .qcard__icon,.qcard--whatsapp .qcard__go,.qcard--whatsapp .qcard__link{ color:#25D366; }
.qcard--whatsapp .qcard__icon,.qcard--whatsapp .qcard__go{ background:rgba(37,211,102,.14); }
.qcard--whatsapp:hover{ border-color:#25D366; }

.qcard--email .qcard__icon,.qcard--email .qcard__go,.qcard--email .qcard__link{ color:#8B5CF6; }
.qcard--email .qcard__icon,.qcard--email .qcard__go{ background:rgba(139,92,246,.14); }
.qcard--email:hover{ border-color:#8B5CF6; }

.qcard--location .qcard__icon,.qcard--location .qcard__go,.qcard--location .qcard__link{ color:#F59E0B; }
.qcard--location .qcard__icon,.qcard--location .qcard__go{ background:rgba(245,158,11,.14); }
.qcard--location:hover{ border-color:#F59E0B; }

/* ---- Eyebrow tag shared by both columns ---- */
.eyebrow{
  display:inline-flex; align-items:center; gap:8px; margin-bottom:14px;
  font-family:var(--font-mono); font-size:.78rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--aqua);
}

/* ---- Service area + Send message two-column layout ---- */
.sa-grid{
  display:grid; grid-template-columns:1.05fr 1fr; gap:44px; align-items:start;
  max-width:1200px; margin:0 auto; padding:0 6%;
}
.sa-left h1{ font-size:clamp(1.8rem,3.4vw,2.4rem); margin-bottom:12px; }
.sa-left > p{ font-size:.95rem; max-width:520px; margin-bottom:24px; }

.sa-map{
  border-radius:var(--radius); overflow:hidden; border:1px solid var(--line);
  box-shadow:var(--shadow); margin-bottom:14px;
}
.sa-map iframe{ display:block; width:100%; }
.sa-map__btn{
  display:flex; align-items:center; justify-content:center; gap:10px; width:100%;
  background:linear-gradient(135deg,var(--aqua),#1FA79C); color:var(--on-accent);
  padding:14px 20px; border-radius:var(--radius-sm); font-weight:700; font-size:.9rem;
  margin-bottom:32px; transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.sa-map__btn:hover{ transform:translateY(-2px); box-shadow:0 16px 34px -12px var(--aqua-glow); }

/* ---- Quick Contact card (icon badge header + divided hoverable rows) ---- */
.qcontact{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:26px 26px 10px;
}
.qcontact__head{ display:flex; align-items:flex-start; gap:14px; margin-bottom:18px; }
.qcontact__badge{
  width:44px; height:44px; border-radius:50%; flex-shrink:0; display:flex; align-items:center; justify-content:center;
  font-size:1.15rem; color:var(--aqua); background:var(--aqua-glow);
}
.qcontact__head h4{ font-size:1.05rem; color:var(--ink); margin-bottom:4px; }
.qcontact__head p{ font-size:.84rem; margin:0; }

.qcontact__row{ display:flex; flex-direction:column; }
.qcontact__item{
  display:flex; align-items:center; gap:14px; padding:16px 6px;
  border-top:1px solid var(--line); border-radius:10px;
  transition:background .3s var(--ease), transform .3s var(--ease), padding-left .3s var(--ease);
}
.qcontact__item:hover{ background:var(--slate-2); padding-left:12px; transform:translateX(2px); }
.qcontact__icon{
  width:42px; height:42px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:1rem; flex-shrink:0; transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.qcontact__item:hover .qcontact__icon{ transform:scale(1.1); }
.qcontact__icon--phone{ color:#3B82F6; background:rgba(59,130,246,.14); }
.qcontact__item:hover .qcontact__icon--phone{ box-shadow:0 0 0 6px rgba(59,130,246,.14); }
.qcontact__icon--whatsapp{ color:#25D366; background:rgba(37,211,102,.14); }
.qcontact__item:hover .qcontact__icon--whatsapp{ box-shadow:0 0 0 6px rgba(37,211,102,.14); }
.qcontact__icon--email{ color:#8B5CF6; background:rgba(139,92,246,.14); }
.qcontact__item:hover .qcontact__icon--email{ box-shadow:0 0 0 6px rgba(139,92,246,.14); }
.qcontact__text{ flex:1; display:flex; flex-direction:column; gap:2px; min-width:0; }
.qcontact__text strong{ font-size:.92rem; color:var(--ink); }
.qcontact__text small{ font-size:.78rem; color:var(--ink-dim); }
.qcontact__go{
  font-size:.75rem; color:var(--ink-dim); opacity:.6; flex-shrink:0;
  transition:transform .3s var(--ease), opacity .3s var(--ease), color .3s var(--ease);
}
.qcontact__item:hover .qcontact__go{ opacity:1; transform:translateX(4px); color:var(--aqua); }

/* ---- Send-message form card ---- */
.sa-form-card{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:34px;
}
.sa-form-card > h1{ font-size:clamp(1.5rem,2.8vw,1.9rem); margin-bottom:10px; }
.sa-form-card > p{ font-size:.9rem; margin-bottom:24px; }

.enquiry-form{ display:flex; flex-direction:column; gap:18px; }
.ef-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.ef-field{ display:flex; flex-direction:column; gap:7px; }
.ef-field label{ font-size:.82rem; font-weight:600; color:var(--ink); }
.ef-field input,.ef-field select,.ef-field textarea{
  width:100%; background:var(--slate-2); border:1px solid var(--line); border-radius:var(--radius-sm);
  padding:13px 15px; color:var(--ink); font-family:var(--font-body); font-size:.9rem;
  transition:border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.ef-field select{ appearance:none; cursor:pointer;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='9'><path d='M1 1l6 6 6-6' stroke='%239FB2BA' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat:no-repeat; background-position:right 15px center; padding-right:38px;
}
.ef-field input::placeholder,.ef-field textarea::placeholder{ color:var(--ink-dim); }
.ef-field input:focus,.ef-field select:focus,.ef-field textarea:focus{
  outline:none; border-color:var(--aqua); box-shadow:0 0 0 3px var(--aqua-glow);
}
.ef-field textarea{ min-height:110px; resize:vertical; }

.ef-phone{
  display:flex; align-items:stretch; background:var(--slate-2); border:1px solid var(--line);
  border-radius:var(--radius-sm); overflow:hidden; transition:border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.ef-phone:focus-within{ border-color:var(--aqua); box-shadow:0 0 0 3px var(--aqua-glow); }
.ef-phone__code{
  display:flex; align-items:center; padding:0 14px; color:var(--ink-dim);
  font-family:var(--font-mono); font-size:.9rem; border-right:1px solid var(--line);
}
.ef-phone input{ flex:1; border:none; background:transparent; padding:13px 15px; }
.ef-phone input:focus{ outline:none; box-shadow:none; }

.ef-toggle{ display:flex; flex-wrap:wrap; gap:10px; }
.ef-toggle__btn{
  flex:1 1 120px; display:flex; align-items:center; justify-content:center; gap:8px;
  padding:12px 10px; background:var(--slate-2); border:1px solid var(--line); border-radius:var(--radius-sm);
  color:var(--ink-dim); font-family:var(--font-body); font-size:.84rem; cursor:pointer;
  transition:border-color .3s var(--ease), color .3s var(--ease), background .3s var(--ease);
}
.ef-toggle__btn:hover{ color:var(--ink); }
.ef-toggle__btn.active{
  color:var(--ink); border-color:var(--aqua); background:var(--card-2); box-shadow:0 0 0 3px var(--aqua-glow);
}

.ef-submit{
  display:flex; align-items:center; justify-content:center; gap:10px; width:100%;
  background:linear-gradient(135deg,var(--rust),var(--rust-light)); color:#fff; border:none;
  padding:16px; border-radius:999px; font-weight:700; font-size:.95rem; cursor:pointer;
  font-family:var(--font-body); margin-top:4px;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.ef-submit:hover{ transform:translateY(-2px); box-shadow:0 16px 34px -10px rgba(193,87,30,.6); }

/* -------------------------------- FOOTER -------------------------------------- */
/* ============================================================
   SITE FOOTER — always dark navy regardless of theme
   ============================================================ */

/* gradient top accent line */
.footer-top-line {
  height: 3px;
  background: linear-gradient(90deg, var(--rust), var(--ochre), var(--aqua));
}

.site-footer {
  background: #0B1929;
  color: #9FB2BA;
  font-family: var(--font-body);
}

/* ── 5-column grid: brand + 4 info cols ── */
.footer-inner {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 0.9fr 1.3fr;
  gap: 0;
  padding: 56px 5% 32px;
  max-width: 1400px;
  margin: 0 auto;
  box-sizing: border-box;
}

/* ── brand column ── */
.footer-brand {
  padding-right: 40px;
  border-right: 1px solid rgba(255,255,255,0.08);
}

.footer-logo-row {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 16px;
}

.footer-logo-img {
  width: 64px; height: 64px;
  border-radius: 50%; object-fit: cover; flex-shrink: 0;
}

/* vertical divider — hidden desktop, shown mobile */
.footer-logo-divider {
  display: none;
  width: 2px; align-self: stretch;
  background: rgba(255,255,255,0.22);
  border-radius: 2px; flex-shrink: 0;
}

.footer-logo-text { display: flex; flex-direction: column; }

.footer-logo-name {
  font-size: 1.1rem; font-weight: 800;
  color: #EAF1F2; letter-spacing: .04em; line-height: 1.1;
}
.footer-logo-sub {
  font-size: 1.1rem; font-weight: 800;
  color: var(--ochre); letter-spacing: .04em; line-height: 1.2;
}
.footer-logo-tag {
  font-size: .67rem; color: #8FA8B8;
  letter-spacing: .05em; margin-top: 5px;
}

.footer-desc {
  font-size: .82rem; line-height: 1.65;
  color: #8FA8B8; margin-bottom: 20px;
}

/* CTA pill buttons */
.footer-cta-btns { display: flex; flex-direction: column; gap: 10px; }

.footer-btn {
  display: flex; align-items: center; gap: 10px;
  padding: 11px 16px; border-radius: 50px;
  text-decoration: none; font-size: .84rem; font-weight: 600;
  transition: transform .25s var(--ease), box-shadow .25s var(--ease);
}
.footer-btn--call {
  background: #1B2F4A; border: 1.5px solid #2A4A6A; color: #EAF1F2;
}
.footer-btn--call:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px -8px rgba(47,211,201,.35);
  border-color: var(--aqua);
}
.footer-btn--wa {
  background: #1A7A45; border: 1.5px solid #22A05C; color: #fff;
}
.footer-btn--wa:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px -8px rgba(34,160,92,.45);
}
.footer-btn > .fa-phone,
.footer-btn > .fa-whatsapp { font-size: 1.1rem; flex-shrink: 0; }
.footer-btn-text { display: flex; flex-direction: column; line-height: 1.2; flex: 1; }
.footer-btn-text strong { font-size: .88rem; }
.footer-btn-text small  { font-size: .72rem; font-weight: 400; opacity: .85; }
.footer-btn-arrow { font-size: .75rem; opacity: .7; }

/* ── info columns ── */
.footer-col {
  padding: 0 24px;
  border-right: 1px solid rgba(255,255,255,0.08);
  position: relative;
}
.footer-col:last-child { border-right: none; }

/* toggle — desktop: heading only; mobile: tappable */
.footer-col-toggle {
  all: unset;
  display: flex; align-items: center; justify-content: space-between;
  width: 100%; box-sizing: border-box;
  cursor: default; pointer-events: none;
  margin-bottom: 18px;
}
.footer-col-hd {
  font-size: .88rem; font-weight: 700;
  color: #EAF1F2; letter-spacing: .03em;
  display: flex; align-items: center; gap: 8px;
}
.footer-col-ico { color: var(--ochre); font-size: .85rem; }

/* yellow underline accent under heading */
.footer-col-toggle::after {
  content: '';
  display: block; width: 32px; height: 2.5px;
  background: var(--ochre); border-radius: 2px;
  position: absolute; margin-top: 30px;
}

/* chevron — hidden desktop */
.footer-chev { display: none; color: #8FA8B8; font-size: .75rem; transition: transform .3s var(--ease); }

/* list */
.footer-col-body { list-style: none; margin: 0; padding: 6px 0 0; }
.footer-col-body li {
  display: flex; align-items: flex-start; gap: 8px;
  font-size: .82rem; color: #8FA8B8;
  margin-bottom: 11px; line-height: 1.5;
}
.footer-col-body li .fas.fa-chevron-right {
  color: var(--ochre); font-size: .62rem; margin-top: 4px; flex-shrink: 0;
}
.footer-col-body li a {
  color: #8FA8B8; text-decoration: none;
  display: flex; align-items: center; gap: 8px;
  transition: color .25s var(--ease), padding-left .25s var(--ease);
}
.footer-col-body li a:hover { color: var(--aqua); padding-left: 4px; }
.footer-col-body li a .fas { color: var(--ochre); font-size: .62rem; flex-shrink: 0; }

/* contact list icons */
.footer-contact-list li .fas.fa-phone,
.footer-contact-list li .fas.fa-envelope,
.footer-contact-list li .fas.fa-map-marker-alt {
  color: var(--ochre); font-size: .8rem; flex-shrink: 0; margin-top: 2px;
}

/* ── social + tagline strip ── */
.footer-social-tagline-row {
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  padding: 22px 5% 28px;
  max-width: 1400px; margin: 0 auto; box-sizing: border-box;
  border-top: 1px solid rgba(255,255,255,0.08);
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.footer-social-block { display: flex; align-items: center; gap: 14px; }
.footer-social-card-label {
  font-size: .82rem; font-weight: 600; color: #EAF1F2;
  white-space: nowrap; display: flex; align-items: center; gap: 6px;
}
.footer-social-card-label .fas { color: var(--ochre); }
.footer-social-icons-wrap { display: flex; gap: 8px; }

/* social icon circles */
.fsoc {
  width: 36px; height: 36px; border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  font-size: .95rem; color: #fff; text-decoration: none;
  transition: transform .25s var(--ease), opacity .25s;
}
.fsoc:hover { transform: translateY(-3px) scale(1.08); opacity: .9; }
.fsoc--ig  { background: radial-gradient(circle at 30% 110%, #f09433, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888); }
.fsoc--yt  { background: #FF0000; }
.fsoc--fb  { background: #1877F2; }
.fsoc--web { background: #2F3D4A; border: 1px solid rgba(255,255,255,.15); }

.footer-tagline-block { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.footer-tagline-text {
  font-style: italic; font-size: .88rem;
  color: #C5D5E0; letter-spacing: .02em; white-space: nowrap;
}
.footer-tagline-underline {
  display: block; width: 60px; height: 2px;
  background: var(--ochre); border-radius: 2px;
}

/* ── bottom dev bar ── */
.footer-bottom { background: #070F1A; padding: 18px 5%; }
.footer-bottom-inner {
  max-width: 1400px; margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; flex-wrap: wrap;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(255,255,255,0.06);
  margin-bottom: 10px;
}
.footer-dev-left { display: flex; align-items: center; gap: 12px; }
.footer-dev-icon {
  font-size: 1.4rem; font-weight: 800;
  color: var(--ochre); font-family: monospace; line-height: 1;
}
.footer-dev-sep {
  width: 1.5px; height: 30px;
  background: rgba(255,255,255,0.18); border-radius: 2px; flex-shrink: 0;
}
.footer-dev-text { display: flex; flex-direction: column; font-size: .76rem; color: #8FA8B8; line-height: 1.4; }
.footer-dev-name {
  color: var(--ochre); font-weight: 700;
  font-size: .82rem; text-decoration: none; transition: color .25s;
}
.footer-dev-name:hover { color: var(--aqua); }
.footer-dev-right { display: flex; gap: 10px; }
.footer-dev-btn {
  display: flex; align-items: center; gap: 6px;
  padding: 8px 16px; border-radius: 50px;
  border: 1.5px solid var(--ochre); color: var(--ochre);
  font-size: .76rem; font-weight: 600; text-decoration: none;
  transition: background .25s var(--ease), color .25s;
}
.footer-dev-btn:hover { background: var(--ochre); color: #0B1929; }
.footer-copy {
  text-align: center; font-size: .72rem; color: #4E6070;
  max-width: 1400px; margin: 0 auto;
}
/* =========================================================
   FOCUS
   ========================================================= */

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
summary:focus-visible {

    outline: 2px solid var(--aqua);
    outline-offset: 3px;
    border-radius: 6px;
}

/* ==============================
   UNIQUE UNDERGROUND CARD
   ============================== */

.underground-card {
    position: relative;
    overflow: hidden;
}

/* Mini underground area */

.ground-animation {
    position: relative;
    height: 125px;
    margin-top: 20px;
    border-radius: 14px;
    overflow: hidden;
    background: #172b2f;
    border: 1px solid rgba(255,255,255,0.12);
}

/* Surface */

.surface {
    height: 25px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #243b2d;
    font-size: 15px;
}

/* Soil */

.soil-layer {
    height: 32px;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #5b5140;
}

.soil-layer span,
.rock-layer span,
.water-layer span {
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 1px;
    opacity: 0.7;
}

/* Rock */

.rock-layer {
    height: 32px;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #41494a;
}

/* Water */

.water-layer {
    height: 36px;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #14566a;
}

/* Water animation */

.water-layer::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: -100%;
    width: 200%;
    height: 36px;

    background: repeating-linear-gradient(
        120deg,
        transparent 0px,
        transparent 12px,
        rgba(255,255,255,0.08) 13px,
        transparent 25px
    );

    animation: waterMove 4s linear infinite;
}

@keyframes waterMove {

    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(50%);
    }

}

/* Drilling Line */

.drill-line {
    position: absolute;

    top: 25px;
    left: 50%;

    width: 3px;
    height: 0;

    background: #f39a32;

    transform: translateX(-50%);

    transition: height 1.8s ease;
}

/* Drill bit */

.drill-bit {
    position: absolute;

    bottom: -8px;
    left: 50%;

    transform: translateX(-50%);

    color: #ff9d32;
    font-size: 15px;

    opacity: 0;
}

/* Hover = drilling */

.underground-card:hover .drill-line {
    height: 92px;
}

.underground-card:hover .drill-bit {
    opacity: 1;
    animation: drilling 1.8s ease forwards;
}

@keyframes drilling {

    0% {
        transform: translate(-50%, -10px);
    }

    100% {
        transform: translate(-50%, 0);
    }

}

/* Water glow when drilling reaches water */

.underground-card:hover .water-layer {
    box-shadow:
        inset 0 0 20px rgba(0, 200, 255, 0.25);
}

/* ==========================================================================
   BOREWELL LOADER — scoped tokens
   Namespaced --ldr-* so these never collide with the site's own tokens.
   Dark is the default (matches the site's default dark theme); the
   original loader palette becomes the light-theme variant.
   ========================================================================== */
:root{
  /* -- surface -- */
  --ldr-bg0: #0A1218;         /* well */
  --ldr-bg1: #16232C;         /* slate */

  /* -- ink -- */
  --ldr-ink: #EAF1F2;
  --ldr-ink-soft: #9FB2BA;
  --ldr-ink-faint: rgba(234,241,242,0.16);

  /* -- rig / earth -- */
  --ldr-rust: #C1571E;
  --ldr-dust: #9FB2BA;

  /* -- water, keyed off the site's aqua -- */
  --ldr-water-deep:  #0B4A44;
  --ldr-water-mid:   #2FD3C9;
  --ldr-water-light: #7FEAE0;
  --ldr-water-foam:  #EAF1F2;

  /* -- type, matches the site's fonts -- */
  --ldr-font-display: 'Space Grotesk', 'Arial Narrow', sans-serif;
  --ldr-font-body: 'IBM Plex Sans', 'Segoe UI', sans-serif;
}

html[data-theme="light"]{
  /* -- surface -- */
  --ldr-bg0: #EEF3F1;         /* page background, cool pale stone */
  --ldr-bg1: #E2E9E6;         /* gradient depth */

  /* -- ink -- */
  --ldr-ink: #16262C;
  --ldr-ink-soft: #52666B;
  --ldr-ink-faint: rgba(22,38,44,0.14);

  /* -- rig / earth -- */
  --ldr-rust: #C2622C;
  --ldr-dust: #ECE7DD;

  /* -- water -- */
  --ldr-water-deep:  #063A52;
  --ldr-water-mid:   #12799E;
  --ldr-water-light: #5FC3DE;
  --ldr-water-foam:  #EAFBFF;
}

/* Body is locked from scrolling while the loader owns the screen. JS
   removes this class the moment the reveal finishes. */
body.is-loading{ overflow: hidden; height: 100vh; }

/* ==========================================================================
   LOADER COMPONENT
   ========================================================================== */
  /* ==========================================================================
     LOADER SHELL
     ========================================================================== */
  #loader{
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(180deg, var(--ldr-bg0) 0%, var(--ldr-bg1) 100%);
    overflow: hidden;
    transition: opacity 1.05s cubic-bezier(.4,0,.2,1),
                transform 1.05s cubic-bezier(.4,0,.2,1);
  }

  /* Stage 7 — the whole loader lifts and dissolves away */
  #loader[data-stage="reveal"]{
    opacity: 0;
    transform: translateY(-2.5%) scale(1.02);
    pointer-events: none;
  }

  #loader.is-done{ display:none; }

  .loader__inner{
    position: relative;
    z-index: 3;
    width: min(640px, 92vw);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 4vh 0;
  }

  /* ---- brand ---- */
  .loader__brand{
    opacity: 0;
    transform: translateY(8px);
    animation: brandIn .9s cubic-bezier(.2,.7,.3,1) forwards;
    animation-delay: .1s;
  }
  @keyframes brandIn{ to{ opacity:1; transform:translateY(0); } }

  .loader__wordmark{
    margin: 0;
    font-family: var(--ldr-font-display);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.01em;
    font-size: clamp(1.6rem, 6.4vw, 3rem);
    line-height: 0.96;
    color: var(--ldr-ink);
  }

  .loader__tagline{
    margin: .5rem 0 0;
    font-style: italic;
    font-weight: 500;
    font-size: clamp(0.82rem, 2.3vw, 1rem);
    color: var(--ldr-ink-soft);
    letter-spacing: 0.01em;
  }

  /* ---- rig stage ---- */
  .rig-scene{
    position: relative;
    width: min(460px, 74vw);
    margin: clamp(1.4rem, 4vw, 2.4rem) auto clamp(1rem, 3vw, 1.6rem);
    opacity: 0;
    transform: scale(.92);
    animation: rigIn 1s cubic-bezier(.2,.7,.25,1) forwards;
    animation-delay: .3s;
  }
  @keyframes rigIn{ to{ opacity:1; transform: scale(1); } }

  .rig-image{
    width: 100%;
    height: auto;
    filter: drop-shadow(0 18px 22px rgba(22,38,44,0.16));
    transform-origin: 50% 100%;
    will-change: transform;
  }

  /* Stage 2/3/4 — restrained mechanical vibration + a slower working "breath".
     Two animations layered on the shorthand so the motion doesn't feel like
     a single repetitive tic. */
  #loader.is-vibrating .rig-image{
    animation:
      rigVibrate 0.16s steps(2, end) infinite,
      rigBob 1.7s ease-in-out infinite;
  }
  @keyframes rigVibrate{
    0%   { transform: translate(0,0) rotate(0deg); }
    50%  { transform: translate(0.6px,-0.4px) rotate(0.05deg); }
    100% { transform: translate(-0.5px,0.3px) rotate(-0.05deg); }
  }
  @keyframes rigBob{
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(1.2px); }
  }

  /* ground / survey line under the rig — a baseline, not decoration:
     it reads as grade level, the reference the drilling depth is measured
     against */
  .ground-line{
    position: absolute;
    left: -6%; right: -6%;
    bottom: 4%;
    height: 2px;
    background: var(--ldr-ink-faint);
  }
  .ground-line::before{
    content:"";
    position:absolute; inset:0;
    background-image: repeating-linear-gradient(
      90deg, var(--ldr-ink-faint) 0 1px, transparent 1px 5.5%
    );
    opacity:.9;
  }

  /* anchor for every particle effect — JS positions this exactly on the
     drilling point defined in CONFIG.drillPoint */
  .effects-anchor{
    position: absolute;
    left: var(--drill-x-pct, 96.5%);
    top: var(--drill-y-pct, 95.5%);
    width: 0; height: 0;
  }

  /* ---- dust (stage 3) ---- */
  .dust-field{ position:absolute; left:0; top:0; width:0; height:0; }
  .dust-particle{
    position:absolute;
    left:0; top:0;
    width: var(--size, 34px);
    height: var(--size, 34px);
    margin-left: calc(var(--size, 34px) / -2);
    margin-top: calc(var(--size, 34px) / -2);
    border-radius: 50%;
    background: radial-gradient(circle,
      rgba(255,255,255,0.95) 0%,
      var(--ldr-dust) 55%,
      rgba(236,231,221,0) 75%);
    filter: blur(1.5px);
    opacity: 0;
    animation: dustRise var(--dur, 1.8s) ease-out forwards;
    animation-delay: var(--delay, 0s);
  }
  @keyframes dustRise{
    0%   { opacity:0; transform: translate(0,0) scale(.35); }
    18%  { opacity:.85; }
    100% { opacity:0; transform: translate(var(--dx, 10px), -108px) scale(1.25); }
  }

  /* ---- water found: droplets + first stream (stage 4) ---- */
  .droplet{
    position:absolute; left:0; top:0;
    width:7px; height:9px;
    margin-left:-3.5px;
    border-radius: 50% 50% 50% 0;
    transform: rotate(45deg);
    background: linear-gradient(180deg, var(--ldr-water-light), var(--ldr-water-mid));
    opacity:0;
    animation: dropPop 0.85s cubic-bezier(.3,1.4,.4,1) forwards;
    animation-delay: var(--delay, 0s);
  }
  @keyframes dropPop{
    0%   { opacity:0; transform: translate(0,-14px) rotate(45deg) scale(.4); }
    45%  { opacity:1; }
    100% { opacity:0; transform: translate(var(--dx,0), 26px) rotate(45deg) scale(1); }
  }

  .water-stream{
    position:absolute;
    left:-3px; bottom:0;
    width:6px; height:0;
    border-radius: 3px 3px 0 0;
    background: linear-gradient(180deg, var(--ldr-water-foam), var(--ldr-water-mid));
    opacity:0;
  }
  #loader[data-stage="found"] .water-stream,
  #loader[data-stage="spreading"] .water-stream,
  #loader[data-stage="flood"] .water-stream{
    opacity: .9;
    height: 46px;
    transition: height .6s cubic-bezier(.2,.7,.2,1), opacity .3s ease;
  }

  .water-found-label{
    position:absolute;
    left: 50%; bottom: 34px;
    transform: translate(-50%, 8px);
    white-space: nowrap;
    font-family: var(--ldr-font-body);
    font-weight: 600;
    font-size: clamp(0.95rem, 2.6vw, 1.2rem);
    color: var(--ldr-water-deep);
    opacity: 0;
    transition: opacity .5s ease, transform .5s cubic-bezier(.2,.7,.2,1);
  }
  #loader[data-stage="found"] .water-found-label{
    opacity: 1;
    transform: translate(-50%, 0);
  }

  /* ---- status readout ---- */
  .loader__status{
    opacity: 0;
    transform: translateY(6px);
    animation: brandIn .8s cubic-bezier(.2,.7,.3,1) forwards;
    animation-delay: .55s;
  }

  .status-text{
    margin: 0 0 .7rem;
    font-size: clamp(0.78rem, 2.1vw, 0.92rem);
    font-weight: 500;
    letter-spacing: 0.015em;
    color: var(--ldr-ink-soft);
    min-height: 1.2em;
  }

  .progress-track{
    position: relative;
    width: min(230px, 58vw);
    height: 3px;
    margin: 0 auto;
    background: var(--ldr-ink-faint);
    border-radius: 2px;
    overflow: hidden;
  }
  .progress-track::after{
    /* gauge ticks — a measured line, not a generic pill */
    content:"";
    position:absolute; inset:0;
    background-image: repeating-linear-gradient(
      90deg, rgba(255,255,255,.65) 0 1px, transparent 1px 10%
    );
    pointer-events:none;
  }
  .progress-fill{
    height:100%;
    width:0%;
    background: var(--ldr-rust);
    transition: background .6s ease, background-color .6s ease;
  }
  #loader[data-stage="dust"] .progress-fill{ background: #9AA6A2; }
  #loader[data-stage="found"] .progress-fill,
  #loader[data-stage="spreading"] .progress-fill,
  #loader[data-stage="flood"] .progress-fill{
    background: linear-gradient(90deg, var(--ldr-water-mid), var(--ldr-water-light));
  }

  /* ==========================================================================
     WATER FLOOD — the main transition (stages 5 & 6)
     ========================================================================== */
  .water-flood{
    position: fixed;
    inset: 0;
    z-index: 2;
    background:
      radial-gradient(120% 90% at 30% 15%, var(--ldr-water-light) 0%, var(--ldr-water-mid) 45%, var(--ldr-water-deep) 100%);
    clip-path: circle(0px at var(--drill-x, 92%) var(--drill-y, 94%));
    transition: clip-path 1.65s cubic-bezier(.32,.72,.24,1);
    pointer-events: none;
  }

  .wave-layer{
    position:absolute; inset:-2% -2% auto -2%;
    height: 26%;
    opacity: 0;
    background-repeat: repeat-x;
    background-size: 340px 100%;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='340' height='60' viewBox='0 0 340 60'><path d='M0 30 Q42.5 5 85 30 T170 30 T255 30 T340 30 V60 H0 Z' fill='white' fill-opacity='0.16'/></svg>");
    animation: waveDrift 5.5s linear infinite;
    transition: opacity .5s ease;
  }
  @keyframes waveDrift{ from{ background-position-x: 0; } to{ background-position-x: -340px; } }

  .shine-layer{
    position:absolute; inset:0;
    background: linear-gradient(115deg, transparent 35%, rgba(255,255,255,0.22) 50%, transparent 65%);
    background-size: 260% 260%;
    background-position: 120% -20%;
    opacity: 0;
    mix-blend-mode: overlay;
    transition: opacity .6s ease;
  }

  .bubble-field{ position:absolute; inset:0; overflow:hidden; }
  .bubble{
    position:absolute;
    bottom:-6%;
    left: var(--x, 50%);
    width: var(--size, 10px);
    height: var(--size, 10px);
    border-radius: 50%;
    background: radial-gradient(circle at 35% 30%, rgba(255,255,255,.9), rgba(255,255,255,.08) 70%);
    opacity:0;
    animation: bubbleRise var(--dur, 3.2s) ease-in forwards;
    animation-delay: var(--delay, 0s);
  }
  @keyframes bubbleRise{
    0%   { opacity:0; transform: translate(0,0); }
    12%  { opacity:.8; }
    100% { opacity:0; transform: translate(var(--sway, 12px), -112vh); }
  }

  #loader[data-stage="spreading"] .wave-layer,
  #loader[data-stage="flood"] .wave-layer{ opacity: 1; }
  #loader[data-stage="flood"] .shine-layer{ opacity: 1; animation: shineSweep 2.2s ease-in-out infinite; }

  /* Scene 6 — "for a brief moment the screen should feel completely
     immersed in water": let the brand/rig/status recede so the flood
     genuinely owns the screen for a beat before the reveal. */
  .loader__inner{ transition: opacity .75s ease; }
  #loader[data-stage="flood"] .loader__inner{ opacity: .16; }

  /* the small rig-side stream/label are part of the scene-4/5 story;
     once the full flood takes over they'd just be clutter on top of it */
  #loader[data-stage="flood"] .water-stream,
  #loader[data-stage="flood"] .water-found-label{ opacity: 0; }
  @keyframes shineSweep{
    0%, 100%{ background-position: 120% -20%; }
    50%     { background-position: -20% 20%; }
  }

/* ==========================================================================
   PWA — PROGRESSIVE WEB APP LAYER
   Bottom nav bar, safe-area insets, install prompt banner, standalone tweaks.
   These styles activate only when needed and never disturb the desktop layout.
   ========================================================================== */

/* -------------------------------- PWA SAFE-AREA INSETS ------------------- */
/* Respect notch / Dynamic Island / home indicator on all iOS & Android PWAs */
:root {
  --safe-top:    env(safe-area-inset-top,    0px);
  --safe-right:  env(safe-area-inset-right,  0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --safe-left:   env(safe-area-inset-left,   0px);

  /* Bottom nav height — used to push page content up */
  --pwa-nav-h:   68px;

  /* PWA accent: use site's own rust/aqua so the nav feels on-brand */
  --pwa-active:  var(--rust);
  --pwa-bg:      var(--slate);
  --pwa-ink:     var(--ink-dim);
  --pwa-border:  var(--line);
}

/* -------------------------------- BOTTOM NAV BAR ------------------------- */
/* Visible only on mobile (≤860 px). Hidden on desktop/tablet. */

.pwa-bottom-nav {
  display: none; /* shown via media query below */

  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 20000;

  height: calc(var(--pwa-nav-h) + var(--safe-bottom));
  padding-bottom: var(--safe-bottom);

  background: var(--pwa-bg);
  border-top: 1px solid var(--pwa-border);
  backdrop-filter: blur(18px) saturate(140%);
  -webkit-backdrop-filter: blur(18px) saturate(140%);

  /* Subtle top shadow so it lifts above page content */
  box-shadow: 0 -8px 32px -8px rgba(0, 0, 0, .45);
}

.pwa-nav-items {
  display: flex;
  align-items: stretch;
  justify-content: space-around;
  height: var(--pwa-nav-h);
  margin: 0;
  padding: 0;
  list-style: none;
}

.pwa-nav-item {
  flex: 1;
  display: flex;
}

.pwa-nav-link {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 8px 4px;
  color: var(--pwa-ink);
  text-decoration: none;
  font-family: var(--font-body);
  font-size: .64rem;
  font-weight: 500;
  letter-spacing: .02em;
  border: none;
  background: none;
  cursor: pointer;
  position: relative;
  transition: color .25s var(--ease), transform .25s var(--ease);
  -webkit-tap-highlight-color: transparent;
}

.pwa-nav-link i {
  font-size: 1.25rem;
  transition: transform .3s var(--ease), color .25s var(--ease);
  position: relative;
}

/* Active indicator — a small pill under the icon */
.pwa-nav-link::before {
  content: '';
  position: absolute;
  top: 7px;
  left: 50%;
  transform: translateX(-50%) scaleX(0);
  width: 32px;
  height: 3px;
  border-radius: 2px;
  background: var(--pwa-active);
  transition: transform .3s var(--ease);
}

.pwa-nav-link.active {
  color: var(--pwa-active);
}

.pwa-nav-link.active::before {
  transform: translateX(-50%) scaleX(1);
}

.pwa-nav-link.active i {
  transform: translateY(-2px);
}

/* The centre "Call" button gets special pill treatment */
.pwa-nav-item--cta .pwa-nav-link {
  color: #fff;
}

.pwa-nav-item--cta .pwa-nav-link i {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--rust), var(--rust-light));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  box-shadow: 0 8px 22px -6px rgba(193, 87, 30, .75);
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}

.pwa-nav-item--cta .pwa-nav-link:active i {
  transform: scale(.92);
  box-shadow: 0 4px 12px -4px rgba(193, 87, 30, .6);
}

/* Tap feedback for all items */
.pwa-nav-link:active {
  transform: scale(.94);
}

/* Hide the active pill for the CTA centre button */
.pwa-nav-item--cta .pwa-nav-link::before {
  display: none;
}

/* -------------------------------- BODY PADDING FOR BOTTOM NAV ----------- */
/* When bottom nav is visible, push page content up so nothing hides behind it */

/* -------------------------------- STANDALONE MODE TWEAKS ---------------- */
/* When the PWA is installed and launched from the home screen */

/* -------------------------------- PWA INSTALL BANNER -------------------- */
/* A subtle "Add to Home Screen" nudge that lives above the content.
   Show/hide it from JS by toggling .pwa-install-banner--visible. */

.pwa-install-banner {
  position: fixed;
  bottom: calc(var(--pwa-nav-h) + var(--safe-bottom) + 12px);
  left: 12px;
  right: 12px;
  z-index: 19000;

  display: flex;
  align-items: center;
  gap: 14px;

  background: var(--slate);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 14px 16px;
  box-shadow: 0 16px 48px -12px rgba(0, 0, 0, .55);

  opacity: 0;
  transform: translateY(16px);
  pointer-events: none;
  transition: opacity .4s var(--ease), transform .4s var(--ease);
}

.pwa-install-banner--visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.pwa-install-banner__icon {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: linear-gradient(135deg, var(--rust), var(--rust-light));
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1.3rem;
  flex-shrink: 0;
}

.pwa-install-banner__text {
  flex: 1;
  min-width: 0;
}

.pwa-install-banner__text strong {
  display: block;
  font-size: .9rem;
  color: var(--ink);
  margin-bottom: 2px;
  font-family: var(--font-display);
}

.pwa-install-banner__text span {
  font-size: .76rem;
  color: var(--ink-dim);
}

.pwa-install-banner__actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.pwa-install-btn {
  background: linear-gradient(135deg, var(--rust), var(--rust-light));
  color: #fff;
  border: none;
  padding: 9px 16px;
  border-radius: 999px;
  font-size: .8rem;
  font-weight: 600;
  font-family: var(--font-body);
  cursor: pointer;
  transition: transform .25s var(--ease), box-shadow .25s var(--ease);
  white-space: nowrap;
}

.pwa-install-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px -6px rgba(193, 87, 30, .65);
}

.pwa-install-dismiss {
  background: none;
  border: none;
  color: var(--ink-dim);
  font-size: 1.1rem;
  cursor: pointer;
  padding: 4px;
  line-height: 1;
  transition: color .25s var(--ease);
}

.pwa-install-dismiss:hover {
  color: var(--ink);
}

/* -------------------------------- OFFLINE TOAST ------------------------- */
/* JS toggles .pwa-offline-toast--visible when connectivity changes */

.pwa-offline-toast {
  position: fixed;
  top: calc(var(--safe-top) + 72px);
  left: 50%;
  transform: translateX(-50%) translateY(-16px);
  z-index: 30000;

  background: var(--ochre);
  color: var(--well);
  padding: 10px 20px;
  border-radius: 999px;
  font-size: .82rem;
  font-weight: 600;
  font-family: var(--font-body);
  white-space: nowrap;

  display: flex;
  align-items: center;
  gap: 8px;

  opacity: 0;
  pointer-events: none;
  transition: opacity .35s var(--ease), transform .35s var(--ease);
  box-shadow: 0 8px 24px -6px rgba(0, 0, 0, .4);
}

.pwa-offline-toast--visible {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

/* -------------------------------- LIGHT THEME OVERRIDES (PWA layer) ------ */

html[data-theme="light"] .pwa-bottom-nav {
  background: rgba(255, 255, 255, .88);
  box-shadow: 0 -4px 20px -4px rgba(23, 33, 31, .12);
}

html[data-theme="light"] .pwa-install-banner {
  background: var(--card);
  box-shadow: 0 12px 36px -10px rgba(23, 33, 31, .18);
}

/* -------------------------------- DESKTOP: hide PWA nav entirely --------- */

/* ==========================================================================
   LAYOUT CHANGES — Mobile 2-column for About & Services, Contact marquee,
   floating buttons desktop-only, bottom nav updated tabs.
   ========================================================================== */

/* ── About boxes: 2 per row on mobile ───────────────────────────────────── */

/* ── Our Services (detailed): 2 per row on mobile ───────────────────────── */

/* ── Bottom nav install button ──────────────────────────────────────────── */
.pwa-nav-install-btn {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 8px 4px;
  color: var(--pwa-ink);
  text-decoration: none;
  font-family: var(--font-body);
  font-size: .64rem;
  font-weight: 500;
  letter-spacing: .02em;
  border: none;
  background: none;
  cursor: pointer;
  position: relative;
  transition: color .25s var(--ease), transform .25s var(--ease);
  -webkit-tap-highlight-color: transparent;
}
.pwa-nav-install-btn i {
  font-size: 1.25rem;
  transition: transform .3s var(--ease), color .25s var(--ease);
}
.pwa-nav-install-btn--ready { color: #a855f7; }
.pwa-nav-install-btn--ready i { color: #a855f7; }
.pwa-nav-item--install .pwa-nav-link::before { display: none; }

/* ── Contact colour boxes: desktop 4-col, mobile marquee ────────────────── */

/* Desktop: keep 4-column grid (already the default, just ensure it) */

/* Mobile: horizontal auto-scrolling marquee strip */

/* Marquee keyframes — scroll the strip left by the width of one card + gap */
@keyframes contactMarquee {
  0%   { transform: translateX(0); }
  100% { transform: translateX(calc(-234px * 4)); }  /* 220px card + 14px gap, × 4 cards */
}

/* ── Floating WhatsApp / Instagram: DESKTOP ONLY ─────────────────────────
   On mobile these are replaced by the bottom-nav WhatsApp tab.
   ─────────────────────────────────────────────────────────────────────── */

/* ── Bottom nav: swap Services+Areas for Calculator+WhatsApp ────────────── */
/* The HTML bottom nav is already injected; these rules style the new tabs.
   The tab labels are controlled by the HTML — update nav labels in the HTML.
   Here we just give the WhatsApp tab its brand colour when active. */

.pwa-nav-item--whatsapp .pwa-nav-link.active,
.pwa-nav-item--whatsapp .pwa-nav-link:active {
  color: #25D366;
}

.pwa-nav-item--whatsapp .pwa-nav-link.active::before {
  background: #25D366;
}

/* Calculator tab accent */
.pwa-nav-item--calc .pwa-nav-link.active {
  color: var(--rust);
}

.pwa-nav-item--calc .pwa-nav-link.active::before {
  background: var(--rust);
}

/* ==========================================================================
   BOREWELL CALCULATOR — scoped to #calculator-section
   Uses the site's existing token set so dark/light theme switching works
   automatically. No separate variables needed — --well, --slate, --ink,
   --rust, --aqua, --ochre, --line, --card, --card-2, --radius, --shadow,
   --font-display, --font-body are all already set by the theme toggle.
   ========================================================================== */

/* ---- Section shell ---- */
#calculator-section {
  background: var(--well);
  font-family: var(--font-body);
  transition: background .5s var(--ease), color .5s var(--ease);
}

/* ---- Page wrapper ---- */
#calculator-section .page {
  max-width: 1300px;
  margin: 0 auto;
  padding: 48px 24px 64px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
}

/* ==========================================================================
   HEADER
   ========================================================================== */
#calculator-section .site-header {
  display: block;
  align-items: center;
  justify-content:center;
  gap: 24px;
  padding-bottom: 12px;
}

#calculator-section .calculator-title {
  flex: 1;
  text-align: center;
}

#calculator-section .calculator-title h1 {
  font-family: var(--font-display);
  font-size: 44px;
  font-weight: 700;
  letter-spacing: -.02em;
  color: var(--ink);
  line-height: 1.05;
  text-transform: uppercase;
  margin: 0;
  /* beat .txtcolor gradient if applied */
  background: none;
  -webkit-text-fill-color: var(--ink);
}

#calculator-section .calculator-title h2 {
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--aqua);
  margin: 6px 0 4px;
  background: none;
  -webkit-text-fill-color: var(--aqua);
}

#calculator-section .calculator-title p {
  font-size: 13px;
  color: var(--ink-dim);
  font-weight: 400;
  margin: 0;
}

/* badge */
#calculator-section .badge-years {
  margin-left: 37%;
  width: 28%;
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 14px ;
  flex-shrink: 0;
  box-shadow: var(--shadow);
  transition: background .5s var(--ease);
}

#calculator-section .badge-years svg {
  width: 28px;
  height: 28px;
  flex-shrink: 0;
  color: var(--aqua);
}

#calculator-section .badge-years span {
  font-family: var(--font-body);
  font-size: 12px;
  color: var(--ink-dim);
  line-height: 1.4;
  text-align: center;
  background: none;
  -webkit-text-fill-color: var(--ink-dim);
}

#calculator-section .badge-years span b {
  display: flex;
  font-family: var(--font-display);
  font-size: 18px;
  font-weight: 200;
  color: var(--ink);
  line-height: 1;
  background: none;
  -webkit-text-fill-color: var(--ink);
}

/* ==========================================================================
   SHARED PANEL
   ========================================================================== */
#calculator-section .panel {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 22px;
  box-shadow: var(--shadow);
  transition: background .5s var(--ease);
}

#calculator-section .panel-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--ink-dim);
  margin: 0 0 18px;
  padding: 0;
  list-style: none;
  border: none;
  background: none;
  -webkit-text-fill-color: var(--ink-dim);
}

#calculator-section .panel-title.center { justify-content: center; }

#calculator-section .panel-title .title-icon {
  width: 16px;
  height: 16px;
  color: var(--aqua);
  flex-shrink: 0;
}

#calculator-section .panel-subtitle {
  font-family: var(--font-body);
  font-size: 12px;
  color: var(--ink-dim);
  margin: -12px 0 16px;
  padding: 0;
}

/* ==========================================================================
   SETUP ROW — mode selector + project details
   ========================================================================== */
#calculator-section .setup-row {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 18px;
  align-items: start;
}

/* ---- Mode panel ---- */
#calculator-section .mode-panel { padding: 22px; }

#calculator-section .mode-cards {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

#calculator-section .mode-card {
  display: flex;
  align-items: center;
  gap: 14px;
  background: var(--card-2);
  border: 1.5px solid var(--line);
  border-radius: var(--radius-sm);
  padding: 14px 16px;
  cursor: pointer;
  text-align: left;
  width: 100%;
  color: var(--ink);
  font-family: var(--font-body);
  transition: border-color .2s var(--ease), background .2s var(--ease);
  position: relative;
  box-shadow: none;
  outline: none;
}

#calculator-section .mode-card:hover {
  border-color: rgba(47,211,201,.35);
  background: var(--slate-2);
}

#calculator-section .mode-card.active {
  background: var(--rust);
  border-color: var(--rust);
  color: #fff;
}

#calculator-section .mode-icon {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

#calculator-section .mode-icon svg { width: 28px; height: 32px; }
#calculator-section .mode-card.active .mode-icon svg { color: #fff; }
#calculator-section .mode-card:not(.active) .mode-icon svg { color: var(--ink-dim); }

#calculator-section .mode-copy {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

#calculator-section .mode-name {
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 600;
  display: block;
  color: inherit;
}

#calculator-section .mode-desc {
  font-family: var(--font-body);
  font-size: 11px;
  display: block;
  opacity: .78;
  color: inherit;
}

#calculator-section .mode-card:not(.active) .mode-name { color: var(--ink); }
#calculator-section .mode-card:not(.active) .mode-desc { color: var(--ink-dim); opacity: 1; }

#calculator-section .mode-radio {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,.4);
  flex-shrink: 0;
  background: transparent;
}

#calculator-section .mode-check {
  display: none;
  width: 22px;
  height: 22px;
  background: rgba(255,255,255,.25);
  border-radius: 50%;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

#calculator-section .mode-check svg { width: 14px; height: 14px; }
#calculator-section .mode-card.active .mode-radio { display: none; }
#calculator-section .mode-card.active .mode-check { display: flex; }

/* ---- Details panel ---- */
#calculator-section .details-panel { padding: 22px; }

#calculator-section .customer-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 14px;
}

#calculator-section .fields-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

/* ---- Input fields ---- */
#calculator-section .field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0;
  padding: 0;
}

#calculator-section .field > span,
#calculator-section .field > label {
  font-family: var(--font-body);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--ink-dim);
  display: block;
  margin: 0;
  padding: 0;
  background: none;
  -webkit-text-fill-color: var(--ink-dim);
}

#calculator-section .field input {
  background: var(--card-2) !important;
  border: 1px solid var(--line) !important;
  border-radius: var(--radius-sm) !important;
  padding: 10px 14px !important;
  font-family: var(--font-body) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: var(--ink) !important;
  outline: none !important;
  width: 100% !important;
  box-shadow: none !important;
  -webkit-appearance: none;
  transition: border-color .2s var(--ease), box-shadow .2s var(--ease) !important;
}

#calculator-section .field input:focus {
  border-color: var(--aqua) !important;
  box-shadow: 0 0 0 3px var(--aqua-glow) !important;
}

#calculator-section .field input::placeholder {
  color: var(--ink-dim) !important;
  opacity: .55 !important;
}

/* hide spinners */
#calculator-section .field input[type=number]::-webkit-inner-spin-button,
#calculator-section .field input[type=number]::-webkit-outer-spin-button { -webkit-appearance: none; }
#calculator-section .field input[type=number] { -moz-appearance: textfield; }

#calculator-section .input-suffix {
  position: relative;
  display: flex;
  align-items: center;
}

#calculator-section .input-suffix input { padding-right: 44px !important; }

#calculator-section .input-suffix em {
  position: absolute;
  right: 12px;
  font-style: normal;
  font-size: 12px;
  color: var(--ink-dim);
  pointer-events: none;
  white-space: nowrap;
}

/* ---- Controls row ---- */
#calculator-section .controls-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 18px;
  gap: 14px;
  flex-wrap: wrap;
}

#calculator-section .gst-toggle {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
}

#calculator-section .toggle-label {
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 500;
  color: var(--ink-dim);
}

.nigilswitch {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  font-size: 14px;
}

.nigilswitch input {
  display: none;
}

.nigilslider {
  width: 42px;
  height: 22px;
  background: #ccc;
  border-radius: 20px;
  position: relative;
  transition: 0.3s;
}

.nigilslider::before {
  content: "";
  position: absolute;
  width: 18px;
  height: 18px;
  left: 2px;
  top: 2px;
  background: white;
  border-radius: 50%;
  transition: 0.3s;
}

.nigilswitch input:checked + .nigilslider {
  background: #22c55e;
}

.nigilswitch input:checked + .nigilslider::before {
  transform: translateX(20px);
}

.nigilswitch b {
  font-size: 12px;
  color: #22c55e;
}
/* ==========================================================================
   BUTTONS
   ========================================================================== */
#calculator-section .btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  padding: 10px 20px;
  transition: opacity .2s, transform .15s var(--ease), box-shadow .2s;
  white-space: nowrap;
  text-decoration: none;
  line-height: 1;
  border: none;
}

#calculator-section .btn svg { width: 16px; height: 16px; flex-shrink: 0; }
#calculator-section .btn:hover { opacity: .88; transform: translateY(-1px); }
#calculator-section .btn:active { transform: translateY(0); }

#calculator-section .btn-ghost {
  background: var(--card-2);
  border: 1px solid var(--line);
  color: var(--ink-dim);
  box-shadow: none;
}

#calculator-section .btn-primary {
  background: var(--rust);
  color: #fff;
  box-shadow: 0 6px 20px -6px rgba(193,87,30,.5);
}

#calculator-section .btn-whatsapp {
  background: #25D366;
  color: #fff;
  box-shadow: 0 6px 20px -6px rgba(37,211,102,.4);
}

/* ==========================================================================
   STAT CARDS
   ========================================================================== */
#calculator-section .stats-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}

#calculator-section .stat-card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 18px 20px;
  display: flex;
  align-items: center;
  gap: 16px;
  box-shadow: var(--shadow);
  transition: background .5s var(--ease);
}

#calculator-section .stat-icon {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

#calculator-section .stat-icon svg { width: 22px; height: 22px; }

/* Use site accent colours so they switch with the theme */
#calculator-section .icon-blue   { background: rgba(47,211,201,.15);  color: var(--aqua); }
#calculator-section .icon-green  { background: rgba(61,214,140,.15);  color: #3DD68C; }
#calculator-section .icon-purple { background: rgba(155,109,255,.15); color: #9B6DFF; }
#calculator-section .icon-amber  { background: rgba(217,164,65,.18);  color: var(--ochre); }

#calculator-section .stat-copy {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

#calculator-section .stat-label {
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--ink-dim);
  display: block;
  background: none;
  -webkit-text-fill-color: var(--ink-dim);
}

#calculator-section .stat-value {
  font-family: var(--font-display);
  font-size: 24px;
  font-weight: 700;
  color: var(--ink);
  display: block;
  line-height: 1.1;
  background: none;
  -webkit-text-fill-color: var(--ink);
}

/* ==========================================================================
   RESULTS ROW — breakdown table + summary
   ========================================================================== */
#calculator-section .results-row {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 18px;
  align-items: start;
}

#calculator-section .results-side {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

#calculator-section .breakdown-box,
#calculator-section .summary-box { padding: 22px; }

#calculator-section .breakdown-box > summary,
#calculator-section .summary-box > summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0;
  margin: 0;
}

#calculator-section .breakdown-box > summary::-webkit-details-marker,
#calculator-section .summary-box > summary::-webkit-details-marker { display: none; }

#calculator-section .breakdown-box > summary .panel-title,
#calculator-section .summary-box > summary .panel-title { margin-bottom: 0; }

#calculator-section .chevron {
  width: 16px;
  height: 16px;
  color: var(--ink-dim);
  transition: transform .25s var(--ease);
  flex-shrink: 0;
}

#calculator-section details[open] .chevron { transform: rotate(90deg); }
#calculator-section details[open] > summary { margin-bottom: 16px; }

/* ---- Table head / foot ---- */
#calculator-section .table-head,
#calculator-section .table-foot {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 8px;
  padding: 8px 12px;
  font-family: var(--font-body);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ink-dim);
  -webkit-text-fill-color: var(--ink-dim);
  border: none;
  background: none;
}

#calculator-section .table-foot {
  border-top: 1px solid var(--line);
  margin-top: 8px;
  padding-top: 14px;
  font-size: 13px;
  font-weight: 700;
  color: var(--ink);
  -webkit-text-fill-color: var(--ink);
}

#calculator-section .table-foot span:last-child {
  text-align: right;
  font-family: var(--font-display);
  font-size: 18px;
  color: var(--ink);
  -webkit-text-fill-color: var(--ink);
}

#calculator-section .table-foot span:nth-child(2) {
  text-align: center;
  color: var(--ink-dim);
  -webkit-text-fill-color: var(--ink-dim);
  font-weight: 500;
  font-size: 12px;
  align-self: center;
}

#calculator-section .table-body {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

#calculator-section .breakdown-row {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 8px;
  align-items: center;
  padding: 9px 12px;
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 13px;
  color: var(--ink);
  transition: background .15s;
}

#calculator-section .breakdown-row:hover { background: var(--card-2); }

#calculator-section .breakdown-row .row-num {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--rust);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-right: 8px;
  flex-shrink: 0;
}

#calculator-section .breakdown-row .row-slab { display: flex; align-items: center; }
#calculator-section .breakdown-row .row-rate,
#calculator-section .breakdown-row .row-depth { color: var(--ink-dim); }
#calculator-section .breakdown-row .row-amount { text-align: right; font-weight: 600; }

/* ---- Summary box ---- */
#calculator-section .details-text {
  font-family: var(--font-body);
  font-size: 12px;
  color: var(--ink-dim);
  margin-bottom: 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--line);
}

#calculator-section .summary-lines {
  display: flex;
  flex-direction: column;
}

#calculator-section .summary-line {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 9px 0;
  font-family: var(--font-body);
  font-size: 13px;
  border-bottom: 1px solid var(--line);
}

#calculator-section .summary-line:last-child { border-bottom: none; }

#calculator-section .summary-line span:first-child { color: var(--ink-dim); }
#calculator-section .summary-line span:last-child  { color: var(--ink); font-weight: 600; }

#calculator-section .summary-line em {
  font-style: normal;
  font-size: 11px;
  color: var(--ink-dim);
  opacity: .7;
}

#calculator-section .summary-divider {
  height: 1px;
  background: var(--line);
  margin: 4px 0;
}

#calculator-section .summary-line .amber {
  color: var(--ochre);
  -webkit-text-fill-color: var(--ochre);
}

#calculator-section .summary-total {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 14px;
  padding: 14px 16px;
  background: var(--card-2);
  border-radius: var(--radius-sm);
  border: 1px solid var(--aqua);
  transition: background .5s var(--ease);
}

#calculator-section .summary-total span:first-child {
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ink);
  -webkit-text-fill-color: var(--ink);
}

#calculator-section .summary-total span:last-child {
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 700;
  color: var(--aqua);
  -webkit-text-fill-color: var(--aqua);
}

/* ---- Note panel ---- */
#calculator-section .note-panel {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
}

#calculator-section .note-icon {
  width: 40px;
  height: 40px;
  background: rgba(47,211,201,.12);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

#calculator-section .note-icon svg { width: 20px; height: 20px; }

#calculator-section .note-panel b {
  display: block;
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
  margin: 0 0 2px;
  -webkit-text-fill-color: var(--ink);
}

#calculator-section .note-panel p {
  font-family: var(--font-body);
  font-size: 12px;
  color: var(--ink-dim);
  margin: 0;
  padding: 0;
  -webkit-text-fill-color: var(--ink-dim);
}

/* ==========================================================================
   INCLUDED PANEL
   ========================================================================== */
#calculator-section .included-panel { padding: 26px 32px; }

#calculator-section .included-grid {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
}

#calculator-section .included-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  text-align: center;
  flex: 1;
}

#calculator-section .included-icon {
  width: 52px;
  height: 52px;
  background: rgba(47,211,201,.12);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--aqua);
  flex-shrink: 0;
}

#calculator-section .included-icon svg { width: 22px; height: 22px; }

#calculator-section .included-item > span:last-child {
  font-family: var(--font-body);
  font-size: 12px;
  color: var(--ink-dim);
  line-height: 1.4;
  -webkit-text-fill-color: var(--ink-dim);
}

/* ==========================================================================
   SAVE + NOTES ROW
   ========================================================================== */
#calculator-section .save-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}

#calculator-section .save-buttons {
  display: flex;
  gap: 12px;
  margin-top: 6px;
}

#calculator-section .save-buttons .btn {
  flex: 1;
  justify-content: center;
  padding: 12px 18px;
}

#calculator-section .notes-list {
  list-style: disc;
  padding-left: 18px;
  display: flex;
  flex-direction: column;
  gap: 7px;
  margin: 0;
}

#calculator-section .notes-list li {
  font-family: var(--font-body);
  font-size: 13px;
  color: var(--ink-dim);
  line-height: 1.5;
  -webkit-text-fill-color: var(--ink-dim);
}

/* ==========================================================================
   COMPAT HIDES
   ========================================================================== */
#calculator-section .details-box,
#calculator-section .result-box { display: none !important; }

/* ---- Tablet: stack the two-column layouts, keep field pairs side by side ---- */

/* ---- Phone: single column everything, tighter type/spacing ---- */

/* ---- Small phones: only now drop field pairs to one per row ---- */

/* ==========================================================================
   SERVICE AREAS
   Namespaced with "sarea-" so it can't collide with the existing
   .service-area / .service-card accordion styles above.
   ========================================================================== */
:root{
  --sarea-c1:#3B7CF6; /* Namakkal   */
  --sarea-c2:#0E9E8F; /* Tiruchengode */
  --sarea-c3:#8B5CF6; /* Salem      */
  --sarea-c4:#DD8A22; /* Erode      */
  --sarea-c5:#3E9A5C; /* Karur      */
  --sarea-c6:#E14876; /* Trichy     */
}

.sarea{ padding:var(--section-top) 6% 60px; position:relative; }

/* ---------- mobile-only hero heading (shown above the map on small screens) ---------- */
.sarea-mobile-head{ display:none; }
.sarea-mobile-pinrow{ display:flex; align-items:center; justify-content:center; gap:14px; }
.sarea-mobile-pinrow .line{ width:46px; height:1px; background:var(--line); }
.sarea-mobile-pinrow i{ color:#4C86FF; font-size:1.05rem; }
.sarea-mobile-title{ font-size:1.6rem; line-height:1.22; letter-spacing:.02em; text-transform:uppercase; margin:0; }
.sarea-mobile-title .hl{ display:block; color:var(--aqua); font-size:1.85rem; }
.sarea-mobile-sub{ font-size:.85rem; color:var(--ink-dim); margin:2px 0 0; }
.sarea-rule--center{ margin:14px auto 0; }

/* ---------- mobile-only "5 AREAS + HQ" pill (below the map; desktop keeps the corner badge) ---------- */
.sarea-map-legend-mobile{ display:none; }

/* ---------- mobile-only short CTA description ---------- */
.sarea-cta-desc-mobile{ display:none; }

/* ---------- top: intro + orbit map ---------- */
.sarea-top{
  display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center;
  max-width:1300px; margin:0 auto 60px;
}
.sarea-badge{
  display:inline-flex; align-items:center; gap:8px; font-family:var(--font-mono);
  font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--aqua);
  margin-bottom:18px;
}
.sarea-badge::after{ content:''; width:34px; height:1px; background:var(--line); margin-left:6px; }
.sarea-title{ font-size:clamp(2rem,3.6vw,2.9rem); line-height:1.08; margin-bottom:16px; }
.sarea-title em{ font-style:normal; color:var(--aqua); }
.sarea-desc{ font-size:1.02rem; max-width:420px; margin-bottom:26px; }
.sarea-rule{ width:44px; height:3px; border-radius:3px; background:linear-gradient(90deg,var(--rust),var(--aqua)); margin-bottom:26px; }

.sarea-stats{ display:flex; flex-wrap:wrap; gap:22px 30px; margin-top:8px; }
.sarea-stat{ display:flex; align-items:center; gap:12px; }
.sarea-stat i{
  width:38px; height:38px; flex:0 0 38px; border-radius:10px; display:flex; align-items:center; justify-content:center;
  background:rgba(47,211,201,.1); color:var(--aqua); font-size:.95rem; border:1px solid var(--line);
}
.sarea-stat strong{ display:block; font-size:.95rem; color:var(--ink); }
.sarea-stat span{ font-size:.78rem; color:var(--ink-dim); }

/* ---------- orbit map ----------
   Geometry measured off the reference screenshot (600x600 working grid,
   centre 300,300). Node radius 225, inner-ring radius 130 — angles below
   are the actual atan2 angles of each town relative to Namakkal in the
   source image, not eyeballed placeholders. Badge position + SVG geometry
   share the same 1:1 coordinate space so they line up at any screen size.

   IMPORTANT: every visual child (grid/svg/pin/badges) is position:absolute,
   so .sarea-map-wrap has NO content to size itself from. It does NOT rely
   on `aspect-ratio` alone (that property silently fails to apply in some
   cascades/older browsers and the whole map collapses to 0 height when it
   does). Instead it uses the classic padding-top:100% intrinsic-ratio
   trick as the sizing mechanism, which always works. */
.sarea-map-wrap{
  position:relative; width:100%; max-width:560px; margin:0 auto;
}
.sarea-map-wrap::before{ content:''; display:block; padding-top:100%; } /* forces a square box */
.sarea-map-inner{
  position:absolute; inset:0; border-radius:28px; overflow:hidden;
  background:
    radial-gradient(120% 120% at 28% 16%, rgba(59,124,246,.20) 0%, transparent 46%),
    radial-gradient(75% 75% at 12% 88%, rgba(47,211,201,.14) 0%, transparent 60%),
    radial-gradient(70% 70% at 88% 12%, rgba(139,92,246,.10) 0%, transparent 55%),
    radial-gradient(90% 90% at 50% 50%, #0c1b2c 0%, #060d16 55%, #03070c 100%);
}
.sarea-map-grid{
  position:absolute; inset:0;
  background-image:radial-gradient(rgba(234,241,242,.09) 1px, transparent 1px);
  background-size:16px 16px;
  -webkit-mask-image:radial-gradient(circle at 50% 50%, #000 62%, transparent 86%);
          mask-image:radial-gradient(circle at 50% 50%, #000 62%, transparent 86%);
}
.sarea-map-svg{ position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
.sarea-map-svg .ring{ fill:none; stroke:rgba(234,241,242,.24); stroke-width:1.3; stroke-dasharray:2 5.5; transform-origin:300px 300px; }
.sarea-map-svg .ring--outer{ stroke:rgba(234,241,242,.14); stroke-width:1; stroke-dasharray:1.5 7; animation:sareaRingSpin 90s linear infinite; }
@keyframes sareaRingSpin{ to{ transform:rotate(360deg); } }
.sarea-map-svg .connector{ stroke:rgba(234,241,242,.34); stroke-width:1.4; stroke-dasharray:2.5 5; }
.sarea-map-svg .dot{ fill:rgba(234,241,242,.6); }
.sarea-map-svg .blob{ fill:url(#sareaBlobFill); stroke:rgba(90,150,255,.65); stroke-width:1.6; }

/* ---------- corner info badges — fill the otherwise empty corners ---------- */
.sarea-map-info,.sarea-map-legend{
  position:absolute; z-index:3; display:flex; align-items:center; gap:7px;
  font-family:var(--font-mono); font-size:.62rem; letter-spacing:.08em; color:#CFE0E3;
  background:rgba(234,241,242,.06); border:1px solid rgba(234,241,242,.14);
  padding:7px 12px; border-radius:999px; -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
}
.sarea-map-info i,.sarea-map-legend i{ color:var(--aqua); font-size:.72rem; }
.sarea-map-info{ top:18px; left:18px; }
.sarea-map-legend{ bottom:18px; left:18px; }

.sarea-pin{ position:absolute; left:50%; top:42%; transform:translate(-50%,-52%); text-align:center; z-index:2; }
.sarea-pin-glow{
  position:absolute; left:50%; top:2px; transform:translate(-50%,0); width:60px; height:60px;
  border-radius:50%; background:radial-gradient(circle, rgba(80,150,255,.55), transparent 70%);
  animation:sareaPulse 2.6s ease-out infinite;
}
@keyframes sareaPulse{ 0%{ transform:translate(-50%,0) scale(.4); opacity:.85; } 100%{ transform:translate(-50%,0) scale(2.2); opacity:0; } }
.sarea-pin i{ position:relative; z-index:1; font-size:1.9rem; color:#4C86FF; filter:drop-shadow(0 0 10px rgba(76,134,255,.75)); }
.sarea-pin strong{ display:block; margin-top:8px; font-family:var(--font-display); font-size:.86rem; letter-spacing:.03em; color:#fff; }
.sarea-pin span{ display:block; font-size:.7rem; color:#4C86FF; font-family:var(--font-mono); }

.sarea-node{
  position:absolute; width:12.6%; aspect-ratio:1; transform:translate(-50%,-50%);
  background:#F5F7F8; border-radius:50%; display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 26px -8px rgba(0,0,0,.65); z-index:2; transition:transform .3s var(--ease);
}
.sarea-node svg{ width:52%; height:52%; color:#2C4C8C; }
.sarea-node:hover{ transform:translate(-50%,-50%) scale(1.1); }
.sarea-node-label{
  position:absolute; top:100%; left:50%; transform:translateX(-50%); margin-top:8px;
  font-family:var(--font-mono); font-size:.64rem; letter-spacing:.09em; white-space:nowrap; color:var(--ink-dim);
}
/* fixed positions — % of .sarea-map-wrap, derived from the 600x600 grid above */
.sarea-node--tiruchengode{ left:50%;    top:12.5%;  }
.sarea-node--salem{        left:81.93%; top:30.35%; }
.sarea-node--karur{        left:86.77%; top:57.42%; }
.sarea-node--trichy{       left:68.92%; top:82.38%; }
.sarea-node--erode{        left:16.3%;  top:33.57%; }

/* ---------- descriptive cards row (desktop) ---------- */
.sarea-cards{
  display:grid; grid-template-columns:repeat(6,1fr); gap:18px;
  max-width:1300px; margin:0 auto 40px;
}
.sarea-card{
  --c:var(--sarea-c1);
  position:relative; background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:20px 16px 60px; text-align:left; overflow:hidden;
  transition:transform .35s var(--ease), border-color .35s var(--ease), box-shadow .35s var(--ease);
}
.sarea-card:hover{ transform:translateY(-6px); border-color:var(--c); box-shadow:0 20px 40px -22px var(--c); }
.sarea-num{
  position:absolute; top:14px; left:14px; width:30px; height:30px; border-radius:8px;
  background:var(--c); color:#fff; font-family:var(--font-mono); font-size:.78rem; font-weight:600;
  display:flex; align-items:center; justify-content:center;
}
.sarea-card i.sarea-icon{
  display:flex; align-items:center; justify-content:center; height:70px; font-size:2.1rem; color:var(--c); margin-bottom:12px;
}
.sarea-card h3{ font-size:1rem; color:var(--c); margin-bottom:8px; }
.sarea-card p{ font-size:.82rem; line-height:1.55; }
.sarea-arrow{
  position:absolute; bottom:16px; left:16px; width:34px; height:34px; border-radius:50%; border:none;
  background:var(--c); color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer;
  transition:transform .3s var(--ease);
}
.sarea-card:hover .sarea-arrow{ transform:translateX(4px); }

/* ---------- mobile "we serve here" condensed grid (hidden on desktop) ---------- */
.sarea-quick{ display:none; }
.sarea-quick-head{
  display:flex; align-items:center; gap:12px; max-width:1300px; margin:0 auto 16px; padding:0 6%;
}
.sarea-quick-head::before,.sarea-quick-head::after{ content:''; flex:1; height:1px; background:var(--line); }
.sarea-quick-head span{ font-family:var(--font-mono); font-size:.7rem; letter-spacing:.14em; color:var(--ink-dim); white-space:nowrap; }
.sarea-quick-grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; padding:0 6%; }
.sarea-quick-item{
  --c:var(--sarea-c1);
  display:flex; flex-direction:column; align-items:flex-start; gap:10px; position:relative;
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius-sm); padding:16px;
}
.sarea-quick-item .sarea-num{ position:static; margin-bottom:4px; }
.sarea-quick-item i.sarea-icon{ height:auto; font-size:1.6rem; color:var(--c); margin:0; }
.sarea-quick-item strong{ font-size:.82rem; letter-spacing:.03em; color:var(--c); }

/* ---------- bottom CTA bar ---------- */
.sarea-cta{
  max-width:1300px; margin:0 auto; background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:26px 30px; display:flex; align-items:center; gap:30px; flex-wrap:wrap; box-shadow:var(--shadow);
}
.sarea-cta-info{ display:flex; align-items:center; gap:16px; flex:1 1 280px; }
.sarea-cta-info i.truck{
  width:52px; height:52px; flex:0 0 52px; border-radius:50%; background:rgba(47,211,201,.1);
  color:var(--aqua); display:flex; align-items:center; justify-content:center; font-size:1.3rem;
}
.sarea-cta-info h4{ font-size:1rem; margin-bottom:4px; }
.sarea-cta-info p{ font-size:.85rem; }
.sarea-cta-info a{ color:var(--aqua); font-weight:600; }

.sarea-cta-stats{ display:flex; gap:26px; flex:1 1 280px; }
.sarea-cta-stats div{ display:flex; align-items:center; gap:10px; }
.sarea-cta-stats i{ color:var(--aqua); font-size:1.1rem; }
.sarea-cta-stats strong{ display:block; font-size:.95rem; color:var(--ink); }
.sarea-cta-stats span{ font-size:.72rem; color:var(--ink-dim); }

.sarea-cta-call{
  flex:0 0 auto; display:flex; align-items:center; gap:14px;
  background:linear-gradient(135deg,var(--rust),var(--rust-light)); border-radius:var(--radius-sm);
  padding:14px 22px; color:#fff; transition:transform .3s var(--ease);
}
.sarea-cta-call:hover{ transform:translateY(-2px); }
.sarea-cta-call-icon{
  width:42px; height:42px; border-radius:50%; background:rgba(255,255,255,.18);
  display:flex; align-items:center; justify-content:center; font-size:1.1rem;
}
.sarea-cta-call small{ display:block; font-size:.72rem; opacity:.85; }
.sarea-cta-call strong{ display:block; font-size:1.05rem; }
.sarea-cta-call em{ display:flex; align-items:center; gap:5px; font-style:normal; font-size:.72rem; opacity:.9; }

/* ==========================================================================
   WATER HR — a small decorative element for the service-area section
   ========================================================================== */
.water-hr {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 160px;
    margin: 30px auto;
}
.water-hr span {
    flex: 1;
    height: 1px;
    background: linear-gradient(
        90deg,
        transparent,
        #249cff
    );
}
.water-hr span:last-child {
    background: linear-gradient(
        90deg,
        #249cff,
        transparent
    );
}
.water-hr .drop {
    width: 5px;
    height: 5px;
    color: #249cff;
    font-size: 6px;
    line-height: 5px;
    transform: rotate(45deg);
    margin: 0 8px;
    filter: drop-shadow(0 0 3px #249cff);
}
/* ==========================================================================
   DRILLING RATE INFO BOX — below mode-panel cards
   ========================================================================== */
.drill-rate-info-box {
  margin-top: 14px;
  background: var(--card-2);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  padding: 12px 14px;
}

.drill-rate-info-title {
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-body);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--aqua);
  margin-bottom: 10px;
}

.drill-rate-info-rows {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.drill-rate-info-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--font-body);
  font-size: 11.5px;
  gap: 8px;
}

.drill-rate-size {
  font-family: var(--font-mono);
  font-weight: 600;
  color: var(--ink);
  font-size: 11px;
  flex-shrink: 0;
  min-width: 64px;
}

.drill-rate-range {
  color: var(--ink-dim);
  font-size: 11px;
  text-align: right;
}

.drill-rate-info-divider {
  height: 1px;
  background: var(--line);
  margin: 4px 0;
}

/* ==========================================================================
   BORE TYPE + BORE BATA ROW — inside details-panel
   ========================================================================== */
.bore-extra-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 14px;
  margin-top: 4px;
}

.bore-type-select {
  background: var(--card-2) !important;
  border: 1px solid var(--line) !important;
  border-radius: var(--radius-sm) !important;
  padding: 10px 14px !important;
  font-family: var(--font-body) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: var(--ink) !important;
  outline: none !important;
  width: 100% !important;
  box-shadow: none !important;
  -webkit-appearance: none;
  appearance: none;
  cursor: pointer;
  transition: border-color .2s var(--ease), box-shadow .2s var(--ease) !important;
}

.bore-type-select:focus {
  border-color: var(--aqua) !important;
  box-shadow: 0 0 0 3px var(--aqua-glow) !important;
}

html[data-theme="light"] .bore-type-select {
  background: var(--card-2) !important;
  color: var(--ink) !important;
}

/* Make bore bata line stand out slightly in the summary */
#boreBataLine span:first-child {
  color: var(--ochre);
  font-weight: 500;
}
#boreBataLine span:last-child {
  color: var(--ochre);
  font-weight: 600;
}

.drill-rate-rebore {
  color: var(--ochre, #e09a3a);
}

/* ==========================================================================
   AI ASSISTANT BANNER — "Ask Selvamurugan AI"
   Desktop-only promo band that sits under the hero, linking to the site's
   AI chat widget. Built from the existing Strata tokens (--card, --aqua,
   --rust, --slate-2) so it reads as part of the system, not a bolt-on.
   ========================================================================== */
.ai-assist{
  display:none; /* shown on desktop only — see media query below */
}

@media (min-width:993px){
  .ai-assist{
    display:block;
    max-width:880px; margin:0 auto 32px; padding:0 6%;
  }

  .ai-assist__card{
    position:relative;
    display:flex; align-items:center; gap:18px;
    padding:12px 28px;
    background:
      radial-gradient(120% 180% at 92% 0%, var(--aqua-glow), transparent 60%),
      linear-gradient(135deg, var(--card), var(--card-2));
    border:1px solid var(--line);
    border-radius:52px;
    box-shadow:var(--shadow);
    overflow:hidden;
    isolation:isolate;
  }
  .ai-assist__card::before{
    content:"";
    position:absolute; inset:0;
    background-image:
      linear-gradient(var(--line) 1px, transparent 1px),
      linear-gradient(90deg, var(--line) 1px, transparent 1px);
    background-size:34px 34px;
    -webkit-mask-image:radial-gradient(ellipse at 30% 50%, #000 0%, transparent 70%);
            mask-image:radial-gradient(ellipse at 30% 50%, #000 0%, transparent 70%);
    opacity:.5; z-index:-1;
  }

  /* -------- avatar -------- */
  .ai-assist__avatar-wrap{
    position:relative; flex:none;
    width:80px; height:80px;
  }
  .ai-assist__avatar-ring{
    position:absolute; inset:-6px;
    border-radius:50%;
    background:conic-gradient(from 0deg, var(--aqua), var(--rust-light), var(--ochre), var(--aqua));
    animation:aiAssistSpin 8s linear infinite;
    opacity:.85;
  }
  .ai-assist__avatar-inner{
    position:absolute; inset:4px;
    border-radius:50%;
    background:var(--well);
    display:flex; align-items:center; justify-content:center;
    overflow:hidden;
  }
  .ai-assist__avatar-inner img{
    width:100%; height:100%; object-fit:cover; object-position:center 20%;
    transform:scale(1.55);
  }
  .ai-assist__status{
    position:absolute; bottom:1px; right:1px;
    width:15px; height:15px; border-radius:50%;
    background:var(--aqua);
    border:2px solid var(--card);
    display:flex; align-items:center; justify-content:center;
  }
  .ai-assist__status i{ font-size:7px; color:var(--on-accent); }
  .ai-assist__bubble{
    position:absolute; top:-10px; left:56px;
    background:var(--slate); color:var(--ink);
    font-family:var(--font-display); font-weight:600; font-size:10px;
    padding:3px 8px; border-radius:10px 10px 10px 3px;
    box-shadow:var(--shadow);
    border:1px solid var(--line);
    animation:aiAssistBob 3.2s ease-in-out infinite;
    white-space:nowrap;
  }
  @keyframes aiAssistSpin{ to{ transform:rotate(360deg); } }
  @keyframes aiAssistBob{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-6px); } }

  /* -------- middle copy -------- */
  .ai-assist__body{ flex:1 1 auto; min-width:0; }
  .ai-assist__eyebrow{
    display:inline-flex; align-items:center; gap:5px;
    font-family:var(--font-mono); font-size:9px; letter-spacing:.14em; text-transform:uppercase;
    color:var(--aqua); background:rgba(47,211,201,.12);
    border:1px solid rgba(47,211,201,.3);
    padding:2px 8px; border-radius:20px; margin-bottom:3px;
  }
  html[data-theme="light"] .ai-assist__eyebrow{ background:rgba(11,156,143,.1); }
  .ai-assist__eyebrow i{ font-size:8px; }
  .ai-assist__title{
    font-size:clamp(15px,1.3vw,17px); color:var(--ink); margin-bottom:1px;
  }
  .ai-assist__subtitle{
    font-family:var(--font-display); font-weight:600; font-size:12px;
    color:var(--rust-light); margin-bottom:2px;
  }
  .ai-assist__desc{
    color:var(--ink-dim); font-size:11px; line-height:1.3; max-width:900px; margin-bottom:5px;
  }
  .ai-assist__pills{ display:flex; flex-wrap:wrap; gap:6px; }
  .ai-assist__pill{
    display:inline-flex; align-items:center; gap:4px;
    font-size:10px; font-weight:500; color:var(--ink);
    background:var(--slate-2); border:1px solid var(--line);
    padding:4px 9px; border-radius:20px;
    transition:transform .25s var(--ease), border-color .25s var(--ease), color .25s var(--ease);
    cursor:pointer;
  }
  .ai-assist__pill i{ color:var(--aqua); font-size:9px; }
  .ai-assist__pill:hover{ transform:translateY(-2px); border-color:var(--aqua); color:var(--aqua); }

  /* -------- CTA -------- */
  .ai-assist__cta-wrap{ flex:none; display:flex; flex-direction:column; align-items:center; gap:5px; }
  .ai-assist__cta{
    display:inline-flex; align-items:center; gap:7px;
    font-family:var(--font-display); font-weight:600; font-size:12px;
    color:#fff; white-space:nowrap;
    background:linear-gradient(135deg,var(--rust),var(--rust-light));
    padding:8px 16px; border-radius:30px;
    box-shadow:0 16px 34px -10px rgba(193,87,30,.6);
    transition:transform .25s var(--ease), box-shadow .25s var(--ease);
  }
  .ai-assist__cta:hover{ transform:translateY(-3px); box-shadow:0 20px 40px -10px rgba(193,87,30,.7); }
  .ai-assist__cta i.fa-comment-dots{ font-size:13px; }
  .ai-assist__cta i.fa-arrow-right{ font-size:10px; transition:transform .25s var(--ease); }
  .ai-assist__cta:hover i.fa-arrow-right{ transform:translateX(4px); }
  .ai-assist__cta-note{
    font-family:var(--font-mono); font-size:9px; letter-spacing:.06em;
    color:var(--ink-dim); text-transform:uppercase;
  }
}

@media (min-width:993px) and (max-width:1180px){
  .ai-assist__card{ gap:14px; padding:11px 22px; }
  .ai-assist__desc{ max-width:340px; }
}


/* ==========================================================================
   TWO-LEVEL HEADER — level 1: top info bar  |  level 2: main navbar
   (top bar is desktop/tablet only; hidden ≤860px in index2.css)
   ========================================================================== */
.topbar{
  position:relative; z-index:51;
  background:var(--slate-2);
  border-bottom:1px solid var(--line);
  font-family:var(--font-body); font-size:.8rem; color:var(--ink-dim);
}
.topbar__inner{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:9px 40px;
}
.topbar__info{ display:flex; align-items:center; list-style:none; margin:0; padding:0; }
.topbar__info li{ display:flex; align-items:center; padding:0 16px; border-left:1px solid var(--line); }
.topbar__info li:first-child{ padding-left:0; border-left:none; }
.topbar__info a,
.topbar__info li > span,
.topbar__info a span{ color:inherit; }
.topbar__info li,
.topbar__info a{ display:flex; align-items:center; gap:8px; transition:color .3s var(--ease); }
.topbar__info a:hover{ color:var(--aqua); }
.topbar__info i{ color:var(--aqua); font-size:.85rem; }
.topbar__right{ display:flex; align-items:center; gap:18px; }
.topbar__tag{ display:flex; align-items:center; gap:7px; color:var(--aqua); font-weight:500; white-space:nowrap; }
.topbar__sep{ width:1px; height:28px; background:var(--line); }
.topbar__social{ display:flex; align-items:center; gap:10px; }
.tsoc{
  width:30px; height:30px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-size:.85rem;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.tsoc:hover{ transform:translateY(-2px) scale(1.08); box-shadow:0 8px 16px -6px rgba(0,0,0,.45); }
.tsoc--fb{ background:#1877F2; }
.tsoc--ig{ background:linear-gradient(45deg,#F58529,#DD2A7B 50%,#8134AF); }
.tsoc--yt{ background:#E62117; }
.tsoc--wa{ background:#25D366; }

/* main navbar additions */
.nav-divider{ width:1px; height:34px; background:var(--line); flex-shrink:0; }

.ai-btn-nav{
  position:relative; display:flex; align-items:center; gap:8px; flex-shrink:0;
  background:linear-gradient(135deg,#5B5BE6,#8B3FE0);
  color:#fff; padding:11px 20px; border-radius:999px;
  font-family:var(--font-body); font-weight:600; font-size:.88rem; white-space:nowrap;
  box-shadow:0 10px 24px -8px rgba(124,58,237,.65);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.ai-btn-nav:hover{ transform:translateY(-2px); box-shadow:0 14px 30px -8px rgba(124,58,237,.85); }
.ai-btn-nav__plus{ font-size:.7rem; opacity:.9; margin-left:2px; }
.ai-btn-nav__new{
  position:absolute; top:-9px; left:50%; transform:translateX(-50%);
  background:var(--aqua); color:var(--on-accent);
  font-size:.58rem; font-weight:700; letter-spacing:.04em; line-height:1;
  padding:4px 9px; border-radius:999px;
}

/* Admin: outlined pill (was a boxed button sharing a card with the toggle) */
.desktop-corner-box{
  background:none; border:none; box-shadow:none; padding:0; border-radius:0;
}
.admin-btn-nav{
  background:transparent; color:var(--aqua);
  border:1px solid var(--aqua); border-radius:999px;
  padding:11px 20px; font-size:.88rem; gap:7px;
}
.admin-btn-nav:hover{ background:var(--aqua-glow); box-shadow:none; }

/* ==========================================================================
   DESKTOP HEADER FIT (≥861px) — one clean row, exactly like the design:
   [logo + brand] [icon + label links] [toggle | DrillCalc | Borewell AI | Admin]
   Nothing is allowed to wrap or shrink into a second line; instead the
   spacing/size steps down as the window gets narrower.
   ========================================================================== */
@media (min-width:861px){
  .navbar{ flex-wrap:nowrap; padding:14px 24px; gap:16px; }
  .navbar.scrolled{ padding:10px 24px; }
  .navbar > *{ flex-shrink:0; }

  /* brand: single line */
  .title{ gap:12px; }
  .brand-title{ font-size:1.12rem; white-space:nowrap; letter-spacing:.02em; }
  .title-text span{ white-space:nowrap; font-size:.66rem; }

  /* links: icon sits LEFT of the label, never above it, never wraps */
  .nav-links{ gap:22px; flex-wrap:nowrap; }
  .nav-links a.mnav-item{
    display:inline-flex; flex-direction:row; align-items:center;
    gap:0; white-space:nowrap; font-size:.92rem;
  }
  .nav-links .mnav-label{ white-space:nowrap; }
  .mnav-list .mnav-ico{ margin-right:6px; }

  /* right-hand buttons: same height, no wrapping */
  .calc-btn-nav,.ai-btn-nav,.admin-btn-nav{
    white-space:nowrap; padding:10px 16px; font-size:.86rem; line-height:1.2;
  }
  .calc-btn-nav{ gap:7px; }
  .theme-toggle{ margin:0; }
  .topbar__inner{ padding-left:24px; padding-right:24px; }
}

/* ≤1480px: slightly tighter */
@media (min-width:861px) and (max-width:1480px){
  .navbar{ gap:12px; padding-left:18px; padding-right:18px; }
  .brand-title{ font-size:1rem; }
  .nav-links{ gap:16px; }
  .nav-links a.mnav-item{ font-size:.86rem; }
  .calc-btn-nav,.ai-btn-nav,.admin-btn-nav{ padding:9px 13px; font-size:.82rem; }
  .nav-divider{ display:none; }
  .topbar__inner{ padding-left:18px; padding-right:18px; }
}

/* ≤1260px: drop the small link icons + subtitle so the row still fits */
@media (min-width:861px) and (max-width:1260px){
  .mnav-list .mnav-ico{ display:none; }
  .title-text span{ display:none; }
  .nav-links{ gap:14px; }
  .topbar__tag,.topbar__sep{ display:none; }
}

/* ≤1020px (small tablets): hide the DrillCalc label's icon + AI plus sign */
@media (min-width:861px) and (max-width:1020px){
  .calc-btn-nav i,.ai-btn-nav__plus,.admin-btn-nav i{ display:none; }
  .brand-title{ font-size:.9rem; }
  .brand-logo{ width:38px; height:38px; }
  .nav-links{ gap:10px; }
  .topbar__info li:nth-child(3){ display:none; }
}

/* ==========================================================================
   HOME REDESIGN — blueprint layout (hero · commitment · process · actions ·
   stats · sensor + service types · AI banner)
   Dark is the default; html[data-theme="light"] switches to the blueprint's
   white/blue palette. Everything is scoped under .hm.
   ========================================================================== */
.hm{
  /* palette follows the site tokens (teal accent, slate/sandstone surfaces) */
  --hm-panel:var(--card); --hm-card:var(--card-2);
  --hm-line:var(--line); --hm-ink:var(--ink); --hm-dim:var(--ink-dim);
  --hm-blue:var(--aqua); --hm-blue-2:var(--aqua); --hm-on-blue:var(--on-accent);
  --hm-yellow:#FFC61A; --hm-on-yellow:#14213F;
  --hm-navy:#0F5F5A; --hm-green:#25D366; --hm-shadow:0 14px 34px -18px rgba(0,0,0,.6);
  --hm-chip:rgba(47,211,201,.14);
  position:relative; color:var(--hm-ink); font-family:var(--font-body,'IBM Plex Sans',sans-serif);
}
html[data-theme="light"] .hm{
  --hm-panel:var(--card-2); --hm-card:var(--card);
  --hm-shadow:0 12px 30px -18px rgba(23,33,31,.28);
  --hm-chip:rgba(11,156,143,.12); --hm-yellow:#FFC400; --hm-on-yellow:#17211F;
  --hm-navy:#0B6B63;
}
.hm *{ box-sizing:border-box; }
.hm a{ text-decoration:none; }
.hm p{ margin:0; color:var(--hm-dim); }
.hm h1,.hm h2,.hm h3,.hm h4{ margin:0; font-family:var(--font-display,'Space Grotesk',sans-serif); color:var(--hm-ink); letter-spacing:-.015em; }
.hm__wrap{ max-width:1080px; margin:0 auto; display:flex; flex-direction:column; gap:30px; }

/* checkmark circle */
.hm-ck{ flex:0 0 auto; width:24px; height:24px; border-radius:50%; background:var(--hm-blue); color:var(--hm-on-blue);
  display:inline-flex; align-items:center; justify-content:center; font-size:.68rem; }

/* ---------- TOP ROW ---------- */
.hm-top{ display:grid; grid-template-columns:1.55fr 1fr; gap:26px; align-items:start; }
.hm-badge{ display:inline-flex; align-items:center; gap:8px; background:var(--hm-chip); color:var(--hm-blue-2);
  font-weight:600; font-size:.82rem; padding:7px 14px; border-radius:999px; margin-bottom:12px; }
.hm-badge i{ color:var(--hm-yellow); }
.hm-title-row{ display:flex; gap:10px; align-items:flex-start; }
.hm-bolt{ color:var(--hm-yellow); font-size:clamp(2.4rem,6vw,3.6rem); line-height:1; margin-top:8px; filter:drop-shadow(0 6px 10px rgba(255,196,0,.25)); }
.hm h1.hm-title{ font-size:clamp(2.3rem,6.2vw,4rem); line-height:1.02; font-weight:800; color:var(--hm-ink); -webkit-text-fill-color:currentColor; background:none; }
.hm h1.hm-title span{ display:block; color:var(--hm-blue); }
.hm h2.hm-sub{ font-size:clamp(1.25rem,3vw,1.9rem); font-weight:700; margin:16px 0 20px; }
.hm-cta{ display:flex; gap:16px; flex-wrap:wrap; margin-bottom:20px; }
.hm-btn{ display:inline-flex; align-items:center; gap:12px; padding:13px 22px; border-radius:8px; font-weight:700; font-size:1rem; min-width:210px; transition:transform .3s, box-shadow .3s; }
.hm-btn:hover{ transform:translateY(-3px); }
.hm-btn i{ font-size:1.7rem; }
.hm-btn small{ display:block; font-weight:600; font-size:.82rem; line-height:1.1; }
.hm-btn b{ display:block; font-size:1.12rem; line-height:1.15; }
.hm-btn--call{ background:var(--hm-yellow); color:var(--hm-on-yellow); box-shadow:0 12px 24px -12px rgba(255,196,0,.7); }
.hm-btn--wa{ background:#1FAE54; color:#fff; box-shadow:0 12px 24px -12px rgba(31,174,84,.7); }
.hm-checks{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 18px; font-weight:600; font-size:.88rem; }
.hm-checks li{ display:inline-flex; align-items:center; gap:8px; list-style:none; }
.hm-checks .hm-ck{ width:22px; height:22px; }
.hm-checks li + li::before{ content:none; }
.hm-checks ul,.hm-checks{ padding:0; margin:0; }

/* commitment card */
.hm-commit{ background:var(--hm-panel); border-left:4px solid var(--hm-yellow); border-radius:0 14px 14px 0; padding:22px 22px 24px; }
.hm-commit .hm-pill{ display:inline-block; background:var(--hm-chip); color:var(--hm-blue-2); font-weight:600; font-size:.74rem; padding:5px 12px; border-radius:999px; margin-bottom:10px; }
.hm-commit h3{ font-size:clamp(1.5rem,3vw,1.9rem); font-weight:800; line-height:1.1; margin-bottom:14px; }
.hm-commit > p{ line-height:1.55; margin-bottom:16px; font-size:.95rem; }
.hm-commit ul{ display:flex; flex-direction:column; gap:12px; padding:0; margin:0; }
.hm-commit li{ display:flex; align-items:center; gap:12px; font-weight:500; font-size:.95rem; list-style:none; color:var(--hm-ink); }

/* ---------- PROCESS ---------- */
.hm-head{ text-align:center; }
.hm-head h2{ font-size:clamp(1.5rem,3.2vw,2rem); font-weight:800; }
.hm-bar{ display:flex; justify-content:center; gap:4px; margin-top:10px; }
.hm-bar i{ width:34px; height:4px; border-radius:4px; background:var(--hm-blue); }
.hm-bar i:nth-child(2){ background:var(--hm-yellow); }
.hm-steps{ display:grid; grid-template-columns:1fr auto 1fr auto 1fr auto 1fr; gap:10px; align-items:center; margin-top:22px; }
.hm-step{ position:relative; background:var(--hm-panel); border-radius:14px; text-align:center; padding:34px 14px 20px; height:100%; }
.hm-step .hm-n{ position:absolute; top:-14px; left:-8px; width:44px; height:44px; border-radius:50%; background:var(--hm-blue); color:var(--hm-on-blue);
  font-weight:800; font-size:1.05rem; display:flex; align-items:center; justify-content:center; box-shadow:0 8px 16px -8px var(--hm-blue); }
.hm-step .hm-ico{ font-size:2.6rem; color:var(--hm-blue); height:62px; display:flex; align-items:center; justify-content:center; margin-bottom:10px; }
.hm-step h4{ font-size:1.15rem; font-weight:800; margin-bottom:6px; }
.hm-step p{ font-size:.85rem; line-height:1.4; }
.hm-arrow{ color:var(--hm-blue); font-size:1.15rem; }

/* ---------- ACTION BUTTONS ---------- */
.hm-actions{ display:grid; grid-template-columns:1fr 1fr 1.1fr; gap:16px; }
.hm-act{ display:flex; align-items:center; justify-content:center; gap:16px; padding:18px 20px; border-radius:10px; font-weight:800; font-size:1.2rem; border:2px solid transparent; transition:transform .3s, box-shadow .3s; }
.hm-act:hover{ transform:translateY(-3px); }
.hm-act .hm-act__ico{ font-size:1.9rem; display:inline-flex; }
.hm-act .fa-chevron-right{ font-size:.85rem; }
.hm-act--book{ background:var(--hm-yellow); color:var(--hm-on-yellow); }
.hm-act--cost{ background:var(--hm-navy); color:#fff; }
.hm-act--cost .hm-rs{ color:var(--hm-on-blue); }
.hm-act--cost .hm-rs{ width:48px; height:48px; border-radius:50%; background:var(--hm-blue); display:inline-flex; align-items:center; justify-content:center; font-size:1.4rem; }
.hm-act--area{ background:transparent; color:var(--hm-blue); border-color:var(--hm-blue); }
.hm-act--area .hm-act__ico{ color:var(--hm-blue); }

/* ---------- STATS ---------- */
.hm-stats{ display:grid; grid-template-columns:repeat(4,1fr); background:var(--hm-panel); border-radius:14px; padding:26px 8px; }
.hm-stat{ text-align:center; padding:0 10px; position:relative; }
.hm-stat + .hm-stat::before{ content:''; position:absolute; left:0; top:8%; bottom:8%; width:1px; background:var(--hm-line); }
.hm-stat .hm-sico{ font-size:2.1rem; color:var(--hm-blue); height:46px; display:flex; align-items:center; justify-content:center; }
.hm-stat h3{ font-size:clamp(1.7rem,4.2vw,2.5rem); font-weight:800; line-height:1.15; color:var(--hm-ink); font-family:var(--font-display,'Space Grotesk',sans-serif); text-shadow:none; white-space:nowrap; }
.hm-stat span{ display:block; font-size:clamp(.78rem,1.7vw,1.05rem); color:var(--hm-dim); }
.hm .hm-stat .hm-247{ display:inline-flex; color:var(--hm-ink); font-size:.78rem; font-weight:800; width:46px; height:46px; border:3px solid var(--hm-blue); border-radius:50%; display:inline-flex; align-items:center; justify-content:center; }

/* ---------- SENSOR + SERVICE TYPES ---------- */
.hm-mid{ display:grid; grid-template-columns:.95fr 2.05fr; gap:22px; align-items:stretch; }
.hm-sensor{ background:var(--hm-panel); border-radius:14px; padding:22px; }
.hm-sensor__top{ display:flex; align-items:center; gap:14px; margin-bottom:14px; }
.hm-sensor__top > i{ font-size:3rem; color:var(--hm-blue); }
.hm-sensor h3{ font-size:1.45rem; font-weight:800; line-height:1.15; }
.hm-ul{ display:block; width:46px; height:3px; background:var(--hm-yellow); border-radius:3px; margin-top:8px; }
.hm-sensor p{ font-size:1.02rem; line-height:1.5; }
.hm-types h3{ font-size:1.4rem; font-weight:800; }
.hm-types .hm-bar{ justify-content:flex-start; margin:8px 0 14px; }
.hm-types .hm-bar i{ width:36px; }
.hm-types .hm-bar i:last-child{ display:none; }
.hm-types__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.hm-type{ background:var(--hm-card); border:1px solid var(--hm-line); border-radius:12px; text-align:center; padding:16px 10px 16px; box-shadow:var(--hm-shadow); }
.hm-type .hm-tile{ width:68px; height:68px; margin:0 auto 10px; border-radius:14px; display:flex; align-items:center; justify-content:center; color:#fff; font-size:2rem; }
.hm-tile--g{ background:linear-gradient(145deg,#3FBF4A,#1E9B3A); }
.hm-tile--b{ background:linear-gradient(145deg,#3C9BFF,#1E6BFF); }
.hm-tile--p{ background:linear-gradient(145deg,#8B4DFF,#5B22D6); }
.hm-type h4{ font-size:1.12rem; font-weight:800; margin-bottom:4px; }
.hm-type p{ font-size:.85rem; line-height:1.35; }

/* ---------- AI BANNER ---------- */
.hm-ai{ display:grid; grid-template-columns:auto 1.6fr 1fr; gap:22px; align-items:center; background:var(--hm-panel); border-radius:14px; padding:20px 24px; }
.hm-ai__bot{ width:112px; height:112px; display:flex; align-items:center; justify-content:center; }
.hm-ai__bot img{ width:100%; height:100%; object-fit:cover; border-radius:50%; border:3px solid var(--hm-blue); }
.hm-ai__bot i{ font-size:4rem; color:var(--hm-blue); }
.hm-ai h3{ font-size:1.7rem; font-weight:800; color:var(--hm-blue); margin-bottom:6px; }
.hm-ai__text p{ color:var(--hm-ink); font-size:1.12rem; font-weight:500; line-height:1.4; margin-bottom:14px; }
.hm-chat{ display:inline-flex; align-items:center; gap:12px; background:var(--hm-blue); color:var(--hm-on-blue); font-weight:700; font-size:1.2rem; padding:13px 30px; border-radius:999px; box-shadow:0 12px 24px -12px var(--hm-blue); transition:transform .3s; }
.hm-chat:hover{ transform:translateY(-3px); }
.hm-ai__feat{ border-left:1px solid var(--hm-line); padding-left:24px; display:flex; flex-direction:column; gap:14px; list-style:none; margin:0; }
.hm-ai__feat li{ display:flex; align-items:center; gap:12px; list-style:none; }
.hm-ai__feat .hm-fi{ flex:0 0 auto; width:36px; height:36px; border-radius:50%; background:var(--hm-blue); color:var(--hm-on-blue); display:flex; align-items:center; justify-content:center; font-size:.9rem; }
.hm-ai__feat b{ display:block; font-size:.95rem; color:var(--hm-ink); font-family:var(--font-display,'Space Grotesk',sans-serif); }
.hm-ai__feat small{ color:var(--hm-dim); font-size:.82rem; }

