/*
Theme Name: Groupe KLE
Theme URI: https://groupekle.ca/
Author: Groupe KLE
Description: Thème institutionnel WordPress de Groupe KLE, basé sur Bootstrap 5.
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 8.1
Text Domain: groupe-kle
*/

/* v1.6.9.2 — slideshow/localisation */
.hero-slide.slide-one { --photo-position:center center; }
.hero-slide.slide-one::before { background-position:var(--photo-position,center center); }
.impact-strip { position:relative; z-index:8; margin:0; }
.impact-strip + section, .impact-strip + .section { position:relative; z-index:1; }
@media (max-width:767.98px){ .impact-grid{row-gap:.75rem;} }


/* ==========================================================
   KLE Website v1.0.4 — visual stabilization
   ========================================================== */
.impact-strip .impact-icon,
.impact-strip [class*="icon"] {
  font-size: 1.75rem;
  width: 2.25rem;
  min-width: 2.25rem;
  height: 2.25rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.impact-strip svg {
  width: 2rem;
  height: 2rem;
}
.impact-strip img {
  width: 2rem;
  height: 2rem;
  object-fit: contain;
}


/* ==========================================================
   KLE Website v1.0.4 — HTML validation composition
   ========================================================== */
.kle-home-validation {
  background:#f7fbfe;
}
.kle-home-validation .hero-slide {
  min-height: 570px;
  display:flex;
  align-items:center;
  position:relative;
  overflow:hidden;
}
.kle-home-validation .hero-slide::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(0,42,68,.93) 0%,rgba(0,42,68,.73) 31%,rgba(0,42,68,.12) 61%,rgba(0,42,68,.04) 100%);
  z-index:0;
}
.kle-home-validation .hero-content {
  position:relative;
  z-index:2;
  max-width:610px;
  padding-top:30px;
  padding-bottom:30px;
}
.kle-home-validation .hero-content h1 {
  font-size:clamp(3rem,5vw,5.35rem);
  line-height:.98;
  letter-spacing:-.035em;
  margin:.18em 0 .42em;
  font-weight:500;
}
.kle-home-validation .hero-content h1 strong {
  display:block;
  color:#10c9e8;
  font-weight:700;
}
.kle-home-validation .hero-content p {
  max-width:580px;
  font-size:1.12rem;
  line-height:1.55;
}
.kle-home-validation .hero-actions {
  display:flex;
  gap:18px;
  flex-wrap:wrap;
  margin-top:24px;
}
.kle-home-validation .impact-strip {
  position:relative;
  z-index:10;
  margin:0;
  background:linear-gradient(90deg,#00527c,#004366);
  color:#fff;
}
.kle-home-validation .impact-grid {
  max-width:1320px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(5,1fr);
  align-items:center;
}
.kle-home-validation .impact-item {
  min-height:88px;
  padding:16px 22px;
  display:flex;
  align-items:center;
  gap:17px;
  border-right:1px solid rgba(255,255,255,.22);
}
.kle-home-validation .impact-item:last-child { border-right:0; }
.kle-home-validation .impact-symbol {
  width:50px;
  min-width:50px;
  height:50px;
  display:grid;
  place-items:center;
  font-size:2.25rem;
  color:#21c8f6;
}
.kle-home-validation .impact-copy {
  line-height:1.18;
  font-size:.98rem;
}
.kle-home-validation .impact-copy strong {
  display:block;
  margin-top:4px;
  font-size:1.03rem;
}
.kle-home-validation .solutions-section {
  margin:0;
  padding:34px 0 56px;
  background:#f7fbfe;
}
.kle-home-validation .solutions-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:30px;
  margin-bottom:25px;
}
.kle-home-validation .solutions-head h2 {
  margin:.15em 0 0;
  max-width:650px;
  font-size:clamp(2rem,3vw,3.15rem);
  line-height:1.08;
  font-weight:500;
}
.kle-home-validation .solution-grid {
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:14px;
}
.kle-home-validation .solution-card {
  min-height:190px;
  padding:22px 16px 18px;
  border:1px solid #dbe7ee;
  border-radius:14px;
  background:#fff;
  text-align:center;
  box-shadow:0 6px 20px rgba(0,48,78,.04);
}
.kle-home-validation .solution-card .solution-icon {
  width:58px;
  height:58px;
  margin:0 auto 10px;
  display:grid;
  place-items:center;
  font-size:2rem;
}
.kle-home-validation .solution-card h3 {
  margin:0 0 8px;
  font-size:1rem;
}
.kle-home-validation .solution-card p {
  margin:0;
  font-size:.83rem;
  line-height:1.35;
}
@media(max-width:1000px){
  .kle-home-validation .impact-grid{grid-template-columns:repeat(2,1fr)}
  .kle-home-validation .solution-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:640px){
  .kle-home-validation .hero-slide{min-height:620px}
  .kle-home-validation .impact-grid{grid-template-columns:1fr}
  .kle-home-validation .impact-item{border-right:0;border-bottom:1px solid rgba(255,255,255,.18)}
  .kle-home-validation .solution-grid{grid-template-columns:1fr}
  .kle-home-validation .solutions-head{display:block}
}

/* v1.0.4 stabilization from validated v1.6.9.4 */
.kle-home-validation .carousel-control-prev,.kle-home-validation .carousel-control-next{display:flex!important;visibility:visible!important;opacity:1!important;z-index:20!important;pointer-events:auto!important;width:74px}
.kle-home-validation .carousel-control-prev-icon,.kle-home-validation .carousel-control-next-icon{width:48px;height:48px;border:2px solid #fff;border-radius:50%;background-size:45% 45%;background-color:rgba(0,58,91,.38)}
.kle-home-validation .service-icon img,.kle-home-validation .kle-solution-icon img{width:58px;height:58px;object-fit:contain;display:block}
.kle-home-validation .tech-logo-card img{width:54px;height:54px;object-fit:contain;display:block;margin:0 auto 9px}
.kle-home-validation .tech-logo-card{min-height:116px;display:flex;flex-direction:column;align-items:center;justify-content:center}
@media(max-width:640px){.kle-home-validation .carousel-control-prev,.kle-home-validation .carousel-control-next{width:52px}.kle-home-validation .carousel-control-prev-icon,.kle-home-validation .carousel-control-next-icon{width:42px;height:42px}}

/* ==========================================================
   KLE Website v1.0.6 — visual cleanup
   ========================================================== */
.hero-slide,
.kle-page-hero,
.solution-hero {
  background-repeat:no-repeat;
  background-size:cover;
  background-position:center center;
}
.hero-slide img,
.kle-page-hero img,
.solution-hero img {
  max-width:100%;
  height:auto;
}
.kle-home-validation .hero-content {
  text-shadow:0 1px 2px rgba(0,20,35,.18);
}
@media (max-width:767.98px) {
  .kle-home-validation .hero-slide { min-height:540px; }
  .kle-home-validation .hero-content h1 { font-size:clamp(2.55rem,12vw,4rem); }
}

/* ==========================================================
   KLE Website v1.1.0 — professional neutral palette
   Groupe KLE + Technology Consulting
   ========================================================== */
:root {
  --kle-ink:#24313a;
  --kle-slate:#394852;
  --kle-paper:#f5f3ee;
  --kle-white:#ffffff;
  --kle-accent:#b88a3b;
  --kle-blue-accent:#235b78;
}
body { background:var(--kle-paper); color:var(--kle-ink); }
.utility { background:var(--kle-ink)!important; }
.kle-nav { background:rgba(255,255,255,.97)!important; box-shadow:0 5px 18px rgba(25,34,40,.08); }
.brand small { color:var(--kle-slate)!important; font-weight:600; letter-spacing:.025em; }
.brand em { color:#66737b!important; }
.portal { background:var(--kle-ink)!important; border-color:var(--kle-ink)!important; }
.portal:hover,.portal:focus { background:var(--kle-accent)!important; border-color:var(--kle-accent)!important; color:#fff!important; }
.kle-home-validation { background:var(--kle-paper)!important; }
.kle-home-validation .hero-slide::after {
  background:linear-gradient(90deg,rgba(28,38,44,.94) 0%,rgba(28,38,44,.76) 34%,rgba(28,38,44,.24) 68%,rgba(28,38,44,.08) 100%)!important;
}
.kle-home-validation .hero-content h1 strong { color:#dfb663!important; }
.kle-home-validation .impact-strip { background:linear-gradient(90deg,#26343d,#354650)!important; }
.kle-home-validation .impact-symbol { color:#dfb663!important; }
.kle-home-validation .solutions-section { background:var(--kle-paper)!important; }
.kle-home-validation .solution-card {
  border-color:#d8d4ca!important;
  box-shadow:0 8px 24px rgba(34,45,52,.07)!important;
}
.kle-home-validation .solution-card:first-child {
  border-top:3px solid var(--kle-accent)!important;
}
.kle-home-validation .carousel-control-prev-icon,
.kle-home-validation .carousel-control-next-icon { background-color:rgba(28,38,44,.55)!important; }
.site-footer { background:var(--kle-ink)!important; }
.dropdown-menu { border-color:#ddd8ce!important; box-shadow:0 12px 30px rgba(34,45,52,.13)!important; }
.dropdown-item:hover,.dropdown-item:focus { background:#f1eee7!important; color:var(--kle-ink)!important; }

/* v1.1.0 refinement — reduce dominant blue surfaces */
.site-header { background:var(--kle-white)!important; }
.site-header .kle-nav { background:var(--kle-white)!important; }
.site-header .brand strong,
.site-header .nav-link { color:var(--kle-ink)!important; }
.site-header .brand img { filter:saturate(.72) contrast(.96); }
.site-header .portal { background:var(--kle-ink)!important; color:#fff!important; box-shadow:none!important; }
.kle-home-validation .hero-slide::before { filter:saturate(.68) brightness(.9); }
.kle-home-validation .hero-actions .btn-primary,
.kle-home-validation .hero-actions a:first-child { background:var(--kle-ink)!important; border-color:var(--kle-ink)!important; }

.kle-home-validation .hero-content,
.kle-home-validation .hero-content h1,
.kle-home-validation .hero-content p { color:#fff!important; }
.kle-home-validation .hero-content h1 strong { color:#dfb663!important; }
.kle-home-validation .hero-content .eyebrow { color:#e5bd70!important; }

.kle-home-validation .hero-copy,
.kle-home-validation .hero-copy h1,
.kle-home-validation .hero-copy h2,
.kle-home-validation .hero-copy p { color:#fff!important; }
.kle-home-validation .hero-copy .kicker { color:#e5bd70!important; }
.kle-home-validation .hero-copy .btn.primary { background:var(--kle-ink)!important; border-color:var(--kle-ink)!important; color:#fff!important; }

.kle-home-validation .hero-copy { position:relative; z-index:2; }

/* v1.1.1 — image-first hero and neutral navigation */
.kle-home-validation .hero-slide {
  background-image:var(--photo),linear-gradient(135deg,#26343d,#4b5860)!important;
}
.kle-home-validation .hero-slide::after { display:none!important; }
.kle-home-validation .hero-slide::before { filter:none!important; }
.kle-home-validation .hero-copy {
  max-width:650px;
  padding:clamp(22px,3vw,36px);
  border-radius:16px;
  background:linear-gradient(90deg,rgba(25,33,38,.82) 0%,rgba(25,33,38,.58) 62%,rgba(25,33,38,.12) 100%);
  backdrop-filter:blur(1.5px);
}
.site-header,
.site-header .kle-nav { background:#fff!important; }
.site-header .nav-link { color:var(--kle-ink)!important; }
.site-header .nav-link:hover,
.site-header .nav-link:focus,
.site-header .nav-link.show { color:#8b672d!important; }
.kle-solutions-dropdown .kle-menu-icon { color:#9b7432!important; }

/* v1.1.2 — professional mobile navigation */
@media (max-width:991.98px) {
  .site-header .kle-nav { background:#fff!important; }
  .site-header #kle-menu.navbar-collapse {
    margin-top:10px;
    padding:12px 16px 18px;
    background:#fff!important;
    color:var(--kle-ink)!important;
    border:1px solid #ded9cf;
    border-radius:14px;
    box-shadow:0 14px 32px rgba(28,38,44,.16);
  }
  .site-header #kle-menu .kle-primary-menu { gap:0; }
  .site-header #kle-menu .nav-item { width:100%; }
  .site-header #kle-menu .nav-link {
    display:flex;
    align-items:center;
    min-height:46px;
    padding:10px 8px!important;
    color:var(--kle-ink)!important;
    border-bottom:1px solid #ece8df;
  }
  .site-header #kle-menu .nav-item:last-child .nav-link { border-bottom:0; }
  .site-header #kle-menu .nav-link:hover,
  .site-header #kle-menu .nav-link:focus,
  .site-header #kle-menu .nav-link.show {
    color:#8b672d!important;
    background:#f6f3ed!important;
  }
  .site-header #kle-menu .dropdown-menu {
    margin:2px 0 8px;
    padding:6px;
    background:#fff!important;
    border-color:#ded9cf!important;
    box-shadow:none!important;
  }
  .site-header #kle-menu .dropdown-item {
    padding:10px 12px;
    color:var(--kle-ink)!important;
  }
  .site-header #kle-menu .portal {
    display:inline-flex;
    width:auto;
    margin:14px 0 0!important;
    padding:11px 18px;
    background:var(--kle-ink)!important;
    color:#fff!important;
  }
}

/* v1.1.3 — unified solution pictograms */
.kle-solutions-dropdown .dropdown-item {
  display:flex;
  align-items:center;
  gap:11px;
}
.kle-solutions-dropdown .kle-menu-icon-image {
  width:24px;
  height:24px;
  flex:0 0 24px;
  object-fit:contain;
}
.solution-directory .directory-icon img {
  width:52px;
  height:52px;
  object-fit:contain;
  display:block;
}
@media (max-width:991.98px) {
  .kle-solutions-dropdown .kle-menu-icon-image {
    width:22px;
    height:22px;
    flex-basis:22px;
  }
}

.kle-solutions-dropdown .kle-menu-icon-frame {
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  flex:0 0 30px;
  padding:5px;
  border-radius:9px;
  background:radial-gradient(circle at 35% 25%,#1adcf6 0%,#078bf2 42%,#034e9c 100%);
}
.kle-solutions-dropdown .kle-menu-icon-frame .kle-menu-icon-image {
  width:20px;
  height:20px;
  object-fit:contain;
}
