/* ═══════════════════════════════════════════════════════════
   First Response Academy — proof-led authority build
   Palette sampled from their own logo: brand red + Star-of-Life navy
   ═══════════════════════════════════════════════════════════ */

@font-face{
  font-family:"Big Shoulders"; font-style:normal; font-weight:900; font-display:swap;
  src:url("fonts/big-shoulders-900.woff2") format("woff2");
}
@font-face{
  font-family:"Public Sans"; font-style:normal; font-weight:400 600; font-display:swap;
  src:url("fonts/public-sans.woff2") format("woff2");
}
@font-face{
  font-family:"Plex Mono"; font-style:normal; font-weight:400; font-display:swap;
  src:url("fonts/plex-mono-400.woff2") format("woff2");
}
@font-face{
  font-family:"Plex Mono"; font-style:normal; font-weight:500; font-display:swap;
  src:url("fonts/plex-mono-500.woff2") format("woff2");
}

:root{
  --red:#A01117;
  --red-bright:#C80818;
  --navy:#00368C;
  --navy-deep:#04173D;
  --ink:#0E1621;
  --paper:#F4F2ED;
  --paper-2:#E9E5DB;
  --line:#D8D2C4;
  --on-dark:#FFFFFF;
  --on-dark-2:rgba(255,255,255,.66);
  --ink-2:#5C6472;

  --ff-hero:"Big Shoulders",Impact,sans-serif;
  --ff-body:"Public Sans",ui-sans-serif,system-ui,sans-serif;
  --ff-mono:"Plex Mono",ui-monospace,monospace;
  --ease:cubic-bezier(.16,1,.3,1);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}

body{
  background:var(--paper); color:var(--ink);
  font-family:var(--ff-body); -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{display:block;max-width:100%}
a{color:inherit}
button{font-family:inherit}

.container{max-width:1280px;margin:0 auto;padding:0 clamp(20px,4vw,52px)}

.eyebrow{
  font-family:var(--ff-mono);font-size:11px;font-weight:500;letter-spacing:.2em;
  text-transform:uppercase;color:var(--red);display:inline-flex;align-items:center;gap:10px;
}
.eyebrow::before{content:"";width:20px;height:2px;background:var(--red);flex:none}
.eyebrow--light{color:#FF6B72}
.eyebrow--light::before{background:#FF6B72}

.h-sec{
  font-family:var(--ff-hero);font-weight:900;text-transform:uppercase;
  font-size:clamp(36px,6vw,82px);line-height:.9;letter-spacing:-.01em;margin:18px 0 0;
}
.lede{margin:20px 0 0;max-width:52ch;font-size:clamp(15px,1.3vw,17px);line-height:1.7;color:var(--ink-2)}

/* ── SKIP LINK ─────────────────────────────────────────── */
.skip{position:absolute;left:-9999px;top:0;z-index:300;background:var(--navy-deep);color:#fff;
  padding:12px 18px;font-size:14px}
.skip:focus{left:8px;top:8px}

/* ── STICKY NAV ────────────────────────────────────────── */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:120;background:rgba(4,23,61,.96);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(255,255,255,.14);
  transform:translateY(-100%);transition:transform .45s var(--ease);
}
.nav.on{transform:translateY(0)}
.nav__in{max-width:1280px;margin:0 auto;padding:0 clamp(20px,4vw,52px);
  height:64px;display:flex;align-items:center;gap:clamp(12px,2vw,28px)}
.nav__logo{display:flex;align-items:center;flex:none}
.nav__logo img{height:34px;width:auto}
.nav__links{list-style:none;display:flex;gap:clamp(10px,1.6vw,22px);margin:0;padding:0;
  flex:1;justify-content:center;min-width:0}
.nav__links a{color:rgba(255,255,255,.78);text-decoration:none;font-size:13px;white-space:nowrap;
  padding:6px 2px;border-bottom:1px solid transparent;transition:color .2s,border-color .2s}
.nav__links a:hover,.nav__links a:focus-visible{color:#fff;border-bottom-color:var(--red-bright)}
.nav__cta{display:flex;align-items:center;gap:10px;flex:none}
.nav__wa,.nav__book{font-size:13px;font-weight:600;text-decoration:none;padding:9px 14px;white-space:nowrap}
.nav__wa{color:#fff;border:1px solid rgba(255,255,255,.34)}
.nav__wa:hover{background:#25D366;border-color:#25D366;color:#04231a}
.nav__book{background:var(--red-bright);color:#fff}
.nav__book:hover{background:#fff;color:var(--navy-deep)}
.nav__burger{display:none;background:none;border:0;cursor:pointer;padding:10px;flex:none}
.nav__burger span{display:block;width:22px;height:2px;background:#fff;margin:4px 0;
  transition:transform .3s var(--ease),opacity .3s}
.nav.open .nav__burger span:nth-child(1){transform:translateY(3px) rotate(45deg)}
.nav.open .nav__burger span:nth-child(2){transform:translateY(-3px) rotate(-45deg)}

/* ── WHATSAPP FAB ──────────────────────────────────────── */
.wafab{
  position:fixed;right:clamp(14px,2.4vw,26px);bottom:clamp(14px,2.4vw,26px);z-index:110;
  display:inline-flex;align-items:center;gap:10px;padding:13px 18px;border-radius:40px;
  background:#25D366;color:#04231a;text-decoration:none;font-weight:600;font-size:14px;
  box-shadow:0 8px 24px rgba(0,0,0,.24);
  opacity:0;transform:translateY(14px);pointer-events:none;
  transition:opacity .4s var(--ease),transform .4s var(--ease),background .2s;
}
.wafab.on{opacity:1;transform:translateY(0);pointer-events:auto}
.wafab:hover{background:#1FBA59}
.wafab:focus-visible{outline:2px solid #fff;outline-offset:3px}

/* ── FIND US / MAP ─────────────────────────────────────── */
.findus{background:var(--ink);color:#fff;padding:clamp(60px,8vw,110px) 0}
.findus .h-sec{color:#fff}
.findus__grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);
  gap:clamp(22px,3vw,44px);margin-top:clamp(28px,3.6vw,44px);align-items:stretch}
.findus__map{position:relative;min-height:320px;border:1px solid rgba(255,255,255,.18);overflow:hidden}
.findus__map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(1) invert(.92) contrast(.9)}
.findus__side p{margin:0 0 14px;font-size:15px;line-height:1.7;color:var(--on-dark-2)}
.findus__dir{display:inline-block;color:#fff;font-weight:600;font-size:14px;text-decoration:none;
  border-bottom:1px solid var(--red-bright);padding-bottom:4px}
.findus__note{font-size:13.5px;margin-top:20px!important}

/* ── PRELOADER ─────────────────────────────────────────── */
#pre{
  position:fixed;inset:0;z-index:200;background:var(--navy-deep);
  display:flex;align-items:flex-end;justify-content:space-between;
  padding:clamp(20px,4vw,48px);
}
#pre img{width:clamp(150px,20vw,260px);align-self:flex-start;margin-top:auto}
#pre .pc{
  font-family:var(--ff-hero);font-weight:900;font-size:clamp(52px,12vw,160px);
  line-height:.8;color:#fff;font-variant-numeric:tabular-nums;
}
#pre .pbar{position:absolute;left:0;bottom:0;height:3px;width:0%;background:var(--red-bright)}

/* ── loader scene ──────────────────────────────────────── */
/* Centred behind the logo and counter, which stay pinned to the corners. */
.pscene{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-54%);
  width:min(680px,82vw);pointer-events:none;
}
.pscene svg{width:100%;height:auto;display:block;overflow:visible}

.p-ground{stroke:rgba(255,255,255,.22);stroke-width:1.5}

/* figures: signage pictograms, not characters */
.p-fig circle,.p-fig rect{fill:#fff}
.p-fig line{stroke:#fff;stroke-width:6;stroke-linecap:round}
.p-fig{opacity:0}
.p-point{stroke:var(--red-bright)!important}

.p-ext rect{fill:var(--red-bright)}
.p-ext .p-hose{stroke:#fff;stroke-width:4;stroke-linecap:round}
.p-ext{opacity:0}

/* the discharge cone sweeps out from the nozzle */
.p-jet path{fill:rgba(255,255,255,.55)}
.p-jet{opacity:0;transform-box:fill-box;transform-origin:0% 50%}

/* flame: three nested copies of one path, each a little smaller and hotter */
.p-flame{transform-box:fill-box;transform-origin:50% 100%}
.fl{transform-box:fill-box;transform-origin:50% 100%}
.fl--a path{fill:#8E0F14}
.fl--b path{fill:var(--red-bright)}
.fl--c path{fill:#FFB020}
.fl--b{transform:scale(.68)}
.fl--c{transform:scale(.38)}
/* Flicker lives in CSS while GSAP drives the die-out on the parent group —
   animating the same property from both would fight for control. */
.fl--a{animation:pflick 1.1s ease-in-out infinite alternate}
.fl--b{animation:pflick 0.8s ease-in-out infinite alternate-reverse}
.fl--c{animation:pflick 0.6s ease-in-out infinite alternate}
@keyframes pflick{
  from{transform:scale(var(--s,1)) translateY(0)}
  to{transform:scale(calc(var(--s,1) * 1.06)) translateY(-3px)}
}
.fl--b{--s:.68}
.fl--c{--s:.38}

.p-smoke circle{fill:rgba(255,255,255,.28)}
.p-smoke{opacity:0}

/* the one teaching beat, stated plainly */
.pstep{
  display:block;margin-top:14px;text-align:center;min-height:1.2em;
  font-family:var(--ff-mono);font-size:clamp(9px,1.1vw,11px);letter-spacing:.2em;
  text-transform:uppercase;color:rgba(255,255,255,.62);opacity:0;
}

@media(max-width:640px){
  .pscene{width:88vw;transform:translate(-50%,-58%)}
}
/* A loading screen is the worst place to ignore a motion preference: it is
   unskippable and it is the first thing rendered. Show the scene as a still. */
@media(prefers-reduced-motion:reduce){
  .fl--a,.fl--b,.fl--c{animation:none}
  .p-fig,.p-ext,.pstep{opacity:1}
}

/* ── HERO ──────────────────────────────────────────────── */
.hero{position:relative;height:100svh;min-height:620px;overflow:hidden;background:var(--navy-deep)}
.hs{position:absolute;inset:0;opacity:0;pointer-events:none}
.hs.active{opacity:1}
.hs__img{position:absolute;inset:0;background-size:cover;background-position:center;
  will-change:transform;transform:scale(1.14)}

.hero__scrim{
  position:absolute;inset:0;z-index:2;pointer-events:none;
  background:
    linear-gradient(96deg, rgba(4,23,61,.93) 0%, rgba(4,23,61,.66) 46%, rgba(4,23,61,.34) 100%),
    linear-gradient(0deg, rgba(4,23,61,.75) 0%, rgba(4,23,61,0) 46%);
}
.grain{
  position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/></filter><rect width='140' height='140' filter='url(%23n)'/></svg>");
  background-size:140px 140px;
}
.vig{position:absolute;inset:0;z-index:2;pointer-events:none;box-shadow:inset 0 0 200px 46px rgba(0,0,0,.5)}

.mast{
  position:absolute;top:0;left:0;right:0;z-index:8;display:flex;align-items:center;
  justify-content:space-between;gap:16px;padding:clamp(16px,2.4vw,26px) clamp(20px,4vw,52px);
}
.mast__logo{display:flex;align-items:center;gap:12px;text-decoration:none}
.mast__logo img{height:clamp(34px,4vw,46px);width:auto}
.mast__right{display:flex;align-items:center;gap:clamp(14px,2vw,26px)}
.mast__tag{
  font-family:var(--ff-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--on-dark-2);
}
.mast__ph{
  font-family:var(--ff-mono);font-size:12.5px;color:#fff;text-decoration:none;
  border:1px solid rgba(255,255,255,.32);padding:9px 14px;transition:background .25s,border-color .25s;
}
.mast__ph:hover{background:var(--red-bright);border-color:var(--red-bright)}

.hero__content{position:relative;z-index:4;height:100%;display:flex;flex-direction:column;justify-content:center}
.hero__eyebrow-wrap{overflow:hidden;margin-bottom:20px}
.hero__title{
  font-family:var(--ff-hero);font-weight:900;text-transform:uppercase;color:#fff;margin:0;
  font-size:clamp(52px,10.5vw,132px);line-height:.86;letter-spacing:-.012em;
}
.hero__title .ln{display:block;overflow:hidden}
.chm{overflow:hidden;display:inline-block}
.ch{display:inline-block;will-change:transform}
.hero__title .accent{color:#FF5A4F}

.hero__sub-wrap{overflow:hidden;margin-top:24px}
.hero__sub{margin:0;max-width:44ch;font-size:16px;line-height:1.65;color:var(--on-dark-2);will-change:transform}

.hero__cta{
  display:inline-flex;align-items:center;gap:10px;align-self:flex-start;margin-top:34px;
  padding:15px 26px;background:var(--red-bright);color:#fff;text-decoration:none;
  font-weight:600;font-size:14px;letter-spacing:.02em;
  transition:background .22s,transform .22s var(--ease);
}
.hero__cta:hover{background:#fff;color:var(--navy-deep);transform:translateX(4px)}

.hero__ticks{
  position:absolute;left:clamp(20px,4vw,52px);bottom:clamp(20px,3vw,34px);z-index:5;
  display:flex;gap:8px;
}
.hero__ticks span{width:34px;height:2px;background:rgba(255,255,255,.28)}
.hero__ticks span.on{background:var(--red-bright)}

/* ── TRUSTED BY / LOGO WALL ────────────────────────────── */
.trust{background:var(--paper);padding:clamp(64px,9vw,120px) 0}
.trust__head{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;flex-wrap:wrap}
/* minmax(0,1fr) not 1fr: a bare 1fr resolves to minmax(auto,1fr), so each
   track inherits the logo image's intrinsic min-content width and the grid
   overflows its container, scrolling the whole page sideways. */
.trust__grid{
  margin-top:clamp(34px,4.4vw,56px);
  display:grid;grid-template-columns:repeat(6,minmax(0,1fr));
  border-top:1px solid var(--line);border-left:1px solid var(--line);
}
/* An explicit height, not aspect-ratio: .lg is a grid item, so it stretches to
   its row, and the row is sized by content — the logo's intrinsic 209px. That
   silently beat the 5/3 ratio and rendered the wall ~40% taller than designed
   (and portrait-shaped on phones). A definite height also gives the percentage
   max-height on the image a containing block to resolve against. */
.lg{
  position:relative;height:clamp(94px,11.5vw,130px);padding:0;background:#fff;
  border-right:1px solid var(--line);border-bottom:1px solid var(--line);
  filter:grayscale(1);opacity:.62;transition:filter .35s,opacity .35s,transform .35s var(--ease);
}
/* Absolute inset, not percentage sizing. Percentage width/height/max-height on
   a centered grid item resolve against an indefinite grid area and get dropped
   entirely, so tall marks (TATA, Suzuki, IndianOil) rendered at their intrinsic
   aspect and spilled past the cell borders. An absolutely positioned box gets
   its containing block from the padding box, which has a definite size here, so
   width/height can be stated against it explicitly. Note the insets alone are
   NOT enough: an absolutely positioned *replaced* element with auto width takes
   its intrinsic size and ignores them, which is why the marks still spilled. */
.lg img{position:absolute;top:18px;left:22px;
  width:calc(100% - 44px);height:calc(100% - 36px);
  object-fit:contain;object-position:center}
.lg:hover{filter:grayscale(0);opacity:1;transform:translateY(-3px)}

/* ── STAT BAND ─────────────────────────────────────────── */
.stats{background:var(--navy-deep);color:#fff;padding:clamp(60px,8vw,104px) 0}
.stats__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:1px solid rgba(255,255,255,.16);border-left:1px solid rgba(255,255,255,.16)}
.st{
  padding:clamp(22px,3vw,36px) clamp(16px,2.2vw,30px);position:relative;overflow:hidden;
  border-right:1px solid rgba(255,255,255,.16);border-bottom:1px solid rgba(255,255,255,.16);
}
.st::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;
  background:var(--red-bright);transform:scaleX(0);transform-origin:left;transition:transform 1s var(--ease)}
.st.lit::after{transform:scaleX(1)}
.st__num{display:flex;align-items:flex-end;font-family:var(--ff-hero);font-weight:900;
  font-size:clamp(38px,5.2vw,70px);line-height:.86;letter-spacing:-.02em}
.odo{display:inline-flex;align-items:flex-start;height:1em;overflow:hidden;line-height:1}
.odo__col{display:flex;flex-direction:column;flex:none;align-self:flex-start;will-change:transform}
.odo__col i{font-style:normal;height:1em;line-height:1;display:block;flex:none;font-variant-numeric:tabular-nums}
.st__suf{color:var(--red-bright);margin-left:.05em}
.st__lbl{margin-top:12px;font-family:var(--ff-mono);font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--on-dark-2);line-height:1.6}

/* ── THE MOAT ──────────────────────────────────────────── */
.moat{background:var(--paper);padding:clamp(70px,10vw,140px) 0}
.moat__grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.85fr);
  gap:clamp(28px,5vw,72px);align-items:center}
.moat__quote{
  font-family:var(--ff-hero);font-weight:900;text-transform:uppercase;
  font-size:clamp(30px,4.4vw,62px);line-height:.96;letter-spacing:-.01em;margin:20px 0 0;
}
.moat__quote em{font-style:normal;color:var(--red)}
.moat__portrait{position:relative}
.moat__portrait img{width:100%;height:auto;filter:grayscale(.25) contrast(1.04)}
.moat__portrait::after{
  content:"";position:absolute;inset:0;border:1px solid var(--line);
  transform:translate(14px,14px);z-index:-1;
}
.moat__name{margin-top:14px;font-family:var(--ff-hero);font-weight:900;text-transform:uppercase;font-size:20px}
.moat__role{font-family:var(--ff-mono);font-size:11px;letter-spacing:.1em;color:var(--ink-2);text-transform:uppercase;margin-top:4px}
.moat__facts{margin-top:clamp(26px,3.4vw,40px);display:grid;gap:0;border-top:1px solid var(--line)}
.moat__facts div{display:flex;justify-content:space-between;gap:20px;padding:13px 2px;
  border-bottom:1px solid var(--line);font-size:14px}
.moat__facts b{font-weight:500;color:var(--ink-2);font-family:var(--ff-mono);font-size:11px;
  letter-spacing:.1em;text-transform:uppercase}

/* ── FIELD RECORD ──────────────────────────────────────── */
.field{background:var(--paper-2);padding:clamp(70px,10vw,130px) 0 0}
.field__grid{
  margin-top:clamp(34px,4.6vw,58px);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;
}
.fc{margin:0;position:relative;overflow:hidden;background:var(--navy-deep)}
.fc img{
  width:100%;height:clamp(300px,34vw,460px);object-fit:cover;display:block;
  transition:transform .9s var(--ease),opacity .5s;
}
.fc:hover img{transform:scale(1.05)}
.fc figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:18px 18px 16px;
  display:flex;flex-direction:column;gap:3px;color:#fff;
  background:linear-gradient(0deg,rgba(4,23,61,.92) 0%,rgba(4,23,61,0) 100%);
}
.fc figcaption b{font-family:var(--ff-hero);font-weight:900;text-transform:uppercase;
  font-size:18px;line-height:1;letter-spacing:.005em}
.fc figcaption span{font-family:var(--ff-mono);font-size:10px;letter-spacing:.13em;
  text-transform:uppercase;color:rgba(255,255,255,.72)}

/* ── CREDENTIALS ───────────────────────────────────────── */
.creds{background:var(--ink);color:#fff;overflow:hidden;padding:clamp(70px,10vw,130px) 0 0}
.creds .h-sec{color:#fff}
.creds__lede{color:var(--on-dark-2)}
.creds__vp{margin-top:clamp(34px,4.6vw,60px);padding-bottom:clamp(60px,8vw,110px)}
.creds__track{display:flex;gap:clamp(14px,1.8vw,26px);padding:0 clamp(20px,4vw,52px);will-change:transform}
.cred{flex:none;width:clamp(200px,20vw,290px)}
.cred__m{background:#fff;overflow:hidden;aspect-ratio:3/4}
.cred__m img{width:100%;height:100%;object-fit:cover;object-position:top center}
.cred__n{margin-top:10px;font-family:var(--ff-mono);font-size:10px;letter-spacing:.14em;color:var(--on-dark-2)}

/* ── DEPARTMENTS ───────────────────────────────────────── */
.dept{background:var(--paper);padding:clamp(70px,10vw,140px) 0}
.dept__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,60px);
  align-items:start;margin-top:clamp(32px,4.4vw,56px)}
.dept__list{border-top:1px solid var(--line)}
.dbtn{
  display:flex;align-items:center;gap:16px;width:100%;text-align:left;background:none;border:0;
  border-bottom:1px solid var(--line);padding:15px 4px;cursor:pointer;position:relative;
  font-family:var(--ff-body);font-size:clamp(14px,1.45vw,16px);color:var(--ink);
  transition:padding-left .4s var(--ease),color .3s;
}
.dbtn::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--red);
  transform:scaleY(0);transform-origin:top;transition:transform .4s var(--ease)}
.dbtn i{font-style:normal;font-family:var(--ff-mono);font-size:11px;color:var(--ink-2);width:24px;flex:none}
.dbtn:hover{padding-left:14px}
.dbtn.on{padding-left:14px;color:var(--red)}
.dbtn.on::before{transform:scaleY(1)}
.dbtn.on i{color:var(--red)}

.dept__panel{background:var(--navy-deep);color:#fff;padding:clamp(26px,3.4vw,44px);
  min-height:410px;position:sticky;top:28px;display:flex;flex-direction:column}
.dp__tag{font-family:var(--ff-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#FF6B72}
.dp__t{font-family:var(--ff-hero);font-weight:900;text-transform:uppercase;
  font-size:clamp(24px,3vw,40px);line-height:.96;margin:14px 0 0}
.dp__d{margin:16px 0 0;font-size:14.5px;line-height:1.7;color:var(--on-dark-2)}
.dp__spec{margin-top:auto;padding-top:24px;border-top:1px solid rgba(255,255,255,.18);display:grid;gap:10px}
.dp__spec div{display:flex;justify-content:space-between;gap:16px;font-family:var(--ff-mono);font-size:11px}
.dp__spec b{font-weight:400;color:var(--on-dark-2)}
.dp__spec span{text-align:right}

/* ── TEAM ──────────────────────────────────────────────── */
.team{background:var(--paper-2);padding:clamp(70px,10vw,130px) 0}
.team__grid{margin-top:clamp(32px,4.4vw,54px);display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-top:1px solid var(--line)}
.tm{padding:22px 4px;border-bottom:1px solid var(--line)}
.tm:nth-child(odd){padding-right:clamp(16px,3vw,44px)}
.tm:nth-child(even){padding-left:clamp(16px,3vw,44px);border-left:1px solid var(--line)}
.tm__n{font-family:var(--ff-hero);font-weight:900;text-transform:uppercase;font-size:21px;line-height:1}
.tm__r{font-family:var(--ff-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--red);margin-top:7px}
.tm__d{margin-top:9px;font-size:13.5px;line-height:1.65;color:var(--ink-2)}

/* ── CONTACT ───────────────────────────────────────────── */
.cta{background:var(--red);color:#fff;padding:clamp(70px,10vw,140px) 0}
.cta__t{font-family:var(--ff-hero);font-weight:900;text-transform:uppercase;
  font-size:clamp(40px,7.4vw,110px);line-height:.88;margin:18px 0 0;max-width:14ch}
.cta__split{
  display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:clamp(28px,4vw,64px);align-items:start;
  margin-top:clamp(36px,5vw,64px);padding-top:34px;border-top:1px solid rgba(255,255,255,.3);
}
.cta__details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,2.6vw,32px)}
.cta__details h4{margin:0 0 9px;font-family:var(--ff-mono);font-size:10px;letter-spacing:.18em;
  text-transform:uppercase;color:rgba(255,255,255,.72);font-weight:400}
.cta__details a,.cta__details p{color:#fff;text-decoration:none;font-size:14.5px;line-height:1.6;
  margin:0 0 5px;display:block;word-break:break-word}
.cta__details a:hover{text-decoration:underline}

/* ── ENQUIRY FORM ──────────────────────────────────────── */
.enq{background:var(--paper);color:var(--ink);padding:clamp(24px,3vw,38px)}
.enq__t{font-family:var(--ff-hero);font-weight:900;text-transform:uppercase;
  font-size:clamp(22px,2.6vw,32px);line-height:1;margin:0}
.enq__note{margin:10px 0 22px;font-size:14px;line-height:1.6;color:var(--ink-2)}
.enq__row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.fld{display:flex;flex-direction:column;margin-bottom:14px;min-width:0}
.fld label{font-family:var(--ff-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-2);margin-bottom:6px}
.fld label span{color:var(--red)}
.fld input,.fld select,.fld textarea{
  font-family:var(--ff-body);font-size:15px;color:var(--ink);background:#fff;
  border:1px solid var(--line);border-radius:0;padding:11px 12px;width:100%;
  transition:border-color .2s,box-shadow .2s;
}
.fld textarea{resize:vertical;min-height:76px}
.fld input:focus,.fld select:focus,.fld textarea:focus{
  outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(0,54,140,.15);
}
.fld.bad input,.fld.bad select,.fld.bad textarea{border-color:var(--red)}
.fld.bad input:focus,.fld.bad select:focus{box-shadow:0 0 0 3px rgba(160,17,23,.16)}
.err{min-height:0;font-size:12px;color:var(--red);margin-top:5px;display:none}
.fld.bad .err{display:block}

/* honeypot lives in extras.css as .hp-trap — `.hp` collided with the hero planes */

.enq__send{
  margin-top:6px;width:100%;padding:15px 22px;border:0;cursor:pointer;
  background:var(--navy-deep);color:#fff;font-weight:600;font-size:15px;letter-spacing:.02em;
  transition:background .22s,opacity .22s;
}
.enq__send:hover{background:var(--red)}
.enq__send:focus-visible{outline:2px solid var(--navy);outline-offset:3px}
.enq__send[disabled]{opacity:.6;cursor:default}
.enq__status{margin:12px 0 0;font-size:13.5px;line-height:1.6;min-height:1.2em}
.enq__status.ok{color:#0B6B3A}
.enq__status.no{color:var(--red)}

/* ── FOOTER ────────────────────────────────────────────── */
.foot{background:var(--navy-deep);color:var(--on-dark-2);padding:clamp(34px,5vw,58px) 0}
.foot__row{display:flex;justify-content:space-between;gap:22px;flex-wrap:wrap;
  font-family:var(--ff-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase}
.foot__row b{color:#fff;font-weight:500}
.foot__row--links{margin-top:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,.14)}
.foot__row--links a{color:var(--on-dark-2);text-decoration:none}
.foot__row--links a:hover{color:#fff;text-decoration:underline}

.cta__wide{grid-column:1/-1}
.cta__wide a{display:block;margin-bottom:7px}

/* ── RESPONSIVE ────────────────────────────────────────── */
@media(max-width:1000px){
  .field__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .trust__grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .stats__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dept__grid{grid-template-columns:1fr}
  .dept__panel{position:relative;top:0;min-height:340px}
  .moat__grid{grid-template-columns:1fr}
  .cta__split{grid-template-columns:1fr}
}
@media(max-width:640px){
  .field__grid{grid-template-columns:1fr}
  .trust__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stats__grid{grid-template-columns:1fr}
  .team__grid{grid-template-columns:1fr}
  .tm:nth-child(even){padding-left:4px;border-left:0}
  .tm:nth-child(odd){padding-right:4px}
  .mast__tag{display:none}
  .enq__row{grid-template-columns:1fr;gap:0}
  .cta__details{grid-template-columns:1fr}
  .wafab span{display:none}
  .wafab{padding:15px;border-radius:50%}
}

@media(max-width:1050px){
  .nav__links{
    position:fixed;left:0;right:0;top:64px;flex-direction:column;justify-content:flex-start;
    gap:0;background:var(--navy-deep);border-bottom:1px solid rgba(255,255,255,.14);
    padding:8px 0 14px;transform:translateY(-8px);opacity:0;pointer-events:none;
    transition:opacity .3s,transform .3s var(--ease);
  }
  .nav.open .nav__links{opacity:1;transform:translateY(0);pointer-events:auto}
  .nav__links a{display:block;padding:13px clamp(20px,4vw,52px);font-size:15px}
  .nav__burger{display:block}
  .nav__cta .nav__wa{display:none}
  .nav__links{flex:none}
  .nav__in{justify-content:space-between}
}

.findus__grid{}
@media(max-width:900px){
  .findus__grid{grid-template-columns:1fr}
  .findus__map{min-height:260px}
}
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;transition-duration:.01ms!important}
}

/* ── VERIFY PAGE ───────────────────────────────────────── */
.vpage{background:var(--paper)}
.vtop{background:var(--navy-deep);padding:16px 0}
.vtop__in{display:flex;align-items:center;justify-content:space-between;gap:16px}
.vtop__logo img{height:40px;width:auto}
.vtop__back{color:#fff;text-decoration:none;font-size:13.5px}
.vtop__back:hover{text-decoration:underline}
.vmain{padding:clamp(48px,7vw,96px) 0 clamp(60px,9vw,110px);min-height:70vh}

.vform{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;
  margin-top:clamp(26px,3.4vw,40px);max-width:620px}
.vform .fld{flex:1 1 320px;margin-bottom:0}
.vform__go{padding:12px 26px;border:0;cursor:pointer;background:var(--navy-deep);color:#fff;
  font-family:var(--ff-body);font-weight:600;font-size:15px;height:44px;
  transition:background .22s}
.vform__go:hover{background:var(--red)}
.vform__go:focus-visible{outline:2px solid var(--navy);outline-offset:3px}
.vform__go[disabled]{opacity:.6;cursor:default}

.vresult{display:none;margin-top:clamp(26px,3.4vw,40px);max-width:720px;
  border:1px solid var(--line);background:#fff;padding:clamp(20px,2.6vw,30px)}
.vresult.on{display:block}
.vresult__head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  flex-wrap:wrap;padding-bottom:14px;border-bottom:1px solid var(--line)}
.vresult__tag{font-family:var(--ff-hero);font-weight:900;text-transform:uppercase;font-size:22px;line-height:1}
.vresult.ok .vresult__tag{color:#0B6B3A}
.vresult.warn .vresult__tag{color:#9A6206}
.vresult.no .vresult__tag{color:var(--red)}
.vresult__num{font-family:var(--ff-mono);font-size:12.5px;color:var(--ink-2);letter-spacing:.06em}
.vresult__rows{display:grid;gap:0;margin-top:6px}
.vresult__rows div{display:flex;justify-content:space-between;gap:18px;padding:11px 0;
  border-bottom:1px solid var(--line);font-size:14.5px}
.vresult__rows b{font-weight:500;color:var(--ink-2);font-family:var(--ff-mono);font-size:10.5px;
  letter-spacing:.12em;text-transform:uppercase}
.vresult__msg{margin:14px 0 0;font-size:14px;line-height:1.65;color:var(--ink-2)}
.vnote{margin-top:clamp(28px,3.6vw,44px);font-size:13.5px;color:var(--ink-2);max-width:60ch;line-height:1.7}
.vnote a{color:var(--red)}

/* ── LANGUAGE TOGGLE ───────────────────────────────────── */
.nav__lang{
  background:none;border:1px solid rgba(255,255,255,.34);color:#fff;cursor:pointer;
  font-family:var(--ff-body);font-size:13px;font-weight:600;padding:9px 13px;white-space:nowrap;
  transition:background .2s,border-color .2s,color .2s;
}
.nav__lang:hover{background:#fff;color:var(--navy-deep);border-color:#fff}
.nav__lang:focus-visible{outline:2px solid var(--red-bright);outline-offset:2px}
/* Gujarati sets a taller x-height than the condensed display face allows */
.lang-gu .h-sec{line-height:1.06;font-size:clamp(30px,4.6vw,60px)}
.lang-gu .cta__t{line-height:1.06;font-size:clamp(32px,5.4vw,74px)}
.lang-gu .moat__quote{line-height:1.18;font-size:clamp(24px,3.4vw,46px)}

