:root {
    --tshi-navy: #0B1F3B;
    --tshi-navy-dark: #06152A;
    --tshi-blue: #0066FF;
    --tshi-blue-light: #168CFF;
    --tshi-teal: #00B8A9;
    --tshi-gold: #F4B400;
    --tshi-white: #FFFFFF;
    --tshi-light: #F4F6F8;
    --tshi-border: #E5EAF0;
    --tshi-text: #172033;
    --tshi-muted: #667085;
    --tshi-radius: 14px;
    --tshi-transition: 200ms ease;
}

/* =========================
   GLOBAL
   ========================= */
section[id] {
    scroll-margin-top: 100px;
}

html {
    font-size: 16px;
    scroll-behavior: smooth;
}

body {
    margin: 0;
    padding: 0;
    font-family: 'Montserrat', sans-serif;
    color: var(--tshi-text);
    background: var(--tshi-white);
    -webkit-font-smoothing: antialiased;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: 'Poppins', sans-serif;
    color: var(--tshi-navy);
    font-weight: 700;
}

a {
    text-decoration: none;
    transition: var(--tshi-transition);
}

main {
    overflow: hidden;
}

/* =========================
   HEADER
   ========================= */

.site-header {
    position: relative;
    z-index: 1000;
    width: 100%;
    background: rgba(255, 255, 255, 0.98);
    border-bottom: 1px solid rgba(11, 31, 59, 0.07);
}

.navbar {
    min-height: 88px;
    padding: 10px 0;
}

.navbar-brand {
    display: flex;
    align-items: center;
    padding: 0;
    margin-right: 30px;
}

.brand-logo {
    display: block;
    width: auto;
    height: 62px;
    object-fit: contain;
}


/* =========================
   NAVIGATION
   ========================= */

.navbar-nav {
    gap: 5px;
}

.navbar .nav-link {
    position: relative;
    padding: 12px 11px !important;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.84rem;
    font-weight: 600;
    color: var(--tshi-navy);
}

    .navbar .nav-link:hover {
        color: var(--tshi-blue);
    }

    .navbar .nav-link::after {
        content: "";
        position: absolute;
        left: 11px;
        right: 11px;
        bottom: 5px;
        height: 2px;
        background: var(--tshi-blue);
        transform: scaleX(0);
        transform-origin: center;
        transition: transform var(--tshi-transition);
    }

    .navbar .nav-link:hover::after {
        transform: scaleX(1);
    }

/* =========================
   PRIMARY BUTTON
   ========================= */

.btn-tshimoloho {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-width: 128px;
    min-height: 46px;
    padding: 11px 22px;
    border: 0;
    border-radius: 50px;
    background: linear-gradient( 135deg, var(--tshi-navy), #074E83 );
    color: var(--tshi-white);
    font-family: 'Montserrat', sans-serif;
    font-size: 0.85rem;
    font-weight: 600;
    box-shadow: 0 8px 22px rgba(11, 31, 59, 0.15);
    transition: transform var(--tshi-transition), box-shadow var(--tshi-transition), background var(--tshi-transition);
}

    .btn-tshimoloho:hover {
        color: var(--tshi-white);
        transform: translateY(-2px);
        box-shadow: 0 12px 28px rgba(0, 102, 255, 0.22);
        background: linear-gradient( 135deg, var(--tshi-blue), var(--tshi-teal) );
    }

/* =========================
   MOBILE MENU
   ========================= */

.navbar-toggler {
    border: 0;
    padding: 8px;
}

    .navbar-toggler:focus {
        box-shadow: none;
    }

/* =========================
   UTILITY BRAND CLASSES
   ========================= */

.text-tshi-navy {
    color: var(--tshi-navy) !important;
}

.text-tshi-blue {
    color: var(--tshi-blue) !important;
}

.text-tshi-teal {
    color: var(--tshi-teal) !important;
}

.text-tshi-gold {
    color: var(--tshi-gold) !important;
}

.bg-tshi-navy {
    background: var(--tshi-navy) !important;
}

.bg-tshi-light {
    background: var(--tshi-light) !important;
}

/* =========================
   RESPONSIVE
   ========================= */

@media (max-width: 1199.98px) {

    .navbar .nav-link {
        padding-left: 8px !important;
        padding-right: 8px !important;
        font-size: 0.79rem;
    }

    .brand-logo {
        height: 55px;
    }
}

@media (max-width: 991.98px) {

    .navbar {
        min-height: 76px;
    }

    .brand-logo {
        height: 52px;
    }

    .navbar-collapse {
        margin-top: 12px;
        padding: 20px;
        background: var(--tshi-white);
        border-radius: var(--tshi-radius);
        box-shadow: 0 20px 50px rgba(11, 31, 59, 0.12);
    }

    .navbar-nav {
        gap: 0;
    }

    .navbar .nav-link {
        padding: 12px 4px !important;
        font-size: 0.9rem;
    }

        .navbar .nav-link::after {
            display: none;
        }

    .btn-tshimoloho {
        width: 100%;
        margin-top: 14px;
        margin-left: 0 !important;
    }
}

@media (max-width: 575.98px) {

    .brand-logo {
        height: 46px;
        max-width: 230px;
    }
}

/* =========================================================
   HERO
   ========================================================= */

.hero-section {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: radial-gradient( circle at 80% 30%, rgba(0, 184, 169, 0.12), transparent 25% ), radial-gradient( circle at 60% 20%, rgba(0, 102, 255, 0.13), transparent 30% ), linear-gradient( 120deg, #06152A 0%, #082746 48%, #063B60 100% );
    color: white;
}

    .hero-section::before {
        content: "";
        position: absolute;
        inset: 0;
        background-image: linear-gradient( rgba(255,255,255,0.025) 1px, transparent 1px ), linear-gradient( 90deg, rgba(255,255,255,0.025) 1px, transparent 1px );
        background-size: 70px 70px;
        mask-image: linear-gradient( to right, transparent, black );
        z-index: -1;
    }

.hero-container {
    position: relative;
    z-index: 2;
}

.min-vh-hero {
    min-height: 620px;
    padding-top: 60px;
    padding-bottom: 80px;
}

/* EYEBROW */

.hero-eyebrow {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
    margin-bottom: 24px;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.22em;
    color: rgba(255,255,255,0.75);
}

    .hero-eyebrow i {
        display: inline-block;
        width: 5px;
        height: 5px;
        border-radius: 50%;
        background: var(--tshi-gold);
    }

/* TITLE */

.hero-title {
    margin: 0 0 24px;
    font-size: clamp(3.4rem, 5.4vw, 6rem);
    line-height: 0.93;
    letter-spacing: -0.045em;
    color: white;
}

    .hero-title span {
        display: inline-block;
        background: linear-gradient( 90deg, #19A9FF, #00D5C0 );
        -webkit-background-clip: text;
        background-clip: text;
        color: transparent;
    }

/* SUBTITLE */

.hero-subtitle {
    margin-bottom: 20px;
    font-family: 'Poppins', sans-serif;
    font-size: clamp(1.15rem, 1.5vw, 1.5rem);
    line-height: 1.4;
    font-weight: 500;
    color: white;
}

.hero-description {
    max-width: 650px;
    margin-bottom: 34px;
    font-size: 1rem;
    line-height: 1.8;
    color: rgba(255,255,255,0.72);
}

/* BUTTONS */

.hero-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 15px;
}

.hero-primary-btn,
.hero-secondary-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 13px 25px;
    border-radius: 50px;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.88rem;
    font-weight: 600;
}

.hero-primary-btn {
    gap: 15px;
    color: white;
    border: 1px solid transparent;
    background: linear-gradient( 135deg, var(--tshi-blue), #0087FF );
    box-shadow: 0 14px 35px rgba(0,102,255,0.25);
}

    .hero-primary-btn:hover {
        color: white;
        transform: translateY(-2px);
        background: linear-gradient( 135deg, #0087FF, var(--tshi-teal) );
    }

.hero-secondary-btn {
    color: white;
    border: 1px solid rgba(255,255,255,0.55);
    background: rgba(255,255,255,0.04);
    backdrop-filter: blur(8px);
}

    .hero-secondary-btn:hover {
        color: var(--tshi-navy);
        background: white;
        border-color: white;
    }

/* =========================================================
   HERO VISUAL
   ========================================================= */

.hero-visual {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 430px;
}

.innovation-orbit {
    position: relative;
    width: 390px;
    height: 390px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.orbit-ring {
    position: absolute;
    border-radius: 50%;
    border: 1px solid rgba(56, 198, 255, 0.25);
}

.orbit-ring-one {
    width: 300px;
    height: 300px;
}

.orbit-ring-two {
    width: 390px;
    height: 390px;
    border-color: rgba(0, 184, 169, 0.16);
}

.orbit-core {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 145px;
    height: 145px;
    border-radius: 38px;
    background: linear-gradient( 145deg, #0876F9, #00B8A9 );
    box-shadow: 0 30px 90px rgba(0, 184, 169, 0.30);
    transform: rotate(45deg);
}

    .orbit-core::before {
        content: "";
        position: absolute;
        inset: 7px;
        border-radius: 32px;
        border: 1px solid rgba(255,255,255,0.25);
    }

    .orbit-core span {
        font-family: 'Poppins', sans-serif;
        font-size: 4.5rem;
        font-weight: 700;
        color: white;
        transform: rotate(-45deg);
    }

.orbit-node {
    position: absolute;
    width: 15px;
    height: 15px;
    border-radius: 50%;
    background: var(--tshi-gold);
    box-shadow: 0 0 30px rgba(244,180,0,0.8);
}

.node-one {
    top: 36px;
    right: 80px;
}

.node-two {
    left: 20px;
    bottom: 130px;
    width: 9px;
    height: 9px;
    background: var(--tshi-teal);
}

.node-three {
    right: 30px;
    bottom: 90px;
    width: 7px;
    height: 7px;
    background: #28A7FF;
}

/* BRAND MESSAGE */

.hero-brand-message {
    position: absolute;
    right: -45px;
    bottom: 25px;
    padding-left: 18px;
    border-left: 2px solid var(--tshi-gold);
    font-size: 0.68rem;
    letter-spacing: 0.18em;
    color: rgba(255,255,255,0.62);
}

    .hero-brand-message span,
    .hero-brand-message strong {
        display: block;
    }

    .hero-brand-message strong {
        margin-top: 5px;
        font-size: 0.83rem;
        color: white;
    }

/* =========================================================
   CAPABILITY STRIP
   ========================================================= */

.hero-capabilities {
    position: relative;
    z-index: 4;
    border-top: 1px solid rgba(255,255,255,0.12);
    background: rgba(3, 19, 36, 0.58);
    backdrop-filter: blur(15px);
}

.capability-item {
    display: flex;
    align-items: center;
    gap: 20px;
    min-height: 125px;
    padding: 25px 40px;
    border-right: 1px solid rgba(255,255,255,0.12);
}

    .capability-item:last-child {
        border-right: 0;
    }

.capability-number {
    font-family: 'Poppins', sans-serif;
    font-size: 2rem;
    font-weight: 700;
    color: rgba(255,255,255,0.12);
}

.capability-item h3 {
    margin: 0 0 5px;
    font-size: 1rem;
    color: white;
}

.capability-item p {
    margin: 0;
    font-size: 0.78rem;
    color: rgba(255,255,255,0.58);
}

/* =========================================================
   HERO RESPONSIVE
   ========================================================= */

@media (max-width: 991.98px) {

    .min-vh-hero {
        padding-top: 70px;
        padding-bottom: 30px;
    }

    .hero-content {
        text-align: center;
    }

    .hero-eyebrow,
    .hero-actions {
        justify-content: center;
    }

    .hero-description {
        margin-left: auto;
        margin-right: auto;
    }

    .hero-visual {
        min-height: 400px;
    }

    .hero-brand-message {
        right: 0;
    }

    .capability-item {
        padding-left: 20px;
        padding-right: 20px;
    }
}

@media (max-width: 767.98px) {

    .hero-title {
        font-size: 3.4rem;
    }

    .hero-visual {
        min-height: 350px;
    }

    .innovation-orbit {
        width: 300px;
        height: 300px;
    }

    .orbit-ring-one {
        width: 230px;
        height: 230px;
    }

    .orbit-ring-two {
        width: 300px;
        height: 300px;
    }

    .orbit-core {
        width: 115px;
        height: 115px;
        border-radius: 30px;
    }

        .orbit-core span {
            font-size: 3.6rem;
        }

    .hero-brand-message {
        display: none;
    }

    .capability-item {
        border-right: 0;
        border-bottom: 1px solid rgba(255,255,255,0.1);
    }
}
/* =========================================================
   ADVISORY / WHO WE ARE
   ========================================================= */

.advisory-section {
    position: relative;
    padding: 105px 0;
    background: radial-gradient( circle at 95% 20%, rgba(0, 184, 169, 0.06), transparent 24% ), #ffffff;
}

.section-eyebrow {
    position: relative;
    margin-bottom: 18px;
    padding-left: 35px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.22em;
    color: var(--tshi-blue);
}

    .section-eyebrow::before {
        content: "";
        position: absolute;
        left: 0;
        top: 50%;
        width: 23px;
        height: 2px;
        background: var(--tshi-gold);
    }

.section-title {
    margin-bottom: 25px;
    font-size: clamp(2.2rem, 3.2vw, 3.7rem);
    line-height: 1.08;
    letter-spacing: -0.035em;
    color: var(--tshi-navy);
}

    .section-title span {
        background: linear-gradient( 90deg, var(--tshi-blue), var(--tshi-teal) );
        -webkit-background-clip: text;
        background-clip: text;
        color: transparent;
    }

.section-lead {
    max-width: 570px;
    margin-bottom: 18px;
    font-size: 1rem;
    line-height: 1.8;
    font-weight: 500;
    color: #344054;
}

.section-copy {
    max-width: 570px;
    margin-bottom: 30px;
    font-size: 0.9rem;
    line-height: 1.8;
    color: var(--tshi-muted);
}

.section-link {
    display: inline-flex;
    align-items: center;
    gap: 15px;
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--tshi-navy);
}

    .section-link span {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 32px;
        height: 32px;
        border-radius: 50%;
        color: white;
        background: var(--tshi-blue);
        transition: var(--tshi-transition);
    }

    .section-link:hover {
        color: var(--tshi-blue);
    }

        .section-link:hover span {
            transform: translateX(4px);
            background: var(--tshi-teal);
        }

/* CARDS */

.advisory-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.advisory-card {
    position: relative;
    min-height: 330px;
    padding: 32px 26px;
    overflow: hidden;
    border: 1px solid var(--tshi-border);
    border-radius: 18px;
    background: white;
    box-shadow: 0 18px 50px rgba(11,31,59,0.06);
    transition: transform 250ms ease, box-shadow 250ms ease, border-color 250ms ease;
}

    .advisory-card:hover {
        transform: translateY(-8px);
        border-color: rgba(0,102,255,0.25);
        box-shadow: 0 25px 60px rgba(11,31,59,0.12);
    }

    .advisory-card.featured {
        transform: translateY(-18px);
        color: white;
        border-color: transparent;
        background: linear-gradient( 150deg, #0B1F3B, #064A76 );
        box-shadow: 0 25px 60px rgba(11,31,59,0.18);
    }

        .advisory-card.featured:hover {
            transform: translateY(-25px);
        }

.advisory-card-number {
    position: absolute;
    top: 20px;
    right: 22px;
    font-family: 'Poppins', sans-serif;
    font-size: 2.2rem;
    font-weight: 700;
    color: rgba(11,31,59,0.06);
}

.advisory-card.featured
.advisory-card-number {
    color: rgba(255,255,255,0.08);
}

.advisory-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    margin-bottom: 32px;
    border-radius: 15px;
    font-size: 1.55rem;
    font-weight: 700;
    color: var(--tshi-blue);
    background: rgba(0,102,255,0.08);
}

.advisory-card.featured
.advisory-icon {
    color: white;
    background: linear-gradient( 135deg, var(--tshi-blue), var(--tshi-teal) );
}

.advisory-card h3 {
    margin-bottom: 15px;
    font-size: 1.05rem;
    line-height: 1.35;
    color: var(--tshi-navy);
}

.advisory-card.featured h3 {
    color: white;
}

.advisory-card p {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.7;
    color: var(--tshi-muted);
}

.advisory-card.featured p {
    color: rgba(255,255,255,0.67);
}

.card-accent {
    position: absolute;
    left: 26px;
    bottom: 25px;
    width: 35px;
    height: 3px;
    background: var(--tshi-gold);
}

/* RESPONSIVE */

@media (max-width: 1199.98px) {

    .advisory-grid {
        grid-template-columns: 1fr;
    }

    .advisory-card {
        min-height: 220px;
    }

        .advisory-card.featured {
            transform: none;
        }

            .advisory-card.featured:hover {
                transform: translateY(-8px);
            }
}

@media (max-width: 991.98px) {

    .advisory-section {
        padding: 75px 0;
    }
}

.dark-eyebrow {
    position: relative;
    margin-bottom: 20px;
    padding-left: 35px;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .22em;
    color: #6DDDD3;
}

    .dark-eyebrow::before {
        content: "";
        position: absolute;
        left: 0;
        top: 50%;
        width: 23px;
        height: 2px;
        background: var(--tshi-gold);
    }

.technology-title {
    max-width: 650px;
    margin-bottom: 24px;
    font-size: clamp(2.3rem, 3.5vw, 4rem);
    line-height: 1.08;
    letter-spacing: -.04em;
    color: white;
}

    .technology-title span {
        display: block;
        background: linear-gradient( 90deg, #1AA9FF, #00D4C1 );
        -webkit-background-clip: text;
        background-clip: text;
        color: transparent;
    }

.technology-lead {
    max-width: 620px;
    margin-bottom: 32px;
    font-size: .95rem;
    line-height: 1.85;
    color: rgba(255,255,255,.67);
}

/* TAGS */

.technology-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    max-width: 650px;
    margin-bottom: 35px;
}

    .technology-tags span {
        padding: 9px 14px;
        border: 1px solid rgba(255,255,255,.12);
        border-radius: 30px;
        background: rgba(255,255,255,.045);
        font-size: .72rem;
        font-weight: 600;
        color: rgba(255,255,255,.78);
        backdrop-filter: blur(8px);
    }

        .technology-tags span:hover {
            border-color: rgba(0,184,169,.5);
            background: rgba(0,184,169,.10);
            color: white;
        }

/* LINK */

.technology-link {
    display: inline-flex;
    align-items: center;
    gap: 15px;
    font-size: .82rem;
    font-weight: 700;
    color: white;
}

    .technology-link span {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 34px;
        height: 34px;
        border-radius: 50%;
        background: linear-gradient( 135deg, var(--tshi-blue), var(--tshi-teal) );
    }

    .technology-link:hover {
        color: #6DDDD3;
    }

        .technology-link:hover span {
            transform: translateX(4px);
        }


/* =========================================================
   SOLUTIONS & SERVICES
   ========================================================= */

.services-section {
    position: relative;
    padding: 110px 0 120px;
    background: radial-gradient( circle at 5% 80%, rgba(0,102,255,.05), transparent 25% ), #F7F9FC;
}

/* HEADING */

.services-heading {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(300px, .65fr);
    align-items: end;
    gap: 70px;
    margin-bottom: 65px;
}

    .services-heading .section-title {
        margin-bottom: 0;
    }

.services-intro {
    padding-bottom: 5px;
}

    .services-intro p {
        margin-bottom: 25px;
        font-size: .9rem;
        line-height: 1.8;
        color: var(--tshi-muted);
    }

/* GRID */

.services-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

/* CARD */

.service-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 430px;
    padding: 30px;
    overflow: hidden;
    border: 1px solid #E3E9F0;
    border-radius: 20px;
    background: white;
    box-shadow: 0 15px 45px rgba(11,31,59,.045);
    transition: transform 250ms ease, box-shadow 250ms ease, border-color 250ms ease;
}

    .service-card::after {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        bottom: 0;
        height: 4px;
        background: linear-gradient( 90deg, var(--tshi-blue), var(--tshi-teal) );
        transform: scaleX(0);
        transform-origin: left;
        transition: transform 250ms ease;
    }

    .service-card:hover {
        transform: translateY(-8px);
        border-color: rgba(0,102,255,.20);
        box-shadow: 0 25px 60px rgba(11,31,59,.10);
    }

        .service-card:hover::after {
            transform: scaleX(1);
        }

/* FEATURED CARD */

.service-card-featured {
    color: white;
    border-color: transparent;
    background: linear-gradient( 145deg, #071A32, #07486F );
    box-shadow: 0 25px 60px rgba(11,31,59,.14);
}

    .service-card-featured::before {
        content: "";
        position: absolute;
        width: 230px;
        height: 230px;
        right: -100px;
        top: -100px;
        border-radius: 50%;
        background: rgba(0,184,169,.13);
    }

/* TOP */

.service-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 30px;
}

.service-number {
    font-family: 'Poppins', sans-serif;
    font-size: .65rem;
    font-weight: 700;
    letter-spacing: .16em;
    color: #98A2B3;
}

.service-card-featured
.service-number {
    color: rgba(255,255,255,.40);
}

.service-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border: 1px solid #E3E9F0;
    border-radius: 50%;
    font-size: .85rem;
    color: var(--tshi-navy);
    transition: background 200ms ease, color 200ms ease, transform 200ms ease;
}

.service-card:hover
.service-arrow {
    color: white;
    border-color: var(--tshi-blue);
    background: var(--tshi-blue);
    transform: rotate(45deg);
}

.service-card-featured
.service-arrow {
    color: white;
    border-color: rgba(255,255,255,.20);
}

/* ICON */

.service-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    margin-bottom: 28px;
    border-radius: 16px;
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--tshi-blue);
    background: linear-gradient( 145deg, rgba(0,102,255,.10), rgba(0,184,169,.08) );
}

.service-card-featured
.service-icon {
    color: white;
    background: linear-gradient( 135deg, var(--tshi-blue), var(--tshi-teal) );
}

/* CONTENT */

.service-card h3 {
    margin-bottom: 15px;
    font-size: 1.15rem;
    line-height: 1.35;
    color: var(--tshi-navy);
}

.service-card-featured h3 {
    color: white;
}

.service-card > p {
    margin-bottom: 25px;
    font-size: .81rem;
    line-height: 1.75;
    color: var(--tshi-muted);
}

.service-card-featured > p {
    color: rgba(255,255,255,.64);
}

/* SERVICE TAGS */

.service-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: auto;
}

    .service-tags span {
        padding: 6px 9px;
        border: 1px solid #E4E9EF;
        border-radius: 20px;
        background: #F8FAFC;
        font-size: .61rem;
        font-weight: 600;
        color: #667085;
    }

.service-card-featured
.service-tags span {
    border-color: rgba(255,255,255,.12);
    background: rgba(255,255,255,.055);
    color: rgba(255,255,255,.65);
}

/* REVENUE CARD SPECIAL ACCENT */

.revenue-card .service-icon {
    color: #9A7000;
    background: rgba(244,180,0,.12);
}

/* RESPONSIVE */

@media (max-width: 1199.98px) {

    .services-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {

    .services-section {
        padding: 80px 0;
    }

    .services-heading {
        grid-template-columns: 1fr;
        gap: 25px;
        margin-bottom: 45px;
    }

    .services-intro {
        max-width: 600px;
    }
}

@media (max-width: 767.98px) {

    .services-grid {
        grid-template-columns: 1fr;
    }

    .service-card {
        min-height: 380px;
    }
}

/* =========================================================
   FEATURED SOLUTIONS
   ========================================================= */

.featured-solutions-section {
    position: relative;
    overflow: hidden;
    padding: 110px 0 120px;
    background: radial-gradient( circle at 10% 15%, rgba(0,102,255,.12), transparent 25% ), radial-gradient( circle at 90% 70%, rgba(0,184,169,.10), transparent 25% ), linear-gradient( 125deg, #06152A, #082944 60%, #063654 );
}

    .featured-solutions-section::before {
        content: "";
        position: absolute;
        inset: 0;
        background-image: linear-gradient( rgba(255,255,255,.02) 1px, transparent 1px ), linear-gradient( 90deg, rgba(255,255,255,.02) 1px, transparent 1px );
        background-size: 65px 65px;
        pointer-events: none;
    }

    .featured-solutions-section .container {
        position: relative;
        z-index: 2;
    }

/* HEADER */

.featured-solutions-header {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(300px, .6fr);
    align-items: end;
    gap: 70px;
    margin-bottom: 60px;
}

.solutions-title {
    margin: 0;
    font-size: clamp(2.4rem, 3.5vw, 4rem);
    line-height: 1.07;
    letter-spacing: -.04em;
    color: white;
}

    .solutions-title span {
        display: block;
        background: linear-gradient( 90deg, #1BA9FF, #00D4C1 );
        -webkit-background-clip: text;
        background-clip: text;
        color: transparent;
    }

.solutions-header-copy p {
    margin-bottom: 22px;
    font-size: .88rem;
    line-height: 1.8;
    color: rgba(255,255,255,.62);
}

.solutions-view-link {
    display: inline-flex;
    align-items: center;
    gap: 13px;
    font-size: .78rem;
    font-weight: 700;
    color: white;
}

    .solutions-view-link span {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 31px;
        height: 31px;
        border-radius: 50%;
        background: linear-gradient( 135deg, var(--tshi-blue), var(--tshi-teal) );
    }

    .solutions-view-link:hover {
        color: #6DDDD3;
    }


.solution-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.solution-category {
    font-size: .56rem;
    font-weight: 700;
    letter-spacing: .17em;
    color: #6DDDD3;
}

.solution-card-number {
    font-family: 'Poppins', sans-serif;
    font-size: .65rem;
    font-weight: 700;
    color: rgba(255,255,255,.30);
}


.visual-data-c {
    bottom: 30px;
    left: 55px;
}

/* CONTENT */

.solution-card-content h3,
.solution-horizontal h3,
.solution-small h3 {
    color: white;
}

.solution-card-content h3 {
    margin-bottom: 14px;
    font-size: 1.55rem;
    line-height: 1.25;
}

.solution-card-content p,
.solution-horizontal p,
.solution-small p {
    color: rgba(255,255,255,.58);
}

.solution-card-content p {
    margin-bottom: 20px;
    font-size: .79rem;
    line-height: 1.75;
}

.solution-features {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-bottom: 23px;
}

    .solution-features span {
        padding: 6px 9px;
        border: 1px solid rgba(255,255,255,.10);
        border-radius: 20px;
        background: rgba(255,255,255,.04);
        font-size: .56rem;
        font-weight: 600;
        color: rgba(255,255,255,.58);
    }

.solution-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: .7rem;
    font-weight: 700;
    color: white;
}

    .solution-link span {
        color: var(--tshi-gold);
    }

    .solution-link:hover {
        color: #6DDDD3;
    }


/* =========================================================
   FINAL CTA
   ========================================================= */

.final-cta-section {
    padding: 100px 0;
    background: linear-gradient( 180deg, #F7F9FC, #FFFFFF );
}

.final-cta {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(320px, .7fr);
    align-items: center;
    min-height: 440px;
    padding: 65px 70px;
    overflow: hidden;
    border-radius: 28px;
    background: linear-gradient( 125deg, #06152A 0%, #082E4D 55%, #075173 100% );
    box-shadow: 0 35px 80px rgba(11,31,59,.17);
}

    .final-cta::before {
        content: "";
        position: absolute;
        inset: 0;
        background-image: linear-gradient( rgba(255,255,255,.025) 1px, transparent 1px ), linear-gradient( 90deg, rgba(255,255,255,.025) 1px, transparent 1px );
        background-size: 55px 55px;
        pointer-events: none;
    }

.cta-content {
    position: relative;
    z-index: 3;
    max-width: 650px;
}

.cta-eyebrow {
    position: relative;
    margin-bottom: 18px;
    padding-left: 35px;
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .20em;
    color: #6DDDD3;
}

    .cta-eyebrow::before {
        content: "";
        position: absolute;
        left: 0;
        top: 50%;
        width: 23px;
        height: 2px;
        background: var(--tshi-gold);
    }

.cta-content h2 {
    margin-bottom: 20px;
    font-size: clamp(2.5rem, 4vw, 4.6rem);
    line-height: 1.02;
    letter-spacing: -.045em;
    color: white;
}

    .cta-content h2 span {
        background: linear-gradient( 90deg, #1AA9FF, #00D4C1 );
        -webkit-background-clip: text;
        background-clip: text;
        color: transparent;
    }

.cta-content p {
    max-width: 580px;
    margin-bottom: 30px;
    font-size: .88rem;
    line-height: 1.8;
    color: rgba(255,255,255,.62);
}

/* CTA BUTTONS */

.cta-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.cta-primary,
.cta-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: 12px 23px;
    border-radius: 30px;
    font-size: .77rem;
    font-weight: 700;
}

.cta-primary {
    gap: 14px;
    color: white;
    background: linear-gradient( 135deg, var(--tshi-blue), var(--tshi-teal) );
    box-shadow: 0 12px 30px rgba(0,102,255,.20);
}

    .cta-primary:hover {
        color: white;
        transform: translateY(-2px);
    }

.cta-secondary {
    color: white;
    border: 1px solid rgba(255,255,255,.28);
    background: rgba(255,255,255,.04);
}

    .cta-secondary:hover {
        color: var(--tshi-navy);
        background: white;
    }

/* =========================================================
   CTA GRAPHIC
   ========================================================= */

.cta-graphic {
    position: relative;
    z-index: 2;
    width: 330px;
    height: 330px;
    justify-self: end;
}

.cta-orbit {
    position: absolute;
    top: 50%;
    left: 50%;
    border-radius: 50%;
    border: 1px solid rgba(57,185,255,.18);
    transform: translate(-50%, -50%);
}

.cta-orbit-one {
    width: 310px;
    height: 310px;
}

.cta-orbit-two {
    width: 225px;
    height: 225px;
    border-color: rgba(0,184,169,.24);
}

.cta-orbit-three {
    width: 150px;
    height: 150px;
}

.cta-core {
    position: absolute;
    top: 50%;
    left: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 105px;
    height: 105px;
    border-radius: 28px;
    background: linear-gradient( 135deg, var(--tshi-blue), var(--tshi-teal) );
    box-shadow: 0 25px 60px rgba(0,184,169,.28);
    transform: translate(-50%, -50%) rotate(45deg);
}

    .cta-core span {
        font-family: 'Poppins', sans-serif;
        font-size: 3rem;
        font-weight: 700;
        color: white;
        transform: rotate(-45deg);
    }

.cta-node {
    position: absolute;
    border-radius: 50%;
}

.cta-node-one {
    top: 35px;
    right: 75px;
    width: 10px;
    height: 10px;
    background: var(--tshi-gold);
    box-shadow: 0 0 20px rgba(244,180,0,.75);
}

.cta-node-two {
    left: 18px;
    bottom: 110px;
    width: 7px;
    height: 7px;
    background: var(--tshi-teal);
}

.cta-node-three {
    right: 35px;
    bottom: 70px;
    width: 6px;
    height: 6px;
    background: #2BA9FF;
}

.cta-message {
    position: absolute;
    right: 0;
    bottom: 25px;
    padding-left: 15px;
    border-left: 2px solid var(--tshi-gold);
}

    .cta-message small,
    .cta-message strong {
        display: block;
    }

    .cta-message small {
        margin-bottom: 3px;
        font-size: .48rem;
        letter-spacing: .17em;
        color: rgba(255,255,255,.48);
    }

    .cta-message strong {
        font-family: 'Poppins', sans-serif;
        font-size: .8rem;
        color: white;
    }

/* =========================================================
   FOOTER
   ========================================================= */

.site-footer {
    position: relative;
    padding: 75px 0 0;
    background: #041222;
    color: rgba(255,255,255,.60);
}

.footer-main {
    display: grid;
    grid-template-columns: 1.6fr repeat(4, minmax(130px, 1fr));
    gap: 45px;
    padding-bottom: 60px;
}

/* BRAND */

.footer-brand {
    max-width: 310px;
}

.footer-logo {
    display: inline-block;
    margin-bottom: 22px;
}

    .footer-logo img {
        display: block;
        width: auto;
        height: 60px;
        object-fit: contain;
    }

.footer-brand-copy {
    margin-bottom: 22px;
    font-size: .72rem;
    line-height: 1.8;
    color: rgba(255,255,255,.46);
}

.footer-tagline {
    font-family: 'Poppins', sans-serif;
    font-size: .61rem;
    font-weight: 700;
    letter-spacing: .16em;
    color: #6DDDD3;
}

/* COLUMNS */

.footer-column {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

    .footer-column h4 {
        margin-bottom: 20px;
        font-size: .78rem;
        color: white;
    }

    .footer-column > a {
        margin-bottom: 11px;
        font-size: .66rem;
        color: rgba(255,255,255,.48);
    }

        .footer-column > a:hover {
            color: #6DDDD3;
            transform: translateX(3px);
        }

/* CONTACT */

.footer-contact p {
    margin-bottom: 16px;
    font-size: .66rem;
    line-height: 1.7;
    color: rgba(255,255,255,.45);
}

.footer-contact .footer-email {
    color: #6DDDD3;
}

.footer-social {
    display: flex;
    gap: 8px;
    margin-top: 12px;
}

    .footer-social a {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 32px;
        height: 32px;
        margin: 0;
        border: 1px solid rgba(255,255,255,.12);
        border-radius: 50%;
        font-size: .67rem;
        font-weight: 700;
        color: white;
        background: rgba(255,255,255,.04);
    }

        .footer-social a:hover {
            color: white;
            border-color: var(--tshi-blue);
            background: var(--tshi-blue);
            transform: translateY(-2px);
        }

/* BOTTOM */
.footer-email-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
    border: 1px solid rgba(109, 221, 211, .25);
    border-radius: 50%;
    background: rgba(0, 184, 169, .08);
    color: #6DDDD3;
    transition: background 200ms ease, border-color 200ms ease, color 200ms ease;
}

.footer-email:hover .footer-email-icon {
    color: #FFFFFF;
    border-color: var(--tshi-teal);
    background: var(--tshi-teal);
}

.footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    min-height: 75px;
    border-top: 1px solid rgba(255,255,255,.08);
    font-size: .58rem;
    color: rgba(255,255,255,.32);
}

.footer-legal {
    display: flex;
    gap: 20px;
}

    .footer-legal a {
        color: rgba(255,255,255,.35);
    }

        .footer-legal a:hover {
            color: white;
        }

/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 1199.98px) {

    .footer-main {
        grid-template-columns: 1.5fr repeat(2, 1fr);
    }
}

@media (max-width: 991.98px) {

    .final-cta-section {
        padding: 75px 0;
    }

    .final-cta {
        grid-template-columns: 1fr;
        padding: 50px;
    }

    .cta-graphic {
        justify-self: center;
        margin-top: 30px;
    }
}

@media (max-width: 767.98px) {

    .footer-main {
        grid-template-columns: repeat(2, 1fr);
    }

    .footer-brand {
        grid-column: 1 / -1;
    }
}

@media (max-width: 575.98px) {

    .final-cta {
        padding: 35px 25px;
    }

    .cta-graphic {
        width: 270px;
        height: 270px;
    }

    .cta-orbit-one {
        width: 260px;
        height: 260px;
    }

    .cta-orbit-two {
        width: 190px;
        height: 190px;
    }

    .footer-main {
        grid-template-columns: 1fr;
    }

    .footer-bottom {
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        padding: 20px 0;
    }
}


/* =========================================================
   INTERNAL PAGE HERO
   ========================================================= */

.page-hero {
    position: relative;
    overflow: hidden;
    padding: 105px 0 115px;
    background: radial-gradient(circle at 80% 25%, rgba(0,184,169,.13), transparent 24%), radial-gradient(circle at 20% 80%, rgba(0,102,255,.13), transparent 28%), linear-gradient(135deg, #041222 0%, #071C34 55%, #083B5D 100%);
}

.page-hero-grid {
    position: absolute;
    inset: 0;
    opacity: .55;
    background-image: linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
    background-size: 60px 60px;
}

.page-hero-glow {
    position: absolute;
    border-radius: 50%;
    filter: blur(20px);
    pointer-events: none;
}

.page-hero-glow-one {
    width: 380px;
    height: 380px;
    top: -200px;
    right: 8%;
    background: rgba(0,102,255,.10);
}

.page-hero-glow-two {
    width: 300px;
    height: 300px;
    bottom: -180px;
    left: 10%;
    background: rgba(0,184,169,.09);
}

.page-eyebrow {
    margin-bottom: 20px;
    font-size: .65rem;
    font-weight: 700;
    letter-spacing: .18em;
    color: #6DDDD3;
}

.page-hero-title {
    margin-bottom: 25px;
    font-size: clamp(3rem, 5.5vw, 5.7rem);
    line-height: .98;
    letter-spacing: -.055em;
    color: #FFFFFF;
}

    .page-hero-title span {
        color: #6DDDD3;
    }

.page-hero-lead {
    max-width: 680px;
    margin-bottom: 32px;
    font-size: .95rem;
    line-height: 1.85;
    color: rgba(255,255,255,.65);
}

.page-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 13px;
}

.page-primary-btn,
.page-secondary-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 48px;
    padding: 12px 23px;
    border-radius: 50px;
    font-size: .78rem;
    font-weight: 600;
}

.page-primary-btn {
    background: linear-gradient(135deg, var(--tshi-blue), var(--tshi-teal));
    color: #FFFFFF;
    box-shadow: 0 12px 30px rgba(0,102,255,.20);
}

    .page-primary-btn:hover {
        color: #FFFFFF;
        transform: translateY(-2px);
    }

.page-secondary-btn {
    border: 1px solid rgba(255,255,255,.18);
    color: #FFFFFF;
    background: rgba(255,255,255,.04);
}

    .page-secondary-btn:hover {
        color: #FFFFFF;
        border-color: rgba(255,255,255,.35);
        background: rgba(255,255,255,.08);
    }


/* =========================================================
   ABOUT HERO CONCEPT
   ========================================================= */

.about-hero-concept {
    position: relative;
    width: min(440px, 100%);
    aspect-ratio: 1 / 1;
    margin-left: auto;
}

.about-concept-ring {
    position: absolute;
    border: 1px solid rgba(109,221,211,.18);
    border-radius: 50%;
}

    .about-concept-ring.ring-one {
        inset: 8%;
    }

    .about-concept-ring.ring-two {
        inset: 22%;
        border-color: rgba(0,102,255,.27);
    }

    .about-concept-ring.ring-three {
        inset: 35%;
        border-color: rgba(244,180,0,.20);
    }

.about-concept-core {
    position: absolute;
    top: 50%;
    left: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 90px;
    height: 90px;
    transform: translate(-50%, -50%);
    border-radius: 24px;
    background: linear-gradient(135deg, var(--tshi-blue), var(--tshi-teal));
    box-shadow: 0 20px 55px rgba(0,184,169,.22);
}

    .about-concept-core span {
        font-family: 'Poppins', sans-serif;
        font-size: 2.5rem;
        font-weight: 700;
        color: #FFFFFF;
    }

.about-concept-point {
    position: absolute;
    min-width: 115px;
    padding: 11px 14px;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 12px;
    background: rgba(5,20,38,.82);
    backdrop-filter: blur(10px);
}

    .about-concept-point span,
    .about-concept-point strong {
        display: block;
    }

    .about-concept-point span {
        margin-bottom: 2px;
        font-size: .45rem;
        color: var(--tshi-gold);
    }

    .about-concept-point strong {
        font-size: .52rem;
        letter-spacing: .08em;
        color: rgba(255,255,255,.78);
    }

.point-one {
    top: 5%;
    left: 33%;
}

.point-two {
    top: 39%;
    right: -2%;
}

.point-three {
    bottom: 7%;
    left: 34%;
}

.point-four {
    top: 42%;
    left: -8%;
}


/* =========================================================
   ABOUT STORY
   ========================================================= */

.about-story-section {
    padding: 110px 0;
    background: #FFFFFF;
}

.about-story-copy {
    max-width: 750px;
}

    .about-story-copy p {
        font-size: .87rem;
        line-height: 1.9;
        color: var(--tshi-muted);
    }

.about-story-lead {
    font-size: 1.08rem !important;
    font-weight: 500;
    line-height: 1.8 !important;
    color: var(--tshi-text) !important;
}

.about-brand-quote {
    margin-top: 35px;
    padding: 28px 30px;
    border-left: 3px solid var(--tshi-teal);
    border-radius: 0 15px 15px 0;
    background: var(--tshi-light);
}

    .about-brand-quote span,
    .about-brand-quote strong {
        display: block;
    }

    .about-brand-quote span {
        margin-bottom: 7px;
        font-size: .55rem;
        font-weight: 700;
        letter-spacing: .15em;
        color: var(--tshi-blue);
    }

    .about-brand-quote strong {
        font-family: 'Poppins', sans-serif;
        font-size: 1.2rem;
        line-height: 1.5;
        color: var(--tshi-navy);
    }


/* =========================================================
   POSITIONING
   ========================================================= */

.about-position-section {
    padding: 110px 0;
    background: linear-gradient(135deg, #041222, #082C49);
}

.about-position-heading {
    max-width: 780px;
    margin-bottom: 55px;
}

    .about-position-heading h2 {
        margin-bottom: 18px;
        font-size: clamp(2.2rem, 4vw, 4rem);
        line-height: 1.08;
        letter-spacing: -.045em;
        color: #FFFFFF;
    }

        .about-position-heading h2 span {
            color: #6DDDD3;
        }

    .about-position-heading p {
        max-width: 680px;
        margin: 0;
        font-size: .87rem;
        line-height: 1.85;
        color: rgba(255,255,255,.58);
    }

.about-position-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}

.about-position-card {
    position: relative;
    min-height: 310px;
    padding: 30px;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 19px;
    background: rgba(255,255,255,.045);
}

    .about-position-card.featured {
        background: linear-gradient(145deg, rgba(0,102,255,.16), rgba(0,184,169,.10));
        border-color: rgba(109,221,211,.20);
    }

.about-position-number {
    position: absolute;
    top: 25px;
    right: 28px;
    font-size: .55rem;
    font-weight: 700;
    color: rgba(255,255,255,.28);
}

.about-position-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    margin-bottom: 45px;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--tshi-blue), var(--tshi-teal));
    color: #FFFFFF;
}

.about-position-card h3 {
    margin-bottom: 13px;
    font-size: 1rem;
    color: #FFFFFF;
}

.about-position-card p {
    margin: 0;
    font-size: .72rem;
    line-height: 1.75;
    color: rgba(255,255,255,.55);
}


/* =========================================================
   PURPOSE
   ========================================================= */

.about-purpose-section {
    padding: 110px 0;
    background: #FFFFFF;
}

.about-purpose-lead {
    font-size: .95rem;
    line-height: 1.8;
    color: var(--tshi-text);
}

.about-purpose-copy {
    font-size: .82rem;
    line-height: 1.85;
    color: var(--tshi-muted);
}

.purpose-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
}

.purpose-card {
    min-height: 225px;
    padding: 27px;
    border: 1px solid var(--tshi-border);
    border-radius: 18px;
    background: var(--tshi-light);
}

.purpose-card-accent {
    background: linear-gradient(145deg, #06152A, #084A70);
    border-color: transparent;
}

.purpose-card > span {
    display: block;
    margin-bottom: 25px;
    font-size: .5rem;
    font-weight: 700;
    letter-spacing: .15em;
    color: var(--tshi-blue);
}

.purpose-card h3 {
    margin-bottom: 12px;
    font-size: .95rem;
    line-height: 1.45;
}

.purpose-card p {
    margin: 0;
    font-size: .68rem;
    line-height: 1.75;
    color: var(--tshi-muted);
}

.purpose-card-accent > span {
    color: #6DDDD3;
}

.purpose-card-accent h3 {
    color: #FFFFFF;
}

.purpose-card-accent p {
    color: rgba(255,255,255,.57);
}


/* =========================================================
   VALUES
   ========================================================= */

.about-values-section {
    padding: 110px 0;
    background: var(--tshi-light);
}

.about-values-heading {
    display: grid;
    grid-template-columns: 1fr .65fr;
    align-items: end;
    gap: 60px;
    margin-bottom: 50px;
}

    .about-values-heading > p {
        margin: 0;
        font-size: .82rem;
        line-height: 1.8;
        color: var(--tshi-muted);
    }

.about-values-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border-top: 1px solid #DDE3EA;
    border-bottom: 1px solid #DDE3EA;
}

.about-value {
    min-height: 230px;
    padding: 30px 27px;
    border-right: 1px solid #DDE3EA;
}

    .about-value:last-child {
        border-right: 0;
    }

.value-index {
    display: block;
    margin-bottom: 45px;
    font-size: .55rem;
    font-weight: 700;
    color: var(--tshi-blue);
}

.about-value h3 {
    margin-bottom: 12px;
    font-size: .95rem;
}

.about-value p {
    margin: 0;
    font-size: .68rem;
    line-height: 1.75;
    color: var(--tshi-muted);
}


/* =========================================================
   DELIVERY
   ========================================================= */

.about-delivery-section {
    padding: 110px 0;
    background: #FFFFFF;
}

.about-delivery-panel {
    display: grid;
    grid-template-columns: .75fr 1.25fr;
    align-items: center;
    gap: 65px;
    padding: 55px;
    border-radius: 24px;
    background: linear-gradient(135deg, #06152A, #083B5D);
}

.about-delivery-intro h2 {
    margin-bottom: 15px;
    font-size: clamp(1.8rem, 3vw, 3rem);
    line-height: 1.1;
    color: #FFFFFF;
}

    .about-delivery-intro h2 span {
        color: #6DDDD3;
    }

.about-delivery-intro p {
    margin: 0;
    font-size: .75rem;
    line-height: 1.8;
    color: rgba(255,255,255,.56);
}

.about-delivery-flow {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.about-flow-item {
    flex: 1;
    text-align: center;
}

.about-flow-number {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    margin: 0 auto 13px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--tshi-blue), var(--tshi-teal));
    font-size: .55rem;
    font-weight: 700;
    color: #FFFFFF;
}

.about-flow-item small,
.about-flow-item strong {
    display: block;
}

.about-flow-item small {
    margin-bottom: 4px;
    font-size: .43rem;
    letter-spacing: .1em;
    color: rgba(255,255,255,.35);
}

.about-flow-item strong {
    font-family: 'Poppins', sans-serif;
    font-size: .72rem;
    color: #FFFFFF;
}

.about-flow-arrow {
    color: var(--tshi-gold);
}


/* =========================================================
   ABOUT CTA
   ========================================================= */

.about-cta-section {
    padding: 0 0 110px;
    background: #FFFFFF;
}

.about-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 50px;
    padding: 48px 55px;
    border: 1px solid var(--tshi-border);
    border-radius: 22px;
    background: var(--tshi-light);
}

    .about-cta > div > span {
        display: block;
        margin-bottom: 9px;
        font-size: .53rem;
        font-weight: 700;
        letter-spacing: .15em;
        color: var(--tshi-blue);
    }

    .about-cta h2 {
        margin-bottom: 10px;
        font-size: 1.7rem;
    }

    .about-cta p {
        max-width: 650px;
        margin: 0;
        font-size: .76rem;
        line-height: 1.7;
        color: var(--tshi-muted);
    }

    .about-cta .cta-primary {
        flex: 0 0 auto;
    }


/* =========================================================
   ABOUT RESPONSIVE
   ========================================================= */

@media (max-width: 991.98px) {

    .page-hero {
        padding: 80px 0;
    }

    .about-hero-concept {
        margin: 25px auto 0;
        max-width: 390px;
    }

    .about-position-grid {
        grid-template-columns: 1fr;
    }

    .about-position-card {
        min-height: auto;
    }

    .about-values-heading {
        grid-template-columns: 1fr;
        gap: 15px;
    }

    .about-values-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .about-value:nth-child(2) {
        border-right: 0;
    }

    .about-delivery-panel {
        grid-template-columns: 1fr;
    }

    .about-cta {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 767.98px) {

    .about-story-section,
    .about-position-section,
    .about-purpose-section,
    .about-values-section,
    .about-delivery-section {
        padding: 80px 0;
    }

    .purpose-grid {
        grid-template-columns: 1fr;
    }

    .about-values-grid {
        grid-template-columns: 1fr;
    }

    .about-value {
        min-height: auto;
        border-right: 0;
        border-bottom: 1px solid #DDE3EA;
    }

        .about-value:last-child {
            border-bottom: 0;
        }

    .about-delivery-flow {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 18px;
    }

    .about-flow-arrow {
        display: none;
    }

    .about-delivery-panel {
        padding: 38px 28px;
    }

    .about-cta-section {
        padding-bottom: 80px;
    }

    .about-cta {
        padding: 35px 28px;
    }
}

@media (max-width: 575.98px) {

    .page-hero-title {
        font-size: 2.75rem;
    }

    .about-concept-point {
        min-width: 100px;
        padding: 9px 10px;
    }

    .point-four {
        left: -2%;
    }

    .point-two {
        right: 0;
    }

    .about-delivery-flow {
        grid-template-columns: 1fr;
    }
}


/* =========================================================
   REFINED HOME PAGE
   ========================================================= */

.home-section-action {
    display: flex;
    justify-content: center;
    margin-top: 40px;
}


/* =========================================================
   HOME FEATURED SOLUTIONS
   ========================================================= */

.home-solutions-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.home-solution-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 410px;
    padding: 30px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 20px;
    background: rgba(255,255,255,.055);
    box-shadow: 0 20px 50px rgba(0,0,0,.10);
    transition: transform 220ms ease, border-color 220ms ease, background 220ms ease;
}

    .home-solution-card:hover {
        transform: translateY(-7px);
        border-color: rgba(0,184,169,.35);
        background: rgba(255,255,255,.075);
    }

.home-solution-primary {
    background: linear-gradient( 145deg, rgba(0,102,255,.16), rgba(0,184,169,.08) );
}

.home-solution-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    margin: 45px 0 25px;
    border-radius: 16px;
    background: linear-gradient( 135deg, var(--tshi-blue), var(--tshi-teal) );
    box-shadow: 0 15px 35px rgba(0,184,169,.17);
    font-size: 1.5rem;
    color: white;
}

    .home-solution-icon.gold {
        background: linear-gradient( 135deg, var(--tshi-gold), #E79A00 );
    }

.home-solution-card h3 {
    margin-bottom: 14px;
    font-size: 1.15rem;
    line-height: 1.4;
    color: white;
}

.home-solution-card > p {
    margin-bottom: 22px;
    font-size: .75rem;
    line-height: 1.75;
    color: rgba(255,255,255,.58);
}

.home-solution-card .solution-link {
    margin-top: auto;
}


/* =========================================================
   HOME INDUSTRIES
   ========================================================= */

.home-industries-section {
    position: relative;
    padding: 110px 0;
    background: #FFFFFF;
}

.home-industries-intro {
    max-width: 520px;
    margin-left: auto;
}

    .home-industries-intro p {
        margin-bottom: 22px;
        font-size: .87rem;
        line-height: 1.8;
        color: var(--tshi-muted);
    }

.home-industry-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.home-industry-card {
    position: relative;
    min-height: 300px;
    padding: 28px;
    overflow: hidden;
    border: 1px solid var(--tshi-border);
    border-radius: 19px;
    background: #FFFFFF;
    box-shadow: 0 15px 40px rgba(11,31,59,.045);
    transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}

    .home-industry-card:hover {
        transform: translateY(-7px);
        border-color: rgba(0,102,255,.20);
        box-shadow: 0 24px 55px rgba(11,31,59,.09);
    }

    .home-industry-card.featured {
        color: white;
        border-color: transparent;
        background: linear-gradient( 145deg, #06152A, #084A70 );
    }

.home-industry-number {
    position: absolute;
    top: 22px;
    right: 24px;
    font-family: 'Poppins', sans-serif;
    font-size: .62rem;
    font-weight: 700;
    color: #98A2B3;
}

.home-industry-card.featured
.home-industry-number {
    color: rgba(255,255,255,.30);
}

.home-industry-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    margin-bottom: 38px;
    border-radius: 14px;
    background: rgba(0,102,255,.08);
    font-size: 1.25rem;
    color: var(--tshi-blue);
}

.home-industry-card.featured
.home-industry-icon {
    color: white;
    background: linear-gradient( 135deg, var(--tshi-blue), var(--tshi-teal) );
}

.home-industry-label {
    display: block;
    margin-bottom: 9px;
    font-size: .52rem;
    font-weight: 700;
    letter-spacing: .16em;
    color: #6DDDD3;
}

.home-industry-card h3 {
    margin-bottom: 13px;
    font-size: 1rem;
    line-height: 1.4;
    color: var(--tshi-navy);
}

.home-industry-card.featured h3 {
    color: white;
}

.home-industry-card p {
    margin: 0;
    font-size: .7rem;
    line-height: 1.7;
    color: var(--tshi-muted);
}

.home-industry-card.featured p {
    color: rgba(255,255,255,.58);
}


/* =========================================================
   HOME WHY TSHIMOLOHO
   ========================================================= */

.home-why-section {
    position: relative;
    padding: 35px 0 110px;
    background: #FFFFFF;
}

.home-why-panel {
    position: relative;
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    align-items: center;
    gap: 65px;
    padding: 60px;
    overflow: hidden;
    border-radius: 25px;
    background: radial-gradient( circle at 85% 30%, rgba(0,184,169,.13), transparent 25% ), linear-gradient( 125deg, #06152A, #083B5D );
    box-shadow: 0 30px 70px rgba(11,31,59,.14);
}

    .home-why-panel::before {
        content: "";
        position: absolute;
        inset: 0;
        background-image: linear-gradient( rgba(255,255,255,.025) 1px, transparent 1px ), linear-gradient( 90deg, rgba(255,255,255,.025) 1px, transparent 1px );
        background-size: 55px 55px;
        pointer-events: none;
    }

.home-why-copy,
.home-delivery-process {
    position: relative;
    z-index: 2;
}

    .home-why-copy h2 {
        margin-bottom: 18px;
        font-size: clamp(2rem, 3vw, 3.2rem);
        line-height: 1.08;
        letter-spacing: -.04em;
        color: white;
    }

        .home-why-copy h2 span {
            color: #6DDDD3;
        }

    .home-why-copy p {
        max-width: 500px;
        margin-bottom: 28px;
        font-size: .8rem;
        line-height: 1.8;
        color: rgba(255,255,255,.58);
    }


/* PROCESS */

.home-delivery-process {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.home-delivery-step {
    flex: 1;
    min-width: 105px;
    padding: 22px 15px;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 15px;
    background: rgba(255,255,255,.055);
    text-align: center;
}

.home-step-number {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    margin: 0 auto 14px;
    border-radius: 50%;
    background: linear-gradient( 135deg, var(--tshi-blue), var(--tshi-teal) );
    font-family: 'Poppins', sans-serif;
    font-size: .55rem;
    font-weight: 700;
    color: white;
}

.home-delivery-step small,
.home-delivery-step strong {
    display: block;
}

.home-delivery-step small {
    margin-bottom: 4px;
    font-size: .44rem;
    font-weight: 700;
    letter-spacing: .12em;
    color: rgba(255,255,255,.37);
}

.home-delivery-step strong {
    font-family: 'Poppins', sans-serif;
    font-size: .72rem;
    color: white;
}

.home-process-arrow {
    flex: 0 0 auto;
    color: var(--tshi-gold);
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 1199.98px) {

    .home-industry-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .home-why-panel {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 991.98px) {

    .home-solutions-grid {
        grid-template-columns: 1fr;
    }

    .home-solution-card {
        min-height: 350px;
    }

    .home-industries-section {
        padding: 80px 0;
    }

    .home-industries-intro {
        margin: 25px 0 0;
    }

    .home-why-section {
        padding-bottom: 80px;
    }

    .home-why-panel {
        padding: 45px 35px;
    }
}

@media (max-width: 767.98px) {

    .home-industry-grid {
        grid-template-columns: 1fr;
    }

    .home-delivery-process {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .home-process-arrow {
        display: none;
    }
}

@media (max-width: 575.98px) {

    .home-why-panel {
        padding: 35px 25px;
    }

    .home-delivery-process {
        grid-template-columns: 1fr;
    }
}
/* =========================================================
   SERVICES PAGE
   ========================================================= */

/* HERO VISUAL */

.services-hero-visual {
    position: relative;
    width: min(450px, 100%);
    aspect-ratio: 1 / 1;
    margin-left: auto;
}

    .services-hero-visual::before,
    .services-hero-visual::after {
        content: "";
        position: absolute;
        border-radius: 50%;
        border: 1px solid rgba(109, 221, 211, .13);
    }

    .services-hero-visual::before {
        inset: 17%;
    }

    .services-hero-visual::after {
        inset: 31%;
        border-color: rgba(0, 102, 255, .20);
    }

.services-hero-core {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 84px;
    height: 84px;
    transform: translate(-50%, -50%) rotate(45deg);
    border-radius: 23px;
    background: linear-gradient( 135deg, var(--tshi-blue), var(--tshi-teal) );
    box-shadow: 0 20px 55px rgba(0, 184, 169, .22);
}

    .services-hero-core span {
        transform: rotate(-45deg);
        font-family: 'Poppins', sans-serif;
        font-size: 2.2rem;
        font-weight: 700;
        color: #FFFFFF;
    }


/* CONNECTION LINES */

.services-hero-line {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 31%;
    height: 1px;
    transform-origin: left center;
    background: linear-gradient( 90deg, rgba(109, 221, 211, .45), rgba(109, 221, 211, .04) );
}

    .services-hero-line.line-one {
        transform: rotate(-90deg);
    }

    .services-hero-line.line-two {
        transform: rotate(-30deg);
    }

    .services-hero-line.line-three {
        transform: rotate(30deg);
    }

    .services-hero-line.line-four {
        transform: rotate(90deg);
    }

    .services-hero-line.line-five {
        transform: rotate(150deg);
    }

    .services-hero-line.line-six {
        transform: rotate(210deg);
    }


/* NODES */

.services-hero-node {
    position: absolute;
    z-index: 4;
    min-width: 105px;
    padding: 10px 13px;
    border: 1px solid rgba(255, 255, 255, .10);
    border-radius: 11px;
    background: rgba(5, 20, 38, .82);
    backdrop-filter: blur(10px);
}

    .services-hero-node span,
    .services-hero-node strong {
        display: block;
    }

    .services-hero-node span {
        margin-bottom: 2px;
        font-size: .43rem;
        font-weight: 700;
        color: var(--tshi-gold);
    }

    .services-hero-node strong {
        font-size: .48rem;
        letter-spacing: .08em;
        color: rgba(255, 255, 255, .76);
    }

.node-advisory {
    top: 3%;
    left: 38%;
}

.node-digital {
    top: 24%;
    right: 0;
}

.node-cloud {
    right: 1%;
    bottom: 21%;
}

.node-data {
    bottom: 2%;
    left: 37%;
}

.node-revenue {
    bottom: 21%;
    left: -2%;
}

.node-experience {
    top: 24%;
    left: -2%;
}


/* =========================================================
   SERVICES INTRO
   ========================================================= */

.services-introduction {
    padding: 110px 0;
    background: #FFFFFF;
}

.services-intro-content {
    max-width: 760px;
}

    .services-intro-content > p {
        font-size: .86rem;
        line-height: 1.9;
        color: var(--tshi-muted);
    }

    .services-intro-content .services-intro-lead {
        margin-bottom: 18px;
        font-size: 1.05rem;
        font-weight: 500;
        line-height: 1.8;
        color: var(--tshi-text);
    }

.services-capability-line {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 35px;
    padding-top: 25px;
    border-top: 1px solid var(--tshi-border);
}

    .services-capability-line span {
        font-size: .55rem;
        font-weight: 700;
        letter-spacing: .13em;
        color: var(--tshi-navy);
    }

    .services-capability-line i {
        flex: 1;
        height: 1px;
        background: linear-gradient( 90deg, var(--tshi-blue), var(--tshi-teal) );
        opacity: .35;
    }


/* =========================================================
   SERVICE PRACTICES
   ========================================================= */

.service-practices-section {
    padding: 110px 0;
    background: var(--tshi-light);
}

.service-practices-heading {
    display: grid;
    grid-template-columns: 1fr .65fr;
    align-items: end;
    gap: 60px;
    margin-bottom: 55px;
}

    .service-practices-heading > p {
        margin: 0;
        font-size: .8rem;
        line-height: 1.8;
        color: var(--tshi-muted);
    }

.service-practice-list {
    overflow: hidden;
    border: 1px solid var(--tshi-border);
    border-radius: 22px;
    background: #FFFFFF;
    box-shadow: 0 20px 60px rgba(11, 31, 59, .05);
}

.service-practice {
    display: grid;
    grid-template-columns: 75px minmax(0, 1.25fr) minmax(300px, .75fr);
    gap: 25px;
    align-items: center;
    min-height: 220px;
    padding: 34px 38px;
    border-bottom: 1px solid var(--tshi-border);
    transition: background 220ms ease;
}

    .service-practice:last-child {
        border-bottom: 0;
    }

    .service-practice:hover {
        background: #F8FAFC;
    }

.service-practice-featured {
    background: linear-gradient( 90deg, rgba(0, 102, 255, .035), rgba(0, 184, 169, .035) );
}

.service-practice-index {
    align-self: start;
    padding-top: 4px;
    font-family: 'Poppins', sans-serif;
    font-size: .68rem;
    font-weight: 700;
    color: #B5BFCA;
}

.service-practice-main {
    display: grid;
    grid-template-columns: 62px 1fr;
    gap: 22px;
    align-items: start;
}

.service-practice-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 15px;
    background: linear-gradient( 135deg, rgba(0, 102, 255, .10), rgba(0, 184, 169, .10) );
    font-size: 1.3rem;
    color: var(--tshi-blue);
}

.service-practice-featured
.service-practice-icon {
    color: #FFFFFF;
    background: linear-gradient( 135deg, var(--tshi-blue), var(--tshi-teal) );
    box-shadow: 0 12px 30px rgba(0, 102, 255, .15);
}

.service-practice-label {
    display: block;
    margin-bottom: 7px;
    font-size: .48rem;
    font-weight: 700;
    letter-spacing: .14em;
    color: var(--tshi-blue);
}

.service-practice-main h3 {
    margin-bottom: 10px;
    font-size: 1.1rem;
    color: var(--tshi-navy);
}

.service-practice-main p {
    max-width: 650px;
    margin: 0;
    font-size: .7rem;
    line-height: 1.75;
    color: var(--tshi-muted);
}

.service-practice-capabilities {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

    .service-practice-capabilities span {
        padding: 7px 10px;
        border: 1px solid #E2E8F0;
        border-radius: 50px;
        background: #FFFFFF;
        font-size: .53rem;
        font-weight: 600;
        color: #526070;
    }


/* =========================================================
   INTEGRATED DELIVERY
   ========================================================= */

.services-integration-section {
    padding: 110px 0;
    background: #FFFFFF;
}

.services-integration-panel {
    position: relative;
    display: grid;
    grid-template-columns: .75fr 1.25fr;
    align-items: center;
    gap: 65px;
    overflow: hidden;
    padding: 60px;
    border-radius: 25px;
    background: radial-gradient( circle at 80% 30%, rgba(0, 184, 169, .12), transparent 25% ), linear-gradient( 135deg, #06152A, #083B5D );
    box-shadow: 0 30px 70px rgba(11, 31, 59, .13);
}

    .services-integration-panel::before {
        content: "";
        position: absolute;
        inset: 0;
        background-image: linear-gradient( rgba(255, 255, 255, .025) 1px, transparent 1px ), linear-gradient( 90deg, rgba(255, 255, 255, .025) 1px, transparent 1px );
        background-size: 55px 55px;
        pointer-events: none;
    }

.services-integration-copy,
.services-integration-flow {
    position: relative;
    z-index: 2;
}

    .services-integration-copy h2 {
        margin-bottom: 17px;
        font-size: clamp(2rem, 3.2vw, 3.3rem);
        line-height: 1.08;
        letter-spacing: -.04em;
        color: #FFFFFF;
    }

        .services-integration-copy h2 span {
            color: #6DDDD3;
        }

    .services-integration-copy p {
        max-width: 520px;
        margin: 0;
        font-size: .78rem;
        line-height: 1.85;
        color: rgba(255, 255, 255, .58);
    }

.services-integration-flow {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.integration-stage {
    flex: 1;
    padding: 23px 12px;
    border: 1px solid rgba(255, 255, 255, .10);
    border-radius: 15px;
    background: rgba(255, 255, 255, .05);
    text-align: center;
}

    .integration-stage span {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 34px;
        height: 34px;
        margin: 0 auto 14px;
        border-radius: 50%;
        background: linear-gradient( 135deg, var(--tshi-blue), var(--tshi-teal) );
        font-size: .52rem;
        font-weight: 700;
        color: #FFFFFF;
    }

    .integration-stage strong,
    .integration-stage small {
        display: block;
    }

    .integration-stage strong {
        margin-bottom: 4px;
        font-family: 'Poppins', sans-serif;
        font-size: .7rem;
        color: #FFFFFF;
    }

    .integration-stage small {
        font-size: .46rem;
        color: rgba(255, 255, 255, .38);
    }

.integration-connector {
    color: var(--tshi-gold);
}


/* =========================================================
   SOLUTIONS BRIDGE
   ========================================================= */

.services-solutions-bridge {
    padding: 30px 0 110px;
    background: #FFFFFF;
}

    .services-solutions-bridge
    .col-lg-7 > p {
        max-width: 760px;
        margin-top: 20px;
        font-size: .82rem;
        line-height: 1.85;
        color: var(--tshi-muted);
    }

.services-solution-action {
    position: relative;
    overflow: hidden;
    padding: 35px;
    border-radius: 20px;
    background: linear-gradient( 145deg, var(--tshi-light), #FFFFFF );
    border: 1px solid var(--tshi-border);
}

    .services-solution-action::before {
        content: "";
        position: absolute;
        width: 130px;
        height: 130px;
        top: -70px;
        right: -50px;
        border-radius: 50%;
        background: rgba(0, 184, 169, .08);
    }

    .services-solution-action > span {
        display: block;
        margin-bottom: 8px;
        font-size: .5rem;
        font-weight: 700;
        letter-spacing: .14em;
        color: var(--tshi-blue);
    }

    .services-solution-action h3 {
        margin-bottom: 12px;
        font-size: 1.25rem;
    }

    .services-solution-action p {
        margin-bottom: 22px;
        font-size: .7rem;
        line-height: 1.75;
        color: var(--tshi-muted);
    }

    .services-solution-action a {
        display: inline-flex;
        align-items: center;
        gap: 10px;
        font-size: .68rem;
        font-weight: 700;
        color: var(--tshi-blue);
    }

        .services-solution-action a:hover {
            color: var(--tshi-teal);
        }


/* =========================================================
   SERVICES RESPONSIVE
   ========================================================= */

@media (max-width: 1199.98px) {

    .service-practice {
        grid-template-columns: 55px 1fr;
    }

    .service-practice-capabilities {
        grid-column: 2;
    }

    .services-integration-panel {
        grid-template-columns: 1fr;
    }
}


@media (max-width: 991.98px) {

    .services-hero-visual {
        max-width: 400px;
        margin: 30px auto 0;
    }

    .service-practices-heading {
        grid-template-columns: 1fr;
        gap: 15px;
    }

    .services-integration-panel {
        padding: 45px 35px;
    }

    .services-solutions-bridge {
        padding-bottom: 80px;
    }
}


@media (max-width: 767.98px) {

    .services-introduction,
    .service-practices-section,
    .services-integration-section {
        padding: 80px 0;
    }

    .services-capability-line {
        flex-wrap: wrap;
    }

        .services-capability-line i {
            flex: 0 0 20px;
        }

    .service-practice {
        display: block;
        padding: 30px 25px;
    }

    .service-practice-index {
        margin-bottom: 18px;
    }

    .service-practice-main {
        grid-template-columns: 1fr;
    }

    .service-practice-capabilities {
        margin-top: 25px;
    }

    .services-integration-flow {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 15px;
    }

    .integration-connector {
        display: none;
    }
}


@media (max-width: 575.98px) {

    .services-hero-node {
        min-width: 88px;
        padding: 8px 9px;
    }

        .services-hero-node strong {
            font-size: .42rem;
        }

    .services-integration-panel {
        padding: 35px 25px;
    }

    .services-integration-flow {
        grid-template-columns: 1fr;
    }
}
/* =========================================================
   SOLUTIONS PAGE
   ========================================================= */


/* =========================================================
   HERO VISUAL
   ========================================================= */

.solutions-page-visual {
    position: relative;
    width: min(450px, 100%);
    aspect-ratio: 1 / 1;
    margin-left: auto;
}

.solutions-visual-orbit {
    position: absolute;
    border-radius: 50%;
    border: 1px solid rgba(109, 221, 211, .16);
}

    .solutions-visual-orbit.orbit-a {
        inset: 11%;
    }

    .solutions-visual-orbit.orbit-b {
        inset: 28%;
        border-color: rgba(0, 102, 255, .26);
    }

.solutions-visual-core {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 4;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 88px;
    height: 88px;
    transform: translate(-50%, -50%) rotate(45deg);
    border-radius: 24px;
    background: linear-gradient( 135deg, var(--tshi-blue), var(--tshi-teal) );
    box-shadow: 0 20px 55px rgba(0, 184, 169, .22);
}

    .solutions-visual-core span {
        transform: rotate(-45deg);
        font-family: 'Poppins', sans-serif;
        font-size: 2.3rem;
        font-weight: 700;
        color: #FFFFFF;
    }

.solutions-visual-card {
    position: absolute;
    z-index: 5;
    min-width: 108px;
    padding: 10px 13px;
    border: 1px solid rgba(255, 255, 255, .10);
    border-radius: 11px;
    background: rgba(5, 20, 38, .84);
    backdrop-filter: blur(10px);
}

    .solutions-visual-card span,
    .solutions-visual-card strong {
        display: block;
    }

    .solutions-visual-card span {
        margin-bottom: 2px;
        font-size: .42rem;
        font-weight: 700;
        color: var(--tshi-gold);
    }

    .solutions-visual-card strong {
        font-size: .47rem;
        letter-spacing: .08em;
        color: rgba(255, 255, 255, .78);
    }

.visual-card-one {
    top: 4%;
    left: 38%;
}

.visual-card-two {
    top: 27%;
    right: -1%;
}

.visual-card-three {
    right: 3%;
    bottom: 19%;
}

.visual-card-four {
    bottom: 3%;
    left: 37%;
}

.visual-card-five {
    bottom: 20%;
    left: -2%;
}

.visual-card-six {
    top: 27%;
    left: -2%;
}


/* =========================================================
   INTRODUCTION
   ========================================================= */

.solutions-page-intro {
    padding: 110px 0;
    background: #FFFFFF;
}

.solutions-page-intro-copy {
    max-width: 760px;
}

    .solutions-page-intro-copy p {
        font-size: .84rem;
        line-height: 1.9;
        color: var(--tshi-muted);
    }

    .solutions-page-intro-copy
    .solutions-page-intro-lead {
        font-size: 1.05rem;
        font-weight: 500;
        line-height: 1.8;
        color: var(--tshi-text);
    }


/* =========================================================
   SOLUTION PORTFOLIO
   ========================================================= */

.solution-portfolio-section {
    padding: 110px 0;
    background: var(--tshi-light);
}

.solution-portfolio-heading {
    display: grid;
    grid-template-columns: 1fr .65fr;
    align-items: end;
    gap: 60px;
    margin-bottom: 55px;
}

    .solution-portfolio-heading > p {
        margin: 0;
        font-size: .8rem;
        line-height: 1.8;
        color: var(--tshi-muted);
    }

.solution-detail {
    position: relative;
    display: grid;
    grid-template-columns: .7fr 1.3fr;
    gap: 55px;
    padding: 48px 45px;
    border: 1px solid var(--tshi-border);
    border-bottom: 0;
    background: #FFFFFF;
}

    .solution-detail:first-of-type {
        border-radius: 22px 22px 0 0;
    }

.solution-detail-last {
    border-bottom: 1px solid var(--tshi-border);
    border-radius: 0 0 22px 22px;
}

.solution-detail-featured {
    background: linear-gradient( 110deg, #FFFFFF, rgba(0, 102, 255, .035), rgba(0, 184, 169, .045) );
}

.solution-detail-heading {
    display: grid;
    grid-template-columns: 50px 1fr;
    gap: 20px;
    align-items: start;
}

.solution-detail-number {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: linear-gradient( 135deg, var(--tshi-blue), var(--tshi-teal) );
    font-family: 'Poppins', sans-serif;
    font-size: .58rem;
    font-weight: 700;
    color: #FFFFFF;
    box-shadow: 0 10px 25px rgba(0, 102, 255, .13);
}

.solution-detail-category {
    display: block;
    margin-bottom: 7px;
    font-size: .47rem;
    font-weight: 700;
    letter-spacing: .14em;
    color: var(--tshi-blue);
}

.solution-detail-heading h3 {
    margin: 0;
    font-size: 1.2rem;
    line-height: 1.35;
    color: var(--tshi-navy);
}

.solution-detail-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(270px, .9fr);
    gap: 35px;
}

.solution-detail-copy p {
    margin-bottom: 12px;
    font-size: .7rem;
    line-height: 1.8;
    color: var(--tshi-muted);
}

    .solution-detail-copy p:last-child {
        margin-bottom: 0;
    }

.solution-capability-grid {
    display: flex;
    flex-wrap: wrap;
    align-content: flex-start;
    gap: 8px;
}

    .solution-capability-grid span {
        padding: 7px 10px;
        border: 1px solid #E1E7EE;
        border-radius: 50px;
        background: #FFFFFF;
        font-size: .51rem;
        font-weight: 600;
        color: #536171;
    }


/* =========================================================
   DELIVERY MODEL
   ========================================================= */

.solutions-delivery-section {
    padding: 110px 0;
    background: #FFFFFF;
}

.solutions-delivery-panel {
    position: relative;
    overflow: hidden;
    padding: 60px;
    border-radius: 25px;
    background: radial-gradient( circle at 85% 20%, rgba(0, 184, 169, .13), transparent 24% ), linear-gradient( 135deg, #041222, #083B5D );
    box-shadow: 0 30px 70px rgba(11, 31, 59, .12);
}

    .solutions-delivery-panel::before {
        content: "";
        position: absolute;
        inset: 0;
        background-image: linear-gradient( rgba(255, 255, 255, .024) 1px, transparent 1px ), linear-gradient( 90deg, rgba(255, 255, 255, .024) 1px, transparent 1px );
        background-size: 55px 55px;
        pointer-events: none;
    }

.solutions-delivery-heading,
.solution-delivery-options {
    position: relative;
    z-index: 2;
}

.solutions-delivery-heading {
    display: grid;
    grid-template-columns: 1fr .6fr;
    align-items: end;
    gap: 55px;
    margin-bottom: 45px;
}

    .solutions-delivery-heading h2 {
        margin: 0;
        font-size: clamp(2rem, 3.4vw, 3.4rem);
        line-height: 1.08;
        letter-spacing: -.04em;
        color: #FFFFFF;
    }

        .solutions-delivery-heading h2 span {
            color: #6DDDD3;
        }

    .solutions-delivery-heading > p {
        margin: 0;
        font-size: .76rem;
        line-height: 1.8;
        color: rgba(255, 255, 255, .56);
    }

.solution-delivery-options {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

    .solution-delivery-options article {
        position: relative;
        min-height: 235px;
        padding: 25px;
        border: 1px solid rgba(255, 255, 255, .10);
        border-radius: 17px;
        background: rgba(255, 255, 255, .045);
    }

        .solution-delivery-options article > span {
            position: absolute;
            top: 20px;
            right: 22px;
            font-size: .5rem;
            font-weight: 700;
            color: rgba(255, 255, 255, .25);
        }

.solution-delivery-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 45px;
    height: 45px;
    margin-bottom: 34px;
    border-radius: 12px;
    background: linear-gradient( 135deg, var(--tshi-blue), var(--tshi-teal) );
    color: #FFFFFF;
}

.solution-delivery-options h3 {
    margin-bottom: 9px;
    font-size: .85rem;
    color: #FFFFFF;
}

.solution-delivery-options p {
    margin: 0;
    font-size: .62rem;
    line-height: 1.75;
    color: rgba(255, 255, 255, .50);
}


/* =========================================================
   SERVICES BRIDGE
   ========================================================= */

.solutions-services-bridge {
    padding: 20px 0 110px;
    background: #FFFFFF;
}

    .solutions-services-bridge
    .col-lg-7 > p {
        max-width: 720px;
        margin-top: 20px;
        font-size: .82rem;
        line-height: 1.85;
        color: var(--tshi-muted);
    }

.solutions-services-card {
    position: relative;
    overflow: hidden;
    padding: 35px;
    border: 1px solid var(--tshi-border);
    border-radius: 20px;
    background: linear-gradient( 145deg, var(--tshi-light), #FFFFFF );
}

    .solutions-services-card::before {
        content: "";
        position: absolute;
        width: 130px;
        height: 130px;
        top: -70px;
        right: -45px;
        border-radius: 50%;
        background: rgba(0, 184, 169, .08);
    }

    .solutions-services-card > span {
        display: block;
        margin-bottom: 8px;
        font-size: .5rem;
        font-weight: 700;
        letter-spacing: .14em;
        color: var(--tshi-blue);
    }

    .solutions-services-card h3 {
        margin-bottom: 11px;
        font-size: 1.2rem;
    }

    .solutions-services-card p {
        margin-bottom: 22px;
        font-size: .7rem;
        line-height: 1.75;
        color: var(--tshi-muted);
    }

    .solutions-services-card a {
        display: inline-flex;
        align-items: center;
        gap: 10px;
        font-size: .68rem;
        font-weight: 700;
        color: var(--tshi-blue);
    }

        .solutions-services-card a:hover {
            color: var(--tshi-teal);
        }


/* =========================================================
   SOLUTIONS RESPONSIVE
   ========================================================= */

@media (max-width: 1199.98px) {

    .solution-detail {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .solution-delivery-options {
        grid-template-columns: repeat(2, 1fr);
    }
}


@media (max-width: 991.98px) {

    .solutions-page-visual {
        max-width: 400px;
        margin: 30px auto 0;
    }

    .solution-portfolio-heading,
    .solutions-delivery-heading {
        grid-template-columns: 1fr;
        gap: 15px;
    }

    .solution-detail-body {
        grid-template-columns: 1fr;
    }

    .solutions-delivery-panel {
        padding: 45px 35px;
    }
}


@media (max-width: 767.98px) {

    .solutions-page-intro,
    .solution-portfolio-section,
    .solutions-delivery-section {
        padding: 80px 0;
    }

    .solution-detail {
        padding: 35px 28px;
    }

    .solution-detail-heading {
        grid-template-columns: 45px 1fr;
    }

    .solution-delivery-options {
        grid-template-columns: 1fr;
    }

    .solutions-services-bridge {
        padding-bottom: 80px;
    }
}


@media (max-width: 575.98px) {

    .solutions-visual-card {
        min-width: 90px;
        padding: 8px 9px;
    }

        .solutions-visual-card strong {
            font-size: .41rem;
        }

    .solutions-delivery-panel {
        padding: 35px 25px;
    }

    .solution-detail {
        padding: 30px 22px;
    }
}
/* =========================================================
   INDUSTRIES PAGE
   ========================================================= */


/* HERO VISUAL */

.industries-hero-visual {
    position: relative;
    width: min(450px, 100%);
    aspect-ratio: 1 / 1;
    margin-left: auto;
}

.industries-hero-ring {
    position: absolute;
    border-radius: 50%;
}

    .industries-hero-ring.ring-a {
        inset: 5%;
        border: 1px dashed rgba(109, 221, 211, .17);
    }

    .industries-hero-ring.ring-b {
        inset: 20%;
        border: 1px solid rgba(0, 102, 255, .21);
    }

    .industries-hero-ring.ring-c {
        inset: 34%;
        border: 1px solid rgba(244, 180, 0, .18);
    }

.industries-hero-core {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 4;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 90px;
    height: 90px;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: linear-gradient( 135deg, var(--tshi-blue), var(--tshi-teal) );
    box-shadow: 0 20px 55px rgba(0, 184, 169, .23);
}

    .industries-hero-core span {
        font-family: 'Poppins', sans-serif;
        font-size: 2.3rem;
        font-weight: 700;
        color: #FFFFFF;
    }

.industry-orbit-node {
    position: absolute;
    z-index: 5;
    min-width: 112px;
    padding: 10px 13px;
    border: 1px solid rgba(255, 255, 255, .10);
    border-radius: 11px;
    background: rgba(5, 20, 38, .84);
    backdrop-filter: blur(10px);
}

    .industry-orbit-node span,
    .industry-orbit-node strong {
        display: block;
    }

    .industry-orbit-node span {
        margin-bottom: 2px;
        font-size: .42rem;
        font-weight: 700;
        color: var(--tshi-gold);
    }

    .industry-orbit-node strong {
        font-size: .46rem;
        letter-spacing: .07em;
        color: rgba(255, 255, 255, .77);
    }

.industry-node-one {
    top: 2%;
    left: 36%;
}

.industry-node-two {
    top: 26%;
    right: -3%;
}

.industry-node-three {
    right: 2%;
    bottom: 18%;
}

.industry-node-four {
    bottom: 1%;
    left: 37%;
}

.industry-node-five {
    bottom: 20%;
    left: -3%;
}

.industry-node-six {
    top: 27%;
    left: -3%;
}


/* =========================================================
   INTRO
   ========================================================= */

.industries-intro-section {
    padding: 110px 0;
    background: #FFFFFF;
}

.industries-intro-copy {
    max-width: 760px;
}

    .industries-intro-copy p {
        font-size: .84rem;
        line-height: 1.9;
        color: var(--tshi-muted);
    }

    .industries-intro-copy .industries-intro-lead {
        font-size: 1.05rem;
        font-weight: 500;
        line-height: 1.8;
        color: var(--tshi-text);
    }


/* =========================================================
   INDUSTRY SECTORS
   ========================================================= */

.industry-sectors-section {
    padding: 110px 0;
    background: var(--tshi-light);
}

.industry-sectors-heading {
    display: grid;
    grid-template-columns: 1fr .65fr;
    align-items: end;
    gap: 60px;
    margin-bottom: 55px;
}

    .industry-sectors-heading > p {
        margin: 0;
        font-size: .8rem;
        line-height: 1.8;
        color: var(--tshi-muted);
    }

.industry-sector-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.industry-sector-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 430px;
    padding: 30px;
    overflow: hidden;
    border: 1px solid var(--tshi-border);
    border-radius: 19px;
    background: #FFFFFF;
    box-shadow: 0 15px 45px rgba(11, 31, 59, .04);
    transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}

    .industry-sector-card:hover {
        transform: translateY(-5px);
        border-color: rgba(0, 102, 255, .20);
        box-shadow: 0 22px 55px rgba(11, 31, 59, .08);
    }

.industry-sector-featured {
    background: linear-gradient( 145deg, #06152A, #083B5D );
    border-color: transparent;
    box-shadow: 0 22px 55px rgba(11, 31, 59, .14);
}

.industry-sector-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 35px;
}

.industry-sector-number {
    font-size: .55rem;
    font-weight: 700;
    color: #A6B1BD;
}

.industry-sector-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 13px;
    background: linear-gradient( 135deg, rgba(0, 102, 255, .10), rgba(0, 184, 169, .10) );
    color: var(--tshi-blue);
}

.industry-sector-featured
.industry-sector-icon {
    background: linear-gradient( 135deg, var(--tshi-blue), var(--tshi-teal) );
    color: #FFFFFF;
}

.industry-sector-label {
    display: block;
    margin-bottom: 7px;
    font-size: .47rem;
    font-weight: 700;
    letter-spacing: .14em;
    color: var(--tshi-blue);
}

.industry-sector-card h3 {
    margin-bottom: 13px;
    font-size: 1.05rem;
    color: var(--tshi-navy);
}

.industry-sector-card > p {
    margin-bottom: 22px;
    font-size: .68rem;
    line-height: 1.78;
    color: var(--tshi-muted);
}

.industry-needs {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-bottom: 25px;
}

    .industry-needs span {
        padding: 6px 9px;
        border: 1px solid #E3E8EE;
        border-radius: 50px;
        background: var(--tshi-light);
        font-size: .48rem;
        font-weight: 600;
        color: #536171;
    }

.industry-link {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-top: auto;
    font-size: .62rem;
    font-weight: 700;
    color: var(--tshi-blue);
}

    .industry-link:hover {
        color: var(--tshi-teal);
    }

.industry-sector-featured
.industry-sector-number {
    color: rgba(255, 255, 255, .28);
}

.industry-sector-featured
.industry-sector-label {
    color: #6DDDD3;
}

.industry-sector-featured h3 {
    color: #FFFFFF;
}

.industry-sector-featured > p {
    color: rgba(255, 255, 255, .56);
}

.industry-sector-featured
.industry-needs span {
    border-color: rgba(255, 255, 255, .10);
    background: rgba(255, 255, 255, .06);
    color: rgba(255, 255, 255, .65);
}

.industry-sector-featured
.industry-link {
    color: #6DDDD3;
}


/* =========================================================
   PUBLIC SECTOR FOCUS
   ========================================================= */

.industry-focus-section {
    padding: 110px 0;
    background: #FFFFFF;
}

.industry-focus-panel {
    position: relative;
    display: grid;
    grid-template-columns: .85fr 1.15fr;
    align-items: center;
    gap: 70px;
    overflow: hidden;
    min-height: 510px;
    padding: 60px;
    border-radius: 25px;
    background: radial-gradient( circle at 80% 30%, rgba(0, 184, 169, .13), transparent 25% ), linear-gradient( 135deg, #041222, #083B5D );
    box-shadow: 0 30px 70px rgba(11, 31, 59, .13);
}

    .industry-focus-panel::before {
        content: "";
        position: absolute;
        inset: 0;
        background-image: linear-gradient( rgba(255, 255, 255, .025) 1px, transparent 1px ), linear-gradient( 90deg, rgba(255, 255, 255, .025) 1px, transparent 1px );
        background-size: 55px 55px;
        pointer-events: none;
    }

.industry-focus-copy,
.industry-focus-model {
    position: relative;
    z-index: 2;
}

    .industry-focus-copy h2 {
        margin-bottom: 18px;
        font-size: clamp(2.1rem, 3.6vw, 3.7rem);
        line-height: 1.07;
        letter-spacing: -.045em;
        color: #FFFFFF;
    }

        .industry-focus-copy h2 span {
            color: #6DDDD3;
        }

    .industry-focus-copy p {
        max-width: 600px;
        margin-bottom: 28px;
        font-size: .78rem;
        line-height: 1.85;
        color: rgba(255, 255, 255, .57);
    }

.industry-focus-link {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    font-size: .66rem;
    font-weight: 700;
    color: #6DDDD3;
}

    .industry-focus-link:hover {
        color: #FFFFFF;
    }


/* MODEL */

.industry-focus-model {
    width: min(440px, 100%);
    aspect-ratio: 1 / 1;
    margin: 0 auto;
}

    .industry-focus-model::before,
    .industry-focus-model::after {
        content: "";
        position: absolute;
        border-radius: 50%;
    }

    .industry-focus-model::before {
        inset: 8%;
        border: 1px solid rgba(109, 221, 211, .16);
    }

    .industry-focus-model::after {
        inset: 26%;
        border: 1px dashed rgba(255, 255, 255, .12);
    }

.focus-model-core {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 150px;
    height: 150px;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: linear-gradient( 135deg, var(--tshi-blue), var(--tshi-teal) );
    box-shadow: 0 20px 50px rgba(0, 184, 169, .20);
    text-align: center;
}

    .focus-model-core small {
        margin-bottom: 5px;
        font-size: .42rem;
        font-weight: 700;
        letter-spacing: .12em;
        color: rgba(255, 255, 255, .60);
    }

    .focus-model-core strong {
        font-family: 'Poppins', sans-serif;
        font-size: .72rem;
        line-height: 1.4;
        color: #FFFFFF;
    }

.focus-model-item {
    position: absolute;
    z-index: 4;
    min-width: 105px;
    padding: 11px 13px;
    border: 1px solid rgba(255, 255, 255, .10);
    border-radius: 11px;
    background: rgba(5, 20, 38, .85);
    text-align: center;
}

    .focus-model-item span,
    .focus-model-item strong {
        display: block;
    }

    .focus-model-item span {
        margin-bottom: 3px;
        font-size: .42rem;
        color: var(--tshi-gold);
    }

    .focus-model-item strong {
        font-size: .5rem;
        color: rgba(255, 255, 255, .76);
    }

.focus-item-one {
    top: 3%;
    left: 38%;
}

.focus-item-two {
    top: 43%;
    right: -1%;
}

.focus-item-three {
    bottom: 3%;
    left: 38%;
}

.focus-item-four {
    top: 43%;
    left: -1%;
}


/* =========================================================
   CROSS-SECTOR
   ========================================================= */

.cross-sector-section {
    padding: 20px 0 110px;
    background: #FFFFFF;
}

.cross-sector-heading {
    max-width: 720px;
    margin-bottom: 45px;
}

.cross-sector-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border-top: 1px solid var(--tshi-border);
    border-bottom: 1px solid var(--tshi-border);
}

    .cross-sector-grid article {
        min-height: 225px;
        padding: 30px 27px;
        border-right: 1px solid var(--tshi-border);
    }

        .cross-sector-grid article:last-child {
            border-right: 0;
        }

        .cross-sector-grid article > span {
            display: block;
            margin-bottom: 40px;
            font-size: .53rem;
            font-weight: 700;
            color: var(--tshi-blue);
        }

    .cross-sector-grid h3 {
        margin-bottom: 11px;
        font-size: .95rem;
    }

    .cross-sector-grid p {
        margin: 0;
        font-size: .66rem;
        line-height: 1.75;
        color: var(--tshi-muted);
    }


/* =========================================================
   INDUSTRIES RESPONSIVE
   ========================================================= */

@media (max-width: 1199.98px) {

    .industry-sector-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .industry-focus-panel {
        grid-template-columns: 1fr 1fr;
        gap: 40px;
    }
}


@media (max-width: 991.98px) {

    .industries-hero-visual {
        max-width: 400px;
        margin: 30px auto 0;
    }

    .industry-sectors-heading {
        grid-template-columns: 1fr;
        gap: 15px;
    }

    .industry-focus-panel {
        grid-template-columns: 1fr;
        padding: 45px 35px;
    }

    .industry-focus-model {
        max-width: 390px;
    }

    .cross-sector-grid {
        grid-template-columns: repeat(2, 1fr);
    }

        .cross-sector-grid article:nth-child(2) {
            border-right: 0;
        }
}


@media (max-width: 767.98px) {

    .industries-intro-section,
    .industry-sectors-section,
    .industry-focus-section {
        padding: 80px 0;
    }

    .industry-sector-grid {
        grid-template-columns: 1fr;
    }

    .industry-sector-card {
        min-height: auto;
    }

    .cross-sector-section {
        padding-bottom: 80px;
    }
}


@media (max-width: 575.98px) {

    .industry-orbit-node {
        min-width: 90px;
        padding: 8px 9px;
    }

        .industry-orbit-node strong {
            font-size: .4rem;
        }

    .industry-focus-panel {
        padding: 35px 25px;
    }

    .cross-sector-grid {
        grid-template-columns: 1fr;
    }

        .cross-sector-grid article {
            min-height: auto;
            border-right: 0;
            border-bottom: 1px solid var(--tshi-border);
        }

            .cross-sector-grid article:last-child {
                border-bottom: 0;
            }
}
/* =========================================================
   TECHNOLOGY & PARTNERS PAGE
   ========================================================= */


/* HERO */

.partners-hero-visual {
    position: relative;
    width: min(450px, 100%);
    aspect-ratio: 1 / 1;
    margin-left: auto;
}

.partners-orbit {
    position: absolute;
    border-radius: 50%;
}

    .partners-orbit.orbit-one {
        inset: 5%;
        border: 1px dashed rgba(109, 221, 211, .16);
    }

    .partners-orbit.orbit-two {
        inset: 20%;
        border: 1px solid rgba(0, 102, 255, .22);
    }

    .partners-orbit.orbit-three {
        inset: 34%;
        border: 1px solid rgba(244, 180, 0, .17);
    }

.partners-core {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 4;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 90px;
    height: 90px;
    transform: translate(-50%, -50%) rotate(45deg);
    border-radius: 24px;
    background: linear-gradient( 135deg, var(--tshi-blue), var(--tshi-teal) );
    box-shadow: 0 20px 55px rgba(0, 184, 169, .23);
}

    .partners-core span {
        transform: rotate(-45deg);
        font-family: 'Poppins', sans-serif;
        font-size: 2.3rem;
        font-weight: 700;
        color: #FFFFFF;
    }

.partner-node {
    position: absolute;
    z-index: 5;
    min-width: 108px;
    padding: 10px 13px;
    border: 1px solid rgba(255, 255, 255, .10);
    border-radius: 11px;
    background: rgba(5, 20, 38, .84);
    backdrop-filter: blur(10px);
}

    .partner-node span,
    .partner-node strong {
        display: block;
    }

    .partner-node span {
        margin-bottom: 2px;
        font-size: .42rem;
        font-weight: 700;
        color: var(--tshi-gold);
    }

    .partner-node strong {
        font-size: .45rem;
        letter-spacing: .07em;
        color: rgba(255, 255, 255, .77);
    }

.partners-hero-visual .node-cloud {
    top: 2%;
    left: 38%;
}

.partners-hero-visual .node-apps {
    top: 26%;
    right: -3%;
}

.partners-hero-visual .node-data {
    right: 1%;
    bottom: 18%;
}

.partners-hero-visual .node-security {
    bottom: 1%;
    left: 37%;
}

.partners-hero-visual .node-integration {
    bottom: 20%;
    left: -3%;
}

.partners-hero-visual .node-digital {
    top: 27%;
    left: -3%;
}


/* =========================================================
   INTRO
   ========================================================= */

.partners-intro-section {
    padding: 110px 0;
    background: #FFFFFF;
}

.partners-intro-copy {
    max-width: 760px;
}

    .partners-intro-copy p {
        font-size: .84rem;
        line-height: 1.9;
        color: var(--tshi-muted);
    }

    .partners-intro-copy
    .partners-intro-lead {
        font-size: 1.05rem;
        font-weight: 500;
        line-height: 1.8;
        color: var(--tshi-text);
    }


/* =========================================================
   TECHNOLOGY ECOSYSTEM
   ========================================================= */

.technology-ecosystem-page {
    padding: 110px 0;
    background: var(--tshi-light);
}

.technology-ecosystem-heading {
    display: grid;
    grid-template-columns: 1fr .65fr;
    align-items: end;
    gap: 60px;
    margin-bottom: 55px;
}

    .technology-ecosystem-heading > p {
        margin: 0;
        font-size: .8rem;
        line-height: 1.8;
        color: var(--tshi-muted);
    }

.technology-domain-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.technology-domain-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 390px;
    padding: 30px;
    border: 1px solid var(--tshi-border);
    border-radius: 19px;
    background: #FFFFFF;
    box-shadow: 0 15px 45px rgba(11, 31, 59, .04);
    transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}

    .technology-domain-card:hover {
        transform: translateY(-5px);
        border-color: rgba(0, 102, 255, .20);
        box-shadow: 0 22px 55px rgba(11, 31, 59, .08);
    }

.technology-domain-featured {
    background: linear-gradient( 145deg, #06152A, #083B5D );
    border-color: transparent;
}

.technology-domain-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 32px;
}

    .technology-domain-top > span {
        font-size: .53rem;
        font-weight: 700;
        color: #A7B1BD;
    }

.technology-domain-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 13px;
    background: linear-gradient( 135deg, rgba(0, 102, 255, .10), rgba(0, 184, 169, .10) );
    color: var(--tshi-blue);
}

.technology-domain-featured
.technology-domain-icon {
    background: linear-gradient( 135deg, var(--tshi-blue), var(--tshi-teal) );
    color: #FFFFFF;
}

.technology-domain-label {
    display: block;
    margin-bottom: 7px;
    font-size: .47rem;
    font-weight: 700;
    letter-spacing: .14em;
    color: var(--tshi-blue);
}

.technology-domain-card h3 {
    margin-bottom: 12px;
    font-size: 1.05rem;
}

.technology-domain-card > p {
    margin-bottom: 22px;
    font-size: .68rem;
    line-height: 1.78;
    color: var(--tshi-muted);
}

.technology-domain-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: auto;
}

    .technology-domain-tags span {
        padding: 6px 9px;
        border: 1px solid #E3E8EE;
        border-radius: 50px;
        background: var(--tshi-light);
        font-size: .48rem;
        font-weight: 600;
        color: #536171;
    }

.technology-domain-featured
.technology-domain-top > span {
    color: rgba(255, 255, 255, .28);
}

.technology-domain-featured
.technology-domain-label {
    color: #6DDDD3;
}

.technology-domain-featured h3 {
    color: #FFFFFF;
}

.technology-domain-featured > p {
    color: rgba(255, 255, 255, .56);
}

.technology-domain-featured
.technology-domain-tags span {
    border-color: rgba(255, 255, 255, .10);
    background: rgba(255, 255, 255, .06);
    color: rgba(255, 255, 255, .65);
}


/* =========================================================
   MICROSOFT ECOSYSTEM
   ========================================================= */

.microsoft-ecosystem-section {
    padding: 110px 0;
    background: #FFFFFF;
}

.microsoft-ecosystem-panel {
    position: relative;
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    align-items: center;
    gap: 65px;
    overflow: hidden;
    padding: 60px;
    border-radius: 25px;
    background: radial-gradient( circle at 80% 25%, rgba(0, 184, 169, .13), transparent 25% ), linear-gradient( 135deg, #041222, #083B5D );
    box-shadow: 0 30px 70px rgba(11, 31, 59, .13);
}

    .microsoft-ecosystem-panel::before {
        content: "";
        position: absolute;
        inset: 0;
        background-image: linear-gradient( rgba(255, 255, 255, .025) 1px, transparent 1px ), linear-gradient( 90deg, rgba(255, 255, 255, .025) 1px, transparent 1px );
        background-size: 55px 55px;
        pointer-events: none;
    }

.microsoft-ecosystem-copy,
.microsoft-capability-grid {
    position: relative;
    z-index: 2;
}

    .microsoft-ecosystem-copy h2 {
        margin-bottom: 18px;
        font-size: clamp(2.1rem, 3.5vw, 3.6rem);
        line-height: 1.07;
        letter-spacing: -.045em;
        color: #FFFFFF;
    }

        .microsoft-ecosystem-copy h2 span {
            color: #6DDDD3;
        }

    .microsoft-ecosystem-copy p {
        margin-bottom: 13px;
        font-size: .76rem;
        line-height: 1.85;
        color: rgba(255, 255, 255, .56);
    }

.microsoft-ecosystem-link {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    margin-top: 13px;
    font-size: .65rem;
    font-weight: 700;
    color: #6DDDD3;
}

    .microsoft-ecosystem-link:hover {
        color: #FFFFFF;
    }

.microsoft-capability-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
}

.microsoft-capability {
    min-height: 115px;
    padding: 20px;
    border: 1px solid rgba(255, 255, 255, .10);
    border-radius: 14px;
    background: rgba(255, 255, 255, .045);
}

    .microsoft-capability span,
    .microsoft-capability strong,
    .microsoft-capability small {
        display: block;
    }

    .microsoft-capability span {
        margin-bottom: 15px;
        font-size: .45rem;
        font-weight: 700;
        color: var(--tshi-gold);
    }

    .microsoft-capability strong {
        margin-bottom: 4px;
        font-family: 'Poppins', sans-serif;
        font-size: .7rem;
        color: #FFFFFF;
    }

    .microsoft-capability small {
        font-size: .47rem;
        color: rgba(255, 255, 255, .40);
    }


/* =========================================================
   PARTNERSHIP MODEL
   ========================================================= */

.partnership-model-section {
    padding: 20px 0 110px;
    background: #FFFFFF;
}

.partnership-model-heading {
    max-width: 780px;
    margin-bottom: 45px;
}

    .partnership-model-heading > p {
        max-width: 720px;
        margin-top: 20px;
        font-size: .8rem;
        line-height: 1.85;
        color: var(--tshi-muted);
    }

.partnership-model-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border-top: 1px solid var(--tshi-border);
    border-bottom: 1px solid var(--tshi-border);
}

    .partnership-model-grid article {
        position: relative;
        min-height: 260px;
        padding: 30px 27px;
        border-right: 1px solid var(--tshi-border);
    }

        .partnership-model-grid article:last-child {
            border-right: 0;
        }

.partnership-number {
    position: absolute;
    top: 28px;
    right: 27px;
    font-size: .5rem;
    font-weight: 700;
    color: #B0BAC5;
}

.partnership-model-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    margin-bottom: 35px;
    border-radius: 13px;
    background: linear-gradient( 135deg, rgba(0, 102, 255, .10), rgba(0, 184, 169, .10) );
    color: var(--tshi-blue);
}

.partnership-model-grid h3 {
    margin-bottom: 10px;
    font-size: .95rem;
}

.partnership-model-grid p {
    margin: 0;
    font-size: .65rem;
    line-height: 1.75;
    color: var(--tshi-muted);
}


/* =========================================================
   FLEXIBLE DELIVERY
   ========================================================= */

.partner-delivery-section {
    padding: 110px 0;
    background: var(--tshi-light);
}

.partner-delivery-grid {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: 80px;
    align-items: start;
}

.partner-delivery-options {
    border-top: 1px solid var(--tshi-border);
}

    .partner-delivery-options article {
        display: grid;
        grid-template-columns: 50px 1fr;
        gap: 20px;
        padding: 25px 0;
        border-bottom: 1px solid var(--tshi-border);
    }

        .partner-delivery-options article > span {
            padding-top: 3px;
            font-size: .5rem;
            font-weight: 700;
            color: var(--tshi-blue);
        }

    .partner-delivery-options h3 {
        margin-bottom: 7px;
        font-size: .9rem;
    }

    .partner-delivery-options p {
        max-width: 600px;
        margin: 0;
        font-size: .66rem;
        line-height: 1.75;
        color: var(--tshi-muted);
    }


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 1199.98px) {

    .technology-domain-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .microsoft-ecosystem-panel {
        grid-template-columns: 1fr 1fr;
        gap: 40px;
    }
}


@media (max-width: 991.98px) {

    .partners-hero-visual {
        max-width: 400px;
        margin: 30px auto 0;
    }

    .technology-ecosystem-heading {
        grid-template-columns: 1fr;
        gap: 15px;
    }

    .microsoft-ecosystem-panel {
        grid-template-columns: 1fr;
        padding: 45px 35px;
    }

    .partnership-model-grid {
        grid-template-columns: repeat(2, 1fr);
    }

        .partnership-model-grid article:nth-child(2) {
            border-right: 0;
        }

    .partner-delivery-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }
}


@media (max-width: 767.98px) {

    .partners-intro-section,
    .technology-ecosystem-page,
    .microsoft-ecosystem-section,
    .partner-delivery-section {
        padding: 80px 0;
    }

    .technology-domain-grid {
        grid-template-columns: 1fr;
    }

    .technology-domain-card {
        min-height: auto;
    }

    .partnership-model-section {
        padding-bottom: 80px;
    }
}


@media (max-width: 575.98px) {

    .partner-node {
        min-width: 88px;
        padding: 8px 9px;
    }

        .partner-node strong {
            font-size: .39rem;
        }

    .microsoft-ecosystem-panel {
        padding: 35px 25px;
    }

    .microsoft-capability-grid {
        grid-template-columns: 1fr;
    }

    .partnership-model-grid {
        grid-template-columns: 1fr;
    }

        .partnership-model-grid article {
            min-height: auto;
            border-right: 0;
            border-bottom: 1px solid var(--tshi-border);
        }

            .partnership-model-grid article:last-child {
                border-bottom: 0;
            }
}
/* =========================================================
   INSIGHTS PAGE
   ========================================================= */


/* HERO */

.insights-hero-visual {
    position: relative;
    width: min(450px, 100%);
    aspect-ratio: 1 / 1;
    margin-left: auto;
}

.insights-orbit {
    position: absolute;
    border-radius: 50%;
}

    .insights-orbit.orbit-one {
        inset: 7%;
        border: 1px dashed rgba(109, 221, 211, .17);
    }

    .insights-orbit.orbit-two {
        inset: 26%;
        border: 1px solid rgba(0, 102, 255, .23);
    }

.insights-core {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 4;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 90px;
    height: 90px;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: linear-gradient( 135deg, var(--tshi-blue), var(--tshi-teal) );
    box-shadow: 0 20px 55px rgba(0, 184, 169, .23);
}

    .insights-core span {
        font-family: 'Poppins', sans-serif;
        font-size: 2.4rem;
        font-weight: 700;
        font-style: italic;
        color: #FFFFFF;
    }

.insight-node {
    position: absolute;
    z-index: 5;
    min-width: 110px;
    padding: 10px 13px;
    border: 1px solid rgba(255, 255, 255, .10);
    border-radius: 11px;
    background: rgba(5, 20, 38, .84);
    backdrop-filter: blur(10px);
}

    .insight-node span,
    .insight-node strong {
        display: block;
    }

    .insight-node span {
        margin-bottom: 2px;
        font-size: .42rem;
        font-weight: 700;
        color: var(--tshi-gold);
    }

    .insight-node strong {
        font-size: .43rem;
        letter-spacing: .07em;
        color: rgba(255, 255, 255, .77);
    }

.insight-node-one {
    top: 2%;
    left: 36%;
}

.insight-node-two {
    top: 26%;
    right: -4%;
}

.insight-node-three {
    right: 1%;
    bottom: 18%;
}

.insight-node-four {
    bottom: 1%;
    left: 37%;
}

.insight-node-five {
    bottom: 20%;
    left: -3%;
}

.insight-node-six {
    top: 27%;
    left: -3%;
}


/* =========================================================
   INTRO
   ========================================================= */

.insights-intro-section {
    padding: 110px 0;
    background: #FFFFFF;
}

.insights-intro-copy {
    max-width: 760px;
}

    .insights-intro-copy p {
        font-size: .84rem;
        line-height: 1.9;
        color: var(--tshi-muted);
    }

    .insights-intro-copy
    .insights-intro-lead {
        font-size: 1.05rem;
        font-weight: 500;
        line-height: 1.8;
        color: var(--tshi-text);
    }


/* =========================================================
   FEATURED INSIGHT
   ========================================================= */

.featured-insight-section {
    padding: 0 0 110px;
    background: #FFFFFF;
}

.featured-insight-card {
    position: relative;
    display: grid;
    grid-template-columns: 1fr .8fr;
    align-items: center;
    gap: 70px;
    min-height: 500px;
    overflow: hidden;
    padding: 60px;
    border-radius: 25px;
    background: radial-gradient( circle at 80% 25%, rgba(0, 184, 169, .13), transparent 25% ), linear-gradient( 135deg, #041222, #083B5D );
    box-shadow: 0 30px 70px rgba(11, 31, 59, .13);
}

    .featured-insight-card::before {
        content: "";
        position: absolute;
        inset: 0;
        background-image: linear-gradient( rgba(255, 255, 255, .025) 1px, transparent 1px ), linear-gradient( 90deg, rgba(255, 255, 255, .025) 1px, transparent 1px );
        background-size: 55px 55px;
        pointer-events: none;
    }

.featured-insight-copy,
.featured-insight-visual {
    position: relative;
    z-index: 2;
}

.insight-category {
    margin-bottom: 16px;
    font-size: .5rem;
    font-weight: 700;
    letter-spacing: .15em;
    color: var(--tshi-gold);
}

.featured-insight-copy h2 {
    max-width: 700px;
    margin-bottom: 20px;
    font-size: clamp(2rem, 3.6vw, 3.7rem);
    line-height: 1.08;
    letter-spacing: -.045em;
    color: #FFFFFF;
}

    .featured-insight-copy h2 span {
        color: #6DDDD3;
    }

.featured-insight-copy > p {
    max-width: 650px;
    margin-bottom: 30px;
    font-size: .78rem;
    line-height: 1.85;
    color: rgba(255, 255, 255, .57);
}

.featured-insight-principles {
    display: flex;
    align-items: center;
    gap: 12px;
}

    .featured-insight-principles span {
        font-size: .5rem;
        font-weight: 700;
        letter-spacing: .08em;
        color: rgba(255, 255, 255, .70);
    }

    .featured-insight-principles i {
        width: 20px;
        height: 1px;
        background: var(--tshi-teal);
    }


/* FEATURE VISUAL */

.featured-insight-visual {
    width: min(390px, 100%);
    aspect-ratio: 1 / 1;
    margin: 0 auto;
}

    .featured-insight-visual::before {
        content: "";
        position: absolute;
        inset: 8%;
        border: 1px solid rgba(109, 221, 211, .16);
        border-radius: 50%;
    }

.insight-question {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 130px;
    height: 130px;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: linear-gradient( 135deg, var(--tshi-blue), var(--tshi-teal) );
    box-shadow: 0 20px 45px rgba(0, 184, 169, .20);
}

    .insight-question small {
        margin-bottom: 4px;
        font-size: .4rem;
        font-weight: 700;
        letter-spacing: .12em;
        color: rgba(255, 255, 255, .55);
    }

    .insight-question strong {
        font-family: 'Poppins', sans-serif;
        font-size: 1.35rem;
        color: #FFFFFF;
    }

.insight-answer {
    position: absolute;
    z-index: 4;
    min-width: 100px;
    padding: 10px;
    border: 1px solid rgba(255, 255, 255, .10);
    border-radius: 11px;
    background: rgba(5, 20, 38, .86);
    text-align: center;
}

    .insight-answer span,
    .insight-answer strong {
        display: block;
    }

    .insight-answer span {
        margin-bottom: 3px;
        font-size: .4rem;
        color: var(--tshi-gold);
    }

    .insight-answer strong {
        font-size: .5rem;
        color: rgba(255, 255, 255, .75);
    }

.insight-answer-one {
    top: 2%;
    left: 37%;
}

.insight-answer-two {
    top: 43%;
    right: -2%;
}

.insight-answer-three {
    bottom: 2%;
    left: 37%;
}

.insight-answer-four {
    top: 43%;
    left: -2%;
}


/* =========================================================
   TOPICS
   ========================================================= */

.insight-topics-section {
    padding: 110px 0;
    background: var(--tshi-light);
}

.insight-topics-heading {
    display: grid;
    grid-template-columns: 1fr .65fr;
    align-items: end;
    gap: 60px;
    margin-bottom: 55px;
}

    .insight-topics-heading > p {
        margin: 0;
        font-size: .8rem;
        line-height: 1.8;
        color: var(--tshi-muted);
    }

.insight-topic-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.insight-topic-card {
    display: flex;
    flex-direction: column;
    min-height: 390px;
    padding: 30px;
    border: 1px solid var(--tshi-border);
    border-radius: 19px;
    background: #FFFFFF;
    box-shadow: 0 15px 45px rgba(11, 31, 59, .04);
    transition: transform 220ms ease, box-shadow 220ms ease;
}

    .insight-topic-card:hover {
        transform: translateY(-5px);
        box-shadow: 0 22px 55px rgba(11, 31, 59, .08);
    }

.insight-topic-featured {
    background: linear-gradient( 145deg, #06152A, #083B5D );
    border-color: transparent;
}

.insight-topic-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 32px;
}

    .insight-topic-top > span {
        font-size: .53rem;
        font-weight: 700;
        color: #A7B1BD;
    }

.insight-topic-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 13px;
    background: linear-gradient( 135deg, rgba(0, 102, 255, .10), rgba(0, 184, 169, .10) );
    color: var(--tshi-blue);
}

.insight-topic-featured
.insight-topic-icon {
    background: linear-gradient( 135deg, var(--tshi-blue), var(--tshi-teal) );
    color: #FFFFFF;
}

.insight-topic-label {
    display: block;
    margin-bottom: 7px;
    font-size: .47rem;
    font-weight: 700;
    letter-spacing: .14em;
    color: var(--tshi-blue);
}

.insight-topic-card h3 {
    margin-bottom: 12px;
    font-size: 1.05rem;
}

.insight-topic-card > p {
    margin-bottom: 22px;
    font-size: .68rem;
    line-height: 1.78;
    color: var(--tshi-muted);
}

.insight-topic-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: auto;
}

    .insight-topic-tags span {
        padding: 6px 9px;
        border: 1px solid #E3E8EE;
        border-radius: 50px;
        background: var(--tshi-light);
        font-size: .48rem;
        font-weight: 600;
        color: #536171;
    }

.insight-topic-featured
.insight-topic-top > span {
    color: rgba(255, 255, 255, .28);
}

.insight-topic-featured
.insight-topic-label {
    color: #6DDDD3;
}

.insight-topic-featured h3 {
    color: #FFFFFF;
}

.insight-topic-featured > p {
    color: rgba(255, 255, 255, .56);
}

.insight-topic-featured
.insight-topic-tags span {
    border-color: rgba(255, 255, 255, .10);
    background: rgba(255, 255, 255, .06);
    color: rgba(255, 255, 255, .65);
}


/* =========================================================
   PRINCIPLES
   ========================================================= */

.insights-principles-section {
    padding: 110px 0;
    background: #FFFFFF;
}

.insights-principles-panel {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: 70px;
    align-items: center;
}

    .insights-principles-panel > div:first-child h2 {
        margin-bottom: 17px;
        font-size: clamp(2rem, 3.3vw, 3.4rem);
        line-height: 1.08;
        letter-spacing: -.04em;
    }

        .insights-principles-panel > div:first-child h2 span {
            color: var(--tshi-blue);
        }

    .insights-principles-panel > div:first-child p {
        max-width: 600px;
        margin: 0;
        font-size: .78rem;
        line-height: 1.85;
        color: var(--tshi-muted);
    }

.insights-principles-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    border-top: 1px solid var(--tshi-border);
    border-left: 1px solid var(--tshi-border);
}

    .insights-principles-grid article {
        min-height: 180px;
        padding: 25px;
        border-right: 1px solid var(--tshi-border);
        border-bottom: 1px solid var(--tshi-border);
    }

        .insights-principles-grid article > span {
            display: block;
            margin-bottom: 25px;
            font-size: .48rem;
            font-weight: 700;
            color: var(--tshi-blue);
        }

    .insights-principles-grid strong {
        display: block;
        margin-bottom: 8px;
        font-family: 'Poppins', sans-serif;
        font-size: .72rem;
        color: var(--tshi-navy);
    }

    .insights-principles-grid p {
        margin: 0;
        font-size: .61rem;
        line-height: 1.7;
        color: var(--tshi-muted);
    }


/* =========================================================
   COMING INSIGHTS
   ========================================================= */

.insights-coming-section {
    padding: 20px 0 110px;
    background: #FFFFFF;
}

    .insights-coming-section
    .col-lg-7 > p {
        max-width: 720px;
        margin-top: 20px;
        font-size: .82rem;
        line-height: 1.85;
        color: var(--tshi-muted);
    }

.insights-coming-card {
    position: relative;
    overflow: hidden;
    padding: 35px;
    border: 1px solid var(--tshi-border);
    border-radius: 20px;
    background: linear-gradient( 145deg, var(--tshi-light), #FFFFFF );
}

    .insights-coming-card::before {
        content: "";
        position: absolute;
        top: -65px;
        right: -45px;
        width: 130px;
        height: 130px;
        border-radius: 50%;
        background: rgba(0, 184, 169, .08);
    }

    .insights-coming-card > span {
        display: block;
        margin-bottom: 8px;
        font-size: .5rem;
        font-weight: 700;
        letter-spacing: .14em;
        color: var(--tshi-blue);
    }

    .insights-coming-card h3 {
        margin-bottom: 11px;
        font-size: 1.2rem;
    }

    .insights-coming-card p {
        margin-bottom: 22px;
        font-size: .7rem;
        line-height: 1.75;
        color: var(--tshi-muted);
    }

    .insights-coming-card a {
        display: inline-flex;
        align-items: center;
        gap: 10px;
        font-size: .68rem;
        font-weight: 700;
        color: var(--tshi-blue);
    }

        .insights-coming-card a:hover {
            color: var(--tshi-teal);
        }


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 1199.98px) {

    .insight-topic-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .insights-principles-panel {
        grid-template-columns: 1fr 1fr;
        gap: 40px;
    }
}


@media (max-width: 991.98px) {

    .insights-hero-visual {
        max-width: 400px;
        margin: 30px auto 0;
    }

    .featured-insight-card {
        grid-template-columns: 1fr;
        padding: 45px 35px;
    }

    .insight-topics-heading {
        grid-template-columns: 1fr;
        gap: 15px;
    }

    .insights-principles-panel {
        grid-template-columns: 1fr;
    }
}


@media (max-width: 767.98px) {

    .insights-intro-section,
    .insight-topics-section,
    .insights-principles-section {
        padding: 80px 0;
    }

    .featured-insight-section {
        padding-bottom: 80px;
    }

    .insight-topic-grid {
        grid-template-columns: 1fr;
    }

    .insight-topic-card {
        min-height: auto;
    }

    .insights-coming-section {
        padding-bottom: 80px;
    }
}


@media (max-width: 575.98px) {

    .insight-node {
        min-width: 88px;
        padding: 8px 9px;
    }

        .insight-node strong {
            font-size: .38rem;
        }

    .featured-insight-card {
        padding: 35px 25px;
    }

    .featured-insight-principles {
        flex-wrap: wrap;
    }

    .insights-principles-grid {
        grid-template-columns: 1fr;
    }
}
/* =========================================================
   CONTACT PAGE
   ========================================================= */


/* =========================================================
   HERO
   ========================================================= */

.contact-hero-details {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    margin-top: 32px;
}

.contact-hero-detail {
    display: inline-flex;
    align-items: center;
    gap: 13px;
    padding: 12px 16px;
    border: 1px solid rgba(255, 255, 255, .10);
    border-radius: 12px;
    background: rgba(255, 255, 255, .04);
    color: #FFFFFF;
    transition: background 200ms ease, border-color 200ms ease;
}

    .contact-hero-detail:hover {
        border-color: rgba(109, 221, 211, .28);
        background: rgba(0, 184, 169, .08);
        color: #FFFFFF;
    }

.contact-detail-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: rgba(0, 184, 169, .12);
    color: #6DDDD3;
}

.contact-hero-detail small,
.contact-hero-detail strong {
    display: block;
}

.contact-hero-detail small {
    margin-bottom: 2px;
    font-size: .4rem;
    font-weight: 700;
    letter-spacing: .13em;
    color: rgba(255, 255, 255, .38);
}

.contact-hero-detail strong {
    font-size: .58rem;
    font-weight: 600;
    color: rgba(255, 255, 255, .82);
}


/* VISUAL */

.contact-hero-visual {
    position: relative;
    width: min(430px, 100%);
    aspect-ratio: 1 / 1;
    margin-left: auto;
}

.contact-visual-ring {
    position: absolute;
    border-radius: 50%;
}

    .contact-visual-ring.ring-one {
        inset: 8%;
        border: 1px dashed rgba(109, 221, 211, .18);
    }

    .contact-visual-ring.ring-two {
        inset: 28%;
        border: 1px solid rgba(0, 102, 255, .25);
    }

.contact-visual-core {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 4;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 92px;
    height: 92px;
    transform: translate(-50%, -50%) rotate(45deg);
    border-radius: 24px;
    background: linear-gradient( 135deg, var(--tshi-blue), var(--tshi-teal) );
    box-shadow: 0 20px 55px rgba(0, 184, 169, .23);
}

    .contact-visual-core span {
        transform: rotate(-45deg);
        font-family: 'Poppins', sans-serif;
        font-size: 2.3rem;
        font-weight: 700;
        color: #FFFFFF;
    }

.contact-visual-step {
    position: absolute;
    z-index: 5;
    min-width: 105px;
    padding: 10px 13px;
    border: 1px solid rgba(255, 255, 255, .10);
    border-radius: 11px;
    background: rgba(5, 20, 38, .86);
    backdrop-filter: blur(10px);
}

    .contact-visual-step span,
    .contact-visual-step strong {
        display: block;
    }

    .contact-visual-step span {
        margin-bottom: 2px;
        font-size: .41rem;
        font-weight: 700;
        color: var(--tshi-gold);
    }

    .contact-visual-step strong {
        font-size: .44rem;
        letter-spacing: .08em;
        color: rgba(255, 255, 255, .77);
    }

.contact-step-one {
    top: 3%;
    left: 38%;
}

.contact-step-two {
    top: 43%;
    right: -2%;
}

.contact-step-three {
    bottom: 3%;
    left: 38%;
}

.contact-step-four {
    top: 43%;
    left: -2%;
}


/* =========================================================
   CONTACT MAIN
   ========================================================= */

.contact-main-section {
    padding: 110px 0;
    background: var(--tshi-light);
}

.contact-main-grid {
    display: grid;
    grid-template-columns: .72fr 1.28fr;
    gap: 80px;
    align-items: start;
}

.contact-introduction {
    position: sticky;
    top: 120px;
}

.contact-intro-lead {
    margin-top: 20px;
    font-size: .92rem !important;
    font-weight: 500;
    line-height: 1.8 !important;
    color: var(--tshi-text) !important;
}

.contact-introduction > p {
    font-size: .75rem;
    line-height: 1.85;
    color: var(--tshi-muted);
}

.contact-reasons {
    margin-top: 38px;
    border-top: 1px solid var(--tshi-border);
}

.contact-reason {
    display: grid;
    grid-template-columns: 38px 1fr;
    gap: 15px;
    padding: 20px 0;
    border-bottom: 1px solid var(--tshi-border);
}

    .contact-reason > span {
        padding-top: 2px;
        font-size: .48rem;
        font-weight: 700;
        color: var(--tshi-blue);
    }

    .contact-reason strong {
        display: block;
        margin-bottom: 5px;
        font-family: 'Poppins', sans-serif;
        font-size: .68rem;
        color: var(--tshi-navy);
    }

    .contact-reason p {
        margin: 0;
        font-size: .59rem;
        line-height: 1.7;
        color: var(--tshi-muted);
    }


/* =========================================================
   FORM
   ========================================================= */

.contact-form-card {
    padding: 42px;
    border: 1px solid var(--tshi-border);
    border-radius: 22px;
    background: #FFFFFF;
    box-shadow: 0 22px 60px rgba(11, 31, 59, .07);
}

.contact-form {
    display: flex;
    flex-direction: column;
    gap: 22px;
}

.contact-form-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.contact-field {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

    .contact-field label {
        font-size: .57rem;
        font-weight: 700;
        color: var(--tshi-navy);
    }

.contact-input {
    width: 100%;
    padding: 13px 14px;
    border: 1px solid #DCE3EA;
    border-radius: 10px;
    outline: none;
    background: #FFFFFF;
    font-family: 'Montserrat', sans-serif;
    font-size: .66rem;
    color: var(--tshi-text);
    transition: border-color 180ms ease, box-shadow 180ms ease;
}

    .contact-input::placeholder {
        color: #A3ADB8;
    }

    .contact-input:focus {
        border-color: var(--tshi-blue);
        box-shadow: 0 0 0 3px rgba(0, 102, 255, .08);
    }

.contact-select {
    min-height: 45px;
}

.contact-textarea {
    min-height: 145px;
    resize: vertical;
}

.contact-validation {
    min-height: 14px;
    font-size: .5rem;
    color: #C83E4D;
}

.contact-validation-summary {
    font-size: .58rem;
    color: #C83E4D;
}

    .contact-validation-summary ul {
        margin: 0;
        padding-left: 18px;
    }


/* SUCCESS */

.contact-success {
    display: grid;
    grid-template-columns: 40px 1fr;
    gap: 13px;
    margin-bottom: 25px;
    padding: 15px;
    border: 1px solid rgba(0, 184, 169, .20);
    border-radius: 12px;
    background: rgba(0, 184, 169, .06);
}

.contact-success-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--tshi-teal);
    font-size: .65rem;
    font-weight: 700;
    color: #FFFFFF;
}

.contact-success strong {
    display: block;
    margin-bottom: 4px;
    font-size: .62rem;
    color: var(--tshi-navy);
}

.contact-success p {
    margin: 0;
    font-size: .54rem;
    line-height: 1.65;
    color: var(--tshi-muted);
}


/* FORM FOOTER */

.contact-form-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
    padding-top: 4px;
}

    .contact-form-footer > p {
        max-width: 410px;
        margin: 0;
        font-size: .49rem;
        line-height: 1.65;
        color: #8A96A3;
    }

.contact-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    flex: 0 0 auto;
    padding: 13px 21px;
    border: 0;
    border-radius: 9px;
    background: linear-gradient( 135deg, var(--tshi-blue), #087DEB );
    font-family: 'Montserrat', sans-serif;
    font-size: .6rem;
    font-weight: 700;
    color: #FFFFFF;
    cursor: pointer;
    box-shadow: 0 10px 25px rgba(0, 102, 255, .16);
    transition: transform 180ms ease, box-shadow 180ms ease;
}

    .contact-submit:hover {
        transform: translateY(-2px);
        box-shadow: 0 15px 30px rgba(0, 102, 255, .23);
    }


/* =========================================================
   WHAT HAPPENS NEXT
   ========================================================= */

.contact-next-section {
    padding: 110px 0;
    background: #FFFFFF;
}

.contact-next-heading {
    max-width: 750px;
    margin-bottom: 48px;
}

.contact-next-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border-top: 1px solid var(--tshi-border);
    border-bottom: 1px solid var(--tshi-border);
}

    .contact-next-grid article {
        position: relative;
        min-height: 245px;
        padding: 28px;
        border-right: 1px solid var(--tshi-border);
    }

        .contact-next-grid article:last-child {
            border-right: 0;
        }

        .contact-next-grid article > span {
            position: absolute;
            top: 27px;
            right: 27px;
            font-size: .48rem;
            font-weight: 700;
            color: #B0BAC5;
        }

.contact-next-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    margin-bottom: 35px;
    border-radius: 13px;
    background: linear-gradient( 135deg, rgba(0, 102, 255, .10), rgba(0, 184, 169, .10) );
    color: var(--tshi-blue);
}

.contact-next-grid h3 {
    margin-bottom: 10px;
    font-size: .9rem;
}

.contact-next-grid p {
    margin: 0;
    font-size: .63rem;
    line-height: 1.75;
    color: var(--tshi-muted);
}


/* =========================================================
   DIRECT CONTACT
   ========================================================= */

.contact-direct-section {
    padding: 0 0 110px;
    background: #FFFFFF;
}

.contact-direct-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    padding: 45px 50px;
    border-radius: 22px;
    background: linear-gradient( 135deg, #041222, #083B5D );
}

    .contact-direct-panel > div > span {
        display: block;
        margin-bottom: 7px;
        font-size: .46rem;
        font-weight: 700;
        letter-spacing: .14em;
        color: var(--tshi-gold);
    }

    .contact-direct-panel h2 {
        margin-bottom: 7px;
        font-size: 1.5rem;
        color: #FFFFFF;
    }

    .contact-direct-panel p {
        margin: 0;
        font-size: .65rem;
        color: rgba(255, 255, 255, .50);
    }

.contact-direct-email {
    display: flex;
    align-items: center;
    gap: 13px;
    flex: 0 0 auto;
    padding: 14px 17px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 13px;
    background: rgba(255, 255, 255, .05);
    color: #FFFFFF;
}

    .contact-direct-email:hover {
        border-color: rgba(109, 221, 211, .30);
        background: rgba(0, 184, 169, .08);
        color: #FFFFFF;
    }

.contact-direct-email-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 37px;
    height: 37px;
    border-radius: 50%;
    background: rgba(0, 184, 169, .12);
    color: #6DDDD3;
}

.contact-direct-email small,
.contact-direct-email strong {
    display: block;
}

.contact-direct-email small {
    margin-bottom: 2px;
    font-size: .39rem;
    font-weight: 700;
    letter-spacing: .12em;
    color: rgba(255, 255, 255, .38);
}

.contact-direct-email strong {
    font-size: .57rem;
    color: rgba(255, 255, 255, .82);
}

.contact-direct-email b {
    margin-left: 12px;
    font-size: .8rem;
    color: #6DDDD3;
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 991.98px) {

    .contact-hero-visual {
        max-width: 390px;
        margin: 30px auto 0;
    }

    .contact-main-grid {
        grid-template-columns: 1fr;
        gap: 50px;
    }

    .contact-introduction {
        position: static;
    }

    .contact-next-grid {
        grid-template-columns: repeat(2, 1fr);
    }

        .contact-next-grid article:nth-child(2) {
            border-right: 0;
        }

    .contact-direct-panel {
        align-items: flex-start;
        flex-direction: column;
    }
}


@media (max-width: 767.98px) {

    .contact-main-section,
    .contact-next-section {
        padding: 80px 0;
    }

    .contact-form-card {
        padding: 30px;
    }

    .contact-form-row {
        grid-template-columns: 1fr;
    }

    .contact-form-footer {
        align-items: flex-start;
        flex-direction: column;
    }

    .contact-direct-section {
        padding-bottom: 80px;
    }
}


@media (max-width: 575.98px) {

    .contact-visual-step {
        min-width: 88px;
        padding: 8px 9px;
    }

        .contact-visual-step strong {
            font-size: .38rem;
        }

    .contact-form-card {
        padding: 25px 20px;
    }

    .contact-next-grid {
        grid-template-columns: 1fr;
    }

        .contact-next-grid article {
            min-height: auto;
            border-right: 0;
            border-bottom: 1px solid var(--tshi-border);
        }

            .contact-next-grid article:last-child {
                border-bottom: 0;
            }

    .contact-direct-panel {
        padding: 32px 24px;
    }

    .contact-direct-email {
        width: 100%;
    }
}
/* =========================================================
   ACTIVE NAVIGATION
   ========================================================= */

.site-header .navbar-nav .nav-link {
    position: relative;
}

    .site-header .navbar-nav .nav-link.active {
        color: var(--tshi-blue);
        font-weight: 600;
    }

        .site-header .navbar-nav .nav-link.active::after {
            content: "";
            position: absolute;
            left: 50%;
            bottom: -6px;
            width: 22px;
            height: 2px;
            background: var(--tshi-blue);
            border-radius: 999px;
            transform: translateX(-50%);
        }

@media (max-width: 991.98px) {

    .site-header .navbar-nav .nav-link.active::after {
        left: 0;
        bottom: 2px;
        transform: none;
    }
}

/* =========================================================
   LEGAL PAGES
   ========================================================= */

.legal-hero {
    position: relative;
    overflow: hidden;
    padding: 8.5rem 0 5.5rem;
    background: radial-gradient(circle at 85% 15%, rgba(0, 184, 169, 0.13), transparent 28rem), radial-gradient(circle at 65% 90%, rgba(0, 102, 255, 0.16), transparent 32rem), linear-gradient(135deg, var(--tshi-navy-dark), var(--tshi-navy));
    color: var(--tshi-white);
}

    .legal-hero::after {
        content: "";
        position: absolute;
        width: 26rem;
        height: 26rem;
        right: -8rem;
        top: -12rem;
        border: 1px solid rgba(255, 255, 255, 0.08);
        border-radius: 50%;
    }

.legal-hero-inner {
    position: relative;
    z-index: 1;
    max-width: 800px;
}

.legal-hero h1 {
    max-width: 700px;
    margin: 1rem 0 1.25rem;
    font-family: "Poppins", sans-serif;
    font-size: clamp(2.7rem, 6vw, 5rem);
    font-weight: 700;
    letter-spacing: -0.045em;
    line-height: 1;
}

.legal-hero p {
    max-width: 720px;
    margin: 0;
    color: rgba(255, 255, 255, 0.72);
    font-size: 1.05rem;
    line-height: 1.85;
}

.legal-section {
    padding: 6rem 0 7rem;
    background: var(--tshi-white);
}

.legal-layout {
    display: grid;
    grid-template-columns: minmax(240px, 320px) minmax(0, 760px);
    gap: clamp(3rem, 7vw, 7rem);
    align-items: start;
}

.legal-sidebar {
    position: sticky;
    top: 7rem;
}

.legal-sidebar-card {
    padding: 2rem;
    background: var(--tshi-light);
    border: 1px solid var(--tshi-border);
    border-radius: var(--tshi-radius);
}

.legal-sidebar-label {
    display: block;
    margin-bottom: 1rem;
    color: var(--tshi-blue);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.14em;
}

.legal-sidebar-card h3 {
    margin: 0 0 1rem;
    color: var(--tshi-navy);
    font-family: "Poppins", sans-serif;
    font-size: 1.4rem;
    line-height: 1.3;
}

.legal-sidebar-card p {
    margin-bottom: 1.5rem;
    color: var(--tshi-muted);
    font-size: 0.9rem;
    line-height: 1.7;
}

.legal-contact-link,
.legal-inline-link {
    display: inline-flex;
    gap: 0.6rem;
    align-items: center;
    color: var(--tshi-blue);
    font-weight: 600;
    text-decoration: none;
}

.legal-contact-link {
    font-size: 0.82rem;
}

    .legal-contact-link:hover,
    .legal-inline-link:hover {
        color: var(--tshi-navy);
    }

.legal-content {
    min-width: 0;
}

.legal-intro {
    margin-bottom: 3rem;
    padding-bottom: 3rem;
    border-bottom: 1px solid var(--tshi-border);
}

    .legal-intro p {
        margin: 0;
        color: var(--tshi-text);
        font-family: "Poppins", sans-serif;
        font-size: 1.3rem;
        font-weight: 500;
        line-height: 1.65;
    }

.legal-block {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr);
    gap: 1.5rem;
    padding: 2.5rem 0;
    border-bottom: 1px solid var(--tshi-border);
}

.legal-number {
    padding-top: 0.25rem;
    color: var(--tshi-blue);
    font-family: "Poppins", sans-serif;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.legal-block h2 {
    margin: 0 0 1.25rem;
    color: var(--tshi-navy);
    font-family: "Poppins", sans-serif;
    font-size: 1.55rem;
    font-weight: 600;
    letter-spacing: -0.02em;
}

.legal-block p,
.legal-block li {
    color: var(--tshi-muted);
    font-size: 0.95rem;
    line-height: 1.85;
}

.legal-block p {
    margin: 0 0 1rem;
}

    .legal-block p:last-child {
        margin-bottom: 0;
    }

.legal-block ul {
    margin: 1.25rem 0 1.5rem;
    padding-left: 1.25rem;
}

.legal-block li {
    margin-bottom: 0.45rem;
}

.legal-highlight,
.legal-contact-card {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin: 1.5rem 0;
    padding: 1.25rem 1.4rem;
    border-left: 3px solid var(--tshi-blue);
    background: var(--tshi-light);
}

    .legal-highlight strong,
    .legal-contact-card strong {
        color: var(--tshi-navy);
    }

    .legal-highlight a,
    .legal-contact-card a {
        color: var(--tshi-blue);
        text-decoration: none;
    }

.legal-note {
    margin-top: 1.5rem !important;
    font-size: 0.88rem !important;
}

.legal-block-last {
    border-bottom: 0;
}

@media (max-width: 991.98px) {

    .legal-hero {
        padding: 7rem 0 4.5rem;
    }

    .legal-section {
        padding: 4rem 0 5rem;
    }

    .legal-layout {
        grid-template-columns: 1fr;
        gap: 3rem;
    }

    .legal-sidebar {
        position: static;
    }
}

@media (max-width: 575.98px) {

    .legal-hero {
        padding: 6rem 0 3.5rem;
    }

    .legal-section {
        padding: 3.5rem 0 4rem;
    }

    .legal-block {
        grid-template-columns: 1fr;
        gap: 0.75rem;
    }

    .legal-number {
        padding: 0;
    }

    .legal-sidebar-card {
        padding: 1.5rem;
    }

    .legal-intro p {
        font-size: 1.1rem;
    }
}
.legal-related-links {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    margin-top: 1.5rem;
}
/* WhatsApp footer icon */

.footer-social .footer-whatsapp {
    color: #25D366;
}

    .footer-social .footer-whatsapp:hover {
        color: #25D366;
        border-color: #25D366;
        background: rgba(37, 211, 102, 0.08);
    }


/* =========================================================
   PRODUCTION RESPONSIVE HARDENING
   Tshimoloho Advisory Services
   ========================================================= */

/* ---------- GLOBAL ---------- */

html,
body {
    max-width: 100%;
    overflow-x: hidden;
}

img,
svg {
    max-width: 100%;
}

img {
    height: auto;
}

button,
a,
input,
select,
textarea {
    -webkit-tap-highlight-color: transparent;
}


/* ---------- TABLET / MOBILE NAV ---------- */

@media (max-width: 991.98px) {

    .site-header .container {
        position: relative;
    }

    .navbar-collapse {
        width: 100%;
        max-height: calc(100vh - 100px);
        overflow-y: auto;
    }

    .navbar .nav-link {
        min-height: 44px;
        display: flex;
        align-items: center;
    }

    .navbar-collapse .btn-tshimoloho {
        min-height: 48px;
    }
}


/* ---------- TABLET ---------- */

@media (max-width: 767.98px) {

    section[id] {
        scroll-margin-top: 82px;
    }

    .container {
        padding-left: 20px;
        padding-right: 20px;
    }

    .section-title,
    .technology-title,
    .solutions-title {
        overflow-wrap: break-word;
    }

    .hero-title {
        font-size: clamp(2.8rem, 12vw, 3.4rem);
        line-height: .98;
    }

    .page-hero-title {
        font-size: clamp(2.6rem, 11vw, 3.8rem);
        line-height: 1;
    }

    .hero-description,
    .page-hero-lead,
    .section-lead,
    .section-copy {
        max-width: 100%;
    }

    .hero-primary-btn,
    .hero-secondary-btn,
    .cta-primary,
    .cta-secondary {
        min-height: 48px;
    }

    .final-cta {
        min-height: auto;
    }

    .footer-column > a {
        min-height: 30px;
        display: flex;
        align-items: center;
    }

    .footer-social a {
        width: 40px;
        height: 40px;
    }
}


/* ---------- PHONE ---------- */

@media (max-width: 575.98px) {

    .container {
        padding-left: 18px;
        padding-right: 18px;
    }

    .navbar {
        min-height: 70px;
        padding: 7px 0;
    }

    .brand-logo {
        height: 43px;
        max-width: 205px;
    }

    .navbar-toggler {
        min-width: 44px;
        min-height: 44px;
    }


    /* HERO */

    .min-vh-hero {
        min-height: auto;
        padding-top: 55px;
        padding-bottom: 40px;
    }

    .hero-title {
        margin-bottom: 20px;
        font-size: clamp(2.55rem, 13vw, 3.15rem);
        letter-spacing: -.04em;
    }

    .hero-subtitle {
        font-size: 1.05rem;
    }

    .hero-description {
        margin-bottom: 28px;
        font-size: .9rem;
        line-height: 1.7;
    }

    .hero-actions {
        width: 100%;
        gap: 10px;
    }

    .hero-primary-btn,
    .hero-secondary-btn {
        width: 100%;
    }

    .hero-visual {
        min-height: 300px;
    }

    .innovation-orbit {
        width: 270px;
        height: 270px;
    }

    .orbit-ring-one {
        width: 205px;
        height: 205px;
    }

    .orbit-ring-two {
        width: 270px;
        height: 270px;
    }

    .orbit-core {
        width: 100px;
        height: 100px;
        border-radius: 26px;
    }

        .orbit-core span {
            font-size: 3.1rem;
        }


    /* TYPOGRAPHY */

    .section-eyebrow,
    .dark-eyebrow,
    .cta-eyebrow {
        letter-spacing: .16em;
    }

    .section-title {
        font-size: clamp(2rem, 10vw, 2.7rem);
        line-height: 1.08;
    }

    .page-hero {
        padding-top: 75px;
        padding-bottom: 80px;
    }

    .page-hero-title {
        font-size: clamp(2.5rem, 12vw, 3.2rem);
        letter-spacing: -.045em;
    }


    /* CARDS */

    .advisory-card,
    .service-card {
        min-height: auto;
    }

    .advisory-card {
        padding: 28px 22px 55px;
    }

    .service-card {
        padding: 26px 22px;
    }


    /* FINAL CTA */

    .final-cta-section {
        padding: 60px 0;
    }

    .final-cta {
        padding: 38px 22px;
        border-radius: 22px;
    }

    .cta-content h2 {
        font-size: clamp(2.2rem, 11vw, 3rem);
    }

    .cta-actions {
        width: 100%;
    }

    .cta-primary,
    .cta-secondary {
        width: 100%;
    }

    .cta-graphic {
        width: 240px;
        height: 240px;
    }

    .cta-orbit-one {
        width: 230px;
        height: 230px;
    }

    .cta-orbit-two {
        width: 170px;
        height: 170px;
    }

    .cta-orbit-three {
        width: 115px;
        height: 115px;
    }

    .cta-core {
        width: 88px;
        height: 88px;
        border-radius: 23px;
    }

        .cta-core span {
            font-size: 2.5rem;
        }

    .cta-message {
        display: none;
    }


    /* FOOTER */

    .site-footer {
        padding-top: 55px;
    }

    .footer-main {
        gap: 35px;
        padding-bottom: 45px;
    }

    .footer-brand {
        max-width: 100%;
    }

    .footer-logo img {
        height: 52px;
    }

    .footer-brand-copy {
        max-width: 340px;
        font-size: .76rem;
    }

    .footer-column h4 {
        font-size: .82rem;
    }

    .footer-column > a,
    .footer-contact p {
        font-size: .72rem;
    }

    .footer-bottom {
        gap: 14px;
        min-height: auto;
        padding: 24px 0;
        line-height: 1.7;
    }

    .footer-legal {
        flex-wrap: wrap;
        gap: 10px 18px;
    }
}


/* ---------- VERY SMALL PHONES ---------- */

@media (max-width: 374.98px) {

    .container {
        padding-left: 15px;
        padding-right: 15px;
    }

    .brand-logo {
        height: 40px;
        max-width: 185px;
    }

    .hero-title {
        font-size: 2.35rem;
    }

    .innovation-orbit {
        transform: scale(.9);
    }

    .cta-graphic {
        transform: scale(.9);
    }
}
/* =========================================================
   CONTACT FORM — ANTI-SPAM HONEYPOT
   ========================================================= */

.contact-honeypot {
    position: absolute !important;
    left: -10000px !important;
    top: auto !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}