/* LDD v48 - correctifs responsive multi-écrans Android / iPhone / tablette / PC / Mac */
:root { --safe-x: clamp(14px, 4vw, 32px); }
html, body { max-width: 100%; overflow-x: clip; }
img, svg, video, iframe { max-width: 100%; }
main { min-width: 0; }
.container,
.v42-container,
.ldd-conv-container { width: min(100% - (var(--safe-x) * 2), var(--max, 1180px)); }
.v42-container { width: min(100% - (var(--safe-x) * 2), var(--v42-max, 1180px)); }

/* Tablettes : garder de l'air sans casser les grilles */
@media (min-width: 721px) and (max-width: 1100px) {
  .grid-4,
  .v42-tool-grid,
  .ldd-need-grid,
  .v44-trustpilot-grid,
  body.identity-v43:not(.home-v42) .grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .grid-3,
  .need-grid,
  body.identity-v43:not(.home-v42) .grid-3,
  body.identity-v43:not(.home-v42) .need-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .v42-hero-grid { grid-template-columns: 1fr !important; gap: 18px !important; }
  .v42-hero-visual { min-height: 300px !important; }
  .v42-hero-visual img { left: 50% !important; right: auto !important; transform: translateX(-50%) !important; max-width: 660px !important; }
  body.identity-v43:not(.home-v42) .hero-grid,
  body.identity-v43:not(.home-v42) .tools-hero-grid { grid-template-columns: 1fr !important; }
}

/* Mobile global : menu non tronqué, textes contenus, sections respirantes */
@media (max-width: 720px) {
  body { -webkit-text-size-adjust: 100%; }
  body.has-sticky-cta { padding-bottom: 88px; }
  .site-header,
  .v42-header,
  .identity-header { position: static !important; top: auto !important; }
  .header-inner,
  .v42-header-inner,
  .identity-header-inner {
    min-height: 0 !important;
    height: auto !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    padding: 10px 0 12px !important;
  }
  .brand,
  .v42-brand,
  .identity-brand {
    justify-content: center !important;
    align-self: center !important;
    max-width: 100% !important;
    white-space: normal !important;
    text-align: center !important;
  }
  .brand-logo { height: 34px !important; max-width: 100% !important; }
  .v42-brand { font-size: clamp(1.28rem, 5vw, 1.55rem) !important; }
  .identity-brand-title { font-size: clamp(1.25rem, 5vw, 1.48rem) !important; }
  .identity-brand-sub { display: block !important; font-size: .72rem !important; }
  .nav-links,
  .v42-nav,
  .identity-nav {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 6px !important;
    overflow: visible !important;
    white-space: normal !important;
    padding: 0 !important;
    justify-content: stretch !important;
  }
  .nav-links a,
  .v42-nav a,
  .identity-nav a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 0 !important;
    min-height: 34px !important;
    padding: 7px 6px !important;
    border: 1px solid rgba(234, 216, 195, .84) !important;
    border-radius: 999px !important;
    background: rgba(255, 253, 247, .72) !important;
    color: #20312b !important;
    font-size: clamp(.72rem, 3.2vw, .82rem) !important;
    font-weight: 850 !important;
    line-height: 1.1 !important;
    text-align: center !important;
    text-overflow: ellipsis !important;
    overflow: hidden !important;
  }
  .nav-links a.active,
  .v42-nav a.active,
  .identity-nav a.active {
    background: #f9eadb !important;
    color: #c84a24 !important;
    border-color: #e5c7af !important;
  }
  .nav-links a.active::after,
  .v42-nav a.active::after,
  .identity-nav a.active::after { display: none !important; }
  .nav-links .nav-cta,
  .v42-nav-cta,
  .identity-nav-cta,
  .nav-cta {
    grid-column: 1 / -1 !important;
    min-height: 42px !important;
    color: #fff !important;
    background: linear-gradient(135deg,#c84a24,#a8371f) !important;
    border-color: transparent !important;
    box-shadow: 0 12px 24px rgba(200,74,36,.18) !important;
  }

  .hero,
  .v42-hero,
  body.identity-v43:not(.home-v42) .hero { padding: 24px 0 22px !important; }
  .hero-grid,
  .v42-hero-grid,
  .split-section,
  .grid-2,
  body.identity-v43:not(.home-v42) .hero-grid,
  body.identity-v43:not(.home-v42) .split-section,
  body.identity-v43:not(.home-v42) .grid-2 { grid-template-columns: 1fr !important; gap: 18px !important; }
  h1,
  body.identity-v43:not(.home-v42) h1 { font-size: clamp(2.05rem, 10vw, 3rem) !important; line-height: 1.08 !important; letter-spacing: -.04em !important; }
  .v42-h1 { font-size: clamp(2.05rem, 10.5vw, 2.9rem) !important; line-height: 1.08 !important; }
  h2,
  body.identity-v43:not(.home-v42) h2,
  .v42-title h2 { font-size: clamp(1.55rem, 7.2vw, 2.05rem) !important; }
  .lead,
  .v42-lead,
  body.identity-v43:not(.home-v42) .lead { font-size: 1rem !important; line-height: 1.58 !important; max-width: 100% !important; }
  .eyebrow,
  .card-kicker,
  .v42-pill { max-width: 100%; }
  .v42-pill { display: flex !important; padding: 9px 13px !important; font-size: .9rem !important; }

  .button-row,
  .hero-actions,
  .cta-actions,
  .v42-actions { display: grid !important; grid-template-columns: 1fr !important; gap: 10px !important; }
  .button,
  .v42-btn,
  body.identity-v43:not(.home-v42) .button,
  body.identity-v43:not(.home-v42) button { width: 100% !important; min-height: 48px !important; }

  .v42-proofs { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px 12px !important; margin-top: 18px !important; }
  .v42-proofs li { align-items: flex-start !important; font-size: .84rem !important; line-height: 1.25 !important; }
  .v42-hero-visual { min-height: auto !important; margin-top: 4px !important; overflow: hidden !important; border-radius: 22px !important; background: rgba(255,246,232,.82) !important; }
  .v42-hero-visual::before { display: none !important; }
  .v42-hero-visual img { position: relative !important; inset: auto !important; left: auto !important; right: auto !important; top: auto !important; transform: none !important; display: block !important; width: 100% !important; max-width: 100% !important; max-height: 310px !important; object-fit: contain !important; }

  .section,
  .v42-section,
  body.identity-v43:not(.home-v42) .section { padding: 32px 0 !important; }
  .section-title,
  .ldd-conv-title,
  body.identity-v43:not(.home-v42) .section-title { margin-bottom: 16px !important; text-align: left !important; }
  .grid-3,
  .grid-4,
  .need-grid,
  .category-grid,
  .v42-tool-grid,
  .v44-trustpilot-grid,
  .ldd-need-grid,
  .ldd-mini-trust,
  .ldd-objections,
  body.identity-v43:not(.home-v42) .grid-3,
  body.identity-v43:not(.home-v42) .grid-4,
  body.identity-v43:not(.home-v42) .need-grid,
  body.identity-v43:not(.home-v42) .category-grid { grid-template-columns: 1fr !important; }
  .card,
  .need-card,
  .tool-card,
  .category-card,
  .method-card,
  .verdict-card,
  .v42-tool-card,
  .v44-review-card,
  .ldd-need-card,
  .ldd-objection-card { padding: 17px !important; border-radius: 18px !important; min-height: auto !important; }
  .v42-tools-shell { padding: 16px 12px 18px !important; border-radius: 20px !important; }
  .v42-title { text-align: left !important; }
  .v42-title .icon { width: 34px !important; height: 34px !important; margin-right: 7px !important; }
  .v42-tool-head { align-items: flex-start !important; gap: 12px !important; }
  .v42-logo { flex-basis: 48px !important; width: 48px !important; height: 48px !important; font-size: 1.45rem !important; }
  .v42-logo.m { width: 56px !important; }

  .v42-trust-panel,
  .v42-quiz-panel,
  .v42-step-grid,
  .v42-footer-grid,
  .ldd-verdict-panel,
  .ldd-cta-band { grid-template-columns: 1fr !important; gap: 14px !important; }
  .v42-trust-panel,
  .v42-quiz-panel,
  .v44-trustpilot-panel,
  .ldd-verdict-panel,
  .ldd-cta-band { padding: 17px !important; border-radius: 20px !important; }
  .v42-trust-card,
  .v42-avatars { align-items: flex-start !important; }
  .v42-heart { width: 52px !important; height: 52px !important; flex-basis: 52px !important; font-size: 1.45rem !important; }
  .v42-signpost { display: none !important; }
  .v42-selection-card { max-width: 100% !important; }
  .v42-step-card { min-height: auto !important; }

  .comparison-wrap { overflow-x: auto !important; -webkit-overflow-scrolling: touch; }
  .ldd-matrix { overflow: hidden !important; }
  .ldd-matrix-row { grid-template-columns: 1fr !important; gap: 8px !important; padding: 15px !important; }
  .ldd-matrix-row:first-child { display: none !important; }
  .ldd-matrix-row a { width: 100% !important; }

  .footer,
  .v42-footer { padding: 26px 0 !important; }
  .footer-inner,
  .v42-footer-bottom { flex-direction: column !important; align-items: flex-start !important; }
  .v42-footer-grid { text-align: left !important; }

  .ldd-sticky-cta { width: calc(100% - 20px) !important; left: 10px !important; right: 10px !important; bottom: 10px !important; transform: none !important; display: grid !important; grid-template-columns: 1fr auto !important; border-radius: 18px !important; padding: 9px !important; }
  .ldd-sticky-cta span { white-space: normal !important; font-size: .82rem !important; line-height: 1.2 !important; }
  .ldd-sticky-cta a { min-height: 38px !important; padding: 8px 11px !important; font-size: .84rem !important; }
  .ldd-sticky-cta a:last-of-type { display: none !important; }
}

@media (max-width: 360px) {
  .nav-links,
  .v42-nav,
  .identity-nav { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .v42-proofs { grid-template-columns: 1fr !important; }
  h1,
  .v42-h1,
  body.identity-v43:not(.home-v42) h1 { font-size: clamp(1.95rem, 10.5vw, 2.45rem) !important; }
}

@media (min-width: 1200px) {
  .v42-hero-grid { grid-template-columns: minmax(0,1fr) minmax(460px,.9fr) !important; }
}
/* v48.1: calc compatible mobile gutters */
.container,
.v42-container,
.ldd-conv-container { width: min(calc(100% - 28px), var(--max, 1180px)) !important; margin-inline: auto !important; }
.v42-container { width: min(calc(100% - 28px), var(--v42-max, 1180px)) !important; }
@media (min-width: 721px) {
  .container,
  .v42-container,
  .ldd-conv-container { width: min(calc(100% - 48px), var(--max, 1180px)) !important; }
  .v42-container { width: min(calc(100% - 48px), var(--v42-max, 1180px)) !important; }
}
@media (min-width: 1180px) {
  .container,
  .v42-container,
  .ldd-conv-container { width: min(calc(100% - 64px), var(--max, 1180px)) !important; }
  .v42-container { width: min(calc(100% - 64px), var(--v42-max, 1180px)) !important; }
}
@media (max-width: 360px) {
  .container,
  .v42-container,
  .ldd-conv-container { width: min(calc(100% - 24px), var(--max, 1180px)) !important; }
  .v42-container { width: min(calc(100% - 24px), var(--v42-max, 1180px)) !important; }
}
@media (max-width: 360px) {
  .v42-footer, .v42-footer-grid { overflow: hidden !important; }
  .v42-footer-grid > *, .v42-footer-brand, .v42-social { min-width: 0 !important; max-width: 100% !important; width: 100% !important; }
  .v42-social { flex-wrap: wrap !important; }
}

/* v61 - overrides footer mobile après responsive-v48 */
@media (max-width: 980px) {
  footer.v42-footer.ldd-site-footer { padding: 0 !important; }
  footer.v42-footer.ldd-site-footer .v42-footer-grid { gap: 26px !important; text-align: left !important; }
  footer.v42-footer.ldd-site-footer .v42-footer-bottom { flex-direction: column !important; align-items: flex-start !important; }
}
@media (max-width: 760px) {
  footer.v42-footer.ldd-site-footer .v42-footer-grid { grid-template-columns: 1fr !important; }
  footer.v42-footer.ldd-site-footer .v42-footer-nav ul { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  footer.v42-footer.ldd-site-footer .v42-newsletter { width: 100% !important; }
}
@media (max-width: 460px) {
  footer.v42-footer.ldd-site-footer .v42-footer-nav ul,
  footer.v42-footer.ldd-site-footer .v42-newsletter form { grid-template-columns: 1fr !important; }
}
