/* Institutional Announcement & Communication System — ribbon (every
   page), homepage hero + countdown, and the /announcements/ archive.
   Deliberately restrained on colour (gold + navy + crimson only, from
   the existing brand palette) rather than a rainbow of category chips —
   several bright hues read as decorative/AI-generated rather than
   institutional. Every empty state defined here is real, load-bearing
   markup already present server-side (see scripts/build.js and
   pages/home.html) — js/announcements.js only replaces it when the API
   returns real published content; a visitor with JS blocked or the API
   unreachable still sees a deliberate, legible message, never a blank
   box or a loading spinner. */

/* ---------- Ribbon (site-wide, between header and page content) ---------- */
.ann-ribbon{
  background:var(--navy-deep);border-bottom:1px solid rgba(198,161,91,0.25);
  position:relative;z-index:5;
}
.ann-ribbon-inner{
  display:flex;align-items:center;gap:18px;padding:9px 0;
}
.ann-ribbon-tag{
  display:flex;align-items:center;gap:6px;flex-shrink:0;
  font-family:'Cinzel','Amiri',serif;font-size:0.64rem;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--gold-bright);border-inline-end:1px solid rgba(198,161,91,0.28);padding-inline-end:16px;
}
.ann-ribbon-tag svg{color:var(--gold);flex-shrink:0;}
.ann-ribbon-track{
  flex:1;min-width:0;display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x proximity;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;
}
.ann-ribbon-track::-webkit-scrollbar{display:none;}
.ann-ribbon-empty{
  margin:0;font-family:'Cormorant Garamond','Amiri',serif;font-style:italic;font-size:0.92rem;
  color:rgba(247,238,223,0.55);white-space:nowrap;padding:2px 0;
}
.ann-item{
  flex:0 0 auto;scroll-snap-align:start;display:flex;align-items:center;gap:8px;
  padding:5px 14px;border:1px solid rgba(198,161,91,0.22);border-radius:99px;white-space:nowrap;
  font-family:'Inter','Cairo',sans-serif;font-size:0.74rem;color:var(--ivory);text-decoration:none;
  transition:border-color .2s ease,background .2s ease;
}
.ann-item:hover{border-color:var(--gold);background:rgba(198,161,91,0.08);}
.ann-item .ai-dot{width:6px;height:6px;border-radius:50%;background:var(--gold);flex-shrink:0;}
.ann-item.is-event .ai-dot{background:var(--crimson-bright,#B5495B);}
.ann-item .ai-cat{font-size:0.6rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--gold-bright);}
.ann-ribbon-viewall{
  flex-shrink:0;font-family:'Cinzel','Amiri',serif;font-size:0.64rem;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--gold);text-decoration:none;padding-inline-start:16px;border-inline-start:1px solid rgba(198,161,91,0.28);
  white-space:nowrap;transition:color .2s ease;
}
.ann-ribbon-viewall:hover{color:var(--gold-bright);}
@media (max-width:760px){
  .ann-ribbon-tag{display:none;}
  .ann-ribbon-viewall{padding-inline-start:10px;}
}

/* ---------- Homepage hero / flagship section ---------- */
.ann-hero .ann-hero-panel{
  margin-top:34px;background:linear-gradient(160deg,var(--navy) 0%,var(--navy-deep) 100%);
  border:1px solid rgba(198,161,91,0.3);border-radius:4px;overflow:hidden;position:relative;
}
.ann-hero-placeholder{
  padding:56px 40px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px;
}
.ann-hero-crest{
  width:56px;height:56px;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--gold);border-radius:50%;color:var(--gold);opacity:0.85;
}
.ann-hero-placeholder h3{
  font-family:'Cormorant Garamond','Amiri',serif;font-size:1.7rem;color:var(--ivory);margin:0;
}
.ann-hero-placeholder p{
  max-width:460px;color:rgba(247,238,223,0.72);font-size:0.98rem;line-height:1.6;margin:0;
}
.ann-hero-link{
  margin-top:6px;font-family:'Cinzel','Amiri',serif;font-size:0.68rem;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--gold-bright);text-decoration:none;border-bottom:1px solid rgba(198,161,91,0.4);padding-bottom:2px;
  transition:color .2s ease,border-color .2s ease;
}
.ann-hero-link:hover{color:#fff;border-color:var(--gold-bright);}

/* Populated state, rendered by js/announcements.js when a featured item exists */
.ann-hero-content{display:none;grid-template-columns:1.1fr 1fr;min-height:320px;}
.ann-hero-panel.has-content .ann-hero-content{display:grid;}
.ann-hero-panel.has-content .ann-hero-placeholder{display:none;}
.ann-hero-media{background:rgba(0,0,0,0.25);position:relative;min-height:220px;}
.ann-hero-media img{width:100%;height:100%;object-fit:cover;display:block;}
.ann-hero-media:empty::before{
  content:"";position:absolute;inset:0;
  background:repeating-linear-gradient(135deg,rgba(198,161,91,0.06) 0 2px,transparent 2px 14px);
}
.ann-hero-body{padding:40px 42px;display:flex;flex-direction:column;gap:14px;justify-content:center;}
.ann-hero-cat{
  align-self:flex-start;font-family:'Cinzel','Amiri',serif;font-size:0.62rem;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--navy-deep);background:linear-gradient(135deg,var(--gold) 0%,var(--gold-bright) 100%);
  padding:5px 14px;border-radius:99px;
}
.ann-hero-body h3{font-family:'Cormorant Garamond','Amiri',serif;font-size:2rem;color:var(--ivory);margin:0;line-height:1.2;}
.ann-hero-body p.ann-hero-summary{color:rgba(247,238,223,0.78);line-height:1.6;margin:0;}
.ann-hero-meta{display:flex;flex-wrap:wrap;gap:16px;margin-top:4px;}
.ann-hero-meta span{
  display:flex;align-items:center;gap:6px;font-size:0.82rem;color:rgba(247,238,223,0.65);
}
.ann-hero-meta svg{color:var(--gold);flex-shrink:0;}
.ann-hero-body .btn{align-self:flex-start;margin-top:8px;}

/* Countdown strip — always renders one of two states: a real countdown,
   or "No upcoming scheduled events." Never blank. */
.ann-countdown{
  border-top:1px solid rgba(198,161,91,0.22);padding:18px 42px;
  display:flex;align-items:center;justify-content:center;gap:28px;background:rgba(0,0,0,0.15);
}
.ann-countdown-empty{
  margin:0;font-family:'Cormorant Garamond','Amiri',serif;font-style:italic;font-size:0.98rem;
  color:rgba(247,238,223,0.55);
}
.ann-countdown-unit{display:flex;flex-direction:column;align-items:center;gap:2px;}
.ann-countdown-num{font-family:'Cinzel','Amiri',serif;font-size:1.6rem;color:var(--gold-bright);line-height:1;}
.ann-countdown-label{font-size:0.6rem;letter-spacing:0.1em;text-transform:uppercase;color:rgba(247,238,223,0.55);}
.ann-countdown-sep{color:rgba(198,161,91,0.35);font-size:1.3rem;}
@media (max-width:900px){
  .ann-hero-content{grid-template-columns:1fr;}
  .ann-hero-media{min-height:180px;}
  .ann-hero-body{padding:30px 26px;}
  .ann-countdown{padding:16px 22px;gap:16px;flex-wrap:wrap;}
}

/* ---------- Archive page (/announcements/) ---------- */
.ann-archive-filters{
  display:flex;flex-wrap:wrap;gap:10px;margin:28px 0 34px;
}
.ann-filter-btn{
  font-family:'Inter','Cairo',sans-serif;font-size:0.78rem;font-weight:600;color:var(--navy);
  background:var(--milk,#FCFAF6);border:1px solid var(--line);border-radius:99px;padding:8px 18px;
  cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease;
}
.ann-filter-btn:hover{border-color:var(--gold);}
.ann-filter-btn.is-active{background:var(--navy);border-color:var(--navy);color:var(--gold-bright);}
.ann-archive-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px;}
.ann-archive-card{
  border:1px solid var(--line);border-radius:4px;padding:24px;background:var(--milk,#FCFAF6);
  display:flex;flex-direction:column;gap:10px;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}
.ann-archive-card:hover{border-color:var(--gold);box-shadow:0 18px 40px -28px rgba(59,42,29,0.4);transform:translateY(-2px);}
.ann-archive-card .ann-hero-cat{color:var(--navy-deep);}
.ann-archive-card h4{font-family:'Cormorant Garamond','Amiri',serif;font-size:1.3rem;color:var(--navy);margin:2px 0 0;}
.ann-archive-card p{color:var(--ink-soft);font-size:0.92rem;line-height:1.55;margin:0;}
.ann-archive-card .ann-archive-meta{display:flex;flex-wrap:wrap;gap:12px;font-size:0.78rem;color:var(--ink-soft);}
.ann-archive-card .ann-archive-meta svg{color:var(--gold);}
.ann-archive-card.is-archived{opacity:0.72;}
.ann-archive-card .ann-archive-status{
  font-size:0.62rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-soft);
}
.ann-archive-empty{
  grid-column:1 / -1;text-align:center;padding:70px 20px;border:1px dashed var(--line);border-radius:4px;
}
.ann-archive-empty h4{font-family:'Cormorant Garamond','Amiri',serif;font-size:1.5rem;color:var(--navy);margin:0 0 10px;}
.ann-archive-empty p{color:var(--ink-soft);max-width:440px;margin:0 auto;}
