:root {
    --fcm-red: #a41d21;
    --fcm-red-dark: #771418;
    --fcm-navy: #111c24;
    --fcm-steel: #273742;
    --fcm-gray: #66747e;
    --fcm-soft: #f3f5f6;
    --fcm-border: #e4e8ea;
}

/* Dewi variables */
:root {
    --accent-color: var(--fcm-red);
    --heading-color: #17252f;
    --nav-hover-color: #ffffff;
}

body {
    font-family: "Inter", sans-serif;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: "Raleway", sans-serif;
}

/* =========================================================
   HEADER
   ========================================================= */

.header {
    --background-color: rgba(6, 18, 26, .97);

    position: fixed;

    top: 0;
    left: 0;
    right: 0;

    z-index: 997;

    height: 80px;
    min-height: 80px;

    padding: 0 !important;

    background: var(--background-color);

    border-bottom:
        1px solid rgba(255, 255, 255, .06);

    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);

    transition:
        background-color .3s ease,
        box-shadow .3s ease;
}


.header > .container-fluid,
.header > .container-xl,
.header .container-fluid.container-xl {
    height: 80px;
    min-height: 80px;

    display: flex;

    align-items: center;
}


.header .logo {
    height: 80px;

    display: flex;

    align-items: center;

    padding: 0;

    margin-right: auto;
}


.header .logo img.fcm-logo {
    display: block;

    width: auto;

    max-width: 165px;
    max-height: 56px;

    object-fit: contain;
}


.scrolled .header {
    --background-color: rgba(6, 18, 26, .99);

    box-shadow:
        0 8px 28px rgba(0, 0, 0, .18);
}


/* =========================================================
   HEADER NAVIGATION
   ========================================================= */

.header .navmenu {
    display: flex;

    align-items: center;
}


.header .navmenu ul {
    align-items: center;
}


.header .navmenu a {
    color: rgba(255, 255, 255, .92);

    font-size: .76rem;

    font-weight: 600;

    letter-spacing: .045em;

    text-transform: uppercase;
}


.header .navmenu a:hover,
.header .navmenu .active {
    color: #fff;
}


.header .cta-btn {
    min-height: 42px;

    display: inline-flex;

    align-items: center;
    justify-content: center;

    margin-left: 24px;

    padding: 0 24px;

    border:
        1px solid rgba(255, 255, 255, .82);

    border-radius: 4px;

    color: #fff;

    background: transparent;

    font-size: .74rem;

    font-weight: 700;

    letter-spacing: .075em;

    text-transform: uppercase;

    transition:
        background-color .25s ease,
        border-color .25s ease,
        transform .25s ease;
}


.header .cta-btn:hover {
    color: #fff;

    background: var(--fcm-red);

    border-color: var(--fcm-red);

    transform: translateY(-1px);
}


/* =========================================================
   HERO
   ========================================================= */

.fcm-hero {
    position: relative;

    width: 100%;

    height: 100vh;

    min-height: 720px;

    overflow: hidden;

    padding: 0;

    background: #07131b;
}


/* =========================================================
   SWIPER
   ========================================================= */

.fcm-hero-swiper,
.fcm-hero-swiper .swiper-wrapper,
.fcm-hero-swiper .swiper-slide {
    width: 100%;

    height: 100%;
}


.fcm-hero-swiper .swiper-slide {
    position: relative;

    overflow: hidden;

    background: #07131b;
}


/* =========================================================
   HERO IMAGE
   ========================================================= */

.fcm-hero-slide {
    position: absolute;

    inset: 0;

    width: 100%;
    height: 100%;

    background-repeat: no-repeat;

    background-size: cover;

    background-position: center center;

    opacity: 0;

    transform:
        translateY(42px)
        scale(1.055);

    will-change:
        transform,
        opacity;
}


/*
 * Cada fotografía:
 *
 * 0%     invisible + abajo
 * 12%    entra y se acomoda
 * 100%   queda con zoom lento
 */
.swiper-slide-active .fcm-hero-slide {
    animation:
        fcmHeroReveal
        7.8s
        cubic-bezier(.2, .72, .22, 1)
        both;
}


@keyframes fcmHeroReveal {

    0% {
        opacity: 0;

        transform:
            translateY(42px)
            scale(1.065);
    }

    12% {
        opacity: 1;

        transform:
            translateY(0)
            scale(1.018);
    }

    100% {
        opacity: 1;

        transform:
            translateY(0)
            scale(1.085);
    }

}


/* =========================================================
   HERO OVERLAY
   ========================================================= */

.fcm-hero-slide::after {
    content: "";

    position: absolute;

    inset: 0;

    z-index: 1;

    background:
        linear-gradient(
            90deg,
            rgba(4, 15, 22, .92) 0%,
            rgba(4, 15, 22, .76) 32%,
            rgba(4, 15, 22, .34) 61%,
            rgba(4, 15, 22, .08) 100%
        );
}


/* =========================================================
   HERO CONTENT
   ========================================================= */

.fcm-hero-content {
    position: absolute;

    z-index: 10;

    top: 0;

    left: 50%;

    transform:
        translateX(-50%);

    width: 100%;

    height: 100%;

    display: flex;

    align-items: center;

    padding-top: 80px;

    pointer-events: none;
}


.fcm-hero-content > .row {
    pointer-events: none;
}


/* =========================================================
   HERO COPY
   ========================================================= */

.fcm-hero-copy {
    width: 100%;

    max-width: 760px;

    pointer-events: auto;
}


.fcm-hero .fcm-eyebrow {
    display: inline-flex;

    align-items: center;

    gap: 12px;

    margin-bottom: 16px;

    color:
        rgba(255, 255, 255, .80);

    font-size: .73rem;

    font-weight: 700;

    letter-spacing: .20em;

    text-transform: uppercase;
}


.fcm-hero .fcm-eyebrow::before {
    content: "";

    width: 34px;

    height: 1px;

    background:
        var(--fcm-red);
}


.fcm-hero-copy h1 {
    max-width: 760px;

    margin:
        0
        0
        25px;

    color: #fff;

    font-size:
        clamp(
            3rem,
            4.55vw,
            4.9rem
        );

    font-weight: 700;

    line-height: 1.01;

    letter-spacing: -.045em;
}


.fcm-hero-copy p {
    max-width: 690px;

    margin: 0;

    color:
        rgba(255, 255, 255, .86);

    font-size: 1.06rem;

    line-height: 1.78;
}


/* =========================================================
   HERO ACTIONS
   ========================================================= */

.fcm-hero-actions {
    display: flex;

    flex-wrap: wrap;

    gap: 14px;

    margin-top: 30px;
}


.fcm-hero .btn-get-started {
    min-height: 49px;

    display: inline-flex;

    align-items: center;
    justify-content: center;

    gap: 12px;

    margin: 0;

    padding:
        0
        28px;

    border:
        1px solid var(--fcm-red);

    border-radius: 4px;

    color:
        #fff !important;

    background:
        var(--fcm-red);

    box-shadow:
        0 10px 30px
        rgba(164, 29, 33, .22);

    font-size: .81rem;

    font-weight: 700;

    letter-spacing: .05em;

    text-decoration: none;

    transition:
        transform .25s ease,
        background-color .25s ease,
        border-color .25s ease,
        box-shadow .25s ease;
}


.fcm-hero .btn-get-started i {
    transition:
        transform .25s ease;
}


.fcm-hero .btn-get-started:hover {
    color:
        #fff !important;

    background:
        var(--fcm-red-dark);

    border-color:
        var(--fcm-red-dark);

    transform:
        translateY(-2px);

    box-shadow:
        0 14px 34px
        rgba(164, 29, 33, .30);
}


.fcm-hero .btn-get-started:hover i {
    transform:
        translateX(4px);
}


.fcm-btn-outline {
    min-height: 49px;

    display: inline-flex;

    align-items: center;
    justify-content: center;

    padding:
        0
        28px;

    border:
        1px solid
        rgba(255, 255, 255, .58);

    border-radius: 4px;

    color:
        #fff !important;

    background:
        rgba(6, 18, 26, .20);

    backdrop-filter:
        blur(6px);

    -webkit-backdrop-filter:
        blur(6px);

    font-size: .81rem;

    font-weight: 600;

    letter-spacing: .04em;

    text-decoration: none;

    transition:
        transform .25s ease,
        background-color .25s ease,
        border-color .25s ease;
}


.fcm-btn-outline:hover {
    color:
        #fff !important;

    background:
        rgba(255, 255, 255, .12);

    border-color:
        rgba(255, 255, 255, .92);

    transform:
        translateY(-2px);
}


/* =========================================================
   HERO SIDE PANEL
   ========================================================= */

.fcm-hero-panel {
    width: min(100%, 370px);

    padding:
        29px
        30px
        24px;

    border:
        1px solid
        rgba(255, 255, 255, .17);

    border-radius: 5px;

    background:
        linear-gradient(
            145deg,
            rgba(7, 20, 28, .63),
            rgba(7, 20, 28, .30)
        );

    backdrop-filter:
        blur(12px);

    -webkit-backdrop-filter:
        blur(12px);

    box-shadow:
        0
        24px
        70px
        rgba(0, 0, 0, .22);

    pointer-events: auto;
}


.fcm-hero-panel-label {
    display: block;

    margin-bottom: 20px;

    color:
        rgba(255, 255, 255, .55);

    font-size: .66rem;

    font-weight: 700;

    letter-spacing: .20em;

    text-transform: uppercase;
}


.fcm-hero-capability {
    min-height: 54px;

    display: flex;

    align-items: center;

    gap: 16px;

    border-top:
        1px solid
        rgba(255, 255, 255, .11);

    color:
        rgba(255, 255, 255, .92);

    font-size: .88rem;

    font-weight: 500;
}


.fcm-capability-number {
    min-width: 25px;

    color:
        #d23a3f;

    font-size: .68rem;

    font-weight: 800;

    letter-spacing: .08em;
}


.fcm-hero-panel-footer {
    display: flex;

    align-items: center;

    gap: 15px;

    margin-top: 18px;

    padding-top: 20px;

    border-top:
        1px solid
        rgba(255, 255, 255, .11);
}


.fcm-hero-panel-footer > div {
    display: flex;

    flex-direction: column;

    gap: 2px;
}


.fcm-hero-panel-footer strong {
    color: #fff;

    font-size: 1.18rem;

    line-height: 1;
}


.fcm-hero-panel-footer > div > span {
    color:
        rgba(255, 255, 255, .50);

    font-size: .68rem;

    text-transform: uppercase;

    letter-spacing: .08em;
}


.fcm-hero-panel-separator {
    width: 1px;

    height: 30px;

    background:
        rgba(255, 255, 255, .15);
}


/* =========================================================
   HERO NAVIGATION
   ========================================================= */

.fcm-hero-prev,
.fcm-hero-next {
    position: absolute;

    z-index: 12;

    top: 50%;

    width: 46px;

    height: 46px;

    display: grid;

    place-items: center;

    padding: 0;

    border:
        1px solid
        rgba(255, 255, 255, .34);

    border-radius: 50%;

    color: #fff;

    background:
        rgba(6, 18, 26, .24);

    backdrop-filter:
        blur(6px);

    -webkit-backdrop-filter:
        blur(6px);

    transform:
        translateY(-50%);

    transition:
        background-color .25s ease,
        border-color .25s ease,
        transform .25s ease;
}


.fcm-hero-prev {
    left: 28px;
}


.fcm-hero-next {
    right: 28px;
}


.fcm-hero-prev:hover,
.fcm-hero-next:hover {
    color: #fff;

    background:
        var(--fcm-red);

    border-color:
        var(--fcm-red);

    transform:
        translateY(-50%)
        scale(1.06);
}


/* =========================================================
   HERO PAGINATION
   ========================================================= */

.fcm-hero-pagination {
    z-index:
        12 !important;

    bottom:
        27px !important;
}


.fcm-hero-pagination
.swiper-pagination-bullet {
    width: 28px;

    height: 3px;

    margin:
        0 5px !important;

    border-radius: 0;

    background:
        rgba(255, 255, 255, .38);

    opacity: 1;

    transition:
        width .25s ease,
        background-color .25s ease;
}


.fcm-hero-pagination
.swiper-pagination-bullet-active {
    width: 42px;

    background: #fff;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1199px) {

    .header {
        height: 74px;

        min-height: 74px;
    }


    .header > .container-fluid,
    .header > .container-xl,
    .header .container-fluid.container-xl,
    .header .logo {
        height: 74px;

        min-height: 74px;
    }


    .header .logo img.fcm-logo {
        max-height: 49px;
    }


    .fcm-hero-content {
        padding-top: 74px;
    }


    .fcm-hero-copy h1 {
        font-size:
            clamp(
                2.8rem,
                5vw,
                4.3rem
            );
    }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 991px) {

    .header {
        height: 70px;

        min-height: 70px;
    }


    .header > .container-fluid,
    .header > .container-xl,
    .header .container-fluid.container-xl,
    .header .logo {
        height: 70px;

        min-height: 70px;
    }


    .header .logo img.fcm-logo {
        max-width: 142px;

        max-height: 46px;
    }


    .fcm-hero {
        height: 88vh;

        min-height: 650px;
    }


    .fcm-hero-content {
        padding-top: 70px;
    }


    .fcm-hero-copy {
        width: 100%;

        max-width: none;

        padding:
            30px
            22px
            0;
    }


    .fcm-hero-copy h1 {
        font-size:
            clamp(
                2.5rem,
                10vw,
                4rem
            );

        line-height: 1.02;
    }


    .fcm-hero-copy p {
        max-width: 560px;

        font-size: 1rem;
    }


    .fcm-hero-actions {
        gap: 10px;

        margin-top: 24px;
    }


    .fcm-hero .btn-get-started,
    .fcm-btn-outline {
        min-height: 46px;

        padding:
            0
            20px;

        font-size: .76rem;
    }


    .fcm-hero-slide::after {
        background:
            linear-gradient(
                90deg,
                rgba(4, 15, 22, .84) 0%,
                rgba(4, 15, 22, .64) 65%,
                rgba(4, 15, 22, .42) 100%
            );
    }


    .fcm-hero-prev,
    .fcm-hero-next {
        display: none;
    }

}


/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

    .swiper-slide-active
    .fcm-hero-slide {
        animation: none;

        opacity: 1;

        transform: none;
    }

}

/* General */

.fcm-large-title {
    font-size: clamp(2rem, 3vw, 3.15rem);
    line-height: 1.1;
    margin-bottom: 25px;
}

.fcm-image-frame {
    border-radius: 4px;
    overflow: hidden;
    min-height: 500px;
}

.fcm-image-frame img {
    width: 100%;
    height: 500px;
    object-fit: cover;
}

.fcm-feature {
    display: flex;
    gap: 10px;
    align-items: center;
    font-weight: 600;
    color: var(--fcm-steel);
}

.fcm-feature i {
    color: var(--fcm-red);
}

/* Stats */

.fcm-stats {
    background: var(--fcm-navy);
}

.fcm-stats .stats-item span {
    color: #fff;
    font-size: 3rem;
    font-weight: 800;
}

.fcm-stats .stats-item p {
    color: rgba(255, 255, 255, .68);
    margin: 4px 0 0;
}

/* Services */

.fcm-service-card {
    height: 100%;
    padding: 34px;
    border: 1px solid var(--fcm-border);
    background: #fff;
    transition:
        transform .25s ease,
        box-shadow .25s ease,
        border-color .25s ease;
}

.fcm-service-card:hover {
    transform: translateY(-6px);
    border-color: transparent;
    box-shadow: 0 20px 50px rgba(17, 28, 36, .10);
}

.fcm-service-icon {
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    background: var(--fcm-red);
    color: #fff;
    font-size: 1.45rem;
    margin-bottom: 26px;
}

.fcm-service-card h3 {
    font-size: 1.2rem;
    margin-bottom: 14px;
}

.fcm-service-card p {
    margin: 0;
    color: var(--fcm-gray);
    line-height: 1.75;
}

/* Brands */

.fcm-brands {
    background: var(--fcm-soft);
}

.fcm-brand-card {
    background: #fff;
    height: 100%;
    padding: 28px;
    border: 1px solid #edf0f1;
    text-align: center;
    transition: .25s ease;
}

.fcm-brand-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 16px 40px rgba(17, 28, 36, .09);
}

.fcm-brand-card img {
    width: 100%;
    height: 85px;
    object-fit: contain;
    margin-bottom: 22px;
}

.fcm-brand-card h3 {
    font-size: 1rem;
}

.fcm-brand-card p {
    color: var(--fcm-gray);
    font-size: .86rem;
    line-height: 1.6;
}

/* Parallax */

.fcm-parallax {
    min-height: 430px;
    position: relative;
    display: flex;
    align-items: center;
    background:
        url("/fcm/imgs/gallery/4/DSC_3143.jpg")
        center center / cover fixed;
}

.fcm-parallax-overlay {
    position: absolute;
    inset: 0;
    background: rgba(8, 17, 23, .72);
}

.fcm-parallax .container {
    color: #fff;
}

.fcm-parallax span {
    color: #fff;
    opacity: .7;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .18em;
}

.fcm-parallax h2 {
    color: #fff;
    max-width: 750px;
    font-size: clamp(2rem, 4vw, 3.6rem);
    margin-top: 12px;
}

/* Products */

.fcm-product-card {
    height: 100%;
    background: #fff;
    border: 1px solid var(--fcm-border);
    overflow: hidden;
    transition: .25s ease;
}

.fcm-product-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 50px rgba(17, 28, 36, .09);
}

.fcm-product-image {
    height: 310px;
    background: #f5f6f6;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 28px;
}

.fcm-product-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: transform .35s ease;
}

.fcm-product-card:hover .fcm-product-image img {
    transform: scale(1.035);
}

.fcm-product-body {
    padding: 28px;
}

.fcm-product-brand {
    display: block;
    color: var(--fcm-red);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    margin-bottom: 8px;
}

.fcm-product-body h3 {
    font-size: 1.25rem;
}

.fcm-product-body p {
    color: var(--fcm-gray);
    line-height: 1.7;
}

.fcm-product-document {
    color: var(--fcm-steel);
    font-size: .82rem;
    font-weight: 600;
}

/* Gallery */

.fcm-experience {
    background: var(--fcm-navy);
}

.fcm-experience .section-title h2,
.fcm-experience .section-title p {
    color: #fff;
}

.fcm-gallery-item {
    position: relative;
    height: 280px;
    overflow: hidden;
}

.fcm-gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .45s ease;
}

.fcm-gallery-item:hover img {
    transform: scale(1.06);
}

.fcm-gallery-link {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: #fff;
    font-size: 1.7rem;
    opacity: 0;
    background: rgba(10, 22, 30, .4);
    transition: .25s ease;
}

.fcm-gallery-item:hover .fcm-gallery-link {
    opacity: 1;
}

.fcm-gallery-link:hover {
    color: #fff;
}

/* Certifications */

.fcm-certifications {
    background: var(--fcm-soft);
}

.fcm-cert-card {
    background: #fff;
    padding: 28px;
    min-height: 240px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--fcm-border);
}

.fcm-cert-card img {
    max-width: 150px;
    max-height: 140px;
    object-fit: contain;
    margin-bottom: 18px;
}

/* News */

.fcm-news-card {
    height: 100%;
    padding: 32px;
    border-top: 3px solid var(--fcm-red);
    background: #fff;
    box-shadow: 0 12px 35px rgba(17, 28, 36, .06);
}

.fcm-news-date {
    color: #8a959c;
    font-size: .75rem;
}

.fcm-news-card h3 {
    font-size: 1.25rem;
    margin: 14px 0;
}

.fcm-news-card p {
    color: var(--fcm-gray);
    line-height: 1.7;
}

.fcm-news-more {
    color: var(--fcm-red);
    font-weight: 700;
    font-size: .85rem;
}

/* Contact */

.fcm-contact {
    padding-top: 40px;
}

.fcm-contact-panel {
    padding: 60px;
    background: var(--fcm-navy);
    color: #fff;
}

.fcm-contact-panel h2 {
    color: #fff;
    font-size: clamp(2rem, 3vw, 3rem);
}

.fcm-contact-panel p {
    color: rgba(255, 255, 255, .7);
    max-width: 700px;
}

.fcm-contact-button {
    display: inline-flex;
    gap: 12px;
    align-items: center;
    padding: 14px 24px;
    background: var(--fcm-red);
    color: #fff;
    font-weight: 700;
}

.fcm-contact-button:hover {
    color: #fff;
    background: var(--fcm-red-dark);
}

/* Footer */

.fcm-footer-logo {
    max-height: 55px;
    width: auto;
}

/* =========================================================
   SECTION SYSTEM
   ========================================================= */

.fcm-section-kicker {
    display: inline-flex;
    align-items: center;
    gap: 12px;

    margin-bottom: 13px;

    color: var(--fcm-red);

    font-size: .70rem;
    font-weight: 800;

    letter-spacing: .18em;

    text-transform: uppercase;
}

.fcm-section-kicker::after {
    content: "";

    width: 70px;
    height: 1px;

    background: var(--fcm-red);
}

.fcm-section-kicker-light {
    color: rgba(255,255,255,.68);
}

.fcm-section-kicker-light::after {
    background: rgba(255,255,255,.32);
}

.fcm-section-heading {
    max-width: 760px;

    margin: 0 0 24px;

    color: #17252f;

    font-size: clamp(2rem, 3.2vw, 3.5rem);
    font-weight: 700;

    line-height: 1.06;
    letter-spacing: -.035em;
}

.fcm-section-header {
    display: flex;

    justify-content: space-between;
    align-items: end;

    gap: 50px;

    margin-bottom: 50px;
}

.fcm-section-header > p,
.fcm-section-intro {
    max-width: 470px;

    color: var(--fcm-gray);

    line-height: 1.75;
}

.fcm-text-link {
    display: inline-flex;

    align-items: center;

    gap: 10px;

    margin-top: 12px;

    color: var(--fcm-red);

    font-weight: 700;

    text-decoration: none;
}

.fcm-text-link i {
    transition: transform .2s ease;
}

.fcm-text-link:hover i {
    transform: translateX(5px);
}


/* =========================================================
   ABOUT
   ========================================================= */

.fcm-about {
    padding-top: 110px;
    padding-bottom: 110px;

    background: #fff;
}

.fcm-about-media {
    position: relative;

    min-height: 570px;

    overflow: hidden;
}

.fcm-about-media > img {
    width: 100%;
    height: 570px;

    object-fit: cover;
}

.fcm-about-badge {
    position: absolute;

    right: 0;
    bottom: 0;

    width: 260px;

    padding: 27px;

    color: #fff;

    background: var(--fcm-red);
}

.fcm-about-badge span {
    display: block;

    margin-bottom: 10px;

    font-size: .70rem;
    font-weight: 800;

    letter-spacing: .18em;
}

.fcm-about-badge strong {
    font-size: 1rem;

    line-height: 1.5;
}

.fcm-about-lead {
    color: #273742;

    font-size: 1.15rem;

    line-height: 1.75;
}


/* =========================================================
   PILLARS
   ========================================================= */

.fcm-pillars {
    padding: 0;

    background: var(--fcm-navy);
}

.fcm-pillar-card {
    position: relative;

    min-height: 365px;

    height: 100%;

    padding: 48px 42px;

    color: #fff;

    border-right:
        1px solid rgba(255,255,255,.10);

    transition:
        background-color .3s ease;
}

.fcm-pillar-card:hover {
    background:
        rgba(255,255,255,.035);
}

.fcm-pillar-number {
    position: absolute;

    top: 25px;
    right: 27px;

    color: rgba(255,255,255,.13);

    font-size: 3.7rem;
    font-weight: 800;
}

.fcm-pillar-icon {
    margin-bottom: 40px;

    color: var(--fcm-red);

    font-size: 2rem;
}

.fcm-pillar-card h3 {
    margin-bottom: 18px;

    color: #fff;

    font-size: 1.35rem;
}

.fcm-pillar-card p {
    max-width: 310px;

    color: rgba(255,255,255,.66);

    line-height: 1.75;
}


/* =========================================================
   STATS
   ========================================================= */

.fcm-stats {
    padding: 52px 0;

    background: #0c1a23;
}

.fcm-stat {
    text-align: center;
}

.fcm-stat span {
    display: block;

    color: #fff;

    font-size: 3.4rem;
    font-weight: 800;

    line-height: 1;
}

.fcm-stat p {
    margin: 10px 0 0;

    color: rgba(255,255,255,.54);

    font-size: .78rem;
    font-weight: 600;

    letter-spacing: .08em;

    text-transform: uppercase;
}


/* =========================================================
   SERVICES
   ========================================================= */

.fcm-services {
    padding-top: 110px;
    padding-bottom: 110px;

    background: #fff;
}

.fcm-service-card {
    position: relative;

    min-height: 310px;

    height: 100%;

    padding: 32px;

    overflow: hidden;

    border: 1px solid var(--fcm-border);

    background: #fff;

    transition:
        transform .3s ease,
        box-shadow .3s ease,
        border-color .3s ease;
}

.fcm-service-card:hover {
    transform: translateY(-7px);

    border-color: transparent;

    box-shadow:
        0 24px 55px rgba(17,28,36,.10);
}

.fcm-service-top {
    display: flex;

    justify-content: space-between;

    align-items: center;

    margin-bottom: 45px;
}

.fcm-service-top span {
    color: #a5adb2;

    font-size: .70rem;

    font-weight: 800;
}

.fcm-service-top i {
    width: 55px;
    height: 55px;

    display: grid;
    place-items: center;

    color: #fff;

    background: var(--fcm-red);

    font-size: 1.35rem;
}

.fcm-service-card h3 {
    max-width: 260px;

    margin-bottom: 15px;

    color: #17252f;

    font-size: 1.18rem;
}

.fcm-service-card p {
    margin: 0;

    color: var(--fcm-gray);

    line-height: 1.7;
}

.fcm-service-arrow {
    position: absolute;

    right: 28px;
    bottom: 25px;

    color: #aab2b7;

    font-size: 1.2rem;

    transition:
        color .2s ease,
        transform .2s ease;
}

.fcm-service-card:hover
.fcm-service-arrow {
    color: var(--fcm-red);

    transform: translate(3px,-3px);
}


/* =========================================================
   BRANDS
   ========================================================= */

.fcm-brands {
    padding-top: 110px;
    padding-bottom: 110px;

    background: var(--fcm-soft);
}

.fcm-brand-card {
    height: 100%;

    padding: 0;

    overflow: hidden;

    background: #fff;

    border: 1px solid #e1e5e7;

    text-align: left;

    transition:
        transform .25s ease,
        box-shadow .25s ease;
}

.fcm-brand-card:hover {
    transform: translateY(-6px);

    box-shadow:
        0 18px 45px rgba(17,28,36,.09);
}

.fcm-brand-image {
    height: 190px;

    display: flex;

    align-items: center;
    justify-content: center;

    padding: 35px;
}

.fcm-brand-image img {
    width: 100%;
    height: 100%;

    object-fit: contain;

    margin: 0;
}

.fcm-brand-footer {
    min-height: 58px;

    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 10px;

    padding: 12px 17px;

    color: #fff;

    background: #1c2023;
}

.fcm-brand-footer strong {
    font-size: .85rem;
}

.fcm-brand-footer span {
    color: rgba(255,255,255,.58);

    font-size: .68rem;
}


/* =========================================================
   PARALLAX
   ========================================================= */

.fcm-parallax {
    min-height: 520px;

    position: relative;

    display: flex;

    align-items: center;

    background:
        url("/fcm/imgs/gallery/4/DSC_3143.jpg")
        center center / cover fixed;
}

.fcm-parallax-overlay {
    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(5,16,23,.90),
            rgba(5,16,23,.55)
        );
}

.fcm-parallax .container {
    z-index: 2;

    color: #fff;
}

.fcm-parallax h2 {
    max-width: 800px;

    margin: 10px 0 20px;

    color: #fff;

    font-size: clamp(2.3rem,4vw,4.2rem);

    line-height: 1.04;

    letter-spacing: -.04em;
}

.fcm-parallax p {
    max-width: 650px;

    color: rgba(255,255,255,.70);

    font-size: 1.05rem;

    line-height: 1.75;
}

.fcm-parallax-link {
    display: inline-flex;

    align-items: center;

    gap: 12px;

    margin-top: 17px;

    color: #fff;

    font-weight: 700;
}


/* =========================================================
   PRODUCTS
   ========================================================= */

.fcm-products {
    padding-top: 110px;
    padding-bottom: 110px;
}

.fcm-product-card {
    height: 100%;

    overflow: hidden;

    background: #fff;

    border: 1px solid var(--fcm-border);

    transition:
        transform .3s ease,
        box-shadow .3s ease;
}

.fcm-product-card:hover {
    transform: translateY(-6px);

    box-shadow:
        0 22px 50px rgba(17,28,36,.10);
}

.fcm-product-image {
    height: 300px;

    display: flex;

    align-items: center;
    justify-content: center;

    padding: 35px;

    background: #f4f5f5;
}

.fcm-product-image img {
    width: 100%;
    height: 100%;

    object-fit: contain;

    transition: transform .35s ease;
}

.fcm-product-card:hover
.fcm-product-image img {
    transform: scale(1.04);
}

.fcm-product-body {
    padding: 28px;
}

.fcm-product-brand {
    display: block;

    margin-bottom: 8px;

    color: var(--fcm-red);

    font-size: .68rem;
    font-weight: 800;

    letter-spacing: .12em;

    text-transform: uppercase;
}

.fcm-product-body h3 {
    margin-bottom: 13px;

    color: #17252f;

    font-size: 1.15rem;

    line-height: 1.35;
}

.fcm-product-body p {
    min-height: 68px;

    color: var(--fcm-gray);

    line-height: 1.7;
}

.fcm-product-footer {
    display: flex;

    justify-content: space-between;

    align-items: center;

    margin-top: 20px;

    padding-top: 17px;

    border-top: 1px solid var(--fcm-border);

    color: #59666e;

    font-size: .75rem;

    font-weight: 600;
}

.fcm-outline-dark-button {
    display: inline-flex;

    align-items: center;

    gap: 12px;

    min-height: 49px;

    padding: 0 28px;

    border: 1px solid #17252f;

    color: #17252f;

    font-weight: 700;

    text-decoration: none;

    transition: .25s ease;
}

.fcm-outline-dark-button:hover {
    color: #fff;

    background: #17252f;
}


/* =========================================================
   EXPERIENCE
   ========================================================= */

.fcm-experience {
    padding-top: 110px;
    padding-bottom: 110px;

    background: var(--fcm-navy);
}

.fcm-gallery-item {
    position: relative;

    height: 285px;

    margin: 0;

    overflow: hidden;
}

.fcm-gallery-item img {
    width: 100%;
    height: 100%;

    object-fit: cover;

    transition: transform .45s ease;
}

.fcm-gallery-item:hover img {
    transform: scale(1.06);
}

.fcm-gallery-link {
    position: absolute;

    inset: 0;

    display: grid;

    place-items: center;

    color: #fff;

    background:
        rgba(8,20,28,.40);

    opacity: 0;

    font-size: 1.5rem;

    transition: opacity .25s ease;
}

.fcm-gallery-item:hover
.fcm-gallery-link {
    opacity: 1;
}


/* =========================================================
   QUALITY
   ========================================================= */

.fcm-quality {
    padding-top: 110px;
    padding-bottom: 110px;

    background: #f1f3f4;
}

.fcm-quality p {
    max-width: 480px;

    color: var(--fcm-gray);

    line-height: 1.8;
}

.fcm-cert-card {
    min-height: 245px;

    display: flex;

    flex-direction: column;

    align-items: center;
    justify-content: center;

    gap: 20px;

    padding: 30px;

    background: #fff;

    border: 1px solid var(--fcm-border);
}

.fcm-cert-card img {
    max-width: 150px;
    max-height: 135px;

    object-fit: contain;
}


/* =========================================================
   NEWS
   ========================================================= */

.fcm-news {
    padding-top: 110px;
    padding-bottom: 110px;
}

.fcm-news-card {
    min-height: 305px;

    height: 100%;

    padding: 32px;

    border-top: 3px solid var(--fcm-red);

    background: #fff;

    box-shadow:
        0 13px 40px rgba(17,28,36,.06);

    transition:
        transform .25s ease;
}

.fcm-news-card:hover {
    transform: translateY(-5px);
}

.fcm-news-date {
    color: #90999e;

    font-size: .72rem;
}

.fcm-news-card h3 {
    margin: 15px 0;

    color: #17252f;

    font-size: 1.25rem;

    line-height: 1.35;
}

.fcm-news-card p {
    color: var(--fcm-gray);

    line-height: 1.7;
}

.fcm-news-more {
    display: inline-flex;

    align-items: center;

    gap: 8px;

    margin-top: 12px;

    color: var(--fcm-red);

    font-size: .78rem;

    font-weight: 700;
}


/* =========================================================
   CONTACT CTA
   ========================================================= */

.fcm-contact {
    padding-top: 75px;
    padding-bottom: 75px;
}

.fcm-contact-panel {
    padding: 60px;

    color: #fff;

    background: var(--fcm-navy);
}

.fcm-contact-panel h2 {
    margin: 5px 0 12px;

    color: #fff;

    font-size: clamp(2.2rem,3.2vw,3.5rem);

    letter-spacing: -.035em;
}

.fcm-contact-panel p {
    max-width: 690px;

    color: rgba(255,255,255,.65);

    line-height: 1.7;
}

.fcm-contact-button {
    min-height: 52px;

    display: inline-flex;

    align-items: center;

    gap: 15px;

    padding: 0 26px;

    color: #fff;

    background: var(--fcm-red);

    font-weight: 700;

    text-decoration: none;

    transition: .25s ease;
}

.fcm-contact-button:hover {
    color: #fff;

    background: var(--fcm-red-dark);

    transform: translateY(-2px);
}


/* =========================================================
   RESPONSIVE SECTIONS
   ========================================================= */

@media (max-width: 991px) {

    .fcm-section-header {
        display: block;
    }

    .fcm-section-header > p {
        margin-top: 20px;
    }

    .fcm-about,
    .fcm-services,
    .fcm-brands,
    .fcm-products,
    .fcm-experience,
    .fcm-quality,
    .fcm-news {
        padding-top: 80px;
        padding-bottom: 80px;
    }

    .fcm-about-media,
    .fcm-about-media > img {
        min-height: 410px;
        height: 410px;
    }

    .fcm-about-badge {
        width: 220px;
    }

    .fcm-pillar-card {
        min-height: auto;
    }

    .fcm-parallax {
        min-height: 450px;

        background-attachment: scroll;
    }

    .fcm-contact-panel {
        padding: 40px 28px;
    }

}







/* =========================================================
   INTERNAL PAGE HERO
   ========================================================= */

.fcm-page-hero {
    position: relative;

    min-height: 590px;

    display: flex;
    align-items: end;

    padding:
        160px
        0
        85px;

    overflow: hidden;

    background-position: center;
    background-size: cover;
}

.fcm-page-hero-about {
    background-image:
        url("/fcm/imgs/usbanner.jpg");
}

.fcm-page-hero-services {
    background-image:
        url("/fcm/imgs/servicebanner.jpg");
}

.fcm-page-hero-overlay {
    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(5,16,23,.92) 0%,
            rgba(5,16,23,.70) 48%,
            rgba(5,16,23,.28) 100%
        );
}

.fcm-page-hero .container {
    z-index: 2;
}

.fcm-page-kicker {
    display: block;

    margin-bottom: 15px;

    color: rgba(255,255,255,.65);

    font-size: .72rem;
    font-weight: 800;

    letter-spacing: .20em;

    text-transform: uppercase;
}

.fcm-page-hero h1 {
    max-width: 900px;

    margin: 0 0 24px;

    color: #fff;

    font-size: clamp(3rem,5vw,5.5rem);

    line-height: 1;

    letter-spacing: -.045em;
}

.fcm-page-hero p {
    max-width: 680px;

    margin: 0;

    color: rgba(255,255,255,.74);

    font-size: 1.1rem;

    line-height: 1.75;
}


/* =========================================================
   ABOUT PAGE
   ========================================================= */

.fcm-about-page-intro {
    padding-top: 110px;
    padding-bottom: 110px;
}

.fcm-about-page-image {
    height: 570px;

    overflow: hidden;
}

.fcm-about-page-image img {
    width: 100%;
    height: 100%;

    object-fit: cover;
}

.fcm-about-industries {
    display: flex;

    flex-wrap: wrap;

    gap: 14px;

    margin-top: 32px;
}

.fcm-about-industries > div {
    display: flex;

    align-items: center;

    gap: 9px;

    padding: 11px 15px;

    border: 1px solid var(--fcm-border);

    color: var(--fcm-steel);

    font-size: .78rem;

    font-weight: 700;
}

.fcm-about-industries i {
    color: var(--fcm-red);
}


/* MISSION / VISION */

.fcm-mission-vision {
    padding: 0;
}

.fcm-purpose-card {
    position: relative;

    min-height: 490px;

    height: 100%;

    padding: 65px;

    overflow: hidden;
}

.fcm-purpose-dark {
    background: var(--fcm-navy);
}

.fcm-purpose-red {
    background: var(--fcm-red);
}

.fcm-purpose-number {
    position: absolute;

    right: 35px;
    top: 25px;

    color: rgba(255,255,255,.09);

    font-size: 6rem;

    font-weight: 800;
}

.fcm-purpose-card h2 {
    max-width: 500px;

    margin-bottom: 25px;

    color: #fff;

    font-size: clamp(2rem,3vw,3.1rem);

    line-height: 1.08;

    letter-spacing: -.035em;
}

.fcm-purpose-card p {
    max-width: 560px;

    color: rgba(255,255,255,.72);

    line-height: 1.8;
}


/* POLICY */

.fcm-policy {
    padding-top: 110px;
    padding-bottom: 110px;

    background: #f5f6f6;
}

.fcm-policy-quote {
    position: relative;

    padding: 45px;

    border-left:
        4px solid var(--fcm-red);

    background: #fff;
}

.fcm-policy-quote > i {
    display: block;

    margin-bottom: 15px;

    color: var(--fcm-red);

    font-size: 2.5rem;
}

.fcm-policy-quote p {
    margin: 0;

    color: #35454f;

    font-size: 1.12rem;

    line-height: 1.9;
}


/* OBJECTIVES */

.fcm-objectives {
    padding-top: 110px;
    padding-bottom: 110px;
}

.fcm-objective-card {
    height: 100%;

    padding: 34px;

    border: 1px solid var(--fcm-border);

    background: #fff;
}

.fcm-objective-icon {
    width: 56px;
    height: 56px;

    display: grid;
    place-items: center;

    margin-bottom: 28px;

    color: #fff;

    background: var(--fcm-red);

    font-size: 1.35rem;
}

.fcm-objective-card h3 {
    margin-bottom: 20px;

    color: #17252f;

    font-size: 1.25rem;
}

.fcm-objective-card ul {
    margin: 0;

    padding-left: 20px;
}

.fcm-objective-card li {
    margin-bottom: 14px;

    color: var(--fcm-gray);

    line-height: 1.7;
}


/* CERTIFICATIONS ABOUT */

.fcm-about-certifications {
    padding-top: 110px;
    padding-bottom: 110px;

    background: var(--fcm-soft);
}


/* =========================================================
   SERVICES PAGE
   ========================================================= */

.fcm-services-intro {
    padding-top: 100px;
    padding-bottom: 90px;
}

.fcm-services-intro p {
    color: var(--fcm-gray);

    line-height: 1.8;
}

.fcm-services-nav {
    display: grid;

    grid-template-columns:
        repeat(4,1fr);

    gap: 1px;

    margin-top: 60px;

    background: var(--fcm-border);
}

.fcm-services-nav a {
    min-height: 100px;

    display: flex;

    flex-direction: column;

    justify-content: center;

    gap: 7px;

    padding: 20px;

    color: #17252f;

    background: #fff;

    font-size: .82rem;

    font-weight: 700;

    text-decoration: none;

    transition: .25s ease;
}

.fcm-services-nav a span {
    color: var(--fcm-red);

    font-size: .65rem;

    letter-spacing: .08em;
}

.fcm-services-nav a:hover {
    color: #fff;

    background: var(--fcm-navy);
}


/* SERVICE DETAILS */

.fcm-service-detail {
    padding:
        110px
        0;

    scroll-margin-top: 80px;

    background: #fff;
}

.fcm-service-detail-alt {
    background: var(--fcm-soft);
}

.fcm-service-detail-visual {
    position: relative;

    min-height: 430px;

    display: flex;

    align-items: center;
    justify-content: center;

    padding: 55px;

    overflow: hidden;

    background: #eef1f2;
}

.fcm-service-detail-visual img {
    position: relative;

    z-index: 2;

    width: 100%;
    height: 300px;

    object-fit: contain;
}

.fcm-service-detail-number {
    position: absolute;

    top: -25px;
    left: 12px;

    color: rgba(17,28,36,.05);

    font-size: 10rem;

    font-weight: 800;

    line-height: 1;
}

.fcm-service-detail-copy {
    padding:
        20px
        30px;
}

.fcm-service-detail-copy h2 {
    max-width: 650px;

    margin-bottom: 24px;

    color: #17252f;

    font-size: clamp(2rem,3.2vw,3.4rem);

    line-height: 1.08;

    letter-spacing: -.035em;
}

.fcm-service-detail-lead {
    color: #35454f;

    font-size: 1.08rem;

    line-height: 1.85;
}

.fcm-service-detail-copy > p {
    color: var(--fcm-gray);

    line-height: 1.8;
}

.fcm-service-checks {
    display: grid;

    grid-template-columns:
        repeat(2,minmax(0,1fr));

    gap:
        12px
        25px;

    margin:
        28px
        0
        30px;

    padding: 0;

    list-style: none;
}

.fcm-service-checks li {
    display: flex;

    align-items: flex-start;

    gap: 10px;

    color: #35454f;

    line-height: 1.55;
}

.fcm-service-checks i {
    margin-top: 3px;

    color: var(--fcm-red);

    font-weight: 800;
}

.fcm-service-contact {
    display: inline-flex;

    align-items: center;

    gap: 12px;

    padding-bottom: 5px;

    color: var(--fcm-red);

    border-bottom:
        1px solid var(--fcm-red);

    font-weight: 700;

    text-decoration: none;
}

.fcm-service-contact i {
    transition: transform .2s ease;
}

.fcm-service-contact:hover i {
    transform: translateX(5px);
}


/* =========================================================
   INTERNAL CTA
   ========================================================= */

.fcm-inner-cta {
    padding:
        75px
        0;
}

.fcm-inner-cta-panel {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 40px;

    padding:
        50px
        55px;

    color: #fff;

    background: var(--fcm-navy);
}

.fcm-inner-cta-panel span {
    display: block;

    margin-bottom: 7px;

    color: rgba(255,255,255,.48);

    font-size: .68rem;

    font-weight: 800;

    letter-spacing: .16em;
}

.fcm-inner-cta-panel h2 {
    margin: 0;

    color: #fff;

    font-size: clamp(1.8rem,3vw,3rem);
}

.fcm-inner-cta-panel > a {
    flex: 0 0 auto;

    display: inline-flex;

    align-items: center;

    gap: 12px;

    min-height: 50px;

    padding:
        0
        25px;

    color: #fff;

    background: var(--fcm-red);

    font-weight: 700;

    text-decoration: none;
}


/* =========================================================
   INTERNAL RESPONSIVE
   ========================================================= */

@media (max-width: 991px) {

    .fcm-page-hero {
        min-height: 500px;

        padding-bottom: 65px;
    }

    .fcm-about-page-intro,
    .fcm-policy,
    .fcm-objectives,
    .fcm-about-certifications {
        padding-top: 80px;
        padding-bottom: 80px;
    }

    .fcm-about-page-image {
        height: 420px;
    }

    .fcm-purpose-card {
        min-height: auto;

        padding: 45px 30px;
    }

    .fcm-services-nav {
        grid-template-columns:
            repeat(2,1fr);
    }

    .fcm-service-detail {
        padding:
            80px
            0;
    }

    .fcm-service-detail-copy {
        padding:
            0;
    }

    .fcm-service-checks {
        grid-template-columns:
            1fr;
    }

    .fcm-inner-cta-panel {
        display: block;

        padding:
            40px
            30px;
    }

    .fcm-inner-cta-panel > a {
        margin-top: 25px;
    }

}


@media (max-width: 575px) {

    .fcm-services-nav {
        grid-template-columns:
            1fr;
    }

}







/* =========================================================
   CATALOG HERO
   ========================================================= */

.fcm-catalog-hero {
    min-height: 470px;

    display: flex;
    align-items: end;

    padding:
        155px
        0
        75px;

    color: #fff;

    background:
        linear-gradient(
            90deg,
            rgba(5,16,23,.96),
            rgba(5,16,23,.80)
        ),
        url("/fcm/imgs/gallery/3/DSC_3182.jpg")
        center center / cover;
}

.fcm-catalog-hero-copy {
    max-width: 850px;
}

.fcm-catalog-hero h1 {
    margin:
        10px
        0
        22px;

    color: #fff;

    font-size:
        clamp(3rem,5vw,5rem);

    line-height: 1;

    letter-spacing: -.045em;
}

.fcm-catalog-hero p {
    max-width: 680px;

    color: rgba(255,255,255,.70);

    font-size: 1.05rem;

    line-height: 1.75;
}


/* =========================================================
   BRAND FILTER
   ========================================================= */

.fcm-catalog-brands {
    padding:
        90px
        0
        75px;

    background: var(--fcm-soft);
}

.fcm-brand-filter {
    display: grid;

    grid-template-columns:
        repeat(4,1fr);

    gap: 12px;
}

.fcm-brand-filter > a {
    min-height: 145px;

    display: flex;

    flex-direction: column;

    align-items: center;
    justify-content: center;

    gap: 8px;

    padding: 20px;

    color: #17252f;

    border:
        1px solid var(--fcm-border);

    background: #fff;

    text-align: center;

    text-decoration: none;

    transition: .25s ease;
}

.fcm-brand-filter img {
    width: 100%;
    height: 55px;

    object-fit: contain;

    margin-bottom: 6px;
}

.fcm-brand-filter span {
    font-size: .82rem;

    font-weight: 700;
}

.fcm-brand-filter small {
    color: #8a949a;

    font-size: .67rem;
}

.fcm-brand-filter > a:hover,
.fcm-brand-filter > a.active {
    color: #fff;

    border-color: var(--fcm-navy);

    background: var(--fcm-navy);
}

.fcm-brand-filter > a.active small,
.fcm-brand-filter > a:hover small {
    color: rgba(255,255,255,.52);
}

.fcm-brand-filter > a.active img,
.fcm-brand-filter > a:hover img {
    background: #fff;

    padding: 8px;
}

.fcm-brand-filter-all {
    font-size: 1rem !important;

    letter-spacing: .15em;
}


/* =========================================================
   CATALOG
   ========================================================= */

.fcm-catalog-products {
    padding:
        100px
        0;
}

.fcm-catalog-toolbar {
    display: flex;

    justify-content: space-between;
    align-items: end;

    gap: 30px;

    margin-bottom: 45px;

    padding-bottom: 22px;

    border-bottom:
        1px solid var(--fcm-border);
}

.fcm-catalog-toolbar span {
    color: var(--fcm-red);

    font-size: .66rem;

    font-weight: 800;

    letter-spacing: .16em;
}

.fcm-catalog-toolbar h2 {
    margin:
        4px
        0
        0;

    color: #17252f;

    font-size: 2rem;
}

.fcm-catalog-toolbar > strong {
    color: #818c92;

    font-size: .73rem;

    font-weight: 600;
}

.fcm-catalog-card {
    height: 100%;

    overflow: hidden;

    border:
        1px solid var(--fcm-border);

    background: #fff;

    transition:
        transform .25s ease,
        box-shadow .25s ease;
}

.fcm-catalog-card:hover {
    transform:
        translateY(-6px);

    box-shadow:
        0 20px 48px
        rgba(17,28,36,.09);
}

.fcm-catalog-card-image {
    height: 310px;

    display: flex;

    align-items: center;
    justify-content: center;

    padding: 35px;

    background: #f4f5f5;
}

.fcm-catalog-card-image img {
    width: 100%;
    height: 100%;

    object-fit: contain;

    transition:
        transform .35s ease;
}

.fcm-catalog-card:hover
.fcm-catalog-card-image img {
    transform: scale(1.04);
}

.fcm-catalog-card-body {
    padding: 27px;
}

.fcm-catalog-card-brand {
    display: inline-block;

    margin-bottom: 8px;

    color: var(--fcm-red);

    font-size: .67rem;

    font-weight: 800;

    letter-spacing: .10em;

    text-transform: uppercase;

    text-decoration: none;
}

.fcm-catalog-card h3 {
    min-height: 54px;

    margin-bottom: 13px;

    font-size: 1.15rem;

    line-height: 1.38;
}

.fcm-catalog-card h3 a {
    color: #17252f;

    text-decoration: none;
}

.fcm-catalog-card p {
    min-height: 76px;

    color: var(--fcm-gray);

    line-height: 1.65;
}

.fcm-catalog-card-footer {
    display: flex;

    justify-content: space-between;
    align-items: center;

    margin-top: 20px;

    padding-top: 17px;

    border-top:
        1px solid var(--fcm-border);
}

.fcm-catalog-card-footer a {
    display: inline-flex;

    align-items: center;

    gap: 8px;

    color: #17252f;

    font-size: .75rem;

    font-weight: 700;

    text-decoration: none;
}

.fcm-catalog-card-footer
.fcm-catalog-pdf {
    width: 38px;
    height: 38px;

    justify-content: center;

    color: var(--fcm-red);

    border:
        1px solid var(--fcm-border);
}


/* =========================================================
   PRODUCT DETAIL
   ========================================================= */

.fcm-product-breadcrumb {
    padding:
        105px
        0
        22px;

    background: var(--fcm-soft);
}

.fcm-product-breadcrumb .container {
    display: flex;

    flex-wrap: wrap;

    align-items: center;

    gap: 8px;

    color: #8a949a;

    font-size: .73rem;
}

.fcm-product-breadcrumb a {
    color: #5a676f;

    text-decoration: none;
}

.fcm-product-breadcrumb i {
    font-size: .60rem;
}

.fcm-product-detail {
    padding:
        70px
        0
        110px;
}

.fcm-product-detail-image {
    min-height: 570px;

    display: flex;

    align-items: center;
    justify-content: center;

    padding: 55px;

    background: #f2f4f4;
}

.fcm-product-detail-image img {
    width: 100%;
    height: 450px;

    object-fit: contain;
}

.fcm-product-detail-copy {
    padding-left: 30px;
}

.fcm-product-detail-brand {
    display: inline-block;

    margin-bottom: 15px;

    color: var(--fcm-red);

    font-size: .72rem;

    font-weight: 800;

    letter-spacing: .14em;

    text-transform: uppercase;

    text-decoration: none;
}

.fcm-product-detail-copy h1 {
    margin-bottom: 28px;

    color: #17252f;

    font-size:
        clamp(2.3rem,4vw,4.1rem);

    line-height: 1.05;

    letter-spacing: -.04em;
}

.fcm-product-description {
    color: #4f5e66;

    line-height: 1.8;
}

.fcm-product-description h1,
.fcm-product-description h2,
.fcm-product-description h3 {
    margin-top: 25px;

    color: #17252f;

    font-size: 1.1rem;
}

.fcm-product-description ul,
.fcm-product-description ol {
    padding-left: 20px;
}

.fcm-product-detail-actions {
    display: flex;

    flex-wrap: wrap;

    gap: 12px;

    margin-top: 35px;
}

.fcm-product-pdf-button,
.fcm-product-quote-button {
    min-height: 49px;

    display: inline-flex;

    align-items: center;

    gap: 10px;

    padding:
        0
        22px;

    font-size: .78rem;

    font-weight: 700;

    text-decoration: none;
}

.fcm-product-pdf-button {
    color: #fff;

    background: var(--fcm-red);
}

.fcm-product-pdf-button:hover {
    color: #fff;

    background: var(--fcm-red-dark);
}

.fcm-product-quote-button {
    color: #17252f;

    border:
        1px solid #17252f;
}

.fcm-product-quote-button:hover {
    color: #fff;

    background: #17252f;
}


/* =========================================================
   FEATURES
   ========================================================= */

.fcm-product-features {
    padding:
        90px
        0;

    background: var(--fcm-soft);
}

.fcm-product-features-content {
    margin-top: 30px;

    padding: 35px;

    background: #fff;

    overflow-x: auto;
}

.fcm-product-features-content table {
    width: 100%;

    border-collapse: collapse;
}

.fcm-product-features-content th,
.fcm-product-features-content td {
    padding: 12px;

    border:
        1px solid var(--fcm-border);
}

.fcm-related-products {
    padding:
        100px
        0;
}


/* =========================================================
   PRODUCT PAGINATION
   ========================================================= */

/* =========================================================
   PAGINATION
   ========================================================= */

.fcm-pagination {
    display: flex;
    justify-content: center;

    margin-top: 55px;
}

.fcm-pagination nav {
    width: auto;
}

.fcm-pagination .pagination {
    display: flex;
    align-items: center;

    gap: 6px;

    margin: 0;
}

.fcm-pagination .page-item {
    margin: 0;
}

.fcm-pagination .page-link {
    min-width: 42px;
    height: 42px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 0 12px;

    border: 1px solid var(--fcm-border);
    border-radius: 0 !important;

    color: #35454f;

    background: #fff;

    font-size: .78rem;
    font-weight: 700;

    box-shadow: none !important;

    transition:
        color .2s ease,
        background-color .2s ease,
        border-color .2s ease;
}

.fcm-pagination .page-link:hover {
    color: #fff;

    background: var(--fcm-navy);
    border-color: var(--fcm-navy);
}

.fcm-pagination .page-item.active .page-link {
    color: #fff;

    background: var(--fcm-red);
    border-color: var(--fcm-red);
}

.fcm-pagination .page-item.disabled .page-link {
    color: #adb5ba;

    background: #f5f6f6;
    border-color: var(--fcm-border);

    opacity: .65;
}


/* =========================================================
   PRODUCT RESPONSIVE
   ========================================================= */

@media(max-width: 991px) {

    .fcm-brand-filter {
        grid-template-columns:
            repeat(2,1fr);
    }

    .fcm-product-detail-image {
        min-height: 400px;
    }

    .fcm-product-detail-image img {
        height: 330px;
    }

    .fcm-product-detail-copy {
        padding-left: 0;
    }

}


@media(max-width: 575px) {

    .fcm-brand-filter {
        grid-template-columns: 1fr;
    }

    .fcm-catalog-toolbar {
        display: block;
    }

    .fcm-catalog-toolbar > strong {
        display: block;

        margin-top: 10px;
    }

}

/* =========================================================
   HOME PRODUCT LINKS
   ========================================================= */

.fcm-section-link {
    display: inline-flex;
    align-items: center;
    gap: 9px;

    margin-top: 10px;

    color: var(--fcm-red);

    font-size: .76rem;
    font-weight: 700;

    text-decoration: none;
}

.fcm-section-link i {
    transition: transform .2s ease;
}

.fcm-section-link:hover {
    color: var(--fcm-red-dark);
}

.fcm-section-link:hover i {
    transform: translateX(4px);
}


/* Imagen clickeable */

.fcm-product-image {
    position: relative;

    display: flex;
    align-items: center;
    justify-content: center;

    overflow: hidden;

    text-decoration: none;
}

.fcm-product-image-action {
    position: absolute;

    left: 20px;
    right: 20px;
    bottom: 18px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    padding: 11px 15px;

    color: #fff;

    background: rgba(7, 19, 27, .88);

    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);

    font-size: .72rem;
    font-weight: 700;

    opacity: 0;

    transform: translateY(10px);

    transition:
        opacity .25s ease,
        transform .25s ease;
}

.fcm-product-image:hover
.fcm-product-image-action {
    opacity: 1;

    transform: translateY(0);
}


/* Marca */

a.fcm-product-brand {
    display: inline-block;

    color: var(--fcm-red);

    text-decoration: none;
}

a.fcm-product-brand:hover {
    color: var(--fcm-red-dark);
}


/* Título */

.fcm-product-body h3 a {
    color: #17252f;

    text-decoration: none;

    transition: color .2s ease;
}

.fcm-product-body h3 a:hover {
    color: var(--fcm-red);
}


/* Footer */

.fcm-product-footer {
    gap: 15px;
}

.fcm-product-more {
    display: inline-flex;
    align-items: center;

    gap: 8px;

    color: #17252f;

    font-size: .75rem;
    font-weight: 700;

    text-decoration: none;
}

.fcm-product-more i {
    transition: transform .2s ease;
}

.fcm-product-more:hover {
    color: var(--fcm-red);
}

.fcm-product-more:hover i {
    transform: translateX(4px);
}


/* PDF */

.fcm-product-pdf {
    display: inline-flex;
    align-items: center;

    gap: 7px;

    margin-left: auto;

    color: var(--fcm-red);

    font-size: .72rem;
    font-weight: 700;

    text-decoration: none;
}

.fcm-product-pdf:hover {
    color: var(--fcm-red-dark);
}


/* Sin imagen */

.fcm-product-no-image {
    display: grid;
    place-items: center;

    width: 100%;
    height: 100%;

    color: #a4adb2;

    font-size: 2rem;
}






/* =========================================================
   CONTACT PAGE
   ========================================================= */

.fcm-contact-hero {
    min-height: 540px;

    display: flex;
    align-items: end;

    padding:
        160px
        0
        80px;

    color: #fff;

    background:
        linear-gradient(
            90deg,
            rgba(4,15,22,.94) 0%,
            rgba(4,15,22,.73) 52%,
            rgba(4,15,22,.30) 100%
        ),
        url("/fcm/imgs/gallery/3/DSC_2290.jpg")
        center center / cover;
}

.fcm-contact-hero h1 {
    max-width: 900px;

    margin:
        10px
        0
        24px;

    color: #fff;

    font-size:
        clamp(3rem,5vw,5.3rem);

    line-height: 1;

    letter-spacing: -.045em;
}

.fcm-contact-hero p {
    max-width: 700px;

    margin: 0;

    color:
        rgba(255,255,255,.72);

    font-size: 1.06rem;

    line-height: 1.75;
}


/* CONTENT */

.fcm-contact-page {
    padding:
        110px
        0;
}

.fcm-contact-page-intro {
    max-width: 520px;

    color: var(--fcm-gray);

    line-height: 1.8;
}


/* Contact info */

.fcm-contact-info {
    margin-top: 45px;
}

.fcm-contact-info-row {
    display: flex;

    gap: 20px;

    padding:
        25px
        0;

    border-top:
        1px solid var(--fcm-border);
}

.fcm-contact-info-icon {
    flex: 0 0 48px;

    width: 48px;
    height: 48px;

    display: grid;

    place-items: center;

    color: #fff;

    background: var(--fcm-red);
}

.fcm-contact-info-row > div:last-child {
    display: flex;

    flex-direction: column;

    align-items: flex-start;
}

.fcm-contact-info-row small {
    margin-bottom: 7px;

    color: #9aa3a8;

    font-size: .64rem;

    font-weight: 800;

    letter-spacing: .13em;
}

.fcm-contact-info-row strong {
    margin-bottom: 6px;

    color: #17252f;

    font-size: .90rem;
}

.fcm-contact-info-row span,
.fcm-contact-info-row a {
    color: #5e6c74;

    font-size: .85rem;

    line-height: 1.65;

    text-decoration: none;
}

.fcm-contact-info-row a:hover {
    color: var(--fcm-red);
}


/* FORM */

.fcm-contact-form-panel {
    padding: 48px;

    background: var(--fcm-soft);
}

.fcm-contact-form-heading {
    margin-bottom: 35px;
}

.fcm-contact-form-heading > span {
    color: var(--fcm-red);

    font-size: .67rem;

    font-weight: 800;

    letter-spacing: .16em;
}

.fcm-contact-form-heading h2 {
    margin:
        8px
        0
        0;

    color: #17252f;

    font-size:
        clamp(2rem,3vw,3rem);

    letter-spacing: -.035em;
}

.fcm-form-label {
    display: block;

    margin-bottom: 8px;

    color: #35454f;

    font-size: .74rem;

    font-weight: 700;
}

.fcm-form-control {
    width: 100%;

    min-height: 52px;

    padding:
        0
        15px;

    border:
        1px solid #d9dee1;

    border-radius: 0;

    outline: none;

    color: #263640;

    background: #fff;

    transition:
        border-color .2s ease,
        box-shadow .2s ease;
}

textarea.fcm-form-control {
    min-height: 165px;

    padding-top: 14px;

    resize: vertical;
}

select.fcm-form-control {
    appearance: auto;
}

.fcm-form-control:focus {
    border-color: var(--fcm-red);

    box-shadow:
        0 0 0 3px
        rgba(164,29,33,.07);
}

.fcm-form-control.is-invalid {
    border-color: var(--fcm-red);
}

.fcm-field-error {
    margin-top: 6px;

    color: var(--fcm-red);

    font-size: .70rem;
}


/* Messages */

.fcm-form-success,
.fcm-form-error {
    display: flex;

    align-items: flex-start;

    gap: 10px;

    margin-bottom: 28px;

    padding: 15px 17px;

    font-size: .80rem;

    line-height: 1.6;
}

.fcm-form-success {
    color: #23643a;

    border:
        1px solid #cfe6d7;

    background: #f0faf3;
}

.fcm-form-error {
    color: #8c1d21;

    border:
        1px solid #eccdce;

    background: #fff3f3;
}


/* Submit */

.fcm-contact-submit-row {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 30px;

    margin-top: 7px;
}

.fcm-contact-submit-row p {
    max-width: 380px;

    margin: 0;

    color: #8b959a;

    font-size: .68rem;

    line-height: 1.6;
}

.fcm-contact-submit {
    flex: 0 0 auto;

    min-height: 52px;

    display: inline-flex;

    align-items: center;
    justify-content: center;

    gap: 13px;

    padding:
        0
        26px;

    border: 0;

    color: #fff;

    background: var(--fcm-red);

    font-size: .78rem;

    font-weight: 700;

    cursor: pointer;

    transition:
        transform .2s ease,
        background-color .2s ease;
}

.fcm-contact-submit:hover {
    background: var(--fcm-red-dark);

    transform: translateY(-2px);
}


/* =========================================================
   LOCATION / MAP - COMPACT
   ========================================================= */

.fcm-location {
    position: relative;

    min-height: 430px;

    overflow: hidden;

    background: #e6e8e9;
}

.fcm-location-map {
    position: absolute;

    inset: 0;
}

.fcm-location-map iframe {
    display: block;

    width: 100%;
    height: 100%;

    filter:
        grayscale(.20)
        contrast(1.02)
        saturate(.78);
}


/* Container */

.fcm-location-container {
    position: relative;

    z-index: 2;

    min-height: 430px;

    display: flex;
    align-items: center;

    pointer-events: none;
}


/* Tarjeta compacta */

.fcm-location-card {
    width: min(350px, 100%);

    padding:
        30px
        30px;

    color: #fff;

    background:
        rgba(7, 20, 29, .95);

    box-shadow:
        0 20px 50px
        rgba(4, 14, 20, .20);

    backdrop-filter: blur(7px);
    -webkit-backdrop-filter: blur(7px);

    pointer-events: auto;
}

.fcm-location-kicker {
    display: block;

    margin-bottom: 6px;

    color: #d04b50;

    font-size: .58rem;

    font-weight: 800;

    letter-spacing: .17em;
}

.fcm-location-card h2 {
    margin: 0;

    color: #fff;

    font-size:
        clamp(1.65rem, 2.2vw, 2.35rem);

    line-height: 1.04;

    letter-spacing: -.035em;
}

.fcm-location-divider {
    width: 38px;
    height: 2px;

    margin:
        20px
        0;

    background: var(--fcm-red);
}


/* Datos */

.fcm-location-item {
    display: flex;

    gap: 13px;

    padding:
        12px
        0;

    border-bottom:
        1px solid rgba(255,255,255,.09);
}

.fcm-location-item > i {
    flex: 0 0 21px;

    margin-top: 2px;

    color: var(--fcm-red);

    font-size: .88rem;
}

.fcm-location-item > div {
    display: flex;

    flex-direction: column;

    align-items: flex-start;
}

.fcm-location-item small {
    margin-bottom: 3px;

    color: rgba(255,255,255,.40);

    font-size: .53rem;

    font-weight: 800;

    letter-spacing: .13em;
}

.fcm-location-item p {
    margin: 0;

    color: rgba(255,255,255,.74);

    font-size: .70rem;

    line-height: 1.55;
}

.fcm-location-item a {
    color: rgba(255,255,255,.78);

    font-size: .70rem;

    line-height: 1.55;

    text-decoration: none;
}

.fcm-location-item a:hover {
    color: #fff;
}


/* Botón */

.fcm-location-button {
    min-height: 42px;

    display: inline-flex;

    align-items: center;
    justify-content: center;

    gap: 9px;

    margin-top: 19px;

    padding:
        0
        17px;

    color: #fff;

    border:
        1px solid rgba(255,255,255,.30);

    text-decoration: none;

    font-size: .67rem;

    font-weight: 700;

    transition:
        background-color .2s ease,
        border-color .2s ease;
}

.fcm-location-button:hover {
    color: #fff;

    border-color: var(--fcm-red);

    background: var(--fcm-red);
}


/* Responsive */

@media(max-width: 767px) {

    .fcm-location {
        min-height: auto;
    }

    .fcm-location-map {
        position: relative;

        height: 300px;
    }

    .fcm-location-container {
        min-height: auto;

        display: block;

        padding: 0;
    }

    .fcm-location-card {
        width: 100%;

        padding:
            30px
            24px;

        box-shadow: none;
    }

}

/* =========================================================
   SERVICES PAGE
   ========================================================= */


/* ---------------------------------------------------------
   INTRO
   --------------------------------------------------------- */

.fcm-services-intro {
    padding: 90px 0 65px;
    background: #fff;
}

.fcm-services-intro p {
    margin: 0;
    color: var(--fcm-gray);
    line-height: 1.8;
}


/* ---------------------------------------------------------
   QUICK NAV
   --------------------------------------------------------- */

.fcm-services-nav {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));

    margin-top: 50px;

    border-top: 1px solid var(--fcm-border);
    border-left: 1px solid var(--fcm-border);
}

.fcm-services-nav a {
    min-height: 82px;

    display: flex;
    align-items: center;

    gap: 12px;

    padding: 16px 18px;

    color: #263640;

    border-right: 1px solid var(--fcm-border);
    border-bottom: 1px solid var(--fcm-border);

    background: #fff;

    font-size: .72rem;
    font-weight: 700;
    line-height: 1.4;

    text-decoration: none;

    transition:
        color .2s ease,
        background-color .2s ease,
        border-color .2s ease;
}

.fcm-services-nav a span {
    flex: 0 0 auto;

    color: var(--fcm-red);

    font-size: .60rem;
    font-weight: 800;

    letter-spacing: .10em;
}

.fcm-services-nav a:hover {
    color: #fff;

    border-color: var(--fcm-navy);

    background: var(--fcm-navy);
}

.fcm-services-nav a:hover span {
    color: #e25a5e;
}


/* ---------------------------------------------------------
   DETAILS
   --------------------------------------------------------- */

.fcm-service-details {
    background: #fff;
}

.fcm-service-detail {
    scroll-margin-top: 84px;

    padding: 75px 0;

    background: #fff;
}

.fcm-service-detail-alt {
    background: var(--fcm-soft);
}


/* ---------------------------------------------------------
   VISUAL
   --------------------------------------------------------- */

.fcm-service-detail-visual {
    position: relative;

    min-height: 300px;

    display: flex;
    align-items: center;
    justify-content: center;

    overflow: hidden;

    padding: 35px;

    background: #f0f2f3;
}


/* Número decorativo */

.fcm-service-detail-number {
    position: absolute;

    top: -10px;
    left: 18px;

    color: rgba(23, 37, 47, .05);

    font-size: 6.4rem;
    font-weight: 700;
    line-height: 1;

    letter-spacing: -.06em;

    user-select: none;
    pointer-events: none;
}


/* Contenedor del gráfico */

.fcm-service-detail-image-wrap {
    position: relative;

    z-index: 2;

    width: 140px;
    height: 140px;

    display: flex;
    align-items: center;
    justify-content: center;
}


/* Imagen legacy */

.fcm-service-detail-image {
    display: block;

    width: 100% !important;
    height: 100% !important;

    max-width: 140px !important;
    max-height: 140px !important;

    object-fit: contain !important;

    margin: 0 auto;
}


/* ---------------------------------------------------------
   COPY
   --------------------------------------------------------- */

.fcm-service-detail-copy {
    max-width: 710px;

    padding: 5px 0;
}

.fcm-service-detail-copy h2 {
    margin: 10px 0 22px;

    color: #17252f;

    font-size: clamp(2.2rem, 3.6vw, 3.8rem);

    line-height: 1.05;

    letter-spacing: -.04em;
}

.fcm-service-detail-lead {
    margin-bottom: 16px;

    color: #4f5e66;

    font-size: .97rem;

    line-height: 1.8;
}

.fcm-service-detail-secondary {
    margin-bottom: 22px;

    color: #68767d;

    font-size: .90rem;

    line-height: 1.75;
}


/* ---------------------------------------------------------
   CHECKS
   --------------------------------------------------------- */

.fcm-service-checks {
    display: grid;

    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 12px 26px;

    margin: 27px 0;

    padding: 0;

    list-style: none;
}

.fcm-service-checks li {
    display: flex;
    align-items: flex-start;

    gap: 9px;

    color: #263640;

    font-size: .83rem;

    line-height: 1.55;
}

.fcm-service-checks i {
    flex: 0 0 auto;

    margin-top: 2px;

    color: var(--fcm-red);

    font-size: .90rem;
}


/* ---------------------------------------------------------
   CONTACT LINK
   --------------------------------------------------------- */

.fcm-service-contact {
    display: inline-flex;
    align-items: center;

    gap: 11px;

    padding-bottom: 5px;

    color: var(--fcm-red);

    border-bottom: 1px solid var(--fcm-red);

    font-size: .78rem;
    font-weight: 700;

    text-decoration: none;

    transition:
        color .2s ease,
        gap .2s ease;
}

.fcm-service-contact:hover {
    gap: 16px;

    color: var(--fcm-red-dark);
}


/* ---------------------------------------------------------
   CTA
   --------------------------------------------------------- */

.fcm-inner-cta {
    padding: 75px 0;

    background: #fff;
}

.fcm-inner-cta-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 40px;

    padding: 44px 50px;

    color: #fff;

    background: var(--fcm-navy);
}

.fcm-inner-cta-panel > div > span {
    display: block;

    margin-bottom: 8px;

    color: rgba(255, 255, 255, .48);

    font-size: .63rem;
    font-weight: 800;

    letter-spacing: .16em;
}

.fcm-inner-cta-panel h2 {
    margin: 0;

    color: #fff;

    font-size: clamp(1.8rem, 3vw, 2.9rem);

    line-height: 1.1;

    letter-spacing: -.035em;
}

.fcm-inner-cta-panel > a {
    flex: 0 0 auto;

    min-height: 48px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 10px;

    padding: 0 22px;

    color: #fff;

    border: 1px solid rgba(255, 255, 255, .40);

    font-size: .73rem;
    font-weight: 700;

    text-decoration: none;

    transition:
        background-color .2s ease,
        border-color .2s ease;
}

.fcm-inner-cta-panel > a:hover {
    color: #fff;

    border-color: var(--fcm-red);

    background: var(--fcm-red);
}


/* =========================================================
   SERVICES RESPONSIVE
   ========================================================= */

@media (max-width: 991px) {

    .fcm-services-intro {
        padding: 75px 0 55px;
    }

    .fcm-services-nav {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fcm-service-detail {
        scroll-margin-top: 75px;

        padding: 65px 0;
    }

    .fcm-service-detail-visual {
        min-height: 270px;

        padding: 30px;
    }

    .fcm-service-detail-number {
        top: -8px;

        font-size: 5.8rem;
    }

    .fcm-service-detail-image-wrap {
        width: 130px;
        height: 130px;
    }

    .fcm-service-detail-image {
        max-width: 130px !important;
        max-height: 130px !important;
    }

    .fcm-service-detail-copy h2 {
        font-size: clamp(2rem, 5vw, 3rem);
    }

    .fcm-inner-cta-panel {
        padding: 38px 32px;
    }

}


@media (max-width: 767px) {

    .fcm-services-intro {
        padding: 65px 0 45px;
    }

    .fcm-services-nav {
        grid-template-columns: 1fr;

        margin-top: 38px;
    }

    .fcm-services-nav a {
        min-height: 62px;

        padding: 14px 16px;
    }

    .fcm-service-detail {
        scroll-margin-top: 70px;

        padding: 50px 0;
    }

    .fcm-service-detail-visual {
        min-height: 220px;

        padding: 25px;
    }

    .fcm-service-detail-number {
        top: -5px;
        left: 12px;

        font-size: 4.8rem;
    }

    .fcm-service-detail-image-wrap {
        width: 110px;
        height: 110px;
    }

    .fcm-service-detail-image {
        max-width: 110px !important;
        max-height: 110px !important;
    }

    .fcm-service-detail-copy {
        padding: 0;
    }

    .fcm-service-detail-copy h2 {
        margin-bottom: 18px;

        font-size: 2.1rem;
    }

    .fcm-service-checks {
        grid-template-columns: 1fr;

        gap: 10px;

        margin: 23px 0;
    }

    .fcm-inner-cta {
        padding: 55px 0;
    }

    .fcm-inner-cta-panel {
        display: block;

        padding: 32px 25px;
    }

    .fcm-inner-cta-panel > a {
        width: 100%;

        margin-top: 24px;
    }

}


/* =========================================================
   TABLET
   ========================================================= */

@media(max-width: 991px) {

    .fcm-services-nav {
        grid-template-columns:
            repeat(2, 1fr);
    }

    .fcm-service-detail {
        padding:
            70px
            0;

        scroll-margin-top: 75px;
    }

    .fcm-service-detail-visual {
        min-height: 300px;
    }

    .fcm-service-detail-image-wrap {
        width: 150px;
        height: 150px;
    }

    .fcm-service-detail-image {
        max-width: 150px !important;
        max-height: 150px !important;
    }

    .fcm-service-detail-number {
        font-size: 6.5rem;
    }

    .fcm-inner-cta-panel {
        padding:
            38px
            32px;
    }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media(max-width: 767px) {

    .fcm-services-intro {
        padding:
            70px
            0
            50px;
    }

    .fcm-services-nav {
        grid-template-columns: 1fr;

        margin-top: 40px;
    }

    .fcm-services-nav a {
        min-height: 62px;
    }

    .fcm-service-detail {
        padding:
            58px
            0;
    }

    .fcm-service-detail-visual {
        min-height: 245px;

        padding: 30px;
    }

    .fcm-service-detail-image-wrap {
        width: 120px;
        height: 120px;
    }

    .fcm-service-detail-image {
        max-width: 120px !important;
        max-height: 120px !important;
    }

    .fcm-service-detail-number {
        top: -8px;
        left: 13px;

        font-size: 5.3rem;
    }

    .fcm-service-detail-copy h2 {
        font-size: 2.1rem;
    }

    .fcm-service-checks {
        grid-template-columns: 1fr;
    }

    .fcm-inner-cta {
        padding:
            55px
            0;
    }

    .fcm-inner-cta-panel {
        display: block;

        padding:
            32px
            25px;
    }

    .fcm-inner-cta-panel > a {
        width: 100%;

        margin-top: 25px;
    }

}


@media(max-width: 991px) {

    .fcm-contact-page {
        padding:
            80px
            0;
    }

    .fcm-contact-form-panel {
        padding:
            35px
            25px;
    }

    .fcm-contact-submit-row {
        display: block;
    }

    .fcm-contact-submit {
        width: 100%;

        margin-top: 20px;
    }

}



/* =========================================================
   NEWS HERO
   ========================================================= */

.fcm-news-hero {
    min-height: 480px;

    display: flex;
    align-items: end;

    padding:
        155px
        0
        75px;

    color: #fff;

    background:
        linear-gradient(
            90deg,
            rgba(5,16,23,.95),
            rgba(5,16,23,.68)
        ),
        url("/fcm/imgs/gallery/3/DSC_3182.jpg")
        center center / cover;
}

.fcm-news-hero h1 {
    max-width: 850px;

    margin: 10px 0 22px;

    color: #fff;

    font-size: clamp(3rem,5vw,5rem);

    line-height: 1;

    letter-spacing: -.045em;
}

.fcm-news-hero p {
    max-width: 680px;

    color: rgba(255,255,255,.70);

    line-height: 1.75;
}


/* =========================================================
   NEWS INDEX
   ========================================================= */

.fcm-news-page {
    padding: 100px 0;
}

.fcm-news-page-card {
    height: 100%;
    min-height: 325px;

    display: flex;
    flex-direction: column;

    padding: 32px;

    border-top: 3px solid var(--fcm-red);

    background: #fff;

    box-shadow:
        0 14px 40px rgba(17,28,36,.07);

    transition:
        transform .25s ease,
        box-shadow .25s ease;
}

.fcm-news-page-card:hover {
    transform: translateY(-6px);

    box-shadow:
        0 22px 50px rgba(17,28,36,.11);
}

.fcm-news-page-meta {
    display: flex;
    justify-content: space-between;

    gap: 15px;

    margin-bottom: 18px;

    color: #929ba0;

    font-size: .69rem;
}

.fcm-news-page-card h2 {
    margin-bottom: 17px;

    font-size: 1.28rem;

    line-height: 1.4;
}

.fcm-news-page-card h2 a {
    color: #17252f;

    text-decoration: none;
}

.fcm-news-page-card p {
    flex: 1;

    color: var(--fcm-gray);

    line-height: 1.7;
}

.fcm-news-page-subtitle {
    font-weight: 500;
}

.fcm-news-read {
    display: inline-flex;
    align-items: center;

    gap: 9px;

    margin-top: 18px;

    color: var(--fcm-red);

    font-size: .76rem;
    font-weight: 700;

    text-decoration: none;
}


/* =========================================================
   ARTICLE
   ========================================================= */

.fcm-article-hero {
    padding:
        155px
        0
        80px;

    color: #fff;

    background: var(--fcm-navy);
}

.fcm-article-back {
    display: inline-flex;
    align-items: center;

    gap: 8px;

    margin-bottom: 45px;

    color: rgba(255,255,255,.55);

    font-size: .75rem;

    text-decoration: none;
}

.fcm-article-hero h1 {
    max-width: 950px;

    margin: 10px 0 22px;

    color: #fff;

    font-size: clamp(2.7rem,4.6vw,5rem);

    line-height: 1.04;

    letter-spacing: -.04em;
}

.fcm-article-hero > .container > p {
    max-width: 800px;

    color: rgba(255,255,255,.68);

    font-size: 1.08rem;

    line-height: 1.7;
}

.fcm-article-meta {
    display: flex;
    flex-wrap: wrap;

    gap: 25px;

    margin-top: 27px;

    color: rgba(255,255,255,.48);

    font-size: .72rem;
}


/* Body */

.fcm-article-page {
    padding: 100px 0;
}

.fcm-article-content {
    color: #43535c;

    font-size: 1rem;

    line-height: 1.9;
}

.fcm-article-content p {
    margin-bottom: 22px;
}

.fcm-article-content img {
    display: block;

    max-width: 100%;
    height: auto;

    margin: 32px auto;
}

.fcm-article-content h2,
.fcm-article-content h3,
.fcm-article-content h4 {
    margin:
        38px
        0
        17px;

    color: #17252f;
}

.fcm-article-content ul,
.fcm-article-content ol {
    margin-bottom: 25px;
}


/* Sidebar */

.fcm-article-sidebar {
    position: sticky;

    top: 105px;
}

.fcm-article-sidebar-section {
    margin-bottom: 25px;

    padding: 28px;

    background: var(--fcm-soft);
}

.fcm-sidebar-article {
    display: block;

    padding:
        17px
        0;

    border-bottom:
        1px solid var(--fcm-border);

    text-decoration: none;
}

.fcm-sidebar-article:last-child {
    border-bottom: 0;
}

.fcm-sidebar-article small {
    display: block;

    margin-bottom: 6px;

    color: #929ba0;

    font-size: .67rem;
}

.fcm-sidebar-article strong {
    display: block;

    color: #17252f;

    font-size: .86rem;

    line-height: 1.45;
}

.fcm-sidebar-article:hover strong {
    color: var(--fcm-red);
}

.fcm-news-card h3 a {
    color: #17252f;
    text-decoration: none;
}

.fcm-news-card h3 a:hover {
    color: var(--fcm-red);
}

a.fcm-news-more {
    text-decoration: none;
}





/* =========================================================
   MEGA MENU MARCAS
   ========================================================= */

.navmenu > ul > .fcm-nav-mega {
    position: relative !important;
}


/* Trigger */

.navmenu > ul > .fcm-nav-mega > a {
    display: flex !important;
    align-items: center;

    gap: 6px;
}

.navmenu > ul > .fcm-nav-mega > a > i {
    font-size: .62rem;

    transition: transform .2s ease;
}

.navmenu > ul > .fcm-nav-mega:hover > a > i {
    transform: rotate(180deg);
}


/* =========================================================
   DROPDOWN
   ========================================================= */

.fcm-mega-menu {
    position: absolute;

    top: calc(100% + 15px);
    left: 50%;

    width: 900px;

    max-width: calc(100vw - 40px);

    background: #fff;

    border-top: 2px solid var(--fcm-red);

    box-shadow:
        0 24px 55px
        rgba(5, 16, 23, .16);

    opacity: 0;
    visibility: hidden;

    pointer-events: none;

    transform:
        translateX(-50%)
        translateY(8px);

    transition:
        opacity .18s ease,
        transform .18s ease,
        visibility .18s ease;

    z-index: 9999;
}


/*
 * Puente invisible.
 * Evita que el menú se cierre al mover el mouse
 * desde "Marcas" hacia el panel.
 */

.fcm-mega-menu::before {
    content: "";

    position: absolute;

    top: -18px;
    left: 0;
    right: 0;

    height: 18px;
}


.fcm-nav-mega:hover .fcm-mega-menu,
.fcm-nav-mega:focus-within .fcm-mega-menu {
    opacity: 1;
    visibility: visible;

    pointer-events: auto;

    transform:
        translateX(-50%)
        translateY(0);
}


/* =========================================================
   RESET LINKS INSIDE MEGA
   Evita heredar los estilos blancos del navbar
   ========================================================= */

.fcm-mega-menu a {
    margin: 0 !important;

    padding: 0 !important;

    color: #263640 !important;

    background: transparent !important;

    border: 0 !important;

    text-transform: none !important;

    letter-spacing: normal !important;

    font-size: inherit !important;

    font-weight: inherit !important;

    text-decoration: none !important;
}

.fcm-mega-menu a::before,
.fcm-mega-menu a::after {
    display: none !important;
}


/* =========================================================
   LAYOUT
   ========================================================= */

.fcm-mega-layout {
    display: grid;

    grid-template-columns:
        245px
        minmax(0, 1fr);

    min-height: 365px;
}


/* =========================================================
   BRANDS
   ========================================================= */

.fcm-mega-brand-column {
    display: flex;
    flex-direction: column;

    padding:
        23px
        0
        17px;

    border-right:
        1px solid #e7eaec;

    background: #f5f6f6;
}


.fcm-mega-title {
    padding:
        0
        22px
        14px;
}

.fcm-mega-title small {
    display: block;

    margin-bottom: 4px;

    color: var(--fcm-red);

    font-size: .55rem;
    font-weight: 800;

    letter-spacing: .16em;
}

.fcm-mega-title strong {
    display: block;

    color: #17252f;

    font-size: .84rem;
}


/* Brand item */

.fcm-mega-brand-list {
    flex: 1;
}

.fcm-mega-menu .fcm-mega-brand-item {
    min-height: 39px;

    display: grid !important;

    grid-template-columns:
        40px
        1fr
        12px;

    align-items: center;

    gap: 10px;

    padding:
        5px
        18px !important;

    color: #56646c !important;

    transition:
        color .15s ease,
        background-color .15s ease;
}


.fcm-mega-brand-logo {
    width: 38px;
    height: 25px;

    display: flex;
    align-items: center;
    justify-content: center;
}

.fcm-mega-brand-logo img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: contain;
}


.fcm-mega-brand-name {
    overflow: hidden;

    color: inherit;

    font-size: .69rem;
    font-weight: 650;

    white-space: nowrap;

    text-overflow: ellipsis;
}


.fcm-mega-brand-item > i {
    color: #a2abb0;

    font-size: .57rem;
}


.fcm-mega-menu .fcm-mega-brand-item:hover,
.fcm-mega-menu .fcm-mega-brand-item.is-active {
    color: #17252f !important;

    background: #fff !important;
}

.fcm-mega-brand-item:hover > i,
.fcm-mega-brand-item.is-active > i {
    color: var(--fcm-red);
}


/* Todas las marcas */

.fcm-mega-menu .fcm-mega-all-brands {
    display: flex !important;

    align-items: center;
    justify-content: space-between;

    margin:
        15px
        18px
        0 !important;

    padding:
        12px
        4px
        0 !important;

    color: var(--fcm-red) !important;

    border-top:
        1px solid #dde1e3 !important;

    font-size: .64rem !important;
    font-weight: 700 !important;
}


/* =========================================================
   PRODUCTS COLUMN
   ========================================================= */

.fcm-mega-product-column {
    position: relative;

    padding:
        25px
        28px;
}


.fcm-mega-panel {
    display: none;
}

.fcm-mega-panel.is-active {
    display: block;
}


/* Header */

.fcm-mega-panel-header {
    display: flex;

    align-items: end;
    justify-content: space-between;

    gap: 25px;

    margin-bottom: 18px;

    padding-bottom: 15px;

    border-bottom:
        1px solid #e7eaec;
}


.fcm-mega-panel-header small {
    display: block;

    color: var(--fcm-red);

    font-size: .54rem;
    font-weight: 800;

    letter-spacing: .16em;
}


.fcm-mega-panel-header h4 {
    margin:
        3px
        0
        0;

    color: #17252f;

    font-size: 1.15rem;

    line-height: 1.2;
}


.fcm-mega-menu
.fcm-mega-panel-header > a {
    display: flex !important;

    align-items: center;

    gap: 7px;

    color: #66737a !important;

    font-size: .63rem !important;
    font-weight: 700 !important;
}

.fcm-mega-menu
.fcm-mega-panel-header > a:hover {
    color: var(--fcm-red) !important;
}


/* =========================================================
   PRODUCT LIST
   ========================================================= */

.fcm-mega-product-list {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    column-gap: 14px;
    row-gap: 8px;
}


.fcm-mega-menu .fcm-mega-product-item {
    position: relative;

    min-height: 82px;

    display: grid !important;

    grid-template-columns:
        58px
        minmax(0, 1fr)
        15px;

    align-items: center;

    gap: 12px;

    padding:
        8px
        10px !important;

    color: #34444d !important;

    border:
        1px solid #edf0f1 !important;

    background:
        #fff !important;

    transition:
        border-color .18s ease,
        box-shadow .18s ease,
        transform .18s ease;
}


.fcm-mega-menu
.fcm-mega-product-item:hover {
    border-color:
        rgba(164, 29, 33, .27) !important;

    box-shadow:
        0 8px 20px
        rgba(17, 28, 36, .06);

    transform:
        translateY(-2px);
}


/* Image */

.fcm-mega-product-thumb {
    width: 58px;
    height: 60px;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 4px;

    background: #f6f7f7;
}

.fcm-mega-product-thumb img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: contain;
}


/* Name */

.fcm-mega-product-name {
    color: #263640;

    font-size: .69rem;
    font-weight: 650;

    line-height: 1.35;
}


.fcm-mega-product-item > i {
    color: #a6afb4;

    font-size: .65rem;

    transition: color .15s ease;
}

.fcm-mega-product-item:hover > i {
    color: var(--fcm-red);
}


.fcm-mega-empty {
    color: #879197;

    font-size: .75rem;
}


/* =========================================================
   MOBILE / TABLET
   ========================================================= */

@media (max-width: 1199px) {

    /*
     * En móvil dejamos el comportamiento normal:
     * tocar Marcas abre directamente catálogo.
     */

    .fcm-mega-menu {
        display: none !important;
    }

    .fcm-nav-mega > a > i {
        display: none;
    }

}


/* =========================================================
   PRODUCT SPECIAL VARIANTS
   ========================================================= */

.fcm-product-variants {
    padding:
        95px
        0
        105px;

    background: var(--fcm-soft);
}


/* Header */

.fcm-product-variants-header {
    display: flex;

    align-items: end;
    justify-content: space-between;

    gap: 40px;

    margin-bottom: 38px;
}

.fcm-product-variants-header > p {
    max-width: 430px;

    margin: 0;

    color: var(--fcm-gray);

    line-height: 1.75;
}


/* =========================================================
   TABS
   ========================================================= */

.fcm-product-tabs {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    border:
        1px solid var(--fcm-border);

    background: #fff;
}


.fcm-product-tab-button {
    min-height: 72px;

    display: flex;
    align-items: center;

    gap: 14px;

    padding:
        0
        22px;

    border: 0;

    border-right:
        1px solid var(--fcm-border);

    color: #56646c;

    background: #fff;

    font-size: .78rem;
    font-weight: 700;

    text-align: left;

    cursor: pointer;

    transition:
        color .2s ease,
        background-color .2s ease;
}


.fcm-product-tab-button:last-child {
    border-right: 0;
}


.fcm-product-tab-button span {
    color: var(--fcm-red);

    font-size: .62rem;
    font-weight: 800;

    letter-spacing: .10em;
}


.fcm-product-tab-button:hover {
    color: #17252f;

    background: #f7f8f8;
}


.fcm-product-tab-button.is-active {
    color: #fff;

    background: var(--fcm-navy);
}


.fcm-product-tab-button.is-active span {
    color: #df5b60;
}


/* =========================================================
   PANELS
   ========================================================= */

.fcm-product-tab-panels {
    background: #fff;
}


.fcm-product-tab-panel {
    display: none;

    padding:
        55px;
}


.fcm-product-tab-panel.is-active {
    display: block;

    animation:
        fcmProductPanelIn
        .28s ease
        both;
}


@keyframes fcmProductPanelIn {

    from {
        opacity: 0;

        transform:
            translateY(8px);
    }

    to {
        opacity: 1;

        transform:
            translateY(0);
    }

}


/* Image */

.fcm-product-variant-image {
    min-height: 360px;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 35px;

    background: #f4f5f5;
}


.fcm-product-variant-image img {
    width: 100%;
    height: 285px;

    object-fit: contain;
}


/* Copy */

.fcm-product-variant-copy {
    padding-left: 25px;
}


.fcm-product-variant-brand {
    display: block;

    margin-bottom: 9px;

    color: var(--fcm-red);

    font-size: .64rem;
    font-weight: 800;

    letter-spacing: .14em;

    text-transform: uppercase;
}


.fcm-product-variant-copy h3 {
    margin:
        0
        0
        25px;

    color: #17252f;

    font-size:
        clamp(1.9rem, 3vw, 3rem);

    line-height: 1.08;

    letter-spacing: -.035em;
}


.fcm-product-variant-description {
    color: #4f5e66;

    font-size: .90rem;

    line-height: 1.8;
}


.fcm-product-variant-description p {
    margin-bottom: 17px;
}


.fcm-product-variant-description ul {
    margin:
        20px
        0;

    padding-left: 20px;
}


.fcm-product-variant-description li {
    margin-bottom: 7px;
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media(max-width: 991px) {

    .fcm-product-variants-header {
        display: block;
    }

    .fcm-product-variants-header > p {
        margin-top: 15px;
    }

    .fcm-product-tab-panel {
        padding:
            38px
            30px;
    }

    .fcm-product-variant-copy {
        padding-left: 0;
    }

}


@media(max-width: 575px) {

    .fcm-product-variants {
        padding:
            65px
            0;
    }

    .fcm-product-tabs {
        grid-template-columns: 1fr;
    }

    .fcm-product-tab-button {
        border-right: 0;

        border-bottom:
            1px solid var(--fcm-border);
    }

    .fcm-product-tab-button:last-child {
        border-bottom: 0;
    }

    .fcm-product-tab-panel {
        padding:
            28px
            20px;
    }

    .fcm-product-variant-image {
        min-height: 250px;
    }

    .fcm-product-variant-image img {
        height: 200px;
    }

}


/* =========================================================
   LANGUAGE SELECTOR
   ========================================================= */

.fcm-language-selector {
    flex: 0 0 auto;
    margin-left: 8px;
}

.fcm-language-trigger {
    height: 40px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 7px;

    padding: 0 12px;

    border: 1px solid rgba(255,255,255,.35);
    border-radius: 0;

    color: #fff;

    background: transparent;

    cursor: pointer;

    transition:
        border-color .2s ease,
        background-color .2s ease;
}

.fcm-language-trigger:hover {
    border-color: rgba(255,255,255,.75);
    background: rgba(255,255,255,.06);
}

.fcm-language-flag {
    font-size: 1rem;
    line-height: 1;
}

.fcm-language-code {
    font-size: .65rem;
    font-weight: 700;
    letter-spacing: .08em;
}

.fcm-language-trigger i {
    color: rgba(255,255,255,.65);
    font-size: .58rem;
}


/* =========================================================
   LANGUAGE MODAL
   ========================================================= */

.fcm-language-modal {
    width: min(460px, calc(100vw - 30px));

    padding: 0;

    border: 0;

    background: transparent;

    overflow: visible;
}

.fcm-language-modal::backdrop {
    background: rgba(4, 13, 19, .72);

    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
}

.fcm-language-modal-card {
    position: relative;

    padding: 38px;

    background: #fff;

    box-shadow:
        0 35px 90px rgba(0,0,0,.35);

    animation:
        fcmLanguageModalIn
        .22s ease
        both;
}

@keyframes fcmLanguageModalIn {

    from {
        opacity: 0;
        transform: translateY(12px) scale(.98);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }

}


/* Close */

.fcm-language-close {
    position: absolute;

    top: 16px;
    right: 16px;

    width: 36px;
    height: 36px;

    display: grid;
    place-items: center;

    padding: 0;

    border: 0;

    color: #7c898f;

    background: #f3f5f5;

    cursor: pointer;
}

.fcm-language-close:hover {
    color: #fff;
    background: var(--fcm-red);
}


/* Heading */

.fcm-language-heading {
    margin-bottom: 28px;
    padding-right: 35px;
}

.fcm-language-heading > span {
    display: block;

    margin-bottom: 7px;

    color: var(--fcm-red);

    font-size: .57rem;
    font-weight: 800;

    letter-spacing: .16em;
}

.fcm-language-heading h3 {
    margin: 0 0 8px;

    color: #17252f;

    font-size: 1.85rem;

    letter-spacing: -.035em;
}

.fcm-language-heading p {
    margin: 0;

    color: #738087;

    font-size: .78rem;

    line-height: 1.6;
}


/* Options */

.fcm-language-options {
    display: grid;

    gap: 10px;
}

.fcm-language-option {
    min-height: 76px;

    display: grid;

    grid-template-columns:
        48px
        1fr
        30px;

    align-items: center;

    gap: 14px;

    padding: 10px 14px;

    color: #263640;

    border: 1px solid #e2e6e8;

    background: #fff;

    text-decoration: none;

    transition:
        border-color .2s ease,
        background-color .2s ease,
        transform .2s ease;
}

.fcm-language-option:hover {
    color: #17252f;

    border-color: rgba(164,29,33,.35);

    background: #fafafa;

    transform: translateX(3px);
}

.fcm-language-option.is-active {
    border-color: rgba(164,29,33,.35);

    background: rgba(164,29,33,.035);
}


.fcm-language-option-flag {
    width: 46px;
    height: 46px;

    display: grid;
    place-items: center;

    background: #f3f4f4;

    font-size: 1.55rem;
}


.fcm-language-option-copy {
    display: flex;
    flex-direction: column;
}

.fcm-language-option-copy strong {
    color: #17252f;

    font-size: .85rem;
}

.fcm-language-option-copy span {
    margin-top: 3px;

    color: #929da2;

    font-size: .65rem;
}

.fcm-language-option > i {
    justify-self: center;

    color: #a4adb2;

    font-size: .7rem;
}


.fcm-language-check {
    width: 27px;
    height: 27px;

    display: grid;
    place-items: center;

    justify-self: center;

    border-radius: 50%;

    color: #fff;

    background: var(--fcm-red);

    font-size: .70rem;
}


@media(max-width: 575px) {

    .fcm-language-modal-card {
        padding: 32px 22px 24px;
    }

}


/* =========================================================
   FIX DEFINITIVO · NAVEGACIÓN MÓVIL FCM
   ========================================================= */

@media (max-width: 1199.98px) {

    /*
     * backdrop-filter en un ancestro rompe el position:fixed
     * del menú móvil en Chrome/Android.
     */
    .header {
        z-index: 9997 !important;

        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;

        isolation: auto !important;
    }


    /*
     * El menú abierto debe ocupar realmente el viewport.
     */
    body.mobile-nav-active .navmenu {
        position: fixed !important;

        inset: 0 !important;

        width: 100vw !important;
        height: 100vh !important;
        height: 100dvh !important;

        margin: 0 !important;
        padding: 0 !important;

        overflow: hidden !important;

        background: rgba(7, 19, 27, .94) !important;

        z-index: 9998 !important;
    }


    /*
     * Panel blanco de navegación.
     */
    body.mobile-nav-active .navmenu > ul {
        display: block !important;

        position: absolute !important;

        top: 82px !important;
        right: 18px !important;
        bottom: 18px !important;
        left: 18px !important;

        width: auto !important;
        height: auto !important;

        margin: 0 !important;
        padding: 12px 0 !important;

        overflow-x: hidden !important;
        overflow-y: auto !important;

        border-radius: 8px !important;

        background: #ffffff !important;

        z-index: 9999 !important;

        box-shadow:
            0 24px 60px rgba(0, 0, 0, .28) !important;
    }


    /*
     * Botón X siempre sobre el panel.
     */
    body.mobile-nav-active .mobile-nav-toggle {
        position: fixed !important;

        top: 21px !important;
        right: 22px !important;

        margin: 0 !important;

        color: #ffffff !important;

        font-size: 32px !important;
        line-height: 1 !important;

        z-index: 10001 !important;
    }


    /*
     * Hero siempre debajo del menú.
     */
    .fcm-hero,
    .fcm-hero-swiper,
    .fcm-hero-content {
        z-index: auto;
    }

    /* =========================================================
   FIX · TEXTO DEL MENÚ MÓVIL
   ========================================================= */

@media (max-width: 1199.98px) {

    body.mobile-nav-active .navmenu > ul > li {
        display: block !important;
        width: 100% !important;
    }

    body.mobile-nav-active .navmenu > ul > li > a {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;

        width: 100% !important;

        padding: 14px 20px !important;

        color: #17252f !important;
        background: transparent !important;

        font-size: 15px !important;
        font-weight: 600 !important;
        line-height: 1.4 !important;

        opacity: 1 !important;
        visibility: visible !important;

        text-decoration: none !important;
    }

    body.mobile-nav-active .navmenu > ul > li > a:hover,
    body.mobile-nav-active .navmenu > ul > li > a:focus {
        color: #a41d21 !important;
        background: #f5f6f7 !important;
    }

    body.mobile-nav-active .navmenu > ul > li > a.active {
        color: #a41d21 !important;
        background: #f7f2f2 !important;
    }

    body.mobile-nav-active .navmenu > ul > li > a i {
        color: #66747e !important;
    }
}
}
