/* General Styles */
:root {
    --keystone-red: #c8102e;
    --keystone-dark-red: #a00d23;
    --keystone-light-red: #da2128;
    --keystone-gray: #dededc;
    --keystone-dark-gray: #4a4a4a;
    --keystone-light-gray: #dadada;
    --keystone-midium-gray: #585852;
    --keystone-blue: #0077b5;
    --keystone-light-blue: #14a9cb;
    --keystone-navbar-height: 72px;
}

/* Scroll margin for sections */
[id] {
    scroll-margin-top: calc(var(--keystone-navbar-height) - 10px);
}

body {
    font-family: Arial, sans-serif;
    color: #333;
    margin-top: 72px;
}

/* Navbar */
/* Custom Styles */
.navbar {
    background-color: white; /* White background */
    height: var(--keystone-navbar-height);
    padding: 0;
}

.navbar-brand img {
    height: 60px; /* Adjust logo size */
}

.nav-item {
    padding: 0 1rem;
}

.nav-item:hover {
    background-color: var(--keystone-red);
    color: #ffffff !important;
}

.nav-item.active {
    background-color: var(--keystone-red) !important;
}

.nav-item .nav-link {
    padding: 1.5rem;
}

.nav-link {
    color: #595959 !important; /* Grayish text */
    font-weight: bold;
    /*padding: 10px 15px;*/
}

.nav-link:hover {
    color: black !important;
}

.nav-item:hover .nav-link, .nav-item:hover .nav-link:hover {
    color: #ffffff !important;
}

/* Estilos para el nav-item activo */
.nav-item.active .nav-link {
    /*background-color: var(--keystone-dark-red) !important;*/
    color: white !important;
}

/* Ajuste para dropdowns */
.nav-item.dropdown.active .nav-link {
    /*background-color: var(--keystone-dark-red) !important;*/
    color: white !important;
}

/* Ajuste para el botón de dropdown */
.nav-item.dropdown.active .dropdown-toggle {
    color: white !important;
}

/* Mostrar dropdown del nav-item activo */
.nav-item.dropdown:hover .dropdown-menu {
    display: block !important;
    position: absolute;
    top: 100%;
    left: 0;
    margin-top: 0;
    background-color: var(--keystone-dark-red);
    border: none;
    border-radius: 0 0 10px 10px;
    padding: 0;
    width: 100%;
    min-width: 100%;
}

.nav-item.dropdown.active li {
    padding: 0;
    width: 100%;
}

.nav-item.dropdown .dropdown-item {
    color: white;
    font-size: 12px;
    width: 100%;
    padding: 0.3rem 0.5rem;
}

.nav-item.dropdown .dropdown-item:hover {
    background-color: rgba(255, 255, 255, 0.1);
    color: white;
}

.nav-item.dropdown .dropdown-item.active {
    background-color: var(--keystone-light-red) !important;
}

/* Ajuste para el contenedor del dropdown */
.nav-item.dropdown {
    position: relative;
    display: flex;
    align-items: center;
}

.nav-item.dropdown .nav-link {
    margin-right: 0;
    width: 100%;
    text-align: center;
}

.nav-item.dropdown .dropdown-toggle {
    background: none;
    border: none;
}

.nav-item.dropdown .dropdown-toggle::after {
    margin-left: 0;
}

.customer-portal {
    display: block;
    width: 95px;
}

/* Hero section */
.hero-section {
    /*margin-top: 72px !important;*/
    height: 400px;
    position: relative;
    color: white;
    text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.5);
    background-color: var(--keystone-gray);
}

.hero-section.history {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-color: var(--keystone-gray);
    background-image: url('../images/about/1935KeystoneBaja.png');
}

.hero-section.full-height {
    height: calc(100vh - var(--keystone-navbar-height));
    min-height: 536px;
    /*max-height: 855px;*/
    display: flex;
    flex-direction: column;
}

.hero-section.full-height::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(107, 127, 137, 0.7);
}

.hero-section.history.full-height::before {
    background-color: unset;
}

/*.hero-section.history.full-height::after {*/
/*    content: '';*/
/*    position: absolute;*/
/*    top: 0;*/
/*    left: 0;*/
/*    width: 100%;*/
/*    height: 109%;*/
/*    !*background-color: rgba(107, 127, 137, 0.7);*!*/
/*    border-bottom: 50px solid var(--keystone-gray);*/
/*}*/

.hero-section .hero-body {
    max-height: 650px;
    min-height: 310px;
}

.hero-section > .container {
    position: relative;
    z-index: 2;
    flex: 1;
    display: flex;
    align-items: center;
}

.hero-section .container-fluid {
    margin-top: auto;
    background-color: var(--keystone-dark-gray);
    padding: 20px 0;
    text-shadow: none;
}

.hero-section .container-fluid .container {
    margin-top: -40px;
}

.hero-section .container-fluid .row {
    margin-top: 0;
    align-items: flex-start !important;
    position: relative;
}

.hero-section .container-fluid .col-md-6 {
    padding-top: 0;
}

.hero-section .container-fluid .text-start span {
    background-color: var(--keystone-dark-red);
}

.hero-section .container-fluid p.text-justify {
    text-align: justify !important;
}

.hero-section .hero-title {
    font-weight: bolder;
}

/* .hero-section .container-fluid .about-buttons {
    gap: 5rem;
} */

.hero-section .container-fluid .about-buttons i {
    font-size: 25px;
}

.hero-section .container-fluid .about-buttons .btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
}

.hero-section .container-fluid .about-buttons span {
    padding: 10px;
    border-radius: 5px;
    background-color: #ffffff;
    color: var(--keystone-dark-gray);
    font-weight: bold;
    white-space: nowrap;
}

.hero-section .container-fluid .about-buttons .sustainability-button {
    background-color: var(--keystone-light-blue);
    color: #ffffff;
}

.hero-section .linkedin-icon {
    bottom: 0;
}

/* About section */
.about-section {
    background-color: #595959;
    color: white;
    padding: 20px 0;
    text-align: center;
}

.about-section h2 {
    background-color: #a02621; /* Dark red */
    color: white; /* White text */
    font-size: 35px; /* Font size */
    font-weight: bold;
    padding: 2px 30px;
    border-radius: 8px; /* Rounded corners */
    display: inline-block; /* Prevents full width */
}

.about-section p {
    font-size: 20px;
}

/* Red banner section */
.red-banner-section {
    background: linear-gradient(135deg, var(--keystone-dark-red) 0%, var(--keystone-red) 100%);
    padding: 20px 30px;
    height: 85px;
    display: flex;
    align-items: center;
}

/* Blue banner section */
.blue-banner-section {
    background: linear-gradient(135deg, var(--keystone-light-blue) 0%, var(--keystone-light-blue) 100%);
    padding: 20px 30px;
    height: 85px;
    display: flex;
    align-items: center;
}

/* Products section */
.products-section {
    background-color: #595959;
    padding: 20px 30px;
}

.products-section .small-card {
    width: 100%;
}

.products-section .small-card.brand a {
    background-color: var(--keystone-dark-red);
    font-size: 13px;
}

.products-section .small-card.brand a.waste {
    background-color: var(--keystone-light-blue);
}

.products-section .small-card.brand img {
    width: 145px;
}

.products-section .small-card.img img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    object-position: center;
}

.products-section .flex-container .row {
    height: 232px;
}

.products-section .flex-container .row:nth-child(2) {
    background-color: var(--keystone-gray);
}

.products-section .card-body img.product-image {
    max-width: 80% !important;
}

.products-section .card-body img:last-of-type {
    min-width: 100%;
    height: 300px;
    object-fit: cover;
    object-position: center;
}

.products-section .card-body h5 {
    color: var(--keystone-dark-red);
}

.products-section .card-body p {
    min-height: 120px;
}

.products-section .card-body a {
    background-color: var(--keystone-dark-red);
}

.products-section .col-md-4:nth-child(3) .card-body a {
    background-color: var(--keystone-light-blue);
}

.products-section .card-body a:hover {
    background-color: var(--keystone-red);
}

.products-section .col-md-4:nth-child(3) .card-body a:hover {
    background-color: var(--keystone-blue);
}

/* Out people section */
.ourpeople-section, .projects-section {
    background-color: white;
    padding: 4rem 0;
}

.ourpeople-section .lead {
    font-size: 1.3rem;
    line-height: 1.4;
    margin-bottom: 2rem;
    text-align: justify;
    color: var(--keystone-dark-gray);
}

.projects-section .lead {
    text-align: left;
    font-weight: bold;
}

.ourpeople-section .career-card, .projects-section .career-card {
    background-color: var(--keystone-dark-gray);
    border-radius: 8px;
    margin-top: 1rem;
    width: 100%;
    max-width: 300px;
}

.ourpeople-section .career-card p, .projects-section .career-card p {
    font-size: 1.1rem;
    margin-bottom: 0.5rem;
}

.ourpeople-section .career-card .btn-danger {
    background-color: var(--keystone-dark-red);
    border: none;
    padding: 0.5rem 1rem;
    font-weight: bold;
    transition: background-color 0.3s ease;
}

.ourpeople-section .career-card .btn-danger:hover {
    background-color: var(--keystone-red);
}

.ourpeople-section .worker-images .image-container {
    width: 100%;
    height: 300px;
    overflow: hidden;
}

.ourpeople-section .worker-images .img-fluid {
    width: 100%;
    height: 300px;
    object-fit: cover;
    object-position: center;
}

.ourpeople-section .worker-images .image-container .img-fluid {
    width: 100%;
    height: 300px;
    object-fit: cover;
    object-position: right;
    transform-origin: right top;
    transform: scale(1.4);
}

.ourpeople-section .worker-images .col-6:nth-child(2) .img-fluid {
    object-position: 65%;
}

.ourpeople-section .row.g-3, .projects-section .row.g-3 {
    --bs-gutter-x: 0.5rem;
    --bs-gutter-y: 0.5rem;
}

.ourpeople-section .flex-container .workers .image-container {
    width: 100%;
    height: 200px;
    overflow: hidden;
}

.ourpeople-section .flex-container .workers img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    object-position: top center;
}

.ourpeople-section .flex-container .workers .image-container img {
    object-position: right;
    transform-origin: right top;
    transform: scale(1.2);
}

.ourpeople-section .flex-container .lead {
    font-size: 1rem;
}

/* History section */
.hero-section.history {
    position: unset;
    border-bottom: 60px solid var(--keystone-light-gray);
}

.hero-section.full-height.history {
    min-height: 650px;
    height: 0;
}

.history-section {
    position: relative;
    min-height: 100vh;
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    filter: grayscale(100%);
    padding: 4rem 0;
}

.history-section .overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.8);
    z-index: 1;
}

.history-section h1 {
    position: relative;
    z-index: 2;
    color: white;
    text-align: center;
    font-size: 3.5rem;
    font-weight: bold;
    margin-bottom: 3rem;
    text-transform: uppercase;
}

.timeline {
    /*position: relative;*/
    z-index: 2;
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    gap: 2rem;
    padding: 0 1.5rem;
    top: 5%;
}

.timeline-column {
    flex: 1;
    /*background-color: rgba(169, 169, 169, 0.1);*/
    background-color: var(--keystone-dark-gray);
    border-radius: 0.5rem;
    padding: 0.5rem;
}

.timeline-item {
    margin: 0.5rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid white;
}

.timeline-item:last-child {
    margin-bottom: 0;
    border-bottom: none;
}

.year {
    color: white;
    /*font-size: 1.5rem;*/
    font-weight: bold;
    /*margin-bottom: 0.5rem;*/
}

.description {
    color: white;
    font-size: 0.95rem;
    line-height: 1.6;
}

/* History Mobile */
.history-mobile {
    color: white;
    text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.5);
}

.history-mobile .image-history {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-color: var(--keystone-gray);
    background-image: url('../images/about/1935KeystoneBaja.png');
}

.history-mobile .timeline .timeline-column {
    border-radius: unset;
}

.projects-section.projects-section-mobile .img-fluid {
    width: 100%;
    height: 400px;
    object-fit: cover;
    object-position: center;
}

.projects-section.projects-section-mobile .project-overlay {
    left: 2px;
    right: 2px;
}

.projects-section.projects-section-mobile .project-card.bottom .project-overlay {
    align-items: flex-start;
    background: linear-gradient(to top, transparent 20%, transparent 50%, rgba(0, 0, 0, 0.5) 100%);
}

/* Project page */
.product-section-header .header h4 {
    width: 135px;
    line-height: 1rem;
    text-align: right;
    color: var(--keystone-midium-gray);
}

.product-section {
    background-color: var(--keystone-gray);
}

.product-section .container {
    background-color: #ffffff;
}

.project-card {
    position: relative;
}

.projects-section .project-images .img-fluid {
    width: 100%;
    height: 400px;
    object-fit: cover;
    object-position: center;
}

.project-overlay {
    position: absolute;
    top: 0;
    left: 4px;
    right: 4px;
    bottom: 0;
    display: flex;
    align-items: flex-end;
    padding: 1rem;
    background: linear-gradient(
            to bottom,
            transparent 20%,
            transparent 50%,
            rgba(0, 0, 0, 0.5) 100%
    );
}

.project-title {
    color: white;
    font-size: 0.9rem;
    font-weight: bold;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
    z-index: 1;
}

.product-section#cement-products .product-type-label .row > div {
    background-color: var(--keystone-dark-gray);
    color: #ffffff;
}

.product-section#cement-products .product-type-label .row > div h4,
.product-section#cement-products .product-type-label .row > div h3,
.product-section#cement-products .product-type-label .row > div h2 {
    font-weight: 900;
}

.product-section#cement-products .product-type-label:first-child .row > div:nth-child(3) {
    background-color: #da2128;
}

.product-section#cement-products .product-type-label:first-child .row > div:nth-child(4) {
    background-color: #004879;
}

.product-section#cement-products .product-type-label:first-child .row > div:nth-child(3) .value,
.product-section#cement-products .product-type-label:first-child .row > div:nth-child(4) .value {
    line-height: 25px;
}

.product-section#cement-products .product-type-label.img .row > div {
    padding-left: 0 !important;
    padding-right: 0 !important;
    background-color: transparent !important;
}

.product-section#cement-products .product-type-label.img img {
    height: 75px !important;
    width: 100% !important;
}

/* Sustainability section */
.sustainability-section {
    background-color: var(--keystone-gray);
}

.sustainability-item {
    padding: 2rem;
    height: 100%;
    transition: transform 0.3s ease;
}

.sustainability-item:hover {
    transform: translateY(-5px);
}

.sustainability-item .icon img {
    width: 100px;
}

.sustainability-item h4 {
    font-weight: 600;
    color: var(--keystone-dark-gray) !important;
}

.sustainability-item p {
    font-size: 0.95rem;
    line-height: 1.6;
    color: var(--keystone-midium-gray);
}

/* Associations section */
.associations-section {
    /*background-color: #f8f9fa;*/
    background-color: #ffffff;
    border-top: 1px solid #e9ecef;
}

.associations-section img {
    max-height: 80px;
    width: auto;
    align-items: center;
}

.associations-section img.bath {
    max-height: 400px;
}

/* Products Section*/
/* Banner Section */
.products-banner {
    background-image: url('../images/hero_img/hero1.jpg');
    background-size: cover;
    background-position: center;
}

.banner-content {
    background-color: #ffffff;
}

.banner-logo {
    max-height: 150px;
    width: auto;
}

.banner-text {
    max-width: 600px;
}

.banner-text p {
    font-size: 1.1rem;
    color: var(--keystone-midium-gray);
}

.phone-number {
    font-size: 2rem;
    font-weight: bold;
    color: var(--keystone-dark-gray);
}

.made-in-badge {
    height: 120px;
    width: auto;
    position: relative;
    top: 80px;
}

/* Bag Product Section */
.product-section.bag-products .container {
    background-color: var(--keystone-gray);
}

.product-section.bag-products.colored-masonry .container {
    background-color: transparent;
}

.product-card {
    padding: 1rem;
}

.product-card .card-badge {
    bottom: -30px !important;
    left: -35px !important;
    line-height: 1rem;
}

.product-card .card-badge span {
    font-size: 1.5rem;
    font-weight: bold;
}

.product-image-container {
    background-color: white;
    padding: 1rem;
    margin-bottom: 1rem;
    border: 3px solid var(--keystone-dark-gray);
    border-radius: 15px;
}

.product-image-container img {
    max-height: 300px;
    width: auto;
}

/* Bag Product Section Colored Masonry */
.product-section.bag-products.colored-masonry {
    background-image: url("../images/products/wall_blocks.png");
    background-position: right;
    background-repeat: no-repeat;
    background-size: contain;
}

.product-section.bag-products.colored-masonry p:last-child {
    color: var(--keystone-dark-gray);
    font-weight: bold;
}

/* Aggregates Product Section */
.aggregates {
    background-image: url("../images/products/aggregates.jpg");
    background-size: cover;
    background-position: center;
    position: relative;
    overflow-x: hidden;
}

.aggregates .container, .aggregates .container .row {
    min-height: 230px;
}

.aggregates .container .header {
    background-color: var(--keystone-dark-red);
    color: white;
    position: absolute;
    left: -10px;
    top: 50px;
    width: 200%;
    padding: 10px;
}

.aggregates.mobile .container-fluid {
    background-color: var(--keystone-dark-red);
}

.aggregates.mobile .container, .aggregates.mobile .container .row {
    min-height: unset;
}

.aggregates.mobile img {
    max-width: 150px;
}

.aggregates.mobile .container .header {
    position: unset;
    width: unset;
}

.aggregates .container p {
    color: var(--keystone-midium-gray);
}

.aggregates .container h4 {
    color: var(--keystone-dark-gray);
}

.type-badge {
    height: 40px;
    width: auto;
}

.product-standards {
    margin-top: 1rem;
    font-size: 0.9rem;
    color: #666;
}

.product-standards p:first-child {
    font-weight: bold;
}

h2.text-secondary {
    font-size: 1.75rem;
    font-weight: bold;
}

/* Waste Section*/
/* Banner Section */
.waste-banner {
    background-image: url('../images/waste/waste-banner.jpg');
    background-size: cover;
    background-position: center;
}

.waste-banner h2 {
    color: var(--keystone-light-blue);
    font-weight: 900 !important;
}

/* Waste Sections */
.waste-section {
    background-color: var(--keystone-gray);
}

.waste-section .container {
    background-color: #ffffff;
}

.product-section.bag-products.colored-masonry .container {
    background-color: transparent;
}

.waste-contact {
    background-color: var(--keystone-dark-gray);
    color: #ffffff;
    font-weight: 900 !important;
}

.waste-contact .container {
    background-color: transparent;
}

/* Footer */
.footer-section {
    background-color: var(--keystone-dark-red);
}

.footer-section img {
    filter: brightness(0) invert(1);
    max-height: 100px;
}

.footer-section .vertical-divider {
    width: 1px;
    height: 100%;
    background-color: rgba(255, 255, 255, 1);
}

.footer-section .location-info {
    font-size: 0.9rem;
    line-height: 1.4;
}

.footer-section .location-info p {
    padding-left: 1.5rem;
    position: relative;
}

.footer-section .location-info i {
    position: absolute;
    left: 0;
    top: 0.2rem;
}

.footer-section h6 {
    font-size: 1rem;
    text-transform: uppercase;
}

.footer-section .fs-4 {
    font-size: 1.5rem !important;
}

.footer-section .terms-area a, .footer-section .terms-area span {
    font-size: 12px !important;
}

.footer-bottom {
    font-size: 1rem;
    background-color: var(--keystone-dark-red);
}

.footer-bottom .gap-3 > * {
    margin: 0 0.5rem;
}

.z-2 {
    z-index: 2 !important;
    position: relative;
}

#hero-video {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: translate(-50%, -50%);
}

.hero-section-interior {
    /*background-image: url('../images/front/concreto.jpg'); !* Replace with actual image *!*/
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-color: darkgrey;
    height: 400px;
    position: relative;
    color: white;
    text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.5);
}

.mt-15 {
    margin-top: 15px;
}

.mt-30 {
    margin-top: 30px;
}

.max-w-container {
    max-width: 1115px;
}

.contacto input, .contacto select, .contacto textarea {
    --bs-border-opacity: 1;
    border-color: #948e8e;
}

.text-decoration-none {
    text-decoration: none !important;
}

@media (min-width: 1500px) and (max-width: 1870px) {
    .product-section.bag-products.colored-masonry {
        background-position: 120% !important;
    }
}

@media (min-width: 1350px) and (max-width: 1499px) {
    .product-section.bag-products.colored-masonry {
        background-position: 135% !important;
    }
}

@media (min-width: 1200px) and (max-width: 1349px) {
    .product-section.bag-products.colored-masonry {
        background-position: 160% !important;
    }
}

@media (min-width: 1081px) and (max-width: 1199px) {
    .product-section.bag-products.colored-masonry {
        background-position: 140% !important;
    }
}

@media (min-width: 993px) and (max-width: 1080px) {
    .hero-section.full-height.history {
        min-height: 700px !important;
    }

    .product-section.bag-products.colored-masonry {
        background-position: 150% !important;
    }
}

@media (min-width: 901px) and ( max-width: 992px) {
    .product-section.bag-products.colored-masonry {
        background-position: 170% !important;
    }
}

@media (min-width: 768px) and (max-width: 991px) {
    .product-section .product-type-label h2 {
        font-size: calc(1.2rem + .3vw);
    }

    .product-section .product-type-label h3, .product-section .product-type-label h5 {
        font-size: calc(1rem + .3vw);
    }

    .product-section .product-type-label h4 {
        font-size: calc(0.8rem + .3vw);
    }

    .product-section p.text-end {
        font-size: 0.9rem !important;
    }

    .product-section#cement-products .product-type-label.img img {
        height: auto !important;
    }
}

@media (min-width: 1200px) {
    .h1, h1 {
        font-size: 3.2rem;
    }
}

@media (max-width: 992px) {
    .timeline {
        flex-direction: column;
    }

    .timeline-column {
        margin-bottom: 2rem;
    }

    .timeline-column:last-child {
        margin-bottom: 0;
    }

    .history-section h1 {
        font-size: 2.5rem;
    }

    .navbar {
        min-height: var(--keystone-navbar-height);
    }

    #navbarNav {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        z-index: 999;
        background-color: var(--keystone-red);
        padding: 0;
    }

    .navbar .container {
        position: relative;
    }

    .customer-portal {
        position: absolute;
        right: 15px;
        top: 50%;
        transform: translateY(-50%);
    }

    .navbar-toggler {
        margin-right: 125px; /* Dar espacio para el botón del portal */
    }

    .nav-item.dropdown .nav-link, .nav-link {
        text-align: left;
        color: white !important;
        padding: 15px 5px;
    }

    .nav-item .nav-link {
        padding: 10px 5px;
    }

    .nav-item.dropdown .nav-link {
        display: flex;
        justify-content: space-between;
        align-items: center;
        width: 100%;
    }

    .dropdown-menu {
        display: none;
        position: static; /* Evita problemas con el flujo del documento */
        margin-left: 15px; /* Margen a la izquierda para diferenciar el submenú */
        width: auto; /* Ajusta el ancho según el contenido */
    }

    .dropdown-menu {
        /* background-color: rgba(0, 0, 0, 0.1); */
        margin: 0;
        padding: 0;
        border: none;
    }

    .dropdown-item {
        padding: 10px 15px;
        color: white !important;
    }

    .dropdown-menu.show {
        display: block;
    }

    .nav-item.dropdown {
        position: relative;
    }

    .nav-item.dropdown > a {
        display: block;
        width: 100%;
    }

    .nav-item.sub-item {
        background-color: var(--keystone-dark-red);
        font-size: 0.9rem;
        padding-left: 1.5rem;
    }

    .nav-item.sub-item a {
        padding: 8px 5px;
    }

    .sustainability-item {
        padding: unset;
    }

    .products-banner.mobile .made-in-badge {
        height: 100px;
        top: -75px;
    }

    .products-banner.mobile .text-end {
        height: 0;
    }
}

@media (max-width: 900px) {
    .product-section.bag-products.colored-masonry {
        background-position: 240% !important;
    }
}

@media (max-width: 768px) {
    .associations-section img {
        max-height: 60px;
    }

    .hero-section .hero-body {
        min-height: 390px;
    }

    .hero-section.full-height {
        height: auto !important;
    }

    .hero-section .linkedin-icon {
        bottom: -100px;
    }

    .banner-content .row {
        flex-direction: column;
        text-align: center;
    }

    .products-banner.mobile .banner-content .row,
    .waste-banner.mobile .banner-content .row {
        flex-direction: unset;
        text-align: left;
    }

    .products-banner.mobile .banner-logo,
    .waste-banner.mobile .banner-logo {
        max-width: 150px;
        height: auto !important;
    }

    .products-banner.mobile .banner-text p {
        font-size: 1rem;
    }

    .products-banner.mobile .banner-text h2 {
        font-size: 1.8rem;
    }

    .products-section {
        padding: 0 !important;
    }

    .col-md-4.text-end {
        text-align: center !important;
        margin-top: 1rem;
    }

    .banner-logo {
        height: 60px;
    }

    .products-banner.mobile .made-in-badge {
        height: 80px;
        top: -55px;
    }

    .products-banner.mobile .text-end {
        height: 0;
    }

    .banner-text {
        margin: 0 auto;
    }

    .product-section.bag-products.colored-masonry {
        background-image: none;
    }

    .product-card, .product-image-container {
        padding: 0.5rem;
        margin-bottom: 0;
    }

    .product-card .card-badge {
        bottom: -45px !important;
        left: -20px !important;
        padding: 0.5rem !important;
        font-size: 0.8rem !important;
    }

    .product-card .card-badge span {
        font-size: 1.2rem !important;
    }

    .product-standards, .product-standards span {
        font-size: 0.8rem !important;
    }

    .product-section#cement-products .product-type-label.img img {
        height: auto !important;
    }
}

@media (max-width: 576px) {
    .products-banner.mobile > .container,
    .aggregates.mobile > .container,
    .product-section > .container,
    .waste-banner > .container,
    .waste-section > .container {
        width: 90% !important;
    }


}

@media (max-width: 470px) {
    .product-section .product-type-label h2 {
        font-size: calc(1.2rem + .3vw);
    }

    .product-section .product-type-label h3, .product-section .product-type-label h5 {
        font-size: calc(1rem + .3vw);
    }

    .product-section .product-type-label h4 {
        font-size: calc(0.8rem + .3vw);
    }

    .product-section p.text-end {
        font-size: 0.9rem !important;
    }
}

@media (max-width: 410px) {
    .navbar-brand img {
        height: 45px;
    }

    .navbar-toggler {
        margin-right: 100px !important;
    }

    .customer-portal {
        right: 5px !important;
    }

    .customer-portal img {
        width: 75% !important;
    }

    .hero-section .linkedin-icon {
        bottom: -80px !important;
    }

    .hero-section .container-fluid .about-buttons span {
        font-size: 15px;
    }

    .hero-section .container-fluid .about-buttons a:last-child {
        padding-left: 5px;
    }

    .associations-banner {
        height: unset;
    }

    .associations-section img {
        max-height: 80px;
    }

    .hero-section .container-fluid .about-buttons span {
        font-size: 12px;
    }

    .product-section.bag-products.colored-masonry p {
        font-size: 0.8rem;
    }
}

@media (max-width: 375px) {
    .customer-portal {
        right: -20px !important;
    }

    .navbar-toggler {
        margin-right: 70px !important;
    }

    .product-card .card-badge {
        bottom: -45px !important;
        left: -23px !important;
        padding: 0.3rem !important;
        font-size: 0.8rem !important;
    }

    .product-card .card-badge span {
        font-size: 1.2rem !important;
    }

    .products-banner.mobile .banner-text h2 {
        font-size: 1.4rem;
    }

    .waste-contact h4 {
        font-size: calc(1.1rem + .3vw);
    }

    .waste-contact h3 {
        font-size: calc(1rem + .3vw);
    }
}