/* ============================================================
   CABVAL Card Regions – Frontend Styles
   Scope: .cabval-cards
   ============================================================ */

/*----------------------------------------- Cards Region -----------------------------------------*/
.cards-region {
    display: flex;
    flex-direction: row;
    gap: 10px;
    width: 100%;
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: center;
}

/* -----------------------------------------
   ORIENTATION: VERTICAL
   ----------------------------------------- */
.cards-region.vertical {
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
}

.cards-region.vertical > .card-item {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 100% !important;
    flex-basis: 100% !important;
}

/* -----------------------------------------
   ORIENTATION: HORIZONTAL (default)
   ----------------------------------------- */
.cards-region.horizontal > .card-item {
    flex-basis: 30%;
}

/* -----------------------------------------
   DYNAMIC COLUMNS
   ----------------------------------------- */
.cards-region[class*="cols-"] > .card-item {
    flex-grow: 0;
    flex-shrink: 0;
}

/* cols-1 */
.cards-region.cols-1 > .card-item {
    width: 100%;
    min-width: 100%;
    max-width: 100%;
}

/* cols-2 */
.cards-region.cols-2 > .card-item {
    width: calc(50% - 10px);
    min-width: calc(50% - 10px);
    max-width: calc(50% - 10px);
}

/* cols-3 */
.cards-region.cols-3 > .card-item {
    width: calc(33.333% - 10px);
    min-width: calc(33.333% - 10px);
    max-width: calc(33.333% - 10px);
}

/* cols-4 */
.cards-region.cols-4 > .card-item {
    width: calc(25% - 10px);
    min-width: calc(25% - 10px);
    max-width: calc(25% - 10px);
}

/* cols-5 */
.cards-region.cols-5 > .card-item {
    width: calc(20% - 10px);
    min-width: calc(20% - 10px);
    max-width: calc(20% - 10px);
}

/* cols-6 */
.cards-region.cols-6 > .card-item {
    width: calc(16.666% - 10px);
    min-width: calc(16.666% - 10px);
    max-width: calc(16.666% - 10px);
}

/* -----------------------------------------
   Card Item Base
   ----------------------------------------- */
.cards-region > .card-item {
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-content: center;
    justify-content: flex-start;
    align-items: center;
    min-height: 200px;

    background-color: var(--card-item-background-color);
    color: var(--card-item-foreground-color);
    border: var(--card-item-border-size) var(--card-item-border-style) var(--card-item-border-color);
    border-radius: var(--card-item-border-round);
    padding: 20px;
}

/* -----------------------------------------
   Icon
   ----------------------------------------- */
.cards-region .card-item .icon-wrapper {
    background-color: var(--card-item-icon-foreground-color);
    width: var(--card-item-icon-size);
    height: var(--card-item-icon-size);
    border-radius: var(--card-item-icon-border-radius);
    overflow: hidden;
}

.cards-region .card-item .icon {
    width: var(--card-item-icon-size);
    height: var(--card-item-icon-size);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    background-color: var(--card-item-icon-background-color);
}

/* -----------------------------------------
   Text
   ----------------------------------------- */
.cards-region .card-item .text {
    display: block;
    text-align: center;
}

.cards-region .card-item .text.secondary {
    font-size: 0.8rem;
}

.cards-region .card-item .text.tertiary {
    font-size: 0.7rem;
}

/* -----------------------------------------
   Headings
   ----------------------------------------- */
.cards-region .card-item h1,
.cards-region .card-item h2,
.cards-region .card-item h3,
.cards-region .card-item h4,
.cards-region .card-item h5,
.cards-region .card-item h6 {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

/* -----------------------------------------
   Responsive Icon Sizes
   ----------------------------------------- */

/* Desktop */
@media (min-width: 1025px) and (max-width: 1440px) {
    :root {
        --card-item-icon-size: 92px;
    }
}

/* Tablet */
@media (min-width: 601px) and (max-width: 1024px) {
    :root {
        --card-item-icon-size: 64px;
    }
}

/* Mobile */
@media (max-width: 600px) {
    :root {
        --card-item-icon-size: 48px;
    }

    /* Mobile: always stack vertically */
    .cards-region.horizontal > .card-item {
        width: 100% !important;
        min-width: 100% !important;
        max-width: 100% !important;
    }
}