@charset "UTF-8";

/* ------------------------------------------- base */

html {
	scroll-behavior: smooth;
}

/* ------------------------------------------- base */
/* scriptと連動フォント */
body {
	font-family: "FOT-筑紫A丸ゴシック Std B";
}

.service-nav__label,
.sp-nav__label,
.mv-title,
.care-link__intro-lead,
.events-controls__toggle-text,
.btn-label,
.about-title__label,
.section-heading__text,
.section-title__text,
.facility-search-step__label,
.facility-search-step__label-em,
.childcare-location-pill span,
.common-heading-pink__title,
.childcare-event__month-badge,
.childcare-greeting__name {
	font-family: "FOT-筑紫A丸ゴシック Std B" !important;
}

span,
p,
.news-item__title,
.events-header__all-btn,
.news-category__list,
.news-all-btn,
.about-heading,
.page-hero__kicker,
.site-footer__service-text,
.site-footer__nav-list,
.page-hero__summary-list,
.childcare-tabs,
.clinic-filter-buttons,
.childcare-owner-pill,
.childcare-admission-toggle__btn,
.section-lead,
.section-content,
.facility-search-select,
.fee-table,
.cta-title,
.childcare-facility-detail,
.org-card,
.fontsize-controller,
.clinic-info,
.single-nav,
.benefit-card__title,
.job-tabs,
.job-card__list,
.form-label,
.btn-link-green {
	font-family:
		"FP-ヒラギノ角ゴ ProN W6",
		"Noto Sans JP",
		"Hiragino Kaku Gothic ProN",
		"Yu Gothic",
		"Meiryo",
		sans-serif;
}

.childcare-greeting__body>.common-heading-pink__title {
	font-family:
		"FP-ヒラギノ角ゴ ProN W6",
		"Noto Sans JP",
		"Hiragino Kaku Gothic ProN",
		"Yu Gothic",
		"Meiryo",
		sans-serif !important;
}




/* 

.service-nav__label,
.sp-nav__label,
.mv-title,
.care-link__intro-lead,
.events-controls__toggle-text,
.btn-label,
.about-title__label,
.section-heading__text,
.section-title__text,
.facility-search-step__label,
.facility-search-step__label-em,
.childcare-location-pill span,
.common-heading-pink__title,
.childcare-event__month-badge,
.childcare-greeting__name {
	font-family: "FOT-筑紫A丸ゴシック Std B" !important;
}


span,
p,
.news-item__title,
.events-header__all-btn,
.news-category__list,
.news-all-btn,
.about-heading,
.page-hero__kicker,
.site-footer__service-text,
.site-footer__nav-list,
.page-hero__summary-list,
.childcare-tabs,
.clinic-filter-buttons,
.childcare-owner-pill,
.childcare-admission-toggle__btn,
.section-lead,
.section-content,
.facility-search-select,
.fee-table,
.cta-title,
.childcare-facility-detail,
.org-card,
.fontsize-controller,
.clinic-info,
.single-nav,
.benefit-card__title,
.job-tabs,
.job-card__list,
.form-label,
.btn-link-green {
	font-family: "FP-ヒラギノ角ゴ ProN W6";
}

.childcare-greeting__body>.common-heading-pink__title {
	font-family: "FP-ヒラギノ角ゴ ProN W6" !important;
} */







/* =============================
   共通変数（色・文字サイズ）
============================= */
:root {
	/* ★ デフォルト＝大（24px） */
	--fs-base: 24px;

	/* 小・中・大（倍率ベース）——既存仕様残し */
	--fs-small: calc(var(--fs-base) * 0.9);
	--fs-medium: var(--fs-base);
	--fs-large: calc(var(--fs-base) * 1.15);

	/* カラー */
	--basepink: #fe8ea4;
	--color-darkgreen: #0b8a3d;
	--border-gray: #b2b2b2;
	--palepink: #FEF9F9;
	--palegreen: #D7F6E3;
	--palegreen2: #F3FAF6;

	/* フォントカラー */
	--color-mono: #333333;
	--color-white: #ffffff;
	--color-pink: #C62D6A;

	/* 見出し線カラー */
	--border-pink: #F2DBE4;
}

/* =====================================
   JS 切り替え：小 / 中 / 大
   最小文字＝本文 pタグ が 16/20/24px
===================================== */

/* 小（16px） */
:root[data-font-size="small"] {
	--fs-base: 16px;
}

/* 中（20px） */
:root[data-font-size="medium"] {
	--fs-base: 20px;
}

/* 大（24px：デフォルト） */
:root[data-font-size="large"] {
	--fs-base: 24px;
}

/* 本文 */
p {
	font-size: var(--fs-base);
	line-height: 1.8;
}

a {
	text-decoration: none;
}


body {
	margin-top: 88px !important;
}

@media (max-width: 960px) {
	body {
		margin-top: 60px !important;
	}
}

h3 {
	text-align: left;
	font-weight: 700 !important;
	line-height: 1.8;
}


/* ------------------------------------------- header */
/* =============================
   ベース
============================= */
.global-header {
	background: var(--color-white);
	font-size: var(--fs-medium);
	width: 100%;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 10010;
}

.global-header__inner {
	width: 100%;
	max-width: 1250px;
	margin: 0 auto;
	padding: 0;
	display: flex;
	align-items: center;
	gap: 20px;
	/* ロゴ〜サービス〜右ブロックの基本余白 */
	min-height: 88px;
	height: auto;
}

/* =============================
   ロゴ
============================= */
.global-header__logo {
	flex: 0 0 auto;
	align-self: center;
	margin-right: -10px;
	/* gap を少し打ち消してロゴとアイコンを近づける */
}

.global-header__logo img {
	display: block;
	height: 48px;
	width: auto;
}

@media (max-width: 960px) {
	.global-header__logo {
		padding-top: 5px;
	}
}

/* =============================
   左：メインメニュー（ピンクの丸アイコン）
============================= */

/* nav 全体 */
.service-nav {
	position: relative;
	flex: 1 1 auto;
	display: flex;
	justify-content: center;
	align-self: flex-start;
	padding-top: 5px;
}

/* 上の太いピンクライン */
.service-nav::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 5px;
	background: var(--basepink);
}

/* 並び全体（UL） */
.service-nav__list {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	margin: 0;
	padding: 6px 0 0;
	list-style: none;
	width: 100%;
}

/* 各メニュー項目（LI） */
.service-nav__item {
	flex: 1 1 0;
	text-align: center;
	padding: 0;
}

/* 保育園・学童保育だけ幅調整 */
.service-nav__item--wide {
	flex: 1.3;
	/* 通常より30%ほど広く */
}

/* スマホは全て100%なので変更不要だが念のため */
@media (max-width: 960px) {
	.service-nav__item--wide {
		flex: 1 1 100%;
	}
}

/* アイコンブロック用のラッパー */
.service-nav__unit {
	position: relative;
	padding: 0;
}

/* 2つ目以降のアイコンの左に縦線を表示（アイコンブロックだけ） */
.service-nav__item+.service-nav__item .service-nav__unit::before {
	content: "";
	position: absolute;
	left: 0;
	top: 6px;
	/* アイコンの上位置に合わせる */
	height: 40px;
	/* アイコンの高さに合わせる */
	width: 1px;
	background: var(--border-gray);
}

/* リンク全体 */
.service-nav__link {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	text-decoration: none;
	color: var(--color-mono);
	gap: 10px;
}

/* 丸アイコン（コンパクト＋ちゃんと丸） */
.service-nav__icon {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--basepink);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 2px;
}

/* アイコン画像も縮小 */
.service-nav__icon img {
	display: block;
	max-width: 55%;
	height: auto;
}

/* 文字サイズも小さめに */
.service-nav__label {
	font-size: calc(var(--fs-medium) * 0.75);
	line-height: 1.2;
}

/* =============================
   右：サブメニュー + 電話
============================= */
.global-nav {
	display: flex;
}

.global-nav__list {
	display: flex;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* 右側全体（サブメニュー＋電話＋お問い合わせ） */
.global-header__right {
	display: flex;
	align-items: center;
	align-self: center;
	margin-left: auto;
	/* 右端に寄せる */
}

/* サブメニュー＋電話をまとめて中央寄せするラッパー */
.global-header__center-group {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
	flex: 1 1 auto;
}

/* --- サブメニュー（私たちについて／求人情報） --- */
.global-nav--sub {
	position: relative;
	margin-right: 0;
	display: flex;
	justify-content: center;
}

/* 上のピンクライン（少し短め） */
.global-nav--sub::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 4px;
	background: var(--basepink);
}

.global-nav--sub .global-nav__list {
	padding: 14px 0 8px;
	display: flex;
	justify-content: center;
}

/* サブメニューの各項目の間隔 */
.global-nav--sub .global-nav__item+.global-nav__item {
	margin-left: 32px;
}

/* サブメニューのリンク（横並び＋横書き） */
.global-nav--sub .global-nav__link {
	display: inline-flex;
	flex-direction: row;
	align-items: center;
	justify-content: center;
	padding: 0;
}

.global-nav__link--text {
	text-decoration: none;
	color: var(--color-mono);
	font-size: calc(var(--fs-medium) * 0.93);
	writing-mode: horizontal-tb !important;
	white-space: nowrap;
}

/* --- 電話ブロック --- */
.global-header__tel-block {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	margin-right: 0;
	padding-left: 0;
}

.global-header__tel-label {
	margin: 0 0 6px;
	font-size: calc(var(--fs-medium) * 0.78);
	color: var(--color-white);
	text-align: center;
	background: var(--basepink);
	padding: 3px 16px;
	border-radius: 20px;
}

.global-header__tel-number {
	margin: 0;
	font-size: calc(var(--fs-medium) * 1.2);
	font-weight: bold;
	display: flex;
	align-items: center;
	gap: 6px;
}

.global-header__tel-number a {
	color: var(--color-mono);
	text-decoration: none;
}

.global-header__tel-icon {
	font-size: 18px;
}

/* =============================
   緑のお問い合わせボタン（PC）
============================= */
.global-header__contact {
	margin-left: 32px;
	flex: 0 0 auto;
}

.contact-button {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 140px;
	height: 100%;
	min-height: 88px;
	background: #0b8a3d;
	text-decoration: none;
	color: var(--color-white);
}

/* 白い丸アイコン（小さく調整） */
.contact-button__icon {
	width: 48px;
	/* 64 → 48 */
	height: 48px;
	border-radius: 50%;
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 8px;
	font-size: 22px;
	color: var(--color-darkgreen);
}

.contact-button__icon img {
	width: 24px;
}

.contact-button__label {
	font-size: var(--fs-medium);
}

/* =============================
   ▼ ハンバーガーボタン（SP用）
============================= */

/* ボタン本体 */
.global-header__hamburger {
	position: absolute;
	top: 8px;
	right: 12px;
	z-index: 10001;

	display: none;
	/* PCでは非表示 → SPで display:flex */
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 5px;
	width: 50px;
	height: 44px;
	padding: 0;
	border: none;
	background: transparent;
	cursor: pointer;
}

/* 三本線 */
.global-header__hamburger .hamburger__line {
	width: 22px;
	height: 2px;
	background: var(--color-mono);
	border-radius: 2px;
	transition: transform 0.25s ease, opacity 0.25s ease;
	transform-origin: center center;
	/* 回転の基準を中央に固定 */
}

/* 「メニュー／閉じる」ラベル */
.global-header__hamburger .hamburger__label {
	margin-top: 2px;
	font-size: 11px;
	color: var(--color-mono);
	letter-spacing: 0.05em;
	line-height: 1;
	writing-mode: horizontal-tb;
	text-align: center;
}

/* 開いた時の × アニメーション（上下対称になるよう調整） */
.global-header__hamburger.is-active .hamburger__line:nth-child(1) {
	transform: translateY(5px) rotate(45deg);
}

.global-header__hamburger.is-active .hamburger__line:nth-child(2) {
	opacity: 0;
}

.global-header__hamburger.is-active .hamburger__line:nth-child(3) {
	transform: translateY(-9px) rotate(-45deg);
}

/* SP だけ表示 */
@media (max-width: 960px) {
	.global-header__hamburger {
		display: flex;
	}
}


/* =============================
   ▼ SPドロワーメニュー
============================= */

.global-header__sp-nav {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.35);
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.25s ease;
	z-index: 10000;
}

.global-header__sp-nav-inner {
	position: absolute;
	right: 0;
	top: 0;
	bottom: 0;
	width: 80%;
	max-width: 320px;
	background: #fff;
	padding: 20px 18px 32px;
	overflow-y: auto;
	transform: translateX(100%);
	transition: transform 0.25s ease;
}

/* ★ SP のときはヘッダーの高さぶんだけ下から出す */
@media (max-width: 960px) {
	.global-header__sp-nav-inner {
		top: 60px;
		/* ヘッダーの高さに合わせる（60〜64px くらいで微調整OK） */
	}
}

/* 開いた状態 */
.global-header__sp-nav.is-open {
	opacity: 1;
	pointer-events: auto;
}

.global-header__sp-nav.is-open .global-header__sp-nav-inner {
	transform: translateX(0);
}

/* SPナビ内部 */
.sp-nav {
	margin-bottom: 24px;
}

.sp-nav__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.sp-nav__item+.sp-nav__item {
	border-top: 1px solid #f0f0f0;
}

.sp-nav__link {
	display: flex;
	align-items: center;
	padding: 10px 4px;
	text-decoration: none;
	color: var(--color-mono);
	font-size: var(--fs-medium);
}

.sp-nav__icon {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--basepink);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-right: 10px;
	flex-shrink: 0;
}

.sp-nav__icon img {
	max-width: 60%;
	height: auto;
}

.sp-nav__label {
	font-size: var(--fs-medium);
}

/* サブメニュー側 */
.sp-nav__list--sub .sp-nav__item {
	border-top: none;
}

.sp-nav__list--sub .sp-nav__item+.sp-nav__item {
	margin-top: 4px;
}

.sp-nav__item--tel .sp-nav__link {
	font-weight: bold;
}

.sp-nav__item--contact .sp-nav__link {
	justify-content: center;
	background: var(--color-darkgreen);
	color: #fff;
	border-radius: 999px;
}

/* TELラベル（のぞみグループ本部） */
.sp-nav__item--tel-label {
	margin-top: 8px;
	margin-bottom: 2px;
	border-top: none;
}

.sp-nav__tel-label {
	display: inline-block;
	background: var(--basepink);
	color: #fff;
	font-size: calc(var(--fs-medium) * 0.85);
	padding: 3px 14px;
	border-radius: 999px;
	text-align: center;
}

/* TEL行は少し太字に */
.sp-nav__item--tel .sp-nav__link {
	font-size: calc(var(--fs-medium) * 1.5);
	font-weight: bold;
}

/* ================================
   SP：お問い合わせボタン（横並び）
================================ */

.sp-contact-button {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: center;
	gap: 12px;
	padding: 14px 20px;
	background: var(--color-darkgreen);
	border-radius: 10px;
	color: #fff;
	text-decoration: none;
}

/* 白丸アイコン */
.sp-contact-button__icon {
	width: 36px;
	height: 36px;
	background: #fff;
	border-radius: 50%;
	display: flex;
	justify-content: center;
	align-items: center;
}

.sp-contact-button__icon img {
	width: 20px;
	height: auto;
}

/* お問い合わせ文字 */
.sp-contact-button__label {
	font-size: var(--fs-medium);
	color: #fff;
	white-space: nowrap;
}

/* メニューオープン時はスクロールロック（任意） */
html.is-menu-open,
body.is-menu-open {
	overflow: hidden;
}

/* =============================
   簡易レスポンシブ
============================= */
@media (max-width: 960px) {
	.global-header__inner {
		min-height: 60px;
		gap: 8px;
	}

	/* PC用ナビを非表示にしてハンバーガーを表示 */
	.service-nav,
	.global-header__right {
		display: none;
	}

	.global-header__hamburger {
		display: flex;
	}
}


/* ------------------------------------------- mainvisual */
/* スライダー */
.mv {
	position: relative;
}

.mv,
.mv .swiper {
	width: 100%;
	height: clamp(360px, 80vh, 620px);
}

.mv .swiper,
.mv .swiper-wrapper,
.mv .swiper-slide {
	height: 100%;
}

.mv .swiper-slide>img,
.mv .swiper-slide picture,
.mv .swiper-slide picture>img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.mv .swiper::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0, 0, 0, .15), rgba(0, 0, 0, 0) 40%, rgba(0, 0, 0, .18));
	pointer-events: none;
}

.mv .swiper-button-prev,
.mv .swiper-button-next {
	color: #fff;
	text-shadow: 0 2px 6px rgba(0, 0, 0, .35);
}

.mv .swiper-pagination-bullet {
	background: rgba(255, 255, 255, .6);
	opacity: 1;
}

.mv .swiper-pagination-bullet-active {
	background: #fff;
}

/* mainvisual search window */
/* メインビジュアルに重ねる外枠 */
.mv-search-wrapper {
	position: absolute;
	left: 50%;
	bottom: 0px;
	/* 重なり具合ここで調整 */
	transform: translateX(-50%);

	width: 100%;
	display: flex;
	justify-content: center;
	z-index: 30;
}

/* 白いカード */
.mv-search-box {
	width: 90%;
	max-width: 1100px;
	background: #fff;
	border-top: 6px solid var(--basepink);
	/* 上の枠だけピンク */
	border-radius: 12px 12px 0 0;
	padding: 28px 40px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 40px;
}

/* 左サイド（アイコン＋ロゴ＋タイトル） */
.mv-search-left {
	display: flex;
	align-items: center;
	gap: 16px;
}

.mv-info-icon {
	width: 35px;
	height: auto;
}

.mv-logo {
	width: 170px;
	height: auto;
}

.mv-title {
	font-size: var(--fs-base);
	font-weight: 600;
	color: var(--color-mono);
}

/* 検索フォーム */
.mv-search-form {
	display: flex;
	align-items: center;
	width: 46%;
	min-width: 280px;
	position: relative;
}

.mv-search-input {
	width: 100%;
	padding: 12px 16px;
	border: 1px solid #ccc;
	border-radius: 6px;
	font-size: 15px;
}

.mv-search-btn {
	width: 35px;
	height: 35px;
	position: absolute;
	right: 6px;
	top: 50%;
	transform: translateY(-50%);
	background: #0c9f3a;
	border: none;
	border-radius: 30px;
	cursor: pointer;
	padding: 8px;
	display: flex;
	justify-content: center;
	align-items: center;
}

.mv-search-icon {
	width: 18px;
	height: 18px;
}

/* ================================
   960px以下：縦並びレイアウト
================================ */
@media (max-width: 960px) {
	.mv-search-box {
		flex-direction: column;
		/* 上下に並べる */
		align-items: stretch;
		gap: 5px;
		padding: 10px 15px 5px 15px;
	}

	.mv-search-left {
		gap: 5px;
	}

	.mv-logo {
		width: 120px;
	}

	.mv-info-icon {
		width: 30px;
	}

	.mv-search-left {
		justify-content: center;
		/* アイコン＋ロゴ＋タイトルを中央寄せ */
	}

	.mv-search-form {
		width: 100%;
		/* 検索フォームを横いっぱいに */
	}

	.mv-search-input {
		width: 100%;
		padding: 5px 5px;
		border: 1px solid #ccc;
		border-radius: 6px;
		font-size: 15px;
	}

	.mv-search-btn {
		width: 25px;
		height: 25px;
	}

	.mv-search-icon {
		width: 20px;
		height: 11px;
	}
}

/* 検索窓表示アニメーション（初期状態） */
.mv-search-box {
	opacity: 0;
	transform: translateY(40px);
	transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

/* 表示状態：元の位置へスライドしてフェードイン */
.mv-search-wrapper.is-visible .mv-search-box {
	opacity: 1;
	transform: translateY(0);
}

/* ------------------------------------------- common parts */
.inner {
	width: 100%;
	max-width: 1250px;
	margin-left: auto;
	margin-right: auto;
	position: relative;
}

/* =============================
   共通 section 余白（上下60px）
============================= */
section {
	width: 100%;
}

.section {
	margin-top: 80px;
	margin-bottom: 80px;
}

@media (max-width: 960px) {
	.section {
		margin-top: 60px;
		margin-bottom: 30px;
	}
}


/* ------------------------------------------- top page section1 */
/* ======================
   介護リンクセクション
====================== */
.care-link {
	width: 100%;
	max-width: 1250px;
	background: #fff;
	border-top: 6px solid var(--basepink);
	border-bottom: 6px solid var(--basepink);
	border-radius: 5px;
	padding: 40px 0 50px;
	margin: 0 auto;
	margin-top: 80px;
	margin-bottom: 0px;
}

.care-link__inner {
	position: relative;
	display: grid;
	grid-template-columns: 1.1fr 1.1fr;
	gap: 40px;
	z-index: 0;
	/* 背景丸とのレイヤー基準 */
}

/* 左カラム */
.care-link__intro-header {
	display: grid;
	grid-template-columns: 160px 1fr;
	gap: 20px;
	align-items: center;
	margin-bottom: 24px;
}

.care-link__intro-image {
	width: 100%;
	border-radius: 8px;
	object-fit: cover;
}

.care-link__intro-text {
	color: var(--color-mono);
}

.care-link__intro-lead {
	font-size: calc(var(--fs-base) * 1.3);
	line-height: 1.6;
	margin: 0 0 8px;
}

.care-link__intro-highlight {
	color: var(--color-pink);
	font-size: calc(var(--fs-base) * 2.0);
	font-weight: 700;
}

.care-link__intro-desc {
	font-size: calc(var(--fs-base) * 1.3);
	line-height: 1.8;
	margin: 0;
}

/* ボタン */
.care-link__buttons {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin-top: 10px;
	max-width: 300px;
}

.care-link__btn {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 10px 20px;
	border-radius: 999px;
	border: 2px solid var(--basepink);
	font-size: calc(var(--fs-base) * 1.0);
	color: var(--color-pink);
	text-decoration: none;
	background: #fff;
	transition: background 0.2s ease, color 0.2s ease;
	width: 320px;
}

.care-link__btn-icon {
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--basepink);
	position: relative;
}

.care-link__btn-icon::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 8px;
	height: 8px;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	transform: translate(-60%, -50%) rotate(45deg);
}

/* ------------------------
   ★ hover 時の反転処理
------------------------ */
.care-link__btn:hover .care-link__btn-icon {
	background: #fff;
	/* 矢印の丸が白に */
}

.care-link__btn:hover .care-link__btn-icon::before {
	border-top-color: var(--basepink);
	border-right-color: var(--basepink);
	/* ＞ の線がピンクに */
}

.care-link__btn--primary {
	background: #fff;
}

.care-link__btn--secondary {
	background: #fff;
}

.care-link__btn:hover {
	background: var(--basepink);
	color: #fff;
}

/* 右カラム：施設 */
.care-link__facilities-title {
	font-size: calc(var(--fs-base) * 1.3);
	margin: 0 0 16px;
	text-align: left;
}

.care-link__facility-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px 24px;
	justify-items: center;
}

.care-link__facility {
	text-align: center;
	text-decoration: none;
	color: var(--basepink);
	font-size: calc(var(--fs-base) * 0.8);
}

/* 外側の丸枠（ピンクのリング） */
.care-link__facility-thumb {
	width: 130px;
	height: 130px;
	margin: 0 auto 10px;
	border-radius: 50%;
	border: 4px solid var(--basepink);
	position: relative;
	background: #fdeff4;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: visible;
	/* dot を隠さない */
}

/* 画像専用ラッパー：ここで中身だけ丸くマスク＆クリップ */
.care-link__facility-inner {
	width: 100%;
	height: 100%;
	border-radius: 50%;
	overflow: hidden;
	/* ← 画像だけ切り抜き */
}

/* 画像本体 */
.care-link__facility-inner img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.35s ease;
	transform-origin: center center;
}

/* hover時：画像だけ拡大（枠とdotはそのまま） */
.care-link__facility:hover .care-link__facility-inner img {
	transform: scale(1.08);
}

/* 下のグラデーション丸（dot） */
.care-link__facility-dot {
	position: absolute;
	left: 50%;
	bottom: -12px;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: linear-gradient(to bottom, #ffd6e5 0%, var(--basepink) 100%);
	transform: translateX(-50%);
	box-shadow: 0 3px 6px rgba(0, 0, 0, 0.15);
	z-index: 3;
}

.care-link__facility-name {
	display: inline-block;
	margin-top: 18px;
	font-size: calc(var(--fs-base) * 1.5);
	color: var(--color-pink);
	line-height: 1.4;
	font-weight: 700;
}


/* ------------------------------------------------
   背景のピンク丸（PNG画像で再現）
------------------------------------------------ */
.care-link__bg-circle {
	position: absolute;
	pointer-events: none;
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
	z-index: -1;
	/* コンテンツより奥に */
}

/* 小さい丸：ボタン右側あたり */
.care-link__bg-circle--small {
	width: 45px;
	height: 45px;
	background-image: url("../../images/bg-pattern2.png");
	left: 40%;
	bottom: 95px;
	opacity: 0.8;
}

/* 大きい丸：グループホーム写真の下にかかるイメージ */
.care-link__bg-circle--large {
	width: 160px;
	height: 160px;
	background-image: url("../../images/bg-pattern1.png");
	left: 40%;
	bottom: -60px;
	opacity: 0.8;
}

/* 960px以下は背景丸を少し小さく＆位置調整 */
@media (max-width: 960px) {
	.care-link__bg-circle--small {
		width: 30px;
		height: 30px;
		left: 55%;
		bottom: 80px;
	}

	.care-link__bg-circle--large {
		width: 120px;
		height: 120px;
		left: 55%;
		bottom: -40px;
	}
}

/* ================================
   レスポンシブ（960px以下）
================================ */
@media (max-width: 960px) {

	.care-link {
		width: 90%;
		max-width: 1250px;
		padding: 40px 0 50px;
	}

	.care-link__inner {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.care-link__intro-header {
		grid-template-columns: 1fr;
	}

	.care-link__intro-image {
		max-width: 100%;
		margin: 0 auto;
	}

	.care-link__intro-lead {
		text-align: center;
	}

	.care-link__intro-lead br {
		display: none;
	}

	.care-link__intro-desc {
		text-align: center;
	}

	.care-link__intro-lead {
		font-size: calc(var(--fs-base) * 1.0);
	}

	.care-link__intro-highlight {
		font-size: calc(var(--fs-base) * 1.5);
	}

	.care-link__intro-desc {
		font-size: calc(var(--fs-base) * 1.0);
	}

	.care-link__buttons {
		align-items: center;
		justify-content: center;
		max-width: 100%;
	}

	.care-link__facilities-title {
		text-align: center;
	}

	.care-link__facility-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		justify-items: center;
	}

	.care-link {
		padding: 28px 0 36px;
	}

	.care-link__facility-thumb {
		width: 150px;
		height: 150px;
	}

	.care-link__facility-grid {
		gap: 24px 12px;
	}

	.care-link__facility-name {
		font-size: calc(var(--fs-base) * 1.0);
	}
}


/* ------------------------------------------- top page section2 */
/* 2カラムのカード一覧 */
.service-cards__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 40px 40px;
}

/* 各カード全体 */
.service-card {
	position: relative;
	background: #fff;
	border-radius: 8px;
	border: 1px solid #ffd5e5;
	padding: 26px 30px 32px;
	overflow: hidden;
	/* これで下の角丸も有効になる */
}

/* 下のピンクライン */
.service-card::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 6px;
	background: var(--basepink);
	border-radius: 0 0 8px 8px;
	/* 下の2角だけ丸める */
}

/* =================================
   PCレイアウト
   上段：画像（左）＋テキスト（右）
   下段：ボタン（左右いっぱい）
================================= */

.service-card__body {
	display: grid;
	grid-template-columns: 280px 1fr;
	/* 左：画像 / 右：テキスト */
	grid-template-rows: auto auto;
	/* 1行目：画像＋テキスト / 2行目：ボタン */
	column-gap: 32px;
	row-gap: 32px;
	align-items: flex-start;
}

/* 左上：画像 */
.service-card__image {
	grid-column: 1;
	grid-row: 1;
}

.service-card__image img {
	width: 100%;
	border-radius: 8px;
	object-fit: cover;
	display: block;
}

/* 右上：テキストブロックをひとかたまりで配置 */
.service-card__content {
	grid-column: 2;
	grid-row: 1;
	display: flex;
	flex-direction: column;
	gap: 6px;
	color: var(--color-mono);
}

.service-card__label {
	margin: 0 0 4px;
	font-size: calc(var(--fs-base) * 0.8);
	color: #777;
}

.service-card__title {
	margin: 0 0 6px;
	font-size: calc(var(--fs-base) * 1.5);
	color: var(--color-pink);
	font-weight: 700;
	line-height: 1.4;
}

.service-card__text {
	margin: 0;
	font-size: calc(var(--fs-base) * 0.9);
	line-height: 1.8;
}

/* 下段：ボタンは 2 列ぶち抜きで配置（画像の下に来る） */
.service-card__buttons {
	grid-column: 1 / span 2;
	grid-row: 2;
	display: flex;
	flex-direction: column;
	gap: 12px;
	max-width: 320px;
}

/* PC：画像とテキストを縦中央配置 */
@media (min-width: 961px) {
	.service-card__body {
		display: flex;
		flex-direction: column;
	}

	/* 上段（画像＋テキスト）を横並びにする */
	.service-card__upper {
		display: flex;
		align-items: center;
		gap: 40px;
	}

	.service-card__image {
		flex: 0 0 230px;
	}

	.service-card__image img {
		height: 180px;
		object-fit: cover;
	}
}


/* =================================
   スマホ（960px以下）は縦並び
================================= */
@media (max-width: 960px) {

	.service-cards__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.service-card {
		padding: 22px 16px 26px;
		width: 90%;
		margin: 0 auto;
	}

	.service-card__body {
		display: block;
	}

	.service-card__image {
		margin-bottom: 14px;
	}

	.service-card__image img {
		max-width: 100%;
		width: 100%;
		margin: 0 auto;
	}

	.service-card__content {
		display: flex;
		flex-direction: column;
		gap: 6px;
	}

	.service-card__buttons {
		max-width: 100%;
		margin-top: 14px;
	}
}


/* =============================
   イベント・メディア出演など
============================= */

.section-events {
	background: #fff6f7;
	padding: 60px 0px 60px 0px;
}

/* 見出し行 ---------------------------------------------------- */
.events-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
	margin-bottom: 28px;
}

.events-header__left {
	display: flex;
	align-items: center;
	gap: 14px;
}

.events-header__icon {
	width: 38px;
	height: 38px;
	object-fit: contain;
}

.events-header__title {
	margin: 0;
	font-size: calc(var(--fs-base) * 1.8);
	color: var(--color-mono);
	font-weight: 600;
}

/* 右上「すべての実績を見る」ボタン */
.events-header__all-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 10px 22px;
	border-radius: 999px;
	background: var(--color-darkgreen);
	text-decoration: none;
	color: #fff;
	font-size: calc(var(--fs-base) * 1.0);
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.events-header__all-btn-icon {
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
}

.events-header__all-btn-icon i {
	color: var(--color-darkgreen);
	font-size: 18px;
	line-height: 1;
}

.events-header__all-btn:hover {
	opacity: 0.9;
}


/* スライダー -------------------------------------------------- */
.events-slider {
	margin-bottom: 26px;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin: 0 auto;
	padding: 0;
}

/* Swiper の各スライド */
.events-swiper .swiper-slide {
	width: 100%;
}

/* 1枚のカード（ここが 16:9 の箱 + 枠線） */
.events-slide {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	/* 比率固定をこちらに移動 */
	box-sizing: border-box;
	/* 枠線も含めて 4:3 にする */
	border-radius: 0;
	border: 3px solid var(--basepink);
	background: #fff;
	overflow: hidden;
	/* 枠の内側だけ見せる */
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.06);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

/* 画像サイズ統一：枠いっぱいにフィット */
.events-slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top;
	display: block;
	transition: transform 0.4s ease;
}

/* ホバー拡大 */
.events-slide:hover img {
	transform: scale(1.08);
}

.events-slide:hover {
	box-shadow: 0 8px 18px rgba(0, 0, 0, 0.12);
}


/* コントロールエリア ------------------------------------------ */
.events-controls {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
}

/* ページャ */
.events-controls__pager {
	font-size: calc(var(--fs-base) * 1.5);
	color: var(--color-mono);
}

.events-controls__current {
	color: var(--basepink);
	font-weight: 700;
}

.events-controls__separator {
	margin: 0 4px;
}

/* 戻る / 停止 / 進む ボタン群 */
.events-controls__buttons {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 22px;
	flex-wrap: wrap;
	margin: 0 auto;
	padding-top: 25px;
}

/* 縦並びボタン */
.vertical-btn .events-controls__btn-circle {
	width: 80px;
	height: 80px;
	border-radius: 50%;
	border: 2px solid var(--color-darkgreen);
	background: var(--color-darkgreen);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 4px;
}

.vertical-btn .events-controls__btn-circle i {
	color: var(--color-white);
	font-size: 22px;
	line-height: 1;
}

.vertical-btn .btn-label {
	font-size: calc(var(--fs-base) * 1.0);
	color: var(--color-white);
	line-height: 1;
}

/* 戻る・進むボタン hover（白背景 × 緑文字） */
.vertical-btn:hover .events-controls__btn-circle {
	background: #fff;
	border-color: var(--color-darkgreen);
}

.vertical-btn:hover .events-controls__btn-circle i {
	color: var(--color-darkgreen);
}

.vertical-btn:hover .btn-label {
	color: var(--color-darkgreen);
}

/* ラベル文字 */
.events-controls__btn-label {
	font-size: calc(var(--fs-base) * 1.0);
}


/* 真ん中の「アニメーションを止める」ボタン --------------- */
/* 再生/停止ボタン横並び */
.events-controls__btn--toggle {
	display: flex;
	align-items: center;
	flex-direction: row;
	/* 横並び強制 */
	gap: 12px;
	/* 文字と丸の間隔 */
	padding: 10px 20px;
}

.events-controls__btn--toggle {
	background: #fff;
	border-radius: 999px;
	border: 1px solid var(--color-darkgreen);
	padding: 10px 18px;
	gap: 14px;
}

.events-controls__toggle-text {
	font-size: calc(var(--fs-base) * 1.0);
}

.events-controls__toggle-circle {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: #fff;
	border: 1px solid var(--color-darkgreen);
	display: flex;
	align-items: center;
	justify-content: center;
}

.events-controls__toggle-circle i {
	color: var(--color-darkgreen);
	font-size: 18px;
	line-height: 1;
}

.events-controls__btn--toggle:hover {
	background: #f3fff7;
}

/* ===========================
   レスポンシブ
=========================== */
@media (max-width: 960px) {
	.events-header__icon {
		width: 30px;
		height: 30px;
	}

	.events-header__title {
		font-size: calc(var(--fs-base) * 1.5);
	}

	.section-events {
		padding: 40px 0;
	}

	/* 見出しまわり */
	.events-header {
		width: 90%;
		flex-direction: column;
		align-items: center;
		gap: 12px;
		margin: 0 auto;
		margin-bottom: 28px;
	}

	.events-header__all-btn {
		align-self: center;
	}

	/* スライダー本体：inner幅いっぱい＋左右に少し余白 */
	.events-slider {
		width: 100vw;
		margin-left: 0;
		margin-right: 0;
		padding: 0 12px;
	}

	/* ★ スマホ時は「画像だけ」高さを制限する（Swiperやスライド本体には触れない） */
	.events-slide {
		max-width: 100%;
		margin: 0 auto;
	}

	.events-slide img {
		width: 100%;
		height: 330px;
		max-height: 330px;
		object-fit: cover;
		/* 縦長画像のときにトリミング */
	}

	/* コントロールエリア（ページャ＋ボタン） */
	.events-controls {
		flex-direction: column;
		align-items: center;
		gap: 16px;
		margin-top: 12px;
	}

	.events-controls__pager {
		font-size: calc(var(--fs-base) * 1.2);
		align-self: center;
	}

	/* 戻る／停止／進むボタン群 */
	.events-controls__buttons {
		display: flex;
		flex-direction: row;
		justify-content: center;
		align-items: center;
		gap: 3px;
		flex-wrap: wrap;
		margin: 0 auto;
		padding-top: 8px;
	}

	/* 戻る・進むの丸ボタンを少し小さく */
	.vertical-btn .events-controls__btn-circle {
		width: 60px;
		height: 60px;
	}

	.vertical-btn .btn-label {
		font-size: calc(var(--fs-base) * 0.9);
	}

	/* 真ん中の再生/停止ボタン */
	.events-controls__btn--toggle {
		align-self: center;
		justify-content: center;
		padding: 8px 10px;
		gap: 12px;
	}

	.events-controls__toggle-text {
		font-size: calc(var(--fs-base) * 0.9);
	}

	/* ボタン共通のフォントサイズ */
	.events-controls__btn {
		font-size: 14px;
	}
}


/* ------------------------------------------- top page section3 */
/* ▼ セクション全体 */
.section-news {
	padding: 80px 0;
}

.news-wrap {
	display: flex;
	gap: 40px;
	align-items: flex-start;
	justify-content: space-between;
}

.news-left,
.news-right {
	width: 50%;
}


/* ===== 左カラム ===== */
.news-left {
	flex: 1;
}

.news-title {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 16px;
}

.news-title__icon {
	width: 38px;
	height: 38px;
}

/* 元 28px → ベースの約1.2倍 */
.news-title__text {
	margin: 0;
	font-size: calc(var(--fs-base) * 1.8);
	font-weight: 600;
}

/* 説明テキスト：本文と同等 */
.news-desc {
	margin-bottom: 24px;
	color: var(--color-mono);
	line-height: 1.8;
	font-size: var(--fs-base);
}

/* ▼ ラッパ：ここで「枠」を中央寄せにする */
.news-category-wrap {
	text-align: center;
}

/* ▲ 枠そのもの */
.news-category {
	display: inline-block;
	/* 中身の幅だけの箱になる */
	text-align: left;
	background: var(--color-white);
	border: 2px solid var(--basepink);
	border-radius: 0;
	padding: 0 24px 24px;
	margin-bottom: 30px;
	overflow: hidden;
	width: 100%;
}

/* タイトル帯 */
.news-category__title {
	margin: 0 -24px 20px;
	padding: 10px 16px;
	background: var(--basepink);
	color: #fff;
	text-align: center;
	font-weight: 600;
	font-size: calc(var(--fs-base) * 1.0);
}

/* ボタン一覧：左寄せのまま */
.news-category__list {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	gap: 12px 24px;
	max-width: 400px;
	margin: 0 auto;
}

/* 各カテゴリボタン */
.news-category__list a {
	flex: 0 1 180px;
	padding: 6px 22px;
	border: 2px solid var(--basepink);
	background: #fff;
	border-radius: 999px;
	cursor: pointer;
	font-size: calc(var(--fs-base) * 1.0);
	color: var(--color-pink);
	text-align: center;
	transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;

	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
}

.news-category__list a:hover {
	background: var(--basepink);
	color: #fff;
	transform: translateY(-1px);
}

@media (max-width: 600px) {
	.news-category {
		padding: 0 16px 20px;
	}

	.news-category__title {
		margin: 0 -16px 16px;
	}

	.news-category__list a {
		flex: 0 1 45%;
		padding: 6px 14px;
	}
}

/* ボタン内の改行処理 */
.news-category__list a br {
	display: none;
}

@media (max-width: 600px) {
	.news-category__list a br {
		display: block;
	}
}

/* ▼ 共通デザイン：すべての記事を見るボタン */
.news-all-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background: var(--color-darkgreen);
	color: #fff;
	padding: 10px 22px;
	border-radius: 999px;
	text-decoration: none;
	font-size: calc(var(--fs-base) * 1.0);
	transition: opacity 0.2s ease, transform 0.2s ease;
}

/* 右の丸アイコン（イベントと共通） */
.news-all-btn__icon {
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
}

.news-all-btn__icon i {
	color: var(--color-darkgreen);
	font-size: 18px;
	line-height: 1;
}

/* ホバー */
.news-all-btn:hover {
	opacity: 0.9;
	transform: translateY(-2px);
}


/* ===== 記事1件（PC）===== */
.news-item {
	display: grid;
	grid-template-columns: 1fr 40px;
	/* 左：テキスト、右：矢印 */
	gap: 12px;
	padding: 0px 0;
	border-bottom: 1px solid #ddd;
	align-items: center;
}

.news-item__header {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 6px;
}

.news-item__date {
	font-size: calc(var(--fs-base) * 1.0);
	color: #555;
}

.news-item__tag {
	background: #ff9bb0;
	color: #fff;
	padding: 4px 10px;
	border-radius: 999px;
	font-size: calc(var(--fs-base) * 0.7);
}

.news-item__title {
	font-size: calc(var(--fs-base) * 1.0);
	color: #333;
}

/* 右端の丸ボタン */
.news-item__go {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: 2px solid var(--color-white);
	background: var(--color-darkgreen);
	display: flex;
	justify-content: center;
	align-items: center;
}

.news-item__go i {
	color: var(--color-white);
	font-size: 16px;
}

.news-item__link {
	display: grid;
	grid-template-columns: 1fr 40px;
	gap: 12px;
	align-items: center;
	text-decoration: none;
	color: inherit;
	padding: 14px 0;
}

.news-item__link:hover .news-item__title {
	text-decoration: underline;
}

.news-item {
	border-bottom: 1px solid #ddd;
}

@media (max-width: 960px) {
	.news-wrap {
		flex-direction: column;
		gap: 40px;
	}

	.news-left,
	.news-right {
		width: 90%;
		margin: 0 auto;
	}

	.news-title {
		justify-content: center;
	}

	.news-title__icon {
		width: 30px;
		height: 30px;
	}

	.news-title__text {
		font-size: calc(var(--fs-base) * 1.5);
	}

	.news-category__list {
		justify-content: flex-start;
	}

	.news-item {
		grid-template-columns: 1fr 0px;
	}
}


/* ------------------------------------------- top page section4 */
/* =============================
   のぞみグループについて
============================= */

.section-about {
	padding: 0;
}

.about-wrap {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 60px;
}

/* ★ 左右 50% / 50% に固定 */
.about-left,
.about-right {
	flex: 0 0 50%;
}

/* ===== 左カラム（テキスト） ===== */
.about-title {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 20px;
}

.about-title__icon {
	width: 38px;
	height: 38px;
	object-fit: contain;
}

.about-title__label {
	margin: 0;
	font-size: calc(var(--fs-base) * 1.8);
	font-weight: 600;
	color: var(--color-mono);
}

.about-heading {
	font-size: calc(var(--fs-base) * 2.0);
	font-weight: 700;
	line-height: 1.4;
	margin-bottom: 24px;
	color: var(--color-mono);
}

.about-lead {
	font-size: var(--fs-base);
	line-height: 1.9;
	color: #444;
	max-width: 600px;
}

/* ===== 右カラム（画像） ===== */
.about-right {
	display: flex;
	justify-content: center;
	align-items: center;
}

.about-figure {
	margin: 0;
}

/* ★ max-width を外して、カラムいっぱい使う */
.about-figure__img {
	width: 100%;
	max-width: none;
	height: auto;
	display: block;
}


/* =============================
   レスポンシブ
============================= */
@media (max-width: 960px) {

	.section-about {
		padding: 0px 0px 0px 0px;
	}

	.about-wrap {
		flex-direction: column;
		gap: 40px;
	}

	.about-left,
	.about-right {
		flex: none;
		width: 100%;
		text-align: center;
	}

	.about-title {
		justify-content: center;
	}

	.about-title__label {
		margin: 0;
		font-size: calc(var(--fs-base) * 1.5);
	}

	.about-title__icon {
		width: 30px;
		height: 30px;
	}

	.about-heading {
		font-size: calc(var(--fs-base) * 1.3);
		text-align: center;
	}

	.about-lead {
		font-size: calc(var(--fs-base) * 1.0);
		text-align: left;
		margin: 0 auto;
		max-width: 90%;
	}

	.about-figure__img {
		max-width: 90%;
		margin: 0 auto;
	}
}


/* ------------------------------------------- top page section5 */
/* =============================
   グループ案内リンクカード
============================= */

.section-links {
	padding: 80px 0;
}

.links-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 40px 40px;
}

/* ===== カード本体 ===== */
.links-card {
	display: flex;
	flex-direction: column;
	height: 100%;
}

/* 画像ブロック */
.links-card__thumb {
	position: relative;
	overflow: hidden;
	border-radius: 8px 8px 0px 0px;
	border-bottom: 6px solid var(--basepink);
	background: #fff;
	overflow: hidden;
}

.links-card__img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
	border-radius: 8px 8px 0px 0px;
}

/* 左上クローバーアイコン */
.links-card__icon {
	position: absolute;
	left: 0;
	top: 0;
	width: 56px;
	height: 56px;
	background: var(--basepink);
	display: flex;
	align-items: center;
	justify-content: center;
}

.links-card__icon img {
	display: block;
	width: 26px;
	height: 26px;
}

/* ===== テキスト ===== */
.links-card__title {
	margin: 16px 0 8px;
	font-size: calc(var(--fs-base) * 1.5);
	font-weight: 700;
	color: var(--color-pink);
}

.links-card__text {
	margin: 0 0 18px;
	font-size: calc(var(--fs-base) * 1.0);
	line-height: 1.8;
	color: var(--color-mono);
	flex: 1;
}


/* -------------------------------
   カード下の「詳細を見る」ボタン（共通化）
-------------------------------- */
/* カードのボタン本体（「すべての実績を見る」と同じ） */
.links-card__btn {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 10px 22px;
	border-radius: 999px;
	background: var(--color-darkgreen);
	text-decoration: none;
	color: var(--color-white);
	font-size: calc(var(--fs-base) * 1.0);
	transition: opacity 0.2s ease, transform 0.2s ease;
	margin-top: auto;
	max-width: 280px;
	box-sizing: border-box;
}

.links-card__btn-circle {
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--color-white);
	display: flex;
	align-items: center;
	justify-content: center;
}

.links-card__btn-circle i {
	color: var(--color-darkgreen);
	font-size: 16px;
	line-height: 1;
}

/* ------------------------------------
   画像ホバー拡大アニメーション
------------------------------------ */
.links-card__thumb {
	overflow: hidden;
	/* はみ出しを隠す */
	border-radius: 8px 8px 0px 0px;
	/* 角丸がある場合は調整 */
}

.links-card__img {
	transition: transform 0.5s ease;
	transform: scale(1);
}

.links-card:hover .links-card__img {
	transform: scale(1.05);
}

/* =============================
   レスポンシブ
============================= */

@media (max-width: 960px) {
	.links-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 32px 24px;
	}
}

@media (max-width: 768px) {
	.section-links {
		width: 90%;
		padding: 60px 0;
		margin: 0 auto;
	}

	.links-grid {
		grid-template-columns: 1fr;
		row-gap: 32px;
	}

	.links-card__btn {
		margin-left: auto;
		margin-right: auto;
		display: flex;
		justify-content: center;
		width: 80%;
	}

	.links-card__title {
		font-size: calc(var(--fs-base) * 1.0);
	}

	.links-card__text {
		font-size: calc(var(--fs-base) * 0.85);
	}
}


/* ------------------------------------------- lower page parts */
/* ======================================================
   下層ページ：ページタイトル（about共通）
====================================================== */
.page-hero {
	position: relative;
	padding: 0;
	width: 100%;
	background: var(--palepink);
}

/* inner を使って 1250px 以下に制限 */
.page-hero__wrap {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;

	width: 100%;
	max-width: 1250px;
	margin: 0 auto;
	gap: 0px;

}

/* ===========================
   左側レイアウト
=========================== */
.page-hero__left {
	flex: 0 0 50%;
	max-width: 50%;
	padding-top: 40px;
	padding-left: 40px;
	padding-bottom: 40px;

}

/* 重要・js文字サイズ：大 のときだけ page-hero の下に余白を足す */
html[data-font-size="large"] .page-hero__left {
	padding-top: 100px;
}

/* ▼ 丸画像＋タイトルを横並びに */
.page-hero__top {
	display: flex;
	align-items: center;
	gap: 18px;
}

/* 丸画像（1枚の画像） */
.page-hero__pattern-img {
	width: 120px;
	height: auto;
	display: block;
}

/* タイトルブロック */
.page-hero__top-text {
	display: flex;
	flex-direction: column;
	gap: 0px;
}

/* 小見出し（kicker） */
.page-hero__kicker {
	font-size: calc(var(--fs-base) * 1.0);
	color: var(--color-mono);
	line-height: 1.7;
	margin: 0 0 0px;
}

/* メインタイトル */
.page-hero__title {
	margin: 0 0 40px;
	line-height: 1.3;
	display: inline-flex;
	align-items: baseline;
	gap: 12px;
}

.page-hero__title-main {
	display: block;
	font-size: calc(var(--fs-base) * 1.8);
	font-weight: 700;
	color: var(--color-pink);
}

.page-hero__title-sub {
	display: inline-block;
	font-size: calc(var(--fs-base) * 2.5);
	font-weight: 700;
	color: var(--color-pink);
	margin-top: 6px;
}


/* ===========================
   このページで分かること
=========================== */
/* 丸画像・タイトルの下に余白をつける */
.page-hero__summary {
	margin-top: 40px;
}

.page-hero__summary-head {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 16px;
}

.page-hero__summary-icon {
	width: 38px;
	height: 38px;
}

.page-hero__summary-title {
	font-size: calc(var(--fs-base) * 1.3);
	font-weight: 700;
	color: var(--color-mono);
}

.page-hero__summary-list {
	list-style: none;
	padding-left: 0;
	margin: 0;
}

.page-hero__summary-list li {
	position: relative;
	padding-left: 20px;
	margin-bottom: 12px;
	font-size: calc(var(--fs-base) * 1.0);
	color: var(--color-mono);
}

.page-hero__summary-list li::before {
	content: "•";
	position: absolute;
	left: 0;
	top: 0;
	color: var(--basepink);
	font-size: 22px;
	line-height: 1;
}

/* 文章のみの場合 */
.page-hero__summary p {
	max-width: 85%;
}

@media (max-width: 960px) {
	.page-hero__summary p {
		max-width: 90%;
	}
}


/* ===========================
   右側の画像
=========================== */
.page-hero__right {
	flex: 0 0 50%;
	max-width: 50%;
	padding-left: 20px;
}

.page-hero__figure {
	margin: 0;
}

.page-hero__image {
	width: 100%;
	height: auto;
	border-radius: 0px;
	display: block;
}


/* ===========================
   スマホレスポンシブ
=========================== */
@media (max-width: 960px) {
	.page-hero {
		padding: 0px 0px 40px 0px;
	}

	.page-hero__wrap {
		flex-direction: column-reverse;
		gap: 40px;
		padding: 0 0px;
	}

	.page-hero__left,
	.page-hero__right {
		flex: 0 0 100%;
		max-width: 100%;
		padding-top: 0px;
		padding-left: 0px;
	}

	/* 丸画像＋タイトル縦並び */
	.page-hero__top {
		flex-direction: column;
		text-align: center;
		gap: 20px;
	}

	.page-hero__pattern-img {
		width: 100px;
	}

	.page-hero__title-main {
		font-size: calc(var(--fs-base) * 1.5);
	}

	.page-hero__title-sub {
		font-size: calc(var(--fs-base) * 1.8);
	}

	.page-hero__image {
		width: 100%;
	}

	/* 左ブロック全体を中央に寄せる */
	.page-hero__left {
		width: 100%;
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 16px;
	}

	.page-hero__title {
		margin-bottom: 10px;
	}


	/* 中身のテキストは左寄せのまま */
	.page-hero__top-text,
	.page-hero__summary {
		width: 100%;
		max-width: 330px;
		margin: 0 auto;
		text-align: left;
	}

	/* 丸画像とタイトルの横並び中央寄せ */
	.page-hero__top {
		justify-content: center;
	}

	.page-hero__summary-icon {
		width: 30px;
		height: 30px;
	}

}


/* 施設詳細ページのサブステージの空き状況ピンクテーブル */
/* 全体 */
.page-hero__requirements {
	width: 100%;
	max-width: 350px;
	font-size: calc(var(--fs-base) * 1.0);
	color: var(--color-mono);
	box-sizing: border-box;
	margin-top: 30px;
}

/* ヘッダー（空き状況／入居資格） */
.page-hero__requirements-header {
	display: grid;
	grid-template-columns: 120px 1fr;
}

.page-hero__requirements-th {
	background: var(--color-pink);
	color: var(--color-white);
	text-align: center;
	padding: 6px 8px;
	font-weight: 700;
}

.page-hero__requirements-th--narrow {
	border-right: 2px solid var(--color-white);
}

/* 本文（丸／テキスト） */
.page-hero__requirements-body {
	display: grid;
	grid-template-columns: 120px 1fr;
	background: var(--color-white);
}

.page-hero__requirements-cell {
	padding: 14px 12px;
	border-bottom: 1px solid #f3f3f3;
	box-sizing: border-box;
	text-align: center;
}

.page-hero__requirements-cell--narrow {
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: calc(var(--fs-base) * 2.0);
	color: var(--color-pink);
}

/* 空き状況の丸 */
.page-hero__requirements-status-circle {
	width: 22px;
	height: 22px;
	border-radius: 50%;
	border: 2px solid var(--color-pink);
	display: inline-block;
}

/* 入居資格テキスト */
.page-hero__requirements-qual-text {
	font-size: calc(var(--fs-base) * 1.3);
	font-weight: 700;
	color: var(--color-pink);
	letter-spacing: 0.02em;
}


/* 施設詳細ページのサブステージのスライドショー */
/* 全体ラッパー */
.page-hero__gallery {
	max-width: 700px;
	margin: 0 auto 24px;
}

/* ------------------------------
   メイン画像
------------------------------ */
.page-hero__gallery-main {
	width: 100%;
	overflow: hidden;
	box-sizing: border-box;
}

.page-hero__gallery-main .swiper-slide img {
	width: 100%;
	display: block;
	object-fit: cover;
}

/* ------------------------------
   サムネイル
------------------------------ */
.page-hero__gallery-thumbs {
	margin-top: 10px;
}

.page-hero__gallery-thumbs .swiper-slide {
	position: relative;
	cursor: pointer;
	height: auto;
}

.page-hero__gallery-thumb-inner {
	width: 100%;
	padding-top: 60%;
	/* 横長サムネ用 */
	background: #eeeeee;
	overflow: hidden;
	position: relative;
}

.page-hero__gallery-thumb-inner img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* PCは4枚、スマホは3枚 */
.page-hero__gallery-thumbs .swiper-wrapper {
	align-items: stretch;
}

@media (min-width: 768px) {
	.page-hero__gallery-thumbs {
		padding: 0 2px;
	}
}


/* 施設詳細ページのサブステージの下のリンク先 */
/* ピンクの帯 */
.childcare-links {
	background: var(--basepink);
	padding: 32px 0px;
}

.childcare-links__inner {
	max-width: 980px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px 20px;
}

@media (max-width: 960px) {
	.childcare-links__inner {
		width: 90%;
	}
}

/* ボタン本体 */
.childcare-links__item {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 10px 20px 10px 20px;
	border-radius: 8px;
	background: var(--color-white);
	color: var(--color-mono);
	font-size: calc(var(--fs-base) * 1.0);
	text-decoration: none;
	box-shadow: 0 1px 2px rgba(0, 0, 0, .08);
}

@media (max-width: 960px) {
	.childcare-links__item {
		padding: 10px 6px 10px 2px;
	}
}

/* テキスト */
.childcare-links__label {
	margin: 0 auto;
	text-align: center;
}

/* アイコンを右端へ絶対配置 */
.childcare-links__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--basepink);
	color: #fff;
	margin-left: 8px;
}

@media (max-width: 960px) {
	.childcare-links__icon {
		margin-left: 0px;
	}
}

.childcare-links__icon .fa {
	font-size: 8px;
	margin-left: 1px;
}

/* リンク移動先をずらす */
#reason,
#support,
#facility-detail,
#price,
#download,
#news,
#events,
#message {
	scroll-margin-top: 120px;
}

/* スマホでは2列に */
@media (max-width: 768px) {
	.childcare-links__inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* 施設詳細ページの対応サービス表 */
.childcare-service-table {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border-top: 1px solid #e2e2e2;
	border-left: 1px solid #e2e2e2;
}

.childcare-service-table__item {
	display: flex;
	align-items: center;
	padding: 10px 12px;
	border-right: 1px solid #e2e2e2;
	border-bottom: 1px solid #e2e2e2;
	font-size: calc(var(--fs-base) * 1.0);
}

.childcare-service-table__icon {
	font-size: 24px !important;
	margin-right: 8px;
	color: var(--color-pink);
}

.childcare-service-table__label {
	color: var(--color-mono);
	white-space: nowrap;
}

@media (max-width: 768px) {
	.childcare-service-table {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		width: 90%;
		margin: 0 auto;
	}
}

/* 施設詳細ページの料金テーブル */
.fee-table__facility-detail {
	width: 100%;
}

.fee-table__facility-detail tr th {
	width: 250px;
}

.fee-table__facility-detail tr td {
	text-align: left;
}

@media (max-width: 960px) {
	.fee-table__facility-detail tr th {
		width: 40%;
	}
}

/* 施設詳細ページの書類ダウンロード */
/* 全体（PCでは横並び） */
.childcare-downloads {
	display: flex;
	gap: 40px;
	align-items: center;
}

/* 1つのボタン */
.childcare-downloads__item {
	display: inline-flex;
	align-items: center;
	text-decoration: none;
	color: var(--color-mono);
	font-size: calc(var(--fs-base) * 1.0);
}

.childcare-downloads__item:hover .childcare-downloads__label {
	text-decoration: underline;
}

/* ピンク丸アイコン */
.childcare-downloads__icon {
	width: 50px;
	height: 50px;
	border-radius: 50%;
	background: var(--basepink);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-right: 12px;
}

.childcare-downloads__icon .fa {
	color: #fff;
	font-size: calc(var(--fs-base) * 1.5);
}

.childcare-downloads__label {
	font-weight: 700;
}

/* ---------- スマホ時の左寄せスタイル ---------- */
@media (max-width: 768px) {
	.childcare-downloads {
		display: flex;
		text-align: left !important;
		align-items: flex-start !important;
		flex-direction: column;
		gap: 0px;
		width: 90%;
		margin: 0 auto;
	}

	.childcare-downloads__item {
		margin-bottom: 24px;
	}
}


/* 施設詳細ページのブログ記事一覧 */
/* 全体の余白 */
.childcare-news-list {
	display: flex;
	flex-direction: column;
	gap: 40px;
}

/* 1件分 */
.childcare-news-item {
	display: flex;
	gap: 20px;
	align-items: flex-start;
}

/* カード全体をリンクっぽく */
.childcare-news-card {
	display: block;
	text-decoration: none;
	color: inherit;
}

/* カード配置 */
.childcare-news-item {
	display: flex;
	gap: 20px;
	padding: 20px 0;
	border-bottom: 1px solid #eee;
	transition: transform .2s ease;
}

/* サムネイル枠 */
.childcare-news-thumb {
	width: 260px;
	height: 180px;
	overflow: hidden;
	border-radius: 10px;
	flex-shrink: 0;
}

/* 画像をトリミングしてフィット */
.childcare-news-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .35s ease;
}

/* hoverで画像だけ拡大 */
.childcare-news-card:hover .childcare-news-thumb img {
	transform: scale(1.08);
}

/* テキスト側 */
.childcare-news-body {
	flex: 1;
}

.childcare-news-date {
	font-size: calc(var(--fs-base) * 1.0);
	color: var(--color-mono);
	margin-bottom: 4px;
	display: flex;
	align-items: center;
	gap: 6px;
}

.childcare-news-date .dot {
	width: 10px;
	height: 10px;
	background: var(--color-pink);
	border-radius: 50%;
	display: inline-block;
}

/* タイトル */
.childcare-news-title {
	font-size: calc(var(--fs-base) * 1.5);
	font-weight: 700;
	line-height: 1.6;
	margin-bottom: 12px;
	color: var(--color-mono);
}

@media (max-width: 960px) {
	.childcare-news-title {
		font-size: calc(var(--fs-base) * 1.3);
	}
}

/* 続きを読むボタン */
.childcare-news-more {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	text-decoration: none;
	font-weight: 700;
	color: var(--color-pink);
	margin-top: 8px;
}

/* ピンクの丸 */
.childcare-news-more__icon {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--basepink);
	display: flex;
	align-items: center;
	justify-content: center;
}

/* FontAwesome の ▶ を白色に */
.childcare-news-more__icon .fa {
	color: var(--color-white);
	font-size: 13px;
	margin-left: 1px;
}

/* ホバー時：テキストだけ下線 */
.childcare-news-more:hover .childcare-news-more__text {
	text-decoration: underline;
}

/* -------------------------
    スマホ（縦並び）
-------------------------- */
@media (max-width: 960px) {

	.childcare-news-item {
		flex-direction: column;
		width: 90%;
		margin: 0 auto;
	}

	.childcare-news-thumb {
		width: 100%;
		flex: none;
	}

	.childcare-news-thumb img {
		height: auto;
	}

}

/* 施設詳細ページのイベント一覧 */
/* ===== 年間行事グリッド ===== */
.childcare-events-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	column-gap: 60px;
	row-gap: 40px;
}

.childcare-event {
	display: flex;
	align-items: center;
	justify-content: flex-start;
}

/* 画像部分：ピンク枠＋角丸 */
.childcare-event__thumb {
	flex: 0 0 160px;
	aspect-ratio: 1 / 1;
	border-radius: 10px;
	border: 3px solid var(--color-pink);
	overflow: hidden;
	position: relative;
}

.childcare-event__thumb img {
	position: absolute;
	/* ★重要★ */
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* テキスト側は画像の右 */
.childcare-event__info {
	margin-left: 16px;
	text-align: left;
}

/* 「● 1月」部分 */
.childcare-event__month {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: calc(var(--fs-base) * 1.0);
	font-weight: 700;
	color: var(--color-mono);
	margin-bottom: 4px;
}

/* 小さいピンクのドット */
.childcare-event__month .dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--basepink);
	display: inline-block;
}

/* 月の大きいピンク丸 */
.childcare-event__month-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 54px;
	height: 32px;
	padding: 0 14px;
	border-radius: 999px;
	background: var(--basepink);
	color: #fff;
	font-size: calc(var(--fs-base) * 1.0);
	font-weight: 700;
}

/* 行事名 */
.childcare-event__title {
	font-size: calc(var(--fs-base) * 1.5);
	font-weight: 700;
	color: var(--color-mono);
}

/* ===== スマホでは2カラム＆縦並び ===== */
@media (max-width: 960px) {

	.childcare-events-grid {
		grid-template-columns: repeat(2, 1fr);
		column-gap: 20px;
		row-gap: 32px;
		width: 90%;
		margin: 0 auto;
	}

	/* 画像 → テキストの順に縦並び */
	.childcare-event {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	.childcare-event__thumb {
		flex: none;
		width: 100%;
		max-width: 160px;
		aspect-ratio: 1 / 1;
		overflow: hidden;
		position: relative;
	}

	.childcare-event__thumb img {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	/* テキストの余白 */
	.childcare-event__info {
		margin-left: 0;
		margin-top: 10px;
		text-align: center;
	}

	.childcare-event__title {
		font-size: calc(var(--fs-base) * 1.3);
	}
}


/* 施設詳細ページの施設長のご挨拶 */
/* ===== ごあいさつブロック ===== */
.childcare-greeting {
	padding: 0px 0;
}

.childcare-greeting__inner {
	max-width: 100%;
	margin: 0 auto;
	display: flex;
	align-items: center;
	gap: 40px;
}

/* 写真：ピンク枠＋角丸 */
.childcare-greeting__photo {
	flex: 0 0 260px;
	border-radius: 10px;
	border: 3px solid var(--color-pink);
	overflow: hidden;
}

.childcare-greeting__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* テキスト側 */
.childcare-greeting__body {
	flex: 1;
	text-align: left;
}

/* 見出し（ピンク） */
.childcare-greeting__title {
	font-size: calc(var(--fs-base) * 1.8);
	font-weight: 700;
	color: var(--color-pink);
	margin-bottom: 16px;
}

/* 本文 */
.childcare-greeting__text {
	font-size: calc(var(--fs-base) * 1.0);
	line-height: 1.8;
	color: var(--color-mono);
	margin-bottom: 16px;
}

/* 施設長名 */
.childcare-greeting__name {
	font-size: calc(var(--fs-base) * 1.0);
	font-weight: 700;
	color: var(--color-mono);
}

/* ===== スマホ ===== */
@media (max-width: 768px) {
	.childcare-greeting__inner {
		flex-direction: column;
		gap: 24px;
	}

	.childcare-greeting__photo {
		flex: none;
		width: 70%;
		max-width: 320px;
		margin: 0 auto;
	}

	.childcare-greeting__body {
		text-align: left;
		width: 90%;
		margin: 0 auto;
	}
}


/* ---------------------------------------------------------共通パーツ　見出し下線ありh2 */
.section-title {
	position: relative;
	padding-left: 24px;
	padding-bottom: 8px;
	margin: 60px auto 40px;
	font-size: calc(var(--fs-base) * 1.8);
	font-weight: 700;
	line-height: 1.2;
	/* ← 行の高さを固定（重要） */
	border-bottom: 2px solid var(--border-pink);
}

/* ●ピンクの丸（完全中央揃え） */
.section-title::before {
	content: "";
	position: absolute;
	left: 0;
	top: 40%;
	/* 見出し行のちょうど中央 */
	transform: translateY(-50%);
	/* 10pxの丸でも確実に真ん中 */
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--basepink);
}

/* テキスト（ここまで濃い線） */
.section-title__text {
	position: relative;
	display: inline-block;
	padding-bottom: 4px;
}

/* 濃いピンクの線：テキスト＋●のぶんだけ */
.section-title__text::after {
	content: "";
	position: absolute;
	left: -24px;
	bottom: -10px;
	width: calc(100% + 24px);
	height: 2px;
	background: var(--basepink);
}

@media (max-width: 960px) {

	.section-title {
		width: 90%;
	}

	.section-title__text::after {
		left: -15px;
	}
}


/* ---------------------------------------------------------共通パーツ　丸ピンク2つ見出しh3 */
/* ===========================
    セクション見出し（大丸＋小丸）
   =========================== */
.section-heading {
	position: relative;
	font-size: calc(var(--fs-base) * 1.8);
	font-weight: 700;
	padding-left: 70px;
	width: 100%;
	margin-top: 60px;
	margin-bottom: 40px;
	display: inline-block;
	z-index: 1;
}

/* 大きい丸（PC） */
.section-heading::before {
	content: "";
	position: absolute;
	left: 0px;
	top: 50%;
	transform: translateY(-50%);
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background: linear-gradient(135deg, #ff9eb6 0%, #f06388 100%);
	opacity: 0.9;
}

/* 小さい丸（PC） */
.section-heading::after {
	content: "";
	position: absolute;
	left: 0px;
	top: -25px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--basepink);
}

/* テキスト */
.section-heading__text {
	position: relative;
	z-index: 2;
	color: var(--color-mono);
}

/* ======================
      スマホ修正（重要）
   ====================== */
@media (max-width: 960px) {

	.section-heading {
		padding-left: 90px;
		margin-top: 40px;
		font-size: calc(var(--fs-base) * 1.5);
	}

	/* 基本：2行以上想定（上寄せ固定） */
	.section-heading::before {
		left: 20px;
		top: 8px;
		transform: none;
	}

	.section-heading::after {
		left: 20px;
		top: -10px;
	}

	/* ★ 1行見出し用クラス（中央寄せに戻す） */
	.section-heading.is-single-line::before {
		top: 50%;
		transform: translateY(-50%);
	}

	.section-heading.is-single-line::after {
		top: -25px;
	}
}


/* ---------------------------------------------------------共通パーツ　ピンク文字の見出しh3 */
/* h3 見出し（ピンク大見出し） */
.common-heading-pink__title {
	font-size: calc(var(--fs-base) * 1.5);
	font-weight: 700;
	color: var(--color-pink);
	margin-top: 30px;
	margin-bottom: 30px;
	line-height: 1.6;

	max-width: 800px;
	margin-left: auto;
	margin-right: auto;
	text-align: left;
}

/* margin解除する場合 */
.common-heading-pink__margin0 {
	margin-left: 0;
	margin-right: 0;
}


/* =========================================================
   セクション全体の中央寄せレイアウト
========================================================= */
.common-hero-section {
	max-width: 1000px;
	margin: 0 auto 80px;
	padding: 0 20px;
	text-align: center;
}

/* =========================================================
   リード文（ピンク大見出し下の説明）
========================================================= */
.common-hero-section__lead {
	text-align: center;
	font-size: calc(var(--fs-base) * 1.2);
	line-height: 1.7;
	margin-bottom: 30px;
	color: var(--color-pink);
}

/* =========================================================
   本文ブロック
========================================================= */
.common-hero-section__text {
	max-width: 800px;
	margin: 0 auto;
	text-align: left;
}

.common-hero-section__text p {
	margin-bottom: 18px;
	line-height: 1.8;
}

/* =========================================================
   画像
========================================================= */
.common-hero-section__image img {
	width: 100%;
	height: auto;
	display: block;
	margin: 40px auto 40px;
}

/* =========================================================
   スマホ調整
========================================================= */
@media (max-width: 960px) {

	.common-hero-section {
		width: 90%;
		margin-left: auto;
		margin-right: auto;
	}

	/* リード文（ピンク大見出し）も同じ幅へ */
	.common-heading-pink__title {
		max-width: 100%;
		width: 90%;
		margin-left: auto;
		margin-right: auto;
	}

	/* 本文 */
	.common-hero-section__text {
		width: 90%;
		max-width: 100%;
		margin-left: auto;
		margin-right: auto;
	}
}


/* ---------------------------------------------------------共通パーツ　見出し下線無しピンク丸のみh2 */


.section-title-pink-circle {
	position: relative;
	padding-left: 32px;
	margin: 40px auto 40px;
	font-size: calc(var(--fs-base) * 1.8);
	font-weight: 700;
	line-height: 1.2;
}

/* ピンク丸（●） */
.section-title-pink-circle::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 12px;
	height: 12px;
	background: var(--basepink);
	border-radius: 50%;
}

/* 下線を引く文字部分 */
.section-title-pink-circle__text {
	position: relative;
	display: inline-block;
	padding-bottom: 4px;
}

@media (max-width: 960px) {
	.section-title-pink-circle {
		width: 90%;
		padding-left: 28px;
	}

	.section-title-pink-circle::before {
		width: 10px;
		height: 10px;
	}
}


/* ---------------------------------------------------------共通パーツ　左に画像、やや小さめ、右に本文 */
/* ================================
   2カラムレイアウト
================================ */
.section-content--2col {
	display: flex;
	justify-content: space-between;
	gap: 10px;
	margin: 0 auto;
}

/* 左：画像 */
.section-content__media {
	flex: 0 0 40%;
}

.section-image {
	width: 100%;
	max-width: 380px;
	height: auto;
	border-radius: 4px;
	display: block;
	margin: 0 auto;
}

/* 右：本文 */
.section-content__body {
	flex: 1;
	color: #333;
}

.section-text p {
	margin-bottom: 18px;
	line-height: 1.9;
}

.section-text__sign {
	margin-top: 40px;
	text-align: right !important;
	font-size: 15px;
	line-height: 1.6;
}

.section-text__sign img {
	display: inline-block;
	width: 120px;
	height: auto;
}


/* ================================
   スマホ（縦並び）
================================ */
@media (max-width: 960px) {

	.section-content--2col {
		flex-direction: column;
		width: 90%;
		gap: 24px;
		padding: 0 0px;
	}

	.section-content__media,
	.section-content__body {
		flex: 0 0 100%;
		max-width: 100%;
	}

	.section-title {
		font-size: calc(var(--fs-base) * 1.5);
		padding: 0 16px 8px;
	}

	.section-text__sign {
		text-align: left;
	}
}


/* ================================
   1カラムレイアウト
================================ */
.section-block--full {
	width: 100%;
	padding: 60px 0px 0px 0px;
}

/* セクション全体（必要に応じて調整） */
.section-block {
	margin: 0px 0;
}

/* 共通：縦並びレイアウト（テキスト → 画像） */
.section-content {
	margin-top: 24px;
}

/* ★今回追加する「1カラム縦並び」用 */
.section-content--stack {
	width: 100%;
	margin: 0 auto;
	text-align: center;
}

/* 上の説明文 */
.section-lead {
	font-size: calc(var(--fs-base) * 1.0);
	line-height: 1.9;
	text-align: left;
	margin: 0 0 24px;
}

/* 画像ラッパ + 画像 */
.section-figure {
	display: flex;
	justify-content: center;
	margin: 40px 0px;
}

.section-figure__image {
	max-width: 100%;
	height: auto;
	display: block;
}

@media (max-width: 960px) {

	.section-block--full {
		padding: 0px 0px 0px 0px;
	}

	.section-content--stack {
		width: 90%;
	}
}


/* ================================
   1カラムレイアウト、画像上横長、見出し、本文
================================ */
/* ================================
   トップページに戻るボタン（共通パーツ）
================================ */
.btn-return-top {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 320px;
	padding: 12px 20px;
	margin: 40px auto;
	background: var(--color-darkgreen);
	color: var(--color-white);
	text-decoration: none;
	border-radius: 999px;
	font-size: calc(var(--fs-base) * 1.0);
	font-weight: 600;
	cursor: pointer;
	margin: 120px auto 0px;
}

/* 左のラベル */
.btn-return-top__label {
	flex: 1;
	text-align: center;
}

/* 右の白丸アイコン */
.btn-return-top__icon-box {
	width: 34px;
	height: 34px;
	background: #fff;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* アイコン（FontAwesome 4.7対応） */
.btn-return-top__icon-box i {
	font-size: 14px;
	color: #017a3d;
}


/* ================================
   汎用ボタン（電話やリンクなどで使用、共通パーツ）
================================ */
.btn-link-green {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 320px;
	padding: 12px 20px;
	margin: 40px auto;
	background: var(--color-darkgreen);
	color: var(--color-white);
	text-decoration: none;
	border-radius: 999px;
	font-size: calc(var(--fs-base) * 1.0);
	font-weight: 600;
	cursor: pointer;
	margin: 40px 0px 0px 0px;
}

/* 左のラベル */
.btn-link-green__label {
	flex: 1;
	text-align: left;
}

/* 右の白丸アイコン */
.btn-link-green__icon-box {
	width: 34px;
	height: 34px;
	background: #fff;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* アイコン（FontAwesome 4.7対応） */
.btn-link-green__icon-box i {
	font-size: 14px;
	color: #017a3d;
}


/* ---------------------------------------------------------私たちについて、組織概要カード */
/* カードを2カラム → スマホ1カラム */
.org-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 32px 40px;
	margin-top: 40px;
}

/* 3番（エスポワール）だけ縦に大きくして2行ぶん使う */
.org-card--tall {
	grid-row: span 2;
	/* 重要 */
}

/* カード本体 */
.org-card {
	background: var(--color-white);
	border: 2px solid var(--color-pink);
	border-radius: 12px;
	padding: 28px 32px 24px;
	box-sizing: border-box;
	text-align: center;
}

/* タイトル（赤ピンク） */
.org-title {
	color: var(--color-pink);
	font-size: calc(var(--fs-base) * 1.5);
	font-weight: 700;
	margin-bottom: 14px;
	text-align: center;
}

/* 設立日 */
.org-date {
	font-size: calc(var(--fs-base) * 1.5);
	margin-bottom: 16px;
	color: var(--color-mono);
}

/* 箇条書き */
.org-list-items {
	padding-left: 20px;
}

.org-list-items li {
	margin-bottom: 6px;
	font-size: calc(var(--fs-base) * 1.0);
	color: var(--color-mono);
	line-height: 1.7;
}

/* スマホ：1カラム */
@media (max-width: 960px) {
	.org-list {
		grid-template-columns: 1fr;
		gap: 24px;
		width: 90%;
		margin: 0 auto;
	}

	.org-card {
		padding: 24px 20px;
	}

	.org-title {
		font-size: 20px;
	}
}

/* 緑カード（6・7番だけ） */
.org-card--green {
	border-color: var(--color-darkgreen);
	background: var(--color-darkgreen);
}

.org-card--green .org-title {
	color: var(--color-white);
}

.org-card--green .org-date {
	color: var(--color-white);
}

.org-card--green .org-list-items li {
	color: var(--color-white);
}


/* ---------------------------------------------------------私たちについて、沿革 */
/* 沿革：リスト全体 */
.history {
	margin-top: 32px;
	margin-bottom: 40px;
	position: relative;
}

/* 最初は途中まで表示して、残りを隠す */
.history-list {
	max-height: 360px;
	overflow: hidden;
	position: relative;
	transition: max-height 0.5s ease;
}

/* 見切れている感を出すための白グラデーション */
.history-list::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 80px;
	background: linear-gradient(to bottom,
			rgba(255, 255, 255, 0),
			rgba(255, 255, 255, 1));
	pointer-events: none;
}

.history.is-open .history-list::after {
	display: none;
}

/* 各行レイアウト（年月＋テキスト） */
.history-item {
	display: flex;
	gap: 24px;
	padding: 6px 0;
	font-size: 15px;
	line-height: 1.8;
}

.history-item__date {
	flex: 0 0 80px;
	font-size: calc(var(--fs-base) * 1.0);
	font-weight: 700;
	color: var(--color-mono);
}

/* テキストが複数ある場合、縦並びに */
.history-item__texts {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.history-item__text {
	flex: 1;
	display: block;
	font-size: calc(var(--fs-base) * 1.0);
}

.history-button-wrap {
	text-align: center;
	margin-top: 24px;
}

/* ボタン全体 */
.history-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 12px 28px;
	background: var(--color-darkgreen);
	color: var(--color-white);
	border-radius: 999px;
	border: none;
	font-size: calc(var(--fs-base) * 1.0);
	font-weight: 600;
	cursor: pointer;
	margin: 32px auto 0;
	width: 320px;
}

/* テキスト */
.history-toggle__label {
	color: #fff;
}

/* 白丸（右側） */
.history-toggle__icon-box {
	width: 34px;
	height: 34px;
	background: var(--color-white);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* 共通：まず全部消す（FontAwesome を上書き） */
.history-toggle .history-toggle__icon {
	display: none !important;
	font-size: 14px;
	color: var(--color-darkgreen);
}

/* 初期状態：→ だけ表示 */
.history-toggle .history-toggle__icon--more {
	display: inline-block !important;
}

/* 開いたとき：↑だけ表示 */
.history.is-open .history-toggle .history-toggle__icon--more {
	display: none !important;
}

.history.is-open .history-toggle .history-toggle__icon--close {
	display: inline-block !important;
}

@media (max-width: 960px) {
	.history {
		width: 90%;
		margin: 0 auto;
	}
}


/* ---------------------------------------------------------
   私たちについて：書籍カード
--------------------------------------------------------- */
/* 全体：カード一覧 */
.media-block-wrap {
	display: flex;
	flex-wrap: wrap;
	gap: 40px;
	justify-content: space-between;
}

/* 各カード全体 */
.media-block {
	width: calc(33.333% - 27px);
	/* PC：3列 */
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	/* 上揃え */

	background: #fff;
	border-radius: 12px;
	padding: 20px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

/* 画像部分 */
.media-block__thumb {
	width: 100%;
	margin-bottom: 20px;
	align-self: flex-start;
}

/* PC：上揃えトリミング */
.media-block__thumb img {
	width: 100%;
	height: 280px;
	/* カード高さをそろえる枠 */
	object-fit: contain;
	/* ★ 全体表示 */
	object-position: center;
	/* 中央に配置 */
	display: block;
	background: #fff;
	border-radius: 6px;
}

/* スマホ：全体表示（縦スクロールせず縮小） */
@media (max-width: 600px) {
	.media-block__thumb img {
		height: auto;
		/* autoに戻す */
		object-fit: contain;
		/* 画像全体を見せる */
		object-position: center;
		/* 中央表示 */
	}
}

/* テキストエリア全体 */
.media-block__body {
	flex: 1;
	/* 残り高さを埋める */
	display: flex;
	flex-direction: column;
}

/* h3 見出し */
.media-block__title {
	font-size: calc(var(--fs-base) * 1.5);
	font-weight: 700;
	color: var(--color-pink);
	margin-bottom: 16px;
	line-height: 1.6;
}

/* 本文 */
.media-block__body p {
	margin-bottom: 12px;
	line-height: 1.9;
}

/* 著者情報など（カード下に固定） */
.media-block__meta {
	margin-top: auto;
	/* 一番下に寄せる */
	padding-top: 16px;
	font-size: calc(var(--fs-base) * 1.0);
	color: #666;
}

/* ---------------------------------------------------------
   responsive
--------------------------------------------------------- */
/* タブレット：2列 */
@media (max-width: 960px) {
	.media-block {
		width: calc(50% - 20px);
	}
}

/* スマホ：1列 */
@media (max-width: 600px) {
	.media-block {
		width: 100%;
	}

	.media-block__thumb img {
		height: 240px;
	}
}


/* ---------------------------------------------------------SDGs */
.sdgs-img1 {
	width: 420px !important;
	margin-top: 40px;
}

@media (max-width: 960px) {
	.sdgs-img1 {
		width: 80% !important;
		margin-top: 40px !important;
	}
}

/* ===== SDGs アイコン（PC 基本）===== */
.sdgs-grid {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 32px;
	max-width: 400px;
	margin: 0 auto 40px;
	padding: 20px 0;
}

/* アイテム中央寄せ */
.sdgs-item {
	display: flex;
	justify-content: center;
	align-items: center;
}

/* アイコン画像 */
.sdgs-item img {
	width: 120px;
	height: auto;
}

/* ===== スマホ（～768px） ===== */
@media (max-width: 768px) {
	.sdgs-grid {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 16px;
		grid-auto-rows: auto;
		grid-auto-flow: dense;
		width: 80%;
	}

	/* 3番目アイコンを①の下に固定 */
	.sdgs-item:nth-child(3) {
		grid-column: 1;
		grid-row: 2;
	}

	.sdgs-item img {
		width: 85%;
	}
}

/* 一覧全体（2×2 グリッド） */
.sdgs-report-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 40px 80px;
	max-width: 960px;
	margin: 0 auto;
}

/* 各アイテム */
.sdgs-report-item a {
	display: flex;
	align-items: center;
	gap: 24px;
	text-decoration: none;
	color: inherit;
}

/* サムネイル画像 */
.sdgs-report-thumb img {
	width: 160px;
	height: auto;
	display: block;
}

/* テキスト部分 */
.sdgs-report-year {
	font-size: 16px;
	font-weight: 700;
	margin: 0 0 4px;
}

.sdgs-report-title {
	font-size: 18px;
	font-weight: 700;
	margin: 0 0 4px;
}

.sdgs-report-size {
	font-size: 14px;
	margin: 0;
}

/* スマホ：1カラムで縦並び */
@media (max-width: 960px) {
	.sdgs-report-grid {
		grid-template-columns: 1fr;
		gap: 24px;
		width: 90%;
	}

	.sdgs-report-item a {
		gap: 16px;
	}

	.sdgs-report-thumb img {
		width: 130px;
	}
}


/* ---------------------------------------------------------訪問看護ステーションのぞみ */
.home-visit-img2 img {
	width: 80%;
	max-width: 800px;
	margin: 0 auto;
}

@media (max-width: 960px) {
	.home-visit-img2 img {
		width: 100%;
	}
}


/* ============================
   基本レイアウト（スマホ：1カラム）
============================ */
.home-visit-wrap {
	display: grid;
	grid-template-columns: 1fr;
	gap: 30px 20px;
	max-width: 1200px;
	margin: 0 auto;
	padding: 20px 20px;
	background: var(--palegreen2);
}

/* 各項目 */
.home-visit-item {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

/* 数字＋見出し 横並び */
.home-visit-header {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 10px;
}

/* 数字丸 */
.home-visit-num {
	background: #21b573;
	color: #fff;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: calc(var(--fs-base) * 1.0);
	font-weight: bold;
	flex-shrink: 0;
}

/* 見出し */
.home-visit-title {
	font-size: calc(var(--fs-base) * 1.5);
	font-weight: 700;
	margin: 0;
}

/* 画像（固定サイズで中央配置） */
.home-visit-img {
	width: 220px;
	height: 200px;
	object-fit: contain;
	display: block;
	margin: 10px auto 15px;
}

.home-visit-text {
	font-size: calc(var(--fs-base) * 1.0);
	line-height: 1.6;
	margin: 0;
}

/* ============================
   タブレット（768px〜959px）：2カラム
============================ */
@media (min-width: 768px) {
	.home-visit-wrap {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ============================
   PC（960px〜）：3カラム
============================ */
@media (min-width: 960px) {
	.home-visit-wrap {
		grid-template-columns: repeat(3, 1fr);
		gap: 50px 30px;
	}
}

@media (max-width: 960px) {
	.home-visit-wrap {
		gap: 50px 20px;
	}

	.home-visit-title {
		font-size: calc(var(--fs-base) * 1.3);
	}
}


/* 全体ラッパー */
.fee-table-wrap {
	max-width: 100%;
	/* 訪問看護ステーション960px */
	margin: 0 auto 40px;
}

@media (max-width: 960px) {
	.fee-table-wrap {
		max-width: 90%;
	}
}

/* テーブルの基本設定 */
.fee-table {
	width: 100%;
	border-collapse: collapse;
	table-layout: fixed;
	font-size: calc(var(--fs-base) * 1.0);
}

/* 共通セル */
.fee-table th,
.fee-table td {
	padding: 12px 16px;
	border: 1px solid #f7c3d5;
	text-align: center;
	vertical-align: middle;
}

/* 上段ヘッダー */
.fee-table__head,
.fee-table__head-empty {
	background: var(--color-pink);
	color: #fff;
	font-weight: 700;
}

/* 左端の空ヘッダー（幅だけ確保） */
.fee-table__head-empty {
	width: 30%;
}

/* 左列の行タイトル（時間帯など） */
.fee-table__row-title {
	background: var(--color-pink);
	color: #fff;
	font-weight: 700;
	line-height: 1.4;
}

/* 金額セル */
.fee-table td {
	background: var(--palepink);
}

/* 注釈 */
.fee-table-note {
	margin-top: 8px;
	font-size: calc(var(--fs-base) * 1.0);
	text-align: right;
}

/* 訪問看護 ご利用の流れ */
.flow-wrap {
	max-width: 1100px;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	column-gap: 36px;
	margin-top: 50px;
}

.flow-card {
	position: relative;
	width: 260px;
	height: 180px;
	padding: 18px 22px;
	box-sizing: border-box;
	border: 2px solid var(--color-pink);
	border-radius: 4px;
	background: var(--palepink);
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
}

.flow-header {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 10px;
}

.flow-num {
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--color-darkgreen);
	color: var(--color-white);
	font-weight: 700;
	font-size: 15px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.flow-title {
	font-size: calc(var(--fs-base) * 1.2);
	font-weight: 700;
}

.flow-text {
	font-size: calc(var(--fs-base) * 1.0);
	line-height: 1.6;
	margin: 0;
}

/* ▼ PCの右向き矢印 */
.flow-card:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 50%;
	right: -50px;
	transform: translateY(-50%);
	width: 64px;
	height: 28px;
	background: url("../../images/home-visit-flow-arrow.png") no-repeat center / contain;
	z-index: 1;
}

/* ▼ スマホ：縦並び + 下向き矢印 + 横幅100% */
@media (max-width: 960px) {

	.flow-wrap {
		flex-direction: column;
		row-gap: 0;
		/* ← 矢印位置を自由にするため必要 */
	}

	.flow-card {
		width: 100%;
		height: auto;
		margin-bottom: 50px;
		/* ← 矢印スペースをここで確保する */
	}

	.flow-card:last-child {
		margin-bottom: 0;
	}

	.flow-card:not(:last-child)::after {
		content: "";
		position: absolute;
		top: 102%;
		left: 50%;
		bottom: -40px;
		transform: translateX(-50%);
		width: 70px;
		height: 70px;
		background: url("../../images/home-visit-flow-arrow-down.png") no-repeat center / contain;
	}
}


/* ---------------------------------------------------------クリニック */
/* 全体 */
.clinic-info {
	max-width: 900px;
	margin: 0 auto 40px;
	font-size: calc(var(--fs-base) * 1.0);
	line-height: 1.6;
}

/* 1行（ラベル＋内容） */
.clinic-info-row {
	display: flex;
	gap: 32px;
	margin-bottom: 32px;
}

/* 左側ラベル */
.clinic-info-label {
	flex: 0 0 90px;
	font-weight: 500;
}

/* 右側内容 */
.clinic-info-content {
	flex: 1;
}

/* 住所 */
.clinic-address {
	margin: 0 0 16px;
}

/* 地図 */
.clinic-map iframe {
	display: block;
	width: 100%;
	max-width: 100%;
	height: 280px;
}

/* 診療時間テーブルのラッパー */
.clinic-time-table-wrap {
	width: 100%;
	position: relative;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

/* 診療時間テーブル */
.clinic-time-table {
	width: 100%;
	border-collapse: collapse;
	margin-top: 8px;
	table-layout: fixed;
}

.clinic-time-table th,
.clinic-time-table td {
	padding: 8px 6px;
	text-align: center;
	font-weight: 400;
	white-space: normal;
	/* ★ 長い文字は折り返す */
	word-wrap: break-word;
}

.clinic-time-head-empty {
	width: 110px;
}

.clinic-time-slot {
	text-align: left;
	font-weight: 500;
}

/* 仕切り線（見出し下の線に近い感じで） */
.clinic-time-table thead tr {
	border-bottom: 1px solid #ccc;
}

.clinic-time-table tbody tr {
	border-top: 1px solid #ccc;
}

/* スマホ */
@media (max-width: 960px) {
	.clinic-info {
		padding: 0 16px;
	}

	.clinic-info-row {
		flex-direction: column;
		gap: 0px;
	}

	.clinic-info-label {
		flex: 0 0 50px;
		vertical-align: middle;
	}

	/* テーブルを横スクロール可能に */
	.clinic-time-table-wrap {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	/* 中身のテーブルは最小幅を持たせる（横スクロール用） */
	.clinic-time-table {
		min-width: 600px;
	}

	.clinic-time-table th,
	.clinic-time-table td {
		font-size: calc(var(--fs-base) * 1.0);
		padding: 6px 4px;
		white-space: nowrap;
		/* ●や曜日が縦に折り返されないように */
	}

	/* 午前8:00〜 12:00 のセルだけは改行したいので normal に戻す */
	.clinic-time-slot {
		white-space: normal;
	}
}

/* スクロールヒント（ベース） */
.clinic-scroll-hint {
	position: absolute;
	top: 50%;
	right: 8px;
	transform: translateY(-50%);
	z-index: 2;
	pointer-events: auto;
	/* クリック可能に変更 */
	cursor: pointer;
}

/* 緑の丸アイコン */
.clinic-scroll-hint__circle {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: #1a8635;
	color: #fff;
	box-shadow: 0 0 6px rgba(0, 0, 0, 0.2);
	animation: clinic-hint-pulse 1.2s infinite ease-in-out;
	font-size: 18px;
}

/* 指差しアイコン */
.clinic-scroll-hint__circle .fa {
	transform: translateX(-1px);
}

/* 脈打つような & 左右にフワッと動くアニメーション */
@keyframes clinic-hint-pulse {
	0% {
		transform: scale(1) translateX(0);
		opacity: 0.0;
	}

	25% {
		transform: scale(1.1) translateX(-4px);
		opacity: 1;
	}

	60% {
		transform: scale(1.05) translateX(0);
		opacity: 1;
	}

	100% {
		transform: scale(1.1) translateX(-4px);
		opacity: 0;
	}
}

/* 一度スクロールしたら消す用のクラス */
.clinic-scroll-hint.is-hidden {
	opacity: 0;
	animation: none;
	transition: opacity 0.3s;
}

/* PC では非表示 */
@media (min-width: 961px) {
	.clinic-scroll-hint {
		display: none;
	}
}

/* ボタンラッパー：中央揃えしつつ inner と同じ左位置になる */
.btn-link-green-wrap {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 40px;
	margin: 40px auto 0;
	max-width: 900px;
	width: 100%;
	padding: 0 16px;
	box-sizing: border-box;
}

/* スマホ：縦並び＆中央寄せ */
@media (max-width: 960px) {
	.btn-link-green-wrap {
		flex-direction: column;
		gap: 20px;
		justify-content: center;
		align-items: center;
	}
}

/* 罫線 */
.clinic-hr {
	border: none;
	/* デフォルトの線を消す */
	border-top: 1px solid var(--basepink);
	margin: 60px 0 40px;
}


/* ---------------------------------------------------------学童・保育 */
/* ---------- 全体 ---------- */
.section-block--childcare .inner {
	max-width: 1280px;
	margin: 0 auto;
	padding: 60px 20px 40px;
}

/* ==========================
   上部ヘッダー：見出し＋右テキスト
========================== */

.childcare-head {
	display: flex;
	justify-content: space-between;
	gap: 60px;
	align-items: flex-start;
	margin-bottom: 40px;
}

@media (max-width: 960px) {
	.childcare-head {
		flex-direction: column;
	}
}

/* 左側 */
.childcare-head-left {
	flex: 0 0 40%;
}

@media (max-width: 960px) {
	.childcare-head-left {
		width: 100%;
	}
}

/* 見出し（下線なし） */
.childcare-title {
	font-size: 32px;
	font-weight: 700;
	margin-bottom: 20px;
}


/* 小見出し用縦並び */
.childcare-title-wrap {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

/* 小見出し用 */
.childcare-title__small {
	font-size: calc(var(--fs-base) * 0.8);
	margin: 0 0 4px 0;
	line-height: 1.4;
}


/* タブ全体 */
.childcare-tabs {
	display: flex;
	gap: 18px;
	/* タブ同士の間隔 */
	margin-bottom: 24px;
	flex-wrap: wrap;
}

/* 1つ1つのタブ */
.childcare-tab {
	position: relative;
	display: inline-flex;
	align-items: center;
	padding: 10px 16px;
	border-radius: 10px;
	border: 2px solid var(--color-pink);
	background: #fff;
	color: var(--color-pink);
	font-size: calc(var(--fs-base) * 1.0);
	font-weight: 600;
	line-height: 1;
	cursor: pointer;
}

/* アクティブ状態 */
.childcare-tab.is-active {
	background: var(--color-pink);
	color: var(--color-white);
}

/* タブの右側のアイコン（FontAwesome の chevron-right） */
.childcare-tab::after {
	font-family: "FontAwesome";
	content: "\f054";
	/* chevron-right */
	font-size: 14px;
	/* 必要に応じて調整 */
	margin-left: 10px;
	color: var(--color-pink);
	display: inline-block;
}

/* アクティブ時：右側の矢印を白に変更 */
.childcare-tab.is-active::after {
	color: var(--color-white);
}


@media (max-width: 960px) {
	.childcare-tabs {
		flex-wrap: wrap;
		gap: 12px;
		justify-content: center;
	}

	.childcare-tab {
		width: 100%;
		/* 1行に1つずつ表示（ボックスいっぱい） */
		justify-content: center;
		text-align: center;
	}
}

/* サブタイトル */
.childcare-subtitle {
	font-size: calc(var(--fs-base) * 1.5);
	font-weight: 600;
	color: var(--color-pink);
	margin-top: 10px;
}

/* 右側テキスト */
.childcare-head-right {
	flex: 1;
	font-size: calc(var(--fs-base) * 1.0);
	line-height: 1.8;
}

@media (max-width: 960px) {
	.childcare-head-right {
		width: 100%;
	}
}

.childcare-head-right p+p {
	margin-top: 16px;
}

/* ==========================
   子供の成長に応じた の下ブロック
========================== */
/* ▼ 介護サービスごとの下ブロック（共通） */
.childcare-body {
	display: none;
	gap: 40px;
	align-items: flex-start;
	margin-top: 32px;
}

/* 表示中のブロック */
.childcare-body.is-active {
	display: flex;
}

@media (max-width: 960px) {
	.childcare-body {
		flex-direction: column;
	}
}

/* タブで飛んできた時に、ヘッダーと重ならない余白を取る */
.childcare-body {
	scroll-margin-top: 350px;
}

/* スマホでヘッダーが高い場合はメディアクエリで別値にしてもOK */
@media (max-width: 960px) {
	.childcare-body {
		scroll-margin-top: 350px;
	}
}

/* 左：保育園カード */
.childcare-body-left {
	flex: 0 0 45%;
}

.childcare-feature-card {
	padding: 24px 28px;
}

@media (max-width: 960px) {
	.childcare-feature-card {
		padding: 24px 0px;
		width: 90%;
		margin: 0 auto;
	}
}

/* 見出し全体 */
.childcare-title {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: 20px;
	font-size: calc(var(--fs-base) * 2.0);
}

@media (max-width: 960px) {
	.childcare-title {
		font-size: calc(var(--fs-base) * 1.5);
	}
}

/* 左のアイコン枠 + 画像 */
.childcare-title__icon {
	width: 72px;
	height: 72px;
	padding: 10px;
	border: 2px solid var(--basepink);
	border-radius: 10px;
	box-sizing: border-box;
	background: var(--color-white);
	object-fit: contain;
	/* 画像比率を維持 */
}

/* 右側タイトル文字 */
.childcare-title__text {
	font-size: calc(var(--fs-base) * 1.5);
	font-weight: 700;
	color: var(--color-mono);
}

@media (max-width: 960px) {
	.childcare-title__text {
		font-size: calc(var(--fs-base) * 1.5);
	}
}

.childcare-feature-text {
	font-size: calc(var(--fs-base) * 1.0);
	line-height: 1.8;
	margin-bottom: 8px;
}

/* 右：絞り込み＋施設一覧 */
.childcare-body-right {
	flex: 1;
}

@media (max-width: 960px) {
	.childcare-body-right {
		width: 100%;
	}
}


/* ======================================================
   地域から事業所を絞り込み（フィルターボックス）
====================================================== */
/* 外枠 */
.clinic-filter-box {
	background: #fdf6f7;
	border-left: 2px solid #f9c3ce;
	border-right: 2px solid #f9c3ce;
	border-radius: 12px;
	padding: 32px 32px 28px;
	margin: 40px 0;
}

.clinic-filter-title {
	position: relative;
	margin-bottom: 30px;
}

.clinic-filter-title__dot-large {
	position: absolute;
	border-radius: 50%;
	background: #f7b0c4;
	width: 32px;
	height: 32px;
	left: 0px;
	top: -4px;
}

.clinic-filter-title__text {
	padding-left: 40px;
	font-size: calc(var(--fs-base) * 1.0);
}

/* 見出し全体のラッパー */
.childcare-facility-heading {
	position: relative;
	margin: 60px 0 60px;
}

.childcare-facility-heading__text {
	margin: 0 0 0 45px;
	/* 丸の分だけ右に寄せる */
	font-size: calc(var(--fs-base) * 1.5);
	font-weight: 700;
	color: var(--color-mono);
}

/* 大きい丸＋小さい丸 */
.childcare-facility-heading__dot-small,
.childcare-facility-heading__dot-large {
	position: absolute;
	border-radius: 50%;
	background: #f7b0c4;
}

/* 小さい丸（左上） */
.childcare-facility-heading__dot-small {
	width: 10px;
	height: 10px;
	left: 0px;
	top: -7px;
}

/* 大きい丸（その右下） */
.childcare-facility-heading__dot-large {
	width: 32px;
	height: 32px;
	left: 0px;
	top: 4px;
}

/* 下線：見出し全体の下に、左側だけピンク→右側グレー */
.childcare-facility-heading::after {
	content: "";
	position: absolute;
	left: 0px;
	right: 0;
	bottom: -20px;
	height: 4px;
	background: linear-gradient(to right,
			#f7b0c4 60px,
			#e8e8e8 60px
			/* 残りがグレー */
		);
}

/* --------------------- ピンク丸が1つだけの見出し */
/* 見出し全体のラッパー → flex にして縦中央揃え */
.childcare-facility-heading-dot1 {
	position: relative;
	margin: 60px 0 60px;
	display: flex;
	align-items: center;
}

/* テキスト（左の丸の右にくる） */
.childcare-facility-heading-dot1__text {
	margin-left: 15px;
	/* 丸の分だけ右へ */
	font-size: calc(var(--fs-base) * 1.5);
	font-weight: 700;
	color: var(--color-mono);
	line-height: 1;
	/* 文字の上下を詰めるとさらに揃いやすい */
}

/* ピンクの丸 */
.childcare-facility-heading-dot1__dot-large {
	position: relative;
	/* absolute だとズレやすいので relative */
	width: 15px;
	height: 15px;
	border-radius: 50%;
	background: #f7b0c4;
	flex-shrink: 0;
	/* 丸が潰れないように */
}

/* 下線 */
.childcare-facility-heading-dot1::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -20px;
	height: 4px;
	background: linear-gradient(to right, #f7b0c4 60px, #e8e8e8 60px);
}

/* 左ブロックの施設の特徴、緑丸 */
/* 全体リスト */
.childcare-feature-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

@media (max-width: 960px) {
	.childcare-feature-list {
		width: 90%;
		margin: 0 auto;
	}
}

/* 各項目（丸＋テキスト） */
.childcare-feature-list__item {
	display: flex;
	align-items: center;
	border-bottom: 1px solid #e5e5e5;
	padding: 10px 0;
}

/* 緑の丸 */
.childcare-feature-list__dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--color-darkgreen);
	flex-shrink: 0;
	margin-right: 12px;
}

/* テキスト */
.childcare-feature-list__text {
	line-height: 1.6;
	color: var(--color-mono);
	font-size: calc(var(--fs-base) * 1.0);
	display: inline-block;
}

/* 左ブロックの施設の特徴、ご入居いただける方 */
/* --- 全体レイアウト：ピンク + 箇条書き --- */
.childcare-feature-box {
	display: flex;
	align-items: center;
	gap: 20px;
}

/* --- ピンクの四角（ここに CSS で2重丸） --- */
.childcare-feature-box__icon {
	width: 100px;
	height: 80px;
	background: var(--color-pink);
	border-radius: 4px;
	position: relative;

	display: flex;
	justify-content: center;
	align-items: center;
}

/* 白い2重丸（◎）をCSSで生成 */
.childcare-feature-box__icon::before,
.childcare-feature-box__icon::after {
	content: "";
	position: absolute;
	border-radius: 50%;
	border: 2px solid var(--color-white);
}

.childcare-feature-box__icon::before {
	width: 34px;
	height: 34px;
}

.childcare-feature-box__icon::after {
	width: 18px;
	height: 18px;
}

/* --- 箇条書きリスト（下線なし） --- */
.childcare-feature-box__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.childcare-feature-box__item {
	display: flex;
	align-items: center;
	margin-bottom: 0px;
}

/* 緑の丸 */
.childcare-feature-box__dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--color-darkgreen);
	flex-shrink: 0;
	margin-right: 10px;
}

/* テキスト */
.childcare-feature-box__text {
	font-size: calc(var(--fs-base) * 1.0);
	color: var(--color-mono);
	line-height: 1.6;
}

/* 市区町村ボタンエリア */
.clinic-filter-buttons {
	display: flex;
	gap: 20px;
	flex-wrap: wrap;
	margin-top: 5px;
}

/* 市区町村ボタン */
.clinic-filter-btn {
	display: inline-block;
	background: var(--border-gray);
	color: var(--color-white);
	padding: 10px 22px;
	border-radius: 20px;
	font-size: calc(var(--fs-base) * 1.0);
	font-weight: 500;
	transition: background 0.2s ease;
	border: none;
	cursor: pointer;
}

.clinic-filter-btn:hover {
	background: var(--color-darkgreen);
}

.clinic-filter-btn.is-active {
	background: var(--color-darkgreen);
	color: #fff;
}

/* スマホ調整 */
@media (max-width: 960px) {
	.clinic-filter-box {
		padding: 24px 20px;
	}

	.clinic-filter-title {
		gap: 10px;
	}

	.clinic-filter-buttons {
		gap: 12px;
	}
}

/* 施設カード全体 */
.childcare-facility-card {
	padding: 20px 0px 22px;
	margin-bottom: 24px;
}

/* ── 上部バー（所在地＋空き状況） ── */
.childcare-facility-top {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 6px 16px;
	border: 1px solid var(--color-pink);
	border-radius: 6px;
	margin-bottom: 18px;
	background: var(--color-white);
}

/* 左：所在地 */
.childcare-location-pill {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: calc(var(--fs-base) * 1.0);
	color: var(--color-pink);
	font-weight: 700;
}

/* ピン画像（左のアイコン） */
.childcare-location-icon-img {
	width: 20px;
	height: auto;
	display: block;
}

/* 空き状況のテキスト＋丸を横並び */
.childcare-status-wrap {
	display: flex;
	align-items: center;
	gap: 10px;
}

/* 空き状況の文字 */
.childcare-status-text {
	font-size: calc(var(--fs-base) * 1.0);
	color: var(--color-pink);
	font-weight: 700;
}

/* ○ × を中に入れられる丸 */
.childcare-status-circle {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 5px;
	background-color: var(--color-darkgreen);
	color: var(--color-white);
	/* 中の ○ × の色 */
	font-size: 24px;
	line-height: 1;
}

/* 施設の検索結果の画像 */
/* 外枠用ラッパー（角丸＆枠を持つ箱） */
.childcare-facility-img {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	/* 好きな比率に変更 */
	border-radius: 6px;
	overflow: visible;
	/* ← ここは visible（内側で隠す） */
}

@media (max-width: 960px) {
	.childcare-facility-img {
		aspect-ratio: 4 / 3;
		/* スマホは縦め、など */
	}
}

/* ピンクの枠は疑似要素で重ねて描く */
.childcare-facility-img::before {
	content: "";
	position: absolute;
	inset: 0;
	/* 四辺ぴったり */
	border: 2px solid var(--color-pink);
	border-radius: inherit;
	/* 親と同じ角丸 */
	box-sizing: border-box;
	pointer-events: none;
	z-index: 2;
}

/* 内側ラッパー：ここで画像をクリップする */
.childcare-facility-img-inner {
	width: 100%;
	height: 100%;
	border-radius: inherit;
	/* 外枠と同じ角丸で切り抜く */
	overflow: hidden;
	/* 画像がはみ出す部分を隠す */
	position: relative;
	z-index: 1;
}

/* 画像本体 */
.childcare-facility-img-inner img {
	display: block;
	/* 下の余白防止 */
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
}

/* hover → 画像だけ拡大（枠は動かさない） */
.js-facility-card-link:hover .childcare-facility-img-inner img {
	transform: scale(1.05);
}

/* カード全体に hover でカーソルを手にする */
.js-facility-card-link {
	cursor: pointer;
}

.childcare-facility-name {
	font-size: calc(var(--fs-base) * 2.0);
	font-weight: 700;
	margin: 15px 0px;
	display: flex;
	align-items: center;
	gap: 8px;
}

.childcare-facility-name br {
	display: none;
}

@media (max-width: 960px) {
	.childcare-facility-name {
		flex-direction: column;
		font-size: calc(var(--fs-base) * 1.5);
	}

	.childcare-facility-name br {
		display: block;
	}
}

/* 施設ロゴ */
.facility-logo {
	width: 120px;
	height: auto;
	display: block;
	margin-right: 15px;
}

@media (max-width: 960px) {
	.facility-logo {
		width: 180px;
		margin-right: 0px;
	}
}


/* 施設ジャンル */
.childcare-facility-genre {
	width: 300px;
	max-width: 300px;
	padding: 10px 10px;
	border: 1px solid var(--color-pink);
	border-radius: 8px;
	color: var(--color-pink);
	text-align: center;
	margin: 15px 0px;
	font-size: calc(var(--fs-base) * 1.0);
}

@media (max-width: 960px) {
	.childcare-facility-genre {
		margin: 15px auto;
	}
}


.childcare-owner-pill {
	width: 100%;
	max-width: 100%;
	padding: 10px 0px;
	/*border: 1px solid var(--color-pink);*/
	border-radius: 8px;
	/*color: var(--color-pink);*/
	text-align: left;
	margin: 15px 0px;
	font-size: calc(var(--fs-base) * 1.0);
}

@media (max-width: 960px) {
	.childcare-owner-pill {
		margin: 15px auto;
	}
}

.childcare-text {
	font-size: calc(var(--fs-base) * 1.0);
	padding: 15px 0px 15px 30px;
	position: relative;
	line-height: 1.6;
}

/* ピンクの丸（テキスト1行目と中央揃え） */
.childcare-text::before {
	content: "";
	position: absolute;
	left: 10px;
	top: 1.6em;
	transform: translateY(-50%);
	width: 10px;
	height: 10px;
	background: var(--basepink);
	border-radius: 50%;
}

/* 事業所詳細 */
/* 詳細DL（3行をきれいに揃える） */
.childcare-facility-detail {
	margin: 0;
	font-size: calc(var(--fs-base) * 1.0);
	line-height: 1.8;
}

.childcare-facility-detail>div {
	display: grid;
	grid-template-columns: 90px 1fr;
	/* ← 左ラベル幅固定 / 右側可変 */
	column-gap: 8px;
	margin-bottom: 4px;
}

.childcare-facility-detail dt {
	font-weight: 600;
	white-space: nowrap;
}

.childcare-facility-detail dd {
	margin: 0;
}


/* 入居一時金セレクトと詳細ボタン */
/* -------------------------------
   入居一時金：ラベル＋トグル
-------------------------------- */
.childcare-admission-row {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 18px;
	font-size: calc(var(--fs-base) * 1.0);
}

.childcare-admission-row__label {
	color: var(--color-mono);
	letter-spacing: 0.03em;
}

/* トグル全体 */
.childcare-admission-toggle {
	display: inline-flex;
	gap: 6px;
}

/* トグルボタン（あり／なし） */
.childcare-admission-toggle__btn {
	min-width: 64px;
	height: 28px;
	padding: 0 14px;
	border-radius: 999px;
	border: 1px solid #e1e1e1;
	background: #f6f6f6;
	color: #b5b5b5;
	font-size: calc(var(--fs-base) * 1.0);
	line-height: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: default;
	box-sizing: border-box;
}

/* アクティブ：あり */
.childcare-admission-toggle__btn.is-active {
	background: #ffe4f0;
	border-color: var(--color-pink);
	color: var(--color-pink);
	font-weight: 700;
}

/* -------------------------------
   グリーンのアクションボタン
-------------------------------- */
.childcare-admission-actions {
	display: flex;
	gap: 16px;
	margin-top: 4px;
}

/* pill ボタン本体 */
.childcare-admission-btn {
	display: flex;
	/* ← inline-flex から flex に変更 */
	align-items: center;
	justify-content: space-between;
	/* ★ テキスト左／アイコン右に配置 */
	min-width: 180px;
	height: 40px;
	padding: 0 20px;
	border-radius: 999px;
	border: 2px solid #00a24a;
	background: #e3f9ea;
	color: #00883b;
	font-size: calc(var(--fs-base) * 1.0);
	text-decoration: none;
	box-sizing: border-box;
	gap: 10px;
}

/* テキスト */
.childcare-admission-btn__text {
	letter-spacing: 0.03em;
}

/* 右側の丸い矢印 */
.childcare-admission-btn__icon {
	width: 24px;
	height: 24px;
	border-radius: 50%;
	border: 2px solid currentColor;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
}

/* ▶ の位置を少しだけ右寄せ */
.childcare-admission-btn__icon-arrow {
	font-size: 8px;
	line-height: 1;
	transform: translateX(1px);
}

@media (max-width: 600px) {
	.childcare-admission-actions {
		flex-direction: column;
		gap: 12px;
	}

	.childcare-admission-btn {
		width: 100%;
		justify-content: space-between;
	}
}


/* ---------------------------------------------------------介護・医療 */
/* セクション全体 */
.section-block--facility-search {
	background: var(--palepink);
	padding: 40px 0 60px;
}

/* ボックス本体 */
.facility-search {
	position: relative;
	max-width: 1250px;
	margin: 0 auto;
	background: #fff;
	border-radius: 0px;
	padding: 32px 60px 40px;
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.04);
	border-left: 4px solid var(--color-pink);
	border-right: 4px solid var(--color-pink);
}

/* 見出し全体 */
.facility-search__heading {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	padding: 22px 0;
	border-top: 4px solid var(--basepink);
	border-bottom: 4px solid var(--basepink);
	margin-bottom: 40px;
}

/* 丸い枠（CSS生成） */
.facility-search__icon {
	width: 48px;
	height: 48px;
	border: 3px solid #f3b1bd;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #fff;

	/* 中央にアイコン画像を置く */
	background-image: url("../../images/icon-child-title.png");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 26px auto;
}

/* 見出しテキスト */
.facility-search__title {
	font-size: calc(var(--fs-base) * 1.5);
	font-weight: 700;
	color: var(--color-mono);
	margin: 0;
}

/* 行レイアウト */
.facility-search__row {
	margin-bottom: 24px;
}

.facility-search__row--top {
	display: flex;
	gap: 32px;
	margin-bottom: 32px;
}

.facility-search__column {
	flex: 1;
}

/* ステップ見出し全体 */
.facility-search-step__head {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 12px;
	margin-bottom: 12px;
	padding-bottom: 8px;
	border-bottom: 2px solid #ccc;
	/* 下線 */
}

/* 左の緑丸数字 */
.facility-search-step__num {
	width: 34px;
	height: 34px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--color-darkgreen);
	color: var(--color-white);
	font-weight: bold;
	border-radius: 50%;
	font-size: calc(var(--fs-base) * 1.0);
}

/* ラベル全体 */
.facility-search-step__label {
	font-size: calc(var(--fs-base) * 1.5);
	font-weight: 600;
	color: var(--color-mono);
}

/* 「地域」などの強調部分（ピンク） */
.facility-search-step__label-em {
	color: var(--color-pink);
	font-weight: 700;
}

/* セレクト全体の枠 */
.facility-search-select {
	position: relative;
	display: block;
	border: 2px solid var(--color-pink);
	border-radius: 8px;
	background: #fff;
}

/* <select> 本体 */
.facility-search-select__input {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	border: none;
	background: transparent;
	width: 100%;
	padding: 12px 56px 12px 16px;
	/* 右側は丸アイコンぶん余白 */
	font-size: calc(var(--fs-base) * 1.0);
	line-height: 1.4;
	box-sizing: border-box;
	cursor: pointer;
}

/* フォーカス時の枠線（お好みで） */
.facility-search-select__input:focus {
	outline: none;
}

/* 右側の丸＋アイコン */
.facility-search-select__icon {
	position: absolute;
	right: 14px;
	top: 50%;
	transform: translateY(-50%);
	/* 垂直中央揃え */
	width: 32px;
	height: 32px;
	border-radius: 50%;
	border: 2px solid var(--color-pink);
	background: var(--color-pink);
	display: flex;
	/* 中身を中央に */
	align-items: center;
	justify-content: center;
	pointer-events: none;
	/* クリックは select に通す */
}

/* 中の Font Awesome アイコン */
.facility-search-select__icon .fa {
	font-size: calc(var(--fs-base) * 1.0);
	color: var(--color-white);
}

/* チェックボックス群 */
.facility-search-checkboxes {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 18px;
	margin-top: 10px;
}

.facility-search-check {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: calc(var(--fs-base) * 1.0);
}

/* チェックボックスの標準見た目をリセット */
.facility-search-check input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;

	width: 20px;
	height: 20px;
	border: 1px solid var(--color-pink);
	border-radius: 4px;
	cursor: pointer;
	position: relative;
	background: #fff;
}

/* チェックマークを表示（FontAwesome不要） */
.facility-search-check input[type="checkbox"]::after {
	content: "";
	position: absolute;
	left: 6px;
	top: 1px;
	width: 6px;
	height: 12px;
	border-right: 2px solid var(--color-pink);
	border-bottom: 2px solid var(--color-pink);
	transform: rotate(45deg);
	opacity: 0;
	/* 初期は非表示 */
}

/* チェック状態 */
.facility-search-check input[type="checkbox"]:checked {
	background: #fff;
	border-color: var(--color-pink);
}

/* チェックマークを表示 */
.facility-search-check input[type="checkbox"]:checked::after {
	opacity: 1;
}

/* CTAボタン */
.facility-search__cta {
	text-align: center;
	margin-top: 24px;
}

.facility-search-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 40px;
	border-radius: 999px;
	border: none;
	background: #00a651;
	color: var(--color-white);
	font-size: calc(var(--fs-base) * 1.0);
	font-weight: 600;
	cursor: pointer;
}

.facility-search-btn__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: #fff;
	color: #00a651;
	font-size: calc(var(--fs-base) * 0.8);
}

/* 右下の装飾丸 */
.facility-search__decor {
	position: absolute;
	border-radius: 50%;
	background: rgba(255, 155, 190, 0.45);
	pointer-events: none;
}

.facility-search__decor--big {
	width: 80px;
	height: 80px;
	right: 40px;
	bottom: 16px;
}

.facility-search__decor--small {
	width: 26px;
	height: 26px;
	right: 80px;
	bottom: 76px;
}

/* スマホ対応 */
@media (max-width: 768px) {
	.facility-search {
		padding: 24px 16px 32px;
	}

	.facility-search__row--top {
		flex-direction: column;
		gap: 20px;
	}

	.facility-search__title {
		font-size: calc(var(--fs-base) * 1.0);
	}
}

/* 装飾コンテナ – タイトルのすぐ上に置く */
.cta-facility-decoration-wrap {
	position: absolute;
	bottom: 160px;
	right: 20%;
	width: 1px;
	height: 1px;
	z-index: 1;
	/* CTAタイトルより上 */
}

/* 大きい丸 */
.cta-facility-decoration-wrap::before {
	content: "";
	position: absolute;
	width: 100px;
	height: 100px;
	border-radius: 50%;
	background: linear-gradient(135deg, #ff9eb6 0%, #f06388 100%);
	opacity: 0.9;
	top: 10px;
	left: 0;
}

@media (max-width: 960px) {
	.cta-facility-decoration-wrap {
		bottom: 70px;
		right: 25%;
	}

	.cta-facility-decoration-wrap::before {
		width: 60px;
		height: 60px;
		top: 40px;
	}
}

/* 小さい丸 */
.cta-facility-decoration-wrap::after {
	content: "";
	position: absolute;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--basepink);
	top: -20px;
	left: 0px;
}

@media (max-width: 960px) {
	.cta-facility-decoration-wrap::after {
		width: 18px;
		height: 18px;
		top: 20px;
	}
}

/* 検索結果の件数表示 */
/* 全体 */
.search-result {
	text-align: center;
	margin: 60px 0;
	color: #333;
}

/* 上段（検索結果 7件中 1-5件目） */
.search-result__top {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 8px;
	font-size: 20px;
	font-weight: 600;
	margin-bottom: 20px;
}

/* 左のピンク縦棒 */
.search-result__bar {
	display: inline-block;
	width: 4px;
	height: 24px;
	background: var(--color-pink, #e5608b);
	border-radius: 2px;
	margin-right: 6px;
}

/* 「検索結果」 */
.search-result__label {
	color: var(--color-pink, #e5608b);
	font-weight: 700;
}

/* 数字部分 */
.search-result__count,
.search-result__range {
	font-size: 32px;
	font-weight: 700;
	margin: 0 4px;
}

/* 件中 / 件目を表示中 */
.search-result__unit {
	font-size: 16px;
	font-weight: 400;
	color: #333;
}

/* 下段（現在の検索条件） */
.search-result__current {
	margin-top: 10px;
	font-size: 16px;
}

.search-result__current-label {
	color: var(--color-pink, #e5608b);
	font-weight: 700;
	display: block;
	margin-bottom: 4px;
}

.search-result__current-value {
	font-size: 16px;
}

/* =========================
   検索結果ヘッダー：SP整形
========================= */
@media (max-width: 768px) {

	.search-result {
		margin: 36px 0;
	}

	.search-result__top {
		flex-wrap: wrap;
		/* 折り返す */
		justify-content: center;
		gap: 6px 10px;
		/* 縦 横 */
		font-size: 16px;
		margin-bottom: 14px;
	}

	/* 「検索結果」ブロックを1行目に固定 */
	.search-result__bar {
		height: 20px;
		margin-right: 4px;
	}

	.search-result__label {
		margin-right: 6px;
	}

	/* 数字は少し小さく */
	.search-result__count,
	.search-result__range {
		font-size: 28px;
		margin: 0 2px;
	}

	/* 「件中 / 件目を表示中」は改行して読みやすく */
	.search-result__unit {
		font-size: 14px;
		white-space: nowrap;
	}

	/* 「0件目を表示中」は 0 - 10 の間だけは同じ行にしたい場合 */
	.search-result__range {
		display: inline-flex;
		align-items: baseline;
	}
}


/* ---------------------------------------------------------保育園・学童 */
.child-type-buttons {
	display: flex;
	gap: 16px;
	margin: 0 0 32px;
}

.child-type-btn {
	background: #f89cbc;
	border-radius: 24px;
	font-size: 18px;
	padding: 12px 32px;
	border: none;
	cursor: pointer;
}

.child-type-btn.is-active {
	background: #ffffff;
	border: 2px solid #f89cbc;
}

/* 保育園・学童検索ページだけ、検索結果エリアを最初から表示（flexで） */
#page-care-child #facility-search-result {
	display: flex !important;
}

/* 保育園・学童検索ページだけ「空き状況」を非表示 */
#page-care-child .childcare-status-wrap {
	display: none;
}


/* ---------------------------------------------------------在宅支援 */
/* 在宅支援ページだけ、検索結果エリアを最初から表示（flexで） */
#page-care-zaitaku #facility-search-result {
	display: flex !important;
}

/* 在宅支援ページだけ「空き状況」を非表示 */
#page-care-zaitaku .childcare-status-wrap {
	display: none;
}


/************************************************************
  在宅支援以外の CTA セクション
************************************************************/
/* セクション全体 */
.section-block--cta-care {
	padding: 60px 0;
	background: #fdf7f8;
	width: 100%;
}

/* 見出し */
.cta-care-title {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 26px;
	font-weight: 700;
	margin-bottom: 40px;
}

.cta-care-title__dot {
	width: 14px;
	height: 14px;
	background: #e5608b;
	border-radius: 50%;
	display: inline-block;
}

/* 2カラム */
.cta-care-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 32px;
}

/* カード共通 */
.cta-care-card {
	background: #fff;
	border-radius: 14px;
	padding: 30px 34px;
}

/************************************************************
  左カード（介護施設について）
************************************************************/
.cta-care-card__head {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: 30px;
}

/* 左の四角い背景付きアイコン */
.cta-care-icon-box {
	width: 60px;
	height: 60px;
	border: 2px solid var(--basepink);
	border-radius: 8px;
	background: var(--color-white);
	display: flex;
	align-items: center;
	justify-content: center;
}

.cta-care-icon__inner {
	font-size: 32px !important;
	color: var(--basepink);
}

.cta-care-card__title {
	font-size: calc(var(--fs-base) * 1.5);
	font-weight: 700;
}

/* タグボタン */
.cta-care-tag-list {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 24px;
}

.cta-care-tag {
	border: 2px solid #e5608b;
	border-radius: 10px;
	background: #fff;
	color: #e5608b;
	padding: 10px 18px;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	position: relative;
}

.cta-care-tag::after {
	content: "";
	width: 8px;
	height: 8px;
	background: #e5608b;
	border-radius: 50%;
	position: absolute;
	right: 10px;
	top: 50%;
	transform: translateY(-50%);
}

/* 緑の大ボタン */
.cta-care-main-btn {
	display: flex;
	justify-content: center;
	align-items: center;
	background: #24a24a;
	color: #fff;
	border-radius: 999px;
	padding: 14px 22px;
	font-size: 16px;
	font-weight: 600;
	text-decoration: none;
	width: 100%;
	gap: 12px;
}

.cta-care-main-btn__icon {
	background: #fff;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	color: #24a24a;
	font-size: 14px;
	display: flex;
	justify-content: center;
	align-items: center;
}


/************************************************************
  右カード（お電話でのご相談）
************************************************************/
.cta-care-card--phone .cta-care-icon-box {
	background: var(--color-white);
}

.cta-care-lead {
	font-size: calc(var(--fs-base) * 1.0);
	margin-bottom: 18px;
}

.cta-care-time-pill {
	display: inline-block;
	background: var(--color-pink);
	color: #fff;
	padding: 6px 18px;
	border-radius: 25px;
	font-size: calc(var(--fs-base) * 1.2);
	font-weight: 600;
	margin-bottom: 16px;
}

.cta-care-time-pill br {
	display: none;
}

.cta-care-tel {
	font-size: calc(var(--fs-base) * 2.5);
	font-weight: 700;
	color: #333;
	display: flex;
	align-items: center;
	gap: 12px;
}

/* 電話番号下線 */
.cta-care-tel a {
	position: relative;
	text-decoration: none;
	/* デフォルトの下線を消す */
}

.cta-care-tel a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -3px;
	height: 3px;
	background: currentColor;
	border-radius: 2px;
}

.cta-care-tel__icon {
	font-size: 24px;
	color: #333;
}


/************************************************************
  レスポンシブ
************************************************************/
@media (max-width: 960px) {
	.cta-care-grid {
		grid-template-columns: 1fr;
	}

	.cta-care-title {
		font-size: calc(var(--fs-base) * 1.5);
		width: 90%;
		margin: 0 auto;
		margin-bottom: 15px;
	}

	.cta-care-card {
		padding: 24px 20px;
	}

	.cta-care-time-pill {
		width: 100%;
		text-align: center;
	}

	.cta-care-time-pill br {
		display: block;
	}

	.cta-care-tel {
		font-size: calc(var(--fs-base) * 2.0);
		justify-content: center;
	}
}


/* ---------------------------------------------------------求人情報、福利厚生カード */
/* カード一覧のグリッド */
.benefits-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px 24px;
	max-width: 1200px;
	margin: 0 auto 32px;
}

/* 1枚のカード */
.benefit-card {
	background: #fff;
	border: 2px solid var(--basepink);
	border-radius: 8px;
	padding: 24px 20px 28px;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	/* 中身の幅をカードいっぱいにする */
	box-sizing: border-box;
	text-align: left;
}

/* アイコンの高さを揃えるボックス */
.benefit-card__icon {
	width: 100%;
	height: 90px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 16px;
}

/* 中の画像はそのまま縮小 */
.benefit-card__icon img {
	max-height: 80px;
	/* 最大サイズ（高さ揃え） */
	max-width: 80px;
	height: auto;
	width: auto;
}

/* タイトル */
.benefit-card__title {
	font-size: calc(var(--fs-base) * 1.1);
	font-weight: 700;
	color: var(--color-pink);
	margin: 0 0 10px;
	line-height: 1.4;
	text-align: center;
	display: block;
	width: 100%;
}

/* 本文 */
.benefit-card__text {
	font-size: calc(var(--fs-base) * 0.95);
	line-height: 1.7;
	color: var(--color-mono);
	margin: 0;
}

/* 注釈 */
.benefits-note {
	font-size: calc(var(--fs-base) * 0.9);
	text-align: left;
	margin: 0 auto;
	max-width: 1200px;
}

/* =========================================
   スマホ・タブレットのレスポンシブ
========================================= */
@media (max-width: 768px) {
	.benefits-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 16px;
		width: 90%;
	}

	.benefit-card {
		padding: 18px 14px 22px;
	}
}

@media (max-width: 480px) {
	.benefits-grid {
		grid-template-columns: 1fr;
		width: 90%;
	}

	.benefits-note {
		text-align: center;
	}
}


/* ================================
   エントリーの流れ
================================ */
/* セクション全体のラッパー */
.entry-flow {

	margin: 0 auto 60px;
	font-size: calc(var(--fs-base) * 1.0);
}

/* 説明文 */
.entry-flow__lead {
	margin: 0 0 24px;
	line-height: 1.8;
}

/* リスト全体 */
.entry-flow-list {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid #f3f3f3;
	margin: 0 auto;
	max-width: 900px;
	width: 100%;
}

/* 各ステップ1行 */
.entry-flow-item {
	display: flex;
	align-items: center;
	gap: 24px;
	padding: 16px 0;
	border-bottom: 1px solid #f3f3f3;
}

/* 左側の番号入り丸 */
.entry-flow-item__icon {
	flex: 0 0 52px;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: var(--color-darkgreen);
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-weight: 700;
	font-size: calc(var(--fs-base) * 1.2);
}

/* 右側テキストブロック */
.entry-flow-item__body {
	flex: 1;
	display: flex;
	align-items: baseline;
	gap: 32px;
}

/* ステップ名（応募 / 書類選考…） */
.entry-flow-item__title {
	margin: 0;
	min-width: 5em;
	font-weight: 700;
	font-size: calc(var(--fs-base) * 1.0);
}

/* 説明文 */
.entry-flow-item__text {
	margin: 0;
	line-height: 1.8;
}

/* ================================
   SP レイアウト
================================ */
@media (max-width: 768px) {

	/* 全体を 90% 幅に */
	.entry-flow {
		width: 90%;
	}

	.entry-flow-item {
		align-items: flex-start;
		gap: 16px;
	}

	.entry-flow-item__body {
		flex-direction: column;
		gap: 4px;
	}

	.entry-flow-item__title {
		min-width: auto;
		font-size: calc(var(--fs-base) * 1.05);
	}

	.entry-flow-item__text {
		font-size: calc(var(--fs-base) * 0.95);
	}
}


/* =========================
   求人セクション
========================= */
.job-section {
	margin-top: 40px;
}

/* 「正社員」「アルバイト」見出し（丸＋文字） */
.job-type-title {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 40px 0 20px;
	font-size: calc(var(--fs-base) * 1.3);
	font-weight: 700;
}

.job-type-title__circle {
	display: block;
	border-radius: 50%;
	background: linear-gradient(135deg, #ff9eb6 0%, #f06388 100%);
}

.job-type-title__circle--big {
	width: 42px;
	height: 42px;
}

.job-type-title__circle--small {
	width: 16px;
	height: 16px;
	margin-left: -26px;
	margin-top: -18px;
}

.job-type-title__text {
	margin-left: 10px;
}

/* 必要ならアルバイトだけ少し下げるなど */
.job-type-title--parttime {
	margin-top: 60px;
}

/* カードのグリッド（PC2列／SP1列） */
.job-cards-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 32px;
	max-width: 1200px;
	margin: 0 auto 40px;
}

/* 1つの求人カード */
.job-card {
	background: #fff;
	border: 2px solid var(--basepink);
	border-radius: 8px;
	padding: 24px 26px 28px;
	box-sizing: border-box;
}

/* カードタイトル（ピンク・中央寄せ） */
.job-card__title {
	font-size: calc(var(--fs-base) * 1.5);
	font-weight: 700;
	color: var(--color-pink);
	text-align: center;
	margin: 0 0 14px;
}

/* サブリード */
.job-card__lead {
	font-size: calc(var(--fs-base) * 1.0);
	margin: 0 0 10px;
}

/* 職種リスト */
.job-card__list {
	margin: 0;
	padding-left: 1.2em;
	list-style: disc;
	font-size: calc(var(--fs-base) * 1.0);
	line-height: 1.7;
}

/* 「急募」などのバッジ */
.job-badge {
	display: inline-block;
	margin-left: 6px;
	padding: 1px 8px;
	border-radius: 999px;
	background: var(--basepink);
	color: #fff;
	font-size: 16px;
	line-height: 1.4;
	vertical-align: middle;
}

/* =========================
   スマホ
========================= */
@media (max-width: 960px) {
	.job-cards-grid {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.job-card {
		padding: 20px 18px 22px;
	}

	.job-card__title {
		font-size: calc(var(--fs-base) * 1.3);
	}

	.job-type-title {
		margin-left: 5%;
	}

	.job-cards-grid {
		width: 90%;
		/* エントリーの下と同じように 90% 幅 */
	}
}


/* ===== 求人タブ ===== */
/* タブボタンをまとめる部分 */
.job-tabs {
	display: flex;
	gap: 12px;
	justify-content: center;
	margin: 24px auto 32px;
}

/* タブボタン本体 */
.job-tab {
	padding: 8px 26px;
	border-radius: 999px;
	border: 2px solid var(--basepink);
	background: #fff;
	color: var(--color-mono);
	font-size: 16px;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

/* アクティブタブ */
.job-tab.is-active {
	background: var(--basepink);
	color: #fff;
}

/* タブの中身：基本は非表示 */
.job-tab-content {
	display: none;
}

/* 表示中のタブ内容 */
.job-tab-content.is-active {
	display: block;
}

/* =====================================
   スマホ（～768px）：タブを2段にする
===================================== */
/* SP 少し調整：スマホではタブを縦2段＆横長ピルにする */
@media (max-width: 768px) {

	.job-tabs {
		flex-direction: column;
		gap: 8px;
		align-items: center;
		width: 100%;
		margin: 20px auto 24px;
	}

	.job-tab {
		display: block;
		width: 90%;
		/* 画面幅に対して広めに */
		max-width: 340px;
		padding: 10px 16px;
		border-radius: 999px;
		font-size: 14px;
		line-height: 1.4;
		text-align: center;
		white-space: normal;
		/* テキストは折り返しOK */
	}
}

/* 正社員タブ内容 */
#job-fulltime.is-active {
	background: var(--palepink);
	padding: 20px;
	border-radius: 12px;
}

/* アルバイトタブ内容 */
#job-parttime.is-active {
	background: var(--color-white);
	padding: 20px;
	border-radius: 12px;
}

/* 正社員の背景 */
.full-bg {
	background: var(--palepink);
	padding: 20px;
	border-radius: 12px;
}

/* アルバイトの背景 */
.part-bg {
	background: var(--color-white);
	padding: 20px;
	border-radius: 12px;
}

.job-tabs-wrapper {
	position: relative;
	margin-bottom: 40px;
	height: 60px;
	display: flex;
	justify-content: center;
	align-items: center;
}


/* ---------------------------------------------------------お問い合わせフォーム */
/* ---------------------------------------------------------
   お問い合わせフォーム
---------------------------------------------------------- */
/* -------------------------------------------
   Contact Form 7 リセット
------------------------------------------- */
/* フォーム全体 */
.wpcf7 form.wpcf7-form {
	margin: 0;
}

/* p の余白を消して、独自 .form-row に任せる */
.wpcf7 form.wpcf7-form p {
	margin: 0;
	padding: 0;
}

/* ラッパーの position 調整 */
.wpcf7-form-control-wrap {
	position: static;
}

@media (max-width: 960px) {
	.wpcf7-form-wrap {
		width: 90%;
		margin: 0 auto;
	}
}


/* -------------------------------------------
   CF7 同意チェック（acceptance）用スタイル
   ※ .form-check__button 内のチェックをピンク四角に統一
------------------------------------------- */
.form-check__button .wpcf7-list-item {
	margin: 0;
}

/* ラベル本体 */
.form-check__button .wpcf7-list-item label {
	position: relative;
	padding-left: 26px;
	cursor: pointer;
	font-size: calc(var(--fs-base) * 1.0);
	line-height: 1.6;
	display: inline-flex;
	align-items: center;
}

/* ネイティブのチェックボックスは非表示に */
.form-check__button .wpcf7-list-item input[type="checkbox"] {
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	opacity: 0;
	width: 18px;
	height: 18px;
}

/* ラベルテキストを囲む span */
.form-check__button .wpcf7-list-item-label {
	position: relative;
}

/* ピンクの四角（未チェック） */
.form-check__button .wpcf7-list-item-label::before {
	content: "";
	position: absolute;
	left: -26px;
	top: 50%;
	transform: translateY(-50%);
	width: 18px;
	height: 18px;
	border-radius: 3px;
	border: 2px solid var(--color-pink);
	background: #fff;
	box-sizing: border-box;
}

/* チェック時：中を塗る */
.form-check__button .wpcf7-list-item input[type="checkbox"]:checked+.wpcf7-list-item-label::before {
	background: var(--color-pink);
}

/* チェックマーク */
.form-check__button .wpcf7-list-item input[type="checkbox"]:checked+.wpcf7-list-item-label::after {
	content: "";
	position: absolute;
	left: -20px;
	top: 4px;
	width: 6px;
	height: 10px;
	border-right: 2px solid #fff;
	border-bottom: 2px solid #fff;
	transform: rotate(45deg);
}


/* -------------------------------------------
   共通レイアウト
------------------------------------------- */
/* セクション */
.contact-section {
	padding: 40px 0 0px;
}

.contact-form {
	max-width: 100%;
	margin: 0 auto;
	font-size: 14px;
	color: var(--color-mono);
}

/* 行のベース */
.form-row {
	display: flex;
	align-items: flex-start;
	margin-bottom: 18px;
}

/* ラベル */
.form-label {
	width: 250px;
	padding-top: 10px;
	padding-right: 10px;
	font-size: calc(var(--fs-base) * 1.0);
}

.form-label--top {
	padding-top: 0;
}

.form-label__note {
	font-size: calc(var(--fs-base) * 0.8);
}

/* フィールド側 */
.form-field {
	flex: 1;
}

.form-field--note {
	max-width: 900px;
	margin: 0 auto;
	margin-top: 30px;
}

/* テキスト入力 & セレクトだけ 300px */
.form-input,
.form-select {
	width: 300px;
	max-width: 100%;
	box-sizing: border-box;
	padding: 10px 12px;
	border-radius: 4px;
	border: 2px solid var(--color-pink);
	background: #fff;
	font-size: calc(var(--fs-base) * 1.0);
	font-family: inherit;
	color: var(--color-mono);
}

/* textarea は横いっぱい */
.form-textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 10px 12px;
	border-radius: 4px;
	border: 2px solid var(--color-pink);
	background: #fff;
	font-size: calc(var(--fs-base) * 1.0);
	font-family: inherit;
	color: var(--color-mono);
	min-height: 180px;
	resize: vertical;
}

.form-input::placeholder {
	color: #ccc;
}

/* セレクト（カスタム矢印） */
.form-select-wrap {
	position: relative;
	display: inline-block;
	width: 220px;
	max-width: 100%;
}

.form-select {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	padding-right: 40px;
}

/* 右側の丸＋矢印 */
.form-select-wrap::after {
	content: "";
	position: absolute;
	right: 8px;
	top: 50%;
	transform: translateY(-50%);
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--basepink);
}

.form-select-wrap::before {
	content: "";
	position: absolute;
	right: 16px;
	top: 50%;
	transform: translateY(-40%);
	border-width: 5px 4px 0 4px;
	border-style: solid;
	border-color: #fff transparent transparent transparent;
	z-index: 1;
}

/* 施設リスト（複数カラム） */
.facility-list {
	list-style: none;
	margin: 4px 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px 28px;
}

.facility-item {
	width: calc(33.333% - 20px);
	min-width: 220px;
}

/* 施設チェックボックスをピンクの四角デザインに */
.facility-list .wpcf7-list-item {
	margin-right: 0;
}

.facility-list .wpcf7-list-item label {
	position: relative;
	padding-left: 26px;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	font-size: calc(var(--fs-base) * 1.0);
	line-height: 1.6;
}

/* ネイティブ input を隠す */
.facility-list .wpcf7-list-item input[type="checkbox"] {
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	opacity: 0;
	width: 18px;
	height: 18px;
}

/* ラベルテキスト span */
.facility-list .wpcf7-list-item-label {
	position: relative;
}

/* ピンクの四角（未チェック） */
.facility-list .wpcf7-list-item-label::before {
	content: "";
	position: absolute;
	left: -26px;
	top: 50%;
	transform: translateY(-50%);
	width: 18px;
	height: 18px;
	border-radius: 3px;
	border: 2px solid var(--color-pink);
	background: #fff;
	box-sizing: border-box;
}

/* チェック時に塗りつぶし */
.facility-list .wpcf7-list-item input[type="checkbox"]:checked+.wpcf7-list-item-label::before {
	background: var(--color-pink);
}

/* チェックマーク */
.facility-list .wpcf7-list-item input[type="checkbox"]:checked+.wpcf7-list-item-label::after {
	content: "";
	position: absolute;
	left: -20px;
	top: 4px;
	width: 6px;
	height: 10px;
	border-right: 2px solid #fff;
	border-bottom: 2px solid #fff;
	transform: rotate(45deg);
}

/* 文章は左揃えのまま */
.form-notice {
	font-size: calc(var(--fs-base) * 1.0);
	margin: 0;
	line-height: 1.8;
	text-align: left;
}

/* 送信ボタン行 */
.form-row--submit {
	justify-content: center;
	margin-top: 24px;
	position: relative;
}

/* スピナーをボタン右上に重ねる */
.wpcf7-spinner {
	position: absolute !important;
	right: 35%;
	top: 50%;
	transform: translateY(-50%);
	margin: 0;
}

.btn-link-green__center {
	text-align: center;
}

.contact-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	padding: 10px 40px;
	border-radius: 999px;
	border: none;
	background: var(--color-darkgreen);
	color: #fff;
	font-size: calc(var(--fs-base) * 1.0);
	font-weight: 600;
	cursor: pointer;
}

.contact-submit__icon {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
}

.contact-submit__arrow {
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 6px 0 6px 9px;
	border-color: transparent transparent transparent var(--color-darkgreen);
}

/* テキストエリア行だけ高さを確保 */
.form-row--textarea .form-label {
	padding-top: 0;
}

/* ラベル上に揃えたい行 */
.form-row--full .form-label {
	padding-top: 0;
}

.form-row--full {
	justify-content: center;
}

.form-check__button {
	text-align: center;
}


/* =============================
   スマホレイアウト調整
============================= */
@media (max-width: 960px) {

	/* フォーム全体に左右余白 */
	.contact-form {
		padding: 0 16px;
	}

	/* 行を縦並びに */
	.form-row {
		flex-direction: column;
		align-items: flex-start;
	}

	/* ラベルは上・幅100% */
	.form-label {
		width: 100%;
		margin-bottom: 6px;
		padding-top: 0;
	}

	/* フィールド側も幅100% */
	.form-field {
		width: 100%;
	}

	/* input / select / textarea / セレクトラッパを横いっぱいに */
	.form-input,
	.form-select,
	.form-select-wrap,
	.form-textarea {
		width: 100%;
		max-width: 100%;
	}

	/* 施設チェックは1カラムに */
	.facility-list {
		flex-direction: column;
		gap: 4px;
	}

	.facility-item {
		width: 100%;
		min-width: 0;
	}

	/* 送信ボタンは幅100%（最大320px） */
	.btn-link-green {
		width: 100%;
		max-width: 320px;
		margin: 32px auto 0;
		justify-content: space-between;
	}
}


/* ------------------------------------------- 資料ダウンロード・お問い合わせCTA */
/* セクション全体 */
.cta-section {
	text-align: center;
	padding: 60px 0px 60px;
	background: var(--palegreen2);
	margin-top: 120px;
	width: 100%;
}

/* タイトル */
.cta-title {
	font-size: calc(var(--fs-base) * 2.0);
	font-weight: 700;
	margin-bottom: 25px;
}

@media (max-width: 960px) {
	.cta-title {
		font-size: calc(var(--fs-base) * 1.5);
	}
}

/* 電話番号 */
.cta-phone {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 16px;
	margin-bottom: 6px;
}

.cta-phone-icon {
	width: 70px;
	height: 70px;
	border-radius: 50%;
	background: #1a8635;
	display: flex;
	justify-content: center;
	align-items: center;
	color: var(--color-white);
	font-size: 30px;
}

.cta-phone-number {
	font-size: calc(var(--fs-base) * 2.5);
	font-weight: 700;
	margin: 0;
}

@media (max-width: 960px) {
	.cta-phone-number {
		font-size: calc(var(--fs-base) * 2.0);
	}
}

.cta-note {
	margin-bottom: 40px;
}

.cta-note br {
	display: none;
}

@media (max-width: 960px) {
	.cta-note br {
		display: block;
	}
}

/* ボタン周り */
.cta-buttons {
	display: flex;
	justify-content: center;
	gap: 40px;
	flex-wrap: wrap;
}

/* ボタンの箱 */
.cta-btn-wrap {
	width: 480px;
}

@media (max-width: 960px) {
	.cta-btn-wrap {
		width: 90%;
	}
}

/* メインボタン */
.cta-btn {
	position: relative;
	display: flex;
	justify-content: space-between;
	/* 左右のアイコンを両端に */
	align-items: center;
	background: #1a8635;
	color: var(--color-white);
	padding: 20px 28px;
	border-radius: 6px;
	text-decoration: none;
}

@media (max-width: 960px) {
	.cta-btn {
		padding: 20px 15px;
	}
}

/* 左側：アイコンだけ */
.cta-btn-left {
	display: flex;
	align-items: center;
}

/* 左側アイコン */
.cta-btn-left i {
	font-size: 42px;
	display: block;
	margin: 0;
}

/* 中央テキスト（ラベル＆タイトル） */
.cta-btn-text {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	display: flex;
	flex-direction: column;
	text-align: center;
	line-height: 1.2;
	white-space: nowrap;
	/* 必要に応じて折り返しを許可 */
}

/* ラベル */
.cta-btn-label {
	font-size: calc(var(--fs-base) * 1.0);
	padding: 5px 0px;
}

/* タイトル */
.cta-btn-title {
	font-size: calc(var(--fs-base) * 1.3);
	font-weight: 700;
}

@media (max-width: 960px) {
	.cta-btn-title {
		font-size: calc(var(--fs-base) * 1.2);
	}
}

/* 右側：再生アイコン枠 */
.cta-btn-right {
	display: flex;
	align-items: center;
}

.cta-btn-play {
	width: 46px;
	height: 46px;
	border: 2px solid var(--color-white);
	border-radius: 50%;
	display: flex;
	justify-content: center;
	align-items: center;
	background: var(--color-white);
}

.cta-btn-play i {
	font-size: 15px;
	color: var(--color-darkgreen);
	margin-left: 2px;
}

/* 下の説明文（黒い文字） */
.cta-desc {
	font-size: calc(var(--fs-base) * 1.0);
	margin-top: 12px;
	color: var(--color-mono);
	line-height: 1.7;
}

/* 電話番号下線 */
.cta-phone-number a {
	position: relative;
	text-decoration: none;
	/* デフォルトの下線を消す */
}

.cta-phone-number a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -3px;
	height: 3px;
	background: currentColor;
	border-radius: 2px;
}

/* 右上の丸模様 */
/* CTA全体を基準 */
.cta-section {
	position: relative;
	overflow: visible;
}

/* 装飾コンテナ – タイトルのすぐ上に置く */
.cta-decoration-wrap {
	position: absolute;
	top: -70px;
	right: 20%;
	width: 1px;
	height: 1px;
	z-index: 1;
}

/* 大きい丸 */
.cta-decoration-wrap::before {
	content: "";
	position: absolute;
	width: 100px;
	height: 100px;
	border-radius: 50%;
	background: linear-gradient(135deg, #ff9eb6 0%, #f06388 100%);
	opacity: 0.9;
	top: 10px;
	left: 0;
}

@media (max-width: 960px) {
	.cta-decoration-wrap::before {
		width: 60px;
		height: 60px;
		top: 40px;
	}
}

/* 小さい丸 */
.cta-decoration-wrap::after {
	content: "";
	position: absolute;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--basepink);
	top: -20px;
	left: 0px;
	/* 大きい丸の右上に配置 */
}

@media (max-width: 960px) {
	.cta-decoration-wrap::after {
		width: 18px;
		height: 18px;
		top: 20px;
	}
}


/* ------------------------------------------- イベント・メディア出演ページ */
/* 一覧全体 */
.event-media-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 24px;
}

/* 1カード */
.event-media-item {
	margin: 0;
}

/* カード全体リンク */
.event-media-link {
	display: flex;
	align-items: flex-start;
	text-decoration: none;
	color: inherit;
	background: #fff;
	border-radius: 10px;
	padding: 16px 20px;
	border: 1px solid #f3b1bd;
	box-shadow: 0 4px 12px rgba(0, 0, 0, .05);
	transition: transform .2s ease, box-shadow .2s ease;
}

/* リンクがない場合はクリック無効＆カーソル変更 */
.event-media-link.is-nolink {
	pointer-events: none;
	cursor: default;
}

/* hover */
.event-media-link:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 16px rgba(0, 0, 0, .1);
}

/* サムネイル（左側） */
.event-media-thumb {
	flex: 0 0 220px;
	/* サムネ幅 */
	margin-right: 24px;
}

.event-media-thumb img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 6px;
	object-fit: cover;
}

/* テキスト側（右側） */
.event-media-body {
	flex: 1 1 auto;
}

.event-media-date {
	font-size: 0.9rem;
	color: #999;
	margin: 0 0 4px;
}

.event-media-title {
	font-size: 1.1rem;
	font-weight: 700;
	margin: 0 0 8px;
}

.event-media-text p {
	margin: 0 0 6px;
	line-height: 1.7;
}

/* ▼ スマホでは縦並びにする */
@media (max-width: 767px) {
	.event-media-link {
		flex-direction: column;
		padding: 14px 14px;
	}

	.event-media-thumb {
		flex: 0 0 auto;
		width: 100%;
		margin-right: 0;
		margin-bottom: 12px;
	}
}


/* ------------------------------------------- wordpress customize */
/* wordpress管理メニューを非表示 */
#wpadminbar {
	display: none;
}


/* ------------------------- 検索結果 search.php */
/* =======================================
   検索結果ページ
======================================= */
.search-section {
	padding-top: 40px;
	padding-bottom: 60px;
}

.search-header {
	margin-bottom: 24px;
}

.search-header__title {
	font-size: calc(var(--fs-base) * 1.5);
	font-weight: 700;
	color: var(--color-mono, #333);
}

/* 一覧レイアウト */

.search-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 40px;
}

.search-item {
	margin: 0;
	width: 100%;
}

.search-card {
	display: flex;
	gap: 24px;
	text-decoration: none;
	color: inherit;
	align-items: flex-start;
	width: 100%;
}

/* サムネイル：サイズ固定 + hover拡大用の枠 */
.search-card__thumb {
	flex: 0 0 280px;
	max-width: 280px;
	height: 160px;
	/* ★高さ固定：どの画像も同じ縦サイズ */
	aspect-ratio: 16 / 9;
	/* ★16:9で完全固定 */
	overflow: hidden;
	/* はみ出し防止 */
	border-radius: 4px;
}

/* サムネイル画像：枠いっぱいにフィットさせる */
.search-card__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1);
	transition: transform 0.4s ease;
}

/* カード全体に hover で画像だけ拡大 */
.search-card:hover .search-card__thumb img {
	transform: scale(1.05);
}

/* 本文側 */
.search-card__body {
	flex: 1 1 auto;
}

.search-card__meta {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 8px;
}

.search-card__date {
	font-size: calc(var(--fs-base) * 1.0);
	color: var(--color-mono);
}

/* カテゴリバッジ（ピンク） */
.search-card__cat {
	display: inline-block;
	padding: 2px 10px;
	font-size: 12px;
	border-radius: 999px;
	background: var(--palepink);
	color: var(--color-white);
	line-height: 1.6;
}

/* タイトル・本文 */
.search-card__title {
	font-size: calc(var(--fs-base) * 1.5);
	font-weight: 700;
	color: var(--basepink);
	margin: 0 0 10px;
}

.search-card__excerpt {
	font-size: calc(var(--fs-base) * 1.0);
	line-height: 1.8;
	color: var(--color-mono);
}

/* hover：タイトルにだけ下線 */
.search-card:hover .search-card__title {
	text-decoration: underline;
}

/* スマホ */
@media (max-width: 960px) {
	.search-list {
		width: 90%;
		margin: 0 auto;
	}

	.search-card {
		flex-direction: column;
	}

	.search-card__thumb {
		max-width: 100%;
		flex: none;
		width: 100%;
	}
}

/* ページネーション（緑の丸ボタン） */
.search-pagination {
	margin-top: 48px;
	text-align: center;
}

.pagination {
	list-style: none;
	margin: 0;
	padding: 0;
	display: inline-flex;
	gap: 10px;
}

.pagination__item {
	margin: 0;
}

/* 共通スタイル（数字・前後ボタン） */
.pagination a,
.pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--color-darkgreen);
	color: var(--color-white);
	text-decoration: none;
	font-size: calc(var(--fs-base) * 1.0);
	line-height: 1;
}

.pagination a:hover {
	opacity: 0.8;
}

/* 現在ページ */
.pagination .current {
	background: var(--color-white);
	color: var(--color-darkgreen);
	border: 2px solid var(--color-darkgreen);
}

/* 前へ / 次へ を丸のままにする */
.pagination .prev,
.pagination .next {
	font-size: 18px;
}


/* ------------------------- ブログ一覧 archive.php */
/* =======================================
   ブログ一覧 / アーカイブ
======================================= */
.blog-section {
	padding-top: 40px;
	padding-bottom: 60px;
}

/* 見出し部分 -------------------------------- */

.blog-header {
	margin-bottom: 24px;
}

.blog-header__title {
	font-size: calc(var(--fs-base) * 1.5);
	font-weight: 700;
	color: var(--color-mono, #333);
	margin-bottom: 8px;
}

.blog-header__lead {
	font-size: calc(var(--fs-base) * 1.0);
	line-height: 1.8;
	color: var(--color-mono);
}

/* 一覧レイアウト -------------------------------- */

.blog-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 40px;
}

.blog-item {
	margin: 0;
	width: 100%;
}

.blog-card {
	display: flex;
	gap: 24px;
	text-decoration: none;
	color: inherit;
	align-items: flex-start;
	width: 100%;
}

/* サムネイル：固定サイズ（16:9）＋ hover拡大 */
.blog-card__thumb {
	flex: 0 0 280px;
	max-width: 280px;
	aspect-ratio: 16 / 9;
	/* 615×345 っぽい比率 */
	overflow: hidden;
	border-radius: 4px;
}

.blog-card__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1);
	transition: transform 0.4s ease;
}

/* カード全体 hover で画像だけ少し拡大 */
.blog-card:hover .blog-card__thumb img {
	transform: scale(1.05);
}

/* 本文側 -------------------------------- */
.blog-card__body {
	flex: 1 1 auto;
}

.blog-card__meta {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 8px;
}

.blog-card__date {
	font-size: calc(var(--fs-base) * 1.0);
	color: var(--color-mono);
}

/* カテゴリバッジ */
.blog-card__cat {
	display: inline-block;
	padding: 2px 10px;
	font-size: 12px;
	border-radius: 999px;
	background: var(--basepink);
	color: var(--color-white);
	line-height: 1.6;
}

.blog-card__title {
	font-size: calc(var(--fs-base) * 1.5);
	font-weight: 700;
	color: var(--basepink);
	margin: 0 0 10px;
}

.blog-card__excerpt {
	font-size: calc(var(--fs-base) * 1.0);
	line-height: 1.8;
	color: var(--color-mono);
}

/* hover 時、タイトルだけ下線 */
.blog-card:hover .blog-card__title {
	text-decoration: underline;
}

/* スマホ */
@media (max-width: 960px) {
	.blog-list {
		width: 90%;
		margin: 0 auto;
	}

	.blog-card {
		flex-direction: column;
	}

	.blog-card__thumb {
		max-width: 100%;
		flex: none;
		width: 100%;
	}
}

/* ページネーション（検索結果と共通デザイン） */
.blog-pagination {
	margin-top: 48px;
	text-align: center;
}

.pagination {
	list-style: none;
	margin: 0;
	padding: 0;
	display: inline-flex;
	gap: 10px;
}

.pagination__item {
	margin: 0;
}

.pagination a,
.pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--color-darkgreen);
	color: var(--color-white);
	text-decoration: none;
	font-size: calc(var(--fs-base) * 1.0);
	line-height: 1;
}

.pagination a:hover {
	opacity: 0.8;
}

.pagination .current {
	background: var(--color-white);
	color: var(--color-darkgreen);
	border: 2px solid var(--color-darkgreen);
}

.pagination .prev,
.pagination .next {
	font-size: calc(var(--fs-base) * 1.5);
	padding-bottom: 7px;
}


/* ------------------------------------------- ページが見つかりません 404.php */
.notfound-section {
	padding: 60px 0 80px;
	text-align: center;
}

.notfound-message {
	font-size: calc(var(--fs-base) * 1.5);
	line-height: 2;
	margin-bottom: 40px;
	color: var(--color-mono);
}

.notfound-btn-wrap .btn-back-top {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--color-darkgreen);
	color: var(--color-white);
	border-radius: 40px;
	padding: 12px 28px;
	font-size: calc(var(--fs-base) * 1.0);
	text-decoration: none;
	transition: opacity 0.2s ease;
}

.notfound-btn-wrap .btn-back-top:hover {
	opacity: 0.8;
}

.btn-back-top__icon {
	margin-left: 8px;
}


/* ------------------------------------------- 投稿ページ single.php */
/* =======================================
   single（投稿詳細ページ）
   共通レイアウト
======================================= */
/* single 全体の余白 */
.single-article {
	padding-top: 40px;
	padding-bottom: 80px;
}

/* タイトル（section-title は既存と同じデザイン前提） */
.single-article .section-title {
	margin-bottom: 8px;
}

/* -----------------------------
   ★ 見出し直下のメタ情報
----------------------------- */
.single-meta--top {
	display: flex;
	gap: 12px;
	align-items: center;
	margin-top: 24px;
	margin-bottom: 24px;
}

.single-date--top {
	font-size: calc(var(--fs-base) * 1.0);
	color: var(--color-mono);
}

.single-cat--top {
	display: inline-block;
	padding: 2px 10px;
	font-size: calc(var(--fs-base) * 1.0);
	border-radius: 999px;
	background: var(--basepink);
	color: var(--color-white);
	line-height: 1.6;
}

/* -----------------------------
   メイン画像ブロック
----------------------------- */
.common-hero-section__image {
	margin-bottom: 24px;
}

.common-hero-section__image img {
	display: block;
	width: 100%;
	max-height: 420px;
	object-fit: cover;
	border-radius: 4px;
}

/* -----------------------------
   ピンクの大見出し（リード）
----------------------------- */
.common-heading-pink__title {
	margin: 16px 0 24px;
	font-size: calc(var(--fs-base) * 1.5);
	line-height: 1.8;
	font-weight: 700;
	color: var(--color-pink);
	text-align: left;
}

/* -----------------------------
   本文エリア
----------------------------- */
.common-hero-section__text {
	font-size: calc(var(--fs-base) * 1.0);
	line-height: 1.9;
	color: var(--color-mono);
}

.common-hero-section__text p {
	margin-bottom: 1.6em;
}

.common-hero-section__text img {
	max-width: 100%;
	height: auto;
	display: block;
	margin: 20px 0;
	border-radius: 4px;
}

/* -----------------------------
   末尾のメタ情報（日付・カテゴリ）
----------------------------- */
.single-meta {
	margin-top: 32px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	border-top: 1px solid #eee;
	padding-top: 16px;
}

.single-date {
	font-size: calc(var(--fs-base) * 1.0);
	color: var(--color-mono);
}

.single-cat {
	display: inline-block;
	padding: 2px 10px;
	font-size: calc(var(--fs-base) * 1.0);
	border-radius: 999px;
	background: var(--basepink);
	color: var(--color-white);
	line-height: 1.6;
}

/* -----------------------------
   前後記事ナビ
----------------------------- */
.single-nav {
	margin-top: 32px;
	display: flex;
	justify-content: space-between;
	gap: 16px;
	border-top: 1px solid #eee;
	padding-top: 16px;
}

.single-nav-prev,
.single-nav-next {
	font-size: calc(var(--fs-base) * 1.0);
}

.single-nav a {
	color: var(--basepink);
	text-decoration: none;
	font-weight: 600;
}

.single-nav a:hover {
	text-decoration: underline;
}

/* -----------------------------
   スマホ
----------------------------- */
@media (max-width: 960px) {
	.single-article {
		padding-top: 24px;
		padding-bottom: 56px;
	}

	.common-hero-section__image,
	.common-hero-section__text img {
		width: 90%;
		margin: 0 auto;
	}

	.common-heading-pink__title {
		font-size: calc(var(--fs-base) * 1.5);
		margin: 0px auto 40px;
	}

	.single-meta {
		width: 90%;
		margin: 0 auto;
	}

	.single-meta--top {
		width: 90%;
		margin: 0 auto 24px;
	}

	.single-nav {
		flex-direction: row;
		align-items: center;
		justify-content: space-around;
	}
}


/* ------------------------------------------- ローディング */
/* ローディング背景 */
#loading {
	position: fixed;
	z-index: 99999;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #fff;
	display: flex;
	justify-content: center;
	align-items: center;
	transition: opacity .6s ease, visibility .6s ease;
}

/* 回転させるクローバー画像 */
.loading-clover {
	width: 80px;
	height: 80px;
	opacity: 0.9;
	animation: cloverRotate 2.5s linear infinite;
}

/* 回転アニメーション */
@keyframes cloverRotate {
	0% {
		transform: rotate(0deg);
	}

	100% {
		transform: rotate(360deg);
	}
}

/* 読み込み完了時にフェードアウト */
#loading.loaded {
	opacity: 0;
	visibility: hidden;
}


/* ------------------------------------------- 背景クローバーパララックス */
/* クローバー全体のレイヤー */
.clover-bg-container {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	/* クリックを邪魔しない */
	overflow: hidden;
	z-index: -1;
	/* 背景として背面へ */
}

/* クローバー1つひとつ */
.clover-item {
	position: absolute;
	background-image: url('../../images/bg-clover.png');
	background-size: contain;
	background-repeat: no-repeat;
	transform: translateY(0) scale(1);
	will-change: transform;
}


/* ------------------------------------------- 文字サイズ変更 */
/* 文字サイズ切り替えボタン全体（スクロールバー横に固定） */
.fontsize-controller {
	position: fixed;
	top: 50%;
	right: -80px;
	transform: translateY(-50%);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	transition: right 0.35s cubic-bezier(.25, .46, .45, .94),
		opacity 0.35s ease;
	z-index: 9999;
}

/* スクロールしたら右側に戻ってくる */
.fontsize-controller.is-visible {
	right: 8px;
}

/* 各ボタン：丸ボタン */
.fontsize-controller__btn {
	width: 50px;
	height: 50px;
	border-radius: 50%;
	border: 1px solid #ccc;
	background: #fff;
	color: var(--color-mono);
	font-size: 24px;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	padding: 0;
	box-sizing: border-box;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.fontsize-controller__btn:hover {
	background: #f5f5f5;
}

/* 選択中（アクティブ） */
.fontsize-controller__btn.is-active {
	background: var(--basepink);
	border-color: var(--basepink);
	color: #fff;
}

/* 文字サイズラベル（縦書き） */
.fontsize-controller__label {
	writing-mode: vertical-rl;
	text-orientation: upright;
	font-size: 24px;
	color: var(--color-mono);
	margin-bottom: 10px;
	letter-spacing: 0.1em;
	background: #fff;
	border: 1px solid #ccc;
	border-radius: 6px;
	padding: 6px 4px;
	text-align: center;
	line-height: 1.2;
}

@media (max-width: 960px) {
	.fontsize-controller__label {
		font-size: 18px;
	}

	.fontsize-controller__btn {
		width: 30px;
		height: 30px;
		font-size: 18px;
	}
}


/* ------------------------------------------- 上に戻る */
/* ===== ページトップボタン ===== */
.back-to-top {
	position: fixed;
	right: -80px;
	bottom: 90px;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	background: var(--color-darkgreen);
	color: #fff;
	border: none;
	cursor: pointer;

	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 18px;
	transition: right 0.35s cubic-bezier(.25, .46, .45, .94),
		opacity 0.35s ease;
	opacity: 0;
	/* 初期は透明 */
	z-index: 9990;
}

/* 表示状態（右から出る） */
.back-to-top.is-visible {
	right: 8px;
	opacity: 1;
}

.back-to-top:hover {
	opacity: 0.85;
}

@media (max-width: 960px) {
	.back-to-top {
		width: 40px;
		height: 40px;
	}
}


/* ------------------------------------------- footer */
/* =============================
   Footer
============================= */
.site-footer {
	margin-top: 120px;
	border-top: 6px solid var(--basepink);
}

.site-footer {
	background: var(--color-white);
	color: var(--color-mono);
	font-size: var(--fs-medium);
}

/* ヘッダーと同じ max-width ＋ 両端余白 */
.site-footer__inner {
	max-width: 1250px;
	margin: 0 auto;
	padding: 0px 0px 0px 40px;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 100px;
}

/* 左カラム ---------------------------------- */
.site-footer__main {
	flex: 1 1 0;
	padding-top: 80px;
}

.site-footer__logo img {
	display: block;
	height: 60px;
	width: auto;
	margin-bottom: 36px;
}

/* サービス一覧（ピンク丸） */
.site-footer__service-list {
	list-style: none;
	margin: 0 0 40px;
	padding: 0;
}

.site-footer__service-item {
	display: flex;
	align-items: center;
	gap: 18px;
	padding: 10px 0;
}

.site-footer__dot {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--basepink);
	flex-shrink: 0;
}

.site-footer__service-text {
	font-size: calc(var(--fs-medium) * 1.1);
	letter-spacing: 0.03em;
}

/* 下のリンク（私たち／求人／プライバシー） */
.site-footer__nav-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	column-gap: 40px;
}

.site-footer__nav-item {
	padding: 10px 0;
}

.site-footer__nav-item--privacy {
	flex-basis: 100%;
}

.site-footer__nav-link {
	text-decoration: none;
	color: var(--color-mono);
	font-size: var(--fs-medium);
}

/* 右カラム：背景画像（PC） ------------------ */
.site-footer__image {
	flex: 0 0 40%;
	max-width: 480px;

	/* 背景画像としてクローバーを表示 */
	background-image: url("../../images/footer-clover.png");
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;

	height: 750px;
}

/* 1400px 以下：右側の余白だけゼロに ----------- */
@media (max-width: 1400px) {
	.site-footer__inner {
		padding-left: 40px;
		padding-right: 0;
	}

	.site-footer__image {
		max-width: none;
		flex: 1 1 auto;
	}
}

/* 480px〜959px：背景位置 center（※PCと同じ） */
@media (min-width: 481px) and (max-width: 959px) {
	.site-footer__image {
		background-position: center;
	}
}

/* 〜480px：背景位置 bottom */
@media (max-width: 480px) {
	.site-footer__image {
		background-position: bottom;
	}
}

/* スマホ ------------------- */

@media (max-width: 960px) {

	.site-footer {
		padding: 40px 0 0;
	}

	.site-footer__inner {
		flex-direction: column-reverse;
		/* 下→上に並び替え */
		align-items: center;
		gap: 32px;
		padding-left: 0;
		padding-right: 0;
	}

	/* 画像を一番上・横幅100%・高さ500px に */
	.site-footer__image {
		order: -1;
		width: 100%;
		max-width: none;
		height: 500px;
	}

	.site-footer__main {
		width: 100%;
		padding: 0 20px;
	}

	.site-footer__logo img {
		height: 50px;
		margin-bottom: 28px;
	}

	.site-footer__service-item {
		padding: 8px 0;
	}

	/* フッターリンクを横並びに */
	.site-footer__nav-list {
		display: flex;
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: flex-start;
		gap: 20px 24px;
	}

	/* プライバシーポリシーが専用の行に落ちないように */
	.site-footer__nav-item--privacy {
		flex-basis: auto;
		margin-top: 0;
	}
}