/*
 * Site-wide typography and icon shapes.
 * Important declarations in this named layer outrank the legacy unlayered
 * page overrides, without adding increasingly specific selectors.
 * Use the type-* classes when a heading's visual role differs from its tag.
 */
:root {
    --type-page: clamp(36px, 4vw, 56px);
    --type-section: clamp(28px, 3vw, 36px);
    --type-subsection: clamp(22px, 2vw, 28px);
    --type-card: 15px;
    --type-small-heading: 18px;
    --type-body: 13px;
    --type-caption: .76rem;
    --type-eyebrow: 13px;
}

/* Compact introduction beside wider cards, with the CTA centered below them. */
.corporate-training-banner .corporate-training-inner {
    max-width: var(--container, 1350px);
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.8fr);
    gap: 24px;
    padding: 28px 28px 28px 200px;
}

.corporate-training-banner .corporate-training-content,
.corporate-training-banner .corporate-training-features {
    grid-column: auto;
    width: 100%;
}

.corporate-training-banner .corporate-training-content p {
    max-width: none;
}

.corporate-training-banner .corporate-training-features {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
}

.corporate-training-banner .corporate-training-feature {
    grid-column: auto;
    min-height: 112px;
    padding: 18px 16px;
    border: 1px solid #f0ded5;
    border-radius: 14px;
    background: #fff;
}

.corporate-training-banner .corporate-training-features > .corporate-training-action {
    grid-column: 1 / -1;
    width: 100%;
    margin: 8px 0 0;
    justify-content: center;
}

.corporate-training-banner .corporate-training-action .corporate-training-button {
    width: auto;
    min-width: 0;
    max-width: 100%;
    padding: 16px 28px;
}

@media (min-width: 721px) and (max-width: 1200px) {
    .corporate-training-banner .corporate-training-features {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 1000px) {
    .corporate-training-banner .corporate-training-inner {
        padding: 28px;
    }

    .corporate-training-banner .corporate-training-character {
        position: relative;
        grid-column: 1 / -1;
        inset: auto;
        width: 160px;
        height: 180px;
        margin: 0 auto;
        transform: none;
    }
}

@media (max-width: 720px) {
    .corporate-training-banner .corporate-training-features {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .corporate-training-banner .corporate-training-inner {
        grid-template-columns: minmax(0, 1fr);
        padding: 24px 18px;
        gap: 24px;
    }
}

@media (max-width: 380px) {
    .corporate-training-banner .corporate-training-features {
        grid-template-columns: minmax(0, 1fr);
    }
}

@layer site-consistency {
    body :is(h1, h2, h3, h4, h5, h6, p, blockquote) {
        font-family: var(--primary-font, "Raleway", Arial, sans-serif) !important;
    }

    body :is(h1, .type-page-title) {
        font-size: var(--type-page) !important;
        font-weight: 750 !important;
        line-height: 1.12 !important;
        letter-spacing: -.035em !important;
        text-wrap: balance;
    }

    body :is(h2, .type-section-title) {
        font-size: var(--type-section) !important;
        font-weight: 750 !important;
        line-height: 1.2 !important;
        letter-spacing: -.025em !important;
        text-wrap: balance;
    }

    body :is(h3, .type-card-title),
    body .aib-card h2 {
        font-size: var(--type-card) !important;
        font-weight: 700 !important;
        line-height: 1.35 !important;
        letter-spacing: -.015em !important;
    }

    body :is(h4, h5, h6) {
        font-size: var(--type-small-heading) !important;
        font-weight: 700 !important;
        line-height: 1.4 !important;
        letter-spacing: 0 !important;
    }

    /* Compact panels and dialogs share a smaller heading role. */
    body :is(.type-subheading, .career-services h2,
        .consultation-modal__content h2, [role="dialog"] h2) {
        font-size: var(--type-subsection) !important;
        font-weight: 700 !important;
        line-height: 1.25 !important;
        letter-spacing: -.02em !important;
    }

    body :is(p, blockquote, .type-body) {
        font-size: var(--type-body) !important;
        font-weight: 400 !important;
        line-height: 1.65 !important;
        letter-spacing: normal !important;
    }

    body :is(small, .type-caption) {
        font-size: var(--type-caption) !important;
        line-height: 1.5 !important;
    }

    body :is(.section-eyebrow, .site-centered-eyebrow, .type-eyebrow,
        [class$="-eyebrow"], [class*="-eyebrow "],
        [class$="__eyebrow"], [class*="__eyebrow "],
        [class$="-kicker"], [class*="-kicker "],
        [class$="__kicker"], [class*="__kicker "]) {
        font-size: var(--type-eyebrow) !important;
        font-weight: 700 !important;
        line-height: 1.4 !important;
        letter-spacing: .1em !important;
    }

    /* Accent text must not introduce a second size inside the same heading. */
    body :is(h1, h2, h3, h4, h5, h6, p, blockquote) :is(span, strong, b, em, a) {
        font-family: inherit !important;
        font-size: inherit !important;
        line-height: inherit !important;
        letter-spacing: inherit !important;
    }

    /* Explicit containers only: do not crop icon artwork or illustration cards. */
    body :is(.icon-circle, .ph-icon-store, .trust-icon, .call-icon-fallback,
        .hero-whatsapp-icon, .ct-hero-contact-icon, .ct-individual-option-icon,
        .pq-profession-icon, .success-stat-icon, .bp-card-icon,
        .ps-benefit__icon, .tc-guide-feature-icon, .tc-support-icon,
        .university-hero__path-icon, .university-why__icon-wrap,
        .university-process__icon-wrap, .university-dream__icon-wrap,
        .university-partners__benefit-icon, .study-areas-modal__icon,
        .career-step-icon, .career-audience-icon) {
        border-radius: 50% !important;
        aspect-ratio: 1;
        flex-shrink: 0;
    }

    body :is(.call-icon-fallback, .hero-whatsapp-icon, .ct-hero-contact-icon) {
        width: 58px !important;
        height: 58px !important;
    }
}