.sme-builder-section {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: var(--sme-grid-gap, 16px);
    width: 100%;
    margin: 1rem 0;
}

.sme-builder-column {
    min-width: 0;
    grid-column: span var(--sme-column-span, 12);
}

.sme-editor-preview-content > * + *,
.sme-builder-column > * + *,
.sme-builder-card > * + * {
    margin-top: max(3px, var(--sme-element-gap, 3px));
}

.sme-builder-column.sme-span-1 { grid-column: span 1; }
.sme-builder-column.sme-span-2 { grid-column: span 2; }
.sme-builder-column.sme-span-3 { grid-column: span 3; }
.sme-builder-column.sme-span-4 { grid-column: span 4; }
.sme-builder-column.sme-span-5 { grid-column: span 5; }
.sme-builder-column.sme-span-6 { grid-column: span 6; }
.sme-builder-column.sme-span-7 { grid-column: span 7; }
.sme-builder-column.sme-span-8 { grid-column: span 8; }
.sme-builder-column.sme-span-9 { grid-column: span 9; }
.sme-builder-column.sme-span-10 { grid-column: span 10; }
.sme-builder-column.sme-span-11 { grid-column: span 11; }
.sme-builder-column.sme-span-12 { grid-column: span 12; }

.sme-builder-image {
    display: inline-block;
    width: min(100%, 480px);
    max-width: 100%;
    height: auto;
    margin: 0;
    vertical-align: top;
}

.sme-builder-image img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: 100%;
    object-fit: contain;
}

.sme-builder-card {
    height: 100%;
    border: 1px solid rgba(7, 79, 155, 0.14);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.72);
    padding: 1rem;
    overflow: hidden;
}

.sme-card-media {
    margin: 0 0 1rem;
}

.sme-card-actions {
    margin-top: 1rem;
}

.sme-builder-card .sme-builder-image {
    width: 100%;
    max-width: none;
}

.sme-builder-card .sme-builder-image img {
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.sme-element-icon {
    display: inline-block;
    width: 1.15em;
    height: 1.15em;
    margin-right: 0.4em;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    vertical-align: -0.18em;
}

.post-card .wp-block-button__link:has(> .sme-element-icon)::after,
.post-card .wp-element-button:has(> .sme-element-icon)::after {
    display: none;
}

.post-card .wp-block-button__link > .sme-element-icon,
.post-card .wp-element-button > .sme-element-icon {
    position: absolute;
    top: 50%;
    right: 0.98rem;
    z-index: 2;
    width: 18px;
    height: 18px;
    margin: 0;
    color: #fff;
    transform: translateY(-50%);
}

.section-title > .sme-element-icon {
    width: 0.9em;
    height: 0.9em;
}
.page-side-navigation .sme-element-icon {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    margin-right: 8px;
    max-width: 18px !important;
    max-height: 18px !important;
}
.page-side-navigation a > .sme-element-icon {
    position: static !important;
    display: inline-block !important;
    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;
    min-height: 18px !important;
    transform: none !important;
}
.sme-global-footer img { max-width: 100%; height: auto; }

.sme-builder-table,
.sme-builder-table-wrap table {
    width: 100%;
    border-collapse: collapse;
}

.sme-builder-table th,
.sme-builder-table td,
.sme-builder-table-wrap th,
.sme-builder-table-wrap td {
    border: 1px solid rgba(7, 79, 155, 0.2);
    padding: 0.65rem;
    text-align: left;
}

.sme-builder-table th,
.sme-builder-table-wrap th {
    background: rgba(7, 79, 155, 0.08);
}

.sme-builder-table-wrap td img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
}

.sme-download-list {
    display: grid;
    grid-template-columns: repeat(var(--sme-download-columns, 1), minmax(0, 1fr));
    gap: 8px;
}
.sme-download-list[data-sme-download-columns="2"] { --sme-download-columns: 2; }
.sme-download-list[data-sme-download-columns="3"] { --sme-download-columns: 3; }
.sme-download-list[data-sme-download-columns="4"] { --sme-download-columns: 4; }
.sme-download-list[data-sme-download-columns="6"] { --sme-download-columns: 6; }

.sme-download-button {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    text-align: center;
}

.sme-builder-carousel {
    position: relative;
    width: 100%;
    overflow: hidden;
    border: 1px solid rgba(7,79,155,.12);
    border-radius: 22px;
    background: linear-gradient(145deg, #f8fbff, #e8f1ff);
    box-shadow: 0 18px 45px rgba(7, 50, 105, .16);
}

.sme-carousel__track {
    display: flex;
    border-radius: inherit;
    transition: transform .45s cubic-bezier(.2, .7, .2, 1);
}

.sme-carousel__slide {
    flex: 0 0 100%;
    min-width: 0;
    margin: 0;
}
.post-card .sme-carousel__slide {
    flex: 0 0 100% !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.sme-carousel__slide img {
    display: block;
    width: 100%;
    height: clamp(260px, 48vw, 560px);
    object-fit: cover;
    filter: saturate(.96) contrast(1.02);
}

.sme-carousel__previous,
.sme-carousel__next {
    position: absolute;
    top: 50%;
    z-index: 3;
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 50%;
    background: rgba(7, 79, 155, .9);
    color: #fff;
    font-size: 28px;
    cursor: pointer;
    transform: translateY(-50%);
    box-shadow: 0 5px 18px rgba(0, 0, 0, .2);
}
.post-card .sme-builder-carousel .sme-carousel__previous,
.post-card .sme-builder-carousel .sme-carousel__next {
    position: absolute !important;
    top: 50% !important;
    z-index: 30 !important;
    display: grid !important;
    place-items: center !important;
    width: 42px !important;
    min-width: 42px !important;
    max-width: 42px !important;
    height: 42px !important;
    min-height: 42px !important;
    max-height: 42px !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: rgba(7, 79, 155, .92) !important;
    box-shadow: 0 5px 18px rgba(0, 0, 0, .2) !important;
    color: #fff !important;
    padding: 0 0 3px !important;
    font: 400 28px/1 sans-serif !important;
    transform: translateY(-50%) !important;
}
.post-card .sme-builder-carousel .sme-carousel__previous { left: 16px !important; right: auto !important; }
.post-card .sme-builder-carousel .sme-carousel__next { right: 16px !important; left: auto !important; }
.post-card .sme-builder-carousel .sme-carousel__previous::before,
.post-card .sme-builder-carousel .sme-carousel__previous::after,
.post-card .sme-builder-carousel .sme-carousel__next::before,
.post-card .sme-builder-carousel .sme-carousel__next::after { display: none !important; content: none !important; }
.sme-carousel__previous { left: 16px; }
.sme-carousel__next { right: 16px; }
.sme-carousel__dots {
    position: absolute;
    left: 50%;
    bottom: 14px;
    z-index: 3;
    display: flex;
    gap: 7px;
    transform: translateX(-50%);
}
.sme-carousel__dots button {
    width: 8px; height: 8px; border: 0; border-radius: 50%;
    background: rgba(255,255,255,.55); padding: 0; cursor: pointer;
}
.post-card .sme-carousel__dots button {
    position: static !important;
    min-width: 8px !important;
    min-height: 8px !important;
    max-width: 24px !important;
    height: 8px !important;
    margin: 0 !important;
    border: 0 !important;
    padding: 0 !important;
    transform: none !important;
    box-shadow: none !important;
}
.post-card .sme-carousel__dots button::before,
.post-card .sme-carousel__dots button::after { display: none !important; }
.sme-carousel__dots button.is-active { width: 24px; border-radius: 5px; background: #fff; }

.sme-builder-carousel[data-sme-carousel-variant="cards"] {
    padding: 22px;
    background: linear-gradient(135deg, #edf4ff, #fff);
}
.sme-builder-carousel[data-sme-carousel-variant="cards"] .sme-carousel__slide img {
    height: clamp(240px, 40vw, 470px);
    border: 1px solid rgba(7,79,155,.12);
    border-radius: 18px;
    object-fit: contain;
    background: #fff;
    box-shadow: 0 12px 28px rgba(7,50,105,.13);
}
.sme-builder-carousel[data-sme-carousel-variant="peek"] {
    padding: 24px 7%;
    background:
        radial-gradient(circle at 15% 20%, rgba(90,151,223,.2), transparent 32%),
        linear-gradient(135deg, #dceaff, #f7faff);
}
.sme-builder-carousel[data-sme-carousel-variant="peek"] .sme-carousel__track {
    box-shadow: 0 15px 35px rgba(7,50,105,.18);
}
.sme-builder-carousel[data-sme-carousel-variant="peek"] .sme-carousel__slide {
    padding: 0 8px;
    box-sizing: border-box;
}
.sme-builder-carousel[data-sme-carousel-variant="peek"] .sme-carousel__slide img {
    height: clamp(230px, 42vw, 500px);
    border: 3px solid rgba(255,255,255,.82);
    border-radius: 24px;
}

.sme-builder-tabs { width: 100%; }
.sme-tabs__navigation {
    display: grid;
    grid-template-columns: repeat(var(--sme-tabs-columns, 5), minmax(0, 1fr));
    gap: 6px;
    width: 100%;
    overflow: visible;
    padding: 4px 4px 0;
    border-bottom: 2px solid rgba(7,79,155,.14);
}
.sme-tabs__tab {
    width: 100%;
    min-width: 0;
    border: 0;
    border-radius: 10px 10px 0 0;
    background: #e8f0ff;
    color: #074f9b;
    padding: 11px 18px;
    font-weight: 700;
    cursor: pointer;
    white-space: normal;
    overflow-wrap: anywhere;
}
.post-card .sme-tabs__tab {
    position: static !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    min-height: 42px !important;
    transform: none !important;
}
.post-card .sme-tabs__tab::before,
.post-card .sme-tabs__tab::after { display: none !important; }
.sme-tabs__tab.is-active { background: #075aaa; color: #fff; }
.sme-tabs__panel {
    display: none;
    gap: 8px;
    padding: 18px;
    border: 1px solid rgba(7,79,155,.14);
    border-top: 0;
    border-radius: 0 0 14px 14px;
    background: rgba(255,255,255,.75);
}
.sme-tabs__panel.is-active { display: grid; }
.sme-tabs__download { text-align: center; }

.sme-builder-quick-links {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
    align-items: stretch;
    gap: 1px;
    overflow: hidden;
    border: 1px solid rgba(7,79,155,.12);
    border-radius: 18px;
    background: rgba(7,79,155,.12);
    box-shadow: 0 10px 26px rgba(7,50,105,.1);
}
.sme-builder-quick-links > * {
    display: grid;
    place-items: center;
    min-height: 56px;
    background: #f5f8ff;
    padding: 10px;
    color: #074f9b;
    text-align: center;
    text-decoration: none;
    font-weight: 700;
}

@media (max-width: 820px) {
    .sme-builder-section {
        grid-template-columns: 1fr;
    }

    .sme-builder-column {
        grid-column: 1 / -1 !important;
    }
}
