/* Campus Events --------------------------------------------------------- */
.page-id-342058 { overflow-x: clip; }
.cc-events-page { overflow: hidden; }
.cc-events-section { background: var(--cc-white); padding: var(--cc-section) 0; }
.cc-events-section--mist { background: var(--cc-mist); }
.cc-events-section--ice { background: var(--cc-ice); }
.cc-events-section--navy { background: var(--cc-navy); color: var(--cc-white); }
.cc-events-section--navy .cc-eyebrow { color: #7bbcff; }
.cc-events-section--navy .cc-h2 { color: var(--cc-white); }
.cc-events-head { display: grid; gap: clamp(32px,6vw,90px); grid-template-columns: 1fr 1fr; }
.cc-events-head > p { color: var(--cc-muted); font-size: 18px; line-height: 1.7; margin: 0; }
.cc-events-section--navy .cc-events-head > p { color: rgba(255,255,255,.68); }

.cc-events-hero { background: var(--cc-white); min-height: 760px; }
.cc-events-hero__grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(46%,1fr); margin-left: max(var(--cc-pad),(100vw - var(--cc-max))/2); min-height: 760px; width: calc(100% - max(var(--cc-pad),(100vw - var(--cc-max))/2)); }
.cc-events-hero__copy { align-self: center; max-width: 680px; padding: clamp(88px,10vw,145px) clamp(30px,4vw,66px) clamp(88px,10vw,145px) 0; }
.cc-events-hero__media { min-height: 760px; overflow: hidden; position: relative; }
.cc-events-hero__media::after { background: linear-gradient(90deg,rgba(255,255,255,.35),transparent 25%); content: ""; inset: 0; position: absolute; }
.cc-events-hero__media img { height: 100%; object-fit: cover; object-position: center; width: 100%; }

.cc-event-lifecycle { display: grid; grid-template-columns: repeat(4,1fr); margin-top: var(--cc-gap-visual); }
.cc-event-lifecycle__step { border-left: 1px solid rgba(255,255,255,.18); min-height: 170px; padding: 25px; position: relative; }
.cc-event-lifecycle__step:nth-child(n+5) { border-top: 1px solid rgba(255,255,255,.18); }
.cc-event-lifecycle__step:first-child { background: var(--cc-blue); border-left: 0; }
.cc-event-lifecycle__step small { color: #79baff; display: block; font-size: 11px; font-weight: 750; letter-spacing: .14em; margin-bottom: 42px; }
.cc-event-lifecycle__step:first-child small { color: rgba(255,255,255,.7); }
.cc-event-lifecycle__step strong { color: var(--cc-white); font-size: clamp(19px,1.8vw,25px); }
.cc-event-lifecycle__step:not(:last-child)::after { color: #79baff; content: "→"; position: absolute; right: 18px; top: 24px; }

.cc-event-plan { display: grid; gap: clamp(48px,7vw,100px); grid-template-columns: .9fr 1.1fr; margin-top: var(--cc-gap-visual); }
.cc-event-sheet { background: var(--cc-white); border-top: 4px solid var(--cc-blue); box-shadow: 0 24px 70px rgba(7,26,54,.09); padding: clamp(34px,5vw,62px); }
.cc-event-sheet__type { color: var(--cc-blue); font-size: 12px; font-weight: 780; letter-spacing: .15em; }
.cc-event-sheet h3 { color: var(--cc-navy); font-size: clamp(32px,4vw,52px); letter-spacing: -.04em; line-height: 1; margin: 30px 0 38px; }
.cc-event-sheet__meta { display: grid; gap: 0; grid-template-columns: 1fr 1fr; }
.cc-event-sheet__meta div { border-top: 1px solid var(--cc-line); padding: 19px 0; }
.cc-event-sheet__meta span { color: var(--cc-muted); display: block; font-size: 12px; margin-bottom: 6px; text-transform: uppercase; }
.cc-event-sheet__meta strong { color: var(--cc-navy); font-size: 17px; }
.cc-event-fields { border-top: 1px solid var(--cc-line); }
.cc-event-fields div { align-items: center; border-bottom: 1px solid var(--cc-line); display: grid; grid-template-columns: 44px 1fr; padding: 22px 0; }
.cc-event-fields b { color: var(--cc-blue); font-size: 12px; }
.cc-event-fields span { color: var(--cc-navy); font-size: 18px; font-weight: 650; }

.cc-approval-flow { align-items: stretch; display: grid; grid-template-columns: repeat(4,1fr); margin-top: var(--cc-gap-visual); }
.cc-approval-flow__step { border-top: 2px solid var(--cc-blue); color: var(--cc-navy); font-size: clamp(18px,2vw,25px); font-weight: 720; min-height: 130px; padding: 28px 20px; position: relative; }
.cc-approval-flow__step:not(:last-child)::after { color: var(--cc-blue); content: "→"; position: absolute; right: -7px; top: 29px; z-index: 2; }
.cc-approval-flow__step:last-child { background: var(--cc-blue); color: var(--cc-white); padding-inline: 28px; }
.cc-concept-note { color: var(--cc-muted); font-size: 13px; line-height: 1.6; margin: 28px 0 0; }

.cc-attendance { display: grid; gap: clamp(44px,7vw,100px); grid-template-columns: .95fr 1.05fr; margin-top: var(--cc-gap-visual); }
.cc-attendance-card { background: var(--cc-navy); color: var(--cc-white); padding: clamp(34px,5vw,60px); }
.cc-attendance-card small { color: #79baff; font-weight: 750; letter-spacing: .13em; }
.cc-attendance-card h3 { color: var(--cc-white); font-size: clamp(29px,3.4vw,46px); margin: 28px 0 40px; }
.cc-attendance-stats { display: grid; grid-template-columns: repeat(3,1fr); }
.cc-attendance-stats div { border-left: 1px solid rgba(255,255,255,.18); padding: 20px; }
.cc-attendance-stats div:first-child { border-left: 0; padding-left: 0; }
.cc-attendance-stats b { display: block; font-size: 32px; }
.cc-attendance-stats span { color: rgba(255,255,255,.65); font-size: 13px; }
.cc-attendance-flow { border-top: 1px solid var(--cc-line); }
.cc-attendance-flow div { border-bottom: 1px solid var(--cc-line); color: var(--cc-navy); font-size: 19px; font-weight: 680; padding: 19px 10px 19px 48px; position: relative; }
.cc-attendance-flow div::before { color: var(--cc-blue); content: "↓"; left: 12px; position: absolute; }
.cc-attendance-flow div:first-child::before { content: "01"; font-size: 11px; top: 23px; }

.cc-events-photo { min-height: clamp(620px,65vw,860px); overflow: hidden; position: relative; }
.cc-events-photo > img { height: 100%; inset: 0; object-fit: cover; position: absolute; width: 100%; }
.cc-events-photo::after { background: linear-gradient(90deg,rgba(7,26,54,.88),rgba(7,26,54,.25) 60%,transparent); content: ""; inset: 0; position: absolute; }
.cc-events-photo__copy { color: var(--cc-white); padding: clamp(110px,14vw,210px) 0; position: relative; width: min(600px,70%); z-index: 1; }
.cc-events-photo__copy .cc-h2 { color: var(--cc-white); }
.cc-events-photo__copy p:last-child { color: rgba(255,255,255,.76); font-size: 18px; line-height: 1.7; margin: 28px 0 0; }

.cc-checkin { display: grid; grid-template-columns: 1.08fr .92fr; }
.cc-checkin__media { min-height: 720px; overflow: hidden; }
.cc-checkin__media img { height: 100%; object-fit: cover; width: 100%; }
.cc-checkin__content { align-self: center; padding: clamp(70px,8vw,120px); }
.cc-checkin-steps { counter-reset: checkin; margin-top: 48px; }
.cc-checkin-steps div { border-top: 1px solid var(--cc-line); color: var(--cc-navy); font-size: 18px; font-weight: 650; padding: 20px 0 20px 48px; position: relative; }
.cc-checkin-steps div::before { color: var(--cc-blue); content: counter(checkin,decimal-leading-zero); counter-increment: checkin; font-size: 12px; font-weight: 760; left: 0; position: absolute; }

.cc-communication { display: grid; grid-template-columns: repeat(4,1fr); margin-top: var(--cc-gap-visual); }
.cc-communication__item { border-left: 1px solid rgba(255,255,255,.18); min-height: 210px; padding: 28px; }
.cc-communication__item:first-child { border-left: 0; }
.cc-communication__item small { color: #79baff; font-size: 11px; font-weight: 760; letter-spacing: .12em; }
.cc-communication__item strong { color: var(--cc-white); display: block; font-size: 22px; line-height: 1.25; margin-top: 54px; }

.cc-documents { display: grid; gap: clamp(46px,7vw,100px); grid-template-columns: .9fr 1.1fr; margin-top: var(--cc-gap-visual); }
.cc-certificate { background: var(--cc-white); border: 1px solid var(--cc-line); box-shadow: 0 28px 70px rgba(7,26,54,.08); min-height: 430px; padding: clamp(38px,5vw,68px); position: relative; }
.cc-certificate::before { border: 1px solid var(--cc-line); content: ""; inset: 14px; position: absolute; }
.cc-certificate small,.cc-certificate strong,.cc-certificate span { display: block; position: relative; }
.cc-certificate small { color: var(--cc-blue); font-weight: 770; letter-spacing: .13em; }
.cc-certificate strong { color: var(--cc-navy); font-size: clamp(30px,3vw,44px); margin: 70px 0 18px; }
.cc-certificate span { color: var(--cc-muted); font-size: 18px; margin-top: 10px; }
.cc-document-flow { display: grid; grid-template-columns: 1fr; }
.cc-document-flow div { border-top: 1px solid var(--cc-line); color: var(--cc-navy); font-size: 21px; font-weight: 690; padding: 24px 44px 24px 0; position: relative; }
.cc-document-flow div::after { color: var(--cc-blue); content: "↓"; position: absolute; right: 12px; }
.cc-document-flow div:last-child::after { content: ""; }

.cc-event-network { display: grid; gap: 14px; grid-template-columns: repeat(4,1fr); margin-top: var(--cc-gap-visual); }
.cc-event-network__core { align-items: center; background: var(--cc-blue); color: var(--cc-white); display: flex; font-size: 28px; font-weight: 760; grid-column: 2 / span 2; justify-content: center; min-height: 150px; }
.cc-event-network__item { border: 1px solid var(--cc-line); color: var(--cc-navy); font-size: 17px; font-weight: 650; padding: 26px; text-align: center; }

.cc-event-change { display: grid; gap: clamp(45px,7vw,100px); grid-template-columns: .85fr 1.15fr; margin-top: var(--cc-gap-visual); }
.cc-event-change__card { background: var(--cc-white); border-top: 4px solid var(--cc-blue); padding: clamp(34px,5vw,60px); }
.cc-event-change__card small { color: var(--cc-blue); font-weight: 760; letter-spacing: .13em; }
.cc-event-change__card h3 { color: var(--cc-navy); font-size: 30px; margin: 30px 0 45px; }
.cc-event-change__rooms { align-items: center; display: flex; gap: 20px; }
.cc-event-change__rooms strong { color: var(--cc-navy); font-size: clamp(29px,3.8vw,50px); white-space: nowrap; }
.cc-event-change__rooms span { color: var(--cc-blue); font-size: 28px; }
.cc-event-change__results { border-top: 1px solid var(--cc-line); }
.cc-event-change__results div { align-items: center; border-bottom: 1px solid var(--cc-line); color: var(--cc-navy); display: flex; font-size: 17px; font-weight: 650; justify-content: space-between; padding: 18px 0; }
.cc-event-change__results span { color: var(--cc-blue); font-size: 11px; letter-spacing: .11em; text-transform: uppercase; }

.cc-events-family { background: var(--cc-white); border-block: 1px solid var(--cc-line); padding: clamp(50px,7vw,90px) 0; }
.cc-events-family__inner { align-items: start; display: grid; gap: 48px; grid-template-columns: .55fr 1.45fr; }
.cc-events-family__title { color: var(--cc-blue); font-size: 12px; font-weight: 780; letter-spacing: .15em; text-transform: uppercase; }
.cc-events-family__list { display: grid; grid-template-columns: repeat(2,1fr); }
.cc-events-family__list span { border-top: 1px solid var(--cc-line); color: var(--cc-navy); font-size: 17px; font-weight: 650; padding: 18px 0; }

.cc-events-final { background: var(--cc-white); }
.cc-events-final__inner { align-items: end; display: grid; gap: 50px; grid-template-columns: 1.2fr .8fr; }
.cc-events-final__inner > p { color: var(--cc-muted); font-size: 18px; line-height: 1.65; margin: 28px 0 0; max-width: 560px; }
.cc-events-final .cc-btns { justify-content: flex-end; }
.cc-events-final .maintenance-sonetix-email-protect-link { align-items: center; background: var(--cc-blue); border: 1px solid var(--cc-blue); color: var(--cc-white) !important; display: inline-flex; font-size: 15px; font-weight: 700; justify-content: center; min-height: 54px; padding: 0 25px; transition: background-color .2s ease,border-color .2s ease,color .2s ease; }
.cc-events-final .maintenance-sonetix-email-protect-link:hover,.cc-events-final .maintenance-sonetix-email-protect-link:focus-visible { background: var(--cc-navy); border-color: var(--cc-navy); color: var(--cc-white) !important; }

@media (max-width: 1000px) {
  .cc-events-hero__grid { grid-template-columns: 1fr 48%; }
  .cc-event-lifecycle,.cc-communication { grid-template-columns: repeat(2,1fr); }
  .cc-checkin__content { padding: 70px 50px; }
  .cc-event-network { grid-template-columns: repeat(2,1fr); }
  .cc-event-network__core { grid-column: 1 / -1; }
}

@media (max-width: 800px) {
  .cc-events-hero__grid { grid-template-columns: 1fr; margin-inline: auto; min-height: 0; width: min(calc(100% - 2 * var(--cc-pad)),var(--cc-max)); }
  .cc-events-hero__copy { padding: 85px 0 55px; }
  .cc-events-hero__media { margin-inline: calc(0px - var(--cc-pad)); min-height: clamp(470px,72vw,620px); width: calc(100% + 2 * var(--cc-pad)); }
  .cc-events-head,.cc-event-plan,.cc-attendance,.cc-documents,.cc-event-change,.cc-events-family__inner,.cc-events-final__inner { grid-template-columns: 1fr; }
  .cc-event-lifecycle { grid-template-columns: 1fr; }
  .cc-event-lifecycle__step { border-top: 0!important; min-height: 0; padding: 23px 24px 23px 68px; }
  .cc-event-lifecycle__step small { left: 22px; margin: 0; position: absolute; top: 27px; }
  .cc-event-lifecycle__step:not(:last-child)::after { bottom: -10px; content: "↓"; left: 27px; right: auto; top: auto; z-index: 2; }
  .cc-approval-flow { grid-template-columns: 1fr; }
  .cc-approval-flow__step { min-height: 0; }
  .cc-approval-flow__step:not(:last-child)::after { bottom: -10px; content: "↓"; left: 28px; right: auto; top: auto; }
  .cc-checkin { grid-template-columns: 1fr; }
  .cc-checkin__media { min-height: clamp(460px,78vw,620px); }
  .cc-events-photo::after { background: linear-gradient(90deg,rgba(7,26,54,.88),rgba(7,26,54,.35)); }
  .cc-events-photo__copy { width: 85%; }
  .cc-events-final .cc-btns { justify-content: flex-start; }
}

@media (max-width: 520px) {
  .cc-event-sheet__meta,.cc-attendance-stats,.cc-communication,.cc-event-network,.cc-events-family__list { grid-template-columns: 1fr; }
  .cc-attendance-stats div { border-left: 0; border-top: 1px solid rgba(255,255,255,.18); padding-inline: 0; }
  .cc-communication__item { border-left: 0; border-top: 1px solid rgba(255,255,255,.18); min-height: 150px; }
  .cc-communication__item strong { margin-top: 30px; }
  .cc-events-photo__copy { width: 100%; }
  .cc-checkin__content { padding: 65px 20px; }
  .cc-event-change__rooms { align-items: flex-start; flex-direction: column; }
}
