/* ================================================================
   GLOBAL READABLE TEXT
   ================================================================ */
body { font-size:16px; line-height:1.8; color:#1a2535; -webkit-font-smoothing:antialiased; }
p, li { font-size:1rem; line-height:1.85; color:#2d3a4a; }
p { text-align:justify; hyphens:auto; }
h1,h2,h3,h4 { line-height:1.25; color:#0a2154; letter-spacing:-.01em; }
.about-intro-text p, .detail-article-body p, .ep-block-desc,
.epd-article-body, .fac-block-desc, .card-excerpt,
.mv-quote-text, .contact-text span { font-size:.97rem; line-height:1.85; text-align:justify; hyphens:auto; color:#374151; }
.card-meta, .ep-block-date, .ev-list-time, .evp-up-time,
.ann-card-school, small, .td-date { font-size:.8rem; line-height:1.6; color:#5a7090; }
.data-table td { font-size:.87rem; line-height:1.55; color:#2d3a4a; }
.form-label { font-size:.87rem; font-weight:700; color:#0a2154; }
.btn { font-size:.85rem; font-weight:700; letter-spacing:.02em; }

/* ==================================================== */

/* ── Wider container for announcements page ── */
.section > .container {
  max-width: 1400px !important;
  padding-left: 2rem !important;
  padding-right: 2rem !important;
}
@media(max-width:768px) {
  .section > .container { padding-left:1rem !important; padding-right:1rem !important; }
}

/* ==================================================== */

/* Match announcement cards to index carousel style */
.cards-grid .card-img-wrap {
  height: 380px;
  overflow: hidden;
  position: relative;
}
.cards-grid .card-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
  transition: transform 0.4s ease;
}
.cards-grid .card:hover .card-img-wrap img {
  transform: scale(1.02);
}
.cards-grid .card-img-placeholder {
  width: 100%; height: 100%;
  background: linear-gradient(135deg, #071840 0%, #0d2b6e 60%, #1a4a8a 100%);
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: .6rem;
  position: relative;
  overflow: hidden;
}
.cards-grid .card-img-placeholder::before {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 40%, rgba(200,164,21,.08) 0%, transparent 60%),
              radial-gradient(circle at 75% 70%, rgba(255,255,255,.04) 0%, transparent 50%);
}
.cards-grid .card-img-placeholder .ph-logo {
  width: 56px; height: 56px; object-fit: contain;
  opacity: .55; position: relative; z-index: 1;
}
.cards-grid .card-img-placeholder .ph-label {
  font-size: .65rem; font-weight: 800;
  letter-spacing: .14em; text-transform: uppercase;
  color: rgba(255,255,255,.35);
  position: relative; z-index: 1;
}
.cards-grid .card-img-placeholder .ph-icon {
  font-size: 2.2rem; opacity: .2;
  position: relative; z-index: 1;
}
.card-badge {
  position: absolute; top: 12px; left: 12px;
  background: rgba(0, 0, 0, 0.75);
  backdrop-filter: blur(4px);
  color: #fff;
  font-size: 0.65rem; font-weight: 800;
  padding: 0.25rem 0.75rem; border-radius: 100px;
}

/* ==================================================== */

/* ================================================================
   WAVE PAGE HERO
   ================================================================ */
.page-hero {
  position: relative;
  background: linear-gradient(160deg, #0a1628 0%, #0d1f3c 55%, #071020 100%);
  padding: calc(0rem + 70px) 0 0;
  overflow: hidden;
  z-index: 0;
}
.page-hero-noise {
  position: absolute; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
  background-size: 200px 200px;
  pointer-events: none; opacity: 0.18; z-index: 0;
}
.page-hero-glow {
  position: absolute; top: -60px; right: -80px;
  width: 500px; height: 500px; border-radius: 50%;
  background: radial-gradient(circle, rgba(255,255,255,0.04) 0%, transparent 70%);
  pointer-events: none; z-index: 0;
}
.page-hero-inner { position: relative; z-index: 2; padding-bottom: 1rem; }
.page-hero-breadcrumb {
  display: flex; align-items: center; gap: 8px;
  font-size: .8rem; color: rgba(255,255,255,.45);
  margin-bottom: 1.1rem;
}
.page-hero-breadcrumb a { color: rgba(255,255,255,.65); text-decoration: none; transition: color .2s; }
.page-hero-breadcrumb a:hover { color: #fff; }
.page-hero-breadcrumb span { color: rgba(255,255,255,.28); }
.page-hero-title {
  font-family: 'Poppins', Arial, sans-serif;
  font-size: clamp(2rem, 4.5vw, 3rem);
  font-weight: 800; color: #fff;
  line-height: 1.15; margin-bottom: .6rem;
  text-shadow: 0 2px 24px rgba(0,0,80,.3);
}
.page-hero-sub {
  font-size: 1rem; color: rgba(255,255,255,.65);
  max-width: 520px; line-height: 1.65;
}
.page-hero-wave { position: relative; z-index: 1; display: block; margin-bottom: -2px; line-height: 0; }
.page-hero-wave svg { display: block; width: 100%; height: 45px; }
/* Section bg */
.section { background: #f7f9fc !important; padding: 3rem 0 4rem; }

/* ==================================================== */

      .ann-text-list-title {
        font-family: 'Poppins', Arial, sans-serif;
        font-size:1rem;font-weight:700;color:#0a2154;
        margin:0 0 1.25rem;
        display:flex;align-items:center;gap:.6rem;
      }
      .ann-text-list-title::after {
        content:'';flex:1;height:2px;
        background:linear-gradient(90deg,#e0e8f5,transparent);
        border-radius:2px;
      }
      .ann-text-grid {
        display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;
      }
      .ann-text-card {
        display:grid;grid-template-columns:56px 1fr;gap:0;
        background:#fff;border:1px solid #e0e8f5;border-radius:12px;
        text-decoration:none;overflow:hidden;position:relative;
        transition:box-shadow .22s,transform .22s,border-color .22s;
      }
      .ann-text-card:hover { box-shadow:0 8px 28px rgba(13,43,110,.13);border-color:#0d2b6e; }
      .ann-text-date-col {
        background:linear-gradient(160deg,#071840 0%,#0d2b6e 100%);
        display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:.75rem .3rem;
      }
      .atd-month { font-size:.48rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#c8a415;line-height:1; }
      .atd-day   { font-size:1.35rem;font-weight:900;color:#fff;line-height:1;margin:1px 0; }
      .atd-year  { font-size:.44rem;font-weight:700;color:rgba(200,216,240,.5);letter-spacing:.05em; }
      .ann-text-content { padding:.7rem .85rem;display:flex;flex-direction:column;gap:.2rem;min-width:0; }
      .ann-text-pin { font-size:.7rem;position:absolute;top:.5rem;right:.6rem; }
      .ann-text-title { font-size:.84rem;font-weight:700;color:#0a2154;line-height:1.35; }

      /* ── Expand header (click to toggle) ── */
      .ann-expand-header {
        display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;
        cursor:pointer;user-select:none;
        padding:.1rem 0;
      }
      .ann-expand-header:hover .ann-text-title { color:#0d2b6e; }
      .ann-expand-chevron {
        color:#0d2b6e;flex-shrink:0;margin-top:1px;
        transition:transform .25s ease;
      }
      .ann-expand-chevron.open { transform:rotate(180deg); }

      /* ── Collapsible body ── */
      .ann-expand-body {
        max-height:0;overflow:hidden;
        transition:max-height .35s ease, padding .25s ease;
        padding:0;
      }
      .ann-expand-body.open {
        max-height:600px;
        padding:.55rem 0 .5rem;
      }
      .ann-expand-text {
        font-size:.8rem;color:#374151;line-height:1.65;
        border-left:3px solid #0d2b6e;
        padding-left:.65rem;
        margin-bottom:.6rem;
      }
      .ann-expand-full {
        display:inline-flex;align-items:center;gap:4px;
        font-size:.72rem;font-weight:700;color:#0d2b6e;
        text-decoration:none;
        border:1px solid rgba(13,43,110,.2);
        padding:.25rem .7rem;border-radius:100px;
        transition:background .2s,border-color .2s;
      }
      .ann-expand-full:hover { background:#eff4ff;border-color:#0d2b6e; }

      @media(max-width:900px){ .ann-text-grid{ grid-template-columns:repeat(2,1fr); } }
      @media(max-width:500px){ .ann-text-grid{ grid-template-columns:1fr; } }
      

/* ==================================================== */

/* ── Pinned badge ── */
.card { position: relative; }
.card-pinned { border: 2px solid #e8a020 !important; }
.pinned-badge {
  position: absolute; top: 10px; left: 10px;
  display: inline-flex; align-items: center; gap: 4px;
  background: #e8a020; color: #fff;
  font-size: .62rem; font-weight: 800;
  letter-spacing: .1em; text-transform: uppercase;
  padding: .22rem .7rem; border-radius: 100px;
  z-index: 2;
  box-shadow: 0 2px 8px rgba(232,160,32,.4);
}

/* Read More — no border */
.btn-read-more {
  border: none !important;
  background: none !important;
  color: #0d2b6e !important;
  padding: .4rem 0 !important;
  font-weight: 700 !important;
  display: inline-flex; align-items: center; gap: 5px;
}