:root{--navy:#142f57;--orange:#e0781c;--cream:#fcf7ef;--border:#e4ded5;--muted:#6d7888}
*{box-sizing:border-box}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--cream);color:#24334a}
header{height:82px;background:#fff;border-bottom:1px solid #eee;display:flex;align-items:center}
.wrap{width:min(1180px,92%);margin:auto}
.header-wrap{width:min(1180px,92%);margin:auto;display:flex;align-items:center;gap:18px}
.logo{width:76px;height:70px;object-fit:contain}
.portal-title{font-family:Georgia,serif;line-height:1;margin-right:auto}
.portal-title .main{display:block;color:var(--navy);font-size:20px;font-weight:700;letter-spacing:.5px}
.portal-title .sub{display:block;color:var(--orange);font-size:12px;letter-spacing:2.5px;margin-top:5px;font-weight:700}
.header-link{color:var(--navy);text-decoration:none;font-size:14px;font-weight:600}
.login{background:var(--navy);color:white;padding:11px 18px;border-radius:5px;text-decoration:none;font-size:13px}
.page-banner{background:linear-gradient(110deg,#fff4e5,#f6edf1);border-bottom:1px solid var(--border);padding:38px 0 34px}
.breadcrumb{font-size:12px;color:var(--muted);margin-bottom:20px}.breadcrumb a{color:var(--navy);text-decoration:none;font-weight:600}
.kicker{color:var(--orange);font-size:12px;font-weight:700;letter-spacing:3px;margin-bottom:8px}
.page-banner h1{margin:0;color:var(--navy);font-family:Georgia,serif;font-size:42px}
.page-banner p{margin:10px 0 0;color:#66748a;font-size:15px}
.container{width:min(1000px,92%);margin:34px auto 70px}
.process{display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-bottom:24px}
.step{padding:17px 20px;border-right:1px solid var(--border)}.step:last-child{border-right:0}.step.active{background:#fff7ed}
.step-number{width:28px;height:28px;border-radius:50%;background:#eef2f7;color:var(--navy);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;margin-right:8px}
.step.active .step-number{background:var(--orange);color:#fff}.step strong{color:var(--navy);font-size:14px}.step small{display:block;color:var(--muted);margin:8px 0 0 39px;line-height:1.45}
.form-card{background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 30px rgba(20,47,87,.06);overflow:hidden}
.form-header{padding:25px 30px;border-bottom:1px solid var(--border)}.form-header h2{margin:0;color:var(--navy);font-family:Georgia,serif;font-size:24px}.form-header p{margin:7px 0 0;color:var(--muted);font-size:13px}
.required-note{float:right;color:#8a8f98;font-size:12px}
.section{padding:26px 30px;border-bottom:1px solid #eee8df}.section-title{display:flex;align-items:center;gap:10px;margin:0 0 20px;color:var(--navy);font-family:Georgia,serif;font-size:19px}.section-title:before{content:"";width:4px;height:22px;background:var(--orange);border-radius:4px}
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px 22px}.field.full{grid-column:1/-1}
label{display:block;color:#263650;font-size:13px;font-weight:700;margin-bottom:7px}.req{color:#d14c28}
input,select,textarea{width:100%;border:1px solid #d9dfe6;border-radius:6px;padding:12px 13px;font:inherit;font-size:13px;color:#25344b;background:#fff;outline:none}
input:focus,select:focus,textarea:focus{border-color:#9aabc1;box-shadow:0 0 0 3px rgba(20,47,87,.07)}
textarea{min-height:120px;resize:vertical}.help{display:block;color:#8a919c;font-size:11px;margin-top:5px;line-height:1.4}.counter{text-align:right;font-size:11px;color:#8a919c;margin-top:4px}
.checkbox-row{display:flex;align-items:flex-start;gap:10px;margin-top:4px}.checkbox-row input{width:17px;height:17px;margin-top:1px}.checkbox-row label{margin:0;font-weight:500;line-height:1.55}
.form-footer{padding:22px 30px;background:#fcfbf8;display:flex;justify-content:space-between;align-items:center;gap:20px}.save-note{color:#7a8491;font-size:12px}.buttons{display:flex;gap:10px}
.btn{border:0;border-radius:6px;padding:12px 21px;font-size:13px;font-weight:700;cursor:pointer}.btn-secondary{background:#fff;border:1px solid #ccd3dc;color:var(--navy)}.btn-primary{background:var(--navy);color:#fff}
footer{background:var(--navy);color:#dfe7f2;padding:28px 0}.footer-wrap{width:min(1180px,92%);margin:auto;display:flex;justify-content:space-between;gap:20px;font-size:12px}
@media(max-width:760px){.header-link{display:none}.page-banner h1{font-size:32px}.process,.grid{grid-template-columns:1fr}.step{border-right:0;border-bottom:1px solid var(--border)}.step:last-child{border-bottom:0}.form-header,.section,.form-footer{padding:20px}.required-note{float:none;display:block;margin-top:7px}.form-footer{align-items:flex-start;flex-direction:column}}

/* =====================================================
   REGISTRATION DISCLAIMER MODAL
   ===================================================== */

body.disclaimer-active {
    overflow: hidden;
}

.registration-form-hidden {
    display: none !important;
}

.disclaimer-overlay {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(12, 27, 50, 0.72);
    backdrop-filter: blur(4px);
}

.disclaimer-modal {
    width: min(720px, 100%);
    max-height: min(86vh, 760px);
    background: #fff;
    border: 1px solid #e4ded5;
    border-radius: 14px;
    box-shadow: 0 24px 70px rgba(10, 25, 50, 0.28);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    animation: disclaimerIn .22s ease-out;
}

@keyframes disclaimerIn {
    from {
        opacity: 0;
        transform: translateY(12px) scale(.985);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.disclaimer-header {
    padding: 22px 28px 18px;
    background: linear-gradient(110deg, #fff7eb, #f8eef1);
    border-bottom: 1px solid var(--border);
}

.disclaimer-kicker {
    color: var(--orange);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 2px;
    margin-bottom: 6px;
}

.disclaimer-header h2 {
    margin: 0;
    color: var(--navy);
    font-family: Georgia, serif;
    font-size: 25px;
}

.disclaimer-body {
    padding: 22px 28px 10px;
    overflow-y: auto;
    color: #435067;
    font-size: 13px;
    line-height: 1.6;
}

.disclaimer-body p {
    margin: 0 0 14px;
}

.disclaimer-body strong {
    color: #263650;
}

.disclaimer-list {
    margin: 8px 0 18px;
    padding-left: 20px;
}

.disclaimer-list li {
    margin-bottom: 8px;
}

.disclaimer-note {
    padding: 13px 15px;
    margin: 15px 0 8px;
    background: #fff8ed;
    border-left: 4px solid var(--orange);
    border-radius: 5px;
    color: #59657a;
    font-size: 12px;
}

.disclaimer-consent {
    padding: 14px 28px 20px;
    border-top: 1px solid #eee8df;
    background: #fcfbf8;
}

.disclaimer-check {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: #263650;
    font-size: 12px;
    line-height: 1.55;
    cursor: pointer;
}

.disclaimer-check input {
    width: 17px;
    height: 17px;
    flex: 0 0 17px;
    margin: 1px 0 0;
    accent-color: var(--navy);
}

.disclaimer-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 0 28px 24px;
    background: #fcfbf8;
}

.disclaimer-btn {
    min-width: 145px;
    min-height: 42px;
    border-radius: 6px;
    padding: 11px 18px;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    transition: .2s ease;
}

.disclaimer-btn-back {
    background: #fff;
    color: var(--navy);
    border: 1px solid #ccd3dc;
}

.disclaimer-btn-back:hover {
    border-color: var(--navy);
    background: #f8f5ef;
}

.disclaimer-btn-agree {
    background: var(--navy);
    color: #fff;
    border: 1px solid var(--navy);
}

.disclaimer-btn-agree:hover:not(:disabled) {
    background: var(--orange);
    border-color: var(--orange);
}

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

.disclaimer-error {
    display: none;
    margin-top: 7px;
    color: #c43d2d;
    font-size: 11px;
}

@media (max-width: 600px) {
    .disclaimer-overlay {
        padding: 12px;
    }

    .disclaimer-modal {
        max-height: 92vh;
        border-radius: 11px;
    }

    .disclaimer-header,
    .disclaimer-body,
    .disclaimer-consent {
        padding-left: 19px;
        padding-right: 19px;
    }

    .disclaimer-actions {
        padding-left: 19px;
        padding-right: 19px;
        flex-direction: column-reverse;
    }

    .disclaimer-btn {
        width: 100%;
    }

    .disclaimer-header h2 {
        font-size: 21px;
    }
}

/* =====================================================
   SELECTED COUNTRY CONFIRMATION
   ===================================================== */

.country-confirmation {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: -2px;
    padding: 14px 16px;
    background: linear-gradient(110deg, #fff7eb, #f7f0f1);
    border: 1px solid #eadfd1;
    border-left: 4px solid var(--orange);
    border-radius: 8px;
}

.country-confirmation[hidden],
.selected-country-strip[hidden] {
    display: none !important;
}

.country-flag {
    width: 58px;
    height: 42px;
    flex: 0 0 58px;
    display: grid;
    place-items: center;
    background: #fff;
    border: 1px solid #ded8cf;
    border-radius: 5px;
    font-size: 31px;
    line-height: 1;
    box-shadow: 0 3px 10px rgba(20,47,87,.07);
}

.country-confirmation-text {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.country-confirmation-label {
    color: var(--orange);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 1.5px;
    margin-bottom: 3px;
}

.country-confirmation-text strong {
    color: var(--navy);
    font-size: 15px;
}

.country-confirmation-text small {
    color: var(--muted);
    font-size: 11px;
    margin-top: 3px;
}

/* Persistent confirmation in the form header */
.form-header {
    position: relative;
}

.selected-country-strip {
    position: absolute;
    right: 30px;
    top: 20px;
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 7px 11px;
    background: #fff8ed;
    border: 1px solid #eadfd1;
    border-radius: 6px;
}

.selected-strip-flag {
    font-size: 23px;
    line-height: 1;
}

.selected-country-strip span:last-child {
    display: flex;
    flex-direction: column;
}

.selected-country-strip b {
    color: var(--navy);
    font-size: 11px;
    line-height: 1.2;
}

.selected-country-strip small {
    color: #888;
    font-size: 9px;
    margin-top: 2px;
}

@media (max-width: 760px) {
    .selected-country-strip {
        position: static;
        width: fit-content;
        margin: 12px 0 0;
    }

    .country-confirmation {
        margin-top: 0;
    }
}
