@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap');

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

:root {
  --primary: #6d5dfc;
  --secondary: #8b5cf6;
  --dark: #0f172a;
  --light: #f8fafc;
  --card: rgba(255,255,255,0.08);
  --border: rgba(255,255,255,0.12);
  --text: #101010;
  --muted: #8b9197;
  --success: #10b981;
  --warning: #f59e0b;
  --danger: #ef4444;
}

/* =========================
   BODY
========================= */

body {
  font-family: 'Poppins', sans-serif;

  margin: 0;

  color: #0f172a;

  overflow-x: hidden;

  background:
    radial-gradient(
      circle at 10% 20%,
      rgba(139, 92, 246, 0.10),
      transparent 30%
    ),

    radial-gradient(
      circle at 90% 15%,
      rgba(59, 130, 246, 0.08),
      transparent 30%
    ),

    radial-gradient(
      circle at 80% 85%,
      rgba(168, 85, 247, 0.08),
      transparent 35%
    ),

    linear-gradient(
      135deg,
      #ffffff 0%,
      #faf9ff 45%,
      #f5f3ff 100%
    );

  background-attachment: fixed;
}


/* SOFT BACKGROUND GLOW */

body::before,
body::after {
  content: "";

  position: fixed;

  width: 500px;
  height: 500px;

  border-radius: 50%;

  filter: blur(120px);

  pointer-events: none;

  z-index: -2;
}


body::before {
  top: -250px;
  left: -200px;

  background: rgba(139, 92, 246, 0.10);
}


body::after {
  right: -200px;
  bottom: -200px;

  background: rgba(59, 130, 246, 0.08);
}

/* body::before{

    top:-250px;

    left:-220px;

    background:

        radial-gradient(

            circle,

            rgba(140,110,255,.55),

            rgba(0,180,255,.18),

            transparent 72%

        );

}

body::after{

    right:-220px;

    bottom:-220px;

    background:

        radial-gradient(

            circle,

            rgba(255,80,170,.25),

            rgba(80,120,255,.35),

            transparent 72%

        );

} */

/* HEADER */
.public-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  padding: 18px 60px;

  display: flex;
  justify-content: space-between;
  align-items: center;

  background: rgba(255,255,255,0.92);
  backdrop-filter: blur(12px);

  border-bottom: 1px solid #e5e7eb;

  box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}

.logo-area {
  display: flex;
  align-items: center;
  gap: 14px;
}

.brand-mark {
  width: 55px;
  height: 55px;
  border-radius: 18px;

  background: linear-gradient(135deg,#7c3aed,#2563eb);

  display: flex;
  align-items: center;
  justify-content: center;

  font-size: 1.2rem;
  font-weight: 700;

  box-shadow: 0 0 25px rgba(124,58,237,0.6);
}

.logo-area h2 {
  font-size: 1.4rem;
}

.logo-area p {
  color: var(--muted);
  font-size: 0.9rem;
}

nav {
  display: flex;
  gap: 28px;
}

nav a {
  position: relative;
  text-decoration: none;
  color: #1f2937; /* Black */
  font-weight: 500;
}

nav a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -4px;
  width: 0;
  height: 2px;
  background: #7606b1; /* Black underline */
  transition: width 0.3s ease;
}

nav a:hover {
  color: #814fd2;
}

nav a:hover::after {
  width: 100%;
}

/* HERO */

.hero-section {
  min-height: 100vh;
  padding: 80px 60px;

  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 60px;
}

.hero-content h1 {
  font-size: 4.8rem;
  line-height: 1.1;
  margin-bottom: 24px;
  font-weight: 800;
}

.hero-content p {
  font-size: 1.2rem;
  color: var(--muted);
  line-height: 1.8;
  margin-bottom: 35px;
}

.hero-buttons {
  display: flex;
  gap: 20px;
}

.primary-button,
.secondary-button,
.ghost-button {
  padding: 15px 30px;
  border-radius: 16px;
  border: none;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;

  transition: all 0.3s ease;
}

.primary-button {
  background: linear-gradient(135deg,#8b5cf6,#2563eb);
  color: white;
  box-shadow: 0 0 30px rgba(99,102,241,0.5);
}

.primary-button:hover {
  transform: translateY(-3px) scale(1.02);
}

.secondary-button {
  background: rgba(255,255,255,0.08);
  color: white;
  border: 1px solid rgba(255,255,255,0.1);
}

.secondary-button:hover {
  background: rgba(255,255,255,0.15);
}

.hero-image img {
  width: 100%;
  border-radius: 30px;

  transition:
    opacity 0.5s ease-in-out,
    transform 0.5s ease-in-out;
    
  background: rgba(255,255,255,0.95);
  box-shadow: 0 8px 25px rgba(0,0,0,0.15);
}

/* new for sliding */
.hero-image {
  position: relative;
}

.hero-image::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.15);
  border-radius: 30px;
}

.slider-controls {

  position: absolute;

  bottom: 20px;
  left: 50%;

  transform: translateX(-50%);

  display: flex;
  gap: 15px;
}

.slider-controls button {

  width: 45px;
  height: 45px;

  border: none;
  border-radius: 50%;

  background: rgba(255,255,255,0.9);

  cursor: pointer;

  font-size: 20px;
  font-weight: bold;

  transition: all 0.3s ease;

  color: #1e293b;
}

.slider-controls button:hover {

  background: white;

  transform: scale(1.1);

}

/* SLIDER DOTS */

.slider-dots {

  position: absolute;

  bottom: -40px;
  left: 50%;

  transform: translateX(-50%);

  display: flex;
  gap: 10px;

}

.dot {

  width: 12px;
  height: 12px;

  border-radius: 50%;

  background: rgba(255,255,255,0.4);

  cursor: pointer;

  transition: all 0.3s ease;

}

.dot.active {

  background: white;

  transform: scale(1.3);

}



/* =========================
   SECTIONS
========================= */

.section {
  width: 100%;
  max-width: 100%;
  padding: 100px 60px;

  margin: 0 auto;

  overflow: hidden;

  background: transparent;
  color: #0f172a;
}

.section h2 {
  width: 100%;

  text-align: center;

  color: #000000;

  font-size: 3rem;

  margin: 0 0 50px;

  font-weight: 700;
}

.section-text {
  max-width: 850px;

  margin: 0 auto;

  text-align: center;

  color: #000000 !important;
  opacity: 1;

  line-height: 1.9;

  font-size: 1.1rem;
}
/* =========================
   CARDS
========================= */

.about-grid,
.course-grid,
.public-stats {
  width: 100%;
  max-width: 1500px;

  margin: 0 auto;

  display: grid;

  grid-template-columns:
    repeat(auto-fit, minmax(250px, 1fr));

  gap: 30px;
}


/* COMMON LIGHT CARD */

.about-card,
.course-card,
.stat-item,
.contact-box {
  background: rgba(255, 255, 255, 0.90);

  border: 1px solid #e5e7eb;

  backdrop-filter: blur(12px);

  border-radius: 24px;

  box-shadow:
    0 8px 30px rgba(15, 23, 42, 0.08);

  transition: all 0.35s ease;
}


/* ABOUT + COURSE + STATS HOVER */

.about-card:hover,
.course-card:hover,
.stat-item:hover {
  transform: translateY(-8px);

  border-color: #c4b5fd;

  box-shadow:
    0 15px 40px rgba(124, 58, 237, 0.15);
}


/* CARD PADDING */

.about-card,
.course-card,
.stat-item {
  padding: 30px;
}


/* HEADINGS */

.about-card h3,
.course-card h3 {
  margin-bottom: 16px;

  font-size: 1.3rem;

  color: #0f172a;
}


/* TEXT */

.about-card p,
.course-card p {
  color: #64748b;

  line-height: 1.7;
}


/* COURSE CARD */

.course-card {
  background: rgba(255, 255, 255, 0.90);

  border: 1px solid #e5e7eb;

  border-radius: 24px;

  box-shadow:
    0 8px 30px rgba(15, 23, 42, 0.08);
}


/* COURSE CARD HOVER */

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

  border-color: #c4b5fd;

  box-shadow:
    0 15px 40px rgba(124, 58, 237, 0.15);
}


/* COURSE TEXT */

.course-card h3 {
  color: #0f172a;
}

.course-card p {
  color: #64748b;
}

/* STATS */


  .stat-item {
  min-height: 140px;

  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;

  text-align: center;
  padding: 25px;
}


.stat-item strong {
  display: block;

  font-size: clamp(1.4rem, 3vw, 2.8rem);

  margin-bottom: 10px;

  word-break: break-word;

  background: linear-gradient(135deg,#8b5cf6,#38bdf8);
  background-clip: text;
  -webkit-background-clip: text;

  color: transparent;
  -webkit-text-fill-color: transparent;
}

/* CONTACT */

.contact-box{

    background: #f5f3ff;

    color: #1e293b;

    border-radius: px;

    max-width: 600px;

    padding: 25px 35px;

    margin: 0 auto;   /* Centers the box */

    box-shadow: 0 10px 35px rgba(0,0,0,0.08);

    border: 1px solid #e5e7eb;

}

.contact-box p{

    color: #334155;

    font-size: 1rem;

    margin: 10px 0;

}

/* LOGIN */

.auth-shell {
  min-height: 100vh;
  width: 100%;

  display: flex;
  justify-content: center;
  align-items: center;

  padding: 20px;
}

.auth-panel {
  width: 100%;
  max-width: 500px;

  margin: 0 auto;

  background: rgba(250, 246, 246, 0.912);
  backdrop-filter: blur(20px);

  border-radius: 24px;
  padding: 40px;
}
.auth-copy {
  margin: 25px 0;
}

.auth-copy h1 {
  color: #0f172a;
  font-size: 2.2rem;
  margin-bottom: 12px;
}

.auth-copy p {
  /* color: var(--muted);
   */
   color: #0f172a;

}

.auth-form {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.auth-form label,
.student-form label {

  display: flex;

  flex-direction: column;

  gap: 8px;

  font-size: 0.95rem;

  color: #1e293b;

  font-weight: 600;

}

input:not([type="checkbox"]),
select,
textarea {

  width: 100%;
  padding: 14px 16px;

  border-radius: 14px;

  border: 1px solid #cbd5e1;

  background: #ffffff;

  color: #0f172a;

  outline: none;

  transition: 0.3s;
}
input[type="checkbox"] {
  width: auto;
  margin: 0;
}

select {
    background: #ffffff;
    color: #1e293b;
    border: 1px solid #cbd5e1;
}

select option {
    background: #ffffff;
    color: #1e293b;
}

select option:checked {
    background: #8b5cf6;
    color: white;
}

select option:hover {
    background: #ede9fe;
    color: #1e293b;
}

input:focus,
select:focus,
textarea:focus {
  border-color: #8b5cf6;
  box-shadow: 0 0 15px rgba(139,92,246,0.4);
}

::placeholder {
   color: #94a3b8;
}

.forgot-password-link a {

  color: #2563eb;

  font-weight: 600;

}

.forgot-password-link a:hover {

  color: #1d4ed8;

}

/* DASHBOARD */

.app-shell {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 30px;
  padding: 40px;
}

.records-area,
.editor-panel {
  padding: 30px;
}

.section-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 25px;
}

.stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(180px,1fr));
  gap: 20px;
  margin-bottom: 30px;
}

.filters {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(200px,1fr));
  gap: 18px;
  margin-bottom: 25px;
}

/* TABLE */

.table-panel {
  overflow-x: auto;
  padding: 20px;
}

table {
  width: 100%;
  border-collapse: collapse;
}

th,
td {
  padding: 16px;
  text-align: left;
}

th {
  color: #cbd5e1;
  font-size: 0.9rem;
}

tr {
  border-bottom: 1px solid rgba(255,255,255,0.06);
}

tr:hover {
  background: rgba(255,255,255,0.03);
}

/* BADGES */

.badge {
  padding: 8px 14px;
  border-radius: 999px;
  font-size: 0.85rem;
  font-weight: 600;
}

.badge-paid {
  background: rgba(16,185,129,0.15);
  color: #34d399;
}

.badge-partial {
  background: rgba(245,158,11,0.15);
  color: #fbbf24;
}

.badge-due {
  background: rgba(239,68,68,0.15);
  color: #f87171;
}

/* =========================
   ACTION BUTTONS
========================= */

.action-button {
  border: none;

  padding: 10px 18px;

  border-radius: 12px;

  cursor: pointer;

  font-weight: 600;

  background: #f1f5f9;

  color: #0f172a;

  border: 1px solid #e2e8f0;

  transition: all 0.25s ease;
}

.action-button:hover {
  background: #e2e8f0;

  transform: translateY(-2px);

  box-shadow: 0 5px 15px rgba(15, 23, 42, 0.08);
}


/* DELETE */

.action-button.danger {
  background: rgba(239, 68, 68, 0.12);

  color: #ef4444;

  border: 1px solid rgba(239, 68, 68, 0.15);
}

.action-button.danger:hover {
  background: rgba(239, 68, 68, 0.20);

  color: #dc2626;
}

/* RESPONSIVE */

@media (max-width: 1100px) {
  .hero-section,
  .app-shell {
    grid-template-columns: 1fr;
  }

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

  .hero-buttons {
    justify-content: center;
  }
}

@media (max-width: 768px) {

  .section {
    padding: 70px 20px;
  }

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

  .course-grid,
  .about-grid,
  .public-stats {
      width: 100%;
      grid-template-columns: 1fr;
      gap: 22px;
  }

  .faculty-grid {
      width: 100%;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 15px;
  }

  .director-card {
    grid-template-columns: 1fr;

    padding: 20px;
  }
}
/* EXTRA STYLES */

.site-logo {
  width: 65px;
  height: 65px;
  object-fit: cover;
  border-radius: 18px;

  box-shadow: 0 0 20px rgba(124,58,237,0.5);
}

.login-logo {
  width: 100px;
  margin: auto;
  display: block;
  margin-bottom: 20px;
}

.section-text {
  max-width: 850px;
  margin: auto;
  text-align: center;
  color: var(--muted);
  line-height: 1.9;
  font-size: 1.1rem;
}

/* FACULTY */

.faculty-grid {
  width: 100%;
  max-width: 1500px;

  margin: 0 auto;

  display: grid;

  grid-template-columns:
    repeat(auto-fit, minmax(250px, 1fr));

  gap: 30px;
}

.faculty-card {

    background: #f5f3ff;

    border: 1px solid #bf61d4;

  border-radius: 24px;

  overflow: hidden;

  text-align: center;

  backdrop-filter: blur(20px);
  box-shadow: 0 10px 30px rgba(0,0,0,0.08);

  transition: all 0.3s ease;
}

.faculty-card:hover {
  transform: translateY(-10px);

  box-shadow:
    0 10px 40px rgba(124,58,237,0.3);
}

.faculty-card img {
  width: 100%;
  height: 320px;
  object-fit: cover;
}

.faculty-card h3 {
  color:#0f172a;
  margin-top: 20px;
  font-size: 1.3rem;
}

.faculty-card p {
color:#18191a;
  padding-bottom: 20px;
}

.faculty-card strong{

    color: #242526;

    font-size: 2rem;

    font-weight: 700;

}

.faculty-card span{

    color: #475569;

    font-size: 1rem;

}

/* TOPBAR */

.topbar {
  display: flex;
  justify-content: space-between;
  align-items: center;

  padding: 25px 40px;

  background: #7e7982,;
  color: #cfdbed;
  border-bottom: 1px solid #e2e8f0;
}
.topbar h2,
.topbar p,
.teacher-pill {
  color: #1e293b;
}

.logo-area h2 {
  color: #0c0c0c;
}

.logo-area p {
  color: #64748b;
}

.topbar-actions {
  display: flex;
  align-items: center;
  gap: 20px;
}

/* LOGIN PAGE */

.form-error {
  color: #f87171;
  text-align: center;
  margin-top: 10px;
}

/* DASHBOARD */

.student-form {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.student-form button {
  width: 100%;
}

.records-area {
  overflow-x: auto;
}

.empty-state {
  text-align: center;
  color: var(--muted);
  padding: 30px;
}

/* DIRECTOR SECTION */

.director-card {
  width: 100%;
  max-width: 1200px;

  margin: 0 auto;

  display: grid;

  grid-template-columns: 350px 1fr;

  gap: 40px;

  align-items: center;

  background: #f5f3ff;

  border: 1px solid #c4b5fd;

  box-shadow: 0 15px 40px rgba(0,0,0,0.08);

  border-radius: 30px;

  padding: 40px;
}

.director-image {

  width: 100%;

  height: 450px;

  object-fit: cover;

  border-radius: 24px;

  /* border: 2px solid rgba(255,255,255,0.1);4 */
      border: 4px solid white;

    box-shadow: 0 10px 30px rgba(0,0,0,0.15);
}

.director-content h3 {
      color:#0f172a;


  font-size: 2rem;

  margin-bottom: 10px;
}

.director-designation {

    color:#7c3aed;

  font-weight: 600;

  margin-bottom: 20px;
}

.director-content p {

   color:#475569;

  line-height: 1.8;
}

.director-highlights {
  color:#0f172a;

  display: flex;

  gap: 30px;

  margin-top: 30px;
}

.director-highlights div {

  text-align: center;
}

.director-highlights strong {

  display: block;

  font-size: 2rem;

  color: #0f172a;

  font-weight: 700;

}

.director-highlights span {

  color:#64748b;

  font-size: 0.9rem;
}

@media (max-width: 900px) {

  .director-card {

    grid-template-columns: 1fr;

    text-align: center;
  }

  .director-highlights {

    justify-content: center;

    flex-wrap: wrap;
  }

}
.about-content {
  text-align: center;
  max-width: 900px;
  margin: 0 auto;
}

.about-heading {
  font-size: 2rem;
  margin-top: 40px;
  margin-bottom: 15px;
  color: #7c3aed;
  font-weight: 700;
}
/* .about-heading {
  color: #7c3aed;
} */
.section-text {
  text-align: center;
  max-width: 900px;
  margin: 0 auto 20px auto;
  line-height: 1.8;
  color: #cbd5e1;
}

.topbar-actions {
  display: flex;
  align-items: center;
  gap: 15px;
}

.teacher-pill {
  padding: 10px 18px;
  border-radius: 999px;

  background: rgba(255,255,255,0.08);

  border: 1px solid rgba(255,255,255,0.1);

  font-weight: 600;
}


.manage-teachers-page {
  min-height: 100vh;

  background:
    linear-gradient(
      135deg,
      #0f172a,
      #1e1b4b,
      #312e81
    );
}


.forgot-password-link {
  text-align: right;
  margin-top: 8px;
}

.forgot-password-link a {
  text-decoration: none;
  color: #2563eb;
}

.forgot-password-link a:hover {
  text-decoration: underline;
}

.subjects-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 15px;
  margin-top: 10px;
}

.subjects-grid label {
  display: flex !important;
  flex-direction: row !important;
  align-items: center;
  gap: 10px;
  font-size: 1rem;
}

.subjects-grid input[type="checkbox"] {
  width: 18px !important;
  height: 18px !important;
  margin: 0;
  padding: 0;
}

/* ============================= */
/* PRINT ADMISSION FORM */
/* ============================= */

.print-container{

    max-width:900px;

    margin:40px auto;

    background:white;

    color:#000;

    padding:40px;

    border-radius:12px;

    box-shadow:0 0 20px rgba(0,0,0,.15);

}

.print-header{

    display:flex;

    align-items:center;

    gap:25px;

    margin-bottom:25px;

}

.print-logo{

    width:90px;

    height:90px;

    object-fit:contain;

}

.print-header h1{

    margin:0;

    color:#1e3a8a;

}

.print-header h3{

    margin-top:8px;

    color:#555;

}

.student-photo{

    text-align:right;

    margin-bottom:20px;

}

.student-photo img{

    width:140px;

    height:170px;

    border:3px solid #1e3a8a;

    padding:4px;

    background:white;

}

.print-table{

    width:100%;

    border-collapse:collapse;

    margin-top:20px;

}

.print-table td{

    border:1px solid #444;

    padding:12px;

}

.signature{

    display:flex;

    justify-content:space-between;

    margin-top:70px;

}

@media print{

button{

display:none;

}

body{

background:white;

}

.print-container{

box-shadow:none;

margin:0;

max-width:100%;

}

}

.signature{

    display: flex;

    justify-content: flex-end;

    margin-top: 60px;

}

.signature div{

    width: 220px;

    text-align: center;

}

.contact-title{

    text-align: center;

    color: #1e293b;

    font-size: 2rem;

    margin-bottom: 25px;

    font-weight: 700;

}


/* ================= TOPPER PAGE ================= */

.topper-hero{

height:70vh;

display:flex;

justify-content:center;

align-items:center;

text-align:center;

position:relative;

background:url("images/topper-banner.jpg") center/cover no-repeat;

border-radius:0 0 40px 40px;

overflow:hidden;

}

.topper-overlay{

position:absolute;

inset:0;

background:rgba(0,0,0,.55);

}

.topper-hero-content{

position:relative;

z-index:2;

color:white;

max-width:800px;

padding:20px;

}

.topper-hero h1{

font-size:4rem;

margin-bottom:20px;

}

.topper-hero p{

font-size:1.2rem;

line-height:1.8;

}

.topper-stats{

display:grid;

grid-template-columns:repeat(auto-fit,minmax(220px,1fr));

gap:25px;

margin-top:50px;

}

.topper-stat{

background:white;

padding:35px;

border-radius:24px;

text-align:center;

box-shadow:0 10px 30px rgba(0,0,0,.08);

transition:.3s;

}

.topper-stat:hover{

transform:translateY(-8px);

}

.topper-stat h3{

font-size:2.5rem;

color:#7c3aed;

margin-bottom:10px;

}

.hall-of-fame{

display:flex;

justify-content:center;

align-items:flex-end;

gap:35px;

flex-wrap:wrap;

margin-top:50px;

}

.fame-card{

background:white;

padding:25px;

border-radius:24px;

text-align:center;

width:280px;

box-shadow:0 15px 40px rgba(0,0,0,.08);

transition:.3s;

}

.fame-card:hover{

transform:translateY(-10px);

}

.fame-card.first{

transform:scale(1.08);

border:3px solid gold;

}

.fame-card.second{

border:3px solid silver;

}

.fame-card.third{

border:3px solid #cd7f32;

}

.fame-card img{

width:170px;

height:170px;

border-radius:50%;

object-fit:cover;

margin-bottom:20px;

}

.fame-card p{

font-size:2rem;

font-weight:700;

color:#7c3aed;

margin:15px 0;

}

.topper-grid{

display:grid;

grid-template-columns:repeat(auto-fit,minmax(260px,1fr));

gap:30px;

margin-top:50px;

}

.topper-card{

background:white;

border-radius:24px;

overflow:hidden;

text-align:center;

box-shadow:0 10px 30px rgba(0,0,0,.08);

transition:.3s;

}

.topper-card:hover{

transform:translateY(-10px);

}

.topper-card img{

width:100%;

height:300px;

object-fit:cover;

}

.topper-card h3{

margin:20px 0 10px;

}

.topper-card strong{

display:block;

padding-bottom:25px;

font-size:1.8rem;

color:#7c3aed;

}

.testimonial-grid{

display:grid;

grid-template-columns:repeat(auto-fit,minmax(300px,1fr));

gap:30px;

margin-top:50px;

}

.testimonial-card{

background:white;

padding:30px;

border-radius:24px;

box-shadow:0 10px 30px rgba(0,0,0,.08);

transition:.3s;

}

.testimonial-card:hover{

transform:translateY(-8px);

}

.testimonial-card p{

font-style:italic;

line-height:1.8;

margin-bottom:20px;

}

.testimonial-card h4{

color:#7c3aed;

}

@media(max-width:768px){

.topper-hero h1{

font-size:2.8rem;

}

.fame-card.first{

transform:none;

}

}

/* topper gallery header for logo */

.topper-hero-content{
    position: relative;
    z-index: 2;
    text-align: center;
}

.topper-logo{
    width:120px;
    height:120px;
    object-fit:contain;

    background:#fff;
    padding:12px;
    border-radius:22px;

    box-shadow:0 12px 35px rgba(124,58,237,.35);

    margin-bottom:20px;
}

.coaching-name{
    color:#c4b5fd;
    font-size:1.6rem;
    font-weight:600;
    margin-bottom:15px;
    letter-spacing:1px;
}

.topper-hero-content h1{
    font-size:4rem;
    color:#fff;
    margin-bottom:20px;
}

.topper-hero-content p{
    max-width:750px;
    margin:auto;
    color:#d4d4d8;
    font-size:1.2rem;
    line-height:1.8;
}


/* =========================
   SUBJECT ICON
========================= */

.subject-icon {
    width: 78px;
    height: 78px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: #f0e9ff;

    color: #7c3aed;

    font-size: 32px;

    margin-bottom: 18px;

    transition: all 0.3s ease;
}

.subject-icon i {
    color: #7c3aed;
}

.course-card:hover .subject-icon {
    background: #7c3aed;
    transform: scale(1.08);

    box-shadow: 0 8px 25px rgba(124, 58, 237, 0.25);
}

.course-card:hover .subject-icon i {
    color: white;
}

/* =========================
   LAYOUT SAFETY
========================= */

html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

img {
  max-width: 100%;
}

/* * =========================================
   MOBILE - GENERAL
   Applies to phones and small screens.
   ========================================= */ 

@media screen and (max-width: 768px) {

    /* ================= GENERAL ================= */

    html,
    body {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
    }

    img {
        max-width: 100%;
    }


    /* ================= HEADER ================= */

    .public-header {
        width: 100%;
        position: relative;
        padding: 12px 20px;
        box-sizing: border-box;
    }

    .logo-area {
        display: flex;
        align-items: center;
        min-width: 0;
    }

    .site-logo {
        width: 70px;
        height: 70px;
        flex-shrink: 0;
    }

    .logo-area h2 {
        font-size: 1.2rem;
        line-height: 1.2;
    }

    .logo-area p {
        font-size: 0.8rem;
    }


    /* ================= HERO ================= */

    .hero-section {
        width: 100%;
        min-height: auto;
        padding: 65px 20px 80px;
        display: flex;
        flex-direction: column;
        gap: 45px;
        box-sizing: border-box;
    }

    .hero-content {
        width: 100%;
        max-width: 100%;
        text-align: center;
    }

    .hero-content h1 {
        width: 100%;
        max-width: 100%;
        font-size: clamp(2.7rem, 11vw, 4rem);
        line-height: 1.05;
        margin-bottom: 20px;
        overflow-wrap: break-word;
    }

    .hero-content p {
        width: 100%;
        max-width: 600px;
        margin: 0 auto 28px;
        font-size: 1rem;
        line-height: 1.7;
    }

    .hero-buttons {
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 14px;
    }

    .primary-button,
    .secondary-button,
    .ghost-button {
        width: min(100%, 300px);
    }

    .hero-image {
        width: 100%;
        max-width: 600px;
    }

    .hero-image img {
        width: 100%;
        height: auto;
        border-radius: 24px;
    }


    /* ================= SECTIONS ================= */

    .section {
        width: 100%;
        padding: 80px 20px 65px;
        overflow: hidden;
        box-sizing: border-box;
    }

    .section h2 {
        font-size: 2.2rem;
        line-height: 1.15;
        margin-bottom: 35px;
    }

    .section-text {
        width: 100%;
        max-width: 100%;
        font-size: 1rem;
        line-height: 1.8;
    }


    /* ================= ABOUT ================= */

    .about-content {
        width: 100%;
        max-width: 100%;
    }

    .about-heading {
        font-size: 1.8rem;
        line-height: 1.2;
        margin-top: 35px;
    }

    .about-grid {
        width: 100%;
        grid-template-columns: 1fr;
        gap: 22px;
    }


    /* ================= COURSES ================= */

    .course-grid {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 15px;
    }

    .course-card {
        width: 100%;
        min-width: 0;
        padding: 20px;
        box-sizing: border-box;
    }

    .course-card h3 {
        font-size: 1.2rem;
    }

    .course-card p {
        font-size: 0.9rem;
    }

    .subject-icon {
        width: 60px;
        height: 60px;
        font-size: 24px;
    }


    /* ================= FACULTY ================= */

    .faculty-grid {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 15px;
    }

    .faculty-card {
        width: 100%;
        min-width: 0;
        padding: 20px 12px;
        text-align: center;
        box-sizing: border-box;
    }

    .faculty-card h3 {
        font-size: 1.05rem;
        line-height: 1.2;
        margin-bottom: 15px;
    }

    .faculty-card p {
        font-size: 0.85rem;
        line-height: 1.5;
    }

    .faculty-card strong {
        font-size: 1.5rem;
    }

    .faculty-card span {
        font-size: 0.8rem;
    }


    /* ================= DIRECTOR ================= */

    .director-card {
        width: 100%;
        grid-template-columns: 1fr;
        padding: 25px 20px;
        gap: 30px;
        box-sizing: border-box;
    }

    .director-image {
        width: 100%;
        max-width: 320px;
        height: 340px;
        margin: 0 auto;
        object-fit: cover;
        border-radius: 24px;
    }

    .director-content {
        width: 100%;
        text-align: left;
    }

    .director-content h3 {
        font-size: 1.8rem;
        line-height: 1.2;
        margin-bottom: 12px;
    }

    .director-content p {
        font-size: 1rem;
        line-height: 1.7;
    }

    .director-highlights {
        justify-content: center;
        flex-wrap: wrap;
        gap: 20px;
    }


    /* ================= TOPPER HERO ================= */

    .topper-hero {
        height: auto;
        min-height: 65vh;
        padding: 70px 20px;
        border-radius: 0 0 30px 30px;
        box-sizing: border-box;
    }

    .topper-hero-content {
        width: 100%;
        max-width: 100%;
    }

    .topper-hero-content h1 {
        font-size: clamp(2.4rem, 10vw, 3.5rem);
        line-height: 1.1;
    }

    .topper-hero-content p {
        font-size: 1rem;
        line-height: 1.7;
    }

    .topper-logo {
        width: 95px;
        height: 95px;
    }

    .coaching-name {
        font-size: 1.2rem;
    }


    /* ================= HALL OF FAME ================= */

    .hall-of-fame {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 12px;
    }

    .fame-card {
        width: 100%;
        min-width: 0;
        max-width: none;
        padding: 18px 8px;
        border-radius: 20px;
        text-align: center;
        box-sizing: border-box;
    }

    .fame-card img {
        width: 65px;
        height: 65px;
        object-fit: cover;
        border-radius: 50%;
        margin: 0 auto 10px;
    }

    .fame-card h3 {
        font-size: 0.9rem;
        line-height: 1.2;
        margin: 8px 0;
    }

    .fame-card strong {
        display: block;
        font-size: 1.15rem;
        margin-bottom: 8px;
    }

    .fame-card p {
        font-size: 0.72rem;
        line-height: 1.3;
        margin: 0;
    }

    .fame-card.first {
        transform: none;
    }


    /* ================= RESULT HIGHLIGHTS ================= */

    .topper-stats {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 10px;
    }

    .topper-stat {
        width: 100%;
        min-width: 0;
        padding: 25px 8px;
        border-radius: 20px;
        box-sizing: border-box;
        text-align: center;
    }

    .topper-stat h3 {
        font-size: 1.5rem;
        margin-bottom: 8px;
        white-space: nowrap;
    }

    .topper-stat p {
        font-size: 0.72rem;
        line-height: 1.3;
        margin: 0;
    }


    /* ================= TOPPER GALLERY ================= */

    .topper-grid {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 14px;
        margin-top: 35px;
    }

    .topper-card {
        width: 100%;
        min-width: 0;
        background: white;
        border-radius: 20px;
        overflow: hidden;
        text-align: center;
        box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08);
    }

    .topper-card img {
        width: 100%;
        height: 150px;
        object-fit: cover;
    }

    .topper-card h3 {
        font-size: 0.95rem;
        line-height: 1.2;
        margin: 14px 6px 8px;
    }

    .topper-card strong {
        display: block;
        font-size: 1.25rem;
        color: #7c3aed;
        padding-bottom: 18px;
    }


    /* ================= TESTIMONIALS ================= */

    .testimonial-grid {
        width: 100%;
        grid-template-columns: 1fr;
        gap: 22px;
    }


    /* ================= PUBLIC STATS ================= */

    .public-stats {
        width: 100%;
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .stat-item {
        width: 100%;
        padding: 25px;
        box-sizing: border-box;
    }


    /* ================= CONTACT ================= */

    .contact-box {
        width: 100%;
        max-width: 100%;
        padding: 25px 20px;
        box-sizing: border-box;
    }
}


/* =========================================
   MOBILE HEADER - PORTRAIT ONLY
   Menu button appears ONLY when:
   - screen width <= 768px
   - screen is portrait
========================================= */

@media screen and (max-width: 768px) and (orientation: portrait) {

    .public-header {
        position: relative;
    }

    .public-header nav {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        width: 100%;
        background: #ffffff;
        padding: 14px 20px;
        flex-direction: column;
        align-items: center;
        gap: 8px;
        box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);
        z-index: 1000;
        box-sizing: border-box;
    }

    .public-header nav.active {
        display: flex;
    }

    .public-header nav a {
        font-size: 1rem;
        width: 100%;
        text-align: center;
        padding: 10px 0;
    }
}


/* =========================================
   DASHBOARD - MOBILE
========================================= */

@media screen and (max-width: 768px) {

    /* ---------- TOPBAR ---------- */

    .topbar {
        width: 100%;
        padding: 18px 16px 20px;
        box-sizing: border-box;

        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 18px;

        overflow: hidden;
    }


    /* ---------- LOGO / BRAND ---------- */

    .topbar .logo-area {
        width: 100%;
        max-width: 100%;

        display: flex;
        align-items: center;
        justify-content: flex-start;

        gap: 10px;
        flex: none;
    }

    .topbar .site-logo {
        width: 58px;
        height: 58px;
        flex-shrink: 0;
        object-fit: contain;
    }

    .topbar .logo-area > div {
        min-width: 0;
        flex: 1;
    }

    .topbar .logo-area h2 {
        margin: 0;
        font-size: 1.15rem;
        line-height: 1.15;
        white-space: normal;
        word-break: normal;
    }

    .topbar .logo-area p {
        margin: 4px 0 0;
        font-size: 0.78rem;
        line-height: 1.3;
    }


    /* ---------- TOPBAR BUTTONS ---------- */

    .topbar-actions {
        width: 100%;

        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;

        flex-shrink: 0;
    }

    .topbar-actions button,
    .topbar-actions a {
        width: 100%;
        min-width: 0;
        box-sizing: border-box;

        padding: 12px 8px;

        font-size: 0.82rem;
        line-height: 1.2;

        border-radius: 14px;

        white-space: normal;
        text-align: center;
    }


    /* ---------- DASHBOARD CONTENT ---------- */

    .app-shell {
        width: 100%;
        max-width: 100%;
        padding: 28px 14px 40px;
        box-sizing: border-box;
    }


    /* ---------- STATISTICS ---------- */

    .stats-grid,
    .dashboard-stats {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
    }

    .stat-card,
    .stat-item {
        width: 100%;
        min-width: 0;

        padding: 28px 10px;

        box-sizing: border-box;
        border-radius: 22px;
        text-align: center;
    }

    .stat-card h3,
    .stat-item h3 {
        font-size: 1.55rem;
        line-height: 1.2;
    }

    .stat-card p,
    .stat-item p {
        font-size: 0.85rem;
        line-height: 1.3;
    }


    /* ---------- SEARCH + FILTERS ---------- */

    .filters,
    .filter-bar {
        width: 100%;
        display: flex;
        flex-direction: column;
        gap: 12px;
    }

    .filters input,
    .filters select,
    .filter-bar input,
    .filter-bar select {
        width: 100%;
        min-height: 52px;
        box-sizing: border-box;
    }


    /* ---------- EXPORT ---------- */

    .export-button {
        width: 100%;
        min-height: 52px;
    }


    /* ---------- STUDENT TABLE ---------- */

    .table-panel,
    .records-area {
        width: 100%;

        overflow-x: auto;
        overflow-y: hidden;

        -webkit-overflow-scrolling: touch;
        box-sizing: border-box;
    }

    .table-panel table,
    .records-area table {
        width: max-content;
        min-width: 900px;
        border-collapse: collapse;
    }

    .table-panel th,
    .table-panel td,
    .records-area th,
    .records-area td {
        white-space: nowrap;
        padding: 12px 14px;
    }


    /* ---------- ACTION BUTTONS ---------- */

    .table-panel td:last-child,
    .records-area td:last-child {
        min-width: 130px;
    }

    .table-panel td:last-child button,
    .records-area td:last-child button {
        margin: 3px;
        padding: 8px 12px;
        font-size: 0.8rem;
        border-radius: 10px;
    }


    /* ---------- ADD STUDENT ---------- */

    .editor-panel {
        width: 100%;
        padding: 20px 14px;
        box-sizing: border-box;
    }

    .student-form {
        width: 100%;
    }

    .student-form input,
    .student-form select,
    .student-form textarea {
        width: 100%;
        box-sizing: border-box;
    }

    .student-form button {
        width: 100%;
        min-height: 52px;
    }


    /* ---------- SUBJECT CHECKBOXES ---------- */

    .subjects-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }


    /* ---------- ADMIN PROFILE ---------- */

    .teacher-pill {
        font-size: 0.8rem;
        padding: 8px 10px;
    }
}


/* =========================================
   SMALL PHONES
   ========================================= */

@media screen and (max-width: 380px) {

    .section {
        padding-left: 14px;
        padding-right: 14px;
    }

    .course-grid,
    .faculty-grid {
        gap: 10px;
    }

    .course-card {
        padding: 16px 12px;
    }

    .faculty-card {
        padding: 16px 8px;
    }

    .fame-card {
        padding: 14px 5px;
    }

    .fame-card img {
        width: 58px;
        height: 58px;
    }

    .fame-card h3 {
        font-size: 0.82rem;
    }

    .fame-card strong {
        font-size: 1rem;
    }

    .topper-stat {
        padding: 20px 5px;
    }

    .topper-stat h3 {
        font-size: 1.25rem;
    }
}


/* =========================================
   VERY SMALL / NARROW PHONES
   ========================================= */

@media screen and (max-width: 330px) {

    .course-grid,
    .faculty-grid {
        grid-template-columns: 1fr;
    }

    .hall-of-fame,
    .topper-stats,
    .topper-grid {
        grid-template-columns: 1fr;
    }
}

/* =========================================
   MENU TOGGLE - PORTRAIT ONLY
   =========================================
   Hidden on ALL screens by default.
   Visible only when:
   - viewport width <= 768px
   - viewport height > viewport width
========================================= */

.menu-toggle {
    display: none !important;
}

@media screen and (max-width: 768px) and (orientation: portrait) {
    .menu-toggle {
        display: block !important;
        margin-left: auto;
        z-index: 1001;
        font-size: 1.4rem;
    }
}
