/* 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); }