/**
 * DGA Article - Gutenberg Block Overrides
 *
 * Ensures Gutenberg blocks render correctly inside Elementor templates.
 * All rules scoped under .dga-article-content to prevent conflicts.
 */

/* === Base Container === */
.dga-article-content {
    max-width: 100%;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

.elementor-widget-dga-article-content .dga-article-content * {
    box-sizing: border-box;
}

/* === Paragraph === */
.dga-article-content p {
    margin-bottom: 1.5em;
}

.dga-article-content p:last-child {
    margin-bottom: 0;
}

/* === Headings === */
.dga-article-content h1,
.dga-article-content h2,
.dga-article-content h3,
.dga-article-content h4,
.dga-article-content h5,
.dga-article-content h6 {
    margin-top: 1.5em;
    margin-bottom: 0.75em;
}

.dga-article-content > h1:first-child,
.dga-article-content > h2:first-child,
.dga-article-content > h3:first-child,
.dga-article-content > h4:first-child,
.dga-article-content > h5:first-child,
.dga-article-content > h6:first-child {
    margin-top: 0;
}

/* === Columns Block === */
.dga-article-content .wp-block-columns {
    display: flex !important;
    flex-wrap: wrap;
    gap: 2em;
    margin-bottom: 1.75em;
}

.dga-article-content .wp-block-column {
    flex-grow: 1;
    flex-basis: 0;
    min-width: 0;
    word-break: break-word;
}

/* === Gallery Block === */
.dga-article-content .wp-block-gallery {
    display: flex;
    flex-wrap: wrap;
    gap: 1em;
    list-style-type: none;
    padding: 0;
    margin: 0 0 1.75em;
}

.dga-article-content .wp-block-gallery .wp-block-image {
    margin: 0;
    flex-grow: 1;
}

.dga-article-content .wp-block-gallery .wp-block-image img {
    width: 100%;
    height: auto;
    object-fit: cover;
}

/* === Cover Block === */
.dga-article-content .wp-block-cover {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 430px;
    padding: 1em;
    margin-bottom: 1.75em;
    background-size: cover;
    background-position: center;
    overflow: hidden;
}

.dga-article-content .wp-block-cover__inner-container {
    position: relative;
    z-index: 1;
    width: 100%;
    color: #fff;
}

/* === Image Block === */
.dga-article-content .wp-block-image {
    margin-bottom: 1.75em;
}

.dga-article-content .wp-block-image img {
    max-width: 100%;
    height: auto;
}

.dga-article-content .wp-block-image figcaption {
    margin-top: 0.5em;
    font-size: 0.875em;
    color: #555;
    text-align: center;
}

/* Image alignment - center */
.dga-article-content .wp-block-image.aligncenter,
.dga-article-content .wp-block-image .aligncenter {
    display: table;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

.dga-article-content .wp-block-image.aligncenter img,
.dga-article-content .wp-block-image .aligncenter img {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

/* Image alignment - left */
.dga-article-content .wp-block-image.alignleft {
    float: left;
    margin-right: 1.5em;
    margin-bottom: 1em;
}

/* Image alignment - right */
.dga-article-content .wp-block-image.alignright {
    float: right;
    margin-left: 1.5em;
    margin-bottom: 1em;
}

/* Image size variants */
.dga-article-content .wp-block-image.size-full img {
    width: 100%;
}

.dga-article-content .wp-block-image.is-resized {
    display: table;
}

.dga-article-content .wp-block-image.is-resized.aligncenter {
    margin-left: auto;
    margin-right: auto;
}

/* === Table Block === */
.dga-article-content .wp-block-table {
    margin-bottom: 1.75em;
    overflow-x: auto;
}

.dga-article-content .wp-block-table table {
    width: 100%;
    border-collapse: collapse;
}

.dga-article-content .wp-block-table td,
.dga-article-content .wp-block-table th {
    padding: 0.5em;
    border: 1px solid #ddd;
}

.dga-article-content .wp-block-table th {
    font-weight: 600;
}

/* === Quote Block === */
.dga-article-content .wp-block-quote {
    border-left: 4px solid currentColor;
    padding-left: 1em;
    margin: 0 0 1.75em;
    font-style: italic;
}

.dga-article-content .wp-block-quote cite {
    display: block;
    margin-top: 0.5em;
    font-size: 0.875em;
    font-style: normal;
}

.dga-article-content .wp-block-pullquote {
    border-top: 4px solid currentColor;
    border-bottom: 4px solid currentColor;
    padding: 1.5em 0;
    margin-bottom: 1.75em;
    text-align: center;
}

/* === List Block === */
.dga-article-content .wp-block-list,
.dga-article-content ul,
.dga-article-content ol {
    padding-left: 2em;
    margin-bottom: 1.75em;
}

.dga-article-content li {
    margin-bottom: 0.25em;
}

/* === Code Block === */
.dga-article-content .wp-block-code {
    padding: 1em;
    background: #f5f5f5;
    border-radius: 4px;
    overflow-x: auto;
    font-family: monospace;
    font-size: 0.9em;
    margin-bottom: 1.75em;
}

.dga-article-content .wp-block-code code {
    background: transparent;
    padding: 0;
}

.dga-article-content .wp-block-preformatted {
    padding: 1em;
    background: #f5f5f5;
    border-radius: 4px;
    overflow-x: auto;
    white-space: pre-wrap;
    margin-bottom: 1.75em;
}

/* === Separator Block === */
.dga-article-content .wp-block-separator {
    border: none;
    border-top: 2px solid #ddd;
    margin: 2em auto;
}

.dga-article-content .wp-block-separator.is-style-wide {
    width: 100%;
}

.dga-article-content .wp-block-separator.is-style-dots {
    border: none;
    text-align: center;
}

.dga-article-content .wp-block-separator.is-style-dots::before {
    content: '\00b7 \00b7 \00b7';
    font-size: 1.5em;
    letter-spacing: 2em;
    padding-left: 2em;
}

/* === Button Block === */
.dga-article-content .wp-block-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5em;
    margin-bottom: 1.75em;
}

.dga-article-content .wp-block-button__link {
    display: inline-block;
    padding: 0.75em 1.5em;
    text-decoration: none;
    border-radius: 4px;
    cursor: pointer;
}

/* === Group Block === */
.dga-article-content .wp-block-group {
    margin-bottom: 1.75em;
}

.dga-article-content .wp-block-group.has-background {
    padding: 1.5em;
    border-radius: 4px;
}

/* === Media & Text Block === */
.dga-article-content .wp-block-media-text {
    display: grid !important;
    grid-template-columns: 50% 1fr;
    grid-template-rows: auto;
    margin-bottom: 1.75em;
    align-items: center;
}

.dga-article-content .wp-block-media-text.has-media-on-the-right {
    grid-template-columns: 1fr 50%;
}

.dga-article-content .wp-block-media-text__media {
    margin: 0;
}

.dga-article-content .wp-block-media-text__media img,
.dga-article-content .wp-block-media-text__media video {
    width: 100%;
    height: auto;
    vertical-align: middle;
}

.dga-article-content .wp-block-media-text__content {
    padding: 0 8%;
}

/* === Embed Blocks === */
.dga-article-content .wp-block-embed {
    margin-bottom: 1.75em;
}

.dga-article-content .wp-block-embed__wrapper {
    position: relative;
}

.dga-article-content .wp-block-embed__wrapper iframe {
    max-width: 100%;
}

.dga-article-content .wp-block-embed.is-type-video .wp-block-embed__wrapper {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
}

.dga-article-content .wp-block-embed.is-type-video .wp-block-embed__wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/* === Spacer Block === */
.dga-article-content .wp-block-spacer {
    clear: both;
}

/* === Details Block === */
.dga-article-content .wp-block-details {
    margin-bottom: 1.75em;
}

.dga-article-content .wp-block-details summary {
    cursor: pointer;
    font-weight: 600;
}

/* === Alignment Overrides === */
/* Higher specificity to beat Elementor resets */
.elementor-widget-dga-article-content .dga-article-content .alignwide {
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
}

.elementor-widget-dga-article-content .dga-article-content .alignfull {
    width: 100vw;
    max-width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
}

.elementor-widget-dga-article-content .dga-article-content .aligncenter,
.dga-article-content .aligncenter {
    display: table;
    text-align: center;
    margin-left: auto !important;
    margin-right: auto !important;
}

.elementor-widget-dga-article-content .dga-article-content .aligncenter img,
.dga-article-content .aligncenter img {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

.elementor-widget-dga-article-content .dga-article-content .alignleft,
.dga-article-content .alignleft {
    float: left;
    margin-right: 1.5em;
    margin-bottom: 1em;
}

.elementor-widget-dga-article-content .dga-article-content .alignright,
.dga-article-content .alignright {
    float: right;
    margin-left: 1.5em;
    margin-bottom: 1em;
}

/* figure element inside Elementor - ensure proper display */
.elementor-widget-dga-article-content .dga-article-content figure {
    margin: 0 0 1.75em;
}

.elementor-widget-dga-article-content .dga-article-content figure.aligncenter {
    display: table;
    margin-left: auto !important;
    margin-right: auto !important;
}

.elementor-widget-dga-article-content .dga-article-content figure.aligncenter img {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

/* === Gutenberg Color & Font Size Classes === */
.dga-article-content .has-text-align-center {
    text-align: center;
}

.dga-article-content .has-text-align-left {
    text-align: left;
}

.dga-article-content .has-text-align-right {
    text-align: right;
}

.dga-article-content .has-small-font-size {
    font-size: 0.8125em;
}

.dga-article-content .has-medium-font-size {
    font-size: 1.25em;
}

.dga-article-content .has-large-font-size {
    font-size: 2.25em;
}

.dga-article-content .has-x-large-font-size {
    font-size: 2.75em;
}

/* === Clearfix for Floated Elements === */
.dga-article-content::after {
    content: '';
    display: table;
    clear: both;
}

/* === Responsive === */
@media (max-width: 781px) {
    .dga-article-content .wp-block-columns {
        flex-direction: column;
    }

    .dga-article-content .wp-block-column {
        flex-basis: 100% !important;
    }

    .dga-article-content .wp-block-media-text {
        grid-template-columns: 1fr !important;
    }

    .dga-article-content .wp-block-media-text.has-media-on-the-right {
        grid-template-columns: 1fr !important;
    }

    .dga-article-content .wp-block-media-text__content {
        padding: 1em 0;
    }

    .dga-article-content .alignleft,
    .dga-article-content .alignright {
        float: none;
        margin-left: 0;
        margin-right: 0;
    }

    .dga-article-content .alignfull {
        width: 100%;
        max-width: 100%;
        left: 0;
        right: 0;
        margin-left: 0;
        margin-right: 0;
    }
}
