:root {
    --smallCardSize: 300px;
    --largeCardSize: 500px;
    --smallCardExpandedSize: 325px;
    --largeCardExpandedSize: 600px;
}

.breadcrumbs {
    margin: 16px 0px;
}

.breadcrumbs>a {
    display: inline-block;
    position: relative;
    color: lightblue;
    border: 1px gray solid;
    text-decoration: none;
    padding: 8px;
    background-color: rgb(15, 15, 25);
    font-style: italic;
}

.breadcrumbs>a:hover {
    color: black;
    background-color: lightblue;
}

.firstCrumb {
    padding-right: 8px !important;
    border-radius: 2px 20px 20px 2px !important;
}

.middleCrumb {
    padding-left: 24px !important;
    padding-right: 8px !important;
    border-left: 0 !important;
    border-radius: 0 20px 20px 0 !important;
}

.lastCrumb {
    padding-left: 24px !important;
    border-left: 0 !important;
}

.products-main-container {
    padding: 0px 8px;
    display: flex;
    flex-direction: column;
    height: 100%;
}

.products-gallery-container {
    display: grid;
    grid-template-columns: repeat(auto-fit, var(--smallCardExpandedSize));
    grid-auto-rows: var(--smallCardExpandedSize);
    justify-content: center;
    justify-items: center;
    align-content: center;
    align-items: center;
    gap: 50px;
    padding: 20px 0;
    flex: 1;
}

.products-gallery-container:has(.largeCard) {
    grid-template-columns: repeat(auto-fit, var(--largeCardExpandedSize));
    grid-auto-rows: var(--largeCardExpandedSize);
}

.products-main-container hr {
    border-color: rgba(255, 255, 255, 0.5);
    width: 100%;
}

.largeCardText {
    color: black;
    font-weight: bold;
    padding: 14px;
    border-radius: 10px;
    font-family: cursive, system-ui, sans-serif, math;
    font-size: 42px;
    background-color: rgba(255, 255, 255, 0.5);
    transition: font-size 0.5s, background-color 0.5s;
    margin-top: 16px;
}

.largeCardLogo {
    padding: 14px;
    border-radius: 10px;
    height: 50px;
    width: 50%;
    margin-top: 16px;
    object-fit: scale-down;
    background-color: rgba(255, 255, 255, 0.5);
    transition: width 0.5s, height 0.5s, background-color 0.5s;
}

.largeCard {
    height: var(--largeCardSize);
    width: var(--largeCardSize);
    background-size: cover;
    background-repeat: no-repeat;
    display: flex;
    align-items: start;
    justify-content: center;
    border-radius: 15px;
    border: 1px cornsilk solid;
    text-decoration: none;
    box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
    transition: height 0.5s, width 0.5s, box-shadow 0.5s;
}

.smallCard {
    height: var(--smallCardSize);
    width: var(--smallCardSize);
    display: flex;
    flex-direction: column;
    border: 1px cornsilk solid;
    border-radius: 10px;
    text-decoration: none;
    background-color: white;
    box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
    transition: height 0.5s, width 0.5s, box-shadow 0.5s;
    overflow: hidden;
}

.smallLongCard {
    height: var(--largeCardSize);
}

.smallCard>img {
    max-width: 100%;
    flex: 1;
    border-radius: 10px 10px 0 0;
    object-fit: scale-down;
    padding: 24px;
    transition: padding 0.5s;
    min-height: 0;
}

.smallCardText {
    color: white;
    background: linear-gradient(to right, rgba(0, 0, 0, 0.9), rgba(0, 0, 0, 0.8));
    text-align: center;
    padding: 8px;
    font-family: system-ui, sans-serif, math, cursive;
    font-size: 24px;
    transition: background-color 0.5s;
    text-decoration: none;
    margin: 0;
    border-radius: 0 0 10px 10px;
}

.largeCardTextActive {
    font-size: 64px;
    background-color: rgba(255, 255, 255, 1);
}

.largeCardLogoActive {
    height: 85px;
    width: 85%;
    background-color: rgba(255, 255, 255, 1);
}

.largeCardActive {
    height: var(--largeCardExpandedSize);
    width: var(--largeCardExpandedSize);
    border: none;
    box-shadow: 0px 0px 10px 5px sandybrown;
}

.smallCardActive {
    height: var(--smallCardExpandedSize);
    width: var(--smallCardExpandedSize);
    border: none;
    box-shadow: 0px 0px 10px 5px sandybrown;
}

.smallLongCardActive {
    height: var(--largeCardExpandedSize);
    width: var(--smallCardExpandedSize);
    border: none;
    box-shadow: 0px 0px 10px 5px sandybrown;
}

.smallCardTextActive {
    font-weight: bold;
    color: beige;
    background-color: black;
}

.smallCardImageActive {
    padding: 8px !important;
}

table {
    display: flex;
    justify-content: center;
    align-items: center;
    flex: 1;
    font-size: 2em;
    border-radius: 15px;
}

tr {
    vertical-align: top;
}

.lastRow {
    height: 0;
}

table img {
    max-height: 500px;
    border-radius: 10px;
    vertical-align: bottom;
}

tbody {
    border: 1px solid sandybrown;
    border-radius: 15px;
    padding: 24px;
    background-color: rgba(0, 0, 0, 0.3);
}

.middleCell {
    padding: 0 50px;
}

#downloadBtn {
    width: 100%;
    font-size: 1em;
    padding: 8px;
    border-radius: 5px;
    border: none;
    background-color: lightblue;
    display: inline-block;
    text-align: center;
    color: black;
    text-decoration: none;
    transition: background-color 0.5s, box-shadow 0.5s;
}

#downloadBtn:hover {
    font-weight: bold;
    background-color: lightgreen;
    box-shadow: 0px 0px 10px 4px rgba(144, 238, 144, 0.2);
}

th {
    color: lightgray;
    text-align: left;
}

#model {
    color: greenyellow;
}

/* Mobile Responsiveness for Product Table */
@media (max-width: 768px) {
    table {
        font-size: 1.2em;
        /* Reduced from 2em */
        width: 100%;
        display: block;
        /* Disable flex centering behavior slightly */
    }

    tbody {
        display: grid;
        grid-template-columns: 1fr 1fr;
        /* Label | Value */
        column-gap: 15px;
        row-gap: 10px;
        padding: 10px;
        width: 100%;
        box-sizing: border-box;
        text-align: center;
    }

    tr {
        display: contents;
        /* Unwrap rows to allow cell reordering */
    }

    /* Move Image to Top */
    td[rowspan] {
        grid-column: 1 / -1;
        /* Span full width */
        order: -1;
        /* Move to visual top */
        margin-bottom: 20px;
        display: flex;
        justify-content: center;
    }

    /* Reset specific styles */
    .middleCell {
        padding: 0;
        text-align: left;
    }

    th {
        text-align: right;
        align-self: center;
    }

    td:not([rowspan]) {
        align-self: center;
    }

    /* Ensure image fits */
    table img {
        max-width: 100%;
        height: auto;
        max-height: 400px;
    }

    .breadcrumbs>a {
        left: 0 !important;
        margin-bottom: 10px;
    }

    #downloadBtn {
        width: 95%;
    }

}