/* Campus Updates — scoped layout for the CDM homepage */
.campus-updates {
  --cu-navy:#00222d;--cu-blue:#1e3a5f;--cu-gold:#d99a00;--cu-ivory:#f8f5ed;
  padding:clamp(42px,6vw,86px) clamp(16px,5vw,70px);
  color:var(--cu-navy);
  background:#fff;
}
.campus-updates [hidden]{display:none!important}
.campus-updates-container{max-width:1320px;margin:auto}
.campus-updates-heading,.campus-panel-heading{
  display:flex;justify-content:space-between;align-items:flex-end;gap:16px
}
.campus-updates-heading{margin-bottom:30px}
.campus-eyebrow{display:block;color:#94640b;font-size:11px;letter-spacing:.16em;font-weight:800;margin-bottom:8px}
.campus-updates-heading h2{margin:0;font-size:clamp(36px,4.3vw,62px);font-weight:900;line-height:1.07;color:var(--cu-navy)}
.campus-updates-heading p{color:#475569;font-size:clamp(14px,1.5vw,17px);margin-top:12px}
.campus-all-link,.campus-panel-heading a{
  font-size:13px;font-weight:800;color:var(--cu-blue);text-decoration:none;white-space:nowrap
}
.campus-all-link:hover,.campus-panel-heading a:hover{color:#9f710d}
.campus-updates-columns{display:grid;grid-template-columns:minmax(0,7fr) minmax(270px,3fr);gap:clamp(28px,3.5vw,54px);align-items:start}
.campus-news-panel,.campus-ann-panel{
  min-width:0;background:transparent;padding:0;
  border:0;border-radius:0;box-shadow:none
}
.campus-panel-heading{margin-bottom:16px}
.campus-panel-heading h3{margin:0;font-size:clamp(20px,2vw,26px);font-weight:850;color:var(--cu-navy)}
.campus-news-feature{margin-bottom:22px}
.campus-news-secondary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.campus-story{
  display:block;min-width:0;background:transparent;border:0;border-radius:0;
  text-decoration:none;color:var(--cu-navy)
}
a.campus-story:hover .campus-story-title,
a.campus-story:focus-visible .campus-story-title{color:#0b536e}
.campus-story-image{
  position:relative;display:flex;width:100%;height:155px;align-items:center;justify-content:center;
  overflow:hidden;border-radius:10px;background:linear-gradient(135deg,#1e3a5f,#91aabb)
}
.campus-story-featured .campus-story-image{height:clamp(210px,23vw,300px)}
.campus-story-more .campus-story-image{height:136px}
.campus-image-fallback{font-size:30px;color:rgba(255,255,255,.65);letter-spacing:.12em;font-weight:900}
.campus-story-image img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;
  transition:opacity .4s ease,transform .6s cubic-bezier(.2,.8,.2,1)
}
.campus-story-image img.is-ready{opacity:1}
.campus-story:hover .campus-story-image img{transform:scale(1.035)}
.campus-story-body{padding:0;margin-top:12px}
.campus-story-featured .campus-story-body{padding:0;margin-top:16px}
.campus-story-date,.campus-ann-date{color:#64748b;font-size:12px}
.campus-story-title{
  margin:6px 0 0;font-size:15px;font-weight:800;line-height:1.45;color:var(--cu-blue);transition:color .2s ease;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden
}
.campus-story-featured .campus-story-title{font-size:clamp(19px,2.1vw,25px)}
.campus-story-summary{
  margin-top:8px;color:#475569;line-height:1.55;font-size:14px;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden
}
.campus-more-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:22px 0 12px;font-size:14px;font-weight:800}
.campus-news-more-list{
  display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;
  scrollbar-width:thin;padding:4px 0 12px
}
.campus-story-more{flex:0 0 clamp(195px,24%,240px);scroll-snap-align:start}
.campus-text-button{
  border:0;background:transparent;color:#1d5080;font-size:13px;font-weight:800;
  cursor:pointer;padding:6px 2px;text-decoration:underline;text-underline-offset:4px
}
.campus-text-button:hover{color:#986300}
.campus-text-button:disabled{opacity:.5;cursor:wait}
/* Underline-free editorial actions. These overrides are scoped to News/Announcements;
   the standalone Events panel retains its previous controls. */
.campus-updates .campus-text-button{color:var(--cu-blue);text-decoration:none;transition:color .2s ease}
.campus-updates .campus-text-button:hover,
.campus-updates .campus-all-link:hover,
.campus-updates .campus-panel-heading a:hover{color:#0b536e;text-decoration:none}
.campus-updates .campus-all-link,
.campus-updates .campus-panel-heading a{transition:color .2s ease}
.campus-updates .campus-all-link span,
.campus-updates .campus-panel-heading a span,
.campus-updates .campus-text-button span{display:inline-block;transition:transform .2s ease}
.campus-updates .campus-all-link:hover span,
.campus-updates .campus-panel-heading a:hover span,
.campus-updates .campus-text-button:not(:disabled):hover span{transform:translateX(3px)}
.campus-ann-panel{
  display:flex;flex-direction:column;
  padding-left:clamp(22px,3vw,42px);
  border-left:1px solid #e5e7eb
}
.campus-ann-list{
  display:flex;flex-direction:column;gap:0;
  max-height:610px;overflow-y:auto;overscroll-behavior:contain;
  padding:0 5px 6px 0;scrollbar-width:thin
}
.campus-ann-item{
  display:block;padding:18px 0;background:transparent;
  border:0;border-bottom:1px solid #e5e7eb;border-radius:0;
  text-decoration:none;color:var(--cu-navy)
}
.campus-ann-item:first-child{padding-top:0}
.campus-ann-item:last-child{border-bottom:0}
a.campus-ann-item:hover .campus-ann-title,
a.campus-ann-item:focus-visible .campus-ann-title{color:#0b536e}
.campus-ann-title{color:var(--cu-blue);font-size:14px;font-weight:800;margin-bottom:7px;line-height:1.5;transition:color .2s ease}
.campus-ann-more{align-self:flex-start;margin-top:14px}
.campus-status{color:#7c3b23;font-size:13px;margin-top:10px}
.campus-status:empty{display:none}
.campus-status .campus-text-button{margin-left:8px}
.campus-news-placeholder,.campus-empty-message{
  width:100%;padding:24px 0;border-radius:0;background:transparent;
  color:#566373;font-size:14px;text-align:left
}
.campus-events-section{
  background:#faf8f2;border:1px solid #eae3d4;border-radius:18px;
  margin-top:24px;padding:clamp(20px,2.5vw,32px)
}
.campus-events-heading{margin-bottom:18px}
.campus-events-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.campus-event-card{
  position:relative;display:flex;align-items:center;gap:14px;min-width:0;
  background:#fff;border:1px solid #e9e0cf;border-radius:12px;padding:18px 15px;
  text-decoration:none;color:var(--cu-navy);
  transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s
}
a.campus-event-card:hover,a.campus-event-card:focus-visible{transform:translateY(-4px);box-shadow:0 10px 24px rgba(0,34,45,.1)}
.campus-event-datebox{
  display:flex;flex:0 0 63px;flex-direction:column;align-items:center;justify-content:center;
  background:var(--cu-ivory);border-radius:10px;padding:10px 6px;color:var(--cu-navy);
  border-top:3px solid var(--cu-gold)
}
.campus-event-day{font-size:28px;font-weight:900;line-height:1.1}
.campus-event-month{color:#846012;font-size:11px;letter-spacing:.08em;font-weight:900}
.campus-event-detail{min-width:0}
.campus-event-title{color:var(--cu-blue);font-size:15px;line-height:1.4;font-weight:850}
.campus-event-time{color:#64748b;font-size:12px;line-height:1.45;margin-top:7px}
.campus-event-ongoing{display:inline-block;margin-top:8px;color:#155a38;background:#dff6e8;font-size:11px;font-weight:800;padding:3px 9px;border-radius:99px}
.campus-event-arrow{margin-left:auto;color:#987017;font-size:20px;align-self:flex-start}
.campus-updates a:focus-visible,.campus-updates button:focus-visible{outline:2px solid var(--cu-navy);outline-offset:4px}
@media(max-width:1100px){
  .campus-updates-columns{grid-template-columns:minmax(0,1fr);gap:clamp(28px,5vw,52px)}
  .campus-ann-panel{padding-left:0;border-left:0;border-top:1px solid #e5e7eb;padding-top:clamp(24px,4vw,36px)}
  .campus-ann-list{max-height:360px}
  .campus-events-list{gap:12px}
}
@media(max-width:800px){
  .campus-events-list{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px}
  .campus-event-card{flex:0 0 min(80vw,340px);scroll-snap-align:start}
}
@media(max-width:600px){
  .campus-updates-heading{flex-direction:column;align-items:flex-start}
  .campus-panel-heading{align-items:flex-start;gap:10px}
  .campus-news-secondary{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px}
  .campus-story-small{flex:0 0 min(75vw,300px);scroll-snap-align:start}
  .campus-story-featured .campus-story-image{height:205px}
  .campus-updates-columns{gap:26px}
  .campus-events-section{padding:18px}
  .campus-events-heading{flex-wrap:wrap;align-items:center}
  .campus-ann-list{max-height:360px}
}
@media(prefers-reduced-motion:reduce){
  .campus-updates *, .campus-updates *::before,.campus-updates *::after{
    animation:none!important;transition:none!important;scroll-behavior:auto!important
  }
}

/* Premium homepage refinement — retain Campus Updates feed contract. */
.campus-updates .campus-updates-heading h2 {
  font-family:'Agatho', Georgia, serif;
  font-size:clamp(2rem,4vw,3.15rem);
  font-weight:700;
  letter-spacing:-.015em;
  text-wrap:balance;
}
.campus-updates .campus-story-title,
.campus-updates .campus-ann-title {
  line-height:1.45;
}
.campus-updates .campus-panel-heading h3 {
  font-family:'Nunito Sans', sans-serif;
  font-weight:800;
}

/* Events now stands immediately below MVV, outside .campus-updates.
   Repeat the formerly inherited variables and preserve existing feed IDs. */
.cdm-events-standalone {
  --cu-navy:#00222d;
  --cu-blue:#1e3a5f;
  --cu-gold:#d99a00;
  --cu-ivory:#f8f5ed;
  width:100%;
  margin:0;
  padding:clamp(3.5rem,6vw,6rem) clamp(1rem,5vw,4.375rem);
  border:0;
  border-radius:0;
  background:#ffffff;
  color:var(--cu-navy);
  scroll-margin-top:6.5rem;
}
.cdm-events-container {
  width:100%;
  max-width:1200px;
  margin:0 auto;
}
.cdm-events-standalone .campus-events-heading {
  margin-bottom:clamp(1.5rem,3vw,2.25rem);
}
.cdm-events-standalone .campus-events-heading h3 {
  margin:0;
  color:var(--cu-navy);
  font-family:'Agatho', Georgia, serif;
  font-size:clamp(2rem,3.4vw,3.15rem);
  font-weight:700;
  line-height:1.18;
  letter-spacing:-.015em;
  text-wrap:balance;
}
.cdm-events-standalone .campus-event-card {
  min-height:135px;
  border-color:#e4e4dc;
  border-radius:12px;
  box-shadow:0 7px 20px rgba(0,34,45,.05);
}
.cdm-events-standalone [hidden] { display:none!important; }
.cdm-events-standalone a:focus-visible,
.cdm-events-standalone button:focus-visible {
  outline:3px solid #d99a00;
  outline-offset:3px;
}
@media (max-width:600px) {
  .cdm-events-standalone .campus-events-heading {
    gap:1rem;
  }
  .cdm-events-standalone .campus-events-heading h3 {
    font-size:clamp(2rem,8vw,2.6rem);
  }
}
@media (prefers-reduced-motion:reduce) {
  .cdm-events-standalone *,
  .cdm-events-standalone *::before,
  .cdm-events-standalone *::after {
    animation:none!important;
    transition:none!important;
    scroll-behavior:auto!important;
  }
}
