/*
 * Escala de lectura compartida: inicio, cursos y diplomados.
 * Cargar DESPUÉS de estilos.css y de las hojas de cada página.
 * Los !important solo fijan tamaños e interlineados frente a las reglas
 * antiguas de los componentes. Conserva las familias tipográficas actuales.
 */
body.cc-home {
    --cc-type-body: 1rem;
    --cc-type-lead: 1.125rem;
    --cc-type-action: 1rem;
    --cc-type-link: .9375rem;
    --cc-type-meta: .875rem;
    --cc-type-small: .8125rem;
    --cc-type-label: .75rem;
    font-size: var(--cc-type-body);
    line-height: 1.7;
}

/* Lectura principal. */
body.cc-home :is(
    .cc-heading-aside, .cc-diploma-copy > p, .cc-experience-copy > p,
    .cc-included-list p, .cc-specialty-card p, .cc-personal-panel p,
    .cc-location p, .cc-course-description, .cc-course-description p,
    .cc-course-description li, .cc-course-block-lead, .cc-course-benefits p,
    .cc-course-work p, .cc-course-requirements li, .cc-course-instructor p,
    .cc-course-questions > p, .cd-intro-description, .cd-module-body,
    .cd-preparations, .cd-includes p, .cd-payment-caption,
    .cd-accreditation p, .cd-empty-program
) {
    font-size: var(--cc-type-body) !important;
    line-height: 1.75 !important;
}
body.cc-home :is(.cc-hero-copy > p, .cc-course-lead, .cd-hero-lead) {
    font-size: var(--cc-type-lead) !important;
    line-height: 1.7 !important;
}

/* Encabezado, navegación, acciones y campos. */
body.cc-home :is(.cc-nav, .cc-nav a) {
    font-size: var(--cc-type-action) !important;
}
body.cc-home .cc-brand > span { font-size: 1.25rem !important; }
body.cc-home .cc-brand small {
    font-size: var(--cc-type-label) !important;
    line-height: 1.4 !important;
}
body.cc-home :is(.cc-btn, .cc-personal-form .cc-btn-light, .cc-footer-cta) {
    font-size: var(--cc-type-action) !important;
    line-height: 1.45 !important;
}
body.cc-home .cc-btn { min-height: 48px; }
body.cc-home :is(
    .cc-text-link, .cc-specialty-link, .cc-included-list a,
    .cc-related-action, .cc-course-sections a, .cd-section-nav a,
    .cd-curriculum-head button, .cc-course-comments .btn-success
) {
    font-size: var(--cc-type-link) !important;
    line-height: 1.55 !important;
}
body.cc-home :is(.cc-search input, .cc-month-filter select,
    .cc-select-wrap select, .cc-personal-form label) {
    font-size: var(--cc-type-body) !important;
    line-height: 1.5 !important;
}
body.cc-home .cc-personal-form .cc-btn { white-space: normal; }

/* Información secundaria legible, también en las tarjetas. */
body.cc-home :is(
    .cc-perks > span, .cc-hero-mentors, .cc-hero-mentors small,
    .cc-course-dates, .cc-course-chef, .cc-diploma-date,
    .cc-diploma-date strong, .cc-diploma-schedule,
    .cc-course-facts strong, .cc-course-facts strong + span,
    .cc-booking-perks, .cc-booking-deposit, .cc-course-instructor .cc-text-link,
    .cc-course-labels, .cc-related-item p, .cc-location-note,
    .cc-review figcaption strong, .cd-facts strong, .cd-hero-notes,
    .cd-program-count > span, .cd-module-chef, .cd-module-chef strong,
    .cd-module-price, .cd-module-price strong, .cd-card-total,
    .cd-card-total > strong, .cd-payment-breakdown > div,
    .cd-payment-breakdown dd, .cd-module-costs, .cd-module-costs li,
    .cd-accreditation-ids strong
) {
    font-size: var(--cc-type-meta) !important;
    line-height: 1.6 !important;
}
body.cc-home :is(
    .cc-utility, .cc-count, .cc-offer, .cc-course-price del,
    .cc-course-price > small, .cc-diploma-copy > .cc-eyebrow,
    .cc-photo-caption, .cc-month-heading small,
    .cc-month-heading > span:last-child, .cc-gallery-caption,
    .cc-gallery-help, .cc-booking-before, .cc-booking-price > span,
    .cc-booking-note, .cc-booking-payments p, .cc-booking-login,
    .cc-review figcaption small, .cc-review-controls > span,
    .cc-personal-form > small, .cc-lightbox-header,
    .cc-course-lightbox > [data-lightbox-caption],
    .cd-gallery-heading, .cd-program-help, .cd-payment-footnote,
    .cd-mobile-booking > span > small,
    .cc-course-mobile-booking > span > small
) {
    font-size: var(--cc-type-small) !important;
    line-height: 1.6 !important;
}
body.cc-home :is(
    .cc-eyebrow, .cc-course-label, .cc-course-dates small,
    .cc-course-facts small, .cc-course-labels > span:first-child,
    .cc-booking-eyebrow, .cc-booking-eyebrow > span,
    .cc-booking-poster > span, .cc-related-item > div > span:first-child,
    .cc-course-breadcrumb, .cd-breadcrumb, .cd-facts small,
    .cd-curriculum-head, .cd-module-summary small, .cd-payment-top,
    .cd-price > small, .cd-accreditation-ids,
    .cd-hero-visual figcaption > span
) {
    font-size: var(--cc-type-label) !important;
    line-height: 1.5 !important;
}

/* Títulos de tarjetas y módulos; los grandes titulares conservan su escala. */
body.cc-home :is(.cc-course-card h3, .cc-diploma-copy h3) {
    font-size: 1.5rem !important;
    line-height: 1.3 !important;
}
body.cc-home :is(.cc-specialty-card h3, .cc-chef-copy h3, .cd-chef h3) {
    font-size: 1.5rem !important;
    line-height: 1.35 !important;
}
body.cc-home .cc-related-item h3 {
    font-size: 1.125rem !important;
    line-height: 1.4 !important;
}
body.cc-home :is(.cd-module-summary strong, .cc-included-list h3,
    .cc-course-benefits h3, .cc-course-work h3, .cd-includes h3) {
    font-size: 1.125rem !important;
    line-height: 1.45 !important;
}
body.cc-home :is(.cd-intro-description h2, .cd-intro-description h3) {
    font-size: 1.1875rem !important;
    line-height: 1.5 !important;
}
body.cc-home :is(.cc-course-description h2, .cc-course-description h3,
    .cc-course-description h4, .cc-course-description .h5.text-success) {
    font-size: 1.25rem !important;
    line-height: 1.45 !important;
}

/* Pie de página y contacto. */
body.cc-home :is(.cc-footer-about > p, .cc-footer-visit > p,
    .cc-footer-invite p, .cc-footer-top > p, .cc-footer-links > a,
    .cc-footer-nav nav, .cc-footer-main h3, .cc-footer-map-link,
    .cc-footer-landmark) {
    font-size: var(--cc-type-meta) !important;
    line-height: 1.75 !important;
}
body.cc-home :is(.cc-footer-bottom, .cc-footer-identity small,
    .cc-footer-brand small) {
    font-size: var(--cc-type-label) !important;
    line-height: 1.65 !important;
}
body.cc-home .cc-whatsapp {
    font-size: var(--cc-type-meta) !important;
    line-height: 1.5 !important;
}
body.cc-home :is(.cc-hero-stamp span, .cc-hero-note > div > span,
    .cd-hero-seal > span) {
    font-size: .625rem !important;
    line-height: 1.35 !important;
    letter-spacing: .04em;
}
body.cc-home .cc-hero-stamp { width: 132px; height: 132px; padding: 10px; }
body.cc-home .cc-hero-stamp span { max-width: 108px; }

/* Espacio para las letras más grandes. */
body.cc-home .cc-nav { gap: 24px; }
body.cc-home .cc-hero-copy > p { max-width: 460px; }
body.cc-home .cd-hero-lead { max-width: 490px; }
body.cc-home .cd-section-nav > .cc-wrap { gap: 28px; }
body.cc-home .cd-module-summary { min-width: 0; }
body.cc-home .cd-module-body { padding-top: 8px; }
body.cc-home .cd-module-chef { flex-wrap: wrap; }
body.cc-home .cd-module-chef > span { flex: 1 1 130px; }
body.cc-home .cd-module-price { flex-wrap: wrap; }
body.cc-home .cd-payment-breakdown dt { min-width: 0; }
body.cc-home .cc-diploma-date { flex-wrap: wrap; }
body.cc-home .cc-course-card h3 { min-height: 0; }
body.cc-home .cc-footer-phone { overflow-wrap: anywhere; }

@media (min-width: 992px) and (max-width: 1199px) {
    body.cc-home .cc-nav { gap: 15px; }
    body.cc-home .cc-brand > span { font-size: 1.125rem !important; }
    body.cc-home .cc-nav-account { padding-inline: 13px; margin-left: 0; }
}

@media (max-width: 991px) {
    body.cc-home .cc-hero-copy > p { max-width: 100%; }
    body.cc-home .cc-header-inner { gap: 16px; }
    body.cc-home .cc-perks > span { flex-wrap: wrap; text-align: center; }
    body.cc-home .cc-course-sections { overflow-x: auto; }
}

@media (max-width: 767px) {
    body.cc-home { --cc-type-lead: 1.0625rem; --cc-type-action: .9375rem; }
    body.cc-home .cc-brand { flex: 1 1 auto; min-width: 0; gap: 9px; }
    body.cc-home .cc-brand > span { min-width: 0; font-size: 1.0625rem !important; }
    body.cc-home .cc-brand small { max-width: 205px; white-space: normal; }
    body.cc-home .cc-menu-toggle { flex: 0 0 39px; }
    body.cc-home .cc-nav a { font-size: 1rem !important; }
    body.cc-home .cc-eyebrow { letter-spacing: .08em; }
    body.cc-home .cc-hero-stamp { width: 126px; height: 126px; }
    body.cc-home .cc-course-label { letter-spacing: .035em; }
    body.cc-home .cc-course-body { padding-inline: 20px; }
    body.cc-home .cc-month-heading { flex-wrap: wrap; gap: 12px; }
    body.cc-home .cc-month-heading > div { min-width: 22px; }
    body.cc-home .cc-month-heading > span:last-child { white-space: normal; }
    body.cc-home .cc-personal-form { min-width: 0; }
    body.cc-home .cc-personal-form .cc-btn { padding-inline: 14px; }
    body.cc-home .cc-course-facts { gap: 14px; }
    body.cc-home .cc-course-facts strong { overflow-wrap: anywhere; }
    body.cc-home .cd-section-nav > .cc-wrap { gap: 24px; }
    body.cc-home .cd-curriculum-head { flex-wrap: wrap; gap: 8px; }
    body.cc-home .cd-module > summary { padding: 14px; gap: 12px; }
    body.cc-home .cd-module-summary strong { font-size: 1.0625rem !important; }
    body.cc-home .cd-mobile-booking { padding-inline: 16px; }
    body.cc-home .cd-mobile-booking > span > small {
        font-size: var(--cc-type-label) !important;
    }
    body.cc-home .cd-mobile-booking > span > strong > small,
    body.cc-home .cc-course-mobile-booking strong > small {
        font-size: var(--cc-type-label) !important;
    }
    body.cc-home .cd-mobile-booking .cc-btn,
    body.cc-home .cc-course-mobile-booking > .cc-btn { gap: 12px; }
    body.cc-home .cc-footer-bottom { padding-right: 66px; }
}

@media (max-width: 359px) {
    body.cc-home .cc-header-inner { gap: 10px; }
    body.cc-home .cc-brand > span { font-size: 1rem !important; }
    body.cc-home .cc-brand small { font-size: .6875rem !important; }
    body.cc-home .cc-hero-stamp { width: 120px; height: 120px; }
    body.cc-home .cc-course-facts { grid-template-columns: 1fr 1fr; }
    body.cc-home .cc-course-facts > div:last-child { grid-column: 1 / -1; }
    body.cc-home .cd-mobile-booking > span > strong { font-size: 1.125rem; }
    body.cc-home .cd-mobile-booking .cc-btn { padding-inline: 12px; }
}


body.cc-home .cc-nav-session {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}

body.cc-home .cc-nav-session .cc-nav-account {
    margin: 0;
}

body.cc-home .cc-nav-logout {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 11px 13px;
    color: #a74b1b;
    background: #fff3e6;
    border: 1px solid #efd3b5;
    border-radius: 8px;
    text-decoration: none;
    white-space: nowrap;
    transition: background .2s, border-color .2s;
}

body.cc-home .cc-nav-logout:hover {
    background: #ffe6cc;
    border-color: #e6ad77;
}

body.cc-home .cc-nav-logout:focus-visible {
    outline: 2px solid #f8740a;
    outline-offset: 3px;
}

@media (min-width: 992px) and (max-width: 1199px) {
    body.cc-home .cc-nav-session {
        flex-direction: column;
        gap: 4px;
    }

    body.cc-home .cc-nav-logout {
        padding: 4px 12px;
    }
}

@media (max-width: 991px) {
    body.cc-home .cc-nav-session {
        width: 100%;
        justify-content: space-between;
        margin-top: 8px;
        padding-top: 16px;
        border-top: 1px solid #eee0cf;
    }
}


body.cc-home .cc-nav-login {
    display: inline-flex;
    align-items: center;
    padding: 4px;
    color: #493729;
    text-decoration: none;
    white-space: nowrap;
}

body.cc-home .cc-nav-login:hover {
    color: #bd5000;
}

body.cc-home .cc-nav-session .cc-nav-register {
    background: #f8740a;
    border-color: #f8740a;
    color: #2f1b0d;
}

body.cc-home .cc-nav-session .cc-nav-register:hover {
    background: #ff943d;
    border-color: #ff943d;
}

body.cc-home .cc-nav-login:focus-visible,
body.cc-home .cc-nav-register:focus-visible {
    outline: 2px solid #f8740a;
    outline-offset: 3px;
}