/* WordPress menu structure adapts to the approved design styles. */
.main-nav .primary-menu {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: clamp(12px, 1.55vw, 29px);
	margin: 0;
	padding: 0;
	list-style: none;
}
.main-nav .primary-menu .menu-item { margin: 0; padding: 0; }
.main-nav .primary-menu .menu-item a {
	display: inline-block;
	font-size: 14px;
	font-weight: 800;
}
.main-nav .primary-menu .menu-item a:hover {
	text-decoration: underline;
	text-underline-offset: 4px;
}
.site-header .custom-logo-link { display: flex; align-items: center; }
.site-header .custom-logo { display: block; width: auto; max-width: min(190px, 28vw); max-height: 54px; }
.footer-group .footer-menu { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; list-style: none; }
.footer-group .footer-menu li { margin: 0; }
.footer-group .footer-menu a { font-size: 13px; }
.course-art { isolation: isolate; }
.course-thumb {
	position: absolute;
	z-index: -1;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: .48;
}
.course-art.has-image::after {
	position: absolute;
	z-index: -1;
	inset: 0;
	content: "";
	background: linear-gradient(135deg, transparent 5%, rgba(16,16,15,.28) 100%);
}
.course-symbol {
	position: relative;
	z-index: 1;
	color: var(--white);
	font-family: var(--pixel);
	font-size: 42px;
	line-height: 1.1;
	text-shadow: 4px 4px 0 var(--black);
	transform: rotate(-7deg);
}
.art-science .course-symbol { font-family: Arial, sans-serif; font-size: 100px; }
.art-words .course-symbol span { color: var(--yellow); }
.teacher-row { grid-template-columns: 42px 1fr 38px; }
.teacher-avatar {
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	border: 2px solid var(--black);
	border-radius: 50%;
	background: var(--yellow);
	font-family: var(--pixel);
	font-size: 15px;
}
.content-page { min-height: 55vh; padding: clamp(48px, 8vw, 90px) max(6vw, 24px); background: var(--white); }
.content-article { max-width: 960px; margin: 0 auto 38px; }
.content-header { margin-bottom: 24px; }
.content-header h1, .content-article > h1, .content-article > h2 {
	font-family: var(--pixel);
	font-size: clamp(26px, 4vw, 44px);
	line-height: 1.45;
	text-shadow: 2px 2px 0 var(--yellow);
}
.entry-content { font-size: 17px; line-height: 1.75; }
.entry-content img, .entry-featured img { max-width: 100%; height: auto; border: 3px solid var(--black); border-radius: 12px; }
.content-list { max-width: 960px; margin: 0 auto; }
.archive-description { max-width: 800px; line-height: 1.65; }
.home-page-blocks { padding: 50px max(6vw, 24px); }
.home-page-blocks > .entry-content { max-width: 1180px; margin: auto; }
@media (max-width: 1100px) {
	.main-nav .primary-menu { gap: 12px; }
	.main-nav .primary-menu .menu-item a { font-size: 12px; }
}
@media (max-width: 820px) {
	.main-nav .primary-menu { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
	.main-nav .primary-menu .menu-item a {
		display: block;
		padding: 12px 4px;
		border-bottom: 1px solid #9b3a1844;
		font-size: 14px;
	}
}
@media (max-width: 560px) {
	.teacher-row { grid-template-columns: 32px 1fr 34px; gap: 10px; }
	.teacher-avatar { width: 30px; height: 30px; font-size: 12px; }
}

/* ERUDITO 1.1: larger academic type, clearer navigation, same approved palette. */
body { font-size: 17px; line-height: 1.65; }
.site-header { gap: clamp(16px, 2vw, 32px); }
.brand { font-family: var(--body); font-size: 18px; letter-spacing: 0; }
.site-header .brand-image {
	display: block;
	width: 58px;
	height: 58px;
	border: 2px solid var(--black);
	border-radius: 12px;
	box-shadow: 4px 4px 0 var(--black);
	object-fit: contain;
}
.site-header .brand-custom-logo .custom-logo-link { display: flex; align-items: center; }
.site-header .brand-custom-logo .custom-logo {
	display: block;
	width: auto;
	max-width: min(270px, 24vw);
	max-height: 62px;
	object-fit: contain;
}
.main-nav { gap: clamp(10px, 1.2vw, 22px); }
.main-nav > a:not(.button),
.main-nav .primary-menu .menu-item a,
.main-nav .areas-dropdown > summary {
	font-family: var(--body);
	font-size: 15px;
	font-weight: 800;
}
.main-nav .primary-menu { gap: clamp(10px, 1.15vw, 20px); }
.button {
	font-family: var(--body);
	font-size: 14px;
	font-weight: 800;
	letter-spacing: .025em;
}
.nav-contact { font-size: 13px; }
.section-heading .button,
.hero-actions .button { font-size: 14px; }
.footer-group .button { font-size: 12px; }
.kicker,
.course-index,
.course-body small,
.poster-bottom small,
.area-card-top,
.area-subject-label {
	font-family: var(--body);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .05em;
}
.label,
.course-link,
.footer-tagline,
.footer-bottom a { font-family: var(--body); }
.footer-tagline { font-size: 16px; font-weight: 700; line-height: 1.55; }
.poster-bottom strong { font-family: var(--body); font-size: 15px; }
.art-sticker { font-size: 9px; }
.hero h1 { font-size: clamp(42px, 5vw, 76px); line-height: 1.28; }
.hero-description { font-size: clamp(18px, 1.35vw, 21px); line-height: 1.7; }
.band-inner h2,
.section-heading h2,
.method-title h2,
.plan-copy h2,
.final-cta h2,
.content-header h1,
.content-article > h1,
.content-article > h2 {
	font-size: clamp(32px, 3.5vw, 50px);
	line-height: 1.4;
}
.band-text,
.method-title > p:last-child,
.plan-copy > p:not(.label),
.final-cta > p:not(.label),
.catalog-intro { font-size: 18px; line-height: 1.75; }
.label { font-size: 11px; line-height: 1.5; }
.course-body h3 { font-size: 22px; line-height: 1.35; }
.course-body p { font-size: 16px; line-height: 1.7; }
.course-link { font-size: 12px; }
.method-list h3 { font-size: 19px; }
.method-list p { font-size: 16px; line-height: 1.65; }
.footer-group > a:not(.button),
.footer-group p { font-size: 15px; line-height: 1.6; }
.footer-bottom { font-size: 13px; }
.footer-bottom a { font-size: 11px; }

.areas-dropdown { position: relative; flex: 0 0 auto; }
.areas-dropdown > summary {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	gap: 7px;
	list-style: none;
	cursor: pointer;
}
.areas-dropdown > summary::-webkit-details-marker { display: none; }
.areas-dropdown > summary span { font-size: 18px; }
.areas-dropdown[open] > summary { text-decoration: underline; text-underline-offset: 4px; }
.areas-dropdown-panel {
	position: absolute;
	z-index: 25;
	top: calc(100% + 16px);
	right: -80px;
	display: grid;
	grid-template-columns: repeat(2, minmax(180px, 1fr));
	gap: 0 20px;
	width: min(510px, 88vw);
	padding: 18px 22px;
	border: 3px solid var(--black);
	border-radius: 12px;
	background: var(--white);
	box-shadow: 7px 8px 0 var(--black);
}
.areas-dropdown-group { padding: 10px 0; }
.areas-dropdown-title { display: flex; justify-content: space-between; gap: 12px; font-weight: 800; }
.areas-dropdown-group ul { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 0; padding: 0; list-style: none; }
.areas-dropdown-group li a { display: inline-block; padding: 4px 8px; border: 1px solid #10100f55; border-radius: 99px; font-size: 13px; }
.areas-dropdown-group li a:hover { background: var(--yellow); }

.course-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 18px; max-width: 1180px; margin: 0 auto 22px; }
.course-search-form { display: flex; flex: 1 1 560px; gap: 12px; max-width: 720px; }
.course-search-form input[type="search"] {
	flex: 1 1 auto;
	min-width: 0;
	min-height: 54px;
	padding: 10px 16px;
	border: 3px solid var(--black);
	border-radius: 9px;
	background: var(--white);
	color: var(--black);
	font: 600 16px/1.4 var(--body);
}
.course-search-form input[type="search"]::placeholder { color: #56534c; opacity: 1; }
.course-search-form .button { min-height: 54px; white-space: nowrap; }
.catalog-button { min-height: 54px; white-space: nowrap; }
.area-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 17px;
	max-width: 1180px;
	margin: 0 auto 30px;
}
.area-card {
	min-width: 0;
	padding: 18px;
	border: 3px solid var(--black);
	border-radius: 14px;
	background: var(--white);
	box-shadow: 5px 6px 0 var(--black);
}
.area-card:nth-child(4n + 2) { background: #fff7d5; }
.area-card:nth-child(4n + 3) { background: #e9f2ff; }
.area-card-top { display: flex; justify-content: space-between; color: #4e493b; }
.area-card-top span:last-child { color: var(--red); font-size: 19px; }
.area-card h3 { margin: 10px 0 12px; font-size: clamp(19px, 1.8vw, 24px); line-height: 1.35; }
.area-card h3 a { display: flex; justify-content: space-between; gap: 8px; }
.area-card h3 a span { color: var(--orange); }
.area-subject-label { margin: 0 0 7px; }
.subject-links { display: flex; flex-wrap: wrap; gap: 7px; margin: 0; padding: 0; list-style: none; }
.subject-links a { display: inline-block; padding: 5px 9px; border: 1.5px solid var(--black); border-radius: 99px; font-size: 13px; font-weight: 700; }
.subject-links a:hover { background: var(--yellow); }
.area-empty { min-height: 48px; margin: 0; color: #4e493b; font-size: 14px; line-height: 1.5; }
.area-link { display: flex; justify-content: space-between; gap: 10px; margin-top: 16px; padding-top: 11px; border-top: 2px solid var(--black); font-size: 13px; font-weight: 800; }
.area-link b { font-size: 18px; }
.course-search-form :focus-visible,
.areas-dropdown :focus-visible,
.main-nav a:focus-visible,
.area-card a:focus-visible,
.button:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
.content-page { font-size: 18px; line-height: 1.75; }
.archive-tools { display: grid; gap: 18px; max-width: 1180px; margin: 0 auto 30px; }
.archive-tools .course-search-form { width: 100%; max-width: 840px; }
.catalog-areas { display: flex; flex-wrap: wrap; gap: 9px; }
.catalog-areas a { display: inline-flex; align-items: center; gap: 10px; padding: 9px 13px; border: 2px solid var(--black); border-radius: 8px; font-weight: 800; }
.catalog-areas a:hover { color: var(--white); background: var(--black); }
.course-catalog-page .content-header { max-width: 1180px; margin: 0 auto 28px; }
.archive-course-grid { max-width: 1180px; margin: 0 auto; }
.archive-empty { max-width: 1180px; margin: 30px auto; padding: 24px; border: 3px solid var(--black); border-radius: 12px; background: #fff7d5; font-weight: 700; }
.course-catalog-page .content-header h1 { margin-bottom: 10px; }
.catalog-intro { max-width: 760px; margin: 0; }
.content-article h2 a:hover { text-decoration: underline; text-decoration-thickness: 3px; }

@media (max-width: 1100px) {
	.main-nav { gap: 10px; }
	.main-nav .primary-menu { gap: 10px; }
	.main-nav .primary-menu .menu-item a,
	.main-nav > a:not(.button),
	.main-nav .areas-dropdown > summary { font-size: 14px; }
	.area-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.course-toolbar { align-items: stretch; }
}
@media (max-width: 820px) {
	.site-header { gap: 14px; }
	.site-header .brand-image { width: 52px; height: 52px; }
	.site-header .brand-custom-logo .custom-logo { max-width: min(230px, 58vw); max-height: 54px; }
	.main-nav { gap: 0; }
	.main-nav .areas-dropdown { width: 100%; }
	.main-nav .areas-dropdown > summary { display: flex; justify-content: space-between; padding: 12px 4px; border-bottom: 1px solid #9b3a1844; font-size: 15px; }
	.areas-dropdown-panel {
		position: static;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0 14px;
		width: 100%;
		margin: 10px 0;
		padding: 12px 14px;
		box-shadow: 4px 5px 0 var(--black);
	}
	.main-nav .areas-dropdown-group li a { font-size: 13px; }
	.main-nav .primary-menu .menu-item a { font-size: 15px; }
	.course-toolbar { display: grid; }
	.course-search-form { max-width: none; }
}
@media (max-width: 560px) {
	body { font-size: 16px; }
	.site-header { padding: 9px 17px; }
	.site-header .brand-image { width: 48px; height: 48px; border-radius: 10px; }
	.site-header .brand-custom-logo .custom-logo { max-width: min(205px, 58vw); max-height: 49px; }
	.brand { font-size: 16px; }
	.hero h1 { font-size: clamp(34px, 8.4vw, 46px); line-height: 1.4; letter-spacing: -1px; }
	.kicker { font-size: 10px; line-height: 1.5; }
	.hero-description { font-size: 17px; line-height: 1.7; }
	.band-inner h2,
	.section-heading h2,
	.method-title h2,
	.plan-copy h2,
	.final-cta h2,
	.content-header h1,
	.content-article > h1,
	.content-article > h2 { font-size: clamp(28px, 7.5vw, 36px); line-height: 1.45; }
	.band-text,
	.method-title > p:last-child,
	.plan-copy > p:not(.label),
	.final-cta > p:not(.label),
	.catalog-intro { font-size: 16px; }
	.course-body h3 { font-size: 20px; }
	.course-body p { font-size: 16px; }
	.course-toolbar { gap: 11px; }
	.course-search-form { display: grid; grid-template-columns: 1fr; gap: 9px; }
	.course-search-form input[type="search"] { min-height: 50px; font-size: 16px; }
	.course-search-form .button,
	.catalog-button { width: 100%; min-height: 50px; }
	.area-grid { grid-template-columns: 1fr; gap: 14px; }
	.area-card { padding: 17px; }
	.area-card h3 { font-size: 22px; }
	.areas-dropdown-panel { grid-template-columns: 1fr; }
	.area-empty { min-height: 0; }
	.archive-tools { gap: 13px; }
	.catalog-areas a { font-size: 14px; }
	.footer-group > a:not(.button), .footer-group p { font-size: 14px; }
}
