/* 
Theme Name:     Titan Child Theme
Theme URI:      https://www.splust.com
Description:    Bootstrap 5 child theme
Author:         Christy L
Author URI:     https://www.splust.com
Template:       bootstrap-starter-theme
Version:        1.0.0
*/

/*
    Add your custom styles here
*/

/* Custom Variables */

:root {
    /* Base Spacing Unit */
    --spacing-unit: 15px;

    /* Colors */
    --primary-color: #fe5209;
    --text-color: #212529;
    --grey-color: #505050;
}

html {
    scroll-behavior: smooth;
}

body {
    background-color: #000;
}

body,
p {
    font-family: "unitext", sans-serif;
    font-weight: 200;
    line-height: 1.7;
    color: #fff;
    font-size: 18px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: "unitext", sans-serif;
    font-weight: 700;
    line-height: 1.4;
    text-transform: uppercase;
    font-weight: 600;
}

h1 {
    font-size: 32px;
    margin-bottom: 30px;
}

h2 {
    font-size: 28px;
}

strong,
.strong,
b,
.b {
    font-weight: 600;
}

a {
    color: var(--primary-color);
    font-weight: 600;
}

a:hover {
    color: #fff;
}

.btn,
.gform_button {
    padding: 8px 45px 8px 0px;
    margin-bottom: 15px;
    border: none;
    outline: none !important;
    box-shadow: none !important;
    background: unset;
    color: var(--primary-color) !important;
    font-weight: 600;
    font-size: 18px;
    text-transform: uppercase;
    border-radius: 0px;
    background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 29.69 24.5"><path fill="%23fe5209" d="M3.36,0L0,2.8l9.03,9.29c.16.17.16.43,0,.59L0,21.71l3.36,2.8l11.99-12.12L3.36,0Z"/><path fill="%23fe5209" d="M17.7,0l-3.36,2.8,9.03,9.29c.16.17.16.43,0,.59l-9.03,9.03,3.36,2.8,11.99-12.12L17.7,0Z"/></svg>');
    background-repeat: no-repeat;
    background-position: right center;
    background-size: 32px;
    transition:
        background-image 0.25s ease-in-out,
        color 0.25s ease-in-out,
        background-color 0.25s ease-in-out,
        border-color 0.25s ease-in-out,
        box-shadow 0.25s ease-in-out,
        -webkit-box-shadow 0.25s ease-in-out;
}

.btn:hover,
.gform_button:hover,
.btn-reverse {
    color: #fff !important;
    background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 29.69 24.5"><path fill="%23fff" d="M3.36,0L0,2.8l9.03,9.29c.16.17.16.43,0,.59L0,21.71l3.36,2.8l11.99-12.12L3.36,0Z"/><path fill="%23fff" d="M17.7,0l-3.36,2.8,9.03,9.29c.16.17.16.43,0,.59l-9.03,9.03,3.36,2.8l11.99-12.12L17.7,0Z"/></svg>');
}

.btn-reverse:hover {
    color: var(--primary-color) !important;
    background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 29.69 24.5"><path fill="%23fe5209" d="M3.36,0L0,2.8l9.03,9.29c.16.17.16.43,0,.59L0,21.71l3.36,2.8l11.99-12.12L3.36,0Z"/><path fill="%23fe5209" d="M17.7,0l-3.36,2.8,9.03,9.29c.16.17.16.43,0,.59l-9.03,9.03,3.36,2.8,11.99-12.12L17.7,0Z"/></svg>');
}

.orange-background .btn-reverse:hover,
.btn-black:hover {
    color: #000 !important;
    background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 29.69 24.5"><path fill="%23000" d="M3.36,0L0,2.8l9.03,9.29c.16.17.16.43,0,.59L0,21.71l3.36,2.8l11.99-12.12L3.36,0Z"/><path fill="%23000" d="M17.7,0l-3.36,2.8,9.03,9.29c.16.17.16.43,0,.59l-9.03,9.03,3.36,2.8l11.99-12.12L17.7,0Z"/></svg>');
}

.section-padded {
    padding-top: 60px;
    padding-bottom: 60px;
}

.section-padded-lg {
    padding-top: 120px;
    padding-bottom: 120px;
}

.block-padding {
    padding: 60px;
}

.left-padding {
    padding-left: 60px;
}

.right-padding {
    padding-right: 60px;
}

.blue-background {
    background-color: var(--primary-color);
}

.grey-background {
    background-color: var(--grey-color);
}

.black-background {
    background-color: #000;
}

.transparent-black-background-background {
    background: #000000c2;
}

.white-background {
    background-color: #fff;
    color: #000;
}

.orange-background {
    background-color: var(--primary-color);
}

.transparent-primary-background {
    background-color: #fe5209d1;
}

.white-text,
.white-text h1,
.white-text h2,
.white-text h3,
.white-text h4,
.white-text h5,
.white-text h6,
.white-text p,
.white-text a,
.white-text li {
    color: #fff;
}

.black-text,
.black-text h1,
.black-text h2,
.black-text h3,
.black-text h4,
.black-text h5,
.black-text h6,
.black-text p,
.black-text a,
.black-text li {
    color: #000;
}

.black-text p,
.black-text a,
.black-text li {
    font-weight: 300;
}

.black-background a,
.white-background a {
    color: var(--primary-color);
}

.black-background a:hover {
    color: #fff;
}

.white-background a:hover {
    color: #000;
}

.white-background .gform_button:hover,
.white-background .btn:hover {
    color: #000 !important;
    background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 29.69 24.5"><path fill="%23000" d="M3.36,0L0,2.8l9.03,9.29c.16.17.16.43,0,.59L0,21.71l3.36,2.8l11.99-12.12L3.36,0Z"/><path fill="%23000" d="M17.7,0l-3.36,2.8,9.03,9.29c.16.17.16.43,0,.59l-9.03,9.03,3.36,2.8l11.99-12.12L17.7,0Z"/></svg>');
}

a.white-link {
    color: #fff;
}

a.white-link:hover {
    color: var(--primary-color);
}

.orange-text {
    color: var(--primary-color) !important;
}

[type="button"],
[type="reset"],
[type="submit"],
button {
    -webkit-appearance: none !important;
}

.anchor {
    position: absolute;
    left: 0px;
    top: -141px;
}

/* .anchor a {
    position: absolute;
    left: 0px;
    top: -240px;
} */

.anchor-initial a {
    top: -573px;
}

.bg-cover {
    background-size: cover;
    background-position: center center;
}

/**
 * ----------------------------------------
 * animation slide-in-fwd-center
 * ----------------------------------------
 */
@-webkit-keyframes slide-in-fwd-center {
    0% {
        -webkit-transform: translateZ(-1400px);
        transform: translateZ(-1400px);
        opacity: 0;
    }
    100% {
        -webkit-transform: translateZ(0);
        transform: translateZ(0);
        opacity: 1;
    }
}
@keyframes slide-in-fwd-center {
    0% {
        -webkit-transform: translateZ(-1400px);
        transform: translateZ(-1400px);
        opacity: 0;
    }
    100% {
        -webkit-transform: translateZ(0);
        transform: translateZ(0);
        opacity: 1;
    }
}

/*  Heading Styles  */

#main {
    margin-top: 0px;
}

#header {
    padding: 0px;
    background-color: transparent !important;
    z-index: 999;
    transition:
        background-color 0.5s ease-in-out,
        border-bottom 0.5s ease-in-out;
}

#header.active {
    background-color: #000 !important;
    border-bottom: 1px solid var(--grey-color);
}

.header-links {
    position: absolute;
    top: 0px;
    right: 15px;
    background-color: var(--primary-color);
}

.header-links a {
    text-transform: uppercase;
    color: #fff;
    background-color: var(--primary-color);
    padding: 8px 15px;
    font-size: 13px;
    display: inline-block;
}

.header-links a:hover {
    color: var(--primary-color);
    background-color: #fff;
}

.headernavswrap {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
}

.headerWrap {
    margin: 0;
}

.navbar-brand {
    padding: 20px 0px 20px;
}

.navbar-brand img {
    height: 100px;
}

#navbar {
    padding-top: 40px;
}

.navbar-nav .nav-link {
    color: #fff !important;
    text-transform: uppercase;
    font-weight: 600;
    font-size: 16px;
}

.navbar-nav .nav-link:hover {
    color: var(--primary-color) !important;
}

ul#menu-main-nav li {
    margin-bottom: unset;
    font-weight: 400;
}

ul#menu-main-nav ul {
    display: none;
    float: left;
    position: absolute;
    z-index: 99999;
    text-align: left;
    font-size: 14px;
    border-radius: 0px;
    list-style: none;
    margin: 0px;
    padding: 0;
    width: auto;
    min-width: 180px;
    background-color: #000;
}

ul#menu-main-nav ul li {
    padding: 0px;
    margin: 0px;
    white-space: nowrap;
}

ul#menu-main-nav ul li:last-of-type {
    border-bottom: none;
}

ul#menu-main-nav li:hover > ul {
    display: block;
}

.dropdown-menu ul {
    right: -179px;
    top: -1px;
}

.dropdown-item {
    padding: 10px 15px;
    color: #fff !important;
    background-color: #000 !important;
}

.dropdown-item.active,
.dropdown-item:active,
.dropdown-item:hover {
    color: var(--primary-color) !important;
    background-color: #000;
}

#searchPopUpWrap {
    display: none;
    position: absolute;
    bottom: 0px;
    background-color: #e02826 !important;
    padding: 18px;
    height: 100%;
    color: #fff;
    width: 100%;
    right: -50px;
}

#searchPopUpInnerWrap {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
}

.searchFormWrap .form-control {
    background: transparent;
    border: none;
    border-bottom: 1px solid #fff;
    border-radius: 0;
    min-width: 320px;
}

.search-form ::placeholder {
    color: #fff;
}

.searchButton {
    color: #fff;
}

.search_container {
    padding: 8px 0px 0px 15px;
    position: absolute;
    right: 15px;
    top: 0;
    z-index: 1300;
    width: 0px;
}

.searchbox {
    position: relative;
    min-width: 50px;
    width: 0%;
    height: 40px;
    float: right;
    overflow: hidden;
    -webkit-transition: width 0.3s;
    -moz-transition: width 0.3s;
    -ms-transition: width 0.3s;
    -o-transition: width 0.3s;
    transition: width 0.3s;
    z-index: 1;
}

.searchbox-input {
    top: 0;
    right: 0;
    border: 0;
    outline: 0;
    background: transparent;
    width: 100%;
    height: 40px;
    margin: 0;
    padding: 0px 50px 0px 0px;
    font-size: 14px;
    color: #fff;
}

.searchbox-open {
    border-bottom: 1px solid #0e406a;
}

.searchbox-input::-webkit-input-placeholder,
.searchbox-input:-moz-placeholder,
.searchbox-input::-moz-placeholder,
.searchbox-input:-ms-input-placeholder,
.searchbox-input::placeholder {
    color: #fff;
}

.searchbox-icon,
.searchbox-submit {
    width: 40px;
    height: 40px;
    display: block;
    position: absolute;
    top: 2px;
    font-family: verdana;
    font-size: 20px;
    right: 0;
    padding: 0;
    margin: 0;
    border: 0;
    outline: 0;
    text-align: center;
    cursor: pointer;
    color: var(--primary-color);
    background: transparent;
}

.searchbox-open .searchbox-submit {
    z-index: 1;
}

#searchCloseWrap img {
    max-width: 18px;
}

#searchCloseWrap {
    width: 35px;
    height: 35px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    position: absolute;
    right: 35px;
    top: 0px;
    margin-right: 0px;
    opacity: 0;
}

.searchbox-open {
    width: 100%;
}

.search-results .cat-links,
.search-results .post-edit-link {
    display: none;
}

.search-results article {
    border-bottom: 1px solid #0b99d6;
    padding-bottom: 30px;
    margin-bottom: 30px;
}

#contactModal .modal-body {
    padding: 30px;
}

#close-modal {
    font-size: 35px;
    font-weight: 300;
    line-height: 1;
    outline: unset !important;
    cursor: pointer;
    background: unset;
    border: none;
    position: absolute;
    top: 20px;
    right: 20px;
    box-shadow: unset !important;
}

#close-modal span {
    outline: unset !important;
    color: #fff;
}

.close:not(:disabled):not(.disabled):hover {
    opacity: .75;
}

/*  Footer Styles  */

#footer {
    background: #000;
    color: #fff;
    padding-top: 40px;
    padding-bottom: 20px;
}

#footer .navbar-brand img {
    height: 140px;
}

#footer #menu-footer-menu {
    max-height: 190px;
    flex-wrap: wrap;
}

#footer .footer-menu .nav-link {
    line-height: 1;
    padding-right: 15px;
}

#footer .social-icons i {
    font-size: 32px;
}

#footer a:hover,
#footer .address a {
    color: #fff;
}

#footer .address a {
    font-weight: 200;
}

#footer .address a:hover {
    color: var(--primary-color);
}

#footer .address {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
}

#footer .address div {
    padding-left: 30px;
    margin-bottom: 15px;
}

#footer .address h3 {
    font-size: 20px;
    margin-bottom: 0;
}

#footer .copyright {
    text-align: center;
    font-size: 13px;
    padding-top: 90px;
}

/*  Homepage Styles  */

#HomeHero .herocontent {
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    z-index: 15;
}

#HomeHero .ratio,
#HomeHero #hero-video {
    min-height: 800px;
    min-height: 100vh;
}

#HomeHero #hero-video {
    object-fit: cover;
}

#HomeHero .hero-overlay {
    width: 100%;
    height: 100%;
    position: absolute;
    background: #0000005c;
    top: 0;
    z-index: 12;
}

.slideimg {
    height: 700px;
    display: flex;
    align-items: center;
    padding-top: 135px;
}

.herocontent {
    color: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    overflow: hidden;
}

.herocontent h1 {
    font-size: 5vw;
    line-height: 1;
    margin-bottom: 25px;
}

.herocontent .tagline {
    text-transform: uppercase;
    padding: 10px 15px;
    border: 1px solid var(--primary-color);
    font-size: 26px;
    font-weight: 500;
    margin-bottom: 25px;
    line-height: 1.2;
    position: relative;
}

.herocontent .a-line,
.herocontent .b-line {
    width: 50vw;
    height: 1px;
    background-color: var(--primary-color);
    position: absolute;
    top: 50%;
    left: -50vw;
}

.herocontent .b-line {
    right: -50vw;
    left: unset;
}

.two-level-headline {
    font-size: 60px;
    line-height: 1.1;
}

.two-level-headline span {
    color: #fff !important;
    display: block;
    font-size: 40px;
}

.callout {
    font-size: 22px;
    color: var(--grey-color);
    font-weight: 600;
    padding: 60px;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: auto;
    max-width: 500px;
}

.orange-line-text {
    border-left: 1px solid var(--primary-color);
    margin-left: 30px;
    padding-left: 30px;
}

.overlay {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.6);
}

.orange-block-image {
    aspect-ratio: 1 / 1;
    width: 100%;
    height: auto;
    position: relative;
    /* overflow: hidden; */
}

.orange-block-image > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Image copy block 2 — full-height image column */
.image-column {
    position: relative;
    min-height: 400px;
    overflow: hidden;
    padding: 0;
}

.image-column > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Full-bleed background image behind sectioned content */
#background-image-block {
    position: relative;
}

.bg-img-cover {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
}

.orange-block {
    position: absolute;
    width: 300px;
    background: var(--primary-color);
    padding: 30px;
    bottom: -60px;
    left: -60px;
    aspect-ratio: 1 / 1;
    transform: scale(0);
    transform-origin: top right;
    transition: transform 2.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.orange-block.in-view {
    transform: scale(1);
}

.orange-block span {
    font-size: 85px;
    font-weight: 600;
    display: block;
    line-height: 1;
}

.contact-headline {
    position: absolute;
    top: -30px;
    left: 0;
    width: 100%;
    display: flex;
    justify-content: center;
}

.contact-headline h1 {
    margin: 0px;
    font-size: 32px;
    padding: 15px 20px;
    border: 1px solid var(--primary-color);
    font-size: 30px;
    font-weight: 600;
    line-height: 1.2;
    background-color: #000;
    display: inline-block;
}

.bbb_viewed_nav_container {
    display: flex;
    justify-content: flex-end;
}

.bbb_viewed_nav {
    display: inline-block;
    cursor: pointer;
    background: none;
    border: none;
    padding: 0;
}

.bbb_viewed_nav svg {
    width: 30px;
    height: 30px;
}

.bbb_viewed_nav svg .cls-1 {
    fill: var(--primary-color);
}

.bbb_viewed_nav:hover svg .cls-1 {
    fill: #fff;
}

.bbb_viewed_nav:hover {
    color: #606264;
}

.bbb_viewed_prev {
    margin-right: 15px;
}

.bbb_viewed_slider_container {
    padding-top: 13px;
}

.bbb_viewed_item {
    width: 100%;
}

.bbb_viewed_content {
    width: 100%;
    margin-top: 25px;
}

.vdc-item {
    border: var(--grey-color) 1px solid;
    height: 400px;
    padding: 30px;
    position: relative;
    margin-bottom: 30px;
    display: block;
}

.service-item {
    border: var(--grey-color) 1px solid;
    height: 400px;
    padding: 30px;
    position: relative;
    margin-bottom: 30px;
    display: block;
}

.service-item h3 {
    font-size: 24px;
}

.service-item .copy {
    display: none;
    font-size: 18px;
    font-weight: 300;
    text-transform: initial;
    line-height: 1.3;
    transform: visability 0.15s ease-in-out;
    -webkit-animation: slide-in-fwd-center 0.6s
        cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
    animation: slide-in-fwd-center 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94)
        both;
}

.service-item img {
    width: 80px !important;
    position: absolute;
    bottom: 30px;
    transition: all 0.6s ease;
}

.service-item svg {
    width: 30px;
    position: absolute;
    bottom: 30px;
    right: 30px;
    display: none;
    transform: all 0.15s ease-in-out;
    -webkit-animation: slide-in-fwd-center 0.6s
        cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
    animation: slide-in-fwd-center 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94)
        both;
}

.service-item svg .cls-1 {
    fill: #000;
}

.service-item svg:hover .cls-1 {
    fill: #fff;
}

.service-item:hover {
    background-blend-mode: unset;
    background: var(--primary-color) !important;
    -webkit-animation: slide-in-fwd-center 0.6s
        cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
    animation: slide-in-fwd-center 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94)
        both;
}

.service-item:hover .copy,
.service-item:hover svg {
    display: block;
}

.service-item:hover img {
    display: none;
}

/* Cover image for service cards — replaces inline background-image + blend-mode.
   Uses mix-blend-mode: multiply against background-color: #333 to replicate
   the original background-blend-mode: multiply effect.
   Selector specificity (0,2,1) beats `.service-item img` (0,1,1) so both
   !important declarations resolve correctly. */
.service-item img.service-item-bg {
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    mix-blend-mode: multiply;
    z-index: 0;
    bottom: auto !important;
    transition: none;
}

/* h3 and copy must sit above the z-index:0 bg image */
.service-item h3,
.service-item .copy {
    position: relative;
    z-index: 1;
}

/* Site Styles */

#VideoPopUpWrap {
    position: absolute;
    z-index: 1021;
    display: none;
    bottom: 0;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

#VideoPopUpWrap .contentWrap {
    width: 100%;
    height: 100%;
}

.videoWrap {
    width: 87%;
    height: auto;
    display: block;
    margin-left: -43.5%;
    left: 50%;
    top: 60px;
    position: relative;
    padding-bottom: 56.25%;
    padding-top: 25px;
    height: 0;
}

#VideoPopUpWrap iframe {
    position: absolute;
    z-index: 2;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.videoPopUpCloseButton {
    font-size: 36px;
    position: absolute;
    top: 10px;
    right: 60px;
    cursor: pointer;
    z-index: 20;
    color: #fff;
}

#VideoPopUpWrap .transparentBckgrnd {
    background-color: #000;
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    opacity: 0.8;
}

.resource-item {
    margin: 15px 15px 30px;
    width: 100%;
}

.resource-item .box {
    /* max-width: 300px; */
}

.project-thumb-img {
    width: 100%;
    display: block;
    object-fit: cover;
    aspect-ratio: 1 / 1;
    margin-bottom: 45px;
}

.resource-item-thumb {
    width: 100%;
    display: block;
    object-fit: cover;
    aspect-ratio: 1 / 1;
}

.resource-item .box a {
    background-color: var(--primary-color);
    display: block;
    position: absolute;
    bottom: -20px;
    right: 15px;
    width: 40px;
    height: 40px;
    padding: 5px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.resource-item .box a:hover {
    background-color: #fff;
}

.resource-item .box a:hover svg .cls-1 {
    fill: var(--primary-color);
}

.resource-item h3 {
    font-size: 20px;
}

.resource-item .copy p {
    color: #fff;
    font-size: 14px;
}

.pagination {
    justify-content: center;
}

#header-image .service-overlay-text,
#project-header {
    padding-top: 200px;
    padding-bottom: 120px;
}

#services-intro {
    /* margin-top: -250px; I changed this back to 100 as it caused issues in other sections */
    margin-top: -100px;
}

#fabrication-intro {
    margin-top: -250px;
}

h1.title {
    font-size: 60px;
    line-height: 1.4;
}

h1.title span {
    display: block;
    font-size: 30px;
}

.accordion {
    border: 1px solid var(--grey-color);
    padding: 15px 30px;
}

.accordion-header > span {
    position: absolute;
    top: -80px;
}

.accordion-item {
    border: none;
    background: transparent;
}

.accordion-header {
    padding: 40px 0px;
}

.accordion-header a {
    color: #fff !important;
}

.black-text .accordion-header a {
    color: #000 !important;
    font-weight: 500;
}

.accordion .accordion-item + .accordion-item .accordion-header {
    border-top: 1px solid var(--grey-color);
}

.accordion-button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 15px 0px !important;
    font-size: 16px;
    color: var(--primary-color) !important;
    text-decoration: none !important;
    background-color: unset !important;
    box-shadow: none !important;
}

.accordion-button:after {
    display: none !important;
}

.accordion-button span {
    font-size: 20px;
    padding-left: 15px;
    padding-right: 10px;
    line-height: 0;
    margin-top: -3px;
    color: var(--primary-color) !important;
}

.accordion-header .minus {
    font-size: 30px;
}

.accordion-body {
    padding: 15px 30px 15px 0px;
    color: #54585a !important;
}

.accordion.orange-accents {
    border: 1px solid var(--primary-color);
}

.accordion.orange-accents .accordion-header a {
    color: var(--primary-color) !important;
    text-transform: uppercase;
}

.accordion.orange-accents .accordion-item + .accordion-item .accordion-header {
    border-top: 1px solid var(--primary-color);
}

.orange-box {
    background: var(--primary-color);
    font-size: 28px;
    text-transform: unset;
    display: block;
    padding: 30px;
    margin-left: -90px;
    margin-top: 45px;
    margin-bottom: 0px;
    line-height: 1.2;
}

#services-image-copy h1 {
    max-width: 425px;
}

.featlist-item {
    line-height: 1.2;
}

.hard-hat {
    position: absolute;
    top: -35px;
    left: calc(50% - 37.5px);
    height: 70px;
    width: 75px;
    background-color: #000;
    border: 1px solid var(--primary-color);
    display: flex;
    justify-content: center;
    align-items: center;
}

.hard-hat i {
    font-size: 40px;
    color: #fff;
}

#bottom-padding-section {
    padding-bottom: 250px;
}

#background-image-overlay {
    display: flex;
    justify-content: center;
    position: relative;
}

#background-image-overlay .container {
    position: absolute;
    top: -50%;
}

#overflow-image-block {
    position: relative;
}

.overflow-image {
    max-height: calc(100% - 101px);
    position: absolute;
    max-width: 35%;
    left: 0;
    bottom: 1px;
    width: auto;
    padding: 0px;
}

.industry-headline {
    text-transform: unset;
    font-size: 30px;
}

.orange-block.positioned {
    position: absolute;
    width: 700px;
    aspect-ratio: unset;
    right: 10%;
    left: unset;
    bottom: 120px;
}

.testimonial {
    width: 100%;
}

.testimonial + .testimonial {
    border-top: 1px solid var(--primary-color);
}

#project-header h1 {
    font-size: 50px;
}

.project-container {
    border-top: 1px solid var(--primary-color);
}

.project-info {
    padding: 10px 0px;
    font-size: 22px;
    border-bottom: 1px solid var(--primary-color);
}

.project-info strong {
    text-transform: uppercase;
}

#project-header .project-image-1,
#project-header .project-image-2 {
    position: absolute;
    width: 60%;
    height: 75%;
    max-height: 300px;
}

#project-header .project-image-1 {
    bottom: 0px;
    z-index: 1;
}

#project-header .project-image-2 {
    bottom: 25%;
    right: 12px;
}

.gallery-masonry {
    column-count: 3;
    column-gap: 15px;
}

.gallery-item {
    break-inside: avoid;
    margin-bottom: 15px;
    width: 100%;
}

.gallery-item img {
    width: 100%;
    display: block;
}

.post-navigation {
    display: none !important;
}

.titan-experience-headline {
    text-transform: unset;
    font-size: 26px;
}

.orange-box.experience {
    position: absolute;
    left: 0px;
    right: 30%;
    width: 80%;
    margin: 30px 0px 0px;
}

.experience-image {
    min-height: 400px;
}

#hover-section .service-item {
    padding: 0px;
}

#hover-section .service-item:hover {
    background: #000 !important;
}

#hover-section .service-item .content {
    padding: 30px;
}

#hover-section .service-item .copy,
#hover-section .service-item:hover .carousel,
#hover-section .service-item:hover .video-container {
    display: block;
}

#hover-section .service-item:hover .content,
#hover-section .service-item .carousel,
#hover-section .service-item .video-container {
    display: none;
}

#hover-section .carousel-indicators .active {
    background-color: var(--primary-color);
}

.video-container {
    width: 100%;
    max-width: 400px;
    aspect-ratio: 9 / 16;
}

.video-container video {
    width: 100%;
    height: 400px;
    object-fit: cover;
    display: block;
}



/* Our Team Page Styles */

.team-grid {
    display: flex;
    flex-wrap: wrap;
    position: relative;
    overflow: hidden;
    min-height: 350px;
}

.team-row {
    position: relative;
    min-height: 350px;
    overflow: hidden;
}

.team-member {
    position: relative;
    transition: none;
}

.team-card {
    position: relative;
    width: 100%;
    padding-top: 100%; /* square */
    background-size: cover;
    background-position: center;
    cursor: pointer;
    transition:
        height 0.35s ease,
        padding-top 0.35s ease;
}

.team-arrow {
    position: absolute;
    bottom: 10px;
    right: 10px;
    z-index: 5;
    width: 32px;
    height: 32px;
    background-repeat: no-repeat;
    background-size: contain;
    pointer-events: auto;
    background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29.69 24.5'><path fill='%23fe5209' d='M3.36,0L0,2.8l9.03,9.29c.16.17.16.43,0,.59L0,21.71l3.36,2.8l11.99-12.12L3.36,0Z'/><path fill='%23fe5209' d='M17.7,0l-3.36,2.8,9.03,9.29c.16.17.16.43,0,.59l-9.03,9.03,3.36,2.8l11.99-12.12L17.7,0Z'/></svg>");
}

.team-meta {
    margin-top: 10px;
}

.team-meta .name {
    font-weight: bold;
}

.team-member.active {
    position: absolute;
    top: 0;
    left: 0;
    width: 25%;
    height: 100%;
    z-index: 20;
}

.team-member.active .team-card {
    padding-top: 0;
    height: 100%;
}

.team-member.active .team-meta {
    display: none;
}

.team-expanded {
    position: absolute;
    top: 0;
    left: 100%;
    width: 300%;
    height: 100%;
    opacity: 0;
    transform: translateX(20px);
    pointer-events: none;
    transition:
        opacity 0.35s ease,
        transform 0.35s ease;
}

.team-member.active .team-expanded {
    opacity: 1;
    transform: translateX(0);
    pointer-events: auto;
}

.team-expanded-inner {
    display: flex;
    height: 100%;
}

.team-expanded-content {
    padding: 30px;
    position: relative;
    width: 100%;
    max-height: 100%;
    overflow-y: auto;
}

.team-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: none;
    border: none;
    font-size: 2rem;
    color: #fff;
    cursor: pointer;
}

.team-member.closing {
    position: absolute;
    inset: 0;
    width: 25%;
    height: 100%;
    z-index: 20;
    transform: none !important;
}

.team-member.closing .team-card {
    height: 100%;
    padding-top: 0;
}

.team-member.closing .team-expanded {
    opacity: 0;
    transform: translateX(20px);
    pointer-events: none;
}

#teamModal .modal-dialog {
    max-height: 80vh;
}

#teamModal .modal-content {
    max-height: 80vh;
    overflow: hidden;
}

#teamModal .modal-body {
    position: relative;
    max-height: 80vh;
    overflow-y: auto;
    padding: 30px;
}

.team-modal-image {
    width: 100%;
    height: 35vh;
    max-height: 240px;
    background-size: cover;
    background-position: center;
    margin-bottom: 20px;
}

@media (max-width: 767px) {
    .team-row {
        min-height: auto;
    }

    .team-member {
        margin-bottom: 30px;
    }

    .team-card {
        padding-top: 75%; /* slightly smaller images */
    }

    .team-expanded {
        display: none !important;
    }
}

/*  Flexible Content Template Styles  */

#FC_Tabs .nav-link,
#FC_Tabs.white-background .nav-link.active {
    color: #fff;
    border-radius: 0;
}

#FC_Tabs.white-background .nav-link.active {
    background: #000;
}

#FC_Tabs .nav-link.active,
#FC_Tabs.white-background .nav-link {
    color: #000;
}

.logo-container {
    border: 1px solid #eee;
    height: 150px;
    padding: 30px;
}

.logo-container a {
    justify-content: center;
    display: flex;
    align-items: center;
    flex-direction: column;
}

.logo-container img {
    max-height: 80px;
    max-width: 100%;
}

.fc-plainhero-col {
    padding-top: 200px;
}

/*  Mobile Styles  */

@media (max-width: 1400px) {
    .orange-block-image.positioned {
        aspect-ratio: 1 / 1.3;
    }
}

@media (max-width: 1200px) {
    .orange-block.positioned {
        width: 600px;
    }

    .orange-block-image.positioned {
        aspect-ratio: 1 / 1.6;
    }

    .navbar-nav .nav-link {
        font-size: 15px;
    }
}

@media (max-width: 991px) {
    .navbar-toggler {
        border: none !important;
        box-shadow: none !important;
        position: absolute;
        top: 58px;
        right: 15px;
    }

    .navbar-collapse {
        /* fixed navmenu bottom rows being unreachable on mobile */
        max-height: calc(100vh - 120px);
        overflow-y: auto;
        scrollbar-color: transparent transparent;
    }

    .slideimg {
        height: 500px;
    }

    .navbar-brand img {
        height: 80px;
    }

    .navbar-nav .nav-link {
        font-size: 16px;
    }

    ul#menu-main-nav ul {
        position: static !important;
    }

    ul#menu-main-nav li:hover > ul {
        display: unset !important;
    }

    .dropdown-menu {
        background-color: unset;
        border: none;
    }

    .dropdown-menu a {
        padding: 5px 15px;
        color: #fff;
    }

    .dropdown-item:focus,
    .dropdown-item:hover {
        background: unset !important;
        color: var(--primary-color);
    }

    .contact-headline {
        width: calc(100% - 30px);
        left: 15px;
    }

    .contact-headline h1 {
        font-size: 20px;
        margin-right: 15px;
        margin-left: 15px;
    }

    .orange-block-image.positioned {
        aspect-ratio: 1 / 0.75;
    }

    .orange-block.positioned {
        left: 0;
        right: unset;
    }

    #project-header h1 {
        font-size: 35px;
    }

    .orange-box.experience {
        margin: 90px 0px 0px;
    }

    #bottom-padding-section {
        padding-bottom: unset;
    }

    #background-image-overlay {
        margin-top: 60px;
        padding-bottom: 120px;
    }

    #background-image-overlay .container {
        position: relative;
        top: 60px;
        bottom: 60px;
        height: calc(100% + 120px);
    }
}

@media (max-width: 767px) {
    .section-padded,
    .section-padded-lg {
        padding-top: 45px;
        padding-bottom: 45px;
    }

    .block-padding {
        padding: 30px;
    }

    .left-padding {
        padding-left: 30px;
    }

    .right-padding {
        padding-right: 30px;
    }

    footer .navbar-brand {
        display: flex;
        justify-content: center;
        margin: auto;
    }

    #footer .navbar-brand img {
        height: 100px;
    }

    h1 {
        font-size: 26px;
    }

    h2 {
        font-size: 22px;
    }

    .overlay-text .tagline {
        font-size: 20px;
    }

    h1.title {
        font-size: 40px;
    }

    h1.title span {
        font-size: 20px;
    }

    .orange-block-image {
        width: calc(100% - 30px);
    }

    .orange-block {
        width: 250px;
        left: 30px;
        margin-left: 0px;
    }

    .orange-block span {
        font-size: 60px;
    }

    .two-level-headline {
        font-size: 45px;
    }

    .two-level-headline span {
        font-size: 30px;
    }

    #contact-container .section-padded-lg {
        padding-top: 90px;
    }

    #services-intro .orange-block-image {
        width: unset;
        aspect-ratio: unset;
        height: 300px;
        margin-left: unset;
    }

    #services-intro .orange-box {
        font-size: 26px;
        margin-left: 30px;
        margin-top: -60px;
        margin-right: 30px;
    }

    #fabrication-intro {
        margin-top: -100px;
    }

    #overflow-image-block .container {
        padding-bottom: 350px;
    }

    .overflow-image {
        max-width: 80%;
        max-height: 335px;
    }

    .orange-line-text {
        margin-left: 15px;
        padding-left: 15px;
    }

    .industry-headline {
        font-size: 24px;
    }

    .orange-block.positioned {
        bottom: 45px;
        max-width: 100%;
    }

    #project-header {
        padding-top: 150px;
        padding-bottom: 45px;
    }

    .project-info {
        font-size: 18px;
    }

    .orange-box {
        margin-left: 0px;
        margin-top: -30px;
    }

    #contact-container {
        margin-top: 45px;
    }
}

@media (max-width: 575px) {
    .contact-headline {
        top: -40px;
    }

    div#PrivPolPopUpWrap p,
    div#PrivPolPopUpWrap a {
        font-size: 14px;
    }

    .slideimg,
    #header-image {
        background-attachment: unset !important;
    }

    .service-item {
        height: 300px;
    }

    .orange-block-image {
        margin-left: unset;
        width: 100%;
    }

    .orange-block.positioned {
        width: auto;
        left: 12px;
        right: 12px;
    }

    .orange-box.experience {
        position: relative;
        margin: 0px 30px 54px;
        width: auto;
    }

    #footer .address {
        justify-content: center;
        flex-direction: column;
        & > * {
            padding-left: 0 !important;
        }
    }
    #footer #menu-footer-menu {
        width: fit-content;
        margin: 0 auto;

        & li {
            max-width: 50vw;
        }
    }
}

@media (max-width: 362px) {
    .contact-headline {
        top: -52px;
    }

    h1.title {
        font-size: 30px;
    }

    h1.title span {
        font-size: 18px;
    }
}

/* Override FontAwesome font-display: block → swap to eliminate Lighthouse penalty */
@font-face { font-family: "Font Awesome 7 Brands"; font-display: swap; }
@font-face { font-family: "Font Awesome 7 Free";   font-display: swap; }
@font-face { font-family: "Font Awesome 5 Brands"; font-display: swap; }
@font-face { font-family: "Font Awesome 5 Free";   font-display: swap; }
@font-face { font-family: "FontAwesome";            font-display: swap; }
