/* Echografilm — réservation premium avec visuel maman — Site Core 1.3.27 */
body.page .efg-booking-premium-intro,
body.page .efg-booking-premium-form,
body.page .efg-booking-features{--efg-booking-pink:#ff5576;--efg-booking-pink-dark:#ff4470;--efg-booking-text:#4f4f4f;--efg-booking-title:#3f3f47;--efg-booking-soft:#fff6f8;--efg-booking-card:#fffafb;--efg-booking-line:#f2dfe5;--efg-booking-shadow:0 18px 55px rgba(89,71,79,.08)}
.efg-booking-premium-intro{max-width:1220px!important;margin:0 auto 28px!important;padding:clamp(28px,4vw,52px)!important;border-radius:36px;background:linear-gradient(135deg,#fff 0%,#fffafb 45%,#fff5f8 100%);box-shadow:var(--efg-booking-shadow);position:relative;overflow:hidden}
.efg-booking-premium-intro::before{content:"";position:absolute;left:-70px;bottom:-80px;width:250px;height:250px;border-radius:50%;background:rgba(255,85,118,.08);filter:blur(1px)}
.efg-booking-premium-intro::after{content:"";position:absolute;right:-90px;top:-110px;width:300px;height:300px;border-radius:50%;background:rgba(255,85,118,.10)}
.efg-booking-hero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(320px,.9fr);gap:26px;align-items:center;position:relative;z-index:1}
.efg-eyebrow{display:flex;align-items:center;gap:18px;color:var(--efg-booking-pink);font-weight:800;font-size:clamp(14px,1.2vw,18px);margin:0 0 16px!important}
.efg-eyebrow::after{content:"";width:58px;max-width:15vw;height:3px;border-radius:999px;background:rgba(255,85,118,.35)}
.efg-booking-title{font-size:clamp(48px,6vw,88px)!important;line-height:.98!important;letter-spacing:-.055em!important;color:var(--efg-booking-title)!important;margin:0 0 18px!important;max-width:760px}
.efg-booking-lead{font-size:clamp(22px,2.1vw,34px);line-height:1.35;max-width:720px;color:#666;margin:0!important}
.efg-booking-lead strong{color:#444}
.efg-booking-hero-visual{display:flex;justify-content:flex-end}
.efg-booking-hero-image-wrap{position:relative;display:inline-block;max-width:100%}
.efg-booking-hero-image-wrap::before,.efg-booking-hero-image-wrap::after{content:"";position:absolute;background:rgba(255,85,118,.08);pointer-events:none}
.efg-booking-hero-image-wrap::before{inset:34px 18px 22px 0;clip-path:polygon(0 18%,78% 0,100% 37%,28% 100%)}
.efg-booking-hero-image-wrap::after{right:-18px;bottom:8px;width:210px;height:115px;clip-path:polygon(14% 0,100% 0,84% 100%,0 100%)}
.efg-booking-hero-image{display:block;width:min(100%,430px);border-radius:30px;position:relative;z-index:1;box-shadow:0 20px 45px rgba(66,46,57,.09)}
.efg-booking-hero-heart{position:absolute;left:18px;top:50%;transform:translateY(-34%);z-index:2;font-size:76px;line-height:1;color:rgba(255,85,118,.88);text-shadow:0 3px 10px rgba(255,255,255,.85)}
.efg-booking-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;position:relative;z-index:1;margin-top:30px}
.efg-booking-steps::before{content:"";position:absolute;left:13%;right:13%;top:50%;transform:translateY(-50%);border-top:3px dotted rgba(255,85,118,.25);z-index:0}
.efg-booking-step{position:relative;display:grid;grid-template-columns:74px minmax(0,1fr);gap:16px;align-items:start;padding:22px 22px 20px;border:1px solid rgba(255,85,118,.12);border-radius:24px;background:rgba(255,250,251,.92);box-shadow:0 12px 30px rgba(91,72,80,.05);z-index:1}
.efg-booking-step-num{position:absolute;top:14px;left:102px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--efg-booking-pink);font-weight:900;font-size:20px;box-shadow:0 4px 13px rgba(255,85,118,.14)}
.efg-booking-step-icon{width:74px;height:74px;border-radius:50%;display:grid;place-items:center;background:rgba(255,85,118,.10);color:var(--efg-booking-pink);font-size:34px;line-height:1}
.efg-booking-step strong{display:block;font-size:18px;line-height:1.2;color:#363645;margin:4px 0 8px}.efg-booking-step p{font-size:15px;line-height:1.45;color:#737381;margin:0}
.efg-booking-confirm{display:flex;gap:12px;align-items:center;justify-content:center;font-size:22px;color:#3d3d49;margin:26px 0 0!important}.efg-booking-confirm span{color:var(--efg-booking-pink);font-size:40px;line-height:1}
.efg-booking-premium-form{max-width:1220px!important;margin:0 auto 30px!important;padding:clamp(18px,2.5vw,28px)!important;border-radius:32px;background:#fdfcfd;box-shadow:0 18px 55px rgba(70,70,70,.05);border:1px solid #f2f1f2}
.efg-booking-form-shell{display:grid!important;grid-template-columns:minmax(0,1fr) 320px!important;gap:24px!important;align-items:stretch!important;margin:0!important}
.efg-booking-engine{min-width:0;background:#fff;border:1px solid #ece9eb;border-radius:28px;padding:clamp(22px,3vw,36px)!important;box-shadow:0 12px 34px rgba(70,70,70,.05)}
.efg-booking-start-head{display:grid;grid-template-columns:70px minmax(0,1fr);gap:18px;align-items:start;margin-bottom:10px}
.efg-booking-start-icon{width:70px;height:70px;border-radius:24px;display:grid;place-items:center;background:rgba(255,85,118,.10);color:var(--efg-booking-pink);font-size:34px;line-height:1}
.efg-booking-start-title{font-size:clamp(34px,3.2vw,56px)!important;line-height:1.03!important;color:#3e3e48!important;margin:0 0 10px!important;letter-spacing:-.04em!important}
.efg-booking-start-copy{font-size:18px;line-height:1.5;color:#757581;margin:0!important;max-width:700px}
.efg-booking-engine .efb{margin:12px 0 0!important;padding:0!important;max-width:none!important;width:100%!important}.efg-booking-engine .efb-card{box-shadow:none!important;border:0!important;padding:18px 0 0!important}.efg-booking-engine .efb-progress{margin-bottom:18px}
.efg-booking-engine .efb-step[data-step="1"] .efb-primary{width:min(100%,500px);display:flex;align-items:center;justify-content:center;gap:10px;font-size:18px;min-height:60px;background:linear-gradient(135deg,#ff5d83 0%,#ff4470 100%)}
.efg-booking-trust{border-radius:24px;padding:26px 22px;background:linear-gradient(145deg,#fff7f9,#fffafb);border:1px solid rgba(255,85,118,.12);box-shadow:0 12px 30px rgba(255,85,118,.05);color:#555;display:flex;flex-direction:column;justify-content:flex-start}
.efg-booking-trust-icon{width:60px;height:60px;border-radius:20px;display:grid;place-items:center;background:rgba(255,85,118,.14);color:var(--efg-booking-pink);font-size:32px;line-height:1;margin-bottom:18px}
.efg-booking-trust h3{font-size:22px;line-height:1.2;margin:0 0 18px;color:#343444}.efg-booking-trust ul{list-style:none;padding:0;margin:0;display:grid;gap:14px}.efg-booking-trust li{position:relative;padding-left:30px;line-height:1.42;color:#666676}.efg-booking-trust li:before{content:"✓";position:absolute;left:0;top:0;width:21px;height:21px;border-radius:50%;display:grid;place-items:center;background:var(--efg-booking-pink);color:#fff;font-size:12px;font-weight:900}
.efg-booking-features{max-width:1220px;margin:14px auto 34px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;padding:0 clamp(6px,1.2vw,12px)}
.efg-booking-feature{text-align:center;padding:16px 10px}.efg-booking-feature-icon{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 14px;border-radius:50%;background:rgba(255,85,118,.10);color:var(--efg-booking-pink);font-size:30px;line-height:1}.efg-booking-feature strong{display:block;font-size:18px;line-height:1.2;color:#2f2f3a;margin-bottom:8px}.efg-booking-feature p{margin:0;color:#777786;line-height:1.45}
.efg-disclaimer{max-width:1220px!important;margin:0 auto!important}
@media(max-width:1080px){.efg-booking-hero{grid-template-columns:1fr;gap:22px}.efg-booking-hero-visual{justify-content:center}.efg-booking-title{max-width:none}.efg-booking-lead{max-width:none}.efg-booking-features{grid-template-columns:repeat(2,minmax(0,1fr))}.efg-booking-form-shell{grid-template-columns:1fr!important}.efg-booking-trust{order:2}}
@media(max-width:900px){.efg-booking-steps{grid-template-columns:1fr}.efg-booking-steps::before{display:none}.efg-booking-title{font-size:clamp(42px,11vw,66px)!important}.efg-booking-lead{font-size:clamp(20px,5vw,28px)}.efg-booking-step{grid-template-columns:64px 1fr}.efg-booking-step-num{left:88px}.efg-booking-step-icon{width:64px;height:64px;font-size:30px}}
@media(max-width:640px){.efg-booking-premium-intro,.efg-booking-premium-form{border-radius:24px!important}.efg-booking-premium-intro{padding:22px 18px!important}.efg-booking-hero-image{width:100%}.efg-booking-hero-heart{font-size:60px;left:10px}.efg-eyebrow{gap:12px}.efg-eyebrow::after{width:44px}.efg-booking-step{padding:18px 16px}.efg-booking-confirm{justify-content:flex-start;font-size:18px}.efg-booking-start-head{grid-template-columns:56px 1fr;gap:14px}.efg-booking-start-icon{width:56px;height:56px;border-radius:18px;font-size:28px}.efg-booking-engine{padding:20px 14px!important}.efg-booking-start-copy{font-size:15px}.efg-booking-trust{padding:22px 18px}.efg-booking-features{grid-template-columns:1fr;gap:10px}}


/* v1.3.28 — Intégration correcte de l'étape choix du forfait dans la page réservation */
.efg-booking-engine.efb-service-host-wide{
  background:#fff!important;
  border-radius:28px!important;
  overflow:visible!important;
}
.efg-booking-engine .efb.efb-service-step-wide,
.efg-booking-engine .efb{
  left:auto!important;
  transform:none!important;
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
}
.efg-booking-engine .efb.efb-service-step-wide .efb-card{
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  padding:18px 0 0!important;
}
.efg-booking-engine .efb.efb-service-step-wide .efb-progress,
.efg-booking-engine .efb .efb-progress{
  max-width:none!important;
  margin:0 0 20px!important;
}
.efg-booking-engine .efb.efb-service-step-wide .efb-step[data-step="2"] > h2,
.efg-booking-engine .efb .efb-step[data-step="2"] > h2{
  max-width:none!important;
  margin:0 0 18px!important;
  text-align:left!important;
  font-size:clamp(30px,3.2vw,54px)!important;
  line-height:1.05!important;
  letter-spacing:-.045em!important;
}
.efg-booking-engine .efb.efb-service-step-wide .efb-step[data-step="2"] > h2::before,
.efg-booking-engine .efb .efb-step[data-step="2"] > h2::before{
  content:"Forfaits Paris";
  display:block;
  margin-bottom:12px;
  color:#ff5576;
  font-size:14px;
  line-height:1.2;
  font-weight:800;
}
.efg-booking-engine .efb.efb-service-step-wide .efb-services,
.efg-booking-engine .efb .efb-services{
  width:100%!important;
  margin:22px 0 0!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:18px!important;
  align-items:stretch!important;
}
.efg-booking-engine .efb.efb-service-step-wide .efb-service,
.efg-booking-engine .efb.efb-service-step-wide button.efb-service,
.efg-booking-engine .efb .efb-service,
.efg-booking-engine .efb button.efb-service{
  min-height:0!important;
}
.efg-booking-engine .efb.efb-service-step-wide .efb-service,
.efg-booking-engine .efb.efb-service-step-wide button.efb-service{
  border-radius:26px!important;
}
@media(max-width:980px){
  .efg-booking-engine .efb.efb-service-step-wide .efb-services,
  .efg-booking-engine .efb .efb-services{grid-template-columns:1fr!important}
}


/* v1.3.29 — réservation plein écran : suppression du panneau confiance et forfaits sur toute la largeur */
.efg-booking-premium-form{max-width:1320px!important}
.efg-booking-engine-full{width:100%!important;max-width:none!important}
.efg-booking-engine-full .efb{width:100%!important;max-width:none!important}
.efg-booking-engine-full .efb-card{width:100%!important;max-width:none!important}
.efg-booking-engine-full .efb-services{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:18px!important;
  width:100%!important;
  margin:26px 0 0!important;
}
.efg-booking-engine-full .efb-service,
.efg-booking-engine-full button.efb-service{
  position:relative!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  justify-content:flex-start!important;
  min-width:0!important;
  min-height:560px!important;
  height:100%!important;
  padding:28px 24px 24px!important;
  overflow:hidden!important;
  border-radius:28px!important;
}
.efg-booking-engine-full .efb-plan-badge{align-self:flex-start!important;margin:0 0 20px!important}
.efg-booking-engine-full .efb-plan-title{display:block!important;font-size:clamp(24px,2vw,34px)!important;line-height:1.04!important;margin:0 0 10px!important;letter-spacing:-.035em!important}
.efg-booking-engine-full .efb-plan-price{display:block!important;font-size:clamp(44px,3.8vw,62px)!important;line-height:1!important;margin:4px 0 5px!important;font-weight:700!important;color:#5f5f62!important}
.efg-booking-engine-full .efb-plan-duration{display:block!important;margin:0 0 16px!important;font-weight:700!important;color:#6e6e73!important}
.efg-booking-engine-full .efb-service-details{display:block!important;width:100%!important;margin:18px 0 20px!important;font-size:15px!important;line-height:1.48!important;opacity:1!important}
.efg-booking-engine-full .efb-plan-period{display:block!important;width:100%!important;margin-top:auto!important}
.efg-booking-engine-full .efb-plan-cta{align-self:center!important;margin:8px auto 0!important}
.efg-booking-engine-full .efb-service-unavailable{opacity:.62!important;filter:grayscale(.12)!important;cursor:not-allowed!important}
@media(max-width:1180px){.efg-booking-engine-full .efb-services{grid-template-columns:repeat(2,minmax(0,1fr))!important}.efg-booking-engine-full .efb-service{min-height:0!important}}
@media(max-width:700px){.efg-booking-engine-full .efb-services{grid-template-columns:1fr!important;gap:14px!important}.efg-booking-engine-full .efb-service,.efg-booking-engine-full button.efb-service{min-height:0!important;padding:26px 22px!important}}

/* v1.3.29.1 — priorité aux 4 cartes sur toute la largeur */
.efg-booking-engine.efg-booking-engine-full .efb .efb-services{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  width:100%!important;
}
.efg-booking-engine.efg-booking-engine-full .efb .efb-service,
.efg-booking-engine.efg-booking-engine-full .efb button.efb-service{
  min-width:0!important;
  min-height:560px!important;
}
.efg-booking-engine.efg-booking-engine-full .efb .efb-service-unavailable{
  opacity:1!important;
  filter:none!important;
}
.efg-booking-engine.efg-booking-engine-full .efb .efb-service-unavailable > *:not(.efb-dpa-unavailable-ribbon):not(.efb-dpa-unavailable-message){
  opacity:.42!important;
  filter:grayscale(.22);
}
.efg-booking-engine.efg-booking-engine-full .efb .efb-service-unavailable .efb-dpa-unavailable-ribbon,
.efg-booking-engine.efg-booking-engine-full .efb .efb-service-unavailable .efb-dpa-unavailable-message{
  opacity:1!important;
  filter:none!important;
}
@media(max-width:1180px){
  .efg-booking-engine.efg-booking-engine-full .efb .efb-services{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .efg-booking-engine.efg-booking-engine-full .efb .efb-service{min-height:0!important}
}
@media(max-width:700px){
  .efg-booking-engine.efg-booking-engine-full .efb .efb-services{grid-template-columns:1fr!important}
}


/* v1.3.30 — forfaits larges en 2 colonnes + périodes toujours entièrement visibles */
.efg-booking-engine.efg-booking-engine-full .efb .efb-services{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:24px!important;
  align-items:stretch!important;
  width:100%!important;
  max-width:none!important;
}
.efg-booking-engine.efg-booking-engine-full .efb .efb-service,
.efg-booking-engine.efg-booking-engine-full .efb button.efb-service{
  min-width:0!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  padding:32px 30px 28px!important;
  border-radius:30px!important;
  overflow:hidden!important;
}
.efg-booking-engine.efg-booking-engine-full .efb .efb-plan-title{
  font-size:clamp(30px,2.6vw,44px)!important;
  line-height:1.05!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
  hyphens:none!important;
}
.efg-booking-engine.efg-booking-engine-full .efb .efb-plan-price{
  font-size:clamp(52px,4.6vw,72px)!important;
}
.efg-booking-engine.efg-booking-engine-full .efb .efb-service-details{
  font-size:16px!important;
  line-height:1.55!important;
}
.efg-booking-engine.efg-booking-engine-full .efb .efb-plan-period{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  margin-top:auto!important;
  padding-top:12px!important;
  overflow:visible!important;
}
.efg-booking-engine.efg-booking-engine-full .efb .efb-service-period{
  display:grid!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  margin:0 0 10px!important;
  padding:16px 18px!important;
  overflow:visible!important;
  box-sizing:border-box!important;
}
.efg-booking-engine.efg-booking-engine-full .efb .efb-service-period *,
.efg-booking-engine.efg-booking-engine-full .efb .efb-period-status,
.efg-booking-engine.efg-booking-engine-full .efb .efb-dpa-unavailable-message{
  max-width:100%!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
}
.efg-booking-engine.efg-booking-engine-full .efb .efb-service-period strong{
  display:block!important;
  font-size:18px!important;
  line-height:1.35!important;
}
.efg-booking-engine.efg-booking-engine-full .efb .efb-service-period small,
.efg-booking-engine.efg-booking-engine-full .efb .efb-service-period em{
  display:block!important;
  font-size:13px!important;
  line-height:1.45!important;
}
.efg-booking-engine.efg-booking-engine-full .efb .efb-period-status{
  display:block!important;
  margin-top:8px!important;
  line-height:1.4!important;
}
.efg-booking-engine.efg-booking-engine-full .efb .efb-plan-cta{
  margin-top:12px!important;
}
@media(max-width:860px){
  .efg-booking-engine.efg-booking-engine-full .efb .efb-services{
    grid-template-columns:1fr!important;
    gap:18px!important;
  }
  .efg-booking-engine.efg-booking-engine-full .efb .efb-service,
  .efg-booking-engine.efg-booking-engine-full .efb button.efb-service{
    padding:28px 24px 24px!important;
  }
}


/* === v1.3.31 - Prochains créneaux disponibles === */
.efg-next-slots-section{padding-top:8px;padding-bottom:8px}
.efg-next-slots-shortcode{margin-top:18px}
.efg-next-slots-card{
  border:1px solid rgba(255,90,125,.18);
  border-radius:28px;
  padding:28px;
  background:linear-gradient(135deg,#fff7fa 0%,#ffffff 55%,#fff7fb 100%);
  box-shadow:0 18px 50px rgba(26,32,44,.06);
}
.efg-next-slots-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px}
.efg-next-slots-kicker{margin:0 0 6px;color:#ff5a7d;font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-size:.85rem}
.efg-next-slots-head h3{margin:0;font-size:clamp(1.4rem,2.1vw,2rem);line-height:1.08}
.efg-next-slots-link{display:inline-flex;align-items:center;justify-content:center;padding:12px 18px;border-radius:999px;background:#fff;color:#ff4f78;border:1px solid rgba(255,90,125,.22);text-decoration:none;font-weight:700;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.efg-next-slots-link:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(255,90,125,.16);background:#fff7fa}
.efg-next-slots-link.is-primary{background:linear-gradient(135deg,#ff5a7d,#ff6c95);border-color:transparent;color:#fff}
.efg-next-slots-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.efg-next-slot{display:flex;flex-direction:column;gap:8px;min-height:148px;padding:18px;border-radius:22px;border:1px solid rgba(203,213,225,.7);background:#fff;text-decoration:none;color:#1f2937;box-shadow:0 10px 24px rgba(15,23,42,.05);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.efg-next-slot:hover{transform:translateY(-2px);box-shadow:0 16px 28px rgba(255,90,125,.12);border-color:rgba(255,90,125,.35)}
.efg-next-slot-date{font-size:.98rem;font-weight:700;color:#111827}
.efg-next-slot-time{font-size:1.95rem;line-height:1;color:#ff547d}
.efg-next-slot-note{margin-top:auto;font-size:.92rem;line-height:1.45;color:#6b7280}
.efg-next-slots-note-global{margin:16px 0 0;color:#6b7280;font-size:.95rem;line-height:1.5}
.efg-next-slots-empty p{margin:0 0 12px}
@media (max-width: 960px){
  .efg-next-slots-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width: 720px){
  .efg-next-slots-card{padding:22px}
  .efg-next-slots-head{flex-direction:column;align-items:flex-start}
  .efg-next-slots-grid{grid-template-columns:1fr}
}


/* v1.3.34 — numéros des 3 étapes placés sur le coin du pictogramme pour ne plus masquer le titre */
.efg-booking-step-num{
  top:10px!important;
  left:72px!important;
  z-index:2;
}
@media(max-width:900px){
  .efg-booking-step-num{left:60px!important}
}
@media(max-width:640px){
  .efg-booking-step-num{top:8px!important;left:56px!important}
}
