:root {
    --primary: #123c8d;
    --secondary: #1e5bb8;
    --accent: #f6b800;
    --success: #178447;
    --danger: #c9362b;
    --surface: #ffffff;
    --page: #f3f6fb;
    --text: #172033;
    --muted: #68758b;
    --border: #dce3ee;
}

* { box-sizing: border-box; }

body {
    margin: 0;
    background: var(--page);
    color: var(--text);
    font-family: Arial, Helvetica, sans-serif;
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 50;
    padding: 14px 5%;
    background: var(--surface);
    border-bottom: 1px solid var(--border);
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--primary);
    text-decoration: none;
}

.brand-mark {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: var(--primary);
    color: #fff;
    font-weight: 800;
}

.brand strong, .brand small { display: block; }
.brand small { color: var(--muted); }

.landing-shell,
.exam-shell,
.result-shell {
    width: min(960px, calc(100% - 28px));
    margin: 32px auto;
}

.hero-card,
.progress-card,
.question-card,
.notice-card,
.result-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 18px;
    box-shadow: 0 8px 26px rgba(17, 46, 94, .08);
}

.hero-card,
.result-card {
    padding: clamp(24px, 5vw, 52px);
    text-align: center;
}

.eyebrow {
    color: var(--secondary);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .08em;
}

.hero-card h1,
.result-card h1 {
    margin: 12px 0;
    font-size: clamp(30px, 6vw, 48px);
}

.hero-card p,
.result-card p {
    color: var(--muted);
    line-height: 1.7;
}

.exam-summary {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    margin: 28px 0;
}

.exam-summary div {
    padding: 20px 12px;
    border-radius: 14px;
    background: #f7f9fd;
}

.exam-summary strong,
.exam-summary span {
    display: block;
}

.exam-summary strong {
    color: var(--primary);
    font-size: 28px;
}

.exam-summary span {
    margin-top: 5px;
    color: var(--muted);
    font-size: 13px;
}

.primary-btn,
.secondary-btn {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-height: 50px;
    padding: 0 24px;
    border-radius: 12px;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
}

.primary-btn {
    border: 0;
    background: var(--primary);
    color: #fff;
}

.primary-btn:disabled {
    cursor: not-allowed;
    opacity: .45;
}

.secondary-btn {
    border: 1px solid var(--border);
    background: #fff;
    color: var(--primary);
}

.progress-card {
    padding: 18px;
    margin-bottom: 20px;
}

.progress-card strong,
.progress-card span {
    display: block;
}

.progress-card span {
    margin-top: 4px;
    color: var(--muted);
}

.progress-track {
    height: 10px;
    margin-top: 14px;
    overflow: hidden;
    border-radius: 99px;
    background: #e8edf5;
}

.progress-track span {
    height: 100%;
    margin: 0;
    background: var(--primary);
}

.question-card {
    padding: 22px;
    margin-bottom: 18px;
}

.question-number {
    color: var(--secondary);
    font-size: 13px;
    font-weight: 800;
}

.question-card h2 {
    margin: 10px 0 18px;
    font-size: 20px;
    line-height: 1.45;
}

.sign-image {
    display: block;
    width: min(220px, 100%);
    max-height: 210px;
    object-fit: contain;
    margin: 16px auto;
}

.answers {
    display: grid;
    gap: 10px;
}

.answer-btn {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: #fff;
    color: var(--text);
    text-align: left;
    cursor: pointer;
}

.answer-btn span {
    display: grid;
    place-items: center;
    flex: 0 0 34px;
    height: 34px;
    border-radius: 9px;
    background: #edf2fb;
    color: var(--primary);
    font-weight: 800;
}

.answer-btn.correct {
    border-color: var(--success);
    background: #ebf8f0;
}

.answer-btn.wrong {
    border-color: var(--danger);
    background: #fff0ef;
}

.feedback {
    display: none;
    margin-top: 14px;
    padding: 12px;
    border-radius: 10px;
    font-weight: 700;
}

.feedback.show { display: block; }
.feedback.good { background: #ebf8f0; color: var(--success); }
.feedback.bad { background: #fff0ef; color: var(--danger); }

#nextPageBtn {
    width: 100%;
    margin-top: 8px;
}

.notice-card {
    padding: 30px;
}

.score-circle {
    display: grid;
    place-items: center;
    width: 170px;
    height: 170px;
    margin: 28px auto 14px;
    border: 12px solid var(--primary);
    border-radius: 50%;
}

.score-circle strong {
    font-size: 52px;
    line-height: 1;
}

.score-circle span {
    color: var(--muted);
}

.percentage {
    font-size: 22px;
    font-weight: 800;
}

.result-card.ready .score-circle { border-color: var(--success); }
.result-card.revise .score-circle { border-color: var(--accent); }
.result-card.wait .score-circle { border-color: var(--danger); }

.result-actions {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 26px;
}

.site-footer {
    padding: 24px;
    color: var(--muted);
    text-align: center;
}

@media (max-width: 640px) {
    .exam-summary {
        grid-template-columns: 1fr;
    }

    .question-card {
        padding: 17px;
    }

    .answer-btn {
        align-items: flex-start;
    }

    .result-actions > * {
        width: 100%;
    }

    .result-actions .primary-btn,
    .result-actions .secondary-btn {
        width: 100%;
    }
}


















/* Rwanda CBT Phase 1 additions */
.question-topline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}

.question-status {
    padding: 6px 10px;
    border-radius: 999px;
    background: #eef2f8;
    color: #68758b;
    font-size: 12px;
    font-weight: 800;
}

.question-status.status-correct {
    background: #e7f7ed;
    color: #178447;
}

.question-status.status-wrong {
    background: #ffeded;
    color: #c9362b;
}

.answer-btn b {
    font-weight: 600;
    line-height: 1.45;
}

.answer-btn:disabled {
    cursor: default;
    opacity: 1;
}

@media (max-width: 640px) {
    .question-topline {
        align-items: flex-start;
    }
}








.phone-start-form {
    width: min(460px, 100%);
    margin: 28px auto 0;
    text-align: left;
}

.phone-start-form label {
    display: block;
    margin-bottom: 8px;
    font-weight: 800;
}

.phone-start-form input {
    width: 100%;
    min-height: 52px;
    margin-bottom: 12px;
    padding: 0 16px;
    border: 1px solid var(--border);
    border-radius: 12px;
    font-size: 17px;
}

.phone-start-form .primary-btn {
    width: 100%;
}

.small-note {
    margin-top: 18px;
    font-size: 13px;
}

.unlock-list {
    display: grid;
    gap: 10px;
    width: min(560px, 100%);
    margin: 26px auto;
    text-align: left;
}

.unlock-list div {
    padding: 13px 15px;
    border: 1px solid #dce3ee;
    border-radius: 12px;
    background: #f8faff;
}

.unlock-list div::before {
    content: "✓";
    margin-right: 10px;
    color: #178447;
    font-weight: 900;
}

.price-box {
    width: min(420px, 100%);
    margin: 24px auto;
    padding: 22px;
    border: 2px solid #123c8d;
    border-radius: 16px;
    background: #f4f7fd;
}

.price-box span,
.price-box strong,
.price-box small {
    display: block;
}

.price-box strong {
    margin: 6px 0;
    color: #123c8d;
    font-size: 32px;
}

.paywall-card .secondary-btn {
    margin-top: 12px;
}




.motivation-box {
    width: min(620px, 100%);
    margin: 24px auto;
    padding: 18px;
    border-radius: 14px;
    background: #fff8dc;
    border: 1px solid #f3d46a;
    text-align: left;
}

.motivation-box strong,
.motivation-box span {
    display: block;
}

.motivation-box strong {
    margin-bottom: 6px;
    color: #7a5900;
    font-size: 18px;
}

.motivation-box span {
    color: #5f6673;
    line-height: 1.6;
}

/* =========================================================
   START: SPLIT-SCREEN PREMIUM LANDING PAGE
   PURPOSE:
   - Create a modern two-panel product landing experience
   - Preserve all existing exam, result and payment styles
   - Improve conversion for the free trial and paid access
========================================================= */

body{
    min-height:100vh;

    background:
        radial-gradient(
            circle at top left,
            rgba(30,91,184,.10),
            transparent 30%
        ),
        linear-gradient(
            180deg,
            #edf3fb,
            #f8fafc
        );
}

.site-header{
    position:relative;
    z-index:70;

    padding:12px 5%;

    background:#ffffff;

    box-shadow:
        0 1px 0 rgba(15,23,42,.08),
        0 8px 28px rgba(18,60,141,.07);
}

.brand-mark{
    position:relative;
    overflow:hidden;

    background:
        linear-gradient(
            135deg,
            #123c8d,
            #1e5bb8
        );

    box-shadow:
        0 7px 16px rgba(18,60,141,.26);
}

.brand-mark::after{
    content:"";
    position:absolute;
    inset:0;

    background:
        linear-gradient(
            135deg,
            rgba(255,255,255,.30),
            transparent 55%
        );
}

.premium-access-shell{
    width:100%;
    min-height:calc(100vh - 70px);
    margin:0;
    padding:0;
}

.premium-access-layout{
    display:grid;
    grid-template-columns:minmax(0,1.28fr) minmax(420px,.98fr);

    width:100%;
    min-height:calc(100vh - 70px);

    background:#ffffff;
}

/* =========================================================
   START: LEFT PROMOTIONAL PANEL
========================================================= */

.premium-promo-panel{
    position:relative;
    overflow:hidden;
    isolation:isolate;

    display:flex;
    align-items:center;

    min-height:calc(100vh - 70px);
    padding:clamp(48px,7vw,100px);

    background:
        linear-gradient(
            135deg,
            #020617 0%,
            #07142f 48%,
            #0b2450 100%
        );

    color:#ffffff;
}

.premium-promo-panel::before{
    content:"";
    position:absolute;
    z-index:-1;
    inset:0;

    opacity:.32;

    background-image:
        radial-gradient(
            circle at 1px 1px,
            rgba(255,255,255,.17) 1px,
            transparent 0
        );

    background-size:32px 32px;
}

.premium-promo-panel::after{
    content:"";
    position:absolute;
    z-index:-1;
    inset:0;

    background:
        linear-gradient(
            90deg,
            transparent 0%,
            rgba(30,91,184,.09) 55%,
            rgba(30,91,184,.16) 100%
        );
}

.promo-glow{
    position:absolute;
    z-index:-1;

    border-radius:50%;
    filter:blur(10px);
    pointer-events:none;
}

.promo-glow-one{
    width:420px;
    height:420px;
    right:-180px;
    bottom:-170px;

    background:
        radial-gradient(
            circle,
            rgba(30,91,184,.36),
            rgba(30,91,184,0) 70%
        );
}

.promo-glow-two{
    width:320px;
    height:320px;
    top:-130px;
    left:-130px;

    background:
        radial-gradient(
            circle,
            rgba(246,184,0,.12),
            rgba(246,184,0,0) 70%
        );
}

.promo-content{
    width:min(760px,100%);
    margin:auto;
}

.promo-brand-pill{
    display:inline-flex;
    align-items:center;
    gap:8px;

    margin-bottom:26px;
    padding:8px 13px;

    border:1px solid rgba(255,255,255,.17);
    border-radius:999px;

    background:rgba(255,255,255,.06);
    color:#dbeafe;

    font-size:11px;
    font-weight:900;
    letter-spacing:.11em;

    backdrop-filter:blur(8px);
}

.promo-content h1{
    margin:0;

    color:#ffffff;

    font-size:clamp(44px,5.5vw,76px);
    font-weight:950;
    line-height:1.02;
    letter-spacing:-.045em;
}

.promo-content h1 span{
    display:block;

    margin-top:10px;

    background:
        linear-gradient(
            90deg,
            #60a5fa,
            #3b82f6 50%,
            #f6b800
        );

    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
}

.promo-intro{
    max-width:650px;
    margin:24px 0 30px;

    color:#cbd5e1;

    font-size:16px;
    line-height:1.75;
}

.promo-feature-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;

    margin:0 0 28px;
}

.promo-feature{
    display:flex;
    align-items:flex-start;
    gap:12px;

    padding:15px;

    border:1px solid rgba(255,255,255,.09);
    border-radius:14px;

    background:rgba(255,255,255,.045);

    backdrop-filter:blur(8px);

    transition:
        transform .2s ease,
        border-color .2s ease,
        background .2s ease;
}

.promo-feature:hover{
    transform:translateY(-3px);

    border-color:rgba(96,165,250,.36);

    background:rgba(30,91,184,.12);
}

.promo-feature-icon{
    display:grid;
    place-items:center;
    flex:0 0 42px;

    width:42px;
    height:42px;

    border:1px solid rgba(96,165,250,.28);
    border-radius:12px;

    background:rgba(30,91,184,.15);

    font-size:18px;
}

.promo-feature strong{
    display:block;

    margin-bottom:4px;

    color:#ffffff;

    font-size:13px;
}

.promo-feature small{
    display:block;

    color:#94a3b8;

    font-size:10px;
    line-height:1.45;
}

.promo-price-card{
    display:inline-flex;
    align-items:center;
    gap:13px;
    flex-wrap:wrap;

    padding:13px 16px;

    border:1px solid rgba(246,184,0,.32);
    border-radius:14px;

    background:
        linear-gradient(
            135deg,
            rgba(246,184,0,.12),
            rgba(246,184,0,.04)
        );
}

.promo-price-label{
    padding:5px 8px;

    border-radius:999px;

    background:#f6b800;
    color:#3f2d00;

    font-size:9px;
    font-weight:950;
    letter-spacing:.08em;
}

.promo-price-card strong{
    color:#fde047;

    font-size:25px;
    line-height:1;
}

.promo-price-card small{
    color:#cbd5e1;

    font-size:10px;
}

.promo-trust-row{
    display:flex;
    flex-wrap:wrap;
    gap:8px;

    margin-top:22px;
}

.promo-trust-row span{
    padding:6px 9px;

    border:1px solid rgba(255,255,255,.10);
    border-radius:999px;

    background:rgba(255,255,255,.04);
    color:#bfdbfe;

    font-size:9px;
    font-weight:800;
}

/* =========================================================
   END: LEFT PROMOTIONAL PANEL
========================================================= */

/* =========================================================
   START: RIGHT FORM PANEL
========================================================= */

.premium-form-panel{
    display:flex;
    align-items:center;
    justify-content:center;

    min-height:calc(100vh - 70px);
    padding:clamp(30px,6vw,80px);

    background:
        radial-gradient(
            circle at top right,
            rgba(30,91,184,.07),
            transparent 35%
        ),
        #ffffff;
}

.premium-form-inner{
    width:min(510px,100%);
}

.form-top-icon{
    display:grid;
    place-items:center;

    width:54px;
    height:54px;
    margin-bottom:20px;

    border-radius:15px;

    background:
        linear-gradient(
            135deg,
            #eaf2ff,
            #f8fbff
        );

    font-size:24px;

    box-shadow:
        0 9px 22px rgba(18,60,141,.12);
}

.form-eyebrow{
    display:block;

    margin-bottom:8px;

    color:#1e5bb8;

    font-size:11px;
    font-weight:950;
    letter-spacing:.13em;
}

.premium-form-inner h2{
    margin:0 0 10px;

    color:#172033;

    font-size:clamp(34px,4vw,48px);
    font-weight:950;
    line-height:1.05;
    letter-spacing:-.035em;
}

.form-description{
    margin:0 0 24px;

    color:#68758b;

    font-size:13px;
    line-height:1.7;
}

.form-value-strip{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:8px;

    margin-bottom:24px;
}

.form-value-strip div{
    padding:12px 8px;

    border:1px solid #e0e8f3;
    border-radius:12px;

    background:#f8faff;

    text-align:center;
}

.form-value-strip strong{
    display:block;

    color:#123c8d;

    font-size:21px;
}

.form-value-strip span{
    display:block;

    margin-top:3px;

    color:#7a8799;

    font-size:8px;
    font-weight:800;
}

.premium-phone-form{
    width:100%;
    margin:0;
}

.premium-phone-form label{
    margin-bottom:8px;

    color:#334155;

    font-size:12px;
}

.premium-phone-field{
    position:relative;
    display:flex;
    align-items:center;

    margin-bottom:12px;
}

.premium-country-code{
    position:absolute;
    left:14px;
    z-index:2;

    display:inline-flex;
    align-items:center;

    height:38px;
    padding:0 10px;

    border-right:1px solid #d5dfeb;

    color:#123c8d;

    font-size:13px;
    font-weight:900;
}

.premium-phone-form input{
    margin:0;

    min-height:60px;
    padding:0 16px 0 112px;

    border:2px solid #dce4ee;
    border-radius:14px;

    background:#ffffff;
    color:#172033;

    font-size:16px;
    font-weight:700;

    box-shadow:
        0 6px 16px rgba(15,23,42,.04);

    transition:
        border-color .2s ease,
        box-shadow .2s ease,
        transform .2s ease;
}

.premium-phone-form input::placeholder{
    color:#9ba6b5;
    font-weight:500;
}

.premium-phone-form input:focus{
    outline:none;

    border-color:#1e5bb8;

    box-shadow:
        0 0 0 4px rgba(30,91,184,.11),
        0 8px 18px rgba(18,60,141,.08);

    transform:translateY(-1px);
}

.premium-start-button{
    position:relative;
    overflow:hidden;

    width:100%;
    min-height:58px;

    gap:9px;

    border:0;
    border-radius:14px;

    background:
        linear-gradient(
            135deg,
            #123c8d,
            #1e5bb8
        );

    color:#ffffff;

    font-size:14px;
    letter-spacing:.02em;

    box-shadow:
        0 12px 24px rgba(18,60,141,.30);

    transition:
        transform .2s ease,
        box-shadow .2s ease,
        filter .2s ease;

    animation:premiumStartPulse 2.6s infinite;
}

.premium-start-button::before{
    content:"";
    position:absolute;
    top:0;
    left:-120%;

    width:48%;
    height:100%;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255,255,255,.55),
            transparent
        );

    transform:skewX(-25deg);

    animation:premiumStartShine 2.7s infinite;
}

.premium-start-button > *{
    position:relative;
    z-index:2;
}

.premium-start-icon{
    font-size:18px;
}

.premium-start-arrow{
    margin-left:auto;

    font-size:20px;

    transition:transform .2s ease;
}

.premium-start-button:hover{
    transform:translateY(-2px);

    filter:brightness(1.08);

    box-shadow:
        0 16px 31px rgba(18,60,141,.38);
}

.premium-start-button:hover .premium-start-arrow{
    transform:translateX(4px);
}

.free-trial-note{
    display:flex;
    align-items:flex-start;
    gap:10px;

    margin-top:17px;
    padding:12px 13px;

    border:1px solid #cdebd9;
    border-radius:12px;

    background:#f0fbf4;
}

.free-trial-icon{
    display:grid;
    place-items:center;
    flex:0 0 28px;

    width:28px;
    height:28px;

    border-radius:50%;

    background:#178447;
    color:#ffffff;

    font-size:13px;
    font-weight:900;
}

.free-trial-note strong{
    display:block;

    margin-bottom:2px;

    color:#166534;

    font-size:11px;
}

.free-trial-note small{
    display:block;

    color:#557361;

    font-size:9px;
    line-height:1.4;
}

.premium-small-note{
    margin:16px 0 0 !important;

    color:#7a8799 !important;

    font-size:10px !important;
    line-height:1.5 !important;
}

.premium-security-line{
    display:flex;
    align-items:center;
    gap:6px;

    margin-top:16px;
    padding-top:15px;

    border-top:1px solid #e5eaf1;

    color:#8894a5;

    font-size:9px;
}

.premium-form-error{
    margin-bottom:16px;
}

/* =========================================================
   END: RIGHT FORM PANEL
========================================================= */

@keyframes premiumStartPulse{
    0%{
        box-shadow:
            0 12px 24px rgba(18,60,141,.30),
            0 0 0 0 rgba(30,91,184,.40);
    }

    70%{
        box-shadow:
            0 14px 27px rgba(18,60,141,.33),
            0 0 0 12px rgba(30,91,184,0);
    }

    100%{
        box-shadow:
            0 12px 24px rgba(18,60,141,.30),
            0 0 0 0 rgba(30,91,184,0);
    }
}

@keyframes premiumStartShine{
    0%{
        left:-120%;
    }

    48%{
        left:145%;
    }

    100%{
        left:145%;
    }
}

@media(max-width:1050px){

    .premium-access-layout{
        grid-template-columns:1fr;
    }

    .premium-promo-panel,
    .premium-form-panel{
        min-height:auto;
    }

    .premium-promo-panel{
        padding:60px 28px;
    }

    .premium-form-panel{
        padding:55px 24px;
    }

    .promo-content{
        width:min(820px,100%);
    }
}

@media(max-width:720px){

    .premium-promo-panel{
        padding:42px 18px;
    }

    .promo-content h1{
        font-size:44px;
    }

    .promo-intro{
        font-size:13px;
    }

    .promo-feature-list{
        grid-template-columns:1fr;
    }

    .premium-form-panel{
        padding:40px 16px;
    }

    .premium-form-inner h2{
        font-size:36px;
    }
}

@media(max-width:420px){

    .promo-content h1{
        font-size:37px;
    }

    .promo-price-card{
        align-items:flex-start;
        flex-direction:column;
        gap:7px;
    }

    .form-value-strip{
        gap:5px;
    }

    .form-value-strip div{
        padding:10px 4px;
    }

    .premium-country-code{
        left:9px;
        padding:0 7px;
        font-size:11px;
    }

    .premium-phone-form input{
        padding-left:96px;
        font-size:14px;
    }
}

@media(prefers-reduced-motion:reduce){

    .premium-start-button,
    .premium-start-button::before{
        animation:none;
    }
}

/* =========================================================
   END: SPLIT-SCREEN PREMIUM LANDING PAGE
========================================================= */
