/* Shared polish (LTR + RTL). Keep theme bundles untouched. */

/* The blur lives on ::before: backdrop-filter on the navbar itself would become the
   containing block for the fixed mobile menu and trap it inside the header. */
.navbar-glass {
    background: transparent !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.45);
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.06);
}

.navbar-glass::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: rgba(255, 255, 255, 0.72);
    backdrop-filter: blur(16px) saturate(1.35);
    -webkit-backdrop-filter: blur(16px) saturate(1.35);
    pointer-events: none;
}

.navbar-brand-group {
    display: flex;
    align-items: center;
}

.navbar-brand-group .navbar-brand {
    margin: 0;
}

.navbar-brand-img {
    max-height: 3.25rem;
}

/* Hamburger on the start side, logo on the opposite side (theme pushes it next to the logo). */
.navbar > .container > .navbar-toggler {
    margin: 0;
    padding: .25rem;
    border: 0;
    box-shadow: none;
}

@media (max-width: 991.98px) {
    .navbar-brand-img {
        max-height: 2.75rem;
        max-width: 130px;
    }

    /* ----- Mobile menu panel ----- */
    .navbar-glass .navbar-collapse {
        top: .75rem;
        left: .75rem;
        right: .75rem;
        width: auto;
        max-height: calc(100% - 1.5rem) !important;
        overflow-y: auto;
        padding: 3.5rem 1rem 1rem;
        border-radius: 1rem;
    }

    .navbar-glass .navbar-collapse .navbar-toggler {
        top: .875rem;
        padding: .375rem;
        border: 0;
        box-shadow: none;
    }

    .navbar-glass .navbar-collapse .navbar-nav .nav-item {
        padding: 0;
    }

    .navbar-glass .navbar-collapse .navbar-nav .nav-item + .nav-item {
        border-top: 1px solid rgba(80, 102, 144, 0.14);
    }

    .navbar-glass .navbar-collapse .navbar-nav > .nav-item > .nav-link {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: .875rem .75rem;
        border-radius: .5rem;
    }

    /* Submenus: collapsed by default, open as an accordion */
    .navbar-glass .navbar-collapse .navbar-nav .dropdown > .dropdown-menu {
        display: none !important;
        position: static;
        margin: 0 0 .75rem;
        padding: .25rem;
        background: rgba(80, 102, 144, 0.06);
        border: 0;
        border-radius: .75rem;
        box-shadow: none;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
    }

    .navbar-glass .navbar-collapse .navbar-nav .dropdown > .dropdown-menu.show {
        display: block !important;
    }

    .navbar-glass .navbar-collapse .navbar-nav .dropdown > .dropdown-toggle {
        margin-bottom: 0;
        pointer-events: auto;
    }

    .navbar-glass .navbar-collapse .navbar-nav .dropdown > .dropdown-toggle::after {
        display: inline-block;
        content: "\e92e";
        font-family: Feather;
        border: 0;
        margin: 0;
        font-size: .9em;
        transition: transform .2s ease;
    }

    .navbar-glass .navbar-collapse .navbar-nav .dropdown > .dropdown-toggle[aria-expanded="true"]::after {
        transform: rotate(180deg);
    }

    .navbar-glass .navbar-collapse .dropdown-menu .list-group-item,
    .navbar-glass .navbar-collapse .dropdown-menu .nav-link {
        display: block;
        padding: .625rem .875rem;
        border: 0;
        border-radius: .5rem;
        background: transparent;
    }

    .navbar-glass .navbar-collapse .dropdown-menu .list-group-item .ms-4 {
        margin: 0 !important;
    }

    .navbar-glass .navbar-collapse .dropdown-menu .list-group-item:hover,
    .navbar-glass .navbar-collapse .dropdown-menu .nav-link:hover {
        background: rgba(51, 94, 234, 0.08);
    }
}

.navbar-glass .dropdown-menu,
.navbar-glass .dropdown-menu-md {
    background: rgba(255, 255, 255, 0.88);
    backdrop-filter: blur(18px) saturate(1.2);
    -webkit-backdrop-filter: blur(18px) saturate(1.2);
    border: 1px solid rgba(226, 232, 240, 0.7);
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.1);
}

.navbar-glass .list-group-item {
    background: transparent;
}

.card-glass {
    background: rgba(255, 255, 255, 0.62);
    backdrop-filter: blur(12px) saturate(1.15);
    -webkit-backdrop-filter: blur(12px) saturate(1.15);
    border: 1px solid rgba(255, 255, 255, 0.55);
}

footer.footer-glass {
    background: rgba(241, 245, 249, 0.72) !important;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-top: 1px solid rgba(255, 255, 255, 0.4);
}

.feature-glass {
    background: rgba(255, 255, 255, 0.55);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.5);
    border-radius: 1rem;
    padding: 1.5rem 1.25rem;
    height: 100%;
}

img {
    max-width: 100%;
    height: auto;
}

/* Shape dividers use text-dark + currentColor to blend into the bg-dark section
   below them; Bootstrap's default text-dark (#212529) doesn't match bg-dark. */
.text-dark {
    color: #161f36 !important;
}

/* ---------- Subscribe popup ---------- */

.subscribe-modal {
    position: relative;
    border: 0;
    border-radius: 1rem;
    box-shadow: 0 1.5rem 4rem rgba(22, 28, 45, 0.25);
}

.subscribe-modal .modal-body {
    padding: 2.5rem 2rem 2rem;
}

.subscribe-modal-close {
    position: absolute;
    top: 1rem;
    inset-inline-end: 1rem;
    z-index: 1;
}

[data-theme="dark"] .subscribe-modal-close {
    filter: invert(1) grayscale(100%) brightness(200%);
}

@media (max-width: 575.98px) {
    .subscribe-modal .modal-body {
        padding: 2.25rem 1.25rem 1.5rem;
    }
}

/* ---------- Theme toggle ---------- */

.theme-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    margin-right: .5rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: #506690;
    font-size: 1.125rem;
    cursor: pointer;
    transition: color .2s ease;
}

.theme-toggle:hover {
    color: #335eea;
}

.theme-toggle:focus-visible {
    outline: 2px solid #335eea;
    outline-offset: 2px;
}

.theme-toggle-sun { display: none; }
[data-theme="dark"] .theme-toggle-sun { display: inline; }
[data-theme="dark"] .theme-toggle-moon { display: none; }

/* ---------- Dark mode ---------- */
/* Bootstrap 5.1 has no color modes, so the theme bundle is overridden here. */

[data-theme="dark"] {
    color-scheme: dark;
    --dm-bg: #0e1424;
    --dm-surface: #161f36;
    --dm-surface-2: #1b2a4e;
    --dm-border: #26355a;
    --dm-text: #d9e2ef;
    --dm-text-soft: #abbcd5;
    --dm-muted: #8ea0bf;
    --bs-body-color: var(--dm-text);
    --bs-body-bg: var(--dm-bg);
    --bs-body-color-rgb: 217, 226, 239;
    --bs-body-bg-rgb: 14, 20, 36;
}

[data-theme="dark"] body {
    background-color: var(--dm-bg) !important;
    color: var(--dm-text);
}

[data-theme="dark"] h1, [data-theme="dark"] h2, [data-theme="dark"] h3,
[data-theme="dark"] h4, [data-theme="dark"] h5, [data-theme="dark"] h6,
[data-theme="dark"] .h1, [data-theme="dark"] .h2, [data-theme="dark"] .h3,
[data-theme="dark"] .h4, [data-theme="dark"] .h5, [data-theme="dark"] .h6,
[data-theme="dark"] .display-1, [data-theme="dark"] .display-2,
[data-theme="dark"] .display-3, [data-theme="dark"] .display-4 {
    color: inherit;
}

/* Text utilities */
[data-theme="dark"] .text-body,
[data-theme="dark"] .text-black,
[data-theme="dark"] .text-gray-800,
[data-theme="dark"] .text-gray-900 { color: var(--dm-text) !important; }
[data-theme="dark"] .text-gray-700,
[data-theme="dark"] .text-secondary { color: var(--dm-text-soft) !important; }
[data-theme="dark"] .text-muted,
[data-theme="dark"] .text-gray-600 { color: var(--dm-muted) !important; }

/* Background utilities (shapes use text-* to match the section below them) */
[data-theme="dark"] .bg-white,
[data-theme="dark"] .bg-light,
[data-theme="dark"] .bg-gray-100,
[data-theme="dark"] .bg-gray-200 { background-color: var(--dm-surface) !important; }
[data-theme="dark"] .bg-gray-300 { background-color: var(--dm-border) !important; }
[data-theme="dark"] .text-white.shape,
[data-theme="dark"] .shape.text-white,
[data-theme="dark"] .shape.text-light { color: #141c32 !important; }
[data-theme="dark"] .shape.text-gray-100,
[data-theme="dark"] .shape.text-gray-200 { color: var(--dm-surface) !important; }

/* Borders & rules */
[data-theme="dark"] .border,
[data-theme="dark"] .border-top,
[data-theme="dark"] .border-bottom,
[data-theme="dark"] .border-start,
[data-theme="dark"] .border-end { border-color: var(--dm-border) !important; }
[data-theme="dark"] .border-gray-200,
[data-theme="dark"] .border-gray-300 { border-color: var(--dm-border) !important; }
[data-theme="dark"] hr { color: var(--dm-border); }

/* Cards */
[data-theme="dark"] .card {
    background-color: var(--dm-surface);
    border-color: var(--dm-border);
    color: var(--dm-text);
}
[data-theme="dark"] .card-glass {
    background: rgba(22, 31, 54, 0.72);
    border-color: rgba(255, 255, 255, 0.06);
}
[data-theme="dark"] .feature-glass {
    background: rgba(22, 31, 54, 0.6);
    border-color: rgba(255, 255, 255, 0.06);
}
[data-theme="dark"] .shadow,
[data-theme="dark"] .shadow-lg,
[data-theme="dark"] .shadow-light,
[data-theme="dark"] .shadow-light-lg { box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.35) !important; }

/* Navbar */
[data-theme="dark"] .navbar-glass::before { background: rgba(14, 20, 36, 0.78); }
[data-theme="dark"] .navbar-glass {
    border-bottom-color: rgba(255, 255, 255, 0.06);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
}
[data-theme="dark"] .navbar-light .navbar-nav .nav-link { color: var(--dm-text-soft); }
[data-theme="dark"] .navbar-light .navbar-nav .nav-link:hover,
[data-theme="dark"] .navbar-light .navbar-nav .nav-link:focus,
[data-theme="dark"] .navbar-light .navbar-nav .nav-link.active { color: #fff; }
[data-theme="dark"] .navbar-light .navbar-toggler-icon {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='%23abbcd5' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
}
@media (max-width: 991.98px) {
    [data-theme="dark"] .navbar-collapse {
        background-color: var(--dm-surface);
        box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, 0.5);
    }
    [data-theme="dark"] .navbar-glass .navbar-collapse .navbar-nav .nav-item + .nav-item {
        border-top-color: var(--dm-border);
    }
    [data-theme="dark"] .navbar-glass .navbar-collapse .navbar-nav .dropdown > .dropdown-menu {
        background: rgba(255, 255, 255, 0.04);
    }
    [data-theme="dark"] .navbar-glass .navbar-collapse .dropdown-menu .list-group-item:hover,
    [data-theme="dark"] .navbar-glass .navbar-collapse .dropdown-menu .nav-link:hover {
        background: rgba(255, 255, 255, 0.06);
    }
}
[data-theme="dark"] .navbar-toggler { color: var(--dm-text-soft); }

/* Dropdowns & list groups */
[data-theme="dark"] .dropdown-menu,
[data-theme="dark"] .navbar-glass .dropdown-menu,
[data-theme="dark"] .navbar-glass .dropdown-menu-md {
    background: rgba(22, 31, 54, 0.95);
    border-color: var(--dm-border);
    color: var(--dm-text);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.4);
}
[data-theme="dark"] .dropdown-item,
[data-theme="dark"] .dropdown-link { color: var(--dm-text-soft); }
[data-theme="dark"] .dropdown-item:hover,
[data-theme="dark"] .dropdown-item:focus { color: #fff; background-color: transparent; }
[data-theme="dark"] .list-group-item {
    background-color: var(--dm-surface);
    border-color: var(--dm-border);
    color: var(--dm-text);
}
[data-theme="dark"] .navbar-glass .list-group-item { background: transparent; }

/* Forms */
[data-theme="dark"] .form-control,
[data-theme="dark"] .form-select {
    background-color: var(--dm-surface);
    border-color: var(--dm-border);
    color: var(--dm-text);
}
[data-theme="dark"] .form-control:focus,
[data-theme="dark"] .form-select:focus {
    background-color: var(--dm-surface);
    border-color: #335eea;
    color: var(--dm-text);
}
[data-theme="dark"] .form-control::placeholder { color: var(--dm-muted); }
[data-theme="dark"] .form-control:disabled,
[data-theme="dark"] .form-control[readonly] { background-color: var(--dm-surface-2); }
[data-theme="dark"] .input-group-text {
    background-color: var(--dm-surface-2);
    border-color: var(--dm-border);
    color: var(--dm-text-soft);
}
[data-theme="dark"] .form-check-input {
    background-color: var(--dm-surface);
    border-color: var(--dm-border);
}

/* Buttons */
[data-theme="dark"] .btn-white,
[data-theme="dark"] .btn-light {
    background-color: var(--dm-surface-2);
    border-color: var(--dm-surface-2);
    color: var(--dm-text);
}
[data-theme="dark"] .btn-white:hover,
[data-theme="dark"] .btn-light:hover {
    background-color: var(--dm-border);
    border-color: var(--dm-border);
    color: #fff;
}

/* Misc components */
[data-theme="dark"] .breadcrumb-item,
[data-theme="dark"] .breadcrumb-item a { color: var(--dm-text-soft); }
[data-theme="dark"] .breadcrumb-item.active { color: var(--dm-muted); }
[data-theme="dark"] .table {
    color: var(--dm-text);
    border-color: var(--dm-border);
}
[data-theme="dark"] .table > :not(caption) > * > * { border-color: var(--dm-border); }
[data-theme="dark"] .modal-content,
[data-theme="dark"] .popover,
[data-theme="dark"] .toast {
    background-color: var(--dm-surface);
    color: var(--dm-text);
    border-color: var(--dm-border);
}
[data-theme="dark"] .accordion-item,
[data-theme="dark"] .accordion-button {
    background-color: var(--dm-surface);
    color: var(--dm-text);
    border-color: var(--dm-border);
}
[data-theme="dark"] .page-link {
    background-color: var(--dm-surface);
    border-color: var(--dm-border);
    color: var(--dm-text-soft);
}
[data-theme="dark"] blockquote,
[data-theme="dark"] pre,
[data-theme="dark"] code { color: var(--dm-text); }
[data-theme="dark"] pre { background-color: var(--dm-surface); }

/* Footer */
[data-theme="dark"] footer.footer-glass,
[data-theme="dark"] .footer-glass {
    background: rgba(22, 31, 54, 0.85) !important;
    border-top-color: rgba(255, 255, 255, 0.06);
}

/* Theme toggle in dark */
[data-theme="dark"] .theme-toggle { color: #fad776; }
[data-theme="dark"] .theme-toggle:hover { color: #fff; }

/* ---------- Contact Us info ---------- */

.contact-quick-item:not(:last-child) {
    border-inline-end: 1px solid #e9ecef;
}

@media (max-width: 767.98px) {
    .contact-quick-item {
        border-inline-end: 0 !important;
    }
}

.contact-ltr {
    unicode-bidi: isolate;
    direction: ltr;
}

.contact-info-card {
    background: rgba(255, 255, 255, 0.62);
    backdrop-filter: blur(12px) saturate(1.15);
    -webkit-backdrop-filter: blur(12px) saturate(1.15);
    border: 1px solid rgba(255, 255, 255, 0.55);
    border-radius: 1rem;
    padding: 1.5rem 1.35rem;
}

.contact-info-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 2.5rem;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    background: rgba(51, 94, 234, 0.1);
    color: #335eea;
    font-size: 1.15rem;
}

.contact-info-item:last-child {
    margin-bottom: 0 !important;
}

[data-theme="dark"] .contact-quick-item:not(:last-child) {
    border-inline-end-color: var(--dm-border);
}

[data-theme="dark"] .contact-info-card {
    background: rgba(22, 31, 54, 0.55);
    border-color: rgba(255, 255, 255, 0.08);
}

[data-theme="dark"] .contact-info-icon {
    background: rgba(51, 94, 234, 0.22);
    color: #8da4ff;
}
