/* ========================================================================== Event promo page (news article that promotes an upcoming MSOS event) - keeps the news-article reading style (matches blog/news pages) - a clean "key facts" card, an auto-scrolling "Moments" carousel, a left-hand floating Register button, and a compact registration form that reuses the Become-a-member (.ms-*) look. ========================================================================== */ /* ---- homepage promo banner (time-limited: sits above the partners strip) ---- */ .event-banner { background: linear-gradient(115deg, #FA7850 0%, #E85D2A 55%, #2D738C 100%); color: #fff; padding: 18px 24px; } .event-banner-inner { max-width: 1120px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; } .event-banner-copy { display: flex; flex-direction: column; gap: 6px; } .event-banner-tag { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; opacity: 0.92; } .event-banner-text { margin: 0; font-size: 17px; line-height: 24px; color: #fff; } .event-banner-cta.btn { background: #fff; color: #E85D2A; border: none; flex: 0 0 auto; white-space: nowrap; } .event-banner-cta.btn:hover { background: #FFF3EC; } @media (max-width: 700px) { .event-banner-inner { flex-direction: column; align-items: flex-start; } .event-banner-cta.btn { width: 100%; text-align: center; } } /* ---- guide-style centred header (matches the Student Welcome Guide) ---- */ .news-article--event .news-article-inner { max-width: 820px; } .news-article--event .newshub-eyebrow { display: block; text-align: center; color: #2D738C; } .news-article--event h1 { text-align: center; font-size: 46px; line-height: 1.1; letter-spacing: -0.02em; margin: 8px 0 16px; } .news-article--event .news-article-date { display: none; } /* guide-style header shows a lead, not a date */ .news-article--event .na-lead { text-align: center; font-size: 20px; line-height: 30px; color: #475467; max-width: 680px; margin: 0 auto 30px; } /* wide, short "banner" hero — breaks out wider than the 820px text column, keeps a modest height (cover-crop). */ .news-article--event .news-article-hero { width: min(96vw, 1180px); margin-left: 50%; transform: translateX(-50%); } .news-article--event .news-article-hero img { width: 100%; height: clamp(260px, 30vw, 400px); object-fit: cover; object-position: center 40%; border-radius: 16px; } .news-article--event .news-article-hero figcaption { text-align: center; } @media (max-width: 768px) { .news-article--event .news-article-hero img { height: clamp(180px, 46vw, 260px); } } @media (max-width: 768px) { .news-article--event h1 { font-size: 32px; } .news-article--event .na-lead { font-size: 17px; line-height: 27px; } } /* ---- headings & lists inside the news body (event promo copy) ---- */ .news-article-body h2 { font-size: 26px; line-height: 1.2; color: #101828; margin: 40px 0 14px; letter-spacing: -0.01em; } .news-article-body h3 { font-size: 20px; line-height: 1.25; color: #101828; margin: 28px 0 10px; } .news-article-body ul { margin: 0 0 18px; padding-left: 22px; } .news-article-body li { font-size: 18px; line-height: 30px; color: #344054; margin: 0 0 8px; } /* ---- key facts (plain background, no card, centred) ---- */ .event-key { margin: 34px 0; text-align: center; } .event-key-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 44px; max-width: 720px; margin: 0 auto 14px; } .event-key-row { display: flex; align-items: flex-start; gap: 13px; text-align: left; } .event-key-ico { flex: 0 0 auto; width: 42px; height: 42px; border-radius: 12px; display: flex; align-items: center; justify-content: center; background: #FFF1E8; color: #FA7850; font-size: 18px; } .event-key-text { display: flex; flex-direction: column; gap: 1px; } .event-key-k { font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: #667085; } .event-key-v { font-size: 17px; line-height: 24px; color: #101828; } .event-key-stream { font-size: 15px; color: #667085; margin: 4px 0 22px; } .event-key-stream i { color: #2D738C; margin-right: 6px; } .event-key-stream strong { color: #2D738C; font-weight: 600; } .event-key-actions { margin: 0 0 18px; } .event-key-cta.btn { padding: 14px 42px; font-size: 16px; border-radius: 10px; } .event-key-note { max-width: none; margin: 0; font-size: 18px; line-height: 30px; color: #344054; text-align: left; } /* ---- event partners / patron / sponsor ---- */ .event-partners { display: flex; flex-wrap: wrap; justify-content: center; align-items: flex-end; gap: 20px 48px; max-width: 640px; margin: 26px auto 0; padding-top: 26px; border-top: 1px solid #EAECF0; } .event-partner { margin: 0; display: flex; flex-direction: column; align-items: center; gap: 10px; } .event-partner-role { order: -1; font-size: 11px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: #667085; } .event-partner img { display: block; height: 30px; width: auto; object-fit: contain; } .event-partner--lead img { height: 34px; } .event-partner-name { font-size: 15px; font-weight: 700; color: #344054; } /* ---- support / become-a-partner call-out ---- */ .event-support { margin: 46px 0 6px; border-radius: 18px; background: linear-gradient(120deg, #FA7850 0%, #E85D2A 46%, #2D738C 100%); color: #fff; padding: 44px 32px; text-align: center; } .event-support-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; opacity: 0.92; margin-bottom: 12px; } .event-support h2 { color: #fff; font-size: 28px; line-height: 1.15; margin: 0 0 12px; } .event-support p { color: rgba(255,255,255,0.92); font-size: 17px; line-height: 27px; max-width: 620px; margin: 0 auto 24px; } .event-support .btn { background: #fff; color: #E85D2A; border: none; padding: 14px 34px; font-size: 16px; border-radius: 10px; } .event-support .btn:hover { background: #FFF3EC; } /* ---- inline photos between paragraphs (breaks up the text) ---- */ .news-article-body .event-inline { margin: 30px 0; } .news-article-body .event-inline img { width: 100%; height: auto; border-radius: 14px; display: block; } .news-article-body .event-inline figcaption { margin-top: 8px; font-size: 13px; color: #667085; text-align: center; } @media (max-width: 560px) { .event-key-grid { grid-template-columns: 1fr; max-width: 340px; } .event-partner img { height: 26px; } .event-partner--lead img { height: 30px; } } /* ---- "Moments from previous years": auto-scrolling carousel ---- Reuses the homepage/hub carousel mechanics (.hub-carousel/.hub-uses/ .hub-track/.hub-group + setupHubCarousel in main.js). .ev-use drops the coloured placeholder cards inherited from _hub.css and shows photos. */ .event-moments { margin: 44px 0; } .event-moments-title { font-size: 24px; margin: 0 0 6px; color: #101828; } .event-moments-sub { font-size: 15px; color: #667085; margin: 0 0 20px; } .event-moments-carousel { margin: 0 -8px; } .ev-use { width: clamp(220px, 30vw, 300px); aspect-ratio: 4 / 3; border-radius: 16px; overflow: hidden; } /* two classes beat _hub.css's later-loaded .hub-use:nth-child() gradients */ .ev-use.hub-use, .ev-use.hub-use:nth-child(3n+2), .ev-use.hub-use:nth-child(3n+3) { background: #EAECF0; } .ev-use.hub-use::after { display: none; } /* no text overlay needed on photos */ .ev-use .hub-use-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; } /* the "+ more / see full album" tile */ .ev-use--more { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; text-decoration: none; color: #fff; background: linear-gradient(135deg, #FA7850 0%, #E85D2A 55%, #2D738C 100%) !important; } .ev-more-plus { font-size: 44px; font-weight: 300; line-height: 1; } .ev-more-label { font-size: 15px; font-weight: 700; } .event-moments-more { text-align: center; margin-top: 18px; } .event-moments-more a { color: #2D738C; font-weight: 600; font-size: 15px; text-decoration: none; display: inline-flex; align-items: center; gap: 7px; } .event-moments-more a:hover { text-decoration: underline; } /* ---- left-hand floating "Register now" button ---- */ .event-sticky-cta { position: fixed; left: 24px; bottom: 24px; z-index: 900; display: inline-flex; align-items: center; gap: 10px; background: #FA7850; color: #FFFFFF; font-weight: 700; font-size: 15px; padding: 14px 22px; border-radius: 999px; text-decoration: none; box-shadow: 0 10px 28px rgba(242,118,46,0.45); transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.25s ease; } .event-sticky-cta[hidden] { display: none; } .event-sticky-cta.is-hiding { opacity: 0; transform: translateY(14px); pointer-events: none; } .event-sticky-cta:hover { transform: translateY(-2px); box-shadow: 0 14px 34px rgba(242,118,46,0.55); } @media (max-width: 600px) { .event-sticky-cta { left: 16px; bottom: 16px; padding: 12px 18px; font-size: 14px; } } /* ---- registration form (reuses .ms-* from _member.css; provide its vars) ---- */ .msreg { --mm-orange: #FA7850; --mm-teal: #2D738C; } .msreg.ms-section { max-width: 100%; padding: 8px 0 0; } .msreg .ms-field--full { grid-column: 1 / -1; } .msreg .ms-label { display: block; font-size: 14px; font-weight: 700; color: #344054; margin: 22px 0 8px; } .msreg .ms-label:first-child { margin-top: 0; } .msreg .ms-req { color: #FA7850; } .msreg .ms-note { font-size: 13px; color: #667085; margin: 6px 0 0; } .msreg .ms-form textarea { margin-top: 0; } .msreg .er-consents { margin-top: 26px; } .msreg .ms-nav { justify-content: flex-end; } .msreg .ev-cond { margin-top: 12px; } .msreg .ev-cond[hidden] { display: none; } /* min-width:0 lets grid columns shrink below their widest