/* Reusable core-block compositions. Solutto COnsulting LLC.
 * Gilson Rincón, CEO — gilson.rincon@soluttoconsulting.com.
 * Global colors and families belong to Astra; block controls remain authoritative.
 */
:is(.entry-content, .editor-styles-wrapper) .editorial-composition-section { padding-block: 96px; }
.editorial-composition-content { width: 100%; max-width: var(--wp--style--global--content-size, 1200px); margin-inline: auto; }
.editorial-composition-content > .editorial-intro { margin-bottom: 48px; }
.editorial-composition-content > .editorial-intro--start { max-width: 820px; margin-inline: 0; text-align: left; }
.editorial-composition-content > .editorial-intro--center { margin-inline: auto; text-align: center; }
.editorial-columns > .wp-block-columns { gap: clamp(42px, 6vw, 88px); margin-block: 0; }
/* Core uses !important for normal alignment; mirror only its selected native
 * alignment classes so the Columns toolbar remains the source of the choice. */
.editorial-columns > .wp-block-columns.are-vertically-aligned-center { align-items: center !important; }
.editorial-columns > .wp-block-columns.are-vertically-aligned-top { align-items: flex-start !important; }
.editorial-columns--stretch > .wp-block-columns { gap: clamp(36px, 5vw, 72px); }
.editorial-columns--hero > .wp-block-columns { gap: clamp(40px, 6vw, 84px); }
.editorial-columns .wp-block-column > .wp-block-group > :last-child { margin-bottom: 0; }
.editorial-columns--stretch > .wp-block-columns > .wp-block-column { display: flex; flex-direction: column; }
.editorial-columns--start > .wp-block-columns > .wp-block-column:first-child { align-self: stretch; }
.editorial-media-frame { position: relative; margin: 0; border-radius: 18px; overflow: hidden; box-shadow: 0 22px 52px color-mix(in srgb, var(--ast-global-color-2) 14%, transparent); }
.editorial-media-frame img { display: block; width: 100%; height: auto; aspect-ratio: 3/2; object-fit: cover; }
.editorial-media-fill { flex: 1; width: 100%; height: 100%; min-height: 560px; }
.editorial-media-fill--medium { min-height: 460px; border-radius: 22px; }
.editorial-media-fill img { height: 100%; min-height: inherit; aspect-ratio: auto; }
.editorial-media-caption-overlay figcaption { position: absolute; bottom: 14px; left: 14px; max-width: calc(100% - 28px); margin: 0; padding: 7px 10px; border-radius: 7px; background: color-mix(in srgb, var(--ast-global-color-2) 82%, transparent); color: var(--ast-global-color-4); font-size: .78rem; }
.entry-content .editorial-media-sticky { position: sticky; top: 112px; }
:is(.entry-content, .editor-styles-wrapper) .wp-block-cover.is-style-editorial-hero.editorial-hero-left > .wp-block-cover__inner-container { width: 100%; max-width: var(--wp--style--global--content-size, 1200px); margin-inline: auto; text-align: left; }
.editorial-hero-left h1,
.editorial-hero-left .editorial-lead { margin-inline: 0; }
.editorial-hero-left .wp-block-buttons { justify-content: flex-start; }
.editorial-hero-narrow h1 { max-width: 850px; }
.editorial-hero-narrow .editorial-lead { max-width: 680px; }
.editorial-hero-wide h1 { max-width: 940px; }
.editorial-hero-wide .editorial-lead { max-width: 820px; }
.editorial-hero-left .editorial-columns h1 { max-width: none; }
.is-style-editorial-badge.editorial-badge--connection { border-color: transparent; }
.is-style-editorial-badge.editorial-badge--connection:not(.has-background) { background: var(--ast-global-color-8); }
.is-style-editorial-badge.editorial-badge--connection:not(.has-text-color) { color: var(--ast-global-color-2); }
.is-style-editorial-badge.editorial-badge--soft { background: color-mix(in srgb, var(--ast-global-color-8) 14%, transparent); color: var(--ast-global-color-2); border-color: transparent; }
.editorial-glass-panel { padding: 28px; border: 1px solid color-mix(in srgb, var(--ast-global-color-4) 16%, transparent); border-radius: 14px; box-shadow: 0 22px 58px color-mix(in srgb, var(--ast-global-color-2) 28%, transparent); backdrop-filter: blur(16px); text-align: left; }
.editorial-glass-panel > p { margin: 0 0 15px; font-weight: 700; font-size: 1.08rem; }
.editorial-bar-list { list-style: none; padding: 0; margin: 0; }
.editorial-bar-list li { position: relative; padding-left: 68px; margin: 12px 0 0; font-size: .92rem; font-weight: 600; }
.editorial-bar-list li::before { content: ''; position: absolute; left: 0; top: .55em; height: 7px; width: 56px; border-radius: 99px; background: linear-gradient(90deg, var(--ast-global-color-0), var(--ast-global-color-8)); }

/* Images stay in native Covers. Their existing action is the sole link target. */
.editorial-cover-overview .editorial-service-cards > .wp-block-columns { gap: 24px; }
.editorial-cover-overview .editorial-transversal { margin-top: 24px; }
.wp-block-cover.editorial-cover-card { height: 100%; min-height: 420px; padding: 26px; border-radius: 16px; overflow: hidden; box-shadow: 0 18px 42px color-mix(in srgb, var(--ast-global-color-2) 12%, transparent); color: var(--ast-global-color-4); }
.wp-block-cover.editorial-cover-card--wide { min-height: 260px; }
/* The static inner flex item stays above the photo without constraining the link. */
.editorial-cover-card .wp-block-cover__inner-container { width: 100%; z-index: 1; }
.editorial-cover-card--wide .wp-block-cover__inner-container { max-width: 720px; margin-inline: 0 auto; }
.editorial-cover-card h3 { margin: 0; font-size: clamp(1.25rem, 2vw, 1.55rem); line-height: 1.25; }
:is(.entry-content, .editor-styles-wrapper) .editorial-cover-card :is(h3,p):not(.has-text-color) { color: inherit; }
.editorial-cover-card p { margin: 10px 0 0; font-size: .94rem; line-height: 1.55; }
.editorial-cover-card .wp-block-buttons { margin-top: 14px; }
.is-style-editorial-text-link .wp-block-button__link:not(.has-background) { padding: 0; min-height: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.is-style-editorial-text-link .wp-block-button__link:not(.has-text-color) { color: var(--ast-global-color-0); }
.editorial-cover-card .is-style-editorial-text-link .wp-block-button__link:not(.has-text-color) { color: var(--ast-global-color-8); font-size: .88rem; }
.is-style-editorial-text-link .wp-block-button__link::before { content: ''; display: inline-block; float: right; width: 1.1em; height: 1.1em; margin: .2em 0 0 .45em; background: currentColor; -webkit-mask: url('icons/arrow-right.svg') center/contain no-repeat; mask: url('icons/arrow-right.svg') center/contain no-repeat; }
.entry-content .editorial-cover-card :is(.wp-block-cover__inner-container, .wp-block-buttons, .wp-block-button, .wp-block-button__link) { position: static; }
.entry-content .editorial-cover-card .wp-block-button__link::after { content: ''; position: absolute; inset: 0; z-index: 1; }
.editorial-cover-card:focus-within { outline: 3px solid var(--ast-global-color-8); outline-offset: -4px; }
.entry-content .editorial-cover-card .wp-block-button__link:focus-visible { outline: none; }
.editorial-cta-wide h2,
.editorial-cta-wide p { max-width: 900px; }
.editorial-cta-medium h2,
.editorial-cta-medium p { max-width: 850px; }

/* Informational rows keep their actual headings and paragraphs. */
.editorial-rule-list { display: grid; border-top: 1px solid var(--ast-global-color-7); }
.editorial-rule-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 28px; border-top: 1px solid var(--ast-global-color-7); }
.editorial-rule-list > *,
.editorial-rule-grid > * { margin-block: 0; }
.editorial-rule-item,
.editorial-marker-item,
.editorial-icon-item { position: relative; min-width: 0; margin: 0; }
.editorial-rule-item { padding: 24px 0; border-bottom: 1px solid var(--ast-global-color-7); }
.editorial-marker-item { padding: 21px 0 21px 26px; border-bottom: 1px solid var(--ast-global-color-7); }
.editorial-marker-item::before { content: ''; position: absolute; top: 24px; left: 0; width: 4px; height: 38px; border-radius: 99px; background: var(--ast-global-color-0); }
.editorial-icon-item { padding: 0 0 0 58px; }
.editorial-rule-list > .editorial-icon-item { padding: clamp(20px, 2.5vw, 28px) 2px clamp(20px, 2.5vw, 28px) 60px; border-bottom: 1px solid var(--ast-global-color-7); }
.editorial-icon-item::before { content: ''; position: absolute; top: 0; left: 0; width: 42px; height: 42px; border-radius: 8px; background: color-mix(in srgb, var(--ast-global-color-0) 12%, transparent); }
.editorial-icon-item::after { content: ''; position: absolute; top: 10px; left: 10px; width: 22px; height: 22px; background: var(--ast-global-color-0); -webkit-mask: var(--editorial-row-icon) center/contain no-repeat; mask: var(--editorial-row-icon) center/contain no-repeat; }
.editorial-rule-list > .editorial-icon-item::before { top: clamp(20px, 2.5vw, 28px); }
.editorial-rule-list > .editorial-icon-item::after { top: calc(clamp(20px, 2.5vw, 28px) + 10px); }
.editorial-rule-item h3,
.editorial-marker-item h3,
.editorial-icon-item h3 { margin: 0; font-size: clamp(1.15rem, 1.8vw, 1.5rem); line-height: 1.25; }
.editorial-rule-item h3 { font-size: clamp(1.08rem, 1.55vw, 1.3rem); }
.editorial-rule-item p,
.editorial-marker-item p,
.editorial-icon-item p { margin: 7px 0 0; font-size: .94rem; line-height: 1.55; color: var(--ast-global-color-3); }
.editorial-rule-item p { font-size: .9rem; }
.editorial-icon-item + .editorial-icon-item { margin-top: 18px; }
.editorial-rule-list > .editorial-icon-item + .editorial-icon-item { margin-top: 0; }
.is-style-editorial-icon-systems { --editorial-row-icon: url('icons/systems.svg'); }
.is-style-editorial-icon-link { --editorial-row-icon: url('icons/link.svg'); }
.is-style-editorial-icon-layers { --editorial-row-icon: url('icons/layers.svg'); }
.is-style-editorial-icon-events { --editorial-row-icon: url('icons/events.svg'); }
.is-style-editorial-icon-sync { --editorial-row-icon: url('icons/sync.svg'); }
.editorial-check-list { list-style: none; padding: 0; margin: 0; }
.editorial-check-list li { position: relative; margin-top: 13px; padding-left: 27px; }
.editorial-check-list li::before { content: ''; position: absolute; left: 4px; top: .35em; width: 7px; height: 12px; border: solid var(--ast-global-color-0); border-width: 0 2px 2px 0; transform: rotate(45deg); }
.editorial-chip-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; list-style: none; padding: 0; margin: 0; }
.editorial-chip-list li { min-height: 52px; margin: 0; padding: 13px 15px; border: 1px solid color-mix(in srgb, currentColor 13%, transparent); border-radius: 9px; background: color-mix(in srgb, currentColor 6%, transparent); font-size: .91rem; }
:is(.entry-content, .editor-styles-wrapper) .editorial-dark-section :is(h1,h2,h3,p,li):not(.has-text-color) { color: inherit; }
.editorial-dark-section p:not(.has-text-color) { opacity: .76; }
.editorial-dark-section .editorial-icon-item::after { background: var(--ast-global-color-4); }
.editorial-dark-section .editorial-icon-item::before { background: color-mix(in srgb, var(--ast-global-color-0) 24%, transparent); border: 1px solid color-mix(in srgb, var(--ast-global-color-4) 15%, transparent); }
.editorial-dark-section .editorial-media-frame { border: 1px solid color-mix(in srgb, var(--ast-global-color-4) 13%, transparent); }
.editorial-numbered-steps { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ast-global-color-7); }
.editorial-numbered-steps li { position: relative; padding: clamp(22px, 3vw, 32px) 0 clamp(22px, 3vw, 32px) 82px; margin: 0; border-bottom: 1px solid var(--ast-global-color-7); color: var(--ast-global-color-3); font-size: .94rem; line-height: 1.55; }
.editorial-numbered-steps li::before { content: counter(list-item, decimal-leading-zero); position: absolute; top: clamp(22px, 3vw, 32px); left: 0; display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid color-mix(in srgb, var(--ast-global-color-0) 20%, var(--ast-global-color-4)); border-radius: 50%; background: color-mix(in srgb, var(--ast-global-color-0) 12%, var(--ast-global-color-4)); color: var(--ast-global-color-1); font-size: .79rem; font-weight: 700; letter-spacing: .08em; }
.editorial-numbered-steps strong { display: inline-block; margin-bottom: 7px; color: var(--ast-global-color-2); font-size: clamp(1.15rem, 1.8vw, 1.5rem); line-height: 1.25; }

@media (max-width: 1024px) {
    :is(.entry-content, .editor-styles-wrapper) .editorial-composition-section { padding-block: 72px; }
    .editorial-columns > .wp-block-columns { gap: 40px; }
    .editorial-columns--at-1024 > .wp-block-columns:not(.is-not-stacked-on-mobile) { flex-direction: column; }
    .editorial-columns--at-1024.editorial-columns--reverse-mobile > .wp-block-columns:not(.is-not-stacked-on-mobile) { flex-direction: column-reverse; }
    .editorial-columns--at-1024 > .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column { width: 100%; flex-basis: auto; }
    .editorial-columns--at-1024 .editorial-media-fill { height: auto; min-height: 0; aspect-ratio: 16/7; }
    .editorial-columns--at-1024 .editorial-media-fill img { height: 100%; min-height: 0; }
    .editorial-rule-list--tablet-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 28px; }
}
@media (max-width: 900px) {
    .editorial-columns--at-900 > .wp-block-columns:not(.is-not-stacked-on-mobile) { flex-direction: column; }
    .editorial-columns--at-900.editorial-columns--reverse-mobile > .wp-block-columns:not(.is-not-stacked-on-mobile) { flex-direction: column-reverse; }
    .editorial-columns--at-900 > .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column { width: 100%; flex-basis: auto; }
    .editorial-columns--at-900 .editorial-media-fill { min-height: 0; height: auto; }
    .editorial-columns--at-900 .editorial-media-fill img { min-height: 0; height: auto; aspect-ratio: 3/2; }
    .entry-content .editorial-media-sticky { position: static; }
}
@media (max-width: 767px) {
    :is(.entry-content, .editor-styles-wrapper) .editorial-composition-section { padding-block: 56px; }
    .editorial-columns > .wp-block-columns { gap: 32px; }
    .editorial-columns--at-767 > .wp-block-columns:not(.is-not-stacked-on-mobile) { flex-direction: column; }
    .editorial-columns--at-767 > .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column { width: 100%; flex-basis: auto; }
    .wp-block-group.editorial-rule-grid,
    .editorial-rule-list--tablet-grid,
    .editorial-chip-list { grid-template-columns: minmax(0, 1fr); }
    .editorial-columns--at-1024 .editorial-media-fill { aspect-ratio: 3/2; border-radius: 16px; }
    .editorial-glass-panel { padding: 22px; }
    .wp-block-cover.editorial-cover-card { min-height: clamp(320px, 58vw, 430px); }
    .editorial-cover-card--wide .wp-block-cover__inner-container { max-width: none; }
    .editorial-numbered-steps li { padding-left: 64px; }
    .editorial-media-caption-overlay figcaption { bottom: 10px; left: 10px; max-width: calc(100% - 20px); }
}
@media (prefers-reduced-motion: reduce) {
    .editorial-cover-card,
    .is-style-editorial-text-link .wp-block-button__link { transition: none; }
}
