/* Frametonic V34 — largeur canonique du contenu : 1300px.
   Les fonds de sections restent full-width ; leurs contenus sont alignés sur
   une même colonne de 1300px quand le viewport le permet. */
:root {
  --ft-content-width: 1300px;
  --ft-content-gutter: 32px;
}

/* Le thème ne doit jamais imposer sa limite 1296px aux composants Frametonic. */
body.ft-home-page .limit-width,
body.ft-global-chrome-active .limit-width,
body.ft-global-chrome-active .row.limit-width,
body.ft-global-chrome-active .row-parent.limit-width {
  max-width: none !important;
}

/* Header home : fond pleine largeur, contenu réellement 1300px. */
body.ft-home-page .site-header {
  width: 100% !important;
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.ft-home-page .site-header-shell {
  box-sizing: border-box !important;
  width: var(--ft-content-width) !important;
  max-width: calc(100vw - (var(--ft-content-gutter) * 2)) !important;
  margin-inline: auto !important;
  display: grid !important;
  grid-template-columns: 290px minmax(0,1fr) auto !important;
  align-items: center !important;
  gap: 32px !important;
}

/* Header global des pages internes / pages Uncode. */
.ft-global-header {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  display: block !important;
}
.ft-global-header-shell {
  box-sizing: border-box !important;
  width: var(--ft-content-width) !important;
  max-width: calc(100vw - (var(--ft-content-gutter) * 2)) !important;
  height: 100% !important;
  margin-inline: auto !important;
  display: grid !important;
  grid-template-columns: 290px minmax(0,1fr) auto !important;
  align-items: center !important;
  gap: 32px !important;
}

/* Home : tous les vrais conteneurs de contenu. */
body.ft-home-page .section-shell,
body.ft-home-page .inspiration-interlude,
body.ft-home-page .growth-interlude,
body.ft-home-page .rag-home-grid,
body.ft-home-page .detail-hero,
body.ft-home-page .detail-statement,
body.ft-home-page .detail-pillars,
body.ft-home-page .detail-process,
body.ft-home-page .detail-proof,
body.ft-home-page .reviews-section,
body.ft-home-page .positioning-section,
body.ft-home-page .tools.section-shell,
body.ft-home-page .services.section-shell {
  box-sizing: border-box !important;
  width: var(--ft-content-width) !important;
  min-width: 0 !important;
  max-width: calc(100vw - (var(--ft-content-gutter) * 2)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  left: auto !important;
  transform: none !important;
}

/* Les bandes full-width gardent leur fond, mais leurs cellules occupent 1300px. */
body.ft-home-page .proof-strip {
  box-sizing: border-box !important;
  padding-left: max(var(--ft-content-gutter), calc((100vw - var(--ft-content-width)) / 2)) !important;
  padding-right: max(var(--ft-content-gutter), calc((100vw - var(--ft-content-width)) / 2)) !important;
}

/* Pages subséquentes. */
.frametonic-subpage .ftsp-hero,
.frametonic-subpage .ft-real-grid,
.frametonic-subpage .ftsp-content-shell,
.frametonic-subpage .ftsp-section-shell {
  box-sizing: border-box !important;
  width: var(--ft-content-width) !important;
  min-width: 0 !important;
  max-width: calc(100vw - (var(--ft-content-gutter) * 2)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  left: auto !important;
  transform: none !important;
}
.frametonic-subpage .ftsp-benefits,
.frametonic-subpage .ft-real-gallery {
  box-sizing: border-box !important;
  padding-left: max(var(--ft-content-gutter), calc((100vw - var(--ft-content-width)) / 2)) !important;
  padding-right: max(var(--ft-content-gutter), calc((100vw - var(--ft-content-width)) / 2)) !important;
}

/* CTA / Gravity Forms : panneau 1300px réel. Pas de calcul relatif au wrapper Uncode. */
.ft-footer-contact-cta {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  left: auto !important;
  transform: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.ft-footer-contact-cta__panel {
  box-sizing: border-box !important;
  width: var(--ft-content-width) !important;
  min-width: 0 !important;
  max-width: calc(100vw - (var(--ft-content-gutter) * 2)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.ft-footer-contact-cta__inner {
  box-sizing: border-box !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
}

/* Footer : contenu aligné sur la même colonne. */
.ft-global-footer-shell,
body.ft-home-page .site-footer .section-shell {
  box-sizing: border-box !important;
  width: var(--ft-content-width) !important;
  min-width: 0 !important;
  max-width: calc(100vw - (var(--ft-content-gutter) * 2)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  left: auto !important;
  transform: none !important;
}

@media (max-width: 1100px) {
  body.ft-home-page .site-header-shell,
  .ft-global-header-shell {
    grid-template-columns: 250px minmax(0,1fr) auto !important;
    gap: 20px !important;
  }
}

@media (max-width: 800px) {
  :root { --ft-content-gutter: 18px; }
  body.ft-home-page .site-header-shell,
  .ft-global-header-shell {
    grid-template-columns: 1fr auto !important;
    gap: 16px !important;
  }
  body.ft-home-page .section-shell,
  body.ft-home-page .inspiration-interlude,
  body.ft-home-page .growth-interlude,
  body.ft-home-page .rag-home-grid,
  body.ft-home-page .detail-hero,
  body.ft-home-page .detail-statement,
  body.ft-home-page .detail-pillars,
  body.ft-home-page .detail-process,
  body.ft-home-page .detail-proof,
  body.ft-home-page .reviews-section,
  body.ft-home-page .positioning-section,
  .frametonic-subpage .ftsp-hero,
  .frametonic-subpage .ft-real-grid,
  .frametonic-subpage .ftsp-content-shell,
  .frametonic-subpage .ftsp-section-shell,
  .ft-footer-contact-cta__panel,
  .ft-global-footer-shell,
  body.ft-home-page .site-footer .section-shell {
    max-width: calc(100vw - 36px) !important;
  }
}
