/* ========================================================================
   TABLE OF CONTENTS
   ========================================================================
   1.  IMPORTS & FONTS
   2.  ROOT VARIABLES
   3.  RESET & NORMALIZE
   4.  TYPOGRAPHY
   5.  UTILITIES
   6.  BUTTONS
   7.  TOP SYSTEM BAR
   8.  NAVBAR
   9.  FOOTER
  10.  HERO / HEADER
  11.  SECTION TITLES
  12.  CARDS & ITEMS (used across pages)
  13.  FORMS & WIDGETS
  14.  ANIMATIONS
  15.  RESPONSIVE OVERRIDES
  16.  COOKIE BANNER / MODAL
  17.  PAGE‑SPECIFIC COMPONENTS (GIS, News, Careers, Contact, etc.)
  18.  HOME PAGE SPACING (added)
   ======================================================================== */

/* ========================================================================
   1. IMPORTS & FONTS
   ------------------------------------------------------------------------
   FIXED (PageSpeed): the @import that used to live here has been removed
   for real. @import inside CSS is render-blocking and discovered late by
   the browser. The font request now happens directly from
   commonAssets.headerPlugins, ahead of the compiled CSS <link>, so it
   starts immediately and in parallel — see the <link rel="stylesheet">
   for fonts.googleapis.com added there.
   ======================================================================== */

/* ========================================================================
   2. ROOT VARIABLES
   ======================================================================== */

:root {
    --main-color-one: #D7263D;
    --main-color-two: #0345B2;
    --secondary-color: #d1e4ff;
    --white-color: #ffff;
    --heading-color: #04072e;
    --paragraph-color: #727777;
    --main-subtitle-color: #727777;
    --green-color: #0a7b0e;

    --heading-font: "Barlow Semi Condensed", sans-serif;
    --heading-font-02: "Kalam", cursive;
    --body-font: "Open Sans", sans-serif;

    --animate-delay: 0.3s;

    --ct-container-max: 1450px;
    --ct-container-pad: 3.5%;
    --ct-container-pad-tablet: 4%;
    --ct-container-pad-mobile: 20px;

    --ct-topbar-height: 44px;
    --ct-navbar-h: 88px;

    /* Fixed header stack — single source of truth for layering.
       Order (back to front): topbar < navbar < overlay < mobile panel.
       The overlay sits ABOVE the topbar/navbar on purpose so that when
       the mobile drawer is open, the system bar + header are dimmed
       behind it instead of poking through in front of the panel. */
    --z-navbar: 900;
    --z-navbar-burger: 901;
    --z-topbar: 910;
    --z-overlay: 950;
    --z-mobile-panel: 960;

    --ic-wire-1: #7A4FD1; /* violet */
    --ic-wire-2: #0AAFC7; /* cyan   */
    --ic-wire-3: #E8A93E; /* amber  */
    --ic-wire-4: #2FAE60; /* green  */
    --ic-wire-5: var(--main-color-one); /* brand red, ties the 5th wire back to the palette */
}

/* ========================================================================
   3. RESET & NORMALIZE
   ======================================================================== */
html {
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
    overflow-x: hidden;
    font-family: var(--body-font);
    scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
}

* {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    outline: none;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
}

body {
    position: relative;
    margin: 0;
    color: var(--paragraph-color);
    overflow-x: hidden;
    font-family: var(--body-font);
    font-size: 12px;
    padding-top: calc(var(--ct-topbar-height, 44px) + var(--ct-navbar-h, 88px));
    transition: padding-top 0.3s ease;
}

::-webkit-scrollbar {
    width: 5px;
}
::-webkit-scrollbar-thumb {
    background-image: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    border-radius: 10px;
}

.preloader_logo,
.footer_logo {
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    width: 260px;
    height: 90px;
}

/* Theme-aware logo pairs (preloader, desktop nav, mobile nav, footer):
   each spot now renders both a .logo-light and a .logo-dark <img>.
   Default/light: show the light mark, hide the dark one. dark-mode.scss
   flips this under [data-theme="dark"].
   !important is intentional here: these are single-purpose visibility
   toggles, and without it any later "img { display: ... }" rule scoped
   to a specific container (e.g. .ct-navbar__logo img) wins on specificity
   and un-hides the dark mark — which is exactly the "both logos show at
   once" bug this fixes. Keep !important on all four toggle rules below. */
.logo-dark { display: none !important; }

img {
    max-width: 100%;
}

.body-section-area {
    background-image: url('/assets/img/line.webp');
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    background-attachment: fixed;
}

@media (min-width: 320px) {
    .cus_main_title { font-size: 19px !important; text-align: left; }
}
@media (min-width: 480px) {
    .cus_main_title { font-size: 18px !important; text-align: left; font-weight: 700 !important; }
}
@media (min-width: 768px) {
    .cus_main_title { font-size: 18px !important; text-align: left; font-weight: 600 !important; }
}
@media (min-width: 1024px) {
    .cus_main_title { font-size: 22px !important; text-align: left; font-weight: 600 !important; }
}
@media (min-width: 1280px) {
    .cus_main_title { font-size: 24px !important; text-align: left; font-weight: 600 !important; }
}
@media (min-width: 1366px) {
    .cus_main_title { font-size: 24px !important; text-align: left; font-weight: 600 !important; }
}
@media (min-width: 1920px) {
    .cus_main_title { font-size: 26px !important; text-align: left; font-weight: 600 !important; }
}

embed, iframe, object { max-width: 100%; }

ol {
    counter-reset: counter;
    padding-left: 0;
}
ol li {
    list-style: none;
    margin-bottom: 1rem;
}
ol li:before {
    counter-increment: counter;
    content: counter(counter);
    font-weight: 500;
    margin-right: 10px;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="tel"]:focus,
input[type="number"]:focus,
textarea:focus,
input[type="button"]:focus,
input[type="reset"]:focus,
input[type="submit"]:focus,
select:focus {
    outline: none;
    -webkit-box-shadow: none;
    box-shadow: none;
    border: 1px solid #ddd;
}

code { color: #faa603; }
pre { word-break: break-word; }
.dark-bg { background-color: var(--secondary-color); }
.section-bg-1 { background-color: #f4f7fc; }
.overflow-hidden { overflow: hidden; }
.error { color: #dc3545 !important; }

#content[tabindex="-1"]:focus { outline: 0; }

.alignleft {
    float: left;
    clear: both;
    margin-right: 20px;
}
.alignright {
    float: right;
    clear: both;
    margin-left: 20px;
}
.aligncenter {
    clear: both;
    display: block;
    margin: 0 auto 1.75em;
}
.alignfull { margin: 1.5em 0; max-width: 100%; }
.alignwide { max-width: 1100px; }

.clear:before,
.clear:after,
.entry-content:before,
.entry-content:after,
.comment-content:before,
.comment-content:after,
.site-header:before,
.site-header:after,
.site-content:before,
.site-content:after,
.site-footer:before,
.site-footer:after {
    content: "";
    display: table;
    table-layout: fixed;
}
.clear:after,
.entry-content:after,
.comment-content:after,
.site-header:after,
.site-content:after,
.site-footer:after {
    clear: both;
}

/* ========================================================================
   4. TYPOGRAPHY
   ======================================================================== */
h1, h2, h3, h4, h5, h6 {
    color: var(--heading-color);
    font-family: var(--heading-font);
}
h1 { font-size: 48px; line-height: 1.0833; }
h2 { font-size: 36px; line-height: 1.4444; }
h3 { font-size: 24px; line-height: 1.0833; }
h4 { font-size: 20px; line-height: 1.2381; }

p {
    color: var(--paragraph-color);
    margin-bottom: 10px;
    line-height: 24px;
}

a {
    color: inherit;
    text-decoration: none;
    color: var(--paragraph-color);
}
a:hover,
a:focus,
a:active {
    text-decoration: none;
    outline: none;
    color: inherit;
}
a i { padding: 0 2px; }

/* ========================================================================
   5. UTILITIES
   ======================================================================== */
.padding-left-0 { padding-left: 0; }
.padding-right-0 { padding-right: 0; }
.gray-bg { background-color: #f5f5f5; }
.secondary-bg { background-color: var(--secondary-color); }

/* padding helpers (commonly used) */
.padding-top-10 { padding-top: 10px; }
.padding-top-20 { padding-top: 20px; }
.padding-top-30 { padding-top: 30px; }
.padding-top-40 { padding-top: 40px; }
.padding-top-50 { padding-top: 50px; }
.padding-top-60 { padding-top: 60px; }
.padding-top-70 { padding-top: 70px; }
.padding-top-80 { padding-top: 80px; }
.padding-top-90 { padding-top: 90px; }
.padding-top-100 { padding-top: 100px; }
.padding-top-110 { padding-top: 110px; }
.padding-top-120 { padding-top: 120px; }
.padding-top-140 { padding-top: 140px; }
.padding-top-150 { padding-top: 150px; }
.padding-top-160 { padding-top: 160px; }
.padding-top-190 { padding-top: 190px; }
.padding-top-200 { padding-top: 200px; }
.padding-top-210 { padding-top: 210px; }
.padding-top-260 { padding-top: 260px; }
.padding-top-310 { padding-top: 310px; }
.padding-top-360 { padding-top: 360px; }
.padding-top-390 { padding-top: 390px; }
.padding-top-400 { padding-top: 400px; }
.padding-top-600 { padding-top: 600px; }
.padding-top-640 { padding-top: 640px; }
.padding-top-720 { padding-top: 720px; }

.padding-bottom-10 { padding-bottom: 10px; }
.padding-bottom-20 { padding-bottom: 20px; }
.padding-bottom-30 { padding-bottom: 30px; }
.padding-bottom-40 { padding-bottom: 40px; }
.padding-bottom-50 { padding-bottom: 50px; }
.padding-bottom-60 { padding-bottom: 60px; }
.padding-bottom-70 { padding-bottom: 70px; }
.padding-bottom-80 { padding-bottom: 80px; }
.padding-bottom-90 { padding-bottom: 90px; }
.padding-bottom-100 { padding-bottom: 100px; }
.padding-bottom-110 { padding-bottom: 110px; }
.padding-bottom-120 { padding-bottom: 120px; }
.padding-bottom-130 { padding-bottom: 130px; }
.padding-bottom-140 { padding-bottom: 140px; }
.padding-bottom-150 { padding-bottom: 150px; }
.padding-bottom-160 { padding-bottom: 160px; }
.padding-bottom-170 { padding-bottom: 170px; }
.padding-bottom-180 { padding-bottom: 180px; }
.padding-bottom-200 { padding-bottom: 200px; }
.padding-bottom-215 { padding-bottom: 215px; }
.padding-bottom-260 { padding-bottom: 260px; }
.padding-bottom-280 { padding-bottom: 280px; }
.padding-bottom-285 { padding-bottom: 285px; }
.padding-bottom-300 { padding-bottom: 300px; }
.padding-bottom-350 { padding-bottom: 350px; }
.padding-bottom-460 { padding-bottom: 460px; }

.padding-10 { padding-top: 10px; padding-bottom: 10px; }
.padding-20 { padding-top: 20px; padding-bottom: 20px; }
.padding-30 { padding-top: 30px; padding-bottom: 30px; }
.padding-40 { padding-top: 40px; padding-bottom: 40px; }
.padding-50 { padding-top: 50px; padding-bottom: 50px; }
.padding-60 { padding-top: 60px; padding-bottom: 60px; }
.padding-70 { padding-top: 70px; padding-bottom: 70px; }
.padding-80 { padding-top: 80px; padding-bottom: 80px; }
.padding-90 { padding-top: 90px; padding-bottom: 90px; }
.padding-100 { padding-top: 100px; padding-bottom: 100px; }
.padding-110 { padding-top: 110px; padding-bottom: 110px; }
.padding-120 { padding-top: 120px; padding-bottom: 120px; }

.margin-top-minus-90 { margin-top: -90px; }
.margin-top-minus-100 { margin-top: -100px; }

.margin-top-10 { margin-top: 10px; }
.margin-top-20 { margin-top: 20px; }
.margin-top-30 { margin-top: 30px; }
.margin-top-40 { margin-top: 40px; }
.margin-top-50 { margin-top: 50px; }
.margin-top-60 { margin-top: 60px; }
.margin-top-70 { margin-top: 70px; }
.margin-top-80 { margin-top: 80px; }
.margin-top-90 { margin-top: 90px; }
.margin-top-100 { margin-top: 100px; }
.margin-top-110 { margin-top: 110px; }
.margin-top-115 { margin-top: 115px; }
.margin-top-120 { margin-top: 120px; }
.margin-top-150 { margin-top: 150px; }
.margin-top-160 { margin-top: 160px; }

.margin-bottom-0 { margin-bottom: 0 !important; }
.margin-bottom-10 { margin-bottom: 10px; }
.margin-bottom-20 { margin-bottom: 20px; }
.margin-bottom-30 { margin-bottom: 30px; }
.margin-bottom-40 { margin-bottom: 40px; }
.margin-bottom-50 { margin-bottom: 50px; }
.margin-bottom-60 { margin-bottom: 60px; }
.margin-bottom-70 { margin-bottom: 70px; }
.margin-bottom-80 { margin-bottom: 80px; }
.margin-bottom-90 { margin-bottom: 90px; }
.margin-bottom-120 { margin-bottom: 120px; }
.margin-bottom-150 { margin-bottom: 150px; }

.min-height-600 { min-height: 600px; }

.desktop-center { text-align: center; }
.desktop-left { text-align: left; }
.desktop-right { text-align: right; }

.ct-container {
    max-width: var(--ct-container-max);
    width: 100%;
    padding-left: var(--ct-container-pad);
    padding-right: var(--ct-container-pad);
}
@media (min-width: 1280px) and (max-width: 1365px) {
    .ct-container { padding-left: 60px; padding-right: 60px; }
}
@media (min-width: 1366px) and (max-width: 1439px) {
    .ct-container { padding-left: 50px; padding-right: 50px; }
}
@media (min-width: 1440px) and (max-width: 1659px) {
    .ct-container { padding-left: 40px; padding-right: 40px; }
}
@media (min-width: 1660px) {
    .ct-container { padding-left: 60px; padding-right: 60px; }
}
@media only screen and (max-width: 991px) {
    .ct-container { padding-left: var(--ct-container-pad-tablet); padding-right: var(--ct-container-pad-tablet); }
}
@media only screen and (max-width: 576px) {
    .ct-container { padding-left: var(--ct-container-pad-mobile); padding-right: var(--ct-container-pad-mobile); }
}

/* ========================================================================
   6. BUTTONS
   ======================================================================== */
.btn-wrapper {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px;
}
.btn-wrapper.administration {
    position: absolute;
    left: 50%;
    top: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
}
.btn-wrapper.poll-btn {
    position: fixed;
    top: 50%;
    right: -2.5%;
    z-index: 2;
    -webkit-transform: rotate(270deg);
    transform: rotate(270deg);
}
.btn-wrapper.vote-btn {
    margin-top: 38px;
}

.btn-wrapper .boxed-btn {
    background-color: var(--secondary-color);
    color: #fff;
    display: inline-block;
    padding: 14px 23px;
    border-radius: 50px !important;
    text-transform: initial !important;
    text-align: center;
    cursor: pointer;
    font-size: 15px;
    transition: all 0.3s ease-in, 0.7s all ease;
    font-weight: 600;
}
.contact-us_btn { font-size: 14px; }

.btn-wrapper .boxed-btn.btn-sanatory {
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    text-transform: uppercase;
    -webkit-box-shadow: 0 7px 20px rgba(221, 19, 26, 0.3);
    box-shadow: 0 7px 20px rgba(221, 19, 26, 0.3);
}
.btn-wrapper .contact-us_btn {
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    text-transform: uppercase;
    -webkit-box-shadow: 0 7px 20px rgba(221, 19, 26, 0.3);
    box-shadow: 0 7px 20px rgba(221, 19, 26, 0.3);
}
.btn-wrapper .boxed-btn.btn-sanatory .icon-paper-plan {
    margin-left: 5px;
}
.btn-wrapper .boxed-btn.btn-sanatory:hover {
    background-color: var(--secondary-color);
    -webkit-box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06), 0 .125rem .4rem -.0625rem rgb(11 15 25 / .03);
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06), 0 .125rem .4rem -.0625rem rgb(11 15 25 / .03);
}
.btn-wrapper .boxed-btn.btn-sanatory.style-01 {
    background-color: transparent;
    color: var(--main-color-one);
    border: 2px solid var(--main-color-one);
    -webkit-box-shadow: none;
    box-shadow: none;
    text-transform: capitalize;
}
.btn-wrapper .boxed-btn.btn-sanatory.style-01.reverse {
    color: #fff;
    border-color: #fff;
}
.btn-wrapper .boxed-btn.btn-sanatory.style-01.reverse:hover {
    background-color: #fff;
    border-color: #fff;
    color: var(--main-color-one);
}
.btn-wrapper .boxed-btn.btn-sanatory.style-01 i {
    margin-right: 10px;
    margin-left: 0;
}
.btn-wrapper .boxed-btn.btn-sanatory.style-01:hover {
    background-color: var(--main-color-one);
    border-color: var(--main-color-one);
    color: #fff;
}
.btn-wrapper .boxed-btn.btn-sanatory.style-02 {
    background-color: transparent;
    color: var(--heading-color);
    border: 2px solid var(--heading-color);
    -webkit-box-shadow: none;
    box-shadow: none;
    text-transform: capitalize;
    font-size: 16px;
    line-height: 2px;
    font-family: var(--body-font);
    font-weight: 700;
}
.btn-wrapper .boxed-btn.btn-sanatory.style-02 i {
    margin-right: 10px;
    margin-left: 0;
}

/* ---- Video Play ---- */
.video-play {
    color: #233d62;
    font-size: 16px;
    font-weight: 600;
    position: relative;
    z-index: 1;
}
.video-play::after {
    content: "";
    position: absolute;
    left: 29%;
    top: -130%;
    z-index: -1;
    width: 70px;
    height: 70px;
    line-height: 70px;
    background: transparent;
    border: 1px solid var(--main-color-one);
    border-radius: 50%;
    -webkit-animation: pulse-video 1500ms ease-out infinite;
    animation: pulse-video 1500ms ease-out infinite;
}
.video-play i {
    background: var(--main-color-one);
    height: 45px;
    width: 45px;
    line-height: 45px;
    border-radius: 50%;
    text-align: center;
    color: #fff;
    margin-left: 40px;
    margin-right: 10px;
    transition: 0.7s all ease;
}
.video-play.style-01 {
    font-size: 20px;
}
.video-play.style-01::after {
    left: 19%;
    top: -177%;
    z-index: -1;
    width: 110px;
    height: 110px;
    line-height: 110px;
    border-color: #fff;
}
.video-play.style-01 i {
    height: 80px;
    width: 80px;
    line-height: 80px;
}
.video-play.style-02 i {
    background: transparent;
    height: 95px;
    width: 95px;
    line-height: 95px;
    border: 2px solid #fff;
    border-radius: 4px;
    margin-left: 0;
    font-size: 24px;
}
.video-play.style-02::after {
    display: none;
}
.video-play.style-03 i {
    width: 146px;
    height: 146px;
    line-height: 146px;
    font-size: 35px;
}
.video-play.style-03::after {
    left: 17%;
    top: -410%;
    width: 160px;
    height: 160px;
    line-height: 160px;
    border: 1px solid #fff;
}

.video-popup {
    color: #233d62;
    font-size: 16px;
    font-weight: 600;
    position: relative;
    z-index: 1;
}
.video-popup::after {
    content: "";
    position: absolute;
    left: 23%;
    top: -222%;
    z-index: -1;
    width: 100px;
    height: 100px;
    line-height: 100px;
    background: rgba(221, 19, 26, 0.4);
    border-radius: 50%;
    -webkit-animation: pulse-video-02 2000ms ease-out infinite;
    animation: pulse-video-02 2000ms ease-out infinite;
}
.video-popup::before {
    content: "";
    position: absolute;
    left: 16%;
    top: -275%;
    z-index: -1;
    width: 120px;
    height: 120px;
    line-height: 120px;
    background: rgba(221, 19, 26, 0.2);
    border-radius: 50%;
    -webkit-animation: pulse-video-02 2000ms ease-out infinite;
    animation: pulse-video-02 2000ms ease-out infinite;
}
.video-popup i {
    background: var(--main-color-one);
    width: 78px;
    height: 78px;
    line-height: 78px;
    font-size: 20px;
    border-radius: 50%;
    text-align: center;
    color: #fff;
    margin-left: 40px;
    margin-right: 10px;
    transition: 0.7s all ease;
}

@-webkit-keyframes pulse-video {
    0% { -webkit-transform: scale(1); transform: scale(1); opacity: 1; }
    100% { -webkit-transform: scale(1.5); transform: scale(1.5); opacity: 0; }
}
@keyframes pulse-video {
    0% { -webkit-transform: scale(1); transform: scale(1); opacity: 1; }
    100% { -webkit-transform: scale(1.5); transform: scale(1.5); opacity: 0; }
}
@-webkit-keyframes pulse-video-02 {
    0% { -webkit-transform: scale(1); transform: scale(1); opacity: 1; }
    100% { -webkit-transform: scale(1.5); transform: scale(1.5); opacity: 0; }
}
@keyframes pulse-video-02 {
    0% { -webkit-transform: scale(1); transform: scale(1); opacity: 1; }
    100% { -webkit-transform: scale(1.5); transform: scale(1.5); opacity: 0; }
}

/* ========================================================================
   7. TOP SYSTEM BAR
   ======================================================================== */
.ct-topbar {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: var(--ct-topbar-height);
    z-index: var(--z-topbar);
    background: #ffffff;
    border-bottom: 1px solid rgba(4, 7, 46, 0.08);
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.02);
    display: flex;
    align-items: center;
    font-family: var(--body-font, 'Open Sans', sans-serif);
    font-size: 13px;
    color: var(--paragraph-color, #727777);
    transition: height 0.2s ease;
}

.ct-topbar__inner {
    max-width: var(--ct-container-max);
    width: 100%;
    margin: 0 auto;
    padding: 0 var(--ct-container-pad);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}
.ct-topbar__contacts {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
}
.ct-topbar__item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--heading-color);
    text-decoration: none;
    transition: color 0.2s ease;
    font-weight: 500;
    margin-left: 6px;
}
.ct-topbar__item:hover {
    color: var(--main-color-two, #2967cb);
}
.ct-topbar__icon {
    font-size: 14px;
    color: var(--main-color-two, #2967cb);
}
.ct-topbar__right {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-shrink: 0;
}
.ct-topbar__dropdown--lang {
    position: relative;
}
.ct-topbar__toggle {
    outline: none !important;
    -webkit-tap-highlight-color: transparent;
    background: none;
    border: none;
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    font-size: 13px;
    font-weight: 600;
    color: var(--heading-color);
    cursor: pointer;
    border-radius: 20px;
    transition: background 0.2s ease;
}
.ct-topbar__toggle:hover {
    /*background: rgba(4, 7, 46, 0.04);*/
}
.ct-topbar__toggle:focus,
.ct-topbar__toggle:active {
    outline: none !important;
    box-shadow: none !important;
}
.ct-topbar__lang-flag {
    width: 22px;
    height: 16px;
    border-radius: 2px;
    box-shadow: 0 1px 2px rgba(0,0,0,0.1);
}
.ct-topbar__caret {
    display: inline-block;
    width: 6px;
    height: 6px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    margin-left: 2px;
    transition: transform 0.25s ease;
}
.ct-topbar__dropdown.is-open .ct-topbar__caret {
    transform: rotate(225deg);
}

.ct-topbar__dropdown-menu--lang {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    min-width: 220px;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 12px 40px rgba(4, 7, 46, 0.14);
    border: 1px solid rgba(4, 7, 46, 0.06);
    padding: 10px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
    z-index: 1200;

}
.ct-topbar__dropdown.is-open .ct-topbar__dropdown-menu--lang {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.ct-topbar__lang-split {
    display: flex;
    gap: 8px;
}
.ct-topbar__lang-col {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.ct-topbar__lang-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 14px;
    border-radius: 6px;
    font-size: 13px;
    color: var(--paragraph-color);
    text-decoration: none;
    transition: background 0.2s ease, color 0.2s ease;
}
.ct-topbar__lang-item:hover {
    background: rgba(41, 103, 203, 0.06);
    color: var(--heading-color);
}
.ct-topbar__lang-item.active {
    background: rgba(41, 103, 203, 0.12);
    color: var(--main-color-two);
    font-weight: 600;
}
.ct-topbar__lang-item .fi {
    width: 22px;
    height: 16px;
    border-radius: 2px;
    box-shadow: 0 1px 2px rgba(0,0,0,0.1);
}

/* ---- Theme switcher dropdown (Light / Dark / System) ---- */
.ct-topbar__dropdown--theme {
    position: relative;
}
.ct-topbar__dropdown-menu--theme {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    min-width: 168px;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 12px 40px rgba(4, 7, 46, 0.14);
    border: 1px solid rgba(4, 7, 46, 0.06);
    padding: 8px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
    z-index: 1200;
}
.ct-topbar__dropdown.is-open .ct-topbar__dropdown-menu--theme {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.ct-topbar__theme-item {
    outline: none !important;
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 8px 12px;
    border: none;
    background: none;
    border-radius: 6px;
    font-family: var(--body-font);
    font-size: 13px;
    color: var(--paragraph-color);
    text-align: left;
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease;
    margin-bottom: 5px;
}
.ct-topbar__theme-item:hover {
    background: rgba(41, 103, 203, 0.06);
    color: var(--heading-color);
}
.ct-topbar__theme-item.active {
    background: rgba(41, 103, 203, 0.12);
    color: var(--main-color-two);
    font-weight: 600;
}
.ct-topbar__theme-icon {
    flex: none;
    width: 16px;
    text-align: center;
    font-size: 12px;
}

@media (max-width: 991px) {
    .ct-topbar {
        height: auto;
        min-height: var(--ct-topbar-height);
    }
    .ct-topbar__inner {
        flex-wrap: wrap;
        gap: 6px;
        padding: 6px var(--ct-container-pad-tablet);
    }
    .ct-topbar__contacts { gap: 12px; font-size: 12px; }
    .ct-topbar__item { font-size: 12px; }
    .ct-topbar__right { gap: 8px; }
}
@media (max-width: 576px) {
    .ct-topbar { min-height: 38px; }
    .ct-topbar__inner { padding: 6px var(--ct-container-pad-mobile); }
    .ct-topbar__contacts { gap: 8px; }
    .ct-topbar__item { font-size: 11px; }
    .ct-topbar__item span:not(.ct-topbar__icon) { display: none; }
    .ct-topbar__item .ct-topbar__icon { font-size: 16px; margin-right: 0; }
    .ct-topbar__toggle { font-size: 12px; padding: 2px 6px; }
    .ct-topbar__lang-flag { width: 18px; height: 12px; }
    .ct-topbar__dropdown-menu--lang { min-width: 160px; right: -10px; }
    .ct-topbar__lang-item { font-size: 12px; padding: 6px 10px; }
}
@media (max-width: 380px) {
    .ct-topbar__contacts .ct-topbar__item:first-child .ct-topbar__icon,
    .ct-topbar__contacts .ct-topbar__item:last-child .ct-topbar__icon {
        font-size: 14px;
    }
}

/* ========================================================================
   8. NAVBAR
   ======================================================================== */
.ct-navbar {
    position: fixed !important;
    top: var(--ct-topbar-height, 44px);
    left: 0;
    width: 100%;
    z-index: var(--z-navbar);
    background-color: #ffffff;
    border-bottom: 1px solid transparent;
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06),0 .125rem .4rem -.0625rem rgb(11 15 25 / .03)!important;
    transition: box-shadow 0.3s ease, background-color 0.3s ease, padding 0.3s ease;
    --scroll-progress: 0;
}
.ct-navbar__mobile-link,
.ct-navbar__burger,
.ct-navbar__close,
.ct-navbar__link {
    outline: none !important;
    -webkit-tap-highlight-color: transparent;
}
.ct-navbar__mobile-link:focus,
.ct-navbar__mobile-link:focus-visible,
.ct-navbar__mobile-link:active {
    outline: none !important;
    box-shadow: none !important;
}
.ct-navbar__mobile-link::-moz-focus-inner { border: 0; }

.ct-navbar.is-scrolled {
    box-shadow: 0 8px 30px rgba(4, 7, 46, 0.14);
}
.ct-navbar__inner {
    max-width: var(--ct-container-max);
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: calc(16px - 8px * var(--scroll-progress)) var(--ct-container-pad);
    min-height: 88px;
    transition: padding 0.15s linear;
}
@media (min-width: 1280px) and (max-width: 1365px) {
    .ct-navbar__inner, .ct-topbar__inner { padding-left: 60px; padding-right: 60px; }
}
@media (min-width: 1366px) and (max-width: 1439px) {
    .ct-navbar__inner, .ct-topbar__inner { padding-left: 50px; padding-right: 50px; }
}
@media (min-width: 1440px) and (max-width: 1659px) {
    .ct-navbar__inner, .ct-topbar__inner { padding-left: 40px; padding-right: 40px; }
}
@media (min-width: 1660px) {
    .ct-navbar__inner, .ct-topbar__inner { padding-left: 60px; padding-right: 60px; }
}
.ct-navbar__logo img {
    max-width: calc(170px - 42px * var(--scroll-progress));
    height: auto;
    transition: max-width 0.15s linear;
}
/* was "display: block" on the bare "img" selector above — that has higher
   specificity than the single-class ".logo-dark { display: none }" toggle,
   so it silently re-enabled the dark-mode mark in the app bar. Re-apply
   "block" only to whichever mark is actually meant to be visible. */
.ct-navbar__logo img.logo-light,
.ct-navbar__logo img.logo-dark {
    display: block;
}
.ct-navbar__links {
    display: flex;
    align-items: center;
    gap: 8px;
}
.ct-navbar__link {
    background: none;
    border: none;
    cursor: pointer;
    font-family: var(--body-font);
    font-size: 15px;
    font-weight: 600;
    color: var(--heading-color);
    padding: calc(10px - 2px * var(--scroll-progress)) 16px;
    border-radius: 6px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: padding 0.15s linear, color 0.25s ease, background-color 0.25s ease;
    text-decoration: none;
}
.ct-navbar__link:hover { color: var(--main-color-two); }
.ct-navbar__link--cta {
    background-color: var(--main-color-one);
    color: #fff !important;
    padding: 10px 22px;
    margin-left: 6px;
}
.ct-navbar__link--cta:hover {
    background-color: var(--main-color-two);
    color: #fff !important;
}
.ct-navbar__caret {
    width: 7px;
    height: 7px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    transition: transform 0.25s ease;
    margin-top: -4px;
}
.ct-navbar__dropdown {
    position: relative;
}
.ct-navbar__dropdown-menu {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    min-width: 220px;
    background: #fff;
    border-radius: 2px;
    box-shadow: 0 12px 30px rgba(4, 7, 46, 0.15);
    padding: 8px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
}
.ct-navbar__dropdown:hover .ct-navbar__dropdown-menu,
.ct-navbar__dropdown:focus-within .ct-navbar__dropdown-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.ct-navbar__dropdown:hover .ct-navbar__caret {
    transform: rotate(225deg);
    margin-top: 4px;
}
.ct-navbar__dropdown-menu a {
    display: block;
    padding: 10px 14px;
    border-radius: 5px;
    font-size: 14px;
    font-weight: 500;
    color: var(--paragraph-color);
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease;
}
.ct-navbar__dropdown-menu a:hover {
    background-color: rgb(233, 242, 255);
    color: var(--main-color-two);
    font-weight: 600 !important;
}
.ct-navbar__burger {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 34px;
    height: 34px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    position: relative;
    z-index: var(--z-navbar-burger);
}
.ct-navbar__burger span {
    display: block;
    width: 100%;
    height: 2.5px;
    background-color: var(--main-color-two);
    border-radius: 2px;
    transition: transform 0.3s ease, opacity 0.3s ease;
}
.ct-navbar__burger.is-active span:nth-child(1) {
    transform: translateY(7.5px) rotate(45deg);
}
.ct-navbar__burger.is-active span:nth-child(2) { opacity: 0; }
.ct-navbar__burger.is-active span:nth-child(3) {
    transform: translateY(-7.5px) rotate(-45deg);
}
.ct-navbar__overlay {
    position: fixed;
    inset: 0;
    background: rgba(4, 7, 46, 0.55);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s;
    z-index: var(--z-overlay); /* above topbar, navbar & burger — below the mobile panel */
}
.ct-navbar__overlay.is-active {
    opacity: 1;
    visibility: visible;
}
.ct-navbar__mobile {
    position: fixed;
    top: 0;
    right: 0;
    height: 100%;
    width: min(320px, 85vw);
    background: #fff;
    z-index: var(--z-mobile-panel); /* above the overlay — the frontmost element while open */
    padding: 20px;
    display: flex;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform 0.35s ease;
    overflow-y: auto;
    box-shadow: -10px 0 30px rgba(4, 7, 46, 0.2);
}
.ct-navbar__mobile.is-active {
    transform: translateX(0);
}
.ct-navbar__mobile-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(4, 7, 46, 0.08);
}
.ct-navbar__mobile-header img {
    max-width: 130px;
}
.ct-navbar__close {
    background: none;
    border: none;
    font-size: 30px;
    line-height: 1;
    color: var(--heading-color);
    cursor: pointer;
}
.ct-navbar__mobile-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    background: none;
    border: none;
    text-align: left;
    font-family: var(--body-font);
    font-size: 16px;
    font-weight: 600;
    color: var(--heading-color);
    text-decoration: none;
    padding: 14px 6px;
    border-bottom: 1px solid rgba(4, 7, 46, 0.06);
    cursor: pointer;
}
.ct-navbar__mobile-link--cta {
    margin-top: 14px;
    background: var(--main-color-one);
    color: #fff;
    border-radius: 6px;
    justify-content: center;
    border-bottom: none;
}
.ct-navbar__mobile-group.is-open .ct-navbar__caret {
    transform: rotate(225deg);
}
.ct-navbar__mobile-submenu {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
    padding-left: 12px;
}
.ct-navbar__mobile-group.is-open .ct-navbar__mobile-submenu {
    max-height: 200px;
}
.ct-navbar__mobile-submenu a {
    display: block;
    padding: 10px 6px;
    font-size: 14px;
    font-weight: 500;
    color: var(--paragraph-color);
    text-decoration: none;
}
.ct-navbar__mobile-submenu a:hover {
    color: var(--heading-color);
}

@media (max-width: 991px) {
    .ct-navbar__links { display: none; }
    .ct-navbar__burger { display: flex; }
    .ct-navbar__inner { padding-left: var(--ct-container-pad-tablet); padding-right: var(--ct-container-pad-tablet); }
}
@media (max-width: 576px) {
    .ct-navbar__inner { padding-left: var(--ct-container-pad-mobile); padding-right: var(--ct-container-pad-mobile); }
}
@media (prefers-reduced-motion: reduce) {
    .ct-navbar,
    .ct-navbar__dropdown-menu,
    .ct-navbar__mobile,
    .ct-navbar__overlay,
    .ct-navbar__burger span,
    .ct-navbar__logo img,
    .ct-navbar__link,
    .ct-navbar__inner {
        transition: none !important;
    }
    .ct-navbar__dropdown:hover .ct-navbar__dropdown-menu {
        transition: none !important;
    }
}

/* ========================================================================
   9. FOOTER
   ======================================================================== */
.cf-seam {
    position: relative;
    width: 100%;
    height: 3px;
    background: rgba(23, 61, 122, 0.08);
    overflow: hidden;
}
.cf-seam::before {
    content: "";
    position: absolute;
    top: 0;
    left: -35%;
    width: 35%;
    height: 100%;
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    animation: cfSeamSweep 3.2s ease-in-out infinite;
}
.cf-seam-dots {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: space-evenly;
    pointer-events: none;
}
.cf-seam-dots span {
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    opacity: 0.35;
    animation: cfDotPulse 2.4s ease-in-out infinite;
}
.cf-seam-dots span:nth-child(2) { animation-delay: 0.4s; }
.cf-seam-dots span:nth-child(3) { animation-delay: 0.8s; }
.cf-seam-dots span:nth-child(4) { animation-delay: 1.2s; }
.cf-seam-dots span:nth-child(5) { animation-delay: 1.6s; }

@keyframes cfSeamSweep {
    0% { left: -35%; }
    100% { left: 100%; }
}
@keyframes cfDotPulse {
    0%, 100% { opacity: 0.25; transform: scale(1); }
    50% { opacity: 0.9; transform: scale(1.6); }
}

footer.footer-area.cf-footer,
.cf-footer {
    position: relative;
    background: #ffffff !important;
    overflow: visible;
    font-family: var(--body-font) !important;
    //margin-top: 10% !important;
}
.cf-footer,
.cf-footer :not(i):not(em) {
    font-family: var(--body-font) !important;
}
.cf-footer .cf-texture {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image: radial-gradient(rgba(23, 61, 122, 0.10) 1.5px, transparent 1.5px),
    radial-gradient(rgba(221, 19, 26, 0.08) 1.5px, transparent 1.5px),
    radial-gradient(rgba(23, 61, 122, 0.06) 1px, transparent 1px);
    background-size: 140px 140px, 190px 190px, 60px 60px;
    background-position: 0 0, 60px 90px, 30px 20px;
    -webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.9), rgba(0, 0, 0, 0.25) 85%);
    mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.9), rgba(0, 0, 0, 0.25) 85%);
}
.cf-footer .cf-container {
    position: relative;
    z-index: 1;
    max-width: 1450px;
    margin: 0 auto;
    padding: 60px var(--ct-container-pad) 0;
}
@media (min-width: 1280px) and (max-width: 1365px) {
    .cf-footer .cf-container { padding-left: 60px; padding-right: 60px; }
}
@media (min-width: 1366px) and (max-width: 1439px) {
    .cf-footer .cf-container { padding-left: 50px; padding-right: 50px; }
}
@media (min-width: 1440px) and (max-width: 1659px) {
    .cf-footer .cf-container { padding-left: 40px; padding-right: 40px; }
}
@media (min-width: 1660px) {
    .cf-footer .cf-container { padding-left: 60px; padding-right: 60px; }
}
@media only screen and (max-width: 991px) {
    .cf-footer .cf-container { padding-left: var(--ct-container-pad-tablet); padding-right: var(--ct-container-pad-tablet); }
}
@media only screen and (max-width: 576px) {
    .cf-footer .cf-container { padding-left: var(--ct-container-pad-mobile); padding-right: var(--ct-container-pad-mobile); }
}

.cf-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 30px;
    padding-bottom: 40px;
}
.cf-top--no-card {
    padding-bottom: 24px;
}
.cf-brand {
    display: flex;
    align-items: center;
    gap: 16px;
    padding-top: 10px;
}
.cf-mark {
    position: relative;
    width: 46px;
    height: 46px;
    flex: none;
}
.cf-mark span {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 5px;
    height: 46px;
    margin-left: -2.5px;
    margin-top: -23px;
    border-radius: 3px;
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
}
.cf-mark span:nth-child(1) { transform: rotate(0deg); }
.cf-mark span:nth-child(2) { transform: rotate(60deg); }
.cf-mark span:nth-child(3) { transform: rotate(120deg); }
.cf-brand-name {
    font-family: var(--heading-font) !important;
    font-weight: 700;
    font-size: 22px;
    color: var(--heading-color) !important;
    line-height: 1.2;
}
.cf-brand-name small {
    display: block;
    font-family: var(--body-font);
    font-weight: 400;
    font-size: 13px;
    color: var(--paragraph-color) !important;
    margin-top: 2px;
}
.cf-float-card {
    background: #ffffff !important;
    border: 1px solid rgba(23, 61, 122, 0.08);
    border-radius: 18px;
    padding: 32px 38px;
    max-width: 560px;
    width: 100%;
    margin-top: -110px;
    position: relative;
    z-index: 4;
    overflow: hidden;
    transform-style: preserve-3d;
    perspective: 800px;
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06),0 .125rem .4rem -.0625rem rgb(11 15 25 / .03)!important;
    transition: transform 0.4s ease, box-shadow 0.4s ease;
}
.cf-float-card:hover {
    transform: translateY(-6px) rotateX(2deg);
    box-shadow: 0 4px 6px rgba(4, 7, 46, 0.12),
    0 20px 36px -8px rgba(4, 7, 46, 0.26),
    0 46px 80px -18px rgba(4, 7, 46, 0.34),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
}
.cf-float-card-inner {
    position: relative;
    z-index: 1;
}
.cf-float-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 18px;
    right: 18px;
    height: 1px;
    z-index: 1;
}
.cf-float-card::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 0;
    z-index: 0;
}
@media (max-width: 575px) {
    .cf-float-card::after {
        border-width: 30px 30px 0 0;
    }
}
.cf-float-card h4 {
    font-family: var(--heading-font) !important;
    font-size: 22px;
    font-weight: 700;
    color: var(--heading-color) !important;
    margin: 0 0 6px;
}
.cf-float-card p {
    font-size: 14px;
    color: var(--paragraph-color) !important;
    margin: 0 0 18px;
}
.cf-float-card .cf-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 13px 26px;
    border-radius: 50px;
    font-weight: 600;
    font-size: 14px;
    color: #fff;
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    box-shadow: 0 10px 22px rgba(221, 19, 26, 0.18);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.cf-float-card .cf-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06), 0 .125rem .4rem -.0625rem rgb(11 15 25 / .03);
}
.cf-tagline {
    font-size: 20px;
    color: var(--heading-color) !important;
    font-weight: 400;
    padding-bottom: 46px;
}
.cf-tagline strong { font-weight: 700; }
.cf-tagline .cf-accent {
    color: var(--main-color-one) !important;
    font-weight: 700;
}
.cf-cols {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr 0.9fr;
    gap: 40px;
    padding-bottom: 44px;
    border-bottom: 1px solid rgba(23, 61, 122, 0.10) !important;
}
.cf-col h5 {
    font-family: var(--heading-font) !important;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--main-color-one) !important;
    margin: 0 0 20px;
}
.cf-col ul {
    margin: 0;
    padding: 0;
    list-style: none;
}
.cf-col li + li { margin-top: 12px; }
.cf-col a,
.cf-col .cf-text {
    font-size: 14.5px;
    color: var(--paragraph-color) !important;
    line-height: 1.6;
}
.cf-col a {
    transition: color 0.2s ease, padding-left 0.2s ease;
    display: inline-block;
}
.cf-col a:hover {
    color: var(--main-color-one) !important;
    padding-left: 3px;
}
.cf-office + .cf-office { margin-top: 22px; }
.cf-office-name {
    display: block;
    font-weight: 700;
    color: var(--heading-color) !important;
    font-size: 14.5px;
    margin-bottom: 4px;
}
.cf-social {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}
.cf-social a {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(23, 61, 122, 0.18);
    color: var(--main-color-two);
    font-size: 14px;
    transition: all 0.25s ease;
}
.cf-social__appBar {
    display: flex;
    gap:6px;
    padding: 5px;
}

.cf-social a:hover {
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    border-color: transparent;
    color: #fff !important;
    transform: translateY(-3px);
}
.cf-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    padding: 22px 0 30px;
    font-size: 13.5px;
    color: var(--paragraph-color) !important;
}
.cf-bottom a {
    color: var(--paragraph-color) !important;
}
.cf-bottom a:hover {
    color: var(--main-color-one) !important;
}
.cf-bottom-links {
    display: flex;
    gap: 22px;
    flex-wrap: wrap;
}
.cf-to-top {
    position: fixed;
    padding: 17px 17px;
    bottom: 90px;
    right: 24px;
    z-index: 9997;
    transition: bottom 0.3s ease, opacity 0.3s ease, visibility 0.3s ease;
    border-radius: 50%;
    background: #fff;
    border: 1px solid rgba(23, 61, 122, 0.15);
    box-shadow: 0 10px 24px rgba(4, 7, 46, 0.14);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--main-color-two);
    font-size: 16px;
}
@media (max-width: 576px) {
    .cf-to-top {
        bottom: 70px;
        right: 16px;
    }
}
.cf-to-top:hover {
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    color: #fff;
    border-color: transparent;
}
@media (max-width: 991px) {
    .cf-cols { grid-template-columns: 1fr 1fr; row-gap: 34px; }
    .cf-float-card { margin-top: 0; max-width: 100%; }
    .cf-top { align-items: center; }
}
@media (max-width: 767px) {
    //.cf-footer { padding-top: 50px; }
    .cf-container { padding-left: var(--ct-container-pad-mobile); padding-right: var(--ct-container-pad-mobile); }
    .cf-top { flex-direction: column; }
    .cf-float-card { padding: 24px 22px; }
    .cf-tagline { font-size: 17px; padding-bottom: 34px; }
    .cf-cols { grid-template-columns: 1fr 1fr; gap: 30px 24px; padding-bottom: 30px; }
}
@media (max-width: 575px) {
    .cf-cols { grid-template-columns: 1fr; }
    .cf-brand-name { font-size: 19px; }
    .cf-bottom { flex-direction: column; align-items: flex-start; text-align: left; }
    .cf-to-top { right: 16px; bottom: 16px; width: 42px; height: 42px; font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) {
    .cf-social a,
    .cf-to-top,
    .cf-float-card .cf-btn {
        transition: none !important;
    }
    .cf-seam::before,
    .cf-seam-dots span {
        animation: none !important;
    }
}
.cf-cols .cf-col ul {
    position: relative;
    padding-left: 18px;
}
.cf-cols .cf-col ul::before {
    content: "";
    position: absolute;
    top: 6px;
    bottom: 6px;
    left: 3px;
    width: 2px;
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    opacity: 0.35;
}
.cf-cols .cf-col ul li {
    position: relative;
}
.cf-cols .cf-col ul li::before {
    content: "";
    position: absolute;
    left: -18px;
    top: 50%;
    transform: translateY(-50%);
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #fff;
    border: 2px solid var(--main-color-one);
    z-index: 1;
    transition: transform 0.25s ease, border-color 0.25s ease;
}
.cf-cols .cf-col ul li:hover::before {
    transform: translateY(-50%) scale(1.3);
    border-color: var(--main-color-two);
}
.cf-cols .cf-col .cf-social {
    padding-left: 0;
}
.cf-cols .cf-col .cf-social::before {
    content: none;
}
@media (max-width: 991px) {
    .cf-cols .cf-col ul { padding-left: 16px; }
    .cf-cols .cf-col ul li::before { left: -16px; width: 7px; height: 7px; }
}
@media (max-width: 575px) {
    .cf-cols .cf-col ul { padding-left: 14px; }
    .cf-cols .cf-col ul li::before { left: -14px; width: 7px; height: 7px; }
}
@media (prefers-reduced-motion: reduce) {
    .cf-cols .cf-col ul li::before { transition: none !important; }
}

/* ========================================================================
   10. HERO / HEADER
   ======================================================================== */
.ct-page-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: flex;
    align-items: center;
    min-height: 520px;
    padding: 80px 0 100px !important;
    background-color: var(--secondary-color);
    background-image: var(--ct-hero-photo, none);
    background-size: cover;
    background-position: center;
}
.ct-page-hero--home {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.ct-page-hero-inner-banner--01 {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: flex;
    align-items: center;
    min-height: 220px;
    padding: 60px 0 80px !important;
    background-color: var(--secondary-color);
    background-image: var(--ct-hero-photo, none);
    background-size: cover;
    background-position: center;
}
.ct-page-hero-inner-banner--01::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image: linear-gradient(120deg, rgba(23, 61, 122, 0.93) 0%, rgba(41, 103, 203, 0.87) 55%, rgba(175, 11, 7, 0.8) 150%),
    linear-gradient(rgba(255, 255, 255, 0.1) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.1) 1px, transparent 1px);
    background-size: 100% 100%, 64px 64px, 64px 64px;
    background-position: 0 0, -1px -1px, -1px -1px;
    background-repeat: no-repeat, repeat, repeat;
    animation: ctPageHeroGridDrift 32s linear infinite;
}
.ct-page-hero-inner-banner {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: flex;
    align-items: center;
    min-height: 520px;
    padding: 120px 0 150px !important;
    background-color: var(--secondary-color);
    background-image: var(--ct-hero-photo, none);
    background-size: cover;
    background-position: center;
}
.ct-page-hero-inner-banner::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image: linear-gradient(120deg, rgba(23, 61, 122, 0.93) 0%, rgba(41, 103, 203, 0.87) 55%, rgba(175, 11, 7, 0.8) 150%),
    linear-gradient(rgba(255, 255, 255, 0.1) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.1) 1px, transparent 1px);
    background-size: 100% 100%, 64px 64px, 64px 64px;
    background-position: 0 0, -1px -1px, -1px -1px;
    background-repeat: no-repeat, repeat, repeat;
    animation: ctPageHeroGridDrift 32s linear infinite;
}
.ct-page-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image: linear-gradient(120deg, rgba(23, 61, 122, 0.93) 0%, rgba(41, 103, 203, 0.87) 55%, rgba(175, 11, 7, 0.8) 150%),
    linear-gradient(rgba(255, 255, 255, 0.1) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.1) 1px, transparent 1px);
    background-size: 100% 100%, 64px 64px, 64px 64px;
    background-position: 0 0, -1px -1px, -1px -1px;
    background-repeat: no-repeat, repeat, repeat;
    animation: ctPageHeroGridDrift 32s linear infinite;
}
@keyframes ctPageHeroGridDrift {
    0% { background-position: 0 0, -1px -1px, -1px -1px; }
    100% { background-position: 0 0, 63px 63px, 63px 63px; }
}
@keyframes ctPageHeroGridDriftFade {
    0% { background-position: 0 0, 0 0, 0 0, -1px -1px, -1px -1px; }
    100% { background-position: 0 0, 0 0, 0 0, 63px 63px, 63px 63px; }
}
.ct-page-hero::after {
    content: "";
    position: absolute;
    z-index: 0;
    pointer-events: none;
    width: 560px;
    height: 560px;
    right: -140px;
    top: -200px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.18), transparent 70%);
}
.ct-page-hero__inner {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: var(--ct-container-max);
    margin: 0 auto;
    padding: 0 var(--ct-container-pad);
}
@media only screen and (max-width: 991px) {
    .ct-page-hero__inner { padding-left: var(--ct-container-pad-tablet); padding-right: var(--ct-container-pad-tablet); }
}
@media only screen and (max-width: 576px) {
    .ct-page-hero__inner { padding-left: var(--ct-container-pad-mobile); padding-right: var(--ct-container-pad-mobile); }
}
.ct-page-hero__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-family: var(--body-font);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.8);
    margin-bottom: 18px;
}
.ct-page-hero__eyebrow-line {
    width: 30px;
    height: 2px;
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    display: inline-block;
}
.ct-page-hero__eyebrow-line_dark {
    width: 30px;
    height: 2px;
    background: #ffffff;
    display: inline-block;
}
.ct-page-hero__title {
    font-family: var(--heading-font);
    font-weight: 700;
    text-transform: uppercase;
    font-size: clamp(32px, 4.6vw, 56px);
    line-height: 1.08;
    letter-spacing: 0.01em;
    color: #fff;
    margin: 0 0 16px;
}
.ct-page-hero__desc {
    font-family: var(--body-font);
    font-size: 16px;
    line-height: 26px;
    font-weight: 300;
    color: rgba(255, 255, 255, 0.85);
    max-width: 560px;
    margin: 0 0 26px;
}
.ct-page-hero__crumbs {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.ct-page-hero__crumbs li {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--body-font);
    font-size: 14px;
    font-weight: 500;
}
.ct-page-hero__crumbs li a {
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    transition: color 0.2s ease;
}
.ct-page-hero__crumbs li a:hover {
    color: #fff;
}
.ct-page-hero__crumbs li.is-current {
    color: #fff;
    font-weight: 600;
}
.ct-page-hero__crumbs li + li::before {
    content: "/";
    color: rgba(255, 255, 255, 0.4);
}
.ct-page-hero__crumbs-wrap {
    margin-top: 16px;
}
@media (max-width: 768px) {
    .ct-page-hero__crumbs-wrap { margin-top: 10px; }
}
@media (max-width: 768px) {
    .ct-page-hero {
        min-height: 280px;
        padding: 70px 0 40px;
    }
    .ct-page-hero::after {
        width: 340px;
        height: 340px;
        right: -100px;
        top: -140px;
    }
}
@media (prefers-reduced-motion: reduce) {
    .ct-page-hero::before { animation: none; }
    .ct-page-hero__eyebrow,
    .ct-page-hero__title,
    .ct-page-hero__desc,
    .ct-page-hero__crumbs { animation: none; }
}
.ct-color_variate_02 {
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}
.admin-shape-02 {
    position: absolute;
    left: 13%;
    top: -17%;
    opacity: 0.2;
}
/* Intro Shapes */
.intro-shape-layer {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
}
.intro-shape-layer::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: radial-gradient(rgba(23, 61, 122, 0.14) 1px, transparent 1.5px);
}
.intro-geofence {
    position: absolute;
    top: -60px;
    left: -70px;
    width: 380px;
    height: 380px;
    opacity: 0.5;
    animation: geoSpin 100s linear infinite;
    transform-origin: center;
}
.intro-geofence circle {
    fill: none;
    stroke: var(--secondary-color);
}
.intro-geofence .ring-outer {
    stroke-dasharray: 4 8;
}
.intro-geofence .ring-mid {
    stroke-dasharray: 2 6;
    stroke: var(--color_1_theme1);
}
.intro-geofence .ring-inner {
    stroke: var(--main-color-one);
    stroke-dasharray: 1 5;
    transform-origin: 190px 190px;
    animation: ringPulse 3.5s ease-in-out infinite;
}
@keyframes geoSpin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}
@keyframes ringPulse {
    0%, 100% { opacity: 0.5; }
    50% { opacity: 1; }
}
.intro-node-cluster {
    position: absolute;
    animation: nodeFloat 6s ease-in-out infinite;
}
.intro-node-cluster line {
    stroke: rgba(23, 61, 122, 0.35);
    stroke-width: 1;
}
.intro-node-cluster circle {
    fill: var(--main-color-one);
    animation: nodePulse 2.4s ease-in-out infinite;
}
.intro-node-cluster circle.node-blue {
    fill: var(--color_1_theme1);
}
@keyframes nodeFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}
@keyframes nodePulse {
    0%, 100% { r: 4; opacity: 0.8; }
    50% { r: 6; opacity: 1; }
}
.intro-node-cluster--a {
    bottom: 4%;
    left: 4%;
    width: 160px;
    height: 120px;
    opacity: 0.85;
    animation-duration: 6s;
}
.intro-node-cluster--b {
    top: 12%;
    right: 6%;
    width: 120px;
    height: 90px;
    opacity: 0.6;
    animation-duration: 7.5s;
    animation-delay: 1.2s;
}
.intro-node-cluster--c {
    top: 55%;
    left: 46%;
    width: 100px;
    height: 80px;
    opacity: 0.45;
    animation-duration: 5.2s;
    animation-delay: 0.6s;
}
.intro-node-cluster--d {
    bottom: 10%;
    right: 30%;
    width: 90px;
    height: 70px;
    opacity: 0.4;
    animation-duration: 8s;
    animation-delay: 2s;
}
.intro-node-cluster circle:nth-of-type(1) { animation-delay: 0s; }
.intro-node-cluster circle:nth-of-type(2) { animation-delay: 0.3s; }
.intro-node-cluster circle:nth-of-type(3) { animation-delay: 0.6s; }
.intro-node-cluster circle:nth-of-type(4) { animation-delay: 0.9s; }
@media (max-width: 991px) {
    .intro-geofence { width: 260px; height: 260px; }
    .intro-node-cluster--b,
    .intro-node-cluster--c,
    .intro-node-cluster--d { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .intro-geofence,
    .intro-geofence .ring-inner,
    .intro-node-cluster,
    .intro-node-cluster circle {
        animation: none !important;
    }
}

/* ========================================================================
   11. SECTION TITLES
   ======================================================================== */
.section-title {
    margin-bottom: 40px;
}
.section-title .subtitle,
.section-title .proactive-content__eyebrow,
.section-title .proactive-content__eyebrow-dark {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--body-font);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--main-color-one);
    margin-bottom: 8px;
    line-height: 1.4;
}
.section-title .main_subtitle {
    font-size: 17px;
    font-weight: 600;
    text-transform: initial;
    color: var(--main-subtitle-color);
    line-height: 35px;
}
.section-title .proactive-content__eyebrow-dark {
    color: #ddd;
}
.section-title .proactive-content__eyebrow-line,
.section-title .proactive-content__eyebrow-line-dark {
    width: 30px;
    height: 2px;
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    display: inline-block;
}
.section-title .proactive-content__eyebrow-line-dark {
    background: linear-gradient(90deg, var(--white-color), var(--white-color));
}
.section-title .title {
    font-family: var(--heading-font);
    font-weight: 700;
    font-size: clamp(30px, 3.6vw, 46px);
    line-height: 1.2;
    color: var(--heading-color);
    margin: 0 0 6px;
    text-transform: none;
    letter-spacing: normal;
}
.section-title .description {
    font-family: var(--body-font);
    font-size: 16px;
    line-height: 28px;
    color: var(--paragraph-color);
    margin: 0;
    max-width: 700px;
}
.section-title.text-left .subtitle,
.section-title.text-left .proactive-content__eyebrow,
.section-title.text-left .proactive-content__eyebrow-dark {
    justify-content: flex-start;
}
.section-title.text-left .title,
.section-title.text-left .description {
    text-align: left;
    margin-left: 0;
    margin-right: auto;
}
.section-title.text-center .subtitle,
.section-title.text-center .proactive-content__eyebrow,
.section-title.text-center .proactive-content__eyebrow-dark {
    justify-content: center;
}
.section-title.text-center .title,
.section-title.text-center .description {
    text-align: center;
    margin-left: auto;
    margin-right: auto;
}
.section-title.text-right .subtitle,
.section-title.text-right .proactive-content__eyebrow,
.section-title.text-right .proactive-content__eyebrow-dark {
    justify-content: flex-end;
}
.section-title.text-right .title,
.section-title.text-right .description {
    text-align: right;
    margin-left: auto;
    margin-right: 0;
}
.custom-background-img {
    position: absolute;
}
.top-rated-title .title {
    font-size: 24px;
    line-height: 34px;
    font-weight: 700;
    font-family: var(--heading-font);
    margin-bottom: 45px;
}
.administration-section.mt-5 + .administration-section.mt-5 {
    border-top: 1px dashed rgba(4, 7, 46, 0.08);
    //box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06), 0 .125rem .4rem -.0625rem rgb(11 15 25 / .03);
    padding-top: 40px;
}
.logo-showcase {
    overflow-x: hidden;
}
.logo-showcase .row {
    row-gap: 24px;
    margin-top: 1.5rem;
    margin-left: 0;
    margin-right: 0;
}
.logo-showcase__panel {
    position: relative;
    padding: 32px 28px;
    border-radius: 22px;
    background: #f7f8fb;
    border: 1px solid rgba(4, 7, 46, 0.06);
}
.logo-showcase__panel .row.logo-row {
    margin-top: 0;
}
@media (max-width: 576px) {
    .logo-showcase__panel { padding: 24px 16px; border-radius: 16px; }
}
.logo-showcase .row > [class*="col-"] {
    /* 0.75rem + 0.75rem = 24px, matching .logo-showcase .row's 24px row-gap
       above so horizontal and vertical spacing in the grid are equal. */
    padding-left: 0.75rem;
    padding-right: 0.75rem;
}
@media (max-width: 576px) {
    .logo-showcase .row > [class*="col-"] {
        padding-left: 8px;
        padding-right: 8px;
    }
}
.logo-showcase .card.card-hover.mx-2 {
    margin-left: 0 !important;
    margin-right: 0 !important;
}
.logo-showcase .card.card-hover {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    aspect-ratio: 1 / 1;
    /* was 18% — that's how the logos ended up looking small and lost
       inside the card. 9% gives them noticeably more presence while still
       leaving a clean margin. */
    padding: 9%;
    background: #fff;
    border: 1px solid rgba(4, 7, 46, 0.07);
    border-radius: 14px;
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06), 0 .125rem .4rem -.0625rem rgb(11 15 25 / .03);
    box-sizing: border-box;
    overflow: hidden;
    -webkit-filter: grayscale(100%);
    filter: grayscale(100%);
    opacity: 0.78;
    transition: transform 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease, filter 0.35s ease,
    opacity 0.35s ease, background-color 0.35s ease;
}
.logo-showcase .card.card-hover::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--main-color-one), var(--main-color-two));
    transform: scaleX(0);
    transform-origin: center;
    transition: transform 0.4s ease;
}
.logo-showcase .card.card-hover:hover::after {
    transform: scaleX(1);
}
@supports not (aspect-ratio: 1 / 1) {
    .logo-showcase .card.card-hover {
        height: 0;
        padding-bottom: 100%;
        position: relative;
    }
    .logo-showcase .card.card-hover img {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }
}
.logo-showcase .card.card-hover img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    -webkit-filter: grayscale(100%);
    filter: grayscale(100%);
    transition: filter 0.35s ease, transform 0.35s ease;
}
.logo-showcase .card.card-hover:hover {
    transform: translateY(-6px) scale(1.03);
    box-shadow: 0 20px 34px -16px rgba(4, 7, 46, 0.22);
    border-color: rgba(23, 61, 122, 0.2);
    -webkit-filter: grayscale(0%);
    filter: grayscale(0%);
    opacity: 1;
}
.logo-showcase .card.card-hover:hover img {
    -webkit-filter: grayscale(0%);
    filter: grayscale(0%);
    transform: scale(1.04);
}
.partners-logos .row {
    justify-content: flex-start;
}

/* ----------------------------------------------------------------------
   Theme-aware client/partner logos (lightClient_logo / darkClient_logo).
   Same pattern as the site's own .logo-light/.logo-dark pair: both
   variants render, CSS shows exactly one. Kept as its own class (rather
   than reusing .logo-light/.logo-dark) so it can't be affected by any
   future rule scoped to those global classes elsewhere on the page.
   !important for the same reason as the site-logo toggle above — this is
   a dedicated visibility switch and must always win. ---------------------------------------------------------------------- */
.client-logo--dark { display: none !important; }
.contact-page-wrapper {
    position: relative;
    top: 70px;
}
.contact-page-wrapper.style-01 {
    top: 0;
}
.contact-page-wrapper.style-03 {
    top: 0;
}
.contact-page-wrapper #animated_golbe_div {
    position: relative;
    z-index: 3;
}
.globe-decor {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 100%;
    transform: translate(-50%, -50%);
    z-index: 1;
    pointer-events: none;
}
.globe-glow {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 92%;
    height: 92%;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: radial-gradient(circle, rgba(58, 123, 213, 0.3) 0%, rgba(221, 19, 26, 0.12) 55%, rgba(255, 255, 255, 0) 75%);
    filter: blur(4px);
    animation: glowPulse 6s ease-in-out infinite;
}
@keyframes glowPulse {
    0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.9; }
    50% { transform: translate(-50%, -50%) scale(1.05); opacity: 1; }
}
.orbit-ring {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 78%;
    height: 78%;
    transform: translate(-50%, -50%);
    border: 1.5px dashed rgba(221, 19, 26, 0.45);
    border-radius: 50%;
    z-index: 2;
    animation: orbitSpin 22s linear infinite;
}
.orbit-ring--outer {
    width: 88%;
    height: 88%;
    border: 1px dashed rgba(23, 61, 122, 0.35);
    animation-duration: 34s;
    animation-direction: reverse;
}
@keyframes orbitSpin {
    from { transform: translate(-50%, -50%) rotate(0deg); }
    to { transform: translate(-50%, -50%) rotate(360deg); }
}
.satellite {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 78%;
    height: 78%;
    transform: translate(-50%, -50%);
    z-index: 2;
    animation: orbitSpin 22s linear infinite;
}
.satellite::after {
    content: "";
    position: absolute;
    top: -4px;
    left: 50%;
    width: 9px;
    height: 9px;
    background: var(--main-color-one);
    border-radius: 50%;
    box-shadow: 0 0 8px rgba(221, 19, 26, 0.8);
    transform: translateX(-50%);
}
.satellite--blue {
    width: 88%;
    height: 88%;
    animation-duration: 34s;
    animation-direction: reverse;
}
.satellite--blue::after {
    width: 7px;
    height: 7px;
    background: var(--color_1_theme1);
    box-shadow: 0 0 8px rgba(58, 123, 213, 0.8);
}
@media (prefers-reduced-motion: reduce) {
    .globe-glow,
    .orbit-ring,
    .satellite {
        animation: none !important;
    }
}
.custom_bounce {
    transition: transform 0.5s ease, filter 0.5s ease;
}
.custom_bounce:hover {
    transform: translateY(-6px);
    filter: drop-shadow(0 18px 24px rgba(4, 7, 46, 0.12));
}
/* ============================================================================
   GEOBIZZ PLATFORM SHOWCASE ("Explore GeoBizz" video carousel)
   ============================================================================ */
.gp-section {
    position: relative;
    padding: 70px 0 10px;
    overflow: hidden;
}
.gp-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: -30px;
}
.gp-head__copy .description {
    max-width: 560px;
}
/* Target container the nav arrows get relocated into (see the small
   relocate-carousel-nav script in HomePage.blade.php) so "Explore GeoBizz"
   and the prev/next buttons render on the same row, instead of the old
   position:absolute guesswork that put them on their own line with a big
   gap underneath. Empty + collapses to nothing if the script hasn't run
   yet (e.g. right at first paint) or JS is unavailable. */
.gp-head__nav {
    display: flex;
    gap: 12px;
    flex-shrink: 0;
}

.gp-carousel-wrap {
    position: relative;
    margin-top: 1px;
}

/* -- card -- */
.gp-card {
    position: relative;
    background: #fff;
    border-radius: 18px;
    border: 1px solid rgba(4, 7, 46, 0.06);
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06),0 .125rem .4rem -.0625rem rgb(11 15 25 / .03)!important;
    overflow: hidden;
    z-index: 1 !important;
    transition: transform 0.4s ease, box-shadow 0.4s ease, border-color 0.4s ease;
}
.gp-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 3px;
    z-index: 3;
    background: linear-gradient(90deg, var(--main-color-one), var(--main-color-two));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.45s ease;
}
.gp-card:hover {
    transform: translateY(-8px);
    border-color: transparent;
    box-shadow: 0 30px 50px -20px rgba(4, 7, 46, 0.22);
}
.gp-card:hover::before {
    transform: scaleX(1);
}
.gp-card__frame {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
}
.gp-card__frame lite-youtube.gp-card__video {
    width: 100% !important;
    height: 100% !important;
    position: absolute;
    inset: 0;
}
.gp-card__index {
    position: absolute;
    top: 14px;
    left: 14px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    height: 26px;
    padding: 0 9px;
    border-radius: 999px;
    background: rgba(4, 7, 46, 0.55);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    color: #fff;
    font-family: var(--body-font);
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.03em;
    pointer-events: none;
}
.gp-card__body {
    padding: 20px 22px 22px;
}
.gp-card__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-family: var(--body-font);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--main-color-two);
    margin-bottom: 8px;
}
.gp-card__eyebrow i { font-size: 9px; }
.gp-card__title {
    margin: 0;
    font-family: var(--heading-font);
    font-weight: 700;
    font-size: 19px;
    line-height: 1.3;
    color: var(--heading-color);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.gp-card__highlight {
    background: linear-gradient(90deg, var(--main-color-one), var(--main-color-two));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* -- fallback grid: renders nicely before/without the owl-carousel JS -- */
.gp-carousel {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 28px;
}
.gp-carousel.owl-carousel {
    display: block;
}
.gp-carousel.owl-carousel .gp-card {
    height: 100%;
}

/* -- nav arrows --
   Primary location: relocated into #gpCarouselNav (inside .gp-head) by
   the script in HomePage.blade.php — normal flex flow, no absolute
   positioning needed, so it can never drift out of alignment with the
   header again. ".gp-carousel-wrap .owl-nav" is the fallback for the
   split second before that script runs (or if JS is disabled): plain,
   centered, static — never absolute — so worst case it sits quietly
   under the cards instead of floating off in the wrong spot. */
.gp-head__nav .owl-nav,
.gp-carousel-wrap .owl-nav {
    display: flex;
    gap: 12px;
    transition: opacity 0.4s ease;
}
.gp-carousel-wrap .owl-nav {
    justify-content: center;
    margin-top: 24px;
}
.gp-head__nav .owl-nav .owl-prev,
.gp-head__nav .owl-nav .owl-next,
.gp-carousel-wrap .owl-nav .owl-prev,
.gp-carousel-wrap .owl-nav .owl-next {
    position: static;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: #fff;
    color: var(--main-color-two);
    font-size: 20px;
    border: 1px solid rgba(4, 7, 46, 0.08);
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .09), 0 .125rem .4rem -.0625rem rgb(11 15 25 / .03);
    cursor: pointer;
    transition: transform 0.35s ease, box-shadow 0.35s ease, background 0.35s ease, color 0.35s ease;
}
.gp-head__nav .owl-nav .owl-prev:hover,
.gp-head__nav .owl-nav .owl-next:hover,
.gp-carousel-wrap .owl-nav .owl-prev:hover,
.gp-carousel-wrap .owl-nav .owl-next:hover {
    color: #fff;
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    box-shadow: 0 14px 28px -10px rgba(3, 69, 178, 0.4);
    transform: translateY(-3px);
}
.gp-head__nav .owl-nav .disabled,
.gp-carousel-wrap .owl-nav .disabled {
    opacity: 0.35;
    pointer-events: none;
}
.gp-carousel-wrap .owl-dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 30px;
}
.gp-carousel-wrap .owl-dots .owl-dot span {
    display: block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(4, 7, 46, 0.15);
    transition: all 0.3s ease;
}
.gp-carousel-wrap .owl-dots .owl-dot.active span {
    width: 22px;
    border-radius: 4px;
    background: linear-gradient(90deg, var(--main-color-one), var(--main-color-two));
}

@media (max-width: 767px) {
    .gp-head { flex-direction: column; align-items: flex-start; }
    .gp-head__nav {
        width: 100%;
        justify-content: center;
        margin-top: -40px;
    }
    .gp-carousel-wrap { margin-top: 30px; }
    .gp-carousel-wrap .owl-nav {
        margin: 24px 0 0;
    }
    .gp-head__nav .owl-nav .owl-prev,
    .gp-head__nav .owl-nav .owl-next,
    .gp-carousel-wrap .owl-nav .owl-prev,
    .gp-carousel-wrap .owl-nav .owl-next {
        width: 44px;
        height: 44px;
        font-size: 17px;
    }
    .gp-card__title { font-size: 17px; }
}
@media (max-width: 480px) {
    .gp-carousel { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
    .gp-card, .gp-card::before,
    .gp-head__nav .owl-nav .owl-prev, .gp-head__nav .owl-nav .owl-next,
    .gp-carousel-wrap .owl-nav .owl-prev, .gp-carousel-wrap .owl-nav .owl-next {
        transition: none !important;
    }
}

/* Legacy .testimonial-carousel component removed — no longer referenced in
   any template; its nav styling is now handled by .gp-carousel-wrap .owl-nav */

/* ========================================================================
   12. FORMS & WIDGETS
   ======================================================================== */
.contact-form .title {
    font-size: 20px;
    line-height: 28px;
    font-weight: 700;
    font-family: var(--heading-font);
    color: var(--heading-color);
    margin-bottom: 20px;
}
.contact-form .form-group {
    margin-bottom: 20px;
}
.contact-form .form-group .form-control {
    padding: 22px 30px;
    border: 1px solid #ccc;
    font-size: 16px;
    line-height: 21px;
    font-family: var(--body-font);
    font-weight: 300;
    border-radius: 10px;
}
.contact-info-list-02 {
    margin: 0;
    padding: 0;
    list-style: none;
}
.contact-info-list-02 .single-info-item {
    display: flex;
    align-items: center;
}
.contact-info-list-02 .single-info-item + .single-info-item {
    margin-top: 18px;
}
.contact-info-list-02 .single-info-item .icon {
    color: #505050;
    font-size: 20px;
    margin-right: 12px;
}
.contact-info-list-02 .single-info-item .icon .icon-envelope {
    font-size: 14px;
}
.contact-info-list-02 .single-info-item .details {
    font-size: 16px;
    line-height: 24px;
    font-family: var(--body-font);
    font-weight: 500;
    color: #505050;
}
.contact-page-form-section.contact-form-bg {
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    padding-top: 120px;
    position: relative;
}
.contact-page-form-section.contact-form-bg::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(14, 17, 90, 0.8);
}
.contact-page-form-section .contact-item-wrapper {
    background: #fff;
    padding: 50px;
    border-radius: 10px;
    margin-bottom: -300px;
    box-shadow: 0 10px 40px rgba(72, 72, 72, 0.1);
    position: relative;
}
.contact-page-form-section .contact-item-wrapper .contact-shape {
    position: absolute;
    bottom: 4%;
    left: 20%;
}
.contact-page-form-section .contact-item-wrapper .contact-shape-02 {
    position: absolute;
    left: 0;
    bottom: 35%;
}
.contact-page-form-section .contact-item-wrapper .contact-shape-03 {
    position: absolute;
    left: 39%;
    top: 35%;
}
.contact-page-form-section .contact-item-wrapper .contact-shape-04 {
    position: absolute;
    left: 11%;
    top: 8%;
}
.contact-page-form-section .contact-item-wrapper .contact-single-item .content {
    margin-bottom: 50px;
}
.contact-page-form-section .contact-item-wrapper .contact-single-item .content .title {
    font-size: 40px;
    line-height: 55px;
    font-family: var(--heading-font);
    font-weight: 600;
    color: var(--heading-color);
    margin-bottom: 20px;
}
.contact-page-form-section .contact-item-wrapper .contact-single-item .content p {
    font-size: 16px;
    line-height: 28px;
    font-family: var(--body-font);
    font-weight: 400;
    color: #505050;
    margin-bottom: 0;
}

/* ========================================================================
   13. ANIMATIONS (kept only used ones)
   ======================================================================== */
/* Only necessary keyframes preserved */

/* ========================================================================
   14. RESPONSIVE OVERRIDES
   ======================================================================== */
@media only screen and (max-width: 991px) {
    .ct-container {
        padding-left: 4%;
        padding-right: 4%;
    }
    .tablet-center { text-align: center; }
    .tablet-left { text-align: left; }
    .tablet-right { text-align: right; }
}
@media only screen and (max-width: 768px) {
    .tablet-center { text-align: center; }
    .tablet-left { text-align: left; }
    .tablet-right { text-align: right; }
}
@media only screen and (max-width: 576px) {
    .ct-container {
        padding-left: 20px;
        padding-right: 20px;
    }
}
@media only screen and (max-width: 414px) {
    .mobile-center { text-align: center; }
    .mobile-left { text-align: left; }
    .mobile-right { text-align: right; }
}
@media (prefers-reduced-motion: reduce) {
    .cf-seam::before,
    .cf-seam-dots span {
        animation: none !important;
    }
    .intro-geofence,
    .intro-geofence .ring-inner,
    .intro-node-cluster,
    .intro-node-cluster circle {
        animation: none !important;
    }
    .globe-glow,
    .orbit-ring,
    .satellite {
        animation: none !important;
    }
    .cf-social a,
    .cf-to-top,
    .cf-float-card .cf-btn {
        transition: none !important;
    }
}

/* ========================================================================
   GLOBAL BUTTON COLOR OVERRIDE
   ======================================================================== */
.btn-wrapper .boxed-btn,
.btn-wrapper .boxed-btn.btn-sanatory,
.btn-wrapper .boxed-btn.btn-sanatory.style-01,
.btn-wrapper .boxed-btn.btn-sanatory.style-01.reverse,
.btn-wrapper .boxed-btn.btn-sanatory.style-02,
.btn-wrapper .boxed-btn.btn-sanatory.style-03,
.btn-wrapper .boxed-btn.reverse-color,
.cf-float-card .cf-btn,
.close-btn {
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two)) !important;
    border: 0 !important;
    color: #fff !important;
    box-shadow: 0 1px 2px 0 rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15) !important;
    transition: transform 0.3s ease, box-shadow 0.3s ease, background 0.3s ease !important;
}
.btn-wrapper .boxed-btn:hover,
.btn-wrapper .boxed-btn.btn-sanatory:hover,
.btn-wrapper .boxed-btn.btn-sanatory.style-01:hover,
.btn-wrapper .boxed-btn.btn-sanatory.style-01.reverse:hover,
.btn-wrapper .boxed-btn.btn-sanatory.style-02:hover,
.btn-wrapper .boxed-btn.btn-sanatory.style-03:hover,
.btn-wrapper .boxed-btn.reverse-color:hover,
.cf-float-card .cf-btn:hover,
.close-btn:hover {
    background: linear-gradient(90deg, var(--main-color-one, #af0b07), var(--main-color-two, #2967cb)) !important;
    border: 0 !important;
    color: #fff !important;
    box-shadow: 0 1px 10px rgba(175, 11, 7, 0.2) !important;
    transform: translateY(-2px) !important;
}
@media (prefers-reduced-motion: reduce) {
    .btn-wrapper .boxed-btn:hover,
    .cf-float-card .cf-btn:hover,
    .close-btn:hover {
        transform: none !important;
    }
}

/* ========================================================================
   15. PRELOADER
   ======================================================================== */
.preloader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 9999;
    background: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
}
.preloader-inner {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.preloader-inner .loader {
    width: 50px;
    height: 50px;
}
.preloader-inner .loader svg g g path:first-child {
    animation: loader_one 0.8s ease-in infinite;
}
.preloader-inner .loader svg g g path:nth-child(2) {
    animation: loader_two 0.8s ease-in infinite;
}
.preloader-inner .loader svg g g path:last-child {
    animation: loader_three 0.8s ease-in infinite;
}
@keyframes loader_one {
    0% { opacity: 0; }
    25% { opacity: 1; }
    50% { opacity: 1; }
    75% { opacity: 1; }
    100% { opacity: 1; }
}
@keyframes loader_two {
    0% { opacity: 0; }
    25% { opacity: 0; }
    50% { opacity: 1; }
    75% { opacity: 1; }
    100% { opacity: 1; }
}
@keyframes loader_three {
    0% { opacity: 0; }
    25% { opacity: 0; }
    50% { opacity: 0; }
    75% { opacity: 1; }
    100% { opacity: 1; }
}

/* ========================================================================
   PAGE‑SPECIFIC COMPONENTS — GIS HERO, NEWS, CAREERS, CONTACT, ETC.
   ======================================================================== */

/* ========================================================================
   GIS HERO SECTION (HomePage)
   ======================================================================== */
.gis-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: 90px 0 110px;
    background: linear-gradient(to top, #e9f1ff 0%, #f2f7ff 28%, #fbfdff 60%, #ffffff 100%);
}
.gis-hero__row {
    position: relative;
    z-index: 1;
}
.gis-hero__content-wrap {
    position: relative;
    max-width: 560px;
}
.gis-hero__content {
    position: relative;
    z-index: 3;
    padding: 6px 4px;
}
/* ---- status badge ("Geographic Intelligence Network") ---- */
:root {
    --gis-dot-ring: rgba(10, 123, 14, 0.55);
}
.gis-hero__status {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 10px 22px 10px 14px;
    margin-bottom: 28px;
    border-radius: 999px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.88), rgba(255, 255, 255, 0.58));
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border: 1px solid rgba(4, 7, 46, 0.08);
    box-shadow: 0 14px 30px -14px rgba(4, 7, 46, 0.22), inset 0 1px 0 rgba(255, 255, 255, 0.7);
    font-family: var(--body-font);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.gis-hero__status:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 36px -14px rgba(4, 7, 46, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.7);
}
.gis-hero__status-pulse {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 8px;
    height: 8px;
    flex: none;
}
.gis-hero__status-dot {
    width: 8px;
    height: 8px;
    flex: none;
    border-radius: 50%;
    background: var(--green-color);
    animation: gisDotPing 1.8s ease-out infinite;
}
@keyframes gisDotPing {
    0% { box-shadow: 0 0 0 0 var(--gis-dot-ring); }
    70% { box-shadow: 0 0 0 8px transparent; }
    100% { box-shadow: 0 0 0 0 transparent; }
}
.gis-hero__status-divider {
    width: 22px;
    height: 2px;
    flex: none;
    border-radius: 2px;
    background: linear-gradient(90deg, var(--main-color-one), var(--main-color-two));
}
.gis-hero__status-text {
    background: linear-gradient(90deg, var(--heading-color) 0%, var(--main-color-two) 140%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: var(--heading-color);
    white-space: nowrap;
}
@media (max-width: 400px) {
    .gis-hero__status-text { white-space: normal; }
}
.gis-hero__title {
    font-family: var(--heading-font);
    font-weight: 700;
    font-size: clamp(30px, 4.8vw, 56px);
    line-height: 1.08;
    color: var(--heading-color);
    margin: 0 0 22px;
}
.gis-hero__desc {
    font-family: var(--body-font);
    font-size: 16.5px;
    line-height: 29px;
    color: var(--paragraph-color);
    margin-bottom: 36px;
}
.gis-hero__desc strong {
    color: var(--heading-color);
    font-weight: 700;
}
.gis-hero__cta {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}
.gis-btn {
    outline: none !important;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 15px 28px;
    border-radius: 50px;
    font-family: var(--body-font);
    font-size: 14.5px;
    font-weight: 700;
    text-decoration: none;
    border: none;
    cursor: pointer;
    color: var(--white-color) !important;
    transition: transform 0.3s ease, box-shadow 0.3s ease, background 0.3s ease, color 0.3s ease;
    white-space: nowrap;
}
.gis-btn svg { flex: none; }
.gis-btn--primary {
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    color: #fff;
}
.gis-btn--primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06), 0 .125rem .4rem -.0625rem rgb(11 15 25 / .03);
    color: #fff;
}
.gis-btn--outline {
    background: #FFFFFF;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    color: var(--main-color-two) !important;
    border: 1.5px solid rgba(4, 7, 46, 0.12);
}
.gis-btn--outline:hover {
    border-color: var(--main-color-two);
    color: var(--main-color-two);
    transform: translateY(-3px);
}
.gis-hero__panel {
    position: relative;
    max-width: 560px;
    margin: 0 auto;
    padding: 18px 18px 0;
    border-radius: 26px;
    overflow: hidden;
}
.gis-hero__panel-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 4px 8px 16px;
    font-family: var(--body-font);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--secondary-color);
}
.gis-hero__panel-top-left {
    display: inline-flex;
    align-items: center;
    gap: 9px;
}
.gis-hero__panel-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex: none;
}
.gis-hero__panel-live {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 12px;
    border-radius: 20px;
    background: rgba(10, 123, 14, 0.1);
    color: #0a7b0e;
    font-size: 10.5px;
}
.gis-hero__panel-live-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #0a7b0e;
    animation: gisDotPing 1.8s ease-out infinite;
}
.gis-hero__panel-globe {
    position: relative;
    border-radius: 18px 18px 0 0;
    overflow: hidden;
}
.gis-hero__panel-globe #animated_golbe_div {
    position: relative;
    z-index: 2;
    width: 100%;
    aspect-ratio: 1 / 1;
    max-height: 440px;
    margin-top: 0;
}
.gis-hero__orbit {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}
.gis-hero__orbit-ring {
    position: absolute;
    border-radius: 50%;
    border: 1px dashed rgba(23, 61, 122, 0.18);
}
.gis-hero__orbit-ring--1 {
    width: 78%;
    aspect-ratio: 1 / 1;
    animation: gisOrbitSpin 40s linear infinite;
}
.gis-hero__orbit-ring--2 {
    width: 94%;
    aspect-ratio: 1 / 1;
    border-color: rgba(175, 11, 7, 0.14);
    animation: gisOrbitSpin 60s linear infinite reverse;
}
@keyframes gisOrbitSpin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}
.gis-hero__orbit-sat {
    position: absolute;
    top: 3%;
    left: 50%;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--main-color-one);
    box-shadow: 0 0 0 4px rgba(175, 11, 7, 0.15);
    animation: gisOrbitOrbit 40s linear infinite;
}
@keyframes gisOrbitOrbit {
    from { transform: translateX(-50%) rotate(0deg) translateY(-39%) rotate(0deg); }
    to { transform: translateX(-50%) rotate(360deg) translateY(-39%) rotate(-360deg); }
}
.gis-hero__pin {
    position: absolute;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 9px 16px 9px 10px;
    border-radius: 30px;
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid rgba(4, 7, 46, 0.07);
    box-shadow: 0 14px 30px -10px rgba(4, 7, 46, 0.22);
    font-family: var(--body-font);
    font-size: 12px;
    color: var(--heading-color);
    white-space: nowrap;
}
.gis-hero__pin strong {
    color: var(--main-color-one);
    font-weight: 700;
    margin-right: 4px;
}
.gis-hero__pin-dot {
    width: 8px;
    height: 8px;
    flex: none;
    border-radius: 50%;
    background: var(--main-color-one);
    animation: gisDotPing 2.2s ease-out infinite;
}
.gis-hero__pin--hq {
    top: 14%;
    left: 6%;
}
.gis-hero__pin--rd {
    bottom: 12%;
    right: 6%;
}
.gis-hero__pin--rd .gis-hero__pin-dot {
    background: var(--main-color-two);
    animation-delay: 0.8s;
}
.gis-hero__pin--rd strong {
    color: var(--main-color-two);
}
.gis-flowmap {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    pointer-events: none;
}
.gis-flowmap__inner {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0.35;
}
.gis-flowmap__inner svg {
    display: block;
    width: 100%;
    height: 100%;
}
.gis-flowmap__inner__dark { display: none; }

@media (max-width: 1199px) {
    .gis-hero__panel-globe #animated_golbe_div { max-height: 400px; }
}
@media (max-width: 991px) {
    .gis-hero { padding: 70px 0 90px; }
    .gis-hero__content-wrap { max-width: 100%; }
    .gis-hero__panel { max-width: 480px; margin-top: 54px; }
    .gis-hero__panel-globe #animated_golbe_div { max-height: 380px; }
}
@media (max-width: 767px) {
    .gis-hero { padding: 60px 0 80px; }
    .gis-hero__status { font-size: 11.5px; padding: 8px 16px 8px 14px; }
    .gis-btn { padding: 13px 22px; font-size: 13.5px; }
    .gis-hero__panel-globe #animated_golbe_div { max-height: 320px; }
    .gis-hero__pin {
        position: static;
        display: flex;
        margin: 10px 8px 0;
    }
    .gis-hero__panel-globe { display: flex; flex-direction: column; }
    .gis-flowmap__inner { opacity: 0.22; }
}
@media (max-width: 576px) {
    .gis-hero__cta { gap: 12px; }
    .gis-hero__panel { padding: 14px 14px 0; border-radius: 20px; }
    .gis-hero__panel-globe #animated_golbe_div { max-height: 320px; }
}
@media (max-width: 400px) {
    .gis-hero__title { font-size: 30px; }
    .gis-hero__desc { font-size: 15px; line-height: 26px; }
    .gis-hero__cta { flex-direction: column; align-items: stretch; }
    .gis-btn { justify-content: center; }
    .gis-hero__orbit-ring--2 { display: none; }
}
@media (max-height: 480px) and (orientation: landscape) {
    .gis-hero { padding: 40px 0; }
    .gis-hero__panel-globe #animated_golbe_div { max-height: 260px; }
}
@media (prefers-reduced-motion: reduce) {
    .gis-hero__status-dot,
    .gis-hero__panel-live-dot,
    .gis-hero__pin-dot,
    .gis-hero__orbit-ring,
    .gis-hero__orbit-sat {
        animation: none !important;
    }
    .gis-btn { transition: none !important; }
}

/* ========================================================================
   INDUSTRIES SECTION (OurStory)
   ======================================================================== */
.industries-section {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: 90px 0 100px;
}
.industries-section__bg {
    position: absolute;
    inset: 0;
    z-index: -2;
    pointer-events: none;
    background-image: radial-gradient(rgba(23, 61, 122, 0.09) 1px, transparent 1.5px),
    radial-gradient(rgba(175, 11, 7, 0.06) 1px, transparent 1.5px);
    background-size: 34px 34px, 34px 34px;
    background-position: 0 0, 17px 17px;
    animation: indGridDrift 30s linear infinite;
}
@keyframes indGridDrift {
    0% { background-position: 0 0, 17px 17px; }
    100% { background-position: 34px 34px, 51px 51px; }
}
.industries-section__glow {
    position: absolute;
    z-index: -1;
    border-radius: 50%;
    pointer-events: none;
    filter: blur(6px);
    opacity: 0.5;
}
.industries-section__glow--one {
    width: 420px;
    height: 420px;
    top: -160px;
    right: -120px;
}
.industries-section__glow--two {
    width: 360px;
    height: 360px;
    bottom: -140px;
    left: -100px;
    animation-delay: 1.5s;
}
@keyframes indGlowPulse {
    0%, 100% { transform: scale(1); opacity: 0.45; }
    50% { transform: scale(1.12); opacity: 0.7; }
}
.industries-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 28px;
    margin-top: 40px;
}
.industry-card {
    position: relative;
    overflow: hidden;
    background: #fff;
    border-radius: 16px;
    padding: 42px 26px 32px;
    text-align: center;
    border: 1px solid rgba(4, 7, 46, 0.06);
    box-shadow: 0 1px 2px 0 rgba(60, 64, 67, 0.06), 0 1px 3px 1px rgba(60, 64, 67, 0.08);
    transition: transform 0.4s ease, box-shadow 0.4s ease, border-color 0.4s ease;
}
.industry-card:hover {
    transform: translateY(-8px);
    border-color: transparent;
    box-shadow: 0 20px 40px -10px rgba(23, 61, 122, 0.25), 0 8px 20px -6px rgba(175, 11, 7, 0.15);
}
.industry-card__num {
    position: absolute;
    top: 6px;
    right: 16px;
    font-family: var(--heading-font);
    font-size: 52px;
    font-weight: 700;
    line-height: 1;
    color: var(--heading-color);
    opacity: 0.055;
    transition: opacity 0.4s ease, transform 0.4s ease;
}
.industry-card:hover .industry-card__num {
    opacity: 0.1;
    transform: scale(1.08);
}
.industry-card__icon {
    position: relative;
    width: 150px;
    height: 150px;
    margin: 0 auto 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: linear-gradient(215deg, #feedf0 0%, #eef4ff 100%);
    transition: transform 0.5s ease;
}
.industry-card__icon::after {
    content: "";
    position: absolute;
    inset: -8px;
    border-radius: 50%;
    border: 1.5px dashed rgba(23, 61, 122, 0.35);
    animation: indRingSpin 12s linear infinite;
}
.industry-card:hover .industry-card__icon {
    transform: scale(1.08) rotate(-6deg);
}
.industry-card:hover .industry-card__icon::after {
    border-color: var(--main-color-one);
}
.industry-card__icon img {
    width: 120px;
    height: 120px;
    object-fit: contain;
    transition: transform 0.5s ease;
}
.industry-card__icon em,
.industry-card__icon i {
    position: relative;
    z-index: 1;
    font-size: 46px;
    line-height: 1;
    color: var(--heading-color);
    transition: transform 0.5s ease, color 0.35s ease;
}
.industry-card:hover .industry-card__icon em,
.industry-card:hover .industry-card__icon i {
    color: var(--main-color-one);
    transform: scale(1.08);
}
@media (max-width: 767px) {
    .industry-card__icon em,
    .industry-card__icon i {
        font-size: 24px;
    }
}
@media (prefers-reduced-motion: reduce) {
    .industry-card__icon em,
    .industry-card__icon i,
    .industry-card:hover .industry-card__icon em,
    .industry-card:hover .industry-card__icon i {
        transition: none !important;
        transform: none !important;
    }
}

@keyframes indRingSpin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}
.industry-card__title {
    font-size: 17px;
    line-height: 26px;
    font-family: var(--body-font);
    font-weight: 700;
    color: var(--heading-color);
    margin: 0;
    padding-bottom: 14px;
    position: relative;
    transition: color 0.35s ease;
}
.industry-card__title::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    width: 0;
    height: 3px;
    border-radius: 2px;
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    transform: translateX(-50%);
    transition: width 0.4s ease;
}
.industry-card:hover .industry-card__title {
    color: var(--main-color-one);
}
.industry-card:hover .industry-card__title::after {
    width: 46px;
}
@media (max-width: 767px) {
    .industries-section { padding: 80px 0 70px; }
    .industries-grid { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 18px; }
    .industry-card { padding: 34px 16px 24px; border-radius: 12px; }
    .industry-card__icon { width: 66px; height: 66px; margin-bottom: 16px; }
    .industry-card__icon img { width: 32px; height: 32px; }
    .industry-card__num { font-size: 38px; }
    .industry-card__title { font-size: 15px; line-height: 22px; }
}
@media (max-width: 380px) {
    .industries-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
    .industries-section__bg,
    .industries-section__glow,
    .industry-card__icon::after {
        animation: none !important;
    }
    .industry-card,
    .industry-card__icon,
    .industry-card__title,
    .industry-card__num {
        transition: none !important;
    }
}

/* ========================================================================
   WE BELIEVE IN — ORBIT SECTION (OurStory)
   Replaces the old standalone "Our Global Reach" hero. A centred, fully
   visible globe anchors the section; the six belief cards sit in a
   hexagonal orbit around it on desktop, each linked to the globe by an
   animated "signal-flow" connector line. Collapses to a stacked card
   grid under a smaller static globe on tablet/mobile — see the
   responsive block at the end of this section for the MUST-have
   breakpoint behaviour.
   ======================================================================== */
.believe-orbit-section {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(64px, 9vw, 110px) 0 clamp(56px, 8vw, 100px);
    background: linear-gradient(180deg, #060a2e 0%, #0b1642 55%, #0e1f52 100%);
    margin-bottom: clamp(48px, 6vw, 110px) !important;
}
.believe-orbit-section__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    opacity: 0.08;
    z-index: 0;
}
.believe-orbit-section__tint {
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 50% 0%, rgba(41, 103, 203, 0.18), transparent 60%);
    z-index: 0;
}
.believe-orbit-section__grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px);
    background-size: 42px 42px;
    z-index: 0;
    mask-image: radial-gradient(ellipse at center, black 0%, transparent 75%);
}
.believe-orbit-section__glow {
    position: absolute;
    z-index: 0;
    border-radius: 50%;
    filter: blur(10px);
    pointer-events: none;
    animation: reachGlowPulse 8s ease-in-out infinite;
}
.believe-orbit-section__glow--one {
    width: 480px;
    height: 480px;
    top: -180px;
    right: -140px;
    background: radial-gradient(circle, rgba(41, 103, 203, 0.35), transparent 70%);
}
.believe-orbit-section__glow--two {
    width: 420px;
    height: 420px;
    top: 40px;
    left: -160px;
    background: radial-gradient(circle, rgba(175, 11, 7, 0.28), transparent 70%);
    animation-delay: 2s;
}
@keyframes reachGlowPulse {
    0%, 100% { transform: scale(1); opacity: 0.55; }
    50% { transform: scale(1.1); opacity: 0.85; }
}
.text-white-70 {
    color: rgba(255, 255, 255, 0.72);
}
.ct-color_variate {
    color: var(--main-color-one);
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
.ct-color_variate_03 {
    background: linear-gradient(90deg, #dddddd, #7ba9ff, #2967CBFF, #2967CBFF);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}
.ct-color_variate_04 {
    background: linear-gradient(90deg, #dddddd, #90B5FAFF, #90B5FAFF, #90B5FAFF);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}
.text-white { color: #fff; }

.believe-orbit-section__content {
    position: relative;
    z-index: 3;
}

/* The base .gis-hero__panel rule (shared with the Home hero) centres
   itself with margin:0 auto. In this section the globe sits below the
   title and needs to hug the left edge instead — per request ("globe
   below the topic, left side on desktop") — so it lines up with the
   card grid's left edge below it and with how every other section on
   this page aligns its content to the container gutter. */
.believe-orbit-section .gis-hero__panel {
    margin: clamp(28px, 4vw, 40px) 0 0;
    max-width: 460px;
}

/* The base .gis-hero__content-wrap rule caps at 560px — a leftover from
   when this column sat beside the globe at half width. Now the card
   grid runs in its own full-width row, so it gets its own width: wide
   enough for two comfortably-sized cards, flush to the same left edge
   as the title/globe above (no auto-centering) so everything in the
   section shares one consistent left alignment. */
.believe-orbit-section .gis-hero__content-wrap {
    max-width: 760px;
    margin: clamp(36px, 5vw, 56px) 0 0;
}

/* Small supporting strip (was its own hero in the old Global Reach section) */
.believe-orbit-meta {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    margin-top: 30px;
}
.believe-orbit-meta__badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    font-size: 13px;
    font-weight: 600;
    color: #fff;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 30px;
}
.believe-orbit-meta__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #38e29b;
    animation: reachDotPing 1.8s ease-out infinite;
}
@keyframes reachDotPing {
    0% { box-shadow: 0 0 0 0 rgba(56, 226, 155, 0.55); }
    70% { box-shadow: 0 0 0 9px rgba(56, 226, 155, 0); }
    100% { box-shadow: 0 0 0 0 rgba(56, 226, 155, 0); }
}
.believe-orbit-meta__legend {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px 22px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.believe-orbit-meta__legend li {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.78);
    white-space: nowrap;
}
.believe-orbit-meta__legend-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--main-color-two), var(--main-color-one));
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.08);
}

/* ---- Belief-card grid: six cards, 2 columns x 3 rows on desktop, on
   the right-hand side of the section next to the globe panel. Below
   992px the intro column and this column both stack full-width (see
   the col-12 markup change), and the grid itself switches to a
   centered 3-column x 2-row layout — dropping to 2 columns x 3 rows
   again below 480px, where 3 equal columns leave each card too narrow
   to read comfortably. See the media queries below. No circular orbit
   / polar-coordinate positioning — a plain, responsive CSS grid that
   reflows cleanly at every breakpoint. ---- */
.believe-orbit__items {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 1fr;
    gap: 22px;
    z-index: 1;
}
.believe-orbit__item {
    display: flex;
}

.believe-card {
    position: relative;
    width: 100%;
    padding: 28px 26px 24px;
    border-radius: 16px;
    background: rgba(10, 18, 54, 0.6);
    border: 1px solid rgba(255, 255, 255, 0.12);
    backdrop-filter: blur(10px);
    overflow: hidden;
    transition: transform 0.4s ease, border-color 0.4s ease, background 0.4s ease, box-shadow 0.4s ease;
}
.believe-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 3px;
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.5s ease;
}
.believe-card:hover {
    transform: translateY(-6px);
    border-color: rgba(255, 255, 255, 0.28);
    background: rgba(10, 18, 54, 0.78);
    box-shadow: 0 18px 44px -16px rgba(0, 0, 0, 0.55);
}
.believe-card:hover::before { transform: scaleX(1); }
.believe-card__num {
    position: absolute;
    top: 10px;
    right: 16px;
    font-family: var(--heading-font);
    font-size: 34px;
    font-weight: 700;
    line-height: 1;
    color: #fff;
    opacity: 0.08;
}
.believe-card__icon {
    width: 46px;
    height: 46px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    margin-bottom: 14px;
    font-size: 18px;
    color: #fff;
    background: linear-gradient(135deg, var(--main-color-two), var(--main-color-one));
}
.believe-card__title {
    font-family: var(--heading-font);
    font-size: 17px;
    font-weight: 700;
    color: #fff;
    margin: 0 0 8px;
}
.believe-card__desc {
    font-size: 13px;
    line-height: 20px;
    color: rgba(255, 255, 255, 0.68);
    margin: 0;
}

/* ---- Responsive (<992px): intro column (title/subtitle/globe) and
   card column both stack full-width (see the col-12 markup change on
   the section), so this is also where they get centered instead of
   staying left-aligned in a now-full-width column, and where the card
   grid switches from 2x3 to a centered 3-column x 2-row layout. ---- */
@media (max-width: 991px) {
    /* The eyebrow/subtitle row is inline-flex, so its position is
       governed by the parent's text-align, not its own justify-content.
       A global ".text-left" utility (loaded elsewhere in the project,
       with !important) was still winning over a plain text-align rule
       here — matching its specificity+importance directly is what
       actually centers the eyebrow line, not just its inner content. */
    .believe-orbit-section .section-title.text-left {
        text-align: center !important;
    }
    .believe-orbit-section .section-title.text-left .subtitle,
    .believe-orbit-section .section-title.text-left .proactive-content__eyebrow,
    .believe-orbit-section .section-title.text-left .proactive-content__eyebrow-dark {
        justify-content: center;
    }
    .believe-orbit-section .section-title.text-left .title,
    .believe-orbit-section .section-title.text-left .description {
        text-align: center;
        margin-left: auto;
        margin-right: auto;
    }
    .believe-orbit-section .gis-hero__panel {
        margin-left: auto;
        margin-right: auto;
        float: none;
    }
    .believe-orbit-section .gis-hero__content-wrap {
        margin-left: auto;
        margin-right: auto;
    }
    .believe-orbit__items {
        grid-template-columns: repeat(3, 1fr);
        gap: 14px;
    }
}

/* The globe panel doesn't have room to sit cleanly next to/above the
   title at tablet width — col-md-4 used to squeeze intro + globe into
   ~33% of the viewport, overlapping the title and the card grid (see
   the 768px screenshot). It stays visible & centered below 768px
   (smaller phone sizing already handles it — see the
   .gis-hero__panel-globe media queries above) and resumes at desktop
   (992px+); only this tablet band skips it. */
@media (min-width: 768px) and (max-width: 991px) {
    .believe-orbit-section .gis-hero__panel {
        display: none;
    }
}

@media (max-width: 767px) {
    .believe-orbit__items { gap: 12px; }
    .believe-card { padding: 18px 14px 16px; }
    .believe-card__icon { width: 40px; height: 40px; font-size: 16px; margin-bottom: 12px; }
    .believe-card__title { font-size: 14px; }
    .believe-card__desc { font-size: 11.5px; line-height: 17px; }
}
@media (max-width: 576px) {
    .believe-orbit-meta { margin-top: 24px; }
    .believe-orbit-meta__legend { gap: 8px 16px; }
    .believe-orbit-meta__legend li { font-size: 12px; }
    .believe-orbit__items { gap: 10px; }
    .believe-card { padding: 16px 12px 14px; }
    .believe-card__icon { width: 38px; height: 38px; font-size: 15px; margin-bottom: 10px; }
    .believe-card__title { font-size: 12.5px; margin-bottom: 6px; }
    .believe-card__desc { font-size: 10.5px; line-height: 15px; }
    .believe-card__num { font-size: 22px; top: 6px; right: 10px; }
}
/* Three equal columns leave too little width per card on the smallest
   phones — the middle card in particular ends up too cramped to read
   (title/description wrapping into an unreadably narrow strip). Drop
   to 2 columns x 3 rows here instead, with the roomier sizing that
   frees up. */
@media (max-width: 479px) {
    .believe-orbit__items { grid-template-columns: repeat(2, 1fr); gap: 12px; }
    .believe-card { padding: 18px 14px 16px; }
    .believe-card__icon { width: 42px; height: 42px; font-size: 16px; margin-bottom: 10px; }
    .believe-card__title { font-size: 13.5px; margin-bottom: 6px; }
    .believe-card__desc { font-size: 11.5px; line-height: 16px; }
    .believe-card__num { font-size: 24px; }
}
@media (prefers-reduced-motion: reduce) {
    .believe-orbit-section__glow,
    .believe-orbit-meta__dot { animation: none !important; }
    .believe-card { transition: none !important; }
}

/* ========================================================================
   VISION & MISSION SECTION (OurStory)
   Standalone, editorial two-card layout with a glowing centre divider.
   Light surface so it reads as a deliberate pause between the dark orbit
   section above and the dark CTA band further down the page.
   ======================================================================== */
.vm-section {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: 60px 0;
}
.vm-section__shape {
    position: absolute;
    z-index: 0;
    border-radius: 50%;
    pointer-events: none;
    opacity: 0.5;
}
.vm-section__shape--one {
    width: 420px;
    height: 420px;
    top: -180px;
    left: -160px;
    background: radial-gradient(circle, rgba(215, 38, 61, 0.08), transparent 70%);
}
.vm-section__shape--two {
    width: 460px;
    height: 460px;
    bottom: -220px;
    right: -180px;
    background: radial-gradient(circle, rgba(3, 69, 178, 0.08), transparent 70%);
}

.vm-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: stretch;
    gap: 0 36px;
    margin-top: 52px;
}

.vm-card {
    position: relative;
    padding: 44px 40px 38px;
    border-radius: 20px;
    background: #fff;
    border: 1px solid rgba(4, 7, 46, 0.07);
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06), 0 .125rem .4rem -.0625rem rgb(11 15 25 / .02);
    overflow: hidden;
    transition: transform 0.4s ease, box-shadow 0.4s ease, border-color 0.4s ease;
}
.vm-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 4px;
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.5s ease;
}
.vm-card:hover {
    transform: translateY(-8px);
    border-color: transparent;
    box-shadow: 0 .9rem 2.2rem -.6rem rgb(11 15 25 / .16), 0 .25rem .6rem -.0625rem rgb(11 15 25 / .06);
}
.vm-card:hover::before { transform: scaleX(1); }
.vm-card__index {
    position: absolute;
    top: 14px;
    right: 26px;
    font-family: var(--heading-font);
    font-size: 60px;
    font-weight: 700;
    line-height: 1;
    color: var(--heading-color);
    opacity: 0.05;
}
.vm-card__icon {
    width: 66px;
    height: 66px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    margin-bottom: 22px;
    font-size: 24px;
    color: #fff;
    background: linear-gradient(135deg, var(--main-color-two), var(--main-color-one));
}
.vm-card__label {
    font-family: var(--heading-font);
    font-weight: 700;
    font-size: 26px;
    color: var(--heading-color);
    margin: 0 0 16px;
}
.vm-card__text {
    font-family: var(--body-font);
    font-size: 15px;
    line-height: 1.8;
    color: var(--paragraph-color);
    margin: 0 0 22px;
}
.vm-card__tag {
    display: inline-flex;
    align-items: center;
    padding: 6px 14px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--main-color-two);
    background: linear-gradient(215deg, #feedf0 0%, #eef4ff 100%);
    border-radius: 30px;
}

/* Centre divider: a vertical glowing line with an arrow chip, becomes a
   horizontal line with a downward arrow once cards stack on mobile */
.vm-divider {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
}
.vm-divider__line {
    flex: 1;
    width: 1px;
    background: linear-gradient(180deg, transparent, rgba(4, 7, 46, 0.14) 50%, transparent);
}
.vm-divider__mark {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #fff;
    font-size: 15px;
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    box-shadow: 0 8px 20px -6px rgba(215, 38, 61, 0.45);
}

@media (max-width: 991px) {
    .vm-grid {
        grid-template-columns: 1fr;
        gap: 28px 0;
    }
    .vm-divider {
        flex-direction: row;
        margin: 0 auto;
        height: auto;
        width: 100%;
        max-width: 320px;
    }
    .vm-divider__line { height: 1px; width: auto; background: linear-gradient(90deg, transparent, rgba(4, 7, 46, 0.14) 50%, transparent); }
    .vm-divider__mark { transform: rotate(90deg); }
}
@media (max-width: 576px) {
    .vm-section { padding: 70px 0; }
    .vm-card { padding: 34px 26px 30px; }
    .vm-card__index { font-size: 46px; }
    .vm-card__label { font-size: 22px; }
}
@media (prefers-reduced-motion: reduce) {
    .vm-card { transition: none !important; }
}

/* ========================================================================
   BE PROACTIVE SECTION (used across pages)
   ======================================================================== */
.proactive-section {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: 70px 0 30px;
}
.proactive-section__shape-grid {
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background-image: linear-gradient(rgba(23, 61, 122, 0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(23, 61, 122, 0.05) 1px, transparent 1px);
    background-size: 60px 60px;
    -webkit-mask-image: radial-gradient(ellipse 60% 60% at 20% 40%, rgba(0, 0, 0, 0.8), transparent 75%);
    mask-image: radial-gradient(ellipse 60% 60% at 20% 40%, rgba(0, 0, 0, 0.8), transparent 75%);
    animation: proactiveGridDrift 28s linear infinite;
}
@keyframes proactiveGridDrift {
    0% { background-position: 0 0; }
    100% { background-position: 60px 60px; }
}
.proactive-content__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--body-font);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--main-color-one);
    margin-bottom: 16px;
}
.proactive-content__eyebrow-line {
    width: 30px;
    height: 2px;
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    display: inline-block;
}
.proactive-content__eyebrow-dark {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--body-font);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #dddddd;
    margin-bottom: 16px;
}
.proactive-content__eyebrow-line-dark {
    width: 30px;
    height: 2px;
    background: linear-gradient(90deg, #dddddd, #7ba9ff, #2967CBFF, #2967CBFF);
    display: inline-block;
}
.proactive-content__title {
    font-family: var(--heading-font);
    font-weight: 700;
    font-size: clamp(34px, 4vw, 48px);
    line-height: 1.15;
    color: var(--heading-color);
    margin-bottom: 22px;
}
.proactive-tags {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 24px;
}
.proactive-tags__item {
    font-family: var(--body-font);
    font-size: 15px;
    font-weight: 600;
    color: var(--main-color-two);
    padding: 7px 16px;
    border-radius: 30px;
    background: var(--secondary-color);
    border: 1px dotted rgba(23, 61, 122, 0.1);
    transition: background 0.3s ease, color 0.3s ease, transform 0.3s ease;
}
.proactive-tags__item:hover {
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    color: #FFFFFF;
    border: 1px dotted rgba(23, 61, 122, 0.1);
    transform: translateY(-2px);
}
.proactive-tags__dot {
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--main-color-one);
    opacity: 0.5;
}
.proactive-content__desc {
    font-family: var(--body-font);
    font-size: 16px;
    line-height: 30px;
    color: var(--paragraph-color);
    margin-bottom: 28px;
    text-align: justify-all;
}
@media (min-width: 1024px) and (max-width: 1279px) {
    .proactive-content__desc {
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 10;
        overflow: hidden;
        font-size: 15px;
        line-height: 24px;
        max-width: 100%;
    }
}
.proactive-content__divider {
    width: 100%;
    max-width: 520px;
    height: 1px;
    background: linear-gradient(90deg, rgba(4, 7, 46, 0.14), transparent);
    margin-bottom: 28px;
}
.proactive-section .btn-wrapper .boxed-btn.btn-sanatory.style-02 {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}
.proactive-section .btn-wrapper .boxed-btn.btn-sanatory.style-02 em {
    transition: transform 0.3s ease;
}
.proactive-section .btn-wrapper .boxed-btn.btn-sanatory.style-02:hover em {
    transform: translateX(4px);
}
.proactive-media {
    position: relative;
    max-width: 520px;
    margin: 0 auto 40px;
}
.proactive-media__frame {
    position: relative;
    z-index: 2;
    border-radius: 20px;
    overflow: hidden;
}
.proactive-media__frame img {
    display: block;
    width: 100%;
    height: auto;
    transition: transform 0.6s ease;
}
.proactive-media:hover .proactive-media__frame img {
    transform: scale(1.05);
}
.proactive-media__ring {
    position: absolute;
    border-radius: 50%;
    border: 1.5px dashed rgba(23, 61, 122, 0.25);
    z-index: 1;
}
.proactive-media__ring--01 {
    width: 110%;
    height: 110%;
    top: -5%;
    left: -5%;
    animation: proactiveRingSpin 26s linear infinite;
}
.proactive-media__ring--02 {
    width: 92%;
    height: 92%;
    top: 4%;
    left: 4%;
    border-color: rgba(175, 11, 7, 0.18);
    animation: proactiveRingSpin 20s linear infinite reverse;
}
@keyframes proactiveRingSpin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}
.proactive-media__badge {
    position: absolute;
    z-index: 3;
    bottom: -18px;
    left: 50%;
    transform: translateX(-50%);
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 12px 22px;
    background: #fff;
    border-radius: 40px;
    box-shadow: 0 1px 10px rgba(4, 7, 46, 0.18);
    font-size: 14px;
    font-weight: 600;
    color: var(--heading-color);
    white-space: nowrap;
}
.proactive-media__badge em {
    color: var(--main-color-one);
    font-size: 16px;
}
@media (max-width: 991px) {
    .proactive-section { padding: 50px 0; }
    .proactive-section__marginTop{
        padding: 60px 0 0 0 ;
    }
    .proactive-media { margin: 60px auto 50px; }
    .proactive-content__desc,
    .proactive-content__divider { max-width: 100%; }
}
@media (max-width: 576px) {
    .proactive-section { padding: 0 0; }
    .proactive-section__marginTop{
        padding: 40px 0 0 0 ;
    }
    .proactive-media__badge { font-size: 12px; padding: 10px 16px; bottom: -14px; }
    .proactive-tags__item { font-size: 13px; padding: 6px 12px; }
}
@media (prefers-reduced-motion: reduce) {
    .proactive-section__shape-grid,
    .proactive-media__ring { animation: none !important; }
    .proactive-media__frame img,
    .proactive-tags__item { transition: none !important; }
}

.hero-image-container {
    position: absolute !important;
    z-index: 1 !important;
    left: 70%;
    top: 0;
    width: 30%;
    height: auto;
    transform: rotate(-90deg);
    background-size: contain !important;
    background-repeat: no-repeat !important;
}

/* ========================================================================
   CAREERS LISTING SECTION (.cj-*)
   ======================================================================== */
.cj-section {
    position: relative;
    padding: 110px 0 120px;
    overflow-x: hidden;
}
.cj-section .section-title .title {
    font-size: 40px;
    line-height: 55px;
    text-transform: none;
    letter-spacing: normal;
    font-weight: 700;
    color: var(--heading-color);
}
.cj-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 26px;
    margin-top: 50px;
}
@media (max-width: 768px) {
    .cj-grid { grid-template-columns: 1fr; }
}
.cj-card {
    /* No max-width — cards stretch (justify-self: stretch) to fill their
       grid column fully, so the left/right edges of the 2-col grid line
       up with the search box / sort button edges in .cj-toolbar above
       it, instead of leaving a gap on wide viewports. */
    justify-self: stretch;
    position: relative;
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid rgba(4, 7, 46, 0.07);
    border-radius: 16px;
    padding: 20px 22px 20px;
    text-decoration: none;
    overflow: hidden;
    transition: transform 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease;
}
.cj-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 4px;
    /* Falls back to the brand gradient if a status class isn't present;
       .is-open / .is-closed below override this to match the badge. */
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.45s ease, background 0.35s ease;
}
.cj-card.is-open::before {
    background: linear-gradient(90deg, var(--green-color), #3fbf4a);
}
.cj-card.is-closed::before {
    background: rgba(4, 7, 46, 0.18);
}
.cj-card:hover {
    transform: translateY(-6px);
    border-color: transparent;
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06),0 .125rem .4rem -.0625rem rgb(11 15 25 / .03)!important;
}
.cj-card:hover::before {
    transform: scaleX(1);
}
.cj-card.is-hidden {
    display: none;
}
@media (max-width: 1199px) {
    .cj-grid { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
}
@media (max-width: 991px) {
    .cj-section { padding: 90px 0 100px; }
    .cj-grid { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; }
    .cj-card { padding: 26px 24px 22px; }
}
@media (max-width: 767px) {
    .cj-grid { grid-template-columns: 1fr; gap: 18px; margin-top: 36px; }
    .cj-card { max-width: 100%; }
    .cj-card__title { font-size: 19px; line-height: 26px; }
}
@media (max-width: 480px) {
    .cj-card { padding: 22px 20px 20px; }
    .cj-card__meta { gap: 8px 16px; }
    .cj-card__meta span { font-size: 13px; }
}
.cj-card__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
}
.cj-card__icon {
    width: 54px;
    height: 54px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: linear-gradient(215deg, #2967CBFF 0%, #2967CBFF 100%);
    font-size: 24px;
    color: white;
    transition: transform 0.4s ease;
}
.cj-card:hover .cj-card__icon {
    transform: scale(1.08) rotate(-6deg);
}
.cj-card__badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--body-font);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 6px 14px;
    border-radius: 30px;
}
.cj-card__badge i {
    font-size: 7px;
}
.cj-card.is-open .cj-card__badge {
    color: #fff;
    background: linear-gradient(90deg, var(--green-color));
}
.cj-card.is-closed .cj-card__badge {
    color: var(--heading-color);
    background: rgba(4, 7, 46, 0.05);
    border: 1px solid rgba(4, 7, 46, 0.1);
}
.cj-card.is-closed .cj-card__badge i {
    color: var(--paragraph-color);
}
@keyframes cjFadeIn { from { opacity:0; transform:translateY(10px) !important; } to { opacity:1; transform:translateY(0) !important;} }
.cj-card.cj-fade-in { animation: cjFadeIn .4s ease both !important; }
.cj-card__title {
    font-family: var(--body-font);
    font-size: 21px;
    line-height: 29px;
    font-weight: 700;
    color: var(--heading-color);
    margin: 0 0 16px;
    transition: color 0.3s ease;
}
.cj-card__title small {
    font-size: 15px;
    font-weight: 500;
    color: var(--paragraph-color);
}
.cj-card:hover .cj-card__title {
    color: var(--main-color-two);
}
.cj-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 22px;
    margin-bottom: 22px;
    padding-bottom: 22px;
    border-bottom: 1px dashed rgba(4, 7, 46, 0.1);
}
.cj-card__meta span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: var(--paragraph-color);
}
.cj-card__meta i {
    color: #cccccc;
    font-size: 13px;
}
.cj-card__cta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: auto;
    font-family: var(--body-font);
    font-size: 15px;
    font-weight: 700;
    color: var(--main-color-two);
}
.cj-card__cta i {
    font-size: 13px;
    transition: transform 0.3s ease;
}
.cj-card:hover .cj-card__cta i {
    transform: translateX(6px);
}
.cj-pagination {
    position: relative;
    z-index: 60;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 60px;
}
.cj-pagination button {
    min-width: 44px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    font-family: var(--heading-font);
    font-size: 15px;
    font-weight: 700;
    color: var(--heading-color);
    background: #fff;
    border: 1px solid rgba(4, 7, 46, 0.1);
    cursor: pointer;
    transition: all 0.3s ease;
}
.cj-pagination button:hover:not(:disabled):not(.is-active) {
    border-color: transparent;
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    color: #fff;
    transform: translateY(-3px);
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06), 0 .125rem .4rem -.0625rem rgb(11 15 25 / .03);
}
.cj-pagination button.is-active {
    border-color: transparent;
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    color: #fff;
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06),0 .125rem .4rem -.0625rem rgb(11 15 25 / .03)!important;
}
.cj-pagination button:disabled {
    opacity: 0.35;
    cursor: not-allowed;
}
@media (max-width: 991px) {
    .cj-section { padding: 90px 0 100px; }
    .cj-grid { gap: 20px; }
    .cj-card { padding: 26px 24px 22px; }
}
@media (max-width: 767px) {
    .cj-grid { grid-template-columns: 1fr; gap: 18px; margin-top: 36px; }
    .cj-card__title { font-size: 19px; line-height: 26px; }
    .cj-pagination { gap: 8px; margin-top: 44px; }
    .cj-pagination button { width: 38px; height: 38px; font-size: 14px; }
}
@media (max-width: 480px) {
    .cj-card { padding: 22px 20px 20px; }
    .cj-card__meta { gap: 8px 16px; }
    .cj-card__meta span { font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) {
    .cj-card, .cj-card__icon, .cj-card::before, .cj-card__cta i, .cj-pagination button {
        transition: none !important;
    }
}
/* ---- Career toolbar: search box + sort dropdown, side by side ----
   No max-width cap — this spans the same width as .cj-grid below it
   (both sit in the same .container.ct-container), so the search box's
   left edge and the sort button's right edge line up with the card
   grid's edges instead of floating narrower/centered above it. */
.cj-toolbar {
    display: flex;
    align-items: stretch;
    gap: 14px;
    margin: 42px auto 0;
}
.cj-toolbar .cj-search-wrap {
    flex: 1 1 auto;
    max-width: none;
    margin: 0;
    min-width: 0;
}

/* ---- Sort dropdown ---- */
.cj-sort {
    position: relative;
    flex: 0 0 auto;
}
.cj-sort__toggle {
    height: 54px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 0 20px;
    border-radius: 30px;
    border: 1px solid rgba(4, 7, 46, 0.1);
    background: #fff;
    font-family: var(--body-font);
    font-size: 14px;
    font-weight: 600;
    color: var(--heading-color);
    cursor: pointer;
    white-space: nowrap;
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06), 0 .125rem .4rem -.0625rem rgb(11 15 25 / .03);
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
}
.cj-sort__toggle:hover,
.cj-sort.is-open .cj-sort__toggle {
    border-color: var(--main-color-two);
}
/* Replace the browser's default focus ring (renders as a heavy black
   outline in light mode / white in dark mode) with the same brand-blue
   border the search input uses on focus, so both controls in the
   toolbar respond to a click the same way. */
.cj-sort__toggle:focus,
.cj-sort__toggle:focus-visible {
    outline: none;
    border-color: var(--main-color-two);
    box-shadow: 0 6px 20px rgba(41, 103, 203, 0.16);
}
.cj-sort__icon {
    font-size: 13px;
    color: var(--main-color-two);
}
.cj-sort__caret {
    font-size: 10px;
    color: #98a0b3;
    transition: transform 0.25s ease;
}
.cj-sort.is-open .cj-sort__caret {
    transform: rotate(180deg);
}
.cj-sort__menu {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    min-width: 190px;
    background: #fff;
    border: 1px solid rgba(4, 7, 46, 0.08);
    border-radius: 14px;
    box-shadow: 0 20px 45px -12px rgba(11, 15, 25, 0.18);
    padding: 8px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
    z-index: 20;
}
.cj-sort.is-open .cj-sort__menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.cj-sort__option {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 10px 12px;
    border: none;
    background: transparent;
    border-radius: 10px;
    font-family: var(--body-font);
    font-size: 14px;
    color: var(--paragraph-color);
    text-align: left;
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease;
}
.cj-sort__option:hover {
    background: rgba(4, 7, 46, 0.04);
    color: var(--heading-color);
}
.cj-sort__option:focus,
.cj-sort__option:focus-visible {
    outline: none;
    background: rgba(4, 7, 46, 0.06);
}
.cj-sort__option.is-active {
    color: var(--heading-color);
    font-weight: 700;
}
.cj-sort__check {
    font-size: 11px;
    color: var(--main-color-two);
    opacity: 0;
    transition: opacity 0.2s ease;
}
.cj-sort__option.is-active .cj-sort__check {
    opacity: 1;
}
@media (max-width: 640px) {
    .cj-toolbar {
        flex-direction: column;
        align-items: stretch;
    }
    .cj-sort__toggle {
        width: 100%;
        justify-content: space-between;
    }
    .cj-sort__menu {
        left: 0;
        right: 0;
    }
}

/* ---- Career search box (reference style for News search) ---- */
.cj-search-wrap {
    position: relative;
    max-width: 560px;
    margin: 42px auto 0;
}
.cj-search-wrap__icon {
    position: absolute;
    left: 24px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 15px;
    color: #98a0b3;
    pointer-events: none;
}
.cj-search-input {
    width: 100%;
    height: 54px;
    /* generous, symmetric breathing room around the search icon (left) and clear button (right) */
    padding: 0 56px 0 54px;
    border-radius: 30px;
    border: 1px solid rgba(4, 7, 46, 0.1);
    background: #fff;
    font-family: var(--body-font);
    font-size: 14.5px;
    color: var(--heading-color);
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06), 0 .125rem .4rem -.0625rem rgb(11 15 25 / .03);
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
}
.cj-search-input::placeholder {
    color: #a7a7b4;
    font-weight: 400;
}
/* Specificity note: the site-wide input[type="text"]:focus reset
   (border: 1px solid #ddd) has HIGHER specificity than a plain
   .cj-search-input:focus class rule (element+attribute+pseudo-class
   beats class+pseudo-class), so it was silently winning and showing
   a light-gray border on focus instead of this blue one. Adding the
   "input" element selector here matches that specificity so this
   (later, more specific) rule wins instead. */
input.cj-search-input:focus {
    outline: none;
    border-color: var(--main-color-two);
    box-shadow: 0 6px 20px rgba(41, 103, 203, 0.16);
}
.cj-search-clear {
    position: absolute;
    right: 18px;
    top: 50%;
    transform: translateY(-50%);
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: rgba(4, 7, 46, 0.06);
    border-radius: 50%;
    color: var(--paragraph-color);
    font-size: 11px;
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease;
}
.cj-search-clear[hidden] {
    display: none;
}
.cj-search-clear:hover {
    /*background: var(--main-color-one);*/
    color: var(--paragraph-color);
}
.cj-search-empty {
    text-align: center;
    margin: 40px 0 0;
    font-family: var(--body-font);
    font-size: 15px;
    color: var(--paragraph-color);
}
@media (max-width: 480px) {
    .cj-toolbar { margin-top: 32px; gap: 12px; }
    .cj-search-input { padding: 0 48px 0 46px; font-size: 14px; }
    .cj-search-wrap__icon { left: 20px; }
    .cj-search-clear { right: 14px; }
}

/* ========================================================================
   CAREERS — "WE ARE CELATATECH" + CORE VALUES
   ======================================================================== */
.cw-section {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    margin-top: 60px;
    padding: 110px 0;
    background: #060a2e;
}
.cw-section__bg {
    position: absolute;
    inset: 0;
    z-index: -3;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    overflow: hidden;
}
/* Purely decorative 3D map background (see .cw-section__bg iframe markup
   on #ct-home-cta). Sized to overflow its box and centered so the Google
   Maps canvas always fills the section regardless of aspect ratio, and
   pointer-events is off so the map's own drag/zoom/COOPERATIVE gesture
   handling never fights the page scroll or steals clicks from the CTA
   content sitting on top of it. */
.cw-section__bg iframe {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 100%;
    min-width: 100%;
    min-height: 100%;
    transform: translate(-50%, -50%);
    border: 0;
    pointer-events: none;
}
.cw-section__tint {
    position: absolute;
    inset: 0;
    z-index: -2;
    background: linear-gradient(120deg,
        rgba(6, 10, 46, 0.94) 0%,
        rgba(23, 61, 122, 0.86) 48%,
        rgba(175, 11, 7, 0.72) 130%);
}
.cw-section__grid {
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background-image: linear-gradient(rgba(255, 255, 255, 0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.06) 1px, transparent 1px);
    background-size: 64px 64px;
    -webkit-mask-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.8) 25%, rgba(0, 0, 0, 0.8) 80%, transparent);
    mask-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.8) 25%, rgba(0, 0, 0, 0.8) 80%, transparent);
    animation: cwGridDrift 30s linear infinite;
}
@keyframes cwGridDrift {
    0% { background-position: 0 0; }
    100% { background-position: 64px 64px; }
}
.cw-section__glow {
    position: absolute;
    z-index: -1;
    border-radius: 50%;
    filter: blur(10px);
    pointer-events: none;
    animation: cwGlowPulse 8s ease-in-out infinite;
}
.cw-section__glow--one {
    width: 460px;
    height: 460px;
    top: -180px;
    left: -140px;
    background: radial-gradient(circle, rgba(41, 103, 203, 0.32), transparent 70%);
}
.cw-section__glow--two {
    width: 380px;
    height: 380px;
    bottom: -160px;
    right: -100px;
    background: radial-gradient(circle, rgba(175, 11, 7, 0.26), transparent 70%);
    animation-delay: 2s;
}
@keyframes cwGlowPulse {
    0%, 100% { transform: scale(1); opacity: 0.55; }
    50% { transform: scale(1.1); opacity: 0.85; }
}
.cw-content__title {
    font-family: var(--heading-font);
    font-weight: 700;
    text-transform: none;
    font-size: clamp(30px, 3.6vw, 46px);
    line-height: 1.22;
    color: #fff;
    margin: 0 0 22px;
}
.cw-content__desc {
    font-family: var(--body-font);
    font-size: 16px;
    line-height: 28px;
    color: rgba(255, 255, 255, 0.82);
    max-width: 560px;
    margin-bottom: 18px;
}
.cw-content__desc--muted {
    color: rgba(255, 255, 255, 0.62);
    margin-bottom: 0;
}
.cw-quote {
    position: relative;
    max-width: 420px;
    margin: 40px 0 0 auto;
    padding: 44px 38px 40px;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.14);
    backdrop-filter: blur(8px);
    box-shadow: 0 30px 60px -20px rgba(0, 0, 0, 0.55);
}
.cw-quote::before {
    content: "";
    position: absolute;
    inset: -14px;
    z-index: -1;
    border-radius: 26px;
    border: 1.5px dashed rgba(255, 255, 255, 0.22);
    animation: cwRingSpin 30s linear infinite;
}
@keyframes cwRingSpin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}
.cw-quote__icon img {
    color: #fff !important;
    filter: brightness(0) invert(1);
}
.cw-quote__text {
    font-family: var(--heading-font);
    font-weight: 500;
    font-size: 26px;
    line-height: 1.45;
    color: #fff;
    margin-bottom: 22px;
}
.cw-quote__line {
    display: block;
    width: 60px;
    height: 3px;
    border-radius: 2px;
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
}
@media (max-width: 991px) {
    .cw-quote { margin: 48px auto 0; }
}
@media (max-width: 767px) {
    .cw-section { padding: 80px 0; margin-top: 40px; }
    .cw-quote { padding: 34px 26px 30px; }
    .cw-quote__text { font-size: 22px; }
}
@media (prefers-reduced-motion: reduce) {
    .cw-section__grid,
    .cw-section__glow,
    .cw-quote::before {
        animation: none !important;
    }
}

/* Wave divider: lets the CTA banner flow straight into the footer instead
   of stopping on a hard edge. The footer normally carries a 10% top margin
   for breathing room after light sections — fine on its own, but it left a
   blank white gap under this dark banner. Scoped to "cw-section immediately
   followed by the footer" via the adjacent-sibling selector so it only
   applies to pages that end on this CTA, not the footer site-wide. */
/* The floating "partner" card pulls itself up -110px from the footer's own
   top (see .cf-float-card) to overlap the space above the footer — that's
   the intended effect on every page. Setting this to 0 made the card creep
   up ~50px INTO the CTA banner itself, colliding with the "Get In Touch"
   button. A small clearance (instead of the default ~10% gap, which read as
   a dead blank strip) lets the card just graze the top of the wave below —
   attached, not overlapping real content — while staying inert below 991px,
   where .cf-float-card's own negative margin is already reset to 0. */
.cw-section + footer.footer-area.cf-footer,
.cw-section + .cf-footer {
    margin-top: 0px !important;
}
.cw-section__wave {
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    z-index: 1;
    line-height: 0;
    pointer-events: none;
}
.cw-section__wave svg {
    display: block;
    width: 100%;
    height: clamp(36px, 6vw, 84px);
}
.cw-section__wave path {
    fill: #ffffff;
}
/* CORE VALUES */
.cv-section {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: 110px 0 50px;
}
.cv-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 28px;
    margin-top: 46px;
}
.cv-card {
    position: relative;
    overflow: hidden;
    background: #fff;
    border-radius: 16px;
    border: 1px solid rgba(4, 7, 46, 0.06);
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06), 0 .125rem .4rem -.0625rem rgb(11 15 25 / .03);
    transition: transform 0.4s ease, box-shadow 0.4s ease, border-color 0.4s ease;
}
.cv-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 4px;
    z-index: 2;
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.45s ease;
}
.cv-card:hover {
    transform: translateY(-8px);
    border-color: transparent;
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06), 0 .125rem .4rem -.0625rem rgb(11 15 25 / .03);
}
.cv-card:hover::before {
    transform: scaleX(1);
}
.cv-card__media {
    position: relative;
    height: 190px;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
.cv-card__media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(4, 7, 46, 0) 40%, rgba(4, 7, 46, 0.75) 100%);
}
.cv-card__num {
    position: absolute;
    z-index: 1;
    top: 14px;
    right: 16px;
    font-family: var(--heading-font);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: #fff;
    padding: 5px 12px;
    border-radius: 30px;
    background: rgba(255, 255, 255, 0.16);
    border: 1px solid rgba(255, 255, 255, 0.3);
    backdrop-filter: blur(4px);
}
.cv-card__body {
    padding: 26px 26px 28px;
}
.cv-card__title {
    font-family: var(--body-font);
    font-size: 20px;
    font-weight: 700;
    color: var(--heading-color);
    margin: 0 0 14px;
    padding-bottom: 12px;
    position: relative;
    transition: color 0.3s ease;
}
.cv-card__title::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 34px;
    height: 3px;
    border-radius: 2px;
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    transition: width 0.4s ease;
}
.cv-card:hover .cv-card__title {
    color: var(--main-color-two);
}
.cv-card:hover .cv-card__title::after {
    width: 56px;
}
.cv-card__desc {
    font-family: var(--body-font);
    font-size: 15px;
    line-height: 25px;
    color: var(--paragraph-color);
    margin: 0;
}
@media (max-width: 991px) {
    .cv-section { padding: 90px 0 80px; }
    .cv-grid { gap: 22px; }
}
@media (max-width: 576px) {
    .cv-section { padding: 70px 0 60px; }
    .cv-card__media { height: 160px; }
    .cv-card__body { padding: 22px 20px 24px; }
}
@media (prefers-reduced-motion: reduce) {
    .cv-card, .cv-card::before, .cv-card__title, .cv-card__title::after {
        transition: none !important;
    }
}

/* ========================================================================
   BOARD OF DIRECTORS (.bod-section)
   ======================================================================== */
.bod-section {
    position: relative;
    overflow: hidden;
    padding: 110px 0 90px;
}
@media (max-width: 991px) { .bod-section { padding: 90px 0 70px; } }
@media (max-width: 576px) { .bod-section { padding: 70px 0 50px; } }
.bod-section__bg {
    position: absolute; inset: 0; z-index: -2; pointer-events: none;
    background-image: radial-gradient(rgba(23,61,122,.09) 1px, transparent 1.5px),
    radial-gradient(rgba(175,11,7,.06) 1px, transparent 1.5px);
    background-size: 34px 34px, 34px 34px;
    background-position: 0 0, 17px 17px;
    animation: bodGridDrift 32s linear infinite;
}
@keyframes bodGridDrift { 0%{background-position:0 0,17px 17px;} 100%{background-position:34px 34px,51px 51px;} }
.bod-section__glow { position:absolute; z-index:-1; border-radius:50%; filter:blur(8px); pointer-events:none; opacity:.5; animation:bodGlowPulse 8s ease-in-out infinite; }
.bod-section__glow--one { width:420px; height:420px; top:-160px; right:-120px; background:radial-gradient(circle, rgba(41,103,203,.18), transparent 70%); }
.bod-section__glow--two { width:360px; height:360px; bottom:-140px; left:-100px; background:radial-gradient(circle, rgba(175,11,7,.14), transparent 70%); animation-delay:1.5s; }
@keyframes bodGlowPulse { 0%,100%{transform:scale(1);opacity:.4;} 50%{transform:scale(1.1);opacity:.7;} }
.bod-section .cc-acc-icon {
    position: relative;
    overflow: visible;
    padding: 0;
    background: transparent !important;
}
.bod-section .cc-acc-icon img {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    display: block;
    position: relative;
    z-index: 1;
    background: #eef4fb;
}
.bod-section .cc-acc-icon::before {
    content: "";
    position: absolute;
    inset: -6px;
    z-index: 0;
    border-radius: 50%;
    border: 1.5px dashed rgba(23, 61, 122, 0.3);
    animation: ccIconRingSpin 14s linear infinite;
}
.bod-section .cc-acc-item.is-open .cc-acc-icon::before {
    border-color: var(--main-color-one);
}
@keyframes ccIconRingSpin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}
.bod-section .cc-acc-idnum {
    position: absolute;
    z-index: 3;
    bottom: -4px;
    right: -4px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--heading-font);
    font-weight: 700;
    font-size: 12.5px;
    color: #fff;
    background: rgba(4, 7, 46, 0.4);
    border: 2px solid #fff;
    transition: background 0.35s ease;
}
.bod-section .cc-acc-item.is-open .cc-acc-idnum {
    background: linear-gradient(135deg, var(--main-color-two), var(--main-color-one));
}
.bod-section .cc-acc-social-link {
    flex: none;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--main-color-two);
    border: 1px solid rgba(23, 61, 122, 0.18);
    transition: all 0.25s ease;
}
.bod-section .cc-acc-social-link:hover {
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    border-color: transparent;
    color: #fff;
    transform: translateY(-2px);
}
.bod-section .cc-acc-panel__content {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 26px;
    align-items: start;
}
.bod-section .cc-acc-panel__photo {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    aspect-ratio: 4 / 5;
    width: 100%;
    border: none !important;
}
.bod-section .cc-acc-panel__photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    border: unset 10px solid  !important;
    outline: none !important;
    box-shadow: none !important;
}
.bod-section .cc-acc-panel__photo::after {
    content: "";
    position: absolute;
    inset: 8px;
    border-radius: 8px;
    border: 1.5px dashed #cccccc;
    pointer-events: none;
    z-index: 2;
}
.bod-section .cc-acc-panel__photo::before {
    content: none !important;
}
.bod-section .cc-acc-panel__text p {
    font-family: var(--body-font);
    font-size: 15px;
    line-height: 26px;
    color: var(--paragraph-color);
    margin: 0 0 14px;
}
.bod-section .cc-acc-panel__text p:last-child {
    margin-bottom: 0;
}
@media (max-width: 767px) {
    .bod-section .cc-acc-panel__content { grid-template-columns: 1fr; }
    .bod-section .cc-acc-panel__photo { max-width: 100%; margin-top: 20px; aspect-ratio: 4 / 5; }
}
@media (max-width: 576px) {
    .bod-section .cc-acc-social-link { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .bod-section__bg, .bod-section__glow, .bod-section .cc-acc-icon::before { animation: none !important; }
    .bod-section .cc-acc-social-link { transition: none !important; }
}

/* ========================================================================
   NEWS & EVENTS PAGE (.cn-*)
   ======================================================================== */
.cn-section {
    position: relative;
    padding: 100px 0 70px;
    overflow-x: hidden;
}
.cn-feature {
    position: relative;
    display: grid;
    grid-template-columns: 1.05fr 1fr;
    align-items: stretch;
    background: #fff;
    border: 1px solid rgba(4, 7, 46, 0.06);
    border-radius: 20px;
    overflow: hidden;
    margin-bottom: 56px;
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06), 0 .125rem .4rem -.0625rem rgb(11 15 25 / .03);
}
.cn-feature__media {
    position: relative;
    min-height: 340px;
    background-size: cover;
    background-position: center;
    isolation: isolate;
}
.cn-feature__media::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background: linear-gradient(100deg, rgba(6, 10, 46, 0.15) 0%, transparent 55%);
}
.cn-feature__media::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image: linear-gradient(rgba(255, 255, 255, 0.16) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.16) 1px, transparent 1px);
    background-size: 46px 46px;
    -webkit-mask-image: linear-gradient(200deg, rgba(0, 0, 0, 0.55), transparent 60%);
    mask-image: linear-gradient(200deg, rgba(0, 0, 0, 0.55), transparent 60%);
    animation: cnFeatureGridDrift 22s linear infinite;
}
@keyframes cnFeatureGridDrift {
    0% { background-position: 0 0, 0 0; }
    100% { background-position: 46px 46px, 46px 46px; }
}
.cn-feature__badge {
    position: absolute;
    z-index: 1;
    top: 22px;
    left: 22px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    border-radius: 30px;
    font-family: var(--body-font);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #fff;
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    box-shadow: 0 10px 22px rgba(4, 7, 46, 0.25);
}
.cn-feature__badge span {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #fff;
    animation: cnPing 1.8s ease-out infinite;
}
@keyframes cnPing {
    0% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.65); }
    70% { box-shadow: 0 0 0 8px rgba(255, 255, 255, 0); }
    100% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0); }
}
.cn-feature__content {
    padding: 46px 48px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.cn-feature__date {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--body-font);
    font-size: 13.5px;
    font-weight: 600;
    color: var(--main-color-one);
    margin-bottom: 16px;
}
.cn-feature__date i {
    font-size: 12px;
}
.cn-feature__title {
    font-family: var(--heading-font);
    font-weight: 700;
    font-size: clamp(24px, 2.4vw, 32px);
    line-height: 1.24;
    color: var(--heading-color);
    margin: 0 0 16px;
    transition: color 0.3s ease;
}
.cn-feature__content a:hover .cn-feature__title {
    color: var(--main-color-two);
}
.cn-feature__desc {
    font-family: var(--body-font);
    font-size: 16px;
    line-height: 27px;
    color: var(--paragraph-color);
    max-width: 480px;
    margin-bottom: 26px;
}
.cn-feature__cta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    width: fit-content;
}
.cn-feature__cta i {
    transition: transform 0.3s ease;
}
.cn-feature .cn-feature__content a.cn-feature__cta:hover i {
    transform: translateX(5px);
}
.cn-grid {
    align-content: start;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
    margin-top: 8px; /* small gap after featured card */
}
.cn-card {
    position: relative;
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid rgba(4, 7, 46, 0.07);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06), 0 .125rem .4rem -.0625rem rgb(11 15 25 / .03);
    transition: transform 0.4s ease, box-shadow 0.4s ease, border-color 0.4s ease;
    opacity: 0;
    transform: translateY(16px);
}
.cn-card.is-visible {
    animation: cnCardIn 0.55s ease forwards;
}
@keyframes cnCardIn {
    to { opacity: 1; transform: translateY(0); }
}
.cn-card.is-hidden {
    display: none !important;
}
.cn-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 4px;
    z-index: 3;
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.45s ease;
}
.cn-card:hover {
    transform: translateY(-6px);
    border-color: transparent;
    box-shadow: 0 20px 40px -12px rgba(23, 61, 122, 0.2), 0 8px 18px -8px rgba(175, 11, 7, 0.12);
}
.cn-card:hover::before {
    transform: scaleX(1);
}
.cn-card__media {
    position: relative;
    height: 300px;
    background-size: cover;
    background-position: center;
    overflow: hidden;
    transition: transform 0.6s ease;
}
.cn-card__media img {
    transition: transform 0.6s ease;
}
.cn-card:hover .cn-card__media {
    transform: scale(1.03);
}
.cn-card__media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(4, 7, 46, 0) 55%, rgba(4, 7, 46, 0.55) 100%);
}
.cn-card__date {
    position: absolute;
    z-index: 1;
    left: 16px;
    bottom: 14px;
    display: flex;
    align-items: center;
    gap: 7px;
    font-family: var(--body-font);
    font-size: 12.5px;
    font-weight: 600;
    color: #fff;
    letter-spacing: 0.01em;
}
.cn-card__date i {
    font-size: 11px;
    color: rgba(255, 255, 255, 0.8);
}
.cn-card__type {
    position: absolute;
    z-index: 1;
    right: 16px;
    top: 14px;
    padding: 5px 13px;
    border-radius: 30px;
    font-family: var(--body-font);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #fff;
    background: rgba(4, 7, 46, 0.45);
    border: 1px solid rgba(255, 255, 255, 0.25);
    backdrop-filter: blur(3px);
}
.cn-card.is-webinar .cn-card__type {
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    border-color: transparent;
}
.cn-card__body {
    padding: 22px 22px 8px;
    flex: 1;
    display: flex;
    flex-direction: column;
}
.cn-card__title {
    font-family: var(--body-font);
    font-size: 17.5px;
    line-height: 27px;
    font-weight: 700;
    color: var(--heading-color);
    margin: 0 0 10px;
    transition: color 0.3s ease;
}
.cn-card__title a {
    color: inherit;
}
.cn-card__title a:hover {
    color: var(--main-color-two);
}
.cn-card__desc {
    font-family: var(--body-font);
    font-size: 14.5px;
    line-height: 23px;
    color: var(--paragraph-color);
    margin: 0 0 16px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.cn-card__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 22px;
    border-top: 1px dashed rgba(4, 7, 46, 0.1);
    margin-top: auto;
}
.cn-card__foot--large {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 1px;
    border-top: 1px dashed rgba(4, 7, 46, 0.1);
    margin-top: auto;
}
.cn-card__cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--body-font);
    font-size: 13.5px;
    font-weight: 700;
    color: var(--main-color-two);
}
.cn-card__cta i {
    font-size: 11px;
    transition: transform 0.3s ease;
}
.cn-card__cta__large {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--body-font);
    font-size: 16.5px;
    font-weight: 700;
    color: var(--main-color-two);
    margin-top: 10px;
}
.cn-card__cta__large em {
    font-size: 15px;
    padding-top: 5px;
    transition: transform 0.3s ease;
}
.cn-card:hover .cn-card__cta__large em {
    transform: translateX(5px);
}
.cn-card:hover .cn-card__cta i {
    transform: translateX(5px);
}
.cn-card__cta.is-disabled {
    color: #b7b7c2;
    pointer-events: none;
}
.cn-more {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    background: none;
    border: none;
    padding: 0;
    font-family: var(--body-font);
    font-size: 13px;
    font-weight: 600;
    color: var(--paragraph-color);
    cursor: pointer;
    transition: color 0.25s ease;
}
.cn-more:hover {
    color: var(--main-color-one);
}
.cn-more__chevron {
    width: 22px;
    height: 22px;
    flex: none;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(23, 61, 122, 0.07);
    color: var(--secondary-color);
    font-size: 9px;
    transition: transform 0.45s cubic-bezier(0.4, 0, 0.2, 1), background 0.3s ease, color 0.3s ease;
}
.cn-card.is-open .cn-more__chevron {
    transform: rotate(180deg);
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    color: #fff;
}
.cn-card.is-open .cn-more__label-more { display: none; }
.cn-more__label-less { display: none; }
.cn-card.is-open .cn-more__label-less { display: inline; }
.cn-panel {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}
.cn-card.is-open .cn-panel {
    grid-template-rows: 1fr;
}
.cn-panel__inner {
    overflow: hidden;
}
.cn-panel__content {
    padding: 18px 22px 22px;
    border-top: 1px dashed rgba(4, 7, 46, 0.1);
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.cn-panel__row {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: var(--body-font);
    font-size: 13.5px;
    color: var(--paragraph-color);
    opacity: 0;
    transform: translateY(4px);
}
.cn-card.is-open .cn-panel__row {
    animation: cnRowIn 0.4s ease forwards;
}
.cn-card.is-open .cn-panel__row:nth-child(1) { animation-delay: 0.05s; }
.cn-card.is-open .cn-panel__row:nth-child(2) { animation-delay: 0.1s; }
.cn-card.is-open .cn-panel__row:nth-child(3) { animation-delay: 0.15s; }
@keyframes cnRowIn {
    to { opacity: 1; transform: translateY(0); }
}
.cn-panel__row i {
    width: 26px;
    height: 26px;
    flex: none;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    color: var(--main-color-one);
    background: linear-gradient(215deg, #feedf0 0%, #ffffff 100%);
}
.cn-panel__share {
    display: flex;
    align-items: center;
    gap: 8px;
}
.cn-panel__share span {
    font-family: var(--body-font);
    font-size: 12.5px;
    font-weight: 600;
    color: var(--heading-color);
    margin-right: 4px;
}
.cn-panel__share a {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    color: var(--main-color-two);
    border: 1px solid rgba(23, 61, 122, 0.18);
    transition: all 0.25s ease;
}
.cn-panel__share a:hover {
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    border-color: transparent;
    color: #fff;
    transform: translateY(-2px);
}
.cn-empty {
    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 6px;
    padding: 60px 24px;
    margin: 0 0 20px;
    background: transparent;
    border-radius: 16px;
}
.cn-empty.is-visible {
    display: flex;
}
.cn-empty i {
    font-size: 30px;
    color: var(--main-color-one);
    margin-bottom: 8px;
}
.cn-empty p {
    font-family: var(--body-font);
    font-size: 15.5px;
    color: var(--paragraph-color);
    margin: 0;
    max-width: 360px;
}
.cn-subscribe {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    margin-top: 60px;
    padding: 56px 50px;
    border-radius: 22px;
    background: linear-gradient(120deg, #060a2e 0%, rgba(23, 61, 122, 0.94) 55%, rgba(175, 11, 7, 0.85) 140%);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    flex-wrap: wrap;
}
.cn-subscribe::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background-image: linear-gradient(rgba(255, 255, 255, 0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.06) 1px, transparent 1px);
    background-size: 54px 54px;
    -webkit-mask-image: radial-gradient(ellipse 70% 90% at 30% 50%, rgba(0, 0, 0, 0.8), transparent 75%);
    mask-image: radial-gradient(ellipse 70% 90% at 30% 50%, rgba(0, 0, 0, 0.8), transparent 75%);
    animation: cnSubGridDrift 26s linear infinite;
}
@keyframes cnSubGridDrift {
    0% { background-position: 0 0; }
    100% { background-position: 54px 54px; }
}
.cn-subscribe__text h4 {
    font-family: var(--heading-font);
    font-weight: 700;
    font-size: 26px;
    color: #fff;
    margin: 0 0 8px;
}
.cn-subscribe__text p {
    font-family: var(--body-font);
    font-size: 15px;
    color: rgba(255, 255, 255, 0.75);
    margin: 0;
    max-width: 420px;
}
.cn-subscribe__form {
    display: flex;
    gap: 12px;
    flex: none;
}
.cn-subscribe__form input {
    width: 380px;
    max-width: 100%;
    flex: 1 1 380px;
    height: 54px;
    border-radius: 30px;
    border: 1px solid rgba(255, 255, 255, 0.25);
    background: rgba(255, 255, 255, 0.08);
    padding: 0 22px;
    color: #fff;
    font-family: var(--body-font);
    font-size: 14.5px;
}
.cn-subscribe__form input::placeholder {
    color: rgba(255, 255, 255, 0.6);
}
.cn-subscribe__form button {
    flex: none;
    white-space: nowrap;
    height: 54px;
    padding: 0 28px;
    border-radius: 30px;
    border: none;
    background: #fff;
    color: var(--main-color-one);
    font-family: var(--body-font);
    font-weight: 700;
    font-size: 14.5px;
    cursor: pointer;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.cn-subscribe__form button:hover {
    transform: translateY(-2px);
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06), 0 .125rem .4rem -.0625rem rgb(11 15 25 / .03);
}
.cn-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;
    margin: 50px 0 10px;
}
.cn-pagination button {
    min-width: 44px;
    min-height: 44px;
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-family: var(--heading-font);
    font-size: 15px;
    font-weight: 700;
    color: var(--heading-color);
    background: #fff;
    border: 1px solid rgba(4, 7, 46, 0.1);
    cursor: pointer;
    transition: all 0.3s ease;
    outline: none;
}
.cn-pagination button:hover:not(:disabled):not(.is-active) {
    border-color: transparent;
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    color: #fff;
    transform: translateY(-3px);
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06), 0 .125rem .4rem -.0625rem rgb(11 15 25 / .03);
}
.cn-pagination button.is-active {
    border-color: transparent;
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    color: #fff;
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06), 0 .125rem .4rem -.0625rem rgb(11 15 25 / .03) !important;
}
.cn-pagination button:disabled {
    opacity: 0.35;
    cursor: not-allowed;
}
.cn-pagination__ellipsis {
    min-width: 44px;
    text-align: center;
    color: var(--paragraph-color);
    font-weight: 700;
    user-select: none;
}
@media (max-width: 1199px) {
    .cn-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 991px) {
    .cn-section { padding: 90px 0 100px; }
    .cn-feature { grid-template-columns: 1fr; }
    .cn-feature__media { min-height: 260px; }
    .cn-feature__content { padding: 36px 32px; }
}
@media (max-width: 767px) {
    .cn-grid { grid-template-columns: 1fr; gap: 20px; }
    .cn-subscribe { flex-direction: column; align-items: flex-start; padding: 40px 26px; }
    .cn-subscribe__form { width: 100%; }
    .cn-subscribe__form input { width: 380px; max-width: 100%; flex: 1 1 380px; }
}
@media (max-width: 480px) {
    .cn-feature__content { padding: 28px 22px; }
    .cn-feature__title { font-size: 22px; }
    .cn-pagination button { width: 38px; height: 38px; font-size: 14px; min-width: 38px; min-height: 38px; }
    /* stack email + button so the button never has to shrink below its label */
    .cn-subscribe { padding: 32px 22px; }
    .cn-subscribe__form { flex-direction: column; }
    .cn-subscribe__form input,
    .cn-subscribe__form button { width: 100%; flex: none; }
}
@media (prefers-reduced-motion: reduce) {
    .cn-card { opacity: 1; transform: none; animation: none !important; }
    .cn-card,
    .cn-card::before,
    .cn-card__media,
    .cn-more__chevron,
    .cn-panel,
    .cn-subscribe__form button {
        transition: none !important;
    }
    .cn-card.is-open .cn-panel__row { animation: none !important; opacity: 1; transform: none; }
    .cn-feature__media::after,
    .cn-subscribe::before,
    .cn-feature__badge span {
        animation: none !important;
    }
    .cn-pagination button { transition: none !important; }
}

/* ========================================================================
   CONTACT US PAGE (.cc-*)
   ======================================================================== */
.cc-channels .section-title .title,
.cc-offices .section-title .title,
.cc-details .section-title .title {
    text-transform: none;
    letter-spacing: normal;
}
.cc-channels {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: 100px 0 40px;
}
.cc-channels .section-title .title {
    font-size: 40px;
    line-height: 55px;
    text-transform: none;
    letter-spacing: normal;
    font-weight: 700;
    color: var(--heading-color);
}
.cc-channels .gis-scene {
    opacity: 0.7;
}
.cc-channels__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 26px;
    margin-top: 46px;
}
.cc-channels__grid__contact {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 26px;
    margin-top: 46px;
}
/* Privacy Policy "Third-Party Services" strip has 4 cards — keep them on one row */
#privacy-services .cc-channels__grid {
    grid-template-columns: repeat(4, 1fr);
}
.cc-channel {
    position: relative;
    background: #fff;
    border: 1px solid rgba(4, 7, 46, 0.07);
    border-radius: 16px;
    padding: 34px 28px 30px;
    text-align: center;
    text-decoration: none;
    overflow: hidden;
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06), 0 .125rem .4rem -.0625rem rgb(11 15 25 / .03);
    transition: transform 0.4s ease, box-shadow 0.4s ease, border-color 0.4s ease;
}
.cc-channel::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 4px;
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.45s ease;
}
.cc-channel:hover {
    transform: translateY(-8px);
    border-color: transparent;
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06), 0 .125rem .4rem -.0625rem rgb(11 15 25 / .03);
}
.cc-channel:hover::before {
    transform: scaleX(1);
}
.cc-channel__icon {
    position: relative;
    width: 84px;
    height: 84px;
    margin: 0 auto 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-size: 30px;
    color: var(--main-color-one);
    background: linear-gradient(215deg, #feedf0 0%, #eef4ff 100%);
    transition: transform 0.5s ease;
}
.cc-channel__icon::after {
    content: "";
    position: absolute;
    inset: -7px;
    border-radius: 50%;
    border: 1.5px dashed rgba(23, 61, 122, 0.32);
    animation: ccRingSpin 14s linear infinite;
}
.cc-channel:hover .cc-channel__icon {
    transform: scale(1.08) rotate(-6deg);
}
.cc-channel:hover .cc-channel__icon::after {
    border-color: var(--main-color-one);
}
@keyframes ccRingSpin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}
.cc-channel__title {
    font-family: var(--body-font);
    font-size: 18px;
    font-weight: 700;
    color: var(--heading-color);
    margin: 0 0 10px;
    transition: color 0.3s ease;
    line-height: 30px;
}
.cc-channel:hover .cc-channel__title {
    color: var(--main-color-two);
}
.cc-channel__value {
    font-family: var(--body-font);
    font-size: 15px;
    line-height: 24px;
    color: var(--paragraph-color);
    margin: 0 0 16px;
}
.cc-channel__cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--body-font);
    font-size: 13.5px;
    font-weight: 700;
    color: var(--main-color-two);
}
.cc-channel__cta i {
    font-size: 11px;
    transition: transform 0.3s ease;
}
.cc-channel:hover .cc-channel__cta i {
    transform: translateX(5px);
}
.cc-offices {
    position: relative;
    padding: 70px 0 30px;
}
.cc-offices__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
    margin-top: 46px;
}
.cc-office {
    position: relative;
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    border: 1px solid rgba(4, 7, 46, 0.07);
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06), 0 .125rem .4rem -.0625rem rgb(11 15 25 / .03);
    transition: transform 0.4s ease, box-shadow 0.4s ease;
}
.cc-office:hover {
    transform: translateY(-6px);
    box-shadow: 0 24px 46px -16px rgba(23, 61, 122, 0.24);
}
.cc-office__media {
    position: relative;
    height: 380px;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat, repeat, repeat;
    isolation: isolate;
}
.cc-office__media::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background: linear-gradient(180deg, rgba(6, 10, 46, 0.05) 30%, rgba(6, 10, 46, 0.86) 100%);
}
.cc-office__media::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image: linear-gradient(rgba(255, 255, 255, 0.16) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.16) 1px, transparent 1px);
    background-size: 44px 44px;
    -webkit-mask-image: linear-gradient(200deg, rgba(0, 0, 0, 0.5), transparent 60%);
    mask-image: linear-gradient(200deg, rgba(0, 0, 0, 0.5), transparent 60%);
    animation: ccMediaGridDrift 22s linear infinite;
}
@keyframes ccMediaGridDrift {
    0% { background-position: 0 0, 0 0; }
    100% { background-position: 44px 44px, 44px 44px; }
}
.cc-office__country {
    position: absolute;
    z-index: 1;
    left: 24px;
    bottom: 18px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: var(--heading-font);
    font-weight: 700;
    font-size: 26px;
    color: #fff;
}
.cc-office__country i {
    font-size: 18px;
    color: rgba(255, 255, 255, 0.75);
}
.cc-office__clock {
    position: absolute;
    z-index: 1;
    right: 20px;
    top: 20px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 14px;
    border-radius: 30px;
    font-family: var(--body-font);
    font-size: 12.5px;
    font-weight: 600;
    color: #060A2EDB;
    background: #dddddd;
    border: 1px solid #dddddd;
    backdrop-filter: blur(4px);
}
.cc-office__clock span.cc-ping {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #0a7b0e;
    flex: none;
    animation: ccDotPing 1.8s ease-out infinite;
}
@keyframes ccDotPing {
    0% { box-shadow: 0 0 0 0 rgba(56, 226, 155, 0.55); }
    70% { box-shadow: 0 0 0 8px rgba(56, 226, 155, 0); }
    100% { box-shadow: 0 0 0 0 rgba(56, 226, 155, 0); }
}
.cc-office__clock-time {
    font-variant-numeric: tabular-nums;
}
.cc-office__body {
    padding: 26px 28px 30px;
}
.cc-office__list {
    list-style: none;
    margin: 0 0 22px;
    padding: 0;
}
.cc-office__list li {
    display: flex;
    align-items: flex-start;
    gap: 14px;
}
.cc-office__list li + li {
    margin-top: 16px;
}
.cc-office__list .icon {
    flex: none;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    color: var(--main-color-one);
    background: linear-gradient(215deg, #feedf0 0%, #ffffff 100%);
}
.cc-office__list .details {
    font-family: var(--body-font);
    font-size: 15px;
    line-height: 24px;
    color: var(--paragraph-color);
}
.cc-office__list .details a {
    color: inherit;
    transition: color 0.25s ease;
}
.cc-office__list .details a:hover {
    color: var(--main-color-one);
}
.cc-details {
    position: relative;
    padding: 40px 0 60px;
}
.cc-acc {
    position: relative;
    max-width: 100%;
    margin: 46px auto 0;
    padding-left: 34px;
}
.cc-acc::before {
    content: "";
    position: absolute;
    top: 8px;
    bottom: 8px;
    left: 11px;
    width: 2px;
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    opacity: 0.28;
}
.cc-acc-item {
    position: relative;
    margin-bottom: 16px;
}
.cc-acc-item:last-child {
    margin-bottom: 0;
}
.cc-acc-node {
    position: absolute;
    left: -34px;
    top: 22px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #fff;
    border: 2px solid var(--main-color-one);
    z-index: 1;
    transition: background 0.35s ease, transform 0.35s ease, border-color 0.35s ease;
}
.cc-acc-node::after {
    content: "";
    position: absolute;
    inset: 5px;
    border-radius: 50%;
    background: var(--main-color-one);
    transition: background 0.35s ease;
}
.cc-acc-item.is-open .cc-acc-node {
    transform: scale(1.15);
    border-color: var(--main-color-two);
}
.cc-acc-item.is-open .cc-acc-node::after {
    background:linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
}
.cc-acc-card {
    background: #fff;
    border: 1px solid rgba(4, 7, 46, 0.07);
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06), 0 .125rem .4rem -.0625rem rgb(11 15 25 / .03);
    transition: box-shadow 0.4s ease, border-color 0.4s ease;
}
.cc-acc-item.is-open .cc-acc-card {
    border-color: transparent;
    box-shadow: 0 20px 40px -14px rgba(23, 61, 122, 0.22);
}
.cc-acc-trigger {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 20px 24px;
    background: none;
    border: none;
    cursor: pointer;
    text-align: left;
    font: inherit;
    color: inherit;
    outline: none;
    -webkit-tap-highlight-color: transparent;
}
.cc-acc-trigger:focus,
.cc-acc-trigger:active {
    outline: none;
    box-shadow: none;
}
.cc-acc-trigger:focus-visible {
    outline: none;
    box-shadow: inset 0 0 0 2px var(--main-color-two);
}
.cc-acc-icon {
    flex: none;
    width: 46px;
    height: 46px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    color: var(--main-color-one);
    background: linear-gradient(215deg, #feedf0 0%, #eef4ff 100%);
    transition: background 0.35s ease, color 0.35s ease;
}
.cc-acc-item.is-open .cc-acc-icon {
    color: #fff;
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
}
.cc-acc-heading {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.cc-acc-title {
    display: block;
    font-family: var(--body-font);
    font-size: 17px;
    font-weight: 700;
    color: var(--heading-color);
    margin: 0;
    transition: color 0.3s ease;
}
.cc-acc-item.is-open .cc-acc-title {
    color: var(--main-color-two);
}
.cc-acc-sub {
    display: block;
    font-family: var(--body-font);
    font-size: 13px;
    color: var(--paragraph-color);
    margin: 0;
}
.cc-acc-chevron {
    flex: none;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(23, 61, 122, 0.07);
    color: var(--main-color-two);
    font-size: 11px;
    transition: transform 0.45s cubic-bezier(0.4, 0, 0.2, 1), background 0.3s ease, color 0.3s ease;
}
.cc-acc-item.is-open .cc-acc-chevron {
    transform: rotate(180deg);
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    color: #fff;
}
.cc-acc-panel {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}
.cc-acc-item.is-open .cc-acc-panel {
    grid-template-rows: 1fr;
}
.cc-acc-panel__inner {
    overflow: hidden;
}
.cc-acc-panel__content {
    padding: 0 24px 24px;
    font-family: var(--body-font);
    font-size: 15px;
    line-height: 26px;
    color: var(--paragraph-color);
    opacity: 0;
    transform: translateY(6px);
}
.cc-acc-item.is-open .cc-acc-panel__content {
    animation: ccPanelIn 0.45s ease 0.05s forwards;
}
@keyframes ccPanelIn {
    to { opacity: 1; transform: translateY(0); }
}
.cc-acc-panel__content p {
    margin: 0 0 10px;
    color: inherit;
}
.cc-acc-panel__content p:last-child {
    margin-bottom: 0;
}
.cc-form-section {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    margin: 40px 0 0;
    padding: 90px 0 100px;
    background: #060a2e;
}
.cc-form-section__tint {
    position: absolute;
    inset: 0;
    z-index: -2;
    background: linear-gradient(120deg, rgba(6, 10, 46, 0.95) 0%, rgba(23, 61, 122, 0.88) 55%, rgba(175, 11, 7, 0.72) 140%);
}

.cc-form-section__grid {
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background-image: linear-gradient(rgba(255, 255, 255, 0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.06) 1px, transparent 1px);
    background-size: 60px 60px;
    -webkit-mask-image: radial-gradient(ellipse 65% 85% at 25% 40%, rgba(0, 0, 0, 0.8), transparent 75%);
    mask-image: radial-gradient(ellipse 65% 85% at 25% 40%, rgba(0, 0, 0, 0.8), transparent 75%);
    animation: ccFormGridDrift 28s linear infinite;
}

@keyframes ccFormGridDrift {
    0% { background-position: 0 0; }
    100% { background-position: 60px 60px; }
}
.cc-form-grid {
    display: grid;
    grid-template-columns: 0.85fr 1.15fr;
    gap: 54px;
    align-items: center;
}
.cc-form-intro__title {
    font-family: var(--heading-font);
    font-weight: 700;
    font-size: clamp(28px, 3.2vw, 40px);
    line-height: 1.2;
    color: #fff;
    margin: 0 0 18px;
}
.cc-form-intro__desc {
    font-family: var(--body-font);
    font-size: 15.5px;
    line-height: 27px;
    color: rgba(255, 255, 255, 0.75);
    max-width: 420px;
}
.cc-form {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 18px;
    padding: 34px;
    backdrop-filter: blur(8px);
}
.cc-form__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}
.cc-form .form-group {
    margin-bottom: 18px;
}
.cc-form label {
    display: block;
    font-family: var(--body-font);
    font-size: 13px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.75);
    margin-bottom: 8px;
}
.cc-form .form-control {
    width: 100%;
    height: 52px;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    background: rgba(255, 255, 255, 0.06);
    padding: 0 16px;
    color: #fff;
    font-family: var(--body-font);
    font-size: 14.5px;
    transition: border-color 0.25s ease, background 0.25s ease;
}
.cc-form textarea.form-control {
    height: 130px;
    padding-top: 14px;
    resize: none;
}
.cc-form .form-control::placeholder {
    color: rgba(255, 255, 255, 0.45);
}
.cc-form .form-control:focus {
    border-color: var(--main-color-two) !important;
    background: rgba(255, 255, 255, 0.1);
    box-shadow: none !important;
}
@media (max-width: 1024px) {
    .cc-channels__grid { grid-template-columns: repeat(2, 3fr); gap: 22px; }
    .cc-offices__grid { grid-template-columns: 3fr; gap: 24px; }
    .cc-channels__grid__contact { grid-template-columns: repeat(3, 3fr); gap: 22px; }
    .cc-offices__grid__contact { grid-template-columns: 3fr; gap: 24px; }
    .cc-form-grid { grid-template-columns: 1fr; gap: 40px; }
    .cc-form-intro__desc { max-width: 100%; }
    #privacy-services .cc-channels__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 991px) {
    .cc-channels__grid { grid-template-columns: repeat(2, 1fr); gap: 22px; }
    .cc-offices__grid { grid-template-columns: 1fr; gap: 24px; }
    .cc-channels__grid__contact { grid-template-columns: repeat(2, 1fr); gap: 22px; }
    .cc-offices__grid__contact { grid-template-columns: 1fr; gap: 24px; }
    .cc-form-grid { grid-template-columns: 1fr; gap: 40px; }
    .cc-form-intro__desc { max-width: 100%; }
    #privacy-services .cc-channels__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
    .cc-channels__grid__contact { grid-template-columns: repeat(1, 3fr); gap: 22px; }
    .cc-offices__grid__contact { grid-template-columns: 1fr; gap: 24px; }
    .cc-channels { padding: 80px 0 30px; }
    .cc-offices { padding: 50px 0 20px; }
    .cc-details { padding: 70px 0 40px; }
    .cc-acc { padding-left: 26px; }
    .cc-acc::before { left: 8px; }
    .cc-acc-node { left: -26px; width: 20px; height: 20px; top: 20px; }
    .cc-acc-panel__content { padding: 0 18px 20px; }
    .cc-acc-trigger { padding: 16px 18px; gap: 14px; }
    .cc-form { padding: 26px; }
    .cc-form__row { grid-template-columns: 1fr; gap: 0; }
    .cc-form-section { padding: 70px 0 80px; }

}
@media (max-width: 575px) {
    .cc-channels { padding: 70px 0 84px; }
    .cc-channels__grid { grid-template-columns: 1fr; gap: 16px; }
    .cc-channel { padding: 28px 22px 26px; }
    .cc-channel__icon { width: 70px; height: 70px; font-size: 26px; }
    .cc-offices { padding: 40px 0 16px; }
    .cc-office__media { height: 170px; }
    .cc-office__body { padding: 22px 20px 24px; }
    .cc-acc-trigger { flex-wrap: wrap; padding: 14px 16px; gap: 12px; }
    .cc-acc-heading { gap: 2px; }
    .cc-acc-title { font-size: 15.5px; }
    .cc-acc-sub { font-size: 12px; }
    .cc-acc-icon { width: 40px; height: 40px; font-size: 16px; }
    .cc-acc-chevron { width: 28px; height: 28px; }
    .cc-form-intro__title { font-size: 24px; }
    .cc-form { padding: 20px; }
    .cc-form .form-control { height: 48px; }
    #privacy-services .cc-channels__grid { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
    .cc-office__country { font-size: 21px; }
    .cc-office__clock { font-size: 11px; padding: 6px 11px; }

}
@media (prefers-reduced-motion: reduce) {
    .cc-channel__icon::after,
    .cc-office__media::after,
    .cc-office__clock span.cc-ping,
    .cc-form-section__grid {
        animation: none !important;
    }
    .cc-channel,
    .cc-channel::before,
    .cc-channel__icon,
    .cc-office,
    .cc-acc-node,
    .cc-acc-card,
    .cc-acc-icon,
    .cc-acc-title,
    .cc-acc-chevron,
    .cc-acc-panel,
    .cc-acc-trigger,
    .cc-acc-trigger:focus-visible {
        transition: none !important;
    }
    .cc-acc-item.is-open .cc-acc-panel__content {
        animation: none !important;
        opacity: 1;
        transform: none;
    }
}

/* ========================================================================
   NEWS DETAIL PAGE (.nd-*)
   ======================================================================== */
.nd-hero {
    min-height: 300px;
    padding: 64px 0 118px;
}
.nd-hero .ct-page-hero__desc {
    max-width: 620px;
}
.nd-progress {
    position: fixed;
    top: calc(var(--ct-topbar-height, 44px) + var(--ct-navbar-h, 88px));
    left: 0;
    width: 100%;
    height: 3px;
    z-index: 890;
    background: rgba(4, 7, 46, 0.06);
    pointer-events: none;
}
.nd-progress__bar {
    height: 100%;
    width: 0%;
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    transition: width 0.12s linear;
}
@media (prefers-reduced-motion: reduce) {
    .nd-progress__bar { transition: none; }
}
.nd-grid {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 54px;
}
@media (max-width: 991px) {
    .nd-grid { grid-template-columns: 1fr; gap: 40px; }
}
@media (max-width: 576px) {
    .nd-grid { gap: 32px; }
}
.nd-main { max-width: 920px; min-width: 0; }
.nd-sidebar {
    position: static !important;
    top: auto !important;
    display: flex;
    flex-direction: column;
    gap: 22px;
}
.nd-lede {
    font-family: var(--body-font);
    font-size: 16px;
    line-height: 32px;
    font-weight: 400;
    color: var(--heading-color);
    padding-bottom: 28px;
    margin: 0 0 34px;
    border-bottom: 1px dashed rgba(4, 7, 46, 0.12);
}
.nd-media {
    margin-bottom: 40px;
}
.nd-media__frame {
    position: relative;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 20px 46px -18px rgba(4, 7, 46, 0.28);
}
.nd-media__frame__sub {
    position: relative;
    border-radius: 14px;
    overflow: hidden;
}
.nd-media__frame img {
    display: block;
    width: 100%;
    height: auto;
}
.nd-media--video .nd-media__frame {
    line-height: 0;
}
.nd-media__cap {
    margin-top: 12px;
    font-family: var(--body-font);
    font-size: 13.5px;
    line-height: 22px;
    color: var(--paragraph-color);
    text-align: center;
}
.nd-block {
    margin-bottom: 42px;
}
.nd-block:last-of-type {
    margin-bottom: 0;
}
.nd-block__head {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 18px;
}
.nd-block__icon {
    flex: none;
    width: 46px;
    height: 46px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    color: var(--main-color-one);
    background: linear-gradient(215deg, #feedf0 0%, #eef4ff 100%);
}
.nd-block__head h2 {
    font-family: var(--body-font);
    font-size: 22px;
    line-height: 30px;
    font-weight: 700;
    color: var(--heading-color);
    margin: 0;
}
.nd-block p {
    font-family: var(--body-font);
    font-size: 15.5px;
    line-height: 27px;
    color: var(--paragraph-color);
    margin: 0 0 16px;
}
.nd-block p:last-child { margin-bottom: 0; }
.nd-block ul,
.nd-block ol {
    margin: 0 0 16px;
    padding-left: 0;
}
.nd-block ul { list-style: none; }
.nd-block ul li {
    position: relative;
    padding: 10px 0 10px 34px;
    font-family: var(--body-font);
    font-size: 15.5px;
    line-height: 25px;
    color: var(--paragraph-color);
    border-bottom: 1px dashed rgba(4, 7, 46, 0.08);
}
.nd-block ul li:last-child { border-bottom: none; padding-bottom: 0; }
.nd-block ul li:first-child { padding-top: 0; }
.nd-block ul li::before {
    content: "\f00c";
    font-family: "FontAwesome";
    position: absolute;
    left: 0;
    top: 10px;
    width: 20px;
    height: 20px;
    line-height: 20px;
    text-align: center;
    font-size: 9px;
    color: var(--main-color-one);
    background: #fff;
    border-radius: 50%;
    box-shadow: 0 3px 8px rgba(4, 7, 46, 0.14);
}
.nd-block ul li:first-child::before { top: 0; }
.nd-block img {
    display: block;
    max-width: 100%;
    height: auto;
    border-radius: 12px;
    margin: 6px 0 20px;
}
.nd-block blockquote { margin: 24px 0; }
.nd-callout {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: 40px 42px;
    margin: 46px 0;
    border-radius: 18px;
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
}
.nd-callout h4 {
    font-family: var(--heading-font);
    font-weight: 700;
    font-size: 26px;
    color: #fff;
    margin: 0 0 10px;
}
.nd-callout p {
    font-family: var(--body-font);
    font-size: 15px;
    line-height: 26px;
    color: rgba(255, 255, 255, 0.78);
    margin: 0 0 22px;
    max-width: 520px;
}
.nd-callout .btn-wrapper .boxed-btn {
    background: #fff !important;
    color: var(--main-color-one) !important;
}
.nd-callout .btn-wrapper .boxed-btn:hover {
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    color: #fff !important;
}
.nd-tags {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}
.nd-tags .title { margin-right: 6px; }
.nd-tags a {
    font-size: 13px;
    line-height: 20px;
    font-family: var(--body-font);
    font-weight: 600;
    padding: 7px 15px;
    border-radius: 30px;
    background: #f3f3f3;
    color: var(--paragraph-color);
    transition: background 0.25s ease, color 0.25s ease;
}
.nd-tags a:hover {
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    color: #fff;
}
.nd-toc { list-style: none; margin: 0; padding: 0; }
.nd-toc li + li { margin-top: 4px; }
.nd-toc a {
    display: block;
    position: relative;
    padding: 9px 0 9px 18px;
    font-family: var(--body-font);
    font-size: 14px;
    line-height: 20px;
    font-weight: 500;
    color: var(--paragraph-color);
    border-left: 2px solid rgba(4, 7, 46, 0.08);
    transition: color 0.25s ease, border-color 0.25s ease;
}
.nd-toc a:hover { color: var(--main-color-two); }
.nd-toc a.is-active {
    color: var(--main-color-one);
    font-weight: 700;
    border-left-color: var(--main-color-one);
}
.nd-share { display: flex; align-items: center; gap: 10px; }
.nd-share a {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    border: 1px solid rgba(23, 61, 122, 0.18);
    transition: all 0.25s ease;
}
.nd-share a:hover {
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    border-color: transparent;
    color: #fff;
    transform: translateY(-2px);
}
.nd-related-list { list-style: none; margin: 0; padding: 0; }
.nd-related-list li + li {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px dashed rgba(4, 7, 46, 0.08);
}
.nd-related-list a { display: flex; align-items: flex-start; gap: 12px; }
.nd-related-list__icon {
    flex: none;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    color: var(--main-color-one);
    background: linear-gradient(215deg, #feedf0 0%, #ffffff 100%);
}
.nd-related-list__text { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.nd-related-list__tag {
    font-family: var(--body-font);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--main-color-two);
}
.nd-related-list__title {
    font-family: var(--body-font);
    font-size: 14px;
    line-height: 20px;
    font-weight: 600;
    color: var(--heading-color);
    transition: color 0.25s ease;
}
.nd-related-list a:hover .nd-related-list__title { color: var(--main-color-one); }
.nd-split { margin: 0; }
.nd-split > * { margin-bottom: 0; }
.nd-split .nd-media { margin: 24px 0; }
.nd-split .nd-media__frame { box-shadow: 0 14px 30px -12px rgba(4, 7, 46, 0.22); }
.nd-subhead {
    font-family: var(--body-font);
    font-size: 19px;
    line-height: 27px;
    font-weight: 700;
    color: var(--heading-color);
    margin: 30px 0 12px;
}
.nd-pullquote {
    position: relative;
    margin: 30px 0;
    padding: 26px 30px 26px 34px;
    border-left: 4px solid var(--main-color-one);
    background: #fff9fc;
    border-radius: 0 10px 10px 0;
}
.nd-pullquote p {
    font-family: var(--heading-font);
    font-size: 20px;
    line-height: 30px;
    font-weight: 500;
    font-style: italic;
    color: var(--heading-color);
    margin: 0 0 10px;
}
.nd-pullquote cite {
    display: block;
    font-family: var(--body-font);
    font-size: 13.5px;
    font-style: normal;
    font-weight: 600;
    color: var(--main-color-one);
}
@media (max-width: 991px) {
    .nd-lede { font-size: 17px; line-height: 28px; }
    .nd-callout { padding: 32px 26px; }
}
@media (max-width: 767px) {
    .jv-section.nd-section-pad { padding-top: 10px; }
}
@media (max-width: 576px) {
    .nd-block__head { gap: 12px; }
    .nd-block__icon { width: 40px; height: 40px; font-size: 16px; }
    .nd-block__head h2 { font-size: 19px; line-height: 26px; }
    .nd-callout { padding: 26px 20px; }
    .nd-callout h4 { font-size: 22px; }
    .nd-share a { width: 32px; height: 32px; }
    .nd-lede { font-size: 16px; line-height: 26px; padding-bottom: 22px; margin-bottom: 26px; }
}
@media (prefers-reduced-motion: reduce) {
    .nd-tags a, .nd-share a, .nd-toc a, .nd-related-list__title {
        transition: none !important;
    }
}

/* ========================================================================
   JOB VACANCY DETAIL PAGE (.jv-*)
   ======================================================================== */
.jv-hero {
    min-height: 300px;
    padding: 64px 0 118px;
}
.jv-hero .ct-page-hero__desc {
    max-width: 620px;
}
.jv-meta-wrap {
    position: relative;
    z-index: 5;
    margin-top: -44px;
    margin-bottom: 10px;
}
.jv-meta-card {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 0;
    background: #fff;
    border-radius: 18px;
    padding: 14px 14px 14px 8px;
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06),0 .125rem .4rem -.0625rem rgb(11 15 25 / .03)!important;
    border: 1px solid rgba(4, 7, 46, 0.06);
}
.jv-meta-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 22px;
    border-right: 1px dashed rgba(4, 7, 46, 0.12);
}
.jv-meta-item:last-of-type {
    border-right: none;
}
.jv-meta-item__icon {
    flex: none;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 15px;
    color: var(--main-color-one);
    background: linear-gradient(215deg, #feedf0 0%, #eef4ff 100%);
}
.jv-meta-item__text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    line-height: 1.2;
}
.jv-meta-label {
    font-family: var(--body-font);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #9a9fae;
}
.jv-meta-value {
    font-family: var(--body-font);
    font-size: 14.5px;
    font-weight: 700;
    color: var(--heading-color);
}
.jv-status {
    display: flex;
    align-items: center;
    gap: 9px;
}
.jv-meta-item__icon.jv-status {
    background: rgba(4, 7, 46, 0.06);
}
.jv-meta-item__icon.jv-status.is-open {
    background: rgba(10, 123, 14, 0.12);
}
.jv-meta-item__icon.jv-status.is-closed {
    background: rgba(4, 7, 46, 0.06);
}
.jv-status-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #cfd2db;
    flex: none;
}
.jv-status-dot.is-open {
    background: #0A7B0E;
    animation: jvStatusPing 1.8s ease-out infinite;
}
@keyframes jvStatusPing {
    0% { box-shadow: 0 0 0 0 rgba(10, 123, 14, 0.55); }
    70% { box-shadow: 0 0 0 8px rgba(10, 123, 14, 0); }
    100% { box-shadow: 0 0 0 0 rgba(10, 123, 14, 0); }
}
.jv-status-dot.is-closed {
    background: #c7cad4;
}
.jv-meta-value.is-open {
    color: #0A7B0E;
}
.jv-meta-value.is-closed {
    color: #8b8f9c;
}
.jv-meta-card .jv-apply-btn {
    margin-left: auto;
    flex: none;
}
.jv-apply-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 26px;
    border-radius: 50px;
    font-family: var(--body-font);
    font-weight: 700;
    font-size: 14.5px;
    color: #fff !important;
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06), 0 .125rem .4rem -.0625rem rgb(11 15 25 / .03);
    transition: transform 0.3s ease, box-shadow 0.3s ease, background 0.3s ease;
    white-space: nowrap;
    border: none;
}
.jv-apply-btn:hover {
    color: #fff;
    transform: translateY(-2px);
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06), 0 .125rem .4rem -.0625rem rgb(11 15 25 / .03);
}
.jv-apply-btn i {
    font-size: 12px;
    transition: transform 0.3s ease;
}
.jv-apply-btn:hover i {
    transform: translateX(4px);
}
.jv-apply-btn.is-disabled {
    background: #e4e6ec !important;
    color: #9a9fae !important;
    box-shadow: none;
    pointer-events: none;
}
.jv-section {
    position: relative;
    padding: 0px 0 90px;
}
.jv-grid {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 54px;
    align-items: start;
}
.jv-main {
    max-width: 760px;
}
.jv-lede {
    font-family: var(--body-font);
    font-size: 17px;
    line-height: 29px;
    color: var(--paragraph-color);
    padding-bottom: 30px;
    margin-bottom: 36px;
    border-bottom: 1px dashed rgba(4, 7, 46, 0.12);
}
.jv-lede strong {
    color: var(--heading-color);
}
.jv-block {
    margin-bottom: 40px;
}
.jv-block:last-child {
    margin-bottom: 0;
}
.jv-block__head {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 18px;
}
.jv-block__icon {
    flex: none;
    width: 46px;
    height: 46px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    color: var(--main-color-one);
    background: linear-gradient(215deg, #feedf0 0%, #eef4ff 100%);
}
.jv-block__head h3 {
    font-family: var(--body-font);
    font-size: 21px;
    line-height: 28px;
    font-weight: 700;
    color: var(--heading-color);
    margin: 0;
}
.jv-block p {
    font-family: var(--body-font);
    font-size: 15.5px;
    line-height: 27px;
    color: var(--paragraph-color);
    margin: 0 0 16px;
}
.jv-block p:last-child {
    margin-bottom: 0;
}
.jv-list {
    list-style: none;
    margin: 0;
    padding: 0;
    padding-top: 12px;
}
.jv-list li {
    position: relative;
    padding: 13px 0 13px 38px;
    font-family: var(--body-font);
    font-size: 15.5px;
    line-height: 25px;
    color: var(--paragraph-color);
    border-bottom: 1px dashed rgba(4, 7, 46, 0.08);
}
.jv-list li:last-child {
    border-bottom: none;
    padding-bottom: 0;
}
.jv-list li:first-child {
    padding-top: 0;
}
.jv-list li::before {
    content: "\f00c";
    font-family: "FontAwesome";
    position: absolute;
    left: 0;
    top: 15px;
    width: 22px;
    height: 22px;
    line-height: 22px;
    text-align: center;
    font-size: 10px;
    color: var(--main-color-one);
    background: #fff;
    border-radius: 50%;
    box-shadow: 0 3px 8px rgba(4, 7, 46, 0.14);
}
.jv-list li:first-child::before {
    top: 2px;
}
.jv-sidebar {
    position: sticky;
    top: 110px;
    display: flex;
    flex-direction: column;
    gap: 22px;
}
.jv-side-card {
    background: #fff;
    border: 1px solid rgba(4, 7, 46, 0.07);
    border-radius: 16px;
    padding: 26px 26px 24px;
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06), 0 .125rem .4rem -.0625rem rgb(11 15 25 / .03);
}
.jv-side-card__title {
    font-family: var(--body-font);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--main-color-one);
    margin: 0 0 18px;
}
.jv-side-list {
    list-style: none;
    margin: 0 0 22px;
    padding: 0;
}
.jv-side-list li {
    display: flex;
    align-items: flex-start;
    gap: 13px;
}
.jv-side-list li + li {
    margin-top: 16px;
}
.jv-side-list .icon {
    flex: none;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    color: var(--main-color-one);
    background: linear-gradient(215deg, #feedf0 0%, #ffffff 100%);
}
.jv-side-list .details {
    font-family: var(--body-font);
    font-size: 14px;
    line-height: 22px;
    color: var(--paragraph-color);
}
.jv-side-list .details strong {
    display: block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #9a9fae;
    margin-bottom: 2px;
}
.jv-side-card .jv-apply-btn {
    width: 100%;
    justify-content: center;
}
.jv-side-card--about p {
    font-family: var(--body-font);
    font-size: 14px;
    line-height: 23px;
    color: var(--paragraph-color);
    margin: 0 0 16px;
}
.jv-side-card--about a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--body-font);
    font-size: 13.5px;
    font-weight: 700;
    color: var(--main-color-two);
}
.jv-side-card--about a i {
    font-size: 11px;
    transition: transform 0.3s ease;
}
.jv-side-card--about a:hover i {
    transform: translateX(5px);
}
.jv-share {
    display: flex;
    align-items: center;
    gap: 10px;
    padding-top: 18px;
    border-top: 1px dashed rgba(4, 7, 46, 0.1);
}
.jv-share span {
    font-family: var(--body-font);
    font-size: 12.5px;
    font-weight: 600;
    color: var(--heading-color);
    margin-right: 2px;
}
.jv-share a {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    /*color: var(--main-color-two);*/
    border: 1px solid rgba(23, 61, 122, 0.18);
    transition: all 0.25s ease;
}
.jv-share a:hover {
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    border-color: transparent;
    color: #fff;
    transform: translateY(-2px);
}
.jv-group-label {
    font-family: var(--body-font);
    font-size: 15px;
    font-weight: 700;
    color: var(--heading-color);
    margin: 34px 0 14px;
}
.jv-group-label:first-of-type {
    margin-top: 0;
}
.jv-cta {
    position: relative;
    padding: 0 0 90px;
}
.jv-cta__inner {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 30px;
    padding: 56px 50px;
    border-radius: 22px;
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
}
.jv-cta__inner::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background-image: linear-gradient(rgba(255, 255, 255, 0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.06) 1px, transparent 1px);
    background-size: 54px 54px;
    -webkit-mask-image: radial-gradient(ellipse 70% 90% at 25% 50%, rgba(0, 0, 0, 0.8), transparent 75%);
    mask-image: radial-gradient(ellipse 70% 90% at 25% 50%, rgba(0, 0, 0, 0.8), transparent 75%);
    animation: jvCtaGridDrift 26s linear infinite;
}
@keyframes jvCtaGridDrift {
    0% { background-position: 0 0; }
    100% { background-position: 54px 54px; }
}
.jv-cta__text h4 {
    font-family: var(--heading-font);
    font-weight: 700;
    font-size: 28px;
    color: #fff;
    margin: 0 0 8px;
}
.jv-cta__text p {
    font-family: var(--body-font);
    font-size: 15px;
    color: rgba(255, 255, 255, 0.72);
    margin: 0;
    max-width: 460px;
}
.jv-cta .jv-apply-btn {
    background: #fff;
    color: var(--main-color-one) !important;
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.25);
}
.jv-cta .jv-apply-btn:hover {
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    color: #fff !important;
}
.jv-apply-btn.is-disabled {
    background: linear-gradient(90deg, #b9bcc7, #8b8f9c) !important;
    color: #fff !important;
    box-shadow: none;
    pointer-events: none;
}
.jv-apply-btn.is-disabled:hover {
    transform: none;
}
.jv-apply-btn.is-disabled i {
    opacity: 0.85;
}
@media (max-width: 991px) {
    .jv-grid { grid-template-columns: 1fr; }
    .jv-sidebar { position: static; }
    .jv-meta-card { padding: 18px; }
    .jv-meta-item { flex: 1 1 45%; border-right: none; padding: 10px 14px; }
    .jv-meta-card .jv-apply-btn { width: 100%; justify-content: center; margin-top: 6px; }
}
@media (max-width: 767px) {
    .jv-hero { padding: 56px 0 96px; min-height: 260px; }
    .jv-meta-wrap { margin-top: -58px; }
    .jv-section { padding: 20px 0 70px; }
    .jv-cta { padding: 0 0 70px; }
    .jv-cta__inner { grid-template-columns: 1fr; padding: 40px 26px; text-align: left; }
    .jv-cta .jv-apply-btn { width: 100%; justify-content: center; }
}
@media (max-width: 576px) {
    .jv-meta-item { flex: 1 1 100%; }
    .jv-block__head { gap: 12px; }
    .jv-block__head h3 { font-size: 18px; line-height: 25px; }
}
@media (prefers-reduced-motion: reduce) {
    .jv-status-dot.is-open,
    .jv-cta__inner::before {
        animation: none !important;
    }
    .jv-apply-btn,
    .jv-share a {
        transition: none !important;
    }
}

/* ========================================================================
   COOKIE BANNER / MODAL
   ======================================================================== */
.cb-banner {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 9999;
    padding: 16px 20px 20px;
    background: rgba(255, 255, 255, 0.88);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-top: 1px solid rgba(4, 7, 46, 0.06);
    box-shadow: 0 -8px 40px rgba(4, 7, 46, 0.06);
    transform: translateY(100%);
    transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
    display: none;
}
.cb-banner.is-visible {
    display: block;
    transform: translateY(0);
}
.cb-banner__inner { max-width: 1200px; margin: 0 auto; }
.cb-banner__content { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.cb-banner__icon-wrap { display: flex; flex-direction: column; align-items: center; gap: 4px; flex: none; }
.cb-banner__icon { width: 90px; height: 90px; margin-top: -100px; }
.cb-banner__icon img { width: 100%; height: 100%; }
.cb-banner__badge {
    font-family: var(--body-font, 'Open Sans', sans-serif);
    font-size: 8px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
    color: #fff;
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    padding: 2px 10px; border-radius: 20px; white-space: nowrap;
}
.cb-banner__text { flex: 1; min-width: 220px; }
.cb-banner__title {
    font-family: var(--heading-font, 'Barlow Semi Condensed', sans-serif);
    font-size: 16px; font-weight: 700; color: var(--heading-color, #04072e); margin: 0 0 2px;
}
.cb-banner__desc {
    font-family: var(--body-font, 'Open Sans', sans-serif);
    font-size: 13.5px; line-height: 1.6; color: var(--paragraph-color, #727777);
    margin: 0 0 4px; max-width: 620px;
}
.cb-banner__desc strong { color: var(--heading-color, #04072e); }
.cb-banner__links { display: flex; align-items: center; gap: 8px; font-size: 12.5px; font-family: var(--body-font, 'Open Sans', sans-serif); }
.cb-banner__link { color: var(--main-color-two, #2967cb); text-decoration: none; font-weight: 600; transition: color 0.2s ease; }
.cb-banner__link:hover { color: var(--main-color-one, #af0b07); text-decoration: underline; }
.cb-banner__link-sep { color: rgba(4, 7, 46, 0.15); font-weight: 300; }
.cb-banner__actions { display: flex; align-items: center; gap: 10px; flex: none; flex-wrap: wrap; }
.cb-modal {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.4s ease, visibility 0.4s ease;
}
.cb-modal.is-visible { opacity: 1; visibility: visible; }
.cb-modal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(4, 7, 46, 0.40);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    cursor: pointer;
}
.cb-modal__dialog {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 700px;
    max-height: 90vh;
    padding-bottom: 20px !important;
    padding-top: 20px !important;
    animation: cbModalSlideUp 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}
@keyframes cbModalSlideUp {
    from { opacity: 0; transform: translateY(30px) scale(0.97); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}
.cb-modal__content {
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
    border-radius: 24px;
    border: 1px solid rgba(255, 255, 255, 0.50);
    box-shadow: 0 40px 100px -30px rgba(4, 7, 46, 0.20);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    max-height: 90vh;
}
.cb-modal__header {
    display: flex; align-items: flex-start; justify-content: space-between;
    padding: 28px 32px 20px; border-bottom: 1px solid rgba(4, 7, 46, 0.06); flex: none;
}
.cb-modal__header-left { display: flex; align-items: flex-start; gap: 16px; }
.cb-modal__header-icon { width: 70px; height: 70px; flex: none; margin-top: -12px; }
.cb-modal__header-icon img { width: 100%; height: 100%; }
.cb-modal__title {
    font-family: var(--heading-font, 'Barlow Semi Condensed', sans-serif);
    font-size: 22px; font-weight: 700; color: var(--heading-color, #04072e); margin: 0 0 2px; line-height: 1.2;
}
.cb-modal__subtitle { font-family: var(--body-font, 'Open Sans', sans-serif); font-size: 14px; color: var(--paragraph-color, #727777); margin: 0; }
.cb-modal__close {
    flex: none; width: 40px; height: 40px; border-radius: 50%; border: none;
    background: rgba(4, 7, 46, 0.04); color: var(--paragraph-color, #727777); cursor: pointer;
    display: flex; align-items: center; justify-content: center; transition: all 0.25s ease; margin-top: -4px;
}
.cb-modal__close:hover { background: rgba(175, 11, 7, 0.08); color: var(--main-color-one, #af0b07); transform: rotate(90deg); }
.cb-modal__body { padding: 30px 32px 30px; overflow-y: auto; flex: 1; }
.cb-accordion { display: flex; flex-direction: column; gap: 6px; }
.cb-accordion__item {
    border: 1px solid rgba(4, 7, 46, 0.06); border-radius: 12px; overflow: hidden;
    background: rgba(255, 255, 255, 0.50); transition: border-color 0.3s ease, box-shadow 0.3s ease;
    -webkit-tap-highlight-color: transparent;
}
.cb-accordion__item:hover { border-color: rgba(41, 103, 203, 0.12); }
.cb-accordion__trigger {
    width: 100%; display: flex; align-items: center; gap: 12px; padding: 14px 18px;
    background: transparent; border: none; cursor: pointer;
    font-family: var(--body-font, 'Open Sans', sans-serif); text-align: left;
    color: var(--heading-color, #04072e); transition: background 0.2s ease;
    -webkit-tap-highlight-color: transparent;
    outline: none !important;
    box-shadow: none !important;
}
.cb-accordion__trigger:hover { background: rgba(41, 103, 203, 0.03); }
.cb-accordion__trigger:focus,
.cb-accordion__trigger:active {
    outline: none !important;
    box-shadow: none !important;
    border: none !important;
}
.cb-accordion__trigger:focus-visible {
    background: rgba(41, 103, 203, 0.05);
    border-radius: 10px;
}
.cb-accordion__icon { flex: none; color: var(--main-color-two, #2967cb); opacity: 0.6; display: flex; align-items: center; }
.cb-accordion__label { flex: 1; font-size: 14px; font-weight: 600; color: var(--heading-color, #04072e); }
.cb-accordion__badge { font-size: 10px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; padding: 3px 12px; border-radius: 20px; white-space: nowrap; flex: none; }
.cb-accordion__badge--always { background: rgba(10, 123, 14, 0.10); color: #0a7b0e; }
.cb-accordion__badge--recommended { background: rgba(41, 103, 203, 0.10); color: var(--main-color-two, #2967cb); }
.cb-accordion__badge--optional { background: rgba(175, 11, 7, 0.08); color: var(--main-color-one, #af0b07); }
.cb-accordion__arrow { flex: none; color: var(--paragraph-color, #727777); transition: transform 0.3s ease; margin-left: 4px; }
.cb-accordion__trigger[aria-expanded="true"] .cb-accordion__arrow { transform: rotate(180deg); }
.cb-toggle { position: relative; display: inline-block; width: 40px; height: 22px; flex: none; cursor: pointer; }
.cb-toggle input { opacity: 0; width: 0; height: 0; }
.cb-toggle__slider { position: absolute; inset: 0; background: #d0d4de; border-radius: 22px; transition: background 0.3s ease; cursor: pointer; }
.cb-toggle__slider::before {
    content: ''; position: absolute; height: 16px; width: 16px; left: 3px; bottom: 3px;
    background: #fff; border-radius: 50%; transition: transform 0.3s ease; box-shadow: 0 2px 6px rgba(4, 7, 46, 0.12);
}
.cb-toggle input:checked + .cb-toggle__slider { background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two)); }
.cb-toggle input:checked + .cb-toggle__slider::before { transform: translateX(18px); }
.cb-toggle input:disabled + .cb-toggle__slider { opacity: 0.5; cursor: not-allowed; }
.cb-toggle input:disabled + .cb-toggle__slider::before { opacity: 0.7; }
.cb-accordion__panel {
    display: grid;
    grid-template-rows: minmax(0, 0fr);
    transition: grid-template-rows 0.35s ease;
}
.cb-accordion__trigger[aria-expanded="true"] + .cb-accordion__panel {
    grid-template-rows: minmax(0, 1fr);
}
.cb-accordion__body { overflow: hidden; padding: 0 18px 18px; }
.cb-accordion__desc { font-family: var(--body-font, 'Open Sans', sans-serif); font-size: 13px; line-height: 1.6; color: var(--paragraph-color, #727777); margin: 0 0 12px; }
.cb-accordion__meta { display: flex; flex-wrap: wrap; gap: 8px; }
.cb-accordion__meta-tag {
    display: inline-flex; align-items: center; gap: 4px;
    font-family: var(--body-font, 'Open Sans', sans-serif); font-size: 11.5px; font-weight: 500;
    color: var(--paragraph-color, #727777); background: rgba(4, 7, 46, 0.04); padding: 4px 12px 4px 8px; border-radius: 20px;
}
.cb-accordion__meta-tag svg { color: var(--main-color-two, #2967cb); opacity: 0.5; }
.cb-modal__footer {
    display: flex; align-items: center; justify-content: flex-end; gap: 12px;
    padding: 16px 32px 24px; border-top: 1px solid rgba(4, 7, 46, 0.06); flex: none; flex-wrap: wrap;
}
.cb-modal__footer .gis-btn--primary { min-width: 160px; justify-content: center; }
.cb-banner button,
.cb-banner a,
.cb-modal button,
.cb-modal a,
.cb-modal label,
.cb-float {
    -webkit-tap-highlight-color: transparent;
}
.cb-banner button:focus,
.cb-banner a:focus,
.cb-modal button:focus,
.cb-modal a:focus,
.cb-float:focus {
    outline: none !important;
    box-shadow: none !important;
}
.gis-btn:focus-visible,
.cb-modal__close:focus-visible,
.cb-float:focus-visible {
    box-shadow: 0 0 0 3px rgba(41, 103, 203, 0.25) !important;
}
.cb-float {
    position: fixed; bottom: 24px; right: 24px; z-index: 8;
    width: 54px; height: 54px; border-radius: 50%; border: none;
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
    box-shadow: 0 8px 28px rgba(4, 7, 46, 0.10);
    color: var(--main-color-two, #2967cb); cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: all 0.3s ease; border: 1px solid rgba(4, 7, 46, 0.06);
}
.cb-float:hover {
    transform: translateY(-3px) scale(1.05);
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06), 0 .125rem .4rem -.0625rem rgb(11 15 25 / .03);
    border-color: rgba(41, 103, 203, 0.15);
    color: var(--main-color-one, #af0b07);
}
.cb-float svg { width: 22px; height: 22px; stroke-width: 1.8; }
@media (max-width: 991px) {
    .cb-banner { padding: 14px 16px 18px; }
    .cb-banner__content { gap: 16px; }
    .cb-banner__icon-wrap { flex-direction: row; gap: 10px; }
    .cb-banner__icon { width: 72px; height: 72px; }
    .cb-banner__badge { font-size: 7px; padding: 2px 8px; }
    .cb-banner__title { font-size: 14px; }
    .cb-banner__desc { font-size: 12.5px; }
    .cb-banner__actions { width: 100%; justify-content: flex-start; }
    .gis-btn { padding: 8px 16px; font-size: 12px; }
    .gis-btn svg { width: 14px; height: 14px; }
    .cb-modal__header { padding: 20px 20px 16px; }
    .cb-modal__body { padding: 8px 20px 4px; }
    .cb-modal__footer { padding: 14px 20px 20px; }
    .cb-modal__dialog { max-width: 100%; margin: 0 12px; }
    .cb-accordion__trigger { padding: 12px 14px; gap: 10px; flex-wrap: wrap; }
    .cb-accordion__label { font-size: 13px; }
    .cb-accordion__badge { font-size: 9px; padding: 2px 10px; }
    .cb-accordion__body { padding: 0 14px 14px; }
    .cb-modal__footer .gis-btn--primary { min-width: 120px; }
}
@media (max-width: 576px) {
    .cb-banner { padding: 12px 14px 16px; }
    .cb-banner__content { flex-direction: column; align-items: flex-start; gap: 12px; }
    .cb-banner__icon-wrap { flex-direction: row; gap: 8px; }
    .cb-banner__icon { width: 72px; height: 72px; }
    .cb-banner__title { font-size: 13px; }
    .cb-banner__desc { font-size: 12px; line-height: 1.5; }
    .cb-banner__links { font-size: 11.5px; }
    .cb-banner__actions { width: 100%; flex-wrap: wrap; gap: 8px; }
    .cb-banner__actions .gis-btn { flex: 1; min-width: 80px; justify-content: center; padding: 8px 14px; font-size: 11.5px; }
    .cb-modal__content { border-radius: 16px; }
    .cb-modal__header { padding: 16px 16px 12px; flex-wrap: wrap; gap: 8px; }
    .cb-modal__header-left { gap: 12px; }
    .cb-modal__header-icon { width: 70px; height: 70px; }
    .cb-modal__title { font-size: 18px; }
    .cb-modal__subtitle { font-size: 12.5px; }
    .cb-modal__close { width: 34px; height: 34px; }
    .cb-modal__close svg { width: 16px; height: 16px; }
    .cb-modal__body { padding: 4px 14px 2px; }
    .cb-modal__footer { padding: 12px 14px 16px; flex-direction: column-reverse; align-items: stretch; }
    .cb-modal__footer .gis-btn { justify-content: center; }
    .cb-modal__footer .gis-btn--primary { min-width: auto; }
    .cb-accordion__item { border-radius: 8px; }
    .cb-accordion__trigger { padding: 10px 12px; gap: 8px; }
    .cb-accordion__label { font-size: 12.5px; }
    .cb-accordion__badge { font-size: 8px; padding: 2px 8px; }
    .cb-accordion__body { padding: 0 12px 12px; }
    .cb-accordion__desc { font-size: 12px; }
    .cb-accordion__meta-tag { font-size: 10.5px; padding: 3px 10px 3px 6px; }
    .cb-toggle { width: 34px; height: 20px; }
    .cb-toggle__slider::before { height: 14px; width: 14px; left: 2px; bottom: 3px; }
    .cb-toggle input:checked + .cb-toggle__slider::before { transform: translateX(14px); }
    .cb-float { width: 42px; height: 42px; bottom: 16px; right: 16px; }
    .cb-float svg { width: 18px; height: 18px; }
}
@media (max-width: 380px) {
    .cb-banner__actions .gis-btn { flex: 1 1 100%; min-width: auto; }
    .cb-banner__desc { font-size: 11.5px; }
    .cb-modal__title { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
    .cb-banner, .cb-modal, .cb-modal__dialog, .cb-accordion__panel,
    .cb-toggle__slider, .cb-toggle__slider::before, .cb-float {
        animation: none !important;
        transition: none !important;
    }
    .cb-banner { transform: none; }
    .cb-banner.is-visible { transform: none; }
    .cb-accordion__trigger[aria-expanded="true"] + .cb-accordion__panel { grid-template-rows: minmax(0, 1fr); }
    .cb-modal__close:hover { transform: none; }
}

/* Google Translate hidden */
#google_translate_element,
#google_translate_element select.goog-te-combo,
.goog-te-menu-frame {
    opacity: 0 !important;
    position: absolute !important;
}
#google_translate_element {
    left: -9999px !important;
    width: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
}
.goog-te-banner-frame,
.goog-te-banner-frame.skiptranslate,
body>.skiptranslate,
iframe.goog-te-banner-frame {
    display: none !important;
    visibility: hidden !important;
}

/* ========================================================================
   GLOBE CHARTS / EXTRAS
   ======================================================================== */
#animated_golbe_div {
    width: 100%;
    height: 500px;
    max-width: 100%;
    margin-top: -10%;
}
#chartdiv_map {
    width: 100%;
    height: 500px;
    max-width: 100%;
}
@media (min-width: 320px) {
    .custom_page_main_title_for_paragraph {
        font-size: 28px !important;
        font-weight: 700 !important;
    }
}
@media (min-width: 480px) {
    .custom_page_main_title_for_paragraph {
        font-size: 30px !important;
        font-weight: 700 !important;
    }
}
@media (min-width: 768px) {
    .custom_page_main_title_for_paragraph {
        font-size: 40px !important;
        font-weight: 700 !important;
    }
}
@media (min-width: 1024px) {
    .custom_page_main_title_for_paragraph {
        font-size: 30px !important;
        font-weight: 700 !important;
    }
}
@media (min-width: 1280px) {
    .custom_page_main_title_for_paragraph {
        font-size: 35px !important;
        font-weight: 700 !important;
    }
}
@media (min-width: 1366px) {
    .custom_page_main_title_for_paragraph {
        font-size: 35px !important;
        font-weight: 700 !important;
    }
}
@media (min-width: 1920px) {
    .custom_page_main_title_for_paragraph {
        font-size: 46px !important;
        font-weight: 700 !important;
    }
}

/* ========================================================================
   HOME PAGE SECTION SPACING
   ======================================================================== */
/* Give extra top margin to home page sections so they breathe */
.administration-section {
    margin-top: 60px;
}
.administration-section:first-of-type {
    margin-top: 30px; /* reduce after hero */
}
.administration-section.mt-5,
.administration-section.mt-4,
.administration-section.mt-3 {
    margin-top: 60px !important;
}
.team-section-area {
    margin-top: 70px;
}
.team-section-area.logo-showcase {
    margin-top: 70px;
}
.team-section-area.logo-showcase.partners-logos {
    margin-top: 50px;
    margin-bottom: 20px;
}

/* On smaller screens, reduce spacing slightly */
@media (max-width: 767px) {
    .administration-section,
    .administration-section.mt-5,
    .administration-section.mt-4,
    .administration-section.mt-3 {
        margin-top: 40px !important;
    }
    .team-section-area {
        margin-top: 50px;
    }
    .team-section-area.logo-showcase.partners-logos {
        margin-top: 30px;
    }
}
@media (max-width: 575px) {
    .administration-section,
    .administration-section.mt-5,
    .administration-section.mt-4,
    .administration-section.mt-3 {
        margin-top: 30px !important;
    }
    .team-section-area {
        margin-top: 40px;
    }
}

/* ========================================================================
   1. REMOVE NAVBAR SCROLL-PROGRESS BAR
   ======================================================================== */
.ct-navbar::after {
    content: none !important;
}

/* ========================================================================
   2. CC-CHANNEL — SVG ICON STYLING (replaces <i class="fas ..."> icons)
   ======================================================================== */
.cc-channel__icon svg {
    display: block;
    color: var(--main-color-one);
}
.cc-channel:hover .cc-channel__icon svg {
    color: inherit;
}

.cc-channel__cta svg {
    display: inline-block;
    vertical-align: middle;
    margin-left: 4px;
    transition: transform 0.3s ease;
}
.cc-channel:hover .cc-channel__cta svg {
    transform: translateX(5px);
}

/* ---- Draw-in animation on load ---- */
.cc-channel__icon svg path,
.cc-channel__icon svg rect {
    stroke-dasharray: 90;
    stroke-dashoffset: 90;
    animation: ccIconDraw 1.1s ease forwards;
}
.cc-channel:nth-child(2) .cc-channel__icon svg path { animation-delay: 0.15s; }
.cc-channel:nth-child(3) .cc-channel__icon svg path { animation-delay: 0.3s; }

@keyframes ccIconDraw {
    to { stroke-dashoffset: 0; }
}

/* ---- Email icon: subtle flap lift on hover ---- */
.cc-channel:hover .cc-channel__icon svg path {
    transition: transform 0.35s ease;
    transform-origin: 12px 8px;
}
.cc-channel:hover .cc-channel__icon svg path:last-child {
    transform: translateY(-1px);
}

/* ---- Phone icons: ring-shake on hover (add .cc-channel--phone in markup) ---- */
.cc-channel--phone:hover .cc-channel__icon svg {
    animation: ccPhoneRing 0.5s ease;
}
@keyframes ccPhoneRing {
    0%, 100% { transform: rotate(0deg); }
    20% { transform: rotate(-12deg); }
    40% { transform: rotate(10deg); }
    60% { transform: rotate(-8deg); }
    80% { transform: rotate(4deg); }
}

/* ========================================================================
   3. CN-CARD__CTA__LARGE — SVG arrow hover shift (replaces <em> arrow)
   ======================================================================== */
.cn-card__cta__large svg {
    transition: transform 0.3s ease;
}
.cn-card:hover .cn-card__cta__large svg {
    transform: translateX(-5px); /* negative since arrow now points left */
}

/* ========================================================================
   4. REDUCED MOTION
   ======================================================================== */
@media (prefers-reduced-motion: reduce) {
    .ct-navbar::after,
    .cc-channel__icon svg path,
    .cc-channel__icon svg rect,
    .cc-channel--phone:hover .cc-channel__icon svg,
    .cc-channel__cta svg,
    .cn-card__cta__large svg {
        animation: none !important;
        transition: none !important;
    }
    .cc-channel__icon svg path,
    .cc-channel__icon svg rect {
        stroke-dashoffset: 0;
    }
}


/* ========================================================================
   NEWS TOOLBAR
   Row 1: title + subtitle (full width)
   Row 2: search (flexible) + category filter (pinned right)
   Row 3 (collapsible): category panel — full width, part of normal flow
   ======================================================================== */
.cn-toolbar {
    display: flex;
    flex-direction: column;
    margin-bottom: 40px;
}
.cn-toolbar .section-title {
    margin-bottom: 28px;
    text-align: left;
    max-width: 720px;
}
.cn-toolbar .section-title .title {
    text-transform: none;
    letter-spacing: normal;
    text-align: left;
    margin-bottom: 12px;
}
.cn-toolbar .section-title .description {
    text-align: left;
    margin: 0;
}

.cn-toolbar__controls {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
    width: 100%;
}

/* ---- Search field ---- */
.cn-search {
    display: flex;
    align-items: center;
    gap: 16px;
    flex: 1 1 360px;
    max-width: 100%;
    min-width: 0;
    height: 54px;
    background: #fff;
    border: 1px solid rgba(4, 7, 46, 0.1);
    border-radius: 30px;
    /* generous, symmetric breathing room at the start & end of the field */
    padding: 0 24px;
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06), 0 .125rem .4rem -.0625rem rgb(11 15 25 / .03);
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.cn-search:focus-within {
    border-color: var(--main-color-two);
    box-shadow: 0 6px 20px rgba(41, 103, 203, 0.16);
}
.cn-search > i.fa-search {
    flex: none;
    color: #98a0b3;
    font-size: 15px;
}
.cn-search input {
    color: var(--heading-color) !important;
    -webkit-text-fill-color: var(--heading-color);
    caret-color: var(--heading-color);
    background: transparent !important;
    flex: 1 1 auto;
    min-width: 0;
    height: 100%;
    border: none;
    padding: 0;
    font-family: var(--body-font);
    font-size: 14.5px;
}
.cn-search input::placeholder {
    color: #a7a7b4;
    font-weight: 400;
}
.cn-search input:focus {
    outline: none !important;
    border: none !important;
    box-shadow: none !important;
}
.cn-search__clear {
    flex: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: none;
    background: rgba(4, 7, 46, 0.06);
    color: var(--paragraph-color);
    font-size: 11px;
    display: none;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.25s ease, color 0.25s ease;
}
.cn-search__clear:hover {
    /*background: var(--main-color-one);*/
    color: var(--paragraph-color);
}
.cn-search.has-value .cn-search__clear {
    display: flex;
}

/* ---- Category filter toggle ---- */
.cn-cat-filter {
    position: relative;
    flex: 0 0 auto;
    margin-left: auto;
}
.cn-cat-filter__toggle {
    border: #dddddd solid 1px !important;
    outline: none !important;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none !important;
    display: inline-flex !important;
    align-items: center;
    gap: 10px;
    height: 54px !important;
    padding: 0 24px !important;
    border-radius: 30px !important;
    /*border: 1px solid rgba(4, 7, 46, 0.1) !important;*/
    background: #fff !important;
    background-image: none !important;
    color: var(--main-color-two) !important;
    font-family: var(--body-font) !important;
    font-size: 14.5px !important;
    font-weight: 700 !important;
    line-height: normal;
    cursor: pointer;
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06), 0 .125rem .4rem -.0625rem rgb(11 15 25 / .03) !important;
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
    white-space: nowrap;
}
.cn-cat-filter__toggle i {
    font-size: 11px;
    transition: transform 0.3s ease;
}
.cn-cat-filter__toggle:focus,
.cn-cat-filter__toggle:focus-visible {
    outline: none !important;
    border-color: var(--main-color-two) !important;
    box-shadow: 0 6px 20px rgba(41, 103, 203, 0.16) !important;
}
.cn-cat-filter.is-open .cn-cat-filter__toggle i {
    transform: rotate(180deg);
}
.cn-cat-filter__toggle:hover,
.cn-cat-filter.is-open .cn-cat-filter__toggle {
    border-color: var(--main-color-two) !important;
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06), 0 .125rem .4rem -.0625rem rgb(11 15 25 / .03);
}

/* ---- Category panel ----
   NOTE: in the markup this panel is a sibling of .cn-toolbar__controls
   (both live inside .cn-toolbar), so it must lay out as a normal, static,
   full-width block — not be absolutely positioned against the toggle
   button, which is a different DOM branch and was the root cause of the
   panel rendering in the wrong place. */
.cn-cat-filter__panel {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px 24px;
    width: 100%;
    background: #fff;
    border-radius: 16px;
    outline: 1px solid #dddddd;
    outline-offset: -14px;
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06), 0 .125rem .4rem -.0625rem rgb(11 15 25 / .03);
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    padding: 0 28px;
    margin-top: 0;
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease, padding 0.35s ease, margin-top 0.35s ease;
}
.cn-cat-filter__panel.is-open {
    max-height: 640px;
    opacity: 1;
    margin-top: 24px;
    padding: 26px 28px;
}

.cn-cat-filter__item {
    display: grid;
    grid-template-columns: 19px 1fr;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border-radius: 12px;
    border: 1px solid rgba(4, 7, 46, 0.08);
    background: #f7f8fb;
    font-family: var(--body-font);
    font-size: 14px;
    color: var(--heading-color);
    cursor: pointer;
    white-space: normal;
    min-width: 0;
    transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}
.cn-cat-filter__item:hover {
    border-color: var(--main-color-two);
    background: rgba(41, 103, 203, 0.05);
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06);
}
.cn-cat-filter__item:has(.cn-cat-checkbox:checked) {
    border-color: transparent;
    background: rgba(41, 103, 203, 0.08);
    box-shadow: 0 0 0 1px rgba(41, 103, 203, 0.28) inset;
}
.cn-cat-filter__item input {
    display: none;
}
.cn-cat-filter__box {
    width: 19px;
    height: 19px;
    border-radius: 6px;
    border: 1.5px solid rgba(4, 7, 46, 0.18);
    background: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}
.cn-cat-filter__box i {
    font-size: 10px;
    color: #fff;
    opacity: 0;
    transform: scale(0.5);
    transition: opacity 0.15s ease, transform 0.15s ease;
}
.cn-cat-checkbox:checked ~ .cn-cat-filter__box {
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    border-color: transparent;
    box-shadow: 0 4px 10px -2px rgba(41, 103, 203, 0.4);
}
.cn-cat-checkbox:checked ~ .cn-cat-filter__box i {
    opacity: 1;
    transform: scale(1);
}
.cn-cat-filter__item:hover .cn-cat-filter__box {
    border-color: var(--main-color-two);
}
.cn-cat-filter__label {
    line-height: 19px;
    font-weight: 500;
}
.cn-cat-filter__item:has(.cn-cat-checkbox:checked) .cn-cat-filter__label {
    color: var(--main-color-two);
    font-weight: 700;
}

/* ---- Responsive ---- */
@media (max-width: 1199px) {
    .cn-cat-filter__panel { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 991px) {
    .cn-toolbar { margin-bottom: 32px; }
    .cn-toolbar .section-title { margin-bottom: 22px; }
    .cn-cat-filter__panel.is-open { margin-top: 18px; }
    .cn-search { flex-basis: 280px; }
    .cn-cat-filter__panel { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
    .cn-toolbar__controls { flex-direction: column; align-items: stretch; gap: 14px;  margin-bottom: -10px;}
    /* reset the row-layout flex-basis so it doesn't get read as a height
       once the container becomes flex-direction: column */
    .cn-search { flex: 0 0 auto; width: 100%; max-width: 100%; height: 54px; }
    .cn-cat-filter { width: 100%; margin-left: 0; }
    .cn-cat-filter__toggle { width: 100%; justify-content: space-between; }
    .cn-cat-filter__panel { grid-template-columns: repeat(2, 1fr); padding: 0 22px; }
    .cn-cat-filter__panel.is-open { padding: 24px 22px; }
}
@media (max-width: 575px) {
    .cn-toolbar__controls { margin-bottom: 6px;}
    .cn-toolbar { margin-bottom: 24px; }
    .cn-toolbar .section-title { margin-bottom: 18px; }
    .cn-search { padding: 0 20px; gap: 12px; }
    .cn-cat-filter__panel { grid-template-columns: 1fr; padding: 0 20px; }
    .cn-cat-filter__panel.is-open { padding: 22px 20px; margin-top: 14px; }
}

/* ============================================================================
   NEW SECTIONS — Who We Are / Our Focus / Our Platforms (hex) /
   Why Work With Us / We Believe In
   Added to support new content sections across HomePage, OurStory and
   Careers. Built on existing tokens (--main-color-one/-two, --heading-color,
   --paragraph-color, --heading-font, --body-font) so these re-theme for free
   in dark mode the same way every other component on the site does — only
   the actual card/tile backgrounds need explicit dark-mode.scss overrides,
   same pattern already used for .industry-card / .cv-card etc.
   ============================================================================ */

/* ---- Who We Are (image collage intro) ---- */
.who-we-are { padding: 90px 0; }
.who-we-are__media {
    position: relative;
    padding-bottom: 70px;
    padding-left: 60px;
}
.who-we-are__img-main {
    width: 100%;
    aspect-ratio: 4 / 3.3;
    object-fit: cover;
    border-radius: 20px;
    box-shadow: 0 30px 60px -20px rgba(4, 7, 46, 0.25);
    display: block;
}
.who-we-are__img-accent {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 52%;
    aspect-ratio: 5 / 4;
    object-fit: cover;
    border-radius: 16px;
    border: 6px solid var(--white-color, #fff);
    box-shadow: 0 20px 40px -14px rgba(4, 7, 46, 0.3);
}
.who-we-are__stat {
    position: absolute;
    right: 6%;
    top: -28px;
    background: var(--white-color, #fff);
    border-radius: 14px;
    padding: 16px 22px;
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .06),0 .125rem .4rem -.0625rem rgb(11 15 25 / .03)!important;
    text-align: center;
}
.who-we-are__stat-num {
    display: block;
    font-family: var(--heading-font);
    font-weight: 700;
    font-size: 26px;
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
.who-we-are__stat-label {
    display: block;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--paragraph-color, #6b7c85);
    margin-top: 2px;
}
@media (max-width: 991px) {
    .who-we-are__media { padding-left: 40px; padding-bottom: 56px; margin-top: 40px; }
}
@media (max-width: 576px) {
    .who-we-are { padding: 60px 0; }
    .who-we-are__media { padding-left: 24px; padding-bottom: 44px; }
    .who-we-are__stat { padding: 10px 16px; top: -18px; }
    .who-we-are__stat-num { font-size: 20px; }
}

/* ---- Our Focus (capability tile grid) ---- */
.focus-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-top: 40px;
}
.focus-tile {
    position: relative;
    border-radius: 16px;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    background-size: cover;
    background-position: center;
    isolation: isolate;
    transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.focus-tile::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background: linear-gradient(180deg, rgba(4, 7, 46, 0) 45%, rgba(4, 7, 46, 0.82) 100%);
}
.focus-tile:hover {
    transform: translateY(-6px);
    box-shadow: 0 24px 44px -16px rgba(4, 7, 46, 0.35);
}
.focus-tile__label {
    position: absolute;
    left: 20px;
    bottom: 16px;
    z-index: 1;
    color: #fff;
    font-family: var(--heading-font);
    font-weight: 700;
    font-size: 16px;
    margin: 0;
}
@media (max-width: 991px) {
    .focus-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 576px) {
    .focus-grid { grid-template-columns: 1fr; gap: 16px; }
}

/* ---- Our Platforms (honeycomb showcase) ---- */
.platform-hex-wrap {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 20px;
}
.platform-hex-col {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.platform-hex-col--offset { margin-top: 70px; }
.platform-hex {
    position: relative;
    width: 140px;
    height: 160px;
    clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    isolation: isolate;
    transition: transform 0.3s ease;
}
.platform-hex:hover { transform: scale(1.05); }
.platform-hex::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background: linear-gradient(180deg, rgba(4, 7, 46, 0.05) 0%, rgba(4, 7, 46, 0.75) 100%);
}
.platform-hex__label {
    position: relative;
    z-index: 1;
    color: #fff;
    font-family: var(--heading-font);
    font-weight: 700;
    font-size: 13px;
    text-align: center;
    padding: 0 10px 30px;
}
@media (max-width: 767px) {
    .platform-hex-wrap { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
    .platform-hex-col, .platform-hex-col--offset { display: contents; margin-top: 0; }
    .platform-hex {
        width: 100%;
        height: 140px;
        clip-path: none;
        border-radius: 14px;
    }
}
@media (max-width: 480px) {
    .platform-hex-wrap { grid-template-columns: 1fr; }
}

/* ---- Why Work With Us (4-up icon cards) ---- */
.ww-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    margin-top: 40px;
    margin-bottom: 140px;
}
.ww-card {
    background: var(--white-color, #fff);
    border: 1px solid rgba(4, 7, 46, 0.06);
    border-radius: 16px;
    padding: 36px 26px;
    text-align: center;
    box-shadow: 0 1px 2px 0 rgba(60, 64, 67, 0.06), 0 1px 3px 1px rgba(60, 64, 67, 0.08);
    transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.ww-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 40px -12px rgba(23, 61, 122, 0.2);
}
.ww-card__icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: linear-gradient(135deg, #D1E0FFFF, rgba(3, 69, 178, 0.1));
    color: var(--main-color-two);
    font-size: 26px;
}
.ww-card__title {
    font-family: var(--heading-font);
    font-weight: 700;
    font-size: 18px;
    color: var(--heading-color);
    margin: 0 0 10px;
}
.ww-card__desc {
    font-family: var(--body-font);
    font-size: 14px;
    line-height: 1.6;
    color: var(--paragraph-color, #6b7c85);
    margin: 0;
}
@media (max-width: 991px) {
    .ww-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 576px) {
    .ww-grid { grid-template-columns: 1fr; gap: 16px; }
    .ww-card { padding: 28px 22px; }
}

/* ---- Shared numbered-card grid (.believe-grid / .believe-item) ----
   A reusable component: plain white cards with a ghost index number, an
   icon chip, a hover-lift, and a top accent bar that reveals on hover
   (same recipe as .industry-card / .cj-card). Used by Home's "Our
   Approach" section (Strategy / Engineering / AI). Our-Story's own
   "We Believe In" section does NOT use this — it has its own
   .believe-orbit-section / .believe-card component further up this
   file, built for arranging cards around a globe instead of a plain
   grid. Don't confuse the two: .believe-item/.believe-grid here is the
   flat-grid version; .believe-card is the orbit version. */
.believe-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
    margin-top: 48px;
}
.believe-item {
    position: relative;
    background: #fff;
    border: 1px solid rgba(4, 7, 46, 0.07);
    border-radius: 18px;
    padding: 34px 30px 30px;
    overflow: hidden;
    z-index: 2 !important;
    transition: transform 0.4s ease, box-shadow 0.4s ease, border-color 0.4s ease;
}
.believe-item::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 4px;
    background: linear-gradient(135deg, var(--main-color-one), var(--main-color-two));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.45s ease;
}
.believe-item:hover {
    z-index: 999;
    transform: translateY(-8px);
    border-color: transparent;
    box-shadow: 0 .275rem .75rem -.0625rem rgb(11 15 25 / .09),0 .125rem .4rem -.0625rem rgb(11 15 25 / .03)!important;
}
.believe-item:hover::before {
    transform: scaleX(1);
}
.believe-item__num {
    position: absolute;
    top: 10px;
    right: 20px;
    font-family: var(--heading-font);
    font-size: 46px;
    font-weight: 700;
    line-height: 1;
    color: var(--heading-color);
    opacity: 0.05;
    transition: opacity 0.4s ease, transform 0.4s ease;
}
.believe-item:hover .believe-item__num {
    opacity: 0.09;
    transform: scale(1.06);
}
.believe-item__icon {
    position: relative;
    width: 72px;
    height: 72px;
    margin-bottom: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: linear-gradient(215deg, #feedf0 0%, #eef4ff 100%);
    color: var(--main-color-two);
    font-size: 26px;
    transition: transform 0.5s ease, color 0.35s ease;
}
.believe-item__icon::after {
    content: "";
    position: absolute;
    inset: -6px;
    border-radius: 50%;
    border: 1.5px dashed rgba(23, 61, 122, 0.3);
    animation: indRingSpin 14s linear infinite;
}
.believe-item:hover .believe-item__icon {
    transform: scale(1.08) rotate(-6deg);
    color: var(--main-color-one);
}
.believe-item:hover .believe-item__icon::after {
    border-color: var(--main-color-one);
}
.believe-item__title {
    position: relative;
    z-index: 1;
    font-family: var(--heading-font);
    font-weight: 700;
    font-size: 20px;
    color: var(--heading-color);
    margin: 0 0 16px;
}
.believe-item__desc {
    position: relative;
    z-index: 1;
    margin: 0;
    font-family: var(--body-font);
    font-size: 14.5px;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.7;
    color: var(--paragraph-color, #6b7c85);
    transition: color 0.35s ease;
}
.believe-item:hover .believe-item__desc {
    color: var(--paragraph-color);
}
@media (max-width: 991px) {
    .believe-grid { grid-template-columns: repeat(2, 1fr); gap: 22px; }
}
@media (max-width: 576px) {
    .believe-grid { grid-template-columns: 1fr; gap: 18px; }
    .believe-item { padding: 28px 24px 26px; }
    .believe-item__icon { width: 62px; height: 62px; font-size: 22px; margin-bottom: 18px; }
    .believe-item__num { font-size: 36px; }
}
@media (prefers-reduced-motion: reduce) {
    .believe-item,
    .believe-item__icon,
    .believe-item__icon::after,
    .believe-item__num,
    .believe-item__desc,
    .believe-item::before {
        transition: none !important;
        animation: none !important;
    }
}

/* ---- CTA banner color variant (reuses .cw-section structure/behaviour) ---- */
.cw-section--teal .cw-section__tint {
    background: linear-gradient(120deg,
        rgba(16, 20, 39, 0.86) 0%,
        rgba(28, 35, 62, 0.8) 55%,
        rgba(150, 3, 10, 0.55) 130%);
}


/* ---- Homepage CTA → Footer gap fix ----
   The shared ".cw-section + footer.footer-area.cf-footer" margin rule
   above only fires when the footer element is the CTA's *immediate*
   sibling with that exact class combo. On the homepage that match wasn't
   landing (footer markup/nesting can vary page to page), leaving a large
   blank strip between the teal CTA and the footer's top seam/partner
   card instead of the intended flush hand-off. Scoped to #ct-home-cta
   only, so it never touches .cw-section on any other page, and only
   resets margin — the partner card keeps its own -110px overlap pull
   intact, so this doesn't double up on top of that. */
#ct-home-cta + * {
    margin-top: 0 !important;
}


/* ============================================================================
   INDUSTRIES CIRCUIT — "We Power Multiple Industries" (v3)
   ----------------------------------------------------------------------------
   Replaces the earlier v2 "Orbit" component (curved gradient links). This
   version reads as a schematic / node-graph: a central Celata Tech chip
   with pin connectors, right-angle (elbow) traces in flat per-wire colours
   running out to each industry card, a small via dot at each end, and a
   coloured dash continuously animating along the grey trace to read as a
   signal flowing through the circuit — no bezier curves anywhere.

   >= 992px → two columns of cards flank the chip (5 left / 5 right),
              each linked by its own elbow trace
   <  992px → the chip sits at the top; a single vertical bus runs down the
              page and every card branches off it with a short coloured
              stub, alternating left/right — same trace language, rotated

   Structure (see layouts/Industries-Orbit.blade.php):
     .ic-section            section wrapper (dot-grid bg + glows)
     .ic-stage              layout root — JS toggles orbit vs bus mode
       .ic-links (svg)       elbow/bus connector traces, pins, via dots
       .ic-chip              Celata Tech hub
       .ic-nodes              10 industry cards (<ul>/<li>)

   Requires the accompanying JS (industries-circuit.js) which computes card
   positions and (re)draws .ic-links on load/resize — the DOM below is
   real Blade-rendered content so it still exists without JS, it just needs
   JS to be positioned into the circuit and to gain the "is-in" reveal class.

   Wire colours are defined once as CSS variables (shared with dark mode)
   so both themes stay in sync from one source; only surfaces/borders/glows
   are re-themed in the dark-mode block.
   ============================================================================ */

/* ============================================================================
   SECTION DIVIDER — brand hex ornament on a fading gradient line
   ----------------------------------------------------------------------------
   Small reusable seam between two sections (first used between "Who We
   Are" and "We Power Multiple Industries" on Our Story). Sits centered in
   the whitespace the two sections' own padding already creates — no extra
   scroll length added, just a quieter transition than a hard section edge.
   Markup:
     <div class="ct-divider" aria-hidden="true">
         <span class="ct-divider__line"></span>
         <span class="ct-divider__mark">...</span>
         <span class="ct-divider__line"></span>
     </div>
   ============================================================================ */
.ct-divider {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    max-width: 560px;
    margin: -46px auto 0;
    padding: 0 24px;
}

.ct-divider__line {
    flex: 1 1 auto;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(4, 7, 46, 0.16));
}

.ct-divider__line:last-child {
    background: linear-gradient(90deg, rgba(4, 7, 46, 0.16), transparent);
}

.ct-divider__mark {
    position: relative;
    flex: 0 0 auto;
    width: 46px;
    height: 46px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: var(--white-color);
    border: 1px solid var(--secondary-color);
    box-shadow: 0 10px 26px -12px rgba(4, 7, 46, 0.2);
    animation: ctDividerFloat 4.5s ease-in-out infinite;
}

.ct-divider__mark::before {
    content: '';
    position: absolute;
    inset: -14px;
    z-index: -1;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(215, 38, 61, 0.16), transparent 70%);
    filter: blur(6px);
    animation: ctDividerGlow 4.5s ease-in-out infinite;
}

.ct-divider__mark svg {
    width: 20px;
    height: 20px;
}

@keyframes ctDividerFloat {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-4px); }
}

@keyframes ctDividerGlow {
    0%, 100% { opacity: 0.6; transform: scale(1); }
    50%      { opacity: 1;   transform: scale(1.15); }
}

@media (max-width: 575px) {
    .ct-divider { margin-top: -30px; gap: 12px; }
    .ct-divider__mark { width: 38px; height: 38px; border-radius: 11px; }
    .ct-divider__mark svg { width: 17px; height: 17px; }
}

@media (prefers-reduced-motion: reduce) {
    .ct-divider__mark,
    .ct-divider__mark::before {
        animation: none !important;
    }
}

.ic-section {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: 100px 0 110px;
}

@media (max-width: 991px) {
    .ic-section { padding: 74px 0 84px; }
}

@media (max-width: 575px) {
    .ic-section { padding: 56px 0 64px; }
}

.ic-section__bg {
    position: absolute;
    inset: 0;
    z-index: -2;
    pointer-events: none;
    background-size: 34px 34px;
    background-position: 0 0;;
}

@keyframes icGridDrift {
    0%   { background-position: 0 0; }
    100% { background-position: 34px 34px; }
}

.ic-section__glow {
    position: absolute;
    z-index: -1;
    border-radius: 50%;
    pointer-events: none;
    filter: blur(60px);
    opacity: 0.5;
    animation: icGlowPulse 7s ease-in-out infinite;
}

.ic-section__glow--one {
    width: 420px;
    height: 420px;
    top: -160px;
    right: -120px;
    background: radial-gradient(circle, rgba(215, 38, 61, 0.22), transparent 70%);
}

.ic-section__glow--two {
    width: 380px;
    height: 380px;
    bottom: -150px;
    left: -110px;
    background: radial-gradient(circle, rgba(3, 69, 178, 0.2), transparent 70%);
    animation-delay: 1.5s;
}

@keyframes icGlowPulse {
    0%, 100% { transform: scale(1);    opacity: 0.4; }
    50%      { transform: scale(1.14); opacity: 0.7; }
}

/* ---------- stage ---------- */
.ic-stage {
    position: relative;
    width: 100%;
    height: 760px;
    /* Grew alongside the larger cards (was clamp(620px, 58vw, 700px)) so the
       taller row pitch (see industries-circuit.js nodeYs) always has room
       without the top/bottom cards clipping into neighbouring sections. */
    height: clamp(700px, 62vw, 800px);
    margin-top: 34px;
}

.ic-links {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: visible;
    pointer-events: none;
    z-index: 1;
}

.ic-link {
    fill: none;
    stroke: var(--secondary-color);
    stroke-width: 1.6;
    stroke-linejoin: round;
    opacity: 0.85;
}

.ic-link__flow {
    fill: none;
    stroke-width: 2.4;
    stroke-linecap: round;
    stroke-linejoin: round;
    animation-name: icFlow;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
}

@keyframes icFlow {
    to { stroke-dashoffset: -1000; }
}

.ic-pin,
.ic-via {
    fill: var(--white-color);
    stroke: var(--secondary-color);
    stroke-width: 1;
}

/* ---------- chip ---------- */
.ic-chip {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 3;
    width: 230px;
    min-height: 210px;
    border-radius: 20px;
    background: var(--white-color);
    border: 1px solid var(--secondary-color);
    box-shadow: 0 20px 50px -16px rgba(4, 7, 46, 0.18), 0 0 0 8px rgba(215, 38, 61, 0.05);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    text-align: center;
    padding: 20px 16px;
}

.ic-chip__mark {
    width: 38px;
    height: 38px;
}

.ic-chip__label {
    font-family: var(--heading-font);
    font-weight: 700;
    font-size: 17px;
    color: var(--heading-color);
    line-height: 1.2;
}

.ic-chip__tag {
    font-size: 10.5px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--paragraph-color);
}

/* ---------- industry cards ---------- */
.ic-nodes {
    list-style: none;
    margin: 0;
    padding: 0;
}

.ic-node {
    position: absolute;
    left: 0;
    top: 0;
    /* Bigger footprint (was 172px, then 226px, then 240px) — widened again
       so the card's own width eats into the gap toward the logo instead of
       leaving a long bare connector line; JS shortens the connector to
       match (see the colX/outerX comment in industries-circuit.js). */
    width: 280px;
    z-index: 2;
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 18px 20px;
    border-radius: 16px;
    background: var(--white-color);
    border: 1px solid var(--secondary-color);
    box-shadow: 0 14px 32px -14px rgba(4, 7, 46, 0.16);
    opacity: 0;
    overflow: hidden;
    transition: opacity 0.5s ease, transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.ic-node.is-in { opacity: 1; }

.ic-node--left  { transform: translate(-100%, -50%); flex-direction: row-reverse; text-align: right; }
.ic-node--right { transform: translate(0, -50%); }

.ic-node:hover {
    box-shadow: 0 22px 46px -16px rgba(4, 7, 46, 0.22);
    border-color: var(--main-color-two);
    transform: translate(0, calc(-50% - 3px));
}

.ic-node--left:hover { transform: translate(-100%, calc(-50% - 3px)); }

.ic-node__icon {
    flex: 0 0 auto;
    width: 75px;
    height: 75px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    //background: var(--secondary-color);
    //color: var(--main-color-two);
}

.ic-nodes li.ic-node:nth-child(odd) .ic-node__icon {
    //background: rgba(215, 38, 61, 0.08);
    //color: var(--main-color-one);
}

/* Real icon images (see the $industries 'image' key in
   Industries-Orbit.blade.php) — sized to sit comfortably inside the
   52px badge above. */
.ic-node__icon img {
    width: 96px;
    height: 96px;
    object-fit: contain;
    display: block;
}

.ic-node__text {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.ic-node__title {
    font-family: var(--heading-font);
    font-size: 16px;
    font-weight: 600;
    color: var(--heading-color);
    margin: 0;
    line-height: 1.3;
}

.ic-node__desc {
    font-family: var(--body-font);
    font-size: 12.5px;
    color: var(--paragraph-color);
    margin: 0;
    line-height: 1.45;
}

/* ---------- bus mode (< 992px) ---------- */
.ic-stage--bus .ic-chip {
    position: relative;
    left: auto;
    top: auto;
    transform: none;
    margin: 0 auto;
}

.ic-node--bus {
    position: absolute;
    left: 50%;
    top: 0;
    /* was 180px, then 220px — matched to the wider .ic-node above */
    width: 230px;
    transform: translateY(-50%);
}

/* Offsets (76px) must match `stubOut` in industries-circuit.js */
.ic-node--bus.ic-node--left  { transform: translate(calc(-100% - 76px), -50%); flex-direction: row-reverse; text-align: right; }
.ic-node--bus.ic-node--right { transform: translate(76px, -50%); }

/* ---------- stack mode (< 992px) ---------- */
/* Same centered chip treatment as bus mode. */
.ic-stage--stack .ic-chip {
    position: relative;
    left: auto;
    top: auto;
    transform: none;
    margin: 0 auto;
}

/* One centered column, no left/right alternation — every card sits
   directly under the chip and under the one before it, so nothing can
   clip against the viewport edge the way the alternating bus offset
   could on narrow phones. Used across the whole sub-desktop range (see
   STACK_BREAKPOINT in industries-circuit.js). Width is 100% of
   .ic-stage (its containing block), which already sits inside
   .container.ct-container with no extra padding — so the card's own
   left/right edges land exactly on the same gutter as the section
   title, header, and everything else on the page, instead of floating
   in from the edge by an arbitrary vw-based amount. */
.ic-node--stack {
    position: absolute;
    left: 50%;
    top: 0;
    width: 100%;
    transform: translate(-50%, -50%);
    flex-direction: row;
    text-align: left;
}
.ic-node--stack:hover {
    transform: translate(-50%, calc(-50% - 3px));
}

/* ---------- grid mode (576px – 991px, tablet) ---------- */
/* Two cards per row (5 rows for the 10 industries) instead of the
   single stacked column above. Cards are a plain in-flow CSS grid
   (no absolute positioning), but the connector trace is still drawn
   — an elbow from the chip into each column, then a straight spine
   with via dots linking every card down the column (see buildGrid()
   in the JS, which measures actual rendered card positions since
   they're in normal flow here, not JS-placed). */
.ic-stage--grid .ic-chip {
    position: relative;
    left: auto;
    top: auto;
    transform: none;
    margin: 0 auto 36px;
    z-index: 3;
}

.ic-stage--grid .ic-nodes {
    position: relative;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px 18px;
}

.ic-node--grid {
    position: static;
    width: 100%;
    transform: none;
}

.ic-node--grid:hover {
    transform: translateY(-3px);
}

@media (max-width: 991px) {
    .ic-stage { height: auto; margin-top: 10px; }
}

@media (min-width: 992px) and (max-width: 1199px) {
    /* Scaled up from the original 148px tier to stay proportionate with
       the new default card size instead of feeling like a step down. */
    .ic-node { width: 232px; padding: 14px 16px; gap: 12px; }
    .ic-node__icon { width: 44px; height: 44px; border-radius: 12px; }
    .ic-node__icon img { width: 24px; height: 24px; }
    .ic-node__title { font-size: 14.5px; }
    .ic-node__desc { font-size: 12px; }
    .ic-chip { width: 196px; min-height: 186px; }
    .ic-chip__mark { width: 34px; height: 34px; }
}

@media (max-width: 767px) {
    .ic-node--bus { width: min(260px, 62vw); }

    /* Grid-mode cards are now roughly half the container width, so
       shrink the icon/text tier the same way the old bus cards did at
       this width — keeps titles from wrapping awkwardly in the
       narrower column. */
    .ic-node--grid { padding: 14px 16px; gap: 12px; }
    .ic-node--grid .ic-node__icon { width: 46px; height: 46px; border-radius: 12px; }
    .ic-node--grid .ic-node__icon img { width: 28px; height: 28px; }
    .ic-node--grid .ic-node__title { font-size: 14px; }
    .ic-node--grid .ic-node__desc { font-size: 11.5px; }
}

@media (max-width: 600px) {
    /* Very narrow end of the grid range — trim gutters and drop to a
       single-column icon-over-text feel isn't needed; just tighten
       spacing so two ~260px cards keep breathing room from each other
       and the container edge. */
    .ic-stage--grid .ic-nodes { gap: 16px 12px; }
    .ic-node--grid { padding: 12px 14px; gap: 10px; }
    .ic-node--grid .ic-node__icon { width: 40px; height: 40px; }
    .ic-node--grid .ic-node__icon img { width: 24px; height: 24px; }
    .ic-node--grid .ic-node__title { font-size: 13px; }
    .ic-node--grid .ic-node__desc { font-size: 11px; }
}

@media (max-width: 575px) {
    .ic-node--bus { width: min(230px, 58vw); padding: 14px 16px; gap: 12px; }
    .ic-node--bus .ic-node__icon { width: 42px; height: 42px; border-radius: 11px; }
    .ic-node--bus .ic-node__icon img { width: 22px; height: 22px; }
    .ic-node--bus .ic-node__title { font-size: 14px; }
    .ic-node--bus.ic-node--left  { transform: translate(calc(-100% - 44px), -50%); }
    .ic-node--bus.ic-node--right { transform: translate(44px, -50%); }
}

@media (max-width: 575px) {
    .ic-node--stack { padding: 16px 18px; gap: 12px; }
    .ic-node--stack .ic-node__icon { width: 56px; height: 56px; border-radius: 12px; }
    .ic-node--stack .ic-node__icon img { width: 40px; height: 40px; }
    .ic-node--stack .ic-node__title { font-size: 14.5px; }
    .ic-node--stack .ic-node__desc { font-size: 12px; }
}

@media (max-width: 380px) {
    .ic-node--stack { padding: 14px 16px; gap: 10px; }
    .ic-node--stack .ic-node__icon { width: 48px; height: 48px; }
    .ic-node--stack .ic-node__icon img { width: 34px; height: 34px; }
    .ic-node--stack .ic-node__title { font-size: 13.5px; }
    .ic-node--stack .ic-node__desc { font-size: 11.5px; }
}

@media (prefers-reduced-motion: reduce) {
    .ic-section__bg,
    .ic-section__glow,
    .ic-link__flow {
        animation: none !important;
    }
    .ic-link__flow { stroke-dasharray: none; stroke-dashoffset: 0; opacity: 0.9; }
    .ic-node { transition: none; opacity: 1; }
}

/* ========================================================================
   CAREERS — JOB APPLICATION MODAL
   Reuses the site's existing .cb-modal / .form-control / .gis-btn classes
   for the shell, inputs and buttons (already themed for light + dark).
   Only the dropzone and the form's field grid are new here.
   ======================================================================== */

.jv-apply-label {
    display: block;
    font-family: var(--heading-font, 'Barlow Semi Condensed', sans-serif);
    font-size: 14px;
    font-weight: 700;
    color: var(--heading-color, #04072e);
    margin: 0 0 10px;
}

.jv-apply-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    margin-bottom: 4px;
}
.jv-apply-grid .form-group { margin-bottom: 18px; }

.jv-apply-drop {
    position: relative;
    border: 2px dashed rgba(4, 7, 46, 0.15);
    border-radius: 14px;
    padding: 26px 20px;
    text-align: center;
    cursor: pointer;
    background: rgba(41, 103, 203, 0.02);
    transition: border-color 0.25s ease, background 0.25s ease, transform 0.15s ease;
    margin-bottom: 8px;
}
.jv-apply-drop--secondary { padding: 18px 20px; }

.jv-apply-drop:hover,
.jv-apply-drop:focus-visible {
    border-color: var(--main-color-two, #2967cb);
    background: rgba(41, 103, 203, 0.05);
    outline: none;
}
.jv-apply-drop.is-dragover {
    border-color: var(--main-color-two, #2967cb);
    background: rgba(41, 103, 203, 0.08);
    transform: scale(1.01);
}
.jv-apply-drop.has-file {
    border-style: solid;
    border-color: var(--green-color, #0a7b0e);
    background: rgba(10, 123, 14, 0.05);
    cursor: default;
}
.jv-apply-drop--multi.has-file {
    padding: 14px;
    text-align: left;
}

/* Read-only "Job Vacancy" field, pre-filled from the vacancy being viewed */
.jv-apply-readonly[readonly] {
    background: rgba(4, 7, 46, 0.035);
    color: var(--paragraph-color, #727777);
    cursor: default;
}
.jv-apply-readonly[readonly]:focus { box-shadow: none !important; }

/* Combined CV + cover letter file list (up to 2 chips) */
.jv-apply-files {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.jv-apply-files:empty { display: none; }

.jv-apply-drop__icon {
    color: var(--main-color-two, #2967cb);
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.jv-apply-drop__text {
    font-family: var(--body-font, 'Open Sans', sans-serif);
    font-size: 13.5px;
    color: var(--heading-color, #04072e);
    margin: 0 0 4px;
}
.jv-apply-drop__text strong { color: var(--heading-color, #04072e); }
.jv-apply-drop__hint {
    font-family: var(--body-font, 'Open Sans', sans-serif);
    font-size: 11.5px;
    color: var(--paragraph-color, #727777);
    margin: 0;
}

.jv-apply-file {
    display: flex;
    align-items: center;
    gap: 10px;
    justify-content: flex-start;
    flex-wrap: nowrap;               /* was: wrap */
    background: rgba(255, 255, 255, 0.65);
    border: 1px solid rgba(4, 7, 46, 0.08);
    border-radius: 10px;
    padding: 9px 12px;
    text-align: left;
}
.jv-apply-file__icon { color: var(--green-color, #0a7b0e); display: flex; flex-shrink: 0; }
.jv-apply-file__tag {
    font-family: var(--heading-font, 'Barlow Semi Condensed', sans-serif);
    font-size: 10.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--main-color-two, #2967cb);
    background: rgba(41, 103, 203, 0.1);
    padding: 3px 9px;
    border-radius: 999px;
    flex-shrink: 0;
}
.jv-apply-file__name {
    font-family: var(--body-font, 'Open Sans', sans-serif);
    font-size: 13.5px;
    font-weight: 600;
    color: var(--heading-color, #04072e);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 1 1 auto;
    min-width: 0;
}
.jv-apply-file__size {
    font-family: var(--body-font, 'Open Sans', sans-serif);
    font-size: 11.5px;
    color: var(--paragraph-color, #727777);
    flex-shrink: 0;
    margin-left: auto;
}
.jv-apply-file__remove {
    border: none;
    background: rgba(175, 11, 7, 0.08);
    color: var(--main-color-one, #af0b07);
    width: 24px;
    height: 24px;
    border-radius: 50%;
    line-height: 1;
    font-size: 16px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s ease;
    flex-shrink: 0;
}
.jv-apply-file__remove:hover { background: rgba(175, 11, 7, 0.16); }

.jv-apply-files__add {
    align-self: flex-start;
    border: 1px dashed rgba(4, 7, 46, 0.2);
    background: transparent;
    color: var(--main-color-two, #2967cb);
    font-family: var(--body-font, 'Open Sans', sans-serif);
    font-size: 12.5px;
    font-weight: 600;
    padding: 7px 14px;
    border-radius: 999px;
    cursor: pointer;
    transition: background 0.2s ease, border-color 0.2s ease;
}
.jv-apply-files__add:hover {
    background: rgba(41, 103, 203, 0.06);
    border-color: var(--main-color-two, #2967cb);
}

.jv-apply-alert {
    margin-top: 16px;
    padding: 12px 16px;
    border-radius: 10px;
    font-family: var(--body-font, 'Open Sans', sans-serif);
    font-size: 13.5px;
    line-height: 1.5;
}

@media (max-width: 576px) {
    .jv-apply-grid { grid-template-columns: 1fr; gap: 0; }
    .jv-apply-drop { padding: 20px 14px; }
}

/* ---------- dark mode ---------- */
[data-theme=dark] .jv-apply-label { color: var(--dm-text-heading); }
[data-theme=dark] .jv-apply-drop {
    border-color: var(--dm-border);
    background: var(--dm-surface-2);
}
[data-theme=dark] .jv-apply-drop:hover,
[data-theme=dark] .jv-apply-drop:focus-visible {
    border-color: var(--main-color-two);
    background: var(--dm-surface-3);
}
[data-theme=dark] .jv-apply-drop.is-dragover {
    border-color: var(--main-color-two);
    background: var(--dm-surface-3);
}
[data-theme=dark] .jv-apply-drop.has-file {
    border-color: var(--green-color);
    background: rgba(0, 121, 55, 0.12);
}
[data-theme=dark] .jv-apply-drop__text,
[data-theme=dark] .jv-apply-file__name { color: var(--dm-text-heading); }
[data-theme=dark] .jv-apply-drop__hint,
[data-theme=dark] .jv-apply-file__size { color: var(--dm-text-muted); }
[data-theme=dark] .jv-apply-file {
    background: var(--dm-surface-3);
    border-color: var(--dm-border);
}
[data-theme=dark] .jv-apply-file__tag {
    background: rgba(91, 155, 255, 0.16);
    color: var(--main-color-two);
}
[data-theme=dark] .jv-apply-file__remove {
    background: rgba(255, 92, 114, 0.12);
    color: var(--main-color-one);
}
[data-theme=dark] .jv-apply-file__remove:hover { background: rgba(255, 92, 114, 0.22); }
[data-theme=dark] .jv-apply-files__add {
    border-color: var(--dm-border);
    color: var(--main-color-two);
}
[data-theme=dark] .jv-apply-files__add:hover {
    background: var(--dm-surface-3);
    border-color: var(--main-color-two);
}
[data-theme=dark] .jv-apply-readonly[readonly] {
    background: var(--dm-surface-2);
    color: var(--dm-text-muted);
    border-color: var(--dm-border) !important;
}

@media (prefers-reduced-motion: reduce) {
    .jv-apply-drop { transition: none; }
    .jv-apply-drop.is-dragover { transform: none; }
}
