/* --- TABLETTE --- */
@media (max-width: 1100px) {
  .header-content,
  .header-separator,
  .footer-separator,
  .tableau-container {
    width: 95vw;
    max-width: 95vw;
    min-width: 0;
  }
  .header-content { padding: 0 2vw; }
  .tableau-container {
    height: auto;
    min-height: 320px;
    margin: 14px auto 18px auto;
  }
  .section-content {
    font-size: 1.08rem;
    padding: 36px 10px;
    min-height: 150px;
  }
  .btn-colonne {
    padding: 11px 16px;
    font-size: 1rem;
  }
  .btn-ligne {
    padding: 14px 8px;
    font-size: 1rem;
  }
  /* Décalage vertical sur tablette */
  .lignes {
    justify-content: flex-start;
  }
  .btn-ligne:first-child {
    margin-top: 44px; /* Ajuste pour retrouver le bon décalage */
  }
}

/* --- MOBILE --- */
@media (max-width: 700px) {
  body {
    padding-left: 10px;
    padding-right: 10px;
  }
  .header-content,
  .header-separator,
  .footer-separator,
  .tableau-container {
    width: 98vw;
    max-width: 98vw;
    min-width: 0;
  }
  .header-content {
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    width: 100vw;
    padding: 0;
    min-width: 0;
  }
  .logo-box {
    align-items: center;
  }
  .site-title {
    font-size: 1.5rem;
    text-align: center;
  }
  .site-subtitle {
    font-size: 1rem;
    margin-top: -2px;
    text-align: center;
  }
  .menu-burger {
    position: static;
    margin: 12px 0 8px 0;
    align-self: center;
  }
  .header-separator,
  .footer-separator {
    width: 92vw;
    margin-left: auto;
    margin-right: auto;
    min-width: 0;
  }
  main {
    padding: 0;
    min-height: 0;
  }
  .tableau-container {
    flex-direction: column;
    align-items: stretch;
    min-width: 0;
    height: auto;
    padding: 0;
    margin: 8px auto 16px auto;
    border: none;
  }
  /* Onglets lignes en row */
  .lignes {
    flex-direction: row;
    border: none;
    justify-content: center;
    align-items: flex-start;
    height: auto;
    min-width: 0;
    margin: 0 0 6px 0;
    gap: 0;
    position: relative;
  }
  /* Décalage vertical mobile = desktop */
  .btn-ligne:first-child {
    margin-top:0 !important;
  }
  .btn-ligne {
    writing-mode: horizontal-tb;
    text-orientation: initial;
    border-left: none;
    border-bottom: 4px solid transparent;
    margin-bottom: 0;
    margin-right: 14px;
    margin-left: 0;
    padding: 12px 8px;
    font-size: 1rem;
  }
  .btn-ligne.active {
    border-bottom: 4px solid #111;
    border-left: none;
  }
  /* Ligne de séparation entre onglets lignes et colonnes */
  .lignes::after {
    content: "";
    display: block;
    position: absolute;
    left: 0; right: 0; bottom: -7px;
    height: 1px;
    background: #222;
    opacity: 0.4;
    width: 100%;
  }
  .contenu-principal {
    min-width: 0;
  }
  .colonnes {
    flex-direction: row;
    flex-wrap: wrap;
    border-bottom: none;
    padding: 0 0 4px 0;
    justify-content: center;
    margin-bottom: 2px;
  }
  .btn-colonne {
    margin-right: 10px;
    padding: 8px 10px;
    font-size: 1rem;
    border-bottom: 4px solid transparent;
  }
  .btn-colonne.active {
    border-bottom: 4px solid #111;
  }
  .section-content {
    padding: 18px 3vw;
    font-size: 1rem;
    min-height: 120px;
    border-width: 1px;
    margin-left: 0;
    margin-top: 0;
    border-radius: 8px;
    border-left: 0px solid #222; 
  }
  /* Footer */
  .footer-links {
    gap: 24px;
    flex-direction: row;
    justify-content: center;
  }
  .footer-icon {
    width: 26px;
    height: 26px;
  }
  footer {
    padding: 14px 0;
  }
}

/* --- MICRO-MOBILE --- */
@media (max-width: 430px) {
  .section-content {
    font-size: 0.96rem;
    padding: 12px 3vw;
  }
  .btn-colonne, .btn-ligne {
    font-size: 0.95rem;
    padding: 8px 4px;
  }
}

/* --- DESKTOP : supprimer la ligne à gauche de la première colonne --- */
@media (min-width: 701px) {
  .lignes {
    border-right: none !important;
  }
}


/* --- A PROPOS LAYOUT                              --- */
@media (max-width: 1100px) {
  .apropos-layout {
    max-width: 96vw;
    gap: 22px;
    padding: 12px 2vw;
  }
  .apropos-image img {
    max-width: 120px;
  }
}
@media (max-width: 700px) {
  .apropos-layout {
    flex-direction: column;
    align-items: center;
    gap: 12px;
    max-width: 100vw;
    padding: 10px 0;
  }
  .apropos-image img {
    max-width: 150px;
  }
  .apropos-texte h2 { font-size: 1.22rem; }
}

@media (max-width: 1024px) {
  .apropos-layout {
    flex-direction: column;
    align-items: center;
    text-align: left;
  }

  .apropos-image {
    margin: 0 auto 20px auto;
  }

  .apropos-texte {
    align-items: center;
    text-align: left;
  }
}


/* --- ARCHITECTURE - mobile/tablette --- */

@media (max-width: 480px) {
  .project-close {
    top: 10px;
    right: 10px;
    font-size: 1.6rem;
    z-index: 9999;
  }

  .project-content h2 {
    padding-right: 2rem; /* Laisse de l'espace pour la croix */
    font-size: 1.2rem;
  }
}

/* ----------------------------- MODALE RESPONSIVE ----------------------------- */

@media (max-width: 1024px) {
  .carousel-nav {
    display: none !important; /* supprime les flèches */
  }

  .project-modal {
    align-items: flex-start;
    overflow-y: auto;  /* permet le scroll si besoin */
    padding-top: 40px;
    padding-bottom: 40px;
  }

  .project-content {
    max-height: none;
    overflow: visible;
    padding: 16px;
  }

  .project-content h2,
  .project-content p {
    text-align: left;
    word-break: break-word;
  }

  .carousel {
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
  }

  .carousel-image {
    max-height: 60vh;       /* ajuste dynamiquement à l’écran */
    object-fit: contain;
  }

  .carousel-dots {
    margin-bottom: 16px;
  }
}

/* ----------------------------- SPÉCIFIQUE MOBILE XS (iPhone SE) ----------------------------- */

@media (max-width: 480px) {
  .project-close {
    top: 10px;
    right: 10px;
    font-size: 1.6rem;
    z-index: 9999;
  }

  .project-content h2 {
    padding-right: 2rem; /* évite chevauchement avec la croix */
    font-size: 1.2rem;
  }

  .carousel-image {
    max-height: 50vh;
  }
}


/* --------------------------------------------------- TUTORIEL RESPONSIVE --- */
@media (max-width: 700px) {
  #tuto-box {
    width: 90vw;
    padding: 20px 16px;
  }

  #tuto-intro {
    font-size: 1rem;
    margin-bottom: 12px;
  }

  #tuto-grid {
    grid-template-columns: repeat(4, 1fr);
    font-size: 0.9rem;
  }

  .tuto-cell {
    padding: 10px;
  }

  #tuto-text {
    font-size: 0.95rem;
    margin-top: 10px;
  }

  #tuto-skip {
    font-size: 1.8rem;
    top: 10px;
    right: 14px;
  }
}

@media (max-width: 430px) {
  #tuto-box {
    padding: 14px 12px;
  }

  #tuto-intro {
    font-size: 0.95rem;
  }

  #tuto-text {
    font-size: 0.88rem;
  }

  .tuto-cell {
    padding: 8px;
    font-size: 0.85rem;
  }

  #tuto-grid {
    gap: 2px;
  }
}

/* --------------------------------------RESPONSIVE ACTUARCHI---- */


@media (max-width: 700px) {
  .actuarchi-wrapper {
    flex-direction: column;
    padding: 8px;
  }

  .actuarchi-slide {
    padding: 6px;
  }

  .actuarchi-contenu {
    padding: 12px;
  }

  .actuarchi-contenu h3 {
    font-size: 1.2rem;
  }

  .actuarchi-contenu p {
    font-size: 0.95rem;
  }

  .actuarchi-date {
    font-size: 0.85rem;
  }
}


/* --------------------------------------RESPONSIVE APROPOSSECTIONS---- */


@media (max-width: 700px) {
  .aproposSections-wrapper {
    flex-direction: column;
    padding: 8px;
  }

}
