.spmi-elementor-wrapper {
    width: 100%;
    max-width: 100%;
    display: block;
    box-sizing: border-box;
}

/* ------------------------------
   GLOBAL TYPOGRAPHY
--------------------------------*/
#spmi-diagnostic-container {
    font-family: 'Roboto', sans-serif;
    font-size: 15px;
    line-height: 1.5em;
    font-weight: 400;
    color: #000000;
    max-width: 800px;
    margin: 0 auto;
    padding: 20px;
}

/* HEADINGS */
#spmi-diagnostic-container h1,
#spmi-diagnostic-container h2,
#spmi-diagnostic-container h3,
#spmi-diagnostic-container h4,
#spmi-diagnostic-container h5,
#spmi-diagnostic-container h6 {
    font-family: 'Roboto', sans-serif;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.5em;
    color: #710A14;
    margin-bottom: 16px;
}

/* CARD */
.diagnostic-card {
    background: #fff;
    border-radius: 16px;
    padding: 40px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.08);
    border: 1px solid #eef2f5;
}

/* ------------------------------
   PROGRESS BAR + COUNTER
--------------------------------*/
.progress-container,
#progress-bar,
#step-counter {
    display: none;
}

.progress-container {
    background: #f1f5f9;
    border-radius: 10px;
    height: 15px;
    width: 100%;
    margin-bottom: 20px;
}

.progress-bar {
    background: #0f172a;
    height: 100%;
    width: 0%;
    transition: width .4s ease;
}

.step-counter {
    font-size: 16px;
    font-weight: 700;
    color: #710A14;
    margin-bottom: 30px;
}

/* QUIZ STEPS */
.quiz-step { display:none; }
.quiz-step.active { display:block; }

/* ------------------------------
   FORM FIELDS — UNIFIED LOOK
--------------------------------*/
.form-field {
    margin-bottom: 25px;
}

.form-field label {
    display:block;
    font-weight:700;
    margin-bottom:8px;
    color:#710A14;
}

/* All inputs + select look identical */
.form-field input,
.spmi-select,
#user-firstname,
#user-surname,
#user-phone,
#user-email,
#user-contactpref {
    width: 100%;
    padding: 16px 16px;
    height: 60px;
    font-size: 16px;
    font-family: "Inter", sans-serif;
    border: 1px solid #ccc;
    border-radius: 8px;
    background-color: #f9fafb;
    color: #333;
    box-sizing: border-box;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
}

/* Focus */
.form-field input:focus,
.spmi-select:focus {
    border-color: #2563eb;
    background: #fff;
    outline: none;
    box-shadow: 0 0 0 1px #2563eb;
}

/* Dropdown arrow */
.spmi-select {
    background-image: url("data:image/svg+xml;utf8,<svg fill='gray' height='20' viewBox='0 0 24 24' width='20' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/></svg>");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 16px;
}

/* Error message */
.spmi-error {
    color: #c00000 !important;
    font-size: 13px !important;
    margin-top: 2px !important;
    margin-bottom: 0 !important;
    padding: 0 !important;
    line-height: 1.2 !important;
    display: block !important;
}

/* Error border */
.spmi-invalid,
.spmi-select.spmi-invalid {
    border: 2px solid #c00000 !important;
    box-shadow: none !important;
}

/* ------------------------------
   ANSWER OPTIONS
--------------------------------*/
.spmi-option-wrapper {
    display: flex;
    align-items: center;
    gap: 16px;
    background:#f8fafc;
    border:2px solid #e2e8f0;
    border-radius:10px;
    padding:18px 22px;
    margin-bottom:16px;
    cursor:pointer;
}

.spmi-option-wrapper:hover {
    background:#f1f5f9;
    border-color:#cbd5e1;
}

.spmi-option-number {
    width: 36px;
    height: 36px;
    min-width: 36px;
    min-height: 36px;
    border-radius: 50%;
    background:#710a14;
    color:#fff;
    font-size:16px;
    font-weight:600;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
}

.spmi-option-wrapper input[type="radio"] {
    transform: scale(1.3);
    margin: 0 4px 0 0;
}

.spmi-option-wrapper label {
    flex: 1;
    font-size: 16px;
    line-height: 1.5em;
    color: #000;
}

/* Selected */
.spmi-option-wrapper.selected {
    border-color:#2563eb !important;
    background:#eef6ff !important;
}

/* ------------------------------
   NAV BUTTONS
--------------------------------*/
.diagnostic-nav {
    display:flex;
    justify-content:space-between;
    margin-top:40px;
    padding-top:25px;
    border-top:1px solid #e2e8f0;
}

.btn {
    padding:14px 26px;
    border-radius:8px;
    font-size:16px;
    font-weight:700;
    cursor:pointer;
    border:none;
}

.btn-primary { background:#0f172a; color:#fff; }
.btn-secondary { background:#e2e8f0; color:#475569; }

/* ------------------------------
   RESULTS
--------------------------------*/
#results-container {
    display:none;
}

/* SUCCESS BOX */
#success-box {
    display:none;
    margin-top:25px;
    padding:22px;
    background:#ecfdf5;
    border-left:5px solid #059669;
    border-radius:8px;
    color:#065f46;
    font-weight:700;
}

/* ------------------------------
   MOBILE
--------------------------------*/
@media (max-width: 768px) {

    .diagnostic-card {
        padding: 25px;
    }

    .spmi-option-wrapper {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
        padding: 16px 18px;
    }

    .spmi-option-number {
        margin-bottom: 4px;
    }

    .spmi-option-wrapper input[type="radio"] {
        margin: 0;
        transform: scale(1.4);
    }

    .btn, .btn-cta {
        width: 100%;
        text-align: center;
        margin-top: 10px;
    }

    .diagnostic-nav {
        flex-direction: column !important;
        align-items: stretch;
        gap: 12px;
    }

    #next-btn {
        order: 1;
        width: 100%;
    }

    #prev-btn {
        order: 2;
        width: 100%;
    }
}

/* ------------------------------
   FINAL RESULTS LAYOUT (FIXED)
--------------------------------*/

/* MAIN RESULTS CARD */
.results-card {
    max-width: 700px;
    margin: 0 auto;
    background: #ffffff;
    border-radius: 16px;
    padding: 36px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.08);
    border: 1px solid #eef2f5;
    box-sizing: border-box;
}

/* RED HEADING */
.results-card h2 {
    color: #710A14;
    font-size: 26px;
    font-weight: 700;
    margin-bottom: 24px;
}

/* LIGHT GREY SCORE BOX */
.score-box {
    background: #f2f2f2;
    padding: 12px 16px;
    border-radius: 10px;
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 20px;
}

/* DIAGNOSTIC TEXT */
#result-diagnosis {
    font-size: 16px;
    line-height: 1.5;
    margin-bottom: 30px;
}

/* LARGE GREY BOX WITH RED LEFT BORDER */
.results-info-box {
    background: #f2f2f2;
    border-left: 4px solid #710A14;
    padding: 20px 24px;
    border-radius: 10px;
    margin-top: 20px;
}

/* THANK YOU TEXT */
.thankyou-text {
    font-size: 18px;
    font-weight: 700;
    color: #710A14;
    margin-bottom: 10px;
}

/* RECOMMENDED MODULES */
#recommended-modules {
    margin-top: 10px;
    padding-left: 20px;
    font-size: 16px;
    line-height: 1.5;
}

/* BLUE SEND RESULTS BUTTON */
#send-results-btn {
    background: #0073e6;
    color: #ffffff;
    padding: 12px 24px;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 700;
    border: none;
    cursor: pointer;
    margin-top: 20px;
}

