*{box-sizing:border-box}
html,body{margin:0;width:100%;min-height:100%;background:#080b12;font-family:'Barlow Condensed',Inter,Arial,sans-serif;color:#fff}
body{overflow-x:hidden}
a,button,input,select{font:inherit}
button{cursor:pointer}

.page{--header-height:75px;--content-width:min(75vw,1160px);position:relative;width:100%;min-height:100svh;overflow:hidden;background:#080b12;display:flex;flex-direction:column}
.page-bg{position:absolute;left:0;right:0;top:var(--header-height)!important;bottom:0;width:100%;height:calc(100% - var(--header-height));object-fit:cover;object-position:center top!important;z-index:0;pointer-events:none;user-select:none;transform:none!important}
.home-bg{object-position:center top!important}
.form-bg{object-position:center top!important}
.page:after{content:"";position:absolute;left:0;right:0;top:var(--header-height);bottom:0;background:linear-gradient(90deg,rgba(8,11,18,.50) 0%,rgba(8,11,18,.14) 48%,rgba(8,11,18,.04) 100%);z-index:1;pointer-events:none}

.header{position:relative;z-index:5;width:100%;height:75px;padding:0 max(24px,calc((100% - var(--content-width))/2));display:flex;align-items:center;justify-content:space-between;gap:24px;background:#080b12;flex:0 0 auto}
.brand{display:block;width:128px;height:61px;overflow:hidden;flex:0 0 128px}
.brand img{width:100%;height:100%;object-fit:contain;display:block}
.nav{display:flex;justify-content:center;align-items:center;gap:clamp(8px,1vw,14px);min-width:0;white-space:nowrap}
.nav a{color:#fff;text-decoration:none;font-size:clamp(15px,1.3vw,20px);font-weight:400;line-height:1.2}
.nav a.active{color:#e31e26}
.login-btn{width:163px;height:40px;border:1px solid #e31e26;border-radius:9px;background:rgba(8,11,18,.35);color:#fff;font-size:16px;display:flex;align-items:center;justify-content:center;gap:8px;padding:0 10px;white-space:nowrap;flex:0 0 auto}
.login-btn img{width:25px;height:22px;object-fit:contain}

.hero{position:relative;z-index:2;width:min(760px,var(--content-width));margin-left:max(24px,calc((100% - var(--content-width))/2));margin-top:clamp(105px,17.8vh,150px);padding-bottom:142px;filter:drop-shadow(0 18px 28px rgba(0,0,0,.78))}
.eyebrow{margin:0 0 12px;font-size:24px;line-height:29px}.hero h1{margin:0 0 22px;font-family:'Teko',Impact,'Arial Black',sans-serif;font-style:normal;text-transform:uppercase;letter-spacing:.02em;font-size:clamp(64px,5.35vw,88px);line-height:.88;font-weight:700}.intro{margin:0 0 14px;font-size:16px;line-height:20px}.home-info{display:flex;align-items:flex-start;gap:clamp(18px,2.4vw,34px);margin-top:12px;flex-wrap:wrap}.info-block{display:flex;align-items:center;gap:15px;min-width:145px}.info-block img{width:36px;height:39px;object-fit:contain}.info-block strong,.summary-row strong{display:block;font-size:15px;line-height:18px;font-weight:400}.info-block span,.summary-row span{display:block;margin-top:5px;font-size:15px;line-height:18px}.cta{width:286px;height:56px;border-radius:7px;background:#e31e26;color:#fff;text-decoration:none;font-size:15px;display:flex;align-items:center;justify-content:center;gap:14px;margin-top:36px}.cta img{width:25px;height:25px}

.footer{position:absolute;left:0;right:0;bottom:0;height:104px;background:rgba(8,11,18,.82);z-index:5;flex:0 0 auto}.footer-line{position:absolute;left:50%;top:47px;width:var(--content-width);height:1px;transform:translateX(-50%);background:rgba(255,255,255,.18)}.footer-content{position:absolute;left:50%;top:43px;width:var(--content-width);height:61px;transform:translateX(-50%);display:flex;align-items:center;justify-content:space-between;gap:24px}.footer-content p{font-size:14px;margin:0;white-space:nowrap}.footer-brand{width:184px;height:61px;position:relative;flex:0 0 184px}.footer-brand img{position:absolute;left:27px;top:18px;width:65px;height:31px;object-fit:contain}.footer-brand span{position:absolute;left:95px;top:23px;font-size:14px;white-space:nowrap}.footer-social{width:234px;height:33px;display:flex;align-items:center;gap:27px;font-size:14px;white-space:nowrap;flex:0 0 234px}.footer-social img{width:33px;height:33px}

.form-panel{position:relative;z-index:2;margin:clamp(54px,13.5vh,99px) auto 128px;width:var(--content-width);max-width:1160px;min-height:470px;border-radius:16px;background:rgba(14,18,28,.8);display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,365px);align-self:center;overflow:hidden}.form-left{position:relative;min-height:470px;padding:23px 22px 32px 31px}.form-title{display:flex;align-items:flex-start;gap:14px}.form-title img{width:51px;height:51px;object-fit:contain}.form-title h1{font-size:20px;line-height:24px;font-weight:400;margin:4px 0 7px}.form-title p{font-size:14px;line-height:17px;margin:0}.grid-form{display:grid;grid-template-columns:repeat(2,minmax(0,464px));column-gap:31px;row-gap:14px;margin-top:22px}.grid-form label{font-size:14px;line-height:17px;text-transform:uppercase}.grid-form input,.grid-form select{display:block;margin-top:7px;width:100%;height:36px;border:1px solid #d9d9d9;border-radius:5px;background:transparent;color:#fff;padding:0 12px;font-size:14px}.grid-form select{appearance:none}.grid-form option{color:#000}.confirm-title{margin:17px 0 9px;font-size:14px;line-height:17px}.check-row{display:flex;align-items:center;gap:9px;font-size:12px;line-height:15px}.check-row input{appearance:none;width:18px;height:18px;border:1px solid #d9d9d9;border-radius:5px;background:transparent;margin:0;flex:0 0 auto}.check-row input:checked{background:#e31e26;box-shadow:inset 0 0 0 4px rgba(14,18,28,.9)}.submit-btn{margin-top:24px;width:min(959px,100%);height:47px;border:0;border-radius:7px;background:#e31e26;color:#fff;font-size:20px;display:flex;align-items:center;justify-content:center;gap:18px}.submit-btn img{width:47px;height:47px;object-fit:contain}.summary{position:relative;min-height:470px;padding:75px 0 0 20px}.summary-row{display:flex;align-items:flex-start;gap:13px;margin-bottom:27px}.summary-row img{width:33px;height:33px;object-fit:contain}.limited{position:absolute;left:0;bottom:32px;width:min(365px,100%);height:106px;border-radius:6px;border:1.5px solid #e31e26;background:rgba(227,30,38,.2);padding:17px 20px}.limited strong{display:block;color:#e31e26;font-size:18px;line-height:22px;font-weight:400;margin-bottom:8px}.limited span{font-size:14px;line-height:17px}

@media (max-width:1200px){
  .page{--content-width:min(88vw,1040px)}
  .header{padding:0 max(20px,calc((100% - var(--content-width))/2));gap:18px}.brand{width:112px;height:54px;flex-basis:112px}.login-btn{width:148px;font-size:14px}.home-info{gap:16px}.form-panel{grid-template-columns:minmax(0,1fr) 300px}.grid-form{grid-template-columns:repeat(2,minmax(220px,1fr));column-gap:24px}.summary{padding-right:18px}.footer-line{width:var(--content-width)}.footer-content{width:var(--content-width)}
}


@media (max-width:1100px) and (min-width:981px){
  .page{--content-width:90vw}
  .hero{width:min(720px,var(--content-width));margin-top:clamp(95px,15vh,130px)}
  .form-panel{grid-template-columns:minmax(0,1fr) 280px}
}

@media (max-width:980px){
  .page{--header-height:124px;--content-width:92vw;min-height:100svh;overflow:visible}.page-bg{position:fixed;top:var(--header-height)!important;height:calc(100svh - var(--header-height))!important;object-position:center top!important}.header{height:auto;min-height:75px;padding:12px max(4vw,calc((100% - var(--content-width))/2));flex-wrap:wrap}.brand{width:104px;height:50px;flex-basis:104px}.nav{order:3;width:100%;justify-content:flex-start;overflow-x:auto;padding:8px 0 2px;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.nav a{font-size:16px}.hero{width:var(--content-width);margin-left:auto;margin-right:auto;margin-top:76px;padding-bottom:120px}.hero h1{font-size:48px}.home-info{flex-wrap:wrap}.form-panel{grid-template-columns:1fr;margin:42px auto 40px;overflow:visible}.summary{min-height:0;padding:18px 31px 146px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px}.limited{left:31px;right:31px;bottom:26px;width:auto}.footer{position:relative;margin-top:auto;height:auto;padding:18px 24px}.footer-line{display:none}.footer-content{position:relative;left:auto;top:auto;transform:none;width:100%;height:auto;display:grid;grid-template-columns:1fr;justify-items:center;gap:14px}.footer-brand{height:40px}.footer-brand img{top:5px}.footer-brand span{top:12px}.footer-social{justify-content:center}
}

@media (max-width:640px){
  .page{--header-height:116px;--content-width:92vw}
  .header{padding:10px max(4vw,calc((100% - var(--content-width))/2));gap:10px}.brand{width:92px;height:44px;flex-basis:92px}.login-btn{width:auto;height:36px;font-size:12px;padding:0 9px}.login-btn img{width:20px;height:18px}.nav{gap:16px}.nav a{font-size:14px}.hero{width:var(--content-width);margin:52px auto 0;padding-bottom:44px}.eyebrow{font-size:18px;line-height:22px}.hero h1{font-size:40px;line-height:1.1}.intro br{display:none}.intro{font-size:14px;line-height:19px}.home-info{display:grid;grid-template-columns:1fr;gap:12px}.info-block{min-width:0}.cta{width:100%;max-width:300px;margin-top:24px}.form-panel{width:var(--content-width);margin:28px auto;border-radius:12px}.form-left{min-height:0;padding:20px 16px 24px}.form-title img{width:42px;height:42px}.form-title h1{font-size:18px}.grid-form{grid-template-columns:1fr;row-gap:13px;margin-top:20px}.submit-btn{font-size:15px;gap:10px}.submit-btn img{width:34px;height:34px}.check-row{align-items:flex-start}.summary{padding:0 16px 148px;grid-template-columns:1fr}.summary-row{margin-bottom:16px}.limited{left:16px;right:16px;bottom:24px;height:auto;min-height:106px}.footer{padding:18px 16px}.footer-content p,.footer-brand span,.footer-social{font-size:12px}.footer-brand{width:170px}.footer-social{width:auto;gap:12px}
}

@media (min-width:981px) and (max-height:760px){
  .page{min-height:760px}.hero{margin-top:105px}.form-panel{margin-top:84px}
}

/* Enrichissement depuis la version Figma Make, sans changer le design principal */
.form-panel{min-height:560px}
.form-left{min-height:560px}
.summary{min-height:560px;padding-top:58px}
.grid-form{row-gap:13px}
.tournament-steps{width:min(365px,100%);border-left:4px solid #e31e26;background:rgba(8,11,18,.52);padding:12px 14px;margin:2px 0 18px;font-size:13px;line-height:16px}
.tournament-steps>strong{display:block;color:#fff;font-size:14px;line-height:17px;font-weight:400;margin-bottom:10px}.tournament-steps span{display:flex;align-items:center;gap:9px;color:#d9d9d9;margin:6px 0}.tournament-steps b{width:22px;height:22px;border-radius:3px;background:#e31e26;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:12px;line-height:1;flex:0 0 auto}.limited{bottom:24px}
@media (max-width:980px){.form-panel,.form-left,.summary{min-height:0}.summary{padding-top:18px}.tournament-steps{grid-column:1/-1;width:100%;margin:0 0 18px}.limited{bottom:26px}}
@media (max-width:640px){.tournament-steps{margin-top:4px}.summary{padding-top:0}.limited{bottom:24px}}

/* Node.js version : largeur stable entre les routes */
html{overflow-y:scroll;scrollbar-gutter:stable}

/* Footer commun : dégradé visible, fond limité à 50% d'opacité */
.footer{background:linear-gradient(180deg,rgba(8,11,18,0) 0%,rgba(8,11,18,.50) 46%,rgba(8,11,18,.50) 100%)!important}


/* Fix commun : mêmes variables de layout pour toutes les pages Node/EJS */
:root{
  --header-height:75px;
  --content-width:min(75vw,1160px);
}
body.inner-page{
  --header-height:75px;
  --content-width:min(75vw,1160px);
}
@media (max-width:1200px){
  :root,body.inner-page{--content-width:min(88vw,1040px)}
}
@media (max-width:1100px) and (min-width:981px){
  :root,body.inner-page{--content-width:90vw}
}
@media (max-width:980px){
  :root,body.inner-page{--header-height:124px;--content-width:92vw}
}
@media (max-width:640px){
  :root,body.inner-page{--header-height:116px;--content-width:92vw}
}

/* Ajustement du bouton connexion/deconnexion : mêmes marges autour du texte + profil */
.header .login-btn{
  width:auto!important;
  min-width:0!important;
  height:auto!important;
  min-height:40px;
  padding:9px 11px!important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  line-height:1.2;
}
.header .logout-form .login-btn{
  border:1px solid #e31e26;
}
@media (max-width:640px){
  .header .login-btn{
    min-height:36px;
    padding:8px 9px!important;
    gap:7px;
  }
}


/* Typographie gaming MHTM
   Titres hero : Teko ExtraBold
   Sous-titres / boutons : Bebas Neue
   Texte normal : Barlow Condensed
   Stats / dates / prix : Oswald
*/
:root{
  --font-hero:'Teko',Impact,'Arial Black',sans-serif;
  --font-action:'Bebas Neue','Arial Narrow',Arial,sans-serif;
  --font-body:'Barlow Condensed',Inter,Arial,sans-serif;
  --font-stats:'Oswald','Arial Narrow',Arial,sans-serif;
}

body,
input,
select,
textarea{
  font-family:var(--font-body);
  letter-spacing:.01em;
}

.nav a,
.login-btn,
.cta,
.submit-btn,
.red-btn,
.outline-btn,
.admin-filter-btn,
.admin-action-btn,
.admin-tabs a,
.status-pill,
.badge,
.game-pill,
.match-status,
button{
  font-family:var(--font-action);
  letter-spacing:.055em;
  text-transform:uppercase;
}

.eyebrow,
.hero h1{
  font-family:var(--font-hero);
  text-transform:uppercase;
}

.eyebrow{
  font-weight:600;
  letter-spacing:.06em;
}

.hero h1{
  font-style:normal;
  letter-spacing:.02em;
  line-height:.88;
}

.info-block strong,
.info-block span,
.summary-row strong,
.summary-row span,
.stat-card strong,
.stat-card span,
.game-meta strong,
.game-meta span,
.rank-card strong,
.admin-kpi strong,
.admin-kpi span,
.live-viewers,
.score,
.price,
.count,
.percentage{
  font-family:var(--font-stats);
  letter-spacing:.025em;
}

.form-title h1,
.page-title h1,
.admin-title h1,
.section-head h2,
.game-card h2,
.section-headline h2,
.day-head h2,
.rank-card h3,
.mini-card h3{
  font-family:var(--font-hero);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.035em;
}


/* Ajustement tailles typographiques
   Les fonts gaming condensées gardent le même style, mais gagnent en lisibilité.
*/
html,body{
  font-size:18px;
}

.nav a{
  font-size:clamp(17px,1.45vw,22px);
}

.login-btn{
  font-size:18px;
}

.eyebrow{
  font-size:clamp(27px,2.1vw,34px);
  line-height:1;
}

.hero h1{
  font-size:clamp(74px,6.4vw,104px);
  line-height:.86;
}

.intro{
  font-size:18px;
  line-height:1.28;
  max-width:560px;
}

.info-block strong,
.info-block span,
.summary-row strong,
.summary-row span{
  font-size:17px;
  line-height:1.15;
}

.cta{
  font-size:18px;
  height:60px;
}

.submit-btn{
  font-size:24px;
  height:52px;
}

.submit-btn img{
  width:24px;
  height:24px;
}

.footer{
  font-size:14px;
}


/* Ajustement graisse fonts gaming - version 50% plus light */
body,
input,
select,
textarea,
p,
.intro,
.nav a,
.info-block strong,
.info-block span,
.summary-row strong,
.summary-row span{
  font-weight:400;
}

.eyebrow{
  font-weight:500;
}

.hero h1{
  font-weight:600;
  text-shadow:none;
}

.cta,
.login-btn,
.submit-btn,
.red-btn,
.outline-btn,
button{
  font-weight:400;
}

.stat-card strong,
.stat-card span,
.price,
.count,
.percentage,
.score{
  font-weight:500;
}


/* Ajustement demandé : textes encore 50% plus light
   Les tailles et la combinaison de fonts restent identiques.
*/
html,
body{
  font-weight:300;
}

body,
input,
select,
textarea,
p,
.intro,
.info-block strong,
.info-block span,
.summary-row strong,
.summary-row span{
  font-weight:300;
}

.nav a{
  font-weight:400;
  opacity:.88;
}

.eyebrow{
  font-weight:400;
}

.hero h1{
  font-weight:500;
}

.login-btn,
.cta,
.submit-btn,
.red-btn,
.outline-btn,
button{
  font-weight:400;
  opacity:.92;
}

.stat-card strong,
.stat-card span,
.price,
.count,
.percentage,
.score{
  font-weight:400;
}


/* Mobile accueil — maquette verticale avec asset central */
.mobile-menu-toggle,
.mobile-home-showcase,
.mobile-center-asset{
  display:none;
}

@media (max-width:820px){
  .home-page{
    --header-height:92px;
    --content-width:calc(100vw - 44px);
    min-height:100svh;
    overflow:visible;
    background:
      radial-gradient(circle at 50% -6%, rgba(227,30,38,.18) 0, rgba(8,11,18,0) 34%),
      linear-gradient(180deg,#070b12 0%,#080b12 48%,#05080e 100%);
  }

  .home-page .home-bg,
  .home-page::after{
    display:none!important;
  }

  .home-page .header{
    position:relative;
    height:92px;
    min-height:92px;
    display:grid;
    grid-template-columns:52px minmax(92px,1fr) auto;
    align-items:center;
    gap:10px;
    padding:12px 22px 8px;
    background:linear-gradient(180deg,#070b12 0%,rgba(7,11,18,.94) 72%,rgba(7,11,18,0) 100%);
  }

  .mobile-menu-toggle{
    display:inline-flex!important;
    flex-direction:column;
    justify-content:center;
    gap:7px;
    width:42px;
    height:42px;
    border:0;
    padding:0;
    background:transparent;
    justify-self:start;
    grid-column:1;
  }

  .mobile-menu-toggle span{
    display:block;
    width:34px;
    height:3px;
    border-radius:999px;
    background:#e84a4f;
    box-shadow:0 0 10px rgba(227,30,38,.28);
    transition:transform .22s ease, opacity .22s ease;
  }

  .mobile-menu-toggle.is-open span:nth-child(1){transform:translateY(10px) rotate(45deg)}
  .mobile-menu-toggle.is-open span:nth-child(2){opacity:0}
  .mobile-menu-toggle.is-open span:nth-child(3){transform:translateY(-10px) rotate(-45deg)}

  .home-page .brand{
    width:118px;
    height:56px;
    flex:0 0 auto;
    justify-self:center;
    grid-column:2;
  }

  .home-page .login-btn{
    width:auto!important;
    min-width:0!important;
    min-height:48px!important;
    padding:11px 14px!important;
    border-radius:13px;
    border-color:rgba(227,30,38,.78);
    background:rgba(8,11,18,.38);
    color:#fff;
    font-size:18px;
    letter-spacing:.055em;
    box-shadow:0 0 0 1px rgba(227,30,38,.14),0 10px 26px rgba(0,0,0,.24);
    justify-self:end;
    grid-column:3;
  }

  .home-page .login-btn img{
    display:none!important;
  }

  .home-page .nav{
    display:none!important;
    position:absolute;
    left:22px;
    right:22px;
    top:82px;
    z-index:20;
    width:auto;
    padding:12px;
    border:1px solid rgba(227,30,38,.28);
    border-radius:14px;
    background:rgba(7,11,18,.97);
    box-shadow:0 22px 40px rgba(0,0,0,.55);
    overflow:visible;
    white-space:normal;
  }

  .home-page .nav.is-open{
    display:grid!important;
    grid-template-columns:1fr 1fr;
    gap:8px;
  }

  .home-page .nav a{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:38px;
    padding:8px 10px;
    border:1px solid rgba(255,255,255,.08);
    border-radius:10px;
    background:rgba(255,255,255,.035);
    font-size:15px;
  }

  .home-page .hero{
    width:var(--content-width);
    margin:8px auto 0;
    padding-bottom:0;
    text-align:center;
    filter:none;
  }

  .home-page .eyebrow{
    margin:5px 0 5px;
    font-size:clamp(29px,7.8vw,42px);
    line-height:1;
    letter-spacing:.075em;
    color:#fff;
  }

  .home-page .hero h1{
    margin:0 auto 10px;
    max-width:560px;
    font-size:clamp(52px,14.4vw,76px);
    line-height:.93;
    letter-spacing:.028em;
    font-weight:700;
    color:#fff;
  }

  .mobile-home-showcase{
    display:block!important;
    width:100%;
    margin:5px auto 23px;
    overflow:hidden;
    background:#05070c;
    box-shadow:0 18px 45px rgba(0,0,0,.56);
  }

  .mobile-center-asset{
    display:block!important;
    width:100%;
    height:auto;
    aspect-ratio:1/1;
    object-fit:cover;
  }

  .home-page .intro{
    margin:0 auto 22px;
    max-width:100%;
    text-align:left;
    font-size:clamp(24px,6.5vw,34px);
    line-height:1.08;
    letter-spacing:.01em;
    color:#fff;
  }

  .home-page .intro br{
    display:none;
  }

  .home-page .home-info{
    display:grid;
    grid-template-columns:1fr 1fr 1fr;
    gap:12px;
    margin:0 0 22px;
    text-align:left;
  }

  .home-page .info-block{
    min-width:0;
    gap:10px;
    align-items:center;
  }

  .home-page .info-block img{
    width:42px;
    height:42px;
    flex:0 0 42px;
  }

  .home-page .info-block strong,
  .home-page .info-block span{
    font-size:clamp(18px,4.9vw,25px);
    line-height:1.02;
    color:#fff;
  }

  .home-page .info-block strong{
    font-weight:500;
  }

  .home-page .info-block span{
    margin-top:4px;
    font-weight:300;
  }

  .home-page .cta{
    width:100%;
    max-width:none;
    height:70px;
    margin:0 0 18px;
    border-radius:8px;
    background:linear-gradient(180deg,#ee2a31 0%,#e31e26 100%);
    box-shadow:0 12px 26px rgba(227,30,38,.22),inset 0 1px 0 rgba(255,255,255,.16);
    font-size:clamp(22px,5.8vw,31px);
    letter-spacing:.055em;
    gap:18px;
  }

  .home-page .cta img{
    width:34px;
    height:34px;
  }

  .home-page .footer{
    position:relative;
    height:auto;
    margin-top:auto;
    padding:0 22px 12px;
    background:linear-gradient(180deg,rgba(5,8,14,0) 0%,rgba(5,8,14,.88) 26%,#05080e 100%)!important;
  }

  .home-page .footer-line{
    display:none!important;
  }

  .home-page .footer-content{
    position:relative;
    left:auto;
    top:auto;
    transform:none;
    width:100%;
    height:48px;
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    justify-items:center;
    gap:10px;
  }

  .home-page .footer-brand{
    width:130px;
    height:42px;
    justify-self:start;
  }

  .home-page .footer-brand img{
    left:0;
    top:8px;
    width:64px;
    height:30px;
  }

  .home-page .footer-brand span{
    left:68px;
    top:16px;
    font-size:13px;
    line-height:1;
  }

  .home-page .footer-content p{
    margin:0;
    font-size:13px;
    white-space:nowrap;
  }

  .home-page .footer-social{
    width:auto;
    height:42px;
    gap:13px;
    justify-self:end;
    font-size:0;
  }

  .home-page .footer-social img{
    width:36px;
    height:36px;
  }

  .home-page .footer-social a:nth-child(2){
    display:inline-flex;
    width:36px;
    height:36px;
    border-radius:8px;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    color:transparent!important;
    background:linear-gradient(180deg,#2f7fff 0%,#1f63c5 100%);
    position:relative;
  }

  .home-page .footer-social a:nth-child(2)::before{
    content:'';
    width:25px;
    height:20px;
    border-radius:4px 4px 6px 6px;
    background:#06101e;
    box-shadow:inset 0 8px 0 #2f7fff;
  }
}

@media (max-width:420px){
  .home-page{
    --content-width:calc(100vw - 30px);
  }

  .home-page .header{
    padding-left:15px;
    padding-right:15px;
    grid-template-columns:42px minmax(76px,1fr) auto;
    gap:7px;
  }

  .mobile-menu-toggle{
    width:36px;
  }

  .mobile-menu-toggle span{
    width:29px;
  }

  .home-page .brand{
    width:96px;
    height:46px;
  }

  .home-page .login-btn{
    min-height:42px!important;
    padding:9px 10px!important;
    font-size:15px;
    border-radius:11px;
  }

  .home-page .hero h1{
    font-size:clamp(46px,13.9vw,58px);
  }

  .home-page .intro{
    font-size:clamp(22px,6.2vw,27px);
  }

  .home-page .home-info{
    gap:8px;
  }

  .home-page .info-block{
    gap:7px;
  }

  .home-page .info-block img{
    width:34px;
    height:34px;
    flex-basis:34px;
  }

  .home-page .info-block strong,
  .home-page .info-block span{
    font-size:clamp(15px,4.35vw,19px);
  }

  .home-page .cta{
    height:60px;
    font-size:clamp(19px,5.3vw,24px);
  }

  .home-page .footer{
    padding-left:15px;
    padding-right:15px;
  }

  .home-page .footer-brand{
    width:112px;
  }

  .home-page .footer-brand img{
    width:55px;
  }

  .home-page .footer-brand span{
    left:59px;
    font-size:11px;
  }

  .home-page .footer-content p{
    font-size:11px;
  }

  .home-page .footer-social img,
  .home-page .footer-social a:nth-child(2){
    width:32px;
    height:32px;
  }
}

/* Footer mobile: remove textual brand/shop labels */
@media (max-width: 768px){
  .footer-brand span,
  .footer-social a:nth-child(2){
    display:none!important;
  }

  .footer-brand{
    width:64px!important;
    flex:0 0 64px!important;
  }

  .footer-social{
    width:auto!important;
    flex:0 0 auto!important;
    gap:0!important;
  }
}


/* Connexion/deconnexion header: texte seul, sans cadre ni icone */
.header .login-btn,
.header .logout-form .login-btn,
.home-page .login-btn{
  width:auto!important;
  min-width:0!important;
  height:auto!important;
  min-height:0!important;
  padding:6px 0 5px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:#fff!important;
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  gap:0!important;
  line-height:1.1;
  text-decoration:none!important;
  position:relative;
  flex:0 0 auto;
}

.header .login-btn img{
  display:none!important;
}

.header .login-btn::after,
.home-page .login-btn::after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:2px;
  background:#e31e26;
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .2s ease;
}

.header .login-btn:hover,
.header .login-btn:focus-visible,
.home-page .login-btn:hover,
.home-page .login-btn:focus-visible{
  color:#e31e26!important;
  text-decoration:none!important;
}

.header .login-btn:hover::after,
.header .login-btn:focus-visible::after,
.home-page .login-btn:hover::after,
.home-page .login-btn:focus-visible::after{
  transform:scaleX(1);
}

.header .login-btn.active,
.home-page .login-btn.active{
  color:#fff!important;
}

.header .login-btn.active:hover,
.header .login-btn.active:focus-visible,
.home-page .login-btn.active:hover,
.home-page .login-btn.active:focus-visible{
  color:#e31e26!important;
}

.header .logout-form{
  width:auto!important;
  margin:0;
  display:flex;
  justify-self:end;
  flex:0 0 auto;
}

@media (max-width:640px){
  .header .login-btn,
  .header .logout-form .login-btn,
  .home-page .login-btn{
    padding:5px 0 4px!important;
    font-size:15px;
  }
}

/* Ajustement taille bouton connexion/deconnexion : identique aux liens du menu */
.header .login-btn,
.header .logout-form .login-btn,
.home-page .login-btn{
  font-size:clamp(17px,1.45vw,22px)!important;
  line-height:1.2!important;
  font-weight:400!important;
}

@media (max-width:640px){
  .header .login-btn,
  .header .logout-form .login-btn{
    font-size:14px!important;
  }
}

@media (max-width:820px){
  .home-page .login-btn{
    font-size:15px!important;
  }
}
