:root {
	--cc-primary: #8B1A2B;
	--cc-secondary: #B22234;
	--cc-gold: #C9A84C;
	--cc-amber: #E5C687;
	--cc-dark: #1A1A2E;
	--cc-light: #F9F6F0;
	--cc-white: #FFFFFF;
	--cc-text: #2C2C2C;
	--cc-muted: #6B6B6B;
	--cc-border: rgba(139,26,43,0.12);
	--cc-shadow: 0 20px 50px rgba(26,26,46,0.12);
	--cc-radius: 1.5rem;
	--cc-maroon: #dd0025;
	--cc-red: #a63a2d;
}

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	font-family: 'DM Sans', sans-serif;
	color: var(--cc-text);
	line-height: 1.7;
	background: var(--cc-white);
	overflow-x: hidden;
}

a {
	text-decoration: none;
	color: inherit;
	transition: .25s;
}

img {
	max-width: 100%;
	display: block;
}

ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.cc-container {
	padding-left: 5%;
	padding-right: 5%;
	max-width: 1400px;
	margin: 0 auto;
}

/* HEADER */
.cc-header {
	position: fixed;
	left: 0;
	right: 0;
	top: 0;
	z-index: 1000;
	transition: .3s;
}

.cc-topbar {
	background: linear-gradient(135deg, #D4AF37, #B71C1C);
	color: #fff;
	font-size: 0.85rem;
	padding: 8px 0;
}

	.cc-topbar .cc-container {
		display: flex;
		align-items: center;
		justify-content: space-between;
		flex-wrap: wrap;
		gap: 10px;
	}

.cc-contact-line {
	display: flex;
	gap: 20px;
	flex-wrap: wrap;
}

	.cc-contact-line a:hover {
		color: var(--cc-amber);
	}

.cc-top-links {
	display: flex;
	gap: 15px;
	align-items: center;
	flex-wrap: wrap;
}

.cc-top-pill {
	background: var(--cc-gold);
	color: var(--cc-dark);
	padding: 6px 16px;
	border-radius: 50px;
	font-weight: 700;
	font-size: 0.8rem;
}

.cc-top-pill2 {
	background: var(--cc-gold);
	color: var(--cc-dark);
	padding: 6px 16px;
	border-radius: 50px;
	font-weight: 700;
	font-size: 0.8rem;
}

.cc-top-pill3 {
	background: linear-gradient(135deg, #D4AF37, #B71C1C);
	color: var(--cc-white);
	padding: 6px 16px;
	border-radius: 50px;
	font-weight: 700;
	font-size: 0.8rem;
}

.cc-navbar {
	background: rgba(255,255,255,0.92);
	backdrop-filter: blur(20px);
	border-bottom: 1px solid var(--cc-border);
	box-shadow: 0 10px 30px rgba(0,0,0,0.05);
}

.cc-header.scrolled .cc-navbar {
	background: #fff;
}

.cc-navbar .cc-container {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 85px;
}

.cc-brand img {
	width: 260px;
}

/* Hamburger button */
.cc-menu-toggle {
	display: none; /* desktop hidden */
	border: 0;
	background: var(--cc-light);
	color: var(--cc-primary);
	width: 42px;
	height: 42px;
	border-radius: 50%;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 5px;
	cursor: pointer;
	z-index: 1500;
}

	.cc-menu-toggle span {
		display: block;
		width: 20px;
		height: 2px;
		background: var(--cc-primary);
		transition: .3s;
	}

/* Main menu */
.cc-main-menu > ul {
	display: flex;
	gap: 5px;
}

	.cc-main-menu > ul > li {
		position: relative;
	}

		.cc-main-menu > ul > li > a {
			display: block;
			padding: 30px 12px;
			font-weight: 700;
			color: var(--cc-dark);
			font-size: 0.9rem;
		}

			.cc-main-menu > ul > li > a:hover {
				color: var(--cc-primary);
			}

/* Mega menu – desktop */
.mega {
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translate(-50%, 20px);
	background: #fff;
	width: 700px;
	border-radius: 20px;
	box-shadow: var(--cc-shadow);
	padding: 25px;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 8px;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: .25s;
}

.has-sub:hover .mega {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translate(-50%, 0);
}

.mega a {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 15px;
	border-radius: 12px;
	font-weight: 600;
	color: var(--cc-text);
}

	.mega a:hover {
		background: var(--cc-light);
		color: var(--cc-primary);
	}

/* Actions */
.cc-actions {
	display: flex;
	align-items: center;
	gap: 12px;
}

.cc-apply, .cc-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 12px 28px;
	border-radius: 50px;
	font-weight: 700;
	border: 0;
	transition: .3s;
}

.cc-btn-primary {
	background: linear-gradient(135deg, #D4AF37, #B71C1C);
	color: #fff;
	box-shadow: 0 10px 25px rgba(139,26,43,0.3);
}

.cc-btn-gold {
	background: linear-gradient(135deg, var(--cc-gold), var(--cc-amber));
	color: var(--cc-dark);
}

.cc-btn-outline-light {
	background: transparent;
	border: 2px solid #fff;
	color: #fff;
}

.cc-btn-outline {
	border: 2px solid var(--cc-primary);
	color: var(--cc-primary);
	background: transparent;
}

/* HERO SLIDER */
.cc-hero {
	position: relative;
	min-height: 100vh;
	display: flex;
	align-items: center;
	overflow: hidden;
}

.cc-hero-slider, .cc-hero-slide {
	position: absolute;
	inset: 0;
}

.cc-hero-slide {
	opacity: 0;
	transform: scale(1.1);
	transition: 1.5s;
}

	.cc-hero-slide.active {
		opacity: 1;
		transform: scale(1);
	}

	.cc-hero-slide img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

.cc-hero-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(0,0,0,0.7), rgba(0,0,0,0.1));
	z-index: 1;
}

.cc-hero-content {
	position: relative;
	z-index: 2;
	color: #fff;
	max-width: 800px;
}

.cc-hero h1 {
	font-family: 'Playfair Display', serif;
	font-weight: 900;
	font-size: clamp(2.8rem, 6vw, 5rem);
	line-height: 1.1;
	margin: 20px 0;
}

.cc-hero p {
	font-size: 1.2rem;
	opacity: 0.9;
	max-width: 600px;
}

.cc-hero-buttons {
	display: flex;
	gap: 15px;
	margin-top: 30px;
	flex-wrap: wrap;
}

.cc-quick-strip {
	position: absolute;
	bottom: 30px;
	left: 5%;
	right: 5%;
	z-index: 3;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 15px;
}

	.cc-quick-strip a {
		background: rgba(255,255,255,0.85);
		backdrop-filter: blur(10px);
		border-radius: 20px;
		padding: 18px;
		font-weight: 700;
		color: var(--cc-dark);
		display: flex;
		align-items: center;
		gap: 12px;
		box-shadow: 0 15px 35px rgba(0,0,0,0.1);
	}

	.cc-quick-strip i {
		color: var(--cc-primary);
		font-size: 1.5rem;
	}

.cc-hero-dots {
	position: absolute;
	left: 5%;
	bottom: 130px;
	z-index: 4;
	display: flex;
	gap: 10px;
}

.cc-hero-dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: rgba(255,255,255,0.5);
	cursor: pointer;
}

	.cc-hero-dot.active {
		background: var(--cc-gold);
	}

/* SECTIONS */
.cc-section {
	padding: 100px 0;
}

.cc-section-title span {
	color: var(--cc-primary);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 2px;
	font-size: 0.8rem;
}

.cc-section-title h2 {
	font-family: 'Cormorant Garamond', serif;
	font-size: 3rem;
	margin: 8px 0;
	color: var(--cc-dark);
}

.cc-separator-gold {
	width: 60px;
	height: 3px;
	background: var(--cc-gold);
	margin: 15px auto;
}

.cc-stats {
	background: var(--cc-light);
}

.cc-stat-card {
	padding: 40px 20px;
	background: #fff;
	border-radius: 20px;
	box-shadow: var(--cc-shadow);
}

	.cc-stat-card i {
		font-size: 2rem;
		color: var(--cc-primary);
		margin-bottom: 10px;
	}

	.cc-stat-card h3 {
		font-family: 'Playfair Display', serif;
		font-size: 2.5rem;
		color: var(--cc-dark);
	}

.cc-image-card {
	position: relative;
	background: var(--cc-light);
	border-radius: 30px;
	padding: 30px;
	box-shadow: var(--cc-shadow);
}

.cc-image-badge {
	position: absolute;
	right: 20px;
	bottom: 20px;
	background: var(--cc-primary);
	color: #fff;
	border-radius: 20px;
	padding: 15px 25px;
	text-align: center;
}

	.cc-image-badge strong {
		font-size: 2rem;
		display: block;
	}

.cc-principal-card {
	background: #fff;
	border-left: 5px solid var(--cc-gold);
	border-radius: 30px;
	padding: 50px;
	box-shadow: var(--cc-shadow);
}

.cc-principal-img {
	width: 300px;
	border-radius: 5px;
	box-shadow: 0 20px 40px rgba(0,0,0,0.1);
	margin-bottom: 20px;
}

.cc-card {
	background: #fff;
	border-radius: 25px;
	padding: 40px 30px;
	border: 1px solid var(--cc-border);
	box-shadow: var(--cc-shadow);
	transition: .3s;
	text-align: center;
}

	.cc-card:hover {
		transform: translateY(-8px);
	}

	.cc-card i {
		font-size: 2.5rem;
		color: var(--cc-primary);
		margin-bottom: 20px;
	}

	.cc-card h4 {
		font-weight: 700;
		color: var(--cc-dark);
	}

.cc-admission-journey {
	background: linear-gradient(135deg, var(--cc-primary), var(--cc-dark));
	color: #fff;
}

.cc-admission-panel {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
	flex-wrap: wrap;
}

	.cc-admission-panel h2 {
		font-family: 'Cormorant Garamond', serif;
		font-size: 2.8rem;
	}

.cc-admission-step-card {
	background: rgba(255,255,255,0.15);
	backdrop-filter: blur(10px);
	border-radius: 20px;
	padding: 30px;
	text-align: center;
	color: #fff;
}

.cc-step-card span {
	display: inline-block;
	width: 50px;
	height: 50px;
	background: var(--cc-gold);
	color: var(--cc-dark);
	border-radius: 50%;
	font-weight: 700;
	font-size: 1.5rem;
	line-height: 50px;
	margin-bottom: 15px;
}

.cc-facilities {
	background: var(--cc-light);
}

.cc-facility-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}

	.cc-facility-grid a {
		background: #fff;
		border-radius: 20px;
		padding: 30px;
		text-align: center;
		font-weight: 700;
		box-shadow: 0 10px 30px rgba(0,0,0,0.05);
		transition: .3s;
	}

		.cc-facility-grid a:hover {
			transform: translateY(-5px);
		}

	.cc-facility-grid i {
		font-size: 2rem;
		color: var(--cc-primary);
		margin-bottom: 10px;
	}

.cc-news-card {
	background: #fff;
	border-radius: 20px;
	overflow: hidden;
	box-shadow: var(--cc-shadow);
	transition: .3s;
}

	.cc-news-card:hover {
		transform: translateY(-5px);
	}

.cc-news-img img {
	height: 200px;
	object-fit: cover;
	width: 100%;
}

.cc-news-body {
	padding: 20px;
}

.cc-news-cat a {
	color: var(--cc-primary);
	font-weight: 700;
	font-size: 0.75rem;
	text-transform: uppercase;
}

.cc-news-body h4 {
	margin: 10px 0;
	color: var(--cc-dark);
}

.cc-news-readmore {
	font-weight: 700;
	color: var(--cc-primary);
}

.cc-recent-posts {
	background: var(--cc-light);
	border-radius: 20px;
	padding: 30px;
}

	.cc-recent-posts h5 {
		margin-bottom: 15px;
	}

	.cc-recent-posts li {
		margin-bottom: 15px;
		border-bottom: 1px solid var(--cc-border);
		padding-bottom: 10px;
	}

	.cc-recent-posts .date {
		font-size: 0.8rem;
		color: var(--cc-primary);
		display: block;
	}

.cc-notices {
	background: #fff;
}

.cc-notice-list a {
	display: grid;
	grid-template-columns: 120px 1fr 30px;
	align-items: center;
	gap: 20px;
	background: var(--cc-light);
	border-radius: 15px;
	padding: 18px 25px;
	margin-bottom: 15px;
	font-weight: 600;
	transition: .2s;
}

	.cc-notice-list a:hover {
		background: var(--cc-primary);
		color: #fff;
	}

.cc-notice-list span {
	color: var(--cc-gold);
	font-weight: 700;
}

.cc-gallery-preview {
	background: var(--cc-dark);
	color: #fff;
}

.cc-gallery-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 15px;
}

.cc-gallery-item {
	border-radius: 15px;
	overflow: hidden;
}

	.cc-gallery-item img {
		width: 100%;
		height: 250px;
		object-fit: cover;
		transition: .4s;
	}

	.cc-gallery-item:hover img {
		transform: scale(1.05);
	}

.cc-contact-card {
	background: #fff;
	border-radius: 30px;
	padding: 50px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	box-shadow: var(--cc-shadow);
}

	.cc-contact-card h2 {
		font-family: 'Cormorant Garamond', serif;
		font-size: 2.5rem;
	}

.cc-footer {
	background: var(--cc-dark);
	color: #fff;
	padding: 80px 0 30px;
}

	.cc-footer h5 {
		color: var(--cc-gold);
		margin-bottom: 15px;
	}

	.cc-footer a:hover {
		color: var(--cc-amber);
	}

.footer-highlight {
	color: var(--cc-amber);
	font-weight: 700;
}

.cc-copyright {
	border-top: 1px solid rgba(255,255,255,0.1);
	margin-top: 40px;
	padding-top: 20px;
	text-align: center;
}

/* REVEAL ANIMATION */
.reveal-up, .reveal-left, .reveal-right {
	opacity: 0;
	transition: 0.8s cubic-bezier(0.5, 0, 0, 1);
}

.reveal-up {
	transform: translateY(40px);
}

.reveal-left {
	transform: translateX(-40px);
}

.reveal-right {
	transform: translateX(40px);
}

.revealed {
	opacity: 1;
	transform: none;
}

/* ========== RESPONSIVE ========== */
@media (max-width: 1199px) {
	.cc-menu-toggle {
		display: flex; /* show hamburger */
	}

	.cc-main-menu {
		position: fixed;
		right: -100%;
		top: 0;
		width: 80%;
		max-width: 400px;
		height: 100vh;
		background: #fff;
		padding: 100px 30px 30px;
		box-shadow: var(--cc-shadow);
		transition: right 0.3s ease;
		overflow-y: auto;
		z-index: 1400;
	}

		.cc-main-menu.active {
			right: 0;
		}

		.cc-main-menu > ul {
			flex-direction: column;
			gap: 0;
		}

			.cc-main-menu > ul > li > a {
				padding: 15px 0;
				border-bottom: 1px solid var(--cc-border);
				font-size: 1rem;
			}

	/* Mega menu on mobile – always show block, toggled by open class */
	.mega {
		position: static;
		width: 100%;
		box-shadow: none;
		grid-template-columns: 1fr;
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transform: none;
		display: none; /* hidden by default */
		padding: 10px 0 10px 20px;
		background: transparent;
	}

	.has-sub.open .mega {
		display: grid; /* show when parent has .open class */
	}

	.has-sub > a::after {
		content: "\f107"; /* FontAwesome down arrow */
		font-family: "Font Awesome 6 Free";
		font-weight: 900;
		margin-left: 8px;
		transition: transform 0.3s;
	}

	.has-sub.open > a::after {
		transform: rotate(180deg);
	}

	.cc-quick-strip {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 767px) {
	.cc-topbar .cc-container {
		flex-direction: column;
		align-items: flex-start;
	}

	.cc-contact-line {
		flex-direction: column;
		gap: 5px;
	}

	.cc-top-links {
		width: 100%;
		justify-content: space-between;
	}

	.cc-brand img {
		width: 200px;
	}

	.cc-hero {
		min-height: auto;
		padding: 150px 0 60px;
	}

	.cc-hero-content {
		text-align: center;
	}

	.cc-quick-strip {
		position: static;
		margin-top: 20px;
		grid-template-columns: 1fr;
	}

	.cc-hero-dots {
		bottom: 100px;
	}

	.cc-section {
		padding: 60px 0;
	}

	.cc-section-title h2 {
		font-size: 2.2rem;
	}

	.cc-contact-card, .cc-admission-panel {
		flex-direction: column;
	}

	.cc-facility-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.cc-gallery-grid {
		grid-template-columns: 1fr;
	}

	.cc-footer .row > div {
		margin-bottom: 30px;
	}
}
