/* =====================================================================
   MAISON ALBA PYLA — Design System (D.A. finale brandbook)
   Crème + rouge athlétique · Sofia Pro + Helvetica LT Pro
   Ported from the Claude design handoff (system.css) and adapted to
   classic Elementor v3 widget markup. Loaded last so it overrides the
   parent Powerlift theme + Elementor kit.
   ===================================================================== */

:root {
  /* Palette brandbook */
  --rouge:   #56020E;   /* Rouge athlétique — encre + sections sombres */
  --pyla:    #717A64;   /* Vert pyla */
  --bassin:  #BDD2C5;   /* Vert bassin */
  --rose:    #F3DDE3;   /* Rose alba */
  --sable:   #F6E4B9;   /* Jaune sable */
  --blanc:   #F7F3EB;   /* Blanc cassé — base claire dominante */
  --sable-deep: #E9CC8C;

  /* Alias compat (les pages référencent ces tokens) */
  --alba-cream:     var(--blanc);
  --alba-paper:     #F0E8D6;
  --alba-burgundy:  var(--rouge);
  --alba-ink:       var(--rouge);
  --alba-sand:      #EADBBE;
  --alba-chamois:   #CBB68C;
  --alba-clay:      var(--pyla);
  --alba-cocoa:     var(--pyla);
  --alba-bark:      #6B5E50;
  --alba-gold:      var(--sable-deep);
  --alba-gold-soft: var(--sable);
  --alba-line:      rgba(86,2,14,0.18);
  --alba-line-soft: rgba(86,2,14,0.10);
  --alba-overlay:   rgba(86,2,14,0.45);

  /* Typographies — Niveau 1 Sofia Pro / Niveau 2 Helvetica LT Pro (Typekit) */
  --font-display: "sofia-pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --font-serif:   "sofia-pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --font-sans:    "helvetica-lt-pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --font-num:     "helvetica-lt-pro", "Helvetica Neue", Helvetica, Arial, sans-serif;

  /* Échelles */
  --fs-xxl: clamp(64px, 11vw, 200px);
  --fs-xl:  clamp(44px, 7vw, 116px);
  --fs-lg:  clamp(32px, 4.5vw, 64px);
  --fs-md:  clamp(22px, 2.4vw, 32px);
  --fs-rg:  clamp(15px, 1.05vw, 17px);
  --fs-sm:  13px;
  --fs-xs:  11px;

  --tracking-loose: 0.28em;
  --tracking-mid:   0.16em;
  --tracking-tight: 0.01em;

  --pad-page: clamp(20px, 4vw, 56px);
  --gap: clamp(20px, 3vw, 48px);
  --ease: cubic-bezier(.2,.6,.2,1);
}

/* ── Base : appliquée aux pages Alba (corps + couleurs) ─────────────── */
body.elementor-page,
body.elementor-page .elementor {
  background: var(--blanc);
  color: var(--rouge);
  font-family: var(--font-serif);
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Texte courant des widgets text-editor / paragraphes Elementor */
.elementor .elementor-widget-text-editor,
.elementor .elementor-widget-text-editor p {
  font-family: var(--font-serif);
  font-weight: 400;
  line-height: 1.6;
  color: var(--rouge);
}

/* Emphase : plus d'italique serif → couleur-touche (brandbook) */
.elementor .alba em,
.elementor em.alba-em { font-style: normal; font-weight: 500; }

/* ── Helpers typographiques (hooks de classe sur widgets) ──────────── */

/* Eyebrow / sur-titre */
.elementor .alba-eyebrow .elementor-heading-title,
.elementor .alba-eyebrow.elementor-widget-heading .elementor-heading-title {
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: var(--fs-xs);
  letter-spacing: var(--tracking-loose);
  text-transform: uppercase;
  color: var(--pyla);
}
/* trait devant l'eyebrow */
.elementor .alba-eyebrow-line .elementor-heading-title::before {
  content: '';
  display: inline-block;
  width: 28px; height: 1px;
  background: currentColor;
  vertical-align: middle;
  margin-right: 14px;
}

/* Titres display (Sofia Pro, gras) */
.elementor .alba-display .elementor-heading-title {
  font-family: var(--font-display);
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 0.94;
  color: var(--rouge);
}
.elementor .alba-display .elementor-heading-title em { font-weight: 500; font-style: normal; }

/* Chiffres en Helvetica tabular */
.elementor .alba-num,
.elementor .alba-num .elementor-heading-title {
  font-family: var(--font-num);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
}

/* Couleurs-touches utilitaires */
.elementor .alba-c-pyla  .elementor-heading-title, .elementor .alba-c-pyla  { color: var(--pyla) !important; }
.elementor .alba-c-sable .elementor-heading-title, .elementor .alba-c-sable { color: var(--sable-deep) !important; }
.elementor .alba-c-cream .elementor-heading-title, .elementor .alba-c-cream { color: var(--blanc) !important; }
.elementor .alba-c-rouge .elementor-heading-title, .elementor .alba-c-rouge { color: var(--rouge) !important; }

.elementor .alba-divider { height: 1px; background: var(--alba-line); width: 100%; }
.alba-dot { display:inline-block; width:5px; height:5px; border-radius:50%; background:var(--pyla); vertical-align:middle; }

/* ── Boutons (widget Button Elementor) ─────────────────────────────── */
.elementor .alba-btn .elementor-button,
.elementor a.alba-btn {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 17px 28px;
  border-radius: 0;
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: var(--fs-xs);
  letter-spacing: var(--tracking-loose);
  text-transform: uppercase;
  border: 1px solid var(--rouge);
  background: transparent;
  color: var(--rouge);
  position: relative;
  overflow: hidden;
  transition: color .5s var(--ease);
  box-shadow: none;
}
.elementor .alba-btn .elementor-button::after,
.elementor a.alba-btn::after {
  content: '';
  position: absolute; inset: 0;
  background: var(--rouge);
  transform: translateY(101%);
  transition: transform .5s var(--ease);
  z-index: 0;
}
.elementor .alba-btn .elementor-button .elementor-button-content-wrapper,
.elementor .alba-btn .elementor-button > span,
.elementor a.alba-btn > span { position: relative; z-index: 1; }
.elementor .alba-btn .elementor-button:hover,
.elementor a.alba-btn:hover { color: var(--blanc); }
.elementor .alba-btn .elementor-button:hover::after,
.elementor a.alba-btn:hover::after { transform: translateY(0); }

/* Variante claire (sur fond sombre/photo) */
.elementor .alba-btn-light .elementor-button,
.elementor a.alba-btn-light { border-color: var(--blanc); color: var(--blanc); }
.elementor .alba-btn-light .elementor-button::after,
.elementor a.alba-btn-light::after { background: var(--blanc); }
.elementor .alba-btn-light .elementor-button:hover,
.elementor a.alba-btn-light:hover { color: var(--rouge); }

/* Variante ghost (souligné) — autonome */
.elementor .alba-btn-ghost .elementor-button,
.elementor a.alba-btn-ghost {
  background: transparent !important; box-shadow: none; border: none;
  border-bottom: 1px solid var(--rouge); border-radius: 0;
  padding: 12px 0 !important;
  font-family: var(--font-sans); font-weight: 600; font-size: 11px;
  letter-spacing: var(--tracking-loose); text-transform: uppercase; color: var(--rouge);
}
.elementor .alba-btn-ghost .elementor-button::after { display: none; }
.elementor .alba-btn-ghost .elementor-button:hover { color: var(--pyla); border-bottom-color: var(--pyla); }

/* ── HEADER (template Theme Builder) ───────────────────────────────── */
.alba-header-tpl {
  background: transparent;
}
.alba-header-tpl .elementor-nav-menu .elementor-item {
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: 11px;
  letter-spacing: var(--tracking-loose);
  text-transform: uppercase;
  color: var(--blanc);
  padding: 4px 0 !important;
  position: relative;
}
.alba-header-tpl .elementor-nav-menu .elementor-item::after {
  content:''; position:absolute; left:0; right:0; bottom:0; height:1px;
  background: currentColor; transform: scaleX(0); transform-origin:left;
  transition: transform .5s var(--ease);
}
.alba-header-tpl .elementor-nav-menu .elementor-item:hover::after { transform: scaleX(1); }

/* CTA bouton header — solide pour lisibilité sur photo */
.alba-header-tpl .alba-btn-header .elementor-button {
  background: var(--blanc); border-color: var(--blanc); color: var(--rouge);
  padding: 14px 24px; font-size: 10px;
}
.alba-header-tpl .alba-btn-header .elementor-button::after { background: var(--rouge); }
.alba-header-tpl .alba-btn-header .elementor-button:hover { color: var(--blanc); }

/* ── FOOTER (template Theme Builder) ───────────────────────────────── */
.alba-footer-tpl { background: var(--rouge); color: var(--blanc); }
.alba-footer-tpl .alba-footer-lockup .elementor-heading-title {
  font-family: var(--font-display); font-weight: 800;
  font-size: clamp(56px, 9vw, 150px); line-height: 0.92;
  letter-spacing: -0.02em; text-transform: uppercase; color: var(--blanc); margin:0;
}
.alba-footer-tpl .alba-foot-h .elementor-heading-title {
  font-family: var(--font-sans); font-size: 10px; font-weight: 700;
  letter-spacing: var(--tracking-loose); text-transform: uppercase; color: var(--sable);
}
.alba-footer-tpl .elementor-widget-text-editor,
.alba-footer-tpl .elementor-icon-list-item a,
.alba-footer-tpl .elementor-widget-text-editor p { color: var(--blanc); font-family: var(--font-sans); }

/* ── Traitement image « Shutter / Blur » ───────────────────────────── */
/* À appliquer sur une colonne/container image. */
.alba-shutter { position: relative; overflow: hidden; }
.alba-shutter > .elementor-widget-image img,
.alba-shutter .alba-shutter-img img { filter: blur(2px) saturate(.97); transform: scale(1.04); }
.alba-shutter::after {
  content:''; position:absolute; inset:0; z-index:2; pointer-events:none;
  background-image: repeating-linear-gradient(180deg,
    rgba(86,2,14,0) 0px, rgba(86,2,14,0) 6px,
    rgba(86,2,14,.10) 7px, rgba(247,243,235,.12) 8px, rgba(86,2,14,0) 9px);
}
/* Voile dégradé rouge sur hero */
.alba-veil { position: relative; }
.alba-veil::before {
  content:''; position:absolute; inset:0; z-index:1; pointer-events:none;
  background: linear-gradient(180deg, rgba(86,2,14,.45) 0%, rgba(86,2,14,.10) 30%, rgba(86,2,14,.10) 55%, rgba(86,2,14,.85) 100%);
}

/* Placeholders dégradés thématiques (en attendant les vraies photos) */
.alba-ph-warm  { background: linear-gradient(160deg, var(--sable) 0%, var(--sable-deep) 45%, #8a5a16 100%); }
.alba-ph-skin  { background: linear-gradient(165deg, var(--rose) 0%, #d9a7b4 55%, #7d3a4a 100%); }
.alba-ph-clay  { background: linear-gradient(165deg, #b8615f 0%, #7d1c25 50%, var(--rouge) 100%); }
.alba-ph-water { background: linear-gradient(180deg, var(--bassin) 0%, var(--pyla) 60%, #3c4338 100%); }
.alba-ph-stone { background: linear-gradient(180deg, var(--blanc) 0%, var(--bassin) 45%, var(--pyla) 100%); }
.alba-ph-dune  { background: linear-gradient(185deg, var(--sable) 0%, #d9b87a 45%, var(--pyla) 100%); }
.alba-ph-ink   { background: linear-gradient(165deg, #7d1c25 0%, var(--rouge) 70%, #2c0107 100%); color: var(--blanc); }

/* Shutter grain overlay réutilisable */
.alba-grain::before {
  content:''; position:absolute; inset:0; z-index:2; pointer-events:none;
  background-image: repeating-linear-gradient(180deg,
    rgba(86,2,14,0) 0px, rgba(86,2,14,0) 6px,
    rgba(86,2,14,.10) 7px, rgba(247,243,235,.12) 8px, rgba(86,2,14,0) 9px);
}

/* ── Marquee ───────────────────────────────────────────────────────── */
.alba-marquee { overflow: hidden; white-space: nowrap; display: flex; }
.alba-marquee-track {
  display: inline-flex; gap: 64px; padding-right: 64px;
  font-family: var(--font-sans); font-weight: 700;
  letter-spacing: var(--tracking-mid); text-transform: uppercase;
  animation: alba-marquee 42s linear infinite;
}
@keyframes alba-marquee { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .alba-marquee-track { animation: none; } }

/* ── Sections sombres (fond rouge athlétique) ──────────────────────── */
.alba-section-dark { background: var(--rouge); color: var(--blanc); }
.alba-section-dark .elementor-heading-title { color: var(--blanc); }
.alba-section-dark .elementor-widget-text-editor,
.alba-section-dark .elementor-widget-text-editor p { color: rgba(247,243,235,.78); }

/* Sections crème alternées */
.alba-section-cream { background: var(--blanc); }
.alba-section-paper { background: var(--alba-paper); }

/* =====================================================================
   PAGE ACCUEIL (porté de home-c.jsx)
   ===================================================================== */
/* HERO immersif — conteneur ciblé via :has() sur le logo (classes wrapper non rendues) */
.e-con:has(> .alba-home-hero-logo) {
  min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center;
  position: relative; overflow: hidden; text-align: center;
  padding: 128px var(--pad-page) 46px !important;
  background: url(/wp-content/uploads/alba/hero-interior.png) center/cover no-repeat;
}
.e-con:has(> .alba-home-hero-logo)::before {
  content:''; position:absolute; inset:0; z-index:0; pointer-events:none;
  background: linear-gradient(180deg, rgba(86,2,14,.82) 0%, rgba(86,2,14,.55) 30%, rgba(86,2,14,.5) 52%, rgba(86,2,14,.97) 100%);
}
.e-con:has(> .alba-home-hero-logo) > * { position: relative; z-index: 1; }
.e-con:has(> .alba-home-hero-logo) .elementor-heading-title { color: var(--blanc); }
/* bandeau bas hero (conteneur tenant le bouton Entrer) — en flux, collé en bas */
.e-con:has(> .alba-hero-enter) {
  width: 100%; margin-top: auto; z-index: 2;
  display: flex; flex-direction: row; gap: clamp(24px,4vw,60px); align-items: center;
  border-top: 1px solid rgba(247,243,235,.3); padding-top: 22px;
}
.alba-foot-item { text-align: left; }
.alba-foot-item .lab { font-family: var(--font-sans); font-size: 10px; letter-spacing: var(--tracking-loose); text-transform: uppercase; color: var(--sable-deep); margin: 0 0 6px; }
.alba-foot-item .val { font-family: var(--font-num); font-size: 14px; color: var(--blanc); margin: 0; }
.alba-hero-enter { margin-left: auto; }
.alba-home-hero-logo { text-align: center; }
.alba-home-hero-logo img { height: clamp(120px, 14vw, 196px) !important; width: auto !important; object-fit: contain; margin: 0 auto 18px !important; display: block; filter: drop-shadow(0 4px 30px rgba(0,0,0,.4)); }
.alba-home-hero-eyebrow .elementor-heading-title { color: var(--blanc) !important; justify-content: center; display: flex; align-items: center; }
.alba-home-hero-eyebrow .elementor-heading-title::before { content:''; width:28px; height:1px; background: currentColor; display:inline-block; margin-right:14px; }
.alba-home-hero-title .elementor-heading-title { font-family: var(--font-display) !important; font-weight: 800; letter-spacing: -.02em; line-height: .98; font-size: clamp(38px, 5.6vw, 86px) !important; color: var(--blanc) !important; text-align: center !important; margin-top: 18px; }
.alba-home-hero-title .elementor-heading-title em { font-style: italic; color: var(--sable-deep) !important; font-weight: 500; }

/* eyebrow générique */
.alba-eyebrow .elementor-heading-title { font-family: var(--font-sans); font-weight:600; font-size:var(--fs-xs); letter-spacing:var(--tracking-loose); text-transform:uppercase !important; color:var(--pyla); }
.alba-foot-lockup .elementor-heading-title, .alba-foot-h .elementor-heading-title, .alba-foot-sublabel .elementor-heading-title { text-transform: uppercase !important; }

/* INTRO manifeste */
.e-con:has(> .alba-intro-text) { padding: clamp(110px,16vw,200px) var(--pad-page) !important; text-align:center; display:flex; flex-direction:column; align-items:center; background:var(--blanc); }
.alba-intro-eye .elementor-heading-title { justify-content:center; display:flex; align-items:center; }
.alba-intro-eye .elementor-heading-title::before { content:''; width:28px;height:1px;background:currentColor;display:inline-block;margin-right:14px; }
.alba-intro-text .elementor-heading-title { font-family:var(--font-display); font-weight:400; font-size:clamp(28px,3.4vw,50px)!important; line-height:1.2; color:var(--rouge); max-width:24ch; margin:30px auto 0; }
.alba-intro-text .elementor-heading-title em { font-style:italic; color:var(--pyla); }

/* ROOMS cinéma full-bleed — rangée (hook num en petit-fils), colonne image (hook num), colonne texte (hook title) */
.e-con:has(> .e-con > .alba-room-num) { display:flex; flex-direction:row; align-items:stretch; min-height:600px; }
.e-con:has(> .alba-room-num) { position:relative; min-height:600px; align-self:stretch; overflow:hidden; background:linear-gradient(160deg,#b8615f,#56020E); }
.e-con:has(> .alba-r1) { background:linear-gradient(160deg,#b8615f 0%,#7d1c25 50%,#56020E 100%); }
.e-con:has(> .alba-r2) { background:linear-gradient(160deg,#F6E4B9 0%,#E9CC8C 45%,#8a5a16 100%); }
.e-con:has(> .alba-r3) { background:linear-gradient(180deg,#BDD2C5 0%,#717A64 60%,#3c4338 100%); }
.e-con:has(> .alba-r4) { background:linear-gradient(165deg,#7d1c25 0%,#56020E 70%,#2c0107 100%); }
.alba-room-num .elementor-heading-title { position:absolute; top:30px; left:36px; font-family:var(--font-display); font-weight:800; font-size:clamp(54px,7vw,110px); line-height:1; color:rgba(247,243,235,.92); }
.e-con:has(> .alba-room-title) { display:flex; flex-direction:column; justify-content:center; padding:clamp(48px,7vw,104px) !important; background:var(--blanc); }
.e-con:has(> .alba-rt-paper) { background:var(--alba-paper); }
.alba-room-title .elementor-heading-title { font-family:var(--font-display); font-weight:800; font-size:clamp(40px,5.5vw,82px)!important; line-height:.96; margin:6px 0 14px; color:var(--rouge); }
.alba-room-text, .alba-room-text p { font-size:18px; line-height:1.55; max-width:42ch; color:var(--rouge); }
.alba-room-eye .elementor-heading-title { color:var(--pyla)!important; }

/* VALEURS — Le code (section sombre, hook eyebrow) */
.e-con:has(> .alba-code-eye) { background:var(--rouge); padding:clamp(110px,15vw,180px) var(--pad-page); display:flex; flex-direction:column; align-items:center; }
.alba-code-eye .elementor-heading-title { color:var(--sable-deep)!important; justify-content:center;display:flex;align-items:center; }
.alba-code-eye .elementor-heading-title::before { content:'';width:28px;height:1px;background:currentColor;display:inline-block;margin-right:14px; }
.alba-code-h2 .elementor-heading-title { font-family:var(--font-display); font-weight:800; font-size:var(--fs-xl)!important; color:var(--blanc); text-align:center; margin:18px 0 56px; max-width:1100px; }
.alba-code-h2 .elementor-heading-title em { font-style:italic; color:var(--sable-deep); }
.e-con:has(> .alba-code-num) { width:100%; max-width:900px; display:flex; flex-direction:row; gap:30px; align-items:baseline; border-top:1px solid rgba(247,243,235,.15); padding:30px 0; }
.e-con:has(> .alba-code-num):last-child { border-bottom:1px solid rgba(247,243,235,.15); }
.alba-code-num .elementor-heading-title { font-family:var(--font-display); font-size:30px; color:var(--sable-deep); font-style:italic; white-space:nowrap; }
.alba-code-num { flex:0 0 auto; min-width:54px; }
.alba-code-ttl .elementor-heading-title { font-family:var(--font-display); font-style:italic; font-weight:300; font-size:clamp(22px,2.3vw,34px)!important; color:var(--blanc); margin-bottom:8px; }
.alba-code-desc, .alba-code-desc p { color:rgba(247,243,235,.7); font-size:16px; margin:0; }

/* LOCALISATION dune — rangée + colonne texte (hook eyebrow loc) */
.e-con:has(> .e-con > .alba-loc-eye) { display:flex; flex-direction:row; align-items:stretch; min-height:560px; }
.e-con:has(> .alba-loc-eye) { background:var(--rouge); display:flex; flex-direction:column; justify-content:center; padding:clamp(48px,7vw,104px) !important; }
.alba-loc-eye .elementor-heading-title { color:var(--blanc)!important; justify-content:flex-start;display:flex;align-items:center; }
.alba-loc-eye .elementor-heading-title::before { content:'';width:28px;height:1px;background:currentColor;display:inline-block;margin-right:14px; }
.alba-loc-h2 .elementor-heading-title { font-family:var(--font-display); font-weight:800; font-size:var(--fs-xl)!important; color:var(--blanc); margin:16px 0 28px; }
.alba-loc-h2 .elementor-heading-title em { color:var(--sable-deep); font-style:italic; }
.alba-loc-addr, .alba-loc-addr p { color:var(--blanc) !important; font-size:18px; max-width:420px; }

/* dimensionnement flex des colonnes rooms / loc */
.e-con:has(> .alba-room-num) { flex: 1.25 1 0; }
.e-con:has(> .alba-room-title) { flex: 1 1 0; }
.e-con:has(> .alba-loc-eye) { flex: 1 1 0; }
.e-con:has(> .alba-loc-img) { flex: 1 1 0; min-height: 560px; background: linear-gradient(185deg, var(--sable) 0%, #d9b87a 45%, var(--pyla) 100%); }
.alba-loc-img .elementor-heading-title { display: none; }
.e-con:has(> .alba-loc-img){ position:relative; }

/* Responsive : rangées → colonnes */
@media (max-width: 900px) {
  .e-con:has(> .alba-room-num) { min-height:54vh; }
  .e-con:has(> .alba-hero-enter) { position:static !important; margin-top:36px; flex-direction:column; align-items:flex-start; }
}

/* ── Défauts globaux D.A. sur les pages Elementor ──────────────────── */
/* Titres : Sofia Pro par défaut (sans casser les tailles définies par widget) */
body.elementor-page .elementor h1,
body.elementor-page .elementor h2,
body.elementor-page .elementor h3,
body.elementor-page .elementor h4,
body.elementor-page .elementor h5,
body.elementor-page .elementor h6,
body.elementor-page .elementor .elementor-heading-title {
  font-family: var(--font-display);
}
/* Corps de texte : Sofia Pro */
body.elementor-page .elementor,
body.elementor-page .elementor p,
body.elementor-page .elementor li,
body.elementor-page .elementor .elementor-widget-container {
  font-family: var(--font-serif);
}
/* Liens : héritent la couleur (encre rouge) */
body.elementor-page .elementor a { color: inherit; }

/* Titres en casse normale par défaut (le thème force des majuscules).
   Les eyebrows, la nav et le lockup footer gardent leurs capitales via !important. */
body.elementor-page .elementor .elementor-heading-title,
.elementor-location-header .elementor-heading-title,
.elementor-location-footer .elementor-heading-title { text-transform: none; }

/* =====================================================================
   HEADER (template Elementor #4673, location header) — D.A. Alba
   ===================================================================== */
.elementor-location-header,
.elementor-4673 { background: transparent !important; }

/* Nav : Helvetica, uppercase, interlettrage large.
   Couleur par défaut = rouge (pages à haut clair) ; crème sur Accueil + pages sombres. */
.elementor-location-header .elementor-nav-menu .elementor-item {
  font-family: var(--font-sans) !important;
  font-weight: 600 !important;
  font-size: 11px !important;
  letter-spacing: 0.26em !important;
  text-transform: uppercase !important;
  color: var(--rouge) !important;
  fill: var(--rouge) !important;
  padding: 6px 0 !important;
  position: relative;
  background: transparent !important;
}
/* Accueil + pages à hero sombre : nav crème */
body.home .elementor-location-header .elementor-nav-menu .elementor-item,
body.alba-header-light .elementor-location-header .elementor-nav-menu .elementor-item {
  color: var(--blanc) !important;
  fill: var(--blanc) !important;
}
body.home .elementor-location-header .alba-cta > a.elementor-item,
body.alba-header-light .elementor-location-header .alba-cta > a.elementor-item { border-color: var(--blanc); }
body.home .elementor-location-header .alba-cta > a.elementor-item:hover,
body.alba-header-light .elementor-location-header .alba-cta > a.elementor-item:hover { background: var(--blanc); color: var(--rouge) !important; }
/* soulignement animé au survol */
.elementor-location-header .elementor-nav-menu a.elementor-item::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 1px;
  background: currentColor; transform: scaleX(0); transform-origin: left;
  transition: transform .5s var(--ease);
}
.elementor-location-header .elementor-nav-menu a.elementor-item:hover::after,
.elementor-location-header .elementor-nav-menu a.elementor-item.elementor-item-active::after { transform: scaleX(1); }
.elementor-location-header .elementor-nav-menu a.elementor-item:hover { color: var(--blanc) !important; }

/* espacement entre items */
.elementor-location-header .elementor-nav-menu--main .elementor-nav-menu > li { margin: 0 clamp(10px, 1.2vw, 22px); }

/* Desktop : nav + bouton « Devenir Membre » sur une seule ligne, bouton aligné à droite */
@media (min-width: 1025px) {
  .elementor-location-header .elementor-nav-menu--main .elementor-nav-menu,
  .elementor-location-header ul.elementor-nav-menu:not(.elementor-nav-menu--dropdown) {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
  }
  .elementor-location-header .elementor-nav-menu--main .elementor-nav-menu > li { white-space: nowrap; }
  /* la puce CTA reste centrée verticalement malgré sa bordure */
  .elementor-location-header .elementor-nav-menu .menu-item.alba-cta { display: flex; align-items: center; margin-left: clamp(14px, 1.6vw, 28px); }
}

/* Logo : on remplace le PNG Halo par le monogramme crème Alba, visible ENTIER */
.elementor-location-header .elementor-widget-theme-site-logo img,
.elementor-location-header .site-logo img {
  content: url(/wp-content/uploads/alba/logo-mark-burgundy.png);
  height: 46px !important;
  width: auto !important;
  max-width: none !important;
  object-fit: contain !important;
}
/* Accueil + pages sombres : monogramme crème */
body.home .elementor-location-header .elementor-widget-theme-site-logo img,
body.alba-header-light .elementor-location-header .elementor-widget-theme-site-logo img {
  content: url(/wp-content/uploads/alba/logo-mark-cream.png);
}
.elementor-location-header .elementor-widget-theme-site-logo,
.elementor-location-header .elementor-widget-theme-site-logo .elementor-widget-container {
  display: flex; align-items: center; justify-content: center;
}

/* CTA « Devenir Membre » → bouton (classe alba-cta posée sur l'élément de menu) */
.elementor-location-header .alba-cta > a.elementor-item {
  border: 1px solid var(--blanc);
  padding: 13px 22px !important;
  font-size: 10px !important;
}
.elementor-location-header .alba-cta > a.elementor-item::after { display: none; }
.elementor-location-header .alba-cta > a.elementor-item:hover {
  background: var(--blanc); color: var(--rouge) !important;
}

/* ACCUEIL : pas de logo dans le menu du haut (autres pages : logo visible) */
body.home .elementor-location-header .elementor-widget-theme-site-logo { visibility: hidden; }

/* Pages à hero sombre → header crème (nav + logo + CTA). */
body:is(.elementor-page-4033,.elementor-page-3787,.elementor-page-4611,.elementor-page-4044,.elementor-page-4027,.elementor-page-5017,.elementor-page-5021,.elementor-page-4000,.elementor-page-4613,.elementor-page-4615,.elementor-page-4801,.elementor-page-4803,.elementor-page-3,.elementor-page-5048) .elementor-location-header .elementor-nav-menu .elementor-item,
body:is(.elementor-page-4033,.elementor-page-3787,.elementor-page-4611,.elementor-page-4044,.elementor-page-4027,.elementor-page-5017,.elementor-page-5021,.elementor-page-4000,.elementor-page-4613,.elementor-page-4615,.elementor-page-4801,.elementor-page-4803,.elementor-page-3,.elementor-page-5048) .elementor-location-header .elementor-nav-menu .elementor-item:hover {
  color: var(--blanc) !important; fill: var(--blanc) !important;
}
body:is(.elementor-page-4033,.elementor-page-3787,.elementor-page-4611,.elementor-page-4044,.elementor-page-4027,.elementor-page-5017,.elementor-page-5021,.elementor-page-4000,.elementor-page-4613,.elementor-page-4615,.elementor-page-4801,.elementor-page-4803,.elementor-page-3,.elementor-page-5048) .elementor-location-header .elementor-widget-theme-site-logo img {
  content: url(/wp-content/uploads/alba/logo-mark-cream.png);
}
body:is(.elementor-page-4033,.elementor-page-3787,.elementor-page-4611,.elementor-page-4044,.elementor-page-4027,.elementor-page-5017,.elementor-page-5021,.elementor-page-4000,.elementor-page-4613,.elementor-page-4615,.elementor-page-4801,.elementor-page-4803,.elementor-page-3,.elementor-page-5048) .elementor-location-header .alba-cta > a.elementor-item { border-color: var(--blanc); }
body:is(.elementor-page-4033,.elementor-page-3787,.elementor-page-4611,.elementor-page-4044,.elementor-page-4027,.elementor-page-5017,.elementor-page-5021,.elementor-page-4000,.elementor-page-4613,.elementor-page-4615,.elementor-page-4801,.elementor-page-4803,.elementor-page-3,.elementor-page-5048) .elementor-location-header .alba-cta > a.elementor-item:hover { background: var(--blanc); color: var(--rouge) !important; }

/* =====================================================================
   FOOTER (template Elementor #4791, location footer) — D.A. Alba
   ===================================================================== */
.elementor-location-footer { background: var(--rouge) !important; color: var(--blanc); padding: 78px var(--pad-page) 30px !important; }
.elementor-location-footer .elementor-heading-title { color: var(--blanc); }
.elementor-location-footer .elementor-widget-text-editor,
.elementor-location-footer .elementor-widget-text-editor p { color: var(--blanc); }
.alba-foot-lockup .elementor-heading-title { font-family: var(--font-display); font-weight: 800; font-size: clamp(52px,9vw,148px); line-height: .92; letter-spacing: -.02em; text-transform: uppercase !important; margin: 0 0 38px; }
.alba-foot-lockup .elementor-heading-title em { font-style: italic; color: var(--sable); }
/* grille colonnes */
.elementor-location-footer .e-con:has(> .e-con > .alba-foot-h) { display: flex; flex-direction: row; flex-wrap: wrap; gap: var(--gap); padding-bottom: 54px; border-bottom: 1px solid rgba(247,243,235,.15); }
.elementor-location-footer .e-con:has(> .alba-foot-h) { flex: 1 1 160px; display: flex; flex-direction: column; }
.elementor-location-footer .e-con:has(> .alba-foot-col1) { flex: 2 1 300px; }
.alba-foot-h .elementor-heading-title { font-family: var(--font-sans); font-size: 10px; font-weight: 700; letter-spacing: var(--tracking-loose); text-transform: uppercase !important; color: var(--sable) !important; margin: 0 0 16px; }
.alba-foot-sublabel .elementor-heading-title { font-family: var(--font-sans); font-size: 10px; font-weight: 700; letter-spacing: var(--tracking-loose); text-transform: uppercase !important; color: var(--sable) !important; margin: 22px 0 10px; }
.alba-foot-addr, .alba-foot-addr p { font-family: var(--font-serif); font-size: 17px; line-height: 1.5; color: var(--blanc); margin: 0; max-width: 320px; }
.alba-foot-hours p { font-family: var(--font-sans); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: rgba(247,243,235,.72); margin: 0 0 6px; display: flex; justify-content: space-between; gap: 24px; max-width: 240px; }
.alba-foot-hours p span { color: var(--blanc); }
.alba-foot-links ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.alba-foot-links li, .alba-foot-links a { font-family: var(--font-sans); font-size: 13px; color: var(--blanc); }
.alba-foot-links a:hover { color: var(--sable); }
.elementor-location-footer .e-con:has(> .alba-foot-bottom) { display: flex; flex-direction: row; justify-content: space-between; gap: 24px; margin-top: 26px; flex-wrap: wrap; }
.alba-foot-bottom p, .alba-foot-bottom { font-family: var(--font-sans); font-size: 10px; font-weight: 500; letter-spacing: var(--tracking-loose); text-transform: uppercase; color: rgba(247,243,235,.5); margin: 0; }
@media (max-width:800px){ .elementor-location-footer .e-con:has(> .e-con > .alba-foot-h){ flex-direction:column; } }

/* =====================================================================
   PAGES INTÉRIEURES — composants réutilisables
   ===================================================================== */
/* HERO de page (eyebrow + titre + sous-titre, voile sombre) */
.e-con:has(> .alba-pagehero-title) { min-height: 82vh; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; position:relative; overflow:hidden; padding:150px var(--pad-page) 90px !important; background:var(--rouge); }
.e-con:has(> .alba-pagehero-title)::before { content:''; position:absolute; inset:0; z-index:0; background:linear-gradient(180deg, rgba(86,2,14,.55) 0%, rgba(86,2,14,.18) 42%, rgba(86,2,14,.72) 100%); }
.e-con:has(> .alba-pagehero-title) > * { position:relative; z-index:1; }
.e-con:has(> .alba-bg-stone) { background:linear-gradient(180deg,#F7F3EB 0%,#BDD2C5 45%,#717A64 100%); }
.e-con:has(> .alba-bg-clay)  { background:linear-gradient(165deg,#b8615f,#7d1c25 50%,#56020E); }
.e-con:has(> .alba-bg-dune)  { background:linear-gradient(185deg,#F6E4B9,#d9b87a 45%,#717A64); }
.e-con:has(> .alba-bg-water) { background:linear-gradient(180deg,#BDD2C5,#717A64 60%,#3c4338); }
.e-con:has(> .alba-bg-ink)   { background:linear-gradient(165deg,#7d1c25,#56020E 70%,#2c0107); }
.alba-pagehero-eye .elementor-heading-title { color:var(--blanc)!important; justify-content:center; display:flex; align-items:center; }
.alba-pagehero-eye .elementor-heading-title::before { content:'';width:28px;height:1px;background:currentColor;display:inline-block;margin-right:14px; }
.alba-pagehero-title .elementor-heading-title { font-family:var(--font-display); font-weight:800; color:var(--blanc); font-size:clamp(58px,10vw,150px); line-height:.96; margin:14px 0; }
.alba-pagehero-title .elementor-heading-title em { font-style:italic; color:var(--sable-deep); }
.alba-pagehero-sub, .alba-pagehero-sub p { color:var(--blanc) !important; font-style:italic; font-size:18px; max-width:520px; margin:8px auto 0; }

/* MANIFESTE (eyebrow + gros titre + colonnes de texte) */
.e-con:has(> .alba-manif-h2) { padding:clamp(110px,15vw,190px) var(--pad-page); max-width:1400px; margin:0 auto; }
.alba-manif-eye .elementor-heading-title, .alba-vals-eye .elementor-heading-title { display:flex; align-items:center; }
.alba-manif-eye .elementor-heading-title::before, .alba-vals-eye .elementor-heading-title::before { content:'';width:28px;height:1px;background:currentColor;display:inline-block;margin-right:14px; }
.alba-manif-h2 .elementor-heading-title { font-family:var(--font-display); font-weight:800; font-size:clamp(38px,5.5vw,78px)!important; margin:34px 0; max-width:22ch; color:var(--rouge); line-height:1.02; }
.alba-manif-h2 .elementor-heading-title em { font-style:italic; color:var(--pyla); }
.e-con:has(> .alba-manif-col) { display:flex; flex-direction:row; flex-wrap:wrap; gap:46px 80px; }
.alba-manif-col { flex:1 1 360px; }
.alba-manif-col, .alba-manif-col p { font-size:18px; line-height:1.65; color:var(--rouge); margin:0; }
.alba-manif-col-em, .alba-manif-col-em p { font-style:italic; color:var(--pyla); }

/* CITATION pleine page sombre */
.e-con:has(> .alba-cercle-quote) { background:var(--rouge); padding:clamp(130px,18vw,230px) var(--pad-page); text-align:center; display:flex; flex-direction:column; align-items:center; }
.alba-quote-eye .elementor-heading-title { color:var(--sable-deep)!important; }
.alba-cercle-quote .elementor-heading-title { font-family:var(--font-display); font-weight:400; color:var(--blanc); font-size:clamp(46px,8vw,124px)!important; line-height:1; margin:32px 0 0; }
.alba-cercle-quote .elementor-heading-title em { font-style:italic; color:var(--sable-deep); }

/* LISTE VALEURS (VII, fond clair, numéros pyla) */
.e-con:has(> .alba-vals-eye) { background:var(--alba-paper); padding:clamp(110px,15vw,190px) var(--pad-page); display:flex; flex-direction:column; align-items:center; }
.alba-vals-eye .elementor-heading-title { color:var(--pyla)!important; }
.alba-vals-h2 .elementor-heading-title { font-family:var(--font-display); font-weight:800; font-size:var(--fs-xl)!important; margin:18px 0 64px; text-align:center; color:var(--rouge); }
.alba-vals-h2 .elementor-heading-title em { font-style:italic; color:var(--pyla); }
.e-con:has(> .alba-valnum) { width:100%; max-width:1100px; display:flex; flex-direction:row; gap:clamp(28px,5vw,60px); align-items:baseline; border-top:1px solid var(--alba-line); padding:42px 0; }
.e-con:has(> .alba-valnum):last-child { border-bottom:1px solid var(--alba-line); }
.alba-valnum { flex:0 0 auto; min-width:80px; }
.alba-valnum .elementor-heading-title { font-family:var(--font-display); font-weight:700; font-size:46px; color:var(--pyla); }
.alba-valttl .elementor-heading-title { font-family:var(--font-display); font-style:italic; font-weight:300; font-size:clamp(26px,3vw,42px)!important; margin-bottom:14px; line-height:1.05; color:var(--rouge); }
.alba-valdesc, .alba-valdesc p { font-size:17px; line-height:1.6; max-width:62ch; color:var(--alba-bark); margin:0; }

/* BANDEAU CTA (image + texte clair, bouton clair) */
.e-con:has(> .alba-ctaband-title) { position:relative; overflow:hidden; min-height:560px; display:flex; flex-direction:column; justify-content:center; padding:clamp(48px,8vw,120px) !important; background:linear-gradient(120deg,#7d1c25,#56020E 70%); }
.e-con:has(> .alba-ctaband-title)::before { content:''; position:absolute; inset:0; z-index:0; background:linear-gradient(120deg, rgba(86,2,14,.7) 0%, rgba(86,2,14,.2) 70%); }
.e-con:has(> .alba-ctaband-title) > * { position:relative; z-index:1; }
.alba-ctaband-eye .elementor-heading-title { color:var(--blanc)!important; display:flex; align-items:center; }
.alba-ctaband-eye .elementor-heading-title::before { content:'';width:28px;height:1px;background:currentColor;display:inline-block;margin-right:14px; }
.alba-ctaband-title .elementor-heading-title { font-family:var(--font-display); font-weight:800; color:var(--blanc); font-size:clamp(54px,9vw,150px)!important; line-height:.9; margin:22px 0 44px; }
.alba-ctaband-title .elementor-heading-title em { font-style:italic; color:var(--sable-deep); }

/* RITUEL — méta (durée/capacité/intensité) + bullets + savoir-faire */
.e-con:has(> .alba-rit-meta) { display:flex; flex-direction:row; flex-wrap:wrap; gap:24px; border-top:1px solid var(--alba-line); border-bottom:1px solid var(--alba-line); padding:22px 0; margin:4px 0; }
.alba-rit-meta { flex:1 1 120px; }
.alba-rit-meta .lab { font-family:var(--font-sans); font-size:10px; letter-spacing:.28em; text-transform:uppercase; color:var(--pyla); margin:0 0 6px; }
.alba-rit-meta .val { font-family:var(--font-serif); font-style:italic; font-size:18px; color:var(--rouge); margin:0; }
.alba-rit-bullets ul { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:12px; font-size:15px; }
.alba-rit-bullets li { display:flex; align-items:center; gap:12px; color:var(--rouge); }
.alba-rit-bullets li::before { content:''; width:5px; height:5px; border-radius:50%; background:var(--pyla); display:inline-block; flex:0 0 auto; }
.e-con:has(> .e-con > .alba-craft-eye) { background:var(--rouge); padding:clamp(110px,15vw,180px) var(--pad-page); display:flex; flex-direction:row; flex-wrap:wrap; gap:50px 80px; align-items:flex-start; }
.e-con:has(> .alba-craft-eye) { flex:1 1 320px; }
.alba-craft-eye .elementor-heading-title { color:var(--sable-deep)!important; }
.alba-craft-h2 .elementor-heading-title { font-family:var(--font-display); font-weight:800; color:var(--blanc); font-size:var(--fs-xl)!important; line-height:.95; margin:18px 0 0; }
.alba-craft-h2 .elementor-heading-title em { font-style:italic; color:var(--sable-deep); }
.e-con:has(> .alba-craft-txt) { flex:1.2 1 380px; display:flex; flex-direction:column; gap:26px; }
.alba-craft-txt, .alba-craft-txt p { color:rgba(247,243,235,.85)!important; font-size:18px; line-height:1.65; margin:0; }

/* =====================================================================
   TARIFS — passes (grille), abonnements (cartes), carte cadeau
   ===================================================================== */
/* intro réutilise .alba-intro-text */
/* PASSES */
.e-con:has(> .e-con > .alba-pass-num) { display:flex; flex-direction:row; flex-wrap:wrap; border-top:1px solid var(--alba-line); border-left:1px solid var(--alba-line); max-width:1500px; margin:0 auto; }
.e-con:has(> .alba-pass-num) { flex:1 1 30%; min-width:260px; display:flex; flex-direction:column; gap:2px; padding:44px 36px; border-right:1px solid var(--alba-line); border-bottom:1px solid var(--alba-line); position:relative; transition:background .4s var(--ease); }
.e-con:has(> .alba-pass-num):hover { background:var(--alba-paper); }
.e-con:has(> .alba-pass-best-marker) { background:var(--alba-paper); }
.alba-pass-badge .elementor-heading-title { position:absolute; top:16px; right:16px; font-family:var(--font-sans); font-weight:700; font-size:9px; letter-spacing:.3em; text-transform:uppercase !important; color:var(--pyla); }
.alba-pass-num .elementor-heading-title { font-family:var(--font-display); font-size:30px; color:var(--pyla); font-weight:700; margin-bottom:12px; }
.alba-pass-name .elementor-heading-title { font-family:var(--font-display); font-style:italic; font-weight:300; font-size:30px; margin:0; color:var(--rouge); }
.alba-pass-sub p { font-family:var(--font-num); font-variant-numeric:tabular-nums; font-size:21px; font-weight:500; color:var(--rouge); margin:8px 0 16px; padding-bottom:16px; border-bottom:1px solid var(--alba-line); }
.alba-pass-unit p { font-family:var(--font-serif); font-style:italic; font-size:18px; color:var(--pyla); margin:0; }
.alba-pass-valid p { font-family:var(--font-sans); font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--pyla); margin:6px 0 16px; }
.e-con:has(> .alba-pass-num) .alba-btn { margin-top:auto; align-self:flex-start; }
.alba-passes-h2 .elementor-heading-title { font-family:var(--font-display); font-weight:800; font-size:var(--fs-lg)!important; color:var(--rouge); margin:0 0 44px; }
.alba-passes-h2 .elementor-heading-title em { font-style:italic; color:var(--pyla); }
.e-con:has(> .alba-passes-eye) { padding:clamp(60px,8vw,90px) var(--pad-page) clamp(100px,14vw,160px); }
/* MEMBERSHIPS (sombre) */
.e-con:has(> .e-con > .alba-mem-eye) { background:var(--rouge); padding:clamp(110px,15vw,180px) var(--pad-page); display:flex; flex-direction:column; }
.alba-mem-eye .elementor-heading-title { color:var(--sable-deep)!important; }
.alba-mem-h2 .elementor-heading-title { font-family:var(--font-display); font-weight:800; color:var(--blanc); font-size:var(--fs-xl)!important; line-height:.95; margin:18px 0 60px; }
.alba-mem-h2 .elementor-heading-title em { font-style:italic; color:var(--sable-deep); }
.e-con:has(> .e-con > .alba-mem-img) { display:flex; flex-direction:row; gap:40px; flex-wrap:wrap; }
.e-con:has(> .alba-mem-img) { flex:1 1 280px; display:flex; flex-direction:column; gap:14px; }
.alba-mem-img { width:100%; aspect-ratio:4/5; }
.alba-mem-img .elementor-heading-title { display:none; }
.alba-mg-stone { background:linear-gradient(180deg,#F7F3EB,#BDD2C5 45%,#717A64); }
.alba-mg-clay  { background:linear-gradient(165deg,#b8615f,#7d1c25 50%,#56020E); }
.alba-mg-warm  { background:linear-gradient(160deg,#F6E4B9,#E9CC8C 45%,#8a5a16); }
.alba-mg-water { background:linear-gradient(180deg,#BDD2C5,#717A64 60%,#3c4338); }
.alba-mg-dune  { background:linear-gradient(185deg,#F6E4B9,#d9b87a 45%,#717A64); }
.alba-mg-ink   { background:linear-gradient(165deg,#7d1c25,#56020E 70%,#2c0107); }
.alba-mem-name .elementor-heading-title { font-family:var(--font-display); font-style:italic; font-weight:300; font-size:clamp(26px,3vw,40px)!important; color:var(--blanc); margin:6px 0 0; }
.alba-mem-price p { font-family:var(--font-num); font-variant-numeric:tabular-nums; font-weight:700; font-size:clamp(38px,5vw,58px); color:var(--sable-deep); margin:0; }
.alba-mem-price small { font-family:var(--font-serif); font-style:italic; font-size:16px; color:var(--blanc); margin-left:8px; }
.alba-mem-body p { font-size:16px; line-height:1.55; color:rgba(247,243,235,.75)!important; max-width:38ch; margin:0; }
.e-con:has(> .alba-mem-img) .alba-btn { width:max-content; margin-top:8px; }
/* GIFT split */
.e-con:has(> .e-con > .alba-gift-eye) { display:flex; flex-direction:row; min-height:560px; background:var(--alba-paper); flex-wrap:wrap; }
.e-con:has(> .alba-gift-img) { flex:1 1 320px; min-height:560px; background:linear-gradient(160deg,var(--sable),var(--sable-deep) 45%,#8a5a16); }
.alba-gift-img .elementor-heading-title { display:none; }
.e-con:has(> .alba-gift-eye) { flex:1 1 360px; display:flex; flex-direction:column; justify-content:center; padding:clamp(48px,7vw,110px) !important; }
.alba-gift-h2 .elementor-heading-title { font-family:var(--font-display); font-weight:800; font-size:clamp(40px,6vw,88px)!important; line-height:.95; margin:18px 0; color:var(--rouge); }
.alba-gift-h2 .elementor-heading-title em { font-style:italic; color:var(--pyla); }
.alba-gift-body p { max-width:420px; font-size:17px; color:var(--rouge); margin:0 0 28px; }

/* =====================================================================
   ALBA × BABYLON — intro 2 colonnes, agenda événements, formulaire
   ===================================================================== */
.e-con:has(> .e-con > .alba-bab-intro-eye) { padding:clamp(110px,15vw,190px) var(--pad-page); max-width:1500px; margin:0 auto; display:flex; flex-direction:row; flex-wrap:wrap; gap:50px 80px; }
.e-con:has(> .alba-bab-intro-eye) { flex:1.1 1 360px; }
.alba-bab-intro-eye .elementor-heading-title, .alba-bab-agenda-eye .elementor-heading-title { display:flex; align-items:center; }
.alba-bab-intro-eye .elementor-heading-title::before, .alba-bab-agenda-eye .elementor-heading-title::before { content:'';width:28px;height:1px;background:currentColor;display:inline-block;margin-right:14px; }
.alba-bab-intro-h2 .elementor-heading-title { font-family:var(--font-display); font-weight:800; font-size:clamp(38px,5vw,68px)!important; margin:22px 0 0; line-height:1; color:var(--rouge); }
.alba-bab-intro-h2 .elementor-heading-title em { font-style:italic; color:var(--pyla); }
.e-con:has(> .alba-bab-intro-txt) { flex:1 1 340px; display:flex; flex-direction:column; gap:24px; padding-top:22px; }
.alba-bab-intro-txt, .alba-bab-intro-txt p { font-size:18px; line-height:1.65; color:var(--rouge); margin:0; }
.e-con:has(> .alba-bab-agenda-eye) { padding:0 var(--pad-page) clamp(100px,14vw,180px); max-width:1500px; margin:0 auto; }
.alba-bab-h2 .elementor-heading-title { font-family:var(--font-display); font-weight:800; font-size:var(--fs-xl)!important; color:var(--rouge); margin:18px 0 56px; padding-top:56px; border-top:1px solid var(--alba-line); }
.alba-bab-h2 .elementor-heading-title em { font-style:italic; color:var(--pyla); }
.e-con:has(> .e-con > .alba-bab-date) { display:flex; flex-direction:row; flex-wrap:wrap; gap:40px 60px; align-items:stretch; margin:0 0 70px; }
.e-con:has(> .alba-bab-img) { flex:1 1 320px; min-height:440px; }
.alba-bab-img { width:100%; min-height:440px; height:100%; }
.alba-bab-img .elementor-heading-title { display:none; }
.e-con:has(> .alba-bab-date) { flex:1.2 1 360px; display:flex; flex-direction:column; gap:16px; justify-content:center; }
.alba-bab-date .elementor-heading-title { font-family:var(--font-sans); font-weight:700; font-size:11px; letter-spacing:.32em; text-transform:uppercase!important; color:var(--pyla); }
.alba-bab-title .elementor-heading-title { font-family:var(--font-display); font-weight:800; font-size:clamp(36px,5vw,64px)!important; line-height:.95; margin:0; color:var(--rouge); }
.alba-bab-sub p { font-style:italic; font-size:20px; color:var(--alba-bark); margin:0; }
.e-con:has(> .alba-bab-date) .alba-btn { width:max-content; }
/* waitlist */
.e-con:has(> .alba-bab-cta-eye) { background:var(--alba-paper); padding:clamp(110px,15vw,190px) var(--pad-page); display:flex; flex-direction:column; align-items:flex-start; max-width:880px; margin:0 auto; }
.alba-bab-cta-eye .elementor-heading-title { display:flex; align-items:center; }
.alba-bab-cta-eye .elementor-heading-title::before { content:'';width:28px;height:1px;background:currentColor;display:inline-block;margin-right:14px; }
.alba-bab-cta-h2 .elementor-heading-title { font-family:var(--font-display); font-weight:800; font-size:clamp(40px,5.5vw,78px)!important; line-height:1; margin:22px 0 24px; color:var(--rouge); }
.alba-bab-cta-h2 .elementor-heading-title em { font-style:italic; color:var(--pyla); }
.alba-bab-cta-txt p { max-width:460px; font-size:17px; color:var(--rouge); margin:0 0 28px; }

/* FORMULAIRE Elementor (newsletter + pré-inscription) — minimal D.A. */
.alba-form .elementor-field-group { margin-bottom:18px; }
.alba-form .elementor-field { border:0!important; border-bottom:1px solid var(--rouge)!important; border-radius:0!important; background:transparent!important; padding:14px 0!important; font-family:var(--font-serif); font-size:17px; color:var(--rouge); }
.alba-form .elementor-field::placeholder { color:rgba(86,2,14,.45); font-style:italic; }
.alba-form .elementor-button, .alba-form button[type=submit] { background:var(--rouge)!important; color:var(--blanc)!important; border:1px solid var(--rouge)!important; border-radius:0!important; font-family:var(--font-sans); font-weight:600; font-size:11px; letter-spacing:var(--tracking-loose); text-transform:uppercase; padding:16px 28px!important; }
.alba-form .elementor-button:hover { background:transparent!important; color:var(--rouge)!important; }
.alba-form .elementor-field-label { font-family:var(--font-sans); font-size:10px; letter-spacing:var(--tracking-loose); text-transform:uppercase; color:var(--pyla); }

/* =====================================================================
   PLANNING — barre de contrôle, légende, grille 7 jours
   ===================================================================== */
.e-con:has(> .alba-pl-week) { background:var(--blanc); border-bottom:1px solid var(--alba-line); padding:22px var(--pad-page); display:flex; flex-direction:row; flex-wrap:wrap; gap:18px 30px; align-items:center; justify-content:space-between; }
.alba-pl-week .elementor-heading-title { font-family:var(--font-display); font-weight:800; font-size:24px; color:var(--rouge); }
.alba-pl-week .elementor-heading-title em { color:var(--pyla); font-style:normal; }
.alba-pl-legend p { display:flex; flex-wrap:wrap; gap:18px; margin:0; font-family:var(--font-sans); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--pyla); align-items:center; }
.alba-pl-legend i { width:9px; height:9px; border-radius:50%; display:inline-block; margin-right:8px; vertical-align:middle; }
/* grille */
.e-con:has(> .e-con > .alba-pl-day) { display:flex; flex-direction:row; border-top:1px solid var(--alba-line); border-left:1px solid var(--alba-line); max-width:1800px; margin:50px auto; }
.e-con:has(> .alba-pl-day) { flex:1 1 0; min-width:0; border-right:1px solid var(--alba-line); display:flex; flex-direction:column; }
.alba-pl-day .elementor-heading-title { font-family:var(--font-display); font-weight:700; font-size:13px; letter-spacing:.16em; text-transform:uppercase; color:var(--rouge); text-align:center; padding:18px 6px; border-bottom:1px solid var(--alba-line); background:var(--alba-paper); margin:0; }
.alba-pl-day .elementor-heading-title em { display:block; font-size:26px; font-style:normal; letter-spacing:0; margin-top:2px; }
.alba-pl-slot { padding:14px 14px; border-bottom:1px solid var(--alba-line-soft); border-left:3px solid var(--pyla); }
.alba-pl-slot .t { font-family:var(--font-sans); font-size:11px; letter-spacing:.16em; color:var(--pyla); display:block; margin-bottom:4px; }
.alba-pl-slot .nm { font-family:var(--font-display); font-weight:800; font-size:17px; color:var(--rouge); margin:0 0 3px; line-height:1; }
.alba-pl-slot .mt { font-family:var(--font-serif); font-style:italic; font-size:13px; color:var(--alba-bark); margin:0 0 7px; }
.alba-pl-slot .cp { font-family:var(--font-sans); font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--pyla); }
.alba-pl-slot.full { opacity:.45; }
.alba-pl-reformer { border-left-color:#a07a4f; } .alba-pl-hot { border-left-color:#c9783b; }
.alba-pl-hiit { border-left-color:#7a3c2c; } .alba-pl-ice { border-left-color:#5a7c84; }
.alba-pl-sauna { border-left-color:#b08a4e; } .alba-pl-workshop { border-left-color:#1a1612; }
/* info band */
.e-con:has(> .e-con > .alba-pl-info-eye) { background:var(--rouge); padding:clamp(80px,10vw,140px) var(--pad-page); display:flex; flex-direction:row; flex-wrap:wrap; gap:50px 60px; }
.e-con:has(> .alba-pl-info-eye) { flex:1 1 280px; }
.alba-pl-info-eye .elementor-heading-title { color:var(--sable-deep)!important; }
.alba-pl-info-txt p { font-family:var(--font-serif); font-style:italic; font-size:18px; line-height:1.5; color:rgba(247,243,235,.85)!important; margin:14px 0 0; max-width:38ch; }
@media (max-width:1100px){ .e-con:has(> .e-con > .alba-pl-day){ flex-wrap:wrap; } .e-con:has(> .alba-pl-day){ flex:1 1 33%; } }

/* =====================================================================
   LANDING / OUVERTURE — compte à rebours, marquee, offre fondateur, form
   ===================================================================== */
/* compte à rebours (widget Countdown Elementor) */
.alba-ouv-countdown .elementor-countdown-wrapper { display:flex; gap:clamp(14px,3vw,40px); justify-content:center; flex-wrap:wrap; }
.alba-ouv-countdown .elementor-countdown-item { background:transparent!important; border:0!important; }
.alba-ouv-countdown .elementor-countdown-digits { font-family:var(--font-num); font-size:clamp(40px,6vw,76px); font-weight:800; color:var(--blanc); line-height:.9; }
.alba-ouv-countdown .elementor-countdown-label { font-family:var(--font-sans); font-size:10px; font-weight:600; letter-spacing:.28em; text-transform:uppercase; color:var(--sable-deep); margin-top:8px; }
/* marquee */
.e-con:has(> .alba-marquee-band) { background:var(--sable); padding:20px 0; overflow:hidden; border-top:1px solid var(--alba-line-soft); border-bottom:1px solid var(--alba-line-soft); }
.alba-marquee-band .elementor-widget-container { white-space:nowrap; overflow:hidden; }
.alba-marquee-band p { display:inline-block; margin:0; padding-left:100%; font-family:var(--font-sans); font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--rouge); font-size:17px; animation:alba-marq 26s linear infinite; }
.alba-marquee-band p b { font-weight:700; }
.alba-marquee-band p i { font-style:normal; display:inline-block; width:5px; height:5px; border-radius:50%; background:var(--rouge); margin:0 22px; vertical-align:middle; }
@keyframes alba-marq { from{transform:translateX(0)} to{transform:translateX(-100%)} }
@media (prefers-reduced-motion:reduce){ .alba-marquee-band p{ animation:none; padding-left:0; } }
/* offre fondateur */
.e-con:has(> .e-con > .alba-ouv-founder-eye) { padding:clamp(90px,12vw,170px) var(--pad-page); max-width:1300px; margin:0 auto; display:flex; flex-direction:row; flex-wrap:wrap; gap:clamp(40px,6vw,90px); align-items:center; }
.e-con:has(> .alba-ouv-founder-eye) { flex:1.1 1 380px; }
.alba-ouv-founder-eye .elementor-heading-title { display:flex; align-items:center; }
.alba-ouv-founder-eye .elementor-heading-title::before { content:'';width:28px;height:1px;background:currentColor;display:inline-block;margin-right:14px; }
.alba-ouv-founder-h2 .elementor-heading-title { font-family:var(--font-display); font-weight:800; font-size:clamp(38px,5vw,68px)!important; margin:22px 0; line-height:.96; color:var(--rouge); }
.alba-ouv-founder-h2 .elementor-heading-title em { color:var(--pyla); font-style:italic; }
.alba-ouv-founder-txt p { font-size:18px; line-height:1.65; color:var(--alba-bark); max-width:46ch; margin:0; }
.alba-ouv-perks ul { list-style:none; margin:32px 0 0; padding:0; display:grid; gap:15px; }
.alba-ouv-perks li { display:flex; align-items:flex-start; gap:14px; font-family:var(--font-sans); font-size:16px; line-height:1.45; color:var(--rouge); }
.alba-ouv-perks li::before { content:''; width:7px; height:7px; border-radius:50%; background:var(--pyla); margin-top:8px; flex:0 0 auto; }
/* carte tarif fondateur */
.e-con:has(> .alba-ouv-price-tag) { background:var(--rouge); padding:clamp(34px,4vw,50px); flex:.9 1 320px; display:flex; flex-direction:column; }
.alba-ouv-price-tag .elementor-heading-title { font-family:var(--font-sans); font-weight:700; font-size:10px; letter-spacing:.3em; text-transform:uppercase!important; color:var(--sable-deep)!important; }
.alba-ouv-price p { margin:18px 0 0; }
.alba-ouv-price .old { font-family:var(--font-num); font-size:26px; color:rgba(247,243,235,.5); text-decoration:line-through; margin-right:16px; }
.alba-ouv-price .new { font-family:var(--font-num); font-size:clamp(46px,6vw,70px); font-weight:800; color:var(--blanc); letter-spacing:-.02em; }
.alba-ouv-price .new small { font-family:var(--font-sans); font-size:16px; color:var(--sable-deep); margin-left:6px; }
.alba-ouv-price .sub { display:block; font-size:15px; color:rgba(247,243,235,.78); margin-top:8px; }
.alba-ouv-price .sub b { color:var(--blanc); }
.alba-ouv-pricelist ul { list-style:none; margin:26px 0; padding:24px 0 0; border-top:1px solid rgba(247,243,235,.18); display:grid; gap:13px; font-family:var(--font-sans); font-size:14px; }
.alba-ouv-pricelist li { display:flex; justify-content:space-between; gap:20px; padding-bottom:13px; border-bottom:1px solid rgba(247,243,235,.1); color:rgba(247,243,235,.8); }
.alba-ouv-pricelist b { color:var(--blanc); font-weight:400; }
.e-con:has(> .alba-ouv-price-tag) .alba-btn-ghost .elementor-button { border-bottom-color:var(--sable-deep)!important; color:var(--blanc)!important; }
/* pré-inscription */
.e-con:has(> .e-con > .alba-ouv-pre-eye) { background:var(--rouge); padding:clamp(90px,12vw,160px) var(--pad-page); display:flex; flex-direction:row; flex-wrap:wrap; gap:clamp(40px,6vw,90px); align-items:flex-start; }
.e-con:has(> .alba-ouv-pre-eye) { flex:.85 1 340px; }
.alba-ouv-pre-eye .elementor-heading-title { color:var(--sable-deep)!important; display:flex; align-items:center; }
.alba-ouv-pre-eye .elementor-heading-title::before { content:'';width:28px;height:1px;background:currentColor;display:inline-block;margin-right:14px; }
.alba-ouv-pre-h2 .elementor-heading-title { font-family:var(--font-display); font-weight:800; font-size:clamp(34px,4.5vw,62px)!important; color:var(--blanc); margin:22px 0; line-height:.96; }
.alba-ouv-pre-txt p { font-size:18px; line-height:1.65; color:rgba(247,243,235,.78)!important; max-width:40ch; margin:0 0 28px; }
.e-con:has(> .alba-ouv-form) { background:var(--blanc); padding:clamp(32px,4vw,50px); flex:1.15 1 380px; }
.alba-ouv-form .elementor-button { width:100%; justify-content:center; }
.alba-ouv-pre-meta { margin-top:6px; }
.alba-ouv-pre-meta .l { font-family:var(--font-sans); font-size:10px; font-weight:700; letter-spacing:.28em; text-transform:uppercase; color:var(--sable-deep); margin:0 0 6px; }
.alba-ouv-pre-meta .v { font-family:var(--font-serif); font-size:18px; color:var(--blanc); margin:0 0 18px; }

/* =====================================================================
   CALCUL IMC — calculateur existant re-stylisé + note/CTA
   ===================================================================== */
.e-con:has(> .alba-imc-bmi) { padding:clamp(80px,12vw,150px) var(--pad-page); max-width:1100px; margin:0 auto; }
.alba-imc-bmi { font-family:var(--font-serif); }
.alba-imc-bmi h1,.alba-imc-bmi h2,.alba-imc-bmi h3,.alba-imc-bmi h4 { font-family:var(--font-display)!important; color:var(--rouge); text-transform:none!important; }
.alba-imc-bmi label, .alba-imc-bmi .mkdf-bmi-label { font-family:var(--font-sans); font-size:12px; letter-spacing:var(--tracking-loose); text-transform:uppercase; color:var(--alba-bark); }
.alba-imc-bmi input, .alba-imc-bmi select { font-family:var(--font-serif)!important; border:0!important; border-bottom:1px solid var(--alba-line)!important; border-radius:0!important; background:transparent!important; color:var(--rouge)!important; padding:10px 0!important; }
.alba-imc-bmi input[type=submit], .alba-imc-bmi button, .alba-imc-bmi .mkdf-btn, .alba-imc-bmi a.mkdf-btn {
  background:var(--rouge)!important; color:var(--blanc)!important; border:1px solid var(--rouge)!important; border-radius:0!important;
  font-family:var(--font-sans)!important; font-weight:600!important; font-size:11px!important; letter-spacing:var(--tracking-loose)!important; text-transform:uppercase!important; padding:16px 28px!important;
}
.alba-imc-bmi input[type=range] { -webkit-appearance:none; appearance:none; width:100%; height:2px; background:var(--alba-line); border-bottom:0!important; }
.alba-imc-bmi input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; width:22px; height:22px; border-radius:50%; background:var(--rouge); border:3px solid var(--blanc); box-shadow:0 0 0 1px var(--rouge); }
/* note + CTA */
.e-con:has(> .e-con > .alba-imc-note-eye) { background:var(--rouge); padding:clamp(80px,11vw,150px) var(--pad-page); display:flex; flex-direction:row; flex-wrap:wrap; gap:44px 80px; align-items:center; }
.e-con:has(> .alba-imc-note-eye) { flex:1.3 1 380px; }
.alba-imc-note-eye .elementor-heading-title { color:var(--sable-deep)!important; display:flex; align-items:center; }
.alba-imc-note-eye .elementor-heading-title::before { content:'';width:28px;height:1px;background:currentColor;display:inline-block;margin-right:14px; }
.alba-imc-note-txt p { font-size:18px; line-height:1.7; color:rgba(247,243,235,.82)!important; max-width:56ch; margin:14px 0 0; }
.alba-imc-note-txt em { color:var(--sable-deep); font-style:italic; }
.e-con:has(> .alba-imc-cta-h2) { flex:1 1 300px; border-left:1px solid rgba(247,243,235,.18); padding-left:clamp(28px,4vw,60px); }
.alba-imc-cta-h2 .elementor-heading-title { font-family:var(--font-display); font-weight:800; color:var(--blanc); font-size:clamp(32px,4vw,54px)!important; line-height:.96; margin:0 0 26px; }

/* =====================================================================
   PAGES UTILITAIRES — Contact, FAQ, légales, Devenir Membre
   ===================================================================== */
/* CONTACT */
.e-con:has(> .e-con > .alba-contact-eye) { padding:clamp(80px,11vw,150px) var(--pad-page); max-width:1300px; margin:0 auto; display:flex; flex-direction:row; flex-wrap:wrap; gap:clamp(40px,6vw,90px); align-items:flex-start; }
.e-con:has(> .alba-contact-eye) { flex:1 1 320px; }
.alba-contact-eye .elementor-heading-title { display:flex; align-items:center; }
.alba-contact-eye .elementor-heading-title::before { content:'';width:28px;height:1px;background:currentColor;display:inline-block;margin-right:14px; }
.alba-contact-h2 .elementor-heading-title { font-family:var(--font-display); font-weight:800; font-size:clamp(34px,4.5vw,60px)!important; color:var(--rouge); margin:18px 0 24px; line-height:.98; }
.alba-contact-info p { font-size:17px; line-height:1.7; color:var(--rouge); margin:0 0 18px; }
.alba-contact-info .lab { font-family:var(--font-sans); font-size:10px; letter-spacing:.28em; text-transform:uppercase; color:var(--pyla); display:block; margin-bottom:4px; }
.e-con:has(> .alba-contact-form) { flex:1.2 1 380px; background:var(--alba-paper); padding:clamp(28px,4vw,46px); }
/* LEGAL (CGV, Mentions, Politique) */
.e-con:has(> .alba-legal-body) { max-width:860px; margin:0 auto; padding:clamp(60px,9vw,120px) var(--pad-page); }
.alba-legal-body h3 { font-family:var(--font-display); font-weight:800; font-size:24px; color:var(--rouge); margin:36px 0 12px; text-transform:none; }
.alba-legal-body h3:first-child { margin-top:0; }
.alba-legal-body p, .alba-legal-body li { font-size:16px; line-height:1.7; color:var(--rouge); margin:0 0 14px; }
.alba-legal-body strong { color:var(--rouge); }
/* FAQ accordéon */
.e-con:has(> .alba-faq) { max-width:920px; margin:0 auto; padding:clamp(60px,9vw,120px) var(--pad-page); }
.alba-faq .elementor-accordion-item { border:0!important; border-bottom:1px solid var(--alba-line)!important; background:transparent; }
.alba-faq .elementor-tab-title, .alba-faq .elementor-accordion-item .elementor-tab-title { font-family:var(--font-display)!important; font-weight:800!important; font-size:clamp(19px,2.3vw,27px)!important; color:var(--rouge)!important; padding:24px 0!important; background:transparent!important; text-transform:none; border:0!important; }
.alba-faq .elementor-tab-content { font-size:16px!important; line-height:1.7!important; color:var(--alba-bark)!important; padding:0 0 24px!important; background:transparent!important; border:0!important; }
.alba-faq .elementor-accordion-icon { color:var(--pyla)!important; }

/* =====================================================================
   OUVERTURE — fidèle à la maquette (7 sections)
   ===================================================================== */
/* S1 · HERO */
.e-con:has(> .alba-op-logo) { min-height:100vh; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; position:relative; overflow:hidden; padding:56px var(--pad-page) !important; background:url(/wp-content/uploads/alba/ouv-hero-flip.jpg) center/cover no-repeat; background-color:#e7ded3; }
.e-con:has(> .alba-op-logo)::before { content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(247,243,235,.10) 0%,rgba(247,243,235,.04) 45%,rgba(28,24,22,.14) 100%); }
.e-con:has(> .alba-op-logo) > * { position:relative; z-index:1; }
/* Picto talisman (rouge) épinglé en haut, comme la maquette */
.e-con:has(> .alba-op-logo)::after { content:''; position:absolute; top:20px; left:50%; transform:translateX(-50%); width:clamp(44px,3.6vw,62px); height:clamp(54px,4.5vw,76px); background:url(/wp-content/uploads/alba/talisman-burgundy.svg) center/contain no-repeat; z-index:2; }
/* Bandeau vert fixe au scroll : talisman centré (marge au-dessus / en-dessous).
   Masqué en haut de page ; le JS (functions.php) ajoute .alba-op-fixband-on au body dès qu'on scrolle. */
.alba-op-fixband { position:fixed; top:0; left:0; right:0; z-index:9990; background:var(--pyla); display:flex; align-items:center; justify-content:center; padding:12px 0; transform:translateY(-100%); transition:transform .35s var(--ease); }
.alba-op-fixband img { display:block; width:clamp(26px,2.4vw,36px); height:auto; }
body.alba-op-fixband-on .alba-op-fixband { transform:translateY(0); box-shadow:0 6px 22px rgba(28,24,22,.16); }
/* Décalage sous la barre d'admin WP (utilisateurs connectés uniquement) */
body.admin-bar .alba-op-fixband { top:32px; }
@media (max-width:782px){ body.admin-bar .alba-op-fixband { top:46px; } }
@media (prefers-reduced-motion:reduce){ .alba-op-fixband { transition:none; } }
.alba-op-logo { text-align:center; }
.alba-op-logo img { content:url(/wp-content/uploads/alba/alba-sportive-burgundy.png); width:clamp(196px,30vw,378px) !important; height:auto !important; margin:0 auto !important; display:block; filter:drop-shadow(0 2px 22px rgba(247,243,235,.55)); }
/* S1b · SECTION INTRO ROUGE (texte sorti du slider) */
.e-con:has(> .alba-op-sub) { background:var(--rouge); padding:clamp(54px,8vw,110px) var(--pad-page) !important; display:flex; flex-direction:column; align-items:center; text-align:center; gap:16px; }
.e-con:has(> .alba-op-sub) > .e-con { margin-top:34px; flex-direction:row; flex-wrap:wrap; justify-content:center; gap:16px; }
/* titre texte supprimé du slider (le logo complet contient déjà « Maison Alba Pyla ») */
.alba-op-title { display:block; margin-top:clamp(4px,0.8vw,10px); }
/* « Défiler » supprimé */
.alba-op-scroll { display:none !important; }
.alba-op-title .elementor-heading-title { font-family:var(--font-sans); font-weight:400; color:var(--rouge); font-size:clamp(10px,1.05vw,13px); line-height:1.7; margin:0; letter-spacing:.22em; text-transform:uppercase !important; text-shadow:0 2px 16px rgba(247,243,235,.55); }
.alba-op-sub .elementor-heading-title, .alba-op-sub, .alba-op-sub p { font-family:var(--font-display); font-weight:500; color:var(--sable-deep) !important; font-size:clamp(19px,2.4vw,30px); margin:0; }
.alba-op-pill .elementor-heading-title { display:inline-block; background:var(--sable-deep); color:var(--rouge); font-family:var(--font-sans); font-weight:700; font-size:11px; letter-spacing:.28em; text-transform:uppercase !important; padding:9px 20px; margin:26px 0 4px; }
.alba-op-practices, .alba-op-practices p { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:12px; font-family:var(--font-sans); font-size:13px; font-weight:500; letter-spacing:.08em; text-transform:uppercase; color:rgba(247,243,235,.88) !important; margin:0; }
.alba-op-practices i { font-style:normal; color:var(--sable-deep); }
.e-con:has(> .alba-op-cta) { display:flex; flex-direction:row; flex-wrap:wrap; gap:16px; justify-content:center; margin-top:22px; }
.alba-op-cta-ghost .elementor-button { border-color:rgba(247,243,235,.5)!important; color:var(--blanc)!important; }
.alba-op-cta-ghost .elementor-button::after { background:var(--blanc)!important; }
.alba-op-cta-ghost .elementor-button:hover { color:var(--rouge)!important; }
.alba-op-scroll, .alba-op-scroll p { position:absolute; bottom:24px; left:0; right:0; text-align:center; font-family:var(--font-sans); font-size:9px; font-weight:600; letter-spacing:.3em; text-transform:uppercase; color:rgba(247,243,235,.7); margin:0; z-index:2; }
/* Bandes photo plein-bleed */
.e-con:has(> .alba-op-band-water) { height:clamp(280px,42vw,520px); background:url(/wp-content/uploads/alba/ouv-band-map.jpg) center 38%/cover no-repeat; background-color:#717A64; }
.e-con:has(> .alba-op-band-dune) { height:clamp(280px,42vw,520px); background:linear-gradient(180deg,rgba(86,2,14,.10),rgba(86,2,14,.18)),url(/wp-content/uploads/alba/ouv-dune.jpg) center center/cover no-repeat; background-color:#d9b87a; }
.alba-op-band-water .elementor-heading-title, .alba-op-band-dune .elementor-heading-title { display:none; }
/* S2 · MAP ON THE BEACH */
.e-con:has(> .e-con > .alba-op-map-eye) { padding:clamp(80px,10vw,150px) var(--pad-page); max-width:1340px; margin:0 auto; display:flex; flex-direction:row; flex-wrap:wrap; gap:clamp(30px,3.4vw,56px); align-items:flex-start; }
.e-con:has(> .alba-op-map-eye) { flex:1 1 220px; }
/* 3e colonne : widget Bsport workshop (un peu plus large que les colonnes contenu) */
.e-con:has(> .alba-op-beach-bsport) { flex:1.7 1 320px; align-self:stretch; }
.alba-op-beach-bsport, .alba-op-beach-bsport > .elementor-widget-container, .alba-op-beach-bsport #bsport-widget-36513 { width:100%; }
.alba-op-beach-bsport #bsport-widget-36513 { min-height:440px; }
/* Widget Atelier (MAP on the Beach) — réglages ciblés sur cette instance */
#bsport-widget-36513 .bs-marketplace-filters__list { display:none !important; }   /* masquer les filtres du haut */
#bsport-widget-36513 .bs-workshop-card__content button { color:var(--rouge) !important; font-family:var(--font-sans) !important; font-weight:600 !important; font-size:12px !important; letter-spacing:.1em !important; text-transform:uppercase !important; display:inline-block !important; padding:9px 18px !important; margin-top:14px !important; line-height:1 !important; border:1px solid var(--rouge) !important; border-radius:4px !important; transition:background .2s ease,color .2s ease !important; }
#bsport-widget-36513 .bs-workshop-card__content button:hover { background:var(--rouge) !important; color:var(--blanc) !important; cursor:pointer; }
/* Bouton de réservation « Bientôt » : rouge par défaut -> vert au survol, texte blanc */
#bsport-widget-36513 .bs-book-button-card { background:var(--rouge) !important; border-color:var(--rouge) !important; border-radius:4px !important; transition:background .2s ease,border-color .2s ease !important; }
#bsport-widget-36513 .bs-book-button-card, #bsport-widget-36513 .bs-book-button-card * { color:var(--blanc) !important; fill:var(--blanc) !important; }
#bsport-widget-36513 .bs-book-button-card:hover { background:var(--pyla) !important; border-color:var(--pyla) !important; cursor:pointer; }
/* Widget Abonnement (Devenir membre) — masquer le champ de recherche */
#bsport-widget-958245 .bs-contract-page__pass__filters__search__container { display:none !important; }
.alba-op-map-eye .elementor-heading-title { color:var(--pyla)!important; display:flex; align-items:center; }
.alba-op-map-eye .elementor-heading-title::before { content:'';width:28px;height:1px;background:currentColor;display:inline-block;margin-right:14px; }
.alba-op-map-h2 .elementor-heading-title { font-family:var(--font-display); font-weight:800; font-size:clamp(34px,4.4vw,64px)!important; color:var(--rouge); line-height:.98; margin:22px 0 18px; }
.alba-op-map-h2 .elementor-heading-title em { color:var(--pyla); font-style:normal; }
.alba-op-map-txt p { font-size:19px; line-height:1.6; color:var(--alba-bark); max-width:40ch; margin:0 0 40px; }
.e-con:has(> .alba-op-map-list) { flex:1 1 220px; }
.alba-op-map-list ul { list-style:none; margin:0 0 40px; padding:0; display:grid; gap:15px; }
.alba-op-map-list li { display:flex; align-items:flex-start; gap:13px; font-family:var(--font-sans); font-size:16px; line-height:1.45; color:var(--rouge); }
.alba-op-map-list li::before { content:''; width:7px;height:7px;border-radius:50%;background:var(--pyla);margin-top:7px;flex:0 0 auto; }
.alba-op-info { display:none !important; }
.alba-op-info .row { display:flex; justify-content:space-between; align-items:baseline; gap:20px; padding:16px 0; border-bottom:1px solid var(--alba-line); }
.alba-op-info .lab { font-family:var(--font-sans); font-weight:700; font-size:10px; letter-spacing:.28em; text-transform:uppercase; color:var(--pyla); }
.alba-op-info .val { font-family:var(--font-serif); font-size:17px; color:var(--rouge); text-align:right; }
/* S3 · LISTE PRIVILÈGE */
.e-con:has(> .e-con > .alba-op-pv-eye) { background:var(--rouge); padding:clamp(90px,12vw,160px) max(var(--pad-page),calc((100% - 1340px)/2 + var(--pad-page))); display:flex; flex-direction:row; flex-wrap:wrap; gap:clamp(48px,7vw,100px); align-items:center; }
.e-con:has(> .alba-op-pv-eye) { flex:2 1 0; min-width:300px; }
.alba-op-pv-eye .elementor-heading-title { color:var(--sable-deep)!important; display:flex; align-items:center; }
.alba-op-pv-eye .elementor-heading-title::before { content:'';width:28px;height:1px;background:currentColor;display:inline-block;margin-right:14px; }
.alba-op-pv-h2 .elementor-heading-title { font-family:var(--font-display); font-weight:800; font-size:clamp(34px,4.5vw,68px)!important; color:var(--blanc); line-height:.96; margin:22px 0; }
.alba-op-pv-h2 .elementor-heading-title em { color:var(--sable-deep); font-style:normal; }
.alba-op-pv-txt p { font-size:18px; line-height:1.65; color:rgba(247,243,235,.8)!important; max-width:42ch; margin:0 0 36px; }
.alba-op-perks ul { list-style:none; margin:0; padding:0; display:grid; gap:15px; }
.alba-op-perks li { display:flex; align-items:flex-start; gap:13px; font-family:var(--font-sans); font-size:16px; color:rgba(247,243,235,.9); }
.alba-op-perks li::before { content:''; width:7px;height:7px;border-radius:50%;background:var(--sable-deep);margin-top:7px;flex:0 0 auto; }
.e-con:has(> .alba-op-form) { background:var(--blanc); padding:clamp(32px,4vw,52px); flex:1.05 1 360px; }
.alba-op-form .elementor-button { width:100%; justify-content:center; }
/* Colonne droite : widget Bsport (remplace le formulaire) */
.e-con:has(> .alba-op-bsport) { background:transparent; padding:0; flex:1 1 0; min-width:280px; align-self:stretch; }
.alba-op-bsport, .alba-op-bsport > .elementor-widget-container, .alba-op-bsport [id^="bsport-widget-"] { width:100%; }
.alba-op-bsport [id^="bsport-widget-"] { min-height:120px; }
/* Mention bas de colonne gauche */
.alba-op-pv-note p { font-family:var(--font-sans); font-size:12px; line-height:1.55; letter-spacing:.01em; color:rgba(247,243,235,.6) !important; margin:30px 0 0; font-style:italic; }
/* S4 · DÉCOUVRIR (rooms) */
.e-con:has(> .e-con > .alba-op-disc-eye) { padding:clamp(90px,12vw,160px) var(--pad-page); }
.e-con:has(> .alba-op-disc-eye) { max-width:1300px; margin:0 auto clamp(48px,6vw,80px); }
.alba-op-disc-eye .elementor-heading-title { color:var(--pyla)!important; display:flex; align-items:center; }
.alba-op-disc-eye .elementor-heading-title::before { content:'';width:28px;height:1px;background:currentColor;display:inline-block;margin-right:14px; }
.alba-op-disc-h2 .elementor-heading-title { font-family:var(--font-display); font-weight:800; font-size:clamp(40px,6vw,96px)!important; color:var(--rouge); line-height:.94; margin:20px 0 0; }
.alba-op-disc-h2 .elementor-heading-title em { color:var(--pyla); font-style:normal; }
.e-con:has(> .e-con > .alba-op-roomimg) { max-width:1300px; margin:0 auto; display:flex; flex-direction:row; flex-wrap:wrap; gap:clamp(28px,4vw,56px); }
.e-con:has(> .alba-op-roomimg) { flex:1 1 44%; display:flex; flex-direction:column; }
.alba-op-roomimg { height:clamp(240px,26vw,360px); }
.alba-op-roomimg .elementor-heading-title { display:none; }
.alba-op-roomimg { background-size:cover !important; background-position:center !important; background-repeat:no-repeat !important; border-radius:2px; }
.alba-op-room-skin { background-image:url(/wp-content/uploads/alba/ouv-reformer.jpg); background-color:#d9a7b4; }
.alba-op-room-clay { background-image:url(/wp-content/uploads/alba/ouv-hot2.jpg); background-color:#7d1c25; }
.alba-op-room-water { background-image:url(/wp-content/uploads/alba/ouv-cold.jpg); background-color:#717A64; }
.alba-op-room-dune { background-image:url(/wp-content/uploads/alba/ouv-salon.jpg); background-color:#d9b87a; }
/* Numéro supprimé ; picto à GAUCHE du titre (même ligne) */
.alba-op-rtag { display:none !important; }
.alba-op-rname .elementor-heading-title { font-family:var(--font-display); font-weight:800; font-size:clamp(26px,2.6vw,38px)!important; color:var(--rouge); margin:18px 0 18px; line-height:1; display:flex; align-items:center; }
.alba-op-rname .elementor-heading-title::before { content:''; flex:0 0 auto; width:.92em; height:1.08em; margin-right:.42em; background-repeat:no-repeat; background-position:center; background-size:contain; }
.e-con:has(> .alba-op-room-skin)  .alba-op-rname .elementor-heading-title::before { background-image:url(/wp-content/uploads/alba/picto-reformer.svg); }
.e-con:has(> .alba-op-room-clay)  .alba-op-rname .elementor-heading-title::before { background-image:url(/wp-content/uploads/alba/picto-hot.svg); }
.e-con:has(> .alba-op-room-water) .alba-op-rname .elementor-heading-title::before { background-image:url(/wp-content/uploads/alba/picto-cold.svg); }
.e-con:has(> .alba-op-room-dune)  .alba-op-rname .elementor-heading-title::before { background-image:url(/wp-content/uploads/alba/picto-salon.svg); }
.alba-op-ritems ul { list-style:none; margin:0; padding:0; display:grid; gap:11px; }
.alba-op-ritems li { display:flex; align-items:flex-start; gap:13px; font-family:var(--font-sans); font-size:16px; color:var(--rouge); }
.alba-op-ritems li::before { content:''; width:7px;height:7px;border-radius:50%;background:var(--pyla);margin-top:7px;flex:0 0 auto; }
/* S5 · MANIFESTE */
.e-con:has(> .alba-op-mani-eye) { background:var(--rouge); padding:clamp(90px,12vw,170px) var(--pad-page); text-align:center; display:flex; flex-direction:column; align-items:center; }
.alba-op-mani-eye .elementor-heading-title { color:var(--sable-deep)!important; display:flex; align-items:center; justify-content:center; }
.alba-op-mani-eye .elementor-heading-title::before { content:'';width:28px;height:1px;background:currentColor;display:inline-block;margin-right:14px; }
.alba-op-mani-h2 .elementor-heading-title { font-family:var(--font-display); font-weight:800; font-size:clamp(48px,8vw,140px)!important; color:var(--blanc); line-height:.9; margin:24px 0 36px; }
.alba-op-mani-h2 .elementor-heading-title em { color:var(--sable-deep); font-style:normal; }
.alba-op-mani-txt p { font-size:clamp(19px,2.2vw,26px); line-height:1.6; color:rgba(247,243,235,.85)!important; max-width:50ch; margin:0 auto 56px; }
.e-con:has(> .e-con > .alba-op-pnum) { display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(20px,3vw,48px); width:100%; max-width:1100px; margin:0 auto; border-top:1px solid rgba(247,243,235,.18); padding-top:44px; }
.e-con:has(> .alba-op-pnum) { display:flex; flex-direction:column; align-items:center; gap:10px; }
.alba-op-pnum .elementor-heading-title { font-family:var(--font-num); font-weight:800; font-size:26px; color:var(--sable-deep); }
.alba-op-plabel .elementor-heading-title { font-family:var(--font-display); font-weight:600; font-size:clamp(17px,1.8vw,24px)!important; color:var(--blanc); }
/* S6 · OUVERTURE / COMPTE À REBOURS */
.e-con:has(> .alba-op-open-eye) { background:var(--alba-paper); padding:clamp(90px,12vw,170px) var(--pad-page); display:flex; flex-direction:column; align-items:center; text-align:center; }
.alba-op-open-eye .elementor-heading-title { color:var(--pyla)!important; display:flex; align-items:center; justify-content:center; }
.alba-op-open-eye .elementor-heading-title::before { content:'';width:28px;height:1px;background:currentColor;display:inline-block;margin-right:14px; }
.alba-op-open-h2 .elementor-heading-title { font-family:var(--font-display); font-weight:800; font-size:clamp(44px,7vw,120px)!important; color:var(--rouge); line-height:.92; margin:22px 0 44px; }
.alba-op-open-h2 .elementor-heading-title em { color:var(--pyla); font-style:normal; }
.alba-op-countdown .elementor-countdown-wrapper { display:flex; gap:clamp(16px,3vw,48px); justify-content:center; flex-wrap:wrap; }
.alba-op-countdown .elementor-countdown-item { background:transparent!important; border:0!important; }
.alba-op-countdown .elementor-countdown-digits { font-family:var(--font-num); font-size:clamp(48px,8vw,110px); font-weight:800; color:var(--rouge); line-height:.88; }
.alba-op-countdown .elementor-countdown-label { font-family:var(--font-sans); font-size:10px; font-weight:600; letter-spacing:.28em; text-transform:uppercase; color:var(--pyla); margin-top:10px; }
.alba-op-open-btn .elementor-button { margin-top:44px; }
/* S7 · FOOTER (intégré, sans header/footer du site) */
.e-con:has(> .alba-op-footer-logo) { background:var(--rouge); padding:clamp(64px,8vw,110px) var(--pad-page); display:flex; flex-direction:column; align-items:center; gap:22px; text-align:center; }
.alba-op-footer-logo { text-align:center; }
.alba-op-footer-logo img { content:url(/wp-content/uploads/alba/talisman-cream.svg); height:clamp(76px,9vw,116px) !important; width:auto !important; margin:0 auto !important; display:block; }
.alba-op-footer-links p { margin:5px 0; text-align:center; }
.alba-op-footer-links a { font-family:var(--font-sans) !important; font-size:13px; font-weight:600; letter-spacing:.24em; text-transform:uppercase; color:var(--blanc) !important; }
.alba-op-footer-links a:hover { color:var(--sable-deep) !important; }
/* Logo Instagram (masque -> suit la couleur du lien) */
.alba-op-footer-links p.ig { margin:0 0 12px; }
.alba-op-footer-links p.ig a { display:inline-block; width:28px; height:28px; text-indent:-9999px; overflow:hidden; white-space:nowrap; vertical-align:middle; background-color:var(--blanc); -webkit-mask:url(/wp-content/uploads/alba/ig.svg) center/contain no-repeat; mask:url(/wp-content/uploads/alba/ig.svg) center/contain no-repeat; }
.alba-op-footer-links p.ig a:hover { background-color:var(--sable-deep); }
/* sécurité canvas */
body.elementor-template-canvas { background:var(--blanc); color:var(--rouge); font-family:var(--font-serif); }
body.elementor-template-canvas .elementor-heading-title { font-family:var(--font-display); }

/* =====================================================================
   MOBILE — toute ligne à plusieurs blocs passe en colonne (100% largeur)
   ===================================================================== */
@media (max-width: 880px) {
  .e-con:has(> .e-con > .alba-room-num),
  .e-con:has(> .e-con > .alba-loc-eye),
  .e-con:has(> .alba-code-num),
  .e-con:has(> .alba-manif-col),
  .e-con:has(> .alba-valnum),
  .e-con:has(> .e-con > .alba-craft-eye),
  .e-con:has(> .e-con > .alba-pass-num),
  .e-con:has(> .e-con > .alba-mem-img),
  .e-con:has(> .e-con > .alba-gift-eye),
  .e-con:has(> .e-con > .alba-bab-intro-eye),
  .e-con:has(> .e-con > .alba-bab-date),
  .e-con:has(> .e-con > .alba-pl-info-eye),
  .e-con:has(> .e-con > .alba-imc-note-eye),
  .e-con:has(> .e-con > .alba-contact-eye),
  .e-con:has(> .e-con > .alba-ouv-founder-eye),
  .e-con:has(> .e-con > .alba-ouv-pre-eye),
  .e-con:has(> .e-con > .alba-op-roomimg),
  .e-con:has(> .e-con > .alba-op-map-eye),
  .e-con:has(> .e-con > .alba-op-pv-eye),
  .e-con:has(> .e-con > .alba-pl-day),
  .e-con:has(> .alba-op-cta),
  .e-con:has(> .alba-hero-enter),
  .elementor-location-footer .e-con:has(> .e-con > .alba-foot-h),
  .e-con:has(> .alba-foot-item) {
    flex-direction: column !important;
    align-items: stretch !important;
    flex-wrap: nowrap !important;
  }
  /* enfants directs en pleine largeur */
  .e-con:has(> .e-con > .alba-room-num) > .e-con,
  .e-con:has(> .e-con > .alba-loc-eye) > .e-con,
  .e-con:has(> .e-con > .alba-craft-eye) > .e-con,
  .e-con:has(> .e-con > .alba-pass-num) > .e-con,
  .e-con:has(> .e-con > .alba-mem-img) > .e-con,
  .e-con:has(> .e-con > .alba-gift-eye) > .e-con,
  .e-con:has(> .e-con > .alba-bab-intro-eye) > .e-con,
  .e-con:has(> .e-con > .alba-bab-date) > .e-con,
  .e-con:has(> .e-con > .alba-pl-info-eye) > .e-con,
  .e-con:has(> .e-con > .alba-imc-note-eye) > .e-con,
  .e-con:has(> .e-con > .alba-contact-eye) > .e-con,
  .e-con:has(> .e-con > .alba-ouv-founder-eye) > .e-con,
  .e-con:has(> .e-con > .alba-ouv-pre-eye) > .e-con,
  .e-con:has(> .e-con > .alba-op-roomimg) > .e-con,
  .e-con:has(> .e-con > .alba-op-map-eye) > .e-con,
  .e-con:has(> .e-con > .alba-op-pv-eye) > .e-con {
    flex: 0 0 auto !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  /* piliers : 2 colonnes sur mobile (pas 4) */
  .e-con:has(> .e-con > .alba-op-pnum) { grid-template-columns: repeat(2,1fr) !important; }
  /* colonnes image : hauteur réduite quand empilées */
  .e-con:has(> .alba-room-num) { min-height: 44vh !important; }
  .e-con:has(> .alba-loc-img), .alba-mem-img, .e-con:has(> .alba-bab-img), .alba-bab-img { min-height: 40vh !important; }
  .alba-op-roomimg { height: 40vh !important; }
  .e-con:has(> .alba-op-band-water), .e-con:has(> .alba-op-band-dune) { height: 32vh !important; }
  /* boutons pleine largeur dans les lignes de CTA */
  .e-con:has(> .alba-op-cta) .alba-btn .elementor-button,
  .e-con:has(> .alba-op-cta) .alba-btn,
  .e-con:has(> .alba-hero-enter) .alba-btn { width: 100%; justify-content: center; }
  .alba-hero-enter { margin-left: 0 !important; }
}

