/* Page /register : demande de démonstration. Mise en page + visuel « cartes Wallet » (HTML/CSS, aucune image de carte). */

.lv-register .fr-page{padding-top:148px;padding-bottom:96px;background:#f8f8f8}
.lv-register .main-title{margin:0 0 14px;font-size:44px;line-height:1.1}
.lv-register .fr-page-intro{max-width:640px;margin:0 auto 60px;text-align:center;color:#52536b}

/* Deux colonnes : visuel à gauche, formulaire à droite. L'ordre du DOM place le formulaire en premier (mobile, clavier). */
.lv-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,590px);grid-template-areas:"aside card";gap:clamp(40px,6vw,96px);align-items:start;max-width:1120px;margin:0 auto}
.lv-aside{grid-area:aside;min-width:0}
.lv-card{grid-area:card;min-width:0;padding:34px;background:#fff;border-radius:22px;box-shadow:0 1px 2px #30304a0d,0 18px 44px -12px #30304a26}

.lv-aside h2{margin:0 0 18px;font-size:38px;line-height:1.12;font-weight:700;color:#3c3e5a;text-wrap:balance}
.lv-aside p{margin:0;max-width:30em;font-size:18px;line-height:1.65;color:#52536b}

/* Réservation d'un créneau : action secondaire, en tête de carte */
.lv-book{display:flex;align-items:center;gap:16px;padding:16px 18px;border-radius:14px;background:#eef6fc;border:1px solid #d3e6f5}
.lv-book svg{flex:none;width:30px;height:30px;color:#1265a6}
.lv-book__text{flex:1;min-width:0;line-height:1.35}
.lv-book__text strong{display:block;font-weight:700;color:#2b2d46}
.lv-book__text span{font-size:14px;color:#52536b}
.lv-book__btn{flex:none;padding:12px 20px;border:1.5px solid #1265a6;border-radius:40px;color:#1265a6;font-weight:700;font-size:15px;line-height:1;white-space:nowrap;text-decoration:none;transition:background-color .2s,color .2s}
.lv-book__btn:hover{background:#1265a6;color:#fff}
.lv-book__btn:focus-visible{outline:3px solid #1685e4;outline-offset:3px}
.lv-or{display:flex;align-items:center;gap:14px;margin:26px 0 24px;font-size:14px;color:#6b6d85}
.lv-or::before,.lv-or::after{content:"";flex:1;height:1px;background:#e3e6ec}

/* Formulaire */
.lv-card .fr-form{padding:0;background:none;box-shadow:none;border-radius:0}
.lv-card .fr-form label{margin-bottom:18px}
.lv-row{display:grid;grid-template-columns:1fr 1fr;column-gap:16px}
.lv-card .fr-form input:not([type=checkbox]),.lv-card .fr-form select,.lv-card .fr-form textarea{transition:border-color .15s,box-shadow .15s}
.lv-card .fr-form input:not([type=checkbox]):focus-visible,.lv-card .fr-form select:focus-visible,.lv-card .fr-form textarea:focus-visible{outline:none;border-color:#1685e4;box-shadow:0 0 0 3px #1685e433}
.lv-card .fr-form input[type=checkbox]:focus-visible{outline:3px solid #1685e4;outline-offset:2px}
.lv-card .fr-form .btn{margin-top:6px}
.lv-card .fr-form .btn_blue{background-image:linear-gradient(to right bottom,#0a5fd0,#1a73c0)}
.lv-card .fr-form .btn_blue:hover{background-image:linear-gradient(to right bottom,#084fb0,#14609f)}
.lv-card .fr-form-note{margin:16px 0 0;text-align:center}
.lv-card #form-status{min-height:22px;margin-top:10px;text-align:center;font-weight:600}

/* Cartes : chaque carte est un conteneur ; toutes les mesures internes sont en cqw (proportions d'un vrai pass Wallet) */
.lv-passes{position:relative;width:100%;max-width:460px;aspect-ratio:460/535;margin:46px 0 0;container-type:inline-size}
.lv-pass{display:flex;flex-direction:column;position:absolute;container-type:inline-size;width:calc(var(--w) * 1cqw);aspect-ratio:100/148;border-radius:calc(var(--w) * .055cqw);overflow:hidden;box-shadow:inset 0 1px 0 #ffffff2e,0 1px 2px #14122833,0 14px 26px -8px #1412284d,0 38px 64px -24px #14122859;animation:lv-deal .9s cubic-bezier(.16,1,.3,1) both}
.lv-pass::after{content:"";position:absolute;inset:0;background:linear-gradient(125deg,#ffffff2b 0%,#ffffff00 38%,#00000014 100%);pointer-events:none}
.lv-pass--rose{--w:58;--r:-3deg;left:1.5cqw;top:25cqw;z-index:2;background:#241f3d;color:#fdf3e4;transform:rotate(-3deg)}
.lv-pass--cafe{--w:56;aspect-ratio:100/126;--r:4.5deg;right:.5cqw;top:0;z-index:1;background:#16382f;color:#f6ecd9;transform:rotate(4.5deg);animation-delay:.08s}
@keyframes lv-deal{from{transform:translate(-3cqw,5cqw) rotate(calc(var(--r) * -1.8))}to{transform:rotate(var(--r))}}

.lv-pass__head{display:flex;align-items:center;gap:3cqw;padding:5.5cqw 6cqw 4.6cqw}
.lv-logo{flex:none;display:grid;place-items:center;width:10.6cqw;height:10.6cqw;border-radius:50%;font-size:5.6cqw;font-weight:700;line-height:1}
.lv-pass--rose .lv-logo{background:#ff6b57;color:#241f3d}
.lv-pass--cafe .lv-logo{background:#f6ecd9;color:#16382f}
.lv-pass__brand{font-size:4.5cqw;font-weight:700;line-height:1.1}
.lv-pass__stat{margin-left:auto;text-align:right}
.lv-label{display:block;font-size:2.55cqw;font-weight:600;letter-spacing:.09em;text-transform:uppercase;line-height:1.3;opacity:.74}
.lv-stat{display:block;font-size:6.4cqw;font-weight:600;line-height:1.05;font-variant-numeric:tabular-nums}

.lv-strip{display:block;width:100%;height:32cqw;object-fit:cover;object-position:50% 40%}

.lv-primary{padding:5.4cqw 6cqw 0}
.lv-primary b{display:block;margin-top:1.4cqw;font-size:7.2cqw;font-weight:700;line-height:1.06}
.lv-bar{height:1.5cqw;margin-top:3.4cqw;border-radius:1cqw;background:#ffffff2b;overflow:hidden}
.lv-bar i{display:block;height:100%;width:60%;border-radius:1cqw;background:#ff6b57}
.lv-primary small{display:block;margin-top:2cqw;font-size:3.1cqw;line-height:1.3;opacity:.82}
.lv-second{display:grid;grid-template-columns:1fr 1fr;gap:4cqw;padding:5cqw 6cqw 0}
.lv-second b{display:block;margin-top:.8cqw;font-size:4.3cqw;font-weight:600;line-height:1.2}
.lv-code{margin-top:auto;display:grid;justify-items:center;padding:0 0 5.6cqw}
.lv-qr{width:27cqw;padding:2.6cqw;border-radius:3cqw;background:#fff;box-sizing:border-box}
.lv-qr svg{display:block;width:100%;height:auto}
.lv-code small{margin-top:2.2cqw;font-size:2.7cqw;font-weight:600;letter-spacing:.16em;opacity:.7;font-variant-numeric:tabular-nums}

/* Carte café : tampons */
.lv-stamps{display:grid;grid-template-columns:repeat(4,1fr);gap:3.2cqw;padding:5cqw 6cqw 0}
.lv-stamp{aspect-ratio:1;border-radius:50%;display:grid;place-items:center}
.lv-stamp svg{width:58%;height:58%;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}
.lv-stamp--on{background:#d9744a;color:#fbefdc}
.lv-stamp--off{border:.55cqw dashed #f6ecd966}
.lv-pass--cafe .lv-primary{padding-top:0}
.lv-pass--cafe .lv-primary b{font-size:6cqw}
.lv-bars{margin:auto 6cqw 6cqw;height:15cqw;border-radius:2.4cqw;background:#fff;padding:2.6cqw 4cqw;box-sizing:border-box}
.lv-bars svg{display:block;width:100%;height:100%}

.lv-caption{margin:18px 0 0;max-width:30em;font-size:13px;line-height:1.5;color:#686d82}

@media (max-width:940px){
  .lv-register .fr-page{padding-top:118px;padding-bottom:64px}
  .lv-register .main-title{font-size:34px}
  .lv-register .fr-page-intro{margin-bottom:36px;font-size:17px}
  .lv-split{grid-template-columns:minmax(0,1fr);grid-template-areas:"card" "aside";gap:56px;max-width:600px}
  .lv-aside h2{font-size:30px}
  .lv-aside p{font-size:17px}
}
@media (max-width:560px){
  .lv-card{padding:22px 18px;border-radius:18px}
  .lv-row{grid-template-columns:1fr}
  .lv-book{flex-wrap:wrap}
  .lv-book__btn{width:100%;text-align:center;box-sizing:border-box;padding:14px 20px}
}
@media (prefers-reduced-motion:reduce){.lv-pass{animation:none}}

/* Page de confirmation (/register/merci) */
.lv-split--merci{grid-template-columns:minmax(0,540px) minmax(0,1fr);grid-template-areas:"card aside";align-items:center}
.lv-card--merci{padding:40px}
.lv-check{display:grid;place-items:center;width:54px;height:54px;margin-bottom:22px;border-radius:50%;background:#e4f3e8;color:#1c7c3f}
.lv-check svg{width:26px;height:26px}
.lv-merci-title{margin:0 0 14px;font-size:34px;line-height:1.15;font-weight:700;color:#3c3e5a;text-wrap:balance}
.lv-card--merci>p{margin:0 0 28px;font-size:18px;line-height:1.65;color:#52536b}
.lv-back{margin:24px 0 0;text-align:center}
.lv-back a{color:#52536b;text-decoration:underline;text-underline-offset:3px}
.lv-back a:hover{color:#1265a6}
.lv-split--merci .lv-passes{margin-top:0}
@media (max-width:940px){.lv-split--merci{grid-template-columns:minmax(0,1fr);grid-template-areas:"card" "aside"}.lv-card--merci{padding:28px 22px}.lv-merci-title{font-size:28px}}
