body {
    font-family: 'Poppins', sans-serif;
    background-color: #1a1a2e;
    color: #e0e0e0;
    line-height: 1.6;
    box-sizing: border-box;
}

*, *::before, *::after {
    box-sizing: inherit;
}

.navbar {
    background-color: #16213e;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
    padding: 0.75rem 0;
    z-index: 1050;
}

.navbar-brand .logo-img {
    height: 35px;
    width: auto;
}

.navbar-brand .site-name {
    color: #e0e0e0;
    font-weight: 700;
    font-size: 1.5rem;
    line-height: 1;
}

.nav-link {
    color: #b0b0b0 !important;
    font-weight: 600;
    transition: color 0.1s ease-in-out;
}

.nav-link:hover,
.nav-link.active {
    color: #e94560 !important;
}

.offcanvas {
    background-color: #16213e;
    color: #e0e0e0;
}

.offcanvas-header {
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.offcanvas-title {
    color: #e0e0e0;
    font-weight: 700;
}

.btn-close {
    filter: invert(1);
}

/* Responsive Typography for Headings */
h1,
.site-name {
    font-size: 2.5rem; /* Desktop */
}

h2 {
    font-size: 2.2rem; /* Desktop */
}

@media (min-width: 768px) and (max-width: 1023px) {
    h1,
    .site-name {
        font-size: 2.2rem; /* Tablet */
    }
    h2 {
        font-size: 2rem; /* Tablet */
    }
}

@media (max-width: 767px) {
    h1,
    .site-name {
        font-size: 1.75rem; /* Mobile, slightly larger than 1.25rem for impact but still compact */
    }
    h2 {
        font-size: 1.5rem; /* Mobile */
    }
    .navbar-brand .site-name {
        font-size: 1.25rem;
    }
    .navbar-brand .logo-img {
        height: 30px;
    }
    .navbar-toggler {
        font-size: 1rem;
    }
    .offcanvas-body .nav-link {
        font-size: 1.25rem;
        padding: 0.75rem 1rem;
    }
}

/* Hero Section */
#hero {
    background-image: url('img/pics/investment-analysis-background.png');
    background-size: cover;
    background-position: center;
    min-height: 100vh;
    padding-top: 90px; /* Adjust for fixed navbar */
    padding-bottom: 80px; /* Adjust for CTA strip */
}

.hero-overlay {
    background: rgba(0, 0, 0, 0.7);
    z-index: 0;
}

#hero h1 {
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
    color: #fff;
}

#hero p.lead {
    color: rgba(255, 255, 255, 0.8);
    max-width: 750px;
    margin-left: auto;
    margin-right: auto;
}

.cta-strip {
    background-color: rgba(22, 33, 62, 0.9);
    position: sticky;
    bottom: 0;
    left: 0;
}

.btn-primary {
    background-color: #e94560;
    border-color: #e94560;
    font-weight: 600;
    padding: 0.75rem 2rem;
    white-space: normal;
    word-break: break-word;
    text-align: center;
}

.btn-primary:hover {
    background-color: #c9344d;
    border-color: #c9344d;
}

.btn-secondary {
    background-color: #0f3460;
    border-color: #0f3460;
    font-weight: 600;
    white-space: normal;
    word-break: break-word;
    text-align: center;
}

.btn-secondary:hover {
    background-color: #0a2444;
    border-color: #0a2444;
}

.section-title {
    color: #e94560;
    font-weight: 700;
    margin-bottom: 3rem;
}

/* About Section */
#about {
    background-color: #1a1a2e;
}

#about .lead {
    color: #b0b0b0;
}

#about .about-visual-card {
    background-color: #16213e;
    border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
    color: #e0e0e0;
    width: 100%;
    max-width: 400px;
}

#about .about-visual-card i {
    color: #e94560;
}

#about .list-unstyled li i {
    color: #e94560;
}

/* Services Section */
#services {
    background-color: #1a1a2e;
    position: relative;
}

#services::before {
    content: '';
    position: absolute;
    top: 10%;
    left: -5%;
    width: 200px;
    height: 200px;
    background: rgba(233, 69, 96, 0.1);
    transform: rotate(45deg);
    z-index: 0;
}

#services::after {
    content: '';
    position: absolute;
    bottom: 15%;
    right: -10%;
    width: 250px;
    height: 250px;
    background: rgba(233, 69, 96, 0.1);
    transform: rotate(-30deg);
    z-index: 0;
}

#services .container {
    position: relative;
    z-index: 1;
}

.service-card {
    background-color: #16213e;
    border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
    color: #e0e0e0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 2rem;
}

.service-card i {
    color: #e94560;
}

.service-card h3 {
    color: #e0e0e0;
}

/* Features Section */
#features {
    background-color: #1a1a2e;
}

.feature-item {
    background-color: #16213e;
    border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
    color: #e0e0e0;
    transition: all 0.1s ease-in-out;
}

.feature-item i {
    color: #e94560;
}

#features .row:hover .feature-item {
    opacity: 0.5;
}

#features .row .feature-item:hover {
    opacity: 1;
    background-color: #0f3460;
    border: 2px solid #e94560;
    transform: scale(1.02);
}

/* Portfolio Section */
#portfolio .portfolio-case-study {
    margin-bottom: 4rem;
}

#portfolio .portfolio-image-wrapper {
    position: relative;
    height: 350px;
    overflow: hidden;
}

#portfolio .portfolio-image-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

#portfolio .portfolio-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
}

.portfolio-description-block-light {
    background-color: #2e3b55;
    color: #e0e0e0;
}

.portfolio-description-block-dark {
    background-color: #16213e;
    color: #e0e0e0;
}

.numbered-list {
    counter-reset: item;
    list-style: none;
    padding-left: 0;
}

.numbered-list li {
    display: flex;
    align-items: flex-start;
    margin-bottom: 10px;
}

.numbered-list .list-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background-color: #e94560;
    color: #fff;
    font-weight: bold;
    margin-right: 15px;
    flex-shrink: 0;
}

.numbered-list-dark {
    counter-reset: item;
    list-style: none;
    padding-left: 0;
}

.numbered-list-dark li {
    display: flex;
    align-items: flex-start;
    margin-bottom: 10px;
    color: #b0b0b0;
}

.numbered-list-dark .list-number-dark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background-color: #e94560;
    color: #fff;
    font-weight: bold;
    margin-right: 15px;
    flex-shrink: 0;
}

/* Industries Section */
#industries {
    background-color: #1a1a2e;
}

#industries .accordion-item {
    background-color: #16213e;
    border: 1px solid rgba(255, 255, 255, 0.1);
    margin-bottom: 10px;
    border-radius: 8px;
}

#industries .accordion-button {
    background-color: #16213e;
    color: #e0e0e0;
    font-weight: 600;
    padding: 1rem 1.25rem;
    border-radius: 8px;
}

#industries .accordion-button:not(.collapsed) {
    color: #e94560;
    background-color: #0f3460;
    box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.125);
}

#industries .accordion-button:focus {
    box-shadow: none;
    border-color: transparent;
}

#industries .accordion-body {
    background-color: #1a1a2e;
    color: #b0b0b0;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

/* How It Works Section */
#howitworks {
    background-color: #1a1a2e;
}

.step-cards-wrapper {
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    overflow-x: auto;
    padding-bottom: 15px;
}

.step-card {
    background-color: #16213e;
    border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
    color: #e0e0e0;
    margin-right: 15px;
    width: 100%;
    scroll-snap-align: start;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    height: 100%;
}

.step-card:last-child {
    margin-right: 0;
}

.step-card i {
    color: #e94560;
}

.progress-dots {
    gap: 10px;
}

.progress-dots .dot {
    display: block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: #0f3460;
    cursor: pointer;
    transition: background-color 0.1s ease-in-out;
}

.progress-dots .dot.active {
    background-color: #e94560;
}

/* FAQ Section */
#faq {
    background-color: #1a1a2e;
}

.faq-card {
    margin-bottom: 10px;
}

#faq .accordion-item {
    background-color: #16213e;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 8px;
}

#faq .accordion-button {
    background-color: #16213e;
    color: #e0e0e0;
    font-weight: 600;
    padding: 1rem 1.25rem;
    border-radius: 8px;
    display: flex;
    align-items: center;
    text-align: left;
}

#faq .accordion-button:not(.collapsed) {
    color: #e94560;
    background-color: #0f3460;
    box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.125);
}

#faq .accordion-button:focus {
    box-shadow: none;
    border-color: transparent;
}

#faq .accordion-body {
    background-color: #1a1a2e;
    color: #b0b0b0;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

#faq .accordion-button i {
    color: #e94560;
    font-size: 1.25rem;
}

/* Footer Section */
#footer {
    background-color: #16213e;
    color: #e0e0e0;
    padding-top: 3rem;
    padding-bottom: 1rem;
}

#footer .logo-img {
    height: 30px;
    width: auto;
}

#footer .site-name {
    font-size: 1.25rem;
    font-weight: 700;
}

#footer h5 {
    color: #e94560;
    font-weight: 600;
}

#footer .footer-link {
    color: #b0b0b0;
    text-decoration: none;
    display: block;
    padding: 0.25rem 0;
    transition: color 0.1s ease-in-out;
}

#footer .footer-link:hover {
    color: #e94560;
}

#footer .accordion-item {
    background-color: transparent;
    border: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

#footer .accordion-item:last-of-type {
    border-bottom: none;
}

#footer .accordion-button {
    background-color: transparent;
    color: #e0e0e0;
    font-weight: 600;
    padding: 1rem 0;
}

#footer .accordion-button:not(.collapsed) {
    color: #e94560;
    background-color: transparent;
    box-shadow: none;
}

#footer .accordion-button:focus {
    box-shadow: none;
    border-color: transparent;
}

#footer .accordion-button::after {
    filter: invert(1);
}

#footer .accordion-body {
    background-color: transparent;
    color: #b0b0b0;
    padding-bottom: 1rem;
}

/* Cookie Banner */
.cookie-banner {
    background-color: #16213e;
    color: #e0e0e0;
    border-top: 1px solid #0f3460;
    z-index: 1060; /* Higher than modals if needed */
}

.cookie-banner p {
    font-size: 0.9rem;
}

.cookie-banner a {
    color: #e94560;
    text-decoration: underline;
}

.cookie-banner .btn {
    font-size: 0.85rem;
    padding: 0.5rem 1rem;
}

.modal-content {
    background-color: #1a1a2e;
    color: #e0e0e0;
    border: 1px solid #0f3460;
}

.modal-header {
    border-bottom: 1px solid #0f3460;
}

.modal-title {
    color: #e0e0e0;
}

.modal-body label {
    color: #e0e0e0;
}

.modal-body small {
    color: #b0b0b0 !important;
}

.form-control,
.form-select {
    background-color: #2e3b55;
    border-color: #0f3460;
    color: #e0e0e0;
}

.form-control::placeholder,
.form-select::placeholder {
    color: #b0b0b0;
    opacity: 0.7;
}

.form-control:focus,
.form-select:focus {
    background-color: #2e3b55;
    border-color: #e94560;
    box-shadow: 0 0 0 0.25rem rgba(233, 69, 96, 0.25);
    color: #e0e0e0;
}

.form-check-input:checked {
    background-color: #e94560;
    border-color: #e94560;
}

.form-check-input:focus {
    box-shadow: 0 0 0 0.25rem rgba(233, 69, 96, 0.25);
}

.invalid-feedback {
    color: #ff6b6b;
}

@media (max-width: 767.98px) {
    .cookie-actions {
        width: 100%;
    }
    .cookie-actions .btn {
        width: 100%;
    }
    .cookie-actions .btn:first-child {
        margin-right: 0 !important;
    }
}

@media (min-width: 1100px) {
    .navbar-expand-lg .offcanvas {
        visibility: visible;
        transform: none;
        position: static;
        background-color: transparent;
        border: none;
        width: auto;
    }
    .navbar-expand-lg .offcanvas-body {
        padding: 0;
    }
    .navbar-expand-lg .offcanvas-header {
        display: none;
    }
    .navbar-expand-lg .navbar-toggler {
        display: none;
    }
}

@media (max-width: 1099.98px) {
    .navbar-expand-lg .navbar-nav {
        flex-direction: column;
    }
}
/* Base styles for the compliance vault node container */
.complianceVaultNode {
    margin-top: 50px;
    padding-top: 20px;    /* Top padding for the content area */
    padding-bottom: 20px; /* Bottom padding for the content area */
    padding-left: 20px;   /* Left padding for the content area */
    padding-right: 20px;  /* Right padding for the content area */
    /* Consider adding max-width and margin: 0 auto; for better readability on very wide screens */
}

/* Heading styles within the compliance vault node */
.complianceVaultNode h1 {
    font-size: 1.8em;       /* Main heading, not excessively large */
    line-height: 1.2;       /* Line height for readability */
    margin-top: 1.5em;      /* Space above the heading */
    margin-bottom: 0.8em;   /* Space below the heading */
    font-weight: bold;      /* Bold font weight for emphasis */
}

.complianceVaultNode h2 {
    font-size: 1.5em;       /* Secondary heading */
    line-height: 1.2;
    margin-top: 1.4em;
    margin-bottom: 0.7em;
    font-weight: bold;
}

.complianceVaultNode h3 {
    font-size: 1.2em;       /* Tertiary heading */
    line-height: 1.3;
    margin-top: 1.3em;
    margin-bottom: 0.6em;
    font-weight: bold;
}

.complianceVaultNode h4 {
    font-size: 1.1em;       /* Quaternary heading */
    line-height: 1.4;
    margin-top: 1.2em;
    margin-bottom: 0.5em;
    font-weight: bold;
}

.complianceVaultNode h5 {
    font-size: 1em;         /* Quintary heading, similar to body text size */
    line-height: 1.5;
    margin-top: 1.1em;
    margin-bottom: 0.4em;
    font-weight: bold;
}

/* Paragraph styles within the compliance vault node */
.complianceVaultNode p {
    font-size: 1em;         /* Standard paragraph font size (typically 16px) */
    line-height: 1.6;       /* Optimal line height for text readability */
    margin-bottom: 1em;     /* Space between paragraphs */
    margin-top: 0;          /* Reset top margin for consistent spacing */
}

/* Unordered list styles within the compliance vault node */
.complianceVaultNode ul {
    list-style-type: disc;  /* Standard bullet points */
    margin-top: 1em;        /* Space above the list */
    margin-bottom: 1em;     /* Space below the list */
    padding-left: 25px;     /* Indent for bullet points */
}

/* List item styles within the compliance vault node */
.complianceVaultNode li {
    font-size: 1em;         /* Consistent with paragraph text */
    line-height: 1.6;       /* Consistent line height for list items */
    margin-bottom: 0.5em;   /* Space between individual list items */
}


.accordion-button::after{
    filter: invert(1);
}

.accordion-collapse{
    color: #fff;
    padding: 20px;
}

.navbar-toggler{
    filter: invert(1);
}

section{
    overflow: hidden;
}

#cookieSettingsModal{
    z-index: 999999;
}