/*
Theme Name: Tisser l'intimité
Theme URI: https://github.com/bcurabet/TisserLIntimite
Author: Benjamin Curabet
Description: Thème sur mesure pour « Tisser l'intimité » — Élise, sexothérapeute. Porté fidèlement des maquettes validées par la cliente : palette rose/nude, vagues entre sections, coins arrondis asymétriques, typographies Lora, Nunito Sans et Caveat.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: tisser-lintimite
*/

/* -------------------------------------------------------------------------
   1. Palette (issue des maquettes .dc.html — ne pas « améliorer »)
   L'indigo #0C0438 n'existe que dans les traits des illustrations SVG :
   jamais en fond, jamais sur un bouton.
   ------------------------------------------------------------------------- */
:root {
  --nude: #FAF1EA;        /* fond principal */
  --sable: #F3DFD6;       /* fond de section alterné 1 */
  --rose-poudre: #F0D5CC; /* fond de section alterné 2 + footer */
  --creme: #FBF3EE;       /* fond des cartes */
  --rose: #B5647A;        /* accent principal, boutons, liens */
  --rose-fonce: #A1546A;  /* hover des boutons */
  --terracotta: #A1483A;  /* hover des liens */
  --prune: #5A3A46;       /* grands titres */
  --aubergine: #6E4450;   /* titres secondaires, liens de nav */
  --taupe: #6E5E60;       /* texte secondaire */
  --encre: #463C3C;       /* texte courant */
  --saumon: #E39BA6;      /* pastilles, pointillés */
  --peche: #F0B49E;       /* pastilles, sélection */
  --caramel: #C98E62;     /* accroches Caveat secondaires */
  --sable-rose: #F6E3D8;  /* troisième fond des chips « raisons » */
  --blanc-rose: #FFF6F1;  /* texte des boutons pleins */
}

/* -------------------------------------------------------------------------
   2. Base
   ------------------------------------------------------------------------- */
html,
body {
  margin: 0;
  padding: 0;
  background: var(--nude);
}

body {
  font-family: 'Nunito Sans', sans-serif;
  color: var(--encre);
}

a {
  color: var(--rose);
}

a:hover {
  color: var(--terracotta);
}

::selection {
  background: var(--peche);
  color: var(--prune);
}

img {
  max-width: 100%;
  height: auto;
}

input::placeholder,
textarea::placeholder {
  color: #B99A9E; /* rose grisé des maquettes */
  opacity: 1;
}

details summary {
  list-style: none;
}

details summary::-webkit-details-marker {
  display: none;
}

.site {
  background: var(--nude);
  min-height: 100vh;
  overflow-x: hidden;
}

/* Accessibilité : focus visibles + texte lecteur d'écran + lien d'évitement */
a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--rose);
  outline-offset: 2px;
}

.screen-reader-text {
  border: 0;
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  word-wrap: normal !important;
}

.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  background: var(--rose);
  color: var(--blanc-rose);
  font-weight: 700;
  padding: 12px 24px;
  border-radius: 0 0 16px 0;
  z-index: 100;
}

.skip-link:focus {
  left: 0;
  color: var(--blanc-rose);
}

/* -------------------------------------------------------------------------
   3. Composants partagés
   ------------------------------------------------------------------------- */

/* Boutons pilule roses */
.btn {
  display: inline-block;
  background: var(--rose);
  color: var(--blanc-rose);
  font-family: 'Nunito Sans', sans-serif;
  font-weight: 700;
  text-decoration: none;
  border: none;
  border-radius: 999px;
  cursor: pointer;
}

.btn:hover {
  background: var(--rose-fonce);
  color: var(--blanc-rose);
}

.btn--nav {
  font-size: 15px;
  padding: 12px 24px;
}

.btn--hero {
  font-size: 17px;
  padding: 16px 32px;
  box-shadow: 0 10px 30px rgba(181, 100, 122, 0.22);
}

.btn--cta {
  font-size: 17px;
  padding: 16px 34px;
  box-shadow: 0 10px 30px rgba(181, 100, 122, 0.22);
}

.btn--md {
  font-size: 16px;
  padding: 14px 30px;
  box-shadow: 0 10px 30px rgba(181, 100, 122, 0.22);
}

.btn--card {
  font-size: 16px;
  padding: 14px 28px;
  text-align: center;
  margin-top: auto;
}

.btn--form {
  font-size: 16px;
  padding: 15px 30px;
  align-self: flex-start;
  box-shadow: 0 10px 30px rgba(181, 100, 122, 0.22);
}

/* Lien souligné saumon */
.link-underline {
  color: var(--rose);
  font-weight: 700;
  font-size: 15.5px;
  text-decoration: none;
  border-bottom: 1.5px solid var(--saumon);
  padding-bottom: 2px;
}

.link-underline:hover {
  color: var(--terracotta);
}

.link-underline--sm {
  font-size: 15px;
  padding-bottom: 1px;
}

/* Vagues de transition entre sections (le remplissage est porté par le SVG) */
.wave {
  line-height: 0;
}

.wave svg {
  display: block;
  width: 100%;
  height: clamp(36px, 5vw, 70px);
}

.wave--from-nude { background: var(--nude); }
.wave--from-sable { background: var(--sable); }
.wave--from-rose { background: var(--rose-poudre); }

/* Gribouillis décoratifs */
.squiggle {
  display: block;
}

.squiggle--left {
  margin-bottom: 10px;
}

.squiggle--center {
  margin: 0 auto 8px;
}

.squiggle--large {
  margin: 0 auto 14px;
}

.squiggle--mirror {
  transform: scaleX(-1);
}

/* Accroches manuscrites et titres */
.kicker {
  font-family: 'Caveat', cursive;
  font-size: 24px;
  color: var(--rose);
  margin-bottom: 10px;
}

.kicker--caramel {
  color: var(--caramel);
}

.page-title {
  font-family: 'Lora', serif;
  font-weight: 500;
  font-size: clamp(30px, 3.8vw, 44px);
  line-height: 1.25;
  color: var(--prune);
  margin: 0 0 20px;
  text-wrap: pretty;
}

.page-title--xl {
  font-size: clamp(32px, 4.2vw, 50px);
  line-height: 1.22;
  margin-bottom: 22px;
}

.section-title {
  font-family: 'Lora', serif;
  font-weight: 500;
  font-size: clamp(26px, 3vw, 36px);
  color: var(--prune);
  margin: 0 0 18px;
  text-wrap: pretty;
}

.section-title--aubergine {
  color: var(--aubergine);
}

.section-title--lg {
  font-size: clamp(27px, 3.2vw, 38px);
}

.section-title--sm {
  font-size: clamp(24px, 2.8vw, 32px);
}

/* CTA de fin de page (Démarche, Témoignages, À propos ; variante Tarifs) */
.cta-finale {
  text-align: center;
  padding: clamp(20px, 3vw, 40px) clamp(20px, 5vw, 64px) clamp(40px, 4vw, 60px);
}

.cta-finale--sable {
  background: var(--sable);
}

.cta-finale__inner {
  max-width: 680px;
  margin: 0 auto;
}

.cta-finale__texte {
  font-family: 'Caveat', cursive;
  font-size: clamp(27px, 3.4vw, 36px);
  line-height: 1.35;
  color: var(--aubergine);
  margin: 0 0 26px;
  text-wrap: pretty;
}

.cta-finale--question {
  padding: clamp(16px, 2vw, 32px) clamp(20px, 5vw, 64px) clamp(40px, 4vw, 60px);
}

.cta-finale--question .cta-finale__texte {
  font-size: clamp(26px, 3.2vw, 34px);
  margin-bottom: 8px;
}

/* -------------------------------------------------------------------------
   4. Header
   ------------------------------------------------------------------------- */
.site-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  padding: 26px clamp(20px, 5vw, 64px);
}

.site-branding {
  display: flex;
  align-items: center;
  gap: 14px;
  text-decoration: none;
  padding: 6px 0;
}

.site-branding__logo {
  width: 56px;
  height: 56px;
  border-radius: 16px;
  display: block;
}

.site-branding__text {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
}

.site-branding__name {
  font-family: 'Caveat', cursive;
  font-size: 27px;
  font-weight: 600;
  color: var(--prune);
}

.site-branding__tagline {
  font-size: 11.5px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--taupe);
}

.site-nav {
  display: flex;
  align-items: center;
  gap: clamp(14px, 2.2vw, 30px);
  flex-wrap: wrap;
}

.site-nav ul {
  display: flex;
  align-items: center;
  gap: clamp(14px, 2.2vw, 30px);
  flex-wrap: wrap;
  list-style: none;
  margin: 0;
  padding: 0;
}

.site-nav a:not(.btn) {
  text-decoration: none;
  color: var(--aubergine);
  font-size: 15.5px;
}

.site-nav a:not(.btn):hover {
  color: var(--rose);
}

.site-nav .current-menu-item > a,
.site-nav .current_page_item > a,
.site-nav a[aria-current="page"] {
  color: var(--rose);
  font-weight: 700;
}

/* Bouton menu mobile (seul ajout hors maquette : la maquette laisse la nav
   passer à la ligne ; en dessous de 760px on replie derrière un bouton) */
.nav-toggle {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 10px;
  border-radius: 12px;
}

.nav-toggle__bar {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--aubergine);
  margin: 5px 0;
  border-radius: 2px;
}

@media (max-width: 760px) {
  .nav-toggle {
    display: inline-block;
  }

  .site-nav {
    display: none;
    width: 100%;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    padding: 6px 0 10px;
  }

  .site-nav.is-open {
    display: flex;
  }

  .site-nav ul {
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
  }

  .site-nav a:not(.btn) {
    font-size: 17px;
  }
}

/* -------------------------------------------------------------------------
   5. Footer
   ------------------------------------------------------------------------- */
.site-footer {
  background: var(--rose-poudre);
  padding: clamp(20px, 3vw, 36px) clamp(20px, 5vw, 64px) 44px;
}

.site-footer__inner {
  max-width: 1020px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 12px;
}

.site-footer__logo {
  width: 64px;
  height: 64px;
  border-radius: 18px;
  display: block;
}

.site-footer__name {
  font-family: 'Caveat', cursive;
  font-size: 28px;
  color: var(--aubergine);
  line-height: 1;
}

.site-footer__baseline {
  font-size: 14.5px;
  color: var(--taupe);
  line-height: 1.7;
  max-width: 440px;
  text-wrap: pretty;
}

.site-footer__links {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 4px;
}

.site-footer__sep {
  color: var(--saumon);
}

.site-footer__nav {
  display: flex;
  gap: 10px 22px;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: 14px;
  padding-top: 16px;
  border-top: 1.5px dashed var(--saumon);
  width: 100%;
  max-width: 640px;
}

.site-footer__nav ul {
  display: flex;
  gap: 10px 22px;
  flex-wrap: wrap;
  justify-content: center;
  list-style: none;
  margin: 0;
  padding: 0;
}

.site-footer__nav a {
  text-decoration: none;
  color: var(--aubergine);
  font-size: 13.5px;
}

.site-footer__nav a:hover {
  color: var(--rose);
}

/* -------------------------------------------------------------------------
   6. Accueil (front-page.php)
   ------------------------------------------------------------------------- */

/* Hero */
.home-hero {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(28px, 4vw, 64px);
  flex-wrap: wrap;
  padding: clamp(28px, 5vw, 72px) clamp(20px, 5vw, 64px) clamp(20px, 4vw, 48px);
  max-width: 1240px;
  margin: 0 auto;
}

.home-hero__text {
  flex: 1 1 460px;
  min-width: 300px;
  max-width: 640px;
}

.home-hero__lead {
  font-size: 17px;
  line-height: 1.7;
  color: var(--taupe);
  margin: 0 0 30px;
  text-wrap: pretty;
}

.home-hero__actions {
  display: flex;
  align-items: center;
  gap: 22px;
  flex-wrap: wrap;
}

.home-hero__note {
  font-size: 14.5px;
  color: var(--taupe);
  font-style: italic;
}

.home-hero__figure {
  flex: 1 1 380px;
  min-width: 280px;
  max-width: 520px;
  display: flex;
  justify-content: center;
}

.home-hero__figure img {
  width: 100%;
  max-width: 480px;
  height: auto;
  display: block;
}

/* Conseils ajustés et personnalisés */
.home-conseils {
  background: var(--sable);
  padding: clamp(24px, 4vw, 56px) clamp(20px, 5vw, 64px) clamp(40px, 5vw, 72px);
}

.home-conseils__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(28px, 4vw, 72px);
  flex-wrap: wrap;
  max-width: 1140px;
  margin: 0 auto;
}

.home-conseils__figure {
  flex: 1 1 340px;
  min-width: 270px;
  max-width: 460px;
  display: flex;
  justify-content: center;
}

.home-conseils__figure img {
  width: 100%;
  max-width: 430px;
  height: auto;
  display: block;
}

.home-conseils__text {
  flex: 1 1 420px;
  min-width: 300px;
  max-width: 580px;
}

.home-conseils__text p {
  font-size: 16.5px;
  line-height: 1.7;
  color: var(--encre);
  margin: 0 0 16px;
  text-wrap: pretty;
}

.home-conseils__text p.home-conseils__citation {
  font-family: 'Lora', serif;
  font-style: italic;
  font-size: 18px;
  line-height: 1.65;
  color: var(--aubergine);
  margin: 0;
}

/* Les raisons de consulter */
.home-raisons {
  padding: clamp(20px, 3vw, 40px) clamp(20px, 5vw, 64px) clamp(44px, 5vw, 72px);
}

.home-raisons__inner {
  max-width: 1020px;
  margin: 0 auto;
  text-align: center;
}

.home-raisons .kicker--caramel {
  font-size: 23px;
  margin-bottom: 6px;
}

.home-raisons .section-title {
  margin: 0 0 14px;
}

.home-raisons__intro {
  font-size: 16px;
  line-height: 1.7;
  color: var(--taupe);
  margin: 0 auto 34px;
  max-width: 640px;
  text-wrap: pretty;
}

.chips {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px 16px;
}

.chip {
  color: var(--prune);
  font-size: 15.5px;
  line-height: 1.55;
  padding: 14px 24px;
  max-width: 420px;
  text-align: left;
  text-wrap: pretty;
}

.chip:nth-child(3n+1) {
  background: var(--sable);
  border-radius: 22px 22px 22px 5px;
}

.chip:nth-child(3n+2) {
  background: var(--rose-poudre);
  border-radius: 22px 22px 5px 22px;
}

.chip:nth-child(3n+3) {
  background: var(--sable-rose);
  border-radius: 5px 22px 22px 22px;
}

.chips__more {
  font-family: 'Caveat', cursive;
  font-size: 22px;
  color: var(--rose);
  padding: 12px 20px;
  align-self: center;
}

/* Témoignages (aperçu) */
.home-temoignages {
  background: var(--rose-poudre);
  padding: clamp(24px, 4vw, 56px) clamp(20px, 5vw, 64px) clamp(44px, 5vw, 80px);
}

.home-temoignages__inner {
  max-width: 1060px;
  margin: 0 auto;
}

.home-temoignages__head {
  text-align: center;
  margin-bottom: 38px;
}

.home-temoignages__head .section-title {
  margin: 0;
}

.home-temoignages__grid {
  display: flex;
  gap: clamp(20px, 3vw, 36px);
  flex-wrap: wrap;
  justify-content: center;
}

.temoignage-card {
  flex: 1 1 380px;
  min-width: 290px;
  max-width: 500px;
  background: var(--creme);
  padding: 30px 32px 24px;
  margin: 0;
}

.temoignage-card--gauche {
  border-radius: 26px 26px 26px 5px;
}

.temoignage-card--droite {
  border-radius: 26px 26px 5px 26px;
}

.temoignage-card__quote {
  font-family: 'Caveat', cursive;
  font-size: 52px;
  line-height: 0.6;
  color: var(--saumon);
  margin-bottom: 14px;
}

.temoignage-card--droite .temoignage-card__quote {
  color: var(--peche);
}

.temoignage-card__titre {
  font-family: 'Lora', serif;
  font-size: 18px;
  font-style: italic;
  color: var(--aubergine);
  margin-bottom: 12px;
}

.temoignage-card blockquote {
  margin: 0 0 18px;
  font-size: 15.5px;
  line-height: 1.7;
  color: var(--encre);
  text-wrap: pretty;
}

.temoignage-card figcaption {
  font-family: 'Caveat', cursive;
  font-size: 22px;
  color: var(--rose);
}

.home-temoignages__more {
  text-align: center;
  margin-top: 28px;
}

/* Aperçu des tarifs */
.home-tarifs {
  padding: clamp(20px, 3vw, 44px) clamp(20px, 5vw, 64px) clamp(44px, 5vw, 76px);
}

.home-tarifs__inner {
  max-width: 1020px;
  margin: 0 auto;
  text-align: center;
}

.home-tarifs .section-title {
  margin: 0 0 8px;
}

.home-tarifs__intro {
  font-size: 16px;
  line-height: 1.7;
  color: var(--taupe);
  margin: 0 auto 36px;
  max-width: 560px;
  text-wrap: pretty;
}

.home-tarifs__grid {
  display: flex;
  gap: clamp(20px, 3vw, 32px);
  flex-wrap: wrap;
  justify-content: center;
  align-items: stretch;
}

.tarif-apercu {
  flex: 1 1 330px;
  min-width: 280px;
  max-width: 440px;
  padding: 34px 32px 30px;
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.tarif-apercu--the {
  background: var(--sable);
  border-radius: 28px 28px 6px 28px;
}

.tarif-apercu--poser {
  background: var(--rose-poudre);
  border-radius: 28px 28px 28px 6px;
  position: relative;
}

.tarif-apercu__nom {
  font-family: 'Caveat', cursive;
  font-size: 30px;
  color: var(--aubergine);
}

.tarif-apercu__prix {
  display: flex;
  align-items: baseline;
  gap: 10px;
}

.tarif-apercu__montant {
  font-family: 'Lora', serif;
  font-size: 34px;
  color: var(--prune);
}

.tarif-apercu__duree {
  font-size: 15px;
  color: var(--taupe);
}

.tarif-apercu p {
  font-size: 15px;
  line-height: 1.7;
  color: var(--encre);
  margin: 0;
  text-wrap: pretty;
}

.badge-choisi {
  position: absolute;
  top: -14px;
  right: 26px;
  font-family: 'Caveat', cursive;
  font-size: 21px;
  color: var(--blanc-rose);
  background: var(--rose);
  padding: 4px 16px 6px;
  border-radius: 999px;
  transform: rotate(2deg);
}

.home-tarifs__more {
  margin-top: 30px;
}

/* Citation d'Élise */
.home-citation {
  background: var(--sable);
  padding: clamp(28px, 4vw, 60px) clamp(20px, 5vw, 64px) clamp(48px, 5vw, 84px);
  text-align: center;
}

.home-citation__inner {
  max-width: 760px;
  margin: 0 auto;
}

.home-citation__texte {
  font-family: 'Caveat', cursive;
  font-size: clamp(30px, 4vw, 42px);
  line-height: 1.35;
  color: var(--aubergine);
  margin: 0 0 10px;
  text-wrap: pretty;
}

.home-citation__auteur {
  font-family: 'Lora', serif;
  font-style: italic;
  font-size: 19px;
  color: var(--rose);
  margin-bottom: 32px;
}

/* -------------------------------------------------------------------------
   7. La démarche (page-la-demarche.php)
   ------------------------------------------------------------------------- */

/* Mon approche */
.demarche-hero {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(28px, 4vw, 64px);
  flex-wrap: wrap;
  padding: clamp(28px, 5vw, 64px) clamp(20px, 5vw, 64px) clamp(20px, 4vw, 48px);
  max-width: 1200px;
  margin: 0 auto;
}

.demarche-hero__text {
  flex: 1 1 460px;
  min-width: 300px;
  max-width: 620px;
}

.demarche-hero__text p {
  font-size: 16.5px;
  line-height: 1.7;
  color: var(--encre);
  margin: 0;
  text-wrap: pretty;
}

.demarche-hero__figure {
  flex: 1 1 340px;
  min-width: 270px;
  max-width: 440px;
  display: flex;
  justify-content: center;
}

.demarche-hero__figure img {
  width: 100%;
  max-width: 400px;
  height: auto;
  display: block;
}

/* Le cadre, en trois mots */
.demarche-cadre {
  background: var(--sable);
  padding: clamp(20px, 3vw, 44px) clamp(20px, 5vw, 64px) clamp(40px, 5vw, 64px);
}

.demarche-cadre__inner {
  max-width: 960px;
  margin: 0 auto;
  text-align: center;
}

.demarche-cadre .section-title {
  margin: 0 0 28px;
}

.badges {
  display: flex;
  gap: 16px 20px;
  flex-wrap: wrap;
  justify-content: center;
}

.badge {
  background: var(--creme);
  color: var(--prune);
  font-size: 16px;
  padding: 16px 30px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.badge:nth-child(1) {
  border-radius: 24px 24px 24px 5px;
}

.badge:nth-child(2) {
  border-radius: 24px 24px 5px 24px;
}

.badge:nth-child(3) {
  border-radius: 5px 24px 24px 24px;
}

.demarche-cadre__note {
  font-family: 'Caveat', cursive;
  font-size: 22px;
  color: var(--caramel);
  margin-top: 22px;
}

/* La visio, comment ça marche */
.demarche-visio {
  padding: clamp(20px, 3vw, 40px) clamp(20px, 5vw, 64px) clamp(40px, 5vw, 64px);
}

.demarche-visio__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(28px, 4vw, 72px);
  flex-wrap: wrap;
  max-width: 1140px;
  margin: 0 auto;
}

.demarche-visio__figure {
  flex: 1 1 340px;
  min-width: 270px;
  max-width: 480px;
  display: flex;
  justify-content: center;
}

.demarche-visio__figure img {
  width: 100%;
  max-width: 460px;
  height: auto;
  display: block;
}

.demarche-visio__text {
  flex: 1 1 420px;
  min-width: 300px;
  max-width: 560px;
}

.demarche-visio__text p {
  font-size: 16.5px;
  line-height: 1.7;
  color: var(--encre);
  margin: 0 0 18px;
  text-wrap: pretty;
}

.demarche-visio__text p.demarche-visio__note {
  font-family: 'Lora', serif;
  font-style: italic;
  font-size: 17px;
  line-height: 1.65;
  color: var(--aubergine);
  margin: 0;
}

/* Conférences, ateliers & cercles de paroles */
.demarche-conferences {
  background: var(--rose-poudre);
  padding: clamp(24px, 4vw, 56px) clamp(20px, 5vw, 64px) clamp(44px, 5vw, 72px);
}

.demarche-conferences__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(28px, 4vw, 72px);
  flex-wrap: wrap;
  max-width: 1140px;
  margin: 0 auto;
}

.demarche-conferences__text {
  flex: 1 1 420px;
  min-width: 300px;
  max-width: 580px;
}

.demarche-conferences .section-title {
  margin: 0 0 6px;
}

.demarche-conferences .kicker {
  font-size: 23px;
  margin-bottom: 16px;
}

.demarche-conferences__text p {
  font-size: 16.5px;
  line-height: 1.7;
  color: var(--encre);
  margin: 0 0 14px;
  text-wrap: pretty;
}

.demarche-conferences__text p:last-of-type {
  margin-bottom: 26px;
}

.demarche-conferences__figure {
  flex: 1 1 340px;
  min-width: 270px;
  max-width: 460px;
  display: flex;
  justify-content: center;
}

.demarche-conferences__figure img {
  width: 100%;
  max-width: 440px;
  height: auto;
  display: block;
}

/* -------------------------------------------------------------------------
   8. Tarifs & rendez-vous (page-tarifs.php)
   ------------------------------------------------------------------------- */

/* Intro */
.tarifs-hero {
  padding: clamp(24px, 4vw, 52px) clamp(20px, 5vw, 64px) clamp(20px, 3vw, 36px);
}

.tarifs-hero__inner {
  max-width: 680px;
  margin: 0 auto;
  text-align: center;
}

.tarifs-hero .kicker {
  margin-bottom: 8px;
}

.tarifs-hero .page-title {
  margin: 0 0 14px;
}

.tarifs-hero__intro {
  font-size: 16px;
  line-height: 1.7;
  color: var(--taupe);
  margin: 0;
  text-wrap: pretty;
}

/* Cartes des formules */
.tarifs-cartes {
  padding: clamp(12px, 2vw, 24px) clamp(20px, 5vw, 64px) clamp(40px, 5vw, 64px);
}

.tarifs-cartes__grid {
  display: flex;
  gap: clamp(20px, 3vw, 36px);
  flex-wrap: wrap;
  justify-content: center;
  align-items: stretch;
  max-width: 1140px;
  margin: 0 auto;
}

.tarif-card {
  flex: 1 1 340px;
  min-width: 290px;
  max-width: 470px;
  padding: 38px 36px 34px;
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.tarif-card--the {
  background: var(--sable);
  border-radius: 30px 30px 6px 30px;
}

.tarif-card--poser {
  background: var(--rose-poudre);
  border-radius: 30px 30px 30px 6px;
  position: relative;
}

.tarif-card__nom {
  font-family: 'Caveat', cursive;
  font-size: 34px;
  color: var(--aubergine);
}

.tarif-card__prix {
  display: flex;
  align-items: baseline;
  gap: 10px;
}

.tarif-card__montant {
  font-family: 'Lora', serif;
  font-size: 40px;
  color: var(--prune);
}

.tarif-card__duree {
  font-size: 15px;
  color: var(--taupe);
}

.tarif-card__desc {
  font-size: 15.5px;
  line-height: 1.7;
  color: var(--encre);
  margin: 0;
  text-wrap: pretty;
}

.tarif-card ul {
  list-style: none;
  margin: 8px 0 22px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.tarif-card li {
  display: flex;
  gap: 10px;
  align-items: baseline;
  font-size: 15px;
  color: var(--encre);
}

.tarif-card__check {
  color: var(--rose);
  font-weight: 700;
}

.badge-choisi--lg {
  top: -16px;
  right: 28px;
  font-size: 22px;
  padding: 5px 18px 7px;
}

/* Réservation (#reservation) */
.tarifs-reservation {
  background: var(--sable);
  padding: clamp(24px, 4vw, 56px) clamp(20px, 5vw, 64px) clamp(44px, 5vw, 72px);
}

.tarifs-reservation__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(28px, 4vw, 64px);
  flex-wrap: wrap;
  max-width: 1140px;
  margin: 0 auto;
}

.tarifs-reservation__main {
  flex: 1 1 460px;
  min-width: 300px;
  max-width: 640px;
}

.tarifs-reservation .section-title {
  margin: 0 0 20px;
}

.reservation-placeholder {
  background: var(--creme);
  border: 2px dashed var(--saumon);
  border-radius: 26px 26px 26px 6px;
  padding: 38px 30px;
  text-align: center;
  background-image: repeating-linear-gradient(-45deg, rgba(227, 155, 166, 0.07) 0 14px, transparent 14px 28px);
}

.reservation-placeholder__titre {
  font-family: 'Caveat', cursive;
  font-size: 26px;
  color: var(--rose);
  margin-bottom: 6px;
}

.reservation-placeholder__note {
  font-family: monospace;
  font-size: 13px;
  color: var(--taupe);
}

.tarifs-reservation__mention {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-top: 16px;
  font-size: 14px;
  color: var(--taupe);
}

.tarifs-reservation__figure {
  flex: 0 1 300px;
  min-width: 240px;
  max-width: 340px;
  display: flex;
  justify-content: center;
}

.tarifs-reservation__figure img {
  width: 100%;
  max-width: 300px;
  height: auto;
  display: block;
}

/* -------------------------------------------------------------------------
   9. Témoignages (page-temoignages.php)
   ------------------------------------------------------------------------- */
.temoignages-hero {
  padding: clamp(24px, 4vw, 52px) clamp(20px, 5vw, 64px) clamp(20px, 3vw, 36px);
  text-align: center;
}

.temoignages-hero__inner {
  max-width: 680px;
  margin: 0 auto;
}

.temoignages-hero .kicker {
  margin-bottom: 8px;
}

.temoignages-hero .page-title {
  margin: 0;
}

.temoignages-liste {
  background: var(--rose-poudre);
  padding: clamp(24px, 4vw, 56px) clamp(20px, 5vw, 64px) clamp(44px, 5vw, 80px);
}

.temoignages-liste__inner {
  max-width: 860px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: clamp(28px, 4vw, 44px);
}

/* Version grande des cartes témoignage, décalées gauche/droite */
.temoignage-card--lg {
  flex: 0 1 auto;
  min-width: 0;
  max-width: 680px;
  padding: 36px 38px 28px;
}

.temoignage-card--lg.temoignage-card--gauche {
  border-radius: 30px 30px 30px 6px;
}

.temoignage-card--lg.temoignage-card--droite {
  border-radius: 30px 30px 6px 30px;
  margin-left: auto;
}

.temoignage-card--lg .temoignage-card__quote {
  font-size: 58px;
  margin-bottom: 16px;
}

.temoignage-card--lg .temoignage-card__titre {
  font-size: 20px;
  margin-bottom: 14px;
  text-wrap: pretty;
}

.temoignage-card--lg blockquote {
  font-size: 16px;
  margin-bottom: 20px;
}

.temoignage-card--lg figcaption {
  font-size: 24px;
}

/* CTA « partager votre expérience » */
.cta-finale--partage .cta-finale__texte {
  margin-bottom: 10px;
}

.cta-finale__bouton {
  margin-top: 36px;
}

/* -------------------------------------------------------------------------
   10. À propos (page-a-propos.php)
   ------------------------------------------------------------------------- */
.apropos-hero {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: clamp(28px, 4vw, 64px);
  flex-wrap: wrap;
  padding: clamp(28px, 5vw, 64px) clamp(20px, 5vw, 64px) clamp(24px, 4vw, 48px);
  max-width: 1160px;
  margin: 0 auto;
}

.apropos-hero__aside {
  flex: 0 1 320px;
  min-width: 260px;
  max-width: 340px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
}

/* Photo d'Élise dans son blob sable */
.apropos-photo {
  width: min(300px, 80vw);
  height: min(300px, 80vw);
  position: relative;
}

.apropos-photo::before {
  content: '';
  position: absolute;
  inset: -14px;
  background: var(--sable);
  border-radius: 46% 54% 52% 48% / 52% 46% 54% 48%;
}

.apropos-photo img,
.apropos-photo__placeholder {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border-radius: 50%;
}

.apropos-photo img {
  object-fit: cover;
}

.apropos-photo__placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  background: var(--creme);
  border: 2px dashed var(--saumon);
  font-family: 'Caveat', cursive;
  font-size: 26px;
  color: var(--rose);
}

.apropos-hero__portrait {
  width: 200px;
  height: auto;
  display: block;
  opacity: 0.95;
}

.apropos-hero__text {
  flex: 1 1 460px;
  min-width: 300px;
  max-width: 640px;
}

.apropos-hero__text p {
  font-size: 16.5px;
  line-height: 1.7;
  color: var(--encre);
  margin: 0 0 16px;
  text-wrap: pretty;
}

.apropos-hero__text p.apropos-hero__conclusion {
  font-family: 'Lora', serif;
  font-style: italic;
  font-size: 17.5px;
  line-height: 1.65;
  color: var(--aubergine);
  margin: 0;
}

/* Formations professionnelles */
.apropos-formations {
  background: var(--sable);
  padding: clamp(24px, 4vw, 52px) clamp(20px, 5vw, 64px) clamp(44px, 5vw, 72px);
}

.apropos-formations__inner {
  max-width: 760px;
  margin: 0 auto;
}

.apropos-formations__head {
  text-align: center;
  margin-bottom: 34px;
}

.apropos-formations__head .section-title {
  margin: 0;
}

.timeline {
  border-left: 2px solid var(--saumon);
  margin-left: 10px;
}

.timeline__item {
  display: flex;
  gap: 18px;
  align-items: baseline;
  padding: 9px 0 9px 22px;
  position: relative;
}

.timeline__item::before {
  content: '';
  position: absolute;
  left: -7px;
  top: 16px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
}

.timeline__item:nth-child(3n+1)::before {
  background: var(--saumon);
}

.timeline__item:nth-child(3n+2)::before {
  background: var(--peche);
}

.timeline__item:nth-child(3n+3)::before {
  background: var(--rose);
}

.timeline__annee {
  font-family: 'Lora', serif;
  font-size: 15.5px;
  color: var(--rose);
  min-width: 88px;
  flex-shrink: 0;
}

.timeline__titre {
  font-size: 15.5px;
  line-height: 1.6;
  color: var(--encre);
  text-wrap: pretty;
}

.apropos-encart {
  margin-top: 26px;
  background: var(--creme);
  border-radius: 22px 22px 22px 5px;
  padding: 22px 26px;
}

.apropos-encart__titre {
  font-family: 'Caveat', cursive;
  font-size: 23px;
  color: var(--caramel);
  margin-bottom: 8px;
}

.apropos-encart__texte {
  font-size: 15px;
  line-height: 1.8;
  color: var(--encre);
}

/* Livres de références */
.apropos-livres {
  padding: clamp(20px, 3vw, 40px) clamp(20px, 5vw, 64px) clamp(44px, 5vw, 72px);
}

.apropos-livres__inner {
  max-width: 760px;
  margin: 0 auto;
}

.apropos-livres__head {
  text-align: center;
  margin-bottom: 30px;
}

.apropos-livres__head .section-title {
  margin: 0 0 6px;
}

.apropos-livres__head .kicker {
  font-size: 22px;
  margin-bottom: 0;
}

/* Accordéons (livres À propos ; variante FAQ sur Contact) */
.accordeon {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.accordeon details {
  background: var(--sable);
  overflow: hidden;
}

.accordeon details:nth-child(3n+1) {
  border-radius: 22px 22px 22px 5px;
}

.accordeon details:nth-child(3n+2) {
  border-radius: 22px 22px 5px 22px;
}

.accordeon details:nth-child(3n+3) {
  border-radius: 5px 22px 22px 22px;
}

.accordeon summary {
  cursor: pointer;
  padding: 18px 26px;
  font-family: 'Lora', serif;
  font-style: italic;
  font-size: 17.5px;
  color: var(--aubergine);
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.accordeon__plus {
  font-family: 'Caveat', cursive;
  font-size: 24px;
  color: var(--rose);
}

.accordeon__contenu {
  padding: 0 26px 22px;
  font-size: 15px;
  line-height: 2;
  color: var(--encre);
}

/* -------------------------------------------------------------------------
   11. Contact & FAQ (page-contact.php)
   ------------------------------------------------------------------------- */
.contact-hero {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: clamp(28px, 4vw, 72px);
  flex-wrap: wrap;
  padding: clamp(28px, 5vw, 64px) clamp(20px, 5vw, 64px) clamp(40px, 5vw, 64px);
  max-width: 1160px;
  margin: 0 auto;
}

.contact-hero__infos {
  flex: 1 1 400px;
  min-width: 300px;
  max-width: 520px;
}

.contact-hero__infos .page-title {
  margin: 0 0 22px;
}

.contact-coordonnees {
  display: flex;
  flex-direction: column;
  gap: 14px;
  font-size: 15.5px;
  line-height: 1.7;
  color: var(--encre);
}

.contact-coordonnees__ligne {
  display: flex;
  gap: 12px;
  align-items: baseline;
}

.contact-coordonnees__ligne svg {
  flex-shrink: 0;
}

.contact-coordonnees a {
  color: var(--rose);
  text-decoration: none;
  font-weight: 700;
}

.contact-coordonnees a:hover {
  color: var(--terracotta);
}

.contact-hero__illustration {
  width: 100%;
  max-width: 360px;
  height: auto;
  display: block;
  margin-top: 26px;
}

/* Carte formulaire */
.contact-form {
  flex: 1 1 400px;
  min-width: 300px;
  max-width: 520px;
  background: var(--sable);
  border-radius: 30px 30px 6px 30px;
  padding: 34px 32px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.contact-form__titre {
  font-family: 'Caveat', cursive;
  font-size: 28px;
  color: var(--aubergine);
}

.contact-form label {
  display: flex;
  flex-direction: column;
  gap: 7px;
  font-size: 14px;
  font-weight: 700;
  color: var(--aubergine);
}

.contact-form input,
.contact-form textarea {
  font-family: 'Nunito Sans', sans-serif;
  font-size: 15.5px;
  color: var(--encre);
  background: var(--creme);
  border: none;
  padding: 14px 18px;
  outline: none;
}

.contact-form input {
  border-radius: 16px 16px 16px 4px;
}

.contact-form textarea {
  border-radius: 16px 16px 4px 16px;
  resize: vertical;
  line-height: 1.6;
}

.contact-form input:focus,
.contact-form textarea:focus,
.contact-form input:focus-visible,
.contact-form textarea:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--saumon);
}

.contact-form__note {
  font-size: 13px;
  color: var(--taupe);
  font-style: italic;
}

/* FAQ */
.contact-faq {
  background: var(--rose-poudre);
  padding: clamp(24px, 4vw, 52px) clamp(20px, 5vw, 64px) clamp(44px, 5vw, 72px);
}

.contact-faq__inner {
  max-width: 760px;
  margin: 0 auto;
}

.contact-faq__head {
  text-align: center;
  margin-bottom: 32px;
}

.contact-faq__head .section-title {
  margin: 0;
}

.accordeon--faq details {
  background: var(--creme);
}

.accordeon--faq summary {
  font-style: normal;
  font-size: 16.5px;
  gap: 16px;
}

.accordeon--faq .accordeon__plus {
  flex-shrink: 0;
}

.accordeon--faq .accordeon__contenu {
  padding: 0 26px 20px;
  font-size: 14px;
  font-style: italic;
  font-family: monospace;
  color: var(--taupe);
  line-height: 1.7;
}

/* Illustration + CTA de fin */
.contact-fin {
  padding: clamp(16px, 2vw, 32px) clamp(20px, 5vw, 64px) clamp(36px, 4vw, 56px);
  text-align: center;
}

.contact-fin__inner {
  max-width: 760px;
  margin: 0 auto;
}

.contact-fin__illustration {
  width: 100%;
  max-width: 420px;
  height: auto;
  display: block;
  margin: 0 auto 20px;
}

/* -------------------------------------------------------------------------
   12. Blog (index.php, archive.php, single.php)
   Pas de maquette dédiée : composé uniquement avec les motifs de la charte.
   ------------------------------------------------------------------------- */

/* En-tête des listings */
.blog-hero {
  padding: clamp(24px, 4vw, 52px) clamp(20px, 5vw, 64px) clamp(20px, 3vw, 36px);
  text-align: center;
}

.blog-hero__inner {
  max-width: 680px;
  margin: 0 auto;
}

.blog-hero .page-title {
  margin: 0;
}

.blog-hero__description {
  font-size: 16px;
  line-height: 1.7;
  color: var(--taupe);
  margin-top: 14px;
  text-wrap: pretty;
}

/* Grille de cartes */
.blog-liste {
  background: var(--sable);
  padding: clamp(24px, 4vw, 56px) clamp(20px, 5vw, 64px) clamp(44px, 5vw, 80px);
}

.blog-liste__grid {
  max-width: 1060px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  gap: clamp(20px, 3vw, 36px);
  justify-content: center;
}

.carte-article {
  flex: 1 1 320px;
  min-width: 290px;
  max-width: 500px;
  background: var(--creme);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.blog-liste__grid .carte-article:nth-child(3n+1) {
  border-radius: 26px 26px 26px 5px;
}

.blog-liste__grid .carte-article:nth-child(3n+2) {
  border-radius: 26px 26px 5px 26px;
}

.blog-liste__grid .carte-article:nth-child(3n+3) {
  border-radius: 5px 26px 26px 26px;
}

.carte-article__image img {
  display: block;
  width: 100%;
  height: auto;
}

.carte-article__contenu {
  padding: 24px 26px 26px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: flex-start;
}

.carte-article__date {
  font-family: 'Caveat', cursive;
  font-size: 20px;
  color: var(--rose);
}

.carte-article__titre {
  font-family: 'Lora', serif;
  font-weight: 500;
  font-size: 22px;
  line-height: 1.3;
  color: var(--prune);
  margin: 0;
  text-wrap: pretty;
}

.carte-article__titre a {
  color: inherit;
  text-decoration: none;
}

.carte-article__titre a:hover {
  color: var(--rose);
}

.carte-article__extrait {
  font-size: 15.5px;
  line-height: 1.7;
  color: var(--encre);
}

.carte-article__extrait p {
  margin: 0;
}

.blog-liste__vide {
  font-family: 'Caveat', cursive;
  font-size: 26px;
  color: var(--aubergine);
  text-align: center;
  margin: clamp(20px, 4vw, 44px) 0;
}

/* Pagination */
.blog-liste .pagination .nav-links {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: clamp(28px, 4vw, 44px);
}

.blog-liste .page-numbers {
  background: var(--creme);
  color: var(--aubergine);
  text-decoration: none;
  font-weight: 700;
  font-size: 15px;
  padding: 10px 18px;
  border-radius: 999px;
}

.blog-liste a.page-numbers:hover {
  color: var(--rose);
}

.blog-liste .page-numbers.current {
  background: var(--rose);
  color: var(--blanc-rose);
}

.blog-liste .page-numbers.dots {
  background: none;
  padding: 10px 4px;
}

/* Article seul */
.article-hero {
  padding: clamp(24px, 4vw, 52px) clamp(20px, 5vw, 64px) 0;
  text-align: center;
}

.article-hero__inner {
  max-width: 760px;
  margin: 0 auto;
}

.article-hero .kicker {
  font-size: 22px;
  margin-bottom: 8px;
}

.article-hero .page-title {
  margin: 0;
}

.article-hero__image {
  max-width: 860px;
  margin: clamp(20px, 3vw, 32px) auto 0;
}

.article-hero__image img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 30px 30px 30px 6px;
}

/* Contenu Gutenberg */
.entry-content {
  max-width: 720px;
  margin: 0 auto;
  padding: clamp(20px, 3vw, 36px) clamp(20px, 5vw, 64px) clamp(28px, 4vw, 44px);
  font-size: 16.5px;
  line-height: 1.7;
  color: var(--encre);
}

.entry-content p {
  margin: 0 0 18px;
  text-wrap: pretty;
}

.entry-content h2 {
  font-family: 'Lora', serif;
  font-weight: 500;
  font-size: clamp(24px, 2.8vw, 32px);
  color: var(--prune);
  margin: 34px 0 14px;
  text-wrap: pretty;
}

.entry-content h3 {
  font-family: 'Lora', serif;
  font-weight: 500;
  font-size: 20px;
  color: var(--aubergine);
  margin: 28px 0 12px;
}

.entry-content ul,
.entry-content ol {
  margin: 0 0 18px;
  padding-left: 24px;
}

.entry-content li {
  margin-bottom: 8px;
}

.entry-content img {
  border-radius: 22px 22px 22px 5px;
}

.entry-content figure {
  margin: 26px 0;
}

.entry-content figcaption {
  font-family: 'Caveat', cursive;
  font-size: 20px;
  color: var(--caramel);
  text-align: center;
  margin-top: 8px;
}

.entry-content blockquote {
  background: var(--creme);
  border: none;
  border-radius: 22px 22px 22px 5px;
  padding: 22px 26px;
  margin: 26px 0;
  font-family: 'Lora', serif;
  font-style: italic;
  font-size: 17.5px;
  line-height: 1.65;
  color: var(--aubergine);
}

.entry-content blockquote p {
  margin: 0 0 10px;
}

.entry-content blockquote p:last-child {
  margin: 0;
}

.entry-content blockquote cite {
  font-family: 'Caveat', cursive;
  font-size: 20px;
  font-style: normal;
  color: var(--rose);
}

.entry-content .wp-block-separator {
  border: none;
  border-top: 1.5px dashed var(--saumon);
  max-width: 200px;
  margin: 32px auto;
}

.entry-content .wp-block-button__link {
  background: var(--rose);
  color: var(--blanc-rose);
  font-weight: 700;
  border-radius: 999px;
  padding: 14px 28px;
  text-decoration: none;
}

.entry-content .wp-block-button__link:hover {
  background: var(--rose-fonce);
}

/* Catégories et navigation entre articles */
.article-cats {
  max-width: 720px;
  margin: 0 auto;
  padding: 0 clamp(20px, 5vw, 64px) 10px;
  font-size: 14.5px;
  color: var(--taupe);
}

.article-cats a {
  color: var(--rose);
  font-weight: 700;
  text-decoration: none;
}

.article-cats a:hover {
  color: var(--terracotta);
}

.post-navigation .nav-links {
  max-width: 720px;
  margin: 0 auto;
  padding: 0 clamp(20px, 5vw, 64px) clamp(28px, 4vw, 44px);
  display: flex;
  justify-content: space-between;
  gap: 18px;
  flex-wrap: wrap;
}

.post-navigation a {
  color: var(--rose);
  font-weight: 700;
  font-size: 15px;
  text-decoration: none;
}

.post-navigation a:hover {
  color: var(--terracotta);
}
