/* =========================================================================
   WordPress / Gutenberg block compatibility for imported pages (goodhope)
   The WP→mmCMS import keeps core block markup (wp-block-*) + Neve color
   presets. This restores their intended layout/colour inside the bespoke
   theme so inner pages render faithfully to the old goodhopelutheran.org.
   Scoped to wp-block-* / has-* classes — never touches gh- theme markup.
   ========================================================================= */

/* ── Neve colour + font-size presets (so has-*-color classes resolve) ──── */
:root {
    --wp--preset--color--nv-dark-bg: #323b73;
    --wp--preset--color--nv-light-bg: #78799d;
    --wp--preset--color--nv-site-bg: #eeeccf;
    --wp--preset--color--nv-text-color: #2c2c2c;
    --wp--preset--color--nv-text-dark-bg: #ffffff;
    --wp--preset--color--neve-text-color: #2c2c2c;
    --wp--preset--color--neve-link-color: #6d3f37;
    --wp--preset--color--neve-link-hover-color: #532e28;
    --wp--preset--color--nv-primary-accent: #6d3f37;
    --wp--preset--color--nv-secondary-accent: #6d7b37;
    --wp--preset--color--white: #ffffff;
    --wp--preset--color--black: #1a1a1a;
    --wp--preset--font-size--small: 0.9rem;
    --wp--preset--font-size--medium: 1.15rem;
    --wp--preset--font-size--large: 1.7rem;
    --wp--preset--font-size--x-large: 2.3rem;
}

/* Colour preset classes (WP emits these with !important) */
.has-nv-dark-bg-color { color: var(--wp--preset--color--nv-dark-bg) !important; }
.has-nv-dark-bg-background-color { background-color: var(--wp--preset--color--nv-dark-bg) !important; }
.has-nv-light-bg-color { color: var(--wp--preset--color--nv-light-bg) !important; }
.has-nv-light-bg-background-color { background-color: var(--wp--preset--color--nv-light-bg) !important; }
.has-nv-site-bg-color { color: var(--wp--preset--color--nv-site-bg) !important; }
.has-nv-site-bg-background-color { background-color: var(--wp--preset--color--nv-site-bg) !important; }
.has-nv-text-color-color { color: var(--wp--preset--color--nv-text-color) !important; }
.has-nv-text-dark-bg-color { color: var(--wp--preset--color--nv-text-dark-bg) !important; }
.has-nv-text-dark-bg-background-color { background-color: var(--wp--preset--color--nv-text-dark-bg) !important; }
.has-neve-text-color-color { color: var(--wp--preset--color--neve-text-color) !important; }
.has-neve-link-color-color { color: var(--wp--preset--color--neve-link-color) !important; }
.has-neve-link-color-background-color { background-color: var(--wp--preset--color--neve-link-color) !important; }
.has-nv-primary-accent-color { color: var(--wp--preset--color--nv-primary-accent) !important; }
.has-nv-primary-accent-background-color { background-color: var(--wp--preset--color--nv-primary-accent) !important; }
.has-nv-secondary-accent-color { color: var(--wp--preset--color--nv-secondary-accent) !important; }
.has-nv-secondary-accent-background-color { background-color: var(--wp--preset--color--nv-secondary-accent) !important; }
.has-white-color { color: #fff !important; }
.has-white-background-color { background-color: #fff !important; }
.has-black-color { color: #1a1a1a !important; }
.has-link-color a, a.has-link-color { color: var(--wp--preset--color--neve-link-color); }

/* Font-size presets */
.has-small-font-size { font-size: var(--wp--preset--font-size--small); }
.has-medium-font-size { font-size: var(--wp--preset--font-size--medium); }
.has-large-font-size { font-size: var(--wp--preset--font-size--large); }
.has-x-large-font-size { font-size: var(--wp--preset--font-size--x-large); }

/* ── Alignment ─────────────────────────────────────────────────────────── */
.has-text-align-center { text-align: center; }
.has-text-align-left { text-align: left; }
.has-text-align-right { text-align: right; }
.aligncenter { margin-left: auto; margin-right: auto; }
.alignfull { width: 100%; }
.alignwide { width: 100%; }

/* ── Columns ───────────────────────────────────────────────────────────── */
.wp-block-columns { display: flex; flex-wrap: wrap; gap: 28px; align-items: normal; margin: 0 0 24px; }
.wp-block-columns.are-vertically-aligned-center { align-items: center; }
.wp-block-column { flex: 1 1 0%; min-width: 0; word-break: break-word; }
.wp-block-column.is-vertically-aligned-center { align-self: center; }
@media (max-width: 781px) {
    .wp-block-columns:not(.is-not-stacked-on-mobile) { flex-direction: column; }
    .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column { flex-basis: 100% !important; }
}

/* ── Group ─────────────────────────────────────────────────────────────── */
.wp-block-group { }
.wp-block-group.has-background { padding: clamp(20px, 4vw, 44px); }
.wp-block-group.has-custom-border, .has-custom-border { border-radius: 8px; }

/* ── Buttons ───────────────────────────────────────────────────────────── */
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 14px; list-style: none; padding: 0; }
.wp-block-buttons.is-content-justification-center { justify-content: center; }
.wp-block-button__link, .wp-element-button {
    display: inline-block; padding: 12px 28px; border-radius: 40px;
    background-color: var(--gh-clay); color: #fff !important; text-decoration: none;
    font-weight: 600; font-family: var(--font-body); line-height: 1.2; cursor: pointer; border: 2px solid transparent;
}
.wp-block-button__link:hover { background-color: var(--gh-clay-dark); }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; border-color: currentColor; color: var(--gh-clay) !important; }

/* ── Images / figures / media-text ─────────────────────────────────────── */
figure { margin: 0 0 22px; }
.wp-block-image { margin: 0 0 22px; }
.wp-block-image img, figure img { max-width: 100%; height: auto; display: block; border-radius: 10px; }
.wp-block-image.aligncenter, figure.aligncenter { text-align: center; margin-left: auto; margin-right: auto; }
.wp-block-image figcaption, figcaption { font-size: 0.85rem; color: var(--gh-muted); text-align: center; margin-top: 8px; }
.wp-block-media-text { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; align-items: center; margin-bottom: 24px; }
.wp-block-media-text.has-media-on-the-right .wp-block-media-text__content { order: -1; }
.wp-block-media-text__media img { width: 100%; height: auto; border-radius: 10px; }
@media (max-width: 781px) { .wp-block-media-text { grid-template-columns: 1fr; } .wp-block-media-text.has-media-on-the-right .wp-block-media-text__content { order: 0; } }

/* ── Cover ─────────────────────────────────────────────────────────────── */
.wp-block-cover {
    position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center;
    min-height: 360px; padding: 48px 24px; overflow: hidden; border-radius: 10px; margin-bottom: 24px;
    color: #fff; background-size: cover; background-position: center;
}
.wp-block-cover img.wp-block-cover__image-background,
.wp-block-cover video.wp-block-cover__video-background { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.wp-block-cover .wp-block-cover__background { position: absolute; inset: 0; z-index: 1; }
.wp-block-cover .wp-block-cover__inner-container { position: relative; z-index: 2; width: 100%; max-width: 1000px; }
/* Background-dim levels (WP steps of 10) */
.wp-block-cover .has-background-dim { opacity: 0.5; }
.wp-block-cover .has-background-dim-0 { opacity: 0; }
.wp-block-cover .has-background-dim-10 { opacity: 0.1; }
.wp-block-cover .has-background-dim-20 { opacity: 0.2; }
.wp-block-cover .has-background-dim-30 { opacity: 0.3; }
.wp-block-cover .has-background-dim-40 { opacity: 0.4; }
.wp-block-cover .has-background-dim-50 { opacity: 0.5; }
.wp-block-cover .has-background-dim-60 { opacity: 0.6; }
.wp-block-cover .has-background-dim-70 { opacity: 0.7; }
.wp-block-cover .has-background-dim-80 { opacity: 0.8; }
.wp-block-cover .has-background-dim-90 { opacity: 0.9; }
.wp-block-cover .has-background-dim-100 { opacity: 1; }
.wp-block-cover h1, .wp-block-cover h2, .wp-block-cover h3, .wp-block-cover p { color: inherit; }

/* ── Spacer / separator / lists / quote ────────────────────────────────── */
.wp-block-spacer { display: block; }
.wp-block-separator, hr.wp-block-separator { border: 0; border-top: 1px solid rgba(50,59,115,0.18); margin: 28px auto; }
.wp-block-separator:not(.alignwide):not(.alignfull):not(.is-style-wide) { max-width: 100px; }
hr { border: 0; border-top: 1px solid rgba(50,59,115,0.18); margin: 28px 0; }
.wp-block-list { padding-left: 1.4em; margin: 0 0 18px; }
.wp-block-list li { margin-bottom: 6px; }
.wp-block-quote { border-left: 4px solid var(--gh-olive); padding-left: 20px; margin: 0 0 22px; font-style: italic; color: var(--gh-muted); }

/* ── Social links ──────────────────────────────────────────────────────── */
.wp-block-social-links { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; padding: 0; margin: 0 0 18px; }
.wp-block-social-links.is-content-justification-center { justify-content: center; }
.wp-block-social-link { width: 38px; height: 38px; border-radius: 50%; background: var(--gh-indigo); display: inline-flex; align-items: center; justify-content: center; }
.wp-block-social-link a { color: #fff; }

/* ── Headings within imported content (use theme display font) ─────────── */
.wp-block-heading { font-family: var(--font-heading); color: var(--gh-clay); line-height: 1.2; }
.wp-block-cover .wp-block-heading { color: inherit; }
