:root {
  --cmu-maroon:#7a1738;
  --cmu-deep-maroon:#54152c;
  --cmu-burgundy:#65162f;
  --cmu-gold:#f6d63a;
  --cmu-orange:#df4d28;
  --cmu-warm-orange:#ef7a34;
  --cmu-cream:#f7f3ec;
  --cmu-sand:#eee7db;
  --cmu-charcoal:#27282d;
  --cmu-ink:#17171a;
  --cmu-muted:#67676e;
  --cmu-white:#fff;
  --cmu-max:1440px;
  --cmu-page-gutter:clamp(24px,3.5vw,58px);
  --cmu-header-height:92px;
  --cmu-shadow:0 20px 60px rgba(30,14,20,.12);
}

/* Layout Builder / theme reset for homepage blocks. */
.path-frontpage .layout-builder__section,
.path-frontpage .layout__region,
.path-frontpage .block-cmunordic-homepage { margin:0; padding:0; }
.path-frontpage .block-cmunordic-homepage > h2 { display:none; }
.path-frontpage .main-content__section,
.path-frontpage .main-content,
.path-frontpage .main-content__container { padding-top:0!important; margin-top:0!important; }

.cmu-shell {
  width:min(calc(100% - (var(--cmu-page-gutter) * 2)),var(--cmu-max));
  margin-inline:auto;
}
.cmu-kicker { margin:0 0 .65rem; font-size:.76rem; line-height:1.2; font-weight:900; letter-spacing:.15em; text-transform:uppercase; }
.cmu-kicker--maroon { color:var(--cmu-maroon); }
.cmu-btn { display:inline-flex; align-items:center; justify-content:center; min-height:50px; padding:.82rem 1.28rem; border-radius:2px; font-weight:850; text-decoration:none!important; transition:transform .2s ease,box-shadow .2s ease,background .2s ease,color .2s ease; }
.cmu-btn--gold { background:var(--cmu-gold); color:var(--cmu-deep-maroon)!important; }
.cmu-btn--gold:hover,.cmu-btn--gold:focus { transform:translateY(-2px); box-shadow:0 12px 28px rgba(0,0,0,.2); background:#ffe35c; }
.cmu-btn--ghost { color:#fff!important; border:1px solid rgba(255,255,255,.86); margin-left:.55rem; background:rgba(0,0,0,.12); }
.cmu-btn--ghost:hover,.cmu-btn--ghost:focus { background:#fff; color:var(--cmu-deep-maroon)!important; }

/* HERO — one viewport below the measured site header on desktop. */
.cmu-hero {
  position:relative;
  height:calc(100svh - var(--cmu-header-height));
  min-height:700px;
  max-height:1040px;
  overflow:hidden;
  background:#111;
  color:#fff;
  isolation:isolate;
}
.cmu-hero__slides,.cmu-hero__slide,.cmu-hero__slide img { position:absolute; inset:0; width:100%; height:100%; }
.cmu-hero__slide { opacity:0; transition:opacity .85s ease; }
.cmu-hero__slide.is-active { opacity:1; }
.cmu-hero__slide img { object-fit:cover; object-position:center 46%; transform:scale(1.008); }
.cmu-hero__shade {
  position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(90deg,rgba(36,7,18,.60) 0%,rgba(36,7,18,.40) 30%,rgba(36,7,18,.12) 66%,rgba(36,7,18,.02) 100%),
    linear-gradient(0deg,rgba(25,6,13,.24),transparent 45%);
}
.cmu-hero__content { position:relative; z-index:2; height:100%; display:flex; align-items:flex-end; padding-block:88px 92px; }
.cmu-hero__copy { width:min(760px,58vw); text-shadow:0 2px 18px rgba(20,5,12,.30); }
.cmu-hero h1 { color:#fff; margin:.15rem 0 1rem; font-size:clamp(3.25rem,5.75vw,6.25rem); line-height:.90; letter-spacing:-.045em; text-transform:uppercase; text-wrap:balance; }
.cmu-hero__lead { max-width:660px; margin:0; font-size:clamp(1rem,1.25vw,1.22rem); line-height:1.55; color:#fff; text-shadow:0 2px 10px rgba(20,5,12,.40); }
.cmu-hero__actions { margin-top:1.35rem; }
.cmu-hero__controls { position:absolute; z-index:3; bottom:26px; right:max(var(--cmu-page-gutter),calc((100vw - var(--cmu-max))/2)); display:flex; align-items:center; gap:9px; }
.cmu-hero__controls button { display:grid; place-items:center; width:40px; height:40px; padding:0; border-radius:50%; border:1px solid rgba(255,255,255,.62); background:rgba(0,0,0,.22); color:#fff; font-size:1.45rem; line-height:1; cursor:pointer; }
.cmu-hero__dots { display:flex; gap:7px; align-items:center; }
.cmu-hero__dot { width:8px!important; height:8px!important; min-width:8px; padding:0!important; border:0!important; border-radius:50%!important; background:rgba(255,255,255,.48)!important; }
.cmu-hero__dot.is-active { background:var(--cmu-gold)!important; transform:scale(1.35); }
.cmu-hero__identity { position:absolute; z-index:3; top:22px; right:max(var(--cmu-page-gutter),calc((100vw - var(--cmu-max))/2)); display:flex; align-items:center; gap:11px; padding:8px 11px; background:rgba(35,9,18,.48); backdrop-filter:blur(8px); font-size:.68rem; font-weight:850; letter-spacing:.07em; text-transform:uppercase; }
.cmu-hero__identity-sep { width:1px; height:17px; background:rgba(255,255,255,.4); }

/* STORY */
.cmu-story { padding:clamp(72px,8vw,118px) 0; background:#fff; color:var(--cmu-ink); }
.cmu-section-heading { max-width:980px; }
.cmu-section-heading--split { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(320px,.72fr); gap:clamp(36px,6vw,90px); align-items:end; max-width:none; }
.cmu-section-heading h2 { margin:.15rem 0 .4rem; font-size:clamp(2.55rem,4.7vw,4.9rem); line-height:.96; letter-spacing:-.045em; color:var(--cmu-deep-maroon); }
.cmu-section-heading > p,.cmu-section-heading--split > p { margin:0; font-size:1.08rem; line-height:1.68; color:var(--cmu-muted); }
.cmu-achievements { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin:52px 0 66px; background:#ded8ce; border:1px solid #ded8ce; }
.cmu-achievements article { padding:31px 24px 32px; min-height:152px; background:var(--cmu-cream); }
.cmu-achievements strong { display:block; color:var(--cmu-maroon); font-size:clamp(1.85rem,3vw,3.35rem); line-height:.96; letter-spacing:-.035em; }
.cmu-achievements span { display:block; margin-top:.72rem; line-height:1.38; font-weight:700; }
.cmu-story-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.cmu-story-card { overflow:hidden; color:#fff; min-height:520px; position:relative; background:var(--cmu-deep-maroon); box-shadow:var(--cmu-shadow); }
.cmu-story-card__image { height:300px; overflow:hidden; }
.cmu-story-card img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.cmu-story-card:hover img { transform:scale(1.025); }
.cmu-story-card > div:last-child { padding:27px 28px 31px; }
.cmu-story-card h3 { color:#fff; font-size:1.68rem; margin:.2rem 0 .65rem; }
.cmu-story-card p:last-child { color:rgba(255,255,255,.86); line-height:1.6; margin-bottom:0; }
.cmu-story-card:nth-child(2) { background:var(--cmu-orange); }
.cmu-story-card:nth-child(3) { background:var(--cmu-charcoal); }
.cmu-affiliation { margin-top:66px; padding:32px 34px; display:grid; grid-template-columns:135px 1fr auto; gap:28px; align-items:center; background:var(--cmu-cream); border-left:7px solid var(--cmu-gold); }
.cmu-affiliation__mark { height:88px; display:flex; align-items:center; justify-content:center; border:1px dashed #a9a39c; color:var(--cmu-maroon); font-weight:900; letter-spacing:.08em; background:#fff; }
.cmu-affiliation h3 { margin:.2rem 0 .45rem; color:var(--cmu-deep-maroon); font-size:1.52rem; }
.cmu-affiliation p { margin-bottom:0; line-height:1.55; }
.cmu-text-link { font-weight:850; color:var(--cmu-maroon)!important; white-space:nowrap; }

/* PHOTOGRAPHIC CULTURE BREAK */
.cmu-culture-feature { position:relative; min-height:560px; display:flex; align-items:flex-end; overflow:hidden; color:#fff; background:var(--cmu-charcoal); }
.cmu-culture-feature > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 55%; }
.cmu-culture-feature__shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(41,8,20,.82),rgba(41,8,20,.46) 44%,rgba(41,8,20,.06) 78%),linear-gradient(0deg,rgba(20,10,12,.46),transparent 55%); }
.cmu-culture-feature__content { position:relative; z-index:2; padding-block:88px; }
.cmu-culture-feature h2 { color:#fff; max-width:720px; font-size:clamp(2.6rem,5vw,5rem); line-height:.96; letter-spacing:-.045em; margin:.1rem 0 1rem; }
.cmu-culture-feature p:not(.cmu-kicker) { max-width:650px; font-size:1.08rem; line-height:1.7; color:rgba(255,255,255,.90); }
.cmu-culture-feature .cmu-btn { margin-top:.6rem; margin-left:0; }

/* SUPPORT CTA */
.cmu-support-band { background:var(--cmu-deep-maroon); color:#fff; position:relative; overflow:hidden; }
.cmu-support-band::after { content:""; position:absolute; width:420px; height:420px; border-radius:50%; right:-170px; top:-230px; background:var(--cmu-orange); opacity:.95; }
.cmu-support-band::before { content:""; position:absolute; width:260px; height:460px; right:-45px; bottom:-285px; background:var(--cmu-gold); transform:rotate(28deg); transform-origin:center; }
.cmu-support-band__grid { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,.8fr); gap:clamp(50px,8vw,120px); padding-block:clamp(70px,8vw,108px); align-items:center; }
.cmu-support-band h2 { color:#fff; font-size:clamp(2.7rem,5vw,5.2rem); line-height:.94; letter-spacing:-.045em; margin:.1rem 0 0; }
.cmu-support-band p { color:rgba(255,255,255,.88); font-size:1.08rem; line-height:1.72; }
.cmu-support-band .cmu-btn { margin-top:.65rem; }

/* SUPPORTERS */
.cmu-supporters-section { padding:clamp(72px,8vw,110px) 0; background:var(--cmu-cream); }
.cmu-section-heading--supporters { max-width:850px; margin-bottom:40px; }
.cmu-section-heading--supporters h2 { font-size:clamp(2.35rem,4.2vw,4.25rem); }
.cmu-supporters__grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.cmu-supporter { display:flex; justify-content:space-between; align-items:center; gap:18px; min-height:86px; padding:20px 21px; color:var(--cmu-deep-maroon)!important; border:1px solid #ded6ca; background:#fff; font-size:1rem; font-weight:850; text-decoration:none!important; transition:.2s ease; }
.cmu-supporter:hover,.cmu-supporter:focus { transform:translateY(-2px); border-color:var(--cmu-gold); box-shadow:0 10px 25px rgba(45,24,30,.09); }
.cmu-supporter span:last-child { color:var(--cmu-orange); font-size:1.2rem; }
.cmu-supporters__note { max-width:800px; font-size:.82rem; color:var(--cmu-muted); margin:18px 0 0; }

/* Existing Drupal Views — News, Events and Photos. */
.path-frontpage .block-views { padding:clamp(66px,7vw,102px) 0; background:#fff; }
.path-frontpage .block-views:nth-of-type(even) { background:var(--cmu-cream); }
.path-frontpage .block-views > h2,
.path-frontpage .block-views .view-header,
.path-frontpage .block-views .view-content,
.path-frontpage .block-views .more-link,
.path-frontpage .block-views .pager {
  width:min(calc(100% - (var(--cmu-page-gutter) * 2)),var(--cmu-max));
  margin-inline:auto;
}
.path-frontpage .block-views > h2 { margin-bottom:32px; color:var(--cmu-deep-maroon); font-size:clamp(2.2rem,4vw,4.1rem); line-height:1; letter-spacing:-.035em; }
.path-frontpage .block-views .views-row { border-color:#e6dfd4; }
.path-frontpage .block-views .more-link { margin-top:30px; text-align:left; }
.path-frontpage .block-views .more-link a { display:inline-flex; min-height:44px; align-items:center; background:var(--cmu-deep-maroon); color:#fff!important; padding:.68rem 1rem; text-decoration:none; font-weight:800; }

@media (max-width:1100px) {
  .cmu-section-heading--split { grid-template-columns:1fr; gap:14px; }
  .cmu-achievements { grid-template-columns:repeat(2,1fr); }
  .cmu-story-grid { grid-template-columns:1fr 1fr; }
  .cmu-story-card:nth-child(3) { grid-column:1 / -1; }
  .cmu-supporters__grid { grid-template-columns:repeat(2,1fr); }
}

@media (max-width:767px) {
  :root { --cmu-page-gutter:18px; }
  .cmu-hero { height:auto; min-height:690px; max-height:none; }
  .cmu-hero__content { min-height:690px; padding-block:86px 88px; }
  .cmu-hero__copy { width:100%; max-width:620px; }
  .cmu-hero h1 { font-size:clamp(3rem,15vw,5.2rem); }
  .cmu-hero__lead { font-size:1rem; }
  .cmu-hero__identity { top:16px; right:18px; font-size:.60rem; }
  .cmu-hero__controls { right:18px; bottom:18px; }
  .cmu-btn--ghost { margin-left:0; margin-top:.55rem; }
  .cmu-achievements { grid-template-columns:1fr; margin-block:38px 50px; }
  .cmu-achievements article { min-height:0; }
  .cmu-story-grid { grid-template-columns:1fr; }
  .cmu-story-card:nth-child(3) { grid-column:auto; }
  .cmu-story-card { min-height:0; }
  .cmu-affiliation { grid-template-columns:1fr; padding:26px; }
  .cmu-affiliation__mark { max-width:170px; }
  .cmu-affiliation .cmu-text-link { grid-column:auto; }
  .cmu-culture-feature { min-height:600px; }
  .cmu-culture-feature__content { padding-block:68px; }
  .cmu-support-band__grid { grid-template-columns:1fr; gap:28px; }
  .cmu-supporters__grid { grid-template-columns:1fr; }
}

@media (prefers-reduced-motion:reduce) {
  .cmu-hero__slide,.cmu-story-card img,.cmu-btn,.cmu-supporter { transition:none!important; }
}


/* ==========================================================
   V7 VISUAL REFINEMENTS
   ========================================================== */
/* Brighter photography while retaining a localized text scrim. */
.cmu-hero__shade {
  background:
    linear-gradient(90deg,rgba(31,8,18,.68) 0%,rgba(31,8,18,.47) 28%,rgba(31,8,18,.18) 52%,rgba(31,8,18,.03) 78%),
    linear-gradient(0deg,rgba(15,10,12,.22) 0%,rgba(15,10,12,0) 40%)!important;
}
.cmu-hero__slide img { filter:saturate(1.035) contrast(1.015) brightness(1.045); }
.cmu-hero__content { width:100%; }
.cmu-hero__copy { max-width:650px; }
.cmu-hero h1 { max-width:650px; }

/* Let the year-round image remain photographic rather than nearly black. */
.cmu-culture-feature__shade {
  background:linear-gradient(90deg,rgba(42,10,23,.78) 0%,rgba(42,10,23,.56) 36%,rgba(22,20,22,.20) 70%,rgba(22,20,22,.10) 100%)!important;
}

/* Footer proportions brought into the same system as the homepage. */
.path-frontpage .footer,
.path-frontpage .footer-bottom { border-color:rgba(255,255,255,.16)!important; }
.path-frontpage .footer .container,
.path-frontpage .footer .container-fluid,
.path-frontpage .footer-bottom .container,
.path-frontpage .footer-bottom .container-fluid {
  width:min(calc(100% - (var(--cmu-page-gutter) * 2)),var(--cmu-max))!important;
  max-width:var(--cmu-max)!important;
  margin-inline:auto!important;
}
.path-frontpage .footer { padding-top:58px!important; padding-bottom:34px!important; }
.path-frontpage .footer-bottom { padding-top:22px!important; padding-bottom:22px!important; }
.path-frontpage .footer h2,
.path-frontpage .footer h3 { color:#fff!important; }
.path-frontpage .footer p,
.path-frontpage .footer label,
.path-frontpage .footer li,
.path-frontpage .footer-bottom { line-height:1.55; }

@media (min-width:1500px) {
  .cmu-hero__copy { transform:translateX(-6px); }
}
@media (max-width:767px) {
  .cmu-hero__shade {
    background:linear-gradient(90deg,rgba(31,8,18,.70) 0%,rgba(31,8,18,.42) 68%,rgba(31,8,18,.14) 100%)!important;
  }
  .cmu-hero__slide img { filter:saturate(1.02) brightness(1.025); }
}

/* ==========================================================
   V8 refinements: hero alignment + school-year collage
   ========================================================== */
.cmu-hero > .cmu-shell.cmu-hero__content {
  width:min(100%, calc(var(--cmu-max) + (var(--cmu-page-gutter) * 2)))!important;
  max-width:none!important;
  margin-inline:auto!important;
  padding-left:var(--cmu-page-gutter)!important;
  padding-right:var(--cmu-page-gutter)!important;
  box-sizing:border-box!important;
}
.cmu-hero__copy { margin-left:0!important; }

.cmu-schoolyear {
  background:var(--cmu-cream);
  padding:clamp(72px,8vw,112px) 0;
  color:var(--cmu-ink);
}
.cmu-schoolyear__intro {
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(300px,.72fr);
  column-gap:clamp(36px,6vw,90px);
  align-items:end;
  margin-bottom:34px;
}
.cmu-schoolyear__intro .cmu-kicker { grid-column:1; }
.cmu-schoolyear__intro h2 {
  grid-column:1;
  margin:.1rem 0 0;
  color:var(--cmu-deep-maroon);
  font-size:clamp(2.55rem,4.6vw,4.8rem);
  line-height:.96;
  letter-spacing:-.045em;
  max-width:780px;
}
.cmu-schoolyear__intro > p:not(.cmu-kicker) {
  grid-column:2;
  grid-row:1 / span 2;
  margin:0 0 .7rem;
  color:var(--cmu-muted);
  font-size:1.06rem;
  line-height:1.7;
}
.cmu-schoolyear__intro > .cmu-text-link {
  grid-column:2;
  justify-self:start;
}
.cmu-schoolyear__collage {
  display:grid;
  grid-template-columns:1.18fr .86fr .86fr;
  grid-template-rows:310px 310px;
  gap:16px;
}
.cmu-collage-card {
  position:relative;
  overflow:hidden;
  margin:0;
  min-height:0;
  background:var(--cmu-charcoal);
  box-shadow:0 14px 34px rgba(32,18,23,.09);
}
.cmu-collage-card--tall { grid-row:1 / span 2; }
.cmu-collage-card--wide { grid-column:2 / span 2; }
.cmu-collage-card img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.cmu-collage-card--tall img { object-position:center 48%; }
.cmu-collage-card::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(0deg,rgba(15,9,12,.76) 0%,rgba(15,9,12,.18) 42%,transparent 66%);
  pointer-events:none;
}
.cmu-collage-card figcaption {
  position:absolute;
  z-index:2;
  left:26px;
  right:26px;
  bottom:24px;
  color:#fff;
  text-shadow:0 2px 12px rgba(0,0,0,.35);
}
.cmu-collage-card figcaption strong,
.cmu-collage-card figcaption span { display:block; }
.cmu-collage-card figcaption strong { font-size:clamp(1.3rem,2vw,2rem); line-height:1.05; }
.cmu-collage-card figcaption span { margin-top:.35rem; font-size:1rem; line-height:1.35; color:rgba(255,255,255,.92); }

@media (max-width:900px) {
  .cmu-schoolyear__intro { grid-template-columns:1fr; }
  .cmu-schoolyear__intro .cmu-kicker,
  .cmu-schoolyear__intro h2,
  .cmu-schoolyear__intro > p:not(.cmu-kicker),
  .cmu-schoolyear__intro > .cmu-text-link { grid-column:1; grid-row:auto; }
  .cmu-schoolyear__intro > p:not(.cmu-kicker) { margin-top:1.1rem; }
  .cmu-schoolyear__collage { grid-template-columns:1fr 1fr; grid-template-rows:360px 260px 300px; }
  .cmu-collage-card--tall { grid-row:1 / span 2; }
  .cmu-collage-card--wide { grid-column:1 / span 2; }
}
@media (max-width:620px) {
  .cmu-hero > .cmu-shell.cmu-hero__content { padding-left:20px!important; padding-right:20px!important; }
  .cmu-schoolyear__collage { display:block; }
  .cmu-collage-card { height:300px; margin-bottom:14px; }
  .cmu-collage-card--tall { height:420px; }
}
