/* Frontend Layout System - Responsive Column Layouts */

/* Reset and Base Styles */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    line-height: 1.6;
    color: #333;
}

/* Layout Structure */
.frontend-header,
.frontend-main,
.frontend-footer {
    width: 100%;
}

.frontend-header {
    position: relative;
    z-index: 100;
}

.frontend-main {
    min-height: 50vh;
}

.frontend-footer {
    margin-top: auto;
}

/* Layout Container */
.layout-container {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px;
    gap: 20px;
}

/* Column Base Styles */
.layout-column {
    flex-grow: 0;
    flex-shrink: 0;
    min-width: 0;
}

/* 1 Column Layout */
.layout-1-col .layout-col-full {
    flex-basis: 100%;
    width: 100%;
}

/* Full Width Column (can be used in any layout context) */
.layout-col-full {
    flex-basis: 100%;
    width: 100%;
    max-width: 100%;
}

/* 2 Column Layout (50/50) */
.layout-2-col .layout-col-50 {
    flex-basis: calc(50% - 10px);
    width: calc(50% - 10px);
}

/* 2 Column Layout (33/67) */
.layout-2-col-33-67 .layout-col-33 {
    flex-basis: calc(33.333% - 10px);
    width: calc(33.333% - 10px);
}

.layout-2-col-33-67 .layout-col-67 {
    flex-basis: calc(66.667% - 10px);
    width: calc(66.667% - 10px);
}

/* 2 Column Layout (67/33) */
.layout-2-col-67-33 .layout-col-67 {
    flex-basis: calc(66.667% - 10px);
    width: calc(66.667% - 10px);
}

.layout-2-col-67-33 .layout-col-33 {
    flex-basis: calc(33.333% - 10px);
    width: calc(33.333% - 10px);
}

/* 3 Column Layout */
.layout-3-col .layout-col-33 {
    flex-basis: calc(33.333% - 14px);
    width: calc(33.333% - 14px);
}

/* 3 Column Layout (25/50/25) */
.layout-3-col-25-50-25 .layout-col-25 {
    flex-basis: calc(25% - 14px);
    width: calc(25% - 14px);
}

.layout-3-col-25-50-25 .layout-col-50 {
    flex-basis: calc(50% - 14px);
    width: calc(50% - 14px);
}

/* Responsive Breakpoints */

/* Tablet: 768px and below */
@media (max-width: 768px) {
    .layout-container {
        padding: 15px;
        gap: 15px;
    }

    /* 2 Column layouts become single column */
    .layout-2-col .layout-col-50,
    .layout-2-col-33-67 .layout-col-33,
    .layout-2-col-33-67 .layout-col-67,
    .layout-2-col-67-33 .layout-col-67,
    .layout-2-col-67-33 .layout-col-33 {
        flex-basis: 100%;
        width: 100%;
    }

    /* 3 Column layout becomes 2 columns */
    .layout-3-col .layout-col-33 {
        flex-basis: calc(50% - 7.5px);
        width: calc(50% - 7.5px);
    }

    /* Last column in 3-col takes full width */
    .layout-3-col .layout-col-33:last-child {
        flex-basis: 100%;
        width: 100%;
    }
}

/* Mobile: 480px and below */
@media (max-width: 480px) {
    .layout-container {
        padding: 10px;
        gap: 10px;
    }

    /* All layouts become single column */
    .layout-2-col .layout-col-50,
    .layout-2-col-33-67 .layout-col-33,
    .layout-2-col-33-67 .layout-col-67,
    .layout-2-col-67-33 .layout-col-67,
    .layout-2-col-67-33 .layout-col-33,
    .layout-3-col .layout-col-33 {
        flex-basis: 100%;
        width: 100%;
    }
}

/* Utility Classes */
.layout-container.no-gap {
    gap: 0;
}

.layout-container.small-gap {
    gap: 10px;
}

.layout-container.large-gap {
    gap: 40px;
}

.layout-container.full-width {
    max-width: 100%;
}

.layout-column.no-padding {
    padding: 0;
}

.layout-column.small-padding {
    padding: 10px;
}

.layout-column.medium-padding {
    padding: 20px;
}

.layout-column.large-padding {
    padding: 40px;
}

/* Column Backgrounds */
.layout-column.bg-light {
    background-color: #f8f9fa;
}

.layout-column.bg-dark {
    background-color: #343a40;
    color: #fff;
}

.layout-column.bg-primary {
    background-color: #007bff;
    color: #fff;
}

/* Column Borders */
.layout-column.bordered {
    border: 1px solid #dee2e6;
    padding: 20px;
    border-radius: 4px;
}

.layout-column.shadow {
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* Responsive Images */
.layout-column img {
    max-width: 100%;
    height: auto;
}

/* Responsive Tables */
.layout-column table {
    width: 100%;
    overflow-x: auto;
    display: block;
}

@media (min-width: 769px) {
    .layout-column table {
        display: table;
    }
}

/* Decoupage Component Styles */
.decoupage-row {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    margin: 0 auto;
    gap: 20px;
}

.decoupage-col-12 {
    flex-basis: 100%;
    width: 100%;
    max-width: 100%;
}

.decoupage-col-6 {
    flex-basis: calc(50% - 10px);
    width: calc(50% - 10px);
    max-width: calc(50% - 10px);
}

/* Responsive styles for Decoupage */
@media (max-width: 768px) {
    .decoupage-row {
        flex-direction: column;
        gap: 15px;
    }

    .decoupage-col-6,
    .decoupage-col-12 {
        flex-basis: 100%;
        width: 100%;
        max-width: 100%;
    }
}

/* Decoupage column content styling */
.decoupage-col-6 img,
.decoupage-col-12 img {
    width: 100%;
    height: auto;
    display: block;
}

.decoupage-col-6 p,
.decoupage-col-12 p {
    margin-bottom: 1rem;
}

.decoupage-col-6 h1,
.decoupage-col-6 h2,
.decoupage-col-6 h3,
.decoupage-col-6 h4,
.decoupage-col-6 h5,
.decoupage-col-6 h6,
.decoupage-col-12 h1,
.decoupage-col-12 h2,
.decoupage-col-12 h3,
.decoupage-col-12 h4,
.decoupage-col-12 h5,
.decoupage-col-12 h6 {
    margin-top: 1.2em;
    margin-bottom: 0.8em;
}
