620 lines
15 KiB
CSS
620 lines
15 KiB
CSS
/* Custom CSS - This file has the highest priority and will override other styles */
|
|
|
|
/* ==========================================================================
|
|
1. Design System Tokens (Project-wide CSS Variables)
|
|
========================================================================== */
|
|
:root {
|
|
/* Primary brand colors */
|
|
--color-primary: #007bff;
|
|
--color-primary-hover: #0056b3;
|
|
--color-primary-light: #f0f9ff;
|
|
|
|
/* Secondary & Accent colors */
|
|
--color-secondary: #6c757d;
|
|
--color-success: #28a745;
|
|
--color-warning: #ffc107;
|
|
--color-danger: #dc3545;
|
|
--color-old-brick: #881C1C;
|
|
|
|
/* Neutrals */
|
|
--color-background: #ffffff;
|
|
--color-surface: #fafafa;
|
|
--color-border: #dee2e6;
|
|
|
|
/* Text colors */
|
|
--color-text-main: #333333;
|
|
--color-text-muted: #6c757d;
|
|
--color-text-light: #ffffff;
|
|
|
|
/* Typography */
|
|
--font-family-base: 'Open Sans', Arial, Helvetica, sans-serif;
|
|
--font-family-heading: 'Open Sans', Arial, Helvetica, sans-serif;
|
|
|
|
/* Spacing & Radii */
|
|
--spacing-md: 20px;
|
|
--radius-md: 4px;
|
|
--radius-lg: 8px;
|
|
}
|
|
|
|
/* ==========================================================================
|
|
2. Global / Base Overrides
|
|
========================================================================== */
|
|
body, h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
|
|
font-family: var(--font-family-base) !important;
|
|
font-feature-settings: 'liga' off, 'clig' off !important;
|
|
}
|
|
|
|
[data-component-id="umass_base:tophat"] {
|
|
background-color: transparent !important;
|
|
}
|
|
|
|
/* Navigation Container (Base) */
|
|
.navigation-container {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
gap: 1.5rem;
|
|
flex-grow: 1;
|
|
}
|
|
|
|
/* ==========================================================================
|
|
3. Component Styles (Global)
|
|
========================================================================== */
|
|
|
|
/* --- Ambient Video --- */
|
|
.f--ambient-video {
|
|
position: relative;
|
|
}
|
|
|
|
.f--ambient-video::after {
|
|
content: "";
|
|
position: absolute;
|
|
bottom: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 50%;
|
|
/* Adjust how far up the gradient goes */
|
|
background-image: linear-gradient(180deg, transparent, #000);
|
|
pointer-events: none;
|
|
/* Allows clicks to pass through to the video controls */
|
|
z-index: 1;
|
|
/* Ensures it sits above the video */
|
|
}
|
|
|
|
/* --- Tabbed Media Content --- */
|
|
.cc--tabbed-media-content .f--description p {
|
|
color: #000000 !important;
|
|
}
|
|
.cc--tabbed-media-content .f--description a {
|
|
color: var(--color-old-brick) !important;
|
|
}
|
|
|
|
.cc--tabbed-media-content .tab-labels-inner {
|
|
border-bottom-color: #cccccc !important; /* light gray line for the tab row */
|
|
}
|
|
.cc--tabbed-media-content .tab-label {
|
|
color: #555555 !important; /* dark gray for inactive tabs */
|
|
font-weight: 700 !important;
|
|
}
|
|
.cc--tabbed-media-content .tab-label[aria-selected="true"] {
|
|
color: #000000 !important; /* solid black for active tab */
|
|
border-bottom: 3px solid #000000 !important; /* solid black underline for active tab */
|
|
}
|
|
|
|
.cc--tabbed-media-content .tabbed-media-content-media-col {
|
|
align-items: center !important;
|
|
justify-content: center !important;
|
|
}
|
|
|
|
|
|
/* ==========================================================================
|
|
4. Media Queries
|
|
========================================================================== */
|
|
|
|
/* --- Mobile (< 768px) --- */
|
|
@media (max-width: 767px) {
|
|
/* Hide ambient video on mobile to save bandwidth and use image fallback */
|
|
.f--ambient-video,
|
|
.video-controls {
|
|
display: none !important;
|
|
}
|
|
|
|
.cc--tabbed-media-content {
|
|
.c--tabbed-media-content {
|
|
max-width: var(--max-width);
|
|
margin: 0 auto;
|
|
padding: var(--s2) var(--s1);
|
|
display: grid;
|
|
grid-template-columns: 1fr;
|
|
gap: var(--s2);
|
|
}
|
|
}
|
|
.header-hospital-name {
|
|
display: none;
|
|
}
|
|
|
|
}
|
|
|
|
/* --- Mobile & Tablet (<= 1024px) --- */
|
|
@media (max-width: 1024px) {
|
|
.navigation-container {
|
|
gap: 0.5rem;
|
|
}
|
|
|
|
/* Hamburger button */
|
|
#mobile-hamburger {
|
|
display: block;
|
|
z-index: 1001;
|
|
background: none;
|
|
border: none;
|
|
cursor: pointer;
|
|
padding: 10px;
|
|
}
|
|
.hamburger-box {
|
|
width: 30px;
|
|
height: 24px;
|
|
display: inline-block;
|
|
position: relative;
|
|
}
|
|
.hamburger-inner,
|
|
.hamburger-inner::before,
|
|
.hamburger-inner::after {
|
|
width: 30px;
|
|
height: 3px;
|
|
background-color: #fff;
|
|
border-radius: 2px;
|
|
position: absolute;
|
|
transition: transform 0.3s ease, opacity 0.2s ease;
|
|
}
|
|
.hamburger-inner {
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
}
|
|
.hamburger-inner::before {
|
|
content: '';
|
|
top: -9px;
|
|
}
|
|
.hamburger-inner::after {
|
|
content: '';
|
|
bottom: -9px;
|
|
}
|
|
/* Hamburger X state */
|
|
#mobile-hamburger.is-active .hamburger-inner {
|
|
transform: rotate(45deg);
|
|
}
|
|
#mobile-hamburger.is-active .hamburger-inner::before {
|
|
top: 0;
|
|
opacity: 0;
|
|
}
|
|
#mobile-hamburger.is-active .hamburger-inner::after {
|
|
bottom: 0;
|
|
transform: rotate(-90deg);
|
|
}
|
|
|
|
/* Mobile flyout container */
|
|
#mobile-flyout-container {
|
|
display: none;
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: auto;
|
|
background: #fff;
|
|
z-index: 1000;
|
|
overflow-y: auto;
|
|
overflow-x: hidden;
|
|
padding-top: 80px;
|
|
}
|
|
|
|
/* Primary navigation inside flyout */
|
|
.primary-navigation {
|
|
display: block;
|
|
}
|
|
|
|
/* Main menu list - vertical */
|
|
.m--main-menu {
|
|
list-style: none;
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
.m--main-menu > .menu-item {
|
|
border-bottom: 1px solid #e0e0e0;
|
|
}
|
|
|
|
/* Link + arrow wrapper */
|
|
.link-arrow-wrapper {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
padding: 0;
|
|
}
|
|
.link-arrow-wrapper > a {
|
|
flex: 1;
|
|
padding: 15px 20px;
|
|
color: #333;
|
|
text-decoration: none;
|
|
font-weight: 700;
|
|
font-size: 16px;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.05em;
|
|
}
|
|
|
|
/* Arrow toggle button */
|
|
.arrow-toggle {
|
|
background: none;
|
|
border: none;
|
|
cursor: pointer;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
min-width: 50px;
|
|
}
|
|
.arrow-toggle svg {
|
|
transition: transform 0.3s ease;
|
|
}
|
|
.arrow-toggle.is-active svg {
|
|
transform: rotate(180deg);
|
|
}
|
|
|
|
/* Submenu list */
|
|
.submenu {
|
|
list-style: none;
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
.submenu .menu-item {
|
|
border-bottom: 1px solid #f0f0f0;
|
|
}
|
|
.submenu .menu-item a,
|
|
.submenu .menu-item span {
|
|
display: block;
|
|
padding: 12px 20px;
|
|
color: #333;
|
|
text-decoration: none;
|
|
font-size: 15px;
|
|
text-transform: uppercase;
|
|
font-weight: 600;
|
|
letter-spacing: 0.03em;
|
|
}
|
|
.submenu .menu-item a:hover {
|
|
background-color: #f5f5f5;
|
|
color: #881c1c;
|
|
}
|
|
|
|
/* Hide desktop-only elements on mobile */
|
|
.desktop-only {
|
|
display: none !important;
|
|
}
|
|
|
|
/* Show mobile-only elements on mobile */
|
|
.mobile-only {
|
|
display: block !important;
|
|
}
|
|
|
|
/* Hide quicklink buttons, utility menu, and social links on mobile flyout */
|
|
.mc--quicklink-button-menu,
|
|
.mc--utility-menu,
|
|
[data-component-id="umass_base:header-socials"] {
|
|
margin-top: 20px;
|
|
border-top: 2px solid #881c1c;
|
|
padding-top: 10px;
|
|
}
|
|
}
|
|
|
|
/* --- Tablet Only (769px to 1024px) --- */
|
|
@media screen and (min-width: 769px) and (max-width: 1024px) {
|
|
.news-list {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, 1fr);
|
|
gap: 24px;
|
|
align-items: stretch;
|
|
}
|
|
.featured-grid__item {
|
|
height: 100%;
|
|
display: flex;
|
|
}
|
|
/* .featured-grid__item .news-card--featured {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
border: 1px solid #881C1C;
|
|
border-radius: 16px;
|
|
padding: 16px;
|
|
box-sizing: border-box;
|
|
width: 100%;
|
|
height: 100%;
|
|
gap: 16px;
|
|
background: #fff;
|
|
margin-bottom: 0 !important;
|
|
} */
|
|
.featured-grid__item .news-card__image {
|
|
flex: none;
|
|
width: 100%;
|
|
aspect-ratio: 1 / 1;
|
|
margin-bottom: 0 !important;
|
|
}
|
|
.featured-grid__item .news-card__image > div {
|
|
height: 100%;
|
|
width: 100%;
|
|
}
|
|
.featured-grid__item .news-card__image img {
|
|
width: 100%;
|
|
height: 100%;
|
|
object-fit: cover;
|
|
object-position: center;
|
|
border-radius: 8px;
|
|
}
|
|
.featured-grid__item .news-card__content {
|
|
flex: 1;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: flex-start;
|
|
min-width: 0;
|
|
padding: 0 !important;
|
|
margin: 0 !important;
|
|
}
|
|
.featured-grid__item .featured-grid__category {
|
|
margin-bottom: 12px;
|
|
}
|
|
.featured-grid__item .featured-grid__category a {
|
|
display: inline-block;
|
|
background-color: #f2f2f2;
|
|
color: #881C1C;
|
|
padding: 4px 8px;
|
|
border-radius: 4px;
|
|
font-size: 0.75rem;
|
|
font-weight: bold;
|
|
text-decoration: none;
|
|
text-transform: uppercase;
|
|
}
|
|
.featured-grid__item .news-card__title {
|
|
font-size: 1.1rem;
|
|
font-weight: 700;
|
|
margin-top: 0;
|
|
margin-bottom: 12px;
|
|
line-height: 1.4;
|
|
}
|
|
.featured-grid__item .news-card__title a {
|
|
color: #000;
|
|
text-decoration: none;
|
|
}
|
|
.featured-grid__item .news-card__title a:hover {
|
|
color: #881C1C;
|
|
}
|
|
.featured-grid__item .news-card__date {
|
|
margin-top: auto;
|
|
color: #881C1C;
|
|
font-size: 0.85rem;
|
|
font-weight: 500;
|
|
}
|
|
}
|
|
|
|
/* --- Desktop (>= 1025px) --- */
|
|
@media screen and (min-width: 1025px) {
|
|
/* News Grid */
|
|
.news-list {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, 1fr);
|
|
gap: 24px;
|
|
align-items: stretch;
|
|
}
|
|
|
|
.education-column .news-list {
|
|
grid-template-columns: repeat(3, 1fr);
|
|
}
|
|
|
|
.featured-grid__item {
|
|
height: 100%;
|
|
display: flex;
|
|
}
|
|
/* .featured-grid__item .news-card--featured {
|
|
display: flex;
|
|
flex-direction: row;
|
|
align-items: flex-start;
|
|
border: 1px solid #881C1C;
|
|
border-radius: 16px;
|
|
padding: 16px;
|
|
box-sizing: border-box;
|
|
width: 100%;
|
|
height: 100%;
|
|
gap: 16px;
|
|
background: #fff;
|
|
margin-bottom: 0 !important;
|
|
} */
|
|
.featured-grid__item .news-card__image {
|
|
flex: 0 0 170px;
|
|
width: 100%;
|
|
height: auto;
|
|
margin-bottom: 0 !important;
|
|
}
|
|
.featured-grid__item .news-card__image > div {
|
|
height: 100%;
|
|
width: 100%;
|
|
}
|
|
.featured-grid__item .news-card__image img {
|
|
width: 100%;
|
|
height: 100%;
|
|
object-fit: cover;
|
|
object-position: center;
|
|
border-radius: 8px;
|
|
}
|
|
.featured-grid__item .news-card__content {
|
|
flex: 1;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: flex-start;
|
|
min-width: 0;
|
|
padding: 0 !important;
|
|
margin: 0 !important;
|
|
}
|
|
.featured-grid__item .featured-grid__category {
|
|
margin-bottom: 12px;
|
|
}
|
|
.featured-grid__item .featured-grid__category a {
|
|
display: inline-block;
|
|
background-color: #f2f2f2;
|
|
color: #881C1C;
|
|
padding: 4px 8px;
|
|
border-radius: 4px;
|
|
font-size: 0.75rem;
|
|
font-weight: bold;
|
|
text-decoration: none;
|
|
text-transform: uppercase;
|
|
}
|
|
.featured-grid__item .news-card__title {
|
|
font-size: 1.1rem;
|
|
font-weight: 700;
|
|
margin-top: 0;
|
|
margin-bottom: 12px;
|
|
line-height: 1.4;
|
|
}
|
|
.featured-grid__item .news-card__title a {
|
|
color: #000;
|
|
text-decoration: none;
|
|
}
|
|
.featured-grid__item .news-card__title a:hover {
|
|
color: #881C1C;
|
|
}
|
|
.featured-grid__item .news-card__date {
|
|
margin-top: auto;
|
|
color: #881C1C;
|
|
font-size: 0.85rem;
|
|
font-weight: 500;
|
|
}
|
|
|
|
/* Side-by-side layout for News and Events */
|
|
.news-events-row {
|
|
display: flex;
|
|
flex-direction: row;
|
|
gap: 40px;
|
|
align-items: stretch;
|
|
}
|
|
.news-events-row > .news-column {
|
|
flex: 1.8;
|
|
min-width: 0;
|
|
}
|
|
.news-events-row > .events-column {
|
|
flex: 1;
|
|
min-width: 0;
|
|
}
|
|
|
|
/* Navigation Container */
|
|
#mobile-hamburger {
|
|
display: none !important;
|
|
}
|
|
#mobile-flyout-container {
|
|
display: flex !important;
|
|
align-items: center;
|
|
}
|
|
.primary-navigation {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
/* Hide arrow toggles and back buttons */
|
|
.mc--main-menu .arrow-toggle,
|
|
.mc--main-menu .button-back,
|
|
.mc--main-menu .navigation-title {
|
|
display: none !important;
|
|
}
|
|
/* Horizontal main menu */
|
|
.m--main-menu {
|
|
display: flex;
|
|
gap: 0;
|
|
list-style: none;
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
.m--main-menu > .menu-item > .link-arrow-wrapper > a {
|
|
text-transform: uppercase;
|
|
font-weight: 700;
|
|
padding: 10px 15px;
|
|
white-space: nowrap;
|
|
}
|
|
}
|
|
|
|
/* --- Large Desktop (>= 1366px) --- */
|
|
@media screen and (min-width: 1366px) {
|
|
.mobile-only {
|
|
display: none !important;
|
|
}
|
|
.news-events-section__footer {
|
|
display: none;
|
|
}
|
|
.cc--footer .c--footer {
|
|
padding: 36px 6.25%;
|
|
}
|
|
}
|
|
|
|
/* --- Override for 4-column Stats Block --- */
|
|
@media (min-width: 64rem) {
|
|
.f--field.f--stats-block {
|
|
grid-template-columns: repeat(4, 1fr) !important;
|
|
}
|
|
}
|
|
|
|
.lc--layout-container ol li, .lc--layout-container ul li, .sg-pattern-example ol li, .sg-pattern-example ul li {
|
|
font-weight: var(--font-weight-extrabold);
|
|
}
|
|
|
|
/* Hide widget column on mobile */
|
|
@media (max-width: 768px) {
|
|
.events-column,
|
|
.widget-sidebar-area {
|
|
display: none !important;
|
|
}
|
|
}
|
|
|
|
|
|
#map-section .branch-text {
|
|
color: #111827; /* text-gray-900 */
|
|
}
|
|
|
|
#map-section .branch-card {
|
|
background-color: var(--color-white, #ffffff);
|
|
}
|
|
|
|
/* Active State */
|
|
#map-section .branch-card.active {
|
|
background-color: var(--color-old-brick); /* bg-primary-600 */
|
|
}
|
|
#map-section .branch-card.active .branch-title,
|
|
#map-section .branch-card.active .branch-text,
|
|
#map-section .branch-card.active .branch-icon {
|
|
color: #ffffff; /* text-white */
|
|
}
|
|
|
|
/* Hero Background Override */
|
|
.bg-linear-hero {
|
|
background: linear-gradient(180deg, transparent, #000) !important;
|
|
}
|
|
|
|
.doctor-page #l--main-header {
|
|
background-color: var(--color-old-brick);
|
|
}
|
|
|
|
.doctor-page #l--main-header a{
|
|
color: var(--color-white);
|
|
}
|
|
|
|
.transparent-header .region-header {
|
|
background: linear-gradient(0deg, transparent, #000);
|
|
}
|
|
|
|
.doctor-page #pagination-controls button.is-active {
|
|
background-color: var(--color-old-brick);
|
|
}
|
|
|
|
.header-hospital-name {
|
|
display: none;
|
|
}
|
|
|
|
.umass-platform-homepage .header-hospital-name {
|
|
display: block;
|
|
}
|
|
|
|
.bg-primary-600, .cc-component-container.cc--footer, .btn {
|
|
background-color: var(--color-old-brick);
|
|
}
|
|
|
|
|