/* Connexion : une vraie page d'accueil produit, lisible et adaptée au mobile. */
body.sg7.is-login {
  min-height: 100vh;
  min-height: 100dvh;
  color: #152744;
  background: linear-gradient(110deg, rgba(8,18,38,.34), rgba(8,18,38,.12) 58%, rgba(8,18,38,.24)), url("/assets/sg7-login-background-night.jpg?v=1") center / cover fixed no-repeat !important;
}
body.sg7.is-login .sg7-login {
  display: grid !important;
  grid-template-columns: minmax(0, 1.12fr) minmax(390px, .88fr);
  align-items: stretch;
  gap: clamp(24px, 4vw, 64px);
  width: min(1480px, 100%);
  min-height: 100vh;
  min-height: 100dvh;
  margin: 0 auto;
  padding: clamp(18px, 3vw, 42px);
  background: transparent !important;
}
body.sg7.is-login .sg7-login-wave,
body.sg7.is-login .sg7-login-illustration { display: none !important; }
body.sg7.is-login .sg7-hero {
  position: relative !important;
  isolation: isolate;
  display: flex !important;
  flex-direction: column;
  justify-content: space-between;
  min-width: 0;
  min-height: calc(100dvh - clamp(36px, 6vw, 84px));
  padding: clamp(32px, 4.5vw, 68px);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .15);
  border-radius: 28px;
  background: linear-gradient(145deg, rgba(9,31,64,.76), rgba(17,72,131,.58)) !important; backdrop-filter: blur(2px);
  box-shadow: 0 24px 64px rgba(16, 47, 87, .19);
  color: #fff;
}
body.sg7.is-login .sg7-hero::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  background: radial-gradient(circle at 82% 78%, rgba(81, 153, 255, .28), transparent 34%), linear-gradient(135deg, rgba(255,255,255,.025), transparent 55%);
  content: "";
}
body.sg7.is-login .sg7-hero-glow { display: none !important; }
body.sg7.is-login .sg7-hero-stripes {
  position: absolute;
  z-index: -1;
  inset: 0;
  opacity: .14;
  background-image: radial-gradient(rgba(255,255,255,.6) .7px, transparent .7px);
  background-size: 19px 19px;
  mask-image: linear-gradient(135deg, transparent 28%, #000 100%);
}
body.sg7.is-login .sg7-hero-brand,
body.sg7.is-login .sg7-hero-copy,
body.sg7.is-login .sg7-hero-services,
body.sg7.is-login .sg7-hero-footer { position: relative; z-index: 2; }
body.sg7.is-login .sg7-hero-brand { margin: 0 !important; }
body.sg7.is-login .sg7-hero-brand img {
  width: 48px !important;
  height: 48px !important;
  padding: 5px;
  border: 1px solid rgba(255,255,255,.42);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 8px 20px rgba(0,0,0,.12);
}
body.sg7.is-login .sg7-hero-brand b { color: #fff !important; font-size: 19px; }
body.sg7.is-login .sg7-hero-brand small { color: #c5d8f2 !important; }
body.sg7.is-login .sg7-hero-copy { width: min(650px, 100%); margin: auto 0; padding: 56px 0 42px; }
body.sg7.is-login .sg7-hero-copy h1 {
  max-width: 640px;
  margin: 0 0 18px;
  color: #fff;
  font-size: clamp(34px, 4.1vw, 58px);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -1.8px;
  text-transform: none;
}
body.sg7.is-login .sg7-hero-copy p { max-width: 470px; color: #c5d7ef; font-size: 16px; line-height: 1.7; }
body.sg7.is-login .sg7-selling-points {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  max-width: 660px;
  margin-top: 26px;
}
body.sg7.is-login .sg7-selling-points > div {
  min-height: 66px;
  padding: 12px;
  border: 1px solid rgba(221, 237, 255, .13);
  border-radius: 14px;
  background: rgba(255,255,255,.065);
  backdrop-filter: blur(8px);
}
body.sg7.is-login .sg7-feature-icon { color: #9dc8ff !important; }
body.sg7.is-login .sg7-selling-points b { color: #f4f8ff; font-size: 12px; }
body.sg7.is-login .sg7-selling-points small { color: #b4c9e4; font-size: 10px; }
body.sg7.is-login .sg7-server-art {
  position: absolute !important;
  z-index: 1;
  right: -4%;
  bottom: 14%;
  display: block !important;
  width: clamp(170px, 22vw, 310px);
  opacity: .19;
  pointer-events: none;
}
body.sg7.is-login .sg7-server-art img { display: block; width: 100%; height: auto; }
body.sg7.is-login .sg7-hero-services {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  padding-top: 20px;
  border-top: 1px solid rgba(220, 237, 255, .2);
}
body.sg7.is-login .sg7-hero-services > div { display: grid; grid-template-columns: 34px 1fr; align-items: center; column-gap: 9px; }
body.sg7.is-login .sg7-stat-icon { grid-row: span 2; color: #a9ceff; }
body.sg7.is-login .sg7-hero-services b { color: #f2f7ff; font-size: 11px; }
body.sg7.is-login .sg7-hero-services small { color: #afc4e0; font-size: 9px; line-height: 1.4; }
body.sg7.is-login .sg7-hero-footer {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 17px;
  color: #d7e5f7;
  font-size: 11px;
}
body.sg7.is-login .sg7-hero-footer img { width: 27px; height: 27px; border-radius: 8px; background: #fff; }
body.sg7.is-login .sg7-hero-footer small { display: block; margin-top: 2px; color: #a9bfdc; font-size: 9px; }
body.sg7.is-login .sg7-login-right {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-width: 0;
  min-height: 100%;
  margin: 0 !important;
  padding: 58px 12px 42px !important;
  background: transparent !important;
}
body.sg7.is-login .sg7-login-tools { position: absolute !important; top: 10px !important; right: 12px !important; z-index: 4; display: flex; gap: 10px; }
body.sg7.is-login .sg7-circle-btn,
body.sg7.is-login .sg7-language {
  height: 40px !important;
  border: 1px solid #dce5ef !important;
  border-radius: 12px !important;
  background: rgba(255,255,255,.82) !important;
  box-shadow: 0 3px 10px rgba(30,55,85,.045) !important;
  color: #52657e !important;
}
body.sg7.is-login .sg7-language { display: flex; align-items: center; gap: 7px; padding: 0 12px !important; font-size: 11px !important; }
body.sg7.is-login .sg7-login-card {
  flex: 0 1 460px !important;
  width: min(460px, 100%) !important;
  max-width: 460px !important;
  min-height: 0 !important;
  margin: auto 0 !important;
  padding: clamp(30px, 4vw, 48px) !important;
  border: 1px solid #e2e9f1 !important;
  border-radius: 24px !important;
  border-top: 1px solid #e2e9f1 !important;
  background: rgba(255,255,255,.96) !important;
  box-shadow: 0 22px 60px rgba(25,51,82,.11), 0 2px 6px rgba(25,51,82,.035) !important;
  backdrop-filter: blur(14px) !important;
}
body.sg7.is-login .sg7-login-card-brand { display: flex; flex-direction: column; align-items: center; margin: 0 0 10px !important; }
body.sg7.is-login .sg7-login-card-brand img { width: 60px !important; height: 60px !important; margin-bottom: 10px; border-radius: 17px; }
body.sg7.is-login .sg7-login-card-brand b { color: #162b47 !important; font-size: 23px !important; letter-spacing: -.65px !important; }
body.sg7.is-login .sg7-login-card-brand strong { margin-top: 1px !important; color: #6e7e92 !important; font-size: 12px !important; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
body.sg7.is-login .sg7-login-intro { margin: 15px 0 27px !important; text-align: center; }
body.sg7.is-login .sg7-login-intro h2 { color: #607086 !important; font-size: 14px !important; font-weight: 500 !important; line-height: 1.55; }
body.sg7.is-login .sg7-login-card > .sg7-field-label { margin: 0 0 7px !important; color: #35465c !important; font-size: 12px !important; font-weight: 650; }
body.sg7.is-login .sg7-input-group {
  height: 52px !important;
  gap: 11px !important;
  padding: 0 14px !important;
  border: 1px solid #d9e2ed !important;
  border-radius: 12px !important;
  background: #fbfcfe !important;
  box-shadow: none !important;
  transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
body.sg7.is-login .sg7-input-group:focus-within { border-color: #6c9fde !important; background: #fff !important; box-shadow: 0 0 0 4px rgba(39,112,204,.11) !important; }
body.sg7.is-login .sg7-input-group > .sg7-icon { color: #71839a; }
body.sg7.is-login .sg7-input-group input { color: #1b2e47 !important; font-size: 14px !important; }
body.sg7.is-login .sg7-input-label-row { margin-top: 19px !important; }
body.sg7.is-login .sg7-input-label-row a { color: #2469b9; font-size: 11px; font-weight: 600; }
body.sg7.is-login .sg7-remember { margin-top: 17px !important; }
body.sg7.is-login .sg7-remember input { accent-color: #1769d2; }
body.sg7.is-login .sg7-login-submit {
  min-height: 52px !important;
  margin-top: 22px !important;
  border: 0 !important;
  border-radius: 12px !important;
  background: linear-gradient(110deg, #1f75d7, #145dbb) !important;
  box-shadow: 0 8px 18px rgba(24,100,193,.2) !important;
  font-size: 14px !important;
  font-weight: 700;
  transition: transform .16s ease, box-shadow .16s ease, filter .16s ease;
}
body.sg7.is-login .sg7-login-submit:hover { transform: translateY(-1px) !important; box-shadow: 0 11px 22px rgba(24,100,193,.25) !important; filter: brightness(1.03); }
body.sg7.is-login .sg7-login-shorcuts { gap: 9px !important; }
body.sg7.is-login .sg7-login-shorcuts > * { min-height: 46px !important; border-color: #e1e8f0 !important; border-radius: 11px !important; color: #50627a !important; }
body.sg7.is-login .sg7-login-shorcuts .sg7-icon { color: #2469b9 !important; }
body.sg7.is-login .sg7-login-separator { color: #8794a5; }
body.sg7.is-login .sg7-login-foot { position: absolute !important; right: 8px !important; bottom: 7px !important; left: 8px !important; color: #8190a1 !important; font-size: 10px !important; text-align: center; }
body.sg7.is-login :is(button, a, input):focus-visible { outline: 3px solid rgba(39,112,204,.28); outline-offset: 3px; }

body.sg7.dark.is-login {
  background: linear-gradient(rgba(2,9,21,.5),rgba(2,9,21,.55)), url("/assets/sg7-login-background-night.jpg?v=1") center / cover fixed no-repeat !important;
}
body.sg7.dark.is-login .sg7-login-card { border-color: #2a405d !important; background: rgba(18,35,58,.97) !important; }
body.sg7.dark.is-login .sg7-login-card-brand b,
body.sg7.dark.is-login .sg7-field-label { color: #e5eef9 !important; }
body.sg7.dark.is-login .sg7-login-card-brand strong,
body.sg7.dark.is-login .sg7-login-intro h2,
body.sg7.dark.is-login .sg7-remember small { color: #a9bdd5 !important; }
body.sg7.dark.is-login .sg7-input-group { border-color: #334a68 !important; background: #142a45 !important; }
body.sg7.dark.is-login .sg7-input-group input { color: #f1f6fc !important; }
body.sg7.dark.is-login .sg7-circle-btn,
body.sg7.dark.is-login .sg7-language { border-color: #304663 !important; background: #162b46 !important; color: #cad8e9 !important; }
body.sg7.dark.is-login .sg7-login-shorcuts > * { border-color: #304663 !important; background: #162b46 !important; color: #cad8e9 !important; }
body.sg7.dark.is-login .sg7-login-foot { color: #9aadc4 !important; }

@media (max-width: 800px) {
  body.sg7.is-login .sg7-login {
    display: flex !important;
    justify-content: center;
    min-height: 100dvh;
    padding: 72px 16px 42px;
  }
  body.sg7.is-login .sg7-hero { display: none !important; }
  body.sg7.is-login .sg7-login-right { width: min(500px,100%) !important; min-height: calc(100dvh - 114px); padding: 22px 0 28px !important; }
  body.sg7.is-login .sg7-login-tools { top: -54px !important; right: 0 !important; }
  body.sg7.is-login .sg7-login-card { flex-basis: auto !important; width: 100% !important; padding: 30px 26px !important; }
  body.sg7.is-login .sg7-login-foot { bottom: -28px !important; }
}
@media (max-width: 420px) {
  body.sg7.is-login .sg7-login { padding-right: 12px; padding-left: 12px; }
  body.sg7.is-login .sg7-login-card { padding: 26px 20px !important; border-radius: 20px !important; }
  body.sg7.is-login .sg7-login-shorcuts > * { font-size: 10px !important; }
}
@media (max-height: 760px) and (min-width: 801px) {
  body.sg7.is-login .sg7-login { padding-top: 18px; padding-bottom: 18px; }
  body.sg7.is-login .sg7-hero { min-height: calc(100dvh - 36px); padding-top: 28px; padding-bottom: 26px; }
  body.sg7.is-login .sg7-hero-copy { padding: 28px 0; }
  body.sg7.is-login .sg7-selling-points { margin-top: 18px; }
  body.sg7.is-login .sg7-login-card { padding-top: 26px !important; padding-bottom: 24px !important; }
}
body.sg7.is-login .sg7-server-art { display: none !important; }
@media (max-width: 800px) {
  body.sg7.is-login, body.sg7.dark.is-login { background-position: 30% center !important; background-attachment: scroll !important; }
}

/* Keep the new photo visible and the introductory copy readable over it. */
html body.sg7.is-login {
  background: linear-gradient(110deg, rgba(7,18,38,.28), rgba(7,18,38,.10) 58%, rgba(7,18,38,.22)), url("/assets/sg7-login-background-night.jpg?v=1") center / cover fixed no-repeat !important;
}
html body.sg7.is-login .sg7-login {
  display: grid !important;
  background: linear-gradient(110deg, rgba(7,18,38,.12), rgba(7,18,38,.03) 58%, rgba(7,18,38,.12)), url("/assets/sg7-login-background-night.jpg?v=1") center / cover fixed no-repeat !important;
}
html body.sg7.is-login .sg7-hero {
  display: flex !important;
  border-radius: 28px !important;
  background: linear-gradient(145deg, rgba(8,30,62,.72), rgba(13,60,113,.54)) !important;
  backdrop-filter: blur(2px);
  color: #fff !important;
}
html body.sg7.is-login .sg7-hero-copy { display: block !important; visibility: visible !important; }
html body.sg7.is-login .sg7-hero-brand { display: flex !important; visibility: visible !important; }
html body.sg7.is-login .sg7-hero-services { display: grid !important; visibility: visible !important; }
html body.sg7.is-login .sg7-hero-footer { display: flex !important; visibility: visible !important; }
html body.sg7.is-login .sg7-hero-copy h1 { color: #fff !important; text-transform: none !important; }
html body.sg7.is-login .sg7-hero-copy p { color: #d6e5f8 !important; }
html body.sg7.is-login .sg7-hero-brand b,
html body.sg7.is-login .sg7-hero-services b { color: #fff !important; }
html body.sg7.is-login .sg7-hero-brand small,
html body.sg7.is-login .sg7-hero-services small { color: #d0def0 !important; }
html body.sg7.is-login .sg7-server-art { display: none !important; }
html body.sg7.is-login .sg7-login-card { border-top: 1px solid #e2e9f1 !important; }
@media (max-width: 800px) {
  html body.sg7.is-login, html body.sg7.is-login .sg7-login {
    background-position: 30% center !important;
    background-attachment: scroll !important;
  }
}
/* Override the old full-screen positioning rules from ui.css. */
html body.sg7.is-login .sg7-login {
  position: relative !important;
  overflow: visible !important;
}
html body.sg7.is-login .sg7-hero {
  position: relative !important;
  width: auto !important;
  height: auto !important;
  min-height: calc(100dvh - clamp(36px, 6vw, 84px)) !important;
  padding: clamp(32px, 4.5vw, 68px) !important;
  overflow: hidden !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  border-radius: 28px !important;
}
html body.sg7.is-login .sg7-hero-copy {
  position: relative !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  width: min(650px,100%) !important;
  max-width: none !important;
  margin: auto 0 !important;
  padding: 34px 0 28px !important;
  transform: none !important;
}
html body.sg7.is-login .sg7-hero-copy h1 {
  display: block !important;
  margin: 0 0 16px !important;
  color: #fff !important;
  font-size: clamp(34px,3.3vw,50px) !important;
  font-weight: 700 !important;
  line-height: 1.1 !important;
  letter-spacing: -1.3px !important;
}
html body.sg7.is-login .sg7-hero-copy > p {
  display: block !important;
  max-width: 470px !important;
  margin: 0 0 22px !important;
  color: #d6e5f8 !important;
  font-size: 15px !important;
  line-height: 1.65 !important;
}
html body.sg7.is-login .sg7-selling-points {
  display: grid !important;
  grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  gap: 10px !important;
  max-width: 660px !important;
  margin: 18px 0 0 !important;
}
html body.sg7.is-login .sg7-selling-points > div {
  display: flex !important;
  min-width: 0;
  min-height: 64px;
  align-items: center;
  gap: 11px;
  padding: 10px;
  border: 1px solid rgba(221,237,255,.15);
  border-radius: 12px;
  background: rgba(255,255,255,.075);
}
html body.sg7.is-login .sg7-selling-points b { color: #f4f8ff !important; font-size: 11px !important; }
html body.sg7.is-login .sg7-selling-points small { color: #c2d5ed !important; font-size: 9px !important; }
html body.sg7.is-login .sg7-hero-services {
  position: relative !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  display: grid !important;
  grid-template-columns: repeat(3,minmax(0,1fr)) !important;
  width: 100% !important;
  min-height: 0 !important;
  margin: 12px 0 0 !important;
  padding: 12px 8px !important;
  border: 1px solid rgba(221,237,255,.16) !important;
  border-radius: 13px !important;
  background: rgba(255,255,255,.09) !important;
  box-shadow: none !important;
}
html body.sg7.is-login .sg7-hero-services > div,
html body.sg7.is-login .sg7-hero-services > div:last-child {
  display: grid !important;
  grid-template-columns: 30px minmax(0,1fr);
  align-items: center;
  gap: 2px 6px;
  padding: 2px 8px;
  border-right: 1px solid rgba(221,237,255,.16);
  text-align: left;
}
html body.sg7.is-login .sg7-hero-services > div:last-child { border-right: 0; }
html body.sg7.is-login .sg7-stat-icon { grid-row: span 2; color: #b4d3ff !important; }
html body.sg7.is-login .sg7-hero-services b { color: #f3f7ff !important; font-size: 10px !important; }
html body.sg7.is-login .sg7-hero-services small { color: #c2d5ed !important; font-size: 8px !important; line-height: 1.35; }
html body.sg7.is-login .sg7-hero-footer { display: flex !important; position: relative !important; margin: 14px 0 0 !important; color: #d6e5f8 !important; }

@media (max-width: 800px) {
  html body.sg7.is-login .sg7-login {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    min-height: 100dvh !important;
    padding: 72px 16px 42px !important;
    overflow: visible !important;
  }
  html body.sg7.is-login .sg7-hero { display: none !important; }
  html body.sg7.is-login .sg7-login-right { width: min(500px,100%) !important; min-height: calc(100dvh - 114px) !important; }
}
/* Let the full login form grow naturally so the captcha and footer stay inside the card. */
html body.sg7.is-login .sg7-login-right {
  height: auto !important;
  min-height: 100dvh !important;
  padding-top: 64px !important;
  padding-bottom: 52px !important;
  overflow: visible !important;
}
html body.sg7.is-login .sg7-login-card {
  flex: 0 0 auto !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 !important;
  overflow: visible !important;
}
@media (max-width: 800px) {
  html body.sg7.is-login .sg7-login-right {
    min-height: auto !important;
    padding-top: 22px !important;
    padding-bottom: 36px !important;
  }
}
/* Desktop login remains inside the viewport without page scrolling. */
@media (min-width: 801px) {
  body.sg7.is-login {
    position: fixed !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100dvh !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }
  body.sg7.is-login .sg7-login {
    width: min(1480px,100%) !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: 100% !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }
  body.sg7.is-login .sg7-hero {
    height: 100% !important;
    min-height: 0 !important;
    max-height: 100% !important;
    box-sizing: border-box !important;
  }
  body.sg7.is-login .sg7-login-right {
    height: 100% !important;
    min-height: 0 !important;
    box-sizing: border-box !important;
    padding: 36px 12px 24px !important;
    overflow: hidden !important;
  }
}
@media (min-width: 801px) and (max-height: 1000px) {
  body.sg7.is-login .sg7-login { padding: 16px 24px !important; }
  body.sg7.is-login .sg7-hero { padding: 28px 34px !important; }
  body.sg7.is-login .sg7-hero-copy { padding: 14px 0 !important; }
  body.sg7.is-login .sg7-hero-copy h1 { font-size: clamp(30px,2.8vw,42px) !important; }
  body.sg7.is-login .sg7-selling-points { gap: 7px !important; margin-top: 12px !important; }
  body.sg7.is-login .sg7-selling-points > div { min-height: 54px !important; padding: 7px !important; }
  body.sg7.is-login .sg7-hero-services { margin-top: 8px !important; padding: 8px 6px !important; }
  body.sg7.is-login .sg7-hero-footer { margin-top: 8px !important; }
  body.sg7.is-login .sg7-login-right { padding: 22px 12px 18px !important; }
  body.sg7.is-login .sg7-login-card { padding: 24px 30px !important; }
  body.sg7.is-login .sg7-login-card-brand img { width: 52px !important; height: 52px !important; margin-bottom: 5px; }
  body.sg7.is-login .sg7-login-card-brand b { font-size: 21px !important; }
  body.sg7.is-login .sg7-login-intro { margin: 8px 0 15px !important; }
  body.sg7.is-login .sg7-input-group { height: 46px !important; }
  body.sg7.is-login .sg7-input-label-row { margin-top: 13px !important; }
  body.sg7.is-login .sg7-remember { margin-top: 11px !important; }
  body.sg7.is-login .sg7-login-submit { min-height: 46px !important; margin-top: 14px !important; }
  body.sg7.is-login .sg7-recaptcha-wrap { margin: 9px auto 0 !important; }
  body.sg7.is-login .sg7-login-separator { margin: 10px 0 8px !important; }
  body.sg7.is-login .sg7-login-shorcuts > * { min-height: 40px !important; }
}