/*
Theme Name: Polar Theme
Theme URI: https://example.com
Author: Your Name
Author URI: https://example.com
Description: A custom WordPress theme.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 8.0
Text Domain: polar-theme
*/


/* ==========================================================================
   1. ROOT VARIABLES / DESIGN TOKENS
   ========================================================================== */
:root {
  --color-primary: #EE5C06;
  --color-secondary: #0F172A;
  --color-text: #2C3033;
  --color-accent: #FBBF24;
  --color-white: #FFFFFF;
  --color-light-bg: #F7F8FA;
  --color-border: #E7E9EC;
  --color-primary-20 : rgb(238, 92, 6, 0.2);
  --color-border : #0F172A26;
  --color-gray : #F8FAFC;
  --color-blue : #0d6efd;
  --color-black-50 : #E7E8EA;

  --font-heading: 'Poppins', sans-serif;
  --font-text: 'Inter', sans-serif;

  --container-width: 1620px;
  --container-padding: 20px;
  --section-spacing: 120px;
  --section-spacing-sm: 70px;

  --rounded-20 : 20px;

  /* Desktop type scale */
  --h1-size: 50px;
  --h1-lh: 60px;
  --h2-size: 40px;
  --h2-lh: 60px;
  --h3-size: 24px;
  --h3-lh: 28px;
  --text-size: 18px;
  --text-lh: 28px;

  --mb-60 : 60px;
}

/* ==========================================================================
   2. RESET
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  padding: 0;
  font-family: var(--font-text);
  font-size: var(--text-size);
  line-height: var(--text-lh);
  color: var(--color-text);
  overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
a { text-decoration: none; color: inherit;}
a, button { transition: all ease-in-out 0.3s;}
ul { margin: 0; padding: 0; list-style: none; }
p {margin-bottom: 24px; margin-top: 0px;}
p:last-child {margin-bottom: 0px;}
h1, h2, h3, h4, h5, h6 {
  margin: 0;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
}
.elementor-heading-title, p {line-height: inherit;}
h1, h1.elementor-heading-title {font-size: var(--h1-size); line-height: var(--h1-lh) ;}
h3 {font-size: var(--h3-size); line-height: var(--h3-lh);}

/* header, footer {display: none;} */
/* header, footer .elementor-image-box-img {display: none;} */

.theme_btn{ cursor: pointer; display: inline-flex; font-size: 15px; line-height: 1; font-weight: 500; color: var(--color-white); background-color: var(--color-primary); padding: 14px 025px 14px 25px; border-radius: 50px; border: 1px solid var(--color-primary); transition: all ease-in-out 0.3s; text-decoration: none; box-shadow: 0px 6px 20px 0px rgba(237.99999999999997, 91.99999999999987, 6.000000000000004, 0.4);}
.theme_btn:hover {color: var(--color-primary); background-color: var(--color-white);}
.primary_color span {color: var(--color-primary);}

/* ==========================================================================
   3. LAYOUT / CONTAINER
   ========================================================================== */
.container {
  width: 100%;
  max-width: var(--container-width);
  margin: 0 auto;
  padding-left: var(--container-padding);
  padding-right: var(--container-padding);
}

.section-spacing {
  padding-top: var(--section-spacing);
  padding-bottom: var(--section-spacing);
}
.section_spacing_sm {
    padding-top: var(--section-spacing-sm);
    padding-bottom: var(--section-spacing);
}
.text-center {text-align: center;}

.eyebrow_line .elementor-divider-separator{border-radius: 10px; overflow: hidden;}
.shine_hover {overflow: hidden; display: flex; position: relative;}
.shine_hover::before, .image_gallery .gallery .gallery-item::before{ position: absolute; top: 0; left: -80%; z-index: 2; display: block; content: ''; width: 30%; height: 100%; background: -webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,.3) 100%); background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,.3) 100%); -webkit-transform: skewX(-25deg); transform: skewX(-25deg);}
.shine_hover:hover::before, .image_gallery .gallery .gallery-item:hover::before { -webkit-animation: shine .75s; animation: shine .75s;}
@keyframes shine {100% {left: 125%;}}

.call_btn a { animation: pulseShadow 2s infinite;}

@keyframes pulseShadow {
    0%{
        box-shadow: 0px 6px 6px 0px rgb(229 58 54 / 30%), 0 0 0 0 rgb(229 58 54 / 60%);
    }
    70%{
        box-shadow: 0px 6px 6px 0px rgb(229 58 54 / 30%), 0 0 0 15px rgba(81, 189, 201, 0);
    }
    100%{
        box-shadow: 0px 6px 6px 0px rgb(229 58 54 / 30%), 0 0 0 0 rgba(81, 189, 201, 0);
    }
}

.hfe-nav-menu-icon, .hfe-site-logo-container {display: flex !important;}
/* Header Menu */
header .hfe-nav-menu-icon, header .hfe-flyout-close {border: 1px solid #eee9e9 !important;}
header .hfe-flyout-close {background: var(--color-gray); border-radius: 50%; width: 48px; height: 48px; display: inline-flex; align-items: center; justify-content: center !important; margin: 0px !important; flex: 0 0 auto;}
header .hfe-flyout-close svg, header .hfe-flyout-close {position: unset;}
header .hfe-flyout-content {display: flex; flex-direction: column; gap: 30px;}
header .hfe-flyout-close {order: -1;}
.banner_slider .swiper-slide-inner .swiper-slide-image {width: 100%;}

.icon_box_card .elementor-icon {width: 56px; height: 56px; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--rounded-20); background-color: var(--color-primary-20);}
.icon_box_card.small .elementor-icon {width: 45px; height: 45px; border-radius: 10px;}
.text_box_group>div {display: flex; align-items: center; gap: 10px;}
.text_box_group>div::before {content: ''; width: 24px; height: 24px; flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; background: url('data:image/svg+xml,<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M12 22C6.477 22 2 17.523 2 12C2 6.477 6.477 2 12 2C17.523 2 22 6.477 22 12C22 17.523 17.523 22 12 22ZM12 20.8C14.3339 20.8 16.5722 19.8729 18.2225 18.2225C19.8729 16.5722 20.8 14.3339 20.8 12C20.8 9.66609 19.8729 7.42778 18.2225 5.77746C16.5722 4.12714 14.3339 3.2 12 3.2C9.66609 3.2 7.42778 4.12714 5.77746 5.77746C4.12714 7.42778 3.2 9.66609 3.2 12C3.2 14.3339 4.12714 16.5722 5.77746 18.2225C7.42778 19.8729 9.66609 20.8 12 20.8ZM10.828 14.558L16.2125 9.17445C16.4469 8.94006 16.827 8.94019 17.0612 9.17473C17.2953 9.40909 17.2952 9.7888 17.061 10.023L11.535 15.549C11.3475 15.7365 11.0932 15.8418 10.828 15.8418C10.5628 15.8418 10.3085 15.7365 10.121 15.549L7.4243 12.8506C7.18994 12.6161 7.19 12.236 7.42443 12.0016C7.65891 11.7671 8.03909 11.7671 8.27357 12.0016L10.828 14.556C10.8286 14.5566 10.8286 14.5574 10.828 14.558Z" fill="%23E53935"/></svg>') no-repeat center;}

.hero_top_section { position: relative; overflow: hidden;}
.hero_top_section::before { content: ""; position: absolute; inset: -100px; background: radial-gradient(circle at 5% 10%, rgba(255, 188, 188, 0.55), transparent 28%), radial-gradient(circle at 8% 80%, rgba(255, 223, 130, 0.50), transparent 30%), radial-gradient(circle at 38% 52%, rgba(255, 215, 215, 0.35), transparent 25%), radial-gradient(circle at 65% 75%, rgba(255, 235, 140, 0.45), transparent 30%), radial-gradient(circle at 100% 95%, rgba(255, 210, 210, 0.30), transparent 22%); filter: blur(70px); z-index: 0;}
.hero_top_section > * { position: relative; z-index: 1;}

/* About Us Section */
.about_images>div {width: 100%;}

/* Cource Section */
.heighlight_list ul {gap: 10px;}
.heighlight_list .elementor-icon-list-item {padding: 8px 16px !important; border-radius: 4px; background-color: #F8FAFC;}
.cource_card .elementor-button-content-wrapper {justify-content: space-between !important; align-items: center;}
.cource_card .elementor-button-content-wrapper svg {width: auto !important;}
.cource_card .elementor-icon-box-content::before {content: ''; width: 60px; border-radius: 5px; height: 6px; background-color: var(--color-primary); margin: 0px auto 24px; display: inline-block;}


/* ============================================ Updates Slider Section ============================================ */
.updates-section { font-family: var(--font-text); color: var(--color-text);}
.updates-section .container { max-width: var(--container-width); margin: 0 auto; padding: 0 var(--container-padding);}

.updates-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding: 00px 0 var(--mb-60);}
.updates-heading {display: flex; flex-direction: column; gap: 20px;}
.updates-heading .heading-bar { display: block; width: 60px; height: 6px; border-radius: 6px; background: var(--color-primary);}
.updates-heading h2 {color: var(--color-secondary);}

.updates-nav { display: flex; gap: 12px; flex-shrink: 0;}
.nav-btn { width: 52px; height: 52px; border-radius: 50%; padding: 0px !important; border: 1px solid  var(--color-primary-20) !important; background-color: var(--color-white) !important; color: var(--color-primary) !important; box-shadow: none !important; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.25s ease;}
.nav-btn:hover { border-color: var(--color-primary) !important; box-shadow: 0 0 0 6px var(--color-primary-20) !important; opacity: 1;}
.nav-btn:disabled { opacity: 0.4; cursor: not-allowed; box-shadow: none;}
.nav-btn svg {width: 24px; height: 24px;}

.updates-slider-wrap { background: var(--color-light-bg); padding: 40px 0px;}
.updates-carousel .owl-stage-outer { overflow: visible;}
.updates-carousel .owl-stage-outer .owl-stage {display: flex;}

.update-card { background: var(--color-white); border: 1px solid var(--color-white); border-radius: 12px; padding: 30px; height: 100%; min-height: 260px; display: flex; flex-direction: column; box-shadow: 0px 4px 20px 0px #1E40AF0D; transition: all ease-in-out 0.3s;}
.update-card:hover {border-color: var(--color-secondary);}
.update-date {color: var(--color-text);  margin-bottom: 18px;}
.update-title {font-weight: 600; color: var(--color-secondary); margin: 0;}
.update-desc { margin: auto 0 20px; padding-top: 12px;}
.read-more { font-weight: 500; color: var(--color-primary); text-decoration: none; width: fit-content;}
.read-more:hover { text-decoration: underline;}


/* Founder Section */
.founder_card .founder_img {width: fit-content; margin-inline: auto !important; position: relative;}
.founder_card .founder_img img {border-radius: 50%; transition: all ease-in-out 0.3s; position: relative; object-fit: cover;}
.founder_card:hover .founder_img img {box-shadow: 0px 2px 20px 0px #FBBF2433; }
.founder_card .founder_img::before {content: ''; position: absolute; width: calc(100% + 8px); height: calc(100% + 8px); border-radius: 50%; top: 50%; left: 50%; transform: translate(-50%, -50%); background: linear-gradient(180deg, #FBBF24 0%, #0F172A 100%) no-repeat center;}
.founder_card .elementor-widget-text-editor span {opacity: 20%;}

/* Admission Process */
.progress_step_box {counter-reset: step;}
.progress_step_box>div {counter-increment: step;}
.progress_step_box, .progress_step_box>div {position: relative;}
.progress_step_box .elementor-image-box-wrapper {padding: 30px; transition: all ease-in-out 0.3s;}
.progress_step_box>div:not(:last-child) .elementor-image-box-wrapper {border-bottom: 1px solid var(--color-border);}
.progress_step_box>div:hover .elementor-image-box-wrapper {border-color: var(--color-primary); background-color: var(--color-white);}
.progress_step_box::before {content: ''; height: 100%; width: 1px; background-color: var(--color-border); position: absolute; left: 22px; top: 0;}
.progress_step_box>div {display: flex; align-items: center; gap: 30px;}
.progress_step_box>div::before{content: "Step " counter(step); width: auto; height: auto; flex: 0 0 auto; font-size: 16px; line-height: 24px; text-transform: uppercase; font-weight: 700; color: var(--color-primary); padding: 20px 0px; background-color: var(--color-gray); transition: all ease-in-out 0.3s;}
.progress_step_box>div:first-child::after, .progress_step_box>div:last-child::after { content: ''; height: 50%; width: 5px; left: 20px; position: absolute; background-color: var(--color-gray);}
.progress_step_box>div:first-child::after{bottom: calc(50% + 20px);}
.progress_step_box>div:last-child::after{top: calc(50% + 20px);}

/* Image Gallery */
.image_gallery .gallery {display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px;}
.image_gallery .gallery .gallery-item {width: 100% !important; position: relative; margin: 0px !important; border-radius: 20px; overflow: hidden; float: unset !important; max-width: 100% !important;}
.image_gallery .gallery br {display: none;}
.image_gallery .gallery .gallery-item img {border: none !important; width: 100%; height: 100%; object-fit: cover; transition: all ease-in-out 0.3s;}
.image_gallery .gallery .gallery-item:hover img {transform: scale(1.1);}
.image_gallery .gallery .gallery-item .gallery-icon {height: 100%;}


.blog_post .hfe-post-card {display: flex; flex-direction: column; flex-wrap: nowrap;}
.blog_post .hfe-post-content {display: flex; flex-direction: column; flex: 1 1 0;}
.blog_post .hfe-post-meta { order: 1; margin: 20px 0px 0px !important; padding-top: 15px; border-top: 1px solid var(--color-border);}
.blog_post .hfe-read-more { width: fit-content; display: inline-flex;  margin-top: auto;}


/* Accordion */
.accordion_group .e-n-accordion-item {border-radius: var(--rounded-20); overflow: hidden; padding: 0px 30px; background-color: var(--color-white);}

/* ============================================ Students Section  ======================= */
.students-section .container { max-width: var(--container-width); margin: 0 auto; padding: 0 var(--container-padding);}
.students-header { display: flex; align-items: end; justify-content: space-between; gap: 40px; margin-bottom: var(--mb-60); flex-wrap: wrap;}
.students-heading {display: flex; flex-direction: column; gap: 20px; max-width: 700px;}
.students-heading .heading-bar { display: block; width: 60px; height: 6px; border-radius: 6px; background: var(--color-primary);}
.students-heading h2 { color: var(--color-secondary);}

.students-tabs { display: flex; align-items: center; gap: 4px; background: var(--color-gray); border-radius: 8px; padding: 6px; flex-shrink: 0; margin-top: 8px; background-color: #F1F2F6;}
.tab-btn { border: none !important; background: transparent !important; color: var(--color-text) !important; box-shadow: none !important; font-size: var(--text-size); line-height: var(--text-lh); box-shadow: none; padding: 8px 24px !important; border-radius: 8px !important; color: var(--color-text); cursor: pointer; white-space: nowrap; transition: all ease-in-out 0.3s;}
.tab-btn:hover, .tab-btn.active {background: var(--color-white) !important; color: var(--color-primary) !important; opacity: 1;}
.tab-btn.active {font-weight: 700 !important;}

.students-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;}
.students-grid.is-hidden { display: none;}
.student-card { background: var(--color-white); border: 1px solid var(--color-border); border-radius: var(--rounded-20); overflow: hidden; text-align: center; padding: 40px 24px 30px; position: relative; overflow: hidden;}
.card-top-bar { height: 8px; width: 100%; background: var(--color-secondary); position: absolute; top: 0; left: 0; transition: all ease-in-out 0.3s;}
.student-card.top-rank .card-top-bar, .student-card:hover .card-top-bar { background: var(--color-accent);}
.student-photo { width: 100px; height: 100px; border-radius: 50%; overflow: hidden; margin: 0px auto 16px; background: var(--color-light-bg); display: flex; align-items: center; justify-content: center; font-family: var(--font-heading); font-size: 28px; font-weight: 700; color: var(--color-secondary);}
.student-photo img { width: 100%; height: 100%; object-fit: cover;}
.student-name { color: var(--color-secondary); margin: 0 0 6px;}
.student-rank { display: block; font-size: 16px; line-height: 24px; font-weight: 700; color: var(--color-primary); margin-bottom: 6px;}
.student-exam { font-size: 14px; line-height: 26px; font-weight: 600; color: var(--color-text); text-transform: uppercase; margin: 0 0 16px; padding-bottom: 16px; border-bottom: 1px solid #0F172A26;}
.student-stats { display: flex; border-radius: 12px; overflow: hidden; display: flex; align-items: center; gap: 8px; text-align: center; justify-content: center;}
.student-stats span { flex: 1; padding: 8px; font-size: 16px; line-height: 24px; font-weight: 500; color: var(--color-secondary);  border-radius: 8px; background: var(--color-gray);}




/* ============================================ Single Update Page ============================================ */
.single-update-section { font-family: var(--font-text); color: var(--color-text); padding: 60px 0 100px;}
.single-update-container { max-width: 800px; margin: 0 auto; padding: 0 var(--container-padding);}
.back-link { display: inline-block; color: var(--color-primary); font-weight: 600; text-decoration: none; margin-bottom: 32px;}
.back-link:hover { text-decoration: underline;}
.expired-banner { background: #FEF2F2; border: 1px solid #FCA5A5; color: #B91C1C; font-weight: 600; padding: 14px 20px; border-radius: 12px; margin-bottom: 24px;}
.single-update-date { display: block; font-size: 15px; color: var(--color-text); opacity: 0.7; margin-bottom: 16px;}
.single-update-title { font-family: var(--font-heading); font-size: 38px; line-height: 46px; font-weight: 700; color: var(--color-secondary); margin: 0 0 32px;}
.single-update-thumb { border-radius: var(--rounded-20); overflow: hidden; margin-bottom: 32px;}
.single-update-thumb img { width: 100%; height: auto; display: block;}
.single-update-content { font-size: var(--text-size); line-height: var(--text-lh); color: var(--color-text);}
.single-update-content p { margin: 0 0 20px;}

/* ===================== Updates Archive Page  ===================================== */
.updates-archive-section { font-family: var(--font-text); color: var(--color-text); padding: 60px 0 100px;}
.updates-archive-container { max-width: var(--container-width); margin: 0 auto; padding: 0 var(--container-padding);}
.updates-archive-header { margin-bottom: 48px;}
.updates-archive-header .heading-bar { display: block; width: 60px; height: 4px; border-radius: 4px; background: var(--color-primary); margin-bottom: 20px;}
.updates-archive-header h1 { font-family: var(--font-heading); font-size: var(--h1-size); line-height: var(--h1-lh); font-weight: 700; color: var(--color-secondary); margin: 0;}
.updates-archive-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-bottom: 56px;}

/* ---------- Pagination ---------- */
.updates-archive-pagination { display: flex; justify-content: center; gap: 8px; flex-wrap: wrap;}
.updates-archive-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--color-border); color: var(--color-text); text-decoration: none; font-weight: 600; font-size: 14px;}
.updates-archive-pagination .page-numbers.current { background: var(--color-primary); border-color: var(--color-primary); color: var(--color-white);}
.updates-archive-pagination .page-numbers:hover:not(.current) { border-color: var(--color-primary); color: var(--color-primary);}




/* ============================================ Student Archive Page ============================================ */
.archive-section { padding: 60px 0 100px; font-family: var(--font-text); color: var(--color-text); background: var(--color-light-bg);}
.archive-container { max-width: var(--container-width); margin: 0 auto; padding: 0 var(--container-padding);}
.archive-header { margin-bottom: 16px;}
.archive-header .heading-bar { display: block; width: 60px; height: 4px; border-radius: 4px; background: var(--color-primary); margin-bottom: 20px;}
.archive-header h2 {color: var(--color-secondary); margin: 0 0 8px;}
.archive-count { font-size: 15px; color: var(--color-text); opacity: 0.65; margin: 0 0 40px;}
.archive-count strong { color: var(--color-secondary); opacity: 1; font-weight: 700;}
.archive-layout { display: grid; grid-template-columns: 240px 1fr; gap: 32px; align-items: start;}

.year-timeline { background: var(--color-white); border: 1px solid var(--color-border); border-radius: var(--rounded-20); padding: 12px; position: sticky; top: 40px;}
.year-timeline-label { font-size: 18px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-secondary); padding: 12px 0px 16px;}
.year-item { position: relative; display: flex; align-items: center; gap: 14px; width: 100%; text-align: left; background: var(--color-white) !important; border: none; cursor: pointer; padding: 14px 16px !important; border-radius: 14px !important; margin-bottom: 10px; transition:all ease-in-out 0.3s;}
.year-item:last-child { margin-bottom: 0;}
.year-item::before { content: ''; flex-shrink: 0; width: 10px; height: 10px; border-radius: 50%; background: var(--color-border); transition: all 0.2s ease;}
.year-item .year-label { font-family: var(--font-heading); font-size: 18px; font-weight: 600; line-height: 1.2; color: var(--color-text); opacity: 0.45; transition: all 0.2s ease;}
.year-item:hover { background: var(--color-gray);}
.year-item:hover .year-label { opacity: 0.75;}
.year-item:not(.active) {box-shadow: none !important;}
.year-item.active { background: var(--color-primary-20);}
.year-item.active::before { background: var(--color-primary); animation: pulseShadow 1.8s infinite ease-in-out;}
.year-item.active .year-label { color: var(--color-primary); opacity: 1;}
@keyframes pulseShadow {
    0% {
        box-shadow: 0 0 0 0 rgba(238, 92, 6, 0.5);
    }

    70% {
        box-shadow: 0 0 0 12px rgba(238, 92, 6, 0);
    }

    100% {
        box-shadow: 0 0 0 0 rgba(238, 92, 6, 0);
    }
}

.archive-grid-wrap { position: relative; min-height: 300px;}
.archive-grid { transition: opacity 0.25s ease;}
.archive-loading { position: absolute; top: 0; left: 0; right: 0; text-align: center; padding: 60px 0; color: var(--color-primary); font-weight: 600; font-size: 15px;}
.archive-empty { background: var(--color-white); border: 1px dashed var(--color-border); border-radius: var(--rounded-20); padding: 48px 24px; text-align: center; color: var(--color-text); opacity: 0.7; grid-column: 1 / -1;}


/* --------------- Google Review Seciton ----------- */
#google_reviews .ti-review-item>div {background-color: var(--color-white) !important; border: 1px solid var(--color-border) !important; transition: all ease-in-out 0.3s;}
#google_reviews .ti-review-item>div:hover {border-color: var(--color-primary) !important; box-shadow: 0px 4px 20px 0px rgba(30.00000000000001, 64.00000000000001, 175, 0.050980392156862744);}


/* --- Contact Form ---- */

.form_grid {display: grid; grid-template-columns: 1fr 1fr; column-gap: 24px;}
.form_group {display: flex; flex-direction: column; margin-bottom: 24px;}
.form_group label {margin-bottom: 8px; display: block; color: var(--color-secondary);}
.form_group input, .form_group textarea, .form_group select {padding: 10px 20px; font-size: inherit; font-family: inherit; line-height: inherit; border: 1px solid var(--color-border); color: var(--color-text); width: 100%; outline: none; box-shadow: none; border-radius: 12px;}
.form_group input:focus, .form_group textarea:focus , .form_group select:focus{border-color: var(--color-secondary);}
.form_group select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%232C3033' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; padding-right: 36px;}
.form_btn p {display: inline-flex; width: fit-content; position: relative;}
.form_btn p .wpcf7-spinner {margin: 0px; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); }
.wpcf7-form.submitting .form_btn .theme_btn {pointer-events: none; opacity: 0.8; font-size: 14px; transition: all ease-in-out 0.3s;}

.wpcf7 form .wpcf7-response-output{ padding: 15px 20px; border-radius: 10px; text-align: center; margin: 30px 0px 0px; border: 1px solid ; background-color: color-mix(in srgb, currentColor 8%, white);}
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.payment-required .wpcf7-response-output{ border-color: #FBBF24; background-color: color-mix(in srgb, currentColor 8%, white); color: #FBBF24;}
.wpcf7 form .wpcf7-response-output{ color: #dc3545;}
.wpcf7 form.sent .wpcf7-response-output{color: green; }
.wpcf7-not-valid-tip {font-size: 12px; line-height: 16px; margin-top: 4px;}

.form_group input[type="file"] { width: 100%; padding: 14px 16px; border: 2px dashed #d9d9d9; border-radius: 10px; background: #fafafa; color: #555; font-size: 14px; cursor: pointer; transition: all .3s ease; box-sizing: border-box;}
.form_group input[type="file"]:hover { border-color: #0d6efd; background: #f4f9ff;}
.form_group input[type="file"]:focus { outline: none; border-color: #0d6efd; box-shadow: 0 0 0 4px rgba(13, 110, 253, 0.15);}
.form_group input[type="file"]::file-selector-button { padding: 10px 18px; margin-right: 15px; border: none; border-radius: 6px; background: #0d6efd; color: var(--color-white); font-weight: 600; cursor: pointer; transition: background .3s ease;}
.form_group input[type="file"]::file-selector-button:hover { background: #0b5ed7;}
.form_group .wpcf7-not-valid { border-color: #dc3545 !important;}
.form_group .wpcf7-not-valid-tip { margin-top: 6px; font-size: 13px; color: #dc3545;}


/* =============== Dynamic Table  ==================== */
.table-wrapper { width: 100%; overflow-x: auto; border: 1px solid var(--color-border); border-radius: var(--rounded-20); background: var(--color-white); -webkit-overflow-scrolling: touch;}
.dynamic-table { width: 100%; border-collapse: collapse; font-family: var(--font-text); color: var(--color-text); min-width: 560px;}
/* ---------- Header ---------- */
.dynamic-table thead th { background: var(--color-secondary); color: var(--color-white); font-family: var(--font-heading); font-size: 15px; font-weight: 600; text-align: left; padding: 18px 24px; white-space: nowrap;}
.dynamic-table thead th:first-child { border-top-left-radius: var(--rounded-20);}
.dynamic-table thead th:last-child { border-top-right-radius: var(--rounded-20);}
.dynamic-table tbody td { padding: 16px 24px; font-size: var(--text-size); border-bottom: 1px solid var(--color-border);}
.dynamic-table tbody tr:last-child td { border-bottom: none;}
.dynamic-table tbody tr:nth-child(even) { background: var(--color-light-bg);}
.dynamic-table tbody tr:hover { background: var(--color-primary-20);}
.dynamic-table tbody tr:hover td { color: var(--color-secondary);}



/* Banner Section */
.products-hero {padding: 120px 0px; text-align: center; position: relative; background-position: center; background-repeat: no-repeat; background-size: cover;}
.products-hero::before {content: ''; width: 100%; height: 100%; position: absolute; top: 0; left: 0; background-color: #0F172AB3;}
.products-hero * {color: var(--color-white); position: relative;}
.products-hero .container {max-width: 735px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 20px;}
.products-hero .container * {margin: 0px;}

/* === Blog Page ==== */
.blog_wrapper {display: grid; grid-template-columns: 66% auto; gap: 30px;}
.blog_list {display: flex; flex-direction: column; gap: 30px;}
.blog_card:not(:last-child) {border-bottom: 1px solid var(--color-black-50);}
.blog_card__image {border-radius: 20px; display: flex; overflow: hidden;}
.blog_card__image img {width: 100%; height: 100%; object-fit: cover;}
.blog_card__content {padding: 30px 0px;}
.blog_card__content .blog_date {font-size: 16px; line-height: 22px; display: inline-flex; align-items: center; gap: 4px;}
.blog_card__content .blog_title {font-size: 32px; line-height: 39px; margin: 12px 0px;}
.blog_card__content .blog_title a {color: inherit; font-weight: inherit; text-decoration: none; transition: all ease-in-out 0.3s;}
.blog_card__content .blog_title a:hover {color: var(--color-primary);}
.blog_card__content .blog_excerpt {margin-bottom: 20px;}
.blog_card__content .read-more {text-decoration: underline;}

.blog_pagination {display: flex; align-items: center; gap: 8px;}
.blog_pagination .page-numbers {color: var(--color-primary); border: 1px solid transparent; padding: 8px; border-radius: 8px; font-size: 14px; line-height: 20px; text-decoration: none; height: 36px; display: inline-flex; align-items: center; justify-content: center; transition: all ease-in-out 0.3s; min-width: 36px;}
.blog_pagination .page-numbers:hover {border-color: var(--color-primary);}
.blog_pagination .page-numbers.current {background-color: var(--color-primary); color: var(--color-white);}

.blog-sidebar { width: 420px; display: flex; flex-direction: column; gap: 30px; flex-shrink: 0;}
.blog-widget { background: var(--color-white); border: 1px solid #E6ECE9; border-radius: 20px; padding: 24px;}
.widget-title {font-size: 24px;font-weight: 600; line-height: 1.3; color: var(--color-secondary); margin-bottom: 24px;}

.blog-widget .search-form { position: relative;}
.blog-widget .search-field { width: 100%; height: 56px; border: 1px solid #E6ECE9; border-radius: 999px; padding: 0 55px 0 20px; font-size: 16px; color: var(--color-secondary); outline: none; background: var(--color-white);}
.blog-widget .search-field::placeholder { color: #8AA29D;}
.blog-widget .search-submit { position: absolute; top: 50%; right: 18px; transform: translateY(-50%); width: 22px; height: 22px; border: 0; background: transparent; cursor: pointer; text-indent: -9999px;}
.blog-widget .search-submit::after { content: "\1F50D"; position: absolute; inset: 0; text-indent: 0; font-size: 18px; color: var(--color-secondary);}

.recent-post-item { display: flex; align-items: flex-start; gap: 12px; text-decoration: none;}
.recent-post-item:not(:last-child) { margin-bottom: 20px;}

.recent-post-thumb { width: 80px; height: 80px; flex-shrink: 0;}
.recent-post-thumb img { width: 100%; height: 100%;object-fit: cover;border-radius: 8px; display: block;}

.recent-post-content {flex: 1;}
.recent-post-content h4 {margin: 0 0 10px; font-size: 18px; line-height: 1.4; color: var(--color-secondary); transition: .3s;}
.recent-post-content span { display: block; font-size: 14px; color: var(--font-text);}
.recent-post-item:hover h4 { color:  var(--color-primary);}



.single_blog_post>*:first-child{ margin-top:0;}
.single_blog_post>*:last-child{ margin-bottom:0;}

/* Typography */
.single_blog_post h1{ font-size:32px; line-height:39px; margin:12px 0 20px;}
.single_blog_post h2{ font-size:28px; line-height:36px; margin:40px 0 18px;}
.single_blog_post h3{ font-size:24px; line-height:32px; margin:34px 0 16px;}
.single_blog_post h4{ font-size:20px; line-height:28px; margin:30px 0 14px;}
.single_blog_post h5{ font-size:18px; line-height:26px; margin:26px 0 12px;}
.single_blog_post h6{ font-size:16px; line-height:24px; margin:22px 0 10px;}
.single_blog_post p{ margin:0 0 18px; line-height: 1.6;}
.single_blog_post strong,
.single_blog_post b{ font-weight:700;}
.single_blog_post em{ font-style:italic;}

/* Links */
.single_blog_post a{ color:inherit; text-decoration:underline; transition:.3s;}
.single_blog_post a:hover{ text-decoration:none;}

/* Lists */
.single_blog_post ul,
.single_blog_post ol{ margin:0 0 22px 25px; padding:0;}
.single_blog_post li{ margin-bottom:10px; line-height:1.8;}
.single_blog_post ul ul,
.single_blog_post ul ol,
.single_blog_post ol ul,
.single_blog_post ol ol{ margin-top:10px; margin-bottom:10px;}

/* Images */
.single_blog_post img{ display:block; max-width:100%; height:auto; border-radius:10px; margin:0px auto;}

/* Figure */
.single_blog_post figure{ margin:30px 0;}
.single_blog_post figcaption{ margin-top:10px; font-size:14px; text-align:center; opacity:.7;}

/* Quote */
.single_blog_post blockquote{ margin:35px 0; padding:24px 28px; border-left:4px solid var(--color-primary); background:#fafafa; font-size:20px; line-height:1.8; font-style:italic;}
.single_blog_post blockquote p:last-child{ margin-bottom:0;}

/* Table */
.single_blog_post table{ width:100%; margin:30px 0; border-collapse:collapse;}
.single_blog_post table th,
.single_blog_post table td{ padding:14px 18px; border:1px solid #e5e5e5; text-align:left;}
.single_blog_post table th{ font-weight:600;}

/* Code */
.single_blog_post pre{ margin:30px 0; padding:20px; overflow:auto; border-radius:8px; background:#f7f7f7;}

/* Horizontal line */
.single_blog_post hr{ margin:40px 0; border:none; border-top:1px solid #e5e5e5;}


/* ===========================
   404 Page
=========================== */

.error-404-section{ background: var(--color-white); padding: 80px 0; min-height: calc(100vh - 220px); display: flex; align-items: center; justify-content: center;}
.error-404-content { max-width: 700px; margin: 0 auto; text-align: center;}
.error-icon img{ width:42px; margin-bottom:16px;}
.error-subtitle{ color: var(--color-secondary); font-size:20px; font-weight:600; margin-bottom:20px;}
.error-title{ color: var(--color-primary); font-size:140px; line-height:1; margin:15px 0 25px;}
.error-heading{ color: var(--color-dark-primary); margin-bottom:20px;}
.error-description{ color: var(--color-text); max-width:600px; margin:0 auto 40px;}

/* ======== Global Custom Scrollba ============== */
::-webkit-scrollbar { width: 10px; height: 10px;}
::-webkit-scrollbar-track { background: var(--color-light-bg);}
::-webkit-scrollbar-thumb { background: var(--color-primary); border-radius: 999px; border: 2px solid var(--color-light-bg);}
::-webkit-scrollbar-thumb:hover { background: #d94f04;}
::-webkit-scrollbar-corner { background: var(--color-light-bg);}
* { scrollbar-width: thin; scrollbar-color: var(--color-primary) var(--color-light-bg);}

/* ============================================ Admission Enquiry Popup  ============================================ */
.enquiry-overlay { position: fixed; inset: 0; background: rgba(15, 23, 42, 0.55); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); display: flex; align-items: center; justify-content: center; padding: 24px; z-index: 9999;opacity: 0; visibility: hidden; transition: opacity 0.3s ease, visibility 0.3s ease;}
.enquiry-overlay.is-open { opacity: 1; visibility: visible;}
.enquiry-modal { width: 100%; max-width: 1024px; max-height: 90vh; background: var(--color-white); border-radius: var(--rounded-20); overflow: hidden auto; display: grid; grid-template-columns: 42% 58%;transform: scale(0.94) translateY(12px); opacity: 0; transition: transform 0.3s ease, opacity 0.3s ease;}
.enquiry-overlay.is-open .enquiry-modal { transform: scale(1) translateY(0); opacity: 1;}
/* ---------- LEFT: Orange info panel ---------- */
.enquiry-left { background: var(--color-primary); background-image: linear-gradient(160deg, var(--color-primary) 0%, #d94f04 100%); padding: 40px 32px; color: var(--color-white); overflow-y: auto; display: flex; flex-direction: column;}
.enquiry-icon-box { width: 52px; height: 52px; border-radius: 16px; background: rgba(255, 255, 255, 0.18); display: flex; align-items: center; justify-content: center; margin-bottom: 24px; flex-shrink: 0;}
.enquiry-icon-box svg { width: 24px; height: 24px;}
.enquiry-left h2 { font-family: var(--font-heading); font-size: 30px; line-height: 38px; font-weight: 700; margin: 0 0 16px;}
.enquiry-left p.enquiry-desc { font-family: var(--font-text); font-size: 15px; line-height: 24px; color: rgba(255, 255, 255, 0.9); margin: 0 0 24px;}
.enquiry-checklist { list-style: none; margin: 0 0 28px; padding: 0; display: flex; flex-direction: column; gap: 12px;}
.enquiry-checklist li { display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 600;}
.enquiry-checklist .check-icon { width: 20px; height: 20px; border-radius: 50%; background: rgba(255, 255, 255, 0.22); display: flex; align-items: center; justify-content: center; flex-shrink: 0;}
.enquiry-checklist .check-icon svg { width: 12px; height: 12px;}
.enquiry-image { margin-top: auto; border-radius: 16px; overflow: hidden; line-height: 0;}
.enquiry-image img { width: 100%; height: 140px; object-fit: cover; display: block;}
/* ---------- RIGHT: Form panel ---------- */
.enquiry-right { padding: 36px 40px; overflow-y: auto; position: relative;}
.enquiry-close { position: absolute; z-index: 10; top: 20px; right: 20px; width: 34px; height: 34px; padding: 0px !important; cursor: pointer; border-radius: 50%; border: none; background: var(--color-gray); color: var(--color-secondary); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all ease-in-out 0.3s;}
.enquiry-close:hover { background: var(--color-border);}
.enquiry-close svg { width: 16px; height: 16px;}
.enquiry-right h3 { font-family: var(--font-heading); font-size: 22px; font-weight: 700; color: var(--color-secondary); margin: 0 0 6px;}
.enquiry-subtitle { font-size: 13px; color: var(--color-primary); font-weight: 600; margin: 0 0 24px;}
.enquiry-form .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px;}
.enquiry-form .form-group { display: flex; flex-direction: column; gap: 6px;}
.enquiry-form .form-group.full { margin-bottom: 16px;}
.enquiry-form label { font-size: 13px; font-weight: 600; color: var(--color-secondary);}
.enquiry-form input,
.enquiry-form select,
.enquiry-form textarea { font-family: var(--font-text); font-size: 14px; color: var(--color-text); border: 1px solid var(--color-border); border-radius: 10px; padding: 11px 14px; outline: none; background: var(--color-white); transition: border-color 0.2s ease; width: 100%; box-sizing: border-box;}
.enquiry-form select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%232C3033' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; padding-right: 36px;}
.enquiry-form textarea { resize: none; min-height: 72px;}
.enquiry-form input::placeholder,
.enquiry-form textarea::placeholder { color: var(--color-text); opacity: 0.45;}
.enquiry-form input:focus,
.enquiry-form select:focus,
.enquiry-form textarea:focus { border-color: var(--color-primary);}
.enquiry-consent { display: flex; align-items: flex-start; gap: 8px; margin: 4px 0 20px;}
.enquiry-consent input { width: 16px; height: 16px; margin-top: 2px; accent-color: var(--color-primary); flex-shrink: 0;}
.enquiry-consent label { font-size: 12.5px; line-height: 18px; color: var(--color-text); opacity: 0.8;}
.enquiry-submit-btn { width: 100%; border: none; border-radius: 12px; padding: 15px 24px; background: #b8460a; background-image: linear-gradient(180deg, #c2500f 0%, #a63e08 100%); color: var(--color-white); font-family: var(--font-heading); font-size: 16px; font-weight: 600; display: flex; align-items: center; justify-content: center; gap: 8px; cursor: pointer; transition: filter 0.2s ease;}
.enquiry-submit-btn:hover { filter: brightness(1.05);}
.enquiry-submit-btn svg { width: 16px; height: 16px;}




/* ---------- Thank You view ---------- */
.enquiry-thankyou { display: none; flex-direction: column; align-items: center; text-align: center; padding: 40px 20px 20px; min-height: 380px; justify-content: center;opacity: 0; transform: translateY(12px); transition: opacity 0.4s ease, transform 0.4s ease;}
.enquiry-thankyou.is-visible { opacity: 1; transform: translateY(0);}
.enquiry-thankyou h3 { margin-top: 20px; margin-bottom: 10px;}
.enquiry-thankyou p { font-size: 14.5px; line-height: 22px; color: var(--color-text); opacity: 0.75; max-width: 320px;}
.thankyou-icon svg { width: 84px; height: 84px;}
.thankyou-circle { stroke: var(--color-primary); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 151; stroke-dashoffset: 151;}
.thankyou-check { stroke: var(--color-primary); stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 36; stroke-dashoffset: 36;}
.enquiry-thankyou.is-visible .thankyou-circle { animation: thankyou-draw-circle 0.5s ease forwards;}
.enquiry-thankyou.is-visible .thankyou-check { animation: thankyou-draw-check 0.35s ease 0.45s forwards;}
@keyframes thankyou-draw-circle { to { stroke-dashoffset: 0; }}
@keyframes thankyou-draw-check { to { stroke-dashoffset: 0; }}


.refun_list ul {padding: 30px; border-radius: var(--rounded-20); background-color: var(--color-white);}
.refun_list ul li {display: flex; align-items: center; justify-content: space-between; gap: 10px;}
.refun_list ul li:not(:last-child) {padding-bottom: 8px; margin-bottom: 8px; border-bottom: 1px dashed var(--color-border);}
.refun_list ul li strong {text-align: end;}


/* ============================ PAGE BANNER  (dark — default) ============================ */
.page-banner{ position:relative; overflow:hidden; background: radial-gradient(900px 420px at 88% 120%, rgba(238,92,6,.38), transparent 62%), radial-gradient(700px 380px at 8% -20%, rgba(251,191,36,.16), transparent 60%), linear-gradient(120deg,#0B1220 0%, var(--color-secondary) 48%, #16233d 100%); padding:130px 0 90px; isolation:isolate;}

.page-banner::before{ content:""; position:absolute; inset:0; background-image: linear-gradient(rgba(255,255,255,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px); background-size:72px 72px; -webkit-mask-image:radial-gradient(115% 90% at 50% 0%, #000 30%, transparent 78%); mask-image:radial-gradient(115% 90% at 50% 0%, #000 30%, transparent 78%); z-index:-1;}

.page-banner__orbit{ position:absolute; right:-160px; top:50%; translate:0 -50%; width:620px; height:620px; z-index:-1; opacity:.55; pointer-events:none;}
.page-banner__orbit span{ position:absolute; inset:0; border:1px solid rgba(255,255,255,.14); border-radius:50%;}.page-banner__orbit span:nth-child(2){inset:14%;border-color:rgba(238,92,6,.45)}.page-banner__orbit span:nth-child(3){inset:28%;border-color:rgba(255,255,255,.10)}
.page-banner__orbit span:nth-child(4){ inset:42%; border-color:rgba(251,191,36,.40); border-style:dashed; animation:spin 42s linear infinite;}
@keyframes spin{to{rotate:360deg}}
.page-banner__base{ position:absolute; left:0; right:0; bottom:-1px; height:48px; background: #f9fafc; border-radius:56px 56px 0 0;}
.bottom_white .page-banner__base{  background: var(--color-white);}
.page-banner__inner{position:relative;z-index:2;max-width:760px}

/* breadcrumb */
.breadcrumb { display:flex; flex-wrap:wrap; align-items:center; gap:10px; list-style:none; margin:0 0 22px; padding:8px 16px; font-size:14px; font-weight:500; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); border-radius:999px; width:fit-content; backdrop-filter:blur(6px); }
.breadcrumb a { color:rgba(255,255,255,.72); text-decoration:none; transition:color .2s; }
.breadcrumb a:hover { color:var(--color-accent); }
.breadcrumb li { display:flex; align-items:center; color:var(--color-white); }
.breadcrumb [aria-current="page"] { color:var(--color-white); font-weight:600; }
.breadcrumb__sep { display:inline-block; width:5px; height:5px; border-radius:50%; background:var(--color-primary); flex:none; }

.page-banner__title{ font-weight:700; font-size:clamp(34px,4.6vw,60px); line-height:1.1; letter-spacing:-.02em; color:var(--color-white); margin:0 0 8px;}
.page-banner__title em{ font-style:normal; color:var(--color-primary);}
.page-banner__rule{ width:64px;height:4px;border-radius:4px; background:linear-gradient(90deg,var(--color-primary),var(--color-accent)); margin:18px 0 20px;}
.page-banner__text{ font-size:17px; line-height:1.7; color:rgba(255,255,255,.72); margin:0; max-width:620px;}
.page-banner__meta{ position:absolute; right:24px; bottom:96px; display:flex; gap:34px; z-index:2;}
.page-banner__meta div{color:var(--color-white)}
.page-banner__meta b{ display:block; font-size:26px; color:var(--color-accent); line-height:1.2;}
.page-banner__meta small{font-size:13px;color:rgba(255,255,255,.6)}


/* ========================== Subject PDF Tabs  ========================== */
.pdf-tabs-section { font-family: var(--font-text); color: var(--color-text);}
/* ---------- Tabs (pill style) ---------- */
.pdf-tabs-nav { display: flex; overflow: auto hidden; gap: 12px; margin-bottom: 28px;}
.pdf-tab-btn { background-color: var(--color-white) !important; white-space: nowrap; border: 1px solid var(--color-border) !important; box-shadow: none !important; color: var(--color-text) !important; font-size: 15px; font-weight: 600; padding: 12px 28px !important; border-radius: 50px; cursor: pointer; transition: all ease-in-out 0.3s;}
.pdf-tab-btn:hover { border-color: var(--color-primary) !important;}
.pdf-tab-btn:not(.active) {box-shadow: none !important;}
.pdf-tab-btn.active { background-color: var(--color-primary) !important; border-color: var(--color-primary); color: var(--color-white) !important;}
/* ---------- Panels ---------- */
.pdf-tab-panel.is-hidden { display: none;}
.pdf-empty { color: var(--color-text); opacity: 0.6; font-size: 15px;}
/* ---------- PDF Grid  ---------- */
.pdf-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 20px;}
.pdf-card { background-color: var(--color-white) !important; border: 1px solid var(--color-border) !important; box-shadow: none !important; border-radius: var(--rounded-20) !important; padding: 24px 16px !important; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 14px; cursor: pointer; font-family: var(--font-text); transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;}
.pdf-card:hover { transform: translateY(-4px); box-shadow: 0 14px 28px rgba(15, 23, 42, 0.1) !important; border-color: var(--color-primary) !important;}
.pdf-card-thumb { position: relative; width: 64px; height: 64px; border-radius: 16px; background-color: var(--color-light-bg); color: var(--color-primary); display: flex; align-items: center; justify-content: center;}
.pdf-card-hover-icon { position: absolute; inset: 0; border-radius: 16px; background-color: rgba(238, 92, 6, 0.88); display: flex; align-items: center; justify-content: center; opacity: 0; transform: scale(0.85); transition: opacity 0.2s ease, transform 0.2s ease;}
.pdf-card:hover .pdf-card-hover-icon { opacity: 1; transform: scale(1);}
.pdf-card-title { font-size: 14px; font-weight: 600; color: var(--color-secondary); line-height: 20px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;}


/* =============== PDF Popup  =============== */
.pdf-popup-overlay { position: fixed; inset: 0; background: rgba(15, 23, 42, 0.55); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); display: flex; align-items: center; justify-content: center; padding: 24px; z-index: 9999;opacity: 0; visibility: hidden; transition: opacity 0.3s ease, visibility 0.3s ease;}
.pdf-popup-overlay.is-open { opacity: 1; visibility: visible;}
.pdf-popup-modal { width: 100%; max-width: 900px; height: 88vh; background: var(--color-white); border-radius: var(--rounded-20); overflow: hidden; display: flex; flex-direction: column;transform: scale(0.94) translateY(12px); opacity: 0; transition: transform 0.3s ease, opacity 0.3s ease;}
.pdf-popup-overlay.is-open .pdf-popup-modal { transform: scale(1) translateY(0); opacity: 1;}
.pdf-popup-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 22px; border-bottom: 1px solid var(--color-border); flex-shrink: 0;}
.pdf-popup-title { font-family: var(--font-heading); font-size: 16px; font-weight: 600; color: var(--color-secondary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
.pdf-popup-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0;}
.pdf-popup-download,
.pdf-popup-close { width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center; border: none; cursor: pointer; transition: background 0.2s ease; padding: 0px !important;}
.pdf-popup-download { background: var(--color-primary); color: var(--color-white); text-decoration: none;}
.pdf-popup-download:hover { filter: brightness(1.08);}
.pdf-popup-close { background: var(--color-gray); color: var(--color-secondary);}
.pdf-popup-close:hover { background: var(--color-border);}
.pdf-popup-body { flex: 1; min-height: 0;}
.pdf-popup-body iframe { width: 100%; height: 100%; border: none; display: block;}
.helpline_grid a:hover {color: var(--color-primary)}

/* ================= Video Gallery  ================== */
.video-tabs-wrapper .pdf-grid {grid-template-columns: repeat(4, 1fr);}
.video-card { background-color: var(--color-white) !important; border: 1px solid var(--color-border) !important; border-radius: 16px !important; overflow: hidden; cursor: pointer; padding: 0 !important; text-align: left; transition: all ease-in-out 0.3s; box-shadow: none !important;}
.video-card:hover { transform: translateY(-4px); box-shadow: 0 14px 28px rgba(15, 23, 42, 0.12) !important;}
.video-card-thumb { position: relative; display: flex; align-items: center; justify-content: center; width: 100%; aspect-ratio: 16 / 9; background-size: cover; background-position: center; background-color: var(--color-light-bg);}
.video-card-thumb::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15,23,42,0) 40%, rgba(15,23,42,0.35) 100%);}
.video-play-icon { position: relative; z-index: 2; width: 46px; height: 46px; border-radius: 50%; background: var(--color-primary); display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 14px rgba(15, 23, 42, 0.3);}
.video-play-icon svg { margin-left: 2px;}

.video-play-ring { position: absolute; inset: 0; border-radius: 50%; border: 2px solid var(--color-primary); animation: video-pulse 2s ease-out infinite;}
@keyframes video-pulse { 0% { transform: scale(1); opacity: 0.7; } 100% { transform: scale(1.9); opacity: 0; }}
.video-card-title { display: block; padding: 14px 16px; font-size: 14px; font-weight: 600; color: var(--color-secondary); line-height: 20px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;}
/* =============== Video Popup ==================== */
.video-popup-overlay { position: fixed; inset: 0; background: rgba(15, 23, 42, 0.6); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); display: flex; align-items: center; justify-content: center; padding: 24px; z-index: 9999;opacity: 0; visibility: hidden; transition: opacity 0.3s ease, visibility 0.3s ease;}
.video-popup-overlay.is-open { opacity: 1; visibility: visible;}
.video-popup-modal { width: 100%; max-width: 860px; background: var(--color-white); border-radius: var(--rounded-20); overflow: hidden;transform: scale(0.94) translateY(12px); opacity: 0; transition: transform 0.3s ease, opacity 0.3s ease;}
.video-popup-overlay.is-open .video-popup-modal { transform: scale(1) translateY(0); opacity: 1;}
.video-popup-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 20px; border-bottom: 1px solid var(--color-border);}
.video-popup-title { font-family: var(--font-heading); font-size: 15px; font-weight: 600; color: var(--color-secondary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
.video-popup-close { width: 34px; height: 34px; border-radius: 50% !important; border: 1px solid var(--color-border) !important; background-color: var(--color-gray) !important; padding: 0px !important; color: var(--color-secondary) !important; box-shadow: none !important; display: flex; align-items: center; justify-content: center; cursor: pointer; flex-shrink: 0; transition: all ease-in-out 0.3s;}
.video-popup-close:hover {border-color: var(--color-primary) !important; color: var(--color-primary) !important;}
.video-popup-body { position: relative; width: 100%; aspect-ratio: 16 / 9; background: #000;}
.video-popup-body iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: none;}

.sticky_top>div {position: sticky; top: 100px;}


/* ============================ RESPONSIVE ============================ */

@media (prefers-reduced-motion:reduce){
  .page-banner__orbit span:nth-child(4){animation:none}
}

@media screen and (min-width : 1650px) {
    .container_padding_left {padding-left: calc((100% - 1620px) / 2);}
	.container_padding_right {padding-right: calc((100% - 1620px) / 2);}
}

@media screen and (max-width : 1366px) {
    :root{
        --h1-size: 45px;
        --h1-lh: 55px;
        --h2-size: 35px;
        --h2-lh: 45px;
        --h3-size: 22px;
        --text-size: 16px;
        --text-lh: 26px;
        --mb-60 : 50px;
        --section-spacing: 100px;
        --section-spacing-sm : 50px;
    }

    .cource_card .elementor-button-content-wrapper svg {width: 20px !important;}
    .updates-header {padding-bottom: 50px;}

    .student-rank { font-size: 14px;}
    .student-exam, .student-stats span  { font-size: 12px; line-height: 22px;}

    .blog_card__content .blog_title {font-size: 28px; line-height: 35px;}

    .single_blog_post h1{ font-size:28px; line-height:35px;}
    .single_blog_post h2{ font-size:25px; line-height:32px;}
    .single_blog_post h3{ font-size:22px; line-height:29px;}
    .single_blog_post h4{ font-size:19px; line-height:26px;}
    .single_blog_post h5{ font-size:17px; line-height:24px;}
    .single_blog_post h6{ font-size:15px; line-height:22px;}

    .pdf-grid { grid-template-columns: repeat(5, 1fr); }
}

@media screen and (max-width :1200px) {
    :root{
        --h1-size: 40px;
        --h1-lh: 50px;
        --h2-size: 30px;
        --h2-lh: 40px;
        --h3-size: 20px;
    }

    .page-banner__meta{display:none} 
    .page-banner__orbit{width:460px;height:460px;right:-190px;opacity:.4}
}

@media (max-width: 1100px) { 
    .students-grid { grid-template-columns: repeat(2, 1fr); }
    .updates-archive-grid { grid-template-columns: repeat(2, 1fr); }

    .pdf-grid { grid-template-columns: repeat(4, 1fr); }
}


@media screen and (max-width :1024px) {
    :root {
        --mb-60 : 40px; 
        --section-spacing: 80px;
        --section-spacing-sm : 30px;
    }
    .image_gallery .gallery, .video-tabs-wrapper .pdf-grid {grid-template-columns: repeat(3, 1fr);}
    .page-banner__base{height:32px;border-radius:34px 34px 0 0} 

}


@media (max-width: 991px) { 
    .archive-layout { grid-template-columns: 1fr; }
    .year-timeline { position: static; display: flex; flex-wrap: nowrap; overflow: auto hidden; gap: 15px; padding: 10px; }
    .year-timeline-label { display: none; }
    .year-item { width: auto; padding: 10px 18px; border: 1px solid var(--color-border); margin-bottom: 0; }
    .year-item::before { width: 8px; height: 8px; }
    .year-item.active { border-color: var(--color-primary); }
    .year-item .year-label { font-size: 15px; }

    .blog_card__content .blog_title {font-size: 24px; line-height: 30px;}

    .blog-sidebar{ width:100%; margin-top:40px;}

    .single_blog_post h1{ font-size:24px; line-height:30px;}
    .single_blog_post h2{ font-size:22px; line-height:28px;}
    .single_blog_post h3{ font-size:20px; line-height:26px;}
    .single_blog_post h4{ font-size:18px; line-height:24px;}
    .single_blog_post blockquote{ padding:18px 20px; font-size:18px;}
    .single_blog_post table th,
    .single_blog_post table td{ padding:10px;}


    .enquiry-modal { grid-template-columns: 1fr; max-height: 92vh; } 
    .enquiry-left { padding: 28px 24px; display: none;} 
    .enquiry-left h2 { font-size: 24px; line-height: 32px; } 
    .enquiry-image { margin-top: 20px; } 
    .enquiry-image img { height: 110px; } 
    .enquiry-right { padding: 28px 24px 32px; }

    .pdf-grid { grid-template-columns: repeat(3, 1fr); }

    .dynamic-table thead th, .dynamic-table tbody td {font-size: 14px; line-height: 22px; padding: 10px 12px;}
    .dynamic-table thead th:first-child { border-top-left-radius: 12px;}
    .dynamic-table thead th:last-child { border-top-right-radius: 12px;}
    .table-wrapper {border-radius: 12px;
     
}


@media screen and (max-width :768px) {
    :root{
        --h1-size: 35px;
        --h1-lh: 45px;
        --h2-size: 28px;
        --h2-lh: 38px;
    }
    .image_gallery .gallery {grid-template-columns: repeat(2, 1fr); gap: 12px;}
    .image_gallery .gallery .gallery-item {border-radius: 10px;}

    .cource_card .elementor-icon-box-content::before {margin: 0px auto 18px;}

    .updates-header { flex-direction: column; align-items: flex-start;}
    .updates-nav { align-self: flex-end; }
    .nav-btn {width: 46px; height: 46px;}
    .nav-btn svg {width: 20px; height: 20px;}


    .blog_wrapper {grid-template-columns: 1fr;}
    .blog_card__content .blog_title {margin: 5px 0px 10px;}
	
	.position_unset_sm{position: unset !important;}

    .page-banner{padding:90px 0 64px} 
    .page-banner__orbit{width:340px;height:340px;right:-150px;top:auto;bottom:-60px;translate:0 0} 
    .breadcrumb{font-size:13px;padding:7px 14px} 
    .page-banner__text{font-size:15px}

    .video-tabs-wrapper .pdf-grid {grid-template-columns: repeat(2, 1fr);}
}

@media (max-width: 640px) {
   .students-grid { grid-template-columns: 1fr; }
   .students-tabs { overflow-x: auto; max-width: 100%; }

   .single-update-title { font-size: 28px; line-height: 36px; }

   .updates-archive-grid { grid-template-columns: 1fr; }


    .table-wrapper { position: relative; }
    
    .pdf-popup-overlay { padding: 10px; }
    .pdf-popup-modal { height: 92vh; }
    .pdf-popup-title { font-size: 14px; }
    .video-popup-overlay { padding: 10px; } .video-popup-title { font-size: 13px; }
}

@media screen and (max-width : 576px) {
    .progress_step_box>div {gap: 30px;}
    .progress_step_box .elementor-image-box-wrapper {padding-inline: 0px;}
    .progress_step_box>div:hover .elementor-image-box-wrapper {background-color: transparent;}
    .progress_step_box>div::before {font-size: 14px; line-height: 22px;}

    .update-card {padding: 24px;}

    .form_grid {grid-template-columns: 1fr;}
    .form_group {margin-bottom: 20px;}


    .recent-post-content h4 {font-size: 16px;}
    .refun_list ul {font-size: 14px; line-height: 22px; padding: 20px;}

    .pdf-grid { grid-template-columns:  repeat(2, 1fr); } .pdf-card-thumb {width: 55px; height: 55px;} .pdf-card {border-radius: 12px !important;}

    .enquiry-form .form-row, .video-tabs-wrapper .pdf-grid { grid-template-columns: 1fr; } 
    .enquiry-overlay { padding: 12px; }

}

@media screen and (max-width :400px) {
    .counter_group .elementor-counter-title{font-size: 14px !important; line-height: 24px !important;}
}
