/* ============================================================
   PULSE — Design System Dark Theme
   Charte: Outfit, #8B00F7, #ED7B84, #F0E100, fond #0D0717
   ============================================================ */

/* ——— Variables ——— */
:root {
  --pulse-violet-dark:  #533188;
  --pulse-violet:       #8B00F7;
  --pulse-corail:       #ED7B84;
  --pulse-jaune:        #F0E100;
  --pulse-text:         #FFFFFF;
  --pulse-text-muted:   #C9C3D6;
  --pulse-text-faint:   #8E87A0;
  --pulse-bg:           #0D0717;
  --pulse-bg-deep:      #160B24;
  --pulse-purple-mid:   #3a1d6e;
  --pulse-light-purple: #C9A6FF;
  --pulse-border:       rgba(139,0,247,.28);
  --pulse-card-bg:      rgba(255,255,255,.04);
  --pulse-grad-cta: linear-gradient(100deg, #F0E100, #ED7B84);
  --pulse-grad-border:  linear-gradient(140deg, #8B00F7, #ED7B84 60%, #F0E100);
  --font-primary:       'Outfit', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --nav-h:              72px;
  --radius:             14px;
  --section-px:         clamp(20px, 5vw, 80px);
  --content-max: 1200px;
}

/* ——— Reset ——— */
*, *::before, *::after { box-sizing: border-box; }

/* ——— Global background (fixed) ——— */
html {
  background:
    radial-gradient(ellipse 55% 45% at 85% -5%,  #3D0969 0%, transparent 55%),
    radial-gradient(ellipse 50% 45% at -5% 85%,  #5C2A40 0%, transparent 55%),
    radial-gradient(ellipse 40% 40% at 105% 90%, #4A3E18 0%, transparent 50%),
    linear-gradient(160deg, #1A1025, #13101B);
  background-attachment: fixed;
  min-height: 100%;
}
body {
  background: transparent !important;
  color: var(--pulse-text) !important;
  font-family: var(--font-primary) !important;
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

/* halo animé en arrière plan */
body::before {
  content: '';
  position: fixed;
  inset: 0;
  background:
    radial-gradient(ellipse 600px 500px at 80% 10%,  rgba(139,0,247,.12) 0%, transparent 70%),
    radial-gradient(ellipse 500px 600px at -5% 90%, rgba(237,123,132,.08) 0%, transparent 70%);
  pointer-events: none;
  z-index: 0;
}

/* ——— Typography ——— */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-primary) !important;
  color: var(--pulse-text) !important;
  line-height: 1.2;
  margin: 0 0 .6em;
}
h1 { font-size: clamp(32px, 5vw, 56px); font-weight: 800; }
h2 { font-size: clamp(22px, 3.5vw, 36px); font-weight: 700; margin-top: 1.8em; }
h3 { font-size: clamp(18px, 2.5vw, 24px); font-weight: 600; margin-top: 1.4em; }
p  { color: var(--pulse-text-muted); margin: 0 0 1em; }
a  { color: var(--pulse-light-purple); text-decoration: none; transition: color .2s; }
a:hover { color: var(--pulse-corail); }
ul, ol { color: var(--pulse-text-muted); padding-left: 0; }
ul li { list-style: none; padding: .4em 0 .4em 1.4em; position: relative; }
ul li::before {
  content: '';
  position: absolute; left: 0; top: .75em;
  width: 6px; height: 6px;
  background: var(--pulse-violet);
  border-radius: 50%;
}
ol { padding-left: 1.2em; }
ol li { padding: .3em 0; }
blockquote {
  border-left: 3px solid var(--pulse-violet);
  margin: 1.5em 0;
  padding: 1em 1.2em;
  background: rgba(139,0,247,.07);
  border-radius: 0 var(--radius) var(--radius) 0;
  color: var(--pulse-text-muted);
  font-style: italic;
}
details { border: 1px solid var(--pulse-border); border-radius: 10px; padding: .8em 1.2em; margin: .5em 0; }
details summary { cursor: pointer; font-weight: 600; color: var(--pulse-text); padding: .2em 0; }
details[open] summary { color: var(--pulse-light-purple); }
details p { margin: .6em 0 0; }
strong { color: var(--pulse-text); }
em { color: var(--pulse-text-muted); }

/* ——— Buttons ——— */
.wp-block-button__link,
.pulse-btn,
button.pulse-btn {
  display: inline-block;
  font-family: var(--font-primary) !important;
  font-weight: 700;
  font-size: 15px;
  padding: 13px 28px;
  border-radius: 10px;
  border: none;
  cursor: pointer;
  text-decoration: none;
  transition: transform .15s, box-shadow .15s, opacity .15s;
}
.wp-block-button__link {
  background: var(--pulse-violet);
  color: #fff !important;
  box-shadow: 0 4px 24px rgba(139,0,247,.35);
}
.wp-block-button__link:hover {
  background: #a020ff;
  transform: translateY(-2px);
  box-shadow: 0 8px 32px rgba(139,0,247,.55);
  color: #fff !important;
}
.pulse-btn-grad {
  background: var(--pulse-grad-cta);
  color: #1A0F2E !important;
}
.pulse-btn-grad:hover { opacity: .9; transform: translateY(-2px); }
.pulse-btn-outline {
  background: transparent;
  border: 1.5px solid var(--pulse-violet);
  color: var(--pulse-light-purple) !important;
}
.pulse-btn-outline:hover { background: rgba(139,0,247,.1); transform: translateY(-2px); }

/* ——— Nav Header ——— */
#site-header, .site-header {
  position: fixed !important;
  top: 0; left: 0; right: 0;
  z-index: 1000;
  height: var(--nav-h) !important;
  display: flex !important;
  align-items: center !important;
  background: rgba(13,7,23,.88) !important;
  border-bottom: 1px solid rgba(139,0,247,.18);
  box-shadow: 0 4px 32px rgba(0,0,0,.35);
  transition: background .3s;
}
/* Hamburger toggle : fond transparent, barres blanches */
.site-navigation-toggle-holder .site-navigation-toggle {
  background-color: transparent !important;
  color: #ffffff !important;
  border-color: transparent !important;
}

/* Menu mobile ouvert : masquer border et shadow (via :has() ou classe JS) */
#site-header:has(.site-navigation-dropdown[aria-hidden="false"]),
.site-header:has(.site-navigation-dropdown[aria-hidden="false"]),
#site-header.mobile-menu-open,
.site-header.mobile-menu-open {
  border-bottom-color: transparent !important;
  box-shadow: none !important;
}
/* backdrop-filter sur pseudo-element pour ne pas confiner les enfants fixed */
#site-header::before, .site-header::before {
  content: '';
  position: absolute;
  inset: 0;
  backdrop-filter: blur(20px) saturate(1.4);
  -webkit-backdrop-filter: blur(20px) saturate(1.4);
  pointer-events: none;
  z-index: 0;
}
#site-header > *, .site-header > * { position: relative; z-index: 1; }
.header-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 var(--section-px);
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}

/* Logo */
.site-header .site-branding {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 0 !important;
}
.site-header .site-logo {
  display: flex !important;
  align-items: center !important;
}
.site-header .custom-logo-link {
  display: flex !important;
  align-items: center !important;
  line-height: 1;
}
.site-header .site-logo img,
.site-header .site-logo svg,
.site-header .custom-logo {
  height: 40px !important;
  width: auto !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}
.site-branding .site-title,
.site-branding .site-description { display: none !important; }

/* Neutralise la flèche du thème Hello Elementor */
.site-header .site-navigation ul.menu li.menu-item-has-children::after { display: none !important; }
.site-header .site-navigation ul.menu > li.menu-item-has-children > a::after {
  content: '';
  display: inline-block;
  width: 6px; height: 6px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
  margin-left: 6px;
  opacity: 0.6;
  flex-shrink: 0;
}

/* Desktop nav */
.site-header .site-navigation { display: flex; align-items: center; }
.site-header .site-navigation ul.menu {
  display: flex;
  align-items: center;
  gap: 2px;
  margin: 0; padding: 0;
  list-style: none;
}
.site-header .site-navigation ul.menu > li {
  position: relative;
}
.site-header .site-navigation ul.menu > li::before { display: none; }
.site-header .site-navigation ul.menu > li > a {
  display: flex;
  align-items: center;
  padding: 7px 12px;
  font-family: var(--font-primary) !important;
  font-size: 14px;
  font-weight: 600;
  color: rgba(255,255,255,.7) !important;
  border-radius: 8px;
  transition: color .2s, background .2s;
  white-space: nowrap;
  letter-spacing: .01em;
}
.site-header .site-navigation ul.menu > li > a:hover,
.site-header .site-navigation ul.menu > li.current-menu-item > a,
.site-header .site-navigation ul.menu > li.current-menu-ancestor > a {
  color: #fff !important;
  background: rgba(255,255,255,.07);
}

/* Dropdown */
.site-header .site-navigation ul.sub-menu {
  display: none;
  position: absolute;
  top: calc(100% + 8px);
  left: -8px;
  min-width: 230px;
  background: rgba(18,8,32,.97);
  backdrop-filter: blur(20px);
  border: 1px solid var(--pulse-border);
  border-radius: 12px;
  padding: 8px;
  box-shadow: 0 16px 48px rgba(0,0,0,.6);
  z-index: 100;
}
.site-header .site-navigation ul.menu > li:hover > ul.sub-menu {
  display: block;
}
.site-header .site-navigation ul.sub-menu li { list-style: none; }
.site-header .site-navigation ul.sub-menu li::before { display: none; }
.site-header .site-navigation ul.sub-menu li a {
  display: block;
  padding: 9px 14px;
  font-size: 14px;
  color: var(--pulse-text-muted) !important;
  border-radius: 8px;
  transition: color .2s, background .2s;
}
.site-header .site-navigation ul.sub-menu li a:hover {
  color: #fff !important;
  background: rgba(139,0,247,.15);
}

/* Phone button in nav */
.site-header .site-navigation ul.menu > li.pulse-phone-btn { margin-left: 12px; }
.site-header .site-navigation ul.menu > li.pulse-phone-btn > a {
  border: 1.5px solid rgba(255,255,255,.22) !important;
  color: #fff !important;
  font-weight: 600 !important;
  padding: 7px 14px !important;
  border-radius: 8px;
  background: rgba(255,255,255,.05) !important;
  transition: border-color .2s, background .2s, transform .15s !important;
}
.site-header .site-navigation ul.menu > li.pulse-phone-btn > a::before {
  content: '\260E';
  margin-right: 6px;
  font-size: 13px;
  opacity: .85;
}
.site-header .site-navigation ul.menu > li.pulse-phone-btn > a:hover {
  border-color: rgba(255,255,255,.45) !important;
  background: rgba(255,255,255,.1) !important;
  transform: translateY(-1px);
}

/* CTA button in nav */
.site-header .site-navigation ul.menu > li.pulse-cta-btn { margin-left: 8px; }
.site-header .site-navigation ul.menu > li.pulse-cta-btn > a {
  background: var(--pulse-violet) !important;
  color: #fff !important;
  font-weight: 700 !important;
  padding: 9px 18px !important;
  box-shadow: 0 4px 18px rgba(139,0,247,.4);
}
.site-header .site-navigation ul.menu > li.pulse-cta-btn > a:hover {
  background: #a020ff !important;
  transform: translateY(-1px);
  box-shadow: 0 6px 24px rgba(139,0,247,.6);
}

/* Mobile toggle */
.site-navigation-toggle-holder { display: none; }
.site-navigation-toggle {
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 8px;
  color: #fff;
}
.site-navigation-toggle-icon,
.site-navigation-toggle-icon::before,
.site-navigation-toggle-icon::after {
  display: block;
  width: 24px;
  height: 2px;
  background: #fff;
  border-radius: 2px;
  transition: transform .3s, opacity .3s;
}
.site-navigation-toggle-icon { position: relative; }
.site-navigation-toggle-icon::before {
  content: ''; position: absolute; top: -7px; left: 0;
}
.site-navigation-toggle-icon::after {
  content: ''; position: absolute; top: 7px; left: 0;
}

/* Mobile dropdown — on travaille AVEC le mécanisme du thème (transform/max-height) */
.site-navigation-dropdown {
  background: #0D0717 !important;
  position: fixed !important;
  top: var(--nav-h) !important;
  left: 0 !important; right: 0 !important;
  bottom: 0 !important;
  margin: 0 !important;
  z-index: 9999 !important;
  overflow-y: auto !important;
  padding: 0 var(--section-px) 60px !important;
  transform-origin: top !important;
}
.site-navigation-dropdown ul.menu {
  display: flex; flex-direction: column;
  gap: 2px; list-style: none; margin: 0; padding: 0;
}
.site-navigation-dropdown ul.menu li::before { display: none; }
/* Neutralise les backgrounds blancs du thème sur le menu mobile */
.site-navigation-dropdown ul.menu {
  background: transparent !important;
  position: static !important;
}
.site-navigation-dropdown ul.menu li a {
  display: block !important;
  padding: 14px 4px !important;
  font-size: 18px !important;
  font-weight: 500 !important;
  color: var(--pulse-text-muted) !important;
  background: transparent !important;
  border-bottom: 1px solid rgba(255,255,255,.08) !important;
  box-shadow: none !important;
  transition: color .2s;
}
.site-navigation-dropdown ul.menu li a:hover { color: #fff !important; }
.site-navigation-dropdown ul.menu li.current-menu-item a {
  color: #fff !important;
  background: rgba(139,0,247,.15) !important;
  border-radius: 8px !important;
}
/* Sous-menu : toujours ouvert sur mobile */
.site-navigation-dropdown ul.menu > li > ul.sub-menu {
  display: block !important;
  background: transparent !important;
  padding: 0 0 0 16px !important;
  margin: 0 !important;
  overflow: visible !important;
}
/* Forcer les li du sous-menu à s'afficher (le thème les écrase avec scaleY(0) max-height:0) */
.site-navigation-dropdown ul.menu > li > ul.sub-menu > li {
  transform: none !important;
  max-height: none !important;
  overflow: visible !important;
  display: block !important;
}
.site-navigation-dropdown ul.sub-menu li a {
  font-size: 15px !important;
  padding: 10px 4px 10px 0 !important;
  background: transparent !important;
  color: var(--pulse-text-muted) !important;
  border-bottom: 1px solid rgba(255,255,255,.06) !important;
  font-weight: 400 !important;
}
.site-navigation-dropdown .pulse-phone-btn a {
  border: 1.5px solid rgba(255,255,255,.25) !important;
  color: #fff !important;
  border-radius: 10px;
  text-align: center;
  margin-top: 8px;
  border-bottom: none !important;
  background: rgba(255,255,255,.06) !important;
}
.site-navigation-dropdown .pulse-cta-btn a {
  background: var(--pulse-violet) !important;
  color: #fff !important;
  border-radius: 10px;
  text-align: center;
  margin-top: 8px;
  border-bottom: none;
}

/* ——— Main content offset for fixed nav ——— */
#page, .hfeed, body > div:not(#site-header) {
  padding-top: var(--nav-h);
}
.site-main { position: relative; z-index: 1; }

/* ——— Page content wrapper ——— */
.entry-content, .page-content {
  max-width: var(--content-max);
  margin: 0 auto;
  padding: clamp(40px, 6vw, 80px) var(--section-px) clamp(60px, 8vw, 120px);
}
.entry-content > h1:first-child {
  margin-bottom: .5em;
  padding-top: .2em;
}

/* Article wrapper */
article.page { overflow: visible; }

/* ——— Footer ——— */
#site-footer, .site-footer {
  background: rgba(8,4,16,.9) !important;
  border-top: 1px solid rgba(139,0,247,.15);
  position: relative;
  z-index: 1;
}
.footer-inner, .site-footer > div {
  max-width: 1280px;
  margin: 0 auto;
  padding: 48px var(--section-px) 32px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px 32px;
  align-items: start;
}
.site-footer .site-branding .site-logo img { height: 32px !important; width: auto; }
.site-footer .site-description { color: var(--pulse-text-faint); font-size: 13px; margin-top: 8px; }

.site-footer .site-navigation ul.menu {
  display: flex; flex-wrap: wrap; gap: 4px 16px;
  list-style: none; margin: 0; padding: 0;
}
.site-footer .site-navigation ul.menu li::before { display: none; }
.site-footer .site-navigation ul.menu li a {
  font-size: 13px;
  color: var(--pulse-text-faint) !important;
  transition: color .2s;
  padding: 4px 0;
  display: block;
}
.site-footer .site-navigation ul.menu li a:hover { color: var(--pulse-light-purple) !important; }
.site-footer .copyright {
  grid-column: 1 / -1;
  border-top: 1px solid rgba(255,255,255,.06);
  padding-top: 24px;
  font-size: 12px;
  color: var(--pulse-text-faint);
}
.site-footer .copyright a { color: var(--pulse-text-faint); }
.site-footer .copyright a:hover { color: var(--pulse-light-purple) !important; }

/* ——— CSI card (Tarifs) ——— */
.pl-card-csi {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(139,0,247,.3);
  border-radius: 20px;
  padding: 32px 36px;
  margin-top: 20px;
  align-items: start;
}
.pl-csi-badge {
  display: inline-block;
  padding: 5px 14px;
  background: linear-gradient(90deg,rgba(139,0,247,.2),rgba(237,123,132,.15));
  border: 1px solid rgba(139,0,247,.4);
  border-radius: 8px;
  font-size: 12px;
  font-weight: 700;
  color: var(--pulse-light-purple);
  letter-spacing: .1em;
  margin-bottom: 12px;
  width: fit-content;
}
.pl-csi-left { display: flex; flex-direction: column; gap: 8px; }
.pl-csi-left .pl-name { font-size: 22px; font-weight: 800; color: #fff; }
.pl-csi-left .pl-tag { font-size: 14px; color: rgba(255,255,255,.55); }
.pl-csi-left .pl-price { margin: 8px 0 2px; }
.pl-csi-left .pl-amt { font-size: 32px; font-weight: 800; color: #fff; }
.pl-csi-left .pl-per { font-size: 14px; color: rgba(255,255,255,.5); margin-left: 6px; }
.pl-csi-left .pl-dur { font-size: 13px; color: rgba(255,255,255,.45); }
.pl-csi-right { display: flex; flex-direction: column; gap: 10px; padding-top: 8px; }
@media (max-width: 700px) {
  .pl-card-csi { grid-template-columns: 1fr; }
}

/* ——— Tarifs cards (inline HTML styling) ——— */
/* Already styled inline; just ensure the outer div shows correctly */
.entry-content > div[style*="display:flex"] {
  margin: 32px 0;
}

/* ——— Kicker label helper ——— */
.pulse-kicker {
  display: block;
  color: var(--pulse-light-purple);
  letter-spacing: .22em;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  margin-bottom: 10px;
}

/* ——— Hero gradient text helper ——— */
.pulse-grad-text {
  background: var(--pulse-grad-cta);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* ——— Card component ——— */
.pulse-card {
  background: var(--pulse-card-bg);
  border: 1px solid var(--pulse-border);
  border-radius: var(--radius);
  padding: 28px 24px;
}
.pulse-card-pro {
  background: linear-gradient(rgba(20,11,36,.9), rgba(20,11,36,.9)) padding-box,
              var(--pulse-grad-border) border-box;
  border: 1.5px solid transparent;
  box-shadow: 0 24px 60px -20px rgba(139,0,247,.55);
}

/* ——— Separator / section accent ——— */
.pulse-sep {
  width: 40px; height: 3px;
  background: var(--pulse-grad-cta);
  border-radius: 2px;
  margin: 0 0 24px;
}

/* ——— Responsive ——— */
@media (max-width: 768px) {
  .site-header .site-navigation { display: none; }
  .site-navigation-toggle-holder { display: flex !important; }
  h1 { font-size: clamp(26px, 7vw, 40px); }
  h2 { font-size: clamp(18px, 5vw, 26px); }
  .footer-inner, .site-footer > div {
    grid-template-columns: 1fr;
    gap: 24px;
    padding: 36px var(--section-px) 28px;
  }
  .entry-content, .page-content {
    padding: 36px 20px 60px;
  }
}
@media (max-width: 480px) {
  :root { --nav-h: 64px; }
  .entry-content > div[style*="display:flex"] { flex-direction: column; }
}

/* ——— Elementor overrides (dark theme) ——— */
.elementor-section, .elementor-container { position: relative; z-index: 1; }
.elementor-heading-title { font-family: var(--font-primary) !important; }
.elementor-widget-text-editor p { color: var(--pulse-text-muted); font-family: var(--font-primary) !important; }
.elementor-button { font-family: var(--font-primary) !important; }
.e-con, .elementor-section-wrap { background-color: transparent !important; }

/* ===== Pulse supplemental design touches ===== */

/* H1 accent underline */
.entry-content > .pulse-kicker + h1::after,
.entry-content > h1:first-child::after {
  content: '';
  display: block;
  width: 48px; height: 3px;
  margin-top: 18px; margin-bottom: 28px;
  background: linear-gradient(90deg, #8B00F7, #ED7B84);
  border-radius: 2px;
}

/* Hero intro paragraph */
.entry-content > h1 + p,
.entry-content > .pulse-kicker + h1 + p {
  font-size: 18px;
  line-height: 1.6;
  color: var(--pulse-text-muted);
  max-width: 680px;
  margin-bottom: 2em;
}

/* Section label before H2 */
.entry-content h2 {
  padding-top: 8px;
  border-top: 1px solid rgba(139,0,247,.2);
  padding-top: 28px;
  margin-top: 48px;
}
.entry-content h2:first-of-type { border-top: none; margin-top: 12px; }

/* CTA block alignment */
.entry-content p:has(> a.wp-block-button__link) {
  margin-top: 32px;
}

/* Tarifs page — card section needs extra space */
.entry-content > div[style*="display:flex"] {
  margin: 40px 0 16px;
}

/* Devis page hero */
body.page-id-865 .entry-content > h1 {
  font-size: clamp(28px, 4.5vw, 46px);
  max-width: 680px;
}

/* Merci page */
body.page-id-866 .entry-content {
  text-align: center;
  padding-top: 100px;
}
body.page-id-866 .entry-content h1 { font-size: clamp(28px, 4vw, 42px); }

/* NF525 page warning box */
.entry-content h2 + ul {
  background: rgba(255,255,255,.03);
  border: 1px solid var(--pulse-border);
  border-radius: 12px;
  padding: 16px 20px 16px 36px;
}

/* Ville pages — reference callout */
.entry-content p:has(em) {
  font-size: 14px;
  color: var(--pulse-text-faint);
  border-left: 2px solid rgba(139,0,247,.3);
  padding-left: 12px;
  font-style: italic;
}

/* MetForm dark theme */
.mf-form-wrapper {
  background: rgba(255,255,255,.03) !important;
  border: 1px solid var(--pulse-border) !important;
  border-radius: 16px !important;
  padding: 32px !important;
  margin: 24px 0 !important;
}
.mf-input, .mf-select, .mf-textarea, .mf-gdpr-label {
  font-family: var(--font-primary) !important;
  background: rgba(255,255,255,.05) !important;
  border: 1px solid rgba(139,0,247,.25) !important;
  border-radius: 8px !important;
  color: #fff !important;
  font-size: 15px !important;
}
.mf-input::placeholder, .mf-textarea::placeholder {
  color: var(--pulse-text-faint) !important;
}
.mf-input:focus, .mf-select:focus, .mf-textarea:focus {
  outline: none !important;
  border-color: var(--pulse-violet) !important;
  box-shadow: 0 0 0 3px rgba(139,0,247,.2) !important;
  background: rgba(139,0,247,.08) !important;
}
.mf-input-label {
  font-family: var(--font-primary) !important;
  color: var(--pulse-text) !important;
  font-weight: 500 !important;
  font-size: 14px !important;
}
.mf-field-error { color: var(--pulse-corail) !important; font-size: 12px !important; }
.mf-gdpr-consent-wrapper { display: flex !important; gap: 10px !important; align-items: flex-start !important; }
.mf-gdpr-consent-wrapper input[type=checkbox] { margin-top: 3px !important; accent-color: var(--pulse-violet) !important; }
.mf-btn, .metform-button, button[type=submit].mf-btn {
  font-family: var(--font-primary) !important;
  background: var(--pulse-violet) !important;
  color: #fff !important;
  font-weight: 700 !important;
  font-size: 16px !important;
  padding: 14px 32px !important;
  border-radius: 10px !important;
  border: none !important;
  cursor: pointer !important;
  width: 100% !important;
  transition: background .2s, transform .15s, box-shadow .15s !important;
  box-shadow: 0 4px 24px rgba(139,0,247,.35) !important;
}
.mf-btn:hover {
  background: #a020ff !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 32px rgba(139,0,247,.55) !important;
}

/* Select dropdown dark */
select.mf-input, select.mf-select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238B00F7' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  padding-right: 36px !important;
}

/* Help text */
.mf-input-help { color: var(--pulse-text-faint) !important; font-size: 12px !important; margin-top: 4px !important; }

/* Honeypot hide */
.mf-honeypot, .mf-field.mf-honeypot { display: none !important; position: absolute !important; left: -9999px !important; }

/* FAQ details on tarifs */
details.mf-details, details {
  background: rgba(255,255,255,.03);
}

/* Responsive page content */
@media (max-width: 600px) {
  .mf-form-wrapper { padding: 20px !important; }
  .entry-content > h1:first-child::after { margin-bottom: 16px; }
}
/* ===== Hero page block ===== */
.pulse-page-hero {
  padding: 80px 0 48px;
  position: relative;
}
.pulse-page-hero::before {
  content: '';
  position: absolute;
  top: -80px; left: -40px; right: -40px; bottom: 0;
  background: radial-gradient(ellipse 70% 50% at 40% 30%, rgba(139,0,247,.12) 0%, transparent 70%);
  pointer-events: none;
  border-radius: 0 0 32px 32px;
  z-index: 0;
}
.pulse-page-hero > * { position: relative; z-index: 1; }
.pulse-page-hero .pulse-kicker {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--pulse-violet);
  background: rgba(139,0,247,.12);
  border: 1px solid rgba(139,0,247,.3);
  border-radius: 100px;
  padding: 4px 14px;
  margin-bottom: 20px;
}
.pulse-page-hero h1 {
  font-size: clamp(30px, 4.5vw, 52px) !important;
  font-weight: 800 !important;
  line-height: 1.1 !important;
  max-width: 780px;
  margin: 0 auto 20px !important;
  background: linear-gradient(100deg, #F0E100, #ED7B84) !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
}
.pulse-hero-intro {
  font-size: 18px !important;
  line-height: 1.6 !important;
  color: rgba(255,255,255,.7) !important;
  max-width: 660px;
  margin: 0 auto 28px !important;
  text-align: center;
}
.pulse-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 8px;
  justify-content: center;
}
.pulse-pill {
  font-size: 13px;
  font-weight: 500;
  color: rgba(255,255,255,.8);
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 100px;
  padding: 5px 14px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.pulse-pill::before {
  content: '\2713';
  color: var(--pulse-violet);
  font-weight: 700;
  font-size: 12px;
}

/* H1 inside hero - override accent line (hero already has gradient text) */
.pulse-page-hero h1::after { display: none !important; }

/* Inline h1 outside hero - keep accent line */
.entry-content > h1:first-child::after { content: ''; display: block; width: 48px; height: 3px; margin-top: 18px; margin-bottom: 28px; background: linear-gradient(90deg, #8B00F7, #ED7B84); border-radius: 2px; }

/* details/summary FAQ override for page content */
.entry-content details {
  border: 1px solid var(--pulse-border);
  border-radius: 10px;
  margin: 8px 0;
  overflow: hidden;
}
.entry-content details summary {
  cursor: pointer;
  font-weight: 600;
  padding: 16px 20px;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: var(--pulse-text);
  user-select: none;
}
.entry-content details summary::after {
  content: '+';
  font-size: 20px;
  font-weight: 300;
  color: var(--pulse-violet);
  flex-shrink: 0;
}
.entry-content details[open] summary::after { content: '−'; }
.entry-content details > p, .entry-content details > div {
  padding: 0 20px 16px;
  color: var(--pulse-text-muted);
  font-size: 15px;
  line-height: 1.6;
}
.entry-content details[open] {
  background: rgba(139,0,247,.04);
}

/* CTA button in content */
.entry-content .wp-block-button__link {
  display: inline-block;
  background: var(--pulse-violet) !important;
  color: #fff !important;
  font-family: var(--font-primary) !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  padding: 14px 28px !important;
  border-radius: 10px !important;
  text-decoration: none !important;
  transition: background .2s, transform .15s, box-shadow .2s !important;
  box-shadow: 0 4px 20px rgba(139,0,247,.35) !important;
  border: none !important;
  margin: 16px 0 !important;
}
.entry-content .wp-block-button__link:hover {
  background: #a020ff !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 32px rgba(139,0,247,.55) !important;
}

@media (max-width: 768px) {
  .pulse-page-hero { padding: 60px 0 32px; }
  .pulse-pills { gap: 8px; }
  .pulse-pill { font-size: 12px; }
}
/* ===== Service grid (page Nos Services) ===== */
.pulse-service-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 20px;
  margin: 36px 0 48px;
}
.pulse-service-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  background: rgba(255,255,255,.03);
  border: 1px solid var(--pulse-border);
  border-radius: 16px;
  padding: 24px;
  text-decoration: none !important;
  color: var(--pulse-text) !important;
  transition: border-color .2s, background .2s, transform .2s, box-shadow .2s;
  position: relative;
  overflow: hidden;
}
.pulse-service-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(139,0,247,.08) 0%, transparent 60%);
  opacity: 0;
  transition: opacity .2s;
}
.pulse-service-card:hover {
  border-color: rgba(139,0,247,.5);
  background: rgba(139,0,247,.06);
  transform: translateY(-4px);
  box-shadow: 0 12px 40px rgba(139,0,247,.2);
  text-decoration: none !important;
}
.pulse-service-card:hover::before { opacity: 1; }
.pulse-sc-icon { font-size: 28px; line-height: 1; }
.pulse-service-card strong {
  font-size: 17px;
  font-weight: 700;
  color: #fff;
  line-height: 1.2;
}
.pulse-service-card p {
  font-size: 14px;
  color: var(--pulse-text-muted);
  line-height: 1.5;
  margin: 0 !important;
  flex: 1;
}
.pulse-sc-link {
  font-size: 13px;
  font-weight: 600;
  color: var(--pulse-violet);
  margin-top: 4px;
}

/* ===== Page body wrapper (Nos Services etc.) ===== */
.pulse-page-body {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 clamp(24px, 4vw, 60px) 80px;
}
.pulse-zones {
  margin: 48px 0;
}
.pulse-zones h2 {
  font-size: clamp(22px, 3vw, 32px);
  font-weight: 800;
  color: #fff;
  margin: 0 0 20px;
  line-height: 1.2;
}
.pulse-zones p {
  color: rgba(255,255,255,.6);
  margin: 0 0 16px;
  font-size: 16px;
}
.pulse-zones ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.pulse-zones ul li::before { display: none !important; }
.pulse-zones ul li::marker { display: none !important; }
.pulse-zones ul li {
  padding: 12px 16px;
  background: rgba(255,255,255,.03);
  border: 1px solid var(--pulse-border);
  border-radius: 10px;
  font-size: 15px;
  color: rgba(255,255,255,.75);
}
.pulse-zones ul li strong { color: #fff; }
.pulse-zones ul li a { color: var(--pulse-violet); text-decoration: none; }
.pulse-zones ul li a:hover { text-decoration: underline; }

/* ===== Nos Partenaires page ===== */
.pulse-partner-why {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin: 0 0 56px;
}
.pulse-partner-why-card {
  background: rgba(255,255,255,.04);
  border: 1px solid var(--pulse-border);
  border-radius: 16px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.pulse-partner-why-card .pulse-sc-icon { font-size: 26px; }
.pulse-partner-why-card strong { font-size: 16px; font-weight: 700; color: #fff; }
.pulse-partner-why-card p { font-size: 14px; color: var(--pulse-text-muted); line-height: 1.5; margin: 0 !important; }

h2.pulse-section-title {
  font-size: clamp(20px, 2.5vw, 28px);
  font-weight: 800;
  color: #fff;
  margin: 0 0 28px;
}

.pulse-partner-cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin-bottom: 56px;
}
.pulse-partner-card {
  background: rgba(255,255,255,.04);
  border: 1px solid var(--pulse-border);
  border-radius: 20px;
  padding: 32px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  transition: border-color .2s, box-shadow .2s;
}
.pulse-partner-card:hover {
  border-color: rgba(139,0,247,.5);
  box-shadow: 0 12px 40px -16px rgba(139,0,247,.3);
}
.pulse-partner-logo-badge {
  display: inline-block;
  padding: 6px 16px;
  background: linear-gradient(90deg, rgba(139,0,247,.2), rgba(237,123,132,.15));
  border: 1px solid rgba(139,0,247,.4);
  border-radius: 8px;
  font-size: 13px;
  font-weight: 700;
  color: var(--pulse-light-purple);
  letter-spacing: .06em;
  width: fit-content;
}
.pulse-partner-card h3 {
  font-size: 20px;
  font-weight: 800;
  color: #fff;
  margin: 0 !important;
}
.pulse-partner-card > p {
  font-size: 15px;
  color: rgba(255,255,255,.65);
  line-height: 1.6;
  margin: 0 !important;
}
.pulse-partner-features {
  list-style: none !important;
  padding: 0 !important;
  margin: 4px 0 0 !important;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.pulse-partner-features li {
  font-size: 14px;
  color: rgba(255,255,255,.7);
  padding-left: 20px;
  position: relative;
}
.pulse-partner-features li::before {
  content: "\2713";
  position: absolute;
  left: 0;
  color: var(--pulse-violet);
  font-weight: 700;
}

@media (max-width: 768px) {
  .pulse-partner-why { grid-template-columns: 1fr; }
  .pulse-partner-cards { grid-template-columns: 1fr; }
}


body.page-id-863 .entry-content h2 {
  border-top: none;
  margin-top: 20px;
}

/* ===== Entry content note ===== */
.entry-content-note {
  font-size: 13px !important;
  color: var(--pulse-text-faint) !important;
  border-left: 2px solid rgba(139,0,247,.3) !important;
  padding-left: 12px !important;
  font-style: normal !important;
}

/* ===== Elementor section backgrounds on Accueil ===== */
/* Dark purple overlay on Elementor sections for better contrast */
.elementor-section.e-con, .elementor-section {
  position: relative;
}

/* ===== Global link styles ===== */
.entry-content a:not(.wp-block-button__link):not(.pulse-service-card) {
  color: var(--pulse-violet);
  text-decoration: underline;
  text-decoration-color: rgba(139,0,247,.3);
  text-underline-offset: 3px;
  transition: color .15s, text-decoration-color .15s;
}
.entry-content a:not(.wp-block-button__link):not(.pulse-service-card):hover {
  color: #c060ff;
  text-decoration-color: rgba(192,96,255,.5);
}

/* ===== Table support ===== */
.entry-content table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
  margin: 24px 0;
}
.entry-content th {
  background: rgba(139,0,247,.15);
  color: #fff;
  font-weight: 600;
  padding: 10px 14px;
  text-align: left;
  border-bottom: 1px solid rgba(139,0,247,.3);
}
.entry-content td {
  padding: 10px 14px;
  border-bottom: 1px solid var(--pulse-border);
  color: var(--pulse-text-muted);
}
.entry-content tr:last-child td { border-bottom: none; }
.entry-content tr:hover td { background: rgba(255,255,255,.02); }

@media (max-width: 600px) {
  .pulse-service-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .pulse-service-card { padding: 18px; }
}
/* ===== Hide duplicate theme page title ===== */
/* Pages with our custom pulse-page-hero have their own H1 */
.page .entry-title {
  display: none !important;
}
/* Also hide the page title wrapper if present */
.page .page-header {
  display: none !important;
}
/* But restore for Elementor pages that have their own title widget */
.elementor-page .entry-title {
  display: none !important;
}
/* ===== Homepage layout ===== */
.pulse-homepage {
  width: 100%;
  overflow-x: hidden;
}
.pulse-section-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 32px;
}

/* HERO SECTION */
.pulse-hero-section {
  position: relative;
  padding: 0;
  /* max-width retiré — la section est pleine largeur, le contenu est limité par .pulse-hero-stack */
  /* overflow: hidden retiré — causait un cadre visible en clipant le glow */
}
.pulse-hero-glow {
  position: absolute;
  top: -100px; right: -200px;
  width: 700px; height: 700px;
  background: radial-gradient(circle, rgba(139,0,247,.18) 0%, transparent 65%);
  pointer-events: none;
  z-index: 0;
}
.pulse-hero-inner {
  position: relative;
  z-index: 1;
  max-width: 740px;
}
.pulse-hero-section .pulse-kicker {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--pulse-violet);
  background: rgba(139,0,247,.12);
  border: 1px solid rgba(139,0,247,.3);
  border-radius: 100px;
  padding: 4px 14px;
  margin-bottom: 24px;
}
.pulse-hero-section h1 {
  font-size: clamp(36px, 5.5vw, 64px) !important;
  font-weight: 800 !important;
  line-height: 1.05 !important;
  margin: 0 0 24px !important;
  background: linear-gradient(100deg, #F0E100, #ED7B84) !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
}
.pulse-hero-lead {
  font-size: 19px !important;
  line-height: 1.6 !important;
  color: rgba(255,255,255,.7) !important;
  margin-bottom: 36px !important;
}
.pulse-hero-ctas {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 32px;
}
.pulse-btn-primary {
  display: inline-block;
  background: var(--pulse-violet) !important;
  color: #fff !important;
  font-family: var(--font-primary) !important;
  font-weight: 700;
  font-size: 15px;
  padding: 14px 28px;
  border-radius: 10px;
  text-decoration: none !important;
  transition: background .2s, transform .15s, box-shadow .2s;
  box-shadow: 0 4px 24px rgba(139,0,247,.4);
}
.pulse-btn-primary:hover {
  background: #a020ff !important;
  transform: translateY(-2px);
  box-shadow: 0 8px 36px rgba(139,0,247,.6);
  color: #fff !important;
}
.pulse-btn-secondary {
  display: inline-block;
  background: rgba(255,255,255,.06) !important;
  color: #fff !important;
  font-family: var(--font-primary) !important;
  font-weight: 600;
  font-size: 15px;
  padding: 14px 28px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.15);
  text-decoration: none !important;
  transition: background .2s, border-color .2s, transform .15s;
}
.pulse-btn-secondary:hover {
  background: rgba(255,255,255,.1) !important;
  border-color: rgba(255,255,255,.3);
  transform: translateY(-2px);
  color: #fff !important;
}
.pulse-hero-trust {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  font-size: 13px;
  color: rgba(255,255,255,.5);
  font-weight: 500;
}
.pulse-hero-trust span::before { content: ''; }

/* WHY SECTION */
.pulse-why-section {
  padding: 80px 0;
  position: relative;
}
.pulse-why-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(139,0,247,.04) 0%, transparent 100%);
  pointer-events: none;
}
.pulse-section-label {
  display: block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--pulse-corail);
  margin-bottom: 12px;
}
.pulse-why-section h2, .pulse-services-section h2, .pulse-zones-section h2, .pulse-cta-band h2 {
  font-size: clamp(24px, 3.5vw, 36px);
  font-weight: 800;
  color: #fff;
  margin: 0 0 48px;
  line-height: 1.2;
}
.pulse-why-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 24px;
}
.pulse-why-card {
  background: rgba(255,255,255,.03);
  border: 1px solid var(--pulse-border);
  border-radius: 16px;
  padding: 28px;
  transition: border-color .2s, background .2s, transform .2s;
}
.pulse-why-card:hover {
  border-color: rgba(139,0,247,.4);
  background: rgba(139,0,247,.05);
  transform: translateY(-4px);
}
.pulse-why-icon { font-size: 32px; margin-bottom: 16px; }
.pulse-why-card h3 {
  font-size: 18px;
  font-weight: 700;
  color: #fff;
  margin: 0 0 10px;
}
.pulse-why-card p {
  font-size: 14px;
  color: rgba(255,255,255,.6);
  line-height: 1.6;
  margin: 0;
}

/* SERVICES LIST */
.pulse-services-section { padding: 80px 0; }
.pulse-svc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 2px;
  border: 1px solid var(--pulse-border);
  border-radius: 16px;
  overflow: hidden;
}
.pulse-svc-item {
  display: flex;
  gap: 20px;
  align-items: flex-start;
  padding: 28px;
  text-decoration: none !important;
  color: var(--pulse-text) !important;
  background: rgba(255,255,255,.02);
  border-right: 1px solid var(--pulse-border);
  border-bottom: 1px solid var(--pulse-border);
  transition: background .2s;
}
.pulse-svc-item:hover {
  background: rgba(139,0,247,.06);
  text-decoration: none !important;
}
.pulse-svc-num {
  font-size: 11px;
  font-weight: 700;
  color: var(--pulse-violet);
  letter-spacing: .08em;
  flex-shrink: 0;
  margin-top: 2px;
}
.pulse-svc-item strong {
  display: block;
  font-size: 16px;
  font-weight: 700;
  color: #fff;
  margin-bottom: 6px;
}
.pulse-svc-item p {
  font-size: 13px;
  color: rgba(255,255,255,.55);
  margin: 0;
  line-height: 1.5;
}

/* ZONES */
.pulse-zones-section { padding: 80px 0; }
.pulse-zones-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.pulse-zone-card {
  background: rgba(255,255,255,.03);
  border: 1px solid var(--pulse-border);
  border-radius: 14px;
  padding: 24px;
  text-decoration: none !important;
  color: var(--pulse-text) !important;
  transition: border-color .2s, background .2s, transform .2s;
  position: relative;
  overflow: hidden;
}
.pulse-zone-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--pulse-violet), var(--pulse-corail));
  opacity: 0;
  transition: opacity .2s;
}
.pulse-zone-card:hover {
  border-color: rgba(139,0,247,.4);
  background: rgba(139,0,247,.05);
  transform: translateY(-3px);
  text-decoration: none !important;
}
.pulse-zone-card:hover::before { opacity: 1; }
.pulse-zone-card strong {
  display: block;
  font-size: 17px;
  font-weight: 700;
  color: #fff;
  margin-bottom: 8px;
}
.pulse-zone-card p {
  font-size: 13px;
  color: rgba(255,255,255,.55);
  margin: 0;
  line-height: 1.6;
}

/* CTA BAND */
.pulse-cta-band {
  padding: 80px 0;
  text-align: center;
  position: relative;
}
.pulse-cta-band::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 80% 60% at 50% 50%, rgba(139,0,247,.12) 0%, transparent 70%);
  pointer-events: none;
}
.pulse-cta-band .pulse-section-inner { position: relative; z-index: 1; }
.pulse-cta-band h2 { margin-bottom: 16px; text-align: center; }
.pulse-cta-band p {
  font-size: 17px;
  color: rgba(255,255,255,.6);
  margin-bottom: 32px;
}

@media (max-width: 768px) {
  .pulse-hero-section { padding: 100px 20px 60px; }
  .pulse-hero-ctas { flex-direction: column; }
  .pulse-btn-primary, .pulse-btn-secondary { text-align: center; }
  .pulse-why-grid, .pulse-svc-grid { grid-template-columns: 1fr; gap: 12px; }
  .pulse-zones-grid { grid-template-columns: 1fr; }
  .pulse-section-inner { padding: 0 20px; }
  .pulse-why-section, .pulse-services-section, .pulse-zones-section, .pulse-cta-band { padding: 60px 0; }
  .pulse-hero-trust { gap: 12px; font-size: 12px; }
}
/* Overlay link for card containers */
.pulse-svc-item, .pulse-zone-card { position: relative; }
.pulse-svc-overlay { position: absolute; inset: 0; z-index: 1; display: block; }

/* Homepage entry-content override: remove max-width */
.page-id-105 .entry-content, .home .entry-content {
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}
.home .entry-content > .pulse-homepage { margin: 0; }

/* Fix svc-item layout */
.pulse-svc-item { display: flex; align-items: flex-start; gap: 20px; cursor: pointer; }
.pulse-svc-cta { text-align: center; margin-top: 32px; }

/* ===== Header logo sizing ===== */
.site-branding .custom-logo-link img.custom-logo,
.site-branding img.custom-logo,
.custom-logo-link img {
  height: 40px !important;
  width: auto !important;
  max-width: 180px !important;
  display: block;
}

/* Hide text-based site title if logo image is set */
.has-custom-logo .site-title,
.has-custom-logo .site-description {
  display: none !important;
}

/* Header inner layout: flex with space-between */
.header-inner {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: space-between !important;
  max-width: 1280px !important;
  width: 100% !important;
  margin: 0 auto !important;
  padding: 0 32px !important;
}

/* Nav links inline */
.site-navigation ul {
  display: flex !important;
  gap: 28px !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  align-items: center !important;
}

/* Branding area */
.site-branding {
  display: flex !important;
  align-items: center !important;
}

/* Site description (tagline) hidden in nav */
.site-header .site-description { display: none !important; }


/* ===== Nav dropdown fix 2026-06-25 =====*/
.site-navigation ul li { position: relative; }

.site-navigation ul .sub-menu,
.site-navigation ul ul {
  display: none !important;
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  min-width: 200px;
  background: rgba(13,7,23,.97);
  border: 1px solid rgba(139,0,247,.25);
  border-radius: 10px;
  padding: 8px 0;
  box-shadow: 0 12px 40px rgba(0,0,0,.5);
  z-index: 9999;
  pointer-events: none;
}

.site-navigation ul li:hover > .sub-menu,
.site-navigation ul li:focus-within > .sub-menu,
.site-navigation ul li:hover > ul,
.site-navigation ul li:focus-within > ul {
  display: block !important;
  pointer-events: all !important;
}

.site-navigation ul .sub-menu li a,
.site-navigation ul ul li a {
  display: block;
  padding: 10px 20px;
  color: rgba(255,255,255,.8) !important;
  font-size: 14px !important;
  font-weight: 500;
  white-space: nowrap;
  transition: color .15s, background .15s;
}
.site-navigation ul .sub-menu li a:hover,
.site-navigation ul ul li a:hover {
  color: #fff !important;
  background: rgba(139,0,247,.18);
  text-decoration: none !important;
}

.site-navigation ul li.menu-item-has-children > a::after {
  content: " \25BE";
  font-size: 10px;
  margin-left: 4px;
  opacity: .6;
}

/* ===== Pricing cards — maquette pl- classes ===== */
.page-id-864 .entry-content { max-width: 100% !important; }
.page-id-864 .entry-content > p:empty { display: none; }

.pl-wrap { width: 100%; max-width: 1400px; margin: 0 auto; }
.pl-kicker { color: #C9A6FF; letter-spacing: .22em; font-size: 12px; font-weight: 600; text-transform: uppercase; margin: 0 0 8px; }
.pl-h { font-size: 32px; line-height: 1.15; font-weight: 800; margin: 0 0 6px; }
.pl-h .g { background: linear-gradient(90deg,#F0E100,#ED7B84); -webkit-background-clip: text; background-clip: text; color: transparent; }
.pl-sub { color: #C9C3D6; font-size: 15px; margin: 0 0 28px; max-width: 640px; }

.pl-grid { display: flex; flex-wrap: wrap; gap: 20px; margin: 0 0 24px; }

.pl-card {
  flex: 1 1 300px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(139,0,247,.28);
  border-radius: 18px;
  padding: 26px 24px;
  position: relative;
}
.pl-card.pro {
  border: 1.5px solid transparent;
  background: linear-gradient(rgba(20,11,36,.85),rgba(20,11,36,.85)) padding-box,
              linear-gradient(140deg,#8B00F7,#ED7B84 60%,#F0E100) border-box;
  box-shadow: 0 0 0 1px rgba(139,0,247,.15), 0 24px 60px -28px rgba(139,0,247,.65);
}

.pl-badge {
  position: absolute;
  top: -12px;
  right: 20px;
  background: linear-gradient(90deg,#F0E100,#ED7B84);
  color: #1A0F2E;
  font-weight: 700;
  font-size: 11px;
  letter-spacing: .08em;
  padding: 5px 12px;
  border-radius: 999px;
  white-space: nowrap;
}

.pl-mode { font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: #9D86C9; font-weight: 600; margin: 0 0 6px; }
.pl-card.pro .pl-mode { color: #F4C56A; }
.pl-name { font-size: 24px; font-weight: 800; margin: 0 0 4px; color: #fff !important; padding: 0 !important; border: 0 !important; }
.pl-name::before { display: none !important; }
.pl-tag { color: #B9B2C9; font-size: 13px; margin: 0 0 18px; }

.pl-price { display: flex; align-items: baseline; gap: 6px; }
.pl-amt { font-size: 38px; font-weight: 800; line-height: 1; color: #fff; }
.pl-card.pro .pl-amt { background: linear-gradient(90deg,#F0E100,#ED7B84); -webkit-background-clip: text; background-clip: text; color: transparent; }
.pl-per { color: #C9C3D6; font-size: 14px; font-weight: 500; }
.pl-dur { color: #8E87A0; font-size: 12px; margin: 4px 0 2px; }
.pl-cash { color: #C9C3D6; font-size: 13px; margin: 0 0 18px; }
.pl-cash b { color: #fff; font-weight: 600; }

.pl-btn {
  display: block;
  text-align: center;
  padding: 12px;
  border-radius: 11px;
  font-weight: 700;
  font-size: 14px;
  text-decoration: none !important;
  margin-bottom: 20px;
  cursor: pointer;
  transition: opacity .18s;
}
.pl-btn:hover { opacity: .85; text-decoration: none !important; }
.pl-btn.out { background: transparent; border: 1.5px solid #8B00F7; color: #D9BBFF !important; }
.pl-btn.fill { background: linear-gradient(90deg,#F0E100,#ED7B84); color: #1A0F2E !important; }

.pl-li {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  padding: 9px 0;
  font-size: 14px;
  border-top: 1px solid rgba(255,255,255,.07);
  color: #E8E0F5;
}
.pl-li:first-of-type { border-top: 0; }
.pl-li.off { opacity: .5; }
.pl-li.off .pl-txt { color: #9089A0; }

.pl-ic {
  flex: 0 0 20px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 1px;
}
.pl-yes { background: rgba(139,0,247,.95); }
.pl-no { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); }

.pl-opt {
  margin-left: auto;
  font-size: 11px;
  font-weight: 600;
  color: #F4C56A;
  border: 1px solid rgba(244,197,106,.4);
  border-radius: 999px;
  padding: 2px 9px;
  white-space: nowrap;
  flex-shrink: 0;
}

.pl-note { color: #807A93; font-size: 11.5px; margin: 24px 0 0; line-height: 1.6; }

/* SVG inside icons */
.pl-ic svg { display: block; }

/* ===== Tarifs page — wpautop neutralisation ===== */
/* p wrapper injected by wpautop around .pl-btn */
.pl-card > p { margin: 0 !important; padding: 0 !important; }
.pl-card > p > a.pl-btn { margin-bottom: 20px; }
/* first pl-li has no top border */
.pl-li:first-of-type { border-top: 0 !important; }
.pl-card > p:empty { display: none !important; }

/* ===== Services page — div+overlay fix ===== */
.page-id-112 .entry-content { max-width: 100% !important; }

/* Card is now a div, not an a — reset link styles not needed, add hover via overlay */
.pulse-service-card { cursor: pointer; }

/* Overlay link covers the whole card */
.pulse-svc-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: block;
  border-radius: 16px;
}
.pulse-svc-overlay:hover ~ .pulse-sc-link,
.pulse-service-card:hover .pulse-sc-link {
  color: var(--pulse-violet) !important;
}

/* sc-link and inner elements stay above overlay */
.pulse-sc-link {
  position: relative;
  z-index: 2;
  font-size: 13px;
  font-weight: 600;
  color: var(--pulse-violet);
  margin-top: auto;
  transition: color .2s;
}
.pulse-service-card strong,
.pulse-service-card p,
.pulse-sc-icon { position: relative; z-index: 2; }

/* ===== Wide layout + image placeholders ===== */

/* Section inner containers — max 1200px centred */
.pulse-section-inner {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(24px, 5vw, 80px);
  padding-right: clamp(24px, 5vw, 80px);
}

/* Page hero on inner pages */
.pulse-page-hero {
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(60px,8vw,120px) clamp(24px,5vw,80px) clamp(40px,5vw,60px);
  text-align: center;
}

/* 2-column hero */
.pulse-hero-2col {
  display: grid;
  grid-template-columns: 55fr 45fr;
  gap: clamp(32px, 5vw, 80px);
  align-items: center;
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(60px,8vw,120px) clamp(24px,5vw,80px) clamp(48px,6vw,80px);
}
.pulse-hero-text { display: flex; flex-direction: column; }
.pulse-hero-visual { position: relative; }

/* Image placeholder — dashed box in brand style */
.pulse-img-placeholder {
  width: 100%;
  aspect-ratio: 4/3;
  background: rgba(139,0,247,.07);
  border: 2px dashed rgba(139,0,247,.3);
  border-radius: 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  color: rgba(255,255,255,.35);
  font-size: 14px;
  text-align: center;
  padding: 24px;
  position: relative;
  overflow: hidden;
  transition: border-color .2s;
}
.pulse-img-placeholder::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(139,0,247,.07) 0%, rgba(237,123,132,.05) 100%);
  pointer-events: none;
}
.pulse-img-placeholder .ph-icon { font-size: 52px; opacity: .3; position: relative; }
.pulse-img-placeholder p { position: relative; z-index: 1; line-height: 1.5; }
.pulse-img-placeholder small { opacity: .7; font-size: 12px; }
.pulse-img-placeholder .ph-label {
  position: absolute;
  top: 12px;
  left: 12px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(139,0,247,.6);
  background: rgba(139,0,247,.1);
  border: 1px solid rgba(139,0,247,.2);
  padding: 3px 10px;
  border-radius: 999px;
}

/* Wide banner placeholder */
.pulse-img-banner {
  aspect-ratio: 21/6;
  border-radius: 16px;
  margin: 8px clamp(24px,5vw,80px);
}
.pulse-img-banner .ph-icon { font-size: 40px; }

/* Hero 2-col responsive */
@media (max-width: 860px) {
  .pulse-hero-2col {
    grid-template-columns: 1fr;
  }
  .pulse-hero-visual { display: none; }
}


/* ============================================================
   OVERRIDE THEME WIDTH CONSTRAINTS
   Le thème Hello Elementor contraint .site-main via
   body:not([class*=elementor-page-]) .site-main.
   Notre mu-plugin ajoute elementor-page-{id} au body
   pour les pages custom => la contrainte est désactivée.
   Ces règles sont un filet de sécurité supplémentaire.
============================================================ */
#content,
.site-main,
.page-content,
.site-content {
  max-width: 100% !important;
  width: 100% !important;
  padding-left: clamp(12px, 1.2vw, 20px) !important;
  padding-right: clamp(12px, 1.2vw, 20px) !important;
  background: transparent !important;
}

/* Masquer le titre de page généré par le thème
   (on a nos propres h1 dans le contenu) */
.page-header { display: none !important; }

/* Header & footer élargis */
.site-header .header-inner,
.site-footer .footer-inner {
  max-width: 1200px !important;
  padding-inline: clamp(16px, 4vw, 60px) !important;
}

/* ============================================================
   PAGE LEGALE (confidentialite, mentions)
============================================================ */
.pulse-legal-content {
  max-width: 860px;
  margin: 0 auto;
  padding: 0 clamp(20px, 4vw, 60px) 80px;
  color: #C9C3D6;
  line-height: 1.75;
  font-size: 15px;
}
.pulse-legal-content h2 {
  font-size: 18px;
  font-weight: 700;
  color: #fff;
  margin: 36px 0 10px;
  padding: 0;
  border: none;
}
.pulse-legal-content h2::before { display: none !important; }
.pulse-legal-content p { margin: 0 0 14px; }
.pulse-legal-content a { color: #C9A6FF; text-decoration: underline; }
.pulse-legal-content a:hover { color: #F0E100; }

/* Hero image réelle */
.pulse-hero-img {
  width: 100%;
  height: auto;
  border-radius: 20px;
  object-fit: cover;
  display: block;
  box-shadow: 0 24px 60px -20px rgba(139,0,247,.4);
}

/* Hero restructuré : titre pleine largeur + description/image en dessous */
.pulse-hero-stack {
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(60px,8vw,100px) clamp(24px,4vw,60px) clamp(48px,6vw,72px);
}
.pulse-hero-stack .pulse-kicker {
  display: inline-block;
  margin-bottom: 16px;
}
.pulse-hero-stack h1 {
  font-size: clamp(28px, 3.2vw, 52px);
  line-height: 1.08;
  white-space: normal;
  margin: 0 0 40px;
  max-width: 100%;
}
.pulse-hero-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(32px, 5vw, 72px);
  align-items: center;
}
.pulse-hero-row .pulse-hero-text {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.pulse-hero-row .pulse-hero-lead {
  margin: 0;
  font-size: 16px;
  line-height: 1.7;
  color: #C9C3D6;
}
@media (max-width: 860px) {
  .pulse-hero-stack h1 { font-size: clamp(24px, 6vw, 36px); }
  .pulse-hero-row { grid-template-columns: 1fr; }
  .pulse-hero-row .pulse-hero-visual { display: none; }
}

/* Bannière image réelle */
.pulse-banner-wrap {
  margin: 8px clamp(16px, 3vw, 48px);
  border-radius: 16px;
  overflow: hidden;
  max-height: 420px;
}
.pulse-img-banner-real {
  width: 100%;
  height: 100%;
  max-height: 420px;
  object-fit: cover;
  object-position: center 20%;
  display: block;
}

/* Services — cartes individuelles */
.pulse-svc-cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  margin-top: 32px;
}
.pulse-svc-card {
  position: relative;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(139,0,247,.25);
  border-radius: 16px;
  padding: 28px 24px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  transition: border-color .2s, box-shadow .2s;
}
.pulse-svc-card:hover {
  border-color: rgba(139,0,247,.6);
  box-shadow: 0 12px 40px -16px rgba(139,0,247,.4);
}
.pulse-svc-num {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .14em;
  color: #8B00F7;
}
.pulse-svc-icon {
  font-size: 28px;
  margin: 4px 0;
}
.pulse-svc-card strong {
  font-size: 16px;
  font-weight: 700;
  color: #fff;
}
.pulse-svc-card p {
  font-size: 14px;
  color: #C9C3D6;
  line-height: 1.6;
  margin: 0;
}
@media (max-width: 900px) {
  .pulse-svc-cards { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .pulse-svc-cards { grid-template-columns: 1fr; }
}

/* Page hero centree */
.pulse-page-hero h1 {
  text-align: center !important;
  width: 100% !important;
  display: block !important;
}
