/*
Theme Name:   TuffWrap Hello Elementor Child
Theme URI:    https://www.tuffwrap.com/
Description:  Hello Elementor child theme for TuffWrap. Ports the site functionality (CPTs, shortcodes, breadcrumbs, SEO helpers, Gravity Forms tweaks) previously carried by the Twenty Twenty-One based child, and renders the custom standalone header.
Author:       tuffwrap
Author URI:   https://www.tuffwrap.com
Template:     hello-elementor
Version:      1.2.6
Text Domain:  tuffwrap-hello-elementor-child
*/

/**
*
	Typography tokens — fluid sizes shared by the Angie components.
	Each size is stored as min / fluid / max plus the composed clamp(), so a
	component can take the whole clamp or override a single part.
*
**/

:root {
    --tw-h1-min: 2.125rem;
    --tw-h1-fluid: 4.4vw;
    --tw-h1-max: 4rem;
    --tw-h1-size: clamp(var(--tw-h1-min), var(--tw-h1-fluid), var(--tw-h1-max));

    --tw-h2-min: 28px;
    --tw-h2-fluid: 3.4vw;
    --tw-h2-max: 42px;
    --tw-h2-size: clamp(var(--tw-h2-min), var(--tw-h2-fluid), var(--tw-h2-max));

    --tw-lead-min: 18px;
    --tw-lead-fluid: 1.5vw;
    --tw-lead-max: 24px;
    --tw-lead-size: clamp(var(--tw-lead-min), var(--tw-lead-fluid), var(--tw-lead-max));

    --tw-body-size: 1rem;

    /* --tw-color-red: #E31B23; */
    --tw-color-red: #dc272d;
    /* --tw-color-blue: #0082C9; */
    --tw-color-blue: #128ccd;
    --tw-color-white: #ffffff;
}


/**
*
	Global css
*
**/

body a {
    font-family: var(--e-global-typography-text-font-family), Sans-serif !important;
}

.elementor-section.elementor-section-boxed>.elementor-container {
    padding-left: 20px;
    padding-right: 20px;
}


/**
*
	Header css
*
**/

button.sub-menu-toggle {
    display: none;
}

.header-sec1-inner1 ul li {
    display: inline-block;
    text-decoration: none;
    border-right: 1px #eeeeee solid;
    padding: 20px;
}

.header-sec1.transparent_topbar .header-sec1-inner1 ul li {
    border-color: #fff;
}

.header-sec1.active_sticky,
.header-sec2.active_sticky,
.header-sec2.active_sticky .header_nav_column .elementor-column-wrap {
    border-color: #f5f5f5 !important;
}

.header_transparent_true .header-sec1 .header-sec1-inner2 .elementor-widget-social-icons .elementor-grid-item a i {
    color: #444444 !important;
}

.header-sec1 ul {
    padding: 0;
}

.header-sec1 .elementor-container,
.header2-sec1 .elementor-container {
    padding-left: 10%;
    padding-right: 10%;
}

.header-sec2-inner3 .elementor-widget-wrap {
    flex-wrap: nowrap;
}

.header-sec2-inner3-img1 {
    margin-bottom: 0 !important;
}

.header-sec1-inner2 a.elementor-icon.elementor-social-icon {
    border-right: 1px solid transparent;
    padding: 0px 15px 0 0px;
    margin-right: 10px;
}

.header-sec1.transparent_topbar .header-sec1-inner2 a.elementor-icon.elementor-social-icon {
    border-color: #4a4a4a;
}

.header-sec2 a.elementor-sub-item,
.header-sec2 a.elementor-sub-item:hover {
    padding-left: 30px !important;
    padding-right: 115px !important;
}

.header-sec2 .sub-menu li:nth-child(even) a.elementor-sub-item {
    background-color: #feffff;
}

.header-sec2 .sub-menu li:nth-child(odd) a.elementor-sub-item {
    background-color: #fbfeff;
}

.header-sec2 .sub-menu li a.elementor-sub-item {
    border: 1px solid #eff1f2 !important;
}

.header-sec2 .sub-menu .sub-menu a.elementor-sub-item:hover {
    color: #2f3538 !important;
    border: 1px solid #c8cacb !important;
}

.header-sec1,
.header-sec2 {
    z-index: 99;
}


/**
*
	Home css
*
**/

.home-sec2-title .elementor-heading-title:after {
    content: '';
    border-bottom: 2px solid #0477BF;
    width: 210px;
    height: 25px;
    display: block;
    margin: 0 auto;
    opacity: 0.5;
}

span.middle-text {
    color: #1E8ECE;
}

.industries-served-inner-text {
    opacity: 0;
    box-shadow: inset 2000px 0 0 0 rgb(0 0 0 / 70%);
    padding: 150px 50px;
}

.industries-served-inner-text:hover {
    opacity: 1;
}

.jobs-sec {
    box-shadow: inset 2000px 0 0 0 rgb(0 0 0 / 10%);
    padding: 150px 50px;
}

span.faq-index {
    color: #9F1316;
}

a.jobs-link {
    color: #ffffff;
    text-decoration: underline;
}

.footer-sec2 a,
.footer-sec3 a {
    color: #BABABA;
}



@media only screen and (max-width: 1024px) {
    .new-celebrating-video .ug-item-wrapper img {
        width: 100% !important;
        height: 100% !important;
        left: 0 !important;
        object-fit: contain !important;
    }

    .new-celebrating-video .ug-videoplayer .ug-videoplayer-button-close {
        height: 24px;
        width: 24px;
        left: auto !important;
        right: 2px;
        top: 2px !important;
        background-size: 100%;
    }

}

@media only screen and (max-width: 767px) {
    .new-celebrating-video .ug-videoplayer-wrapper {
        position: relative;
        padding-bottom: 56.25%;
        height: 0 !important;
    }

    .new-celebrating-video .ug-videoplayer-wrapper iframe {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        max-height: initial !important;
    }

    .new-celebrating-video .ug-gallery-wrapper .ug-videoplayer {
        height: 257px !important;
    }

    .new-celebrating-video .ug-item-wrapper img {
        height: 230px !important;
    }

    body .new-celebrating-video .ug-slider-wrapper .ug-slide-wrapper {
        height: 100% !important;
    }

    .new-celebrating-video .ug-strip-panel {
        top: 407px !important;
    }

    .new-celebrating-video .ug-gallery-wrapper {
        height: 590px !important;
    }

    .resources_gallery_slider .new-celebrating-video .ug-gallery-wrapper .ug-videoplayer {
        height: 100% !important;
    }

    .resources_gallery_slider .ug-videoplayer-wrapper {
        position: relative;
        padding-bottom: 56.25%;
        height: 0;
    }

    .t-comman-slider .ug-videoplayer iframe {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
    }

    .t-comman-slider .ug-gallery-wrapper .ug-textpanel {
        display: none !important;
    }

    .t-comman-slider div#uc_uc_compact_image_theme_elementor_5dbe918_videoplayer_vimeo {
        position: relative;
        padding-bottom: 56.25%;
        height: 0;
    }

    .t-comman-slider div#uc_uc_compact_image_theme_elementor_5dbe918_videoplayer_vimeo iframe {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
    }

    .resources_gallery_slider .ug-videoplayer iframe {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
    }

    /* .resources_gallery_slider .ug-gallery-wrapper .ug-videoplayer,body .resources_gallery_slider .ug-slider-wrapper,body .resources_gallery_slider .ug-item-wrapper,body .resources_gallery_slider .ug-gallery-wrapper{height:220px !important;} */
    .resources_gallery_slider .ug-gallery-wrapper .ug-textpanel {
        display: none !important;
    }

    .resources_gallery_slider div#uc_uc_compact_image_theme_elementor_5dbe918_videoplayer_vimeo {
        position: relative;
        padding-bottom: 56.25%;
        height: 0;
    }

    .resources_gallery_slider div#uc_uc_compact_image_theme_elementor_5dbe918_videoplayer_vimeo iframe {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
    }

    .t-comman-slider .new-celebrating-video .ug-strip-panel {
        top: 311px !important;
    }

    .t-comman-slider .new-celebrating-video .ug-gallery-wrapper {
        height: 410px !important;
    }

    .ug-gallery-wrapper .ug-videoplayer,
    .ug-item-wrapper img,
    .ug-slider-wrapper .ug-item-wrapper,
    .ug-slide-wrapper,
    .ug-slider-inner {
        height: 327px !important;
    }

    .resources_gallery_slider .ug-item-wrapper img {
        width: 100% !important;
        height: 311px !important;
        left: 0 !important;
    }

    .resources_gallery_slider .new-celebrating-video .ug-strip-panel {
        top: 311px !important;
    }

    .resources_gallery_slider .new-celebrating-video .ug-gallery-wrapper {
        height: 410px !important;
    }
}

@media only screen and (max-width: 575px) {
    .new-celebrating-video .ug-gallery-wrapper .ug-videoplayer {
        height: 180px !important;
    }

    .new-celebrating-video .ug-item-wrapper img {
        height: auto !important;
    }

    .new-celebrating-video .ug-strip-panel {
        top: 297px !important;
    }

    .resources_gallery_slider .new-celebrating-video .ug-gallery-wrapper {
        height: 390px !important;
    }

    .t-comman-slider .new-celebrating-video .ug-gallery-wrapper {
        height: 390px !important;
    }
}

@media only screen and (max-width: 480px) {
    .new-celebrating-video .ug-gallery-wrapper .ug-videoplayer {
        height: 167px !important;
    }

    .new-celebrating-video .ug-item-wrapper img {
        height: auto !important;
    }

    .new-celebrating-video .ug-gallery-wrapper {
        height: 200px !important;
    }

    .main-celebrating-section {
        padding-bottom: 0 !important;
    }

    /* 	.new-celebrating-video .ug-gallery-wrapper{height:auto !important;} */
    .resources_gallery_slider .new-celebrating-video .ug-gallery-wrapper {
        height: 390px !important;
    }

    .t-comman-slider .new-celebrating-video .ug-gallery-wrapper {
        height: 390px !important;
    }

    .new-comman-spacer {
        display: none;
    }
}

@media (max-width: 460px) and (min-width: 426px) {
    .new-celebrating-video .ug-gallery-wrapper {
        height: 175px !important;
    }
}

@media only screen and (max-width: 425px) {
    .new-celebrating-video .ug-gallery-wrapper .ug-videoplayer {
        height: 143px !important;
    }

    .resources_gallery_slider .ug-gallery-wrapper {
        height: 202px !important;
    }

    .t-comman-slider .ug-gallery-wrapper {
        height: 202px !important;
    }

    .new-celebrating-video .ug-gallery-wrapper {
        height: 160px !important;
    }
}

@media only screen and (max-width: 392px) {
    .new-celebrating-video .ug-gallery-wrapper {
        height: 155px !important;
    }
}

@media only screen and (max-width: 375px) {
    .new-celebrating-video .ug-gallery-wrapper .ug-videoplayer {
        height: 114px !important;
    }

    .new-celebrating-video .ug-gallery-wrapper {
        height: 140px !important;
    }

    .resources_gallery_slider .new-celebrating-video .ug-gallery-wrapper {
        height: 390px !important;
    }

    .resources_gallery_slider .ug-gallery-wrapper {
        height: 171px !important;
    }

    .t-comman-slider .ug-gallery-wrapper {
        height: 171px !important;
    }

    .t-comman-slider .new-celebrating-video .ug-gallery-wrapper {
        height: 390px !important;
    }

}

@media only screen and (max-width: 344px) {
    .new-celebrating-video .ug-gallery-wrapper {
        height: 122px !important;
    }
}

/* .ug-videoplayer .ug-videoplayer-button-close {
    display: none !important;
} */

@media (max-width: 480px) {

    /* Only recaptcha wrapper */
    #field_6_7,
    #input_6_7 {
        width: 100% !important;
        max-width: 100% !important;
        overflow: hidden !important;
        display: block !important;
    }

    /* Actual iframe fix */
    #input_6_7 iframe {
        width: 304px !important;
        height: 78px !important;

        /* LEFT align + shrink */
        transform: scale(0.75) !important;
        transform-origin: top left !important;
    }
}

/* Fix image distortion (stretching/squishing) caused by NitroPack inline aspect-ratio styles */
.elementor-widget-image img {
    height: auto !important;
}

/* Keep every standard Elementor Image Carousel image within the shared visual height cap. */
.elementor-widget-image-carousel .swiper-slide-image {
    max-height: 400px;
    height: auto;
}

.tuffwrap-breadcrumb-bar {
    width: 100%;
    background: transparent;
    border-top: 1px solid #edf0f2;
    border-bottom: 1px solid #edf0f2;
}

.tuffwrap-breadcrumb-container {
    max-width: 1340px;
    margin: 0 auto;
    padding: 0.5rem;
}

.tuffwrap-breadcrumbs {
    margin: 0;
    color: #5e6670;
    font-family: var(--e-global-typography-text-font-family), Sans-serif;
    font-size: 13px;
    line-height: 1.5;
}

/* Breadcrumb corto (2026-10-02): sin "Home", una sola línea, niveles largos con
   puntos suspensivos y los intermedios colapsados en "…" (ver functions.php). */
.tuffwrap-breadcrumbs ol {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    min-width: 0;
    overflow: hidden;
}

.tuffwrap-breadcrumbs li {
    display: flex;
    align-items: center;
    flex: 0 1 auto;
    min-width: 0;
    margin: 0;
    white-space: nowrap;
}

.tuffwrap-breadcrumbs .tuffwrap-breadcrumbs__label {
    display: block;
    min-width: 0;
    max-width: 22ch;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Los niveles padre ya tienen tope (max-width); el que cede espacio es el actual. */
.tuffwrap-breadcrumbs li.tuffwrap-breadcrumbs__item:not(.breadcrumb_last) {
    flex-shrink: 0;
}

.tuffwrap-breadcrumbs .breadcrumb_last {
    flex: 0 1 auto;
    color: #2f3538;
    font-weight: 600;
}

.tuffwrap-breadcrumbs .breadcrumb_last .tuffwrap-breadcrumbs__label {
    max-width: none;
}

.tuffwrap-breadcrumbs a {
    color: #0f6ea8;
    text-decoration: none;
}

.tuffwrap-breadcrumbs a:hover,
.tuffwrap-breadcrumbs a:focus {
    text-decoration: underline;
}

.tuffwrap-breadcrumbs .separator {
    flex: none;
    margin: 0 6px;
    color: #8d959f;
}

.tuffwrap-breadcrumbs li.tuffwrap-breadcrumbs__more {
    flex: none;
}

.tuffwrap-breadcrumbs .tuffwrap-breadcrumbs__toggle,
.tuffwrap-breadcrumbs .tuffwrap-breadcrumbs__toggle:hover,
.tuffwrap-breadcrumbs .tuffwrap-breadcrumbs__toggle:focus {
    margin: 0;
    padding: 0 4px;
    border: 0;
    border-radius: 3px;
    background: none;
    color: inherit;
    font: inherit;
    line-height: inherit;
    letter-spacing: 1px;
    cursor: pointer;
}

.tuffwrap-breadcrumbs .tuffwrap-breadcrumbs__toggle:hover,
.tuffwrap-breadcrumbs .tuffwrap-breadcrumbs__toggle:focus-visible {
    background: rgba(127, 127, 127, 0.15);
}

/* Escritorio: primero … dos últimos */
.tuffwrap-breadcrumbs .tuffwrap-breadcrumbs__more--mobile,
.tuffwrap-breadcrumbs.has-collapse-desktop .is-collapsed-desktop {
    display: none;
}

/* Ruta desplegada con el botón "…": todo visible y en varias líneas si hace falta */
.tuffwrap-breadcrumbs.is-expanded ol {
    flex-wrap: wrap;
    row-gap: 2px;
}

.tuffwrap-breadcrumbs.is-expanded li.tuffwrap-breadcrumbs__item {
    display: flex;
}

.tuffwrap-breadcrumbs.is-expanded li.tuffwrap-breadcrumbs__more {
    display: none;
}

.tuffwrap-breadcrumbs.is-expanded .tuffwrap-breadcrumbs__label {
    max-width: none;
    white-space: normal;
}

@media only screen and (max-width: 767px) {
    .tuffwrap-breadcrumb-container {
        padding: 0.5rem 1rem;
    }

    .tuffwrap-breadcrumbs {
        font-size: 12px;
    }

    .tuffwrap-breadcrumbs .tuffwrap-breadcrumbs__label {
        max-width: 16ch;
    }

    /* Móvil: … dos últimos */
    .tuffwrap-breadcrumbs .tuffwrap-breadcrumbs__more--desktop,
    .tuffwrap-breadcrumbs.has-collapse-mobile .is-collapsed-mobile {
        display: none;
    }

    .tuffwrap-breadcrumbs.has-collapse-desktop .is-collapsed-desktop:not(.is-collapsed-mobile) {
        display: flex;
    }

    .tuffwrap-breadcrumbs.has-collapse-mobile:not(.is-expanded) .tuffwrap-breadcrumbs__more--mobile {
        display: flex;
    }
}

/* Breadcrumb dentro del Overlay Hero (fondo oscuro): sin barra blanca, tonos claros */
.ovh-27981__breadcrumb .tuffwrap-breadcrumb-bar {
    background: transparent;
    border-color: rgba(255, 255, 255, 0.3);
}

.ovh-27981__breadcrumb .tuffwrap-breadcrumb-container {
    padding: 0.5rem 0;
}

.ovh-27981__breadcrumb .tuffwrap-breadcrumbs,
.ovh-27981__breadcrumb .tuffwrap-breadcrumbs .separator {
    color: rgba(255, 255, 255, 0.75);
}

.ovh-27981__breadcrumb .tuffwrap-breadcrumbs .breadcrumb_last {
    color: #fff;
}

/**
*
	Section title / subtitle
	Shared classes applied to native Elementor heading widgets so a section
	header matches the Angie components (compare .rcr-27985__heading).
	Used by Ask an Expert (27931), News (30) and the blog templates.
*
**/

.elementor-widget-heading .elementor-heading-title.tfw-blog-title,
.tfw-blog-title {
    font-size: clamp(24px, 2.8vw, 32px);
    font-weight: 800;
    line-height: 1.2;
    text-transform: uppercase;
    color: #0f172a;
    margin: 0 0 12px;
}

.elementor-widget-heading .elementor-heading-title.tfw-blog-subtitle,
.tfw-blog-subtitle {
    font-size: var(--tw-body-size, 15px);
    font-weight: 400;
    line-height: 1.6;
    color: #475569;
    margin: 0;
}


/* Mobile review 2026-10-02 */
@media only screen and (max-width: 767px) {
    /* Footer text under 14px (the ® superscripts are intentionally smaller). */
    .tw-elementor-footer .elementor-icon-list-text,
    .tw-elementor-footer .elementor-widget-text-editor,
    .tw-elementor-footer .elementor-widget-text-editor p,
    .tw-elementor-footer .elementor-button .elementor-button-text {
        font-size: 14px;
    }

    /* "Explore our Temporary Wall Solutions" (page 27889): heading sat on the viewport edge. */
    .elementor-27889 .elementor-element-3de4b29 {
        padding-inline: 20px;
    }

    .elementor-27889 .elementor-element-3de4b29 .e-heading-base {
        line-height: 1.2;
    }
}

/* Certification pages (FM 4652, ASTM E84, ASTM D8662), 2026-10-02: the Documentation
   list sits beside the Criteria Grid at 23% width. Below 1025px that column gets too
   narrow (button over the text), so the row stacks and the list goes full width.
   Done here instead of per-page responsive settings so it holds on any page using
   the pair, for both classic containers and v4 flexboxes. */
@media (max-width: 1024px) {
    .e-con:has(> .elementor-widget-document_download_list_27983),
    .e-con > .e-con-inner:has(> .elementor-widget-document_download_list_27983),
    .e-flexbox:has(> .elementor-widget-document_download_list_27983) {
        flex-direction: column;
        align-items: stretch;
        max-width: 100%;
    }

    .e-con .elementor-element.elementor-widget.elementor-widget-document_download_list_27983,
    .e-flexbox .elementor-element.elementor-widget.elementor-widget-document_download_list_27983 {
        --container-widget-width: 100%;
        width: 100%;
        max-width: 100%;
    }
}

/* "Portrait gallery" image carousels (Industrial, Frameless, Hybrid, SmartSeam;
   library template 28546), 2026-10-02. The widget's own custom CSS spaces the
   slides with `gap` on the swiper track, but Swiper moves exactly one slide width
   per step, so every step drifted 24px and neighbouring slides showed cut off.
   The 24px now lives inside each slide as padding, which Swiper's maths includes. */
.elementor-widget-image-carousel.portrait-gallery .swiper-wrapper {
    gap: 0;
}

.elementor-widget-image-carousel.portrait-gallery .swiper-slide {
    padding: 0 12px;
    border-radius: 0;
    overflow: visible;
}

.elementor-widget-image-carousel.portrait-gallery .swiper-slide::after {
    right: 30px;
}

@media (min-width: 768px) {
    /* Pull the track out by the slide padding so the first/last image still line
       up with the heading. */
    .elementor-widget-image-carousel.portrait-gallery .elementor-image-carousel-wrapper {
        margin-inline: -12px;
    }
}

/* Tablet and mobile: the heading wraps, so arrows lifted into the heading row land
   on the text. Centre them under the carousel instead. */
@media (max-width: 1024px) {
    .elementor-widget-image-carousel.portrait-gallery {
        padding-bottom: 72px;
    }

    /* Some pages add bottom padding to the widget (Advanced tab) to space it from
       the next block; here the arrows already fill that space. */
    .elementor .elementor-element.elementor-widget-image-carousel.portrait-gallery > .elementor-widget-container {
        padding-bottom: 0;
    }

    .elementor-widget-image-carousel.portrait-gallery .elementor-swiper-button {
        top: auto !important;
        bottom: 0 !important;
        width: 48px;
        height: 48px;
    }

    .elementor-widget-image-carousel.portrait-gallery .elementor-swiper-button-prev {
        left: auto !important;
        right: calc(50% + 8px) !important;
    }

    .elementor-widget-image-carousel.portrait-gallery .elementor-swiper-button-next {
        left: calc(50% + 8px) !important;
        right: auto !important;
    }
}

/* Mobile: one image per view in a fixed 4:3 frame that fits the screen; the photo
   covers the frame from the centre (ultra-wide shots get their sides trimmed). */
@media (max-width: 767px) {
    .elementor-widget-image-carousel.portrait-gallery .swiper-slide {
        padding: 0;
    }

    .elementor-widget-image-carousel.portrait-gallery .swiper-slide::after {
        top: 12px;
        right: 12px;
        width: 40px;
        height: 40px;
        font-size: 20px;
    }

    .elementor-widget-image-carousel.portrait-gallery .swiper-slide img {
        aspect-ratio: 4 / 3;
        width: 100%;
        height: auto;
        max-height: none;
        object-fit: cover;
        object-position: center center;
        border-radius: 20px;
    }
}
