/* Shared visual foundation for public content, catalog and account pages. */
.cl-body {
    --cl-font-head: var(--cl-font-body);
    --cl-heading-weight: 800;
    --cl-blue: #174ea6;
    --cl-blue-d: #123e84;
    --cl-radius-xl: 16px;
    --cl-shadow-sm: 0 3px 14px #132c5008;
    --cl-shadow: 0 8px 28px #132c5014;
}
.cl-body .cl-shell { width: min(1360px, calc(100% - 32px)); }
.cl-body .cl-heading,
.cl-body .cl-page-hero__heading,
.cl-body .cl-post-title,
.cl-body .cl-blog-hero__heading,
.cl-body .cl-spotlight__title,
.cl-body .cl-prose h2,
.cl-body .cl-prose h3 {
    font-family: var(--cl-font-body); font-weight: var(--cl-heading-weight); letter-spacing: -.03em; line-height: 1.3;
}
.cl-body .cl-page-hero__heading { font-size: clamp(1.7rem, 3.2vw, 2.6rem); overflow-wrap: anywhere; }
.cl-body .cl-page-hero { padding-block: 40px; }
.cl-body .cl-page-hero__lead { line-height: 1.7; }
.cl-body .cl-btn { border-radius: 12px; font-weight: 600; box-shadow: none; }
.cl-body .cl-btn--primary { background: #174ea6; border-color: #174ea6; color: #fff; box-shadow: none; }
.cl-body .cl-btn--primary:hover { background: #123e84; border-color: #123e84; transform: translateY(-1px); box-shadow: none; }
.cl-body a:focus-visible,
.cl-body button:focus-visible { outline: 3px solid #fe8115; outline-offset: 3px; }
.cl-body .cl-cert-card { border-radius: 16px; box-shadow: var(--cl-shadow-sm); }
.cl-body .cl-cert-card__title { font-weight: 600; line-height: 1.55; }
.cl-body .cl-cert-card__price-current { font-weight: 700; }
.cl-body .cl-cert-card__sale-badge { background: #fff0e2; color: #934200; border: 1px solid #ffd5b1; box-shadow: none; font-weight: 600; }
.cl-body .cl-catalog-action { background: #174ea6; color: #fff; box-shadow: none; border-radius: 10px; font-weight: 600; }
.cl-body .cl-catalog-action--updating { background: transparent; color: var(--cl-muted); }
.cl-body .cl-catalog-action--resume { background: #187558; }

/* Keep long-form learning pages aligned with the main product. */
.cl-body .strategy-hero h1,
.cl-body .pm-hero h1 { font-family: var(--cl-font-body); font-size: clamp(2rem, 4.2vw, 3.5rem); font-weight: var(--cl-heading-weight); line-height: 1.2; letter-spacing: -.04em; }
.cl-body .strategy-heading h2,
.cl-body .pm-section__intro h2 { font-size: clamp(1.6rem, 3vw, 2.35rem); font-weight: var(--cl-heading-weight); line-height: 1.3; }
.cl-body .strategy-hero,
.cl-body .pm-hero { padding-block: 56px; background: linear-gradient(115deg, #102746, #183b64); }
.cl-body .strategy-section,
.cl-body .pm-section { padding-block: 64px; scroll-margin-top: 88px; }
/* The main navigation scrolls away; keep the table of contents at the viewport edge. */
.cl-body .strategy-nav,
.cl-body .pm-jump { top: 0; box-shadow: 0 2px 12px #132c5008; }

/* Exam setup: one compact introduction, then a readable form column. */
.cl-page--exam .cl-page-hero { padding-block: 32px; background: var(--cl-bg); }
.cl-page--exam .cl-page-hero__heading { max-width: 34ch; font-size: clamp(1.55rem, 3vw, 2.25rem); overflow-wrap: normal; }
.cl-page--exam .cl-section { padding-block: 24px 48px; }
.cl-body .es-wrap { padding-bottom: 0; }
.cl-body .es-card { border-radius: 16px; box-shadow: var(--cl-shadow-sm); }
.cl-body .es-unlock-banner { padding: 24px; border-radius: 16px; background: #102746; box-shadow: none; gap: 20px; }
.cl-body .es-unlock-banner::before { display: none; }
.cl-body .es-unlock-banner__icon { background: #ffffff12; color: #ffad67; box-shadow: none; }
.cl-body .es-unlock-banner__title { color: #fff; font-size: 1.05rem; font-weight: 600; }
.cl-body .es-unlock-banner__desc { color: #c4d2e4; line-height: 1.75; }
.cl-body .es-price-line { margin-top: 10px; gap: 10px; }
.cl-body .es-price-current { color: #fff; font-weight: 700; font-size: 1.35rem; }
.cl-body .es-price-original { color: #b1c1d8; }
.cl-body .es-price-sale { background: #ffffff12; color: #ffbd84; border: 1px solid #ffffff26; }
.cl-body .es-unlock-banner__btn--primary,
.cl-body .es-submit__btn { border-radius: 12px; background: #174ea6; color: #fff; box-shadow: none; font-weight: 600; }
.cl-body .es-unlock-banner__btn--primary { background: #fe8115; color: #102746; }
.cl-body .es-unlock-banner__btn--primary:hover { background: #ff9b43; color: #102746; box-shadow: none; transform: translateY(-1px); }
.cl-body .es-submit__btn:hover { background: #123e84; box-shadow: none; transform: translateY(-1px); }

/* Blog imagery retains its layout when an uploaded file is unavailable. */
.cl-body--blog .cl-post-card__cover { height: clamp(180px, 24vw, 300px); }
.cl-body--blog .cl-post-card__cover img { width: 100%; height: 100%; object-fit: cover; }
.cl-body--blog .cl-post-card__cover.is-fallback { height: 160px; }
.cl-body--blog img[data-blog-fallback="true"] { object-fit: cover; }
.cl-body--blog .cl-post-title { font-size: clamp(1.65rem, 3vw, 2.35rem); }
.cl-body--blog .cl-prose { line-height: 1.85; overflow-wrap: break-word; }
.cl-body--blog .cl-prose h2 { font-size: 1.5rem; }
.cl-body--blog .cl-prose h3 { font-size: 1.2rem; }
.cl-prose .cl-table-scroll { overflow-x: auto; max-width: 100%; margin: 24px 0; border: 1px solid var(--cl-border); border-radius: 12px; overscroll-behavior-x: contain; }
.cl-prose .cl-table-scroll:focus-visible { outline: 3px solid #174ea6; outline-offset: 3px; }
.cl-prose .cl-table-scroll table { min-width: 640px; width: 100%; margin: 0; table-layout: auto; }
.cl-prose .cl-table-scroll th,
.cl-prose .cl-table-scroll td { word-break: normal; overflow-wrap: normal; }

/* Account pages use the same type and navy/blue/orange palette. */
.cl-body--auth .ls-shell { --ls-bg: #102746; --ls-panel: #152f50; --ls-panel-2: #1b395e; --ls-cyan: #ffad67; --ls-blue: #174ea6; --ls-text: #f2f6fc; --ls-muted: #becce0; --ls-line: #ffffff30; }
.cl-body--auth .ls-context { background: #102746; }
.cl-body--auth .ls-context-title,
.cl-body--auth .ls-title,
.cl-body--auth .ls-context-eyebrow,
.cl-body--auth .ls-eyebrow { font-family: var(--cl-font-body); letter-spacing: -.02em; }
.cl-body--auth .ls-input { background: #ffffff08; border-color: #ffffff30; border-radius: 12px; }
.cl-body--auth .ls-input::placeholder { color: #a5b8d0; }
.cl-body--auth .ls-input:focus { border-color: #ffad67; box-shadow: 0 0 0 3px #fe811525; }
.cl-body--auth .ls-submit { background: #fe8115; color: #102746; border-radius: 12px; box-shadow: none; font-weight: 700; }
.cl-body--auth .ls-submit:hover { background: #ff9b43; box-shadow: none; transform: translateY(-1px); }

html[data-theme="dark"] .cl-body .cl-cert-card__sale-badge { background: #453026; color: #ffbc83; border-color: #745034; }
html[data-theme="dark"] .cl-body .cl-catalog-action { background: #174ea6; color: #fff; }
html[data-theme="dark"] .cl-body .cl-catalog-action--updating { background: transparent; color: var(--cl-muted); }
@media (max-width: 720px) {
    .cl-body .cl-shell { width: calc(100% - 32px); }
    .cl-body .cl-page-hero { padding-block: 28px; }
    .cl-body .strategy-hero,
    .cl-body .pm-hero { padding-block: 40px; }
    .cl-body .strategy-section,
    .cl-body .pm-section { padding-block: 40px; }
    .cl-body .es-unlock-banner { padding: 20px; gap: 14px; }
    .cl-body .es-unlock-banner__icon { display: none; }
    .cl-body .es-unlock-banner__actions { width: 100%; }
    .cl-body--blog .cl-post-card__cover.is-fallback { height: 120px; }
}
@media (prefers-reduced-motion: reduce) {
    .cl-body .ls-orbit *, .cl-body .ls-orbit *::before, .cl-body .ls-orbit *::after { animation: none; }
}
.cl-body--auth .ls-heading,
.cl-body--auth .ls-card h1,
.cl-body--auth .ls-card__eyebrow { font-family: var(--cl-font-body); }
.cl-body .pm-jump { top: 0; }
.cl-body #cl-exams-grid .cl-cert-card:hover .cl-catalog-action:not(.cl-catalog-action--updating):not(.cl-catalog-action--resume),
.cl-body #cl-exams-grid .cl-cert-card:focus-visible .cl-catalog-action:not(.cl-catalog-action--updating):not(.cl-catalog-action--resume) { background: #123e84; color: #fff; box-shadow: none; }
.cl-body .cl-blog-hero-v2__heading { font-weight: var(--cl-heading-weight); line-height: 1.3; }
.cl-body .es-card__head { padding: 20px; }
.cl-table-hint { display: none; }
@media (max-width: 720px) {
    .cl-prose .cl-table-hint { display: block; margin: 20px 0 -12px; font-size: .75rem; color: var(--cl-muted); }
}
.cl-body .es-price-line { display: flex; flex-wrap: wrap; align-items: baseline; }

/* Let unlock copy fill the available space up to the purchase action. */
.cl-body .es-unlock-banner__body { flex: 1 1 auto; min-width: 0; max-width: none; }
.cl-body .es-unlock-banner__title,
.cl-body .es-unlock-banner__desc { width: 100%; max-width: none; }

/* Match the catalog title: Be Vietnam Pro, extra-bold (800). */
.cl-body h1,
.cl-body h2,
.cl-body--auth .ls-heading,
.cl-body--auth .ls-card h1 { font-weight: var(--cl-heading-weight); }
