/* ==========================================================
   TG-MAIN.CSS — Tone Galaxie 独立样式表
   不依赖 main-1ziqGYee.css，完整独立实现所有视觉效果。
   字体替换：Curtis → Cormorant Garamond
             HelveticaNowVariable → Inter
             baskerville-urw → Libre Baskerville
   ========================================================== */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,400&family=Inter:wght@300;400;500;700&family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&display=swap');

/* ----------------------------------------------------------
   Base overflow fix
   ---------------------------------------------------------- */
/* overflow-x 只作用在内容层，不能放 html/body（会破坏 position:sticky） */
.site-content, .site-main { overflow-x: hidden; }

/* headroom.js — Curtis 版本只用 headroom--not-top 调整样式，header 始终 sticky 显示
   不使用 transform: translateY 隐藏，删除错误的 pinned/unpinned 规则 */

/* 响应式基础：图片/视频/iframe不溢出容器 */
img, video, iframe, embed, object { max-width: 100%; }

/* ----------------------------------------------------------
   CSS 变量
   ---------------------------------------------------------- */
:root {
  --tg-red: #eb0000;
  --tg-black: #000;
  --tg-white: #fff;
  --tg-warm-gray: #9d948a;
  --tg-light-gray: #cec6bf;
  --tg-off-white: #f7f7f7;
  --tg-font-display: 'Cormorant Garamond', Georgia, serif;
  --tg-font-serif: 'Libre Baskerville', Georgia, serif;
  --tg-font-sans: 'Inter', -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
}

/* ----------------------------------------------------------
   00 全局基础 reset（与 Curtis 原版完全一致）
   ---------------------------------------------------------- */
html {
  font-family: sans-serif;
  -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%;
  font-size: 62.5%; box-sizing: border-box;
  scroll-behavior: smooth; overflow-anchor: auto;
}
*, *::before, *::after { box-sizing: inherit; }
body {
  margin: 0;
  font-size: 16px; font-size: 1.6rem;
  background: #fff; color: #000;
  line-height: 1.5; position: relative;
  overflow-x: hidden; font-synthesis: none;
  font-family: var(--tg-font-sans);
}
a { color: #000; text-decoration: none; background: transparent; }
img { border: 0; display: block; max-width: 100%; height: auto; }
ul, ol { list-style: none; margin: 0; padding: 0; }

/* ----------------------------------------------------------
   01 排版 — 标题
   ---------------------------------------------------------- */
h1, .h1, .module--statistics__item--value {
  font-size: 120px; font-size: 12rem;
  font-family: var(--tg-font-display); font-weight: 400;
  line-height: 1; letter-spacing: -0.02em; margin: 0;
}

h2, .h2,
.module--people-list .people-list__title,
.module--people-search .module__title,
.module--news-list .module__title,
.module--link-groups .module--link-groups--header h3,
.module__hero--person .module__title,
.module--accordion-group .module--accordion-group--header h3,
.module--accordion-group .module--accordion-group--items summary,
.site-search__contents .site-search__header .site-search input[type=text],
.site-search__contents h3,
.site-menu nav .menu > li button {
  font-size: 64px; font-size: 6.4rem;
  font-family: var(--tg-font-display); font-weight: 400;
  line-height: 1; letter-spacing: -0.02em; margin: 0;
}

h3, .h3,
.app--calendar__filters .header-content .header-row .title-container .title,
.module--storytelling .module__accordion-inner .module__text h2,
.module--storytelling[data-variation=horizontal] .module__horizontal-mobile-item .module__text h2,
.module__calendar .module__calendar--date,
.module--callout.title-small .module__title,
.site-search__result .site-search__result--title {
  font-size: 32px; font-size: 3.2rem;
  font-family: var(--tg-font-display); font-weight: 400;
  line-height: 1; letter-spacing: 0.02em; margin: 0;
}

h4, .h4,
.module--works .module__list .module__item--title,
.module--storytelling[data-variation=horizontal] .module__horizontal-content h2,
.single-work .module__hero--work .module__title,
.module--people-featured .module__info--header h3,
.module__hero--event .module__title,
.module__hero--article .module__title,
.module__hero .module__slide--content h2,
.module--panels .module__faculty h3,
.module--panels .module__alumni h3,
.module--artists .module__artist--header h3,
.module--callout.title-small .module__description,
.site-search__contents .site-search__title {
  font-size: 36px; font-size: 3.6rem;
  font-family: var(--tg-font-serif); font-weight: 400;
  line-height: 1.3; letter-spacing: -0.02em; margin: 0;
}

h5, .h5,
.app--calendar__view--featured li header h2,
.module--storytelling .module__navigation li,
.module--statistics__item--label,
.module__single .module__accordion summary,
.module__single .module__block--question .module__title,
.module__single .module__block--content blockquote,
.module.faculty .module__content--list .people-faculty__person h4,
.module--quotes .module__description blockquote p,
.module--people-search.faculty .module__content--list .people-faculty__person h4,
.people-faculty__person--header h4,
.module--news-list .module__content h2,
.module--news .content__article--preview .content__title,
.module__hero--person .module__subtitle,
.module__hero .module__intro--sidebar > ul li.quote blockquote,
.module--events-list[data-view=list] .module__content li h2,
.module--events .module__content li h2,
.module--panels .module__departments a,
.site-search__no-results {
  font-size: 26px; font-size: 2.6rem;
  font-family: var(--tg-font-serif); font-weight: 400;
  line-height: 1.3; letter-spacing: -0.02em; margin: 0;
}

h6, .h6,
.module--section .module__content--accordion summary,
.module--people-list .people-list__content--list li h4,
.module--people-search .module__content--list li h4,
.module__calendar .module__calendar--event .title {
  font-size: 18px; font-size: 1.8rem;
  font-family: var(--tg-font-serif); font-weight: 400;
  line-height: 1.3; letter-spacing: -0.02em; margin: 0;
}

.h7,
.app--calendar__component--tag,
.module--library-archives .module__content--primary > ul .library-archives__search--links a,
.module--works .module__list .module__item--subtitle,
.module--works .module__list .module__item--tag,
.module--timeline .module__item--entry,
.timeline__wrapper .timeline__year[data-marker="1"]:before,
.single-work .module__hero--work .module__subtitle,
.single-work .module__hero--work .module__tag,
.module--promo .promo__subtitle,
.module--people-featured .module__info--header h4,
.people-faculty__person--text,
.people-faculty__secondary h6,
.module--news-list .module__content time,
.module--news time,
.module__hero--article .module__subtitle,
.module__hero .module__intro--sidebar > ul li.quote cite,
.module__hero .module__slide--content h3,
.module__gallery-slider .gallery-slider__slides[data-layout=full] .gallery-slider__caption,
.module--events-list[data-view=list] .module__content li time,
.module--events .module__content li time,
.module--panels .module__more,
.module--panels .module__faculty h4,
.module--panels .module__alumni h4,
.module--artists .module__artist--header h4,
.module--artists .module__more,
.site-search__result .site-search__result--type,
.site-banner__wrapper a {
  font-size: 12px; font-size: 1.2rem;
  font-family: var(--tg-font-sans); font-weight: 700;
  line-height: 1.15; color: var(--tg-red);
  text-transform: uppercase; display: inline-block;
}

.h7-bordered,
.app--calendar__component--tag,
.module--works .module__list .module__item--subtitle,
.single-work .module__hero--work .module__subtitle,
.module--promo .promo__subtitle,
.module--people-featured .module__info--header h4,
.module--news-list .module__content time,
.module--news time,
.module__hero--article .module__subtitle,
.module__hero .module__slide--content h3,
.module--events-list[data-view=list] .module__content li time,
.module--events .module__content li time,
.module--panels .module__alumni h4 {
  border: 1px solid var(--tg-red); border-width: 0 1px; padding: 0 1.6rem;
}

/* ----------------------------------------------------------
   01 排版 — 段落与正文
   ---------------------------------------------------------- */
p, .p2,
.module--library-feed ul,
.module--library-archives .module__content--secondary > ul > li li.date,
.module__single .module__block--content figcaption,
.module--section .module__content--text,
.module--section .module__content--accordion,
.module--section .module__content--slideshow .module__content--slideshow--counter,
.module--news .content__article--preview .content__excerpt,
.module--bullets .bullets__text,
.module .module__table th,
.module .module__table td,
.site-search__result .site-search__result--text,
.curtis-text {
  font-size: 16px; font-size: 1.6rem;
  font-family: var(--tg-font-sans); font-weight: 300;
  line-height: 1.4; margin: 0 0 1.6rem;
}

.p1, .module--bullets .bullets__subtitle {
  font-size: 32px; font-size: 3.2rem;
  line-height: 1.3; font-weight: 300;
}

.curtis-text a { text-decoration: underline; transition: all 0.3s ease-in-out; }
.curtis-text a:hover { color: var(--tg-red); }
.curtis-text ul, .curtis-text ol { padding-left: 2rem; }
.curtis-text ul + p, .curtis-text ol + p { margin-top: 1.6rem; }

/* ----------------------------------------------------------
   02 按钮
   ---------------------------------------------------------- */
button, .button, .site-search__filter-btn, a.button, input[type=submit] {
  font-size: 10px; font-size: 1rem;
  font-family: var(--tg-font-sans); font-weight: 700;
  line-height: 1; text-transform: uppercase;
  color: var(--tg-black); background-color: transparent;
  border: 1px solid #000; border-radius: 4rem;
  padding: 1rem 3rem; transition: all 0.3s ease-in-out;
  position: relative; display: inline-block; white-space: nowrap;
}

button.button--large, .button.button--large, .button--large.site-search__filter-btn,
a.button.button--large, input[type=submit].button--large {
  font-size: 21px; font-size: 2.1rem; font-weight: 300;
  text-transform: none; color: #fff; background-color: #000;
  border: 1px solid #000; padding: 1.6rem 3.2rem 1.6rem 4rem;
  display: flex; flex-grow: 0; flex-shrink: 0;
  align-items: center; align-self: unset; justify-content: space-between;
}

button.button--large::after, .button.button--large::after,
.button--large.site-search__filter-btn::after,
a.button.button--large::after, input[type=submit].button--large::after {
  display: block; content: ""; width: 2.4rem; height: 2.4rem;
  margin-left: 1.6rem; justify-self: flex-end;
  background-color: #fff;
  -webkit-mask: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M5 12h14M12 5l7 7-7 7"/></svg>') no-repeat center;
  mask: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M5 12h14M12 5l7 7-7 7"/></svg>') no-repeat center;
  transition: all 0.3s ease-in-out;
}

button.button--medium, .button.button--medium, .button--medium.site-search__filter-btn,
a.button.button--medium, input[type=submit].button--medium {
  font-size: 16px; font-size: 1.6rem; font-weight: 500;
  text-transform: none; color: #fff; border: 1px solid #fff;
  background-color: transparent; padding: 0.8rem 2.4rem 0.8rem 2.6rem;
  display: flex; flex-grow: 0; flex-shrink: 0; align-items: center; align-self: unset;
}

button.button--medium::after, .button.button--medium::after,
.button--medium.site-search__filter-btn::after,
a.button.button--medium::after, input[type=submit].button--medium::after {
  display: block; content: ""; width: 2.4rem; height: 2.4rem;
  margin-left: 1.6rem; background-color: #fff;
  -webkit-mask: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M5 12h14M12 5l7 7-7 7"/></svg>') no-repeat center;
  mask: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M5 12h14M12 5l7 7-7 7"/></svg>') no-repeat center;
  transition: all 0.3s ease-in-out;
}

button:hover, button:focus, .button:hover, .button:focus,
.site-search__filter-btn:hover, .site-search__filter-btn:focus,
a.button:hover, a.button:focus,
input[type=submit]:hover, input[type=submit]:focus {
  color: #fff; background-color: #000; text-decoration: none;
}

button:hover.button--large, button:focus.button--large,
.button:hover.button--large, .button:focus.button--large,
a.button:hover.button--large, a.button:focus.button--large,
input[type=submit]:hover.button--large, input[type=submit]:focus.button--large {
  color: #000; background-color: #fff;
}

button:hover.button--large::after, button:focus.button--large::after,
.button:hover.button--large::after, .button:focus.button--large::after,
a.button:hover.button--large::after, a.button:focus.button--large::after,
input[type=submit]:hover.button--large::after, input[type=submit]:focus.button--large::after {
  background-color: #000;
}

button:hover.button--medium, button:focus.button--medium,
.button:hover.button--medium, .button:focus.button--medium,
a.button:hover.button--medium, a.button:focus.button--medium,
input[type=submit]:hover.button--medium, input[type=submit]:focus.button--medium {
  color: #000; background-color: #fff;
}

button:hover.button--medium::after, button:focus.button--medium::after,
.button:hover.button--medium::after, .button:focus.button--medium::after,
a.button:hover.button--medium::after, a.button:focus.button--medium::after,
input[type=submit]:hover.button--medium::after, input[type=submit]:focus.button--medium::after {
  background-color: #000;
}

button:active, .button:active, .site-search__filter-btn:active,
a.button:active, input[type=submit]:active,
button.active, .button.active, .site-search__filter-btn.active,
a.button.active, input[type=submit].active {
  color: #fff; background-color: var(--tg-red); border-color: var(--tg-red);
}

button:disabled, button.disabled, .button:disabled, .button.disabled,
.site-search__filter-btn:disabled, .site-search__filter-btn.disabled,
a.button:disabled, a.button.disabled,
input[type=submit]:disabled, input[type=submit].disabled {
  color: #fff; background-color: var(--tg-warm-gray);
  border-color: var(--tg-warm-gray); cursor: not-allowed; pointer-events: none;
}

/* ----------------------------------------------------------
   03 全局结构
   ---------------------------------------------------------- */
.screen-reader-text, .sr-only {
  margin: -1px; padding: 0; width: 1px; height: 1px;
  overflow: hidden; clip: rect(0 0 0 0); clip: rect(0,0,0,0);
  position: absolute;
}

.site-content { width: 100%; }

.site-main { padding-top: 1.6rem; }

.site-main__contents { display: flex; flex-direction: column; }

.container {
  width: 100%; max-width: 122rem; padding: 0 3.2rem; margin: 0 auto;
}

.bg-red { background-color: var(--tg-red); }
.bg-white { background-color: #fff; }

.social-links {
  list-style-type: none; padding: 0; margin: 0;
  display: flex; align-items: center; gap: 0.8rem;
}

.social-links a {
  font-size: 24px; font-size: 2.4rem;
  display: flex; align-items: center; justify-content: center;
  width: 6rem; height: 6rem; border: 1px solid #000; border-radius: 100%;
  transition: all 0.3s ease-in-out;
}

.social-links a:hover, .social-links a:focus { color: #fff; background-color: #000; }
.social-links a:hover path, .social-links a:focus path { fill: #fff; }
.social-links a svg { width: auto; height: 2.8rem; }
.social-links a path { transition: fill 0.3s ease-in-out; fill: #000; }

/* ----------------------------------------------------------
   04 站点头部 (site-header)
   ---------------------------------------------------------- */
.site-header {
  z-index: 998; position: sticky; left: 0; right: 0; top: 0;
  padding: 1.5rem 0; background: #fff; transition: all 0.3s ease-in-out;
}

.has-hero-feature .site-header { background: transparent; }

.has-hero-feature .site-header:not(.headroom--not-top) .site-branding path { fill: #fff; }
.has-hero-feature .site-header:not(.headroom--not-top) .site-search form { border-color: #fff; }
.has-hero-feature .site-header:not(.headroom--not-top) .site-search input[type=text] { color: #fff; }
.has-hero-feature .site-header:not(.headroom--not-top) .site-search input[type=text]::placeholder { color: rgba(255,255,255,0.7); }
.has-hero-feature .site-header:not(.headroom--not-top) .site-search button svg path { fill: #fff; }
.has-hero-feature .site-header:not(.headroom--not-top) .site-menu__toggle .site-menu__toggle--icon span { background-color: #fff; }
.has-hero-feature .site-header:not(.headroom--not-top) .site-menu__toggle .site-menu__toggle--label { color: #fff; }

.admin-bar .site-header { top: 3.2rem; }

.site-header.headroom--not-top {
  background: rgba(255,255,255,0.5);
  -webkit-backdrop-filter: blur(4rem); backdrop-filter: blur(4rem);
  padding: 0.9rem 0; height: 5.8rem;
  border-bottom: 1px solid rgba(0,0,0,0.1);
}

.site-header.site-menu--is-open .site-branding path { fill: #fff; }
.site-header.site-menu--is-open .site-search form { border-color: #fff; }
.site-header.site-menu--is-open .site-search input[type=text] { color: #fff; }
.site-header.site-menu--is-open .site-search input[type=text]::-webkit-input-placeholder,
.site-header.site-menu--is-open .site-search input[type=text]:-moz-placeholder,
.site-header.site-menu--is-open .site-search input[type=text]::-moz-placeholder,
.site-header.site-menu--is-open .site-search input[type=text]:-ms-input-placeholder {
  font-size: 15px; font-size: 1.5rem; color: #fff; font-style: normal;
  line-height: 1.3; transition: color 0.3s ease-in-out;
}
.site-header.site-menu--is-open .site-search button { color: #fff; }
.site-header.site-menu--is-open .site-search button svg path { fill: #fff; }

.site-header .container {
  max-width: 144rem; display: flex; align-items: center;
  justify-content: flex-end; padding: 0 4rem;
}

/* site-branding (logo) */
.site-branding {
  z-index: 998; display: block; margin-right: auto; overflow: hidden;
  height: 6.8rem; width: 19.3rem; transition: all 0.3s ease-in-out; flex-shrink: 0;
}

/* Language switcher widget — flex sibling of .site-menu inside .container */
#ls-widget {
  position: relative; display: inline-flex; align-items: center;
  font-family: var(--tg-font-sans);
  z-index: 999; color: #000; transition: color 0.3s ease-in-out;
  margin-left: .8rem; flex-shrink: 0;
}
#ls-widget .ls-btn {
  display: inline-flex; align-items: center; gap: 5px;
  background: none; border: none; cursor: pointer;
  padding: .7rem 1.6rem; font-size: 1.4rem; font-weight: 400;
  letter-spacing: .04em; color: inherit; opacity: 1; transition: opacity .15s;
}
#ls-widget .ls-btn:hover { opacity: .75; }
#ls-widget .ls-btn svg { width: 14px; height: 14px; flex: none; }
#ls-widget .ls-menu {
  position: absolute; top: calc(100% + 6px); right: 0;
  margin: 0; padding: 5px; list-style: none;
  background: #fff; color: #1a1a1a; border-radius: 10px;
  box-shadow: 0 8px 32px rgba(0,0,0,.18); min-width: 130px;
  opacity: 0; visibility: hidden; transform: translateY(-4px);
  transition: opacity .15s, transform .15s, visibility .15s; white-space: nowrap;
  z-index: 1000;
}
#ls-widget.open .ls-menu { opacity: 1; visibility: visible; transform: translateY(0); }
#ls-widget .ls-menu li {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 11px; border-radius: 7px; font-size: 13px; cursor: pointer;
}
#ls-widget .ls-menu li:hover { background: #f3f4f6; }
#ls-widget .ls-menu li.active { background: #eef2ff; color: #4338ca; font-weight: 600; }
#ls-widget .ls-flag { font-size: 12px; font-weight: 700; min-width: 16px; text-align: center; }

/* Color adaptation for dark/hero contexts */
.theme-dark-mode #ls-widget,
.has-hero-feature .site-header:not(.headroom--not-top) #ls-widget,
.home .site-header:not(.headroom--not-top) #ls-widget,
.site-menu--is-open #ls-widget { color: #fff; }
.theme-dark-mode .headroom--not-top #ls-widget,
.home .headroom--not-top #ls-widget { color: #000; }

.headroom--not-top .site-branding { width: 9.2rem; height: 4rem; }
.headroom--not-top .site-branding .logo-vert-alt { height: 5rem; width: auto; }
.headroom--not-top .site-branding path:not(.letter-c) { opacity: 0; }

.will-scroll .site-branding { width: 4rem; }

.site-branding .logo-vert-alt {
  display: block; height: 6.8rem; width: 100%; transition: all 0.3s ease-in-out;
}
.site-branding .logo-vert-alt path { transition: opacity 0.3s ease-in-out; }

/* ----------------------------------------------------------
   05 站点搜索 (site-search)
   ---------------------------------------------------------- */
.site-search { z-index: 998; margin-right: 3.5rem; }

.headroom--not-top .site-search { margin-right: 0.8rem; }
.headroom--not-top .site-search.is-open { position: relative; }
.headroom--not-top .site-search.is-open form {
  display: flex; border-width: 0;
  position: absolute; top: -1.3rem; right: -0.5rem;
  background-color: #000; padding: 1.4rem 4.2rem 1.4rem 1.5rem;
}
.headroom--not-top .site-search.is-open input[type=text]::placeholder { color: var(--tg-warm-gray); }
.headroom--not-top .site-search.is-open button[type=submit] {
  padding: 0.7rem 0.8rem; border: 1px solid #fff;
}
.headroom--not-top .site-search.is-open button[type=submit] svg path { fill: #fff; }
.headroom--not-top .site-search.is-open button[data-action=search-toggle] { border-color: var(--tg-warm-gray); }
.headroom--not-top .site-search.is-open button[data-action=search-toggle] .icon-search { display: none; }
.headroom--not-top .site-search.is-open button[data-action=search-toggle] .icon-close { display: flex; }
.headroom--not-top .site-search.is-open button[data-action=search-toggle] svg path { fill: var(--tg-warm-gray); }

.site-search form {
  border-style: solid; border-color: #000; border-width: 0 0 1px 0;
  transition: border-color 0.3s ease-in-out; display: flex; align-items: center;
}

.site-search input[type=text] {
  font-size: 16px; font-size: 1.6rem; line-height: 1.4; font-weight: 300;
  background: none; border-width: 0;
}

.headroom--not-top .site-search input[type=text] { color: #fff; }
.headroom--not-top .site-search input[type=text]::placeholder { color: #fff; }

.site-search button[type=submit] {
  background: none; border: none; color: #000; cursor: pointer;
  font-size: 1rem; padding: 0;
}
.site-search button[type=submit] svg { display: block; width: 1.4rem; height: 1.4rem; }
.site-search button[type=submit] svg path { transition: fill 0.3s ease-in-out; }

.site-search button[data-action=search-toggle] {
  padding: 0.7rem 0.8rem; background: transparent;
  display: none; width: 3.2rem; height: 3.2rem;
}
.site-search button[data-action=search-toggle] .icon-search,
.site-search button[data-action=search-toggle] .icon-close {
  display: flex; align-items: center; justify-content: center;
}
.site-search button[data-action=search-toggle] .icon-search svg,
.site-search button[data-action=search-toggle] .icon-close svg { width: 1.4rem; height: 1.4rem; }
.site-search button[data-action=search-toggle] .icon-close { display: none; }

.headroom--not-top .site-search button[data-action=search-toggle] { display: block; }
.headroom--not-top .site-search button[data-action=search-toggle] svg path { transition: all 0.3s ease-in-out; }
.headroom--not-top .site-search button[data-action=search-toggle]:hover,
.headroom--not-top .site-search button[data-action=search-toggle]:focus { background-color: #000; }
.headroom--not-top .site-search button[data-action=search-toggle]:hover svg path,
.headroom--not-top .site-search button[data-action=search-toggle]:focus svg path { fill: #fff; }

/* ----------------------------------------------------------
   05 站点菜单 (site-menu)
   ---------------------------------------------------------- */
.headroom--not-top .site-menu .site-menu__toggle { width: 6rem; padding: 0.3rem 1.7rem; }
.headroom--not-top .site-menu .site-menu__toggle--icon { margin-right: 0; }
.headroom--not-top .site-menu .site-menu__toggle--label { transform: scaleX(0); opacity: 0; }

.site-menu nav {
  display: flex; flex-direction: column; justify-content: flex-start;
  gap: clamp(2rem, 4vh, 10rem); position: absolute; top: 0; left: 0; right: 0;
  height: 100vh; overflow-x: hidden; padding-top: clamp(11rem, 20vh, 18rem);
  background-color: #000;
  background-image: url(https://www.curtis.edu/wp-content/themes/wp-content/themes/curtis/public/logo-menu-bg.svg);
  background-position: center bottom 0; background-repeat: no-repeat;
  background-size: 100% auto; color: #fff;
  transition: all 0.3s ease-in-out; transform: translateY(-100%);
}

.admin-bar .site-menu nav { height: calc(100vh - 3.2rem); }
.site-menu--is-open .site-menu nav { transform: translateY(0); }

.site-menu nav .menu, .site-menu nav .sub-menu {
  list-style-type: none; padding: 0; margin: 0;
}
.site-menu nav .menu a:hover, .site-menu nav .sub-menu a:hover { text-decoration: none; }

.site-menu nav .menu {
  width: 100%; max-width: 144rem; margin: 0 auto;
  position: relative; padding: 0 4rem;
}

.site-menu nav .menu > li { height: 6.5rem; width: 50%; line-height: 1; margin-bottom: 2rem; }
.site-menu nav .menu > li.site-menu__item--is-open { color: #fff; }
.site-menu nav .menu > li.site-menu__item--is-open button { color: #fff; }
.site-menu nav .menu > li.site-menu__item--is-open .menu__sub-menus { display: flex; }
.site-menu nav .menu > li.site-menu__item--is-closed { color: var(--tg-warm-gray); }
.site-menu nav .menu > li.site-menu__item--is-closed button { color: var(--tg-warm-gray); }

.site-menu nav .menu > li button {
  display: block; color: #fff; background: transparent;
  text-transform: none; padding: 0; border: 0;
}
.site-menu nav .menu > li button:hover { color: #fff; transition: all 0.3s ease-in-out; }
.site-menu nav .menu > li button:hover::after { left: 0; right: 0; width: 100%; }
.site-menu nav .menu > li button::after {
  display: block; content: ""; position: absolute; bottom: -0.8rem;
  left: 50%; right: 50%; width: 0; height: 0.2rem;
  background-color: #fff; transition: all 0.3s ease-in-out;
}

.site-menu nav .menu__sub-menus {
  display: none; position: absolute; left: 50%; right: 0; top: 0; bottom: 0; z-index: 9;
}
.site-menu nav .menu__sub-menus > div { flex: 1; }

.site-menu nav .menu__sub-menus .sub-menu > li {
  font-size: 16px; font-size: 1.6rem; line-height: 1.4;
  font-family: var(--tg-font-sans); margin-bottom: 0.9rem;
}
.site-menu nav .menu__sub-menus .sub-menu > li a {
  color: var(--tg-warm-gray); position: relative;
  display: inline-block; transition: color 0.3s ease-in-out;
}
.site-menu nav .menu__sub-menus .sub-menu > li a::after {
  display: block; content: ""; position: absolute;
  left: 50%; right: 50%; width: 0; height: 0.1rem;
  background-color: #fff; transition: all 0.3s ease-in-out;
}
.site-menu nav .menu__sub-menus .sub-menu > li a:hover { color: #fff; text-decoration: none; }
.site-menu nav .menu__sub-menus .sub-menu > li a:hover::after { left: 0; right: 0; width: 100%; }

.site-menu nav a { color: inherit; }
.site-menu nav .menu--secondary { max-width: 33rem; }
.site-menu nav .menu--secondary .menu__overview {
  font-size: 16px; font-size: 1.6rem;
  font-family: var(--tg-font-sans); font-weight: 300;
  line-height: 1.4; margin-bottom: 2.4rem; padding-right: 4.8rem;
}

.site-menu nav .menu__extras { display: flex; flex-direction: column; gap: 1.6rem; }
.site-menu nav .menu__extras .button { border-color: #fff; color: #fff; align-self: flex-start; }
.site-menu nav .menu__extras .button:hover { background-color: #fff; color: #000; }

.site-menu nav .menu--extra { padding-left: 2.4rem; }
.site-menu nav .menu--extra h4 {
  font-size: 16px; font-size: 1.6rem;
  font-family: var(--tg-font-sans); font-weight: 700;
  line-height: 1; margin-bottom: 1.6rem;
}

.site-menu__toggle {
  z-index: 998; position: relative;
  font-size: 16px; font-size: 1.6rem; line-height: 1.5; font-weight: 400;
  text-transform: none; display: flex; align-items: center;
  padding: 0.7rem 2.4rem; background: transparent;
  width: 12.8rem; transition: all 0.3s ease-in-out; transform-origin: left;
}
.site-menu__toggle:hover .site-menu__toggle--icon span,
.site-menu__toggle:focus .site-menu__toggle--icon span { background: #fff; }
.site-menu--is-open .site-menu__toggle { background: transparent; color: #fff; border-color: #fff; }

.site-menu__toggle--icon {
  display: inline-block; width: 2.4rem; height: 2.4rem;
  position: relative; transition: all 0.3s ease-in-out; transform-origin: left;
}
.site-menu--is-open .site-menu__toggle--icon span { background: #fff; }
.site-menu--is-open .site-menu__toggle--icon span:first-of-type { top: 1.1rem; transform: rotate(45deg); }
.site-menu--is-open .site-menu__toggle--icon span:last-of-type { top: 1.1rem; transform: rotate(-45deg); }

.site-menu__toggle--icon span {
  display: block; width: 2.4rem; height: 0.2rem;
  position: absolute; left: 0; right: 0; bottom: 0;
  background: #000; transition: all 0.3s ease-in-out;
}
.site-menu__toggle--icon span:first-of-type { top: 0.7rem; }
.site-menu__toggle--icon span:last-of-type { top: 1.5rem; }

.site-menu__toggle--label {
  transition: all 0.3s ease-in-out; transform-origin: left;
  transform: scaleX(1); opacity: 1; margin-left: 1.2rem;
}

.site-menu__quick-links {
  font-size: 16px; font-size: 1.6rem;
  flex-direction: column; row-gap: 0.8rem;
  justify-content: flex-start; align-items: flex-start;
  width: 100%; max-width: 144rem; margin: 0 auto;
  position: relative; padding: 0 4rem;
}
.site-menu__quick-links span {
  font-weight: 700; display: block; margin-bottom: 0.8rem; color: var(--tg-warm-gray);
}
.site-menu__quick-links ul {
  list-style-type: none; padding: 0; margin: 0; display: grid;
  grid-template-columns: repeat(3, 1fr);
  -moz-column-gap: 3.2rem; column-gap: 3.2rem; row-gap: 0.4rem; border: 0; width: 100%;
}
.site-menu__quick-links ul li { margin-left: 0; }
.site-menu__quick-links ul a {
  position: relative; display: inline-block; color: #fff; transition: all 0.3s ease-in-out;
}
.site-menu__quick-links ul a::after {
  display: block; content: ""; position: absolute;
  left: 50%; right: 50%; width: 0; height: 0.1rem;
  background-color: #fff; transition: all 0.3s ease-in-out;
}
.site-menu__quick-links ul a:hover { text-decoration: none; color: #fff; }
.site-menu__quick-links ul a:hover::after { left: 0; right: 0; width: 100%; }

/* site-secondary-menu — Curtis JS 滚动时动态插入到 header logo 后 */
.site-secondary-menu {
  font-size: 13px; font-size: 1.3rem;
  flex: auto; max-width: calc(100% - 20rem);
  overflow-y: auto; margin: 0 1.6rem;
}
.site-secondary-menu ul {
  list-style-type: none; padding: 0; margin: 0;
  display: flex; align-items: flex-start;
  justify-content: center; gap: 1.6rem; white-space: nowrap;
}
.site-secondary-menu li a {
  color: #000; position: relative;
  font-size: 13px; font-size: 1.3rem;
  display: block; font-weight: 500; line-height: 1.4;
  text-decoration: none;
}
.site-secondary-menu li a::after {
  display: block; content: ""; position: absolute;
  left: 50%; right: 50%; width: 0; height: 0.2rem;
  background-color: #000; transition: all 0.3s ease-in-out;
}
.site-secondary-menu li a:hover::after { left: 0; right: 0; width: 100%; }
.site-secondary-menu li a.active { font-weight: 700; }
.will-scroll .site-secondary-menu { max-width: calc(100% - 16rem); }
.will-scroll .site-secondary-menu ul { justify-content: flex-start; }

/* ----------------------------------------------------------
   06 next-steps / site-newsletter
   ---------------------------------------------------------- */
.next-steps {
  background-color: #fff; padding: 8rem 0 12rem; text-align: center;
}
.next-steps .next-steps__title { margin-bottom: 2.4rem; }
.next-steps .next-steps__description {
  font-size: 16px; font-size: 1.6rem;
  font-family: var(--tg-font-sans); font-weight: 300; line-height: 1.4;
  max-width: 68.4rem; margin: 0 auto 8rem;
}
.next-steps .next-steps__description * {
  font-family: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; margin: 0;
}
.next-steps .next-steps__items {
  list-style-type: none; padding: 0; margin: 0;
  display: flex; align-items: center; justify-content: center; margin-left: -2.4rem;
}
.next-steps .next-steps__item { margin-left: 2.4rem; }

.site-newsletter .container { display: flex; align-items: center; justify-content: center; }
.site-newsletter .container .button { margin-left: 4.8rem; }

/* ----------------------------------------------------------
   07 站点页脚 (site-footer)
   ---------------------------------------------------------- */
.site-footer { background-color: #000; color: #fff; padding: 4rem 0; }
.site-footer .container { max-width: 144rem; }
.site-footer a { color: #fff; }

.site-footer__links { display: flex; justify-content: space-between; margin-bottom: 4rem; }

.site-footer__links--social a {
  color: #fff; border-color: #fff; width: 4.2rem; height: 4.2rem;
}
.site-footer__links--social a:hover, .site-footer__links--social a:focus {
  color: #000; background-color: #fff;
}
.site-footer__links--social a:hover path, .site-footer__links--social a:focus path { fill: #000; }
.site-footer__links--social a svg { height: 1.8rem; }
.site-footer__links--social a path { fill: #fff; }

.site-footer__main { display: flex; padding: 0.8rem 0; }

.site-footer__main--contact {
  flex: 1; border-left: 1px solid #fff; padding: 0.8rem 0 0.8rem 4.8rem;
}
.site-footer__main--contact a { position: relative; display: inline-block; }
.site-footer__main--contact a::after {
  display: block; content: ""; position: absolute;
  left: 50%; right: 50%; width: 0; height: 0.1rem;
  background-color: #fff; transition: all 0.3s ease-in-out;
}
.site-footer__main--contact a:hover { color: #fff; text-decoration: none; }
.site-footer__main--contact a:hover::after { left: 0; right: 0; width: 100%; }

.site-footer__main--menu { display: flex; flex: 3; }
.site-footer__main--menu nav { display: flex; width: 100%; }
.site-footer__main--menu ul {
  font-size: 16px; font-size: 1.6rem;
  list-style-type: none; padding: 0; margin: 0; line-height: 1.4;
  width: 100%; -moz-column-count: 3; column-count: 3;
  -moz-column-gap: 0.8rem; column-gap: 0.8rem;
  position: relative; border-left: 1px solid #fff;
}
.site-footer__main--menu ul::before,
.site-footer__main--menu ul::after {
  content: ""; position: absolute; top: 0; bottom: 0; border-left: 1px solid #fff;
}
.site-footer__main--menu ul::before { left: 33.3333333333%; }
.site-footer__main--menu ul::after { left: 66.6666666667%; }

.site-footer__main--menu li { padding-left: 4.8rem; display: flex; margin-bottom: 0.8rem; }
.site-footer__main--menu a {
  color: #fff; font-weight: 300; position: relative; display: flex;
  align-self: flex-start; align-items: center; justify-content: flex-start;
  gap: 0.4rem; overflow: hidden;
}
.site-footer__main--menu a::before {
  display: block; content: ""; width: 1.4rem; height: 1.1rem;
  background-image: url(https://www.curtis.edu/wp-content/themes/wp-content/themes/curtis/public/curtis-dot-white.svg);
  background-size: contain; background-repeat: no-repeat;
  margin-left: -1.8rem; opacity: 0; transition: all 0.3s ease-in-out;
}
.site-footer__main--menu a:hover { color: #fff; text-decoration: none; transform: translate(0); }
.site-footer__main--menu a:hover::before { margin-left: 0; opacity: 1; }

.site-footer__logo { width: 100%; height: auto; margin: 0 auto; }

.site-footer__info {
  font-size: 13px; font-size: 1.3rem; font-weight: 500; line-height: 1.15;
  display: flex; justify-content: space-between; margin-top: 2.4rem; color: var(--tg-light-gray);
}
.site-footer__info p, .site-footer__info a {
  font-size: inherit; font-weight: inherit; line-height: inherit; color: inherit; margin: 0;
}
.site-footer__info a { position: relative; display: inline-block; }
.site-footer__info a::after {
  display: block; content: ""; position: absolute;
  left: 50%; right: 50%; width: 0; height: 0.1rem;
  background-color: #fff; transition: all 0.3s ease-in-out;
}
.site-footer__info a:hover { color: #fff; text-decoration: none; }
.site-footer__info a:hover::after { left: 0; right: 0; width: 100%; }
.site-footer__info .menu-legal-container ul {
  list-style-type: none; padding: 0; margin: 0; display: flex; gap: 1.6rem;
}

/* ----------------------------------------------------------
   08 module 基础
   ---------------------------------------------------------- */
.module { padding: 8rem 0; }
.module[id] { scroll-margin-top: 8rem; }
#faculty-list { scroll-margin-top: 8rem; }
/* 每张教授卡片的锚点偏移 */
li[id^="faculty-"] { scroll-margin-top: 8rem; }
.module table { width: 100%; }
.module .module__table { margin-top: 3.2rem; }
.module .module__table table { margin-top: 1.6rem; }
.module .module__table th, .module .module__table td { vertical-align: top; }
.module .module__table th { padding: 1rem 5rem 1rem 0; margin: 0; text-align: left; }
.module .module__table td { padding: 1rem 0; }
.module .module__table td span { display: block; }

.module .module__form .module__form--rows { list-style-type: none; padding: 0; margin: 0; }
.module .module__form .module__form--row { display: flex; gap: 1.6rem; margin-top: 1.6rem; }
.module .module__form .module__form--row:first-child { margin-top: 0; }
.module .module__form .module__form--field { flex: 1; }
.module .module__form .module__form--field.year { display: flex; gap: 1.2rem; }
.module .module__form .module__form--field.year > div:first-child,
.module .module__form .module__form--field.year > div:last-child { flex: 1; }
.module .module__form .module__form--field.year > div:nth-child(2) {
  font-size: 16px; font-size: 1.6rem; font-weight: 300;
}
.module .module__form .module__form--field input[type=text],
.module .module__form .module__form--field select {
  font-size: 16px; font-size: 1.6rem; line-height: 1.4; font-weight: 300;
  background: none; border: 1px solid #000; border-width: 0 0 1px 0; width: 100%;
}
.module .module__form .module__form--field input[type=text]::placeholder,
.module .module__form .module__form--field select::placeholder {
  font-size: 16px; font-size: 1.6rem; color: #000;
  font-style: normal; line-height: 1.3; transition: color 0.3s ease-in-out;
}

/* ----------------------------------------------------------
   09 module--callout
   ---------------------------------------------------------- */
.module--callout {
  background-image: url(https://www.curtis.edu/wp-content/themes/wp-content/themes/curtis/public/logo-bg.svg);
  background-repeat: no-repeat; background-size: calc(100% + 116px);
  background-position: -58px calc(100% + 30px);
  background-color: #fff; padding: 12rem 0 24.8rem;
  text-align: center; margin: 0;
}
.module--callout.logo-hide { background-image: none; }
.module--callout.bg-red {
  background-image: url(https://www.curtis.edu/wp-content/themes/wp-content/themes/curtis/public/logo-bg-alt.svg);
  background-color: var(--tg-red); color: #fff;
}
.module--callout.bg-red.logo-hide { background-image: none; }
.module--callout.title-small .module__title { margin-bottom: 8rem; }
.module--callout.title-small .module__description { letter-spacing: -0.72px; }
.module--callout.title-small .module__description p { letter-spacing: inherit; }
.module--callout.title-none .module__title {
  margin: -1px; padding: 0; width: 1px; height: 1px;
  overflow: hidden; clip: rect(0 0 0 0); position: absolute;
}
.module--callout .container { max-width: 98.2rem; }
.module--callout .module__title { margin-bottom: 2.4rem; }
.module--callout .module__description {
  font-size: 32px; font-size: 3.2rem;
  font-family: var(--tg-font-display); font-weight: 400;
  line-height: 1; margin-bottom: 8rem;
}
.module--callout .module__description * {
  font-family: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; margin: 0;
}
.module--callout ul {
  list-style-type: none; padding: 0; margin: 0;
  display: flex; align-items: center; justify-content: center; margin-left: -2.4rem;
}
.module--callout .module__item { margin-left: 2.4rem; }
.module--callout .module__item .button.bg-white { background-color: #fff; border-color: #fff; color: #000; }
.module--callout .module__item .button.bg-white:hover { background-color: #000; border-color: #000; color: #fff; }
.module--callout .module__item .button.bg-white:hover::after { background-color: #fff; }
.module--callout .module__item .button.bg-red { background-color: var(--tg-red); border-color: var(--tg-red); color: #fff; }
.module--callout .module__item .button.bg-red:hover { background-color: #000; border-color: #000; color: #fff; }
.module--callout .module__item .button.bg-red:hover::after { background-color: #fff; }

/* ----------------------------------------------------------
   10 module--feature
   ---------------------------------------------------------- */
.module--feature { padding: 8rem 3.2rem; }
.module--feature .container {
  max-width: 115.5rem; display: flex; align-items: center;
  border: 1px solid #000; border-width: 1px 0; margin: 8rem auto;
}
.module--feature .module__content {
  flex: 30%; display: flex; flex-direction: column;
  gap: 4rem; padding: 3.2rem 7rem 3.2rem 1.6rem; text-align: center;
}
.module--feature .module__content .button { align-self: center; }
.module--feature .module__title a { text-decoration: none; }
.module--feature .module__description > *:last-child { margin-bottom: 0; }
.module--feature .module__image { flex: 60%; }
.module--feature .module__image a { display: block; margin: -8rem 0; }
.module--feature .module__image img { display: block; width: 100%; height: auto; }

.module--feature.image-left .module__image { order: 1; }
.module--feature.image-left .module__content {
  order: 2; text-align: left; padding: 3.2rem 1.6rem 3.2rem 4.8rem;
}
.module--feature.image-left .module__content .button { align-self: flex-start; }

.module--feature.image-left.style-multiple .container .module__content {
  text-align: left; padding: 3.2rem 1.6rem 3.2rem 4.8rem;
}
.module--feature.image-left.style-multiple .container .module__content .button { align-self: flex-start; }

.module--feature.style-outer .container { padding: 0; margin: 0 auto; }
.module--feature.style-outer .module__image { flex: 50%; }
.module--feature.style-outer .module__image a { margin: 7.2rem 0; }
.module--feature.style-outer .module__content { flex: 50%; text-align: center; }
.module--feature.style-outer .module__content .button { align-self: center; }

.module--feature.style-multiple {
  background-image: url(https://www.curtis.edu/wp-content/themes/wp-content/themes/curtis/public/line-group-horz-1.svg);
  background-position: center calc(100% - 2.4rem);
  background-size: auto; background-repeat: repeat-x; margin: 8rem 0;
}
.module--feature.style-multiple .container { border: 0; margin: 0 auto; }
.module--feature.style-multiple .container .module__content {
  text-align: right; padding: 3.2rem 4.8rem 3.2rem 1.6rem;
}
.module--feature.style-multiple .container .module__content .button { align-self: flex-end; }

/* ----------------------------------------------------------
   11 module__hero
   ---------------------------------------------------------- */
.module__hero { padding: 0; }
.module__hero--image { padding-bottom: 8rem; }
/* Hero image container — responsive aspect ratio */
.module__hero--image .module__feature {
  position: relative; overflow: hidden; aspect-ratio: 16/9; width: 100%;
}
.module__hero--image .module__feature img {
  position: absolute; top: 0; left: 0;
  width: 100%; height: 100%; object-fit: cover; display: block;
}
@media (max-width: 999px) {
  .module__hero--image .module__feature { aspect-ratio: 4/3; }
}
.module__hero--image .module__title { margin-bottom: 2rem; }
.module__hero--image .module__menu { margin: 2.5rem 0; }
.module__hero--image .module__menu ul {
  list-style-type: none; padding: 0; margin: 0; display: flex; align-items: flex-start;
}
.module__hero--image .module__menu li { padding-right: 1.6rem; }
.module__hero--image .module__menu li:last-child { padding-right: 0; }
.module__hero--image .module__menu a {
  color: #000; position: relative; font-size: 13px; font-size: 1.3rem;
  display: block; font-weight: 500; line-height: 1.4;
}
.module__hero--image .module__menu a::after {
  display: block; content: ""; position: absolute;
  left: 50%; right: 50%; width: 0; height: 0.2rem;
  background-color: #000; transition: all 0.3s ease-in-out;
}
.module__hero--image .module__menu a:hover { text-decoration: none; }
.module__hero--image .module__menu a:hover::after { left: 0; right: 0; width: 100%; }

.module__hero--event .module__feature { position: relative; z-index: 0; }
.module__hero--event .module__header {
  background: var(--tg-off-white); color: #000; padding: 3.2rem;
  margin: -4rem 11.8rem 8rem; text-align: center; position: relative; z-index: 1;
}

.module__hero--person .module__header {
  display: flex; text-align: center; border: 1px solid #000; border-width: 0 1px;
  max-width: 97rem; padding: 1.6rem 4.8rem 4rem; margin: 4.8rem auto 0;
  flex-direction: column; align-items: center; gap: 3.2rem;
}

.module__hero--article .module__header {
  display: flex; text-align: center; border: 1px solid #000; border-width: 0 1px;
  max-width: 97rem; padding: 1.6rem 4.8rem 4rem; margin: 4.8rem auto 0;
  flex-direction: column; align-items: center; gap: 4.8rem;
}
.module__hero--article .module__title { order: 2; }
.module__hero--article .module__feature { order: 3; }

.module__hero .module__feature {
  background-size: cover; background-position: center; aspect-ratio: 16/9;
}
.module__hero .module__feature img { display: none; }

.module__hero .module__intro {
  margin-top: 4rem; display: flex; align-items: flex-start; justify-content: space-between;
}
.module__hero .module__intro--content { flex: 2; max-width: 48%; margin: 0; }
.module__hero .module__intro--content [data-layout=heading] { margin-left: 0; }
.module__hero .module__intro--content [data-layout=text] { margin-left: 6.4rem; }
.module__hero .module__intro--sidebar {
  flex: 1; text-align: center; border: 1px solid #000; border-width: 0 1px;
  padding: 1.6rem 1.6rem 3.2rem; max-width: 38%;
}
.module__hero .module__intro--sidebar > ul {
  list-style-type: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 3.2rem;
}
.module__hero .module__intro--sidebar > ul li {
  display: flex; flex-direction: column; gap: 1.6rem;
  justify-content: center; align-items: center;
}
.module__hero .module__intro--sidebar > ul li.quote figure {
  display: flex; flex-direction: column; gap: 1.6rem; padding: 0 3.2rem;
}
.module__hero .module__intro--sidebar > ul li.quote blockquote { font-style: italic; }
.module__hero .module__intro--sidebar > ul li.quote blockquote p {
  font-family: inherit; font-style: inherit; font-size: inherit; font-weight: inherit;
}
.module__hero .module__intro--sidebar > ul li.quote blockquote p:last-child { margin-bottom: 0; }
.module__hero .module__intro--sidebar > ul li.quote cite {
  color: #000; font-weight: 700; font-style: normal;
}
.module__hero .module__intro--sidebar > ul li.quote cite p { font-size: inherit; font-weight: inherit; }
.module__hero .module__intro--sidebar > ul li *:last-child { margin-bottom: 0; }

.module__hero .module__slide {
  position: relative; width: 100%; aspect-ratio: 16/9;
}
.module__hero .module__slide.has-banner { margin-bottom: 20rem; }
.module__hero .module__slide--image { background-size: cover; background-position: center; }
.module__hero .module__slide--video { display: block; content: ""; }
.module__hero .module__slide--video video {
  position: absolute; top: 0; left: 0; bottom: 0; width: 100%;
}
.module__hero .module__slide--video.video-error {
  background-color: var(--tg-off-white); display: flex; align-items: center; justify-content: center;
}
.module__hero .module__slide--video.video-error::after { content: "Video unavailable"; font-size: 1.4rem; }

.module__hero .module__slide--banner {
  background: var(--tg-off-white); color: #000; padding: 3.2rem 2.4rem;
  position: absolute; bottom: 0; left: 11.8rem; right: 11.8rem;
  min-height: 24rem; display: flex; gap: 2.4rem;
}
.module__hero .module__slide--button {
  width: 9rem; display: flex; justify-content: center; align-items: center;
}
.module__hero .module__slide--button button {
  width: 4.8rem; height: 4.8rem; border-radius: 100%;
  background-color: #fff; border: 0; padding: 1.2rem; text-align: center;
}
.module__hero .module__slide--button button:hover { background-color: #000; }
.module__hero .module__slide--button button:hover svg path { stroke: #fff; }
.module__hero .module__slide--button button[data-action=previous] svg {
  transform: rotate(180deg); margin: 0 0.4rem 0 0;
}
.module__hero .module__slide--button button svg { margin-left: 0.4rem; }
.module__hero .module__slide--button button svg path { stroke: #000; transition: all 0.3s ease-in-out; }

.module__hero .module__slide--content {
  text-align: center; display: flex; flex: auto;
  flex-direction: column; justify-content: center; gap: 1.6rem;
}
.module__hero .module__slide--content h2 a { text-decoration: none; }
.module__hero .module__slide--content h3 { align-self: center; }
.module__hero .module__slide--content p:last-of-type { margin-bottom: 0.8rem; }
.module__hero .module__slide--content .button { align-self: center; }

/* ----------------------------------------------------------
   12 module--statistics
   ---------------------------------------------------------- */
.module--statistics__list { display: flex; margin: 0 0 0 -2.4rem; }
.module--statistics__item {
  display: flex; flex-direction: column; justify-content: flex-start;
  flex: 1; gap: 3.2rem; border: 1px solid #000; border-width: 0 1px;
  margin-left: 2.4rem; padding: 1.6rem 4.8rem; text-align: center;
}
.module--statistics__item--value {
  font-size: 90px; font-size: 9rem; line-height: 1; color: var(--tg-red); order: 2;
}
.module--statistics__item--label { order: 1; }
.module--statistics__item--description {
  display: flex; flex-direction: column; align-items: center;
  justify-content: flex-start; flex: 1; order: 3; margin: 0;
}
.module--statistics__item--description p { margin: 0; }

/* ----------------------------------------------------------
   13 module--news-list
   ---------------------------------------------------------- */
.module--news-list .module__header { text-align: center; }
.module--news-list .module__content--list { display: block; }
.module--news-list .module__content { padding: 0 0 4.8rem; }
.module--news-list .module__content ul { list-style-type: none; padding: 0; margin: 0; }
.module--news-list .module__content li { margin-top: 7.2rem; }
.module--news-list .module__content article {
  display: flex; align-items: center;
  border: 1px solid #000; border-width: 0 1px; padding: 4rem 4.8rem;
}
.module--news-list .module__content .module__info {
  flex: 1; display: flex; flex-direction: column;
  justify-content: center; align-items: center; padding: 0 8rem;
}
.module--news-list .module__content header {
  display: flex; flex-direction: column; text-align: center; padding: 0 0 2.4rem;
}
.module--news-list .module__content h2 { order: 2; }
.module--news-list .module__content time { order: 1; align-self: center; margin-bottom: 2.4rem; }
.module--news-list .module__content .module__text { text-align: center; }
.module--news-list .module__content .button { margin-top: auto; background: transparent; }
.module--news-list .module__content .button:hover,
.module--news-list .module__content .button:focus,
.module--news-list .module__content .button:active { background: #000; color: #fff; }
.module--news-list .module__content .module__image {
  flex: 1; background-size: cover; background-position: center;
  position: relative; padding-top: 29.9rem; margin-left: 2.4rem; width: 100%; margin-top: auto;
}
.module--news-list .module__content .module__image img { position: absolute; top: 0; left: 0; z-index: -1; }
.module--news-list .module__content .module__footer { display: none; }

/* ----------------------------------------------------------
   14 people-faculty
   ---------------------------------------------------------- */
.module--people-faculty .container { display: flex; flex-direction: column; gap: 4.8rem; }
.module--people-faculty .module__header { text-align: center; }
.module--people-faculty .module__content--list {
  list-style-type: none; padding: 0; margin: 0;
  display: flex; flex-wrap: wrap; justify-content: center;
  gap: 3.2rem; padding: 0 6rem;
  --column-width: calc((100% - 2 * 3.2rem) / 3);
}
.module.faculty .module__footer { text-align: center; }

.people-faculty__person { flex: 0 0 var(--column-width); display: flex; text-align: center; }
.people-faculty__person a {
  display: flex; flex-direction: column; gap: 2.4rem; padding: 1.6rem 4.8rem;
  border: 1px solid #000; border-width: 0 1px;
  transition: background-color 0.3s ease-in-out; width: 100%;
}
.people-faculty__person a:hover { text-decoration: none; background-color: var(--tg-off-white); }
.people-faculty__person a:hover .button { background-color: #000; color: #fff; }
.people-faculty__person--header h4 { display: flex; align-items: center; justify-content: center; min-height: 3em; }
.people-faculty__person--image { display: flex; justify-content: center; align-items: center; }
.people-faculty__person--text { color: #000; font-weight: 500; letter-spacing: 0.3px; }

.module--people-search { background-color: #fff; }
.module--people-search .container { display: flex; flex-direction: column; gap: 4.8rem; }
.module--people-search .module__intro { display: flex; gap: 4.8rem; margin-bottom: 4.8rem; }
.module--people-search .module__header { flex: 1; }
.module--people-search .module__form { flex: 1; }
.module--people-search .module__content--list ul {
  list-style-type: none; padding: 0; margin: 0;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 3.2rem; padding: 0 6rem;
}
.module--people-search .module__content--list li a {
  display: flex; padding: 0.8rem 3.2rem; border: 1px solid #000; border-width: 0 1px;
  transition: background-color 0.3s ease-in-out;
}
.module--people-search .module__content--list li a:hover {
  text-decoration: none; background-color: var(--tg-off-white);
}
.module--people-search .module__content--list li .module__image { flex: 1; }
.module--people-search .module__content--list li .module__image img,
.module--people-search .module__content--list li .module__image svg,
.module--people-search .module__content--list li .module__image .default-image {
  display: block; width: 6rem; height: 6rem;
}
.module--people-search .module__content--list li .module__image .default-image {
  background-size: cover; background-repeat: no-repeat; background-position: center;
}
.module--people-search .module__content--list li .module__info {
  flex: 2; display: flex; flex-direction: column;
  justify-content: space-between; padding: 0 1.6rem; gap: 0.8rem;
}
.module--people-search.faculty .module__content--list .people-faculty__person h4 {
  display: flex; align-items: center; justify-content: center; min-height: 3em;
}
.module--people-search .module__content--footer { text-align: center; }

/* module.faculty */
.module.faculty .container { display: flex; flex-direction: column; gap: 4.8rem; }
.module.faculty .module__content--list ul {
  list-style-type: none; padding: 0; margin: 0;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 3.2rem; padding: 0 6rem;
}
.module.faculty .module__content--list .people-faculty__person h4 {
  display: flex; align-items: center; justify-content: center; min-height: 3em;
}

/* ----------------------------------------------------------
   15 module--link-groups
   ---------------------------------------------------------- */
.module--link-groups .container {
  max-width: 115.6rem; position: relative; padding: 1.6rem 11.8rem;
}
.module--link-groups .container::before,
.module--link-groups .container::after {
  content: ""; display: block; position: absolute; top: 0; bottom: 0;
  width: 0.1rem; background-color: #000;
}
.module--link-groups .container::before { left: 0; }
.module--link-groups .container::after { right: 0; }
.module--link-groups .module--link-groups--intro { margin-top: 2.4rem; }
.module--link-groups .module--link-groups--groups {
  display: flex; flex-direction: column; gap: 3.2rem; margin-top: 4.8rem;
}
.module--link-groups .module__link-groups--group {
  border-top: 1px solid #000; padding: 1.6rem 0;
}
.module--link-groups .module__link-groups--group--label { margin-bottom: 0.8rem; }
.module--link-groups .module__link-groups--group--main { display: flex; gap: 4.8rem; }
.module--link-groups .module__link-groups--group--primary {
  display: flex; flex-direction: column; gap: 3.2rem;
}
.module--link-groups .module__link-groups--group--intro *:last-child { margin-bottom: 0; }
.module--link-groups .module__link-groups--group--buttons ul {
  list-style-type: none; padding: 0; margin: 0;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.4rem;
}
.module--link-groups .module__link-groups--group--buttons li .button {
  width: 100%; text-align: center;
}
.module--link-groups .module__link-groups--group--image img {
  display: block; min-width: 100%; max-width: 15.5rem; height: auto;
}

/* ----------------------------------------------------------
   16 module--section
   ---------------------------------------------------------- */
.module--section + .module--section { padding-top: 0; }
.module--section.bg-white { background-color: #fff; }
.module--section.bg-black, .module--section.bg-red {
  padding: 6rem 0; margin-bottom: 6rem; color: #fff;
}
.module--section.bg-black a, .module--section.bg-red a { color: #fff; }
.module--section.bg-black a:hover, .module--section.bg-red a:hover {
  color: #fff; text-decoration: none;
}
.module--section.bg-black .module__content--links ul li a,
.module--section.bg-red .module__content--links ul li a { color: #fff; }
.module--section.bg-black .module__content--links ul li a:hover::after,
.module--section.bg-red .module__content--links ul li a:hover::after { background-color: #fff; }
.module--section.bg-black .container::before,
.module--section.bg-black .container::after,
.module--section.bg-red .container::before,
.module--section.bg-red .container::after { background-color: #fff; }

.module--section .container {
  max-width: 92rem; position: relative; padding: 1.6rem 11.8rem;
}
.module--section .container::before,
.module--section .container::after {
  content: ""; display: block; position: absolute; top: 0; bottom: 0;
  width: 0.1rem; background-color: #000;
}
.module--section .container::before { left: 0; }
.module--section .container::after { right: 0; }
.module--section .module__header { margin-bottom: 2rem; }
.module--section .module__contents { display: flex; flex-direction: column; gap: 0.8rem; }
.module--section .module__contents .module__content { flex-direction: column; gap: 1.6rem; }
.module--section .module__content:last-child { margin-bottom: 0; }
.module--section .module__content:last-child *:last-child { margin-bottom: 0; }
.module--section .module__content--text { margin-bottom: 0; }
.module--section .module__content--text h3 { margin-bottom: 1.6rem; }
.module--section .module__content--image { margin-bottom: 2rem; }
.module--section .module__content--button { display: flex; }
.module--section .module__content--button .button { align-self: flex-start; }
.module--section .module__content--links ul {
  list-style-type: none; padding: 0; margin: 0;
  font-size: 16px; font-size: 1.6rem; line-height: 1.15;
}
.module--section .module__content--links li { margin-bottom: 0.8rem; }
.module--section .module__content--links a {
  color: #000; position: relative; text-transform: uppercase;
  font-weight: 700; display: inline-block;
}
.module--section .module__content--links a::after {
  display: block; content: ""; position: absolute; left: 50%; right: 50%;
  width: 0; height: 0.1rem; background-color: #000; transition: all 0.3s ease-in-out;
}
.module--section .module__content--links a:hover { text-decoration: none; }
.module--section .module__content--links a:hover::after { left: 0; right: 0; width: 100%; }
.module--section .module__content--accordion { margin-top: 1.6rem; }
.module--section .module__content--accordion > ul { list-style-type: none; padding: 0; margin: 0; }
.module--section .module__content--accordion > ul > li {
  border-top: 1px solid #000; padding: 1.6rem 0;
}
.module--section .module__content--accordion details[open] summary::after { transform: rotate(180deg); }
.module--section .module__content--accordion details > div { padding-top: 1.6rem; }
.module--section .module__content--accordion summary { margin: 0; padding-right: 3.2rem; position: relative; }
.module--section .module__content--accordion summary::after {
  content: ""; display: block; position: absolute; right: 0; top: -0.3rem;
  width: 2.4rem; height: 2.4rem;
  background-image: url(https://www.curtis.edu/wp-content/themes/wp-content/themes/curtis/public/carat.svg);
  background-size: contain; background-repeat: no-repeat; background-position: center;
  transform: rotate(0); transform-origin: center; transition: transform 0.3s ease-in-out;
}
.module--section .module__content--accordion summary:hover { cursor: pointer; }
.module--section .module__content--video { margin-top: 3.2rem; }
.module--section .module__content--embed { margin-bottom: 2.4rem; }
.module--section .module__content--slideshow .module__content--slideshow--counter { margin: 0; }
.module--section .module__content--slideshow .module__content--slideshow--nav {
  display: flex; align-items: center; justify-content: space-between; margin-top: 0.8rem;
}
.module--section .module__content--slideshow .module__content--slideshow--paging ul {
  list-style-type: none; padding: 0; margin: 0; display: flex; align-items: center; gap: 0.8rem;
}
.module--section .module__content--slideshow .module__content--slideshow--paging button { padding: 0.6rem; }
.module--section .module__content--slideshow .module__content--slideshow--paging button[data-action=previous] svg {
  transform: rotate(180deg);
}
.module--section .module__content--slideshow .module__content--slideshow--paging button:hover svg path,
.module--section .module__content--slideshow .module__content--slideshow--paging button:focus svg path {
  stroke: #fff;
}
.module--section .module__content--slideshow .module__content--slideshow--paging button svg {
  display: block; width: 1.6rem; height: 1.6rem;
}
.module--section .module__content--slideshow .module__content--slideshow--paging button svg path {
  stroke: #000; transition: all 0.3s ease-in-out;
}

/* ----------------------------------------------------------
   17 module--events / module--events-list
   ---------------------------------------------------------- */
.module--events .container { display: flex; align-items: stretch; gap: 6.6rem; }
.module--events .module__content { width: 100%; max-width: 100%; overflow: hidden; }
.module--events .module__content ul {
  list-style-type: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; height: 100%; width: 100%;
}
.module--events .module__content li {
  flex: 1; display: flex; flex-direction: column;
  background-color: var(--contrast-color, #fff); transition: all 0.3s ease;
}
.module--events .module__content li:hover { transform: scale(1.05); }
.module--events .module__content li > a {
  flex: 1; display: flex; flex-direction: column;
  justify-content: center; align-items: center; overflow: hidden;
}
.module--events .module__content li > a:hover { text-decoration: none; }
.module--events .module__content li .module__info {
  flex: 1; display: flex; flex-direction: column;
  justify-content: center; align-items: center; margin-bottom: 3.2rem;
}
.module--events .module__content li header {
  display: flex; flex-direction: column; text-align: center; padding: 3.2rem 8rem;
}
.module--events .module__content li h2 { order: 3; }
.module--events .module__content li h3 {
  font-size: 10px; font-size: 1rem; font-family: var(--tg-font-sans);
  font-weight: 500; line-height: 1.15; text-transform: uppercase; order: 2; margin-bottom: 1.6rem;
}
.module--events .module__content li time {
  order: 1; margin-bottom: 4.4rem; display: inline-block; align-self: center; white-space: nowrap;
}
.module--events .module__content li .module__image {
  display: block; background-size: cover; background-position: center;
  position: relative; padding-top: 100%; width: 100%; margin-top: auto;
}
.module--events .module__content li .module__image img {
  position: absolute; top: 0; left: 0; right: 0; z-index: -1; visibility: hidden; width: 100%;
}
.module--events .module__description {
  font-size: 18px; font-size: 1.8rem; font-weight: 400; margin-bottom: 4rem;
}
.module--events .module__description * { font-size: inherit; font-weight: inherit; }
.module--events .module__description strong { font-weight: 600; }

.module--events-list[data-view=calendar] .module__content--list { display: none; }
.module--events-list[data-view=list] .module__content--list { display: block; }
.module--events-list[data-view=list] .module__content { padding: 9rem 0; }
.module--events-list[data-view=list] .module__content ul {
  list-style-type: none; padding: 0; margin: 0;
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  -moz-column-gap: 6.6rem; column-gap: 6.6rem; row-gap: 6.6rem;
}
.module--events-list[data-view=list] .module__content li {
  background-color: #fff; display: flex; transition: all 0.3s ease;
}
.module--events-list[data-view=list] .module__content li:hover {
  color: var(--tg-red); transform: scale(1.05);
}
.module--events-list[data-view=list] .module__content li:hover .button {
  background-color: var(--tg-red); border-color: var(--tg-red); color: #fff;
}
.module--events-list[data-view=list] .module__content li > a {
  flex: 1; display: flex; flex-direction: column;
  justify-content: center; align-items: center; overflow: hidden;
}
.module--events-list[data-view=list] .module__content li > a:hover {
  text-decoration: none; color: var(--tg-red);
}
.module--events-list[data-view=list] .module__content li .module__info {
  flex: 1; display: flex; flex-direction: column;
  justify-content: center; align-items: center; margin-bottom: 3.2rem;
}
.module--events-list[data-view=list] .module__content li header {
  display: flex; flex-direction: column; text-align: center; padding: 3.2rem 8rem;
}
.module--events-list[data-view=list] .module__content li h2 { order: 3; }
.module--events-list[data-view=list] .module__content li h3 {
  font-size: 10px; font-size: 1rem; font-family: var(--tg-font-sans);
  font-weight: 500; line-height: 1.15; text-transform: uppercase; order: 2; margin-bottom: 1.6rem;
}
.module--events-list[data-view=list] .module__content li time {
  order: 1; align-self: center; white-space: nowrap; margin-bottom: 4.4rem;
}
.module--events-list[data-view=list] .module__content li .button { margin-top: auto; }
.module--events-list[data-view=list] .module__content li .module__image {
  background-size: cover; background-position: center;
  position: relative; padding-top: 34rem; width: 100%; margin-top: auto;
}
.module--events-list[data-view=list] .module__content li .module__image img {
  position: absolute; top: 0; left: 0; z-index: -1;
}

/* ----------------------------------------------------------
   18 site-search__contents
   ---------------------------------------------------------- */
.site-search__contents .container { display: flex; flex-direction: column; gap: 8rem; }
.site-search__contents .site-search__header .site-search { z-index: 1; margin: 0; }
.site-search__contents .site-search__header .site-search form {
  width: 100%; justify-content: space-between;
}
.site-search__contents .site-search__header .site-search input[type=text] {
  flex: auto; padding-right: 2.4rem;
}
.site-search__contents .site-search__header .site-search button svg { width: 3.2rem; height: 3.2rem; }

/* ----------------------------------------------------------
   19 misc modules
   ---------------------------------------------------------- */
.module--divider + .module--section { margin-top: 8rem; }
.module--divider--article .container { max-width: 97rem; padding: 0 14.4rem; }

.module--promo .container { max-width: 92rem; position: relative; padding: 0; }
.module--promo .container::before, .module--promo .container::after {
  content: ""; display: block; position: absolute; top: 0; bottom: 0;
  width: 0.1rem; background-color: #000;
}
.module--promo .container::before { left: 0; }
.module--promo .container::after { right: 0; }

.module--quotes .container { max-width: 97rem; border: 1px solid #000; border-width: 1px 0; }
.module--quotes .module__content {
  flex: 1; order: 2; padding: 2.4rem 4.8rem; text-align: center;
  background: #fff; margin: -8rem 8rem 0;
}
.module--quotes .module__content.no-image { margin-top: 0; }
.module--quotes .module__description { margin-bottom: 2rem; }
.module--quotes .module__description blockquote { margin: 1em 0; }
.module--quotes .module__description blockquote p { font-style: italic; line-height: 1.5; }
.module--quotes .module__description cite p {
  font-size: 10px; font-size: 1rem; line-height: 1.15; font-weight: 700;
  text-transform: uppercase; margin-bottom: 0.4rem; font-style: normal;
}
.module--quotes .module__description cite span { color: var(--tg-warm-gray); }
.module--quotes .module__image {
  flex: 1; order: 1; background-size: cover; background-position: center; padding-top: 52.73%;
}
.module--quotes .module__image img { display: none; }

.module__single--event .module__intro h2 {
  font-size: 32px; font-size: 3.2rem;
  font-family: var(--tg-font-sans); line-height: 1.30625; font-weight: 300; margin-bottom: 4.8rem;
}

.single-work .module__single--work .module__intro h2 {
  font-size: 32px; font-size: 3.2rem;
  font-family: var(--tg-font-sans); line-height: 1.30625; font-weight: 300; margin-bottom: 4.8rem;
}

.module--hero-feature {
  position: relative; overflow: hidden;
  display: flex; align-items: flex-end; justify-content: center;
  padding: 0; margin: 0; width: 100%; max-width: 100%;
  aspect-ratio: 16/9; background-color: #000;
}
.module--hero-feature .module__background {
  position: absolute; top: 0; left: 0;
  width: 100%; height: 100%; z-index: 0;
  display: flex; align-items: center; justify-content: center;
}
.module--hero-feature .module__background-image,
.module--hero-feature .module__background-video {
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%); z-index: -1;
  width: 100%; height: 100%; object-fit: cover;
}
.module--hero-feature .module__overlay {
  position: absolute; top: 0; left: 0;
  width: 100%; height: 100%;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,0.5));
  pointer-events: none; z-index: 0;
}
.module--hero-feature .container { max-width: 144rem; padding: 0 4rem; z-index: 1; }
.module--hero-feature .module__content { margin: 0 auto 0 0; max-width: 80rem; padding: 4.2rem 0; }
.module--hero-feature .module__heading {
  font-size: 64px; font-size: 6.4rem;
  font-family: var(--tg-font-display);
  color: #fff; max-width: 80rem; margin: 0;
}
.module--hero-feature .module__cta {
  margin-top: 4rem; display: flex;
  column-gap: 2.4rem; row-gap: 1.6rem; flex-wrap: wrap;
}
.module--hero-feature .module__cta .button--medium.button--secondary {
  background-color: #fff; color: #000; border-color: #fff;
}
.module--hero-feature .module__cta .button--medium.button--secondary:hover,
.module--hero-feature .module__cta .button--medium.button--secondary:focus {
  background-color: transparent; color: #fff; border-color: #fff;
}
/* .home（首页）专用：header absolute，视频从顶部开始 */
.home .site-header {
  background: transparent;
  position: absolute; width: 100%; z-index: 998;
}
.home .site-header.headroom--not-top {
  position: fixed;
  background: rgba(255,255,255,0.85);
  -webkit-backdrop-filter: blur(4rem); backdrop-filter: blur(4rem);
}
/* 首页顶部（深色视频背景）：所有header元素白色可见 */
.home .site-header:not(.headroom--not-top) .site-menu__toggle--icon span { background-color: #fff; }
.home .site-header:not(.headroom--not-top) .site-menu__toggle--label { color: #fff; }
.home .site-header:not(.headroom--not-top) .site-menu__toggle { color: #fff; border-color: #fff; }
.home .site-header:not(.headroom--not-top) #ls-widget { color: #fff; }
.home .site-header:not(.headroom--not-top) .site-search button svg path { fill: #fff; }
/* 首页滚动后（浅色背景）：恢复黑色 */
.home .site-header.headroom--not-top .site-menu__toggle--icon span { background-color: #000; }
.home .site-header.headroom--not-top .site-menu__toggle--label { color: #000; }
.home .site-header.headroom--not-top #ls-widget { color: #000; }
/* 首页 hero-feature 视频填满完整视口 */
.home .module--hero-feature {
  position: relative; overflow: hidden;
  display: flex; align-items: flex-end; justify-content: center;
  padding: 0; width: 100%; max-width: 100%;
  min-height: 100vh; background-color: #000;
  margin-top: -6.8rem;
}

/* .has-hero-feature（/about等）：header白色背景，元素黑色 */
.has-hero-feature .site-header {
  background: #fff;
}
/* server.js 有更高特异性规则设 filter:none，用 !important 强制覆盖 */
.has-hero-feature .site-header .site-branding img.logo-vert-alt {
  filter: invert(1) !important;
}
.has-hero-feature .site-header .site-menu__toggle--icon span {
  background-color: #000 !important;
}
.has-hero-feature .site-header .site-menu__toggle--label { color: #000 !important; }
.has-hero-feature .site-header #ls-widget { color: #000 !important; }
/* 菜单打开时：黑色遮罩背景，元素改为白色 */
.has-hero-feature .site-header.site-menu--is-open .site-branding img.logo-vert-alt {
  filter: none !important;
}
.has-hero-feature .site-header.site-menu--is-open .site-menu__toggle--icon span {
  background-color: #fff !important;
}
.has-hero-feature .site-header.site-menu--is-open .site-menu__toggle--label { color: #fff !important; }
.has-hero-feature .site-header.site-menu--is-open #ls-widget { color: #fff !important; }

.module--links .container { max-width: 91.8rem; }
.module--links .module__title { margin-bottom: 2.4rem; }
.module--links .module__description {
  font-size: 32px; font-size: 3.2rem;
  font-family: var(--tg-font-display); font-weight: 400;
  line-height: 1; margin-bottom: 8rem;
}
.module--links .module__description * {
  font-family: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; margin: 0;
}

.module--people-featured .container { max-width: 96rem; display: flex; flex-direction: column; gap: 8rem; }
.module--people-featured .module__image { width: 50%; background-size: cover; background-position: center; }
.module--people-featured .module__image img { display: block; width: 100%; height: auto; }
.module--people-featured .module__info .button { align-self: center; color: #fff; border-color: #fff; }
.module--people-featured .module__info .button:hover { background: #fff; color: #000; }

/* ----------------------------------------------------------
   20 响应式 (max-width: 999px)
   ---------------------------------------------------------- */
@media (max-width: 999px) {
  h1, .h1, .module--statistics__item--value { font-size: 60px; font-size: 6rem; }
  h2, .h2,
  .module--people-list .people-list__title,
  .module--people-search .module__title,
  .module--news-list .module__title,
  .module--link-groups .module--link-groups--header h3,
  .module__hero--person .module__title,
  .module--accordion-group .module--accordion-group--header h3,
  .module--accordion-group .module--accordion-group--items summary,
  .site-search__contents .site-search__header .site-search input[type=text],
  .site-search__contents h3,
  .site-menu nav .menu > li button { font-size: 40px; font-size: 4rem; }
  h3, .h3,
  .module--callout.title-small .module__title,
  .site-search__result .site-search__result--title { font-size: 27px; font-size: 2.7rem; }
  h4, .h4, .module--callout.title-small .module__description,
  .site-search__contents .site-search__title { font-size: 30px; font-size: 3rem; }
  h5, .h5,
  .people-faculty__person--header h4,
  .module--news-list .module__content h2,
  .module--events-list[data-view=list] .module__content li h2,
  .module--events .module__content li h2,
  .site-search__no-results { font-size: 22px; font-size: 2.2rem; }
  .p1, .module--bullets .bullets__subtitle { font-size: 24px; font-size: 2.4rem; }

  button.button--large, .button.button--large, a.button.button--large,
  input[type=submit].button--large { font-size: 18px; font-size: 1.8rem; padding: 1.2rem 3.2rem; }

  .site-main { padding-top: 0; }
  .site-main__contents.bordered { border: 1px solid #000; border-width: 0 1px; margin: 0 1.6rem; }
  .container { padding: 0 1.6rem; }

  .social-links a svg { width: 2rem; }
  .social-links a { width: 5rem; height: 5rem; }

  .admin-bar .site-header { top: 4.6rem; }
  .site-header.site-menu--is-open .container { justify-content: space-between; }
  .site-header.site-menu--is-open .site-branding { display: none; }
  .site-header.site-menu--is-open .site-search { display: block; }
  .site-header .container { padding: 0 1.6rem; }
  .headroom--not-top .site-branding { width: 4rem; }

  .site-search { display: none; margin-right: 2rem; }
  .admin-bar .site-menu nav { height: calc(100vh - 4.6rem); }
  .site-menu nav .menu > li.site-menu__item--is-open .menu__sub-menus { flex-direction: column; }
  .site-menu nav .menu > li { margin-bottom: 1.6rem; height: auto; width: 100%; }
  .site-menu nav .menu { max-height: 80vh; overflow-y: auto; padding: 0 1.6rem; }
  .site-menu nav .menu__sub-menus .sub-menu { display: grid; grid-template-columns: repeat(2, 1fr); }
  .site-menu nav .menu__sub-menus { position: static; left: auto; right: auto; top: auto; bottom: auto; margin-top: 1.6rem; }
  .site-menu nav .menu--secondary { max-width: none; }
  .site-menu nav .menu__extras { margin-top: 1.6rem; }
  .site-menu nav .menu--extra { padding-left: 0; }
  .site-menu nav { padding-top: 8.8rem; background-image: none; justify-content: flex-start; gap: 4.8rem; }
  .site-menu { margin-left: 1rem; }
  .site-menu__toggle { width: auto; }
  .site-menu__toggle--label { display: none; }
  .site-menu__quick-links span { display: block; padding-right: 0; color: var(--tg-warm-gray); }
  .site-menu__quick-links ul { grid-template-columns: repeat(2, 1fr); }
  .site-menu__quick-links { padding: 0 1.6rem; }

  .next-steps .next-steps__description { margin-bottom: 4rem; }
  .next-steps .next-steps__items { flex-direction: column; }
  .next-steps .next-steps__item { margin-top: 1.6rem; }
  .next-steps { padding: 4.8rem 0 8rem; }
  .site-newsletter .container .button { margin: 1.6rem 0 0; }
  .site-newsletter .container { flex-direction: column; }

  .site-footer__links { flex-direction: column; align-items: center; gap: 1.6rem; }
  .site-footer__main { flex-direction: column; border-left: 1px solid #fff; border-right: 1px solid #fff; padding: 1.6rem 0; }
  .site-footer__main--contact { border: 0; padding: 0.8rem 0; text-align: center; }
  .site-footer__main--menu ul::before, .site-footer__main--menu ul::after { display: none; }
  .site-footer__main--menu ul { border: 0; -moz-column-count: 1; column-count: 1; text-align: center; }
  .site-footer__main--menu li { padding: 0; margin-top: 1.6rem; justify-content: center; }
  .site-footer__main--menu a::before { display: none; }
  .site-footer__main--menu { flex: 1; }
  .site-footer__info p, .site-footer__info a { font-size: inherit; font-weight: inherit; line-height: inherit; color: inherit; }
  .site-footer__info .menu-legal-container ul { flex-direction: column; gap: 0.8rem; }
  .site-footer__info { font-size: 10px; font-size: 1rem; font-weight: 700; flex-direction: column; text-align: center; text-transform: uppercase; }

  .module .module__table tr { display: block; margin: 0 0 1.6rem; }
  .module .module__table th, .module .module__table td { display: block; text-align: left; }
  .module .module__table th { padding: 0; }
  .module .module__table td { padding: 0; }
  .module .module__form .module__form--row { flex-direction: column; }
  .module { padding: 4rem 0; }

  .module--callout .module__description { font-size: 27px; font-size: 2.7rem; margin-bottom: 2.4rem; }
  .module--callout ul { flex-direction: column; }
  .module--callout .module__item { margin-top: 1.6rem; }
  .module--callout { background-size: calc(100% + 42px); background-position: -21px calc(100% + 10px); padding: 8rem 0 9.5rem; }

  .module--divider + .module--section { margin-top: 3.2rem; }
  .module--divider--article { margin: 0 1.6rem; }
  .module--divider--article .container { padding: 0 3.2rem; }

  .module--events .container { flex-direction: column; justify-content: center; align-items: center; gap: 4rem; padding: 0; }
  .module--events .module__sidebar .button { display: none; }
  .module--events .module__description { margin: 3.2rem 1.6rem 0; }
  .module--events .module__content ul { padding: 0 1.6rem; }
  .module--events .module__content li .module__info { margin-bottom: 2rem; width: 100%; }
  .module--events .module__content li header { padding: 2rem 3rem; }
  .module--events .module__content li time { margin-bottom: 2.4rem; }
  .module--events .module__content li .module__image { padding-top: 100%; }

  .module--events-list[data-view=list] .module__content ul { grid-template-columns: repeat(1, minmax(0, 1fr)); row-gap: 2.4rem; padding: 0 4rem; }
  .module--events-list[data-view=list] .module__content li .module__info { margin-bottom: 2rem; }
  .module--events-list[data-view=list] .module__content li header { padding: 2rem 3rem; }
  .module--events-list[data-view=list] .module__content li time { margin-bottom: 2.4rem; }
  .module--events-list[data-view=list] .module__content li .module__image { padding-top: 100%; }

  .module--feature .container { flex-direction: column; padding: 0; }
  .module--feature .module__content { gap: 2.4rem; padding: 3.2rem 4.8rem; }
  .module--feature .module__image a { margin: 0 0 -8rem; }
  .module--feature .module__image { margin: 0 0 3.2rem; }
  .module--feature { padding: 0 1.6rem 4rem; }
  .module--feature.image-left .module__image { order: 2; }
  .module--feature.image-left .module__content { order: 1; padding: 3.2rem 4.8rem; }
  .module--feature.image-left.style-multiple .container .module__content { padding: 0 0 3.2rem; }
  .module--feature.style-outer .module__image a { margin: 0 0 4.8rem; }
  .module--feature.style-outer { padding: 0 1.6rem; }
  .module--feature.style-multiple .container .module__image { margin: 0; }
  .module--feature.style-multiple .container .module__content { padding-top: 0; }
  .module--feature.style-multiple { padding: 0 1.6rem; }

  .module__hero .module__feature { aspect-ratio: 2/3; }
  .module__hero .module__intro { flex-direction: column; }
  .module__hero .module__intro--content [data-layout=text] { margin-left: 3.2rem; }
  .module__hero .module__intro--content { max-width: none; }
  .module__hero .module__intro--sidebar { max-width: none; width: 100%; margin-top: 4rem; }
  .module__hero .module__slide { aspect-ratio: 2/3; }
  .module__hero .module__slide--video video { height: 100%; -o-object-fit: cover; object-fit: cover; }
  .module__hero .module__slide--video { aspect-ratio: 2/3; }
  .module__hero .module__slide--banner { left: 2.4rem; right: 2.4rem; padding: 2.4rem 4rem; gap: 0; }
  .module__hero .module__slide--button { display: none; }
  .module__hero .module__slide--content { width: 100%; }
  .module__hero { padding: 0 0 4rem; }
  .bordered .module__hero { margin: 0 -1.6rem 4rem; padding-bottom: 4rem; background: #fff; }
  .module__hero--image .module__menu { max-width: 100vw; overflow-x: scroll; overflow-y: hidden; white-space: nowrap; }
  .module__hero--event .module__header { margin: -5.6rem 2.4rem 4rem; padding: 1.6rem 3.2rem; }
  .module__hero--person > .container { padding: 0; }
  .module__hero--article > .container { padding: 0; }
  .module--hero-feature .container { padding: 0 1.6rem; }
  .module--hero-feature .module__content { padding: 2.4rem 0; max-width: 100%; }
  .module--hero-feature .module__heading {
    font-size: 3.2rem; line-height: 1.15;
  }
  .module--hero-feature .module__cta {
    flex-direction: column; gap: 1rem;
  }
  .module--hero-feature .module__cta .button--medium,
  .module--hero-feature .module__cta a.button.button--medium {
    font-size: 1.5rem; padding: 1.2rem 2rem; width: 100%; justify-content: space-between;
  }
  /* hero slider banner responsive */
  .module__hero .module__slide--banner {
    left: 1.6rem; right: 1.6rem; min-height: auto; padding: 2rem 1.6rem;
  }
  .module__hero .module__slide--button { width: 4rem; }
  /* splide/gallery responsive */
  .module__hero--slider { padding-bottom: 4rem; }

  .module--link-groups .container::before, .module--link-groups .container::after { display: none; }
  .module--link-groups .container { padding: 1.6rem 3.2rem; }
  .module--link-groups .module__link-groups--group--main { flex-direction: column; gap: 2.4rem; }
  .module--link-groups .module__link-groups--group--buttons ul { grid-template-columns: repeat(2, 1fr); gap: 1.6rem; }

  .module--links .module__description { font-size: 27px; font-size: 2.7rem; margin-bottom: 2.4rem; }

  .module--news-list .module__content li { margin-top: 2.4rem; }
  .module--news-list .module__content article { flex-direction: column; padding: 1.6rem 4.8rem; }
  .module--news-list .module__content .module__info .button { display: none; }
  .module--news-list .module__content .module__info { padding: 0; }
  .module--news-list .module__content header { padding: 0 3rem 2rem; }
  .module--news-list .module__content time { margin-bottom: 2.4rem; }
  .module--news-list .module__content .module__image { padding-top: 66.666%; margin-left: 0; }
  .module--news-list .module__content .module__footer { display: block; margin-top: 3.6rem; }

  .module--people-faculty .module__content--list { gap: 2.4rem 0; padding: 0; --column-width: 100%; }
  .people-faculty__person { justify-content: center; min-width: 100%; }
  .module--people-featured .container { gap: 4rem; }
  .module--people-featured .module__image { width: 100%; }
  .module--people-search .module__intro { flex-direction: column; gap: 2.4rem; }
  .module--people-search .module__content--header ul { flex-wrap: wrap; }
  .module--people-search .module__content--header li:first-of-type { flex: 100%; }
  .module--people-search .module__content--list ul { grid-template-columns: 1fr; gap: 2.4rem; padding: 0; }
  .module.faculty .module__content--list ul { grid-template-columns: 1fr; gap: 2.4rem; padding: 0; }

  .module--promo .container::before { left: 1.6rem; }
  .module--promo .container::after { right: 1.6rem; }
  .module--promo .container { padding: 4rem 1.6rem; }
  .module--quotes .module__content { margin: 0; }
  .module--section.bg-black, .module--section.bg-red { padding: 4rem 0; }
  .module--section .container::before, .module--section .container::after { display: none; }
  .module--section .container { padding: 1.6rem 3.2rem; }
  .module--section .module__content--slideshow .module__content--slideshow--paging button { padding: 0.4rem; }

  .module__single--event .module__content { flex-direction: column; }
  .module__single--event .module__intro h2 { font-size: 24px; font-size: 2.4rem; margin-bottom: 3.2rem; }
  .module__single--person .module__content > .container, .module__single--article .module__content > .container { padding: 4.8rem 3.2rem 0; }
  .module__single--person .module__content, .module__single--article .module__content { margin: 0 1.6rem; }
  .module__single--person .module__content > .container { padding-top: 0; }
  .single-work .module__single--work .module__intro h2 { font-size: 24px; font-size: 2.4rem; margin-bottom: 3.2rem; }
  .single-work .module__single--work .module__content { flex-direction: column; }
  .single-work .module__hero--work .module__header { padding: 0 2.4rem; }

  .module--statistics__list { flex-direction: column; margin: 0; }
  .module--statistics__item { margin: 0 0 2.4rem; }
  .module--statistics__item--value { font-size: 60px; font-size: 6rem; }
}

/* ----------------------------------------------------------
   TG 自定义 Carousel 组件（about页面）
   ---------------------------------------------------------- */
/* Stats carousel */
.tg-stats-carousel .container { max-width: 122rem; padding: 0 3.2rem; margin: 0 auto; overflow: hidden; }
.tg-stats-carousel-wrapper { display: flex; align-items: center; gap: 1rem; width: 100%; }
.tg-stats-viewport { overflow: hidden; flex: 1; min-width: 0; width: 100%; }
.tg-stats-track { display: flex; transition: transform .4s ease; margin: 0; will-change: transform; width: 100%; }
.tg-stats-slide {
  flex: 0 0 calc(33.333% - 0.667rem); min-width: calc(33.333% - 0.667rem);
  margin: 0 .5rem; padding: 1.6rem 2rem; text-align: center;
  border: 1px solid #000; border-width: 0 1px; box-sizing: border-box;
}
.tg-stats-slide:first-child { border-left: 0; }
.tg-stats-slide:last-child { border-right: 0; }
.tg-stats-nav {
  flex: 0 0 auto; width: 48px; height: 48px; border-radius: 50%;
  border: 2px solid #eb0000; background: #fff; color: #eb0000;
  font-size: 1.4rem; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background .2s, color .2s; z-index: 2;
}
.tg-stats-nav:hover { background: #eb0000; color: #fff; }
.tg-stats-dots { display: flex; justify-content: center; gap: .5rem; margin-top: 1.5rem; }
.tg-stats-dot {
  width: 10px; height: 10px; border-radius: 50%;
  background: #ccc; border: 0; cursor: pointer; padding: 0; transition: background .2s;
}
.tg-stats-dot.active { background: #eb0000; }

/* One-per-slide image carousel */
.tg-one-per-slide { position: relative; background: #000; overflow: hidden; max-width: 122rem; margin: 0 auto; width: 100%; }
.tg-one-per-slide .tg-slide-track { display: flex; transition: transform .45s ease; will-change: transform; width: 100%; }
.tg-one-per-slide .tg-slide { flex: 0 0 100%; width: 100%; position: relative; min-width: 0; }
.tg-one-per-slide .tg-slide img { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; }
.tg-one-per-slide .tg-slide-arrow {
  position: absolute; top: 50%; transform: translateY(-50%);
  background: transparent; border: none; cursor: pointer;
  padding: .5rem; z-index: 10; display: flex; align-items: center;
}
.tg-one-per-slide .tg-slide-prev { left: 1rem; }
.tg-one-per-slide .tg-slide-next { right: 1rem; }
.tg-one-per-slide .tg-slide-dots {
  position: absolute; bottom: .4rem; left: 50%; transform: translateX(-50%);
  display: flex; gap: .4rem; z-index: 10;
}
.tg-one-per-slide .tg-slide-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: rgba(255,255,255,.5); border: none; cursor: pointer;
  padding: 0; transition: background .2s;
}
.tg-one-per-slide .tg-slide-dot.active { background: #fff; }

/* Community carousel (tg-community-carousel) */
.tg-community-carousel { overflow: hidden; }
.tg-comm-track { display: flex; transition: transform .45s ease; will-change: transform; }

@media (max-width: 999px) {
  .tg-stats-slide { flex: 0 0 calc(50% - 1rem); min-width: calc(50% - 1rem); }
}
@media (max-width: 600px) {
  .tg-stats-slide { flex: 0 0 calc(100% - 1rem); min-width: calc(100% - 1rem); }
}
h4,.h4,.module--works .module__list .module__item--title,.module--storytelling[data-variation=horizontal] .module__horizontal-content h2,.single-work .module__hero--work .module__title,.module--people-featured .module__info--header h3,.module__hero--event .module__title,.module__hero--article .module__title,.module__hero .module__slide--content h2,.module--panels .module__faculty h3,.module--panels .module__alumni h3,.module--artists .module__artist--header h3,.module--callout.title-small .module__description,.site-search__contents .site-search__title {
  font-size:36px;font-size:3.6rem;font-family:baskerville-urw,serif;font-weight:400;line-height:1.3;letter-spacing:-.02em;margin:0
}

.h7,.app--calendar__component--tag,.module--library-archives .module__content--primary>ul .library-archives__search--links a,.module--works .module__list .module__item--subtitle,.module--works .module__list .module__item--tag,.module--timeline .module__item--entry,.timeline__wrapper .timeline__year[data-marker="1"]:before,.single-work .module__hero--work .module__subtitle,.single-work .module__hero--work .module__tag,.module--promo .promo__subtitle,.module--people-featured .module__info--header h4,.people-faculty__person--text,.people-faculty__secondary h6,.module--news-list .module__content time,.module--news time,.module__hero--article .module__subtitle,.module__hero .module__intro--sidebar>ul li.quote cite,.module__hero .module__slide--content h3,.module__gallery-slider .gallery-slider__slides[data-layout=full] .gallery-slider__caption,.module--events-list[data-view=list] .module__content li time,.module--events .module__content li time,.module--panels .module__more,.module--panels .module__faculty h4,.module--panels .module__alumni h4,.module--artists .module__artist--header h4,.module--artists .module__more,.site-search__result .site-search__result--type,.site-banner__wrapper a {
  font-size:12px;font-size:1.2rem;font-family:HelveticaNowVariable,sans-serif;font-weight:700;line-height:1.15;color:#eb0000;text-transform:uppercase;display:inline-block
}

.h7-bordered,.app--calendar__component--tag,.module--works .module__list .module__item--subtitle,.single-work .module__hero--work .module__subtitle,.module--promo .promo__subtitle,.module--people-featured .module__info--header h4,.module--news-list .module__content time,.module--news time,.module__hero--article .module__subtitle,.module__hero .module__slide--content h3,.module--events-list[data-view=list] .module__content li time,.module--events .module__content li time,.module--panels .module__alumni h4 {
  border:1px solid #eb0000;border-width:0 1px;padding:0 1.6rem
}

.module__gallery-slider .container {
  padding:0
}

.module__gallery-slider .gallery-slider__slides[data-layout=full] .slick-list:before,.module__gallery-slider .gallery-slider__slides[data-layout=full] .slick-list:after {
  display:none
}

.module__gallery-slider .gallery-slider__slides[data-layout=full] .gallery-slider__arrow {
  display:block
}

.module__gallery-slider .gallery-slider__slides[data-layout=full] .gallery-slider__arrow button {
  background-color:transparent;color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;padding:0;line-height:1;width:4.8rem;height:4.8rem;border-radius:100%;background-color:#fff;border:0;padding:1.2rem;text-align:center
}

.module__gallery-slider .gallery-slider__slides[data-layout=full] .gallery-slider__arrow button:hover,.module__gallery-slider .gallery-slider__slides[data-layout=full] .gallery-slider__arrow button:focus {
  border:0;background-color:transparent;color:inherit
}

.module__gallery-slider .gallery-slider__slides[data-layout=full] .gallery-slider__arrow button:hover {
  background-color:#000
}

.module__gallery-slider .gallery-slider__slides[data-layout=full] .gallery-slider__arrow button:hover svg path {
  stroke:#fff
}

.module__gallery-slider .gallery-slider__slides[data-layout=full] .gallery-slider__arrow button[data-action=previous] svg {
  transform:rotate(180deg);margin:0 0 0 -.4rem
}

.module__gallery-slider .gallery-slider__slides[data-layout=full] .gallery-slider__arrow button svg {
  margin-left:.4rem
}

.module__gallery-slider .gallery-slider__slides[data-layout=full] .gallery-slider__arrow button svg path {
  stroke:#000;transition:all .3s ease-in-out
}

.module__gallery-slider .gallery-slider__slides[data-layout=full] .gallery-slider__slide {
  transform:scale(1);position:relative
}

.module__gallery-slider .gallery-slider__slides[data-layout=full] .gallery-slider__caption {
  text-align:center;background:#f7f7f7;color:#000;padding:3.2rem 2.4rem;margin:-4rem 6rem 0;z-index:9
}

.module__gallery-slider .gallery-slider__slides:not([data-layout=full]) .gallery-slider__caption {
  max-width:48rem;margin:2.4rem auto 0;text-align:center
}

.module__gallery-slider .gallery-slider__slides .slick-list {
  position:relative
}

.module__gallery-slider .gallery-slider__slides .slick-list:before,.module__gallery-slider .gallery-slider__slides .slick-list:after {
  content:"";display:block;position:absolute;top:0;bottom:0;width:.1rem;background-color:#000
}

.module__gallery-slider .gallery-slider__slides .slick-list:before {
  left:0
}

.module__gallery-slider .gallery-slider__slides .slick-list:after {
  right:0
}

.module__gallery-slider .gallery-slider__slides .slick-track {
  display:flex!important
}

.module__gallery-slider .gallery-slider__slides .slick-dots {
  list-style-type:none;padding:0;margin:0;display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem;margin:3.2rem 1.6rem 0;line-height:1
}

.module__gallery-slider .gallery-slider__slides .slick-dots .slick-active svg path {
  fill:#000
}

.module__gallery-slider .gallery-slider__slides .slick-dots button {
  background-color:transparent;color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;padding:0;border:0;border-radius:0;line-height:1
}

.module__gallery-slider .gallery-slider__slides .slick-dots button:hover,.module__gallery-slider .gallery-slider__slides .slick-dots button:focus {
  border:0;background-color:transparent;color:inherit
}

.module__gallery-slider .gallery-slider__slides .slick-dots button:hover svg path,.module__gallery-slider .gallery-slider__slides .slick-dots button:active svg path {
  fill:#9d948a
}

.module__gallery-slider .gallery-slider__slides .slick-dots svg {
  width:1.2rem;height:1rem
}

.module__gallery-slider .gallery-slider__slides .slick-dots svg path {
  fill:#fff;stroke:#000;stroke-width:3px;transition:all .3s ease-in-out
}

.module__gallery-slider .gallery-slider__slides .gallery-slider__arrow {
  display:none
}

.module__gallery-slider .gallery-slider__slides .gallery-slider__caption--content {
  list-style-type:none;padding:0;margin:0;display:flex;align-items:center;gap:4.8rem
}

.module__gallery-slider .gallery-slider__slides .gallery-slider__slide {
  display:flex;flex-direction:column;height:inherit;align-items:center;transition:all .3s ease-in-out;transform:scale(.92)
}

.module__gallery-slider .gallery-slider__slides .gallery-slider__slide.slick-center {
  transition:all .3s ease-in-out;transform:scale(1)
}

.module__gallery-slider .gallery-slider__slide--contents {
  position:relative;aspect-ratio:4/3;width:100%;overflow:hidden
}

.module__gallery-slider .gallery-slider__slide--contents img {
  position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center
}

.module__gallery-slider .gallery-slider__slides[data-aspect-ratio="4:3"] .gallery-slider__slide--contents {
  aspect-ratio:4/3
}

.module__gallery-slider .gallery-slider__slides[data-aspect-ratio="16:9"] .gallery-slider__slide--contents {
  aspect-ratio:16/9
}

.module__gallery-slider .gallery-slider__slides[data-aspect-ratio="3:4"] .gallery-slider__slide--contents {
  aspect-ratio:3/4
}

.module__gallery-slider .module__slide--caption {
  position:absolute;bottom:-12rem;left:0;right:0
}

.module__gallery-slider .module__slide--caption p {
  max-width:48.2rem;margin:0 auto
}

.module__single .module__content>.container .module__gallery-slider {
  margin:0 -14.4rem
}

.module__single .module__content>.container .module__gallery-slider .gallery-slider__slides .slick-list:before,.module__single .module__content>.container .module__gallery-slider .gallery-slider__slides .slick-list:after {
  display:none
}

.module__hero--slider {
  padding-bottom:8rem
}

.module__hero--slider.slides-1 .module__slide--button {
  display:none
}

.module__hero .splide__arrow {
  opacity:0
}

.module__hero .module__slide {
  position:relative;width:100%;aspect-ratio:16/9
}

.module__hero .module__slide.has-banner {
  margin-bottom:20rem
}

.module__hero .module__slide--image {
  background-size:cover;background-position:center
}

.module__hero .module__slide--video {
  display:block;content:""
}

.module__hero .module__slide--video video {
  position:absolute;top:0;left:0;bottom:0;width:100%
}

.module__hero .module__slide--video.video-error {
  background-color:#f7f7f7;display:flex;align-items:center;justify-content:center
}

.module__hero .module__slide--video.video-error:after {
  content:"Video unavailable";font-size:1.4rem
}

.module__hero .module__slide--banner {
  background:#f7f7f7;color:#000;padding:3.2rem 2.4rem;position:absolute;bottom:0;left:11.8rem;right:11.8rem;min-height:24rem;display:flex;gap:2.4rem
}

.module__hero .module__slide--button {
  width:9rem;display:flex;justify-content:center;align-items:center
}

.module__hero .module__slide--button button {
  width:4.8rem;height:4.8rem;border-radius:100%;background-color:#fff;border:0;padding:1.2rem;text-align:center
}

.module__hero .module__slide--button button:hover {
  background-color:#000
}

.module__hero .module__slide--button button:hover svg path {
  stroke:#fff
}

.module__hero .module__slide--button button[data-action=previous] svg {
  transform:rotate(180deg);margin:0 .4rem 0 0
}

.module__hero .module__slide--button button svg {
  margin-left:.4rem
}

.module__hero .module__slide--button button svg path {
  stroke:#000;transition:all .3s ease-in-out
}

.module__hero .module__slide--content {
  text-align:center;display:flex;flex:auto;flex-direction:column;justify-content:center;gap:1.6rem
}

.module__hero .module__slide--content h2 a {
  text-decoration:none
}

.module__hero .module__slide--content h3 {
  align-self:center
}

.module__hero .module__slide--content p:last-of-type {
  margin-bottom:.8rem
}

.module__hero .module__slide--content .button {
  align-self:center
}

.module--quotes .splide__list {
  align-items:center
}

.module--quotes .splide__slide {
  display:flex;flex-direction:column
}

.single-library-article .module__single--article .module__content>.container .module.module__gallery-slider {
  margin:0 -14.4rem
}

.single-library-article .module__single--article .module__content>.container .module.module__gallery-slider .container {
  padding:0
}

.single-library-article .module__single--article .module__content>.container .module.module__gallery-slider .slick-list:before,.single-library-article .module__single--article .module__content>.container .module.module__gallery-slider .slick-list:after {
  display:none
}

.splide__container {
  box-sizing:border-box;position:relative
}

.splide__list {
  backface-visibility:hidden;display:-ms-flexbox;display:flex;height:100%;margin:0!important;padding:0!important
}

.splide.is-initialized:not(.is-active) .splide__list {
  display:block
}

.splide__pagination {
  -ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center;margin:0;pointer-events:none
}

.splide__pagination li {
  display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto
}

.splide:not(.is-overflow) .splide__pagination {
  display:none
}

.splide__progress__bar {
  width:0
}

.splide {
  position:relative;visibility:hidden
}

.splide.is-initialized,.splide.is-rendered {
  visibility:visible
}

.splide__slide {
  backface-visibility:hidden;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0;list-style-type:none!important;margin:0;position:relative
}

.splide__slide img {
  vertical-align:bottom
}

.splide__spinner {
  animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;bottom:0;contain:strict;display:inline-block;height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px
}

.splide__sr {
  clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px
}

.splide__toggle.is-active .splide__toggle__play,.splide__toggle__pause {
  display:none
}

.splide__toggle.is-active .splide__toggle__pause {
  display:inline
}

.splide__track {
  overflow:hidden;position:relative;z-index:0
}

.splide__track--draggable {
  -webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none
}

.splide__track--fade>.splide__list>.splide__slide {
  margin:0!important;opacity:0;z-index:0
}

.splide__track--fade>.splide__list>.splide__slide.is-active {
  opacity:1;z-index:1
}

.splide--rtl {
  direction:rtl
}

.splide__track--ttb>.splide__list {
  display:block
}

.splide__arrow {
  -ms-flex-align:center;align-items:center;background:#ccc;border:0;border-radius:50%;cursor:pointer;display:-ms-flexbox;display:flex;height:2em;-ms-flex-pack:center;justify-content:center;opacity:.7;padding:0;position:absolute;top:50%;transform:translateY(-50%);width:2em;z-index:1
}

.splide__arrow svg {
  fill:#000;height:1.2em;width:1.2em
}

.splide__arrow:hover:not(:disabled) {
  opacity:.9
}

.splide__arrow:disabled {
  opacity:.3
}

.splide__arrow:focus-visible {
  outline:3px solid #0bf;outline-offset:3px
}

.splide__arrow--prev {
  left:1em
}

.splide__arrow--prev svg {
  transform:scaleX(-1)
}

.splide__arrow--next {
  right:1em
}

.splide.is-focus-in .splide__arrow:focus {
  outline:3px solid #0bf;outline-offset:3px
}

.splide__pagination__page {
  background:#ccc;border:0;border-radius:50%;display:inline-block;height:8px;margin:3px;opacity:.7;padding:0;position:relative;transition:transform .2s linear;width:8px
}

.splide__pagination__page.is-active {
  background:#fff;transform:scale(1.4);z-index:1
}

.splide__pagination__page:hover {
  cursor:pointer;opacity:.9
}

.splide__pagination__page:focus-visible {
  outline:3px solid #0bf;outline-offset:3px
}

.splide.is-focus-in .splide__pagination__page:focus {
  outline:3px solid #0bf;outline-offset:3px
}

.splide__slide:focus {
  outline:0
}

.splide__toggle {
  cursor:pointer
}

.splide__toggle:focus-visible {
  outline:3px solid #0bf;outline-offset:3px
}

.splide.is-focus-in .splide__toggle:focus {
  outline:3px solid #0bf;outline-offset:3px
}

.splide__track--nav>.splide__list>.splide__slide {
  border:3px solid transparent;cursor:pointer
}

.splide__track--nav>.splide__list>.splide__slide.is-active {
  border:3px solid #000
}

.splide__arrows--rtl .splide__arrow--prev {
  left:auto;right:1em
}

.splide__arrows--rtl .splide__arrow--prev svg {
  transform:scaleX(1)
}

.splide__arrows--rtl .splide__arrow--next {
  left:1em;right:auto
}

.splide__arrows--rtl .splide__arrow--next svg {
  transform:scaleX(-1)
}

.splide__arrows--ttb .splide__arrow {
  left:50%;transform:translate(-50%)
}

.splide__arrows--ttb .splide__arrow--prev {
  top:1em
}

.splide__arrows--ttb .splide__arrow--prev svg {
  transform:rotate(-90deg)
}

.splide__arrows--ttb .splide__arrow--next {
  bottom:1em;top:auto
}

.splide__arrows--ttb .splide__arrow--next svg {
  transform:rotate(90deg)
}

.splide__pagination--ttb {
  bottom:0;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;left:auto;padding:1em 0;right:.5em;top:0
}
/* ----------------------------------------------------------
/* tg-hero-track (our-community 图片轮播) */
.module__feature { position: relative; }
/* 容器用 aspect-ratio 建立高度 */
.module__hero .module__feature[style*="overflow:hidden"] {
  aspect-ratio: 4/3; width: 100%;
}
.module__feature > .tg-hero-track {
  display: flex; transition: transform .6s ease; will-change: transform;
  width: 100%; height: 100%;
}
.module__feature > .tg-hero-track > div {
  flex: 0 0 100%; min-width: 0; position: relative;
}
/* 覆盖 inline style="height:100%"，强制用 aspect-ratio */
.module__hero .module__feature > .tg-hero-track img,
.module__feature > .tg-hero-track img {
  width: 100% !important; height: 100% !important;
  position: absolute; top: 0; left: 0;
  object-fit: cover; display: block;
}
/* tg-hero-track 子容器建立 stacking context */
.module__feature > .tg-hero-track > div {
  flex: 0 0 100%; min-width: 0;
  position: relative; aspect-ratio: 4/3;
}
