/*
Theme Name:   Manjari Devi Public School
Theme URI:    https://tagviibe.com
Description:  Child theme for Manjari Devi Public School — built on OceanWP
Author:       TagViibe
Author URI:   https://tagviibe.com
Template:     oceanwp
Version:      2.0.0
Text Domain:  wp-ocean-child
*/



:root{
  --red:#e8402a;--orange:#f07030;--gold:#e8a020;--purple:#c040a0;
  --dark:#1a1a2e;--text:#333;--light:#fdf8ff;--white:#fff;--border:#eee;
  --shadow:0 4px 24px rgba(0,0,0,.10);--radius:10px;
  --serif:'Cormorant Garamond',Georgia,serif;
  --display:'DM Serif Display',serif;
  --sans:'DM Sans',sans-serif;
  --trans:all 0.3s ease;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
body{font-family:var(--sans);color:var(--text);background:#fff;line-height:1.7;font-size:16px;}
a{color:var(--red);text-decoration:none;transition:var(--trans);}
img{max-width:100%;display:block;}
.mdsn-container{max-width:1200px;margin:0 auto;padding:0 24px;}

/* TOP BAR */
/* ═══════════════════════════════════════════════════════════
   GLOBAL HEADER — mdsn-prefixed, boxed container (max 1200px)
   Used by header.php on all inner pages.
   front-page.php renders its own standalone header.
   ═══════════════════════════════════════════════════════════ */

/* BOXED CONTAINER — centered, never full-width */
.mdsn-container {
  max-width: 1200px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
  box-sizing: border-box;
}

/* ── TOP BAR ──────────────────────────────────────── */
.mdsn-topbar {
  background: var(--dark);
  color: rgba(255,255,255,.8);
  padding: 8px 0;
  font-size: 12.5px;
  border-bottom: 2px solid var(--red);
}
.mdsn-topbar .mdsn-container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.mdsn-topbar-left,
.mdsn-topbar-right { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.mdsn-topbar a { color: rgba(255,255,255,.75); font-size: 12.5px; text-decoration: none; }
.mdsn-topbar a:hover { color: var(--gold); }
.mdsn-topbar i { color: var(--gold); margin-right: 4px; }
.mdsn-social { display: flex; gap: 6px; }
.mdsn-social a {
  width: 26px; height: 26px;
  background: rgba(255,255,255,.1);
  border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 11px;
}
.mdsn-social a:hover { background: var(--purple); color: #fff; }

/* ── MARQUEE BAR ──────────────────────────────────── */
.mdsn-marquee {
  background: var(--gold);
  padding: 6px 0;
  font-size: 13px;
  font-weight: 600;
  color: var(--dark);
  overflow: hidden;
}
.mdsn-marquee .mdsn-container { display: flex; align-items: center; gap: 0; }
.mdsn-marquee-label {
  background: var(--red);
  color: #fff;
  padding: 3px 14px;
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  flex-shrink: 0;
  margin-right: 16px;
  border-radius: 2px;
}
.mdsn-marquee-text { flex: 1; }

/* ── SITE HEADER (sticky) ─────────────────────────── */
.mdsn-site-header {
  background: #fff;
  box-shadow: 0 2px 20px rgba(0,0,0,.08);
  position: sticky;
  top: 0;
  z-index: 1000;
  border-bottom: 3px solid var(--red);
}
.mdsn-site-header .mdsn-container { display: block; }
.mdsn-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0px;
  gap: 20px;
}

/* Logo */
.mdsn-logo-wrap {
  display: flex;
  align-items: center;
  gap: 14px;
  text-decoration: none;
  flex: 1;
  min-width: 0;
}
.mdsn-logo-wrap img {
  height: 120px;
  object-fit: contain;
  flex-shrink: 0;
  padding: 2px;
  background: #fff;
}
.mdsn-logo-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.mdsn-school-name {
  font-family: var(--serif);
  font-size: 21px;
  font-weight: 600;
  color: var(--dark);
  line-height: 1.2;
  white-space: nowrap;
}
.mdsn-school-unit {
  font-family: var(--sans);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--purple);
}
.mdsn-school-tagline {
  font-family: var(--serif);
  font-size: 16px;
  font-weight: 600;
  font-style: italic;
  color: var(--red);
}

/* Admissions button */
.mdsn-btn-admit {
  background: var(--red);
  color: #fff !important;
  padding: 12px 24px;
  border-radius: var(--radius);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: .8px;
  text-transform: uppercase;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  transition: var(--trans);
  box-shadow: 0 4px 14px rgba(232,64,42,.3);
  flex-shrink: 0;
  white-space: nowrap;
}
.mdsn-btn-admit:hover { background: var(--purple); transform: translateY(-2px); }

/* Hamburger (hidden desktop, shown mobile) */
.mdsn-hamburger {
  display: none;
  background: none;
  border: 2px solid var(--red);
  color: var(--red);
  width: 40px; height: 40px;
  border-radius: 8px;
  font-size: 18px;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: var(--trans);
}
.mdsn-hamburger:hover,
.mdsn-hamburger.open { background: var(--red); color: #fff; }

/* ── NAV BAR ──────────────────────────────────────── */
.mdsn-nav-wrap {
  background: var(--red);
  width: 100%;
}
.mdsn-nav-wrap .mdsn-container { display: block; }
.mdsn-nav-menu {
  display: flex;
  list-style: none;
  flex-wrap: wrap;
  margin: 0;
  padding: 0;
}
.mdsn-nav-menu li { position: relative; }
.mdsn-nav-menu li a {
  display: block;
  color: #fff;
  padding: 13px 17px;
  font-size: 13.5px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  transition: var(--trans);
}
.mdsn-nav-menu li a:hover,
.mdsn-nav-menu li.current-menu-item > a,
.mdsn-nav-menu li.current-menu-ancestor > a {
  background: rgba(0,0,0,.18);
  color: var(--gold);
}
/* Dropdown */
.mdsn-nav-menu li ul {
  display: none;
  position: absolute;
  top: 100%; left: 0;
  background: var(--dark);
  min-width: 220px;
  box-shadow: var(--shadow);
  z-index: 9999;
  flex-direction: column;
  list-style: none;
  margin: 0; padding: 0;
}
.mdsn-nav-menu li:hover > ul { display: flex; }
.mdsn-nav-menu li ul li { width: 100%; }
.mdsn-nav-menu li ul li a {
  padding: 10px 16px;
  font-size: 13px;
  font-weight: 400;
  border-bottom: 1px solid rgba(255,255,255,.08);
  color: rgba(255,255,255,.85);
}
.mdsn-nav-menu li ul li a:hover {
  background: rgba(255,255,255,.07);
  color: var(--gold);
}

/* MARQUEE */
.mdsn-marquee{background:var(--gold);padding:6px 0;font-size:13px;font-weight:600;color:var(--dark);overflow:hidden;}
.mdsn-marquee .mdsn-container{display:flex;align-items:center;}
.mdsn-marquee-label{background:var(--red);color:#fff;padding:3px 14px;font-size:11px;letter-spacing:2px;text-transform:uppercase;flex-shrink:0;margin-right:16px;border-radius:2px;}

/* HEADER */
.mdsn-site-header{background:#fff;box-shadow:0 2px 20px rgba(0,0,0,.08);position:sticky;top:0;z-index:999;border-bottom:3px solid var(--red);}
.mdsn-header-inner{display:flex;align-items:center;justify-content:space-between;padding:0px;gap:20px;}
.mdsn-logo-wrap{display:flex;align-items:center;gap:16px;text-decoration:none;flex:1;}
.mdsn-logo-wrap img{height:120px;object-fit:contain;flex-shrink:0;padding:2px;background:#fff;}
.logo-text .mdsn-school-name{font-family:var(--serif);font-size:26px;font-weight:700;font-style:italic;color:var(--dark);display:block;line-height:1.1;}
.logo-text .mdsn-school-unit{font-family:var(--sans);font-size:11px;font-weight:500;color:var(--purple);letter-spacing:2px;text-transform:uppercase;display:block;margin-top:4px;}
.logo-text .mdsn-school-tagline{font-family:var(--sans);font-size:11px;color:var(--orange);letter-spacing:1.5px;display:block;margin-top:2px;}
.mdsn-btn-admit{background:var(--red);color:#fff!important;padding:12px 26px;border-radius:var(--radius);font-weight:600;font-size:13px;letter-spacing:1px;text-transform:uppercase;display:inline-flex;align-items:center;gap:8px;transition:var(--trans);box-shadow:0 4px 14px rgba(232,64,42,.3);flex-shrink:0;}
.mdsn-btn-admit:hover{background:var(--purple);transform:translateY(-2px);}
.mdsn-hamburger{display:none;background:none;border:2px solid var(--red);color:var(--red);width:40px;height:40px;border-radius:8px;font-size:18px;cursor:pointer;align-items:center;justify-content:center;flex-shrink:0;transition:var(--trans);}
.mdsn-hamburger:hover{background:var(--red);color:#fff;}

/* NAV */
.mdsn-nav-wrap{background:var(--red);}
.mdsn-nav-wrap ul{display:flex;list-style:none;flex-wrap:wrap;margin:0;padding:0;}
.mdsn-nav-wrap ul li{position:relative;}
.mdsn-nav-wrap ul li a{display:block;color:#fff;padding:13px 17px;font-size:13.5px;font-weight:600;transition:var(--trans);white-space:nowrap;}
.mdsn-nav-wrap ul li a:hover,.mdsn-nav-wrap ul li.active>a{background:rgba(0,0,0,.18);color:var(--gold);}
.mdsn-nav-wrap ul li ul{display:none;position:absolute;top:100%;left:0;background:var(--dark);min-width:220px;box-shadow:var(--shadow);z-index:999;}
.mdsn-nav-wrap ul li:hover>ul{display:block;}
.mdsn-nav-wrap ul li ul li a{padding:10px 16px;font-size:13px;font-weight:400;border-bottom:1px solid rgba(255,255,255,.08);}

/* HERO SLIDER */
.hero{position:relative;overflow:hidden;height:600px;}
.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.2s ease;}
.hero-slide.active{opacity:1;}
.hero-slide img{width:100%;height:100%;object-fit:cover;object-position:center;}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(to right, rgba(0,0,0,.72) 50%, rgba(0,0,0,.3) 100%);display:flex;align-items:center;}
.hero-content{color:#fff;max-width:620px;padding:0 24px;}
.hero-badge{display:inline-block;background:var(--gold);color:var(--dark);font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:3px;text-transform:uppercase;padding:5px 18px;border-radius:2px;margin-bottom:20px;}
.hero-content h1{font-family:'DM Serif Display',serif;font-size:clamp(30px,5vw,54px);font-weight:400;font-style:italic;color:#fff;line-height:1.15;margin-bottom:16px;text-shadow:0 2px 12px rgba(0,0,0,.4);}
.hero-content p{font-size:17px;color:rgba(255,255,255,.85);margin-bottom:34px;font-weight:300;line-height:1.7;}
.hero-btns{display:flex;gap:14px;flex-wrap:wrap;}
.btn-hero-primary{background:var(--gold);color:var(--dark)!important;padding:13px 30px;border-radius:var(--radius);font-weight:700;font-size:14px;text-transform:uppercase;letter-spacing:.5px;transition:var(--trans);}
.btn-hero-primary:hover{background:#fff;color:var(--red)!important;transform:translateY(-3px);}
.btn-hero-outline{border:2px solid rgba(255,255,255,.8);color:#fff!important;padding:11px 28px;border-radius:var(--radius);font-weight:600;font-size:14px;text-transform:uppercase;transition:var(--trans);}
.btn-hero-outline:hover{background:#fff;color:var(--red)!important;}
.hero-arrows{position:absolute;top:50%;transform:translateY(-50%);width:100%;display:flex;justify-content:space-between;padding:0 20px;pointer-events:none;z-index:10;}
.hero-arrow{pointer-events:all;background:rgba(255,255,255,.15);backdrop-filter:blur(4px);color:#fff;width:50px;height:50px;border-radius:50%;border:none;font-size:24px;cursor:pointer;transition:var(--trans);display:flex;align-items:center;justify-content:center;}
.hero-arrow:hover{background:var(--gold);color:var(--dark);}
.hero-dots{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);display:flex;gap:9px;z-index:10;}
.hero-dot{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.45);cursor:pointer;border:none;transition:var(--trans);}
.hero-dot.active{background:var(--gold);transform:scale(1.3);}

/* STATS */
.stats-bar{background:var(--dark);padding:28px 0;border-top:4px solid var(--gold);}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.1);}
.stat-item{background:var(--dark);text-align:center;padding:22px 16px;position:relative;}
.stat-item:not(:last-child)::after{content:'';position:absolute;right:0;top:20%;height:60%;width:1px;background:rgba(255,255,255,.15);}
.stat-number{font-family:'DM Serif Display',serif;font-size:48px;font-weight:400;font-style:italic;color:var(--gold);line-height:1;display:block;}
.stat-label{font-family:var(--sans);color:rgba(255,255,255,.75);font-size:12px;margin-top:7px;text-transform:uppercase;letter-spacing:2px;font-weight:500;}

/* NOTICE + EVENTS + QUICK LINKS */
.notice-section{padding:60px 0;background:#fdf8ff;}
.notice-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:28px;align-items:start;}
.notice-card,.event-card,.quicklinks-card{background:#fff;border-radius:var(--radius);box-shadow:0 2px 16px rgba(0,0,0,.07);overflow:hidden;}
.card-header{background:var(--red);color:#fff;padding:13px 18px;display:flex;align-items:center;justify-content:space-between;}
.card-header h3{font-family:var(--sans);font-size:15px;font-weight:600;color:#fff;display:flex;align-items:center;gap:8px;}
.card-header h3 i{color:var(--gold);}
.card-header a{color:var(--gold);font-size:12px;font-weight:600;}
.notice-list{list-style:none;max-height:300px;overflow-y:auto;}
.notice-list li{padding:11px 16px;border-bottom:1px solid #f0e8f8;font-size:13.5px;display:flex;align-items:flex-start;gap:9px;transition:var(--trans);}
.notice-list li:hover{background:#fdf0fc;}
.notice-list li::before{content:'›';color:var(--purple);font-size:18px;flex-shrink:0;line-height:1.2;}
.notice-list li a{color:#333;}
.new-badge{background:var(--red);color:#fff;font-size:9px;padding:2px 7px;border-radius:2px;font-weight:700;letter-spacing:1px;flex-shrink:0;margin-top:3px;}
.event-list{list-style:none;}
.event-item{display:flex;gap:14px;padding:13px 16px;border-bottom:1px solid #f0e8f8;transition:var(--trans);}
.event-item:hover{background:#fdf0fc;}
.event-date{background:var(--purple);color:#fff;text-align:center;padding:7px 12px;border-radius:6px;min-width:52px;flex-shrink:0;}
.event-date .day{font-family:'DM Serif Display',serif;font-size:22px;font-style:italic;color:var(--gold);line-height:1;}
.event-date .mon{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:rgba(255,255,255,.8);}
.event-info h4{font-size:13.5px;color:var(--dark);margin-bottom:3px;font-weight:600;}
.event-info p{font-size:12px;color:#888;}
.ql-grid{padding:12px;display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.ql-item{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:15px 8px;border:2px solid #f0e0f8;border-radius:var(--radius);text-align:center;text-decoration:none;transition:var(--trans);gap:7px;}
.ql-item:hover{border-color:var(--purple);background:#fdf0fc;transform:translateY(-2px);}
.ql-item i{font-size:26px;color:var(--purple);}
.ql-item span{font-size:12px;font-weight:600;color:#444;line-height:1.3;}

/* ABOUT */
.about-section{padding:80px 0;background:#fff;}
.about-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:60px;align-items:center;}
.about-img-wrap{position:relative;}
.about-img-frame{border-radius:12px;overflow:hidden;box-shadow:0 8px 40px rgba(0,0,0,.14);}
.about-img-frame img{width:100%;height:400px;object-fit:cover;}
.about-badge{position:absolute;bottom:-20px;right:-20px;background:var(--gold);color:var(--dark);width:120px;height:120px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:800;text-align:center;box-shadow:var(--shadow);border:4px solid #fff;}
.about-badge .num{font-family:'DM Serif Display',serif;font-size:16px;font-style:italic;line-height:1.2;padding:0 8px;text-align:center;}
.section-tag{display:inline-block;background:#fdf0fc;color:var(--purple);font-family:var(--sans);font-weight:600;font-size:11px;letter-spacing:3px;text-transform:uppercase;padding:5px 16px;border-left:3px solid var(--gold);margin-bottom:16px;}
.about-text h2{font-family:'DM Serif Display',serif;font-size:clamp(28px,3.5vw,42px);font-weight:400;font-style:italic;color:var(--dark);margin-bottom:16px;line-height:1.2;}
.about-text p{color:#666;margin-bottom:14px;line-height:1.8;font-size:15px;}
.about-features{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:22px 0;}
.about-feature{display:flex;align-items:center;gap:9px;font-size:14px;color:#444;font-weight:500;}
.about-feature i{color:var(--red);font-size:15px;}
.btn-primary{background:var(--red);color:#fff;padding:12px 28px;border-radius:var(--radius);font-weight:600;font-size:13.5px;letter-spacing:.5px;text-transform:uppercase;transition:var(--trans);display:inline-block;}
.btn-primary:hover{background:var(--purple);color:#fff;transform:translateY(-2px);}
.btn-outline{border:2px solid var(--red);color:var(--red);padding:10px 26px;border-radius:var(--radius);font-weight:600;font-size:13.5px;text-transform:uppercase;transition:var(--trans);display:inline-block;margin-left:12px;}
.btn-outline:hover{background:var(--red);color:#fff;}

/* SECTION TITLE */
.section-title{text-align:center;margin-bottom:48px;}
.section-title h2{font-family:'DM Serif Display',serif;font-size:clamp(28px,4vw,44px);font-weight:400;font-style:italic;color:var(--dark);margin-bottom:12px;}
.section-title p{color:#777;max-width:600px;margin:0 auto;font-size:16px;}
.divider{width:60px;height:4px;background:linear-gradient(90deg,var(--red),var(--purple));margin:14px auto;border-radius:2px;}

/* GALLERY */
.gallery-section{padding:80px 0;background:#fff;}
.gallery-tabs{display:flex;justify-content:center;gap:10px;margin-bottom:36px;flex-wrap:wrap;}
.gallery-tab{padding:9px 24px;border-radius:25px;border:2px solid var(--border);font-size:13px;font-weight:600;color:#666;cursor:pointer;transition:var(--trans);background:#fff;}
.gallery-tab.active,.gallery-tab:hover{background:var(--red);color:#fff;border-color:var(--red);}
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;width:100%;box-sizing:border-box;}
.gallery-item{position:relative;overflow:hidden;border-radius:var(--radius);cursor:pointer;width:100%;height:260px;min-height:260px;max-height:260px;box-shadow:0 2px 12px rgba(0,0,0,.10);transition:box-shadow .3s,transform .3s;grid-row:span 1;background:#f0f0f0;}
.gallery-item:hover{box-shadow:0 8px 30px rgba(0,0,0,.18);transform:translateY(-3px);}
.gallery-item img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .5s ease;display:block;}
.gallery-item:hover img{transform:scale(1.07);}
.gallery-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(to top,rgba(26,92,42,.85) 0%,rgba(26,92,42,.3) 60%,transparent 100%);display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:18px;opacity:0;transition:var(--trans);}
.gallery-item:hover .gallery-overlay{opacity:1;}
.gallery-overlay .icon{color:#fff;font-size:26px;margin-bottom:8px;background:rgba(255,255,255,.2);width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px);}
.gallery-overlay span{color:#fff;font-size:12px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;text-align:center;text-shadow:0 1px 4px rgba(0,0,0,.4);}

/* PILLARS */
.pillars-section{padding:80px 0;background:#fdf8ff;}
.pillars-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;}
.pillar-card{background:#fff;border-radius:12px;padding:32px 22px;text-align:center;box-shadow:0 2px 16px rgba(0,0,0,.07);transition:var(--trans);border-bottom:4px solid transparent;}
.pillar-card:hover{transform:translateY(-6px);box-shadow:0 8px 32px rgba(0,0,0,.12);border-bottom-color:var(--gold);}
.pillar-icon{width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 18px;font-size:30px;}
.pillar-card:nth-child(1) .pillar-icon{background:linear-gradient(135deg,var(--red),var(--orange));color:#fff;}
.pillar-card:nth-child(2) .pillar-icon{background:linear-gradient(135deg,var(--purple),#9b30ff);color:#fff;}
.pillar-card:nth-child(3) .pillar-icon{background:linear-gradient(135deg,var(--orange),var(--gold));color:#fff;}
.pillar-card:nth-child(4) .pillar-icon{background:linear-gradient(135deg,var(--red),var(--purple));color:#fff;}
.pillar-card h3{font-family:var(--serif);font-size:18px;font-weight:600;color:var(--dark);margin-bottom:10px;}
.pillar-card p{font-size:13.5px;color:#777;line-height:1.7;}

/* WHY CHOOSE */
.why-section{padding:80px 0;background:var(--dark);position:relative;overflow:hidden;}
.why-section::before{content:'';position:absolute;top:-60px;right:-60px;width:320px;height:320px;background:rgba(232,64,42,.08);border-radius:50%;}
.why-section .section-title h2{color:#fff;}
.why-section .section-title p{color:rgba(255,255,255,.7);}
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.why-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:30px 22px;transition:var(--trans);}
.why-card:hover{background:rgba(255,255,255,.11);transform:translateY(-4px);border-color:var(--gold);}
.why-star{font-size:22px;margin-bottom:14px;}
.why-card h3{color:#fff;font-size:16px;font-weight:600;margin-bottom:10px;}
.why-card p{color:rgba(255,255,255,.68);font-size:14px;line-height:1.7;}

/* LEADERSHIP */
.leadership-section{padding:80px 0;background:#fff;}
.leadership-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;}
.leader-card{background:#fff;border-radius:12px;box-shadow:0 2px 16px rgba(0,0,0,.08);overflow:hidden;text-align:center;transition:var(--trans);}
.leader-card:hover{transform:translateY(-5px);box-shadow:0 8px 32px rgba(0,0,0,.13);}
.leader-img{height:220px;overflow:hidden;}
.leader-img img{width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform .5s;}
.leader-card:hover .leader-img img{transform:scale(1.05);}
.leader-body{padding:18px 16px;}
.leader-body h4{font-family:var(--serif);font-size:17px;font-weight:600;color:var(--dark);margin-bottom:4px;}
.leader-body .role{font-size:12px;font-weight:600;color:var(--purple);text-transform:uppercase;letter-spacing:1px;margin-bottom:10px;display:block;}
.leader-body p{font-size:13px;color:#777;line-height:1.6;}

/* FACULTY */
.faculty-section{padding:80px 0;background:#fdf8ff;}
.faculty-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;}
.faculty-photo{border-radius:12px;overflow:hidden;box-shadow:var(--shadow);}
.faculty-photo img{width:100%;height:340px;object-fit:cover;object-position:top;}
.faculty-label{text-align:center;margin-top:12px;font-family:var(--serif);font-size:15px;color:var(--dark);font-weight:600;}

/* HOUSES */
.houses-section{padding:60px 0;background:linear-gradient(135deg,var(--red) 0%,var(--purple) 100%);}
.houses-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:36px;}
.house-card{background:rgba(255,255,255,.12);border:2px solid rgba(255,255,255,.25);border-radius:12px;padding:28px 20px;text-align:center;transition:var(--trans);backdrop-filter:blur(4px);}
.house-card:hover{background:rgba(255,255,255,.2);transform:translateY(-4px);}
.house-icon{font-size:36px;margin-bottom:12px;}
.house-card h3{color:#fff;font-family:var(--serif);font-size:20px;font-weight:600;letter-spacing:1px;}
.houses-section .section-title h2{color:#fff;}

/* SPORTS */
.sports-section{padding:70px 0;background:#fff;}
.sports-cols{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:36px;}
.sport-group{background:#fdf8ff;border-radius:12px;padding:28px;}
.sport-group h3{font-family:var(--serif);font-size:20px;font-weight:600;color:var(--dark);margin-bottom:16px;display:flex;align-items:center;gap:10px;}
.sport-group h3 i{color:var(--red);}
.sport-tags{display:flex;flex-wrap:wrap;gap:10px;}
.sport-tag{background:#fff;border:2px solid var(--border);border-radius:20px;padding:7px 18px;font-size:13px;font-weight:600;color:#555;transition:var(--trans);}
.sport-tag:hover{border-color:var(--red);color:var(--red);}

/* FACILITIES */
.facilities-section{padding:80px 0;background:#fdf8ff;}
.facilities-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.facility-card{background:#fff;border-radius:12px;padding:28px 22px;box-shadow:0 2px 16px rgba(0,0,0,.07);display:flex;align-items:flex-start;gap:16px;transition:var(--trans);}
.facility-card:hover{transform:translateY(-4px);box-shadow:0 8px 28px rgba(0,0,0,.12);}
.facility-icon{width:54px;height:54px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0;}
.facility-card:nth-child(odd) .facility-icon{background:linear-gradient(135deg,var(--red),var(--orange));color:#fff;}
.facility-card:nth-child(even) .facility-icon{background:linear-gradient(135deg,var(--purple),#9b30ff);color:#fff;}
.facility-card h3{font-size:15px;font-weight:600;color:var(--dark);margin-bottom:7px;}
.facility-card p{font-size:13px;color:#888;line-height:1.6;}

/* CTA */
.cta-section{background:linear-gradient(135deg,var(--red) 0%,var(--purple) 100%);padding:70px 0;text-align:center;position:relative;overflow:hidden;}
.cta-section::after{content:'';position:absolute;bottom:-60px;left:-60px;width:300px;height:300px;background:rgba(255,255,255,.06);border-radius:50%;}
.cta-section h2{font-family:'DM Serif Display',serif;font-size:clamp(26px,4vw,44px);font-weight:400;font-style:italic;color:#fff;margin-bottom:14px;}
.cta-section p{color:rgba(255,255,255,.82);font-size:18px;margin-bottom:34px;}
.cta-btns{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;position:relative;z-index:2;}
.btn-cta-white{background:#fff;color:var(--red);padding:14px 34px;border-radius:var(--radius);font-weight:700;font-size:14px;text-transform:uppercase;transition:var(--trans);display:inline-block;}
.btn-cta-white:hover{background:var(--gold);color:var(--dark);transform:translateY(-3px);}
.btn-cta-outline{border:2px solid rgba(255,255,255,.75);color:#fff;padding:12px 32px;border-radius:var(--radius);font-weight:600;font-size:14px;text-transform:uppercase;transition:var(--trans);display:inline-block;}
.btn-cta-outline:hover{background:#fff;color:var(--red);}

/* LIGHTBOX */
.lightbox{display:none;position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:99999;align-items:center;justify-content:center;}
.lightbox.open{display:flex;}
.lightbox img{max-width:90vw;max-height:88vh;border-radius:8px;box-shadow:0 8px 40px rgba(0,0,0,.5);object-fit:contain;}
.lb-close{position:absolute;top:18px;right:24px;color:#fff;font-size:44px;cursor:pointer;background:none;border:none;line-height:1;}
.lb-close:hover{color:var(--gold);}
.lb-caption{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.8);font-size:14px;background:rgba(0,0,0,.5);padding:6px 20px;border-radius:20px;white-space:nowrap;}

/* FOOTER */
.site-footer{background:#0f0f1a;color:rgba(255,255,255,.7);padding:60px 0 0;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.08);}
.footer-logo{display:flex;align-items:center;gap:12px;margin-bottom:16px;}
.footer-logo img{width:50px;height:50px;object-fit:contain;border-radius:50%;border:2px solid var(--gold);}
.footer-logo-text .name{font-family:var(--serif);color:#fff;font-size:15px;font-weight:600;font-style:italic;}
.footer-logo-text .sub{font-size:11px;color:var(--gold);letter-spacing:1px;text-transform:uppercase;}
.footer-about p{font-size:14px;line-height:1.8;color:rgba(255,255,255,.6);margin-bottom:20px;}
.footer-social{display:flex;gap:9px;}
.footer-social a{width:34px;height:34px;background:rgba(255,255,255,.08);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;transition:var(--trans);}
.footer-social a:hover{background:var(--purple);}
.footer-col h4{color:#fff;font-size:15px;font-weight:600;margin-bottom:18px;padding-bottom:9px;border-bottom:2px solid var(--gold);display:inline-block;}
.footer-links{list-style:none;}
.footer-links li{margin-bottom:9px;}
.footer-links li a{color:rgba(255,255,255,.6);font-size:13.5px;display:flex;align-items:center;gap:7px;transition:var(--trans);}
.footer-links li a::before{content:'›';color:var(--gold);font-size:16px;}
.footer-links li a:hover{color:var(--gold);padding-left:4px;}
.footer-contact-list{list-style:none;}
.footer-contact-list li{display:flex;gap:11px;margin-bottom:13px;font-size:13.5px;color:rgba(255,255,255,.6);align-items:flex-start;}
.footer-contact-list li i{color:var(--gold);font-size:15px;flex-shrink:0;margin-top:3px;}
.footer-bottom{text-align:center;padding:18px 0;background:rgba(0,0,0,.2);font-size:13px;color:rgba(255,255,255,.45);}
.footer-bottom a{color:var(--gold);}

/* SCROLL TOP */
.scroll-top{position:fixed;bottom:28px;right:28px;width:44px;height:44px;background:var(--red);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;cursor:pointer;box-shadow:0 4px 14px rgba(232,64,42,.4);transition:var(--trans);z-index:9999;border:none;opacity:0;transform:translateY(10px);}
.scroll-top.visible{opacity:1;transform:translateY(0);}
.scroll-top:hover{background:var(--purple);}

/* =============================================
   GLOBAL — Prevent horizontal overflow
   ============================================= */
html,body{overflow-x:hidden;max-width:100%;}
*{box-sizing:border-box;}
img{max-width:100%;display:block;}
.mdsn-container{width:100%;max-width:1200px;margin:0 auto;padding:0 20px;box-sizing:border-box;}

/* =============================================
   RESPONSIVE — Tablet (max 1024px)
   ============================================= */

/* ============================================================
   OCEANWP LAYOUT OVERRIDES — force full-width homepage
   ============================================================ */

/* Kill OceanWP page wrappers on front page */
body.home #wrap,
body.front-page #wrap,
body.mdsn-custom-theme #wrap {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

body.home #main,
body.home #primary,
body.home .content-area,
body.home #content,
body.home .site-content,
body.home .entry-content,
body.home .entry-header,
body.home article,
body.home .page {
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  float: none !important;
}

body.home .container,
body.mdsn-custom-theme .mdsn-container {
  max-width: 1200px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 24px !important;
  padding-right: 24px !important;
  width: 100% !important;
}

/* Force full-width sections */
body.home section,
body.home .mdsn-topbar,
body.home .mdsn-marquee,
body.home .mdsn-header,
body.home .mdsn-nav-bar,
body.home .mdsn-hero,
body.home .mdsn-stats,
body.home .mdsn-notice-section,
body.home .mdsn-about,
body.home .mdsn-gallery,
body.home .mdsn-pillars,
body.home .mdsn-why,
body.home .mdsn-leadership,
body.home .mdsn-faculty,
body.home .mdsn-houses,
body.home .mdsn-sports,
body.home .mdsn-facilities,
body.home .mdsn-cta,
body.home .mdsn-footer {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

/* Hide OceanWP breadcrumbs, page titles, sidebars */
body.home .ocean-breadcrumbs,
body.home .page-header,
body.home .oceanwp-breadcrumbs,
body.home #sidebar,
body.home .sidebar,
body.home .widget-area,
body.home .has-sidebar #primary {
  display: none !important;
}

/* Fix header layout on mobile */
.mdsn-header-inner {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
}

/* OceanWP sometimes adds padding to body */
body.home {
  padding: 0 !important;
  margin: 0 !important;
}

/* ===================================================
   FULL-WIDTH LAYOUT — ALL INNER PAGES
   OceanWP's #primary / #content / .content-area must
   never constrain Elementor. We zero everything out
   and let Elementor's own "boxed / content_width"
   setting control the max-width per section.
   =================================================== */

/* 1. Kill OceanWP's column layout on every page */
body.mdsn-full-width #wrap,
body.mdsn-full-width #main,
body.mdsn-full-width #primary,
body.mdsn-full-width #content,
body.mdsn-full-width .site-content,
body.mdsn-full-width .content-area,
body.mdsn-full-width .entry-content,
body.mdsn-full-width article.page,
body.mdsn-full-width .page {
    max-width: 100% !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    float: none !important;
}

/* 2. Remove any OceanWP side padding that squeezes content */
body.mdsn-full-width #content-wrap,
body.mdsn-full-width .oceanwp-row,
body.mdsn-full-width .ocean-container {
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* 3. Elementor boxed sections respect content_width (1140px) */
body.mdsn-full-width .elementor-section.elementor-section-boxed > .elementor-container,
body.mdsn-full-width .elementor-section > .elementor-container {
    max-width: 1140px;
    width: 100%;
    padding-left: 24px;
    padding-right: 24px;
}

/* 4. Full-width Elementor sections stretch wall-to-wall */
body.mdsn-full-width .elementor-section.elementor-section-full_width > .elementor-container {
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* 5. Page template wrapper — zero margins, no constraints */
.mdsn-page-content {
    width: 100%;
    max-width: 100%;
    padding: 0;
    margin: 0;
}

/* 6. Hide sidebar on all inner pages */
body.mdsn-full-width #sidebar,
body.mdsn-full-width .widget-area,
body.mdsn-full-width .sidebar {
    display: none !important;
}

/* ============================================================
   INNER PAGES — sidebar & duplicate nav suppression
   Scoped to body.mdsn-full-width so front-page.php 
   (which uses body.mdsn-front-page) is never affected.
   ============================================================ */

/* Hide OceanWP's nav only on inner pages */
body.mdsn-full-width #site-navigation,
body.mdsn-full-width .ocean-main-menu,
body.mdsn-full-width .ocean-nav-wrap,
body.mdsn-full-width .oceanwp-mobile-menu-icon,
body.mdsn-full-width #ocean-mobile-menu-icon {
    display: none !important;
}

/* Hide sidebar on inner pages only */
body.mdsn-full-width #sidebar,
body.mdsn-full-width #left-sidebar,
body.mdsn-full-width #right-sidebar,
body.mdsn-full-width .widget-area,
body.mdsn-full-width aside.sidebar {
    display: none !important;
}

/* Force full-width content on inner pages */
body.mdsn-full-width #primary,
body.mdsn-full-width #content,
body.mdsn-full-width .content-area {
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
