/**
 * Moyo Hero Section — v3.0.0
 *
 * File: masterstudy-child/inc/pages/home/hero.css
 * Full-width dark navy hero with grid pattern, serif heading, CTA buttons,
 * and right-side auto-sliding image carousel (crossfade).
 * All colors use moyo-brand.css variables — zero hardcoded values.
 */


/* ===================================================
   1. SECTION — full viewport width, breaks out of Elementor container
   =================================================== */
.moyo-hero {
	position: relative;
	width: 100vw !important;
	max-width: 100vw !important;
	margin-left: calc(-50vw + 50%) !important;
	margin-right: 0 !important;
	left: auto !important;
	right: auto !important;
	min-height: 520px;
	overflow: hidden;
	display: flex;
	align-items: center;
	box-sizing: border-box;
}


/* ===================================================
   2. BACKGROUND — dark navy + subtle grid pattern
   =================================================== */
.moyo-hero__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	background-color: var(--moyo-hero-bg, #0c2340);
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px);
	background-size: 60px 60px;
}


/* ===================================================
   3. INNER — 2-column grid: text left, carousel right
   =================================================== */
.moyo-hero__inner {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: var(--moyo-container-max, 1200px);
	margin: 0 auto;
	padding: 80px 40px 96px;
	box-sizing: border-box;
	display: grid;
	grid-template-columns: 1fr 1.2fr;
	align-items: stretch;
	gap: 48px;
}

.moyo-hero__content {
	max-width: 640px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}


/* ===================================================
   3b. VISUAL — right-side carousel container
   =================================================== */
.moyo-hero__visual {
	position: relative;
	width: 100%;
	align-self: stretch;
	box-sizing: border-box;
	overflow: hidden;
	border-radius: var(--moyo-radius-xl, 16px);
	box-shadow: var(--moyo-shadow-xl, 0 8px 32px rgba(0, 0, 0, 0.25));
}

/* Each slide — stacked via absolute, JS controls transform */
.moyo-hero__slide {
	position: absolute;
	inset: 0;
	will-change: transform;
}

/* Slide card — holds uploaded image */
.moyo-hero__slide-card {
	position: absolute;
	inset: 0;
	overflow: hidden;
	background: var(--moyo-hero-bg, #0c2340);
}
.moyo-hero__slide-card img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}


/* ===================================================
   4. EYEBROW — small pill badge with accent dot
   =================================================== */
.moyo-hero__eyebrow {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	width: fit-content;
	gap: 8px;
	padding: 5px 14px;
	margin-bottom: 24px;
	border-radius: 100px;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.12);
	font-family: var(--moyo-font-body, 'Poppins', sans-serif) !important;
	font-size: 11px !important;
	font-weight: 500 !important;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.85) !important;
}

.moyo-hero__dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--moyo-accent-highlight, #0ea5e9);
	flex-shrink: 0;
}


/* ===================================================
   5. HEADING — large serif, accent italic "Future"
   =================================================== */
.moyo-hero__title {
	font-family: var(--moyo-font-heading, 'DM Serif Display', serif) !important;
	font-size: 52px !important;
	font-weight: 400 !important;
	line-height: 1.15 !important;
	color: var(--moyo-on-primary, #ffffff) !important;
	margin: 0 0 24px 0 !important;
	letter-spacing: -0.5px;
}

.moyo-hero__title em {
	color: var(--moyo-accent-highlight, #0ea5e9);
	font-style: italic;
}


/* ===================================================
   6. SUBTITLE — muted light text
   =================================================== */
.moyo-hero__sub {
	font-family: var(--moyo-font-body, 'Poppins', sans-serif) !important;
	font-size: 16px !important;
	font-weight: 400 !important;
	line-height: 1.7 !important;
	color: var(--moyo-footer-text, #94a3b8) !important;
	margin: 0 0 32px 0 !important;
	max-width: 560px;
}


/* ===================================================
   7. BUTTONS — primary blue filled + white outline
   =================================================== */
.moyo-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}

.moyo-hero__btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 13px 28px !important;
	border-radius: var(--moyo-radius, 4px) !important;
	font-family: var(--moyo-font-body, 'Poppins', sans-serif) !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	line-height: 1 !important;
	text-decoration: none !important;
	white-space: nowrap !important;
	cursor: pointer !important;
	transition: all var(--moyo-transition, 0.2s ease) !important;
}

/* Primary blue filled — matches header "For Admission" button */
.moyo-hero__btn--primary {
	background: var(--moyo-primary, #2563eb) !important;
	color: var(--moyo-on-primary, #ffffff) !important;
	border: 2px solid var(--moyo-primary, #2563eb) !important;
}
.moyo-hero__btn--primary:hover {
	background: var(--moyo-primary-end, #3b82f6) !important;
	border-color: var(--moyo-primary-end, #3b82f6) !important;
	color: var(--moyo-on-primary, #ffffff) !important;
	text-decoration: none !important;
	box-shadow: 0 2px 8px rgba(var(--moyo-primary-rgb, 37, 99, 235), 0.35) !important;
}

/* White outline — matches header "Log In" button style (inverted for dark bg) */
.moyo-hero__btn--outline {
	background: transparent !important;
	color: var(--moyo-on-primary, #ffffff) !important;
	border: 2px solid rgba(255, 255, 255, 0.5) !important;
}
.moyo-hero__btn--outline:hover {
	background: rgba(255, 255, 255, 0.1) !important;
	border-color: var(--moyo-on-primary, #ffffff) !important;
	color: var(--moyo-on-primary, #ffffff) !important;
	text-decoration: none !important;
}


/* ===================================================
   7b. FOCUS STYLES — keyboard accessibility
   =================================================== */
.moyo-hero__btn:focus-visible {
	outline: 2px solid var(--moyo-on-primary, #ffffff) !important;
	outline-offset: 2px;
}


/* ===================================================
   8. ARROW + DOT CONTROLS — inside the image area
   =================================================== */
.moyo-hero__arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 3;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.3);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	border: 1px solid rgba(255, 255, 255, 0.15);
	color: #ffffff;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.25s ease;
	padding: 0;
}
.moyo-hero__arrow:hover {
	background: rgba(0, 0, 0, 0.5);
}
.moyo-hero__arrow--prev { left: 12px; }
.moyo-hero__arrow--next { right: 12px; }
.moyo-hero__arrow svg {
	width: 16px;
	height: 16px;
	stroke: currentColor;
	fill: none;
	stroke-width: 2.5;
	stroke-linecap: round;
	stroke-linejoin: round;
	display: block;
}

.moyo-hero__dots {
	position: absolute;
	bottom: 14px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 3;
	display: flex;
	gap: 6px;
	align-items: center;
}
.moyo-hero__dot-btn {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.4);
	border: none;
	cursor: pointer;
	padding: 0;
	transition: all 0.3s ease;
}
.moyo-hero__dot-btn.is-active {
	background: #ffffff;
	width: 24px;
	border-radius: 5px;
}


/* ===================================================
   9. ENTRANCE ANIMATION — staggered fade-up on load
   =================================================== */
@keyframes moyoFadeUp {
	from { opacity: 0; transform: translateY(24px); }
	to   { opacity: 1; transform: translateY(0); }
}

.moyo-hero__eyebrow  { animation: moyoFadeUp 0.6s ease 0.1s both; }
.moyo-hero__title    { animation: moyoFadeUp 0.6s ease 0.25s both; }
.moyo-hero__sub      { animation: moyoFadeUp 0.6s ease 0.4s both; }
.moyo-hero__actions  { animation: moyoFadeUp 0.6s ease 0.55s both; }
.moyo-hero__visual   { animation: moyoFadeUp 0.7s ease 0.3s both; }


/* ===================================================
   9. RESPONSIVE
   =================================================== */
@media (max-width: 960px) {
	.moyo-hero {
		min-height: auto;
	}

	.moyo-hero__inner {
		padding: 48px 20px 40px;
		grid-template-columns: 1fr;
		gap: 32px;
	}

	/* Show carousel on tablet/mobile — stacks below text */
	.moyo-hero__visual {
		display: block;
		min-height: 280px;
		border-radius: var(--moyo-radius-lg, 8px);
	}

	.moyo-hero__title {
		font-size: 36px !important;
	}

	.moyo-hero__sub {
		font-size: 15px !important;
		margin-bottom: 28px !important;
	}

	.moyo-hero__content {
		max-width: 100% !important;
	}

	.moyo-hero__actions {
		flex-direction: column !important;
		width: 100% !important;
	}

	.moyo-hero__btn {
		width: 100% !important;
		text-align: center !important;
		display: flex !important;
		box-sizing: border-box !important;
	}
}

@media (max-width: 640px) {
	.moyo-hero__inner {
		padding: 36px 16px 32px;
		gap: 24px;
	}

	.moyo-hero__visual {
		min-height: 220px;
		border-radius: var(--moyo-radius, 4px);
	}

	.moyo-hero__title {
		font-size: 28px !important;
	}

	.moyo-hero__eyebrow {
		font-size: 10px !important;
		letter-spacing: 1px;
	}
}
