/* Convergence — direction artistique transversale.
   Le Hero de l'accueil et son animation topographique ne sont pas ciblés ici. */
:root {
  --design-ivory: #f5f2eb;
  --design-paper: #fbf9f4;
  --design-navy: #12213d;
  --design-green: #173a32;
  --design-gold: #bd8e31;
  --design-rule: rgba(18, 33, 61, .18);
  --design-dark-rule: rgba(245, 242, 235, .22);
  --design-space: clamp(76px, 8vw, 126px);
}

/* Hors Accueil, les changements de section restent volontairement compacts :
   1 cm de respiration de part et d'autre du changement de fond. */
html body[data-page]:not([data-page="accueil"]) {
  --design-space: 38px;
}

/* Un langage commun pour les pages intérieures : fond profond, filet or et
   tracé vectoriel net, indépendant de l'illustration du Hero d'accueil. */
html body[data-page] main .page-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 0 !important;
  padding: clamp(74px, 7.4vw, 112px) 0 clamp(78px, 8vw, 122px) !important;
  background: var(--design-navy) !important;
}
html body[data-page] main .page-hero::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: -1;
  background: radial-gradient(ellipse at 80% 35%, rgba(45, 79, 108, .32), transparent 51%);
  pointer-events: none;
}
html body[data-page] main .page-hero::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  z-index: -1;
  width: min(58vw, 810px) !important;
  height: 100% !important;
  inset: auto 0 0 auto !important;
  background: url("assets/editorial-contours.svg") right bottom / contain no-repeat !important;
  opacity: .5 !important;
  transform: none !important;
  pointer-events: none;
}
/* Les Heroes éditoriaux restent sobres : les ondulations sont réservées à
   l'animation topographique de la page Accueil. */
html body:is([data-page="genese"], [data-page="methode"], [data-page="offre"]) main .page-hero::after {
  content: none !important;
  display: none !important;
}
html body[data-page] main .page-hero > .container { position: relative; z-index: 1; }
html body[data-page] main .page-hero .eyebrow {
  color: var(--design-gold) !important;
  font-size: clamp(12px, 1vw, 15px) !important;
  letter-spacing: .16em !important;
  margin-bottom: clamp(22px, 2.5vw, 36px) !important;
}
/* La page Méthode emploie exactement le même repère safran dans le Hero
   et dans la section « La méthode en cinq étapes ». */
html body[data-page="methode"] main .method-v2-hero .section-kicker {
  font-size: 18px !important;
  font-weight: 600 !important;
  letter-spacing: .14em !important;
  line-height: 1.4 !important;
}
@media (max-width: 800px) {
  html body[data-page="methode"] main .method-v2-hero .section-kicker {
    font-size: 15px !important;
  }
}
html body[data-page] main .page-hero h1 {
  max-width: 920px !important;
  color: var(--design-ivory) !important;
  font-size: clamp(50px, 5.1vw, 78px) !important;
  line-height: .99 !important;
  letter-spacing: -.025em !important;
  text-wrap: balance;
  margin-bottom: clamp(28px, 3vw, 44px) !important;
}
html body[data-page] main .page-hero .lead,
html body[data-page] main .offer-v7-hero-intro {
  max-width: 690px !important;
  color: rgba(245, 242, 235, .86) !important;
  line-height: 1.62 !important;
}
html body[data-page] main .legal-hero { padding-block: clamp(48px, 5vw, 72px) !important; }
html body[data-page] main .legal-hero h1 { font-size: clamp(39px, 4.2vw, 58px) !important; margin-bottom: 0 !important; }

/* La Genèse avait un bandeau compact propre à l'ancienne version. Il reprend
   la hauteur et le centrage des autres Heroes éditoriaux sur grand écran. */
@media (min-width: 760px) {
  html body[data-page="genese"] main .page-hero.genese-hero:not(#_a) {
    display: flex !important;
    align-items: center !important;
    min-height: 520px !important;
    padding: clamp(74px, 7.4vw, 112px) 0 clamp(78px, 8vw, 122px) !important;
  }
  html body[data-page="methode"] main .page-hero.method-v2-hero:not(#_a) {
    display: flex !important;
    align-items: center !important;
    min-height: 520px !important;
    padding: clamp(56px, 5.5vw, 84px) 0 clamp(60px, 6vw, 92px) !important;
  }
  html body[data-page="methode"] main .method-v2-hero h1 {
    margin-top: 0 !important;
  }
  /* Offres reprend le même gabarit : titre, sous-titre et texte sont plus
     resserrés afin que le bandeau ne devienne pas plus haut que les autres. */
  html body[data-page="offre"] main .page-hero.offer-v2-hero:not(#_a) {
    display: flex !important;
    align-items: center !important;
    min-height: 520px !important;
    padding: 64px 0 !important;
  }
  html body[data-page="offre"] main .offer-v2-hero h1 {
    font-size: clamp(52px, 4.5vw, 68px) !important;
    line-height: 1.02 !important;
  }
  html body[data-page="offre"] main .offer-v2-hero h1 span + span {
    margin-top: 20px !important;
    font-size: clamp(25px, 2vw, 32px) !important;
    line-height: 1.25 !important;
  }
  html body[data-page="offre"] main .offer-v2-hero .offer-v7-hero-intro {
    max-width: 720px !important;
    margin-top: 28px !important;
    font-size: 16px !important;
    line-height: 1.55 !important;
  }
  html body[data-page="offre"] main .offer-v2-hero .offer-v7-hero-intro p + p {
    margin-top: 12px !important;
  }
}

/* Rythme éditorial : espaces, titres, séparateurs et liens. */
html body[data-page] main :is(.home-v112-scope-section, .home-v2-agri-section,
  .home-v112-approach-section, .offer-families-section, .offer-agri-band,
  .offer-territorial-section, .method-v2-progress, .method-v2-principles,
  .method-v2-cases, .genese-progression, .genese-resolution-section,
  .contact-v2-section) {
  padding-block: var(--design-space) !important;
}
html body[data-page] main :is(.home-v112-scope-section, .offer-families-section,
  .method-v2-progress, .method-v2-cases, .genese-progression, .contact-v2-section,
  .legal-section) { background: var(--design-ivory) !important; }
html body[data-page] main :is(.home-v112-scope-section, .offer-families-section,
  .method-v2-progress, .method-v2-cases, .genese-progression, .contact-v2-section)
  :is(h2, h3) { text-wrap: balance; }
html body[data-page] main :is(.home-v112-scope-section, .offer-families-section,
  .method-v2-progress, .method-v2-cases, .genese-progression, .contact-v2-section)
  :is(p, li) { line-height: 1.68; }
html body[data-page] main :is(.home-v112-scope-section, .offer-families-section,
  .method-v2-progress, .method-v2-cases, .genese-progression, .contact-v2-section)
  .section-kicker { letter-spacing: .17em !important; }
html body[data-page] main a:not(.button):not(.nav-contact) { text-underline-offset: 4px; }

/* CTA « Prendre contact » : le survol reste contrasté quel que soit le fond
   de la section (bleu, vert ou ivoire). */
html body main .primary-project-cta:hover {
  color: var(--design-navy) !important;
  background: var(--design-gold) !important;
  border-color: var(--design-gold) !important;
}
html body main .primary-project-cta:focus-visible {
  outline-color: var(--design-gold) !important;
  outline-offset: 3px;
}

/* Accueil — le contenu situé après le Hero prend une cadence plus lisible. */
html body[data-page="accueil"] main .home-v112-scope-section {
  background: linear-gradient(180deg, #f5f2eb, #fbf9f4 68%, #f5f2eb) !important;
}
html body[data-page="accueil"] main section.home-v112-scope-section {
  padding-top: 46px !important;
  padding-bottom: 76px !important;
}
html body[data-page="accueil"] main .home-v112-scope-heading {
  max-width: 880px !important;
  margin-left: calc(2px + clamp(20px, 2vw, 30px)) !important;
  font-size: clamp(48px, 5vw, 72px) !important;
  line-height: 1.02 !important;
  letter-spacing: -.025em !important;
}
html body[data-page="accueil"] main .home-v112-scope-intro {
  max-width: 940px !important;
  padding-left: clamp(24px, 3vw, 42px) !important;
  border-left: 2px solid var(--design-gold) !important;
  margin-block: clamp(34px, 4vw, 60px) clamp(50px, 6vw, 84px) !important;
}
/* Les anciennes règles de contenu remettaient le texte au bord du filet.
   Le retrait est aussi porté par les paragraphes afin de rester stable face
   aux variantes de mise en page déjà présentes dans la feuille historique. */
html body[data-page="accueil"] main .home-v112-scope > .home-v112-scope-intro > p {
  padding-left: clamp(20px, 2vw, 30px) !important;
}
html body[data-page="accueil"] main .home-v112-scope-levels > article {
  background: var(--design-paper) !important;
  border-radius: 0 !important;
  border: 1px solid var(--design-rule) !important;
  box-shadow: 0 22px 48px rgba(18, 33, 61, .045) !important;
  padding: clamp(28px, 3vw, 42px) !important;
}
html body[data-page="accueil"] main .home-v112-scope-levels > article::before {
  content: "";
  display: block;
  width: 46px;
  height: 2px;
  background: var(--design-gold);
  margin-bottom: 18px;
}
html body[data-page="accueil"] main .home-v112-scope-levels .home-v112-situation-visual {
  margin-block: 26px 30px !important;
}
html body[data-page="accueil"] main .home-v2-agri-section {
  background: radial-gradient(ellipse at 90% 15%, rgba(255,255,255,.07), transparent 46%), var(--design-green) !important;
}
html body[data-page="accueil"] main section.home-v2-agri-section {
  padding-top: 48px !important;
  padding-bottom: 48px !important;
}
html body[data-page="accueil"] main section.home-v2-agri-section .home-v2-agri > h2 {
  margin-top: 22px !important;
}
html body[data-page="accueil"] main section.home-v2-agri-section .home-v2-agri > h2 + * {
  margin-top: 32px !important;
}
/* La doctrine agrivoltaïque garde ses textes au contact des visuels, avec
   des colonnes plus courtes et lisibles. Les blocs de droite se calent sur
   le bord extérieur de leurs illustrations. */
@media (min-width: 1100px) {
  html body[data-page="accueil"] main .home-v15-pole .home-v15-pole-text {
    flex: 0 1 360px !important;
    max-width: 360px !important;
  }
  html body[data-page="accueil"] main .home-v15-pole-agri .home-v15-pole-text {
    margin-right: auto !important;
  }
  html body[data-page="accueil"] main .home-v15-pole-site .home-v15-pole-text,
  html body[data-page="accueil"] main .home-v15-pole-terr .home-v15-pole-text {
    margin-left: auto !important;
  }
  html body[data-page="accueil"] main .home-v15-core.home-v15-core {
    margin-top: 225px !important;
  }
}
html body[data-page="accueil"] main .home-v2-agri-section img:not(.home-v15-core img) {
  border-radius: 2px;
}

/* Le PNG du schéma conserve son animation, mais ses bords se fondent
   progressivement dans le dégradé de la section. */
html body[data-page="accueil"] main .home-v112-approach-figure[data-convergence-animation] > img {
  -webkit-mask-image:
    linear-gradient(to right, transparent 0, #000 8%, #000 92%, transparent 100%),
    linear-gradient(to bottom, transparent 0, #000 9%, #000 91%, transparent 100%);
  -webkit-mask-composite: source-in;
  mask-image:
    linear-gradient(to right, transparent 0, #000 8%, #000 92%, transparent 100%),
    linear-gradient(to bottom, transparent 0, #000 9%, #000 91%, transparent 100%);
  mask-composite: intersect;
}
html body[data-page="accueil"] main .home-v14-transition-section {
  border-block: 1px solid var(--design-rule);
  background: var(--design-paper) !important;
  padding-block: clamp(38px, 4vw, 60px) !important;
}
html body[data-page="accueil"] main section.home-v14-transition-section {
  padding-top: 58px !important;
  padding-bottom: 58px !important;
}
html body[data-page="accueil"] main .home-v112-approach-section {
  background: radial-gradient(ellipse at 50% 55%, rgba(45, 79, 108, .22), transparent 66%), #001d3f !important;
}
html body[data-page="accueil"] main .home-v13-pv-section {
  background: var(--design-paper) !important;
  border-block: 1px solid var(--design-rule);
  padding-block: clamp(58px, 6vw, 84px) !important;
}

/* Offres — chapitres plus structurés, avec une vraie présence des illustrations. */
html body[data-page="offre"] main .offer-families-section .offer-expertise-note {
  border-left: 2px solid var(--design-gold) !important;
  padding-left: clamp(24px, 3vw, 42px) !important;
  max-width: 900px;
}

/* Le premier contenu sous le Hero reste à moins de 2 cm de celui-ci. */
html body[data-page="offre"] main .offer-families-section {
  padding-top: 38px !important;
}

/* Les titres et filets verticaux des trois offres principales partagent
   une même colonne éditoriale. */
@media (min-width: 760px) {
  html body[data-page="offre"] main :is(
    #conduire-developpement,
    #reconfigurer-trajectoire,
    #decider-avant-engager
  ).offer-family {
    grid-template-columns: 330px minmax(0, 1fr) !important;
  }
}
html body[data-page="offre"] main .offer-family:not(.offer-family-agri) {
  position: relative;
  border-top: 1px solid var(--design-rule) !important;
  padding-block: clamp(62px, 6vw, 90px) !important;
}
html body[data-page="offre"] main .offer-family:not(.offer-family-agri)::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 0;
  width: 72px;
  height: 2px;
  background: var(--design-gold);
}
html body[data-page="offre"] main .offer-family-head h2 {
  font-size: clamp(42px, 4.1vw, 62px) !important;
  line-height: 1.02 !important;
  letter-spacing: -.02em !important;
}
html body[data-page="offre"] main .offer-family-visual {
  display: block;
  width: min(100%, 340px) !important;
  height: auto !important;
  max-height: 300px;
  object-fit: contain;
  filter: drop-shadow(0 18px 25px rgba(18,33,61,.12));
}
html body[data-page="offre"] main .offer-agri-band {
  background: radial-gradient(ellipse at 95% 20%, rgba(255,255,255,.08), transparent 50%), var(--design-green) !important;
}
/* La bande reste pleine largeur, mais son contenu reprend rigoureusement la
   même grille que les autres sections du site. */
html body[data-page="offre"] main .offer-agri-band .offer-agri-container {
  width: var(--site-content-width) !important;
  max-width: var(--site-max-width) !important;
  margin-inline: auto !important;
}
html body[data-page="offre"] main .offer-agri-image,
html body[data-page="offre"] main .offer-agri-image img {
  border-radius: 2px !important;
}
html body[data-page="offre"] main .offer-territorial-section {
  background: var(--design-paper) !important;
  border-block: 1px solid var(--design-rule);
}
/* Transition Agrivoltaïsme → Collectivités : même rythme de 1 cm que les
   autres séparations des pages intérieures. */
html body[data-page="offre"] main .offer-agri-band {
  padding-bottom: 38px !important;
}
html body[data-page="offre"] main .offer-territorial-section {
  padding-top: 38px !important;
}
html body[data-page="offre"] main .offer-terr-right {
  border-left: 2px solid var(--design-gold) !important;
  padding-left: clamp(26px, 3vw, 44px) !important;
}

/* Méthode — diagramme cadré et cas présentés comme un dossier consultable. */
html body[data-page="methode"] main .method-v2-progress [data-convergence-method] {
  margin-top: clamp(40px, 5vw, 74px) !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
@media (min-width: 768px) {
  html body[data-page="methode"] main .method-v2-progress [data-convergence-method] {
    width: 106% !important;
    max-width: none !important;
    margin-inline: -3% !important;
  }
}
html body[data-page="methode"] main .method-v2-principles {
  background: radial-gradient(ellipse at 85% 5%, rgba(255,255,255,.07), transparent 50%), var(--design-navy) !important;
}
html body[data-page="methode"] main .method-v2-principles .principles {
  margin-top: clamp(45px, 5vw, 72px) !important;
}
html body[data-page="methode"] main .method-v2-cases .cv-cases-panel {
  border: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}
/* La phrase de clôture précède directement la marge de fin de section. */
html body[data-page="methode"] main .method-v5-cases-conclusion {
  margin-bottom: 0 !important;
}
html body[data-page="methode"] main .method-v5-accordions .case-accordion {
  border-top: 1px solid var(--design-rule) !important;
  background: transparent !important;
}
html body[data-page="methode"] main .method-v5-accordions .case-accordion:hover {
  background: rgba(255,255,255,.38) !important;
}
html body[data-page="methode"] main .method-v5-accordions .case-accordion-toggle:focus-visible {
  outline: 2px solid var(--design-gold);
  outline-offset: -3px;
}

/* Genèse — récit en chapitres ; les photographies sont traitées comme un
   portfolio documentaire, sans recadrage agressif des légendes. */
html body[data-page="genese"] main .genese-step {
  position: relative;
  border-top: 0 !important;
  padding-block: clamp(28px, 2.2vw, 34px) !important;
  margin-block: 0 !important;
}
html body[data-page="genese"] main .genese-progression {
  padding-top: 38px !important;
}
html body[data-page="genese"] main .genese-step.genese-step-real {
  padding-top: 0 !important;
}
@media (min-width: 801px) {
  html body[data-page="genese"] main .genese-step-real .genese-step-copy {
    padding-top: calc(clamp(84px, 8vw, 124px) + 20px) !important;
  }
  html body[data-page="genese"] main .genese-step-real .genese-step-copy > p:first-child {
    margin-top: 0 !important;
  }
}
html body[data-page="genese"] main .genese-chapter-rule {
  margin: 18px auto 20px !important;
}
@media (min-width: 1100px) {
  html body[data-page="genese"] main .genese-steps {
    display: grid;
    grid-template-columns: 39% minmax(0, 1fr);
    column-gap: 56px;
  }
  html body[data-page="genese"] main .genese-steps > .genese-step {
    grid-column: 1 / -1;
  }
  html body[data-page="genese"] main .genese-steps > .genese-chapter-rule {
    grid-column: 2;
    justify-self: center;
    margin: 18px 0 20px !important;
  }
}
html body[data-page="genese"] main .genese-step::before { content: none !important; }
html body[data-page="genese"] main .genese-step-aside h2 {
  font-size: clamp(42px, 4vw, 62px) !important;
  line-height: 1.02 !important;
}
html body[data-page="genese"] main .genese-reel-gallery {
  gap: clamp(12px, 1.4vw, 20px) !important;
}
html body[data-page="genese"] main .genese-reel-item {
  background: transparent !important;
  border: 0 !important;
  overflow: visible !important;
}
html body[data-page="genese"] main .genese-reel-item img {
  display: block;
  width: 100% !important;
  aspect-ratio: 4 / 3;
  object-fit: cover !important;
}
html body[data-page="genese"] main .genese-reel-item figcaption {
  padding: 14px 0 0 !important;
}
html body[data-page="genese"] main :is(.genese-conseil-visual, .genese-dev-visual) {
  border: 0 !important;
  background: transparent !important;
  padding: 0 !important;
}
/* La phrase de synthèse reste dans sa colonne : les anciennes règles
   l'élargissaient artificiellement vers l'illustration. */
html body[data-page="genese"] main .genese-step .genese-step-copy > p.genese-principle-inline {
  position: static !important;
  width: auto !important;
  max-width: 680px !important;
  margin: clamp(30px, 3vw, 48px) 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  text-align: left !important;
}
html body[data-page="genese"] main .genese-step .genese-step-copy > p.genese-principle-inline::before {
  content: none !important;
  display: none !important;
}
html body[data-page="genese"] main .genese-step .genese-step-copy > p.genese-principle-card {
  padding: clamp(24px, 2.8vw, 36px) !important;
  border: 1px solid rgba(18, 33, 61, .14) !important;
  border-top: 2px solid var(--design-gold) !important;
  background: var(--design-ivory) !important;
  box-shadow: 0 18px 38px rgba(18, 33, 61, .11), inset 0 1px 0 rgba(255, 255, 255, .75) !important;
  text-align: center !important;
}
html body[data-page="genese"] main .genese-resolution-section {
  background: var(--design-navy) !important;
  border: 0;
}
html body[data-page="genese"] main .genese-resolution-summary {
  padding-block: var(--design-space);
  background: var(--design-ivory);
}
html body[data-page="genese"] main .genese-resolution-summary .genese-resolution-last {
  margin: 0 auto;
  color: var(--body-copy-blue) !important;
}

/* Contact — formulaire principal clair, canal direct foncé. */
html body[data-page="contact"] main .contact-v2-form-wrap {
  background: var(--design-paper);
  border: 1px solid var(--design-rule);
  padding: clamp(28px, 4vw, 62px) !important;
  box-shadow: 0 26px 56px rgba(18,33,61,.055);
}
html body[data-page="contact"] main .contact-v2-form :is(input:not([type="checkbox"]), textarea, select) {
  width: 100%;
  background: #fffefa !important;
  border: 1px solid rgba(18,33,61,.26) !important;
  border-radius: 0 !important;
  padding: 14px 16px !important;
  min-height: 50px;
  box-shadow: none !important;
}
html body[data-page="contact"] main .contact-v2-form textarea { min-height: 170px !important; }
html body[data-page="contact"] main .contact-v2-form :is(input, textarea, select):focus-visible {
  outline: 2px solid var(--design-gold) !important;
  outline-offset: 2px;
}
html body[data-page="contact"] main .contact-v2-direct {
  align-self: start;
  background: var(--design-navy) !important;
  color: var(--design-ivory) !important;
  border: 0 !important;
  padding: clamp(30px, 3vw, 48px) !important;
}
html body[data-page="contact"] main .contact-v2-direct::before {
  content: "";
  display: block;
  width: 48px;
  height: 2px;
  margin-bottom: 32px;
  background: var(--design-gold);
}
html body[data-page="contact"] main .contact-v2-direct h2 { color: var(--design-ivory) !important; }
html body[data-page="contact"] main .contact-v2-next-steps {
  display: grid;
  gap: 0;
  margin: 30px 0 0 !important;
  padding: 0 !important;
  list-style: none;
}
html body[data-page="contact"] main .contact-v2-next-steps li {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 16px;
  padding: 18px 0;
  border-top: 1px solid rgba(245, 242, 235, .2);
}
html body[data-page="contact"] main .contact-v2-next-steps span {
  color: var(--design-gold);
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .1em;
}
html body[data-page="contact"] main .contact-v2-next-steps p {
  margin: 0 !important;
  color: rgba(245, 242, 235, .85) !important;
  font-size: 14px !important;
  line-height: 1.55 !important;
}

/* Pages juridiques : largeur de lecture constante et repères de section. */
html body[data-page] main .legal-section { padding-block: 38px !important; }
html body[data-page] main .legal-section .legal-copy {
  width: var(--site-content-width) !important;
  max-width: 860px !important;
  margin-inline: auto !important;
}
html body[data-page] main .legal-copy h2:not(:first-child) {
  padding-top: 34px;
  border-top: 1px solid var(--design-rule);
}
html body[data-page] main .legal-copy p,
html body[data-page] main .legal-copy li { line-height: 1.68 !important; }

/* Le bas de page reprend le même cadrage sur les sept pages. */
html body[data-page] .site-footer {
  background: #101d35 !important;
  border-top: 2px solid var(--design-gold);
  padding-block: clamp(34px, 3.5vw, 52px) !important;
}
html body[data-page] .site-footer .footer-inner,
html body[data-page] .site-footer .footer-grid { column-gap: clamp(30px, 5vw, 80px); }
html body[data-page] .site-footer .footer-brand-title { letter-spacing: .14em !important; }
html body[data-page] .site-footer .footer-links a,
html body[data-page] .site-footer .footer-legal a {
  transition: color .18s ease;
}
html body[data-page] .site-footer :is(.footer-links a, .footer-legal a):hover { color: var(--design-gold) !important; }

@media (max-width: 900px) {
  :root { --design-space: clamp(60px, 9vw, 88px); }
  html body[data-page] main .page-hero::after { width: 78vw !important; opacity: .31 !important; }
  html body[data-page="offre"] main .offer-family-visual { width: min(100%, 270px) !important; }
  html body[data-page="contact"] main .contact-v2-layout { gap: 26px !important; }
}
@media (max-width: 640px) {
  :root { --design-space: 58px; }
  html body[data-page] main .page-hero {
    padding-block: 58px 68px !important;
  }
  html body[data-page] main .page-hero::after {
    width: 100vw !important;
    opacity: .22 !important;
  }
  html body[data-page] main .page-hero h1 {
    font-size: clamp(40px, 12vw, 56px) !important;
    line-height: 1.02 !important;
  }
  html body[data-page="accueil"] main .home-v112-scope-heading { margin-left: 20px !important; font-size: clamp(42px, 11vw, 56px) !important; }
  html body[data-page="accueil"] main .home-v112-scope-intro { margin-block: 28px 42px !important; }
  html body[data-page="accueil"] main .home-v112-scope > .home-v112-scope-intro > p { padding-left: 18px !important; }
  html body[data-page="offre"] main .offer-family:not(.offer-family-agri),
  html body[data-page="genese"] main .genese-step { padding-block: 54px !important; }
  html body[data-page="offre"] main .offer-terr-right { padding-left: 22px !important; }
  html body[data-page="contact"] main .contact-v2-form-wrap,
  html body[data-page="contact"] main .contact-v2-direct { padding: 26px !important; }
  html body[data-page="methode"] main .method-v2-progress [data-convergence-method] { padding: 0 !important; }
}
