/* ============================================================
   KELM-NG — Main Stylesheet v3 (matches actual HTML classes)
   ============================================================ */

/* ── Variables ─────────────────────────────────────────── */
:root {
  /* Brand colours (kept as --navy / --orange so inline styles work) */
  --navy:        #006FBF;
  --navy-light:  #17A5D7;
  --navy-dark:   #004D8A;
  --orange:      #17A5D7;   /* secondary accent */
  --orange-light:#3DB8E8;
  --orange-dark: #006FBF;   /* used in inline CTA gradient */
  --sky:         #A9DAF3;
  --dark:        #0D1F35;
  --dark-2:      #1E2A36;
  --text:        #2C3A4A;
  --muted:       #6B7A8D;
  --white:       #FFFFFF;
  --off-white:   #F4FAFD;
  --light-gray:  #E8F4FB;
  --border:      #DFF0FA;

  --mid-gray:   #6B7A8D;   /* alias for inline styles in views */

  --font-head:  'Montserrat','Segoe UI',sans-serif;
  --font-body:  'Inter','Segoe UI',sans-serif;

  --radius-sm:  6px;
  --radius:     12px;
  --radius-lg:  20px;
  --shadow-sm:  0 2px 12px rgba(0,79,140,.08);
  --shadow:     0 6px 28px rgba(0,79,140,.12);
  --shadow-lg:  0 16px 56px rgba(0,79,140,.18);
  --transition: .3s ease;
  --nav-height: 76px;
}

/* ── Reset ─────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
body{font-family:var(--font-body);color:var(--text);background:#fff;line-height:1.7;overflow-x:hidden}
a{color:var(--navy);text-decoration:none;transition:color var(--transition)}
a:hover{color:var(--navy-dark)}
img{max-width:100%;height:auto;display:block}
h1,h2,h3,h4,h5,h6{font-family:var(--font-head);font-weight:800;color:var(--dark);line-height:1.2}

/* ── Layout ────────────────────────────────────────────── */
.container-kelm{max-width:1240px;margin:0 auto;padding:0 28px}
.section-pad{padding:96px 0}
.section-pad-sm{padding:60px 0}
.bg-offwhite{background:var(--off-white)!important}
.bg-light-gray{background:var(--light-gray)!important}

/* ── Section Heading ───────────────────────────────────── */
.section-heading{text-align:center;margin-bottom:60px}
.section-heading .eyebrow,
.eyebrow {
  display:inline-flex;align-items:center;gap:10px;
  font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  color:var(--navy);margin-bottom:14px;
}
.section-heading .eyebrow::before,
.section-heading .eyebrow::after{
  content:'';display:block;width:26px;height:2px;
  background:var(--navy);border-radius:2px;
}
.section-heading h2{font-size:clamp(1.8rem,3.6vw,2.8rem);color:var(--dark);margin-bottom:14px}
.section-heading p{font-size:.97rem;color:var(--muted);max-width:560px;margin:0 auto;line-height:1.75}

/* standalone eyebrow (outside .section-heading) */
.eyebrow{
  font-size:.72rem;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;color:var(--navy);
  display:block;margin-bottom:12px;
}

/* Dividers */
.divider{width:52px;height:3px;background:linear-gradient(90deg,var(--navy),var(--orange-light));border-radius:2px;margin:18px auto 0}
.divider-orange{width:52px;height:3px;background:var(--navy-light);border-radius:2px;margin:16px 0 28px}

/* Tag */
.tag{display:inline-block;padding:4px 12px;background:rgba(0,111,191,.1);color:var(--navy);font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;border-radius:4px}

/* ── Buttons — bordered transparent system ───────────────── */

/* Shared base */
.btn-primary-kelm,
.btn-outline-kelm,
.btn-navy{
  display:inline-flex;align-items:center;gap:9px;
  padding:12px 30px;
  border-radius:var(--radius-sm);
  font-family:var(--font-head);font-size:.8rem;font-weight:700;
  letter-spacing:.09em;text-transform:uppercase;
  cursor:pointer;
  background:transparent;
  border:2px solid currentColor;
  transition:background var(--transition),
             color var(--transition),
             border-color var(--transition),
             box-shadow var(--transition),
             transform .2s ease;
  white-space:nowrap;text-decoration:none;
  position:relative;overflow:hidden;
}
/* Sweep fill on hover — fills from left */
.btn-primary-kelm::after,
.btn-outline-kelm::after,
.btn-navy::after{
  content:'';
  position:absolute;inset:0;
  background:currentColor;
  opacity:0;
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .32s cubic-bezier(.4,0,.2,1), opacity .32s ease;
  z-index:0;
}
.btn-primary-kelm:hover::after,
.btn-outline-kelm:hover::after,
.btn-navy:hover::after{
  transform:scaleX(1);
  opacity:.12;
}
/* Keep text/icon above the fill layer */
.btn-primary-kelm > *,
.btn-outline-kelm > *,
.btn-navy > *,
.btn-primary-kelm i,
.btn-outline-kelm i,
.btn-navy i{
  position:relative;z-index:1;
}

/* ── On LIGHT backgrounds (white / off-white sections) ── */
/* navy border + navy text → hover: fills navy solid */
.btn-primary-kelm{
  color:var(--navy);
  border-color:var(--navy);
}
.btn-primary-kelm:hover{
  background:var(--navy);
  color:#fff;
  border-color:var(--navy);
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(0,111,191,.25);
}
.btn-primary-kelm:hover::after{ opacity:0; } /* solid fill handles it */

/* dark border + dark text → hover: fills dark solid */
.btn-navy{
  color:var(--dark);
  border-color:var(--dark);
}
.btn-navy:hover{
  background:var(--dark);
  color:#fff;
  border-color:var(--dark);
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(13,31,53,.2);
}
.btn-navy:hover::after{ opacity:0; }

/* ── On DARK / photo backgrounds ── */
/* white border + white text → hover: fills white, text flips navy */
.btn-outline-kelm{
  color:#fff;
  border-color:rgba(255,255,255,.6);
}
.btn-outline-kelm:hover{
  background:#fff;
  color:var(--navy);
  border-color:#fff;
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(255,255,255,.15);
}
.btn-outline-kelm:hover::after{ opacity:0; }

/* ── NAVBAR ────────────────────────────────────────────── */
#navbar{
  position:fixed;top:0;left:0;right:0;
  z-index:1000;height:var(--nav-height);
  transition:background .4s ease, box-shadow .4s ease, border-color .4s ease;
}

/* Transparent — frosted glass tint over hero */
#navbar.nav-transparent{
  background:rgba(6,18,38,.38);
  border-bottom:1px solid rgba(0,77,138,.52);
}
/* Soft gradient scrim so nav text is always readable over any photo */
#navbar.nav-transparent::before{
  content:'';
  position:absolute;inset:0;
  background:linear-gradient(to bottom,rgba(0,10,24,.62) 0%,rgba(0,10,24,0) 100%);
  pointer-events:none;
}

#navbar.nav-solid{
  background:rgba(255,255,255,.97);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  box-shadow:0 2px 28px rgba(0,30,60,.10);
  border-bottom:1px solid rgba(0,111,191,.08);
}

.nav-inner{
  position:relative;z-index:1;
  max-width:1240px;margin:0 auto;padding:0 28px;
  height:100%;display:flex;align-items:center;justify-content:space-between;
}

/* ── Logo wordmark (fallback, no image) ── */
.nav-logo{display:flex;align-items:center;gap:12px;text-decoration:none}
.nav-logo-mark{
  width:42px;height:42px;background:var(--navy);border-radius:var(--radius-sm);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-head);font-weight:900;font-size:1.1rem;color:#fff;
  flex-shrink:0;
  transition:transform .25s ease;
}
.nav-logo:hover .nav-logo-mark{ transform:scale(1.05); }

.nav-logo-text{display:flex;flex-direction:column;line-height:1.1}
.nav-logo-text .brand{font-family:var(--font-head);font-weight:800;font-size:1.18rem;transition:color var(--transition)}
.nav-logo-text .sub{font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;transition:color var(--transition)}

.nav-transparent .nav-logo-text .brand{color:#fff}
.nav-transparent .nav-logo-text .sub{color:rgba(255,255,255,.6)}
.nav-solid .nav-logo-text .brand{color:var(--dark)}
.nav-solid .nav-logo-text .sub{color:var(--muted)}

/* ── Logo image (when uploaded) ── */
.nav-logo-img{
  max-height:70px;max-width:160px;object-fit:contain;
  display:block;
  transition:opacity .4s ease, transform .25s ease;
}
/* On hero — show logo at full color, just a touch of shadow to pop against any photo */
.nav-transparent .nav-logo-img{
  filter:drop-shadow(0 1px 8px rgba(0,0,0,.35));
}
/* On solid white nav → clean, no filter */
.nav-solid .nav-logo-img{
  filter:none;
  opacity:1;
}
.nav-logo:hover .nav-logo-img{ transform:scale(1.04); }

/* ── Nav links ── */
.nav-links{display:flex;align-items:center;gap:2px;list-style:none}
.nav-links > li > a{
  position:relative;
  display:block;padding:8px 14px;
  font-family:var(--font-head);font-size:.76rem;font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;border-radius:var(--radius-sm);
  transition:color var(--transition), background var(--transition);
}
/* Active underline bar */
.nav-links > li > a:not(.nav-cta)::after{
  content:'';
  position:absolute;bottom:2px;left:50%;transform:translateX(-50%) scaleX(0);
  width:60%;height:2px;border-radius:2px;
  background:var(--sky);
  transition:transform .25s cubic-bezier(.4,0,.2,1);
}
.nav-links > li > a:not(.nav-cta):hover::after,
.nav-links > li > a:not(.nav-cta).active::after{
  transform:translateX(-50%) scaleX(1);
}

.nav-transparent .nav-links > li > a{color:rgba(255,255,255,.9)}
.nav-transparent .nav-links > li > a:hover,
.nav-transparent .nav-links > li > a.active{color:#fff;background:rgba(255,255,255,.1)}
.nav-solid .nav-links > li > a{color:var(--dark-2)}
.nav-solid .nav-links > li > a:hover{color:var(--navy);background:rgba(0,111,191,.06)}
.nav-solid .nav-links > li > a.active{color:var(--navy);background:rgba(0,111,191,.07)}

/* ── Contact CTA pill ── */
.nav-cta{
  background:var(--navy)!important;color:#fff!important;
  border-radius:var(--radius-sm)!important;
  box-shadow:0 3px 14px rgba(0,111,191,.35);
  padding:9px 18px!important;
  transition:background var(--transition), box-shadow var(--transition), transform .2s ease!important;
}
.nav-cta:hover{
  background:var(--navy-dark)!important;color:#fff!important;
  box-shadow:0 6px 20px rgba(0,111,191,.45)!important;
  transform:translateY(-1px);
}
.nav-cta::after{ display:none!important; } /* no underline on CTA */
.nav-transparent .nav-cta,.nav-solid .nav-cta{color:#fff!important}
/* ── About Us dropdown ─────────────────────────────── */
.nav-has-dropdown{ position:relative; }

/* Row wrapper: link + caret side by side */
.nav-item-row{
  display:flex;
  align-items:center;
}
.nav-item-row > a{
  flex:1;
  /* inherit link styles from .nav-links a */
}

/* ── Desktop: caret as pseudo-element on the link ── */
@media(min-width:992px){
  .nav-item-row > a{
    display:inline-flex;align-items:center;gap:5px;
  }
}

/* Caret icon (inside the button on mobile) */
.nav-caret{
  font-size:.6rem!important;
  display:inline-block;
  transition:transform var(--transition);
}
/* Desktop caret rotate on hover */
.nav-has-dropdown:hover .nav-caret,
.nav-has-dropdown:focus-within .nav-caret{
  transform:rotate(180deg);
}

/* Dedicated mobile caret toggle button */
.nav-caret-btn{
  display:none; /* hidden on desktop */
  align-items:center;justify-content:center;
  background:none;border:none;cursor:pointer;
  padding:12px 18px;
  color:var(--dark-2);
  line-height:1;
  flex-shrink:0;
}
/* Rotate caret when dropdown is open */
.nav-has-dropdown.open .nav-caret{
  transform:rotate(180deg);
}

/* Dropdown panel */
.nav-dropdown-menu{
  position:absolute;
  top:calc(100% + 8px);
  left:50%;transform:translateX(-50%);
  min-width:200px;
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:0 12px 40px rgba(0,30,60,.15);
  list-style:none;padding:6px;
  opacity:0;pointer-events:none;
  transform:translateX(-50%) translateY(-6px);
  transition:opacity .22s ease, transform .22s ease;
  z-index:500;
}
.nav-has-dropdown:hover .nav-dropdown-menu,
.nav-has-dropdown:focus-within .nav-dropdown-menu{
  opacity:1;pointer-events:auto;
  transform:translateX(-50%) translateY(0);
}
/* Small notch */
.nav-dropdown-menu::before{
  content:'';position:absolute;
  top:-6px;left:50%;transform:translateX(-50%);
  border:6px solid transparent;
  border-bottom-color:#fff;
  border-top:none;
}
.nav-dropdown-menu li a{
  display:flex!important;align-items:center;gap:10px;
  padding:9px 12px!important;border-radius:var(--radius-sm)!important;
  font-size:.78rem!important;text-transform:none!important;letter-spacing:0!important;
  color:var(--text)!important;transition:all .18s;
}
.nav-dropdown-menu li a i{
  font-size:.88rem;color:var(--navy);flex-shrink:0;
}
.nav-dropdown-menu li a:hover{
  background:rgba(0,111,191,.07)!important;
  color:var(--navy)!important;
}
.nav-dropdown-menu li a.active{
  color:var(--navy)!important;
  background:rgba(0,111,191,.08)!important;
}
/* On transparent nav — dropdown still white */
.nav-transparent .nav-dropdown-menu{ background:#fff; }

/* ── Mobile — expand inline ─────────────────────── */
@media(max-width:991px){
  /* Show the caret toggle button */
  .nav-caret-btn{
    display:flex;
  }
  /* Make nav-item-row fill full width of the mobile menu */
  .nav-item-row{
    width:100%;
  }
  /* Link takes rest of space (matching other nav link padding) */
  .nav-item-row > a{
    padding:13px 24px;
    border-radius:0;
    font-size:.85rem;
    color:var(--dark-2)!important;
  }
  .nav-item-row > a:hover,
  .nav-item-row > a.active{
    color:var(--navy)!important;
    background:rgba(0,111,191,.06)!important;
  }
  /* Dropdown panel: static, hidden by default, shown when .open */
  .nav-dropdown-menu{
    position:static;
    opacity:1!important;pointer-events:auto!important;
    transform:none!important;
    box-shadow:none;border:none;
    border-radius:0;padding:0;
    background:rgba(0,111,191,.04);
    display:none;
    width:100%;
  }
  .nav-has-dropdown.open .nav-dropdown-menu{ display:block; }
  .nav-dropdown-menu li a{
    padding:11px 36px!important;
    border-left:2px solid rgba(0,111,191,.2)!important;
    border-radius:0!important;
    font-size:.83rem!important;
  }
  .nav-dropdown-menu::before{ display:none; }

  /* Increase nav-links max-height to safely fit expanded dropdown */
  .nav-links.open{ max-height:800px!important; }
}

/* Mobile toggle */
.nav-toggle{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:5px;background:none;border:none}
.nav-toggle span{display:block;width:24px;height:2.5px;border-radius:2px;transition:all var(--transition)}
.nav-transparent .nav-toggle span{background:#fff}
.nav-solid .nav-toggle span{background:var(--dark)}

@media(max-width:991px){
  .nav-toggle{display:flex}
  .nav-links{
    position:fixed;top:var(--nav-height);left:0;right:0;
    background:#fff;border-top:1px solid var(--border);
    flex-direction:column;align-items:stretch;padding:10px 0 18px;
    gap:0;max-height:0;overflow:hidden;
    visibility:hidden;
    transition:max-height .4s ease, visibility .4s ease;
    box-shadow:0 12px 40px rgba(0,30,60,.12);
  }
  .nav-links.open{max-height:640px;visibility:visible;}
  .nav-links a{padding:13px 24px;border-radius:0;font-size:.85rem;color:var(--dark-2)!important}
  .nav-links a:hover,.nav-links a.active{color:var(--navy)!important;background:rgba(0,111,191,.06)!important}
  .nav-cta{margin:8px 24px;border-radius:var(--radius-sm)!important}
}

/* ── HERO SLIDER ───────────────────────────────────────── */
.hero{
  position:relative;height:100vh;min-height:640px;
  overflow:hidden;display:flex;align-items:center;
  --slide-interval:6s; /* keep in sync with JS SLIDE_INTERVAL */
}
.hero-slide{
  position:absolute;inset:0;
  opacity:0;
  transition:opacity 1.4s cubic-bezier(.4,0,.2,1);
}
.hero-slide.active{opacity:1}

/* Ken-Burns zoom — in on active, frozen otherwise */
.hero-bg{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  transform:scale(1.06);
  transition:transform 9s ease;
  will-change:transform;
}
.hero-slide.active .hero-bg{transform:scale(1)}

/* Outgoing slide zooms away for smooth exit feel */
.hero-slide.leaving .hero-bg{transform:scale(1.08)}

/* ── Overlay — opacity driven by inline style from DB ── */
.hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(
    115deg,
    rgba(13,31,53,1)    0%,
    rgba(0,77,138,1)   45%,
    rgba(0,111,191,.55) 100%);
  /* opacity is set inline from DB overlay_opacity field */
}
/* Left accent bar */
.hero-overlay::after{
  content:'';position:absolute;left:0;top:0;bottom:0;
  width:4px;
  background:linear-gradient(180deg,var(--orange-light) 0%,rgba(0,111,191,0) 100%);
  opacity:.9;
}
/* Subtle vignette ring at bottom */
.hero-overlay::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse at 50% 110%,rgba(0,0,0,.55) 0%,transparent 65%);
}

.hero-content{
  position:relative;z-index:2;
  width:100%;max-width:1240px;margin:0 auto;padding:0 28px;
  padding-top:var(--nav-height);
}

/* ── Hero text block — staggered per-element animation ── */
#heroText{
  will-change:opacity;
}

/* OUT — whole block fades + rises as one */
#heroText.hero-text-out{
  animation:heroTextOut .32s cubic-bezier(.4,0,1,1) forwards;
}
@keyframes heroTextOut{
  from{opacity:1;transform:translateY(0)}
  to  {opacity:0;transform:translateY(-16px)}
}

/* Shared base for stagger children */
#heroText .hero-eyebrow,
#heroText .hero-title,
#heroText .hero-desc,
#heroText .hero-btns{
  opacity:0;
  transform:translateY(28px);
  will-change:opacity,transform;
}

/* ── Page-load entrance (class added by PHP) ── */
#heroText.hero-text-enter .hero-eyebrow{
  animation:heroChildIn .7s cubic-bezier(.22,.68,0,1.1) .15s forwards;
}
#heroText.hero-text-enter .hero-title{
  animation:heroChildIn .75s cubic-bezier(.22,.68,0,1.1) .38s forwards;
}
#heroText.hero-text-enter .hero-desc{
  animation:heroChildIn .7s cubic-bezier(.22,.68,0,1.1) .58s forwards;
}
#heroText.hero-text-enter .hero-btns{
  animation:heroChildIn .65s cubic-bezier(.22,.68,0,1.1) .76s forwards;
}

/* ── Slide-change entrance (class swapped by JS) ── */
#heroText.hero-text-in .hero-eyebrow{
  animation:heroChildIn .6s cubic-bezier(.22,.68,0,1.1) .05s forwards;
}
#heroText.hero-text-in .hero-title{
  animation:heroChildIn .65s cubic-bezier(.22,.68,0,1.1) .2s forwards;
}
#heroText.hero-text-in .hero-desc{
  animation:heroChildIn .6s cubic-bezier(.22,.68,0,1.1) .36s forwards;
}
#heroText.hero-text-in .hero-btns{
  animation:heroChildIn .55s cubic-bezier(.22,.68,0,1.1) .5s forwards;
}

@keyframes heroChildIn{
  from{opacity:0;transform:translateY(28px)}
  to  {opacity:1;transform:translateY(0)}
}

/* Title highlight word — extra glow pulse on entrance */
.hero-title .highlight{
  color:var(--sky);
  display:inline-block;
}
#heroText.hero-text-enter .hero-title .highlight,
#heroText.hero-text-in .hero-title .highlight{
  animation:heroChildIn .65s cubic-bezier(.22,.68,0,1.1) .38s forwards,
            highlightPop .6s ease .95s both;
}
@keyframes highlightPop{
  0%  {text-shadow:none}
  40% {text-shadow:0 0 28px rgba(169,218,243,.7),0 0 8px rgba(169,218,243,.4)}
  100%{text-shadow:none}
}

.hero-eyebrow{
  display:inline-flex;align-items:center;gap:12px;
  font-size:.72rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  color:var(--sky);margin-bottom:22px;
}
.hero-eyebrow::before{
  content:'';display:block;
  width:32px;height:2px;
  background:linear-gradient(90deg,var(--orange-light),rgba(232,162,4,.3));
  border-radius:2px;
}

.hero-title{
  font-size:clamp(2.2rem,5.5vw,3.9rem);
  color:#fff;max-width:800px;line-height:1.1;margin-bottom:22px;
}
.hero-title .highlight{color:var(--sky)}

.hero-desc{
  font-size:clamp(.97rem,1.4vw,1.12rem);color:rgba(255,255,255,.75);
  max-width:560px;line-height:1.8;margin-bottom:38px;
}
.hero-btns{display:flex;flex-wrap:wrap;gap:14px}

/* Scroll indicator */
.hero-scroll{
  position:absolute;bottom:32px;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:8px;
  color:rgba(255,255,255,.4);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;
  z-index:5;
}
.hero-scroll-line{
  width:1px;height:44px;
  background:linear-gradient(to bottom,rgba(255,255,255,.55),transparent);
  animation:scrollPulse 2s ease infinite;
}
@keyframes scrollPulse{
  0%,100%{opacity:.35;transform:scaleY(.9)}
  50%{opacity:1;transform:scaleY(1.1)}
}

/* ── Progress-bar dots ── */
.hero-dots{
  position:absolute;bottom:36px;right:40px;
  display:flex;align-items:center;gap:6px;z-index:5;
}
.hero-dot{
  height:3px;border-radius:3px;
  width:22px;
  background:rgba(255,255,255,.28);
  border:none;cursor:pointer;padding:0;
  position:relative;overflow:hidden;
  transition:width .4s ease, background .4s ease;
}
.hero-dot.active{
  width:44px;
  background:rgba(255,255,255,.35);
}
/* Progress fill animation on active dot */
.hero-dot.active::after{
  content:'';
  position:absolute;inset:0;left:0;
  background:#fff;
  width:0%;
  animation:dotProgress var(--slide-interval,6s) linear forwards;
}
@keyframes dotProgress{
  from{width:0%}
  to  {width:100%}
}

/* ── PAGE HERO (inner pages) ───────────────────────────── */
/* ═══════════════════════════════════════════════════════════
   PAGE HERO — Arc Flash / Electric Beam Theme
   ═══════════════════════════════════════════════════════════ */

/* ── Base shell ─────────────────────────────────────────── */
.page-hero{
  padding:152px 0 92px;
  position:relative;
  overflow:hidden;
  /* Dramatic power-station base — not symmetric, feels alive */
  background:linear-gradient(125deg,
    #04111e  0%,
    #071d3a 30%,
    #0a2a50 55%,
    #050f1c 100%);
}

/* When admin sets a background photo */
.page-hero.page-hero-photo{
  background:var(--ph-bg) center/cover no-repeat;
}
.ph-photo-overlay{
  position:absolute;inset:0;
  background:linear-gradient(120deg,
    rgba(4,14,32,.93)  0%,
    rgba(7,30,66,.85) 50%,
    rgba(0,80,160,.55) 100%);
  z-index:0;
}

/* ── LAYER 1 : Diagonal arc light beams (no grid) ────────── */
/* Multiple overlapping shafts of high-voltage light
   radiating from upper-left like a substation floodlight */
.ph-beams{
  position:absolute;inset:0;
  background:
    linear-gradient(112deg, rgba(0,190,255,.13) 0%,  transparent 42%),
    linear-gradient(118deg, rgba(0,155,230,.09) 0%,  transparent 36%),
    linear-gradient(107deg, rgba(0,210,255,.10) 0%,  transparent 48%),
    linear-gradient(124deg, rgba(0,120,210,.07) 0%,  transparent 30%),
    linear-gradient(101deg, rgba(0,180,255,.06) 0%,  transparent 55%);
  animation:ph-beams-shift 7s ease-in-out infinite alternate;
  pointer-events:none;
  z-index:1;
}

/* ── LAYER 2 : Scattered electric spark field ────────────── */
/* Tiny bright particles scattered across the hero via box-shadow */
.ph-sparks{
  position:absolute;
  top:18%; left:22%;
  width:3px;height:3px;border-radius:50%;
  background:rgba(255,255,255,.9);
  box-shadow:
    /* cluster 1 — upper left zone */
     40px  -30px 0 0px rgba(0,220,255,.7),
    110px  -55px 0 1px rgba(255,255,255,.5),
    170px   10px 0 0px rgba(0,200,255,.6),
    -60px   20px 0 1px rgba(255,255,255,.4),
    -120px -40px 0 0px rgba(0,210,255,.5),
    /* cluster 2 — mid right */
    380px   30px 0 1px rgba(0,220,255,.65),
    440px  -20px 0 0px rgba(255,255,255,.45),
    500px   50px 0 1px rgba(0,200,255,.5),
    560px  -40px 0 0px rgba(255,255,255,.35),
    /* cluster 3 — lower spread */
    200px   90px 0 1px rgba(0,210,255,.55),
    300px   70px 0 0px rgba(255,255,255,.4),
    650px   20px 0 1px rgba(0,220,255,.45),
    720px  -30px 0 0px rgba(0,200,255,.3),
    /* far right edge sparks */
    820px   10px 0 0px rgba(0,210,255,.25),
    880px  -50px 0 1px rgba(255,255,255,.2);
  animation:ph-sparks-twinkle 3.5s ease-in-out infinite;
  pointer-events:none;
  z-index:2;
}

/* ── LAYER 3 : Plasma glow blobs ─────────────────────────── */
.ph-glows{
  position:absolute;inset:0;
  background:
    /* dominant navy surge from top-left — power source */
    radial-gradient(ellipse at 0%  0%,   rgba(0,111,191,.7)  0%, transparent 50%),
    /* secondary cyan arc — top-right */
    radial-gradient(ellipse at 100% 0%,  rgba(0,200,255,.35) 0%, transparent 42%),
    /* mid warm bloom — centre mass */
    radial-gradient(ellipse at 48% 55%,  rgba(0,60,130,.5)   0%, transparent 55%),
    /* bottom edge darkening — anchors content */
    linear-gradient(to top, rgba(2,8,18,.75) 0%, transparent 45%);
  pointer-events:none;
  z-index:1;
}

/* ── LAYER 4 : KELM ghost watermark ─────────────────────── */
.page-hero::after{
  content:'KELM';
  position:absolute;
  right:-2%;top:50%;
  transform:translateY(-52%);
  font-family:var(--font-head);
  font-size:clamp(7rem,18vw,15rem);
  font-weight:900;letter-spacing:-.04em;
  color:transparent;
  -webkit-text-stroke:1px rgba(0,180,255,.1);
  text-stroke:1px rgba(0,180,255,.1);
  pointer-events:none;
  user-select:none;
  z-index:1;
  animation:ph-mark-breathe 6s ease-in-out infinite;
}

/* ── LAYER 5 : Diagonal lightning sweep ─────────────────── */
.ph-sweep{
  position:absolute;top:0;bottom:0;left:-60%;
  width:45%;
  background:linear-gradient(108deg,
    transparent          0%,
    rgba(0,190,255,.0)  35%,
    rgba(0,228,255,.14) 50%,
    rgba(0,190,255,.0)  65%,
    transparent         100%);
  animation:ph-sweep 8s cubic-bezier(.4,0,.6,1) infinite;
  pointer-events:none;
  z-index:3;
}

/* ── LAYER 6 : Floating power-node halos ─────────────────── */
.ph-nodes{
  position:absolute;
  top:38%; right:16%;
  width:7px;height:7px;border-radius:50%;
  background:#00d4ff;
  box-shadow:
    0    0   0  3px  rgba(0,212,255,.3),
    0    0   0  10px rgba(0,212,255,.13),
    0    0   0  22px rgba(0,212,255,.06),
     230px -70px 0 2px rgba(0,212,255,.35),
     230px -70px 0 8px rgba(0,212,255,.12),
    -170px  60px 0 2px rgba(0,212,255,.25),
    -170px  60px 0 8px rgba(0,212,255,.09),
     400px  25px 0 2px rgba(0,212,255,.2),
     400px  25px 0 8px rgba(0,212,255,.07),
    -330px -35px 0 2px rgba(0,212,255,.15),
    -330px -35px 0 7px rgba(0,212,255,.05);
  animation:ph-nodes-flicker 5s ease-in-out infinite;
  pointer-events:none;
  z-index:3;
}

/* ── LAYER 7 : Left power rail ───────────────────────────── */
.ph-rail{
  position:absolute;left:0;top:0;bottom:0;width:4px;
  background:linear-gradient(180deg,
    transparent  0%,
    #00d4ff     20%,
    #006fbf     65%,
    transparent 100%);
  animation:ph-rail-pulse 3s ease-in-out infinite;
  z-index:4;
}
.ph-rail::after{
  content:'';position:absolute;inset:0;
  box-shadow:0 0 14px 4px rgba(0,210,255,.45);
}

/* ── LAYER 8 : Bottom arc border ─────────────────────────── */
.ph-arc-border{
  position:absolute;bottom:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,
    transparent  0%,
    #006fbf     15%,
    #00d4ff     50%,
    #006fbf     85%,
    transparent 100%);
  animation:ph-arc-pulse 3s ease-in-out infinite;
  z-index:4;
}
.ph-arc-border::before{
  content:'';position:absolute;inset:0;
  box-shadow:0 0 16px 5px rgba(0,210,255,.4);
}

/* ── Content ─────────────────────────────────────────────── */
.page-hero-content{
  max-width:1240px;margin:0 auto;padding:0 28px;
  position:relative;z-index:10;
  text-align:center;
}

/* Eyebrow */
.ph-eyebrow{
  display:inline-flex;align-items:center;gap:14px;
  font-size:.68rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;
  color:#00d4ff;margin-bottom:22px;
}
.ph-eyebrow-line{
  display:block;width:32px;height:1.5px;border-radius:2px;
  background:linear-gradient(90deg,transparent,#00d4ff);
}
.ph-eyebrow-line:last-child{
  background:linear-gradient(90deg,#00d4ff,transparent);
}

/* Title */
.ph-h1{
  font-size:clamp(2.2rem,5vw,3.8rem);
  color:#fff;margin-bottom:18px;line-height:1.08;
  text-shadow:0 2px 32px rgba(0,180,255,.35), 0 4px 48px rgba(0,0,0,.6);
  letter-spacing:-.02em;
}

/* Desc */
.ph-p{
  font-size:clamp(.9rem,1.3vw,1.05rem);
  color:rgba(255,255,255,.62);
  max-width:580px;margin:0 auto 28px;line-height:1.85;
}

/* Breadcrumb — glassmorphism pill */
.ph-crumb{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.76rem;margin-top:18px;
  background:rgba(0,0,0,.28);
  border:1px solid rgba(0,180,255,.2);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  padding:7px 20px;border-radius:50px;
}
.ph-crumb a{color:rgba(255,255,255,.45);transition:color var(--transition)}
.ph-crumb a:hover{color:#fff}
.ph-crumb-sep{color:rgba(0,200,255,.4);font-size:.6rem;display:flex;align-items:center}
.ph-crumb span{color:#fff;font-weight:600}

/* ── Keyframes ───────────────────────────────────────────── */
@keyframes ph-beams-shift{
  0%  { opacity:.8;  transform:skewX(0deg);   }
  50% { opacity:1;   transform:skewX(.5deg);  }
  100%{ opacity:.85; transform:skewX(-.3deg); }
}
@keyframes ph-sparks-twinkle{
  0%,100%{ opacity:.6;  transform:scale(1);   }
  30%     { opacity:1;  transform:scale(1.3); filter:drop-shadow(0 0 3px rgba(0,220,255,.9)); }
  65%     { opacity:.4; transform:scale(.8);  }
}
@keyframes ph-mark-breathe{
  0%,100%{ opacity:.7; }
  50%     { opacity:1;  }
}
@keyframes ph-sweep{
  0%  { transform:translateX(0);    opacity:0; }
  8%  { opacity:1; }
  85% { opacity:1; }
  100%{ transform:translateX(330%); opacity:0; }
}
@keyframes ph-nodes-flicker{
  0%,100%{ opacity:.75; }
  35%    { opacity:1; filter:drop-shadow(0 0 6px rgba(0,210,255,.95)); }
  65%    { opacity:.5;  }
}
@keyframes ph-rail-pulse{
  0%,100%{ opacity:.5; }
  50%    { opacity:1;  }
}
@keyframes ph-arc-pulse{
  0%,100%{ opacity:.5; }
  50%    { opacity:1; filter:drop-shadow(0 0 10px rgba(0,210,255,.65)); }
}

/* legacy breadcrumb (kept for any remaining inline usage) */
.breadcrumb-kelm{display:flex;align-items:center;gap:8px;margin-bottom:14px;font-size:.78rem}
.breadcrumb-kelm a{color:rgba(255,255,255,.55)}
.breadcrumb-kelm a:hover{color:#fff}
.breadcrumb-kelm .sep{color:rgba(255,255,255,.25)}
.breadcrumb-kelm span{color:rgba(255,255,255,.9);font-weight:600}

/* ── SERVICES (svc-) ────────────────────────────────────── */
.svc-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:26px;
}
.svc-card{
  position:relative;background:#fff;
  border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:40px 32px 28px;overflow:hidden;
  transition:all .4s ease;
  display:flex;flex-direction:column;
}
.svc-card::after{
  content:'';position:absolute;bottom:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--navy),var(--navy-light));
  transform:scaleX(0);transform-origin:left;transition:transform .45s ease;
}
.svc-card:hover{
  transform:translateY(-10px);
  box-shadow:0 28px 72px rgba(0,111,191,.14);
  border-color:rgba(0,111,191,.14);
}
.svc-card:hover::after{transform:scaleX(1)}
/* Watermark number */
.svc-num{
  position:absolute;top:16px;right:20px;
  font-family:var(--font-head);font-size:4rem;font-weight:900;
  color:var(--light-gray);line-height:1;letter-spacing:-.02em;
  user-select:none;transition:color .4s;
}
.svc-card:hover .svc-num{color:rgba(0,111,191,.06)}
/* Gradient icon */
.svc-icon-wrap{
  width:60px;height:60px;border-radius:14px;
  background:linear-gradient(135deg,var(--navy),var(--navy-light));
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:1.5rem;margin-bottom:24px;
  box-shadow:0 8px 24px rgba(0,111,191,.28);
  transition:all .4s;flex-shrink:0;
}
.svc-card:hover .svc-icon-wrap{transform:scale(1.12) rotate(-6deg);box-shadow:0 14px 36px rgba(0,111,191,.38)}
.svc-card h3{font-size:1.02rem;color:var(--dark);margin-bottom:12px}
.svc-card p{font-size:.87rem;color:var(--muted);line-height:1.75;flex:1}
.svc-card-footer{
  margin-top:22px;padding-top:16px;
  border-top:1px solid var(--border);
}
.svc-link{
  font-size:.76rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  color:var(--navy);display:inline-flex;align-items:center;gap:7px;
  transition:gap .25s,color .25s;
}
.svc-link:hover{color:var(--navy-dark);gap:12px}
@media(max-width:991px){.svc-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.svc-grid{grid-template-columns:1fr}}

/* ── PROCESS STEPS ──────────────────────────────────────── */
.svc-process-section{background:var(--off-white)}
.svc-steps{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:0;position:relative;
}
/* Horizontal connector line */
.svc-steps::before{
  content:'';position:absolute;
  top:35px;left:calc(12.5% + 8px);right:calc(12.5% + 8px);
  height:1px;
  background:linear-gradient(90deg,
    transparent,var(--border) 10%,var(--border) 90%,transparent);
}
.svc-step{padding:0 24px;text-align:center}
.svc-step-top{
  position:relative;display:flex;
  align-items:center;justify-content:center;margin-bottom:24px;
}
.svc-step-icon{
  width:70px;height:70px;border-radius:50%;
  background:#fff;border:2px solid var(--border);
  display:flex;align-items:center;justify-content:center;
  font-size:1.45rem;color:var(--navy);position:relative;z-index:1;
  transition:all .4s;box-shadow:var(--shadow-sm);
}
.svc-step:hover .svc-step-icon{
  background:var(--navy);color:#fff;border-color:var(--navy);
  box-shadow:0 10px 32px rgba(0,111,191,.32);transform:scale(1.12);
}
.svc-step-badge{
  position:absolute;top:-6px;right:calc(50% - 44px);
  background:linear-gradient(135deg,var(--navy),var(--navy-light));
  color:#fff;font-size:.62rem;font-weight:800;
  width:22px;height:22px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  z-index:2;box-shadow:0 2px 8px rgba(0,111,191,.35);
}
.svc-step h4{font-size:.95rem;color:var(--dark);margin-bottom:10px}
.svc-step p{font-size:.82rem;color:var(--muted);line-height:1.7}
@media(max-width:800px){
  .svc-steps{grid-template-columns:repeat(2,1fr);gap:40px}
  .svc-steps::before{display:none}
  .svc-step{padding:0}
}
@media(max-width:440px){.svc-steps{grid-template-columns:1fr}}

/* ── SERVICES CTA BAND ──────────────────────────────────── */
.svc-cta-band{
  position:relative;overflow:hidden;padding:96px 0;
}
.svc-cta-deco{position:absolute;inset:0;pointer-events:none}
.svc-cta-deco::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,#0D1F35 0%,var(--navy-dark) 50%,var(--navy) 100%);
}
.svc-cta-blob{position:absolute;border-radius:50%}
.svc-cta-blob-1{
  width:480px;height:480px;right:-120px;top:-180px;
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.05);
}
.svc-cta-blob-2{
  width:260px;height:260px;left:28%;bottom:-100px;
  background:rgba(0,111,191,.14);
}
.svc-cta-dots{
  position:absolute;left:0;top:0;bottom:0;width:35%;
  background-image:radial-gradient(rgba(255,255,255,.06) 1px,transparent 1px);
  background-size:20px 20px;
  -webkit-mask-image:linear-gradient(to right,white 10%,transparent 90%);
  mask-image:linear-gradient(to right,white 10%,transparent 90%);
}
.svc-cta-inner{
  position:relative;z-index:1;
  display:flex;align-items:center;justify-content:space-between;
  gap:44px;flex-wrap:wrap;
}
.svc-cta-eyebrow{
  font-size:.68rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  color:var(--sky);margin-bottom:14px;
}
.svc-cta-text h2{
  color:#fff;font-size:clamp(1.6rem,2.8vw,2.3rem);margin-bottom:12px;
}
.svc-cta-text p{color:rgba(255,255,255,.55);font-size:.93rem;max-width:480px}
.svc-cta-actions{display:flex;gap:14px;flex-wrap:wrap;flex-shrink:0}
@media(max-width:860px){
  .svc-cta-inner{justify-content:center;text-align:center}
  .svc-cta-actions{justify-content:center}
}

/* ── STATS SECTION ─────────────────────────────────────── */
/* ── STATS — Glassmorphism cards on gradient ─────────────── */
.stats-section{
  position:relative;
  padding:64px 0;
  background:linear-gradient(135deg,#04111e 0%,#071d3a 45%,#0a2544 100%);
  overflow:hidden;
}
/* Subtle circuit grid background */
.stats-section::before{
  content:'';position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(0,111,191,.1) 1px,transparent 1px),
    linear-gradient(90deg,rgba(0,111,191,.1) 1px,transparent 1px);
  background-size:52px 52px;
  pointer-events:none;
}
/* Top glow bar */
.stats-section::after{
  content:'';position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--navy-light),var(--sky),var(--navy-light),transparent);
}
.stats-grid{
  position:relative;z-index:1;
  max-width:1240px;margin:0 auto;padding:0 28px;
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:24px;
}
.stat-item{
  position:relative;
  padding:36px 28px 32px;
  border-radius:16px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(0,180,255,.12);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  text-align:center;
  transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease;
  overflow:hidden;
}
.stat-item::before{
  content:'';
  position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,transparent,rgba(0,180,255,.5),transparent);
  opacity:0;
  transition:opacity .35s ease;
}
.stat-item:hover{
  transform:translateY(-6px);
  box-shadow:0 20px 50px rgba(0,0,0,.35), 0 0 0 1px rgba(0,180,255,.2);
  border-color:rgba(0,180,255,.25);
}
.stat-item:hover::before{ opacity:1; }

/* Glowing corner accent */
.stat-item::after{
  content:'';
  position:absolute;bottom:-30px;right:-30px;
  width:90px;height:90px;border-radius:50%;
  background:radial-gradient(circle,rgba(0,111,191,.18) 0%,transparent 70%);
  pointer-events:none;
}

.stat-icon{
  width:52px;height:52px;border-radius:14px;
  background:linear-gradient(135deg,rgba(0,111,191,.25),rgba(0,180,255,.1));
  border:1px solid rgba(0,180,255,.18);
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 18px;
  font-size:1.35rem;
  color:var(--sky);
  box-shadow:0 4px 16px rgba(0,111,191,.2);
  transition:transform .35s ease, box-shadow .35s ease;
}
.stat-item:hover .stat-icon{
  transform:scale(1.1) rotate(-5deg);
  box-shadow:0 8px 24px rgba(0,111,191,.35);
}

.stat-number{
  font-family:var(--font-head);font-size:3rem;font-weight:900;
  line-height:1;margin-bottom:8px;
  letter-spacing:-.02em;
}
.counter{
  background:linear-gradient(135deg,#fff 20%,var(--sky) 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.stat-label{
  font-size:.68rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  color:rgba(255,255,255,.38);
  margin-top:4px;
}

@media(max-width:991px){
  .stats-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:480px){
  .stats-grid{grid-template-columns:repeat(2,1fr);gap:14px}
  .stat-item{padding:28px 18px 24px}
  .stat-number{font-size:2.4rem}
}

/* ── ABOUT TEASER (home) ───────────────────────────────── */
.about-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center;
}
.about-image-wrap{position:relative}
.about-image-main{
  border-radius:var(--radius-lg);overflow:hidden;
  box-shadow:var(--shadow-lg);
}
.about-image-main img{width:100%;height:480px;object-fit:cover}
.about-badge{
  position:absolute;bottom:-24px;right:-24px;
  background:var(--navy);color:#fff;
  border-radius:var(--radius);padding:22px 28px;
  text-align:center;box-shadow:var(--shadow);
}
.about-badge .num{font-family:var(--font-head);font-size:2.2rem;font-weight:900;line-height:1}
.about-badge .lbl{font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.65);margin-top:4px}

.about-content h2{font-size:clamp(1.7rem,3vw,2.4rem);margin-bottom:8px}
.about-content p{color:var(--muted);font-size:.93rem;margin-bottom:14px;line-height:1.8}

.about-features{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:28px;margin-bottom:32px}
.about-feature{
  display:flex;align-items:flex-start;gap:12px;
  padding:16px;border-radius:var(--radius);
  background:var(--off-white);border:1px solid var(--border);
  transition:all var(--transition);
}
.about-feature:hover{border-color:var(--sky);box-shadow:var(--shadow-sm)}
.about-feature-icon{
  width:38px;height:38px;border-radius:8px;flex-shrink:0;
  background:rgba(0,111,191,.1);
  display:flex;align-items:center;justify-content:center;
  color:var(--navy);font-size:.95rem;
}
.about-feature h4{font-size:.85rem;color:var(--dark);margin-bottom:2px}
.about-feature p{font-size:.78rem;color:var(--muted);margin:0}

@media(max-width:900px){
  .about-grid{grid-template-columns:1fr;gap:48px}
  .about-image-main img{height:280px}
  .about-badge{bottom:-16px;right:16px}
  .about-features{grid-template-columns:1fr}
}

/* ── SERVICE CARDS ─────────────────────────────────────── */
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.service-card{
  background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:36px 30px;position:relative;overflow:hidden;
  transition:all var(--transition);
}
.service-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--navy),var(--orange-light));
  transform:scaleX(0);transform-origin:left;
  transition:transform .45s ease;
}
.service-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:var(--sky)}
.service-card:hover::before{transform:scaleX(1)}
.service-icon{
  width:56px;height:56px;border-radius:12px;
  background:rgba(0,111,191,.09);
  display:flex;align-items:center;justify-content:center;
  font-size:1.45rem;color:var(--navy);margin-bottom:22px;
  transition:all var(--transition);
}
.service-card:hover .service-icon{background:var(--navy);color:#fff}
.service-card h3{font-size:1rem;color:var(--dark);margin-bottom:10px}
.service-card p{font-size:.87rem;color:var(--muted);line-height:1.7}

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

/* ── PROJECT CARDS ─────────────────────────────────────── */
.project-filter,.project-filters{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:48px}
.filter-btn{
  padding:8px 20px;background:#fff;border:2px solid var(--border);
  color:var(--muted);font-family:var(--font-head);font-size:.76rem;font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;border-radius:100px;cursor:pointer;
  transition:all var(--transition);
}
.filter-btn:hover{border-color:var(--navy);color:var(--navy)}
.filter-btn.active{background:var(--navy);border-color:var(--navy);color:#fff}

.projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.project-card{
  border-radius:var(--radius-lg);overflow:hidden;
  background:#fff;box-shadow:var(--shadow-sm);
  border:1px solid var(--border);
  transition:all var(--transition);
  display:flex;flex-direction:column;
}
.project-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);border-color:var(--sky)}

.project-thumb{
  position:relative;overflow:hidden;
  height:220px;background:var(--off-white);
}
.project-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.project-card:hover .project-thumb img{transform:scale(1.06)}

.project-overlay{
  position:absolute;inset:0;
  background:linear-gradient(to top,rgba(13,31,53,.92) 0%,rgba(0,111,191,.4) 60%,transparent 100%);
  display:flex;align-items:flex-end;padding:20px;
  opacity:0;transition:opacity var(--transition);
}
.project-overlay-content{display:flex;align-items:center;gap:10px}
.project-card:hover .project-overlay{opacity:1}
.view-btn{
  display:inline-flex;align-items:center;gap:7px;
  padding:9px 20px;background:var(--navy);color:#fff;
  border-radius:var(--radius-sm);font-family:var(--font-head);
  font-size:.76rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  transition:all var(--transition);
}
.view-btn:hover{background:#fff;color:var(--navy)}

.project-body{padding:20px 22px 24px}
.project-category{
  font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--navy);margin-bottom:7px;
}
.project-body h3{font-size:.97rem;color:var(--dark);margin-bottom:10px;line-height:1.35}
.project-meta{display:flex;flex-wrap:wrap;gap:12px}
.project-meta span{font-size:.76rem;color:var(--muted);display:flex;align-items:center;gap:5px}
.project-meta i{color:var(--navy);font-size:.8rem}

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

/* ── RICH TEXT OUTPUT ──────────────────────────────────── */
.project-description h2,.project-description h3{color:var(--dark);margin:20px 0 8px}
.project-description p{margin-bottom:12px}
.project-description ul,.project-description ol{padding-left:20px;margin-bottom:12px}
.project-description li{margin-bottom:4px}
.project-description a{color:var(--navy);text-decoration:underline}
.project-description strong{color:var(--dark)}

/* ── PROJECT DETAIL ────────────────────────────────────── */
.project-hero{
  height:52vh;min-height:360px;
  background-size:cover;background-position:center;
  position:relative;display:flex;align-items:flex-end;
}
.project-hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(to top,rgba(0,111,191,.95) 0%,rgba(13,31,53,.3) 70%,transparent 100%);
}
.project-hero-content{
  position:relative;z-index:1;
  max-width:1240px;margin:0 auto;padding:40px 28px;width:100%;
}

/* ── PARTNERS MARQUEE ──────────────────────────────────── */
.partners-marquee{overflow:hidden;position:relative}
.partners-marquee::before,.partners-marquee::after{
  content:'';position:absolute;top:0;bottom:0;width:100px;z-index:2;pointer-events:none;
}
.partners-marquee::before{left:0;background:linear-gradient(to right,#fff,transparent)}
.partners-marquee::after{right:0;background:linear-gradient(to left,#fff,transparent)}

.marquee-track{
  display:flex;gap:0;width:max-content;
  animation:marquee 30s linear infinite;
}
.marquee-track:hover{animation-play-state:paused}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

.marquee-item{
  padding:20px 36px;
  display:flex;align-items:center;justify-content:center;
  border-right:1px solid var(--border);min-width:160px;
}
.marquee-item img{
  max-height:40px;max-width:110px;object-fit:contain;
  filter:grayscale(1) opacity(.5);transition:all var(--transition);
}
.marquee-item:hover img{filter:grayscale(0) opacity(1)}
.marquee-item span{
  font-family:var(--font-head);font-weight:700;font-size:.9rem;
  color:var(--muted);white-space:nowrap;
}

/* Partners page (grouped) */
.partners-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px;margin-bottom:44px}
.partner-logo{
  display:flex;align-items:center;justify-content:center;
  height:56px;margin-bottom:10px;
}
.partner-logo img{max-height:44px;max-width:100%;object-fit:contain;filter:grayscale(.3);transition:filter var(--transition)}
.partner-card:hover .partner-logo img{filter:grayscale(0)}
.partners-grouped h3{
  font-size:.76rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);margin-bottom:20px;padding-bottom:10px;
  border-bottom:2px solid var(--border);
}
.partners-logos-row{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:44px}
.partner-card{
  background:#fff;border:1px solid var(--border);border-radius:var(--radius);
  padding:18px 24px;display:flex;align-items:center;justify-content:center;
  min-width:130px;transition:all var(--transition);
}
.partner-card:hover{border-color:var(--sky);box-shadow:var(--shadow);transform:translateY(-3px)}
.partner-card img{max-height:38px;max-width:100px;object-fit:contain;filter:grayscale(.3);transition:filter var(--transition)}
.partner-card:hover img{filter:grayscale(0)}
.partner-name{font-size:.82rem;font-weight:600;color:var(--dark-2)}

/* ── TEAM ──────────────────────────────────────────────── */

/* Grid */
.team-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:36px;
  align-items:start;
}

/* Card */
.team-card{
  border-radius:20px;overflow:hidden;
  background:#fff;
  box-shadow:0 4px 28px rgba(0,30,60,.07);
  border:1px solid transparent;
  transition:transform .4s cubic-bezier(.4,0,.2,1),
             box-shadow .4s ease,
             border-color .4s ease;
  display:flex;flex-direction:column;
}
.team-card:hover{
  transform:translateY(-12px);
  box-shadow:0 28px 72px rgba(0,30,60,.16);
  border-color:rgba(0,111,191,.2);
}

/* Photo area — portrait 3:4 */
.team-photo{
  position:relative;
  aspect-ratio:3/4;
  overflow:hidden;
  background:linear-gradient(145deg,var(--dark) 0%,#004d8a 55%,var(--navy) 100%);
  flex-shrink:0;
}
.team-photo img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .65s cubic-bezier(.4,0,.2,1);
}
.team-card:hover .team-photo img{transform:scale(1.08)}

/* Initials placeholder (no photo uploaded) */
.team-photo-init{
  width:100%;height:100%;
  display:flex;align-items:center;justify-content:center;
  position:relative;overflow:hidden;
  /* Subtle radial glows */
  background:
    radial-gradient(ellipse at 20% 20%, rgba(255,255,255,.07) 0%, transparent 55%),
    radial-gradient(ellipse at 80% 80%, rgba(255,255,255,.05) 0%, transparent 50%);
}
/* Decorative ring — top right */
.team-photo-init::before{
  content:'';position:absolute;
  top:-55px;right:-55px;
  width:190px;height:190px;border-radius:50%;
  border:1.5px solid rgba(255,255,255,.09);
  pointer-events:none;
}
/* Decorative ring — bottom left */
.team-photo-init::after{
  content:'';position:absolute;
  bottom:-75px;left:-75px;
  width:260px;height:260px;border-radius:50%;
  border:1.5px solid rgba(255,255,255,.06);
  pointer-events:none;
}
/* Avatar badge circle with the initial */
.team-photo-init span{
  position:relative;z-index:1;
  width:92px;height:92px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.1);
  border:2px solid rgba(255,255,255,.2);
  box-shadow:
    0 8px 32px rgba(0,0,0,.22),
    inset 0 1px 0 rgba(255,255,255,.25);
  font-family:var(--font-head);
  font-size:2.4rem;font-weight:900;
  color:rgba(255,255,255,.82);
  letter-spacing:-.02em;
  user-select:none;
  /* Subtle inner glow */
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}
/* Person silhouette icon below the badge */
.team-photo-init-icon{
  position:absolute;bottom:18px;left:50%;
  transform:translateX(-50%);
  font-size:1rem;color:rgba(255,255,255,.15);
  pointer-events:none;user-select:none;
}

/* Number watermark — fades on hover */
.team-photo[data-num]::after{
  content:attr(data-num);
  position:absolute;bottom:14px;right:18px;
  font-family:var(--font-head);
  font-size:4.5rem;font-weight:900;
  color:rgba(255,255,255,.14);
  line-height:1;
  pointer-events:none;user-select:none;
  transition:opacity .38s;
}
.team-card:hover .team-photo[data-num]::after{opacity:0}

/* Social overlay — slides up from bottom */
.team-overlay{
  position:absolute;bottom:0;left:0;right:0;
  padding:44px 20px 20px;
  background:linear-gradient(to top,rgba(0,15,50,.9) 0%,transparent 100%);
  transform:translateY(100%);
  transition:transform .38s cubic-bezier(.4,0,.2,1);
}
.team-card:hover .team-overlay{transform:translateY(0)}
.team-social{display:flex;gap:9px}
.team-social a{
  width:38px;height:38px;border-radius:50%;
  background:rgba(255,255,255,.18);backdrop-filter:blur(6px);
  border:1.5px solid rgba(255,255,255,.32);
  color:#fff;font-size:.85rem;
  display:flex;align-items:center;justify-content:center;
  text-decoration:none;transition:all .22s;
}
.team-social a:hover{background:#fff;color:var(--navy);border-color:#fff}

/* Info block */
.team-info{
  padding:24px 24px 22px;
  flex:1;display:flex;flex-direction:column;
  position:relative;
}
/* Gradient accent bar at top of info */
.team-info::before{
  content:'';
  position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--navy) 0%,var(--navy-light) 100%);
}
.team-info h3{
  font-size:1.06rem;font-weight:800;
  color:var(--dark);margin:0 0 5px;line-height:1.25;
}
.team-position{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.68rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;
  color:var(--navy-light);margin-bottom:16px;
}
.team-position::before{
  content:'';width:16px;height:2px;
  background:var(--navy-light);
  display:block;flex-shrink:0;border-radius:2px;
}

/* Bio expand/collapse */
.team-bio-wrap{
  margin-top:auto;padding-top:14px;
  border-top:1px solid var(--border);
}
.team-bio-short{
  font-size:.82rem;color:var(--mid-gray);line-height:1.7;
  display:-webkit-box;-webkit-line-clamp:3;
  -webkit-box-orient:vertical;overflow:hidden;
}
.team-bio-full{font-size:.82rem;color:var(--mid-gray);line-height:1.75}
.team-bio-full h2,.team-bio-full h3{font-size:.95rem;color:var(--dark);margin:12px 0 6px}
.team-bio-full p{margin:0 0 8px}
.team-bio-full ul,.team-bio-full ol{padding-left:18px;margin:0 0 8px}
.team-bio-full strong{color:var(--dark)}

.team-read-more{
  margin-top:10px;
  background:none;border:none;cursor:pointer;padding:0;
  font-size:.78rem;font-weight:700;color:var(--navy);
  display:inline-flex;align-items:center;gap:5px;
  transition:color .2s;
}
.team-read-more:hover{color:var(--navy-light)}
.team-read-more i{font-size:.8rem}

/* Responsive */
@media(max-width:1100px){.team-grid{grid-template-columns:repeat(3,1fr);gap:28px}}
@media(max-width:767px){.team-grid{grid-template-columns:repeat(2,1fr);gap:20px}}
@media(max-width:480px){.team-grid{grid-template-columns:1fr}}

/* ═══════════════════════════════════════════════════════════
   TEAM INTERNAL PAGE — Horizontal Profile Cards
   ═══════════════════════════════════════════════════════════ */

/* Values strip */
.team-values-strip{
  background:var(--dark);
  padding:28px 0;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.team-values-row{
  display:flex;align-items:center;
  justify-content:space-between;gap:24px;
  flex-wrap:wrap;
}
.tvs-item{
  display:flex;align-items:center;gap:14px;
}
.tvs-icon{
  width:42px;height:42px;border-radius:10px;flex-shrink:0;
  background:rgba(0,111,191,.25);border:1px solid rgba(0,111,191,.3);
  display:flex;align-items:center;justify-content:center;
}
.tvs-icon i{color:var(--navy-light);font-size:1rem}
.tvs-text{display:flex;flex-direction:column;gap:1px}
.tvs-text strong{
  font-family:var(--font-head);font-size:1rem;font-weight:800;
  color:#fff;line-height:1;
}
.tvs-text span{font-size:.72rem;color:rgba(255,255,255,.4);letter-spacing:.04em}

/* Profiles list */
.team-profiles{
  display:flex;flex-direction:column;gap:24px;
}

/* Single profile card — horizontal layout */
.tprofile-card{
  display:grid;
  grid-template-columns:148px 1fr;
  gap:0;
  background:#fff;
  border-radius:16px;
  overflow:hidden;
  border:1px solid var(--border);
  box-shadow:0 3px 20px rgba(0,30,60,.06);
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.tprofile-card:hover{
  transform:translateY(-4px);
  box-shadow:0 12px 40px rgba(0,30,60,.13);
  border-color:rgba(0,111,191,.18);
}

/* Avatar column */
.tprofile-avatar{
  position:relative;
  background:linear-gradient(160deg,var(--dark) 0%,#004D8A 60%,var(--navy) 100%);
  display:flex;align-items:center;justify-content:center;
  min-height:160px;
  overflow:hidden;
}
.tprofile-avatar::before{
  content:'';position:absolute;
  top:-40px;left:-40px;
  width:160px;height:160px;border-radius:50%;
  border:1px solid rgba(255,255,255,.07);
  pointer-events:none;
}
.tprofile-avatar::after{
  content:'';position:absolute;
  bottom:-50px;right:-50px;
  width:180px;height:180px;border-radius:50%;
  border:1px solid rgba(255,255,255,.05);
  pointer-events:none;
}
.tprofile-avatar img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .5s ease;
}
.tprofile-card:hover .tprofile-avatar img{transform:scale(1.05)}

/* Initial circle when no photo */
.tprofile-init{
  width:72px;height:72px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.1);
  border:2px solid rgba(255,255,255,.2);
  backdrop-filter:blur(6px);
  font-family:var(--font-head);font-size:2rem;font-weight:900;
  color:rgba(255,255,255,.85);
  position:relative;z-index:1;
  box-shadow:0 6px 24px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.2);
}

/* Number badge */
.tprofile-num{
  position:absolute;bottom:10px;right:12px;
  font-family:var(--font-head);font-size:2rem;font-weight:900;
  color:rgba(255,255,255,.13);line-height:1;
  pointer-events:none;user-select:none;
}

/* Body/info side */
.tprofile-body{
  padding:26px 30px;
  display:flex;flex-direction:column;
  border-left:3px solid var(--navy);
}

/* Header row: name + position + social */
.tprofile-header{
  display:flex;align-items:flex-start;
  justify-content:space-between;gap:16px;
  margin-bottom:14px;
}
.tprofile-name{
  font-size:1.12rem;font-weight:800;color:var(--dark);
  margin:0 0 5px;line-height:1.2;
}
.tprofile-position{
  display:inline-flex;align-items:center;gap:7px;
  font-size:.67rem;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--navy-light);
}
.tprofile-position::before{
  content:'';width:14px;height:2px;background:var(--navy-light);
  border-radius:2px;display:block;flex-shrink:0;
}

/* Social buttons */
.tprofile-social{display:flex;gap:7px;flex-shrink:0}
.tprofile-soc-btn{
  width:34px;height:34px;border-radius:50%;
  border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;
  color:var(--muted);font-size:.82rem;
  transition:all .2s ease;
}
.tprofile-soc-btn:hover{
  background:var(--navy);border-color:var(--navy);
  color:#fff;transform:translateY(-2px);
}

/* Bio */
.tprofile-bio-wrap{margin-top:auto;padding-top:14px;border-top:1px solid var(--border)}
.tprofile-bio-short{
  font-size:.84rem;color:var(--muted);line-height:1.7;
  display:-webkit-box;-webkit-line-clamp:2;
  -webkit-box-orient:vertical;overflow:hidden;
}
.tprofile-bio-full{font-size:.84rem;color:var(--muted);line-height:1.75}
.tprofile-bio-full p{margin:0 0 8px}
.tprofile-bio-full ul,.tprofile-bio-full ol{padding-left:18px;margin:0 0 8px}
.tprofile-bio-full strong{color:var(--dark)}
.tprofile-no-bio{font-size:.84rem;color:var(--muted);font-style:italic;margin-top:auto;padding-top:14px;border-top:1px solid var(--border)}
.tprofile-toggle{
  background:none;border:none;cursor:pointer;padding:0;margin-top:8px;
  font-size:.78rem;font-weight:700;color:var(--navy);
  display:inline-flex;align-items:center;gap:5px;transition:color .2s;
}
.tprofile-toggle:hover{color:var(--navy-light)}
.tprofile-toggle i{font-size:.78rem}

/* Join CTA */
.team-join-cta{
  background:var(--dark);padding:72px 0;
}
.team-join-inner{
  display:flex;align-items:center;justify-content:space-between;
  gap:40px;flex-wrap:wrap;
}
.team-join-inner h2{color:#fff;font-size:clamp(1.6rem,3vw,2.2rem);margin:8px 0 12px}
.team-join-inner p{color:rgba(255,255,255,.55);font-size:.93rem;max-width:520px;line-height:1.75}

/* Responsive */
@media(max-width:767px){
  .tprofile-card{grid-template-columns:100px 1fr}
  .tprofile-body{padding:20px}
  .tprofile-name{font-size:1rem}
  .team-values-row{gap:16px}
}
@media(max-width:540px){
  .tprofile-card{grid-template-columns:1fr;grid-template-rows:auto 1fr}
  .tprofile-avatar{min-height:120px}
  .team-join-inner{flex-direction:column;text-align:center}
  .tvs-item:nth-child(n+3){display:none}
}

/* ── CERTIFICATES ──────────────────────────────────────── */
/* ── CERTIFICATES ──────────────────────────────────────── */

/* Category section header */
.cert-section{margin-bottom:64px}
.cert-section:last-child{margin-bottom:0}
.cert-section-header{
  display:flex;align-items:center;gap:16px;
  margin-bottom:32px;padding-bottom:16px;
  border-bottom:2px solid var(--border);
}
.cert-section-icon{
  width:48px;height:48px;border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;font-size:1.2rem;
}
.cert-section-icon.cat-certification{background:rgba(0,111,191,.1);color:var(--navy)}
.cert-section-icon.cat-authorization{background:rgba(16,185,129,.1);color:#0d9e6e}
.cert-section-icon.cat-training{background:rgba(245,158,11,.1);color:#d97706}
.cert-section-label{
  font-family:var(--font-head);font-size:1.25rem;
  font-weight:800;color:var(--dark);
}
.cert-section-count{
  margin-left:auto;
  background:var(--off-white);border:1px solid var(--border);
  border-radius:20px;padding:3px 12px;
  font-size:.73rem;font-weight:700;color:var(--muted);
}

/* Grid */
.certs-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
}

/* Card */
.cert-card{
  background:#fff;
  border-radius:16px;
  border:1px solid var(--border);
  border-left:4px solid transparent;
  padding:24px;
  display:flex;flex-direction:column;gap:0;
  transition:transform .32s ease,box-shadow .32s ease,border-color .32s ease;
  position:relative;overflow:hidden;
}
.cert-card::before{
  content:'';
  position:absolute;top:0;right:0;
  width:80px;height:80px;
  border-radius:0 16px 0 80px;
  opacity:.04;
}
.cert-card:hover{
  transform:translateY(-6px);
  box-shadow:0 16px 48px rgba(0,30,60,.12);
}
/* left accent color by category */
.cert-card.cat-certification{border-left-color:var(--navy)}
.cert-card.cat-certification::before{background:var(--navy)}
.cert-card.cat-certification:hover{border-color:var(--navy);border-left-color:var(--navy)}

.cert-card.cat-authorization{border-left-color:#0d9e6e}
.cert-card.cat-authorization::before{background:#0d9e6e}
.cert-card.cat-authorization:hover{border-color:#0d9e6e;border-left-color:#0d9e6e}

.cert-card.cat-training{border-left-color:#d97706}
.cert-card.cat-training::before{background:#d97706}
.cert-card.cat-training:hover{border-color:#d97706;border-left-color:#d97706}

/* Card top row: icon + date */
.cert-card-top{
  display:flex;align-items:flex-start;justify-content:space-between;
  margin-bottom:16px;
}
.cert-card-icon{
  width:44px;height:44px;border-radius:11px;
  display:flex;align-items:center;justify-content:center;
  font-size:1.15rem;flex-shrink:0;
}
.cert-card.cat-certification .cert-card-icon{background:rgba(0,111,191,.1);color:var(--navy)}
.cert-card.cat-authorization .cert-card-icon{background:rgba(16,185,129,.1);color:#0d9e6e}
.cert-card.cat-training .cert-card-icon{background:rgba(245,158,11,.1);color:#d97706}

.cert-card-date{
  font-size:.72rem;font-weight:600;color:var(--muted);
  display:flex;align-items:center;gap:5px;
  margin-top:4px;white-space:nowrap;
}

/* Card content */
.cert-card-title{
  font-family:var(--font-head);font-size:.95rem;font-weight:800;
  color:var(--dark);line-height:1.3;margin-bottom:6px;
}
.cert-card-issuer{
  font-size:.76rem;font-weight:600;color:var(--muted);
  display:flex;align-items:center;gap:6px;margin-bottom:12px;
}
.cert-card-issuer::before{
  content:'';width:12px;height:1.5px;
  background:currentColor;display:block;flex-shrink:0;border-radius:2px;
}
.cert-desc-wrap{flex:1}
.cert-card-desc{font-size:.82rem;color:var(--mid-gray);line-height:1.65}
.cert-desc-short{
  display:-webkit-box;-webkit-line-clamp:2;
  -webkit-box-orient:vertical;overflow:hidden;
}
.cert-desc-full{font-size:.82rem;color:var(--mid-gray);line-height:1.65}
.cert-read-more{
  margin-top:7px;
  background:none;border:none;cursor:pointer;padding:0;
  font-size:.76rem;font-weight:700;color:var(--navy);
  display:inline-flex;align-items:center;gap:4px;
  transition:color .2s;
}
.cert-read-more:hover{color:var(--navy-light)}
.cert-read-more i{font-size:.76rem}

/* Card footer */
.cert-card-footer{
  display:flex;align-items:center;gap:10px;
  margin-top:18px;padding-top:14px;
  border-top:1px solid var(--border);
}
.cert-view-btn{
  display:inline-flex;align-items:center;gap:6px;
  font-size:.76rem;font-weight:700;
  color:var(--navy);border:1.5px solid var(--navy);
  padding:6px 14px;border-radius:6px;
  transition:all .22s;text-decoration:none;
}
.cert-view-btn:hover{background:var(--navy);color:#fff}
.cert-pdf-btn{
  display:inline-flex;align-items:center;gap:6px;
  font-size:.76rem;font-weight:700;
  color:#d97706;border:1.5px solid #d97706;
  padding:6px 14px;border-radius:6px;
  transition:all .22s;text-decoration:none;
}
.cert-pdf-btn:hover{background:#d97706;color:#fff}

/* Lightbox for cert images */
.cert-img-overlay{
  display:none;position:fixed;inset:0;
  background:rgba(0,0,0,.92);z-index:9999;
  align-items:center;justify-content:center;
  padding:24px;
}
.cert-img-overlay.active{display:flex}
.cert-img-overlay img{
  max-width:90vw;max-height:90vh;
  border-radius:12px;object-fit:contain;
  box-shadow:0 24px 80px rgba(0,0,0,.5);
}
.cert-img-close{
  position:absolute;top:20px;right:24px;
  background:rgba(255,255,255,.15);border:none;
  color:#fff;width:44px;height:44px;border-radius:50%;
  font-size:1.2rem;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background .2s;
}
.cert-img-close:hover{background:rgba(255,255,255,.25)}

@media(max-width:991px){.certs-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.certs-grid{grid-template-columns:1fr}}

/* ── HOME TEAM PREVIEW GRID ────────────────────────────── */
/* ── Section CTA row ── */
.section-cta{
  text-align:center;
  margin-top:40px;
}

/* ── Home team — parallax section ── */
.home-team-section{
  position:relative;
  padding:120px 0;
  overflow:hidden;
  /* Parallax layer */
  background-image:url('../images/team-bg.svg');
  background-size:cover;
  background-position:center 40%;
  background-attachment:fixed;
  /* Fallback solid if image missing */
  background-color:#071d3a;
  isolation:isolate;
}

/* Dark gradient overlay — keeps text fully readable */
.home-team-section::before{
  content:'';
  position:absolute;inset:0;
  background:linear-gradient(
    135deg,
    rgba(4,17,30,.88)  0%,
    rgba(0,77,138,.75) 50%,
    rgba(4,17,30,.88)  100%);
  z-index:0;
}

/* Circuit grid texture on top of overlay */
.home-team-section::after{
  content:'';
  position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(0,180,255,.08) 1px,transparent 1px),
    linear-gradient(90deg,rgba(0,180,255,.08) 1px,transparent 1px);
  background-size:56px 56px;
  z-index:0;
  pointer-events:none;
}

/* Content sits above all layers */
.home-team-section .container-kelm{
  position:relative;
  z-index:1;
}

.home-team-text{
  max-width:780px;
  margin:0 auto;
  text-align:center;
}

/* On dark bg — eyebrow uses sky color */
.home-team-section .eyebrow{
  color:var(--sky);
}
.home-team-section .eyebrow::before,
.home-team-section .eyebrow::after{
  background:var(--sky);
}

.home-team-text h2{
  font-size:clamp(2rem,3.6vw,3rem);
  color:#fff;
  margin-bottom:14px;
}

/* Divider glows on dark bg */
.home-team-section .divider{
  background:linear-gradient(90deg,transparent,var(--sky),transparent);
  opacity:.7;
}

.home-team-text p{
  font-size:1.08rem;
  color:rgba(255,255,255,.72);
  line-height:1.85;
  margin-bottom:0;
}

/* Button switches to white-bordered on dark bg */
.home-team-section .btn-primary-kelm{
  color:#fff;
  border-color:rgba(255,255,255,.6);
  background:transparent;
  box-shadow:none;
}
.home-team-section .btn-primary-kelm:hover{
  background:#fff;
  color:var(--navy);
  border-color:#fff;
  box-shadow:0 8px 28px rgba(255,255,255,.15);
}
.home-team-section .btn-primary-kelm:hover::after{ opacity:0; }

/* iOS/mobile: fixed attachment not supported — fallback to scroll */
@media(max-width:767px){
  .home-team-section{
    background-attachment:scroll;
    background-position:center center;
    padding:96px 0;
  }
}

/* ── HOME TEAM GRID — portrait cards ── */
.home-team-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:24px;
  align-items:start;
}
.home-team-grid .team-card{
  border-radius:18px;
  background:#fff;
  box-shadow:0 4px 24px rgba(0,30,60,.07);
  border:1px solid var(--border);
  overflow:hidden;
  transition:transform .38s cubic-bezier(.4,0,.2,1), box-shadow .38s ease, border-color .38s ease;
}
.home-team-grid .team-card:hover{
  transform:translateY(-10px);
  box-shadow:0 24px 60px rgba(0,30,60,.14);
  border-color:rgba(0,111,191,.22);
}
.home-team-grid .team-photo{
  aspect-ratio:3/4;
  background:linear-gradient(150deg,#0D2B52 0%,#006FBF 55%,#17A5D7 100%);
  position:relative;overflow:hidden;
}
/* Decorative concentric rings on photo placeholder */
.home-team-grid .team-photo-init::before{
  width:220px;height:220px;
  top:-60px;right:-60px;
  border-color:rgba(255,255,255,.08);
}
.home-team-grid .team-photo-init::after{
  width:300px;height:300px;
  bottom:-80px;left:-80px;
  border-color:rgba(255,255,255,.05);
}
/* Info strip */
.home-team-grid .team-info{
  padding:20px 20px 18px;
  border-top:3px solid var(--navy);
  background:#fff;
}
.home-team-grid .team-info h3{
  font-size:1rem;font-weight:800;
  color:var(--dark);margin:0 0 4px;line-height:1.3;
}
.home-team-grid .team-position{
  font-size:.65rem;font-weight:700;
  letter-spacing:.13em;text-transform:uppercase;
  color:var(--navy-light);
  display:flex;align-items:center;gap:6px;
  margin-bottom:0;
}
.home-team-grid .team-position::before{
  content:'';width:14px;height:2px;
  background:var(--navy);border-radius:2px;flex-shrink:0;
}

@media(max-width:991px){.home-team-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.home-team-grid{grid-template-columns:repeat(2,1fr);gap:14px}}

/* ── PROJECT PILL NAVIGATOR ─────────────────────────────── */
.proj-nav-bar{
  position:sticky;top:var(--nav-height);z-index:200;
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border-bottom:1px solid var(--border);
  box-shadow:0 4px 24px rgba(0,30,60,.08);
}
.proj-nav-inner{
  max-width:1240px;margin:0 auto;padding:12px 28px;
  display:flex;align-items:center;gap:6px;
  position:relative;overflow-x:auto;
  scrollbar-width:none;
}
.proj-nav-inner::-webkit-scrollbar{display:none}
.proj-nav-pill{
  position:absolute;top:12px;bottom:12px;
  border-radius:12px;pointer-events:none;
  transition:left .38s cubic-bezier(.4,0,.2,1),
             width .38s cubic-bezier(.4,0,.2,1);
  z-index:0;
}
.proj-nav-btn{
  position:relative;z-index:1;
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 18px;border:none;background:none;
  border-radius:12px;cursor:pointer;
  font-family:var(--font-head);font-size:.8rem;font-weight:600;
  color:var(--muted);white-space:nowrap;outline:none;
  transition:color .3s;
}
.proj-nav-btn i{font-size:.88rem}
.proj-nav-btn .pnb-count{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:22px;height:20px;padding:0 7px;border-radius:20px;
  font-size:.65rem;font-weight:800;
  background:var(--off-white);border:1px solid var(--border);
  color:var(--muted);transition:background .3s,color .3s,border-color .3s;
}
.proj-nav-btn.pnb-active{color:#fff}
.proj-nav-btn.pnb-active .pnb-count{
  background:rgba(255,255,255,.22);
  border-color:rgba(255,255,255,.3);color:#fff;
}
.proj-nav-sep{
  width:4px;height:4px;border-radius:50%;
  background:var(--border);flex-shrink:0;
}
@media(max-width:600px){
  .proj-nav-btn .pnb-label{display:none}
  .proj-nav-btn{padding:10px 14px}
}

/* ── CERT SECTION NAVIGATOR ────────────────────────────── */
.cert-nav-bar{
  position:sticky;
  top:var(--nav-height);
  z-index:200;
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  border-bottom:1px solid var(--border);
  box-shadow:0 4px 24px rgba(0,30,60,.08);
}
.cert-nav-inner{
  max-width:1240px;margin:0 auto;padding:12px 28px;
  display:flex;align-items:center;gap:6px;
  position:relative;
}

/* Sliding pill (positioned via JS) */
.cert-nav-pill{
  position:absolute;
  top:12px;bottom:12px;
  border-radius:12px;
  pointer-events:none;
  transition:left .38s cubic-bezier(.4,0,.2,1),
             width .38s cubic-bezier(.4,0,.2,1),
             background-color .38s ease;
  z-index:0;
}

/* Buttons */
.cert-nav-btn{
  position:relative;z-index:1;
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 18px;border:none;background:none;
  border-radius:12px;cursor:pointer;
  font-family:var(--font-head);
  font-size:.8rem;font-weight:600;
  color:var(--muted);
  transition:color .3s ease;
  white-space:nowrap;
  outline:none;
}
.cert-nav-btn i{font-size:.88rem;transition:color .3s}
.cert-nav-btn .cnb-label{transition:color .3s}
.cert-nav-btn .cnb-count{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:22px;height:20px;padding:0 7px;
  border-radius:20px;font-size:.65rem;font-weight:800;
  background:var(--off-white);border:1px solid var(--border);
  color:var(--muted);
  transition:background .3s,color .3s,border-color .3s;
}

/* Active state — text becomes white (pill covers bg) */
.cert-nav-btn.cnb-active{color:#fff}
.cert-nav-btn.cnb-active .cnb-count{
  background:rgba(255,255,255,.22);
  border-color:rgba(255,255,255,.3);
  color:#fff;
}

/* Divider dots between buttons */
.cert-nav-sep{
  width:4px;height:4px;border-radius:50%;
  background:var(--border);flex-shrink:0;
  transition:opacity .3s;
}

/* Progress bar at bottom — shows scroll progress through active section */
.cert-nav-progress{
  position:absolute;bottom:0;left:0;
  height:2px;width:0%;
  transition:width .1s linear,background-color .38s ease;
  border-radius:0 2px 0 0;
}

/* Responsive: hide labels on small screens */
@media(max-width:600px){
  .cert-nav-btn .cnb-label{display:none}
  .cert-nav-btn{padding:10px 14px}
}

/* ── CERT NAV BAR — mobile improvements ──────────────────── */
@media(max-width:767px){
  .cert-nav-bar{
    /* Sits directly under the solid navbar on inner pages */
    top:var(--nav-height);
  }
  .cert-nav-inner{
    padding:8px 16px;
    gap:4px;
    justify-content:center; /* center buttons when few categories */
    overflow-x:auto;        /* allow horizontal scroll if many cats */
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .cert-nav-inner::-webkit-scrollbar{display:none}
  .cert-nav-pill{
    top:8px;bottom:8px;
    border-radius:10px;
  }
  .cert-nav-btn{
    padding:8px 14px;
    font-size:.78rem;
    gap:6px;
  }
  .cert-nav-btn .cnb-count{
    min-width:18px;height:18px;
    font-size:.6rem;padding:0 5px;
  }
  .cert-nav-sep{display:none} /* hide dots — buttons are spaced by gap */
}

/* ── TRUST BANNER SECTION ────────────────────────────────── */
.trust-banner-section{
  background:var(--off-white);
  padding:72px 0;
  border-top:1px solid var(--border);
}

/* ── TRUST BADGES GRID ───────────────────────────────────── */
.trust-badges-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
}
.trust-badge{
  background:#fff;
  border-radius:16px;
  padding:32px 28px;
  border:1px solid var(--border);
  text-align:center;
  box-shadow:0 2px 16px rgba(0,30,60,.06);
  transition:transform .25s ease, box-shadow .25s ease;
}
.trust-badge:hover{
  transform:translateY(-4px);
  box-shadow:0 8px 32px rgba(0,30,60,.1);
}
.trust-badge-icon{
  width:56px;height:56px;border-radius:14px;
  margin:0 auto 18px;
  display:flex;align-items:center;justify-content:center;
}
.trust-badge-icon i{font-size:1.4rem;}
.trust-badge-title{
  font-size:.95rem;color:var(--dark);margin-bottom:10px;
  font-family:var(--font-head);font-weight:700;
}
.trust-badge-desc{
  font-size:.82rem;color:var(--mid-gray);line-height:1.65;margin:0;
}

/* Responsive trust grid */
@media(max-width:767px){
  .trust-banner-section{padding:52px 0;}
  .trust-badges-grid{
    grid-template-columns:1fr;
    gap:16px;
    max-width:400px;
    margin:0 auto;
  }
  .trust-badge{padding:24px 20px;}
  .trust-badge-icon{width:48px;height:48px;border-radius:12px;margin-bottom:14px;}
  .trust-badge-icon i{font-size:1.2rem;}
  .trust-badge-title{font-size:.9rem;}
}
@media(min-width:481px) and (max-width:767px){
  /* 2-column on larger phones in landscape */
  .trust-badges-grid{
    grid-template-columns:1fr 1fr;
    max-width:100%;
  }
  .trust-badges-grid .trust-badge:last-child:nth-child(odd){
    grid-column:1/-1; /* center lone last card */
    max-width:50%;margin:0 auto;
  }
}

/* ── MISSION / VISION / VALUES CARDS ────────────────────── */
.mvv-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
}
.mvv-card{
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:36px 28px;
  text-align:center;
  box-shadow:0 2px 16px rgba(0,30,60,.06);
  position:relative;overflow:hidden;
  transition:transform .25s ease, box-shadow .25s ease;
}
.mvv-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--navy),var(--orange-light));
  transform:scaleX(0);transform-origin:left;
  transition:transform .45s ease;
}
.mvv-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}
.mvv-card:hover::before{transform:scaleX(1)}
.mvv-icon{
  width:56px;height:56px;border-radius:14px;
  background:rgba(0,111,191,.09);
  display:flex;align-items:center;justify-content:center;
  color:var(--navy);font-size:1.3rem;
  margin:0 auto 20px;
  transition:background .25s ease,color .25s ease;
}
.mvv-card:hover .mvv-icon{background:var(--navy);color:#fff}
.mvv-title{
  font-size:.97rem;color:var(--dark);
  margin-bottom:12px;
}
.mvv-desc{
  font-size:.86rem;color:var(--muted);
  line-height:1.75;margin:0;
}

/* Tablet: 2+1 layout */
@media(max-width:900px){
  .mvv-grid{ grid-template-columns:1fr 1fr; }
  .mvv-grid .mvv-card:last-child{ grid-column:1/-1; max-width:480px; margin:0 auto; }
}

/* Mobile: stacked, icon+title header + description below */
@media(max-width:600px){
  .mvv-grid{
    grid-template-columns:1fr;
    gap:14px;
  }
  .mvv-card{
    padding:18px 16px;
    text-align:left;
    display:grid;
    grid-template-columns:auto 1fr;
    grid-template-rows:auto auto;
    column-gap:14px;
    row-gap:10px;
    align-items:start;
  }
  .mvv-icon{
    grid-column:1; grid-row:1;
    width:44px;height:44px;
    border-radius:12px;font-size:1.05rem;
    margin:0;
    align-self:center;
  }
  .mvv-title{
    grid-column:2; grid-row:1;
    font-size:.93rem;
    margin-bottom:0;
    align-self:center;
    line-height:1.3;
  }
  .mvv-desc{
    grid-column:1/-1; grid-row:2;
    font-size:.82rem;
    padding-top:8px;
    border-top:1px solid var(--border);
  }
  .mvv-grid .mvv-card:last-child{
    grid-column:1; max-width:100%; margin:0;
  }
}

/* ── ABOUT PAGE ────────────────────────────────────────── */
.about-story-grid{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.about-story-grid img{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}
.mission-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.mission-card{
  padding:32px 26px;border-radius:var(--radius-lg);
  border-top:4px solid var(--navy);
  background:#fff;box-shadow:var(--shadow-sm);
}
.mission-card h3{font-size:.97rem;color:var(--dark);margin:14px 0 10px}
.mission-card p{font-size:.86rem;color:var(--muted);line-height:1.7}
.mission-icon{font-size:1.7rem;color:var(--navy)}
.sectors-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.sector-item{
  padding:18px 16px;border-radius:var(--radius);
  background:var(--off-white);border:1px solid var(--border);
  display:flex;align-items:center;gap:10px;
  font-size:.84rem;font-weight:600;color:var(--dark-2);
  transition:all var(--transition);
}
.sector-item:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.sector-item:hover i{color:#fff}
.sector-item i{color:var(--navy);font-size:1.05rem;flex-shrink:0}

@media(max-width:900px){
  .about-story-grid{grid-template-columns:1fr;gap:32px}
  .mission-grid{grid-template-columns:1fr}
  .sectors-grid{grid-template-columns:repeat(2,1fr)}
}

/* ── CONTACT ───────────────────────────────────────────── */
.contact-grid{display:grid;grid-template-columns:1fr 1.6fr;gap:40px;align-items:start}

/* Info card */
.contact-info-card{
  background:var(--dark);border-radius:var(--radius-lg);
  padding:36px 32px;position:sticky;top:calc(var(--nav-height) + 24px);
}
.contact-info-card h3{color:#fff;margin-bottom:6px;font-size:1.15rem}
.contact-info-card > p{color:rgba(255,255,255,.5);font-size:.86rem;margin-bottom:24px}

.contact-detail{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.07)}
.contact-detail:last-of-type{border-bottom:none}
.contact-detail-icon{
  width:38px;height:38px;border-radius:9px;flex-shrink:0;
  background:rgba(0,111,191,.2);
  display:flex;align-items:center;justify-content:center;
  font-size:.92rem;color:var(--orange-light);
}
.contact-detail-text .label{font-size:.65rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.35);margin-bottom:3px}
.contact-detail-text a,.contact-detail-text p{font-size:.85rem;color:rgba(255,255,255,.7);margin:0;transition:color var(--transition)}
.contact-detail-text a:hover{color:var(--sky)}
.contact-socials{display:flex;gap:9px;margin-top:20px}

/* Form card */
.contact-form-card{
  background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:40px;box-shadow:var(--shadow);
}
.contact-form-card h3{font-size:1.15rem;color:var(--dark)}

.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}
.form-group label{font-size:.74rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--dark-2)}
.required{color:var(--orange)}

.form-control-kelm{
  padding:11px 15px;border:1.5px solid var(--border);border-radius:var(--radius);
  font-family:var(--font-body);font-size:.9rem;color:var(--text);
  background:#fff;transition:border-color var(--transition);outline:none;width:100%;
}
.form-control-kelm:focus{border-color:var(--navy);box-shadow:0 0 0 3px rgba(0,111,191,.1)}
.form-control-kelm.textarea,textarea.form-control-kelm{resize:vertical;min-height:130px}
select.form-control-kelm{cursor:pointer}

.form-alert{
  padding:12px 16px;border-radius:var(--radius);font-size:.88rem;margin-bottom:20px;
}
.form-alert.success{background:#d1fae5;color:#065f46;border:1px solid #6ee7b7}
.form-alert.error{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}

/* Legacy aliases for old class names */
.form-grp{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}
.form-grp label{font-size:.74rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--dark-2)}
.form-grp input,.form-grp select,.form-grp textarea{
  padding:11px 15px;border:1.5px solid var(--border);border-radius:var(--radius);
  font-family:var(--font-body);font-size:.9rem;color:var(--text);
  background:#fff;transition:border-color var(--transition);outline:none;width:100%;
}
.form-grp input:focus,.form-grp select:focus,.form-grp textarea:focus{border-color:var(--navy);box-shadow:0 0 0 3px rgba(0,111,191,.1)}
.form-grp textarea{resize:vertical;min-height:128px}

@media(max-width:900px){
  .contact-grid{grid-template-columns:1fr;gap:32px}
  .form-row{grid-template-columns:1fr}
  .contact-info-card{position:static}
}

/* ═══════════════════════════════════════════════════════════
   FOOTER — Compact Modern
   ═══════════════════════════════════════════════════════════ */
/* ═══════════════════════════════════════════════════════════
   FOOTER — Power Grid / Electrical Theme
   ═══════════════════════════════════════════════════════════ */

footer{
  /* Rich electric-blue diagonal base — NOT flat black */
  background:linear-gradient(135deg,
    #071d3a 0%,
    #0d2b52 30%,
    #071424 70%,
    #04111e 100%);
  color:#fff;
  position:relative;
  overflow:hidden;
}

/* ── LAYER 1 : Grid lines + glowing junction dots ──────── */
footer::before{
  content:'';
  position:absolute;inset:0;
  /* 3 stacked patterns — same tile size so dots land on intersections */
  background-image:
    /* horizontal lines */
    linear-gradient(0deg,   transparent calc(100% - 1px), rgba(0,180,255,.22) 100%),
    /* vertical lines */
    linear-gradient(90deg,  transparent calc(100% - 1px), rgba(0,180,255,.22) 100%),
    /* glowing dot at every crossing */
    radial-gradient(circle, rgba(0,210,255,.6) 1.5px, rgba(0,210,255,.12) 3px, transparent 5px);
  background-size:64px 64px, 64px 64px, 64px 64px;
  animation:grid-breathe 4s ease-in-out infinite;
  pointer-events:none;
  z-index:0;
}

/* ── LAYER 2 : Glow radials — power station ambience ───── */
footer::after{
  content:'';
  position:absolute;inset:0;
  background:
    /* strong navy bloom — bottom-left (brand anchor) */
    radial-gradient(ellipse at 10% 95%, rgba(0,111,191,.55) 0%, transparent 42%),
    /* cyan plasma glow — top-right (electric accent) */
    radial-gradient(ellipse at 90% 5%,  rgba(0,200,255,.3)  0%, transparent 38%),
    /* mid warm-blue — keeps center from washing out */
    radial-gradient(ellipse at 55% 50%, rgba(0,50,120,.4)   0%, transparent 60%);
  pointer-events:none;
  z-index:0;
}

/* All real content sits above the two pseudo layers */
footer > *{ position:relative; z-index:1; }

/* ── LAYER 3 : Top-border — live electric arc gradient ─── */
footer .footer-elec-sweep::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,
    transparent  0%,
    #006fbf     18%,
    #00d4ff     50%,
    #006fbf     82%,
    transparent 100%);
  animation:arc-pulse 3s ease-in-out infinite;
  z-index:5;
}

/* ── LAYER 4 : Diagonal lightning sweep ─────────────────── */
.footer-elec-sweep{
  position:absolute;
  top:0;bottom:0;left:-60%;
  width:50%;
  background:linear-gradient(105deg,
    transparent          0%,
    rgba(0,180,255,.0)  35%,
    rgba(0,220,255,.11) 50%,
    rgba(0,180,255,.0)  65%,
    transparent         100%);
  animation:lightning-sweep 8s ease-in-out infinite;
  pointer-events:none;
  z-index:1;
}

/* ── LAYER 5 : Scattered power-node halos ────────────────── */
/* We fake extra large glowing nodes using box-shadow on the sweep */
.footer-elec-sweep::after{
  content:'';
  position:absolute;
  top:38%; left:50%;
  width:6px; height:6px;
  margin:-3px;
  border-radius:50%;
  background:#00d4ff;
  box-shadow:
    0   0  0  2px  rgba(0,212,255,.3),
    0   0  0  8px  rgba(0,212,255,.15),
    0   0  0  18px rgba(0,212,255,.07),
    /* extra nodes scattered */
    -192px  64px 0 2px rgba(0,212,255,.25),
    -192px  64px 0 8px rgba(0,212,255,.1),
     128px -32px 0 2px rgba(0,212,255,.2),
     128px -32px 0 8px rgba(0,212,255,.07),
     320px  96px 0 2px rgba(0,212,255,.22),
     320px  96px 0 8px rgba(0,212,255,.09);
  animation:nodes-flicker 5s ease-in-out infinite;
  pointer-events:none;
  z-index:2;
}

/* ── Animations ──────────────────────────────────────────── */
@keyframes grid-breathe{
  0%,100%{ opacity:.75; }
  50%     { opacity:1;   }
}
@keyframes arc-pulse{
  0%,100%{ opacity:.6; }
  50%     { opacity:1; filter:drop-shadow(0 0 6px #00d4ff); }
}
@keyframes lightning-sweep{
  0%        { transform:translateX(0);     opacity:0;   }
  8%        { opacity:1; }
  80%       { opacity:1; }
  100%      { transform:translateX(340%);  opacity:0;   }
}
@keyframes nodes-flicker{
  0%,100%  { opacity:.8; }
  30%      { opacity:1;  filter:drop-shadow(0 0 4px rgba(0,210,255,.8)); }
  60%      { opacity:.6; }
}

/* Main 4-col grid */
.footer-main{
  max-width:1240px;margin:0 auto;
  padding:56px 28px 48px;
  display:grid;
  grid-template-columns:2fr 1fr 1.4fr 1.2fr;
  gap:48px;
  border-bottom:1px solid rgba(255,255,255,.06);
}

/* Brand */
.footer-brand{}
.footer-logo-img{
  max-height:48px;width:auto;margin-bottom:14px;
}
.footer-wordmark{margin-bottom:14px}
.fw-brand{
  display:block;font-family:var(--font-head);font-weight:900;
  font-size:1.7rem;color:#fff;line-height:1;letter-spacing:-.02em;
}
.fw-sub{
  display:block;font-size:.58rem;letter-spacing:.16em;
  text-transform:uppercase;color:rgba(255,255,255,.32);margin-top:3px;
}
.footer-tagline{
  font-size:.83rem;color:rgba(255,255,255,.42);
  line-height:1.75;max-width:260px;margin-bottom:18px;
}
.footer-socials{display:flex;gap:7px}
.fsoc-link{
  width:33px;height:33px;border-radius:50%;
  border:1px solid rgba(255,255,255,.12);
  display:flex;align-items:center;justify-content:center;
  color:rgba(255,255,255,.45);font-size:.8rem;
  transition:all var(--transition);
}
.fsoc-link:hover{
  background:var(--navy);border-color:var(--navy);
  color:#fff;transform:translateY(-2px);
}

/* Column headings */
.footer-col-title{
  font-size:.65rem;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:rgba(255,255,255,.35);
  margin-bottom:16px;
}

/* Nav list */
.footer-col-list{list-style:none;margin:0;padding:0}
.footer-col-list li{margin-bottom:7px}
.footer-col-list li a{
  font-size:.84rem;color:rgba(255,255,255,.5);
  transition:color var(--transition);
}
.footer-col-list li a:hover{color:#fff}

/* Contact items */
.footer-contact-item{
  display:flex;align-items:flex-start;gap:10px;margin-bottom:12px;
}
.footer-contact-item i{
  color:var(--navy-light);font-size:.82rem;margin-top:3px;flex-shrink:0;
}
.footer-contact-item span,
.footer-contact-item a{
  font-size:.83rem;color:rgba(255,255,255,.48);line-height:1.55;
  transition:color var(--transition);
}
.footer-contact-item a:hover{color:#fff}

/* ISO cert column */
.footer-cert-col{}
.footer-iso-img{
  width:270px;height:auto;margin-bottom:12px;
  filter:drop-shadow(0 2px 8px rgba(0,0,0,.5));
}
.footer-iso-note{
  font-size:.75rem;color:rgba(255,255,255,.3);line-height:1.6;
}

/* Bottom bar */
.footer-bottom{
  max-width:1240px;margin:0 auto;padding:14px 28px;
  display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:8px;
}
.footer-bottom p{font-size:.76rem;color:rgba(255,255,255,.22)}
.footer-bottom-links{display:flex;align-items:center;gap:8px}
.footer-bottom-links a{font-size:.74rem;color:rgba(255,255,255,.25);transition:color var(--transition)}
.footer-bottom-links a:hover{color:rgba(255,255,255,.6)}
.footer-bottom-links span{color:rgba(255,255,255,.12)}

/* Responsive */
@media(max-width:1024px){
  .footer-main{grid-template-columns:1fr 1fr;gap:36px;padding:48px 28px 40px}
  .footer-brand{grid-column:1/-1}
  .footer-tagline{max-width:100%}
}
@media(max-width:540px){
  .footer-main{grid-template-columns:1fr;gap:28px;padding:40px 20px 32px}
  .footer-bottom{flex-direction:column;text-align:center;gap:6px;padding:14px 20px}
}

/* ═══════════════════════════════════════════════════════════
   COMPANY PROFILE PROMO — Homepage Section
   ═══════════════════════════════════════════════════════════ */
.profile-promo{
  position:relative;overflow:hidden;
  background:linear-gradient(135deg,#071d3a 0%,#0d2e58 40%,#050f1c 100%);
  padding:80px 0;
}
/* Grid bg layer — same concept as footer */
.profile-promo-grid{
  position:absolute;inset:0;
  background-image:
    linear-gradient(0deg,   transparent calc(100% - 1px), rgba(0,180,255,.16) 100%),
    linear-gradient(90deg,  transparent calc(100% - 1px), rgba(0,180,255,.16) 100%),
    radial-gradient(circle, rgba(0,210,255,.55) 1.5px, transparent 4px);
  background-size:64px 64px,64px 64px,64px 64px;
  pointer-events:none;z-index:0;
}
.profile-promo-glows{
  position:absolute;inset:0;
  background:
    radial-gradient(ellipse at 0% 50%,   rgba(0,111,191,.4)  0%, transparent 45%),
    radial-gradient(ellipse at 100% 50%, rgba(0,200,255,.18) 0%, transparent 40%),
    radial-gradient(ellipse at 50% 100%, rgba(4,10,22,.5)    0%, transparent 60%);
  pointer-events:none;z-index:0;
}

/* Inner flex row */
.profile-promo-inner{
  display:flex;align-items:center;gap:60px;
  position:relative;z-index:1;
}

/* Icon block */
.profile-promo-icon-wrap{
  position:relative;flex-shrink:0;
  width:140px;height:140px;
  display:flex;align-items:center;justify-content:center;
}
.profile-promo-icon{
  width:96px;height:96px;border-radius:22px;
  background:rgba(0,111,191,.2);
  border:1px solid rgba(0,180,255,.35);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 0 0 12px rgba(0,111,191,.08),0 8px 32px rgba(0,0,0,.4);
  position:relative;z-index:1;
}
.profile-promo-icon i{
  font-size:2.6rem;color:#00d4ff;
  filter:drop-shadow(0 0 8px rgba(0,212,255,.6));
}
/* Animated rings */
.pp-ring{
  position:absolute;border-radius:50%;border:1px solid rgba(0,180,255,.18);
  animation:pp-ring-pulse 3s ease-in-out infinite;
}
.pp-ring-1{width:120px;height:120px;animation-delay:0s}
.pp-ring-2{width:150px;height:150px;animation-delay:1.2s;border-color:rgba(0,180,255,.08)}
@keyframes pp-ring-pulse{
  0%,100%{transform:scale(1);opacity:.6}
  50%{transform:scale(1.05);opacity:1}
}

/* Text side */
.profile-promo-text{ flex:1; }
.profile-promo-text h2{
  font-size:clamp(1.6rem,3vw,2.4rem);
  color:#fff;margin:8px 0 14px;line-height:1.15;
}
.profile-promo-text p{
  color:rgba(255,255,255,.55);font-size:.95rem;
  line-height:1.8;max-width:560px;margin-bottom:28px;
}
.profile-promo-btns{ display:flex;gap:14px;flex-wrap:wrap; }

/* Responsive */
@media(max-width:768px){
  .profile-promo-inner{flex-direction:column;text-align:center;gap:28px}
  .profile-promo-text p{margin:0 auto 20px}
  .profile-promo-btns{
    justify-content:center;
    flex-wrap:nowrap; /* keep side by side */
    gap:12px;
  }
  /* Equal width, auto — not full width */
  .profile-promo-btns .btn-primary-kelm,
  .profile-promo-btns .btn-outline-kelm{
    flex:1;
    max-width:180px;
    justify-content:center;
    padding:11px 16px;
    font-size:.76rem;
  }
}
@media(max-width:400px){
  /* Only stack if really tight */
  .profile-promo-btns{ flex-wrap:wrap; }
  .profile-promo-btns .btn-primary-kelm,
  .profile-promo-btns .btn-outline-kelm{ max-width:160px; }
}

/* ── SCROLL TO TOP ─────────────────────────────────────── */
#scrollTop{
  position:fixed;bottom:28px;right:28px;
  width:44px;height:44px;border-radius:50%;
  background:var(--navy);color:#fff;border:none;cursor:pointer;
  font-size:.95rem;box-shadow:0 4px 16px rgba(0,111,191,.4);
  opacity:0;pointer-events:none;transition:all var(--transition);z-index:900;
  display:flex;align-items:center;justify-content:center;
}
#scrollTop.show,#scrollTop.visible{opacity:1;pointer-events:auto}
#scrollTop:hover{background:var(--navy-dark);transform:translateY(-3px)}

/* ── LIGHTBOX ──────────────────────────────────────────── */
.lightbox-overlay{
  position:fixed;inset:0;background:rgba(13,31,53,.96);
  z-index:9999;display:none;align-items:center;justify-content:center;
}
.lightbox-overlay.open{display:flex}
.lightbox-overlay img{max-width:90vw;max-height:88vh;border-radius:var(--radius);box-shadow:var(--shadow-lg)}
.lightbox-close{
  position:absolute;top:18px;right:22px;background:none;border:none;
  color:#fff;font-size:1.7rem;cursor:pointer;opacity:.7;
}
.lightbox-close:hover{opacity:1}

/* ── FADE UP ANIMATION ─────────────────────────────────── */
.fade-up{opacity:0;transform:translateY(28px);transition:opacity .6s ease,transform .6s ease}
.fade-up.visible{opacity:1;transform:translateY(0)}

/* ── PROJECT GALLERY (detail page) ────────────────────── */
.project-gallery-section{margin-top:52px}
.gallery-heading{
  font-size:1.1rem;color:var(--dark);margin-bottom:20px;
  display:flex;align-items:center;gap:10px;
}
.gallery-heading i{color:var(--navy);font-size:1.15rem}
.gallery-count{
  font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  background:rgba(0,111,191,.1);color:var(--navy);
  padding:3px 10px;border-radius:20px;margin-left:auto;
}

.project-gallery-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  grid-auto-rows:200px;
  gap:10px;
}
.gallery-item-featured{
  grid-column:span 2;
  grid-row:span 2;
}
.gallery-item{
  position:relative;overflow:hidden;border-radius:var(--radius);
  cursor:pointer;background:var(--off-white);
}
.gallery-item img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .5s ease;
  display:block;
}
.gallery-item:hover img{transform:scale(1.06)}
.gallery-item-overlay{
  position:absolute;inset:0;
  background:rgba(0,111,191,.45);
  display:flex;align-items:center;justify-content:center;
  opacity:0;transition:opacity var(--transition);
}
.gallery-item:hover .gallery-item-overlay{opacity:1}
.gallery-item-overlay i{color:#fff;font-size:1.4rem}

/* Lightbox */
.gallery-lightbox{
  display:none;position:fixed;inset:0;
  background:rgba(5,15,30,.96);z-index:9999;
  align-items:center;justify-content:center;
}
.gallery-lightbox.open{display:flex}
.lb-inner{position:relative;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;align-items:center;gap:12px}
.lb-inner img{max-width:90vw;max-height:82vh;object-fit:contain;border-radius:var(--radius);box-shadow:0 24px 80px rgba(0,0,0,.6)}
.lb-counter{color:rgba(255,255,255,.5);font-size:.8rem;letter-spacing:.1em}
.lb-close{
  position:fixed;top:20px;right:24px;
  background:rgba(255,255,255,.1);border:none;color:#fff;
  width:42px;height:42px;border-radius:50%;cursor:pointer;font-size:1rem;
  display:flex;align-items:center;justify-content:center;
  transition:background var(--transition);
}
.lb-close:hover{background:rgba(255,255,255,.2)}
.lb-prev,.lb-next{
  position:fixed;top:50%;transform:translateY(-50%);
  background:rgba(255,255,255,.1);border:none;color:#fff;
  width:48px;height:48px;border-radius:50%;cursor:pointer;font-size:1.1rem;
  display:flex;align-items:center;justify-content:center;
  transition:background var(--transition);
}
.lb-prev{left:20px}.lb-next{right:20px}
.lb-prev:hover,.lb-next:hover{background:rgba(255,255,255,.2)}

@media(max-width:767px){
  .project-gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:150px}
  .gallery-item-featured{grid-column:span 2;grid-row:span 1}
}

/* ── GALLERY (legacy thumb) ────────────────────────────── */
.gallery-thumb{cursor:pointer;transition:transform var(--transition)}
.gallery-thumb:hover{transform:scale(1.04)}

/* ── NO RESULTS ────────────────────────────────────────── */
.no-results{
  text-align:center;padding:80px 20px;color:var(--muted);
}
.no-results i{font-size:3rem;color:var(--border);display:block;margin-bottom:16px}
.no-results p{font-size:.95rem}

/* ── UTILS ─────────────────────────────────────────────── */
.text-orange{color:var(--orange)!important}
.text-navy{color:var(--navy)!important}
.text-white{color:#fff!important}
.text-muted{color:var(--muted)!important}
.bg-navy{background:var(--navy)!important}
.bg-orange{background:var(--orange)!important}
.bg-offwhite{background:var(--off-white)!important}
.badge{display:inline-block;padding:3px 10px;border-radius:4px;font-size:.72rem;font-weight:700;color:#fff}

/* ============================================================
   MOBILE RESPONSIVE — Comprehensive fixes
   ============================================================ */

/* ── 1. NAVBAR — fix "HOME" bleed + toggle bar color ─────── */
/* Ensure the closed mobile menu is truly hidden behind navbar */
@media(max-width:991px){
  /* Prevent first active link from showing above fold */
  .nav-links{
    z-index:999;
  }
  /* Hamburger lines always white on transparent nav over hero */
  #navbar.nav-transparent .nav-toggle span{ background:#fff; }
  /* Solid background for mobile menu — always white regardless of nav state */
  .nav-links{ background:#fff!important; }
  /* Active link underline off on mobile — use bg highlight instead */
  .nav-links > li > a:not(.nav-cta)::after{ display:none; }
  /* Bigger touch target for hamburger */
  .nav-toggle{ padding:10px 8px; }
}

/* ── 2. SECTION padding — reduce on mobile ────────────────── */
@media(max-width:767px){
  .section-pad    { padding:64px 0; }
  .section-pad-sm { padding:40px 0; }
  .container-kelm { padding:0 18px; }
}
@media(max-width:480px){
  .section-pad    { padding:52px 0; }
  .section-pad-sm { padding:32px 0; }
  .container-kelm { padding:0 16px; }
}

/* ── 3. HERO — full mobile rewrite ───────────────────────── */
@media(max-width:767px){
  .hero{
    min-height:100svh; /* use svh on mobile — avoids browser chrome overlap */
    align-items:flex-end; /* push content toward bottom so it clears navbar */
  }
  .hero-content{
    padding:0 20px;
    padding-top:var(--nav-height);
    padding-bottom:110px; /* room for dots + scroll indicator */
  }
  .hero-eyebrow{
    font-size:.62rem;
    letter-spacing:.14em;
    margin-bottom:14px;
  }
  .hero-title{
    font-size:clamp(1.8rem,7.5vw,2.6rem);
    max-width:100%;
    margin-bottom:16px;
  }
  .hero-desc{
    font-size:.93rem;
    line-height:1.7;
    max-width:100%;
    margin-bottom:28px;
  }
  /* Stack buttons on mobile */
  .hero-btns{
    flex-direction:column;
    align-items:flex-start;
    gap:12px;
  }
  .hero-btns .btn-primary-kelm,
  .hero-btns .btn-outline-kelm{
    width:100%;
    justify-content:center;
    padding:14px 20px;
    font-size:.78rem;
  }
  /* On hero (dark overlay) primary btn should look white-bordered */
  .hero-btns .btn-primary-kelm{
    color:#fff;
    border-color:rgba(255,255,255,.7);
    background:transparent;
  }
  .hero-btns .btn-primary-kelm:hover{
    background:#fff;
    color:var(--navy);
    border-color:#fff;
  }
  /* Dots — bottom right */
  .hero-dots{
    right:20px;
    bottom:24px;
  }
  /* Scroll indicator */
  .hero-scroll{
    bottom:24px;
  }
}

@media(max-width:480px){
  .hero-title{ font-size:clamp(1.6rem,8vw,2.2rem); }
  /* Overlay slightly darker so text pops on any photo */
  .hero-overlay{
    background:linear-gradient(
      115deg,
      rgba(5,15,32,.97)   0%,
      rgba(0,55,110,.88) 45%,
      rgba(0,80,150,.65) 100%);
  }
}

/* ── 4. ABOUT grid ────────────────────────────────────────── */
@media(max-width:767px){
  .about-grid{ gap:32px; }
  .about-image-main img{ height:240px; }
  .about-badge{
    bottom:-12px;right:12px;
    padding:16px 20px;
  }
  .about-badge .num{ font-size:1.8rem; }
  .about-features{ gap:14px; }
}

/* ── 5. STATS — already at 991/480, add tablet 768 ───────── */
@media(max-width:768px){
  .stats-section{ padding:48px 0; }
  .stat-number{ font-size:2.4rem; }
  .stat-item{ padding:28px 18px; }
}

/* ── 6. WHY KELM section (extracted from inline styles) ───── */
.why-kelm-section{
  background:var(--navy);
  position:relative;
  overflow:hidden;
}
.why-kelm-pattern{
  position:absolute;inset:0;
  background-repeat:repeat;
  background-size:80px 80px;
  opacity:.05;
  pointer-events:none;
}
.why-kelm-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:72px;
  align-items:center;
}
.why-kelm-eyebrow{
  color:var(--sky)!important;
}
.why-kelm-heading{
  color:#fff;
  font-size:clamp(1.7rem,3vw,2.4rem);
  margin-bottom:20px;
}
.why-kelm-lead{
  color:rgba(255,255,255,.72);
  margin-bottom:32px;
  line-height:1.8;
}
.why-item{
  display:flex;align-items:flex-start;gap:18px;
}
.why-icon{
  width:48px;height:48px;flex-shrink:0;
  border-radius:12px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  display:flex;align-items:center;justify-content:center;
  color:var(--sky);font-size:1.15rem;
  transition:transform .25s ease, background .25s ease;
}
.why-item:hover .why-icon{
  background:rgba(0,111,191,.3);
  transform:scale(1.08);
}
.why-body h4{
  color:#fff;font-size:.95rem;margin-bottom:5px;
}
.why-body p{
  color:rgba(255,255,255,.58);font-size:.86rem;margin:0;line-height:1.65;
}
.why-kelm-right{
  display:flex;flex-direction:column;gap:28px;
}

@media(max-width:900px){
  .why-kelm-grid{
    grid-template-columns:1fr;
    gap:40px;
  }
}
@media(max-width:767px){
  .why-kelm-right{ gap:20px; }
  .why-icon{ width:42px;height:42px;font-size:1rem; }
  .why-body h4{ font-size:.9rem; }

  /* Get a Quote button — constrain to content width, never full-width */
  .why-kelm-left .btn-outline-kelm{
    display:inline-flex;
    width:auto;
    align-self:flex-start;
    padding:12px 28px;
  }
}

/* ── 7. CTA BANNER section (extracted from inline styles) ─── */
.cta-banner-section{
  background:linear-gradient(135deg,var(--navy) 0%,var(--navy-dark) 100%);
  padding:80px 0;
}
.cta-banner-inner{
  text-align:center;
}
.cta-banner-heading{
  color:#fff;
  font-size:clamp(1.6rem,3vw,2.4rem);
  margin-bottom:16px;
}
.cta-banner-sub{
  color:rgba(255,255,255,.78);
  font-size:1.02rem;
  margin-bottom:36px;
  max-width:520px;
  margin-left:auto;margin-right:auto;
  line-height:1.75;
}
.cta-banner-btns{
  display:flex;
  gap:16px;
  justify-content:center;
  flex-wrap:wrap;
}

@media(max-width:767px){
  .cta-banner-section{ padding:56px 0; }
  .cta-banner-btns{
    flex-direction:column;
    align-items:center;
    gap:12px;
  }
  .cta-banner-btns .btn-outline-kelm{
    width:100%;
    max-width:280px;
    justify-content:center;
  }
}

/* ── 8. PARTNERS marquee — mobile sizing ─────────────────── */
@media(max-width:767px){
  .marquee-item{
    padding:16px 24px;
    min-width:120px;
  }
  .marquee-item img{
    max-height:30px;
    max-width:80px;
  }
  /* Fade edges narrower on mobile */
  .partners-marquee::before,
  .partners-marquee::after{ width:48px; }
}

/* ── 9. PROJECT & SERVICE cards ───────────────────────────── */
@media(max-width:767px){
  /* Services — tighter gap, grid layout */
  .services-grid{ gap:12px!important; }
  .service-card{
    padding:20px 16px;
    display:grid;
    grid-template-columns:auto 1fr; /* col1=icon  col2=title */
    grid-template-rows:auto auto;   /* row1=header  row2=desc */
    column-gap:14px;
    row-gap:10px;
    align-items:start;
  }
  /* Icon: top-left cell */
  .service-card .service-icon{
    grid-column:1; grid-row:1;
    width:44px;height:44px;
    font-size:1.05rem;
    margin-bottom:0;
    align-self:center;
  }
  /* Title: top-right cell, vertically centered with icon */
  .service-card h3{
    grid-column:2; grid-row:1;
    font-size:.93rem;
    margin-bottom:0;
    align-self:center;
    line-height:1.35;
  }
  /* Description: full-width second row */
  .service-card p{
    grid-column:1 / -1; grid-row:2;
    font-size:.82rem;
    margin:0;
    padding-top:2px;
    border-top:1px solid var(--border);
  }

  /* Project cards */
  .projects-grid{ gap:14px!important; }
  .project-body{ padding:14px; }
  .project-body h3{ font-size:.92rem; }
  .project-meta{ font-size:.7rem; }
}

/* ── About features — tighter on mobile ──────────────────── */
@media(max-width:767px){
  .about-features{
    grid-template-columns:1fr 1fr!important;
    gap:10px;
    margin-top:20px;margin-bottom:24px;
  }
  .about-feature{
    padding:12px;
    gap:10px;
  }
  .about-feature-icon{
    width:32px;height:32px;font-size:.85rem;border-radius:8px;flex-shrink:0;
  }
  .about-feature h4{ font-size:.78rem; }
  .about-feature p{ font-size:.72rem; }
}

/* ── Why KELM items — fix icon & spacing on mobile ────────── */
@media(max-width:767px){
  .why-kelm-right{ gap:16px; }
  .why-item{ gap:14px;align-items:center; }
  .why-icon{
    width:40px;height:40px;min-width:40px;
    font-size:.95rem;border-radius:10px;
    /* Ensure icon background is always visible */
    background:rgba(255,255,255,.1);
    border:1px solid rgba(255,255,255,.15);
  }
  .why-body h4{ font-size:.88rem;margin-bottom:3px; }
  .why-body p{ font-size:.8rem;line-height:1.55; }
}
/* Separator dividers between why items */
.why-item + .why-item{
  padding-top:16px;
  border-top:1px solid rgba(255,255,255,.06);
}
@media(max-width:767px){
  .why-item + .why-item{ padding-top:14px; }
}

/* ── 10. FOOTER — compact mobile ─────────────────────────── */
@media(max-width:767px){

  /* ─ Logo: natural colors, smaller ─ */
  .footer-logo-img{
    max-height:42px;
    width:auto;
    filter:drop-shadow(0 1px 6px rgba(0,0,0,.4));
    margin-bottom:10px;
  }

  /* ─ Main grid: brand top full-width, then 2 cols ─ */
  .footer-main{
    grid-template-columns:1fr 1fr!important;
    gap:20px 24px!important;     /* row-gap col-gap */
    padding:28px 16px 20px!important;
  }
  .footer-brand{
    grid-column:1/-1;
    display:grid;
    grid-template-columns:auto 1fr; /* logo | tagline+socials */
    gap:0 16px;
    align-items:start;
  }
  /* Tagline & socials sit right of logo */
  .footer-tagline{
    font-size:.75rem;
    line-height:1.6;
    margin-bottom:8px;
    max-width:100%;
    /* suppress any top gap from logo spacing */
    margin-top:0;
  }
  .footer-socials{
    gap:6px;
    margin-top:0;
  }
  .fsoc-link{ width:28px;height:28px;font-size:.72rem; }

  /* ─ Column titles ─ */
  .footer-col-title{
    font-size:.6rem;
    margin-bottom:8px;
  }

  /* ─ Nav list — dense ─ */
  .footer-col-list li{ margin-bottom:4px; }
  .footer-col-list li a{ font-size:.78rem; }

  /* ─ Contact items — tight ─ */
  .footer-contact-item{
    gap:8px;
    margin-bottom:6px;
  }
  .footer-contact-item i{ font-size:.78rem; }
  .footer-contact-item span,
  .footer-contact-item a{ font-size:.76rem;line-height:1.45; }

  /* ─ ISO cert — inline row layout (img + note side by side) ─ */
  .footer-cert-col{
    grid-column:1/-1;
    display:flex;
    align-items:center;
    gap:14px;
    padding-top:4px;
  }
  .footer-iso-img{
    width:90px!important;
    flex-shrink:0;
    margin:0!important;
    filter:drop-shadow(0 1px 6px rgba(0,0,0,.5));
  }
  .footer-iso-note{
    font-size:.72rem;
    line-height:1.5;
    text-align:left;
    margin:0;
  }

  /* ─ Bottom bar ─ */
  .footer-bottom{
    flex-direction:column;
    text-align:center;
    gap:3px;
    padding:10px 16px;
  }
  .footer-bottom p{ font-size:.69rem; }
  .footer-bottom-links{ justify-content:center; }
}

@media(max-width:400px){
  /* Full single column on very small phones */
  .footer-main{ grid-template-columns:1fr!important; }
  .footer-brand{
    grid-template-columns:1fr; /* stack logo + tagline */
  }
  .footer-cert-col{
    grid-column:1;
    flex-direction:column;
    align-items:flex-start;
    gap:8px;
  }
  .footer-iso-img{ width:80px!important; }
  .footer-iso-note{ text-align:left; }
}

/* ── 11. PROJECT DETAIL PAGE ─────────────────────────────── */

/* Desktop: 2/3 content + 1/3 sidebar */
.project-detail-grid{
  display:grid;
  grid-template-columns:2fr 1fr;
  gap:60px;
  align-items:start;
}

/* Sidebar buttons: always full width */
.project-sidebar-btn{
  display:flex;
  width:100%;
  justify-content:center;
  margin-top:16px;
}

/* ── Mobile: stack content above sidebar ──────────────────── */
@media(max-width:767px){
  .project-detail-grid{
    grid-template-columns:1fr;
    gap:28px;
  }
  .project-hero{ min-height:260px; }
  .project-hero-content{ padding:20px 16px 28px; }
  .project-hero-content h1{ font-size:clamp(1.3rem,5.5vw,1.9rem)!important; }
  /* Sidebar card tighter */
  .project-detail-grid > div:last-child > div:first-child{
    padding:18px 16px;
  }
}

/* ── 11. PROFILE PROMO — tighter mobile ──────────────────── */
@media(max-width:600px){
  .profile-promo{ padding:56px 0; }
  .profile-promo-icon{ width:72px;height:72px;font-size:1.8rem; }
  .profile-promo-text h2{ font-size:1.5rem; }
}

/* ── 12. Section headings ─────────────────────────────────── */
@media(max-width:767px){
  .section-heading{ margin-bottom:40px; }
  .section-heading h2{ font-size:clamp(1.5rem,5.5vw,2rem); }
  .section-heading p{ font-size:.9rem; }
}

/* ── 13. PAGE HERO (inner pages) mobile ──────────────────── */
@media(max-width:767px){
  .page-hero{ padding:110px 0 64px; }
  .page-hero-content h1{ font-size:clamp(1.6rem,6vw,2.4rem); }
  .page-hero-content p{ font-size:.92rem; }
  .ph-breadcrumb{ font-size:.7rem;padding:6px 14px; }
}

/* ── 14. GENERAL — touch targets & tap highlight ─────────── */
@media(max-width:991px){
  /* Minimum 44px touch target on all interactive elements */
  .btn-primary-kelm,
  .btn-outline-kelm,
  .btn-navy{
    min-height:46px;
    padding:12px 24px;
  }
  /* Remove hover effects that don't translate to touch */
  .team-card:hover{ transform:none; }
  .service-card:hover{ transform:none; }
}

/* ── 15. Prevent horizontal scroll ───────────────────────── */
html,body{
  max-width:100%;
  overflow-x:hidden;
}
