@import url('https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&family=Open+Sans:ital,wght@0,300..800;1,300..800&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Roboto+Slab:wght@100..900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap');
:root {
	--primary-color: #ed1354;
	--secondary-color: #f7f5dd;
	--lightblack-color: #3d3c3c;
	--shadow-color: rgba(0, 0, 0, 0.30);
	--accent-pink: #fff4f4;
	--sky-blue: #92dce5;
	--lemon-yellow: #fce77d;
	--leaf-green: #7ed957;
	--soft-orange: #ffb347;
	--text-dark: #295b99ff;
	--text-light: #e4e4e4;
	--text-black: #151515;
	--pinkc: #fff4f4;

	--navfont-font: "Poppins", sans-serif;
	--secondary-font: "Roboto", sans-serif;
	--primary-text: #021832;
	--secondary-text: #caaa19;
	--text-white: #fff;
	--text-gray: #e4e4e4;
}

* {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

body {
	width: 100%;
	height: 100vh;
	font-family: var(--navfont-font);
	overflow-x: hidden;
}

/*Text Size Classes */
.headingsize {
	font-size: 2rem;
}

.subheadingsize {
	font-size: 1.3rem;
}

.paratextsize {
	font-size: 20px;
}

.subparatextsize {
	font-size: 1.2rem;
}

/* Font Weight */
.fw-2 {
	font-weight: 600;
}

/* Color Classes */
.primarycolor {
	color: var(--primary-color);
}

.primarytext {
	color: var(--primary-text);
}

.lightblack {
	color: var(--lightblack-color);
}

/* Text Justify */
.textjustify {
	text-align: justify;
}

/* Hero Section */
.hero-section {
	background: url('../images/academicsCover.jpg') no-repeat center center/cover;
	color: rgb(236, 229, 229);
	text-align: center;
	overflow: hidden;
	width: 100%;
	height: 35vw;
	display: flex;
	flex-direction: row;
	justify-content: center;
	align-items: center;
}

.hero-section .container {
	width: 80vw;
    height: 15vw;
	display: flex;
	flex-direction: column;
    gap: 10px;
	justify-content: center;
    align-items: center;
	color: white;
	font-family: var(--navfont-font);
	background: rgba(175, 188, 240, 0.2);
	position: absolute;
	background-color:rgba(0, 0, 0, 0.288);
    backdrop-filter: blur(4px);
    border-radius: 10px;
    box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.6);
    text-shadow: 1px 1px 8px black;
	padding: 40px 30px;
	z-index: 1;
}

.hero-section .container h1 {
	font-size: 2.5rem;
	font-weight: 600;
}

.hero-section .container p {
	font-size: 1.25rem;
	font-weight: 400;
	text-shadow: 1px 1px 5px rgb(0, 0, 0);
}

/* Academics Intro */
.academics-intro {
	padding: 40px 30px;
}

.academics-intro .container-fluid {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}

.section-title {
	text-align: center;
	margin-bottom: 40px;

}

.section-title h2 {
	position: relative;

}

.section-title h2::after {
	content: '';
	position: absolute;
	bottom: -7px;
	left: 50%;
	transform: translateX(-50%);
	width: 100px;
	height: 3px;
	background: var(--primary-color);
	border-radius: 2px;

}
.intro-text {
	line-height: 1.8;
	/* max-width: 1000px; */
	text-align: center;
}

/* Programs Section */
.programs-section {
	padding: 40px 30px;
    background: linear-gradient(to right, #e6f0fc54, #f7f0d48a, #fad9f35d); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
}

.program-card {
	background: #F7F5DD;
	border-radius: 15px;
	overflow: hidden;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
	margin-bottom: 30px;
	transition: all 0.4s ease;
	height: 100%;
}

.program-card:hover {
	transform: translateY(-10px);
	box-shadow: 0 15px 35px rgba(0, 0, 0, 0.15);
}

.program-header {
	padding: 25px 25px 15px;
	color: white;
}

.program-age {
	font-size: 1rem;
	opacity: 0.9;
	margin-bottom: 5px;
}

.program-title {
	font-size: 1.8rem;
	font-weight: 600;
	margin-bottom: 10px;
}

.program-subtitle {
	font-size: 1.2rem;
	font-weight: 300;
	opacity: 0.9;
}

.program-body {
	padding: 20px;
}

.program-body p {
	color: black;
	margin-bottom: 20px;
	line-height: 1.7;
}

.highlight-title {
	font-weight: 600;
	color: var(--primary-text);
	margin-bottom: 15px;
	font-size: 1.1rem;
}

.program-features li {
	list-style: none;
	margin-bottom: 12px;
	padding-left: 25px;
	position: relative;
}

.program-features li::before {
	content: "✓";
	position: absolute;
	left: 0;
	color: var(--primary-color);
	font-weight: bold;
}
/*Activity Room */
.activity-room{
	padding: 40px 30px;
}
.section-title > p{
    margin-top:23px;
    color: var(--lightblack-color);
}
.activity-room h3{
    color: #021832;
}
.activity-items :nth-child(2) > p{
	color: var(--lightblack-color);
}
.activity-room .icon {
  display: flex;
  align-items: center;   /* keeps vertical alignment */
  justify-content: center;
  font-size: 2rem;       /* adjust icon size */
  margin-top: 4px;       /* push icon slightly down */
  min-width: 40px;       /* ensures equal spacing */
}

.activity-room .row > div {
  padding-left:10%;   /* equal padding left */
}

/* Learning Model CSS */
.curriculum-container {
	width: 100%;
	padding: 40px 30px;
	background: linear-gradient(to right, #e6f0fc54, #f7f0d48a, #fad9f35d);
}

.section-header {
	text-align: center;
	margin-bottom: 50px;
	position: relative;
}

.section-header h2 {
	position: relative;
}

.section-header h2::after {
	content: '';
	position: absolute;
	bottom: -7px;
	left: 50%;
	transform: translateX(-50%);
	width: 120px;
	height: 3px;
	background: var(--primary-color);
	border-radius: 3px;
}

.section-header p {
	color: var(--lightblack-color);
	margin: 40px auto 0;
	line-height: 1.8;
	position: relative;
	padding: 0px 20px;
	text-align: center;
	
}

.curriculum-timeline {
	position: relative;
	padding: 40px 0;
	margin-bottom: 60px;
}

/* Timeline center line */
.curriculum-timeline::before {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 4px;
	background: linear-gradient(to bottom, var(--soft-orange), var(--primary-color));
	border-radius: 2px;
}

.timeline-item {
	display: flex;
	justify-content: center;
	align-items: center;
	margin-bottom: 80px;
	position: relative;
}

.timeline-item:nth-child(even) {
	flex-direction: row-reverse;
}

.timeline-item:last-child {
	margin-bottom: 0;
}

.timeline-content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	height:400px;
	width: 400px;;
	padding: 30px;
	background: var(--text-white);
	border-radius: 15px;
	box-shadow: 0 10px 30px var(--shadow-color);
	position: relative;
	z-index: 1;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.timeline-item:nth-child(odd) .timeline-content {
	margin-right: 60px;
}

.timeline-item:nth-child(even) .timeline-content {
	margin-left: 60px;
}

.timeline-content:hover {
	transform: translateY(-10px);
	box-shadow: 0 15px 35px rgba(0, 0, 0, 0.15);
}

.timeline-content h3 {
	color: var(--primary-text);
	margin-bottom: 15px;
	font-family: var(--navfont-font);
	position: relative;
	padding-bottom: 20px;
}

.timeline-content h3::after {
	content: '';
	position: absolute;
	bottom: 15px;
	left: 50%;
	transform: translateX(-50%);
	width: 50px;
	height: 3px;
	background: linear-gradient(to right, var(--soft-orange), var(--primary-color));
	border-radius: 2px;
}

.timeline-content p {
	color: var(--lightblack-color);
	line-height: 1.8;
	text-align: center;
}

.timeline-image {
	height:400px;
	width: 400px;
	border-radius: 15px;
	overflow: hidden;
	position: relative;
	box-shadow: 0 10px 30px var(--shadow-color);
	transition: transform 0.3s ease;
}

.timeline-item:nth-child(odd) .timeline-image {
	margin-left: 60px;
}

.timeline-item:nth-child(even) .timeline-image {
	margin-right: 60px;
}

.timeline-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
}

.timeline-image:hover img {
	transform: scale(1.05);
}

.timeline-marker {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 40px;
	height: 40px;
	background: var(--text-white);
	border: 4px solid var(--primary-color);
	border-radius: 50%;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 0 0 8px var(--secondary-color);
}

.timeline-marker i {
	color: var(--primary-color);
	font-size: 1.2rem;
}

/* Why Families Trust Radiant Roots Section */
.why-families-section{
		padding: 40px 30px;
}
.why-families {
	text-align: center;
	margin-bottom: 50px;
}

.why-families h2 {
	position: relative;
}

.why-families h2::after {
	content: '';
	position: absolute;
	bottom: -15px;
	left: 50%;
	transform: translateX(-50%);
	width: 80px;
	height: 4px;
	background: var(--primary-color);
	border-radius: 2px;
}

.why-families-points {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px;
	margin: 40px 0;
}

.flex-items {
	background: #F7F5DD;
	border-radius: 15px;
	padding: 15px;
	display: flex;
	align-items: flex-start;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
	transition: all 0.4s ease;
	border: 1px solid #eaeaea;
	position: relative;
	overflow: hidden;
}

.flex-items:hover {
	transform: translateY(-5px);
	box-shadow: 0 15px 35px rgba(0, 0, 0, 0.2);
	border-color: #d1e7ff;
}


.icon-container {
	width: 70px;
	height: 70px;
	border-radius: 50%;
	display: flex;
	justify-content: center;
	align-items: center;
	margin-right: 25px;
	flex-shrink: 0;
	box-shadow: 2px 2px 15px rgba(0, 0, 0, 0.5);
}

.flex-items:nth-child(1) .icon-container {
	/* background: linear-gradient(135deg, #d63a40 0%, #f59d84 100%); */
	background-color: var(--primary-color);
}

.flex-items:nth-child(2) .icon-container {
	/* background: linear-gradient(135deg, #77a4ed 0%, #305ba1 100%); */
	background-color: var(--primary-color);
}

.flex-items:nth-child(3) .icon-container {
	/* background: linear-gradient(135deg, #329958 0%, #8fdbab 100%); */
	background-color: var(--primary-color);
}

.flex-items:nth-child(4) .icon-container {
	/* background: linear-gradient(135deg, #8026bd 0%, #cb9beb 100%); */
	background-color: var(--primary-color);
}

.icon-container i {
	font-size: 30px;
	color: white;
}

.flex-items h3 {
	text-align: left;
	color: #2c3e50;
	margin: auto 0px;
	font-weight: 500;
}

.tagline {
	text-align: center;
	color: rgb(63, 62, 62);
	margin-top: 60px;
	position: relative;
	font-weight: 600;
	margin: 10px 0px 0;
	line-height: 1.5;
}


.decoration {
	position: absolute;
	width: 100px;
	height: 100px;
	border-radius: 50%;
	opacity: 0.1;
	z-index: -1;
}

.decoration-1 {
	top: 10%;
	left: 5%;
	background: #ff9a9e;
	width: 80px;
	height: 80px;
}

.decoration-2 {
	top: 70%;
	right: 10%;
	background: #2575fc;
	width: 120px;
	height: 120px;
}

.decoration-3 {
	bottom: 10%;
	left: 15%;
	background: #84fab0;
	width: 60px;
	height: 60px;
}

.decoration-4 {
	top: 20%;
	right: 15%;
	background: #ffecd2;
	width: 70px;
	height: 70px;
}

/* Responsive Design */

@media only screen and (max-width: 600px) {
	/* All Sections Padding CSS */
    .academics-intro,
    .programs-section,
    .activity-room,
    .curriculum-container,
    .why-families-section{
    		padding: 25px 15px;
    }

	/* Hero Section */
	.hero-section .container {
		justify-content: center;
		gap:0px;
		width: 90vw !important;
        height: 20vw !important;
	}

	.hero-section .container h1 {
		font-size: 18px;
		margin-bottom: 3px;
	}

	.hero-section .container p {
		font-size: 0.6rem;
		margin: 0px;
	}

	/* Academics Intro */
	.academics-intro .section-title {
		margin-bottom: 20px;
	}
	.section-header > p{
		padding: 0px 10px;
	}

	/* Academics Programm */
    .program-header {
		padding: 20px 20px 10px;
		color: white;
	}

	.program-age {
		font-size: 0.8rem;
		margin-bottom: 3px;
	}

	.program-title {
		font-size: 1.5rem;
		margin-bottom: 8px;
	}

	.program-subtitle {
		font-size: 1rem;
		font-weight: 300;
	}

	.program-body {
		padding: 15px;
	}

	.program-body p {
		color: black;
		font-size: 1rem;
	}

	.highlight-title {
		font-weight: 600;
		color: var(--primary-text);
		margin-bottom: 15px;
		font-size: 1rem;
	}

	.program-features {
		padding-left: 13px;
	}

	.program-features li {
		list-style: none;
		margin-bottom: 8px;
		padding-left: 25px;
		position: relative;
	}
	/* Activity Room */
	.activity-room h3{
		margin-bottom: 5px;
	}
	.activity-items{
		margin-top: 15px;
	}
    .activity-room .icon {
		margin-top: 5px;
		margin-right: 10px !important;
	}
	/* Our Model */
	.timeline-content{
		width: 70vw !important;
		height: 70vw !important;
		text-align: center !important;
		margin-bottom: 15px !important;
	}

	.timeline-content>p {
		text-align: center !important;
	}

	.timeline-image {
		width: 70vw !important;
		height: 70vw !important;
	}

    .timeline-item:nth-child(odd) .timeline-content {
     	margin:0px;
     }
    .timeline-item:nth-child(even) .timeline-content {
    	margin:0px;
    }

	.timeline-item:nth-child(odd) .timeline-image {
    	margin: 0px;
    }

    .timeline-item:nth-child(even) .timeline-image {
    	margin: 0px;
    }
 
	.curriculum-timeline {
		margin-bottom: 10px;
	}

	.curriculum-timeline::before {
		left: 20px;
	}

	.timeline-marker {
		width: 30px;
		height: 30px;
		left: 18px;
		border: 2px solid var(--primary-color);
	}

	.timeline-item {
		flex-direction: column !important;
		margin-bottom: 60px;
	}

	.tagline {
		font-size: 1.2rem;
		font-weight: 500;
	}

	/* Why Families */
	.why-families-points {
		grid-template-columns: 1fr;
		max-width: 600px;
		margin: 30px auto 10px auto;
	}
    .icon-container i{
		font-size: 21px;
	}
	
	.tagline {
		margin-top: 0%;
		padding:0px;
	}
	
	.icon-container {
		width: 50px;
		height: 50px;
		margin-right: 15px;
	}
	/* Text Sizes*/
    .headingsize {
		font-size: 1.4rem;
	}

	.subheadingsize {
		font-size: 1rem;
	}

	.paratextsize {
		font-size: 0.8rem;
	}

	.subparatextsize {
		font-size: 0.5rem;
	}

	/* Font Weight */
	.fw-2 {
		font-weight: 600;
	}
}
@media only screen and (min-width: 601px) and (max-width: 768px) {
	/* Text Size */
	.headingsize {
		font-size: 1.4rem;
	}

	.subheadingsize {
		font-size: 1rem;
	}

	.paratextsize {
		font-size: 0.8rem;
	}

	.subparatextsize {
		font-size: 0.5rem;
	}
    /* All Sections Padding CSS */
    .academics-intro,
    .programs-section,
    .activity-room,
    .curriculum-container,
    .why-families-section{
    		padding: 25px 15px;
    }
	/* Hero Section */
	.hero-section .container {
		justify-content: center;
		gap: 5px;
		width: 90vw !important;
        height: 20vw !important;
		padding: 10px 20px;
	}

	.hero-section .container h1 {
		font-size: 20px;
		margin-bottom: 3px;
	}

	.hero-section .container p {
		font-size: 0.9rem;
		margin: 0px;
	}
	/* Font Weight */
	.fw-2 {
		font-weight: 600;
	}

	.section-header h1 {
		font-size: 2.5rem;
	}

	.section-header p {
		font-size: 1.1rem;
	}

	/* Our Learning Model */
	.timeline-content,.timeline-image{
		width: 40vw !important;
		height: 40vw !important;
		text-align: center !important;
	}

	/* Why Families */
	.why-families-points {
		grid-template-columns: 1fr;
		max-width: 600px;
		margin: 30px auto 10px auto;
	}
	.tagline {
		font-size: 1.1rem;
	}

	.flex-items {
		padding: 10px;
	}

	.icon-container {
		width: 60px;
		height: 60px;
	}
	.icon-container i{
		font-size: 23px;
	}	
}
@media only screen and (min-width: 769px) and (max-width: 991px) {
	/* Text Size */
	.headingsize {
		font-size: 1.4rem;
	}

	.subheadingsize {
		font-size: 1rem;
	}

	.paratextsize {
		font-size: 0.8rem;
	}

	.subparatextsize {
		font-size: 0.5rem;
	}
    /* All Sections Padding CSS */
    .academics-intro,
    .programs-section,
    .activity-room,
    .curriculum-container,
    .why-families-section{
    		padding: 25px 15px;
    }
	/* Font Weight */
	.fw-2 {
		font-weight: 600;
	}

	/* Hero Section */
	.hero-section .container {
		justify-content: center;
		gap: 5px;
		width: 80vw;
		height: 18vw;
	}

	.hero-section .container h1 {
		font-size: 20px;
		margin-bottom: 3px;
	}

	.hero-section .container p {
		font-size: 0.9rem;
		margin: 0px;
	}
	.section-header h1 {
		font-size: 2.5rem;
	}

	.section-header p {
		font-size: 1.1rem;
	}
	
	/* Our Learning Model */
	.timeline-content,.timeline-image{
		width: 40vw !important;
		height: 40vw !important;
		text-align: center !important;
	}
	
	/* Why Families */
	.why-families-points {
		grid-template-columns: 1fr;
		max-width: 600px;
		margin: 30px auto 10px auto;
	}
	.tagline {
		font-size: 1.1rem;
	}

	.flex-items {
		padding: 10px;
	}

	.icon-container {
		width: 60px;
		height: 60px;
	}
	.icon-container i{
		font-size: 23px;
	}
}
@media only screen and (min-width: 992px) and (max-width: 1120px) {
	/* Hero Section */
	.hero-section .container {
		justify-content: center;
		gap: 5px;
		width: 90vw;
		height: 20vw;
		padding:0px 10px;
	}

	.hero-section .container h1 {
		font-size: 25px;
		margin-bottom: 3px;
	}

	.hero-section .container p {
		font-size: 1.1rem;
		margin: 0px;
	}
}