/*
	兒童世界幼兒園 — v2 活潑版設計系統
	來源：Claude Design「首頁 v2.dc.html」
	字體：Huninn / Fredoka / Noto Sans TC（Google Fonts）
*/

:root {
	--v2-bg: #fdf8f3;
	--v2-ink: #5a4a42;
	--v2-muted: #7a675c;         /* 內文灰棕（4.5:1+，原 #99857a 只有 3.3:1） */
	--v2-coral: #f0907c;         /* 裝飾用：圓點、虛線框、blob（不承載文字） */
	--v2-coral-strong: #c1523a;  /* 白字底色用：按鈕、標籤、跑馬燈（4.6:1） */
	--v2-coral-hover: #a23f2c;   /* 珊瑚按鈕 hover */
	--v2-coral-dark: #bd4f3c;    /* 淺底上的文字用：連結、chip、active（4.5:1+） */
	--v2-coral-deep: #bd4f3c;
	--v2-green: #9ccfc0;         /* 裝飾用：淡薄荷綠（不承載文字） */
	--v2-green-strong: #1f7a6e;  /* 白字底色／淺底文字用：深藍綠（5.2:1） */
	--v2-green-dark: #175f56;
	--v2-teal: #238b7e;          /* Hero「shine」強調色（大字 3.9:1） */
	--v2-peach: #f9dfc4;
	--v2-cream: #fdf1e3;
	--v2-shadow: rgba(90, 74, 66, 0.12);
}

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body.v2 {
	margin: 0;
	font-family: 'Noto Sans TC', sans-serif;
	color: var(--v2-ink);
	background: var(--v2-bg);
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

/* :where() 讓基礎連結色優先權歸零，元件（按鈕、導覽列）自己的顏色才不會被蓋掉 */
:where(body.v2 a) {
	color: var(--v2-coral-dark);
}

:where(body.v2 a:hover) {
	color: var(--v2-coral-strong);
}

@keyframes cwMarquee {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

@keyframes cwFloat {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-14px); }
}

@keyframes cwSpin {
	from { transform: rotate(0deg); }
	to { transform: rotate(360deg); }
}

/* ===== 導覽列（藥丸形浮動） ===== */
.v2-header {
	position: sticky;
	top: 16px;
	z-index: 50;
	max-width: 1140px;
	margin: 16px auto 0;
	padding: 0 16px;
}

.v2-nav-pill {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	background: rgba(255, 255, 255, 0.92);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border-radius: 999px;
	padding: 10px 12px 10px 20px;
	box-shadow: 0 8px 24px var(--v2-shadow);
}

.v2-brand {
	display: flex;
	align-items: center;
	gap: 10px;
	text-decoration: none;
}

.v2-brand-mark {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--v2-coral-strong);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: Fredoka, sans-serif;
	font-weight: 600;
	font-size: 17px;
	flex-shrink: 0;
}

.v2-brand-name {
	font-family: Huninn, sans-serif;
	font-size: 18px;
	color: var(--v2-ink);
	white-space: nowrap;
}

.v2-nav {
	display: flex;
	gap: 4px;
	align-items: center;
	flex-wrap: wrap;
	justify-content: flex-end;
}

.v2-nav a {
	padding: 8px 16px;
	border-radius: 999px;
	text-decoration: none;
	color: var(--v2-ink);
	font-size: 15px;
}

.v2-nav a:hover {
	background: var(--v2-cream);
	color: var(--v2-coral-dark);
}

.v2-nav a.is-active {
	background: var(--v2-cream);
	color: var(--v2-coral-dark);
	font-weight: 700;
}

.v2-nav a.v2-nav-cta {
	padding: 9px 20px;
	background: var(--v2-coral-strong);
	color: #fff;
	font-weight: 700;
	box-shadow: 0 4px 12px rgba(240, 144, 124, 0.4);
}

.v2-nav a.v2-nav-cta:hover {
	background: var(--v2-coral-hover);
	color: #fff;
}

/* ===== 通用元素 ===== */
.v2-chip {
	display: inline-block;
	background: var(--v2-cream);
	color: var(--v2-coral-deep);
	font-family: Fredoka, sans-serif;
	font-weight: 600;
	letter-spacing: 0.14em;
	font-size: 14px;
	padding: 6px 16px;
	border-radius: 999px;
}

.v2-chip--white {
	background: #fff;
}

.v2-h2 {
	font-family: Huninn, sans-serif;
	font-size: clamp(30px, 4vw, 42px);
	margin: 12px 0 0;
}

.v2-btn {
	display: inline-block;
	padding: 15px 32px;
	border-radius: 999px;
	text-decoration: none;
	font-weight: 700;
	font-size: 17px;
	transition: transform 0.2s;
}

.v2-btn--primary {
	background: var(--v2-coral-strong);
	color: #fff;
	box-shadow: 0 8px 20px rgba(240, 144, 124, 0.45);
}

.v2-btn--primary:hover {
	transform: translateY(-3px);
	background: var(--v2-coral-hover);
	color: #fff;
}

.v2-btn--ghost {
	background: #fff;
	color: var(--v2-ink);
	border: 2px solid var(--v2-peach);
}

.v2-btn--ghost:hover {
	transform: translateY(-3px);
	border-color: var(--v2-coral);
	color: var(--v2-coral-dark);
}

.v2-btn--line {
	padding: 12px 26px;
	font-size: 16px;
	background: var(--v2-green-strong);
	color: #fff;
	box-shadow: 0 6px 16px rgba(31, 122, 110, 0.35);
}

.v2-btn--line:hover {
	background: var(--v2-green-dark);
	color: #fff;
}

.v2-arrow-link {
	margin-top: auto;
	font-weight: 700;
	text-decoration: none;
	font-size: 15px;
}

/* ===== Hero ===== */
.v2-hero {
	max-width: 1140px;
	margin: 0 auto;
	padding: 64px 24px 32px;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
	gap: 48px;
	align-items: center;
}

.v2-hero-badge {
	display: inline-block;
	background: #fff;
	border: 2px dashed var(--v2-coral);
	color: var(--v2-coral-dark);
	font-weight: 700;
	font-size: 14px;
	padding: 7px 18px;
	border-radius: 999px;
	transform: rotate(-2deg);
	margin-bottom: 24px;
}

.v2-hero h1 {
	font-family: Fredoka, sans-serif;
	font-weight: 600;
	font-size: clamp(40px, 5.5vw, 68px);
	line-height: 1.08;
	margin: 0 0 16px;
	color: var(--v2-ink);
}

.v2-hero h1 .hl-coral {
	color: var(--v2-coral-strong);
}

.v2-hero h1 .hl-green {
	color: var(--v2-teal);
}

.v2-hero-sub {
	font-family: Huninn, sans-serif;
	font-size: clamp(18px, 2.2vw, 22px);
	line-height: 1.7;
	margin: 0 0 32px;
	color: var(--v2-muted);
}

.v2-hero-actions {
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
}

.v2-hero-visual {
	position: relative;
	min-height: 380px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.v2-hero-visual .blob-1 {
	position: absolute;
	width: 110px;
	height: 110px;
	border-radius: 50%;
	background: var(--v2-peach);
	top: 0;
	left: 4%;
	animation: cwFloat 5s ease-in-out infinite;
}

.v2-hero-visual .blob-2 {
	position: absolute;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: var(--v2-green);
	bottom: 8%;
	right: 2%;
	opacity: 0.85;
	animation: cwFloat 6s ease-in-out 0.8s infinite;
}

.v2-hero-visual .blob-3 {
	position: absolute;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: 4px dotted var(--v2-coral);
	top: 12%;
	right: 10%;
	animation: cwSpin 14s linear infinite;
}

.v2-hero-visual img {
	width: min(100%, 460px);
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 58% 42% 55% 45% / 55% 48% 52% 45%;
	box-shadow: 0 24px 48px rgba(90, 74, 66, 0.22);
	position: relative;
}

.v2-hero-sticker {
	position: absolute;
	bottom: 6%;
	left: 0;
	background: #fff;
	padding: 10px 20px;
	border-radius: 999px;
	box-shadow: 0 8px 20px rgba(90, 74, 66, 0.16);
	font-family: Huninn, sans-serif;
	font-size: 15px;
	transform: rotate(-3deg);
}

/* ===== 跑馬燈 ===== */
.v2-ticker {
	overflow: hidden;
	background: var(--v2-coral-strong);
	padding: 14px 0;
	margin: 32px 0;
}

.v2-ticker-track {
	display: flex;
	gap: 0;
	width: max-content;
	animation: cwMarquee 26s linear infinite;
}

.v2-ticker-group {
	display: flex;
	gap: 40px;
	padding-right: 40px;
	font-family: Huninn, sans-serif;
	font-size: 18px;
	color: #fff;
	white-space: nowrap;
}

/* ===== 區段容器 ===== */
.v2-section {
	max-width: 1140px;
	margin: 0 auto;
	padding: 64px 24px;
}

.v2-section-head {
	margin-bottom: 36px;
}

/* ===== 最新消息卡片 ===== */
.v2-news-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
	gap: 28px;
}

.v2-card {
	background: #fff;
	border-radius: 26px;
	overflow: hidden;
	box-shadow: 0 10px 30px rgba(90, 74, 66, 0.10);
	transition: transform 0.25s, box-shadow 0.25s;
	display: flex;
	flex-direction: column;
}

.v2-card--tilt-l { transform: rotate(-1deg); }
.v2-card--tilt-r { transform: rotate(1.2deg); }
.v2-card--tilt-l2 { transform: rotate(-0.8deg); }

.v2-card:hover {
	transform: rotate(0deg) translateY(-8px);
	box-shadow: 0 18px 40px rgba(90, 74, 66, 0.18);
}

.v2-card img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.v2-card-body {
	padding: 24px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	flex: 1;
}

.v2-card-body h3 {
	font-family: Huninn, sans-serif;
	font-size: 20px;
	margin: 0;
}

.v2-card-body p {
	margin: 0;
	font-size: 15px;
	line-height: 1.7;
	color: var(--v2-muted);
}

.v2-tag {
	align-self: flex-start;
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	padding: 4px 12px;
	border-radius: 999px;
}

.v2-tag--coral { background: var(--v2-coral-strong); }
.v2-tag--green { background: var(--v2-green-strong); }
.v2-tag--peach { background: var(--v2-peach); color: #8a4a22; }

/* ===== 辦學理念 ===== */
.v2-philosophy {
	max-width: 1140px;
	margin: 0 auto 64px;
	padding: 0 16px;
}

.v2-philosophy-inner {
	background: var(--v2-peach);
	border-radius: 48px;
	padding: clamp(32px, 5vw, 64px);
}

.v2-philosophy-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
	gap: 40px;
	align-items: start;
}

.v2-philosophy-intro h2 {
	font-family: Huninn, sans-serif;
	font-size: clamp(30px, 4vw, 42px);
	margin: 14px 0 16px;
}

.v2-philosophy-intro p {
	font-size: 17px;
	line-height: 1.9;
	margin: 0;
	color: #6d5a50;
}

.v2-philosophy-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
	gap: 20px;
}

.v2-mini-card {
	background: #fff;
	border-radius: 26px;
	padding: 28px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	box-shadow: 0 8px 24px rgba(90, 74, 66, 0.08);
}

.v2-mini-card .eyebrow {
	font-family: Fredoka, sans-serif;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.12em;
	color: var(--v2-green-strong);
}

.v2-mini-card h3 {
	font-family: Huninn, sans-serif;
	font-size: 22px;
	margin: 0 0 8px;
}

.v2-dot-list {
	margin: 0;
	padding: 0 0 0 2px;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 8px;
	font-size: 15px;
}

.v2-dot-list li {
	display: flex;
	gap: 8px;
	align-items: center;
}

.v2-dot-list li::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--v2-coral);
	flex-shrink: 0;
}

.v2-dot-list--green li::before {
	background: var(--v2-green);
}

.v2-mini-card .v2-arrow-link {
	margin-top: 14px;
}

/* ===== 影片 ===== */
.v2-video-section {
	max-width: 960px;
	margin: 0 auto 72px;
	padding: 0 24px;
	text-align: center;
}

.v2-video-section--flow {
	margin: 0 auto;
	padding: 48px 24px 24px;
}

.v2-video-frame {
	border-radius: 32px;
	overflow: hidden;
	box-shadow: 0 20px 48px rgba(90, 74, 66, 0.18);
	aspect-ratio: 16 / 9;
	background: #000;
	margin-top: 28px;
}

.v2-video-frame iframe {
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}

/* ===== 聯絡資訊 ===== */
.v2-contact {
	max-width: 1140px;
	margin: 0 auto 80px;
	padding: 0 16px;
}

.v2-contact-inner {
	background: var(--v2-cream);
	border-radius: 48px;
	overflow: hidden;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
}

.v2-contact-inner > img {
	width: 100%;
	height: 100%;
	min-height: 300px;
	object-fit: cover;
}

.v2-contact-body {
	padding: clamp(32px, 5vw, 56px);
	display: flex;
	flex-direction: column;
	gap: 18px;
	justify-content: center;
}

.v2-contact-body h2 {
	font-family: Huninn, sans-serif;
	font-size: clamp(28px, 3.5vw, 38px);
	margin: 0;
}

.v2-contact-quote {
	margin: 0;
	font-size: 15px;
	line-height: 1.8;
	color: var(--v2-muted);
	font-style: italic;
}

.v2-contact-list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 10px;
	font-size: 16px;
}

.v2-contact-list li {
	display: flex;
	gap: 10px;
	align-items: center;
}

.v2-contact-list .label {
	background: var(--v2-coral-strong);
	color: #fff;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	padding: 3px 10px;
	flex-shrink: 0;
}

.v2-contact-list a {
	text-decoration: none;
	color: var(--v2-ink);
}

.v2-contact-line {
	display: flex;
	gap: 18px;
	align-items: center;
	flex-wrap: wrap;
}

.v2-contact-line img {
	width: 104px;
	height: 104px;
	border-radius: 18px;
	box-shadow: 0 8px 20px rgba(90, 74, 66, 0.14);
}

.v2-contact-line-links {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

/* ===== Footer ===== */
.v2-footer {
	background: var(--v2-ink);
	color: var(--v2-peach);
	border-radius: 48px 48px 0 0;
	padding: 48px 24px 32px;
}

.v2-footer-inner {
	max-width: 1140px;
	margin: 0 auto;
	display: flex;
	flex-wrap: wrap;
	gap: 32px;
	justify-content: space-between;
	align-items: flex-start;
}

.v2-footer-brand {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.v2-footer-brand .name {
	font-family: Huninn, sans-serif;
	font-size: 22px;
	color: #fff;
}

.v2-footer-brand .en {
	font-family: Fredoka, sans-serif;
	font-size: 13px;
	letter-spacing: 0.1em;
	color: #d6c3b6;
}

.v2-footer-list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 14px;
	color: #e8d5c4;
}

.v2-footer-list a {
	color: var(--v2-peach);
	text-decoration: none;
}

.v2-footer-copy {
	font-size: 13px;
	color: #d6c3b6;
}

/* ===== 捲動漸入 ===== */
.v2-reveal-init {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

.v2-reveal-in {
	opacity: 1;
	transform: none;
}

/* ===== 內頁頁首 ===== */
.v2-page-head {
	max-width: 900px;
	margin: 0 auto;
	padding: 64px 24px 8px;
	text-align: center;
}

.v2-badge-dashed {
	display: inline-block;
	background: #fff;
	border: 2px dashed var(--v2-coral);
	color: var(--v2-coral-dark);
	font-family: Fredoka, sans-serif;
	font-weight: 600;
	letter-spacing: 0.14em;
	font-size: 14px;
	padding: 7px 18px;
	border-radius: 999px;
	transform: rotate(-2deg);
}

.v2-page-head h1 {
	font-family: Huninn, sans-serif;
	font-size: clamp(36px, 5vw, 56px);
	margin: 18px 0 16px;
}

.v2-page-head h1 .dot {
	color: var(--v2-coral);
}

.v2-page-head p {
	font-size: 17px;
	line-height: 1.9;
	color: var(--v2-muted);
	margin: 0;
}

/* ===== 特色人物卡（教學顧問） ===== */
.v2-featured {
	max-width: 1000px;
	margin: 48px auto 0;
	padding: 0 24px;
}

.v2-featured-inner {
	background: var(--v2-peach);
	border-radius: 36px;
	overflow: hidden;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
	box-shadow: 0 16px 40px var(--v2-shadow);
}

.v2-featured-inner > img {
	width: 100%;
	height: 100%;
	min-height: 320px;
	object-fit: cover;
}

.v2-featured-body {
	padding: clamp(28px, 4vw, 48px);
	display: flex;
	flex-direction: column;
	gap: 10px;
	justify-content: center;
}

.v2-featured-body .role {
	align-self: flex-start;
	background: #fff;
	color: var(--v2-coral-dark);
	font-size: 13px;
	font-weight: 700;
	padding: 5px 14px;
	border-radius: 999px;
}

.v2-featured-body h2 {
	font-family: Huninn, sans-serif;
	font-size: 32px;
	margin: 6px 0 0;
}

.v2-featured-body .en-name {
	font-family: Fredoka, sans-serif;
	font-size: 15px;
	color: #7d6142;
	margin: 0 0 8px;
}

.v2-featured-body p {
	margin: 0;
	font-size: 15px;
	line-height: 1.9;
	color: #6d5a50;
}

/* ===== 師資群組 ===== */
.v2-group {
	max-width: 1140px;
	margin: 56px auto 0;
	padding: 0 24px;
}

.v2-group-head {
	display: flex;
	align-items: baseline;
	gap: 14px;
	margin-bottom: 24px;
	flex-wrap: wrap;
}

.v2-group-head h2 {
	font-family: Huninn, sans-serif;
	font-size: clamp(26px, 3.5vw, 34px);
	margin: 0;
}

.v2-group-head .en {
	font-family: Fredoka, sans-serif;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.12em;
	color: var(--v2-green-strong);
}

.v2-teacher-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
	gap: 24px;
}

.v2-teacher-card {
	background: #fff;
	border-radius: 26px;
	overflow: hidden;
	box-shadow: 0 10px 30px rgba(90, 74, 66, 0.10);
	transition: transform 0.25s, box-shadow 0.25s;
}

.v2-teacher-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 18px 40px rgba(90, 74, 66, 0.18);
}

.v2-teacher-card img {
	width: 100%;
	aspect-ratio: 4 / 4.4;
	object-fit: cover;
	object-position: top;
}

.v2-teacher-card-body {
	padding: 20px 22px 24px;
	text-align: center;
	display: flex;
	flex-direction: column;
	gap: 8px;
	align-items: center;
}

.v2-teacher-card-body .role {
	background: var(--v2-cream);
	color: var(--v2-coral-dark);
	font-size: 12px;
	font-weight: 700;
	padding: 4px 12px;
	border-radius: 999px;
}

.v2-teacher-card-body h3 {
	font-family: Huninn, sans-serif;
	font-size: 19px;
	margin: 0;
}

.v2-teacher-card-body p {
	margin: 0;
	font-size: 13.5px;
	line-height: 1.7;
	color: var(--v2-muted);
}

/* ===== CTA 區塊 ===== */
.v2-cta {
	max-width: 1140px;
	margin: 72px auto 80px;
	padding: 0 16px;
}

.v2-cta-inner {
	background: var(--v2-peach);
	border-radius: 48px;
	padding: clamp(36px, 5vw, 56px);
	text-align: center;
}

.v2-cta-inner h2 {
	font-family: Huninn, sans-serif;
	font-size: clamp(26px, 3.5vw, 36px);
	margin: 0 0 12px;
}

.v2-cta-inner p {
	font-size: 16px;
	color: #6d5a50;
	margin: 0 0 28px;
}

.v2-cta-actions {
	display: flex;
	gap: 14px;
	justify-content: center;
	flex-wrap: wrap;
}

.v2-btn--cta {
	padding: 14px 32px;
	font-size: 16px;
	background: var(--v2-coral-strong);
	color: #fff;
	box-shadow: 0 8px 20px rgba(240, 144, 124, 0.45);
}

.v2-btn--cta:hover {
	background: var(--v2-coral-hover);
	color: #fff;
	transform: none;
}

.v2-btn--white {
	padding: 14px 30px;
	font-size: 16px;
	background: #fff;
	color: var(--v2-ink);
}

.v2-btn--white:hover {
	color: var(--v2-coral-dark);
	transform: none;
}

/* ===== 資訊卡片（園所簡介） ===== */
.v2-info-grid {
	max-width: 1140px;
	margin: 48px auto 0;
	padding: 0 24px;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
	gap: 24px;
}

.v2-info-card {
	background: #fff;
	border-radius: 28px;
	padding: 32px;
	box-shadow: 0 10px 30px rgba(90, 74, 66, 0.10);
}

.v2-info-card-head {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 14px;
}

.v2-info-card-head .num {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--v2-coral-strong);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: Huninn, sans-serif;
	font-size: 18px;
	flex-shrink: 0;
}

.v2-info-card-head .num--green {
	background: var(--v2-green-strong);
}

.v2-info-card-head h3 {
	font-family: Huninn, sans-serif;
	font-size: 22px;
	margin: 0;
}

.v2-info-card ul {
	margin: 0;
	padding-left: 20px;
	font-size: 16px;
	line-height: 1.9;
	color: #6d5a50;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.v2-pill-link {
	display: inline-block;
	margin-top: 16px;
	padding: 10px 24px;
	border-radius: 999px;
	text-decoration: none;
	background: var(--v2-cream);
	color: var(--v2-coral-dark);
	font-weight: 700;
	font-size: 15px;
}

.v2-pill-link:hover {
	background: var(--v2-peach);
	color: var(--v2-coral-dark);
}

.v2-note-section {
	max-width: 1140px;
	margin: 24px auto 48px;
	padding: 0 24px;
}

.v2-note {
	background: var(--v2-cream);
	border-radius: 20px;
	padding: 20px 28px;
	font-size: 15px;
	line-height: 1.9;
	color: #6d5a50;
}

.v2-note strong {
	color: var(--v2-coral-dark);
}

/* ===== 白色面板（入學申請） ===== */
.v2-panel-section {
	max-width: 960px;
	margin: 48px auto 80px;
	padding: 0 24px;
}

.v2-panel {
	background: #fff;
	border-radius: 32px;
	overflow: hidden;
	box-shadow: 0 20px 48px rgba(90, 74, 66, 0.14);
}

.v2-panel > img {
	width: 100%;
	display: block;
}

.v2-panel-body {
	padding: clamp(28px, 4vw, 48px);
	text-align: center;
	display: flex;
	flex-direction: column;
	gap: 18px;
	align-items: center;
}

.v2-panel-body h2 {
	font-family: Huninn, sans-serif;
	font-size: clamp(22px, 3vw, 28px);
	margin: 0;
}

.v2-panel-body .hint {
	margin: 0;
	font-size: 14px;
	color: var(--v2-muted);
}

.v2-btn--lg {
	padding: 16px 36px;
	font-size: 18px;
}

/* ===== 漢堡選單按鈕（桌機隱藏） ===== */
.v2-nav-toggle {
	display: none;
	width: 44px;
	height: 44px;
	border: none;
	border-radius: 50%;
	background: var(--v2-cream);
	color: var(--v2-coral-dark);
	cursor: pointer;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	padding: 0;
}

.v2-nav-toggle svg {
	width: 22px;
	height: 22px;
	display: block;
}

.v2-nav-toggle .icon-close {
	display: none;
}

/* ===== 行動端 ===== */
@media (max-width: 640px) {

	/* 吸頂導覽列 + 漢堡選單 */
	.v2-header {
		top: 8px;
		margin-top: 8px;
		padding: 0 12px;
	}

	.v2-nav-pill {
		flex-wrap: wrap;
		border-radius: 26px;
		padding: 8px 10px 8px 14px;
		gap: 8px;
	}

	.v2-brand-mark {
		width: 36px;
		height: 36px;
		font-size: 15px;
	}

	.v2-brand-name {
		font-size: 16px;
	}

	.v2-nav-toggle {
		display: flex;
	}

	.v2-nav {
		display: none;
		flex-basis: 100%;
		flex-direction: column;
		align-items: stretch;
		gap: 4px;
		padding: 6px 4px 8px;
	}

	.v2-nav-pill.nav-open .v2-nav {
		display: flex;
	}

	.v2-nav-pill.nav-open .v2-nav-toggle .icon-menu {
		display: none;
	}

	.v2-nav-pill.nav-open .v2-nav-toggle .icon-close {
		display: block;
	}

	.v2-nav a {
		padding: 12px 16px;
		font-size: 16px;
		text-align: center;
		border-radius: 16px;
	}

	.v2-nav a.v2-nav-cta {
		margin-top: 6px;
		padding: 13px 16px;
	}

	/* Hero：置中、按鈕全寬 */
	.v2-hero {
		padding: 36px 20px 8px;
		gap: 28px;
		text-align: center;
	}

	.v2-hero-badge {
		font-size: 13px;
	}

	.v2-hero-actions {
		flex-direction: column;
		align-items: stretch;
	}

	.v2-hero-actions .v2-btn {
		text-align: center;
		padding: 14px 24px;
		font-size: 16px;
	}

	.v2-hero-visual {
		min-height: 0;
		margin-top: 8px;
	}

	.v2-hero-visual .blob-1 {
		width: 72px;
		height: 72px;
	}

	.v2-hero-visual .blob-2 {
		width: 44px;
		height: 44px;
	}

	.v2-hero-visual .blob-3 {
		width: 26px;
		height: 26px;
	}

	.v2-hero-sticker {
		font-size: 13px;
		padding: 8px 16px;
	}

	/* 跑馬燈 */
	.v2-ticker {
		padding: 10px 0;
		margin: 24px 0;
	}

	.v2-ticker-group {
		font-size: 15px;
		gap: 28px;
		padding-right: 28px;
	}

	/* 區塊留白與圓角縮小 */
	.v2-section {
		padding: 44px 20px;
	}

	.v2-section-head {
		margin-bottom: 24px;
	}

	.v2-news-grid {
		gap: 20px;
	}

	.v2-card {
		border-radius: 20px;
	}

	.v2-philosophy {
		margin-bottom: 44px;
	}

	.v2-philosophy-inner,
	.v2-cta-inner,
	.v2-contact-inner {
		border-radius: 28px;
	}

	.v2-philosophy-inner {
		padding: 28px 20px;
	}

	.v2-mini-card {
		padding: 22px 20px;
	}

	.v2-philosophy-grid {
		gap: 24px;
	}

	.v2-video-section {
		margin-bottom: 48px;
	}

	.v2-video-section--flow {
		margin-bottom: 0;
		padding: 36px 20px 16px;
	}

	.v2-video-frame {
		border-radius: 18px;
	}

	.v2-contact {
		margin-bottom: 48px;
	}

	.v2-contact-inner > img {
		min-height: 220px;
	}

	/* 內頁 */
	.v2-page-head {
		padding: 40px 20px 4px;
	}

	.v2-featured {
		margin-top: 32px;
	}

	.v2-featured-inner {
		border-radius: 26px;
	}

	.v2-featured-inner > img {
		min-height: 240px;
	}

	.v2-group {
		margin-top: 40px;
		padding: 0 16px;
	}

	/* 師資卡改雙欄，減少捲動距離 */
	.v2-teacher-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 14px;
	}

	.v2-teacher-card {
		border-radius: 18px;
	}

	.v2-teacher-card-body {
		padding: 14px 12px 18px;
		gap: 6px;
	}

	.v2-teacher-card-body .role {
		font-size: 11px;
	}

	.v2-teacher-card-body h3 {
		font-size: 16px;
	}

	.v2-teacher-card-body p {
		font-size: 12.5px;
	}

	.v2-info-grid {
		margin-top: 32px;
		padding: 0 16px;
		gap: 16px;
	}

	.v2-info-card {
		border-radius: 20px;
		padding: 24px 20px;
	}

	.v2-note-section {
		padding: 0 16px;
	}

	.v2-cta {
		margin: 48px auto 56px;
	}

	.v2-cta-actions {
		flex-direction: column;
		align-items: stretch;
	}

	.v2-cta-actions .v2-btn,
	.v2-cta-inner > .v2-btn {
		display: block;
		text-align: center;
	}

	.v2-panel-section {
		margin: 32px auto 56px;
		padding: 0 16px;
	}

	.v2-panel {
		border-radius: 22px;
	}

	/* 頁尾置中堆疊 */
	.v2-footer {
		border-radius: 28px 28px 0 0;
		padding: 36px 20px 28px;
	}

	.v2-footer-inner {
		flex-direction: column;
		align-items: center;
		text-align: center;
		gap: 20px;
	}

	.v2-footer-list {
		align-items: center;
	}
}

/* ===== 減少動態偏好 ===== */
@media (prefers-reduced-motion: reduce) {
	.v2-ticker-track,
	.v2-hero-visual .blob-1,
	.v2-hero-visual .blob-2,
	.v2-hero-visual .blob-3 {
		animation: none;
	}

	.v2-card,
	.v2-teacher-card,
	.v2-btn {
		transition: none;
	}

	.v2-card:hover,
	.v2-teacher-card:hover {
		transform: none;
	}

	.v2-reveal-init {
		opacity: 1;
		transform: none;
		transition: none;
	}
}
