/* =========================================================
   NSIPC — Feuille de styles principale
   Charte : Bleu (secondaire/titres) + Orange (primaire/CTA)
   Police : Poppins
   ========================================================= */

:root{
  --nsipc-blue: #0b2f5c;
  --nsipc-blue-dark: #081f3f;
  --nsipc-blue-light: #e8eef6;
  --nsipc-orange: #f4841f;
  --nsipc-orange-dark: #d96c0c;
  --nsipc-white: #ffffff;
  --nsipc-grey-light: #f6f7f9;
  --nsipc-grey: #6b7280;
  --nsipc-dark-text: #1a2332;
  --radius-md: 10px;
  --radius-lg: 18px;
  --shadow-soft: 0 10px 30px rgba(11, 47, 92, 0.08);
  --shadow-strong: 0 20px 45px rgba(11, 47, 92, 0.18);
  --header-height: 92px;
  --transition: all 0.3s ease;
}

*,*::before,*::after{ box-sizing: border-box; }

html{ scroll-behavior: smooth; }

body{
  margin:0;
  font-family: 'Poppins', 'Inter', sans-serif;
  color: var(--nsipc-dark-text);
  background: var(--nsipc-white);
  line-height: 1.65;
  overflow-x: hidden;
}

img{ max-width: 100%; display:block; }

a{ text-decoration:none; color:inherit; }

ul{ list-style:none; margin:0; padding:0; }

h1,h2,h3,h4{
  font-family: 'Poppins', sans-serif;
  color: var(--nsipc-blue);
  font-weight: 700;
  line-height: 1.25;
  margin: 0 0 18px;
}

.container{
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 24px;
}

section{ padding: 90px 0; }

.section-tag{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color: var(--nsipc-orange);
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  font-size: 0.82rem;
  margin-bottom: 14px;
}
.section-tag::before{
  content:"";
  width: 28px;
  height: 3px;
  background: var(--nsipc-orange);
  border-radius: 3px;
}

.section-head{
  max-width: 700px;
  margin: 0 auto 56px;
  text-align: center;
}
.section-head.align-left{ margin-left:0; text-align:left; }

.section-head p{ color: var(--nsipc-grey); font-size:1.05rem; }

.bg-light{ background: var(--nsipc-grey-light); }
.bg-blue{ background: var(--nsipc-blue); color: #fff; }
.bg-blue h2, .bg-blue h3{ color:#fff; }

/* ---------- Boutons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding: 16px 34px;
  border-radius: 50px;
  font-weight: 600;
  font-size: 0.98rem;
  cursor:pointer;
  border: 2px solid transparent;
  transition: var(--transition);
  white-space:nowrap;
}
.btn-primary{
  background: var(--nsipc-orange);
  color:#fff;
  box-shadow: 0 10px 24px rgba(244,132,31,0.35);
}
.btn-primary:hover{
  background: var(--nsipc-orange-dark);
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(244,132,31,0.42);
}
.btn-outline{
  background: transparent;
  border-color: #fff;
  color:#fff;
}
.btn-outline:hover{
  background:#fff;
  color: var(--nsipc-blue);
}
.btn-outline-blue{
  background: transparent;
  border-color: var(--nsipc-blue);
  color: var(--nsipc-blue);
}
.btn-outline-blue:hover{
  background: var(--nsipc-blue);
  color:#fff;
}
.btn-sm{ padding: 11px 24px; font-size: 0.88rem; }
.btn-block{ width:100%; }

/* ---------- Header ---------- */
.site-header{
  position: sticky;
  top:0;
  left:0;
  width:100%;
  z-index: 1000;
  background: rgba(255,255,255,0.97);
  backdrop-filter: blur(6px);
  box-shadow: 0 2px 18px rgba(11,47,92,0.08);
  transition: var(--transition);
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 18px;
  height: var(--header-height);
}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
  flex-shrink:0;
}
.brand img{
  height: 100px;
  width: 100px;
  object-fit: contain;
}
.brand-text{ display:flex; flex-direction:column; }
.brand-text strong{
  font-size: 1.15rem;
  color: var(--nsipc-blue);
  letter-spacing: 0.5px;
}
.brand-text span{
  font-size: 0.68rem;
  color: var(--nsipc-grey);
  text-transform: uppercase;
  letter-spacing: 1px;
}

.main-nav{ display:flex; align-items:center; gap: 6px; }
.main-nav > ul{ display:flex; align-items:center; gap: 4px; }
.main-nav > ul > li{ position: relative; }
.main-nav > ul > li > a{
  display:flex;
  align-items:center;
  gap:6px;
  padding: 14px 16px;
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--nsipc-blue);
  border-radius: 8px;
  transition: var(--transition);
}
.main-nav > ul > li > a:hover,
.main-nav > ul > li.active > a{
  color: var(--nsipc-orange);
}
.main-nav .caret{ font-size: 0.65rem; transition: transform 0.25s; }
.main-nav li.has-mega:hover .caret{ transform: rotate(180deg); }

.header-cta{ display:flex; align-items:center; gap:14px; flex-shrink:0; }
.header-phone{
  display:flex;
  align-items:center;
  gap:8px;
  font-weight:600;
  color: var(--nsipc-blue);
  font-size:0.92rem;
}
.header-phone i{ color: var(--nsipc-orange); }

/* Mega menu */
.mega-menu{
  position:absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(12px);
  width: 920px;
  max-width: 92vw;
  background:#fff;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-strong);
  padding: 30px;
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition: opacity 0.25s ease, transform 0.25s ease;
  border-top: 4px solid var(--nsipc-orange);
}
.main-nav li.has-mega:hover .mega-menu{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform: translateX(-50%) translateY(0);
}
.mega-menu a{
  display:flex;
  align-items:flex-start;
  gap:14px;
  padding: 12px;
  border-radius: 10px;
  transition: var(--transition);
}
.mega-menu a:hover{ background: var(--nsipc-blue-light); }
.mega-menu a .mega-icon{
  width:42px;
  height:42px;
  flex-shrink:0;
  border-radius:10px;
  background: var(--nsipc-blue-light);
  color: var(--nsipc-orange);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.1rem;
}
.mega-menu a:hover .mega-icon{ background: var(--nsipc-orange); color:#fff; }
.mega-menu a .mega-text strong{
  display:block;
  color: var(--nsipc-blue);
  font-size:0.92rem;
  margin-bottom:2px;
}
.mega-menu a .mega-text span{
  display:block;
  font-size:0.78rem;
  color: var(--nsipc-grey);
}
.mega-menu-footer{
  grid-column: 1 / -1;
  border-top: 1px solid #eee;
  margin-top: 8px;
  padding-top: 16px;
  display:flex;
  justify-content:space-between;
  align-items:center;
}

/* Burger (mobile) */
.burger{
  display:none;
  flex-direction:column;
  gap:5px;
  cursor:pointer;
  width:32px;
  background:none;
  border:none;
  padding:0;
}
.burger span{
  height:3px;
  width:100%;
  background: var(--nsipc-blue);
  border-radius:3px;
  transition: var(--transition);
}
.burger.active span:nth-child(1){ transform: translateY(8px) rotate(45deg); }
.burger.active span:nth-child(2){ opacity:0; }
.burger.active span:nth-child(3){ transform: translateY(-8px) rotate(-45deg); }

/* ---------- Hero ---------- */
.hero{
  position: relative;
  min-height: 92vh;
  display:flex;
  align-items:center;
  overflow:hidden;
  color:#fff;
}
.hero-slides{
  position:absolute;
  inset:0;
  z-index:0;
}
.hero-slide{
  position:absolute;
  inset:0;
  background-size: cover;
  background-position: center;
  opacity:0;
  transition: opacity 1.4s ease-in-out;
}
.hero-slide.active{ opacity:1; }
.hero-slide::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(120deg, rgba(8,31,63,0.88) 0%, rgba(8,31,63,0.55) 50%, rgba(244,132,31,0.25) 100%);
}
.hero-content{
  position:relative;
  z-index:2;
  max-width: 740px;
  padding: 40px 0;
}
.hero-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background: rgba(244,132,31,0.18);
  border: 1px solid rgba(244,132,31,0.5);
  color: #ffd9ab;
  padding: 8px 18px;
  border-radius: 50px;
  font-size: 0.82rem;
  font-weight:600;
  letter-spacing: 0.5px;
  margin-bottom: 24px;
}
.hero-content h1{
  color:#fff;
  font-size: clamp(2.1rem, 4.5vw, 3.4rem);
  margin-bottom: 20px;
}
.hero-content h1 span{ color: var(--nsipc-orange); }
.hero-content p{
  font-size: 1.15rem;
  color: rgba(255,255,255,0.88);
  margin-bottom: 34px;
  max-width: 620px;
}
.hero-actions{ display:flex; flex-wrap:wrap; gap:16px; }

.hero-dots{
  position:absolute;
  z-index:3;
  bottom: 36px;
  left:50%;
  transform: translateX(-50%);
  display:flex;
  gap:10px;
}
.hero-dots button{
  width:36px;
  height:4px;
  border-radius:4px;
  border:none;
  background: rgba(255,255,255,0.4);
  cursor:pointer;
  transition: var(--transition);
}
.hero-dots button.active{ background: var(--nsipc-orange); width: 50px; }

.hero-stats{
  position:relative;
  z-index:2;
  display:flex;
  gap: 50px;
  margin-top: 56px;
  flex-wrap:wrap;
}
.hero-stats div strong{
  display:block;
  font-size: 2.1rem;
  color: var(--nsipc-orange);
  font-weight:700;
}
.hero-stats div span{
  font-size: 0.85rem;
  color: rgba(255,255,255,0.8);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* ---------- Breadcrumb / Page header ---------- */
.page-hero{
  position:relative;
  padding: 150px 0 80px;
  background: linear-gradient(120deg, var(--nsipc-blue-dark), var(--nsipc-blue));
  color:#fff;
  text-align:center;
}
.page-hero::before{
  content:"";
  position:absolute; inset:0;
  background-image: radial-gradient(circle at 15% 30%, rgba(244,132,31,0.18), transparent 40%),
                     radial-gradient(circle at 85% 70%, rgba(244,132,31,0.14), transparent 45%);
}
.page-hero .container{ position:relative; }
.page-hero h1{ color:#fff; font-size: clamp(2rem, 4vw, 2.8rem); margin-bottom:14px; }
.page-hero p{ color: rgba(255,255,255,0.82); max-width:640px; margin: 0 auto; }
.breadcrumb{
  display:flex;
  justify-content:center;
  gap:8px;
  margin-bottom: 18px;
  font-size:0.9rem;
  color: rgba(255,255,255,0.7);
}
.breadcrumb a{ color: var(--nsipc-orange); font-weight:600; }

/* ---------- Domaines (8 blocs) ---------- */
.domains-grid{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 26px;
}
.domain-card{
  position:relative;
  border-radius: var(--radius-lg);
  overflow:hidden;
  height: 320px;
  box-shadow: var(--shadow-soft);
  transition: var(--transition);
}
.domain-card:hover{ transform: translateY(-8px); box-shadow: var(--shadow-strong); }
.domain-card img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition: transform 0.6s ease;
}
.domain-card:hover img{ transform: scale(1.08); }
.domain-overlay{
  position:absolute;
  inset:0;
  background: linear-gradient(to top, rgba(8,31,63,0.92) 10%, rgba(8,31,63,0.25) 55%, rgba(8,31,63,0.05) 100%);
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding: 22px;
}
.domain-overlay .domain-num{
  position:absolute;
  top:18px;
  right:18px;
  width:36px;
  height:36px;
  border-radius:50%;
  background: rgba(244,132,31,0.9);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
  font-size:0.85rem;
}
.domain-overlay h3{
  color:#fff;
  font-size:1.08rem;
  margin-bottom:8px;
}
.domain-overlay a{
  font-size:0.85rem;
  font-weight:600;
  color: var(--nsipc-orange);
  display:inline-flex;
  align-items:center;
  gap:6px;
  opacity:0;
  transform: translateY(8px);
  transition: var(--transition);
}
.domain-card:hover .domain-overlay a{ opacity:1; transform:translateY(0); }

/* ---------- Pourquoi nous choisir ---------- */
.values-grid{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
}
.value-card{
  background:#fff;
  border-radius: var(--radius-lg);
  padding: 36px 28px;
  text-align:center;
  box-shadow: var(--shadow-soft);
  transition: var(--transition);
  border-bottom: 4px solid transparent;
}
.value-card:hover{
  transform: translateY(-6px);
  border-bottom-color: var(--nsipc-orange);
}
.value-icon{
  width:72px;
  height:72px;
  margin:0 auto 22px;
  border-radius: 50%;
  background: var(--nsipc-blue-light);
  color: var(--nsipc-orange);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.8rem;
}
.value-card h3{ font-size:1.1rem; }
.value-card p{ color: var(--nsipc-grey); font-size:0.95rem; }

/* ---------- Actualités ---------- */
.news-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}
.news-card{
  background:#fff;
  border-radius: var(--radius-lg);
  overflow:hidden;
  box-shadow: var(--shadow-soft);
  transition: var(--transition);
}
.news-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-strong); }
.news-img{ height: 210px; overflow:hidden; }
.news-img img{ width:100%; height:100%; object-fit:cover; transition: transform 0.5s; }
.news-card:hover .news-img img{ transform: scale(1.06); }
.news-body{ padding: 26px; }
.news-date{
  display:inline-block;
  color: var(--nsipc-orange);
  font-weight:600;
  font-size:0.8rem;
  text-transform:uppercase;
  letter-spacing:0.5px;
  margin-bottom:10px;
}
.news-body h3{ font-size: 1.08rem; margin-bottom: 10px; }
.news-body p{ color: var(--nsipc-grey); font-size:0.92rem; margin-bottom:16px; }
.news-link{ color: var(--nsipc-blue); font-weight:600; font-size:0.9rem; }
.news-link:hover{ color: var(--nsipc-orange); }

/* ---------- Témoignages ---------- */
.testimonials-wrap{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}
.testimonial-card{
  background:#fff;
  border-radius: var(--radius-lg);
  padding: 32px;
  box-shadow: var(--shadow-soft);
  position:relative;
}
.testimonial-card .quote-icon{
  color: var(--nsipc-orange);
  font-size:1.8rem;
  margin-bottom:16px;
  opacity:0.6;
}
.testimonial-card p{ color:#3a4357; font-size:0.96rem; margin-bottom:24px; font-style:italic; }
.testimonial-author{ display:flex; align-items:center; gap:14px; }
.testimonial-author img{
  width:52px; height:52px; border-radius:50%; object-fit:cover;
  border: 3px solid var(--nsipc-blue-light);
}
.testimonial-author strong{ display:block; color: var(--nsipc-blue); font-size:0.95rem; }
.testimonial-author span{ font-size:0.8rem; color: var(--nsipc-grey); }
.testimonial-stars{ color: var(--nsipc-orange); margin-bottom:12px; font-size:0.85rem; }

/* ---------- CTA bandeau ---------- */
.cta-band{
  background: linear-gradient(120deg, var(--nsipc-orange), var(--nsipc-orange-dark));
  color:#fff;
  padding: 60px 0;
  text-align:center;
  border-radius: var(--radius-lg);
  margin: 0 24px;
}
.cta-band h2{ color:#fff; margin-bottom:14px; }
.cta-band p{ color: rgba(255,255,255,0.92); margin-bottom: 28px; }
.cta-band .btn-outline{ border-color:#fff; }

/* ---------- Footer ---------- */
.site-footer{
  background: var(--nsipc-blue-dark);
  color: rgba(255,255,255,0.78);
  padding: 70px 0 0;
}
.footer-grid{
  display:grid;
  grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
  gap: 40px;
  padding-bottom: 50px;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}
.footer-brand img{ height: 120px; width:120px; object-fit:contain; margin-bottom:18px; background:#fff; border-radius:16px; padding:8px; }
.footer-brand p{ font-size:0.9rem; line-height:1.7; }
.footer-col h4{ color:#fff; font-size:1rem; margin-bottom:22px; position:relative; }
.footer-col ul li{ margin-bottom:12px; }
.footer-col ul li a{ font-size:0.9rem; transition: var(--transition); }
.footer-col ul li a:hover{ color: var(--nsipc-orange); padding-left:4px; }
.footer-contact li{ display:flex; gap:12px; margin-bottom:16px; font-size:0.9rem; align-items:flex-start; }
.footer-contact li i{ color: var(--nsipc-orange); margin-top:3px; }
.social-row{ display:flex; gap:12px; margin-top:18px; }
.social-row a{
  width:40px; height:40px;
  border-radius:50%;
  background: rgba(255,255,255,0.08);
  display:flex; align-items:center; justify-content:center;
  transition: var(--transition);
}
.social-row a:hover{ background: var(--nsipc-orange); transform: translateY(-3px); }
.footer-bottom{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding: 26px 0;
  font-size:0.85rem;
  flex-wrap:wrap;
  gap:10px;
}
.footer-bottom a:hover{ color: var(--nsipc-orange); }

/* Floating WhatsApp button */
.whatsapp-float{
  position:fixed;
  bottom:26px;
  right:26px;
  z-index: 999;
  width:60px;
  height:60px;
  border-radius:50%;
  background:#25D366;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.7rem;
  box-shadow: 0 10px 28px rgba(0,0,0,0.25);
  transition: var(--transition);
}
.whatsapp-float:hover{ transform: scale(1.08); }

/* ---------- Page A propos ---------- */
.about-flex{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items:center;
}
.about-img-wrap{ position:relative; }
.about-img-wrap img{ border-radius: var(--radius-lg); box-shadow: var(--shadow-strong); }
.about-badge-floating{
  position:absolute;
  bottom:-26px;
  left:-26px;
  background:#fff;
  padding: 22px 26px;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-strong);
  display:flex;
  align-items:center;
  gap:14px;
}
.about-badge-floating .num{ font-size:2.1rem; font-weight:700; color: var(--nsipc-orange); }
.about-badge-floating .label{ font-size:0.82rem; color: var(--nsipc-grey); line-height:1.3; }
.about-list{ margin-top: 24px; }
.about-list li{
  display:flex;
  gap:14px;
  margin-bottom:16px;
  align-items:flex-start;
  font-size:0.96rem;
}
.about-list li i{
  color: var(--nsipc-orange);
  background: var(--nsipc-blue-light);
  min-width:28px; height:28px;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:0.8rem;
  margin-top:2px;
}

.materials-strip{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top: 26px;
}
.material-chip{
  background: var(--nsipc-blue-light);
  color: var(--nsipc-blue);
  padding: 10px 18px;
  border-radius: 50px;
  font-size:0.85rem;
  font-weight:600;
}

/* ---------- Timeline / Valeurs rows about page ---------- */
.about-values-grid{
  display:grid;
  grid-template-columns: repeat(2,1fr);
  gap: 24px;
  margin-top: 40px;
}
.about-value-row{
  display:flex;
  gap:18px;
  background:#fff;
  padding: 26px;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-soft);
}
.about-value-row i{ font-size:1.6rem; color: var(--nsipc-orange); }
.about-value-row h4{ margin-bottom:6px; font-size:1rem; color: var(--nsipc-blue); }
.about-value-row p{ font-size:0.88rem; color: var(--nsipc-grey); margin:0; }

/* ---------- Page Expertise ---------- */
.anchor-nav{
  position: sticky;
  top: var(--header-height);
  z-index: 500;
  background:#fff;
  box-shadow: 0 4px 16px rgba(11,47,92,0.08);
  overflow-x:auto;
  white-space:nowrap;
}
.anchor-nav .container{ display:flex; gap:6px; padding-top:12px; padding-bottom:12px; }
.anchor-nav a{
  padding: 10px 18px;
  border-radius: 50px;
  font-size:0.86rem;
  font-weight:600;
  color: var(--nsipc-blue);
  transition: var(--transition);
  flex-shrink:0;
}
.anchor-nav a:hover, .anchor-nav a.active{ background: var(--nsipc-orange); color:#fff; }

.expertise-block{
  padding: 90px 0;
  scroll-margin-top: calc(var(--header-height) + 70px);
}
.expertise-block:nth-child(even){ background: var(--nsipc-grey-light); }
.expertise-flex{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items:center;
}
.expertise-flex.reverse .expertise-text{ order:2; }
.expertise-flex.reverse .expertise-media{ order:1; }
.expertise-letter{
  width:54px; height:54px;
  border-radius:50%;
  background: var(--nsipc-blue);
  color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-weight:700;
  font-size:1.3rem;
  margin-bottom:20px;
}
.expertise-text h2{ font-size:1.7rem; }
.expertise-text p{ color: var(--nsipc-grey); margin-bottom: 22px; }
.expertise-feature-list{ margin-bottom:28px; }
.expertise-feature-list li{
  display:flex; gap:10px; margin-bottom:12px; font-size:0.94rem; align-items:flex-start;
}
.expertise-feature-list li i{ color: var(--nsipc-orange); margin-top:4px; }

.gallery-grid{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}
.gallery-grid img, .gallery-grid .video-thumb{
  border-radius: var(--radius-md);
  height: 160px;
  width:100%;
  object-fit:cover;
  cursor:pointer;
  transition: var(--transition);
}
.gallery-grid img:hover{ transform: scale(1.03); box-shadow: var(--shadow-soft); }
.gallery-grid .span-2{ grid-column: span 2; height: 220px; }
.video-thumb{
  position:relative;
  background-size:cover;
  background-position:center;
  display:flex;
  align-items:center;
  justify-content:center;
}
.video-thumb::after{
  content:"";
  position:absolute; inset:0;
  background: rgba(8,31,63,0.4);
  border-radius: var(--radius-md);
}
.video-thumb i{
  position:relative;
  z-index:2;
  color:#fff;
  font-size:2.2rem;
  background: rgba(244,132,31,0.85);
  width:54px; height:54px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
}

/* Lightbox */
.lightbox{
  position:fixed;
  inset:0;
  background: rgba(8,16,30,0.92);
  z-index: 2000;
  display:none;
  align-items:center;
  justify-content:center;
  padding: 30px;
}
.lightbox.active{ display:flex; }
.lightbox img, .lightbox iframe{
  max-width: 90vw;
  max-height: 85vh;
  border-radius: 12px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.5);
}
.lightbox-close{
  position:absolute;
  top: 26px; right: 30px;
  color:#fff;
  font-size:2rem;
  cursor:pointer;
  background:none;
  border:none;
}

/* ---------- Contact page ---------- */
.contact-wrap{
  display:grid;
  grid-template-columns: 1fr 1.25fr;
  gap: 50px;
  align-items:flex-start;
}
.contact-info-card{
  background: var(--nsipc-blue);
  color:#fff;
  border-radius: var(--radius-lg);
  padding: 44px 34px;
}
.contact-info-card h3{ color:#fff; }
.contact-info-card p{ color: rgba(255,255,255,0.82); font-size:0.94rem; margin-bottom:30px; }
.contact-info-item{
  display:flex;
  gap:16px;
  margin-bottom: 24px;
  align-items:flex-start;
}
.contact-info-item .ci-icon{
  width:46px; height:46px;
  background: rgba(244,132,31,0.18);
  color: var(--nsipc-orange);
  border-radius:12px;
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
  font-size:1.1rem;
}
.contact-info-item strong{ display:block; font-size:0.92rem; margin-bottom:4px; }
.contact-info-item span, .contact-info-item a{ font-size:0.88rem; color: rgba(255,255,255,0.78); }

.contact-form-card{
  background:#fff;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
  padding: 44px;
}
.form-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
}
.form-group{ margin-bottom: 22px; display:flex; flex-direction:column; gap:8px; }
.form-group.full{ grid-column: 1 / -1; }
.form-group label{ font-size:0.9rem; font-weight:600; color: var(--nsipc-blue); }
.form-group label .req{ color: var(--nsipc-orange); }
.form-group input,
.form-group select,
.form-group textarea{
  padding: 14px 16px;
  border-radius: 10px;
  border: 1.5px solid #e3e7ee;
  font-family: inherit;
  font-size: 0.95rem;
  color: var(--nsipc-dark-text);
  transition: var(--transition);
  background: #fafbfc;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus{
  outline:none;
  border-color: var(--nsipc-orange);
  background:#fff;
  box-shadow: 0 0 0 4px rgba(244,132,31,0.12);
}
.form-group textarea{ resize: vertical; min-height: 130px; }
.form-note{ font-size:0.78rem; color: var(--nsipc-grey); margin-top:-12px; margin-bottom: 20px; }
.form-msg{
  padding: 14px 18px;
  border-radius: 10px;
  font-size: 0.9rem;
  margin-bottom: 20px;
  display:none;
}
.form-msg.show{ display:block; }
.form-msg.success{ background:#e5f8ee; color:#148a4d; border: 1px solid #a8e9c6; }
.form-msg.error{ background:#fdeaea; color:#c0392b; border: 1px solid #f3c2c2; }

.map-wrap{
  margin-top: 50px;
  border-radius: var(--radius-lg);
  overflow:hidden;
  box-shadow: var(--shadow-soft);
  height: 400px;
}
.map-wrap iframe{ width:100%; height:100%; border:0; }

.faq-grid{ margin-top: 40px; }
.faq-item{
  background:#fff;
  border-radius: var(--radius-md);
  padding: 22px 26px;
  margin-bottom: 14px;
  box-shadow: var(--shadow-soft);
  cursor:pointer;
}
.faq-item h4{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin:0;
  font-size:0.98rem;
  color: var(--nsipc-blue);
}
.faq-item h4 i{ color: var(--nsipc-orange); transition: transform 0.3s; }
.faq-item.open h4 i{ transform: rotate(45deg); }
.faq-answer{
  max-height:0;
  overflow:hidden;
  transition: max-height 0.35s ease;
  font-size:0.9rem;
  color: var(--nsipc-grey);
}
.faq-item.open .faq-answer{ max-height: 300px; margin-top: 14px; }

/* ---------- Utilities ---------- */
.two-col{ display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center; }
.chip-row{ display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
.text-center{ text-align:center; }
.mt-40{ margin-top:40px; }

/* ================= RESPONSIVE ================= */
@media (max-width: 1080px){
  .domains-grid{ grid-template-columns: repeat(2, 1fr); }
  .values-grid{ grid-template-columns: repeat(2, 1fr); }
  .news-grid, .testimonials-wrap{ grid-template-columns: repeat(1, 1fr); }
  .footer-grid{ grid-template-columns: 1fr 1fr; }
  .about-flex, .expertise-flex, .contact-wrap, .two-col{ grid-template-columns: 1fr; }
  .expertise-flex.reverse .expertise-text,
  .expertise-flex.reverse .expertise-media{ order: initial; }
  .about-values-grid{ grid-template-columns: 1fr; }
}

@media (max-width: 860px){
  :root{ --header-height: 78px; }
  .main-nav{ display:none; }
  .burger{ display:flex; }
  .brand img{ height:64px; width:64px; }
  .hero{ min-height: 86vh; text-align:left; }
  .hero-stats{ gap: 30px; }
  .domains-grid{ grid-template-columns: 1fr 1fr; }
  section{ padding: 60px 0; }
  .header-phone{ display:none; }
  .header-cta{ gap:10px; }
  .header-cta .btn-primary{ display:none; }

  /* mobile nav drawer */
  .main-nav.mobile-open{
    display:flex;
    position:fixed;
    top: var(--header-height);
    left:0;
    width:100%;
    height: calc(100vh - var(--header-height));
    background:#fff;
    flex-direction:column;
    padding: 20px;
    overflow-y:auto;
    box-shadow: inset 0 8px 16px -10px rgba(0,0,0,0.1);
  }
  .main-nav.mobile-open > ul{ flex-direction:column; width:100%; align-items:stretch; }
  .main-nav.mobile-open > ul > li > a{
    justify-content:space-between;
    padding: 16px 10px;
    border-bottom: 1px solid #f0f0f0;
  }
  .mega-menu{
    position:static;
    transform:none;
    width:100%;
    display:none;
    opacity:1; visibility:visible; pointer-events:auto;
    box-shadow:none;
    grid-template-columns: 1fr;
    padding: 10px 0 10px 16px;
    border-top:none;
  }
  .main-nav.mobile-open li.has-mega.open .mega-menu{ display:grid; }
  .main-nav.mobile-open li.has-mega:hover .mega-menu{ /* disable hover on mobile */ }
}

@media (max-width: 600px){
  .domains-grid{ grid-template-columns: 1fr; }
  .values-grid{ grid-template-columns: 1fr; }
  .form-grid{ grid-template-columns: 1fr; }
  .gallery-grid{ grid-template-columns: 1fr 1fr; }
  .hero-actions{ flex-direction:column; align-items:stretch; }
  .footer-grid{ grid-template-columns: 1fr; }
  .footer-bottom{ flex-direction:column; text-align:center; }
  .cta-band{ margin:0; border-radius:0; }
}
