:root{
    --cb-primary: #113459;
    --cb-primary-dark: #0b2540;
    --cb-primary-soft: #edf4fb;
    --cb-secondary: #4b5f75;
    --cb-ink: #111827;
    --cb-soft: #f8fafc;
    --cb-border: rgba(17,24,39,.10);
    --cb-white: #ffffff;
}

.error {
    color: red !important;
}

body{
    color: var(--cb-ink);
    background: #fff;
}

.topbar{
    background: linear-gradient(90deg, rgba(17,52,89,.06), rgba(11,37,64,.04));
    border-bottom: 1px solid var(--cb-border);
}

.link-accent{
    color: var(--cb-primary);
    text-decoration: none;
}
.link-accent:hover{ text-decoration: underline; }

.navbar{
    position: sticky;
    top: 0;
    z-index: 1030;
    backdrop-filter: blur(10px);
    background: rgba(255,255,255,.94) !important;
    border-bottom: 1px solid var(--cb-border);
}

a.navbar-brand {
    display: flex;
    align-items: center;
    gap: 1rem;
    color: var(--cb-primary);
}

.cb-accentline{
    height: 3px;
    background: linear-gradient(90deg, var(--cb-primary), #4d6f91, var(--cb-primary-dark));
}

.btn-cb{
    --bs-btn-bg: var(--cb-primary);
    --bs-btn-border-color: var(--cb-primary);
    --bs-btn-hover-bg: #0d2b49;
    --bs-btn-hover-border-color: #0d2b49;
    --bs-btn-active-bg: #091f34;
    --bs-btn-active-border-color: #091f34;
    --bs-btn-color: #fff;
    border-radius: 999px;
    padding: .8rem 1.25rem;
    font-weight: 600;
}
.btn-cb:hover {
    color: #fff !important;
}

.btn-outline-cb{
    --bs-btn-color: var(--cb-primary);
    --bs-btn-border-color: rgba(17,52,89,.35);
    --bs-btn-hover-bg: var(--cb-primary);
    --bs-btn-hover-border-color: var(--cb-primary);
    --bs-btn-hover-color: #fff;
    border-radius: 999px;
    padding: .8rem 1.25rem;
    font-weight: 600;
}

.btn.dropdown-toggle:active, .btn.dropdown-toggle:focus-visible, .btn.dropdown-toggle.show {
    background: var(--cb-primary) !important;
    color: #fff !important;
}
.dropdown-item {
    padding: 0.5rem 1rem;
}

.cb-hero{
    position: relative;
    min-height: 60vh;
    background: url("https://images.pexels.com/photos/4491910/pexels-photo-4491910.jpeg") center/cover no-repeat;
    color: #fff;
    overflow: hidden;
}

@media (min-width: 992px){
    .cb-hero{
        min-height: 90vh;
    }
}

.cb-hero::before{
    content:"";
    position:absolute;
    inset:0;
    background:
    radial-gradient(900px circle at 18% 20%, rgba(17,52,89,.28), transparent 58%),
    radial-gradient(700px circle at 85% 12%, rgba(11,37,64,.16), transparent 55%),
    linear-gradient(90deg, rgba(9,12,18,.74) 0%, rgba(9,12,18,.48) 58%, rgba(9,12,18,.20) 100%);
}

.cb-hero::after{
    content:"";
    position:absolute;
    left:-10%;
    right:-10%;
    bottom:-80px;
    height:160px;
    background: var(--cb-soft);
    transform: rotate(-2deg);
    opacity:.98;
}

.cb-hero > .container{
    position: relative;
    z-index: 1;
}

.cb-pill{
    background: rgba(255,255,255,.10);
    border: 1px solid rgba(255,255,255,.22);
    color:#fff;
    font-size: var(--bs-btn-font-size);
}

.cb-panel{
    background: #113459;
    color:#fff;
    border-radius: 18px;
    box-shadow: 0 16px 40px rgba(17,24,39,.18);
    border: 1px solid rgba(255,255,255,.12);
}

.cb-panel .btn{
    border-radius: 999px;
    padding: .7rem 1.2rem;
    font-weight: 700;
}

.cb-kicker{
    letter-spacing: .08em;
    text-transform: uppercase;
    font-size: .8rem;
    color: rgba(17,24,39,.55);
    font-weight: 800;
}

.feature-card{
    border: 1px solid var(--cb-border);
    border-radius: 18px;
    transition: transform .15s ease, box-shadow .15s ease;
    background: #fff;
}

.feature-card:hover{
    transform: translateY(-2px);
    box-shadow: 0 14px 34px rgba(17,24,39,.12);
}

.icon-pill{
    width: 46px;
    height: 46px;
    border-radius: 16px;
    display:grid;
    place-items:center;
    background: rgba(17,52,89,.10);
    border: 1px solid rgba(17,52,89,.18);
    color: var(--cb-primary);
    flex-shrink: 0;
}

.shadow-soft{
    box-shadow: 0 14px 30px rgba(17,24,39,.12);
}

.cb-service-card{
    border: 1px solid var(--cb-border);
    border-radius: 18px;
    box-shadow: 0 14px 28px rgba(17,24,39,.10);
    background: #fff;
}

.cb-collage{ position: relative; }
.cb-collage img{
    border-radius: 18px;
    box-shadow: 0 14px 30px rgba(17,24,39,.16);
}
.cb-collage .img-a{ width: 78%; }
.cb-collage .img-b{
    position:absolute;
    width:56%;
    left:6%;
    bottom:-18%;
    border:8px solid #fff;
    background:#fff;
}

@media (max-width: 991.98px){
    .cb-collage .img-a{ width:100%; }
    .cb-collage .img-b{
    position: static;
    width:100%;
    margin-top:1rem;
    border-width:0;
    }
}

.step-line{
    position:absolute;
    left:22px;
    top:56px;
    bottom:8px;
    width:2px;
    background: rgba(17,24,39,.10);
}

.cb-band{
    position: relative;
    padding-bottom: 0;
    overflow: hidden;
}

.cb-band::before{
    content:"";
    position:absolute;
    inset:0;
    background:
    radial-gradient(900px circle at 10% 20%, rgba(17,52,89,.08), transparent 60%),
    radial-gradient(900px circle at 90% 10%, rgba(11,37,64,.08), transparent 55%),
    linear-gradient(180deg, #fff, #fff 52%, rgba(17,52,89,.03));
    z-index:0;
}

.cb-band::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    height:42%;
    background: #113459;
    z-index:0;
}

.cb-band .container{
    position: relative;
    z-index: 1;
}

.cb-card-img{
    border-radius: 18px 18px 0 0;
    object-fit: cover;
    height: 220px;
    width: 100%;
}

.cb-who-card{
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 16px 34px rgba(17,24,39,.14);
    background:#fff;
}

.accordion-button:not(.collapsed){
    background: var(--cb-primary-soft);
    color: var(--cb-primary-dark);
    box-shadow: none;
}

.cb-form-card{
    border: 1px solid var(--cb-border);
    border-radius: 18px;
    box-shadow: 0 16px 34px rgba(17,24,39,.12);
    background:#fff;
}

.cb-form-control{
    background: #f8fafc;
    border-color: rgba(17,24,39,.10);
    border-radius: 14px;
    padding: .9rem 1rem;
}

.cb-form-control:focus{
    border-color: rgba(17,52,89,.35);
    box-shadow: 0 0 0 .2rem rgba(17,52,89,.10);
}

footer{
    background: #fff;
    border-top: 6px solid rgba(17,52,89,.14);
    box-shadow: 0 -10px 26px rgba(17,24,39,.06);
}

.footer-divider{
    height: 1px;
    background: var(--cb-border);
    margin: 1.25rem 0;
}

.cb-footerbar{
    background: linear-gradient(90deg, rgba(17,52,89,.05), rgba(11,37,64,.05));
    border-top: 1px solid var(--cb-border);
}

.cb-creditbar{
    --bs-text-opacity: 1;
    background: linear-gradient(90deg, rgba(17,52,89,.05), rgba(11,37,64,.05));
    color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important;
    border-top: 1px solid var(--cb-border);
}

.cb-creditbar a{
    color:var(--cb-primary);
    text-decoration: underline;
}

.text-primary-custom{
    color: var(--cb-primary) !important;
}

.bg-primary-soft{
    background: var(--cb-primary-soft);
}

:focus-visible{
    outline: 3px solid rgba(17,52,89,.35);
    outline-offset: 2px;
    border-radius: 12px;
}

@media (min-width: 992px) {
    .navbar-expand-lg {
        flex-wrap: wrap;
    }
    .border-lg-start {
        border-left: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
    }
}

.bg-soft{ background: var(--cb-soft); }
.bg-primary-soft{ background: var(--cb-primary-soft); }

.cb-page-hero{
    position: relative;
    overflow: hidden;
    background:
    radial-gradient(850px circle at 15% 20%, rgba(17,52,89,.10), transparent 55%),
    radial-gradient(700px circle at 85% 10%, rgba(11,37,64,.08), transparent 52%),
    linear-gradient(180deg, #fff, #fff 60%, #f4f8fc);
    border-bottom: 1px solid var(--cb-border);
}

.cb-page-hero::after{
    content:"";
    position:absolute;
    left:-10%;
    right:-10%;
    bottom:-400px;
    height:160px;
    background: var(--cb-soft);
    transform: rotate(-2deg);
    opacity:.95;
}

.cb-page-hero > .container{
    position: relative;
    z-index: 1;
}

.cb-stat{
    border: 1px solid var(--cb-border);
    border-radius: 18px;
    background: #fff;
    padding: 1rem 1.25rem;
    height: 100%;
}

.cb-image-stack{
    position: relative;
    min-height: 460px;
}

.cb-image-stack img{
    position: absolute;
    object-fit: cover;
    border-radius: 20px;
    box-shadow: 0 16px 34px rgba(17,24,39,.14);
}

.cb-image-stack .img-1{
    width: 68%;
    height: 360px;
    left: 0;
    top: 0;
}

.cb-image-stack .img-2{
    width: 44%;
    height: 220px;
    right: 0;
    top: 36px;
    border: 6px solid #fff;
}

.cb-image-stack .img-3{
    width: 52%;
    height: 210px;
    left: 14%;
    bottom: 0;
    border: 6px solid #fff;
}

@media (max-width: 991.98px){
    .cb-image-stack{
        min-height: auto;
        display: grid;
        gap: 1rem;
    }

    .cb-image-stack img{
        position: static;
        width: 100% !important;
        height: 240px !important;
        border-width: 0 !important;
    }
}

.cb-section-divider{
    width: 72px;
    height: 4px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--cb-primary), #4d6f91);
    margin-top: .75rem;
}

.cb-process-card{
    border: 1px solid var(--cb-border);
    border-radius: 20px;
    background: #fff;
    height: 100%;
    padding: 1.5rem;
    position: relative;
}

.cb-process-number{
    width: 42px;
    height: 42px;
    border-radius: 999px;
    background: var(--cb-primary);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    margin-bottom: 1rem;
}

.cb-side-card{
    border: 1px solid var(--cb-border);
    border-radius: 20px;
    background: #fff;
    padding: 1.5rem;
    box-shadow: 0 12px 28px rgba(17,24,39,.08);
}

.cb-highlight{
    background: var(--cb-primary);
    color: #fff;
    border-radius: 22px;
    box-shadow: 0 16px 40px rgba(17,24,39,.16);
}

.cb-legal-card{
    border: 1px solid rgba(17,52,89,.14);
    background: linear-gradient(180deg, #fff, #f5f9fd);
    border-radius: 20px;
    padding: 1.5rem;
}

.cb-check-list li{
    display: flex;
    gap: .75rem;
    margin-bottom: 1rem;
    align-items: flex-start;
}

.cb-check-list i{
    color: var(--cb-primary);
    margin-top: .15rem;
}

.cb-form-card{
    border: 1px solid var(--cb-border);
    border-radius: 18px;
    box-shadow: 0 16px 34px rgba(17,24,39,.12);
    background:#fff;
}

.cb-form-control{
    background: #f8fafc;
    border-color: rgba(17,24,39,.10);
    border-radius: 14px;
    padding: .9rem 1rem;
}

.cb-form-control:focus{
    border-color: rgba(17,52,89,.35);
    box-shadow: 0 0 0 .2rem rgba(17,52,89,.10);
}

footer{
    background: #fff;
    border-top: 6px solid rgba(17,52,89,.14);
    box-shadow: 0 -10px 26px rgba(17,24,39,.06);
}

.footer-divider{
    height: 1px;
    background: var(--cb-border);
    margin: 1.25rem 0;
}

.cb-footerbar{
    background: linear-gradient(90deg, rgba(17,52,89,.05), rgba(11,37,64,.05));
    border-top: 1px solid var(--cb-border);
}

.cb-creditbar{
    background: var(--cb-primary-dark);
    color:#fff;
}

.cb-creditbar a{
    color:#fff;
    text-decoration: underline;
}

:focus-visible{
    outline: 3px solid rgba(17,52,89,.35);
    outline-offset: 2px;
    border-radius: 12px;
}

@media (min-width: 992px) {
    .navbar-expand-lg {
        flex-wrap: wrap;
    }
    .border-lg-start {
        border-left: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
    }
}

.justify-content-space-between {
    justify-content: space-between !important;
}
a:has(.feature-card),
a:has(.cb-service-card) {
    color: initial;
    text-decoration: none !important;
}