/* ========================================
   Section Block Styles
   Prefix: bkbg-section
   ======================================== */

/* CSS Custom Properties */
.bkbg-section {
    --bkbg-section-max-width: 1200px;
    --bkbg-section-padding-none: 0;
    --bkbg-section-padding-xs: 8px;
    --bkbg-section-padding-s: 16px;
    --bkbg-section-padding-m: 32px;
    --bkbg-section-padding-l: 48px;
    --bkbg-section-padding-xl: 64px;
    --bkbg-section-bg-light: #f8fafc;
    --bkbg-section-bg-dark: #1e293b;
    --bkbg-section-bg-accent: #3b82f6;
    position: relative;
    width: 100%;
    box-sizing: border-box;
}

/* Content Width (inside section) */
.bkbg-section--content-full .bkbg-section__inner {
    width: 100%;
    max-width: 100%;
    padding-left: 20px;
    padding-right: 20px;
}

.bkbg-section--content-boxed .bkbg-section__inner {
    width: 100%;
    max-width: var(--bkbg-section-max-width);
    margin-left: auto;
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
    box-sizing: border-box;
}

/* Vertical Padding */
.bkbg-section--padding-none {
    padding-top: var(--bkbg-section-padding-none);
    padding-bottom: var(--bkbg-section-padding-none);
}

.bkbg-section--padding-xs {
    padding-top: var(--bkbg-section-padding-xs);
    padding-bottom: var(--bkbg-section-padding-xs);
}

.bkbg-section--padding-s {
    padding-top: var(--bkbg-section-padding-s);
    padding-bottom: var(--bkbg-section-padding-s);
}

.bkbg-section--padding-m {
    padding-top: var(--bkbg-section-padding-m);
    padding-bottom: var(--bkbg-section-padding-m);
}

.bkbg-section--padding-l {
    padding-top: var(--bkbg-section-padding-l);
    padding-bottom: var(--bkbg-section-padding-l);
}

.bkbg-section--padding-xl {
    padding-top: var(--bkbg-section-padding-xl);
    padding-bottom: var(--bkbg-section-padding-xl);
}

/* Background Presets */
.bkbg-section--bg-none {
    background-color: transparent;
}

.bkbg-section--bg-light {
    background-color: var(--bkbg-section-bg-light);
}

.bkbg-section--bg-dark {
    background-color: var(--bkbg-section-bg-dark);
    color: #ffffff;
}

.bkbg-section--bg-accent {
    background-color: var(--bkbg-section-bg-accent);
    color: #ffffff;
}

.bkbg-section--bg-custom {
    background-color: var(--bkbg-section-custom-bg, transparent);
}

/* Inner wrapper */
.bkbg-section__inner {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

/* ========================================
   Section Width (outer section)
   ======================================== */

/* Full width - break out of container (frontend) */
.bkbg-section.alignfull,
.bkbg-section--section-full {
    width: 100vw;
    max-width: none;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
}

/* Support for themes using useRootPaddingAwareAlignments */
.has-global-padding > .bkbg-section.alignfull,
.has-global-padding > .bkbg-section--section-full {
    margin-left: calc(-1 * var(--wp--style--root--padding-left, 0px)) !important;
    margin-right: calc(-1 * var(--wp--style--root--padding-right, 0px)) !important;
    width: calc(100% + var(--wp--style--root--padding-left, 0px) + var(--wp--style--root--padding-right, 0px)) !important;
    max-width: none !important;
    left: auto !important;
    transform: none !important;
}

/* Wide - centered max width */
.bkbg-section.alignwide,
.bkbg-section--section-wide {
    width: 100%;
    max-width: var(--wp--style--global--wide-size, 1440px);
    margin-left: auto;
    margin-right: auto;
}

/* Boxed - centered max width */
.bkbg-section--section-boxed {
    width: 100%;
    max-width: var(--bkbg-section-section-max-width, var(--bkbg-section-max-width));
    margin-left: auto;
    margin-right: auto;
}

/* Ensure theme-level max-width rules don't override Section Width modes */
.wp-block-blockenberg-section.bkbg-section--section-boxed {
    max-width: var(--bkbg-section-section-max-width, var(--bkbg-section-max-width)) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.wp-block-blockenberg-section.bkbg-section--section-wide {
    max-width: var(--wp--style--global--wide-size, 1440px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.wp-block-blockenberg-section.bkbg-section--section-full {
    max-width: none !important;
    width: 100vw !important;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
}

/* Editor-specific styles */
.editor-styles-wrapper .bkbg-section {
    min-height: 60px;
    border: 1px dashed transparent;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.editor-styles-wrapper .bkbg-section:hover {
    border-color: rgba(59, 130, 246, 0.3);
}

.editor-styles-wrapper .bkbg-section.is-selected,
.editor-styles-wrapper .bkbg-section:focus-within {
    border-color: rgba(59, 130, 246, 0.5);
}

/* Drag and drop state */
.editor-styles-wrapper .bkbg-section.is-dragging-over,
.editor-styles-wrapper [data-type="blockenberg/section"].is-dragging-over > .bkbg-section {
    border-color: rgba(59, 130, 246, 0.6) !important;
    background-color: rgba(59, 130, 246, 0.03) !important;
}

/* Ensure InnerBlocks placeholder shows correctly - direct children only */
.editor-styles-wrapper .bkbg-section > .bkbg-section__inner > .block-editor-inner-blocks {
    width: 100%;
}

.editor-styles-wrapper .bkbg-section > .bkbg-section__inner > .block-editor-inner-blocks > .block-editor-block-list__layout {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

/* Section label in editor */
.editor-styles-wrapper .bkbg-section::before {
    content: 'Section';
    position: absolute;
    top: -20px;
    left: 0;
    font-size: 10px;
    font-weight: 600;
    color: #3b82f6;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    opacity: 0;
    transition: opacity 0.15s ease;
    pointer-events: none;
}

.editor-styles-wrapper .bkbg-section:hover::before,
.editor-styles-wrapper .bkbg-section.is-selected::before {
    opacity: 1;
}

/* (Alignment rules moved above; keep nested overrides below) */

/* Nested sections inside columns should be full width of column */
.bkbg-column .bkbg-section,
.bkbg-column .bkbg-section.alignfull,
.bkbg-column .bkbg-section.alignwide,
.bkbg-column .bkbg-section--section-full,
.bkbg-column .bkbg-section--section-wide,
.bkbg-column .bkbg-section--section-boxed {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Editor: use margin-based breakout instead of transform (better for editor UI) */
.editor-styles-wrapper .bkbg-section--section-full {
    width: auto !important;
    max-width: none !important;
    
    /* Break out of the content area */
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    
    /* Reset frontend transform/left centering */
    left: auto !important;
    transform: none !important;
}

.editor-styles-wrapper .bkbg-section--section-wide {
    width: 100% !important;
    max-width: var(--wp--style--global--wide-size, 1440px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.editor-styles-wrapper .bkbg-section--section-boxed {
    width: 100% !important;
    max-width: var(--bkbg-section-section-max-width, var(--bkbg-section-max-width)) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Editor: override generic .wp-block max-width constraints for this block */
.editor-styles-wrapper .wp-block[data-type="blockenberg/section"].bkbg-section--section-boxed {
    max-width: var(--bkbg-section-section-max-width, var(--bkbg-section-max-width)) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.editor-styles-wrapper .wp-block[data-type="blockenberg/section"].bkbg-section--section-wide {
    max-width: var(--wp--style--global--wide-size, 1440px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.editor-styles-wrapper .wp-block[data-type="blockenberg/section"].bkbg-section--section-full {
    max-width: none !important;
    width: auto !important;
    /* Use margin breakout */
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    left: auto !important;
    transform: none !important;
}

/* Responsive adjustments */
@media (max-width: 782px) {
    .bkbg-section--content-boxed .bkbg-section__inner,
    .bkbg-section--content-full .bkbg-section__inner {
        padding-left: 16px;
        padding-right: 16px;
    }
    
    .bkbg-section--padding-l {
        padding-top: 32px;
        padding-bottom: 32px;
    }
    
    .bkbg-section--padding-xl {
        padding-top: 48px;
        padding-bottom: 48px;
    }
}

/* Inspector: spacing controls */
.block-editor-page .bkbg-spacing-control,
.interface-interface-skeleton__editor .bkbg-spacing-control {
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px solid #e2e8f0;
}

.block-editor-page .bkbg-spacing-control__title,
.interface-interface-skeleton__editor .bkbg-spacing-control__title {
    font-size: 13px;
    font-weight: 600;
    color: #1f2937;
    margin-bottom: 10px;
}

.block-editor-page .bkbg-spacing-control__grid,
.interface-interface-skeleton__editor .bkbg-spacing-control__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 12px;
}

.block-editor-page .bkbg-spacing-control__item,
.interface-interface-skeleton__editor .bkbg-spacing-control__item {
    min-width: 0;
}

.block-editor-page .bkbg-spacing-control__label,
.interface-interface-skeleton__editor .bkbg-spacing-control__label {
    display: block;
    font-size: 12px;
    font-weight: 500;
    color: #374151;
    margin-bottom: 4px;
}

.block-editor-page .bkbg-spacing-control__row,
.interface-interface-skeleton__editor .bkbg-spacing-control__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 78px;
    gap: 6px;
    align-items: center;
}

.block-editor-page .bkbg-spacing-control__custom-unit,
.interface-interface-skeleton__editor .bkbg-spacing-control__custom-unit {
    margin-top: 6px;
}
