@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,wght@0,500;0,600;1,500&family=Public+Sans:wght@400;500;600;700&display=swap');

/*
 * Experiencia de curso a ancho completo.
 * Todo queda limitado a cursos que tengan activada la plantilla Campus Renacer.
 */
body.ercampus-course-shell .top_site_main,
body.ercampus-course-shell .page-title-wrapper,
body.ercampus-course-shell .course-thumbnail,
body.ercampus-course-shell .course-cover,
body.ercampus-course-shell .course-featured-image,
body.ercampus-course-shell .course-summary-sidebar,
body.ercampus-course-shell .course-sidebar-preview,
body.ercampus-course-shell .course-sidebar,
body.ercampus-course-shell .course-curriculum,
body.ercampus-course-shell .course-announcements,
body.ercampus-course-shell .course-instructor,
body.ercampus-course-shell .course-reviews,
body.ercampus-course-shell .course-review,
body.ercampus-course-shell .course-students-list,
body.ercampus-course-shell #learn-press-course .course-thumbnail,
body.ercampus-course-shell #learn-press-course .course-cover,
body.ercampus-course-shell #learn-press-course .course-featured-image,
body.ercampus-course-shell #learn-press-course .course-summary-sidebar,
body.ercampus-course-shell #learn-press-course .course-sidebar-preview,
body.ercampus-course-shell #learn-press-course .course-sidebar,
body.ercampus-course-shell #learn-press-course .course-curriculum,
body.ercampus-course-shell #learn-press-course .course-announcements,
body.ercampus-course-shell #learn-press-course .course-instructor,
body.ercampus-course-shell #learn-press-course .course-reviews,
body.ercampus-course-shell #learn-press-course .course-review,
body.ercampus-course-shell #learn-press-course .course-students-list,
body.ercampus-course-shell #learn-press-course .course-extra-box,
body.ercampus-course-shell #learn-press-course .course-info,
body.ercampus-course-shell #learn-press-course .learn-press-course-wishlist,
body.ercampus-course-shell #learn-press-course .course-sharing,
body.ercampus-course-shell .thim-course-menu-landing,
body.ercampus-course-shell .thim-related-course,
body.ercampus-course-shell .related-courses { display: none !important; }

.ercampus-theme-hidden { display: none !important; }

/* Plantilla Single Course de Thim Elementor Kit (clases verificadas en sitio). */
body:has(.ercampus.erc-home) [data-widget_type^="thim-ekits-course-"]:not(:has(.ercampus.erc-home)),
body:has(.ercampus.erc-home) .ekits-content-course-list > .list-section:not(:has(.ercampus.erc-home)),
body:has(.ercampus.erc-home) .list-section:has(.ercampus.erc-home) > .tab-item,
body:has(.ercampus.erc-home) .thim-ekit-single-course__image,
body:has(.ercampus.erc-home) .thim-ekit-single-course__meta,
body:has(.ercampus.erc-home) .thim-ekit-single-course__title,
body:has(.ercampus.erc-home) .thim-ekit-single-course__author,
body:has(.ercampus.erc-home) .thim-ekit-single-course__instructor,
body:has(.ercampus.erc-home) .thim-ekit-single-course__byline,
body:has(.ercampus.erc-home) .thim-ekit-single-course__rating,
body:has(.ercampus.erc-home) .thim-ekit-single-course__price,
body:has(.ercampus.erc-home) .thim-ekit-single-course__wishlist,
body:has(.ercampus.erc-home) .thim-ekit-single-course__share,
body:has(.ercampus.erc-home) [class*="thim-ekit-single-course"][class*="price"],
body:has(.ercampus.erc-home) [class*="thim-ekit-single-course"][class*="wishlist"],
body:has(.ercampus.erc-home) [class*="thim-ekit-single-course"][class*="share"],
body:has(.ercampus.erc-home) [data-widget_type*="course-price"],
body:has(.ercampus.erc-home) [data-widget_type*="course-wishlist"],
body:has(.ercampus.erc-home) [data-widget_type*="course-share"] { display: none !important; }

body:has(.ercampus.erc-home) [data-widget_type*="course-author"],
body:has(.ercampus.erc-home) [data-widget_type*="course-instructor"] { display: none !important; }

body:has(.ercampus.erc-home) [data-widget_type^="thim-ekits-course-"]:has(.ercampus.erc-home),
body:has(.ercampus.erc-home) [data-widget_type^="thim-ekits-course-"]:has(.ercampus.erc-home) > .elementor-widget-container,
body:has(.ercampus.erc-home) .thim-ekit-single-course__tabs,
body:has(.ercampus.erc-home) .ekits-content-course-list,
body:has(.ercampus.erc-home) .list-section:has(.ercampus.erc-home),
body:has(.ercampus.erc-home) [class*="course-tab-panel"]:has(.ercampus.erc-home) {
	display: block !important;
	float: none !important;
	margin: 0 !important;
	max-width: none !important;
	padding: 0 !important;
	width: 100% !important;
}

/* Respaldo moderno: funciona aunque Eduma omita la clase de body de WordPress. */
body:has(.ercampus.erc-home) .course-thumbnail,
body:has(.ercampus.erc-home) .course-cover,
body:has(.ercampus.erc-home) .course-featured-image,
body:has(.ercampus.erc-home) .course-summary-sidebar,
body:has(.ercampus.erc-home) .course-sidebar-preview,
body:has(.ercampus.erc-home) .course-sidebar,
body:has(.ercampus.erc-home) .course-curriculum,
body:has(.ercampus.erc-home) .course-tab-panel-curriculum,
body:has(.ercampus.erc-home) .course-announcements,
body:has(.ercampus.erc-home) .course-tab-panel-announcements,
body:has(.ercampus.erc-home) .course-instructor,
body:has(.ercampus.erc-home) .course-tab-panel-instructor,
body:has(.ercampus.erc-home) .course-reviews,
body:has(.ercampus.erc-home) .course-review,
body:has(.ercampus.erc-home) .course-tab-panel-reviews,
body:has(.ercampus.erc-home) .course-students-list,
body:has(.ercampus.erc-home) .course-tab-panel-students-list,
body:has(.ercampus.erc-home) .course-extra-box,
body:has(.ercampus.erc-home) .course-info,
body:has(.ercampus.erc-home) .course-meta,
body:has(.ercampus.erc-home) .course-author,
body:has(.ercampus.erc-home) .course-rating,
body:has(.ercampus.erc-home) .course-title,
body:has(.ercampus.erc-home) h1.entry-title,
body:has(.ercampus.erc-home) .course-nav-tabs,
body:has(.ercampus.erc-home) .learn-press-nav-tabs,
body:has(.ercampus.erc-home) .learn-press-course-wishlist,
body:has(.ercampus.erc-home) .course-sharing,
body:has(.ercampus.erc-home) .thim-related-course,
body:has(.ercampus.erc-home) .related-courses { display: none !important; }

body.ercampus-shell-ready .ercampus-shell-path {
	box-sizing: border-box !important;
	float: none !important;
	max-width: none !important;
	width: 100% !important;
}

body.ercampus-shell-ready .e-con.ercampus-shell-path,
body.ercampus-shell-ready .elementor-column.ercampus-shell-path,
body.ercampus-shell-ready .elementor-element.ercampus-shell-path {
	--width: 100% !important;
	flex-basis: 100% !important;
	max-width: 100% !important;
	width: 100% !important;
}

/* Recompone la plantilla después de retirar la rama lateral de Eduma. */
body.ercampus-shell-ready .e-con.ercampus-shell-layout,
body.ercampus-shell-ready .elementor-container.ercampus-shell-layout,
body.ercampus-shell-ready .elementor-row.ercampus-shell-layout,
body.ercampus-shell-ready .e-con-inner.ercampus-shell-layout {
	--content-width: 100% !important;
	--width: 100% !important;
	display: block !important;
	grid-template-columns: minmax(0, 1fr) !important;
	max-width: none !important;
	width: 100% !important;
}

body.ercampus-shell-ready .ercampus-shell-layout > .ercampus-shell-path {
	flex: 0 0 100% !important;
	margin-inline: 0 !important;
	max-width: none !important;
	width: 100% !important;
}

body.ercampus-shell-ready #learn-press-course,
body.ercampus-shell-ready #learn-press-course .course-summary,
body.ercampus-shell-ready #learn-press-course .course-landing-summary,
body.ercampus-shell-ready #learn-press-course .course-tabs,
body.ercampus-shell-ready #learn-press-course .course-tab-panels,
body.ercampus-shell-ready #learn-press-course .course-tab-panel-overview,
body.ercampus-shell-ready #learn-press-course .course-description {
	display: block !important;
	float: none !important;
	margin-left: auto !important;
	margin-right: auto !important;
	max-width: none !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	width: 100% !important;
}

body.ercampus-course-shell .site-content,
body.ercampus-course-shell .site-content > .container,
body.ercampus-course-shell #main-content,
body.ercampus-course-shell #main-content > .container,
body.ercampus-course-shell #primary,
body.ercampus-course-shell .content-area,
body.ercampus-course-shell #learn-press-course,
body.ercampus-course-shell #learn-press-course .course-summary,
body.ercampus-course-shell #learn-press-course .course-summary-content,
body.ercampus-course-shell #learn-press-course .course-content,
body.ercampus-course-shell #learn-press-course .course-description {
	box-sizing: border-box !important;
	float: none !important;
	margin-left: auto !important;
	margin-right: auto !important;
	max-width: none !important;
	width: 100% !important;
}

body.ercampus-course-shell .site-content > .container,
body.ercampus-course-shell #main-content > .container { padding-left: 0 !important; padding-right: 0 !important; }
body.ercampus-course-shell #learn-press-course .course-summary,
body.ercampus-course-shell #learn-press-course .course-description { margin-bottom: 0 !important; padding: 0 !important; }
body.ercampus-course-shell #learn-press-course .course-tabs,
body.ercampus-course-shell #learn-press-course .course-nav-tabs { border: 0 !important; margin: 0 !important; }
body.ercampus-course-shell #learn-press-course .course-nav-tabs { display: none !important; }

.ercampus {
	--erc-ink: #382a35;
	--erc-plum: #8e7999;
	--erc-rose: #947e94;
	--erc-rose-soft: #f7edf2;
	--erc-teal: #7c9485;
	--erc-teal-dark: #7c9485;
	--erc-teal-soft: #edf8f7;
	--erc-green: #39745d;
	--erc-paper: #fffdfa;
	--erc-sand: #f5f0e9;
	--erc-line: #e7dfe2;
	--erc-muted: #746a72;
	--erc-shadow: 0 18px 48px rgba(74, 42, 63, .08);
	color: var(--erc-ink);
	font-family: "Public Sans", Arial, sans-serif;
	font-size: 16px;
	line-height: 1.55;
	margin: 0 auto;
	max-width: 1500px;
	padding: 26px clamp(18px, 3vw, 52px) 64px;
	width: 100%;
}

.ercampus *, .ercampus *::before, .ercampus *::after { box-sizing: border-box; }
.ercampus h1, .ercampus h2, .ercampus h3, .ercampus p { margin-top: 0; }
.ercampus h1, .ercampus h2 { font-family: "Fraunces", Georgia, serif; color: var(--erc-plum); font-weight: 600; line-height: 1.12; }
.ercampus a { color: var(--erc-plum); text-decoration: none; }
.ercampus a:hover { color: var(--erc-teal-dark); }
.ercampus img { max-width: 100%; }
.ercampus .erc-icon { width: 22px; height: 22px; flex: 0 0 auto; }
.ercampus :focus-visible { outline: 3px solid rgba(35, 138, 136, .35); outline-offset: 3px; }

.erc-hero {
	background: var(--erc-paper);
	border: 1px solid var(--erc-line);
	border-radius: 24px;
	box-shadow: var(--erc-shadow);
	display: grid;
	grid-template-columns: minmax(0, 1.06fr) minmax(420px, .94fr);
	min-height: 510px;
	overflow: hidden;
}
.erc-hero__content { align-self: center; grid-column: 1; grid-row: 1; max-width: none; padding: 54px clamp(34px, 4.5vw, 68px); position: relative; z-index: 2; }
.erc-hero__media { background-image: var(--erc-hero-image); background-position: center; background-size: cover; grid-column: 2; grid-row: 1; min-height: 510px; }
.erc-hero__logo { display: block; height: auto; margin: 0 0 20px; max-width: 238px !important; object-fit: contain; width: min(238px,70%); }
.erc-eyebrow, .erc-kicker { color: var(--erc-teal-dark); display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.erc-hero h1 { font-size: clamp(38px, 3.7vw, 58px); margin: 12px 0 10px; max-width: 760px; }
.erc-hero__subtitle { color: var(--erc-rose); font-family: "Fraunces", Georgia, serif; font-size: clamp(22px, 2.5vw, 32px); font-style: italic; }
.erc-hero__content > p:not(.erc-hero__subtitle) { font-size: 17px; max-width: 610px; }
.erc-hero__stats { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 28px; }
.erc-hero__stats span { align-items: center; background: rgba(255,255,255,.84); border: 1px solid var(--erc-line); border-radius: 999px; display: flex; gap: 6px; padding: 8px 14px; }
.erc-hero__stats strong { color: var(--erc-teal-dark); }
.erc-course-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.erc-course-actions form { margin: 0 !important; }
.erc-course-actions button,
.erc-course-actions .button,
.erc-course-actions input[type="submit"] { background: linear-gradient(135deg,var(--erc-teal),var(--erc-teal-dark)) !important; border: 0 !important; border-radius: 10px !important; box-shadow: 0 8px 20px rgba(124,148,133,.2); color: #fff !important; font: 700 14px/1 "Public Sans",Arial,sans-serif !important; min-height: 46px; padding: 13px 22px !important; text-transform: none !important; }
.erc-course-actions button:hover,
.erc-course-actions .button:hover,
.erc-course-actions input[type="submit"]:hover { filter: brightness(.94); transform: translateY(-1px); }

.erc-quick-nav { background: #fff; border: 1px solid var(--erc-line); border-radius: 16px; box-shadow: 0 10px 28px rgba(55,32,47,.06); display: grid; grid-template-columns: repeat(6, 1fr); margin: 22px 0 34px; overflow: hidden; position: sticky; top: 10px; z-index: 20; }
.erc-quick-nav a { align-items: center; border-right: 1px solid var(--erc-line); display: flex; gap: 9px; justify-content: center; min-height: 58px; padding: 11px; }
.erc-quick-nav a:last-child { border-right: 0; }
.erc-quick-nav a:hover { background: var(--erc-teal-soft); }

.erc-overview { display: grid; gap: 24px; grid-template-columns: minmax(280px,.72fr) minmax(500px,1.28fr); margin-bottom: 42px; }
.erc-progress-card, .erc-documents, .erc-welcome-video, .erc-notes, .erc-resource-section { background: #fff; border: 1px solid var(--erc-line); border-radius: 18px; padding: 28px; }
.erc-section-heading { align-items: flex-end; display: flex; gap: 20px; justify-content: space-between; margin-bottom: 18px; }
.erc-section-heading h2 { font-size: 28px; margin: 3px 0 0; }
.erc-section-heading > span { color: var(--erc-muted); font-size: 14px; }
.erc-progress-card .erc-section-heading > strong { color: var(--erc-teal-dark); font: 600 34px/1 "Fraunces", Georgia, serif; }
.erc-progress { background: var(--erc-sand); border-radius: 99px; height: 9px; overflow: hidden; }
.erc-progress span { background: linear-gradient(90deg,var(--erc-teal),var(--erc-rose)); border-radius: inherit; display: block; height: 100%; }
.erc-progress-card p { color: var(--erc-muted); font-size: 14px; margin: 12px 0 0; }
.erc-documents h2 { font-size: 28px; margin-bottom: 18px; }
.erc-document-grid { display: grid; gap: 12px; }
.erc-document { align-items: center; background: var(--erc-paper); border: 1px solid var(--erc-line); border-radius: 12px; display: grid; gap: 12px; grid-template-columns: auto 1fr auto; min-height: 74px; padding: 13px 16px; }
.erc-document > .erc-icon:first-child { color: var(--erc-rose); height: 30px; width: 30px; }
.erc-document span { display: flex; flex-direction: column; }
.erc-document small { color: var(--erc-muted); }
.erc-document--disabled { opacity: .6; }

.erc-facts { background: linear-gradient(120deg,#fff,var(--erc-teal-soft)); border: 1px solid rgba(124,148,133,.2); border-radius: 18px; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); margin: -16px 0 42px; overflow: hidden; }
.erc-facts article { align-items: center; display: flex; gap: 12px; min-height: 94px; padding: 18px; }
.erc-facts article + article { border-left: 1px solid rgba(124,148,133,.16); }
.erc-facts .erc-icon { color: var(--erc-teal-dark); height: 27px; width: 27px; }
.erc-facts span { display: flex; flex-direction: column; min-width: 0; }
.erc-facts small { color: var(--erc-muted); font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.erc-facts strong { color: var(--erc-ink); font-size: 13px; line-height: 1.35; margin-top: 3px; }

.erc-welcome-video { margin-bottom: 42px; }
.erc-video { background: #211922; border-radius: 16px; box-shadow: 0 12px 34px rgba(39,26,36,.18); overflow: hidden; position: relative; }
.erc-video::before { content: ""; display: block; padding-top: 56.25%; }
.erc-video iframe { border: 0; height: 100%; inset: 0; position: absolute; width: 100%; }

.erc-next { align-items: center; background: linear-gradient(120deg,var(--erc-teal-soft),#fff); border: 1px solid rgba(124,148,133,.25); border-radius: 18px; display: grid; gap: 24px; grid-template-columns: 180px 1fr minmax(180px,auto); margin-bottom: 42px; padding: 24px; }
.erc-next__date { align-items: center; border-right: 1px solid var(--erc-line); display: flex; flex-direction: column; text-align: center; }
.erc-next__date .erc-icon { color: var(--erc-teal); }
.erc-next__date span { font-size: 13px; margin-top: 6px; }
.erc-next__date strong { font-size: 20px; }
.erc-next h2 { font-size: 26px; margin: 7px 0 10px; }
.erc-next__actions { display: grid; gap: 9px; }

.erc-program-map { margin-bottom: 42px; }
.erc-program-map__grid { display: grid; gap: 16px; grid-template-columns: repeat(4,minmax(0,1fr)); }
.erc-program-map__card { background: #fff; border: 1px solid var(--erc-line); border-radius: 16px; box-shadow: 0 10px 26px rgba(74,42,63,.055); color: var(--erc-ink) !important; display: flex; flex-direction: column; min-height: 268px; overflow: hidden; transition: transform .18s ease, box-shadow .18s ease; }
.erc-program-map__card:hover { box-shadow: var(--erc-shadow); transform: translateY(-3px); }
.erc-program-map__image { background-color: var(--erc-sand); background-position: center; background-size: cover; display: block; height: 138px; position: relative; }
.erc-program-map__image::after { background: linear-gradient(180deg,transparent,rgba(56,42,53,.16)); content: ""; inset: 0; position: absolute; }
.erc-program-map__body { display: flex; flex: 1; flex-direction: column; padding: 17px 18px 18px; }
.erc-program-map__body small { color: var(--erc-teal-dark); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.erc-program-map__body strong { color: var(--erc-plum); font: 600 18px/1.25 "Fraunces",Georgia,serif; margin-top: 5px; }
.erc-program-map__body em { color: var(--erc-muted); font-size: 12px; font-style: normal; margin-top: auto; padding-top: 12px; }

.erc-modules { margin-bottom: 42px; scroll-margin-top: 82px; }
.erc-module { background: #fff; border: 1px solid var(--erc-line); border-radius: 16px; margin-bottom: 14px; overflow: hidden; }
.erc-module[open] { box-shadow: var(--erc-shadow); }
.erc-module summary { align-items: center; cursor: pointer; display: grid; gap: 18px; grid-template-columns: 128px 60px 1fr auto 22px; list-style: none; min-height: 126px; padding: 18px 26px 18px 18px; }
.erc-module summary::-webkit-details-marker { display: none; }
.erc-module__image { align-self: stretch; background-color: var(--erc-sand); background-position: center; background-size: cover; border-radius: 11px; min-height: 88px; overflow: hidden; }
.erc-module__number { align-items: center; background: var(--erc-teal-soft); border-radius: 12px; color: var(--erc-teal-dark); display: flex; font: 600 20px/1 "Fraunces",Georgia,serif; height: 54px; justify-content: center; }
.erc-module__title { display: flex; flex-direction: column; }
.erc-module__title strong { color: var(--erc-plum); font: 600 22px/1.25 "Fraunces",Georgia,serif; }
.erc-module__title small { color: var(--erc-muted); margin-top: 5px; }
.erc-module__count { background: var(--erc-rose-soft); border-radius: 99px; color: var(--erc-plum); font-size: 12px; padding: 6px 10px; }
.erc-module__chevron { border-bottom: 2px solid currentColor; border-right: 2px solid currentColor; height: 9px; transform: rotate(45deg); transition: transform .2s; width: 9px; }
.erc-module[open] .erc-module__chevron { transform: rotate(225deg); }
.erc-module__content { border-top: 1px solid var(--erc-line); }
.erc-class-row { align-items: center; display: grid; gap: 16px; grid-template-columns: 48px 1fr 160px minmax(150px,auto); padding: 18px 24px; }
.erc-class-row + .erc-class-row { border-top: 1px solid var(--erc-line); }
.erc-class-row:hover { background: #fffcfd; }
.erc-class-row__number { color: #b8adb4; font: 500 20px/1 "Fraunces",Georgia,serif; }
.erc-class-row h3 { font-size: 17px; margin: 6px 0 8px; }
.erc-class-row__date { color: var(--erc-muted); display: grid; font-size: 12px; gap: 6px; }
.erc-class-row__date span { align-items: center; display: flex; gap: 6px; }
.erc-class-row__date .erc-icon { height: 16px; width: 16px; }
.erc-class-row__actions { display: grid; gap: 6px; }

.erc-status { background: var(--erc-sand); border-radius: 99px; color: var(--erc-muted); display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: .03em; padding: 5px 9px; text-transform: uppercase; }
.erc-status--upcoming, .erc-status--live { background: var(--erc-teal-soft); color: var(--erc-teal-dark); }
.erc-status--recorded, .erc-status--material { background: #eef6f1; color: var(--erc-green); }
.erc-status--preparing { background: #fff5df; color: #87661e; }
.erc-status--locked { background: #f2eff1; color: #827780; }

.erc-button { align-items: center; border: 1px solid transparent; border-radius: 9px; display: inline-flex; font-size: 13px; font-weight: 700; gap: 8px; justify-content: center; min-height: 42px; padding: 9px 15px; text-align: center; }
.erc-button .erc-icon { height: 18px; width: 18px; }
.erc-button--primary { background: var(--erc-teal); color: #fff !important; }
.erc-button--primary:hover { background: var(--erc-teal-dark); }
.erc-button--secondary { background: #fff; border-color: var(--erc-rose); color: var(--erc-plum) !important; }
.erc-button--success { background: #fff; border-color: #7caa93; color: var(--erc-green) !important; }
.erc-button--disabled { background: #f4f1f3; color: #9b9298; cursor: not-allowed; }

.erc-teacher { align-items: center; display: flex; gap: 9px; }
.erc-teacher img, .erc-avatar { align-items: center; background: var(--erc-rose-soft); border-radius: 50%; color: var(--erc-plum); display: flex; flex: 0 0 auto; font-size: 11px; height: 34px; justify-content: center; object-fit: cover; width: 34px; }
.erc-teacher span:last-child { display: flex; flex-direction: column; }
.erc-teacher strong { font-size: 13px; }
.erc-teacher small { color: var(--erc-muted); font-size: 11px; }
.erc-teacher--large img, .erc-teacher--large .erc-avatar { height: 54px; width: 54px; }
.erc-teacher--large strong { font-size: 15px; }

.erc-feature-grid { display: grid; gap: 16px; grid-template-columns: repeat(3,1fr); margin-bottom: 24px; scroll-margin-top: 82px; }
.erc-feature, .erc-support-card { background: #fff; border: 1px solid var(--erc-line); border-radius: 16px; display: flex; gap: 16px; padding: 24px; }
.erc-feature > .erc-icon, .erc-support-card > .erc-icon { background: var(--erc-rose-soft); border-radius: 12px; color: var(--erc-rose); height: 48px; padding: 11px; width: 48px; }
.erc-feature h2, .erc-support-card h2 { font-size: 22px; margin-bottom: 8px; }
.erc-feature p, .erc-support-card p { color: var(--erc-muted); font-size: 13px; }
.erc-feature a, .erc-support-card a { align-items: center; display: inline-flex; font-size: 13px; font-weight: 700; gap: 6px; }
.erc-feature a .erc-icon, .erc-support-card a .erc-icon { height: 16px; width: 16px; }
.erc-muted-action { align-items: center; color: var(--erc-muted); display: inline-flex; font-size: 12px; gap: 6px; }
.erc-muted-action .erc-icon { height: 16px; width: 16px; }
.erc-support-grid { display: grid; gap: 16px; grid-template-columns: repeat(4,1fr); margin-bottom: 24px; scroll-margin-top: 82px; }
.erc-support-card > .erc-icon { background: var(--erc-teal-soft); color: var(--erc-teal); }
.erc-recording-notice, .erc-info-banner { align-items: center; background: var(--erc-teal-soft); border: 1px solid rgba(124,148,133,.16); border-radius: 13px; display: flex; gap: 12px; padding: 16px 20px; }
.erc-recording-notice p, .erc-info-banner p { font-size: 13px; margin: 0; }
.erc-recording-notice .erc-icon, .erc-info-banner .erc-icon { color: var(--erc-teal-dark); }

/* Lección */
.erc-lesson-header { align-items: start; background: #fff; border: 1px solid var(--erc-line); border-radius: 20px; display: grid; gap: 30px; grid-template-columns: 1fr 290px; margin-bottom: 18px; padding: 34px; }
.erc-back { display: inline-block; font-size: 13px; font-weight: 700; margin-bottom: 22px; }
.erc-lesson-meta { display: flex; flex-wrap: wrap; gap: 18px; }
.erc-lesson-meta span { align-items: center; color: var(--erc-muted); display: flex; font-size: 13px; gap: 7px; }
.erc-lesson-meta .erc-icon { color: var(--erc-teal); height: 17px; width: 17px; }
.erc-lesson-header h1 { font-size: clamp(34px,4vw,52px); margin: 13px 0 20px; }
.erc-lesson-header__status { background: var(--erc-paper); border: 1px solid var(--erc-line); border-radius: 14px; display: grid; gap: 12px; padding: 18px; }
.erc-info-banner { margin-bottom: 18px; }
.erc-info-banner--success { background: #eff7f2; border-color: #c8e0d2; }
.erc-lesson-layout { display: grid; gap: 20px; grid-template-columns: minmax(0,1fr) 270px; margin-bottom: 26px; }
.erc-lesson-main, .erc-lesson-aside { background: #fff; border: 1px solid var(--erc-line); border-radius: 18px; padding: 20px; }
.erc-rich-text { color: #51464e; padding: 24px 8px 4px; }
.erc-rich-text h2 { font-size: 26px; }
.erc-rich-text p:last-child { margin-bottom: 0; }
.erc-lesson-aside { height: fit-content; padding: 24px; position: sticky; top: 88px; }
.erc-lesson-aside h2 { font-size: 22px; }
.erc-lesson-aside > p { align-items: center; border-top: 1px solid var(--erc-line); display: flex; gap: 12px; margin: 0; padding: 16px 0; }
.erc-lesson-aside > p .erc-icon { color: var(--erc-rose); }
.erc-lesson-aside > p span { display: flex; flex-direction: column; }
.erc-lesson-aside small { color: var(--erc-muted); }
.erc-cover, .erc-video-placeholder { border-radius: 14px; min-height: 340px; object-fit: cover; width: 100%; }
.erc-video-placeholder { align-items: center; background: linear-gradient(135deg,var(--erc-sand),var(--erc-rose-soft)); color: var(--erc-muted); display: flex; flex-direction: column; justify-content: center; padding: 30px; text-align: center; }
.erc-video-placeholder .erc-icon { color: var(--erc-rose); height: 54px; width: 54px; }
.erc-resource-section, .erc-bibliography, .erc-notes, .erc-questions { margin-bottom: 20px; }
.erc-resource-list { display: grid; gap: 10px; }
.erc-resource-list a { align-items: center; background: var(--erc-paper); border: 1px solid var(--erc-line); border-radius: 12px; display: grid; gap: 12px; grid-template-columns: auto 1fr auto; padding: 14px 16px; }
.erc-resource-list a span { display: flex; flex-direction: column; }
.erc-resource-list small { color: var(--erc-muted); }
.erc-bibliography, .erc-questions { background: #fff; border: 1px solid var(--erc-line); border-radius: 18px; display: flex; gap: 18px; padding: 26px; }
.erc-bibliography > .erc-icon, .erc-questions > .erc-icon { color: var(--erc-rose); height: 36px; width: 36px; }
.erc-bibliography h2, .erc-questions h2 { font-size: 24px; }
.erc-bibliography li { margin-bottom: 5px; }
.erc-notes textarea { border: 1px solid var(--erc-line); border-radius: 10px; font: inherit; margin-bottom: 12px; min-height: 140px; padding: 14px; resize: vertical; width: 100%; }
.erc-note-status { color: var(--erc-green) !important; }
.erc-questions { align-items: start; }

/* Foro académico bbPress - estándar visual para todos los cursos. */
body.ercampus-forum-shell {
	--erc-forum-ink: #262126;
	--erc-forum-plum: #67254b;
	--erc-forum-rose: #947e94;
	--erc-forum-teal: #3f7f78;
	--erc-forum-teal-dark: #275f59;
	--erc-forum-paper: #faf8f5;
	--erc-forum-line: #e7dfdf;
	background: var(--erc-forum-paper);
}

body.ercampus-forum-shell .top_site_main {
	align-items: flex-end;
	background-color: #35242e !important;
	background-image: linear-gradient(90deg,rgba(37,22,31,.93) 0%,rgba(63,38,50,.78) 44%,rgba(30,49,46,.34) 100%),url('../images/forum-community.jpg') !important;
	background-position: center 48% !important;
	background-repeat: no-repeat !important;
	background-size: cover !important;
	box-sizing: border-box;
	display: flex;
	min-height: 330px;
	padding: 54px max(24px,calc((100vw - 1180px)/2)) 48px !important;
	position: relative;
}

body.ercampus-forum-shell .top_site_main::after {
	background: linear-gradient(180deg,transparent,rgba(22,18,20,.22));
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
}

body.ercampus-forum-shell .top_site_main .page-title-wrapper,
body.ercampus-forum-shell .top_site_main .page-title,
body.ercampus-forum-shell .top_site_main .banner-wrapper {
	box-sizing: border-box;
	margin: 0 !important;
	max-width: 820px;
	padding: 0 !important;
	position: relative;
	text-align: left !important;
	z-index: 1;
}

body.ercampus-forum-shell .top_site_main h1,
body.ercampus-forum-shell .top_site_main .page-title {
	color: #fff !important;
	font: 600 clamp(36px,4.4vw,62px)/1.06 "Fraunces",Georgia,serif !important;
	letter-spacing: -.025em;
	margin: 0 !important;
	text-shadow: 0 3px 20px rgba(0,0,0,.2);
}

body.ercampus-forum-shell .breadcrumbs-wrapper,
body.ercampus-forum-shell .breadcrumbs,
body.ercampus-forum-shell #breadcrumbs {
	background: #fff !important;
	border-bottom: 1px solid var(--erc-forum-line);
	color: #756b72;
	font-size: 13px;
	margin: 0 !important;
	padding: 14px max(24px,calc((100vw - 1180px)/2)) !important;
}

body.ercampus-forum-shell .site-content,
body.ercampus-forum-shell #main-content,
body.ercampus-forum-shell .content-area,
body.ercampus-forum-shell .site-main {
	background-color: var(--erc-forum-paper) !important;
	background-image: none !important;
}

body.ercampus-forum-shell .site-content,
body.ercampus-forum-shell #main-content {
	padding-bottom: 70px;
	padding-top: 46px;
}

body.ercampus-forum-shell .site-content > .container,
body.ercampus-forum-shell #main-content > .container,
body.ercampus-forum-shell #primary,
body.ercampus-forum-shell .content-area {
	box-sizing: border-box;
	float: none !important;
	margin-left: auto !important;
	margin-right: auto !important;
	max-width: 1240px !important;
	width: 100% !important;
}

body.ercampus-forum-shell #secondary,
body.ercampus-forum-shell .widget-area { display: none !important; }

body.ercampus-forum-shell article.type-forum,
body.ercampus-forum-shell article.type-topic,
body.ercampus-forum-shell .entry-content,
body.ercampus-forum-shell #bbpress-forums,
body.ercampus-forum-shell #bbpress-forums [class*="bbp-"] {
	background-image: none !important;
}

body.ercampus-forum-shell #bbpress-forums {
	color: var(--erc-forum-ink);
	font: 400 16px/1.65 "Public Sans",Arial,sans-serif;
	margin: 0;
}

body.ercampus-forum-shell #bbpress-forums a { color: var(--erc-forum-teal-dark); }
body.ercampus-forum-shell #bbpress-forums a:hover { color: var(--erc-forum-rose); }

.erc-forum-welcome {
	align-items: center;
	background: linear-gradient(128deg,#fff 0%,#f4f9f8 100%);
	border: 1px solid rgba(63,127,120,.22);
	border-radius: 22px;
	box-shadow: 0 18px 48px rgba(54,39,48,.07);
	display: grid;
	gap: 34px;
	grid-template-columns: minmax(0,1.2fr) minmax(320px,.8fr);
	margin: 0 0 28px;
	padding: 34px;
}

.erc-forum-welcome__copy > span {
	color: var(--erc-forum-teal-dark);
	display: block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .1em;
	margin-bottom: 7px;
	text-transform: uppercase;
}

.erc-forum-welcome h2 {
	color: var(--erc-forum-plum);
	font: 600 clamp(28px,3vw,40px)/1.12 "Fraunces",Georgia,serif;
	margin: 0 0 12px;
}

.erc-forum-welcome p { color: #665c63; margin: 0; max-width: 720px; }
.erc-forum-welcome__options { display: grid; gap: 10px; grid-template-columns: 1fr 1fr; }
.erc-forum-welcome__options span {
	align-items: center;
	background: #fff;
	border: 1px solid var(--erc-forum-line);
	border-radius: 12px;
	color: #544951;
	display: flex;
	font-size: 13px;
	font-weight: 600;
	gap: 9px;
	min-height: 50px;
	padding: 10px 13px;
}
.erc-forum-welcome__options span::before {
	background: var(--erc-forum-teal);
	border-radius: 50%;
	box-shadow: 0 0 0 4px rgba(63,127,120,.12);
	content: "";
	flex: 0 0 7px;
	height: 7px;
	width: 7px;
}

/* Mantiene la suscripción dentro del ancho del foro y como una acción clara. */
body.ercampus-forum-shell #subscription-toggle,
body.ercampus-forum-shell .bbp-forum-subscription-link {
	align-items: center;
	box-sizing: border-box;
	clear: both;
	display: flex !important;
	float: none !important;
	justify-content: flex-end;
	margin: 14px 0 22px !important;
	max-width: 100%;
	min-height: 42px;
	padding: 0 2px !important;
	position: static !important;
	text-align: right;
	width: 100%;
}

body.ercampus-forum-shell #subscription-toggle a,
body.ercampus-forum-shell a.subscription-toggle,
body.ercampus-forum-shell .bbp-forum-subscription-link a {
	align-items: center;
	background: #fff !important;
	border: 1px solid rgba(63,127,120,.34) !important;
	border-radius: 999px;
	box-shadow: 0 7px 18px rgba(38,33,38,.07);
	color: var(--erc-forum-teal-dark) !important;
	display: inline-flex !important;
	font: 700 13px/1.2 "Public Sans",Arial,sans-serif !important;
	justify-content: center;
	min-height: 40px;
	padding: 9px 17px !important;
	text-decoration: none !important;
	transition: background-color .2s ease,border-color .2s ease,color .2s ease,transform .2s ease;
}

body.ercampus-forum-shell #subscription-toggle a::before,
body.ercampus-forum-shell a.subscription-toggle::before,
body.ercampus-forum-shell .bbp-forum-subscription-link a::before {
	content: "\2709";
	font-size: 15px;
	margin-right: 8px;
}

body.ercampus-forum-shell #subscription-toggle a:hover,
body.ercampus-forum-shell a.subscription-toggle:hover,
body.ercampus-forum-shell .bbp-forum-subscription-link a:hover {
	background: var(--erc-forum-teal) !important;
	border-color: var(--erc-forum-teal) !important;
	color: #fff !important;
	transform: translateY(-1px);
}

body.ercampus-forum-shell #bbpress-forums .bbp-template-notice,
body.ercampus-forum-shell #bbpress-forums div.bbp-template-notice {
	background: #eef7f6 !important;
	border: 1px solid rgba(63,127,120,.24) !important;
	border-radius: 12px;
	color: #315d58;
	margin: 12px 0 !important;
	padding: 13px 16px !important;
}

body.ercampus-forum-shell #bbpress-forums .bbp-template-notice p { color: inherit; margin: 0 !important; }

body.ercampus-forum-shell #bbpress-forums ul.bbp-forums,
body.ercampus-forum-shell #bbpress-forums ul.bbp-topics,
body.ercampus-forum-shell #bbpress-forums ul.bbp-replies {
	background: #fff !important;
	border: 1px solid var(--erc-forum-line) !important;
	border-radius: 18px;
	box-shadow: 0 12px 32px rgba(54,39,48,.055);
	overflow: hidden;
}

body.ercampus-forum-shell #bbpress-forums li.bbp-header,
body.ercampus-forum-shell #bbpress-forums li.bbp-footer {
	background: #f4f9f8 !important;
	border: 0 !important;
	color: var(--erc-forum-plum);
	font-weight: 700;
	padding: 15px 18px;
}

body.ercampus-forum-shell #bbpress-forums li.bbp-body ul.forum,
body.ercampus-forum-shell #bbpress-forums li.bbp-body ul.topic,
body.ercampus-forum-shell #bbpress-forums .bbp-reply-header,
body.ercampus-forum-shell #bbpress-forums .bbp-reply-content {
	background: #fff !important;
	border-color: var(--erc-forum-line) !important;
	padding: 16px 18px;
}

body.ercampus-forum-shell #bbpress-forums form,
body.ercampus-forum-shell #bbpress-forums .bbp-topic-form,
body.ercampus-forum-shell #bbpress-forums .bbp-reply-form {
	background: #fff !important;
	background-image: none !important;
	border: 1px solid var(--erc-forum-line);
	border-radius: 20px;
	box-shadow: 0 16px 44px rgba(54,39,48,.065);
	margin-top: 28px;
	padding: 30px;
}

body.ercampus-forum-shell #bbpress-forums fieldset.bbp-form {
	background: transparent !important;
	border: 0 !important;
	margin: 0;
	padding: 0;
}

body.ercampus-forum-shell #bbpress-forums fieldset.bbp-form > legend {
	color: var(--erc-forum-plum);
	float: left;
	font: 600 clamp(25px,2.6vw,34px)/1.2 "Fraunces",Georgia,serif;
	margin: 0 0 22px;
	padding: 0;
	width: 100%;
}

body.ercampus-forum-shell #bbpress-forums label {
	color: #4e444b;
	display: inline-block;
	font-size: 13px;
	font-weight: 700;
	margin-bottom: 7px;
}

body.ercampus-forum-shell #bbpress-forums input[type="text"],
body.ercampus-forum-shell #bbpress-forums input[type="email"],
body.ercampus-forum-shell #bbpress-forums select,
body.ercampus-forum-shell #bbpress-forums textarea {
	background: #fff !important;
	border: 1px solid #d9d0d4 !important;
	border-radius: 10px !important;
	box-shadow: none !important;
	box-sizing: border-box;
	color: var(--erc-forum-ink);
	font: inherit;
	min-height: 46px;
	padding: 11px 13px !important;
}

body.ercampus-forum-shell #bbpress-forums #bbp_topic_title,
body.ercampus-forum-shell #bbpress-forums #bbp_topic_tags,
body.ercampus-forum-shell #bbpress-forums .wp-editor-wrap { width: 100% !important; }

body.ercampus-forum-shell #bbpress-forums .wp-editor-container {
	border: 1px solid #d9d0d4 !important;
	border-radius: 12px;
	overflow: hidden;
}

body.ercampus-forum-shell #bbpress-forums .quicktags-toolbar { background: #f6f3f4 !important; border: 0 !important; padding: 8px !important; }
body.ercampus-forum-shell #bbpress-forums .bbp-submit-wrapper { float: none; margin-top: 22px; text-align: right; }
body.ercampus-forum-shell #bbpress-forums button[type="submit"],
body.ercampus-forum-shell #bbpress-forums .button.submit {
	background: var(--erc-forum-teal) !important;
	border: 0 !important;
	border-radius: 10px !important;
	box-shadow: none !important;
	color: #fff !important;
	cursor: pointer;
	font-size: 14px;
	font-weight: 700;
	min-height: 46px;
	padding: 11px 22px !important;
}
body.ercampus-forum-shell #bbpress-forums button[type="submit"]:hover,
body.ercampus-forum-shell #bbpress-forums .button.submit:hover { background: var(--erc-forum-teal-dark) !important; }

@media (max-width: 820px) {
	body.ercampus-forum-shell .top_site_main { min-height: 270px; padding: 38px 24px !important; }
	body.ercampus-forum-shell .site-content,
	body.ercampus-forum-shell #main-content { padding: 28px 16px 52px; }
	.erc-forum-welcome { grid-template-columns: 1fr; padding: 26px; }
	body.ercampus-forum-shell #bbpress-forums form,
	body.ercampus-forum-shell #bbpress-forums .bbp-topic-form,
	body.ercampus-forum-shell #bbpress-forums .bbp-reply-form { padding: 22px; }
}

@media (max-width: 560px) {
	body.ercampus-forum-shell .top_site_main { min-height: 235px; }
	body.ercampus-forum-shell .top_site_main h1,
	body.ercampus-forum-shell .top_site_main .page-title { font-size: 34px !important; }
	.erc-forum-welcome { border-radius: 16px; padding: 21px; }
	.erc-forum-welcome__options { grid-template-columns: 1fr; }
	body.ercampus-forum-shell #bbpress-forums form,
	body.ercampus-forum-shell #bbpress-forums .bbp-topic-form,
	body.ercampus-forum-shell #bbpress-forums .bbp-reply-form { border-radius: 16px; padding: 18px; }
	body.ercampus-forum-shell #subscription-toggle,
	body.ercampus-forum-shell .bbp-forum-subscription-link {
		justify-content: flex-start;
		margin: 12px 0 20px !important;
		padding: 0 !important;
		text-align: left;
	}
	body.ercampus-forum-shell #subscription-toggle a,
	body.ercampus-forum-shell a.subscription-toggle,
	body.ercampus-forum-shell .bbp-forum-subscription-link a {
		max-width: 100%;
		white-space: normal;
	}
}

@media (max-width: 1100px) {
	.erc-hero { grid-template-columns: 1fr 1fr; }
	.erc-overview { grid-template-columns: 1fr; }
	.erc-class-row { grid-template-columns: 42px 1fr 145px; }
	.erc-class-row__actions { grid-column: 2 / -1; grid-template-columns: repeat(2,minmax(150px,220px)); }
	.erc-feature-grid, .erc-support-grid { grid-template-columns: 1fr 1fr; }
	.erc-feature-grid article:last-child { grid-column: 1 / -1; }
	.erc-facts { grid-template-columns: repeat(3,1fr); }
	.erc-facts article + article { border-left: 0; }
	.erc-facts article:not(:nth-child(3n+1)) { border-left: 1px solid rgba(124,148,133,.16); }
	.erc-facts article:nth-child(n+4) { border-top: 1px solid rgba(124,148,133,.16); }
	.erc-module summary { grid-template-columns: 112px 54px 1fr auto 20px; }
	.erc-program-map__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 820px) {
	.ercampus { padding-inline: 12px; }
	.erc-hero { display: flex; flex-direction: column; min-height: 0; }
	.erc-hero__media { min-height: 320px; order: 1; width: 100%; }
	.erc-hero__content { background: var(--erc-paper); max-width: none; order: 2; padding: 34px 26px; }
	.erc-hero h1 { font-size: 40px; }
	.erc-quick-nav { grid-template-columns: repeat(6,minmax(80px,1fr)); overflow-x: auto; position: static; }
	.erc-quick-nav a { flex-direction: column; font-size: 11px; min-width: 82px; }
	.erc-next { grid-template-columns: 125px 1fr; }
	.erc-next__actions { grid-column: 1 / -1; grid-template-columns: repeat(2,1fr); }
	.erc-module summary { grid-template-columns: 86px 50px 1fr 20px; padding: 14px; }
	.erc-module__image { min-height: 74px; }
	.erc-module__count { display: none; }
	.erc-class-row { grid-template-columns: 36px 1fr; padding: 17px; }
	.erc-class-row__date, .erc-class-row__actions { grid-column: 2; }
	.erc-class-row__date { display: flex; flex-wrap: wrap; }
	.erc-lesson-header { grid-template-columns: 1fr; padding: 24px; }
	.erc-lesson-header__status { grid-template-columns: 1fr 1fr; }
	.erc-lesson-layout { grid-template-columns: 1fr; }
	.erc-lesson-aside { position: static; }
}

@media (max-width: 560px) {
	.ercampus { font-size: 15px; padding-bottom: 36px; }
	.erc-hero__media { min-height: 230px; }
	.erc-hero h1 { font-size: 34px; }
	.erc-hero__stats { align-items: stretch; flex-direction: column; }
	.erc-overview, .erc-welcome-video, .erc-next, .erc-program-map, .erc-modules { margin-bottom: 28px; }
	.erc-progress-card, .erc-documents, .erc-welcome-video, .erc-resource-section, .erc-notes { padding: 20px; }
	.erc-next { grid-template-columns: 1fr; }
	.erc-next__date { border-bottom: 1px solid var(--erc-line); border-right: 0; padding-bottom: 14px; }
	.erc-next__actions, .erc-class-row__actions { display: grid; grid-template-columns: 1fr; }
	.erc-facts { grid-template-columns: 1fr; margin-bottom: 28px; }
	.erc-facts article { min-height: 76px; }
	.erc-facts article + article,
	.erc-facts article:not(:nth-child(3n+1)),
	.erc-facts article:nth-child(n+4) { border-left: 0; border-top: 1px solid rgba(124,148,133,.16); }
	.erc-module summary { grid-template-columns: 46px 1fr 18px; gap: 10px; }
	.erc-module__image { display: none; }
	.erc-module__title strong { font-size: 18px; }
	.erc-module__title small { display: none; }
	.erc-feature-grid, .erc-support-grid { grid-template-columns: 1fr; }
	.erc-feature-grid article:last-child, .erc-support-grid article:last-child { grid-column: auto; }
	.erc-program-map__grid { grid-template-columns: 1fr; }
	.erc-program-map__card { display: grid; grid-template-columns: 116px 1fr; min-height: 140px; }
	.erc-program-map__image { height: 100%; min-height: 140px; }
	.erc-feature, .erc-support-card, .erc-bibliography, .erc-questions { padding: 20px; }
	.erc-lesson-header h1 { font-size: 34px; }
	.erc-lesson-header__status { grid-template-columns: 1fr; }
	.erc-section-heading { align-items: start; flex-direction: column; gap: 6px; }
}

@media (prefers-reduced-motion: reduce) {
	.ercampus *, .ercampus *::before, .ercampus *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
