/* Wellcaza redesign: design system, header and mega menu, cards, course pages, motion. Loads after theme.css. */

:root {
	--wz-ease: cubic-bezier(.2, .7, .2, 1);
	--wz-shadow-sm: 0 1px 2px rgba(21, 18, 63, .06), 0 2px 8px rgba(21, 18, 63, .05);
	--wz-shadow-md: 0 10px 30px -12px rgba(21, 18, 63, .22), 0 2px 6px rgba(21, 18, 63, .06);
	--wz-shadow-lg: 0 24px 60px -20px rgba(21, 18, 63, .35);
	--wz-wa: #0E7C66;
	--wz-header-h: 120px;
}

@view-transition { navigation: auto; }

html { scroll-padding-top: calc(var(--wz-header-h) + 16px); }

:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 3px solid var(--wz-teal);
	outline-offset: 2px;
	border-radius: 6px;
}

/* ---------- Buttons ---------- */
.wp-block-button .wp-block-button__link { box-shadow: none; }
.wp-block-button .wp-block-button__link:hover { transform: translateY(-1px); box-shadow: var(--wz-shadow-md); }
.wz-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	min-height: 48px;
	padding: .8rem 1.4rem;
	border-radius: 999px;
	background: var(--wz-teal);
	color: #fff !important;
	font-weight: 600;
	font-size: .9375rem;
	text-decoration: none !important;
	border: 1.5px solid transparent;
	transition: transform .2s var(--wz-ease), box-shadow .2s var(--wz-ease), background-color .2s;
}
.wz-btn:hover { transform: translateY(-1px); box-shadow: var(--wz-shadow-md); background: var(--wz-teal-dark); }
.wz-btn--wa { background: var(--wz-wa); }
.wz-btn--wa::before {
	content: "";
	width: 18px;
	height: 18px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21l1.7-4.6A8.5 8.5 0 1 1 8 19.6L3 21z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21l1.7-4.6A8.5 8.5 0 1 1 8 19.6L3 21z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.wz-btn--wa:hover { background: #0B6553; }
.wz-btn--ghost { background: transparent; color: var(--wz-navy) !important; border-color: #CFCDE3; }
.wz-btn--ghost:hover { background: #fff; border-color: var(--wz-navy); }
.wz-contact-btns { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1rem 0 0; }

/* ---------- Header ---------- */
header.wp-block-template-part { position: sticky; top: 0; z-index: 100; }
body.admin-bar header.wp-block-template-part { top: 32px; }
@media (max-width: 782px) { body.admin-bar header.wp-block-template-part { top: 0; } }
.wz-topbar { max-height: 64px; overflow: hidden; transition: max-height .3s var(--wz-ease); }
.wz-topbar a { text-decoration: underline; text-underline-offset: 2px; }
.wz-topbar .wz-topbar__links a { text-decoration: none; }
.wz-scrolled .wz-topbar { max-height: 0; }
.wz-header { transition: box-shadow .3s; }
.wz-scrolled .wz-header { box-shadow: 0 6px 24px -14px rgba(21, 18, 63, .35); }
.wz-header__inner { position: relative; padding-block: .7rem; gap: 1.25rem; }
.wz-scrolled .wz-header__inner { padding-block: .5rem; }
.wz-brand { flex-shrink: 0; }
.wz-header__actions { gap: .6rem; align-items: center; flex-shrink: 0; }
.wz-header__actions p { margin: 0; }
.wz-header__wa a {
	display: inline-flex;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	border: 1.5px solid #CFCDE3;
	font-size: 0;
	align-items: center;
	justify-content: center;
	color: var(--wz-wa);
	transition: border-color .2s, background-color .2s;
}
.wz-header__wa a::before {
	content: "";
	width: 22px;
	height: 22px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21l1.7-4.6A8.5 8.5 0 1 1 8 19.6L3 21z'/%3E%3Cpath d='M9 9.5c0 3 2.5 5.5 5.5 5.5l1.2-1.3-1.9-1-.9.8c-1-.4-1.9-1.3-2.3-2.3l.8-.9-1-1.9L9 9.5z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21l1.7-4.6A8.5 8.5 0 1 1 8 19.6L3 21z'/%3E%3Cpath d='M9 9.5c0 3 2.5 5.5 5.5 5.5l1.2-1.3-1.9-1-.9.8c-1-.4-1.9-1.3-2.3-2.3l.8-.9-1-1.9L9 9.5z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.wz-header__wa a:hover { border-color: var(--wz-wa); background: #E6F4F1; }
.wz-header__cta { display: flex !important; }

/* ---------- Mega menu (desktop) ---------- */
.wz-mega { flex: 1 1 auto; display: flex; justify-content: center; }
.wz-mega__list { list-style: none; margin: 0; padding: 0; display: flex; gap: .25rem; align-items: center; }
.wz-mega__item { position: relative; }
.wz-mega__item.is-wide { position: static; }
.wz-mega__trigger {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	padding: .65rem .85rem;
	border: 0;
	border-radius: 10px;
	background: transparent;
	font: inherit;
	font-size: .9375rem;
	font-weight: 600;
	color: var(--wz-navy);
	text-decoration: none;
	cursor: pointer;
	transition: background-color .2s, color .2s;
}
.wz-mega__trigger:hover, .wz-mega__item.is-open > .wz-mega__trigger { background: var(--wz-lavender); color: var(--wz-teal-dark); }
button.wz-mega__trigger::after {
	content: "";
	width: 7px;
	height: 7px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: translateY(-2px) rotate(45deg);
	transition: transform .25s var(--wz-ease);
}
.wz-mega__item.is-open > button.wz-mega__trigger::after { transform: translateY(1px) rotate(-135deg); }

.wz-mega__panel {
	position: absolute;
	top: calc(100% + .5rem);
	left: 0;
	z-index: 110;
	background: #fff;
	border: 1px solid var(--wz-border);
	border-radius: 22px;
	box-shadow: var(--wz-shadow-lg);
	padding: 1.25rem;
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity .22s var(--wz-ease), transform .22s var(--wz-ease), visibility 0s linear .22s;
}
.wz-mega__item.is-open > .wz-mega__panel { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.wz-mega__panel.is-small { min-width: 300px; }
.wz-mega__item.is-wide > .wz-mega__panel { left: 0; right: 0; top: 100%; padding: 1.75rem; }
.wz-mega__cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(260px, 1.1fr); gap: 1.5rem; }
.wz-mega__heading { margin: 0 0 .6rem; font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--wz-teal); }
.wz-mega__heading a { color: inherit; text-decoration: none; }
.wz-mega__col ul, .wz-mega__links { list-style: none; margin: 0; padding: 0; display: grid; gap: .15rem; }
.wz-mega__col a, .wz-mega__links a {
	display: flex;
	flex-direction: column;
	gap: .1rem;
	padding: .6rem .75rem;
	border-radius: 12px;
	text-decoration: none;
	transition: background-color .2s, transform .2s var(--wz-ease);
}
.wz-mega__col a:hover, .wz-mega__links a:hover { background: var(--wz-lavender); transform: translateX(3px); }
.wz-mega__name { font-weight: 600; color: var(--wz-navy); font-size: .9375rem; line-height: 1.35; }
.wz-mega__desc { font-size: .8125rem; color: var(--wz-muted); line-height: 1.4; }
.wz-mega__col--zz-soon .wz-mega__name { color: var(--wz-ink-soft); }
.wz-mega__feature { background: var(--wz-navy); color: var(--wz-on-dark); border-radius: 18px; padding: 1.4rem; display: flex; flex-direction: column; gap: .6rem; align-items: flex-start; position: relative; overflow: hidden; }
.wz-mega__feature::after { content: ""; position: absolute; width: 220px; height: 220px; right: -80px; bottom: -110px; border-radius: 50%; border: 2px solid rgba(127, 220, 215, .35); }
.wz-mega__feature p { margin: 0; font-size: .875rem; line-height: 1.55; }
.wz-mega__kicker { font-size: .75rem !important; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--wz-on-dark-accent); }
.wz-mega__feature-title { font-family: var(--wz-serif); font-size: 1.35rem !important; color: #fff; line-height: 1.2 !important; }
.wz-mega__all { color: #fff; font-size: .875rem; font-weight: 600; }
.wz-mega__mobile-cta { display: none; }
.wz-burger { display: none; }

/* ---------- Mobile drawer ---------- */
@media (max-width: 1080px) {
	.wz-header__inner { flex-wrap: nowrap; }
	.wz-burger {
		display: inline-flex;
		order: 10;
		width: 48px;
		height: 48px;
		border-radius: 14px;
		border: 1.5px solid #CFCDE3;
		background: #fff;
		align-items: center;
		justify-content: center;
		cursor: pointer;
		flex-shrink: 0;
	}
	.wz-burger__bars, .wz-burger__bars::before, .wz-burger__bars::after {
		display: block;
		width: 20px;
		height: 2px;
		background: var(--wz-navy);
		border-radius: 2px;
		position: relative;
		transition: transform .25s var(--wz-ease), background-color .2s;
	}
	.wz-burger__bars::before, .wz-burger__bars::after { content: ""; position: absolute; left: 0; }
	.wz-burger__bars::before { top: -6px; }
	.wz-burger__bars::after { top: 6px; }
	.wz-nav-open .wz-burger__bars { background: transparent; }
	.wz-nav-open .wz-burger__bars::before { transform: translateY(6px) rotate(45deg); }
	.wz-nav-open .wz-burger__bars::after { transform: translateY(-6px) rotate(-45deg); }

	.wz-mega {
		position: fixed;
		top: var(--wz-header-h);
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 90;
		display: block;
		background: #fff;
		overflow-y: auto;
		padding: 1rem 1.25rem 6rem;
		transform: translateX(100%);
		visibility: hidden;
		transition: transform .3s var(--wz-ease), visibility 0s linear .3s;
	}
	.wz-nav-open .wz-mega { transform: none; visibility: visible; transition-delay: 0s; }
	.wz-nav-open body { overflow: hidden; }
	.wz-nav-open .wz-mobile-bar { display: none !important; }
	.wz-mega__list { flex-direction: column; align-items: stretch; gap: 0; }
	.wz-mega__item { border-bottom: 1px solid var(--wz-border); }
	.wz-mega__trigger { width: 100%; justify-content: space-between; padding: 1rem .25rem; font-size: 1.125rem; border-radius: 0; }
	.wz-mega__trigger:hover, .wz-mega__item.is-open > .wz-mega__trigger { background: transparent; }
	.wz-mega__panel, .wz-mega__item.is-wide > .wz-mega__panel {
		position: static;
		display: none;
		opacity: 1;
		visibility: visible;
		transform: none;
		box-shadow: none;
		border: 0;
		padding: 0 0 1rem;
		transition: none;
	}
	.wz-mega__item.is-open > .wz-mega__panel { display: block; }
	.wz-mega__cols { grid-template-columns: 1fr; gap: 1rem; }
	.wz-mega__mobile-cta { display: grid; gap: .6rem; margin-top: 1.5rem; }
	.wz-header__actions { display: none !important; }
}
@media (min-width: 1081px) and (max-width: 1240px) {
	.wz-mega__trigger { padding: .6rem .6rem; font-size: .875rem; }
	.wz-header__wa { display: none; }
}

/* ---------- Hero ---------- */
.wz-hero__title { font-size: clamp(2.6rem, 5vw, 4.4rem); }
.wz-trust { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .6rem 1.5rem; font-size: .875rem; color: var(--wz-ink-soft); }
.wz-trust li { display: flex; align-items: center; gap: .45rem; }
.wz-trust li::before { content: ""; width: 18px; height: 18px; border-radius: 50%; background: var(--wz-teal-light) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230F6F6B' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center / 11px no-repeat; flex-shrink: 0; }
.wz-trust strong { color: var(--wz-navy); }
.wz-kenburns img { animation: wz-zoom 1.8s var(--wz-ease) both; }
@keyframes wz-zoom { from { transform: scale(1.08); } to { transform: scale(1); } }
.wz-badge { box-shadow: var(--wz-shadow-md); animation: wz-float 6s ease-in-out infinite alternate; }
.wz-badge--card { animation-delay: -3s; }
@keyframes wz-float { from { transform: translateY(0); } to { transform: translateY(-8px); } }

/* ---------- Sections ---------- */
.wz-section--tight { padding-top: 3rem; }
.wz-section--cta { padding-top: 0; }
.wz-tint + .wz-section--cta, .wz-section--tight + .wz-section--cta { padding-top: var(--wp--preset--spacing--60); }
.wz-grid.is-layout-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)) !important; }
.wz-themes.is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
.wz-people.is-layout-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr)) !important; }
.wz-section--flush-top { padding-top: var(--wp--preset--spacing--60); }
.wz-dark + .wz-section--flush-top, .wz-tint + .wz-section--flush-top { padding-top: var(--wp--preset--spacing--70); }
@media (max-width: 600px) { .wz-themes.is-layout-grid { grid-template-columns: 1fr !important; } }
.wz-photo--intro { height: 460px !important; }
.wz-intro .wz-split { align-items: center; }
.wz-checks--dark li::before { color: var(--wz-teal); }
.wz-split > .wp-block-column > *:first-child { margin-top: 0; }

/* ---------- Course cards ---------- */
.wz-cgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); gap: 1.25rem; }
.wz-ccard {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: .75rem;
	padding: 1.5rem;
	background: #fff;
	border: 1px solid var(--wz-border);
	border-radius: 22px;
	box-shadow: var(--wz-shadow-sm);
	transition: transform .3s var(--wz-ease), box-shadow .3s var(--wz-ease), border-color .3s;
}
.wz-ccard:hover { transform: translateY(-4px); box-shadow: var(--wz-shadow-md); border-color: #CFCDE3; }
.wz-ccard__top { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.wz-ccard__icon {
	width: 44px;
	height: 44px;
	border-radius: 14px;
	background-color: var(--wz-navy);
	background-position: center;
	background-size: 22px;
	background-repeat: no-repeat;
	flex-shrink: 0;
	transition: transform .3s var(--wz-ease);
}
.wz-ccard:hover .wz-ccard__icon { transform: rotate(-6deg) scale(1.05); }
.wz-ccard--health-sciences .wz-ccard__icon { background-color: var(--wz-navy); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 3h6'/%3E%3Cpath d='M10 3v6l-5 9a2 2 0 0 0 1.7 3h10.6a2 2 0 0 0 1.7-3l-5-9V3'/%3E%3Cpath d='M7.5 15h9'/%3E%3C/svg%3E"); }
.wz-ccard--languages .wz-ccard__icon { background-color: var(--wz-teal); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h8'/%3E%3Cpath d='M8 3v2'/%3E%3Cpath d='M6 5c0 4 3 7 6 8'/%3E%3Cpath d='M10 5c-1 4-4 7-6 8'/%3E%3Cpath d='M12 21l4-10 4 10'/%3E%3Cpath d='M13.5 17h5'/%3E%3C/svg%3E"); }
.wz-ccard--digital-technology .wz-ccard__icon, .wz-ccard--management .wz-ccard__icon, .wz-ccard--general .wz-ccard__icon { background-color: #6E6B94; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='12' rx='2'/%3E%3Cpath d='M8 20h8'/%3E%3Cpath d='M12 16v4'/%3E%3C/svg%3E"); }
.wz-ccard__school { font-size: .6875rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--wz-teal-dark); }
.wz-ccard .wz-soon { margin-left: auto; }
.wz-ccard__title { margin: .25rem 0 0; font-family: var(--wp--preset--font-family--body); font-size: 1.2rem; font-weight: 700; line-height: 1.3; letter-spacing: 0; }
.wz-ccard__title a { color: var(--wz-navy); text-decoration: none; }
.wz-ccard__title a::after { content: ""; position: absolute; inset: 0; border-radius: 22px; }
.wz-ccard__excerpt { margin: 0; font-size: .9rem; line-height: 1.55; color: var(--wz-ink-soft); }
.wz-ccard__facts { list-style: none; margin: 0; padding: 0; display: grid; gap: .3rem; font-size: .8125rem; color: var(--wz-muted); }
.wz-ccard__facts .is-award { font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--wz-teal); font-size: .75rem; }
.wz-ccard__foot { margin-top: auto; padding-top: .9rem; border-top: 1px solid #EFEEF6; display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.wz-ccard__cta { font-weight: 700; font-size: .9rem; color: var(--wz-teal-dark); text-decoration: none; display: inline-flex; gap: .35rem; align-items: center; }
.wz-ccard__cta::after { content: "→"; transition: transform .25s var(--wz-ease); }
.wz-ccard:hover .wz-ccard__cta::after { transform: translateX(4px); }
.wz-ccard__enquire { position: relative; z-index: 2; font-size: .8125rem; font-weight: 600; padding: .45rem .9rem; border-radius: 999px; border: 1.5px solid #CFCDE3; color: var(--wz-navy); text-decoration: none; transition: border-color .2s, background-color .2s; }
.wz-ccard__enquire:hover { border-color: var(--wz-navy); background: var(--wz-lavender); }
.wz-ccard__cta { position: relative; z-index: 2; }
.wz-ccard.is-soon { background: #FCFBFE; box-shadow: none; }
.wz-ccard.is-soon .wz-ccard__title a { color: var(--wz-ink-soft); }
.wz-empty { color: var(--wz-ink-soft); }

/* ---------- Page heads and breadcrumbs ---------- */
.wz-page-head--hero { background: var(--wz-navy); color: #fff; padding-block: 3rem 3.5rem; position: relative; overflow: hidden; margin-bottom: 0; }
.wz-page-head--hero::after { content: ""; position: absolute; width: 520px; height: 520px; right: -160px; top: -220px; border-radius: 50%; border: 2px solid rgba(127, 220, 215, .25); box-shadow: 0 0 0 46px transparent, 0 0 0 48px rgba(255, 255, 255, .05); pointer-events: none; }
.wz-page-head--hero > * { position: relative; z-index: 1; }
.wz-page-head--hero :where(h1, .wp-block-query-title, .wp-block-post-title) { color: #fff; margin: .4rem 0 .8rem; }
.wz-page-head--hero .wz-lead, .wz-page-head--hero .wp-block-term-description { color: var(--wz-on-dark); max-width: 46rem; }
.wz-page-head--hero .wz-eyebrow { color: var(--wz-on-dark-accent); }
.wz-page-head--hero .wz-school-chips { margin-top: 1.5rem; }
.wz-page-content { padding-top: 3rem; }
.wz-crumbs ol { list-style: none; margin: 0 0 .5rem; padding: 0; display: flex; flex-wrap: wrap; gap: .35rem; font-size: .8125rem; }
.wz-crumbs li { color: var(--wz-on-dark); }
.wz-crumbs li + li::before { content: "/"; margin-right: .35rem; opacity: .6; }
.wz-crumbs a { color: #fff; text-decoration: none; opacity: .85; }
.wz-crumbs a:hover { opacity: 1; text-decoration: underline; }

/* ---------- Course page ---------- */
.wz-course-hero { margin-bottom: 0; padding-block: 2.5rem 4rem; }
.wz-course-hero__cols { gap: 3rem; align-items: center; margin-top: 1rem; }
.wz-badges { list-style: none; margin: 1rem 0 1.5rem; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.wz-badges li { font-size: .8125rem; font-weight: 600; padding: .4rem .85rem; border-radius: 999px; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .2); color: #fff; }
.wz-badges li.is-soon { background: #FCEFD2; color: #7A4B00; border-color: transparent; }
.wz-course-hero__buttons .wp-block-button__link { min-height: 48px; }
.wz-facts-card { box-shadow: var(--wz-shadow-lg); }
.wz-course-body { padding-block: 3rem 4rem; }
.wz-course-layout { gap: 3rem; align-items: flex-start; }
.wz-course-main > * { max-width: 46rem; }
.wz-toc { display: none; background: var(--wz-lavender); border-radius: 18px; padding: 1rem 1.25rem; margin-bottom: 2rem; }
.wz-toc.is-ready { display: block; }
.wz-toc__label { margin: 0 0 .5rem; font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--wz-teal-dark); }
.wz-toc ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.wz-toc a { display: inline-block; padding: .4rem .85rem; border-radius: 999px; background: #fff; border: 1px solid var(--wz-border); font-size: .875rem; font-weight: 600; color: var(--wz-navy); text-decoration: none; transition: border-color .2s, transform .2s var(--wz-ease); }
.wz-toc a:hover { border-color: var(--wz-teal); transform: translateY(-1px); }
.wz-course-content h2 { font-size: 1.75rem; margin-top: 2.75rem; padding-top: 1.75rem; border-top: 1px solid var(--wz-border); }
.wz-course-content > h2:first-of-type { margin-top: 2rem; }
.wz-course-content ul { padding-left: 0; list-style: none; }
.wz-course-content ul li { position: relative; padding-left: 1.6rem; margin-bottom: .5rem; }
.wz-course-content ul li::before { content: ""; position: absolute; left: 0; top: .55em; width: 9px; height: 9px; border-radius: 50%; background: var(--wz-teal); }
.wz-course-faq { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--wz-border); }
.wz-course-aside { position: relative; }
.wz-sticky { position: sticky; top: calc(var(--wz-header-h) + 1rem); }
.wz-sticky .wz-enquiry { border: 1px solid var(--wz-border); box-shadow: var(--wz-shadow-md); }
.wz-sticky .wz-contact-btns { justify-content: center; }
.wz-sticky .wz-contact-btns .wz-btn { flex: 1 1 auto; font-size: .875rem; padding-inline: 1rem; }
@media (max-width: 781px) {
	.wz-sticky { position: static; }
	.wz-course-hero { padding-block: 1.5rem 3rem; }
}

/* ---------- FAQ accordion ---------- */
.wz-faq { display: grid; gap: .75rem; }
.wz-faq__item { background: #fff; border: 1px solid var(--wz-border); border-radius: 16px; transition: border-color .2s, box-shadow .2s; interpolate-size: allow-keywords; }
.wz-faq__item[open] { border-color: #CFCDE3; box-shadow: var(--wz-shadow-sm); }
.wz-faq__item summary {
	list-style: none;
	cursor: pointer;
	padding: 1.1rem 3.25rem 1.1rem 1.25rem;
	font-weight: 600;
	font-size: 1rem;
	color: var(--wz-navy);
	position: relative;
}
.wz-faq__item summary::-webkit-details-marker { display: none; }
.wz-faq__item summary::after {
	content: "";
	position: absolute;
	right: 1.1rem;
	top: 50%;
	width: 26px;
	height: 26px;
	margin-top: -13px;
	border-radius: 50%;
	background: var(--wz-lavender) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231E1A55' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M12 6v12M6 12h12'/%3E%3C/svg%3E") center / 13px no-repeat;
	transition: transform .3s var(--wz-ease), background-color .2s;
}
.wz-faq__item[open] summary::after { transform: rotate(45deg); background-color: var(--wz-teal-light); }
.wz-faq__item::details-content { height: 0; overflow: hidden; transition: height .35s var(--wz-ease), content-visibility .35s allow-discrete; }
.wz-faq__item[open]::details-content { height: auto; }
.wz-faq__answer { padding: 0 1.25rem 1.1rem; color: var(--wz-ink-soft); }
.wz-faq__answer p { margin: 0; }
.wz-faq-wrap { gap: 3rem; }
.wz-faq-wrap .wz-contact-btns { margin-top: 1.25rem; }

/* ---------- Faculty, reviews, admissions ---------- */
.wz-person { background: #fff; border: 1px solid var(--wz-border); border-radius: 20px; padding: 1.4rem 1.4rem 1.3rem; position: relative; overflow: hidden; transition: transform .3s var(--wz-ease), box-shadow .3s; }
.wz-person::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--wz-teal); }
.wz-person:hover { transform: translateY(-3px); box-shadow: var(--wz-shadow-md); }
.wz-person > * { margin: 0 !important; }
.wz-person__name { font-family: var(--wz-serif); font-size: 1.25rem; color: var(--wz-navy); }
.wz-person__role { margin-top: .3rem !important; font-weight: 600; font-size: .875rem; color: var(--wz-teal-dark); }
.wz-person__qual { margin-top: .2rem !important; font-size: .8125rem; color: var(--wz-muted); }
.wz-reviews { gap: 3rem; align-items: center; }
.wz-rating-card { background: var(--wz-navy); color: var(--wz-on-dark); border-radius: 28px; padding: 2.25rem; box-shadow: var(--wz-shadow-lg); }
.wz-rating-card > * { margin: 0 0 .75rem; }
.wz-rating-card .wz-eyebrow { color: var(--wz-on-dark-accent); }
.wz-rating-card__score { font-family: var(--wz-serif); font-size: 4.5rem; line-height: 1; color: #fff; margin: .5rem 0 .25rem !important; }
.wz-rating-card .wz-stars { color: #F2C14E; font-size: 1.25rem; }
.wz-rating-card .wp-block-button.is-style-wz-navy .wp-block-button__link { background: #fff; color: var(--wz-navy); }
.wz-theme { background: #fff; border-radius: 18px; padding: 1.4rem; border: 1px solid var(--wz-border); }
.wz-theme h3 { font-family: var(--wp--preset--font-family--body); font-size: 1.05rem; font-weight: 700; margin: 0 0 .35rem; letter-spacing: 0; }
.wz-theme p { margin: 0; font-size: .9rem; color: var(--wz-ink-soft); }
.wz-next { list-style: none; counter-reset: wz-next; padding: 0; margin: 1.5rem 0; display: grid; gap: .7rem; }
.wz-next li { counter-increment: wz-next; display: flex; align-items: center; gap: .8rem; color: #fff; font-weight: 500; }
.wz-next li::before { content: counter(wz-next); width: 32px; height: 32px; border-radius: 50%; background: rgba(255, 255, 255, .16); display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: .875rem; flex-shrink: 0; }
.wz-steps-list { padding-left: 1.25rem; }
.wz-steps-list li { margin-bottom: .6rem; }
.wz-page-content .wz-table, .wz-page-content .wz-faq { margin-block: 1.25rem 2rem; }
.wz-page-content .wz-enquiry { border: 1px solid var(--wz-border); box-shadow: var(--wz-shadow-md); margin-top: 1rem; }
.wz-page-content h2[id] { scroll-margin-top: calc(var(--wz-header-h) + 16px); }

/* ---------- Forms ---------- */
.wz-enquiry input, .wz-enquiry select { transition: border-color .2s, box-shadow .2s; min-height: 48px; }
.wz-enquiry input:focus, .wz-enquiry select:focus { box-shadow: 0 0 0 4px rgba(22, 149, 143, .15); }
.wz-enquiry input[aria-invalid="true"] { border-color: #B42318; box-shadow: 0 0 0 4px rgba(180, 35, 24, .1); }
.wz-err { font-size: .8125rem; color: #B42318; font-weight: 500; min-height: 0; }
.wz-err:empty { display: none; }
.wz-enquiry button { transition: background-color .2s, transform .2s var(--wz-ease); }
.wz-enquiry button:hover { transform: translateY(-1px); }
.wz-enquiry button:disabled { opacity: .7; cursor: progress; transform: none; }
.wz-enquiry__notice.is-success p { margin: 0 0 .5rem; }
.wz-enquiry__notice.is-success .wz-btn { margin-top: .25rem; }

/* ---------- Footer ---------- */
.wz-footer__cta { padding-bottom: 2.5rem; margin-bottom: 3rem; border-bottom: 1px solid #2B2766; gap: 1.5rem; align-items: center; }
.wz-footer__cta-title { color: #fff; margin: 0; font-size: clamp(1.6rem, 3vw, 2.25rem); max-width: 34rem; }
.wz-footer__cta .wz-contact-btns { margin: 0; }
.wz-footer .wz-btn--ghost { color: #fff !important; border-color: rgba(255, 255, 255, .35); }
.wz-footer .wz-btn--ghost:hover { background: rgba(255, 255, 255, .08); border-color: #fff; }
.wz-footer__cols { gap: 2rem; }
.wz-footer__campus { font-size: .875rem !important; opacity: .9; }

/* ---------- Photos and posts ---------- */
figure.wz-photo img { transition: transform .8s var(--wz-ease); }
figure.wz-photo:hover img { transform: scale(1.04); }
.wz-post-card { background: #fff; border: 1px solid var(--wz-border); border-radius: 22px; overflow: hidden; height: 100%; transition: transform .3s var(--wz-ease), box-shadow .3s; }
.wz-post-card:hover { transform: translateY(-4px); box-shadow: var(--wz-shadow-md); }
.wz-post-card__media { margin: 0 !important; }
.wz-post-card__media img { border-radius: 0; }
.wz-post-card__body { padding: 1.25rem 1.4rem 1.4rem; }
.wz-post-card__body > * { margin: 0 0 .5rem; }
.wz-post-card__title { font-family: var(--wp--preset--font-family--body); font-size: 1.2rem; font-weight: 700; letter-spacing: 0; line-height: 1.35; }
.wz-post-card__title a { text-decoration: none; color: var(--wz-navy); }

/* ---------- Reveal on scroll ---------- */
.wz-js .wz-reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s var(--wz-ease) var(--wz-delay, 0ms), transform .7s var(--wz-ease) var(--wz-delay, 0ms); }
.wz-js .wz-reveal.is-in { opacity: 1; transform: none; }
.wz-js .wz-ccard.wz-reveal.is-in:hover { transform: translateY(-4px); }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
	.wz-js .wz-reveal { opacity: 1; transform: none; }
	@view-transition { navigation: none; }
}

/* ---------- Small screens ---------- */
@media (max-width: 781px) {
	.wz-hero__title { font-size: clamp(2.2rem, 9vw, 2.8rem); }
	.wz-trust { gap: .5rem; }
	.wz-photo--intro { height: 260px !important; }
	.wz-footer__cta { align-items: flex-start; }
	.wz-rating-card { padding: 1.75rem; }
	.wz-mega__feature { display: none; }
}
@media (max-width: 1080px) {
	.wz-mega__feature { display: flex; }
}
@media (max-width: 480px) {
	.wz-ccard { padding: 1.25rem; }
	.wz-contact-btns .wz-btn { flex: 1 1 100%; }
}
