/* ==========================================================
   RESPONSIVE.CSS — EriFaye Média
   Media Queries organisées par breakpoints (grande → petite)
   Breakpoints Bootstrap 5 :
     xl : ≥1200px  |  lg : ≥992px  |  md : ≥768px  |  sm : ≥576px
========================================================== */


/* ----------------------------------------------------------
   ≥ 1200px — Desktop large (xl+)
---------------------------------------------------------- */
@media (min-width: 1200px) {
  /* Navmenu desktop */
  .navmenu { padding: 0; }
  .navmenu ul { margin: 0; padding: 0; display: flex; list-style: none; align-items: center; }
  .navmenu li { position: relative; }
  .navmenu > ul > li { white-space: nowrap; padding: 15px 14px; }
  .navmenu > ul > li:last-child { padding-right: 0; }
  .navmenu a,
  .navmenu a:focus {
    color: var(--nav-color);
    font-size: 13px;
    padding: 0 2px;
    font-family: var(--nav-font);
    font-weight: 500;
    display: flex;
    align-items: center;
    justify-content: space-between;
    white-space: nowrap;
    transition: .3s;
    position: relative;
    text-transform: uppercase;
    letter-spacing: 1px;
  }
  .navmenu > ul > li > a::before {
    content: "";
    position: absolute;
    height: 2px;
    bottom: -6px;
    left: 0;
    background-color: var(--nav-hover-color);
    visibility: hidden;
    width: 0;
    transition: all .3s ease-in-out;
  }
  .navmenu a:hover::before,
  .navmenu li:hover > a::before,
  .navmenu .active::before { visibility: visible; width: 100%; }
  .navmenu li:hover > a,
  .navmenu .active,
  .navmenu .active:focus { color: color-mix(in srgb, var(--nav-color) 90%, white 15%); }
}


/* ----------------------------------------------------------
   ≤ 1200px — Header CTA (avant breakpoint XL)
---------------------------------------------------------- */
@media (max-width: 1200px) {
  .header .cta-btn      { order: 2; margin: 0 15px 0 0; padding: 6px 15px; }
  .header .navmenu      { order: 3; }
}


/* ----------------------------------------------------------
   ≤ 1199px — Mobile nav (< xl)
---------------------------------------------------------- */
@media (max-width: 1199px) {
  .mobile-nav-toggle { color: var(--nav-color); font-size: 28px; line-height: 0; margin-right: 10px; cursor: pointer; transition: color .3s; }

  .navmenu { padding: 0; z-index: 9997; }
  .navmenu ul {
    display: none;
    list-style: none;
    position: absolute;
    inset: 60px 20px 20px 20px;
    padding: 10px 0;
    margin: 0;
    border-radius: 6px;
    background-color: var(--nav-mobile-background-color);
    border: 1px solid color-mix(in srgb, var(--default-color), transparent 90%);
    overflow-y: auto;
    transition: .3s;
    z-index: 9998;
  }
  .navmenu a,
  .navmenu a:focus {
    color: var(--nav-dropdown-color);
    padding: 10px 20px;
    font-family: var(--nav-font);
    font-size: 17px;
    font-weight: 500;
    display: flex;
    align-items: center;
    justify-content: space-between;
    white-space: nowrap;
    transition: .3s;
  }
  .navmenu a:hover,
  .navmenu .active,
  .navmenu .active:focus { color: var(--nav-dropdown-hover-color); }

  .mobile-nav-active { overflow: hidden; }
  .mobile-nav-active .mobile-nav-toggle { color: #fff; position: absolute; font-size: 32px; top: 15px; right: 15px; margin-right: 0; z-index: 9999; }
  .mobile-nav-active .navmenu { position: fixed; overflow: hidden; inset: 0; background: rgba(0,0,0,.8); transition: .3s; }
  .mobile-nav-active .navmenu > ul { display: block; }
}


/* ----------------------------------------------------------
   ≤ 992px — Tablette (< lg)
---------------------------------------------------------- */
@media (max-width: 992px) {
  /* Hero : particules désactivées */
  #heroParticles { display: none; }

  /* Portfolio : 3 colonnes */
  .pf-grid { grid-template-columns: repeat(3, 1fr); }
}


/* ----------------------------------------------------------
   ≤ 768px — Mobile large (< md)
---------------------------------------------------------- */
@media (max-width: 768px) {
  /* AOS : supprimer les délais sur mobile */
  [data-aos-delay] { transition-delay: 0 !important; }

  /* Section title */
  .section-title p { font-size: 24px; }

  /* Hero */
  .hero { align-items: flex-start; }
  .hero h2 { font-size: 36px; }
  .hero p  { font-size: 16px; }
  .hero-stat-sep { display: none; }

  /* Vision / Features tabs */
  .features .nav-link i { padding: 0; font-size: 32px; }

  /* Portfolio : 2 colonnes + slider plein */
  .pf-grid { grid-template-columns: repeat(2, 1fr); }
  .pf-slot { width: 85vw; }
}


/* ----------------------------------------------------------
   ≤ 575px — Mobile petit (< sm)
---------------------------------------------------------- */
@media (max-width: 575px) {
  /* Vision / Features tabs */
  .features .nav-link { padding: 12px; }
  .features .nav-link i { font-size: 22px; }

  /* Formulaire de contact */
  .contact .php-email-form { padding: 20px; }
}


/* ----------------------------------------------------------
   ≤ 480px — Très petit écran
---------------------------------------------------------- */
@media (max-width: 480px) {
  /* Portfolio : 1 colonne */
  .pf-grid { grid-template-columns: 1fr; }
}