.elementor-542 .elementor-element.elementor-element-91f2467{--display:flex;}.elementor-542 .elementor-element.elementor-element-901cadf{--spacer-size:137px;}.elementor-542 .elementor-element.elementor-element-5c9c145f{--display:flex;}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-542 .elementor-element.elementor-element-e62a67e{width:100%;max-width:100%;font-family:"Roboto", Sans-serif;font-weight:400;line-height:1px;letter-spacing:1px;word-spacing:2px;color:var( --e-global-color-secondary );}.elementor-542 .elementor-element.elementor-element-e62a67e > .elementor-widget-container{margin:1px 1px 1px 1px;padding:1px 1px 1px 1px;}.elementor-542 .elementor-element.elementor-element-e62a67e p{margin-block-end:0px;}.elementor-542 .elementor-element.elementor-element-e62a67e a{color:#4F66E8;}:root{--page-title-display:none;}/* Start custom CSS *//* =============================================
   VARIABLES GLOBALES
   ============================================= */
:root {
  --primary: #e91e63;
  --primary-dark: #b0003a;         /* ajout : contraste suffisant pour focus */
  --accent: #ff4081;
  --bg-light: #fffaf5;
  --text: #333;
  --radius: 12px;
  --shadow: 0 10px 30px rgba(233, 30, 99, 0.15);

  /* Transitions ciblées : on évite "all" qui déclenche des reflows */
  --transition-transform:  transform  0.35s cubic-bezier(0.4, 0, 0.2, 1);
  --transition-shadow:     box-shadow 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  --transition-border:     border-color 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  --transition-opacity:    opacity    0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

/* =============================================
   CONTROLES ASTRA / ELEMENTOR
   ============================================= */
.ast-layout-control .elementor-control-field,
.ast-body.elementor-page-542-control .elementor-control-field {
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
}

.ast-layout-control .elementor-control-input-wrapper,
.ast-body.elementor-page-542-control .elementor-control-input-wrapper {
  width: 100%;
}

/* Grille des choix de layout */
.ast-layout-control .elementor-choices {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 16px;
  height: auto;
}

/* Labels avec hover + scale */
.ast-layout-control .elementor-choices-label,
.ast-body.elementor-page-542-control .elementor-choices-label {
  position: relative;
  width: 100%;
  min-height: 110px;
  border-radius: var(--radius);
  border: 2px solid transparent;
  overflow: hidden;
  /* Promotion GPU pour éviter le jank sur scale */
  will-change: transform;
  transition:
    var(--transition-transform),
    var(--transition-border),
    var(--transition-shadow);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.ast-layout-control .elementor-choices-label:hover,
.ast-body.elementor-page-542-control .elementor-choices-label:hover {
  transform: scale(1.05);
  border-color: var(--primary);
  box-shadow: var(--shadow);
}

/* Tooltip CSS (visuel uniquement)
   Pour l'accessibilité, ajouter aria-describedby côté HTML */
.ast-body.elementor-page-542-control .elementor-choices-label::before {
  content: attr(data-tooltip);
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(0, 0, 0, 0.85);
  color: #fff;
  padding: 8px 12px;
  border-radius: 8px;
  font-size: 13px;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: var(--transition-opacity);
}

.ast-body.elementor-page-542-control .elementor-choices-label:hover::before {
  opacity: 1;
  bottom: calc(100% + 8px);
}

/* Bouton sticky "Aperçu des modifications" */
.elementor-control-ast-preview-changes-button.elementor-control {
  position: sticky;
  bottom: 0;
  z-index: 100;
  padding: 16px 0;
  /* backdrop-filter uniquement si le navigateur peut le gérer à bon coût */
  background: rgba(255, 255, 255, 0.95);
  will-change: backdrop-filter;
  backdrop-filter: blur(12px);
  box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.1);
}

.elementor-control-ast-preview-changes-button .elementor-button {
  width: 100%;
  border-radius: var(--radius);
  font-weight: 600;
  will-change: transform;
  transition:
    var(--transition-transform),
    var(--transition-shadow);
}

.elementor-control-ast-preview-changes-button .elementor-button:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow);
}

/* Upgrade CTA */
.ast-pro-upgrade-cta-wrapper {
  padding: 24px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  background: linear-gradient(135deg, #fffaf5, #ffe4f0);
  border-radius: var(--radius);
}

.ast-pro-upgrade-cta-wrapper a.ast-pro-upgrade-link {
  color: #fff;
  background: var(--primary);
  padding: 12px 24px;
  border-radius: var(--radius);
  font-weight: 600;
  will-change: transform;
  transition:
    var(--transition-transform),
    background-color 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.ast-pro-upgrade-cta-wrapper a.ast-pro-upgrade-link:hover {
  background: var(--accent);
  transform: scale(1.03);
}

/* =============================================
   PRÉVISUALISATIONS DE LAYOUTS
   Note : ajouter les background-image manquants
   pour que ces sélecteurs aient un effet réel.
   ============================================= */
.layout-default::before,
.normal-width-container::before,
.narrow-width-container::before,
.full-width-container::before,
.no-sidebar::before,
.left-sidebar::before,
.right-sidebar::before {
  content: '';
  position: absolute;
  inset: 0;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  /* Transition limitée à filter pour éviter reflow */
  will-change: filter;
  transition: filter 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.1));
}

.ast-layout-control .elementor-choices-label:hover::before {
  filter: brightness(1.05) saturate(1.1);
}

/* =============================================
   UX GLOBALE
   ============================================= */
body,
.elementor-editor-active {
  scroll-behavior: smooth;
}

/* Focus accessible : :focus-visible évite l'outline
   sur les clics souris tout en le conservant au clavier */
.elementor-control-field:focus-within,
.elementor-choices-label:focus-visible {
  outline: 3px solid var(--primary-dark);
  outline-offset: 4px;
}

/* Spinner — composite-only, aucun reflow */
.spinner {
  animation: spin 0.8s linear infinite;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}/* End custom CSS */