/*
 Theme Name:   Eduma Child
 Theme URI:    http://educationwp.thimpress.com/
 Description:  Eduma Child Theme
 Author:       ThimPress
 Author URI:   http://thimpress.com
 Template:     eduma
 Version:      1.0.0
 Text Domain:  eduma-child
*/

/* =========================================================
   Header dropdown menu redesign (Elementor Nav Menu widget)
   Content unchanged — visual styling only.
   Brand maroon: #78011C
   ========================================================= */

/* Dropdown container -> clean white card with soft shadow + radius */
.elementor-element-74aff84 .elementor-nav-menu--main .sub-menu.elementor-nav-menu--dropdown,
.elementor-widget-nav-menu .elementor-nav-menu--main .sub-menu.elementor-nav-menu--dropdown {
	background-color: #ffffff !important;
	/* !important is required: SmartMenus sets a narrow inline width at runtime */
	min-width: 270px !important;
	max-width: 340px !important;
	width: auto !important;
	padding: 8px !important;
	margin-top: 10px !important;
	border: 1px solid rgba(20, 20, 40, 0.07) !important;
	border-radius: 12px !important;
	box-shadow: 0 14px 34px rgba(20, 20, 40, 0.16) !important;
	overflow: visible;
	animation: bcDropdownIn 0.18s ease-out;
}

/* Invisible hover bridge so the gap above the dropdown doesn't break hover */
.elementor-element-74aff84 .elementor-nav-menu--main .sub-menu.elementor-nav-menu--dropdown::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: -10px;
	height: 10px;
	background: transparent;
}

@keyframes bcDropdownIn {
	from { opacity: 0; transform: translateY(6px); }
	to   { opacity: 1; transform: translateY(0); }
}

/* Dropdown items -> dark text, generous padding, rounded, no divider slabs */
.elementor-element-74aff84 .elementor-nav-menu--main .sub-menu.elementor-nav-menu--dropdown a.elementor-sub-item,
.elementor-element-74aff84 .elementor-nav-menu--main .sub-menu.elementor-nav-menu--dropdown li > a {
	color: #2a2a33 !important;
	background-color: transparent !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	line-height: 1.35 !important;
	padding: 11px 16px !important;
	border: 0 !important;
	border-radius: 8px !important;
	white-space: normal !important;
	transition: background-color 0.15s ease, color 0.15s ease, padding-left 0.15s ease;
}

/* Hover / focus / active -> light maroon tint + brand maroon text */
.elementor-element-74aff84 .elementor-nav-menu--main .sub-menu.elementor-nav-menu--dropdown li > a:hover,
.elementor-element-74aff84 .elementor-nav-menu--main .sub-menu.elementor-nav-menu--dropdown li > a:focus,
.elementor-element-74aff84 .elementor-nav-menu--main .sub-menu.elementor-nav-menu--dropdown li.current-menu-item > a,
.elementor-element-74aff84 .elementor-nav-menu--main .sub-menu.elementor-nav-menu--dropdown li:hover > a {
	background-color: #f6ebee !important;
	color: #78011C !important;
	padding-left: 20px !important;
}

/* Nested fly-out submenus: open to the SIDE (right of parent item), never overlap */
.elementor-element-74aff84 .elementor-nav-menu--main .sub-menu li.menu-item-has-children {
	position: relative;
}
.elementor-element-74aff84 .elementor-nav-menu--main .sub-menu li.menu-item-has-children > .sub-menu.elementor-nav-menu--dropdown {
	top: -8px !important;
	left: 100% !important;
	right: auto !important;
	margin: 0 0 0 6px !important;
}

/* Hover bridge for nested fly-out sits on the LEFT gap, not the top */
.elementor-element-74aff84 .elementor-nav-menu--main .sub-menu li.menu-item-has-children > .sub-menu.elementor-nav-menu--dropdown::before {
	top: 0;
	bottom: 0;
	left: -6px;
	right: auto;
	width: 6px;
	height: auto;
}

/* Right-aligned top menus (Operating Policies, Student Support): flip nested
   fly-out to the LEFT so it doesn't overflow the viewport edge. */
.elementor-element-74aff84 .elementor-nav-menu--main li.menu-item-17564 li.menu-item-has-children > .sub-menu.elementor-nav-menu--dropdown,
.elementor-element-74aff84 .elementor-nav-menu--main li.menu-item-17635 li.menu-item-has-children > .sub-menu.elementor-nav-menu--dropdown {
	left: auto !important;
	right: 100% !important;
	margin: 0 6px 0 0 !important;
}
.elementor-element-74aff84 .elementor-nav-menu--main li.menu-item-17564 li.menu-item-has-children > .sub-menu.elementor-nav-menu--dropdown::before,
.elementor-element-74aff84 .elementor-nav-menu--main li.menu-item-17635 li.menu-item-has-children > .sub-menu.elementor-nav-menu--dropdown::before {
	left: auto;
	right: -6px;
}

/* Fly-out chevron arrows inherit text colour, subtle */
.elementor-element-74aff84 .elementor-nav-menu--main .sub-menu .sub-arrow,
.elementor-element-74aff84 .elementor-nav-menu--main .sub-menu .sub-arrow::before {
	color: inherit !important;
	border-color: currentColor !important;
	opacity: 0.55;
}

/* =========================================================
   Academic look + motion (child theme)
   ========================================================= */

/* ---- Typography: serif headings for an academic feel ---- */
.wrapper-container h1,
.wrapper-container h2,
.wrapper-container h3,
.wrapper-container .title,
.wrapper-container .elementor-heading-title,
.wrapper-container .heading__primary,
.wrapper-container .widget-title,
.thim-ekit__footer .widget-title {
	font-family: 'Lora', Georgia, 'Times New Roman', serif !important;
}

/* Section titles -> natural Title Case, lighter weight, calmer spacing */
.wrapper-container h2.title,
.wrapper-container .elementor-widget-heading h2.elementor-heading-title {
	text-transform: capitalize !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	letter-spacing: 0.2px !important;
	color: #1f2430;
}

/* ---- Card hover lift (Campus Life + News) ---- */
.wrapper-box-icon,
.thim-ekits-post__article {
	transition: transform 0.28s ease, box-shadow 0.28s ease;
	will-change: transform;
}
.wrapper-box-icon:hover,
.thim-ekits-post__article:hover {
	transform: translateY(-6px);
}
.thim-ekits-post__article:hover {
	box-shadow: 0 18px 40px rgba(20, 20, 40, 0.14);
}

/* Campus Life -> proper white cards (so the lift/shadow reads correctly
   instead of a stray shadow around the transparent wrapper) */
.wrapper-box-icon .smicon-box.iconbox-top {
	background: #ffffff;
	border: 1px solid rgba(20, 20, 40, 0.07);
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 6px 18px rgba(20, 20, 40, 0.06);
	height: 100%;
	transition: box-shadow 0.28s ease;
}
.wrapper-box-icon:hover .smicon-box.iconbox-top {
	box-shadow: 0 18px 40px rgba(20, 20, 40, 0.14);
}
/* Image flush to the top edge, uniform size across all cards */
.wrapper-box-icon .boxes-icon,
.wrapper-box-icon .boxes-icon .icon-box-link,
.wrapper-box-icon .boxes-icon .inner-icon,
.wrapper-box-icon .icon.icon-images {
	display: block;
	width: 100% !important;
	margin: 0 !important;
}
/* Lock every Campus Life image to the same frame */
.wrapper-box-icon .icon.icon-images {
	aspect-ratio: 4 / 3;
	overflow: hidden;
	position: relative;
}
.wrapper-box-icon .icon.icon-images img {
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover;
	display: block;
	transition: transform 0.5s ease;
}
.wrapper-box-icon:hover .icon.icon-images img {
	transform: scale(1.05);
}
.wrapper-box-icon .content-inner {
	padding: 18px 22px 24px !important;
}
/* Equal card heights across the row */
.wrapper-box-icon,
.wrapper-box-icon .smicon-box.iconbox-top {
	height: 100%;
}
.wrapper-box-icon .smicon-box.iconbox-top {
	display: flex;
	flex-direction: column;
}
.wrapper-box-icon .content-inner {
	flex: 1;
}
/* Force the 4 Campus Life columns to equal width (they were content-sized) */
.elementor-element-c7088de { align-items: stretch !important; }
.elementor-element-c7088de > .elementor-element {
	flex: 1 1 0 !important;
	width: auto !important;
	min-width: 0 !important;
	max-width: none !important;
}
/* Complete the height chain so every card fills the (equal) column height */
.elementor-element-c7088de > .elementor-element > .elementor-widget-container,
.elementor-element-c7088de > .elementor-element > .elementor-widget-container > div {
	height: 100%;
}

/* Gentle image zoom inside news cards */
.thim-ekits-post__article .thim-ekits-post__feature,
.thim-ekits-post__article .post-formats-wrapper,
.thim-ekits-post__article figure,
.thim-ekits-post__article .thumbnail {
	overflow: hidden;
}
.thim-ekits-post__article img {
	transition: transform 0.5s ease;
}
.thim-ekits-post__article:hover img {
	transform: scale(1.06);
}

/* ---- Button micro-interactions ---- */
.wrapper-container .elementor-button {
	transition: transform 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease !important;
}
.wrapper-container .elementor-button:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(120, 1, 28, 0.25);
}

/* ---- Sticky header shrink (no layout shift: shadow + logo scale) ---- */
.thim-ekit__header {
	transition: box-shadow 0.3s ease, background-color 0.3s ease;
}
.thim-ekit__header.bc-scrolled {
	background-color: #ffffff;
	box-shadow: 0 6px 22px rgba(20, 20, 40, 0.10);
}
.thim-ekit__header .elementor-widget-image,
.thim-ekit__header .elementor-widget-theme-site-logo {
	transition: transform 0.3s ease;
}
.thim-ekit__header.bc-scrolled .elementor-widget-image,
.thim-ekit__header.bc-scrolled .elementor-widget-theme-site-logo {
	transform: scale(0.88);
	transform-origin: left center;
}

/* ---- Scroll reveal (only active once JS adds .bc-reveal-ready) ---- */
body.bc-reveal-ready .bc-reveal {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity 0.6s ease, transform 0.6s ease;
	will-change: opacity, transform;
}
body.bc-reveal-ready .bc-reveal.bc-in {
	opacity: 1;
	transform: none;
}

/* ---- Blur-in section headings (elegant text reveal) ---- */
body.bc-reveal-ready .bc-reveal h2.title {
	opacity: 0;
	filter: blur(7px);
	transform: translateY(8px);
	transition: opacity 0.7s ease, filter 0.7s ease, transform 0.7s ease;
}
body.bc-reveal-ready .bc-reveal.bc-in h2.title {
	opacity: 1;
	filter: blur(0);
	transform: none;
}

/* ---- Staggered card reveal (cards rise one-by-one within a section) ---- */
body.bc-reveal-ready .bc-reveal .bc-event-card,
body.bc-reveal-ready .bc-reveal .wrapper-box-icon {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity 0.55s ease, transform 0.55s ease;
}
body.bc-reveal-ready .bc-reveal.bc-in .bc-event-card,
body.bc-reveal-ready .bc-reveal.bc-in .wrapper-box-icon {
	opacity: 1;
	transform: none;
}
.bc-reveal.bc-in .bc-event-card:nth-child(2),
.bc-reveal.bc-in .wrapper-box-icon:nth-child(2) { transition-delay: 0.09s; }
.bc-reveal.bc-in .bc-event-card:nth-child(3),
.bc-reveal.bc-in .wrapper-box-icon:nth-child(3) { transition-delay: 0.18s; }
.bc-reveal.bc-in .bc-event-card:nth-child(4),
.bc-reveal.bc-in .wrapper-box-icon:nth-child(4) { transition-delay: 0.27s; }
.bc-reveal.bc-in .bc-event-card:nth-child(5),
.bc-reveal.bc-in .wrapper-box-icon:nth-child(5) { transition-delay: 0.36s; }
.bc-reveal.bc-in .bc-event-card:nth-child(6),
.bc-reveal.bc-in .wrapper-box-icon:nth-child(6) { transition-delay: 0.45s; }

/* =========================================================
   Footer redesign (Thim Elementor Kit footer) — styling only
   ========================================================= */

/* Main dark area -> deep gradient + brand top accent + breathing room */
.thim-ekit__footer .elementor-element-f8fa2a9 {
	background: linear-gradient(180deg, #1e2127 0%, #15171c 100%) !important;
	border-top: 4px solid #78011C;
	padding-top: 64px !important;
	padding-bottom: 40px !important;
}

/* Default footer text -> soft light grey */
.thim-ekit__footer .elementor-element-f8fa2a9,
.thim-ekit__footer .elementor-element-f8fa2a9 p,
.thim-ekit__footer .elementor-element-f8fa2a9 .elementor-icon-list-text {
	color: #b3b7c0;
}

/* Column headings (h4.title inside .sc_heading) -> white serif + maroon underline */
.thim-ekit__footer .elementor-element-f8fa2a9 .sc_heading .title,
.thim-ekit__footer .elementor-element-f8fa2a9 .widget-title {
	position: relative;
	color: #ffffff !important;
	font-family: 'Lora', Georgia, serif !important;
	font-size: 19px !important;
	font-weight: 600 !important;
	letter-spacing: 0.2px;
	padding-bottom: 14px !important;
	margin-bottom: 18px !important;
}
.thim-ekit__footer .elementor-element-f8fa2a9 .sc_heading .title::after,
.thim-ekit__footer .elementor-element-f8fa2a9 .widget-title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 40px;
	height: 2px;
	background: #78011C;
}

/* Social icons -> circular buttons that lift + fill maroon on hover */
.thim-ekit__footer .elementor-element-f8fa2a9 a[href*="facebook"],
.thim-ekit__footer .elementor-element-f8fa2a9 a[href*="twitter"],
.thim-ekit__footer .elementor-element-f8fa2a9 a[href*="x.com"],
.thim-ekit__footer .elementor-element-f8fa2a9 a[href*="instagram"],
.thim-ekit__footer .elementor-element-f8fa2a9 a[href*="pinterest"],
.thim-ekit__footer .elementor-element-f8fa2a9 a[href*="linkedin"],
.thim-ekit__footer .elementor-element-f8fa2a9 a[href*="youtube"] {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	margin-right: 9px;
	border-radius: 50%;
	background-color: rgba(255, 255, 255, 0.08);
	transition: background-color 0.2s ease, transform 0.2s ease;
}
.thim-ekit__footer .elementor-element-f8fa2a9 a[href*="facebook"]:hover,
.thim-ekit__footer .elementor-element-f8fa2a9 a[href*="twitter"]:hover,
.thim-ekit__footer .elementor-element-f8fa2a9 a[href*="x.com"]:hover,
.thim-ekit__footer .elementor-element-f8fa2a9 a[href*="instagram"]:hover,
.thim-ekit__footer .elementor-element-f8fa2a9 a[href*="pinterest"]:hover,
.thim-ekit__footer .elementor-element-f8fa2a9 a[href*="linkedin"]:hover,
.thim-ekit__footer .elementor-element-f8fa2a9 a[href*="youtube"]:hover {
	background-color: #78011C;
	transform: translateY(-3px);
}
.thim-ekit__footer .elementor-element-f8fa2a9 a[href*="facebook"] svg,
.thim-ekit__footer .elementor-element-f8fa2a9 a[href*="twitter"] svg,
.thim-ekit__footer .elementor-element-f8fa2a9 a[href*="x.com"] svg,
.thim-ekit__footer .elementor-element-f8fa2a9 a[href*="instagram"] svg,
.thim-ekit__footer .elementor-element-f8fa2a9 a[href*="pinterest"] svg,
.thim-ekit__footer .elementor-element-f8fa2a9 a[href*="linkedin"] svg,
.thim-ekit__footer .elementor-element-f8fa2a9 a[href*="youtube"] svg {
	width: 16px;
	height: 16px;
	fill: #ffffff;
}

/* Links -> muted, slide + brighten on hover */
.thim-ekit__footer .elementor-element-f8fa2a9 a {
	color: #b3b7c0 !important;
	text-decoration: none;
	transition: color 0.2s ease, padding-left 0.2s ease;
}
.thim-ekit__footer .elementor-element-f8fa2a9 a:hover {
	color: #ffffff !important;
}
/* Column list links get a subtle indent-on-hover */
.thim-ekit__footer .elementor-element-f8fa2a9 li a:hover {
	padding-left: 6px;
	color: #ff6b86 !important;
}

/* Social icons -> circular, lift + fill maroon on hover */
.thim-ekit__footer .elementor-social-icon {
	background-color: rgba(255, 255, 255, 0.08) !important;
	color: #ffffff !important;
	width: 40px !important;
	height: 40px !important;
	border-radius: 50% !important;
	transition: transform 0.2s ease, background-color 0.2s ease !important;
}
.thim-ekit__footer .elementor-social-icon:hover {
	background-color: #78011C !important;
	transform: translateY(-3px);
}

/* Bottom bar (copyright + legal) -> darker strip with a divider */
.thim-ekit__footer .elementor-element-0fe0316 {
	background: #101216 !important;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	padding-top: 18px !important;
	padding-bottom: 18px !important;
}
.thim-ekit__footer .elementor-element-0fe0316 a,
.thim-ekit__footer .elementor-element-0fe0316 .elementor-heading-title {
	color: #9aa0ab !important;
	transition: color 0.2s ease;
}
.thim-ekit__footer .elementor-element-0fe0316 a:hover {
	color: #ffffff !important;
}

/* Match footer width to the main content sections (--content-width: 90%) */
.thim-ekit__footer .elementor-element-f8fa2a9 > .elementor-container,
.thim-ekit__footer .elementor-element-0fe0316 > .e-con-inner {
	max-width: 90% !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* Remove the empty/unconfigured footer menu widget ("Edit widget and choose a menu") */
.thim-ekit__footer .elementor-element-3018af9 {
	display: none !important;
}

/* =========================================================
   The Events Calendar -> brand maroon (replaces default purple)
   ========================================================= */
.tribe-common,
.tribe-events,
.tribe-events-pg-template {
	--tec-color-accent-primary: #78011C;
	--tec-color-accent-primary-hover: #5e0116;
	--tec-color-accent-primary-active: #4d0112;
	--tec-color-accent-primary-background: #78011C;
	--tec-color-button-primary: #78011C;
	--tec-color-button-primary-hover: #5e0116;
	--tec-color-button-primary-active: #4d0112;
	--tec-color-button-primary-background: #78011C;
	--tec-color-link-accent: #78011C;
	--tec-color-link-accent-hover: #5e0116;
}
/* Event titles in the brand serif */
.tribe-events .tribe-events-calendar-list__event-title,
.tribe-events .tribe-events-calendar-month__calendar-event-title,
.tribe-events .tribe-events-single-event-title {
	font-family: 'Lora', Georgia, serif !important;
}
/* TEC hardcodes some accents past the CSS vars -> force brand maroon */
.tribe-common .tribe-common-c-btn,
.tribe-events .tribe-common-c-btn,
.tribe-events-c-search__button,
.tribe-events .tribe-events-c-subscribe-dropdown__button-text {
	background-color: #78011C !important;
	border-color: #78011C !important;
}
.tribe-common .tribe-common-c-btn:hover,
.tribe-events .tribe-common-c-btn:hover,
.tribe-events-c-search__button:hover {
	background-color: #5e0116 !important;
	border-color: #5e0116 !important;
}
/* Active view tab + accent links/text */
.tribe-events .tribe-events-c-view-selector__list-item--active .tribe-events-c-view-selector__list-item-text,
.tribe-events .tribe-events-calendar-list__event-title-link,
.tribe-events .tribe-common-anchor-thin,
.tribe-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date {
	color: #78011C !important;
}
.tribe-events .tribe-events-c-view-selector__list-item--active .tribe-events-c-view-selector__list-item-text::after {
	background-color: #78011C !important;
}

/* =========================================================
   Eye-catching text + page animation
   ========================================================= */

@keyframes bcHeroIn {
	from { opacity: 0; transform: translateY(30px); }
	to   { opacity: 1; transform: translateY(0); }
}
@keyframes bcShine {
	from { left: -75%; }
	to   { left: 125%; }
}

/* Hero: staggered fade-up entrance on load (title -> subtitle -> button).
   'backwards' (not 'forwards') holds the start state during the delay yet
   lets the button hover-lift work after the animation finishes. */
.elementor-element-7d1883b .clone_title,
.elementor-element-7d1883b .sub-heading,
.elementor-element-7d1883b .widget-button {
	animation: bcHeroIn 0.9s cubic-bezier(0.2, 0.7, 0.2, 1) backwards;
}
.elementor-element-7d1883b .clone_title  { animation-delay: 0.10s; }
.elementor-element-7d1883b .sub-heading  { animation-delay: 0.32s; }
.elementor-element-7d1883b .widget-button { animation-delay: 0.54s; }

/* Hero button hover lift */
.elementor-element-7d1883b .widget-button {
	transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.elementor-element-7d1883b .widget-button:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 26px rgba(120, 1, 28, 0.32);
}

/* Animated underline that "draws" under centered section titles when revealed */
.wrapper-container .text-center h2.title {
	position: relative;
}
.wrapper-container .text-center h2.title::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -12px;
	transform: translateX(-50%);
	width: 0;
	height: 3px;
	border-radius: 3px;
	background: #78011C;
	transition: width 0.7s ease 0.15s;
}
/* Draw it once the section is revealed (or immediately if JS isn't running) */
.bc-in .text-center h2.title::after,
body:not(.bc-reveal-ready) .wrapper-container .text-center h2.title::after {
	width: 64px;
}

/* ---- Page symmetry: centre the "Latest News" heading (full-width section
   title) so it matches the other centred section titles. The "Welcome"
   heading is left as-is — it belongs to a 2-column image+text layout. ---- */
.elementor-element-0ec940d,
.elementor-element-0ec940d h2.title {
	text-align: center !important;
}
.elementor-element-0ec940d h2.title {
	position: relative;
}
.elementor-element-0ec940d h2.title::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -12px;
	transform: translateX(-50%);
	width: 0;
	height: 3px;
	border-radius: 3px;
	background: #78011C;
	transition: width 0.7s ease 0.15s;
}
.bc-in .elementor-element-0ec940d h2.title::after,
body:not(.bc-reveal-ready) .elementor-element-0ec940d h2.title::after {
	width: 64px;
}
/* Latest News header: make the title span full width + centre it, and pin
   the carousel arrows to the top-right corner so they don't fight the title */
.e-con-inner:has(> .elementor-element-0ec940d) { position: relative; }
.elementor-element-0ec940d {
	flex: 1 1 100% !important;
	width: 100% !important;
	text-align: center !important;
	padding-bottom: 8px;
}
.elementor-element-769206d {
	position: absolute !important;
	top: 0 !important;
	right: 0 !important;
	z-index: 3;
}

/* Button shine sweep on hover (primary buttons + hero button) */
.wrapper-container .elementor-button,
.elementor-element-7d1883b .widget-button {
	position: relative;
	overflow: hidden;
}
.wrapper-container .elementor-button::after,
.elementor-element-7d1883b .widget-button::after {
	content: "";
	position: absolute;
	top: 0;
	left: -75%;
	width: 50%;
	height: 100%;
	background: linear-gradient(120deg, transparent, rgba(255, 255, 255, 0.35), transparent);
	transform: skewX(-20deg);
	pointer-events: none;
}
.wrapper-container .elementor-button:hover::after,
.elementor-element-7d1883b .widget-button:hover::after {
	animation: bcShine 0.8s ease;
}

/* =========================================================
   Custom Events — grid cards, single page, gallery lightbox
   ========================================================= */

.bc-events-grid {
	display: grid;
	gap: 28px;
	grid-template-columns: repeat(3, 1fr);
	margin: 8px 0;
}
.bc-events-grid.bc-cols-2 { grid-template-columns: repeat(2, 1fr); }
.bc-events-grid.bc-cols-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1024px) { .bc-events-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px)  { .bc-events-grid { grid-template-columns: 1fr; } }

.bc-event-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid rgba(20, 20, 40, 0.07);
	border-radius: 14px;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	box-shadow: 0 6px 18px rgba(20, 20, 40, 0.06);
	transition: transform 0.28s ease, box-shadow 0.28s ease;
}
.bc-event-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 20px 42px rgba(20, 20, 40, 0.16);
}
.bc-event-card__media {
	position: relative;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: #e9e7ea;
}
.bc-event-card__media img,
.bc-event-card__media-fallback {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.5s ease;
}
.bc-event-card:hover .bc-event-card__media img { transform: scale(1.06); }

/* Date badge over the cover */
.bc-event-date {
	position: absolute;
	top: 14px;
	left: 14px;
	display: flex;
	flex-direction: column;
	align-items: center;
	min-width: 56px;
	padding: 8px 8px 6px;
	background: #78011C;
	color: #fff;
	border-radius: 10px;
	line-height: 1;
	box-shadow: 0 6px 16px rgba(120, 1, 28, 0.35);
}
.bc-event-date__day { font-family: 'Lora', serif; font-size: 22px; font-weight: 700; }
.bc-event-date__mon { font-size: 11px; text-transform: uppercase; letter-spacing: 1px; margin-top: 3px; }
.bc-event-date__yr  { font-size: 10px; opacity: 0.8; margin-top: 2px; }

.bc-event-card__body { padding: 18px 20px 22px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.bc-event-card__title {
	font-family: 'Lora', Georgia, serif !important;
	font-size: 19px;
	font-weight: 600;
	color: #1f2430;
	margin: 0;
	line-height: 1.3;
}
.bc-event-card__meta { font-size: 13px; color: #78011C; font-weight: 600; }
.bc-event-card__excerpt { font-size: 14px; color: #5b6168; line-height: 1.55; margin: 4px 0 0; flex: 1; }
.bc-event-card__more { margin-top: 12px; font-size: 13px; font-weight: 700; color: #78011C; transition: padding-left 0.2s ease; }
.bc-event-card:hover .bc-event-card__more { padding-left: 5px; }

.bc-events-empty { text-align: center; color: #888; padding: 30px; }

/* ---- Homepage events band (sits on the maroon section) ---- */
.bc-events-home { width: 90%; margin: 0 auto; }
.bc-events-home__head { margin-bottom: 38px; }
.bc-events-home .title { color: #ffffff !important; }
.bc-events-home .title::after { background: #ffffff !important; }
.bc-events-home__sub { color: rgba(255, 255, 255, 0.85); font-size: 16px; margin-top: 14px; }
.bc-events-home__cta { text-align: center; margin-top: 36px; }
.bc-events-home__btn {
	display: inline-block;
	background: #ffffff;
	color: #78011C !important;
	font-weight: 700;
	font-size: 15px;
	padding: 13px 32px;
	border-radius: 8px;
	text-decoration: none;
	transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.bc-events-home__btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 28px rgba(0, 0, 0, 0.28);
}
/* Balance the maroon band's padding */
.elementor-element-c86d8f7 {
	padding-top: 60px !important;
	padding-bottom: 60px !important;
}

/* ---- Single event page ---- */
.bc-single-event__cover {
	position: relative;
	min-height: 60vh;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
}
.bc-single-event__cover > img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.bc-single-event__cover-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(15,16,22,0.15) 0%, rgba(15,16,22,0.82) 100%);
}
.bc-single-event__cover-inner {
	position: relative;
	width: 90%;
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 0 48px;
	color: #fff;
}
.bc-single-event__header {
	width: 90%;
	max-width: 900px;
	margin: 0 auto;
	padding: 48px 0 8px;
}
.bc-single-event__back {
	display: inline-block;
	margin-bottom: 16px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.3px;
	color: #fff;
	text-decoration: none;
	opacity: 0.85;
}
.bc-single-event__header .bc-single-event__back { color: #78011C; }
.bc-single-event__back:hover { opacity: 1; }
.bc-single-event__title {
	font-family: 'Lora', Georgia, serif !important;
	font-size: clamp(28px, 4vw, 46px);
	font-weight: 600;
	line-height: 1.15;
	margin: 0;
}
.bc-single-event__title--plain { color: #1f2430; }
.bc-single-event__meta { margin-top: 16px; display: flex; flex-wrap: wrap; gap: 22px; font-size: 15px; }
.bc-single-event__header .bc-single-event__meta { color: #5b6168; }
.bc-single-event__meta-item { display: inline-flex; align-items: center; }
.bc-single-event__meta-item::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #78011C; margin-right: 9px; }

.bc-single-event__body {
	width: 90%;
	max-width: 900px;
	margin: 40px auto 64px;
	font-size: 16px;
	line-height: 1.7;
	color: #3a3f47;
}
.bc-single-event__body img { border-radius: 8px; }
.bc-single-event__body .wp-block-gallery img,
.bc-single-event__body .gallery img { cursor: zoom-in; transition: transform 0.3s ease, filter 0.3s ease; }
.bc-single-event__body .wp-block-gallery img:hover,
.bc-single-event__body .gallery img:hover { filter: brightness(1.05); }

/* ---- Lightbox ---- */
.bc-lightbox {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: none;
	align-items: center;
	justify-content: center;
	background: rgba(8, 8, 12, 0.93);
	padding: 4vw;
}
.bc-lightbox.is-open { display: flex; }
.bc-lightbox__img { max-width: 90vw; max-height: 86vh; border-radius: 6px; box-shadow: 0 20px 60px rgba(0,0,0,0.5); }
.bc-lightbox__close,
.bc-lightbox__nav {
	position: absolute;
	background: rgba(255,255,255,0.10);
	color: #fff;
	border: 0;
	cursor: pointer;
	border-radius: 50%;
	width: 48px;
	height: 48px;
	font-size: 26px;
	line-height: 1;
	transition: background-color 0.2s ease;
}
.bc-lightbox__close:hover,
.bc-lightbox__nav:hover { background: #78011C; }
.bc-lightbox__close { top: 24px; right: 24px; font-size: 30px; }
.bc-lightbox__prev { left: 24px; top: 50%; transform: translateY(-50%); }
.bc-lightbox__next { right: 24px; top: 50%; transform: translateY(-50%); }
.bc-lightbox__count { position: absolute; bottom: 22px; left: 0; right: 0; text-align: center; color: rgba(255,255,255,0.75); font-size: 14px; letter-spacing: 1px; }

/* =========================================================
   Latest News cards (thim-ekits blog loop)
   ========================================================= */
.thim-ekits-post__article {
	background: #ffffff !important;
	border: 1px solid rgba(20, 20, 40, 0.07);
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 6px 18px rgba(20, 20, 40, 0.06);
	height: 100%;
}
.thim-ekits-post__article .elementor-element-15dc9a5f {
	position: relative;
}
.thim-ekits-post__article .elementor-element-15dc9a5f img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	border-radius: 0 !important;
}
/* Category tag on the image */
.thim-ekits-post__article .elementor-element-15dc9a5f::before {
	content: "News";
	position: absolute;
	top: 14px;
	left: 14px;
	z-index: 2;
	background: #78011C;
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	padding: 5px 11px;
	border-radius: 6px;
	box-shadow: 0 4px 12px rgba(120, 1, 28, 0.38);
}
/* Horizontal padding for the text block */
.thim-ekits-post__article .elementor-element-8198f9d,
.thim-ekits-post__article .elementor-element-36724ec0,
.thim-ekits-post__article .elementor-element-6f5b7ace,
.thim-ekits-post__article .elementor-element-433f3d1e {
	padding-left: 20px !important;
	padding-right: 20px !important;
}
/* Meta (author · date) */
.thim-ekits-post__article .elementor-element-8198f9d {
	margin-top: 16px !important;
	font-size: 12.5px;
	color: #8a8f98;
	letter-spacing: 0.2px;
}
/* Title */
.thim-ekits-post__article .elementor-element-36724ec0 h3,
.thim-ekits-post__article h3.elementor-heading-title {
	font-family: 'Lora', Georgia, serif !important;
	font-size: 18px !important;
	line-height: 1.35 !important;
	margin: 8px 0 0 !important;
}
.thim-ekits-post__article h3 a { color: #1f2430 !important; transition: color 0.2s ease; }
.thim-ekits-post__article:hover h3 a,
.thim-ekits-post__article h3 a:hover { color: #78011C !important; }
/* Excerpt: clamp to 3 lines */
.thim-ekits-post__article .elementor-element-6f5b7ace {
	margin-top: 8px !important;
	color: #5b6168;
	font-size: 14px;
	line-height: 1.6;
}
.thim-ekits-post__article .elementor-element-6f5b7ace > .elementor-widget-container {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
/* Read more -> maroon text link with arrow (no button bg/shine) */
.thim-ekits-post__article .elementor-element-433f3d1e { margin-top: 14px !important; margin-bottom: 18px !important; }
.thim-ekits-post__article .elementor-button {
	background: transparent !important;
	color: #78011C !important;
	padding: 0 !important;
	font-weight: 700 !important;
	font-size: 13px !important;
	letter-spacing: 0.3px;
	box-shadow: none !important;
	border: 0 !important;
	overflow: visible !important;
	transition: padding-left 0.2s ease !important;
}
.thim-ekits-post__article .elementor-button::after { display: none !important; }
.thim-ekits-post__article .elementor-button:hover { transform: none !important; padding-left: 4px !important; box-shadow: none !important; }
.thim-ekits-post__article .elementor-button .elementor-button-text::after { content: " \2192"; }

/* Carousel arrows -> branded maroon */
.elementor-element-5f7ac2e .thim-slider-nav {
	color: #78011C !important;
	border-color: rgba(120, 1, 28, 0.25) !important;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease !important;
}
.elementor-element-5f7ac2e .thim-slider-nav:hover {
	background-color: #78011C !important;
	color: #ffffff !important;
	border-color: #78011C !important;
}

/* =========================================================
   Hero "Upcoming Event" announcement card
   ========================================================= */
.bc-hero-announce {
	position: absolute;
	top: 50%;
	z-index: 6;
	width: 300px;
	max-width: 30%;
	opacity: 0;
	transition: opacity 0.6s ease 0.35s, transform 0.6s cubic-bezier(0.2, 0.7, 0.2, 1) 0.35s;
}
.bc-hero-announce.is-right { right: 4%; transform: translateY(-50%) translateX(34px); }
.bc-hero-announce.is-left  { left: 4%;  transform: translateY(-50%) translateX(-34px); }
.bc-hero-announce.is-in    { opacity: 1; transform: translateY(-50%) translateX(0); }

.bc-hero-announce__inner {
	display: block;
	padding: 22px 24px 20px;
	background: rgba(18, 16, 22, 0.55);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-top: 3px solid #78011C;
	border-radius: 14px;
	color: #fff;
	text-decoration: none;
	box-shadow: 0 20px 50px rgba(0, 0, 0, 0.38);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.bc-hero-announce__inner:hover {
	transform: translateY(-4px);
	box-shadow: 0 28px 64px rgba(0, 0, 0, 0.5);
}
.bc-hero-announce__label {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: #ffb3c1;
}
.bc-hero-announce__pulse {
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: #ff4d6d;
	box-shadow: 0 0 0 0 rgba(255, 77, 109, 0.7);
	animation: bcPulse 1.8s infinite;
}
@keyframes bcPulse {
	0%   { box-shadow: 0 0 0 0 rgba(255, 77, 109, 0.6); }
	70%  { box-shadow: 0 0 0 12px rgba(255, 77, 109, 0); }
	100% { box-shadow: 0 0 0 0 rgba(255, 77, 109, 0); }
}
.bc-hero-announce__date { display: flex; align-items: baseline; gap: 9px; margin: 15px 0 9px; }
.bc-hero-announce__day  { font-family: 'Lora', serif; font-size: 34px; font-weight: 700; line-height: 1; }
.bc-hero-announce__mon  { font-size: 14px; letter-spacing: 0.5px; opacity: 0.85; text-transform: uppercase; }
.bc-hero-announce__title { display: block; font-family: 'Lora', serif; font-size: 19px; font-weight: 600; line-height: 1.3; }
.bc-hero-announce__loc  { display: block; font-size: 13px; opacity: 0.8; margin-top: 6px; }
.bc-hero-announce__cta  { display: inline-block; margin-top: 15px; font-size: 13px; font-weight: 700; color: #fff; transition: padding-left 0.2s ease; }
.bc-hero-announce__inner:hover .bc-hero-announce__cta { padding-left: 5px; }

/* Hide the hero card on narrow screens (kept clean; events page covers mobile) */
@media (max-width: 1024px) {
	.bc-hero-announce { display: none; }
}

/* Respect users who prefer reduced motion */
@media (prefers-reduced-motion: reduce) {
	.wrapper-box-icon,
	.thim-ekits-post__article,
	.thim-ekits-post__article img,
	.wrapper-container .elementor-button,
	.thim-ekit__header .elementor-widget-image,
	.thim-ekit__footer .elementor-social-icon,
	.bc-event-card,
	.bc-event-card__media img,
	.elementor-element-7d1883b .clone_title,
	.elementor-element-7d1883b .sub-heading,
	.elementor-element-7d1883b .widget-button,
	body.bc-reveal-ready .bc-reveal,
	body.bc-reveal-ready .bc-reveal h2.title,
	body.bc-reveal-ready .bc-reveal .bc-event-card,
	body.bc-reveal-ready .bc-reveal .wrapper-box-icon {
		animation: none !important;
		transition: none !important;
		transform: none !important;
		filter: none !important;
		opacity: 1 !important;
	}
	/* Keep section underlines visible without the draw animation */
	.wrapper-container .text-center h2.title::after {
		width: 64px !important;
		transition: none !important;
	}
	.wrapper-container .elementor-button:hover::after,
	.elementor-element-7d1883b .widget-button:hover::after {
		animation: none !important;
	}
	.bc-hero-announce__pulse { animation: none !important; }
	.bc-hero-announce.is-right,
	.bc-hero-announce.is-left { transform: translateY(-50%) !important; opacity: 1 !important; }
}

/* =========================================================
   About page polish (matches the homepage treatment)
   ========================================================= */

/* "About" hero banner: dark gradient overlay for legibility + larger title */
.elementor-element-14e5c3e { position: relative; }
.elementor-element-14e5c3e::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(180deg, rgba(18, 16, 22, 0.28) 0%, rgba(18, 16, 22, 0.62) 100%);
	pointer-events: none;
}
.elementor-element-14e5c3e > .e-con-inner,
.elementor-element-14e5c3e > * { position: relative; z-index: 2; }
.elementor-element-14e5c3e h2 {
	font-size: clamp(40px, 6vw, 72px) !important;
	letter-spacing: 0.5px;
}

/* Mission / Vision (and any) icon-box card headings -> natural Title Case */
.wrapper-box-icon .heading__primary,
.wrapper-box-icon .heading__primary a {
	text-transform: capitalize !important;
}

/* About intro box: harsh solid black -> refined branded maroon card */
.elementor-element-f021ceb {
	background: linear-gradient(135deg, #78011C 0%, #4a0212 100%) !important;
	border-radius: 14px;
	box-shadow: 0 22px 50px rgba(0, 0, 0, 0.32);
}

/* =========================================================
   Inner-page hero banner (Events / Contact / Faculty) — matches About.
   Pages get the `.bc-page-hero` body class via functions.php. To add a
   page: add its ID to that filter + a per-page background-image block.
   ========================================================= */
body.bc-page-hero .top_heading_out {
	position: relative;
	min-height: 360px;
	display: flex;
	align-items: center;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}
/* Per-page hero photo (with gradient overlay) */
body.page-id-17075 .top_heading_out {
	background-image:
		linear-gradient(180deg, rgba(18, 16, 22, 0.45) 0%, rgba(18, 16, 22, 0.72) 100%),
		url('assets/events-hero.jpg');
}
body.page-id-87 .top_heading_out {
	background-image:
		linear-gradient(180deg, rgba(18, 16, 22, 0.45) 0%, rgba(18, 16, 22, 0.72) 100%),
		url('assets/contact-hero.jpg');
}
body.page-id-12930 .top_heading_out {
	background-image:
		linear-gradient(180deg, rgba(18, 16, 22, 0.45) 0%, rgba(18, 16, 22, 0.72) 100%),
		url('assets/faculty-hero.jpg');
}
body.page-id-16674 .top_heading_out {
	background-image:
		linear-gradient(180deg, rgba(18, 16, 22, 0.45) 0%, rgba(18, 16, 22, 0.72) 100%),
		url('assets/newsletter-hero.jpg');
}
body.bc-page-hero .top_site_main,
body.bc-page-hero .page-title-wrapper,
body.bc-page-hero .banner-wrapper {
	width: 100%;
	background: transparent !important;
}
body.bc-page-hero .banner-wrapper {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
}
body.bc-page-hero .page-title {
	color: #ffffff !important;
	font-family: 'Lora', Georgia, serif !important;
	font-size: clamp(40px, 6vw, 72px) !important;
	letter-spacing: 0.5px;
	margin: 0;
}
/* Centered, light breadcrumb over the hero */
body.bc-page-hero .breadcrumbs-wrapper,
body.bc-page-hero .breadcrumbs {
	text-align: center !important;
	justify-content: center !important;
	margin-bottom: 14px;
}
body.bc-page-hero .breadcrumbs-wrapper,
body.bc-page-hero .breadcrumbs-wrapper a,
body.bc-page-hero .breadcrumbs-wrapper span {
	color: rgba(255, 255, 255, 0.85) !important;
}
/* Breathing room below the hero */
body.bc-page-hero .page-content,
body.bc-page-hero .entry-content {
	padding-top: 56px;
}
/* Hide the theme's white overlay/breadcrumb bars that cover the image + title */
body.bc-page-hero .overlay-top-header,
body.bc-page-hero .breadcrumbs-wrapper,
body.bc-page-hero .top_heading_out .container {
	background: transparent !important;
}
body.bc-page-hero .overlay-top-header { opacity: 0 !important; }
body.bc-page-hero .top_heading_out .breadcrumbs { border: 0 !important; }

/* Icon-box cards: remove the outer wrapper's own background so only the inner
   card shows (fixes the double/nested box on the Contact page) */
.wrapper-box-icon {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	border-radius: 0 !important;
}

/* Where an Elementor column already has its own box style AND contains an
   icon-box card, strip the column's box so only the inner card shows
   (fixes the double-card on the Contact page). */
.elementor-element-populated:has(.wrapper-box-icon) {
	background: transparent !important;
	box-shadow: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	padding: 0 !important;
}

/* Centre the icon in icon-boxes (e.g. Contact cards). Image-boxes
   (.has_custom_image, e.g. Campus Life) keep their full-width image. */
.wrapper-box-icon:not(.has_custom_image) .boxes-icon {
	text-align: center !important;
}
.wrapper-box-icon:not(.has_custom_image) .boxes-icon .icon-box-link,
.wrapper-box-icon:not(.has_custom_image) .boxes-icon .inner-icon,
.wrapper-box-icon:not(.has_custom_image) .boxes-icon .icon {
	display: inline-block !important;
	width: auto !important;
	margin-left: auto !important;
	margin-right: auto !important;
	float: none !important;
}

/* =========================================================
   Faculty page — staff testimonials (Strong Testimonials)
   ========================================================= */
.bc-faculty-testimonials { width: 90%; max-width: 1320px; margin: 20px auto 72px; }
.bc-faculty-testimonials__head { margin-bottom: 40px; }
.bc-faculty-testimonials__sub { color: #5b6168; font-size: 16px; margin-top: 12px; }

/* Grid of cards */
.bc-faculty-testimonials .strong-view {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
}
@media (max-width: 1024px) { .bc-faculty-testimonials .strong-view { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px)  { .bc-faculty-testimonials .strong-view { grid-template-columns: 1fr; } }

.bc-faculty-testimonials .wpmtst-testimonial {
	background: #fff;
	border: 1px solid rgba(20, 20, 40, 0.07);
	border-radius: 14px;
	box-shadow: 0 6px 18px rgba(20, 20, 40, 0.06);
	padding: 30px 26px 28px !important;
	margin: 0 !important;
	text-align: center;
	transition: transform 0.28s ease, box-shadow 0.28s ease;
}
.bc-faculty-testimonials .wpmtst-testimonial:hover {
	transform: translateY(-6px);
	box-shadow: 0 18px 40px rgba(20, 20, 40, 0.14);
}
/* Redundant name heading (it also shows as a field below) */
.bc-faculty-testimonials .wpmtst-testimonial-heading { display: none !important; }

/* Photo -> circular, centred */
.bc-faculty-testimonials .wpmtst-testimonial-image { text-align: center; margin: 0 0 16px !important; }
.bc-faculty-testimonials .wpmtst-testimonial-image img {
	width: 84px !important;
	height: 84px !important;
	border-radius: 50% !important;
	object-fit: cover;
	display: inline-block;
	border: 3px solid #f6ebee;
}
/* Quote */
.bc-faculty-testimonials .wpmtst-testimonial-content p {
	font-size: 15px;
	line-height: 1.7;
	color: #4a4f57;
	font-style: italic;
	margin: 0 0 4px;
}
.bc-faculty-testimonials .wpmtst-testimonial-content::before {
	content: "\201C";
	display: block;
	font-family: 'Lora', Georgia, serif;
	font-size: 46px;
	color: #78011C;
	line-height: 0.4;
	margin: 4px 0 12px;
}
/* Name + role fields */
.bc-faculty-testimonials .wpmtst-testimonial-field { font-size: 14px; color: #5b6168; }
.bc-faculty-testimonials .wpmtst-testimonial-field:nth-of-type(1) {
	font-family: 'Lora', Georgia, serif;
	font-size: 17px;
	font-weight: 600;
	color: #78011C;
	margin-top: 12px;
}

/* Testimonial name + role (correct field classes) */
.bc-faculty-testimonials .testimonial-name {
	font-family: 'Lora', Georgia, serif !important;
	font-size: 17px !important;
	font-weight: 600 !important;
	color: #78011C !important;
	font-style: normal !important;
	margin-top: 12px !important;
}
.bc-faculty-testimonials .testimonial-company {
	font-size: 14px !important;
	color: #5b6168 !important;
	font-style: normal !important;
	margin-top: 2px !important;
}

/* =========================================================
   Faculty "Our Faculties" intro — remove the photo, show the text
   as a maroon card at the top (like the About page intro)
   ========================================================= */
.elementor-element-edd25c5 {
	background-image: none !important;
	background-color: transparent !important;
	min-height: 0 !important;
	padding-top: 44px !important;
	padding-bottom: 8px !important;
}
.elementor-element-edd25c5 .elementor-container {
	min-height: 0 !important;
}
/* The content column becomes the maroon card */
.elementor-element-edd25c5 .elementor-element-3ca5af0 {
	background: linear-gradient(135deg, #78011C 0%, #4a0212 100%) !important;
	border-radius: 14px !important;
	box-shadow: 0 22px 50px rgba(0, 0, 0, 0.20) !important;
	padding: 38px 42px !important;
	max-width: 940px;
	margin: 0 auto !important;
}
/* Strip the dark backgrounds from the inner widgets so only the card shows */
.elementor-element-edd25c5 .elementor-widget-container {
	background-color: transparent !important;
}
/* White text on the maroon card + centered */
.elementor-element-edd25c5 .elementor-element-3ca5af0,
.elementor-element-edd25c5 .elementor-element-3ca5af0 .title,
.elementor-element-edd25c5 .elementor-element-3ca5af0 h2,
.elementor-element-edd25c5 .elementor-element-3ca5af0 p,
.elementor-element-edd25c5 .elementor-element-3ca5af0 .elementor-widget-text-editor {
	color: #ffffff !important;
	text-align: center !important;
}
/* Heading underline visible on maroon */
.elementor-element-edd25c5 .elementor-element-3ca5af0 h2.title::after {
	background: #ffffff !important;
}
/* The paragraph's own dark box inside the maroon card -> transparent */
.elementor-element-edd25c5 .elementor-element-86d6418 {
	background-color: transparent !important;
	box-shadow: none !important;
}

/* ---- Faculty fixes: overlap card, centered advisory, testimonial grid ---- */

/* 1) Intro maroon card overlaps the hero like the About page */
.elementor-element-edd25c5 {
	margin-top: -200px !important;
	position: relative;
	z-index: 6;
	padding-top: 0 !important;
}

/* 2) Centre the advisory-board members (photo + name + role) */
.elementor-element-df72f46,
.elementor-element-df72f46 a,
.elementor-element-df72f46 p,
.elementor-element-df72f46 h2,
.elementor-element-df72f46 h3,
.elementor-element-df72f46 div {
	text-align: center !important;
}

/* 3) Testimonials: the cards live in .strong-content, so grid THAT element */
.bc-faculty-testimonials .strong-view { display: block !important; }
.bc-faculty-testimonials .strong-content {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 28px !important;
}
@media (max-width: 1024px) { .bc-faculty-testimonials .strong-content { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 640px)  { .bc-faculty-testimonials .strong-content { grid-template-columns: 1fr !important; } }

/* Match About: left-align the Faculty "Our Faculties" intro card */
.elementor-element-edd25c5 .elementor-element-3ca5af0,
.elementor-element-edd25c5 .elementor-element-3ca5af0 .title,
.elementor-element-edd25c5 .elementor-element-3ca5af0 h2,
.elementor-element-edd25c5 .elementor-element-3ca5af0 p,
.elementor-element-edd25c5 .elementor-element-3ca5af0 .sc_heading,
.elementor-element-edd25c5 .elementor-element-3ca5af0 .elementor-widget-text-editor,
.elementor-element-edd25c5 .elementor-element-86d6418 {
	text-align: left !important;
}
.elementor-element-edd25c5 .elementor-element-3ca5af0 {
	padding: 30px 58px !important;
}
/* Heading underline left-aligned */
.elementor-element-edd25c5 .elementor-element-3ca5af0 h2.title::after {
	left: 0 !important;
	transform: none !important;
}

/* ============================================================
   STUDENT TESTIMONIALS SLIDER (homepage, [bc_student_testimonials])
   ============================================================ */
.bc-testimonials {
	background: linear-gradient(180deg, #faf7f8 0%, #f3eef0 100%);
	padding: 78px 20px 88px;
}
.bc-testimonials__inner { max-width: 1100px; margin: 0 auto; }
.bc-testimonials__head { margin-bottom: 36px; text-align: center; }
.bc-testimonials__head .title {
	font-family: 'Lora', Georgia, serif;
	font-weight: 700;
	color: #1a1320;
	font-size: clamp(28px, 4vw, 40px);
	margin: 0 0 6px;
	display: inline-block;
}
.bc-testimonials__head .title::after {
	content: ''; display: block; width: 64px; height: 3px;
	background: #78011C; border-radius: 3px; margin: 14px auto 0;
}
.bc-testimonials__sub { color: #6a6370; font-size: 17px; margin: 0; }

.bc-tslider { position: relative; padding: 0 56px; }
.bc-tslider__viewport { overflow: hidden; }
.bc-tslider__track {
	display: flex;
	transition: transform 0.55s cubic-bezier(.22,.61,.36,1);
	will-change: transform;
}
.bc-tslide { flex: 0 0 100%; padding: 12px; box-sizing: border-box; }
.bc-tslide__card {
	background: #fff;
	border: 1px solid rgba(20,20,40,0.07);
	border-radius: 18px;
	box-shadow: 0 14px 40px rgba(20,20,40,0.08);
	padding: 40px 48px 34px;
	position: relative; text-align: center;
	max-width: 760px; margin: 0 auto;
}
.bc-tslide__quote-mark {
	font-family: 'Lora', Georgia, serif;
	color: #78011C; opacity: .18;
	font-size: 92px; line-height: .6; height: 36px;
}
.bc-tslide__quote {
	font-family: 'Lora', Georgia, serif;
	font-size: clamp(18px, 2.1vw, 23px);
	line-height: 1.6; color: #2c2533;
	margin: 6px 0 28px; font-style: italic;
}
.bc-tslide__person { display: flex; align-items: center; justify-content: center; gap: 14px; }
.bc-tslide__photo {
	width: 58px; height: 58px; border-radius: 50%; object-fit: cover;
	border: 3px solid #fff; box-shadow: 0 0 0 2px #78011C; flex: 0 0 auto;
}
.bc-tslide__photo--initial {
	display: flex; align-items: center; justify-content: center;
	background: #78011C; color: #fff;
	font-family: 'Lora', serif; font-size: 22px; font-weight: 600;
}
.bc-tslide__meta { text-align: left; }
.bc-tslide__name { display: block; font-weight: 700; color: #1a1320; font-size: 16px; }
.bc-tslide__role { display: block; color: #78011C; font-size: 13.5px; }

.bc-tslider__nav {
	position: absolute; top: 50%; transform: translateY(-50%);
	width: 44px; height: 44px; border-radius: 50%;
	border: 1px solid rgba(120,1,28,.25) !important;
	background: #fff !important; color: #78011C !important;
	font-size: 26px; font-weight: 400; line-height: 1; cursor: pointer;
	box-shadow: 0 6px 16px rgba(20,20,40,.1);
	transition: all .2s ease; z-index: 2;
	display: flex; align-items: center; justify-content: center;
	padding: 0 0 3px;
}
.bc-tslider__nav:hover { background: #78011C !important; color: #fff !important; border-color: #78011C !important; }
.bc-tslider__prev { left: 0; }
.bc-tslider__next { right: 0; }
.bc-tslider__dots { display: flex; justify-content: center; gap: 9px; margin-top: 24px; }
.bc-tslider__dots button {
	width: 9px; height: 9px; border-radius: 50%; border: 0; padding: 0; cursor: pointer;
	background: rgba(120,1,28,.22); transition: all .25s ease;
}
.bc-tslider__dots button.is-active { background: #78011C; width: 26px; border-radius: 5px; }

@media (max-width: 600px) {
	.bc-tslider { padding: 0 6px; }
	.bc-tslider__nav { display: none; }
	.bc-tslide__card { padding: 34px 24px 30px; }
	.bc-tslide__person { flex-direction: column; gap: 10px; }
	.bc-tslide__meta { text-align: center; }
}

/* ============================================================
   WHY CHOOSE Bellmont? — in-place background video (woodgreen_video)
   The existing poster + dark overlay are kept; the play button now
   starts the local video in place instead of a YouTube popup.
   ============================================================ */
.elementor-element-6c25c4c .thim-video-popup { overflow: hidden; }
.elementor-element-6c25c4c .bc-why-video {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover; z-index: 0; background: #1a1320;
}
/* keep the same dark overlay, just stack it above the video */
.elementor-element-6c25c4c .thim-video-popup::before {
	z-index: 1; transition: background-color .5s ease;
}
/* the title + play button stay above the overlay */
.elementor-element-6c25c4c .thim-video-popup .video-info { position: relative; z-index: 2; }
/* while playing: lighten overlay so the video reads, fade the title/button */
.elementor-element-6c25c4c .thim-video-popup.bc-playing::before { background-color: rgba(0,0,0,.18) !important; }
.elementor-element-6c25c4c .thim-video-popup.bc-playing .video-title,
.elementor-element-6c25c4c .thim-video-popup.bc-playing .video-description,
.elementor-element-6c25c4c .thim-video-popup.bc-playing .button-popup {
	opacity: 0; pointer-events: none; transition: opacity .4s ease;
}

/* ============================================================
   CONTACT PAGE (id 87) — eye-catching form card + branded map
   ============================================================ */

/* Section heading above the form */
body.page-id-87 .elementor-element-74968e3 .elementor-heading-title {
	font-family: 'Lora', Georgia, serif !important;
	color: #1a1320 !important;
	position: relative; display: inline-block;
}
body.page-id-87 .elementor-element-74968e3 { text-align: center; }
body.page-id-87 .elementor-element-74968e3 .elementor-heading-title::after {
	content: ''; display: block; width: 64px; height: 3px;
	background: #78011C; border-radius: 3px; margin: 16px auto 0;
}

/* ---- Form card ---- */
body.page-id-87 .elementor-element-db9c2bc {
	max-width: 800px;
	margin: 8px auto 0 !important;
	background: #fff;
	border: 1px solid rgba(20,20,40,.07);
	border-radius: 18px;
	box-shadow: 0 18px 50px rgba(20,20,40,.09);
	padding: 42px 46px 36px;
	position: relative;
	overflow: hidden;
}
/* maroon top accent bar */
body.page-id-87 .elementor-element-db9c2bc::before {
	content: ''; position: absolute; top: 0; left: 0; right: 0; height: 5px;
	background: linear-gradient(90deg, #78011C 0%, #a8324b 100%);
}

/* two-column field grid */
body.page-id-87 .wpcf7-form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px 18px;
	align-items: start;
}
body.page-id-87 .wpcf7-form > p { margin: 0; }
body.page-id-87 .wpcf7-form .hidden-fields-container { display: none; }
/* message, submit and the response message span the full width */
body.page-id-87 .wpcf7-form > p:has(textarea),
body.page-id-87 .wpcf7-form > p:has(input[type="submit"]),
body.page-id-87 .wpcf7-form > .wpcf7-response-output {
	grid-column: 1 / -1;
}
body.page-id-87 .wpcf7-form .wpcf7-form-control-wrap { display: block; }

/* inputs */
body.page-id-87 .wpcf7-form input[type="text"],
body.page-id-87 .wpcf7-form input[type="email"],
body.page-id-87 .wpcf7-form input[type="tel"],
body.page-id-87 .wpcf7-form textarea {
	width: 100% !important;
	padding: 13px 16px !important;
	border: 1.5px solid #e4e0e3 !important;
	border-radius: 10px !important;
	background: #faf9fa !important;
	font-size: 15px !important;
	color: #2c2533 !important;
	box-shadow: none !important;
	transition: border-color .2s ease, box-shadow .2s ease, background .2s ease !important;
}
body.page-id-87 .wpcf7-form textarea { min-height: 142px; resize: vertical; }
body.page-id-87 .wpcf7-form input:focus,
body.page-id-87 .wpcf7-form textarea:focus {
	border-color: #78011C !important;
	background: #fff !important;
	box-shadow: 0 0 0 3px rgba(120,1,28,.12) !important;
	outline: none !important;
}
body.page-id-87 .wpcf7-form ::placeholder { color: #9a93a0; opacity: 1; }

/* submit button */
body.page-id-87 .wpcf7-form > p:has(input[type="submit"]) { text-align: center; margin-top: 6px; }
body.page-id-87 .wpcf7-form input[type="submit"] {
	width: auto !important;
	background: linear-gradient(90deg, #78011C 0%, #a8324b 100%) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 10px !important;
	padding: 14px 50px !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	letter-spacing: .3px;
	cursor: pointer;
	box-shadow: 0 10px 22px rgba(120,1,28,.22) !important;
	transition: transform .2s ease, box-shadow .2s ease !important;
}
body.page-id-87 .wpcf7-form input[type="submit"]:hover {
	transform: translateY(-2px);
	box-shadow: 0 16px 30px rgba(120,1,28,.30) !important;
}
/* CF7 response + validation styling */
body.page-id-87 .wpcf7-form .wpcf7-not-valid-tip { font-size: 12.5px; margin-top: 5px; }
body.page-id-87 .wpcf7-form .wpcf7-response-output {
	border-radius: 10px; margin: 4px 0 0; padding: 12px 16px;
}

/* ---- Map: rounded, shadowed, branded frame ---- */
body.page-id-87 .elementor-element-052e901 {
	max-width: 1120px;
	margin: 46px auto 0 !important;
	border-radius: 18px;
	overflow: hidden;
	box-shadow: 0 18px 50px rgba(20,20,40,.13);
	border: 1px solid rgba(20,20,40,.08);
	position: relative;
}
body.page-id-87 .elementor-element-052e901 .elementor-widget-container { line-height: 0; }
body.page-id-87 .elementor-element-052e901 iframe {
	width: 100% !important;
	height: 450px !important;
	display: block;
	border: 0;
	filter: grayscale(.25) contrast(1.04);
	transition: filter .45s ease;
}
body.page-id-87 .elementor-element-052e901:hover iframe { filter: none; }

@media (max-width: 680px) {
	body.page-id-87 .elementor-element-db9c2bc { padding: 28px 22px 26px; }
	body.page-id-87 .wpcf7-form { grid-template-columns: 1fr; }
	body.page-id-87 .elementor-element-052e901 iframe { height: 320px !important; }
}

/* ============================================================
   PROGRAMME / COURSE PAGE (id 16415) — readable column + polish
   ============================================================ */

/* Constrain the long body content into a comfortable centered reading column.
   These sections are flex columns, so we pad the container (rather than using
   per-item margins, which would shrink-wrap each item) — items then stretch to
   the 940px column and align left, matching the body text. */
body.page-id-16415 .elementor-element-f9dbfe1,
body.page-id-16415 .elementor-element-f21df77 {
	padding-left: max(20px, calc((100% - 940px) / 2)) !important;
	padding-right: max(20px, calc((100% - 940px) / 2)) !important;
}

/* Body copy: comfortable size, line-height and colour */
body.page-id-16415 .elementor-element-f9dbfe1 .elementor-widget-text-editor {
	color: #4a4550;
	font-size: 16.5px;
	line-height: 1.8;
}
body.page-id-16415 .elementor-element-f9dbfe1 .elementor-widget-text-editor p { margin-bottom: 1.1em; }

/* Section headings — serif, left-aligned, branded short maroon underline */
body.page-id-16415 .elementor-element-f9dbfe1 .elementor-widget-heading,
body.page-id-16415 .elementor-element-f9dbfe1 .elementor-widget-heading .elementor-widget-container,
body.page-id-16415 .elementor-element-f21df77 .elementor-widget-heading,
body.page-id-16415 .elementor-element-f21df77 .elementor-widget-heading .elementor-widget-container { text-align: left !important; }
body.page-id-16415 .elementor-element-f9dbfe1 .elementor-heading-title,
body.page-id-16415 .elementor-element-f21df77 .elementor-heading-title {
	font-family: 'Lora', Georgia, serif !important;
	color: #1a1320 !important;
	font-size: 30px !important;
	text-align: left !important;
	text-decoration: none !important;
	border-bottom: 0 !important;
	position: relative;
	padding-bottom: 14px;
	display: inline-block;
}
body.page-id-16415 .elementor-element-f9dbfe1 .elementor-heading-title::after,
body.page-id-16415 .elementor-element-f21df77 .elementor-heading-title::after {
	content: ''; position: absolute; left: 0; bottom: 0;
	width: 58px; height: 3px; background: #78011C; border-radius: 3px;
}
/* breathing room above each heading block */
body.page-id-16415 .elementor-element-f9dbfe1 .elementor-widget-heading { margin-top: 30px; }

/* Bulleted lists with maroon markers */
body.page-id-16415 .elementor-element-f9dbfe1 .elementor-widget-text-editor ul {
	list-style: none; padding-left: 2px;
}
body.page-id-16415 .elementor-element-f9dbfe1 .elementor-widget-text-editor ul li {
	position: relative; padding-left: 26px; margin-bottom: 9px; line-height: 1.7;
}
body.page-id-16415 .elementor-element-f9dbfe1 .elementor-widget-text-editor ul li::before {
	content: ''; position: absolute; left: 4px; top: 10px;
	width: 7px; height: 7px; border-radius: 50%; background: #78011C;
}

/* Curriculum accordion — rounded, spaced, serif titles */
body.page-id-16415 .elementor-element-287664d .e-n-accordion-item {
	border: 1px solid rgba(20,20,40,.10) !important;
	border-radius: 12px !important;
	overflow: hidden;
	margin-bottom: 12px;
	box-shadow: 0 4px 14px rgba(20,20,40,.05);
}
body.page-id-16415 .elementor-element-287664d .e-n-accordion-item-title {
	font-family: 'Lora', Georgia, serif !important;
	font-size: 17px !important;
	padding: 16px 22px !important;
	transition: filter .2s ease;
}
body.page-id-16415 .elementor-element-287664d .e-n-accordion-item-title:hover { filter: brightness(1.12); }

/* ============================================================
   HERO — "Our Vision" animated text reveal (homepage)
   ============================================================ */
@keyframes bcHeroReveal {
	0%   { opacity: 0; transform: translateY(28px); filter: blur(5px); }
	100% { opacity: 1; transform: translateY(0);    filter: blur(0); }
}
@keyframes bcHeroUnderline { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes bcHeroWatermark { from { opacity: 0; letter-spacing: 4px; } to { opacity: .05; letter-spacing: normal; } }

/* Make the white hero text legible over the photo + give it depth */
.elementor-element-a7ebbac h1.title,
.elementor-element-a7ebbac .sub-heading p {
	text-shadow: 0 2px 22px rgba(0,0,0,.55), 0 1px 3px rgba(0,0,0,.45);
}
/* Staggered entrance on page load: heading -> paragraph */
.elementor-element-a7ebbac h1.title {
	animation: bcHeroReveal .9s cubic-bezier(.22,.61,.36,1) .15s both;
}
.elementor-element-a7ebbac .sub-heading {
	animation: bcHeroReveal .9s cubic-bezier(.22,.61,.36,1) .55s both;
}
.elementor-element-a7ebbac .sc_heading .clone {
	animation: bcHeroWatermark 1.5s ease .2s both;
}
/* Maroon underline sweeps in under "Our Vision is to" */
.elementor-element-a7ebbac h1.title span {
	position: relative;
	display: inline-block;
}
.elementor-element-a7ebbac h1.title span::after {
	content: ''; position: absolute; left: 0; right: 0; bottom: -10px;
	height: 4px; border-radius: 4px;
	background: linear-gradient(90deg, #78011C, #e0668a);
	box-shadow: 0 2px 12px rgba(120,1,28,.55);
	transform: scaleX(0); transform-origin: left center;
	animation: bcHeroUnderline .85s cubic-bezier(.22,.61,.36,1) 1.05s both;
}

@media (prefers-reduced-motion: reduce) {
	.elementor-element-a7ebbac h1.title,
	.elementor-element-a7ebbac .sub-heading,
	.elementor-element-a7ebbac .sc_heading .clone,
	.elementor-element-a7ebbac h1.title span::after { animation: none !important; }
	.elementor-element-a7ebbac h1.title span::after { transform: scaleX(1); }
}

/* ============================================================
   HEADER — hide the front-end Login / Logout button (site-wide)
   ============================================================ */
.elementor-element-3665fe6 { display: none !important; }

/* ============================================================
   LANGUAGE SWITCHER (English / Romanian / Spanish via Google auto-translate)
   ============================================================ */
/* Hide Google's injected top banner / tooltip and stop its layout shift.
   The modern widget uses obfuscated classes, so we hit the banner via the
   stable hooks: any skiptranslate iframe, and the skiptranslate wrapper that
   Google appends directly to <body>. The language <select> (.goog-te-combo)
   is NOT an iframe, so switching still works. */
.goog-te-banner-frame,
iframe.skiptranslate,
body > .skiptranslate,
.goog-te-gadget-icon,
#goog-gt-tt,
.goog-te-balloon-frame { display: none !important; }
body { top: 0 !important; position: static !important; }
#google_translate_element { position: absolute !important; left: -9999px !important; top: -9999px !important; height: 0; overflow: hidden; }
.goog-text-highlight { background: none !important; box-shadow: none !important; }

/* Our clean switcher in the top utility bar */
.bc-lang-switch {
	appearance: none; -webkit-appearance: none;
	border: 1px solid rgba(0,0,0,.18);
	border-radius: 6px;
	background: transparent;
	color: inherit;
	font: inherit;
	font-size: 13px;
	line-height: 1.2;
	padding: 5px 26px 5px 10px;
	cursor: pointer;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='%2378011C' d='M0 0l5 6 5-6z'/></svg>");
	background-repeat: no-repeat;
	background-position: right 9px center;
	transition: border-color .2s ease;
}
.bc-lang-switch:hover { border-color: #78011C; }
.bc-lang-switch:focus { outline: none; border-color: #78011C; box-shadow: 0 0 0 2px rgba(120,1,28,.15); }
