/**
 * Core Gutenberg prose — section wrapper .akdev-prose (ACF-like #fafafa + 80px vertical rhythm).
 * Fallback: unwrapped direct children of main (legacy markup without block comments).
 */

/* —— Prose section (matches insights-cards / case-challenge light sections) —— */
.akdev-prose {
    --akdev-prose-pad-y: 40px;
    box-sizing: border-box;
    display: block;
    width: 100%;
    background: #fafafa;
    padding: var(--akdev-prose-pad-y) var(--akdev-content-pad-x);
}

@media (min-width: 768px) {
    .akdev-prose {
        --akdev-prose-pad-y: 80px;
    }
}

.akdev-prose__inner {
    width: 100%;
    max-width: 100%;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--akdev-block-gap);
}

/* ≥1400: inner cap 1440px centered — same as centered-containers on ACF section divs */
@media (min-width: 1400px) {
    .akdev-prose__inner {
        max-width: var(--akdev-section-max);
        margin-inline: auto;
    }
}

/* Same-bg section below: avoid double top padding (e.g. prose → insights-cards) */
.akdev-prose + :is(
    .insights-cards,
    .case-challenge,
    .case-solution,
    .case-client-overview,
    .case-results,
    .services-what-we-do,
    .services-clutch-badges
) {
    padding-top: 0;
}

.akdev-prose:has(+ :is(
    .insights-cards,
    .case-challenge,
    .case-solution,
    .case-client-overview,
    .case-results,
    .services-what-we-do,
    .services-clutch-badges
)) {
    padding-bottom: 40px;
}

@media (min-width: 768px) {
    .akdev-prose:has(+ :is(
        .insights-cards,
        .case-challenge,
        .case-solution,
        .case-client-overview,
        .case-results,
        .services-what-we-do,
        .services-clutch-badges
    )) {
        padding-bottom: 48px;
    }
}

/* Reset per-block layout inside prose — spacing from flex gap on __inner */
.akdev-prose__inner > * {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

/* —— Paragraph —— */
.akdev-prose__inner > :is(.wp-block-paragraph, p:not([class])),
.blog-post :is(.wp-block-paragraph, p:not([class])) {
    font-family: 'Gilroy', sans-serif;
    font-weight: var(--akdev-font-body-weight);
    font-size: var(--akdev-font-body-size);
    line-height: var(--akdev-font-body-lh);
    color: var(--black);
}

/* —— Headings (Figma 1195-13454: bold title + body below) —— */
.akdev-prose__inner > :is(
    .wp-block-heading,
    :is(h1, h2, h3, h4, h5, h6):not([class])
),
.blog-post :is(
    .wp-block-heading,
    :is(h1, h2, h3, h4, h5, h6):not([class])
) {
    font-family: 'Gilroy', sans-serif;
    color: var(--black);
}

.akdev-prose__inner > :is(h2.wp-block-heading, h2:not([class])),
.blog-post :is(h2.wp-block-heading, h2:not([class])) {
    font-weight: 600;
    font-size: var(--akdev-font-h2-size);
    line-height: 1.193;
}

/* Tighter gap between heading and the paragraph that follows it */
.akdev-prose__inner > :is(
    .wp-block-heading,
    :is(h1, h2, h3, h4, h5, h6):not([class])
):has(+ :is(.wp-block-paragraph, p:not([class]))),
.blog-post :is(
    .wp-block-heading,
    :is(h1, h2, h3, h4, h5, h6):not([class])
):has(+ :is(.wp-block-paragraph, p:not([class]))) {
    margin-bottom: -8px;
}

.akdev-prose__inner > :is(h3.wp-block-heading, h3:not([class])),
.blog-post :is(h3.wp-block-heading, h3:not([class])) {
    font-weight: 600;
    font-size: var(--akdev-font-h3-size);
    line-height: 1.25;
}

.akdev-prose__inner > :is(
    h4.wp-block-heading,
    h5.wp-block-heading,
    h6.wp-block-heading,
    h4:not([class]),
    h5:not([class]),
    h6:not([class])
),
.blog-post :is(
    h4.wp-block-heading,
    h5.wp-block-heading,
    h6.wp-block-heading,
    h4:not([class]),
    h5:not([class]),
    h6:not([class])
) {
    font-weight: 600;
    font-size: var(--akdev-font-h4-size);
    line-height: 1.3;
}

.akdev-prose__inner > h1:is(.wp-block-heading, :not([class])),
.blog-post h1:is(.wp-block-heading, :not([class])) {
    font-weight: 600;
    font-size: var(--akdev-font-h2-size);
    line-height: 1.2;
}

/* —— Lists (Figma 1195-13503: green arrow markers) —— */
.akdev-prose__inner > :is(.wp-block-list, ul:not([class]), ol:not([class])),
.blog-post :is(.wp-block-list, ul:not([class]), ol:not([class])) {
    padding-left: 0;
    list-style: none;
    font-family: 'Gilroy', sans-serif;
    font-weight: var(--akdev-font-body-weight);
    font-size: var(--akdev-font-body-size);
    line-height: var(--akdev-font-body-lh);
    color: var(--black);
}

.akdev-prose__inner > :is(.wp-block-list, ul:not([class]), ol:not([class])) li,
.blog-post :is(.wp-block-list, ul:not([class]), ol:not([class])) li {
    position: relative;
    margin-bottom: 16px;
    padding-left: 34px;
}

.akdev-prose__inner > :is(.wp-block-list, ul:not([class])):not(ol) li::before,
.blog-post :is(.wp-block-list, ul:not([class])):not(ol) li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.35em;
    width: 22px;
    height: 18px;
    border: none;
    border-radius: 0;
    background-color: var(--lazure-green);
    mask: var(--akdev-list-arrow) center / contain no-repeat;
    -webkit-mask: var(--akdev-list-arrow) center / contain no-repeat;
}

.akdev-prose__inner > :is(.wp-block-list, ul:not([class]), ol:not([class])) li:last-child,
.blog-post :is(.wp-block-list, ul:not([class]), ol:not([class])) li:last-child {
    margin-bottom: 0;
}

.akdev-prose__inner > :is(ol.wp-block-list, ol:not([class])),
.blog-post :is(ol.wp-block-list, ol:not([class])) {
    list-style: decimal;
    padding-left: 1.5rem;
}

.akdev-prose__inner > :is(ol.wp-block-list, ol:not([class])) li,
.blog-post :is(ol.wp-block-list, ol:not([class])) li {
    padding-left: 0.25rem;
}

.akdev-prose__inner > :is(ol.wp-block-list, ol:not([class])) li::before,
.blog-post :is(ol.wp-block-list, ol:not([class])) li::before {
    display: none;
}

/* —— Quote (Figma 1195-13632: green left rule, italic, light panel) —— */
.akdev-prose__inner > :is(.wp-block-quote, blockquote:not([class])),
.blog-post :is(.wp-block-quote, blockquote:not([class])) {
    margin: 0;
    padding: 24px 24px 24px 28px;
    border: none;
    border-left: 4px solid var(--lazure-green);
    border-radius: 0;
    background: #f7f7f7;
    font-family: 'Gilroy', sans-serif;
    font-weight: var(--akdev-font-body-weight);
    font-size: var(--akdev-font-quote-size);
    line-height: var(--akdev-font-quote-lh);
    font-style: italic;
    color: var(--black);
}

.akdev-prose__inner > :is(.wp-block-quote, blockquote:not([class]))::before,
.akdev-prose__inner > :is(.wp-block-quote, blockquote:not([class]))::after,
.blog-post :is(.wp-block-quote, blockquote:not([class]))::before,
.blog-post :is(.wp-block-quote, blockquote:not([class]))::after {
    content: none;
    display: none;
}

.akdev-prose__inner > :is(.wp-block-quote, blockquote:not([class])) p,
.blog-post :is(.wp-block-quote, blockquote:not([class])) p {
    margin: 0;
    font-style: italic;
    color: inherit;
}

.akdev-prose__inner > :is(.wp-block-quote, blockquote:not([class])) cite,
.blog-post :is(.wp-block-quote, blockquote:not([class])) cite {
    display: block;
    margin-top: 1rem;
    font-size: var(--akdev-font-body-size);
    font-style: normal;
    color: var(--gray);
}

/* —— Image —— */
.akdev-prose__inner > :is(.wp-block-image, figure:is(.wp-block-image, :not([class]))),
.blog-post :is(.wp-block-image, figure:is(.wp-block-image, :not([class]))) {
    margin: 0;
}

.akdev-prose__inner > :is(.wp-block-image, figure:is(.wp-block-image, :not([class]))) img,
.blog-post :is(.wp-block-image, figure:is(.wp-block-image, :not([class]))) img {
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
}

.akdev-prose__inner > :is(.wp-block-image, figure:is(.wp-block-image, :not([class]))) figcaption,
.blog-post :is(.wp-block-image, figure:is(.wp-block-image, :not([class]))) figcaption {
    margin-top: 0.4rem;
    text-align: center;
    font-family: 'Gilroy', sans-serif;
    font-size: 0.9rem;
    line-height: 1.4;
    color: var(--gray);
}

/* —— Separator —— */
.akdev-prose__inner > :is(.wp-block-separator, hr:not([class])),
.blog-post :is(.wp-block-separator, hr:not([class])) {
    border: none;
    border-top: 1px solid var(--light-gray);
}

/* —— Links —— */
.akdev-prose__inner > :is(
    .wp-block-paragraph,
    p:not([class]),
    .wp-block-list,
    ul:not([class]),
    ol:not([class]),
    .wp-block-quote,
    blockquote:not([class])
) a,
.blog-post :is(
    .wp-block-paragraph,
    p:not([class]),
    .wp-block-list,
    ul:not([class]),
    ol:not([class]),
    .wp-block-quote,
    blockquote:not([class])
) a {
    color: var(--lazure-green);
    font-weight: 600;
    text-decoration: none;
    transition: color 0.2s ease;
}

.akdev-prose__inner > :is(
    .wp-block-paragraph,
    p:not([class]),
    .wp-block-list,
    ul:not([class]),
    ol:not([class]),
    .wp-block-quote,
    blockquote:not([class])
) a:hover,
.blog-post :is(
    .wp-block-paragraph,
    p:not([class]),
    .wp-block-list,
    ul:not([class]),
    ol:not([class]),
    .wp-block-quote,
    blockquote:not([class])
) a:hover {
    color: var(--gray-blue);
}

/* —— Fallback: unwrapped blocks (no block comments in DB) —— */
:is(main, .editor-styles-wrapper) > :is(
    .wp-block-paragraph,
    p:not([class]),
    .wp-block-heading,
    :is(h1, h2, h3, h4, h5, h6):not([class]),
    .wp-block-list,
    ul:not([class]),
    ol:not([class]),
    .wp-block-quote,
    blockquote:not([class]),
    .wp-block-image,
    figure:is(.wp-block-image, :not([class])),
    .wp-block-separator,
    hr:not([class])
) {
    box-sizing: border-box;
    width: 100%;
    max-width: min(100%, calc(var(--akdev-content-max) + 2 * var(--akdev-content-pad-x)));
    margin-inline: auto;
    padding-inline: var(--akdev-content-pad-x);
}

main > :is(section.alignfull, a.alignfull) + :is(
    .wp-block-paragraph,
    p:not([class]),
    .wp-block-heading,
    :is(h1, h2, h3, h4, h5, h6):not([class]),
    .wp-block-list,
    ul:not([class]),
    ol:not([class]),
    .wp-block-quote,
    blockquote:not([class])
) {
    margin-top: var(--akdev-prose-pad-y, 40px);
}

@media (min-width: 768px) {
    main > :is(section.alignfull, a.alignfull) + :is(
        .wp-block-paragraph,
        p:not([class]),
        .wp-block-heading,
        :is(h1, h2, h3, h4, h5, h6):not([class]),
        .wp-block-list,
        ul:not([class]),
        ol:not([class]),
        .wp-block-quote,
        blockquote:not([class])
    ) {
        margin-top: 80px;
    }
}

.blog-post:has(
    .wp-block-paragraph,
    p:not([class]),
    .wp-block-heading,
    .wp-block-list,
    .wp-block-quote,
    .wp-block-image,
    .wp-block-separator
) {
    width: 100%;
    max-width: none;
    margin-inline: 0;
}
