.hexagon-grid-container {
    --hex-size: 200px;
    --hex-size-tablet: 140px;
    --hex-size-mobile: 100px;
    --hex-gap: 20px;
    display: flex;
    justify-content: center;
    padding: 40px 20px;
    box-sizing: border-box;
}

.hexagon-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, var(--hex-size));
    gap: var(--hex-gap, 20px);
    justify-content: center;
    justify-items: center;
    align-items: start;
    width: 100%;
}

/* Fixed column counts */
.columns-1 .hexagon-grid { grid-template-columns: repeat(1, var(--hex-size)); }
.columns-2 .hexagon-grid { grid-template-columns: repeat(2, var(--hex-size)); }
.columns-3 .hexagon-grid { grid-template-columns: repeat(3, var(--hex-size)); }
.columns-4 .hexagon-grid { grid-template-columns: repeat(4, var(--hex-size)); }
.columns-5 .hexagon-grid { grid-template-columns: repeat(5, var(--hex-size)); }
.columns-6 .hexagon-grid { grid-template-columns: repeat(6, var(--hex-size)); }
.columns-7 .hexagon-grid { grid-template-columns: repeat(7, var(--hex-size)); }
.columns-8 .hexagon-grid { grid-template-columns: repeat(8, var(--hex-size)); }
.columns-9 .hexagon-grid { grid-template-columns: repeat(9, var(--hex-size)); }
.columns-10 .hexagon-grid { grid-template-columns: repeat(10, var(--hex-size)); }

/* Grid direction - controls flow */
.direction-row .hexagon-grid { grid-auto-flow: row; }
.direction-row-reverse .hexagon-grid { grid-auto-flow: row; direction: rtl; }
.direction-column .hexagon-grid { grid-auto-flow: column; grid-template-columns: none; grid-template-rows: repeat(auto-fit, calc(var(--hex-size) * 1.1547)); }
.direction-column-reverse .hexagon-grid { grid-auto-flow: column; grid-template-columns: none; grid-template-rows: repeat(auto-fit, calc(var(--hex-size) * 1.1547)); direction: rtl; }

/* Column direction with fixed columns - creates row count instead */
.direction-column.columns-1 .hexagon-grid,
.direction-column.columns-2 .hexagon-grid,
.direction-column.columns-3 .hexagon-grid,
.direction-column.columns-4 .hexagon-grid,
.direction-column.columns-5 .hexagon-grid,
.direction-column.columns-6 .hexagon-grid,
.direction-column.columns-7 .hexagon-grid,
.direction-column.columns-8 .hexagon-grid,
.direction-column.columns-9 .hexagon-grid,
.direction-column.columns-10 .hexagon-grid {
    grid-template-columns: none;
    grid-auto-flow: column;
}

.direction-column.columns-1 .hexagon-grid { grid-template-rows: repeat(1, calc(var(--hex-size) * 1.1547)); }
.direction-column.columns-2 .hexagon-grid { grid-template-rows: repeat(2, calc(var(--hex-size) * 1.1547)); }
.direction-column.columns-3 .hexagon-grid { grid-template-rows: repeat(3, calc(var(--hex-size) * 1.1547)); }
.direction-column.columns-4 .hexagon-grid { grid-template-rows: repeat(4, calc(var(--hex-size) * 1.1547)); }
.direction-column.columns-5 .hexagon-grid { grid-template-rows: repeat(5, calc(var(--hex-size) * 1.1547)); }
.direction-column.columns-6 .hexagon-grid { grid-template-rows: repeat(6, calc(var(--hex-size) * 1.1547)); }
.direction-column.columns-7 .hexagon-grid { grid-template-rows: repeat(7, calc(var(--hex-size) * 1.1547)); }
.direction-column.columns-8 .hexagon-grid { grid-template-rows: repeat(8, calc(var(--hex-size) * 1.1547)); }
.direction-column.columns-9 .hexagon-grid { grid-template-rows: repeat(9, calc(var(--hex-size) * 1.1547)); }
.direction-column.columns-10 .hexagon-grid { grid-template-rows: repeat(10, calc(var(--hex-size) * 1.1547)); }

/* Same for column-reverse */
.direction-column-reverse.columns-1 .hexagon-grid,
.direction-column-reverse.columns-2 .hexagon-grid,
.direction-column-reverse.columns-3 .hexagon-grid,
.direction-column-reverse.columns-4 .hexagon-grid,
.direction-column-reverse.columns-5 .hexagon-grid,
.direction-column-reverse.columns-6 .hexagon-grid,
.direction-column-reverse.columns-7 .hexagon-grid,
.direction-column-reverse.columns-8 .hexagon-grid,
.direction-column-reverse.columns-9 .hexagon-grid,
.direction-column-reverse.columns-10 .hexagon-grid {
    grid-template-columns: none;
    grid-auto-flow: column;
}

.direction-column-reverse.columns-1 .hexagon-grid { grid-template-rows: repeat(1, calc(var(--hex-size) * 1.1547)); }
.direction-column-reverse.columns-2 .hexagon-grid { grid-template-rows: repeat(2, calc(var(--hex-size) * 1.1547)); }
.direction-column-reverse.columns-3 .hexagon-grid { grid-template-rows: repeat(3, calc(var(--hex-size) * 1.1547)); }
.direction-column-reverse.columns-4 .hexagon-grid { grid-template-rows: repeat(4, calc(var(--hex-size) * 1.1547)); }
.direction-column-reverse.columns-5 .hexagon-grid { grid-template-rows: repeat(5, calc(var(--hex-size) * 1.1547)); }
.direction-column-reverse.columns-6 .hexagon-grid { grid-template-rows: repeat(6, calc(var(--hex-size) * 1.1547)); }
.direction-column-reverse.columns-7 .hexagon-grid { grid-template-rows: repeat(7, calc(var(--hex-size) * 1.1547)); }
.direction-column-reverse.columns-8 .hexagon-grid { grid-template-rows: repeat(8, calc(var(--hex-size) * 1.1547)); }
.direction-column-reverse.columns-9 .hexagon-grid { grid-template-rows: repeat(9, calc(var(--hex-size) * 1.1547)); }
.direction-column-reverse.columns-10 .hexagon-grid { grid-template-rows: repeat(10, calc(var(--hex-size) * 1.1547)); }

/* Reset direction for items */
.hexagon-grid .hexagon-item { direction: ltr; }

.hexagon-item {
    --hex-rotation: 0deg;
    --content-align: center;
    --content-vertical-align: center;
    --current-hex-size: var(--hex-size, 200px);
    width: var(--current-hex-size);
    height: calc(var(--current-hex-size) * 1.1547);
    position: relative;
    clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
    background-color: var(--hex-bg-color, #f5a0b1);
    background-size: cover;
    background-position: center;
    transition: transform 0.3s ease;
    transform: rotate(var(--hex-rotation));
    flex-shrink: 0;
}

.hexagon-item:hover {
    transform: rotate(var(--hex-rotation)) scale(1.05);
    z-index: 10;
}

.hexagon-content {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: var(--content-align, center);
    justify-content: var(--content-vertical-align, center);
    overflow: hidden;
    padding: 18%;
    text-align: center;
    transform: rotate(calc(var(--hex-rotation) * -1));
    box-sizing: border-box;
}

.hexagon-content > * {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}

.hexagon-content p {
    margin: 0;
    font-size: clamp(10px, calc(var(--current-hex-size) * 0.07), 18px);
    line-height: 1.3;
    word-wrap: break-word;
}

.hexagon-content h1,
.hexagon-content h2,
.hexagon-content h3,
.hexagon-content h4,
.hexagon-content h5,
.hexagon-content h6 {
    margin: 0 0 5px 0;
    font-size: clamp(12px, calc(var(--current-hex-size) * 0.09), 24px);
    line-height: 1.2;
    word-wrap: break-word;
}

.hexagon-content img {
    max-width: 50%;
    max-height: 30%;
    height: auto;
    object-fit: contain;
}

.hexagon-content a {
    font-size: clamp(9px, calc(var(--current-hex-size) * 0.065), 16px);
}

@media (max-width: 991px) {
    .hexagon-grid-container .hexagon-item {
        --current-hex-size: var(--hex-size-tablet, 140px);
    }
    
    .columns-auto .hexagon-grid {
        grid-template-columns: repeat(auto-fit, var(--hex-size-tablet));
    }
}

@media (max-width: 575px) {
    .hexagon-grid-container .hexagon-item {
        --current-hex-size: var(--hex-size-mobile, 100px);
    }
    
    .hexagon-grid-container .hexagon-content {
        padding: 15%;
    }
    
    .columns-auto .hexagon-grid {
        grid-template-columns: repeat(auto-fit, var(--hex-size-mobile));
    }
}
