/* DePessar V4 DENSE WARM
   Feuille de surcharge à charger après assets/style.css
   Objectif : réduire les grands espaces, élargir les contenus et rythmer les pages.
*/

:root {
  --max-width: 1380px;
  --page-padding: clamp(22px, 4vw, 58px);
  --space-section: clamp(42px, 4.5vw, 68px);
  --warm-bg: #F4F0E8;
  --warm-bg-soft: #F8F5EF;
  --warm-card: #FAF7F1;
  --navy: #172637;
  --gold: #C8A35B;
  --line: #DED6C9;
}

html,
body {
  background: var(--warm-bg);
}

/* Conteneurs plus larges */
.section > *,
.hero > *,
.page-hero > *,
.statement > *,
.site-footer > * {
  width: min(100%, var(--max-width));
  margin-inline: auto;
}

/* En-têtes de page plus compacts */
.hero,
.page-hero {
  padding: clamp(52px, 6vw, 82px) var(--page-padding)
           clamp(46px, 5vw, 68px);
}

.hero::after,
.page-hero::after {
  content: "";
  display: block;
  width: 74px;
  height: 3px;
  margin-top: 30px;
  background: var(--gold);
  border-radius: 999px;
}

/* Sections plus denses */
.section {
  padding: var(--space-section) var(--page-padding);
}

.section:nth-of-type(odd) {
  background: var(--warm-bg);
}

.section:nth-of-type(even) {
  background: var(--warm-bg-soft);
}

.section-head {
  margin-bottom: 28px;
}

.section-head h2 {
  max-width: 940px;
}

.lead,
.section p {
  max-width: 920px;
}

.section p:last-child,
.cards article p:last-child,
.split > * > :last-child {
  margin-bottom: 0;
}

section:empty,
.section:empty {
  display: none;
}

/* Grilles mieux remplies */
.cards {
  gap: 18px;
}

.cards.two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cards.three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cards.four {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.cards article {
  min-height: 190px;
  padding: 25px 26px;
  background: var(--warm-card);
  border-color: var(--line);
}

.cards article > b {
  margin-bottom: 22px;
}

.cards article h3 {
  margin-top: 0;
  margin-bottom: 12px;
}

/* Colonnes plus équilibrées */
.split {
  grid-template-columns: minmax(300px, .9fr) minmax(440px, 1.1fr);
  gap: clamp(38px, 5vw, 76px);
  align-items: start;
}

.split > * {
  min-width: 0;
}

/* Bandeaux plus courts */
.statement {
  padding: clamp(46px, 5vw, 70px) var(--page-padding);
}

.statement p {
  max-width: 1120px;
  font-size: clamp(1.65rem, 2.7vw, 2.8rem);
  line-height: 1.2;
}

/* Éléments d'action et listes */
.actions,
.hero-actions,
.cta-actions {
  margin-top: 28px;
  gap: 12px;
}

.steps {
  gap: 18px;
}

.steps article,
.steps li {
  padding-top: 20px;
  padding-bottom: 20px;
}

/* Supprime les marges verticales excessives entre blocs */
.section + .section,
section + section {
  margin-top: 0;
}

.section > * + * {
  margin-top: clamp(22px, 2.5vw, 34px);
}

.section-head + .cards,
.section-head + .split,
.section-head + .steps {
  margin-top: 0;
}

/* Tablette */
@media (max-width: 1100px) {
  .cards.four {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .split {
    grid-template-columns: minmax(260px, .85fr) minmax(360px, 1.15fr);
    gap: 38px;
  }
}

/* Mobile */
@media (max-width: 900px) {
  .hero,
  .page-hero {
    padding: 46px 22px 42px;
  }

  .section {
    padding: 42px 22px;
  }

  .cards.two,
  .cards.three,
  .cards.four,
  .split {
    grid-template-columns: 1fr;
  }

  .split {
    gap: 30px;
  }

  .cards article {
    min-height: auto;
  }

  .statement {
    padding: 44px 22px;
  }
}

/* Très petits écrans */
@media (max-width: 520px) {
  :root {
    --page-padding: 18px;
  }

  .hero,
  .page-hero,
  .section,
  .statement {
    padding-left: 18px;
    padding-right: 18px;
  }

  .cards article {
    padding: 22px;
  }
}
