.screen{min-height:100vh; display:flex; flex-direction:column;}

.visual{
  position:relative; height:46vh; min-height:300px;
  overflow:hidden; flex-shrink:0;
}
.visual img{width:100%; height:100%; object-fit:cover; display:block; filter:saturate(1.05);}
.visual::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(20,36,64,.35) 0%, rgba(20,36,64,.55) 55%, var(--paper) 100%);
}
.visual-content{
  position:absolute; inset:0; z-index:2; padding:0 24px;
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
}
.visual-content .logo{width:76px; height:76px; filter:drop-shadow(0 6px 16px rgba(0,0,0,.25));
  animation:riseIn .7s cubic-bezier(.2,.8,.2,1) both;}
.visual-content .eyebrow{
  margin-top:14px; font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:#f4e8c9; animation:riseIn .7s .08s cubic-bezier(.2,.8,.2,1) both;
}

.wave-sig{position:absolute; left:0; right:0; bottom:-1px; height:64px; z-index:3;}
.wave-sig path{
  stroke:url(#goldGrad); stroke-width:3; fill:none; stroke-linecap:round;
  stroke-dasharray:600; stroke-dashoffset:600;
  animation:drawWave 1.4s .3s cubic-bezier(.2,.7,.2,1) forwards;
}

.sheet{
  flex:1; background:#fff; border-radius:28px 28px 0 0; margin-top:-28px;
  position:relative; z-index:4; padding:34px 24px 28px;
  box-shadow:0 -12px 40px rgba(20,36,64,.12);
  animation:slideUp .5s .15s cubic-bezier(.2,.8,.2,1) both;
}
.sheet-inner{max-width:440px; margin:0 auto;}

@media (min-width:900px){
  .screen{flex-direction:row;}
  .visual{height:100vh; width:44%; flex:none;}
  .visual::after{background:linear-gradient(180deg, rgba(20,36,64,.25) 0%, rgba(20,36,64,.6) 100%);}
  .sheet{width:56%; margin-top:0; border-radius:0; display:flex; align-items:center; justify-content:center; box-shadow:none;}
  .sheet-inner{width:100%; max-width:380px;}
  .wave-sig{display:none;}
}

.lang-toggle{display:flex; justify-content:flex-end; gap:2px; margin-bottom:22px;}
.lang-toggle a{
  border:1px solid var(--line); font-size:12.5px; font-weight:600;
  padding:6px 13px; color:var(--ink-soft); text-decoration:none; display:inline-block;
  transition:.18s;
}
.lang-toggle a:first-child{border-radius:20px 0 0 20px;}
.lang-toggle a:last-child{border-radius:0 20px 20px 0; border-left:none;}
.lang-toggle a.active{background:var(--navy); color:#fff; border-color:var(--navy);}

.subtitle{color:var(--ink-soft); font-size:14.5px; line-height:1.55; margin:0 0 30px;}

.field{margin-bottom:18px;}
.field label{display:block; font-size:12.5px; font-weight:600; color:var(--navy); margin-bottom:7px;}
.field input, .field select{
  width:100%; padding:13px 15px; border:1.5px solid var(--line); border-radius:12px;
  font-family:'Inter'; font-size:15px; color:var(--ink); background:#fdfcfa;
  transition:.16s border-color, .16s box-shadow;
}
.field input:focus, .field select:focus{
  outline:none; border-color:var(--navy-soft); box-shadow:0 0 0 4px rgba(44,69,119,.12);
}
.field-hint{font-size:11.5px; color:#8b94ab; margin-top:6px;}

.submit-btn{
  width:100%; padding:14.5px; margin-top:6px; font-size:15.5px;
  display:flex; align-items:center; justify-content:center; gap:8px;
}
.submit-btn svg{transition:.18s transform;}
.submit-btn:hover svg{transform:translateX(3px);}

.divider{display:flex; align-items:center; gap:12px; margin:26px 0 18px; color:#b7bccb; font-size:12px;}
.divider::before,.divider::after{content:""; flex:1; height:1px; background:var(--line);}

.footer-help{text-align:center; font-size:13px; color:var(--ink-soft); line-height:1.6;}
.footer-help a{color:var(--navy); font-weight:600; text-decoration:none;}
.footer-help a:hover{text-decoration:underline;}

.alert{
  border-radius:12px; padding:12px 15px; font-size:13.5px; margin-bottom:20px;
}
.alert-danger{background:#fbeceb; color:var(--danger); border:1px solid #f2cdc9;}

@keyframes riseIn{from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:translateY(0);}}
@keyframes slideUp{from{opacity:0; transform:translateY(22px);} to{opacity:1; transform:translateY(0);}}
@keyframes drawWave{to{stroke-dashoffset:0;}}

/* RTL : la carte garde la même construction, seuls le texte et les icônes s'inversent */
[dir="rtl"] .submit-btn:hover svg{transform:translateX(-3px);}
[dir="rtl"] .lang-toggle a:first-child{border-radius:0 20px 20px 0;}
[dir="rtl"] .lang-toggle a:last-child{border-radius:20px 0 0 20px; border-left:1px solid var(--line); border-right:none;}
