/* ==========================================================================
   Bayān — styles du thème enfant
   Les couleurs viennent des « Couleurs globales » d'Elementor (Réglages du
   site). Le mode sombre remplace ces mêmes variables, donc tout ce qui est
   coloré avec une couleur globale suit automatiquement le thème.
   Les classes « bayan-… » s'ajoutent dans Elementor : onglet Avancé → Classes CSS.
   ========================================================================== */

body {
  --b-orange: var(--e-global-color-orange, #f86c3d);
  --b-sky: var(--e-global-color-sky, #95d6f2);
  --b-gold: var(--e-global-color-gold, #f8c571);
  --b-tan: var(--e-global-color-tan, #e8cba9);
  --b-cream: var(--e-global-color-cream, #f5f5ed);
  --b-ink: var(--e-global-color-ink, #21140f);
  --b-text: var(--e-global-color-primary, #21140f);
  --b-text-soft: var(--e-global-color-secondary, #5b4636);
  --b-bg: var(--e-global-color-bg, #f5f5ed);
  --b-bg-inset: var(--e-global-color-bginset, #efe4ce);
  --b-panel: var(--e-global-color-panel, #f0e9dc);
  --b-muted: var(--e-global-color-muted, #8a7660);
  --b-rule: var(--e-global-color-rule, rgba(33, 20, 15, 0.16));
  --b-card-border: var(--e-global-color-cardborder, rgba(33, 20, 15, 0.12));
  --b-redact: #14100c;
  --b-shadow: 0 12px 28px -16px rgba(33, 20, 15, 0.3);
  --b-ease: cubic-bezier(0.16, 0.8, 0.24, 1);
  --b-gutter: clamp(1.5rem, 5vw, 4.5rem);

  background: var(--b-bg);
  color: var(--b-text);
  font-family: "Manrope", ui-sans-serif, system-ui, sans-serif;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
  transition: background 0.4s var(--b-ease), color 0.4s var(--b-ease);
}

/* Mode sombre : mêmes noms de couleurs globales, valeurs sombres. */
html[data-theme="dark"] body[class*="elementor-kit-"],
html[data-theme="dark"] body {
  --e-global-color-primary: #f5f5ed;
  --e-global-color-secondary: #f5f5ed;
  --e-global-color-text: #f5f5ed;
  --e-global-color-bg: #2b1b12;
  --e-global-color-bginset: #38251a;
  --e-global-color-panel: #170e0b;
  --e-global-color-raised: #2b1b12;
  --e-global-color-muted: #a28e71;
  --e-global-color-rule: rgba(245, 245, 237, 0.14);
  --e-global-color-cardborder: rgba(245, 245, 237, 0.13);
  --e-global-color-goldink: #f8c571;
  --e-global-color-skyink: #95d6f2;
  --b-redact: #050302;
  --b-shadow: 0 14px 32px -16px rgba(0, 0, 0, 0.55);
  color-scheme: dark;
}

html {
  scroll-behavior: smooth;
}
a,
a:hover,
a:active {
  color: inherit;
}
::selection {
  background: var(--b-orange);
  color: var(--b-cream);
}
.elementor-heading-title {
  letter-spacing: -0.015em;
  text-wrap: balance;
}
.elementor-widget-text-editor p:last-child {
  margin-bottom: 0;
}
:where(.elementor-widget-text-editor) p {
  margin-block: 0 1rem;
}
/* Icônes Lucide (SVG au trait) : Elementor applique « fill », on garde le trait. */
.elementor-icon svg[stroke],
.elementor-icon-list-icon svg[stroke],
.elementor-social-icon svg[stroke],
.elementor-button-icon svg[stroke] {
  fill: none !important;
  stroke: currentColor;
}
.e-con .elementor-widget-icon {
  flex-shrink: 0;
}
.bayan-list-orange .elementor-icon-list-icon svg { stroke: var(--b-orange); }
.bayan-list-gold .elementor-icon-list-icon svg { stroke: var(--b-gold); }
.bayan-list-sky .elementor-icon-list-icon svg { stroke: var(--b-sky); }
.elementor-icon-list-icon svg[stroke] {
  width: var(--e-icon-list-icon-size, 14px);
  height: var(--e-icon-list-icon-size, 14px);
}

/* Une section de page : espacement vertical et marges latérales du site. */
.bayan-section {
  --padding-top: clamp(3.5rem, 7vw, 6rem);
  --padding-bottom: clamp(3.5rem, 7vw, 6rem);
  --padding-left: var(--b-gutter);
  --padding-right: var(--b-gutter);
}

/* Logos clair / sombre */
html[data-theme="dark"] .bayan-show-light,
html:not([data-theme="dark"]) .bayan-show-dark {
  display: none !important;
}

/* ---------- En-tête ---------- */
.bayan-header {
  position: sticky !important;
  top: var(--wp-admin--admin-bar--height, 0px);
  z-index: 50;
  border-bottom: 1px solid transparent;
  background: color-mix(in srgb, var(--b-bg) 82%, transparent);
  backdrop-filter: blur(14px) saturate(1.4);
  -webkit-backdrop-filter: blur(14px) saturate(1.4);
  transition: border-color 0.35s var(--b-ease), background-color 0.35s var(--b-ease);
}
.bayan-header.is-scrolled {
  border-bottom-color: var(--b-rule);
}
.bayan-nav .elementor-icon-list-text {
  position: relative;
  transition: color 0.2s var(--b-ease);
}

.bayan-theme-toggle {
  position: relative;
  width: 48px;
  height: 26px;
  padding: 2px;
  flex: none;
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--b-rule);
  background: var(--b-bg-inset);
  border-radius: 0;
  cursor: pointer;
}
.bayan-theme-toggle:hover,
.bayan-theme-toggle:focus {
  background: var(--b-bg-inset);
}
.bayan-theme-toggle:focus-visible {
  outline: 2px solid var(--b-orange);
  outline-offset: 2px;
}
.bayan-theme-toggle svg {
  width: 12px;
  height: 12px;
}
.bayan-theme-toggle__track {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-inline: 5px;
  color: var(--b-muted);
  pointer-events: none;
}
html:not([data-theme="dark"]) .bayan-theme-toggle__track .is-moon,
html[data-theme="dark"] .bayan-theme-toggle__track .is-sun {
  opacity: 0.35;
}
.bayan-theme-toggle__knob {
  position: relative;
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--b-bg);
  color: var(--b-text);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.18);
  transition: transform 0.3s var(--b-ease);
}
.bayan-theme-toggle__knob svg {
  position: absolute;
  transition: opacity 0.3s var(--b-ease), transform 0.3s var(--b-ease);
}
.bayan-theme-toggle__knob .is-moon {
  opacity: 0;
  transform: scale(0) rotate(80deg);
}
html[data-theme="dark"] .bayan-theme-toggle__knob {
  transform: translateX(22px);
}
html[data-theme="dark"] .bayan-theme-toggle__knob .is-sun {
  opacity: 0;
  transform: scale(0) rotate(-80deg);
}
html[data-theme="dark"] .bayan-theme-toggle__knob .is-moon {
  opacity: 1;
  transform: none;
}

/* ---------- Menu mobile ----------
   Bouton ☰ (widget HTML) + conteneur #bayan-menu, affichés sous 900px. */
.bayan-menu-toggle {
  position: relative;
  width: 30px;
  height: 26px;
  padding: 0;
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--b-rule);
  border-radius: 0;
  background: var(--b-bg-inset);
  color: var(--b-text);
  cursor: pointer;
  transition: border-color 0.25s var(--b-ease);
}
.bayan-menu-toggle:hover,
.bayan-menu-toggle:focus,
.bayan-menu-toggle:active {
  background: var(--b-bg-inset);
  color: var(--b-text);
  border-color: var(--b-text-soft);
}
.bayan-menu-toggle:focus-visible {
  outline: 2px solid var(--b-orange);
  outline-offset: 2px;
}
.bayan-menu-toggle__bars {
  position: relative;
  width: 14px;
  height: 8px;
}
.bayan-menu-toggle__bars span {
  position: absolute;
  left: 0;
  width: 100%;
  height: 1px;
  background: currentColor;
  transition: transform 0.35s var(--b-ease), top 0.35s var(--b-ease);
}
.bayan-menu-toggle__bars span:first-child {
  top: 0;
}
.bayan-menu-toggle__bars span:last-child {
  top: 7px;
}
.is-menu-open .bayan-menu-toggle__bars span {
  top: 3.5px;
}
.is-menu-open .bayan-menu-toggle__bars span:first-child {
  transform: rotate(45deg);
}
.is-menu-open .bayan-menu-toggle__bars span:last-child {
  transform: rotate(-45deg);
}

.bayan-header > .e-con-inner {
  position: static;
}
.bayan-header.is-menu-open {
  background: var(--b-bg);
  border-bottom-color: var(--b-rule);
}
.bayan-mobile-menu {
  position: absolute !important;
  top: 100%;
  left: 0;
  right: 0;
  width: auto !important;
  z-index: 49;
  background: var(--b-bg);
  border-bottom: 1px solid var(--b-rule);
  box-shadow: var(--b-shadow);
  visibility: hidden;
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity 0.3s var(--b-ease), transform 0.35s var(--b-ease), visibility 0s linear 0.35s;
}
.is-menu-open .bayan-mobile-menu {
  visibility: visible;
  opacity: 1;
  transform: none;
  transition: opacity 0.3s var(--b-ease), transform 0.35s var(--b-ease), visibility 0s;
}
.bayan-mobile-nav .elementor-icon-list-item {
  border-bottom: 1px solid var(--b-rule);
}
.bayan-mobile-nav .elementor-icon-list-item > a {
  display: flex;
  padding-block: 0.85rem;
}
.bayan-mobile-nav .elementor-icon-list-item > a::after {
  content: "";
  width: 1.1rem;
  height: 1.1rem;
  margin-left: auto;
  align-self: center;
  background-color: var(--b-muted);
  -webkit-mask: url("../icons/arrow-right.svg") center / contain no-repeat;
  mask: url("../icons/arrow-right.svg") center / contain no-repeat;
  transition: transform 0.3s var(--b-ease), background-color 0.3s var(--b-ease);
}
.bayan-mobile-nav .elementor-icon-list-item > a:hover::after {
  background-color: var(--b-orange);
  transform: translateX(4px);
}
.bayan-mobile-menu .elementor-icon-list-item,
.bayan-mobile-menu .elementor-widget-button {
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.4s var(--b-ease), transform 0.4s var(--b-ease);
}
.is-menu-open .bayan-mobile-menu .elementor-icon-list-item,
.is-menu-open .bayan-mobile-menu .elementor-widget-button {
  opacity: 1;
  transform: none;
}
.is-menu-open .bayan-mobile-menu .elementor-icon-list-item:nth-child(2) { transition-delay: 0.05s; }
.is-menu-open .bayan-mobile-menu .elementor-icon-list-item:nth-child(3) { transition-delay: 0.1s; }
.is-menu-open .bayan-mobile-menu .elementor-icon-list-item:nth-child(4) { transition-delay: 0.15s; }
.is-menu-open .bayan-mobile-menu .elementor-widget-button { transition-delay: 0.2s; }

/* Dans l'éditeur Elementor (vue tablette/mobile), le menu reste ouvert pour être modifié. */
.bayan-editor .bayan-mobile-menu,
.bayan-editor .bayan-mobile-menu .elementor-icon-list-item,
.bayan-editor .bayan-mobile-menu .elementor-widget-button {
  visibility: visible;
  opacity: 1;
  transform: none;
}
.bayan-editor .bayan-mobile-menu {
  position: static !important;
  flex-basis: 100%;
  box-shadow: none;
}

/* ---------- Boutons ----------
   Le bouton principal se règle dans Elementor. « bayan-btn-gradient » ajoute
   la bordure dégradée animée du bouton « Rejoindre Bayān ». */
.elementor-button {
  transition: background 0.25s var(--b-ease), border-color 0.25s var(--b-ease),
    color 0.25s var(--b-ease), transform 0.1s var(--b-ease);
  white-space: nowrap;
}
.elementor-button:active {
  transform: translateY(1px);
}
.elementor-widget.bayan-btn-gradient .elementor-button {
  --grad: linear-gradient(90deg, var(--b-orange), var(--b-sky), var(--b-gold), var(--b-orange));
  position: relative;
  isolation: isolate;
  border: 1px solid transparent;
  background: linear-gradient(var(--b-bg), var(--b-bg)) padding-box, var(--grad) border-box;
  background-size: 100% 100%, 300% 100%;
  color: var(--b-text);
  animation: bayan-border-flow 6s linear infinite;
}
.elementor-widget.bayan-btn-gradient .elementor-button::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: var(--grad);
  background-size: 300% 100%;
  opacity: 0;
  transition: opacity 0.45s var(--b-ease);
  animation: bayan-gradient-flow 5.5s linear infinite;
}
.elementor-widget.bayan-btn-gradient .elementor-button:hover {
  color: var(--b-ink);
}
.elementor-widget.bayan-btn-gradient .elementor-button:hover::before {
  opacity: 1;
}
@keyframes bayan-border-flow {
  to {
    background-position: 0 0, -300% 0;
  }
}
@keyframes bayan-gradient-flow {
  to {
    background-position: -300% 0;
  }
}

/* Texte en dégradé animé : <span class="bayan-gradient-text">…</span> */
.bayan-gradient-text {
  display: inline-block;
  background-image: linear-gradient(90deg, var(--b-orange), var(--b-gold), var(--b-sky), var(--b-orange));
  background-size: 300% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: bayan-gradient-flow 5.5s linear infinite;
}

/* ---------- Surtitre avec l'étoile Bayān ---------- */
.bayan-kicker .elementor-heading-title {
  display: flex;
  align-items: center;
  gap: 0.85rem;
}
.bayan-kicker.bayan-center .elementor-heading-title {
  justify-content: center;
}
.bayan-kicker .elementor-heading-title::before {
  content: "";
  display: block;
  width: 1.05rem;
  height: 1.05rem;
  flex: none;
  background-color: currentColor;
  -webkit-mask: url("../icons/star-bayan.svg") center / contain no-repeat;
  mask: url("../icons/star-bayan.svg") center / contain no-repeat;
}
.bayan-kicker.bayan-small .elementor-heading-title {
  gap: 0.55em;
}
/* Variante avec un filet après le texte */
.bayan-kicker.bayan-rule .elementor-heading-title::after {
  content: "";
  display: block;
  flex: 1;
  max-width: 4.5rem;
  height: 1px;
  background: var(--b-rule);
  transform-origin: left;
  transition: transform 0.6s var(--b-ease) 0.2s;
}

/* Hero : halo doré derrière l'image */
.bayan-hero-visual {
  position: relative;
  isolation: isolate;
}
.bayan-hero-visual::after {
  content: "";
  position: absolute;
  inset: 10% 15% -5%;
  z-index: -1;
  filter: blur(10px);
  background: radial-gradient(closest-side, color-mix(in srgb, var(--b-gold) 32%, transparent), transparent 70%);
  pointer-events: none;
}
.bayan-hero-visual img {
  width: 100%;
  height: auto;
}

/* ---------- Trois piliers ---------- */
.bayan-sticky {
  position: sticky !important;
  top: clamp(5rem, 12vh, 7.5rem);
  align-self: flex-start;
}
@media (max-width: 900px) {
  .bayan-sticky {
    position: static !important;
  }
}
.bayan-pillar-nav {
  display: flex;
  gap: 1.1rem;
  margin-top: clamp(2.5rem, 5vw, 3.5rem);
}
.bayan-pillar-nav__track {
  position: relative;
  width: 1px;
  flex: none;
  background: var(--b-rule);
}
.bayan-pillar-nav__fill {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: var(--progress, 0%);
  background: var(--b-orange);
}
.bayan-pillar-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}
.bayan-pillar-nav button {
  display: flex;
  align-items: baseline;
  gap: 0.65rem;
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
  color: var(--b-muted);
  font: inherit;
  text-align: left;
  transition: color 0.3s var(--b-ease);
}
.bayan-pillar-nav button:hover,
.bayan-pillar-nav button:focus {
  background: none;
  color: var(--b-text);
}
.bayan-pillar-nav button.is-active {
  color: var(--b-text);
}
.bayan-pillar-nav b {
  font-family: "Bluu Next", ui-serif, Georgia, serif;
  font-weight: 600;
  font-size: 1.125rem;
}
.bayan-pillar-nav span {
  font-size: 0.875rem;
}
@media (max-width: 900px) {
  .bayan-pillar-nav {
    display: none;
  }
}

.bayan-pillar {
  --accent: var(--b-orange);
  aspect-ratio: 4 / 3;
  overflow: hidden;
  transition: box-shadow 0.3s var(--b-ease), border-color 0.3s var(--b-ease),
    transform 0.45s var(--b-ease) !important;
}
.bayan-pillar > .e-con {
  flex-shrink: 0;
}
/* Sur petit écran le texte prend plus de place : la carte peut grandir. */
@media (max-width: 700px) {
  .bayan-pillar {
    aspect-ratio: auto;
    min-height: 66vw;
  }
}
.bayan-pillar:hover {
  box-shadow: var(--b-shadow);
  border-color: var(--accent) !important;
  transform: translateY(-6px);
}
.bayan-pillar:hover .bayan-parallax-layer {
  scale: 1.05;
}
.bayan-accent-orange { --accent: var(--b-orange); }
.bayan-accent-gold { --accent: var(--b-gold); }
.bayan-accent-sky { --accent: var(--b-sky); }
.bayan-pillar-num .elementor-heading-title {
  transition: transform 0.3s var(--b-ease);
}
.bayan-pillar:hover .bayan-pillar-num .elementor-heading-title {
  transform: translateX(2px);
}
.bayan-pillar-icon .elementor-icon {
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

/* ---------- Est-ce votre histoire ? ---------- */
.bayan-problem-grid {
  border-top: 1px solid var(--b-rule);
  border-left: 1px solid var(--b-rule);
}
.bayan-problem {
  position: relative;
  overflow: hidden;
  border-right: 1px solid var(--b-rule);
  border-bottom: 1px solid var(--b-rule);
  transition: background-color 0.4s var(--b-ease);
}
.bayan-problem::after {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: var(--b-text-soft);
  transform-origin: top;
  transform: scaleY(0);
  transition: transform 0.4s var(--b-ease);
}
.bayan-problem:hover {
  background-color: color-mix(in srgb, var(--b-text-soft) 6%, var(--b-bg));
}
.bayan-problem:hover::after {
  transform: scaleY(1);
}
.bayan-problem .elementor-widget-icon {
  transition: transform 0.4s var(--b-ease);
}
.bayan-problem:hover .elementor-widget-icon {
  transform: translateX(5px);
}
.bayan-problem b,
.bayan-problem strong {
  color: var(--b-text);
  font-weight: 600;
}
@media (max-width: 700px) {
  .bayan-problem {
    border-right: 0;
  }
}

/* Lien « Et s'il existait un chemin clair… » */
.bayan-path-link {
  color: var(--b-text-soft);
  text-decoration: none;
}
.bayan-path-link:hover .elementor-heading-title {
  color: var(--b-text);
}
.bayan-path-line {
  position: relative;
  flex: 1 1 6rem !important;
  min-width: 6rem;
  height: 1px;
  background: var(--b-rule);
  transform-origin: left;
}
.bayan-js .bayan-path-line {
  transform: scaleX(0);
  transition: transform 0.9s var(--b-ease) 0.1s;
}
.bayan-js .is-in .bayan-path-line {
  transform: none;
}
.bayan-pill .elementor-heading-title {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  height: 2.75rem;
  padding-inline: 1.25rem;
  margin-left: -1px;
  border: 1px solid var(--b-rule);
  background: var(--b-bg);
  white-space: nowrap;
  transition: background-color 0.3s var(--b-ease), border-color 0.3s var(--b-ease), color 0.3s var(--b-ease);
}
.bayan-pill .elementor-heading-title::after {
  content: "";
  width: 1.1rem;
  height: 1.1rem;
  background-color: currentColor;
  -webkit-mask: url("../icons/arrow-right.svg") center / contain no-repeat;
  mask: url("../icons/arrow-right.svg") center / contain no-repeat;
}
.bayan-path-link:hover .bayan-pill .elementor-heading-title {
  background: var(--b-orange);
  border-color: var(--b-orange);
  color: var(--b-cream);
}
.is-in .bayan-pill {
  animation: bayan-nudge 1.2s var(--b-ease) 3;
  animation-delay: 0.3s;
}
@keyframes bayan-nudge {
  50% {
    transform: translateX(6px);
  }
}
@media (max-width: 700px) {
  .bayan-path-line {
    flex-basis: 100% !important;
  }
}

/* ---------- Pour être clair ---------- */
.bayan-compare-list {
  position: relative;
}
.bayan-compare-line {
  position: absolute;
  left: 3.25rem;
  top: 0.4rem;
  bottom: 0.4rem;
  width: 1.5px;
  background: var(--b-rule);
  pointer-events: none;
}
@media (max-width: 640px) {
  .bayan-compare-line {
    left: 2.5rem;
  }
}
.bayan-compare-line > span {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, var(--b-orange), var(--b-gold), var(--b-sky));
  transform-origin: top;
  transform: scaleY(var(--progress, 0));
}
.bayan-compare-row > .elementor-widget-icon {
  position: relative;
  z-index: 1;
}
.bayan-myth p {
  position: relative;
  display: inline-block;
  margin: 0;
  text-decoration: line-through;
  text-decoration-color: var(--b-muted);
}
.bayan-myth p::before {
  content: "";
  position: absolute;
  inset: -0.1em -0.2em;
  background: var(--b-redact);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.06);
  transform-origin: right;
  transform: scaleX(0);
}
.bayan-truth p {
  position: relative;
  margin: 0;
  isolation: isolate;
}
.bayan-truth p::before {
  content: "";
  position: absolute;
  inset: 0.05em -0.25em;
  z-index: -1;
  background: var(--b-panel);
  transform-origin: left;
  transform: scaleX(1);
}
.bayan-js .bayan-compare-row .bayan-myth p::before {
  transform: scaleX(1);
  transition: transform 0.5s var(--b-ease) 0.15s;
}
.bayan-js .bayan-compare-row .bayan-truth p::before {
  transform: scaleX(0);
  transition: transform 0.5s var(--b-ease) 0.85s;
}
.bayan-js .bayan-compare-row.is-in .bayan-myth p::before {
  transform: scaleX(0);
}
.bayan-js .bayan-compare-row.is-in .bayan-truth p::before {
  transform: scaleX(1);
}

/* ---------- Programme ---------- */
.bayan-banner {
  overflow: hidden;
}
.bayan-step-icon .elementor-icon {
  border: 1px dashed var(--b-rule) !important;
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(2.75rem, 6vw, 3.25rem);
  height: clamp(2.75rem, 6vw, 3.25rem);
  padding: 0 !important;
}
.bayan-step-icon .elementor-icon svg {
  width: 24px;
  height: 24px;
}
.bayan-dashed {
  border-style: dashed !important;
}

/* ---------- Cartes : témoignages, offres ---------- */
.bayan-lift {
  transition: transform 0.3s var(--b-ease), box-shadow 0.3s var(--b-ease) !important;
}
.bayan-lift:hover {
  transform: translateY(-3px);
  box-shadow: var(--b-shadow);
}
.bayan-tag .elementor-heading-title {
  display: inline-flex;
  align-items: center;
  height: 1.25rem;
  padding-inline: 0.55rem;
  border: 1px solid currentColor;
}
.bayan-price .bayan-strike {
  font-size: 0.875rem;
  text-decoration: line-through;
  opacity: 0.55;
  margin-right: 0.5rem;
  font-family: "Manrope", sans-serif;
}
.bayan-price .bayan-amount {
  font-family: "Bluu Next", ui-serif, Georgia, serif;
  font-weight: 600;
  font-size: 1.5rem;
}
.bayan-price small {
  font-family: "Manrope", sans-serif;
  font-size: 0.75rem;
  font-weight: 600;
  opacity: 0.7;
}
.bayan-featured .elementor-icon-list-text,
.bayan-featured .elementor-widget-text-editor {
  color: var(--b-cream);
}

/* ---------- Pied de page ---------- */
.bayan-footer-nav .elementor-icon-list-item a {
  transition: color 0.25s var(--b-ease);
}
.bayan-socials .elementor-social-icon {
  border: 1px solid var(--b-card-border);
  transition: color 0.25s var(--b-ease), border-color 0.25s var(--b-ease), background-color 0.25s var(--b-ease);
}
.bayan-socials .elementor-social-icon:hover {
  color: var(--b-orange);
  border-color: var(--b-orange);
  background-color: color-mix(in srgb, var(--b-orange) 12%, transparent);
}
.bayan-socials .elementor-social-icon:hover svg {
  stroke: var(--b-orange);
}

/* ==========================================================================
   Animations — actives seulement sur le site (pas dans l'éditeur Elementor)
   ========================================================================== */
.bayan-js .bayan-reveal:not(.is-in),
.bayan-js .bayan-stagger:not(.is-in) .bayan-item {
  opacity: 0;
  transform: translateY(22px);
}
.bayan-js .bayan-reveal,
.bayan-js .bayan-stagger .bayan-item {
  transition: opacity 0.7s var(--b-ease), transform 0.7s var(--b-ease);
  transition-delay: calc(var(--i, 0) * 0.1s + var(--delay, 0s));
}
.bayan-js .bayan-pillar.bayan-reveal:not(.is-in) {
  transform: translateY(30px) scale(0.96);
}
.bayan-delay-1 { --delay: 0.25s; }
.bayan-delay-2 { --delay: 0.45s; }
.bayan-delay-3 { --delay: 0.58s; }
.bayan-delay-4 { --delay: 0.7s; }

/* Titres révélés mot par mot */
.bayan-word-mask {
  display: inline-block;
  overflow: hidden;
  vertical-align: top;
  padding-bottom: 0.1em;
  margin-bottom: -0.1em;
}
.bayan-word {
  display: inline-block;
}
.bayan-js .bayan-words .bayan-word {
  transform: translateY(110%);
  transition: transform 0.6s var(--b-ease);
  transition-delay: calc(var(--w, 0) * 0.05s + var(--delay, 0s));
}
.bayan-js .bayan-words.is-in .bayan-word {
  transform: none;
}

/* Paragraphes qui s'éclairent mot par mot */
.bayan-js .bayan-fade-words .bayan-fw {
  opacity: 0.25;
  transition: opacity 0.4s var(--b-ease);
  transition-delay: calc(var(--w, 0) * 0.025s);
}
.bayan-js .bayan-fade-words.is-in .bayan-fw {
  opacity: 1;
}

/* Image qui flotte doucement */
.bayan-float img {
  animation: bayan-float 7s ease-in-out infinite;
}
@keyframes bayan-float {
  50% {
    transform: translateY(-12px);
  }
}

/* Parallaxe : l'image de fond du conteneur est déplacée dans un calque. */
.bayan-parallax {
  isolation: isolate;
  overflow: hidden;
}
.bayan-parallax > :not(.bayan-parallax-layer) {
  position: relative;
}
.bayan-parallax.has-layer {
  background-image: none !important;
}
.bayan-parallax-layer {
  position: absolute;
  inset: -18% 0;
  z-index: -1;
  background-size: cover;
  background-position: center;
  will-change: transform;
  transform: translate3d(0, var(--py, 0), 0) scale(var(--ps, 1));
  transition: scale 0.6s var(--b-ease);
  pointer-events: none;
}
.bayan-pillar .bayan-parallax-layer {
  inset: -7% 0;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}
