:root {
  --navy: #082754;
  --gold: #a06711;
  --blue: #075483;
  --green: #14966f;
}
* {
  box-sizing: border-box;
}
body {
  margin: 0;
  color: var(--navy);
  font-family: "Avenir Next", Avenir, "Segoe UI", sans-serif;
  line-height: 1.75;
}
a {
  color: inherit;
  text-decoration: none;
}
button,
input {
  font: inherit;
}
button,
a,
input {
  touch-action: manipulation;
}
button {
  cursor: pointer;
}
a:focus-visible,
button:focus-visible,
input:focus-visible {
  outline: 3px solid #16b6c4;
  outline-offset: 4px;
}
.skip {
  position: absolute;
  top: -100px;
}
.skip:focus {
  top: 0;
  z-index: 10;
  background: white;
}
.preview {
  text-align: center;
  background: #ece6db;
  font-size: 10px;
  letter-spacing: 2px;
  padding: 6px 12px;
  color: #665c4f;
}
header {
  display: flex;
  align-items: center;
  border-bottom: 1px solid var(--line);
  gap: 20px;
}
nav {
  display: flex;
  align-items: center;
  font-weight: 600;
}
nav a {
  padding: 9px 0;
  border-bottom: 1px solid transparent;
}
nav a.active {
  color: var(--gold);
  border-color: var(--gold);
}
.menu {
  display: none;
  background: none;
  border: 0;
  color: var(--navy);
  font-size: 26px;
}
.hero {
  position: relative;
  isolation: isolate;
  grid-template-columns: 1.15fr 1fr;
  align-items: center;
  gap: 55px;
}
.eyebrow {
  font-size: 11px;
  letter-spacing: 2.7px;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--gold);
  margin-bottom: 24px;
}
h1,
h2,
h3,
p {
  margin-top: 0;
}
h1 {
  font-size: clamp(34px, 3.7vw, 58px);
  line-height: 1.23;
  font-weight: 450;
  letter-spacing: -1.6px;
  margin-bottom: 26px;
}
h2 {
  font-size: clamp(26px, 2.5vw, 37px);
  line-height: 1.35;
  font-weight: 450;
  letter-spacing: -0.6px;
}
h3 {
  font-weight: 500;
  font-size: 21px;
  line-height: 1.4;
}
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 25px;
  padding: 14px 22px;
  background: var(--navy);
  color: white;
  border: 1px solid var(--navy);
  font-size: 13px;
  transition: 0.2s;
}
.btn:hover {
  background: var(--blue);
  transform: translateY(-2px);
}
.section {
  padding: 80px 8%;
}
.soft {
  background: #f1ece3;
}
.services {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 25px;
  margin-top: 40px;
}
.service {
  background: #fffdf8;
  padding: 35px 28px;
  border-top: 2px solid var(--blue);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.service:nth-child(2) {
  border-color: var(--green);
}
.service:nth-child(3) {
  border-color: var(--gold);
}
.service .tag {
  font-size: 10px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--gold);
}
.service h3 {
  font-size: 26px;
  margin: 20px 0 8px;
}
.service p {
  font-size: 14px;
}
.service a {
  font-size: 13px;
  border-bottom: 1px solid var(--line);
  margin-top: auto;
  padding-top: 15px;
}
.closing {
  padding: 65px 8%;
  text-align: center;
  background: radial-gradient(ellipse at 20% 0%, #d7e9e780, transparent 70%);
}
.closing h2 {
  max-width: 760px;
  margin: 0 auto 25px;
}
input {
  accent-color: var(--blue);
}
footer {
  padding: 45px 8% 20px;
}
.footer-top {
  display: flex;
  justify-content: space-between;
  gap: 30px;
  font-size: 14px;
  padding-bottom: 30px;
}
.footer-top strong {
  letter-spacing: 3px;
  font-size: 20px;
}
.footer-top span {
  font-size: 12px;
  color: #766653;
}
.footer-top a {
  font-size: 13px;
}
.footer-bottom {
  border-top: 1px solid var(--line);
  padding-top: 18px;
  display: flex;
  justify-content: space-between;
  gap: 25px;
  font-size: 10px;
  color: #6b6a66;
}
.footer-bottom div {
  display: flex;
  gap: 18px;
}
@media (min-width: 1350px) {
  body {
    max-width: 1800px;
    margin: auto;
  }
}
@media (max-width: 1000px) {
  .hero {
    gap: 30px;
  }
  header {
    flex-wrap: wrap;
  }
  .menu {
    display: block;
  }
  nav {
    display: none;
    flex-direction: column;
    align-items: stretch;
    padding-bottom: 20px;
  }
  nav a {
    font-size: 14px;
    padding: 12px;
  }
  .hero {
    grid-template-columns: 1fr;
    gap: 35px;
  }
  h1 {
    font-size: 36px;
    letter-spacing: -1px;
  }
  .section {
    padding: 50px 7%;
  }
  .services {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .service {
    padding: 26px;
  }
  .footer-top,
  .footer-bottom {
    flex-direction: column;
    gap: 15px;
  }
  .closing {
    padding: 45px 7%;
  }
  .preview {
    font-size: 9px;
    letter-spacing: 1px;
  }
}

/* Ajustements ciblés sur la maquette d'origine */
header {
  background: #fffdfa;
  padding-top: 19px;
  padding-bottom: 14px;
}
.nav-contact {
  background: var(--gold);
  border: 1px solid var(--gold);
  color: white !important;
  border-radius: 3px;
  padding: 11px 19px !important;
  font-size: 14px;
  box-shadow: 0 3px 12px #a0671124;
}
.hero {
  display: block;
  min-height: 0;
  text-align: center;
}
.hero .hero-copy {
  margin: auto;
}
.soft {
  padding-top: 65px;
}
.service {
  min-height: 205px;
}
.service h3 {
  margin-top: 15px;
}
.service p {
  margin-bottom: 13px;
}
.footer-top {
  align-items: center;
}
.footer-logo {
  width: 190px;
  max-width: 100%;
  height: auto;
  mix-blend-mode: multiply;
}
.footer-contact {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.footer-social {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin-top: 15px;
}
.footer-bottom div {
  flex-wrap: wrap;
}
.footer-bottom {
  align-items: center;
}
@media (max-width: 1000px) {
  header {
    padding-top: 8px;
  }
  .footer-top {
    align-items: flex-start;
  }
}

/* Révision fidèle à la charte initiale — bandeau fourni */
header {
  border-top: 0 !important;
  border-image: none !important;
  justify-content: center;
  padding: 14px 3.5% !important;
  position: relative;
  z-index: 3;
}
nav {
  width: 100%;
  justify-content: center;
  gap: clamp(12px, 2.2vw, 32px);
  font-size: clamp(12px, 1.12vw, 16px);
  flex-wrap: wrap;
}
nav .nav-contact {
  margin-left: auto;
  font-size: clamp(14px, 1.25vw, 18px) !important;
  font-weight: 700;
  white-space: nowrap;
  background: #a06711;
  color: white !important;
  border-radius: 3px;
  padding: 12px 21px !important;
}
.hero {
  padding: 65px 8% 70px !important;
  background: radial-gradient(ellipse at 3% 12%, #dcebea80, transparent 45%),
    radial-gradient(ellipse at 96% 85%, #ecd9e280, transparent 42%), #fbf7f0;
}
.hero .hero-copy {
  max-width: 1060px !important;
}
@media (max-width: 1000px) {
  header {
    padding: 12px 5% !important;
  }
  nav {
    display: flex !important;
    gap: 6px 16px;
    justify-content: center;
  }
  nav a {
    font-size: 13px;
    padding: 7px 3px;
  }
  nav .nav-contact {
    margin: 7px auto 0;
  }
  .menu {
    display: none !important;
  }
  .hero {
    padding: 45px 7% !important;
  }
}
@media (max-width: 640px) {
  nav a {
    font-size: 12px;
  }
}

/* Ajustement léger de l’espacement avant la conclusion de l’accueil. */
#page-accueil > section.closing {
  padding-top: 42px;
}
@media (max-width: 640px) {
  #page-accueil > section.closing {
    padding-top: 32px;
  }
}

/* Bandeau unique : identité visuelle et navigation intégrées */
.unified-header {
  min-height: 245px !important;
  flex-direction: column !important;
  position: relative !important;
  isolation: isolate;
  padding: 0 3.5% 13px !important;
  overflow: hidden;
}
.unified-header nav {
  background: rgba(255, 253, 249, 0.88);
  padding: 7px 14px;
  border: 1px solid rgba(217, 200, 170, 0.55);
  border-radius: 3px;
  backdrop-filter: blur(5px);
}
.unified-header nav .nav-contact {
  margin-left: auto !important;
  font-size: clamp(11px, 1.12vw, 16px) !important;
  padding: 9px 14px !important;
}
.closing h2 {
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: clamp(27px, 3.1vw, 42px) !important;
  line-height: 1.38 !important;
  font-weight: 400 !important;
  letter-spacing: normal !important;
}
@media (max-width: 1000px) {
  .unified-header {
    padding: 0 3% 10px !important;
  }
  .unified-header nav {
    overflow-x: auto;
  }
  .unified-header nav .nav-contact {
    font-size: 12px !important;
  }
}
@media (max-width: 640px) {
  .unified-header {
    min-height: 170px !important;
  }
}

/* Bandeau unique horizontal : logo et navigation sur une ligne */
header.unified-header {
  gap: clamp(12px, 2vw, 28px) !important;
  border-bottom: 1px solid #d9c8aa !important;
}
header.unified-header nav {
  font-size: clamp(11px, 0.95vw, 15px) !important;
}
header.unified-header nav .nav-contact {
  font-size: clamp(12px, 1vw, 16px) !important;
}
@media (max-width: 640px) {
  header.unified-header nav .nav-contact {
    margin: 8px auto !important;
  }
}

/* Correction : navigation originale en une seule ligne, logo à gauche */
header.unified-header {
  height: 112px !important;
  min-height: 112px !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: space-between !important;
  flex-wrap: nowrap !important;
  padding: 8px 3.5% !important;
  overflow: visible !important;
  background: linear-gradient(
    105deg,
    rgba(228, 245, 246, 0.88),
    rgba(255, 250, 245, 0.95) 37%,
    rgba(246, 231, 242, 0.85)
  ) !important;
  box-sizing: border-box !important;
}
header.unified-header::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.45;
  background: radial-gradient(ellipse at 2% 0%, #c8edf1 0%, transparent 33%),
    radial-gradient(ellipse at 98% 0%, #e7cde8 0%, transparent 32%);
  z-index: -1;
}
header.unified-header nav {
  flex: 1 !important;
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: flex-end !important;
  width: auto !important;
  gap: clamp(9px, 1.35vw, 24px) !important;
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  backdrop-filter: none !important;
}
header.unified-header nav a {
  font-size: clamp(11px, 1.05vw, 15px) !important;
  white-space: nowrap !important;
  padding: 8px 0 !important;
}
header.unified-header nav .nav-contact {
  margin-left: 8px !important;
  padding: 12px 16px !important;
  border: 1px solid #b88b4d !important;
  background: #a06711 !important;
  color: white !important;
}
header.unified-header .menu {
  display: none !important;
}
@media (max-width: 1000px) {
  header.unified-header {
    height: auto !important;
    min-height: 110px !important;
    flex-wrap: wrap !important;
  }
  header.unified-header nav {
    overflow-x: auto !important;
    justify-content: flex-start !important;
    gap: 15px !important;
    padding: 8px 0 !important;
  }
}

/* Bandeau horizontal définitif : aucun retour à la ligne */
html body header.unified-header {
  flex-direction: row !important;
}
html body header.unified-header nav a {
  flex: 0 0 auto !important;
}
html body header.unified-header nav .nav-contact {
  margin-left: clamp(3px, 0.6vw, 12px) !important;
}

/* Harmonisation : fondu continu, navigation horizontale, sans séparation */
html body {
  background: #faf7f1 !important;
  background-image: radial-gradient(
      ellipse 65% 35% at 0% 4%,
      rgba(210, 235, 232, 0.64),
      transparent 95%
    ),
    radial-gradient(ellipse 65% 40% at 100% 23%, rgba(237, 219, 231, 0.53), transparent 95%),
    radial-gradient(ellipse 65% 40% at 0% 63%, rgba(214, 235, 232, 0.48), transparent 95%),
    radial-gradient(ellipse 65% 40% at 100% 92%, rgba(238, 222, 230, 0.46), transparent 95%) !important;
  background-attachment: fixed !important;
}
html body .preview {
  display: none !important;
}
html body header.unified-header {
  isolation: auto !important;
}
html body header.unified-header::before {
  display: none !important;
}
html body .hero,
html body .closing,
html body main section,
html body footer {
  background-color: transparent !important;
  background-image: none !important;
}
html body .hero {
  background: radial-gradient(ellipse at 6% 9%, rgba(211, 235, 234, 0.36), transparent 52%),
    radial-gradient(ellipse at 94% 82%, rgba(238, 217, 229, 0.32), transparent 51%) !important;
}
html body .closing {
  background: linear-gradient(
    105deg,
    rgba(213, 235, 233, 0.5),
    rgba(248, 244, 238, 0.55) 50%,
    rgba(237, 220, 232, 0.35)
  ) !important;
}

/* Raffinement beige inspiré de la maquette originale : pas de bandes grises ni de détourages */
:root {
  --cream: #faf7f1 !important;
  --line: #d7bc85 !important;
}
html,
body {
  background: #faf7f1 !important;
}
.preview {
  display: none !important;
}
html body header.unified-header {
  flex-wrap: nowrap !important;
  gap: clamp(10px, 2vw, 32px) !important;
  border: 0 !important;
  box-shadow: none !important;
}
html body header.unified-header nav {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  flex-wrap: nowrap !important;
  overflow-x: auto !important;
  scrollbar-width: thin !important;
}
html body header.unified-header nav a {
  color: #102d4b !important;
  margin: 0 !important;
}
html body header.unified-header nav a.nav-contact {
  flex-shrink: 0 !important;
}
.hero,
.hero::before,
.hero::after {
  background-color: #faf7f1 !important;
}
.hero {
  background-image: linear-gradient(180deg, #faf7f1 0%, #f8f4ed 55%, #f7f3ed 100%) !important;
}
main section:not(.hero) {
  background-image: none !important;
}
footer {
  background: #f8f4ed !important;
  border-top: 1px solid #dbc9a8 !important;
}
footer .footer-logo {
  object-fit: contain !important;
  mix-blend-mode: normal !important;
  max-width: 245px !important;
  background: transparent !important;
}
@media (max-width: 1000px) {
  html body header.unified-header {
    gap: 12px !important;
  }
}

/* Ajustements ciblés : alignement des titres et lien Coaching sur une ligne. */
@media (min-width: 641px) {
  .services {
    align-items: stretch;
  }
  .services .service .tag {
    display: block;
    min-height: 3.7em;
    line-height: 1.65;
  }
  .services .service h3 {
    margin-top: 12px;
  }
}
.services .service a {
  white-space: nowrap;
  font-size: clamp(11px, 1.05vw, 13px);
}
@media (max-width: 640px) {
  .services .service a {
    font-size: 13px;
  }
}

/* Pages intérieures — charte de l’accueil validé */

/* Dernier ajustement validé : texte d’introduction sur toute la largeur */

/* Accueil : paragraphe placé sur la largeur du contenu, sous les trois intentions */

/* Alignement du texte de présentation uniquement */
.intro-text.editorial-intro p {
  text-align: justify !important;
  text-justify: inter-word;
  hyphens: auto;
}

/* Ajustement final : texte centré dans sa zone, justifié sans césure */

/* Pages intérieures : mise en page inspirée des six PDF de première ébauche,
   avec charte beige / typographies de l'accueil validé. Aucun sélecteur d'accueil modifié. */
.interior-page {
  padding: 0 !important;
  min-height: 65vh !important;
  background: transparent !important;
}
.interior-page .v2-page {
  width: 100%;
}
.interior-page .v2-hero {
  background: linear-gradient(
    115deg,
    rgba(250, 245, 239, 0.4),
    rgba(235, 223, 219, 0.32) 50%,
    rgba(250, 245, 239, 0.18)
  );
  border-bottom: 1px solid rgba(172, 139, 81, 0.4);
  padding: clamp(55px, 6vw, 88px) 6vw clamp(56px, 6vw, 80px);
}
.interior-page .v2-hero-inner {
  max-width: 1120px;
  margin: 0 auto;
}
.interior-page .v2-eyebrow {
  letter-spacing: 0.24em;
  text-transform: uppercase;
  font-size: 12px;
  font-weight: 600;
  margin-bottom: 19px;
}
.interior-page .v2-title {
  margin: 0 !important;
}
.interior-page .v2-subtitle {
  font-size: 16px;
  margin-top: 22px;
  letter-spacing: 0.025em;
}
.interior-page .v2-content {
  max-width: 790px;
  margin: 0 auto;
  padding: 55px 22px 0;
  font-size: 16.5px;
  line-height: 1.85;
}
.interior-page .v2-content > p {
  margin: 0 0 21px;
}
.interior-page .v2-content > h2 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(24px, 2.6vw, 31px);
  line-height: 1.28;
  font-weight: 400;
  color: #1e3242;
  border-top: 1px solid rgba(171, 139, 85, 0.38);
  padding-top: 27px;
  margin: 42px 0 20px;
}
.interior-page .v2-content .v2-smallgold {
  color: #a27d43;
  font-family: Georgia, "Times New Roman", serif;
  font-style: italic;
}
.interior-page .v2-cta {
  position: relative;
  text-align: center;
  margin: 60px calc((790px - 100vw) / 2) 0;
  padding: 50px 22px 58px;
  background: linear-gradient(120deg, #efe8dc, #f6f0e6 58%, #eee5d9);
  border-top: 1px solid rgba(176, 145, 91, 0.35);
}
.interior-page .v2-cta h2 {
  border: 0;
  padding: 0;
  margin: 0 auto 22px;
  max-width: 800px;
  color: #243a4b;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(26px, 3.3vw, 38px);
  font-weight: 400;
  line-height: 1.3;
}
.interior-page .v2-button {
  display: inline-block;
  background: #233b50;
  color: #fff;
  text-decoration: none;
  border: 1px solid #233b50;
  border-radius: 2px;
  padding: 13px 23px;
  font-size: 14px;
  line-height: 1.35;
  white-space: normal;
}
.interior-page .v2-button:hover {
  background: #a47e43;
  border-color: #a47e43;
}
.interior-page .v2-portrait-layout {
  display: grid;
  grid-template-columns: minmax(200px, 290px) minmax(0, 1fr);
  gap: 48px;
  align-items: start;
  width: min(1080px, calc(100vw - 48px));
  position: relative;
  left: 50%;
  transform: translateX(-50%);
}
.interior-page:has(.v2-portrait-layout) .v2-content {
  max-width: 790px;
}
.interior-page .v2-portrait {
  min-height: 355px;
  border-radius: 170px 170px 8px 8px;
  border: 1px solid rgba(180, 156, 116, 0.26);
  background: radial-gradient(ellipse at 25% 15%, #e1eae5, transparent 70%),
    radial-gradient(ellipse at 90% 90%, #f0dfdd, transparent 60%), #f1ede5;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  white-space: pre-line;
  text-transform: uppercase;
  font-size: 11px;
  letter-spacing: 0.18em;
  color: #94887a;
}
.interior-page .v2-portrait-text p {
  margin: 0 0 20px;
}
.interior-page .v2-contact-grid {
  display: grid;
  grid-template-columns: 1fr 0.85fr;
  gap: 55px;
  width: min(1080px, calc(100vw - 48px));
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  padding-bottom: 85px;
}
.interior-page .v2-contact-card {
  background: rgba(255, 255, 255, 0.45);
  border: 1px solid rgba(177, 147, 98, 0.46);
  padding: 30px;
}
.interior-page .v2-contact-grid h2 {
  font-family: Georgia, "Times New Roman", serif;
  color: #243a4b;
  font-size: 26px;
  font-weight: 400;
  margin: 0 0 22px;
  padding: 0;
  border: 0;
}
.interior-page .v2-choice {
  display: flex;
  align-items: center;
  gap: 10px;
  border: 1px solid rgba(181, 153, 108, 0.48);
  padding: 11px 12px;
  margin: 8px 0;
  font-size: 14px;
  cursor: pointer;
}
.interior-page .v2-choice input {
  accent-color: #9f7c42;
}
.interior-page .v2-appointment {
  font-size: 14px;
  margin: 24px 0 12px;
}
.interior-page .v2-note {
  font-size: 12px;
  color: #857969;
  margin: 12px 0 0;
}
.interior-page .v2-disabled {
  opacity: 0.65;
  cursor: not-allowed;
}
.interior-page .v2-contact-side {
  border-top: 2px solid #b39157;
  padding-top: 17px;
}
.interior-page .v2-contact-side p {
  margin: 0 0 16px;
}
.interior-page .v2-contact-side hr {
  border: 0;
  border-top: 1px solid rgba(170, 135, 77, 0.45);
  margin: 20px 0;
}
@media (max-width: 1000px) {
  .interior-page .v2-cta {
    margin-left: calc((100vw - 100%) / -2);
    margin-right: calc((100vw - 100%) / -2);
  }
  .interior-page .v2-portrait-layout,
  .interior-page .v2-contact-grid {
    width: 100%;
    left: auto;
    transform: none;
  }
}
@media (max-width: 640px) {
  .interior-page .v2-hero {
    padding: 44px 22px 50px;
  }
  .interior-page .v2-content {
    padding: 35px 22px 0;
  }
  .interior-page .v2-portrait-layout,
  .interior-page .v2-contact-grid {
    grid-template-columns: 1fr;
    gap: 25px;
  }
  .interior-page .v2-portrait {
    width: min(270px, 100%);
    min-height: 310px;
    margin: auto;
  }
  .interior-page .v2-cta {
    margin: 45px -22px 0;
    padding: 43px 20px;
  }
  .interior-page .v2-contact-card {
    padding: 22px;
  }
}

/* Harmonisation des pages intérieures uniquement : accueil inchangé. */
.interior-page .v2-title {
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: clamp(29px, 3.25vw, 43px) !important;
  font-weight: 400 !important;
  line-height: 1.25 !important;
  letter-spacing: -0.018em !important;
  max-width: 960px;
  color: #203749 !important;
}
.interior-page .v2-eyebrow {
  color: #263c4c !important;
}
.interior-page .v2-subtitle {
  color: #263c4c !important;
}
#page-histoire .v2-content .v2-plain-line {
  color: #35434b !important;
  font-family: inherit !important;
  font-size: inherit !important;
  font-style: normal !important;
  font-weight: 400 !important;
  line-height: inherit !important;
  margin: 0 0 21px !important;
}
#page-histoire .v2-content .v2-keyphrase {
  display: flex;
  flex-direction: column;
  font-family: inherit;
  font-style: normal;
}
#page-histoire .v2-content .v2-keyphrase-title {
  color: #a17d43;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
}
#page-histoire .v2-content .v2-keyphrase-description {
  color: #263c4c;
  font-family: inherit;
  font-weight: 400;
}
#page-histoire .v2-content .v2-story-signature {
  color: #a17d43 !important;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 20px;
  font-weight: 400;
  font-style: italic;
  margin: 26px 0 16px;
}
@media (max-width: 640px) {
  .interior-page .v2-title {
    font-size: clamp(28px, 7vw, 35px) !important;
  }
}

/* Ajustements demandés : accueil et ses textes inchangés. */
/* Libellés de rubriques des pages intérieures en doré. */
html body .interior-page .v2-eyebrow {
  color: #a17d43 !important;
}
/* Logo principal : agrandi, sans recadrage, pour mieux représenter l'identité. */
/* Bandeaux de fin : fondu léger crème / sauge / ivoire, sans aplat pêche. */
html body .interior-page .v2-cta {
  background: linear-gradient(
    110deg,
    rgba(223, 235, 228, 0.5) 0%,
    rgba(251, 247, 240, 0.95) 44%,
    rgba(232, 236, 225, 0.4) 100%
  ) !important;
  border-top: 1px solid rgba(174, 152, 112, 0.35) !important;
  border-bottom: 1px solid rgba(174, 152, 112, 0.25) !important;
  box-shadow: none !important;
}
/* Le fondu s'applique également au bandeau Faisons connaissance de L'histoire. */
html body #page-histoire .v2-cta {
  background: linear-gradient(
    110deg,
    rgba(223, 235, 228, 0.5),
    rgba(251, 247, 240, 0.95) 48%,
    rgba(232, 236, 225, 0.4)
  ) !important;
}

/* Ajustements de présentation — pages intérieures uniquement, accueil inchangé. */
/* Les longues questions doivent tenir sur une ligne sur écran large. */
@media (min-width: 1001px) {
  html body #page-coaching .v2-title,
  html body #page-formation .v2-title,
  html body #page-consulting .v2-title {
    font-size: clamp(24px, 2.35vw, 31px) !important;
    max-width: none !important;
    white-space: nowrap !important;
    letter-spacing: -0.028em !important;
  }
  html body #page-coaching .v2-hero,
  html body #page-formation .v2-hero,
  html body #page-consulting .v2-hero {
    overflow: visible !important;
  }
}
@media (min-width: 641px) and (max-width: 1000px) {
  html body #page-coaching .v2-title,
  html body #page-formation .v2-title,
  html body #page-consulting .v2-title {
    font-size: clamp(24px, 2.6vw, 29px) !important;
    max-width: 100% !important;
  }
}
/* Signature de la page Histoire : bleu marine et plus affirmée, sans effet supplémentaire. */

/* Retouches finales demandées : uniquement dimensions et dernière ligne de l'accueil. */
@media (min-width: 1350px) {
  html body #page-coaching .v2-title,
  html body #page-formation .v2-title,
  html body #page-consulting .v2-title {
    font-size: clamp(32px, 2.5vw, 38px) !important;
    white-space: nowrap !important;
    letter-spacing: -0.035em !important;
  }
}
@media (min-width: 1001px) and (max-width: 1349px) {
  html body #page-coaching .v2-title,
  html body #page-formation .v2-title,
  html body #page-consulting .v2-title {
    font-size: clamp(27px, 2.45vw, 33px) !important;
    white-space: nowrap !important;
    letter-spacing: -0.035em !important;
  }
}
/* Le titre Contact reprend une dimension comparable à celle de l'accueil. */
html body #page-contact .v2-title {
  font-size: clamp(30px, 3.15vw, 43px) !important;
  line-height: 1.2 !important;
  max-width: 100% !important;
}
/* Retour à la ligne avant « Parfois » et fin de phrase insécable. */

/* Ajustements ciblés : conserver la mise en page validée. */
#page-histoire .v2-content .v2-keyphrase {
  border-top: none !important;
  padding-top: 0 !important;
}
/* Titres longs : une seule ligne si la largeur le permet, sans débordement mobile. */
@media (min-width: 1350px) {
  #page-formation .v2-cta h2,
  #page-consulting .v2-cta h2 {
    white-space: nowrap !important;
    font-size: clamp(22px, 2.05vw, 31px) !important;
    letter-spacing: -0.018em !important;
    max-width: none !important;
  }
}
@media (min-width: 1001px) and (max-width: 1349px) {
  #page-formation .v2-cta h2,
  #page-consulting .v2-cta h2 {
    white-space: nowrap !important;
    font-size: clamp(19px, 2vw, 27px) !important;
    max-width: none !important;
  }
}
@media (max-width: 1000px) {
  #page-formation .v2-cta h2,
  #page-consulting .v2-cta h2 {
    white-space: normal !important;
    overflow-wrap: normal !important;
  }
}

/* Retouches demandées : typographies et lignes longues, sans modifier les textes. */
#page-coaching .v2-cta h2,
#page-formation .v2-cta h2,
#page-consulting .v2-cta h2 {
  color: #a06711 !important;
}
@media (min-width: 1001px) {
  #page-accueil .section.soft h2 {
    max-width: none !important;
    white-space: nowrap !important;
    font-size: clamp(24px, 2.5vw, 37px) !important;
    letter-spacing: -0.025em !important;
  }
  #page-accueil .closing h2 {
    max-width: none !important;
    white-space: nowrap !important;
    font-size: clamp(21px, 2.15vw, 33px) !important;
    letter-spacing: -0.025em !important;
  }
}
@media (max-width: 1000px) {
  #page-accueil .section.soft h2,
  #page-accueil .closing h2 {
    white-space: normal !important;
    overflow-wrap: normal !important;
  }
}

/* Visuels validés : extraits sans retouche de la planche fournie */
.nt-page-visual-image {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: 3px;
}
#page-caroline .v2-portrait {
  font-size: 0 !important;
  line-height: 0 !important;
}

/* Accueil : visuel validé à la place du grand titre bleu */
#page-accueil .nt-home-image-instead-of-title {
  text-align: center;
}
#page-accueil .hero {
  display: block !important;
}
#page-accueil .hero-copy {
  width: 100% !important;
  max-width: 1050px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-top: 12px !important;
}

/* Accueil : le logo illustré remplace intégralement le titre bleu en doublon. */

/* Accueil : fondu périphérique sans retoucher le visuel */
#page-accueil .nt-home-image-instead-of-title {
  border: 0 !important;
  box-shadow: none !important;
}
#page-accueil .nt-home-image-instead-of-title img {
  border: 0 !important;
}

/* Présentation photo + texte, comme la page À la rencontre de… */
#page-histoire .nt-editorial-photo-layout,
#page-coaching .nt-editorial-photo-layout,
#page-formation .nt-editorial-photo-layout,
#page-consulting .nt-editorial-photo-layout {
  display: grid;
  grid-template-columns: minmax(210px, 34%) minmax(0, 1fr);
  gap: clamp(24px, 3.8vw, 54px);
  margin: 18px 0 42px;
}
.nt-editorial-photo-frame {
  width: 100%;
  overflow: hidden;
  border-radius: 5px;
  background: #f1eee9;
}
.nt-editorial-photo-frame img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  max-height: none;
}
.nt-editorial-photo-text p:first-child {
  margin-top: 0;
}
/* Fondu bien visible dans le fond beige, sans retoucher le logo */
@media (max-width: 640px) {
  #page-histoire .nt-editorial-photo-layout,
  #page-coaching .nt-editorial-photo-layout,
  #page-formation .nt-editorial-photo-layout,
  #page-consulting .nt-editorial-photo-layout {
    grid-template-columns: 1fr;
    gap: 22px;
  }
  .nt-editorial-photo-frame {
    max-width: 370px;
    margin: 0 auto;
  }
}

/* Alignement vertical des encarts avec le texte d'introduction */
#page-histoire .nt-editorial-photo-layout,
#page-coaching .nt-editorial-photo-layout,
#page-formation .nt-editorial-photo-layout,
#page-consulting .nt-editorial-photo-layout {
  align-items: center !important;
}
/* Portrait sobre et rectangulaire, sans arche ni décor géométrique */
#page-caroline .v2-portrait {
  border-radius: 5px !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}
#page-caroline .v2-portrait::before,
#page-caroline .v2-portrait::after {
  content: none !important;
  display: none !important;
}
#page-caroline .v2-portrait img {
  display: block;
  border-radius: 5px !important;
}
/* Contact : remonter le formulaire et placer un petit visuel sous la colonne de droite */
#page-contact .v2-hero {
  padding-bottom: 28px !important;
}
#page-contact .v2-content {
  padding-top: 20px !important;
}

/* Image d’accueil définitivement validée : pas de masque ni effet ajouté. */
#page-accueil .nt-home-image-instead-of-title {
  overflow: visible !important;
}
#page-accueil .nt-home-image-instead-of-title img {
  opacity: 1 !important;
  border-radius: 0 !important;
}
@media (max-width: 640px) {
  #page-accueil .nt-home-image-instead-of-title {
    margin-bottom: 12px !important;
  }
}

/* Retouches ciblées demandées : accueil plus discret */
#page-accueil .nt-home-image-instead-of-title img {
  object-fit: contain !important;
  box-shadow: none !important;
}
/* Portrait légèrement abaissé et centré par rapport au texte */
#page-caroline .v2-portrait-layout {
  align-items: center !important;
}
#page-caroline .v2-portrait {
  align-self: center !important;
}
/* Contact : la photo devient un visuel éditorial intégré à la colonne contact,
   plutôt qu'une vignette collée en bas à droite. */

/* Accueil : le visuel est réellement détouré avec transparence dans le PNG. */
#page-accueil .nt-home-image-instead-of-title {
  margin: 0 auto 18px !important;
  background: transparent !important;
}
#page-accueil .nt-home-image-instead-of-title img {
  display: block !important;
  width: 100% !important;
  max-height: none !important;
  height: auto !important;
  mask-image: none !important;
  -webkit-mask-image: none !important;
  background: transparent !important;
  filter: none !important;
}
/* Contact : mise en valeur des deux possibilités d'échange sans photo. */

/* Navigation épurée et centrée */
.unified-header {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
}
.unified-header nav {
  display: flex !important;
  position: static !important;
  justify-content: center !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
  gap: clamp(8px, 1.45vw, 24px) !important;
  overflow: visible !important;
  width: auto !important;
  max-width: 100% !important;
}
.unified-header nav a {
  white-space: nowrap !important;
  font-size: clamp(11px, 1.04vw, 15px) !important;
}
.unified-header button.menu {
  display: none !important;
}
/* Accueil : même image détourée, à peine agrandie */
#page-accueil .nt-home-image-instead-of-title {
  width: min(100%, 535px) !important;
  max-width: 535px !important;
}
/* Contact : photographie sobre dans la colonne droite, intégrée à l'ensemble */
@media (max-width: 1000px) {
  .unified-header {
    justify-content: center !important;
    min-height: 60px !important;
    position: relative !important;
  }
  .unified-header button.menu {
    gap: 8px;
    font-size: 16px !important;
    cursor: pointer;
    z-index: 10;
  }
  .unified-header nav {
    display: none !important;
    position: absolute !important;
    top: 100% !important;
    left: 12px !important;
    right: 12px !important;
    width: auto !important;
    max-width: none !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
    overflow: visible !important;
    padding: 9px 12px !important;
    border: 1px solid rgba(157, 126, 73, 0.22);
    border-radius: 9px;
    background: #faf7f1 !important;
    box-shadow: 0 12px 30px rgba(30, 30, 30, 0.12);
  }
  .unified-header nav a {
    display: block !important;
    white-space: normal !important;
    font-size: 15px !important;
    text-align: center !important;
    padding: 11px 8px !important;
  }
  #page-accueil .nt-home-image-instead-of-title {
    width: min(100%, 420px) !important;
    max-width: 420px !important;
  }
}

/* En-tête beige et trait doré, harmonisés avec la maquette */
.unified-header {
  background: linear-gradient(110deg, #fbf8f2 0%, #f5eee6 58%, #f7f1ed 100%) !important;
  border-bottom: 1px solid rgba(183, 145, 89, 0.27) !important;
  box-shadow: 0 3px 15px rgba(90, 72, 55, 0.045) !important;
}
.unified-header button.menu {
  background: transparent !important;
  border: 1px solid rgba(164, 124, 68, 0.45) !important;
  border-radius: 7px !important;
  color: #173149 !important;
  box-shadow: none !important;
  padding: 9px 15px !important;
  font-family: inherit !important;
  font-weight: 600 !important;
  letter-spacing: 0.025em !important;
}
.nt-burger-icon {
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  width: 21px;
  height: 20px;
  margin-right: 8px;
  vertical-align: middle;
}
.nt-burger-icon i {
  display: block;
  width: 21px;
  height: 2px;
  background: #a77d43;
  border-radius: 3px;
}
@media (max-width: 1000px) {
  .unified-header button.menu {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 130px !important;
    min-height: 45px !important;
  }
  .unified-header nav {
    z-index: 99999 !important;
  }
  .unified-header.nt-menu-open nav {
    display: flex !important;
  }
}

/* Contact : coordonnées à gauche, réservation au centre, visuel déjà validé à droite. */
#page-contact .v2-contact-grid {
  display: grid !important;
}
#page-contact .v2-contact-side {
  min-width: 0;
}
#page-contact .v2-contact-card {
  min-width: 0;
  align-self: center;
}
#page-contact .nt-contact-visual-panel {
  min-width: 0;
}
#page-contact .nt-contact-visual-panel img {
  display: block;
}
@media (max-width: 1000px) {
  #page-contact .nt-contact-visual-panel {
    justify-self: center;
  }
}

/* Ajustement limité à la page Contact : portrait, formulaire, coordonnées */
#page-contact .v2-contact-grid {
  width: min(1320px, calc(100vw - 52px)) !important;
  grid-template-columns: minmax(0, 1.06fr) minmax(0, 1.16fr) minmax(0, 0.82fr) !important;
  gap: clamp(18px, 2.4vw, 38px) !important;
  align-items: center !important;
  padding-bottom: 72px !important;
}
#page-contact .nt-contact-visual-panel {
  grid-column: auto !important;
  align-self: center !important;
  border-radius: 8px !important;
  margin: 0 !important;
}
#page-contact .nt-contact-visual-panel img {
  border-radius: 8px !important;
  -webkit-mask-image: linear-gradient(
    to right,
    transparent 0%,
    black 5%,
    black 95%,
    transparent 100%
  ) !important;
  mask-image: linear-gradient(
    to right,
    transparent 0%,
    black 5%,
    black 95%,
    transparent 100%
  ) !important;
}
#page-contact .v2-contact-card {
  width: 100% !important;
  padding: clamp(26px, 3vw, 42px) !important;
  background: rgba(255, 255, 255, 0.65) !important;
  box-shadow: 0 12px 30px rgba(42, 47, 49, 0.045);
}
#page-contact .v2-contact-card h2 {
  font-size: clamp(25px, 2.15vw, 31px) !important;
}
#page-contact .v2-choice {
  padding: 15px 13px !important;
  font-size: 15px !important;
  line-height: 1.4 !important;
}
#page-contact .v2-contact-side {
  justify-content: center !important;
  align-self: center !important;
}
@media (max-width: 1000px) {
  #page-contact .v2-contact-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr) !important;
  }
  #page-contact .v2-contact-side {
    grid-column: 1/-1 !important;
    max-width: 600px !important;
    width: 100% !important;
    justify-self: center !important;
  }
}
@media (max-width: 640px) {
  #page-contact .v2-contact-grid {
    width: 100% !important;
    grid-template-columns: 1fr !important;
    gap: 22px !important;
  }
  #page-contact .nt-contact-visual-panel {
    justify-self: center !important;
  }
  #page-contact .v2-contact-side {
    grid-column: auto !important;
  }
  #page-contact .v2-contact-card {
    padding: 24px !important;
  }
}

/* La photo reste strictement identique ; seul son affichage change. */
@media (min-width: 1001px) {
  #page-contact .v2-contact-grid {
    gap: clamp(24px, 2.7vw, 42px) !important;
  }
}
#page-contact .v2-contact-side {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 0 !important;
  padding: 24px 18px 24px 26px !important;
  border-left: 1px solid rgba(177, 140, 75, 0.34) !important;
}
#page-contact .v2-contact-side .v2-eyebrow {
  margin: 0 0 16px !important;
  line-height: 1.5 !important;
}
#page-contact .v2-contact-side h2 {
  margin: 0 0 24px !important;
  line-height: 1.23 !important;
}
#page-contact .v2-contact-side p {
  margin: 0 0 15px !important;
  line-height: 1.75 !important;
  overflow-wrap: anywhere !important;
}
#page-contact .v2-contact-side .v2-smallgold {
  margin: 0 0 23px !important;
  font-weight: 600 !important;
}
#page-contact .v2-contact-side hr {
  width: 100% !important;
  margin: 12px 0 26px !important;
  border: 0 !important;
  border-top: 1px solid rgba(177, 140, 75, 0.34) !important;
}
@media (min-width: 641px) and (max-width: 1000px) {
  #page-contact .nt-contact-visual-panel {
    justify-self: center !important;
  }
}
@media (max-width: 640px) {
  #page-contact .v2-contact-side {
    padding: 22px 20px !important;
  }
}

/* Agrandissement léger des cinq portraits uniquement, sans toucher aux fichiers image. */
@media (min-width: 641px) {
  #page-histoire .nt-editorial-photo-layout,
  #page-coaching .nt-editorial-photo-layout,
  #page-formation .nt-editorial-photo-layout,
  #page-consulting .nt-editorial-photo-layout {
    gap: clamp(22px, 3vw, 44px) !important;
  }
  #page-caroline .v2-portrait-layout {
    gap: clamp(24px, 3vw, 48px) !important;
  }
  #page-histoire .nt-editorial-photo-layout,
  #page-coaching .nt-editorial-photo-layout,
  #page-formation .nt-editorial-photo-layout,
  #page-consulting .nt-editorial-photo-layout,
  #page-caroline .v2-portrait-layout {
    grid-template-columns: 320px minmax(0, 1fr) !important;
    align-items: center !important;
  }
}

/* Les six photographies partagent le même espace d'affichage, sans retouche des images. */
#page-histoire .nt-editorial-photo-frame,
#page-coaching .nt-editorial-photo-frame,
#page-formation .nt-editorial-photo-frame,
#page-consulting .nt-editorial-photo-frame,
#page-caroline .v2-portrait,
#page-contact .nt-contact-visual-panel {
  width: 320px !important;
  max-width: 100% !important;
  height: 300px !important;
  min-height: 0 !important;
  margin-left: auto !important;
  margin-right: auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: transparent !important;
}
#page-histoire .nt-editorial-photo-frame img,
#page-coaching .nt-editorial-photo-frame img,
#page-formation .nt-editorial-photo-frame img,
#page-consulting .nt-editorial-photo-frame img,
#page-caroline .v2-portrait img,
#page-contact .nt-contact-visual-panel img {
  width: 100% !important;
  height: 100% !important;
  max-height: 300px !important;
  object-fit: contain !important;
  object-position: center center !important;
}
@media (max-width: 640px) {
  #page-histoire .nt-editorial-photo-frame,
  #page-coaching .nt-editorial-photo-frame,
  #page-formation .nt-editorial-photo-frame,
  #page-consulting .nt-editorial-photo-frame,
  #page-caroline .v2-portrait,
  #page-contact .nt-contact-visual-panel {
    width: min(300px, 100%) !important;
    height: 280px !important;
  }
  #page-histoire .nt-editorial-photo-frame img,
  #page-coaching .nt-editorial-photo-frame img,
  #page-formation .nt-editorial-photo-frame img,
  #page-consulting .nt-editorial-photo-frame img,
  #page-caroline .v2-portrait img,
  #page-contact .nt-contact-visual-panel img {
    max-height: 280px !important;
  }
}

/* Seule la photo Contact est agrandie de 6 % par rapport à la version précédente. */
#page-contact .nt-contact-visual-panel {
  width: 340px !important;
  height: 318px !important;
  max-width: 100% !important;
}
#page-contact .nt-contact-visual-panel img {
  width: 100% !important;
  height: 100% !important;
  max-height: 318px !important;
  object-fit: contain !important;
}
@media (max-width: 640px) {
  #page-contact .nt-contact-visual-panel {
    width: min(318px, 100%) !important;
    height: 297px !important;
  }
  #page-contact .nt-contact-visual-panel img {
    max-height: 297px !important;
  }
}

/* Ajustement visible : seule la photographie Contact change. */
@media (min-width: 1001px) {
  #page-contact .v2-contact-grid {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.23fr) minmax(0, 0.93fr) !important;
  }
  #page-contact .nt-contact-visual-panel {
    width: 380px !important;
    height: 356px !important;
    max-width: 100% !important;
    justify-self: center !important;
  }
  #page-contact .nt-contact-visual-panel img {
    width: 100% !important;
    height: 100% !important;
    max-height: none !important;
    object-fit: contain !important;
  }
}
@media (min-width: 641px) and (max-width: 1000px) {
  #page-contact .nt-contact-visual-panel {
    width: 370px !important;
    height: 347px !important;
    max-width: 100% !important;
  }
  #page-contact .nt-contact-visual-panel img {
    height: 100% !important;
    max-height: none !important;
    object-fit: contain !important;
  }
}
@media (max-width: 640px) {
  #page-contact .nt-contact-visual-panel {
    width: min(340px, 100%) !important;
    height: auto !important;
  }
  #page-contact .nt-contact-visual-panel img {
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
  }
}

/* Accueil : introduction directe des trois activités, sans anciens rectangles de valeurs */
#page-accueil .hero {
  padding-bottom: 12px !important;
}
#page-accueil .hero-copy {
  margin-bottom: 0 !important;
}
#page-accueil section.soft .editorial-intro {
  max-width: 850px;
  margin: 40px auto 5px;
  text-align: center;
}
#page-accueil section.soft .editorial-intro p {
  margin: 0 0 18px;
  line-height: 1.8;
}
@media (max-width: 640px) {
  #page-accueil section.soft .editorial-intro {
    text-align: left;
    margin-top: 28px;
  }
}

#page-accueil .services {
  align-items: stretch;
  gap: clamp(14px, 2vw, 26px);
}
#page-accueil .services > .service {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  padding: clamp(22px, 2.4vw, 34px);
  height: 100%;
}
#page-accueil .services > .service h3 {
  margin: 2px 0 4px;
}
#page-accueil .services > .service .nt-activity-intro {
  margin: 0;
  line-height: 1.6;
}
#page-accueil .services > .service .nt-activity-domains {
  margin: 0 0 12px;
  font-weight: 600;
  line-height: 1.6;
}
#page-accueil .services > .service > a {
  margin-top: auto;
  padding-top: 12px;
}

/* Menu déroulant visible et accessible sur ordinateur, tablette et téléphone. */
html body header.unified-header {
  min-height: 78px !important;
  height: auto !important;
  padding: 13px 22px !important;
  overflow: visible !important;
  display: flex !important;
  justify-content: center !important;
  position: relative !important;
  z-index: 10000 !important;
  background: linear-gradient(105deg, #fbf8f2, #f4eee7 60%, #f7f0ee) !important;
  border-bottom: 1px solid #d6bc90 !important;
}
html body header.unified-header button.menu {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: relative !important;
  z-index: 10002 !important;
  cursor: pointer !important;
  background: #fffdf9 !important;
  border: 1px solid #b7925e !important;
  border-radius: 9px !important;
}
html body header.unified-header .nt-burger-icon {
  display: inline-flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  gap: 5px !important;
  width: 24px !important;
  height: 22px !important;
  margin: 0 !important;
}
html body header.unified-header .nt-burger-icon i {
  display: block !important;
  width: 24px !important;
  height: 2.5px !important;
  background: #a77d43 !important;
  border-radius: 5px !important;
  opacity: 1 !important;
}
html body header.unified-header nav {
  display: none !important;
  position: absolute !important;
  top: calc(100% - 2px) !important;
  left: 50% !important;
  right: auto !important;
  transform: translateX(-50%) !important;
  width: min(480px, calc(100vw - 28px)) !important;
  max-width: none !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  gap: 0 !important;
  overflow: visible !important;
  padding: 13px 18px !important;
  margin: 0 !important;
  background: #fffaf4 !important;
  border: 1px solid #dcc7a5 !important;
  border-radius: 0 0 13px 13px !important;
  box-shadow: 0 18px 35px rgba(37, 41, 44, 0.16) !important;
  z-index: 10001 !important;
}
html body header.unified-header.nt-menu-open nav {
  display: flex !important;
}
html body header.unified-header nav a {
  display: block !important;
  text-align: center !important;
  white-space: normal !important;
  font-size: 16px !important;
  line-height: 1.45 !important;
  padding: 12px 10px !important;
  border-bottom: 1px solid rgba(178, 151, 108, 0.17) !important;
}
html body header.unified-header nav a:last-child {
  border-bottom: 0 !important;
}
html body header.unified-header nav .nav-contact {
  display: block !important;
  margin: 12px 0 3px !important;
  padding: 13px !important;
  background: #a77d43 !important;
  color: white !important;
  border-radius: 6px !important;
}
@media (max-width: 640px) {
  html body header.unified-header {
    min-height: 68px !important;
    padding: 9px 14px !important;
  }
  html body header.unified-header nav a {
    font-size: 15px !important;
    padding: 11px 8px !important;
  }
}

/* Placement du bouton Menu en haut à droite sur tous les écrans. */
html body header.unified-header {
  align-items: stretch !important;
}
html body header.unified-header button.menu {
  align-self: flex-end !important;
  margin-left: auto !important;
  margin-right: 0 !important;
  justify-self: end !important;
}
@media (max-width: 1000px) {
  html body header.unified-header button.menu {
    align-self: flex-end !important;
    margin-left: auto !important;
    margin-right: 0 !important;
  }
}

/* Intitulé plus fin, plus petit, discret ; menu conservé à droite. */
html body header.unified-header button.menu {
  font-size: 13px !important;
  font-weight: 400 !important;
  letter-spacing: 0.025em !important;
  min-width: 132px !important;
  min-height: 43px !important;
  padding: 8px 15px !important;
  gap: 9px !important;
  color: #75614d !important;
  box-shadow: none !important;
}
html body header.unified-header button.menu .nt-burger-label {
  font-size: 13px !important;
  font-weight: 400 !important;
  letter-spacing: 0.025em !important;
  text-transform: none !important;
}
@media (max-width: 640px) {
  html body header.unified-header button.menu {
    min-width: 128px !important;
    min-height: 42px !important;
    padding: 8px 13px !important;
  }
}

/* Navigation déroulante : même finesse pour toutes les rubriques. */
html body header.unified-header nav a,
html body header.unified-header nav a:not(.nav-contact) {
  font-weight: 400 !important;
  letter-spacing: 0.015em !important;
}
/* Lien contact : encadrement doré complet, y compris le bord inférieur. */
html body header.unified-header nav a.nav-contact,
html body header.unified-header nav a.nav-contact:last-child {
  box-sizing: border-box !important;
  display: block !important;
  width: 100% !important;
  margin: 12px 0 3px !important;
  padding: 12px 13px !important;
  font-weight: 400 !important;
  color: #8b672e !important;
  background: #fffaf4 !important;
  border: 1.5px solid #b58a4e !important;
  border-bottom: 1.5px solid #b58a4e !important;
  border-radius: 5px !important;
  text-align: center !important;
}

/* Ajustements validés exclusivement pour la page L’histoire */
#page-histoire .v2-content p:not(.v2-keyphrase):not(.v2-plain-line) {
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
}
#page-histoire .v2-keyphrase {
  margin-top: 12px;
  margin-bottom: 24px;
}
#page-histoire .v2-keyphrase .v2-keyphrase-description {
  display: block;
}
@media (max-width: 640px) {
  #page-histoire .v2-content p:not(.v2-keyphrase):not(.v2-plain-line) {
    text-align: left;
  }
}

/* Harmonisation demandée : justification des paragraphes sur les sept pages. */
#page-accueil p,
#page-histoire p,
#page-coaching p,
#page-formation p,
#page-consulting p,
#page-caroline p,
#page-contact p {
  text-align: justify !important;
  text-justify: inter-word;
  hyphens: auto;
  -webkit-hyphens: auto;
}
/* Garder les légendes, signatures et phrases d'accroche centrées. */
#page-histoire .v2-keyphrase {
  text-align: center !important;
}

/* Harmonisation de la lecture : mots entiers sur toutes les pages. */
#page-accueil p,
.interior-page p,
#page-accueil .intro-text p,
.interior-page .v2-content p {
  hyphens: none !important;
  -webkit-hyphens: none !important;
  -ms-hyphens: none !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
}
/* Paragraphes : justification sans césure sur écrans assez larges. */
.interior-page
  .v2-content
  p:not(.v2-keyphrase):not(.v2-story-signature):not(.v2-story-author):not(.v2-story-author-detail),
#page-accueil .intro-text p {
  text-align: justify !important;
  text-justify: inter-word;
}
/* Titres des trois axes et leurs intentions, centrés et aérés. */
#page-histoire .v2-content h2.nt-intention-heading {
  text-align: center !important;
  max-width: 820px;
  margin: 36px auto 10px !important;
  line-height: 1.35;
}
#page-histoire .v2-content .v2-keyphrase {
  text-align: center !important;
  max-width: 780px;
  margin: 0 auto 28px !important;
  gap: 5px !important;
  align-items: center;
}
#page-histoire .v2-content .v2-keyphrase-title {
  text-align: center !important;
  font-size: clamp(17px, 1.7vw, 19px) !important;
  line-height: 1.5 !important;
}
#page-histoire .v2-content .v2-keyphrase-description {
  text-align: center !important;
  font-size: clamp(14px, 1.35vw, 15.5px) !important;
  line-height: 1.65 !important;
  max-width: 720px;
}
/* Sur téléphone, la justification provoque des blancs excessifs :
   retour à l'alignement naturel et mots toujours entiers. */
@media (max-width: 640px) {
  .interior-page .v2-content p:not(.v2-keyphrase),
  #page-accueil .intro-text p,
  #page-accueil p {
    text-align: left !important;
  }
  #page-histoire .v2-content .v2-keyphrase,
  #page-histoire .v2-content .v2-keyphrase-description,
  #page-histoire .v2-content .v2-keyphrase-title {
    text-align: center !important;
  }
  #page-histoire .v2-content h2.nt-intention-heading {
    text-align: center !important;
    margin-top: 30px !important;
  }
}

/* Correction finale : charte bleu profond des pages intérieures, comme l'accueil. */
.interior-page .v2-page {
  color: var(--navy) !important;
}
.interior-page .v2-content {
  color: var(--navy) !important;
}
.interior-page
  .v2-content
  p:not(.v2-keyphrase):not(.v2-story-author-detail):not(.nt-portrait-caption) {
  color: var(--navy) !important;
}
.interior-page .v2-content h2:not(.nt-intention-heading) {
  color: var(--navy) !important;
}
/* La photo conserve ses dimensions et son emplacement ; la légende ne prend aucune place dans la grille. */
#page-histoire .nt-editorial-photo-frame,
#page-coaching .nt-editorial-photo-frame,
#page-formation .nt-editorial-photo-frame,
#page-consulting .nt-editorial-photo-frame,
#page-caroline .v2-portrait,
#page-contact .nt-contact-visual-panel {
  position: relative !important;
  overflow: visible !important;
}
.nt-portrait-caption {
  position: absolute;
  top: calc(100% + 7px);
  left: 0;
  width: 100%;
  text-align: center !important;
  display: flex;
  flex-direction: column;
  gap: 1px;
  pointer-events: none;
  line-height: 1.3;
  z-index: 2;
  white-space: normal;
}
.nt-portrait-caption-name {
  color: #a77d43 !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: 0.02em;
}
.nt-portrait-caption-line {
  color: #a77d43 !important;
  font-size: 11px !important;
  font-style: italic;
  font-weight: 400 !important;
}
@media (max-width: 640px) {
  .nt-portrait-caption {
    top: calc(100% + 5px);
  }
  .nt-portrait-caption-name {
    font-size: 11px !important;
  }
  .nt-portrait-caption-line {
    font-size: 10px !important;
  }
}

/* Uniformisation ciblée des six signatures, sans déplacer les images. */
#page-histoire .nt-portrait-caption,
#page-coaching .nt-portrait-caption,
#page-formation .nt-portrait-caption,
#page-consulting .nt-portrait-caption,
#page-caroline .nt-portrait-caption,
#page-contact .nt-portrait-caption {
  position: absolute !important;
  top: calc(100% + 7px) !important;
  left: 0 !important;
  right: auto !important;
  bottom: auto !important;
  width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 1px !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: center !important;
  line-height: 1.3 !important;
  font-family: "Avenir Next", Avenir, "Segoe UI", sans-serif !important;
  font-style: normal !important;
  font-weight: 400 !important;
  letter-spacing: normal !important;
  transform: none !important;
  background: none !important;
  border: 0 !important;
}
#page-histoire .nt-portrait-caption-name,
#page-coaching .nt-portrait-caption-name,
#page-formation .nt-portrait-caption-name,
#page-consulting .nt-portrait-caption-name,
#page-caroline .nt-portrait-caption-name,
#page-contact .nt-portrait-caption-name {
  display: block !important;
  color: #a77d43 !important;
  font-family: inherit !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  font-style: normal !important;
  line-height: 1.3 !important;
  letter-spacing: 0.02em !important;
  text-transform: none !important;
}
#page-histoire .nt-portrait-caption-line,
#page-coaching .nt-portrait-caption-line,
#page-formation .nt-portrait-caption-line,
#page-consulting .nt-portrait-caption-line,
#page-caroline .nt-portrait-caption-line,
#page-contact .nt-portrait-caption-line {
  display: block !important;
  color: #a77d43 !important;
  font-family: inherit !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  font-style: italic !important;
  line-height: 1.3 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}
@media (max-width: 640px) {
  #page-caroline .nt-portrait-caption {
    top: calc(100% + 5px) !important;
  }
}

/* Ajustement limité à la carte Coaching de l’accueil. */
#page-accueil .services .service:first-child h3 {
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

/* Contact en 2 colonnes, sans changer le HTML :
   photo + coordonnées à gauche (1/3) | réservation Brevo à droite (2/3), sur toute la hauteur.
   Tablette : réservation en haut, photo et coordonnées côte à côte dessous. Mobile : tout empilé. */
#page-contact .v2-contact-grid {
  width: min(1180px, calc(100vw - 52px)) !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) !important;
  grid-template-rows: auto 1fr !important;
  grid-template-areas:
    "photo reservation"
    "coordonnees reservation" !important;
  column-gap: clamp(28px, 3.5vw, 56px) !important;
  row-gap: 64px !important; /* place pour la légende sous la photo */
  align-items: start !important;
}
#page-contact .nt-contact-visual-panel {
  grid-area: photo !important;
  width: 100% !important;
}
#page-contact .v2-contact-card {
  grid-area: reservation !important;
  align-self: start !important;
}
#page-contact .v2-contact-side {
  grid-area: coordonnees !important;
  grid-column: auto !important;
  max-width: none !important;
  justify-self: stretch !important;
  border-left: 0 !important;
  border-top: 1px solid rgba(177, 140, 75, 0.34) !important;
  padding: 24px 0 0 !important;
}
#page-contact .v2-contact-side p {
  text-align: left !important;
}
#page-contact .v2-contact-card h2 {
  margin-bottom: 18px !important;
}
#page-contact .v2-contact-card iframe {
  display: block;
  width: 100%;
  height: 720px;
  border: 0;
  border-radius: 6px;
  background: #fff;
}
@media (max-width: 1000px) {
  #page-contact .v2-contact-grid {
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    grid-template-rows: auto auto !important;
    grid-template-areas:
      "reservation reservation"
      "photo coordonnees" !important;
    row-gap: 40px !important;
    align-items: center !important;
  }
  #page-contact .v2-contact-side {
    border-top: 0 !important;
    border-left: 1px solid rgba(177, 140, 75, 0.34) !important;
    padding: 8px 0 8px 24px !important;
  }
}
@media (max-width: 640px) {
  #page-contact .v2-contact-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-areas:
      "reservation"
      "photo"
      "coordonnees" !important;
    row-gap: 56px !important;
  }
  #page-contact .v2-contact-side {
    border-left: 0 !important;
    border-top: 1px solid rgba(177, 140, 75, 0.34) !important;
    padding: 22px 0 0 !important;
  }
  #page-contact .v2-contact-card iframe {
    height: 760px;
  }
}

/* Contact : mention du numéro professionnel en plus petit */
#page-contact .v2-contact-side .nt-mention-pro {
  font-size: 13px !important;
  line-height: 1.5 !important;
  opacity: 0.8;
}

/* Contact : numéro de téléphone cliquable, même style que l'adresse e-mail */
#page-contact .v2-contact-side .v2-smallgold a {
  color: inherit;
  text-decoration: none;
}
#page-contact .v2-contact-side .v2-smallgold a:hover {
  text-decoration: underline;
}

/* Pied de page : le numéro de téléphone prend le style du lien (comme l'e-mail) */
.footer-contact a span {
  color: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
}
