/* Top titles CTA block */
.titles {
    /* background: linear-gradient(to bottom, #7F8EBB, #333B51); */
    background: linear-gradient(to bottom, #3C3C3C, #121212);
}

.titles .cta {
    height: 44.1rem;

    display: flex;
    flex-direction: column;
    align-items: start;
    justify-content: center;
    gap: 3.2rem;

    position: relative;
    isolation: isolate;
}
.titles .cta::after {
    content: "";
    position: absolute;
    inset: 0; right: -10rem;
    
    background-image: url("/main-image.png");
    background-repeat: no-repeat;
    background-position: right center;
    background-size: contain;

    z-index: -1;
}

.titles h1,
.titles h1 * {
    max-width: 18ch;

    font-family: "Druk", Arial, Helvetica, sans-serif;
    font-size: 6.3rem;
    font-weight: 900;
    font-style: italic;
    line-height: 1.10;

    text-transform: uppercase;
    color: #fff;
}
.titles h1 b {
    color: var(--accent-yellow);
}

.titles h2 {
    max-width: 44rem;

    font-size: 1.8rem;
    /* font-weight: 300; */
    color: var(--font-color-500);
    opacity: 0.6;
}

main h3 {
    font-family: "Druk", Arial, Helvetica, sans-serif;
    font-size: 3.2rem;
    font-weight: 900;
    font-style: italic;
    line-height: 1.20;

    text-transform: uppercase;
    color: var(--font-color-500);
}

main .search-group {
    margin-block: 4.7rem;
    padding-bottom: 4.7rem;
    border-bottom: 1px solid #272727;
}

main .search-group-box {
    display: grid;
    place-items: center;
    gap: 2rem;
}

/* Header search + button */
main .search-group .main-search-group {
    --h1: 5rem;
    width: 100%;

    position: relative;
    isolation: isolate;
    overflow: hidden;
}

main .search-group input#main-search {
    padding: 1.4rem calc(var(--h1) + 0.5rem) 1.4rem 1.1rem;
    width: 100%;

    font-size: 1.8rem;
    color: #9F9F9F;
    
    background-color: unset;

    border: 2px solid #2F2F2F;
    border-radius: 5px;
}

main .search-group .main-search-group #main-search-btn {
    width: var(--h1);
    aspect-ratio: 1;

    display: flex;
    align-items: center;
    justify-content: center;

    border: unset;
    background-color: var(--accent-green);

    position: absolute;
    top: 2px; right: 2px;
    border-top-right-radius: 3px;
    border-bottom-right-radius: 3px;
}

main .search-group input#main-search:placeholder-shown {
    padding: 1.4rem 1.1rem;
}
main .search-group input#main-search:placeholder-shown + #main-search-btn {
    display: none;
    z-index: -1;
}


main .search-group .search-criteria {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
}
main .search-group .search-criteria button {
    padding: 1.2rem 2.4rem;
    display: inline-block;

    font-family: "Druk", Arial, Helvetica, sans-serif;
    font-size: 1.4rem;
    font-weight: 900;
    font-style: italic;
    line-height: 1;
    letter-spacing: 0.6px;

    text-transform: uppercase;
    color: var(--font-color-500);

    background-color: unset;

    border: 1px solid #F7E821;
    border-radius: 5px;
}

/* Shop by makes/models */
main .shop-by-model {
    margin-block: 8.8rem;
}

main .shop-by-model .shop-by-model-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 4.4rem;
}
main h4 {
    width: fit-content;

    font-family: "Druk", Arial, Helvetica, sans-serif;
    font-size: 4.4rem;
    font-weight: 900;
    font-style: italic;
    line-height: 1.20;

    text-transform: uppercase;
    border-bottom: 2px solid #F7E821;    

    color: var(--font-color-500);
}
main h4.-no-underline {
    text-decoration: none;
    border: unset;
}
main h4.-center {
    margin-inline: auto;
    text-align: center;
}

main .shop-by-model .models-controler,
main #catalog .catalog-controler {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.2rem;
}

main .shop-by-model .models-controler button,
main #catalog .catalog-controler button {
    width: 3.5rem;
    aspect-ratio: 1;

    display: flex;
    align-items: center;
    justify-content: center;
       
    background-color: var(--accent-green);
    border-radius: 5px;
    border: unset;
}

main .models-horiz-scroller {
    --space: 2.4rem;

    margin-inline: auto;
    padding: var(--space) 1rem;

    width: fit-content;
    max-width: 100%;

    display: flex;
    align-items: center;
    gap: var(--space);

    scroll-snap-type: inline mandatory; /* or x, or both, and proximity */
    scroll-behavior: smooth;
    scrollbar-width: thin;
    
    overflow-x: auto;
    overscroll-behavior-inline: contain;
}

main .models-horiz-scroller .model-card,
main .catalog-box .category-card {
    padding: 1.6rem;

    display: grid;
    grid-template-rows: min-content;
    gap: var(--space);

    text-decoration: none;

    scroll-snap-align: start; /* or center, or end */
    scroll-margin-left: 1rem; /* Optional: adds a margin before snapping */
}
main .models-horiz-scroller .model-card-image,
main .catalog-box .category-card-image {
    margin: auto;
    padding: 1.2rem;

    width: 17.5rem;
    height: 13.12rem;
    
    display: flex;
    align-items: center;
    justify-content: center;

    background: linear-gradient(to bottom, #242424, #3B3B3B);
    border-radius: 5px;

    overflow: hidden;
}

main .models-horiz-scroller .model-card img,
main .catalog-box .category-card img {
    width: 100%;
    object-fit: contain;
}

main .models-horiz-scroller .model-card .model-label,
main .catalog-box .category-card .category-label {
    font-size: 1.8rem;
    text-align: center;
    text-transform: capitalize;
    color: var(--font-color-500);
}

main .catalog-box .category-card {
    border: 1px solid #242424;
    border-radius: 5px;
}
main .catalog-box .category-card .category-label {
    margin-inline: auto;
    text-wrap: balance;
    text-align: center;
}
main .catalog-box .category-card .category-label[data-large="false"] {
    width: 18rem;
}
main .catalog-box .category-card .category-label[data-large="true"] {
    width: 12rem;
}


/* About us */
main #about-us {
    padding-block: 6.4rem;
    background-color: #201F21;

    position: relative;
    isolation: isolate;
}
main #about-us::after {
    content: "";

    position: absolute;
    inset: 0;

    background-image: url("/AboutUs/about-us.png");
    background-position: right bottom;
    background-repeat: no-repeat;

    opacity: 0.1;
    z-index: -1;
}
main #about-select {
    display: none;

    padding: 2.3rem 2.6rem;
    width: min(36.7rem, 100%);
    margin-inline: auto;

    font-size: 1.8rem;
    color: var(--font-color-500);
    background-color: var(--color1);
    border: none;
}
main #about-us .about-us-inner {
    display: flex;
    align-items: start;
    gap: 4.7rem;
}
main #about-us .about-nav {
    display: grid;
    gap: 1px;
}

main #about-us .about-nav label[name="about-toggler"] {
    padding: 2.3rem 2.6rem;
    width: 26.7rem;

    font-size: 1.8rem;
    line-height: 1.25;
    color: var(--font-color-500);

    background-color: var(--color1);
    cursor: pointer;

    isolation: isolate;
    position: relative;
}
main #about-us .about-nav label[name="about-toggler"]:after {
    content: "";
    position: absolute;
    inset-block: 0;
    width: 6px; right: -2px;

    opacity: 0;
    transition: opacity 0.35s;

    background-color: #F7E821;
    border-top-right-radius: 2px;
    border-bottom-right-radius: 2px;

    z-index: 1;
}
main #about-us .about-nav label[name="about-toggler"].-active-label:after {
    opacity: 1;
}
main #about-us .about-nav label[name="about-toggler"]:not(.-active-label):hover:after {
    opacity: 0.1;
}

main #about-us .nav-content input[name="__about-us-group"] {
    display: none;
}
main #about-us .nav-content:not(:has(input[name="__about-us-group"]:checked)) {
    display: none;
}

main #about-us .nav-content {
    display: grid;
    align-items: start;
    gap: 2rem;
}
main #about-us .nav-content .nav-content-box {
    display: grid;
    gap: 2.6rem;
}
main #about-us .nav-content .nav-content-box *:is(p, b, li) {
    font-size: 1.4rem;
    font-weight: 400;
    line-height: 1.35;
    text-wrap: balance;
    color: var(--font-color-300);
}
main #about-us .nav-content .nav-content-box b {
    font-weight: 400;
    color: var(--font-color-400);
}
main #about-us .nav-content .nav-content-box li {
    margin-left: 2rem;
}



@media (max-width:960px) {
    main #about-us .about-us-inner {
        display: grid;
        gap: 2rem;
    }
    main #about-select {
        /* block-size: 7rem; */
        display: flex;
        align-items: center;
        /* display: block; */
    }
    main #about-select option {
        font-size: 1.8rem;
        color: var(--font-color-500);
        background-color: var(--color1);
        border: none;
    }
    main #about-us .about-nav {
        display: none;   
    }
}


/* Catalog */
main #catalog {
    --space: 1.6rem;

    margin-block: 8.8rem;
    display: grid;
    gap: 4.4rem;
}
main #catalog .catalog-controler {
    display: none;
}

main .catalog-titles {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
main .catalog-box {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(26rem, 1fr));
    gap: 2.4rem;
}

main .catalog-box .category-card-image {
    width: 21.9rem;
    height: 10.4rem;

    transition: background-color 0.25s;
}
main .catalog-box .category-card:is(:hover, :focus-within) .category-card-image {
    /* background-color: #F7E821; */
    outline: 2px solid #F7E821;
}


@media (max-width:900px) {
    main .catalog-box {
        padding-bottom: 1rem;
        width: 100%;

        display: flex;
        flex-wrap: nowrap;
        gap: 1rem;

        scroll-behavior: smooth;
        scroll-snap-type: x mandatory;
        overflow-x: auto;
    }
    main .catalog-box .category-card-image {
        padding: unset;
        width: 11.5rem;
    }
    main .catalog-box .category-card img {
        width: 140%;
        object-fit: cover;
    }
    main #catalog .catalog-controler {
        display: flex;
    }
}


/* Deals and Discounts */
main .deals-discounts {
    padding-block: 5.5rem;
    background-color: #201F21;
}

main .deals-discounts .deals-discounts-title-box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 5rem;
}

main .deals-discounts .deals-discounts-cards-box {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(34rem, 1fr));
    gap: 2.5rem;
}

main .deals-discounts .deals-discounts-title-box a {
    font-size: 1.4rem;
    text-transform: uppercase;
}

main .deals-discounts .deals-card {
    max-width: 36.5rem;
    display: grid;

    background-color: var(--color1);
    
    overflow: hidden;
    border-radius: 2px;

    position: relative;
}

main .deals-discounts .deals-card::before {
    content: var(--cont, "N/A content");

    position: absolute;
    top: 1.5rem; left: 1.5rem;

    padding: 0.7rem 1.2rem;

    font-size: 1.4rem;
    color: var(--font-color-500);

    background-color: #243E8E;
    border-radius: 2px;
}

main .deals-discounts .deals-card .deals-card-inner {
    margin: 1.7rem;
    margin-top: 0;
}
main .deals-discounts .deals-card .deals-card-inner-text {
    margin-block: 3.2rem;
}

main .deals-discounts .deals-card img {
    width: 100%;
    object-fit: contain;
}
main .deals-discounts .deals-card .deals-card-title {
    font-size: 1.8rem;
    line-height: 1.25;
    color: var(--font-color-500);
    text-wrap: balance;
    margin-bottom: 1.5rem;
}
main .deals-discounts .deals-card .deals-card-desc {
    font-size: 1.6rem;
    font-weight: 300;
    line-height: 1.25;
    color: var(--font-color-300);
}


@media (max-width:900px) {
    main .deals-discounts .deals-discounts-cards-box {
        padding-bottom: 1rem;
        width: 100%;

        display: flex;
        flex-wrap: nowrap;
        gap: 1rem;

        scroll-behavior: smooth;
        scroll-snap-type: x mandatory;
        
        overflow-x: auto;
    }
    main .deals-discounts .deals-card {
        width: 33.5rem;
        min-width: 33.5rem;
    }
}


/* Semi Truck Industry */
main #industry {
    margin-block: 9rem;
    display: grid;
    gap: 4.8rem;
}
main #industry .industry-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2.4rem;
}
main #industry .industry-inner p {
    font-size: 1.4rem;
    font-weight: 300;
    line-height: 1.25;
    text-align: justify;
    color: var(--font-color-300);
}
main #industry .industry-image-box {
    display: grid;
    place-content: center;
    place-items: center;

    width: 100%;
    aspect-ratio: 3.75 / 1;
    border-radius: 5px;
    overflow: hidden;
}
main #industry .industry-image-box img {
    width: 100%;
    object-fit: contain;
    margin-bottom: 15%;
}


@media (max-width:900px) {
    main #industry .industry-inner {
        grid-template-columns: 1fr;
    }
}


/* All Categories Overview */
.blue-accent {
    background-color: var(--accent-blue);
}

main #cats-overview {
    padding-block: 6.5rem;
    display: grid;
    gap: 4.8rem;
}
main #cats-overview .cats-overview-box {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 2rem 1.6rem;
}
main #cats-overview .category-ref {
    padding: 1rem 1.6rem;

    font-family: "Druk", Arial, Helvetica, sans-serif;
    line-height: 1;

    font-size: 1.3rem;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--font-color-500);

    border: 1px solid #F7E821;
    border-radius: 5px;
}

/* Articles & News */
main #articles {
    margin-block: 6.5rem;
    display: grid;
    gap: 4.8rem;
}

main #articles .articles-box {
    display: flex;
    flex-wrap: wrap;
    /* align-items: start; */
    justify-content: space-between;
    gap: 2rem;
}

main #articles .article-card {
    max-width: 36rem;
    /* display: grid; */
    display: flex;
    flex-direction: column;

    overflow: hidden;
    border: 1px solid #242424;
    border-radius: 5px;
}

main #articles .article-card .image-box {
    width: 100%;
    aspect-ratio: 1 / 0.68;
    overflow: hidden;
    clip-path: polygon(0 0, 100% 0, 100% 95%, 0% 100%);
}
main #articles .article-card .image-box img {
    width: 100%;
    height: auto;
    object-fit: contain;
    object-position: center;
}

main #articles .article-card img {
    width: 100%;
    object-fit: contain;
    clip-path: polygon(0 0, 100% 0, 100% 95%, 0% 100%);
}

main #articles .article-card-inner {
    padding: 1.7rem;
    padding-top: 0;

    flex: 1;
    display: flex;
    flex-direction: column;
}
main #articles .article-text {
    margin-block: 2.5rem;
    
    flex: 1;
    display: flex;
    flex-direction: column;
}
main #articles .article-date {
    font-size: 1.2rem;
    font-weight: 300;
    color: var(--font-color-300);
    margin-bottom: 1.2rem;
}
main #articles .article-title {
    flex: 1;
    font-size: 1.8rem;
    color: var(--font-color-500);
}

main #articles .articles-more {
    font-size: 1.8rem;
    text-underline-offset: 3px;
    color: var(--accent-yellow);
}


@media (max-width:1205px) {
    main #articles .articles-box {
        padding-bottom: 1rem;
        width: 100%;

        /* display: flex; */
        flex-wrap: nowrap;
        gap: 1rem;
        
        scroll-behavior: smooth;
        scroll-snap-type: x mandatory;

        overflow-x: auto;
    }
    main #articles .article-card {
        width: 33.5rem;
        min-width: 33.5rem;
    }
}


/* FAQ */
main #FAQ {
    padding-block: 6.5rem;
    background-color: #201F21;
}
main #FAQ .FAQ-inner {
    display: grid;
    gap: 4.2rem;
}
main #FAQ .FAQ-box {
    display: grid;
    gap: 2.5rem;
}
main #FAQ .FAQ-item {
    padding-inline: 2.2rem;
    background-color: var(--color1);
    border-radius: 5px;
}

main #FAQ .FAQ-box-inner {
    position: relative;
    isolation: isolate;
    cursor: pointer;
}
main #FAQ .FAQ-box-inner::before {
    content: "";
    position: absolute;
    inset: 0;

    background-color: #004D43;
    border-radius: 5px;

    transition: transform 0.25s;
    z-index: -1;
}

main #FAQ .FAQ-box-inner[data-more="true"] {
    display: none;
}
main #FAQ .FAQ-box-inner[data-more="true"].-shown {
    display: block;
}

main #FAQ .FAQ-box-inner svg {
    position: absolute;
    top: 50%; right: 2.2rem;
    width: 22px; aspect-ratio: 1;

    translate: 0 -50%;
    transition: transform 0.25s;

    z-index: 1;
}
main #FAQ .FAQ-item summary {
    padding-block: 2rem;
    font-size: 1.8rem;
    color: var(--font-color-500);
}
main #FAQ .FAQ-item summary::marker,
main #FAQ .FAQ-item summary::-webkit-details-marker {
    font-size: 0;
    color: transparent;
    opacity: 0;
}

main #FAQ .FAQ-item[open] {
    padding-bottom: 2rem;
}
main #FAQ .FAQ-item[open] + svg {
    top: 2rem;
    transform: rotate(180deg);
    stroke: #017d6d;
}

main #FAQ .FAQ-box-inner:has(.FAQ-item[open])::before {
    transform: translateY(2px);
}

main #FAQ .FAQ-item .FAQ-text {
    margin-top: 2.2rem;
    font-size: 1.6rem;
    font-weight: 300;
    color: var(--font-color-300);
}


@media (max-width:600px) {
    main #FAQ .FAQ-item summary {
        padding-right: 4rem;
        text-wrap: balance;
    }
    main #FAQ .FAQ-item .FAQ-text {
        text-wrap: pretty;
    }
}


@media (max-width: 1400px) {
    .titles .cta::after {
        right: 0;
    }
}

@media (max-width: 1100px) {
    .titles .cta {
        height: unset;
        padding-block: 5rem 17rem;
    }
    .titles h1,
    .titles h1 * {
        font-size: 4.4rem;
    }
    .titles .cta::after {
        inset: unset;
        top: unset; bottom: 0; right: 0;

        width:max(25rem, 55%);
        aspect-ratio: 1;

        background-position: center 93%;
    }
    .titles .cta-button, .accent-button {
        font-family: "Druk", Arial, Helvetica, sans-serif;
        font-size: 1.5rem;
        font-weight: 900;
        font-style: italic;
        letter-spacing: 0.5px;
    }
    main h4 {
        font-size: 3.2rem;
    }
}
@media (max-width: 550px) {
    .titles .cta br {
        display: none;
    }
    main .search-group .search-criteria {
        width: min(30rem, 100%);
        flex-wrap: wrap;
    }
}