/* ✅ Conteneur principal */
.register-form-container {
    max-width: 600px;
    margin: 40px auto;
    padding: 20px;
    background: white;
    border-radius: 8px;
    box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1);
    text-align: center;
}

.freemium-onboarding .onboarding-kicker {
    margin-bottom: 4px;
    color: #087cf0;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.freemium-onboarding h1 { margin-top: 0; }

/* ✅ Table du formulaire */
.register-form-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 15px;
}

.register-form-table td {
    padding: 12px;
}

/* ✅ Colonnes */
.label-column {
    text-align: right;
    font-weight: bold;
    padding-right: 10px;
    width: 40%;
}

.input-column {
    text-align: left;
    width: 60%;
}

/* ✅ Champs input et select */
.register-form-table input, 
.register-form-table select {
    width: 100%;
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 5px;
    box-sizing: border-box;
}

/* ✅ Checkbox */
.register-checkbox-container {
    display: flex;
    align-items: center;
}

.register-checkbox-container input {
    margin-right: 8px;
}

/* ✅ Bouton d'inscription */
.register-btn {
    width: 100%;
    padding: 10px;
    background-color: #007BFF;
    color: white;
    border: none;
    border-radius: 5px;
    font-weight: bold;
    cursor: pointer;
    text-transform: uppercase;
    transition: 0.3s ease;
}

.register-btn:hover {
    background: #0056b3;
}

/* ✅ Responsive */
@media (max-width: 768px) {
    .register-form-container {
        width: 90%;
    }

    .register-form-table td {
        display: block;
        text-align: center;
    }

    .label-column {
        text-align: center;
        width: 100%;
        display: block;
    }

    .input-column {
        width: 100%;
        display: block;
    }
}
.legal-consent-box{display:grid;gap:10px;margin:12px 0;padding:14px;border:1px solid #c9d7ea;border-radius:10px;background:#f7fbff;text-align:left}.legal-consent-box label{display:flex;align-items:flex-start;gap:9px;line-height:1.4}.legal-consent-box input{margin-top:4px;flex:0 0 auto}.legal-consent-box a{font-weight:700}

/* Freemium onboarding ---------------------------------------------------- */
.freemium-onboarding-page {
    width: min(1420px, calc(100% - 32px));
    margin: 32px auto 56px;
}

.freemium-onboarding-shell {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(430px, .92fr);
    overflow: hidden;
    border: 1px solid rgba(68, 146, 255, .38);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 22px 60px rgba(2, 20, 54, .22);
}

.freemium-welcome-panel {
    min-width: 0;
    color: #fff;
    background: linear-gradient(145deg, #03152f 0%, #082e68 62%, #087cf0 100%);
}

.freemium-welcome-image {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 8.1;
    object-fit: cover;
    object-position: center;
    border-bottom: 1px solid rgba(255, 255, 255, .18);
}

.freemium-welcome-content { padding: 32px clamp(26px, 4vw, 54px) 38px; }
.freemium-welcome-content .onboarding-kicker { color: #ffd400; }
.freemium-welcome-content h1 {
    max-width: 720px;
    margin: 6px 0 14px;
    color: #fff;
    font-size: clamp(2rem, 3.2vw, 3.45rem);
    line-height: 1.02;
    letter-spacing: -.035em;
}
.freemium-welcome-lead {
    max-width: 680px;
    margin: 0;
    color: #dcecff;
    font-size: 1.08rem;
    line-height: 1.6;
}
.freemium-benefits {
    display: grid;
    gap: 13px;
    margin: 26px 0;
    padding: 0;
    list-style: none;
}
.freemium-benefits li {
    display: grid;
    gap: 3px;
    padding: 14px 17px 14px 48px;
    position: relative;
    border: 1px solid rgba(125, 194, 255, .28);
    border-radius: 14px;
    background: rgba(1, 17, 42, .38);
}
.freemium-benefits li::before {
    content: "✓";
    position: absolute;
    left: 17px;
    top: 14px;
    color: #42e6b0;
    font-weight: 900;
    font-size: 1.2rem;
}
.freemium-benefits strong { color: #fff; font-size: 1rem; }
.freemium-benefits span { color: #c8ddf7; font-size: .92rem; line-height: 1.45; }
.freemium-educational-note {
    margin: 0;
    padding-top: 18px;
    border-top: 1px solid rgba(255, 255, 255, .18);
    color: #bcd3ef;
    font-size: .86rem;
    line-height: 1.55;
}

.freemium-form-panel {
    min-width: 0;
    padding: 38px clamp(25px, 3.5vw, 50px);
    color: #14223a;
    background: #fff;
}
.onboarding-kicker {
    margin: 0 0 5px;
    color: #087cf0;
    font-weight: 850;
    letter-spacing: .09em;
    text-transform: uppercase;
}
.freemium-form-heading h2 {
    margin: 0 0 7px;
    color: #10203b;
    font-size: clamp(1.8rem, 2.5vw, 2.55rem);
    letter-spacing: -.025em;
}
.freemium-form-heading > p:last-child { margin: 0 0 25px; color: #576985; }
.freemium-account-form { display: grid; gap: 15px; }
.freemium-name-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.form-field { display: grid; gap: 6px; text-align: left; }
.form-field label { color: #172640; font-size: .9rem; font-weight: 750; }
.form-field input {
    width: 100%;
    min-height: 46px;
    box-sizing: border-box;
    padding: 10px 12px;
    border: 1px solid #afbdd0;
    border-radius: 9px;
    color: #10203b;
    background: #fff;
    font: inherit;
}
.form-field input:focus {
    border-color: #087cf0;
    outline: 3px solid rgba(8, 124, 240, .16);
}
.form-field small { color: #65758e; font-size: .8rem; }
.freemium-plan-summary {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px;
    border: 1px solid #b8d8ff;
    border-radius: 12px;
    background: #f1f7ff;
}
.freemium-plan-badge {
    padding: 7px 10px;
    border-radius: 999px;
    color: #fff;
    background: #087cf0;
    font-size: .8rem;
    font-weight: 800;
    text-transform: uppercase;
}
.freemium-plan-summary div { display: grid; gap: 2px; }
.freemium-plan-summary strong { color: #10203b; }
.freemium-plan-summary small { color: #5f7089; }
.turnstile-wrap { display: flex; justify-content: center; min-height: 65px; }
.freemium-account-form .legal-consent-box {
    margin: 0;
    padding: 13px;
    border-color: #d2deed;
    background: #f8fbff;
    font-size: .82rem;
}
.freemium-account-form .legal-consent-box input { width: 17px; height: 17px; }
.freemium-account-form .register-btn { min-height: 50px; border-radius: 10px; font-size: .94rem; }
.freemium-login-link { margin: 16px 0 0; text-align: center; color: #60708a; }
.freemium-login-link a { color: #087cf0; font-weight: 800; }
.register-beta-link { font-size: .82rem; }
.register-beta-link a { color: #ffd400; font-weight: 800; }
.register-beta-link-form { margin: 12px 0 0; text-align: center; }
.register-beta-link-form a { color: #54708f; text-decoration: underline; }
.public-register-form-panel .register-form-table { margin-top: 8px; }
.public-register-form-panel .register-form-table td { padding: 8px; }
.public-register-form-panel .register-form-table input,
.public-register-form-panel .register-form-table select { min-height: 44px; }
.public-register-form-panel .register-form-table input[type="radio"] { width:auto; min-height:auto; margin-right:5px; }
.public-register-form-panel .legal-consent-box { width:100%; box-sizing:border-box; overflow:hidden; }
.public-register-form-panel .legal-consent-box label { position:relative; display:block; min-width:0; padding-left:28px; overflow-wrap:anywhere; }
.public-register-form-panel .legal-consent-box input[type="checkbox"] { position:absolute; top:2px; left:0; width:18px !important; height:18px; min-height:18px !important; margin:0; padding:0; }
.register-required-note { margin:10px 8px 0; color:#5b6d87; font-size:.86rem; text-align:right; }
.register-required-note span,
.required-marker { color:#d11b4b; font-weight:800; }
.legal-consent-box .required-marker { display:inline; margin-right:3px; }
.public-register-form-panel #registration-price { display:block; margin-top:8px; color:#0759b8; }
.register-social-freemium { margin-top:20px; padding-top:16px; border-top:1px solid #d2deed; text-align:center; }
.register-social-freemium > small { display:block; margin-bottom:10px; color:#65758e; }

body.theme-night .freemium-onboarding-shell { border-color: #284e7a; background: #101827; }
body.theme-night .freemium-form-panel { color: #e9f2ff; background: #101827; }
body.theme-night .freemium-form-heading h2,
body.theme-night .form-field label,
body.theme-night .freemium-plan-summary strong { color: #f4f8ff; }
body.theme-night .freemium-form-heading > p:last-child,
body.theme-night .form-field small,
body.theme-night .freemium-login-link { color: #aebed3; }
body.theme-night .form-field input { border-color: #40536e; color: #f4f8ff; background: #0b1321; }
body.theme-night .freemium-plan-summary { border-color: #315b88; background: #132840; }
body.theme-night .freemium-plan-summary small { color: #b9cce3; }
body.theme-night .freemium-account-form .legal-consent-box { border-color: #33465f; color: #dbe7f6; background: #111d2e; }
body.theme-night .public-register-form-panel #registration-price { color:#63b7ff; }
body.theme-night .register-beta-link-form a,
body.theme-night .register-social-freemium > small { color:#aebed3; }

@media (max-width: 1050px) {
    .freemium-onboarding-shell { grid-template-columns: minmax(0, 1fr) minmax(390px, .95fr); }
    .freemium-welcome-content { padding: 28px; }
}

@media (max-width: 820px) {
    .freemium-onboarding-page { width: min(100% - 20px, 650px); margin-top: 18px; }
    .freemium-onboarding-shell { grid-template-columns: 1fr; border-radius: 18px; }
    .freemium-welcome-image { aspect-ratio: 16 / 7.2; }
    .freemium-welcome-content { padding: 24px; }
    .freemium-welcome-content h1 { font-size: clamp(1.85rem, 8vw, 2.7rem); }
    .freemium-benefits { margin-bottom: 20px; }
    .freemium-form-panel { padding: 28px 22px 32px; }
}

@media (max-width: 520px) {
    .freemium-onboarding-page { width: calc(100% - 12px); }
    .freemium-welcome-image { aspect-ratio: 16 / 8.5; }
    .freemium-welcome-content { padding: 20px 17px 23px; }
    .freemium-benefits li { padding-left: 43px; }
    .freemium-form-panel { padding: 25px 16px 30px; }
    .freemium-name-grid { grid-template-columns: 1fr; }
    .freemium-plan-summary { align-items: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
    .register-btn { transition: none; }
}

.verification-page {
    width: min(100% - 24px, 600px);
    margin: 42px auto 64px;
}
.verification-card {
    padding: clamp(26px, 5vw, 48px);
    border: 1px solid #bfd8f7;
    border-radius: 22px;
    color: #14223a;
    background: #fff;
    box-shadow: 0 18px 50px rgba(2, 20, 54, .17);
    text-align: center;
}
.verification-icon {
    display: grid;
    place-items: center;
    width: 68px;
    height: 68px;
    margin: 0 auto 18px;
    border-radius: 50%;
    color: #fff;
    background: linear-gradient(135deg, #087cf0, #6754e8);
    font-size: 2rem;
}
.verification-card h1 { margin: 4px 0 10px; color: #10203b; font-size: clamp(1.8rem, 5vw, 2.5rem); }
.verification-card > p:not(.onboarding-kicker) { color: #5b6d87; line-height: 1.55; }
.verification-resend-form { display: grid; gap: 16px; margin-top: 24px; text-align: left; }
.verification-back-link { display: inline-block; margin-top: 22px; color: #087cf0; font-weight: 750; }
body.theme-night .verification-card { border-color: #304d70; color: #e8f1fe; background: #101827; }
body.theme-night .verification-card h1 { color: #f4f8ff; }
body.theme-night .verification-card > p:not(.onboarding-kicker) { color: #b8c8dc; }

/* Put the first action before the marketing illustration on small screens. */
.freemium-allocation-offer { margin:12px 0 18px; padding:14px; border:1px solid #b9dbff; border-radius:10px; background:#edf6ff; color:#163252; }
.freemium-allocation-offer strong,.freemium-allocation-offer span { display:block; }
.freemium-allocation-offer strong { font-size:1.2rem; margin-bottom:7px; }
.freemium-allocation-offer span { font-size:.86rem; line-height:1.5; }
@media(max-width:820px) { .freemium-form-panel { grid-row:1; } }
