:root {
    --veldoo-blue: #356681;
    --veldoo-blue-deep: #244d64;
    --veldoo-orange: #fc4c02;
    --veldoo-orange-dark: #d83f00;
    --veldoo-paper: #f4f7f9;
    --veldoo-line: #dce6eb;
    --veldoo-muted: #667b87;
    --veldoo-shadow: 0 30px 80px rgba(35, 77, 100, .16);
}

* { box-sizing: border-box; }

body.veldoo-portal-body,
body.veldoo-legal-body {
    margin: 0;
    background:
        radial-gradient(circle at 8% 12%, rgba(252, 76, 2, .10), transparent 28rem),
        radial-gradient(circle at 92% 22%, rgba(53, 102, 129, .13), transparent 32rem),
        var(--veldoo-paper);
    color: var(--veldoo-blue-deep);
    font-family: "DM Sans", Arial, sans-serif;
}

.portal-topbar {
    position: relative;
    z-index: 100;
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 78px;
    padding: 14px max(4vw, 22px);
    border-bottom: 1px solid rgba(53, 102, 129, .10);
    background: rgba(255, 255, 255, .92);
    backdrop-filter: blur(18px);
}

.portal-brand { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; }
.portal-brand-icon { width: 34px; height: 34px; object-fit: contain; }
.portal-brand-wordmark { width: 116px; height: auto; object-fit: contain; }
.portal-topbar-actions { display: flex; align-items: center; gap: 12px; }
.portal-language-switch { display: inline-flex; align-items: center; padding: 3px; border: 1px solid var(--veldoo-line); border-radius: 999px; background: var(--veldoo-paper); }
.portal-language-switch a { min-width: 34px; padding: 6px 8px; border-radius: 999px; color: var(--veldoo-muted); font-size: 11px; font-weight: 900; text-align: center; text-decoration: none; }
.portal-language-switch a.active { background: var(--veldoo-blue); color: #fff; }
.portal-text-link { color: var(--veldoo-blue); font-weight: 700; text-decoration: none; }
.portal-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 20px;
    border: 0;
    border-radius: 999px;
    background: var(--veldoo-orange);
    color: #fff !important;
    font-weight: 800;
    text-decoration: none;
    box-shadow: 0 13px 28px rgba(252, 76, 2, .20);
    transition: transform .18s ease, background .18s ease;
}
.portal-button:hover { background: var(--veldoo-orange-dark); transform: translateY(-1px); }

/* Login */
.veldoo-portal-body .main_wrapper,
.veldoo-portal-body .main_content { min-height: calc(100vh - 78px); }
.veldoo-portal-body .login_form_section {
    position: relative;
    min-height: calc(100vh - 78px);
    padding: clamp(38px, 6vw, 86px) max(5vw, 22px);
    overflow: hidden;
}
.veldoo-portal-body .login_form_section::before {
    content: "";
    position: absolute;
    inset: clamp(28px, 4vw, 56px) max(5vw, 22px) clamp(28px, 4vw, 56px) 50%;
    border-radius: 36px;
    background: linear-gradient(180deg, rgba(36, 77, 100, .04), rgba(36, 77, 100, .32)), url("assets/veldoo-hero-v1.jpg") center/cover;
    box-shadow: var(--veldoo-shadow);
}
.veldoo-portal-body .login_form_container { position: relative; z-index: 2; max-width: 1280px; padding: 0 !important; }
.veldoo-portal-body .login_form_content { display: flex; align-items: center; min-height: 620px; padding: 0 !important; }
.veldoo-portal-body .login_form_box_cover {
    width: min(520px, 100%);
    margin: 0;
    padding: clamp(28px, 4vw, 48px);
    border: 1px solid rgba(53, 102, 129, .12);
    border-radius: 30px;
    background: rgba(255, 255, 255, .96);
    box-shadow: var(--veldoo-shadow);
}
.veldoo-portal-body .login_form { width: 100%; }
.veldoo-portal-body .login_form .logo_img { width: 170px; max-height: 50px; object-fit: contain; margin: 0 auto 26px; display: block; }
.veldoo-portal-body .form_title .sub_title { color: var(--veldoo-blue-deep); font: 800 clamp(28px, 4vw, 40px)/1.1 "Manrope", sans-serif; }
.veldoo-portal-body .form_title .tagline { color: var(--veldoo-muted); font-size: 16px; }
.veldoo-portal-body .divider_form { border-color: var(--veldoo-line); opacity: 1; }
.veldoo-portal-body .form-lable,
.veldoo-portal-body .label_form { color: var(--veldoo-blue-deep); font-weight: 800; }
.veldoo-portal-body .loginField,
.veldoo-portal-body .input_text {
    min-height: 52px;
    border: 1px solid var(--veldoo-line) !important;
    border-radius: 14px !important;
    background: #fff !important;
    color: var(--veldoo-blue-deep) !important;
    box-shadow: none !important;
}
.veldoo-portal-body .loginField:focus,
.veldoo-portal-body .input_text:focus { border-color: var(--veldoo-blue) !important; box-shadow: 0 0 0 4px rgba(53, 102, 129, .10) !important; }
.veldoo-portal-body .submit_btn {
    min-height: 52px;
    border: 0 !important;
    border-radius: 999px !important;
    background: var(--veldoo-orange) !important;
    color: #fff !important;
    font-weight: 800;
    box-shadow: 0 14px 30px rgba(252, 76, 2, .22);
}
.veldoo-portal-body .link_hyper { color: var(--veldoo-orange) !important; font-weight: 800; }

/* Registration */
.veldoo-portal-body .content-wrapper { min-height: calc(100vh - 78px); padding: clamp(26px, 4vw, 58px) max(4vw, 18px); }
.veldoo-portal-body .form_section.p_form { padding: 0 !important; }
.veldoo-portal-body .art_form { max-width: 1380px; margin: auto; overflow: hidden; border: 1px solid rgba(53, 102, 129, .12); border-radius: 36px; background: #fff; box-shadow: var(--veldoo-shadow); }
.veldoo-portal-body .art_form > article { padding: 0; }
.veldoo-portal-body .art_form > article > .row { margin: 0; align-items: stretch; }
.veldoo-portal-body .art_form > article > .row > div { padding: 0 !important; }
.veldoo-portal-body .side_img_section { height: 100%; min-height: 850px; overflow: hidden; background: var(--veldoo-blue); }
.veldoo-portal-body .portal-side-photo { width: 100%; height: 100%; object-fit: cover; object-position: 58% center; }
.veldoo-portal-body .portal-side-copy { position: absolute; inset: auto 38px 40px; z-index: 2; padding: 24px; border-radius: 22px; background: rgba(36, 77, 100, .82); color: #fff; text-align: left; backdrop-filter: blur(13px); }
.veldoo-portal-body .portal-side-copy span { color: #ffb18f; font-size: 12px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.veldoo-portal-body .portal-side-copy h2 { margin: 8px 0 0; font: 800 34px/1.08 "Manrope", sans-serif; }
.veldoo-portal-body .top_form_heading { padding: 44px 44px 12px; }
.veldoo-portal-body .top_form_heading .sm_text { color: var(--veldoo-orange); font-size: 12px; font-weight: 900; letter-spacing: .16em; }
.veldoo-portal-body .top_form_heading .form_bold_text { margin-top: 5px; color: var(--veldoo-blue-deep); font: 800 36px/1.1 "Manrope", sans-serif; }
.veldoo-portal-body .input_form { padding: 12px 44px 40px; }
.veldoo-portal-body .input_form .row { row-gap: 8px; }
.veldoo-portal-body .sort_info { color: var(--veldoo-muted); }
.veldoo-portal-body .iti { width: 100%; }

/* Legal pages */
.veldoo-legal-body .main_body_content { padding: 70px max(4vw, 20px) 90px !important; background: transparent !important; }
.veldoo-legal-body .main_header,
.veldoo-legal-body .main_footer,
.veldoo-legal-body .scroll-to-top-button { display: none !important; }
.veldoo-legal-body .uber_uns_section { padding: 0 !important; }
.veldoo-legal-body .uns_container { max-width: 1060px !important; padding: 0 !important; }
.veldoo-legal-body .uns_right_content { margin-top: 0 !important; padding: clamp(28px, 5vw, 64px) !important; border: 1px solid rgba(53, 102, 129, .12); border-radius: 32px !important; background: rgba(255, 255, 255, .96) !important; box-shadow: var(--veldoo-shadow) !important; }
.veldoo-legal-body .legal-eyebrow { margin: 0 0 12px; color: var(--veldoo-orange); font-size: 12px; font-weight: 900; letter-spacing: .15em; text-align: center; text-transform: uppercase; }
.veldoo-legal-body .unsHeading { margin: 0 0 14px !important; color: var(--veldoo-blue-deep) !important; font: 800 clamp(34px, 5vw, 54px)/1.04 "Manrope", sans-serif !important; overflow-wrap: anywhere; hyphens: auto; }
.veldoo-legal-body .uns_para { max-width: 680px; margin: 0 auto 40px !important; color: var(--veldoo-muted) !important; font-size: 17px !important; }
.veldoo-legal-body .terms-content { padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; color: #3e5360 !important; font-size: 15px !important; line-height: 1.78 !important; }
.veldoo-legal-body .terms-content h5,
.veldoo-legal-body .terms-content h6 { color: var(--veldoo-blue-deep) !important; font-family: "Manrope", sans-serif; border-bottom-color: var(--veldoo-line) !important; }
.veldoo-legal-body .terms-content a { color: var(--veldoo-orange); overflow-wrap: anywhere; }
.veldoo-legal-body .terms-content .privacy-lead-notice { color: var(--veldoo-blue-deep); font-size: 14px; line-height: 1.65; }
.veldoo-legal-body .terms-content .privacy-address { color: var(--veldoo-blue-deep); font-weight: 700; }
.veldoo-legal-body .terms-content .privacy-final-notice { margin-top: 28px; color: var(--veldoo-blue-deep); font-size: 14px; }
.veldoo-legal-body .terms-content .legal-date { margin-bottom: 28px; color: var(--veldoo-muted); font-size: 14px; font-weight: 700; text-align: left; }
.veldoo-legal-body .terms-content .legal-final { margin-top: 32px; color: var(--veldoo-blue-deep); font-weight: 700; }
.veldoo-legal-body .legal-footer { display: flex; justify-content: space-between; gap: 24px; max-width: 1060px; margin: 0 auto; padding: 28px 0 0; color: var(--veldoo-muted); font-size: 13px; }

@media (max-width: 900px) {
    .veldoo-portal-body .login_form_section::before { display: none; }
    .veldoo-portal-body .login_form_content { min-height: auto; justify-content: center; }
    .veldoo-portal-body .login_form_box_cover { margin: auto; }
    .veldoo-portal-body .side_img_section { min-height: 360px; }
    .veldoo-portal-body .top_form_heading { padding: 34px 24px 10px; }
    .veldoo-portal-body .input_form { padding: 10px 24px 32px; }
}

@media (max-width: 620px) {
    .portal-topbar { min-height: 68px; padding: 12px 16px; }
    .portal-brand-wordmark { width: 94px; }
    .portal-text-link { display: none; }
    .portal-language-switch a { min-width: 30px; padding-inline: 6px; }
    .portal-button { min-height: 40px; padding: 0 15px; font-size: 12px; }
    .veldoo-portal-body .login_form_section { min-height: calc(100vh - 68px); padding: 22px 16px 48px; }
    .veldoo-portal-body .login_form_box_cover { padding: 26px 20px; border-radius: 24px; }
    .veldoo-portal-body .content-wrapper { padding: 16px 10px 40px; }
    .veldoo-portal-body .art_form { border-radius: 25px; }
    .veldoo-portal-body .side_img_section { min-height: 270px; }
    .veldoo-portal-body .portal-side-copy { inset: auto 16px 16px; padding: 17px; }
    .veldoo-portal-body .portal-side-copy h2 { font-size: 25px; }
    .veldoo-legal-body .main_body_content { padding: 38px 12px 65px !important; }
    .veldoo-legal-body .uns_right_content { padding: 28px 20px !important; border-radius: 24px !important; }
    .veldoo-legal-body .unsHeading { font-size: 32px !important; }
    .veldoo-legal-body .legal-footer { flex-direction: column; padding-inline: 12px; }
}
