/* PULSE — V7
   Référence absolue : maquette Canva 1080 × 5760
   Mobile web : 390 px de large
*/

:root{
  --blue:#004e7a;
  --white:#ffffff;
  --grad-start:#ffda6a;
  --grad-end:#fff7de;
  --w:390px;
}

*{box-sizing:border-box}
html{background:var(--blue);scroll-behavior:smooth}
body{
  margin:0;
  background:var(--blue);
  color:var(--white);
  font-family:"Montserrat",sans-serif;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
}
.page{
  width:min(100%,var(--w));
  margin:0 auto;
  background:var(--blue);
  min-height:2080px;
  overflow:hidden;
}
.white{color:var(--white)}
.gradient-text{
  background:linear-gradient(180deg,var(--grad-start),var(--grad-end));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}

/* repères issus du master Canva */
.brand-block{
  width:242px;
  margin-left:auto;
  margin-right:26px;
  padding-top:43px;
}
.brand-logo{display:block;width:242px;height:auto}
.brand-signature{text-align:right;margin-top:4px}
.brand-name{font-size:14px;line-height:1;color:#fff}
.brand-name strong{font-weight:700}
.brand-tag{font-size:13px;line-height:1.1;margin-top:3px;white-space:nowrap}
.brand-tag strong{font-weight:700}

.hero{
  margin-left:32px;
  margin-top:62px;
  width:330px;
}
.hero h1{
  margin:0;
  color:#fff;
  font-size:29px;
  line-height:1.06;
  font-weight:700;
  letter-spacing:-.035em;
}
.hero-sub{
  margin:12px 0 0;
  font-size:20px;
  line-height:1.05;
  letter-spacing:-.03em;
}
.hero-punch{
  margin:18px 0 0;
  font-size:26px;
  line-height:1;
  font-weight:700;
  letter-spacing:-.04em;
}

.promise{
  margin-left:32px;
  margin-top:54px;
  width:320px;
}
.with-bar{
  position:relative;
  margin:0;
  padding-left:10px;
  font-size:23px;
  line-height:1.04;
  font-weight:700;
  letter-spacing:-.035em;
}
.with-bar::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:3px;
  background:linear-gradient(180deg,var(--grad-start),var(--grad-end));
}
.promise-copy{
  margin:18px 0 0 10px;
  font-size:17px;
  line-height:1.08;
  letter-spacing:-.025em;
}


/* V34 — bloc 1 uniquement : adaptation des tailles Canva 42 / 39 / 36 */
.promise-v34{width:calc(100% - 42px)}
.promise-v34 .with-bar{font-size:19px;line-height:1.13;letter-spacing:-.035em}
.promise-v34 .with-bar span{font-weight:400}
.promise-v34 .promise-origin{margin:0 0 0 10px;font-size:17.5px;line-height:1.12;letter-spacing:-.035em}
.promise-v34 .promise-copy{margin:0 0 0 10px;font-size:15.5px;line-height:1.12;letter-spacing:-.035em;white-space:nowrap}

.offers-section{
  margin-left:32px;
  margin-top:31px;
  width:325px;
}
.offers-section>.with-bar{margin-bottom:24px}
.offer{margin-left:10px;margin-bottom:21px}
.offer h3{
  margin:0 0 3px;
  font-size:17px;
  line-height:1.04;
  font-weight:400;
  letter-spacing:-.03em;
}
.offer h3 strong{font-weight:700}
.offer p{
  margin:0;
  font-size:12.5px;
  line-height:1.08;
  letter-spacing:-.022em;
}

.rdv-section{
  margin-left:32px;
  margin-top:38px;
  width:325px;
}
.rdv-section>.with-bar{margin-bottom:18px}
.appointment{
  margin:0 0 0 10px;
  font-size:15.8px;
  line-height:1.08;
  letter-spacing:-.03em;
}
.appointment strong{font-weight:700}

.rdv-cta{
  margin-top:29px;
  margin-left:111px;
  display:flex;
  align-items:center;
  gap:11px;
}
.pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:35px;
  padding:6px 16px 7px;
  border:2px solid var(--grad-start);
  border-radius:999px;
  text-decoration:none;
  font-size:17px;
  font-weight:700;
  line-height:1;
}
.calendar-picto{width:49px;height:49px;object-fit:contain}

.terrains-section{
  margin-left:32px;
  margin-top:41px;
  width:325px;
}
.terrains-heading{
  position:relative;
  padding-left:10px;
}
.terrains-heading::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:3px;
  background:linear-gradient(180deg,var(--grad-start),var(--grad-end));
}
.terrains-heading h2{
  margin:0;
  font-size:22px;
  line-height:1.05;
  font-weight:700;
  letter-spacing:-.035em;
}
.terrains-heading h2 span{font-weight:400}

.more-link{
  margin:17px 0 0 10px;
  display:flex;
  align-items:center;
  gap:15px;
  width:max-content;
  max-width:100%;
  text-decoration:none;
  font-size:15px;
  line-height:1.05;
  letter-spacing:-.02em;
}
.more-link strong{font-weight:700}
.more-link .sa{font-weight:400}
.click-picto{width:48px;height:48px;object-fit:contain}

.terrain-list{
  margin-top:29px;
  margin-left:6px;
  display:grid;
  gap:29px;
}
.terrain-item{
  display:grid;
  grid-template-columns:52px 1fr;
  gap:8px;
  align-items:start;
}
.terrain-picto{
  width:43px;
  height:43px;
  object-fit:contain;
  justify-self:center;
  margin-top:1px;
}
.property-picto{width:49px;height:49px;margin-top:-2px}
.structure-picto{width:39px;height:39px;margin-top:3px}

.terrain-item h3{
  margin:0 0 2px;
  font-size:17px;
  line-height:1.02;
  font-weight:700;
  letter-spacing:-.03em;
}
.terrain-item h3 .regular{font-weight:400}
.terrain-item p{
  margin:0;
  font-size:16px;
  line-height:1.06;
  font-weight:400;
  letter-spacing:-.03em;
}
.nowrap{white-space:nowrap}

.contact-section{
  margin-left:41px;
  margin-top:45px;
  width:309px;
  padding-bottom:28px;
}
.contact-title{
  position:relative;
  margin:0;
  padding-left:8px;
  font-size:21px;
  line-height:1;
  font-weight:700;
  letter-spacing:-.035em;
  white-space:nowrap;
}
.contact-title::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:3px;
  background:linear-gradient(180deg,var(--grad-start),var(--grad-end));
}
.contact-row{
  margin:9px 0 0 8px;
  display:flex;
  align-items:flex-start;
  gap:8px;
}
.email-picto{
  width:31px;
  height:31px;
  object-fit:contain;
  flex:0 0 auto;
}
.email{
  margin-top:6px;
  font-size:15px;
  line-height:1;
  text-decoration:none;
  letter-spacing:-.03em;
}
.portrait{
  display:block;
  width:98px;
  height:auto;
  margin:15px auto 0;
}

/* On conserve exactement la composition mobile sur desktop,
   mais légèrement agrandie et centrée. */
@media(min-width:700px){
  :root{--w:540px}
  .page{transform-origin:top center}
  .brand-block{width:335px;margin-right:36px}
  .brand-logo{width:335px}
  .hero,.promise,.offers-section,.rdv-section,.terrains-section,.contact-section{margin-left:44px}
  .hero{width:455px}
  .promise,.offers-section,.rdv-section,.terrains-section,.contact-section{width:450px}
  .brand-name{font-size:19px}
  .brand-tag{font-size:18px}
  .hero h1{font-size:40px}
  .hero-sub{font-size:28px}
  .hero-punch{font-size:36px}
  .with-bar{font-size:31px}
  .promise-copy{font-size:23px}
  .offer h3{font-size:23px}
  .offer p{font-size:17px}
  .appointment{font-size:21.4px}
  .pill{font-size:23px}
  .calendar-picto{width:67px;height:67px}
  .terrains-heading h2{font-size:30px}
  .more-link{font-size:20px}
  .click-picto{width:65px;height:65px}
  .terrain-item{grid-template-columns:71px 1fr}
  .terrain-picto{width:59px;height:59px}
  .property-picto{width:67px;height:67px}
  .structure-picto{width:53px;height:53px}
  .terrain-item h3{font-size:23px}
  .terrain-item p{font-size:22px}
  .contact-title{font-size:29px}
  .email{font-size:20px}
  .email-picto{width:43px;height:43px}
  .portrait{width:136px}
}


/* STABILITÉ MOBILE
   On garde une composition de référence 390 px.
   Sous 390 px, le canvas entier se réduit légèrement au lieu de redistribuer les blocs. */
@media (max-width:389px){
  body{overflow-x:hidden}
  .page{
    width:390px;
    transform:scale(calc(100vw / 390));
    transform-origin:top left;
  }
}


/* =========================================================
   V10 — HEADER COMBO
   On remplace le haut par un seul asset transparent :
   logo + signature + baseline, pour éviter tout décalage.
   ========================================================= */

.brand-block{
  width:100%;
  margin:0;
  padding:22px 0 0;
}

.brand-combo{
  display:block;
  width:332px;
  max-width:none;
  height:auto;
  margin-left:auto;
  margin-right:21px;
}

.hero{
  margin-top:44px;
}

/* Neutralise l'ancien découpage du header s'il reste présent */
.brand-logo,
.brand-signature,
.brand-name,
.brand-tag{
  display:none !important;
}

@media(min-width:700px){
  .brand-block{
    padding-top:30px;
  }

  .brand-combo{
    width:460px;
    margin-right:29px;
  }

  .hero{
    margin-top:58px;
  }
}


/* =========================================================
   V11 — HEADER SCALE FIX
   Correction du rapport d'échelle par rapport au master Canva.
   Le bord droit était bon, mais le bloc logo+signature était trop large.
   ========================================================= */

.brand-block{
  width:100%;
  margin:0;
  padding-top:34px;
}

.brand-combo{
  display:block;
  width:253px;
  max-width:none;
  height:auto;
  margin-left:auto;
  margin-right:20px;
}

.hero{
  margin-top:57px;
}

/* On neutralise les anciennes tailles du header en desktop */
@media(min-width:700px){
  .brand-block{
    padding-top:47px;
  }

  .brand-combo{
    width:350px;
    margin-right:28px;
  }

  .hero{
    margin-top:79px;
  }
}


/* =========================================================
   V12 — HEADER WIDTH / LEFT LOCK
   Le bord gauche reste verrouillé.
   On élargit seulement le bloc header vers la droite.
   ========================================================= */

.brand-combo{
  width:267px;
  margin-left:117px;
  margin-right:0;
}

.hero{
  margin-top:57px;
}

@media(min-width:700px){
  .brand-combo{
    width:370px;
    margin-left:162px;
    margin-right:0;
  }
}


/* =========================================================
   V17 — BICOLORE
   BASE STRICTE : V13
   On ne touche pas aux tailles, césures ou alignements internes.
   On ajoute seulement les panneaux crème, avec les respirations
   de la maquette bicolore fournie.
   ========================================================= */

.cream-band{
  width:100%;
  margin:0;
  background:
    url("assets/fond-livret.png") center center / 100% 100% no-repeat,
    linear-gradient(180deg,#ffda6a 0%,#fff7de 100%);
}

/* 1.2.3 Pulse : le panneau commence après le bloc promesse */
.cream-band-offers{
  margin-top:28px;
  padding:26px 0 18px;
}

.cream-band-offers .offers-section{
  margin-top:0 !important;
}

/* On s'en parle : bleu, collé après le panneau crème */
.rdv-section{
  margin-top:0 !important;
  padding-top:25px;
  padding-bottom:27px;
}

/* Terrains : panneau crème, collé après le rendez-vous */
.cream-band-terrains{
  margin-top:0;
  padding:23px 0 27px;
}

.cream-band-terrains .terrains-section{
  margin-top:0 !important;
}

/* Contact : bleu, juste après le panneau terrains */
.contact-section{
  margin-top:0 !important;
  padding-top:22px;
}

/* ---------- Couleurs dans les panneaux crème ---------- */
.cream-band .gradient-text,
.cream-band .white{
  background:none !important;
  color:var(--blue) !important;
  -webkit-text-fill-color:var(--blue) !important;
}

.cream-band .with-bar::before,
.cream-band .terrains-heading::before{
  background:var(--blue) !important;
}

/* Pictos : même dessin, rendu bleu sur fond crème */
.cream-band img:not(.portrait){
  filter:brightness(0) saturate(100%) invert(18%) sepia(54%) saturate(2219%) hue-rotate(173deg) brightness(90%) contrast(104%);
}

/* Respiration du panneau 1.2.3 sans modifier le contenu */
.cream-band-offers .offers-section > .with-bar{
  margin-bottom:24px;
}

/* Lien En (sa)voir plus : conserve exactement sa place V13 */
.cream-band-terrains .more-link{
  color:var(--blue) !important;
}

/* Contact reste bleu / dégradé comme V13 */
.contact-section .gradient-text{
  background:linear-gradient(180deg,var(--grad-start),var(--grad-end));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  -webkit-text-fill-color:transparent;
}

/* ---------- Desktop V13 conservé ---------- */
@media(min-width:700px){
  .cream-band-offers{
    margin-top:39px;
    padding:36px 0 25px;
  }

  .rdv-section{
    padding-top:34px;
    padding-bottom:37px;
  }

  .cream-band-terrains{
    padding:32px 0 37px;
  }

  .contact-section{
    padding-top:30px;
  }
}


/* =========================================================
   V18 — FINITIONS DES PANNEAUX
   Base : V17.
   On ne touche ni aux césures, ni aux tailles de texte,
   ni aux alignements internes validés.
   Seulement : respirations verticales + signature contact.
   ========================================================= */

/* 1.2.3 Pulse : plus d'air en haut et en bas */
.cream-band-offers{
  padding-top:34px !important;
  padding-bottom:30px !important;
}

/* On s'en parle : panneau bleu plus équilibré */
.rdv-section{
  padding-top:31px !important;
  padding-bottom:34px !important;
}

/* Terrains : respirations plus élégantes */
.cream-band-terrains{
  padding-top:31px !important;
  padding-bottom:34px !important;
}

/* Contact : plus d'air autour de la signature */
.contact-section{
  padding-top:27px !important;
  padding-bottom:38px !important;
}

/* Signature / portrait : plus présente et mieux assumée */
.contact-section .portrait{
  width:124px !important;
  margin-top:18px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* Le bloc mail reste calé comme en V17 */
.contact-section .contact-row{
  margin-top:7px !important;
}

/* Desktop : mêmes proportions, sans changer la composition */
@media(min-width:700px){
  .cream-band-offers{
    padding-top:47px !important;
    padding-bottom:42px !important;
  }

  .rdv-section{
    padding-top:43px !important;
    padding-bottom:47px !important;
  }

  .cream-band-terrains{
    padding-top:43px !important;
    padding-bottom:47px !important;
  }

  .contact-section{
    padding-top:38px !important;
    padding-bottom:52px !important;
  }

  .contact-section .portrait{
    width:172px !important;
    margin-top:24px !important;
  }
}


/* =========================================================
   V19 — SIGNATURE CALÉE SUR LES REPÈRES
   Repères Canva : portrait entre les deux guides verticaux.
   ========================================================= */

.contact-section .portrait{
  width:98px !important;
  margin-top:15px !important;
  margin-left:115px !important;
  margin-right:0 !important;
}

@media(min-width:700px){
  .contact-section .portrait{
    width:136px !important;
    margin-top:21px !important;
    margin-left:159px !important;
    margin-right:0 !important;
  }
}


/* =========================================================
   V20 — CONTACT CALÉ SUR LES REPÈRES
   On ne touche qu'au bloc contact.
   ========================================================= */

/* 1) Titre : un peu plus grand et légèrement décalé à gauche
      pour aligner le B de "Besoin" avec le bord gauche du picto structure,
      tout en gardant la fin de phrase au même endroit. */
.contact-section .contact-title{
  padding-left:4px !important;
  font-size:22.2px !important;
}

/* 2) Mail : remonté pour aligner sa ligne sur le @ du picto,
      pas sur le centre global de l'enveloppe. */
.contact-section .contact-row{
  margin-top:7px !important;
}

.contact-section .email{
  margin-top:1px !important;
}

/* 3) Photo/signature :
      - bord haut au niveau du bas du picto enveloppe
      - plus grande
      - bord gauche sous le @ de contact@pulse
      - bord droit vers le milieu de "mi" dans limited */
.contact-section .portrait{
  width:130px !important;
  margin-top:0 !important;
  margin-left:104px !important;
  margin-right:0 !important;
}

/* Desktop : mêmes rapports */
@media(min-width:700px){
  .contact-section .contact-title{
    padding-left:6px !important;
    font-size:30.7px !important;
  }

  .contact-section .email{
    margin-top:2px !important;
  }

  .contact-section .portrait{
    width:180px !important;
    margin-top:0 !important;
    margin-left:144px !important;
    margin-right:0 !important;
  }
}


/* =========================================================
   V21 — CONTACT FINITIONS
   Ajustements fins selon les repères de la dernière capture.
   ========================================================= */

/* Adresse mail : un peu plus grande et légèrement décalée à droite */
.contact-section .contact-row{
  margin-top:7px !important;
  margin-left:14px !important;
}

.contact-section .email{
  margin-top:0 !important;
  font-size:16.2px !important;
  letter-spacing:-.032em !important;
}

/* Photo/signature :
   - un peu remontée
   - légèrement agrandie
   - placée pour tenir entre le milieu du @/adresse et le "m" de limited */
.contact-section .portrait{
  width:136px !important;
  margin-top:-5px !important;
  margin-left:96px !important;
  margin-right:0 !important;
}

/* desktop cohérent */
@media(min-width:700px){
  .contact-section .contact-row{
    margin-left:19px !important;
  }

  .contact-section .email{
    font-size:22.6px !important;
  }

  .contact-section .portrait{
    width:188px !important;
    margin-top:-7px !important;
    margin-left:132px !important;
    margin-right:0 !important;
  }
}


/* =========================================================
   V29 — LIENS PDF SUR LES PICTOS
   ========================================================= */

.terrain-picto-link{
  display:block;
  width:52px;
  text-decoration:none;
  line-height:0;
  justify-self:start;
}

.terrain-picto-link .terrain-picto{
  display:block;
}

@media(min-width:700px){
  .terrain-picto-link{
    width:71px;
  }
}


/* =========================================================
   V30 — VISIONNEUSE PULSE
   Les PDF ne sont plus servis directement : les pages sont
   affichées sous forme d'images dans une visionneuse maison.
   ========================================================= */

body.viewer-open{overflow:hidden}

.pulse-viewer{
  position:fixed;
  inset:0;
  z-index:9999;
  display:none;
}
.pulse-viewer.is-open{display:block}
.pulse-viewer__backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,34,52,.94);
}
.pulse-viewer__panel{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:18px 18px 14px;
}
.pulse-viewer__close{
  position:absolute;
  top:18px;
  right:22px;
  z-index:2;
  width:42px;
  height:42px;
  border:1px solid rgba(255,247,222,.7);
  border-radius:50%;
  background:rgba(0,78,122,.72);
  color:#fff7de;
  font:400 32px/35px "Montserrat",sans-serif;
  cursor:pointer;
}
.pulse-viewer__stage{
  width:100%;
  min-height:0;
  flex:1;
  display:grid;
  grid-template-columns:56px minmax(0,1fr) 56px;
  align-items:center;
  justify-items:center;
  gap:16px;
}
.pulse-viewer__image{
  display:block;
  max-width:min(820px, calc(100vw - 180px));
  max-height:calc(100vh - 92px);
  width:auto;
  height:auto;
  object-fit:contain;
  user-select:none;
  -webkit-user-select:none;
  box-shadow:0 12px 40px rgba(0,0,0,.28);
}
.pulse-viewer__nav{
  width:48px;
  height:48px;
  border:1px solid rgba(255,247,222,.7);
  border-radius:50%;
  background:transparent;
  color:#fff7de;
  font:400 44px/40px "Montserrat",sans-serif;
  cursor:pointer;
}
.pulse-viewer__nav:disabled{opacity:.18;cursor:default}
.pulse-viewer__nav.is-hidden{visibility:hidden}
.pulse-viewer__footer{
  flex:0 0 auto;
  padding-top:8px;
  color:#fff7de;
  font:400 14px/1.2 "Montserrat",sans-serif;
  letter-spacing:.02em;
}

@media(max-width:699px){
  .pulse-viewer__panel{padding:54px 8px 10px}
  .pulse-viewer__close{
    top:10px;
    right:12px;
    width:36px;
    height:36px;
    font-size:28px;
    line-height:30px;
  }
  .pulse-viewer__stage{
    display:block;
    position:relative;
    width:100%;
    text-align:center;
  }
  .pulse-viewer__image{
    max-width:94vw;
    max-height:calc(100vh - 104px);
    margin:0 auto;
  }
  .pulse-viewer__nav{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    width:38px;
    height:38px;
    font-size:34px;
    line-height:31px;
    background:rgba(0,78,122,.78);
  }
  .pulse-viewer__prev{left:4px}
  .pulse-viewer__next{right:4px}
  .pulse-viewer__footer{padding-top:6px;font-size:13px}
}


/* =========================================================
   V31 — DESCRIPTIONS OFFRES 39
   Uniquement les textes descriptifs sous Regard / Stratégie / Mouvement.
   Même taille que "Un premier rendez-vous", en Regular.
   Titres inchangés.
   ========================================================= */

.offer p{
  font-size:15.8px !important;
  font-weight:400 !important;
  line-height:1.08 !important;
}

/* Desktop : même logique que le bloc rendez-vous */
@media(min-width:700px){
  .offer p{
    font-size:21.4px !important;
  }
}

/* V34 correction typographique — bloc 1 uniquement.
   Référence Canva : titre 60, accroche 42/39/34.
   Correspondances proportionnelles aux titres HTML existants. */
.hero .hero-punch{font-size:29px;line-height:1.06;letter-spacing:-.035em}
.promise-v34 .with-bar{font-size:20.3px;line-height:1.13}
.promise-v34 .promise-origin{font-size:18.85px;line-height:1.12}
.promise-v34 .promise-copy{font-size:16.43px;line-height:1.12;white-space:normal}
@media(min-width:700px){
  .hero .hero-punch{font-size:40px}
  .promise-v34 .with-bar{font-size:28px}
  .promise-v34 .promise-origin{font-size:26px}
  .promise-v34 .promise-copy{font-size:22.67px}
}


/* V35 — seul bloc jaune « Les terrains changent ».
   Les styles de la promesse V34 et des autres blocs restent inchangés. */
.cream-band-terrains{
  margin-top:34px;
  padding-top:31px !important;
  padding-bottom:38px !important;
}
.cream-band-terrains .terrains-section{margin-top:0 !important;}
.cream-band-terrains .terrains-heading h2{
  font-size:24.65px;
  line-height:1.08;
  letter-spacing:-.035em;
}
.cream-band-terrains .terrain-list{
  margin-top:28px;
  gap:29px;
}
.cream-band-terrains .terrain-item h3{
  font-size:20.3px;
  line-height:1.07;
}
.cream-band-terrains .terrain-item p{
  font-size:18.85px;
  line-height:1.1;
}
@media(min-width:700px){
  .cream-band-terrains{
    margin-top:46px;
    padding-top:43px !important;
    padding-bottom:53px !important;
  }
  .cream-band-terrains .terrains-heading h2{font-size:34px;}
  .cream-band-terrains .terrain-item h3{font-size:28px;}
  .cream-band-terrains .terrain-item p{font-size:26px;}
  .cream-band-terrains .terrain-list{margin-top:40px;gap:40px;}
}

/* V36 — troisième bloc seulement : offres sur fond bleu, d'après Canva.
   Échelle conservée des blocs validés : 51→34, 42→28, 33→22 px desktop. */
.offers-v36{
  margin-top:0;
  padding-top:29px;
  padding-bottom:35px;
}
.offers-v36>.with-bar{
  font-size:24.65px;
  line-height:1.08;
  margin-bottom:31px;
  letter-spacing:-.035em;
}
.offers-v36 .offer{margin-left:10px;margin-bottom:29px;}
.offers-v36 .offer h3{
  font-size:20.3px;
  line-height:1.1;
  margin-bottom:4px;
  white-space:nowrap;
}
.offers-v36 .offer p{
  font-size:15.95px;
  line-height:1.13;
  letter-spacing:-.03em;
  white-space:normal;
}
.offers-v36 .offers-more{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  text-align:left;
  text-decoration:none;
  margin:30px 0 0 auto;
  font-size:15.95px;
  line-height:1.13;
  width:max-content;
  max-width:100%;
}
.offers-v36 .offers-more strong{font-weight:700;}
.offers-v36 .offers-more .sa{font-weight:400;}
.offers-v36 .offers-more img{width:49px;height:49px;object-fit:contain;transform:translateY(-9px);}
@media(min-width:700px){
  .offers-v36{padding-top:40px;padding-bottom:48px;}
  .offers-v36>.with-bar{font-size:34px;margin-bottom:43px;}
  .offers-v36 .offer{margin-bottom:42px;}
  .offers-v36 .offer h3{font-size:28px;}
  .offers-v36 .offer p{font-size:22px;}
  .offers-v36 .offers-more{font-size:22px;margin-top:40px;}
  .offers-v36 .offers-more img{width:65px;height:65px;transform:translateY(-13px);}
}

/* V36 - inversion des couleurs du seul bloc « On s’en parle ? » */
.rdv-inverted{
  width:100%;
  background: url("assets/fond-livret.png") center center / 100% 100% no-repeat,
              linear-gradient(180deg,#ffda6a 0%,#fff7de 100%);
}
.rdv-inverted .gradient-text{
  background:none !important;
  color:var(--blue) !important;
  -webkit-text-fill-color:var(--blue) !important;
}
.rdv-inverted .with-bar::before{background:var(--blue) !important;}
.rdv-inverted .pill{border-color:var(--blue) !important;}
.rdv-inverted .calendar-picto{
  filter:brightness(0) saturate(100%) invert(18%) sepia(54%) saturate(2219%) hue-rotate(173deg) brightness(90%) contrast(104%);
}

/* V37 — ajustement local du panneau contact, sans toucher aux blocs validés */
.offers-v36{padding-bottom:24px !important;}
.rdv-inverted{
  display:block;
  position:relative;
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  background-image:url("assets/fond-livret.png") !important;
  background-repeat:no-repeat !important;
  background-position:center !important;
  background-size:100% 100% !important;
}
.rdv-inverted .rdv-section{
  margin:0 0 0 32px !important;
  width:calc(100% - 64px) !important;
  padding:24px 0 24px !important;
}
.rdv-inverted .with-bar{
  font-size:24.65px !important;
  line-height:1.08 !important;
  margin-bottom:16px !important;
}
.rdv-inverted .appointment{
  font-size:18.85px !important;
  line-height:1.08 !important;
  letter-spacing:-.037em !important;
  margin:0 0 0 10px !important;
  width:calc(100% - 10px) !important;
  max-width:none !important;
}
.rdv-inverted .rdv-line{display:block;white-space:nowrap;}
.rdv-inverted .rdv-cta{
  display:flex !important;
  justify-content:flex-end !important;
  margin:17px 0 0 0 !important;
}
.rdv-inverted .pill{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:7px !important;
  padding:6px 9px 6px 12px !important;
  min-height:43px !important;
  width:auto !important;
  font-size:17.4px !important;
  line-height:1 !important;
  white-space:nowrap !important;
  border:2px solid var(--blue) !important;
}
.rdv-inverted .rdv-chat-picto{
  display:block !important;
  width:38px !important;
  height:31px !important;
  object-fit:contain !important;
  opacity:1 !important;
  filter:none !important;
  mix-blend-mode:normal !important;
}
@media (min-width:700px){
  .offers-v36{padding-bottom:32px !important;}
  .rdv-inverted .rdv-section{
    margin-left:44px !important;
    width:calc(100% - 88px) !important;
    padding-top:32px !important;
    padding-bottom:33px !important;
  }
  .rdv-inverted .with-bar{font-size:34px !important;margin-bottom:19px !important;}
  .rdv-inverted .appointment{font-size:26px !important;line-height:1.08 !important;}
  .rdv-inverted .rdv-cta{margin-top:23px !important;}
  .rdv-inverted .pill{
    font-size:24px !important;
    border-width:3px !important;
    min-height:60px !important;
    padding:7px 12px 7px 17px !important;
    gap:9px !important;
  }
  .rdv-inverted .rdv-chat-picto{width:52px !important;height:44px !important;}
}

/* V38 : seules les dimensions VISUELLES des contenus sont augmentées de 15 %.
   Le contour et les paddings du cartouche restent inchangés. */
.rdv-inverted .pill > span {
  display:inline-block;
  transform:scale(1.15);
  transform-origin:center center;
  margin-right:4px;
}
.rdv-inverted .rdv-chat-picto {
  transform:scale(1.15);
  transform-origin:center center;
}


/* V38 final — remplacement du bouton par le PNG fourni par l'utilisateur */
.rdv-inverted .rdv-cta{
  display:flex !important;
  justify-content:flex-end !important;
  margin-top:17px !important;
}
.rdv-inverted .pill.pill-image{
  display:block !important;
  width:188px !important;
  min-height:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:none !important;
  line-height:0 !important;
}
.rdv-inverted .pill.pill-image img{
  display:block;
  width:100%;
  height:auto;
}
@media (min-width:700px){
  .rdv-inverted .rdv-cta{
    margin-top:24px !important;
  }
  .rdv-inverted .pill.pill-image{
    width:263px !important;
  }
}


/* V40 — Signature entièrement reconstruite sur base V38 validée.
   Règles isolées : aucun impact sur les blocs précédents. */
.pulse-signature-v40 {
  width:100%;
  box-sizing:border-box;
  padding:23px 0 25px;
  background:var(--blue);
}
.pulse-signature-title {
  margin:0 0 12px 32px;
  padding:0 0 0 10px;
  border-left:3px solid var(--grad-start);
  font-size:24.65px;
  font-weight:700;
  line-height:1.12;
  letter-spacing:-.042em;
  white-space:nowrap;
}
.pulse-signature-pair {
  margin-left:38px;
  display:flex;
  gap:15px;
  align-items:center;
}
.pulse-signature-photo {
  display:block;
  width:137px;
  height:auto;
  flex:0 0 137px;
}
.pulse-signature-copy {
  margin:0;
  width:185px;
  flex:0 0 185px;
  font-size:13.05px;
  font-weight:400;
  line-height:1.13;
  letter-spacing:-.046em;
  text-align:center;
}
.pulse-signature-copy span {display:block;white-space:nowrap;}
.pulse-signature-copy .pulse-signature-break {margin-top:13px;}
.pulse-signature-email-row {
  display:flex;
  justify-content:center;
  align-items:center;
  gap:10px;
  margin:13px auto 0;
  width:100%;
}
.pulse-signature-email {
  font-size:17.86px;
  font-weight:400;
  line-height:1.1;
  letter-spacing:-.05em;
  text-decoration:none;
  white-space:nowrap;
}
.pulse-signature-email-icon {
  width:28px;
  height:28px;
  object-fit:contain;
}
@media(min-width:700px) {
  .pulse-signature-v40 {padding:32px 0 35px;}
  .pulse-signature-title {
    margin:0 0 16px 44px;
    padding-left:14px;
    border-left-width:4px;
    font-size:34px;
  }
  .pulse-signature-pair {margin-left:53px;gap:21px;}
  .pulse-signature-photo {width:190px;flex-basis:190px;}
  .pulse-signature-copy {width:255px;flex-basis:255px;font-size:18px;}
  .pulse-signature-copy .pulse-signature-break {margin-top:18px;}
  .pulse-signature-email-row {margin-top:18px;gap:14px;}
  .pulse-signature-email {font-size:24.7px;}
  .pulse-signature-email-icon {width:39px;height:39px;}
}

/* V40 — recalage signature d'après capture Canva 100 % du 21/10, 18h46.
   Ne concerne que le dernier panneau. */
.pulse-signature-v40 {
  padding-top:18px;
  padding-bottom:30px;
}
.pulse-signature-title {
  margin-left:30px;
  margin-bottom:5px;
  padding-left:7px;
}
.pulse-signature-pair {
  margin-left:38px;
  gap:20px;
  align-items:flex-start;
}
.pulse-signature-copy {
  font-size:12.57px; /* 26 Canva, ajustement léger de 27 */
  margin-top:19px;
}
.pulse-signature-email-row {
  justify-content:flex-end;
  box-sizing:border-box;
  padding-right:24px;
  margin-top:12px;
  gap:10px;
}
@media(min-width:700px) {
  .pulse-signature-v40 {padding-top:25px;padding-bottom:42px;}
  .pulse-signature-title {margin-left:42px;margin-bottom:7px;padding-left:10px;}
  .pulse-signature-pair {margin-left:53px;gap:28px;}
  .pulse-signature-copy {font-size:17.33px;margin-top:26px;}
  .pulse-signature-email-row {padding-right:33px;margin-top:17px;gap:14px;}
}

/* V40 proposition 18h54 : e-mail juste sous le titre, photo et texte en dessous */
.pulse-signature-v40 {padding-top:21px !important;padding-bottom:31px !important;}
.pulse-signature-title {margin-bottom:6px !important;}
.pulse-signature-email-row {
  display:flex !important;justify-content:flex-end !important;
  align-items:center !important;margin:0 0 18px !important;
  padding:0 22px 0 0 !important;gap:7px !important;
}
.pulse-signature-email {font-size:17.86px !important;}
.pulse-signature-email-icon {width:28px !important;height:28px !important;}
.pulse-signature-pair {margin-left:38px !important;gap:20px !important;}
@media (min-width:700px) {
  .pulse-signature-v40 {padding-top:29px !important;padding-bottom:43px !important;}
  .pulse-signature-title {margin-bottom:8px !important;}
  .pulse-signature-email-row {margin-bottom:25px !important;padding-right:30px !important;gap:10px !important;}
  .pulse-signature-email {font-size:24.7px !important;}
  .pulse-signature-email-icon {width:39px !important;height:39px !important;}
  .pulse-signature-pair {margin-left:53px !important;gap:28px !important;}
}


/* V40 — ajustement fin du sous-texte e-mail sous le titre */
.pulse-signature-title{
  margin-bottom:2px !important;
}
.pulse-signature-email-row{
  display:grid !important;
  grid-template-columns:1fr auto !important;
  align-items:center !important;
  width:calc(100% - 154px) !important;
  margin:0 0 14px 132px !important;
  padding:0 22px 0 0 !important;
  gap:10px !important;
  transform:translateY(-3px) !important;
}
.pulse-signature-email{
  font-size:16.9px !important;
  line-height:1 !important;
  justify-self:start !important;
}
.pulse-signature-email-icon{
  width:28px !important;
  height:28px !important;
  justify-self:end !important;
}
.pulse-signature-pair{
  margin-top:0 !important;
}
@media (min-width:700px){
  .pulse-signature-title{
    margin-bottom:4px !important;
  }
  .pulse-signature-email-row{
    width:calc(100% - 223px) !important;
    margin:0 0 18px 191px !important;
    padding-right:30px !important;
    gap:12px !important;
    transform:translateY(-4px) !important;
  }
  .pulse-signature-email{
    font-size:23.3px !important;
    line-height:1 !important;
  }
  .pulse-signature-email-icon{
    width:39px !important;
    height:39px !important;
  }
}


/* V40 — micro-ajustement final : mail+picto décalés à droite */
.pulse-signature-email-row{
  margin-left:140px !important;
}
@media (min-width:700px){
  .pulse-signature-email-row{
    margin-left:205px !important;
  }
}

/* V41 — situations : affordance tactile uniquement sur mobile.
   Aucun changement de typographie, dimensions ou césures des textes. */
@media (max-width:699px) {
  .cream-band-terrains .terrain-item {
    position:relative;
    border-radius:5px;
    transition:background-color .15s ease;
  }
  /* Le lien existant et sa visionneuse couvrent désormais la situation entière. */
  .cream-band-terrains .terrain-picto-link::before {
    content:"";
    position:absolute;
    inset:-5px -16px;
    z-index:2;
  }
  .cream-band-terrains .terrain-picto-link::after {
    content:"";
    position:absolute;
    right:-12px;
    top:50%;
    width:7px;
    height:7px;
    border-right:2px solid #014e7b;
    border-top:2px solid #014e7b;
    transform:translateY(-50%) rotate(45deg);
    pointer-events:none;
  }
  .cream-band-terrains .terrain-item:active {
    background-color:rgba(1,78,123,.085);
  }
  .cream-band-terrains .terrain-item:focus-within {
    outline:2px solid rgba(1,78,123,.5);
    outline-offset:4px;
  }
}
@media (prefers-reduced-motion:reduce) {
  .cream-band-terrains .terrain-item {transition:none;}
}
