@import url("https://fonts.googleapis.com/css2?family=Raleway:wght@400;600;700;800&display=swap");

/*--------------------------------------------------------------
This is your custom stylesheet.

Add your own styles here to make theme updates easier.
To override any styles from other stylesheets, simply copy them into here and edit away.

Make sure to respect the media queries! Otherwise you may
accidentally add desktop styles to the mobile layout.
https://www.w3schools.com/css/css_rwd_mediaqueries.asp
--------------------------------------------------------------*/

/* ===== Zealifi Course Card Customisations ===== */

/* Card wrapper */
.bb-cover-list-item {
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08), 0 1px 2px rgba(0, 0, 0, 0.06);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    background: #fff;
    border: 1px solid #e5e7eb;
}

.bb-cover-list-item:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1), 0 4px 10px rgba(0, 0, 0, 0.06);
}

/* Course cover image — consistent aspect ratio */
.bb-cover-list-item .bb-course-cover {
    position: relative;
    overflow: hidden;
}

.bb-cover-list-item .bb-course-cover .bb-cover-wrap {
    display: block;
    aspect-ratio: 16 / 10;
    overflow: hidden;
}

.bb-cover-list-item .bb-course-cover .bb-cover-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.bb-cover-list-item:hover .bb-course-cover .bb-cover-wrap img {
    transform: scale(1.04);
}

/* Badge base */
.zealifi-badge {
    position: absolute;
    z-index: 2;
    padding: 4px 10px;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.4;
    border-radius: 20px;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

/* Category badge — top left */
.zealifi-badge--category {
    top: 12px;
    left: 12px;
    background: rgba(15, 23, 42, 0.75);
    color: #fff;
}

/* Accreditation badges — top right */
.zealifi-badge--accredited,
.zealifi-badge--non-accredited {
    top: 12px;
    right: 12px;
}

.zealifi-badge--accredited {
    background: rgba(22, 101, 52, 0.85);
    color: #fff;
}

.zealifi-badge--non-accredited {
    background: rgba(71, 85, 105, 0.65);
    color: #fff;
}

/* Card details area */
.bb-cover-list-item .bb-card-course-details {
    padding: 16px 20px 20px;
}

/* Lesson count */
.bb-cover-list-item .course-lesson-count {
    font-size: 12px;
    font-weight: 600;
    color: #0d9488;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    margin-bottom: 6px;
}

/* Course title */
.bb-cover-list-item .bb-course-title {
    margin: 0 0 8px;
    line-height: 1.35;
}

.bb-cover-list-item .bb-course-title a {
    font-size: 16px;
    font-weight: 700;
    color: #1e293b;
    text-decoration: none;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.bb-cover-list-item .bb-course-title a:hover {
    color: #0d9488;
}

/* Short description */
.bb-cover-list-item .entry-content {
    font-size: 13.5px;
    line-height: 1.55;
    color: #64748b;
    margin: 0 0 12px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Duration + completions row */
.zealifi-course-meta {
    display: flex;
    gap: 14px;
    align-items: center;
    font-size: 12.5px;
    color: #64748b;
    margin: 0 0 14px;
    padding: 10px 0;
    border-top: 1px solid #f1f5f9;
    border-bottom: 1px solid #f1f5f9;
}

.zealifi-course-meta .zealifi-duration,
.zealifi-course-meta .zealifi-completions {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.zealifi-course-meta .zealifi-duration::before {
    content: "\23F1";
    font-size: 13px;
}

.zealifi-course-meta .zealifi-completions::before {
    content: "\2705";
    font-size: 11px;
}

/* Price / footer area */
.bb-cover-list-item .bb-course-footer.bb-course-pay {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 12px;
    border-top: 1px solid #f1f5f9;
    margin-top: auto;
}

.bb-cover-list-item .course-fee {
    font-size: 18px;
    font-weight: 800;
    color: #1e293b;
}

/* Tier inclusion tag */
.zealifi-tier-tag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    color: #fff;
    font-weight: 600;
    background: #0d9488;
    padding: 4px 10px;
    border-radius: 20px;
    white-space: nowrap;
}

/* LD status ribbon tweaks */
.bb-cover-list-item .ld-status {
    border-radius: 0 0 0 8px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.3px;
    padding: 5px 14px;
}

/* CTA button inside card */
.bb-cover-list-item .ld_course_grid_button .btn-primary {
    width: 100%;
    text-align: center;
    border-radius: 8px;
    font-weight: 600;
    font-size: 13.5px;
    padding: 10px 20px;
    background: #0d9488;
    border-color: #0d9488;
    transition: background 0.15s ease;
}

.bb-cover-list-item .ld_course_grid_button .btn-primary:hover {
    background: #0f766e;
    border-color: #0f766e;
}

/* ===== "What Are You Looking For" category cards ===== */

/* Equalize card heights in the category row */
.elementor-section .elementor-row,
.elementor-section .elementor-container {
    align-items: stretch;
}

/* Make the inner card divs fill the full column height */
.elementor-column .elementor-widget-text-editor div[style*="border-radius:12px"] {
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}

/* Ensure the widget wrapper also fills height */
.elementor-column .elementor-widget-text-editor .elementor-widget-container {
    height: 100%;
}

.elementor-column .elementor-widget-text-editor {
    height: 100%;
}

/* ===== Course Grid Layout — override BuddyBoss flex ===== */

/* Override BuddyBoss flex with CSS Grid for equal-height, equal-width cards */
.ld-course-list-items,
.ld-course-list-items.row {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 24px !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    flex-wrap: unset !important;
}

/* Reset all BuddyBoss column sizing on grid children */
.ld-course-list-items .bb-course-item-wrap,
.ld-course-list-items.row > .ld_course_grid,
.ld-course-list-items .ld_course_grid.bb-course-item-wrap {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    flex: unset !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-bottom: 0 !important;
    float: none !important;
}

/* Make cards fill their grid cell equally */
.ld-course-list-items .bb-cover-list-item {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.bb-cover-list-item .bb-card-course-details {
    padding: 16px 20px 20px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

/* Push price/button to bottom of card */
.bb-cover-list-item .bb-course-footer.bb-course-pay,
.bb-cover-list-item .ld_course_grid_button {
    margin-top: auto;
}

/* Category filter selector */
.learndash-course-grid-filter {
    margin-bottom: 24px;
}

/* ===== Responsive ===== */

@media (max-width: 1024px) {
    .ld-course-list-items,
    .ld-course-list-items.row {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 20px !important;
    }
}

@media (max-width: 768px) {
    .ld-course-list-items,
    .ld-course-list-items.row {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }
    .bb-cover-list-item .bb-card-course-details {
        padding: 14px 16px 16px;
    }

    .bb-cover-list-item .bb-course-title a {
        font-size: 15px;
    }

    .bb-cover-list-item .entry-content {
        font-size: 13px;
    }

    .zealifi-course-meta {
        gap: 10px;
        font-size: 12px;
    }

    .zealifi-badge {
        font-size: 9px;
        padding: 3px 8px;
    }

    .bb-cover-list-item .course-fee {
        font-size: 16px;
    }
}

@media (max-width: 480px) {
    .bb-cover-list-item:hover {
        transform: none;
    }
}

/* ============================================================
   Contact page (post ID 69217) — Zealifi-branded layout
   Tokens reconciled against zealifi-design/colors_and_type.css
   ============================================================ */
.zf-contact {
    font-family: 'Raleway', Arial, sans-serif;
    color: #2A2422;
    max-width: 1100px;
    margin: 0 auto;
    padding: 24px 20px 56px;
}
.zf-contact h1 {
    font-family: 'Raleway', Arial, sans-serif;
    font-weight: 800;
    color: #014153;
    font-size: 40px;
    line-height: 1.1;
    margin: 16px 0 8px;
}
.zf-contact h2 {
    font-family: 'Raleway', Arial, sans-serif;
    font-weight: 700;
    color: #014153;
    font-size: 22px;
    margin: 0 0 16px;
}
.zf-contact .zf-lede {
    font-size: 18px;
    line-height: 1.5;
    color: #2A2422;
    max-width: 720px;
    margin: 0 0 32px;
}
.zf-contact a { color: #014153; }
.zf-contact a:hover { color: #009FB1; }
.zf-grid {
    display: grid;
    grid-template-columns: 5fr 7fr;
    gap: 48px;
    align-items: start;
}
@media (max-width: 820px) {
    .zf-grid { grid-template-columns: 1fr; gap: 32px; }
}
.zf-info {
    background: #F5F2EA;
    border-radius: 12px;
    padding: 28px 28px 24px;
    border-top: 4px solid #FDB913;
}
.zf-info-row { margin: 14px 0; }
.zf-info-label {
    display: block;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: #6B7079;
    margin-bottom: 2px;
    font-weight: 600;
}
.zf-info-value { font-size: 17px; line-height: 1.4; }
.zf-info-value a { text-decoration: none; }
.zf-social {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid #E0E1E4;
    font-size: 14px;
}
.zf-social a {
    display: inline-block;
    margin-right: 18px;
    text-decoration: none;
}
.zf-form-host .gform_wrapper .gform_required_legend { display: none; }
.zf-form-host .gform_wrapper label.gfield_label {
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #014153;
    font-weight: 700;
}
.zf-form-host .gform_wrapper input[type=text],
.zf-form-host .gform_wrapper input[type=email],
.zf-form-host .gform_wrapper input[type=tel],
.zf-form-host .gform_wrapper textarea {
    border: 1px solid #E0E1E4;
    border-radius: 8px;
    padding: 12px 14px;
    font-size: 16px;
    font-family: inherit;
    background: #FFFFFF;
}
.zf-form-host .gform_wrapper input:focus,
.zf-form-host .gform_wrapper textarea:focus {
    border-color: #009FB1;
    outline: 2px solid #DCEFF1;
}
.zf-form-host .gform_wrapper button[type=submit],
.zf-form-host .gform_wrapper input[type=submit] {
    background: #FDB913;
    color: #014153;
    border: none;
    padding: 14px 32px;
    border-radius: 8px;
    font-weight: 800;
    font-size: 16px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}
.zf-form-host .gform_wrapper button[type=submit]:hover,
.zf-form-host .gform_wrapper input[type=submit]:hover {
    background: #014153;
    color: #FDB913;
}
.zf-fineprint {
    font-size: 12px;
    color: #6B7079;
    margin-top: 56px;
    text-align: center;
    border-top: 1px solid #E0E1E4;
    padding-top: 20px;
    line-height: 1.5;
}

/* ============================================================
   Training Partner Program page (post ID 67544)
   Custom-HTML rebuild reconciled against zealifi-design tokens.
   All selectors scoped under .tpp wrapper.
   ============================================================ */

html:has(.tpp) { scroll-behavior: smooth; }
.tpp #tpp-compare { scroll-margin-top: 100px; }

.tpp {
    --zf-blue: #014153;
    --zf-yellow: #FDB913;
    --zf-teal: #009FB1;
    --zf-red: #CB2033;
    --zf-grey: #E0E1E4;
    --zf-cream: #F5F2EA;
    --zf-paper: #FBF9F2;
    --zf-ink: #2A2422;
    --zf-grey-ink: #6B7079;
    font-family: 'Raleway', Arial, sans-serif;
    color: var(--zf-ink);
    line-height: 1.55;
}
.tpp * { box-sizing: border-box; }
.tpp a { color: var(--zf-blue); }
.tpp a:hover { color: var(--zf-teal); }

.tpp .zf-eyebrow { font-family: 'Raleway', sans-serif; font-size: 12px; font-weight: 800; letter-spacing: 0.18em; text-transform: uppercase; }
.tpp .zf-display { font-family: 'Raleway', sans-serif; font-weight: 800; text-transform: uppercase; line-height: 0.92; letter-spacing: -0.005em; margin: 0; }
.tpp .zf-display--xl { font-size: clamp(48px, 7vw, 96px); }
.tpp .zf-display--l { font-size: clamp(36px, 5vw, 64px); }
.tpp .zf-emph { color: var(--zf-yellow); }
.tpp .grain { position: absolute; inset: 0; background-image: radial-gradient(rgba(0,0,0,0.5) 1px, transparent 1px); background-size: 3px 3px; mix-blend-mode: multiply; opacity: 0.2; pointer-events: none; }

.tpp .zf-btn { display: inline-flex; align-items: center; gap: 8px; font-family: 'Raleway', sans-serif; font-weight: 800; font-size: 13px; letter-spacing: 0.1em; text-transform: uppercase; padding: 14px 26px; border-radius: 6px; border: 0; cursor: pointer; text-decoration: none; transition: all 0.18s; white-space: nowrap; }
.tpp .zf-btn--lg { font-size: 14px; padding: 16px 30px; }
.tpp .zf-btn--yellow { background: var(--zf-yellow); color: var(--zf-blue); }
.tpp .zf-btn--yellow:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(252,182,20,0.45); }
.tpp .zf-btn--ghost-light { background: transparent; color: #fff; box-shadow: inset 0 0 0 2px rgba(255,255,255,0.6); padding: 14px 26px; }
.tpp .zf-btn--ghost-light:hover { box-shadow: inset 0 0 0 2px #fff; }

/* ----- Hero ----- */
.tpp .tpp-hero { background: var(--zf-teal); color: #fff; padding: 96px 48px 104px; position: relative; overflow: hidden; }
.tpp .tpp-hero__inner { max-width: 1080px; margin: 0 auto; position: relative; }
.tpp .tpp-hero .zf-eyebrow { color: rgba(255,255,255,0.78); margin-bottom: 22px; }
.tpp .tpp-hero .zf-display { color: #fff; margin-bottom: 28px; }
.tpp .tpp-hero__sub { font-size: 19px; line-height: 1.5; max-width: 56ch; margin: 0 0 36px; color: rgba(255,255,255,0.94); }
.tpp .tpp-hero__ctas { display: flex; gap: 14px; flex-wrap: wrap; }
@media (max-width: 720px) { .tpp .tpp-hero { padding: 64px 24px 80px; } }

/* ----- Tier overview ----- */
.tpp .tpp-tiers { background: var(--zf-cream); padding: 88px 48px; }
.tpp .tpp-tiers__inner { max-width: 1180px; margin: 0 auto; }
.tpp .tpp-tiers__head { max-width: 700px; margin: 0 auto 44px; text-align: center; }
.tpp .tpp-tiers__head .zf-eyebrow { color: var(--zf-blue); margin-bottom: 12px; }
.tpp .tpp-tiers__head .zf-display { color: var(--zf-blue); }
.tpp .tpp-tiers__head p { color: var(--zf-grey-ink); font-size: 17px; margin: 14px 0 0; }
.tpp .tpp-tiers__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
@media (max-width: 1000px) { .tpp .tpp-tiers__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .tpp .tpp-tiers__grid { grid-template-columns: 1fr; } }
.tpp .tpp-tcard { background: #fff; border-radius: 10px; padding: 28px 24px 26px; box-shadow: 0 4px 14px rgba(2,65,83,0.08), 0 1px 3px rgba(2,65,83,0.05); display: flex; flex-direction: column; min-height: 280px; border-top: 4px solid transparent; }
.tpp .tpp-tcard--foundation { border-top-color: #94A3B8; }
.tpp .tpp-tcard--growth { border-top-color: var(--zf-teal); }
.tpp .tpp-tcard--excellence { border-top-color: var(--zf-yellow); }
.tpp .tpp-tcard--enterprise { border-top-color: var(--zf-blue); background: var(--zf-blue); color: #fff; }
.tpp .tpp-tcard--enterprise .tpp-tcard__name, .tpp .tpp-tcard--enterprise .tpp-tcard__price-amt { color: #fff; }
.tpp .tpp-tcard--enterprise .tpp-tcard__price-meta { color: rgba(255,255,255,0.62); }
.tpp .tpp-tcard--enterprise .tpp-tcard__body { color: rgba(255,255,255,0.88); }
.tpp .tpp-tcard--enterprise .tpp-tcard__cta { color: var(--zf-yellow); }
.tpp .tpp-tcard__name { font-family: 'Raleway', sans-serif; font-weight: 800; font-size: 22px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--zf-blue); margin-bottom: 14px; }
.tpp .tpp-tcard__price { display: flex; align-items: baseline; gap: 6px; margin-bottom: 18px; }
.tpp .tpp-tcard__price-amt { font-family: 'Raleway', sans-serif; font-weight: 800; font-size: 30px; color: var(--zf-blue); line-height: 1; }
.tpp .tpp-tcard__price-meta { font-size: 12px; color: var(--zf-grey-ink); font-weight: 600; }
.tpp .tpp-tcard__body { font-size: 14px; line-height: 1.55; color: var(--zf-ink); flex: 1; margin: 0 0 18px; }
.tpp .tpp-tcard__cta { font-family: 'Raleway', sans-serif; font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.12em; color: var(--zf-blue); text-decoration: none; }
.tpp .tpp-tcard__cta:hover { color: var(--zf-teal); }

/* ----- Compare ----- */
.tpp .tpp-compare { background: var(--zf-cream); padding: 88px 48px; }
.tpp .tpp-compare__inner { max-width: 1180px; margin: 0 auto; }
.tpp .tpp-compare__head { text-align: center; max-width: 700px; margin: 0 auto 44px; }
.tpp .tpp-compare__head .zf-eyebrow { color: var(--zf-blue); margin-bottom: 12px; }
.tpp .tpp-compare__head .zf-display { color: var(--zf-blue); }
.tpp .tpp-compare__head p { color: var(--zf-grey-ink); margin: 14px 0 0; }
.tpp .tpp-compare__table-wrap { background: #fff; border-radius: 12px; box-shadow: 0 8px 24px rgba(2,65,83,0.10); overflow: hidden; padding: 12px; }
.tpp table.tpp-cmp { width: 100%; border-collapse: collapse; font-size: 14px; }
.tpp table.tpp-cmp thead th { background: var(--zf-paper); padding: 18px 16px; text-align: left; font-family: 'Raleway',sans-serif; font-weight: 800; text-transform: uppercase; letter-spacing: 0.08em; font-size: 12px; }
.tpp table.tpp-cmp thead th:not(:first-child) { text-align: center; }
.tpp table.tpp-cmp thead th.col-foundation { color: #64748b; }
.tpp table.tpp-cmp thead th.col-growth { color: var(--zf-teal); }
.tpp table.tpp-cmp thead th.col-excellence { color: var(--zf-yellow); background: rgba(253,185,19,0.08); }
.tpp table.tpp-cmp thead th.col-enterprise { color: var(--zf-blue); }
.tpp table.tpp-cmp tbody td { padding: 14px 16px; border-top: 1px solid #F1F5F9; }
.tpp table.tpp-cmp tbody td:first-child { font-weight: 600; color: var(--zf-blue); }
.tpp table.tpp-cmp tbody td:not(:first-child) { text-align: center; color: var(--zf-grey-ink); font-weight: 700; }
.tpp table.tpp-cmp tbody tr.price-row td { padding-top: 22px; padding-bottom: 22px; border-top: 2px solid var(--zf-grey); font-weight: 800; font-size: 16px; }
.tpp table.tpp-cmp tbody tr.price-row td:nth-child(2) { color: #64748b; }
.tpp table.tpp-cmp tbody tr.price-row td:nth-child(3) { color: var(--zf-teal); }
.tpp table.tpp-cmp tbody tr.price-row td:nth-child(4) { color: var(--zf-yellow); background: rgba(253,185,19,0.08); }
.tpp table.tpp-cmp tbody tr.price-row td:nth-child(5) { color: var(--zf-blue); }
.tpp .price-meta { display: block; font-size: 11px; font-weight: 500; color: var(--zf-grey-ink); margin-top: 2px; text-transform: none; letter-spacing: 0; }
.tpp .tpp-compare__footnote { font-size: 12px; color: var(--zf-grey-ink); margin: 16px 4px 0; }
@media (max-width: 720px) { .tpp .tpp-compare__table-wrap { overflow-x: auto; } .tpp table.tpp-cmp { min-width: 720px; } }

/* ----- ROI Recipe Strip ----- */
.tpp .tpp-roi { background: var(--zf-red); color: #fff; padding: 88px 48px 96px; position: relative; overflow: hidden; }
.tpp .tpp-roi__inner { max-width: 1080px; margin: 0 auto; position: relative; }
.tpp .tpp-roi__head { max-width: 700px; margin: 0 auto 36px; text-align: center; }
.tpp .tpp-roi__head .zf-eyebrow { color: rgba(255,255,255,0.82); margin-bottom: 12px; }
.tpp .tpp-roi__head .zf-display { color: #fff; }
.tpp .tpp-roi__head p { font-size: 17px; color: rgba(255,255,255,0.92); margin: 16px auto 0; max-width: 56ch; }
.tpp .tpp-roi__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
@media (max-width: 720px) { .tpp .tpp-roi__cards { grid-template-columns: 1fr; } .tpp .tpp-roi { padding: 64px 24px 72px; } }
.tpp .tpp-roi-card { background: #fff; border-radius: 10px; padding: 32px 28px; color: var(--zf-ink); box-shadow: 0 12px 30px rgba(0,0,0,0.18); }
.tpp .tpp-roi-card h3 { font-family: 'Raleway', sans-serif; font-weight: 800; font-size: 18px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--zf-blue); margin: 0 0 14px; }
.tpp .tpp-roi-card .strike { text-decoration: line-through; color: var(--zf-red); font-size: 17px; margin: 0 0 10px; }
.tpp .tpp-roi-card .glow { color: #16a34a; font-weight: 800; font-size: 20px; margin: 0; }
.tpp .tpp-roi-card .glow-meta { font-size: 14px; color: var(--zf-grey-ink); margin: 6px 0 0; line-height: 1.5; }

/* ----- Calculator ----- */
.tpp .tpp-calc { background: var(--zf-cream); padding: 88px 48px; position: relative; overflow: hidden; }
.tpp .tpp-calc__inner { max-width: 1080px; margin: 0 auto; position: relative; }
.tpp .tpp-calc__head { max-width: 700px; margin: 0 auto 36px; text-align: center; }
.tpp .tpp-calc__head .zf-eyebrow { color: var(--zf-blue); margin-bottom: 12px; }
.tpp .tpp-calc__head .zf-display { color: var(--zf-blue); }
.tpp .tpp-calc__head p { color: var(--zf-grey-ink); font-size: 17px; margin: 16px auto 0; max-width: 56ch; }
.tpp .tpp-calc__chrome { background: #fff; border-radius: 14px; box-shadow: 0 16px 40px rgba(2,65,83,0.12); border: 1px solid rgba(2,65,83,0.06); padding: 8px; position: relative; }
.tpp .tpp-calc__chrome::before { content: ""; position: absolute; top: -10px; left: 50%; transform: translateX(-50%); width: 88px; height: 4px; background: var(--zf-yellow); border-radius: 4px; }
.tpp .tpp-calc__iframe { display: block; width: 100%; min-height: 720px; border: 0; border-radius: 8px; background: #FBF9F2; }

/* ----- Included ----- */
.tpp .tpp-incl { background: var(--zf-cream); padding: 88px 48px; position: relative; overflow: hidden; border-top: 1px solid rgba(2,65,83,0.06); }
.tpp .tpp-incl__illus { position: absolute; right: -60px; bottom: -60px; height: 360px; opacity: 0.14; pointer-events: none; }
.tpp .tpp-incl__inner { max-width: 1180px; margin: 0 auto; position: relative; }
.tpp .tpp-incl__head { max-width: 700px; margin: 0 auto 44px; text-align: center; }
.tpp .tpp-incl__head .zf-eyebrow { color: var(--zf-blue); margin-bottom: 12px; }
.tpp .tpp-incl__head .zf-display { color: var(--zf-blue); }
.tpp .tpp-incl__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
@media (max-width: 1000px) { .tpp .tpp-incl__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .tpp .tpp-incl__grid { grid-template-columns: 1fr; } }
.tpp .tpp-icard { background: #fff; border-radius: 10px; padding: 26px 22px; box-shadow: 0 4px 14px rgba(2,65,83,0.08); }
.tpp .tpp-icard__icon { width: 40px; height: 40px; background: rgba(0,159,177,0.12); color: var(--zf-blue); border-radius: 6px; display: flex; align-items: center; justify-content: center; margin-bottom: 14px; font-size: 22px; }
.tpp .tpp-icard__icon svg { display: block; }
.tpp .tpp-icard h3 { font-family: 'Raleway', sans-serif; font-weight: 800; font-size: 16px; color: var(--zf-blue); margin: 0 0 8px; text-transform: uppercase; letter-spacing: 0.02em; }
.tpp .tpp-icard p { margin: 0; font-size: 14px; color: var(--zf-ink); line-height: 1.55; }

/* ----- Zealifi Experts Program ----- */
.tpp .tpp-experts { background: var(--zf-blue); color: #fff; padding: 96px 48px; position: relative; overflow: hidden; }
.tpp .tpp-experts__inner { max-width: 1080px; margin: 0 auto; position: relative; text-align: center; }
.tpp .tpp-experts .zf-eyebrow { color: rgba(253,185,19,0.9); margin-bottom: 16px; }
.tpp .tpp-experts .zf-display { color: #fff; margin-bottom: 22px; }
.tpp .tpp-experts__sub { font-size: 18px; line-height: 1.55; max-width: 64ch; margin: 0 auto 52px; color: rgba(255,255,255,0.9); }
.tpp .tpp-experts__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 18px; margin-bottom: 52px; text-align: left; }
.tpp .tpp-expert-card { background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.12); border-radius: 12px; padding: 22px 20px; transition: transform 0.18s, background 0.18s; }
.tpp .tpp-expert-card:hover { transform: translateY(-2px); background: rgba(255,255,255,0.08); }
.tpp .tpp-expert-card__icon { width: 40px; height: 40px; border-radius: 8px; background: var(--zf-yellow); color: var(--zf-blue); display: inline-flex; align-items: center; justify-content: center; margin-bottom: 14px; }
.tpp .tpp-expert-card__icon svg { display: block; }
.tpp .tpp-expert-card h3 { font-family: 'Raleway', sans-serif; font-weight: 800; font-size: 15px; color: #fff; margin: 0 0 8px; text-transform: uppercase; letter-spacing: 0.04em; }
.tpp .tpp-expert-card p { font-size: 14px; line-height: 1.5; color: rgba(255,255,255,0.78); margin: 0; }
.tpp .tpp-experts__ctas { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
@media (max-width: 720px) { .tpp .tpp-experts { padding: 72px 24px; } }

/* ----- Courses ----- */
.tpp .tpp-courses { background: var(--zf-cream); padding: 88px 48px 96px; border-top: 1px solid rgba(2,65,83,0.06); }
.tpp .tpp-courses__inner { max-width: 1080px; margin: 0 auto; }
.tpp .tpp-courses__head { max-width: 720px; margin: 0 auto 36px; text-align: center; }
.tpp .tpp-courses__head .zf-eyebrow { color: var(--zf-blue); margin-bottom: 12px; }
.tpp .tpp-courses__head .zf-display { color: var(--zf-blue); }
.tpp .tpp-courses__head p { color: var(--zf-grey-ink); margin: 14px 0 0; }
.tpp .tpp-courses__cluster { background: #fff; border-radius: 10px; padding: 28px; box-shadow: 0 4px 14px rgba(2,65,83,0.06); margin-bottom: 18px; }
.tpp .tpp-courses__cluster-label { font-family: 'Raleway', sans-serif; font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.12em; color: var(--zf-blue); margin: 0 0 14px; }
.tpp .tpp-courses__pills { display: flex; flex-wrap: wrap; gap: 8px; }
.tpp .tpp-pill { display: inline-flex; align-items: center; padding: 6px 14px; border-radius: 20px; font-size: 13px; font-weight: 600; }
.tpp .tpp-pill--neutral { background: #F1F5F9; color: var(--zf-blue); }
.tpp .tpp-pill--accredited { background: rgba(0,159,177,0.10); color: var(--zf-blue); border: 1px solid rgba(0,159,177,0.22); font-weight: 700; }
.tpp .tpp-pill--featured { background: var(--zf-blue); color: #fff; font-weight: 700; }

/* ----- How it works ----- */
.tpp .tpp-how { background: var(--zf-blue); color: #fff; padding: 96px 48px 60px; position: relative; overflow: hidden; }
.tpp .tpp-how__inner { max-width: 1080px; margin: 0 auto; }
.tpp .tpp-how__head { max-width: 700px; margin: 0 auto 44px; text-align: center; }
.tpp .tpp-how__head .zf-eyebrow { color: rgba(255,255,255,0.78); margin-bottom: 12px; }
.tpp .tpp-how__head .zf-display { color: #fff; }
.tpp .tpp-how__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
@media (max-width: 880px) { .tpp .tpp-how__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .tpp .tpp-how__grid { grid-template-columns: 1fr; } }
.tpp .tpp-step { background: rgba(255,255,255,0.06); border-radius: 10px; padding: 24px; backdrop-filter: blur(2px); border: 1px solid rgba(255,255,255,0.1); }
.tpp .tpp-step__num { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; background: var(--zf-yellow); color: var(--zf-blue); border-radius: 50%; font-family: 'Raleway',sans-serif; font-weight: 800; font-size: 18px; margin-bottom: 14px; }
.tpp .tpp-step h3 { font-family: 'Raleway',sans-serif; font-weight: 800; font-size: 16px; color: #fff; margin: 0 0 6px; text-transform: uppercase; letter-spacing: 0.02em; }
.tpp .tpp-step p { margin: 0; font-size: 14px; color: rgba(255,255,255,0.82); line-height: 1.55; }

/* ----- Final CTA ----- */
.tpp .tpp-cta { background: var(--zf-blue); color: #fff; padding: 32px 48px 96px; position: relative; overflow: hidden; }
.tpp .tpp-cta::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 1px; background: rgba(255,255,255,0.1); }
.tpp .tpp-cta__inner { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: 7fr 5fr; gap: 56px; align-items: center; padding-top: 64px; }
@media (max-width: 880px) { .tpp .tpp-cta__inner { grid-template-columns: 1fr; gap: 32px; } .tpp .tpp-cta { padding: 32px 24px 64px; } }
.tpp .tpp-cta .zf-eyebrow { color: var(--zf-yellow); margin-bottom: 12px; }
.tpp .tpp-cta .zf-display { color: #fff; margin-bottom: 18px; }
.tpp .tpp-cta__sub { font-size: 18px; color: rgba(255,255,255,0.85); margin: 0 0 28px; max-width: 52ch; }
.tpp .tpp-cta__contact { background: rgba(255,255,255,0.06); border-radius: 10px; padding: 24px 26px; border: 1px solid rgba(255,255,255,0.1); }
.tpp .tpp-cta__contact-row { margin: 14px 0; }
.tpp .tpp-cta__contact-label { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: 0.14em; color: var(--zf-yellow); margin-bottom: 4px; font-weight: 800; }
.tpp .tpp-cta__contact-value { font-size: 17px; font-weight: 600; }
.tpp .tpp-cta__contact-value a { color: #fff; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,0.3); }
.tpp .tpp-cta__contact-value a:hover { border-bottom-color: var(--zf-yellow); color: var(--zf-yellow); }
.tpp .tpp-cta__btns { display: flex; gap: 14px; flex-wrap: wrap; }

/* ----- Fineprint ----- */
.tpp .tpp-fineprint { background: var(--zf-cream); padding: 24px 24px 36px; text-align: center; font-size: 12px; color: var(--zf-grey-ink); }

@media (max-width: 720px) {
    .tpp .tpp-calc { padding: 64px 24px; }
    .tpp .tpp-courses { padding: 64px 24px 80px; }
}

/* ============================================================
   Course Catalog page (post ID 67545)
   Custom-HTML rebuild scoped under .cat wrapper.
   Reuses .zf-* tokens from the TPP block.
   ============================================================ */

html:has(.cat) { scroll-behavior: smooth; }
.cat #cat-grid { scroll-margin-top: 140px; }
html:has(.cat) { scroll-behavior: smooth; }

.cat {
    --zf-blue: #014153;
    --zf-yellow: #FDB913;
    --zf-teal: #009FB1;
    --zf-red: #CB2033;
    --zf-grey: #E0E1E4;
    --zf-cream: #F5F2EA;
    --zf-paper: #FBF9F2;
    --zf-ink: #2A2422;
    --zf-grey-ink: #6B7079;
    font-family: 'Raleway', Arial, sans-serif;
    color: var(--zf-ink);
    line-height: 1.55;
}
.cat * { box-sizing: border-box; }
.cat a { color: var(--zf-blue); }
.cat a:hover { color: var(--zf-teal); }

.cat .zf-eyebrow { font-family: 'Raleway', sans-serif; font-size: 12px; font-weight: 800; letter-spacing: 0.18em; text-transform: uppercase; }
.cat .zf-display { font-family: 'Raleway', sans-serif; font-weight: 800; text-transform: uppercase; line-height: 0.92; letter-spacing: -0.005em; margin: 0; }
.cat .zf-display--xl { font-size: clamp(48px, 7vw, 96px); }
.cat .zf-display--l { font-size: clamp(36px, 5vw, 64px); }
.cat .zf-emph { color: var(--zf-yellow); }
.cat .grain { position: absolute; inset: 0; background-image: radial-gradient(rgba(0,0,0,0.5) 1px, transparent 1px); background-size: 3px 3px; mix-blend-mode: multiply; opacity: 0.2; pointer-events: none; }

.cat .zf-btn { display: inline-flex; align-items: center; gap: 8px; font-family: 'Raleway', sans-serif; font-weight: 800; font-size: 13px; letter-spacing: 0.1em; text-transform: uppercase; padding: 14px 26px; border-radius: 6px; border: 0; cursor: pointer; text-decoration: none; transition: all 0.18s; white-space: nowrap; }
.cat .zf-btn--lg { font-size: 14px; padding: 16px 30px; }
.cat .zf-btn--yellow { background: var(--zf-yellow); color: var(--zf-blue); }
.cat .zf-btn--yellow:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(252,182,20,0.45); color: var(--zf-blue); }
.cat .zf-btn--ghost-light { background: transparent; color: #fff; box-shadow: inset 0 0 0 2px rgba(255,255,255,0.6); }
.cat .zf-btn--ghost-light:hover { box-shadow: inset 0 0 0 2px #fff; color: #fff; }

/* ----- Hero ----- */
.cat .cat-hero { background: var(--zf-teal); color: #fff; padding: 96px 48px 104px; position: relative; overflow: hidden; }
.cat .cat-hero__inner { max-width: 1080px; margin: 0 auto; position: relative; }
.cat .cat-hero .zf-eyebrow { color: rgba(255,255,255,0.78); margin-bottom: 22px; }
.cat .cat-hero .zf-display { color: #fff; margin-bottom: 28px; }
.cat .cat-hero__sub { font-size: 19px; line-height: 1.5; max-width: 56ch; margin: 0 0 36px; color: rgba(255,255,255,0.94); }
.cat .cat-hero__ctas { display: flex; gap: 14px; flex-wrap: wrap; }
@media (max-width: 720px) { .cat .cat-hero { padding: 64px 24px 80px; } }

/* ----- Browse: filters + grid ----- */
.cat .cat-browse { background: var(--zf-cream); padding: 88px 48px 96px; }
.cat .cat-browse__inner { max-width: 1280px; margin: 0 auto; }
.cat .cat-browse__head { max-width: 700px; margin: 0 auto 28px; text-align: center; }
.cat .cat-browse__head .zf-eyebrow { color: var(--zf-blue); margin-bottom: 12px; }
.cat .cat-browse__head .zf-display { color: var(--zf-blue); }

.cat .cat-filters { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 0 auto 48px; max-width: 900px; }
.cat .cat-chip { font-family: 'Raleway', sans-serif; font-weight: 700; font-size: 13px; letter-spacing: 0.04em; padding: 10px 18px; border-radius: 999px; border: 1.5px solid rgba(2,65,83,0.18); background: transparent; color: var(--zf-blue); cursor: pointer; transition: all 0.16s; text-transform: none; }
.cat .cat-chip:hover { border-color: var(--zf-blue); background: rgba(2,65,83,0.04); }
.cat .cat-chip--active { background: var(--zf-blue); border-color: var(--zf-blue); color: #fff; }
.cat .cat-chip--active:hover { background: var(--zf-blue); color: #fff; }

.cat .cat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 24px; }
.cat .cat-empty { grid-column: 1 / -1; text-align: center; color: var(--zf-grey-ink); padding: 48px 0; }

.cat .cat-tile { display: flex; flex-direction: column; background: #fff; border-radius: 10px; overflow: hidden; text-decoration: none; color: var(--zf-ink); box-shadow: 0 4px 14px rgba(2,65,83,0.08); transition: transform 0.2s, box-shadow 0.2s; }
.cat .cat-tile:hover { transform: translateY(-3px); box-shadow: 0 10px 28px rgba(2,65,83,0.16); color: var(--zf-ink); }
.cat .cat-tile--hidden { display: none; }

.cat .cat-tile__media { position: relative; aspect-ratio: 16 / 10; background: var(--zf-grey); overflow: hidden; }
.cat .cat-tile__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cat .cat-tile__media--icon { background: var(--zf-yellow); display: flex; align-items: center; justify-content: center; color: var(--zf-blue); }
.cat .cat-tile__media--icon svg { display: block; }
.cat .cat-tile--external .cat-tile__title::after { content: ""; display: inline-block; width: 12px; height: 12px; margin-left: 6px; background: currentColor; mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='M7 17 17 7'/><path d='M7 7h10v10'/></svg>") center/contain no-repeat; -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='M7 17 17 7'/><path d='M7 7h10v10'/></svg>") center/contain no-repeat; opacity: 0.55; }
.cat .cat-tile__price--soft { font-size: 17px; color: var(--zf-grey-ink); font-weight: 700; }
.cat .cat-tile__badge { position: absolute; top: 12px; right: 12px; background: var(--zf-yellow); color: var(--zf-blue); font-family: 'Raleway', sans-serif; font-weight: 800; font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; padding: 6px 10px; border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.15); }
.cat .cat-tile__badge--draft { top: 12px; left: 12px; right: auto; background: #c62828; color: #fff; }
.cat .cat-tile--draft { outline: 2px dashed rgba(198,40,40,0.5); outline-offset: -2px; }
.cat .cat-tile__media--empty { background: var(--zf-grey); }

.cat .cat-tile__body { display: flex; flex-direction: column; flex: 1; padding: 22px 22px 20px; }
.cat .cat-tile__title { font-family: 'Raleway', sans-serif; font-weight: 800; font-size: 17px; line-height: 1.25; color: var(--zf-blue); margin: 0 0 10px; text-transform: none; letter-spacing: 0; }
.cat .cat-tile__short { font-size: 14px; line-height: 1.5; color: var(--zf-grey-ink); margin: 0 0 18px; flex: 1; }
.cat .cat-tile__foot { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 10px; border-top: 1px solid rgba(2,65,83,0.08); }
.cat .cat-tile__price { font-family: 'Raleway', sans-serif; font-weight: 800; font-size: 22px; color: var(--zf-blue); }
.cat .cat-tile__cta { font-family: 'Raleway', sans-serif; font-weight: 800; font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--zf-blue); transition: color 0.16s, transform 0.16s; }
.cat .cat-tile:hover .cat-tile__cta { color: var(--zf-teal); transform: translateX(2px); }

@media (max-width: 720px) { .cat .cat-browse { padding: 64px 20px 80px; } .cat .cat-grid { gap: 16px; } }

/* ----- Cross-sell ----- */
.cat .cat-cross { background: var(--zf-blue); color: #fff; padding: 80px 48px; position: relative; overflow: hidden; }
.cat .cat-cross__inner { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: 2fr 1fr; gap: 48px; align-items: center; position: relative; }
.cat .cat-cross__copy .zf-eyebrow { color: rgba(253,185,19,0.9); margin-bottom: 14px; }
.cat .cat-cross__copy .zf-display { color: #fff; margin-bottom: 18px; }
.cat .cat-cross__copy p { font-size: 17px; line-height: 1.55; color: rgba(255,255,255,0.88); margin: 0; max-width: 60ch; }
.cat .cat-cross__cta { text-align: right; }
@media (max-width: 880px) {
    .cat .cat-cross__inner { grid-template-columns: 1fr; gap: 28px; }
    .cat .cat-cross__cta { text-align: left; }
    .cat .cat-cross { padding: 64px 24px; }
}

/* ----- Final CTA (mirrors .tpp-cta layout) ----- */
.cat .cat-cta { background: var(--zf-cream); padding: 96px 48px 104px; }
.cat .cat-cta__inner { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: 2fr 1fr; gap: 56px; align-items: start; }
.cat .cat-cta .zf-eyebrow { color: var(--zf-blue); margin-bottom: 14px; }
.cat .cat-cta .zf-display { color: var(--zf-blue); margin-bottom: 22px; }
.cat .cat-cta__sub { font-size: 17px; line-height: 1.55; max-width: 60ch; color: var(--zf-ink); margin: 0 0 30px; }
.cat .cat-cta__btns { display: flex; gap: 14px; flex-wrap: wrap; }
.cat .cat-cta__btns .zf-btn--ghost-light { color: var(--zf-blue); box-shadow: inset 0 0 0 2px rgba(2,65,83,0.4); }
.cat .cat-cta__btns .zf-btn--ghost-light:hover { box-shadow: inset 0 0 0 2px var(--zf-blue); color: var(--zf-blue); }
.cat .cat-cta__contact { background: #fff; border-radius: 10px; padding: 26px 26px 22px; box-shadow: 0 4px 14px rgba(2,65,83,0.08); }
.cat .cat-cta__contact-row { display: flex; flex-direction: column; gap: 4px; padding: 14px 0; border-bottom: 1px solid rgba(2,65,83,0.08); }
.cat .cat-cta__contact-row:last-child { border-bottom: 0; }
.cat .cat-cta__contact-label { font-family: 'Raleway', sans-serif; font-weight: 800; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--zf-grey-ink); }
.cat .cat-cta__contact-value { font-size: 15px; color: var(--zf-blue); }
.cat .cat-cta__contact-value a { color: var(--zf-blue); text-decoration: none; }
.cat .cat-cta__contact-value a:hover { text-decoration: underline; color: var(--zf-teal); }
@media (max-width: 880px) {
    .cat .cat-cta__inner { grid-template-columns: 1fr; gap: 32px; }
    .cat .cat-cta { padding: 64px 24px 80px; }
}

/* =========================================================================
   ZAC2 Homepage (.home) — B2C public landing
   Reuses the .zf-* design system established for .tpp and .cat. Section
   styles are namespaced .zac-home-* to avoid leaking into BuddyBoss defaults.
   ========================================================================= */
.zac-home {
    --zf-blue: #014153;
    --zf-yellow: #FDB913;
    --zf-teal: #009FB1;
    --zf-red: #CB2033;
    --zf-grey: #E0E1E4;
    --zf-cream: #F5F2EA;
    --zf-paper: #FBF9F2;
    --zf-ink: #2A2422;
    --zf-grey-ink: #6B7079;
    font-family: 'Raleway', Arial, sans-serif;
    color: var(--zf-ink);
    line-height: 1.55;
}
.zac-home a { color: var(--zf-blue); }
.zac-home a:hover { color: var(--zf-teal); }

.zac-home .zf-eyebrow { font-family: 'Raleway', sans-serif; font-weight: 800; font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--zf-blue); }
.zac-home .zf-display { font-family: 'Raleway', sans-serif; font-weight: 800; text-transform: uppercase; line-height: 0.92; letter-spacing: -0.005em; margin: 0; }
.zac-home .zf-display--xl { font-size: clamp(48px, 7vw, 96px); }
.zac-home .zf-display--l { font-size: clamp(36px, 5vw, 64px); }
.zac-home .zf-emph { color: var(--zf-yellow); }
.zac-home .grain { position: absolute; inset: 0; background-image: radial-gradient(rgba(0,0,0,0.5) 1px, transparent 1px); background-size: 3px 3px; mix-blend-mode: multiply; opacity: 0.2; pointer-events: none; }

.zac-home .zf-btn { display: inline-flex; align-items: center; gap: 8px; font-family: 'Raleway', sans-serif; font-weight: 800; font-size: 13px; letter-spacing: 0.1em; text-transform: uppercase; padding: 14px 26px; border-radius: 6px; border: 0; cursor: pointer; text-decoration: none; transition: all 0.18s; white-space: nowrap; }
.zac-home .zf-btn--lg { font-size: 14px; padding: 16px 30px; }
.zac-home .zf-btn--yellow { background: var(--zf-yellow); color: var(--zf-blue); }
.zac-home .zf-btn--yellow:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(252,182,20,0.45); color: var(--zf-blue); }
.zac-home .zf-btn--blue { background: var(--zf-blue); color: #fff; }
.zac-home .zf-btn--blue:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(2,65,83,0.35); color: #fff; }
.zac-home .zf-btn--ghost-light { background: transparent; color: #fff; box-shadow: inset 0 0 0 2px rgba(255,255,255,0.6); }
.zac-home .zf-btn--ghost-light:hover { box-shadow: inset 0 0 0 2px #fff; color: #fff; }

/* ----- Hero ----- */
.zac-home .zac-home-hero { background: var(--zf-teal); color: #fff; padding: 104px 48px 112px; position: relative; overflow: hidden; }
.zac-home .zac-home-hero__inner { max-width: 1080px; margin: 0 auto; position: relative; }
.zac-home .zac-home-hero .zf-eyebrow { color: rgba(255,255,255,0.78); margin-bottom: 22px; }
.zac-home .zac-home-hero .zf-display { color: #fff; margin-bottom: 28px; }
.zac-home .zac-home-hero__sub { font-size: 19px; line-height: 1.55; max-width: 60ch; margin: 0 0 36px; color: rgba(255,255,255,0.94); }
.zac-home .zac-home-hero__ctas { display: flex; gap: 14px; flex-wrap: wrap; }
@media (max-width: 720px) { .zac-home .zac-home-hero { padding: 72px 24px 88px; } }

/* ----- Popular paths ----- */
.zac-home .zac-home-popular { background: var(--zf-cream); padding: 96px 48px; }
.zac-home .zac-home-popular__inner { max-width: 1180px; margin: 0 auto; }
.zac-home .zac-home-popular__head { text-align: center; max-width: 720px; margin: 0 auto 40px; }
.zac-home .zac-home-popular__head .zf-eyebrow { margin-bottom: 12px; }
.zac-home .zac-home-popular__head .zf-display { color: var(--zf-blue); }
.zac-home .zac-home-popular__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
@media (max-width: 980px) { .zac-home .zac-home-popular__grid { grid-template-columns: 1fr; gap: 16px; } }
.zac-home .zac-home-popular__foot { margin-top: 36px; text-align: center; }

.zac-home .zac-home-card { display: flex; flex-direction: column; background: #fff; border-radius: 10px; padding: 26px 24px 24px; text-decoration: none; color: var(--zf-ink); box-shadow: 0 4px 14px rgba(2,65,83,0.08); transition: transform 0.2s, box-shadow 0.2s; min-height: 240px; border-top: 4px solid var(--zf-yellow); }
.zac-home .zac-home-card:hover { transform: translateY(-3px); box-shadow: 0 10px 28px rgba(2,65,83,0.16); color: var(--zf-ink); }
.zac-home .zac-home-card__badge { font-family: 'Raleway', sans-serif; font-weight: 800; font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--zf-blue); margin-bottom: 14px; }
.zac-home .zac-home-card__title { font-family: 'Raleway', sans-serif; font-weight: 800; font-size: 22px; color: var(--zf-blue); margin: 0 0 12px; text-transform: none; letter-spacing: 0; line-height: 1.15; }
.zac-home .zac-home-card__body { font-size: 15px; line-height: 1.55; color: var(--zf-grey-ink); margin: 0 0 18px; flex: 1; }
.zac-home .zac-home-card__cta { font-family: 'Raleway', sans-serif; font-weight: 800; font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--zf-blue); transition: color 0.16s, transform 0.16s; margin-top: auto; }
.zac-home .zac-home-card:hover .zac-home-card__cta { color: var(--zf-teal); transform: translateX(2px); }

/* ----- Why us ----- */
.zac-home .zac-home-why { background: #fff; padding: 96px 48px; }
.zac-home .zac-home-why__inner { max-width: 1080px; margin: 0 auto; }
.zac-home .zac-home-why__head { text-align: center; max-width: 720px; margin: 0 auto 48px; }
.zac-home .zac-home-why__head .zf-eyebrow { margin-bottom: 12px; }
.zac-home .zac-home-why__head .zf-display { color: var(--zf-blue); }
.zac-home .zac-home-why__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px; }
@media (max-width: 900px) { .zac-home .zac-home-why__grid { grid-template-columns: 1fr; gap: 28px; } }
.zac-home .zac-home-why__item { text-align: center; padding: 0 12px; }
.zac-home .zac-home-why__icon { display: inline-flex; align-items: center; justify-content: center; width: 72px; height: 72px; border-radius: 50%; background: var(--zf-cream); color: var(--zf-blue); margin-bottom: 18px; }
.zac-home .zac-home-why__title { font-family: 'Raleway', sans-serif; font-weight: 800; font-size: 20px; color: var(--zf-blue); margin: 0 0 10px; text-transform: none; letter-spacing: 0; }
.zac-home .zac-home-why__item p { font-size: 15px; line-height: 1.55; color: var(--zf-grey-ink); margin: 0; }

/* ----- TPP cross-sell ----- */
.zac-home .zac-home-tpp { background: var(--zf-blue); color: #fff; padding: 88px 48px; position: relative; overflow: hidden; }
.zac-home .zac-home-tpp__inner { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: 2fr 1fr; gap: 48px; align-items: center; position: relative; }
.zac-home .zac-home-tpp__copy .zf-eyebrow { color: rgba(253,185,19,0.9); margin-bottom: 14px; }
.zac-home .zac-home-tpp__copy .zf-display { color: #fff; margin-bottom: 18px; }
.zac-home .zac-home-tpp__copy p { font-size: 17px; line-height: 1.55; color: rgba(255,255,255,0.88); margin: 0; max-width: 60ch; }
.zac-home .zac-home-tpp__cta { text-align: right; }
@media (max-width: 880px) {
    .zac-home .zac-home-tpp__inner { grid-template-columns: 1fr; gap: 28px; }
    .zac-home .zac-home-tpp__cta { text-align: left; }
    .zac-home .zac-home-tpp { padding: 64px 24px; }
}

/* ----- Returning learner strip ----- */
.zac-home .zac-home-returning { background: #fff; padding: 72px 48px; border-top: 1px solid rgba(2,65,83,0.08); border-bottom: 1px solid rgba(2,65,83,0.08); }
.zac-home .zac-home-returning__inner { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: 2fr 1fr; gap: 36px; align-items: center; }
.zac-home .zac-home-returning .zf-eyebrow { color: var(--zf-blue); margin-bottom: 12px; }
.zac-home .zac-home-returning .zf-display { color: var(--zf-blue); margin-bottom: 12px; }
.zac-home .zac-home-returning__sub { font-size: 16px; line-height: 1.55; color: var(--zf-grey-ink); margin: 0; }
.zac-home .zac-home-returning__cta { text-align: right; }
@media (max-width: 880px) {
    .zac-home .zac-home-returning__inner { grid-template-columns: 1fr; }
    .zac-home .zac-home-returning__cta { text-align: left; }
    .zac-home .zac-home-returning { padding: 56px 24px; }
}

/* ----- Final CTA (mirrors .cat-cta) ----- */
.zac-home .zac-home-cta { background: var(--zf-cream); padding: 96px 48px 104px; }
.zac-home .zac-home-cta__inner { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: 2fr 1fr; gap: 56px; align-items: start; }
.zac-home .zac-home-cta .zf-eyebrow { color: var(--zf-blue); margin-bottom: 14px; }
.zac-home .zac-home-cta .zf-display { color: var(--zf-blue); margin-bottom: 22px; }
.zac-home .zac-home-cta__sub { font-size: 17px; line-height: 1.55; max-width: 60ch; color: var(--zf-ink); margin: 0 0 30px; }
.zac-home .zac-home-cta__btns { display: flex; gap: 14px; flex-wrap: wrap; }
.zac-home .zac-home-cta__btns .zf-btn--ghost-light { color: var(--zf-blue); box-shadow: inset 0 0 0 2px rgba(2,65,83,0.4); }
.zac-home .zac-home-cta__btns .zf-btn--ghost-light:hover { box-shadow: inset 0 0 0 2px var(--zf-blue); color: var(--zf-blue); }
.zac-home .zac-home-cta__contact { background: #fff; border-radius: 10px; padding: 26px 26px 22px; box-shadow: 0 4px 14px rgba(2,65,83,0.08); }
.zac-home .zac-home-cta__contact-row { display: flex; flex-direction: column; gap: 4px; padding: 14px 0; border-bottom: 1px solid rgba(2,65,83,0.08); }
.zac-home .zac-home-cta__contact-row:last-child { border-bottom: 0; }
.zac-home .zac-home-cta__contact-label { font-family: 'Raleway', sans-serif; font-weight: 800; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--zf-grey-ink); }
.zac-home .zac-home-cta__contact-value { font-size: 15px; color: var(--zf-blue); }
.zac-home .zac-home-cta__contact-value a { color: var(--zf-blue); text-decoration: none; }
.zac-home .zac-home-cta__contact-value a:hover { text-decoration: underline; color: var(--zf-teal); }
@media (max-width: 880px) {
    .zac-home .zac-home-cta__inner { grid-template-columns: 1fr; gap: 32px; }
    .zac-home .zac-home-cta { padding: 64px 24px 80px; }
}



/* =========================================================================
   LearnDash course-page banner — Direction C (solid colour ribbon)
   Rendered by themes/buddyboss-theme-child/learndash/ld30/template-banner.php
   No banner image. Short Zealifi-teal ribbon with grain holds category +
   title + view-details anchor. Featured image still lives in the sidebar.
   ========================================================================= */
.zac-banner.zac-banner--ribbon {
    position: relative;
    background: #009FB1;
    color: #fff;
    padding: 56px 0 60px;
    overflow: hidden;
    min-height: 0;
}
/* Suppress the parent theme's dark gradient pseudo-overlay — it exists
   to darken the legacy banner-img behind the title. With the ribbon
   variant there is no image, so the overlay just covers our text. */
.zac-banner.zac-banner--ribbon::before { content: none; display: none; background: none; }

.zac-banner.zac-banner--ribbon .grain {
    position: absolute; inset: 0;
    background-image: radial-gradient(rgba(0,0,0,0.5) 1px, transparent 1px);
    background-size: 3px 3px;
    mix-blend-mode: multiply; opacity: 0.18; pointer-events: none;
    z-index: 1;
}

.zac-banner.zac-banner--ribbon .bb-course-banner-info {
    position: relative;
    z-index: 2;
}
.zac-banner.zac-banner--ribbon .bb-course-banner-inner {
    max-width: 880px;
    width: 100%;
    color: #fff;
}

.zac-banner.zac-banner--ribbon .bb-course-category {
    font-family: 'Raleway', sans-serif;
    font-weight: 800;
    font-size: 12px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.88);
    margin-bottom: 14px;
}
.zac-banner.zac-banner--ribbon .bb-course-category a {
    color: rgba(255,255,255,0.88);
    text-decoration: none;
    border: 0;
}
.zac-banner.zac-banner--ribbon .bb-course-category a:hover { color: #FDB913; }
.zac-banner.zac-banner--ribbon .bb-course-category .course-category-item:last-child span { display: none; }

.zac-banner.zac-banner--ribbon .zac-banner__title {
    font-family: 'Raleway', sans-serif;
    font-weight: 800;
    text-transform: uppercase;
    line-height: 0.96;
    letter-spacing: -0.005em;
    color: #fff;
    font-size: clamp(32px, 4.6vw, 56px);
    margin: 0 0 18px;
    max-width: 26ch;
}

.zac-banner.zac-banner--ribbon .bb-course-excerpt {
    font-size: 16px;
    line-height: 1.55;
    color: rgba(255,255,255,0.92);
    margin: 0 0 20px;
    max-width: 56ch;
}

.zac-banner.zac-banner--ribbon .bb-course-points { margin: 0 0 12px; }
.zac-banner.zac-banner--ribbon .anchor-course-points {
    font-family: 'Raleway', sans-serif;
    font-weight: 800;
    font-size: 13px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #FDB913;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: transform 0.16s, color 0.16s;
}
.zac-banner.zac-banner--ribbon .anchor-course-points:hover { color: #fff; transform: translateY(1px); }

.zac-banner.zac-banner--ribbon .bb-course-single-meta {
    margin-top: 12px;
    color: rgba(255,255,255,0.82);
    font-size: 14px;
}
.zac-banner.zac-banner--ribbon .bb-course-single-meta a { color: rgba(255,255,255,0.82); }
.zac-banner.zac-banner--ribbon .bb-course-single-meta a:hover { color: #FDB913; }
.zac-banner.zac-banner--ribbon .bb-course-single-meta .avatar {
    width: 32px; height: 32px; border-radius: 50%;
    margin-right: 8px; vertical-align: middle;
}
.zac-banner.zac-banner--ribbon .meta-saperator { margin: 0 10px; opacity: 0.65; }

@media (max-width: 720px) {
    .zac-banner.zac-banner--ribbon { padding: 44px 0 48px; }
    .zac-banner.zac-banner--ribbon .zac-banner__title { font-size: clamp(26px, 7vw, 38px); margin-bottom: 14px; }
    .zac-banner.zac-banner--ribbon .bb-course-excerpt { font-size: 15px; }
}

/* =========================================================================
   "My Courses" tile variant — reuses .cat-tile from the catalog, adds:
     - .cat-tile__eyebrow       small category label above title
     - .cat-tile__progress      thin LD progress bar
     - .cat-tile__progress-bar  filled portion
     - .cat-tile__progress-label "X% complete" text under the bar
   Rendered by [zealifi_my_courses] in inc/course-catalog.php.
   ========================================================================= */
.cat .cat-tile--enrolled .cat-tile__eyebrow {
    font-family: 'Raleway', sans-serif;
    font-weight: 800;
    font-size: 10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--zf-blue);
    opacity: 0.75;
    margin-bottom: 8px;
}
.cat .cat-tile--enrolled .cat-tile__title { margin-bottom: 10px; }
.cat .cat-tile__progress {
    height: 6px;
    background: rgba(2,65,83,0.10);
    border-radius: 999px;
    overflow: hidden;
    margin: 4px 0 6px;
}
.cat .cat-tile__progress-bar {
    display: block;
    height: 100%;
    background: var(--zf-teal);
    border-radius: 999px;
    transition: width 0.3s;
}
.cat .cat-tile__progress-label {
    font-family: 'Raleway', sans-serif;
    font-weight: 700;
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--zf-grey-ink);
    margin-bottom: 16px;
}
.cat .cat-tile--enrolled .cat-tile__cta { color: var(--zf-teal); }
.cat .cat-tile--enrolled:hover .cat-tile__cta { color: var(--zf-blue); }
.cat .cat-tile__last { color: var(--zf-grey-ink); opacity: 0.78; }
.cat .cat-tile--complete .cat-tile__progress-bar { background: var(--zf-blue); }
.cat .cat-tile--complete .cat-tile__progress-label { color: var(--zf-blue); }

/* =========================================================================
   ZAC2 Member Dashboard (.zac-dash) — Direction C
   Rendered by [zealifi_dashboard] in inc/dashboard.php.
   Reuses the .zf-* design system used by .tpp, .cat, and .zac-home.
   ========================================================================= */
.zac-dash {
    --zf-blue: #014153;
    --zf-yellow: #FDB913;
    --zf-teal: #009FB1;
    --zf-grey: #E0E1E4;
    --zf-cream: #F5F2EA;
    --zf-ink: #2A2422;
    --zf-grey-ink: #6B7079;
    font-family: 'Raleway', Arial, sans-serif;
    color: var(--zf-ink);
    line-height: 1.55;
}
.zac-dash .zf-eyebrow { font-family: 'Raleway', sans-serif; font-weight: 800; font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--zf-blue); }
.zac-dash .zf-display { font-family: 'Raleway', sans-serif; font-weight: 800; text-transform: uppercase; line-height: 0.92; letter-spacing: -0.005em; margin: 0; }
.zac-dash .zf-display--xl { font-size: clamp(40px, 6vw, 80px); }
.zac-dash .zf-display--l { font-size: clamp(32px, 4.5vw, 56px); }
.zac-dash .zf-emph { color: var(--zf-yellow); }
.zac-dash .grain { position: absolute; inset: 0; background-image: radial-gradient(rgba(0,0,0,0.5) 1px, transparent 1px); background-size: 3px 3px; mix-blend-mode: multiply; opacity: 0.18; pointer-events: none; }

/* ----- Hero ----- */
.zac-dash .zac-dash-hero { position: relative; background: var(--zf-blue); color: #fff; padding: 88px 48px 72px; overflow: hidden; }
.zac-dash .zac-dash-hero__inner { position: relative; max-width: 1200px; margin: 0 auto; z-index: 1; }
.zac-dash .zac-dash-hero .zf-eyebrow { color: var(--zf-yellow); margin-bottom: 18px; }
.zac-dash .zac-dash-hero .zf-display { color: #fff; }
.zac-dash .zac-dash-hero__stats { margin: 28px 0 0; font-size: 17px; color: rgba(255,255,255,0.85); font-weight: 500; }
.zac-dash .zac-dash-hero__stats span { opacity: 0.55; margin: 0 6px; }

/* ----- Section scaffold ----- */
.zac-dash .zac-dash-section { padding: 72px 48px; }
.zac-dash .zac-dash-section + .zac-dash-section { padding-top: 0; }
.zac-dash .zac-dash-section__inner { max-width: 1200px; margin: 0 auto; }
.zac-dash .zac-dash-section__head { margin-bottom: 40px; max-width: 720px; }
.zac-dash .zac-dash-section__head .zf-eyebrow { margin-bottom: 12px; }
.zac-dash .zac-dash-section__head p { margin: 16px 0 0; color: var(--zf-grey-ink); font-size: 16px; }

/* ----- Continue learning card ----- */
.zac-dash .zac-dash-continue__card {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    gap: 0;
    background: #fff;
    border: 1px solid var(--zf-grey);
    border-radius: 18px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
    box-shadow: 0 1px 2px rgba(0,0,0,0.03);
}
.zac-dash .zac-dash-continue__card:hover { transform: translateY(-2px); box-shadow: 0 18px 40px -20px rgba(1,65,83,0.25); border-color: var(--zf-teal); }
.zac-dash .zac-dash-continue__media { position: relative; background: var(--zf-cream); min-height: 280px; }
.zac-dash .zac-dash-continue__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.zac-dash .zac-dash-continue__body { padding: 40px 44px; display: flex; flex-direction: column; justify-content: center; gap: 14px; }
.zac-dash .zac-dash-continue__eyebrow { font-family: 'Raleway', sans-serif; font-weight: 800; font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--zf-teal); }
.zac-dash .zac-dash-continue__title { font-family: 'Raleway', sans-serif; font-weight: 800; font-size: clamp(24px, 2.4vw, 32px); line-height: 1.15; color: var(--zf-blue); margin: 0; }
.zac-dash .zac-dash-continue__body .cat-tile__progress { background: var(--zf-grey); height: 8px; border-radius: 999px; overflow: hidden; margin: 4px 0 2px; }
.zac-dash .zac-dash-continue__body .cat-tile__progress-bar { background: var(--zf-teal); height: 100%; display: block; border-radius: 999px; }
.zac-dash .zac-dash-continue__meta { color: var(--zf-grey-ink); font-size: 14px; font-weight: 600; letter-spacing: 0.02em; }
.zac-dash .zac-dash-continue__cta { color: var(--zf-teal); font-weight: 700; margin-top: 8px; font-size: 15px; letter-spacing: 0.02em; }
.zac-dash .zac-dash-continue__card:hover .zac-dash-continue__cta { color: var(--zf-blue); }
@media (max-width: 768px) {
    .zac-dash .zac-dash-continue__card { grid-template-columns: 1fr; }
    .zac-dash .zac-dash-continue__media { min-height: 200px; }
    .zac-dash .zac-dash-continue__body { padding: 28px 24px; }
}

/* ----- Team ----- */
.zac-dash .zac-dash-team__note { color: var(--zf-grey-ink); }
.zac-dash .zac-dash-team__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; }
.zac-dash .zac-dash-team__list li { background: #fff; border: 1px solid var(--zf-grey); border-radius: 12px; padding: 20px 22px; display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.zac-dash .zac-dash-team__list a { color: var(--zf-blue); font-weight: 700; text-decoration: none; font-size: 15px; line-height: 1.3; }
.zac-dash .zac-dash-team__list a:hover { color: var(--zf-teal); }
.zac-dash .zac-dash-team__count { color: var(--zf-grey-ink); font-size: 13px; white-space: nowrap; }

/* ----- All courses (embedded chip grid) ----- */
.zac-dash .zac-dash-all .cat { margin-top: 0; }

/* ----- Certificates ----- */
.zac-dash .zac-dash-certs__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.zac-dash .zac-dash-certs__list li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 18px; align-items: center; background: #fff; border: 1px solid var(--zf-grey); border-radius: 12px; padding: 18px 22px; }
.zac-dash .zac-dash-certs__title { color: var(--zf-blue); font-weight: 700; font-size: 15px; }
.zac-dash .zac-dash-certs__date { color: var(--zf-grey-ink); font-size: 13px; }
.zac-dash .zac-dash-certs__cta { color: var(--zf-teal); font-weight: 700; text-decoration: none; font-size: 14px; letter-spacing: 0.02em; white-space: nowrap; }
.zac-dash .zac-dash-certs__cta:hover { color: var(--zf-blue); }
@media (max-width: 600px) {
    .zac-dash .zac-dash-certs__list li { grid-template-columns: 1fr; }
}

/* ----- Account footer ----- */
.zac-dash .zac-dash-account { padding-bottom: 96px; }
.zac-dash .zac-dash-account__row { display: flex; flex-wrap: wrap; gap: 18px 28px; padding-top: 32px; border-top: 1px solid var(--zf-grey); }
.zac-dash .zac-dash-account__link { color: var(--zf-grey-ink); font-weight: 600; font-size: 14px; text-decoration: none; letter-spacing: 0.02em; }
.zac-dash .zac-dash-account__link:hover { color: var(--zf-blue); }
.zac-dash .zac-dash-account__link--logout { margin-left: auto; }

/* ----- Mobile tightening ----- */
@media (max-width: 640px) {
    .zac-dash .zac-dash-hero { padding: 64px 24px 56px; }
    .zac-dash .zac-dash-section { padding: 56px 24px; }
}