/* =============================================================================
   TechEdu — Design System (odidevs language, TechEdu red)
   Degular display type · frosted glass · curved sweet sections · cinematic motion
   Applied over MasterStudy via CSS/JS so all LMS functionality is preserved.
   ============================================================================= */

/* ---- Fonts ----------------------------------------------------------------- */
@font-face {
	font-family: "Degular Display";
	src: url("../fonts/degular/DegularDisplay-Semibold.otf") format("opentype");
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Degular Display";
	src: url("../fonts/degular/DegularDisplay-Black.otf") format("opentype");
	font-weight: 800 900;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Degular Display";
	src: url("../fonts/degular/DegularDisplay-SemiboldItalic.otf") format("opentype");
	font-weight: 600;
	font-style: italic;
	font-display: swap;
}
@font-face {
	font-family: "Degular Display";
	src: url("../fonts/degular/DegularDisplay-MediumItalic.otf") format("opentype");
	font-weight: 500;
	font-style: italic;
	font-display: swap;
}
/* Degular (text) — body copy */
@font-face {
	font-family: "Degular";
	src: url("../fonts/degular/Degular-Regular.otf") format("opentype");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Degular";
	src: url("../fonts/degular/Degular-Medium.otf") format("opentype");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Degular";
	src: url("../fonts/degular/Degular-Semibold.otf") format("opentype");
	font-weight: 600 700;
	font-style: normal;
	font-display: swap;
}
/* General Sans — fallback only */
@font-face {
	font-family: "General Sans";
	src: url("../fonts/generalsans-500.woff2") format("woff2");
	font-weight: 400 500;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "General Sans";
	src: url("../fonts/generalsans-600.woff2") format("woff2");
	font-weight: 600 700;
	font-style: normal;
	font-display: swap;
}

/* ---- Tokens ---------------------------------------------------------------- */
:root {
	--te-red: #b01e1e;
	--te-red-bright: #e23b3b;
	--te-red-soft: #f0a9a9;
	--te-red-deep: #7f1414;
	--te-ink: #1a1420;
	--te-fg: #241a26;
	--te-muted: #6c6470;
	--te-faint: #8a828f;

	--te-base: #fbf7f5;
	--te-base-2: #f4ecea;
	--te-surface: #ffffff;
	--te-surface-2: #fdf9f8;

	--te-line: rgba(26, 20, 32, .10);
	--te-line-strong: rgba(26, 20, 32, .16);

	--te-sans: "Degular", "General Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	--te-display: "Degular Display", "Degular", "General Sans", sans-serif;

	--te-radius: 20px;
	--te-radius-lg: 28px;
	--te-radius-pill: 999px;

	--te-shadow: 0 1px 0 0 rgba(255,255,255,.7) inset, 0 24px 60px -30px rgba(26,20,32,.28);
	--te-shadow-lift: 0 40px 90px -40px rgba(127,20,20,.32), 0 0 0 1px rgba(26,20,32,.04);
	--te-glow-red: 0 18px 44px -12px rgba(176,30,30,.45);

	--te-ease: cubic-bezier(.22, 1, .36, 1);
	--te-gutter: clamp(1.25rem, .5rem + 3vw, 3rem);

	--te-hero: clamp(2.6rem, 1rem + 6.2vw, 6rem);
	--te-display-size: clamp(2.2rem, 1.1rem + 4vw, 4.2rem);
	--te-title: clamp(1.7rem, 1.1rem + 2vw, 2.9rem);
}

/* ---- Base ------------------------------------------------------------------ */
body.techedu-rebuild {
	font-family: var(--te-sans);
	color: var(--te-fg);
	background-color: var(--te-base);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	letter-spacing: -.005em;
}

/* Mobile safety: never allow horizontal scroll/overflow. */
html.techedu-rebuild-html { overflow-x: clip; }
html.techedu-rebuild-html,
body.techedu-rebuild { max-width: 100%; overflow-x: hidden; }

/* MasterStudy popup modals (login/enterprise) are fixed-width and, when idle,
   overflow the viewport on mobile — fixed elements bypass body overflow-x.
   Cap them to the viewport so they never create horizontal scroll. */
body.techedu-rebuild .masterstudy-authorization-modal,
body.techedu-rebuild .masterstudy-authorization-modal__wrapper,
body.techedu-rebuild .masterstudy-authorization-modal__container,
body.techedu-rebuild .masterstudy-authorization,
body.techedu-rebuild .masterstudy-authorization__wrapper,
body.techedu-rebuild .masterstudy-enterprise-modal,
body.techedu-rebuild .masterstudy-enterprise-modal__wrapper,
body.techedu-rebuild .masterstudy-enterprise-modal__container {
	max-width: 100vw;
	box-sizing: border-box;
}

/* Clear the fixed navbar on inner pages that have no dark page-title banner
   (e.g. account, cart, some LMS pages) so content isn't hidden under it. */
body.techedu-rebuild.te-no-banner #main,
body.techedu-rebuild.te-no-banner .stm_lms_wrapper,
body.techedu-rebuild.te-no-banner #primary,
body.techedu-rebuild.te-no-banner .main_content_wrapper { padding-top: 104px; }
/* Fallback: if none of those wrappers exist, pad the body. */
body.techedu-rebuild.te-no-banner.te-pad-body { padding-top: 104px; }

/* Degular everywhere — override MasterStudy/Elementor font stacks.
   (Icon fonts are excluded so glyphs keep rendering.) */
body.techedu-rebuild,
body.techedu-rebuild button,
body.techedu-rebuild input,
body.techedu-rebuild select,
body.techedu-rebuild textarea,
body.techedu-rebuild p,
body.techedu-rebuild a,
body.techedu-rebuild li,
body.techedu-rebuild span:not([class*="fa"]):not([class*="icon"]),
body.techedu-rebuild div,
body.techedu-rebuild .heading_font,
body.techedu-rebuild .main_font,
body.techedu-rebuild .elementor-widget-container,
body.techedu-rebuild .elementor-heading-title,
body.techedu-rebuild .stm_lms_courses__single * {
	font-family: var(--te-sans);
}
body.techedu-rebuild [class^="fa"],
body.techedu-rebuild [class*=" fa"],
body.techedu-rebuild [class^="stmlms-"],
body.techedu-rebuild [class*=" stmlms-"],
body.techedu-rebuild [class^="icon-"],
body.techedu-rebuild [class*=" icon-"],
body.techedu-rebuild .fa,
body.techedu-rebuild .dashicons {
	font-family: inherit !important; /* let the icon font's own @font-face win */
}
body.techedu-rebuild .fa,
body.techedu-rebuild .fas,
body.techedu-rebuild .far,
body.techedu-rebuild .fab,
body.techedu-rebuild .fa-solid,
body.techedu-rebuild .fa-regular,
body.techedu-rebuild .fa-brands { font-family: "Font Awesome 5 Free", "Font Awesome 5 Brands", "FontAwesome" !important; }

/* Ambient warm field, very subtle */
body.techedu-rebuild::before {
	content: "";
	position: fixed;
	inset: 0;
	z-index: -2;
	pointer-events: none;
	background:
		radial-gradient(46rem 34rem at 10% -6%, rgba(240, 169, 169, .28), transparent 62%),
		radial-gradient(42rem 30rem at 92% 2%, rgba(226, 59, 59, .10), transparent 64%),
		var(--te-base);
}

body.techedu-rebuild h1,
body.techedu-rebuild h2,
body.techedu-rebuild h3,
body.techedu-rebuild h4,
body.techedu-rebuild h5,
body.techedu-rebuild .heading_font {
	font-family: var(--te-display);
	font-weight: 600;
	letter-spacing: -.02em;
	color: var(--te-ink);
	text-wrap: balance;
}

/* Headings placed on dark sections must stay light — beat the base rule above. */
body.techedu-rebuild .te-hero__title,
body.techedu-rebuild .te-foot__headline,
body.techedu-rebuild .te-auth__headline,
body.techedu-rebuild .te-cta__title,
body.techedu-rebuild .te-contact__title,
body.techedu-rebuild .stm_lms_breadcrumbs__header_default h1,
body.techedu-rebuild .stm_lms_breadcrumbs__header_default .heading_font { color: #fff; }
body.techedu-rebuild .te-hero__accent { color: var(--te-red-bright); }
body.techedu-rebuild .te-foot__headline em { color: var(--te-red-bright); }

body.techedu-rebuild ::selection {
	background: var(--te-red);
	color: #fff;
}

/* Brand scrollbar */
body.techedu-rebuild::-webkit-scrollbar { width: 11px; }
body.techedu-rebuild::-webkit-scrollbar-track { background: var(--te-base-2); }
body.techedu-rebuild::-webkit-scrollbar-thumb {
	background: var(--te-red-soft);
	border-radius: 999px;
	border: 3px solid var(--te-base-2);
}
body.techedu-rebuild::-webkit-scrollbar-thumb:hover { background: var(--te-red); }

/* ---- Reusable component utilities ----------------------------------------- */
.te-kicker {
	display: inline-flex;
	align-items: center;
	gap: .6rem;
	font-family: var(--te-sans);
	font-size: .72rem;
	font-weight: 600;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--te-red);
}
.te-kicker::before {
	content: "";
	width: 1.6rem;
	height: 1px;
	background: linear-gradient(to right, transparent, var(--te-red));
}
.te-glass {
	background: rgba(255,255,255,.6);
	border: 1px solid rgba(255,255,255,.7);
	box-shadow: var(--te-shadow);
	backdrop-filter: blur(20px) saturate(150%);
	-webkit-backdrop-filter: blur(20px) saturate(150%);
	border-radius: var(--te-radius);
}

/* ---- Reveal-on-scroll (driven by motion.js) -------------------------------
   Only hidden once JS has flagged the body (.te-js) so content stays visible
   if scripts fail to load. */
body.techedu-rebuild.te-js [data-te-reveal] {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity .8s var(--te-ease), transform .8s var(--te-ease);
	will-change: opacity, transform;
}
body.techedu-rebuild.te-js [data-te-reveal].is-in {
	opacity: 1;
	transform: none;
}
@media (prefers-reduced-motion: reduce) {
	body.techedu-rebuild [data-te-reveal] { opacity: 1; transform: none; transition: none; }
}

/* =============================================================================
   HEADER  ->  floating frosted-glass pill navbar (custom markup in header.php)
   ============================================================================= */
.te-skip {
	position: absolute; left: -9999px; top: 0; z-index: 200;
	background: var(--te-red); color: #fff; padding: 10px 16px; border-radius: 0 0 10px 0;
}
.te-skip:focus { left: 0; }

.te-nav {
	position: fixed;
	inset: 0 0 auto 0;
	width: 100%;
	max-width: 100vw;
	z-index: 120;
	padding: 14px clamp(12px, 2vw, 24px) 0;
	pointer-events: none;
}
.te-nav__bar { max-width: min(84rem, 100%); }
.te-nav__mobile { max-width: min(84rem, calc(100% - 8px)); }
.te-nav__bar {
	pointer-events: auto;
	max-width: 84rem;
	margin: 0 auto;
	height: 66px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 0 12px 0 22px;
	border-radius: var(--te-radius-pill);
	border: 1px solid rgba(255,255,255,.14);
	background: rgba(28,20,34,.28);
	backdrop-filter: blur(16px) saturate(150%);
	-webkit-backdrop-filter: blur(16px) saturate(150%);
	transition: background .45s var(--te-ease), box-shadow .45s var(--te-ease), border-color .45s var(--te-ease);
}
/* Solid glass once scrolled OR on non-home pages (JS adds te-solid-nav) */
body.techedu-rebuild.te-scrolled .te-nav__bar,
body.techedu-rebuild.te-solid-nav .te-nav__bar {
	background: rgba(255,255,255,.82);
	border-color: rgba(26,20,32,.06);
	box-shadow: 0 14px 44px -18px rgba(26,20,32,.28);
}

.te-nav__brand { display: inline-flex; align-items: center; flex-shrink: 0; }
.te-nav__brand img { height: 34px; width: auto; display: block; transition: transform .3s var(--te-ease); }
.te-nav__brand:hover img { transform: translateY(-1px) scale(1.02); }
.te-nav__wordmark { font-family: var(--te-display); font-weight: 800; font-size: 22px; color: #fff; }
body.techedu-rebuild.te-scrolled .te-nav__wordmark,
body.techedu-rebuild.te-solid-nav .te-nav__wordmark { color: var(--te-ink); }

/* center links */
.te-nav__center { display: none; }
@media (min-width: 992px) {
	.te-nav__center { display: block; }
	.te-nav__center .te-nav__links {
		display: flex; align-items: center; gap: 2px;
		list-style: none; margin: 0; padding: 0;
	}
	.te-nav__center .te-nav__links > li > a {
		display: inline-block;
		padding: 9px 16px;
		border-radius: var(--te-radius-pill);
		font-family: var(--te-sans);
		font-weight: 600; font-size: 15px;
		color: rgba(255,255,255,.9);
		text-decoration: none;
		transition: color .25s var(--te-ease), background .25s var(--te-ease);
	}
	body.techedu-rebuild.te-scrolled .te-nav__center .te-nav__links > li > a,
	body.techedu-rebuild.te-solid-nav .te-nav__center .te-nav__links > li > a { color: var(--te-fg); }
	.te-nav__center .te-nav__links > li > a:hover,
	.te-nav__center .te-nav__links > li.current-menu-item > a { color: var(--te-red); background: rgba(176,30,30,.10); }
}

.te-nav__right { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.te-nav__icon {
	width: 42px; height: 42px;
	display: grid; place-items: center;
	border-radius: 50%;
	border: 1px solid rgba(255,255,255,.18);
	background: transparent; color: #fff; cursor: pointer;
	transition: background .2s, color .2s, border-color .2s;
}
.te-nav__icon svg { width: 18px; height: 18px; }
body.techedu-rebuild.te-scrolled .te-nav__icon,
body.techedu-rebuild.te-solid-nav .te-nav__icon { color: var(--te-fg); border-color: rgba(26,20,32,.12); }
.te-nav__icon:hover { color: var(--te-red); border-color: var(--te-red); }

.te-nav__cta {
	display: inline-flex; align-items: center; gap: 6px;
	padding: 11px 20px;
	border-radius: var(--te-radius-pill);
	background: linear-gradient(180deg, var(--te-red), var(--te-red-deep));
	color: #fff !important;
	font-family: var(--te-sans); font-weight: 600; font-size: 14.5px;
	text-decoration: none;
	box-shadow: var(--te-glow-red);
	transition: transform .18s var(--te-ease), filter .2s;
}
.te-nav__cta svg { width: 15px; height: 15px; transition: transform .2s; }
.te-nav__cta:hover { transform: translateY(-1px); filter: brightness(1.08); }
.te-nav__cta:hover svg { transform: translate(2px,-2px); }
@media (max-width: 560px) { .te-nav__cta { display: none; } }

.te-nav__burger {
	display: none;
	width: 42px; height: 42px;
	border-radius: 50%;
	border: 1px solid rgba(255,255,255,.18);
	background: transparent; cursor: pointer;
	flex-direction: column; align-items: center; justify-content: center; gap: 5px;
}
.te-nav__burger span { display: block; width: 20px; height: 2px; background: #fff; border-radius: 2px; transition: transform .3s var(--te-ease), opacity .2s; }
body.techedu-rebuild.te-scrolled .te-nav__burger span,
body.techedu-rebuild.te-solid-nav .te-nav__burger span { background: var(--te-ink); }
body.techedu-rebuild.te-scrolled .te-nav__burger,
body.techedu-rebuild.te-solid-nav .te-nav__burger { border-color: rgba(26,20,32,.12); }
@media (max-width: 991px) { .te-nav__burger { display: flex; } }
.te-nav.is-open .te-nav__burger span:nth-child(1) { transform: translateY(3.5px) rotate(45deg); }
.te-nav.is-open .te-nav__burger span:nth-child(2) { transform: translateY(-3.5px) rotate(-45deg); }

/* mobile panel */
.te-nav__mobile {
	pointer-events: auto;
	max-width: 84rem;
	margin: 10px auto 0;
	background: rgba(255,255,255,.96);
	border: 1px solid var(--te-line);
	border-radius: var(--te-radius-lg);
	box-shadow: 0 30px 80px -24px rgba(26,20,32,.5);
	padding: 12px;
	transform-origin: top right;
	animation: te-nav-pop .4s var(--te-ease);
}
.te-nav__mobile[hidden] { display: none; }
@keyframes te-nav-pop { from { opacity: 0; transform: scale(.96) translateY(-10px); } to { opacity: 1; transform: none; } }
.te-nav__mlinks { list-style: none; margin: 0; padding: 0; }
.te-nav__mlinks > li > a {
	display: block;
	padding: 14px 16px;
	border-radius: 14px;
	font-family: var(--te-display); font-weight: 600; font-size: 20px;
	color: var(--te-ink); text-decoration: none;
}
.te-nav__mlinks > li > a:hover,
.te-nav__mlinks > li.current-menu-item > a { background: rgba(176,30,30,.08); color: var(--te-red); }
.te-nav__cta--block { display: flex; justify-content: center; margin: 8px 6px 6px; }
.te-nav__backdrop { position: fixed; inset: 0; z-index: 115; background: rgba(18,13,22,.5); backdrop-filter: blur(3px); }
.te-nav__backdrop[hidden] { display: none; }

/* Neutralize the original theme header/footer if any fragment still prints */
body.techedu-rebuild #header,
body.techedu-rebuild #header-mobile { display: none !important; }

/* Hide the "DASHBOARD/NEW" nav badges that leak from menu items */
body.techedu-rebuild .te-nav .stm_lms_nav_badge,
body.techedu-rebuild .te-foot .stm_lms_nav_badge,
body.techedu-rebuild .te-nav__links .menu-label,
body.techedu-rebuild .te-foot__list .menu-label { display: none !important; }

/* Push page content below the fixed navbar (non-home pages get the banner right under). */
body.techedu-rebuild.te-has-fixed-nav #main,
body.techedu-rebuild.te-has-fixed-nav .stm_lms_breadcrumbs { margin-top: 0; }

/* =============================================================================
   PAGE-TITLE BANNER (breadcrumb header) -> dark cinematic band
   ============================================================================= */
body.techedu-rebuild .stm_lms_breadcrumbs.stm_lms_breadcrumbs__header_default {
	position: relative;
	overflow: hidden;
	padding: 132px 0 64px;
	border-bottom: 3px solid var(--te-red);
	background:
		radial-gradient(1100px 380px at 14% -40%, rgba(255,255,255,.08), transparent 60%),
		linear-gradient(120deg, #241a26 0%, #1a1420 55%, #120d16 100%);
}
body.techedu-rebuild .stm_lms_breadcrumbs__header_default::after {
	content: "";
	position: absolute;
	top: -55%;
	right: -5%;
	width: 440px;
	height: 440px;
	background: radial-gradient(circle, rgba(176,30,30,.5), transparent 62%);
	filter: blur(8px);
	pointer-events: none;
}
body.techedu-rebuild .stm_lms_breadcrumbs__header_default .container { position: relative; z-index: 2; }
body.techedu-rebuild .stm_lms_breadcrumbs__header_default h1,
body.techedu-rebuild .stm_lms_breadcrumbs__header_default .stm_lms_page_title,
body.techedu-rebuild .stm_lms_breadcrumbs__header_default .heading_font {
	color: #fff;
	font-weight: 800;
	font-size: var(--te-display-size);
	letter-spacing: -.02em;
	text-shadow: 0 2px 16px rgba(0,0,0,.35);
}
body.techedu-rebuild .stm_lms_breadcrumbs__header_default .navxtBreads {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 3px;
	margin-top: 14px;
	padding: 7px 16px;
	background: rgba(255,255,255,.08);
	border: 1px solid rgba(255,255,255,.14);
	border-radius: var(--te-radius-pill);
	backdrop-filter: blur(6px);
	font-size: 13px;
	color: rgba(255,255,255,.82);
}
body.techedu-rebuild .stm_lms_breadcrumbs__header_default .navxtBreads a { color: #fff; text-decoration: none; }
body.techedu-rebuild .stm_lms_breadcrumbs__header_default .navxtBreads a:hover { color: var(--te-red-soft); }
body.techedu-rebuild .stm_lms_breadcrumbs__header_default .current-item { color: #fff; font-weight: 600; }

/* =============================================================================
   COURSE LISTING CARDS
   ============================================================================= */
body.techedu-rebuild .stm_lms_courses__single {
	border: 1px solid var(--te-line) !important;
	border-radius: var(--te-radius) !important;
	overflow: hidden;
	background: var(--te-surface);
	box-shadow: var(--te-shadow);
	transition: transform .2s var(--te-ease), box-shadow .2s var(--te-ease), border-color .2s var(--te-ease);
}
body.techedu-rebuild .stm_lms_courses__single:hover {
	transform: translateY(-6px);
	box-shadow: var(--te-shadow-lift);
}
body.techedu-rebuild .stm_lms_courses__single--image__container img,
body.techedu-rebuild .stm_lms_courses__single--image img {
	width: 100%;
	aspect-ratio: 16/10;
	object-fit: cover;
	transition: transform .4s var(--te-ease);
}
body.techedu-rebuild .stm_lms_courses__single:hover .stm_lms_courses__single--image img { transform: scale(1.05); }
body.techedu-rebuild .elab_is_featured_product {
	background: var(--te-red);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	padding: 5px 11px;
	border-radius: var(--te-radius-pill);
	box-shadow: var(--te-glow-red);
}
body.techedu-rebuild .stm_lms_courses__single--terms .stm_lms_courses__single--term {
	display: inline-block;
	font-size: 11.5px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: var(--te-red);
	background: rgba(176,30,30,.08);
	padding: 4px 10px;
	border-radius: 8px;
}
body.techedu-rebuild .stm_lms_courses__single--title h5,
body.techedu-rebuild .stm_lms_courses__single--title a { font-size: 17px; font-weight: 700; line-height: 1.35; }
body.techedu-rebuild .stm_lms_courses__single--title a:hover h5 { color: var(--te-red); }
body.techedu-rebuild .stm_lms_courses__single--price strong { font-size: 17px; font-weight: 800; color: var(--te-ink); }
body.techedu-rebuild .stm_lms_courses__single--info {
	border-radius: var(--te-radius);
	box-shadow: var(--te-shadow-lift);
	border: 1px solid var(--te-line);
}

/* =============================================================================
   BUTTONS (theme-wide) -> pill, brand
   ============================================================================= */
body.techedu-rebuild .btn,
body.techedu-rebuild .stm_lms_button,
body.techedu-rebuild button.single_add_to_cart_button,
body.techedu-rebuild .masterstudy-button {
	border-radius: var(--te-radius-pill) !important;
	font-family: var(--te-sans);
	font-weight: 600;
	letter-spacing: .01em;
	transition: transform .12s var(--te-ease), filter .2s var(--te-ease), box-shadow .2s var(--te-ease);
}
body.techedu-rebuild .btn-default,
body.techedu-rebuild .btn.color,
body.techedu-rebuild .masterstudy-button {
	background: linear-gradient(180deg, var(--te-red), var(--te-red-deep)) !important;
	border: 0 !important;
	color: #fff !important;
	box-shadow: var(--te-glow-red);
}
body.techedu-rebuild .btn-default:hover,
body.techedu-rebuild .masterstudy-button:hover { transform: translateY(-2px); filter: brightness(1.08); }

/* =============================================================================
   FOOTER  ->  full odidevs rebuild (custom markup in footer.php)
   ============================================================================= */
.te-foot {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background: radial-gradient(120% 90% at 50% 0%, #241a26 0%, #160f1a 55%, #0c080f 100%);
	color: rgba(255,255,255,.72);
	font-family: var(--te-sans);
}
.te-foot__glow {
	position: absolute; left: 50%; top: 0;
	width: min(60rem, 100vw); height: 30rem;
	transform: translate(-50%, -38%);
	background: rgba(176,30,30,.20);
	filter: blur(150px);
	pointer-events: none; z-index: -1;
}
.te-foot__inner { max-width: 84rem; margin: 0 auto; padding: 104px clamp(1.25rem,.5rem + 3vw,3rem) 0; position: relative; z-index: 1; }

.te-foot__top { display: grid; gap: 48px; grid-template-columns: 1.3fr 1fr; align-items: start; }
.te-foot__cols { padding-top: 6px; }
@media (max-width: 860px) { .te-foot__top { grid-template-columns: 1fr; gap: 32px; } }

.te-foot__kicker {
	display: inline-flex; align-items: center; gap: .6rem;
	font-size: .82rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase;
	color: rgba(255,255,255,.7);
}
.te-foot__kicker::before { content: ""; width: 2rem; height: 1px; background: rgba(255,255,255,.4); }
.te-foot__headline {
	margin: 20px 0 0;
	max-width: 22ch;
	font-family: var(--te-display);
	font-weight: 800;
	font-size: clamp(1.9rem, 1rem + 3vw, 3.4rem);
	line-height: 1.04;
	letter-spacing: -.02em;
	color: #fff;
}
.te-foot__headline em { font-style: italic; color: var(--te-red-bright); }
.te-foot__actions { margin-top: 30px; display: flex; flex-wrap: wrap; gap: 12px; }
.te-foot__btn {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 13px 24px; border-radius: var(--te-radius-pill);
	font-weight: 600; font-size: 15px; text-decoration: none;
	transition: transform .18s var(--te-ease), filter .2s, background .2s;
}
.te-foot__btn svg { width: 16px; height: 16px; }
.te-foot__btn--primary { background: linear-gradient(180deg, var(--te-red), var(--te-red-deep)); color: #fff; box-shadow: var(--te-glow-red); }
.te-foot__btn--primary:hover { transform: translateY(-2px); filter: brightness(1.08); }
.te-foot__btn--ghost { border: 1px solid rgba(255,255,255,.22); color: #fff; }
.te-foot__btn--ghost:hover { background: rgba(255,255,255,.1); }
.te-foot__loc { margin-top: 22px; font-size: 14px; color: rgba(255,255,255,.45); }

.te-foot__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
@media (min-width: 861px) { .te-foot__cols { justify-items: end; } }
.te-foot__coltitle { font-size: .82rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: rgba(255,255,255,.55); margin: 0 0 22px; }
.te-foot__list { list-style: none; margin: 0; padding: 0; }
.te-foot__list li { margin: 0 0 12px; }
.te-foot__list a {
	color: rgba(255,255,255,.72); text-decoration: none; font-size: 15px;
	display: inline-flex; align-items: center; gap: 6px;
	transition: color .15s var(--te-ease), padding-left .15s var(--te-ease);
}
.te-foot__list a:hover { color: #fff; padding-left: 4px; }
.te-foot__list a svg { width: 13px; height: 13px; opacity: .4; }

.te-foot__strip {
	margin-top: 56px;
	display: flex; flex-wrap: wrap; gap: 10px 24px;
	font-size: 14px; color: rgba(255,255,255,.55);
}
.te-foot__strip span { display: inline-flex; align-items: center; gap: 8px; }
.te-foot__strip span::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,.4); }

.te-foot__rule { margin-top: 40px; height: 1px; background: rgba(255,255,255,.1); }
.te-foot__bottom {
	margin-top: 24px;
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px;
}
.te-foot__brand { display: inline-flex; align-items: center; }
.te-foot__brand img { height: 30px; width: auto; filter: brightness(0) invert(1); opacity: .92; }
.te-foot__brand .te-foot__wm-text { font-family: var(--te-display); font-weight: 800; font-size: 22px; color: #fff; }
.te-foot__copy { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 14px; color: rgba(255,255,255,.45); margin: 0; }
.te-foot__socials { display: flex; align-items: center; gap: 10px; }
.te-foot__socials a {
	width: 40px; height: 40px; border-radius: 50%;
	display: grid; place-items: center;
	background: rgba(255,255,255,.08); color: #fff;
	transition: background .18s var(--te-ease), transform .18s var(--te-ease);
}
.te-foot__socials a svg { width: 17px; height: 17px; }
.te-foot__socials a:hover { background: var(--te-red); transform: translateY(-2px); }

.te-foot__watermark {
	display: block; text-align: center;
	font-family: var(--te-display); font-weight: 800;
	font-size: 15vw; line-height: .8; letter-spacing: -.03em;
	color: rgba(255,255,255,.045);
	padding: 26px 0 6px; margin-top: 20px;
	pointer-events: none; user-select: none;
}

/* Hide any original theme footer if a fragment still prints */
body.techedu-rebuild #footer:not(.te-foot) { display: none !important; }

@media (max-width: 640px) {
	.te-foot__inner { padding-left: 22px; padding-right: 22px; }
	.te-foot__strip { margin-top: 40px; }
	.te-foot__bottom { flex-direction: column; align-items: flex-start; gap: 20px; }
	.te-foot__watermark { font-size: 22vw; }
}

/* =============================================================================
   LOGIN / AUTH
   ============================================================================= */
body.techedu-rebuild .pmpro_login_wrap {
	max-width: 460px;
	margin: 46px auto;
	background: var(--te-surface);
	border: 1px solid var(--te-line);
	border-radius: var(--te-radius-lg);
	padding: 38px 34px;
	box-shadow: var(--te-shadow-lift);
}
body.techedu-rebuild .pmpro_login_wrap label { font-size: 13px; font-weight: 600; color: var(--te-ink); display: block; margin-bottom: 7px; }
body.techedu-rebuild .pmpro_login_wrap .login-username,
body.techedu-rebuild .pmpro_login_wrap .login-password { margin-bottom: 18px; }
body.techedu-rebuild .pmpro_login_wrap input[type="text"],
body.techedu-rebuild .pmpro_login_wrap input[type="password"],
body.techedu-rebuild .pmpro_login_wrap input[type="email"] {
	width: 100%;
	box-sizing: border-box;
	padding: 13px 15px;
	border: 1px solid #e0d5d3;
	border-radius: 12px;
	font-size: 15px;
	background: var(--te-surface-2);
	transition: border-color .15s var(--te-ease), box-shadow .15s var(--te-ease), background .15s var(--te-ease);
}
body.techedu-rebuild .pmpro_login_wrap input[type="text"]:focus,
body.techedu-rebuild .pmpro_login_wrap input[type="password"]:focus,
body.techedu-rebuild .pmpro_login_wrap input[type="email"]:focus {
	outline: none;
	background: #fff;
	border-color: var(--te-red);
	box-shadow: 0 0 0 4px rgba(176,30,30,.12);
}
body.techedu-rebuild .pmpro_login_wrap .login-submit input[type="submit"],
body.techedu-rebuild .pmpro_login_wrap #wp-submit {
	width: 100%;
	padding: 14px 20px;
	border: 0;
	border-radius: var(--te-radius-pill);
	background: linear-gradient(180deg, var(--te-red), var(--te-red-deep));
	color: #fff;
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
	transition: filter .15s var(--te-ease), transform .05s var(--te-ease);
}
body.techedu-rebuild .pmpro_login_wrap .login-submit input[type="submit"]:hover,
body.techedu-rebuild .pmpro_login_wrap #wp-submit:hover { filter: brightness(1.08); }
body.techedu-rebuild .pmpro-login-links a,
body.techedu-rebuild .pmpro_actions_nav a { color: var(--te-red); font-weight: 600; text-decoration: none; }

/* =============================================================================
   AUTH / LOGIN  ->  split-screen
   ============================================================================= */
body.techedu-rebuild.page-login .stm_lms_breadcrumbs,
body.techedu-rebuild.page-template-page-login .stm_lms_breadcrumbs { display: none; }

.te-auth {
	display: grid;
	grid-template-columns: 1.05fr 1fr;
	min-height: 100vh;
	background: var(--te-base);
}
@media (max-width: 860px) { .te-auth { grid-template-columns: 1fr; } }

.te-auth__panel {
	position: relative; isolation: isolate; overflow: hidden;
	display: flex; flex-direction: column; justify-content: space-between;
	padding: clamp(2rem, 1.5rem + 3vw, 4rem);
	padding-top: 112px;
	color: #fff;
	background: radial-gradient(120% 90% at 20% 0%, #2a1e2e 0%, #1a1420 55%, #120d16 100%);
}
.te-auth__form { padding-top: 112px; }
@media (max-width: 860px) { .te-auth__panel { min-height: 320px; } }
.te-auth__glow { position: absolute; left: -10%; top: -20%; width: 34rem; height: 24rem; background: rgba(176,30,30,.4); filter: blur(130px); z-index: -1; }
.te-auth__brand img { height: 40px; width: auto; }
.te-auth__wm { font-family: var(--te-display); font-weight: 800; font-size: 26px; color: #fff; }
.te-auth__pitch { padding: 2rem 0; }
.te-auth__headline { color: #fff; font-family: var(--te-display); font-weight: 800; font-size: clamp(2rem,1.3rem + 2.5vw,3.2rem); line-height: 1.05; letter-spacing: -.02em; margin: 16px 0 0; max-width: 16ch; }
.te-auth__sub { color: rgba(255,255,255,.72); font-size: 1.05rem; line-height: 1.6; margin: 16px 0 0; max-width: 44ch; }
.te-auth__list { list-style: none; margin: 26px 0 0; padding: 0; }
.te-auth__list li { position: relative; padding-left: 28px; margin-bottom: 12px; color: rgba(255,255,255,.82); }
.te-auth__list li::before { content: "\2713"; position: absolute; left: 0; top: 0; width: 18px; height: 18px; color: var(--te-red-bright); font-weight: 700; }
.te-auth__foot { color: rgba(255,255,255,.4); font-size: 13px; margin: 0; }

.te-auth__form { display: grid; place-items: center; padding: clamp(2rem, 1.5rem + 4vw, 5rem) clamp(1.25rem,.5rem + 3vw,3rem); }
.te-auth__card { width: 100%; max-width: 420px; }
.te-auth__badge { display: inline-flex; align-items: center; gap: 6px; padding: 6px 14px; border-radius: 999px; background: var(--te-red); color: #fff; font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.te-auth__title { font-size: clamp(1.8rem,1.3rem + 1.5vw,2.4rem); font-weight: 800; letter-spacing: -.02em; margin: 14px 0 6px; }
.te-auth__note { color: var(--te-muted); margin: 0 0 26px; }

/* Reuse the login form styling from the pmpro block, but full width here */
.te-auth__card .pmpro_login_wrap { max-width: none; margin: 0; padding: 0; border: 0; box-shadow: none; background: transparent; }

.te-auth__submit {
	display: inline-flex; align-items: center; justify-content: center;
	width: 100%; padding: 14px 20px; border-radius: var(--te-radius-pill);
	background: linear-gradient(180deg, var(--te-red), var(--te-red-deep)); color: #fff;
	font-weight: 700; text-decoration: none; box-shadow: var(--te-glow-red);
	transition: filter .2s, transform .15s;
}
.te-auth__submit:hover { filter: brightness(1.08); transform: translateY(-1px); }
.te-auth__alt { display: block; text-align: center; margin-top: 16px; color: var(--te-red); font-weight: 600; text-decoration: none; }
.te-auth__alt:hover { text-decoration: underline; }

/* =============================================================================
   CONTACT PAGE
   ============================================================================= */
body.techedu-rebuild.page-contact-us .stm_lms_breadcrumbs { display: none; }
.te-contact .te-wrap { max-width: 84rem; margin: 0 auto; padding-inline: clamp(1.25rem,.5rem + 3vw,3rem); }
.te-contact .te-sec { padding: clamp(3rem,2rem + 4vw,5.5rem) 0; }

.te-contact__hero {
	position: relative; isolation: isolate; overflow: hidden;
	padding: 150px 0 70px;
	background: radial-gradient(120% 90% at 15% 0%, #2a1e2e 0%, #1a1420 55%, #120d16 100%);
	color: #fff;
}
.te-contact__glow { position: absolute; left: 50%; top: 0; width: min(48rem,100vw); height: 24rem; transform: translate(-50%,-40%); background: rgba(176,30,30,.28); filter: blur(140px); z-index: -1; }
.te-contact__title { color: #fff; font-family: var(--te-display); font-weight: 800; font-size: var(--te-display-size); line-height: 1.05; letter-spacing: -.02em; margin: 16px 0 0; max-width: 18ch; }
.te-contact__lead { color: rgba(255,255,255,.75); font-size: 1.15rem; line-height: 1.6; margin: 16px 0 0; max-width: 52ch; }

.te-contact__grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(1.5rem,1rem + 3vw,3rem); align-items: start; }
@media (max-width: 860px) { .te-contact__grid { grid-template-columns: 1fr; } }

.te-contact__card {
	display: flex; gap: 16px; align-items: flex-start;
	background: var(--te-surface); border: 1px solid var(--te-line);
	border-radius: var(--te-radius); padding: 22px 22px; margin-bottom: 16px;
	box-shadow: var(--te-shadow);
}
.te-contact__icon { flex: 0 0 auto; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 13px; background: rgba(176,30,30,.08); color: var(--te-red); }
.te-contact__icon svg { width: 22px; height: 22px; }
.te-contact__card-title { margin: 0 0 6px; font-size: 1.1rem; font-weight: 700; }
.te-contact__card-line { margin: 0; color: var(--te-muted); line-height: 1.5; }
.te-contact__socials { margin-top: 24px; }
.te-contact__socials-label { display: block; font-size: .8rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--te-muted); margin-bottom: 12px; }
.te-contact__socials-row { display: flex; gap: 10px; }
.te-contact__socials-row a { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--te-ink); color: #fff; transition: background .2s, transform .2s; }
.te-contact__socials-row a:hover { background: var(--te-red); transform: translateY(-2px); }
.te-contact__socials-row svg { width: 18px; height: 18px; }

.te-contact__formcard { background: var(--te-surface); border: 1px solid var(--te-line); border-radius: var(--te-radius-lg); padding: clamp(1.9rem,1.2rem + 2.2vw,3rem); box-shadow: var(--te-shadow-lift); }
.te-contact__form-title { margin: 0 0 6px; font-size: 1.6rem; font-weight: 800; letter-spacing: -.02em; }
.te-contact__form-sub { margin: 0 0 24px; color: var(--te-muted); }

/* Style the CF7 form */
.te-contact__formcard .wpcf7-form p { margin: 0 0 18px; }
.te-contact__formcard .wpcf7-form label { display: block; font-weight: 600; font-size: .9rem; color: var(--te-ink); }
.te-contact__formcard .wpcf7-form label br { display: none; }
.te-contact__formcard .wpcf7-form-control-wrap { display: block; margin-top: 8px; }
.te-contact__formcard input[type="text"],
.te-contact__formcard input[type="email"],
.te-contact__formcard input[type="tel"],
.te-contact__formcard input[type="url"],
.te-contact__formcard textarea,
.te-contact__formcard select {
	width: 100%; box-sizing: border-box;
	padding: 15px 18px !important; border: 1px solid #e0d5d3; border-radius: 12px;
	font-size: 15px; line-height: 1.4; background: var(--te-surface-2); font-family: var(--te-sans);
	transition: border-color .15s var(--te-ease), box-shadow .15s var(--te-ease), background .15s var(--te-ease);
}
.te-contact__formcard textarea { min-height: 150px; resize: vertical; padding: 16px 18px !important; }
.te-contact__formcard .wpcf7-form label { margin-bottom: 2px; }
.te-contact__formcard input:focus, .te-contact__formcard textarea:focus, .te-contact__formcard select:focus {
	outline: none; background: #fff; border-color: var(--te-red); box-shadow: 0 0 0 4px rgba(176,30,30,.12);
}
.te-contact__formcard .wpcf7-submit {
	width: 100%; padding: 14px 24px; border: 0; border-radius: var(--te-radius-pill);
	background: linear-gradient(180deg, var(--te-red), var(--te-red-deep)); color: #fff;
	font-weight: 700; font-size: 15px; cursor: pointer; box-shadow: var(--te-glow-red);
	transition: filter .2s, transform .12s;
}
.te-contact__formcard .wpcf7-submit:hover { filter: brightness(1.08); transform: translateY(-1px); }

.te-contact__map { margin-top: 8px; }
.te-contact__map iframe { display: block; filter: grayscale(.15); }

/* =============================================================================
   SINGLE COURSE  ->  ultra-modern restyle of MasterStudy "modern" layout
   ============================================================================= */
body.techedu-rebuild.single-stm-courses .stm_lms_breadcrumbs__header_default { padding-top: 122px; }

body.techedu-rebuild .masterstudy-single-course-title {
	font-family: var(--te-display); font-weight: 800; letter-spacing: -.02em; line-height: 1.06;
	text-shadow: 0 2px 18px rgba(0,0,0,.4);
}
/* The "modern" course header title is white by design (sits over the course
   banner image). Give the header a dark fallback so the title is always
   readable even when the banner image is missing. background-color sits behind
   any background-image, so the real banner still shows on top. */
body.techedu-rebuild .masterstudy-single-course-modern__topbar {
	background-color: #1a1420;
	background-position: center;
	background-size: cover;
	border-radius: var(--te-radius-lg);
	overflow: hidden;
	position: relative;
	padding: clamp(1.75rem, 1rem + 2.5vw, 3rem);
}
/* breathing room between the header meta items */
body.techedu-rebuild .masterstudy-single-course-modern__topbar .masterstudy-single-course-instructor,
body.techedu-rebuild .masterstudy-single-course-modern__topbar .masterstudy-single-course-categories,
body.techedu-rebuild .masterstudy-single-course-modern__topbar .masterstudy-single-course-current-students { margin-top: 18px; }
body.techedu-rebuild .masterstudy-single-course-modern__topbar::before {
	content: ""; position: absolute; inset: 0; z-index: 0;
	background: linear-gradient(120deg, rgba(18,13,22,.82) 0%, rgba(18,13,22,.55) 60%, rgba(120,20,20,.4) 100%);
	pointer-events: none;
}
body.techedu-rebuild .masterstudy-single-course-modern__topbar > * { position: relative; z-index: 1; }
/* keep the intro/meta text on the dark header light */
body.techedu-rebuild .masterstudy-single-course-modern__topbar,
body.techedu-rebuild .masterstudy-single-course-modern__heading,
body.techedu-rebuild .masterstudy-single-course-modern__topbar a { color: #fff; }
body.techedu-rebuild .masterstudy-single-course-modern__topbar .masterstudy-single-course-excerpt,
body.techedu-rebuild .masterstudy-single-course-modern__topbar p { color: rgba(255,255,255,.82); }
/* sticky enroll / price sidebar → glass card */
body.techedu-rebuild .masterstudy-single-course-modern__sidebar > *,
body.techedu-rebuild .masterstudy-single-course-stickybar {
	border-radius: var(--te-radius) !important;
	border: 1px solid var(--te-line) !important;
	box-shadow: var(--te-shadow-lift) !important;
	overflow: hidden;
}
/* tabs */
body.techedu-rebuild .masterstudy-single-course-tabs__item {
	font-family: var(--te-sans); font-weight: 600; border-radius: var(--te-radius-pill);
	transition: color .2s, background .2s;
}
body.techedu-rebuild .masterstudy-single-course-tabs__item_active,
body.techedu-rebuild .masterstudy-single-course-tabs__item:hover { color: var(--te-red); }
body.techedu-rebuild .masterstudy-single-course-tabs_style-underline .masterstudy-single-course-tabs__item_active { box-shadow: inset 0 -2px 0 var(--te-red); }
/* Content-body info blocks → cards. NOT the instructor/category blocks, which
   live in the dark header (their text is white there — a white card would hide it). */
body.techedu-rebuild .masterstudy-single-course-tabs__content .masterstudy-single-course-details,
body.techedu-rebuild .masterstudy-single-course-tabs__content .masterstudy-prerequisites-list {
	border: 1px solid var(--te-line);
	border-radius: var(--te-radius);
	background: var(--te-surface);
	box-shadow: var(--te-shadow);
	padding: 22px 22px;
}
body.techedu-rebuild .masterstudy-single-course-instructor__avatar img { border-radius: 50%; }
/* Ensure every bit of header text stays readable on the dark topbar. */
body.techedu-rebuild .masterstudy-single-course-modern__topbar,
body.techedu-rebuild .masterstudy-single-course-modern__topbar .masterstudy-single-course-instructor__name,
body.techedu-rebuild .masterstudy-single-course-modern__topbar .masterstudy-single-course-categories__item,
body.techedu-rebuild .masterstudy-single-course-modern__topbar .masterstudy-single-course-categories__item a,
body.techedu-rebuild .masterstudy-single-course-modern__topbar .masterstudy-single-course-instructor__info * { color: #fff; }
body.techedu-rebuild .masterstudy-single-course-modern__topbar .masterstudy-single-course-instructor__title,
body.techedu-rebuild .masterstudy-single-course-modern__topbar .masterstudy-single-course-categories__title { color: rgba(255,255,255,.7); }
/* curriculum accordion */
body.techedu-rebuild .masterstudy-curriculum-list__section {
	border: 1px solid var(--te-line);
	border-radius: var(--te-radius);
	overflow: hidden;
	margin-bottom: 12px;
	background: var(--te-surface);
}
body.techedu-rebuild .masterstudy-curriculum-list__section-title { font-family: var(--te-display); font-weight: 700; }
body.techedu-rebuild .masterstudy-curriculum-list__item:hover { background: rgba(176,30,30,.04); }
/* related / popular course prices */
body.techedu-rebuild .masterstudy-popular-courses__price,
body.techedu-rebuild .masterstudy-related-courses__price { color: var(--te-red); font-weight: 800; }

/* =============================================================================
   CURVED SECTION HELPERS (for homepage sections, phase 2)
   ============================================================================= */
body.techedu-rebuild .te-section { padding: clamp(3.5rem, 2rem + 6vw, 7rem) 0; }
body.techedu-rebuild .te-curved-top { border-top-left-radius: var(--te-radius-lg); border-top-right-radius: var(--te-radius-lg); }
