/*
CTC Separate Stylesheet
Updated: 2024-01-16 02:38:41
*/

/* ============================================
   McCandless & Associates - Global Fixes
   ============================================ */

/* --- Prevent horizontal overflow sitewide --- */
/* Note: theme already has body { overflow-x: hidden !important } in modules.css */
.qodef-row-grid-section,
.qodef-grid,
.qodef-container-inner {
    max-width: 100% !important;
    box-sizing: border-box;
}

.qodef-page-content-holder {
    word-wrap: break-word;
    overflow-wrap: break-word;
}

.vc_row {
    max-width: 100%;
}

/* --- Portfolio single page: ensure sidebar title is fully visible --- */
.qodef-portfolio-single-holder .qodef-ps-info-holder .qodef-ps-title {
    word-wrap: break-word;
    overflow-wrap: break-word;
}

/* --- Portfolio sidebar: smooth offset when sticky header appears --- */
.single-portfolio-item .qodef-ps-info-sticky-holder {
    transition: transform 0.6s ease;
}

/* ============================================
   McCandless & Associates - Responsive Fixes
   ============================================ */

/* --- Desktop Header: Always fixed at top --- */
.qodef-page-header .qodef-menu-area {
    position: fixed !important;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    background-color: #ffffff;
    padding-left: 80px;
    padding-right: 80px;
    box-sizing: border-box;
}

/* --- Make header grid full-width so logo/hamburger align on all pages --- */
.qodef-page-header .qodef-menu-area .qodef-grid {
    width: 100% !important;
    max-width: 100% !important;
}

/* --- Offset content so it doesn't hide behind the fixed header --- */
.qodef-page-header + .qodef-content,
body.qodef-paspartu-enabled .qodef-content {
    padding-top: 90px;
}

/* --- Equal white framing on all sides --- */
.qodef-wrapper {
    padding-left: 80px !important;
    padding-right: 80px !important;
}

/* --- Homepage: remove gap between header and slider --- */
body.home .qodef-content {
    padding-top: 65px !important;
}

/* --- Desktop Header: Constrain logo within header --- */
.qodef-page-header .qodef-logo-wrapper {
    margin-top: 10px;
}

.qodef-page-header .qodef-logo-wrapper a {
    height: 60px !important;
    overflow: hidden;
}

.qodef-page-header .qodef-logo-wrapper a img {
    max-height: 100%;
    width: auto;
    height: auto !important;
    object-fit: contain;
}

/* --- Desktop nav: ensure items don't overflow --- */
.qodef-page-header .qodef-menu-area .qodef-vertical-align-containers {
    overflow: visible;
}

.qodef-page-header .qodef-position-right {
    overflow: visible;
    position: relative;
    z-index: 4;
}

.qodef-page-header .qodef-position-center {
    z-index: 3;
}

/* --- Reduce menu item spacing for tighter fit --- */
.qodef-page-header nav.qodef-main-menu > ul > li > a {
    padding: 0 10px;
    font-size: 12px;
    letter-spacing: 0.5px;
}

/* ============================================
   Medium-Large Screens (1025px - 1300px)
   Desktop header still showing, but tight space
   ============================================ */
@media only screen and (max-width: 1300px) {
    .qodef-page-header .qodef-vertical-align-containers,
    .qodef-top-bar .qodef-vertical-align-containers {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }

    .qodef-page-header nav.qodef-main-menu > ul > li > a {
        padding: 0 7px;
        font-size: 11px;
        letter-spacing: 0;
    }

    .qodef-page-header .qodef-logo-wrapper a {
        height: 50px !important;
    }

    .qodef-page-header .qodef-position-left-inner {
        margin-right: 10px !important;
    }
}

/* ============================================
   Tablet-ish range (1025px - 1150px)
   Very tight - shrink further
   ============================================ */
@media only screen and (max-width: 1150px) {
    .qodef-page-header nav.qodef-main-menu > ul > li > a {
        padding: 0 5px;
        font-size: 10px;
        letter-spacing: 0;
    }

    .qodef-page-header .qodef-logo-wrapper a {
        height: 45px !important;
    }

    .qodef-page-header .qodef-menu-area {
        height: 65px !important;
    }

    .qodef-page-header .qodef-position-left-inner {
        margin-right: 5px !important;
    }
}

/* ============================================
   Sticky Header Responsive
   ============================================ */
.qodef-page-header .qodef-sticky-header .qodef-logo-wrapper a {
    height: 60px !important;
}

.qodef-page-header .qodef-sticky-header .qodef-logo-wrapper a img {
    max-height: 100%;
    width: auto;
    height: auto !important;
}

@media only screen and (max-width: 1300px) {
    .qodef-page-header .qodef-sticky-header .qodef-logo-wrapper a {
        height: 50px !important;
    }

    .qodef-sticky-header .qodef-sticky-holder .qodef-vertical-align-containers {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }

    .qodef-sticky-header nav.qodef-main-menu > ul > li > a {
        padding: 0 10px;
        font-size: 12px;
    }
}

/* ============================================
   Tablet & Mobile (1024px and below)
   Theme hides .qodef-page-header, shows .qodef-mobile-header.
   Remove desktop-only framing that crushes the layout.
   ============================================ */
@media only screen and (max-width: 1024px) {

    /* --- Match original theme paspartu framing on tablet/mobile --- */
    .qodef-wrapper {
        padding: 15px !important;
    }

    /* --- Override theme's fixed pixel grid widths (300-768px) so content
           spans full width inside the 15px wrapper frame, matching footer --- */
    .qodef-row-grid-section,
    .qodef-grid,
    .qodef-container-inner {
        width: 100% !important;
    }

    /* --- Neutralize WPBakery row/column margin-padding pair on mobile.
           WPBakery uses margin: 0 -15px on .vc_row paired with padding: 0 15px
           on .vc_column-inner. Combined with our max-width: 100% on .vc_row,
           the negative margins shift the row left without expanding it,
           leaving a 15px gap on the right side. Zeroing both fixes this
           so content fills the wrapper frame edge-to-edge (matching footer). --- */
    .qodef-row-grid-section .vc_row {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .qodef-row-grid-section .vc_column-inner {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    /* --- Reset content offset: mobile header is shorter than desktop --- */
    .qodef-page-header + .qodef-content,
    body.qodef-paspartu-enabled .qodef-content {
        padding-top: 0;
    }

    body.home .qodef-content {
        padding-top: 0 !important;
    }

    /* --- Ensure desktop fixed header doesn't interfere on mobile --- */
    .qodef-page-header .qodef-menu-area {
        position: static !important;
        padding-left: 0;
        padding-right: 0;
    }

    /* --- Footer: flow inside wrapper so it gets the margin frame --- */
    footer.qodef-page-footer.qodef-footer-uncover {
        position: relative !important;
        bottom: auto !important;
        width: 100% !important;
        left: auto !important;
        right: auto !important;
    }

    .qodef-content {
        margin-bottom: 0 !important;
    }

    /* --- Sticky mobile header: stay within the 15px frame --- */
    .qodef-mobile-header.mobile-header-appear .qodef-mobile-header-inner {
        left: 15px !important;
        width: calc(100% - 30px) !important;
    }

    /* --- Mobile header logo: override theme's max-width:82% clip --- */
    .qodef-mobile-header .qodef-mobile-logo-wrapper a {
        height: 50px !important;
    }

    .qodef-mobile-header .qodef-mobile-logo-wrapper img {
        max-width: 100% !important;
        max-height: 100%;
        width: auto;
        height: auto !important;
        object-fit: contain;
    }

    .qodef-mobile-header .qodef-mobile-header-inner {
        height: 70px;
    }

    /* --- FAQ accordion: auto height on mobile --- */
    .qodef-accordion-title {
        min-height: auto;
    }

    /* --- Content lists: less indent on mobile --- */
    .format_text ul,
    .qodef-page-content-holder ul {
        padding-left: 20px;
    }

    /* --- Slider bullets: simpler positioning on tablet --- */
    .tp-bullets {
        left: 50% !important;
        transform: translate(-50%, -40px) !important;
    }
}

/* ============================================
   Tablet (769px - 1024px)
   ============================================ */
@media only screen and (min-width: 769px) and (max-width: 1024px) {
    .qodef-mobile-header .qodef-mobile-logo-wrapper a {
        height: 45px !important;
    }
}

/* ============================================
   Mobile Phones (768px and below)
   ============================================ */
@media only screen and (max-width: 768px) {

    /* --- Portfolio items: 2 columns instead of 3 on smaller tablets --- */
    .qodef-pl-gallery .qodef-pl-gallery-item {
        width: 50% !important;
    }

    /* --- Contact page: full-width columns, stack vertically --- */
    .vc_col-lg-5,
    .vc_col-lg-6 {
        width: 100% !important;
    }
}

/* ============================================
   Mobile Phones (680px and below)
   ============================================ */
@media only screen and (max-width: 680px) {
    .qodef-mobile-header .qodef-mobile-header-inner {
        height: 60px;
    }

    .qodef-mobile-header .qodef-mobile-logo-wrapper a {
        height: 38px !important;
    }

    /* --- Footer: reduce over-large padding --- */
    .qodef-page-footer .qodef-footer-top-holder .qodef-footer-top-inner.qodef-grid {
        padding-top: 40px;
        padding-bottom: 30px;
    }

    /* --- Slider bullets: tighter on small screens --- */
    .tp-bullets {
        transform: translate(-50%, -30px) !important;
    }

    .tp-bullet {
        margin: 0 3px !important;
    }
}

/* ============================================
   Small Phones (480px and below)
   ============================================ */
@media only screen and (max-width: 480px) {
    .qodef-mobile-header .qodef-mobile-header-inner {
        height: 55px;
    }

    .qodef-mobile-header .qodef-mobile-logo-wrapper a {
        height: 32px !important;
    }

    /* --- Portfolio items: single column on phones --- */
    .qodef-pl-gallery .qodef-pl-gallery-item {
        width: 100% !important;
    }

    /* --- Footer: compact on phones --- */
    .qodef-page-footer .qodef-footer-top-holder .qodef-footer-top-inner.qodef-grid {
        padding-top: 30px;
        padding-bottom: 20px;
    }

    /* --- Content lists: minimal indent on phones --- */
    .format_text ul,
    .qodef-page-content-holder ul {
        padding-left: 15px;
    }
}

/* ============================================
   Paspartu Responsive Adjustments
   ============================================ */
@media only screen and (max-width: 1300px) {
    .qodef-paspartu-enabled .qodef-page-header .qodef-fixed-wrapper.fixed,
    .qodef-paspartu-enabled .qodef-sticky-header,
    .qodef-paspartu-enabled .qodef-mobile-header.mobile-header-appear .qodef-mobile-header-inner {
        left: 3%;
        width: calc(100% - 6%);
    }
}

/* ============================================
   Footer Layout
   ============================================ */

/* --- Footer background: dark (theme default) --- */

/* --- Footer link hover --- */
.qodef-page-footer .qodef-footer-top-holder a:hover {
    color: rgba(255, 255, 255, 0.7) !important;
}

/* --- Footer padding --- */
.qodef-page-footer .qodef-footer-top-holder .qodef-footer-top-inner.qodef-grid {
    padding-top: 60px;
    padding-bottom: 50px;
}

/* --- Center all footer content --- */
.qodef-page-footer .qodef-column-content {
    text-align: center;
}

/* --- Footer logo with white circle background --- */
.qodef-page-footer .widget_media_image {
    padding: 0 0 5px;
}

.qodef-page-footer .widget_media_image a {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffffff;
    border-radius: 50%;
    width: 130px;
    height: 130px;
    margin: 0 auto;
    box-sizing: border-box;
    overflow: hidden;
}

.qodef-page-footer .widget_media_image img {
    display: block;
    max-width: 100px !important;
    width: 100px;
    height: auto !important;
}

/* --- Footer contact info: stack address, phone, email --- */
.qodef-page-footer .widget_text .textwidget {
    line-height: 1.8;
}

.qodef-page-footer .widget_text .textwidget a {
    display: block;
}

/* --- Ensure the footer height is not constrained by JS --- */
footer.qodef-page-footer.qodef-footer-uncover {
    height: auto !important;
}

/* --- On paspartu pages, make footer flow inside the wrapper
       so it matches the slider width with no gap --- */
.qodef-paspartu-enabled footer.qodef-page-footer.qodef-footer-uncover {
    position: relative !important;
    bottom: auto !important;
    display: block !important;
    width: 100% !important;
    left: auto !important;
    right: auto !important;
}

.qodef-paspartu-enabled .qodef-content {
    margin-bottom: 0 !important;
}

/* --- Side area: hide social media icons --- */
.qodef-social-icons-group-widget {
    display: none !important;
}


/* ============================================
   Footer Responsive
   ============================================ */
@media only screen and (max-width: 768px) {
    .qodef-page-footer .qodef-footer-top-inner {
        padding: 40px 20px;
    }

    .qodef-page-footer .qodef-footer-top-inner .qodef-column-content {
        text-align: center;
    }
}

@media only screen and (max-width: 480px) {
    .qodef-page-footer .qodef-footer-top-inner {
        padding: 30px 15px;
    }
}

/* --- Content area: indent lists --- */
.format_text ul,
.qodef-page-content-holder ul {
    padding-left: 40px;
}

/* --- Center slider bullet navigation dots relative to viewport --- */
.tp-bullets {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: auto !important;
    left: 50% !important;
    transform: translate(-50%, -52px) !important;
}

.tp-bullet {
    position: relative !important;
    left: 0 !important;
    top: 0 !important;
    margin: 0 5px !important;
    flex-shrink: 0;
}

/* ============================================
   Portfolio Category Browse View
   ============================================ */

/* --- Back button --- */
.qodef-cb-back-btn {
    text-align: left;
    margin-bottom: 20px;
    padding: 0 15px;
}

.qodef-cb-back-btn a {
    display: inline-block;
    color: #666666 !important;
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    text-decoration: none;
    transition: color 0.2s ease-out;
}

.qodef-cb-back-btn a:hover {
    color: #fe0002 !important;
}

/* --- Active category heading --- */
.qodef-cb-active-heading {
    text-align: center;
    margin-bottom: 25px;
    font-size: 22px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #333333 !important;
}

/* --- Project count in hover overlay --- */
.qodef-cb-count {
    display: block;
    color: rgba(255, 255, 255, 0.7);
    font-size: 13px;
    font-weight: 400;
    letter-spacing: 0.05em;
    margin-top: 4px;
}

/* --- Cursor for representative items --- */
.qodef-category-browse-active .qodef-cb-representative .qodef-pli-link {
    cursor: pointer;
}

/* --- Mobile info labels below portfolio images (hidden on desktop) --- */
.qodef-pli-info-below {
    display: none;
}

@media only screen and (max-width: 1024px) {
    .qodef-pli-info-below {
        display: block;
        padding: 10px 0 5px;
        text-align: center;
    }

    .qodef-pli-below-title {
        font-size: 13px;
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 0.05em;
        color: #333333;
        line-height: 1.4;
    }

    .qodef-pli-below-category {
        font-size: 11px;
        font-weight: 400;
        text-transform: uppercase;
        letter-spacing: 0.05em;
        color: #999999;
        margin-top: 2px;
    }
}


/* =============================================
   FAQ - Equal height accordion titles
   ============================================= */
.qodef-accordion-title {
    min-height: 162px;
    display: flex;
    align-items: center;
}

/* =============================================
   Contact page - bold company name & phone
   ============================================= */
.wpb_text_column strong {
    font-weight: 700 !important;
}

/* --- Contact page: reduce section title & text size by 33% --- */
.page-id-25 .qodef-section-title-holder .qodef-st-title {
    font-size: 23px !important;
    line-height: 1.3em !important;
}

.page-id-25 .qodef-section-title-holder .qodef-st-text {
    font-size: 12px !important;
    line-height: 20px !important;
}

/* --- Contact form: submit button below form, left-aligned --- */
.wpcf7-form .wpcf7-submit {
    display: block;
    margin-top: 15px;
}

/* =============================================
   Portfolio Single Page - Hide date & social
   ============================================= */
.qodef-ps-date {
    display: none !important;
}

.qodef-ps-social-share {
    display: none !important;
}

/* --- Responsive --- */
@media only screen and (max-width: 768px) {
    .qodef-cb-back-btn {
        text-align: center;
        padding: 0 10px;
        margin-bottom: 15px;
    }

    .qodef-cb-active-heading {
        font-size: 18px;
        margin-bottom: 20px;
    }
}
