/* MILIMANI  extracted from prototype. Design system, unmodified. */
/* =====================================================================
  MILIMANI 
   One stylesheet, used by every page, so the whole site reads as one
   product. Page-specific rules live in a small <style> block inside
   each page and only ever ADD new components  never override tokens.
   ===================================================================== */

/* ============ RESET & TOKENS ============ */
*{margin:0;padding:0;box-sizing:border-box;}
:root{
  /* PRIMARY (#283183, brand blue  used everywhere the old code calls --navy) */
  --navy:#2625ec;
  --navy-deep:#131376;
  /* TERTIARY (#000000, black  used for body text and dark UI surfaces) */
  --ink:#000000;
  --ink-soft:#4d4d4d;
  /* SECONDARY (#ff0000, brand red  used for accents, focus rings and CTAs) */
  --terracotta:#ff0000;
  --terracotta-deep:#cc0000;
  /* Status / secondary semantic colors (kept distinct from primary) */
  --green:#2625ec;
  --green-deep:#131376;
  --gold:#E8A23A;
  --parchment:#FAFAF7;
  --parchment-deep:#EEEFEB;
  --line:rgba(0,0,0,0.1);
  --line-deep:rgba(0,0,0,0.2);
  --radius:20px;
  --radius-sm:12px;
  --shadow-card:0 1px 2px rgba(0,0,0,0.04), 0 16px 32px -20px rgba(0,0,0,0.18);
  --shadow-hover:0 8px 12px rgba(0,0,0,0.06), 0 32px 56px -24px rgba(0,0,0,0.28);

  /* TYPOGRAPHY TOKENS — Standardized Paragraph Hierarchy */
  --font-p: 16px;           /* Level 1: Standard body, lead paragraphs, story text */
  --font-p-card: 15px;      /* Level 2: Component & card descriptions, accordion, features */
  --font-p-sm: 13.5px;      /* Level 3: Small helper text, footnotes, metadata */
  --line-height-p: 1.7;     /* Standard body reading line-height */
  --line-height-card: 1.65; /* Card & component line-height */
  --line-height-sm: 1.55;   /* Small text line-height */
}
html{
  scroll-behavior:smooth;
}
body{
  font-family:'Inter',system-ui,sans-serif;
  background:var(--parchment);
  color:var(--ink);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
p{
  font-size:var(--font-p);
  line-height:var(--line-height-p);
  color:var(--ink-soft);
}
img{max-width:100%;display:block;}
a{text-decoration:none;color:inherit;}
ul{list-style:none;}
button{font-family:inherit;border:none;background:none;cursor:pointer;}
h1,h2,h3,h4{font-family:'Manrope',system-ui,sans-serif;overflow-wrap:break-word;}
.container{max-width:1320px;margin:0 auto;padding:0 32px;}
:focus-visible{outline:2.5px solid var(--terracotta);outline-offset:2px;}

/* ============ TOP BAR ============ */
.topbar{background:var(--navy-deep);color:rgba(255,255,255,0.6);font-size:13.75px;}
.topbar .container{display:flex;justify-content:space-between;align-items:center;padding:8px 32px;}
.topbar-left{display:flex;align-items:center;gap:18px;}
.topbar-left span{display:flex;align-items:center;gap:6px;}
.topbar a{color:rgba(255,255,255,0.6);transition:color .15s;}
.topbar a:hover{color:var(--terracotta);}
.topbar-right{display:flex;align-items:center;gap:20px;}
.topbar-links{display:flex;align-items:center;gap:16px;}
.top-nav-link{color:rgba(255,255,255,0.75);font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:6px;transition:color .15s;}
.top-nav-link:hover{color:#fff;}
.top-nav-link i{font-size:13px;color:rgba(255,255,255,0.6);}

/* ============ NAVBAR ============ */
.navbar{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:500;}
.navbar .container{display:flex;align-items:center;padding:0 32px;}
.brand{display:flex;align-items:center;gap:12px;padding:11px 0;margin-right:auto;}
.brand-mark{
  width:auto;height:48px;
  display:flex;align-items:center;justify-content:center;
  position:relative;
}
.brand-mark img{height:50px;width:auto;max-width:140px;object-fit:contain;display:block;}
.brand-text{line-height:1.15;}
.brand-text .t1{font-size:15.95px;font-weight:700;color:var(--navy);}
.brand-text .t2{font-size:10px;color:var(--ink-soft);letter-spacing:.3px;}


.brand-text {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.nav-links{display:flex;align-items:center;}
.nav-link{padding:19px 9px;font-size:13.75px;font-weight:600;color:var(--ink-soft);border-bottom:2.5px solid transparent;transition:all .2s;white-space:nowrap;}
.nav-link:hover,.nav-link.active{color:var(--navy);border-bottom-color:var(--terracotta);}
.nav-cta{background:var(--terracotta);color:#fff;padding:10px 22px;border-radius:10px;font-size:14.3px;font-weight:700;margin-left:16px;white-space:nowrap;transition:background .2s;}
.nav-cta:hover{background:var(--terracotta-deep);}
.nav-toggle{display:none;font-size:24.2px;color:var(--navy);padding:8px;}

/* Hide brand text when logo image is present */
.brand-mark img:not([src=""]) + .brand-text {
  display: none !important;
}

/* If logo fails to load, show the name */
.brand-mark img[src=""] + .brand-text,
.brand-mark img:not([src]) + .brand-text {
  display: block !important;
}


/* ============ MOBILE MENU ============ */
.mobile-menu{position:fixed;inset:0;background:#fff;z-index:1000;display:none;flex-direction:column;padding:20px 24px;overflow-y:auto;}
.mobile-menu.open{display:flex;}
.mm-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;}
.mm-close{font-size:26.4px;color:var(--navy);}
.mm-link{padding:17px 0;font-size:17.6px;font-weight:600;color:var(--navy);border-bottom:1px solid var(--line);}
.mm-cta{background:var(--terracotta) !important;color:#fff !important;border-radius:10px !important;padding:14px 20px !important;margin-top:14px !important;display:inline-flex !important;align-items:center !important;justify-content:center !important;gap:8px !important;border-bottom:none !important;font-weight:700 !important;text-align:center !important;transition:background .2s;}
.mm-cta:hover{background:var(--terracotta-deep) !important;color:#fff !important;}


/* ============ HERO (home page carousel) ============ */
/* Hero height is 70% of the prototype's (580 -> 406). The 540/480 breakpoints below
   are scaled by the same 0.7. */
.hero{position:relative;min-height:560px;height:auto;overflow:hidden;background:var(--navy-deep);}
.hslide{position:absolute;inset:0;opacity:0;transition:opacity .9s ease;pointer-events:none;}
.hslide.active{opacity:1;pointer-events:auto;}
.hslide-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}

/* ============ HERO  CINEMATIC SLIDES ============
   The slides are stills, but they should read like a background video: a slow,
   continuous push/pull across each one (a Ken Burns move). The animation runs 9s
   against a 6s slide interval, so it is still moving when the crossfade takes
   over and never visibly parks. Odd and even slides move opposite ways so the
   sequence doesn't pulse.

   The minimum scale is 1.08, which hides 4% of the frame on each edge  more
   than the 2% the pan ever travels, so no edge is exposed. */
.hslide-img{will-change:transform;backface-visibility:hidden;}
.hslide.active .hslide-img{animation:hero-push 9s ease-out forwards;}
.hslide:nth-child(even).active .hslide-img{animation-name:hero-pull;}

@keyframes hero-push{
  from{transform:scale(1.08) translate3d(0,0,0);}
  to{transform:scale(1.18) translate3d(-2%,-1%,0);}
}
@keyframes hero-pull{
  from{transform:scale(1.18) translate3d(2%,1%,0);}
  to{transform:scale(1.08) translate3d(0,0,0);}
}

/* The site-wide reduced-motion rules only zero the duration, which with
   `forwards` would freeze the frame mid-move. Drop the effect entirely instead. */
body.no-motion .hslide .hslide-img{animation:none !important;transform:none !important;}
@media (prefers-reduced-motion:reduce){
  .hslide .hslide-img{animation:none !important;transform:none !important;}
}
.hslide-overlay{position:absolute;inset:0;background:linear-gradient(95deg, rgba(0,0,0,0.92) 0%, rgba(0,0,0,0.75) 36%, rgba(0,0,0,0.25) 68%, rgba(0,0,0,0.05) 100%);}
.hslide-content{position:relative;z-index:3;height:100%;display:flex;align-items:center;max-width:1320px;margin:0 auto;padding:60px 32px 100px;}
.hslide-inner{max-width:600px;}
.htag{display:inline-flex;align-items:center;gap:7px;background:rgba(255,0,0,0.18);color:#FFB088;font-size:11.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;padding:7px 15px;border-radius:30px;margin-bottom:20px;border:1px solid rgba(255,0,0,0.35);backdrop-filter:blur(4px);}
.htitle{font-size:44px;font-weight:800;color:#fff;line-height:1.14;margin-bottom:18px;letter-spacing:-.8px;text-shadow:0 2px 12px rgba(0,0,0,0.3);}
.hdesc{font-size:var(--font-p);color:rgba(255,255,255,0.8);line-height:var(--line-height-p);margin-bottom:32px;max-width:520px;}
.hbtns{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px;}
.hbtn-primary{background:var(--terracotta);color:#fff;padding:13px 28px;border-radius:11px;font-size:15.4px;font-weight:700;transition:background .2s;display:inline-flex;align-items:center;gap:9px;}
.hbtn-primary:hover{background:var(--terracotta-deep);}
.hbtn-secondary{background:rgba(255,255,255,0.1);color:#fff;padding:13px 28px;border-radius:11px;font-size:15.4px;font-weight:600;border:1px solid rgba(255,255,255,0.3);transition:background .2s;display:inline-flex;align-items:center;gap:9px;}
.hbtn-secondary:hover{background:rgba(255,255,255,0.18);}
.hctrls{position:absolute;bottom:24px;left:0;right:0;z-index:5;}
.hctrls-inner{max-width:1320px;margin:0 auto;padding:0 32px;display:flex;justify-content:space-between;align-items:center;}
.hdots{display:flex;gap:9px;}
.hdot{width:34px;height:4px;border-radius:3px;background:rgba(255,255,255,0.28);transition:all .35s;cursor:pointer;}
.hdot.active{background:var(--terracotta);width:50px;}
.hdot:hover:not(.active){background:rgba(255,255,255,0.5);}
.harrows{display:flex;gap:10px;}
.harrow{width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,0.1);border:1px solid rgba(255,255,255,0.25);color:#fff;display:flex;align-items:center;justify-content:center;font-size:17.6px;transition:background .2s;backdrop-filter:blur(6px);}
.harrow:hover{background:rgba(255,255,255,0.22);}

/* ============ PAGE BANNER (inner pages  the "hero" for non-home pages) ============ */


.page-banner{position:relative;background:linear-gradient(120deg, var(--navy-deep) 0%, var(--navy) 60%, #134066 140%);padding:45.9px 0 42.5px;overflow:hidden;}
.page-banner::before{content:'';position:absolute;right:-120px;top:-140px;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle, rgba(255,0,0,0.16) 0%, transparent 70%);}
.page-banner::after{content:'';position:absolute;left:-80px;bottom:-160px;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle, rgba(14,122,77,0.18) 0%, transparent 70%);}
.pb-inner{position:relative;z-index:2;}
.breadcrumb{display:flex;align-items:center;gap:9px;font-size:13.75px;color:rgba(255,255,255,0.55);margin-bottom:18px;font-weight:500;}
.breadcrumb a{color:rgba(255,255,255,0.78);transition:color .15s;}
.breadcrumb a:hover{color:var(--terracotta);}
.breadcrumb i{font-size:9px;color:rgba(255,255,255,0.35);}
.pb-title{font-size:39.6px;font-weight:800;color:#fff;letter-spacing:-.7px;line-height:1.16;margin-bottom:14px;max-width:760px;}
.pb-desc{font-size:var(--font-p);color:rgba(255,255,255,0.72);max-width:620px;line-height:var(--line-height-p);}

/* IMAGE BEHIND GRADIENT */
.page-banner .pb-image {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.page-banner .pb-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;      /* prevents distortion */
  object-position: center;
  opacity: 0.22;          /* subtle behind-gradient visibility */
}

.pb-inner {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;   /* centers breadcrumb + title vertically */
  height: 100%;              /* ensures alignment inside banner */
}

/* ============ GLOBAL SHALLOW WAVE DIVIDERS ============ */
.m-wave-divider {
  width: 100%;
  line-height: 0;
  font-size: 0;
  overflow: hidden;
  position: relative;
  margin-top: -1px;
  margin-bottom: -1px;
  z-index: 2;
  pointer-events: none;
}
.m-wave-divider svg {
  display: block;
  width: 100%;
  height: 12px;
}
@media (min-width: 768px) {
  .m-wave-divider svg { height: 16px; }
}
@media (min-width: 1200px) {
  .m-wave-divider svg { height: 20px; }
}

/* Backgrounds strictly matching section above each divider */
.wave-white-to-parchment { background: #ffffff !important; }
.wave-parchment-to-white { background: var(--parchment-deep) !important; }
.wave-parchment-to-navy { background: var(--parchment-deep) !important; }
.wave-focus-to-asal { background: var(--parchment-deep) !important; }
.wave-asal-to-livelihoods { background: var(--navy-deep) !important; }
.wave-navy-to-white { background: var(--navy-deep) !important; }
.wave-navy-to-parchment { background: var(--navy-deep) !important; }
.wave-why-to-sustain { background: #ffffff !important; }
.wave-sustain-to-trusted { background: var(--navy-deep) !important; }
.wave-knowledge-to-footer { background: var(--parchment-deep) !important; }
.wave-parchment-light-to-white { background: var(--parchment) !important; }
.wave-white-to-parchment-light { background: #ffffff !important; }
.wave-parchment-to-parchment-deep { background: var(--parchment) !important; }

/* Page Banner Bottom Wave */
.page-banner {
  position: relative;
  padding-bottom: 50px !important;
}
.banner-bottom-wave {
  position: absolute;
  bottom: -1px;
  left: 0;
  right: 0;
  width: 100%;
  height: 14px;
  z-index: 4;
  pointer-events: none;
  line-height: 0;
  font-size: 0;
}
@media (min-width: 768px) {
  .banner-bottom-wave { height: 18px; }
}
@media (min-width: 1200px) {
  .banner-bottom-wave { height: 22px; }
}
.banner-bottom-wave svg {
  display: block;
  width: 100%;
  height: 100%;
}

/* Service Hero Bottom Wave */
.service-hero {
  position: relative;
}
.service-hero-wave {
  position: absolute;
  bottom: -1px;
  left: 0;
  right: 0;
  width: 100%;
  height: 14px;
  z-index: 4;
  pointer-events: none;
  line-height: 0;
  font-size: 0;
}
@media (min-width: 768px) {
  .service-hero-wave { height: 18px; }
}
@media (min-width: 1200px) {
  .service-hero-wave { height: 22px; }
}
.service-hero-wave svg {
  display: block;
  width: 100%;
  height: 100%;
}

/* Footer Top Wave */
.footer-top-wave {
  width: 100%;
  line-height: 0;
  font-size: 0;
  overflow: hidden;
  position: relative;
  margin-top: -1px;
  margin-bottom: -1px;
  z-index: 2;
  pointer-events: none;
}
.footer-top-wave svg {
  display: block;
  width: 100%;
  height: 14px;
}
@media (min-width: 768px) {
  .footer-top-wave svg { height: 18px; }
}
@media (min-width: 1200px) {
  .footer-top-wave svg { height: 22px; }
}

/* ======= WhatsApp Floating Widget======= */
/* Floating WhatsApp Icon */

.wa-float {
  position: fixed;
  bottom: 22px;
  right: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  width: 58px;
  height: 58px;
  background: linear-gradient(135deg, #1bbf66 0%, #0f9a4f 100%);
  color: #fff;
  border-radius: 999px;
  padding: 0 12px;
  text-decoration: none;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.02em;
  box-shadow: 0 10px 30px rgba(15, 154, 79, 0.3);
  overflow: hidden;
  transition: width .25s ease, box-shadow .25s ease, transform .2s ease;
  z-index: 99999;
}

.wa-float:hover,
.wa-float:focus-visible {
  width: 228px;
  box-shadow: 0 14px 36px rgba(15, 154, 79, 0.38);
}

.wa-float i {
  font-size: 28px;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.wa-float span {
  white-space: nowrap;
  max-width: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-width .25s ease, opacity .2s ease, margin-left .25s ease;
}

.wa-float:hover span,
.wa-float:focus-visible span {
  max-width: 180px;
  opacity: 1;
  margin-left: 8px;
}

.mobile-cta-bar {
  display: none !important;
}

.mobile-cta-action {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-height: 62px;
  border-radius: 12px;
  text-decoration: none;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #fff;
}

.mobile-cta-action.call { background: rgba(255,255,255,0.08); }
.mobile-cta-action.whatsapp { background: rgba(27, 191, 102, 0.18); }
.mobile-cta-action.quote { background: rgba(232, 162, 58, 0.16); }

.mobile-cta-action i {
  font-size: 18px;
}

.callback-section {
  padding-top: 0;
}

.callback-panel {
  background: linear-gradient(135deg, rgba(9,22,61,0.98) 0%, rgba(19,19,118,0.95) 100%);
  border-radius: 28px;
  padding: 36px 38px;
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 28px;
  align-items: center;
  box-shadow: 0 24px 70px rgba(10, 15, 35, 0.22);
}

.callback-copy .about-title {
  color: #fff;
  margin-bottom: 12px;
}

.callback-copy .about-body {
  margin: 0;
  color: rgba(255,255,255,0.76);
}

.callback-form {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.callback-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.callback-form label {
  display: flex;
  flex-direction: column;
  gap: 8px;
  color: rgba(255,255,255,0.85);
  font-size: 13px;
  font-weight: 600;
}

.callback-form input {
  width: 100%;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.12);
  color: #fff;
  border-radius: 12px;
  padding: 13px 14px;
  font: inherit;
}

.callback-form input::placeholder {
  color: rgba(255,255,255,0.48);
}

.callback-form .hbtn-primary {
  align-self: flex-start;
  border: none;
  cursor: pointer;
}

/* Chatbox (hidden by default) */
.wa-chatbox {
  position: fixed;
  bottom: 90px;
  right: 22px;
  width: 260px;
  opacity: 0;
  transform: translateY(20px);
  pointer-events: none;
  transition: all .35s ease;
  z-index: 99999;
}

/* When active, show it */
.wa-chatbox.active {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

/* Chatbox content */
.wa-box {
  background: #fff;
  border-radius: 12px;
  padding: 18px 20px;
  box-shadow: 0 8px 25px rgba(0,0,0,0.15);
  border: 1px solid #e5e5e5;
}

.wa-msg {
  background: #f5f7fa;
  padding: 10px 14px;
  border-radius: 8px;
  margin-bottom: 10px;
  font-size: 14px;
  color: #333;
}

.wa-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #131376;
  color: #fff;
  padding: 12px 16px;
  border-radius: 8px;
  font-weight: 600;
  text-decoration: none;
  font-size: 15px;
  gap: 8px;
}


/* ============ STATS STRIP ============ */
.statstrip{background:#fff;border-bottom:1px solid var(--line);box-shadow:0 2px 8px rgba(0,0,0,0.03);}
.statstrip .container{display:flex;padding:0 32px;}
.stat{flex:1;text-align:center;padding:32px 14px;border-right:1px solid var(--line);position:relative;transition:background .2s;}
.stat:last-child{border-right:none;}
.stat:hover{background:var(--parchment);}
.stat-num{font-family:'Manrope',sans-serif;font-size:29px;font-weight:800;color:var(--navy);line-height:1;transition:transform .2s;}
.stat:hover .stat-num{transform:scale(1.05);}
.stat-label{font-size:12px;color:var(--ink-soft);margin-top:8px;font-weight:500;letter-spacing:.2px;}

/* ============ SECTION SCAFFOLDING ============ */
.section{padding:74.8px 0;}
/* Homepage: tighter vertical rhythm  sections use 25px top/bottom padding */
#page-home .section{padding:28px 0;}
.section-parchment-deep{background:var(--parchment-deep);}
.section-navy{background:var(--navy-deep);}
.shead{max-width:640px;margin:0 auto 52px;text-align:center;}
.shead-row{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:44px;gap:24px;}
.shead-left{max-width:600px;}
.shead-left .shead{text-align:left;margin:0;max-width:none;}
.seyebrow{display:inline-flex;align-items:center;gap:9px;font-size:11.5px;font-weight:700;color:var(--terracotta-deep);letter-spacing:.9px;text-transform:uppercase;margin-bottom:16px;}
.seyebrow::before{content:'';width:24px;height:2.5px;background:var(--terracotta);display:inline-block;border-radius:2px;}
.section-navy .seyebrow{color:#FFB088;}
.stitle{font-size:34px;font-weight:800;color:var(--navy);margin-bottom:16px;letter-spacing:-.6px;line-height:1.18;}
.section-navy .stitle{color:#fff;}
.sdesc{font-size:var(--font-p);color:var(--ink-soft);line-height:var(--line-height-p);}
.section-navy .sdesc{color:rgba(255,255,255,0.65);}

/* ============ CAROUSEL SHELL (shared by projects + tenders) ============ */
.carousel-shell{position:relative;}
.carousel-track{
  display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;
  padding:4px 4px 28px;margin:0 -4px;
  scrollbar-width:none;
}
.carousel-track::-webkit-scrollbar{display:none;}
.carousel-nav{display:flex;gap:10px;justify-content:flex-end;margin-top:-12px;}
.cnav-btn{width:48px;height:48px;border-radius:50%;border:1.5px solid var(--line-deep);background:#fff;display:flex;align-items:center;justify-content:center;font-size:17.6px;color:var(--navy);transition:all .25s cubic-bezier(.2,.8,.3,1);box-shadow:0 2px 8px rgba(0,0,0,0.06);}
.cnav-btn:hover{background:var(--navy);color:#fff;border-color:var(--navy);transform:scale(1.05);box-shadow:0 4px 12px rgba(0,0,0,0.12);}
.cnav-btn:disabled{opacity:.35;pointer-events:none;}
.section-navy .cnav-btn{background:rgba(255,255,255,0.06);border-color:rgba(255,255,255,0.18);color:#fff;}
.section-navy .cnav-btn:hover{background:var(--terracotta);border-color:var(--terracotta);}

/* ============ PROJECT CARDS ============ */
.proj-card{
  flex:0 0 380px;scroll-snap-align:start;
  background:#fff;border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow-card);transition:transform .35s cubic-bezier(.2,.8,.3,1), box-shadow .35s;
}
.proj-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-hover);}
.proj-card.static{flex:0 0 auto;}
.proj-media{position:relative;height:215px;overflow:hidden;}
.proj-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease;}
.proj-card:hover .proj-media img{transform:scale(1.08);}
.proj-media-overlay{position:absolute;inset:0;background:linear-gradient(180deg, rgba(1,166,78,0) 40%, rgba(1,166,78,0.85) 100%);}
.proj-bar{position:absolute;top:0;left:0;right:0;height:5px;z-index:2;}
.bar-kdeap{background:linear-gradient(90deg,#ff0000,#283183,#E8A23A);}
.bar-hoagdp{background:linear-gradient(90deg,#1F305E,#283183,#E8A23A);}
.bar-highway{background:linear-gradient(90deg,#000000,#ff0000,#E8A23A);}
.bar-giga{background:linear-gradient(90deg,#283183,#fff,#ff0000);}
.proj-badge{position:absolute;top:18px;left:18px;z-index:2;display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,0.96);color:var(--navy);font-size:11px;font-weight:700;padding:6px 13px;border-radius:30px;}
.proj-badge i{font-size:10px;}
.proj-badge.live i{color:var(--green);}
.proj-badge.active i{color:var(--terracotta-deep);}
.proj-badge.rolling i{color:var(--gold);}
.proj-badge.operational i{color:var(--navy);}
.proj-tag{position:absolute;bottom:14px;left:20px;z-index:2;font-size:11px;color:rgba(255,255,255,0.8);font-weight:600;letter-spacing:.4px;text-transform:uppercase;}
.proj-body{padding:28px 26px 30px;}
.proj-title{font-size:21px;font-weight:800;color:var(--navy);margin-bottom:12px;letter-spacing:-.2px;line-height:1.25;}
.proj-desc{font-size:var(--font-p-card);color:var(--ink-soft);line-height:var(--line-height-card);margin-bottom:18px;min-height:88px;}
.feat-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.7px;font-weight:700;color:var(--ink-soft);margin-bottom:12px;display:flex;align-items:center;gap:7px;}
.feat-list{margin-bottom:18px;}
.feat-list li{display:flex;align-items:center;gap:10px;font-size:13.75px;color:var(--ink);padding:6px 0;border-bottom:1px dashed var(--line);}
.feat-list li:last-child{border-bottom:none;}
.feat-list li i{font-size:13.2px;width:16px;flex-shrink:0;}
.card-kdeap .feat-list i{color:var(--terracotta-deep);}
.card-hoagdp .feat-list i{color:var(--green);}
.card-highway .feat-list i{color:var(--gold);}
.card-giga .feat-list i{color:var(--green);}
.proj-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:16px;}
.proj-footer-text{font-size:11px;color:var(--ink-soft);display:flex;align-items:center;gap:7px;font-weight:500;}
.proj-cta{display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:700;color:var(--navy);padding:9px 18px;border:1.5px solid var(--navy);border-radius:10px;transition:all .2s;flex-shrink:0;}
.proj-cta:hover{background:var(--navy);color:#fff;transform:translateX(3px);}
.proj-grid-static{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;}

.project-filter-bar{display:flex;align-items:end;gap:16px;flex-wrap:wrap;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:24px 0 28px;}
.project-filter-field{display:grid;gap:6px;min-width:190px;font-size:12px;font-weight:700;color:var(--ink-soft);}
.project-filter-field select{min-height:44px;padding:0 34px 0 12px;border:1px solid var(--line-deep);border-radius:8px;background:#fff;color:var(--ink);font:inherit;font-size:14px;}
.project-filter-field select:focus-visible{outline:2px solid var(--terracotta);outline-offset:2px;}
.project-filter-reset{min-height:44px;padding:0 14px;border:1px solid var(--line-deep);border-radius:8px;color:var(--navy);font-weight:700;}
.project-filter-reset:hover{border-color:var(--navy);background:#fff;}
.project-result-totals{display:flex;gap:16px;flex-wrap:wrap;margin-left:auto;}
.project-result-count{margin-left:auto;color:var(--ink-soft);font-size:13px;font-weight:700;}
.project-result-totals .project-result-count{margin-left:0;}
.project-map-section{margin-bottom:38px;}
.project-map-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:14px;}
.project-map-heading h3{font-size:22px;color:var(--navy);margin-top:4px;}
.project-map-legend{display:flex;align-items:center;gap:8px;color:var(--ink-soft);font-size:12px;}
.legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-left:8px;}
.legend-dot.completed{background:#167c5a;}
.legend-dot.operational{background:#2625ec;}
.legend-dot.reference{background:#b5790f;}
.project-map{width:100%;height:400px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#e8efed;z-index:0;}
.project-map-fallback{padding:18px;background:var(--parchment-deep);color:var(--ink-soft);font-size:13px;line-height:1.6;}
.project-map-fallback[hidden]{display:none;}
.project-map-note{margin-top:8px;color:var(--ink-soft);font-size:11.5px;}
.project-library-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;}
.project-library-card{min-width:0;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:var(--shadow-card);display:flex;flex-direction:column;}
.project-library-card[hidden]{display:none !important;}
.project-library-photo{height:205px;position:relative;display:block;overflow:hidden;background:var(--parchment-deep);}
.project-library-photo img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease;}
.project-library-photo:hover img{transform:scale(1.035);}
.project-status-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:#fff;font-size:11px;font-weight:800;color:var(--ink);}
.project-library-photo .project-status-pill{position:absolute;left:14px;top:14px;}
.project-status-pill.is-completed{color:#126047;}
.project-status-pill.is-operational{color:#2525a7;}
.project-library-card-body{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:18px;flex:1;}
.project-card-kicker{font-size:10px;color:var(--terracotta-deep);font-weight:800;text-transform:uppercase;letter-spacing:.05em;}
.project-library-card h3{font-size:18px;line-height:1.35;color:var(--navy);}
.project-library-card h3 a:hover,.project-case-link:hover{color:var(--terracotta-deep);}
.project-library-card p{font-size:var(--font-p-card);line-height:var(--line-height-card);color:var(--ink-soft);}
.project-card-location{display:flex;align-items:flex-start;gap:7px;color:var(--ink-soft);font-size:12px;line-height:1.5;}
.project-card-location i{color:var(--terracotta-deep);margin-top:2px;}
.project-case-link{display:inline-flex;align-items:center;gap:8px;margin-top:auto;padding-top:8px;color:var(--navy);font-size:13px;font-weight:800;}
.project-empty-state{margin-top:18px;padding:20px;border:1px dashed var(--line-deep);color:var(--ink-soft);text-align:center;}
.client-directory-section{margin-top:46px;padding-top:28px;border-top:1px solid var(--line);}
.client-directory-section .project-map-heading{margin-bottom:18px;}
.client-directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 22px;}
.client-directory-item{min-width:0;padding:18px 0;border-top:1px solid var(--line);}
.client-directory-item[hidden]{display:none !important;}
.client-directory-type{display:block;margin-bottom:6px;color:var(--terracotta-deep);font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;}
.client-directory-item h4{font-size:15px;line-height:1.4;color:var(--navy);margin-bottom:5px;}
.client-directory-item p{font-size:var(--font-p-sm);line-height:var(--line-height-sm);color:var(--ink-soft);margin-bottom:8px;}
.client-directory-map-state{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:700;color:var(--ink-soft);}
.client-directory-map-state.is-mapped{color:#126047;}
.client-directory-map-state.is-unmapped{color:#82611b;}
.project-pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-top:1px solid var(--line);}
.project-pagination[hidden]{display:none;}
.project-pagination-button{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 12px;border:1px solid var(--line-deep);border-radius:8px;color:var(--navy);font-size:12px;font-weight:800;}
.project-pagination-button:hover:not(:disabled){border-color:var(--navy);background:#fff;}
.project-pagination-button:disabled{opacity:.4;cursor:not-allowed;}
.project-pagination-status{color:var(--ink-soft);font-size:12px;font-weight:700;}

.project-case-hero{padding:46px 0 40px;background:linear-gradient(120deg,#102e4b 0%,#175a72 58%,#257861 100%);color:#fff;}
.project-case-hero .breadcrumb{margin-bottom:24px;}
.project-type-label{display:inline-block;margin-bottom:10px;color:#b8e4cf;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;}
.project-case-hero h1{max-width:900px;margin-bottom:12px;color:#fff;font-size:38px;line-height:1.15;}
.project-case-hero> .container > p{max-width:780px;color:rgba(255,255,255,.82);font-size:16px;line-height:1.7;}
.project-case-meta{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:20px;color:rgba(255,255,255,.9);font-size:13px;}
.project-case-meta>span:first-child{display:inline-flex;align-items:center;gap:7px;}
.project-case-meta .project-status-pill{background:rgba(255,255,255,.95);}
.project-case-overview{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);gap:34px;align-items:start;}
.project-case-photo{position:relative;aspect-ratio:16/10;overflow:hidden;border-radius:12px;background:var(--parchment-deep);}
.project-case-photo img{width:100%;height:100%;object-fit:cover;}
.project-case-photo figcaption{position:absolute;left:0;right:0;bottom:0;padding:14px 16px;background:linear-gradient(transparent,rgba(0,0,0,.75));color:#fff;font-size:12px;}
.project-case-facts h2,.project-case-section-heading h2{font-size:24px;color:var(--navy);margin:6px 0 16px;}
.project-case-facts dl{margin:0;}
.project-case-facts dl>div{display:grid;grid-template-columns:130px 1fr;gap:14px;padding:12px 0;border-top:1px solid var(--line);font-size:13px;}
.project-case-facts dt{color:var(--ink-soft);font-weight:700;}
.project-case-facts dd{color:var(--ink);margin:0;}
.project-case-section-heading{margin-bottom:18px;}
.project-case-story-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
.project-case-story-grid article{padding:22px 20px;border-top:2px solid var(--navy);background:#fff;}
.project-case-story-grid article>span{font-size:10px;color:var(--terracotta-deep);font-weight:800;text-transform:uppercase;letter-spacing:.06em;}
.project-case-story-grid h3{font-size:17px;color:var(--navy);margin:8px 0;}
.project-case-story-grid p{font-size:var(--font-p-card);color:var(--ink-soft);line-height:var(--line-height-card);}
.project-technology-row{display:flex;align-items:start;gap:24px;margin-top:22px;padding:20px 0;border-top:1px solid var(--line);}
.project-technology-row h3{min-width:190px;color:var(--navy);font-size:15px;}
.project-technology-row ul{display:flex;gap:8px;flex-wrap:wrap;}
.project-technology-row li{padding:6px 10px;background:#fff;border:1px solid var(--line);border-radius:6px;color:var(--ink-soft);font-size:12px;}
.project-record-note{display:flex;gap:10px;margin-top:16px;padding:14px 16px;background:rgba(232,162,58,.12);color:#584114;font-size:var(--font-p-sm);line-height:var(--line-height-sm);}
.project-record-note i{margin-top:3px;}
.project-case-cta-inner{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:28px;background:linear-gradient(135deg,#f2f4ff,#e8f5ee);border:1px solid rgba(19,19,118,.1);border-radius:12px;}
.project-case-cta-inner h2{margin-top:6px;color:var(--navy);font-size:24px;}
@media(max-width:1000px){.project-library-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.project-case-overview{grid-template-columns:1fr 1fr;}}
@media(max-width:1000px){.client-directory-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:720px){.project-filter-bar{align-items:stretch;}.project-filter-field{flex:1 1 100%;}.project-result-totals{margin-left:0;}.project-result-count{margin-left:0;align-self:center;}.project-map-heading{align-items:flex-start;flex-direction:column;}.project-map{height:320px;}.project-library-grid,.project-case-story-grid{grid-template-columns:1fr;}.client-directory-grid{grid-template-columns:1fr;}.project-case-overview{grid-template-columns:1fr;}.project-case-hero h1{font-size:30px;}.project-technology-row{flex-direction:column;gap:12px;}.project-case-cta-inner{align-items:flex-start;flex-direction:column;}}

/* ============ ABOUT / SPLIT MEDIA SECTION ============ */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;}
.about-grid.rev{grid-template-columns:1fr 1fr;}
.about-grid.rev .about-media{order:2;}
.about-media{position:relative;border-radius:var(--radius);overflow:hidden;height:460px;box-shadow:var(--shadow-card);}
.about-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease;}
.about-media:hover img{transform:scale(1.03);}
.about-media-badge{
  position:absolute;bottom:24px;left:24px;right:24px;
  background:rgba(255,255,255,0.97);backdrop-filter:blur(8px);
  border-radius:var(--radius-sm);padding:18px 22px;
  display:flex;align-items:center;gap:16px;
}
.amb-icon{width:48px;height:48px;border-radius:12px;background:rgba(14,122,77,0.1);color:var(--green);display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;}
.amb-text .t1{font-size:15.4px;font-weight:700;color:var(--navy);}
.amb-text .t2{font-size:var(--font-p-sm);color:var(--ink-soft);margin-top:2px;}
.about-eyebrow{margin-bottom:18px;}
.about-title{font-size:36px;font-weight:800;color:var(--navy);line-height:1.18;margin-bottom:20px;letter-spacing:-.5px;}
.about-body{font-size:var(--font-p);color:var(--ink-soft);line-height:var(--line-height-p);margin-bottom:28px;}
.about-story{max-width:960px;margin:0 auto;}
.about-story .about-eyebrow,.about-story .about-title{text-align:center;}
.about-story .about-body{max-width:820px;font-size:var(--font-p);line-height:var(--line-height-p);margin:0 auto 16px;text-align:justify;text-align-last:left;text-justify:inter-word;hyphens:auto;}
.about-story .about-body:last-child{margin-bottom:0;}
@media(max-width:640px){.about-story .about-body{text-align:left;text-justify:auto;hyphens:none;}}
.about-points{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:32px;}
.about-point{display:flex;gap:14px;align-items:flex-start;padding:12px;border-radius:var(--radius-sm);transition:background .2s;}
.about-point:hover{background:var(--parchment-deep);}
.ap-icon{width:40px;height:40px;border-radius:10px;background:rgba(255,0,0,0.1);color:var(--terracotta-deep);display:flex;align-items:center;justify-content:center;font-size:17.6px;flex-shrink:0;transition:transform .2s;}
.about-point:hover .ap-icon{transform:scale(1.1);}
.ap-text .t1{font-size:14.85px;font-weight:700;color:var(--navy);margin-bottom:3px;}
.ap-text .t2{font-size:var(--font-p-card);color:var(--ink-soft);line-height:var(--line-height-card);}
.about-btns{display:flex;gap:12px;}
.btn-navy{background:var(--navy);color:#fff;padding:13px 26px;border-radius:11px;font-size:15.4px;font-weight:700;display:inline-flex;align-items:center;gap:9px;transition:background .2s;}
.btn-navy:hover{background:var(--ink);}
.btn-outline{background:transparent;color:var(--navy);padding:13px 26px;border-radius:11px;font-size:15.4px;font-weight:700;border:1.5px solid var(--line-deep);display:inline-flex;align-items:center;gap:9px;transition:all .2s;}
.btn-outline:hover{border-color:var(--navy);}
.btn-outline.on-navy{color:#fff;border-color:rgba(255,255,255,0.3);}
.btn-outline.on-navy:hover{border-color:#fff;}

/* ============ TRUST / AUTHORITY SECTION ============ */
.trust-section{background:linear-gradient(180deg, rgba(245,247,250,0.9) 0%, rgba(255,255,255,1) 100%);}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:18px;}
.trust-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px 22px;box-shadow:var(--shadow-card);transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;}
.trust-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-hover);border-color:rgba(19,19,118,0.24);}
.trust-icon{width:54px;height:54px;border-radius:16px;background:rgba(19,19,118,0.08);display:flex;align-items:center;justify-content:center;color:var(--navy);font-size:22px;margin-bottom:18px;}
.trust-card h3{font-size:19px;font-weight:800;color:var(--navy);margin-bottom:10px;line-height:1.35;}
.trust-card p{font-size:var(--font-p-card);color:var(--ink-soft);line-height:var(--line-height-card);}
.trust-strip{margin-top:28px;display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.trust-pill{display:flex;align-items:center;justify-content:center;gap:8px;background:var(--navy-deep);color:#fff;border-radius:999px;padding:14px 18px;font-size:13.5px;letter-spacing:.02em;text-align:center;box-shadow:0 10px 25px rgba(19,19,118,0.12);}
.trust-pill strong{font-size:15px;font-weight:800;}

.testimonial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.testimonial-card{background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:var(--radius);padding:26px 24px;box-shadow:var(--shadow-card);}
.testimonial-card p{color:rgba(255,255,255,0.82);font-size:var(--font-p-card);line-height:var(--line-height-card);margin:0 0 20px;}
.testimonial-stars{display:flex;gap:6px;margin-bottom:18px;color:var(--gold);font-size:14px;}
.testimonial-author{display:flex;flex-direction:column;gap:4px;color:#fff;}
.testimonial-author strong{font-size:15px;}
.testimonial-author span{font-size:12.5px;color:rgba(255,255,255,0.7);}

/* ============ TENDER CARDS (dark) ============ */
.tender-card{
  flex:0 0 360px;scroll-snap-align:start;
  background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.1);border-radius:var(--radius);
  padding:26px 24px 24px;transition:transform .3s, border-color .3s, background .3s;
}
.tender-card.static{flex:0 0 auto;}
.tender-card:hover{transform:translateY(-6px);border-color:rgba(255,0,0,0.4);background:rgba(255,255,255,0.07);}
.tender-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px;gap:10px;}
.tender-status{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:700;padding:5px 12px;border-radius:20px;text-transform:uppercase;letter-spacing:.4px;flex-shrink:0;}
.ts-open{background:rgba(14,122,77,0.18);color:#1F305E;}
.ts-closing{background:rgba(232,162,58,0.18);color:#F4C26B;}
.ts-closed{background:rgba(255,255,255,0.08);color:rgba(255,255,255,0.5);}
.tender-ref{font-size:11px;color:rgba(255,255,255,0.4);font-weight:600;font-family:'Manrope',sans-serif;}
.tender-title{font-size:17.05px;font-weight:700;color:#fff;line-height:1.5;margin-bottom:16px;min-height:72px;}
.tender-card.static .tender-title{min-height:0;}
.tender-meta{display:flex;flex-direction:column;gap:9px;margin-bottom:20px;padding-top:16px;border-top:1px solid rgba(255,255,255,0.1);}
.tm-row{display:flex;align-items:center;gap:10px;font-size:13.2px;color:rgba(255,255,255,0.6);}
.tm-row i{width:14px;color:rgba(255,255,255,0.4);font-size:11px;}
.tm-row strong{color:rgba(255,255,255,0.85);font-weight:600;}
.tender-link{display:flex;align-items:center;justify-content:space-between;font-size:13.75px;font-weight:700;color:var(--terracotta);padding-top:4px;}
.tender-link i{font-size:11px;transition:transform .2s;}
.tender-card:hover .tender-link i{transform:translateX(4px);}
.tenders-foot{display:flex;justify-content:center;margin-top:36px;}
.tender-grid-static{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;}

/* ============ PILLARS ============ */
.pillars-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.pillar{background:#fff;border-radius:var(--radius);padding:32px 28px;box-shadow:var(--shadow-card);transition:transform .3s cubic-bezier(.2,.8,.3,1), box-shadow .3s;cursor:default;display:flex;flex-direction:column;}
.pillar:hover{transform:translateY(-6px);box-shadow:var(--shadow-hover);}
.pillar-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;}
.pillar-icon{width:44px;height:44px;border-radius:10px;background:rgba(38,37,236,0.08);color:var(--navy);display:flex;align-items:center;justify-content:center;font-size:19px;}
.pnum{font-family:'Manrope',sans-serif;font-size:32px;font-weight:800;line-height:1;margin-bottom:20px;transition:transform .2s;}
.pillar-top .pnum{margin-bottom:0;}
.pillar:hover .pnum{transform:scale(1.08);}
.pillar:nth-child(4n+1) .pnum{color:rgba(1,166,78,0.18);}
.pillar:nth-child(4n+2) .pnum{color:rgba(14,122,77,0.22);}
.pillar:nth-child(4n+3) .pnum{color:rgba(232,162,58,0.32);}
.pillar:nth-child(4n+4) .pnum{color:rgba(255,0,0,0.24);}
.pillar-title{font-size:17.5px;font-weight:700;color:var(--navy);margin-bottom:10px;line-height:1.3;}
.pillar-desc{font-size:var(--font-p-card);color:var(--ink-soft);line-height:var(--line-height-card);flex-grow:1;}
.service-detail-link{display:inline-flex;align-items:center;gap:8px;margin-top:auto;padding-top:16px;color:var(--navy);font-size:13px;font-weight:700;}
.service-detail-link:hover{color:var(--terracotta-deep);}

.service-hero{position:relative;overflow:hidden;background:#102e4b;color:#fff;padding:72px 0 52px;isolation:isolate;}
.service-hero-media{position:absolute;inset:0;z-index:-1;}
.service-hero-media img{width:100%;height:100%;object-fit:cover;object-position:center 55%;}
.service-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(5,22,39,.9) 0%,rgba(7,35,53,.78) 48%,rgba(7,35,53,.3) 100%);pointer-events:none;}
.service-hero-inner{position:relative;z-index:1;}
.service-hero .breadcrumb{margin-bottom:32px;}
.service-hero-kicker{display:inline-block;color:#b8e4cf;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-bottom:14px;}
.service-hero h1{max-width:850px;font-size:42px;line-height:1.15;color:#fff;margin-bottom:18px;}
.service-hero p{max-width:820px;color:rgba(255,255,255,.84);font-size:var(--font-p);line-height:var(--line-height-p);margin-bottom:26px;}
.service-hero-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;}
.service-hero-proof{display:flex;gap:26px;flex-wrap:wrap;margin-top:36px;padding-top:20px;border-top:1px solid rgba(255,255,255,.22);color:rgba(255,255,255,.78);font-size:13px;}
.service-hero-proof strong{color:#fff;}
.service-copy-narrow{max-width:900px;}
.service-copy-narrow h2{font-size:30px;color:var(--navy);line-height:1.25;margin:8px 0 20px;}
.service-copy-narrow p{font-size:var(--font-p);color:var(--ink-soft);line-height:var(--line-height-p);margin-bottom:18px;}
.service-note-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.service-note-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px;box-shadow:var(--shadow-card);}
.service-note-card h3{font-size:17px;color:var(--navy);line-height:1.4;margin-bottom:9px;}
.service-note-card p{font-size:var(--font-p-card);color:var(--ink-soft);line-height:var(--line-height-card);}
.service-benefit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;}
.service-benefit-card{padding:24px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-card);}
.service-index{font-size:12px;font-weight:800;color:var(--terracotta-deep);letter-spacing:.08em;}
.service-benefit-card h3,.service-process-step h3,.service-faq-item h3{font-size:18px;color:var(--navy);line-height:1.35;margin:8px 0;}
.service-benefit-card p,.service-process-step p,.service-faq-item p{font-size:var(--font-p-card);line-height:var(--line-height-card);color:var(--ink-soft);}
.service-process-list{max-width:900px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.service-process-step{display:grid;grid-template-columns:44px 1fr;gap:16px;padding:22px;background:#fff;border:1px solid var(--line);border-radius:12px;}
.service-process-step>span{width:40px;height:40px;display:grid;place-items:center;background:var(--navy);color:#fff;border-radius:10px;font-weight:800;}
.service-process-step h3{margin:0 0 8px;}
.service-equipment .service-copy-narrow h2{color:#fff;}
.service-equipment .service-copy-narrow p{color:rgba(255,255,255,.8);}
.service-equipment .seyebrow,.section-navy .service-copy-narrow .seyebrow{color:#ffb088;}
.service-case-study{max-width:900px;margin:auto;padding:28px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-card);}
.service-case-study p{font-size:var(--font-p-card);line-height:var(--line-height-card);color:var(--ink-soft);margin-bottom:14px;}
.service-case-study a{display:inline-flex;gap:8px;align-items:center;color:var(--navy);font-weight:700;margin-top:6px;}
.service-testimonial blockquote{color:rgba(255,255,255,.9);font-size:20px;line-height:1.7;margin:22px 0;}
.service-testimonial figcaption{display:flex;flex-direction:column;gap:4px;color:#fff;}
.service-testimonial figcaption span{color:rgba(255,255,255,.65);font-size:13px;}
.service-faq-list{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.service-faq-item{padding:22px;background:#fff;border:1px solid var(--line);border-radius:10px;}
.service-faq-item h3{margin:0 0 8px;}
.service-cta-panel{display:flex;align-items:center;justify-content:space-between;gap:32px;padding:36px;background:linear-gradient(135deg,#f2f4ff,#e8f5ee);border:1px solid rgba(19,19,118,.1);border-radius:14px;}
.service-cta-panel h2{font-size:28px;color:var(--navy);margin:8px 0;}
.service-cta-panel p{max-width:700px;font-size:var(--font-p);color:var(--ink-soft);line-height:var(--line-height-p);}
.service-cta-panel .service-hero-actions{flex-shrink:0;}
@media(max-width:900px){.service-hero h1{font-size:36px;}.service-cta-panel{align-items:flex-start;flex-direction:column;}.service-cta-panel .service-hero-actions{flex-wrap:wrap;}}
@media(max-width:680px){.service-hero{padding:48px 0 38px;}.service-hero h1{font-size:30px;}.service-hero p{font-size:15px;}.service-hero-proof{gap:14px;flex-direction:column;}.service-copy-narrow h2{font-size:25px;}.service-benefit-grid,.service-process-list,.service-faq-list,.service-note-grid{grid-template-columns:1fr;}.service-cta-panel{padding:24px;}.service-cta-panel h2{font-size:23px;}.service-hero-actions .hbtn-primary,.service-hero-actions .hbtn-secondary,.service-cta-panel .btn-outline{width:100%;justify-content:center;}}

/* ============ PROGRAMMES / COLOUR CARDS ============ */
.prog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.prog-card{border-radius:var(--radius);padding:34px 28px;position:relative;overflow:hidden;transition:transform .3s cubic-bezier(.2,.8,.3,1), box-shadow .3s;}
.prog-card:hover{transform:translateY(-6px);box-shadow:0 20px 40px -15px rgba(0,0,0,0.3);}
.prog-card.navy{background:linear-gradient(150deg,var(--navy) 0%, var(--navy-deep) 100%);}
.prog-card.green{background:linear-gradient(150deg,var(--green) 0%, var(--green-deep) 100%);}
.prog-card.terra{background:linear-gradient(150deg,var(--terracotta) 0%, var(--terracotta-deep) 100%);}
.prog-card.gold{background:linear-gradient(150deg,var(--gold) 0%, #B5781E 100%);}
.prog-label{font-size:11px;color:rgba(255,255,255,0.65);letter-spacing:.7px;text-transform:uppercase;margin-bottom:12px;font-weight:600;}
.prog-title{font-size:20px;font-weight:800;color:#fff;margin-bottom:12px;line-height:1.2;}
.prog-desc{font-size:var(--font-p-card);color:rgba(255,255,255,0.82);line-height:var(--line-height-card);margin-bottom:26px;}
.prog-btn{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,0.18);color:#fff;padding:10px 20px;border-radius:10px;font-size:14px;font-weight:600;border:1px solid rgba(255,255,255,0.25);transition:all .2s;backdrop-filter:blur(4px);}
.prog-btn:hover{background:rgba(255,255,255,0.32);transform:translateX(4px);}
.prog-deco{position:absolute;right:-14px;bottom:-20px;font-size:110px;opacity:.12;color:#fff;}

/* ============ NEWS ============ */
.news-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 28px;
}

.news-card-link {
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  height: 100%;
}

.news-card {
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: var(--shadow-card);
  transition: transform .3s cubic-bezier(.2,.8,.3,1), box-shadow .3s, border-color .3s;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  height: 100%;
  border: 1px solid var(--line);
  position: relative;
}

.news-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-hover);
}

.news-media {
  position: relative;
  height: 200px;
  overflow: hidden;
  background: var(--parchment-deep);
}

.news-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .5s ease;
}

.news-card:hover .news-media img {
  transform: scale(1.06);
}

.news-cat-pill {
  position: absolute;
  top: 14px;
  left: 14px;
  background: rgba(255, 255, 255, 0.96);
  color: var(--navy);
  font-size: 10.5px;
  font-weight: 700;
  padding: 5px 12px;
  border-radius: 20px;
  text-transform: uppercase;
  letter-spacing: .4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.12);
  z-index: 2;
}

.news-body {
  padding: 22px 24px 24px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.news-title {
  font-size: 17px;
  font-weight: 700;
  color: var(--navy);
  line-height: 1.42;
  margin-bottom: 12px;
  transition: color .2s;
}

.news-card:hover .news-title {
  color: var(--terracotta-deep);
}

.news-date {
  font-size: 12px;
  color: var(--ink-soft);
  display: flex;
  align-items: center;
  gap: 6px;
  font-weight: 500;
  margin-top: auto;
}

/* Natural Text-Only Cards (When no image is provided) */
.news-card.news-card--text-only {
  border-top: 4px solid var(--navy);
  border-radius: 14px;
  background: #ffffff;
}

.news-card.news-card--text-only:hover {
  border-top-color: var(--terracotta);
}

.news-card.news-card--text-only .news-body {
  padding: 28px 26px 24px;
}

.news-cat-badge {
  display: inline-flex;
  align-self: flex-start;
  background: rgba(19, 19, 118, 0.08);
  color: var(--navy);
  font-size: 11px;
  font-weight: 700;
  padding: 5px 12px;
  border-radius: 20px;
  text-transform: uppercase;
  letter-spacing: .4px;
  margin-bottom: 14px;
  border: 1px solid rgba(19, 19, 118, 0.12);
}

.news-card.news-card--text-only .news-title {
  font-size: 18.5px;
  font-weight: 800;
  line-height: 1.38;
  margin-bottom: 12px;
  color: var(--navy);
}

.news-excerpt {
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--ink-soft);
  margin: 0 0 18px;
  flex-grow: 1;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.news-card.news-card--text-only .news-date {
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid rgba(0, 0, 0, 0.06);
}

.view-all{display:inline-flex;align-items:center;gap:8px;font-size:14.5px;font-weight:700;color:var(--navy);padding:12px 24px;border:1.5px solid var(--line-deep);border-radius:11px;transition:all .25s cubic-bezier(.2,.8,.3,1);white-space:nowrap;}
.view-all:hover{background:var(--navy);color:#fff;border-color:var(--navy);transform:translateX(4px);}
.section-navy .view-all{color:#fff;border-color:rgba(255,255,255,0.2);}
.section-navy .view-all:hover{background:var(--terracotta);border-color:var(--terracotta);}


/* ============ FILTER BAR (tenders / news / careers / downloads / faqs) ============ */
.filter-bar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:40px;}
.filter-pill{font-size:13.75px;font-weight:600;color:var(--ink-soft);background:#fff;border:1.5px solid var(--line-deep);padding:9px 18px;border-radius:30px;transition:all .2s;cursor:pointer;}
.filter-pill:hover{border-color:var(--navy);color:var(--navy);}
.filter-pill.active{background:var(--navy);color:#fff;border-color:var(--navy);}
.section-navy .filter-pill{background:rgba(255,255,255,0.05);border-color:rgba(255,255,255,0.16);color:rgba(255,255,255,0.7);}
.section-navy .filter-pill.active{background:var(--terracotta);border-color:var(--terracotta);color:#fff;}
.search-row{display:flex;gap:12px;margin-bottom:28px;flex-wrap:wrap;}
.search-input{flex:1;min-width:220px;background:#fff;border:1.5px solid var(--line-deep);border-radius:11px;padding:13px 18px;font-size:15.4px;color:var(--ink);font-family:inherit;}
.search-input:focus{border-color:var(--navy);outline:none;}
.section-navy .search-input{background:rgba(255,255,255,0.06);border-color:rgba(255,255,255,0.16);color:#fff;}
.section-navy .search-input::placeholder{color:rgba(255,255,255,0.4);}

.filter-search-row {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 2rem;
}

/* Search takes fixed width, pills use remaining */
.search-input {
  flex: 0 0 360px;      /* fixed visual width like in your mockup */
  max-width: 100%;
  padding: .75rem 1rem;
  border-radius: 999px;
  border: 1px solid #ddd;
  font-size: .95rem;
}

/* Pills row */
.filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  padding-top: 10px;
}

/* Pills */
.filter-pill {
  padding: .45rem 1rem;
  border-radius: 999px;
  background: #f2f2f2;
  border: none;
  cursor: pointer;
  font-size: .85rem;
  white-space: nowrap;
}

/* Mobile: stack vertically */
@media (max-width: 768px) {
  .filter-search-row {
    flex-direction: column;
    align-items: stretch;
    margin-bottom: 1.5rem;
  }

  .filter-bar {
    flex-wrap: wrap;
    padding-top: 6px;
    gap: 8px;
  }

  .search-input {
    flex: 1 1 auto;
    width: 100%;
  }
}



/* ============ TIMELINE (history / strategic plan phases) ============ */
.timeline{position:relative;max-width:880px;margin:0 auto;}
.timeline::before{content:'';position:absolute;left:90px;top:6px;bottom:6px;width:2px;background:var(--line-deep);}
.t-row{position:relative;display:grid;grid-template-columns:78px 1fr;gap:28px;padding-bottom:40px;}
.t-row:last-child{padding-bottom:0;}
.t-year{font-family:'Manrope',sans-serif;font-weight:800;font-size:16.5px;color:var(--navy);text-align:right;padding-top:2px;}
.t-dot{position:absolute;left:84px;top:6px;width:13px;height:13px;border-radius:50%;background:var(--terracotta);border:3px solid var(--parchment);}
.t-body{background:#fff;border-radius:var(--radius-sm);padding:20px 22px;box-shadow:var(--shadow-card);}
.t-title{font-size:15.95px;font-weight:700;color:var(--navy);margin-bottom:6px;}
.t-desc{font-size:var(--font-p-card);color:var(--ink-soft);line-height:var(--line-height-card);}

/* ============ TEAM / LEADERSHIP ============ */
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.team-card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-card);transition:transform .25s,box-shadow .25s;}
.team-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-hover);}
.team-photo{height:220px;overflow:hidden;}
.team-photo img{width:100%;height:100%;object-fit:cover;}
.team-body{padding:18px 20px 22px;}
.team-name{font-size:15.95px;font-weight:700;color:var(--navy);margin-bottom:3px;}
.team-role{font-size:13.2px;color:var(--terracotta-deep);font-weight:600;margin-bottom:10px;}
.team-desc{font-size:var(--font-p-card);color:var(--ink-soft);line-height:var(--line-height-card);}

.credential-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:44px;max-width:1120px;margin:0 auto;}
.credential-item{display:grid;grid-template-columns:66px 1fr;gap:16px;align-items:start;padding:24px 0;border-top:1px solid var(--line);}
.credential-mark{width:62px;height:62px;display:grid;place-items:center;background:var(--navy-deep);color:#fff;border-radius:10px;font-size:13px;font-weight:800;line-height:1.1;text-align:center;overflow-wrap:anywhere;}
.credential-mark i{font-size:24px;}
.credential-item h3{font-size:17px;line-height:1.35;color:var(--navy);margin-bottom:7px;}
.credential-item p{font-size:var(--font-p-card);line-height:var(--line-height-card);color:var(--ink-soft);margin-bottom:8px;}
.credential-scope{font-size:11px;font-weight:700;color:var(--terracotta-deep);text-transform:uppercase;letter-spacing:.04em;}
.credential-note{max-width:1120px;margin:18px auto 0;padding-top:16px;border-top:1px solid var(--line);font-size:var(--font-p-sm);line-height:var(--line-height-sm);color:var(--ink-soft);}

.about-team-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:42px;align-items:center;}
.about-team-photo{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius);box-shadow:var(--shadow-card);}
.about-team-photo img{width:100%;height:100%;object-fit:cover;}
.about-team-photo figcaption{position:absolute;left:0;right:0;bottom:0;padding:13px 18px;background:linear-gradient(transparent,rgba(0,0,0,.78));color:#fff;font-size:12px;font-weight:600;}
.about-team-content>p{font-size:var(--font-p-card);color:var(--ink-soft);line-height:var(--line-height-card);margin-bottom:20px;}
.about-team-roles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 22px;}
.about-team-role{display:grid;grid-template-columns:38px 1fr;gap:12px;align-items:start;padding:14px 0;border-top:1px solid var(--line);}
.about-team-icon{width:36px;height:36px;display:grid;place-items:center;color:var(--navy);background:rgba(38,37,236,.08);border-radius:9px;font-size:15px;}
.about-team-role h3{font-size:14px;line-height:1.35;color:var(--navy);margin-bottom:4px;}
.about-team-role p{font-size:var(--font-p-sm);line-height:var(--line-height-sm);color:var(--ink-soft);}
@media(max-width:900px){.credential-list{grid-template-columns:1fr;}.about-team-layout{grid-template-columns:1fr;gap:26px;}.about-team-photo{max-height:460px;}}
@media(max-width:560px){.about-team-roles{grid-template-columns:1fr;}.credential-item{grid-template-columns:54px 1fr;gap:12px;}.credential-mark{width:52px;height:52px;font-size:11px;}}

.partnership-section{background:#f5f7f4;}
.partnership-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:28px;}
.partnership-item{display:grid;grid-template-columns:42px minmax(0,1fr);gap:14px;padding:22px 0;border-top:1px solid var(--line);}
.partnership-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:9px;background:#fff;color:var(--navy);font-size:16px;box-shadow:var(--shadow-card);}
.partnership-item h3{font-size:15px;line-height:1.35;color:var(--navy);margin:1px 0 6px;}
.partnership-item p{font-size:var(--font-p-card);line-height:var(--line-height-card);color:var(--ink-soft);}
.technical-partners{margin-top:22px;padding-top:22px;border-top:1px solid var(--line);}
.technical-partners-heading{margin-bottom:16px;}
.technical-partners-heading h3{margin-top:5px;color:var(--navy);font-size:18px;}
.technical-partners-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;}
.technical-partners-list li{display:flex;align-items:flex-start;gap:11px;padding:14px 0;border-top:1px solid var(--line);color:var(--ink-soft);font-size:13px;line-height:1.55;}
.technical-partners-list i{flex:0 0 18px;margin-top:2px;color:var(--terracotta-deep);}
@media(max-width:900px){.partnership-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:560px){.partnership-grid,.technical-partners-list{grid-template-columns:1fr;}.partnership-item{padding:17px 0;}}

/* ============ NUMBER STEPS (accreditation / application processes) ============ */
.steps-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.step-card{position:relative;padding:32px 24px;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-card);}
.step-num{width:38px;height:38px;border-radius:11px;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Manrope',sans-serif;font-weight:800;font-size:15.4px;margin-bottom:18px;}
.step-title{font-size:15.95px;font-weight:700;color:var(--navy);margin-bottom:8px;}
.step-desc{font-size:var(--font-p-card);color:var(--ink-soft);line-height:var(--line-height-card);}
.step-card:not(:last-child)::after{content:'';position:absolute;top:50px;right:-26px;width:24px;height:2px;background:var(--line-deep);display:none;}
@media (min-width:1025px){.step-card:not(:last-child)::after{display:block;}}

/* ============ ACCORDION (FAQs) ============ */
.accordion{max-width:840px;margin:0 auto;display:flex;flex-direction:column;gap:10px;}
.acc-item{background:#fff;border:1.5px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;}
.acc-q {
  display: flex;
  align-items: center;
  justify-content: space-between; /* ensures plus stays at the end */
  width: 100%;
  gap: 16px;
  padding: 19px 22px;
  font-size: 15.95px;
  font-weight: 700;
  color: var(--navy);
  cursor: pointer;
  background: none;
  border: none;
  text-align: left;
}
.acc-q i {
  margin-left: auto; /* forces icon to the far right */
  color: var(--terracotta-deep);
  transition: transform .25s;
  font-size: 16px;
}
.acc-item.open .acc-q i{transform:rotate(45deg);}
.acc-a{max-height:0;overflow:hidden;transition:max-height .3s ease;}
.acc-a-inner{padding:0 22px 20px;font-size:var(--font-p-card);color:var(--ink-soft);line-height:var(--line-height-card);}
.acc-cat{font-size:11px;font-weight:700;color:var(--terracotta-deep);text-transform:uppercase;letter-spacing:.5px;margin-bottom:18px;margin-top:6px;}
.acc-cat:first-child{margin-top:0;}

/* ============ TWO-COLUMN FAQ LAYOUT ============ */
.faq-columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  align-items: start;
  max-width: 100%;
}

.faq-col {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

/* Responsive collapse */
@media (max-width: 900px) {
  .faq-columns {
    grid-template-columns: 1fr;
  }
}




/* ============ DOWNLOAD LIST ============ */
.dl-group{margin-bottom:40px;}
.dl-group:last-child{margin-bottom:0;}
.dl-group-title{font-size:14.3px;font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:.5px;margin-bottom:16px;display:flex;align-items:center;gap:10px;}
.dl-list{display:flex;flex-direction:column;gap:12px;}
.dl-item{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);padding:16px 20px;transition:all .2s;}
.dl-item:hover{border-color:var(--line-deep);box-shadow:var(--shadow-card);}
.dl-icon{width:42px;height:42px;border-radius:11px;background:rgba(255,0,0,0.1);color:var(--terracotta-deep);display:flex;align-items:center;justify-content:center;font-size:18.7px;flex-shrink:0;}
.dl-info{flex:1;min-width:0;}
.dl-name{font-size:15.4px;font-weight:700;color:var(--navy);margin-bottom:3px;}
.dl-meta{font-size:11.5px;color:var(--ink-soft);}
.dl-btn{flex-shrink:0;width:40px;height:40px;border-radius:10px;background:var(--parchment-deep);color:var(--navy);display:flex;align-items:center;justify-content:center;font-size:15.4px;transition:all .2s;}
.dl-btn:hover{background:var(--navy);color:#fff;}

/* ============ JOB / VACANCY LIST ============ */
.job-list{display:flex;flex-direction:column;gap:16px;}
.job-card{display:flex;align-items:center;justify-content:space-between;gap:24px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px 26px;transition:all .2s;flex-wrap:wrap;}
.job-card:hover{border-color:var(--line-deep);box-shadow:var(--shadow-card);}
.job-main{flex:1;min-width:240px;}
.job-tags{display:flex;gap:8px;margin-bottom:10px;flex-wrap:wrap;}
.job-tag{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:5px 11px;border-radius:20px;background:var(--parchment-deep);color:var(--navy);}
.job-tag.dept{background:rgba(14,122,77,0.1);color:var(--green-deep);}
.job-title{font-size:17.6px;font-weight:700;color:var(--navy);margin-bottom:8px;}
.job-meta{display:flex;gap:18px;flex-wrap:wrap;font-size:13.75px;color:var(--ink-soft);}
.job-meta span{display:flex;align-items:center;gap:6px;}
.no-results{text-align:center;padding:60px 20px;color:var(--ink-soft);font-size:15.4px;}
.no-results i{font-size:30px;color:var(--line-deep);margin-bottom:14px;display:block;}

/* ============ CONTACT ============ */
.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:48px;align-items:start;}
.contact-cards{display:flex;flex-direction:column;gap:16px;}
.contact-card{display:flex;gap:16px;background:#fff;border-radius:var(--radius-sm);padding:22px;box-shadow:var(--shadow-card);}
.cc-icon{width:46px;height:46px;border-radius:12px;background:rgba(1,166,78,0.06);color:var(--navy);display:flex;align-items:center;justify-content:center;font-size:19.8px;flex-shrink:0;}
.cc-text .t1{font-size:15.4px;font-weight:700;color:var(--navy);margin-bottom:5px;}
.cc-text .t2{font-size:var(--font-p-card);color:var(--ink-soft);line-height:var(--line-height-card);}
.form-card{background:#fff;border-radius:var(--radius);padding:36px;box-shadow:var(--shadow-card);}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px;}
.form-group{display:flex;flex-direction:column;gap:8px;}
.form-group.full{grid-column:1/-1;}
.form-label{font-size:13.75px;font-weight:700;color:var(--navy);}
.form-control{background:var(--parchment);border:1.5px solid var(--line);border-radius:10px;padding:12px 15px;font-size:15.4px;font-family:inherit;color:var(--ink);transition:border-color .2s;}
.form-control:focus{border-color:var(--navy);outline:none;background:#fff;}
textarea.form-control{resize:vertical;min-height:120px;}
.btn-submit{background:var(--terracotta);color:#fff;padding:14px 30px;border-radius:11px;font-size:15.4px;font-weight:700;display:inline-flex;align-items:center;gap:9px;transition:background .2s;}
.btn-submit:hover{background:var(--terracotta-deep);}
.map-frame{border-radius:var(--radius);overflow:hidden;height:280px;box-shadow:var(--shadow-card);margin-top:16px;}
.map-frame iframe{width:100%;height:100%;border:0;}

/* ============ CTA BAND ============ */
.cta-band{background:linear-gradient(120deg, var(--navy-deep) 0%, var(--navy) 55%, #134066 130%);padding:60px 0;position:relative;overflow:hidden;}
.cta-band::before{content:'';position:absolute;right:-100px;top:-100px;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle, rgba(255,0,0,0.16) 0%, transparent 70%);}
.cta-band::after{content:'';position:absolute;left:-80px;bottom:-120px;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle, rgba(14,122,77,0.12) 0%, transparent 70%);}
.cta-inner{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap;}
.cta-text h3{font-size:28px;font-weight:800;color:#fff;margin-bottom:12px;letter-spacing:-.3px;}
.cta-text p{font-size:var(--font-p);color:rgba(255,255,255,0.78);max-width:480px;line-height:var(--line-height-p);}
.cta-btns{display:flex;gap:12px;flex-shrink:0;}

/* ============ FOOTER ============ */
.footer { background: #0c0c5e; color: rgba(255,255,255,0.6); }
.footer-top {
  display: grid;
  grid-template-columns: 1.3fr 0.8fr 1.35fr 0.8fr;
  gap: 36px;
  padding-top: 42px;
  padding-bottom: 34px;
}
.f-brand-logo { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.f-mark { width: 40px; height: 40px; border-radius: 11px; background: rgba(255,255,255,0.12); display: flex; align-items: center; justify-content: center; color: #fff; font-weight: 800; font-size: 11px; }
.f-brand-text { font-size: 16px; font-weight: 700; color: #fff; }
.f-desc { font-size: var(--font-p-sm); line-height: var(--line-height-sm); color: rgba(255,255,255,0.6); max-width: 320px; margin-bottom: 20px; }
.f-social { display: flex; gap: 10px; }
.f-soc { width: 36px; height: 36px; border-radius: 9px; background: rgba(255,255,255,0.1); display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,0.7); font-size: 14.5px; transition: all .2s; }
.f-soc:hover { background: var(--terracotta); color: #fff; transform: translateY(-2px); }
.f-col-h { font-size: 11.5px; font-weight: 700; color: rgba(255,255,255,0.95); margin-bottom: 16px; text-transform: uppercase; letter-spacing: .06em; }
.f-link {
  display: block;
  font-size: 13.5px;
  line-height: 1.45;
  color: rgba(255,255,255,0.65);
  margin-bottom: 9px;
  transition: color .15s, transform .15s;
}
.f-link:hover { color: #fff; transform: translateX(2px); }
.footer-bottom { padding: 0 0 24px; font-size: 13px; }
.footer-divider {
  height: 1px;
  background: rgba(255,255,255,0.12);
  margin: 0;
}
.footer-bottom-inner {
  padding-top: 18px;
  padding-left: 0;
  padding-right: 0;
}
.f-copy { color: rgba(255,255,255,0.55); font-size: 13px; font-weight: 400; letter-spacing: 0.01em; }

/* ============ SCROLL REVEAL (shared JS hook) ============ */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .6s cubic-bezier(.2,.8,.3,1), transform .6s cubic-bezier(.2,.8,.3,1);}
.reveal.in{opacity:1;transform:translateY(0);}

/* ============ RESPONSIVE ============ */
@media (max-width:1024px){
  .footer-top{grid-template-columns:1.2fr 1fr;gap:32px 36px;}
  .pillars-grid{grid-template-columns:repeat(2,1fr);}
  .prog-grid{grid-template-columns:1fr;}
  .news-grid{grid-template-columns:1fr;}
  .about-grid{grid-template-columns:1fr;}
  .about-grid.rev .about-media{order:0;}
  .about-media{height:340px;}
  .nav-links{display:none;}
  .nav-toggle{display:block;}
  .htitle{font-size:36px;}
  .hero{height:500px;}
  .proj-card,.tender-card{flex:0 0 320px;}
  .proj-grid-static,.tender-grid-static{grid-template-columns:1fr;}
  .team-grid{grid-template-columns:repeat(2,1fr);}
  .steps-grid{grid-template-columns:repeat(2,1fr);}
  .contact-grid{grid-template-columns:1fr;}
  .pb-title{font-size:32px;}
  .testimonial-grid{grid-template-columns:repeat(2,1fr);gap:20px;}
  .trust-grid{grid-template-columns:repeat(2,1fr);gap:18px;}
  .trust-strip{grid-template-columns:repeat(2,1fr);gap:12px;}
}
@media (max-width:760px){
  .container{padding:0 20px;}
  .topbar .container{padding:7px 20px;flex-wrap:wrap;gap:6px;}
  .navbar .container{padding:0 20px;}
  .topbar-left{gap:10px;font-size:11px;}
  .topbar-right{display:none;}
  .nav-cta{padding:8px 14px;font-size:13px;margin-left:8px;}
  .hero{min-height:540px;}
  .hslide-content{padding:40px 20px 90px;}
  .htitle{font-size:26px;}
  .hdesc{font-size:15px;}
  .statstrip .container{display:grid !important;grid-template-columns:repeat(2,1fr) !important;padding:0 !important;flex-wrap:unset !important;}
  .stat{flex:none !important;border-right:1px solid var(--line) !important;border-bottom:1px solid var(--line) !important;padding:18px 12px !important;}
  .stat:nth-child(2n){border-right:none !important;}
  .stat:last-child{grid-column:1 / -1 !important;border-bottom:none !important;border-right:none !important;}
  .stat-num{font-size:24px !important;}
  .stat-label{font-size:11.5px !important;margin-top:4px !important;}
  .section{padding:48px 0;}
  #page-home .section{padding:22px 0;}
  .stitle{font-size:26px;}
  .shead-row{flex-direction:column;align-items:flex-start;}
  .cta-inner{flex-direction:column;align-items:flex-start;text-align:left;}
  .footer-top{
    grid-template-columns: 1fr 1fr;
    gap: 28px 24px;
    padding-top: 36px;
    padding-bottom: 24px;
  }
  .f-brand-col{
    grid-column: 1 / -1;
    border-bottom: 1px solid rgba(255,255,255,0.08);
    padding-bottom: 20px;
    margin-bottom: 2px;
  }
  .f-solutions-col{
    grid-column: 1 / -1;
    border-top: 1px solid rgba(255,255,255,0.08);
    padding-top: 20px;
  }
  .hctrls-inner{padding:0 20px;}
  .about-points{grid-template-columns:1fr;}
  .proj-card,.tender-card{flex:0 0 290px;}
  .page-banner{padding:34px 0 32.3px;}
  .pb-title{font-size:26px;}
  .team-grid{grid-template-columns:1fr;}
  .steps-grid{grid-template-columns:1fr;}
  .form-row{grid-template-columns:1fr;}
  .timeline::before{left:14px;}
  .t-row{grid-template-columns:1fr;gap:10px;}
  .t-year{text-align:left;}
  .t-dot{left:8px;}
  .job-card{flex-direction:column;align-items:flex-start;}
  .callback-panel{grid-template-columns:1fr;gap:18px;padding:28px 22px;}
  .callback-grid{grid-template-columns:1fr;}
  .banner .callback-form .hbtn-primary{width:100%;justify-content:center;}
  .desktop-cta-float{display:none;}
  .mobile-cta-bar{display:none !important;}
  .wa-float {
    display: inline-flex !important;
    bottom: 18px;
    right: 18px;
    width: 52px;
    height: 52px;
  }
  .wa-float:hover,
  .wa-float:focus-visible {
    width: 52px !important;
  }
  .wa-float span {
    display: none !important;
  }
  .wa-chatbox { display: none; }
  .testimonial-grid{grid-template-columns:1fr;gap:18px;}
  .testimonial-card{padding:22px 20px;}
  .service-testimonial blockquote{font-size:16px;line-height:1.65;margin:16px 0;}
  .trust-grid{grid-template-columns:1fr;}
  .trust-strip{grid-template-columns:1fr;}
}
@media (max-width:480px){
  .hbtns,.cta-btns,.about-btns{flex-direction:column;width:100%;}
  .hbtn-primary,.hbtn-secondary,.cta-btns a,.btn-navy,.btn-outline{justify-content:center;width:100%;text-align:center;}
  .hero{min-height: 580px; height: auto;}
  .hslide-content{padding: 30px 18px 40px;}
}

/* ============ ACCESSIBILITY, LANGUAGE & RESPONSIVE ENHANCEMENTS ============ */

/* Skip-to-content link  invisible until focused */
.skip-link{position:absolute;left:8px;top:-50px;z-index:9999;background:var(--terracotta);color:#fff;padding:12px 22px;font-weight:700;font-size:15.4px;border-radius:10px;transition:top .2s;text-decoration:none;}
.skip-link:focus{top:8px;outline:3px solid #fff;outline-offset:2px;}

/* Visible focus ring for keyboard users on every interactive element */
:focus-visible{outline:3px solid var(--terracotta);outline-offset:2px;border-radius:4px;}
.nav-link:focus-visible,.mm-link:focus-visible,.nav-cta:focus-visible,.f-link:focus-visible,.f-soc:focus-visible{outline-offset:4px;}

/* Language switcher in topbar */
.lang-switch{display:inline-flex;align-items:center;background:rgba(255,255,255,0.07);border-radius:6px;overflow:hidden;}
.lang-btn{font-size:13.2px;font-weight:700;padding:5px 11px;color:rgba(255,255,255,0.6);background:transparent;border:0;cursor:pointer;letter-spacing:.3px;}
.lang-btn.active{background:var(--terracotta);color:#fff;}
.lang-btn:hover:not(.active){color:#fff;}

/* Accessibility toggle button in topbar */
.a11y-trigger{display:inline-flex;align-items:center;gap:6px;background:transparent;border:0;color:rgba(255,255,255,0.7);font-size:13.75px;cursor:pointer;font-family:inherit;}
.a11y-trigger:hover{color:#fff;}

/* Accessibility panel (slide-down dialog) */
.a11y-panel{position:fixed;top:0;right:-380px;width:340px;max-width:calc(100% - 20px);height:100vh;background:#fff;box-shadow:-20px 0 50px rgba(0,0,0,0.2);z-index:9998;transition:right .3s ease;display:flex;flex-direction:column;}
.a11y-panel.open{right:0;}
.a11y-panel-backdrop{position:fixed;inset:0;background:rgba(0,0,0,0.4);z-index:9997;opacity:0;pointer-events:none;transition:opacity .3s;}
.a11y-panel-backdrop.open{opacity:1;pointer-events:auto;}
.a11y-head{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--line);}
.a11y-head h2{font-family:'Manrope',sans-serif;font-size:17.6px;font-weight:800;color:var(--navy);}
.a11y-close{background:transparent;border:0;color:var(--ink-soft);font-size:22px;cursor:pointer;width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;}
.a11y-close:hover{background:var(--parchment-deep);color:var(--navy);}
.a11y-body{padding:22px 24px;overflow-y:auto;flex:1;}
.a11y-group{margin-bottom:24px;}
.a11y-group:last-child{margin-bottom:0;}
.a11y-label{font-size:13.2px;font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px;}
.a11y-row{display:flex;gap:8px;flex-wrap:wrap;}
.a11y-opt{flex:1;min-width:60px;padding:10px 12px;background:#fff;border:1.5px solid var(--line-deep);border-radius:9px;font-size:14.3px;font-weight:600;color:var(--ink);cursor:pointer;font-family:inherit;display:flex;align-items:center;justify-content:center;gap:6px;}
.a11y-opt:hover{border-color:var(--navy);}
.a11y-opt.active{background:var(--navy);color:#fff;border-color:var(--navy);}
.a11y-opt.size-sm{font-size:11px;}
.a11y-opt.size-md{font-size:14.3px;}
.a11y-opt.size-lg{font-size:16.5px;}
.a11y-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:14px 16px;background:var(--parchment);border:1.5px solid var(--line);border-radius:10px;cursor:pointer;font-family:inherit;font-size:14.85px;color:var(--ink);font-weight:600;}
.a11y-toggle:hover{border-color:var(--line-deep);}
.a11y-switch{display:inline-block;width:38px;height:22px;background:var(--line-deep);border-radius:20px;position:relative;transition:background .2s;flex-shrink:0;}
.a11y-switch::after{content:'';position:absolute;left:2px;top:2px;width:18px;height:18px;background:#fff;border-radius:50%;transition:left .2s;box-shadow:0 1px 3px rgba(0,0,0,0.2);}
.a11y-toggle.on .a11y-switch{background:var(--green);}
.a11y-toggle.on .a11y-switch::after{left:18px;}
.a11y-hint{font-size:13.2px;color:var(--ink-soft);margin-top:8px;line-height:1.55;}
.a11y-reset{margin-top:8px;background:transparent;border:1.5px solid var(--line-deep);color:var(--ink-soft);padding:10px 16px;border-radius:9px;font-size:13.75px;font-weight:600;cursor:pointer;width:100%;font-family:inherit;}
.a11y-reset:hover{border-color:var(--terracotta);color:var(--terracotta-deep);}

/* High contrast mode  increases edge contrast and removes subtle backgrounds */
body.hc{--ink:#000;--ink-soft:#1a1a1a;--line:#000;--line-deep:#000;--parchment:#fff;--parchment-deep:#f0f0f0;}
body.hc .pillar,body.hc .news-card,body.hc .tender-card,body.hc .prog-card,body.hc .proj-card,body.hc .team-card,body.hc .step-card,body.hc .job-card,body.hc .dl-item,body.hc .contact-card,body.hc .form-card{border:2px solid #000 !important;box-shadow:none !important;}
body.hc .topbar,body.hc .navbar,body.hc .footer,body.hc .cta-band,body.hc .section-navy,body.hc .page-banner{background:#000 !important;}
body.hc :focus-visible{outline:4px solid #ff0 !important;}
body.hc .hbtn-primary,body.hc .btn-submit{background:#000 !important;color:#ff0 !important;border:2px solid #ff0 !important;}

/* Text size scaling  applied at the root */
html.text-sm{font-size:15.4px;}
html.text-md{font-size:17.6px;}
html.text-lg{font-size:20.9px;}

/* Reduced motion  disables transitions and animations */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important;}
}
body.no-motion *,body.no-motion *::before,body.no-motion *::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important;}

/* Screen-reader-only utility */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* Mobile menu  add a11y/lang controls inside */
.mm-controls{padding:14px 22px 18px;border-top:1px solid var(--line);margin-top:10px;display:flex;flex-direction:column;gap:14px;}
.mm-controls .lang-switch{background:var(--parchment-deep);align-self:flex-start;}
.mm-controls .lang-btn{color:var(--ink-soft);padding:7px 14px;font-size:14.3px;}
.mm-controls .lang-btn.active{background:var(--navy);color:#fff;}
.mm-controls .a11y-trigger{align-self:flex-start;color:var(--navy);font-weight:600;font-size:14.85px;background:var(--parchment-deep);padding:8px 14px;border-radius:8px;}

/* Mobile responsive  bigger touch targets and stacked topbar */
@media (max-width:760px){
  .topbar{padding:8px 0;font-size:11.5px;}
  .topbar .container{justify-content:space-between;gap:8px;flex-wrap:wrap;}
  .topbar-left{gap:10px;flex-wrap:wrap;}
  .topbar-left a,.topbar-left span{font-size:11.5px;}
  .topbar-right{display:flex !important;gap:10px;}
  .lang-btn{padding:6px 10px;font-size:11px;}
  .a11y-trigger{font-size:11.5px;}
  .a11y-trigger .a11y-label-txt{display:none;}
  .nav-link,.mm-link,.f-link,.tender-link,.news-link,.proj-cta{min-height:44px;display:inline-flex;align-items:center;}
  .filter-pill,.a11y-opt{min-height:44px;}
  .btn-submit,.hbtn-primary,.hbtn-secondary{min-height:48px;}
}
@media (max-width:480px){
  .topbar-left a:nth-child(3),.topbar-left a:nth-child(4){display:none;}
  .a11y-panel{width:100%;}
}

/* Route announcement region (screen readers only) */
.route-announce{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}

/* ============ TENDERS PAGE  REDESIGN ============ */
/* Navy gradient page head with breadcrumb (this page only) */
.pagehead{background:linear-gradient(120deg, var(--navy-deep) 0%, var(--navy) 60%, #134066 130%);padding:45.9px 0 70px;position:relative;overflow:visible;}
.pagehead::before{content:'';position:absolute;right:-100px;top:-120px;width:380px;height:380px;border-radius:50%;background:radial-gradient(circle, rgba(255,0,0,0.15) 0%, transparent 70%);pointer-events:none;}
.pagehead .breadcrumb{position:relative;z-index:2;display:flex;align-items:center;gap:8px;font-size:13.75px;color:rgba(255,255,255,0.55);margin-bottom:18px;font-weight:500;}
.pagehead .breadcrumb a{color:rgba(255,255,255,0.55);transition:color .15s;}
.pagehead .breadcrumb a:hover,.pagehead .breadcrumb a:focus-visible{color:#fff;}
.pagehead .breadcrumb i{font-size:9px;color:rgba(255,255,255,0.3);}
.pagehead .breadcrumb .current{color:var(--terracotta);}
.pagehead-title{position:relative;z-index:2;font-family:'Manrope',sans-serif;font-size:39.6px;font-weight:800;color:#fff;letter-spacing:-.6px;margin-bottom:12px;max-width:680px;line-height:1.18;}
.pagehead-desc{position:relative;z-index:2;font-size:var(--font-p);color:rgba(255,255,255,0.7);max-width:600px;line-height:var(--line-height-p);}

/* Floating filter bar that overlaps the page head */
.filterbar{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-card);padding:24px 28px;display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:-36px;position:relative;z-index:10;transition:box-shadow .2s;}
.filterbar:focus-within{box-shadow:0 8px 24px -8px rgba(0,0,0,0.12);}
.filter-field{display:flex;flex-direction:column;}
.filter-search{flex:1;min-width:200px;position:relative;display:block;}
.filter-search input{width:100%;padding:13px 18px 13px 44px;border:1.5px solid var(--line-deep);border-radius:11px;font-size:15px;font-family:inherit;color:var(--ink);background:#fff;transition:border-color .2s, box-shadow .2s;}
.filter-search input::placeholder{color:var(--ink-soft);opacity:.7;}
.filter-search input:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(1,166,78,0.12);}
.filter-search > i{position:absolute;left:18px;top:50%;transform:translateY(-50%);color:var(--ink-soft);font-size:15px;pointer-events:none;}
.filter-select{padding:13px 18px;border:1.5px solid var(--line-deep);border-radius:11px;font-size:14.5px;font-family:inherit;color:var(--ink);background:#fff;cursor:pointer;min-height:46px;transition:border-color .2s, box-shadow .2s;}
.filter-select:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(1,166,78,0.12);}
.filter-btn{background:var(--navy);color:#fff;padding:13px 26px;border-radius:11px;font-size:15px;font-weight:700;display:flex;align-items:center;gap:8px;transition:all .25s cubic-bezier(.2,.8,.3,1);border:0;font-family:inherit;cursor:pointer;min-height:46px;}
.filter-btn:hover{background:var(--ink);transform:translateY(-1px);}
.filter-btn:focus-visible{outline:3px solid var(--terracotta);outline-offset:2px;}

/* Tender list rows (light theme, on parchment) */
.tender-section-title{display:flex;align-items:center;gap:12px;margin:48px 0 20px;}
.tender-section-title:first-of-type{margin-top:24px;}
.tender-section-title h3{font-family:'Manrope',sans-serif;font-size:20px;font-weight:700;color:var(--navy);letter-spacing:-.2px;}
.tender-section-title .count{background:var(--line);color:var(--ink-soft);font-size:13.5px;font-weight:700;padding:4px 12px;border-radius:20px;font-family:'Inter',sans-serif;transition:transform .2s;}
.tender-section-title[data-status-group="open"] .count{background:rgba(14,122,77,0.14);color:var(--green);}
.tender-section-title[data-status-group="closing"] .count{background:rgba(232,162,58,0.2);color:#8a5a00;}
.tender-list{display:flex;flex-direction:column;gap:16px;}
.tender-list[data-status-list="closed"]{gap:10px;}
.tender-row{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-card);border-left:4px solid transparent;padding:24px 28px 24px 24px;display:grid;grid-template-columns:auto 1fr auto auto;gap:24px;align-items:center;transition:transform .3s cubic-bezier(.2,.8,.3,1), box-shadow .3s, opacity .2s;}
.tender-row:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover);}
.tender-row[data-status="open"]{border-left-color:var(--green);}
.tender-row[data-status="closing"]{border-left-color:var(--gold);}
/* Closed rows are an archival record, not something to act on  quieter and
   more compact so the live "open"/"closing" rows above keep visual priority. */
.tender-row[data-status="closed"]{padding:16px 24px;box-shadow:none;border:1px solid var(--line);opacity:.82;}
.tender-row[data-status="closed"]:hover{opacity:1;transform:none;box-shadow:var(--shadow-card);}
.tender-row[data-status="closed"] .tr-icon{width:42px;height:42px;font-size:17px;background:rgba(0,0,0,0.05);color:var(--ink-soft);border-radius:11px;}
.tender-row[data-status="closed"] .tr-title{color:var(--ink-soft);font-weight:600;}
.tr-icon{width:54px;height:54px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;transition:transform .2s;}
.tender-row:hover .tr-icon{transform:scale(1.05);}
.tri-1{background:rgba(255,0,0,0.1);color:var(--terracotta-deep);}
.tri-2{background:rgba(14,122,77,0.1);color:var(--green);}
.tri-3{background:rgba(232,162,58,0.15);color:#B5790F;}
.tri-4{background:rgba(1,166,78,0.08);color:var(--navy);}
.tr-main{min-width:0;}
.tr-top{display:flex;align-items:center;gap:12px;margin-bottom:8px;flex-wrap:wrap;}
.tr-ref{font-size:11.5px;color:var(--ink-soft);font-weight:600;font-family:'Manrope',sans-serif;letter-spacing:.3px;}
.tr-status{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;padding:5px 12px;border-radius:20px;text-transform:uppercase;letter-spacing:.4px;}
.tr-status.open{background:rgba(14,122,77,0.1);color:var(--green);}
.tr-status.closing{background:rgba(232,162,58,0.15);color:#B5790F;}
.tr-status.closed{background:rgba(0,0,0,0.06);color:var(--ink-soft);}
.tr-title{font-family:'Manrope',sans-serif;font-size:17px;font-weight:700;color:var(--navy);line-height:1.45;}
.tr-meta{display:flex;gap:20px;flex-wrap:wrap;}
.tr-meta-item{text-align:left;white-space:nowrap;}
.tr-meta-label{font-size:10.5px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px;font-weight:600;}
.tr-meta-value{font-size:14.5px;font-weight:700;color:var(--navy);font-family:'Manrope',sans-serif;}
.tender-row[data-status="closed"] .tr-meta-value{color:var(--ink-soft);font-weight:600;}
.tr-action{flex-shrink:0;}
.tr-btn{display:inline-flex;align-items:center;gap:8px;background:transparent;color:var(--navy);border:1.5px solid var(--line-deep);padding:12px 22px;border-radius:10px;font-size:14.5px;font-weight:700;transition:all .25s cubic-bezier(.2,.8,.3,1);white-space:nowrap;font-family:inherit;cursor:pointer;}
.tr-btn:hover{background:var(--navy);color:#fff;border-color:var(--navy);transform:translateX(3px);}
.tr-btn:focus-visible{outline:3px solid var(--terracotta);outline-offset:2px;}

/* Pagination */
.pagination{display:flex;justify-content:center;gap:8px;margin-top:40px;}
.page-btn{width:42px;height:42px;border-radius:10px;border:1.5px solid var(--line-deep);background:#fff;display:flex;align-items:center;justify-content:center;font-size:14.5px;font-weight:600;color:var(--navy);transition:all .25s cubic-bezier(.2,.8,.3,1);font-family:'Manrope',sans-serif;cursor:pointer;}
.page-btn.active{background:var(--navy);color:#fff;border-color:var(--navy);box-shadow:0 4px 12px -4px rgba(1,166,78,0.4);}
.page-btn:hover:not(.active){border-color:var(--navy);transform:translateY(-2px);box-shadow:0 4px 8px rgba(0,0,0,0.08);}
.page-btn:focus-visible{outline:3px solid var(--terracotta);outline-offset:2px;}

/* High-contrast mode tweaks for new components */
body.hc .pagehead{background:#000 !important;}
body.hc .tender-row,body.hc .filterbar{border:2px solid #000 !important;box-shadow:none !important;}
body.hc .filter-select,body.hc .filter-search input{border-color:#000 !important;}
body.hc .tr-status.open{background:#0a5a39 !important;color:#fff !important;}
body.hc .tr-status.closing{background:#7a4d00 !important;color:#fff !important;}
body.hc .tr-status.closed{background:#333 !important;color:#fff !important;}
body.hc .quick-chip,body.hc .filter-clear,body.hc .af-chip{border:2px solid #000 !important;}
body.hc .quick-chip.active{background:#000 !important;color:#ff0 !important;}
body.hc .page-btn.active{background:#000 !important;color:#ff0 !important;border-color:#000 !important;}

/* Responsive  tenders page */
@media (max-width:1024px){
  .tender-row{grid-template-columns:auto 1fr;gap:18px;}
  .tr-meta{grid-column:1 / -1;padding-top:14px;border-top:1px dashed var(--line);}
  .tr-action{grid-column:1 / -1;}
  .tr-btn{width:100%;justify-content:center;}
  .filterbar{padding:20px 22px;margin-top:-32px;}
  .filter-search{min-width:180px;}
}
@media (max-width:760px){
  .pagehead{padding:36px 0 60px;}
  .pagehead-title{font-size:28.6px;}
  .filterbar{flex-direction:column;align-items:stretch;padding:18px 20px;margin-top:-28px;gap:12px;}
  .filter-field{width:100%;}
  .filter-search{min-width:100%;}
  .filter-search input{min-height:46px;}
  .filter-select{width:100%;min-height:46px;}
  .filter-btn{width:100%;justify-content:center;min-height:48px;}
  .filter-clear{width:100%;justify-content:center;min-height:48px;}
  .tender-row{grid-template-columns:1fr;text-align:left;}
  .tr-icon{margin-bottom:4px;}
  .tr-meta{flex-direction:column;gap:10px;}
  .tender-section-title{margin:36px 0 16px;}
  .quick-filters{flex-wrap:wrap;}
  .quick-chip{min-height:40px;}
}
@media (max-width:480px){
  .filterbar{margin-top:-24px;padding:16px 16px;}
  .filter-extra{flex-direction:column;align-items:stretch;gap:12px;}
  .results-count{text-align:center;}
}

/* ============ CAREERS  APPLY BUTTON + MODAL ============ */
.apply-btn{display:inline-flex;align-items:center;gap:8px;background:var(--terracotta);color:#fff;padding:12px 22px;border-radius:11px;font-size:14.85px;font-weight:700;border:0;cursor:pointer;font-family:inherit;transition:all .2s;white-space:nowrap;box-shadow:0 4px 12px rgba(255,0,0,0.25);}
.apply-btn:hover{background:var(--terracotta-deep);transform:translateY(-2px);box-shadow:0 6px 16px rgba(255,0,0,0.35);}
.apply-btn:focus-visible{outline:3px solid var(--navy);outline-offset:3px;}
.apply-btn i{font-size:11px;transition:transform .2s;}
.apply-btn:hover i{transform:translateX(3px);}
.careers-stat-row{display:flex;gap:16px;flex-wrap:wrap;margin-top:18px;}
.careers-stat{display:inline-flex;align-items:center;gap:10px;background:rgba(255,255,255,0.1);border:1px solid rgba(255,255,255,0.2);border-radius:11px;padding:10px 16px;font-size:14.3px;color:rgba(255,255,255,0.85);font-weight:600;}
.careers-stat strong{color:#fff;font-size:19.8px;font-family:'Manrope',sans-serif;}

/* Application + generic modal */
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,0.6);z-index:9990;opacity:0;pointer-events:none;transition:opacity .25s;backdrop-filter:blur(3px);}
.modal-backdrop.open{opacity:1;pointer-events:auto;}
.modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.96);width:600px;max-width:calc(100% - 24px);max-height:90vh;background:#fff;border-radius:18px;box-shadow:0 30px 80px rgba(0,0,0,0.4);z-index:9991;display:flex;flex-direction:column;opacity:0;pointer-events:none;transition:opacity .25s, transform .25s;overflow:hidden;}
.modal.open{opacity:1;transform:translate(-50%,-50%) scale(1);pointer-events:auto;}
.modal-head{padding:24px 28px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:flex-start;gap:16px;}
.modal-head-text h2{font-family:'Manrope',sans-serif;font-size:19.8px;font-weight:800;color:var(--navy);margin-bottom:6px;}
.modal-head-text p{font-size:var(--font-p-card);color:var(--ink-soft);margin:0;}
.modal-close{background:transparent;border:0;color:var(--ink-soft);font-size:24.2px;cursor:pointer;width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.modal-close:hover{background:var(--parchment-deep);color:var(--navy);}
.modal-body{padding:24px 28px;overflow-y:auto;flex:1;}
.modal-foot{padding:18px 28px;border-top:1px solid var(--line);display:flex;gap:12px;justify-content:flex-end;background:var(--parchment);}
.modal-foot .btn-ghost{background:transparent;color:var(--ink-soft);border:1.5px solid var(--line-deep);padding:11px 20px;border-radius:10px;font-size:14.85px;font-weight:600;cursor:pointer;font-family:inherit;}
.modal-foot .btn-ghost:hover{border-color:var(--navy);color:var(--navy);}
.modal-thanks{display:none;text-align:center;padding:30px 20px;}
.modal-thanks i{font-size:52.8px;color:var(--green);margin-bottom:14px;}
.modal-thanks h3{font-family:'Manrope',sans-serif;font-size:22px;color:var(--navy);margin-bottom:8px;}
.modal-thanks p{font-size:var(--font-p-card);color:var(--ink-soft);max-width:380px;margin:0 auto 18px;line-height:var(--line-height-card);}
.modal.success .modal-body > form{display:none;}
.modal.success .modal-thanks{display:block;}
.modal.success .modal-foot{display:none;}
.file-input-wrap{display:flex;align-items:center;gap:12px;padding:12px 15px;background:var(--parchment);border:1.5px dashed var(--line-deep);border-radius:10px;cursor:pointer;}
.file-input-wrap:hover{border-color:var(--navy);background:#fff;}
.file-input-wrap input[type="file"]{display:none;}
.file-input-wrap i{color:var(--terracotta-deep);font-size:19.8px;}
.file-input-name{flex:1;font-size:14.3px;color:var(--ink-soft);}
.consent-row{display:flex;gap:10px;align-items:flex-start;margin-top:18px;}
.consent-row input{margin-top:3px;flex-shrink:0;}
.consent-row label{font-size:13.75px;color:var(--ink-soft);line-height:1.55;cursor:pointer;}

/* ============ CITIZENS  SERVICE CATEGORY HEADINGS ============ */
.cat-head{display:flex;align-items:center;gap:14px;margin:46px 0 22px;padding-bottom:14px;border-bottom:2px solid var(--line);}
.cat-head:first-of-type{margin-top:0;}
.cat-head-icon{width:42px;height:42px;border-radius:11px;background:rgba(255,0,0,0.12);color:var(--terracotta-deep);display:flex;align-items:center;justify-content:center;font-size:18.7px;flex-shrink:0;}
.cat-head-text h3{font-family:'Manrope',sans-serif;font-size:19.8px;font-weight:800;color:var(--navy);margin-bottom:3px;}
.cat-head-text p{font-size:var(--font-p-card);color:var(--ink-soft);margin:0;}

/* Service card (citizens + standards systems)  link-style card with icon, title, desc, arrow */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.svc-card{display:block;background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);padding:22px 22px 20px;transition:all .2s;position:relative;text-decoration:none;color:inherit;}
.svc-card:hover{border-color:var(--terracotta);transform:translateY(-3px);box-shadow:var(--shadow-card);}
.svc-card:focus-visible{outline:3px solid var(--terracotta);outline-offset:2px;}
.svc-icon{width:44px;height:44px;border-radius:11px;background:rgba(1,166,78,0.06);color:var(--navy);display:flex;align-items:center;justify-content:center;font-size:19.8px;margin-bottom:14px;}
.svc-card .svc-title{font-family:'Manrope',sans-serif;font-size:15.95px;font-weight:700;color:var(--navy);margin-bottom:6px;line-height:1.35;}
.svc-card .svc-desc{font-size:var(--font-p-card);color:var(--ink-soft);line-height:var(--line-height-card);margin-bottom:12px;}
.svc-card .svc-arrow{font-size:13.2px;color:var(--terracotta-deep);font-weight:700;display:inline-flex;align-items:center;gap:6px;}
.svc-card:hover .svc-arrow i{transform:translateX(4px);}
.svc-card .svc-arrow i{transition:transform .2s;}
.svc-ext{position:absolute;top:18px;right:18px;font-size:11px;color:var(--ink-soft);}
@media (max-width:1024px){.svc-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:760px){.svc-grid{grid-template-columns:1fr;}}

/* ============ CONTACT PAGE  ENHANCED ============ */
.contact-channels{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:48px;}
.channel-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);padding:24px 22px;text-align:center;transition:all .2s;}
.channel-card:hover{border-color:var(--terracotta);transform:translateY(-3px);box-shadow:var(--shadow-card);}
.channel-icon{width:54px;height:54px;border-radius:14px;background:linear-gradient(135deg, rgba(255,0,0,0.12), rgba(14,122,77,0.12));color:var(--terracotta-deep);display:flex;align-items:center;justify-content:center;font-size:24.2px;margin:0 auto 16px;}
.channel-card h4{font-family:'Manrope',sans-serif;font-size:15.4px;font-weight:700;color:var(--navy);margin-bottom:8px;}
.channel-card p, .channel-card a{font-size:var(--font-p-card);color:var(--ink-soft);line-height:var(--line-height-card);display:block;}
.channel-card a:hover{color:var(--terracotta-deep);}
@media (max-width:1024px){.contact-channels{grid-template-columns:repeat(2,1fr);}}
@media (max-width:480px){.contact-channels{grid-template-columns:1fr;}}

/* Regional offices list */
.regional-list{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.regional-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);padding:18px 20px;}
.regional-card h5{font-family:'Manrope',sans-serif;font-size:14.85px;font-weight:700;color:var(--navy);margin-bottom:6px;display:flex;align-items:center;gap:7px;}
.regional-card h5 i{color:var(--terracotta-deep);font-size:13.2px;}
.regional-card p{font-size:var(--font-p-card);color:var(--ink-soft);line-height:var(--line-height-card);margin:0;}
@media (max-width:1024px){.regional-list{grid-template-columns:repeat(2,1fr);}}
@media (max-width:480px){.regional-list{grid-template-columns:1fr;}}

/* ============ PROJECTS  EXPANDED GRID + STATS ============ */
.proj-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:48px;}
.proj-mini{background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);padding:22px 22px 20px;transition:all .2s;display:flex;flex-direction:column;gap:8px;height:100%;}
.proj-mini:hover{border-color:var(--terracotta);box-shadow:var(--shadow-card);transform:translateY(-3px);}
.proj-mini-top{display:flex;align-items:center;gap:12px;margin-bottom:6px;}
.proj-mini-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:17.6px;flex-shrink:0;}
.proj-mini-icon.c1{background:rgba(255,0,0,0.12);color:var(--terracotta-deep);}
.proj-mini-icon.c2{background:rgba(14,122,77,0.12);color:var(--green);}
.proj-mini-icon.c3{background:rgba(232,162,58,0.18);color:#B5790F;}
.proj-mini-icon.c4{background:rgba(1,166,78,0.08);color:var(--navy);}
.proj-mini-pill{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:3px 9px;border-radius:20px;background:var(--parchment-deep);color:var(--navy);align-self:flex-start;margin-left:auto;}
.proj-mini-pill.live{background:rgba(14,122,77,0.12);color:var(--green-deep);}
.proj-mini-pill.ongoing{background:rgba(232,162,58,0.18);color:#B5790F;}
.proj-mini-title{font-family:'Manrope',sans-serif;font-size:16.5px;font-weight:700;color:var(--navy);line-height:1.35;}
.proj-mini-desc{font-size:var(--font-p-card);color:var(--ink-soft);line-height:var(--line-height-card);flex:1;}
.proj-mini-meta{font-size:11px;color:var(--ink-soft);font-weight:600;padding-top:10px;border-top:1px dashed var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;}
.proj-mini-meta strong{color:var(--navy);}
@media (max-width:1024px){.proj-grid-3{grid-template-columns:repeat(2,1fr);}}
@media (max-width:760px){.proj-grid-3{grid-template-columns:1fr;}}

body.hc .apply-btn{background:#000 !important;color:#ff0 !important;border:2px solid #ff0 !important;}
body.hc .modal{border:2px solid #000;}
body.hc .svc-card,body.hc .channel-card,body.hc .regional-card,body.hc .proj-mini{border:2px solid #000 !important;}

@media (max-width:760px){
  .apply-btn{width:100%;justify-content:center;}
  .modal{width:100%;max-width:none;max-height:100vh;border-radius:0;top:0;left:0;transform:none;}
  .modal.open{transform:none;}
}

/* ============ JOB APPLY MODAL ============ */
.apply-modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,0.55);backdrop-filter:blur(4px);z-index:9997;opacity:0;pointer-events:none;transition:opacity .25s;}
.apply-modal-backdrop.open{opacity:1;pointer-events:auto;}
.apply-modal{position:fixed;top:50%;left:50%;transform:translate(-50%, calc(-50% + 20px));width:min(620px, calc(100% - 32px));max-height:calc(100vh - 48px);background:#fff;border-radius:18px;box-shadow:0 30px 80px rgba(0,0,0,0.4);z-index:9998;opacity:0;pointer-events:none;transition:opacity .25s, transform .25s;display:flex;flex-direction:column;overflow:hidden;}
.apply-modal.open{opacity:1;pointer-events:auto;transform:translate(-50%, -50%);}
.apply-modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:24px 28px 18px;border-bottom:1px solid var(--line);}
.apply-modal-eyebrow{font-size:11px;font-weight:700;color:var(--terracotta-deep);text-transform:uppercase;letter-spacing:.6px;margin-bottom:6px;}
.apply-modal-title{font-family:'Manrope',sans-serif;font-size:22px;font-weight:800;color:var(--navy);line-height:1.25;}
.apply-modal-role{font-size:14.85px;color:var(--ink-soft);margin-top:4px;font-weight:600;}
.apply-modal-close{width:36px;height:36px;border-radius:10px;background:var(--parchment-deep);color:var(--navy);display:flex;align-items:center;justify-content:center;font-size:17.6px;border:0;cursor:pointer;flex-shrink:0;}
.apply-modal-close:hover{background:var(--navy);color:#fff;}
.apply-modal-body{padding:22px 28px 26px;overflow-y:auto;display:flex;flex-direction:column;gap:14px;}
.apply-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.apply-field{display:flex;flex-direction:column;gap:6px;}
.apply-field label{font-size:13.2px;font-weight:700;color:var(--navy);}
.apply-field .req{color:var(--terracotta-deep);}
.apply-field input,.apply-field select,.apply-field textarea{background:var(--parchment);border:1.5px solid var(--line);border-radius:10px;padding:11px 14px;font-size:14.85px;font-family:inherit;color:var(--ink);transition:border-color .15s, background .15s;}
.apply-field input:focus,.apply-field select:focus,.apply-field textarea:focus{outline:none;border-color:var(--navy);background:#fff;box-shadow:0 0 0 3px rgba(1,166,78,0.1);}
.apply-field textarea{resize:vertical;min-height:90px;}
.apply-consent{display:flex;gap:10px;align-items:flex-start;font-size:13.75px;color:var(--ink-soft);line-height:1.55;cursor:pointer;}
.apply-consent input{margin-top:3px;flex-shrink:0;width:16px;height:16px;accent-color:var(--terracotta);}
.apply-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:6px;flex-wrap:wrap;}
.apply-cancel{background:transparent;color:var(--ink-soft);border:1.5px solid var(--line-deep);padding:11px 22px;border-radius:10px;font-size:14.85px;font-weight:600;cursor:pointer;font-family:inherit;}
.apply-cancel:hover{border-color:var(--navy);color:var(--navy);}
.apply-submit{background:var(--terracotta);color:#fff;border:0;padding:11px 24px;border-radius:10px;font-size:14.85px;font-weight:700;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:8px;transition:background .15s, transform .1s;}
.apply-submit:hover{background:var(--terracotta-deep);}
.apply-submit:active{transform:translateY(1px);}
.apply-submit:focus-visible,.apply-cancel:focus-visible{outline:3px solid var(--terracotta);outline-offset:3px;}
.apply-success{background:rgba(14,122,77,0.1);border:1.5px solid rgba(14,122,77,0.3);color:var(--green-deep);padding:14px 18px;border-radius:10px;font-size:14.85px;font-weight:600;display:flex;align-items:center;gap:10px;}
@media (max-width:600px){
  .apply-modal{width:calc(100% - 24px);max-height:calc(100vh - 24px);border-radius:14px;}
  .apply-modal-head{padding:20px 22px 16px;}
  .apply-modal-body{padding:18px 22px 22px;}
  .apply-row{grid-template-columns:1fr;}
  .apply-actions{flex-direction:column-reverse;}
  .apply-actions button{width:100%;justify-content:center;}
}
body.hc .apply-modal{border:3px solid #000;}

/* ============ STANDARDS CARDS (clickable, with badge) ============ */
.std-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
@media (max-width:1024px){ .std-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:600px){ .std-grid{grid-template-columns:1fr;} }
.std-card{position:relative;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:10px;text-decoration:none;color:inherit;}
.std-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover);}
.std-card:focus-visible{outline:3px solid var(--terracotta);outline-offset:3px;}
.std-badge{position:absolute;top:18px;right:18px;font-family:'Manrope',sans-serif;font-size:10.5px;font-weight:800;color:var(--terracotta-deep);background:rgba(255,0,0,0.1);padding:4px 9px;border-radius:6px;letter-spacing:.3px;}
.std-card .pillar-icon{margin-bottom:6px;}
.std-card .pillar-title{padding-right:80px;}
.std-link{margin-top:auto;padding-top:14px;font-size:13.75px;font-weight:700;color:var(--navy);display:inline-flex;align-items:center;gap:7px;border-top:1px solid var(--line);}
.std-card:hover .std-link{color:var(--terracotta-deep);}
.std-link i{font-size:10px;transition:transform .2s;}
.std-card:hover .std-link i{transform:translateX(3px);}
body.hc .std-card{border:2px solid #000;}
body.hc .std-badge{background:#000 !important;color:#ff0 !important;}

/* ============ CONTACT PAGE ENHANCEMENTS ============ */
.contact-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px;position:relative;z-index:2;}
.contact-chip{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,0.1);border:1px solid rgba(255,255,255,0.22);color:#fff;padding:10px 18px;border-radius:11px;font-size:14.3px;font-weight:600;transition:all .2s;text-decoration:none;backdrop-filter:blur(6px);}
.contact-chip:hover{background:var(--terracotta);border-color:var(--terracotta);transform:translateY(-2px);}
.contact-chip:focus-visible{outline:3px solid var(--terracotta);outline-offset:3px;}
.contact-chip i{font-size:14.3px;}
.contact-card .t2 a{color:var(--navy);font-weight:600;border-bottom:1px solid transparent;transition:border-color .15s;}
.contact-card .t2 a:hover{border-bottom-color:var(--terracotta);}
.contact-grid select.form-control{background-color:#fff;cursor:pointer;}
.std-card .std-link a{color:var(--navy);font-weight:700;border-bottom:1px solid transparent;transition:border-color .15s, color .15s;}
.std-card .std-link a:hover{border-bottom-color:var(--terracotta);color:var(--terracotta-deep);}

/* Social row */
.social-row{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;}
.social-chip{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1.5px solid var(--line);color:var(--navy);padding:11px 18px;border-radius:11px;font-size:14.85px;font-weight:600;transition:all .2s;}
.social-chip:hover{border-color:var(--navy);background:var(--navy);color:#fff;}
.social-chip:focus-visible{outline:3px solid var(--terracotta);outline-offset:3px;}
.social-chip i{font-size:15.4px;}

body.hc .contact-chip,body.hc .social-chip{border:2px solid #000;}

/* ============ MEDIA  PHOTO GALLERY ============ */
.gallery-grid{display:grid;grid-template-columns:repeat(4, 1fr);gap:14px;grid-auto-rows:200px;}
.gal-item{position:relative;border-radius:14px;overflow:hidden;cursor:pointer;background:var(--parchment-deep);}
.gal-item img{width:100%;height:100%;object-fit:cover;transition:transform .4s;display:block;}
.gal-item:hover img{transform:scale(1.06);}
.gal-item.tall{grid-row:span 2;}
.gal-item.wide{grid-column:span 2;}
.gal-overlay{position:absolute;inset:auto 0 0 0;padding:14px 16px;background:linear-gradient(0deg, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0) 100%);color:#fff;}
.gal-cat{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--gold);margin-bottom:4px;display:block;}
.gal-title{font-family:'Manrope',sans-serif;font-size:14.85px;font-weight:700;line-height:1.35;}
.gal-item:focus-visible{outline:3px solid var(--terracotta);outline-offset:3px;}

/* Lightbox for photos */
.lightbox-backdrop{position:fixed;inset:0;background:rgba(0,0,0,0.9);z-index:9997;opacity:0;pointer-events:none;transition:opacity .25s;display:flex;align-items:center;justify-content:center;padding:24px;}
.lightbox-backdrop.open{opacity:1;pointer-events:auto;}
.lightbox-img{max-width:100%;max-height:85vh;border-radius:10px;box-shadow:0 30px 80px rgba(0,0,0,0.5);}
.lightbox-cap{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);color:#fff;font-size:15.4px;background:rgba(0,0,0,0.5);padding:8px 16px;border-radius:8px;max-width:80%;text-align:center;}
.lightbox-close{position:absolute;top:20px;right:24px;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,0.15);border:0;color:#fff;font-size:19.8px;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.lightbox-close:hover{background:rgba(255,255,255,0.25);}

@media (max-width:1024px){ .gallery-grid{grid-template-columns:repeat(3,1fr);} }
@media (max-width:760px){ .gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:160px;} .gal-item.wide{grid-column:span 1;} .gal-item.tall{grid-row:span 1;} }

/* ============ FIELD OPERATIONS STORY GALLERY ============ */
.story-gallery-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  grid-auto-rows: auto !important;
  gap: 28px !important;
  margin-bottom: 3.5rem;
}
.story-card {
  background: #ffffff;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: var(--shadow-card, 0 1px 2px rgba(0,0,0,0.04), 0 16px 32px -20px rgba(0,0,0,0.18));
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 520px;
  transition: transform 0.28s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.28s cubic-bezier(0.16, 1, 0.3, 1);
}
.story-card.is-hidden,
.story-card[hidden] {
  display: none !important;
}
.story-card-media {
  position: relative !important;
  width: 100% !important;
  height: 250px !important;
  min-height: 250px !important;
  flex: 0 0 250px !important;
  overflow: hidden !important;
  cursor: pointer;
  background-color: #1a2238;
  display: block !important;
}
.story-card-media img {
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
}
@media (max-width: 1024px) {
  .story-gallery-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 20px !important; }
}
@media (max-width: 680px) {
  .story-gallery-grid { grid-template-columns: 1fr !important; gap: 18px !important; }
  .story-card-media { height: 220px !important; min-height: 220px !important; flex: 0 0 220px !important; }
}

/* ============ SITE PRELOADER ANIMATION ============ */
.site-preloader {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  background: radial-gradient(circle at center, #151b3b 0%, #0a0d1e 100%);
  z-index: 9999999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 1;
  visibility: visible;
  transition: opacity 0.5s cubic-bezier(0.4, 0, 0.2, 1), visibility 0.5s ease;
  pointer-events: auto;
}
.site-preloader.loaded {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.preloader-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  position: relative;
  z-index: 2;
  padding: 24px;
}
.preloader-logo-wrap {
  position: relative;
  width: 130px;
  height: 130px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
}
.preloader-logo {
  width: 90px;
  height: 90px;
  object-fit: contain;
  position: relative;
  z-index: 3;
  animation: preloaderPulse 2.2s ease-in-out infinite;
  filter: drop-shadow(0 10px 28px rgba(0, 0, 0, 0.5));
}
.ripple-ring {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 80px;
  height: 80px;
  border-radius: 50%;
  border: 2px solid rgba(0, 212, 255, 0.65);
  opacity: 0;
  z-index: 1;
  animation: rippleExpand 2.2s cubic-bezier(0.1, 0.6, 0.3, 1) infinite;
}
.ripple-ring.r2 {
  animation-delay: 0.7s;
  border-color: rgba(38, 37, 236, 0.75);
}
.ripple-ring.r3 {
  animation-delay: 1.4s;
  border-color: rgba(255, 0, 0, 0.55);
}
@keyframes rippleExpand {
  0% {
    width: 60px;
    height: 60px;
    opacity: 0.95;
    transform: translate(-50%, -50%) scale(0.8);
  }
  60% {
    opacity: 0.45;
  }
  100% {
    width: 200px;
    height: 200px;
    opacity: 0;
    transform: translate(-50%, -50%) scale(1.15);
  }
}
@keyframes preloaderPulse {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.06);
  }
}
.preloader-title {
  color: #ffffff;
  font-family: 'Manrope', sans-serif;
  font-size: 20px;
  font-weight: 800;
  letter-spacing: -0.2px;
  margin-bottom: 6px;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
}
.preloader-subtitle {
  color: rgba(255, 255, 255, 0.75);
  font-size: 13.5px;
  font-weight: 500;
  letter-spacing: 0.5px;
  margin-bottom: 24px;
}
.preloader-bar-track {
  width: 190px;
  height: 4px;
  background: rgba(255, 255, 255, 0.12);
  border-radius: 99px;
  overflow: hidden;
  position: relative;
}
.preloader-bar-fill {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 0%;
  background: linear-gradient(90deg, #00d4ff 0%, #2625ec 55%, #ff0000 100%);
  border-radius: 99px;
  animation: preloaderProgress 1.4s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}
@keyframes preloaderProgress {
  0% { width: 0%; }
  45% { width: 68%; }
  85% { width: 92%; }
  100% { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .site-preloader { display: none !important; }
}

/* ============ MEDIA  VIDEO GRID ============ */
.video-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.video-card{background:#fff;border-radius:14px;overflow:hidden;box-shadow:var(--shadow-card);transition:all .25s;cursor:pointer;border:0;text-align:left;font-family:inherit;display:block;width:100%;}
.video-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover);}
.video-card:focus-visible{outline:3px solid var(--terracotta);outline-offset:3px;}
.video-thumb{position:relative;aspect-ratio:16/9;background:var(--navy);overflow:hidden;}
.video-thumb img{width:100%;height:100%;object-fit:cover;}
.video-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:64px;height:64px;border-radius:50%;background:rgba(255,0,0,0.95);color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;box-shadow:0 6px 18px rgba(0,0,0,0.4);transition:transform .2s;}
.video-card:hover .video-play{transform:translate(-50%,-50%) scale(1.1);}
.video-dur{position:absolute;bottom:10px;right:10px;background:rgba(0,0,0,0.7);color:#fff;font-size:11px;font-weight:700;padding:3px 8px;border-radius:5px;font-family:'Manrope',sans-serif;}
.video-body{padding:18px 20px 20px;}
.video-cat{font-size:10.5px;font-weight:700;color:var(--terracotta-deep);text-transform:uppercase;letter-spacing:.4px;margin-bottom:6px;}
.video-title{font-family:'Manrope',sans-serif;font-size:16.5px;font-weight:700;color:var(--navy);line-height:1.4;margin-bottom:6px;}
.video-meta{font-size:13.2px;color:var(--ink-soft);}

@media (max-width:1024px){ .video-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:600px){ .video-grid{grid-template-columns:1fr;} }

/* Video lightbox */
.video-lightbox{position:fixed;inset:0;background:rgba(0,0,0,0.94);z-index:9997;opacity:0;pointer-events:none;transition:opacity .25s;display:flex;align-items:center;justify-content:center;padding:24px;}
.video-lightbox.open{opacity:1;pointer-events:auto;}
.video-frame{width:min(960px, 100%);aspect-ratio:16/9;background:#000;border-radius:12px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,0.5);}
.video-frame iframe{width:100%;height:100%;border:0;}

/* ============ ABOUT  SUB-NAV STRIP ============ */
.sub-nav{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:64px;z-index:50;}
.sub-nav-inner{display:flex;gap:0;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:0;}
.sub-nav-inner::-webkit-scrollbar{display:none;}
.sub-link{padding:16px 22px;font-size:14.85px;font-weight:600;color:var(--ink-soft);white-space:nowrap;border-bottom:3px solid transparent;transition:all .2s;text-decoration:none;}
.sub-link:hover{color:var(--navy);}
.sub-link.active{color:var(--navy);border-bottom-color:var(--terracotta);}
.sub-link:focus-visible{outline:3px solid var(--terracotta);outline-offset:-3px;}

/* ============ BOARD / MANAGEMENT CARDS ============ */
.board-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
@media (max-width:1024px){ .board-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:600px){ .board-grid{grid-template-columns:1fr;} }
.board-card{background:#fff;border-radius:14px;overflow:hidden;box-shadow:var(--shadow-card);display:flex;flex-direction:column;transition:transform .25s, box-shadow .25s;}
.board-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover);}
.board-photo{aspect-ratio:4/3;background:linear-gradient(135deg, var(--navy-deep) 0%, var(--navy) 100%);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;}
.board-photo img{width:100%;height:100%;object-fit:cover;object-position:center 20%;position:absolute;inset:0;}
.board-photo img[alt]:after{content:attr(alt);position:absolute;inset:0;background:linear-gradient(135deg, var(--navy-deep) 0%, var(--navy) 100%);color:rgba(255,255,255,0.7);display:flex;align-items:center;justify-content:center;font-size:14.3px;font-family:'Manrope',sans-serif;text-align:center;padding:14px;}
.board-photo .placeholder{font-size:52.8px;color:rgba(255,255,255,0.25);}
.board-role-tag{position:absolute;top:14px;left:14px;background:rgba(255,255,255,0.92);backdrop-filter:blur(6px);font-size:10.5px;font-weight:700;color:var(--navy);padding:5px 11px;border-radius:6px;text-transform:uppercase;letter-spacing:.4px;}
.board-body{padding:22px 24px 24px;flex:1;display:flex;flex-direction:column;}
.board-name{font-family:'Manrope',sans-serif;font-size:19.8px;font-weight:800;color:var(--navy);margin-bottom:4px;}
.board-position{font-size:14.3px;color:var(--terracotta-deep);font-weight:600;margin-bottom:12px;}
.board-bio{font-size:var(--font-p-card);color:var(--ink-soft);line-height:var(--line-height-card);flex:1;}
.board-meta{margin-top:14px;display:flex;gap:14px;font-size:11.5px;color:var(--ink-soft);flex-wrap:wrap;}
.board-meta span{display:flex;align-items:center;gap:6px;}

body.hc .board-card,body.hc .video-card,body.hc .gal-item{border:2px solid #000;}

/* ============ PARTNERSHIPS ============ */
.partner-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
@media (max-width:760px){ .partner-grid{grid-template-columns:repeat(2,1fr);} }
.partner-tile{aspect-ratio:1.6/1;background:#fff;border:1.5px solid var(--line);border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:18px;transition:all .2s;cursor:default;}
.partner-tile:hover{border-color:var(--navy);box-shadow:var(--shadow-card);}
.partner-tile i{font-size:30px;color:var(--navy);}
.partner-tile .pt-name{font-family:'Manrope',sans-serif;font-size:14.3px;font-weight:700;color:var(--navy);line-height:1.3;}
.partner-tile .pt-type{font-size:10.5px;color:var(--ink-soft);font-weight:600;text-transform:uppercase;letter-spacing:.3px;}
body.hc .partner-tile{border:2px solid #000;}

.client-wordmarks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 36px;}
.client-wordmark{min-height:96px;padding:18px 16px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-card);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;}
.client-wordmark span{font-family:'Manrope',sans-serif;font-size:16px;font-weight:800;line-height:1.3;color:var(--navy);}
.client-wordmark small{margin-top:7px;color:var(--ink-soft);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;}
@media (max-width:900px){.client-wordmarks{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:480px){.client-wordmarks{grid-template-columns:1fr 1fr;gap:10px;}.client-wordmark{min-height:84px;padding:14px 10px;}.client-wordmark span{font-size:14px;}}

/* ============ DATA TABLE (contracts awarded, prequalification, past vacancies) ============ */
.data-table-wrap{background:#fff;border-radius:14px;box-shadow:var(--shadow-card);overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:14px;}
.data-table-wrap:focus-visible{outline:3px solid var(--terracotta);outline-offset:3px;}
.data-table{width:100%;border-collapse:collapse;font-size:14.85px;min-width:760px;}
.data-table caption{caption-side:top;text-align:left;padding:0 22px 12px;font-weight:700;color:var(--navy);}
.data-table thead th{background:var(--parchment-deep);color:var(--navy);font-family:'Manrope',sans-serif;font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;text-align:left;padding:14px 18px;border-bottom:2px solid var(--line-deep);position:sticky;top:0;}
.data-table thead th.num{text-align:right;}
.data-table tbody td{padding:14px 18px;border-bottom:1px solid var(--line);color:var(--ink);vertical-align:middle;}
.data-table tbody td.num{text-align:right;font-variant-numeric:tabular-nums;font-weight:700;color:var(--navy);font-family:'Manrope',sans-serif;}
.data-table tbody tr:hover{background:var(--parchment);}
.data-table tbody tr:last-child td{border-bottom:0;}
.td-ref{font-family:'Manrope',sans-serif;font-size:11.5px;font-weight:700;color:var(--ink-soft);letter-spacing:.3px;white-space:nowrap;}
.data-note{font-size:var(--font-p-sm);color:var(--ink-soft);margin-top:14px;padding:0 4px;line-height:var(--line-height-sm);}
.data-note a{color:var(--terracotta-deep);font-weight:600;text-decoration:underline;}
.status-pill{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;padding:4px 10px;border-radius:20px;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;}
.status-pill.filled{background:rgba(1,166,78,0.12);color:var(--green-deep);}
.status-pill.withdrawn{background:rgba(232,162,58,0.18);color:#8a5a00;}
.status-pill.cancelled{background:rgba(0,0,0,0.08);color:var(--ink-soft);}
body.hc .data-table-wrap{border:2px solid #000;}
body.hc .data-table thead th{background:#000 !important;color:#fff !important;}
body.hc .data-table tbody tr:hover{background:#f0f0f0 !important;}

/* ============ TENDER FILTER ENHANCEMENTS ============ */
.filter-clear{display:inline-flex;align-items:center;gap:6px;background:transparent;color:var(--terracotta-deep);border:1.5px solid var(--terracotta);padding:12px 18px;border-radius:11px;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;min-height:46px;transition:all .2s cubic-bezier(.2,.8,.3,1);white-space:nowrap;}
.filter-clear:hover{background:var(--terracotta);color:#fff;transform:translateY(-1px);}
.filter-clear:focus-visible{outline:3px solid var(--terracotta);outline-offset:3px;}

/* Quick "Closes within" filter chips + results count strip */
.filter-extra{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:18px 4px 0;flex-wrap:wrap;}
.quick-filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.qf-label{font-size:13.5px;color:var(--ink-soft);font-weight:600;text-transform:uppercase;letter-spacing:.4px;margin-right:4px;}
.quick-chip{font-size:14px;font-weight:600;color:var(--navy);background:#fff;border:1.5px solid var(--line-deep);padding:8px 16px;border-radius:20px;cursor:pointer;font-family:inherit;transition:all .2s cubic-bezier(.2,.8,.3,1);min-height:38px;}
.quick-chip:hover{border-color:var(--navy);transform:translateY(-1px);}
.quick-chip.active{background:var(--navy);border-color:var(--navy);color:#fff;box-shadow:0 2px 8px -2px rgba(1,166,78,0.4);}
.results-count{font-size:14.5px;color:var(--ink-soft);font-weight:500;}
.results-count strong{color:var(--navy);font-weight:800;font-family:'Manrope',sans-serif;}

/* Active filter chips bar */
.active-filters{display:flex;align-items:center;gap:14px;padding:14px 4px 0;flex-wrap:wrap;}
.af-label{font-size:13.5px;color:var(--ink-soft);font-weight:600;text-transform:uppercase;letter-spacing:.4px;}
.af-chips{display:flex;gap:8px;flex-wrap:wrap;}
.af-chip{display:inline-flex;align-items:center;gap:8px;background:rgba(1,166,78,0.1);color:var(--navy);border:1.5px solid rgba(1,166,78,0.3);padding:7px 14px;border-radius:20px;font-size:13.5px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .2s cubic-bezier(.2,.8,.3,1);}
.af-chip:hover{background:rgba(255,0,0,0.1);color:var(--terracotta-deep);border-color:var(--terracotta);transform:translateY(-1px);}
.af-chip:hover i{color:var(--terracotta-deep);}
.af-chip i{font-size:10px;color:var(--ink-soft);transition:color .15s;}
.af-chip:focus-visible{outline:3px solid var(--terracotta);outline-offset:3px;}

body.hc .quick-chip,body.hc .af-chip,body.hc .filter-clear{border:2px solid #000 !important;}
body.hc .quick-chip.active{background:#000 !important;color:#ff0 !important;}

@media (max-width:760px){
  .filter-extra{flex-direction:column;align-items:stretch;}
  .quick-filters{justify-content:flex-start;}
  .results-count{text-align:right;}
}

/* ============ ENTERPRISE  sub-services bullet list inside each service card ============ */
.ent-sub{list-style:none;padding:14px 0 12px;margin:14px 0 12px;display:flex;flex-direction:column;gap:9px;border-top:1px solid var(--line);}
.ent-sub li{font-size:var(--font-p-card);color:var(--ink-soft);line-height:var(--line-height-card);padding-left:18px;position:relative;}
.ent-sub li::before{content:"";position:absolute;left:2px;top:8px;width:6px;height:6px;border-radius:50%;background:var(--terracotta);}
.ent-sub li strong{color:var(--navy);font-weight:700;}
.std-card .ent-sub + .std-link{border-top:0;padding-top:0;}
body.hc .ent-sub li::before{background:#000 !important;}

/* ============ MILIMANI SYSTEMS  MODERN BENTO GRID ============ */
#icta-systems{background:linear-gradient(180deg, #fff 0%, var(--parchment) 100%);}

/* Header row: title left, filter pills right */
.sys-head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:32px;flex-wrap:wrap;}
.sys-head-left{max-width:560px;}
.sys-badge{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;background:rgba(1,166,78,0.08);color:var(--navy-deep);border:1px solid rgba(1,166,78,0.2);border-radius:100px;font-size:12.65px;font-weight:700;margin-bottom:16px;}
.sys-badge i{font-size:11px;}
.sys-title{font-family:'Manrope',sans-serif;font-size:39.6px;font-weight:800;color:var(--ink);line-height:1.15;letter-spacing:-0.02em;margin-bottom:12px;}
.sys-title .accent{background:linear-gradient(90deg, var(--navy) 0%, var(--terracotta) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;}
.sys-sub{font-size:var(--font-p);color:var(--ink-soft);line-height:var(--line-height-p);}
.sys-filters{display:flex;gap:6px;flex-wrap:wrap;}
.sys-chip{padding:9px 16px;font-size:12.65px;font-weight:600;color:var(--ink-soft);background:#fff;border:1.5px solid var(--line-deep);border-radius:100px;cursor:pointer;font-family:inherit;transition:all .15s;white-space:nowrap;}
.sys-chip:hover{border-color:var(--navy);color:var(--navy);}
.sys-chip.active{background:var(--navy);border-color:var(--navy);color:#fff;}
.sys-chip:focus-visible{outline:3px solid var(--terracotta);outline-offset:3px;}

/* The bento grid  4 columns desktop, asymmetric */
.bento-grid{display:grid;grid-template-columns:repeat(4, 1fr);grid-auto-rows:minmax(180px, auto);gap:16px;}
@media (max-width:1024px){ .bento-grid{grid-template-columns:repeat(2, 1fr);} }
@media (max-width:520px){ .bento-grid{grid-template-columns:1fr;} }


/* Base card */
.bento-card{position:relative;background:#fff;border:1.5px solid rgba(0,0,0,0.06);border-radius:24px;padding:24px;display:flex;flex-direction:column;justify-content:space-between;gap:16px;text-decoration:none;color:inherit;transition:transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s, border-color .35s;overflow:hidden;}
.bento-card::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg, rgba(1,166,78,0.03) 0%, transparent 60%);opacity:0;transition:opacity .35s;pointer-events:none;border-radius:24px;}
.bento-card:hover{transform:translateY(-5px);box-shadow:0 24px 48px -20px rgba(0,0,0,0.18);border-color:rgba(1,166,78,0.35);}
.bento-card:hover::before{opacity:1;}
.bento-card:focus-visible{outline:3px solid var(--terracotta);outline-offset:3px;}

/* Featured card  spans 2 cols Ã— 2 rows */
.bento-card.feat{grid-column:span 2;grid-row:span 2;background:linear-gradient(135deg, var(--navy) 0%, var(--navy-deep) 100%);color:#fff;border-color:transparent;padding:32px;}
.bento-card.feat::before{display:none;}
.bento-card.feat:hover{border-color:transparent;box-shadow:0 24px 48px -20px rgba(1,166,78,0.45);}
.bento-card.feat .bento-inner{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:space-between;gap:24px;height:100%;}
.bento-pattern{position:absolute;inset:0;background-image:radial-gradient(circle at 90% 10%, rgba(255,255,255,0.08) 0%, transparent 40%), radial-gradient(circle at 10% 90%, rgba(255,0,0,0.15) 0%, transparent 45%);opacity:1;pointer-events:none;}

/* Wide card  spans 2 cols Ã— 1 row */
.bento-card.wide{grid-column:span 2;}

/* Dark card variant (used on PKI wide card) */
.bento-card.dark{background:linear-gradient(135deg, var(--ink) 0%, #1a1a1a 100%);color:#fff;border-color:transparent;}
.bento-card.dark::before{display:none;}
.bento-card.dark:hover{border-color:transparent;box-shadow:0 20px 40px -18px rgba(0,0,0,0.5);}
.bento-card.dark .bento-inner{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:space-between;gap:16px;height:100%;}

/* Top row: icon + tag */
.bento-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;position:relative;z-index:2;}
.bento-icon{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg, var(--navy) 0%, var(--navy-deep) 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-size:19.8px;box-shadow:0 4px 12px -4px rgba(1,166,78,0.45);flex-shrink:0;}
.bento-icon.red{background:linear-gradient(135deg, var(--terracotta) 0%, var(--terracotta-deep) 100%);box-shadow:0 4px 12px -4px rgba(255,0,0,0.4);}
.bento-icon.lg{width:56px;height:56px;border-radius:15px;font-size:26.4px;}
.bento-icon.dark{background:rgba(255,255,255,0.12);box-shadow:0 4px 12px -4px rgba(0,0,0,0.3);backdrop-filter:blur(4px);}
.bento-card.feat .bento-icon.lg{background:rgba(255,255,255,0.15);backdrop-filter:blur(6px);box-shadow:none;}

.bento-tag{font-size:11px;font-weight:700;color:var(--ink-soft);background:rgba(0,0,0,0.05);padding:5px 10px;border-radius:6px;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;flex-shrink:0;}
.bento-tag.light{background:rgba(255,255,255,0.15);color:#fff;backdrop-filter:blur(4px);}
.bento-tag.dark{background:rgba(255,255,255,0.1);color:rgba(255,255,255,0.85);}

/* Body */
.bento-body{position:relative;z-index:2;flex:1;display:flex;flex-direction:column;gap:6px;}
.bento-eyebrow{font-size:11px;font-weight:700;color:rgba(255,255,255,0.75);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;}
.bento-name{font-family:'Manrope',sans-serif;font-size:18px;font-weight:800;color:var(--ink);line-height:1.25;letter-spacing:-0.01em;}
.bento-name.lg{font-size:25px;line-height:1.15;}
.bento-card.feat .bento-name,.bento-card.dark .bento-name{color:#fff;}
.bento-desc{font-size:var(--font-p-card);color:var(--ink-soft);line-height:var(--line-height-card);}
.bento-desc.dark{color:rgba(255,255,255,0.75);}
.bento-desc-lg{font-size:var(--font-p-card);color:rgba(255,255,255,0.85);line-height:var(--line-height-card);}

.trust-bento{padding:64px 0;background:linear-gradient(180deg,#f4f6f3 0%,#fff 100%);}
.trust-bento .sys-head{margin-bottom:18px;}
.trust-bento .sys-title{font-size:28px;color:var(--navy);letter-spacing:0;margin-bottom:8px;}
.trust-bento .sys-title .accent{background:none;color:var(--terracotta-deep);}
.trust-bento .sys-sub{max-width:680px;font-size:var(--font-p-card);}
.trust-bento .bento-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:auto;gap:0 30px;}
.trust-bento .bento-card{display:grid;grid-template-columns:40px minmax(0,1fr);align-content:start;gap:14px;background:transparent;border:0;border-top:1px solid var(--line);border-radius:0;padding:22px 0;box-shadow:none;overflow:visible;}
.trust-bento .bento-card::before{display:none;}
.trust-bento .bento-card:hover{transform:none;border-color:var(--line);box-shadow:none;}
.trust-bento .bento-top{display:block;}
.trust-bento .bento-icon{width:38px;height:38px;border-radius:10px;font-size:16px;box-shadow:none;}
.trust-bento .bento-tag{display:none;}
.trust-bento .bento-body{gap:5px;}
.trust-bento .bento-name{font-size:16px;color:var(--navy);letter-spacing:0;}
.trust-bento .bento-desc{font-size:var(--font-p-sm);line-height:var(--line-height-sm);}
.trust-bento .service-detail-link{grid-column:2;margin-top:4px;}
@media(max-width:900px){.trust-bento .bento-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px;}}
@media(max-width:560px){.trust-bento{padding:48px 0;}.trust-bento .bento-grid{grid-template-columns:1fr;}.trust-bento .sys-title{font-size:24px;}}

/* Feature list inside featured card */
.bento-features{list-style:none;padding:0;margin:12px 0 0;display:flex;flex-direction:column;gap:8px;}
.bento-features li{display:flex;align-items:center;gap:10px;font-size:var(--font-p-card);color:rgba(255,255,255,0.92);}
.bento-features li i{width:18px;height:18px;border-radius:50%;background:rgba(255,255,255,0.2);display:flex;align-items:center;justify-content:center;font-size:9px;flex-shrink:0;}

/* CTA/arrow */
.bento-cta{margin-top:auto;position:relative;z-index:2;}
.bento-btn{display:inline-flex;align-items:center;gap:8px;background:#fff;color:var(--navy);padding:11px 20px;border-radius:11px;font-size:13.2px;font-weight:700;transition:all .2s;box-shadow:0 4px 12px -4px rgba(0,0,0,0.2);}
.bento-card.feat:hover .bento-btn{background:var(--terracotta);color:#fff;transform:translateX(4px);}
.bento-btn i{transition:transform .2s;font-size:11px;}
.bento-arrow{position:absolute;bottom:22px;right:22px;width:34px;height:34px;border-radius:50%;background:var(--parchment-deep);color:var(--navy);display:flex;align-items:center;justify-content:center;font-size:12px;transition:all .3s cubic-bezier(.2,.8,.3,1);}
.bento-arrow.dark{background:rgba(255,255,255,0.15);color:#fff;position:static;}
.bento-arrow.ext{background:rgba(255,0,0,0.08);color:var(--terracotta-deep);}
.bento-card:hover .bento-arrow{background:var(--navy);color:#fff;transform:translate(4px,-4px);}
.bento-card.dark:hover .bento-arrow{background:var(--terracotta);color:#fff;transform:translateX(4px);}
.bento-card:hover .bento-arrow.ext{background:var(--terracotta);color:#fff;}

/* Empty state */
.sys-empty{text-align:center;padding:60px 20px;color:var(--ink-soft);font-size:15.4px;background:#fff;border:1.5px dashed var(--line-deep);border-radius:20px;margin-top:20px;}
.sys-empty i{margin-right:8px;color:var(--terracotta);}

/* Hidden state during filtering */
.bento-card.hidden{display:none;}

/* Mobile: featured & wide collapse to full width */
@media (max-width:1024px){
  .bento-card.feat{grid-column:span 2;grid-row:auto;}
  .bento-card.wide{grid-column:span 2;}
  .sys-head{align-items:flex-start;}
  .sys-title{font-size:33px;}
}
@media (max-width:520px){
  .bento-card.feat,.bento-card.wide{grid-column:span 1;}
  .sys-title{font-size:26.4px;}
  .sys-filters{width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px;-webkit-overflow-scrolling:touch;}
  .sys-filters::-webkit-scrollbar{display:none;}
  .bento-card.feat{padding:22px;}
}

/* High-contrast */
body.hc .bento-card{border:2px solid #000;}
body.hc .bento-card.feat,body.hc .bento-card.dark{border:2px solid #ff0 !important;}
body.hc .sys-chip{border:2px solid #000;}
body.hc .sys-chip.active{background:#000 !important;color:#ff0 !important;}


#trust {
  margin-bottom: 60px;
}


/* ============ MILIMANI COSTING ENGINE — PHASE 5 ============ */

/* ---------- HERO ---------- */
.costing-hero {
  background: #ffffff;
  padding: 60px 0 56px;
  position: relative;
  overflow: hidden;
}
.costing-hero::before {
  content: '';
  position: absolute;
  right: -80px; top: -120px;
  width: 420px; height: 420px;
  border-radius: 50%;
 
  pointer-events: none;
}
.costing-hero::after {
  content: '';
  position: absolute;
  left: -60px; bottom: -100px;
  width: 300px; height: 300px;
  border-radius: 50%;
 
  pointer-events: none;
}
.costing-hero-inner {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 48px;
  align-items: center;
  position: relative;
  z-index: 2;
}
.costing-hero-text h1 {
  font-size: 40px;
  font-weight: 800;
  color:  var(--navy);
  line-height: 1.14;
  letter-spacing: -.6px;
  margin-bottom: 14px;
}
.costing-hero-text p {
  font-size: var(--font-p);
  color: #333333;
  line-height: var(--line-height-p);
  max-width: 580px;
  margin-bottom: 28px;
}
.costing-hero-stats {
  display: flex;
  align-items: center;
  gap: 0;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.14);
  border-radius: 14px;
  padding: 4px;
  flex-wrap: wrap;
}
.ches-item {
  padding: 14px 22px;
  text-align: center;
  flex: 1;
}
.ches-item strong {
  display: block;
  font-family: 'Manrope', sans-serif;
  font-size: 17px;
  font-weight: 800;
  color:  var(--navy);
  margin-bottom: 4px;
}
.ches-item span {
  font-size: 11px;
  color: #333333;
  font-weight: 600;
  letter-spacing: .3px;
}
.ches-divider {
  width: 1px;
  height: 40px;
  background: rgba(255,255,255,0.2);
  flex-shrink: 0;
}
.costing-cta-card {
  background: #fff;
  border-radius: 16px;
  padding: 28px 24px;
  min-width: 240px;
  box-shadow: 0 20px 50px -15px rgba(0,0,0,0.3);
  text-align: center;
}
.ccc-top {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(255,0,0,0.08);
  color: var(--terracotta-deep);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .6px;
  padding: 6px 13px;
  border-radius: 20px;
  margin-bottom: 14px;
}
.costing-cta-card p {
  font-size: var(--font-p-card);
  color: var(--ink-soft);
  line-height: var(--line-height-card);
  margin-bottom: 18px;
}
.costing-cta-card .btn-submit {
  width: 100%;
  justify-content: center;
}

/* ---------- LAYOUT ---------- */
.costing-calc-section { background: var(--parchment); }
.costing-page { background: var(--parchment); }
.costing-layout {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 36px;
  align-items: start;
}
.costing-main { min-width: 0; }
.costing-title {
  font-family: 'Manrope', sans-serif;
  font-size: 26px;
  font-weight: 800;
  color: var(--navy);
  margin-bottom: 10px;
  letter-spacing: -.3px;
}
.costing-intro {
  font-size: var(--font-p);
  color: var(--ink-soft);
  line-height: var(--line-height-p);
  margin-bottom: 28px;
}

/* ---------- STEP PROGRESS NAV ---------- */
.calc-steps {
  display: flex;
  align-items: center;
  gap: 0;
  margin-bottom: 28px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 12px 18px;
}
.calc-step {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  opacity: .4;
  transition: opacity .25s;
}
.calc-step.active, .calc-step.done { opacity: 1; }
.cs-num {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--line);
  color: var(--ink-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Manrope', sans-serif;
  font-size: 12px;
  font-weight: 800;
  flex-shrink: 0;
  transition: background .25s, color .25s;
}
.calc-step.active .cs-num { background: var(--navy); color: #fff; }
.calc-step.done .cs-num { background: var(--terracotta); color: #fff; }
.cs-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--ink-soft);
  white-space: nowrap;
}
.calc-step.active .cs-label, .calc-step.done .cs-label { color: var(--navy); }
.calc-step-line {
  flex: 0 0 28px;
  height: 1.5px;
  background: var(--line-deep);
  margin: 0 4px;
}

/* ---------- PANELS ---------- */
.calc-panel {
  background: #fff;
  border-radius: var(--radius);
  padding: 32px;
  box-shadow: var(--shadow-card);
  border: 1.5px solid var(--line);
  display: none;
}
.calc-panel.active { display: block; }

/* ---------- CALCULATOR FORM ---------- */
.cost-calculator-form { margin-top: 24px; }
.cost-input-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
.form-label {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 13.2px;
  font-weight: 700;
  color: var(--navy);
}
.form-label .fa-fw { color: var(--terracotta-deep); font-size: 12px; }
.req { color: var(--terracotta-deep); }
.select-wrap { position: relative; }
.select-wrap select.form-control {
  appearance: none;
  padding-right: 36px;
  cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%234d4d4d'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
}

/* Demand guide */
.demand-guide {
  margin-top: 6px;
  font-size: 12px;
  color: var(--ink-soft);
  line-height: 1.5;
}
.dg-item { display: block; }
.dg-item i { color: var(--terracotta-deep); margin-right: 4px; }

/* Depth slider */
.depth-input-wrap { display: flex; flex-direction: column; gap: 10px; }
.depth-slider-row { display: flex; align-items: center; gap: 10px; }
.depth-range {
  flex: 1;
  accent-color: var(--navy);
  cursor: pointer;
}
.depth-range-val {
  font-size: 12px;
  font-weight: 700;
  color: var(--navy);
  min-width: 44px;
  text-align: right;
}

/* Hint + error text */
.field-hint {
  font-size: 12px;
  color: var(--ink-soft);
  line-height: 1.5;
  margin-top: 4px;
}
.field-error {
  font-size: 12px;
  color: #c0392b;
  margin-top: 4px;
  font-weight: 600;
}
.field-error::before { content: '⚠ '; }

/* Drilling preview pill */
.drilling-preview {
  margin-top: 20px;
  background: rgba(38,37,236,0.06);
  border: 1.5px solid rgba(38,37,236,0.15);
  border-radius: 12px;
  padding: 14px 18px;
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
.dp-label {
  font-size: 12px;
  font-weight: 700;
  color: var(--navy);
  text-transform: uppercase;
  letter-spacing: .4px;
  white-space: nowrap;
}
.dp-label i { color: var(--terracotta-deep); margin-right: 4px; }
.dp-range {
  font-family: 'Manrope', sans-serif;
  font-size: 18px;
  font-weight: 800;
  color: var(--navy);
}
.dp-basis { font-size: 12px; color: var(--ink-soft); }

.cost-calculate-button {
  margin-top: 22px;
  width: 100%;
  justify-content: center;
  cursor: pointer;
  border: 0;
  font-family: inherit;
  font-size: 15.4px;
  min-height: 50px;
}

/* ---------- STEP 2: LEAD GATE ---------- */
.lead-gate-heading {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 22px;
}
.lg-icon {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  background: rgba(255,0,0,0.1);
  color: var(--terracotta-deep);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  flex-shrink: 0;
}
.lead-gate-heading h2 {
  font-size: 22px;
  font-weight: 800;
  color: var(--navy);
  margin-bottom: 6px;
}
.lead-gate-heading p { font-size: var(--font-p-card); color: var(--ink-soft); line-height: var(--line-height-card); }

/* Teaser summary box */
.estimate-teaser {
  background: var(--parchment);
  border: 1.5px solid var(--line);
  border-radius: 12px;
  padding: 16px 20px;
  margin-bottom: 22px;
}
.et-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px dashed var(--line);
  font-size: 14px;
}
.et-row:last-child { border-bottom: 0; }
.et-label { font-weight: 700; color: var(--navy); min-width: 120px; }
.et-value { color: var(--ink-soft); }
.et-highlight {
  color: var(--ink-soft);
  display: flex;
  align-items: center;
  gap: 6px;
}
.et-highlight i { color: var(--terracotta-deep); }

/* Lead form */
.cost-lead-fields {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 16px;
  margin-bottom: 18px;
}
.cost-consent {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: 13px;
  color: var(--ink-soft);
  line-height: 1.55;
  cursor: pointer;
  margin-bottom: 18px;
}
.cost-consent input {
  margin-top: 3px;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  accent-color: var(--terracotta);
}
.cost-lead-error {
  background: rgba(192,57,43,0.08);
  border: 1.5px solid rgba(192,57,43,0.25);
  color: #c0392b;
  padding: 12px 16px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 14px;
}
.lead-form-actions {
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
}
.btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: transparent;
  color: var(--navy);
  border: 1.5px solid var(--line-deep);
  padding: 12px 22px;
  border-radius: 11px;
  font-size: 14.85px;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  transition: all .2s;
}
.btn-outline:hover { border-color: var(--navy); background: var(--parchment); }

/* ---------- STEP 3: ESTIMATE REPORT ---------- */
.cost-quote-success {
  display: flex;
  align-items: center;
  gap: 10px;
  background: rgba(38,37,236,0.06);
  border: 1.5px solid rgba(38,37,236,0.18);
  color: var(--navy);
  padding: 14px 18px;
  border-radius: 12px;
  font-size: 15px;
  font-weight: 600;
  margin-bottom: 22px;
}
.cost-quote-success i { color: var(--navy); font-size: 18px; }
.cost-report-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 18px;
  margin-bottom: 10px;
  flex-wrap: wrap;
}
.cost-report-header h2 {
  font-size: 22px;
  font-weight: 800;
  color: var(--navy);
  margin-bottom: 4px;
}
.cost-total-badge {
  background: var(--navy);
  color: #fff;
  font-family: 'Manrope', sans-serif;
  font-size: 18px;
  font-weight: 800;
  padding: 12px 20px;
  border-radius: 12px;
  white-space: nowrap;
}
.cost-report-profile {
  font-size: 13.5px;
  color: var(--ink-soft);
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1.5px dashed var(--line);
}

/* Summary cards */
.report-summary-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 24px;
}
.rsc-card {
  background: var(--parchment);
  border: 1.5px solid var(--line);
  border-radius: 12px;
  padding: 18px 20px;
}
.rsc-card--primary {
  background: var(--navy);
  border-color: var(--navy);
}
.rsc-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: var(--ink-soft);
  margin-bottom: 8px;
}
.rsc-card--primary .rsc-label { color: rgba(255,255,255,0.65); }
.rsc-value {
  font-family: 'Manrope', sans-serif;
  font-size: 20px;
  font-weight: 800;
  color: var(--navy);
  line-height: 1.2;
  margin-bottom: 6px;
}
.rsc-card--primary .rsc-value { color: #fff; }
.rsc-basis { font-size: 11.5px; color: var(--ink-soft); line-height: 1.5; }
.rsc-card--primary .rsc-basis { color: rgba(255,255,255,0.6); }

/* Breakdown table */
.breakdown-table-heading {
  font-family: 'Manrope', sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 12px;
}
.cost-table-wrap { overflow-x: auto; margin-bottom: 20px; }
.cost-breakdown-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13.5px;
  min-width: 560px;
}
.cost-breakdown-table thead th {
  background: var(--parchment-deep);
  color: var(--navy);
  font-family: 'Manrope', sans-serif;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .5px;
  text-align: left;
  padding: 11px 14px;
  border-bottom: 2px solid var(--line-deep);
}
.cost-breakdown-table tbody td {
  padding: 12px 14px;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  vertical-align: top;
  line-height: 1.55;
}
.cost-breakdown-table tbody td:first-child { font-weight: 700; color: var(--navy); white-space: nowrap; }
.cost-breakdown-table tbody td:nth-child(2) { font-weight: 600; }
.cost-breakdown-table tbody tr.row-highlight { background: rgba(38,37,236,0.04); }
.cost-breakdown-table tbody tr:last-child td { border-bottom: 0; }

/* Report note */
.cost-report-note {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: rgba(232,162,58,0.1);
  border: 1.5px solid rgba(232,162,58,0.3);
  border-radius: 12px;
  padding: 16px 18px;
  margin-bottom: 22px;
}
.cost-report-note i { color: #b5790f; font-size: 17px; flex-shrink: 0; margin-top: 2px; }
.cost-report-note p { font-size: var(--font-p-sm); color: var(--ink-soft); line-height: var(--line-height-sm); margin: 0; }
.report-actions { display: flex; gap: 12px; flex-wrap: wrap; }

/* ---------- SIDEBAR ---------- */
.costing-sidebar { display: flex; flex-direction: column; gap: 20px; position: sticky; top: 80px; }
.sidebar-card {
  background: #fff;
  border: 1.5px solid var(--line);
  border-radius: var(--radius-sm);
  padding: 24px 22px;
  box-shadow: var(--shadow-card);
}
.sidebar-card--cta { background: #fff; border-color: #131376; }
.sidebar-card--cta h3 { color: #131376; }
.sidebar-card--cta p { color: var(--ink-soft); }
.sidebar-card--cta .btn-submit { width: 100%; justify-content: center; }
.sc-icon {
  width: 42px;
  height: 42px;
  border-radius: 11px;
  background: rgba(38,37,236,0.08);
  color: var(--navy);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  margin-bottom: 14px;
}
.sc-icon--white { background: rgba(255,255,255,0.15); color: #fff; }
.sc-icon--gold { background: rgba(232,162,58,0.15); color: #b5790f; }
.sidebar-card h3 {
  font-family: 'Manrope', sans-serif;
  font-size: 15px;
  font-weight: 800;
  color: var(--navy);
  margin-bottom: 12px;
}
.sidebar-card p { font-size: var(--font-p-card); color: var(--ink-soft); line-height: var(--line-height-card); margin-bottom: 14px; }
.sc-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 16px;
}
.sc-list li {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 13.2px;
  color: var(--ink-soft);
  line-height: 1.5;
}
.sc-list li i { color: var(--navy); font-size: 10px; flex-shrink: 0; }
.sc-list--plain li i { color: var(--terracotta-deep); }
.sc-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 13.2px;
  font-weight: 700;
  color: var(--navy);
  border-bottom: 1.5px solid var(--line-deep);
  padding-bottom: 2px;
  transition: border-color .15s, color .15s;
}
.sc-link:hover { color: var(--terracotta-deep); border-color: var(--terracotta); }

/* ---------- COST BREAKDOWN TABLES SECTION ---------- */
.costing-tables-section { background: #fff; }
.section-head-centre {
  text-align: center;
  max-width: 680px;
  margin: 0 auto 48px;
}
.section-head-centre h2 {
  font-family: 'Manrope', sans-serif;
  font-size: 32px;
  font-weight: 800;
  color: var(--navy);
  letter-spacing: -.4px;
  margin-bottom: 14px;
}
.section-head-centre p { font-size: var(--font-p); color: var(--ink-soft); line-height: var(--line-height-p); }

.cost-components-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-bottom: 48px;
}
.cost-component-card {
  background: var(--parchment);
  border: 1.5px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  transition: box-shadow .25s, transform .25s;
}
.cost-component-card:hover { box-shadow: var(--shadow-hover); transform: translateY(-3px); }
.cc-header {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px 22px 16px;
  background: #fff;
  border-bottom: 1.5px solid var(--line);
}
.cc-icon {
  width: 46px;
  height: 46px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  flex-shrink: 0;
}
.cc-icon--blue   { background: rgba(38,37,236,0.1);  color: var(--navy); }
.cc-icon--red    { background: rgba(255,0,0,0.1);    color: var(--terracotta-deep); }
.cc-icon--teal   { background: rgba(0,128,128,0.1);  color: teal; }
.cc-icon--navy   { background: rgba(19,19,118,0.1);  color: var(--navy-deep); }
.cc-icon--gold   { background: rgba(232,162,58,0.15); color: #b5790f; }
.cc-icon--green  { background: rgba(38,37,236,0.1);  color: var(--navy); }
.cc-step {
  font-size: 10px;
  font-weight: 700;
  color: var(--terracotta-deep);
  text-transform: uppercase;
  letter-spacing: .5px;
  margin-bottom: 4px;
}
.cc-header h3 {
  font-family: 'Manrope', sans-serif;
  font-size: 17px;
  font-weight: 800;
  color: var(--navy);
  line-height: 1.3;
  margin: 0;
}
.cc-body { padding: 20px 22px 22px; }
.cc-body > p {
  font-size: var(--font-p-card);
  color: var(--ink-soft);
  line-height: var(--line-height-card);
  margin-bottom: 16px;
}
.cc-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.cc-table--mt { margin-top: 14px; }
.cc-table thead th {
  background: rgba(38,37,236,0.05);
  color: var(--navy);
  font-size: 10.5px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .4px;
  text-align: left;
  padding: 9px 12px;
  border-bottom: 1.5px solid var(--line-deep);
}
.cc-table tbody td {
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  vertical-align: middle;
  line-height: 1.5;
}
.cc-table tbody td:not(:first-child) { font-weight: 600; color: var(--navy); }
.cc-table tbody tr:last-child td { border-bottom: 0; }
.cc-table tbody tr:hover { background: rgba(38,37,236,0.03); }
.cc-note {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  background: rgba(232,162,58,0.08);
  border-left: 3px solid var(--gold);
  border-radius: 0 8px 8px 0;
  padding: 10px 13px;
  margin-top: 14px;
  font-size: 12.5px;
  color: var(--ink-soft);
  line-height: 1.6;
}
.cc-note i { color: #b5790f; flex-shrink: 0; margin-top: 2px; font-size: 13px; }

/* Total cost summary */
.total-cost-summary {
  background: var(--parchment-deep);
  border: 1.5px solid var(--line);
  border-radius: var(--radius);
  padding: 28px 30px;
}
.total-cost-summary h3 {
  font-family: 'Manrope', sans-serif;
  font-size: 18px;
  font-weight: 800;
  color: var(--navy);
  margin-bottom: 18px;
}
.tcs-table-wrap { overflow-x: auto; margin-bottom: 14px; }
.tcs-table { min-width: 680px; }
.tcs-table thead th { background: var(--navy); color: #fff; }
.tcs-note {
  font-size: var(--font-p-sm);
  color: var(--ink-soft);
  line-height: var(--line-height-sm);
}
.tcs-note a { color: var(--terracotta-deep); font-weight: 600; text-decoration: underline; }

/* ---------- COUNTY DEPTH GUIDE ---------- */
/* ---------- COUNTY DEPTH GUIDE ---------- */
.costing-county-section { background: var(--parchment); }
.county-reference-box {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-card);
  overflow: hidden;
}
.cr-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 18px 24px;
  background: #fafaf7;
  border-bottom: 1px solid var(--line);
  gap: 20px;
  flex-wrap: wrap;
}
.cr-search-wrap {
  position: relative;
  flex: 1 1 300px;
  max-width: 440px;
}
.cr-search-wrap i {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--ink-soft);
  font-size: 14px;
  pointer-events: none;
}
.cr-search-input {
  width: 100%;
  padding: 10px 14px 10px 38px;
  border: 1.5px solid var(--line);
  border-radius: 999px;
  font-size: 13.5px;
  font-family: inherit;
  color: var(--ink);
  background: #fff;
  transition: border-color .2s, box-shadow .2s;
}
.cr-search-input:focus {
  outline: none;
  border-color: var(--navy);
  box-shadow: 0 0 0 3px rgba(38,37,236,0.1);
}
.cr-filter-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.cr-filter-label {
  font-size: 12.5px;
  font-weight: 700;
  color: var(--ink-soft);
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.cr-pills {
  display: inline-flex;
  gap: 6px;
  flex-wrap: wrap;
}
.cr-pill {
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink-soft);
  font-size: 12px;
  font-weight: 600;
  padding: 6px 13px;
  border-radius: 999px;
  cursor: pointer;
  transition: all .2s ease;
}
.cr-pill:hover {
  border-color: var(--navy);
  color: var(--navy);
}
.cr-pill.active {
  background: var(--navy-deep);
  border-color: var(--navy-deep);
  color: #fff;
}
.cr-table-wrap {
  max-height: 480px;
  overflow-y: auto;
  position: relative;
}
.cr-table {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
}
.cr-table thead th {
  position: sticky;
  top: 0;
  background: #f1f1eb;
  padding: 12px 20px;
  font-size: 12px;
  font-weight: 800;
  color: var(--navy-deep);
  text-transform: uppercase;
  letter-spacing: .05em;
  border-bottom: 2px solid var(--line);
  z-index: 2;
}
.cr-row {
  border-bottom: 1px solid var(--line);
  transition: background .15s ease;
}
.cr-row:hover {
  background: #f8f9fe;
}
.cr-row td {
  padding: 12px 20px;
  vertical-align: middle;
}
.cr-county-title {
  font-family: 'Manrope', sans-serif;
  font-weight: 800;
  font-size: 14.5px;
  color: var(--navy);
}
.cr-depth-badge {
  display: inline-block;
  background: rgba(255,0,0,0.08);
  color: var(--terracotta-deep);
  font-weight: 700;
  font-size: 13px;
  padding: 4px 10px;
  border-radius: 6px;
  white-space: nowrap;
}
.cr-geo-text {
  font-size: var(--font-p-sm);
  color: var(--ink-soft);
  line-height: var(--line-height-sm);
}
.cr-use-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: transparent;
  color: var(--navy);
  font-size: 12px;
  font-weight: 700;
  padding: 6px 12px;
  border-radius: 6px;
  border: 1px solid rgba(38,37,236,0.3);
  cursor: pointer;
  transition: all .2s ease;
  white-space: nowrap;
}
.cr-use-btn:hover {
  background: var(--navy);
  color: #fff;
  border-color: var(--navy);
}
.cr-empty-state {
  padding: 48px 24px;
  text-align: center;
  color: var(--ink-soft);
}
.cr-empty-state i {
  font-size: 32px;
  color: var(--line-deep);
  margin-bottom: 12px;
  display: block;
}
.cr-footer-note {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 24px;
  background: #fbfbf9;
  border-top: 1px solid var(--line);
  font-size: var(--font-p-sm);
  color: var(--ink-soft);
  line-height: var(--line-height-sm);
}
.cr-footer-note i {
  color: var(--navy);
  font-size: 14px;
  flex-shrink: 0;
}
@media (max-width: 760px) {
  .cr-toolbar { padding: 14px 16px; flex-direction: column; align-items: stretch; }
  .cr-search-wrap { max-width: 100%; flex: 1 1 100%; }
  .cr-table thead th, .cr-row td { padding: 10px 12px; }
  .cr-col-geo { display: none; }
}

/* ---------- COMPACT CTA STRIP (Standard site-wide) ---------- */
.costing-cta-strip,
.compact-cta-strip {
  background: linear-gradient(120deg, #0a0a5c 0%, #131376 45%, #0f2a5c 100%);
  padding: 42px 0;
  width: 100%;
}
.cta-strip-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 28px;
  flex-wrap: wrap;
}
.cta-strip-text {
  max-width: 650px;
}
.cta-strip-text h2,
.cta-strip-text h3,
.cta-strip-text h4 {
  font-size: 26px;
  font-weight: 800;
  color: #fff;
  margin-bottom: 8px;
  line-height: 1.25;
}
.cta-strip-text p {
  font-size: 14.5px;
  color: rgba(255,255,255,0.78);
  max-width: 580px;
  line-height: 1.55;
  margin: 0;
}
.cta-strip-actions {
  display: flex;
  gap: 12px;
  flex-shrink: 0;
  flex-wrap: wrap;
  align-items: center;
}
.cta-strip-actions .btn-submit {
  background: #ff0000;
  color: #fff;
  padding: 13px 26px;
  border-radius: 10px;
  font-size: 14.5px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: all .2s;
  text-decoration: none;
  border: none;
  cursor: pointer;
}
.cta-strip-actions .btn-submit:hover {
  background: #cc0000;
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(255,0,0,0.35);
}
.cta-strip-actions .btn-outline-light {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(255,255,255,0.1);
  color: #fff;
  border: 1.5px solid rgba(255,255,255,0.3);
  padding: 12px 22px;
  border-radius: 10px;
  font-size: 14.5px;
  font-weight: 700;
  transition: all .2s;
  text-decoration: none;
}
.cta-strip-actions .btn-outline-light:hover {
  background: rgba(255,255,255,0.22);
  border-color: rgba(255,255,255,0.5);
  transform: translateY(-2px);
}
@media (max-width: 760px) {
  .costing-cta-strip,
  .compact-cta-strip {
    padding: 32px 0;
  }
  .cta-strip-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 18px;
  }
  .cta-strip-actions {
    width: 100%;
    flex-direction: column;
  }
  .cta-strip-actions .btn-submit,
  .cta-strip-actions .btn-outline-light {
    width: 100%;
    justify-content: center;
  }
}

/* ---------- RESPONSIVE ---------- */
@media (max-width: 1100px) {
  .county-depth-grid { grid-template-columns: repeat(4, 1fr); }
  .costing-hero-inner { grid-template-columns: 1fr; }
  .costing-hero-cta-wrap { display: none; }
}
@media (max-width: 960px) {
  .costing-layout { grid-template-columns: 1fr; }
  .costing-sidebar { position: static; flex-direction: row; flex-wrap: wrap; }
  .sidebar-card { flex: 1 1 220px; }
  .cost-components-grid { grid-template-columns: 1fr; }
  .county-depth-grid { grid-template-columns: repeat(3, 1fr); }
  .costing-hero-text h1 { font-size: 30px; }
  .report-summary-cards { grid-template-columns: 1fr; }
  .cost-lead-fields { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .cost-input-grid { grid-template-columns: 1fr; }
  .calc-steps { padding: 10px 12px; gap: 16px; justify-content: center; }
  .cs-label { display: none; }
  .calc-panel { padding: 22px 18px; }
  .county-depth-grid { grid-template-columns: repeat(2, 1fr); }
  .costing-hero { padding: 40px 0; }
  .costing-hero-stats { flex-direction: column; }
  .ches-divider { width: 80%; height: 1px; }
  .section-head-centre h2 { font-size: 24px; }
  .cta-strip-inner { flex-direction: column; align-items: flex-start; }
  .lead-gate-heading { flex-direction: column; gap: 10px; }
  .calc-step-line { display: none; }
  .lead-form-actions { flex-direction: column-reverse; gap: 10px; width: 100%; }
  .lead-form-actions button { width: 100%; justify-content: center; }
  .report-actions { flex-direction: column; gap: 10px; width: 100%; }
  .report-actions a, .report-actions button { width: 100%; justify-content: center; text-align: center; }
  .cost-report-header { flex-direction: column; align-items: stretch; gap: 12px; }
  .cost-total-badge { width: 100%; text-align: center; font-size: 16px; padding: 10px 16px; }
  .et-row { flex-wrap: wrap; gap: 4px 10px; }
  .et-label { min-width: 100px; }
}
@media (max-width: 480px) {
  .county-depth-grid { grid-template-columns: 1fr 1fr; }
  .report-summary-cards { grid-template-columns: 1fr; }
  .cost-components-grid { gap: 16px; }
  .cc-table { font-size: 12px; }
}

/* High contrast */
body.hc .calc-panel,
body.hc .cost-component-card,
body.hc .sidebar-card,
body.hc .county-depth-card { border: 2px solid #000 !important; box-shadow: none !important; }
body.hc .costing-hero,
body.hc .costing-cta-strip { background: #000 !important; }
body.hc .cost-total-badge { background: #000 !important; color: #ff0 !important; border: 2px solid #ff0; }

/* ===== MILIMANI — COMPLETE MOBILE FIX (≤480px) ===== */
@media (max-width: 480px) {

  /* --- GLOBAL OVERFLOW & TYPOGRAPHY FIX --- */
  html, body {
    overflow-x: hidden !important;
  }

  h1, h2, h3, h4, .htitle, .stitle, .pb-title {
    overflow-wrap: break-word !important;
    word-break: break-word !important;
  }

  /* Reduce container padding so content fits */
  .container {
    padding: 0 16px !important;
    max-width: 100% !important;
  }

  /* --- TOPBAR & NAVBAR MOBILE OPTIMIZATIONS --- */
  .topbar-right {
    display: none !important;
  }

  .topbar .container {
    justify-content: center !important;
    text-align: center !important;
    padding: 6px 14px !important;
  }

  .topbar-left {
    justify-content: center !important;
    font-size: 11px !important;
    gap: 12px !important;
  }

  .nav-cta {
    padding: 6px 12px !important;
    font-size: 12px !important;
    margin-left: 6px !important;
  }

  /* --- PAGE-BANNER DECOR FIX --- */
  .page-banner::before,
  .page-banner::after {
    display: none !important;
  }

  .page-banner {
    padding: 28px 0 26px !important;
  }

  .pb-title {
    font-size: 24px !important;
    line-height: 1.25 !important;
  }

  .pb-desc {
    font-size: 14px !important;
    line-height: 1.6 !important;
  }

  /* --- CAROUSEL FIX --- */
  .carousel-track {
    overflow-x: auto !important;
    max-width: 100% !important;
    -webkit-overflow-scrolling: touch;
  }

  /* --- PROJECT & TENDER CARDS --- */
  .proj-card,
  .tender-card {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    border-radius: 14px !important;
  }

  .proj-body {
    padding: 20px 18px 22px !important;
  }

  .proj-title {
    font-size: 18px !important;
  }

  .proj-desc {
    min-height: auto !important;
    font-size: 14px !important;
    line-height: 1.6 !important;
    margin-bottom: 14px !important;
  }

  .proj-footer {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 12px !important;
  }

  .proj-cta {
    width: 100% !important;
    justify-content: center !important;
    text-align: center !important;
  }

  /* --- GRID COLLAPSE (ALL SECTIONS) --- */
  .pillars-grid,
  .news-grid,
  .team-grid,
  .steps-grid,
  .prog-grid,
  .about-grid,
  .proj-grid-static,
  .tender-grid-static,
  .contact-grid,
  .testimonial-grid,
  .trust-grid,
  .trust-strip,
  .solutions-grid {
    grid-template-columns: 1fr !important;
  }

  /* --- TESTIMONIALS MOBILE FIX --- */
  .testimonial-grid {
    gap: 16px !important;
  }

  .testimonial-card {
    padding: 20px 18px !important;
    border-radius: 14px !important;
    box-shadow: 0 2px 10px rgba(0,0,0,0.15) !important;
  }

  .testimonial-stars {
    margin-bottom: 12px !important;
    font-size: 13px !important;
    gap: 4px !important;
  }

  .testimonial-card p {
    font-size: 14px !important;
    line-height: 1.65 !important;
    margin: 0 0 16px !important;
  }

  .testimonial-author strong {
    font-size: 14.5px !important;
  }

  .testimonial-author span {
    font-size: 12px !important;
  }

  /* --- HERO (MOBILE VIEWPORT & SLIDES) --- */
  .hero {
    height: auto !important;
    min-height: 590px !important;
    overflow: hidden !important;
  }

  .hslide-img {
    transform: none !important;
    animation: none !important;
    object-position: center !important;
  }

  .hslide-overlay {
    background: linear-gradient(
      180deg,
      rgba(0,0,0,0.88) 0%,
      rgba(0,0,0,0.8) 55%,
      rgba(0,0,0,0.92) 100%
    ) !important;
  }

  .hslide-content {
    padding: 32px 16px 36px !important;
    max-width: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    height: 100% !important;
  }

  .hslide-inner {
    max-width: 100% !important;
    width: 100% !important;
  }

  .htag {
    font-size: 10.5px !important;
    padding: 5px 12px !important;
    margin-bottom: 12px !important;
    white-space: normal !important;
    text-align: left !important;
    display: inline-flex !important;
    line-height: 1.35 !important;
  }

  .htitle {
    font-size: 24px !important;
    line-height: 1.25 !important;
    margin-bottom: 12px !important;
    letter-spacing: -0.4px !important;
  }

  .hdesc {
    font-size: 14px !important;
    line-height: 1.55 !important;
    margin-bottom: 20px !important;
    max-width: 100% !important;
  }

  .hbtns {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 8px !important;
    width: 100% !important;
    margin-bottom: 0 !important;
  }

  .hbtn-primary,
  .hbtn-secondary {
    width: 100% !important;
    justify-content: center !important;
    text-align: center !important;
    padding: 12px 18px !important;
    font-size: 14px !important;
    min-height: 46px !important;
    border-radius: 10px !important;
  }

  .hctrls {
    display: none !important;
  }

  /* --- ABOUT SECTION --- */
  .about-media {
    height: 280px !important;
    border-radius: 14px !important;
  }

  .about-media-badge {
    bottom: 12px !important;
    left: 12px !important;
    right: 12px !important;
    padding: 12px 14px !important;
    gap: 10px !important;
    border-radius: 10px !important;
  }

  .amb-icon {
    width: 38px !important;
    height: 38px !important;
    font-size: 17px !important;
  }

  .amb-text .t1 {
    font-size: 13px !important;
    line-height: 1.3 !important;
  }

  .amb-text .t2 {
    font-size: 11px !important;
    line-height: 1.35 !important;
  }

  .about-point {
    padding: 8px 0 !important;
  }

  /* --- SOLUTIONS SECTION --- */
  .solutions-grid {
    gap: 16px !important;
  }

  .sol-card {
    padding: 22px 18px 20px !important;
    border-radius: 12px !important;
  }

  /* --- CONTACT & FORMS --- */
  .contact-grid {
    display: block !important;
    width: 100% !important;
  }

  .form-card {
    padding: 20px 16px !important;
    border-radius: 14px !important;
    margin-top: 16px !important;
  }

  .form-row {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    margin-bottom: 14px !important;
  }

  .btn-submit {
    width: 100% !important;
    justify-content: center !important;
    min-height: 48px !important;
  }

  .contact-map {
    width: 100% !important;
    height: 280px !important;
    margin-bottom: 20px !important;
  }

  /* --- SERVICE SECTION --- */
  .pillar {
    padding: 24px 20px !important;
    border-radius: 14px !important;
  }

  .step-card {
    padding: 24px 20px !important;
    border-radius: 14px !important;
  }
}

/* Extra small mobile adjustments (≤380px) */
@media (max-width: 380px) {
  .nav-cta {
    display: none !important;
  }
  .hero {
    min-height: 620px !important;
  }
  .htitle {
    font-size: 22px !important;
  }
}

/* ===== CHANGES ON MOBILE VIEW ===== */
@media (min-width: 481px) {

  /* Hide controls by default */
  .hctrls {
    opacity: 0;
    pointer-events: none;
    transition: opacity .3s ease;
  }

  /* Show controls when user hovers the hero */
  .hero:hover .hctrls {
    opacity: 1;
    pointer-events: auto;
  }
}
/* Footer mobile spacing */
@media (max-width: 480px) {
  .f-brand-logo {
    padding-top: 10px !important;
  }
  .f-col-h {
    font-size: 11.5px !important;
    letter-spacing: .08em !important;
    margin-bottom: 14px !important;
    color: rgba(255,255,255,0.95) !important;
  }
  .f-link {
    display: block !important;
    font-size: 13.5px !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
    margin: 0 0 9px 0 !important;
    padding: 2px 0 !important;
    text-align: left !important;
    color: rgba(255,255,255,0.65) !important;
  }
  .f-link:hover {
    color: #fff !important;
  }
}

@media (max-width: 480px) {
  .form-card {
    margin-top: 20px !important;
  }
}



.partner-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

.partner-tile {
  background: #fff;
  padding: 1.5rem;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.06);
  position: relative;
  overflow: hidden;
}

/* Hide list by default */
.pt-list {
  display: none;
  margin-top: 1rem;
  font-size: 0.9rem;
  line-height: 1.5;
  color: #333;
}

/* Show list on hover */
.partner-tile:hover .pt-list {
  display: block;
}

/* Optional: subtle background change on hover */
.partner-tile:hover {
  box-shadow: 0 6px 16px rgba(0,0,0,0.08);
}

/* Responsive */
@media (max-width: 900px) {
  .partner-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 600px) {
  .partner-grid {
    grid-template-columns: 1fr;
  }
}


/* ============ LIGHTBOX ============ */
.lightbox {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.9);
  display: none;
  justify-content: center;
  align-items: center;
  z-index: 9999;
  padding: 20px;
}

.lightbox.active {
  display: flex;
}

.lb-content {
  max-width: 90%;
  max-height: 80%;
  text-align: center;
}

.lb-content img {
  max-width: 100%;
  max-height: 70vh;
  border-radius: 6px;
}

.lb-cap {
  margin-top: 12px;
  color: #fff;
  font-size: 16px;
}

.lb-close {
  position: absolute;
  top: 20px;
  right: 30px;
  font-size: 40px;
  color: #fff;
  background: none;
  border: none;
  cursor: pointer;
}

.lb-prev, .lb-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  font-size: 40px;
  color: #fff;
  background: none;
  border: none;
  cursor: pointer;
  padding: 10px;
}

.lb-prev { left: 30px; }
.lb-next { right: 30px; }











/* ============ SERVICE GALLERY — Heat pump & future services ============ */
.service-gallery { background: #f8f7f4; }
.service-gallery-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  margin-top: 32px;
}
@media (max-width: 640px) {
  .service-gallery-grid { grid-template-columns: 1fr; }
}
.service-gallery-item {
  margin: 0;
  border-radius: var(--radius-sm);
  overflow: hidden;
  box-shadow: var(--shadow-card);
  background: #e8e5df;
}
.service-gallery-item img {
  width: 100%;
  height: auto;
  max-height: 420px;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform 0.35s ease;
}
.service-gallery-item:hover img { transform: scale(1.02); }

/* ============================================================
   OUR SOLUTIONS — 4-card homepage section
   Reference: card layout inspired by "Strategic Focus Areas"
   style but using Milimani brand tokens (navy-deep, terracotta)
   ============================================================ */

.solutions-section {
  background: #f5f5f2;
}

/* -- Section header -- */
.solutions-section .shead {
  text-align: center;
  max-width: 680px;
  margin: 0 auto 52px;
}

/* -- 4-column grid, collapses to 2 then 1 on smaller screens -- */
.solutions-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  align-items: stretch;
}
@media (max-width: 1100px) {
  .solutions-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 580px) {
  .solutions-grid { grid-template-columns: 1fr; }
}

/* -- Base card -- */
.sol-card {
  background: #fff;
  border: 1.5px solid var(--line);
  border-radius: var(--radius-sm);
  padding: 28px 24px 24px;
  box-shadow: var(--shadow-card);
  display: flex;
  flex-direction: column;
  gap: 0;
  transition: box-shadow 0.22s ease, transform 0.22s ease;
  position: relative;
  overflow: hidden;
}
.sol-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  border-radius: var(--radius-sm) var(--radius-sm) 0 0;
}
.sol-card:hover {
  box-shadow: var(--shadow-hover);
  transform: translateY(-3px);
}

/* -- Top accent colours per card type -- */
.sol-card--water::before  { background: var(--navy-deep); }
.sol-card--heat::before   { background: var(--terracotta); }
.sol-card--solar::before  { background: #d4900a; }
.sol-card--treatment::before { background: #1a7a4a; }

/* -- Icon badge -- */
.sol-card-icon {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 19px;
  margin-bottom: 16px;
  flex-shrink: 0;
}
.sol-card--water   .sol-card-icon { background: rgba(19,19,118,0.08);  color: var(--navy-deep); }
.sol-card--heat    .sol-card-icon { background: rgba(255,0,0,0.08);    color: var(--terracotta); }
.sol-card--solar   .sol-card-icon { background: rgba(212,144,10,0.10); color: #b5790f; }
.sol-card--treatment .sol-card-icon { background: rgba(26,122,74,0.10); color: #1a7a4a; }

/* -- Card title -- */
.sol-card-title {
  font-family: 'Manrope', sans-serif;
  font-size: 16px;
  font-weight: 800;
  color: var(--ink);
  line-height: 1.3;
  margin-bottom: 10px;
}

/* -- Card description -- */
.sol-card-desc {
  font-size: var(--font-p-card);
  color: var(--ink-soft);
  line-height: var(--line-height-card);
  margin-bottom: 16px;
  flex-grow: 1;
}

/* -- Benefit list -- */
.sol-card-benefits {
  list-style: none;
  padding: 0;
  margin: 0 0 20px;
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.sol-card-benefits li {
  font-size: 12.5px;
  color: var(--ink-soft);
  display: flex;
  align-items: flex-start;
  gap: 7px;
  line-height: 1.45;
}
.sol-card-benefits li i {
  font-size: 11px;
  margin-top: 2px;
  flex-shrink: 0;
}
.sol-card--water   .sol-card-benefits li i { color: var(--navy-deep); }
.sol-card--heat    .sol-card-benefits li i { color: var(--terracotta); }
.sol-card--solar   .sol-card-benefits li i { color: #b5790f; }
.sol-card--treatment .sol-card-benefits li i { color: #1a7a4a; }

/* -- CTA link (styled like reference image's "Compare 10 Loan Facilities →") -- */
.sol-card-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  transition: gap 0.18s ease;
  margin-top: auto;
}
.sol-card-cta i { font-size: 11px; transition: transform 0.18s ease; }
.sol-card-cta:hover i { transform: translateX(3px); }
.sol-card--water   .sol-card-cta { color: var(--navy-deep); }
.sol-card--heat    .sol-card-cta { color: var(--terracotta); }
.sol-card--solar   .sol-card-cta { color: #b5790f; }
.sol-card--treatment .sol-card-cta { color: #1a7a4a; }

/* -- Footer note below the grid -- */
.solutions-footer {
  text-align: center;
  margin-top: 36px;
  padding-top: 28px;
  border-top: 1px solid var(--line);
}
.solutions-footer p {
  font-size: var(--font-p-card);
  color: var(--ink-soft);
  line-height: var(--line-height-card);
}
.solutions-footer a {
  color: var(--navy-deep);
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: rgba(19,19,118,0.3);
  text-underline-offset: 2px;
  transition: color 0.15s;
}
.solutions-footer a:hover { color: var(--terracotta); }

/* ============ UNIFIED SITE-WIDE CTA BANNER ============ */
.gallery-cta-banner {
  background: var(--navy-deep, #131376);
  border-radius: 18px;
  padding: 32px 36px;
  display: flex;
  align-items: center;
  gap: 28px;
  color: #ffffff;
  box-shadow: 0 16px 36px rgba(19, 19, 118, 0.25);
}

.gcb-icon {
  width: 58px;
  height: 58px;
  min-width: 58px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  color: #ffffff;
}

.gcb-text {
  flex-grow: 1;
}

.gcb-text h4 {
  font-size: 19px;
  font-weight: 700;
  color: #ffffff;
  margin-bottom: 6px;
}

.gcb-text p {
  color: rgba(255, 255, 255, 0.85);
  font-size: 14.5px;
  margin: 0;
  line-height: 1.5;
}

.gcb-actions {
  display: flex;
  gap: 12px;
  flex-shrink: 0;
}

.btn-gallery-primary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #ffffff;
  color: var(--navy-deep, #131376);
  font-weight: 700;
  font-size: 14px;
  padding: 12px 22px;
  border-radius: 50px;
  transition: all 0.25s ease;
  text-decoration: none;
}

.btn-gallery-primary:hover {
  background: var(--parchment, #FAFAF7);
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0,0,0,0.2);
  color: var(--navy-deep, #131376);
}

.btn-gallery-secondary {
  display: inline-flex;
  align-items: center;
  background: rgba(255, 255, 255, 0.12);
  color: #ffffff;
  font-weight: 600;
  font-size: 14px;
  padding: 12px 22px;
  border-radius: 50px;
  border: 1px solid rgba(255, 255, 255, 0.25);
  transition: all 0.25s ease;
  text-decoration: none;
}

.btn-gallery-secondary:hover {
  background: rgba(255, 255, 255, 0.22);
  color: #ffffff;
}

@media (max-width: 991px) {
  .gallery-cta-banner {
    flex-direction: column;
    text-align: center;
    padding: 28px 24px;
  }
  .gcb-actions {
    flex-direction: column;
    width: 100%;
  }
  .btn-gallery-primary, .btn-gallery-secondary {
    justify-content: center;
    width: 100%;
  }
}

/* ============ BLOG PAGINATION COMPONENT ============ */
.blog-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-top: 48px;
  margin-bottom: 24px;
  flex-wrap: wrap;
}

.blog-pagination .pg-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 22px;
  border-radius: 50px;
  font-size: 14px;
  font-weight: 700;
  color: var(--navy-deep, #131376);
  background: #ffffff;
  border: 1.5px solid rgba(19, 19, 118, 0.18);
  cursor: pointer;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  user-select: none;
  font-family: inherit;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
}

.blog-pagination .pg-btn:hover:not(:disabled) {
  background: var(--navy, #2625ec);
  color: #ffffff;
  border-color: var(--navy, #2625ec);
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(38, 37, 236, 0.22);
}

.blog-pagination .pg-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
  pointer-events: none;
  border-color: rgba(0, 0, 0, 0.1);
  background: #f4f5f7;
  color: #8892a0;
  box-shadow: none;
  transform: none;
}

.blog-pagination .pg-number-list {
  display: flex;
  align-items: center;
  gap: 8px;
}

.blog-pagination .pg-num {
  min-width: 42px;
  height: 42px;
  padding: 0 12px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 700;
  color: var(--navy-deep, #131376);
  background: #ffffff;
  border: 1.5px solid rgba(19, 19, 118, 0.15);
  cursor: pointer;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  user-select: none;
  font-family: inherit;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
}

.blog-pagination .pg-num:hover {
  background: rgba(38, 37, 236, 0.08);
  border-color: var(--navy, #2625ec);
  color: var(--navy, #2625ec);
  transform: translateY(-2px);
}

.blog-pagination .pg-num.active {
  background: var(--navy, #2625ec);
  color: #ffffff;
  border-color: var(--navy, #2625ec);
  box-shadow: 0 4px 14px rgba(38, 37, 236, 0.28);
  transform: translateY(-1px);
}

.blog-pagination .pg-ellipsis {
  padding: 0 6px;
  color: #8892a0;
  font-weight: 700;
  letter-spacing: 2px;
}

