/*
Theme Name: Ravi Institute of Allied Health Sciences
Theme URI: https://raviiahs.com
Author: One Click Digital
Author URI: https://raviiahs.com
Description: Custom WordPress theme for Ravi Institute of Allied Health Sciences (RIAHS) — a PMF-affiliated allied health institute in Shahdara, Lahore. Built for an 18-program allied health education website with Custom Post Types for Programs and Notices, a full Customizer settings panel, and self-contained AJAX contact/admissions forms.
Version: 1.2.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: riahs
*/

/* =========================================================================
   TABLE OF CONTENTS
   1. Design Tokens, Reset, Layout Helpers, Buttons, Badges, Scroll Reveal
   2. Admissions Band, Header / Navigation / Mobile Menu
   3. Page Hero (inner pages) & Program Cards, Footer, WhatsApp Float
   4. Homepage Components (hero slider, stats, why-choose, testimonials, CTA)
   5. Programs Listing Page
   6. Shared Form Fields (Admissions / Contact / Write for Us)
   7. Admissions Page — steps, requirements, dates table
   8. Notice Board Page — filters, notice cards, pagination
   9. About Page — story, mission/vision, values, timeline, faculty, partners
   10. Contact Page — contact grid, info cards, map, departments
   11. Write for Us Page — topics, guidelines, FAQ, submit form
   12. Single Program Page — hero, body grid, fact card, topics, outcomes
   13. Responsive — Base
   14. Responsive — Per-Page
========================================================================= */


/* ===================== CORE SHARED STYLES ===================== */

:root {
  --red:      #E8192C;
  --blue:     #003DA5;
  --red-lt:   #FFEEF0;
  --blue-lt:  #EEF2FF;
  --dark:     #0A0F1E;
  --gray-bg:  #F8F9FA;
  --text:     #1A1A2E;
  --muted:    #6B7280;
  --border:   #E5E7EB;
  --f-head:   'Merriweather', Georgia, serif;
  --f-body:   'Inter', system-ui, sans-serif;
  --sh-sm:    0 1px 3px rgba(0,0,0,.08);
  --sh-md:    0 4px 12px rgba(0,0,0,.08);
  --sh-lg:    0 12px 32px rgba(0,0,0,.12);
  --r:        8px;
  --r-lg:     14px;
  --ease:     0.22s ease;
}
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html  { scroll-behavior:smooth; font-size:16px; }
body  { font-family:var(--f-body); color:var(--text); background:#fff; line-height:1.65; overflow-x:hidden; }
img   { max-width:100%; height:auto; display:block; }
a     { text-decoration:none; color:inherit; }
ul,ol { list-style:none; }
h1,h2,h3,h4 { font-family:var(--f-head); line-height:1.22; color:var(--dark); }
button { cursor:pointer; border:none; background:none; font-family:var(--f-body); }
.wrap      { max-width:1200px; margin:0 auto; padding:0 24px; }
.sec       { padding:88px 0; }
.sec--gray { background:var(--gray-bg); }
.sec--navy { background:var(--blue); }
.sec--red  { background:var(--red); }
.sec--dark { background:var(--dark); }
.sec-hd        { text-align:center; margin-bottom:52px; }
.sec-hd h2     { font-size:clamp(1.75rem,4vw,2.375rem); font-weight:700; display:inline-block; }
.sec-hd .bar   { display:block; width:56px; height:4px; background:var(--red); border-radius:2px; margin:12px auto 0; }
.sec-hd p      { color:var(--muted); margin-top:10px; font-size:1.0625rem; }
.sec--navy .sec-hd h2   { color:#fff; }
.sec--navy .sec-hd p    { color:rgba(255,255,255,.68); }
.sec--navy .sec-hd .bar { background:#FCA5B0; }
.btn       { display:inline-flex; align-items:center; gap:8px; padding:13px 28px; border-radius:var(--r); font-weight:600; font-size:.9375rem; transition:all var(--ease); border:2px solid transparent; white-space:nowrap; }
.btn-red   { background:var(--red);  color:#fff; border-color:var(--red); }
.btn-red:hover   { background:#c9141e; border-color:#c9141e; transform:translateY(-1px); box-shadow:0 6px 20px rgba(232,25,44,.3); }
.btn-blue  { background:var(--blue); color:#fff; border-color:var(--blue); }
.btn-blue:hover  { background:#002f80; border-color:#002f80; transform:translateY(-1px); box-shadow:0 6px 20px rgba(0,61,165,.3); }
.btn-white { background:#fff; color:var(--red); border-color:#fff; }
.btn-white:hover { background:var(--red); color:#fff; border-color:var(--red); }
.btn-outline{ background:transparent; color:#fff; border-color:rgba(255,255,255,.65); }
.btn-outline:hover{ background:rgba(255,255,255,.12); border-color:#fff; }
.btn-ghost  { background:transparent; color:var(--blue); border-color:var(--blue); }
.btn-ghost:hover{ background:var(--blue); color:#fff; }
.badge             { display:inline-block; padding:3px 11px; border-radius:20px; font-size:.75rem; font-weight:600; text-transform:uppercase; letter-spacing:.05em; }
.badge-merit       { background:#DBEAFE; color:#1D4ED8; }
.badge-admissions  { background:#DCFCE7; color:#15803D; }
.badge-exam        { background:#FEF9C3; color:#A16207; }
.badge-event       { background:#F3E8FF; color:#7C3AED; }
.badge-result      { background:#FCE7F3; color:#9D174D; }
.rv { opacity:0; transform:translateY(22px); transition:opacity .6s ease, transform .6s ease; }
.rv.in { opacity:1; transform:translateY(0); }
.adm-band { background:var(--red-lt); border-top:3px solid var(--red); padding:13px 0; text-align:center; font-size:.9375rem; }
.adm-band strong { color:var(--red); }
.adm-band a { color:var(--blue); font-weight:600; text-decoration:underline; margin-left:8px; }
#hdr {
  position:fixed; inset:0 0 auto 0; z-index:900;
  background:rgba(255,255,255,.97); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--border); transition:box-shadow var(--ease);
}
#hdr.scrolled { box-shadow:var(--sh-md); }
.hdr-inner { display:flex; align-items:center; justify-content:space-between; height:72px; max-width:1200px; margin:0 auto; padding:0 24px; }
.hdr-logo img { height:50px; width:auto; border-radius:50%; }
.hdr-nav { display:flex; align-items:center; gap:2px; }
.hdr-nav li, #mnav li { list-style:none; margin:0; padding:0; }
.hdr-nav a { padding:6px 13px; font-size:.9375rem; font-weight:500; color:var(--text); border-radius:6px; position:relative; transition:color var(--ease); }
.hdr-nav a::after { content:''; position:absolute; bottom:0; left:13px; right:13px; height:2px; background:var(--red); border-radius:1px; transform:scaleX(0); transition:transform var(--ease); }
.hdr-nav a:hover { color:var(--red); }
.hdr-nav a:hover::after { transform:scaleX(1); }
.hdr-nav a.on { color:var(--red); }
.hdr-nav a.on::after { transform:scaleX(1); }
.hbg { display:none; flex-direction:column; gap:5px; padding:8px; }
.hbg span { display:block; width:24px; height:2px; background:var(--text); border-radius:1px; transition:all .25s; }
.hbg.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.hbg.open span:nth-child(2) { opacity:0; }
.hbg.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
#mnav { display:none; position:fixed; top:72px; left:0; right:0; background:#fff; border-top:1px solid var(--border); padding:16px 24px 24px; box-shadow:var(--sh-lg); z-index:899; max-height:calc(100vh - 72px); max-height:calc(100dvh - 72px); overflow-y:auto; -webkit-overflow-scrolling:touch; }
#mnav.open { display:block; animation:fadeIn .2s ease; }
#mnav a { display:block; padding:13px 0; font-size:1rem; font-weight:500; color:var(--text); border-bottom:1px solid var(--border); transition:color var(--ease); }
#mnav li:last-child a { border-bottom:none; }
#mnav a:hover { color:var(--red); }
#mnav .btn { margin-top:16px; width:100%; justify-content:center; }
.pg-hero {
  background:linear-gradient(135deg, var(--dark) 0%, var(--blue) 100%);
  padding:80px 0 60px;
  margin-top:72px;
  position:relative;
  overflow:hidden;
}
.pg-hero::before {
  content:''; position:absolute; width:480px; height:480px; background:rgba(255,255,255,.04);
  border-radius:50%; top:-160px; right:-80px; pointer-events:none;
}
.pg-hero::after {
  content:''; position:absolute; width:280px; height:280px; background:rgba(232,25,44,.12);
  border-radius:50%; bottom:-100px; left:10%; pointer-events:none;
}
.pg-hero-body { position:relative; z-index:1; }
.breadcrumb { display:flex; align-items:center; gap:6px; font-size:.8125rem; color:rgba(255,255,255,.6); margin-bottom:14px; }
.breadcrumb a { color:rgba(255,255,255,.6); transition:color var(--ease); }
.breadcrumb a:hover { color:#fff; }
.breadcrumb span { color:rgba(255,255,255,.35); }
.pg-hero h1 { font-size:clamp(1.75rem,5vw,3rem); font-weight:900; color:#fff; margin-bottom:12px; }
.pg-hero p  { color:rgba(255,255,255,.78); font-size:1.0625rem; max-width:600px; }
.cat-hd { font-family:var(--f-head); font-size:1.125rem; font-weight:700; color:var(--blue); padding-bottom:12px; margin:44px 0 20px; border-bottom:2px solid var(--border); position:relative; }
.cat-hd::after { content:''; position:absolute; bottom:-2px; left:0; width:72px; height:2px; background:var(--red); }
.cat-hd small { font-weight:400; color:var(--muted); font-size:.75em; display:block; margin-top:2px; }
.prog-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(268px,1fr)); gap:18px; }
.pc { background:#fff; border-radius:var(--r-lg); padding:26px 22px; border:1.5px solid var(--border); border-left:4px solid transparent; transition:all .25s; display:flex; flex-direction:column; cursor:pointer; }
.pc:hover { border-left-color:var(--red); box-shadow:var(--sh-lg); transform:translateY(-3px); }
.pc-icon { width:46px; height:46px; background:var(--red-lt); border-radius:var(--r); display:flex; align-items:center; justify-content:center; margin-bottom:14px; flex-shrink:0; transition:background var(--ease); }
.pc:hover .pc-icon { background:var(--red); }
.pc-icon svg { width:22px; height:22px; stroke:var(--red); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; transition:stroke var(--ease); }
.pc:hover .pc-icon svg { stroke:#fff; }
.pc-name { font-family:var(--f-head); font-size:.9375rem; font-weight:700; color:var(--dark); margin-bottom:7px; line-height:1.35; }
.pc-desc { font-size:.84375rem; color:var(--muted); line-height:1.6; flex:1; margin-bottom:14px; }
.pc-meta { font-size:.78125rem; color:var(--muted); display:flex; gap:14px; margin-bottom:10px; }
.pc-meta span { display:flex; align-items:center; gap:4px; }
.pc-lnk { font-size:.84375rem; font-weight:600; color:var(--blue); display:inline-flex; align-items:center; gap:4px; transition:all var(--ease); }
.pc-lnk svg { width:13px; height:13px; stroke:currentColor; fill:none; stroke-width:2.5; transition:transform var(--ease); }
.pc:hover .pc-lnk { color:var(--red); }
.pc:hover .pc-lnk svg { transform:translateX(4px); }
#ft { background:var(--dark); color:rgba(255,255,255,.78); padding:60px 0 0; }
.ft-g { display:grid; grid-template-columns:1.55fr 1fr 1fr 1.45fr; gap:44px; padding-bottom:52px; border-bottom:1px solid rgba(255,255,255,.1); }
.ft-logo { height:52px; width:auto; margin-bottom:15px; border-radius:50%; box-shadow:0 0 0 1px rgba(255,255,255,.14); }
.ft-tag  { font-size:.875rem; color:rgba(255,255,255,.62); line-height:1.75; margin-bottom:20px; }
.pmf-badge { display:inline-flex; align-items:center; gap:10px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.12); border-radius:var(--r); padding:10px 14px; font-size:.8125rem; font-weight:500; color:rgba(255,255,255,.82); }
.pmf-ico { width:32px; height:32px; background:var(--blue); border-radius:6px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.ft-social { display:flex; gap:8px; margin-top:18px; }
.ft-social a { width:36px; height:36px; border-radius:var(--r); background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; transition:background var(--ease); }
.ft-social a:hover { background:var(--red); }
.ft-social svg { width:16px; height:16px; fill:rgba(255,255,255,.8); }
.ft-hd { font-family:var(--f-head); font-size:.9375rem; font-weight:700; color:#fff; margin-bottom:18px; padding-bottom:10px; border-bottom:1px solid rgba(255,255,255,.1); }
.ft-links { display:flex; flex-direction:column; gap:9px; }
.ft-links a { font-size:.875rem; color:rgba(255,255,255,.62); display:inline-flex; align-items:center; gap:6px; transition:color var(--ease); }
.ft-links a::before { content:'›'; font-size:1.1rem; line-height:1; }
.ft-links a:hover { color:var(--red); }
.ft-ci { display:flex; gap:11px; margin-bottom:14px; font-size:.875rem; color:rgba(255,255,255,.72); line-height:1.55; }
.ft-ci-icon { flex-shrink:0; width:18px; margin-top:2px; }
.ft-ci-icon svg { width:15px; height:15px; stroke:var(--red); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.ft-ci a { color:rgba(255,255,255,.72); transition:color var(--ease); }
.ft-ci a:hover { color:#fff; }
.ft-btm { text-align:center; padding:20px 0; font-size:.8125rem; color:rgba(255,255,255,.4); }
.wa-btn { position:fixed; bottom:28px; right:28px; z-index:800; width:58px; height:58px; background:#25D366; border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 22px rgba(37,211,102,.45); transition:all var(--ease); }
.wa-btn:hover { transform:scale(1.1) translateY(-2px); box-shadow:0 8px 32px rgba(37,211,102,.55); }
.wa-btn svg { width:30px; height:30px; fill:#fff; }
.wa-btn::before { content:''; position:absolute; inset:-8px; border-radius:50%; background:rgba(37,211,102,.2); animation:wa-pulse 2.4s ease infinite; }
@keyframes wa-pulse { 0%{transform:scale(.88);opacity:.9} 70%{transform:scale(1.45);opacity:0} 100%{transform:scale(1.45);opacity:0} }
@keyframes fadeUp  { from{opacity:0;transform:translateY(28px)} to{opacity:1;transform:translateY(0)} }
@keyframes fadeIn  { from{opacity:0} to{opacity:1} }

/* ===================== PAGE-SPECIFIC COMPONENTS ===================== */

/* ===== HOMEPAGE — Hero Slider, Stats, Why Choose, Notices Preview, Testimonials, CTA ===== */

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

ul, ol { list-style: none; }

.hero {
      position: relative;
      height: 92vh;
      height: 92dvh;
      min-height: 580px;
      margin-top: 72px;
      overflow: hidden;
    }

.slide {
      position: absolute;
      inset: 0;
      background-size: cover;
      background-position: center center;
      background-repeat: no-repeat;
      opacity: 0;
      transition: opacity .9s ease;
    }

.slide.on { opacity: 1; }

.slide::before {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(130deg, rgba(10,15,30,.62) 0%, rgba(0,61,165,.32) 100%);
    }

.slide-1 { background-image: url('assets/images/hero-hospital.webp'); background-color: #0A1A3A; }

.slide-2 { background-image: url('assets/images/hero-students.webp'); background-color: #1A0A0F; }

.hero-body {
      position: relative;
      z-index: 2;
      height: 100%;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: flex-start;
      padding: 0 24px;
      max-width: 860px;
      margin: 0 auto;
    }

.hero-pill {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      background: rgba(255,255,255,.13);
      border: 1px solid rgba(255,255,255,.3);
      backdrop-filter: blur(8px);
      color: #fff;
      padding: 7px 16px;
      border-radius: 24px;
      font-size: .8125rem;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: .08em;
      margin-bottom: 22px;
      animation: fadeUp .7s ease both;
    }

.hero-pill span { width: 8px; height: 8px; border-radius: 50%; background: #4ADE80; display: inline-block; }

.hero-h1 {
      font-size: clamp(2.25rem, 6vw, 4rem);
      font-weight: 900;
      color: #fff;
      line-height: 1.08;
      margin-bottom: 18px;
      text-shadow: 0 2px 20px rgba(0,0,0,.25);
      animation: fadeUp .7s .12s ease both;
    }

.hero-h1 em { color: #FCA5B0; font-style: normal; }

.hero-sub {
      font-size: clamp(.9375rem, 2.5vw, 1.1875rem);
      color: rgba(255,255,255,.88);
      margin-bottom: 36px;
      max-width: 580px;
      animation: fadeUp .7s .24s ease both;
    }

.hero-sub strong { color: #fff; }

.hero-ctas {
      display: flex;
      gap: 14px;
      flex-wrap: wrap;
      animation: fadeUp .7s .36s ease both;
    }

.hero-dots {
      position: absolute;
      bottom: 32px;
      left: 50%;
      transform: translateX(-50%);
      display: flex;
      gap: 10px;
      z-index: 3;
    }

.hero-dot {
      width: 10px;
      height: 10px;
      border-radius: 5px;
      background: rgba(255,255,255,.38);
      border: none;
      transition: all .3s;
    }

.hero-dot.on { background: #fff; width: 28px; }

#stats {
      background: var(--blue);
      padding: 44px 0;
    }

.stats-g {
      display: grid;
      grid-template-columns: repeat(4,1fr);
      gap: 16px;
    }

.stat {
      text-align: center;
      padding: 8px;
      position: relative;
    }

.stat:not(:last-child)::after {
      content: '';
      position: absolute;
      right: 0;
      top: 25%;
      height: 50%;
      width: 1px;
      background: rgba(255,255,255,.18);
    }

.stat-n {
      font-family: var(--f-head);
      font-size: clamp(2rem, 4vw, 2.75rem);
      font-weight: 700;
      color: #fff;
      display: block;
      line-height: 1;
      margin-bottom: 8px;
    }

.stat-suffix { color: #FCA5B0; }

.stat-l {
      font-size: .8125rem;
      color: rgba(255,255,255,.72);
      text-transform: uppercase;
      letter-spacing: .07em;
    }

.why-grid {
      display: grid;
      grid-template-columns: repeat(4,1fr);
      gap: 22px;
    }

.wc {
      text-align: center;
      padding: 36px 22px;
      border-radius: var(--r-lg);
      border: 1.5px solid var(--border);
      transition: all var(--ease);
    }

.wc:hover { border-color: var(--red); box-shadow: var(--sh-lg); transform: translateY(-4px); }

.wc-icon {
      width: 62px;
      height: 62px;
      background: var(--blue-lt);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      margin: 0 auto 18px;
      transition: background var(--ease);
    }

.wc:hover .wc-icon { background: var(--blue); }

.wc-icon svg {
      width: 26px;
      height: 26px;
      stroke: var(--blue);
      fill: none;
      stroke-width: 2;
      stroke-linecap: round;
      stroke-linejoin: round;
      transition: stroke var(--ease);
    }

.wc:hover .wc-icon svg { stroke: #fff; }

.wc h3 { font-family: var(--f-head); font-size: 1rem; font-weight: 700; margin-bottom: 9px; }

.wc p  { font-size: .875rem; color: var(--muted); line-height: 1.65; }

.notices-grid {
      display: grid;
      grid-template-columns: repeat(3,1fr);
      gap: 18px;
      margin-bottom: 32px;
    }

.nc {
      background: #fff;
      border-radius: var(--r-lg);
      padding: 22px;
      border: 1.5px solid var(--border);
      display: flex;
      gap: 14px;
      align-items: flex-start;
      transition: box-shadow var(--ease);
    }

.nc:hover { box-shadow: var(--sh-md); }

.nc-ico {
      flex-shrink: 0;
      width: 42px;
      height: 42px;
      background: var(--blue-lt);
      border-radius: var(--r);
      display: flex;
      align-items: center;
      justify-content: center;
    }

.nc-ico svg { width: 18px; height: 18px; stroke: var(--blue); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

.nc-body { flex: 1; }

.nc-title { font-weight: 600; font-size: .9375rem; color: var(--dark); margin: 7px 0 6px; line-height: 1.4; }

.nc-date  { font-size: .8125rem; color: var(--muted); display: flex; align-items: center; gap: 4px; }

.nc-date svg { width: 12px; height: 12px; stroke: currentColor; fill: none; stroke-width: 2; }

.notices-more { text-align: center; }

.notices-more a {
      font-weight: 600;
      color: var(--red);
      font-size: .9375rem;
      display: inline-flex;
      align-items: center;
      gap: 6px;
      transition: gap var(--ease);
    }

.notices-more a:hover { gap: 11px; }

.notices-more a svg { width: 15px; height: 15px; stroke: currentColor; fill: none; stroke-width: 2.5; }

.t-wrap {
      max-width: 680px;
      margin: 0 auto;
      text-align: center;
    }

.t-slide { display: none; animation: fadeIn .5s ease; }

.t-slide.on { display: block; }

.t-q {
      font-family: var(--f-head);
      font-size: clamp(1rem, 2.5vw, 1.1875rem);
      color: rgba(255,255,255,.92);
      font-style: italic;
      line-height: 1.75;
      margin-bottom: 28px;
      position: relative;
      padding: 0 8px;
    }

.t-q::before {
      content: '\201C';
      font-size: 5rem;
      color: rgba(255,255,255,.16);
      position: absolute;
      top: -12px;
      left: -12px;
      line-height: 1;
      font-style: normal;
    }

.t-avatar {
      width: 50px;
      height: 50px;
      border-radius: 50%;
      background: rgba(255,255,255,.18);
      display: flex;
      align-items: center;
      justify-content: center;
      margin: 0 auto 10px;
      font-size: 1.25rem;
      font-weight: 700;
      color: #fff;
    }

.t-name { font-weight: 700; color: #fff; font-size: 1rem; margin-bottom: 3px; }

.t-meta { font-size: .8125rem; color: rgba(255,255,255,.6); }

.t-dots {
      display: flex;
      justify-content: center;
      gap: 8px;
      margin-top: 30px;
    }

.t-dot {
      width: 8px;
      height: 8px;
      border-radius: 4px;
      background: rgba(255,255,255,.28);
      border: none;
      transition: all .25s;
    }

.t-dot.on { background: #fff; width: 24px; }

.cta-sec {
      background: var(--red);
      padding: 80px 0;
      text-align: center;
      position: relative;
      overflow: hidden;
    }

.cta-sec::before {
      content: '';
      position: absolute;
      width: 56%;
      height: 220%;
      background: rgba(255,255,255,.045);
      border-radius: 50%;
      top: -60%;
      left: -12%;
      pointer-events: none;
    }

.cta-sec h2 {
      font-size: clamp(1.5rem, 4vw, 2.25rem);
      font-weight: 700;
      color: #fff;
      margin-bottom: 10px;
    }

.cta-sec p { color: rgba(255,255,255,.82); font-size: 1.0625rem; margin-bottom: 32px; }


/* ===== PROGRAMS LISTING PAGE — Filters, Tags ===== */

.filter-bar  { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:12px; }

.f-btn { padding:8px 18px; border-radius:24px; font-size:.875rem; font-weight:600; border:2px solid var(--border); color:var(--muted); transition:all var(--ease); }

.f-btn.on,.f-btn:hover { background:var(--red); color:#fff; border-color:var(--red); }

.dur-tag { display:inline-flex; align-items:center; gap:5px; font-size:.75rem; color:var(--muted); margin-top:8px; }

.dur-tag svg { width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round; }

.elig-tag { display:inline-flex; align-items:center; gap:5px; font-size:.75rem; color:var(--muted); margin-top:4px; }

.elig-tag svg { width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round; }

.pc-tags { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:14px; }

.tag-sm { padding:3px 9px; border-radius:12px; font-size:.71875rem; font-weight:600; background:var(--blue-lt); color:var(--blue); }

.tag-sm.red { background:var(--red-lt); color:var(--red); }

.compare-bar {
      position:sticky; bottom:24px; z-index:80;
      background:var(--dark); color:#fff;
      border-radius:var(--r-lg); padding:14px 22px;
      display:none; align-items:center; justify-content:space-between;
      gap:14px; box-shadow:var(--sh-lg); max-width:640px; margin:32px auto 0;
    }

.compare-bar.show { display:flex; animation:fadeUp .3s ease; }

.compare-bar p { font-size:.9375rem; }

.compare-bar strong { color:#FCA5B0; }


/* ===== SHARED COMPONENT: Form Fields (Admissions, Contact, Write for Us) ===== */
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.field { margin-bottom:18px; }
.field label { display:block; font-size:.875rem; font-weight:600; color:var(--dark); margin-bottom:6px; }
.field input, .field select, .field textarea {
  width:100%; padding:11px 14px; border:1.5px solid var(--border); border-radius:var(--r);
  font-family:var(--f-body); font-size:1rem; color:var(--text); background:#fff; outline:none;
  transition:border-color var(--ease), box-shadow var(--ease);
}
.field input:focus, .field select:focus, .field textarea:focus {
  border-color:var(--blue); box-shadow:0 0 0 3px rgba(0,61,165,.1);
}
.field textarea { resize:vertical; min-height:100px; }
.success-msg { display:none; background:#DCFCE7; border:1.5px solid #86EFAC; border-radius:var(--r); padding:16px 20px; color:#15803D; font-weight:600; margin-bottom:16px; }


/* ===== ADMISSIONS PAGE — Steps, Requirements, Dates Table ===== */

.step-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; counter-reset:steps; }

.step { background:#fff; border:1.5px solid var(--border); border-radius:var(--r-lg); padding:28px 22px; position:relative; transition:all var(--ease); }

.step:hover { box-shadow:var(--sh-lg); border-color:var(--red); transform:translateY(-3px); }

.step::before { counter-increment:steps; content:counter(steps); position:absolute; top:-18px; left:22px; width:36px; height:36px; background:var(--red); color:#fff; font-family:var(--f-head); font-weight:700; font-size:.9375rem; border-radius:50%; display:flex; align-items:center; justify-content:center; }

.step h3 { font-family:var(--f-head); font-size:1rem; font-weight:700; margin:10px 0 8px; }

.step p  { font-size:.875rem; color:var(--muted); line-height:1.65; }

.req-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }

.req-card { background:#fff; border:1.5px solid var(--border); border-radius:var(--r-lg); padding:24px; }

.req-card h3 { font-family:var(--f-head); font-size:1rem; font-weight:700; margin-bottom:14px; color:var(--dark); display:flex; align-items:center; gap:10px; }

.req-card h3 span { width:32px; height:32px; border-radius:8px; background:var(--blue-lt); display:flex; align-items:center; justify-content:center; flex-shrink:0; }

.req-card h3 span svg { width:16px;height:16px;stroke:var(--blue);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round; }

.req-card ul { display:flex; flex-direction:column; gap:8px; }

.req-card li { font-size:.875rem; color:var(--text); display:flex; gap:8px; align-items:flex-start; }

.req-card li::before { content:'→'; color:var(--red); font-weight:700; flex-shrink:0; }

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

.dates-table th { background:var(--blue); color:#fff; padding:12px 16px; text-align:left; font-size:.875rem; font-weight:600; }

.dates-table td { padding:12px 16px; font-size:.875rem; border-bottom:1px solid var(--border); }

.dates-table tr:last-child td { border-bottom:none; }

.dates-table tr:nth-child(even) td { background:var(--gray-bg); }

.apply-form { background:#fff; border:1.5px solid var(--border); border-radius:var(--r-lg); padding:36px; }


/* ===== NOTICE BOARD PAGE — Filter Tabs, Notice Cards, Pagination ===== */

.filter-tabs { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:36px; }

.tab-btn { padding:9px 20px; border-radius:24px; font-size:.875rem; font-weight:600; border:2px solid var(--border); color:var(--muted); background:#fff; transition:all var(--ease); cursor:pointer; }

.tab-btn.on,.tab-btn:hover { border-color:var(--red); background:var(--red); color:#fff; }

.notice-list { display:flex; flex-direction:column; gap:16px; }

.nc-full {
      background:#fff; border-radius:var(--r-lg); padding:24px 26px;
      border:1.5px solid var(--border); border-left:5px solid transparent;
      display:flex; gap:18px; align-items:flex-start;
      transition:all var(--ease); cursor:default;
    }

.nc-full:hover { box-shadow:var(--sh-lg); border-left-color:var(--red); }

.nc-full.new   { border-left-color:var(--red); }

.nc-ico-lg { flex-shrink:0; width:50px; height:50px; border-radius:var(--r); display:flex; align-items:center; justify-content:center; }

.nc-ico-lg svg { width:22px;height:22px;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round; }

.ico-merit   { background:#DBEAFE; }

.ico-merit   svg { stroke:#1D4ED8; }

.ico-adm     { background:#DCFCE7; }

.ico-adm     svg { stroke:#15803D; }

.ico-exam    { background:#FEF9C3; }

.ico-exam    svg { stroke:#A16207; }

.ico-event   { background:#F3E8FF; }

.ico-event   svg { stroke:#7C3AED; }

.ico-result  { background:#FCE7F3; }

.ico-result  svg { stroke:#9D174D; }

.nc-content  { flex:1; }

.nc-top { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:8px; }

.nc-title-lg { font-family:var(--f-head); font-size:1.0625rem; font-weight:700; color:var(--dark); margin-bottom:6px; line-height:1.4; }

.nc-body-txt { font-size:.875rem; color:var(--muted); line-height:1.65; margin-bottom:10px; }

.nc-foot { display:flex; gap:16px; align-items:center; flex-wrap:wrap; }

.nc-date-lg { font-size:.8125rem; color:var(--muted); display:flex; align-items:center; gap:4px; }

.nc-date-lg svg { width:12px;height:12px;stroke:var(--muted);fill:none;stroke-width:2; }

.nc-dl a { font-size:.8125rem; font-weight:600; color:var(--blue); display:inline-flex; align-items:center; gap:4px; transition:color var(--ease); }

.nc-dl a:hover { color:var(--red); }

.nc-dl svg { width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2.5; }

.new-tag { background:var(--red); color:#fff; font-size:.6875rem; font-weight:700; padding:2px 8px; border-radius:10px; text-transform:uppercase; letter-spacing:.04em; }

.empty-state { text-align:center; padding:60px 0; color:var(--muted); display:none; }

.empty-state svg { width:48px;height:48px;stroke:var(--border);fill:none;stroke-width:1.5;margin:0 auto 12px; }

.pagination { display:flex; gap:8px; justify-content:center; margin-top:40px; }

.pg-btn { width:40px;height:40px;border-radius:var(--r);border:1.5px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:600;color:var(--muted);transition:all var(--ease);cursor:pointer; }

.pg-btn.on,.pg-btn:hover { background:var(--red);border-color:var(--red);color:#fff; }

.pg-btn:disabled { opacity:.35; cursor:not-allowed; }

.notice-count { font-size:.875rem; color:var(--muted); margin-bottom:20px; }


/* ===== ABOUT PAGE — Story, Mission/Vision, Values, Timeline, Faculty, Partners ===== */

.story-grid { display:grid; grid-template-columns:1fr 1fr; gap:52px; align-items:center; }

.story-img  { border-radius:var(--r-lg); overflow:hidden; aspect-ratio:4/3; background:linear-gradient(135deg,var(--dark),var(--blue)); display:flex; align-items:center; justify-content:center; position:relative; }

.story-img-placeholder { text-align:center; color:rgba(255,255,255,.6); }

.story-img-placeholder svg { width:64px;height:64px;stroke:rgba(255,255,255,.3);fill:none;stroke-width:1.5;margin:0 auto 12px; }

.story-img-placeholder p { font-size:.875rem; }

.story-img img { width:100%;height:100%;object-fit:cover; }

.story-body h2 { font-size:clamp(1.5rem,3.5vw,2rem); margin-bottom:16px; }

.story-body p  { color:var(--muted); line-height:1.8; margin-bottom:14px; }

.story-body p:last-child { margin-bottom:0; }

.story-body strong { color:var(--dark); }

.mission-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }

.mv-card { border-radius:var(--r-lg); padding:32px; }

.mv-card.vision  { background:var(--blue); color:#fff; }

.mv-card.mission { background:var(--red);  color:#fff; }

.mv-card h3 { font-size:1.25rem; font-weight:700; margin-bottom:12px; color:#fff; }

.mv-card p  { color:rgba(255,255,255,.82); line-height:1.75; font-size:.9375rem; }

.val-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }

.val-card { background:#fff; border:1.5px solid var(--border); border-radius:var(--r-lg); padding:26px 22px; text-align:center; transition:all var(--ease); }

.val-card:hover { box-shadow:var(--sh-lg); transform:translateY(-3px); border-color:var(--blue); }

.val-icon { width:54px; height:54px; border-radius:50%; background:var(--blue-lt); display:flex; align-items:center; justify-content:center; margin:0 auto 14px; transition:background var(--ease); }

.val-card:hover .val-icon { background:var(--blue); }

.val-icon svg { width:22px;height:22px;stroke:var(--blue);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:stroke var(--ease); }

.val-card:hover .val-icon svg { stroke:#fff; }

.val-card h3 { font-family:var(--f-head); font-size:1rem; font-weight:700; margin-bottom:8px; }

.val-card p  { font-size:.84375rem; color:var(--muted); line-height:1.65; }

.faculty-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }

.fac-card { background:#fff; border:1.5px solid var(--border); border-radius:var(--r-lg); padding:24px 18px; text-align:center; transition:all var(--ease); }

.fac-card:hover { box-shadow:var(--sh-lg); transform:translateY(-3px); }

.fac-avatar { width:72px; height:72px; border-radius:50%; background:linear-gradient(135deg,var(--blue),var(--red)); display:flex; align-items:center; justify-content:center; margin:0 auto 14px; font-size:1.5rem; font-weight:700; color:#fff; font-family:var(--f-head); }

.fac-photo { width:88px; height:88px; border-radius:50%; overflow:hidden; margin:0 auto 14px; background:var(--blue-lt); box-shadow:0 0 0 3px #fff, 0 0 0 4px var(--border); }

.fac-photo img { width:100%; height:100%; object-fit:cover; }

.fac-name { font-family:var(--f-head); font-size:.9375rem; font-weight:700; margin-bottom:4px; }

.fac-role { font-size:.8125rem; color:var(--red); font-weight:600; margin-bottom:6px; }

.fac-qual { font-size:.78125rem; color:var(--muted); line-height:1.5; }

.fac-bio { font-size:.78125rem; color:var(--muted); line-height:1.55; margin-top:10px; }

.partner-row { display:flex; gap:22px; flex-wrap:wrap; justify-content:center; }

.partner-card { background:#fff; border:1.5px solid var(--border); border-radius:var(--r-lg); padding:22px 30px; text-align:center; min-width:180px; flex:1; transition:all var(--ease); }

.partner-card:hover { box-shadow:var(--sh-md); border-color:var(--blue); }

.partner-card h4 { font-family:var(--f-head); font-size:.9375rem; font-weight:700; margin-bottom:5px; }

.partner-card p  { font-size:.78125rem; color:var(--muted); }

.partner-ico { width:48px;height:48px;border-radius:var(--r);background:var(--blue-lt);display:flex;align-items:center;justify-content:center;margin:0 auto 12px; }

.partner-ico svg { width:22px;height:22px;stroke:var(--blue);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round; }

.timeline { position:relative; padding-left:32px; }

.timeline::before { content:''; position:absolute; left:10px; top:0; bottom:0; width:2px; background:var(--border); }

.tl-item { position:relative; padding-bottom:32px; }

.tl-item:last-child { padding-bottom:0; }

.tl-dot { position:absolute; left:-27px; top:4px; width:16px; height:16px; border-radius:50%; background:var(--red); border:3px solid #fff; box-shadow:0 0 0 2px var(--red); }

.tl-year { font-size:.75rem; font-weight:700; color:var(--red); text-transform:uppercase; letter-spacing:.06em; margin-bottom:4px; }

.tl-title { font-family:var(--f-head); font-size:1rem; font-weight:700; margin-bottom:6px; }

.tl-body { font-size:.875rem; color:var(--muted); line-height:1.65; }


/* ===== CONTACT PAGE — Contact Grid, Info Cards, Map, Departments ===== */

.contact-grid { display:grid; grid-template-columns:1fr 420px; gap:48px; align-items:start; }

.contact-form-wrap { background:#fff; border:1.5px solid var(--border); border-radius:var(--r-lg); padding:36px; }

.contact-form-wrap h2 { font-size:1.375rem; margin-bottom:6px; }

.contact-form-wrap p  { color:var(--muted); font-size:.9375rem; margin-bottom:24px; }

.info-col { display:flex; flex-direction:column; gap:16px; }

.info-card { background:#fff; border:1.5px solid var(--border); border-radius:var(--r-lg); padding:22px; display:flex; gap:16px; align-items:flex-start; transition:box-shadow var(--ease); }

.info-card:hover { box-shadow:var(--sh-md); }

.info-ico { flex-shrink:0; width:46px; height:46px; border-radius:var(--r); display:flex; align-items:center; justify-content:center; }

.info-ico svg { width:20px;height:20px;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round; }

.ico-loc  { background:var(--red-lt);  }

.ico-loc  svg { stroke:var(--red);  }

.ico-ph   { background:var(--blue-lt); }

.ico-ph   svg { stroke:var(--blue); }

.ico-mail { background:#DCFCE7; }

.ico-mail svg { stroke:#15803D; }

.ico-hrs  { background:#FEF9C3; }

.ico-hrs  svg { stroke:#A16207; }

.ico-wa   { background:#DCFCE7; }

.ico-wa   svg { stroke:#15803D; }

.info-body h3 { font-family:var(--f-head); font-size:.9375rem; font-weight:700; margin-bottom:5px; }

.info-body p  { font-size:.875rem; color:var(--muted); line-height:1.6; }

.info-body a  { color:var(--blue); font-weight:500; transition:color var(--ease); }

.info-body a:hover { color:var(--red); }

.map-wrap { border-radius:var(--r-lg); overflow:hidden; border:1.5px solid var(--border); margin-top:16px; aspect-ratio:16/7; background:var(--gray-bg); display:flex; align-items:center; justify-content:center; flex-direction:column; gap:12px; }

.map-wrap iframe { width:100%; height:100%; border:none; display:block; }

.map-placeholder { text-align:center; color:var(--muted); }

.map-placeholder svg { width:40px;height:40px;stroke:var(--border);fill:none;stroke-width:1.5;margin:0 auto 8px; }

.dept-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }

.dept-card { background:#fff; border:1.5px solid var(--border); border-radius:var(--r-lg); padding:20px; text-align:center; }

.dept-card h3 { font-family:var(--f-head); font-size:.9375rem; font-weight:700; margin-bottom:6px; }

.dept-card p  { font-size:.8125rem; color:var(--muted); margin-bottom:10px; }

.dept-card a  { font-size:.84375rem; font-weight:600; color:var(--red); }


/* ===== WRITE FOR US PAGE — Topics, Guidelines, FAQ, Submit Form ===== */

.wfu-grid { display:grid; grid-template-columns:1fr 340px; gap:48px; align-items:start; }

.topic-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }

.topic-pill { background:#fff; border:1.5px solid var(--border); border-radius:var(--r); padding:13px 16px; display:flex; align-items:center; gap:10px; font-size:.875rem; font-weight:500; color:var(--text); transition:all var(--ease); }

.topic-pill:hover { border-color:var(--red); background:var(--red-lt); color:var(--red); }

.topic-pill svg { width:16px;height:16px;stroke:var(--red);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0; }

.guide-list { display:flex; flex-direction:column; gap:14px; }

.guide-item { display:flex; gap:14px; align-items:flex-start; padding:16px 18px; background:#fff; border:1.5px solid var(--border); border-radius:var(--r); }

.guide-num { flex-shrink:0; width:28px; height:28px; background:var(--red); color:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:.8125rem; font-family:var(--f-head); }

.guide-body h4 { font-weight:700; font-size:.9375rem; margin-bottom:4px; }

.guide-body p  { font-size:.84375rem; color:var(--muted); line-height:1.6; }

.do-dont { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:32px; }

.do-card   { background:#DCFCE7; border:1.5px solid #86EFAC; border-radius:var(--r-lg); padding:22px; }

.dont-card { background:#FEE2E2; border:1.5px solid #FECACA; border-radius:var(--r-lg); padding:22px; }

.do-card h4   { color:#15803D; font-family:var(--f-head); margin-bottom:12px; }

.dont-card h4 { color:#DC2626; font-family:var(--f-head); margin-bottom:12px; }

.do-card li, .dont-card li { font-size:.875rem; line-height:1.6; margin-bottom:8px; display:flex; gap:8px; align-items:flex-start; }

.do-card li::before   { content:'✓'; font-weight:700; color:#15803D; flex-shrink:0; }

.dont-card li::before { content:'✗'; font-weight:700; color:#DC2626; flex-shrink:0; }

.sidebar-box { background:var(--gray-bg); border:1.5px solid var(--border); border-radius:var(--r-lg); padding:24px; margin-bottom:18px; }

.sidebar-box h3 { font-family:var(--f-head); font-size:1rem; font-weight:700; margin-bottom:14px; padding-bottom:10px; border-bottom:2px solid var(--border); position:relative; }

.sidebar-box h3::after { content:''; position:absolute; bottom:-2px; left:0; width:44px; height:2px; background:var(--red); }

.sidebar-box p  { font-size:.875rem; color:var(--muted); line-height:1.65; margin-bottom:10px; }

.sidebar-box ul { display:flex; flex-direction:column; gap:8px; }

.sidebar-box li { font-size:.875rem; color:var(--text); display:flex; gap:8px; }

.sidebar-box li::before { content:'→'; color:var(--red); font-weight:700; flex-shrink:0; }

.faq-list   { display:flex; flex-direction:column; gap:12px; }

.faq-item   { border:1.5px solid var(--border); border-radius:var(--r); overflow:hidden; }

.faq-q { display:flex; justify-content:space-between; align-items:center; padding:16px 18px; cursor:pointer; font-weight:600; font-size:.9375rem; transition:background var(--ease); gap:12px; }

.faq-q:hover { background:var(--gray-bg); }

.faq-q svg  { flex-shrink:0; width:18px;height:18px;stroke:var(--muted);fill:none;stroke-width:2.5;transition:transform .25s; }

.faq-item.open .faq-q svg { transform:rotate(180deg); }

.faq-a { display:none; padding:0 18px 16px; font-size:.875rem; color:var(--muted); line-height:1.7; }

.faq-item.open .faq-a { display:block; }

.submit-form { background:#fff; border:1.5px solid var(--border); border-radius:var(--r-lg); padding:36px; }

.char-count { font-size:.75rem; color:var(--muted); margin-top:4px; }


/* ===== SINGLE PROGRAM PAGE — Hero, Body Grid, Fact Card, Topics, Outcomes ===== */

.prog-hero { background:linear-gradient(135deg,var(--dark) 0%,var(--blue) 100%); padding:72px 0 56px; margin-top:72px; position:relative; overflow:hidden; }

.prog-hero::before { content:''; position:absolute; width:400px; height:400px; background:rgba(255,255,255,.04); border-radius:50%; top:-120px; right:-60px; pointer-events:none; }

.prog-hero-icon { width:72px; height:72px; background:rgba(255,255,255,.12); border-radius:16px; display:flex; align-items:center; justify-content:center; margin-bottom:20px; }

.prog-hero-icon svg { width:36px;height:36px;stroke:#FCA5B0;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round; }

.prog-body { display:grid; grid-template-columns:1fr 340px; gap:44px; align-items:start; }

.fact-card { background:var(--gray-bg); border-radius:var(--r-lg); padding:28px; border:1.5px solid var(--border); position:sticky; top:96px; }

.fact-card h3 { font-family:var(--f-head); font-size:1rem; font-weight:700; margin-bottom:18px; padding-bottom:12px; border-bottom:2px solid var(--border); position:relative; }

.fact-card h3::after { content:''; position:absolute; bottom:-2px; left:0; width:48px; height:2px; background:var(--red); }

.fact-row { display:flex; gap:10px; margin-bottom:14px; font-size:.875rem; }

.fact-label { font-weight:600; color:var(--dark); min-width:100px; flex-shrink:0; }

.fact-val { color:var(--muted); }

.fact-divider { border:none; border-top:1px solid var(--border); margin:18px 0; }

.topic-list { display:grid; grid-template-columns:1fr 1fr; gap:10px; list-style:none; }

.topic-list li { display:flex; gap:10px; align-items:flex-start; font-size:.9rem; color:var(--text); }

.topic-list li::before { content:'✓'; color:var(--red); font-weight:700; flex-shrink:0; margin-top:1px; }

.outcome-box { background:var(--blue-lt); border-left:4px solid var(--blue); border-radius:0 var(--r) var(--r) 0; padding:20px 22px; margin:28px 0; font-size:.9375rem; color:var(--text); line-height:1.7; }

.outcome-box strong { color:var(--blue); }

.prog-intro { font-size:1.0625rem; line-height:1.8; color:var(--text); margin-bottom:28px; }
.page-content h2 { font-size:1.5rem; margin:32px 0 14px; }
.page-content h3 { font-size:1.25rem; margin:28px 0 12px; }
.page-content h4 { font-size:1.0625rem; margin:22px 0 10px; }
.page-content p { margin-bottom:18px; }
.page-content ul, .page-content ol { margin:0 0 18px 22px; }
.page-content li { margin-bottom:8px; line-height:1.7; }
.page-content a { color:var(--blue); text-decoration:underline; text-underline-offset:2px; }
.page-content a:hover { color:var(--red); }
.page-content strong { color:var(--dark); }
.page-content blockquote { border-left:4px solid var(--red); background:var(--red-lt); padding:16px 22px; margin:24px 0; border-radius:0 var(--r) var(--r) 0; font-style:italic; }
.page-content img { border-radius:var(--r-lg); margin:20px 0; max-width:100%; height:auto; }
.page-content table { width:100%; border-collapse:collapse; margin:20px 0; }
.page-content table th, .page-content table td { padding:10px 14px; border:1px solid var(--border); text-align:left; }
.page-content table th { background:var(--gray-bg); font-weight:600; }
.page-content hr { border:none; border-top:1px solid var(--border); margin:32px 0; }
.page-links { margin-top:28px; font-size:.9375rem; color:var(--muted); }

.why-mini-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:32px; }


/* ===================== RESPONSIVE — BASE ===================== */

@media (max-width:1024px) { .ft-g { grid-template-columns:repeat(2,1fr); } }
@media (max-width:768px)  {
  .hdr-nav,.hdr-cta { display:none; }
  .hbg { display:flex; padding:10px; }
  .sec { padding:64px 0; }
  .ft-g { grid-template-columns:repeat(2,1fr); gap:32px; }
}
@media (max-width:560px) {
  .ft-g { grid-template-columns:1fr; }
  .pg-hero { padding:60px 0 44px; }
}
@media (max-width:480px) {
  .wa-btn { width:50px; height:50px; bottom:18px; right:18px; }
  .wa-btn svg { width:25px; height:25px; }
}
@media (max-width:400px) {
  .wrap { padding:0 16px; }
  .prog-grid { grid-template-columns:1fr; }
  .hdr-inner { padding:0 16px; }
}

/* ===================== RESPONSIVE — PER-PAGE ===================== */

/* ===== Homepage — responsive ===== */

@media (max-width: 1024px) {
      .stats-g  { grid-template-columns: repeat(2,1fr); }
      .why-grid { grid-template-columns: repeat(2,1fr); }
      .ft-g     { grid-template-columns: repeat(2,1fr); }
    }

@media (max-width: 768px) {
      .hdr-nav, .hdr-cta { display: none; }
      .hbg { display: flex; padding: 10px; }
      .hero-h1 { font-size: 2.25rem; }
      .hero { height: 640px; min-height: 0; }
      .notices-grid { grid-template-columns: 1fr; }
      .stat:not(:last-child)::after { display: none; }
      .sec { padding: 64px 0; }
    }

@media (max-width: 560px) {
      .why-grid { grid-template-columns: 1fr; }
      .hero { height: 600px; }
      .hero-ctas { flex-direction: column; }
      .hero-ctas .btn { justify-content: center; }
      .ft-g { grid-template-columns: 1fr; gap: 32px; }
      .stats-g { grid-template-columns: 1fr 1fr; gap: 12px; }
    }

@media (max-width: 480px) {
      .hero { height: 580px; }
      .wa-btn { width: 50px; height: 50px; bottom: 18px; right: 18px; }
      .wa-btn svg { width: 25px; height: 25px; }
    }

@media (max-width: 400px) {
      .wrap { padding: 0 16px; }
      .prog-grid { grid-template-columns: 1fr; }
      .hdr-inner { padding: 0 16px; }
    }


/* ===== Admissions — responsive ===== */

@media (max-width:900px) { .step-grid { grid-template-columns:1fr 1fr; } .req-grid { grid-template-columns:1fr; } .form-row { grid-template-columns:1fr; } }

@media (max-width:560px) { .step-grid { grid-template-columns:1fr; } .apply-form { padding:24px 18px; } }


/* ===== Notice Board — responsive ===== */

@media (max-width:640px) {
      .nc-full { padding:18px 16px; gap:13px; }
      .nc-ico-lg { width:40px; height:40px; }
      .nc-ico-lg svg { width:18px; height:18px; }
      .nc-title-lg { font-size:.9375rem; }
      .filter-tabs { gap:6px; margin-bottom:24px; }
      .tab-btn { padding:8px 14px; font-size:.8125rem; }
    }

@media (max-width:380px) {
      .nc-full { flex-direction:column; }
      .nc-ico-lg { width:36px; height:36px; }
    }


/* ===== About — responsive ===== */

@media (max-width:1024px) { .faculty-grid { grid-template-columns:repeat(2,1fr); } }

@media (max-width:900px)  { .story-grid { grid-template-columns:1fr; } .mission-grid { grid-template-columns:1fr; } .val-grid { grid-template-columns:1fr 1fr; } }

@media (max-width:560px)  { .val-grid { grid-template-columns:1fr; } .faculty-grid { grid-template-columns:1fr 1fr; } }


/* ===== Contact — responsive ===== */

@media (max-width:1024px) { .contact-grid { grid-template-columns:1fr; } .info-col { display:grid; grid-template-columns:1fr 1fr; } }

@media (max-width:640px)  { .info-col { grid-template-columns:1fr; } .form-row { grid-template-columns:1fr; } .dept-grid { grid-template-columns:1fr 1fr; } }

@media (max-width:420px)  { .dept-grid { grid-template-columns:1fr; } .contact-form-wrap { padding:22px 16px; } }


/* ===== Write for Us — responsive ===== */

@media (max-width:1024px) { .wfu-grid { grid-template-columns:1fr; } }

@media (max-width:640px)  { .topic-grid { grid-template-columns:1fr; } .do-dont { grid-template-columns:1fr; } .form-row { grid-template-columns:1fr; } .submit-form { padding:22px 16px; } }


/* ===== Single Program — responsive ===== */

@media (max-width:900px) { .prog-body { grid-template-columns:1fr; } .fact-card { position:static; } .topic-list { grid-template-columns:1fr; } }

@media (max-width:560px) { .prog-hero { padding:56px 0 40px; } }

@media (max-width:480px) { .why-mini-grid { grid-template-columns:1fr; } }

@media (max-width:560px) {
      .prog-hero-icon { width:60px; height:60px; }
      .prog-hero-icon svg { width:30px; height:30px; }
      .fact-card { padding:22px; }
    }

/* ===== Accessibility and page-builder compatibility ===== */

.screen-reader-text {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

.screen-reader-text:focus {
  position:fixed;
  z-index:10000;
  top:12px;
  left:12px;
  width:auto;
  height:auto;
  margin:0;
  overflow:visible;
  clip:auto;
  white-space:normal;
  background:var(--dark);
  color:#fff;
  border-radius:var(--r);
  padding:10px 14px;
  box-shadow:var(--sh-lg);
}

:focus-visible {
  outline:3px solid var(--blue);
  outline-offset:3px;
}

.btn:focus-visible,
.hero-dot:focus-visible,
.t-dot:focus-visible,
.hbg:focus-visible { outline-color:var(--red); }

.riahs-hp {
  position:absolute !important;
  left:-10000px !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
}

.success-msg.is-error {
  color:#B91C1C;
  background:#FEF2F2;
  border-color:#FECACA;
}

form[aria-busy="true"] { cursor:progress; }
form[aria-busy="true"] button[type="submit"] { opacity:.7; }

.faq-q { width:100%; text-align:left; color:var(--text); }
.faq-a[hidden] { display:none; }
.site-main { min-height:40vh; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after {
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    scroll-behavior:auto !important;
    transition-duration:.01ms !important;
  }
}
