﻿:root {
    --ct-dark: #021c17;
    --ct-deep: #06382b;
    --ct-navy: #071e42;
    --ct-green: #53df69;
    --ct-gold: #ffc400;
    --ct-light: #edf3ef;
    --ct-white: #fff;
    --ct-text: #172820;
    --ct-muted: #68786f;
    --ct-line: rgba(255,255,255,.15);
    --ct-shadow: 0 25px 70px rgba(0,35,25,.16)
}

* {
    box-sizing: border-box
}

html {
    scroll-behavior: smooth
}

body {
    margin: 0;
    color: var(--ct-text);
    background: var(--ct-light);
    font-family: Arial,"Helvetica Neue",sans-serif;
    overflow-x: hidden
}

    body.tscct-menu-lock {
        overflow: hidden
    }

a {
    color: inherit;
    text-decoration: none
}

img {
    display: block;
    max-width: 100%
}

button, input, select, textarea {
    font: inherit
}

.tscct-container {
    width: min(1180px,calc(100% - 40px));
    margin: auto
}

.tscct-topbar {
    position: relative;
    z-index: 60;
    color: #d8ebe2;
    background: #011713;
    font-size: 12px
}

.tscct-topbar-inner {
    min-height: 38px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px
}

    .tscct-topbar-inner > span {
        color: var(--ct-green);
        font-weight: 700
    }

    .tscct-topbar-inner > div {
        display: flex;
        gap: 25px
    }

.tscct-topbar a:hover {
    color: var(--ct-gold)
}

.tscct-header {
    position: absolute;
    z-index: 50;
    top: 38px;
    width: 100%;
    border-bottom: 1px solid var(--ct-line);
    transition: .3s
}

    .tscct-header.fixed {
        position: fixed;
        top: 0;
        background: rgba(2,28,23,.96);
        box-shadow: 0 12px 35px rgba(0,0,0,.28);
        backdrop-filter: blur(12px)
    }

.tscct-navbar {
    height: 92px;
    display: flex;
    align-items: center;
    gap: 34px
}

.tscct-brand {
    margin-right: auto;
    display: flex;
    align-items: center;
    color: #fff;
    font-size: 20px;
    font-weight: 800
}

    .tscct-brand img {
        width: 82px;
        height: 65px;
        padding: 3px;
        object-fit: contain;
        background: #fff;
        border-radius: 10px
    }

    .tscct-brand > span {
        margin-left: 10px
    }

    .tscct-brand small {
        display: block;
        color: var(--ct-green);
        font-size: 8px;
        letter-spacing: 1.5px;
        text-transform: uppercase
    }

.tscct-desktop-nav {
    display: flex;
    gap: 30px
}

    .tscct-desktop-nav a {
        position: relative;
        color: rgba(255,255,255,.76);
        font-size: 12px;
        font-weight: 700;
        text-transform: uppercase
    }

        .tscct-desktop-nav a:after {
            content: "";
            position: absolute;
            left: 0;
            bottom: -11px;
            width: 0;
            height: 2px;
            background: var(--ct-gold);
            transition: .25s
        }

        .tscct-desktop-nav a:hover, .tscct-desktop-nav .active {
            color: #fff
        }

            .tscct-desktop-nav a:hover:after, .tscct-desktop-nav .active:after {
                width: 100%
            }

.tscct-nav-cta, .tscct-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 11px;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    border-radius: 999px;
    transition: .25s
}

.tscct-nav-cta {
    padding: 14px 20px;
    color: #05261d;
    background: var(--ct-gold)
}

    .tscct-nav-cta:hover, .tscct-button:hover {
        transform: translateY(-3px)
    }

.tscct-menu-button {
    display: none;
    width: 44px;
    height: 44px;
    color: #fff;
    background: rgba(255,255,255,.08);
    border: 1px solid var(--ct-line);
    border-radius: 11px;
    font-size: 21px
}

.tscct-mobile-nav {
    display: none
}

.tscct-hero {
    position: relative;
    min-height: 835px;
    display: flex;
    align-items: center;
    color: #fff;
    background: var(--ct-dark);
    overflow: hidden
}

.tscct-hero-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    animation: ctHeroZoom 18s ease-in-out infinite alternate
}

.tscct-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg,rgba(1,24,19,.98),rgba(2,41,29,.89) 48%,rgba(2,25,21,.33)),linear-gradient(0deg,rgba(2,25,20,.96),transparent 47%)
}

.tscct-hero-grid {
    position: absolute;
    inset: 0;
    opacity: .17;
    background-image: radial-gradient(rgba(82,225,101,.7) 1px,transparent 1px);
    background-size: 36px 36px;
    mask-image: linear-gradient(90deg,#000,transparent 76%)
}

.tscct-hero-layout {
    position: relative;
    z-index: 2;
    padding-top: 95px;
    display: grid;
    grid-template-columns: 1.15fr .65fr;
    gap: 95px;
    align-items: center
}

.tscct-eyebrow, .tscct-section-label {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--ct-gold);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 1.7px;
    text-transform: uppercase
}

    .tscct-eyebrow:before {
        content: "";
        width: 42px;
        height: 1px;
        background: var(--ct-gold)
    }

.tscct-hero h1 {
    max-width: 790px;
    margin: 24px 0;
    font-size: clamp(58px,6.3vw,94px);
    line-height: .98;
    letter-spacing: -5px
}

    .tscct-hero h1 em, .tscct-heading h2 em, .tscct-form-heading h2 em, .tscct-service-area h2 em {
        color: var(--ct-green);
        font-style: normal
    }

.tscct-hero-copy > p {
    max-width: 690px;
    color: rgba(255,255,255,.74);
    font-size: 17px;
    line-height: 1.8
}

.tscct-hero-buttons {
    margin-top: 34px;
    display: flex;
    gap: 12px;
    flex-wrap: wrap
}

.tscct-button {
    min-height: 53px;
    padding: 0 25px
}

    .tscct-button.gold {
        color: #05261d;
        background: linear-gradient(110deg,var(--ct-gold),#ffe47a);
        box-shadow: 0 14px 30px rgba(255,196,0,.18)
    }

    .tscct-button.outline {
        color: #fff;
        background: rgba(255,255,255,.07);
        border: 1px solid rgba(255,255,255,.28)
    }

.tscct-hero-card {
    padding: 30px;
    background: linear-gradient(145deg,rgba(8,86,53,.8),rgba(4,29,28,.85));
    border: 1px solid rgba(255,255,255,.24);
    border-radius: 25px;
    backdrop-filter: blur(14px);
    box-shadow: 0 30px 70px rgba(0,0,0,.3)
}

.tscct-hero-card-label {
    color: var(--ct-green);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 1.4px
}

.tscct-hero-card > strong {
    margin-top: 28px;
    display: block;
    color: var(--ct-gold);
    font-size: 58px;
    line-height: 1
}

.tscct-hero-card h2 {
    margin: 6px 0;
    font-size: 24px
}

.tscct-hero-card > p {
    color: rgba(255,255,255,.6);
    font-size: 12px;
    line-height: 1.7
}

.tscct-hero-card > div {
    margin-top: 20px;
    padding-top: 17px;
    display: grid;
    gap: 10px;
    border-top: 1px solid var(--ct-line)
}

.tscct-hero-card div span {
    font-size: 10px
}

.tscct-hero-card div b {
    margin-right: 7px;
    color: var(--ct-gold)
}

.tscct-hero-footer {
    position: absolute;
    z-index: 3;
    bottom: 0;
    width: 100%;
    background: rgba(2,29,23,.87);
    border-top: 1px solid var(--ct-line);
    backdrop-filter: blur(12px)
}

    .tscct-hero-footer > div {
        min-height: 96px;
        display: grid;
        grid-template-columns: repeat(3,1fr)
    }

    .tscct-hero-footer a {
        padding: 0 22px;
        display: flex;
        align-items: center;
        gap: 14px;
        border-right: 1px solid var(--ct-line)
    }

        .tscct-hero-footer a:last-child {
            border: 0
        }

        .tscct-hero-footer a > span {
            color: var(--ct-gold);
            font-size: 25px
        }

    .tscct-hero-footer small, .tscct-hero-footer b {
        display: block
    }

    .tscct-hero-footer small {
        color: rgba(255,255,255,.45);
        font-size: 8px
    }

    .tscct-hero-footer b {
        margin-top: 5px;
        color: #fff;
        font-size: 11px;
        overflow-wrap: anywhere
    }

.tscct-section {
    padding: 120px 0
}

.tscct-heading {
    max-width: 780px;
    margin: 0 auto 55px;
    text-align: center
}

    .tscct-heading h2, .tscct-form-heading h2, .tscct-service-area h2 {
        margin: 15px 0 20px;
        color: var(--ct-deep);
        font-size: clamp(40px,4vw,60px);
        line-height: 1.05;
        letter-spacing: -2.7px
    }

    .tscct-heading p, .tscct-form-heading p, .tscct-service-area p {
        max-width: 630px;
        margin: 0 auto;
        color: var(--ct-muted);
        font-size: 14px;
        line-height: 1.8
    }

.tscct-contact-cards {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 18px
}

.tscct-contact-card {
    position: relative;
    min-height: 330px;
    padding: 36px 31px;
    background: #fff;
    border: 1px solid #dbe6df;
    border-radius: 21px;
    box-shadow: 0 15px 45px rgba(0,42,30,.07);
    overflow: hidden;
    transition: .35s
}

    .tscct-contact-card:hover {
        transform: translateY(-8px);
        box-shadow: var(--ct-shadow)
    }

.tscct-card-number {
    position: absolute;
    right: 24px;
    top: 19px;
    color: #e9efeb;
    font-size: 44px;
    font-weight: 800
}

.tscct-card-icon {
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    color: var(--ct-deep);
    background: #e8f7eb;
    border-radius: 17px;
    font-size: 25px
}

.tscct-contact-card small {
    margin-top: 27px;
    display: block;
    color: #89978f;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 1.2px
}

.tscct-contact-card h3 {
    margin: 9px 0;
    color: var(--ct-deep);
    font-size: 22px
}

.tscct-contact-card p {
    min-height: 68px;
    color: var(--ct-muted);
    font-size: 12px;
    line-height: 1.75;
    overflow-wrap: anywhere
}

.tscct-contact-card > b {
    color: #07814d;
    font-size: 10px;
    text-transform: uppercase
}

.tscct-contact-card.featured {
    color: #fff;
    background: linear-gradient(145deg,#087145,#043c31);
    border-color: transparent
}

    .tscct-contact-card.featured .tscct-card-icon {
        background: var(--ct-gold)
    }

    .tscct-contact-card.featured h3 {
        color: #fff
    }

    .tscct-contact-card.featured small, .tscct-contact-card.featured p {
        color: rgba(255,255,255,.65)
    }

    .tscct-contact-card.featured > b {
        color: var(--ct-gold)
    }

    .tscct-contact-card.featured .tscct-card-number {
        color: rgba(255,255,255,.09)
    }

.tscct-consultation {
    color: #fff;
    background: radial-gradient(circle at 8% 10%,rgba(48,218,91,.18),transparent 27%),radial-gradient(circle at 92% 90%,rgba(38,78,180,.2),transparent 30%),#031f1a
}

.tscct-consultation-layout {
    display: grid;
    grid-template-columns: 1.15fr .75fr;
    gap: 28px;
    align-items: start
}

.tscct-form-panel {
    padding: 50px;
    background: #fff;
    border-radius: 26px;
    box-shadow: 0 28px 75px rgba(0,0,0,.27)
}

.tscct-form-heading h2 {
    font-size: 47px
}

.tscct-form-heading > p {
    margin: 0
}

.tscct-form {
    margin-top: 35px
}

.tscct-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px
}

.tscct-field.full {
    grid-column: 1/-1
}

.tscct-field label {
    margin-bottom: 8px;
    display: block;
    color: #263a31;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase
}

    .tscct-field label span {
        color: #d58c00
    }

.tscct-field input, .tscct-field select, .tscct-field textarea {
    width: 100%;
    padding: 15px 16px;
    color: #1b3027;
    background: #f2f6f3;
    border: 1px solid #d9e4dd;
    border-radius: 11px;
    outline: 0;
    transition: .2s
}

.tscct-field textarea {
    resize: vertical
}

    .tscct-field input:focus, .tscct-field select:focus, .tscct-field textarea:focus {
        border-color: #149054;
        box-shadow: 0 0 0 4px rgba(20,144,84,.1);
        background: #fff
    }

.tscct-field.invalid input, .tscct-field.invalid select, .tscct-field.invalid textarea {
    border-color: #d44b40
}

.tscct-error, .tscct-consent-error {
    min-height: 15px;
    margin-top: 5px;
    display: block;
    color: #bf3c33;
    font-size: 9px
}

.tscct-consent {
    margin-top: 14px;
    display: flex;
    gap: 10px;
    align-items: flex-start;
    color: #5e6d66;
    font-size: 10px;
    line-height: 1.5
}

    .tscct-consent input {
        margin-top: 2px;
        accent-color: #087548
    }

.tscct-submit {
    margin-top: 15px;
    min-height: 54px;
    padding: 0 27px;
    color: #05271e;
    background: linear-gradient(110deg,var(--ct-gold),#ffe47a);
    border: 0;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    cursor: pointer
}

.tscct-form-status {
    min-height: 20px;
    margin: 13px 0 0;
    color: #087548;
    font-size: 10px;
    font-weight: 700
}

.tscct-details-panel {
    padding: 45px;
    color: #fff;
    background: linear-gradient(145deg,rgba(255,255,255,.1),rgba(255,255,255,.04));
    border: 1px solid var(--ct-line);
    border-radius: 25px
}

    .tscct-details-panel h2 {
        margin: 15px 0;
        font-size: 35px
    }

    .tscct-details-panel > p {
        color: rgba(255,255,255,.61);
        font-size: 12px;
        line-height: 1.8
    }

.tscct-detail-list {
    margin-top: 30px;
    display: grid;
    gap: 11px
}

    .tscct-detail-list > a, .tscct-detail-list > div {
        padding: 16px;
        display: flex;
        gap: 14px;
        align-items: center;
        background: rgba(255,255,255,.065);
        border: 1px solid var(--ct-line);
        border-radius: 13px
    }

        .tscct-detail-list > a > span, .tscct-detail-list > div > span {
            width: 43px;
            height: 43px;
            display: grid;
            flex: 0 0 auto;
            place-items: center;
            color: #05261d;
            background: var(--ct-gold);
            border-radius: 12px;
            font-size: 20px
        }

    .tscct-detail-list small, .tscct-detail-list b {
        display: block
    }

    .tscct-detail-list small {
        color: rgba(255,255,255,.44);
        font-size: 8px
    }

    .tscct-detail-list b {
        margin-top: 4px;
        font-size: 10px;
        line-height: 1.5;
        overflow-wrap: anywhere
    }

.tscct-registration-box {
    margin-top: 25px;
    padding-top: 22px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    border-top: 1px solid var(--ct-line)
}

    .tscct-registration-box > div {
        padding: 14px;
        background: rgba(0,0,0,.16);
        border-radius: 11px
    }

    .tscct-registration-box small, .tscct-registration-box b {
        display: block
    }

    .tscct-registration-box small {
        color: rgba(255,255,255,.42);
        font-size: 7px
    }

    .tscct-registration-box b {
        margin-top: 5px;
        color: var(--ct-green);
        font-size: 10px
    }

.tscct-service-area {
    color: #fff;
    background: radial-gradient(circle at 90% 10%,rgba(80,221,104,.16),transparent 28%),var(--ct-navy)
}

.tscct-service-area-layout {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: 80px;
    align-items: center
}

.tscct-service-area h2 {
    color: #fff
}

.tscct-service-area p {
    margin: 0;
    color: rgba(255,255,255,.62)
}

.tscct-location-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px
}

    .tscct-location-grid > span {
        padding: 22px;
        display: flex;
        align-items: center;
        gap: 14px;
        background: rgba(255,255,255,.07);
        border: 1px solid var(--ct-line);
        border-radius: 14px;
        font-size: 12px;
        font-weight: 700
    }

    .tscct-location-grid b {
        width: 35px;
        height: 35px;
        display: grid;
        place-items: center;
        color: #06271f;
        background: var(--ct-gold);
        border-radius: 10px;
        font-size: 10px
    }

    .tscct-location-grid > span:last-child {
        grid-column: 1/-1
    }

.tscct-footer {
    color: #b7c9c1;
    background: #011713
}

.tscct-footer-grid {
    padding: 70px 0;
    display: grid;
    grid-template-columns: 1.8fr repeat(3,1fr);
    gap: 48px
}

.tscct-footer-brand img {
    width: 120px;
    padding: 5px;
    background: #fff;
    border-radius: 10px
}

.tscct-footer h3 {
    color: #fff
}

.tscct-footer p {
    max-width: 330px;
    font-size: 11px;
    line-height: 1.8
}

.tscct-footer h4 {
    margin: 0 0 18px;
    color: var(--ct-gold);
    font-size: 11px;
    text-transform: uppercase
}

.tscct-footer-grid > div:not(:first-child) {
    display: flex;
    flex-direction: column;
    gap: 11px
}

.tscct-footer a, .tscct-footer span {
    font-size: 10px;
    overflow-wrap: anywhere
}

    .tscct-footer a:hover {
        color: var(--ct-green)
    }

.tscct-footer-bottom {
    padding: 19px 0;
    border-top: 1px solid rgba(255,255,255,.09)
}

    .tscct-footer-bottom > div {
        display: flex;
        justify-content: space-between
    }

.tscct-back-top {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 40;
    width: 47px;
    height: 47px;
    color: #06271e;
    background: var(--ct-gold);
    border: 0;
    border-radius: 50%;
    box-shadow: 0 10px 25px rgba(0,0,0,.2);
    opacity: 0;
    visibility: hidden;
    transform: translateY(15px);
    transition: .3s
}

    .tscct-back-top.show {
        opacity: 1;
        visibility: visible;
        transform: none
    }

.tscct-reveal {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity .75s,transform .75s
}

    .tscct-reveal.visible {
        opacity: 1;
        transform: none
    }

.tscct-details-panel {
    overflow: hidden
}

.tscct-consultation-image {
    width: calc(100% + 90px);
    max-width: none;
    height: 300px;
    margin: -45px -45px 35px;
    object-fit: cover;
    object-position: center 35%;
    border-bottom: 1px solid var(--ct-line)
}

@keyframes ctHeroZoom {
    to {
        transform: scale(1.09) translateX(-1.5%)
    }
}

@media(max-width:1000px) {
    .tscct-desktop-nav, .tscct-nav-cta {
        display: none
    }

    .tscct-menu-button {
        display: block
    }

    .tscct-mobile-nav {
        position: fixed;
        top: 0;
        right: -100%;
        z-index: 80;
        width: min(350px,88vw);
        height: 100vh;
        padding: 105px 35px;
        display: flex;
        flex-direction: column;
        color: #fff;
        background: #032a22;
        box-shadow: -20px 0 50px rgba(0,0,0,.3);
        transition: .35s
    }

        .tscct-mobile-nav.open {
            right: 0
        }

        .tscct-mobile-nav a {
            padding: 17px 0;
            border-bottom: 1px solid var(--ct-line);
            font-weight: 700
        }

    .tscct-hero-layout {
        grid-template-columns: 1fr
    }

    .tscct-hero-card {
        display: none
    }

    .tscct-contact-cards {
        grid-template-columns: 1fr 1fr
    }

        .tscct-contact-cards a:last-child {
            grid-column: 1/-1
        }

    .tscct-consultation-layout, .tscct-service-area-layout {
        grid-template-columns: 1fr
    }

    .tscct-footer-grid {
        grid-template-columns: 2fr 1fr 1fr
    }

        .tscct-footer-grid > div:last-child {
            grid-column: 2/4
        }
}

@media(max-width:700px) {
    .tscct-container {
        width: min(100% - 28px,1180px)
    }

    .tscct-topbar {
        display: none
    }

    .tscct-header {
        top: 0
    }

    .tscct-navbar {
        height: 76px
    }

    .tscct-brand img {
        width: 68px;
        height: 54px
    }

    .tscct-brand > span {
        display: none
    }

    .tscct-hero {
        min-height: 810px;
        align-items: flex-end;
        padding-bottom: 180px
    }

    .tscct-hero-image {
        object-position: 64% center
    }

    .tscct-hero-overlay {
        background: linear-gradient(180deg,rgba(2,24,19,.25),rgba(2,24,19,.78) 42%,#021c17 75%)
    }

    .tscct-hero-layout {
        padding-top: 140px
    }

    .tscct-hero h1 {
        font-size: 47px;
        letter-spacing: -3px
    }

    .tscct-hero-copy > p {
        font-size: 14px
    }

    .tscct-hero-buttons {
        display: grid
    }

    .tscct-button {
        width: 100%
    }

    .tscct-hero-footer > div {
        grid-template-columns: 1fr;
        min-height: 160px
    }

    .tscct-hero-footer a {
        padding: 10px 0;
        border-right: 0;
        border-bottom: 1px solid var(--ct-line)
    }

        .tscct-hero-footer a:last-child {
            display: none
        }

    .tscct-section {
        padding: 80px 0
    }

    .tscct-heading h2, .tscct-form-heading h2, .tscct-service-area h2 {
        font-size: 38px
    }

    .tscct-contact-cards, .tscct-form-grid, .tscct-location-grid {
        grid-template-columns: 1fr
    }

        .tscct-contact-cards a:last-child, .tscct-location-grid > span:last-child {
            grid-column: auto
        }

    .tscct-form-panel, .tscct-details-panel {
        padding: 34px 22px
    }

    .tscct-field.full {
        grid-column: auto
    }

    .tscct-registration-box {
        grid-template-columns: 1fr
    }

    .tscct-footer-grid {
        grid-template-columns: 1fr 1fr
    }

    .tscct-footer-brand {
        grid-column: 1/-1
    }

    .tscct-footer-grid > div:last-child {
        grid-column: auto
    }

    .tscct-footer-bottom > div {
        flex-direction: column;
        gap: 8px
    }
}

@media(max-width:700px) {
    .tscct-consultation-image {
        width: calc(100% + 44px);
        height: 260px;
        margin: -34px -22px 30px
    }
}

.tscct-form-status[data-status="error"] {
    color: #bf3c33
}

.tscct-form-status[data-status="success"] {
    color: #087548
}

@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior: auto
    }

    .tscct-hero-image {
        animation: none
    }

    .tscct-reveal {
        opacity: 1;
        transform: none;
        transition: none
    }
}
