/* MGM Gutenberg System: frontend styles. All rules are intentionally root-scoped. */
.mgm-gutenberg {
    --mgm-container: 80rem;
    --mgm-content: 61.25rem;
    --mgm-space-xs: 0.5rem;
    --mgm-space-s: 1rem;
    --mgm-space-m: 1.5rem;
    --mgm-space-l: 2.5rem;
    --mgm-space-xl: 4rem;
    --mgm-space-section: clamp(4rem, 9vw, 8rem);
    --mgm-black: #000000;
    --mgm-white: #ffffff;
    --mgm-surface: #f6f6f7;
    --mgm-border: #e4e4e8;
    --mgm-base: #4d4d66;
    --mgm-raspberry: #a2002e;
    --mgm-raspberry-light: #e63366;
    --mgm-lavender: #6b297d;
    --mgm-marine: #1a569e;
    --mgm-radius-card: 1.25rem;
    --mgm-radius-panel: 2.125rem;
    --mgm-shadow: 0 1rem 2.5rem rgb(33 33 33 / 8%);
    color: var(--mgm-base);
    font-family: Roboto, Arial, sans-serif;
    font-size: clamp(1rem, 1.1vw, 1.1875rem);
    font-weight: 300;
    line-height: 1.6;
}

.mgm-gutenberg * {
    box-sizing: border-box;
}

.mgm-gutenberg :where(.mgm-hero, .mgm-section-heading, .mgm-feature-grid, .mgm-faq, .mgm-contact-cta) {
    margin-inline: auto;
    max-width: var(--mgm-container);
    padding-inline: clamp(1rem, 4vw, 3rem);
}

.mgm-gutenberg .mgm-hero {
    align-content: center;
    min-height: min(80vh, 52rem);
    padding-block: var(--mgm-space-section);
}

.mgm-gutenberg .mgm-eyebrow {
    color: var(--mgm-raspberry);
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    margin-bottom: var(--mgm-space-m);
    text-transform: uppercase;
}

.mgm-gutenberg .mgm-hero__title {
    color: var(--mgm-black);
    font-size: clamp(2.8rem, 6vw, 4.8rem);
    font-weight: 900;
    letter-spacing: -0.035em;
    line-height: 1.04;
    max-width: 15ch;
}

.mgm-gutenberg .mgm-hero__lead {
    font-size: clamp(1.25rem, 2vw, 1.75rem);
    max-width: 42rem;
}

.mgm-gutenberg .mgm-section-heading {
    padding-block: var(--mgm-space-section);
}

.mgm-gutenberg .mgm-section-heading__label {
    color: var(--mgm-raspberry);
    font-weight: 700;
}

.mgm-gutenberg .mgm-section-heading__side {
    flex: 0 1 33.333%;
}

.mgm-gutenberg .mgm-section-heading__body {
    flex: 1 1 66.667%;
}

.mgm-gutenberg .mgm-section-heading__title {
    color: var(--mgm-black);
    font-size: clamp(2.8rem, 6vw, 6.5rem);
    font-weight: 200;
    letter-spacing: -0.04em;
    line-height: 1;
    margin-top: 0;
}

.mgm-gutenberg .mgm-section-heading__lead {
    font-size: clamp(1.25rem, 2vw, 1.75rem);
    max-width: 40rem;
}

.mgm-gutenberg .mgm-feature-grid {
    padding-block: var(--mgm-space-l) var(--mgm-space-section);
}

.mgm-gutenberg .mgm-feature-grid .wp-block-columns {
    align-items: stretch;
    gap: var(--mgm-space-m);
}

.mgm-gutenberg .mgm-feature-grid .wp-block-column {
    display: flex;
}

.mgm-gutenberg .mgm-feature-card {
    background: var(--mgm-white);
    border: 1px solid var(--mgm-border);
    border-radius: var(--mgm-radius-card);
    box-shadow: var(--mgm-shadow);
    min-height: 100%;
    padding: clamp(1.5rem, 3vw, 2.5rem);
    width: 100%;
}

.mgm-gutenberg .mgm-feature-card h3 {
    color: var(--mgm-black);
    font-size: clamp(1.5rem, 2.4vw, 2.125rem);
    font-weight: 400;
    line-height: 1.2;
}

.mgm-gutenberg .mgm-feature-card--small h3 {
    background: linear-gradient(90deg, var(--mgm-marine), var(--mgm-lavender), var(--mgm-raspberry-light));
    background-clip: text;
    color: transparent;
    font-size: 1.5rem;
    font-weight: 500;
}

.mgm-gutenberg .mgm-faq {
    padding-block: var(--mgm-space-section);
}

.mgm-gutenberg .mgm-faq__item {
    background: var(--mgm-surface);
    border: 1px solid var(--mgm-border);
    border-radius: 0.75rem;
    margin-block: var(--mgm-space-s);
    padding: var(--mgm-space-m);
}

.mgm-gutenberg .mgm-faq__item summary {
    color: var(--mgm-black);
    cursor: pointer;
    font-size: 1.125rem;
    font-weight: 500;
}

.mgm-gutenberg .mgm-faq__item summary:focus-visible {
    outline: 3px solid var(--mgm-marine);
    outline-offset: 4px;
}

.mgm-gutenberg .mgm-contact-cta {
    background: linear-gradient(125deg, var(--mgm-marine), var(--mgm-lavender), var(--mgm-raspberry));
    border-radius: var(--mgm-radius-panel);
    color: var(--mgm-white);
    margin-block: var(--mgm-space-section);
    padding-block: clamp(2.5rem, 7vw, 6rem);
}

.mgm-gutenberg .mgm-contact-cta .mgm-eyebrow {
    color: var(--mgm-white);
}

.mgm-gutenberg .mgm-contact-cta__title {
    color: var(--mgm-white);
    font-size: clamp(2.25rem, 5vw, 4.5rem);
    font-weight: 300;
    line-height: 1.05;
    max-width: 18ch;
}

.mgm-gutenberg .wp-block-button.is-style-mgm-button .wp-block-button__link {
    background: var(--mgm-white);
    border: 2px solid var(--mgm-white);
    color: var(--mgm-black);
    font-weight: 700;
}

.mgm-gutenberg .wp-block-button .wp-block-button__link:focus-visible {
    outline: 3px solid var(--mgm-white);
    outline-offset: 4px;
}

.mgm-gutenberg .wp-block-group.is-style-mgm-panel {
    background: var(--mgm-surface);
    border-radius: var(--mgm-radius-panel);
    padding: clamp(1.5rem, 5vw, 4rem);
}

.mgm-gutenberg .wp-block-heading.is-style-mgm-display {
    font-size: clamp(2.8rem, 6vw, 6.5rem);
    font-weight: 200;
    line-height: 1;
}

.mgm-gutenberg .wp-block-list.is-style-mgm-check-list {
    list-style: none;
    padding-left: 0;
}

.mgm-gutenberg .wp-block-list.is-style-mgm-check-list li::before {
    color: var(--mgm-raspberry-light);
    content: "✓";
    font-weight: 700;
    margin-right: var(--mgm-space-xs);
}

@media (max-width: 48rem) {
    .mgm-gutenberg .mgm-section-heading__side,
    .mgm-gutenberg .mgm-section-heading__body {
        flex-basis: 100%;
    }

    .mgm-gutenberg .mgm-hero {
        min-height: 60vh;
    }

    .mgm-gutenberg .mgm-feature-grid .wp-block-columns {
        flex-direction: column;
    }

    .mgm-gutenberg .mgm-contact-cta {
        border-radius: var(--mgm-radius-card);
        margin-inline: var(--mgm-space-xs);
    }

    .mgm-gutenberg .mgm-contact-cta__actions {
        align-items: stretch;
        flex-direction: column;
    }
}
