/* Les polices sont déclarées dans assets/css/polices.css et servies par
   ce site. L'@import vers fonts.googleapis.com qui se trouvait ici
   envoyait l'adresse IP de chaque visiteur à Google avant tout
   consentement. Ne pas le remettre. */

:root { --er-purple:#6d3bd1; --er-purple-dark:#4c219d; --er-ink:#241f2d; --er-muted:#6d6675; --er-cream:#fbf8f2; --er-white:#fff; --er-line:#e7e0ec; --er-dark:#21182c; --er-lime:#9fdb5b; --er-lavender:#f1eafd; --er-radius:20px; }
html { scroll-behavior:smooth; }
body { overflow-x:hidden; color:var(--er-ink); background:var(--er-white); font-family:Manrope,system-ui,sans-serif; }
.er-shell { width:min(1180px,calc(100% - 48px)); margin-inline:auto; }
.lueur-icon { width:22px; height:22px; flex:0 0 auto; }

.er-header { position:sticky; top:0; z-index:50; min-height:78px; background:rgba(255,255,255,.96); border-bottom:1px solid var(--er-line); backdrop-filter:blur(12px); }

/*
 * Décalage sous la barre d'administration.
 *
 * WordPress fixe sa barre en haut du viewport et compense en poussant le
 * document (html{margin-top:32px}). Un en-tête `position:sticky; top:0` ne
 * suit pas ce décalage : il se colle au bord du viewport, donc sous la
 * barre, et perd ses trois premiers centimètres dès qu'on fait défiler.
 * Chaque membre est connecté, donc chaque membre voyait ça.
 *
 * Hauteurs imposées par WordPress : 32 px, 46 px sous 782 px de large. Sous
 * 600 px la barre passe en `position:absolute` et défile avec la page — le
 * décalage doit alors redevenir nul, sans quoi c'est un trou qui apparaît.
 */
body.admin-bar .er-header,
body.admin-bar .site-header { top:32px; }

@media screen and (max-width:782px) {
	body.admin-bar .er-header,
	body.admin-bar .site-header { top:46px; }
}

@media screen and (max-width:600px) {
	body.admin-bar .er-header,
	body.admin-bar .site-header { top:0; }
}
.er-header__inner { min-height:78px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.er-brand { display:inline-flex; align-items:center; gap:10px; color:var(--er-ink); font-size:20px; font-weight:800; text-decoration:none; letter-spacing:-.04em; }
.er-brand span { color:var(--er-purple); font-size:25px; }
.er-navigation { display:flex; align-items:center; gap:28px; }
.er-navigation .menu { display:flex; align-items:center; gap:28px; margin:0; padding:0; list-style:none; }
.er-navigation .menu a { color:var(--er-ink); font-size:14px; font-weight:600; text-decoration:none; }
.er-navigation .menu a:hover,.er-navigation .menu a:focus-visible { color:var(--er-purple); }
.er-header__cta { padding:12px 20px!important; font-size:14px!important; }

.er-button { min-height:50px; display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:14px 24px; border:1px solid transparent; border-radius:999px; font-size:15px; font-weight:800; line-height:1.2; text-decoration:none; transition:transform .2s ease,background .2s ease,box-shadow .2s ease; }
.er-button:hover { transform:translateY(-2px); }
.er-button:focus-visible,.er-text-link:focus-visible,.er-cookie-settings:focus-visible { outline:3px solid var(--er-lime); outline-offset:3px; }
.er-button--primary { color:#fff; background:var(--er-purple); box-shadow:0 8px 24px rgba(109,59,209,.2); }
.er-button--primary:hover { color:#fff; background:var(--er-purple-dark); }
.er-button--secondary { color:var(--er-purple-dark); background:transparent; border-color:var(--er-purple); }
.er-button--secondary:hover { color:#fff; background:var(--er-purple); }
.er-button--lime { color:var(--er-dark); background:var(--er-lime); }
.er-button--lime:hover { color:var(--er-dark); background:#b2e77a; }

.er-hero { overflow:hidden; background:var(--er-cream); }
.er-hero__grid { display:grid; grid-template-columns:1.06fr 1fr; min-height:610px; }
.er-hero__content { display:flex; flex-direction:column; justify-content:center; padding:72px 70px 72px 0; }
.er-kicker { margin:0 0 18px; color:var(--er-purple); font-size:12px; font-weight:800; letter-spacing:.15em; }
.er-kicker--light { color:var(--er-lime); }
.er-hero h1 { max-width:690px; margin:0; font-size:clamp(48px,5vw,68px); line-height:.98; letter-spacing:-.055em; }
.er-hero__lead { max-width:610px; margin:28px 0 0; color:var(--er-muted); font-size:18px; line-height:1.7; }
.er-actions { display:flex; align-items:center; gap:26px; margin-top:32px; }
.er-text-link { color:var(--er-ink); font-size:14px; font-weight:800; text-decoration:none; }
.er-launch-note { display:flex; align-items:center; gap:12px; margin:34px 0 0; color:var(--er-muted); font-size:13px; line-height:1.5; }
.er-launch-note strong { display:block; color:var(--er-ink); }
.er-launch-note .lueur-icon { color:var(--er-purple); }
.er-hero__media { position:relative; margin-right:calc((100vw - min(1180px,calc(100vw - 48px))) / -2); min-height:610px; }
.er-hero__media img { width:100%; height:100%; object-fit:cover; object-position:52% center; }
.er-image-note { position:absolute; right:32px; bottom:28px; display:flex; align-items:center; gap:9px; margin:0; padding:12px 16px; color:var(--er-dark); background:rgba(255,255,255,.94); border-radius:999px; box-shadow:0 10px 30px rgba(33,24,44,.16); font-size:13px; font-weight:700; }
.er-image-note span { color:var(--er-purple); }

/* Dynamic Figma treatment: decorative overlays remain non-interactive. */
.er-hero__media { isolation:isolate; }
.er-hero__media img { position:relative; z-index:0; }
.er-hero__media::before { content:""; position:absolute; z-index:1; top:54px; right:54px; width:190px; aspect-ratio:1; border:3px solid rgba(109,59,209,.36); border-radius:50%; pointer-events:none; }
.er-hero__media::after { content:""; position:absolute; z-index:2; top:82px; right:88px; width:24px; aspect-ratio:1; border-radius:50%; background:var(--er-lime); box-shadow:0 10px 26px rgba(33,24,44,.22); pointer-events:none; }
.er-floating-badge,.er-section-badge { display:inline-flex; align-items:center; justify-content:center; min-height:34px; padding:8px 18px; border-radius:999px; font-size:10px; font-weight:800; letter-spacing:.08em; line-height:1; text-transform:uppercase; white-space:nowrap; }
.er-floating-badge { position:absolute; z-index:3; box-shadow:0 10px 28px rgba(33,24,44,.18); }
.er-floating-badge--opening { top:28px; left:28px; color:#fff; background:var(--er-dark); }
.er-floating-badge--region { right:32px; bottom:86px; color:var(--er-dark); background:rgba(255,255,255,.94); }

.er-trust { border-block:1px solid var(--er-line); background:#fff; }
.er-trust__grid { display:grid; grid-template-columns:repeat(3,1fr); }
.er-trust__grid>p { position:relative; display:flex; align-items:center; gap:14px; margin:0; padding:26px 30px 26px 46px; border-right:1px solid var(--er-line); color:var(--er-muted); font-size:12px; line-height:1.5; }
.er-trust__grid>p:first-child { padding-left:30px; }
.er-trust__grid>p:last-child { border-right:0; }
.er-trust strong { display:block; color:var(--er-ink); font-size:14px; }
.er-trust .lueur-icon { color:var(--er-purple); }
.er-trust__grid>p::before { content:""; position:absolute; left:18px; top:50%; width:4px; height:42px; border-radius:3px; background:var(--er-purple); transform:translateY(-50%); }
.er-trust__grid>p:first-child::before { left:0; }
.er-trust__grid>p:nth-child(2)::before { background:var(--er-lime); }
.er-trust__grid>p:nth-child(3)::before { background:#f56194; }

.er-section { position:relative; padding:104px 0; }
.er-heading { max-width:720px; margin-bottom:54px; }
.er-heading h2,.er-opening h2,.er-safety h2,.er-final h2 { margin:0; font-size:clamp(36px,4vw,52px); line-height:1.08; letter-spacing:-.045em; }
.er-heading>p:last-child,.er-opening p,.er-safety>.er-shell>div>p,.er-final p { color:var(--er-muted); font-size:17px; line-height:1.7; }
.er-how { overflow:hidden; background:linear-gradient(125deg,var(--er-cream),#f8f3ff); }
.er-how .er-shell { position:relative; }
.er-section-badge { position:absolute; z-index:2; color:var(--er-dark); background:#dff9bc; }
.er-section-badge--steps { top:0; right:0; }
.er-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.er-steps article { padding:32px; border:1px solid var(--er-line); border-radius:var(--er-radius); background:#fff; box-shadow:0 12px 30px rgba(33,24,44,.08); transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease; }
.er-steps article:nth-child(1),.er-steps article:nth-child(3) { transform:translateY(12px); }
.er-steps article:nth-child(2) { border:2px solid rgba(109,59,209,.38); }
.er-steps article:hover { transform:translateY(-6px); border-color:rgba(109,59,209,.45); box-shadow:0 20px 42px rgba(33,24,44,.13); }
.er-step-number { display:inline-grid; width:46px; height:46px; place-items:center; color:var(--er-purple); background:var(--er-lavender); border-radius:50%; font-weight:800; }
.er-steps h3 { margin:30px 0 12px; font-size:20px; }
.er-steps p { margin:0; color:var(--er-muted); font-size:14px; line-height:1.7; }

.er-opening { overflow:hidden; color:#fff; background:var(--er-dark); }
.er-opening::before,.er-opening::after { content:""; position:absolute; border-radius:50%; pointer-events:none; }
.er-opening::before { right:42%; bottom:-110px; width:270px; aspect-ratio:1; background:rgba(159,219,91,.12); }
.er-opening::after { right:45%; top:46px; width:150px; aspect-ratio:1; border:2px solid rgba(159,219,91,.32); }
.er-opening__grid { position:relative; z-index:1; display:grid; grid-template-columns:1.15fr .85fr; align-items:center; gap:90px; }
.er-opening h2 { color:#fff; }
.er-opening p { color:#cfc6d8; }
.er-opening ul { display:grid; gap:13px; margin:28px 0 0; padding:0; list-style:none; }
.er-opening li { display:flex; align-items:center; gap:12px; color:#eee9f3; font-size:14px; }
.er-opening li .lueur-icon { color:var(--er-lime); }
.er-opening__card { padding:38px; color:var(--er-ink); background:linear-gradient(145deg,#fff,#f7f1ff); border-radius:24px; box-shadow:0 22px 70px rgba(0,0,0,.24); transition:transform .25s ease,box-shadow .25s ease; }
.er-opening__card:hover { transform:translateY(-6px); box-shadow:0 30px 80px rgba(0,0,0,.3); }
.er-card-icon { color:var(--er-purple); font-size:30px; }
.er-opening__card h3 { margin:18px 0 10px; font-size:28px; letter-spacing:-.035em; }
.er-opening__card p { color:var(--er-muted); font-size:14px; }
.er-opening__card .er-button { width:100%; margin-top:12px; }
.er-opening__card small { display:block; margin-top:14px; color:var(--er-muted); text-align:center; }

.er-safety { background:linear-gradient(135deg,#fff,var(--er-cream)); }
.er-safety__grid { position:relative; display:grid; grid-template-columns:.9fr 1.1fr; align-items:center; gap:90px; }
.er-section-badge--safety { top:-58px; right:0; }
.er-safety .er-button { margin-top:18px; }
.er-safety__cards { display:grid; gap:14px; }
.er-safety__cards article { display:flex; gap:18px; padding:24px; background:#fff; border:1px solid var(--er-line); border-radius:18px; box-shadow:0 10px 28px rgba(33,24,44,.06); transition:transform .25s ease,box-shadow .25s ease; }
.er-safety__cards article:nth-child(2) { transform:translateX(28px); }
.er-safety__cards article:nth-child(3) { transform:translateX(8px); }
.er-safety__cards article:hover { transform:translateX(0) translateY(-4px); box-shadow:0 18px 36px rgba(33,24,44,.11); }
.er-safety__cards .lueur-icon { color:var(--er-purple); }
.er-safety__cards h3 { margin:0 0 6px; font-size:17px; }
.er-safety__cards p { margin:0; color:var(--er-muted); font-size:13px; line-height:1.6; }

.er-final { padding:90px 0; text-align:center; }
.er-final .er-shell { max-width:780px; }
.er-final .er-button { margin-top:18px; }

.er-motion-ready .er-reveal { opacity:0; transform:translateY(24px); transition:opacity .6s ease var(--er-reveal-delay,0ms),transform .6s cubic-bezier(.2,.8,.2,1) var(--er-reveal-delay,0ms); }
.er-motion-ready .er-reveal.is-visible { opacity:1; transform:translateY(0); }

/* Subtle motion from the dynamic Figma direction. */
@keyframes er-badge-float {
  0%,100% { transform:translateY(0) rotate(-1deg); }
  50% { transform:translateY(-7px) rotate(1deg); }
}
@keyframes er-orbit-breathe {
  0%,100% { opacity:.58; transform:scale(1); }
  50% { opacity:.9; transform:scale(1.06); }
}
.er-floating-badge--opening { animation:er-badge-float 5.5s ease-in-out infinite; }
.er-floating-badge--region { animation:er-badge-float 6.5s ease-in-out 1.1s infinite reverse; }
.er-hero__media::before,.er-opening::after { animation:er-orbit-breathe 7s ease-in-out infinite; }

.er-footer { padding:0; color:#ddd4e6; background:var(--er-dark); }
.er-footer__grid { display:grid; grid-template-columns:1.5fr .7fr 1fr; gap:90px; padding-block:72px 54px; }
.er-brand--light { color:#fff; }
.er-footer__intro p { max-width:420px; color:#a99db5; font-size:13px; line-height:1.7; }
.er-footer h2 { margin:0 0 18px; color:#fff; font-size:13px; text-transform:uppercase; letter-spacing:.12em; }
.er-footer ul { display:grid; gap:11px; margin:0; padding:0; list-style:none; }
.er-footer a,.er-cookie-settings { color:#cfc6d8; font:inherit; font-size:13px; text-decoration:none; }
.er-cookie-settings { padding:0; border:0; background:none; cursor:pointer; }
.er-footer a:hover,.er-cookie-settings:hover { color:var(--er-lime); }
.er-footer__bottom { display:flex; justify-content:space-between; gap:24px; padding-block:24px; border-top:1px solid rgba(255,255,255,.12); color:#91859e; font-size:12px; }
.er-footer__bottom p { margin:0; }

/* Bandeau de consentement CookieAdmin. */
.cookieadmin_consent_inside { border:1px solid var(--er-line)!important; border-radius:18px!important; box-shadow:0 18px 60px rgba(33,24,44,.2)!important; }
#cookieadmin_notice_title { color:var(--er-ink)!important; font-family:Manrope,system-ui,sans-serif!important; font-weight:800!important; }
#cookieadmin_notice { color:var(--er-muted)!important; font-family:Manrope,system-ui,sans-serif!important; line-height:1.6!important; }
.cookieadmin_consent_btns { gap:10px!important; }
/*
 * Refuser doit être aussi simple qu'accepter.
 *
 * Le commentaire ci-dessus annonçait « equal visual weight » ; le code
 * faisait l'inverse — « Tout refuser » en contour blanc, « Tout accepter »
 * en violet plein. C'est le schéma que la CNIL sanctionne : elle a condamné
 * Google et Facebook précisément parce que refuser demandait plus d'efforts
 * qu'accepter. Sur un site de rencontre, où les données sont sensibles par
 * nature, l'écart se paie plus cher encore.
 *
 * Les deux boutons du choix binaire sont donc rigoureusement identiques :
 * même fond, même taille, même graisse. Seul le libellé les distingue.
 * « Personnaliser » reste en second plan — ce n'est pas un des deux termes
 * de l'alternative, et l'exigence porte sur refuser contre accepter.
 */
.cookieadmin_btn { min-height:44px!important; padding:12px 22px!important; border:1px solid var(--er-purple)!important; border-radius:999px!important; color:#fff!important; background:var(--er-purple)!important; font-family:Manrope,system-ui,sans-serif!important; font-weight:800!important; }

/* « Personnaliser » : contour, en retrait des deux autres. */
#cookieadmin_settings_button,#cookieadmin_customize_button,.cookieadmin_btn_settings { color:var(--er-purple-dark)!important; background:#fff!important; }

/*
 * Aucune règle ne distingue plus « Tout accepter » : la déclaration qui le
 * remplissait de violet est retirée, et non surchargée — la laisser aurait
 * invité le prochain à la remettre.
 */

@media (max-width:900px) {
  .er-shell { width:min(100% - 32px,720px); }
  .er-header,.er-header__inner { min-height:70px; }
  .er-navigation { align-items:stretch; gap:18px; }
  .er-navigation .menu { display:grid; align-items:stretch; gap:0; }
  .er-navigation .menu a { display:block; padding:14px 0; font-size:16px; }
  .er-header__cta { margin-top:8px; }
  .er-hero__grid { grid-template-columns:1fr; width:100%; }
  .er-hero__content { order:1; padding:54px 24px 58px; }
  .er-hero__media { min-height:400px; margin:0; }
  .er-trust__grid { grid-template-columns:1fr; }
  .er-trust__grid>p,.er-trust__grid>p:first-child { padding:20px 0; border-right:0; border-bottom:1px solid var(--er-line); }
  .er-trust__grid>p:last-child { border-bottom:0; }
  .er-steps { grid-template-columns:1fr; }
  .er-steps article:nth-child(1),.er-steps article:nth-child(3) { transform:none; }
  .er-steps article:nth-child(2) { transform:translateX(12px); }
  .er-opening__grid,.er-safety__grid { grid-template-columns:1fr; gap:48px; }
  .er-safety__cards article:nth-child(2) { transform:translateX(12px); }
  .er-safety__cards article:nth-child(3) { transform:none; }
  .er-footer__grid { grid-template-columns:1.2fr 1fr 1fr; gap:40px; }
}

@media (max-width:600px) {
  .er-shell { width:min(100% - 32px,460px); }
  .er-brand { font-size:17px; }
  .er-hero__media { min-height:330px; }
  .er-hero__media::before { top:42px; right:24px; width:132px; border-width:2px; }
  .er-hero__media::after { top:62px; right:48px; width:18px; }
  .er-floating-badge { min-height:30px; padding:7px 14px; font-size:9px; }
  .er-floating-badge--opening { top:16px; left:16px; }
  .er-floating-badge--region { display:none; }
  .er-image-note { right:16px; bottom:16px; max-width:calc(100% - 32px); }
  .er-hero h1 { font-size:44px; }
  .er-hero__lead { font-size:16px; }
  .er-actions { align-items:stretch; flex-direction:column; gap:18px; }
  .er-text-link { text-align:center; }
  .er-section { padding:74px 0; }
  .er-section-badge--steps { top:-36px; right:0; }
  .er-section-badge--safety { top:-38px; right:0; }
  .er-heading { margin-bottom:34px; }
  .er-steps article,.er-opening__card { padding:26px; }
  .er-steps article:nth-child(2) { transform:translateX(8px); }
  .er-opening::before { right:-70px; bottom:-40px; width:190px; }
  .er-opening::after { right:-10px; top:34px; width:110px; }
  .er-safety__cards article:nth-child(2) { transform:translateX(8px); }
  .er-footer__grid { grid-template-columns:1fr 1fr; gap:42px 28px; padding-block:56px 40px; }
  .er-footer__intro { grid-column:1/-1; }
  .er-footer__bottom { flex-direction:column; }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { scroll-behavior:auto!important; transition-duration:.01ms!important; }
  .er-steps article,.er-safety__cards article,.er-opening__card { transform:none!important; }
  .er-floating-badge,.er-hero__media::before,.er-opening::after { animation:none!important; }
}
