/* ============================================================
   MATHURA OVERSEAS — "Monsoon Bloom" design system
   Jade / Marigold / Blush — a warm, credential-forward palette
   ============================================================ */
:root{
  --jade:        #10453C;
  --jade-light:  #1B6355;
  --jade-pale:   #E4EFEC;
  --marigold:    #F2994A;
  --marigold-dk: #D97706;
  --blush:       #FFF6EE;
  --blush-deep:  #FBE9D6;
  --ink:         #1B2B34;
  --ink-soft:    #4B5B63;
  --sky:         #6FB8C4;
  --white:       #FFFFFF;
  --gold:        #E8B84B;

  --font-display: 'Fraunces', Georgia, serif;
  --font-body:    'Inter', -apple-system, sans-serif;

  /* Slightly tighter corners and much quieter shadows than before —
     restrained, corporate-consultancy feel rather than "app landing page" */
  --radius-lg: 16px;
  --radius-md: 11px;
  --radius-sm: 7px;
  --shadow-soft: 0 6px 18px rgba(16,69,60,0.08);
  --shadow-hover: 0 12px 26px rgba(16,69,60,0.14);
}

*{ box-sizing:border-box; }

html{ scroll-behavior:smooth; }

body{
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.62;
  color: var(--ink);
  background: var(--blush);
  overflow-x:hidden;
}

h1,h2,h3,h4,h5,.display-font{
  font-family: var(--font-display);
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.22;
}

a{ color: inherit; }

/* Bootstrap's default .lead (1.25rem) and bare h1-h6 sizes run larger than
   this design needs — rein them in globally so every section reads at a
   consistent, comfortable scale rather than shouting. Specific components
   below still override these as needed. A notch smaller across the board
   than before, for a quieter, more corporate register. */
p.lead{ font-size: 1rem !important; font-weight: 400; line-height: 1.55; }
h1{ font-size: 1.9rem; }
h2{ font-size: 1.55rem; }
h3{ font-size: 1.18rem; }
h4{ font-size: 1.02rem; }
h5{ font-size: .94rem; }
h6{ font-size: .86rem; }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}

/* ---------- Utility ---------- */
.text-jade{ color: var(--jade) !important; }
.text-marigold{ color: var(--marigold) !important; }
.bg-jade{ background: var(--jade) !important; }
.bg-blush-deep{ background: var(--blush-deep) !important; }
.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-family: var(--font-body); font-weight:700; font-size:.68rem;
  letter-spacing:.12em; text-transform:uppercase;
  color: var(--marigold-dk);
  background: rgba(242,153,74,.11);
  padding: 5px 14px; border-radius: 999px;
}
.eyebrow::before{ content:''; width:5px; height:5px; border-radius:50%; background: var(--marigold); }

.section-pad{ padding: 80px 0; }
@media (max-width: 767px){ .section-pad{ padding: 52px 0; } }

.section-heading{ max-width: 600px; margin: 0 auto 40px; text-align:center; }
.section-heading h2{ font-size: clamp(1.4rem, 2.1vw, 1.85rem); color: var(--jade); margin: 12px 0 10px; }
.section-heading p{ color: var(--ink-soft); font-size: .94rem; }

.btn-marigold{
  background: var(--marigold); border:none; color:#221204; font-weight:700;
  padding: 12px 28px; border-radius: 999px; transition: all .2s ease;
  box-shadow: 0 4px 12px rgba(242,153,74,.25);
}
.btn-marigold:hover{ background: var(--marigold-dk); color:#fff; transform: translateY(-1px); box-shadow: 0 6px 16px rgba(217,119,6,.3); }

.btn-outline-jade{
  border: 1.5px solid rgba(255,255,255,.5); color:#fff; font-weight:600;
  padding: 11px 26px; border-radius: 999px; background: transparent; transition: all .2s ease;
}
.btn-outline-jade:hover{ background: rgba(255,255,255,.12); color:#fff; }

.btn-ghost-jade{
  border: 1.5px solid var(--jade); color: var(--jade); font-weight:600;
  padding: 10px 24px; border-radius: 999px; background: transparent; transition: all .2s ease;
}
.btn-ghost-jade:hover{ background: var(--jade); color:#fff; }

/* ---------- Stamp signature element ---------- */
.stamp{
  position: relative;
  width: 84px; height: 84px;
  border: 2.5px dashed var(--jade);
  border-radius: 50%;
  display:flex; align-items:center; justify-content:center;
  flex-direction:column;
  color: var(--jade);
  transform: rotate(-8deg);
  flex-shrink:0;
  background: rgba(16,69,60,.03);
}
.stamp span{ font-size:.55rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; line-height:1.1; text-align:center; }
.stamp .stamp-main{ font-family:var(--font-display); font-size:1.05rem; font-weight:700; }

/* ---------- Navbar ---------- */
.navbar{
  background: rgba(16,69,60,0.97) !important;
  padding: 13px 0;
  transition: padding .25s ease, box-shadow .25s ease;
}
.navbar.scrolled{ padding: 9px 0; box-shadow: 0 4px 16px rgba(0,0,0,.14); }
.navbar-brand{ font-family: var(--font-display); font-weight:600; font-size:1.32rem; color:#fff !important; display:flex; align-items:center; gap:10px; padding:0; letter-spacing:-.01em; }

.brand-mark{
  position:relative; width:36px; height:36px; border-radius:50%; flex-shrink:0;
  background: linear-gradient(135deg, var(--marigold) 0%, var(--gold) 100%);
  display:flex; align-items:center; justify-content:center;
  transition: transform .3s ease, box-shadow .3s ease;
}
.brand-mark i{ color: var(--jade); font-size:.95rem; transition: transform .25s ease; }
.navbar-brand:hover .brand-mark{ box-shadow: 0 4px 14px rgba(242,153,74,.35); }
.navbar-brand:hover .brand-mark i{ transform: scale(1.08); }

.brand-mark-sm{ width:32px; height:32px; }
.brand-mark-sm i{ font-size:.9rem; }

/* Corporate Minimal Footer */
.footer-minimal {
  background: var(--bs-dark, #1a1d20);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  position: relative;
  z-index: 1020; /* Ensures footer sits comfortably above standard lower-z-index floating widgets */
}

/* Social links hover effect for corporate polish */
.footer-social-links a {
  transition: color 0.2s ease, transform 0.2s ease;
  display: inline-block;
}

.footer-social-links a:hover {
  color: #fff !important;
  transform: translateY(-2px);
}

/* Footer links style */
.footer-link {
  transition: color 0.2s ease;
}
.footer-link:hover {
  color: #fff !important;
}

/* Mobile layout refinement */
@media (max-width: 767.98px) {
  .footer-minimal .row > div {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
  }
}

/* nav links: plain color change on hover/active — no underline */
.nav-link{ color: rgba(255,255,255,.78) !important; font-weight:500; font-size:.88rem; margin: 0 3px; position:relative; letter-spacing:.01em; }
.nav-link.active, .nav-link:hover{ color:#fff !important; }

.nav-cta{ background: var(--marigold); color:#221204 !important; border-radius:8px; padding:8px 20px !important; font-weight:600; font-size:.86rem; transition: all .2s ease; }
/* higher-specificity + explicit color fixes the invisible-text-on-hover bug */
.navbar-nav .nav-item .nav-link.nav-cta:hover{ background:#fff !important; color: var(--jade) !important; box-shadow: 0 4px 12px rgba(0,0,0,.14); }

/* ---------- Hero: must be fully visible without scrolling ---------- */
.hero{
  min-height: 100dvh;
  display:flex; align-items:center;
  padding-top: 84px;
  background:
    radial-gradient(circle at 15% 20%, rgba(242,153,74,.20) 0%, transparent 45%),
    radial-gradient(circle at 85% 85%, rgba(111,184,196,.25) 0%, transparent 50%),
    linear-gradient(160deg, #0D362F 0%, #10453C 55%, #14544A 100%);
  color:#fff;
  position: relative;
  overflow:hidden;
}
.hero::after{
  content:'';
  position:absolute; inset:0;
  background-image: repeating-linear-gradient(115deg, rgba(255,255,255,.035) 0 2px, transparent 2px 90px);
  pointer-events:none;
}
.hero-badge{
  display:inline-flex; align-items:center; gap:7px;
  background: rgba(242,153,74,.15); border:1px solid rgba(242,153,74,.35);
  color: var(--gold); font-weight:600; font-size:.7rem; letter-spacing:.05em; text-transform:uppercase;
  padding:6px 14px; border-radius:999px; margin-bottom:16px;
}
.hero h1{
  font-size: clamp(1.6rem, 3vw, 2.35rem);
  line-height:1.18;
  margin-bottom: 14px;
}
.hero h1 em{ font-style:normal; color: var(--gold); }
.hero .lead-text{ font-size: clamp(.86rem, 1.05vw, .96rem); line-height:1.6; color: rgba(255,255,255,.8); max-width: 540px; }
.hero-stats{ display:flex; gap: 8px; flex-wrap:wrap; margin-top: 20px; }
.hero-stat{
  background: rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12);
  border-radius: var(--radius-sm); padding: 11px 15px; min-width: 104px;
}
.hero-stat .num{ font-family:var(--font-display); font-size:1.15rem; font-weight:700; color:var(--gold); }
.hero-stat .lbl{ font-size:.62rem; color: rgba(255,255,255,.65); text-transform:uppercase; letter-spacing:.03em; }

.hero-visual{ position:relative; }
.hero-passport{
  background: rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.15);
  border-radius: var(--radius-lg); padding: 22px;
  animation: floaty 5s ease-in-out infinite;
}
@keyframes floaty{ 0%,100%{ transform: translateY(0);} 50%{ transform: translateY(-10px);} }
.hero-passport .row-item{ display:flex; align-items:center; gap:12px; padding: 9px 0; border-bottom:1px solid rgba(255,255,255,.1); }
.hero-passport .row-item:last-child{ border-bottom:none; }
.hero-passport .row-item i{ color: var(--gold); font-size:1.15rem; }

@media (max-width: 991.98px){
  .hero{ padding-top: 88px; padding-bottom: 24px; text-align:center; min-height: 100dvh; }
  .hero .lead-text{ margin: 0 auto; }
  .hero-stats{ justify-content:center; }
}
@media (max-width: 575.98px){
  .hero{ padding-top: 78px; }
  .hero h1{ font-size: clamp(1.5rem, 7vw, 2rem); }
  .hero .lead-text{ font-size: .85rem; }
  .hero-stats{ gap:6px; margin-top:16px; }
  .hero-stat{ min-width: 29%; padding: 8px 6px; }
  .hero-stat .num{ font-size:1.05rem; }
  .hero-stat .lbl{ font-size:.58rem; }
  .hero-badge{ font-size:.65rem; padding:5px 12px; }
}
@media (max-height: 700px){
  .hero{ padding-top: 76px; }
  .hero h1{ font-size: clamp(1.4rem, 3.6vw, 2.4rem); margin-bottom:10px; }
  .hero .lead-text{ font-size:.85rem; }
  .hero-stats{ margin-top:14px; }
}

/* ---------- Quick stats strip ---------- */
.stat-strip{ background: var(--white); }
.stat-tile{
  text-align:center; padding: 22px 12px; border-radius: var(--radius-md);
  background: var(--jade-pale); height:100%;
}
.stat-tile i{ font-size:1.3rem; color: var(--jade); }
.stat-tile .num{ font-family:var(--font-display); font-size:1.45rem; font-weight:700; color: var(--jade); }

/* ---------- Destinations section: more visual weight ---------- */
.destinations-section{
  background: linear-gradient(180deg, var(--blush) 0%, var(--blush-deep) 55%, var(--blush) 100%);
  position: relative;
}
.destinations-h2{ font-size: clamp(1.5rem, 2.3vw, 2rem) !important; }

/* Colorful photo showcase strip above the destination cards */
.dest-gallery{
  display:grid; grid-template-columns: repeat(4, 1fr); gap:14px; margin-bottom:40px;
}
.dest-gallery-item{
  position:relative; border-radius: var(--radius-md); overflow:hidden; height:160px;
  box-shadow: 0 10px 24px rgba(16,69,60,.14);
}
.dest-gallery-item.span-2{ grid-column: span 2; }
.dest-gallery-item img{
  width:100%; height:100%; object-fit:cover; display:block; transition: transform .5s ease;
}
.dest-gallery-item:hover img{ transform: scale(1.07); }
.dest-gallery-tag{
  position:absolute; left:12px; bottom:12px; color:#fff; font-weight:700; font-size:.85rem;
  text-shadow: 0 2px 8px rgba(0,0,0,.5); z-index:2;
}
.dest-gallery-item::after{
  content:''; position:absolute; inset:0; background: linear-gradient(180deg, transparent 50%, rgba(13,54,47,.65) 100%);
}
@media (max-width: 767.98px){
  .dest-gallery{ grid-template-columns: repeat(2, 1fr); }
  .dest-gallery-item.span-2{ grid-column: span 2; height:130px; }
  .dest-gallery-item{ height:110px; }
}

/* Priority-head now shows real destination photography with a color-matched
   gradient scrim on top so the rank/title text stays legible. */
.priority-head.has-photo{ background-size: cover !important; background-position: center; position:relative; }
.priority-head.has-photo::before{ content:''; position:absolute; inset:0; z-index:1; }
.p-philippines .priority-head.has-photo::before{ background: linear-gradient(120deg, rgba(13,54,47,.88), rgba(27,99,85,.62)); }
.p-timor .priority-head.has-photo::before{ background: linear-gradient(120deg, rgba(122,75,30,.88), rgba(201,122,43,.62)); }
.p-uzbekistan .priority-head.has-photo::before{ background: linear-gradient(120deg, rgba(30,78,90,.88), rgba(60,140,158,.62)); }
.priority-head.has-photo > *{ position:relative; z-index:2; }

/* ============================================================
   BLOG FEED (news.html) — designed so adding a new day's post
   is a copy-paste of one card block, newest at the top.
   ============================================================ */
.blog-feed{ display:flex; flex-direction:column; gap:20px; max-width: 820px; margin: 0 auto; }
.blog-post{
  display:flex; gap:20px; background:#fff; border-radius: var(--radius-lg);
  padding: 24px 26px; box-shadow: 0 8px 22px rgba(16,69,60,.08);
  border-left: 4px solid var(--marigold);
}
.blog-post-date{
  flex-shrink:0; width:76px; text-align:center; padding-top:2px;
}
.blog-post-date .day{ font-family: var(--font-display); font-size:1.7rem; font-weight:700; color: var(--jade); line-height:1; }
.blog-post-date .month{ font-size:.72rem; font-weight:700; text-transform:uppercase; color: var(--ink-soft); letter-spacing:.03em; }
.blog-post-body{ flex:1; min-width:0; }
.blog-tag{
  display:inline-block; font-size:.66rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em;
  padding:3px 11px; border-radius:999px; margin-bottom:8px;
}
.blog-tag-news{ background: rgba(242,153,74,.15); color: var(--marigold-dk); }
.blog-tag-counselling{ background: var(--jade-pale); color: var(--jade); }
.blog-tag-tips{ background: rgba(111,184,196,.2); color: #1E4E5A; }
.blog-post h5{ color: var(--jade); margin-bottom:8px; }
.blog-post p{ color: var(--ink-soft); font-size:.92rem; margin-bottom:0; }
.blog-feed-note{
  text-align:center; font-size:.85rem; color: var(--ink-soft); margin-top:8px;
}
@media (max-width: 575.98px){
  .blog-post{ flex-direction:column; gap:10px; padding:20px; }
  .blog-post-date{ width:auto; display:flex; align-items:baseline; gap:6px; text-align:left; }
}

/* ---------- Flag icons (real images — Windows doesn't render flag emoji properly) ---------- */
.flag-icon-inline{
  width:22px; height:16px; object-fit:cover; border-radius:3px; display:inline-block;
  vertical-align:-2px; box-shadow: 0 0 0 1px rgba(0,0,0,.08); margin-right:2px;
}
.flag-icon-inline.lg{ width:28px; height:20px; vertical-align:-4px; }

/* ---------- Banner card accent variants + photo flag badge (less repetitive grid) ---------- */
.banner-card{ border-top: 4px solid var(--jade); }
.banner-card.accent-ru{ border-top-color: #C0392B; }
.banner-card.accent-ge{ border-top-color: #6FB8C4; }
.banner-card.accent-kz{ border-top-color: #10453C; }
.banner-card.accent-kg{ border-top-color: #D97706; }
.banner-card.accent-vn{ border-top-color: #16A085; }
.banner-card.accent-ca{ border-top-color: #6B3FA0; }

.banner-photo-flag{
  position:absolute; left:14px; bottom:-16px; z-index:2;
  width:42px; height:30px; border-radius:5px; overflow:hidden;
  box-shadow: 0 3px 10px rgba(0,0,0,.3), 0 0 0 3px #fff;
}
.banner-photo-flag img{ width:100%; height:100%; object-fit:cover; display:block; }
.banner-top{ position:relative; overflow:visible !important; }

/* ---------- Mobile accordion for country groups (reduces scroll fatigue) ---------- */
@media (max-width: 991.98px){
  .country-group-head{
    cursor:pointer; background:#fff; border-radius: var(--radius-md);
    padding:16px 18px; box-shadow: 0 4px 16px rgba(16,69,60,.08);
    transition: box-shadow .25s ease; user-select:none;
  }
  .country-group-head:hover, .country-group-head:focus-visible{ box-shadow: 0 8px 22px rgba(16,69,60,.15); outline:none; }
  .cg-count{
    margin-left:auto; flex-shrink:0; display:flex; align-items:center; gap:6px;
    font-size:.78rem; font-weight:800; color: var(--jade); background: var(--jade-pale);
    padding:5px 12px; border-radius:999px;
  }
  .cg-chevron{ transition: transform .35s ease; }
  .country-group-head[aria-expanded="true"] .cg-chevron{ transform: rotate(180deg); }
  .country-cards-wrap{
    max-height:0; overflow:hidden; opacity:0;
    transition: max-height .5s cubic-bezier(.4,0,.2,1), opacity .4s ease;
  }
  .country-cards-wrap.open{
    max-height: 6000px; opacity:1; padding-top:20px;
    transition: max-height .6s cubic-bezier(.4,0,.2,1), opacity .5s ease .1s;
  }
}
@media (min-width: 992px){
  .cg-count{ display:none; }
  .country-cards-wrap{ max-height:none !important; overflow:visible !important; opacity:1 !important; }
}

/* ---------- Quick Facts grid + map embed (replaces per-university gallery) ---------- */
.quick-facts-grid{ display:grid; grid-template-columns: repeat(4, 1fr); gap:14px; }
.quick-fact-card{
  background: var(--jade-pale); border-radius: var(--radius-md); padding: 18px 14px; text-align:center;
}
.quick-fact-card i{ font-size:1.5rem; color: var(--jade); margin-bottom:8px; display:block; }
.quick-fact-card .qf-label{ font-size:.68rem; text-transform:uppercase; letter-spacing:.03em; color: var(--ink-soft); font-weight:700; margin-bottom:3px; }
.quick-fact-card .qf-value{ font-family: var(--font-display); font-size:1.05rem; font-weight:700; color: var(--jade); line-height:1.2; }
@media (max-width: 767.98px){ .quick-facts-grid{ grid-template-columns: repeat(2, 1fr); } }

.uni-map-embed{ border-radius: var(--radius-md); overflow:hidden; box-shadow: 0 8px 20px rgba(16,69,60,.1); margin-top:18px; }
.uni-map-embed iframe{ width:100%; height:260px; border:0; display:block; }

/* ============================================================
   UNIVERSITY DETAIL PAGE
   ============================================================ */
.uni-page-loading{ min-height:100vh; display:flex; align-items:center; justify-content:center; }
.uni-page-notfound{ min-height:70vh; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding-top:100px; }

.uni-page-banner{
  position:relative; min-height:420px; display:flex; flex-direction:column; justify-content:flex-end;
  padding: 140px 0 60px; background-size:cover; background-position:center; overflow:hidden; color:#fff;
}
.uni-page-banner-overlay{ position:absolute; inset:0; z-index:1; }
.uni-back-link{ color:rgba(255,255,255,.85); font-size:.9rem; font-weight:600; text-decoration:none; display:inline-flex; align-items:center; gap:6px; margin-bottom:18px; }
.uni-back-link:hover{ color:#fff; }
.uni-page-ribbon{
  display:inline-block; background: var(--marigold); color:#221204; font-weight:800; font-size:.72rem;
  text-transform:uppercase; letter-spacing:.04em; padding:5px 16px; border-radius:999px; margin-bottom:14px;
}
.uni-page-title{ font-size: clamp(1.55rem, 2.8vw, 2.3rem); margin-bottom:8px; }
.uni-page-loc{ font-size:.95rem; color:rgba(255,255,255,.85); }
.uni-page-pill{ background: rgba(255,255,255,.18); color:#fff; font-weight:700; }

.uni-highlight-list{ list-style:none; padding:0; }
.uni-highlight-list li{ padding:8px 0; font-size:1rem; color:var(--ink-soft); display:flex; gap:10px; border-bottom:1px dashed rgba(16,69,60,.12); }
.uni-highlight-list li i{ color: var(--marigold-dk); margin-top:3px; }

.uni-gallery{ display:grid; grid-template-columns: repeat(3, 1fr); gap:14px; }
.uni-gallery-item{ border-radius: var(--radius-md); overflow:hidden; height:180px; box-shadow: 0 8px 20px rgba(16,69,60,.12); }
.uni-gallery-item img{ width:100%; height:100%; object-fit:cover; transition: transform .4s ease; }
.uni-gallery-item:hover img{ transform: scale(1.08); }
@media (max-width: 575.98px){ .uni-gallery{ grid-template-columns: repeat(2, 1fr); } .uni-gallery-item{ height:130px; } }

.uni-fee-card{
  background:#fff; border-radius: var(--radius-lg); padding: 28px; box-shadow: var(--shadow-soft);
  border: 1px solid rgba(16,69,60,.08); position:sticky; top:100px;
}
.uni-fee-table{ width:100%; border-collapse:collapse; }

/* Matcher tool form + results — same visual look as uni-fee-card, but
   NOT sticky (sticky positioning was causing results to float and
   overlap the form when both used the same class). */
.matcher-card{
  background:#fff; border-radius: var(--radius-lg); padding: 28px; box-shadow: var(--shadow-soft);
  border: 1px solid rgba(16,69,60,.08); position: static;
}
.uni-fee-table td{ padding:10px 0; border-bottom:1px solid rgba(16,69,60,.08); font-size:.92rem; color:var(--ink-soft); }
.uni-fee-table tr:last-child td{ border-bottom:none; padding-top:14px; font-size:1rem; color:var(--jade); }

/* ============================================================
   NEW DESTINATIONS: colorful university card grid, grouped by
   country, each card linking out to its own detail page.
   ============================================================ */
.uni-cards-section{ background: linear-gradient(180deg, var(--blush) 0%, var(--blush-deep) 55%, var(--blush) 100%); }
.country-group{ margin-bottom: 48px; }
.country-group:last-child{ margin-bottom:0; }
.country-group-head{ display:flex; align-items:center; gap:14px; margin-bottom:22px; }
.country-group-head .flag-big{ font-size:1.9rem; }
.country-group-head h3{ color: var(--jade); margin:0; font-size:1.25rem; }
.country-group-head .sub{ color: var(--ink-soft); font-size:.84rem; }

.uni-card-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap:22px; }
@media (max-width: 991.98px){ .uni-card-grid{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575.98px){ .uni-card-grid{ grid-template-columns: 1fr; } }

.uni-card-link{ text-decoration:none; color:inherit; display:block; height:100%; }
.uni-card{
  border-radius: var(--radius-lg); overflow:hidden; background:#fff; height:100%;
  box-shadow: 0 10px 26px rgba(16,69,60,.1); transition: transform .35s ease, box-shadow .35s ease;
  border: 1px solid rgba(16,69,60,.06);
}
.uni-card:hover{ transform: translateY(-8px); box-shadow: 0 22px 45px rgba(16,69,60,.2); }
.uni-card-photo{ position:relative; height:170px; background-size:cover; background-position:center; }
.uni-card-photo::before{ content:''; position:absolute; inset:0; }
.uni-card-photo .uni-card-icon{ position:relative; z-index:2; width:52px; height:52px; border-radius:50%; background:rgba(255,255,255,.2); border:1.5px solid rgba(255,255,255,.5); display:flex; align-items:center; justify-content:center; color:#fff; font-size:1.3rem; margin:18px 0 0 18px; }
.uni-card-photo .uni-card-ribbon{ position:absolute; top:14px; right:-30px; z-index:2; background: var(--marigold); color:#221204; font-size:.62rem; font-weight:800; text-transform:uppercase; letter-spacing:.03em; padding:4px 34px; transform: rotate(35deg); }
.uni-card-body{ padding: 20px 22px 22px; }
.uni-card-body h5{ color: var(--jade); font-size:1rem; margin-bottom:4px; }
.uni-card-body .loc{ font-size:.78rem; color: var(--ink-soft); margin-bottom:10px; }
.uni-card-body .pills{ margin-bottom:12px; }
.uni-card-body .pills span{ font-size:.66rem; font-weight:700; background: var(--jade-pale); color: var(--jade); padding:3px 10px; border-radius:999px; margin:0 5px 5px 0; display:inline-block; }
.uni-card-cta{
  display:flex; align-items:center; justify-content:space-between; font-size:.85rem; font-weight:700;
  color: var(--jade); border-top:1px solid rgba(16,69,60,.08); padding-top:12px; margin-top:4px;
}
.uni-card-cta i{ transition: transform .25s ease; }
.uni-card:hover .uni-card-cta i{ transform: translateX(4px); }

/* ---------- Priority destination cards (Philippines / Timor / Uzbekistan) ---------- */
.priority-card{
  border-radius: var(--radius-lg);
  background: var(--white);
  box-shadow: var(--shadow-soft);
  overflow:hidden;
  height:100%;
  transition: transform .35s ease, box-shadow .35s ease;
  border: 1px solid rgba(16,69,60,.06);
}
.priority-card:hover{ transform: translateY(-8px); box-shadow: var(--shadow-hover); }
.priority-head{
  padding: 22px 24px; color:#fff; position:relative;
  display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
}
.priority-head .rank{
  font-family: var(--font-display); font-size:2rem; font-weight:700;
  opacity:.35; line-height:1;
}
.priority-head h3{ color:#fff; font-size:1.2rem; margin:0; }
.priority-head .flag{ font-size:1.6rem; }
.p-philippines .priority-head{ background: linear-gradient(120deg, #0D362F, #1B6355); }
.p-timor .priority-head{ background: linear-gradient(120deg, #7A4B1E, #C97A2B); }
.p-uzbekistan .priority-head{ background: linear-gradient(120deg, #1E4E5A, #3C8C9E); }
.priority-body{ padding: 22px 24px; }
.priority-body .pill{
  display:inline-block; font-size:.72rem; font-weight:700; padding: 4px 12px;
  border-radius: 999px; margin: 0 6px 6px 0;
  background: var(--jade-pale); color: var(--jade);
}
.priority-body ul{ list-style:none; padding:0; margin: 14px 0; }
.priority-body ul li{ padding: 5px 0; font-size:.92rem; color: var(--ink-soft); display:flex; gap:8px; }
.priority-body ul li i{ color: var(--marigold-dk); margin-top:3px; }

/* "Also available" secondary destinations now use .banner-card too (see below) */

/* ---------- Spotlight ---------- */
.spotlight-card{
  border-radius: var(--radius-lg);
  background: linear-gradient(135deg, #0D362F 0%, #1B6355 60%, #1E6F5E 100%);
  color:#fff; position:relative; overflow:hidden;
}
.spotlight-card::before{
  content:''; position:absolute; width: 340px; height:340px; border-radius:50%;
  background: radial-gradient(circle, rgba(242,153,74,.25), transparent 70%);
  top:-120px; right:-100px;
}
.spotlight-panel{ background:#fff; color: var(--ink); border-radius: var(--radius-md); }
.spotlight-panel h4{ color: var(--jade); }

.fee-spotlight{
  display:flex; align-items:center; gap:16px;
  background: linear-gradient(120deg, var(--marigold-dk), var(--marigold));
  color:#221204; border-radius: var(--radius-md); padding: 16px 20px; margin: 14px 0 18px;
}
.fee-spotlight .fee-num{ font-family: var(--font-display); font-size:1.65rem; font-weight:700; line-height:1; white-space:nowrap; }
.fee-spotlight .fee-note{ font-size:.78rem; font-weight:600; }

.mini-spot{
  border-radius: var(--radius-md); padding: 22px; height:100%;
  background: var(--white); border: 1px solid rgba(16,69,60,.08);
}

/* ---------- Feature icons / process steps ---------- */
.feature-icon{
  width:64px; height:64px; border-radius:50%; background: var(--jade-pale); color: var(--jade);
  display:flex; align-items:center; justify-content:center; font-size:25px; margin:0 auto 16px;
  transition: all .25s ease;
}
.feature-icon:hover{ background: var(--jade); color:#fff; transform: scale(1.05); }

.step-item{ position:relative; }
.step-number{
  width:50px; height:50px; border-radius:50%; background: var(--jade); color:#fff;
  display:flex; align-items:center; justify-content:center; font-weight:700; font-size:1.15rem;
  margin-bottom:14px; font-family: var(--font-display); box-shadow: 0 4px 12px rgba(16,69,60,.22);
}
.step-line{ position:absolute; top:25px; left:50px; width: calc(100% - 36px); height:2px; background: repeating-linear-gradient(90deg, var(--jade-pale) 0 8px, transparent 8px 14px); }
@media (max-width: 991.98px){ .step-line{ display:none; } }

/* ---------- Eligibility ---------- */
.elig-item i{ color: var(--jade); }

/* ---------- Testimonials ---------- */
.testimonial-card{ background:#fff; border-left: 3px solid var(--marigold); transition: all .2s ease; }
.testimonial-card:hover{ transform: translateY(-3px); box-shadow: var(--shadow-hover); }

/* ---------- CTA ---------- */
.cta-section{
  background: linear-gradient(120deg, var(--marigold-dk), var(--marigold));
  color:#221204; position:relative; overflow:hidden;
}
.cta-section h2{ color:#221204; }
.cta-section h2.display-5{ font-size: clamp(1.4rem, 2.4vw, 1.95rem) !important; }

/* ---------- Contact ---------- */
.contact-icon{ font-size:1.9rem; color: var(--jade); }

/* ---------- WhatsApp float ---------- */
.whatsapp-float{
  position:fixed; width:46px; height:46px; bottom:24px; right:24px;
  background:#25d366; color:#fff; border-radius:50%;
  display:flex; align-items:center; justify-content:center; font-size:21px;
  box-shadow: 0 4px 14px rgba(0,0,0,.2); z-index:200;
  animation: pulse-wa 2.4s infinite;
}
@media (max-width: 575.98px){ .whatsapp-float{ right:10px; bottom:15px; width:40px; height:40px; font-size:15px; } }
@keyframes pulse-wa{ 0%{ box-shadow:0 0 0 0 rgba(37,211,102,.5);} 70%{ box-shadow:0 0 0 10px rgba(37,211,102,0);} 100%{ box-shadow:0 0 0 0 rgba(37,211,102,0);} }

/* ============================================================
   BANNER CARD — one reusable, uniform-size "web banner" card
   used for: Philippines' 5 universities, Uzbekistan's 3
   universities, and the restyled "Also available" countries.
   ============================================================ */
.banner-row{ display:flex; gap:16px; overflow-x:auto; padding: 4px 4px 14px; scroll-snap-type: x proximity; }
.banner-row::-webkit-scrollbar{ height:7px; }
.banner-row::-webkit-scrollbar-thumb{ background: var(--jade-pale); border-radius:10px; }
.banner-grid{ display:grid; gap:16px; }
.banner-grid.cols-5{ grid-template-columns: repeat(5, minmax(0,1fr)); }
.banner-grid.cols-4{ grid-template-columns: repeat(4, minmax(0,1fr)); }
.banner-grid.cols-3{ grid-template-columns: repeat(3, minmax(0,1fr)); }
@media (max-width: 1199.98px){ .banner-grid.cols-5{ grid-template-columns: repeat(3, 1fr); } .banner-grid.cols-4{ grid-template-columns: repeat(2,1fr);} }
@media (max-width: 767.98px){ .banner-grid.cols-5, .banner-grid.cols-4, .banner-grid.cols-3{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px){ .banner-grid.cols-5, .banner-grid.cols-4, .banner-grid.cols-3{ grid-template-columns: 1fr; } }

.banner-card{
  scroll-snap-align:start;
  background: #fff; border-radius: var(--radius-md); overflow:hidden;
  box-shadow: 0 3px 12px rgba(16,69,60,.07);
  display:flex; flex-direction:column; height:100%;
  transition: transform .2s ease, box-shadow .2s ease;
  border: 1px solid rgba(16,69,60,.08);
}
.banner-card:hover{ transform: translateY(-3px); box-shadow: var(--shadow-hover); }

.banner-top{
  position:relative; height: 96px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-size:1.8rem; overflow:hidden;
}
.banner-top img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.banner-top .banner-tint{ position:absolute; inset:0; background: linear-gradient(160deg, rgba(13,54,47,.5), rgba(13,54,47,.1)); }
.banner-top i{ position:relative; z-index:2; }
/* A quiet corner tag instead of a diagonal "sale" ribbon — reads as a
   credential label, not a promotional banner */
.banner-ribbon{
  position:absolute; top:10px; right:10px; z-index:3;
  background: rgba(255,255,255,.95); color: var(--jade); font-size:.6rem; font-weight:700;
  padding: 3px 10px; border-radius:999px; letter-spacing:.04em; text-transform:uppercase;
}
.banner-body{ padding: 14px 16px 15px; display:flex; flex-direction:column; flex:1; }
.banner-body h6{ font-size:.88rem; font-weight:700; margin-bottom:2px; line-height:1.28; color: var(--ink); }
.banner-body .banner-loc{ font-size:.72rem; color: var(--ink-soft); margin-bottom:8px; }
.banner-pills{ margin-bottom:8px; }
.banner-pill{
  display:inline-block; font-size:.6rem; font-weight:700; padding:3px 9px;
  border-radius: 999px; margin: 0 4px 4px 0; background: var(--jade-pale); color: var(--jade);
}
.banner-list{ list-style:none; padding:0; margin:6px 0 10px; flex:1; }
.banner-list li{ font-size:.74rem; color: var(--ink-soft); padding:3px 0; display:flex; gap:6px; }
.banner-list li i{ color: var(--marigold-dk); font-size:.76rem; margin-top:2px; }
.banner-callout{
  background: var(--jade-pale); border-radius: var(--radius-sm); padding: 7px 10px;
  font-size:.68rem; color: var(--jade); margin-bottom:12px; display:flex; align-items:center; gap:6px;
}
.banner-callout i{ color: var(--marigold-dk); }
.banner-btn{
  display:block; text-align:center; width:100%; border:none; border-radius:8px;
  background: var(--jade); color:#fff !important; font-weight:600; font-size:.78rem;
  padding: 9px; text-decoration:none; transition: all .2s ease;
}
.banner-btn:hover{ background: var(--marigold-dk); color:#fff; }

/* ============================================================
   UNI-BANNER — full-width horizontal university card, used
   inside a carousel (Philippines: 5, Uzbekistan: 3) or standalone
   (Timor-Leste: 1, arrows auto-hide when there's only one slide)
   ============================================================ */
.uni-carousel{ position:relative; padding: 0 26px; }
.uni-viewport{ overflow:hidden; width:100%; }
.uni-track{ display:flex; will-change:transform; backface-visibility:hidden; transition: transform .55s cubic-bezier(.65,0,.35,1); }
.uni-slide{ flex-shrink:0; }

.uni-banner{
  display:flex; background:#fff; border-radius: var(--radius-lg); overflow:hidden;
  box-shadow: var(--shadow-soft); border:1px solid rgba(16,69,60,.07); min-height:230px;
}
.uni-banner-side{
  flex:0 0 210px; color:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:8px; padding:22px; text-align:center; position:relative;
}
.uni-banner-side .side-icon{ font-size:2.3rem; }
.uni-banner-side .side-est{ font-size:.72rem; opacity:.9; font-weight:600; letter-spacing:.03em; }
.side-ribbon{
  position:absolute; top:12px; left:50%; transform:translateX(-50%);
  background:rgba(255,255,255,.2); border:1px solid rgba(255,255,255,.45);
  font-size:.62rem; font-weight:800; padding:3px 12px; border-radius:999px;
  text-transform:uppercase; letter-spacing:.04em; white-space:nowrap;
}
.uni-banner-main{ flex:1; padding: 24px 30px; display:flex; flex-direction:column; justify-content:center; min-width:0; }
.uni-banner-main h4{ color:var(--jade); margin-bottom:2px; font-size:1.15rem; }
.uni-banner-main .loc{ font-size:.82rem; color:var(--ink-soft); margin-bottom:10px; }
.uni-banner-main .loc i{ color: var(--marigold-dk); }
.uni-banner-main .pills-row{ margin-bottom:6px; }
.uni-banner-main .pills-row .banner-pill{ margin-right:6px; font-size:.68rem; }
.uni-banner-main ul{ list-style:none; padding:0; margin:10px 0; display:flex; flex-wrap:wrap; gap: 5px 26px; }
.uni-banner-main ul li{ font-size:.84rem; color:var(--ink-soft); display:flex; gap:6px; align-items:flex-start; }
.uni-banner-main ul li i{ color:var(--marigold-dk); margin-top:3px; flex-shrink:0; }
.uni-banner-cta{ display:flex; align-items:center; gap:14px; margin-top:10px; flex-wrap:wrap; }
.uni-banner-cta .banner-btn{ width:auto; padding:10px 28px; }

.uni-nav-btn{
  position:absolute; top:50%; transform:translateY(-50%); z-index:5;
  width:44px; height:44px; border-radius:50%; background:#fff; border:1px solid rgba(16,69,60,.15);
  color:var(--jade); display:flex; align-items:center; justify-content:center; font-size:1.1rem;
  box-shadow:0 8px 20px rgba(16,69,60,.18); cursor:pointer; transition: all .25s ease;
}
.uni-nav-btn:hover{ background:var(--jade); color:#fff; transform: translateY(-50%) scale(1.08); }
.uni-nav-prev{ left:-8px; }
.uni-nav-next{ right:-8px; }
.uni-dots{ display:flex; justify-content:center; gap:6px; margin-top:16px; }
.uni-dot{ width:8px; height:8px; border-radius:50%; background:var(--jade-pale); cursor:pointer; transition: all .25s ease; }
.uni-dot.active{ background:var(--marigold); width:24px; border-radius:5px; }

@media (max-width: 991.98px){
  .uni-banner{ flex-direction:column; min-height:auto; }
  .uni-banner-side{ flex:0 0 auto; flex-direction:row; justify-content:center; padding:16px; gap:10px; }
  .uni-banner-side .side-icon{ font-size:1.6rem; }
  .side-ribbon{ position:static; transform:none; order:-1; }
  .uni-banner-main{ padding:20px 22px; }
}
@media (max-width: 575.98px){
  .uni-carousel{ padding: 0 8px; }
  .uni-nav-btn{ width:36px; height:36px; font-size:.9rem; }
  .uni-nav-prev{ left:-4px; } .uni-nav-next{ right:-4px; }
  .uni-banner-main h4{ font-size:1.12rem; }
  .uni-banner-main ul{ gap:4px 16px; }
  .uni-banner-main ul li{ font-size:.78rem; }
}

/* ---------- CTA section polish ---------- */
.cta-decor{ position:absolute; inset:0; overflow:hidden; pointer-events:none; }
.cta-orbit{ position:absolute; border:1.5px dashed rgba(34,18,4,.18); border-radius:50%; }
.cta-orbit-1{ width:340px; height:340px; top:-140px; right:-80px; animation: ctaSpin 40s linear infinite; }
.cta-orbit-2{ width:220px; height:220px; bottom:-100px; left:-60px; animation: ctaSpin 30s linear infinite reverse; }
@keyframes ctaSpin{ from{ transform:rotate(0deg);} to{ transform:rotate(360deg);} }
.cta-plane{
  position:absolute; top:22%; left:-8%; font-size:1.6rem; color:rgba(34,18,4,.25);
  animation: ctaFly 16s linear infinite;
}
@keyframes ctaFly{ from{ left:-8%; transform:rotate(8deg);} to{ left:108%; transform:rotate(8deg);} }

.cta-flash{
  display:inline-flex; align-items:center; gap:8px; background:#221204; color:#fff;
  font-size:.78rem; font-weight:700; padding:8px 18px; border-radius:999px;
}
.cta-flash i{ color: var(--gold); }

.cta-btn-dark{
  background:#221204; color:#fff; border-radius:999px; padding:14px 32px; font-weight:700; border:none;
  transition: all .25s ease;
}
.cta-btn-dark:hover{ background:#3a2308; color:#fff; transform: translateY(-2px); box-shadow:0 12px 26px rgba(0,0,0,.25); }
.cta-btn-outline{
  border:2px solid #221204; color:#221204; border-radius:999px; padding:12px 30px; font-weight:700; background:transparent;
  transition: all .25s ease;
}
.cta-btn-outline:hover{ background:#221204; color:#fff; }

.cta-stat-card{
  background: rgba(255,255,255,.55); backdrop-filter: blur(6px);
  border: 1px solid rgba(255,255,255,.6); border-radius: var(--radius-lg); padding: 26px;
}
.cta-stat-row{ display:flex; justify-content:space-between; gap:10px; text-align:center; margin-bottom:16px; }
.cta-stat .num{ font-family: var(--font-display); font-size:1.45rem; font-weight:700; color:#221204; }
.cta-stat .lbl{ font-size:.68rem; color:#221204; opacity:.75; text-transform:uppercase; letter-spacing:.03em; }
.cta-stat-note{ font-size:.78rem; color:#221204; opacity:.85; display:flex; align-items:center; gap:6px; border-top:1px solid rgba(34,18,4,.15); padding-top:14px; }
@media (max-width: 575.98px){
  .cta-stat-row{ flex-wrap:wrap; }
  .cta-stat{ flex:1 1 30%; }
}

/* ---------- Fixed social media dock ---------- */
.social-dock{
  position:fixed; left:0; top:50%; transform:translateY(-50%); z-index:250;
  display:flex; align-items:stretch;
}
.social-dock-icons{
  display:flex; flex-direction:column; border-radius:0 14px 14px 0; overflow:hidden;
  box-shadow: 0 10px 26px rgba(0,0,0,.18);
}
.social-dock-icons a{
  width:44px; height:44px; display:flex; align-items:center; justify-content:center;
  background: var(--jade); color:#fff; font-size:1.15rem;
  border-top:1px solid rgba(255,255,255,.12);
  transition: width .25s ease, background .25s ease;
}
.social-dock-icons a:first-child{ border-top:none; }
.social-dock-icons a:hover{ width:52px; background: var(--marigold); color:#221204; }
.social-dock-handle{
  display:none; width:26px; border:none; background: var(--marigold); color:#221204;
  align-items:center; justify-content:center; border-radius:0 10px 10px 0;
  box-shadow: 0 10px 26px rgba(0,0,0,.18); cursor:pointer; flex-shrink:0;
}
.social-dock-handle i{ transition: transform .35s ease; }

/* On tablet/mobile: dock now sits on the RIGHT edge (moved from left per
   feedback), sliding mostly off-screen with just the handle peeking — tap
   it to slide the icons fully into view, tap again (or wait) to slide back. */
@media (max-width: 991.98px){
  .social-dock{
    left:auto; right:0; flex-direction:row-reverse;
    transition: transform .4s ease; transform: translateY(-50%) translateX(44px);
  }
  .social-dock.open{ transform: translateY(-50%) translateX(0); }
  .social-dock-handle{ display:flex; border-radius:10px 0 0 10px; }
  .social-dock-icons{ border-radius:14px 0 0 14px; }
  .social-dock-handle i{ transform: rotate(180deg); }
  .social-dock.open .social-dock-handle i{ transform: rotate(0deg); }
  .social-dock-icons a{ width:40px; height:40px; font-size:1.02rem; }
}

.blog-tag-advisory{ background: rgba(16,69,60,.14); color: var(--jade); border: 1px solid rgba(16,69,60,.25); }
.blog-tag-update{ background: rgba(139,95,191,.15); color: #5B3A8C; }
.blog-tag-pg{ background: rgba(111,184,196,.28); color: #1E4E5A; }

/* ---------- Feed category filter tabs ---------- */
.feed-filter-tabs{ display:flex; gap:8px; margin-bottom:18px; flex-wrap:wrap; }
.feed-filter-tab{
  border:1.5px solid var(--jade-pale); background:#fff; color: var(--jade);
  font-size:.78rem; font-weight:700; padding:7px 16px; border-radius:999px;
  cursor:pointer; transition: all .2s ease;
}
.feed-filter-tab:hover{ border-color: var(--jade); }
.feed-filter-tab.active{ background: var(--jade); color:#fff; border-color: var(--jade); }
.blog-post.hide-by-filter{ display:none; }

/* ---------- Featured (most recent) post ---------- */
.blog-post.featured{
  border-left-width:0; border-radius: var(--radius-lg);
  background: linear-gradient(135deg, var(--jade) 0%, #1E6F5E 100%); color:#fff;
  box-shadow: 0 14px 32px rgba(16,69,60,.25); padding:26px;
}
.blog-post.featured .blog-post-date .day{ color:#fff; }
.blog-post.featured .blog-post-date .month{ color: rgba(255,255,255,.7); }
.blog-post.featured .blog-tag{ background: rgba(255,255,255,.22); color:#fff; border:none; }
.blog-post.featured h5{ color:#fff; }
.blog-post.featured p{ color: rgba(255,255,255,.85); }
.blog-post.featured .featured-label{
  display:inline-flex; align-items:center; gap:5px; font-size:.65rem; font-weight:800;
  text-transform:uppercase; letter-spacing:.05em; color: var(--gold); margin-bottom:6px;
}

.blog-feed-scroll{
  max-height: 620px; overflow-y: auto; padding-right: 10px; position: relative;
}
.blog-feed-scroll::-webkit-scrollbar{ width: 6px; }
.blog-feed-scroll::-webkit-scrollbar-thumb{ background: var(--jade-pale); border-radius: 10px; }
.blog-feed-scroll .blog-feed{ max-width: none; margin: 0; }
.split-col-label{ display:flex; align-items:center; gap:10px; margin-bottom:18px; }
.split-col-label i{ font-size:1.3rem; color: var(--marigold-dk); }
.split-col-label h4{ margin:0; color: var(--jade); }

/* ---------- Matcher search bar (full-width, single row) ---------- */
.matcher-bar{
  background:#fff; border-radius: var(--radius-lg); padding: 22px 26px;
  box-shadow: var(--shadow-soft); border: 1px solid rgba(16,69,60,.08);
  display:flex; flex-wrap:wrap; align-items:flex-end; gap:16px;
}
.matcher-bar .mb-field{ flex:1 1 200px; min-width:160px; }
.matcher-bar .mb-btn{ flex:0 0 auto; }
.matcher-bar .mb-btn .btn{ white-space:nowrap; padding:11px 28px; }
@media (max-width: 767.98px){
  .matcher-bar{ flex-direction:column; align-items:stretch; }
  .matcher-bar .mb-field, .matcher-bar .mb-btn{ flex:1 1 auto; width:100%; }
}

.matcher-results-panel{
  margin-top:18px; display:none;
}
.matcher-results-panel.show{ display:block; }
.matcher-results-panel .mrp-head{
  display:flex; align-items:center; gap:8px; margin-bottom:14px;
  font-size:.85rem; font-weight:700; color: var(--jade);
}

/* ---------- Full-width news grid (replaces the narrow scrolling list) ---------- */
.news-grid{
  display:grid; grid-template-columns: repeat(3, 1fr); gap:22px; align-items:start;
}
.news-grid .blog-post{
  flex-direction:column; gap:0; height:100%;
}
.news-grid .blog-post .blog-post-date{
  display:flex; align-items:baseline; gap:8px; width:auto; margin-bottom:12px; padding-top:0;
}
.news-grid .blog-post .blog-post-date .day{ font-size:1.3rem; }
.news-grid .blog-post.featured{
  grid-column: span 3;
}
.news-grid .blog-post.featured .blog-post-body{ display:flex; flex-direction:column; }
@media (min-width: 992px){
  .news-grid .blog-post.featured{ flex-direction:row; align-items:center; gap:24px; }
  .news-grid .blog-post.featured .blog-post-date{ flex:0 0 90px; margin-bottom:0; flex-direction:column; }
}
@media (max-width: 1199.98px) and (min-width: 768px){
  .news-grid{ grid-template-columns: repeat(2, 1fr); }
  .news-grid .blog-post.featured{ grid-column: span 2; }
}
@media (max-width: 767.98px){
  .news-grid{ grid-template-columns: 1fr; }
  .news-grid .blog-post.featured{ grid-column: span 1; }
}

/* ---------- Compact news list (built for high volume — 250-300+ posts) ---------- */
/* ---------- College-wise marks groups (Management/Government Quota cutoff posts) ----------
   Elegant card-per-college layout: a small search bar filters cards by college
   name or category (search-marks.js below), section dividers group Govt vs
   Self-Financing (or MBBS vs BDS), and each college is a soft-bordered card
   holding a light, thin-lined table — no thick navy borders. */
.mq-search-wrap{ position:relative; margin:4px 0 16px; }
.mq-search-wrap i{
  position:absolute; left:14px; top:50%; transform:translateY(-50%);
  color: var(--ink-soft); font-size:.85rem; pointer-events:none;
}
.mq-search-input{
  width:100%; padding:10px 14px 10px 36px; font-size:.85rem;
  border:1px solid rgba(16,69,60,.16); border-radius:999px;
  background:#fff; color: var(--ink); outline:none;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.mq-search-input:focus{
  border-color: var(--jade-light); box-shadow: 0 0 0 3px rgba(16,69,60,.08);
}
.mq-search-count{ font-size:.72rem; color: var(--ink-soft); margin:6px 2px 0; }

.mq-college-group{ margin-bottom:6px; }
.mq-section-divider{
  font-family: var(--font-display); font-weight:700; color: var(--jade); font-size:.9rem;
  background: var(--jade-pale); padding:7px 12px; border-radius: var(--radius-sm, 8px);
  margin:16px 0 10px;
}
.mq-college{
  margin-bottom:10px; background:#fff; border:1px solid rgba(16,69,60,.10);
  border-radius: var(--radius-sm, 10px); overflow:hidden;
}
.mq-college-name{
  font-weight:700; font-size:.8rem; color: var(--ink);
  padding:9px 12px; background: var(--blush); border-bottom:1px solid rgba(16,69,60,.08);
}
.mq-college table{
  width:100%; border-collapse:collapse; font-size:.78rem; background:#fff;
}
.mq-college thead tr{ background: transparent; }
.mq-college th{
  padding:6px 12px; text-align:left; font-weight:600; color: var(--ink-soft);
  border:none; border-bottom:1px solid rgba(16,69,60,.10); background:transparent;
}
.mq-college th:not(:first-child), .mq-college td:not(:first-child){ text-align:center; }
.mq-college td{
  padding:6px 12px; border:none; border-top:1px solid rgba(16,69,60,.06); color: var(--ink);
}
.mq-college tbody tr:nth-child(even) td{ background: rgba(16,69,60,.025); }
.mq-college td:last-child{ font-weight:700; color: var(--jade); }

.news-list{ background:#fff; border-radius: var(--radius-lg); box-shadow: var(--shadow-soft); border: 1px solid rgba(16,69,60,.06); overflow:hidden; }
.news-row{
  display:flex; align-items:flex-start; gap:18px; padding:18px 22px;
  border-bottom:1px solid rgba(16,69,60,.08); transition: background .2s ease;
}
.news-row:last-child{ border-bottom:none; }
.news-row:hover{ background: rgba(16,69,60,.025); }
.news-row.hidden-row{ display:none; }
.news-row-date{ flex:0 0 56px; text-align:center; padding-top:2px; }
.news-row-date .day{ font-family: var(--font-display); font-size:1.25rem; font-weight:700; color: var(--jade); line-height:1; }
.news-row-date .month{ font-size:.6rem; text-transform:uppercase; color: var(--ink-soft); font-weight:700; letter-spacing:.02em; }
.news-row-body{ flex:1; min-width:0; }
.news-row-body .tag-row{ display:flex; gap:8px; align-items:center; margin-bottom:5px; flex-wrap:wrap; }
.news-row-body h6{ margin:0 0 3px; color: var(--ink); font-size:.98rem; font-weight:700; line-height:1.35; }
.news-row-body p{ margin:0; font-size:.83rem; color: var(--ink-soft); line-height:1.5; }
.news-row-body a.news-source-link{ font-size:.78rem; font-weight:700; color: var(--jade); white-space:nowrap; }
.news-full-text{ display:none; margin-top:8px; padding-top:8px; border-top:1px dashed rgba(16,69,60,.15); }
.news-full-text.expanded{ display:block; }
.news-view-more{
  background:none; border:none; padding:0; margin-top:6px; display:inline-flex; align-items:center; gap:4px;
  font-size:.78rem; font-weight:700; color: var(--marigold-dk); cursor:pointer;
}
.news-view-more:hover{ text-decoration:underline; }
.news-view-more i{ transition: transform .25s ease; font-size:.7rem; }
.news-view-more.expanded i{ transform: rotate(180deg); }
.news-row.featured-row .news-view-more{ color: var(--gold); }
.news-row.featured-row .news-full-text{ border-top-color: rgba(255,255,255,.25); }

.news-row.featured-row{
  background: linear-gradient(120deg, var(--jade) 0%, #1E6F5E 100%); color:#fff;
  border-radius: var(--radius-md); margin:14px; border-bottom:none;
}
.news-row.featured-row .news-row-date .day{ color:#fff; }
.news-row.featured-row .news-row-date .month{ color: rgba(255,255,255,.7); }
.news-row.featured-row .news-row-body h6{ color:#fff; }
.news-row.featured-row .news-row-body p{ color: rgba(255,255,255,.85); }
.news-row.featured-row .blog-tag{ background: rgba(255,255,255,.22); color:#fff; border:none; }
.news-row.featured-row:hover{ background: linear-gradient(120deg, var(--jade) 0%, #1E6F5E 100%); }

.news-list-footer{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:14px 22px; background: var(--jade-pale);
}
.news-list-count{ font-size:.78rem; color: var(--ink-soft); font-weight:600; }
.news-load-more{
  background: var(--jade); color:#fff; border:none; font-size:.82rem; font-weight:700;
  padding:9px 22px; border-radius:999px; transition: all .2s ease;
}
.news-load-more:hover{ background: var(--marigold-dk); }
.news-load-more:disabled{ opacity:.4; cursor:default; }

/* ---------- Matcher results close button ---------- */
.matcher-results-panel{ position:relative; }
.mrp-close{
  position:absolute; top:14px; right:14px; background:none; border:none;
  font-size:1.4rem; line-height:1; color: var(--ink-soft); cursor:pointer; z-index:2;
}
.mrp-close:hover{ color: var(--jade); }
.mrp-head{ padding-right:30px; }

/* ---------- AI Chat widget ---------- */
.ai-chat-bubble{
  position:fixed; bottom:80px; right:24px; z-index:999;
  width:46px; height:46px; border-radius:50%;
  background: linear-gradient(135deg, var(--marigold) 0%, var(--gold) 100%);
  color: var(--jade); display:flex; align-items:center; justify-content:center;
  font-size:1.15rem; box-shadow:0 3px 12px rgba(217,119,6,.3); border:none; cursor:pointer;
  transition: transform .2s ease, opacity .2s ease, visibility 0s linear 0s;
}
.ai-chat-bubble:hover{ transform: scale(1.06); }
.ai-chat-bubble.hidden{
  opacity:0; transform:scale(.4); pointer-events:none; visibility:hidden;
  transition: opacity .2s ease, transform .2s ease, visibility 0s linear .2s;
}
.ai-chat-bubble .ai-badge{
  position:absolute; top:-2px; right:-2px; width:13px; height:13px; border-radius:50%;
  background: var(--gold); border:2px solid #fff;
}
@media (max-width: 575.98px){ .ai-chat-bubble{ bottom:15px; left:10px; width:40px; height:40px; font-size:15px; } }
/* Anchored with BOTH top and bottom (not a fixed height) so the browser
   computes the panel's height as whatever fits between them — this makes
   overlapping the navbar or overflowing the bottom of the screen impossible
   by construction, regardless of window size. */
.ai-chat-panel{
  position:fixed; top:130px; bottom:24px; right:24px; z-index:999;
  width:360px; max-width:calc(100vw - 32px);
  background:#fff; border-radius: var(--radius-lg); box-shadow:0 20px 50px rgba(0,0,0,.25);
  display:flex; flex-direction:column; overflow:hidden;
  visibility:hidden; opacity:0; transform:translateY(16px) scale(.97); pointer-events:none;
  transition: opacity .25s ease, transform .25s ease, visibility 0s linear .25s;
}
.ai-chat-panel.open{
  visibility:visible; opacity:1; transform:translateY(0) scale(1); pointer-events:auto;
  transition: opacity .25s ease, transform .25s ease, visibility 0s linear 0s;
}
/* Mobile: a contained bottom-sheet (not a near-fullscreen floating card) —
   fixed height capped at 65% of the viewport, full width, slides up from
   the bottom edge with rounded top corners only. */
@media (max-width: 575.98px){
  .ai-chat-panel{
    left:0; right:0; top:auto; bottom:0; width:100%; max-width:100%;
    height:min(560px, 65vh); border-radius: 20px 20px 0 0;
    transform:translateY(100%);
  }
  .ai-chat-panel.open{ transform:translateY(0); }
}

.ai-chat-header{
  background: linear-gradient(120deg, var(--jade), #1E6F5E); color:#fff;
  padding:14px 16px; display:flex; align-items:center; gap:10px;
}
.ai-chat-header .ai-avatar{ width:32px; height:32px; border-radius:50%; background:rgba(255,255,255,.2); display:flex; align-items:center; justify-content:center; }
.ai-chat-header .ai-title{ font-weight:700; font-size:.92rem; margin:0; }
.ai-chat-header .ai-subtitle{ font-size:.7rem; color:rgba(255,255,255,.75); margin:0; }
.ai-chat-header .ai-close{ margin-left:auto; background:none; border:none; color:#fff; font-size:1.2rem; cursor:pointer; opacity:.8; }
.ai-chat-header .ai-close:hover{ opacity:1; }

.ai-chat-messages{ flex:1; overflow-y:auto; padding:16px; display:flex; flex-direction:column; gap:12px; background: var(--blush); }
.ai-msg{ max-width:82%; padding:10px 14px; border-radius:14px; font-size:.85rem; line-height:1.5; }
.ai-msg.ai-msg-bot{ background:#fff; color: var(--ink); align-self:flex-start; border-bottom-left-radius:4px; box-shadow:0 2px 6px rgba(16,69,60,.08); }
.ai-msg.ai-msg-user{ background: var(--jade); color:#fff; align-self:flex-end; border-bottom-right-radius:4px; }
.ai-msg.ai-msg-error{ background:#fde8e8; color:#a33; align-self:flex-start; }
.ai-typing{ display:flex; gap:4px; align-self:flex-start; padding:12px 14px; }
.ai-typing span{ width:6px; height:6px; border-radius:50%; background: var(--jade-pale); animation: aiTypingBounce 1.2s infinite; }
.ai-typing span:nth-child(2){ animation-delay:.15s; background:#9fc2ba; }
.ai-typing span:nth-child(3){ animation-delay:.3s; background: var(--jade); }
@keyframes aiTypingBounce{ 0%,60%,100%{ transform:translateY(0); opacity:.5; } 30%{ transform:translateY(-5px); opacity:1; } }

.ai-chat-suggestions{ display:flex; flex-wrap:wrap; gap:6px; padding:0 16px 12px; }
.ai-chat-suggestions button{
  background:#fff; border:1px solid rgba(16,69,60,.2); color: var(--jade);
  font-size:.72rem; padding:6px 12px; border-radius:999px; cursor:pointer; transition: all .2s ease;
}
.ai-chat-suggestions button:hover{ background: var(--jade); color:#fff; }

.ai-chat-input-row{ display:flex; gap:8px; padding:12px; border-top:1px solid rgba(16,69,60,.08); }
.ai-chat-input-row input{
  flex:1; border:1px solid #dfe3e2; border-radius:10px; padding:9px 12px; font-size:.85rem;
}
.ai-chat-input-row input:focus{ outline:none; border-color: var(--jade); box-shadow:0 0 0 3px rgba(16,69,60,.1); }
.ai-chat-input-row button{
  background: var(--marigold); color:#221204; border:none; border-radius:10px;
  width:40px; flex-shrink:0; font-size:1.1rem; cursor:pointer;
}
.ai-chat-input-row button:disabled{ opacity:.5; cursor:default; }

/* ---------- Delayed application popup ---------- */
.success-check{
  width:64px; height:64px; border-radius:50%; background: var(--jade-pale); color: var(--jade);
  display:flex; align-items:center; justify-content:center; font-size:1.8rem; margin:0 auto 16px;
}
.popup-overlay{
  position:fixed; inset:0; z-index:500; display:flex; align-items:center; justify-content:center;
  background: rgba(13,54,47,.55); backdrop-filter: blur(3px);
  opacity:0; pointer-events:none; transition: opacity .4s ease;
}
.popup-overlay.show{ opacity:1; pointer-events:auto; }
.popup-card{
  background:#fff; border-radius: var(--radius-lg); padding: 38px 34px 30px;
  max-width: 420px; width:90%; text-align:center; position:relative;
  box-shadow: 0 34px 70px rgba(0,0,0,.35);
  transform: translateY(18px) scale(.98); transition: transform .4s ease;
}
.popup-overlay.show .popup-card{ transform: translateY(0) scale(1); }
.popup-close{
  position:absolute; top:12px; right:14px; background:none; border:none;
  font-size:1.6rem; line-height:1; color: var(--ink-soft); cursor:pointer;
}
.popup-icon{
  width:64px; height:64px; border-radius:50%; background: var(--jade-pale); color: var(--jade);
  display:flex; align-items:center; justify-content:center; font-size:1.8rem; margin:0 auto 16px;
}

/* ---------- Step number color-cycling animation ---------- */
@keyframes stepColorCycle{
  0%   { background: var(--jade);       box-shadow:0 8px 20px rgba(16,69,60,.35); }
  33%  { background: var(--marigold-dk);box-shadow:0 8px 20px rgba(217,119,6,.35); }
  66%  { background: var(--sky);        box-shadow:0 8px 20px rgba(111,184,196,.4); }
  100% { background: var(--jade);       box-shadow:0 8px 20px rgba(16,69,60,.35); }
}
.step-number{ animation: stepColorCycle 7s ease-in-out infinite; }
.step-item:nth-child(1) .step-number{ animation-delay: 0s; }
.step-item:nth-child(2) .step-number{ animation-delay: .8s; }
.step-item:nth-child(3) .step-number{ animation-delay: 1.6s; }
.step-item:nth-child(4) .step-number{ animation-delay: 2.4s; }

/* ---------- Testimonials: non-ending horizontal marquee ---------- */
.marquee-wrap{ position:relative; overflow:hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.marquee-track{ display:flex; gap:22px; width:max-content; animation: marqueeScroll 42s linear infinite; }
.marquee-track:hover{ animation-play-state: paused; }
@keyframes marqueeScroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
.testimonial-card-mini{ min-width:320px; max-width:320px; }
@media (max-width: 575.98px){ .testimonial-card-mini{ min-width:270px; max-width:270px; } }

/* ---------- Reveal-on-scroll ---------- */
.reveal{ opacity:0; transform: translateY(28px); transition: opacity .7s ease, transform .7s ease; }
.reveal.in{ opacity:1; transform:none; }

/* ---------- Footer app-store / play-store badges ---------- */
.store-badge{
  display:flex; align-items:center; gap:10px; background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.16); border-radius: 10px; padding: 8px 14px;
  color:#fff; text-decoration:none; font-size:.72rem; line-height:1.3; transition: all .25s ease;
  width:fit-content;

}
.store-badge:hover{ background: rgba(255,255,255,.16); color:#fff; }
.store-badge i{ font-size:1.5rem; color: var(--gold); flex-shrink:0; }
.store-badge strong{ font-size:.88rem; }

/* ---------- Footer ---------- */
footer{ background: var(--ink); }
footer a{ color: rgba(255,255,255,.6); text-decoration:none; }
footer a:hover{ color:#fff; }


/* ---------- Spotlight: photo background + animated mini-spot cards ---------- */
.spotlight-card{ background-size: cover; background-position: center; }
.spotlight-card .spotlight-tint{
  position:absolute; inset:0; z-index:1;
  background: linear-gradient(135deg, rgba(13,54,47,.93) 0%, rgba(27,99,85,.85) 60%, rgba(30,110,94,.8) 100%);
}
.spotlight-card > .row{ position:relative; z-index:2; }

.mini-spot-photo{
  display:flex; gap:16px; align-items:flex-start;
  transition: transform .3s ease, box-shadow .3s ease;
}
.mini-spot-photo:hover{ transform: translateY(-5px); box-shadow: var(--shadow-hover); }
.mini-spot-thumb{
  width:66px; height:66px; border-radius:12px; overflow:hidden; flex-shrink:0;
  box-shadow: 0 4px 12px rgba(16,69,60,.2);
}
.mini-spot-thumb img{ width:100%; height:100%; object-fit:cover; transition: transform .5s ease; }
.mini-spot-photo:hover .mini-spot-thumb img{ transform: scale(1.18); }

.dropdown-toggle::after{ vertical-align:2px; }

/* ---------- Mobile nav: blurred backdrop behind the expanded menu ---------- */
body.mobile-nav-open{ overflow:hidden; }
.nav-backdrop{
  position:fixed; inset:0; z-index:1029; background:rgba(13,54,47,.55);
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  opacity:0; pointer-events:none; transition:opacity .3s ease;
}
body.mobile-nav-open .nav-backdrop{ opacity:1; pointer-events:auto; }
@media (min-width:992px){ .nav-backdrop{ display:none; } }

.dropdown-menu{
  border:none; border-radius:10px; box-shadow:0 8px 22px rgba(16,69,60,.16); padding:6px;
  margin-top:8px !important; opacity:0; transform:translateY(-8px); visibility:hidden;
  display:block; pointer-events:none;
  transition:opacity .22s ease, transform .22s ease, visibility 0s linear .22s;
}
.dropdown-menu.show{
  opacity:1; transform:translateY(0); visibility:visible; pointer-events:auto;
  transition:opacity .22s ease, transform .22s ease, visibility 0s linear 0s;
}
.dropdown-item{ border-radius:7px; padding:8px 14px; font-weight:500; font-size:.86rem; color:var(--jade); transition:all .15s ease; }
.dropdown-item:hover, .dropdown-item:focus{ background:var(--jade-pale); color:var(--jade); padding-left:18px; }
.dropdown-toggle::after{ vertical-align:2px; transition:transform .25s ease; }
.nav-item.dropdown:hover .dropdown-toggle::after{ transform:rotate(180deg); }

/* Desktop: open on hover, not just click — feels more premium */
@media (min-width:992px){
  .nav-item.dropdown:hover .dropdown-menu{
    opacity:1; transform:translateY(0); visibility:visible; pointer-events:auto;
    transition:opacity .22s ease, transform .22s ease, visibility 0s linear 0s;
  }
}

/* Mobile: dropdowns expand inline inside the collapsed menu, smoothly */
@media (max-width:991.98px){
  .dropdown-menu{
    position:static !important; transform:none !important; box-shadow:none;
    background:rgba(255,255,255,.06); opacity:1; visibility:visible; pointer-events:auto;
    max-height:0; overflow:hidden; padding:0;
    transition:max-height .35s ease, padding .35s ease;
  }
  .dropdown-menu.show{ max-height:400px; padding:8px; }
  .dropdown-item{ color:#fff; }
  .dropdown-item:hover, .dropdown-item:focus{ background:rgba(255,255,255,.1); color:#fff; }
  .dropdown-divider{ border-color:rgba(255,255,255,.15); }
}

.nav-link:focus, .nav-link:focus-visible,
.dropdown-toggle:focus, .dropdown-toggle:focus-visible{
  outline: none;
  box-shadow: 0 0 0 2px rgba(242,153,74,.5);
  border-radius: 6px;
}

/* Neet update page hero stamp styles */
.hero-announce{
  display:inline-flex; align-items:center; gap:10px; background:linear-gradient(120deg, var(--gold), var(--marigold));
  border:none; border-radius:999px; padding:9px 18px 9px 10px; margin-left:12px;
  box-shadow:0 6px 18px rgba(232,184,75,.4); cursor:pointer; transition:all .25s ease;
}
.hero-announce:hover{ transform:translateY(-2px); box-shadow:0 10px 24px rgba(232,184,75,.5); }
.hero-announce-icon{ width:26px; height:26px; border-radius:50%; background:#fff; color:var(--jade); display:flex; align-items:center; justify-content:center; font-size:.85rem; flex-shrink:0; }
.hero-announce-text{ font-size:.78rem; font-weight:800; color:#221204; white-space:nowrap; }
.hero-announce-arrow{ color:#221204; font-size:.85rem; }
@media (max-width:767.98px){
  .hero-announce{ display:inline-flex; margin:14px 0 0; padding:8px 14px 8px 8px; gap:8px; }
  .hero-announce-text{ font-size:.72rem; white-space:nowrap; }
  .hero-announce-arrow{ display:none; }
}

/* NEET Update page Mark and rank card styles */

.shift-card{
  max-width:720px; margin:0 auto; background:#fff; border-radius:var(--radius-lg);
  box-shadow:var(--shadow-soft); display:flex; align-items:center;
  padding:30px 20px; gap:10px;
}

.shift-side{ flex:1; text-align:center; padding:10px; }
.shift-year{ font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-soft); }
.shift-year-gold{ color:var(--marigold-dk); }
.shift-marks{ font-family:var(--font-display); font-size:2.6rem; font-weight:700; color:var(--jade); line-height:1.1; margin:6px 0 2px; }
.shift-marks-gold{ color:var(--marigold-dk); }
.shift-label{ font-size:.8rem; color:var(--ink-soft); }
.shift-side-highlight{ background:var(--blush-deep); border-radius:var(--radius-md); }
.shift-delta{
  flex-shrink:0; display:flex; flex-direction:column; align-items:center; justify-content:center;
  color:var(--gold); padding:0 8px;
}
.shift-delta-num{ font-family:var(--font-display); font-size:1.3rem; font-weight:700; }
.shift-delta-label{ font-size:.62rem; text-transform:uppercase; color:var(--ink-soft); font-weight:700; }
.shift-delta i{ font-size:1.2rem; margin-top:4px; color:var(--marigold); }
@media (max-width:575.98px){
  .shift-card{ flex-direction:column; }
  .shift-delta{ transform:rotate(90deg); padding:6px 0; }
}

/* Mobile layout: NEET update post rows (<=600px). The side-by-side
   date-column + text layout that works on desktop gets cramped on a
   narrow phone, so below 600px each post becomes its own stacked card:
   a small date/tag pill on top, then the headline, then the summary —
   full width, easy to scan, no squeezed columns. */
@media (max-width: 600px) {
  .news-list {
    background: transparent;
    border: none;
    box-shadow: none;
    overflow: visible;
  }

  .news-row {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    padding: 16px;
    margin: 0 0 12px;
    background: #fff;
    border: 1px solid rgba(16, 69, 60, .08);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-soft);
  }

  .news-row:last-child {
    margin-bottom: 0;
  }

  .news-row-date {
    flex: 0 0 auto;
    align-self: flex-start;
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
    text-align: left;
    padding: 4px 10px;
    background: var(--jade-pale);
    border-radius: 999px;
  }

  .news-row-date .day,
  .news-row-date .month {
    font-size: .7rem;
    line-height: 1;
    color: var(--jade);
  }

  .news-row-date .month {
    letter-spacing: .02em;
  }

  .news-row.featured-row .news-row-date {
    background: rgba(255, 255, 255, .18);
  }

  .news-row-body {
    width: 100%;
  }

  .news-row-body .tag-row {
    margin-bottom: 6px;
  }

  .news-row-body h6 {
    font-size: 1rem;
  }

  .news-row-body p {
    font-size: .85rem;
  }

  .news-row.featured-row {
    margin: 0 0 12px;
  }

  /* Any table embedded inside a post's expanded text (fee tables,
     cutoff-marks tables, timelines) — collapses to stacked cards
     instead of a wide grid, using the data-label values script.js
     copies from each table's own header row. No horizontal scroll,
     regardless of how many columns the table has. */
  .news-full-text {
    overflow-x: hidden;
  }

  .news-full-text table {
    display: block;
    width: 100% !important;
    min-width: 0 !important;
    border: none !important;
    background: transparent !important;
  }

  .news-full-text table thead {
    display: none;
  }

  .news-full-text table tbody {
    display: block;
  }

  .news-full-text table tr {
    display: block;
    margin-bottom: 8px;
    border: 1px solid rgba(16, 69, 60, .12) !important;
    border-radius: var(--radius-sm, 6px);
    overflow: hidden;
    background: #fff;
  }

  /* Section-divider rows (colspan across all columns) get no data-label,
     so they stay as a single centered banner line rather than a card row */
  .news-full-text table tr td[colspan] {
    display: block !important;
    text-align: center !important;
    padding: 8px 10px !important;
  }

  .news-full-text table td {
    display: flex !important;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    text-align: right !important;
    padding: 7px 10px !important;
    border: none !important;
    border-bottom: 1px solid rgba(16, 69, 60, .08) !important;
    font-size: .8rem;
  }

  .news-full-text table tr td:last-child {
    border-bottom: none !important;
  }

  .news-full-text table td[data-label]::before {
    content: attr(data-label);
    font-weight: 700;
    color: var(--ink-soft);
    text-align: left;
    margin-right: auto;
    padding-right: 10px;
  }

  .news-full-text table td[style*="text-align:center"] {
    justify-content: flex-end;
  }

  /* Override: college-marks cards (.mq-college) hold a small, fixed 3-column
     table (Category/Community, Opening, Closing) — the generic wide-table
     mobile rule above (stack every cell on its own line) is wrong for this:
     it turns one compact "BC  604  595" row into three separate stacked
     lines. Restore real table layout so each row stays one line, and keep
     the header visible instead of the data-label prefix trick. */
  .mq-college table {
    display: table !important;
  }

  .mq-college table thead {
    display: table-header-group !important;
  }

  .mq-college table tbody {
    display: table-row-group !important;
  }

  .mq-college table tr {
    display: table-row !important;
    border: none !important;
    background: transparent !important;
  }

  .mq-college table th,
  .mq-college table td {
    display: table-cell !important;
    padding: 6px 8px !important;
    font-size: .74rem;
    border: none !important;
    border-bottom: 1px solid rgba(16, 69, 60, .06) !important;
    text-align: center !important;
  }

  .mq-college table th:first-child,
  .mq-college table td:first-child {
    text-align: left !important;
    padding-left: 12px !important;
  }

  .mq-college table td:last-child {
    padding-right: 12px !important;
  }

  .mq-college table tr:last-child td {
    border-bottom: none !important;
  }

  .mq-college table td[data-label]::before {
    content: none !important;
  }

  .mq-college table td:last-child {
    color: var(--jade);
    font-weight: 700;
  }
}