/* .about-page {
			background:
				radial-gradient(circle at top left, rgba(188, 226, 232, 0.28) 0%, rgba(255, 255, 255, 0) 26%),
				radial-gradient(circle at 92% 24%, rgba(251, 230, 138, 0.28) 0%, rgba(255, 255, 255, 0) 22%),
				#fff;
		} */

		.about-page,
		.about-page main {
			overflow-x: clip;
		}

		.about-hero {
			position: relative;
			padding: 14.5rem 0 7.5rem;
			overflow: hidden;
		}

		.about-hero::before,
		.about-hero::after {
			content: "";
			position: absolute;
			border-radius: 50%;
			filter: blur(0.25rem);
			pointer-events: none;
		}

		.about-hero::before {
			top: 17.8125rem;
			left: -1.5rem;
			width: 30.9375rem;
			height: 28.125rem;
			background: url('../images/about/about-bg-1.svg') no-repeat center / contain;
			filter: none;
		}

		/* .about-hero::after {
			top: 18rem;
			right: -8rem;
			width: 25rem;
			height: 25rem;
			background: url('../images/about/about-bg-2.svg') no-repeat center / contain;
			filter: none;
		} */

		.about-hero-inner {
			position: relative;
			z-index: 1;
			display: flex;
			flex-direction: column;
			align-items: center;
		}

		.about-hero-decor {
			position: absolute;
			right: 10.2rem;
			top: 7.1rem;
			width: 7.25rem;
			z-index: 3;
			pointer-events: none;
		}

		.about-hero-heading {
			max-width: 46rem;
			margin: 0 auto;
			text-align: center;
			position: relative;
			z-index: 2;
		}

		.about-hero-heading-mobile {
			display: none;
		}

		.about-hero-logo {
			display: block;
			width: min(20.5625rem, 100%);
			margin: 0 auto 3rem;
		}

		.about-hero-copy {
			max-width: 39rem;
			margin: 0 auto;
			font-size: 1rem;
			font-weight: 700;
			line-height: 2.25;
			letter-spacing: 0.05em;
		}

		.about-hero-gallery {
			position: relative;
			display: flex;
			align-items: flex-start;
			gap: clamp(1rem, 3.95vw, 3.5625rem);
			width: calc(100vw + 9.375rem);
			max-width: none;
			margin-left: -4.6875rem;
			padding: 0;
			margin-top: 3.5rem;
		}

		.about-hero-photo {
			position: relative;
			border-radius: 2rem;
			overflow: hidden;
			flex-shrink: 0;
		}

		.about-hero-photo img {
			display: block;
			width: 100%;
			height: 100%;
			object-fit: cover;
		}

		.about-hero-photo-left {
			flex: 0 0 34.65%;
			aspect-ratio: 552 / 432;
			border-radius: 0 2rem 2rem 0;
			overflow: visible;
		}

		.about-hero-photo-left img {
			border-radius: 0 2rem 2rem 0;
		}

		.about-hero-photo-center {
			flex: 0 0 23.35%;
			aspect-ratio: 372 / 432;
			margin-top: clamp(2rem, 5vw, 6rem);
		}

		.about-hero-photo-right {
			flex: 0 0 34.65%;
			aspect-ratio: 552 / 432;
			border-radius: 2rem 0 0 2rem;
		}

		.about-hero-badge {
			position: absolute;
			left: 50%;
			bottom: 0;
			width: 10.25rem;
			height: 10.25rem;
			border-radius: 50%;
			background: #ffea96;
			display: flex;
			align-items: center;
			justify-content: center;
			font-size: 1.0625rem;
			font-weight: 700;
			line-height: 1.5;
			letter-spacing: 0.02em;
			text-align: center;
			transform: translate(-50%, 50%);
			z-index: 2;
		}

		.about-hero-badge-mobile {
			display: none;
		}

		.about-section-shell {
			position: relative;
			padding: 5rem 4rem;
			border-radius: 2.5rem;
			background: #faf8f6;
		}

		.about-section-shell-white {
			background: #fff;
		}

		.about-explain {
			position: relative;
			padding-bottom: 7.5rem;
			overflow: visible;
		}

		.about-explain::after {
			content: "";
			position: absolute;
			right: -4.8125rem;
			top: -8.0625rem;
			width: 27.5625rem;
			height: 28.125rem;
			background: url('../images/about/about-bg-2.svg') no-repeat center / contain;
			pointer-events: none;
		}

		.about-copy-block {
			position: relative;
			z-index: 1;
		}

		.about-copy-block p {
			margin: 0;
			font-size: 1rem;
			line-height: 2.2;
			color: var(--text-main);
		}

		.about-image-card {
			position: relative;
			overflow: hidden;
			border-radius: 2.25rem;
			box-shadow: 0 1rem 2rem rgba(72, 81, 95, 0.1);
		}

		.about-image-card img {
			width: 100%;
			height: 100%;
			object-fit: cover;
			display: block;
		}

		.about-image-card-main {
			aspect-ratio: 560 / 520;
		}

		.target-section {
			background-color: #ffffff;
			position: relative;
			z-index: 1;
		}

		.concept-section {
			background-color: #ffffff;
			position: relative;
		}

		.target-grid {
			display: flex;
			flex-wrap: wrap;
			justify-content: center;
			gap: 1.35rem;
			margin-top: 2.5rem;
		}

		.target-item {
			width: 12rem;
			display: flex;
			justify-content: center;
		}

		.target-card {
			background: #faf8f6;
			border-radius: 50%;
			width: 12rem;
			height: 12rem;
			display: flex;
			flex-direction: column;
			align-items: center;
			justify-content: center;
			text-align: center;
			box-shadow: none;
			padding: 1.25rem;
		}

		.target-card .icon-placeholder {
			width: 3.75rem;
			height: 3.75rem;
			margin-bottom: 0.75rem;
			display: flex;
			align-items: center;
			justify-content: center;
		}

		.target-card p {
			font-weight: 700;
			margin: 0;
			font-size: 0.85rem;
			line-height: 1.5;
			letter-spacing: 0.05em;
		}

		.about-concept {
			padding-bottom: 7.5rem;
			position: relative;
			z-index: 19;
		}

		.about-concept-shell {
			position: relative;
			padding: 5rem 5rem 4.5rem;
			border-radius: 2.5rem;
			background: #faf8f6;
			overflow: visible;
		}

		.about-concept-illust-top,
		.about-concept-illust-bottom {
			position: absolute;
			pointer-events: none;
		}

		.about-concept-illust-top {
			top: -4.75rem;
			right: 1.75rem;
			width: 9rem;
		}

		.about-concept-illust-bottom {
			left: 1.5rem;
			bottom: -2.75rem;
			width: 6.5rem;
		}

		.about-concept .about-copy-block p {
			margin: 0;
			font-size: 1rem;
			line-height: 2.2;
			color: var(--text-main);
		}

		.about-tabs-section {
			padding: 7.5rem 0;
			background: #faf8f6;
		}

		.about-mobile-day-accordion {
			display: none;
		}

		.about-tabs-section .container,
		.about-bottom-cta .container {
			max-width: 76.5rem;
		}

		.about-section-heading-row {
			display: flex;
			align-items: flex-end;
			justify-content: space-between;
			gap: 2rem;
			margin-bottom: 4rem;
		}

		.about-heading-note {
			max-width: 24.25rem;
			margin: 0;
			font-size: 1rem;
			line-height: 1.75;
			color: var(--text-muted);
		}

		.about-tabs-wrapper {
			position: relative;
			z-index: 2;
		}

		.about-tabs-shell {
			border-radius: 0 0 2.5rem 2.5rem;
			background: #fff;
			box-shadow: 0 1.25rem 2.5rem rgba(0, 0, 0, 0.04);
		}

		.about-tabs-nav {
			display: flex;
			background: transparent;
			border-bottom: 0;
			gap: 0.625rem; /* 10px gap between tabs */
			align-items: flex-end; /* Align tabs to the bottom so active tab is taller towards the top */
		}

		.about-tabs-nav .nav-item {
			flex: 1;
		}

		.about-tabs-nav .nav-link {
			border: 0;
			border-radius: 1.25rem 1.25rem 0 0;
			padding: 1.25rem 1rem;
			background: #6bbee4;
			color: #fff;
			font-size: 1.125rem;
			font-weight: 700;
			letter-spacing: 0.06em;
			transition: all 0.3s ease;
			width: 100%;
			text-align: center;
			position: relative;
			display: flex;
			align-items: center;
			justify-content: center;
			/* inactive is shorter */
			height: 4.5rem;
		}

		.about-tabs-nav .nav-link.active {
			background: #fff;
			color: var(--primary-blue);
			/* active is taller */
			height: 5.5rem;
			z-index: 2;
		}

		/* Optional subtle curved shadow or separator if needed, but standard is fine */
		.about-tabs-nav .nav-link.active span {
			border-bottom: 2px solid var(--primary-blue);
			padding-bottom: 0.35rem;
		}

		.about-tabs-pane {
			padding: 5rem 6.25rem;
		}

		.about-mobile-day-card {
			border: 0;
			border-radius: 1.5rem;
			background: #fff;
			overflow: hidden;
			box-shadow: 0 1rem 2rem rgba(0, 0, 0, 0.04);
		}

		.about-mobile-day-card + .about-mobile-day-card {
			margin-top: 1rem;
		}

		.about-mobile-day-button {
			display: flex;
			align-items: center;
			justify-content: space-between;
			gap: 1rem;
			width: 100%;
			padding: 1.5rem 1.5rem 1.25rem;
			border: 0;
			background: transparent !important;
			color: var(--primary-blue);
			font-size: 1.125rem;
			font-weight: 700;
			line-height: 1;
			text-align: left;
			box-shadow: none !important;
		}

		.about-mobile-day-button:focus {
			box-shadow: none;
		}

		.about-mobile-day-button.accordion-button:not(.collapsed) {
			background: #fff !important;
			color: var(--primary-blue) !important;
			/* border-bottom: 1px dashed #d9d9d9; */
		}

		.about-mobile-day-button.collapsed {
			padding-bottom: 1.5rem;
			background: #5fb7e1 !important;
			color: #fff !important;
			border-bottom: 0;
		}

		.about-mobile-day-button.accordion-button.collapsed {
			background: #5fb7e1 !important;
			color: #fff !important;
			border-bottom: 0;
		}

		.about-mobile-day-card .accordion-button,
		.about-mobile-day-card .accordion-button:not(.collapsed),
		.about-mobile-day-card .accordion-button.collapsed {
			box-shadow: none !important;
		}

		.about-mobile-day-card .accordion-button::after {
			display: none !important;
		}

		.about-mobile-day-button::after {
			display: none;
		}

		.about-mobile-day-icon {
			position: relative;
			flex: 0 0 auto;
			width: 1rem;
			height: 1rem;
		}

		.about-mobile-day-icon::before,
		.about-mobile-day-icon::after {
			content: "";
			position: absolute;
			left: 50%;
			top: 50%;
			width: 1rem;
			height: 0.125rem;
			background: currentColor;
			border-radius: 999px;
			transform: translate(-50%, -50%);
		}

		.about-mobile-day-icon::after {
			transform: translate(-50%, -50%) rotate(90deg);
		}

		.about-mobile-day-button:not(.collapsed) .about-mobile-day-icon::after {
			display: none;
		}

		.about-mobile-day-body {
			padding: 0 1.5rem 1.5rem;
		}

		.about-mobile-day-divider {
			margin: 0 0 1.5rem;
			border: 0;
			border-top: 1px dashed #d9d9d9;
			opacity: 1;
		}

		.about-mobile-day-body .about-schedule-title {
			margin-top: 1.5rem;
			font-size: 1.0625rem;
			line-height: 1.5;
		}

		.about-mobile-day-body .about-schedule-line {
			margin-bottom: 1.5rem;
		}

		.about-schedule-image {
			overflow: hidden;
			border-radius: 2.125rem;
			box-shadow: 0 1.25rem 2.5rem rgba(0, 0, 0, 0.06);
		}

		.about-schedule-image img {
			display: block;
			width: 100%;
			aspect-ratio: 54 / 73;
			object-fit: cover;
		}

		.about-schedule-title {
			margin-top: 0.5rem;
			margin-bottom: 1.5rem;
			font-size: 1.25rem;
			font-weight: 700;
			color: var(--primary-blue);
			letter-spacing: 0.05em;
		}

		.about-schedule-line {
			border-top: 1px dotted #bbbbbb;
			margin-bottom: 2rem;
		}
		
		.about-schedule-illust {
			position: absolute;
			right: -1.75rem;
			bottom: -2.75rem;
			width: 8rem;
			z-index: 3;
			filter: drop-shadow(0 0.625rem 1.25rem rgba(166, 124, 82, 0.25));
		}

		.about-timeline {
			display: grid;
			grid-template-columns: repeat(2, minmax(0, 1fr));
			gap: 1.75rem 2.5rem;
		}

		.about-timeline-item {
			display: flex;
			gap: 1rem;
		}

		.about-timeline-time {
			flex: 0 0 4.25rem;
			font-size: 1rem;
			font-weight: 700;
			color: var(--primary-blue);
		}

		.about-timeline-list {
			margin: 0;
			padding-left: 1rem;
			font-size: 0.95rem;
			line-height: 1.9;
		}

		.about-programs {
			position: relative;
			padding: 10rem 0 8.5rem;
			overflow: visible;
		}

		.about-programs::after {
			content: "";
			position: absolute;
			right: -4.375rem;
			top: 23.625rem;
			width: 27.5625rem;
			height: 28.125rem;
			background: url('../images/about/about-bg-4.svg') no-repeat center / contain;
			pointer-events: none;
		}

		.about-programs-shell {
			position: relative;
			z-index: 1;
			max-width: 79.875rem;
			margin: 0 auto;
			padding-top: 0;
			overflow: visible;
		}

		.about-program-decor {
			position: absolute;
			top: -3.625rem;
			left: 3.5rem;
			pointer-events: none;
			z-index: 2;
		}

		.about-program-decor-image {
			display: block;
			width: 15rem;
			height: auto;
		}

		.about-program-heading {
			margin-bottom: 5rem;
			text-align: center;
		}

		.about-program-heading .section-title-wrapper {
			display: flex;
			flex-direction: column;
			align-items: center;
		}

		.about-program-heading .section-title-en,
		.about-program-heading .section-title-jp {
			text-align: center;
		}

		.about-program-note {
			max-width: 57.5rem;
			margin: 2.5rem auto 0;
			font-size: 1rem;
			line-height: 2;
			letter-spacing: 0.04em;
			text-align: center;
		}

		.about-program-grid {
			display: grid;
			grid-template-columns: repeat(2, minmax(0, 1fr));
			column-gap: 3.5rem;
			row-gap: 4rem;
			align-items: start;
		}

		.about-program-card {
			position: relative;
			overflow: visible;
		}

		.about-program-card:nth-child(even) {
			padding-top: 5rem;
		}

		.about-program-media {
			position: relative;
			height: 17.875rem;
			overflow: visible;
			background: #faf8f6;
		}

		.about-program-media img {
			display: block;
			width: 100%;
			height: 100%;
			object-fit: cover;
			border-radius: 2rem;
		}

		.about-program-badge {
			position: absolute;
			left: -1.875rem;
			top: -1.875rem;
			display: flex;
			align-items: center;
			justify-content: center;
			width: 6.25rem;
			height: 6.25rem;
			border-radius: 50%;
			color: #fff;
			font-size: 1.5rem;
			font-weight: 700;
			line-height: 1.5;
			letter-spacing: 0.08em;
			z-index: 2;
		}

		.about-program-list {
			display: grid;
			gap: 1.25rem 5rem;
			margin: 2rem 0 0;
			padding: 0 0 0 0.5rem;
			list-style: none;
		}

		.about-program-list--stacked {
			grid-auto-flow: column;
			grid-template-columns: repeat(2, max-content);
			grid-template-rows: repeat(2, auto);
		}

		.about-program-list--inline {
			grid-template-columns: repeat(2, max-content);
		}

		.about-program-list li {
			position: relative;
			padding-left: 1rem;
			font-size: 1rem;
			font-weight: 700;
			line-height: 1;
			letter-spacing: 0.02em;
			white-space: nowrap;
		}

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

		.about-program-card.is-life .about-program-badge {
			background: #de655c;
		}

		.about-program-card.is-play .about-program-badge {
			background: #eec655;
		}

		.about-program-card.is-exercise .about-program-badge {
			background: #a1c795;
		}

		.about-program-card.is-other .about-program-badge {
			background: #88bddd;
		}

		.about-program-card.is-life .about-program-list li::before {
			background: #de655c;
		}

		.about-program-card.is-play .about-program-list li::before {
			background: #eec655;
		}

		.about-program-card.is-exercise .about-program-list li::before {
			background: #a1c795;
		}

		.about-program-card.is-other .about-program-list li::before {
			background: #88bddd;
		}

		.about-locations {
			position: relative;
			padding: 7.5rem 0 6.5rem;
			background: #faf8f6;
		}

		.about-locations-decor {
			display: none;
		}

		/* .about-locations::before {
			content: "";
			position: absolute;
			right: 10%;
			top: 9rem;
			width: 10rem;
			height: 8.5rem;
			background: url('../images/about_illust_4.png") no-repeat center/contain;
			opacity: 0.95;
			pointer-events: none;
		} */

		.about-location-card {
			position: relative;
			scroll-margin-top: 9rem;
			padding: 3.5rem;
			border-radius: 2.5rem;
			background: #fff;
			box-shadow: 0 1rem 2rem rgba(72, 81, 95, 0.06);
		}

		.about-location-card--decorated {
			overflow: visible;
		}

		.about-location-card-decor {
			position: absolute;
			top: -3rem;
			right: 1.75rem;
			width: 8rem;
			z-index: 2;
			pointer-events: none;
		}

		.about-location-card-decor img {
			display: block;
			width: 100%;
			height: auto;
		}

		.about-location-card .col-lg-5 {
			min-width: 0;
		}

		.about-location-swiper {
			width: 100%;
			max-width: 100%;
			overflow: hidden;
			border-radius: 2rem;
			isolation: isolate;
		}

		.about-location-swiper .swiper-wrapper,
		.about-location-swiper .swiper-slide {
			width: 100%;
		}

		.about-location-swiper .swiper-slide {
			flex-shrink: 0;
			max-width: 100%;
		}

		.about-location-media {
			width: 100%;
			overflow: hidden;
			border-radius: 2rem;
			background: #f4f4f4;
		}

		.about-location-media img {
			display: block;
			width: 100%;
			max-width: 100%;
			aspect-ratio: 500 / 361;
			object-fit: cover;
			border-radius: 2rem;
		}

		.about-location-dots {
			display: flex;
			justify-content: center;
			gap: 0.5rem;
			margin: 1rem 0 2rem;
		}

		.about-location-dots span {
			width: 0.5rem;
			height: 0.5rem;
			border-radius: 50%;
			background: #d9d9d9;
		}

		.about-location-dots span.is-active {
			background: var(--primary-blue);
		}

			.about-location-meta {
				width: 100%;
				border: 0;
			}

			.about-location-meta-row {
				display: grid;
				grid-template-columns: 6.25rem 1fr;
				gap: 1rem;
				padding: 1.2rem 0;
				border-bottom: 1px dashed #ddd;
			}

			.about-location-meta-row + .about-location-meta-row {
				border-top: 0;
			}

				.about-location-meta-label {
			width: 6.25rem;
			flex-shrink: 0;
			font-weight: 700;
			color: var(--primary-blue);
		}

		.about-location-meta-value {
			font-size: 1rem;
			font-weight: 700;
			line-height: 1.75;
		}

		.about-location-brand {
			margin-bottom: 0.25rem;
			color: #666;
			font-size: 1.125rem;
			font-weight: 700;
		}

		.about-location-name {
			margin-bottom: 1.75rem;
			font-size: clamp(2rem, 3.5vw, 2.75rem);
			font-weight: 900;
			line-height: 1.2;
		}

		.about-location-area {
			display: inline-flex;
			align-items: center;
			gap: 0.75rem;
			margin-bottom: 2rem;
			color: var(--primary-blue);
			font-size: 1rem;
			font-weight: 700;
			line-height: 1.75;
		}

		.about-location-area-icon {
			width: 1.25rem;
			height: 1.25rem;
			flex: 0 0 auto;
		}

		.about-location-copy {
			font-size: 1rem;
			line-height: 2.1;
			color: var(--text-main);
		}

		.about-location-copy-mobile {
			display: none;
		}

		.about-bottom-action-label-mobile {
			display: none;
		}

		.about-bottom-action-label-desktop {
			display: inline;
		}

		@media (min-width: 768px) {
			.about-bottom-action-label-mobile {
				display: none;
			}

			.about-bottom-action-label-desktop {
				display: inline;
			}
		}

		@media (min-width: 992px) {
			.about-location-card .row {
				--bs-gutter-x: 4.5rem;
			}

			.about-location-card .col-lg-5 {
				flex: 0 0 31.25rem;
				width: 31.25rem;
				max-width: 31.25rem;
			}

			.about-location-card .col-lg-7 {
				flex: 1 1 0;
				width: auto;
				max-width: none;
			}

			.about-location-meta {
				max-width: 31.25rem;
			}
		}

		.about-bottom-cta {
			padding: 6.5rem 0 7.5rem;
			background: #fff;
		}

		.about-bottom-cta-panel {
			position: relative;
			overflow: visible;
			padding: 4.5rem 6.25rem 3.75rem;
			border-radius: 3rem;
			background: #faf8f6;
		}

		.about-bottom-cta-decor {
			position: absolute;
			inset: 0;
			z-index: 1;
			pointer-events: none;
		}

		.about-bottom-cta-bag,
		.about-bottom-cta-figure {
			position: absolute;
			pointer-events: none;
		}

		.about-bottom-cta-bubbles {
			position: absolute;
			top: 1rem;
			right: 8.6rem;
			z-index: 2;
			pointer-events: none;
		}

		.about-bottom-cta-bubble {
			display: inline-flex;
			align-items: center;
			justify-content: center;
			padding: 0.45rem 0.9rem;
			border-radius: 999px;
			background: #ffea96;
			color: #333;
			font-size: 0.75rem;
			font-weight: 700;
			line-height: 1;
			white-space: nowrap;
		}

		.about-bottom-cta-bubble + .about-bottom-cta-bubble {
			margin-top: 0.35rem;
			margin-left: 2.8rem;
		}

		.about-bottom-cta-bag {
			left: 1rem;
			top: -2rem;
			width: 8.75rem;
		}

		.about-bottom-cta-figure {
			right: 2.5rem;
			top: 1.65rem;
			width: min(16.5rem, 24vw);
		}

		.about-bottom-cta-content {
			position: relative;
			z-index: 2;
			max-width: 50rem;
			margin: 0 auto;
			text-align: center;
		}

		.about-bottom-cta h2 {
			margin-bottom: 2rem;
			font-size: clamp(1.75rem, 1.4vw, 2.125rem);
			font-weight: 900;
			line-height: 1.25;
			letter-spacing: 0.04em;
		}

		.about-bottom-cta p {
			max-width: 39rem;
			margin: 0 auto 4rem;
			font-size: 1.125rem;
			line-height: 2.45;
			letter-spacing: 0.04em;
		}

		.about-bottom-actions {
			display: grid;
			grid-template-columns: repeat(2, minmax(0, 1fr));
			gap: 3rem;
			max-width: 100%;
			margin: 0 auto;
			position: relative;
			z-index: 2;
			align-items: stretch;
		}

		.about-bottom-actions .btn {
			display: flex;
			align-items: center;
			justify-content: center;
			gap: 1.5rem;
			min-width: 0;
			width: 100%;
			min-height: 8rem;
			padding: 1.5rem 2.5rem;
			border-radius: 1.75rem;
			font-size: 1.35rem;
			font-weight: 900;
			line-height: 1.2;
			letter-spacing: 0.05em;
			box-shadow: none;
		}

		.about-bottom-actions .btn:hover {
			transform: translateY(-0.125rem);
		}

		.about-bottom-actions .btn img,
		.about-bottom-actions .btn svg {
			width: 1.875rem;
			height: 1.875rem;
			flex: 0 0 auto;
		}

		.about-bottom-action-icon {
			display: inline-flex;
			align-items: center;
			justify-content: center;
			width: 4.5rem;
			height: 4.5rem;
			border-radius: 50%;
			background: #fff;
			box-shadow: 0 0.5rem 1.25rem rgba(0, 0, 0, 0.08);
		}

		.about-bottom-action-label {
			display: inline-flex;
			align-items: center;
			justify-content: center;
			min-width: 0;
			text-align: center;
		}

		.about-btn-accent {
			background: #dd5c5c;
			border-color: #dd5c5c;
			color: #fff;
		}

		.about-btn-accent:hover {
			background: #c94f4f;
			border-color: #c94f4f;
			color: #fff;
		}

		@media (max-width: 1199.98px) {
			.about-tabs-pane,
			.about-location-card,
			.about-concept-shell,
			.about-section-shell {
				padding: 3rem;
			}

			.about-bottom-cta-panel {
				padding: 4rem 4.25rem 3rem;
			}

			.about-bottom-cta-bag {
				left: 2rem;
				width: 7rem;
			}

			.about-bottom-cta-figure {
				width: min(15rem, 24vw);
				right: 1.25rem;
			}

			.about-bottom-actions .btn {
				font-size: 1.5rem;
				min-height: 6.75rem;
			}
		}

		@media (max-width: 991.98px) {
			.about-hero {
				padding: 9rem 0 4rem;
			}

			.about-hero-decor {
				right: 4rem;
				top: 6rem;
				width: 5.5rem;
			}

			.about-hero-heading {
				max-width: 100%;
				margin-bottom: 2.5rem;
			}

			.about-hero-gallery {
				gap: 1rem;
				width: calc(100vw - 2rem);
				margin-left: calc(50% - 50vw + 1rem);
			}

			.about-hero-photo-left,
			.about-hero-photo-center,
			.about-hero-photo-right {
				flex-basis: auto;
			}

			.about-hero-photo-center {
				margin-top: 2rem;
			}

			.about-program-grid,
			.about-timeline {
				grid-template-columns: repeat(2, minmax(0, 1fr));
			}

			.about-programs-shell {
				padding-top: 1.5rem;
			}

			.about-program-decor {
				left: 1rem;
				transform: scale(0.85);
				transform-origin: top left;
			}

			.about-program-decor-image {
				width: 15rem;
			}

			.about-program-heading {
				margin-bottom: 4rem;
			}

			.about-program-card:nth-child(even) {
				padding-top: 3rem;
			}

			.about-program-list,
			.about-program-list--stacked,
			.about-program-list--inline {
				grid-template-columns: 1fr;
				grid-template-rows: none;
				grid-auto-flow: row;
				gap: 1rem;
			}

			.about-section-heading-row {
				flex-direction: column;
				align-items: flex-start;
				margin-bottom: 2.5rem;
			}

			.about-bottom-cta-panel {
				padding: 8rem 3rem 3rem;
			}

			.about-bottom-cta-bag {
				left: 2rem;
				top: 1.5rem;
				width: 5rem;
			}

			.about-bottom-cta-figure {
				top: 1.5rem;
				right: 1.5rem;
				width: 10.5rem;
			}

			.about-bottom-cta-bubbles {
				right: 6.5rem;
				top: 1.2rem;
			}

			.about-bottom-cta-content {
				max-width: 41rem;
			}

			.about-bottom-actions {
				grid-template-columns: 1fr;
				gap: 1rem;
			}

			.about-bottom-actions .btn {
				font-size: 1.25rem;
				padding: 1.25rem 1.5rem;
				gap: 1rem;
			}

			.about-bottom-action-icon {
				width: 3.5rem;
				height: 3.5rem;
			}

			.about-bottom-actions .btn img,
			.about-bottom-actions .btn svg {
				width: 1.5rem;
				height: 1.5rem;
			}
		}

		@media (max-width: 767.98px) {
			.about-hero {
				padding: 10.0625rem 0 4.9375rem;
				overflow-x: clip;
				overflow-y: visible;
			}

			.about-hero::before {
				top: 3.6875rem;
				left: -3.5938rem;
				width: 15.4688rem;
				height: 14.0625rem;
			}

			.about-hero-decor {
				display: block;
				top: -2.5rem;
				right: 1.75rem;
				width: 4.5rem;
				z-index: 1;
			}

			.about-hero-heading-desktop {
				display: none;
			}

			.about-hero-heading-mobile {
				display: flex;
				flex-direction: column;
				align-items: center;
				gap: 1rem;
				width: 100%;
				padding: 0;
			}

			.about-hero-mobile-icon {
				display: block;
				width: 7.5rem;
				height: auto;
				margin-bottom: 0.0625rem;
			}

			.about-hero-mobile-subtitle {
				margin: 0;
				color: #5fb7e1;
				font-size: 1.2rem;
				font-weight: 700;
				line-height: 1.302;
				letter-spacing: 0;
				text-align: center;
			}

			.about-hero-mobile-title {
				margin: 0;
				color: #333;
				font-size: 2.4rem;
				font-weight: 700;
				line-height: 1;
				letter-spacing: 0;
			}

			.about-hero-copy,
			.about-copy-block p,
			.about-heading-note,
			.about-location-copy,
			.about-bottom-cta p {
				font-size: 0.95rem;
				line-height: 2;
			}

			.about-hero-copy {
				max-width: none;
				width: 100%;
				font-size: 1rem;
				font-weight: 700;
				line-height: 2.5;
				letter-spacing: 0;
				text-align: left;
			}

			.about-hero-inner {
				background-image: none;
			}

			.about-hero-gallery {
				position: relative;
				display: block;
				width: 100%;
				max-width: 100%;
				min-height: 25.5rem;
				margin: 2.5rem auto 0;
				overflow: hidden;
			}

			.about-hero-badge-desktop {
				display: none;
			}

			.about-hero-photo-left,
			.about-hero-photo-center,
			.about-hero-photo-right {
				position: absolute;
				margin-top: 0;
				border-radius: 1rem;
				overflow: hidden;
				background: #faf8f6;
			}

			.about-hero-photo-left {
				left: -4rem;
				top: 5.0947rem;
				width: 15.95rem;
				height: 12.4826rem;
				border-radius: 0.9246rem;
			}

			.about-hero-photo-center {
				        left: auto;
        top: 0.0272rem;
        width: 11.875rem;
        height: 13.7903rem;
        border-radius: 0.8151rem;
        right: -10px;
			}

			.about-hero-photo-right {
				        left: auto;
        top: 15rem;
        width: 16.0604rem;
        height: 11.0043rem;
        border-radius: 0.8151rem;
        right: 0;
			}

			.about-hero-badge-mobile {
				display: flex;
				left: 2.375rem;
				top: 0.0272rem;
				bottom: auto;
				width: 6.25rem;
				height: 6.25rem;
				font-size: 0.7083rem;
				font-weight: 700;
				line-height: 1.5;
				letter-spacing: 0;
				padding: 0.25rem;
				box-sizing: border-box;
				transform: none;
				border-radius: 50%;
			}

			.about-section-shell,
			.about-concept-shell,
			.about-tabs-pane,
			.about-location-card {
				padding: 2rem 1.5rem;
				border-radius: 2rem;
			}

			.about-explain::after {
				right: -3.5rem;
				top: -3.5rem;
				width: 12rem;
				height: 12rem;
			}

			.about-explain,
			.target-section,
			.about-concept,
			.about-tabs-section,
			.about-programs,
			.about-locations,
			.about-bottom-cta {
				padding-top: 3.75rem;
				padding-bottom: 3.75rem;
				overflow-x: clip;
			}

			.about-explain {
				padding-top: 5rem;
			}

			.about-explain .container {
				padding-left: 0;
				padding-right: 0;
			}

			.about-explain .about-section-shell {
				padding: 0 1.5rem;
				background: transparent;
				border-radius: 0;
			}

			.about-explain .row {
				--bs-gutter-x: 0;
				--bs-gutter-y: 2.5rem;
			}

			.about-explain .section-title-wrapper {
				margin-bottom: 1.5rem !important;
			}

			.about-explain .section-title-en {
				font-size: 1rem;
				line-height: 1;
			}

			.about-explain .section-title-jp {
				font-size: 1.625rem;
				line-height: 1.5;
			}

			.about-explain .about-copy-block p {
				font-size: 1rem;
				line-height: 2;
			}

			.about-explain .about-image-card-main {
				aspect-ratio: 327 / 236.167;
				border-radius: 1.3125rem;
				box-shadow: none;
			}

			.about-concept .section-title-jp {
				font-size: 1.625rem;
				line-height: 1.5;
			}

			.about-concept .about-copy-block p {
				font-size: 0.875rem;
				line-height: 2;
			}

			.about-concept-illust-top {
				position: absolute;
				display: block;
				top: -1.125rem;
				right: 0.875rem;
				width: 4.8125rem;
				margin: 0;
			}

			.about-concept-illust-bottom {
				position: absolute;
				display: block;
				top: 5.625rem;
				right: 2.875rem;
				left: auto;
				width: 4.125rem;
				margin: 0;
			}

			.about-program-grid,
			.about-timeline {
				grid-template-columns: 1fr;
			}

			.about-target-decor {
				left: auto;
				right: 1.5rem;
				top: -6.75rem;
				width: 6.5rem;
			}

			.about-programs {
				padding-top: 5rem;
				padding-bottom: 5rem;
			}

			.about-programs::after {
				right: -9rem;
				top: 22rem;
				width: 20rem;
				height: 20rem;
			}

			.about-programs-shell {
				padding-top: 0;
			}

			.about-program-decor {
				/* top: -1.8125rem; */
				top: -6.8125rem;
				right: -0.5rem;
				left: auto;
				width: 8.375rem;
				height: auto;
				transform: none;
			}

			.about-program-decor-image {
				width: 100%;
				height: auto;
			}

			.about-program-heading {
				margin-bottom: 5rem;
				text-align: left;
			}

			.about-program-heading .section-title-wrapper {
				align-items: flex-start;
			}

			.about-program-heading .section-title-en,
			.about-program-heading .section-title-jp {
				text-align: left;
			}

			.about-program-heading .section-title-en {
				font-size: 1rem;
				gap: 0.5rem;
			}

			.about-program-heading .section-title-en::before {
				width: 0.5rem;
				height: 0.5rem;
			}

			.about-program-heading .section-title-jp {
				margin-top: 1rem;
				font-size: 1.625rem;
				line-height: 1.5;
			}

			.about-program-note {
				max-width: none;
				margin-top: 2.5rem;
				font-size: 0.875rem;
				line-height: 2;
				letter-spacing: 0;
				text-align: left;
			}

			.about-program-note p {
				margin: 0;
			}

			.about-program-grid {
				row-gap: 4rem;
			}

			.about-program-card:nth-child(even) {
				padding-top: 0;
			}

			.about-program-media {
				height: auto;
				aspect-ratio: 592 / 286;
				overflow: visible;
				border-radius: 1.1048rem;
				background: #fff;
			}

			.about-program-media img {
				border-radius: 1.1048rem;
			}

			.about-program-badge {
				width: 4.6875rem;
				height: 4.6875rem;
				left: -1.0938rem;
				top: -1.725rem;
				font-size: 1.125rem;
				letter-spacing: 0;
			}

			.about-program-list {
				margin-top: 1.5rem;
				padding-left: 0.5rem;
				gap: 1.25rem;
			}

			.about-program-list--stacked,
			.about-program-list--inline {
				grid-auto-flow: row;
				grid-template-columns: 1fr;
				grid-template-rows: none;
			}

			.about-program-list li {
				font-size: 1rem;
				line-height: 1;
				white-space: normal;
			}

			.target-grid {
				--target-sp-grid-width: min(calc(100vw - 2.5rem), 22.6rem);
				--target-sp-gap: 0.5rem;
				--target-sp-card-size: calc((var(--target-sp-grid-width) - (var(--target-sp-gap) * 2)) / 3);
				display: grid;
				grid-template-columns: repeat(6, minmax(0, 1fr));
				width: var(--target-sp-grid-width);
				margin: 1.5rem auto 0;
				column-gap: var(--target-sp-gap);
				row-gap: 0.1875rem;
				justify-items: stretch;
				align-items: start;
			}

			.target-card {
				width: var(--target-sp-card-size);
				height: var(--target-sp-card-size);
				flex: 0 0 auto;
				padding: calc(var(--target-sp-card-size) * 0.08);
			}

			.target-card p {
				font-size: calc(var(--target-sp-card-size) * 0.0833);
				line-height: 1.7;
				letter-spacing: 0.04em;
			}

			.target-card .icon-placeholder {
				width: calc(var(--target-sp-card-size) * 0.2512);
				height: calc(var(--target-sp-card-size) * 0.2864);
				margin-bottom: calc(var(--target-sp-card-size) * 0.0729);
			}

			.target-item {
				width: var(--target-sp-card-size);
				height: var(--target-sp-card-size);
				flex: 0 0 auto;
				display: flex;
				justify-content: center;
			}

			.target-item:nth-child(1) {
				grid-column: 1 / span 2;
				padding-top: 0.75rem;
			}

			.target-item:nth-child(2) {
				grid-column: 3 / span 2;
				transform: translateY(-0.75rem);
			}

			.target-item:nth-child(3) {
				grid-column: 5 / span 2;
				padding-top: 0.75rem;
			}

			.target-item:nth-child(4) {
				grid-column: 2 / span 2;
			}

			.target-item:nth-child(5) {
				grid-column: 4 / span 2;
			}

			.about-tabs-nav,
			.about-tabs-shell {
				display: none;
			}

			.about-mobile-day-accordion {
				display: block;
			}

					.about-tabs-nav .nav-link {
				padding: 1rem 0.5rem;
				font-size: 0.85rem;
			}

			.about-schedule-image img {
				aspect-ratio: 4/3;
			}
			.about-schedule-illust {
				width: 5rem;
				right: -0.5rem;
				bottom: -1.5rem;
			}

			.about-location-meta-row {
				grid-template-columns: 1fr;
				gap: 0.35rem;
			}

			.about-location-copy-desktop {
				display: none;
			}

			.about-location-copy-mobile {
				display: block;
				margin-top: 1.75rem;
			}

			.about-location-name {
				font-size: 2rem;
			}

			.about-location-area {
				align-items: flex-start;
			}

			.about-bottom-cta {
				padding-top: 3.75rem;
			}

			.about-bottom-cta-panel {
				padding: 6.5rem 1.5rem 2rem;
				border-radius: 2rem;
			}

			.about-heading-note {
				max-width: 100%;
				margin-left: 0;
			}

			.about-mobile-day-card {
				border-radius: 1rem;
			}

			.about-mobile-day-button {
				padding: 1.5rem;
				font-size: 1.125rem;
				line-height: 1;
				border-radius: 1rem;
			}

			.about-mobile-day-body {
				padding: 0 1.5rem 1rem;
			}

			.about-mobile-day-body .about-schedule-title {
				margin-top: 1.5rem;
				margin-bottom: 1rem;
				font-size: 1.0625rem;
				line-height: 1.5;
			}

			.about-mobile-day-body .about-schedule-line {
				margin-bottom: 1.25rem;
			}

			.about-location-card {
				padding: 1.5rem;
				border-radius: 1.5rem;
			}

			.about-locations-decor {
				position: absolute;
				top: -2.1556rem;
				right: 1rem;
				display: block;
				width: 7.5rem;
				z-index: 2;
				pointer-events: none;
			}

			.about-locations-decor img {
				display: block;
				width: 100%;
				height: auto;
			}

			.about-location-card-decor {
				display: none;
			}

			.about-location-card .row {
				--bs-gutter-x: 0;
				--bs-gutter-y: 1.5rem;
			}

			.about-location-brand {
				font-size: 1rem;
			}

			.about-location-name {
				margin-bottom: 1rem;
				font-size: 1.375rem;
			}

			.about-location-area {
				margin-bottom: 0;
				font-size: 0.875rem;
				line-height: 1.6;
			}

			.about-location-media img {
				aspect-ratio: 279 / 201.5;
			}

			.about-location-swiper {
				width: 100%;
				/* max-width: 17.4375rem; */
				margin: 0 auto;
				border-radius: 1rem;
			}

			.about-location-card .col-lg-5.order-lg-first {
				display: flex;
				flex-direction: column;
			}

			.about-location-swiper .swiper-wrapper {
				align-items: stretch;
			}

			.about-location-swiper .swiper-slide {
				width: 100% !important;
				max-width: 100%;
			}

			.about-location-media {
				border-radius: 1rem;
			}

			.about-location-media img {
				width: 100% !important;
				height: auto;
				border-radius: 1rem;
			}

			.about-location-swiper .swiper-pagination {
				margin-top: 0.75rem;
			}

			.about-location-copy-mobile {
				order: 2;
				margin-top: 1.75rem;
			}

			.about-location-meta {
				order: 3;
				margin-top: 1.75rem;
			}

			.about-bottom-cta-panel {
				display: flex;
				flex-direction: column;
				padding: 2rem 1rem 1rem;
				border-radius: 1.5rem;
			}

			.about-bottom-cta-content {
				order: 1;
				max-width: 18.4375rem;
				padding-top: 0;
			}

			.about-bottom-cta-decor {
				position: relative;
				inset: auto;
				order: 2;
				height: 11.5rem;
				margin-top: 2rem;
				margin-bottom: 1.5rem;
			}

			.about-bottom-cta-bag {
				left: 1.75rem;
				top: 1.5rem;
				bottom: auto;
				width: 5.5rem;
			}

			.about-bottom-cta-bubble {
				padding: 0.45rem 1rem;
				font-size: 0.875rem;
				border-radius: 999rem;
			}

			.about-bottom-cta-bubble + .about-bottom-cta-bubble {
				margin-top: -0.125rem;
				margin-left: 3rem;
			}

			.about-bottom-cta-figure {
				right: 2.25rem;
				top: 2rem;
				bottom: auto;
				width: min(11rem, 46.93vw);
				margin: 0;
			}

			.about-bottom-cta h2 {
				margin-bottom: 1rem;
				font-size: 1.75rem;
				line-height: 1.35;
			}

			.about-bottom-cta p {
				margin-bottom: 0;
				font-size: 0.875rem;
				line-height: 2;
			}

			.about-bottom-actions {
				order: 3;
				grid-template-columns: 1fr;
				gap: 1rem;
				margin-top: 0;
				width: 100%;
				max-width: none;
			}

			.about-bottom-actions .btn {
				width: 100%;
				min-height: 4.125rem;
				padding: 0.875rem 1rem;
				font-size: 1rem;
				border-radius: 0.75rem;
				gap: 0.75rem;
				font-weight: 700;
				letter-spacing: 0;
			}

			.about-bottom-action-label-desktop {
				display: none;
			}

			.about-bottom-action-label-mobile {
				display: inline;
			}

			.about-bottom-action-icon {
				width: 2rem;
				height: 2rem;
			}

			.about-bottom-actions .btn img,
			.about-bottom-actions .btn svg {
				width: 0.9375rem;
				height: 0.9375rem;
			}

			.section-title-jp {
				font-size: 1.5rem;
			}

			.about-image-card-main {
				aspect-ratio: 4 / 3;
			}
		}
	
		@media (min-width: 62rem) {
			.target-grid {
				gap: 1.35rem;
				padding: 2.5rem 0 0;
			}

			.target-item:nth-child(even) {
				transform: translateY(-2.5rem);
			}

			.target-item:nth-child(odd) {
				transform: translateY(0);
			}
		}

		@media (min-width: 47.9375rem) and (max-width: 61.9375rem) {
			.target-card {
				width: 10rem;
				height: 10rem;
			}

			.target-card p {
				font-size: 0.8rem;
			}
		}
			
		.about-location-swiper .swiper-pagination {
			position: static;
			margin-top: 1rem;
		}
		.about-location-swiper .swiper-pagination-bullet {
			background: #cccccc;
			opacity: 1;
			transition: all 0.2s;
			width: 0.5rem;
			height: 0.5rem;
			margin: 0 0.25rem !important;
		}
		.about-location-swiper .swiper-pagination-bullet-active {
			background: var(--primary-blue);
			width: 0.5rem;
			height: 0.5rem;
		}
