/* Identidad compartida: Cruz Azul, superficies legibles y fondos secundarios. */
:root {
    --ca-blue: #0058aa;
    --ca-blue-bright: #0875d4;
    --ca-navy: #071e40;
    --ca-red: #e5223b;
    --ca-ink: #14345b;
    --ca-muted: #526983;
    --ca-line: #dbe5f0;
    --ca-radius: 14px;
    --ca-shadow: 0 12px 32px rgb(0 17 45 / 18%);
}

body.boxed, body.ca-payments { font-family: "Open Sans", Arial, sans-serif; }
body.boxed .page-wrapper.contenidos,
body.ca-catalog-page .page-wrapper.contenidos {
    min-height: 100svh;
    background: linear-gradient(rgb(0 0 0 / 18%), rgb(0 0 0 / 18%)),
        url('../images/bkg_contenidos.jpg') center / cover fixed !important;
    color: #f6f9ff;
}
body.boxed .page-wrapper.contenidos > .container-fluid > .row { align-items: stretch; }
body.boxed .page-wrapper.contenidos .col-md-9.contenidos,
body.boxed .page-wrapper.contenidos .col-md-9.contenidos[style] {
    min-height: 0;
    background: rgb(0 0 0 / 42%) !important;
    color: #f6f9ff;
    box-shadow: none;
    justify-content: flex-start;
    padding-bottom: 28px;
}
body.ca-catalog-page .page-wrapper.contenidos .col-md-9.contenidos {
    background: transparent !important;
    padding-top: 32px;
}
body.boxed .page-wrapper.contenidos .col-md-9.contenidos > .row { min-width: 0; }
body.boxed .page-wrapper.contenidos :is(h1,h2,h3,h4) { font-family: "Montserrat", Arial, sans-serif; }
body.boxed .page-wrapper.contenidos :is(h3,h4.sectoter) { color: #f6f9ff; line-height: 1.45; }
body.boxed .page-wrapper.contenidos a:focus-visible,
body.boxed .page-wrapper.contenidos button:focus-visible,
body.ca-payments :is(a,button,input,select):focus-visible {
    outline: 3px solid #72beff;
    outline-offset: 4px;
}

/* Encabezado claro: la identidad vive en el logo y en la línea azul y roja. */
body.boxed .ca-site-header,
body.boxed .ca-site-header .navbar,
body.boxed .ca-site-header.sticky.is-sticky .navbar {
    background: #fff !important;
}
body.boxed .ca-site-header {
    position: relative;
    border-bottom: 3px solid var(--ca-blue) !important;
    box-shadow: 0 3px 18px rgb(0 17 45 / 13%);
}
.ca-site-header::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -3px;
    width: 86px;
    height: 3px;
    background: var(--ca-red);
}
.ca-site-header .header-logo .ca-brand-home { padding: 8px 0; }
.ca-site-header .ca-account-toggle { box-shadow: none; }
.ca-site-header .header-links,
.ca-site-header .header-account { background: transparent !important; border: 0; box-shadow: none; }
.ca-site-header .header-account .dropdown-container:not([hidden]) {
    border: 1px solid var(--ca-line);
    border-top: 3px solid var(--ca-red);
    border-radius: var(--ca-radius);
    box-shadow: var(--ca-shadow);
}
.ca-site-header .exp-search.ca-search-open { background: #fff; }

/* Catálogo: el azul tiene presencia; los cursos conservan el protagonismo. */
.ca-catalog-heading {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    padding: clamp(24px, 3.5vw, 42px);
    margin-bottom: 32px;
    background: linear-gradient(115deg, #06234a, #0058aa 80%, #096bbb);
    border: 1px solid rgb(255 255 255 / 14%);
    border-left: 4px solid var(--ca-red);
    border-radius: 18px;
    box-shadow: 0 14px 35px rgb(0 12 37 / 20%);
}
.ca-catalog-heading::after {
    content: "";
    position: absolute;
    z-index: -1;
    right: 38px;
    top: 50%;
    width: 150px;
    height: 150px;
    transform: translateY(-50%);
    background: url('../images/cruz-azul-icon.svg') center / contain no-repeat;
    opacity: .17;
    pointer-events: none;
}
.ca-catalog-heading .ca-catalog-eyebrow { color: #c8e3ff; }
.ca-catalog-heading h1 {
    position: relative;
    max-width: 960px;
    margin: 0 0 16px;
    color: #fff;
    text-transform: none;
    font-weight: 700;
}
.ca-catalog-heading > p:last-child { color: #dbeaff; font-size: 15px; }
.ca-catalog-breadcrumb, .ca-catalog-breadcrumb a { color: #d8eaff; }
.ca-catalog-breadcrumb a:hover { color: #fff; }
body.ca-catalog-page .ca-section-title {
    color: #fff;
    font-size: 19px;
    border-left: 3px solid var(--ca-red);
    padding: 2px 0 2px 14px;
    letter-spacing: -.015em;
}
body.boxed .col-md-9.contenidos .carta-manuales {
    background: #fff;
    border: 1px solid rgb(255 255 255 / 24%);
    border-radius: var(--ca-radius);
    box-shadow: 0 8px 22px rgb(0 10 34 / 18%);
}
body.boxed .col-md-9.contenidos .carta-manuales:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 30px rgb(0 10 34 / 30%);
}
body.boxed .carta-manuales .capucha { position: relative; overflow: hidden; filter: saturate(1.12) contrast(1.03); }
body.boxed .carta-manuales .capucha::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(160deg, rgb(0 49 106 / 12%), rgb(3 20 47 / 32%));
    pointer-events: none;
}
body.boxed .col-md-9.contenidos .carta-manuales .capucha-txt { border-top: 3px solid var(--ca-blue); }
body.boxed .col-md-9.contenidos .carta-manuales:hover .capucha-txt { border-top-color: var(--ca-red); }
body.boxed .col-md-9.contenidos .carta-manuales .capucha-txt h4 { color: var(--ca-ink) !important; }
.ca-catalog-brand { border-top-color: var(--ca-blue); box-shadow: var(--ca-shadow); }
.ca-catalog-brand-intro > span { color: var(--ca-blue); }
.ca-catalog-brand-intro > p { color: var(--ca-ink); }

/* Curso: navegación, acción activa y regreso al catálogo siempre reconocibles. */
body.boxed .page-wrapper.contenidos .col-md-3.barra.menu {
    padding: 22px 16px;
    background: linear-gradient(180deg, #08264f, #061b38) !important;
    border-right: 1px solid rgb(255 255 255 / 12%);
}
.ca-course-navigation { text-align: left; }
.ca-course-navigation .tit_webinar { margin: 0 0 20px; }
.ca-course-navigation .tit_webinar h2 {
    margin: 16px 0 0;
    padding: 0 2px 20px;
    background: transparent;
    color: #fff;
    border-bottom: 1px solid rgb(255 255 255 / 15%);
    font: 600 clamp(19px, 1.65vw, 24px)/1.4 "Montserrat", Arial, sans-serif;
    text-transform: none;
    letter-spacing: -.02em;
}
.ca-course-navigation .tit_webinar h2 span { color: #aacfee; font: 500 12px/1.5 Arial, sans-serif; }
body.boxed .ca-course-navigation .tit_webinar a.regresar {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: auto;
    min-height: 40px;
    padding: 8px 12px;
    margin: 0;
    border: 1px solid rgb(255 255 255 / 20%);
    border-radius: 9px;
    background: rgb(255 255 255 / 5%);
    color: #e1efff;
    font: 500 12px/1.5 Arial, sans-serif;
    text-decoration: none;
}
.tit_webinar a.regresar .material-symbols-outlined { font-size: 19px; }
.ca-course-navigation .menu_webinars ul { display: grid; gap: 8px; }
.ca-course-navigation .menu_webinars ul li { margin: 0; padding: 0; }
.ca-course-navigation .menu_webinars ul li a {
    min-height: 54px;
    padding: 12px;
    gap: 10px;
    border: 1px solid rgb(255 255 255 / 12%);
    border-left: 3px solid transparent;
    border-radius: 10px;
    background: rgb(255 255 255 / 4%);
    color: #a8bed6;
    font: 500 13px/1.45 "Open Sans", Arial, sans-serif;
    text-transform: none;
    transform: none;
    transition: background .18s, border-color .18s, color .18s;
}
.ca-course-navigation .menu_webinars ul li a.exist {
    background: rgb(22 99 170 / 20%);
    color: #f0f7ff;
    border-color: rgb(100 164 229 / 26%);
}
.ca-course-navigation .menu_webinars ul li a:hover {
    background: #104b80;
    color: #fff;
    border-left-color: var(--ca-red);
}
.ca-course-navigation .menu_webinars ul li a.active {
    background: linear-gradient(105deg, #0058aa, #0869bb);
    color: #fff;
    border-color: #2087dc;
    border-left-color: var(--ca-red);
    box-shadow: 0 4px 14px rgb(0 10 34 / 16%);
}
.ca-course-navigation .menu_webinars ul li a span.material-symbols-outlined {
    width: 30px;
    height: 30px;
    padding: 0;
    margin: 0;
    border-radius: 8px;
    background: rgb(255 255 255 / 10%);
    color: #dceeff;
    font: 600 12px/1 Arial, sans-serif;
}
body.boxed .page-wrapper.contenidos .tarjeta_webinar {
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 86px;
    height: auto;
    margin-bottom: 16px;
    padding: 20px;
    background: linear-gradient(120deg, #0c3966, #0a294c);
    color: #fff;
    border: 1px solid rgb(125 178 233 / 28%);
    border-left: 3px solid var(--ca-blue-bright);
    border-radius: 12px;
    box-shadow: 0 8px 18px rgb(0 12 37 / 15%);
    font: 600 15px/1.5 "Open Sans", Arial, sans-serif;
    text-decoration: none;
    text-transform: none;
}
body.boxed .page-wrapper.contenidos .tarjeta_webinar:hover { background: #12558d; border-left-color: var(--ca-red); }
.tarjeta_webinar .material-symbols-outlined { flex-shrink: 0; color: #8bc9ff; font-size: 30px; }
.contenidos #container { border: 1px solid rgb(182 211 244 / 22%); border-radius: 14px; overflow: hidden; }
.contenidos .flipbook-menu-btn {
    border-radius: 8px !important;
    background-color: #0058aa !important;
    color: #fff !important;
    box-shadow: 0 3px 10px rgb(0 15 45 / 22%);
}
.contenidos .flipbook-menu-btn:hover { background-color: #e5223b !important; }

/* Publicaciones y recursos usan las mismas superficies y marcas, sin otro diseño lateral. */
body.boxed .page-wrapper.contenidos > .container-fluid > .row:has(> .barra:not(.menu)) > .col-md-9.contenidos { width: 100%; }
body.boxed .page-wrapper.contenidos .col-md-3.barra:not(.menu) {
    display: flex;
    flex: 1 1 100%;
    width: 100%;
    min-height: 0;
    height: auto;
    justify-content: center;
    align-items: center;
    gap: 40px;
    padding: 24px;
    background: #fff;
    border-top: 3px solid var(--ca-blue);
}
body.boxed .col-md-3.barra:not(.menu) > div { flex: 0 1 180px; }
body.boxed .col-md-3.barra:not(.menu) img { width: auto !important; max-width: 100%; max-height: 120px; margin: 0 auto !important; object-fit: contain; }
.contenidos .category-block, .contenidos .card {
    border: 1px solid rgb(172 202 235 / 22%);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 8px 22px rgb(0 10 34 / 18%);
}
.contenidos .category-title { padding: 12px; background: #082b55; }
body.boxed .contenidos .category-title h3 { margin: 0; color: #fff !important; font-size: 14px; line-height: 1.5; }
.contenidos .zoom { border-radius: 10px; }
.contenidos .lideres { border-radius: 14px; overflow: hidden; border: 1px solid rgb(172 202 235 / 25%); }
.contenidos :is(iframe,video) { max-width: 100%; border-radius: 12px; }
.ca-resource-toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; padding: 24px; }
.ca-resource-toolbar h1 { margin: 0; color: #fff; font-size: 28px; text-transform: none; }
.ca-resource-heading { padding: 28px 28px 8px; text-align: left; }
.ca-resource-heading > p { margin: 0 0 10px; color: #9ccfff; font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.ca-resource-heading h1 { margin: 0 0 12px; color: #fff; font-size: clamp(25px,3vw,36px); font-weight: 700; text-transform: none; }
.ca-resource-heading > span { color: #d1e4f9; font-size: 14px; line-height: 1.6; }
body.boxed .contenidos .row.ca-resource-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill,minmax(min(100%,180px),1fr));
    gap: 20px;
    margin: 0;
    padding: 28px !important;
}
body.boxed .row.ca-resource-grid > [class*=col-] { width: auto !important; min-width: 0; padding: 0 !important; margin: 0 !important; float: none; }
.ca-resource-grid::before, .ca-resource-grid::after { display: none; content: none; }
.ca-resource-card { display: flex; flex-direction: column; height: 100%; overflow: hidden; background: #fff; border: 1px solid #dce7f4; border-radius: 13px; box-shadow: 0 6px 18px rgb(0 10 34 / 18%); text-decoration: none !important; }
.ca-resource-card:hover { box-shadow: 0 12px 24px rgb(0 10 34 / 28%); border-color: #8bc9ff; }
.ca-resource-cover { position: relative; display: grid; place-items: center; aspect-ratio: 3 / 4; overflow: hidden; background: #edf3fa; }
.ca-resource-cover img { position: relative; z-index: 1; width: 100%; height: 100%; max-height: 280px; object-fit: contain; border: 0; box-shadow: none; }
.ca-cover-placeholder { position: absolute; padding: 20px; color: #5e7897; font: 600 14px/1.5 "Montserrat",Arial,sans-serif; text-align: center; }
.ca-resource-cover.is-loaded .ca-cover-placeholder { display: none; }
.ca-resource-cover.is-unavailable img { display: none; }
.ca-resource-card-body { display: flex; flex: 1; flex-direction: column; align-items: stretch; gap: 10px; padding: 16px; border-top: 3px solid var(--ca-blue); }
.ca-resource-kind { color: #526983; font-size: 10px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
body.boxed .contenidos .ca-resource-card h2 { margin: 0; color: var(--ca-ink); font: 600 14px/1.5 "Montserrat",Arial,sans-serif; text-transform: none; overflow-wrap: anywhere; }
.ca-resource-price { color: var(--ca-blue); font-size: 21px; font-weight: 700; margin: 0; }
.ca-resource-price small { color: #526983; font-size: 11px; }
.ca-resource-action { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 38px; margin-top: auto; padding: 10px 0 0; border-top: 1px solid #e3ebf5; color: var(--ca-blue); font-size: 12px; font-weight: 600; }

/* Botones y formularios: acción azul, foco visible y estados sin ambigüedad. */
body.boxed .contenidos .btn,
body.boxed .ca-site-header .btn,
body.ca-payments .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 46px;
    height: auto;
    padding: 12px 20px;
    border: 1px solid transparent;
    border-radius: 10px;
    background: linear-gradient(105deg, #0058aa, #086cc1);
    color: #fff;
    box-shadow: 0 4px 12px rgb(0 53 111 / 17%);
    font: 600 14px/1.5 "Open Sans", Arial, sans-serif;
    text-decoration: none;
    text-transform: none;
    letter-spacing: .01em;
    white-space: normal;
}
body.boxed .contenidos .btn:hover,
body.boxed .ca-site-header .btn:hover,
body.ca-payments .btn:hover { background: #06457f; color: #fff; box-shadow: 0 6px 16px rgb(0 53 111 / 24%); }
body.boxed .page-wrapper.contenidos .col-md-9.contenidos.examen {
    padding: 24px;
    background: #f6f9fe !important;
    color: var(--ca-ink);
}
body.boxed .contenidos.examen :is(h1,h2,h3,h4,p,label) { color: var(--ca-ink); }
.contenidos .panel { border: 1px solid var(--ca-line); border-radius: 12px; overflow: hidden; box-shadow: none; }
.contenidos .panel-heading { background: #eaf2fc; color: var(--ca-ink); padding: 16px; }
.contenidos .panel-body { background: #fff; color: var(--ca-ink); padding: 20px; }
.contenidos .panel-heading a { color: var(--ca-ink); text-decoration: none; }
.contenidos .panel-body label { font-size: 15px; line-height: 1.6; }
.contenidos .form-control { min-height: 46px; border: 1px solid #b6c9df; border-radius: 8px; background: #fff; color: var(--ca-ink); box-shadow: none; }
.contenidos .form-control:focus { border-color: var(--ca-blue); box-shadow: 0 0 0 3px rgb(0 88 170 / 12%); }
.contenidos input:is([type=radio],[type=checkbox]) { accent-color: var(--ca-blue); }
.contenidos form[style*='background'] {
    padding: 24px !important;
    border: 1px solid var(--ca-line);
    border-radius: 14px;
    background: #fff !important;
    color: var(--ca-ink);
}
.contenidos form[style*='background'] :is(label,h1,h2,h3,h4,p) { color: var(--ca-ink); }
.contenidos .modal-content { border: 0; border-top: 4px solid var(--ca-red); border-radius: 14px; color: var(--ca-ink); box-shadow: var(--ca-shadow); }
.contenidos .modal-header { border-bottom: 1px solid var(--ca-line); }
body.boxed .contenidos .modal-content :is(h1,h2,h3,h4) { color: var(--ca-ink); }
body.boxed .page-footer { background: #061a35; color: #c2d6ec; border-top: 1px solid rgb(255 255 255 / 10%); }
.page-footer .footer-copyright { color: #c2d6ec; font: 400 12px/1.6 "Open Sans", Arial, sans-serif; }

/* Pagos: los mismos colores, con datos y formularios sobre blanco. */
body.ca-payments {
    height: auto !important;
    min-height: 100svh;
    background-color: var(--ca-navy);
    background: linear-gradient(rgb(0 0 0 / 18%), rgb(0 0 0 / 18%)), url('../images/bkg_contenidos.jpg') center / cover fixed;
}
.ca-payment-header { background: #fff; border-bottom: 3px solid var(--ca-blue); }
.ca-payment-header img { display: block; width: 112px; height: auto; max-height: 72px; object-fit: contain; }
.ca-payment-header > a:last-child { padding: 9px 14px; border: 1px solid var(--ca-line); border-radius: 8px; color: var(--ca-ink); font-weight: 600; font-size: 13px; }
.ca-payments .ca-payment-main > h1 { color: #fff; font: 700 clamp(26px,3vw,36px)/1.2 "Montserrat",Arial,sans-serif; text-transform: none; margin-bottom: 16px; }
.ca-payments .ca-pay-course, .ca-payments .ca-pay-back { color: #dbeaff; }
.ca-payment-product { border-top: 3px solid var(--ca-blue); box-shadow: var(--ca-shadow); }
.ca-payments .ca-pay-steps li.is-current { background: #eaf3ff; border-color: #3784c9; box-shadow: inset 0 -3px var(--ca-red); }
.ca-payments .ca-pay-primary { background: linear-gradient(105deg,#0058aa,#086cc1); }
.ca-payments .ca-pay-secondary { background: #f3f7fc; color: var(--ca-blue); box-shadow: none; border: 1px solid #adc8e6; }
.ca-payments .ca-pay-secondary:hover { background: #e3eefb; color: #08376a; }
.ca-payments .wec-payment-method:has(input:checked) { border-color: var(--ca-blue); background: #eef6ff; box-shadow: inset 3px 0 var(--ca-red); }
.ca-payments .ca-openpay-brand { background: #fff; padding: 14px; border-radius: 12px; color: var(--ca-ink); }
.ca-payments .ca-payment-footnote { color: #d0e1f5; line-height: 1.7; }
.ca-payments .ca-payment-footnote a { color: #fff; text-decoration: underline; }

/* Administración conserva su estructura y comparte la identidad del sitio. */
body.admin-body { --navy: #071e40; --blue: #0058aa; --ink: #14345b; --line: #dbe5f0; --bg: #f2f6fb; }
.admin-body .admin-sidebar { background: linear-gradient(180deg,#052a58,#071e40); }
.admin-body .admin-sidebar nav a[aria-current] { background: #0058aa; box-shadow: inset 3px 0 var(--ca-red); }
.admin-body .admin-heading { border-bottom: 3px solid var(--ca-blue); }
.admin-body .admin-brand img { border-top: 3px solid var(--ca-red); }
.admin-body :is(.admin-card,.stat) { border-radius: 12px; box-shadow: 0 4px 14px rgb(18 42 76 / 4%); }

@media(max-width: 991px) {
    body.boxed .page-wrapper.contenidos .col-md-3.barra.menu { padding: 0; border: 0; }
    .ca-course-menu-toggle { border-bottom: 2px solid var(--ca-red); background: #082c58; }
    .ca-course-menu-panel { padding: 20px 16px; }
    body.boxed .page-wrapper.contenidos .col-md-9.contenidos { min-height: 0; }
}
@media(max-width: 767px) {
    body.boxed .contenidos .row.ca-resource-grid { grid-template-columns: repeat(auto-fill,minmax(min(100%,135px),1fr)); gap: 14px; padding: 18px 12px !important; }
    .ca-resource-heading { padding: 22px 14px 4px; }
    .ca-resource-card-body { padding: 12px; }
    body.boxed .contenidos .ca-resource-card h2 { font-size: 12px; }
    .ca-catalog-heading { padding: 24px 22px; margin-bottom: 26px; border-radius: 14px; }
    .ca-catalog-heading h1 { font-size: clamp(25px,6vw,34px); }
    .ca-catalog-heading::after { right: 12px; width: 110px; height: 110px; }
    .ca-catalog-heading > p:last-child { font-size: 14px; }
    .ca-catalog-heading .ca-catalog-eyebrow { font-size: 10px; max-width: 240px; }
    body.ca-catalog-page .ca-section-title { font-size: 17px; }
    .ca-catalog-breadcrumb { margin-bottom: 18px; font-size: 12px; }
    body.boxed .page-wrapper.contenidos .col-md-9.contenidos.examen { padding: 18px 12px; }
    .ca-course-navigation .tit_webinar h2 { font-size: 22px; }
    body.boxed .page-wrapper.contenidos .tarjeta_webinar { padding: 16px; font-size: 14px; }
    .ca-payment-header img { width: 88px; }
}
@media(prefers-reduced-motion: reduce) {
    body.boxed .col-md-9.contenidos .carta-manuales:hover { transform: none; }
    .ca-course-navigation .menu_webinars ul li a { transition: none; }
    body.boxed .page-wrapper.contenidos, body.ca-payments { background-attachment: scroll !important; }
}

/* Ajustes solicitados: fondos originales, marca a color y contenido sin recortes. */
.ca-site-header .header-logo img, .tituloentrada img, .admin-brand img, .ca-payment-header img {
    filter: none !important; opacity: 1 !important; mix-blend-mode: normal;
}
.ca-back-navigation { padding: 9px 24px; background: rgb(0 0 0 / 36%); text-align: left; }
.ca-back-navigation a { display: inline-flex; align-items: center; gap: 7px; color: #fff; font: 400 12px/1.5 Arial,sans-serif; padding: 4px 8px; border-radius: 6px; text-decoration: none; }
.ca-back-navigation a:hover { background: rgb(255 255 255 / 12%); }
body.ca-catalog-page .page-wrapper.contenidos > .container-fluid { max-width: none; padding: 0 clamp(12px,2vw,32px); }
body.ca-catalog-page .col-md-9.contenidos .row:has(> .col-md-2 > .carta-manuales) { grid-template-columns: repeat(auto-fit,minmax(min(100%,170px),200px)); justify-content: center; }
body.ca-catalog-page .col-md-9.contenidos { padding-left: 12px; padding-right: 12px; }
.ca-password-field { display: block; position: relative; width: 100%; }
.ca-password-field input { padding-right: 50px !important; width: 100%; }
.ca-password-field .ca-password-toggle, .admin-body .ca-password-toggle, body.gccentrada .ca-password-toggle {
    position: absolute; right: 5px; top: 4px; display: grid; place-items: center; width: 40px; height: 40px; min-height: 0; padding: 8px; margin: 0; border: 0; border-radius: 6px; background: transparent !important; color: #47749c !important; box-shadow: none; cursor: pointer;
}
body.gccentrada .ca-password-toggle { color: #fff !important; }
.ca-password-toggle:hover { outline: 1px solid currentColor; }
.ca-password-toggle .ca-eye-slash { display: none; }
.ca-password-toggle[aria-pressed="true"] .ca-eye-slash { display: block; }
.ca-empty-content { width: 100%; max-width: 780px; margin: 22px auto; padding: clamp(24px,5vw,55px) 24px; border: 1px solid #d6e0ea; border-radius: 14px; background: #f4f7fa; color: #526477; text-align: center; }
.ca-empty-content > span { display: block; font: 300 36px/1 Arial,sans-serif; color: #8b9aa9; }
body.boxed .contenidos .ca-empty-content h2 { color: #3d5167; margin: 16px 0 12px; font-size: 22px; text-transform: none; }
.ca-empty-content p { margin: 0; color: #526477; font-size: 15px; line-height: 1.7; }
.ca-course-navigation .menu_webinars a.ca-content-missing, .ca-course-navigation .menu_webinars a.ca-content-missing.active {
    color: #b4bcc4; background: #303b47; border-color: #4e5862; box-shadow: none; opacity: .8;
}
.ca-course-navigation .menu_webinars a.ca-content-missing .material-symbols-outlined { color: #a8b0b9; background: #454f59; }
.ca-course-navigation .menu_webinars a.ca-content-missing:hover { background: #404b56; opacity: 1; }
.ca-year-navigation { display: flex; flex-wrap: wrap; gap: 8px; padding: 12px 24px 24px; }
.ca-year-navigation a { padding: 8px 13px; background: #fff; color: #164778; border-radius: 7px; font-size: 13px; }
.ca-magazine-year { scroll-margin-top: 20px; }
body.boxed .contenidos .ca-year-heading { margin: 12px 24px 0; padding: 12px 0; color: #fff; border-bottom: 1px solid rgb(255 255 255 / 30%); font-size: 26px; text-transform: none; }
.ca-year-heading small { color: #e2e7ef; font: 400 12px/1.5 Arial,sans-serif; margin-left: 12px; }
.ca-resource-card[data-ca-unavailable] .ca-resource-cover, .ca-resource-card[data-ca-unavailable] .ca-resource-cover img { filter: grayscale(1); }
.ca-resource-card[data-ca-unavailable] .ca-resource-card-body { border-top-color: #939ca7; }
.ca-resource-card[data-ca-unavailable] .ca-resource-action { color: #687582; }
.ca-unavailable-dialog { width: min(440px,calc(100% - 32px)); padding: 28px; border: 0; border-top: 4px solid #0058aa; border-radius: 14px; color: #14345b; box-shadow: 0 14px 50px #0005; }
.ca-unavailable-dialog::backdrop { background: #06152b99; }
.ca-unavailable-dialog h2 { margin: 0 0 16px; font: 600 22px/1.4 Arial,sans-serif; text-transform: none; color: #14345b; }
.ca-unavailable-dialog p { font: 400 15px/1.7 Arial,sans-serif; }
.ca-unavailable-dialog button { border: 0; border-radius: 8px; padding: 10px 20px; background: #0058aa; color: #fff; }
.ca-feature-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,320px),1fr)); gap: 22px; padding: 24px; width: 100%; }
.ca-feature-card { display: flex; flex-direction: column; min-width: 0; background: #fff; border-radius: 12px; overflow: hidden; color: #14345b; text-decoration: none !important; }
.ca-feature-card img { display: block; width: 100%; height: auto; object-fit: contain; background: #f0f3f7; }
.ca-feature-card > div { padding: 18px; }
body.boxed .contenidos .ca-feature-card h2 { margin: 0 0 10px; font: 600 18px/1.5 Arial,sans-serif; text-transform: none; color: #14345b; }
.ca-feature-card p { margin: 0 0 14px; color: #526983; font: 400 14px/1.7 Arial,sans-serif; }
.ca-feature-card span { color: #0058aa; font-size: 13px; font-weight: 600; }
.ca-detail-layout { display: grid; grid-template-columns: minmax(190px,260px) minmax(0,1fr) minmax(140px,200px); align-items: start; gap: 24px; padding: 24px; }
.ca-detail-layout figure { margin: 0; padding: 12px; background: #fff; border-radius: 12px; }
.ca-detail-layout figure img { width: 100%; height: auto; object-fit: contain; }
.ca-detail-layout figcaption { padding: 14px 4px 4px; color: #14345b; font: 600 15px/1.5 Arial,sans-serif; }
.ca-detail-copy { padding: clamp(18px,2.5vw,32px); margin-top: 20px; background: #fff; color: #263f59; border-radius: 12px; font: 400 15px/1.85 Arial,sans-serif; overflow-wrap: anywhere; }
body.boxed .contenidos .ca-detail-copy :is(h2,h3,h4) { color: #14345b; font-size: 23px; text-transform: none; line-height: 1.5; }
.ca-detail-copy p { color: #263f59; }
.ca-detail-layout .ca-video-frame { display: block; width: 100%; aspect-ratio: 16/9; border: 0; background: #111; }
.ca-detail-heading { padding: 24px 24px 0; }
body.boxed .contenidos .ca-detail-heading h1 { margin: 0 0 12px; color: #fff; font-size: clamp(24px,3vw,34px); text-transform: none; line-height: 1.4; }
.ca-detail-heading p { color: #fff; font-size: 15px; }
.ca-congress-reader { padding: 24px; }
.ca-congress-reader #container { min-height: min(75vh,850px); }
.ca-publication-categories { grid-template-columns: repeat(3,minmax(0,190px)); justify-content: center; }
.ca-rotated-cover { position: relative; aspect-ratio: 2/3; overflow: hidden; background: #fff; }
.ca-rotated-cover img { position: absolute; width: 150%; max-width: none; height: 66.6667%; left: -25%; top: 16.6667%; transform: rotate(90deg); object-fit: contain; }
body.boxed .page-wrapper.contenidos .col-md-3.barra:not(.menu) { justify-content: space-between; gap: 20px; padding: 16px clamp(24px,6vw,90px); }
@media(max-width:991px) { .ca-detail-layout { grid-template-columns: minmax(160px,220px) minmax(0,1fr); } .ca-detail-company { grid-column: 1; grid-row: 2; } .ca-detail-main { grid-column: 2; grid-row: 1 / span 2; } }
@media(max-width:767px) {
    body.ca-catalog-page .col-md-9.contenidos .row:has(> .col-md-2 > .carta-manuales) { grid-template-columns: repeat(auto-fit,minmax(min(100%,140px),1fr)); gap: 14px; }
    .ca-feature-grid { padding: 16px; gap: 16px; grid-template-columns: repeat(auto-fit,minmax(min(100%,250px),1fr)); }
    .ca-publication-categories { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; padding: 16px 12px; }
    .ca-publication-categories .ca-feature-card > div { padding: 10px; }
    body.boxed .contenidos .ca-publication-categories h2 { font-size: 12px; overflow-wrap: anywhere; }
    .ca-detail-layout { display: flex; flex-wrap: wrap; gap: 16px; padding: 16px; }
    .ca-detail-layout > figure { flex: 1 1 40%; min-width: 0; }
    .ca-detail-main { order: 3; width: 100%; }
    .ca-detail-company { align-self: flex-start; }
    .ca-detail-heading, .ca-congress-reader { padding: 16px; }
    .ca-detail-heading { padding-bottom: 0; }
    .ca-back-navigation { padding-left: 12px; }
}
/* Marcas en los extremos, con una franja compacta de lectura central. */
.ca-catalog-brand { grid-template-columns: minmax(100px,200px) minmax(0,1fr) minmax(100px,200px); gap: 22px; padding: 20px 28px; }
.ca-catalog-brand-logos { display: contents; }
.ca-catalog-brand-intro { grid-column: 2; grid-row: 1; text-align: center; }
.ca-catalog-brand .ca-institution-cruzazul { grid-column: 1; grid-row: 1; }
.ca-catalog-brand .ca-institution-imcyc { grid-column: 3; grid-row: 1; }
.ca-catalog-brand .ca-institution { grid-template-rows: 110px auto; gap: 5px; }
.ca-catalog-brand .ca-institution img { max-height: 110px; }
@media(max-width:767px) {
    .ca-catalog-brand { grid-template-columns: 1fr 1fr; gap: 16px; padding: 20px 16px; }
    .ca-catalog-brand-intro { grid-column: 1 / -1; grid-row: 1; }
    .ca-catalog-brand .ca-institution-cruzazul { grid-column: 1; grid-row: 2; }
    .ca-catalog-brand .ca-institution-imcyc { grid-column: 2; grid-row: 2; }
    .ca-catalog-brand-intro > p { font-size: 19px; }
}
.ca-login-back { display: inline-block; margin: 0 0 14px; padding: 3px 0; color: #14345b; font: 400 12px/1.5 Arial,sans-serif; text-decoration: none; }
.ca-login-back:hover, .ca-login-back:focus { color: #14345b; text-decoration: underline; }
body.ca-catalog-page .col-md-9.contenidos .menu-principal > .row:has(> .col-md-2 > .carta-manuales) { grid-template-columns: repeat(4,minmax(0,220px)); justify-content: center; }
.ca-catalog-heading::after { width: 112px; height: 112px; opacity: .9; }
.ca-detail-copy { text-align: left; }
body.boxed .page-wrapper.contenidos { height: auto !important; }
@media(max-width:767px) {
    body.ca-catalog-page .col-md-9.contenidos .menu-principal > .row:has(> .col-md-2 > .carta-manuales) { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .ca-catalog-heading::after { width: 64px; height: 64px; right: 16px; top: 28px; transform: none; }
    .ca-catalog-heading h1 { max-width: calc(100% - 65px); }
}
/* Tarjetas compactas: las imágenes del catálogo son originales de 211 px. */
body.ca-catalog-page .col-md-9.contenidos .carta-manuales .capucha,
body.ca-catalog-page .col-md-9.contenidos .carta-manuales:hover .capucha { aspect-ratio: 4 / 3; background-size: cover !important; }
body.ca-catalog-page .col-md-9.contenidos .carta-manuales .capucha-txt { min-height: 58px; padding: 12px 10px; }
body.ca-catalog-page .col-md-9.contenidos .carta-manuales .capucha-txt h4 { font-size: 12px; }
.ca-publication-categories .ca-feature-card > div:not(.ca-rotated-cover) { padding: 13px; }
body.boxed .contenidos .ca-publication-categories h2 { font-size: 14px; }
.ca-congress-categories { grid-template-columns: repeat(auto-fit,minmax(min(100%,240px),280px)); justify-content: center; }
.ca-congress-categories .ca-feature-card > img { aspect-ratio: 4 / 3; object-fit: contain; }
.ca-edition-description { margin: 0; color: #526983; font: 400 12px/1.6 Arial,sans-serif; overflow-wrap: anywhere; }
.ca-pay-progress { margin: 12px 0 0; color: #14345b; font-weight: 600; }
.ca-pay-progress[hidden] { display: none; }

/* Los logos y el formulario siguen el flujo del documento en todos los tamaños. */
body.gccentrada .page-wrapper, body.gccentrada .entrada22 {
    background: #fff url('../images/bkg_entrada.jpeg') center / cover no-repeat;
    background-attachment: fixed;
}
body.gccentrada .page-wrapper { min-height: 100svh; padding: clamp(20px,3vw,40px); }
body.gccentrada .ca-login-main { display: flex; flex-direction: column; min-height: calc(100svh - 100px); max-width: 1320px; margin: auto; }
body.gccentrada .page-wrapper .tituloentrada, body.gccentrada .entrada22 .tituloentrada {
    position: static; flex: 0 0 auto; width: clamp(140px,20vw,240px); margin: 0; text-align: left; align-self: flex-start;
}
body.gccentrada .tituloentrada img { display: block; width: 100%; max-width: 100% !important; height: auto; }
body.gccentrada .container.form-card { position: static; flex: 0 0 auto; width: min(100%,360px); max-width: 100%; padding: 0; margin: auto 2vw auto auto; }
body.gccentrada .container.form-card > [class*='col-'] { width: 100%; margin: 0; padding: 0; }
body.gccentrada .container.form-card > [class*='col-'] > img { display: block; max-width: 280px; height: auto; margin: 0 auto 18px !important; }
body.gccentrada .form-card.gcc { margin: 0; padding: 0; }
body.gccentrada .form-card.gcc .form-control { margin-bottom: 10px; }
body.gccentrada .entrada22 { justify-content: flex-start; gap: 24px; padding: clamp(20px,3vw,40px); }
body.gccentrada .entrada22 .btn-entrada-22 { position: static; flex: 0 0 auto; align-self: flex-end; width: min(100%,300px); max-width: 100%; height: auto; margin: auto 2vw auto auto; }
body.gccentrada .entrada22 .btn-entrada-22 img { width: 100%; height: auto; }
body.gccentrada .entrada22 .btn-entrada-22 button { min-height: 48px; padding: 12px; font-size: 16px; }
body.gccentrada .ca-login-privacy { display: block; flex: 0 0 auto; position: static; width: 100%; padding: 16px 0 0; margin-top: auto; color: #111; font: 600 10px/1.5 Arial,sans-serif; text-align: center; }
@media(max-width:767px) {
    body.gccentrada .page-wrapper, body.gccentrada .entrada22 { background-attachment: scroll; background-position: left center; }
    body.gccentrada .page-wrapper .tituloentrada, body.gccentrada .entrada22 .tituloentrada { width: min(180px,55vw); align-self: center; margin: 0 auto 24px; }
    body.gccentrada .container.form-card, body.gccentrada .entrada22 .btn-entrada-22 { align-self: center; margin: auto; }
    body.gccentrada .container.form-card > [class*='col-'] > img { max-width: 230px; }
    body.gccentrada .ca-login-main { gap: 24px; }
}

/* Un solo fondo continuo y la franja institucional al final del documento. */
body.boxed:has(.page-wrapper.contenidos) {
    background: linear-gradient(rgb(0 0 0 / 18%), rgb(0 0 0 / 18%)),
        url('../images/bkg_contenidos.jpg') center / cover no-repeat fixed;
    background-color: var(--ca-navy);
}
body.boxed:has(.page-wrapper.contenidos) #wrapper { background: transparent; }
body.boxed .page-wrapper.contenidos {
    display: flex;
    flex-direction: column;
    min-height: 100svh;
    background: transparent !important;
    padding-bottom: 0 !important;
}
body.boxed .page-wrapper.contenidos > :is(.ca-site-header,.ca-back-navigation) { flex-shrink: 0; }
body.boxed .page-wrapper.contenidos > .container-fluid {
    display: flex;
    flex: 1 0 auto;
    flex-direction: column;
    width: 100%;
    padding-bottom: 0;
}
body.boxed .page-wrapper.contenidos > .container-fluid > .row {
    flex: 1 0 auto;
    margin-bottom: 0;
}
body.boxed .page-wrapper.contenidos > .container-fluid > .row:not(:has(> .barra.menu)) > .col-md-9.contenidos { width: 100%; }
body.boxed .page-wrapper.contenidos .col-md-9.contenidos { height: auto; overflow: visible; }
body.boxed .page-wrapper.contenidos > .container-fluid > .ca-catalog-brand {
    flex-shrink: 0;
    margin: auto 0 0;
    border-radius: 14px 14px 0 0;
}
.ca-catalog-brand .ca-institution img { background: transparent; }
