
/* =========================================================
   2C SARL 2026 — RESPONSIVE GLOBAL
   Desktop • Laptop • Tablette • Smartphone • navigateurs
   ========================================================= */

html { width:100%; overflow-x:hidden; }
body { width:100%; min-width:0; overflow-x:hidden; }
.container { width:min(92%, 1320px); }
section { overflow:hidden; }

/* Navigation commune */
.site-header { position:relative; z-index:10000; }
.navbar {
  min-height:78px;
  padding:10px 0;
  background:rgba(255,255,255,.98) !important;
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
}
.navbar-brand { flex:0 0 auto; }
.navbar-brand img,
.navbar-brand .logo {
  width:auto;
  height:58px;
  max-width:190px;
  object-fit:contain;
}
.navbar-nav { gap:2px; }
.navbar-nav .nav-link {
  white-space:nowrap;
  font-size:14px;
  line-height:1.3;
  padding:11px 10px !important;
}
.navbar-toggler {
  width:46px;
  height:42px;
  padding:7px 9px;
  border:1px solid rgba(24,72,145,.25) !important;
  border-radius:8px;
  background:#fff;
}
.navbar-toggler:focus { box-shadow:0 0 0 .2rem rgba(24,72,145,.15); }
.navbar-toggler-icon { width:1.25em; height:1.25em; }
.nav-btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:9px 15px !important;
  border-radius:8px;
  font-size:13px;
  font-weight:700;
  white-space:nowrap;
}

/* Évite les débordements de longs textes */
h1,h2,h3,h4,h5,h6,p,li,a,span { overflow-wrap:anywhere; }
iframe, video { max-width:100%; }

/* Images et cartes */
img { max-width:100%; height:auto; }
.row { --bs-gutter-x:1.5rem; }
.card, .service-card, .project-card, .news-card, .team-card,
.advantage-card, .gallery-box { max-width:100%; }

/* Grilles qui restent propres */
.gallery-box img { object-fit:cover; }

/* Très grands écrans */
@media (min-width:1400px) {
  .container { width:min(90%, 1380px); }
}

/* Ordinateurs portables */
@media (max-width:1199.98px) {
  .navbar-nav .nav-link { font-size:13px; padding-left:7px !important; padding-right:7px !important; }
  .nav-btn { padding-left:12px !important; padding-right:12px !important; }
  .navbar-brand img, .navbar-brand .logo { height:54px; }
  .hero h1 { font-size:clamp(38px, 5vw, 54px); }
}

/* Tablettes et petits ordinateurs */
@media (max-width:991.98px) {
  .navbar { min-height:70px; padding:8px 0; }
  .navbar-brand img, .navbar-brand .logo { height:52px; max-width:175px; }
  .navbar-collapse {
    margin-top:8px;
    padding:10px 0 14px;
    background:#fff;
    border-top:1px solid rgba(24,72,145,.1);
  }
  .navbar-nav { align-items:stretch !important; gap:0; }
  .navbar-nav .nav-link {
    display:block;
    width:100%;
    padding:11px 8px !important;
    border-radius:6px;
  }
  .navbar-nav .nav-link::after { display:none; }
  .navbar-nav .nav-link:hover,
  .navbar-nav .nav-link.active { background:rgba(24,72,145,.06); }
  .nav-item.ms-lg-2 { margin-top:8px !important; }
  .nav-btn { width:100%; }
  section { padding:75px 0; }
  .hero-about { min-height:55vh; height:auto !important; padding:110px 0 70px; }
  .hero-about h1 { font-size:clamp(34px, 6vw, 48px); }
  .hero-about p { font-size:18px; }
  .gallery-banner, .news-banner { padding:105px 0 75px; }
  .gallery-banner h1, .news-banner h1 { font-size:clamp(34px, 6vw, 48px); }
}

/* Smartphones */
@media (max-width:767.98px) {
  .container { width:92%; }
  .navbar-brand img, .navbar-brand .logo { height:48px; max-width:160px; }
  .navbar { min-height:64px; }
  section { padding:60px 0; }
  .hero,
  .hero-about {
    min-height:auto;
    height:auto !important;
    padding:115px 0 70px;
    background-attachment:scroll !important;
  }
  .hero h1 { font-size:clamp(30px, 9vw, 42px); line-height:1.15; }
  .hero p { font-size:16px; line-height:1.6; }
  .hero-about h1 { font-size:clamp(30px, 9vw, 42px); line-height:1.2; }
  .hero-about p { font-size:16px; }
  .section-title { font-size:clamp(27px, 7vw, 36px); line-height:1.25; }
  .section-subtitle { font-size:15px; }
  .btn { max-width:100%; }
  .btn-warning, .btn-primary, .btn-outline-primary { white-space:normal; }
  .service-card, .project-card, .news-card, .team-card, .advantage-card { margin-bottom:24px; }
  .project-card img, .news-image img { height:auto; min-height:190px; object-fit:cover; }
  .team-image img { height:280px; object-fit:cover; }
  .gallery-box img { height:230px; }
  .gallery-filter .btn, .news-filter .btn { margin:5px 3px; padding:9px 16px; font-size:14px; }
  .gallery-cta, .news-cta { padding:65px 0; }
  .gallery-cta h2 { font-size:30px; }
  .gallery-cta p { width:100%; font-size:16px; }
  .table-responsive { -webkit-overflow-scrolling:touch; }
}

/* Petits smartphones */
@media (max-width:575.98px) {
  .container { width:94%; }
  .navbar-brand img, .navbar-brand .logo { height:44px; max-width:145px; }
  .navbar-toggler { width:42px; height:40px; }
  .hero, .hero-about { padding:105px 0 60px; }
  section { padding:50px 0; }
  .hero h1, .hero-about h1 { font-size:30px; }
  .hero p, .hero-about p { font-size:15px; }
  .gallery-banner, .news-banner { padding:95px 0 60px; }
  .gallery-banner h1, .news-banner h1 { font-size:31px; }
  .gallery-box img { height:205px; }
  .team-image img { height:240px; }
  .card-body { padding:20px; }
  .display-1 { font-size:2.6rem; }
  .display-2 { font-size:2.2rem; }
}

/* Réduction des animations pour les utilisateurs qui le demandent */
@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after {
    scroll-behavior:auto !important;
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}
