/**
 * Insight Dezign Visual Editor - Grid System
 * Version: 1.0.0
 * Frontend only. Target: < 3KB minified.
 */

.idve-section { width: 100%; box-sizing: border-box; }
body.idve-page { overflow-x: hidden; }
.idve-section-inner { margin-left: auto; margin-right: auto; }
.idve-section *, .idve-section *::before, .idve-section *::after { box-sizing: border-box; }

.idve-row {
    display: flex;
    flex-wrap: wrap;
}
.idve-row::after { content: ''; display: table; clear: both; }
.idve-row-equal-height { align-items: stretch; }
.idve-row-equal-height > .idve-col { display: flex; flex-direction: column; }

/* Section stretch – full width */
.idve-section-stretch-full {
    width: 100vw;
    margin-left: calc(-50vw + 50%);
    margin-right: 0;
}

/* Section stretch – background only */
.idve-section-stretch-bg {
    width: 100vw;
    margin-left: calc(-50vw + 50%);
    margin-right: 0;
}

.idve-col {
    box-sizing: border-box;
    min-height: 1px;
    overflow: hidden;
}

/* Column widths */
.idve-col-1-1 { flex: 0 0 100%; max-width: 100%; }
.idve-col-1-2 { flex: 0 0 50%; max-width: 50%; }
.idve-col-1-3 { flex: 0 0 33.333%; max-width: 33.333%; }
.idve-col-2-3 { flex: 0 0 66.667%; max-width: 66.667%; }
.idve-col-1-4 { flex: 0 0 25%; max-width: 25%; }
.idve-col-3-4 { flex: 0 0 75%; max-width: 75%; }
.idve-col-1-5 { flex: 0 0 20%; max-width: 20%; }
.idve-col-2-5 { flex: 0 0 40%; max-width: 40%; }
.idve-col-3-5 { flex: 0 0 60%; max-width: 60%; }
.idve-col-4-5 { flex: 0 0 80%; max-width: 80%; }

/* Block base */
.idve-block { box-sizing: border-box; }
.idve-block-image { line-height: 0; }
.idve-block-image img { max-width: 100%; height: auto; }

/* Button */
.idve-button {
    display: inline-block;
    text-decoration: none;
    cursor: pointer;
    border: none;
    text-align: center;
    line-height: 1.5;
    transition: opacity 0.2s;
}
.idve-button:hover { opacity: 0.9; }
.idve-button-small { padding: 6px 16px; font-size: 14px; }
.idve-button-medium { padding: 10px 24px; font-size: 16px; }
.idve-button-large { padding: 14px 32px; font-size: 18px; }
.idve-button-full { display: block; width: 100%; }

/* Video responsive wrapper */
.idve-video-wrapper { position: relative; width: 100%; overflow: hidden; border-radius: inherit; }
.idve-video-wrapper iframe,
.idve-video-wrapper video { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
.idve-aspect-16-9 { padding-bottom: 56.25%; }
.idve-aspect-4-3 { padding-bottom: 75%; }
.idve-aspect-1-1 { padding-bottom: 100%; }

/* Spacer */
.idve-spacer { width: 100%; }

/* Divider */
.idve-divider { border: none; height: 0; margin: 0; padding: 0; background: transparent; }

/* Audio */
.idve-audio { margin: 0; }
.idve-audio audio { width: 100%; }
.idve-audio figcaption { font-size: 14px; color: #666; margin-top: 6px; }

/* Group */
.idve-group { box-sizing: border-box; }

/* Tablet: 1024px */
@media (max-width: 1024px) {
    .idve-col-1-4,
    .idve-col-1-5,
    .idve-col-2-5 {
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }
}

/* Mobile: 768px */
@media (max-width: 768px) {
    .idve-col {
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }
}
