/* ==========================================================================
   Innova School — Page de connexion /espace-ecole (index.html)
   Design cible : header 3 zones, marque / connexion / promo Super-Prof,
   partenaires, footer. Charte Bleu nuit #010230 + Orange #ef6e06.
   ========================================================================== */

:root{
  --navy:#0a1a5c; --navy-d:#071243; --navy2:#12246e; --accent:#ef6e06; --accent2:#ff8a2b;
  --navy-ink:#c9d2f2; --bg:#f3f5fb; --card:#ffffff; --card2:#f6f8fc; --fg:#101a3a; --mut:#5c6480;
  --line:#e5e9f4; --ok:#12a150; --danger:#e5484d; --warn:#f5a524;
  --r:18px; --r-sm:14px;
  --shadow:0 26px 54px -30px rgba(10,26,92,.5);
  --shadow-sm:0 14px 32px -22px rgba(10,26,92,.55);
  --sans:"Helvetica Neue",Helvetica,Arial,sans-serif;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  min-height:100vh;display:flex;flex-direction:column;
  font-family:var(--sans);color:var(--fg);
  background:
    radial-gradient(680px 360px at 4% 12%,rgba(10,26,92,.05),transparent 60%),
    radial-gradient(680px 360px at 98% 8%,rgba(239,110,6,.06),transparent 60%),
    var(--bg);
  -webkit-font-smoothing:antialiased;line-height:1.5;
}
img{max-width:100%}
a{color:inherit;text-decoration:none}

/* -------------------------------------------------- header */
.header-top{background:linear-gradient(120deg,var(--navy-d),var(--navy2));position:sticky;top:0;z-index:1000;box-shadow:0 12px 30px -20px rgba(0,0,0,.8)}
.header-top .container-fluid{display:flex;align-items:center;gap:20px;max-width:1440px;margin:0 auto;padding:12px 26px}
.logo-innova{flex:none;display:flex;flex-direction:column;gap:2px}
.logo-innova img{height:38px;width:auto}
.brand-sub{font-size:11px;color:var(--navy-ink);letter-spacing:.02em}
.flash-info-container{flex:1;min-width:0;display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:6px 14px 6px 8px;overflow:hidden}
.flash-label{flex:none;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;font-weight:800;font-style:italic;font-size:12.5px;border-radius:8px;padding:6px 12px;white-space:nowrap;box-shadow:0 8px 16px -8px var(--accent)}
.flash-content{white-space:nowrap;color:#eef1fb;font-size:13px;overflow:hidden;text-overflow:ellipsis}
.header-welcome{flex:none;display:flex;align-items:center;gap:11px;color:#eef1fb;font-size:12.5px;font-weight:600;line-height:1.35}
.header-welcome i{font-size:20px;color:var(--accent2)}

/* -------------------------------------------------- main */
.main-section{flex:1;padding:26px 0 30px}
.main-section .container-fluid{max-width:1440px;margin:0 auto;padding:0 26px}
.login-grid{display:grid;grid-template-columns:0.9fr 1.1fr 1fr;grid-template-areas:"brand login gallery" "info info gallery";gap:26px;align-items:start}
.brand-col{grid-area:brand}
.connexion-section{grid-area:login}
.Info-section{grid-area:info}
.superprof-col{grid-area:gallery;align-self:stretch}

/* -------------------------------------------------- colonne marque */
.brand-col{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;padding:10px}
.logo-section img{width:100%;max-width:320px;height:30vh;object-fit:contain;margin-top: 25px;}
.brand-divider{width:64px;height:4px;border-radius:3px;background:linear-gradient(90deg,var(--accent),var(--accent2))}
.brand-tag{margin:0;color:var(--mut);font-size:15px;font-weight:600;max-width:280px}

/* -------------------------------------------------- colonne connexion */
.connexion-section{display:flex;flex-direction:column;align-items:center;gap:16px}
.connexion-box{width:100%;max-width:460px;background:var(--card);border:1px solid var(--line);border-radius:22px;padding:32px 30px 30px;box-shadow:var(--shadow);text-align:center}
.login-mark{display:inline-grid;place-items:center;width:56px;height:56px;border-radius:50%;background:#eef1ff;color:var(--navy);font-size:22px;margin-bottom:12px}
.connexion-title{margin:0;color:var(--navy);font-size:22px;font-weight:800;letter-spacing:-.01em;line-height:1.15}
.connexion-title span{color:var(--accent)}
.title-underline{display:block;width:54px;height:4px;border-radius:3px;background:linear-gradient(90deg,var(--accent),var(--accent2));margin:12px auto 22px}
.form-vertical{display:flex;flex-direction:column;gap:16px;text-align:left}

.main_input_box{position:relative}
.main_input_box .field-ico{position:absolute;left:16px;top:28px;transform:translateY(-50%);color:var(--navy);font-size:15px;z-index:2;opacity:.75}
.connexion-box input[type="text"],
.connexion-box input[type="password"]{
  width:100%;height:56px;border:1.5px solid var(--line);border-radius:14px;background:var(--card2);
  padding:0 46px;font-family:inherit;font-size:15px;color:var(--fg);outline:none;
  transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;
}
.connexion-box input::placeholder{color:#9aa2bd}
.connexion-box input:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 4px rgba(239,110,6,.14)}
.pw-eye{position:absolute;right:16px;top:28px;transform:translateY(-50%);color:var(--mut);cursor:pointer;font-size:15px;z-index:2}
.pw-eye:hover{color:var(--navy)}
#blocNewPass{margin-top:16px}
#blocNewPass:empty{margin-top:0}

.connexion-box .badge{position:absolute;right:44px;top:28px;transform:translateY(-50%);width:24px;height:24px;padding:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;z-index:2}
.connexion-box .badge.bg-danger{background:var(--danger)!important}
.connexion-box .badge.bg-warning{background:var(--warn)!important;color:#3a2a00!important}
.connexion-box .badge.bg-success{background:var(--ok)!important;width:auto;padding:0 8px;border-radius:12px}

.form-options{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px}
.remember{display:inline-flex;align-items:center;gap:8px;color:var(--mut);cursor:pointer;margin:0}
.remember input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}
.forgot{color:var(--accent);font-weight:600}
.forgot:hover{text-decoration:underline}

.text-center{text-align:center}
.connexion-box button{
  width:100%;height:54px;border:0;border-radius:14px;cursor:pointer;margin-top:2px;
  background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;
  font-family:inherit;font-size:16px;font-weight:700;
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  box-shadow:0 18px 34px -16px rgba(10,26,92,.8);transition:transform .14s ease,box-shadow .14s ease,filter .14s ease;
}
.connexion-box button:hover{transform:translateY(-2px);filter:brightness(1.08)}
.connexion-box button:active{transform:translateY(0)}

.secure-line{display:flex;align-items:center;justify-content:center;gap:10px;color:var(--mut);font-size:12.5px;font-weight:600;width:100%;max-width:460px}
.secure-line i{color:var(--accent)}
.secure-line span{flex:1;height:1px;background:var(--line)}

/* -------------------------------------------------- colonne galerie (carrousel) */
.superprof-col{display:flex}
.videos-section{width:100%;height:100%;min-height:460px;border-radius:22px;overflow:hidden;border:1px solid var(--line);background:#05061c;box-shadow:var(--shadow)}
.videos-carousel{position:relative;height:100%}
.videos-carousel .carousel-inner,.videos-carousel .carousel-item{height:100%}
.videos-carousel .carousel-item img{width:100%;height:100%;object-fit:contain;display:block}
.videos-carousel .carousel-indicators{margin-bottom:14px}
.videos-carousel .carousel-indicators [data-bs-target]{width:9px;height:9px;border-radius:50%;border:0;background:rgba(255,255,255,.55);opacity:1;transition:.2s}
.videos-carousel .carousel-indicators .active{background:var(--accent);width:22px;border-radius:5px}
.videos-carousel .carousel-control-prev,.videos-carousel .carousel-control-next{width:12%;opacity:0;transition:opacity .2s}
.videos-carousel:hover .carousel-control-prev,.videos-carousel:hover .carousel-control-next{opacity:1}
.videos-carousel .carousel-control-prev-icon,.videos-carousel .carousel-control-next-icon{width:38px;height:38px;border-radius:50%;background-color:rgba(1,2,48,.55);background-size:16px;border:1px solid rgba(255,255,255,.3)}

/* -------------------------------------------------- etablissements partenaires */
.Info-section{margin-top:0;background:var(--card);border:1px solid var(--line);border-radius:20px;padding:20px 18px;box-shadow:var(--shadow-sm)}
.Info-title{display:flex;align-items:center;justify-content:center;gap:14px;font-size:16px;font-weight:800;letter-spacing:.04em;color:var(--navy);margin-bottom:16px}
.Info-title span{width:60px;height:3px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--accent))}
.Info-title span:last-child{background:linear-gradient(90deg,var(--accent),transparent)}
.Info-container{position:relative;overflow:visible;min-height:96px}
.vertical-carousel{height:100%;position:relative;overflow:visible}
.vertical-carousel .carousel-inner,.vertical-carousel .carousel-item{height:100%;overflow:visible}
.vertical-carousel .carousel-item{transition:none}
.vertical-carousel .carousel-item-next,.vertical-carousel .carousel-item-prev{position:absolute;top:0;width:100%}
.vertical-carousel .carousel-item-next{transform:translateY(100%)}
.vertical-carousel .carousel-item-prev{transform:translateY(-100%)}
.vertical-carousel .carousel-item-next.carousel-item-start,
.vertical-carousel .carousel-item-prev.carousel-item-start,
.vertical-carousel .active.carousel-item-start,
.vertical-carousel .active.carousel-item-end{transition:transform 1s ease-in-out}
.vertical-carousel .carousel-item-next.carousel-item-start,
.vertical-carousel .carousel-item-prev.carousel-item-start{transform:translateY(0)}
.vertical-carousel .active.carousel-item-end{transform:translateY(-100%)}
.vertical-carousel .active.carousel-item-start{transform:translateY(100%)}
.image-row{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:16px;padding:4px 6px}
.image-wrapper{position:relative;display:inline-block}
.image-row img{width:76px;height:76px;object-fit:contain;border-radius:14px;background:#fff;padding:9px;border:1px solid var(--line);box-shadow:0 10px 22px -14px rgba(10,26,92,.5);cursor:pointer;transition:transform .15s ease,border-color .15s ease}
.image-row img:hover{transform:translateY(-4px);border-color:var(--accent)}
.image-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);background:var(--navy);color:#fff;font-size:11px;font-weight:600;white-space:nowrap;padding:5px 9px;border-radius:8px;opacity:0;visibility:hidden;transition:.15s;z-index:5;box-shadow:0 10px 24px -12px rgba(0,0,0,.6);pointer-events:none}
.image-tooltip::after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:5px solid transparent;border-top-color:var(--navy)}
.image-wrapper:hover .image-tooltip{opacity:1;visibility:visible}

/* -------------------------------------------------- footer */
.site-footer{background:linear-gradient(120deg,var(--navy-d),var(--navy2));color:#dfe4f5}
.foot-in{max-width:1440px;margin:0 auto;padding:14px 26px;display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:13px;flex-wrap:wrap}
.foot-left i{color:var(--accent2);margin-right:6px}
.foot-right{display:inline-flex;align-items:center;gap:8px}
.foot-right span{opacity:.85}
.foot-right i{color:var(--accent2)}

/* -------------------------------------------------- responsive */
@media (max-width:1180px){
  .login-grid{grid-template-columns:1fr 1fr;grid-template-areas:"brand login" "gallery gallery" "info info";gap:20px}
  .superprof-col{align-self:auto}
  .videos-section{height:420px;min-height:0}
}
@media (max-width:820px){
  .login-grid{grid-template-columns:1fr;grid-template-areas:"login" "brand" "gallery" "info"}
  .videos-section{height:360px;min-height:0}
  .header-welcome{display:none}
  .header-top .container-fluid{flex-wrap:wrap;gap:12px}
  .flash-info-container{order:2;width:100%}
}
@media (max-width:520px){
  .main-section .container-fluid{padding:0 14px}
  .connexion-box{padding:24px 18px}
  .sp-visual{flex-direction:column}
  .sp-teacher{margin:0}
  .foot-in{flex-direction:column;text-align:center}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
