/*
Theme Name: EC Theme
Theme URI: https://escoladochamado.com.br/
Author: Escola do Chamado
Description: Tema canônico da Escola do Chamado. Governa identidade e site público; EC Core governa as superfícies autenticadas e regras de domínio.
Version: 0.3.49
Requires at least: 6.6
Requires PHP: 8.1
Text Domain: ec-theme
*/

/* Home Elementor #3276 — surgical journey stabilization.
 * Scoped to the draft page only; does not alter the published Home.
 */
body:is(.page-id-3276,.page-id-3478) .ec-journey {
    width: 100%;
    overflow: visible;
}

body:is(.page-id-3276,.page-id-3478) .ec-jtrack {
    position: relative;
    width: 100%;
    height: 330vh !important;
    min-height: 330vh !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-jsticky {
    position: sticky;
    top: 0;
    width: 100%;
    min-height: 100vh;
    display: flex;
    align-items: center;
    overflow: visible;
}

body:is(.page-id-3276,.page-id-3478) .ec-jsticky > .ec-wrap,
body:is(.page-id-3276,.page-id-3478) .ec-jgrid {
    width: 100% !important;
    max-width: 1240px !important;
    margin-inline: auto !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-jgrid {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: clamp(40px, 5vw, 72px) !important;
    align-items: center !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-jgrid > :first-child {
    flex: 0 0 36% !important;
    min-width: 320px !important;
    width: 36% !important;
    max-width: 430px !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-jgrid > :last-child {
    flex: 1 1 64% !important;
    min-width: 520px !important;
    width: auto !important;
    max-width: none !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-jpanel {
    flex: 1 1 auto !important;
    width: 100% !important;
    min-width: 520px !important;
    max-width: none !important;
    min-height: 380px !important;
    padding: clamp(40px, 4vw, 56px) !important;
    display: block !important;
    overflow: hidden !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-jpanel h3 {
    max-width: 72%;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
}

body:is(.page-id-3276,.page-id-3478) .ec-jpanel p {
    width: auto !important;
    max-width: 640px !important;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
}

body:is(.page-id-3276,.page-id-3478) .ec-jnum {
    right: 24px !important;
    top: -10px !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-jbars {
    flex-wrap: nowrap !important;
}

@media (max-width: 1100px) {
    body:is(.page-id-3276,.page-id-3478) .ec-jgrid {
        gap: 34px !important;
    }

    body:is(.page-id-3276,.page-id-3478) .ec-jgrid > :first-child {
        flex-basis: 34% !important;
        min-width: 285px !important;
    }

    body:is(.page-id-3276,.page-id-3478) .ec-jgrid > :last-child,
    body:is(.page-id-3276,.page-id-3478) .ec-jpanel {
        min-width: 460px !important;
    }

    body:is(.page-id-3276,.page-id-3478) .ec-jpanel h3 {
        max-width: 78%;
    }
}

@media (max-width: 900px) {
    body:is(.page-id-3276,.page-id-3478) .ec-jtrack {
        min-height: auto !important;
        height: auto !important;
    }

    body:is(.page-id-3276,.page-id-3478) .ec-jsticky {
        position: relative !important;
        top: auto !important;
        min-height: auto !important;
        padding-block: 64px !important;
    }

    body:is(.page-id-3276,.page-id-3478) .ec-jgrid {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 34px !important;
    }

    body:is(.page-id-3276,.page-id-3478) .ec-jgrid > :first-child,
    body:is(.page-id-3276,.page-id-3478) .ec-jgrid > :last-child,
    body:is(.page-id-3276,.page-id-3478) .ec-jpanel {
        flex: 1 1 auto !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
    }

    body:is(.page-id-3276,.page-id-3478) .ec-jpanel {
        min-height: 320px !important;
    }
}

/* Home Elementor #3276 — refinement pass 2026-10-05. */
body:is(.page-id-3276,.page-id-3478) .ec-hero {
    padding-block: 34px 40px !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-hero-media {
    min-height: 410px !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-hero-media img {
    height: 410px !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-pencil {
    height: 250px !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-pencil::after {
    top: 176px !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-pencil img {
    top: 48px !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-form-card,
body:is(.page-id-3276,.page-id-3478) .ec-course {
    display: flex !important;
    flex-direction: column !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-form-body,
body:is(.page-id-3276,.page-id-3478) .ec-course-body {
    flex: 1 1 auto !important;
    display: flex !important;
    flex-direction: column !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-form-action,
body:is(.page-id-3276,.page-id-3478) .ec-course-cta {
    margin-top: auto !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-trails {
    margin-top: 28px !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-formations {
    padding-bottom: 34px !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-experience {
    padding-top: 20px !important;
    padding-bottom: 8px !important;
    background: #F4F7F9 !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-exp-track {
    height: 140vh !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-courses {
    padding-top: 58px !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-manifest {
    min-height: 470px !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-manifest .ec-wrap {
    padding-top: 64px !important;
    padding-bottom: 64px !important;
}


/* Home Elementor #3276 — collision + rhythm + catalogue fidelity. */
body:is(.page-id-3276,.page-id-3478) section.ec-journey {
    display: block !important;
    grid-template-columns: none !important;
    gap: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #10483E !important;
    overflow: visible !important;
}

/* Let the pencil line become the visual top edge of Territories.
 * 250px band - 176px line = 74px overlap.
 */
body:is(.page-id-3276,.page-id-3478) .ec-territories {
    position: relative !important;
    margin-top: -74px !important;
    padding-top: 76px !important;
}

/* Compact the scroll narrative so Courses arrive without a dead viewport. */
body:is(.page-id-3276,.page-id-3478) .ec-exp-track {
    height: 118vh !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-courses {
    padding-top: 38px !important;
}

/* Home course cards should speak the same language as the catalogue. */
body:is(.page-id-3276,.page-id-3478) .ec-course {
    border: 1px solid color-mix(in srgb, var(--a) 28%, #D9E1E6) !important;
    border-top: 3px solid var(--a) !important;
    border-bottom: 3px solid var(--a) !important;
    border-radius: 18px 18px 0 18px !important;
    overflow: hidden !important;
    background: linear-gradient(145deg, #FFFFFF 52%, color-mix(in srgb, var(--a) 8%, #FFFFFF) 100%) !important;
    box-shadow: 0 9px 30px rgba(2,9,46,.045) !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-course-media {
    aspect-ratio: 16 / 10 !important;
    overflow: hidden !important;
    background: linear-gradient(145deg, #02092E, var(--a)) !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-course-media img {
    width: 100% !important;
    height: 100% !important;
    aspect-ratio: auto !important;
    object-fit: cover !important;
    transition: transform .42s ease !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-course:hover .ec-course-media img {
    transform: scale(1.025) !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-course-media::after {
    height: 42% !important;
    background: linear-gradient(transparent, rgba(2,9,46,.56)) !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-course-badge {
    left: 16px !important;
    bottom: 14px !important;
    padding: 6px 9px !important;
    border-radius: 7px 7px 0 7px !important;
    font-size: .74rem !important;
    letter-spacing: .045em !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-course-body {
    padding: 22px !important;
    background: linear-gradient(145deg, rgba(255,255,255,.97), color-mix(in srgb, var(--a) 7%, #FFFFFF)) !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-course h3 {
    font-size: 1.5rem !important;
    line-height: 1.08 !important;
    margin-bottom: 12px !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-course p {
    font-size: 1rem !important;
    line-height: 1.58 !important;
    color: #66737C !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-course-cta {
    min-height: 46px !important;
    margin-top: auto !important;
    padding: 10px 12px !important;
    border-radius: 10px 10px 0 10px !important;
    background: color-mix(in srgb, var(--a) 9%, #FFFFFF) !important;
    border: 1px solid color-mix(in srgb, var(--a) 24%, #D9E1E6) !important;
    color: var(--a) !important;
}

@media (max-width: 900px) {
    body:is(.page-id-3276,.page-id-3478) .ec-territories {
        margin-top: 0 !important;
        padding-top: 56px !important;
    }
    body:is(.page-id-3276,.page-id-3478) .ec-exp-track {
        height: auto !important;
    }
}


/* Home Elementor #3276 — V1 course-card fidelity + contrast/rhythm. */

/* Journey navigation must remain readable on the deep-green field. */
body:is(.page-id-3276,.page-id-3478) .ec-jnav button {
    color: #D5E2DD !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-jnav button span {
    color: inherit !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-jnav button.on {
    color: #D9EF85 !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-jnav button.on b {
    color: #10483E !important;
}

/* The oversized gap was primarily the sticky viewport, not just the track. */
body:is(.page-id-3276,.page-id-3478) .ec-exp-sticky {
    min-height: 500px !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-exp-track {
    height: 112vh !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-experience {
    padding-bottom: 0 !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-courses {
    padding-top: 42px !important;
}

/* Reproduce the 0.3.29 canonical home-course visual anatomy:
 * Art -> Area -> Title -> Description -> CTA.
 * Metadata chips intentionally remain omitted on the Home.
 */
body:is(.page-id-3276,.page-id-3478) .ec-course {
    border: 1px solid #D9E1E6 !important;
    border-radius: 18px 18px 0 18px !important;
    box-shadow: 0 9px 30px rgba(2,9,46,.055) !important;
    background: #FFFFFF !important;
    overflow: hidden !important;
    position: relative !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-course::after {
    content: "";
    position: absolute;
    left: 22px;
    right: 22px;
    bottom: 0;
    height: 2px;
    background: linear-gradient(90deg, var(--a), transparent);
    opacity: .72;
    pointer-events: none;
}
body:is(.page-id-3276,.page-id-3478) .ec-course-media {
    position: relative !important;
    display: block !important;
    aspect-ratio: 16 / 9 !important;
    overflow: hidden !important;
    background: linear-gradient(145deg, #02092E, var(--a)) !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-course-media::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(108deg,
            color-mix(in srgb, var(--a) 60%, transparent) 0%,
            color-mix(in srgb, var(--a) 24%, transparent) 38%,
            transparent 70%),
        linear-gradient(180deg, transparent 42%, rgba(2,9,46,.10) 65%, rgba(2,9,46,.72) 100%);
    pointer-events: none;
}
body:is(.page-id-3276,.page-id-3478) .ec-course-media::after {
    content: "";
    position: absolute;
    z-index: 1;
    right: -18%;
    top: -32%;
    width: 58%;
    aspect-ratio: 1;
    border-radius: 50%;
    background: color-mix(in srgb, var(--a) 28%, transparent);
    filter: blur(34px);
    opacity: .34;
    pointer-events: none;
}
body:is(.page-id-3276,.page-id-3478) .ec-course-media img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    transition: transform .45s ease !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-course:hover .ec-course-media img {
    transform: scale(1.025) !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-course-badge {
    z-index: 3 !important;
    left: 14px !important;
    bottom: 13px !important;
    padding: 6px 9px !important;
    border-radius: 7px 7px 0 7px !important;
    background: color-mix(in srgb, var(--a) 82%, #02092E) !important;
    border: 1px solid rgba(255,255,255,.20) !important;
    box-shadow: 0 4px 12px rgba(2,9,46,.16) !important;
    color: #FFFFFF !important;
    font-size: .74rem !important;
    font-weight: 700 !important;
    letter-spacing: .045em !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-course-body {
    position: relative !important;
    padding: 23px !important;
    background: linear-gradient(145deg,#FFFFFF 0%,color-mix(in srgb,var(--a) 5%,#FFFFFF) 100%) !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-course h3 {
    font-size: 1.52rem !important;
    line-height: 1.08 !important;
    margin: 0 0 10px !important;
    color: #02092E !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-course p {
    margin: 0 !important;
    color: #66737C !important;
    font-size: 1rem !important;
    line-height: 1.58 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-course-cta {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 14px !important;
    min-height: 44px !important;
    margin-top: auto !important;
    padding: 9px 11px !important;
    border: 1px solid color-mix(in srgb,var(--a) 19%,transparent) !important;
    border-radius: 10px 10px 0 10px !important;
    background: color-mix(in srgb,var(--a) 7%,transparent) !important;
    color: var(--a) !important;
    font-weight: 700 !important;
    transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease !important;
}
@media (hover:hover) {
    body:is(.page-id-3276,.page-id-3478) .ec-course-cta:hover {
        transform: translateY(-2px);
        background: color-mix(in srgb,var(--a) 13%,transparent) !important;
        border-color: color-mix(in srgb,var(--a) 35%,transparent) !important;
        box-shadow: 0 8px 20px rgba(2,29,54,.10);
    }
}
@media (max-width: 900px) {
    body:is(.page-id-3276,.page-id-3478) .ec-exp-sticky {
        min-height: auto !important;
    }
    body:is(.page-id-3276,.page-id-3478) .ec-exp-track {
        height: auto !important;
    }
}


/* Home #3276 — simplify experience rhythm + refine course image wash. */
body:is(.page-id-3276,.page-id-3478) .ec-experience {
    padding-top: 56px !important;
    padding-bottom: 56px !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-exp-track {
    height: auto !important;
    min-height: 0 !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-exp-sticky {
    position: relative !important;
    top: auto !important;
    min-height: 0 !important;
    height: auto !important;
    display: block !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-courses {
    padding-top: 56px !important;
}

/* Refined area wash: preserve the photo, tint only enough to identify territory. */
body:is(.page-id-3276,.page-id-3478) .ec-course-media::before {
    background:
        linear-gradient(
            118deg,
            color-mix(in srgb, var(--a) 30%, transparent) 0%,
            color-mix(in srgb, var(--a) 14%, transparent) 34%,
            transparent 64%
        ),
        linear-gradient(
            180deg,
            transparent 52%,
            rgba(2,9,46,.08) 70%,
            rgba(2,9,46,.62) 100%
        ) !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-course-media::after {
    right: -24% !important;
    top: -40% !important;
    width: 54% !important;
    background: color-mix(in srgb, var(--a) 18%, transparent) !important;
    filter: blur(40px) !important;
    opacity: .22 !important;
}


/* Home #3276 — course cards aligned to the canonical V1/catalogue anatomy.
 * Source basis: public.css .ec-course-card family. Home intentionally omits meta chips.
 */
body:is(.page-id-3276,.page-id-3478) .ec-course-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 22px !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-course {
    position: relative !important;
    min-width: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    background: #FFFFFF !important;
    border: 1px solid color-mix(in srgb, var(--a) 22%, #D9E1E6) !important;
    border-top: 3px solid var(--a) !important;
    border-bottom: 2px solid var(--a) !important;
    border-radius: 20px 20px 0 20px !important;
    box-shadow: 0 9px 30px rgba(2,9,46,.055) !important;
    transition: transform .18s ease, box-shadow .18s ease !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-course:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 18px 44px rgba(2,9,46,.09) !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-course::after {
    content: none !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-course-media {
    position: relative !important;
    display: block !important;
    aspect-ratio: 16 / 10 !important;
    overflow: hidden !important;
    background: linear-gradient(145deg, #02092E, var(--a)) !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-course-media img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    transform: none !important;
    transition: transform .45s ease !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-course:hover .ec-course-media img {
    transform: scale(1.025) !important;
}

/* Only the lower readability gradient remains. No full-image chromatic film. */
body:is(.page-id-3276,.page-id-3478) .ec-course-media::before {
    content: "" !important;
    position: absolute !important;
    z-index: 1 !important;
    inset: auto 0 0 0 !important;
    height: 46% !important;
    background: linear-gradient(
        180deg,
        rgba(2,9,46,0) 0%,
        rgba(2,9,46,.18) 42%,
        rgba(2,9,46,.72) 100%
    ) !important;
    pointer-events: none !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-course-media::after {
    content: none !important;
}

/* Area identity stays concentrated in the badge and card accents. */
body:is(.page-id-3276,.page-id-3478) .ec-course-badge {
    position: absolute !important;
    z-index: 2 !important;
    left: 16px !important;
    bottom: 14px !important;
    max-width: calc(100% - 32px) !important;
    padding: 7px 10px !important;
    border-radius: 7px 7px 0 7px !important;
    background: color-mix(in srgb, var(--a) 86%, #02092E) !important;
    border: 1px solid rgba(255,255,255,.22) !important;
    box-shadow: 0 5px 14px rgba(2,9,46,.18) !important;
    color: #FFFFFF !important;
    font-size: .74rem !important;
    line-height: 1.15 !important;
    font-weight: 700 !important;
    letter-spacing: .045em !important;
    text-transform: uppercase !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-course-body {
    flex: 1 1 auto !important;
    display: flex !important;
    flex-direction: column !important;
    padding: 23px !important;
    background:
        linear-gradient(
            145deg,
            #FFFFFF 0%,
            #FFFFFF 54%,
            color-mix(in srgb, var(--a) 5%, #FFFFFF) 100%
        ) !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-course h3 {
    margin: 0 0 12px !important;
    color: #02092E !important;
    font-family: "Source Serif 4", Georgia, serif !important;
    font-size: 1.52rem !important;
    line-height: 1.08 !important;
    font-weight: 600 !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-course p {
    margin: 0 0 18px !important;
    color: #65747E !important;
    font-size: 1rem !important;
    line-height: 1.58 !important;
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 3 !important;
    overflow: hidden !important;
}

/* Subtle separator before CTA, like the catalogue cards. */
body:is(.page-id-3276,.page-id-3478) .ec-course-cta {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 14px !important;
    min-height: 46px !important;
    margin-top: auto !important;
    padding: 10px 12px !important;
    border: 1px solid color-mix(in srgb, var(--a) 24%, #D9E1E6) !important;
    border-radius: 10px 10px 0 10px !important;
    background: color-mix(in srgb, var(--a) 8%, #FFFFFF) !important;
    color: var(--a) !important;
    font-weight: 700 !important;
    transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease !important;
}
body:is(.page-id-3276,.page-id-3478) .ec-course-cta::before {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    top: -14px !important;
    height: 1px !important;
    background: color-mix(in srgb, var(--a) 15%, #D9E1E6) !important;
}
@media (hover:hover) {
    body:is(.page-id-3276,.page-id-3478) .ec-course-cta:hover {
        transform: translateY(-2px) !important;
        background: color-mix(in srgb, var(--a) 13%, #FFFFFF) !important;
        box-shadow: 0 8px 20px rgba(2,29,54,.09) !important;
    }
}
@media (max-width: 960px) {
    body:is(.page-id-3276,.page-id-3478) .ec-course-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}
@media (max-width: 700px) {
    body:is(.page-id-3276,.page-id-3478) .ec-course-grid {
        grid-template-columns: 1fr !important;
    }
}


/* Home #3276 — dynamic area wash over course artwork.
 * Uses each card's --a accent; preserves photo detail and badge legibility.
 */
body:is(.page-id-3276,.page-id-3478) .ec-course-media::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 1 !important;
    height: auto !important;
    background:
        linear-gradient(
            106deg,
            color-mix(in srgb, var(--a) 46%, transparent) 0%,
            color-mix(in srgb, var(--a) 20%, transparent) 36%,
            transparent 70%
        ),
        linear-gradient(
            180deg,
            transparent 44%,
            rgba(2,9,46,.10) 66%,
            rgba(2,9,46,.68) 100%
        ) !important;
    mix-blend-mode: normal !important;
    pointer-events: none !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-course-media::after {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 1 !important;
    background:
        linear-gradient(
            112deg,
            color-mix(in srgb, var(--a) 28%, transparent) 0%,
            color-mix(in srgb, var(--a) 10%, transparent) 28%,
            transparent 52%
        ) !important;
    pointer-events: none !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-course-badge {
    z-index: 3 !important;
}


/* Home #3276 — canonical course-card markup + area wash.
 * Mirrors the catalogue component contract:
 * --ec-course-accent / --ec-course-tint + image wash + area badge + aligned CTA.
 */
body:is(.page-id-3276,.page-id-3478) .ec-courses .ec-course-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 22px !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-courses .ec-course-card {
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    min-width: 0 !important;
    overflow: hidden !important;
    background: #fff !important;
    border: 1px solid color-mix(in srgb, var(--ec-course-accent) 20%, #D9E1E6) !important;
    border-radius: 20px 20px 0 20px !important;
    box-shadow: 0 9px 30px rgba(2,9,46,.055) !important;
    transition: transform .18s ease, box-shadow .18s ease !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-courses .ec-course-card::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 0 auto !important;
    height: 4px !important;
    background: var(--ec-course-accent) !important;
    z-index: 4 !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-courses .ec-course-card:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 18px 44px rgba(2,9,46,.09) !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-courses .ec-course-card__media {
    position: relative !important;
    display: block !important;
    aspect-ratio: 16 / 10 !important;
    overflow: hidden !important;
    background: linear-gradient(145deg, #02092E, var(--ec-course-accent)) !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-courses .ec-course-card__media img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    filter: saturate(1.035) contrast(1.015) !important;
    transition: transform .45s ease !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-courses .ec-course-card:hover .ec-course-card__media img {
    transform: scale(1.025) !important;
}

/* Main chromatic wash: intentionally stronger at the left edge. */
body:is(.page-id-3276,.page-id-3478) .ec-courses .ec-course-card__media::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 1 !important;
    background:
        linear-gradient(
            106deg,
            color-mix(in srgb, var(--ec-course-accent) 58%, transparent) 0%,
            color-mix(in srgb, var(--ec-course-accent) 24%, transparent) 38%,
            transparent 70%
        ),
        linear-gradient(
            180deg,
            transparent 42%,
            rgba(2,9,46,.10) 68%,
            rgba(2,9,46,.70) 100%
        ) !important;
    mix-blend-mode: normal !important;
    pointer-events: none !important;
}

/* Secondary soft colour veil supplied by the explicit HTML wash span. */
body:is(.page-id-3276,.page-id-3478) .ec-courses .ec-course-card__image-wash {
    position: absolute !important;
    inset: 0 !important;
    z-index: 1 !important;
    display: block !important;
    background:
        linear-gradient(
            112deg,
            color-mix(in srgb, var(--ec-course-accent) 20%, transparent) 0%,
            transparent 44%,
            transparent 100%
        ) !important;
    pointer-events: none !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-courses .ec-course-card__area {
    position: absolute !important;
    z-index: 2 !important;
    left: 16px !important;
    bottom: 14px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 7px !important;
    max-width: calc(100% - 32px) !important;
    padding: 6px 9px !important;
    border-radius: 7px 7px 0 7px !important;
    background: color-mix(in srgb, var(--ec-course-accent) 82%, #02092E) !important;
    border: 1px solid rgba(255,255,255,.20) !important;
    color: #fff !important;
    font-size: .74rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: .045em !important;
    box-shadow: 0 4px 12px rgba(2,9,46,.16) !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-courses .ec-course-card__area .ec-icon {
    width: 15px !important;
    height: 15px !important;
    flex: 0 0 15px !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-courses .ec-course-card__body {
    flex: 1 1 auto !important;
    display: flex !important;
    flex-direction: column !important;
    padding: 23px !important;
    background:
        linear-gradient(
            145deg,
            #fff 0%,
            #fff 55%,
            var(--ec-course-tint) 100%
        ) !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-courses .ec-course-card__body h3 {
    min-height: 2.65em !important;
    margin: 0 0 10px !important;
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
    overflow: hidden !important;
    font-family: "Source Serif 4", Georgia, serif !important;
    font-size: 1.52rem !important;
    line-height: 1.08 !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-courses .ec-course-card__body h3 a {
    color: #02092E !important;
    text-decoration: none !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-courses .ec-course-card__body > p {
    margin: 0 0 18px !important;
    color: #65747E !important;
    font-size: 1rem !important;
    line-height: 1.58 !important;
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 3 !important;
    overflow: hidden !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-courses .ec-course-card__cta {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 14px !important;
    min-height: 46px !important;
    margin-top: auto !important;
    padding: 10px 12px !important;
    border: 1px solid color-mix(in srgb, var(--ec-course-accent) 22%, #D9E1E6) !important;
    border-radius: 10px 10px 0 10px !important;
    background: color-mix(in srgb, var(--ec-course-accent) 8%, #fff) !important;
    color: var(--ec-course-accent) !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-courses .ec-course-card__cta::before {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    top: -14px !important;
    height: 1px !important;
    background: color-mix(in srgb, var(--ec-course-accent) 14%, #D9E1E6) !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-courses .ec-course-card__cta .ec-icon {
    width: 18px !important;
    height: 18px !important;
    flex: 0 0 18px !important;
}

@media (hover:hover) {
    body:is(.page-id-3276,.page-id-3478) .ec-courses .ec-course-card__cta:hover {
        transform: translateY(-2px) !important;
        background: color-mix(in srgb, var(--ec-course-accent) 13%, #fff) !important;
        box-shadow: 0 8px 20px rgba(2,29,54,.09) !important;
    }
}

@media (max-width: 960px) {
    body:is(.page-id-3276,.page-id-3478) .ec-courses .ec-course-grid {
        grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    }
}

@media (max-width: 700px) {
    body:is(.page-id-3276,.page-id-3478) .ec-courses .ec-course-grid {
        grid-template-columns: 1fr !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    body:is(.page-id-3276,.page-id-3478) .ec-courses .ec-course-card,
    body:is(.page-id-3276,.page-id-3478) .ec-courses .ec-course-card__media img {
        transition: none !important;
    }
}


/* Home #3276 — remove redundant divider above course CTA. */
body:is(.page-id-3276,.page-id-3478) .ec-courses .ec-course-card__cta::before {
    content: none !important;
    display: none !important;
}


/* Home #3276 — experience tips participate in normal flow.
 * Prevent title overlap/cropping and reserve stable vertical room for the longest tip.
 */
body:is(.page-id-3276,.page-id-3478) .ec-exp-step {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-exp-step h3 {
    min-height: 2.25em !important;
    display: flex !important;
    align-items: flex-start !important;
    justify-content: center !important;
    margin-bottom: 0 !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-exp-tip {
    position: static !important;
    top: auto !important;
    left: auto !important;
    width: min(218px, 100%) !important;
    min-height: 58px !important;
    margin: 12px auto 0 !important;
    padding: 9px 11px !important;
    transform: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transition: opacity .2s ease, visibility .2s ease !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-exp-step.on .ec-exp-tip,
body:is(.page-id-3276,.page-id-3478) .ec-exp-step:hover .ec-exp-tip,
body:is(.page-id-3276,.page-id-3478) .ec-exp-step:focus-within .ec-exp-tip {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-experience {
    padding-top: 56px !important;
    padding-bottom: 64px !important;
    overflow: visible !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-exp-track,
body:is(.page-id-3276,.page-id-3478) .ec-exp-sticky,
body:is(.page-id-3276,.page-id-3478) .ec-exp-steps {
    overflow: visible !important;
}


/* Home #3276 — experience active/hover arbitration.
 * Scroll owns .on; hover/focus temporarily takes visual priority.
 */
body:is(.page-id-3276,.page-id-3478) .ec-exp-step:hover .ec-exp-ico,
body:is(.page-id-3276,.page-id-3478) .ec-exp-step:focus-within .ec-exp-ico,
body:is(.page-id-3276,.page-id-3478) .ec-exp-step.on .ec-exp-ico {
    background: #CDA22C !important;
    border-color: #CDA22C !important;
    color: #FFFFFF !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-exp-step:hover h3,
body:is(.page-id-3276,.page-id-3478) .ec-exp-step:focus-within h3,
body:is(.page-id-3276,.page-id-3478) .ec-exp-step.on h3 {
    color: #0B4D7A !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-exp-step:hover .ec-exp-tip,
body:is(.page-id-3276,.page-id-3478) .ec-exp-step:focus-within .ec-exp-tip,
body:is(.page-id-3276,.page-id-3478) .ec-exp-step.on .ec-exp-tip {
    opacity: 1 !important;
    visibility: visible !important;
}

/* When another item is hovered/focused, suppress the scroll-active item's tip/highlight. */
body:is(.page-id-3276,.page-id-3478) .ec-exp-steps:has(.ec-exp-step:hover) .ec-exp-step.on:not(:hover) .ec-exp-tip,
body:is(.page-id-3276,.page-id-3478) .ec-exp-steps:has(.ec-exp-step:focus-within) .ec-exp-step.on:not(:focus-within) .ec-exp-tip {
    opacity: 0 !important;
    visibility: hidden !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-exp-steps:has(.ec-exp-step:hover) .ec-exp-step.on:not(:hover) .ec-exp-ico,
body:is(.page-id-3276,.page-id-3478) .ec-exp-steps:has(.ec-exp-step:focus-within) .ec-exp-step.on:not(:focus-within) .ec-exp-ico {
    background: #F7F8F5 !important;
    border-color: #CDA22C !important;
    color: #023564 !important;
}

body:is(.page-id-3276,.page-id-3478) .ec-exp-steps:has(.ec-exp-step:hover) .ec-exp-step.on:not(:hover) h3,
body:is(.page-id-3276,.page-id-3478) .ec-exp-steps:has(.ec-exp-step:focus-within) .ec-exp-step.on:not(:focus-within) h3 {
    color: #02092E !important;
}


/* Home hero CTA states — visited links must preserve approved contrast. */
body.page-id-3276 .ec-hero .ec-btn-blue,
body.page-id-3276 .ec-hero .ec-btn-blue:link,
body.page-id-3276 .ec-hero .ec-btn-blue:visited {
    color: #FFFFFF !important;
}
body.page-id-3276 .ec-hero .ec-btn-blue:hover,
body.page-id-3276 .ec-hero .ec-btn-blue:focus-visible {
    color: #FFFFFF !important;
}

body.page-id-3276 .ec-hero .ec-btn-gold,
body.page-id-3276 .ec-hero .ec-btn-gold:link,
body.page-id-3276 .ec-hero .ec-btn-gold:visited,
body.page-id-3276 .ec-hero .ec-btn-gold:hover,
body.page-id-3276 .ec-hero .ec-btn-gold:focus-visible {
    color: #02092E !important;
}

body.page-id-3276 .ec-hero .ec-hero-b-tertiary,
body.page-id-3276 .ec-hero .ec-hero-b-tertiary:link,
body.page-id-3276 .ec-hero .ec-hero-b-tertiary:visited {
    color: #023564 !important;
}
body.page-id-3276 .ec-hero .ec-hero-b-tertiary:hover,
body.page-id-3276 .ec-hero .ec-hero-b-tertiary:focus-visible {
    color: #0B4D7A !important;
}


/* Home hero — restore explicit hover/focus feedback after visited-state hardening. */
body.page-id-3276 .ec-hero .ec-btn-blue:hover,
body.page-id-3276 .ec-hero .ec-btn-blue:focus-visible {
    background: #0B4D7A !important;
    border-color: #0B4D7A !important;
    color: #FFFFFF !important;
    transform: translateY(-2px) !important;
}

body.page-id-3276 .ec-hero .ec-btn-gold:hover,
body.page-id-3276 .ec-hero .ec-btn-gold:focus-visible {
    background: #B88D20 !important;
    border-color: #B88D20 !important;
    color: #02092E !important;
    transform: translateY(-2px) !important;
}

body.page-id-3276 .ec-hero .ec-hero-b-tertiary:hover,
body.page-id-3276 .ec-hero .ec-hero-b-tertiary:focus-visible {
    color: #0B4D7A !important;
}

body.page-id-3276 .ec-hero .ec-hero-b-tertiary:hover span,
body.page-id-3276 .ec-hero .ec-hero-b-tertiary:focus-visible span {
    transform: translateX(4px) !important;
}


/* Formation product pages — canonical course-page language, 2026-10-06. */
.ec-formation-component-grid {
    margin-top: 28px;
}
.ec-formation-components .ec-course-card--formation .ec-course-card__media,
.ec-formation-components .ec-course-card--formation h3 a,
.ec-formation-components .ec-course-card--formation .ec-course-card__cta {
    cursor: pointer;
}
.ec-formation-components .ec-course-card--formation .ec-course-card__cta span {
    pointer-events: none;
}
.ec-formation-full-outline {
    margin-top: 52px;
    padding-top: 36px;
    border-top: 1px solid rgba(2,53,100,.12);
}
.ec-formation-full-outline > h2 {
    margin-bottom: 24px;
}
.ec-formation-course-outline {
    margin-top: 28px;
}
.ec-formation-course-outline__head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 12px;
}
.ec-formation-course-outline__head > div {
    display: flex;
    align-items: center;
    gap: 12px;
}
.ec-formation-course-outline__head h3 {
    margin: 0;
}
.ec-formation-course-outline__head small {
    color: #617184;
    font-weight: 700;
}
.ec-formation-course-outline__number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    min-height: 34px;
    border-radius: 999px;
    background: var(--ec-course-tint, #E8F0F5);
    color: var(--ec-course-accent, #0B4D7A);
    font-weight: 800;
    font-size: .78rem;
    letter-spacing: .06em;
}
.ec-course-modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 99999;
    align-items: center;
    justify-content: center;
    padding: 24px;
}
.ec-course-modal:target {
    display: flex;
}
.ec-course-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(3,16,38,.72);
    backdrop-filter: blur(6px);
}
.ec-course-modal__panel {
    position: relative;
    z-index: 1;
    width: min(820px, 100%);
    max-height: min(88vh, 900px);
    overflow: auto;
    background: #fff;
    border-radius: 22px;
    box-shadow: 0 28px 80px rgba(3,16,38,.28);
    padding: clamp(24px,4vw,42px);
}
.ec-course-modal__close {
    position: sticky;
    top: 0;
    float: right;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 999px;
    background: #eef3f7;
    color: #06284a;
    font-size: 1.5rem;
    text-decoration: none;
    z-index: 2;
}
.ec-course-modal__head h2 {
    margin: 18px 0 12px;
    font-size: clamp(1.7rem,3vw,2.5rem);
}
.ec-course-modal__head > p {
    color: #607083;
    line-height: 1.7;
}
.ec-course-modal__facts {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 18px;
}
.ec-course-modal__section {
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px solid rgba(2,53,100,.12);
}
.ec-course-modal__section h3 {
    margin-bottom: 10px;
}
.ec-course-modal__section p {
    color: #526476;
    line-height: 1.7;
}
.ec-course-modal__outline details {
    border: 1px solid rgba(2,53,100,.12);
    border-radius: 12px;
    margin-top: 10px;
    overflow: hidden;
}
.ec-course-modal__outline summary {
    cursor: pointer;
    padding: 14px 16px;
    font-weight: 750;
    background: #f8fafc;
}
.ec-course-modal__outline ol {
    margin: 0;
    padding: 8px 20px 16px 42px;
}
.ec-course-modal__outline li {
    margin: 8px 0;
    color: #526476;
}
@media (max-width: 767px) {
    .ec-formation-course-outline__head {
        align-items: flex-start;
        flex-direction: column;
    }
    .ec-course-modal {
        padding: 10px;
        align-items: flex-end;
    }
    .ec-course-modal__panel {
        max-height: 92vh;
        border-radius: 18px 18px 0 0;
    }
}
/* Formation module rhythm — 2026-10-06. */
.ec-formation-component-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:32px;}
.ec-formation-components .ec-course-curriculum__head{align-items:flex-end;margin-bottom:8px;}
.ec-formation-components .ec-course-curriculum__head>div:first-child{max-width:720px;}
.ec-formation-components .ec-course-curriculum__head p{margin-top:10px;max-width:68ch;color:#607083;line-height:1.7;}
.ec-formation-components .ec-course-card__body{padding:22px 20px 20px;}
.ec-formation-components .ec-course-card h3{font-size:1.22rem;line-height:1.25;margin-bottom:10px;}
.ec-formation-components .ec-course-card__excerpt{font-size:.95rem;line-height:1.58;}
.ec-formation-components .ec-course-card__meta{margin-top:16px;padding-top:14px;}
.ec-formation-components .ec-course-card__cta{margin-top:14px;}
.ec-formation-full-outline{margin-top:56px;padding-top:40px;}
.ec-formation-course-outline{margin-top:30px;}
.ec-formation-course-outline__head{margin-bottom:14px;}
.ec-formation-course-outline__head h3{font-size:1.22rem;line-height:1.3;}
.ec-course-editorial,.ec-course-method,.ec-formation-components{margin-top:42px;}
@media (max-width:900px){.ec-formation-component-grid{grid-template-columns:1fr;gap:18px;}}

/* Canonical internal hero system — 2026-10-06 */
.ec-internal-hero .ec-course-hero__grid{align-items:center;min-height:510px;}
.ec-internal-hero .ec-course-hero__copy{padding-block:56px;}
.ec-internal-hero .ec-course-hero__copy h1{max-width:10.8ch;}
.ec-internal-hero .ec-course-hero__summary{max-width:58ch;}
.ec-internal-hero__media{min-height:360px;}
.ec-internal-hero__media img{width:100%;height:100%;min-height:360px;object-fit:cover;}
@media (max-width:900px){.ec-internal-hero .ec-course-hero__grid{min-height:0;}.ec-internal-hero .ec-course-hero__copy{padding-block:36px;}.ec-internal-hero__media,.ec-internal-hero__media img{min-height:260px;}}

/* Internal hero headline guardrail — 2026-10-06 */
.ec-internal-hero .ec-course-hero__copy h1{max-width:12ch;text-wrap:balance;}
@media (min-width:1200px){.ec-internal-hero .ec-course-hero__copy h1{font-size:clamp(3rem,4.4vw,4.8rem);line-height:.98;}}
@media (max-width:900px){.ec-internal-hero .ec-course-hero__copy h1{max-width:14ch;}}

/* Confirmed public instructor directory — 2026-10-06 */
.ec-instructor-profile__photo--placeholder{display:grid;place-items:center;background:linear-gradient(135deg,#0b3355,#0a4b70);color:#fff;}
.ec-instructor-profile__photo--placeholder span{font-family:var(--ec-font-heading,serif);font-size:clamp(3rem,8vw,6rem);line-height:1;opacity:.92;}
.ec-instructor-profile__meta{margin-bottom:.75rem;color:var(--ec-color-text-muted,#62707c);}
.ec-instructor-profile__courses{margin:0;padding-left:1.1rem;display:grid;gap:.45rem;}
.ec-instructor-profile__courses a{font-weight:700;text-decoration:none;color:var(--ec-color-primary,#0b4d7a);}
.ec-instructor-profile__courses a:hover{text-decoration:underline;}

/* Internal hero proportion refinement — 2026-10-08 */
@media (min-width:901px){
.ec-internal-hero .ec-course-hero__grid{min-height:420px;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:clamp(34px,4vw,60px)}
.ec-internal-hero .ec-course-hero__copy{padding-block:32px}
.ec-internal-hero .ec-course-hero__copy h1{max-width:18ch;font-size:clamp(2.8rem,4vw,4.15rem);line-height:1.02;text-wrap:balance}
.ec-internal-hero .ec-course-hero__summary{max-width:66ch;font-size:clamp(1rem,1.2vw,1.12rem);line-height:1.58}
.ec-internal-hero__media,.ec-internal-hero__media img{min-height:300px;max-height:330px}
}
@media (min-width:1200px){
.ec-internal-hero .ec-course-hero__copy h1{font-size:clamp(3rem,4vw,4.15rem);max-width:18ch}
}
@media (max-width:900px){
.ec-internal-hero .ec-course-hero__copy{padding-block:30px}
.ec-internal-hero .ec-course-hero__copy h1{max-width:18ch;line-height:1.03}
.ec-internal-hero__media,.ec-internal-hero__media img{min-height:220px;max-height:290px}
}
/* Catalog journey timeline 2026-10-08 */
.ec-catalog-journey .ec-public-intro{max-width:850px}
.ec-catalog-steps{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px;margin-top:38px}
.ec-catalog-steps__line{position:absolute;top:23px;left:16.67%;right:16.67%;height:2px;background:linear-gradient(90deg,#CDA22C,#0A9396);pointer-events:none}
.ec-catalog-steps__item{text-align:center;position:relative;z-index:1}
.ec-catalog-steps__dot{display:grid;place-items:center;width:46px;height:46px;margin:0 auto 17px;border:2px solid #CDA22C;border-radius:50%;background:#FBFAF6;color:#023564;font-weight:800;font-size:13px}
.ec-catalog-steps__item h3{font-family:"Source Serif 4",Georgia,serif;font-size:clamp(21px,2vw,29px);line-height:1.2;margin:0 0 9px;color:#02092E}
.ec-catalog-steps__item p{max-width:265px;margin:0 auto;color:#5E6D75;line-height:1.6}
.ec-catalog-shell{scroll-margin-top:85px}
@media(max-width:700px){.ec-catalog-steps{grid-template-columns:1fr;gap:26px;margin-top:29px}.ec-catalog-steps__line{top:22px;bottom:22px;left:22px;right:auto;width:2px;height:auto;background:linear-gradient(#CDA22C,#0A9396)}.ec-catalog-steps__item{display:grid;grid-template-columns:46px 1fr;gap:0 18px;text-align:left;align-items:start}.ec-catalog-steps__dot{grid-row:span 2;margin:0}.ec-catalog-steps__item h3{font-size:23px}.ec-catalog-steps__item p{margin:0;max-width:none}.ec-catalog-shell{scroll-margin-top:68px}}
/* Editorial surfaces shared by formations, territories and trails — 2026-10-08 */
.ec-editorial-formations,.ec-editorial-territories,.ec-editorial-trails{margin-top:34px;border-top:1px solid #d5ded9}
.ec-editorial-formation-row,.ec-editorial-trail-row{display:grid;grid-template-columns:105px minmax(0,1fr) 190px;gap:24px;align-items:center;padding:35px 15px;color:#02092e!important;text-decoration:none;border-bottom:1px solid #d5ded9;border-left:4px solid transparent;transition:background .2s,border-color .2s}
.ec-editorial-formation-row:hover,.ec-editorial-trail-row:hover,.ec-editorial-formation-row:focus-visible,.ec-editorial-trail-row:focus-visible{background:color-mix(in srgb,var(--a) 7%,white);border-left-color:var(--a)}
.ec-editorial-formation-number{font:400 clamp(64px,6vw,103px)/1 Georgia,serif;color:color-mix(in srgb,var(--a) 45%,white)}
.ec-editorial-formation-copy,.ec-editorial-trail-copy{display:grid;gap:9px}
.ec-editorial-eyebrow{font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:var(--a)}
.ec-editorial-formation-copy strong,.ec-editorial-trail-copy strong{font-family:"Source Serif 4",Georgia,serif;font-weight:600;font-size:clamp(26px,2.9vw,39px);line-height:1.14;color:#02092e}
.ec-editorial-description,.ec-editorial-trail-intent{font-size:15px;line-height:1.65;color:#566670;max-width:710px}
.ec-editorial-link,.ec-editorial-trail-link{justify-self:end;color:var(--a);font-size:13px;font-weight:800;border-bottom:1px solid var(--a);padding-bottom:8px;white-space:nowrap}
.ec-editorial-territory-row{display:grid;grid-template-columns:78px 1fr auto;gap:23px;align-items:center;padding:21px 15px;border-bottom:1px solid #d5ded9;color:#02092e!important;text-decoration:none;transition:background .2s}
.ec-editorial-territory-row:hover,.ec-editorial-territory-row:focus-visible{background:color-mix(in srgb,var(--a) 7%,white)}
.ec-editorial-territory-number{font:400 31px/1 Georgia,serif;color:var(--a)}
.ec-editorial-territory-row strong{font:600 clamp(23px,2.55vw,34px)/1.18 "Source Serif 4",Georgia,serif}
.ec-editorial-territory-link{font-weight:800;font-size:13px;color:var(--a);white-space:nowrap}
.ec-editorial-trail-row{grid-template-columns:75px minmax(0,1fr) 210px;padding:29px 14px}
.ec-editorial-trail-number{font:400 48px/1 Georgia,serif;color:color-mix(in srgb,var(--a) 68%,white)}
.ec-editorial-trail-copy strong{font-size:clamp(26px,2.6vw,35px)}
.ec-editorial-trail-intent{font-weight:650;color:#344e5e}
.ec-trail-steps{margin-top:36px}
@media(max-width:900px){.ec-editorial-formation-row,.ec-editorial-trail-row{grid-template-columns:70px 1fr;gap:13px 24px}.ec-editorial-link,.ec-editorial-trail-link{grid-column:2;justify-self:start}.ec-editorial-formation-number{font-size:65px}.ec-editorial-trail-number{font-size:42px}}
@media(max-width:620px){.ec-editorial-formation-row,.ec-editorial-trail-row{grid-template-columns:1fr;gap:12px;padding:27px 11px}.ec-editorial-link,.ec-editorial-trail-link{grid-column:1}.ec-editorial-formation-number{font-size:58px}.ec-editorial-territory-row{grid-template-columns:42px 1fr;gap:8px 12px}.ec-editorial-territory-number{font-size:24px}.ec-editorial-territory-link{grid-column:2}.ec-editorial-territory-row strong{font-size:26px}}
/* Shared orientation page presentation 2026-10-08 */
.ec-next-step-orientation .ec-chat-sec{padding:75px 0;background:#F5F2E9}
.ec-next-step-orientation .ec-wrap{max-width:1240px;margin:auto;padding:0 28px}
.ec-next-step-orientation .ec-chat-grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:46px;align-items:start}
.ec-next-step-orientation .ec-chat-copy h2{font-family:"Source Serif 4",Georgia,serif;font-size:clamp(44px,4.8vw,66px);line-height:.98;color:#02092e;margin:12px 0}
.ec-next-step-orientation .ec-chat-copy p{font-size:16.5px;line-height:1.7;color:#566670}
.ec-next-step-orientation .ec-chat{background:#fff;border:1px solid #dce4df;border-radius:22px 22px 0 22px;min-height:510px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 50px rgba(2,9,46,.07)}
.ec-next-step-orientation .ec-chat-head{padding:15px 18px;border-bottom:1px solid #e3e8e4;display:flex;justify-content:space-between;align-items:center}
.ec-next-step-orientation .ec-chat-brand{display:flex;gap:11px;align-items:center}
.ec-next-step-orientation .ec-chat-brand img{width:38px;height:38px;border-radius:9px;object-fit:cover}
.ec-next-step-orientation .ec-chat-brand small{display:block;color:#77847d}
.ec-next-step-orientation .ec-chat-progress{font-size:12px;color:#748078}
.ec-next-step-orientation .ec-chat-body{padding:22px;display:flex;flex-direction:column;gap:11px;min-height:348px}
.ec-next-step-orientation .ec-msg{max-width:76%;padding:13px 16px;border-radius:15px;line-height:1.45}
.ec-next-step-orientation .ec-msg.sys{align-self:flex-start;background:#eef3ef;border:1px solid #dee6e1;border-bottom-left-radius:4px}
.ec-next-step-orientation .ec-msg.user{align-self:flex-end;background:#023564;color:#fff;border-bottom-right-radius:4px}
.ec-next-step-orientation .ec-typing{font-size:13px;color:#7b8981;padding:7px 2px}
.ec-next-step-orientation .ec-chat-actions{margin-top:auto;padding:15px 18px;border-top:1px solid #e3e8e4;display:flex;flex-wrap:wrap;gap:8px}
.ec-next-step-orientation .ec-choice{border:1px solid #b8ccc2;background:#fff;padding:9px 12px;border-radius:999px 999px 0 999px;color:#24473d;cursor:pointer}
.ec-next-step-orientation .ec-choice:hover,.ec-next-step-orientation .ec-choice:focus-visible{background:#eef3ef}
.ec-next-step-orientation .ec-rec{border:1px solid #dce4df;border-radius:14px;padding:15px;background:#fbfcfb}
.ec-next-step-orientation .ec-rec a{color:#023564;font-weight:800}
@media(max-width:900px){.ec-next-step-orientation .ec-chat-grid{grid-template-columns:1fr}}
@media(max-width:620px){.ec-next-step-orientation .ec-wrap{padding:0 18px}.ec-next-step-orientation .ec-chat-sec{padding:46px 0}.ec-next-step-orientation .ec-chat-body{padding:16px}.ec-next-step-orientation .ec-msg{max-width:95%}}
/* Public editorial: Meu Lugar / theology — 2026-10-08 */
.ec-ml-books{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:32px}
.ec-ml-book{display:flex;flex-direction:column;min-height:290px;justify-content:space-between;padding:34px 30px;background:#081b39;color:#fff;border-radius:24px 24px 0 24px;border-top:4px solid var(--ec-card-accent,#CDA22C)}
.ec-ml-book:nth-child(2){background:#f0ece1;color:#071632}
.ec-ml-book .ec-kicker{color:#e9c772}.ec-ml-book:nth-child(2) .ec-kicker{color:#8c6d20}
.ec-ml-book h3{font-family:"Source Serif 4",Georgia,serif;font-size:clamp(26px,3vw,40px);line-height:1.12;margin:12px 0}
.ec-ml-book p{font-size:16px;line-height:1.7;max-width:560px;margin:0;color:inherit;opacity:.88}
.ec-ml-step-rail{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;margin-top:36px;border-top:1px solid #b5c4c5}
.ec-ml-step{position:relative;min-height:130px;border-bottom:1px solid #b5c4c5;padding:21px 10px 18px 14px;display:flex;flex-direction:column;gap:17px}
.ec-ml-step:before{content:"";position:absolute;top:-5px;left:12px;width:9px;height:9px;border-radius:50%;background:#cda22c}
.ec-ml-step__number{font:400 29px/1 Georgia,serif;color:#0b4d7a}
.ec-ml-step strong{color:#071632;font:600 16px/1.3 "Source Serif 4",Georgia,serif}
.ec-ml-principles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin-top:30px;border-top:1px solid #cbd6d3}
.ec-ml-principles>div{border-bottom:1px solid #cbd6d3;padding:22px 18px 22px 32px;position:relative;font-family:"Source Serif 4",Georgia,serif;font-size:clamp(18px,2vw,25px);line-height:1.3;color:#071632}
.ec-ml-principles>div:before{content:"";position:absolute;left:10px;top:30px;background:#cda22c;width:9px;height:9px;border-radius:50%}
.ec-ml-journey-line{list-style:none;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;margin:38px 0 45px;border-top:2px solid #cda22c}
.ec-ml-journey-line li{padding:24px 13px 10px;position:relative;display:flex;flex-direction:column;gap:8px}
.ec-ml-journey-line li:before{content:"";position:absolute;top:-9px;left:15px;background:#fff;border:2px solid #cda22c;width:15px;height:15px;border-radius:50%}
.ec-ml-journey-line strong{font-family:"Source Serif 4",Georgia,serif;font-size:18px;color:#071632}
.ec-ml-journey-line span{font-size:13px;line-height:1.55;color:#61707c}
.ec-theology-closing .ec-button--ghost-light{color:#0b4d7a;border:1px solid #0b4d7a;background:transparent}
@media(max-width:960px){.ec-ml-step-rail{grid-template-columns:repeat(4,minmax(0,1fr))}.ec-ml-journey-line{grid-template-columns:repeat(3,minmax(0,1fr));border-top:0}.ec-ml-journey-line li{border-top:2px solid #cda22c}}
@media(max-width:650px){.ec-ml-books,.ec-ml-principles{grid-template-columns:1fr}.ec-ml-step-rail{grid-template-columns:repeat(2,minmax(0,1fr))}.ec-ml-book{min-height:230px}.ec-ml-journey-line{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Meu Lugar interactive journey + editorial principles 2026-10-08 */
.ec-ml-journey{display:grid;grid-template-columns:minmax(220px,.78fr) minmax(0,1.22fr);gap:35px;align-items:stretch;margin-top:35px;padding:35px;background:#11483d;color:#fff;border-radius:22px}
.ec-ml-journey__nav{display:grid;gap:3px;align-content:start;max-height:560px;overflow-y:auto}
.ec-ml-journey__step{width:100%;display:flex;align-items:center;gap:12px;background:transparent;border:0;border-radius:9px;color:#d4e5da;text-align:left;padding:8px 10px;font-family:inherit;font-size:15px;cursor:pointer}
.ec-ml-journey__step span{flex:0 0 33px;height:33px;border:1px solid #7b9d8e;display:grid;place-items:center;border-radius:50%;font-size:11px;font-weight:700}
.ec-ml-journey__step.is-active{color:#d8e979;font-weight:750;background:rgba(255,255,255,.06)}
.ec-ml-journey__step.is-active span{background:#d8e979;color:#11483d;border-color:#d8e979}
.ec-ml-journey__panel{position:relative;min-height:355px;border:1px solid rgba(255,255,255,.2);border-radius:18px;padding:48px 40px 25px;display:flex;flex-direction:column;justify-content:center;overflow:hidden}
.ec-ml-journey__panel .ec-kicker{position:relative;z-index:1;color:#e2b72d;font-size:12px;letter-spacing:.12em;font-weight:800}
.ec-ml-journey__big{position:absolute;right:18px;top:5px;font:400 150px/1 Georgia,serif;color:rgba(255,255,255,.07)}
.ec-ml-journey__panel h3{position:relative;z-index:1;font:600 clamp(30px,4vw,54px)/1.08 "Source Serif 4",Georgia,serif;color:#fff;margin:23px 0 15px}
.ec-ml-journey__panel p{position:relative;z-index:1;font-family:inherit;color:#d7e8e1;font-size:17px;line-height:1.65;max-width:530px}
.ec-ml-journey__progress{display:grid;grid-template-columns:repeat(11,1fr);gap:6px;margin:22px 0}.ec-ml-journey__progress span{height:3px;background:#63897d}.ec-ml-journey__progress span.is-active{background:#e2b72d}
.ec-ml-journey__controls{display:flex;justify-content:space-between;gap:12px}.ec-ml-journey__controls button{background:transparent;border:1px solid #92aa9f;border-radius:6px;padding:9px 13px;color:white;cursor:pointer}.ec-ml-journey__controls button:disabled{opacity:.35;cursor:default}
.ec-ml-principles{grid-template-columns:1fr}
.ec-ml-principles>div{font-family:inherit;font-size:17px;font-weight:500;line-height:1.6;padding:18px 18px 18px 33px}
.ec-ml-principles>div:before{top:27px;width:7px;height:7px}
@media(max-width:850px){.ec-ml-journey{grid-template-columns:1fr;gap:18px;padding:24px}.ec-ml-journey__nav{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none}.ec-ml-journey__panel{padding:31px 24px;min-height:320px}}
@media(max-width:550px){.ec-ml-journey__nav{grid-template-columns:1fr;max-height:240px}.ec-ml-journey__panel h3{font-size:34px}.ec-ml-journey__big{font-size:100px}}
/* Home-equivalent scroll progression for Meu Lugar; readable internal hero headlines */
@media(min-width:901px){
.ec-ml-scroll-stage{height:calc(100vh + 1650px);position:relative}
.ec-ml-scroll-stage .ec-ml-journey{position:sticky;top:90px;max-height:calc(100vh - 110px);overflow:hidden}
.ec-internal-hero .ec-course-hero__copy h1{max-width:25ch;font-size:clamp(2.65rem,3.65vw,3.7rem);line-height:1.08;text-wrap:balance}
.ec-internal-hero .ec-course-hero__grid{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(32px,3.5vw,52px)}
}
@media(min-width:1200px){
.ec-internal-hero .ec-course-hero__copy h1{max-width:25ch;font-size:clamp(2.85rem,3.7vw,3.8rem)}
}
@media(max-width:900px){
.ec-ml-scroll-stage{height:auto}
.ec-internal-hero .ec-course-hero__copy h1{max-width:24ch;text-wrap:balance;line-height:1.08}
}
/* Meu Lugar real home journey parity 2026-10-08 */
.ec-ml-home-journey{background:#10483e;color:#fff;margin:28px 0 0}
.ec-ml-home-journey .ec-jtrack{height:780vh}
.ec-ml-home-journey .ec-jsticky{position:sticky;top:0;min-height:100vh;display:flex;align-items:center;padding:48px 0}
.ec-ml-home-journey .ec-jgrid{display:grid;grid-template-columns:.74fr 1.26fr;gap:52px;align-items:center}
.ec-ml-home-journey .ec-jhead{font-family:"Source Serif 4",Georgia,serif;font-size:clamp(39px,4.6vw,64px);line-height:.99;margin:12px 0 24px;color:#fff}
.ec-ml-home-journey .ec-jhead em{color:#d9ef85}
.ec-ml-home-journey .ec-jnav{display:grid;grid-template-columns:1fr;gap:5px}
.ec-ml-home-journey .ec-jnav button{all:unset;display:flex;align-items:center;gap:12px;color:#b8cec6;cursor:pointer;font-family:inherit;font-size:15px}
.ec-ml-home-journey .ec-jnav b{width:27px;height:27px;border:1px solid rgba(255,255,255,.22);border-radius:50%;display:grid;place-items:center;font-size:10px;flex-shrink:0}
.ec-ml-home-journey .ec-jnav button.on{color:#d9ef85;font-weight:700}
.ec-ml-home-journey .ec-jnav button.on b{background:#d9ef85;color:#10483e;border-color:#d9ef85}
.ec-ml-home-journey .ec-jpanel{min-height:360px;border:1px solid rgba(255,255,255,.16);border-radius:20px 20px 0 20px;padding:42px;position:relative;overflow:hidden;background:rgba(255,255,255,.025)}
.ec-ml-home-journey .ec-jnum{position:absolute;right:22px;top:-8px;font:400 160px/1 Georgia,serif;color:rgba(255,255,255,.055)}
.ec-ml-home-journey .ec-jpanel h3{font-family:"Source Serif 4",Georgia,serif;font-size:clamp(39px,4.3vw,62px);margin:34px 0 14px;color:#fff;position:relative}
.ec-ml-home-journey .ec-jpanel p{font-size:17.5px;line-height:1.65;color:#dce7e2;max-width:630px;position:relative}
.ec-ml-home-journey .ec-jbars{display:grid;grid-template-columns:repeat(11,1fr);gap:6px;margin-top:28px}
.ec-ml-home-journey .ec-jbars i{height:3px;background:rgba(255,255,255,.18)}
.ec-ml-home-journey .ec-jbars i.on{background:#cda22c}
@media(max-width:900px){.ec-ml-home-journey .ec-jtrack{height:auto}.ec-ml-home-journey .ec-jsticky{position:relative;min-height:0;padding:40px 0}.ec-ml-home-journey .ec-jgrid{grid-template-columns:1fr;gap:30px}.ec-ml-home-journey .ec-jnav{grid-template-columns:repeat(2,minmax(0,1fr))}.ec-ml-home-journey .ec-jpanel{min-height:290px;padding:30px}}
@media(max-width:520px){.ec-ml-home-journey .ec-jnav{grid-template-columns:1fr}.ec-ml-home-journey .ec-jnav button{padding:2px 0}.ec-ml-home-journey .ec-jhead{font-size:42px}.ec-ml-home-journey .ec-jpanel h3{font-size:38px}}