/*
 * Casa — nội dung trang tĩnh và trang chủ (dựng lại từ site cũ).
 * Màu theo theme.json (D-13). Animation chỉ dùng opacity/transform,
 * tắt khi giảm chuyển động.
 */

/* tiện ích */
.casa-center {
	text-align: center;
}

.casa-right {
	text-align: right;
}

.casa-justify {
	text-align: justify;
}

.casa-upper {
	text-transform: uppercase;
}

.casa-italic {
	font-style: italic;
}

.casa-shadow {
	text-shadow: 1px 1px 2px rgb(0 0 0 / 30%);
}

.casa-shadow--strong {
	text-shadow: 2px 2px 4px rgb(0 0 0 / 30%);
}

/* Ẩn/hiện theo khổ (khổ cũ: desktop >= 850, tablet 550-849, mobile <= 549). */
.casa-vis-desktop,
.casa-vis-tablet,
.casa-vis-mobile {
	display: none;
}

@media (min-width: 850px) {

	.casa-vis-desktop {
		display: block;
	}
}

@media (min-width: 550px) and (max-width: 849px) {

	.casa-vis-tablet {
		display: block;
	}
}

@media (max-width: 549px) {

	.casa-vis-mobile {
		display: block;
	}
}

.casa-ratio-134 img {
	width: 100%;
	aspect-ratio: 100 / 134;
	object-fit: cover;
}

.casa-ratio-75 img {
	width: 100%;
	aspect-ratio: 100 / 75;
	object-fit: cover;
}

.casa-w-88 {
	max-width: 88%;
	margin-inline: auto;
	overflow: hidden;
}

/*
 * Nhịp dọc chung của các section trang chủ: một giá trị cho desktop (64px),
 * một cho điện thoại (40px). Dùng px thẳng vì thang spacing đang hiển thị
 * trên staging lệch so với theme.json (20/30/40/50/60/70/80 lấy mặc định lõi).
 */
:root {
	--casa-section-y: 64px;
}

@media (max-width: 768px) {

	:root {
		--casa-section-y: 40px;
	}
}

/* khung section / hàng / cột */
.casa-section {
	position: relative;
	box-sizing: border-box;
	padding-block: var(--casa-section-y);
}

/* Các khối liền nhau không để khoảng trắng do margin của lõi WordPress. */
.entry-content > .casa-section {
	margin-block: 0;
}

.casa-section--flush,
.casa-section--card,
.casa-section--album,
.casa-map-section {
	padding-block: 0;
}

.casa-section--pull {
	margin-block: calc(var(--wp--preset--spacing--30) * -1);
}

/*
 * Trang tĩnh (dàn lại): cột đọc ~72 ký tự, chữ 18px, dòng cao 1.75, đoạn
 * cách 1.15em. Tiêu đề h1 nằm trong dải kem bo 12px; h2 có gạch nhấn teal
 * ngắn bên dưới; ảnh bo 12px, bóng tông teal. Màu chữ #333 (đậm vừa, dịu hơn
 * đen thuần).
 */
.casa-section--card {
	color: #333;
	font-size: var(--casa-text);
	line-height: 1.75;
}

/*
 * h1 của khối Album (plugin in sẵn, không có class màu của trình soạn bài)
 * dùng chung kiểu với h1 trang tĩnh: teal-title trên dải kem. Nhờ vậy mọi
 * trang album/flipbook về sau tự đồng bộ, không phụ thuộc markup nội dung.
 */
.casa-section--card h1,
h1.casa-gallery__title {
	margin: 32px auto 28px;
	padding: 24px 24px;
	border-radius: 12px;
	background: var(--wp--preset--color--cream);
	color: var(--wp--preset--color--teal-title);
	font-size: 34px;
	font-weight: 700;
	line-height: 1.25;
	text-align: center;
	text-wrap: balance;
}

/* Album: h1 nằm trong khối nên lề trên không gộp; bỏ để bằng trang tĩnh. */
h1.casa-gallery__title {
	margin-block-start: 0;
}

/* Khổ hẹp: chữ nhỏ hơn một nấc để tiêu đề dài không chiếm quá 4-5 dòng. */
@media (max-width: 480px) {

	.casa-section--card h1,
	h1.casa-gallery__title {
		padding: 20px 16px;
		font-size: 28px;
	}
}

/* Tiêu đề trong cột (trang tầm nhìn): không dải kem, canh trái. */
.casa-section--card .wp-block-column h1 {
	margin: 0 0 var(--wp--preset--spacing--40);
	padding: 0;
	background: none;
	text-align: start;
}

.casa-section--card h1.casa-center {
	text-align: center;
}

.casa-section--card .wp-block-column h1::after {
	content: "";
	display: block;
	width: 56px;
	height: 3px;
	margin-block-start: 12px;
	border-radius: 2px;
	background: var(--wp--preset--color--teal-300);
}

/*
 * Nhịp đọc: tiêu đề cách đoạn trên 2em, dính nội dung bên dưới 0.6em;
 * đoạn cách nhau 1.15em.
 */
.casa-section--card h2 {
	margin: 2em 0 0.6em;
	font-size: 26px;
	line-height: 1.3;
}

.casa-section--card > h2::after {
	content: "";
	display: block;
	width: 40px;
	height: 3px;
	margin-block-start: 0.4em;
	border-radius: 2px;
	background: var(--wp--preset--color--teal-300);
}

.casa-section--card h3 {
	margin: 1.8em 0 0.6em;
	font-size: 21px;
	font-weight: 600;
	line-height: 1.35;
}

.casa-section--card > :first-child {
	margin-block-start: 0;
}

.casa-section--card p {
	margin: 0 0 1.15em;
}

/* Dòng chữ không dài quá ~720px trên màn hình rộng. */
.casa-section--card > :is(p, h2, h3, h4, ul, ol, .wp-block-quote) {
	max-width: 720px;
	margin-inline: auto;
}

/* Đoạn chỉ có một liên kết: vùng chạm 44px. */
.casa-section--card p > a:only-child {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
}

.casa-section--card p a:not(.casa-person__toggle) {
	color: var(--wp--preset--color--teal-800);
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.casa-section--card .wp-block-image {
	margin: 0 0 var(--wp--preset--spacing--30);
}

.casa-section--card .wp-block-image img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 12px;
	box-shadow: 0 10px 28px rgb(27 98 105 / 14%);
}

.casa-section--card .wp-block-image.aligncenter {
	margin-block: 2em;
	text-align: center;
}

.casa-section--card .wp-block-image.aligncenter img {
	width: auto;
	max-width: min(100%, 560px);
	margin-inline: auto;
}

/* Câu trích: nền kem, viền trái teal, chữ nghiêng lớn hơn. */
.casa-section--card .wp-block-quote {
	margin: 2em auto;
	padding: 16px 24px;
	border-inline-start: 4px solid var(--wp--preset--color--teal-600);
	border-radius: 0 12px 12px 0;
	background: var(--wp--preset--color--cream);
	font-size: 1.15em;
	font-style: italic;
}

.casa-section--card .wp-block-quote p:last-child {
	margin-block-end: 0;
}

/* Danh sách: chấm teal thay chấm đen mặc định. */
.casa-section--card ul {
	margin: 0 auto 1.2em;
	padding-inline-start: 0;
	list-style: none;
}

.casa-section--card ul > li {
	position: relative;
	margin-block-end: 0.55em;
	padding-inline-start: 1.5em;
}

.casa-section--card ul > li::before {
	content: "";
	position: absolute;
	inset-block-start: 0.72em;
	inset-inline-start: 0.3em;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--wp--preset--color--teal-600);
}

.casa-section--card ol {
	margin: 0 auto 1.2em;
	padding-inline-start: 1.6em;
}

/* Hàng: khoảng cách cột mặc định 30px, small 15px, collapse 0. */
.casa-row {
	margin-block-end: 0;
	gap: var(--wp--preset--spacing--50);
}

.casa-row--small {
	gap: var(--wp--preset--spacing--30);
	margin-block-end: var(--wp--preset--spacing--30);
}

.casa-row--large {
	gap: var(--wp--preset--spacing--50);
}

.casa-row--collapse {
	gap: 0;
}

/* Hàng "full": căn giữa, tối đa 1500px (như lưới prod), lề đều 2 bên. */
.casa-row--full {
	box-sizing: border-box;
	max-width: min(100%, 1500px);
	margin-inline: auto;
	padding-inline: var(--wp--preset--spacing--30);
}

.casa-row .wp-block-column {
	min-width: 0;
}

/*
 * Hero ảnh đơn (dự phòng cho trang chưa chuyển sang khối casa/hero-
 * slider): ảnh rộng hết bề ngang, luôn opacity 1 (LCP), không trang trí
 * bay / vệt sáng (chủ trương tiết chế, D-24).
 */
.casa-hero__img {
	position: relative;
	max-width: none;
	margin: 0;
	overflow: hidden;
}

.casa-hero__img img {
	display: block;
	width: 100%;
	height: auto;
}

.casa-section:has(> .casa-hero__img) {
	padding-inline: 0;
	overflow: hidden;
}

/* Section nền ảnh (cover): bỏ chiều cao tối thiểu mặc định của WordPress. */
.casa-section.wp-block-cover {
	min-height: 0;
	padding: var(--casa-section-y) var(--wp--preset--spacing--30);
	align-items: stretch;
}

.casa-section.wp-block-cover > .wp-block-cover__inner-container {
	width: 100%;
	max-width: 1250px;
	margin-inline: auto;
}

.casa-section--stars.wp-block-cover {
	background: var(--wp--preset--color--surface);
}

.casa-section--stars .wp-block-cover__image-background {
	opacity: 0.9;
}

/* Tiêu đề khối: IN HOA, bóng chữ, căn giữa. */
.casa-section-title {
	margin: 0 0 var(--wp--preset--spacing--55);
	font-size: 28px;
	text-align: center;
}

@media (max-width: 768px) {

	.casa-section-title {
		margin-block-end: var(--wp--preset--spacing--45);
	}
}

h1.casa-section-title {
	font-size: 32px;
}

/* Gạch chân vẽ dần từ giữa ra (chỉ transform). */
:is(.casa-section-title, .casa-why > .wp-block-heading)::after {
	display: block;
	width: 72px;
	height: 3px;
	margin: 10px auto 0;
	border-radius: 2px;
	background: currentcolor;
	content: "";
	transform-origin: 50% 50%;
}

.casa-js:not(.casa-anim-off) :is(.casa-section-title, .casa-why > .wp-block-heading)::after {
	transform: scaleX(0);
	transition: transform 0.7s ease-out 0.35s;
}

.casa-js:not(.casa-anim-off) :is(.casa-section-title, .casa-why > .wp-block-heading).is-visible::after {
	transform: scaleX(1);
}

/* Section kem + sóng SVG tự vẽ. */
.casa-section--cream {
	padding-block: var(--casa-section-y) var(--wp--preset--spacing--60);
	background-color: var(--wp--preset--color--cream);
}

.casa-section--cream .casa-row {
	max-width: 1250px;
	margin-inline: auto;
	padding-inline: var(--wp--preset--spacing--30);
}

.casa-section--cream .casa-row--full {
	max-width: min(100%, 1500px);
}

.casa-section--waves {
	overflow: hidden;
	padding-block-end: var(--wp--preset--spacing--80);
}

.casa-section--waves::after {
	position: absolute;
	inset-block-end: -1px;
	inset-inline-start: 0;
	width: calc(100% + 1200px);
	height: 60px;
	background: url(../img/wave.svg) repeat-x 0 0 / 1200px 60px;
	content: "";
	pointer-events: none;
	animation: casa-wave-drift 20s linear infinite;
}

@keyframes casa-wave-drift {

	from {
		transform: translateX(0);
	}

	to {
		transform: translateX(-1200px);
	}
}

/*
 * Thẻ "Vì sao…" (số đo lấy từ prod): tràn hết bề ngang, lề 30px (15px <= 768),
 * khoảng cách 20px, thẻ đệm 20px, tiêu đề 28px (22px <= 768).
 * 4 cột >= 1024, 2 cột 600-1023, 1 cột < 600; thẻ cao bằng nhau.
 *
 * Lõi WordPress ép margin ngang auto cho con của nhóm constrained (kể cả
 * âm), nên bỏ đệm 16px của section thay vì dùng margin âm.
 */
.casa-section--cream:has(.casa-why) {
	padding-inline: 0;
}

.casa-section--cream:has(.casa-why) > .casa-row:not(.casa-row--full) {
	padding-inline: var(--wp--preset--spacing--50);
}

.casa-section--cream .casa-row--full:has(> .casa-why) {
	max-width: none;
	margin-block: var(--wp--preset--spacing--60) 0;
	padding-inline: 30px;
}

.casa-why {
	box-sizing: border-box;
	max-width: none;
	margin: 0;
	text-align: center;
}

.casa-why > .wp-block-heading {
	margin: 0 0 var(--wp--preset--spacing--45);
	color: var(--wp--preset--color--teal-600);
	font-size: 28px;
}

/*
 * Mọi con của lưới margin 0: lõi WordPress thêm margin-block-start cho
 * mọi con (trừ con đầu) của nhóm flow, làm thẻ 2-4 bị đẩy xuống ~30px.
 */
.casa-why__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--35);
	align-items: stretch;
	margin: 0;
}

.casa-why__grid > .casa-why__item {
	margin: 0;
}

.casa-why__item {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	justify-content: flex-start;
	box-sizing: border-box;
	min-width: 0;
	padding: var(--wp--preset--spacing--35);
	border-radius: 12px;
	background: var(--wp--preset--color--surface);
	box-shadow: 0 6px 18px rgb(0 0 0 / 8%);
	text-align: left;
}

.casa-why__item h3 {
	margin: 0 0 var(--wp--preset--spacing--25);
	color: var(--wp--preset--color--teal-card);
	font-size: 20px;
	overflow-wrap: anywhere;
}

.casa-why__item p {
	margin: 0;
	color: var(--wp--preset--color--ink-soft);
	font-size: 16px;
	line-height: 1.6;
}

@media (max-width: 1023px) {

	.casa-why__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/*
 * Khoảng từ đoạn chữ phía trên tới tiêu đề (prod): ~48 ở >= 1024, ~70 ở
 * 768, ~200 ở 360 (có ảnh minh hoạ xen giữa).
 */
@media (max-width: 1023px) {

	.casa-section--cream .casa-row--full:has(> .casa-why) {
		margin-block-start: 70px;
	}
}

@media (max-width: 768px) {

	.casa-section--cream .casa-row--full:has(> .casa-why) {
		padding-inline: 15px;
	}

	/* 22px theo prod (chưa có token). */
	.casa-why > .wp-block-heading {
		margin-block-end: 22px;
		font-size: 22px;
	}
}

@media (max-width: 599px) {

	.casa-section--cream .casa-row--full:has(> .casa-why) {
		margin-block-start: 66px;
	}

	.casa-why__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.casa-why__item p {
		font-size: 15px;
	}

	.casa-section--cream {
		padding-block: var(--casa-section-y) var(--wp--preset--spacing--60);
	}
}

/*
 * Hàng 2 cột ở khổ 550-781: site cũ chỉ xếp chồng dưới 550px, còn lõi
 * WordPress xếp chồng dưới 782px. Giữ 2 cột như prod ở khoảng này (hàng
 * giới thiệu trang chủ).
 */
@media (min-width: 550px) and (max-width: 781px) {

	.casa-section--cream > .casa-row--collapse.wp-block-columns {
		flex-wrap: nowrap !important;
	}

	.casa-section--cream > .casa-row--collapse.wp-block-columns > .wp-block-column[style*="flex-basis:50%"] {
		flex-basis: 50% !important;
		flex-grow: 0 !important;
	}
}

/* Lưới cơ sở vật chất: 5 ô (trái: rộng 1/3 + 2 ô dọc; phải: ô lớn + ô rộng). */
.casa-grid--facility {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	grid-template-rows: repeat(6, 1fr);
	gap: var(--wp--preset--spacing--20);
	height: 560px;
	margin-block-start: var(--wp--preset--spacing--20);
}

.casa-grid__item {
	min-width: 0;
	min-height: 0;
	margin: 0;
	overflow: hidden;
	border-radius: 10px;
}

.casa-grid__item img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
}

.casa-grid--facility > :nth-child(1) {
	grid-area: 1 / 1 / 3 / 7;
}

.casa-grid--facility > :nth-child(2) {
	grid-area: 1 / 7 / 5 / 13;
}

.casa-grid--facility > :nth-child(3) {
	grid-area: 3 / 1 / 7 / 4;
}

.casa-grid--facility > :nth-child(4) {
	grid-area: 3 / 4 / 7 / 7;
}

.casa-grid--facility > :nth-child(5) {
	grid-area: 5 / 7 / 7 / 13;
}

@media (max-width: 849px) {

	.casa-grid--facility {
		height: 460px;
	}
}

@media (max-width: 549px) {

	.casa-grid--facility {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: repeat(3, 1fr);
		height: 386px;
	}

	.casa-grid--facility > :nth-child(n) {
		grid-area: auto;
	}

	.casa-grid--facility > :nth-child(5) {
		grid-column: 1 / 3;
	}
}

/* Trang tầm nhìn: cột chữ canh trên. */
.casa-section--card .wp-block-columns {
	align-items: flex-start;
}

/* Maria Montessori / Bella */
.casa-mon {
	box-sizing: border-box;
	max-width: 1200px;
	margin: 0 auto;
	padding: 48px 32px;
	border-radius: 12px;
	background: var(--wp--preset--color--cream);
	color: #333;
	line-height: 1.75;
}

.casa-mon__header {
	margin-block-end: var(--wp--preset--spacing--60);
	text-align: center;
}

.casa-mon__header .wp-block-image,
.casa-mon__footer .wp-block-image,
.casa-mon__img.wp-block-image,
.casa-mon__img .wp-block-image {
	margin: 0;
}

.casa-mon__header img {
	width: 100%;
	height: auto;
	margin-block-end: 20px;
	border-radius: 12px;
	box-shadow: 0 10px 28px rgb(27 98 105 / 16%);
}

.casa-mon__title {
	margin: 0 0 16px;
	color: var(--wp--preset--color--teal-title);
	font-size: 32px;
	font-weight: 700;
	line-height: 1.25;
	text-align: center;
	text-transform: uppercase;
	text-wrap: balance;
}

.casa-mon__title::after {
	content: "";
	display: block;
	width: 56px;
	height: 3px;
	margin: 12px auto 0;
	border-radius: 2px;
	background: var(--wp--preset--color--teal-300);
}

.casa-mon__quote {
	max-width: 46ch;
	margin: 0 auto 35px;
	color: var(--wp--preset--color--teal-800);
	font-size: 21px;
	font-style: italic;
	line-height: 1.6;
	text-wrap: balance;
}

.casa-mon__content {
	display: flex;
	flex-direction: row;
	gap: var(--wp--preset--spacing--50);
	margin-block-end: var(--wp--preset--spacing--60);
}

.casa-mon__content > :where(.casa-mon__col) {
	flex: 1;
	min-width: 0;
}

.casa-mon > .casa-mon__title + .casa-mon__content {
	flex-direction: column;
}

.casa-mon__col,
.casa-mon__para,
.casa-mon__text {
	font-size: var(--casa-text);
}

.casa-mon__col p,
.casa-mon__para p,
.casa-mon__text p {
	margin: 0 0 1.15em;
}

/* Khối chữ đứng một mình: giữ cột đọc ~72 ký tự, căn giữa. */
.casa-mon > .casa-mon__content > .casa-mon__para {
	max-width: 720px;
	margin-inline: auto;
}

.casa-mon__para {
	margin: 0;
}

.casa-mon__two {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--50);
	align-items: flex-start;
	margin: var(--wp--preset--spacing--60) 0;
}

.casa-mon__img {
	flex: 1;
	min-width: min(280px, 100%);
	max-width: 400px;
}

.casa-mon__img img {
	width: 100%;
	border-radius: 12px;
	box-shadow: 0 10px 28px rgb(27 98 105 / 16%);
}

.casa-mon__text {
	flex: 2;
	min-width: min(300px, 100%);
}

.casa-mon__footer {
	margin-block-start: var(--wp--preset--spacing--60);
	text-align: center;
}

.casa-mon__footer img {
	max-width: 100%;
	border-radius: 12px;
	box-shadow: 0 12px 32px rgb(27 98 105 / 18%);
}

@media (max-width: 1023px) {

	.casa-mon__content {
		flex-direction: column;
	}

	.casa-mon__title {
		font-size: 26px;
	}
}

@media (max-width: 599px) {

	.casa-mon__two {
		flex-direction: column;
	}
}

@media (max-width: 599px) {

	.casa-mon__title {
		font-size: 22px;
	}

	.casa-mon__quote {
		font-size: 18px;
	}

	.casa-mon__header img {
		width: 150px;
	}
}

/*
 * Hội đồng cố vấn và Ban giám hiệu: lưới đều (CSS Grid, thẻ cao bằng nhau).
 * Người đứng đầu (thẻ đầu tiên) là thẻ ngang rộng hết hàng; 6 người còn lại
 * 3 cột x 2 hàng (1024+), 2 cột (600-1023), thẻ ngang gọn ảnh trái chữ phải
 * (dưới 600). Cả thẻ bấm được: liên kết "Xem thêm" phủ kín thẻ (stretched link)
 * và person-toggle.js mở hộp thoại. Tiểu sử luôn nằm trong DOM (ẩn bằng clip,
 * không dùng display:none để innerText và trình đọc màn hình vẫn thấy).
 */
.casa-people {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
	align-items: stretch;
	box-sizing: border-box;
	max-width: 1120px;
	margin: 0 auto;
	padding-inline: var(--wp--preset--spacing--30);
}

.casa-person {
	--casa-person-accent: var(--wp--preset--color--teal-800);

	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	box-sizing: border-box;
	min-width: 0;
	padding: 28px 20px 24px;
	border: 1px solid rgb(37 124 132 / 12%);
	border-block-start: 4px solid var(--wp--preset--color--teal-700);
	border-radius: 12px;
	background: var(--wp--preset--color--surface);
	box-shadow: 0 10px 28px rgb(27 98 105 / 9%);
	text-align: center;
}

.casa-person .casa-person__photo {
	flex: 0 0 auto;
	width: 168px;
	max-width: 100%;
	margin: 0 0 18px;
}

.casa-person .casa-person__photo img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	border: 4px solid var(--wp--preset--color--cream);
	border-radius: 50%;
	box-shadow: 0 6px 18px rgb(27 98 105 / 22%);
	object-fit: cover;
	object-position: center 20%;
}

/*
 * Một màu tên cho mọi người (teal đậm, 6,5:1 trên trắng). !important vì
 * nội dung cũ gắn màu riêng từng người bằng style nội tuyến (chỉ màu).
 */
.casa-person .casa-person__name {
	margin: 0 0 6px;
	color: var(--wp--preset--color--teal-800) !important;
	font-size: 21px;
	line-height: 1.3;
	text-wrap: balance;
}

.casa-person .casa-person__role {
	margin: 0 0 16px;
	color: var(--wp--preset--color--ink);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.45;
	text-wrap: balance;
}

/* Tiểu sử: ẩn khỏi mắt, vẫn có trong DOM (JS chép vào hộp thoại). */
.casa-person .casa-person__bio {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.casa-person__toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-height: 44px;
	margin-block-start: auto;
	padding: 8px 22px;
	border-radius: 8px;
	background: var(--casa-person-accent);
	color: var(--wp--preset--color--surface);
	text-decoration: none;
	transition: background-color 0.2s ease, transform 0.15s ease;
}

/* Liên kết phủ kín thẻ: bấm đâu trong thẻ cũng mở tiểu sử. */
.casa-person__toggle::after {
	position: absolute;
	inset: 0;
	border-radius: 12px;
	content: "";
}

.casa-person__toggle:hover,
.casa-person__toggle:focus {
	background: var(--wp--preset--color--teal-700);
	color: var(--wp--preset--color--surface);
	text-decoration: underline;
}

.casa-person__toggle:focus-visible::after {
	outline: 3px solid var(--wp--preset--color--teal-700);
	outline-offset: 3px;
}

/* Người đứng đầu: thẻ ngang rộng hết hàng, ảnh lớn hơn, chữ căn trái. */
.casa-people > .casa-person:first-child {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: 220px minmax(0, 1fr);
	grid-template-rows: auto auto auto;
	align-content: center;
	align-items: start;
	column-gap: 40px;
	padding: 28px 48px;
	background: linear-gradient(135deg, var(--wp--preset--color--surface) 55%, var(--wp--preset--color--cream));
	text-align: start;
}

.casa-people > .casa-person:first-child .casa-person__photo {
	grid-row: 1 / span 3;
	width: 220px;
	margin: 0;
	align-self: center;
}

.casa-people > .casa-person:first-child .casa-person__name {
	align-self: end;
	font-size: 30px;
}

.casa-people > .casa-person:first-child .casa-person__role {
	font-size: 19px;
}

.casa-people > .casa-person:first-child .casa-person__toggle {
	align-self: start;
	justify-self: start;
	margin-block-start: 4px;
}

@media (max-width: 1023px) {

	.casa-people {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 20px;
	}
}

/* Điện thoại: thẻ ngang gọn, ảnh trái, chữ phải (mỗi người ~110px cao). */
@media (max-width: 599px) {

	.casa-people {
		grid-template-columns: minmax(0, 1fr);
		gap: 14px;
		padding-inline: 0;
	}

	.casa-person,
	.casa-people > .casa-person:first-child {
		display: grid;
		grid-template-columns: 84px minmax(0, 1fr);
		grid-template-rows: auto auto auto;
		align-content: center;
		align-items: center;
		column-gap: 16px;
		padding: 16px;
		text-align: start;
	}

	.casa-person .casa-person__photo,
	.casa-people > .casa-person:first-child .casa-person__photo {
		grid-row: 1 / span 3;
		width: 84px;
		margin: 0;
		align-self: center;
	}

	.casa-person .casa-person__name,
	.casa-people > .casa-person:first-child .casa-person__name {
		align-self: end;
		margin: 0 0 2px;
		font-size: 18px;
	}

	.casa-person .casa-person__role,
	.casa-people > .casa-person:first-child .casa-person__role {
		margin: 0 0 8px;
		font-size: 15px;
	}

	.casa-person__toggle,
	.casa-people > .casa-person:first-child .casa-person__toggle {
		justify-self: start;
		margin-block-start: 0;
		padding: 8px 18px;
	}
}

/* Trình duyệt thiếu <dialog>: tiểu sử hiện sẵn trong thẻ. */
.casa-person-nojs .casa-person__bio {
	position: static;
	width: auto;
	height: auto;
	margin: 12px 0;
	overflow: visible;
	clip-path: none;
	text-align: start;
	white-space: normal;
}

/*
 * Hộp thoại tiểu sử (person-toggle.js tạo <dialog>): 2 cột trên máy tính
 * (trái: ảnh, tên, chức danh trên nền kem; phải: tiểu sử dạng danh sách, tự
 * cuộn khi dài), 1 cột gần kín màn hình trên điện thoại. Một màu nhấn teal.
 */
html.casa-dialog-open {
	overflow: hidden;
}

.casa-person-dialog {
	box-sizing: border-box;
	width: min(920px, calc(100vw - 32px));
	max-width: none;
	max-height: min(88dvh, 680px);
	margin: auto;
	padding: 0;
	overflow: hidden;
	border: 0;
	border-radius: 16px;
	background: var(--wp--preset--color--surface);
	box-shadow: 0 24px 64px rgb(15 55 60 / 35%);
	color: var(--wp--preset--color--ink);
	opacity: 0;
	transform: scale(0.97);
	transition: opacity 0.2s ease-out, transform 0.2s ease-out;
}

.casa-person-dialog[open].is-shown {
	opacity: 1;
	transform: none;
}

.casa-person-dialog::backdrop {
	background: rgb(10 40 45 / 55%);
}

.casa-person-dialog__body {
	display: grid;
	grid-template-columns: 300px minmax(0, 1fr);
	max-height: min(88dvh, 680px);
}

.casa-person-dialog__side {
	box-sizing: border-box;
	padding: 48px 28px 32px;
	overflow-y: auto;
	border-inline-end: 1px solid rgb(37 124 132 / 14%);
	background: var(--wp--preset--color--cream);
	text-align: center;
}

.casa-person-dialog__side img {
	display: block;
	width: 168px;
	max-width: 100%;
	height: auto;
	margin: 0 auto 20px;
	aspect-ratio: 1;
	border: 4px solid var(--wp--preset--color--surface);
	border-radius: 50%;
	box-shadow: 0 0 0 2px var(--wp--preset--color--teal-700), 0 8px 20px rgb(27 98 105 / 22%);
	object-fit: cover;
	object-position: center 20%;
}

.casa-person-dialog__name {
	margin: 0 0 8px;
	color: var(--wp--preset--color--teal-800);
	font-size: 22px;
	line-height: 1.3;
	text-wrap: balance;
}

.casa-person-dialog__role {
	margin: 0;
	color: var(--wp--preset--color--ink);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.5;
	text-wrap: balance;
}

.casa-person-dialog__bio {
	box-sizing: border-box;
	margin: 0;
	padding: 56px 44px 36px 40px;
	overflow-y: auto;
	overscroll-behavior: contain;
	font-size: 16.5px;
	line-height: 1.6;
	list-style: none;
}

.casa-person-dialog__bio li {
	display: grid;
	grid-template-columns: 18px minmax(0, 1fr);
	column-gap: 14px;
	margin: 0;
	padding-block: 12px;
}

.casa-person-dialog__bio li + li {
	border-block-start: 1px solid rgb(37 124 132 / 12%);
}

.casa-person-dialog__bio li:first-child {
	padding-block-start: 0;
}

.casa-person-dialog__bio svg {
	width: 16px;
	height: 16px;
	margin-block-start: 0.32em;
	color: var(--wp--preset--color--teal-700);
}

.casa-person-dialog__close {
	position: absolute;
	inset-block-start: 12px;
	inset-inline-end: 12px;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid rgb(37 124 132 / 25%);
	border-radius: 50%;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--teal-800);
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.casa-person-dialog__close:hover {
	background: var(--wp--preset--color--teal-800);
	color: var(--wp--preset--color--surface);
}

.casa-person-dialog__close:focus-visible {
	outline: 3px solid var(--wp--preset--color--teal-700);
	outline-offset: 2px;
}

@media (max-width: 719px) {

	.casa-person-dialog {
		width: calc(100vw - 16px);
		max-height: 94dvh;
		border-radius: 14px;
	}

	.casa-person-dialog__body {
		display: block;
		max-height: 94dvh;
		overflow-y: auto;
		overscroll-behavior: contain;
	}

	.casa-person-dialog__side {
		display: grid;
		grid-template-columns: 88px minmax(0, 1fr);
		align-items: center;
		column-gap: 16px;
		padding: 20px 68px 20px 20px;
		overflow: visible;
		border-inline-end: 0;
		border-block-end: 1px solid rgb(37 124 132 / 14%);
		text-align: start;
	}

	.casa-person-dialog__side img {
		grid-row: 1 / span 2;
		width: 88px;
		margin: 0;
	}

	.casa-person-dialog__name {
		align-self: end;
		margin: 0 0 4px;
		font-size: 19px;
	}

	.casa-person-dialog__role {
		align-self: start;
		font-size: 15px;
	}

	.casa-person-dialog__bio {
		padding: 20px 20px 28px;
		overflow: visible;
		font-size: 16px;
	}
}

@media (prefers-reduced-motion: reduce) {

	.casa-person-dialog,
	.casa-person-dialog__close,
	.casa-person__toggle {
		transition: none;
	}

	.casa-person-dialog {
		opacity: 1;
		transform: none;
	}
}

/*
 * Liên hệ: bản đồ phía trên (như bản cũ) bo 12px có bóng; bên dưới 2 cột
 * form | thẻ thông tin kem. Mỗi dòng thông tin có icon nhỏ (CSS mask).
 */
.casa-map-section,
.entry-content > .casa-map-section {
	margin-block-end: 40px;
}

.casa-map-section .casa-map {
	overflow: hidden;
	border-radius: 12px;
	box-shadow: 0 12px 32px rgb(27 98 105 / 16%);
	line-height: 0;
}

.casa-map-section .casa-map__frame {
	min-height: 360px;
}

.casa-contact,
.entry-content > .casa-contact.casa-section--pull {
	margin-block: 0;
	padding-block: 0;
}

.casa-contact .wp-block-columns {
	align-items: flex-start;
}

.casa-contact .casa-title-underline,
.casa-title-underline {
	width: fit-content;
	margin-block-start: 0;
	padding-block-end: 6px;
	border-block-end: 3px solid var(--wp--preset--color--teal-300);
	font-size: 26px;
	line-height: 1.3;
}

.casa-contact .wp-block-column > p {
	margin-block-end: 24px;
}

/*
 * Tiêu đề h1 trang Liên hệ: cùng kiểu h1 các trang nội dung khác (dải kem bo
 * 12px, teal-title, căn giữa, 34px / 28px khổ hẹp, cách đoạn dưới 28px).
 * Dải nằm trong cột trái nên cạnh và độ rộng khớp thẻ form; thẻ thông tin
 * bên phải cùng màu kem, đỉnh hai khối ngang nhau.
 */
.casa-contact .wp-block-column h1.casa-title-underline {
	box-sizing: border-box;
	width: 100%;
	margin: 0 0 28px;
	padding: 24px;
	border: 0;
	border-radius: 12px;
	background: var(--wp--preset--color--cream);
	font-size: 34px;
	font-weight: 700;
	line-height: 1.25;
	text-align: center;
	text-wrap: balance;
}

@media (max-width: 480px) {

	.casa-contact .wp-block-column h1.casa-title-underline {
		padding: 20px 16px;
		font-size: 28px;
	}
}

.casa-contact__info {
	box-sizing: border-box;
	padding: 28px 28px;
	border-radius: 12px;
	background: var(--wp--preset--color--cream);
	color: #333;
	line-height: 1.8;
}

.casa-contact__info > p {
	margin: 0;
	font-size: var(--casa-text);
	font-style: italic;
	line-height: 1.6;
}

.casa-contact__info h2 {
	margin-block: 20px 16px;
	font-size: 24px;
	line-height: 1.3;
}

.casa-contact__info ul {
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 16px;
}

.casa-contact__info li {
	position: relative;
	min-height: 44px;
	margin-block-end: 16px;
	padding-inline-start: 56px;
	line-height: 1.55;
}

.casa-contact__info li::before {
	content: "";
	position: absolute;
	inset-block-start: 0;
	inset-inline-start: 0;
	width: 40px;
	height: 40px;
	box-sizing: border-box;
	border: 1px solid rgb(37 124 132 / 18%);
	border-radius: 50%;
	background: var(--wp--preset--color--surface) center / 20px 20px no-repeat;
}

.casa-contact__info li:nth-child(1)::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231b6269' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");
}

.casa-contact__info li:nth-child(2)::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231b6269' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
}

.casa-contact__info li:nth-child(3)::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231b6269' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M2 12h20M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z'/%3E%3C/svg%3E");
}

.casa-contact__info li:nth-child(4)::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231b6269' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z'/%3E%3Cpath d='M22 6l-10 7L2 6'/%3E%3C/svg%3E");
}

.casa-contact__info a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: var(--wp--preset--color--teal-800);
	font-weight: 700;
	overflow-wrap: anywhere;
}

/*
 * Animation (chỉ opacity / transform; JS thêm .is-visible một lần).
 * Không JS hoặc giảm chuyển động: mọi thứ hiện sẵn.
 * Nhóm "thẻ" = phần tử hiện so le (animate.js đặt transition-delay 0-360ms).
 */
.casa-js:not(.casa-anim-off) :is(.casa-anim, .casa-why__item, .casa-grid__item, .casa-post-card, .casa-testimonial, .casa-person, .casa-card-item, .casa-event-card) {
	opacity: 0;
	transition: opacity 0.6s ease-out, transform 0.6s ease-out, box-shadow 0.3s ease;
}

.casa-js:not(.casa-anim-off) :is(.casa-anim--fade-up, .casa-why__item, .casa-grid__item, .casa-post-card, .casa-testimonial, .casa-person, .casa-card-item, .casa-event-card) {
	transform: translateY(24px);
}

.casa-js:not(.casa-anim-off) .casa-anim--fade-left {
	transform: translateX(-24px);
}

.casa-js:not(.casa-anim-off) .casa-anim--fade-right {
	transform: translateX(24px);
}

.casa-js:not(.casa-anim-off) .casa-anim--zoom-in {
	transform: scale(0.92);
}

.casa-js:not(.casa-anim-off) :is(.casa-anim, .casa-why__item, .casa-grid__item, .casa-post-card, .casa-testimonial, .casa-person, .casa-card-item, .casa-event-card).is-visible {
	opacity: 1;
	transform: none;
}

/* Ảnh nội dung lớn: hiện bằng fade + zoom-out 1.04 -> 1 trong khung bo góc. */
.casa-js:not(.casa-anim-off) :is(.casa-card .wp-block-image, .casa-mon__img, .casa-mon__footer .wp-block-image) {
	overflow: hidden;
	opacity: 0;
	transition: opacity 0.7s ease-out;
}

.casa-js:not(.casa-anim-off) :is(.casa-card .wp-block-image, .casa-mon__img, .casa-mon__footer .wp-block-image, .casa-w-88) img {
	transform: scale(1.04);
	transition: transform 0.9s ease-out;
}

.casa-js:not(.casa-anim-off) :is(.casa-card .wp-block-image, .casa-mon__img, .casa-mon__footer .wp-block-image).is-visible {
	opacity: 1;
}

.casa-js:not(.casa-anim-off) :is(.casa-card .wp-block-image, .casa-mon__img, .casa-mon__footer .wp-block-image, .casa-w-88).is-visible img {
	transform: none;
}

/* Ảnh trong lưới cơ sở vật chất: mở dần từ phóng to 1.08 về 1. */
.casa-js:not(.casa-anim-off) .casa-grid__item img {
	transform: scale(1.08);
}

.casa-js:not(.casa-anim-off) .casa-grid__item.is-visible img {
	transform: none;
}

/* Ô ngày sự kiện: hiện dần từ 0.92 về 1 (không nảy quá đà). */
.casa-js:not(.casa-anim-off) .casa-event-card__date {
	transform: scale(0.92);
}

.casa-js:not(.casa-anim-off) .casa-event-card.is-visible .casa-event-card__date {
	animation: casa-settle 0.7s cubic-bezier(0.22, 0.61, 0.36, 1) 0.2s 1 backwards;
	transform: none;
}

/* Tiêu đề khối: hiện dần và nhích lên 12px (không nảy). */
.casa-js:not(.casa-anim-off) .casa-section-title,
.casa-js:not(.casa-anim-off) .casa-why > .wp-block-heading {
	opacity: 0;
}

.casa-js:not(.casa-anim-off) .casa-section-title.is-visible,
.casa-js:not(.casa-anim-off) .casa-why > .wp-block-heading.is-visible {
	opacity: 1;
	animation: casa-rise 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) backwards;
}

/*
 * Trang chủ: kịch bản vào bổ sung (cùng ngôn ngữ: ease-out mềm, 16-24px,
 * 0,5-0,9s; chỉ opacity / transform / clip-path).
 */

/* Nội dung theo sau tiêu đề: hiện sau 120ms, nhích lên 16px. */
.casa-js:not(.casa-anim-off) :is(.wp-block-heading ~ :is(.casa-posts, .casa-events, .casa-testimonials, .casa-youtube-playlist), .casa-yt__thumb) {
	opacity: 0;
	transform: translateY(16px);
	transition: opacity 0.7s cubic-bezier(0.22, 0.61, 0.36, 1) 0.12s, transform 0.7s cubic-bezier(0.22, 0.61, 0.36, 1) 0.12s;
}

.casa-js:not(.casa-anim-off) :is(.wp-block-heading ~ :is(.casa-posts, .casa-events, .casa-testimonials, .casa-youtube-playlist), .casa-yt__thumb).is-visible {
	opacity: 1;
	transform: none;
}

/* Tiêu đề khối sự kiện: hiện dần như các tiêu đề khác. */
.casa-js:not(.casa-anim-off) .casa-section--events .wp-block-heading {
	opacity: 0;
}

.casa-js:not(.casa-anim-off) .casa-section--events .wp-block-heading.is-visible {
	opacity: 1;
	animation: casa-rise 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) backwards;
}

/* Ảnh minh hoạ phần Giới thiệu: trượt từ phải, phóng 0.98 -> 1. */
.casa-js:not(.casa-anim-off) .casa-anim--fade-right {
	transform: translateX(24px) scale(0.98);
}

.casa-js:not(.casa-anim-off) .casa-anim--fade-right.is-visible {
	transform: none;
}

/* Lưới cơ sở vật chất: ô "mở" bằng clip-path 6% -> 0 (chừa chỗ cho bóng). */
.casa-js:not(.casa-anim-off) .casa-grid__item {
	clip-path: inset(6% round 12px);
	transition: opacity 0.6s ease-out, transform 0.6s ease-out, box-shadow 0.3s ease, clip-path 0.9s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.casa-js:not(.casa-anim-off) .casa-grid__item.is-visible {
	clip-path: inset(-32px round 12px);
}

/* Khung video lớn: hiện và phóng 0.98 -> 1. */
.casa-js:not(.casa-anim-off) .casa-yt__main {
	opacity: 0;
	transform: scale(0.98);
	transition: opacity 0.8s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.8s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.casa-js:not(.casa-anim-off) .casa-yt__main.is-visible {
	opacity: 1;
	transform: none;
}

/* Chân trang: hiện dần nhẹ. */
.casa-js:not(.casa-anim-off) .casa-footer__card {
	opacity: 0;
	transition: opacity 0.9s ease-out;
}

.casa-js:not(.casa-anim-off) .casa-footer__card.is-visible {
	opacity: 1;
}

/* Nền ảnh khối sự kiện trượt nhẹ (JS đặt transform; chừa 30px mỗi phía). */
.casa-parallax .casa-section--events > .wp-block-cover__image-background {
	inset-block: -30px;
	height: calc(100% + 60px);
	will-change: transform;
}

/* Dấu ngoặc kép trang trí lớn, mờ, hiện dần cùng thẻ (ảnh nền SVG). */
.casa-testimonial {
	position: relative;
}

.casa-testimonial::before {
	position: absolute;
	inset-block-start: 14px;
	inset-inline-end: 16px;
	width: 44px;
	height: 44px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='%23257c84'%3E%3Cpath d='M4 26V16c0-5 3-8 8-9v4c-2.5.6-4 2-4 5h4v10H4zm16 0V16c0-5 3-8 8-9v4c-2.5.6-4 2-4 5h4v10h-8z'/%3E%3C/svg%3E") center / contain no-repeat;
	content: "";
	opacity: 0.12;
	pointer-events: none;
}

.casa-js:not(.casa-anim-off) .casa-testimonial::before {
	opacity: 0;
	transition: opacity 0.9s ease-out 0.35s;
}

.casa-js:not(.casa-anim-off) .casa-testimonial.is-visible::before {
	opacity: 0.12;
}

@keyframes casa-rise {

	from {
		opacity: 0;
		transform: translateY(12px);
	}

	to {
		opacity: 1;
		transform: none;
	}
}

@keyframes casa-settle {

	from {
		opacity: 0;
		transform: scale(0.92);
	}

	to {
		opacity: 1;
		transform: none;
	}
}

/* Thẻ: chuyển động mượt khi hover / bấm. */
.casa-why__item,
.casa-post-card,
.casa-testimonial,
.casa-person,
.casa-card-item,
.casa-event-card {
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

/* Ảnh trong thẻ zoom nhẹ khi hover (khung đã overflow:hidden). */
.casa-card-item__thumb img,
.casa-testimonial__photo {
	transition: transform 0.4s ease;
}

/* Avatar lời phụ huynh: viền teal khi hover. */
.casa-testimonial__photo {
	outline: 0 solid transparent;
	outline-offset: 3px;
}

/* Nút: nhấn thì co 0.97. */
.casa-form__submit,
.casa-person__toggle {
	transition: transform 0.15s ease;
}

.casa-form__submit:active,
.casa-person__toggle:active {
	transform: scale(0.97);
}

/*
 * Hover: thẻ nổi 4px + bóng mềm (chỉ thiết bị có chuột; khối bài viết tự
 * khai báo trong style của khối).
 */
@media (hover: hover) {

	.casa-why__item:hover,
	.casa-testimonial:hover,
	.casa-person:hover,
	.casa-card-item:hover,
	.casa-event-card:hover {
		box-shadow: 0 12px 28px rgb(0 0 0 / 14%);
		transform: translateY(-4px);
	}

	.casa-js:not(.casa-anim-off) .is-visible:is(.casa-why__item, .casa-post-card, .casa-testimonial, .casa-person, .casa-card-item, .casa-event-card):hover {
		box-shadow: 0 12px 28px rgb(0 0 0 / 14%);
		transform: translateY(-4px);
		transition-delay: 0s;
		transition-duration: 0.3s;
	}

	.casa-card-item:hover .casa-card-item__thumb img {
		transform: scale(1.04);
	}

	.casa-testimonial:hover .casa-testimonial__photo {
		outline: 3px solid var(--wp--preset--color--teal-300);
	}

	.casa-js:not(.casa-anim-off) .casa-grid__item.is-visible:hover img,
	.casa-grid__item:hover img {
		transform: scale(1.05);
	}
}

@media (prefers-reduced-motion: reduce) {

	.casa-js:not(.casa-anim-off) :is(.casa-anim, .casa-why__item, .casa-grid__item, .casa-section-title, .casa-post-card, .casa-testimonial, .casa-person, .casa-card-item, .casa-event-card, .casa-why > .wp-block-heading, .wp-block-heading, .casa-yt__main, .casa-yt__thumb, .casa-footer__card, .casa-posts, .casa-events, .casa-testimonials, .casa-youtube-playlist) {
		clip-path: none;
		opacity: 1;
		transform: none;
		transition: none;
		animation: none;
	}

	.casa-section--waves::after,
	.casa-logo,
	.casa-header__bar::before,
	.casa-event-card__date {
		animation: none;
	}

	.casa-why__item:hover,
	.casa-post-card:hover,
	.casa-testimonial:hover,
	.casa-person:hover,
	.casa-card-item:hover,
	.casa-event-card:hover,
	.casa-grid__item:hover img,
	.casa-card-item:hover .casa-card-item__thumb img,
	.casa-js:not(.casa-anim-off) .is-visible:is(.casa-why__item, .casa-post-card, .casa-testimonial, .casa-person, .casa-card-item, .casa-event-card):hover {
		transform: none;
	}
}
