@import url('fonts.css');

:root {
    --color-primary: #001a3f;
    --color-primary-light: #162a54;
    --color-primary-link: #1765df;
    --color-accent-orange-light: #ff863f;
    --color-accent-orange: #eb6619;
    --color-accent-orange-hover: #d2530f;
    --color-accent-orange-dark: #923502;
    --color-accent-teal: #00b8e6;
    --color-bg-light: #f8f9fa;
    --color-bg-card: #ffffff;
    --color-text-dark: #000000;
    --color-text-muted: #626873;
    --color-text-white: #fff;
    --color-border: #e2e8f0;
    /* Extra Colors */
    --color-text-light-muted: #cbd5e1;
    --color-border-light: #f1f5f9;
    --color-footer-bg: #101721;
    --color-footer-text: #7b8596;
    --color-footer-bottom-text: #515b6d;
    --color-success: #19bc73;
    --color-btn-blue-icon: #187fb2;
    /* Gradients */
    --grad-orange: linear-gradient(to bottom, #ef7f3b, #d14f0e);
    --grad-orange-hover: linear-gradient(to bottom, #d2530f, #b33700);
    --grad-blue: linear-gradient(to bottom, #293781, #132644);
    --grad-blue-hover: linear-gradient(to bottom, #1b255b, #0a1527);
    /* Border Radii */
    --radius-btn: 4px;
    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-card: 1.5rem;
    /* Section Spacing */
    --spacing-section: 50px;
    --spacing-section-large: 85px;
    --spacing-section-phone: 45px;
    --font-heading: 'Poppins', sans-serif;
    --font-body: 'Poppins', sans-serif;
    /* Font Weights */
    --fw-scale: 1.0;
    --fw-regular: calc(400 * var(--fw-scale));
    --fw-medium: calc(500 * var(--fw-scale));
    --fw-semibold: calc(600 * var(--fw-scale));
    --fw-bold: calc(700 * var(--fw-scale));
    --fw-extrabold: calc(800 * var(--fw-scale));
    --fw-body: var(--fw-regular);
    --fw-heading: var(--fw-semibold);
    --fw-heading-bold: var(--fw-bold);
    --fw-nav-link: var(--fw-semibold);
    --fw-btn: var(--fw-semibold);
    --fw-card-title: var(--fw-semibold);
    --fw-hero-title: var(--fw-extrabold);
    --transition-base: all 0.3s ease;
    --sideline-width-desktop: 290px;
    --sideline-width-mobile: 50px;
    --sideline-height: 3px;
    --sideline-color: var(--color-accent-orange);
}

/* --- Base Reset & Defaults --- */
html {
    scroll-behavior: smooth;
    scroll-padding-top: 70px;
}

body {
    font-family: var(--font-body);
    font-weight: var(--fw-body);
    color: var(--color-text-dark);
    background-color: #ffffff;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--font-heading);
    font-weight: var(--fw-heading);
    color: var(--color-primary);
}

a {
    text-decoration: none;
    transition: var(--transition-base);
}

/* --- Top Utility Bar --- */
.top-bar {
    background-color: #ffffff;
    font-size: 0.8rem;
    font-weight: var(--fw-regular);
    padding: 0;
    border-bottom: none;

    @media (max-width: 576px) {
        border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    }

    position: relative;
    z-index: 1030;
    /* Puts dropdown above navbar */

    .user-toolbar-icon {
        width: 16px;
        height: 16px;
        object-fit: contain;
    }

    .top-bar-elements {
        display: flex;
        align-items: stretch;
        margin: 0;
        padding: 0;
        list-style: none;
        border-left: 1px solid rgba(0, 0, 0, 0.08);

        li {
            display: flex;
            align-items: center;
            border-right: 1px solid rgba(0, 0, 0, 0.08);
            /* Divider lines */
            position: relative;

            a {
                color: #9bb1c9;
                padding: 10px 16px;
                display: flex;
                align-items: center;
                height: 100%;
                text-decoration: none;

                @media (max-width: 576px) {
                    padding: 8px 10px;
                }

                &:hover {
                    color: var(--color-primary);
                    background-color: rgba(0, 0, 0, 0.02);
                }

                &[aria-label="Facebook"]:hover {
                    color: #1877f2;
                }

                &[aria-label="Instagram"]:hover {
                    color: #e4405f;
                }

                &[aria-label="LinkedIn"]:hover {
                    color: #0a66c2;
                }
            }
        }
    }

    @media (max-width: 576px) {
        /* Remove container gutters so the bar spans full phone width */
        .container {
            padding-left: 0;
            padding-right: 0;
            max-width: 100%;
        }

        .top-bar-elements {
            border-left: none;
            width: 100%;
            justify-content: space-between;

            li {
                border-right: none;
            }
        }
    }

    .dropdown-toggle::after {
        vertical-align: middle;
        margin-left: 6px;
    }

    .gplus-logo {
        font-family: Georgia, 'Times New Roman', serif;
        font-weight: var(--fw-bold);
        font-size: 1.15rem;
        line-height: 1;
        display: inline-flex;
        align-items: center;
        position: relative;
        top: -1px;

        .plus {
            font-family: var(--font-body);
            font-size: 0.72rem;
            font-weight: var(--fw-bold);
            position: relative;
            top: -5px;
            margin-left: 1px;
        }
    }
    /* Language Dropdown Overrides */
    .dropdown-menu {
        background-color: #ffffff;
        border: 1px solid rgba(0, 0, 0, 0.1);
        border-radius: 0;
        margin-top: 0;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);

        .dropdown-item {
            color: var(--color-text-muted) !important;
            font-size: 0.8rem;
            font-weight: var(--fw-regular);
            padding: 8px 20px;
            background-color: transparent !important;

            &:hover {
                color: var(--color-accent-orange) !important;
                background-color: rgba(0, 0, 0, 0.02) !important;
            }
        }
    }
}

/* --- Main Navigation --- */
.main-nav {
    background-color: #ffffff;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
    padding: 15px 0;
    z-index: 1000;
    transition: padding 0.3s ease, box-shadow 0.3s ease;

    &.navbar-scrolled {
        padding: 8px 0;
        box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);

        .navbar-brand {
            @media (min-width: 992px) {
                margin-top: 0;
            }
        }
    }

    .navbar-brand {
        display: flex;
        align-items: center;
        padding: 0;
        transition: margin-top 0.3s cubic-bezier(0.16, 1, 0.3, 1);
        min-width: 0;
        /* allow flex item to shrink below content size */
        flex-shrink: 1;
        /* participate in flex shrinking */

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

        @media (max-width: 576px) {
            img {
                max-width: 160px;
                /* cap so it doesn't crowd the hamburger */
            }
        }

        @media (min-width: 992px) {
            margin-top: -28px;
        }
    }

    .navbar-toggler {
        border: none;
        box-shadow: none;
        padding: 6px 8px;

        &:focus {
            box-shadow: none;
            outline: none;
        }

        &:active {
            box-shadow: none;
            border: none;
            outline: none;
        }
        /* Keep background while menu is open */
        &[aria-expanded="true"] {
            background-color: rgba(0, 0, 0, 0.07);
            border-radius: var(--radius-sm);
        }

        &:hover {
            background-color: rgba(0, 0, 0, 0.04);
            border-radius: var(--radius-sm);
        }
    }

    .nav-link {
        font-family: var(--font-heading);
        font-size: 0.75rem;
        font-weight: var(--fw-nav-link);
        color: var(--color-primary-link) !important;
        padding: 8px !important;
        text-transform: uppercase;
        letter-spacing: 0.5px;

        &:hover,
        &.active {
            color: var(--color-accent-orange) !important;
        }
    }

    .btn-quote {
        background-color: var(--color-accent-orange);
        color: #ffffff;
        font-family: var(--font-heading);
        font-size: 0.85rem;
        font-weight: var(--fw-btn);
        text-transform: uppercase;
        padding: 8px 20px;
        border-radius: var(--radius-btn);
        display: inline-flex;
        align-items: center;
        gap: 10px;
        border: 2px solid #e5e5e5;
        transition: var(--transition-base);

        i {
            font-size: 0.8rem;
        }

        &:hover {
            background-color: var(--color-accent-orange-hover);
            border-color: rgba(255, 255, 255, 0.45);
            color: #ffffff;
        }
    }
}

/* Global Button Helpers */
.btn-hero-orange {
    background: var(--grad-orange);
    color: #ffffff;
    font-family: var(--font-heading);
    font-weight: var(--fw-btn);
    text-transform: uppercase;
    font-size: 0.9rem;
    padding: 11px 44px 13px 24px;
    border-radius: var(--radius-btn);
    border: 2px solid rgba(255, 255, 255, 0.10);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
    transition: var(--transition-base);

    i {
        position: absolute;
        right: 18px;
        top: 50%;
        transform: translateY(-50%);
        transition: var(--transition-base);
    }

    &:hover {
        background: var(--grad-orange-hover);
        border-color: rgba(255, 255, 255, 0.45);
        color: #ffffff;
    }
}

.btn-hero-blue {
    background: var(--grad-blue);
    color: #ffffff;
    font-family: var(--font-heading);
    font-weight: var(--fw-btn);
    text-transform: uppercase;
    font-size: 0.9rem;
    padding: 11px 44px 13px 24px;
    border-radius: var(--radius-btn);
    border: 2px solid rgba(255, 255, 255, 0.10);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
    transition: var(--transition-base);

    i {
        color: var(--color-btn-blue-icon);
        position: absolute;
        right: 18px;
        top: 50%;
        transform: translateY(-50%);
        transition: var(--transition-base);
    }

    &:hover {
        background: var(--grad-blue-hover);
        border-color: rgba(255, 255, 255, 0.45);
        color: #ffffff;

        i {
            color: #ffffff;
        }
    }
}

/* --- Section 2: Hero Section --- */
@keyframes hero-zoom {
    from {
        transform: scale(1.08);
    }

    to {
        transform: scale(1);
    }
}

.hero-section {
    position: relative;
    overflow: hidden;
    color: #ffffff;
    padding: 4.6rem 0 120px;
    min-height: 650px;
    display: flex;
    align-items: center;
    /* Ensure all direct children sit above the backdrop */
    & > * {
        position: relative;
        z-index: 1;
    }

    .hero-title {
        font-size: 3.2rem;
        font-weight: var(--fw-hero-title);
        line-height: 1.15;
        color: #ffffff;
        margin-bottom: 20px;
        letter-spacing: -1px;
    }

    .hero-subtitle {
        font-size: 1.1rem;
        font-weight: var(--fw-heading);
        line-height: 1.6;
        color: var(--color-text-white);
        max-width: 750px;
        margin-bottom: 35px;

        &::after {
            content: "";
            display: block;
            width: 100px;
            height: 3px;
            background-color: var(--color-accent-orange);
            margin-top: 20px;
        }
    }

    .hero-list {
        margin-bottom: 40px;
        padding: 0;

        li {
            position: relative;
            padding-left: 20px;
            font-size: 1.1rem;
            font-weight: var(--fw-heading);
            color: #ffffff;
            display: inline-block;

            &::before {
                content: "";
                display: block;
                position: absolute;
                left: 0;
                top: 50%;
                transform: translateY(-50%);
                width: 8px;
                height: 8px;
                background-color: var(--color-accent-orange);
                border-radius: 50%;
            }
        }
    }
    /* .hero-buttons {
  } */

    .hero-scroll-down {
        position: absolute;
        bottom: 5%;
        left: 50%;
        transform: translateX(-50%);
        z-index: 10;

        a {
            width: 52px;
            height: 52px;
            background-color: var(--color-accent-orange);
            border-radius: 50%;
            color: #ffffff;
            font-size: 2.6rem;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
            transition: var(--transition-base);

            i {
                line-height: 1;
                display: flex;
                align-items: center;
            }

            &:hover {
                background-color: var(--color-accent-orange-hover);
                transform: scale(1.08);
            }
        }
    }
}

.hero-backdrop {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
}

.hero-backdrop-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    animation: hero-zoom 6s ease-out forwards;
    will-change: transform;
}

@media (max-width: 991.98px) {
    .hero-backdrop-img {
        object-position: 30% center;
    }
}

@media (max-width: 575.98px) {
    .hero-backdrop-img {
        object-position: 25% center;
    }
}

/* --- Section 3: StenTech Banner --- */
.stentech-banner {
    background-color: var(--color-primary);
    color: #ffffff;

    .banner-text {
        font-size: 1.05rem;
        font-weight: var(--fw-medium);
        margin: 0;
        letter-spacing: 0.3px;
        opacity: 0.95;
    }

    .stentech-logo img {
        height: 45px;
        width: auto;
        display: block;
    }
}

/* --- Section 4: The Pentagon Difference --- */
.difference-section {
    padding: var(--spacing-section) 0;
    background-color: #ffffff;

    .header-text {
        font-size: 14px;
        line-height: 1.75;
        font-weight: var(--fw-medium);
    }
}

.accent-line-heading {
    position: relative;
    padding-top: 20px;
    padding-bottom: 20px;
    margin-bottom: 2.2rem;
    font-size: 2.5rem;
    font-weight: var(--fw-heading-bold);
    line-height: 1.25;
    color: var(--color-primary);

    &::after {
        content: "";
        display: block;
        position: absolute;
        bottom: 0;
        left: 0;
        width: 70px;
        height: 4px;
        background-color: var(--color-primary-light);
    }

    &::before {
        content: "";
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        width: 70px;
        height: 4px;
        background-color: var(--color-accent-orange);
    }
}

.diff-card {
    border: 1px solid transparent;
    border-radius: var(--radius-card);
    padding: 35px 30px;
    text-align: center;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.123);
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);

    &:hover {
        border: 1px solid var(--color-border);
        box-shadow: 0 15px 35px rgba(10, 28, 62, 0.199);
    }

    .card-icon-wrapper {
        width: 90px;
        height: 90px;
        border-radius: 50%;
        border: 1px solid var(--color-border-light);

        img {
            max-width: 100%;
            max-height: 100%;
            object-fit: contain;
        }
    }

    .card-title {
        font-size: 1.5rem;
        padding: 0 3.2rem;
        font-weight: var(--fw-semibold);
        margin-bottom: 15px;
        color: var(--color-primary);
        text-transform: capitalize;
        line-height: 1.25;
        min-height: 2.5em;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .card-desc {
        font-size: 0.95rem;
        line-height: 1.6;
        margin-bottom: 20px;
        min-height: 72px;
        text-align: left;
        font-weight: var(--fw-medium);
    }

    .card-list {
        list-style: none;
        padding: 0 10px;
        margin: 0 0 35px 0;
        text-align: left;
        flex-grow: 1;

        li {
            font-size: 0.9rem;
            font-weight: var(--fw-medium);
            position: relative;
            padding-left: 18px;

            &::before {
                content: "•";
                position: absolute;
                left: 0;
                color: var(--color-accent-primary);
                font-weight: var(--fw-bold);
                font-size: 0.85rem;
            }
        }
    }

    .card-btn {
        background: var(--grad-blue);
        color: #ffffff;
        font-family: var(--font-heading);
        font-weight: var(--fw-btn);
        font-size: 0.85rem;
        text-transform: uppercase;
        padding: 9px 42px 11px 22px;
        border: 2px solid rgba(255, 255, 255, 0.10);
        border-radius: var(--radius-btn);
        display: inline-flex;
        align-items: center;
        justify-content: center;
        position: relative;
        transition: var(--transition-base);

        i {
            color: var(--color-btn-blue-icon);
            position: absolute;
            right: 16px;
            top: 50%;
            transform: translateY(-50%);
            font-size: 0.75rem;
            transition: var(--transition-base);
        }

        &:hover {
            background: var(--grad-blue-hover);
            border-color: rgba(255, 255, 255, 0.45);
            color: #ffffff;

            i {
                color: #ffffff;
            }
        }
    }
}

/* --- Section 5: Stats Banner --- */
.stats-banner {
    background-color: var(--color-primary);
    color: #ffffff;
    padding: 80px 0;
    text-align: center;
    border-top: 1px solid rgba(255, 255, 255, 0.05);



    .stats-grid > .col {
        position: relative;
        /* Add vertical dividers on large screens */
        @media (min-width: 992px) {
            &:not(:last-child)::after {
                content: "";
                display: block;
                position: absolute;
                right: 0;
                top: 10%;
                height: 80%;
                width: 1px;
                background-color: rgba(255, 255, 255, 0.15);
            }
        }
    }

    .stat-col {
        position: relative;
    }

    .stat-icon {
        width: 45px;
        height: 45px;

        img {
            max-width: 100%;
            max-height: 100%;
            object-fit: contain;
        }
    }

    .stat-number {
        font-size: 2.8rem;
        font-weight: var(--fw-heading-bold);
        color: #ffffff;
        line-height: 1.1;
        margin-bottom: 8px;
        font-family: var(--font-heading);
        letter-spacing: -0.5px;
    }

    .stat-label {
        font-size: 0.95rem;
        font-weight: var(--fw-bold);
        text-transform: uppercase;
        color: #ffffff;
        margin-bottom: 4px;
        letter-spacing: 0.5px;
    }

    .stat-desc {
        font-size: 0.8rem;
        color: var(--color-text-light-muted);
        margin-bottom: 0;
        font-weight: var(--fw-medium);
    }
}

.stats-header {
    font-size: 1.65rem;
    font-weight: var(--fw-heading);
    margin: 0 auto 50px;
    color: #ffffff;
    letter-spacing: 0.5px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-family: var(--font-heading);
}

    .stats-header::before,
    .stats-header::after {
        content: "";
        display: block;
        height: var(--sideline-height);
        width: var(--sideline-width-desktop);
        background-color: var(--sideline-color);
        flex-shrink: 0;
    }

@media (max-width: 768px) {
    .stats-header {
        font-size: 1.4rem;
    }

        .stats-header::before,
        .stats-header::after {
            display: none;
        }
}

/* --- Section 6: Expanded Capabilities --- */
.capabilities-section {
    background-color: var(--color-bg-light);
    padding: var(--spacing-section) 0;
}

.side-lines-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 1.7rem;
    font-weight: var(--fw-heading);
    color: var(--color-primary);
    margin-bottom: 50px;
    text-align: center;
    text-transform: capitalize;
}

    .side-lines-heading::before,
    .side-lines-heading::after {
        content: "";
        display: block;
        height: var(--sideline-height);
        width: var(--sideline-width-desktop);
        background-color: var(--sideline-color);
    }

@media (max-width: 768px) {
    .side-lines-heading {
        font-size: 1.4rem;
    }

        .side-lines-heading::before,
        .side-lines-heading::after {
            width: var(--sideline-width-mobile);
        }
}

@media (max-width: 480px) {
    .side-lines-heading {
        font-size: 1.2rem;
        gap: 10px;
    }

        .side-lines-heading::before,
        .side-lines-heading::after {
            display: none;
        }
}

/* --- Section 7: Beyond Tooling --- */
.beyond-tooling-section {
    background-color: var(--color-primary);
    color: #ffffff;
    padding: var(--spacing-section-large) 0;
    border-top: 1px solid rgba(255, 255, 255, 0.05);
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);



    .beyond-desc {
        font-size: 1.05rem;
        line-height: 1.75;
        color: var(--color-text-light-muted);
        margin-bottom: 30px;
        font-weight: var(--fw-regular);
    }

    .btn-explore {
        background: var(--grad-orange);
        color: #ffffff;
        font-family: var(--font-heading);
        font-size: 0.85rem;
        font-weight: var(--fw-bold);
        text-transform: uppercase;
        padding: 12px 28px;
        border-radius: var(--radius-btn);
        border: 2px solid rgba(255, 255, 255, 0.10);
        transition: var(--transition-base);

        &:hover {
            background: var(--grad-orange-hover);
            border-color: rgba(255, 255, 255, 0.45);
            color: #ffffff;
        }
    }

    .service-item {
        text-align: center;
        padding: 0px 10px;
        transition: var(--transition-base);
        align-items: center;
        border-left: 3px solid #3d4658;

        .service-icon-wrapper {
            align-items: center;
            justify-content: center;
            width: 100%;
            width: 120px;
            height: 120px;
            border-radius: var(--radius-sm);
            transition: var(--transition-base);
        }

        .service-title {
            font-size: 0.85rem;
            font-weight: var(--fw-heading);
            color: #ffffff;
            margin-bottom: 0;
            letter-spacing: 0.8px;
            line-height: 1.4;
            text-transform: uppercase;
        }
    }
}

.beyond-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 1.7rem;
    font-weight: var(--fw-heading);
    color: #ffffff;
    margin-bottom: 55px;
    text-align: center;
    text-transform: capitalize;
}

    .beyond-header::before,
    .beyond-header::after {
        content: "";
        display: block;
        height: var(--sideline-height);
        width: var(--sideline-width-desktop);
        background-color: var(--sideline-color);
        flex-shrink: 0;
    }

@media (max-width: 768px) {
    .beyond-header {
        font-size: 1.4rem;
    }

        .beyond-header::before,
        .beyond-header::after {
            display: none;
        }
}

/* --- Section 8: Quality, Security & Compliance --- */
.compliance-section {
    padding: var(--spacing-section) 0;
    background-color: #ffffff;

    .logos-wrapper:hover {
        transform: none;
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.075);
        border-color: transparent;
    }

    .compliance-logo-item {
        img {
            height: 100px;
            width: auto;
            object-fit: contain;

            @media (max-width: 768px) {
                height: 80px;
            }
        }
    }

    .compliance-desc {
        font-size: 1.05rem;
        line-height: 1.8;
        text-align: left;
        margin-top: 30px;
        font-weight: var(--fw-medium);

        @media (max-width: 992px) {
            text-align: center;
        }
    }
}

/* --- Section 9: Industries We Serve --- */
.industries-section {
    background-color: var(--color-primary);
    color: #ffffff;
    padding: var(--spacing-section-large) 0;
    border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.industries-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 1.7rem;
    font-weight: var(--fw-heading);
    color: #ffffff;
    margin-bottom: 55px;
    text-align: center;
    text-transform: capitalize;
}

    .industries-header::before,
    .industries-header::after {
        content: "";
        display: block;
        height: var(--sideline-height);
        width: var(--sideline-width-desktop);
        background-color: var(--sideline-color);
    }

@media (max-width: 768px) {
    .industries-header {
        font-size: 1.4rem;
    }

        .industries-header::before,
        .industries-header::after {
            width: var(--sideline-width-mobile);
        }
}

@media (max-width: 480px) {
    .industries-header {
        font-size: 1.2rem;
        gap: 10px;
    }

        .industries-header::before,
        .industries-header::after {
            display: none;
        }
}

.industry-card {
    text-align: center;
    display: flex;
    flex-direction: column;
    height: 100%;
    text-decoration: none;

    &:hover {
        .industry-img-box {
            img {
                transform: scale(1.08);
            }
        }

        .industry-title {
            color: var(--color-accent-teal);
        }
    }

    .industry-img-box {
        width: 100%;
        aspect-ratio: 1 / 1;
        overflow: hidden;
        border: 1px solid rgba(255, 255, 255, 0.1);
        margin-bottom: 20px;

        img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            transition: transform 0.4s ease;
        }
    }

    .industry-title {
        font-size: 0.85rem;
        font-weight: var(--fw-bold);
        color: #ffffff;
        margin-bottom: 0;
        text-transform: uppercase;
        letter-spacing: 0.6px;
        line-height: 1.45;
        transition: color 0.3s ease;
        padding: 0 5px;
    }
}

/* --- Section 10: Client Testimonials --- */
.testimonials-section {
    padding: 95px 0;
    background-color: #fff;
    text-align: center;
    position: relative;

    .testimonials-header {
        font-size: 1.7rem;
        font-weight: 700;
        color: var(--color-primary);
        margin-bottom: 60px;
        position: relative;
        display: inline-block;
        font-family: var(--font-heading);

        &::after {
            content: "";
            display: block;
            position: absolute;
            bottom: -15px;
            left: 50%;
            transform: translateX(-50%);
            width: 70px;
            height: 3px;
            background-color: var(--color-accent-orange);
        }
    }

    .testimonial-carousel-wrapper {
        max-width: 880px;
        margin: 0 auto;
        position: relative;
        padding: 0 20px;
    }

    .quote-container {
        position: relative;
        padding: 0px 60px 80px 60px;

        @media (max-width: 576px) {
            padding: 30px 20px;
        }
    }

    .quote-icon-left {
        position: absolute;
        top: 0;
        left: 0;
        width: 90px;
        height: auto;
        opacity: 0.8;
        pointer-events: none;
        z-index: 1;

        @media (max-width: 576px) {
            width: 50px;
            top: -10px;
            left: 5px;
        }
    }

    .quote-icon-right {
        position: absolute;
        bottom: 0;
        right: 0;
        width: 90px;
        height: auto;
        opacity: 0.8;
        pointer-events: none;
        z-index: 1;

        @media (max-width: 576px) {
            width: 50px;
            bottom: -10px;
            right: 5px;
        }
    }

    .author-avatar {
        width: 75px;
        height: 75px;
        background-color: #fca510;
        border-radius: 50%;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
    }

    .author-name {
        font-family: var(--font-heading);
        font-size: 1.15rem;
        font-weight: var(--fw-bold);
        color: var(--color-primary);
        margin-bottom: 2px;
    }

    .author-company {
        font-size: 0.75rem;
        font-weight: var(--fw-bold);
        text-transform: uppercase;
        color: var(--color-text-muted);
        letter-spacing: 1px;
        margin-bottom: 30px;
    }

    .quote-text {
        font-size: 0.8rem;
        line-height: 1.85;
        color: var(--color-text-dark);
        font-weight: var(--fw-regular);
        margin-bottom: 0;
    }
    /* Carousel Custom Indicators */
    .carousel-indicators {
        bottom: -55px;
        margin: 0;
        left: 15%;
        right: 15%;
        border-top: 3px solid var(--color-border);
        padding-top: 15px;

        button {
            width: 10px;
            height: 10px;
            border-radius: 50%;
            border: none;
            background-color: var(--color-text-light-muted);
            opacity: 1;
            margin: 0 6px;
            transition: var(--transition-base);

            &.active {
                background-color: var(--color-success);
                transform: scale(1.2);
            }
        }
    }
}

/* --- Section 11: Request A Quote (Navy / Teal Slanted Section) --- */
.quote-section-wrapper {
    background-color: var(--color-primary);
    position: relative;
}

.quote-bg-top,
.quote-bg-bottom {
    width: 100%;
    overflow: hidden;
    line-height: 0;

    img {
        width: 100%;
        height: auto;
        display: block;
        filter: contrast(1.18) brightness(1.2);
    }
}

.quote-section {
    background-color: var(--color-primary);
    color: #ffffff;
    padding: 20px 0;

    @media (max-width: 768px) {
        padding: 10px 0;
    }

    .quote-title {
        position: relative;
        padding-top: 20px;
        padding-bottom: 20px;
        font-size: 2.8rem;
        font-weight: var(--fw-semibold);
        color: #ffffff;
        line-height: 1.15;
        margin-bottom: 35px;
        font-family: var(--font-heading);
        letter-spacing: -0.5px;

        &::before {
            content: "";
            display: block;
            position: absolute;
            top: 0;
            left: 0;
            width: 70px;
            height: 4px;
            background-color: var(--color-accent-orange);
        }

        &::after {
            content: "";
            display: block;
            position: absolute;
            bottom: 0;
            left: 0;
            width: 70px;
            height: 4px;
            background-color: var(--color-primary-link);
        }
    }

    .text-center .quote-title {
        &::before,
        &::after {
            left: 50%;
            transform: translateX(-50%);
        }
    }

    @media (min-width: 992px) {
        .text-lg-start .quote-title {
            &::before,
            &::after {
                left: 0;
                transform: none;
            }
        }
    }

    .quote-buttons {
        max-width: 280px;

        .btn-quote-orange {
            background: var(--grad-orange);
            color: #ffffff;
            font-family: var(--font-heading);
            font-weight: var(--fw-bold);
            text-transform: uppercase;
            font-size: 0.9rem;
            padding: 12px 25px;
            border-radius: var(--radius-btn);
            border: 2px solid rgba(255, 255, 255, 0.10);
            transition: var(--transition-base);

            &:hover {
                background: var(--grad-orange-hover);
                border-color: rgba(255, 255, 255, 0.45);
                color: #ffffff;
            }
        }

        .btn-quote-blue {
            background: var(--grad-blue);
            color: #ffffff;
            font-family: var(--font-heading);
            font-weight: var(--fw-bold);
            text-transform: uppercase;
            font-size: 0.9rem;
            padding: 11px 44px 13px 24px;
            border-radius: var(--radius-btn);
            border: 2px solid rgba(255, 255, 255, 0.10);
            display: inline-flex;
            align-items: center;
            justify-content: center;
            position: relative;
            transition: var(--transition-base);

            i {
                color: var(--color-btn-blue-icon);
                position: absolute;
                right: 18px;
                top: 50%;
                transform: translateY(-50%);
                transition: var(--transition-base);
            }

            &:hover {
                background: var(--grad-blue-hover);
                border-color: rgba(255, 255, 255, 0.45);
                color: #ffffff;
            }
        }
    }

    .contact-details {
        font-size: 0.95rem;
        line-height: 1.6;
        color: var(--color-text-light-muted);
        font-weight: var(--fw-regular);

        strong {
            color: #ffffff;
            font-family: var(--font-heading);
            font-size: 1.05rem;
            display: block;
            margin-bottom: 8px;
        }
    }

    .quote-intro-text {
        font-size: 1.05rem;
        line-height: 1.75;
        color: var(--color-text-light-muted);
        margin-bottom: 25px;
        font-weight: var(--fw-regular);
    }

    .quote-bullet-list {
        list-style: disc;
        padding-left: 20px;
        margin-bottom: 30px;

        li {
            font-size: 1rem;
            font-weight: var(--fw-medium);
            color: var(--color-text-light-muted);
            margin-bottom: 8px;
        }
    }

    .quote-footer-text {
        font-size: 0.95rem;
        line-height: 1.7;
        color: var(--color-text-light-muted);
        font-weight: var(--fw-regular);
        border-top: 1px solid rgba(255, 255, 255, 0.1);
        padding-top: 25px;
    }
}

/* --- Section 12: Pre-Footer Brand & Links --- */
.pre-footer-section {
    background-color: #ffffff;
    padding: 70px 0 50px;
    text-align: center;
    position: relative;
    border-bottom: 1px solid var(--color-border-light);

    .pre-footer-logo {
        display: inline-block;
        margin-bottom: 35px;
        text-decoration: none;
        max-width: 307px;
        width: 100%;

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

    .pre-footer-links {

        a {
            font-family: var(--font-heading);
            font-size: 0.85rem;
            font-weight: var(--fw-bold);
            color: var(--color-primary-link);
            text-transform: uppercase;
            letter-spacing: 0.5px;

            &:hover {
                color: var(--color-accent-orange);
            }
        }
    }
    /* Scroll To Top Button */
    .scroll-to-top {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 46px;
        height: 46px;
        background-color: var(--color-accent-orange);
        border-radius: 50%;
        color: #ffffff;
        font-size: 1.6rem;
        cursor: pointer;
        box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
        transition: var(--transition-base);
        border: none;

        i {
            line-height: 1;
            display: flex;
            align-items: center;
        }

        &:hover {
            background-color: var(--color-accent-orange-hover);
            transform: scale(1.08);
        }
    }
}

/* --- Section 13: Footer --- */
.site-footer {
    background-color: var(--color-footer-bg);
    color: var(--color-footer-text);
    padding: 80px 0 0 0;
    font-size: 0.85rem;
    border-top: 1px solid rgba(255, 255, 255, 0.05);

    .footer-col-title {
        font-family: var(--font-heading);
        font-size: 0.9rem;
        font-weight: var(--fw-semibold);
        text-transform: uppercase;
        color: #ffffff;
        margin-bottom: 15px;
        letter-spacing: 1px;
        position: relative;
        padding-bottom: 0;
    }

    .footer-links {

        li {
            margin-bottom: 12px;
        }

        a {
            color: var(--color-footer-text);
            font-weight: var(--fw-medium);
            display: inline-block;
            transition: none;

            &:hover {
                color: #ffffff;
                text-decoration: underline;
            }
        }
    }

    .footer-about-text {
        line-height: 1.65;
        margin-bottom: 25px;
    }

    .call-box {
        display: flex;
        align-items: center;
        gap: 15px;
        margin-bottom: 20px;

        .para {
            p {
                font-size: 0.75rem;
                color: var(--color-footer-text);
                margin-bottom: 0;
                line-height: 1.3;
            }

            a {
                color: #ffffff;
                font-weight: var(--fw-regular);
                font-size: 0.95rem;

                &:hover {
                    color: var(--color-accent-orange);
                }
            }
        }
    }

    .social-icons {
        display: flex;
        gap: 10px;
        margin-top: 25px;

        a {
            display: inline-block;
            transition: var(--transition-base);

            img {
                width: 36px;
                height: 36px;
                object-fit: contain;
            }
        }
    }
    /* Footer Bottom Bar */
    .footer-bottom {
        background-color: var(--color-footer-bg);
        margin-top: 40px;
        color: var(--color-footer-bottom-text);
        font-size: 0.8rem;
        border-top: 1px solid rgba(255, 255, 255, 0.03);
        padding: 3.9rem 0;

        .payment-accept {
            /* span {
        font-weight: 600;
        text-transform: uppercase;
        font-size: 0.82rem;
        letter-spacing: 0.5px;
        color: #7b8596;
      } */

            .payment-icons {
                display: flex;
                align-items: center;
                gap: 8px;

                .paylink {
                    display: inline-block;
                    transition: var(--transition-base);

                    &:hover {
                        transform: translateY(-2px);
                        opacity: 0.8;
                    }

                    img {
                        height: 34px;
                        width: auto;
                        object-fit: contain;
                    }
                }
            }
        }

        .payment-accept,
        .footer-subscribe {
            span {
                font-weight: var(--fw-semibold);
                text-transform: uppercase;
                font-size: 0.9rem;
                letter-spacing: 0.5px;
                color: var(--color-text-white);
            }
        }
        /* Newsletter Subscribe Box */
        .footer-subscribe {
            .subscribe-form {
                display: flex;
                align-items: center;

                input {
                    background-color: rgba(255, 255, 255, 0.04);
                    border: 1px solid rgba(255, 255, 255, 0.08);
                    color: #ffffff;
                    font-size: 0.8rem;
                    padding: 8px 15px;
                    outline: none;
                    width: 200px;
                    border-radius: 0;
                    height: 38px;
                    box-sizing: border-box;

                    &::placeholder {
                        color: #475161;
                    }
                }

                button {
                    background-color: var(--color-primary-link);
                    border: 1px solid rgba(255, 255, 255, 0.08);
                    color: #ffffff;
                    width: 44px;
                    height: 38px;
                    box-sizing: border-box;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    transition: background-color 0.3s ease;
                    border-radius: 0;
                    padding: 0;

                    &:hover {
                        background-color: #1453b8;
                    }

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

        .copyright {
            margin: 0;
            font-weight: var(--fw-regular);
        }
    }
}

/* --- Section 14: Floating Back to Top Button --- */
.floating-btn {
    position: fixed;
    bottom: 30px;
    right: 30px;
    z-index: 1040;
    width: 48px;
    height: 48px;
    background-color: var(--color-accent-orange);
    color: #ffffff;
    border: none;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.20);
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);

    i {
        font-size: 2rem;
        line-height: 1;
        display: flex;
        align-items: center;
    }

    &.visible {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }

    &:hover {
        background-color: var(--color-accent-orange-hover);
        color: #ffffff;
        transform: scale(1.08);
        box-shadow: 0 6px 16px rgba(235, 102, 25, 0.3);
    }
}

/* Bolder chevron icons in buttons */
.btn i.bi-chevron-right {
    -webkit-text-stroke: 0.8px;
}

/* Hero Scroll Down Pulse Grow Animation */
.pulse-grow-animate {
    animation: pulseGrow 1.2s ease-in-out 1;
}

@keyframes pulseGrow {
    0% {
        transform: scale(1);
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    }

    50% {
        transform: scale(1.18);
        box-shadow: 0 8px 24px rgba(235, 102, 25, 0.5);
    }

    100% {
        transform: scale(1);
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    }
}

/* --- Section 15: Responsive Design (Media Queries) --- */

/* ========================================================================= */
/* TABLETS (max-width: 991.98px)                                             */
/* ========================================================================= */
@media (max-width: 991.98px) {

    /* Hero Section */
    .hero-section {
        padding: 60px 0 80px;
        min-height: auto;
        background-position: 30% center;

        .hero-title {
            font-size: 2.8rem;
            line-height: 1.2;
            letter-spacing: -0.5px;
        }

        .hero-subtitle {
            font-size: 1rem;
            line-height: 1.5;
            margin-bottom: 25px;
        }

        .hero-list {
            margin-bottom: 30px;

            li {
                font-size: 1rem;
                margin-bottom: 8px;
            }
        }

        br {
            display: none !important;
        }
    }

    /* Section Padding Adjustments */
    .difference-section,
    .capabilities-section,
    .compliance-section,
    .industries-section {
        padding: var(--spacing-section) 0;
    }

    .testimonials-section {
        padding: 60px 0 90px;
    }

    /* Global Headings */
    .accent-line-heading,
    .side-lines-heading,
    .beyond-header,
    .industries-header,
    .testimonials-header {
        font-size: 1.6rem;
        line-height: 1.3;
    }

    .accent-line-heading {
        margin-bottom: 1.5rem;
        padding-top: 15px;
        padding-bottom: 15px;

        br {
            display: none !important;
        }
    }

    /* Difference / Capability Cards */
    .diff-card {
        padding: 30px 20px;

        .card-title {
            font-size: 1.35rem;
            padding: 0 1rem;
        }
    }

    /* Beyond Tooling Section */
    .beyond-tooling-section {
        padding: var(--spacing-section) 0;

        .beyond-desc {
            font-size: 0.95rem;
            line-height: 1.6;
            margin-bottom: 25px;
        }

        .service-item {
            border-left: none;
            border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
            padding: 1rem 1rem 2rem 1rem !important;

            &:last-child {
                border-bottom: none;
            }
        }
    }

    /* Quality & Compliance */
    .compliance-section {
        .accent-line-heading br {
            display: none !important;
        }
    }

    /* Quote Section */
    .quote-section {
        .quote-title {
            font-size: 2.2rem;
            margin-bottom: 25px;

            br {
                display: none !important;
            }
        }
    }
}

/* ========================================================================= */
/* PHONES (max-width: 575.98px)                                              */
/* ========================================================================= */
@media (max-width: 575.98px) {

    /* Hero Section */
    .hero-section {
        padding: 50px 0 60px;
        background-position: 25% center;

        .hero-title {
            font-size: 2.2rem;
            line-height: 1.25;
        }

        .hero-subtitle {
            font-size: 0.95rem;
            margin-bottom: 20px;
        }

        .hero-list {
            margin-bottom: 25px;

            li {
                font-size: 0.9rem;
                padding-left: 15px;
                margin-bottom: 6px;
            }
        }

        .hero-buttons {
            flex-direction: column;
            width: 100%;

            .btn-hero-orange,
            .btn-hero-blue {
                width: 100%;
                justify-content: center;
                padding: 12px 20px;
            }
        }
    }

    /* Section Padding Adjustments */
    .difference-section,
    .capabilities-section,
    .compliance-section,
    .industries-section {
        padding: var(--spacing-section-phone) 0;
    }

    .testimonials-section {
        padding: var(--spacing-section-phone) 0 85px;
        margin-bottom: 30px !important;
        position: relative;

        &::after {
            content: "";
            display: block;
            position: absolute;
            left: 0;
            right: 0;
            bottom: -30px;
            height: 30px;
            background-color: #ffffff;
            z-index: 1;
            pointer-events: none;
        }
    }

    /* Headings */
    .accent-line-heading,
    .side-lines-heading,
    .beyond-header,
    .industries-header,
    .testimonials-header {
        font-size: 1.35rem;
    }

    /* Center Align Accent Line Headings (Difference & Compliance) */
    .accent-line-heading {
        text-align: center !important;

        &::before,
        &::after {
            width: 50px !important;
            left: 50% !important;
            transform: translateX(-50%) !important;
        }
    }

    .difference-section .header-text {
        text-align: center !important;
    }

    /* Center Align Headings with Side Lines */
    .side-lines-heading,
    .beyond-header,
    .industries-header,
    .stats-banner .stats-header {
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        gap: 10px !important;
        text-align: center !important;

        &::before,
        &::after {
            content: "" !important;
            display: block !important;
            width: 30px !important;
            height: var(--sideline-height) !important;
            background-color: var(--sideline-color) !important;
            flex-shrink: 0 !important;
        }
    }

    /* Difference / Capability Cards */
    .diff-card {
        padding: 25px 15px;

        .card-title {
            font-size: 1.25rem;
            padding: 0;
        }

        .card-desc {
            font-size: 0.9rem;
            line-height: 1.5;
        }
    }

    /* Stats Banner */
    .stats-banner {
        padding: var(--spacing-section-phone) 0;

        .stats-header {
            font-size: 1.3rem;
            margin-bottom: 35px;
        }

        .stat-number {
            font-size: 2.2rem;
        }

        .stat-desc {
            font-size: 0.8rem;
        }
    }

    /* Pre-Footer Section */
    .pre-footer-section {
        padding: 40px 0;

        .pre-footer-logo {
            margin-bottom: 25px;

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

        .pre-footer-links {
            flex-direction: column;
            gap: 15px;
            align-items: center;
        }
    }

    /* Quote Section */
    .quote-section {
        .quote-title {
            font-size: 1.75rem;
            margin-bottom: 20px;
            padding-top: 15px;
            padding-bottom: 15px;

            &::before,
            &::after {
                width: 50px;
            }
        }

        .quote-intro-text {
            font-size: 0.95rem;
            line-height: 1.6;
        }

        .quote-bullet-list {
            li {
                font-size: 0.9rem;
            }
        }

        .quote-footer-text {
            font-size: 0.9rem;
            line-height: 1.6;
        }
    }

    /* Site Footer */
    .site-footer {
        padding: 30px 0 0 0 !important;
    }

    .footer-bottom {
        padding: 20px 0 !important;
    }
}

/* ========================================================================= */
/* TOOLING LANDING PAGE STYLES                                               */
/* ========================================================================= */

.breadcrumbs-bar {
    border: none;

    .breadcrumb-item {
        color: var(--color-primary) !important;

        &.active {
            color: var(--color-primary) !important;
        }
    }

    a {
        color: var(--color-primary);
        transition: var(--transition-base);

        &:hover {
            color: var(--color-accent-orange);
        }
    }

    .breadcrumb-item + .breadcrumb-item::before {
        font-family: "bootstrap-icons" !important;
        content: "\f285" !important;
        /* bi-chevron-right */
        font-size: 0.75rem;
        color: var(--color-accent-teal);
        vertical-align: middle;
    }
}

/* Scrolled state — matches the dark navy breadcrumbs bar on process carriers page */
.breadcrumbs-bar--scrolled {
    position: sticky;
    top: 58px;
    z-index: 999;
    background-color: var(--color-primary) !important;
    padding-top: 10px !important;
    padding-bottom: 10px !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
    transition: background-color 0.3s ease, box-shadow 0.3s ease;

    .breadcrumb-item {
        font-size: 0.8rem;
        font-weight: var(--fw-semibold);
        text-transform: uppercase;
        letter-spacing: 0.5px;

        a {
            color: #ffffff !important;
            text-decoration: none;
            transition: var(--transition-base);

            &:hover {
                color: #ffffff !important;
                text-decoration: underline;
            }
        }

        &.active {
            color: var(--color-accent-teal) !important;
        }

        & + .breadcrumb-item::before {
            color: rgba(255, 255, 255, 0.5) !important;
            content: "\f285" !important;
            font-family: bootstrap-icons !important;
        }
    }

    @media (max-width: 576px) {
        .breadcrumb-item {
            font-size: 0.65rem;
            letter-spacing: 0.2px;
        }
    }
}


.intro-section {
    padding: 20px 0 var(--spacing-section) 0;

    .intro-title {
        font-size: 2.2rem;
        font-weight: var(--fw-bold);
        color: var(--color-primary);
        margin-bottom: 10px;
        line-height: 1.2;
    }

    .intro-subtitle {
        font-size: 1.25rem;
        font-weight: var(--fw-semibold);
        color: var(--color-accent-orange);
        margin-bottom: 25px;
        position: relative;
        padding-bottom: 15px;

        &::after {
            content: "";
            display: block;
            position: absolute;
            bottom: 0;
            left: 0;
            width: 60px;
            height: 3px;
            background-color: var(--color-primary-light);
        }
    }

    .intro-text {
        font-size: 14px;
        line-height: 1.75;
        color: var(--color-text-dark);
        font-weight: var(--fw-medium);
    }
}

.sidebar-box {
    background-color: #e2edf6;
    padding: 30px 25px;
    border-radius: var(--radius-btn);
    border: 1px solid rgba(0, 0, 0, 0.03);

    .sidebar-title {
        font-size: 0.9rem;
        font-weight: var(--fw-bold);
        text-transform: uppercase;
        color: #000000;
        margin-bottom: 8px;
        letter-spacing: 0.8px;
        position: relative;
        padding-bottom: 0;
        border-bottom: none;
    }

    .sidebar-links {
        list-style: none;
        padding: 0;
        margin: 0;

        li {
            margin-bottom: 8px;
            padding-bottom: 0;
            border-bottom: none;

            &:last-child {
                margin-bottom: 0;
                padding-bottom: 0;
                border-bottom: none;
            }

            a {
                font-size: 14px;
                font-weight: var(--fw-medium);
                color: #003399;
                display: block;

                &:hover {
                    color: var(--color-accent-orange);
                    text-decoration: underline;
                }
            }
        }
    }
}

.tooling-product-section {
    padding: var(--spacing-section) 0;
    border-bottom: 1px solid var(--color-border-light);

    &.bg-light {
        background-color: #f5f9fc !important;
    }

    &:last-of-type {
        border-bottom: none;
    }

    .product-title {
        font-size: 1.8rem;
        font-weight: var(--fw-semibold);
        color: #000000;
        margin-bottom: 15px;
        line-height: 1.25;
    }

    .product-desc {
        font-size: 14px;
        line-height: 1.7;
        color: var(--color-text-dark);
        font-weight: var(--fw-medium);
        margin-bottom: 20px;
    }

    .product-cats-title {
        font-size: 0.95rem;
        font-weight: var(--fw-bold);
        color: var(--color-primary);
        margin-bottom: 12px;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }

    .product-cats-list {
        list-style: none;
        padding: 0;
        margin: 0 0 25px 0;

        li {
            margin-bottom: 8px;
            position: relative;
            padding-left: 0;

            a {
                font-size: 0.95rem;
                font-weight: var(--fw-medium);
                color: var(--color-primary-link);
                text-decoration: underline;

                &:hover {
                    color: var(--color-accent-orange);
                }
            }
        }
    }

    .product-image-container {
        background-color: #ffffff;
        border: 8px solid #ffffff;
        border-radius: var(--radius-md);
        padding: 0;
        box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
        transition: var(--transition-base);
        overflow: visible;

        &:hover {
            box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
        }

        .carousel,
        .carousel-inner,
        .carousel-item {
            border-radius: var(--radius-md);
            height: 280px;
        }

        picture {
            display: block;
            width: 100%;
        }

        img {
            width: 100%;
            height: 280px;
            border-radius: var(--radius-md);
            border: 1px solid rgba(0, 0, 0, 0.08);
            object-fit: cover;
        }

        .carousel-control-prev,
        .carousel-control-next {
            width: 32px;
            height: 32px;
            background-color: rgba(255, 255, 255, 0.9);
            border: 1px solid var(--color-border);
            border-radius: 50%;
            top: 50%;
            transform: translateY(-50%);
            opacity: 0.8;
            transition: var(--transition-base);
            z-index: 10;
            display: flex;
            align-items: center;
            justify-content: center;

            &:hover {
                opacity: 1;
                background-color: #ffffff;
                box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
            }

            i {
                font-size: 0.85rem;
                color: #22252a;
                -webkit-text-stroke: 1.2px;
                line-height: 1;
                display: flex;
                align-items: center;
                justify-content: center;
            }
        }

        .carousel-control-prev {
            left: -42px;
        }

        .carousel-control-next {
            right: -42px;
        }

        @media (max-width: 576px) {

            .carousel-inner,
            .carousel-item,
            img {
                height: 220px !important;
            }

            .carousel {
                height: auto !important;
            }
        }
    }
}

@media (max-width: 991.98px) {
    .intro-section {
        padding: 40px 0;

        .intro-title {
            font-size: 1.8rem;
        }
    }

    .sidebar-box {
        margin-top: 30px;
    }

    .page-custom-applications .col-lg-3.order-1 {
        margin-top: 0 !important;
        margin-bottom: 30px !important;
    }

    .page-custom-applications .sidebar-box {
        margin-top: 0 !important;
    }

    .page-machining .col-lg-3.order-1 {
        margin-top: 0 !important;
        margin-bottom: 30px !important;
    }

    .page-machining .sidebar-box {
        margin-top: 0 !important;
    }

    #intro-machining-landing {
        padding: 30px 0 !important;
    }

    .page-machining-materials .col-lg-3.order-1,
    .page-parts-materials .col-lg-3.order-1,
    .page-parts-coatings .col-lg-3.order-1,
    .page-company .col-lg-3.order-1 {
        margin-top: 0 !important;
        margin-bottom: 30px !important;
    }

    .page-machining-materials .product-image-container,
    .page-parts-materials .product-image-container,
    .page-parts-coatings .product-image-container,
    .page-company .product-image-container {
        margin-top: 0 !important;
    }

    .page-machining-materials .tooling-product-section,
    .page-parts-materials .tooling-product-section,
    .page-parts-coatings .tooling-product-section,
    .page-company .tooling-product-section {
        padding: 30px 0 !important;
    }

    .tooling-product-section {
        padding: 40px 0;

        .product-title {
            font-size: 1.5rem;
            margin-top: 0;
        }

        .product-image-container {
            margin-top: 25px;
            box-shadow: none !important;

            &:hover {
                box-shadow: none !important;
            }

            .carousel {
                padding-bottom: 60px !important;
                position: relative;
                height: auto !important;
            }

            .carousel-control-prev,
            .carousel-control-next {
                width: 44px !important;
                height: 44px !important;
                top: auto !important;
                bottom: 8px !important;
                transform: none !important;
                background-color: #ffffff !important;
                border: 1px solid rgba(0, 0, 0, 0.15) !important;
                box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08) !important;
                opacity: 1 !important;
                display: flex !important;
                align-items: center;
                justify-content: center;

                i {
                    font-size: 1rem !important;
                    color: var(--color-primary) !important;
                }

                &:active {
                    background-color: #f1f5f9 !important;
                }
            }

            .carousel-control-prev {
                left: 50% !important;
                margin-left: -54px !important;
                /* sit left of center */
            }

            .carousel-control-next {
                left: 50% !important;
                margin-left: 10px !important;
                /* sit right of center */
                right: auto !important;
            }
        }
    }
}

/* Tooling page compliance logos layout override */
.compliance-logos-section {
    background-color: #ffffff;
    border-top: none !important;

    .compliance-logo-col {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;

        img {
            max-height: 100px;
            object-fit: contain;
        }

        @media (min-width: 576px) {
            &:not(:last-child)::after {
                content: "";
                position: absolute;
                right: 0;
                top: 15%;
                height: 70%;
                border-right: 1px dashed rgba(0, 0, 0, 0.15);
            }
        }
    }
}

/* ========================================================================= */
/* SUBPAGES & PROCESS CARRIERS PAGE STYLES                                   */
/* ========================================================================= */
.breadcrumbs-bar-dark {
    background-color: var(--color-primary);
    color: #ffffff;

    .breadcrumb-item {
        font-size: 0.8rem;
        font-weight: var(--fw-semibold);
        text-transform: uppercase;
        letter-spacing: 0.5px;

        a {
            color: #ffffff;
            text-decoration: none;
            transition: var(--transition-base);

            &:hover {
                color: #ffffff;
                text-decoration: underline;
            }
        }

        &.active {
            color: #ffffff;
        }

        & + .breadcrumb-item::before {
            color: rgba(255, 255, 255, 0.5) !important;
            content: var(--bs-breadcrumb-divider, "\f285") !important;
            /* chevron right icon */
            font-family: bootstrap-icons !important;
        }
    }

    @media (max-width: 576px) {
        .breadcrumb-item {
            font-size: 0.65rem;
            letter-spacing: 0.2px;
        }
    }
}



.product-caption-text {
    font-size: 13px;
    font-weight: var(--fw-medium);
    color: #4b5563;
    /* medium slate grey */
    text-align: center;
    margin-top: 12px;
    line-height: 1.4;
}

/* Bullet list overrides */
.benefits-list,
.features-list,
.applications-list {

    li,
    li span {
        font-size: 14px !important;
        line-height: 1.6 !important;
        color: var(--color-text-dark) !important;
        font-weight: var(--fw-medium) !important;
    }

    li {
        margin-bottom: 12px !important;
    }
}

.benefits-list {
    padding-left: 0;
}

.features-list,
.applications-list {
    padding-left: 1.2rem;
    list-style-type: disc;
}

/* Page-Specific Color Scoping for all Tooling Subpages */
:where(body[class^="page-"]:not(.page-parts)) h1,
:where(body[class^="page-"]:not(.page-parts)) h2,
:where(body[class^="page-"]:not(.page-parts)) h4:not(.holddown-subtitle),
:where(body[class^="page-"]:not(.page-parts)) h5,
:where(body[class^="page-"]:not(.page-parts)) h6,
:where(body[class^="page-"]:not(.page-parts)) .product-title:not(.sidebar-title),
:where(body[class^="page-"]:not(.page-parts)) .intro-title {
    color: #0066cc;
}

:where(body[class^="page-"]:not(.page-parts):not(.page-holddowns)) h3:not(.sidebar-title) {
    color: #0066cc;
}

.page-required-data .section-subtitle-with-icon {
    color: var(--color-primary) !important;
}

.breadcrumbs-bar-dark .breadcrumb-item.active {
    color: var(--color-accent-teal) !important;
}

.breadcrumbs-bar-dark {
    position: sticky;
    top: 58px;
    z-index: 999;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

h2.product-title {
    font-size: 1.4rem !important;
}

/* Target product section layouts (excluding intro sections starting with 'intro-') */
.tooling-product-section:not([id^="intro-"]) {
    .product-image-container img {
        height: auto !important;
        aspect-ratio: 1 / 1 !important;
        width: 100% !important;
    }

    .product-image-container .carousel,
    .product-image-container .carousel-inner,
    .product-image-container .carousel-item {
        height: auto !important;
        aspect-ratio: 1 / 1 !important;
    }

    .product-image-container {
        max-width: 220px;
        margin: 0 auto;
    }

        .product-image-container picture {
            display: block;
            width: 100%;
            line-height: 0;
        }
}


/* On phones: all product-image-containers go full width — override the 220px desktop cap */
@media (max-width: 576px) {
    .product-image-container {
        max-width: 100% !important;
        width: 100% !important;
    }

        .product-image-container picture,
        .product-image-container img,
        .product-image-container .carousel,
        .product-image-container .carousel-inner,
        .product-image-container .carousel-item {
            width: 100% !important;
            max-width: 100% !important;
        }
}

/* Helper class for buttons without icons to center-align text */
.btn-no-icon {
    padding: 12px 24px !important;
}

/* Image Viewer Lightbox Modal & Animation */
#imageViewerModal {
    background-color: rgba(0, 0, 0, 0.75) !important;
    transition: opacity 0.3s ease;
}

    #imageViewerModal.fade .modal-dialog {
        transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease !important;
        transform: scale(0.05) !important;
        opacity: 0;
    }

    #imageViewerModal.show .modal-dialog {
        transform: scale(1) !important;
        opacity: 1;
    }

#modalCarousel .carousel-item {
    transition: none !important;
}

#imageViewerModal .carousel-item img {
    border-radius: var(--radius-md);
}

.modal-caption {
    font-size: 0.95rem;
    font-weight: var(--fw-medium);
    color: #ffffff;
    opacity: 0.9;
    letter-spacing: 0.5px;
    margin-top: 15px;
    text-align: center;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8);
}

.product-image-container {
    cursor: zoom-in;
}

/* Custom Video Player Styling */
#customVideoContainer:hover #videoControlsBar {
    opacity: 1 !important;
}

#videoProgressContainer:hover {
    height: 8px !important;
}

    #videoProgressContainer:hover #videoProgressHandle {
        opacity: 1 !important;
        top: -2.5px !important;
    }

    #videoProgressContainer:hover #videoProgressBar {
        height: 100% !important;
    }

#videoOverlayPlay {
    transform: translate(-50%, -50%) scale(1) !important;
    transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.2s, border-color 0.2s !important;
}

    #videoOverlayPlay:hover {
        transform: translate(-50%, -50%) scale(1.12) !important;
        background-color: rgba(0, 0, 0, 0.8) !important;
        border-color: #ffffff !important;
    }

/* Volume input range styling */
#videoVolumeSlider::-webkit-slider-runnable-track {
    background: rgba(255, 255, 255, 0.3);
    height: 4px;
    border-radius: 2px;
}

#videoVolumeSlider::-webkit-slider-thumb {
    margin-top: -4px;
    width: 12px;
    height: 12px;
    background: #ffffff;
    border-radius: 50%;
}

/* ========================================================================= */
/* Precision Parts Page Custom Styles                                        */
/* ========================================================================= */
.page-parts .hero-backdrop-img {
    filter: brightness(0.5) !important;
}

.page-parts h1,
.page-parts h2,
.page-parts h3,
.page-parts h4,
.page-parts h5,
.page-parts h6,
.page-parts .product-title,
.page-parts .intro-title {
    color: #22252a;
}

.page-parts .site-footer h1,
.page-parts .site-footer h2,
.page-parts .site-footer h3,
.page-parts .site-footer h4,
.page-parts .site-footer h5,
.page-parts .site-footer h6 {
    color: #ffffff !important;
}

.page-parts .pre-footer-section h1,
.page-parts .pre-footer-section h2,
.page-parts .pre-footer-section h3,
.page-parts .pre-footer-section h4,
.page-parts .pre-footer-section h5,
.page-parts .pre-footer-section h6 {
    color: inherit !important;
}

.page-parts .breadcrumbs-bar-dark .breadcrumb-item.active {
    color: var(--color-accent-teal) !important;
}

.page-parts .breadcrumbs-bar-dark {
    position: sticky;
    top: 58px;
    z-index: 999;
}

.page-parts h2.product-title {
    font-size: 1.4rem !important;
}

.page-parts .video-thumbnail-container {
    overflow: hidden;
    transition: transform 0.3s ease;
}

    .page-parts .video-thumbnail-container:hover {
        transform: scale(1.02);
    }

        .page-parts .video-thumbnail-container:hover .video-play-overlay {
            background-color: rgba(0, 0, 0, 0.4);
        }

        .page-parts .video-thumbnail-container:hover .play-btn-circle {
            transform: scale(1.1);
            background-color: var(--color-accent-orange-hover);
        }

/* ============================================ */
/* Parts Page: Extracted Inline Style Overrides */
/* ============================================ */

/* 1. Hero Section title (overrides .page-parts h1 color) */
.page-parts .hero-section .hero-title {
    color: #ffffff;
}

/* 2. Breadcrumb styling */
.page-parts .breadcrumbs-bar-dark .breadcrumb {
    font-size: 0.8rem;
    font-weight: var(--fw-semibold);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* 3. StenTech logo in breadcrumbs bar */
.page-parts .breadcrumbs-bar-dark .stentech-logo {
    height: 24px;
    object-fit: contain;
}

/* 4. Job Shop Lead section & Company Intro section */
.page-parts #job-shop-lead .product-title,
.page-company #intro-company .product-title {
    font-size: 2.2rem;
    font-weight: var(--fw-bold);
    color: var(--color-primary);
}

.page-parts #job-shop-lead .intro-subtitle {
    font-size: 1.2rem;
    font-weight: var(--fw-semibold);
    color: #000000;
    margin-bottom: 1.2rem;
    line-height: 1.4;
}

.page-parts #job-shop-lead .video-thumb-link,
.page-company #intro-company .video-thumb-link {
    border: 7px solid #ffffff;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    border-radius: 10px;
}

/* 5. Manufacturing Platform section (overrides .page-parts h2.product-title !important) */
.page-parts #manufacturing-platform .product-title {
    font-size: 1.8rem !important;
    font-weight: var(--fw-bold);
    margin-bottom: 1.2rem;
}

/* 6. Core Services section */
.page-parts #core-services .services-heading {
    font-size: 2.4rem;
    font-weight: var(--fw-bold);
    color: #22252a;
}

.page-parts .service-checkmark {
    flex-shrink: 0;
}

.page-parts .service-title {
    font-size: 1.25rem;
    font-weight: var(--fw-bold);
    margin-bottom: 0;
    color: #22252a;
}

.page-parts .service-desc {
    margin-bottom: 0;
}

/* 7. Callout Banner (overrides Bootstrap .bg-dark !important) */
#callout-banner {
    background-color: #0b1a30 !important;
}

    #callout-banner .quote-mark {
        position: absolute;
        right: 0;
        top: -30px;
        font-size: 8rem;
        font-family: 'Courier New', monospace;
        line-height: 1;
        color: var(--color-text-muted);
    }

/* 8. HELP Section */
.page-parts #help-process {
    padding-top: calc(var(--spacing-section) + 20px);
    padding-bottom: calc(var(--spacing-section) + 20px);
}

    .page-parts #help-process .help-diagram {
        width: 100%;
        height: 100%;
        object-fit: contain;
        display: block;
    }

    .page-parts #help-process .product-title {
        font-size: 1.8rem !important;
        font-weight: var(--fw-bold);
        color: #000000;
        margin-bottom: 1.2rem;
    }

    .page-parts #help-process .help-desc {
        font-weight: var(--fw-semibold);
        color: #000;
    }

    .page-parts #help-process .help-link {
        color: var(--color-primary-link);
        text-decoration: none;
        font-weight: var(--fw-bold);
    }

        .page-parts #help-process .help-link:hover {
            color: var(--color-accent-orange);
            text-decoration: underline;
        }

    .page-parts #help-process .btn-chevron {
        font-size: 0.8rem;
    }

/* 9. Parts Challenges section */
.page-parts #parts-challenges .intro-subtitle {
    font-size: 1.1rem;
    font-weight: var(--fw-bold);
    color: var(--color-primary-link);
    letter-spacing: 1px;
    margin-bottom: 0.5rem;
}

.page-parts #parts-challenges .product-title {
    font-size: 2.2rem !important;
    font-weight: var(--fw-bold);
    color: #000000;
    margin-bottom: 1.5rem;
}

.page-parts .challenge-question {
    font-size: 1.05rem;
    font-weight: var(--fw-semibold);
    color: #000000;
}

    .page-parts .challenge-question:last-of-type {
        margin-bottom: 1.5rem;
    }

.page-parts #parts-challenges .challenges-sticky {
    position: sticky;
    top: 160px;
}

.page-parts .profile-label {
    font-size: 0.9rem;
    font-weight: var(--fw-bold);
    letter-spacing: 0.5px;
}

/* 10. Why Choose StenTech Parts section */
.page-parts #why-choose-parts .why-choose-subtitle {
    color: var(--color-primary-link);
    font-size: 0.9rem;
    letter-spacing: 1px;
}

.page-parts #why-choose-parts .why-choose-title {
    color: #000000;
    font-size: 2.2rem;
    font-weight: var(--fw-bold);
}

.page-parts #why-choose-parts {
    padding-top: calc(var(--spacing-section) + 30px);
    padding-bottom: calc(var(--spacing-section) + 30px);
}

    .page-parts #why-choose-parts .why-choose-sticky {
        position: sticky;
        top: 160px;
    }

.page-parts .why-choose-checkmark {
    flex-shrink: 0;
}

.page-parts .why-choose-strong {
    color: #000;
    font-size: 1.05rem;
}

.page-parts .why-choose-desc {
    font-size: 0.92rem;
}

/* 11. Video Modal */

.page-parts .video-modal-body {
    aspect-ratio: 16/9;
}

#customVideoPlayer {
    object-fit: contain;
}

.page-parts .video-play-overlay {
    position: absolute;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
}

.page-parts .play-btn-circle {
    width: 64px;
    height: 64px;
    background-color: var(--color-accent-orange);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
    padding-left: 4px;
}

.page-parts .service-image-wrapper {
    position: relative;
    aspect-ratio: 394 / 166;
    margin-bottom: 1.5rem;
    border-radius: 10px;
    overflow: hidden;
}

.page-parts .service-image-clip {
    position: absolute;
    inset: 0;
    overflow: hidden;
}

    .page-parts .service-image-clip img,
    .page-parts .service-image-clip picture {
        display: block;
        width: 100%;
        height: 100%;
    }

    .page-parts .service-image-clip img {
        object-fit: cover;
    }



.page-parts .profile-img {
    width: 154px;
    height: 154px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid #e2e8f0;
}

#manufacturing-platform .product-image-container img {
    height: auto;
}

.object-cover {
    object-fit: cover;
}

#callout-banner h2 {
    font-size: 2.2rem;
    font-weight: var(--fw-bold);
    color: var(--color-text-white);
}

#callout-banner p {
    max-width: 900px;
    font-size: 1.15rem;
    line-height: 1.7;
    color: var(--color-text-white);
}

/* ========================================================================= */
/* Mega Menu Dropdown */
/* ========================================================================= */

@media (min-width: 992px) {
    .main-nav .nav-item.dropdown {
        position: static !important;
    }

    .main-nav .dropdown-menu.mega-menu {
        width: 100% !important;
        left: 0 !important;
        right: 0 !important;
        top: 100% !important;
        margin-top: 0 !important;
        border: none !important;
        border-radius: 0 !important;
        border-top: 2px solid var(--color-border) !important;
        border-bottom: 2px solid var(--color-border) !important;
        box-shadow: 0 10px 35px rgba(0, 0, 0, 0.08) !important;
        padding: 30px 0 !important;
        display: block !important;
        opacity: 0 !important;
        visibility: hidden !important;
        transform: translateY(6px) !important;
        transition: opacity 0.12s cubic-bezier(0.16, 1, 0.3, 1), transform 0.12s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.12s cubic-bezier(0.16, 1, 0.3, 1) !important;
        transition-delay: 0s !important;
        max-height: calc(100vh - 60px) !important;
        overflow-y: auto !important;
    }

    html:not(.js-enabled) .main-nav .nav-item.dropdown:hover .dropdown-menu.mega-menu,
    .main-nav .nav-item.dropdown.show-dropdown .dropdown-menu.mega-menu {
        opacity: 1 !important;
        visibility: visible !important;
        transform: translateY(0) !important;
        transition-delay: 0s !important;
    }

    .main-nav .dropdown-menu.mega-menu::before {
        content: "";
        position: absolute;
        top: -45px;
        left: 0;
        right: 0;
        height: 55px;
        background: transparent;
        z-index: 100;
        pointer-events: auto;
    }
}

.mega-menu-title {
    color: var(--color-primary-link) !important;
    font-size: 0.95rem;
    font-weight: 700;
    border-bottom: 1px solid var(--color-border);
    padding-bottom: 8px;
    margin-bottom: 15px;
}

.mega-menu-list {
    padding-left: 0;
    list-style: none;
    margin-bottom: 2rem !important;
}

    .mega-menu-list li {
        margin-bottom: 6px;
    }

        .mega-menu-list li.menu-sub-header {
            font-size: 0.8rem;
            font-weight: 700;
            color: var(--color-text-muted);
            text-transform: uppercase;
            letter-spacing: 0.5px;
            margin-top: 10px;
            margin-bottom: 4px;
        }

            .mega-menu-list li.menu-sub-header:first-child {
                margin-top: 0;
            }

        .mega-menu-list li a {
            color: var(--color-text-dark);
            font-size: 0.9rem;
            font-weight: 500;
            text-decoration: none;
            transition: color 0.15s ease-in-out;
            display: inline-block;
        }

            .mega-menu-list li a:hover {
                color: var(--color-primary-link);
                text-decoration: underline;
            }



@media (max-width: 991.98px) {
    .main-nav .dropdown-menu.mega-menu {
        border: none !important;
        box-shadow: none !important;
        padding: 15px 0 !important;
    }

    .mega-menu-title {
        margin-top: 15px;
    }
}

/* Wash Baskets options section override (no bottom border) */
#wash-baskets-options {
    border-bottom: none !important;
}

/* Holddowns page custom overrides (left aligned text, headings and images) */
.page-holddowns {
    /* Constraint to exactly match the image width */
    .holddown-item {
        max-width: 220px;
        margin: 0;
    }
    /* Wave Solder & SMT Section Titles */
    #wave-solder-holddowns .product-title,
    #smt-holddowns .product-title {
        color: #0066cc !important;
    }
    /* Left-aligned product images */
    .product-image-container {
        margin: 0 0 15px 0 !important;
    }
    /* Left-aligned black component titles (h3) */
    .row.g-4 h3:not(.footer-col-title) {
        font-size: 1.15rem !important;
        font-weight: var(--fw-bold) !important;
        color: #000000 !important;
        margin-bottom: 4px !important;
        text-align: left !important;
    }
    /* Left-aligned black component subtitles (h4) */
    .holddown-subtitle {
        font-size: 0.95rem !important;
        font-weight: var(--fw-semibold) !important;
        color: #000000 !important;
        margin-bottom: 8px !important;
        text-align: left !important;
        text-transform: none !important;
    }
    /* Left-aligned black caption text (p) */
    .product-caption-text {
        text-align: left !important;
        color: #000000 !important;
        margin-top: 0 !important;
    }
}

/* ========================================================================= */
/* Required Data Subpage Styling (.page-required-data)                       */
/* ========================================================================= --> */
.page-required-data {
    /* Intro image: override 220px cap with a balanced size */
    .product-image-container {
        max-width: 420px !important;
        width: 100% !important;
        margin: 0 auto !important;
    }

        .product-image-container img {
            height: auto !important;
            max-height: none !important;
            width: 100% !important;
        }

        .product-image-container .carousel,
        .product-image-container .carousel-inner,
        .product-image-container .carousel-item {
            height: auto !important;
        }
    /* Dark Blue Banner (CAD Engineering Team) */
    .cad-banner-box {
        background-color: #0b1f33 !important;
        color: #ffffff !important;
        border-radius: 8px !important;
        padding: 24px 35px !important;
        display: flex !important;
        align-items: center !important;
        gap: 24px !important;
        margin-top: 35px !important;
        margin-bottom: 25px !important;
    }

    .cad-banner-icon {
        flex-shrink: 0 !important;
        display: inline-flex !important;
        align-items: center !important;
        padding-right: 24px !important;
        margin-right: 4px !important;
        border-right: 2px solid rgba(255, 255, 255, 0.3) !important;
    }

        .cad-banner-icon img {
            display: block !important;
            width: 150px !important;
            height: auto !important;
        }

    .cad-banner-text {
        font-size: 0.95rem !important;
        line-height: 1.6 !important;
        margin: 0 !important;
        font-weight: var(--fw-medium) !important;
        text-align: left !important;
    }
    /* Two Columns Layout titles with icons */
    .section-subtitle-with-icon {
        display: flex !important;
        align-items: center !important;
        gap: 12px !important;
        font-size: 1.3rem !important;
        font-weight: var(--fw-bold) !important;
        color: var(--color-primary) !important;
        margin-bottom: 20px !important;
        text-transform: uppercase !important;
        padding-bottom: 10px !important;
    }

        .section-subtitle-with-icon i,
        .section-subtitle-with-icon .icon-circle {
            font-size: 1.6rem !important;
            color: #ffffff !important;
            background-color: var(--color-primary) !important;
            width: 48px !important;
            height: 48px !important;
            display: inline-flex !important;
            align-items: center !important;
            justify-content: center !important;
            border-radius: 50% !important;
            flex-shrink: 0 !important;
        }

            .section-subtitle-with-icon .icon-circle img {
                filter: brightness(0) invert(1);
                display: block;
            }

    .section-desc-text {
        font-size: 0.95rem;
        line-height: 1.6;
        margin-bottom: 20px;
        text-align: left;
    }
    /* Supported formats list styled with orange slashes */
    .formats-list {
        list-style: none !important;
        padding-left: 0 !important;
        margin: 0 !important;
        text-align: left !important;
    }

        .formats-list li {
            font-size: 0.95rem !important;
            font-weight: var(--fw-semibold) !important;
            color: #000000 !important;
            margin-bottom: 12px !important;
            display: flex !important;
            align-items: center !important;
            gap: 10px !important;
        }

    .slash-bullet {
        color: red !important;
        /* StenTech orange bullet */
        font-weight: var(--fw-bold) !important;
        font-size: 1.2rem !important;
        transform: rotate(35deg);
    }
    /* General Data Files list with red squares */
    .required-files-list {
        display: flex !important;
        flex-direction: column !important;
        gap: 15px !important;
    }

    .required-file-item {
        display: flex !important;
        align-items: center !important;
        gap: 15px !important;
        border-bottom: 1px solid #e5e7eb !important;
    }

        .required-file-item:last-child {
            border-bottom: none !important;
        }

    .red-icon-box {
        background-color: transparent !important;
        width: 42px !important;
        height: 42px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        flex-shrink: 0 !important;
    }

        .red-icon-box img {
            width: 42px !important;
            height: 42px !important;
            object-fit: contain !important;
            display: block !important;
            border: none !important;
        }

    .required-file-name {
        font-size: 0.95rem !important;
        font-weight: var(--fw-semibold) !important;
        color: #000000 !important;
        text-align: left !important;
    }
    /* Other Requirements card block */
    .other-reqs-card {
        margin-top: 20px !important;
        margin-bottom: 30px !important;
        text-align: left !important;
    }

        .other-reqs-card .section-subtitle-with-icon {
            border-bottom: none !important;
            padding-bottom: 0 !important;
            margin-bottom: 25px !important;
        }

    .other-reqs-list {
        list-style: none !important;
        padding-left: 0 !important;
        margin: 0 !important;
    }

        .other-reqs-list li {
            font-size: 0.95rem !important;
            font-weight: var(--fw-semibold) !important;
            color: #000000 !important;
            margin-bottom: 18px !important;
            display: flex !important;
            align-items: start !important;
            gap: 12px !important;
            line-height: 1.6 !important;
        }

            .other-reqs-list li:last-child {
                margin-bottom: 0 !important;
            }

    .check-bullet {
        color: #e02020 !important;
        /* red bullet */
        font-size: 1.25rem !important;
        line-height: 1 !important;
        flex-shrink: 0 !important;
        margin-top: 1px !important;
    }
    /* Value Proposition Banner section */
    .val-prop-section {
        background-color: #0b1f33 !important;
        color: #ffffff !important;
        padding: 45px 0 !important;
    }

    .val-prop-item {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        text-align: center !important;
        padding: 10px !important;
    }

    .col:not(:last-child) .val-prop-item {
        border-right: 1px solid rgba(255, 255, 255, 0.2) !important;
    }

    .val-prop-icon {
        width: 80px !important;
        height: 80px !important;
        color: #ffffff !important;
        margin-bottom: 12px !important;
    }

    .val-prop-text {
        font-size: 0.82rem !important;
        font-weight: var(--fw-medium) !important;
        line-height: 1.4 !important;
        text-transform: none !important;
        letter-spacing: 0 !important;
        color: #ffffff !important;
    }
}

@media (max-width: 991px) {
    .page-required-data .cad-banner-box {
        flex-direction: column !important;
        text-align: center !important;
        padding: 20px !important;
        gap: 15px !important;
    }

    .page-required-data .cad-banner-icon {
        border-right: none !important;
        padding-right: 0 !important;
        margin-right: 0 !important;
    }

    .page-required-data .cad-banner-text {
        text-align: center !important;
    }

    .page-required-data .col:not(:last-child) .val-prop-item {
        border-right: none !important;
    }

    .page-required-data .val-prop-item {
        margin-bottom: 30px !important;
        border-right: none !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.2) !important;
        padding-bottom: 30px !important;
    }

    .page-required-data .col:last-child .val-prop-item {
        margin-bottom: 0 !important;
        border-bottom: none !important;
        padding-bottom: 0 !important;
    }
}

/* Responsive column divider between Formats and General Files */
.data-col-left {
    border-right: 1px solid #cccccc !important;
}

@media (max-width: 767.98px) {
    .data-col-left {
        border-right: none !important;
        border-bottom: 1px solid #cccccc !important;
    }
}




/* Production Fixtures Page Styles */
.page-production-fixtures h2.product-title {
    color: #000000 !important;
}

/* Coatings Page Styles */
.page-parts-coatings .product-title {
    color: #000000 !important;
}

/* CNC Machining Materials & Parts Materials & Coatings Page Styles */
.page-machining-materials .tooling-product-section,
.page-parts-materials .tooling-product-section,
.page-parts-coatings .tooling-product-section,
.page-company .tooling-product-section {
    padding: 60px 0;
}

#intro-machining-landing {
    padding: 60px 0;
}

.page-machining-materials .card,
.page-parts-materials .card,
.page-parts-coatings .card,
.page-company .card {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

    .page-machining-materials .card:hover,
    .page-parts-materials .card:hover,
    .page-parts-coatings .card:hover,
    .page-company .card:hover {
        transform: translateY(-5px);
        box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08) !important;
    }

/* Parts Materials Page - Our Material Line-up List Items Spacing */
#material-lineup-processes ul li {
    margin-bottom: 8px;
}

    #material-lineup-processes ul li:last-child {
        margin-bottom: 0;
    }

/* Parts Materials Page - Video Thumbnail Container Layout */
#photo-etching-benefits .product-image-container {
    aspect-ratio: 16 / 9 !important;
    overflow: hidden !important;
    border-radius: var(--radius-md) !important;
}

    #photo-etching-benefits .product-image-container picture {
        display: block !important;
        width: 100% !important;
        height: 100% !important;
        border-radius: var(--radius-md) !important;
        overflow: hidden !important;
    }

    #photo-etching-benefits .product-image-container img {
        aspect-ratio: 16 / 9 !important;
        height: 100% !important;
        width: 100% !important;
        object-fit: cover !important;
        border-radius: var(--radius-md) !important;
    }

/* Modal Body Text Styles (matching .tooling-product-section .product-desc) */
.modal-body .product-desc {
    font-size: 14px;
    line-height: 1.7;
    color: var(--color-text-dark);
    font-weight: var(--fw-medium);
    margin-bottom: 20px;
}

/* Company Page Styles */
.page-company #success-company .product-title {
    color: #000000 !important;
}

.company-quick-link {
    color: var(--color-primary-link) !important;
    font-weight: var(--fw-semibold);
    transition: color 0.2s ease;
}

    .company-quick-link:hover {
        color: var(--color-accent-orange) !important;
    }

/* Video Play Overlay */
.video-play-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.15);
    transition: background-color 0.3s ease;
}

.video-thumb-link:hover .video-play-overlay {
    background-color: rgba(0, 0, 0, 0.3);
}

.video-play-btn {
    width: 68px;
    height: 68px;
    background: rgba(255, 255, 255, 0.45);
    border: 3px solid rgba(0, 0, 0, 0.6);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.3s ease, background-color 0.3s ease;
}

    .video-play-btn i {
        color: rgba(0, 0, 0, 0.7);
        font-size: 2.2rem;
        margin-left: 4px;
    }

.video-thumb-link:hover .video-play-btn {
    transform: scale(1.1);
    background-color: rgba(255, 255, 255, 0.4);
}

/* Resources Page */
.page-resources {
    section {
        padding: var(--spacing-section) 0;
    }
}

/* Company Page - Our Team Section Styles */
.page-company .team-section .team {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    position: relative;
}

.page-company .team-section .personbg {
    width: 160px;
    height: 158px;
    background-color: #ffffff;
    border: 8px solid #ffffff;
    border-radius: var(--radius-md);
    padding: 0;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    transition: var(--transition-base);
    display: flex;
    align-items: center;
    justify-content: center;
    align-self: flex-start;
    overflow: hidden;
}

    .page-company .team-section .personbg:hover {
        box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
    }

    .page-company .team-section .personbg img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        border-radius: calc(var(--radius-md) - 8px);
    }

.page-company .team-section .person-name-wrapper {
    position: relative;
    padding-left: 0 !important;
}

    .page-company .team-section .person-name-wrapper::before {
        display: block;
        position: absolute;
        top: 3px;
        left: -12px;
        width: 3px;
        height: 18px;
        background-color: #0066cc;
        content: "";
    }

.page-company .team-section .person-name {
    color: #000000 !important;
    font-weight: 700;
    font-size: 16px;
    line-height: 1.25;
}

.page-company .team-section .desig {
    color: #000000 !important;
    font-weight: 700;
    font-size: 13px;
    line-height: 1.3;
}

.page-company .team-section .personpara {
    font-size: 13px !important;
    font-weight: 400;
    line-height: 18px !important;
    color: #000000 !important;
}

.page-company .team-section a.readmore {
    font-size: 11px;
    color: #0066cc;
    margin-bottom: 10px;
    display: inline-block;
    cursor: pointer;
    text-decoration: none;
}

    .page-company .team-section a.readmore:hover {
        text-decoration: underline !important;
    }

.page-company .team-section a.email {
    font-size: 11px;
    font-weight: 600;
    color: #0066cc;
    transition: color 0.2s ease;
    word-break: break-all;
    overflow-wrap: break-word;
    white-space: normal;
}

    .page-company .team-section a.email:hover {
        color: var(--color-accent-orange);
    }
/* Company Page Optimizations - Removed Inline Styles */
.page-company #intro-company .company-hero-title {
    color: #001a3f !important;
}

.page-company #success-company {
    border-top: 1px solid #e2e8f0;
    border-bottom: 1px solid #e2e8f0;
}

.page-company .company-quick-links-title {
    font-size: 1.1rem;
    font-weight: var(--fw-bold);
    color: #000000;
}

.page-company .company-quick-links-list {
    line-height: 2.0;
    font-weight: var(--fw-medium);
}

.page-company .team-section {
    border-bottom: 1px solid #e2e8f0;
}

    .page-company .team-section .company-team-title {
        color: var(--color-primary-link) !important;
        font-weight: var(--fw-bold);
        font-size: 1.5rem !important;
        text-align: left;
    }

/* Our Team Modal Custom Rules */
#teamModal .modal-content {
    border-radius: 16px;
    border: none;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
    overflow: hidden;
    background-color: #ffffff;
}

#teamModal .modal-header {
    background-color: #ffffff;
    border-bottom: 1px solid #e2e8f0;
    padding: 1.5rem 1.5rem 1rem 1.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

#teamModal .modal-title {
    color: #0f172a;
    margin: 0;
    line-height: 1.2;
}

#teamModal .btn-close {
    margin: 0;
    padding: 0.5rem;
    box-shadow: none;
}

#teamModal .modal-body {
    background-color: #ffffff;
    font-size: 13px;
    line-height: 1.7;
}

#teamModal .modal-bio-img {
    width: 170px;
    height: 168px;
    object-fit: cover;
    border-radius: var(--radius-md);
    border: 6px solid #ffffff;
    outline: 1px solid #e2e8f0;
}

#teamModal .modal-bio-name {
    font-size: 1.6rem;
    line-height: 1.2;
}

#teamModal .modal-bio-desig {
    font-size: 1.05rem;
}

/* Certifications & Memberships Section Styles */
.certifications-section {
    padding: 80px 0;
    background-color: #f8fafc;
    border-bottom: 1px solid #e2e8f0;
}

.certifications-title {
    color: black !important;
    font-size: 1.5rem !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 0;
}

.certifications-logo-wrapper {
    margin-bottom: 1.25rem;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.certifications-logo {
    max-height: 100px;
    width: auto;
    object-fit: contain;
}

.certifications-heading {
    font-weight: 700;
    color: #000000 !important;
    font-size: 14px;
    margin-bottom: 0.5rem;
    line-height: 1.3;
}

.certifications-text {
    font-size: 13px;
    line-height: 1.6;
}

.certifications-divider {
    border-top: 1px solid #c8d2df;
    opacity: 1;
    margin: 1.5rem 0;
}

/* Locations Section Styles */
.locations-section {
    padding: 80px 0;
    border-top: 1px solid #e2e8f0;
    background-color: #ffffff;
}

.locations-title {
    color: #000000 !important;
    font-size: 2.2rem;
    font-weight: 700;
    margin-bottom: 0;
}

/* Location page intro address block */
/* .location-address-block {
  background: #f8fafc;
} */

.map-scroll-wrapper {
    max-width: 100%;
    background-color: #ffffff;
    border-radius: var(--radius-md);
    display: flex;
    justify-content: center;
    overflow: visible; /* No scroll on desktop/mobile - map scales down */
    position: relative;
}

#image-map {
    background: url(../images/us-map.webp) center center no-repeat;
    background-size: contain;
    width: 100%;
    max-width: 725px;
    aspect-ratio: 725 / 720;
    height: auto;
    position: relative;
    margin: 0 auto;
}

    /* #image-map .hotspot {
  background-color: var(--color-accent-orange);
  cursor: pointer;
  height: 18px;
  width: 18px;
  border-radius: 50%;
  border: 2.5px solid #ffffff;
  position: absolute;
  box-shadow: 0 0 0 0 rgba(255, 108, 55, 0.7);
  animation: pulse-marker 2s infinite;
  z-index: 10;
  margin-left: -9px;
  margin-top: -5px;
  margin-right: 10px;
} */


    #image-map .hotspot {
        background-color: white;
        border: 7px solid var(--color-accent-orange);
        cursor: pointer;
        height: 18px;
        width: 18px;
        border-radius: 50%;
        position: absolute;
        box-shadow: 0 0 0 0 rgba(255, 108, 55, 0.7);
        animation: pulse-marker 2s infinite;
        z-index: 10;
        margin-left: -9px;
        margin-top: -5px;
        margin-right: 10px;
    }


@keyframes pulse-marker {
    0% {
        box-shadow: 0 0 0 0 rgba(255, 108, 55, 0.7);
    }

    70% {
        box-shadow: 0 0 0 10px rgba(255, 108, 55, 0);
    }

    100% {
        box-shadow: 0 0 0 0 rgba(255, 108, 55, 0);
    }
}

#image-map .hotspot.active {
    overflow: visible;
    z-index: 99;
}

#image-map .hotspot .spot {
    background-color: transparent;
    display: block;
    padding-left: 20px;
    margin-top: 0;
    width: 260px;
    position: relative;
    z-index: 9;
}

#image-map .hotspot .spot-wrapper {
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
    color: #1e293b !important;
    font-size: 13px;
    border: 1px solid #e2e8f0;
    background-color: #ffffff;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);
    border-radius: 8px;
    position: absolute;
    top: 25px;
    left: 50%;
    transform: translateX(-50%) translateY(10px);
    width: 250px;
    z-index: 999;
    overflow: hidden;
}

    #image-map .hotspot .spot-wrapper::before {
        content: "";
        position: absolute;
        top: -30px;
        left: 0;
        width: 100%;
        height: 35px;
        background-color: transparent;
        z-index: -1;
    }

/* Left-aligned tooltips bridge (extends left to cover the dot) */
#image-map #spot-1 .spot-wrapper::before,
#image-map #spot-2 .spot-wrapper::before,
#image-map #spot-3 .spot-wrapper::before,
#image-map #spot-6 .spot-wrapper::before,
#image-map #spot-9 .spot-wrapper::before,
#image-map #spot-18 .spot-wrapper::before,
#image-map #spot-19 .spot-wrapper::before {
    left: -30px;
    width: calc(100% + 30px);
}

/* Right-aligned tooltips bridge (extends right to cover the dot) */
#image-map #spot-12 .spot-wrapper::before,
#image-map #spot-13 .spot-wrapper::before,
#image-map #spot-14 .spot-wrapper::before,
#image-map #spot-20 .spot-wrapper::before,
#image-map #spot-21 .spot-wrapper::before,
#image-map #spot-22 .spot-wrapper::before,
#image-map #spot-23 .spot-wrapper::before {
    width: calc(100% + 30px);
    right: -30px;
    left: auto;
}

#image-map .hotspot.active .spot-wrapper {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
}

/* Tooltip alignment overrides to prevent screen clipping */
/* Left side hotspots -> tooltip opens to the right */
#image-map #spot-1 .spot-wrapper,
#image-map #spot-2 .spot-wrapper,
#image-map #spot-3 .spot-wrapper,
#image-map #spot-6 .spot-wrapper,
#image-map #spot-9 .spot-wrapper,
#image-map #spot-18 .spot-wrapper,
#image-map #spot-19 .spot-wrapper {
    left: 10px;
    transform: translateY(10px);
}

#image-map #spot-1.active .spot-wrapper,
#image-map #spot-2.active .spot-wrapper,
#image-map #spot-3.active .spot-wrapper,
#image-map #spot-6.active .spot-wrapper,
#image-map #spot-9.active .spot-wrapper,
#image-map #spot-18.active .spot-wrapper,
#image-map #spot-19.active .spot-wrapper {
    transform: translateY(0);
}

/* Right side hotspots -> tooltip opens to the left */
#image-map #spot-12 .spot-wrapper,
#image-map #spot-13 .spot-wrapper,
#image-map #spot-14 .spot-wrapper,
#image-map #spot-20 .spot-wrapper,
#image-map #spot-21 .spot-wrapper,
#image-map #spot-22 .spot-wrapper,
#image-map #spot-23 .spot-wrapper {
    left: auto;
    right: 10px;
    transform: translateY(10px);
}

#image-map #spot-12.active .spot-wrapper,
#image-map #spot-13.active .spot-wrapper,
#image-map #spot-14.active .spot-wrapper,
#image-map #spot-20.active .spot-wrapper,
#image-map #spot-21.active .spot-wrapper,
#image-map #spot-22.active .spot-wrapper,
#image-map #spot-23.active .spot-wrapper {
    transform: translateY(0);
}

.spot-details {
    padding: 16px;
    text-align: left;
}

    .spot-details h4 {
        color: #0f172a;
        font-weight: 700;
        font-size: 14px;
        margin-bottom: 8px;
        line-height: 1.2;
    }

    .spot-details h5 {
        color: #0f172a !important;
        font-weight: 700;
        font-size: 12px;
        margin: 10px 0 4px 0;
        line-height: 1.2;
    }

    .spot-details a:not(.directions-link) {
        color: var(--color-primary-link) !important;
        text-decoration: none;
        font-weight: 500;
        display: block;
        margin-bottom: 4px;
        font-size: 12px;
    }

        .spot-details a:not(.directions-link):hover {
            color: var(--color-accent-orange) !important;
            text-decoration: underline;
        }

    .spot-details p {
        font-size: 12px;
        line-height: 1.5;
        color: #475569;
        margin: 8px 0 0;
        border-top: 1px solid #f1f5f9;
        padding-top: 8px;
    }

    .spot-details .directions-link {
        color: var(--color-accent-orange) !important;
        font-size: 11px !important;
        font-weight: 700 !important;
        text-transform: uppercase;
        letter-spacing: 0.5px;
        margin-top: 10px !important;
        display: inline-flex !important;
        align-items: center;
        gap: 4px;
        text-decoration: none !important;
        transition: color 0.2s ease;
    }

        .spot-details .directions-link:hover {
            color: #e0531f !important;
            text-decoration: underline !important;
        }

        .spot-details .directions-link i {
            font-size: 12px;
        }

.hotspot .quoteNowBtn {
    background: var(--color-accent-orange);
    border-top: 1px solid #f1f5f9;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px 16px;
    color: var(--color-text-white);
    font-weight: 700;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    text-decoration: none;
    transition: all 0.2s ease;
}

    .hotspot .quoteNowBtn:hover {
        background: var(--color-accent-orange);
    }

/* Pulsing Hotspots Coordinates - Converted to Percentages for Perfect Responsive Scaling */
#image-map #spot-1 {
    left: 11.72%;
    --left: 11.72%;
    top: 0.00%;
}

#image-map #spot-2 {
    left: 6.62%;
    --left: 6.62%;
    top: 9.86%;
}

#image-map #spot-3 {
    left: 31.03%;
    --left: 31.03%;
    top: 27.78%;
}

#image-map #spot-4 {
    left: 45.52%;
    --left: 45.52%;
    top: 42.64%;
}

#image-map #spot-5 {
    left: 43.45%;
    --left: 43.45%;
    top: 48.61%;
}

#image-map #spot-6 {
    left: 26.90%;
    --left: 26.90%;
    top: 46.53%;
}

#image-map #spot-8 {
    left: 43.59%;
    --left: 43.59%;
    top: 59.58%;
}

#image-map #spot-9 {
    left: 31.72%;
    --left: 31.72%;
    top: 68.75%;
}

#image-map #spot-10 {
    left: 38.34%;
    --left: 38.34%;
    top: 69.44%;
}

#image-map #spot-12 {
    left: 79.31%;
    --left: 79.31%;
    top: 13.19%;
}

#image-map #spot-13 {
    left: 76.97%;
    --left: 76.97%;
    top: 14.72%;
}

#image-map #spot-14 {
    left: 88.97%;
    --left: 88.97%;
    top: 13.89%;
}

#image-map #spot-15 {
    left: 61.76%;
    --left: 61.76%;
    top: 23.22%;
}

#image-map #spot-18 {
    left: 4.41%;
    --left: 4.41%;
    top: 29.17%;
}

#image-map #spot-19 {
    left: 4.41%;
    --left: 4.41%;
    top: 27.08%;
}

#image-map #spot-20 {
    left: 88.41%;
    --left: 88.41%;
    top: 12.08%;
}

#image-map #spot-21 {
    left: 86.21%;
    --left: 86.21%;
    top: 22.22%;
}

#image-map #spot-22 {
    left: 72.41%;
    --left: 72.41%;
    top: 40.28%;
}

#image-map #spot-23 {
    left: 79.14%;
    --left: 79.14%;
    top: 50.83%;
}

.office-name {
    color: #000000 !important;
    font-weight: 700;
    font-size: 16px;
}

.office-address {
    font-size: 14px;
    line-height: 1.6;
    color: #333333 !important;
}

.office-contact {
    font-size: 14px;
    color: #333333 !important;
}

.office-link {
    color: var(--color-primary-link);
    font-weight: 600;
    text-decoration: none;
    transition: color 0.2s ease;
}

    .office-link:hover {
        color: var(--color-accent-orange);
        text-decoration: underline;
    }

@media (max-width: 576px) {
    #image-map .hotspot .spot-wrapper {
        position: absolute !important;
        width: 260px !important;
        left: calc(50% - 130px - var(--left)) !important;
        right: auto !important;
        top: 25px !important;
        transform: translateY(10px) !important;
    }

    #image-map .hotspot:hover .spot-wrapper,
    #image-map .hotspot.active .spot-wrapper {
        transform: translateY(0) !important;
    }
}

/* Mobile Navigation Scroll Lock & Scrollability */
body.nav-open {
    height: 100vh;
    overflow: hidden;
}

@media (max-width: 991.98px) {
    .main-nav .navbar-collapse {
        max-height: calc(100vh - 85px); /* Leaves safety buffer for the sticky brand header */
        overflow-y: auto;
        -webkit-overflow-scrolling: touch; /* Momentum scrolling on iOS Safari */
    }
}

/* Hide all sticky breadcrumbs and floating buttons when mobile menu is open */
body.nav-open .breadcrumbs-bar-dark,
body.nav-open .breadcrumbs-bar,
body.nav-open .breadcrumbs-bar--scrolled,
body.nav-open .scroll-to-top {
    display: none !important;
}

/* Fix sticky positioning context failure when body scroll is locked */
body.nav-open .main-nav {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 1050 !important;
}

/* StenTech Brands Logo Responsive (Location Page) */
.stentech-brands-logo {
    max-width: 300px;
}

@media (max-width: 991.98px) {
    .stentech-brands-logo {
        max-width: 180px;
    }
}

/* Custom Outline Orange Button */
.btn-outline-orange-custom {
    font-size: 0.8rem;
    border: 1.5px solid var(--color-accent-orange) !important;
    color: var(--color-accent-orange) !important;
    background-color: transparent !important;
    transition: all 0.3s ease;
}

    .btn-outline-orange-custom:hover,
    .btn-outline-orange-custom:focus {
        background-color: var(--color-accent-orange) !important;
        color: #ffffff !important;
    }
/* ==========================================================================
   Locations Modal Styles
   ========================================================================== */

.custom-modal-content {
    border-radius: 16px;
    border: none;
    box-shadow: 0 20px 40px rgba(0,0,0,0.15);
    overflow: hidden;
    background-color: var(--color-bg-card);
}

.custom-modal-header {
    background-color: var(--color-bg-card);
    border-bottom: 1px solid var(--color-border);
    padding: 1.5rem 1.5rem 1rem 1.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.modal-search-wrapper {
    background-color: var(--color-bg-light);
    position: sticky;
    top: 0;
    z-index: 10;
}

.modal-search-icon {
    top: 50%;
    transform: translateY(-50%);
    left: 1.25rem;
    line-height: 1;
    pointer-events: none;
}

.modal-search-input {
    border-color: var(--color-border);
    font-size: 0.95rem;
    padding: 0.75rem 1rem 0.75rem 3rem;
    line-height: 1.5;
}

.location-list-item {
    border-color: var(--color-border-light) !important;
}

.location-item-title {
    color: var(--color-primary);
    font-size: 1.1rem;
}

.location-item-details {
    font-size: 0.9rem;
    color: var(--color-text-muted);
}

.location-item-icon {
    color: var(--color-accent-orange);
}

.btn-location-quote {
    padding: 0.4rem 1rem;
    border: 1px solid transparent;
}

.btn-location-directions {
    padding: 0.4rem 1rem;
    color: var(--color-accent-orange);
    border: 1px solid var(--color-accent-orange);
}

    .btn-location-directions:hover {
        background-color: var(--color-accent-orange);
        color: #fff;
    }

.location-map-preview {
    width: 280px;
    height: 160px;
    flex-shrink: 0;
}

/* ==========================================================================
   Terms and Conditions Page Styles
   ========================================================================== */
.page-terms-and-conditions {
    color: #000000;
}

.terms-breadcrumb-ol {
    font-size: 0.8rem;
    font-weight: var(--fw-semibold);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.terms-stentech-logo {
    height: 24px;
    object-fit: contain;
}

.terms-card {
    color: #000000;
}

.terms-title {
    color: #000000;
}

.terms-notice-text {
    color: #000000;
    font-size: 1rem;
}

.terms-paragraph {
    color: #000000;
    line-height: 1.7;
}

.terms-divider {
    border-color: #000000;
    opacity: 0.2;
}

.terms-section-heading {
    color: #000000;
}

.terms-sidebar-toc {
    position: sticky;
    top: 125px;
    max-height: calc(90vh - 125px);
    overflow-y: auto;
}

@media (max-width: 991.98px) {
    .terms-sidebar-toc {
        position: static;
        max-height: none;
        margin-top: 0 !important;
    }
    .row > .order-1 {
        margin-top: 0 !important;
    }
}

.sidebar-links .toc-link {
    transition: color 0.15s ease;
}

.sidebar-links .toc-link.active {
    color: var(--color-accent-orange) !important;
    font-weight: var(--fw-semibold);
    text-decoration: underline;
}

/* ==========================================================================
   News & Updates Page Styles
   ========================================================================== */
.page-news-and-updates {
    color: #000000;
}

.news-breadcrumb-ol {
    font-size: 0.8rem;
    font-weight: var(--fw-semibold);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.news-stentech-logo {
    height: 24px;
    object-fit: contain;
}

.news-header-section {
    padding: 2rem 0 1rem 0;
    border-bottom: 1px solid var(--color-border-light);
}

.news-header-title {
    color: #000000;
    font-size: 2.5rem;
    font-weight: var(--fw-bold);
    margin: 0;
}

.news-list-container {
    background-color: #ffffff;
    border-radius: var(--radius-btn);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
    padding: 2.5rem;
}

.news-article-item {
    padding-bottom: 2rem;
    margin-bottom: 2rem;
    border-bottom: 1px solid var(--color-border-light);
}

.news-article-item:last-child {
    padding-bottom: 0;
    margin-bottom: 0;
    border-bottom: none;
}

.news-article-title {
    color: #000000;
    font-size: 1.35rem;
    font-weight: var(--fw-bold);
    margin-bottom: 0.5rem;
    line-height: 1.3;
}

.news-article-date {
    color: #003399;
    font-weight: 400;
    font-size: 0.95rem;
    margin-bottom: 1rem;
}

.news-article-desc {
    color: #000000;
    font-size: 1rem;
    line-height: 1.6;
    margin-bottom: 1rem;
}

.news-more-link {
    color: #003399;
    font-weight: var(--fw-semibold);
    text-decoration: none;
    background: transparent;
    border: none;
    padding: 0;
    display: inline-flex;
    align-items: center;
    cursor: pointer;
}

.news-more-link:hover {
    color: var(--color-accent-orange);
    text-decoration: underline;
}

.news-article-image-col {
    display: flex;
    align-items: center;
    justify-content: center;
}

.news-article-img {
    max-width: 100%;
    max-height: 220px;
    object-fit: cover;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.news-sidebar-filter,
.news-sidebar-more-updates {
    position: sticky;
    top: 125px;
}

.news-sidebar-more-updates {
    max-height: calc(90vh - 125px);
    overflow-y: auto;
}

.news-sidebar-more-updates .more-update-item a:hover {
    text-decoration: underline !important;
}

.sidebar-links .news-filter-link.active {
    color: var(--color-accent-orange) !important;
    font-weight: var(--fw-bold);
    text-decoration: underline;
}

.news-modal-title {
    color: #000000;
    font-weight: var(--fw-bold);
}

.news-modal-date {
    color: #003399;
    font-weight: 400;
}

.news-modal-body-text {
    color: #000000;
    line-height: 1.7;
}

.article-title-link {
    color: #000000;
    text-decoration: none;
    transition: text-decoration 0.2s ease, color 0.2s ease;
}

.article-title-link:hover {
    color: #000000;
    text-decoration: underline;
    cursor: pointer;
}

/* News Article Detail & Markdown Styling */
.news-detail-card {
    background-color: #ffffff;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 8px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
}

.news-detail-title {
    color: #000000;
    font-size: 1.75rem;
    font-weight: var(--fw-bold);
    line-height: 1.3;
}

.news-detail-date {
    color: #003399;
    font-weight: 400;
    font-size: 1rem;
}

.news-detail-main-img-float {
    float: right;
    width: 38%;
    max-width: 340px;
    min-width: 220px;
    height: auto;
    margin-left: 2.5rem;
    margin-bottom: 2rem;
    margin-top: 0.5rem;
    border-radius: 8px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}

@media (max-width: 767.98px) {
    .news-detail-main-img-float {
        float: none;
        width: 100%;
        max-width: 100%;
        margin-left: 0;
        margin-bottom: 1.25rem;
        display: block;
    }
}

.btn-back-news {
    color: #003399;
    border-color: #003399;
    font-weight: 600;
}

.btn-back-news:hover {
    background-color: #003399;
    color: #ffffff;
}

.news-article-markdown-body {
    color: #000000;
    font-size: 1.05rem;
    line-height: 1.75;
}

.news-article-markdown-body h1,
.news-article-markdown-body h2,
.news-article-markdown-body h3,
.news-article-markdown-body h4 {
    color: #000000;
    font-weight: var(--fw-bold);
    margin-top: 1.5rem;
    margin-bottom: 0.75rem;
}

.news-article-markdown-body p {
    color: #000000;
    margin-bottom: 1.25rem;
}

.news-article-markdown-body blockquote {
    border-left: 4px solid #003399;
    padding-left: 1rem;
    margin: 1.5rem 0;
    font-style: italic;
    background-color: #f8f9fa;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}

.news-article-markdown-body img {
    max-width: 100%;
    height: auto;
    border-radius: 6px;
    margin: 1.5rem;
}

/* ==========================================================================
   Custom Animated Alert Modal (Get a Quote Form)
   ========================================================================== */
.quote-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-color: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.quote-modal-overlay.show {
    opacity: 1;
    visibility: visible;
}

.quote-modal-card {
    position: relative;
    background: #ffffff;
    border-radius: 12px;
    border: 1px solid rgba(0, 0, 0, 0.1);
    width: 90%;
    max-width: 440px;
    padding: 50px 24px 50px 24px;
    text-align: center;
    box-shadow: none;
    transform: scale(0.85);
    transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.quote-modal-overlay.show .quote-modal-card {
    transform: scale(1);
}

.quote-modal-close {
    position: absolute;
    top: 12px;
    right: 18px;
    background: transparent;
    border: none;
    font-size: 28px;
    font-weight: 300;
    line-height: 1;
    color: #666666;
    cursor: pointer;
    padding: 4px 8px;
    border-radius: 50%;
    transition: color 0.2s ease, transform 0.2s ease;
}

.quote-modal-close:hover {
    color: #000000;
    transform: scale(1.15);
}

.quote-modal-title {
    font-size: 1.4rem;
    font-weight: 700;
    color: #1a1a1a;
    margin-top: 16px;
    margin-bottom: 8px;
    line-height: 1.3;
}

.quote-modal-text {
    font-size: 0.95rem;
    color: #4a4a4a;
    margin-bottom: 0;
    line-height: 1.5;
}

.quote-icon-container {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 8px;
}

/* Red Error Icon */
.icon-error .error-circle {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background-color: #d93025;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: none;
    animation: quotePopIn 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
}

.icon-error .error-symbol {
    color: #ffffff;
    font-size: 34px;
    font-weight: 700;
    font-family: system-ui, -apple-system, sans-serif;
    line-height: 1;
}

/* Green Success Icon */
.icon-success .success-circle {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background-color: #2e7d32;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: none;
    animation: quotePopIn 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
}

@keyframes quotePopIn {
    0% { transform: scale(0); opacity: 0; }
    80% { transform: scale(1.1); opacity: 1; }
    100% { transform: scale(1); opacity: 1; }
}

/* Custom Modular Alert Modal Okay Button */
.quote-modal-ok-btn {
    background-color: #000000 !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 50px !important;
    padding: 10px 36px !important;
    font-size: 0.95rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.5px !important;
    box-shadow: none !important;
    outline: none !important;
    transition: background-color 0.2s ease, transform 0.15s ease !important;
    min-width: 130px;
}

.quote-modal-ok-btn:hover,
.quote-modal-ok-btn:focus,
.quote-modal-ok-btn:active {
    background-color: #222222 !important;
    color: #ffffff !important;
    transform: translateY(-1px);
    box-shadow: none !important;
}

/* Compliance Logo Enlargement */
.first-compliance-logo {
    max-height: 125px !important;
    width: auto !important;
    transition: transform 0.2s ease;
}

.first-compliance-logo:hover {
    transform: scale(1.05);
}




