/* VVhite Tool Kit 2.2.0 — page de connexion (wp-login.php).
   Variables posées sur body.vvt-lg par le Tool Kit (Page de connexion) : --vlg-*.
   Structure de WordPress gardée : #login, #loginform, #user_login, #user_pass, #wp-submit. */

body.vvt-lg {
  background: var(--vlg-bg, #08090d);
  color: var(--vlg-text, #d4d8e8);
  font-family: var(--vlg-font, system-ui, sans-serif);
  min-height: 100vh;
  position: relative;
  --accent: var(--vlg-focus, #3a9fd5);
  --accent2: var(--vlg-link, #7ecef4);
}
body.vvt-lg.vvt-lg-bg-gradient { background: var(--vlg-grad); background-attachment: fixed; }
body.vvt-lg.vvt-lg-grad-anim { background-size: 300% 300%; animation: vlgGrad var(--vlg-grad-s, 24s) ease-in-out infinite; }
@keyframes vlgGrad { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }

/* ── Calques de fond ── */
.vvt-lg-bg { position: fixed; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.vvt-lg-img, .vvt-lg-slide {
  position: absolute; inset: calc(var(--vlg-blur, 0px) * -2);
  background-size: var(--vlg-fit, cover); background-repeat: no-repeat; background-position: center;
  filter: blur(var(--vlg-blur, 0px)) saturate(var(--vlg-img-sat, 1));
}
.vvt-lg-img, .vvt-lg-slides { opacity: var(--vlg-img-op, 1); } /* 2.2.0 : opacité de l'image (pages Maintenance / Bientôt de retour) */
.vvt-lg-slides { position: absolute; inset: 0; }
.vvt-lg-slide { opacity: 0; transition: opacity 1.4s ease; }
.vvt-lg-slide.is-on { opacity: 1; }
.vvt-lg-slides.is-ken .vvt-lg-slide.is-on { animation: vlgKen calc(var(--vlg-slide-s, 8s) + 1.4s) ease-out both; }
@keyframes vlgKen { from { transform: scale(1); } to { transform: scale(1.09); } }
.vvt-lg-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: var(--vlg-ofit, cover); filter: blur(var(--vlg-blur, 0px)) saturate(var(--vlg-img-sat, 1)); opacity: 0; transition: opacity .8s ease; }
.vvt-lg-video.is-on { opacity: var(--vlg-img-op, 1); }
.vvt-lg-veil { position: absolute; inset: 0; background: var(--vlg-veil, transparent); }
.vvt-lg-vignette { position: absolute; inset: 0; background: radial-gradient(ellipse at center, transparent 45%, #000 120%); opacity: var(--vlg-vignette, .3); }

/* Fonds animés sans fichier */
.vvt-lg-anim { position: absolute; inset: 0; }
.vvt-lg-anim i { position: absolute; display: block; }
.vvt-lg-anim canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.vvt-lg-anim--aurora i, .vvt-lg-anim--mist i { width: 75vmax; height: 75vmax; border-radius: 50%; filter: blur(70px); mix-blend-mode: screen; opacity: .5; }
.vvt-lg-anim--aurora i:nth-child(1) { background: radial-gradient(circle, var(--vlg-anim-c), transparent 65%); top: -25%; left: -15%; animation: vlgDrift1 calc(var(--vlg-anim-s, 3.6) * 6s) ease-in-out infinite alternate; }
.vvt-lg-anim--aurora i:nth-child(2) { background: radial-gradient(circle, var(--vlg-anim-c2), transparent 65%); bottom: -30%; right: -20%; animation: vlgDrift2 calc(var(--vlg-anim-s, 3.6) * 7s) ease-in-out infinite alternate; }
.vvt-lg-anim--aurora i:nth-child(3) { background: radial-gradient(circle, color-mix(in srgb, var(--vlg-anim-c) 50%, var(--vlg-anim-c2)), transparent 60%); top: 20%; left: 30%; width: 50vmax; height: 50vmax; opacity: .35; animation: vlgDrift3 calc(var(--vlg-anim-s, 3.6) * 9s) ease-in-out infinite alternate; }
.vvt-lg-anim--mist i { background: radial-gradient(circle, color-mix(in srgb, var(--vlg-anim-c2) 60%, #fff), transparent 60%); opacity: .18; filter: blur(90px); }
.vvt-lg-anim--mist i:nth-child(1) { top: 10%; left: -30%; animation: vlgMist calc(var(--vlg-anim-s, 3.6) * 10s) linear infinite; }
.vvt-lg-anim--mist i:nth-child(2) { top: 45%; left: -50%; animation: vlgMist calc(var(--vlg-anim-s, 3.6) * 14s) linear infinite; animation-delay: calc(var(--vlg-anim-s, 3.6) * -5s); }
.vvt-lg-anim--mist i:nth-child(3) { top: -20%; left: -40%; background: radial-gradient(circle, var(--vlg-anim-c), transparent 60%); animation: vlgMist calc(var(--vlg-anim-s, 3.6) * 18s) linear infinite; animation-delay: calc(var(--vlg-anim-s, 3.6) * -9s); }
@keyframes vlgDrift1 { to { transform: translate(18vw, 12vh) scale(1.15); } }
@keyframes vlgDrift2 { to { transform: translate(-16vw, -10vh) scale(1.1); } }
@keyframes vlgDrift3 { to { transform: translate(-12vw, 14vh) scale(.85); } }
@keyframes vlgMist { from { transform: translateX(0); } to { transform: translateX(160vw); } }
.vvt-lg-anim--grid i:nth-child(1) {
  left: -50%; right: -50%; bottom: -12%; height: 70%;
  background-image: linear-gradient(var(--vlg-anim-c) 1px, transparent 1px), linear-gradient(90deg, var(--vlg-anim-c) 1px, transparent 1px);
  background-size: 52px 52px;
  transform: perspective(520px) rotateX(64deg); transform-origin: center bottom;
  opacity: .32;
  -webkit-mask-image: linear-gradient(transparent, #000 45%); mask-image: linear-gradient(transparent, #000 45%);
  animation: vlgGrid calc(var(--vlg-anim-s, 3.6) * .6s) linear infinite;
}
.vvt-lg-anim--grid i:nth-child(2) { left: 0; right: 0; top: 58%; height: 2px; background: linear-gradient(90deg, transparent, var(--vlg-anim-c2), transparent); box-shadow: 0 0 24px 6px color-mix(in srgb, var(--vlg-anim-c2) 45%, transparent); opacity: .8; }
.vvt-lg-anim--grid i:nth-child(3) { left: 0; right: 0; top: 0; height: 58%; background: radial-gradient(ellipse at 50% 100%, color-mix(in srgb, var(--vlg-anim-c) 30%, transparent), transparent 70%); }
@keyframes vlgGrid { from { background-position: 0 0; } to { background-position: 0 52px; } }
.vvt-lg-anim--stars i, .vvt-lg-anim--rain i { display: none; }

/* ── Visuel (moteur du thème) ── */
.vvt-lg-stage { position: fixed; inset: 0; z-index: 1; pointer-events: none; overflow: hidden; }
.vvt-lg-art-left .vvt-lg-stage:not(.is-full) { right: 50%; }
.vvt-lg-art-right .vvt-lg-stage:not(.is-full) { left: 50%; }
.vvt-lg-art-above .vvt-lg-stage:not(.is-full) { bottom: 58%; }
.vvt-lg-art-left .vvt-lg-stage.is-full .hero-art { justify-content: flex-start; padding-left: 6vw; }
.vvt-lg-art-right .vvt-lg-stage.is-full .hero-art { justify-content: flex-end; padding-right: 6vw; }
.vvt-lg-art-above .vvt-lg-stage.is-full .hero-art { align-items: flex-start; padding-top: 3vh; }
.vvt-lg-art-above .vvt-lg-stage .hero-art-wrap { width: min(calc(var(--vv-art-w, 420px) * var(--vv-zoom, 1)), 34vh, 74vw); }
body.vvt-lg.vvt-lg-art-above #login { padding-top: 43vh; }
.vvt-lg-stage .hero-art { pointer-events: none; }

/* Visuel sur toute la surface (2.1.1) : l'image remplit la page, quelles que soient ses dimensions ;
   les calques d'effets masqués par l'image suivent le même ajustement et la même position. */
.vvt-lg-art-cover .vvt-lg-stage { inset: 0 !important; }
.vvt-lg-art-cover .vvt-lg-stage .hero-art { display: block; padding: 0 !important; --vv-art-x: 0% !important; --vv-art-y: 0% !important; --vv-zoom: 1 !important; }
.vvt-lg-art-cover .vvt-lg-stage .hero-art-wrap { position: absolute; inset: 0; width: 100% !important; height: 100%; max-height: none !important; }
.vvt-lg-art-cover .vvt-lg-stage .hero-art-inner { position: absolute; inset: 0; }
.vvt-lg-art-cover .vvt-lg-stage .hero-art-img {
  width: 100%; height: 100%; object-fit: var(--vlg-art-fit, cover); object-position: var(--vlg-art-pos, 50% 50%);
  filter: blur(var(--vlg-art-blur, 0px));
}
.vvt-lg-art-cover .vvt-lg-stage :is(.hero-art-fx, .hero-art-spot) {
  -webkit-mask-size: var(--vlg-art-mask, cover); mask-size: var(--vlg-art-mask, cover);
  -webkit-mask-position: var(--vlg-art-pos, 50% 50%); mask-position: var(--vlg-art-pos, 50% 50%);
}
.vvt-lg-art-cover .vvt-lg-stage .hero-art-wrap::before, .vvt-lg-art-cover .vvt-lg-stage .hero-art-wrap::after {
  -webkit-mask-size: var(--vlg-art-mask, cover); mask-size: var(--vlg-art-mask, cover);
  -webkit-mask-position: var(--vlg-art-pos, 50% 50%); mask-position: var(--vlg-art-pos, 50% 50%);
}

/* ── Bloc de connexion ── */
body.vvt-lg #login { position: relative; z-index: 2; width: var(--vlg-w, 360px); max-width: calc(100vw - 32px); padding: 7vh 0 4vh; margin: 0 auto; }
body.vvt-lg.vvt-lg-at-left #login { margin-left: max(16px, 8vw); }
body.vvt-lg.vvt-lg-at-right #login { margin-right: max(16px, 8vw); margin-left: auto; }
body.vvt-lg .language-switcher { position: relative; z-index: 2; }
body.vvt-lg.vvt-lg-at-left .language-switcher { margin-left: max(16px, 8vw); text-align: left; }

/* Logo */
body.vvt-lg #login h1 { margin-bottom: 18px; }
body.vvt-lg #login h1 a { background-position: center; background-repeat: no-repeat; margin: 0 auto 8px; outline-offset: 4px; }
body.vvt-lg.vvt-lg-logo-text #login h1 a {
  font-family: var(--vlg-logo-font); font-size: var(--vlg-logo-size, 34px); font-weight: 700; line-height: 1.15;
  color: var(--vlg-logo-c); text-decoration: none; display: inline-block; padding: 2px 8px; border-radius: 6px;
}
body.vvt-lg.vvt-lg-logo-text #login h1 { text-align: center; }
body.vvt-lg.vvt-lg-logo-none #login h1 { display: none; }

/* Titre, phrase d'accueil, phrases déroulantes */
.vvt-lg-head { text-align: center; margin: 0 0 16px; text-shadow: 0 1px 3px rgba(0, 0, 0, .45); }
.vvt-lg-title { font-family: var(--vlg-logo-font, inherit); font-size: 24px; font-weight: 700; color: var(--vlg-title, #fff); margin: 0 0 6px; line-height: 1.25; }
.vvt-lg-intro { color: var(--vlg-text); margin: 0; font-size: 15px; line-height: 1.5; }
.vvt-lg-phr { display: flex; justify-content: center; margin-top: 8px; min-height: 28px; }
.vvt-lg-phr .typewriter-wrap { margin-bottom: 0; display: inline-flex; align-items: center; }
.vvt-lg-phr .typewriter-cursor { display: inline-block; width: 2px; margin-left: 3px; vertical-align: middle; }

/* Formulaire */
body.vvt-lg :is(#loginform, #lostpasswordform, #registerform, #resetpassform) {
  background: var(--vlg-form-bg); color: var(--vlg-text);
  border: var(--vlg-bw, 1px) solid var(--vlg-border); border-radius: var(--vlg-r, 14px);
  -webkit-backdrop-filter: blur(var(--vlg-form-blur, 0px)); backdrop-filter: blur(var(--vlg-form-blur, 0px));
  box-shadow: none; margin-top: 14px;
  padding: 26px max(0px, min(24px, calc((var(--vlg-w, 360px) - 300px - 2 * var(--vlg-bw, 1px)) / 2))) 22px; /* Turnstile : 300 px utiles au moins */
  font-family: var(--vlg-font);
}
body.vvt-lg.vvt-lg-sh-soft :is(#loginform, #lostpasswordform, #registerform, #resetpassform) { box-shadow: 0 14px 44px rgba(0, 0, 0, .45); }
body.vvt-lg.vvt-lg-sh-glow :is(#loginform, #lostpasswordform, #registerform, #resetpassform) { box-shadow: 0 0 26px color-mix(in srgb, var(--vlg-border) 45%, transparent), 0 14px 44px rgba(0, 0, 0, .4); }
body.vvt-lg :is(#loginform, #lostpasswordform, #registerform, #resetpassform) :is(label, p, .description, .indicator-hint) { color: var(--vlg-text); font-family: var(--vlg-font); }
body.vvt-lg form :is(.input, input[type="text"], input[type="password"], input[type="email"]) {
  background: var(--vlg-field-bg); color: var(--vlg-field); border: 1px solid var(--vlg-field-bd);
  border-radius: max(2px, calc(var(--vlg-r, 14px) * .45)); box-shadow: none; font-family: var(--vlg-font);
}
body.vvt-lg form :is(.input, input[type="text"], input[type="password"], input[type="email"]):focus {
  border-color: var(--vlg-focus); outline: none;
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--vlg-focus) 45%, transparent);
}
body.vvt-lg form input:-webkit-autofill, body.vvt-lg form input:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0 60px var(--vlg-field-bg) inset; -webkit-text-fill-color: var(--vlg-field); caret-color: var(--vlg-field);
}
body.vvt-lg .wp-pwd .button.wp-hide-pw { color: var(--vlg-field); background: transparent; border: 0; box-shadow: none; }
body.vvt-lg .wp-pwd .button.wp-hide-pw:focus { box-shadow: 0 0 0 2px var(--vlg-focus); }
body.vvt-lg form input[type="checkbox"] { background: var(--vlg-field-bg); border-color: var(--vlg-field-bd); }
body.vvt-lg form input[type="checkbox"]:checked::before { filter: drop-shadow(0 0 0 var(--vlg-focus)); }
body.vvt-lg form input[type="checkbox"]:focus { border-color: var(--vlg-focus); box-shadow: 0 0 0 2px color-mix(in srgb, var(--vlg-focus) 45%, transparent); }
body.vvt-lg .forgetmenot { float: none; margin-bottom: 4px; }
body.vvt-lg.vvt-lg-no-remember .forgetmenot { display: none; }
body.vvt-lg form .submit { clear: both; }
body.vvt-lg #wp-submit, body.vvt-lg form .submit .button-primary {
  float: none; width: 100%; min-height: 42px; margin-top: 12px;
  background: var(--vlg-btn); color: var(--vlg-btn-c); border: 0; border-radius: var(--vlg-btn-r, 8px);
  text-transform: var(--vlg-btn-case, none); font-weight: 700; letter-spacing: .04em; font-family: var(--vlg-font);
  text-shadow: none; box-shadow: none; transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
body.vvt-lg :is(#wp-submit, #wfls-token-submit, #wfls-support-submit):focus-visible { outline: 2px solid var(--vlg-focus); outline-offset: 2px; }
body.vvt-lg.vvt-lg-hv-lift :is(#wp-submit, #wfls-token-submit, #wfls-support-submit):hover { transform: translateY(-1px); box-shadow: 0 8px 22px rgba(0, 0, 0, .35); filter: brightness(1.06); }
body.vvt-lg.vvt-lg-hv-glow :is(#wp-submit, #wfls-token-submit, #wfls-support-submit):hover { box-shadow: 0 0 18px var(--vlg-btn-solid), 0 0 42px color-mix(in srgb, var(--vlg-btn-solid) 40%, transparent); }
body.vvt-lg.vvt-lg-hv-shine :is(#wp-submit, #wfls-token-submit, #wfls-support-submit) { background: linear-gradient(110deg, transparent 35%, rgba(255, 255, 255, .38) 50%, transparent 65%) 160% 0 / 250% 100% no-repeat, var(--vlg-btn); }
body.vvt-lg.vvt-lg-hv-shine :is(#wp-submit, #wfls-token-submit, #wfls-support-submit):hover { background-position: -60% 0, 0 0; transition: background-position .8s ease; }

/* Messages */
body.vvt-lg #login :is(#login_error, .message, .notice, .success) {
  background: var(--vlg-form-bg); color: var(--vlg-text); border-radius: max(4px, calc(var(--vlg-r, 14px) * .5));
  -webkit-backdrop-filter: blur(var(--vlg-form-blur, 0px)); backdrop-filter: blur(var(--vlg-form-blur, 0px));
  box-shadow: none; border: 1px solid color-mix(in srgb, var(--vlg-border) 40%, transparent); border-left: 4px solid var(--vlg-focus);
}
body.vvt-lg #login #login_error, body.vvt-lg #login .notice-error { border-left-color: #d63638; }
body.vvt-lg #login :is(#login_error, .message, .notice) a { color: var(--vlg-link); }

/* Liens */
body.vvt-lg #login :is(#nav, #backtoblog) { text-align: center; padding: 0; margin: 16px 0 0; text-shadow: 0 1px 3px rgba(0, 0, 0, .5); }
body.vvt-lg #login :is(#nav, #backtoblog, .privacy-policy-page-link) a,
body.vvt-lg .privacy-policy-page-link a { color: var(--vlg-link); }
body.vvt-lg #login :is(#nav, #backtoblog) a:hover, body.vvt-lg .privacy-policy-page-link a:hover { color: var(--vlg-link); text-decoration: underline; filter: brightness(1.15); }
body.vvt-lg #nav { color: var(--vlg-text); }
body.vvt-lg.vvt-lg-no-lost #nav .wp-login-lost-password { display: none; }
body.vvt-lg.vvt-lg-no-back #backtoblog { display: none; }
body.vvt-lg.vvt-lg-no-privacy .privacy-policy-page-link { display: none; }
body.vvt-lg .privacy-policy-page-link { position: relative; z-index: 2; }

/* ── Wordfence (2.2.0) : code de double authentification, aide, messages, clé d'accès ──
   Wordfence pose #wfls-prompt-overlay (fond blanc) dans le formulaire : le cadre du Tool Kit reste,
   seul le panneau est montré (classe vvt-lg-2fa posée par le Tool Kit, doublée par :has()). */
body.vvt-lg :is(#loginform, #registerform).vvt-lg-2fa > :not(#wfls-prompt-overlay):not([class*="vv-fx"]),
body.vvt-lg :is(#loginform, #registerform):has(> #wfls-prompt-overlay) > :not(#wfls-prompt-overlay):not([class*="vv-fx"]) { display: none !important; }
body.vvt-lg #wfls-prompt-overlay { position: static; inset: auto; display: block; padding: 0; background: transparent; color: var(--vlg-text); font-family: var(--vlg-font); }
body.vvt-lg #wfls-prompt-overlay #wfls-prompt-wrapper > p:first-child { margin-top: 0; }
body.vvt-lg #wfls-prompt-overlay :is(p, label) { color: var(--vlg-text); font-family: var(--vlg-font); }
body.vvt-lg #wfls-prompt-overlay label[for="wfls-token"] { display: inline-flex; align-items: center; gap: 6px; }
body.vvt-lg .wfls-2fa-code-help { color: var(--vlg-link); text-decoration: none; box-shadow: none; border-radius: 50%; line-height: 1; }
body.vvt-lg .wfls-2fa-code-help .dashicons { font-size: 18px; width: 18px; height: 18px; }
body.vvt-lg .wfls-2fa-code-help:hover { filter: brightness(1.2); }
body.vvt-lg .wfls-2fa-code-help:focus-visible { outline: 2px solid var(--vlg-focus); outline-offset: 2px; box-shadow: none; }
body.vvt-lg #wfls-token { margin-bottom: 4px; }
body.vvt-lg.vvt-lg-wf-big #wfls-token { text-align: center; font-size: 26px; letter-spacing: .35em; padding-left: calc(.35em + 8px); font-variant-numeric: tabular-nums; }
body.vvt-lg #wfls-prompt-overlay .wfls-remember-device-wrapper { float: none; margin: 6px 0 0; }
body.vvt-lg #wfls-prompt-overlay .wfls-remember-device-wrapper label { font-size: 13px; line-height: 1.5; }
body.vvt-lg #wfls-prompt-overlay p.submit { margin: 0; padding: 0; }
body.vvt-lg form .wfls-textarea { background: var(--vlg-field-bg); color: var(--vlg-field); border: 1px solid var(--vlg-field-bd); border-radius: max(2px, calc(var(--vlg-r, 14px) * .45)); font-family: var(--vlg-font); }
body.vvt-lg form .wfls-textarea:focus { border-color: var(--vlg-focus); outline: none; box-shadow: 0 0 0 2px color-mix(in srgb, var(--vlg-focus) 45%, transparent); }
/* Bulle d'aide (Zebra Tooltips, posée dans le body) */
body.vvt-lg .Zebra_Tooltip .Zebra_Tooltip_Message {
  background: var(--vlg-form-solid); color: var(--vlg-text); border: 1px solid var(--vlg-border);
  border-radius: max(4px, calc(var(--vlg-r, 14px) * .5)); font-family: var(--vlg-font); font-size: 13px; line-height: 1.5;
  box-shadow: 0 12px 32px rgba(0, 0, 0, .45);
}
body.vvt-lg .Zebra_Tooltip .Zebra_Tooltip_Arrow.Zebra_Tooltip_Arrow_Bottom div { border-color: var(--vlg-form-solid) transparent transparent; }
body.vvt-lg .Zebra_Tooltip .Zebra_Tooltip_Arrow.Zebra_Tooltip_Arrow_Bottom div.Zebra_Tooltip_Arrow_Border { border-color: var(--vlg-border) transparent transparent; }
body.vvt-lg .Zebra_Tooltip .Zebra_Tooltip_Arrow.Zebra_Tooltip_Arrow_Top div { border-color: transparent transparent var(--vlg-form-solid); }
body.vvt-lg .Zebra_Tooltip .Zebra_Tooltip_Arrow.Zebra_Tooltip_Arrow_Top div.Zebra_Tooltip_Arrow_Border { border-color: transparent transparent var(--vlg-border); }
body.vvt-lg .Zebra_Tooltip .Zebra_Tooltip_Arrow div { box-shadow: none; }
/* Connexion par clé d'accès (passkey) */
body.vvt-lg .wfls-passkey-container .wfls-passkey-divider { color: var(--vlg-text); font-family: var(--vlg-font); }
body.vvt-lg .wfls-passkey-container .wfls-passkey-divider::before, body.vvt-lg .wfls-passkey-container .wfls-passkey-divider::after { border-top-color: color-mix(in srgb, var(--vlg-border) 45%, transparent); }
body.vvt-lg .wfls-passkey-container .wfls-passkey-divider-label { background: transparent; }
body.vvt-lg .wfls-passkey-container .wfls-passkey-submit {
  min-height: 42px; background: transparent; color: var(--vlg-text); border: 1px solid var(--vlg-btn-solid); border-radius: var(--vlg-btn-r, 8px);
  font-family: var(--vlg-font); font-weight: 700; text-transform: var(--vlg-btn-case, none); letter-spacing: .04em; box-shadow: none;
}
body.vvt-lg .wfls-passkey-container .wfls-passkey-submit:hover { background: color-mix(in srgb, var(--vlg-btn-solid) 16%, transparent); color: var(--vlg-text); border-color: var(--vlg-btn-solid); }
body.vvt-lg .wfls-passkey-container .wfls-passkey-submit:focus-visible { outline: 2px solid var(--vlg-focus); outline-offset: 2px; box-shadow: none; }
body.vvt-lg .wfls-passkey-container .wfls-passkey-icon { background-color: var(--vlg-focus); }
body.vvt-lg-p-hud .wfls-passkey-container .wfls-passkey-submit { border-radius: 0; }
/* Message en fenêtre (si la page n'a pas de titre h1) */
body.vvt-lg #wfls-login-modal { background-color: rgba(0, 0, 0, .55) !important; }
body.vvt-lg #wfls-login-modal > div {
  background: var(--vlg-form-solid) !important; color: var(--vlg-text); border: 1px solid var(--vlg-border);
  border-radius: var(--vlg-r, 14px) !important; font-family: var(--vlg-font); max-width: 420px;
}
body.vvt-lg #wfls-login-modal button { background: var(--vlg-btn); color: var(--vlg-btn-c); border: 0; border-radius: var(--vlg-btn-r, 8px); padding: 8px 20px; font-weight: 700; font-family: var(--vlg-font); cursor: pointer; }

/* ── Styles de départ ── */
body.vvt-lg-p-solid :is(#loginform, #lostpasswordform, #registerform, #resetpassform) { background: var(--vlg-form-solid); -webkit-backdrop-filter: none; backdrop-filter: none; }
body.vvt-lg-p-neon :is(#loginform, #lostpasswordform, #registerform, #resetpassform) {
  box-shadow: 0 0 6px var(--vlg-border), 0 0 22px color-mix(in srgb, var(--vlg-border) 55%, transparent), inset 0 0 18px color-mix(in srgb, var(--vlg-border) 25%, transparent);
}
body.vvt-lg-p-neon form :is(.input, input[type="text"], input[type="password"], input[type="email"]):focus { box-shadow: 0 0 10px var(--vlg-focus), 0 0 0 1px var(--vlg-focus); }
body.vvt-lg-p-neon :is(#wp-submit, #wfls-token-submit, #wfls-support-submit) { box-shadow: 0 0 12px color-mix(in srgb, var(--vlg-btn-solid) 70%, transparent); }
body.vvt-lg-p-hud :is(#loginform, #lostpasswordform, #registerform, #resetpassform) {
  border-radius: 0;
  clip-path: polygon(16px 0, 100% 0, 100% calc(100% - 16px), calc(100% - 16px) 100%, 0 100%, 0 16px);
  background-image:
    linear-gradient(var(--vlg-border), var(--vlg-border)), linear-gradient(var(--vlg-border), var(--vlg-border)),
    linear-gradient(var(--vlg-border), var(--vlg-border)), linear-gradient(var(--vlg-border), var(--vlg-border));
  background-repeat: no-repeat;
  background-size: 26px 2px, 2px 26px, 26px 2px, 2px 26px;
  background-position: right 0 top 0, right 0 top 0, left 0 bottom 0, left 0 bottom 0;
}
body.vvt-lg-p-hud form :is(.input, input[type="text"], input[type="password"], input[type="email"]), body.vvt-lg-p-hud :is(#wp-submit, #wfls-token-submit, #wfls-support-submit) { border-radius: 0; }
body.vvt-lg-p-hud :is(#wp-submit, #wfls-token-submit, #wfls-support-submit) { clip-path: polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px); }
body.vvt-lg-p-hud :is(#wp-submit, #wfls-token-submit, #wfls-support-submit):focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--vlg-focus), inset 0 0 0 4px rgba(0, 0, 0, .55); } /* le découpage cacherait le contour */
body.vvt-lg-p-minimal :is(#loginform, #lostpasswordform, #registerform, #resetpassform) { background: transparent; border-color: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; box-shadow: none; }
body.vvt-lg-p-minimal.vvt-lg-sh-soft :is(#loginform, #lostpasswordform, #registerform, #resetpassform) { background: var(--vlg-form-bg); box-shadow: 0 10px 34px rgba(0, 0, 0, .12); }
body.vvt-lg-p-minimal form :is(.input, input[type="text"], input[type="password"], input[type="email"]) { border-width: 0 0 2px; border-radius: 0; background: transparent; }

/* ── Fenêtre « session expirée » : allégée ── */
body.vvt-lg-lite { animation: none !important; background-size: auto !important; }
body.vvt-lg-lite #login { padding: 12px 0 8px; max-width: calc(100vw - 20px); }
body.vvt-lg-lite :is(#loginform) { -webkit-backdrop-filter: none; backdrop-filter: none; background: var(--vlg-form-solid); }
body.vvt-lg-lite .vvt-lg-head { margin-bottom: 8px; }

/* ── Téléphone ── */
@media (max-width: 767px) {
  .vvt-lg-m-hide .vvt-lg-stage { display: none; }
  .vvt-lg-m-small .vvt-lg-stage, .vvt-lg-m-small.vvt-lg-art-left .vvt-lg-stage, .vvt-lg-m-small.vvt-lg-art-right .vvt-lg-stage { inset: 0 !important; opacity: .55; }
  .vvt-lg-m-small .vvt-lg-stage .hero-art { --vv-zoom: .55 !important; justify-content: center !important; padding: 0 !important; }
  body.vvt-lg.vvt-lg-art-above #login { padding-top: 7vh; }
  body.vvt-lg.vvt-lg-m-full #login { width: auto; max-width: none; margin: 0 16px !important; padding-top: 5vh; }
  .vvt-lg-video { display: none; }
}

@media (max-width: 767px) {
  .vvt-lg-art-cover .vvt-lg-stage .hero-art-img { object-position: var(--vlg-art-mpos, 50% 50%); }
  .vvt-lg-art-cover .vvt-lg-stage :is(.hero-art-fx, .hero-art-spot) { -webkit-mask-position: var(--vlg-art-mpos, 50% 50%); mask-position: var(--vlg-art-mpos, 50% 50%); }
  .vvt-lg-art-cover .vvt-lg-stage .hero-art-wrap::before, .vvt-lg-art-cover .vvt-lg-stage .hero-art-wrap::after { -webkit-mask-position: var(--vlg-art-mpos, 50% 50%); mask-position: var(--vlg-art-mpos, 50% 50%); }
  .vvt-lg-art-cover.vvt-lg-m-small .vvt-lg-stage { opacity: 1; }
  .vvt-lg-art-cover.vvt-lg-m-small .vvt-lg-stage .hero-art { --vv-zoom: 1 !important; }
}

/* ── Moins d'animations ── */
@media (prefers-reduced-motion: reduce) {
  body.vvt-lg, body.vvt-lg * { animation: none !important; transition: none !important; }
  .vvt-lg-video { display: none; }
  .vvt-lg-slide { opacity: 0 !important; }
  .vvt-lg-slide:first-child { opacity: 1 !important; }
}
