/* ──────────────────────────────────────────────
   Fiscadirect — responsive.css
   Breakpoints: 1280 / 1024 / 960 / 860 / 760 / 640 / 560 / 480 / 375
────────────────────────────────────────────── */

/* ── 1024px : laptop ── */
@media (max-width: 1024px) {
  .enjeux-grid { grid-template-columns: repeat(2, 1fr); }
  .foot-grid { grid-template-columns: 1fr 1fr; }
  .ent-sc-card { height: 280px; }
}

/* ── 960px : tablet landscape ── */
@media (max-width: 960px) {
  .nav-links { display: none; }
  .nav-cta { display: none; }
  .nav-hamburger { display: flex; }

  .hero { padding: clamp(50px, 6vh, 90px) 0; min-height: calc(100vh - var(--admin-bar-h) - var(--nav-h) - var(--clients-h)); }
  :root { --section-y: 80px; --section-y-sm: 50px; --clients-h: 150px; }

  .stats-grid { grid-template-columns: 1fr 1fr; gap: 30px; }
  .sb:nth-child(2) { border-right: none; }

  .enjeux-grid { grid-template-columns: 1fr 1fr; }
  .sec-head { grid-template-columns: 1fr; gap: 20px; }

  .foot-grid { grid-template-columns: 1fr 1fr; gap: 30px; }
}

/* ── 860px : tablet portrait ── */
@media (max-width: 860px) {
  .arg-grid { grid-template-columns: 1fr; gap: 40px; }
  .arg-right { position: static; }
  .meth-grid { grid-template-columns: 1fr; gap: 40px; }
  .meth-left { position: static; }
  .methodologie > .wrap { position: static; min-height: unset; display: block; }
  .meth-step { opacity: 1 !important; transform: none !important; }
  .meth-step-text { max-height: 300px !important; opacity: 1 !important; color: var(--sky) !important; }
  .cta-grid { grid-template-columns: 1fr; gap: 30px; }

  /* Section Cmagic : image passe au-dessus du texte en flux */
  .sw-grid { grid-template-columns: 1fr; gap: 0; min-height: unset; }
  .sw-content { padding-left: 0; }
  .sw-visual { display: none; }
  .sw-img {
    position: relative;
    left: auto;
    top: auto;
    transform: none;
    width: 100%;
    max-width: 100%;
    margin-bottom: 0;
  }
  .sw-img-placeholder {
    position: relative;
    left: auto;
    top: auto;
    transform: none;
    width: 100%;
    max-width: 100%;
    margin-bottom: 0;
  }
  .sw-badge {
    position: relative;
    left: auto;
    bottom: auto;
    transform: none;
    margin: 12px auto 32px;
    display: flex;
    width: fit-content;
  }
  .coll-software .wrap {
    min-height: unset;
    display: block;
  }

  .exp-grid { grid-template-columns: 1fr 1fr; gap: 20px; }

  /* Engagement : 1 colonne, stats en ligne horizontale */
  .eng-grid,
  .eng-grid--2,
  .eng-grid--3,
  .eng-grid--4 { grid-template-columns: 1fr !important; gap: 0; }
  .eng-title { margin-bottom: 16px; }
  .eng-stat {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 14px 0;
    border-bottom: 1px solid rgba(20,41,58,.12);
  }
  .eng-stat:last-child { border-bottom: none; }
  .eng-stat .n { font-size: 44px; flex-shrink: 0; line-height: 1; }
  .eng-stat .l { font-size: 14px; margin-top: 0; line-height: 1.3; }

  .process-grid { grid-template-columns: 1fr !important; gap: 30px !important; }
  .process-grid::before { display: none; }
  .process-step:nth-child(1),
  .process-step:nth-child(2),
  .process-step:nth-child(3) { padding: 0; }
  .process-features { grid-template-columns: 1fr; }

  .blog-grid { grid-template-columns: 1fr 1fr; }
  .archive-list { grid-template-columns: 1fr; }
  .archive-item { grid-template-columns: 160px 1fr; }
}

/* ── 760px : large phone ── */
@media (max-width: 760px) {
  .sectors-grid { grid-template-columns: 1fr; }
  .sector-card { height: 200px; padding: 28px 28px; }
  .sector-icon { width: 56px; height: 56px; top: 24px; right: 24px; }
  .ent-sc-card { height: 220px; }
  .ent-sectors-highlight { flex-direction: column; gap: 20px; padding: 28px 24px; }
  .ent-sh-icon-wrap { width: 44px; height: 44px; border-radius: 11px; }
  .ent-sh-icon { width: 22px; height: 22px; }

  /* Carrousel secteurs — flèches superposées */
  .ent-sectors-wrap {
    display: block;
    position: relative;
    padding: 0;
    margin-left: 0;
    margin-right: 0;
  }
  .ent-sectors-clip {
    width: 100%;
    padding: 60px 0;
    margin: -60px 0;
    overflow: hidden;
  }
  .ent-sc-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 20;
    width: 36px;
    height: 36px;
    background: rgba(247,246,242,.6);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(229,183,59,.3);
    color: var(--navy-900);
    box-shadow: 0 4px 16px -4px rgba(20,41,58,.2);
  }
  .ent-sc-arrow:hover { background: rgba(229,183,59,.9); color: var(--navy-900); }
  .ent-sc-prev { left: 6px; }
  .ent-sc-next { right: 6px; }
  .ent-sc-card:hover { transform: none; }
  /* Testimonial : 2 cartes visibles */
  .t-card { flex: 0 0 calc((100% - 24px) / 2); }
  .t-dots { margin-top: 28px; }

  .foot-grid { grid-template-columns: 1fr 1fr; gap: 30px; }
  .foot-bottom { flex-direction: column; gap: 12px; text-align: center; }
  .foot-links { flex-wrap: wrap; justify-content: center; }

  .stats-grid { grid-template-columns: 1fr 1fr; }
}

/* ── 640px : phone ── */
@media (max-width: 640px) {
  .wrap { padding: 0 20px; }
  :root { --section-y: 60px; --section-y-sm: 40px; }
  .brand-logo, .brand .custom-logo-link img, .brand .custom-logo { height: 34px !important; max-height: 34px !important; max-width: 160px !important; }

  /* Hero : centré sur mobile */
  .hero { padding: clamp(40px, 5vh, 70px) 0; min-height: calc(100vh - var(--admin-bar-h) - var(--nav-h) - var(--clients-h)); }
  :root { --clients-h: 140px; }
  .hero-content { text-align: center; }
  .hero-lede { margin-left: auto; margin-right: auto; }
  .hero-ctas { justify-content: center; }
  .crumb { justify-content: center; }

  /* Pages internes */
  .page-hero--image { padding: 60px 0 80px; }
  .page-hero-title { font-size: clamp(28px, 8vw, 40px); }
  .ent-sectors-intro-title { font-size: clamp(22px, 6vw, 28px); }
  .testi-intro-title { font-size: clamp(22px, 6vw, 28px); }
  .page-article { padding: 50px 0 80px; }
  .single-content-wrap { padding-top: 50px; }
  .sc-cta-box { padding: 28px 24px; gap: 20px; flex-direction: column; align-items: center; text-align: center; }

  .h1 { font-size: clamp(36px, 9vw, 56px); }
  .hero-lede { font-size: 16px; }
  .kpi .val { font-size: 26px; }

  /* Argument */
  .arg-list { text-align: left; }

  /* Enjeux */
  .enjeux-grid { grid-template-columns: 1fr; }
  .enj-card { min-height: unset; }

  /* Engagement */
  .eng-title { font-size: 22px; }
  .eng-stat { text-align: left; }
  .eng-stat .n { font-size: 38px; }

  /* Mission highlights */
  .mh { text-align: left; }

  .ent-sc-card { height: 200px; border-radius: 12px; }

  /* Testimonial */
  .testi-head { flex-direction: column; align-items: flex-start; gap: 16px; }
  .testi-clip { mask-image: none; -webkit-mask-image: none; padding: 0; margin: 0; overflow: hidden; }
  .testi-track { gap: 0; }
  .t-card { flex: 0 0 100%; padding: 20px; margin-right: 0; }

  /* Blog */
  .blog-grid { grid-template-columns: 1fr; }
  .archive-list { grid-template-columns: 1fr; }
  .archive-item { grid-template-columns: 1fr; }
  .archive-img { min-height: 180px; aspect-ratio: 16 / 9; }

  /* Process */
  .process-box { padding: 30px 20px; }
  .process-features { grid-template-columns: 1fr; }
  .process-step { text-align: left; }
  .step-body { text-align: left; }

  /* Footer compact : brand + accordéons */
  .foot-grid { grid-template-columns: 1fr; gap: 0; }
  .foot-brand { text-align: center; padding-bottom: 28px; border-bottom: 1px solid rgba(255,255,255,.08); margin-bottom: 4px; }
  .foot-brand p { margin: 14px auto 0; }
  .foot-brand .fm::after { margin-left: auto; margin-right: auto; }
  .foot-logo { margin: 0 auto; }
  .foot-address { text-align: center; }
  .foot-socials { justify-content: center; }
  /* Colonnes liens : accordéon */
  .foot-col { border-bottom: 1px solid rgba(255,255,255,.08); }
  .foot-col h5 {
    margin-bottom: 0;
    padding: 16px 0;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    user-select: none;
  }
  .foot-col h5::after {
    content: "";
    width: 8px; height: 8px;
    border-right: 2px solid rgba(255,255,255,.4);
    border-bottom: 2px solid rgba(255,255,255,.4);
    transform: rotate(45deg);
    transition: transform .2s;
    flex-shrink: 0;
  }
  .foot-col.is-open h5::after { transform: rotate(-135deg); }
  .foot-col ul {
    display: none;
    align-items: flex-start;
    padding-bottom: 16px;
  }
  .foot-col.is-open ul { display: flex; }

  /* Clients */
  .clients-types { padding: 24px 20px; }
  .clients-types-body { font-size: 16px; }

  /* FAQ */
  .faq-q { font-size: 15px; gap: 16px; }

  /* Stats bar : 2 colonnes sur mobile */
  .stats-grid--4,
  .stats-grid { grid-template-columns: 1fr 1fr; }
  .sb { border-right: none; border-bottom: 1px solid rgba(255,255,255,.12); padding: 14px 10px; }
  .sb:nth-last-child(-n+2) { border-bottom: none; }

  /* Marquee */
  .logo-chip { font-size: 16px; padding: 0 16px; }

  /* Testi track gap réduit */
  .testi-track { gap: 16px; }
  .t-card { flex: 0 0 100%; }

  /* CTA band */
  .cta-grid { gap: 24px; text-align: center; }
  .cta-band p { margin-left: auto; margin-right: auto; }
  .cta-actions { align-items: center; }

  /* Expertises */
  .exp-grid { grid-template-columns: 1fr; }
}

/* ── 480px : small phone ── */
@media (max-width: 480px) {
  :root { --section-y: 50px; --section-y-sm: 32px; }

  .hero-ctas { flex-direction: column; }
  .hero-ctas .btn { width: 100%; justify-content: center; }

  .cta-actions { width: 100%; }
  .cta-actions .btn { width: 100%; justify-content: center; }

  .t-quote { font-size: 14px; line-height: 1.6; }
  .sb .n { font-size: 32px; }
  .eng-stat .n { font-size: 34px; }

  .step-num { width: 70px; height: 70px; font-size: 22px; }

  .exp-grid { grid-template-columns: 1fr; }

  /* Single article */
  .single-content-wrap { padding-top: 40px; padding-bottom: 0; }
  .single-entry { font-size: 16px; }
  .single-share { flex-direction: column; align-items: center; gap: 10px; margin-top: 24px; padding-top: 20px; margin-bottom: 0; }
  .single-share-label { font-size: 11px; }
  .single-share-btn { height: 44px; padding: 0 20px; font-size: 14px; width: 100%; justify-content: center; }
  .single-related-wrap { padding: 24px 0 56px; border-top: 1px solid var(--line-soft); margin-top: 12px; }
  .single-related-title { font-size: 14px; margin-bottom: 20px; text-align: center; }
  .related-list { grid-template-columns: 1fr; gap: 16px; padding: 20px; }
  .related-list .archive-item { display: flex; flex-direction: column; width: 100%; -webkit-transform: translateZ(0); transform: translateZ(0); overflow: hidden; border-radius: 12px; }
  .related-list .archive-img { height: 200px; min-height: unset; width: 100%; flex-shrink: 0; }
  .related-list .archive-body { padding: 18px 20px; flex: 1; }
  .related-list .archive-item:last-child { margin-bottom: 0; }
}

/* ── 375px : iPhone SE minimum ── */
@media (max-width: 375px) {
  :root { --nav-h: 66px; }
  .nav-inner { height: 66px; gap: 12px; }
  .brand-logo, .brand .custom-logo-link img, .brand .custom-logo { height: 30px !important; max-height: 30px !important; max-width: 140px !important; }
  .h1 { font-size: 32px; }
  .hero-card { padding: 20px 16px; }
  .kpi .val { font-size: 22px; }
  h2.title { font-size: 28px; }
  .mh { padding: 16px 18px; }
  .enj-card { padding: 24px 20px; }
  .page-hero { padding: 50px 0; }
  .page-hero-title { font-size: 28px; }
  .exp-card { padding: 20px 16px; }
  .eng-stat .n { font-size: 30px; }
  .eng-stat .l { font-size: 13px; }
}

/* ── 320px : minimum absolu ── */
@media (max-width: 320px) {
  :root { --nav-h: 60px; }
  .wrap { padding: 0 14px 20px; }
  .single-related-title { margin-top: 20px; }
  .nav-inner { height: 60px; gap: 8px; }
  .brand-logo, .brand .custom-logo-link img, .brand .custom-logo { height: 26px !important; max-height: 26px !important; max-width: 110px !important; }
  .nav-cta { display: none; }
  .h1 { font-size: 26px; }
  h2.title { font-size: 22px; }
  .btn { font-size: 12px; padding: 0 14px; height: 42px; }
  .hero { padding: 48px 0 60px; }
  .process-box { padding: 18px 12px; }
.sb .n { font-size: 26px; }
  .eng-stat .n { font-size: 28px; }
  .enj-card { padding: 18px 14px; }
  .mh { padding: 12px 14px; }
  .page-hero { padding: 44px 0; }
  .page-hero-title { font-size: 24px; }
  .exp-card { padding: 18px 14px; }
  .entry-content { font-size: 15px; }
  .foot-grid { gap: 24px; }
}

/* ── Contact page ── */
@media (max-width: 1024px) {
  .contact-grid { grid-template-columns: 1fr 340px; gap: 40px; }
}

@media (max-width: 860px) {
  .contact-grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .contact-col-card {
    position: static;
    order: -1;
  }
  .contact-card { padding: 24px 20px; }
}

@media (max-width: 640px) {
  .contact-form-row--2col {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .contact-submit { width: 100%; }
}

/* ── Touch target minimum (44px) ── */
@media (hover: none) and (pointer: coarse) {
  .btn { min-height: 44px; }
  .nav-links a { padding: 12px 0; }
  .mobile-nav-list li a { padding: 16px 0; min-height: 44px; }
  .logo-chip { min-height: 44px; }
  .t-dot { width: 12px; height: 12px; }
  .t-dot.on { width: 28px; height: 12px; }
}

/* ── Print ── */
@media print {
  .nav, .hero::after, .clients, .cta-band, footer { display: none; }
  .hero { padding: 40px 0; }
  body { font-size: 12pt; color: #000; background: #fff; }
}
