/*
  ALTORIS V112 — optimisation iPhone / mobile compact
  Objectif : conserver l'identité desktop, réduire la longueur des pages,
  garder les illustrations en regard du texte quand l'espace le permet,
  et densifier les cartes sans rendre les zones tactiles trop petites.
*/

@media (max-width: 768px) {
  :root { --v112-side: 12px; }
  html { -webkit-text-size-adjust: 100%; }
  body { overflow-x: hidden !important; font-size: 14px !important; line-height: 1.5 !important; }
  .container { width: calc(100% - 24px) !important; max-width: none !important; }

  /* Barre haute et navigation : plus compactes sur iPhone */
  .topbar { min-height: 30px !important; font-size: .68rem !important; }
  .topbar-inner {
    min-height: 30px !important;
    padding: 4px 0 !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
  }
  .topbar-inner > a { display: none !important; }
  .topbar-actions { gap: 6px !important; flex-wrap: nowrap !important; white-space: nowrap !important; }
  .dot { opacity: .35 !important; }

  .accessible-nav-wrap, .nav-wrap {
    min-height: 66px !important;
    height: 66px !important;
    padding: 4px 10px !important;
    flex-wrap: nowrap !important;
  }
  .accessible-brand, .brand {
    height: 56px !important;
    min-height: 56px !important;
    width: auto !important;
    max-width: 155px !important;
    padding: 0 !important;
  }
  .accessible-brand img, .brand img {
    height: 52px !important;
    max-height: 52px !important;
    max-width: 150px !important;
  }
  .accessible-menu-toggle, .menu-toggle {
    min-height: 42px !important;
    min-width: 88px !important;
    padding: 0 11px !important;
    font-size: .82rem !important;
    border-radius: 10px !important;
  }
  .menu-icon { font-size: 1.05rem !important; }
  .accessible-nav {
    display: none !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    top: 66px !important;
    width: 100% !important;
    padding: 8px 12px 14px !important;
    background: rgba(255,253,248,.98) !important;
    box-shadow: 0 18px 35px rgba(23,53,34,.12) !important;
  }
  .accessible-header.menu-open .accessible-nav { display: flex !important; }
  .accessible-nav > a, .nav-group-toggle {
    min-height: 46px !important;
    font-size: .88rem !important;
    padding: 0 14px !important;
  }

  /* Rythme général : moins de vide vertical */
  .section, .v33-section, .legal-page { padding-top: 44px !important; padding-bottom: 44px !important; }
  .section-head, .v47-head, .v61-head, .v48-head, .v51-head { margin-bottom: 24px !important; }
  .v33-eyebrow, .eyebrow { font-size: .58rem !important; letter-spacing: .13em !important; }
  section { scroll-margin-top: 78px !important; }

  /* Boutons : tactiles mais moins hauts */
  .btn, .v33-btn, .v91-primary, .v91-secondary, .v61-final-btn, .v51-main-btn {
    min-height: 44px !important;
  }

  /* ========== ÉCRAN D'OUVERTURE / ACCUEIL ========== */
  .v77-intro-inner { width: calc(100% - 24px) !important; min-height: 100svh !important; }
  .v77-logo-wrap img { width: min(390px, 80vw) !important; max-height: 250px !important; }
  .v77-choice { width: 100% !important; }
  .v77-choice h1 { font-size: clamp(2.25rem, 10vw, 3.2rem) !important; }
  .v77-sub { margin: 8px 0 18px !important; }
  .v77-choice-grid { grid-template-columns: 1fr 1fr !important; gap: 9px !important; }
  .v77-card {
    min-height: 158px !important;
    padding: 15px 12px !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: auto 1fr auto !important;
    gap: 7px !important;
    text-align: center !important;
    border-radius: 20px !important;
  }
  .v77-card-icon { width: 48px !important; height: 48px !important; margin: 0 auto !important; border-radius: 15px !important; }
  .v77-card-icon .v82-choice-icon { width: 42px !important; height: 42px !important; }
  .v77-card small { margin-bottom: 4px !important; font-size: .48rem !important; }
  .v77-card strong { font-size: 1.08rem !important; line-height: 1 !important; }
  .v77-arrow { font-size: 1rem !important; }
  .v77-skip { margin-top: 12px !important; }

  .alt-entry { padding: 48px 12px !important; min-height: auto !important; }
  .alt-entry-logo img { width: min(170px, 43vw) !important; }
  .alt-entry-line { margin: 10px auto !important; }
  .alt-entry h1 { font-size: 2.6rem !important; margin: 8px 0 !important; }
  .alt-entry > .alt-entry-inner > p { margin-bottom: 18px !important; font-size: .82rem !important; }
  .alt-entry-grid { grid-template-columns: 1fr 1fr !important; gap: 8px !important; }
  .alt-choice { min-height: 205px !important; padding: 16px 13px !important; border-radius: 18px !important; }
  .alt-choice strong { font-size: 1.45rem !important; margin: 7px 0 !important; }
  .alt-choice p { font-size: .68rem !important; line-height: 1.45 !important; }
  .alt-choice span { font-size: .62rem !important; margin-top: 12px !important; }

  /* ========== CRÉATION : hero image à droite sur iPhone ========== */
  .v91-creation-hero { padding: 38px 10px 34px !important; min-height: 430px !important; }
  .v91-hero-inner {
    display: grid !important;
    grid-template-columns: minmax(0, 1.28fr) minmax(116px, .72fr) !important;
    gap: 0 !important;
    align-items: center !important;
    max-width: 520px !important;
  }
  .v91-hero-copy { text-align: left !important; position: relative !important; z-index: 4 !important; padding-left: 3px !important; }
  .v91-kicker { margin-bottom: 8px !important; font-size: .48rem !important; line-height: 1.35 !important; letter-spacing: .12em !important; }
  .v91-hero-copy h1 {
    font-size: clamp(2.5rem, 11.2vw, 3.45rem) !important;
    line-height: .84 !important;
    letter-spacing: -.03em !important;
  }
  .v91-hero-copy p { margin: 14px 0 0 !important; font-size: .72rem !important; line-height: 1.52 !important; max-width: 245px !important; }
  .v91-hero-actions { justify-content: flex-start !important; gap: 7px !important; margin-top: 16px !important; flex-direction: column !important; align-items: flex-start !important; }
  .v91-primary, .v91-secondary {
    width: auto !important;
    min-height: 38px !important;
    padding: 0 13px !important;
    font-size: .58rem !important;
    white-space: nowrap !important;
  }
  .v91-secondary { min-height: 32px !important; padding: 0 !important; border: 0 !important; background: transparent !important; border-radius: 0 !important; text-decoration: underline !important; text-underline-offset: 4px !important; }
  .v91-hero-points { display: none !important; }
  .v104-creation-visual { min-width: 0 !important; margin: 0 -50px 0 0 !important; justify-content: center !important; z-index: 2 !important; }
  .v104-creation-visual img {
    width: 168% !important;
    max-width: none !important;
    transform: translateX(2%) !important;
    mix-blend-mode: multiply !important;
    -webkit-mask-image: radial-gradient(ellipse 78% 82% at 55% 50%,#000 58%,rgba(0,0,0,.9) 73%,transparent 100%) !important;
    mask-image: radial-gradient(ellipse 78% 82% at 55% 50%,#000 58%,rgba(0,0,0,.9) 73%,transparent 100%) !important;
  }

  /* Création : sections plus denses */
  .v47-idea, .v47-create, .v47-before, .v47-continuity { padding: 46px 12px !important; }
  .v47-head h2, .v47-before h2, .v47-continuity h2 { font-size: 2.15rem !important; line-height: .98 !important; }
  .v47-head { max-width: 350px !important; }
  .v47-steps { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 8px !important; }
  .v47-steps article { max-width: none !important; min-height: 116px !important; padding: 13px !important; border-radius: 16px !important; }
  .v47-steps i { margin: 7px 0 !important; font-size: 1.05rem !important; }
  .v47-steps b { font-size: .82rem !important; }
  .v47-steps small { font-size: .62rem !important; line-height: 1.35 !important; }
  .v47-arrow { display: none !important; }

  .v75-project { padding: 46px 12px !important; gap: 20px !important; }
  .v75-project-copy h2 { font-size: 2.25rem !important; margin: 8px 0 12px !important; }
  .v75-project-copy p { font-size: .78rem !important; line-height: 1.55 !important; }
  .v75-mini-note { margin-top: 12px !important; font-size: .58rem !important; }
  .v75-wizard-wrap { padding: 11px !important; border-radius: 18px !important; }
  .v75-wizard-head { padding: 14px !important; border-radius: 15px !important; }
  .v75-wizard-head h3 { font-size: 1.25rem !important; margin: 4px 0 !important; }
  .v75-step-num b { font-size: 1.65rem !important; }
  .v75-grid-2 { grid-template-columns: 1fr 1fr !important; gap: 7px !important; }
  .v75-options button {
    min-height: 72px !important;
    padding: 10px !important;
    gap: 6px !important;
    border-radius: 13px !important;
    font-size: .98rem !important;
  }
  .v75-options button b { font-size: .61rem !important; line-height: 1.25 !important; }
  .v75-options button.v75-wide { grid-column: 1 / -1 !important; min-height: 48px !important; }
  .v75-contact-grid { grid-template-columns: 1fr 1fr !important; gap: 7px !important; }
  .v75-contact-grid label.wide { grid-column: 1 / -1 !important; }

  .v47-service-grid { grid-template-columns: 1fr 1fr !important; gap: 8px !important; }
  .v47-service-grid article { padding: 10px !important; border-radius: 15px !important; }
  .v47-service-visual { height: 76px !important; margin-bottom: 9px !important; border-radius: 11px !important; }
  .v47-service-grid b { font-size: 1.02rem !important; line-height: 1.05 !important; }
  .v47-service-grid small { font-size: .61rem !important; line-height: 1.35 !important; margin-top: 4px !important; }
  .v86-card-icon { max-height: 62px !important; max-width: 90% !important; }

  .v47-before-grid {
    grid-template-columns: minmax(0, 1.12fr) minmax(135px, .88fr) !important;
    gap: 10px !important;
    align-items: center !important;
  }
  .v47-before h2 { font-size: 1.85rem !important; }
  .v47-before p { font-size: .67rem !important; line-height: 1.45 !important; }
  .v47-before .v47-plan-card { height: auto !important; min-height: 0 !important; }
  .v47-before .v95-conception-image { width: 150% !important; max-width: none !important; margin-left: -28% !important; }

  /* ========== ENTRETIEN : hero image à droite ========== */
  .v61-hero { padding: 38px 10px 34px !important; min-height: 430px !important; }
  .v61-hero .v61-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1.28fr) minmax(116px, .72fr) !important;
    gap: 0 !important;
    align-items: center !important;
    max-width: 520px !important;
  }
  .v61-hero .v61-copy { text-align: left !important; z-index: 4 !important; }
  .v61-copy h1 { font-size: clamp(2.45rem, 10.8vw, 3.35rem) !important; line-height: .86 !important; }
  .v61-copy > p { font-size: .72rem !important; line-height: 1.52 !important; margin: 13px 0 !important; max-width: 245px !important; }
  .v61-hero .v33-hero-actions { display: flex !important; flex-direction: column !important; align-items: flex-start !important; gap: 6px !important; margin-top: 13px !important; }
  .v61-hero .v33-btn { width: auto !important; min-height: 37px !important; padding: 0 12px !important; font-size: .58rem !important; border-radius: 999px !important; }
  .v61-hero .v33-btn.secondary { min-height: 30px !important; padding: 0 !important; border: 0 !important; background: transparent !important; text-decoration: underline !important; text-underline-offset: 4px !important; }
  .v61-trust { gap: 4px !important; margin-top: 10px !important; }
  .v61-trust span { padding: 4px 6px !important; font-size: .47rem !important; }
  .v61-hero .v105-entretien-visual { margin: 0 -52px 0 0 !important; justify-content: center !important; z-index: 2 !important; }
  .v61-hero .v105-entretien-visual img {
    width: 168% !important;
    max-width: none !important;
    transform: translateX(2%) !important;
    -webkit-mask-image: radial-gradient(ellipse 82% 86% at 55% 50%,#000 58%,rgba(0,0,0,.9) 74%,transparent 100%) !important;
    mask-image: radial-gradient(ellipse 82% 86% at 55% 50%,#000 58%,rgba(0,0,0,.9) 74%,transparent 100%) !important;
  }

  .v61-formules, .v61-services, .v61-season, .v61-tax { padding: 46px 12px !important; }
  .v61-head h2, .v61-season h2, .v61-tax h2, .v61-final h2 { font-size: 2.18rem !important; line-height: .98 !important; }
  .v61-choice { grid-template-columns: 1fr 1fr !important; gap: 8px !important; }
  .v61-choice article { padding: 14px 12px !important; border-radius: 17px !important; }
  .v61-choice .num { font-size: 2.7rem !important; right: 10px !important; top: 8px !important; }
  .v61-choice small { font-size: .48rem !important; }
  .v61-choice h3 { font-size: 1.28rem !important; margin: 6px 0 !important; }
  .v61-choice p { font-size: .65rem !important; line-height: 1.42 !important; }
  .pills { margin: 9px 0 !important; gap: 3px !important; }
  .pills span { padding: 4px 6px !important; font-size: .47rem !important; }
  .v61-choice a { font-size: .55rem !important; line-height: 1.3 !important; }

  .v61-service-grid { grid-template-columns: 1fr 1fr !important; gap: 7px !important; }
  .v61-service-grid article { padding: 13px !important; min-height: 136px !important; border-radius: 15px !important; }
  .v61-service-grid article > i.v83-service-picture { width: 44px !important; height: 44px !important; }
  .v61-service-grid article > i.v83-service-picture img { width: 42px !important; height: 42px !important; }
  .v61-service-grid h3 { font-size: 1.13rem !important; margin: 5px 0 3px !important; }
  .v61-service-grid p { font-size: .61rem !important; line-height: 1.38 !important; }

  .v61-season-grid { grid-template-columns: 1fr !important; gap: 20px !important; }
  .v61-season p { font-size: .75rem !important; }
  .v61-season .v33-btn { width: auto !important; font-size: .6rem !important; padding: 0 12px !important; }
  .v61-calendar { grid-template-columns: 1fr 1fr !important; gap: 7px !important; }
  .v61-calendar article { padding: 11px !important; border-radius: 13px !important; }
  .v61-calendar span { font-size: .45rem !important; }
  .v61-calendar b { font-size: 1.02rem !important; margin: 3px 0 !important; }
  .v61-calendar small { font-size: .57rem !important; }

  .v61-tax-card { grid-template-columns: .42fr 1fr !important; border-radius: 20px !important; }
  .v61-tax-big { padding: 15px 8px !important; }
  .v61-tax-big > span { font-size: .45rem !important; }
  .v61-tax-big strong { font-size: 4.2rem !important; }
  .v61-tax-big sup { font-size: 1.25rem !important; }
  .v61-tax-big small { font-size: .52rem !important; text-align: center !important; }
  .v61-tax-copy { padding: 16px 13px !important; }
  .v61-tax-copy h2 { font-size: 1.62rem !important; }
  .v61-tax-copy p { font-size: .64rem !important; line-height: 1.42 !important; margin: 8px 0 !important; }
  .v61-tax-copy .v33-btn { width: auto !important; min-height: 36px !important; padding: 0 10px !important; font-size: .52rem !important; }
  .v61-final { padding: 48px 12px !important; }
  .v61-final p { font-size: .75rem !important; margin: 10px auto 16px !important; }

  /* ========== PRO & COLLECTIVITÉS ========== */
  .v48-hero { padding: 38px 10px 34px !important; min-height: 430px !important; }
  .v48-hero-grid {
    grid-template-columns: minmax(0, 1.28fr) minmax(116px, .72fr) !important;
    gap: 0 !important;
    align-items: center !important;
  }
  .v48-hero-grid > div:first-child { padding-right: 0 !important; max-width: none !important; z-index: 4 !important; }
  .v48-hero h1 { font-size: clamp(2.45rem, 10.6vw, 3.35rem) !important; line-height: .86 !important; }
  .v48-hero p { font-size: .7rem !important; line-height: 1.5 !important; margin: 12px 0 !important; max-width: 240px !important; }
  .v48-hero .v33-hero-actions { display: flex !important; flex-direction: column !important; align-items: flex-start !important; gap: 6px !important; }
  .v48-hero .v33-btn { width: auto !important; min-height: 37px !important; padding: 0 11px !important; font-size: .56rem !important; border-radius: 999px !important; }
  .v48-hero .v33-btn.secondary { min-height: 30px !important; border: 0 !important; background: transparent !important; padding: 0 !important; text-decoration: underline !important; text-underline-offset: 4px !important; }
  .v100-pro-visual { min-height: 0 !important; margin: 0 -58px 0 0 !important; overflow: visible !important; }
  .v100-pro-visual img {
    width: 178% !important;
    height: auto !important;
    max-width: none !important;
    transform: translateX(2%) !important;
    -webkit-mask-image: radial-gradient(ellipse 85% 88% at 55% 50%,#000 60%,rgba(0,0,0,.9) 74%,transparent 100%) !important;
    mask-image: radial-gradient(ellipse 85% 88% at 55% 50%,#000 60%,rgba(0,0,0,.9) 74%,transparent 100%) !important;
  }
  .v48-audiences, .v48-solutions, .v48-method, .v48-cta, .v48-organise { padding: 46px 12px !important; }
  .v48-head h2, .v48-organise h2, .v48-cta h2 { font-size: 2.15rem !important; }
  .v48-audience-grid, .v48-method-grid { grid-template-columns: 1fr 1fr !important; gap: 7px !important; }
  .v48-audience-grid article { padding: 13px !important; border-radius: 15px !important; min-height: 126px !important; }
  .v48-audience-grid i { font-size: 1.15rem !important; }
  .v48-audience-grid b { font-size: 1rem !important; margin: 7px 0 3px !important; }
  .v48-audience-grid small { font-size: .58rem !important; line-height: 1.35 !important; }
  .v48-dual { grid-template-columns: 1fr 1fr !important; gap: 7px !important; }
  .v48-dual article { padding: 15px 12px !important; min-height: 255px !important; border-radius: 18px !important; }
  .v48-dual h3 { font-size: 1.45rem !important; margin: 8px 0 !important; }
  .v48-dual p { font-size: .62rem !important; line-height: 1.42 !important; }
  .v48-pills { margin-top: 12px !important; gap: 3px !important; }
  .v48-pills b { padding: 4px 5px !important; font-size: .46rem !important; }
  .v48-organise-grid { gap: 20px !important; }
  .v48-organise p { font-size: .72rem !important; }
  .v48-mini-flow { margin-top: 13px !important; gap: 4px !important; }
  .v48-mini-flow span { padding: 6px !important; font-size: .58rem !important; }
  .v48-dashboard { border-radius: 18px !important; padding: 9px !important; }
  .v48-db-top { padding: 12px !important; }
  .v48-db-row { padding: 9px 4px !important; }
  .v48-method-grid article { padding: 12px 4px !important; }
  .v48-method-grid b { font-size: 1rem !important; margin: 7px 0 4px !important; }
  .v48-method-grid small { font-size: .58rem !important; }

  /* ========== CRÉDIT D'IMPÔT ========== */
  .v51-hero { padding: 38px 10px 34px !important; }
  .v51-hero-grid { grid-template-columns: minmax(0, 1.15fr) minmax(135px, .85fr) !important; gap: 9px !important; align-items: center !important; }
  .v51-hero h1 { font-size: clamp(2.25rem, 9.6vw, 3.1rem) !important; line-height: .9 !important; }
  .v51-hero p { font-size: .67rem !important; line-height: 1.45 !important; margin: 10px 0 !important; }
  .v51-hero .v33-hero-actions { display: flex !important; flex-direction: column !important; align-items: flex-start !important; gap: 6px !important; }
  .v51-hero .v33-btn { width: auto !important; min-height: 36px !important; padding: 0 11px !important; font-size: .54rem !important; }
  .v51-saving-card { padding: 15px 9px !important; border-radius: 18px !important; }
  .v51-small { font-size: .45rem !important; }
  .v51-price { font-size: 2rem !important; }
  .v51-price.old { margin-top: 7px !important; }
  .v51-divider { gap: 4px !important; }
  .v51-divider i { width: 20px !important; }
  .v51-saving-card > small { font-size: .55rem !important; }
  .v51-badge { margin-top: 8px !important; padding: 5px 7px !important; font-size: .5rem !important; }

  .v51-demo, .v51-how, .v51-instant, .v51-eligible, .v51-cta { padding: 46px 12px !important; }
  .v51-head h2, .v51-instant h2, .v51-cta h2 { font-size: 2.15rem !important; }
  .v51-slider-wrap { padding: 18px 12px !important; border-radius: 18px !important; }
  .v51-slider-copy strong { font-size: 1.45rem !important; }
  .v51-slider-wrap input[type=range] { margin: 16px 0 !important; }
  .v51-calc { grid-template-columns: 1fr auto 1fr auto 1fr !important; gap: 4px !important; }
  .v51-calc > span { display: block !important; font-size: .7rem !important; }
  .v51-calc div { padding: 10px 5px !important; border-radius: 12px !important; }
  .v51-calc small { font-size: .47rem !important; }
  .v51-calc b { font-size: 1rem !important; }
  .v51-note { font-size: .59rem !important; }
  .v51-steps { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 8px !important; }
  .v51-steps article { max-width: none !important; min-height: 140px !important; padding: 13px !important; border-radius: 15px !important; }
  .v51-steps i { margin: 7px 0 !important; font-size: 1.05rem !important; }
  .v51-steps b { font-size: 1rem !important; }
  .v51-steps small { font-size: .59rem !important; }
  .v51-arrow { display: none !important; }
  .v51-instant-grid { gap: 20px !important; }
  .v51-instant p { font-size: .72rem !important; }
  .v51-instant-flow { margin-top: 12px !important; gap: 4px !important; }
  .v51-instant-flow span { padding: 6px 7px !important; font-size: .58rem !important; }
  .v51-phone { padding: 9px !important; border-radius: 18px !important; }
  .v51-phone-top { padding: 12px !important; }
  .v51-phone-row { padding: 10px 3px !important; font-size: .72rem !important; }
  .v51-phone-total { padding: 12px 3px !important; }
  .v51-phone-total strong { font-size: 1.5rem !important; }
  .v51-eligible-grid { grid-template-columns: 1fr 1fr !important; gap: 7px !important; }
  .v51-eligible-grid article { padding: 13px 8px !important; border-radius: 14px !important; }
  .v51-eligible-grid i { font-size: 1.1rem !important; }
  .v51-eligible-grid b { font-size: .74rem !important; }

  /* ========== RÉALISATIONS : deux cartes par ligne ========== */
  .real-hero { padding: 42px 0 28px !important; }
  .real-hero h1, .real-gallery h2, .ba-section h2 { font-size: 2.55rem !important; }
  .real-hero p { font-size: .76rem !important; }
  .ba-section, .plantation-ba-section { padding-bottom: 44px !important; }
  .ba-wrap { height: 300px !important; }
  .real-gallery { padding: 44px 0 !important; }
  .real-grid { grid-template-columns: 1fr 1fr !important; gap: 8px !important; }
  .real-card { height: 190px !important; border-radius: 14px 4px !important; }
  .real-overlay { padding: 40px 10px 10px !important; }
  .real-overlay strong { font-size: 1.02rem !important; line-height: 1.05 !important; }
  .real-overlay small, .real-overlay em { font-size: .55rem !important; }
  .fav-btn { width: 34px !important; height: 34px !important; right: 8px !important; top: 8px !important; }

  /* Galerie générique : deux colonnes également */
  .all-gallery { grid-template-columns: 1fr 1fr !important; gap: 7px !important; }
  .gallery-item, .gallery-item:nth-child(7n+1), .gallery-item:nth-child(7n+5) { aspect-ratio: 1 / 1 !important; min-height: 0 !important; grid-row: auto !important; }

  /* ========== FORMULAIRE DEVIS ========== */
  .quote-form { padding: 16px !important; border-radius: 15px !important; }
  .quote-form .form-grid, .form-row { grid-template-columns: 1fr 1fr !important; gap: 9px !important; }
  .quote-form .full, .form-row .full { grid-column: 1 / -1 !important; }
  .quote-form label { font-size: .62rem !important; margin-bottom: 9px !important; }
  .quote-form input, .quote-form select, .quote-form textarea { padding: 10px !important; font-size: .82rem !important; }

  /* ========== FOOTER : 2 colonnes au lieu d'une longue pile ========== */
  .footer { padding: 38px 0 16px !important; }
  .footer-grid { grid-template-columns: 1fr 1fr !important; gap: 18px 16px !important; }
  .footer-brand { grid-column: 1 / -1 !important; display: flex !important; align-items: center !important; gap: 12px !important; }
  .footer-brand img { width: 145px !important; height: 72px !important; }
  .footer h4 { margin: 0 0 7px !important; font-size: .55rem !important; }
  .footer a, .footer p { font-size: .68rem !important; line-height: 1.55 !important; }
  .footer-bottom { margin-top: 22px !important; padding-top: 12px !important; font-size: .56rem !important; }
  .legal-links { margin-top: 10px !important; gap: 8px !important; font-size: .62rem !important; }
  .floating-call { width: 48px !important; height: 48px !important; right: max(12px, env(safe-area-inset-right)) !important; bottom: max(12px, env(safe-area-inset-bottom)) !important; }
}

/* Petits iPhone : conserver la logique côte à côte, mais libérer quelques pixels. */
@media (max-width: 380px) {
  .v91-hero-inner, .v61-hero .v61-grid, .v48-hero-grid { grid-template-columns: minmax(0, 1.34fr) minmax(102px, .66fr) !important; }
  .v91-hero-copy h1, .v61-copy h1, .v48-hero h1 { font-size: 2.42rem !important; }
  .v91-hero-copy p, .v61-copy > p, .v48-hero p { max-width: 220px !important; font-size: .68rem !important; }
  .v104-creation-visual img, .v61-hero .v105-entretien-visual img { width: 182% !important; }
  .v100-pro-visual img { width: 192% !important; }
  .v47-before-grid { grid-template-columns: minmax(0, 1.18fr) minmax(112px, .82fr) !important; }
  .v47-before h2 { font-size: 1.7rem !important; }
  .v47-before p { font-size: .62rem !important; }
  .v61-choice h3 { font-size: 1.16rem !important; }
  .v48-dual h3 { font-size: 1.32rem !important; }
}

@media (max-width: 340px) {
  /* À cette largeur extrême seulement, on évite l'écrasement du contenu. */
  .v91-hero-inner, .v61-hero .v61-grid, .v48-hero-grid, .v51-hero-grid { grid-template-columns: 1fr !important; }
  .v104-creation-visual, .v61-hero .v105-entretien-visual, .v100-pro-visual { display: none !important; }
  .v91-hero-copy p, .v61-copy > p, .v48-hero p { max-width: none !important; }
}

/* ============================================================
   V113 — lisibilité des 3 grands heroes sur iPhone
   Conserve l'image à droite mais empêche qu'elle passe sous le texte.
   ============================================================ */
@media (max-width: 768px) and (min-width: 341px) {
  /* davantage d'espace réservé au texte ; l'illustration reste présente à droite */
  .v91-hero-inner,
  .v61-hero .v61-grid,
  .v48-hero-grid {
    grid-template-columns: minmax(0, 1.42fr) minmax(96px, .58fr) !important;
  }

  .v91-hero-copy,
  .v61-hero .v61-copy,
  .v48-hero-grid > div:first-child {
    position: relative !important;
    z-index: 5 !important;
  }

  .v91-hero-copy p,
  .v61-copy > p,
  .v48-hero p {
    max-width: 270px !important;
  }

  /* L'illustration se fond seulement sur son bord gauche :
     aucune zone chargée ne vient derrière les titres ou paragraphes. */
  .v104-creation-visual {
    margin: 0 -66px 0 0 !important;
  }
  .v104-creation-visual img {
    width: 190% !important;
    transform: translateX(10%) !important;
    -webkit-mask-image: linear-gradient(to right,
      transparent 0%,
      rgba(0,0,0,.02) 20%,
      rgba(0,0,0,.22) 34%,
      rgba(0,0,0,.72) 50%,
      #000 64%,
      #000 100%) !important;
    mask-image: linear-gradient(to right,
      transparent 0%,
      rgba(0,0,0,.02) 20%,
      rgba(0,0,0,.22) 34%,
      rgba(0,0,0,.72) 50%,
      #000 64%,
      #000 100%) !important;
  }

  .v61-hero .v105-entretien-visual {
    margin: 0 -68px 0 0 !important;
  }
  .v61-hero .v105-entretien-visual img {
    width: 192% !important;
    transform: translateX(10%) !important;
    -webkit-mask-image: linear-gradient(to right,
      transparent 0%,
      rgba(0,0,0,.02) 20%,
      rgba(0,0,0,.22) 34%,
      rgba(0,0,0,.72) 50%,
      #000 64%,
      #000 100%) !important;
    mask-image: linear-gradient(to right,
      transparent 0%,
      rgba(0,0,0,.02) 20%,
      rgba(0,0,0,.22) 34%,
      rgba(0,0,0,.72) 50%,
      #000 64%,
      #000 100%) !important;
  }

  .v100-pro-visual {
    margin: 0 -72px 0 0 !important;
  }
  .v100-pro-visual img {
    width: 205% !important;
    transform: translateX(11%) !important;
    -webkit-mask-image: linear-gradient(to right,
      transparent 0%,
      rgba(0,0,0,.02) 20%,
      rgba(0,0,0,.20) 34%,
      rgba(0,0,0,.70) 50%,
      #000 64%,
      #000 100%) !important;
    mask-image: linear-gradient(to right,
      transparent 0%,
      rgba(0,0,0,.02) 20%,
      rgba(0,0,0,.20) 34%,
      rgba(0,0,0,.70) 50%,
      #000 64%,
      #000 100%) !important;
  }
}

@media (max-width: 380px) and (min-width: 341px) {
  .v91-hero-inner,
  .v61-hero .v61-grid,
  .v48-hero-grid {
    grid-template-columns: minmax(0, 1.46fr) minmax(88px, .54fr) !important;
  }
  .v91-hero-copy p,
  .v61-copy > p,
  .v48-hero p { max-width: 250px !important; }
  .v104-creation-visual img,
  .v61-hero .v105-entretien-visual img { width: 205% !important; }
  .v100-pro-visual img { width: 218% !important; }
}

/* ============================================================
   V114 — Création / bloc « La conception change tout »
   iPhone : l'illustration reste à droite sans passer sous le texte.
   ============================================================ */
@media (max-width: 768px) and (min-width: 341px) {
  .v47-before-grid {
    grid-template-columns: minmax(0, 1.30fr) minmax(112px, .70fr) !important;
    gap: 6px !important;
    align-items: center !important;
  }

  .v47-before-grid > div:first-child {
    position: relative !important;
    z-index: 4 !important;
    min-width: 0 !important;
  }

  .v47-before h2,
  .v47-before p {
    position: relative !important;
    z-index: 4 !important;
  }

  .v47-before p {
    max-width: 100% !important;
    padding-right: 8px !important;
  }

  .v47-before .v47-plan-card {
    position: relative !important;
    z-index: 1 !important;
    margin-left: 8px !important;
    overflow: visible !important;
  }

  .v47-before .v95-conception-image {
    width: 145% !important;
    max-width: none !important;
    margin-left: 0 !important;
    transform: translateX(5%) !important;
  }
}

@media (max-width: 380px) and (min-width: 341px) {
  .v47-before-grid {
    grid-template-columns: minmax(0, 1.34fr) minmax(104px, .66fr) !important;
  }
  .v47-before .v95-conception-image {
    width: 148% !important;
    transform: translateX(7%) !important;
  }
}
