/**
 * Dream Tanning — Migrated Blog Content Styles (v2)
 *
 * Styles for blog post body content migrated from the old Dream Tanning site.
 * Targets .dt-single-content wrapper applied by single.php.
 *
 * Key features:
 *  - Generous paragraph and section spacing
 *  - Properly indented bullet/numbered lists with gold markers
 *  - Full-width centered images (column too narrow for automatic floats)
 *  - Explicit .alignleft/.alignright floats for author-set image positions
 *  - Headings clear floats so each new section starts cleanly
 *
 * Load via: wp_enqueue_style('dt-blog-content', ...) on is_single().
 */

/* ─── Base Content Wrapper ────────────────────────────── *//* Single-post container: wider than the default so Gutenberg
   two-column layouts have room to sit side-by-side.          */
.dt-single-wrap {
    max-width: 1040px;
}

/* Featured image above the title — cap height for portrait photos */
.dt-single-hero {
    max-width: 720px;
    margin: 0 auto 32px;
    border-radius: var(--dt-radius-lg);
    overflow: hidden;
    text-align: center;
    background: var(--dt-cream);
}
.dt-single-hero img,
.dt-single-hero .dt-single-hero-img {
    display: block;
    max-width: 100%;
    max-height: 520px;
    width: auto;
    height: auto;
    margin: 0 auto;
    object-fit: contain;
}

.dt-single-content {
    color: var(--dt-text);
    font-size: 16px;
    line-height: 1.85;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

/* First element — no extra top margin */
.dt-single-content > *:first-child {
    margin-top: 0;
}

/* ─── Paragraphs ──────────────────────────────────────── */
.dt-single-content p {
    margin-top: 0;
    margin-bottom: 1.6em;
}

.dt-single-content p:last-child {
    margin-bottom: 0;
}

/* ─── Headings ────────────────────────────────────────── */
.dt-single-content h2,
.dt-single-content h3,
.dt-single-content h4,
.dt-single-content h5 {
    font-family: var(--dt-font-serif);
    color: var(--dt-heading);
    margin-top: 2.2em;
    margin-bottom: 0.75em;
    font-weight: 400;
    letter-spacing: 0.03em;
    clear: both; /* always start each heading past any floated image */
}

.dt-single-content h2 {
    font-size: 30px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--dt-border);
}

.dt-single-content h3 {
    font-size: 24px;
}

.dt-single-content h4 {
    font-size: 19px;
    color: var(--dt-gold-dark);
    font-weight: 500;
}

.dt-single-content h5 {
    font-size: 15px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--dt-text-muted);
    font-weight: 600;
}

/* ─── Links ───────────────────────────────────────────── */
.dt-single-content a {
    color: var(--dt-gold-dark);
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color var(--dt-transition);
}

.dt-single-content a:hover {
    color: var(--dt-gold);
}

/* ─── Lists ───────────────────────────────────────────── */
.dt-single-content ul,
.dt-single-content ol {
    margin: 0.4em 0 1.75em 0;
    padding-left: 2.4em;
    list-style-position: outside;
}

.dt-single-content ul {
    list-style-type: disc;
}

.dt-single-content ol {
    list-style-type: decimal;
}

.dt-single-content li {
    margin-bottom: 0.6em;
    line-height: 1.8;
    padding-left: 0.3em;
}

.dt-single-content li:last-child {
    margin-bottom: 0;
}

.dt-single-content ul > li::marker {
    color: var(--dt-gold);
    font-size: 1.05em;
}

.dt-single-content ol > li::marker {
    color: var(--dt-gold-dark);
    font-weight: 600;
}

.dt-single-content li > ul,
.dt-single-content li > ol {
    margin-top: 0.5em;
    margin-bottom: 0.4em;
}

/* ─── Images & Figures ───────────────────────────────────
 *
 * Full-width centered images within the 760px content column.
 * Automatic floating is NOT used (column is too narrow).
 * Explicit .alignleft / .alignright honour the author's choice.
 * ─────────────────────────────────────────────────────── */

/* Figures and WordPress image blocks — full width, no float */
.dt-single-content figure,
.dt-single-content .wp-block-image {
    margin: 2em 0;
    text-align: center;
    clear: both;
}

/* Figure image — constrained to the content column */
.dt-single-content figure img {
    width: 100%;
    height: auto;
    margin: 0 auto;
    border-radius: var(--dt-radius);
    display: block;
    box-shadow: var(--dt-shadow);
}

/* Image inside a paragraph — not floated (plain centred image) */
.dt-single-content p > img:not(.alignleft):not(.alignright):not(.aligncenter) {
    max-width: 100%;
    height: auto;
    border-radius: var(--dt-radius-lg);
    margin: 1.5em auto;
    display: block;
    box-shadow: var(--dt-shadow);
}

/* Standalone img outside a figure or paragraph — not floated */
.dt-single-content > img:not(.alignleft):not(.alignright):not(.aligncenter) {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 1.5em auto;
    border-radius: var(--dt-radius-lg);
    box-shadow: var(--dt-shadow);
}

/* Caption */
.dt-single-content figcaption {
    color: var(--dt-text-muted);
    font-size: 12.5px;
    font-style: italic;
    margin-top: 8px;
    text-align: center;
    letter-spacing: 0.02em;
    line-height: 1.5;
}

/* Explicit author-set alignment — honour it (specificity 0,3,1 beats p>img 0,2,1) */
.dt-single-content p > img.alignleft,
.dt-single-content .alignleft,
.dt-single-content figure.alignleft {
    float: left;
    clear: none;
    margin: 0.4em 2.5em 1.5em 0;
    max-width: 42%;
    height: auto;
    display: block;
}

.dt-single-content p > img.alignright,
.dt-single-content .alignright,
.dt-single-content figure.alignright {
    float: right;
    clear: none;
    margin: 0.4em 0 1.5em 2.5em;
    max-width: 42%;
    height: auto;
    display: block;
}

.dt-single-content .aligncenter,
.dt-single-content figure.aligncenter {
    float: none;
    clear: both;
    display: block;
    margin: 1.8em auto;
    max-width: 100%;
}

.dt-single-content .alignwide {
    clear: both;
    margin-left: -40px;
    margin-right: -40px;
    max-width: calc(100% + 80px);
}

.dt-single-content .alignfull,
.dt-single-content figure.alignfull {
    float: none;
    clear: both;
    margin-left: calc(-50vw + 50%);
    margin-right: calc(-50vw + 50%);
    max-width: 100vw;
    width: 100vw;
    border-radius: 0;
}

/* ─── Gutenberg Columns & UAGB Containers ─────────────── *
 *
 * Two things are happening on migrated posts:
 *  1. Content uses <div class="wp-block-columns is-layout-flex">
 *     with two child <div class="wp-block-column"> blocks.
 *     Core block-library CSS stacks them below 782px.
 *  2. Those columns are wrapped in .wp-block-uagb-container
 *     with an .alignfull class, which makes the outer wrapper
 *     escape to 100vw and pulls the text out of the reading
 *     column.
 *
 * The rules below force columns side-by-side and neutralise
 * .alignfull ONLY for UAGB container wrappers inside posts.
 * ──────────────────────────────────────────────────────── */

/* Neutralise alignfull/alignwide on UAGB containers inside posts */
.dt-single-content .wp-block-uagb-container,
.dt-single-content .wp-block-uagb-container.alignfull,
.dt-single-content .wp-block-uagb-container.alignwide,
.dt-single-content .uagb-container-inner-blocks-wrap {
    display: block !important;
    box-sizing: border-box;
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    background: transparent !important;
}

/* wp-block-columns = flex row, side-by-side */
.dt-single-content .wp-block-columns,
.dt-single-content .is-layout-flex {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 2em !important;
    margin: 2em 0 !important;
    align-items: flex-start !important;
    clear: both;
}

/* Every column gets an equal share */
.dt-single-content .wp-block-columns > .wp-block-column,
.dt-single-content .wp-block-column {
    flex: 1 1 0 !important;
    flex-basis: 0 !important;
    min-width: 0 !important;
    max-width: 100% !important;
    width: auto !important;
    box-sizing: border-box;
}

.dt-single-content .wp-block-column > *:first-child { margin-top: 0; }
.dt-single-content .wp-block-column > *:last-child  { margin-bottom: 0; }

/* Images inside columns fill the column width */
.dt-single-content .wp-block-column img {
    max-width: 100%;
    height: auto;
}
.dt-single-content .wp-block-column figure,
.dt-single-content .wp-block-column .wp-block-image {
    margin: 0 !important;
    clear: none !important;
    text-align: center;
}
.dt-single-content .wp-block-column figure img {
    width: 100%;
    border-radius: var(--dt-radius);
    box-shadow: var(--dt-shadow);
}

/* Stack columns only on narrow screens */
@media (max-width: 768px) {
    .dt-single-content .wp-block-columns,
    .dt-single-content .is-layout-flex {
        flex-direction: column !important;
        flex-wrap: wrap !important;
        gap: 1.5em !important;
    }
    .dt-single-content .wp-block-column {
        flex-basis: auto !important;
    }
}

/* ─── Blockquotes ─────────────────────────────────────── */
.dt-single-content blockquote,
.dt-single-content .dt-blog-blockquote {
    margin: 2em 0;
    padding: 20px 24px 20px 28px;
    border-left: 3px solid var(--dt-gold);
    background: var(--dt-cream);
    border-radius: 0 var(--dt-radius) var(--dt-radius) 0;
    font-style: italic;
    color: var(--dt-heading);
    clear: both;
}

.dt-single-content blockquote p:last-child {
    margin-bottom: 0;
}

.dt-single-content blockquote cite {
    display: block;
    font-size: 13px;
    color: var(--dt-text-muted);
    margin-top: 10px;
    font-style: normal;
    letter-spacing: 0.03em;
}

/* ─── Tables ──────────────────────────────────────────── */
.dt-single-content table,
.dt-single-content .dt-blog-table {
    width: 100%;
    border-collapse: collapse;
    margin: 1.5em 0;
    font-size: 14px;
    background: var(--dt-card);
    border-radius: var(--dt-radius);
    overflow: hidden;
    box-shadow: var(--dt-shadow);
    clear: both;
}

.dt-single-content th,
.dt-single-content td {
    padding: 10px 14px;
    border: 1px solid var(--dt-border);
    text-align: left;
}

.dt-single-content th {
    background: var(--dt-cream);
    color: var(--dt-gold-dark);
    font-weight: 600;
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: 0.06em;
}

.dt-single-content tr:nth-child(even) {
    background: rgba(232, 184, 74, 0.04);
}

/* ─── Code Blocks ─────────────────────────────────────── */
.dt-single-content code {
    background: rgba(58, 44, 14, 0.06);
    padding: 2px 6px;
    border-radius: 3px;
    font-size: 0.9em;
    font-family: 'Fira Code', 'Consolas', monospace;
    color: var(--dt-gold-dark);
}

.dt-single-content pre,
.dt-single-content .dt-blog-code {
    background: #2c2210;
    color: #f0e6d0;
    padding: 20px;
    border-radius: var(--dt-radius);
    overflow-x: auto;
    margin: 1.5em 0;
    border: 1px solid var(--dt-border);
    clear: both;
}

.dt-single-content pre code {
    background: none;
    padding: 0;
    font-size: 14px;
    color: inherit;
}

/* ─── Horizontal Rule ─────────────────────────────────── */
.dt-single-content hr {
    border: none;
    border-top: 1px solid var(--dt-border);
    margin: 2.5em 0;
    clear: both;
}

/* ─── Embedded Content ────────────────────────────────── */
.dt-single-content .dt-blog-embed {
    position: relative;
    padding-bottom: 56.25%; /* 16:9 */
    height: 0;
    overflow: hidden;
    margin: 2em 0;
    border-radius: var(--dt-radius-lg);
    box-shadow: var(--dt-shadow);
    clear: both;
}

.dt-single-content .dt-blog-embed iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

/* WordPress embed blocks */
.dt-single-content .wp-block-embed {
    margin: 2em 0;
    clear: both;
}

.dt-single-content .wp-block-embed__wrapper {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
    border-radius: var(--dt-radius-lg);
    box-shadow: var(--dt-shadow);
}

.dt-single-content .wp-block-embed__wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/* ─── Gallery ─────────────────────────────────────────── */
.dt-single-content .dt-blog-gallery,
.dt-single-content .wp-block-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 12px;
    margin: 2em 0;
    float: none;
    clear: both;
}

.dt-single-content .dt-blog-gallery img,
.dt-single-content .wp-block-gallery img {
    margin: 0;
    border-radius: var(--dt-radius);
    width: 100%;
    height: 200px;
    object-fit: cover;
    box-shadow: none;
}

/* ─── Separator / Spacer ──────────────────────────────── */
.dt-single-content .wp-block-separator {
    border: none;
    border-top: 1px solid var(--dt-border);
    margin: 2.5em auto;
    max-width: 100px;
    clear: both;
}

.dt-single-content .wp-block-separator.is-style-wide {
    max-width: 100%;
}

.dt-single-content .wp-block-separator.is-style-dots {
    border: none;
    text-align: center;
    max-width: 100%;
}

.dt-single-content .wp-block-separator.is-style-dots::before {
    content: '···';
    color: var(--dt-gold);
    font-size: 24px;
    letter-spacing: 16px;
}

/* ─── Clearfix ────────────────────────────────────────── */
.dt-single-content::after {
    content: '';
    display: table;
    clear: both;
}

/* ─── Mobile: collapse explicit floats ≤ 768px ─────────── */
@media (max-width: 768px) {
    .dt-single-content .alignleft,
    .dt-single-content .alignright,
    .dt-single-content figure.alignleft,
    .dt-single-content figure.alignright {
        float: none;
        max-width: 100%;
        margin: 1.5em 0;
    }

    .dt-single-content .alignwide {
        margin-left: 0;
        margin-right: 0;
        max-width: 100%;
    }
}

/* ─── Gallery ─────────────────────────────────────────── */
.dt-single-content .dt-blog-gallery,
.dt-single-content .wp-block-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 12px;
    margin: 2em 0;
}

.dt-single-content .dt-blog-gallery img,
.dt-single-content .wp-block-gallery img {
    margin: 0;
    border-radius: var(--dt-radius);
    width: 100%;
    height: 200px;
    object-fit: cover;
}

/* ─── Separator / Spacer ──────────────────────────────── */
.dt-single-content .wp-block-separator {
    border: none;
    border-top: 1px solid var(--dt-border);
    margin: 2em auto;
    max-width: 100px;
}

.dt-single-content .wp-block-separator.is-style-wide {
    max-width: 100%;
}

.dt-single-content .wp-block-separator.is-style-dots {
    border: none;
    text-align: center;
    max-width: 100%;
}

.dt-single-content .wp-block-separator.is-style-dots::before {
    content: '···';
    color: var(--dt-gold);
    font-size: 24px;
    letter-spacing: 16px;
}

/* ─── Buttons (Gutenberg) ─────────────────────────────── */
.dt-single-content .wp-block-button__link {
    background: var(--dt-gold);
    color: var(--dt-white);
    padding: 10px 24px;
    border-radius: var(--dt-radius);
    font-weight: 600;
    text-decoration: none;
    display: inline-block;
    transition: all var(--dt-transition);
    box-shadow: var(--dt-shadow);
}

.dt-single-content .wp-block-button__link:hover {
    background: var(--dt-gold-dark);
    color: var(--dt-white);
}

/* ─── Clearfix for Floated Images ─────────────────────── */
.dt-single-content::after {
    content: '';
    display: table;
    clear: both;
}

/* ─── Responsive ──────────────────────────────────────── */
@media (max-width: 768px) {
    .dt-single-content {
        font-size: 15px;
        line-height: 1.75;
    }

    .dt-single-content h2 { font-size: 24px; }
    .dt-single-content h3 { font-size: 20px; }

    .dt-single-content .alignleft,
    .dt-single-content .alignright {
        float: none;
        max-width: 100%;
        margin: 1em 0;
    }

    .dt-single-content .alignwide {
        margin-left: -16px;
        margin-right: -16px;
        max-width: calc(100% + 32px);
    }

    .dt-single-content .dt-blog-gallery,
    .dt-single-content .wp-block-gallery {
        grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
        gap: 8px;
    }

    .dt-single-content table {
        display: block;
        overflow-x: auto;
    }
}
