/* =========================================================
   FOUNDAM FRAMEWORK v0.4.1
   Gutenberg block compatibility
   ========================================================= */

/* Remove Gutenberg's default block gaps where FoundaM sections own spacing. */
.foundam-home > .wp-block-group,
.foundam-page > .wp-block-group,
.fm-section.wp-block-group,
.fm-page-hero.wp-block-group,
.fm-proof-strip.wp-block-group,
.fm-cta--01.wp-block-group {
    margin-block-start: 0;
    margin-block-end: 0;
}

.fm-eyebrow.wp-block-paragraph {
    margin-top: 0;
}

.fm-page-hero__title.wp-block-heading,
.fm-heading.wp-block-heading,
.fm-hero-title.wp-block-heading {
    margin-top: 0;
}

.fm-page-hero__actions.wp-block-buttons,
.fm-actions.wp-block-buttons {
    justify-content: flex-start;
}

.fm-page-hero__actions .wp-block-button,
.fm-actions .wp-block-button {
    margin: 0;
}

.fm-button-block .wp-block-button__link,
.fm-button-block.wp-block-button .wp-block-button__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 0 25px;
    border-radius: 0;
    background: var(--fm-color-ink);
    color: #fff;
    font-size: 15px;
    font-weight: var(--fm-weight-semibold);
    text-decoration: none;
}

.fm-button-block--light .wp-block-button__link {
    background: var(--fm-color-on-dark);
    color: var(--fm-color-ink);
}

.fm-text-link-block {
    display: inline-block;
    margin: 0;
    font-size: var(--fm-text-sm);
    font-weight: var(--fm-weight-semibold);
}

.fm-text-link-block a {
    color: inherit;
    text-decoration: none;
}

/* Full-page pattern shell. */
.fm-editable-layout {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

/* Standard heading block used by patterns. */
.fm-block-section-heading {
    max-width: 820px;
}

.fm-block-section-heading > .fm-section-heading__copy {
    margin-top: var(--fm-space-6);
}

/* Homepage hero pattern. */
.fm-hero-title {
    width: 760px;
    max-width: 100%;
    margin: 0;
    font-size: clamp(66px, 6.2vw, 100px);
    line-height: .88;
    letter-spacing: -.065em;
    font-weight: 540;
}

.fm-hero-title em {
    display: block;
    margin-top: 8px;
    font-family: var(--fm-font-serif);
    font-size: 1.06em;
    font-weight: 400;
    line-height: .9;
    letter-spacing: -.055em;
}

.fm-hero-art-title {
    position: absolute;
    left: 36px;
    top: 31%;
    margin: 0;
    font-size: clamp(45px, 4.3vw, 70px);
    line-height: .84;
    letter-spacing: -.07em;
    font-weight: 620;
}

/* Proof strip blocks. */
.fm-proof-strip__item.wp-block-group > * {
    margin-block-start: 0;
}

.fm-proof-strip__item .fm-proof-value {
    margin: 0 0 var(--fm-space-3);
    color: var(--fm-color-on-dark);
    font-size: clamp(1.3rem, 2.5vw, 2rem);
    font-weight: var(--fm-weight-medium);
    letter-spacing: var(--fm-tracking-heading);
}

.fm-proof-strip__item .fm-proof-label {
    margin: 0;
    color: var(--fm-color-on-dark-muted);
    font-size: var(--fm-text-xs);
    line-height: 1.45;
    text-transform: uppercase;
    letter-spacing: var(--fm-tracking-label);
}

/* Cards generated from blocks. */
.fm-info-card.wp-block-group > * {
    margin-block-start: 0;
}

.fm-info-card .fm-info-card__index {
    margin-bottom: var(--fm-space-8);
}

/* FAQ blocks. */
.fm-faq-item.wp-block-group > * {
    margin-block-start: 0;
}

/* CTA block layout. */
.fm-cta--01 .fm-cta__copy.wp-block-paragraph {
    color: var(--fm-color-on-dark-muted);
}

/* Gutenberg image support for project cards and case studies. */
.fm-project-image-block {
    margin: 0;
}

.fm-project-image-block img {
    width: 100%;
    height: auto;
    display: block;
}

/* Editor-only visual help. */
.editor-styles-wrapper .fm-editable-layout {
    max-width: none;
}

.editor-styles-wrapper .fm-hero,
.editor-styles-wrapper .fm-page-hero,
.editor-styles-wrapper .fm-section,
.editor-styles-wrapper .fm-dark-section,
.editor-styles-wrapper .fm-proof-strip,
.editor-styles-wrapper .fm-cta--01 {
    border: 1px dashed rgba(0,0,0,.12);
}

@media (max-width: 767px) {
    .fm-hero-title {
        width: auto;
        font-size: clamp(55px, 16vw, 78px);
        line-height: .9;
    }
}

/* Block versions of reusable framework components. */
.fm-service-card > .fm-text-link-block {
    position: absolute;
    left: 0;
    bottom: 16px;
}

.fm-service-card + .fm-service-card > .fm-text-link-block {
    left: 38px;
}

.fm-service-card > .wp-block-heading {
    margin: 0;
    font-size: var(--fm-text-h3);
    line-height: 1.04;
    letter-spacing: var(--fm-tracking-heading);
    font-weight: var(--fm-weight-medium);
}

.fm-service-card > p:not(.fm-number):not(.fm-text-link-block) {
    margin: var(--fm-space-5) 0 var(--fm-space-6);
    color: var(--fm-color-muted);
    line-height: var(--fm-leading-body);
    font-size: var(--fm-text-base);
}

.fm-work-visual--editable {
    min-height: 520px;
    padding: var(--fm-space-7);
    background: var(--fm-color-dark);
    color: var(--fm-color-on-dark);
}

.fm-project-placeholder {
    max-width: 320px;
    margin: auto;
    padding: var(--fm-space-6);
    border: 1px dashed var(--fm-color-on-dark-muted);
    color: var(--fm-color-on-dark-muted);
    text-align: center;
    line-height: var(--fm-leading-body);
}

.fm-process-step > .wp-block-heading {
    margin: 0 0 var(--fm-space-4);
    color: var(--fm-color-on-dark);
    font-size: 30px;
    font-weight: var(--fm-weight-medium);
}

.fm-process-step > p:not(.fm-process-number) {
    margin: 0;
    color: var(--fm-color-on-dark-muted);
    line-height: var(--fm-leading-body);
}

.fm-capability-list > p {
    display: flex;
    align-items: center;
    min-height: 64px;
    margin: 0;
    border-bottom: var(--fm-border-default);
    color: var(--fm-color-ink);
    font-size: var(--fm-text-base);
    font-weight: var(--fm-weight-medium);
}

.fm-button-block--outline .wp-block-button__link {
    background: transparent;
    color: var(--fm-color-ink);
    border: 1px solid var(--fm-color-ink);
}

.fm-page-hero .fm-button-block--outline .wp-block-button__link:hover {
    background: var(--fm-color-ink);
    color: #fff;
}

.fm-insights-query .fm-insights-grid {
    margin: 0;
    padding: 0;
}

.fm-insight-card .wp-block-post-title {
    margin: 0 0 var(--fm-space-4);
    font-size: clamp(1.35rem, 2.2vw, 1.9rem);
    line-height: 1.12;
    font-weight: var(--fm-weight-medium);
}

.fm-insight-card .wp-block-post-title a {
    color: var(--fm-color-ink);
    text-decoration: none;
}

.fm-insight-card .wp-block-post-excerpt {
    color: var(--fm-color-muted);
    line-height: var(--fm-leading-body);
}

@media (max-width: 767px) {
    .fm-service-card > .fm-text-link-block,
    .fm-service-card + .fm-service-card > .fm-text-link-block {
        left: 0;
        bottom: var(--fm-space-6);
    }

    .fm-work-visual--editable {
        min-height: 360px;
    }
}


/* =========================================================
   KUMUSHA CASE STUDY / WORK VISUAL
   Public-facing stand-in until project photography is added.
   ========================================================= */

.fm-work-visual--kumusha {
    position: relative;
    background: var(--fm-color-dark);
}

.fm-work-visual--kumusha::before {
    content: "";
    position: absolute;
    top: 34px;
    left: 34px;
    width: 84px;
    height: 7px;
    background: var(--fm-color-lime);
}

.fm-project-placeholder--case {
    max-width: 520px;
    margin: auto;
    padding: 0;
    border: 0;
    color: var(--fm-color-on-dark-muted);
    text-align: left;
    font-size: var(--fm-text-sm);
    font-weight: var(--fm-weight-semibold);
    line-height: 1.5;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.fm-project-placeholder--case strong {
    display: block;
    margin-bottom: var(--fm-space-4);
    color: var(--fm-color-on-dark);
    font-size: clamp(2rem, 4vw, 4.4rem);
    line-height: 0.95;
    letter-spacing: var(--fm-tracking-display);
    text-transform: none;
}

.fm-case-media-placeholder {
    display: flex;
    align-items: flex-end;
    min-height: 520px;
    padding: clamp(32px, 6vw, 80px);
    background: var(--fm-color-dark);
    color: var(--fm-color-on-dark-muted);
}

.fm-case-media-placeholder p {
    margin: 0;
    font-size: var(--fm-text-sm);
    font-weight: var(--fm-weight-semibold);
    line-height: 1.55;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.fm-case-media-placeholder strong {
    display: block;
    margin-bottom: var(--fm-space-4);
    color: var(--fm-color-lime);
    font-size: clamp(2.2rem, 5vw, 5.5rem);
    line-height: 0.9;
    letter-spacing: var(--fm-tracking-display);
    text-transform: none;
}

/* =========================================================
   FOUNDAM v0.4.1 — GUTENBERG LAYOUT LOCK
   Gutenberg Group blocks use WordPress layout classes that can
   override the framework's structural grids. These rules keep
   FoundaM page patterns visually identical to the coded sections.
   ========================================================= */

/* Full-width page and section shells must not inherit content-size limits. */
.fm-editable-layout,
.foundam-home--editable,
.foundam-page--editable,
.fm-editable-layout > .wp-block-group.alignfull,
.foundam-home--editable > .wp-block-group.alignfull,
.foundam-page--editable > .wp-block-group.alignfull {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Framework containers own their width, not Gutenberg's constrained layout. */
.fm-editable-layout .wp-block-group.fm-container,
.foundam-home--editable .wp-block-group.fm-container,
.foundam-page--editable .wp-block-group.fm-container {
    width: min(calc(100% - 48px), var(--fm-container-wide)) !important;
    max-width: var(--fm-container-wide) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Structural grid children must not be capped to Gutenberg's content width. */
.fm-editable-layout :is(
    .fm-hero-grid,
    .fm-service-grid,
    .fm-feature-project,
    .fm-process-grid,
    .fm-capability-layout,
    .fm-about-grid,
    .fm-cta__grid,
    .fm-proof-strip__grid,
    .fm-page-hero__grid,
    .fm-content-split__grid,
    .fm-location__grid,
    .fm-faq__layout,
    .fm-contact-panel,
    .fm-project-form-layout
) > *,
.foundam-home--editable :is(
    .fm-hero-grid,
    .fm-service-grid,
    .fm-feature-project,
    .fm-process-grid,
    .fm-capability-layout,
    .fm-about-grid,
    .fm-cta__grid,
    .fm-proof-strip__grid
) > *,
.foundam-page--editable :is(
    .fm-page-hero__grid,
    .fm-content-split__grid,
    .fm-location__grid,
    .fm-faq__layout,
    .fm-contact-panel,
    .fm-project-form-layout
) > * {
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Homepage structural layouts. */
@media (min-width: 768px) {
    .foundam-home--editable .wp-block-group.fm-hero-grid,
    .fm-editable-layout .wp-block-group.fm-hero-grid {
        display: grid !important;
        grid-template-columns: minmax(0, 0.83fr) minmax(500px, 1.17fr) !important;
        align-items: center !important;
        gap: 45px !important;
    }

    .foundam-home--editable .wp-block-group.fm-service-grid,
    .fm-editable-layout .wp-block-group.fm-service-grid {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    .foundam-home--editable .wp-block-group.fm-feature-project,
    .fm-editable-layout .wp-block-group.fm-feature-project {
        display: grid !important;
        grid-template-columns: 1.35fr 0.65fr !important;
        align-items: center !important;
        gap: var(--fm-space-grid) !important;
    }

    .foundam-home--editable .wp-block-group.fm-feature-project.fm-project-reverse,
    .fm-editable-layout .wp-block-group.fm-feature-project.fm-project-reverse {
        grid-template-columns: 0.65fr 1.35fr !important;
    }

    .foundam-home--editable .wp-block-group.fm-process-grid,
    .fm-editable-layout .wp-block-group.fm-process-grid {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    .foundam-home--editable .wp-block-group.fm-capability-layout,
    .fm-editable-layout .wp-block-group.fm-capability-layout {
        display: grid !important;
        grid-template-columns: 0.9fr 1.1fr !important;
        gap: 110px !important;
    }

    .foundam-home--editable .wp-block-group.fm-about-grid,
    .fm-editable-layout .wp-block-group.fm-about-grid {
        display: grid !important;
        grid-template-columns: 0.8fr 1.2fr !important;
        gap: 100px !important;
    }

    .foundam-home--editable .wp-block-group.fm-cta__grid,
    .fm-editable-layout .wp-block-group.fm-cta__grid {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) minmax(320px, 0.7fr) !important;
        align-items: end !important;
        gap: var(--fm-space-grid) !important;
    }

    .foundam-home--editable .wp-block-group.fm-proof-strip__grid,
    .fm-editable-layout .wp-block-group.fm-proof-strip__grid {
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }

    /* Standard editable page layouts. */
    .foundam-page--editable .wp-block-group.fm-page-hero__grid,
    .fm-editable-layout .wp-block-group.fm-page-hero__grid {
        display: grid !important;
        grid-template-columns: minmax(0, 1.15fr) minmax(300px, 0.65fr) !important;
    }

    .foundam-page--editable .wp-block-group.fm-content-split__grid,
    .fm-editable-layout .wp-block-group.fm-content-split__grid {
        display: grid !important;
        grid-template-columns: 0.82fr 1.18fr !important;
    }
}

@media (min-width: 768px) and (max-width: 1150px) {
    .foundam-home--editable .wp-block-group.fm-hero-grid,
    .fm-editable-layout .wp-block-group.fm-hero-grid {
        grid-template-columns: minmax(0, 0.9fr) minmax(430px, 1.1fr) !important;
        gap: 30px !important;
    }
}

@media (max-width: 767px) {
    .fm-editable-layout .wp-block-group.fm-container,
    .foundam-home--editable .wp-block-group.fm-container,
    .foundam-page--editable .wp-block-group.fm-container {
        width: calc(100% - 36px) !important;
    }

    .foundam-home--editable .wp-block-group.fm-hero-grid,
    .foundam-home--editable .wp-block-group.fm-service-grid,
    .foundam-home--editable .wp-block-group.fm-process-grid,
    .foundam-home--editable .wp-block-group.fm-capability-layout,
    .foundam-home--editable .wp-block-group.fm-about-grid,
    .foundam-home--editable .wp-block-group.fm-cta__grid,
    .fm-editable-layout .wp-block-group.fm-hero-grid,
    .fm-editable-layout .wp-block-group.fm-service-grid,
    .fm-editable-layout .wp-block-group.fm-process-grid,
    .fm-editable-layout .wp-block-group.fm-capability-layout,
    .fm-editable-layout .wp-block-group.fm-about-grid,
    .fm-editable-layout .wp-block-group.fm-cta__grid {
        display: block !important;
    }

    .foundam-home--editable .wp-block-group.fm-proof-strip__grid,
    .fm-editable-layout .wp-block-group.fm-proof-strip__grid {
        display: grid !important;
        grid-template-columns: 1fr !important;
    }
}
