/* ==========================================
           CSS Variables & Global Settings
           (Prepared for WP Customizer/Theme json)
        ========================================== */
		:root {
			--primary-blue: #5fb7e1;
			--primary-blue-hover: #4e95c1;
			--text-main: #333333;
			--text-muted: #666666;
			--bg-light-gray: #f9f9f9;
			--bg-body: #ffffff;
			--accent-red: #d96b63;
			--accent-yellow: #fbe68a;
			--font-family-base: "Zen Kaku Gothic New", 'Noto Sans JP', sans-serif;
			--section-spacing: 7.5rem;
			--btn-border-radius: 0.75rem;
			--bs-primary: #5fb7e1;
			--bs-body-color: #333333;
			--bs-body-bg: #ffffff;
			--bs-border-color: #d9d9d9;
			/* Global button border radius */
		}

		body {
			font-family: var(--font-family-base);
			color: var(--text-main);
			background-color: var(--bg-body);
			line-height: 1.8;
			letter-spacing: 0.05em;
			overflow-x: hidden;
		}

		a {
			text-decoration: none;
			color: inherit;
			transition: all 0.3s ease;
		}

		img {
			max-width: 100%;
			height: auto;
		}

		.site-logo-img {
			height: 3.75rem;
			object-fit: contain;
		}

		.site-header .site-logo-img {
			height: 5rem; /* = 84px */
		}

		/* Utility Classes */
		.text-blue {
			color: var(--primary-blue) !important;
		}

		.bg-gray {
			background-color: var(--bg-light-gray);
		}

		.section-padding {
			padding: var(--section-spacing) 0;
		}

		.rounded-custom {
			border-radius: 1.25rem;
		}

		.text-jv-body {
			font-size: 0.95rem;
			line-height: 1.8;
		}

		.text-jv-body-wide {
			font-size: 0.9rem;
			line-height: 2.2;
		}

		.text-jv-small-body {
			font-size: 0.85rem;
			line-height: 1.8;
		}

		.jv-default-page-main {
			background: #fff;
		}

		.jv-default-page-section {
			padding: 11.5rem 0 6rem;
		}

		.jv-default-page-content {
			max-width: 60rem;
			margin: 0 auto;
			font-size: 1rem;
			line-height: 2;
		}

		.jv-default-page-heading {
			margin-bottom: 3rem;
			text-align: center;
		}

		.jv-default-page-title {
			margin: 0;
			font-size: clamp(2rem, 4vw, 3rem);
			font-weight: 900;
			line-height: 1.35;
			letter-spacing: 0.04em;
		}

		.jv-default-page-content h2,
		.jv-default-page-content h3 {
			margin: 0 0 1.5rem;
			font-weight: 900;
			line-height: 1.35;
		}

		.jv-default-page-content p,
		.jv-default-page-content ul,
		.jv-default-page-content ol {
			margin-bottom: 1.5rem;
		}

		@media (max-width: 48rem) {
			:root {
				--section-spacing: 3.75rem;
			}

			.jv-default-page-section {
				padding: 7.75rem 0 4rem;
			}

			.jv-default-page-heading {
				margin-bottom: 2rem;
			}
		}

		/* Buttons */
		.btn-custom {
			display: inline-flex;
			align-items: center;
			justify-content: center;
			padding: 0.75rem 1.875rem;
			border-radius: var(--btn-border-radius);
			font-weight: 700;
			transition: all 0.3s ease;
			text-decoration: none;
		}

		.btn-jv-primary {
			font-size: 0.95rem;
			padding: 0.625rem 1.5rem;
			border-radius: 0.5rem;
		}

		.btn-jv-primary-lg {
			width: 14.625rem;
			min-height: 3.3125rem;
			padding: 0.75rem 1.875rem;
			font-size: 1rem;
		}

		.btn-jv-icon {
			width: 1.125rem;
			height: 1.125rem;
			background-color: #fff;
			color: var(--primary-blue);
			border-radius: 50%;
			display: inline-flex;
			align-items: center;
			justify-content: center;
			flex: 0 0 auto;
		}

		.btn-jv-icon-lg {
			width: 1.375rem;
			height: 1.375rem;
		}

		/* Override Bootstrap 5 btn-primary variables */
		.btn-primary {
			--bs-btn-bg: var(--primary-blue);
			--bs-btn-border-color: var(--primary-blue);
			--bs-btn-hover-bg: var(--primary-blue-hover);
			--bs-btn-hover-border-color: var(--primary-blue-hover);
			--bs-btn-active-bg: var(--primary-blue-hover);
			--bs-btn-active-border-color: var(--primary-blue-hover);
			--bs-btn-disabled-bg: var(--primary-blue);
			--bs-btn-disabled-border-color: var(--primary-blue);
			border-radius: var(--btn-border-radius);
			color: #fff;
		}

		.btn-primary:hover {
			color: #fff;
			transform: translateY(-0.125rem);
		}

		.btn-outline-gray {
			background-color: #f5f5f5;
			color: var(--text-main);
			border: 0.0625rem solid transparent;
		}

		.btn-outline-gray:hover {
			background-color: #e0e0e0;
		}

		/* Section Titles */
		.section-title-wrapper {
			margin-bottom: 2.5rem;
		}

		.section-title-en {
			color: var(--primary-blue);
			font-size: 0.9rem;
			font-weight: 700;
			display: flex;
			align-items: center;
			gap: 0.5rem;
		}

		.section-title-en::before {
			content: '';
			display: inline-block;
			width: 0.375rem;
			height: 0.375rem;
			border-radius: 50%;
			background-color: var(--primary-blue);
		}

		.section-title-jp {
			font-size: 2rem;
			font-weight: 700;
			margin-top: 0.5rem;
		}

		/* Bottom Breadcrumb */
		.jv-bottom-breadcrumb {
			padding: 2rem 0;
			background: #fff;
		}

		main > .jv-bottom-breadcrumb:last-child {
			margin-bottom: -3.75rem;
		}

		.jv-bottom-breadcrumb-list {
			display: flex;
			align-items: center;
			flex-wrap: wrap;
			gap: 1.5rem;
			list-style: none;
			margin: 0;
			padding: 0;
		}

		.jv-bottom-breadcrumb-item {
			display: inline-flex;
			align-items: center;
			color: #333333;
			font-size: 0.75rem;
			font-weight: 400;
			line-height: 1;
			letter-spacing: 0;
		}

		.jv-bottom-breadcrumb-item + .jv-bottom-breadcrumb-item::before {
			content: '';
			display: inline-flex;
			align-items: center;
			justify-content: center;
			width: 0.25rem;
			height: 0.5rem;
			margin-right: 1.5rem;
			background: url('../images/icon_arrow.svg') center / contain no-repeat;
			flex: 0 0 auto;
		}

		.jv-bottom-breadcrumb-link {
			display: inline-flex;
			align-items: center;
			gap: 0.5rem;
			color: inherit;
			text-decoration: none;
			line-height: 1;
		}

		.jv-bottom-breadcrumb-link:hover {
			color: var(--primary-blue);
		}

		.jv-bottom-breadcrumb-current {
			color: #333333;
		}

		.jv-bottom-breadcrumb-icon {
			width: 1rem;
			height: 1rem;
			flex: 0 0 auto;
		}

		@media (max-width: 48rem) {
			.jv-bottom-breadcrumb {
				padding: 1.5rem 0;
			}

			main > .jv-bottom-breadcrumb:last-child {
				margin-bottom: -2.5rem;
			}

			.jv-bottom-breadcrumb-item + .jv-bottom-breadcrumb-item::before {
				margin-right: 1rem;
			}

			.jv-bottom-breadcrumb-list {
				gap: 1rem;
			}
		}

		/* ==========================================
           News Archive Page
        ========================================== */
		.page-header-news {
			position: relative;
			padding: 13.5rem 0 5.5rem;
			background:
				linear-gradient(180deg, #faf8f6 0%, #ffffff 100%);
			overflow: hidden;
		}

		.page-header-news-inner {
			position: relative;
			max-width: 46.875rem;
			margin: 0 auto;
			z-index: 1;
		}

		.page-header-news-blob {
			position: absolute;
			border-radius: 50%;
			filter: blur(0.1875rem);
			opacity: 0.9;
		}

		.page-header-news-blob-left {
			top: 5rem;
			left: -9rem;
			width: 23rem;
			height: 23rem;
			background: radial-gradient(circle, rgba(251, 230, 138, 0.48) 0%, rgba(251, 230, 138, 0) 72%);
		}

		.page-header-news-blob-right {
			top: 3.5rem;
			right: -6rem;
			width: 26rem;
			height: 26rem;
			background: radial-gradient(circle, rgba(95, 183, 225, 0.2) 0%, rgba(95, 183, 225, 0) 70%);
		}

		.page-header-kicker {
			display: inline-flex;
			align-items: center;
			gap: 0.625rem;
			color: var(--primary-blue);
			font-size: 1rem;
			font-weight: 700;
			letter-spacing: 0.14em;
			text-transform: uppercase;
			margin-bottom: 1rem;
		}

		.page-header-kicker::before,
		.page-header-kicker::after {
			content: '';
			display: inline-block;
			width: 0.5rem;
			height: 0.5rem;
			border-radius: 50%;
			background-color: var(--primary-blue);
		}

		.page-title {
			font-size: clamp(2.25rem, 4vw, 3.75rem);
			font-weight: 900;
			letter-spacing: 0.08em;
			line-height: 1.25;
			margin-bottom: 1.25rem;
		}

		.page-header-copy {
			max-width: 38rem;
			margin: 0 auto 1.75rem;
			font-size: 1rem;
			line-height: 2;
			color: var(--text-muted);
		}

		.page-breadcrumb {
			gap: 0.75rem;
			font-size: 0.85rem;
			color: var(--text-muted);
		}

		.page-breadcrumb .breadcrumb-item,
		.page-breadcrumb .breadcrumb-item.active {
			color: var(--text-muted);
		}

		.page-breadcrumb .breadcrumb-item + .breadcrumb-item::before {
			content: '›';
			padding-right: 0.75rem;
			color: #b3b3b3;
		}

		.page-breadcrumb a:hover {
			color: var(--primary-blue);
		}

		.news-archive-section {
			padding-top: 0;
			background:
				linear-gradient(180deg, #ffffff 0%, #faf8f6 100%);
		}

		.news-archive-shell {
			position: relative;
			margin-top: -0.5rem;
		}

		.news-archive-sidebar {
			position: sticky;
			top: 11rem;
		}

		.news-archive-title {
			margin-bottom: 1.25rem;
		}

		.news-archive-sidebar-copy {
			font-size: 0.92rem;
			line-height: 1.95;
			color: var(--text-muted);
			margin-bottom: 1.75rem;
		}

		.news-archive-filter-group {
			display: flex;
			flex-direction: column;
			align-items: stretch;
			gap: 0.75rem;
		}

		.news-archive-filter {
			display: inline-flex;
			align-items: center;
			justify-content: center;
			min-height: 3rem;
			padding: 0.75rem 1rem;
			border: 0.0625rem solid #ebe6de;
			border-radius: 999px;
			background-color: #fff;
			color: var(--text-main);
			font-size: 0.92rem;
			font-weight: 700;
			box-shadow: 0 0.625rem 1.5rem rgba(51, 51, 51, 0.04);
			transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, background-color 0.25s ease;
		}

		.news-archive-filter:hover {
			transform: translateY(-0.125rem);
			border-color: rgba(95, 183, 225, 0.42);
			box-shadow: 0 1rem 2rem rgba(95, 183, 225, 0.1);
		}

		.news-archive-filter.is-active {
			background-color: var(--primary-blue);
			border-color: var(--primary-blue);
			color: #fff;
		}

		.news-archive-filter-highlight {
			background-color: #fff4c8;
			border-color: #fff4c8;
		}

		.news-archive-list-card {
			background-color: rgba(255, 255, 255, 0.92);
			border: 0.0625rem solid rgba(217, 217, 217, 0.68);
			border-radius: 2rem;
			box-shadow: 0 1.5rem 3rem rgba(51, 51, 51, 0.05);
			overflow: hidden;
		}

		.news-archive-list {
			padding: 0 2.25rem;
		}

		.news-archive-item + .news-archive-item {
			border-top: 0.0625rem dashed #d9d9d9;
		}

		.news-archive-link {
			display: flex;
			align-items: flex-start;
			gap: 1.5rem;
			padding: 2rem 0;
		}

		.news-archive-link:hover {
			color: inherit;
		}

		.news-archive-link:hover .news-archive-heading {
			color: var(--primary-blue);
		}

		.news-archive-link:hover .news-archive-arrow {
			transform: translateX(0.25rem);
			background-color: var(--primary-blue);
			color: #fff;
		}

		.news-archive-meta {
			width: 12rem;
			flex: 0 0 auto;
			display: flex;
			flex-direction: column;
			align-items: flex-start;
			gap: 0.75rem;
			padding-top: 0.125rem;
		}

		.news-archive-date {
			font-size: 0.88rem;
			font-weight: 700;
			letter-spacing: 0.08em;
			color: var(--text-muted);
		}

		.news-archive-badge {
			display: inline-flex;
			align-items: center;
			justify-content: center;
			min-height: 2rem;
			padding: 0.375rem 0.875rem;
			border-radius: 999px;
			background-color: #f8f7f4;
			color: var(--text-main);
			font-size: 0.78rem;
			font-weight: 700;
			letter-spacing: 0.04em;
		}

		.news-archive-badge-highlight {
			background-color: var(--accent-yellow);
		}

		.news-archive-content {
			flex: 1 1 auto;
			min-width: 0;
		}

		.news-archive-heading {
			font-size: 1.25rem;
			font-weight: 700;
			line-height: 1.75;
			letter-spacing: 0.03em;
			margin: 0 0 0.625rem;
			transition: color 0.25s ease;
		}

		.news-archive-excerpt {
			font-size: 0.92rem;
			line-height: 1.95;
			color: var(--text-muted);
			margin: 0;
		}

		.news-archive-arrow {
			width: 2.5rem;
			height: 2.5rem;
			border-radius: 50%;
			border: 0.0625rem solid rgba(95, 183, 225, 0.32);
			display: inline-flex;
			align-items: center;
			justify-content: center;
			color: var(--primary-blue);
			font-size: 1.55rem;
			line-height: 1;
			flex: 0 0 auto;
			transition: transform 0.25s ease, background-color 0.25s ease, color 0.25s ease;
		}

		.news-archive-pagination-wrap {
			margin-top: 2rem;
		}

		.news-archive-pagination {
			gap: 0.625rem;
		}

		.news-archive-pagination .page-link {
			width: 3rem;
			height: 3rem;
			border: 0;
			border-radius: 50%;
			display: inline-flex;
			align-items: center;
			justify-content: center;
			background-color: #fff;
			color: var(--text-main);
			font-weight: 700;
			box-shadow: 0 0.625rem 1.75rem rgba(51, 51, 51, 0.06);
		}

		.news-archive-pagination .page-item.active .page-link {
			background-color: var(--primary-blue);
			color: #fff;
		}

		.news-archive-pagination .page-item.disabled .page-link {
			background-color: #f1f1f1;
			color: #b8b8b8;
			box-shadow: none;
		}

		.news-archive-pagination .page-link:hover {
			color: var(--primary-blue);
			transform: translateY(-0.125rem);
		}

		.news-archive-pagination .page-item.active .page-link:hover,
		.news-archive-pagination .page-item.disabled .page-link:hover {
			color: inherit;
			transform: none;
		}

		/* ==========================================
           Header Component
        ========================================== */
		.site-header {
			position: fixed;
			top: 0;
			left: 0;
			width: 100%;
			background: rgba(255, 255, 255, 0.95);
			backdrop-filter: blur(0.625rem);
			z-index: 1000;
			padding: 0.75rem 0 0.625rem;
			min-height: 7.75rem;
			border-bottom: 0.0625rem solid transparent;
			transition: box-shadow 0.35s ease, border-bottom-color 0.35s ease;
		}

		.site-header .container-fluid > .d-flex {
			min-height: 6rem;
		}

		.site-header.header-scrolled {
			box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.04);
			border-bottom-color: rgba(0, 0, 0, 0.08);
		}

		.header-logo-area p {
			font-size: 0.7rem;
			margin: 0;
			line-height: 1.4;
			color: var(--text-main);
			font-weight: 500;
		}

		.header-logo-area .logo-text {
			font-size: 1.8rem;
			font-weight: 900;
			letter-spacing: 0.1em;
			color: var(--text-main);
		}

		.header-logo-area .logo-icon {
			width: 2.8125rem;
			height: auto;
			margin-right: 0.9375rem;
		}

		.global-nav {
			display: flex;
			align-items: center;
			gap: 1.5625rem;
		}

		.nav-item-link {
			font-size: 0.975rem;
			font-weight: 700;
			display: flex;
			align-items: center;
			gap: 0.375rem;
			color: var(--text-main);
		}

		.nav-item-link::before {
			content: '';
			display: inline-block;
			width: 0.375rem;
			height: 0.375rem;
			border-radius: 50%;
			background-color: var(--primary-blue);
			transition: transform 0.3s;
		}

		.nav-item-link:hover {
			color: var(--primary-blue);
		}

		.nav-item-link:hover::before {
			transform: scale(1.5);
		}

		.nav-item-link.is-active {
			color: var(--primary-blue);
		}

		.nav-item-link.is-active::before {
			transform: scale(1.5);
		}

		.header-actions {
			display: flex;
			gap: 0.9375rem;
		}

		.header-actions .btn-custom {
			padding: 0.75rem 2rem;
			border-radius: 0.75rem; /* Larger border radius for the header right button */
		}

		.header-action-icon {
			width: 1.125rem;
			height: 1.125rem;
			flex: 0 0 auto;
		}

		.mobile-menu-panel {
			--bs-offcanvas-height: 100dvh;
			height: 100vh;
			height: 100dvh;
			max-height: 100vh;
			max-height: 100dvh;
			border: 0;
			border-radius: 0;
		}

		.mobile-menu-panel .offcanvas-header {
			padding: 2rem 2rem 1.5rem;
			align-items: flex-start;
		}

		.mobile-menu-panel .offcanvas-body {
			padding: 0 2rem 2rem;
			overflow-y: auto;
		}

		.mobile-menu-brand-wrap {
			min-width: 0;
		}

		.mobile-menu-brand-logo {
			height: 5.25rem;
			max-width: min(16.75rem, calc(100vw - 8.5rem));
		}

		.mobile-menu-close-btn {
			width: 5.75rem;
			height: 5.75rem;
			border: 0;
			border-radius: 1.125rem;
			background-color: var(--primary-blue);
			color: #fff;
			display: inline-flex;
			flex-direction: column;
			align-items: center;
			justify-content: center;
			gap: 0.3125rem;
			flex: 0 0 auto;
		}

		.mobile-menu-close-icon {
			font-size: 2.875rem;
			line-height: 0.85;
			font-weight: 300;
		}

		.mobile-menu-close-label {
			font-size: 0.8125rem;
			font-weight: 700;
			line-height: 1;
		}

		.mobile-nav {
			gap: 0;
		}

		.mobile-nav-link {
			display: flex;
			align-items: center;
			justify-content: space-between;
			gap: 1rem;
			padding: 1.5rem 0.25rem;
			border-bottom: 0.0625rem dashed rgba(51, 51, 51, 0.18);
			font-size: 1rem;
			font-weight: 700;
		}

		.mobile-nav-link.is-active {
			color: var(--primary-blue);
		}

		.mobile-nav-link-label {
			font-size: clamp(1.125rem, 3.8vw, 1.75rem);
			line-height: 1.4;
		}

		.mobile-nav-link-arrow {
			font-size: 1.875rem;
			line-height: 1;
			font-weight: 300;
			color: var(--text-main);
			flex: 0 0 auto;
			transform: translateY(-0.0625rem);
		}

		.mobile-menu-actions {
			margin-top: 2.625rem !important;
			padding: 0 1.75rem;
			gap: 1.25rem !important;
		}

		.mobile-menu-actions .btn-custom {
			min-height: 7.5rem;
			border-radius: 1.25rem;
			font-size: clamp(1rem, 3.4vw, 1.375rem);
			font-weight: 700;
		}

		.mobile-menu-actions .btn-outline-gray {
			background-color: #faf8f6;
			border-color: transparent;
		}

		.mobile-menu-actions .header-action-icon {
			width: 1.625rem;
			height: 1.625rem;
		}

		@media (max-width: 74.9375rem) {

			.global-nav,
			.header-actions {
				display: none !important;
			}
		}

		/* ==========================================
           FAQ Section
        ========================================== */
		.accordion-item {
			border: 0.125rem solid #FAF9F6;
			margin-bottom: 1.25rem;
			background: #fff;
			border-radius: 1.25rem !important;
			overflow: hidden;
		}

		.accordion-button {
			background: #FAF9F6 !important;
			font-weight: 700;
			padding: 1.5rem 2.5rem;
			min-height: 4.6875rem;
			box-shadow: none !important;
			color: var(--text-main) !important;
		}

		.accordion-button:not(.collapsed) {
			color: var(--text-main) !important;
		}

		.accordion-button::after {
			background-image: none !important;
			content: '+';
			font-size: 1.5rem;
			font-weight: 300;
			display: flex;
			align-items: center;
			justify-content: center;
			transition: transform 0.3s;
		}

		.accordion-button:not(.collapsed)::after {
			content: '−';
			transform: none;
		}

		.accordion-body {
			padding: 1.5rem 2.5rem;
			color: var(--text-muted);
			font-size: 0.95rem;
			line-height: 1.8;
			background: #fff;
		}

		/* ==========================================
           Footer
        ========================================== */
		.site-footer {
			background-color: #faf8f6;
			padding: 10rem 0;
			border-radius: 5rem 5rem 0 0;
			margin-top: 3.75rem;
		}

		.jv-bottom-breadcrumb + .site-footer {
			margin-top: 0;
		}

		@media (min-width: 62rem) {
			.site-footer .container {
				max-width: none;
				padding-left: 8.75rem;
				padding-right: 8.75rem;
			}

			.footer-top {
				--bs-gutter-x: 0;
				margin-bottom: 5rem !important;
				flex-wrap: nowrap;
			}

			.site-footer .col-lg-4 {
				width: 18.8125rem;
				flex: 0 0 18.8125rem;
				max-width: 18.8125rem;
			}

			.site-footer .col-lg-5 {
				width: auto;
				flex: 1 1 auto;
				max-width: none;
				padding-left: 6.25rem;
				padding-right: 5rem;
			}

			.site-footer .col-lg-3 {
				width: auto;
				flex: 0 0 auto;
				max-width: none;
			}
		}

		.footer-logo {
			margin-bottom: 0;
		}

		.footer-logo-img {
			width: 18.8125rem;
			max-width: 100%;
			height: auto;
			max-height: none;
			object-fit: contain;
			display: block;
		}

		.footer-nav-grid {
			display: grid;
			grid-template-columns: repeat(2, max-content);
			column-gap: 5rem;
		}

		.footer-nav {
			list-style: none;
			padding: 0;
			margin: 0;
		}

		.footer-nav li {
			margin-bottom: 1.5rem;
		}

		.footer-nav li:last-child {
			margin-bottom: 0;
		}

		.footer-nav a {
			display: inline-flex;
			align-items: center;
			font-size: 1rem;
			font-weight: 700;
			line-height: 1;
			color: #333;
			text-decoration: none;
		}

		.footer-nav a::before {
			content: '';
			display: inline-block;
			width: 0.5rem;
			height: 0.5rem;
			border-radius: 50%;
			background-color: var(--primary-blue);
			margin-right: 0.5rem;
			flex: 0 0 auto;
		}

		.footer-bottom {
			margin-top: 0;
			padding-top: 2.5rem;
			border-top: 0.0625rem solid #ddd;
			display: flex;
			justify-content: space-between;
			align-items: flex-end;
			gap: 2.5rem;
		}

		/* Parents Online Album Button */
		.parents-btn {
			background: #fff;
			border: 0.0625rem solid #ddd;
			border-radius: 0;
			padding: 1rem 1.625rem;
			display: flex;
			align-items: center;
			gap: 1.1875rem;
			text-decoration: none;
			color: var(--text-main);
			width: fit-content;
			min-width: 0;
			transition: all 0.3s ease;
		}

		.parents-btn:hover {
			box-shadow: 0 0.25rem 0.625rem rgba(0, 0, 0, 0.05);
			border-color: #ccc;
		}

		.parents-btn-icon {
			width: 2rem;
			flex: 0 0 2rem;
			display: flex;
			align-items: center;
			justify-content: center;
		}

		.parents-btn-icon-img {
			width: 2rem;
			height: auto;
			display: block;
			flex: 0 0 auto;
		}

		.parents-btn-text {
			flex-grow: 1;
		}

		.parents-btn-text strong {
			display: block;
			font-size: 0.875rem;
			font-weight: 700;
			line-height: 1;
			margin-bottom: 0.25rem;
		}

		.parents-btn-text span {
			display: block;
			font-size: 0.6875rem;
			line-height: 1.3;
			color: #333;
		}

		/* Footer Links with Dividers */
		.footer-links-wrapper {
			display: flex;
			flex-direction: column;
			gap: 1rem;
			padding-top: 0;
		}

		.footer-links-row {
			display: flex;
			align-items: center;
			gap: 0;
		}

		.footer-links-row a {
			font-size: 0.8125rem;
			font-weight: 500;
			line-height: 1;
			color: var(--text-main);
			display: flex;
			align-items: center;
			text-decoration: none;
			white-space: nowrap;
		}

		.footer-links-row a:hover {
			color: var(--primary-blue);
		}

		.footer-links-row a .ext-icon {
			width: 0.75rem;
			height: 0.625rem;
			margin-left: 0.25rem;
			color: var(--primary-blue);
			flex: 0 0 auto;
		}

		.site-footer .btn.btn-custom.btn-primary.w-100 {
			width: 100% !important;
			min-height: 4rem;
			padding: 1.25rem 2.5rem;
			border-radius: 0.75rem;
			font-size: 1.125rem;
			font-weight: 700;
			line-height: 1;
		}

		.footer-contact-icon {
			width: 1.125rem;
			height: auto;
			flex: 0 0 auto;
		}

		.footer-contact-label-mobile {
			display: none;
		}

		@media (min-width: 62rem) {
			.footer-nav-grid {
				align-items: start;
			}

			.site-footer .btn.btn-custom.btn-primary.w-100 {
				width: auto !important;
				min-width: 13.75rem;
				min-height: 0;
				padding: 1.25rem 2.5rem;
				display: inline-flex;
				flex-wrap: nowrap;
				white-space: nowrap;
			}
		}

		.footer-links-row a::after {
			content: "";
			display: inline-block;
			width: 0.0625rem;
			height: 0.8125rem;
			background-color: #ddd;
			margin: 0 1.5rem;
		}

		.footer-links-row a:last-child::after {
			display: none;
		}

		.footer-copyright {
			font-size: 0.75rem;
			color: var(--text-main);
			line-height: 1;
			letter-spacing: 0.04em;
			white-space: nowrap;
		}

		/* Mobile Menu Button */
		.mobile-menu-btn {
			display: none;
			width: 3rem;
			height: 3rem;
			border: 0;
			background: transparent;
			color: var(--text-main);
			align-items: center;
			justify-content: center;
			flex-direction: column;
			gap: 0.3125rem;
		}

		.mobile-menu-btn-icon {
			display: inline-flex;
			flex-direction: column;
			align-items: center;
			justify-content: center;
			gap: 0.25rem;
		}

		.mobile-menu-btn-bar {
			display: block;
			width: 1.5rem;
			height: 0.125rem;
			border-radius: 999rem;
			background-color: currentColor;
		}

		.mobile-menu-btn-label {
			font-size: 0.625rem;
			font-weight: 700;
			line-height: 1;
			letter-spacing: 0.04em;
		}

		@media (max-width: 74.9375rem) {
			.mobile-menu-btn {
				display: inline-flex;
			}
		}

		@media (max-width: 61.9375rem) {
			main .container {
				padding-left: 1.5rem;
				padding-right: 1.5rem;
			}

			.site-header {
				padding: 0.875rem 0;
				min-height: 6.0625rem;
			}

			.site-header .container-fluid {
				padding-left: 1rem !important;
				padding-right: 1.25rem !important;
			}

			.site-header .container-fluid > .d-flex {
				min-height: 4.0625rem;
			}

			.site-header .site-logo-img {
				height: 4.0625rem;
				max-width: min(15.75rem, calc(100vw - 6.75rem));
			}

			.mobile-menu-btn {
				width: 3.5rem;
				height: 3.5rem;
				border-radius: 0.75rem;
				background-color: var(--primary-blue);
				color: #fff;
				gap: 0.5rem;
				padding-top: 0.25rem;
				flex: 0 0 auto;
			}

			.mobile-menu-btn-icon {
				gap: 0.25rem;
			}

			.mobile-menu-btn-bar {
				width: 1.625rem;
				height: 0.125rem;
			}

			.mobile-menu-btn-label {
				font-size: 0.625rem;
				letter-spacing: 0.02em;
			}

			.mobile-menu-btn:hover,
			.mobile-menu-btn:focus {
				background-color: var(--primary-blue-hover);
				color: #fff;
			}

			.mobile-menu-panel {
				max-width: 100%;
				top: 0;
				height: 100vh;
				height: 100dvh;
				max-height: 100dvh;
			}

			.mobile-menu-panel .offcanvas-header {
				padding: 1rem 1rem 1.375rem;
			}

			.mobile-menu-panel .offcanvas-body {
				padding: 0 1rem 2rem;
			}

			.mobile-menu-brand-logo {
				height: 4.8125rem;
				max-width: min(15rem, calc(100vw - 7rem));
			}

			.mobile-menu-close-btn {
				width: 4.75rem;
				height: 4.75rem;
				border-radius: 1rem;
			}

			.mobile-menu-close-icon {
				font-size: 2.375rem;
			}

			.mobile-nav-link {
				padding: 1.5625rem 0.25rem;
			}

			.mobile-nav-link-arrow {
				font-size: 1.625rem;
			}

			.mobile-menu-actions {
				padding: 0 0.875rem;
				gap: 1rem !important;
			}

			.mobile-menu-actions .btn-custom {
				min-height: 5.75rem;
				border-radius: 1rem;
				font-size: 1rem;
			}

			.mobile-menu-actions .header-action-icon {
				width: 1.375rem;
				height: 1.375rem;
			}

			.site-footer {
				padding: 2.75rem 0 4rem 0;
				border-radius: 2.5rem 2.5rem 0 0;
				margin-top: 2.5rem;
				/* margin-left: 0.5rem; */
				/* margin-right: 0.5rem; */
				margin-left: 0rem;
				margin-right: 0rem;
			}

			.jv-bottom-breadcrumb + .site-footer {
				margin-top: 0;
			}

			.site-footer .container {
				max-width: 22.5rem;
				padding-left: 1.5rem;
				padding-right: 1.5rem;
			}

			.site-footer .footer-top {
				--bs-gutter-x: 0;
				margin-bottom: 1.75rem !important;
				row-gap: 1.375rem;
			}

			.site-footer .col-lg-4,
			.site-footer .col-lg-3 {
				width: 100%;
				flex: 0 0 100%;
				max-width: 100%;
				margin-bottom: 0 !important;
			}

			.site-footer .col-lg-5 {
				display: none;
			}

			.footer-nav-grid {
				display: block;
			}

			.footer-logo {
				width: 100%;
				justify-content: flex-start;
			}

			.footer-logo-img {
				width: 18.8125rem;
				max-width: 100%;
			}

			.site-footer .btn.btn-custom.btn-primary.w-100 {
				width: 18.75rem;
				max-width: 100%;
				min-height: 4.875rem;
				margin: 0 auto;
				border-radius: 0.75rem;
				font-size: 1rem;
				font-weight: 700;
				padding: 1.875rem 2.5rem;
				gap: 0.625rem;
				display: flex;
				flex-wrap: nowrap;
				justify-content: center;
				white-space: nowrap;
			}

			.site-footer .btn.btn-custom.btn-primary .footer-contact-icon {
				width: 1.5rem;
				height: 1.06875rem;
				margin-right: 0 !important;
			}

			.footer-contact-label-desktop {
				display: none;
			}

			.footer-contact-label-mobile {
				display: inline-flex;
				white-space: nowrap;
			}

			.footer-bottom {
				margin-top: 0;
				padding-top: 2rem;
				border-top: 0.0625rem solid #ddd;
				flex-direction: column;
				align-items: center;
				gap: 2.5rem;
			}

			.footer-bottom > .d-flex {
				width: 100%;
				flex-direction: column;
				align-items: center !important;
				gap: 2.5rem !important;
			}

			.parents-btn {
				width: auto;
				min-width: max-content;
				max-width: 100%;
				margin: 0 auto;
				padding: 1rem 1.625rem;
				gap: 1.1875rem;
				border-radius: 0;
				align-self: center;
			}

			.parents-btn-text {
				flex: 0 0 auto;
				min-width: max-content;
			}

			.parents-btn-icon,
			.parents-btn-icon-img {
				width: 2rem;
				flex-basis: 2rem;
			}

			.parents-btn-text strong {
				font-size: 0.875rem;
				line-height: 1;
				margin-bottom: 0.25rem;
				white-space: nowrap;
			}

			.parents-btn-text span {
				font-size: 0.6875rem;
				line-height: 1.3;
				color: #333;
				white-space: nowrap;
			}

			.parents-btn .ext-icon {
				width: 1rem;
				height: 0.833rem;
			}

			.footer-links-wrapper {
				width: fit-content;
				max-width: 100%;
				margin: 0 auto;
				padding-top: 0;
				display: grid;
				grid-template-columns: repeat(2, minmax(0, 1fr));
				column-gap: 2rem;
				row-gap: 1.5rem;
				align-items: start;
			}

			.footer-links-row {
				display: contents;
			}

			.footer-links-row.mt-1 {
				margin-top: 0 !important;
			}

			.footer-links-row a {
				font-size: 0.8125rem;
				font-weight: 500;
				line-height: 1;
				justify-self: start;
				white-space: normal;
			}

			.footer-links-row a::after {
				display: none;
			}

			.footer-links-row a .ext-icon {
				width: 0.75rem;
				height: 0.625rem;
				margin-left: 0.25rem;
			}

			.footer-copyright {
				width: 100%;
				text-align: center;
				font-size: 0.75rem;
				margin-top: 0;
				align-self: auto;
				display: block;
				clear: both;
			}
		}

/* ==========================================
   About Page: Hero Section
========================================== */
.about-hero-section {
    background-color: #ffffff;
    margin-bottom: 3.125rem;
}

.about-hero-subtitle {
    font-size: 1rem;
    letter-spacing: 0.1em;
    color: var(--primary-blue);
}

.about-hero-title {
    font-size: 3rem;
    color: var(--text-main);
    letter-spacing: 0.05em;
}

.about-hero-visual {
    padding-top: 2.5rem;
}

.about-hero-bg-circle {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: min(50rem, 120vw);
    height: min(50rem, 120vw);
    background-color: #faf9f6;
    border-radius: 50%;
    z-index: 1;
}

.about-hero-left, .about-hero-center, .about-hero-right {
    position: relative;
    z-index: 2;
}

/* Desktop stagger */
@media (min-width: 62rem) {
    .about-hero-left { transform: translateY(-1.875rem); }
    .about-hero-right { transform: translateY(1.875rem); }
}

.about-hero-img-circle {
    width: 100%;
    max-width: 17.5rem;
    height: 17.5rem;
    object-fit: cover;
    border-radius: 50%;
}

.about-hero-img-rounded {
    width: 100%;
    max-width: 26.25rem;
    height: 23.75rem;
    object-fit: cover;
    border-radius: 7.5rem;
}

.hero-badge-absolute {
    position: absolute;
    bottom: -0.625rem;
    right: 0;
}

/* ==========================================
   About Page: Schedule Timeline Tabs
========================================== */
.custom-tabs .nav-link {
    border-radius: 3.125rem;
    padding: 0.75rem 1.875rem;
    font-weight: 700;
    color: var(--text-main);
    background-color: #e8e8e8;
    margin: 0 0.625rem;
    transition: all 0.3s ease;
}

.custom-tabs .nav-link.active {
    background-color: var(--primary-blue);
    color: #fff;
}

.timeline-wrapper {
    position: relative;
    padding-left: 1.25rem;
    margin-top: 1.875rem;
}

/* Timeline Desktop */
@media (min-width: 62rem) {
    .timeline-wrapper {
        padding-left: 0;
    }
    .timeline-dotted-line {
        position: absolute;
        left: 8.75rem; /* Aligned with center of clock icon */
        top: 1.5625rem;
        bottom: 1.5625rem;
        width: 0.0625rem;
        border-right: 0.125rem dotted #bbbbbb;
    }
    .timeline-item {
        display: flex;
        margin-bottom: 1.5625rem;
        position: relative;
        z-index: 2;
    }
    .timeline-time {
        width: 8.75rem;
        flex-shrink: 0;
        text-align: right;
        padding-right: 2.5rem;
        font-weight: 700;
        color: var(--text-main);
        position: relative;
    }
    .timeline-time .clock-icon {
        position: absolute;
        right: -0.625rem;
        top: 0.375rem;
        width: 1.375rem;
        height: 1.375rem;
        background-color: var(--primary-blue);
        border-radius: 50%;
        border: 0.25rem solid #fff;
        box-shadow: 0 0 0 0.0625rem var(--primary-blue);
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .timeline-content {
        flex-grow: 1;
        padding-left: 2.5rem;
        padding-top: 0.3125rem;
    }
    .timeline-content ul {
        list-style: none;
        padding: 0;
        margin: 0;
    }
    .timeline-content li {
        position: relative;
        padding-left: 0.9375rem;
        margin-bottom: 0.5rem;
        color: var(--text-main); /* Use clearer text color */
        font-size: 0.95rem;
    }
    .timeline-content li::before {
        content: '';
        position: absolute;
        left: 0;
        top: 0.625rem;
        width: 0.375rem;
        height: 0.375rem;
        background-color: var(--primary-blue); /* Figma dot color */
        border-radius: 50%;
    }
}

/* Timeline Mobile */
@media (max-width: 61.9375rem) {
    .timeline-item {
        margin-bottom: 1.5625rem;
    }
    .timeline-time {
        font-weight: 700;
        color: var(--primary-blue);
        margin-bottom: 0.9375rem;
        display: flex;
        align-items: center;
        gap: 0.75rem;
    }
    .timeline-time .clock-icon {
        width: 1.375rem;
        height: 1.375rem;
        background-color: var(--primary-blue);
        border-radius: 50%;
        border: 0.25rem solid #fff;
        box-shadow: 0 0 0 0.0625rem var(--primary-blue);
    }
    .timeline-content ul {
        list-style: none; padding: 0; margin: 0;
        border-left: 0.125rem dotted #ddd;
        padding-left: 1.25rem;
        margin-left: 0.6875rem;
    }
    .timeline-content li {
        padding-left: 0.75rem; position:relative; color: var(--text-main); margin-bottom: 0.75rem;
    }
    .timeline-content li::before {
        content: ''; position: absolute; left: 0; top: 0.625rem; width:0.375rem; height:0.375rem; border-radius: 50%; background-color: var(--primary-blue);
    }
}

/* ==========================================
   About Page: Programs
========================================== */
.program-card {
    background-color: #fff;
    border-radius: 1.875rem;
    overflow: hidden;
    box-shadow: 0 0.9375rem 2.1875rem rgba(0,0,0,0.06);
    transition: transform 0.3s;
    height: 100%;
    position: relative;
}
.program-card:hover {
    transform: translateY(-0.3125rem);
}
.program-card img {
    width: 100%;
    height: 15.625rem;
    object-fit: cover;
    border-bottom-left-radius: 1.875rem;
    border-bottom-right-radius: 1.875rem;
}
.program-badge {
    position: absolute;
    top: 1.5625rem;
    left: -0.9375rem;
    padding: 0.625rem 2.1875rem;
    border-radius: 3.125rem;
    color: #fff;
    font-weight: 700;
    z-index: 2;
    box-shadow: 0 0.3125rem 0.9375rem rgba(0,0,0,0.1);
    font-size: 1.1rem;
}
.badge-red { background-color: #e15f5f; }
.badge-yellow { background-color: #eec655; color: var(--text-main); }
.badge-green { background-color: #a0c795; }
.badge-blue { background-color: #88bddd; }

.program-content {
    padding: 2.1875rem 1.875rem;
}

.program-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    column-gap: 1.875rem;
    row-gap: 0.9375rem;
}

.program-list li {
    position: relative;
    padding-left: 1.25rem;
    font-size: 1rem;
    font-weight: 700;
    color: var(--text-main);
}

.program-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.625rem;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
}

.list-red li::before { background-color: #e15f5f; }
.list-yellow li::before { background-color: #eec655; }
.list-green li::before { background-color: #a0c795; }
.list-blue li::before { background-color: #88bddd; }

/* ==========================================
   About Page: Branch Horizontal Cards
========================================== */
.branch-horizontal-card {
    border-radius: 2.5rem !important;
    background-color: #fff;
}
.branch-horizontal-card .card-body {
    padding: 2.5rem !important;
}
@media (min-width: 62rem) {
    .branch-horizontal-card .card-body {
        padding: 3.125rem !important;
    }
}
.branch-info-table th {
    width: 6.25rem;
    padding-left: 0;
    color: var(--primary-blue);
}
.branch-info-table td {
    padding-left: 0;
    color: var(--text-main);
}

/* ==========================================
   About Page: Big CTA Area modifications
========================================== */
.cta-badge-placeholder {
    display: inline-block;
    background-color: #fbe68a;
    border-radius: 1.875rem;
    padding: 0.375rem 1.25rem;
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--text-main);
    transform: rotate(5deg);
    position: absolute;
    top: -1.875rem;
    right: 20%;
}
