/* **********************************************************************
 * 神經醫學中心 (Neurology Center)
 * Custom CSS
 ********************************************************************** */

/* ==========================================================================
	 Material Symbols Font
========================================================================== */
@font-face {
	font-family: 'Material Symbols Outlined';
	font-style: normal;
	font-weight: 100 700;
	src: url("/Public/common/icon2/material-symbols-outlined.e5892f6fb33f.ttf") format('truetype');
}

/* Manrope Font */
@font-face {
	font-family: 'Manrope';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("/Public/common/fonts2/manrope-400.b14c3069e3f7.ttf") format('truetype');
}
@font-face {
	font-family: 'Manrope';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url("/Public/common/fonts2/manrope-600.9c61a253b039.ttf") format('truetype');
}
@font-face {
	font-family: 'Manrope';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("/Public/common/fonts2/manrope-700.ad56d0ba69e7.ttf") format('truetype');
}
@font-face {
	font-family: 'Manrope';
	font-style: normal;
	font-weight: 800;
	font-display: swap;
	src: url("/Public/common/fonts2/manrope-800.b7a637ee24e9.ttf") format('truetype');
}

/* Variables */
:root {
	/* Colors */
	--primary: #005c55;
	--on-white: #ffffff;
	--primary-container: #0f766e;
	--on-primary-container: #a3faef;
	--primary-fixed: #9cf2e8;
	--on-primary-fixed: #00201d;
	--primary-fixed-dim: #80d5cb;
	--bg-soft: #eff4f4;
	--bg-warm: #fcf7ec;
	
	--secondary: #825335;
	--secondary-container: #fdbf99;
	--on-secondary-container: #794b2e;
	--secondary-fixed: #ffdbc8;
	--on-secondary-fixed: #321300;
	--secondary-fixed-dim: #f7b994;

	--tertiary: #784500;
	--tertiary-container: #9a5a00;
	--on-tertiary-container: #ffe6d1;
	--tertiary-fixed: #ffdcbe;
	--on-tertiary-fixed: #2c1600;
	--tertiary-fixed-dim: #ffb870;

	--surface: #fcf9f4;
	--on-surface: #1c1c19;
	--surface-variant: #e5e2dd;
	--on-surface-variant: #3e4947;
	--surface-container-low: #f6f3ee;
	--surface-container: #f0ede8;
	--surface-container-high: #ebe8e3;
	--surface-container-highest: #e5e2dd;
	--inverse-surface: #31302d;
	
	--background: #fcf9f4;
	--on-background: #1c1c19;
	
	--outline: #6e7977;
	--outline-variant: #bdc9c6;

	/* Spacing */
	--space-xs: 4px;
	--space-base: 8px;
	--space-sm: 12px;
	--space-md: 24px;
	--space-lg: 48px;
	--space-xl: 80px;
	--space-gutter: 24px;
	--space-margin: 32px;

	/* Radius */
	--radius-sm: 0.25rem;
	--radius-lg: 0.5rem;
	--radius-xl: 1.25rem;
	--radius-full: 9999px;

	/* Typography */
	--font-family: 'Manrope', sans-serif;

	/* Banner Specific Background */
	--neuro-bg-soft: #f4f1ea;
}


/* ==========================================================================
	 Reset / Base
========================================================================== */
* {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}
body {
	font-family: var(--font-family);
	background-color: var(--background);
	color: var(--primary);
	line-height: 1.6;
	font-size: 18px; /* body-md */
	overflow-x: hidden;
}

a {
	text-decoration: none;
	color: var(--on-surface-variant);
}

a:hover {
	text-decoration: none;
	color: var(--color-secondary);
}

button, input, select, textarea {
	font-family: inherit;
	border: none;
	outline: none;
}

button {
	cursor: pointer;
}

img {
	max-width: 100%;
	display: block;
}

/* Google Material Symbols 圖示（Icons) */
.material-symbols-outlined {
	font-family: 'Material Symbols Outlined';
	font-weight: normal;
	font-style: normal;
	font-size: 24px;
	line-height: 1;
	letter-spacing: normal;
	text-transform: none;
	display: inline-block;
	white-space: nowrap;
	word-wrap: normal;
	direction: ltr;
	-webkit-font-smoothing: antialiased;
	font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
	vertical-align: middle;
	color: var(--primary);
}


/* ==========================================================================
	 導航列 (nav-header) 
========================================================================== */
.m-nav__link{
	padding: 0 15px;
	color: var(--on-surface-variant);
}
.m-nav__link:hover{
	color: var(--primary);
	font-weight: 700;
}
/* Logo 尺寸獨立設定：防止手機版 Header 與按鈕並排時擁擠，同時保留選單內 Logo 的放大效果 */
.m-header__logo img {
	height: 40px; /* 手機版 Header Logo 維持較小，不與預約、首頁按鈕連動放大 */
}
.m-mobile-logo img {
	height: 55px; /* 僅在行動選單打開時（內有 Logo 與 X 按鈕）將選單 Logo 放大 */
}
@media (min-width: 992px) {
	.m-header__logo img {
		height: 55px; /* 桌機版有足夠空間，Header Logo 放大至 55px */
	}
}
/* 「立即預約」按鈕高度、對齊與純色設定 */
.m-header .btn-primary {
	height: 35px;
	display: inline-flex;
	align-items: center;
	justify-content: center;		
	padding: 0 7px;
	font-size: 0.8rem;
	box-sizing: border-box;
	border-radius: var(--radius-full, 9999px);
	background-color: var(--primary-container, #0f766e);
	color: var(--on-white) !important;
	text-decoration: none;
	border: none !important;
	outline: none !important;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
	transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1), 
							box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1), 
							transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	vertical-align: middle;
	z-index: 1;
}
.m-header .btn-primary:hover {
	background-color: var(--primary, #005c55);
	box-shadow: 0 4px 10px rgba(0, 92, 85, 0.25);
	transform: translateY(-2px);
}
.m-header .btn-primary span {
	position: relative;
	z-index: 2;
}

@media (min-width: 992px){
	.m-header__container{
		max-width: 100%;
	}
	.m-header .btn-primary {
		height: 42px;
		font-size: 1rem;
		padding: 0 20px;
	}
}
@media (min-width: 1200px){
	.m-header__logo img, .m-mobile-logo img{
		height: 55px;
	}
}
@media (min-width: 1400px){
	.m-header__container{
		max-width: 90%;
	}
}
@media (min-width: 1600px){
	.m-header__container{
		max-width: 75%;
	}
}
/* 「長安首頁」圓形按鈕 */
#homeBtn.btn-icon-circle {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 35px;
	height: 35px;
	border-radius: 50%;
	padding: 0 !important;
	position: relative;
	overflow: hidden;
	background-color: #ab7c5d; /* 大地深棕色 */
	color: var(--on-white) !important;
	text-decoration: none;
	border: none !important;
	outline: none !important;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
	transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1), 
							box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1), 
							transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	vertical-align: middle;
	box-sizing: border-box;
	z-index: 1;
}
#homeBtn.btn-icon-circle:hover {
	background-color: #8b5937;
	box-shadow: 0 4px 10px rgba(171, 124, 93, 0.3);
	transform: translateY(-2px);
}

/* 取消原有底線 hover 效果 */
#homeBtn.btn-icon-circle::after {
	display: none !important;
}

/* icon 與文字置中定位與漸變 */
#homeBtn.btn-icon-circle i {
	font-size: 1.1rem;
	opacity: 1;
	transform: scale(1);
	transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), 
							transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	position: absolute;
	display: block;
	z-index: 2;
}

#homeBtn.btn-icon-circle .btn-icon-text {
	font-size: 0.6rem;
	line-height: 1.2;
	font-weight: 700;
	text-align: center;
	opacity: 0;
	transform: scale(0.8);
	transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), 
							transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	position: absolute;
	color: var(--on-white);
	white-space: nowrap;
	display: block;
	z-index: 2;
}

#homeBtn.btn-icon-circle:hover i {
	opacity: 0;
	transform: scale(0.8);
}

#homeBtn.btn-icon-circle:hover .btn-icon-text {
	opacity: 1;
	transform: scale(1);
}
@media (min-width: 992px){
	#homeBtn.btn-icon-circle {
		width: 42px;
		height: 42px;
	}
}
/* 行動版漢堡按鈕與側邊欄 */
.m-hamburger {
	padding: 5px;
}
.m-mobile-header__title {
	font-weight: 600;
}
.m-mobile-link {
	font-weight: 500;
	color: var(--on-surface-variant) !important;
}
@media (min-width: 992px){
	.m-nav { display: none; }
	.m-hamburger { display: block; }
}
@media (min-width: 1200px){
	.m-nav { display: flex; }
  .m-hamburger { display: none; }
}

.btn-primary {
	background-color: var(--primary);
	color: var(--on-white);
	border-radius: var(--radius-full);
	font-weight: 600;
	transition: all 0.3s;
}
.btn-primary:hover,.btn-primary.focus, .btn-primary:focus {
	background-color: var(--primary-container) !important;
	box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1) !important;
	border-color: var(--primary-container) !important;
}


/* ==========================================================================
	 頁尾列 (footer) 
========================================================================== */

.footer {
	background-color: var(--inverse-surface);
	padding-top: var(--space-lg);
	padding-bottom: var(--space-lg);
	margin-top: var(--space-xl);
}
.footer-inner {
	display: flex;
	flex-direction: column;
	gap: var(--space-md);
}
@media (min-width: 768px) {
	.footer-inner {
		flex-direction: row;
		justify-content: space-between;
	}
}
.footer-brand {
	display: flex;
	flex-direction: column;
	gap: var(--space-sm);
}
.footer-brand-title {
	font-size: 24px;
	font-weight: 700;
	color: var(--surface);
}
.footer-brand-desc {
	color: var(--surface-variant);
	opacity: 0.8;
	max-width: 320px;
}
.footer-links-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--space-xl);
}
.footer-link-group {
	display: flex;
	flex-direction: column;
	gap: var(--space-xs);
}
.footer-link-title {
	color: var(--secondary-fixed);
	font-weight: 700;
	margin-bottom: var(--space-xs);
}
.footer-link {
	color: var(--surface-variant);
	opacity: 0.8;
	transition: color 0.2s;
	font-size: 16px;
}
.footer-link:hover {
	color: var(--secondary-fixed-dim);
	text-decoration: underline;
	text-underline-offset: 4px;
}
.footer-bottom {
	margin-top: var(--space-lg);
	padding-top: var(--space-md);
	border-top: 1px solid rgba(255,255,255,0.1);
	text-align: center;
	color: var(--surface-variant);
	opacity: 0.6;
	font-size: 14px;
}
@media (min-width: 768px) {
	.footer-bottom {
		text-align: left;
	}
}


/* ==========================================================================
	 Modal - 停休診時間 (clinic-rest-time) 
========================================================================== */
.clinic-rest-time {
    background-color: var(--surface-container);
    font-size: 1.2rem;
    border-bottom-left-radius: calc(0.3rem - 1px);
    border-bottom-right-radius: calc(0.3rem - 1px);
    padding-bottom: 0px;
}
.clinic-month {
    background-color: var(--on-white);
}
.clinic-month h6 {
    margin-bottom: 0;
    text-align: center;
    line-height: 30px;
}
.clinic-month div:first-child {
    font-size: 1.5rem;
    font-weight: bold;
}
.clinic-time-list {
    padding: 0 !important;
}
.clinic-time-list .title,
.clinic-time-list .detail {
    display: flex;
    justify-content: space-between;
}
.clinic-time-list .title > div {
    width: 20%;
    text-align: center;
    font-weight: bold;
}
.clinic-time-list li .badge {
    font-size: 1rem;
    line-height: 1.3rem;
}
.clinic-time-list .list-group-item:last-child {
    border-bottom-right-radius: 0px;
    border-bottom-left-radius: 0px;
}

/* 停休診時間 - 診別標籤 */
.morning-clinic {
    background-color: #d3e0ea;
    color: #1a3c5a;
}
.afternoon-clinic {
    background-color: #fdf5d3;
    color: #7f5c1d;
}
.evening-clinic {
    background-color: #e6e0f8;
    color: #432c7a;
}

#stopModalLabel small{
	color: var(--on-surface-variant);
}
.no-data-text{
	text-align: center;
	color: var(--outline);
	font-size: 1.5rem;
	font-weight: 700;
}


/* ==========================================================================
	 3. Edu Page Specifics
	 ========================================================================== */
.hero-edu {
		text-align: center;
		margin-bottom: var(--space-xl);
		padding-top: var(--space-lg);
}
.hero-title {
		font-size: 32px;
		font-weight: 700;
		color: var(--primary);
		margin-bottom: var(--space-md);
		line-height: 1.3;
}
.hero-desc {
		font-size: 20px;
		color: var(--on-surface-variant);
		margin-bottom: var(--space-lg);
		max-width: 42rem;
		margin-left: auto;
		margin-right: auto;
}
.search-wrapper {
		position: relative;
		max-width: 36rem;
		margin: 0 auto;
}
.search-icon {
		position: absolute;
		left: var(--space-md);
		top: 50%;
		transform: translateY(-50%);
		color: var(--outline);
		pointer-events: none;
}
.search-input {
		width: 100%;
		padding: var(--space-md);
		padding-left: var(--space-xl);
		background-color: var(--surface-container-low);
		border-radius: var(--radius-xl);
		font-size: 18px;
		color: var(--on-surface);
}
.search-input::placeholder {
		color: var(--outline-variant);
}
.search-input:focus {
		box-shadow: 0 0 0 2px var(--primary);
}
.filter-section {
		display: flex;
		flex-wrap: wrap;
		gap: var(--space-sm);
		justify-content: center;
		margin-bottom: var(--space-lg);
}
.filter-chip {
		padding: var(--space-xs) var(--space-md);
		border-radius: var(--radius-full);
		font-size: 16px;
		font-weight: 600;
		box-shadow: 0 1px 2px rgba(0,0,0,0.05);
		color: var(--on-surface-variant);
		transition: all 0.2s ease;
}
.filter-chip.active {
		background-color: var(--primary);
		color: var(--on-white);
}
.filter-chip:hover {
		background-color: var(--primary);
		color: var(--on-white);
}

.content-grid {
		display: grid;
		grid-template-columns: 1fr;
		gap: var(--space-xl);
}
@media (min-width: 1200px) {
		.content-grid {
				grid-template-columns: repeat(12, 1fr);
		}
}
.articles-area {
		display: flex;
		flex-direction: column;
		gap: var(--space-lg);
}
@media (min-width: 1200px) {
		.articles-area {
				grid-column: span 8 / span 8;
		}
}
.articles-grid {
		display: grid;
		grid-template-columns: 1fr;
		gap: var(--space-md);
}
@media (min-width: 768px) {
		.articles-grid {
				grid-template-columns: 1fr 1fr;
		}
}
.article-card {
		overflow: hidden;
		box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
		display: flex;
		flex-direction: column;
		transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.3s ease;
		border-radius: var(--radius-xl);
		background-color: var(--on-white);
		border: 1px solid var(--surface-variant);
}
.article-card:hover {
		transform: translateY(-4px);
		box-shadow: 0 16px 32px -12px rgba(0, 92, 85, 0.25);
}
.article-img-wrapper {
		height: 12rem;
		width: 100%;
		overflow: hidden;
		position: relative;
}
.article-img-wrapper img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.article-card:hover .article-img-wrapper img {
		transform: scale(1.05);
}

/* Magazine Style Cards */
.magazine-card {
    transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
	border: 1px solid var(--outline-variant);
	padding: 10px 10px 20px 10px;
	background: var(--on-white);
	height: 100%;
	display: flex;
	flex-direction: column;
}
.magazine-card:hover {
    transform: translateY(-4px);
}
.magazine-img-wrapper{
	overflow: hidden;
	aspect-ratio: 4/3;
	margin-bottom: 1rem;
}
.magazine-img-wrapper img{
 	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.8s ease;
}
.magazine-card:hover .magazine-title {
    color: var(--primary);
}
.magazine-content{
	display: flex;
	flex-direction: column;
	flex-grow: 1;
	padding: 5px;
}
.magazine-meta{
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 2px;
	color: var(--primary);
	text-transform: uppercase;
	margin-bottom: .5rem;
}
.magazine-read-more{
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: 1px;
	color: var(--on-surface-variant);
	display: inline-flex;
	align-items: center;
	border-bottom: 1px solid currentColor;
	padding-bottom: 2px;
	width: fit-content;
	transition: color 0.3s ease, border-color 0.3s ease;
	margin-top: auto;
}
.magazine-card:hover .magazine-read-more {
    color: var(--primary);
    border-color: var(--primary) !important;
}
.magazine-title {
    transition: color 0.3s ease;
	font-size: 1.2rem;
	font-weight: 600;
	line-height: 1.5;
	color: var(--on-surface);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	letter-spacing: 0.5px;
	margin-bottom: 1rem;
}

.article-content {
		padding: var(--space-md);
		display: flex;
		flex-direction: column;
		flex-grow: 1;
}
.article-category {
		color: var(--tertiary);
		font-size: 16px;
		font-weight: 600;
		margin-bottom: var(--space-xs);
}
.article-title {
		font-size: 24px;
		font-weight: 600;
		color: var(--on-surface);
		line-height: 1.2;
		margin-bottom: var(--space-sm);
}
.article-excerpt {
		color: var(--on-surface-variant);
		font-size: 18px;
		margin-bottom: var(--space-md);
		display: -webkit-box;
		-webkit-line-clamp: 3;
		-webkit-box-orient: vertical;
		overflow: hidden;
}
.article-read-more {
	margin-top: auto;
	color: var(--primary);
	font-weight: 700;
	font-size: 16px;
	display: flex;
	align-items: center;
	gap: var(--space-xs);
	transition: all 0.2s;
	background: none;
}
.article-read-more:hover {
	gap: var(--space-sm);
}

.pagination {
	display: flex;
	justify-content: center;
	align-items: stretch;
	/* gap: var(--space-sm); */
	padding-top: var(--space-md);
}
.pagination .page-item {
	display: flex;
}
.pagination .page-link {
	display: flex;
	align-items: center;
}
.page-select {
	width: auto;
	display: flex;
	align-items: center;
	border-color: #dee2e6;
	border-radius: 0;
	font-size: 0.9rem;
	height: 100%;
}
.page-btn {
		width: 3rem;
		height: 3rem;
		display: flex;
		align-items: center;
		justify-content: center;
		border-radius: var(--radius-full);
		background-color: var(--surface-container-high);
		color: var(--on-surface-variant);
		transition: all 0.2s;
		font-size: 16px;
}
.page-btn:hover {
		background-color: var(--primary-fixed-dim);
}
.page-btn.active {
		background-color: var(--primary);
		color: var(--on-white);
		font-weight: 700;
}
.page-btn.nav-btn:hover {
		background-color: var(--primary);
		color: var(--on-white);
}

.sidebar {
		display: flex;
		flex-direction: column;
		gap: var(--space-lg);
}
@media (min-width: 1200px) {
		.sidebar {
				grid-column: span 4 / span 4;
		}
}
.sidebar-widget {
		background-color: var(--surface-container);
		border-radius: var(--radius-xl);
		padding: var(--space-md);
		box-shadow: 0 1px 2px rgba(0,0,0,0.05);
}
.widget-title {
		font-size: 24px;
		font-weight: 600;
		margin-bottom: var(--space-md);
		display: flex;
		align-items: center;
		gap: var(--space-sm);
}
.trending-list {
		display: flex;
		flex-direction: column;
		gap: var(--space-md);
}
.trending-item {
		display: flex;
		gap: var(--space-sm);
		cursor: pointer;
}
.trending-item:hover .trending-title {
		color: var(--primary);
}
.trending-num {
		font-size: 48px;
		font-weight: 700;
		color: var(--primary-fixed-dim);
		opacity: 0.5;
		flex-shrink: 0;
		line-height: 1;
}
.trending-title {
		font-size: 16px;
		font-weight: 600;
		color: var(--on-surface);
		transition: color 0.2s;
		margin-bottom: 2px;
}
.trending-meta {
		font-size: 14px;
		color: var(--outline);
}
.divider {
		border: none;
		border-top: 1px solid var(--outline-variant);
		opacity: 0.2;
}

.expert-cta {
		background-color: var(--primary);
		color: var(--on-white);
		border-radius: var(--radius-xl);
		padding: var(--space-md);
		box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1);
		position: relative;
		overflow: hidden;
}
.expert-cta:hover .cta-bg-circle {
		transform: scale(1.25);
}
.cta-bg-circle {
	position: absolute;
	right: -2rem;
	bottom: -2rem;
	width: 8rem;
	height: 8rem;
	background-color: var(--on-primary-container);
	opacity: 0.2;
	border-radius: var(--radius-full);
	transition: transform 0.5s;
}
.cta-content {
	position: relative;
	z-index: 10;
}
.cta-title {
	font-size: 24px;
	font-weight: 600;
	margin-bottom: var(--space-sm);
}
.cta-desc {
	opacity: 0.9;
	margin-bottom: var(--space-md);
}
.btn-white {
	width: 100%;
	background-color: var(--on-white);
	color: var(--primary);
	padding: var(--space-xs) var(--space-md);
	border-radius: var(--radius-full);
	font-weight: 700;
	transition: background-color 0.2s;
}
.btn-white:hover {
	background-color: var(--color-secondary);
}

.tip-widget {
	background-color: var(--secondary-fixed);
	color: var(--on-secondary-container);
	border-radius: var(--radius-xl);
	padding: var(--space-md);
	border: 1px solid var(--secondary-container);
	box-shadow: 0 1px 2px rgba(0,0,0,0.05);
}
.tip-title {
	font-size: 16px;
	font-weight: 600;
	margin-bottom: var(--space-xs);
	display: flex;
	align-items: center;
	gap: var(--space-xs);
}
.tip-content {
	font-style: italic;
}
.hero-media {
	text-align: center;
	padding-top: var(--space-xl);
	padding-bottom: var(--space-xl);
}
.hero-media-title {
	font-size: 48px;
	font-weight: 700;
	color: var(--primary);
	margin-bottom: var(--space-sm);
	line-height: 1.2;
}

.section-title-wrapper {
	display: flex;
	align-items: center;
	gap: var(--space-sm);
	margin-bottom: var(--space-md);
}
.section-title {
	font-size: 32px;
	font-weight: 700;
	color: var(--on-surface);
}

.news-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-md);
}
@media (min-width: 768px) {
	.news-grid {
		grid-template-columns: repeat(4, 1fr);
	}
}
.news-card-large {
	background-color: var(--on-white);
	border-radius: var(--radius-xl);
	box-shadow: 0 1px 2px rgba(0,0,0,0.05);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}
@media (min-width: 768px) {
	.news-card-large {
		grid-column: span 2 / span 2;
		grid-row: span 2 / span 2;
	}
}
.news-card-large:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 24px -10px rgba(130, 83, 53, 0.15);
}
.news-card-large img {
	width: 100%;
	height: 12rem;
	object-fit: cover;
}
.news-card-large-content {
	padding: var(--space-md);
	display: flex;
	flex-direction: column;
	flex-grow: 1;
}
.news-meta {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	margin-bottom: var(--space-sm);
}
.news-source-badge {
	background-color: var(--secondary-fixed);
	color: var(--on-secondary-container);
	padding: var(--space-xs) var(--space-sm);
	border-radius: var(--radius-sm);
	font-size: 16px;
	font-weight: 600;
}
.news-date {
	color: var(--outline);
	font-size: 18px;
}
.news-date-sm {
	font-size: 14px;
}
.news-title-large {
	font-size: 32px;
	font-weight: 700;
	color: var(--on-surface);
	margin-bottom: var(--space-md);
}
.news-excerpt {
	color: var(--on-surface-variant);
	font-size: 20px;
	margin-bottom: var(--space-lg);
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.news-card-row {
	background-color: var(--on-white);
	border-radius: var(--radius-xl);
	box-shadow: 0 1px 2px rgba(0,0,0,0.05);
	padding: var(--space-md);
	display: flex;
	gap: var(--space-md);
	align-items: center;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}
@media (min-width: 768px) {
	.news-card-row {
		grid-column: span 2 / span 2;
	}
}
.news-card-row:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 24px -10px rgba(130, 83, 53, 0.15);
}
.news-card-row-img {
	display: none;
	width: 8rem;
	height: 8rem;
	background-color: var(--surface-container);
	flex-shrink: 0;
}
.news-card-row-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
@media (min-width: 640px) {
	.news-card-row-img {
		display: block;
	}
}
.news-card-row-content {
	flex-grow: 1;
}
.news-source-text {
	color: var(--secondary);
	font-weight: 700;
	font-size: 16px;
}
.news-title-md {
	font-size: 24px;
	font-weight: 600;
	color: var(--on-surface);
	margin-bottom: var(--space-xs);
}
.news-link {
	color: var(--primary);
	font-size: 16px;
	font-weight: 600;
}
.news-link:hover {
	text-decoration: underline;
}

.news-card-small {
	background-color: var(--on-white);
	border-radius: var(--radius-xl);
	box-shadow: 0 1px 2px rgba(0,0,0,0.05);
	padding: var(--space-md);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.news-card-small:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 24px -10px rgba(130, 83, 53, 0.15);
}
.news-source-badge-sm {
	color: var(--secondary-container);
	background-color: rgba(121, 75, 46, 0.1);
	padding: var(--space-xs);
	border-radius: var(--radius-sm);
	font-size: 12px;
	display: inline-block;
	margin-bottom: var(--space-sm);
}
.news-title-sm {
	font-size: 24px;
	font-weight: 600;
	color: var(--on-surface);
	margin-bottom: var(--space-md);
	line-height: 1.25;
}

.cta-section {
	background-color: var(--primary);
	color: var(--on-white);
	border-radius: 1.5rem;
	padding: var(--space-lg);
	text-align: center;
	position: relative;
	overflow: hidden;
	margin-bottom: var(--space-xl);
}
@media (min-width: 768px) {
	.cta-section {
		padding: var(--space-xl);
	}
}
.cta-bg-pattern {
	position: absolute;
	inset: 0;
	opacity: 0.1;
	pointer-events: none;
	background-image: radial-gradient(circle at 20% 30%, var(--on-white) 1px, transparent 1px);
	background-size: 40px 40px;
}
.cta-section-title {
		font-size: 48px;
		font-weight: 700;
		margin-bottom: var(--space-md);
}
.cta-section-desc {
		font-size: 20px;
		margin-bottom: var(--space-lg);
		opacity: 0.9;
		max-width: 36rem;
		margin-left: auto;
		margin-right: auto;
}
.cta-actions {
		display: flex;
		flex-direction: column;
		justify-content: center;
		gap: var(--space-md);
}
@media (min-width: 640px) {
		.cta-actions {
				flex-direction: row;
		}
}
.btn-secondary {
		background-color: var(--secondary);
		color: var(--on-white);
		padding: var(--space-md) var(--space-xl);
		border-radius: var(--radius-full);
		font-size: 24px;
		font-weight: 600;
		transition: all 0.3s;
}
.btn-secondary:hover {
		box-shadow: 0 20px 25px -5px rgba(0,0,0,0.1);
		transform: translateY(-4px);
}
.btn-outline-white {
		border: 2px solid var(--on-white);
		color: var(--on-white);
		padding: var(--space-md) var(--space-xl);
		border-radius: var(--radius-full);
		font-size: 24px;
		font-weight: 600;
		transition: all 0.3s;
		background: transparent;
}
.btn-outline-white:hover {
		background-color: rgba(255,255,255,0.1);
}

.video-edu-section {
		padding-top: var(--space-xl);
		padding-bottom: var(--space-xl);
}
.video-edu-header {
		display: flex;
		justify-content: space-between;
		align-items: flex-end;
		margin-bottom: var(--space-lg);
}

/* --- About Page Specifics --- */
.hero-about {
		position: relative;
		width: 100%;
		height: 60vh;
		display: flex;
		align-items: center;
		overflow: hidden;
}
.hero-about-bg {
		position: absolute;
		inset: 0;
		z-index: 0;
}
.hero-about-bg img {
		width: 100%;
		height: 100%;
		object-fit: cover;
}
.hero-about-overlay {
		position: absolute;
		inset: 0;
		background: linear-gradient(to right, rgba(252, 249, 244, 0.9), transparent);
}
.hero-about-content {
		position: relative;
		z-index: 10;
		max-width: 42rem;
		padding: 0 var(--space-gutter);
		margin: 0 auto;
		width: 100%;
}
@media (min-width: 768px) {
		.hero-about-content {
				max-width: 1280px;
		}
}
.hero-about-title {
		font-size: 32px;
		font-weight: 700;
		color: var(--primary);
		margin-bottom: var(--space-md);
		line-height: 1.2;
}
@media (min-width: 768px) {
		.hero-about-title {
				font-size: 48px;
		}
}

.mission-vision-section {
		padding-top: var(--space-xl);
		padding-bottom: var(--space-xl);
		background-color: var(--surface-container-low);
}
.mission-grid {
		display: grid;
		grid-template-columns: 1fr;
		gap: var(--space-md);
}
@media (min-width: 768px) {
		.mission-grid {
				grid-template-columns: repeat(12, 1fr);
		}
}
.mission-card {
		background-color: var(--on-white);
		padding: var(--space-lg);
		border-radius: var(--radius-xl);
		box-shadow: 0 1px 2px rgba(0,0,0,0.05);
		border: 1px solid rgba(229, 226, 221, 0.3);
		display: flex;
		flex-direction: column;
		justify-content: space-between;
}
@media (min-width: 768px) {
		.mission-card {
				grid-column: span 7 / span 7;
		}
}
.vision-card {
		background-color: var(--secondary);
		color: var(--on-white);
		padding: var(--space-lg);
		border-radius: var(--radius-xl);
		display: flex;
		flex-direction: column;
		justify-content: center;
}
@media (min-width: 768px) {
		.vision-card {
				grid-column: span 5 / span 5;
		}
}
.quality-card {
		background-color: var(--on-white);
		padding: var(--space-lg);
		border-radius: var(--radius-xl);
		text-align: center;
		box-shadow: 0 1px 2px rgba(0,0,0,0.05);
		border: 1px solid rgba(229, 226, 221, 0.3);
}
@media (min-width: 768px) {
		.quality-card {
				grid-column: span 4 / span 4;
		}
}
.compassion-section {
		padding-top: var(--space-xl);
		padding-bottom: var(--space-xl);
		overflow: hidden;
}
.compassion-wrapper {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: var(--space-xl);
}
@media (min-width: 768px) {
		.compassion-wrapper {
				flex-direction: row;
		}
}
.compassion-image-container {
		position: relative;
		width: 100%;
}
@media (min-width: 768px) {
		.compassion-image-container {
				width: 50%;
		}
}
.compassion-text-container {
		width: 100%;
}
@media (min-width: 768px) {
		.compassion-text-container {
				width: 50%;
		}
}

/* --- Doctors Page Specifics --- */
.doctors-header {
		margin-bottom: var(--space-lg);
		text-align: center;
}
@media (min-width: 768px) {
		.doctors-header {
				text-align: left;
		}
}
.doctor-card {
		display: flex;
		flex-direction: column;
		background-color: var(--on-white);
		overflow: hidden;
		box-shadow: 0 1px 2px rgba(0,0,0,0.05);
		transition: all 0.3s ease;
}
.doctor-card:hover {
		box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1);
}

.doctor-img-wrapper {
	margin: 0;
	text-align: center;
	overflow: hidden;
	height: 20rem;
	position: relative;
}
.doctor-img {
	width: 100%;
	height: auto;
	max-height: 350px;
	object-fit: contain !important;
	object-position: bottom center;
	margin: 0 auto;
	display: block;
	transition: transform 0.5s;
}

.doctor-card:hover .doctor-img {
	transform: scale(1.05);
}
.doctor-badge {
	position: absolute;
	top: 1rem;
	right: 1rem;
	background-color: var(--primary);
	color: var(--on-white);
	padding: 0.25rem 0.75rem;
	border-radius: var(--radius-full);
	font-size: .8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	background-color: var(--secondary);
}
.doctor-info {
	padding: 1.5rem;
	display: flex;
	flex-direction: column;
	flex-grow: 1;
}

/* --- Treatment Page Specifics --- */
.treatment-bento-grid {
		display: grid;
		grid-template-columns: 1fr;
		gap: 2rem;
		margin-bottom: var(--space-xl);
}
@media (min-width: 768px) {
		.treatment-bento-grid {
				grid-template-columns: repeat(2, 1fr);
		}
}
@media (min-width: 1200px) {
		.treatment-bento-grid {
				grid-template-columns: repeat(3, 1fr);
		}
}
.treatment-card {
		background-color: var(--on-white);
		padding: 2rem;
		border-radius: var(--radius-xl);
		display: flex;
		flex-direction: column;
		justify-content: space-between;
		box-shadow: 0 2px 12px rgba(130, 83, 53, 0.1);
		transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.treatment-card:hover {
		transform: translateY(-4px);
		box-shadow: 0 12px 24px -10px rgba(130, 83, 53, 0.15);
}
.consultation-form-section {
		background-color: var(--surface-container);
		border-radius: 1.5rem;
		padding: 2rem;
		display: flex;
		flex-direction: column;
		gap: 3rem;
		align-items: center;
}
@media (min-width: 768px) {
		.consultation-form-section {
				padding: 4rem;
		}
}
@media (min-width: 1200px) {
		.consultation-form-section {
				flex-direction: row;
		}
}
.form-input, .form-select, .form-textarea {
		width: 100%;
		background-color: var(--surface-container-low);
		padding: 1rem;
		font-size: 18px;
		transition: all 0.2s;
		border: none;
		outline: none;
}
.form-input:focus, .form-select:focus, .form-textarea:focus {
		box-shadow: 0 0 0 2px var(--primary);
}

/* Utils */
.scrollbar-hide::-webkit-scrollbar {
		display: none;
}
.scrollbar-hide {
		-ms-overflow-style: none;
		scrollbar-width: none;
}
.filter-controls {
	display: flex;
	justify-content: center;
	gap: 1rem;
	overflow-x: auto;
	padding: 1rem 0 1.8rem 0;
}
.filter-controls .filter-chip {
	padding: 0.75rem 1.5rem;
	border: 1px solid var(--outline-variant);
	border-radius: var(--radius-full);
	display: flex;
	align-items: center;
	gap: 0.5rem;
	white-space: nowrap;
}
.filter-controls .filter-chip.active {
	background-color: var(--primary);
	color: var(--on-white);
	border-color: var(--primary);
}

/* FAB */
.fab-container {
		position: fixed;
		bottom: 2rem;
		right: 2rem;
		z-index: 40;
		display: flex;
		flex-direction: column;
		gap: 0.75rem;
}
.fab-btn {
		width: 3.5rem;
		height: 3.5rem;
		border-radius: var(--radius-full);
		display: flex;
		align-items: center;
		justify-content: center;
		box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1);
		transition: transform 0.2s;
		border: none;
		cursor: pointer;
}
.fab-btn:hover {
		transform: scale(1.1);
}
.fab-primary {
		background-color: var(--primary);
		color: var(--on-white);
}
.fab-tertiary {
		background-color: var(--tertiary-container);
		color: var(--on-white);
}

/* --- Split News Layout --- */
.news-section-asym {
		padding: var(--space-xl) 0;
		background-color: var(--surface);
}

.news-split-layout {
		display: grid;
		grid-template-columns: 1fr;
		gap: var(--space-lg);
}

@media (min-width: 992px) {
		.news-split-layout {
				grid-template-columns: 1fr 1fr;
				gap: var(--space-xl);
		}
}

/* Base Card Styles */
.news-split-layout .news-card-body {
		display: flex;
		flex-direction: column;
}
.news-tag {
	font-size: 0.8rem;
	font-weight: 500;
	padding: 0.25rem 0.65rem;
	display: inline-block;
	margin-bottom: 0.75rem;
	width: fit-content;
}

.tag-primary {
	background-color: var(--primary-container);
	color: var(--on-white);
}
.tag-secondary {
	background-color: var(--secondary-container);
	color: var(--on-white);
}
.tag-tertiary {
	background-color: var(--color-secondary);
	color: var(--on-white);
}

/* Vertical Card (Featured) */
.vertical-card {
		background-color: var(--on-white);
		border-radius: var(--radius-xl);
		overflow: hidden;
		box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
		transition: transform 0.3s, box-shadow 0.3s;
		height: 100%;
		display: flex;
		flex-direction: column;
}
.vertical-card:hover {
		transform: translateY(-4px);
		box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1);
}
.vertical-card img {
		width: 100%;
		aspect-ratio: 16/9;
		object-fit: cover;
}
.vertical-card .news-card-body {
		padding: var(--space-lg);
		flex-grow: 1;
}
.vertical-card .news-card-title {
		font-size: 24px;
		font-weight: 700;
		margin-bottom: var(--space-sm);
		line-height: 1.3;
		color: var(--on-surface);
		transition: color 0.3s;
}
.vertical-card:hover .news-card-title {
		color: var(--primary);
}
.vertical-card .news-card-desc {
		color: var(--on-surface-variant);
		font-size: 16px;
		margin-bottom: var(--space-md);
		line-height: 1.6;
}
.vertical-card .news-card-date {
		color: var(--secondary);
		font-weight: 600;
		font-size: 14px;
		margin-top: auto;
}

/* Horizontal Card (List Items) */
.news-list {
		display: flex;
		flex-direction: column;
		gap: var(--space-md);
		justify-content: space-between;
}
.horizontal-card {
		display: flex;
		background-color: var(--on-white);
		border-radius: var(--radius-xl);
		overflow: hidden;
		box-shadow: 0 2px 4px rgba(0,0,0,0.02);
		transition: transform 0.3s, box-shadow 0.3s;
		height: 100%;
		align-items: center;
}
.horizontal-card:hover {
		transform: translateX(4px);
		box-shadow: 0 8px 12px rgba(0,0,0,0.05);
}
.horizontal-card img {
		width: 120px;
		height: 120px;
		object-fit: cover;
		flex-shrink: 0;
}
@media (min-width: 576px) {
		.horizontal-card img {
				width: 180px;
				height: 100%;
				min-height: 140px;
		}
}
.horizontal-card .news-card-body {
		padding: var(--space-md) var(--space-md);
		flex-grow: 1;
		justify-content: center;
}
.horizontal-card .news-card-title {
		font-size: 18px;
		font-weight: 700;
		margin-bottom: var(--space-xs);
		line-height: 1.3;
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
		color: var(--on-surface);
		transition: color 0.3s;
}
.horizontal-card:hover .news-card-title {
		color: var(--primary);
}
.horizontal-card .news-card-date {
		color: var(--secondary);
		font-weight: 600;
		font-size: 14px;
		margin-top: var(--space-xs);
}

/* ==========================================================================
	 4. 分頁控制元件 (Pagination Controls)
========================================================================== */
.pagination-controls {
	margin-top: var(--space-xl);
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 1rem;
}
.pagination-btn {
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--outline);
	color: var(--on-surface-variant);
	transition: background-color 0.2s;
	background-color: transparent;
	cursor: pointer;
}
.pagination-btn:hover {
	background-color: var(--surface-container-high);
}
.pagination-text {
	font-size: 16px;
	font-weight: 600;
	color: var(--primary);
}

/* 
 * 5. 媒體報導與專欄專屬 (Report Page Specifics) 
 * --------------------------------------------------------------------------
 * 適用範圍：neuro-report.html 內的特色文章區域 (.report-hero) 
 * 以及便當盒網格 (Bento Grid) 與各種尺寸的文章卡片 (.bento-card)
 */

/* 標籤對應內文 */
.title-02 {
    position: relative;
    padding: .8rem 1rem;
    background-color: var(--bg-soft);
    border-radius: 0;
    font-size: 1.3rem;
    letter-spacing: 0.03em;
    font-weight: 700;
    line-height: 1;
    color: var(--primary);
    margin: 2rem 0 1rem 0;
}
.title-02::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    margin: auto 0;
    width: 0.3rem;
    height: 1.8rem;
    border-radius: 0 0.5rem 0.5rem 0;
    background-color: var(--primary);
}
.article-body u {
    font-weight: 700;
    text-decoration: none;
    /* text-decoration-color: #000;
    text-underline-offset: 3px; */
    transition: color 0.3s, text-decoration-color 0.3s;
    border-bottom: 1px solid var(--grey3);
}

.article-body u:hover {
    background-color: var(--vanilla-yellow);
}

.article_border {
    border: 15px solid #f5e7dc;
    border-radius: .25rem;
}

.article_h {
    font-size: 1.6rem;
    color: var(--info);
    font-weight: bold !important;
    border-bottom: solid 2px var(--grey5);
    text-align: center;
    margin-bottom: 15px;
    padding: 10px;
    line-height: 1.5;
}

.posted-date {
    text-align: right;
    font-size: 0.85rem;
    margin: -15px 0 15px 0;
    background-color: var(--grey5);
    line-height: 20px;
    padding: 10px;
}
.posted-date::before {
    content: '發表日期：';
}

.a-paragraph {
    color: var(--brown-black);
    margin: 1.2rem 0.5rem;
    text-align: justify;
    line-height: 1.6;
    letter-spacing: 2px;
}

.text-note {
    font-size: 0.85rem;
    color: var(--grey4);
    text-align: center;
}

.quote-box {
    position: relative;
    padding: 30px 10px 10px 10px;
    font-size: 1.3rem;
    line-height: 1.8;
    color: var(--grey7);
    overflow: hidden;
    text-align: center;
    background-color: var(--bg-warm);
    background:
        repeating-linear-gradient(45deg,
            rgba(223, 120, 130, 0.06),
            rgba(223, 120, 130, 0.06) 1px,
            transparent 1px,
            transparent 8px),
        var(--bg-warm);
    margin-bottom: -20px;
}

.quote-box::before,
.quote-box::after {
    position: absolute;
    font-size: 10rem;
    color: #ffd8db;
    z-index: 0;
    pointer-events: none;
}

.quote-box::before {
    content: "“";
    top: -70px;
    left: 20px;
}

.quote-box::after {
    content: "”";
    bottom: 0;
    right: 15px;
    line-height: 0;
}

.quo-txt,
.logotxt {
    position: relative;
    z-index: 1;
}

.quo-txt {
    font-weight: 600;
    line-height: 30px;
    color: var(--primary);
	font-size: 1.1rem;
}

.logotxt {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    font-size: 0.9rem;
    margin-top: 15px;
    color: rgba(158, 62, 71, 0.7);
    font-style: italic;
    font-weight: 600;
}

.logotxt::before,
.logotxt::after {
    content: "";
    flex: 1;
    max-width: 70px;
    height: 1px;
    background: linear-gradient(to right,
            rgba(158, 62, 71, 0) 0%,
            rgba(158, 62, 71, 1) 25%,
            rgba(158, 62, 71, 1) 75%,
            rgba(158, 62, 71, 0) 100%);
}

.list-title {
    position: relative;
    padding-left: 28px;
    font-weight: bold;
    margin: 1rem 0.5rem .2rem 0.5rem;
    line-height: 30px;
    font-size: 1.06rem;
}
.list-title::before {
    position: absolute;
    top: calc(50% - 15px);
    left: 0px;
    content: "✦";
    color: var(--orange);
}
.list-text{
    font-size: 1.1rem;
    line-height: 35px;
    text-align: justify;
    margin-left: 1.5rem;
}

.list-question {
    font-weight: bold;
    font-size: 1.1rem;
    margin: 30px 0px 0px 0px;
    display: flex;
    align-items: center;
    text-align: justify;
    border-bottom: 1px dashed var(--orange);
    padding-bottom: 6px;
}

.list-answer, 
.list-w-text{
    font-size: 1rem;
    line-height: 34px;
    text-align: justify;
}

.list-answer {
    margin: 20px 0px 0px 0px;
    display: flex;
    align-items: start;
}

.list-w-text {
    padding-left: 1.9rem;
    margin: 0 15px 0 50px; 
}

.list-question::before, 
.list-answer::before{
    padding: 2px 5px;
    margin-right: 8px;
    color: var(--white);
    font-size: 1rem;
    font-weight: bold;
    width: 30px;
    height: 30px;
    line-height: 26px;
    border-radius: 50%;
}

.list-question::before {
    content: 'Ｑ';
    background-color: var(--primary);  
}

.list-answer::before {
    content: 'Ａ';
    background-color: var(--color-secondary);
}

.embed-responsive {
    width: 95%;
    margin: 0 auto;
}

.a-paragraph {
    font-size: 1.125rem;
    line-height: 1.8;
    color: #333;
    margin-bottom: 1.25rem;
    text-align: justify;
}

.a-img {
    text-align: center;
    margin: 0.5rem 0;
}

.a-img img {
    max-width: 100%;
    height: auto;
}

.news-links {
    margin: 1.5rem 0;
}

.news-links a {
    display: inline-block;
    margin: 0.25rem 0.5rem 0.25rem 0;
    font-size: 0.95rem;
    padding: 0.4rem 0.75rem;
    text-decoration: none;
    transition: all 0.2s ease-in-out;
}

.news-links a i {
    margin-right: 0.4rem;
    transition: transform 0.3s ease;
}

.news-links a:hover {
    background-color: #17a2b8;
    color: white;
    box-shadow: 0 0 8px rgba(0, 0, 0, 0.15);
}

.news-links a:hover i {
    transform: scale(1.2) rotate(-10deg);
}

/* 排版區塊 */
.report-hero {
		padding-top: var(--space-xl);
		padding-bottom: var(--space-md);
}
.report-hero-inner {
		display: flex;
		flex-direction: column;
		gap: var(--space-md);
		margin-bottom: var(--space-md);
		border-bottom: 1px solid var(--outline-variant);
		padding-bottom: var(--space-md);
}
@media (min-width: 768px) {
	.title-02 {
		padding: 0.7rem 1.1rem 0.6rem;
		border-radius: 0.3rem;
		letter-spacing: 0.04em;
		line-height: 1.5rem;
	}
	.title-02::before {
		width: 0.3rem;
		height: 1.8rem;
	}
	.report-hero-inner {
		flex-direction: row;
		align-items: flex-end;
		justify-content: space-between;
	}
}
.report-hero-content {
		max-width: 42rem;
}
.report-title {
		font-size: 32px;
		font-weight: 700;
		color: var(--primary);
		margin-bottom: var(--space-sm);
}
.report-desc {
		font-size: 20px;
		color: var(--on-surface-variant);
}
.report-bento-grid {
		display: grid;
		grid-template-columns: 1fr;
		gap: var(--space-gutter);
		margin-bottom: var(--space-xl);
}
@media (min-width: 768px) {
		.report-bento-grid {
				grid-template-columns: repeat(12, 1fr);
		}
}
.bento-card {
		background-color: var(--on-white);
		border-radius: var(--radius-xl);
		overflow: hidden;
		box-shadow: 0 2px 4px rgba(130,83,53,0.1);
		transition: transform 0.3s ease, box-shadow 0.3s ease;
		cursor: pointer;
}
.bento-card:hover {
		transform: translateY(-4px);
		box-shadow: 0 12px 24px -10px rgba(130, 83, 53, 0.15);
}
.bento-card-main {
		grid-column: span 1;
}
@media (min-width: 768px) {
		.bento-card-main {
				grid-column: span 8 / span 8;
		}
}
.bento-card-side {
		grid-column: span 1;
}
@media (min-width: 768px) {
		.bento-card-side {
				grid-column: span 4 / span 4;
		}
}
.bento-card-small {
		grid-column: span 1;
}
@media (min-width: 768px) {
		.bento-card-small {
				grid-column: span 4 / span 4;
		}
}
.bento-img-wrapper {
		position: relative;
		overflow: hidden;
}
.bento-img-wrapper.aspect-video {
		aspect-ratio: 16 / 9;
}
.bento-img-wrapper.aspect-square {
		aspect-ratio: 1 / 1;
}
.bento-img-wrapper.aspect-16-10 {
		aspect-ratio: 16 / 10;
}
.bento-img-wrapper img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		transition: transform 0.5s;
}
.bento-card:hover .bento-img-wrapper img {
		transform: scale(1.05);
}
.bento-tags {
		position: absolute;
		top: 1rem;
		left: 1rem;
		display: flex;
		gap: 0.5rem;
}
.bento-tag {
		padding: 0.25rem 0.75rem;
		border-radius: var(--radius-lg);
		font-size: 14px;
		font-weight: 700;
}
.bento-tag-secondary {
		background-color: var(--secondary);
		color: var(--on-white);
}
.bento-tag-primary {
		background-color: rgba(0, 92, 85, 0.9);
		color: var(--on-white);
}
.bento-content {
		padding: var(--space-md);
}
.bento-meta {
		display: flex;
		align-items: center;
		gap: var(--space-base);
		margin-bottom: var(--space-xs);
		color: var(--on-surface-variant);
}
.bento-source {
		font-weight: 700;
		color: var(--secondary);
}
.bento-dot {
		width: 4px;
		height: 4px;
		border-radius: 50%;
		background-color: var(--outline-variant);
}
.bento-date {
		font-size: 16px;
		font-weight: 600;
}
.bento-title-lg {
		font-size: 32px;
		font-weight: 700;
		color: var(--primary);
		margin-bottom: var(--space-base);
		transition: color 0.3s;
}
.bento-card:hover .bento-title-lg {
		color: var(--primary-container);
}
.bento-title-md {
		font-size: 24px;
		font-weight: 600;
		color: var(--primary);
		margin-bottom: var(--space-base);
}
.bento-title-sm {
		font-size: 16px;
		font-weight: 600;
		color: var(--primary);
		transition: color 0.3s;
}
.bento-card:hover .bento-title-sm {
		color: var(--primary-container);
}
.bento-excerpt {
		font-size: 18px;
		color: var(--on-surface-variant);
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
}


/* 
 * 6. 媒體報導 行動呼籲區塊 (Report Call to Action) 
 * --------------------------------------------------------------------------
 * 適用範圍：neuro-report.html 頁面底部的預約與諮詢引導區塊
 */
.report-cta {
		background-color: var(--primary-container);
		border-radius: var(--radius-xl);
		padding: var(--space-xl);
		position: relative;
		overflow: hidden;
		text-align: center;
		margin-bottom: var(--space-xl);
}
@media (min-width: 768px) {
		.report-cta {
				text-align: left;
		}
}
.report-cta-bg-icon {
		position: absolute;
		right: 0;
		top: 0;
		width: 33.333333%;
		height: 100%;
		opacity: 0.1;
		pointer-events: none;
		transform: translateX(25%);
}
.report-cta-bg-icon .material-symbols-outlined {
		font-size: 300px;
		color: var(--on-primary-container);
		font-variation-settings: 'wght' 200;
}
.report-cta-inner {
		position: relative;
		z-index: 10;
		display: flex;
		flex-direction: column;
		gap: var(--space-lg);
		align-items: center;
		justify-content: space-between;
}
@media (min-width: 768px) {
		.report-cta-inner {
				flex-direction: row;
		}
}
.report-cta-content {
		max-width: 36rem;
}
.report-cta-title {
		font-size: 32px;
		font-weight: 700;
		color: var(--on-primary-container);
		margin-bottom: var(--space-sm);
}
.report-cta-desc {
		font-size: 20px;
		color: rgba(163, 250, 239, 0.8); /* on-primary-container with opacity */
}
.report-cta-actions {
		display: flex;
		flex-direction: column;
		gap: var(--space-md);
}
@media (min-width: 640px) {
		.report-cta-actions {
				flex-direction: row;
		}
}
.btn-cta-primary {
		background-color: var(--surface);
		color: var(--primary);
		padding: 0.75rem 2rem;
		border-radius: var(--radius-full);
		font-size: 16px;
		font-weight: 600;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 0.5rem;
		transition: background-color 0.3s;
		border: none;
		cursor: pointer;
}
.btn-cta-primary:hover {
		background-color: var(--surface-container-low);
}
.btn-cta-outline {
		border: 2px solid var(--on-primary-container);
		color: var(--on-primary-container);
		padding: 0.75rem 2rem;
		border-radius: var(--radius-full);
		font-size: 16px;
		font-weight: 600;
		transition: background-color 0.3s;
		background: transparent;
		cursor: pointer;
}
.btn-cta-outline:hover {
		background-color: rgba(163, 250, 239, 0.1);
}

/* ==========================================================================
     Video Modal Styles (#videoModal)
========================================================================== */
#videoModal .modal-header, 
#videoModal .modal-body {
    background-color: black;
}
#videoModal .modal-header {
    border-bottom: 0px;
}
#videoModal .modal-header .close {
    color: var(--on-white);
}
#videoModal .modal-body {
    padding: 0 0 3.5rem;
}
/* ==========================================================================
	 2. 影片網格與卡片 (Video Grid & Cards)
========================================================================== */
.video-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-lg);
}
@media (min-width: 768px) {
	.video-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}
.video-grid > div {
	display: flex;
}
.video-card-wrapper {
	text-decoration: none;
	display: block;
	width: 100%;
	height: 100%;
}
.video-card {
	background-color: var(--on-white);
	overflow: hidden;
	cursor: pointer;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	border: 1px solid rgba(0,0,0,.1);
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
}
.video-card-wrapper:hover {
	text-decoration: none;
}
.video-card-wrapper:hover .video-card {
	transform: translateY(-4px);
	box-shadow: 0 12px 24px -10px rgba(130, 83, 53, 0.15);
}
.video-card-wrapper:hover .video-card-title {
	color: var(--primary);
}
.video-card-wrapper:hover .play-btn-small {
	transform: scale(1.2);
}
.video-thumb {
	position: relative;
	aspect-ratio: 16 / 9;
	background-color: var(--surface-container-highest);
	overflow: hidden;
}
.video-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.play-btn-small-overlay {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}
.play-btn-small {
	background-color: rgba(255,255,255,0.9);
	color: var(--primary);
	width: 3rem;
	height: 3rem;
	border-radius: var(--radius-full);
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1);
	transition: transform 0.2s ease;
}
.video-card-content {
	padding: var(--space-md) var(--space-md) 0 var(--space-md);
	display: flex;
	flex-direction: column;
	flex-grow: 1;
}
.video-card-title {
	font-size: 1.1rem;
	font-weight: 600;
	color: var(--on-surface);
	transition: color 0.2s;	
	/* 限制兩行並保留固定高度空間，避免不等高 */
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	line-height: 1.5;
}
.video-card-meta {
	color: var(--on-surface-variant);
	font-size: .8rem;
	margin-top: auto;
	margin-bottom: 0;
}
.video-duration {
	position: absolute;
	bottom: 0.5rem;
	right: 0.5rem;
	background-color: rgba(0,0,0,0.7);
	color: var(--on-white);
	font-size: 12px;
	padding: 0.25rem 0.5rem;
	border-radius: var(--radius-sm);
}
.video-category {
	font-size: 12px;
	font-weight: 600;
	margin-bottom: 0.5rem;
	display: inline-block;
	padding: 0.15rem 0.5rem;
	border-radius: var(--radius-sm);
	width: fit-content;
}
.video-category.cat-1 {
	color: #0d9488; /* Teal / 長安的故事 */
	background-color: #f0fdfa;
	border: 1px solid #ccfbf1;
}
.video-category.cat-2 {
	color: #2563eb; /* Blue / 長安保健室 */
	background-color: #eff6ff;
	border: 1px solid #dbeafe;
}
.video-category.cat-4 {
	color: #d97706; /* Amber / 醫師談健康 */
	background-color: #fffbeb;
	border: 1px solid #fef3c7;
}
.video-category.cat-default {
	color: var(--tertiary);
	background-color: var(--tertiary-container);
	border: 1px solid rgba(0, 0, 0, 0.05);
}


/* ==========================================================================
	 3. 行動呼籲區塊 (Video Call to Action)
========================================================================== */
.video-cta {
	margin-top: var(--space-md);
	background-color: var(--primary-container);
	color: var(--on-white);
	padding: var(--space-lg);
	display: flex;
	flex-direction: column;
	gap: var(--space-lg);
	overflow: hidden;
	position: relative;
}
@media (min-width: 768px) {
	.video-cta {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		padding: var(--space-lg) var(--space-xl);
	}
}
.video-cta-bg {
	position: absolute;
	top: -6rem;
	right: -6rem;
	width: 16rem;
	height: 16rem;
	background-color: rgba(255,255,255,0.1);
	border-radius: 50%;
	filter: blur(40px);
	pointer-events: none;
}
.video-cta-content {
	position: relative;
	z-index: 10;
	max-width: 36rem;
	text-align: center;
}
@media (min-width: 768px) {
	.video-cta-content {
		text-align: left;
	}
}
.video-cta-title {
	font-size: 32px;
	font-weight: 700;
	margin-bottom: var(--space-md);
}
.video-cta-desc {
	font-size: 20px;
	color: var(--primary-fixed);
}
.video-cta-actions {
	position: relative;
	z-index: 10;
	display: flex;
	flex-direction: column;
	gap: var(--space-md);
}
@media (min-width: 640px) {
	.video-cta-actions {
		flex-direction: row;
	}
}
.btn-white-lg {
	background-color: var(--on-white);
	color: var(--primary);
	padding: 1rem 2rem;
	border-radius: 0.75rem;
	font-size: 16px;
	font-weight: 700;
	box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1);
	transition: background-color 0.2s, transform 0.2s;
	text-align: center;
	border: none;
	cursor: pointer;
}
.btn-white-lg:hover {
	background-color: var(--surface-container-low);
	transform: scale(0.98);
}
.btn-primary-outline-lg {
	background-color: var(--primary);
	border: 1px solid rgba(255,255,255,0.2);
	color: var(--on-white);
	padding: 1rem 2rem;
	border-radius: 0.75rem;
	font-size: 16px;
	font-weight: 700;
	transition: background-color 0.2s, transform 0.2s;
	text-align: center;
	cursor: pointer;
}
.btn-primary-outline-lg:hover {
	background-color: var(--primary-container);
	transform: scale(0.98);
}

/* --- Card Staggered Animation & Doctor styles --- */
@keyframes cardFadeInUp {
	from {
		opacity: 0;
		transform: translateY(20px) scale(0.95);
	}
	to {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

.video-grid > div {
	opacity: 0;
	animation: cardFadeInUp 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.video-card-doctor {
	font-size: 0.85rem;
	color: var(--primary);
	font-weight: 500;
	display: block;
}
.video-card-wrapper:hover .video-card-doctor {
	color: var(--color-secondary);
}

/* --- Category and Date Meta Row --- */
.video-card-meta-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 0.5rem;
	width: 100%;
}
.video-card-meta-row .video-category {
	margin-bottom: 0;
}
.video-card-meta-row .video-card-meta {
	font-size: 0.8rem;
	color: var(--on-surface-variant);
	margin-bottom: 0;
	margin-top: 0;
}
/* ==========================================================================
   News Cards
========================================================================== */
.news-card-2 {
    position: relative;
    display: flex;
    flex-direction: column;
    background-color: #000;
    overflow: hidden;
    border: 1px solid #f1f5f9;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.03);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    height: 100%;
    min-height: 350px;
}

.news-card-2:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 24px -10px rgba(130, 83, 53, 0.15);
}

.news-card-2::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.25) 55%, transparent 100%);
    z-index: 2;
    transition: opacity 0.4s ease;
}

.news-card-2:hover::after {
    opacity: 0.55;
}

.news-card-2 .card-img-wrapper {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    z-index: 1;
}

.news-card-2 .card-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(0.85) contrast(0.98);
    transition: filter 0.4s ease;
}

.news-card-2:hover .card-img {
    filter: brightness(1.0) contrast(1.0);
}

.news-card-2 .card-body {
    position: relative;
    z-index: 3;
    padding: 28px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    flex-grow: 1;
}

@media (min-width: 768px) {
    .news-card-2 .card-body {
        width: 100%;
    }
}

/* 占比1: 整個卡片為背景圖，文字浮在上層 (news-card-1) */
.news-card-1 {
    position: relative;
    display: flex;
    flex-direction: column;
    background-color: #000;
    border: 1px solid #f1f5f9;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.03);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    height: 100%;
    min-height: 350px;
}

.news-card-1:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 24px -10px rgba(130, 83, 53, 0.15);
}

.news-card-1::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.25) 55%, transparent 100%);
    z-index: 2;
    transition: opacity 0.4s ease;
}

.news-card-1:hover::after {
    opacity: 0.55;
}

.news-card-1 .card-img-wrapper {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    z-index: 1;
}

.news-card-1 .card-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(0.85) contrast(0.98);
    transition: filter 0.4s ease;
}

.news-card-1:hover .card-img {
    filter: brightness(1.0) contrast(1.0);
}

.news-card-1 .card-body {
    position: relative;
    z-index: 3;
    padding: 28px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    flex-grow: 1;
}

/* 第一層卡片文字覆蓋樣式 (由於背景為暗色圖片) */
.news-card-2 .news-card-date,
.news-card-1 .news-card-date {
    color: rgba(255, 255, 255, 0.75) !important;
}

.news-card-2 .news-card-title,
.news-card-1 .news-card-title {
    color: #ffffff !important;
}

.news-card-2 .news-card-desc,
.news-card-1 .news-card-desc {
    color: rgba(255, 255, 255, 0.85) !important;
}

/* 直式小圖卡片 (news-card-three) */
.news-card-three {
    position: relative;
    display: flex;
    flex-direction: column;
    background-color: #000;
    overflow: hidden;
    border: 1px solid #f1f5f9;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.03);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    height: 100%;
    min-height: 300px;
}

.news-card-three:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 24px -10px rgba(130, 83, 53, 0.15);
}

.news-card-three::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.25) 55%, transparent 100%);
    z-index: 2;
    transition: opacity 0.4s ease;
}

.news-card-three:hover::after {
    opacity: 0.55;
}

.news-card-three .card-img-wrapper {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    z-index: 1;
}

.news-card-three .card-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(0.85) contrast(0.98);
    transition: filter 0.4s ease;
}

.news-card-three:hover .card-img {
    filter: brightness(1.0) contrast(1.0);
}

.news-card-three .card-body {
    position: relative;
    z-index: 3;
    padding: 20px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    flex-grow: 1;
}

/* 第二層卡片文字覆蓋樣式 (由於背景為暗色圖片) */
.news-card-three .news-card-date {
    color: rgba(255, 255, 255, 0.75) !important;
    margin-bottom: 8px;
}

.news-card-three .news-card-title {
    color: #ffffff !important;
}

.news-card-three .news-card-desc {
    color: rgba(255, 255, 255, 0.85) !important;
}

/* 為了讓新卡片在點擊整張卡片時不會有底線或連結顏色異常 */
a.news-card-2, a.news-card-1, a.news-card-three, a.news-card-edu {
    text-decoration: none !important;
    color: inherit !important;
}

/* 共用新聞元素樣式 */
.news-card-date {
    color: var(--secondary);
    font-weight: 600;
    font-size: 14px;
    margin-bottom: 8px;
    display: block;
}

.news-card-title {
    font-size: 20px;
    font-weight: 700;
    margin-bottom: 12px;
    line-height: 1.35;
    color: var(--on-surface);
    transition: color 0.2s;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.news-card-2:hover .news-card-title,
.news-card-1:hover .news-card-title,
.news-card-edu:hover .news-card-title {
    color: var(--primary);
}

.news-card-desc {
    color: var(--on-surface-variant);
    font-size: 14px;
    line-height: 1.6;
    margin-bottom: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* SEO 友善隱藏樣式（讓搜尋引擎與螢幕閱讀器能讀取，但在視覺上隱藏） */
.video-seo-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* 衛教園地卡片: 左側圖片，右側文字 (news-card-edu) */
.news-card-edu {
    display: flex;
    flex-direction: column;
    background-color: var(--on-white);
    overflow: hidden;
    border: 1px solid var(--outline-variant);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.03);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    height: 100%;
}

.news-card-edu:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 24px -10px rgba(130, 83, 53, 0.15);
}

.news-card-edu .card-img-wrapper {
    width: 100%;
    aspect-ratio: 16/10;
    overflow: hidden;
}

.news-card-edu .card-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.news-card-edu .card-body {
    padding: 24px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    flex-grow: 1;
}

@media (min-width: 576px) {
    .news-card-edu {
        flex-direction: row;
    }
    .news-card-edu .card-img-wrapper {
        width: 180px;
        height: 100%;
        min-height: 150px;
        aspect-ratio: auto;
        flex-shrink: 0;
    }
    .news-card-edu .card-img {
        width: 100%;
        height: 100%;
    }
    .news-card-edu .card-body {
        flex: 1;
    }
}

/* ==========================================================================
   Utility: Visually Hidden for SEO / Screen Readers

/* ==========================================================================
   神經醫學中心 共用行動呼籲 (CTA Section)
========================================================================== */
.neuro-cta-section {
    margin-top: var(--space-xl);
    background-color: var(--primary-container);
    padding: var(--space-lg);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    position: relative;
    overflow: hidden;
}
@media (min-width: 768px) {
    .neuro-cta-section {
        flex-direction: row;
        justify-content: space-between;
        padding: var(--space-lg) var(--space-xl);
    }
}
.neuro-cta-section.neuro-cta-center {
    justify-content: center;
    text-align: center;
}
.neuro-cta-content {
    position: relative;
    z-index: 10;
    max-width: 36rem;
    text-align: center;
}
@media (min-width: 768px) {
    .neuro-cta-section:not(.neuro-cta-center) .neuro-cta-content {
        text-align: left;
    }
}
.neuro-cta-title {
    font-size: 2rem;
    font-weight: 700;
    color: var(--on-white);
    margin-bottom: 0.5rem;
}
.neuro-cta-desc {
    color: var(--on-primary-container);
    margin-bottom: 0;
	font-size: 1.2rem;
}
.neuro-cta-bg {
    position: absolute;
    top: -6rem;
    right: -6rem;
    width: 16rem;
    height: 16rem;
    background-color: rgba(255,255,255,0.1);
    border-radius: 50%;
    filter: blur(40px);
    pointer-events: none;
}
.neuro-cta-action {
    position: relative;
    z-index: 10;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    max-width: 200px;
}
@media (min-width: 768px) {
    .neuro-cta-section:not(.neuro-cta-center) .neuro-cta-action {
        width: auto;
    }
}
.btn-neuro-white {
    background-color: var(--on-white);
    color: var(--primary);
    padding: 0.8rem 2rem;
    border-radius: var(--radius-full);
    font-weight: 700;
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1);
    border: none;
    cursor: pointer;
    text-align: center;
    transition: all 0.2s;
    width: 100%;
}
.btn-neuro-white:hover {
	background-color: var(--color-secondary);
	color: var(--on-white);
	transform: translateY(-2px);
	box-shadow: 0 15px 25px -5px rgba(0,0,0,0.15), 0 8px 10px -6px rgba(0,0,0,0.1) !important;
}




/* 共用的按鈕 Hover 動畫效果 */
.btn-hover-effect {
	transition: all 0.3s ease !important;
}
.btn-hover-effect:hover {
	background-color: var(--color-secondary) !important;
	color: var(--on-white) !important;
	transform: translateY(-2px);
	box-shadow: 0 15px 25px -5px rgba(0,0,0,0.15), 0 8px 10px -6px rgba(0,0,0,0.1) !important;
}


/* ==========================================================================
   隱藏式<h1>、<p>語意標籤（提供搜尋引擎與 AI 爬蟲檢索，不影響版面視覺）
   ========================================================================== */
.u-visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* ==========================================================================
   Treatment Article Detail Page (.treat-detail-page)
   ========================================================================== */

.treat-detail-layout {
    display: grid;
    grid-template-columns: 1fr;
}

@media (min-width: 1200px) {
    .treat-detail-layout {
        grid-template-columns: 3fr 9fr;
    }
}

/* Sidebar Menu Modernization (MUJI Style & Mobile Toggle) */
#menu-toggle {
    display: none;
}

.menu-icon {
    display: block;
    background: var(--surface-container-low);
    color: var(--on-surface);
    padding: var(--space-sm) var(--space-md);
    font-size: 1.1rem;
    font-weight: 600;
    cursor: pointer;
    text-align: center;
    border: 1px solid var(--surface-variant);
    margin-bottom: 0;
    letter-spacing: 0.05em;
    user-select: none;
}

.treat-sidenav-modern {
    display: none;
    background: var(--on-white);
    padding: var(--space-md);
    border: 1px solid var(--color-accent-peach);
}

#menu-toggle:checked ~ .treat-sidenav-modern {
    display: block;
}

@media (min-width: 1200px) {
    .menu-icon {
        display: none;
    }

    .treat-sidenav-modern {
        display: block;
        position: sticky;
        top: 100px;
		border: 0px;
    }
}

.treat-sidenav-modern .menu-heading {
    border-bottom: 1px solid var(--surface-variant);
    padding-bottom: var(--space-sm);
    margin-bottom: var(--space-md);
    display: flex;
    flex-direction: column;
}

.treat-sidenav-modern .menu-heading span {
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--primary);
    letter-spacing: 0.05em;
}

.treat-sidenav-modern .menu-heading small {
    font-size: 0.85rem;
    color: var(--outline);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-top: 4px;
}

/* Title Styling (MUJI Style) */
.treat-detail-title {
    font-size: 2.2rem;
    font-weight: 700;
    color: var(--on-surface);
    margin-bottom: var(--space-lg);
    line-height: 1.5;
    padding-bottom: var(--space-md);
    border-bottom: 1px solid var(--surface-variant);
    letter-spacing: 0.05em;
	text-align: justify;
}

/* Body Content Styling (MUJI Style) */
.treat-detail-body {
    background: var(--on-white);
    padding: var(--space-lg);
    border: 1px solid var(--color-accent-peach);
}

.treat-detail-body p {
    font-size: 1.1rem;
    line-height: 2.0;
    color: var(--on-surface-variant);
    margin-bottom: var(--space-md);
    letter-spacing: 0.05em;
    text-align: justify;
}

.treat-detail-body h3 {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--primary);
    margin: var(--space-lg) 0 var(--space-md) 0;
    padding-bottom: var(--space-sm);
    border-bottom: 1px solid var(--surface-variant);
    line-height: 1.5;
    letter-spacing: 0.05em;
}

.treat-detail-body h4 {
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--on-surface);
    margin: var(--space-md) 0 var(--space-sm) 0;
    letter-spacing: 0.05em;
}

/* Lists Styling (MUJI Style) */
.treat-detail-body ol {
    padding-left: 1.5rem;
    margin-bottom: var(--space-md);
}

.treat-detail-body ol li {
    margin-bottom: var(--space-sm);
    font-size: 1.1rem;
    line-height: 2.0;
    color: var(--on-surface-variant);
    padding-left: 0.5rem;
    letter-spacing: 0.05em;
}
/* Image container (MUJI Style) */
.treat-img-container {
    overflow: hidden;
}

.treat-img-container img {
    width: 100%;
    height: auto;
    display: block;
    transition: transform 0.5s ease;
}

/* Video container (MUJI Style) */
.treat-video-container {
    position: relative;
    padding-bottom: 56.25%; /* 16:9 */
    height: 0;
    overflow: hidden;
    margin: var(--space-lg) 0;
    border-radius: 4px;
    border: 1px solid var(--surface-variant);
}

.treat-video-container iframe,
.treat-video-container video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/* CTA Button (MUJI Style) */
.treat-detail-cta {
    margin-top: var(--space-lg);
    padding-top: var(--space-lg);
    border-top: 1px solid var(--surface-variant);
    text-align: center;
}

.btn-muji-primary {
    display: inline-block;
    padding: 0.8rem 3rem;
    background-color: var(--primary);
    color: #ffffff;
    border-radius: 4px;
    font-size: 1.15rem;
    font-weight: 500;
    letter-spacing: 0.15em;
    transition: opacity 0.3s ease;
    text-decoration: none;
}

.btn-muji-primary:hover {
    opacity: 0.85;
    color: #ffffff;
}

.treat-img-container img {
    width: 100%;
    height: auto;
    display: block;
    transition: transform 0.5s ease;
}

/* Video container (MUJI Style) */
.treat-video-container {
    position: relative;
    padding-bottom: 56.25%; /* 16:9 */
    height: 0;
    overflow: hidden;
    margin: var(--space-lg) 0;
    border-radius: 4px;
    border: 1px solid var(--surface-variant);
}

.treat-video-container iframe,
.treat-video-container video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}


/* ==========================================================================
	 About Page Specifics
========================================================================== */
.about-hero-section {
    margin: var(--space-md) auto var(--space-xl);
    max-width: 1100px;
    padding: 0 var(--space-md);
    position: relative;
    z-index: 10;
}

.about-hero-image-wrapper {
    position: relative;
    border-radius: var(--radius-xl);
    overflow: hidden;
    aspect-ratio: 16/9;
    box-shadow: 0 20px 40px -15px rgba(0, 92, 85, 0.2);
    border: 4px solid var(--on-white);
}

.about-hero-image-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.about-hero-image-wrapper:hover img {
    transform: scale(1.03);
}

.about-hero-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    background: linear-gradient(to top, rgba(0, 32, 29, 0.6), transparent);
    padding: var(--space-xl) var(--space-lg) var(--space-lg);
    display: flex;
    justify-content: flex-start;
    pointer-events: none;
}

.about-hero-badge {
    background-color: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(8px);
    color: var(--primary);
    padding: var(--space-sm) var(--space-md);
    border-radius: var(--radius-full);
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    font-weight: 700;
    font-size: 1.1rem;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
    transform: translateY(20px);
    opacity: 0;
    animation: fadeInUpHero 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards 0.3s;
    border: 1px solid var(--primary-fixed-dim);
}

.about-hero-badge .material-symbols-outlined {
    font-size: 1.5rem;
    color: var(--secondary); /* Warm secondary color for humanistic touch */
}

@keyframes fadeInUpHero {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (max-width: 768px) {
    .about-hero-image-wrapper {
        aspect-ratio: 4/3;
    }
    .about-hero-badge {
        font-size: 0.9rem;
        padding: var(--space-xs) var(--space-sm);
    }
    .about-hero-badge .material-symbols-outlined {
        font-size: 1.2rem;
    }
}

/* ==========================================================================
	 Treatment Detail Page Mobile Layout Fixes
========================================================================== */
@media (max-width: 768px) {
    .treat-detail-title {
        font-size: 1.5rem;
        line-height: 1.4;
    }
    .treat-detail-body {
        padding: var(--space-md);
        word-break: break-word;
        overflow-wrap: break-word;
    }
    .treat-detail-layout {
        gap: var(--space-md);
    }
}

/* ==========================================================================
	 Treatment List - Modern High-End Grid
========================================================================== */
.treat-grid-container {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-lg);
    padding: var(--space-xl) 0;
}
@media (min-width: 768px) {
    .treat-grid-container {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (min-width: 1024px) {
    .treat-grid-container {
        grid-template-columns: repeat(3, 1fr);
    }
}

.treat-card {
    display: flex;
    flex-direction: column;
    background-color: var(--on-white);
    border-radius: var(--radius-xl);
    overflow: hidden;
    transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 0.4s ease, border-color 0.4s ease;
    height: 100%;
    text-decoration: none !important;
    position: relative;
    border: 1px solid var(--surface-variant);
    box-shadow: 0 4px 12px -2px rgba(0,0,0,0.05);
}

.treat-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 40px -10px rgba(0, 92, 85, 0.15);
    border-color: var(--primary-fixed-dim);
}

.treat-card-img-wrapper {
    position: relative;
    width: 100%;
    padding-top: 66.66%; /* 3:2 aspect ratio */
    overflow: hidden;
    background-color: var(--surface-container);
}

.treat-card-img-wrapper img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.treat-card:hover .treat-card-img-wrapper img {
    transform: scale(1.08);
}

.treat-card-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,92,85,0.6) 0%, rgba(0,0,0,0) 60%);
    opacity: 0;
    transition: opacity 0.4s ease;
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    padding: var(--space-md);
}

.treat-card:hover .treat-card-overlay {
    opacity: 1;
}

.treat-card-icon-btn {
    width: 48px;
    height: 48px;
    background-color: var(--on-white);
    color: var(--primary);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transform: scale(0.8) translateY(20px);
    opacity: 0;
    transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.treat-card:hover .treat-card-icon-btn {
    transform: scale(1) translateY(0);
    opacity: 1;
}

.treat-card-icon-btn .material-symbols-outlined {
    font-size: 24px;
}

.treat-card-img-placeholder {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, var(--surface-container), var(--surface-variant));
}

.treat-card-content {
    padding: var(--space-md);
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.treat-card-title {
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--on-surface);
    margin-bottom: var(--space-xs);
    line-height: 1.4;
    transition: color 0.3s ease;
    letter-spacing: 0.5px;
}

.treat-card:hover .treat-card-title {
    color: var(--primary);
}

.treat-card-summary {
    font-size: 1.05rem;
    color: var(--on-surface-variant);
    line-height: 1.6;
    margin-bottom: var(--space-md);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    opacity: 0.85;
}

.treat-card-read-more {
    margin-top: auto;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--primary);
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: gap 0.3s ease;
}

.treat-card:hover .treat-card-read-more {
    gap: 8px;
}

.treat-card-read-more .material-symbols-outlined {
    font-size: 20px;
}
