/* ==========================================================================
   Heritage theme - branch landing page
   Primary colour = institutional colour, hover colour = accent (gold in the preset).
   ========================================================================== */

.site-theme-elegant {
	--th-primary: var(--thm-primary, #7a1f2b);
	--th-accent: var(--thm-hover, #b8862f);
	--th-text: var(--thm-text, #2b2118);
	--th-muted: var(--thm-secondary-text, #6f6253);
	--th-cream: #fbf6ee;
	--th-cream-2: #f3eadb;
	--th-line: #e6d9c4;
	--th-dark: color-mix(in srgb, var(--th-primary) 35%, #1a100c);
	/* English first, Bangla fallback second */
	--th-serif: 'Libre Baskerville', 'Hind Siliguri', Georgia, serif;
	--th-body: 'Merriweather', 'Hind Siliguri', Georgia, serif;

	font-family: var(--th-body) !important;
	color: var(--th-text);
	background: #fffdf9;
	font-size: 14.5px;
	line-height: 1.7;
	scrollbar-width: thin;
	scrollbar-color: color-mix(in srgb, var(--th-primary) 55%, #cbb79a) transparent;
}

/* Minimal global scrollbars */
.site-theme-elegant * {
	scrollbar-width: thin;
	scrollbar-color: color-mix(in srgb, var(--th-primary) 55%, #cbb79a) transparent;
}
.site-theme-elegant::-webkit-scrollbar,
.site-theme-elegant *::-webkit-scrollbar {
	width: 3px;
	height: 3px;
}
.site-theme-elegant::-webkit-scrollbar-track,
.site-theme-elegant *::-webkit-scrollbar-track {
	background: transparent;
}
.site-theme-elegant::-webkit-scrollbar-thumb,
.site-theme-elegant *::-webkit-scrollbar-thumb {
	border: 0;
	border-radius: 999px;
	background: color-mix(in srgb, var(--th-primary) 55%, #cbb79a);
}
.site-theme-elegant::-webkit-scrollbar-thumb:hover,
.site-theme-elegant *::-webkit-scrollbar-thumb:hover {
	background: var(--th-primary);
}
.site-theme-elegant::-webkit-scrollbar-corner,
.site-theme-elegant *::-webkit-scrollbar-corner {
	background: transparent;
}

/* Force theme fonts across the full page (override global Raleway / Lato). */
.site-theme-elegant,
.site-theme-elegant p,
.site-theme-elegant li,
.site-theme-elegant a,
.site-theme-elegant span,
.site-theme-elegant div,
.site-theme-elegant td,
.site-theme-elegant th,
.site-theme-elegant label,
.site-theme-elegant small,
.site-theme-elegant strong,
.site-theme-elegant em,
.site-theme-elegant blockquote,
.site-theme-elegant marquee,
.site-theme-elegant input,
.site-theme-elegant textarea,
.site-theme-elegant select,
.site-theme-elegant button,
.site-theme-elegant .btn,
.site-theme-elegant .form-control,
.site-theme-elegant .breadcrumb,
.site-theme-elegant .main-container,
.site-theme-elegant .main-banner,
.site-theme-elegant .news-post-box,
.site-theme-elegant .th-footer,
.site-theme-elegant .th-copyright,
.site-theme-elegant .th-ticker,
.site-theme-elegant .th-prose,
.site-theme-elegant .th-panel,
.site-theme-elegant .th-speech,
.site-theme-elegant .about-text,
.site-theme-elegant .section-title {
	font-family: var(--th-body) !important;
}

.site-theme-elegant h1,
.site-theme-elegant h2,
.site-theme-elegant h3,
.site-theme-elegant h4,
.site-theme-elegant h5,
.site-theme-elegant h6,
.site-theme-elegant .th-menu > li > a,
.site-theme-elegant .th-btn,
.site-theme-elegant .th-kicker,
.site-theme-elegant .th-service,
.site-theme-elegant .th-stat .counter,
.site-theme-elegant .th-speech-name,
.site-theme-elegant .th-ticker-label,
.site-theme-elegant .th-news-more,
.site-theme-elegant .th-panel-more,
.site-theme-elegant .th-footer h4,
.site-theme-elegant .main-banner h2,
.site-theme-elegant .main-heading1,
.site-theme-elegant .main-heading2,
.site-theme-elegant .btn-1,
.site-theme-elegant .btn-main,
.site-theme-elegant .btn-black {
	font-family: var(--th-serif) !important;
	font-weight: 600;
}

/* Keep icon fonts intact */
.site-theme-elegant i,
.site-theme-elegant .fa,
.site-theme-elegant .fas,
.site-theme-elegant .far,
.site-theme-elegant .fal,
.site-theme-elegant .fab,
.site-theme-elegant [class^="fa-"],
.site-theme-elegant [class*=" fa-"] {
	font-family: "Font Awesome 5 Free" !important;
}
.site-theme-elegant .fab,
.site-theme-elegant .fa-brands {
	font-family: "Font Awesome 5 Brands" !important;
}

.site-theme-elegant h1,
.site-theme-elegant h2,
.site-theme-elegant h3,
.site-theme-elegant h4,
.site-theme-elegant h5,
.site-theme-elegant h6 { color: var(--th-text); }

.site-theme-elegant a { color: var(--th-primary); transition: all .2s ease; }
.site-theme-elegant a:hover { color: var(--th-accent); text-decoration: none; }
.site-theme-elegant img { max-width: 100%; }
.site-theme-elegant .container { max-width: 1200px; }

/* Buttons */
.site-theme-elegant .th-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 28px;
	border: 1px solid transparent;
	border-radius: 2px;
	font-family: var(--th-serif);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.site-theme-elegant .th-btn-gold { background: var(--th-accent); color: #fff; }
.site-theme-elegant .th-btn-gold:hover { background: #fff; color: var(--th-primary); }
.site-theme-elegant .th-btn-light { border-color: rgba(255, 255, 255, .7); color: #fff; }
.site-theme-elegant .th-btn-light:hover { background: #fff; color: var(--th-primary); }
.site-theme-elegant .th-btn-outline { border-color: var(--th-primary); color: var(--th-primary); background: transparent; }
.site-theme-elegant .th-btn-outline:hover { background: var(--th-primary); color: #fff; }
.site-theme-elegant .th-center { margin-top: 44px; text-align: center; }

/* Headings */
.site-theme-elegant .th-heading { max-width: 720px; margin: 0 auto 50px; text-align: center; }
.site-theme-elegant .th-heading-left { margin: 0 0 26px; text-align: left; }
.site-theme-elegant .th-heading h2 { margin: 4px 0 0; font-size: clamp(24px, 2.8vw, 34px); line-height: 1.25; }
.site-theme-elegant .th-kicker { color: var(--th-accent); font-family: var(--th-serif); font-size: 14px; font-style: italic; letter-spacing: .04em; }
.site-theme-elegant .th-divider { position: relative; display: block; width: 140px; height: 14px; margin: 16px auto 0; }
.site-theme-elegant .th-heading-left .th-divider { margin-left: 0; }
.site-theme-elegant .th-divider::before { content: ""; position: absolute; top: 50%; right: 0; left: 0; border-top: 1px solid var(--th-accent); }
.site-theme-elegant .th-divider i { position: absolute; top: 50%; left: 50%; width: 10px; height: 10px; background: var(--th-accent); transform: translate(-50%, -50%) rotate(45deg); box-shadow: 0 0 0 4px #fffdf9; }
.site-theme-elegant .th-heading-left .th-divider i { left: 20px; }
.site-theme-elegant .th-heading-light h2,
.site-theme-elegant .th-heading-light p { color: #fff; }
.site-theme-elegant .th-heading-light p { margin-top: 16px; opacity: .85; }
.site-theme-elegant .th-heading-light .th-divider i { box-shadow: 0 0 0 4px var(--th-dark); }

/* Header */
.site-theme-elegant .th-topbar { background: var(--th-dark); color: rgba(255, 255, 255, .78); font-family: var(--th-body); font-size: 13px; font-weight: 500; letter-spacing: .02em; }
.site-theme-elegant .th-topbar-inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 38px; }
.site-theme-elegant .th-topbar-meta { display: flex; flex-wrap: wrap; gap: 6px 22px; margin: 0; padding: 0; list-style: none; }
.site-theme-elegant .th-topbar-meta li { display: inline-flex; align-items: center; gap: 6px; }
.site-theme-elegant .th-topbar-meta i,
.site-theme-elegant .th-topbar-meta svg {
	flex-shrink: 0;
	width: 15px;
	height: 15px;
	color: var(--th-accent);
	stroke: var(--th-accent);
}
.site-theme-elegant .th-topbar a { color: #fff; }
.site-theme-elegant .th-topbar a:hover { color: var(--th-accent); }
.site-theme-elegant .th-topbar a:hover svg { color: var(--th-accent); stroke: var(--th-accent); }

.site-theme-elegant .th-nav { position: relative; z-index: 999; background: #fff; border-bottom: 1px solid var(--th-line); }
.site-theme-elegant .th-nav.stricky-fixed { position: fixed; top: 0; right: 0; left: 0; background: #fff; box-shadow: 0 6px 24px rgba(43, 33, 24, .12); }
.site-theme-elegant .th-nav-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; min-height: 88px; padding: 0 12px; }
.site-theme-elegant .th-nav-brand { display: flex; align-items: center; justify-content: center; flex-shrink: 0; padding: 4px 6px; }
.site-theme-elegant .th-nav-brand img {
	display: block;
	max-height: 84px;
	width: auto;
	max-width: none;
	image-rendering: -webkit-optimize-contrast;
	filter: contrast(1.14) saturate(1.1) brightness(1.03);
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
	transform: translateZ(0);
}
.site-theme-elegant .th-nav-brand-mobile { display: none; margin-right: auto; }
.site-theme-elegant .th-nav-brand-center { margin: 0 6px; }
.site-theme-elegant .th-toggler { margin-left: auto; padding: 8px 14px; border: 1px solid var(--th-line); border-radius: 2px; color: var(--th-primary); font-size: 15px; background: #fff; }
.site-theme-elegant .th-toggler:focus { box-shadow: none; }
.site-theme-elegant .th-nav-collapse {
	display: flex !important;
	flex: 1 1 auto;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: center;
	gap: 0;
	width: auto;
}
.site-theme-elegant .th-menu { display: flex; flex: 1 1 0; flex-wrap: nowrap; align-items: center; margin: 0; padding: 0; list-style: none; }
.site-theme-elegant .th-menu-left { justify-content: flex-end; }
.site-theme-elegant .th-menu-right { justify-content: flex-start; }
.site-theme-elegant .th-menu > li { position: relative; }
.site-theme-elegant .th-menu > li > a {
	position: relative;
	display: flex;
	align-items: center;
	gap: 4px;
	padding: 10px 10px;
	color: var(--th-text);
	font-family: var(--th-serif);
	font-size: 16px;
	font-weight: 600;
	letter-spacing: .02em;
	white-space: nowrap;
}
.site-theme-elegant .th-menu > li > a::after { content: ""; position: absolute; right: 10px; bottom: 6px; left: 10px; height: 2px; background: var(--th-primary); transform: scaleX(0); transition: transform .25s ease; }
.site-theme-elegant .th-menu > li:hover > a,
.site-theme-elegant .th-menu > li.is-active > a { color: var(--th-primary); }
.site-theme-elegant .th-menu > li:hover > a::after,
.site-theme-elegant .th-menu > li.is-active > a::after { transform: scaleX(1); }
.site-theme-elegant .th-menu-caret,
.site-theme-elegant .th-menu > li > a svg.th-menu-caret,
.site-theme-elegant .th-menu > li > a svg.lucide-chevron-down {
	display: inline-block;
	width: 15px;
	height: 15px;
	flex-shrink: 0;
	stroke: currentColor;
	color: currentColor;
	transition: transform .25s ease;
}
.site-theme-elegant .th-menu > li.has-children:hover > a .th-menu-caret,
.site-theme-elegant .th-menu > li.has-children:hover > a svg.lucide-chevron-down {
	transform: rotate(180deg);
}

/* Dropdown panel */
.site-theme-elegant .th-submenu {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	z-index: 40;
	min-width: 250px;
	margin: 0;
	padding: 10px;
	list-style: none;
	border: 1px solid var(--th-line);
	border-radius: 6px;
	background: #fff;
	box-shadow: 0 18px 42px rgba(43, 33, 24, .16);
	opacity: 0;
	visibility: hidden;
	transform: translateY(10px);
	transition: opacity .22s ease, transform .22s ease, visibility .22s ease;
}
.site-theme-elegant .th-submenu::before {
	content: "";
	position: absolute;
	top: -7px;
	left: 28px;
	width: 12px;
	height: 12px;
	border-top: 1px solid var(--th-line);
	border-left: 1px solid var(--th-line);
	background: #fff;
	transform: rotate(45deg);
}
.site-theme-elegant .th-submenu::after {
	content: "";
	position: absolute;
	top: -6px;
	right: 0;
	left: 0;
	height: 6px;
}
.site-theme-elegant .th-menu-right > li > .th-submenu {
	left: auto;
	right: 0;
}
.site-theme-elegant .th-menu-right > li > .th-submenu::before {
	left: auto;
	right: 28px;
}
.site-theme-elegant .th-menu > li:hover > .th-submenu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.site-theme-elegant .th-submenu li + li {
	margin-top: 2px;
}
.site-theme-elegant .th-submenu a {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 11px 12px;
	border-radius: 4px;
	color: var(--th-text);
	font-family: var(--th-body);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.35;
	transition: background .2s ease, color .2s ease, padding-left .2s ease;
}
.site-theme-elegant .th-submenu-mark {
	flex-shrink: 0;
	width: 7px;
	height: 7px;
	border: 1.5px solid var(--th-accent);
	border-radius: 1px;
	transform: rotate(45deg);
	transition: background .2s ease, border-color .2s ease;
}
.site-theme-elegant .th-submenu-label {
	flex: 1;
	min-width: 0;
}
.site-theme-elegant .th-submenu-arrow {
	width: 14px;
	height: 14px;
	margin-left: auto;
	opacity: 0;
	stroke: var(--th-primary);
	transform: translateX(-4px);
	transition: opacity .2s ease, transform .2s ease;
}
.site-theme-elegant .th-submenu a:hover,
.site-theme-elegant .th-submenu a.is-active {
	background: linear-gradient(90deg, color-mix(in srgb, var(--th-primary) 8%, #fff), var(--th-cream));
	color: var(--th-primary);
	padding-left: 16px;
}
.site-theme-elegant .th-submenu a:hover .th-submenu-mark,
.site-theme-elegant .th-submenu a.is-active .th-submenu-mark {
	background: var(--th-accent);
	border-color: var(--th-accent);
}
.site-theme-elegant .th-submenu a:hover .th-submenu-arrow,
.site-theme-elegant .th-submenu a.is-active .th-submenu-arrow {
	opacity: 1;
	transform: translateX(0);
}

.site-theme-elegant .th-ticker {
	position: relative;
	border-bottom: 1px solid var(--th-line);
	background:
		linear-gradient(180deg, #fffaf2 0%, var(--th-cream) 100%);
	font-size: 15.5px;
}
.site-theme-elegant .th-ticker::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--th-primary), var(--th-accent), var(--th-primary));
}
.site-theme-elegant .th-ticker-inner {
	display: flex;
	align-items: center;
	gap: 14px;
	min-height: 52px;
	padding-top: 4px;
}
.site-theme-elegant .th-ticker-label {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	flex-shrink: 0;
	padding: 9px 22px 9px 12px;
	background: linear-gradient(135deg, var(--th-primary), color-mix(in srgb, var(--th-primary) 75%, #1a100c));
	color: #fff;
	font-family: var(--th-serif);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .04em;
	clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 50%, calc(100% - 14px) 100%, 0 100%);
	box-shadow: 4px 0 14px rgba(43, 33, 24, .12);
}
.site-theme-elegant .th-ticker-label-icon {
	display: grid;
	place-items: center;
	width: 26px;
	height: 26px;
	border: 1px solid rgba(255, 255, 255, .3);
	background: color-mix(in srgb, var(--th-accent) 85%, #fff);
	transform: rotate(45deg);
}
.site-theme-elegant .th-ticker-label-icon i,
.site-theme-elegant .th-ticker-label-icon svg {
	width: 13px;
	height: 13px;
	stroke: #fff;
	color: #fff;
	transform: rotate(-45deg);
}
.site-theme-elegant .th-ticker-label-text { position: relative; z-index: 1; }
.site-theme-elegant .th-ticker-rail {
	position: relative;
	flex: 1;
	min-width: 0;
	height: 40px;
	overflow: hidden;
	border: 1px solid var(--th-line);
	background: #fff;
}
.site-theme-elegant .th-ticker-track {
	display: inline-flex;
	align-items: center;
	gap: 0;
	width: max-content;
	max-width: none;
	padding-left: 100%;
	color: var(--th-text);
	font-weight: 500;
	line-height: 40px;
	white-space: nowrap;
	will-change: transform;
	animation: th-ticker-scroll 35s linear infinite;
}
.site-theme-elegant .th-ticker-rail:hover .th-ticker-track {
	animation-play-state: paused;
}
@keyframes th-ticker-scroll {
	0% { transform: translateX(0); }
	100% { transform: translateX(-100%); }
}
.site-theme-elegant .th-ticker-track a { color: var(--th-text); font-weight: 600; }
.site-theme-elegant .th-ticker-track a:hover { color: var(--th-primary); }
.site-theme-elegant .th-ticker-item {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 0 4px;
	vertical-align: middle;
}
.site-theme-elegant .th-ticker-item i,
.site-theme-elegant .th-ticker-item svg {
	width: 15px;
	height: 15px;
	flex-shrink: 0;
	stroke: var(--th-accent);
	color: var(--th-accent);
}
.site-theme-elegant .th-ticker-sep {
	display: inline-block;
	width: 8px;
	height: 8px;
	margin: 0 18px;
	background: var(--th-accent);
	transform: rotate(45deg);
	vertical-align: middle;
}
.site-theme-elegant .th-ticker-date {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	flex-shrink: 0;
	padding: 8px 14px;
	border: 1px solid var(--th-line);
	background: #fff;
	color: var(--th-text);
	font-size: 14px;
	font-weight: 600;
}
.site-theme-elegant .th-ticker-date i,
.site-theme-elegant .th-ticker-date svg,
.site-theme-elegant .th-ticker-cal-icon {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
	stroke: var(--th-primary) !important;
	color: var(--th-primary) !important;
}

/* Hero */
.site-theme-elegant .th-hero { background: var(--th-dark); }
.site-theme-elegant .th-hero-slide {
	position: relative;
	display: flex;
	align-items: center;
	min-height: clamp(420px, calc(100vh - 300px), 580px);
	background-size: cover;
	background-position: center;
}
.site-theme-elegant .th-hero-slide::before { content: ""; position: absolute; inset: 0; background: linear-gradient(rgba(26, 16, 12, .45), rgba(26, 16, 12, .7)); }
.site-theme-elegant .th-hero-plain { background: radial-gradient(circle at center, color-mix(in srgb, var(--th-primary) 80%, #000), var(--th-dark)); }
.site-theme-elegant .th-hero-slide .container { position: relative; z-index: 2; }
.site-theme-elegant .th-hero-frame { max-width: 760px; margin: 0 auto; padding: 46px 40px; border: 1px solid rgba(255, 255, 255, .35); outline: 1px solid rgba(255, 255, 255, .18); outline-offset: 10px; text-align: center; }
.site-theme-elegant .th-ornament { display: block; margin-bottom: 14px; color: var(--th-accent); letter-spacing: .4em; }
.site-theme-elegant .th-hero h1 { margin: 0 0 16px; color: #fff; font-size: clamp(32px, 4.6vw, 54px); line-height: 1.18; }
.site-theme-elegant .th-hero-text,
.site-theme-elegant .th-hero-text p { color: rgba(255, 255, 255, .88); font-size: 19px; font-style: italic; line-height: 1.65; }
.site-theme-elegant .th-hero-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: 26px; }
.site-theme-elegant .th-hero .owl-nav button.owl-prev,
.site-theme-elegant .th-hero .owl-nav button.owl-next { position: absolute; top: 50%; width: 46px; height: 46px; margin: -23px 0 0; border: 1px solid rgba(255, 255, 255, .5) !important; border-radius: 0; background: transparent !important; color: #fff !important; }
.site-theme-elegant .th-hero .owl-nav button.owl-prev { left: 24px; }
.site-theme-elegant .th-hero .owl-nav button.owl-next { right: 24px; }
.site-theme-elegant .th-hero .owl-nav button:hover { background: var(--th-accent) !important; border-color: var(--th-accent) !important; }

/* Services strip */
.site-theme-elegant .th-services { background: var(--th-primary); }
.site-theme-elegant .th-services-grid { display: grid; grid-template-columns: repeat(6, 1fr); }
.site-theme-elegant .th-service { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 22px 10px; border-right: 1px solid rgba(255, 255, 255, .14); color: #fff; font-family: var(--th-serif); font-size: 17px; font-weight: 600; text-align: center; }
.site-theme-elegant .th-service:first-child { border-left: 1px solid rgba(255, 255, 255, .14); }
.site-theme-elegant .th-service i,
.site-theme-elegant .th-service svg {
	width: 34px;
	height: 34px;
	color: var(--th-accent);
	stroke: var(--th-accent);
	transition: transform .25s;
}
.site-theme-elegant .th-service:hover { background: rgba(0, 0, 0, .15); color: #fff; }
.site-theme-elegant .th-service:hover i,
.site-theme-elegant .th-service:hover svg { transform: translateY(-3px); color: var(--th-accent); stroke: var(--th-accent); }

/* Sections */
.site-theme-elegant .th-section { padding: 90px 0; }
.site-theme-elegant .th-section-cream { background: var(--th-cream); border-top: 1px solid var(--th-line); border-bottom: 1px solid var(--th-line); }
.site-theme-elegant .th-empty { margin: 0; padding: 26px 0; color: var(--th-muted); font-style: italic; text-align: center; }

/* Intro + panels */
.site-theme-elegant .th-intro { display: grid; grid-template-columns: 1.6fr 1fr; gap: 56px; }
.site-theme-elegant .th-intro-title-row {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px 24px;
	max-width: none;
	margin: 0 0 26px;
}
.site-theme-elegant .th-intro-title-text { flex: 1; min-width: 0; }
.site-theme-elegant .th-intro-title-row .th-divider { margin-left: 0; }
.site-theme-elegant .th-intro-details {
	flex-shrink: 0;
	gap: 8px;
	margin-bottom: 6px;
	padding: 10px 18px;
	font-size: 13px;
	white-space: nowrap;
}
.site-theme-elegant .th-intro-details i,
.site-theme-elegant .th-intro-details svg {
	width: 15px;
	height: 15px;
	stroke: currentColor;
	transition: transform .2s ease;
}
.site-theme-elegant .th-intro-details:hover svg { transform: translateX(3px); }
.site-theme-elegant .th-intro-figure {
	float: right;
	width: 46%;
	max-width: none;
	margin: 6px 0 18px 28px;
	padding: 10px;
	border: 1px solid var(--th-line);
	border-radius: 48px 0 48px 0;
	background: #fff;
	box-shadow: 0 16px 34px rgba(43, 33, 24, .08);
	overflow: hidden;
	shape-outside: margin-box;
}
.site-theme-elegant .th-intro-figure img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 40px 0 40px 0;
}
.site-theme-elegant .th-intro-speeches {
	clear: both;
	margin-top: 40px;
	padding-top: 34px;
	border-top: 1px solid var(--th-line);
}
.site-theme-elegant .th-speech-title-row {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
	max-width: none;
	margin: 0 0 28px;
}
.site-theme-elegant .th-speech-title-text { flex: 1; min-width: 0; }
.site-theme-elegant .th-speech-title-row .th-divider { margin-left: 0; }
.site-theme-elegant .th-speech-switch {
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
	margin: 0 0 6px;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
}
.site-theme-elegant .th-speech-switch-track {
	position: relative;
	width: 58px;
	height: 30px;
	border: 1px solid var(--th-line);
	border-radius: 999px;
	background: linear-gradient(180deg, #f4ebe0, #fff);
	box-shadow: inset 0 1px 3px rgba(43, 33, 24, .08);
	transition: background .25s ease, border-color .25s ease;
}
.site-theme-elegant .th-speech-switch.is-on .th-speech-switch-track {
	border-color: color-mix(in srgb, var(--th-primary) 45%, var(--th-line));
	background: linear-gradient(180deg, color-mix(in srgb, var(--th-primary) 18%, #fff), #fff);
}
.site-theme-elegant .th-speech-switch-thumb {
	position: absolute;
	top: 3px;
	left: 3px;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: linear-gradient(180deg, #fff, #f3e7d7);
	border: 1px solid color-mix(in srgb, var(--th-accent) 55%, var(--th-line));
	box-shadow: 0 4px 10px rgba(43, 33, 24, .18);
	transition: transform .28s cubic-bezier(.2, .7, .2, 1), background .25s ease, border-color .25s ease;
}
.site-theme-elegant .th-speech-switch.is-on .th-speech-switch-thumb {
	transform: translateX(28px);
	background: linear-gradient(180deg, var(--th-primary), color-mix(in srgb, var(--th-primary) 75%, #1a100c));
	border-color: var(--th-primary);
	box-shadow: 0 4px 12px color-mix(in srgb, var(--th-primary) 35%, transparent);
}
.site-theme-elegant .th-speech-switch:hover .th-speech-switch-track {
	border-color: var(--th-accent);
}
.site-theme-elegant .th-speech-switch:focus-visible {
	outline: none;
}
.site-theme-elegant .th-speech-switch:focus-visible .th-speech-switch-track {
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--th-accent) 25%, transparent);
}
.site-theme-elegant .th-intro-speeches .th-speeches {
	position: relative;
	gap: 0;
}
.site-theme-elegant .th-intro-speeches .th-speech,
.site-theme-elegant .th-intro-speeches .th-speech:nth-child(even) {
	display: none;
	padding: 0;
	border: 0;
	background: transparent;
	opacity: 0;
	transform: translateY(12px);
}
.site-theme-elegant .th-intro-speeches .th-speech.is-active {
	display: block;
	opacity: 1;
	transform: translateY(0);
	animation: th-speech-in .38s ease both;
}
.site-theme-elegant .th-intro-speeches .th-speech.is-entering {
	display: block;
	animation: th-speech-in .38s ease both;
}
.site-theme-elegant .th-intro-speeches .th-speech.is-leaving {
	display: block;
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	animation: th-speech-out .28s ease both;
	pointer-events: none;
}
@keyframes th-speech-in {
	from { opacity: 0; transform: translateY(14px); }
	to { opacity: 1; transform: translateY(0); }
}
@keyframes th-speech-out {
	from { opacity: 1; transform: translateY(0); }
	to { opacity: 0; transform: translateY(-10px); }
}
.site-theme-elegant .th-intro-speeches .th-speech::after {
	content: "";
	display: table;
	clear: both;
}
.site-theme-elegant .th-intro-speeches .th-speech h3 { font-size: 20px; }
.site-theme-elegant .th-intro-speeches .th-speech-portrait {
	float: left;
	width: 34%;
	max-width: 180px;
	margin: 0 18px 12px 0;
	padding: 10px;
	border: 1px solid var(--th-line);
	border-radius: 48px 0 48px 0;
	background: #fff;
	box-shadow: 0 16px 34px rgba(43, 33, 24, .08);
	overflow: hidden;
	shape-outside: margin-box;
}
.site-theme-elegant .th-intro-speeches .th-speech.is-even .th-speech-portrait,
.site-theme-elegant .th-intro-speeches .th-speech:nth-child(even).is-active .th-speech-portrait {
	float: right;
	margin: 0 0 12px 18px;
}
.site-theme-elegant .th-intro-speeches .th-speech-portrait img {
	aspect-ratio: 3 / 4;
	border-radius: 40px 0 40px 0;
}
.site-theme-elegant .th-intro-speeches .th-speech-body {
	display: block;
	overflow: visible;
}
.site-theme-elegant .th-intro-speeches .th-speech-body h3,
.site-theme-elegant .th-intro-speeches .th-speech-body blockquote,
.site-theme-elegant .th-intro-speeches .th-speech-body .th-speech-name {
	display: block;
}
.site-theme-elegant .th-intro-speeches .th-speech blockquote {
	padding-left: 0;
	border-left: 0;
	font-style: normal;
	color: var(--th-muted);
	line-height: 1.8;
	text-align: justify;
}
.site-theme-elegant .th-prose {
	margin-bottom: 26px;
	color: var(--th-muted);
	line-height: 1.8;
	text-align: justify;
}
.site-theme-elegant .th-prose::first-letter {
	float: left;
	margin: 4px 10px 0 0;
	color: var(--th-primary);
	font-family: var(--th-serif);
	font-size: 52px;
	line-height: .9;
}
.site-theme-elegant .th-intro-main::after { content: ""; display: block; clear: both; }
.site-theme-elegant .th-intro-side {
	display: flex;
	flex-direction: column;
	gap: 30px;
	align-self: start;
}
.site-theme-elegant .th-panel { border: 1px solid var(--th-line); border-top: 4px solid var(--th-primary); background: #fff; }
.site-theme-elegant .th-panel-title { display: flex; align-items: center; gap: 10px; margin: 0; padding: 16px 22px; border-bottom: 1px solid var(--th-line); background: var(--th-cream); font-size: 17px; }
.site-theme-elegant .th-panel-title i,
.site-theme-elegant .th-panel-title svg { color: var(--th-accent); stroke: var(--th-accent); width: 18px; height: 18px; }

/* Creative notice board */
.site-theme-elegant .th-notice-board {
	position: relative;
	overflow: hidden;
	border: 1px solid var(--th-line);
	border-top: 0;
	background: linear-gradient(180deg, #fff 0%, #fffdf8 100%);
	box-shadow: 0 18px 40px rgba(43, 33, 24, .08);
}
.site-theme-elegant .th-notice-board::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	z-index: 4;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 0 26px 26px 0;
	border-color: transparent var(--th-accent) transparent transparent;
	pointer-events: none;
}
.site-theme-elegant .th-notice-board::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	z-index: 3;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 0 28px 28px 0;
	border-color: transparent color-mix(in srgb, var(--th-primary) 55%, #1a100c) transparent transparent;
	pointer-events: none;
}
.site-theme-elegant .th-notice-head {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 18px 34px 20px 16px;
	background: linear-gradient(120deg, var(--th-primary), color-mix(in srgb, var(--th-primary) 72%, #1a100c));
	color: #fff;
}
.site-theme-elegant .th-notice-head::after {
	content: "";
	position: absolute;
	right: 18px;
	bottom: -10px;
	left: 18px;
	height: 10px;
	background: repeating-linear-gradient(
		90deg,
		var(--th-accent) 0 10px,
		transparent 10px 18px
	);
	clip-path: polygon(0 0, 100% 0, 96% 100%, 4% 100%);
}
.site-theme-elegant .th-notice-head-text {
	flex: 1;
	min-width: 0;
}
.site-theme-elegant .th-notice-badge {
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	border: 1px solid rgba(255, 255, 255, .28);
	background: color-mix(in srgb, var(--th-accent) 88%, #fff);
	color: #fff;
	transform: rotate(45deg);
	box-shadow: 0 8px 18px rgba(0, 0, 0, .18);
}
.site-theme-elegant .th-notice-badge i,
.site-theme-elegant .th-notice-badge svg {
	width: 20px;
	height: 20px;
	stroke: #fff;
	color: #fff;
	transform: rotate(-45deg);
}
.site-theme-elegant .th-notice-kicker {
	display: block;
	margin-bottom: 2px;
	color: var(--th-accent);
	font-family: var(--th-serif);
	font-size: 12px;
	font-style: italic;
	letter-spacing: .06em;
}
.site-theme-elegant .th-notice-head h3 {
	margin: 0;
	color: #fff;
	font-size: 22px;
	font-weight: 700;
	line-height: 1.2;
}
.site-theme-elegant .th-notices {
	position: relative;
	z-index: 1;
	margin: 0;
	padding: 22px 18px 28px;
	list-style: none;
}
.site-theme-elegant .th-notices li + li { margin-top: 10px; }
.site-theme-elegant .th-notices a {
	position: relative;
	display: grid;
	grid-template-columns: 42px 1fr 28px;
	align-items: start;
	gap: 12px;
	padding: 14px 12px;
	border: 1px solid var(--th-line);
	border-radius: 0 18px 0 18px;
	background: #fff;
	color: var(--th-text);
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.site-theme-elegant .th-notices a:hover {
	border-color: color-mix(in srgb, var(--th-primary) 35%, var(--th-line));
	box-shadow: 0 10px 24px rgba(43, 33, 24, .08);
	color: var(--th-primary);
	transform: translateY(-2px);
}
.site-theme-elegant .th-notice-icon {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: color-mix(in srgb, var(--th-primary) 10%, #fff);
	color: var(--th-primary);
}
.site-theme-elegant .th-notice-icon i,
.site-theme-elegant .th-notice-icon svg {
	width: 18px;
	height: 18px;
	stroke: var(--th-primary);
	color: var(--th-primary);
}
.site-theme-elegant .th-notice-body { min-width: 0; padding-top: 2px; }
.site-theme-elegant .th-notice-text {
	display: block;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.55;
}
.site-theme-elegant .th-notices small {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: 8px;
	padding: 4px 10px;
	border-radius: 999px;
	background: var(--th-cream);
	color: var(--th-accent);
	font-size: 12.5px;
	font-weight: 600;
}
.site-theme-elegant .th-notices small i,
.site-theme-elegant .th-notices small svg {
	width: 13px;
	height: 13px;
	stroke: var(--th-accent);
}
.site-theme-elegant .th-notice-go {
	display: grid;
	place-items: center;
	width: 28px;
	height: 28px;
	margin-top: 6px;
	border-radius: 50%;
	background: var(--th-cream-2);
	color: var(--th-primary);
	transition: background .2s ease, color .2s ease;
}
.site-theme-elegant .th-notice-go i,
.site-theme-elegant .th-notice-go svg {
	width: 14px;
	height: 14px;
	stroke: currentColor;
}
.site-theme-elegant .th-notices a:hover .th-notice-go {
	background: var(--th-primary);
	color: #fff;
}
.site-theme-elegant .th-notice-board .th-empty {
	margin: 18px 18px 28px;
	padding: 18px;
	border: 1px dashed var(--th-line);
	background: var(--th-cream);
	text-align: center;
}
.site-theme-elegant .th-notice-all {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	flex-shrink: 0;
	margin-left: auto;
	padding: 9px 14px;
	border: 1px solid rgba(255, 255, 255, .35);
	background: var(--th-accent);
	color: #fff !important;
	font-family: var(--th-serif);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .02em;
	white-space: nowrap;
	clip-path: polygon(8px 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
	transition: background .2s ease, transform .2s ease;
}
.site-theme-elegant .th-notice-all:hover {
	background: #fff;
	color: var(--th-primary) !important;
}
.site-theme-elegant .th-notice-all i,
.site-theme-elegant .th-notice-all svg {
	width: 14px;
	height: 14px;
	stroke: currentColor;
	color: currentColor;
	transition: transform .2s ease;
}
.site-theme-elegant .th-notice-all:hover svg { transform: translateX(3px); }
/* Important links board */
.site-theme-elegant .th-links-board {
	overflow: hidden;
	border: 1px solid var(--th-line);
	border-top: 0;
	background: linear-gradient(180deg, #fff 0%, #fffdf8 100%);
	box-shadow: 0 18px 40px rgba(43, 33, 24, .08);
}
.site-theme-elegant .th-links-head {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 18px 16px;
	background: linear-gradient(120deg, color-mix(in srgb, var(--th-primary) 88%, #1a100c), var(--th-primary));
	color: #fff;
}
.site-theme-elegant .th-links-badge {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border: 1px solid rgba(255, 255, 255, .28);
	background: color-mix(in srgb, var(--th-accent) 88%, #fff);
	transform: rotate(45deg);
	box-shadow: 0 8px 18px rgba(0, 0, 0, .18);
}
.site-theme-elegant .th-links-badge i,
.site-theme-elegant .th-links-badge svg {
	width: 18px;
	height: 18px;
	stroke: #fff;
	color: #fff;
	transform: rotate(-45deg);
}
.site-theme-elegant .th-links-head-text { flex: 1; min-width: 0; }
.site-theme-elegant .th-links-kicker {
	display: block;
	margin-bottom: 2px;
	color: var(--th-accent);
	font-family: var(--th-serif);
	font-size: 12px;
	font-style: italic;
	letter-spacing: .06em;
}
.site-theme-elegant .th-links-head h3 {
	margin: 0;
	color: #fff;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.2;
}
.site-theme-elegant .th-links-board-other .th-links-head {
	background: linear-gradient(120deg, color-mix(in srgb, var(--th-primary) 72%, #3d2a1c), color-mix(in srgb, var(--th-primary) 88%, #1a100c));
}
.site-theme-elegant .th-links {
	margin: 0;
	padding: 16px 14px 18px;
	list-style: none;
}
.site-theme-elegant .th-links li + li { margin-top: 8px; }
.site-theme-elegant .th-links a {
	display: grid;
	grid-template-columns: 36px 1fr 26px;
	align-items: center;
	gap: 10px;
	padding: 11px 12px;
	border: 1px solid var(--th-line);
	border-radius: 0 16px 0 16px;
	background: #fff;
	color: var(--th-text);
	font-size: 14.5px;
	font-weight: 600;
	line-height: 1.4;
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease, color .2s ease;
}
.site-theme-elegant .th-links a:hover {
	border-color: color-mix(in srgb, var(--th-primary) 35%, var(--th-line));
	box-shadow: 0 10px 22px rgba(43, 33, 24, .08);
	color: var(--th-primary);
	transform: translateY(-2px);
}
.site-theme-elegant .th-links-icon {
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: color-mix(in srgb, var(--th-accent) 16%, #fff);
	color: var(--th-accent);
}
.site-theme-elegant .th-links-icon i,
.site-theme-elegant .th-links-icon svg {
	width: 16px;
	height: 16px;
	stroke: var(--th-accent);
	color: var(--th-accent);
}
.site-theme-elegant .th-links-label { min-width: 0; }
.site-theme-elegant .th-links-go {
	display: grid;
	place-items: center;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--th-cream-2);
	color: var(--th-primary);
	transition: background .2s ease, color .2s ease;
}
.site-theme-elegant .th-links-go i,
.site-theme-elegant .th-links-go svg {
	width: 14px;
	height: 14px;
	stroke: currentColor;
}
.site-theme-elegant .th-links a:hover .th-links-go {
	background: var(--th-primary);
	color: #fff;
}
.site-theme-elegant .th-panel-more {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 8px;
	padding: 12px 22px;
	border-top: 1px solid var(--th-line);
	font-family: var(--th-serif);
	font-size: 14px;
	font-weight: 600;
}

/* Speeches */
.site-theme-elegant .th-speeches { display: grid; gap: 34px; }
.site-theme-elegant .th-speech {
	display: block;
	padding: 0;
	border: 0;
	background: transparent;
}
.site-theme-elegant .th-speech::after {
	content: "";
	display: table;
	clear: both;
}
.site-theme-elegant .th-speech-portrait {
	float: left;
	width: 32%;
	max-width: 190px;
	margin: 0 20px 14px 0;
	padding: 10px;
	border: 1px solid var(--th-line);
	border-radius: 48px 0 48px 0;
	background: #fff;
	box-shadow: 0 16px 34px rgba(43, 33, 24, .08);
	overflow: hidden;
	shape-outside: margin-box;
}
.site-theme-elegant .th-speech.is-even .th-speech-portrait,
.site-theme-elegant .th-speech:nth-child(even).is-active .th-speech-portrait {
	float: right;
	margin: 0 0 14px 20px;
}
.site-theme-elegant .th-speech-portrait img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 40px 0 40px 0;
}
.site-theme-elegant .th-speech h3 { margin: 0 0 14px; color: var(--th-primary); font-size: 21px; }
.site-theme-elegant .th-speech blockquote { position: relative; margin: 0; color: var(--th-muted); line-height: 1.75; }
.site-theme-elegant .th-speech-name { margin: 18px 0 0; color: var(--th-text); font-family: var(--th-serif); font-size: 15px; font-weight: 600; }

/* Stats */
.site-theme-elegant .th-stats {
	position: relative;
	padding: 72px 0 78px;
	background:
		linear-gradient(180deg, color-mix(in srgb, var(--th-cream) 72%, #fff) 0%, var(--th-cream-2) 100%);
	overflow: hidden;
}
.site-theme-elegant .th-stats::before,
.site-theme-elegant .th-stats::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--th-line), transparent);
	pointer-events: none;
}
.site-theme-elegant .th-stats::before { top: 0; }
.site-theme-elegant .th-stats::after { bottom: 0; }
.site-theme-elegant .th-stats-head {
	max-width: 640px;
	margin: 0 auto 42px;
	text-align: center;
}
.site-theme-elegant .th-stats-head h2 {
	margin: 8px 0 0;
	color: var(--th-primary);
	font-size: clamp(26px, 3vw, 34px);
	font-weight: 700;
	line-height: 1.25;
}
.site-theme-elegant .th-stats-head p {
	margin: 14px 0 0;
	color: var(--th-muted);
	font-size: 15px;
	line-height: 1.7;
}
.site-theme-elegant .th-stats-rail {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0;
	align-items: stretch;
}
.site-theme-elegant .th-stat {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	gap: 8px;
	min-width: 0;
	padding: 28px 18px 8px;
	text-align: center;
}
.site-theme-elegant .th-stat + .th-stat::before {
	content: "";
	position: absolute;
	top: 18%;
	bottom: 18%;
	left: 0;
	width: 1px;
	background: linear-gradient(180deg, transparent, var(--th-line), transparent);
}
.site-theme-elegant .th-stat-index {
	display: block;
	color: color-mix(in srgb, var(--th-accent) 70%, var(--th-muted));
	font-family: var(--th-serif);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .18em;
}
.site-theme-elegant .th-stat-icon {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	margin: 2px 0 4px;
	border: 1px solid color-mix(in srgb, var(--th-accent) 35%, var(--th-line));
	border-radius: 50%;
	background: color-mix(in srgb, #fff 70%, var(--th-cream));
	color: var(--th-accent);
}
.site-theme-elegant .th-stat-icon i,
.site-theme-elegant .th-stat-icon svg {
	width: 18px;
	height: 18px;
	stroke: var(--th-accent);
	color: var(--th-accent);
	line-height: 1;
}
.site-theme-elegant .th-stat .counter {
	display: block;
	margin: 2px 0 0;
	color: var(--th-primary);
	font-family: var(--th-serif);
	font-size: clamp(36px, 4.2vw, 52px);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -.02em;
}
.site-theme-elegant .th-stat p {
	margin: 0;
	max-width: 12em;
	color: var(--th-muted);
	font-size: 14px;
	font-style: italic;
	line-height: 1.45;
}
.site-theme-elegant .th-stat:hover .th-stat-icon {
	border-color: var(--th-accent);
	background: #fff;
	transform: translateY(-2px);
	transition: border-color .2s ease, background .2s ease, transform .2s ease;
}
.site-theme-elegant .th-stat:hover .counter { color: color-mix(in srgb, var(--th-primary) 82%, var(--th-accent)); }

/* Portraits */
.site-theme-elegant .th-intro-teachers {
	clear: both;
	margin-top: 40px;
	padding-top: 34px;
	border-top: 1px solid var(--th-line);
}
.site-theme-elegant .th-teachers-title-row {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px 24px;
	max-width: none;
	margin: 0 0 26px;
}
.site-theme-elegant .th-teachers-title-text { flex: 1; min-width: 0; }
.site-theme-elegant .th-teachers-title-row .th-divider { margin-left: 0; }
.site-theme-elegant .th-teachers-all {
	flex-shrink: 0;
	gap: 8px;
	margin-bottom: 6px;
	padding: 10px 18px;
	font-size: 13px;
	white-space: nowrap;
}
.site-theme-elegant .th-teachers-all i,
.site-theme-elegant .th-teachers-all svg {
	width: 15px;
	height: 15px;
	stroke: currentColor;
	transition: transform .2s ease;
}
.site-theme-elegant .th-teachers-all:hover svg { transform: translateX(3px); }
.site-theme-elegant .th-teachers-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}
.site-theme-elegant .th-teacher-card {
	display: flex;
	align-items: stretch;
	gap: 14px;
	min-width: 0;
	padding: 12px;
	border: 1px solid var(--th-line);
	border-radius: 28px 0 28px 0;
	background: #fff;
	box-shadow: 0 12px 28px rgba(43, 33, 24, .06);
	transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
.site-theme-elegant .th-teacher-card:hover {
	border-color: color-mix(in srgb, var(--th-primary) 35%, var(--th-line));
	box-shadow: 0 16px 32px rgba(43, 33, 24, .1);
	transform: translateY(-2px);
}
.site-theme-elegant .th-teacher-photo {
	flex-shrink: 0;
	width: 110px;
	margin: 0;
	padding: 6px;
	border: 1px solid var(--th-line);
	border-radius: 22px 0 0 0;
	background: var(--th-cream);
	overflow: hidden;
}
.site-theme-elegant .th-teacher-photo img {
	display: block;
	width: 100%;
	height: 148px;
	object-fit: cover;
	border-radius: 16px 0 0 0;
	filter: grayscale(18%);
	transition: filter .3s ease;
}
.site-theme-elegant .th-teacher-card:hover .th-teacher-photo img { filter: none; }
.site-theme-elegant .th-teacher-meta {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-width: 0;
	padding: 4px 2px 4px 0;
}
.site-theme-elegant .th-teacher-meta h4 {
	margin: 0 0 4px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.3;
}
.site-theme-elegant .th-teacher-meta p {
	margin: 0;
	color: var(--th-accent);
	font-size: 13.5px;
	font-style: italic;
	line-height: 1.35;
}
.site-theme-elegant .th-teacher-meta small {
	display: block;
	margin-top: 6px;
	color: var(--th-muted);
	font-size: 12.5px;
}

/* Committee */
.site-theme-elegant .th-committee { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.site-theme-elegant .th-member { display: flex; align-items: center; gap: 20px; padding: 18px; border: 1px solid var(--th-line); background: #fff; }
.site-theme-elegant .th-member img { flex-shrink: 0; width: 92px; height: 92px; padding: 4px; border: 1px solid var(--th-accent); border-radius: 50%; object-fit: cover; }
.site-theme-elegant .th-member h4 { margin: 0 0 2px; font-size: 18px; }
.site-theme-elegant .th-member p { margin: 0; color: var(--th-primary); font-style: italic; }
.site-theme-elegant .th-member small { color: var(--th-muted); }

/* Gallery */
.site-theme-elegant .th-gallery {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	margin: 0 0 34px;
}
.site-theme-elegant .th-gallery-item {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	border: 1px solid var(--th-line);
	background: #1a100c;
	box-shadow: 0 14px 30px rgba(43, 33, 24, .08);
	isolation: isolate;
}
.site-theme-elegant .th-gallery-media {
	position: absolute;
	inset: 0;
	margin: 0;
	overflow: hidden;
}
.site-theme-elegant .th-gallery-media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	image-rendering: auto;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
	transform: translateZ(0);
	filter: contrast(1.06) saturate(1.05);
	transition: transform .55s ease, filter .35s ease;
}
.site-theme-elegant .th-gallery-overlay {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-end;
	gap: 10px;
	padding: 18px 16px;
	background: linear-gradient(180deg, transparent 42%, rgba(26, 16, 12, .78) 100%);
	color: #fff;
	opacity: 1;
	pointer-events: none;
	transition: background .3s ease;
}
.site-theme-elegant .th-gallery-action {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border: 1px solid rgba(255, 255, 255, .35);
	border-radius: 50%;
	background: color-mix(in srgb, var(--th-accent) 88%, #fff);
	color: #fff;
	opacity: 0;
	transform: translateY(8px) scale(.92);
	transition: opacity .28s ease, transform .28s ease;
}
.site-theme-elegant .th-gallery-item.is-video .th-gallery-action {
	opacity: 1;
	transform: none;
	margin-bottom: auto;
	align-self: center;
	width: 54px;
	height: 54px;
	background: color-mix(in srgb, var(--th-primary) 78%, #000);
	box-shadow: 0 10px 24px rgba(0, 0, 0, .28);
}
.site-theme-elegant .th-gallery-action i,
.site-theme-elegant .th-gallery-action svg {
	width: 18px;
	height: 18px;
	stroke: #fff;
	color: #fff;
}
.site-theme-elegant .th-gallery-item.is-video .th-gallery-action i,
.site-theme-elegant .th-gallery-item.is-video .th-gallery-action svg {
	width: 22px;
	height: 22px;
	margin-left: 2px;
}
.site-theme-elegant .th-gallery-title {
	display: -webkit-box;
	max-width: 100%;
	overflow: hidden;
	color: #fff;
	font-family: var(--th-serif);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.35;
	text-shadow: 0 1px 8px rgba(0, 0, 0, .35);
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}
.site-theme-elegant .th-gallery-item:hover .th-gallery-media img {
	transform: scale(1.06);
	filter: contrast(1.08) saturate(1.08);
}
.site-theme-elegant .th-gallery-item:hover .th-gallery-overlay {
	background: linear-gradient(180deg, rgba(26, 16, 12, .12) 20%, rgba(26, 16, 12, .88) 100%);
}
.site-theme-elegant .th-gallery-item:hover .th-gallery-action {
	opacity: 1;
	transform: none;
}

/* Custom gallery lightbox */
body.th-lb-open {
	overflow: hidden !important;
}
.th-lb[hidden] {
	display: none !important;
}
.th-lb {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: grid;
	place-items: center;
	padding: 24px;
}
.th-lb-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(26, 16, 12, .92);
	cursor: pointer;
}
.th-lb-stage {
	position: relative;
	z-index: 2;
	display: grid;
	place-items: center;
	width: min(1100px, 94vw);
	height: min(860px, 82vh);
	overflow: hidden;
}
.th-lb-img {
	display: block;
	max-width: 100%;
	max-height: 82vh;
	width: auto;
	height: auto;
	object-fit: contain;
	transform-origin: center center;
	transition: transform .12s ease-out;
	user-select: none;
	-webkit-user-drag: none;
	box-shadow: 0 20px 50px rgba(0, 0, 0, .4);
}
.th-lb.is-zoomed .th-lb-img {
	transition: none;
}
.th-lb-video {
	width: min(960px, 92vw);
	height: min(540px, 70vh);
	border: 0;
	background: #000;
	box-shadow: 0 20px 50px rgba(0, 0, 0, .4);
}
.th-lb-close,
.th-lb-nav,
.th-lb-zoom-btn {
	appearance: none;
	border: 0;
	cursor: pointer;
}
.th-lb-close {
	position: absolute;
	top: 18px;
	right: 18px;
	z-index: 5;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--th-accent, #b8862f);
	color: #fff;
	font-size: 28px;
	line-height: 1;
	box-shadow: 0 8px 20px rgba(0, 0, 0, .25);
}
.th-lb-close:hover {
	background: #fff;
	color: var(--th-primary, #7a1f2b);
}
.th-lb-nav {
	position: absolute;
	top: 50%;
	z-index: 5;
	width: 46px;
	height: 56px;
	border-radius: 8px;
	background: rgba(184, 134, 47, .95);
	color: #fff;
	font-size: 34px;
	line-height: 1;
	transform: translateY(-50%);
	box-shadow: 0 8px 20px rgba(0, 0, 0, .22);
}
.th-lb-prev { left: 16px; }
.th-lb-next { right: 16px; }
.th-lb-nav:hover {
	background: #fff;
	color: var(--th-primary, #7a1f2b);
}
.th-lb-toolbar {
	position: absolute;
	top: 18px;
	left: 50%;
	z-index: 5;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 8px;
	border: 1px solid rgba(255, 255, 255, .18);
	border-radius: 999px;
	background: rgba(26, 16, 12, .75);
	backdrop-filter: blur(8px);
	transform: translateX(-50%);
}
.th-lb-toolbar[hidden] { display: none !important; }
.th-lb-zoom-btn {
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .1);
	color: #fff;
	font-size: 18px;
	line-height: 1;
}
.th-lb-zoom-btn:hover {
	background: var(--th-accent, #b8862f);
}
.th-lb-zoom-label {
	min-width: 52px;
	color: #f5ebe0;
	font-size: 12.5px;
	font-weight: 600;
	text-align: center;
}
.th-lb-caption {
	position: absolute;
	right: 24px;
	bottom: 18px;
	left: 24px;
	z-index: 5;
	color: rgba(245, 235, 224, .9);
	font-family: var(--th-serif, Georgia, serif);
	font-size: 15px;
	text-align: center;
	pointer-events: none;
}
@media (max-width: 575px) {
	.th-lb { padding: 12px; }
	.th-lb-toolbar {
		top: auto;
		bottom: 54px;
	}
	.th-lb-nav {
		width: 40px;
		height: 48px;
		font-size: 28px;
	}
	.th-lb-prev { left: 8px; }
	.th-lb-next { right: 8px; }
}

/* News */
.site-theme-elegant .th-news-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px 24px;
	max-width: none;
	margin: 0 0 34px;
	text-align: left;
}
.site-theme-elegant .th-news-head-text { flex: 1; min-width: 0; }
.site-theme-elegant .th-news-head .th-divider { margin-left: 0; }
.site-theme-elegant .th-news-all {
	flex-shrink: 0;
	gap: 8px;
	margin-bottom: 6px;
	padding: 10px 18px;
	font-size: 13px;
	white-space: nowrap;
}
.site-theme-elegant .th-news-all i,
.site-theme-elegant .th-news-all svg {
	width: 15px;
	height: 15px;
	stroke: currentColor;
	transition: transform .2s ease;
}
.site-theme-elegant .th-news-all:hover svg { transform: translateX(3px); }
.site-theme-elegant .th-news-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
}
.site-theme-elegant .th-news-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	overflow: hidden;
	border: 1px solid var(--th-line);
	background: #fff;
	color: var(--th-text);
	box-shadow: 0 12px 28px rgba(43, 33, 24, .06);
	transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
.site-theme-elegant .th-news-card:hover {
	border-color: color-mix(in srgb, var(--th-primary) 30%, var(--th-line));
	box-shadow: 0 18px 36px rgba(43, 33, 24, .1);
	color: var(--th-text);
	transform: translateY(-3px);
}
.site-theme-elegant .th-news-media {
	margin: 0;
	overflow: hidden;
	background: var(--th-cream-2);
}
.site-theme-elegant .th-news-media img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	filter: contrast(1.04) saturate(1.03);
	transition: transform .45s ease;
}
.site-theme-elegant .th-news-card:hover .th-news-media img { transform: scale(1.04); }
.site-theme-elegant .th-news-body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 10px;
	padding: 18px 18px 20px;
}
.site-theme-elegant .th-news-date {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	color: var(--th-accent);
	font-size: 13px;
	font-style: italic;
}
.site-theme-elegant .th-news-date i,
.site-theme-elegant .th-news-date svg {
	width: 14px;
	height: 14px;
	stroke: var(--th-accent);
}
.site-theme-elegant .th-news-card h4 {
	margin: 0;
	flex: 1;
	color: var(--th-text);
	font-size: 18px;
	font-weight: 700;
	line-height: 1.4;
}
.site-theme-elegant .th-news-more {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 4px;
	color: var(--th-primary);
	font-family: var(--th-serif);
	font-size: 14px;
	font-weight: 600;
}
.site-theme-elegant .th-news-more i,
.site-theme-elegant .th-news-more svg {
	width: 14px;
	height: 14px;
	stroke: currentColor;
	transition: transform .2s ease;
}
.site-theme-elegant .th-news-card:hover .th-news-more svg { transform: translateX(3px); }

/* Footer */
.site-theme-elegant .th-footer {
	position: relative;
	z-index: 1;
	padding: 64px 0 0;
	background: var(--thm-footer-bg, #2b1a14);
	color: var(--thm-footer-text, #d8c9b4);
}
.site-theme-elegant .th-footer::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	height: 3px;
	background: linear-gradient(90deg, transparent, var(--th-accent), var(--th-primary), var(--th-accent), transparent);
}
.site-theme-elegant .th-footer-grid {
	display: grid;
	grid-template-columns: 1.2fr 1fr .9fr;
	gap: 42px 48px;
	padding: 0 0 56px;
}
.site-theme-elegant .th-footer-col { min-width: 0; }
.site-theme-elegant .th-footer-kicker {
	display: block;
	margin-bottom: 8px;
	color: var(--th-accent);
	font-family: var(--th-serif);
	font-size: 12px;
	font-style: italic;
	letter-spacing: .08em;
}
.site-theme-elegant .th-footer h4 {
	margin: 0 0 22px;
	color: #fff;
	font-size: 20px;
	line-height: 1.3;
}
.site-theme-elegant .th-footer h4::after {
	content: "";
	display: block;
	width: 34px;
	height: 2px;
	margin-top: 12px;
	background: var(--th-accent);
}
.site-theme-elegant .th-footer-list,
.site-theme-elegant .th-footer-links {
	margin: 0;
	padding: 0;
	list-style: none;
}
.site-theme-elegant .th-footer-list li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin: 0 0 14px;
	line-height: 1.55;
}
.site-theme-elegant .th-footer-list li:last-child { margin-bottom: 0; }
.site-theme-elegant .th-footer-ico {
	display: grid;
	place-items: center;
	flex-shrink: 0;
	width: 28px;
	height: 28px;
	margin-top: 1px;
	border: 1px solid rgba(255, 255, 255, .14);
	border-radius: 50%;
	background: rgba(255, 255, 255, .04);
	color: var(--th-accent);
}
.site-theme-elegant .th-footer-ico i,
.site-theme-elegant .th-footer-ico svg {
	width: 14px;
	height: 14px;
	stroke: var(--th-accent);
	color: var(--th-accent);
}
.site-theme-elegant .th-footer-links {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px 18px;
}
.site-theme-elegant .th-footer-links a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--thm-footer-text, #d8c9b4);
	transition: color .2s ease, transform .2s ease;
}
.site-theme-elegant .th-footer-links a::before {
	content: "";
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: color-mix(in srgb, var(--th-accent) 70%, transparent);
	transition: background .2s ease, transform .2s ease;
}
.site-theme-elegant .th-footer-links a:hover {
	color: #fff;
	transform: translateX(2px);
}
.site-theme-elegant .th-footer-links a:hover::before {
	background: var(--th-accent);
	transform: scale(1.15);
}
.site-theme-elegant .th-footer-hours {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin: 0;
	color: var(--thm-footer-text, #d8c9b4);
	line-height: 1.6;
}
.site-theme-elegant .th-footer-social-wrap { margin-top: 28px; }
.site-theme-elegant .th-footer-social-label {
	display: block;
	margin-bottom: 12px;
	color: rgba(255, 255, 255, .55);
	font-size: 12px;
	letter-spacing: .1em;
	text-transform: uppercase;
}
.site-theme-elegant .th-social {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.site-theme-elegant .th-social a {
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: 50%;
	background: rgba(255, 255, 255, .03);
	color: #fff;
	transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.site-theme-elegant .th-social a i,
.site-theme-elegant .th-social a svg {
	width: 15px;
	height: 15px;
	stroke: currentColor;
	color: currentColor;
}
.site-theme-elegant .th-social a:hover {
	background: var(--th-accent);
	border-color: var(--th-accent);
	color: #fff;
	transform: translateY(-2px);
}
.site-theme-elegant .th-footer a { color: var(--thm-footer-text, #d8c9b4); }
.site-theme-elegant .th-footer a:hover { color: var(--th-accent); }
.site-theme-elegant .th-copyright {
	position: relative;
	z-index: 1;
	padding: 16px 0;
	border-top: 1px solid rgba(255, 255, 255, .08);
	background: var(--thm-copyright-bg, #1d110d);
	color: var(--thm-copyright-text, #bfae96);
	font-size: 13.5px;
}
.site-theme-elegant .th-copyright-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px 20px;
}
.site-theme-elegant .th-copyright-brand {
	color: var(--th-accent);
	font-family: var(--th-serif);
	font-style: italic;
}
.site-theme-elegant .th-copyright span { color: inherit; }
.site-theme-elegant .th-copyright .th-copyright-brand { color: var(--th-accent); }

/* Inner page hero + breadcrumb */
.site-theme-elegant .th-page-hero {
	position: relative;
	padding: 88px 0 72px;
	background-color: var(--th-dark);
	background-size: cover;
	background-position: center;
	text-align: center;
}
.site-theme-elegant .th-page-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(26, 16, 12, .55), color-mix(in srgb, var(--th-primary) 72%, rgba(26, 16, 12, .88)));
}
.site-theme-elegant .th-page-hero-frame {
	position: relative;
	z-index: 1;
	max-width: 720px;
	margin: 0 auto;
	padding: 28px 22px;
	border: 1px solid rgba(255, 255, 255, .22);
	outline: 1px solid rgba(184, 134, 47, .45);
	outline-offset: 8px;
	background: rgba(26, 16, 12, .28);
}
.site-theme-elegant .th-page-hero .th-kicker { color: var(--th-accent); }
.site-theme-elegant .th-page-hero h1 {
	margin: 8px 0 0;
	color: #fff;
	font-size: clamp(28px, 4vw, 44px);
	font-weight: 700;
	line-height: 1.25;
}
.site-theme-elegant .th-page-hero .th-divider { margin: 16px auto 0; }
.site-theme-elegant .th-page-hero .th-divider i { box-shadow: 0 0 0 4px transparent; background: var(--th-accent); }
.site-theme-elegant .th-breadcrumb {
	padding: 15px 0;
	border-bottom: 1px solid #3f6f82;
	background: linear-gradient(90deg, #4f7f94 0%, #3e6d82 50%, #4f7f94 100%);
}
.site-theme-elegant .th-breadcrumb ol {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px 0;
	margin: 0;
	padding: 0;
	list-style: none;
}
.site-theme-elegant .th-breadcrumb li {
	color: rgba(255, 255, 255, .82);
	font-size: 14px;
	font-style: italic;
}
.site-theme-elegant .th-breadcrumb li:not(:last-child)::after {
	content: "/";
	margin: 0 10px;
	color: rgba(255, 255, 255, .55);
}
.site-theme-elegant .th-breadcrumb a {
	color: #fff;
	font-weight: 600;
}
.site-theme-elegant .th-breadcrumb a:hover {
	color: var(--th-accent);
}
.site-theme-elegant .th-breadcrumb li[aria-current="page"] {
	color: #f2d9a6;
	font-style: normal;
	font-weight: 700;
}

/* Teachers page */
.site-theme-elegant .th-teachers-page { padding-top: 60px; }
.site-theme-elegant .th-teachers-page-head {
	max-width: 640px;
	margin-bottom: 28px;
}
.site-theme-elegant .th-teachers-page-head p {
	margin: 14px 0 0;
	color: var(--th-muted);
}
.site-theme-elegant .th-teachers-filter,
.site-theme-elegant #doctors-filter.th-teachers-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 0 48px;
	padding: 0 0 18px;
	list-style: none;
	text-align: left;
}
.site-theme-elegant #doctors-filter.th-teachers-filter li {
	display: block;
	margin: 0;
	padding: 0;
}
.site-theme-elegant #doctors-filter.th-teachers-filter a {
	display: inline-flex;
	align-items: center;
	padding: 9px 16px;
	border: 1px solid var(--th-line);
	border-radius: 0;
	background: #fff;
	color: var(--th-text);
	font-family: var(--th-serif);
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1.3;
	transition: border-color .2s ease, background .2s ease, color .2s ease;
}
.site-theme-elegant #doctors-filter.th-teachers-filter a:hover,
.site-theme-elegant #doctors-filter.th-teachers-filter a.active {
	border-color: var(--th-primary);
	background: var(--th-primary);
	color: #fff;
}
.site-theme-elegant #doctors-grid.th-teachers-page-grid {
	position: relative;
	display: block;
	margin: 0 -11px;
	padding: 0;
	list-style: none;
}
.site-theme-elegant #doctors-grid.th-teachers-page-grid .doctors-grid,
.site-theme-elegant #doctors-grid.th-teachers-page-grid .th-teacher-card-wrap {
	float: left;
	width: 25%;
	margin: 0;
	padding: 0 11px 22px;
	list-style: none;
}
.site-theme-elegant .th-teacher-page-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	height: 100%;
	overflow: hidden;
	padding-top: 16px;
	border: 1px solid var(--th-line);
	background: #fff;
	box-shadow: 0 12px 28px rgba(43, 33, 24, .06);
	transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
.site-theme-elegant .th-teacher-page-card:hover {
	border-color: color-mix(in srgb, var(--th-primary) 32%, var(--th-line));
	box-shadow: 0 18px 36px rgba(43, 33, 24, .1);
	transform: translateY(-3px);
}
.site-theme-elegant .th-teacher-page-photo {
	position: relative;
	margin: 0 auto;
	max-width: 168px;
	overflow: hidden;
	background: var(--th-cream-2);
}
.site-theme-elegant .th-teacher-page-photo img {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	height: 168px;
	object-fit: cover;
	object-position: center top;
	border-radius: 18px 0 0 0;
	filter: contrast(1.04) saturate(1.02);
	transition: transform .45s ease, filter .3s ease;
}
.site-theme-elegant .th-teacher-page-card:hover .th-teacher-page-photo img {
	transform: scale(1.04);
	filter: contrast(1.06) saturate(1.05);
}
.site-theme-elegant .th-teacher-page-social {
	position: absolute;
	right: 12px;
	bottom: 12px;
	left: 12px;
	z-index: 2;
	display: flex;
	justify-content: center;
	gap: 8px;
	opacity: 0;
	transform: translateY(8px);
	transition: opacity .25s ease, transform .25s ease;
}
.site-theme-elegant .th-teacher-page-card:hover .th-teacher-page-social {
	opacity: 1;
	transform: none;
}
.site-theme-elegant .th-teacher-page-social a {
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border: 1px solid rgba(255, 255, 255, .28);
	border-radius: 50%;
	background: color-mix(in srgb, var(--th-primary) 88%, #000);
	color: #fff;
}
.site-theme-elegant .th-teacher-page-social a:hover {
	background: var(--th-accent);
	border-color: var(--th-accent);
	color: #fff;
}
.site-theme-elegant .th-teacher-page-social i,
.site-theme-elegant .th-teacher-page-social svg {
	width: 14px;
	height: 14px;
	stroke: currentColor;
}
.site-theme-elegant .th-teacher-page-meta {
	padding: 14px 16px 22px;
	text-align: center;
}
.site-theme-elegant .th-teacher-page-meta h3 {
	margin: 0 0 6px;
	color: var(--th-text);
	font-size: 17px;
	font-weight: 700;
	line-height: 1.35;
}
.site-theme-elegant .th-teacher-page-role {
	margin: 0;
	color: var(--th-accent);
	font-size: 13.5px;
	font-style: italic;
	line-height: 1.4;
}
.site-theme-elegant .th-teacher-page-dept {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	margin-top: 12px;
	margin-bottom: 4px;
	padding: 7px 12px;
	border: 1px solid var(--th-line);
	background: var(--th-cream);
	color: var(--th-muted);
	font-size: 12.5px;
	line-height: 1.3;
}
.site-theme-elegant .th-teacher-page-dept i,
.site-theme-elegant .th-teacher-page-dept svg {
	width: 13px;
	height: 13px;
	stroke: var(--th-accent);
}
.site-theme-elegant .th-teachers-empty {
	margin: 0;
	padding: 28px;
	border: 1px dashed var(--th-line);
	background: var(--th-cream);
	text-align: center;
}

/* Shared page body / panels */
.site-theme-elegant .th-page-body {
	position: relative;
	z-index: 5;
	padding-top: 50px;
	padding-bottom: 70px;
	overflow: visible;
}
.site-theme-elegant .th-page-intro { max-width: 720px; margin-bottom: 28px; }
.site-theme-elegant .th-page-intro .th-prose { margin-top: 14px; }
.site-theme-elegant .th-page-panel {
	padding: 28px 28px 32px;
	border: 1px solid var(--th-line);
	background: #fff;
	box-shadow: 0 14px 34px rgba(43, 33, 24, .06);
}
.site-theme-elegant .th-page-panel-classic { padding: 26px 24px 30px; }
.site-theme-elegant .th-page-panel-intro {
	margin: 0 0 22px;
	color: var(--th-muted);
	line-height: 1.7;
}
.site-theme-elegant .th-page-form-box,
.site-theme-elegant .th-page-panel-classic .th-page-form-box {
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
}
.site-theme-elegant .th-page-panel-classic .th-classic-body {
	padding: 0 !important;
	margin: 0;
}
.site-theme-elegant .th-page-panel-classic .headers-line {
	margin: 22px 0 14px;
	padding: 0 0 10px;
	border: 0;
	border-bottom: 1px solid var(--th-line);
	color: var(--th-primary);
	font-family: var(--th-serif);
	font-size: 16px;
	font-weight: 700;
	overflow: visible;
}
.site-theme-elegant .th-page-panel-classic .headers-line:before,
.site-theme-elegant .th-page-panel-classic .headers-line:after {
	content: none !important;
	display: none !important;
	border: 0 !important;
}
.site-theme-elegant .th-page-panel-classic label.control-label,
.site-theme-elegant .th-page-panel-classic .form-group label {
	color: var(--th-text);
	font-weight: 600;
}
.site-theme-elegant .th-page-panel-classic .form-control,
.site-theme-elegant .th-page-panel-classic .select2-container--default .select2-selection--single {
	border-color: var(--th-line);
	border-radius: 2px;
	min-height: 44px;
}
.site-theme-elegant .th-page-panel-classic .nav-tabs {
	border-bottom: 1px solid var(--th-line);
	margin-bottom: 18px;
}
.site-theme-elegant .th-page-panel-classic .nav-tabs .nav-link {
	border: 0;
	border-bottom: 2px solid transparent;
	color: var(--th-muted);
	font-family: var(--th-serif);
	font-weight: 600;
}
.site-theme-elegant .th-page-panel-classic .nav-tabs .nav-link.active {
	border-bottom-color: var(--th-primary);
	color: var(--th-primary);
	background: transparent;
}

/* Admission form */
.site-theme-elegant .th-admission-page { padding-top: 46px; padding-bottom: 72px; }
.site-theme-elegant .th-admission-panel {
	padding: 0;
	overflow: visible;
}
.site-theme-elegant .th-admission-panel > .th-classic-body {
	padding: 28px 28px 34px !important;
}
.site-theme-elegant .th-admission-page-title {
	margin: 0 0 10px;
	color: var(--th-primary);
	font-family: var(--th-serif);
	font-size: clamp(22px, 2.4vw, 30px);
	font-weight: 700;
}
.site-theme-elegant .th-admission-panel .th-classic-body > p,
.site-theme-elegant .th-admission-panel .th-classic-body > div:not(.th-page-form-box):not(.modal):not(script) {
	max-width: 760px;
	color: var(--th-muted);
	line-height: 1.75;
}
.site-theme-elegant .th-admission-form {
	position: relative;
	margin-top: 22px;
	padding: 0;
	border: 0;
	background: transparent;
}
.site-theme-elegant .th-admission-form-title {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 14px 18px;
	margin: 0 0 22px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--th-line);
}
.site-theme-elegant .th-admission-form-title-main {
	min-width: 0;
	flex: 1 1 220px;
}
.site-theme-elegant .th-admission-form-title .th-kicker {
	display: inline-block;
	margin-bottom: 8px;
}
.site-theme-elegant .th-admission-form-title h2 {
	margin: 0;
	color: var(--th-primary);
	font-family: var(--th-serif);
	font-size: clamp(20px, 2.2vw, 26px);
}
.site-theme-elegant .th-admission-form-title .th-divider {
	margin: 12px 0 0;
}
.site-theme-elegant .th-admission-form-title .th-admission-toolbar {
	position: static;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 8px;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
}
.site-theme-elegant .th-admission-tool-btn,
.site-theme-elegant .th-admission-toolbar .th-btn {
	margin: 0;
	padding: 10px 14px;
	border-radius: 2px !important;
	font-size: 12.5px;
	letter-spacing: .04em;
	text-transform: none;
	white-space: nowrap;
}
.site-theme-elegant .th-admission-section {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 30px 0 16px;
	padding: 0 0 10px;
	border: 0 !important;
	border-bottom: 1px solid var(--th-line) !important;
	background: transparent;
	color: var(--th-primary);
	font-family: var(--th-serif);
	font-size: 15px;
	font-weight: 700;
	overflow: visible;
	position: relative;
}
.site-theme-elegant .th-admission-section:before,
.site-theme-elegant .th-admission-section:after {
	content: none !important;
	display: none !important;
	border: 0 !important;
	width: 0 !important;
	height: 0 !important;
}
.site-theme-elegant .th-admission-section:first-of-type { margin-top: 10px; }
.site-theme-elegant .th-admission-section i {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border: 1px solid var(--th-line);
	background: var(--th-cream);
	color: var(--th-accent);
	font-size: 13px;
	line-height: 1;
}
.site-theme-elegant .th-admission-form .form-group {
	margin-bottom: 18px;
}
.site-theme-elegant .th-admission-form .form-group label,
.site-theme-elegant .th-admission-form label.control-label {
	display: block;
	margin-bottom: 7px;
	color: var(--th-text);
	font-size: 13.5px;
	font-weight: 600;
}
.site-theme-elegant .th-admission-form .required {
	color: #b42318;
	font-weight: 700;
}
.site-theme-elegant .th-admission-form .form-control,
.site-theme-elegant .th-admission-form textarea.form-control {
	width: 100%;
	min-height: 46px;
	padding: 10px 14px;
	border: 1px solid var(--th-line);
	border-radius: 2px;
	background: #fff;
	color: var(--th-text);
	box-shadow: none;
	transition: border-color .2s ease, box-shadow .2s ease;
}
.site-theme-elegant .th-admission-form textarea.form-control {
	min-height: 92px;
	resize: vertical;
}
.site-theme-elegant .th-admission-form .form-control:focus {
	border-color: var(--th-accent);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--th-accent) 18%, transparent);
	outline: 0;
}
.site-theme-elegant .th-admission-form .select2-container { width: 100% !important; }
.site-theme-elegant .th-admission-form .select2-container--default .select2-selection--single {
	display: flex;
	align-items: center;
	min-height: 46px;
	padding: 4px 10px;
	border: 1px solid var(--th-line);
	border-radius: 2px;
	background: #fff;
}
.site-theme-elegant .th-admission-form .select2-container--default .select2-selection--single .select2-selection__rendered {
	padding-left: 4px;
	color: var(--th-text);
	line-height: 36px;
}
.site-theme-elegant .th-admission-form .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 44px;
}
.site-theme-elegant .th-admission-form .select2-container--default.select2-container--focus .select2-selection--single,
.site-theme-elegant .th-admission-form .select2-container--default.select2-container--open .select2-selection--single {
	border-color: var(--th-accent);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--th-accent) 18%, transparent);
}
.site-theme-elegant .th-admission-form .error,
.site-theme-elegant .th-admission-form span.error {
	display: block;
	margin-top: 6px;
	color: #b42318;
	font-size: 12.5px;
}
.site-theme-elegant .th-admission-form #subject_list,
.site-theme-elegant .th-admission-form #optional_subject_id,
.site-theme-elegant .th-admission-form #elective_subject_id {
	min-height: 120px;
	max-height: 280px;
	padding: 12px 14px;
	overflow: auto;
	border: 1px solid var(--th-line);
	background: var(--th-cream);
}
.site-theme-elegant .th-admission-form #subject_list p,
.site-theme-elegant .th-admission-form #optional_subject_id p,
.site-theme-elegant .th-admission-form #elective_subject_id p {
	margin: 0 0 8px;
	color: var(--th-muted);
}
.site-theme-elegant .th-admission-form .form-check {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 10px;
	padding: 8px 10px;
	border: 1px solid transparent;
	background: #fff;
}
.site-theme-elegant .th-admission-form .form-check:hover {
	border-color: var(--th-line);
}
.site-theme-elegant .th-admission-form .form-check-input {
	width: 16px;
	height: 16px;
	margin: 0;
	flex-shrink: 0;
	accent-color: var(--th-primary);
}
.site-theme-elegant .th-admission-form .form-check-label {
	margin: 0;
	font-weight: 500;
}
.site-theme-elegant .th-admission-form .th-file-field,
.site-theme-elegant .th-admission-form .custom-file.th-file-field {
	display: flex;
	align-items: stretch;
	position: relative;
	width: 100%;
	min-height: 58px;
	height: auto;
	margin: 0;
	overflow: hidden;
	border: 1px dashed color-mix(in srgb, var(--th-accent) 45%, var(--th-line));
	border-radius: 2px;
	background:
		linear-gradient(180deg, #fff 0%, var(--th-cream) 100%);
	transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.site-theme-elegant .th-admission-form .th-file-field:hover {
	border-color: var(--th-accent);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--th-accent) 14%, transparent);
}
.site-theme-elegant .th-admission-form .th-file-field .custom-file-input {
	position: absolute;
	inset: 0;
	z-index: 3;
	width: 100%;
	height: 100%;
	margin: 0;
	opacity: 0;
	cursor: pointer;
}
.site-theme-elegant .th-admission-form .th-file-field .custom-file-label {
	display: flex !important;
	align-items: center;
	gap: 12px;
	position: relative;
	z-index: 1;
	width: 100%;
	height: auto !important;
	min-height: 58px;
	margin: 0;
	padding: 12px 118px 12px 16px !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	color: var(--th-muted) !important;
	font-size: 13.5px;
	font-weight: 500;
	line-height: 1.4;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.site-theme-elegant .th-admission-form .th-file-field .custom-file-label::before {
	content: "\f574";
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 34px;
	width: 34px;
	height: 34px;
	border: 1px solid var(--th-line);
	background: #fff;
	color: var(--th-accent);
	font-size: 14px;
}
.site-theme-elegant .th-admission-form .th-file-field .custom-file-label::after {
	content: "Browse" !important;
	position: absolute;
	top: 50%;
	right: 10px;
	bottom: auto;
	z-index: 2;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	height: auto !important;
	min-height: 0;
	padding: 8px 14px !important;
	border: 1px solid var(--th-primary) !important;
	border-radius: 2px;
	background: var(--th-primary) !important;
	color: #fff !important;
	font-family: var(--th-serif);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	line-height: 1;
	transform: translateY(-50%);
}
.site-theme-elegant .th-admission-form .th-file-field:hover .custom-file-label::after {
	background: var(--th-accent) !important;
	border-color: var(--th-accent) !important;
}
.site-theme-elegant .th-admission-form .form-group.th-upload-group,
.site-theme-elegant .th-admission-form .form-group:has(.th-file-field) {
	padding: 14px;
	border: 1px solid var(--th-line);
	background: #fff;
}
.site-theme-elegant .th-admission-form .form-group.th-upload-group > label,
.site-theme-elegant .th-admission-form .form-group:has(.th-file-field) > label {
	margin-bottom: 10px;
}
.site-theme-elegant .th-admission-form .accordion .card {
	border: 1px solid var(--th-line);
	border-radius: 0;
	background: #fff;
	box-shadow: none;
}
.site-theme-elegant .th-admission-form .accordion .card-header {
	padding: 0;
	border-bottom: 1px solid var(--th-line);
	background: var(--th-cream);
}
.site-theme-elegant .th-admission-form .accordion .card-title {
	margin: 0;
	padding: 14px 16px;
	color: var(--th-primary);
	font-family: var(--th-serif);
	font-size: 15px;
	cursor: pointer;
}
.site-theme-elegant .th-admission-form .accordion .card-body {
	padding: 16px;
	color: var(--th-muted);
	line-height: 1.7;
}
.site-theme-elegant .th-admission-submit {
	display: flex;
	justify-content: flex-start;
	margin-top: 10px;
	padding-top: 22px;
	border-top: 1px solid var(--th-line);
}
.site-theme-elegant .th-admission-submit .th-btn {
	min-width: 180px;
	justify-content: center;
}
.site-theme-elegant .th-admission-form #cvEligibleStatus .text-success { color: #067a56 !important; }
.site-theme-elegant .th-admission-form #cvEligibleStatus .text-danger { color: #b42318 !important; }
.site-theme-elegant .th-admission-modal .modal-content {
	border: 1px solid var(--th-line);
	border-radius: 0;
	box-shadow: 0 18px 40px rgba(43, 33, 24, .16);
}
.site-theme-elegant .th-admission-modal .modal-header {
	align-items: center;
	padding: 16px 20px;
	border-bottom: 1px solid var(--th-line);
	background: var(--th-cream);
}
.site-theme-elegant .th-admission-modal .modal-title {
	margin: 0;
	color: var(--th-primary);
	font-family: var(--th-serif);
	font-size: 18px;
	font-weight: 700;
}
.site-theme-elegant .th-admission-modal .modal-body {
	padding: 20px;
}
.site-theme-elegant .th-admission-modal .modal-footer {
	gap: 10px;
	padding: 14px 20px 18px;
	border-top: 1px solid var(--th-line);
	background: #fff;
}
.site-theme-elegant .th-admission-modal .form-control {
	min-height: 46px;
	border: 1px solid var(--th-line);
	border-radius: 2px;
}
@media (max-width: 575px) {
	.site-theme-elegant .th-admission-panel > .th-classic-body {
		padding: 18px 16px 22px !important;
	}
	.site-theme-elegant .th-admission-form-title {
		align-items: stretch;
	}
	.site-theme-elegant .th-admission-form-title .th-admission-toolbar {
		width: 100%;
		flex-direction: column;
		justify-content: stretch;
	}
	.site-theme-elegant .th-admission-tool-btn,
	.site-theme-elegant .th-admission-toolbar .th-btn,
	.site-theme-elegant .th-admission-submit .th-btn {
		width: 100%;
		justify-content: center;
	}
}

/* Shared lookup forms (certificates / similar) */
.site-theme-elegant .th-lookup-page {
	position: relative;
	z-index: 5;
	padding-top: 46px;
	padding-bottom: 72px;
	overflow: visible;
}
.site-theme-elegant .th-lookup-panel,
.site-theme-elegant .th-page-panel,
.site-theme-elegant .th-page-panel-classic {
	position: relative;
	z-index: 5;
	overflow: visible;
}
.site-theme-elegant .th-lookup-panel {
	padding: 28px 28px 32px;
	border: 1px solid var(--th-line);
	background: #fff;
	box-shadow: 0 14px 34px rgba(43, 33, 24, .06);
}

/* Keep Select2 menus above footer / CTA bands */
.site-theme-elegant .select2-container--open,
.site-theme-elegant .select2-container--open .select2-dropdown,
.site-theme-elegant .select2-dropdown {
	z-index: 10060 !important;
}
body.site-theme-elegant > .select2-container,
html.site-theme-elegant .select2-container--open,
.select2-container--open {
	z-index: 10060 !important;
}
.select2-container--open .select2-dropdown {
	z-index: 10060 !important;
}
.site-theme-elegant .th-lookup-intro {
	max-width: 760px;
	margin: 0 0 22px;
	color: var(--th-muted);
	line-height: 1.75;
}
.site-theme-elegant .th-lookup-form-title {
	margin: 0 0 22px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--th-line);
}
.site-theme-elegant .th-lookup-form-title .th-kicker {
	display: inline-block;
	margin-bottom: 8px;
}
.site-theme-elegant .th-lookup-form-title h2 {
	margin: 0;
	color: var(--th-primary);
	font-family: var(--th-serif);
	font-size: clamp(20px, 2.2vw, 28px);
}
.site-theme-elegant .th-lookup-form-title .th-divider { margin: 12px 0 0; }
.site-theme-elegant .th-lookup-form-title p {
	max-width: 560px;
	margin: 12px 0 0;
	color: var(--th-muted);
	line-height: 1.7;
}
.site-theme-elegant .th-lookup-form-box,
.site-theme-elegant .th-lookup-panel .th-page-form-box {
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
}
.site-theme-elegant .th-lookup-panel > .th-classic-body {
	padding: 0 !important;
}
.site-theme-elegant .th-lookup-form .form-group,
.site-theme-elegant .th-lookup-form-box .form-group,
.site-theme-elegant .th-lookup-panel .form-group { margin-bottom: 18px; }
.site-theme-elegant .th-lookup-form .form-group label,
.site-theme-elegant .th-lookup-form label.control-label,
.site-theme-elegant .th-lookup-panel .form-group label,
.site-theme-elegant .th-lookup-panel label.control-label {
	display: block;
	margin-bottom: 7px;
	color: var(--th-text);
	font-size: 13.5px;
	font-weight: 600;
}
.site-theme-elegant .th-lookup-form .required,
.site-theme-elegant .th-lookup-panel .required {
	color: #b42318;
	font-weight: 700;
}
.site-theme-elegant .th-lookup-form .form-control,
.site-theme-elegant .th-lookup-panel .form-control {
	width: 100%;
	min-height: 46px;
	padding: 10px 14px;
	border: 1px solid var(--th-line);
	border-radius: 2px;
	background: #fff;
	color: var(--th-text);
	box-shadow: none;
	transition: border-color .2s ease, box-shadow .2s ease;
}
.site-theme-elegant .th-lookup-form .form-control:focus,
.site-theme-elegant .th-lookup-panel .form-control:focus {
	border-color: var(--th-accent);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--th-accent) 18%, transparent);
	outline: 0;
}
.site-theme-elegant .th-lookup-form .select2-container,
.site-theme-elegant .th-lookup-panel .select2-container { width: 100% !important; }
.site-theme-elegant .th-lookup-form .select2-container--default .select2-selection--single,
.site-theme-elegant .th-lookup-panel .select2-container--default .select2-selection--single {
	display: flex;
	align-items: center;
	min-height: 46px;
	padding: 4px 10px;
	border: 1px solid var(--th-line);
	border-radius: 2px;
	background: #fff;
}
.site-theme-elegant .th-lookup-form .select2-container--default .select2-selection--single .select2-selection__rendered,
.site-theme-elegant .th-lookup-panel .select2-container--default .select2-selection--single .select2-selection__rendered {
	padding-left: 4px;
	color: var(--th-text);
	line-height: 36px;
}
.site-theme-elegant .th-lookup-form .select2-container--default .select2-selection--single .select2-selection__arrow,
.site-theme-elegant .th-lookup-panel .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 44px;
}
.site-theme-elegant .th-lookup-form .select2-container--default.select2-container--focus .select2-selection--single,
.site-theme-elegant .th-lookup-form .select2-container--default.select2-container--open .select2-selection--single,
.site-theme-elegant .th-lookup-panel .select2-container--default.select2-container--focus .select2-selection--single,
.site-theme-elegant .th-lookup-panel .select2-container--default.select2-container--open .select2-selection--single {
	border-color: var(--th-accent);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--th-accent) 18%, transparent);
}
.site-theme-elegant .th-lookup-form .error,
.site-theme-elegant .th-lookup-form span.error,
.site-theme-elegant .th-lookup-panel .error,
.site-theme-elegant .th-lookup-panel span.error {
	display: block;
	margin-top: 6px;
	color: #b42318;
	font-size: 12.5px;
}
.site-theme-elegant .th-lookup-submit {
	display: flex;
	justify-content: flex-start;
	margin-top: 6px;
	padding-top: 20px;
	border-top: 1px solid var(--th-line);
}
.site-theme-elegant .th-lookup-submit .th-btn {
	min-width: 170px;
	justify-content: center;
}
.site-theme-elegant .th-lookup-result {
	margin-top: 28px;
	padding-top: 22px;
	border-top: 1px solid var(--th-line);
}
.site-theme-elegant .th-lookup-result-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 16px;
	padding: 12px 14px;
	border: 1px solid var(--th-line);
	background: var(--th-cream);
}
.site-theme-elegant .th-lookup-result-label {
	color: var(--th-primary);
	font-family: var(--th-serif);
	font-size: 15px;
	font-weight: 700;
}
.site-theme-elegant .th-lookup-card {
	padding: 16px;
	border: 1px solid var(--th-line);
	background: #fff;
	overflow: auto;
}
@media (max-width: 575px) {
	.site-theme-elegant .th-lookup-panel { padding: 18px 16px 22px; }
	.site-theme-elegant .th-lookup-submit .th-btn,
	.site-theme-elegant .th-lookup-result-bar .th-btn {
		width: 100%;
		justify-content: center;
	}
}

.site-theme-elegant .th-print-holder,
.site-theme-elegant .th-page-panel-classic #card_holder {
	margin-top: 24px;
}
.site-theme-elegant .th-pagination {
	margin-top: 28px;
	text-align: center;
}
.site-theme-elegant .th-empty {
	margin: 0;
	padding: 28px;
	border: 1px dashed var(--th-line);
	background: var(--th-cream);
	color: var(--th-muted);
	text-align: center;
}

/* About page */
.site-theme-elegant .th-about-layout {
	display: grid;
	grid-template-columns: 1.2fr .9fr;
	gap: 40px;
	align-items: start;
}
.site-theme-elegant .th-about-copy h2 {
	margin: 8px 0 0;
	color: var(--th-primary);
	font-size: clamp(24px, 3vw, 34px);
}
.site-theme-elegant .th-about-copy .th-divider { margin-left: 0; }
.site-theme-elegant .th-about-content { margin-top: 18px; }
.site-theme-elegant .th-about-figure {
	margin: 0;
	padding: 10px;
	border: 1px solid var(--th-line);
	border-radius: 40px 0 40px 0;
	background: #fff;
	box-shadow: 0 16px 34px rgba(43, 33, 24, .08);
	overflow: hidden;
}
.site-theme-elegant .th-about-figure img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 32px 0 32px 0;
}
.site-theme-elegant .th-about-features {
	position: relative;
	padding: 80px 0;
	background-color: var(--th-dark);
	background-size: cover;
	background-position: center;
}
.site-theme-elegant .th-about-features::before {
	content: "";
	position: absolute;
	inset: 0;
	background: color-mix(in srgb, var(--th-dark) 82%, transparent);
}
.site-theme-elegant .th-about-features .container { position: relative; z-index: 1; }
.site-theme-elegant .th-about-feature-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	margin-top: 34px;
}
.site-theme-elegant .th-about-feature {
	padding: 24px 20px;
	border: 1px solid rgba(255, 255, 255, .14);
	background: rgba(255, 255, 255, .05);
	color: rgba(255, 255, 255, .88);
	text-align: center;
}
.site-theme-elegant .th-about-feature i {
	display: block;
	margin-bottom: 12px;
	color: var(--th-accent);
	font-size: 28px;
}
.site-theme-elegant .th-about-feature h3 {
	margin: 0 0 8px;
	color: #fff;
	font-size: 18px;
}
.site-theme-elegant .th-about-feature p { margin: 0; line-height: 1.65; }
.site-theme-elegant .th-about-cta {
	padding: 34px 0;
	background: var(--th-primary);
}
.site-theme-elegant .th-about-cta-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px 24px;
}
.site-theme-elegant .th-about-cta h3 {
	margin: 0;
	color: #fff;
	font-size: clamp(20px, 2.4vw, 28px);
}

/* Events page */
.site-theme-elegant .th-events-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
}
.site-theme-elegant .th-event-card {
	overflow: hidden;
	border: 1px solid var(--th-line);
	background: #fff;
	box-shadow: 0 12px 28px rgba(43, 33, 24, .06);
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.site-theme-elegant .th-event-card:hover {
	border-color: color-mix(in srgb, var(--th-primary) 30%, var(--th-line));
	box-shadow: 0 18px 36px rgba(43, 33, 24, .1);
	transform: translateY(-3px);
}
.site-theme-elegant .th-event-media { margin: 0; overflow: hidden; background: var(--th-cream-2); }
.site-theme-elegant .th-event-media img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	transition: transform .45s ease;
}
.site-theme-elegant .th-event-card:hover .th-event-media img { transform: scale(1.04); }
.site-theme-elegant .th-event-body { padding: 16px 16px 18px; }
.site-theme-elegant .th-event-date {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-bottom: 8px;
	color: var(--th-accent);
	font-size: 12.5px;
	font-style: italic;
}
.site-theme-elegant .th-event-date i,
.site-theme-elegant .th-event-date svg {
	width: 14px;
	height: 14px;
	stroke: var(--th-accent);
}
.site-theme-elegant .th-event-body h3 {
	margin: 0 0 8px;
	font-size: 18px;
	line-height: 1.35;
}
.site-theme-elegant .th-event-body h3 a { color: var(--th-text); }
.site-theme-elegant .th-event-body h3 a:hover { color: var(--th-primary); }
.site-theme-elegant .th-event-body p {
	margin: 0 0 12px;
	color: var(--th-muted);
	line-height: 1.6;
}

/* Gallery page — same card/lightbox language as home gallery */
.site-theme-elegant .th-gallery-page { padding-top: 50px; padding-bottom: 70px; }
.site-theme-elegant .th-gallery-page-head { margin-bottom: 24px; }
.site-theme-elegant .th-gallery-page .th-teachers-filter { margin-bottom: 28px; }
.site-theme-elegant .th-gallery-page .th-gallery { margin-bottom: 0; }
.site-theme-elegant .th-gallery-item[data-th-hidden="1"] { display: none !important; }

/* Shared inner pages */
.site-theme-elegant .main-banner { position: relative; padding: 100px 0 80px; background-size: cover !important; background-position: center !important; text-align: center; }
.site-theme-elegant .main-banner::before { content: ""; position: absolute; inset: 0; background: linear-gradient(rgba(26, 16, 12, .55), color-mix(in srgb, var(--th-primary) 70%, rgba(26, 16, 12, .8))); }
.site-theme-elegant .main-banner .container { position: relative; }
.site-theme-elegant .main-banner h2 { color: #fff; font-size: clamp(30px, 4vw, 46px); }
.site-theme-elegant .main-banner h2::first-letter { color: inherit; }
.site-theme-elegant .main-banner h2 span { padding: 0; background: none; color: #fff; }
.site-theme-elegant .main-banner h2::after { content: "\2726  \2726  \2726"; display: block; margin-top: 12px; color: var(--th-accent); font-size: 14px; letter-spacing: .3em; }
.site-theme-elegant .breadcrumb {
	padding: 15px 0;
	border-bottom: 1px solid #3f6f82;
	border-radius: 0;
	background: linear-gradient(90deg, #4f7f94 0%, #3e6d82 50%, #4f7f94 100%);
}
.site-theme-elegant .breadcrumb ul { text-align: center; }
.site-theme-elegant .breadcrumb li {
	color: rgba(255, 255, 255, .82);
	font-size: 14px;
	font-style: italic;
	text-transform: none;
}
.site-theme-elegant .breadcrumb li a {
	color: #fff;
	font-weight: 600;
}
.site-theme-elegant .breadcrumb li.active {
	color: #f2d9a6;
	font-style: normal;
	font-weight: 700;
}
.site-theme-elegant .breadcrumb li a:hover { color: var(--th-accent); }
.site-theme-elegant .main-container { padding-top: 60px; padding-bottom: 80px; }
.site-theme-elegant .main-heading1 { color: var(--th-accent); font-style: italic; }
.site-theme-elegant .main-heading2 { color: var(--th-primary); }

.site-theme-elegant .btn,
.site-theme-elegant .btn-1,
.site-theme-elegant .btn-black,
.site-theme-elegant .btn-main { border-radius: 2px; font-family: var(--th-serif); letter-spacing: .05em; }
.site-theme-elegant .btn-1,
.site-theme-elegant .btn-main,
.site-theme-elegant .btn-primary { border-color: var(--th-primary); background: var(--th-primary); color: #fff; }
.site-theme-elegant .btn-1:hover,
.site-theme-elegant .btn-main:hover,
.site-theme-elegant .btn-primary:hover { border-color: var(--th-accent); background: var(--th-accent); color: #fff; }
.site-theme-elegant .form-control,
.site-theme-elegant .select2-container--default .select2-selection--single { min-height: 46px; border: 1px solid var(--th-line); border-radius: 2px; background-color: #fff; box-shadow: none; }
.site-theme-elegant .form-control:focus { border-color: var(--th-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--th-accent) 20%, transparent); }
.site-theme-elegant .news-post-box,
.site-theme-elegant .bio-box,
.site-theme-elegant .gallery-grid .hover-content,
.site-theme-elegant .card { border: 1px solid var(--th-line); border-radius: 0; background: #fff; box-shadow: none; }
.site-theme-elegant .news-post-box .inner { padding: 18px 20px 22px; }
.site-theme-elegant .news-post-box h5 a { color: var(--th-text); font-family: var(--th-serif); }
.site-theme-elegant .about-featured { position: relative; }
.site-theme-elegant .about-featured::before { content: ""; position: absolute; inset: 0; background: color-mix(in srgb, var(--th-dark) 85%, transparent); }
.site-theme-elegant .about-featured .container { position: relative; }
.site-theme-elegant .about-featured h2,
.site-theme-elegant .about-featured h3,
.site-theme-elegant .about-featured h4,
.site-theme-elegant .counters-wrapper h2,
.site-theme-elegant .counters-wrapper h3 { color: #fff; }
.site-theme-elegant .about-featured li i { color: var(--th-accent); }
.site-theme-elegant .footer-top-bar { padding: 40px 0; background: var(--th-primary); }
.site-theme-elegant .footer-top-bar h3 { color: #fff; }
.site-theme-elegant .footer-top-bar .btn-black { background: var(--th-accent); color: #fff; }
.site-theme-elegant .pagination > .page-item > .page-link { border-radius: 0 !important; }
.site-theme-elegant .pagination > .page-item.active > .page-link { border-color: var(--th-primary); background: var(--th-primary); }
.site-theme-elegant .back-to-top { border-radius: 0; background: var(--th-primary); }
.site-theme-elegant .lds-dual-ring:after { border-color: var(--th-primary) transparent var(--th-accent) transparent; }

/* Responsive */
@media (max-width: 1199px) {
	.site-theme-elegant .th-nav-inner { justify-content: space-between; min-height: 58px; }
	.site-theme-elegant .th-nav-brand-mobile { display: flex; }
	.site-theme-elegant .th-nav-brand-center { display: none; }
	.site-theme-elegant .th-nav-collapse {
		display: none !important;
		flex: 0 0 100%;
		flex-direction: column;
		align-items: stretch;
		justify-content: flex-start;
		max-height: calc(100vh - 70px);
		overflow-y: auto;
		width: 100%;
	}
	.site-theme-elegant .th-nav-collapse.show { display: flex !important; }
	.site-theme-elegant .th-menu { flex: 0 0 auto; flex-direction: column; flex-wrap: nowrap; align-items: stretch; width: 100%; padding-bottom: 0; }
	.site-theme-elegant .th-menu-left,
	.site-theme-elegant .th-menu-right { justify-content: flex-start; }
	.site-theme-elegant .th-menu-right { padding-bottom: 12px; }
	.site-theme-elegant .th-menu > li > a { justify-content: space-between; padding: 12px 4px; border-bottom: 1px solid var(--th-line); }
	.site-theme-elegant .th-menu > li > a::after { display: none; }
	.site-theme-elegant .th-submenu {
		position: static;
		min-width: 0;
		margin: 0 0 8px;
		padding: 6px;
		border: 1px solid var(--th-line);
		border-radius: 4px;
		background: var(--th-cream);
		box-shadow: none;
		opacity: 1;
		visibility: visible;
		transform: none;
	}
	.site-theme-elegant .th-submenu::before,
	.site-theme-elegant .th-submenu::after { display: none; }
	.site-theme-elegant .th-submenu a { color: var(--th-text); }
	.site-theme-elegant .th-submenu a:hover,
	.site-theme-elegant .th-submenu a.is-active {
		background: #fff;
		color: var(--th-primary);
		padding-left: 12px;
	}
	.site-theme-elegant .th-submenu-arrow { display: none; }
	.site-theme-elegant .th-menu-caret { margin-left: auto; }
}

@media (max-width: 991px) {
	.site-theme-elegant .th-services-grid { grid-template-columns: repeat(3, 1fr); }
	.site-theme-elegant .th-service { border-bottom: 1px solid rgba(255, 255, 255, .14); }
	.site-theme-elegant .th-intro { grid-template-columns: 1fr; }
	.site-theme-elegant .th-news-head { flex-direction: column; align-items: flex-start; }
	.site-theme-elegant .th-news-all { margin-bottom: 0; }
	.site-theme-elegant .th-news-grid { grid-template-columns: 1fr 1fr; }
	.site-theme-elegant .th-stats-rail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.site-theme-elegant .th-stat:nth-child(2n + 1)::before { display: none; }
	.site-theme-elegant .th-stat:nth-child(n + 3)::after {
		content: "";
		position: absolute;
		top: 0;
		right: 16%;
		left: 16%;
		height: 1px;
		background: linear-gradient(90deg, transparent, var(--th-line), transparent);
	}
	.site-theme-elegant .th-teachers-title-row { flex-direction: column; align-items: flex-start; }
	.site-theme-elegant .th-teachers-all { margin-bottom: 0; }
	.site-theme-elegant #doctors-grid.th-teachers-page-grid .doctors-grid,
	.site-theme-elegant #doctors-grid.th-teachers-page-grid .th-teacher-card-wrap { width: 50%; }
	.site-theme-elegant #doctors-grid.th-gallery-page-grid .doctors-grid,
	.site-theme-elegant #doctors-grid.th-gallery-page-grid .th-gallery-card-wrap { width: 50%; }
	.site-theme-elegant .th-about-layout,
	.site-theme-elegant .th-events-grid,
	.site-theme-elegant .th-about-feature-grid { grid-template-columns: 1fr 1fr; }
	.site-theme-elegant .th-committee,
	.site-theme-elegant .th-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.site-theme-elegant .th-footer-grid { grid-template-columns: 1fr 1fr; gap: 34px; }
	.site-theme-elegant .th-footer-col:last-child { grid-column: 1 / -1; }
	.site-theme-elegant .th-section { padding: 70px 0; }
}

@media (max-width: 575px) {
	.site-theme-elegant .th-topbar-inner { flex-direction: column; justify-content: center; padding: 6px 15px; }
	.site-theme-elegant .th-hero-slide { min-height: clamp(360px, calc(100vh - 260px), 480px); }
	.site-theme-elegant .th-hero-frame { padding: 30px 18px; outline-offset: 6px; }
	.site-theme-elegant .th-hero .owl-nav { display: none; }
	.site-theme-elegant .th-services-grid { grid-template-columns: repeat(2, 1fr); }
	.site-theme-elegant .th-intro-title-row { flex-direction: column; align-items: flex-start; }
	.site-theme-elegant .th-intro-details { margin-bottom: 0; }
	.site-theme-elegant .th-intro-figure { float: none; width: 100%; max-width: none; margin: 0 0 18px; }
	.site-theme-elegant .th-speech-portrait,
	.site-theme-elegant .th-intro-speeches .th-speech-portrait {
		float: none;
		width: 100%;
		max-width: 200px;
		margin: 0 0 16px;
	}
	.site-theme-elegant .th-intro-figure,
	.site-theme-elegant .th-speech-portrait,
	.site-theme-elegant .th-intro-speeches .th-speech-portrait { border-radius: 32px 0 32px 0; }
	.site-theme-elegant .th-intro-figure img,
	.site-theme-elegant .th-speech-portrait img { border-radius: 26px 0 26px 0; }
	.site-theme-elegant .th-teachers-grid { grid-template-columns: 1fr; gap: 14px; }
	.site-theme-elegant .th-teacher-photo { width: 96px; }
	.site-theme-elegant .th-teacher-photo img { height: 128px; }
	.site-theme-elegant #doctors-grid.th-teachers-page-grid .doctors-grid,
	.site-theme-elegant #doctors-grid.th-teachers-page-grid .th-teacher-card-wrap { width: 100%; }
	.site-theme-elegant #doctors-grid.th-gallery-page-grid .doctors-grid,
	.site-theme-elegant #doctors-grid.th-gallery-page-grid .th-gallery-card-wrap { width: 100%; }
	.site-theme-elegant .th-about-layout,
	.site-theme-elegant .th-events-grid,
	.site-theme-elegant .th-about-feature-grid { grid-template-columns: 1fr; }
	.site-theme-elegant .th-about-cta-inner { justify-content: center; text-align: center; }
	.site-theme-elegant .th-page-panel,
	.site-theme-elegant .th-page-panel-classic { padding: 18px 16px 22px; }
	.site-theme-elegant .th-page-hero { padding: 64px 0 52px; }
	.site-theme-elegant .th-page-hero-frame { outline-offset: 5px; padding: 22px 16px; }
	.site-theme-elegant .th-teacher-page-social { opacity: 1; transform: none; }
	.site-theme-elegant .th-committee { grid-template-columns: 1fr; }
	.site-theme-elegant .th-gallery { grid-template-columns: 1fr; }
	.site-theme-elegant .th-footer { padding-top: 48px; }
	.site-theme-elegant .th-footer-grid { grid-template-columns: 1fr; gap: 30px; padding-bottom: 40px; }
	.site-theme-elegant .th-footer-col:last-child { grid-column: auto; }
	.site-theme-elegant .th-footer-links { grid-template-columns: 1fr; }
	.site-theme-elegant .th-copyright-inner { justify-content: center; text-align: center; }
	.site-theme-elegant .th-news-grid { grid-template-columns: 1fr; }
}
