/* ==================================================
   BASE STYLES
================================================== */


* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}


html {
    scroll-behavior: smooth;
}


body {
    font-family: Arial, Helvetica, sans-serif;
    color: #1f2933;
    background-color: #ffffff;
    line-height: 1.6;
}


img {
    display: block;
    max-width: 100%;
}


a {
    color: inherit;
    text-decoration: none;
}


ul {
    list-style: none;
}


button {
    font: inherit;
}


.container {
    width: min(1320px, 92%);
    margin-inline: auto;
}




/* ==================================================
   HEADER AND NAVIGATION
================================================== */


.site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    width: 100%;
    background-color: #ffffff;
    border-bottom: 1px solid #e5e7eb;
    box-shadow: 0 4px 18px rgba(15, 23, 42, 0.06);
}


.navbar {
    position: relative;
    min-height: 88px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    padding: 9px 0;
}




/* ==================================================
   BRANDING
================================================== */


.brand {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
}


.brand-logo {
    width: 70px;
    height: 70px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}


.brand-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}


.brand-text {
    display: flex;
    flex-direction: column;
    min-width: 0;
    line-height: 1.2;
}


.brand-name {
    color: #1d4f91;
    font-size: 1.45rem;
    font-weight: 800;
    line-height: 1.05;
    white-space: nowrap;
}


.brand-tagline {
    margin-top: 5px;
    color: #6b7280;
    font-size: 0.67rem;
    font-weight: 600;
    letter-spacing: 2.3px;
    text-transform: uppercase;
    white-space: nowrap;
}




/* ==================================================
   DESKTOP NAVIGATION
================================================== */


.main-navigation {
    display: flex;
    align-items: center;
    gap: 28px;
}


.nav-links {
    display: flex;
    align-items: center;
    gap: 25px;
}


.nav-links a {
    position: relative;
    display: inline-block;
    padding-block: 10px;
    color: #334155;
    font-size: 14px;
    font-weight: 600;
    transition: color 0.25s ease;
}


.nav-links a::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 3px;
    width: 0;
    height: 2px;
    background-color: #f28c28;
    transition: width 0.25s ease;
}


.nav-links a:hover,
.nav-links a.active {
    color: #123c69;
}


.nav-links a:hover::after,
.nav-links a.active::after {
    width: 100%;
}




/* ==================================================
   QUOTE BUTTON
================================================== */


.quote-button {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 11px 20px;
    border: 2px solid #f28c28;
    border-radius: 6px;
    background-color: #f28c28;
    color: #ffffff;
    font-size: 14px;
    font-weight: 700;
    transition:
        background-color 0.25s ease,
        color 0.25s ease,
        transform 0.25s ease;
}


.quote-button:hover {
    background-color: transparent;
    color: #f28c28;
    transform: translateY(-2px);
}




/* ==================================================
   MOBILE MENU BUTTON
================================================== */


.menu-toggle {
    display: none;
    width: 44px;
    height: 44px;
    padding: 8px;
    border: 0;
    background: transparent;
    cursor: pointer;
}


.menu-toggle span {
    display: block;
    width: 26px;
    height: 3px;
    margin: 5px auto;
    border-radius: 999px;
    background-color: #123c69;
    transition:
        transform 0.25s ease,
        opacity 0.25s ease;
}




/* ==================================================
   HERO SECTION
================================================== */


.hero {
    position: relative;
    min-height: calc(100vh - 88px);
    display: flex;
    align-items: center;
    overflow: hidden;

    background:
        linear-gradient(
            90deg,
            rgba(7, 31, 58, 0.9) 0%,
            rgba(12, 48, 82, 0.7) 48%,
            rgba(12, 48, 82, 0.25) 100%
        ),
        url("../images/hero/jts-IMG-20260723-WA00013.jpg");


    background-position: 75% center;
    background-repeat: no-repeat;
    background-size: cover;
}


.hero-container {
    min-height: calc(100vh - 88px);
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 0;
}


.hero-content {
    width: 100%;
    max-width: 760px;
    transform: translateY(-40px);
}


.hero-label {
    display: inline-block;
    margin-bottom: 20px;
    padding: 8px 14px;
    border-left: 4px solid #f28c28;
    background-color: rgba(255, 255, 255, 0.1);
    color: #ffffff;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.3px;
    text-transform: uppercase;
}


.hero h1 {
    max-width: 760px;
    margin-bottom: 24px;
    color: #ffffff;
    font-size: clamp(42px, 5.5vw, 72px);
    font-weight: 800;
    line-height: 1.08;
    letter-spacing: -1.5px;
}


.hero-description {
    max-width: 650px;
    margin-bottom: 34px;
    color: rgba(255, 255, 255, 0.9);
    font-size: 18px;
    line-height: 1.75;
}




/* ==================================================
   HERO BUTTONS
================================================== */


.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 38px;
}


.hero-button {
    min-height: 50px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 13px 25px;
    border: 2px solid transparent;
    border-radius: 6px;
    font-size: 15px;
    font-weight: 700;
    transition:
        background-color 0.25s ease,
        border-color 0.25s ease,
        color 0.25s ease,
        transform 0.25s ease;
}


.hero-button:hover {
    transform: translateY(-3px);
}


.hero-button-primary {
    border-color: #f28c28;
    background-color: #f28c28;
    color: #ffffff;
}


.hero-button-primary:hover {
    border-color: #ffffff;
    background-color: #ffffff;
    color: #123c69;
}


.hero-button-secondary {
    border-color: rgba(255, 255, 255, 0.8);
    background-color: transparent;
    color: #ffffff;
}


.hero-button-secondary:hover {
    border-color: #ffffff;
    background-color: #ffffff;
    color: #123c69;
}




/* ==================================================
   HERO HIGHLIGHTS
================================================== */


.hero-highlights {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 24px;
}


.hero-highlight {
    display: flex;
    align-items: center;
    gap: 9px;
    color: #ffffff;
    font-size: 14px;
    font-weight: 600;
}


.highlight-icon {
    width: 25px;
    height: 25px;
    display: inline-grid;
    place-items: center;
    flex-shrink: 0;
    border-radius: 50%;
    background-color: rgba(242, 140, 40, 0.2);
    color: #f8a64f;
    font-size: 14px;
    font-weight: 800;
}




/* ==================================================
   TABLET RESPONSIVENESS
================================================== */


@media (max-width: 1024px) {


    .container {
        width: min(92%, 900px);
    }


    .navbar {
        min-height: 82px;
        gap: 20px;
    }


    .brand-logo {
        width: 60px;
        height: 60px;
    }


    .brand-name {
        font-size: 1.25rem;
    }


    .brand-tagline {
        font-size: 0.58rem;
        letter-spacing: 1.8px;
    }


    .nav-links {
        gap: 15px;
    }


    .nav-links a {
        font-size: 0.82rem;
    }


    .main-navigation {
        gap: 18px;
    }


    .quote-button {
        padding-inline: 16px;
    }


    .hero,
    .hero-container {
        min-height: calc(100vh - 82px);
    }


    .hero {
        background-position: 68% center;
    }


    .hero-content {
        max-width: 680px;
    }


    .hero h1 {
        font-size: clamp(2.8rem, 6vw, 4.15rem);
    }


    .hero-description {
        max-width: 620px;
        font-size: 1rem;
    }
}




/* ==================================================
   COLLAPSIBLE NAVIGATION
================================================== */


@media (max-width: 960px) {


    .navbar {
        min-height: 78px;
    }


    .menu-toggle {
        display: block;
        flex-shrink: 0;
    }


    .main-navigation {
        position: absolute;
        top: 100%;
        left: 50%;
        width: 100vw;
        display: none;
        flex-direction: column;
        align-items: stretch;
        gap: 20px;
        padding: 24px 5%;
        background-color: #ffffff;
        border-top: 1px solid #e5e7eb;
        box-shadow: 0 14px 25px rgba(15, 23, 42, 0.1);
        transform: translateX(-50%);
    }


    .main-navigation.open {
        display: flex;
    }


    .nav-links {
        flex-direction: column;
        align-items: stretch;
        gap: 4px;
    }


    .nav-links a {
        display: block;
        padding: 12px 0;
    }


    .quote-button {
        width: 100%;
    }


    .menu-toggle.active span:nth-child(1) {
        transform: translateY(8px) rotate(45deg);
    }


    .menu-toggle.active span:nth-child(2) {
        opacity: 0;
    }


    .menu-toggle.active span:nth-child(3) {
        transform: translateY(-8px) rotate(-45deg);
    }


    .hero {
        min-height: calc(100vh - 78px);
    }


    .hero-container {
        min-height: calc(100vh - 78px);
    }
}




/* ==================================================
   MOBILE RESPONSIVENESS
================================================== */


@media (max-width: 768px) {


    .container {
        width: 90%;
    }


    .navbar {
        min-height: 74px;
        justify-content: space-between;
    }


    .brand-logo {
        width: 52px;
        height: 52px;
    }


    .brand-name {
        font-size: 1.05rem;
    }


    .brand-tagline {
        font-size: 0.48rem;
        letter-spacing: 1.4px;
    }


    .hero {
        min-height: auto;


        background:
            linear-gradient(
                rgba(7, 31, 58, 0.91),
                rgba(7, 31, 58, 0.91)
            ),
            url("../images/hero/jts-IMG-20260723-WA00013.jpg");


        background-position: center;
        background-repeat: no-repeat;
        background-size: cover;
    }


    .hero-container {
        min-height: auto;
        padding: 75px 0;
    }


    .hero-content {
        max-width: 100%;
    }


    .hero-label {
        padding: 9px 12px;
        font-size: 0.7rem;
        letter-spacing: 1px;
    }


    .hero h1 {
        margin-bottom: 20px;
        font-size: clamp(2.4rem, 10vw, 3.7rem);
        line-height: 1.05;
        letter-spacing: -0.7px;
    }


    .hero-description {
        font-size: 16px;
        line-height: 1.65;
    }


    .hero-actions {
        flex-direction: column;
        align-items: stretch;
        gap: 14px;
    }


    .hero-button {
        width: 100%;
    }


    .hero-highlights {
        flex-direction: column;
        align-items: flex-start;
        gap: 14px;
    }
}




/* ==================================================
   SMALL MOBILE RESPONSIVENESS
================================================== */


@media (max-width: 520px) {


    .brand {
        gap: 8px;
    }


    .brand-logo {
        width: 46px;
        height: 46px;
    }


    .brand-name {
        font-size: 0.9rem;
    }


    .brand-tagline {
        font-size: 0.42rem;
        letter-spacing: 0.8px;
    }


    .hero-container {
        padding: 60px 0;
    }


    .hero h1 {
        font-size: 2.45rem;
    }


    .hero-label {
        font-size: 0.62rem;
    }
}




/* ==================================================
   EXTRA-SMALL SCREENS
================================================== */


@media (max-width: 390px) {


    .brand-logo {
        width: 42px;
        height: 42px;
    }


    .brand-name {
        font-size: 0.82rem;
    }


    .brand-tagline {
        display: none;
    }


    .hero h1 {
        font-size: 2.15rem;
    }
}

/* ==================================================
   VALUES AND SERVICES BAND
================================================== */


.values-services-band {
    position: relative;
    z-index: 5;
    background-color: #ffffff;
}


.values-services-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.9fr) minmax(340px, 1fr);
    width: 100%;
}




/* ==================================================
   CORE VALUES PANEL
================================================== */


.core-values-panel {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: stretch;
    padding: 34px 5%;
    background-color: #ffffff;
}


.value-item {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 17px;
    min-width: 0;
    padding: 8px 28px;
}


.value-item:first-child {
    padding-left: 0;
}


.value-item:last-child {
    padding-right: 0;
}


.value-item:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 5px;
    right: 0;
    width: 1px;
    height: calc(100% - 10px);
    background-color: #d9dee5;
}


.value-icon {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    flex-shrink: 0;
    color: #b51217;
}


.value-icon svg {
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}


.value-content h3 {
    margin-bottom: 7px;
    color: #111827;
    font-size: 15px;
    font-weight: 800;
    letter-spacing: 0.2px;
    text-transform: uppercase;
}


.value-content p {
    max-width: 180px;
    color: #4b5563;
    font-size: 12.5px;
    line-height: 1.55;
}




/* ==================================================
   CORE SERVICES PANEL
================================================== */


.core-services-panel {
    position: relative;
    overflow: hidden;
    padding: 28px 38px;
    background:
        linear-gradient(
            135deg,
            #a7060b 0%,
            #c20d12 55%,
            #9e0509 100%
        );
    color: #ffffff;
}


.core-services-panel::before {
    content: "";
    position: absolute;
    top: -70px;
    right: -55px;
    width: 210px;
    height: 210px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 50%;
}


.core-services-panel::after {
    content: "";
    position: absolute;
    right: 48px;
    bottom: -100px;
    width: 180px;
    height: 180px;
    border: 1px solid rgba(255, 255, 255, 0.09);
    border-radius: 50%;
}


.services-panel-heading,
.services-list-grid,
.services-link {
    position: relative;
    z-index: 2;
}


.services-eyebrow {
    display: block;
    margin-bottom: 3px;
    color: rgba(255, 255, 255, 0.75);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1.6px;
    text-transform: uppercase;
}


.services-panel-heading h2 {
    margin-bottom: 17px;
    font-size: clamp(1.35rem, 2vw, 1.8rem);
    font-weight: 800;
    line-height: 1.15;
    text-transform: uppercase;
}


.services-list-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 26px;
}


.services-list {
    display: grid;
    gap: 7px;
}


.services-list li {
    position: relative;
    padding-left: 19px;
    color: rgba(255, 255, 255, 0.94);
    font-size: 12.5px;
    font-weight: 600;
    line-height: 1.4;
}


.services-list li::before {
    content: "✓";
    position: absolute;
    top: 0;
    left: 0;
    width: 13px;
    height: 13px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.75);
    border-radius: 50%;
    font-size: 8px;
    line-height: 1;
}


.services-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 20px;
    padding-bottom: 3px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.65);
    color: #ffffff;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    transition:
        gap 0.25s ease,
        opacity 0.25s ease;
}


.services-link:hover {
    gap: 13px;
    opacity: 0.85;
}




/* ==================================================
   VALUES AND SERVICES RESPONSIVENESS
================================================== */


@media (max-width: 1180px) {


    .values-services-grid {
        grid-template-columns: 1fr;
    }


    .core-values-panel {
        padding-inline: 4%;
    }


    .core-services-panel {
        padding: 30px 5%;
    }


    .services-list-grid {
        max-width: 850px;
    }
}


@media (max-width: 900px) {


    .core-values-panel {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0;
    }


    .value-item {
        padding: 24px;
    }


    .value-item:first-child {
        padding-left: 24px;
    }


    .value-item:last-child {
        padding-right: 24px;
    }


    .value-item:nth-child(2)::after {
        display: none;
    }


    .value-item:nth-child(-n + 2) {
        border-bottom: 1px solid #d9dee5;
    }


    .value-content p {
        max-width: none;
    }
}


@media (max-width: 640px) {


    .core-values-panel {
        grid-template-columns: 1fr;
        padding: 8px 5%;
    }


    .value-item,
    .value-item:first-child,
    .value-item:last-child {
        padding: 24px 0;
    }


    .value-item:not(:last-child)::after {
        top: auto;
        right: 0;
        bottom: 0;
        width: 100%;
        height: 1px;
    }


    .value-item:nth-child(-n + 2) {
        border-bottom: 0;
    }


    .value-icon {
        width: 49px;
        height: 49px;
    }


    .value-content h3 {
        font-size: 14px;
    }


    .value-content p {
        font-size: 13px;
    }


    .core-services-panel {
        padding: 32px 5%;
    }


    .services-list-grid {
        grid-template-columns: 1fr;
        gap: 7px;
    }


    .services-list li {
        font-size: 13px;
    }
}

/* ==================================================
   INDUSTRIES WE SERVE
================================================== */


.industries-section {
    padding: 90px 0;
    background-color: #f6f8fb;
}


.section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 40px;
    margin-bottom: 42px;
}


.section-heading > div {
    flex-shrink: 0;
}


.section-eyebrow {
    display: block;
    margin-bottom: 8px;
    color: #f28c28;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 1.6px;
    text-transform: uppercase;
}


.section-heading h2 {
    position: relative;
    padding-bottom: 16px;
    color: #123c69;
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 800;
    line-height: 1.1;
}


.section-heading h2::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 72px;
    height: 4px;
    border-radius: 999px;
    background-color: #f28c28;
}


.section-heading > p {
    max-width: 620px;
    color: #5f6b78;
    font-size: 15px;
    line-height: 1.75;
}




/* ==================================================
   INDUSTRY GRID
================================================== */


.industries-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 18px;
}


.industry-card {
    position: relative;
    min-height: 390px;
    overflow: hidden;
    border-radius: 10px;
    background-color: #123c69;
    box-shadow: 0 12px 32px rgba(15, 23, 42, 0.12);
    isolation: isolate;
}


.industry-image {
    position: absolute;
    inset: 0;
    z-index: -3;
}


.industry-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.55s ease;
}


.industry-overlay {
    position: absolute;
    inset: 0;
    z-index: -2;
    background:
        linear-gradient(
            180deg,
            rgba(7, 25, 44, 0.08) 0%,
            rgba(7, 25, 44, 0.48) 48%,
            rgba(7, 25, 44, 0.96) 100%
        );
    transition: background 0.35s ease;
}


.industry-card::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    z-index: -1;
    height: 4px;
    background-color: #f28c28;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.35s ease;
}


.industry-content {
    min-height: 390px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-start;
    padding: 28px 23px;
    color: #ffffff;
}


.industry-icon {
    width: 51px;
    height: 51px;
    display: grid;
    place-items: center;
    margin-bottom: 18px;
    border: 2px solid rgba(255, 255, 255, 0.82);
    border-radius: 50%;
    background-color: rgba(242, 140, 40, 0.88);
    color: #ffffff;
    transition:
        background-color 0.3s ease,
        transform 0.3s ease;
}


.industry-icon svg {
    width: 27px;
    height: 27px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}


.industry-content h3 {
    margin-bottom: 10px;
    font-size: 20px;
    font-weight: 800;
    line-height: 1.2;
}


.industry-content p {
    margin-bottom: 17px;
    color: rgba(255, 255, 255, 0.84);
    font-size: 13px;
    line-height: 1.6;
}


.industry-content a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #ffffff;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.7px;
    text-transform: uppercase;
    transition:
        gap 0.25s ease,
        color 0.25s ease;
}


.industry-card:hover .industry-image img {
    transform: scale(1.08);
}


.industry-card:hover .industry-overlay {
    background:
        linear-gradient(
            180deg,
            rgba(7, 25, 44, 0.18) 0%,
            rgba(7, 25, 44, 0.59) 45%,
            rgba(7, 25, 44, 0.98) 100%
        );
}


.industry-card:hover::after {
    transform: scaleX(1);
}


.industry-card:hover .industry-icon {
    background-color: #f28c28;
    transform: translateY(-4px);
}


.industry-card:hover .industry-content a {
    gap: 12px;
    color: #f8a64f;
}




/* ==================================================
   INDUSTRIES RESPONSIVENESS
================================================== */


@media (max-width: 1180px) {


    .industries-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}


@media (max-width: 860px) {


    .industries-section {
        padding: 75px 0;
    }


    .section-heading {
        flex-direction: column;
        align-items: flex-start;
        gap: 22px;
    }


    .section-heading > p {
        max-width: 700px;
    }


    .industries-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}


@media (max-width: 580px) {


    .industries-section {
        padding: 60px 0;
    }


    .section-heading {
        margin-bottom: 32px;
    }


    .section-heading h2 {
        font-size: 2rem;
    }


    .industries-grid {
        grid-template-columns: 1fr;
    }


    .industry-card,
    .industry-content {
        min-height: 360px;
    }


    .industry-content {
        padding: 27px 24px;
    }


    .industry-content p {
        font-size: 13.5px;
    }
}

/*==================================================
COMMITMENT TO QUALITY
==================================================*/


.quality-section{


    padding:80px 0;


    background:#ffffff;


}


.quality-grid{


    display:grid;


    grid-template-columns:1fr 1fr;


    gap:55px;


    align-items:start;


}


.quality-content h2{


    margin:12px 0 24px;


    font-size:42px;


    color:#123c69;


    line-height:1.2;


}


.quality-content p{


    margin-bottom:22px;


    color:#555;


    line-height:1.9;


}


.quality-features{


    display:grid;


    grid-template-columns:repeat(2,1fr);


    gap:22px;


    margin-top:40px;


}


.quality-feature{


    display:flex;


    align-items:flex-start;


    gap:16px;


    padding:22px;


    background:#f7f8fb;


    border-left:4px solid #f28c28;


    border-radius:10px;


    transition:.3s;


}


.quality-feature:hover{


    transform:translateY(-6px);


    box-shadow:0 14px 30px rgba(0,0,0,.08);


}


.feature-icon{


    width:42px;


    height:42px;


    display:flex;


    justify-content:center;


    align-items:center;


    flex-shrink:0;


    border-radius:50%;


    background:#f28c28;


    color:#fff;


    font-size:18px;


    font-weight:700;


}


.quality-feature h4{


    margin-bottom:6px;


    color:#123c69;


    font-size:17px;


}


.quality-feature p{


    margin:0;


    color:#555;


    font-size:14px;


    line-height:1.6;


}


.quality-image{


    height:620px;


    overflow:hidden;


    border-radius:14px;


    box-shadow:0 18px 40px rgba(0,0,0,.12);


}


.quality-image img{


    width:100%;


    height:100%;


    display:block;


    object-fit:cover;


    object-position:center;


    transition:transform .5s ease;


}


.quality-image:hover img{


    transform:scale(1.05);


}


/*==================================================
Responsive
==================================================*/


@media(max-width:960px){


    .quality-grid{


        grid-template-columns:1fr;


        gap:45px;


    }


    .quality-image{


        order:-1;


    }


}


@media(max-width:640px){


    .quality-content h2{


        font-size:32px;


    }


    .quality-features{


        grid-template-columns:1fr;


    }


}   

/* ==================================================
   CONTACT INFORMATION STRIP
================================================== */


.contact-strip {
    position: relative;
    overflow: hidden;
    background:
        linear-gradient(
            90deg,
            #071f3a 0%,
            #0c3052 72%,
            #b51217 72%,
            #d0181e 100%
        );
    color: #ffffff;
}


.contact-strip-grid {
    display: grid;
    grid-template-columns:
        minmax(0, 1fr)
        minmax(0, 1.25fr)
        minmax(0, 1.2fr)
        minmax(0, 1fr);
    align-items: stretch;
}


.contact-strip-item {
    position: relative;
    min-height: 118px;
    display: flex;
    align-items: center;
    gap: 16px;
    min-width: 0;
    padding: 25px 30px;
    color: #ffffff;
    transition:
        background-color 0.25s ease,
        transform 0.25s ease;
}


.contact-strip-item:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 28px;
    right: 0;
    width: 1px;
    height: calc(100% - 56px);
    background-color: rgba(255, 255, 255, 0.22);
}


.contact-strip-item:hover {
    background-color: rgba(255, 255, 255, 0.06);
}


.contact-strip-location {
    padding-left: 42px;
    background-color: rgba(181, 18, 23, 0.18);
}


.contact-strip-icon {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    flex-shrink: 0;
    border-radius: 50%;
    background-color: #f28c28;
    color: #ffffff;
    transition:
        transform 0.25s ease,
        background-color 0.25s ease;
}


.contact-strip-icon svg {
    width: 23px;
    height: 23px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}


.contact-strip-item:hover .contact-strip-icon {
    background-color: #ffffff;
    color: #123c69;
    transform: translateY(-3px);
}


.contact-strip-content {
    min-width: 0;
    display: flex;
    flex-direction: column;
    line-height: 1.35;
}


.contact-strip-content span {
    margin-bottom: 4px;
    color: rgba(255, 255, 255, 0.72);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 1.2px;
    text-transform: uppercase;
}


.contact-strip-content strong {
    overflow-wrap: anywhere;
    color: #ffffff;
    font-size: 14px;
    font-weight: 700;
}




/* ==================================================
   CONTACT STRIP RESPONSIVENESS
================================================== */


@media (max-width: 1100px) {

    .contact-strip {
        background:
            linear-gradient(
                135deg,
                #071f3a 0%,
                #0c3052 100%
            );
    }

    .contact-strip-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .contact-strip-item:nth-child(2)::after {
        display: none;
    }

    .contact-strip-item:nth-child(-n + 2) {
        border-bottom: 1px solid rgba(255, 255, 255, 0.18);
    }

    .contact-strip-location {
        padding-left: 30px;
        background: transparent;
    }

    .contact-strip-content strong {
        font-size: 12px;
        line-height: 1.4;
        word-break: normal;
        overflow-wrap: anywhere;
    }
}


@media (max-width: 640px) {

    .contact-strip {
        background: #071f3a;
    }

    .contact-strip-grid {
        width: 100%;
        grid-template-columns: 1fr;
    }

    .contact-strip-item,
    .contact-strip-location {
        min-height: 95px;
        padding: 20px 5%;
        background: transparent;
    }

    .contact-strip-item:not(:last-child)::after {
        top: auto;
        right: 5%;
        bottom: 0;
        left: 5%;
        width: auto;
        height: 1px;
    }

    .contact-strip-item:nth-child(-n + 2) {
        border-bottom: 0;
    }

    .contact-strip-icon {
        width: 45px;
        height: 45px;
    }

    .contact-strip-content strong {
        font-size: 12px;
        line-height: 1.4;
        word-break: normal;
        overflow-wrap: anywhere;
    }
}



@media(max-width:960px){
    .quality-image{
        height:520px;
    }
}


@media(max-width:640px){
    .quality-image{
        height:400px;
    }
}

/* ==================================================
   PROFESSIONAL FOOTER
================================================== */


.site-footer {
    position: relative;
    overflow: hidden;
    background:
        linear-gradient(
            135deg,
            #06192e 0%,
            #0a2744 58%,
            #0d3153 100%
        );
    color: #ffffff;
}


.site-footer::before {
    content: "";
    position: absolute;
    top: -160px;
    right: -120px;
    width: 380px;
    height: 380px;
    border: 1px solid rgba(255, 255, 255, 0.05);
    border-radius: 50%;
}


.site-footer::after {
    content: "";
    position: absolute;
    bottom: -190px;
    left: -150px;
    width: 420px;
    height: 420px;
    border: 1px solid rgba(255, 255, 255, 0.04);
    border-radius: 50%;
}


.footer-grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns:
        minmax(280px, 1.6fr)
        minmax(150px, 0.8fr)
        minmax(190px, 1fr)
        minmax(230px, 1.2fr);
    gap: 55px;
    padding-top: 78px;
    padding-bottom: 70px;
}


.footer-column h3 {
    position: relative;
    margin-bottom: 25px;
    padding-bottom: 12px;
    color: #ffffff;
    font-size: 17px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.6px;
}


.footer-column h3::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 42px;
    height: 3px;
    border-radius: 999px;
    background-color: #f28c28;
}




/* ==================================================
   FOOTER BRAND
================================================== */


.footer-brand {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 22px;
}


.footer-brand img {
    width: 68px;
    height: 68px;
    object-fit: contain;
    flex-shrink: 0;
}


.footer-brand > div {
    display: flex;
    flex-direction: column;
}


.footer-brand-name {
    color: #ffffff;
    font-size: 1.35rem;
    font-weight: 800;
    line-height: 1.1;
}


.footer-brand-tagline {
    margin-top: 5px;
    color: rgba(255, 255, 255, 0.6);
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 1.8px;
    text-transform: uppercase;
}


.footer-description {
    max-width: 390px;
    margin-bottom: 24px;
    color: rgba(255, 255, 255, 0.7);
    font-size: 14px;
    line-height: 1.8;
}


.footer-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}


.footer-badges span {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 7px 12px;
    border: 1px solid rgba(242, 140, 40, 0.45);
    border-radius: 999px;
    background-color: rgba(242, 140, 40, 0.08);
    color: #f8a64f;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.5px;
    text-transform: uppercase;
}




/* ==================================================
   FOOTER LINKS
================================================== */


.footer-links {
    display: grid;
    gap: 13px;
}


.footer-links a {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: rgba(255, 255, 255, 0.72);
    font-size: 14px;
    transition:
        color 0.25s ease,
        transform 0.25s ease;
}


.footer-links a::before {
    content: "›";
    color: #f28c28;
    font-size: 18px;
    line-height: 1;
}


.footer-links a:hover {
    color: #ffffff;
    transform: translateX(4px);
}




/* ==================================================
   FOOTER CONTACT
================================================== */


.footer-contact-list {
    display: grid;
    gap: 18px;
}


.footer-contact-list li {
    display: flex;
    flex-direction: column;
    gap: 4px;
}


.footer-contact-label {
    color: #f28c28;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1.2px;
    text-transform: uppercase;
}


.footer-contact-list a,
.footer-contact-list li > span:last-child {
    color: rgba(255, 255, 255, 0.76);
    font-size: 13.5px;
    line-height: 1.55;
    overflow-wrap: anywhere;
    transition: color 0.25s ease;
}


.footer-contact-list a:hover {
    color: #ffffff;
}




/* ==================================================
   FOOTER BOTTOM
================================================== */


.footer-bottom {
    position: relative;
    z-index: 2;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    background-color: rgba(0, 0, 0, 0.14);
}


.footer-bottom-content {
    min-height: 74px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
    color: rgba(255, 255, 255, 0.56);
    font-size: 12.5px;
}


.developer-credit {
    color: #f8a64f;
    font-weight: 800;
}




/* ==================================================
   FOOTER RESPONSIVENESS
================================================== */


@media (max-width: 1100px) {


    .footer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 48px;
    }


    .footer-description {
        max-width: 520px;
    }
}


@media (max-width: 680px) {


    .footer-grid {
        grid-template-columns: 1fr;
        gap: 42px;
        padding-top: 62px;
        padding-bottom: 55px;
    }


    .footer-brand {
        align-items: flex-start;
    }


    .footer-brand img {
        width: 60px;
        height: 60px;
    }


    .footer-brand-name {
        font-size: 1.18rem;
    }


    .footer-description {
        font-size: 13.5px;
    }


    .footer-bottom-content {
        min-height: 96px;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        gap: 7px;
        padding-top: 18px;
        padding-bottom: 18px;
    }
}


@media (max-width: 390px) {


    .footer-brand-name {
        font-size: 1.02rem;
    }


    .footer-brand-tagline {
        font-size: 0.54rem;
        letter-spacing: 1.2px;
    }


    .footer-bottom-content {
        font-size: 11.5px;
    }
}

/* ==================================================
   FINAL HOME PAGE POLISH
================================================== */

/* Accessible keyboard focus */
a:focus-visible,
button:focus-visible {
    outline: 3px solid rgba(242, 140, 40, 0.7);
    outline-offset: 4px;
}

/* Prevent sticky header from hiding anchored content */
section {
    scroll-margin-top: 100px;
}

/* Slightly smoother header and premium spacing */
.site-header {
    transition:
        box-shadow 0.3s ease,
        background-color 0.3s ease;
}

.site-header.header-scrolled {
    box-shadow: 0 8px 28px rgba(15, 23, 42, 0.12);
}

/* Improve card consistency */
.industry-card,
.quality-feature,
.contact-strip-item {
    will-change: transform;
}

/* Balance the quality section */
.quality-grid {
    align-items: stretch;
}

.quality-content {
    align-self: center;
}

.quality-image {
    min-height: 560px;
    height: 100%;
}

.quality-image img {
    object-position: center center;
}

/* Consistent contact strip on tablet/mobile */
@media (max-width: 1100px) {
    .contact-strip {
        background:
            linear-gradient(
                135deg,
                #071f3a 0%,
                #0c3052 100%
            );
    }

    .contact-strip-location {
        background: transparent;
    }
}

/* More premium footer spacing */
.footer-grid {
    padding-top: 90px;
    padding-bottom: 85px;
}

/* Scroll reveal animation */
.reveal {
    opacity: 0;
    transform: translateY(30px);
    transition:
        opacity 0.7s ease,
        transform 0.7s ease;
}

.reveal.reveal-visible {
    opacity: 1;
    transform: translateY(0);
}

.reveal-delay-1 {
    transition-delay: 0.08s;
}

.reveal-delay-2 {
    transition-delay: 0.16s;
}

.reveal-delay-3 {
    transition-delay: 0.24s;
}

/* Tablet refinements */
@media (max-width: 1024px) {
    .quality-image {
        min-height: 500px;
    }

    .footer-grid {
        padding-top: 78px;
        padding-bottom: 72px;
    }
}

/* Mobile refinements */
@media (max-width: 680px) {
    section {
        scroll-margin-top: 82px;
    }

    .quality-section {
        padding: 60px 0;
    }

    .quality-content {
        align-self: auto;
    }

    .quality-image {
        min-height: 380px;
        height: 420px;
    }

    .footer-grid {
        padding-top: 62px;
        padding-bottom: 55px;
    }
}

@media (max-width: 390px) {
    .quality-image {
        min-height: 330px;
        height: 350px;
    }
}

/* Respect reduced-motion preferences */
@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }

    .reveal {
        opacity: 1;
        transform: none;
    }
}

/* ==================================================
   ABOUT PAGE
================================================== */

/* Shared internal-page hero */
.page-hero {
    position: relative;
    overflow: hidden;
    color: #ffffff;
    isolation: isolate;
}

.about-page-hero {
    background:
        linear-gradient(
            90deg,
            rgba(5, 29, 56, 0.98) 0%,
            rgba(7, 40, 76, 0.88) 43%,
            rgba(7, 40, 76, 0.25) 75%,
            rgba(7, 40, 76, 0.08) 100%
        ),
        url("../images/about/about-hero.jpg");
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.page-hero-container {
    min-height: 500px;
    display: flex;
    align-items: center;
    padding: 75px 0;
}

.page-hero-content {
    max-width: 710px;
}

.breadcrumbs {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 26px;
    color: rgba(255, 255, 255, 0.76);
    font-size: 13px;
    font-weight: 600;
}

.breadcrumbs a {
    transition: color 0.25s ease;
}

.breadcrumbs a:hover {
    color: #f8a64f;
}

.page-hero-eyebrow {
    display: block;
    margin-bottom: 12px;
    color: #f8a64f;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 1.6px;
    text-transform: uppercase;
}

.page-hero-content h1 {
    max-width: 680px;
    margin-bottom: 21px;
    color: #ffffff;
    font-size: clamp(2.65rem, 5vw, 4.5rem);
    font-weight: 800;
    line-height: 1.07;
    letter-spacing: -1.3px;
}

.page-hero-content > p {
    max-width: 630px;
    margin-bottom: 30px;
    color: rgba(255, 255, 255, 0.9);
    font-size: 17px;
    line-height: 1.75;
}


/* Company overview */
.about-overview-section {
    padding: 95px 0 80px;
    background-color: #ffffff;
}

.about-overview-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.25fr);
    align-items: center;
    gap: 65px;
}

.about-overview-image {
    position: relative;
    min-height: 480px;
}

.about-overview-image > img {
    width: 100%;
    height: 100%;
    min-height: 480px;
    object-fit: cover;
    border-radius: 12px;
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.15);
}

.about-image-badge {
    position: absolute;
    right: -24px;
    bottom: 28px;
    min-width: 145px;
    padding: 20px 24px;
    border: 5px solid #ffffff;
    border-radius: 10px;
    background-color: #f28c28;
    color: #ffffff;
    text-align: center;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.18);
}

.about-image-badge strong,
.about-image-badge span {
    display: block;
}

.about-image-badge strong {
    font-size: 1.8rem;
    line-height: 1;
}

.about-image-badge span {
    margin-top: 5px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.6px;
    text-transform: uppercase;
}

.about-overview-content h2,
.why-choose-content h2,
.standards-content h2 {
    margin-bottom: 22px;
    color: #123c69;
    font-size: clamp(2rem, 3.2vw, 3rem);
    font-weight: 800;
    line-height: 1.12;
}

.about-overview-content > p,
.standards-content > p {
    margin-bottom: 16px;
    color: #52606d;
    font-size: 15.5px;
    line-height: 1.8;
}

.about-highlights {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 30px;
}

.about-highlight {
    display: flex;
    align-items: center;
    gap: 13px;
    min-height: 86px;
    padding: 15px;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background-color: #ffffff;
    box-shadow: 0 7px 20px rgba(15, 23, 42, 0.05);
}

.about-highlight-icon {
    width: 42px;
    height: 42px;
    min-width: 42px;
    min-height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border-radius: 50%;
    background-color: rgba(242, 140, 40, 0.13);
    color: #f28c28;
    font-size: 20;
    font-weight: 700;
    line-height: 42px;
    text-align: center;
    padding: 0;
}

.about-highlight strong,
.about-highlight span {
    display: block;
}

.about-highlight strong {
    margin-bottom: 3px;
    color: #123c69;
    font-size: 13px;
    font-weight: 800;
}

.about-highlight div > span {
    color: #6b7280;
    font-size: 11.5px;
    line-height: 1.45;
}


/* Vision and mission */
.vision-mission-section {
    padding-bottom: 85px;
    background-color: #ffffff;
}

.vision-mission-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid #dce4ee;
    border-radius: 12px;
    background:
        linear-gradient(
            135deg,
            #f5f9fd 0%,
            #edf4fb 100%
        );
}

.vision-mission-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 25px;
    padding: 46px;
}

.vision-mission-card + .vision-mission-card {
    border-left: 1px solid #d6e0ea;
}

.vision-mission-icon {
    width: 74px;
    height: 74px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background-color: #123c69;
    color: #ffffff;
}

.vision-mission-icon svg {
    width: 38px;
    height: 38px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.card-eyebrow {
    display: block;
    margin-bottom: 4px;
    color: #f28c28;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 1.3px;
    text-transform: uppercase;
}

.vision-mission-card h2 {
    margin-bottom: 11px;
    color: #123c69;
    font-size: 1.65rem;
    font-weight: 800;
}

.vision-mission-card p {
    color: #52606d;
    font-size: 14px;
    line-height: 1.75;
}


/* About values */
.about-values-section {
    padding: 90px 0;
    background-color: #f6f8fb;
}

.centered-section-heading {
    max-width: 720px;
    margin: 0 auto 46px;
    text-align: center;
}

.centered-section-heading h2 {
    margin-bottom: 14px;
    color: #123c69;
    font-size: clamp(2rem, 3.5vw, 3rem);
    font-weight: 800;
    line-height: 1.12;
}

.centered-section-heading p {
    color: #5f6b78;
    font-size: 15px;
    line-height: 1.75;
}

.about-values-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 15px;
}

.about-value-card {
    padding: 27px 18px;
    border: 1px solid #e1e7ef;
    border-radius: 9px;
    background-color: #ffffff;
    text-align: center;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);
    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease,
        border-color 0.3s ease;
}

.about-value-card:hover {
    transform: translateY(-7px);
    border-color: rgba(242, 140, 40, 0.45);
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.11);
}

.about-value-icon {
    width: 56px;
    height: 56px;
    display: grid;
    place-items: center;
    margin: 0 auto 17px;
    border-radius: 50%;
    background-color: rgba(18, 60, 105, 0.08);
    color: #123c69;
}

.about-value-icon svg {
    width: 31px;
    height: 31px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.about-value-card h3 {
    margin-bottom: 9px;
    color: #123c69;
    font-size: 15px;
    font-weight: 800;
}

.about-value-card p {
    color: #65717d;
    font-size: 12px;
    line-height: 1.65;
}


/* Why choose us and standards */
.about-trust-section {
    padding: 95px 0;
    background-color: #ffffff;
}

.about-trust-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 75px;
}

.why-choose-content {
    padding-right: 70px;
    border-right: 1px solid #dce4ec;
}

.why-choose-list {
    display: grid;
    gap: 14px;
    margin: 28px 0 32px;
}

.why-choose-list li {
    position: relative;
    padding-left: 31px;
    color: #465362;
    font-size: 14.5px;
    line-height: 1.55;
}

.why-choose-list li::before {
    content: "✓";
    position: absolute;
    top: 1px;
    left: 0;
    width: 20px;
    height: 20px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background-color: #f28c28;
    color: #ffffff;
    font-size: 11px;
    font-weight: 900;
}

.standards-notice {
    margin-top: 25px;
    padding: 22px;
    border-left: 4px solid #f28c28;
    border-radius: 0 8px 8px 0;
    background-color: #f6f8fb;
}

.standards-notice strong {
    display: block;
    margin-bottom: 7px;
    color: #123c69;
    font-size: 14px;
}

.standards-notice p {
    color: #5c6977;
    font-size: 13px;
    line-height: 1.7;
}

.standards-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 23px;
}

.standards-tags span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 9px 16px;
    border: 1px solid #d8e1eb;
    border-radius: 6px;
    background-color: #ffffff;
    color: #123c69;
    font-size: 12px;
    font-weight: 800;
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.05);
}


/* Team banner */
.about-team-section {
    padding: 0 0 90px;
    background-color: #ffffff;
}

.about-team-banner {
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.15fr);
    min-height: 385px;
    overflow: hidden;
    border-radius: 12px;
    background:
        linear-gradient(
            135deg,
            #061d38 0%,
            #0b3767 100%
        );
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.16);
}

.about-team-content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: 52px;
    color: #ffffff;
}

.about-team-content h2 {
    margin-bottom: 16px;
    color: #ffffff;
    font-size: clamp(2rem, 3vw, 2.8rem);
    font-weight: 800;
    line-height: 1.12;
}

.about-team-content p {
    margin-bottom: 27px;
    color: rgba(255, 255, 255, 0.82);
    font-size: 14px;
    line-height: 1.75;
}

.about-team-image {
    position: relative;
    min-height: 385px;
}

.about-team-image::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(
            90deg,
            rgba(11, 55, 103, 0.75) 0%,
            rgba(11, 55, 103, 0.08) 45%,
            rgba(11, 55, 103, 0) 100%
        );
}

.about-team-image img {
    width: 100%;
    height: 100%;
    min-height: 385px;
    object-fit: cover;
}


/* CTA */
.about-cta-section {
    padding: 0 0 85px;
    background-color: #ffffff;
}

.about-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 35px;
    padding: 36px 45px;
    border-radius: 10px;
    background:
        linear-gradient(
            110deg,
            rgba(7, 31, 58, 0.98),
            rgba(12, 62, 113, 0.95)
        );
    color: #ffffff;
    box-shadow: 0 15px 34px rgba(15, 23, 42, 0.14);
}

.about-cta > div > span {
    display: block;
    margin-bottom: 5px;
    color: #f8a64f;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 1.4px;
    text-transform: uppercase;
}

.about-cta h2 {
    margin-bottom: 6px;
    color: #ffffff;
    font-size: clamp(1.7rem, 3vw, 2.4rem);
    font-weight: 800;
}

.about-cta p {
    color: rgba(255, 255, 255, 0.78);
    font-size: 14px;
}

.about-cta-button {
    min-height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    flex-shrink: 0;
    padding: 13px 26px;
    border: 2px solid #f28c28;
    border-radius: 6px;
    background-color: #f28c28;
    color: #ffffff;
    font-size: 14px;
    font-weight: 800;
    transition:
        gap 0.25s ease,
        transform 0.25s ease,
        background-color 0.25s ease;
}

.about-cta-button:hover {
    gap: 17px;
    transform: translateY(-2px);
    background-color: #db7414;
}


/* About page responsiveness */
@media (max-width: 1180px) {
    .about-values-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .about-trust-grid {
        gap: 50px;
    }

    .why-choose-content {
        padding-right: 50px;
    }
}

@media (max-width: 960px) {
    .page-hero-container {
        min-height: 460px;
    }

    .about-overview-grid {
        grid-template-columns: 1fr;
        gap: 45px;
    }

    .about-overview-image {
        min-height: 430px;
    }

    .about-overview-image > img {
        min-height: 430px;
    }

    .about-image-badge {
        right: 22px;
    }

    .vision-mission-card {
        padding: 38px 30px;
    }

    .about-trust-grid {
        grid-template-columns: 1fr;
    }

    .why-choose-content {
        padding-right: 0;
        padding-bottom: 50px;
        border-right: 0;
        border-bottom: 1px solid #dce4ec;
    }

    .about-team-banner {
        grid-template-columns: 1fr;
    }

    .about-team-image {
        min-height: 360px;
    }

    .about-team-image img {
        min-height: 360px;
    }

    .about-team-image::before {
        background:
            linear-gradient(
                180deg,
                rgba(11, 55, 103, 0.7) 0%,
                rgba(11, 55, 103, 0.05) 35%,
                rgba(11, 55, 103, 0) 100%
            );
    }
}

@media (max-width: 760px) {
    .about-page-hero {
        background:
            linear-gradient(
                rgba(5, 29, 56, 0.9),
                rgba(5, 29, 56, 0.92)
            ),
            url("../images/about/about-hero.jpg");
        background-position: center;
        background-size: cover;
    }

    .page-hero-container {
        min-height: auto;
        padding: 70px 0;
    }

    .page-hero-content h1 {
        font-size: clamp(2.4rem, 11vw, 3.5rem);
    }

    .about-overview-section,
    .about-values-section,
    .about-trust-section {
        padding: 70px 0;
    }

    .about-overview-image,
    .about-overview-image > img {
        min-height: 360px;
    }

    .about-highlights {
        grid-template-columns: 1fr;
    }

    .vision-mission-grid {
        grid-template-columns: 1fr;
    }

    .vision-mission-card + .vision-mission-card {
        border-top: 1px solid #d6e0ea;
        border-left: 0;
    }

    .vision-mission-card {
        padding: 35px 25px;
    }

    .about-values-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .about-team-content {
        padding: 40px 28px;
    }

    .about-cta {
        flex-direction: column;
        align-items: flex-start;
        padding: 32px 27px;
    }

    .about-cta-button {
        width: 100%;
    }
}

@media (max-width: 480px) {
    .page-hero-content h1 {
        font-size: 2.45rem;
    }

    .about-overview-image,
    .about-overview-image > img {
        min-height: 310px;
    }

    .about-image-badge {
        right: 14px;
        bottom: 16px;
        min-width: 125px;
        padding: 16px 18px;
    }

    .vision-mission-card {
        grid-template-columns: 1fr;
    }

    .vision-mission-icon {
        width: 64px;
        height: 64px;
    }

    .about-values-grid {
        grid-template-columns: 1fr;
    }

    .about-team-image,
    .about-team-image img {
        min-height: 300px;
    }
}

/* ==================================================
   SERVICES PAGE
================================================== */

.services-page-hero {
    background:
        linear-gradient(
            90deg,
            rgba(5, 29, 56, 0.98) 0%,
            rgba(7, 40, 76, 0.86) 43%,
            rgba(7, 40, 76, 0.22) 77%,
            rgba(7, 40, 76, 0.06) 100%
        ),
        url("../images/services/services-hero.jpg");
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.services-page-hero .page-hero-container {
    min-height: 480px;
}


/* Core service cards */
.services-core-section {
    padding: 90px 0;
    background-color: #ffffff;
}

.services-heading {
    margin-bottom: 42px;
}

.services-card-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
}

.service-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid #dde4ec;
    border-radius: 10px;
    background-color: #ffffff;
    box-shadow: 0 8px 25px rgba(15, 23, 42, 0.06);
    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease,
        border-color 0.3s ease;
}

.service-card:hover {
    transform: translateY(-7px);
    border-color: rgba(242, 140, 40, 0.5);
    box-shadow: 0 18px 38px rgba(15, 23, 42, 0.13);
}

.service-card-image {
    position: relative;
    height: 205px;
    overflow: hidden;
    background-color: #dfe7ef;
}

.service-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.service-card:hover .service-card-image img {
    transform: scale(1.07);
}

.service-card-icon {
    position: absolute;
    left: 18px;
    bottom: -23px;
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    border: 4px solid #ffffff;
    border-radius: 50%;
    background-color: #123c69;
    color: #ffffff;
    box-shadow: 0 7px 20px rgba(15, 23, 42, 0.2);
}

.service-card-icon svg {
    width: 27px;
    height: 27px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.service-card-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: flex-start;
    padding: 40px 20px 22px;
}

.service-card-body h3 {
    margin-bottom: 12px;
    color: #123c69;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.25;
}

.service-card-body p {
    margin-bottom: 20px;
    color: #556270;
    font-size: 13px;
    line-height: 1.7;
}

.service-card-body a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: auto;
    color: #f28c28;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.4px;
    text-transform: uppercase;
    transition: gap 0.25s ease;
}

.service-card-body a:hover {
    gap: 12px;
}


/* Industries */
.services-industries-section {
    padding: 0 0 90px;
    background-color: #ffffff;
}

.compact-heading {
    margin-bottom: 30px;
}

.services-industries-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid #dce4ec;
    border-radius: 10px;
    background:
        linear-gradient(
            135deg,
            #f5f9fd 0%,
            #edf4fb 100%
        );
}

.services-industry-item {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 155px;
    padding: 24px 15px;
    text-align: center;
}

.services-industry-item + .services-industry-item {
    border-left: 1px solid #d7e0e9;
}

.services-industry-icon {
    width: 55px;
    height: 55px;
    display: grid;
    place-items: center;
    margin-bottom: 12px;
    color: #123c69;
}

.services-industry-icon svg {
    width: 45px;
    height: 45px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.55;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.services-industry-item span {
    color: #123c69;
    font-size: 12px;
    font-weight: 800;
}


/* Approach and equipment */
.services-capability-section {
    padding: 90px 0;
    background-color: #f6f8fb;
}

.services-capability-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: 75px;
}

.services-approach {
    padding-right: 70px;
    border-right: 1px solid #d7e0e9;
}

.services-approach h2,
.services-equipment h2 {
    margin-bottom: 18px;
    color: #123c69;
    font-size: clamp(2rem, 3vw, 2.8rem);
    font-weight: 800;
    line-height: 1.12;
}

.approach-list {
    display: grid;
    gap: 17px;
    margin-top: 28px;
    counter-reset: none;
}

.approach-list li {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 17px;
    align-items: flex-start;
}

.approach-list li > span {
    width: 31px;
    height: 31px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background-color: #f28c28;
    color: #ffffff;
    font-size: 13px;
    font-weight: 900;
}

.approach-list strong {
    display: block;
    margin-bottom: 4px;
    color: #123c69;
    font-size: 14px;
}

.approach-list p {
    color: #5a6774;
    font-size: 12.5px;
    line-height: 1.6;
}

.services-equipment > p {
    margin-bottom: 23px;
    color: #52606d;
    font-size: 14px;
    line-height: 1.75;
}

.equipment-tags {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    overflow: hidden;
    margin-bottom: 18px;
    border: 1px solid #d7e0e9;
    border-radius: 8px;
    background-color: #ffffff;
}

.equipment-tags span {
    display: grid;
    place-items: center;
    min-height: 68px;
    padding: 12px;
    color: #123c69;
    font-size: 10.5px;
    font-weight: 800;
    line-height: 1.4;
    text-align: center;
}

.equipment-tags span + span {
    border-left: 1px solid #d7e0e9;
}

.equipment-image {
    height: 245px;
    overflow: hidden;
    border-radius: 9px;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.12);
}

.equipment-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}


/* Services CTA */
.services-cta-section {
    padding: 0 0 85px;
    background-color: #f6f8fb;
}

.services-cta {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 28px;
    padding: 31px 42px;
    border-radius: 10px;
    background:
        linear-gradient(
            110deg,
            #071f3a 0%,
            #0c3e71 100%
        );
    color: #ffffff;
    box-shadow: 0 15px 34px rgba(15, 23, 42, 0.14);
}

.services-cta-icon {
    width: 68px;
    height: 68px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background-color: #f28c28;
}

.services-cta-icon svg {
    width: 33px;
    height: 33px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.services-cta h2 {
    margin-bottom: 5px;
    color: #ffffff;
    font-size: clamp(1.65rem, 3vw, 2.25rem);
    font-weight: 800;
}

.services-cta p {
    color: rgba(255, 255, 255, 0.78);
    font-size: 13.5px;
}

.services-cta-button {
    min-height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 13px 25px;
    border-radius: 6px;
    background-color: #f28c28;
    color: #ffffff;
    font-size: 14px;
    font-weight: 800;
    transition:
        gap 0.25s ease,
        transform 0.25s ease,
        background-color 0.25s ease;
}

.services-cta-button:hover {
    gap: 17px;
    transform: translateY(-2px);
    background-color: #db7414;
}


/* Services page responsiveness */
@media (max-width: 1180px) {
    .services-card-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .services-industries-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .services-industry-item:nth-child(4) {
        border-left: 0;
    }

    .services-industry-item:nth-child(-n + 3) {
        border-bottom: 1px solid #d7e0e9;
    }

    .services-capability-grid {
        gap: 50px;
    }

    .services-approach {
        padding-right: 50px;
    }
}

@media (max-width: 960px) {
    .services-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .services-capability-grid {
        grid-template-columns: 1fr;
    }

    .services-approach {
        padding-right: 0;
        padding-bottom: 55px;
        border-right: 0;
        border-bottom: 1px solid #d7e0e9;
    }

    .services-cta {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .services-cta-button {
        grid-column: 1 / -1;
        width: 100%;
    }
}

@media (max-width: 700px) {
    .services-page-hero {
        background:
            linear-gradient(
                rgba(5, 29, 56, 0.91),
                rgba(5, 29, 56, 0.93)
            ),
            url("../images/services/services-hero.jpg");
        background-position: center;
        background-size: cover;
    }

    .services-core-section,
    .services-capability-section {
        padding: 70px 0;
    }

    .services-card-grid {
        grid-template-columns: 1fr;
    }

    .service-card-image {
        height: 225px;
    }

    .services-industries-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .services-industry-item:nth-child(3),
    .services-industry-item:nth-child(5) {
        border-left: 0;
    }

    .services-industry-item:nth-child(4) {
        border-left: 1px solid #d7e0e9;
    }

    .services-industry-item:nth-child(-n + 4) {
        border-bottom: 1px solid #d7e0e9;
    }

    .equipment-tags {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .equipment-tags span:nth-child(3) {
        border-left: 0;
    }

    .equipment-tags span:nth-child(-n + 2) {
        border-bottom: 1px solid #d7e0e9;
    }

    .services-cta {
        grid-template-columns: 1fr;
        padding: 30px 26px;
    }

    .services-cta-icon {
        width: 60px;
        height: 60px;
    }
}

@media (max-width: 430px) {
    .services-industries-grid {
        grid-template-columns: 1fr;
    }

    .services-industry-item,
    .services-industry-item:nth-child(4) {
        border-left: 0;
    }

    .services-industry-item:not(:last-child) {
        border-bottom: 1px solid #d7e0e9;
    }

    .equipment-tags {
        grid-template-columns: 1fr;
    }

    .equipment-tags span,
    .equipment-tags span:nth-child(3) {
        border-left: 0;
    }

    .equipment-tags span:not(:last-child) {
        border-bottom: 1px solid #d7e0e9;
    }
}

/* ==================================================
   CONTACT PAGE
================================================== */

.contact-page-hero {
    background:
        linear-gradient(
            90deg,
            rgba(5, 29, 56, 0.98) 0%,
            rgba(7, 40, 76, 0.87) 43%,
            rgba(7, 40, 76, 0.2) 77%,
            rgba(7, 40, 76, 0.05) 100%
        ),
        url("../images/contact/contact-hero.jpg");
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.contact-page-hero .page-hero-container {
    min-height: 480px;
}


/* Main form and contact information */
.contact-main-section {
    padding: 90px 0;
    background-color: #f6f8fb;
}

.contact-main-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(360px, 0.8fr);
    overflow: hidden;
    border: 1px solid #dde4ec;
    border-radius: 12px;
    background-color: #ffffff;
    box-shadow: 0 18px 46px rgba(15, 23, 42, 0.09);
}

.contact-form-panel,
.contact-info-panel {
    padding: 52px;
}

.contact-info-panel {
    border-left: 1px solid #dde4ec;
    background:
        linear-gradient(
            150deg,
            #f8fafc 0%,
            #f1f5f9 100%
        );
}

.contact-form-panel h2,
.contact-info-panel h2,
.contact-location-copy h2 {
    margin-bottom: 8px;
    color: #123c69;
    font-size: clamp(2rem, 3vw, 2.75rem);
    font-weight: 800;
    line-height: 1.12;
}

.contact-panel-intro {
    margin-bottom: 30px;
    color: #5e6b78;
    font-size: 14px;
    line-height: 1.7;
}

.contact-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.form-group {
    display: flex;
    flex-direction: column;
}

.form-group-full {
    grid-column: 1 / -1;
}

.form-group label {
    margin-bottom: 7px;
    color: #344454;
    font-size: 12px;
    font-weight: 800;
}

.form-group input,
.form-group select,
.form-group textarea {
    width: 100%;
    border: 1px solid #d5dde7;
    border-radius: 7px;
    background-color: #ffffff;
    color: #1f2933;
    font: inherit;
    font-size: 14px;
    outline: 0;
    transition:
        border-color 0.25s ease,
        box-shadow 0.25s ease,
        background-color 0.25s ease;
}

.form-group input,
.form-group select {
    min-height: 51px;
    padding: 12px 14px;
}

.form-group textarea {
    min-height: 175px;
    padding: 14px;
    resize: vertical;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    border-color: #f28c28;
    box-shadow: 0 0 0 4px rgba(242, 140, 40, 0.12);
}

.form-group.has-error input,
.form-group.has-error select,
.form-group.has-error textarea {
    border-color: #b51217;
    background-color: #fffafa;
}

.form-error {
    min-height: 18px;
    margin-top: 5px;
    color: #b51217;
    font-size: 11px;
}

.contact-submit-button {
    min-height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-top: 8px;
    padding: 13px 25px;
    border: 2px solid #f28c28;
    border-radius: 6px;
    background-color: #f28c28;
    color: #ffffff;
    cursor: pointer;
    font-size: 14px;
    font-weight: 800;
    transition:
        gap 0.25s ease,
        transform 0.25s ease,
        background-color 0.25s ease;
}

.contact-submit-button:hover {
    gap: 15px;
    transform: translateY(-2px);
    background-color: #db7414;
}

.contact-form-note {
    margin-top: 15px;
    color: #6b7280;
    font-size: 11.5px;
    line-height: 1.55;
}

.contact-form-status {
    min-height: 22px;
    margin-top: 9px;
    color: #123c69;
    font-size: 12px;
    font-weight: 700;
}

.contact-info-list {
    display: grid;
    gap: 13px;
}

.contact-info-card {
    display: flex;
    align-items: center;
    gap: 16px;
    min-height: 96px;
    padding: 16px 18px;
    border: 1px solid #dbe3ec;
    border-radius: 8px;
    background-color: #ffffff;
    transition:
        transform 0.25s ease,
        border-color 0.25s ease,
        box-shadow 0.25s ease;
}

a.contact-info-card:hover {
    transform: translateX(5px);
    border-color: rgba(242, 140, 40, 0.5);
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
}

.contact-info-icon {
    width: 47px;
    height: 47px;
    display: grid;
    place-items: center;
    flex-shrink: 0;
    border-radius: 50%;
    background-color: #f28c28;
    color: #ffffff;
}

.contact-info-icon svg {
    width: 23px;
    height: 23px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.contact-info-copy {
    min-width: 0;
}

.contact-info-copy small,
.contact-info-copy strong,
.contact-info-copy > span {
    display: block;
}

.contact-info-copy small {
    margin-bottom: 3px;
    color: #f28c28;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.contact-info-copy strong {
    overflow-wrap: anywhere;
    color: #123c69;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.4;
}

.contact-info-copy > span {
    margin-top: 4px;
    color: #687482;
    font-size: 11.5px;
    line-height: 1.45;
}


/* Location and map */
.contact-location-section {
    padding: 0 0 90px;
    background-color: #f6f8fb;
}

.contact-location-card {
    display: grid;
    grid-template-columns: minmax(280px, 0.42fr) minmax(0, 1fr);
    min-height: 400px;
    overflow: hidden;
    border-radius: 12px;
    background-color: #071f3a;
    box-shadow: 0 16px 38px rgba(15, 23, 42, 0.14);
}

.contact-location-copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: 48px;
    color: #ffffff;
}

.contact-location-copy h2 {
    color: #ffffff;
}

.contact-location-copy p {
    margin-bottom: 25px;
    color: rgba(255, 255, 255, 0.8);
    font-size: 14px;
    line-height: 1.75;
}

.contact-map-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #f8a64f;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    transition: gap 0.25s ease;
}

.contact-map-link:hover {
    gap: 13px;
}

.contact-map,
.contact-map iframe {
    width: 100%;
    min-height: 400px;
}

.contact-map iframe {
    display: block;
    border: 0;
}


/* Commitment cards */
.contact-commitment-section {
    padding: 90px 0;
    background-color: #ffffff;
}

.contact-commitment-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.contact-commitment-card {
    padding: 30px 24px;
    border: 1px solid #e0e6ed;
    border-radius: 9px;
    background-color: #ffffff;
    text-align: center;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);
    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease,
        border-color 0.3s ease;
}

.contact-commitment-card:hover {
    transform: translateY(-7px);
    border-color: rgba(242, 140, 40, 0.45);
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.11);
}

.contact-commitment-icon {
    width: 62px;
    height: 62px;
    display: grid;
    place-items: center;
    margin: 0 auto 18px;
    border-radius: 50%;
    background-color: #123c69;
    color: #ffffff;
}

.contact-commitment-icon svg {
    width: 32px;
    height: 32px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.contact-commitment-card h3 {
    margin-bottom: 10px;
    color: #123c69;
    font-size: 16px;
    font-weight: 800;
}

.contact-commitment-card p {
    color: #66727f;
    font-size: 12.5px;
    line-height: 1.65;
}


/* Page CTA */
.contact-cta-section {
    padding: 0 0 85px;
    background-color: #ffffff;
}

.contact-page-cta {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 28px;
    padding: 34px 42px;
    border-radius: 10px;
    background:
        linear-gradient(
            110deg,
            #071f3a 0%,
            #0c3e71 100%
        );
    color: #ffffff;
    box-shadow: 0 15px 34px rgba(15, 23, 42, 0.14);
}

.contact-page-cta-icon {
    width: 68px;
    height: 68px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background-color: #f28c28;
}

.contact-page-cta-icon svg {
    width: 34px;
    height: 34px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.contact-page-cta h2 {
    margin-bottom: 6px;
    color: #ffffff;
    font-size: clamp(1.65rem, 3vw, 2.3rem);
    font-weight: 800;
}

.contact-page-cta p {
    color: rgba(255, 255, 255, 0.78);
    font-size: 13.5px;
}

.contact-page-cta-button {
    min-height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 11px;
    padding: 13px 24px;
    border-radius: 6px;
    background-color: #f28c28;
    color: #ffffff;
    font-size: 14px;
    font-weight: 800;
    transition:
        gap 0.25s ease,
        transform 0.25s ease,
        background-color 0.25s ease;
}

.contact-page-cta-button:hover {
    gap: 16px;
    transform: translateY(-2px);
    background-color: #db7414;
}


/* Contact page responsiveness */
@media (max-width: 1050px) {
    .contact-main-grid {
        grid-template-columns: 1fr;
    }

    .contact-info-panel {
        border-top: 1px solid #dde4ec;
        border-left: 0;
    }

    .contact-info-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .contact-commitment-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 800px) {
    .contact-location-card {
        grid-template-columns: 1fr;
    }

    .contact-map,
    .contact-map iframe {
        min-height: 360px;
    }

    .contact-page-cta {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .contact-page-cta-button {
        grid-column: 1 / -1;
        width: 100%;
    }
}

@media (max-width: 680px) {
    .contact-page-hero {
        background:
            linear-gradient(
                rgba(5, 29, 56, 0.91),
                rgba(5, 29, 56, 0.93)
            ),
            url("../images/contact/contact-hero.jpg");
        background-position: center;
        background-size: cover;
    }

    .contact-main-section,
    .contact-commitment-section {
        padding: 70px 0;
    }

    .contact-form-panel,
    .contact-info-panel {
        padding: 35px 25px;
    }

    .contact-form-grid {
        grid-template-columns: 1fr;
    }

    .form-group-full {
        grid-column: auto;
    }

    .contact-info-list {
        grid-template-columns: 1fr;
    }

    .contact-location-copy {
        padding: 38px 27px;
    }

    .contact-commitment-grid {
        grid-template-columns: 1fr;
    }

    .contact-page-cta {
        grid-template-columns: 1fr;
        padding: 31px 26px;
    }

    .contact-page-cta-icon {
        width: 60px;
        height: 60px;
    }
}

/* ==================================================
   HERO BACKGROUND GALLERIES
   Applies to Home, About, Services, and Contact heroes.
================================================== */

.hero-slider {
    --hero-overlay:
        linear-gradient(
            90deg,
            rgba(7, 31, 58, 0.94) 0%,
            rgba(12, 48, 82, 0.70) 48%,
            rgba(12, 48, 82, 0.25) 100%
        );

    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: #071f3a !important;
}

.about-page-hero.hero-slider,
.services-page-hero.hero-slider,
.contact-page-hero.hero-slider {
    --hero-overlay:
        linear-gradient(
            90deg,
            rgba(5, 29, 56, 0.98) 0%,
            rgba(7, 40, 76, 0.87) 43%,
            rgba(7, 40, 76, 0.22) 77%,
            rgba(7, 40, 76, 0.06) 100%
        );
}

.hero-slide {
    position: absolute;
    inset: 0;
    z-index: -2;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    opacity: 0;
    transform: scale(1);
    transition:
        opacity 1.4s ease-in-out,
        transform 7s ease-out;
    will-change: opacity, transform;
}

.hero-slide::after {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--hero-overlay);
}

.hero-slide.is-active {
    opacity: 1;
    transform: scale(1.06);
}

.hero-slider > .container {
    position: relative;
    z-index: 2;
}

/* Keep the text readable on smaller screens. */
@media (max-width: 768px) {
    .hero-slider,
    .about-page-hero.hero-slider,
    .services-page-hero.hero-slider,
    .contact-page-hero.hero-slider {
        --hero-overlay:
            linear-gradient(
                rgba(5, 29, 56, 0.92),
                rgba(5, 29, 56, 0.94)
            );
    }

    .hero-slide {
        background-position: center;
    }
}

/* Disable gallery movement for reduced-motion users. */
@media (prefers-reduced-motion: reduce) {
    .hero-slide {
        transition: none;
        transform: none;
    }

    .hero-slide.is-active {
        transform: none;
    }
}

/* ==================================================
   REQUEST-A-QUOTE WORKFLOW
================================================== */

.quote-mode-notice {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin: -10px 0 28px;
    padding: 16px 18px;
    border-left: 4px solid #f28c28;
    border-radius: 0 7px 7px 0;
    background-color: #fff8ef;
}

.quote-mode-notice[hidden] {
    display: none;
}

.quote-mode-notice strong {
    color: #123c69;
    font-size: 13px;
    font-weight: 800;
}

.quote-mode-notice span {
    color: #5f6b78;
    font-size: 12px;
    line-height: 1.55;
}

.contact-form.quote-mode .contact-submit-button {
    min-width: 220px;
}

.contact-form.quote-mode .form-group label::after {
    color: #f28c28;
}

@media (max-width: 680px) {
    .quote-mode-notice {
        margin-bottom: 24px;
    }

    .contact-form.quote-mode .contact-submit-button {
        width: 100%;
        min-width: 0;
    }
}

/* ==================================================
   FINAL WEBSITE POLISH
================================================== */
html { scroll-behavior: smooth; }
body { overflow-x: hidden; }

.site-header, header {
    position: sticky;
    top: 0;
    z-index: 1000;
}
.site-header.is-scrolled, header.is-scrolled {
    box-shadow: 0 10px 28px rgba(3, 20, 38, 0.14);
}
.nav-link, .main-nav a { position: relative; }
.nav-link::after, .main-nav a::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -7px;
    width: 0;
    height: 2px;
    background: #f28c28;
    transform: translateX(-50%);
    transition: width 0.25s ease;
}
.nav-link:hover::after, .nav-link.active::after,
.main-nav a:hover::after, .main-nav a.active::after { width: 100%; }
.nav-link.active, .main-nav a.active { color: #f28c28; }

.site-loader {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: grid;
    place-items: center;
    background: radial-gradient(circle at center, rgba(18,60,105,.98), #061b33 72%);
    opacity: 1;
    visibility: visible;
    transition: opacity .55s ease, visibility .55s ease;
}
.site-loader.is-hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
.site-loader-inner { text-align: center; color: #fff; }
.site-loader-mark {
    font-size: clamp(44px, 8vw, 76px);
    font-weight: 900;
    letter-spacing: .08em;
}
.site-loader-line {
    display: block;
    width: 86px;
    height: 3px;
    margin: 14px auto;
    background: #f28c28;
    transform-origin: left;
    animation: loaderPulse 1.1s ease-in-out infinite;
}
.site-loader p {
    margin: 0;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .22em;
    text-transform: uppercase;
}
@keyframes loaderPulse {
    0%,100% { transform: scaleX(.45); opacity: .55; }
    50% { transform: scaleX(1); opacity: 1; }
}

.hero-image-viewer {
    position: absolute;
    right: 22px;
    bottom: 20px;
    z-index: 4;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 13px;
    border: 1px solid rgba(255,255,255,.42);
    border-radius: 999px;
    background: rgba(5,29,56,.48);
    color: #fff;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    backdrop-filter: blur(8px);
}
.image-lightbox {
    position: fixed;
    inset: 0;
    z-index: 5000;
    display: grid;
    place-items: center;
    padding: 34px;
    background: rgba(2,14,27,.94);
}
.image-lightbox[hidden] { display: none; }
.image-lightbox img {
    max-width: min(1180px, 94vw);
    max-height: 88vh;
    border-radius: 8px;
    object-fit: contain;
}
.image-lightbox-close {
    position: absolute;
    top: 18px;
    right: 22px;
    width: 44px;
    height: 44px;
    border: 1px solid rgba(255,255,255,.4);
    border-radius: 50%;
    background: rgba(255,255,255,.1);
    color: #fff;
    font-size: 28px;
    cursor: pointer;
}
.scroll-to-top {
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 1200;
    width: 46px;
    height: 46px;
    border: 0;
    border-radius: 50%;
    background: #f28c28;
    color: #fff;
    font-size: 22px;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 10px 24px rgba(7,31,58,.24);
    opacity: 0;
    visibility: hidden;
    transform: translateY(12px);
    transition: opacity .25s ease, visibility .25s ease, transform .25s ease;
}
.scroll-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
section:not(.hero):not(.page-hero), .site-footer, footer {
    content-visibility: auto;
    contain-intrinsic-size: 1px 620px;
}
@media (max-width: 768px) {
    .hero-image-viewer { right: 14px; bottom: 14px; }
    .hero-image-viewer span:last-child { display: none; }
    .scroll-to-top { right: 16px; bottom: 16px; }
    .image-lightbox { padding: 18px; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .site-loader-line { animation: none; }
}

/* ==================================================
   PREMIUM JTS LOGO LOADER
================================================== */

.site-loader {
    background:
        radial-gradient(
            circle at 50% 44%,
            rgba(13, 137, 197, 0.98) 0%,
            rgba(7, 78, 137, 0.98) 42%,
            #061b33 100%
        );
}

.site-loader-inner {
    width: min(340px, 82vw);
}

.site-loader-logo-wrap {
    position: relative;
    width: clamp(150px, 25vw, 220px);
    aspect-ratio: 1;
    margin: 0 auto 16px;
    display: grid;
    place-items: center;
}

.site-loader-logo {
    position: relative;
    z-index: 2;
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter:
        drop-shadow(0 18px 26px rgba(0, 0, 0, 0.28))
        drop-shadow(0 0 15px rgba(255, 220, 0, 0.15));
    animation: jtsLogoReveal 1.15s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.site-loader-scan {
    position: absolute;
    z-index: 3;
    top: 10%;
    bottom: 10%;
    left: 3%;
    width: 3px;
    border-radius: 999px;
    background:
        linear-gradient(
            to bottom,
            transparent,
            rgba(255, 225, 0, 0.25) 18%,
            #ffe000 50%,
            rgba(255, 225, 0, 0.25) 82%,
            transparent
        );
    box-shadow:
        0 0 9px rgba(255, 225, 0, 0.9),
        0 0 24px rgba(255, 225, 0, 0.48);
    opacity: 0;
    animation: jtsScan 1.35s ease-in-out 0.18s both;
}

.site-loader-heartbeat {
    position: relative;
    width: min(230px, 68vw);
    height: 30px;
    margin: 0 auto 8px;
    overflow: hidden;
}

.site-loader-heartbeat::before,
.site-loader-heartbeat::after {
    content: "";
    position: absolute;
    top: 50%;
    width: 34%;
    height: 2px;
    background: rgba(255, 255, 255, 0.72);
    transform: translateY(-50%);
}

.site-loader-heartbeat::before {
    left: 0;
}

.site-loader-heartbeat::after {
    right: 0;
}

.site-loader-heartbeat span {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 56px;
    height: 22px;
    transform: translate(-50%, -50%);
}

.site-loader-heartbeat span::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            135deg,
            transparent 0 16%,
            #ffe000 16% 20%,
            transparent 20% 35%,
            #ffe000 35% 39%,
            transparent 39% 52%,
            #ffe000 52% 56%,
            transparent 56% 69%,
            #ffe000 69% 73%,
            transparent 73%
        );
    filter: drop-shadow(0 0 5px rgba(255, 224, 0, 0.65));
    animation: jtsHeartbeat 0.88s ease-in-out 0.58s 2 both;
}

.site-loader p {
    margin-top: 2px;
    color: #ffffff;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.28);
    opacity: 0;
    animation: jtsLoaderText 0.55s ease 0.72s forwards;
}

@keyframes jtsLogoReveal {
    0% {
        opacity: 0;
        transform: scale(0.82) rotate(-4deg);
        filter:
            blur(8px)
            drop-shadow(0 18px 26px rgba(0, 0, 0, 0.18));
    }

    65% {
        opacity: 1;
        transform: scale(1.035) rotate(0deg);
    }

    100% {
        opacity: 1;
        transform: scale(1) rotate(0deg);
    }
}

@keyframes jtsScan {
    0% {
        left: 3%;
        opacity: 0;
    }

    12% {
        opacity: 1;
    }

    88% {
        opacity: 1;
    }

    100% {
        left: calc(97% - 3px);
        opacity: 0;
    }
}

@keyframes jtsHeartbeat {
    0%,
    100% {
        opacity: 0.48;
        transform: scaleY(0.72);
    }

    42% {
        opacity: 1;
        transform: scaleY(1.22);
    }

    60% {
        opacity: 0.78;
        transform: scaleY(0.92);
    }
}

@keyframes jtsLoaderText {
    from {
        opacity: 0;
        transform: translateY(7px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (max-width: 520px) {
    .site-loader-logo-wrap {
        width: 165px;
    }

    .site-loader p {
        font-size: 11px;
        letter-spacing: 0.18em;
    }
}

@media (prefers-reduced-motion: reduce) {
    .site-loader-logo,
    .site-loader-scan,
    .site-loader-heartbeat span::before,
    .site-loader p {
        animation: none;
        opacity: 1;
        transform: none;
    }

    .site-loader-scan {
        display: none;
    }
}

/* ==================================================
   CORE SERVICE DEEP LINKS
================================================== */

.service-card[id] {
    scroll-margin-top: 125px;
}

.service-card.service-link-highlight {
    position: relative;
    z-index: 1;
    animation: serviceLinkHighlight 2.6s ease-out both;
}

@keyframes serviceLinkHighlight {
    0% {
        transform: translateY(0);
        box-shadow:
            0 0 0 0 rgba(8, 122, 178, 0),
            0 12px 35px rgba(5, 35, 62, 0.10);
    }

    18% {
        transform: translateY(-7px);
        box-shadow:
            0 0 0 4px rgba(8, 122, 178, 0.30),
            0 22px 48px rgba(5, 35, 62, 0.22);
    }

    60% {
        transform: translateY(-3px);
        box-shadow:
            0 0 0 3px rgba(241, 156, 36, 0.25),
            0 18px 42px rgba(5, 35, 62, 0.17);
    }

    100% {
        transform: translateY(0);
        box-shadow:
            0 0 0 0 rgba(8, 122, 178, 0),
            0 12px 35px rgba(5, 35, 62, 0.10);
    }
}

@media (max-width: 768px) {
    .service-card[id] {
        scroll-margin-top: 95px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .service-card.service-link-highlight {
        animation: none;
        outline: 3px solid rgba(8, 122, 178, 0.55);
        outline-offset: 4px;
    }
}

