/* ==========================================================================
   YFC V17 — 公開前の完成版（追加専用。既存CSSは書き換えない。!important は使わない）
   構成:
     1. HOME Hero（明るさ調整のみ）
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. HOME Hero：左側の暗さを弱め、写真本来の色（芝・山・空）を残す。
   文字の可読性は、弱めたscrim + 控えめなtext-shadowで確保する（レイアウト・文言・CTAは変更しない）。
   旧: 0% .88 → 45% .55 → 75% .15（右側も.15のまま）
   新: 0% .72 → 38% .52 → 58% .24 → 80% .04 → 右端 0（文字のある左4割は従来に近い濃さを維持）
   -------------------------------------------------------------------------- */
.yfc-main .yfc-hero .yfc-hero__scrim {
	background: linear-gradient(90deg, rgba(12, 34, 31, 0.72) 0%, rgba(12, 34, 31, 0.52) 38%, rgba(12, 34, 31, 0.24) 58%, rgba(12, 34, 31, 0.04) 80%, rgba(12, 34, 31, 0) 100%);
}
.yfc-main .yfc-hero .yfc-hero__title,
.yfc-main .yfc-hero .yfc-hero__subcopy {
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.28), 0 2px 16px rgba(0, 0, 0, 0.3);
}
/* Mobile：文字が重なる下側だけを暗くし、上側（写真の主役）は明るく残す。 */
@media (max-width: 767px) {
	.yfc-main .yfc-hero .yfc-hero__scrim {
		background: linear-gradient(180deg, rgba(12, 34, 31, 0.08) 0%, rgba(12, 34, 31, 0.28) 38%, rgba(12, 34, 31, 0.66) 64%, rgba(12, 34, 31, 0.84) 100%);
	}
}

/* --------------------------------------------------------------------------
   2. ロゴ（外観 → YFC ブランド設定。未設定時は従来の文字ロゴのままなので、以下は画像設定時だけ効く）
   高さで揃え、横幅は上限を設けてHeaderが溢れないようにする。
   -------------------------------------------------------------------------- */
.yfc-header .yfc-header__logo--image {
	display: flex;
	align-items: center;
	min-width: 0;
}
.yfc-header .yfc-header__logo-img {
	display: block;
	width: auto;
	height: auto;
	max-height: 44px;
	max-width: 220px;
	object-fit: contain;
}
.yfc-header .yfc-header__logo-mark--image,
.yfc-footer .yfc-footer__logo-mark--image {
	display: flex;
	align-items: center;
}
.yfc-header .yfc-header__symbol-img,
.yfc-footer .yfc-footer__symbol-img {
	display: block;
	width: auto;
	height: 32px;
	max-width: 48px;
	object-fit: contain;
}
.yfc-footer .yfc-footer__logo-img {
	display: block;
	width: auto;
	height: auto;
	max-height: 56px;
	max-width: 240px;
	object-fit: contain;
}
@media (max-width: 1023px) {
	.yfc-header .yfc-header__logo-img {
		max-height: 36px;
		max-width: 150px;
	}
	.yfc-header .yfc-header__symbol-img {
		height: 26px;
	}
}
@media (max-width: 767px) {
	.yfc-header .yfc-header__logo-img {
		max-height: 34px;
		max-width: 180px;
	}
}

/* --------------------------------------------------------------------------
   3. Header「スクール ▼」dropdown（Desktop / Tablet）
   JSなしでも hover / focus-within で開く。.is-open はクリック・キーボード操作用。
   -------------------------------------------------------------------------- */
.yfc-header .yfc-header__nav .yfc-header__nav-item--has-sub {
	position: relative;
}
.yfc-header .yfc-header__nav-toggle {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	font: inherit;
	font-weight: 600;
	font-size: 15px;
	line-height: inherit;
	color: var(--yfc-text);
	white-space: nowrap;
	cursor: pointer;
}
.yfc-header .yfc-header__nav-toggle:hover,
.yfc-header .yfc-header__nav-item--has-sub.is-open > .yfc-header__nav-toggle {
	color: var(--yfc-green);
}
.yfc-header .yfc-header__nav-item--has-sub.is-current > .yfc-header__nav-toggle {
	color: var(--yfc-green);
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 6px;
}
.yfc-header .yfc-header__nav-toggle:focus-visible {
	outline: 3px solid var(--yfc-yellow);
	outline-offset: 2px;
}
.yfc-header .yfc-header__nav-caret {
	width: 7px;
	height: 7px;
	margin-top: -3px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
	transition: transform 0.15s ease;
}
.yfc-header .yfc-header__nav-item--has-sub.is-open .yfc-header__nav-caret {
	transform: rotate(-135deg);
	margin-top: 3px;
}
.yfc-header .yfc-header__nav .yfc-header__subnav {
	position: absolute;
	top: 100%;
	left: 50%;
	z-index: 20;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	min-width: 200px;
	margin: 0;
	padding: 8px;
	list-style: none;
	background: var(--yfc-white);
	border: 1px solid var(--yfc-border);
	border-top: 3px solid var(--yfc-green);
	border-radius: 0 0 var(--yfc-radius-md) var(--yfc-radius-md);
	box-shadow: 0 12px 28px rgba(18, 53, 43, 0.12);
	transform: translate(-50%, 8px);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;
}
/* hover時に項目との隙間でメニューが閉じないよう、上側に透明の橋を架ける */
.yfc-header .yfc-header__nav .yfc-header__subnav::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: -14px;
	height: 14px;
}
.yfc-header .yfc-header__nav-item--has-sub:hover > .yfc-header__subnav,
.yfc-header .yfc-header__nav-item--has-sub:focus-within > .yfc-header__subnav,
.yfc-header .yfc-header__nav-item--has-sub.is-open > .yfc-header__subnav {
	opacity: 1;
	visibility: visible;
	transform: translate(-50%, 4px);
}
.yfc-header .yfc-header__nav .yfc-header__subnav a {
	display: block;
	padding: 11px 14px;
	border-radius: var(--yfc-radius-sm);
	font-size: 14px;
	white-space: nowrap;
}
.yfc-header .yfc-header__nav .yfc-header__subnav a:hover,
.yfc-header .yfc-header__nav .yfc-header__subnav a:focus-visible {
	background: var(--yfc-sky-light);
	color: var(--yfc-green);
}
.yfc-header .yfc-header__nav .yfc-header__subnav a[aria-current="page"] {
	text-decoration: none;
	background: var(--yfc-green-tint);
}
@media (min-width: 1024px) and (max-width: 1279px) {
	.yfc-header .yfc-header__nav-toggle {
		font-size: 14px;
	}
}
@media (max-width: 1023px) {
	.yfc-header .yfc-header__nav-toggle {
		font-size: 11.5px;
		gap: 3px;
	}
	.yfc-header .yfc-header__nav-caret {
		width: 5px;
		height: 5px;
	}
	.yfc-header .yfc-header__nav .yfc-header__subnav {
		min-width: 170px;
	}
}
@media (prefers-reduced-motion: reduce) {
	.yfc-header .yfc-header__nav .yfc-header__subnav,
	.yfc-header .yfc-header__nav-caret {
		transition: none;
	}
}

/* --------------------------------------------------------------------------
   4. V17 固定ページ共通パーツ（biima sports / FAQ / Yoga / Ground Golf）: .yfc-pg-*
   白ベース + 淡い空色の帯 + 緑の見出し。Heroは V15.2 共通Hero（yfc-page-hero.css）をそのまま使う。
   -------------------------------------------------------------------------- */
.yfc-main.yfc-pg {
	background: var(--yfc-white);
}
.yfc-pg .yfc-pg-section {
	padding-block: 64px;
	background: var(--yfc-white);
}
.yfc-pg .yfc-pg-section--tint {
	background: var(--yfc-bg);
}
.yfc-pg .yfc-pg-section--sky {
	background: var(--yfc-sky-light);
	border-block: 1px solid var(--yfc-sky-soft);
}
.yfc-pg .yfc-pg-narrow {
	max-width: 880px;
}
.yfc-pg .yfc-pg-center {
	text-align: center;
}
.yfc-pg .yfc-pg-head {
	margin-bottom: 28px;
}
.yfc-pg .yfc-pg-eyebrow {
	margin: 0 0 6px;
	font-family: var(--yfc-font-en);
	font-weight: 800;
	font-size: 14px;
	letter-spacing: 0.1em;
	color: var(--yfc-sky-deep);
}
.yfc-main.yfc-pg .yfc-pg-title {
	margin: 0;
	font-family: var(--yfc-font-jp);
	font-weight: 800;
	font-size: clamp(24px, 2.6vw, 32px);
	line-height: 1.4;
	color: var(--yfc-green-deep);
}
.yfc-pg .yfc-pg-lead {
	margin: 14px 0 0;
	font-size: 16px;
	line-height: 1.9;
	color: var(--yfc-text);
}
.yfc-pg .yfc-pg-small {
	margin: 16px 0 0;
	font-size: 13px;
	line-height: 1.8;
	color: var(--yfc-muted);
}
.yfc-pg .yfc-pg-small a {
	color: var(--yfc-green);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.yfc-pg .yfc-pg-chip {
	display: inline-block;
	margin: 18px 0 0;
	padding: 6px 14px;
	border-radius: 999px;
	background: var(--yfc-green-tint);
	color: var(--yfc-green-dark);
	font-size: 14px;
	font-weight: 700;
}
.yfc-pg .yfc-pg-brand {
	margin: 0 0 18px;
}
.yfc-pg .yfc-pg-brand-logo {
	display: block;
	width: auto;
	max-width: 220px;
	max-height: 64px;
	object-fit: contain;
}
.yfc-pg .yfc-pg-split.has-media {
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	gap: 40px;
	align-items: center;
}
.yfc-pg .yfc-pg-split__media {
	border-radius: var(--yfc-radius-md);
	overflow: hidden;
	aspect-ratio: 3 / 2;
	background: var(--yfc-sky-soft);
}
.yfc-pg .yfc-pg-split__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.yfc-pg .yfc-pg-cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.yfc-pg .yfc-pg-card {
	padding: 24px 22px;
	background: var(--yfc-white);
	border: 1px solid var(--yfc-border);
	border-top: 3px solid var(--yfc-sky);
	border-radius: var(--yfc-radius-md);
}
.yfc-pg .yfc-pg-card__num {
	font-family: var(--yfc-font-en);
	font-weight: 800;
	font-size: 14px;
	color: var(--yfc-sky-deep);
}
.yfc-main.yfc-pg .yfc-pg-card__title {
	margin: 6px 0 8px;
	font-size: 17px;
	font-weight: 800;
	line-height: 1.5;
	color: var(--yfc-green);
}
.yfc-pg .yfc-pg-card__text {
	margin: 0;
	font-size: 14px;
	line-height: 1.8;
	color: var(--yfc-text);
}
.yfc-pg .yfc-pg-days {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 20px;
}
.yfc-pg .yfc-pg-day {
	padding: 22px;
	background: var(--yfc-white);
	border: 1px solid var(--yfc-border);
	border-radius: var(--yfc-radius-md);
}
.yfc-main.yfc-pg .yfc-pg-day__title {
	margin: 0 0 12px;
	padding-bottom: 10px;
	border-bottom: 2px solid var(--yfc-green);
	font-size: 18px;
	font-weight: 800;
	color: var(--yfc-green-deep);
}
.yfc-pg .yfc-pg-day__list {
	margin: 0;
	padding: 0;
	list-style: none;
}
.yfc-pg .yfc-pg-day__row {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 16px;
	padding: 12px 0;
	border-bottom: 1px solid var(--yfc-border);
}
.yfc-pg .yfc-pg-day__row:last-child {
	border-bottom: 0;
}
.yfc-pg .yfc-pg-day__time {
	flex: 0 0 auto;
	min-width: 118px;
	font-family: var(--yfc-font-en);
	font-weight: 700;
	font-size: 18px;
	color: var(--yfc-green);
}
.yfc-pg .yfc-pg-day__course {
	font-weight: 700;
	color: var(--yfc-text);
}
.yfc-pg .yfc-pg-day__row.is-advance .yfc-pg-day__course {
	padding: 1px 10px;
	border-radius: 999px;
	background: var(--yfc-sky-light);
	color: var(--yfc-sky-deep);
}
.yfc-pg .yfc-pg-note {
	margin: 24px 0 0;
	padding: 18px 20px;
	background: var(--yfc-white);
	border: 1px solid var(--yfc-border);
	border-left: 4px solid var(--yfc-sky);
	border-radius: var(--yfc-radius-md);
	text-align: left;
}
.yfc-pg .yfc-pg-note p {
	margin: 0;
	line-height: 1.8;
}
.yfc-pg .yfc-pg-note__title {
	font-weight: 800;
	color: var(--yfc-green-deep);
}
.yfc-pg .yfc-pg-note--inline {
	display: inline-block;
	margin-top: 16px;
	font-weight: 700;
	color: var(--yfc-green-deep);
}
.yfc-pg .yfc-pg-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.yfc-pg .yfc-pg-tags li {
	padding: 8px 16px;
	background: var(--yfc-white);
	border: 1px solid var(--yfc-sky-soft);
	border-radius: 999px;
	font-weight: 700;
	color: var(--yfc-green-deep);
}
.yfc-pg .yfc-pg-price {
	margin: 0;
	border: 1px solid var(--yfc-border);
	border-radius: var(--yfc-radius-md);
	overflow: hidden;
}
.yfc-pg .yfc-pg-price__row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 16px;
	padding: 18px 22px;
	border-bottom: 1px solid var(--yfc-border);
}
.yfc-pg .yfc-pg-price__row:last-child {
	border-bottom: 0;
}
.yfc-pg .yfc-pg-price dt {
	font-weight: 700;
	color: var(--yfc-text);
}
.yfc-pg .yfc-pg-price dd {
	margin: 0;
	font-weight: 800;
	font-size: 20px;
	color: var(--yfc-green);
	text-align: right;
}
.yfc-pg .yfc-pg-actions {
	margin: 24px 0 0;
}
.yfc-pg .yfc-pg-actions .yfc-btn--yellow {
	color: var(--yfc-green-deep);
}
.yfc-pg .yfc-pg-actions .yfc-btn--green {
	color: var(--yfc-white);
}
.yfc-pg .yfc-pg-info__list {
	display: grid;
	gap: 0;
	margin: 0;
	border-top: 1px solid var(--yfc-border);
}
.yfc-pg .yfc-pg-info__list > div {
	display: grid;
	grid-template-columns: 160px 1fr;
	gap: 16px;
	padding: 16px 0;
	border-bottom: 1px solid var(--yfc-border);
}
.yfc-pg .yfc-pg-info__list dt {
	font-weight: 700;
	color: var(--yfc-green-deep);
}
.yfc-pg .yfc-pg-info__list dd {
	margin: 0;
	line-height: 1.8;
}
.yfc-pg .yfc-pg-list {
	margin: 0;
	padding-left: 1.2em;
}
.yfc-pg .yfc-pg-faq {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.yfc-pg .yfc-pg-faq__item {
	background: var(--yfc-white);
	border: 1px solid var(--yfc-border);
	border-radius: var(--yfc-radius-md);
}
.yfc-pg .yfc-pg-faq__q {
	position: relative;
	display: block;
	padding: 18px 52px 18px 20px;
	font-weight: 700;
	line-height: 1.6;
	color: var(--yfc-green-deep);
	cursor: pointer;
	list-style: none;
}
.yfc-pg .yfc-pg-faq__q::-webkit-details-marker {
	display: none;
}
.yfc-pg .yfc-pg-faq__q::before {
	content: "Q.";
	margin-right: 8px;
	font-family: var(--yfc-font-en);
	color: var(--yfc-green);
}
.yfc-pg .yfc-pg-faq__q::after {
	content: "";
	position: absolute;
	right: 22px;
	top: 50%;
	width: 9px;
	height: 9px;
	margin-top: -6px;
	border-right: 2px solid var(--yfc-green);
	border-bottom: 2px solid var(--yfc-green);
	transform: rotate(45deg);
}
.yfc-pg .yfc-pg-faq__item[open] > .yfc-pg-faq__q::after {
	transform: rotate(-135deg);
	margin-top: -1px;
}
.yfc-pg .yfc-pg-faq__q:focus-visible {
	outline: 3px solid var(--yfc-yellow);
	outline-offset: 2px;
	border-radius: var(--yfc-radius-md);
}
.yfc-pg .yfc-pg-faq__a {
	padding: 0 20px 18px;
	line-height: 1.9;
}
.yfc-pg .yfc-pg-faq__a p {
	margin: 0;
}
.yfc-pg .yfc-pg-faq-group + .yfc-pg-faq-group {
	margin-top: 36px;
}
.yfc-main.yfc-pg .yfc-pg-faq-group__title {
	margin: 0 0 14px;
	font-size: 18px;
	font-weight: 800;
	color: var(--yfc-green);
}
.yfc-pg .yfc-pg-cta {
	padding-block: 64px;
	background: var(--yfc-surface-light);
	border-top: 1px solid var(--yfc-sky-soft);
}
@media (max-width: 1023px) {
	.yfc-pg .yfc-pg-section,
	.yfc-pg .yfc-pg-cta {
		padding-block: 48px;
	}
	.yfc-pg .yfc-pg-cards {
		grid-template-columns: 1fr;
	}
}
@media (max-width: 767px) {
	.yfc-pg .yfc-pg-section,
	.yfc-pg .yfc-pg-cta {
		padding-block: 40px;
	}
	.yfc-pg .yfc-pg-split.has-media {
		grid-template-columns: 1fr;
		gap: 24px;
	}
	.yfc-pg .yfc-pg-info__list > div {
		grid-template-columns: 1fr;
		gap: 4px;
	}
	.yfc-pg .yfc-pg-price__row {
		padding: 16px;
	}
	.yfc-pg .yfc-pg-price dd {
		font-size: 18px;
	}
	.yfc-pg .yfc-pg-actions .yfc-btn {
		width: 100%;
	}
	/* Mobile固定CTAバーにページ末尾が隠れないように（Footer側の既存余白に加えて不要な重なりを避ける） */
	.yfc-pg .yfc-pg-cta {
		padding-bottom: 48px;
	}
}

/* --------------------------------------------------------------------------
   5. HOME SCHOOL PROGRAMS（GREEN ACADEMY / biima sports の2カード）
   -------------------------------------------------------------------------- */
.yfc-main .yfc-school-programs {
	padding-block: 56px;
	background: var(--yfc-sky-light);
	border-block: 1px solid var(--yfc-sky-soft);
}
.yfc-main .yfc-school-programs__head {
	margin-bottom: 28px;
}
.yfc-main .yfc-school-programs__eyebrow {
	margin: 0 0 4px;
	font-family: var(--yfc-font-en);
	font-weight: 800;
	font-size: 14px;
	letter-spacing: 0.1em;
	color: var(--yfc-sky-deep);
}
.yfc-main .yfc-school-programs__lead {
	margin: 4px 0 0;
	color: var(--yfc-text);
}
.yfc-main .yfc-school-programs__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
}
.yfc-main .yfc-school-card {
	display: flex;
	flex-direction: column;
	background: var(--yfc-white);
	border: 1px solid var(--yfc-border);
	border-radius: var(--yfc-radius-md);
	overflow: hidden;
	box-shadow: 0 6px 18px rgba(18, 53, 43, 0.06);
}
.yfc-main .yfc-school-card__photo {
	position: relative;
	aspect-ratio: 16 / 7;
	overflow: hidden;
	background: var(--yfc-sky-soft);
}
.yfc-main .yfc-school-card__photo > .yfc-media-img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.yfc-main .yfc-school-card__photo.is-empty {
	background: linear-gradient(135deg, var(--yfc-sky-light) 0%, var(--yfc-sky-soft) 55%, var(--yfc-green-tint) 100%);
}
.yfc-main .yfc-school-card--biima .yfc-school-card__photo.is-empty {
	background: linear-gradient(135deg, var(--yfc-green-tint) 0%, var(--yfc-sky-soft) 60%, var(--yfc-sky-light) 100%);
}
.yfc-main .yfc-school-card__body {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	padding: 22px 24px 26px;
	border-top: 3px solid var(--yfc-green);
}
.yfc-main .yfc-school-card--biima .yfc-school-card__body {
	border-top-color: var(--yfc-sky);
}
.yfc-main .yfc-school-card__en {
	margin: 0;
	font-family: var(--yfc-font-en);
	font-weight: 800;
	font-size: 15px;
	letter-spacing: 0.06em;
	color: var(--yfc-sky-deep);
}
.yfc-main .yfc-school-card--soccer .yfc-school-card__en {
	color: var(--yfc-green);
}
.yfc-main .yfc-school-card__title {
	margin: 2px 0 10px;
	font-family: var(--yfc-font-jp);
	font-size: 21px;
	font-weight: 800;
	line-height: 1.4;
	color: var(--yfc-green-deep);
}
.yfc-main .yfc-school-card__text {
	margin: 0;
	font-size: 14px;
	line-height: 1.8;
	color: var(--yfc-text);
}
.yfc-main .yfc-school-card__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 14px 0 0;
	padding: 0;
	list-style: none;
}
.yfc-main .yfc-school-card__tags li {
	padding: 3px 10px;
	border-radius: 999px;
	background: var(--yfc-gray-100);
	font-size: 12px;
	font-weight: 700;
	color: var(--yfc-text);
}
.yfc-main .yfc-school-card__ctas {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 18px;
	margin-top: auto;
	padding-top: 20px;
}
.yfc-main .yfc-school-card__ctas .yfc-btn--green {
	color: var(--yfc-white);
}
.yfc-main .yfc-school-card__more {
	font-size: 14px;
	font-weight: 700;
	color: var(--yfc-green);
	text-decoration: underline;
	text-decoration-color: var(--yfc-sky);
	text-underline-offset: 4px;
}
.yfc-main .yfc-school-card__note {
	margin: 10px 0 0;
	font-size: 12px;
	line-height: 1.6;
	color: var(--yfc-muted);
}
@media (max-width: 1023px) {
	.yfc-main .yfc-school-programs {
		padding-block: 44px;
	}
	.yfc-main .yfc-school-programs__grid {
		gap: 16px;
	}
	.yfc-main .yfc-school-card__body {
		padding: 18px 18px 22px;
	}
}
@media (max-width: 767px) {
	.yfc-main .yfc-school-programs {
		padding-block: 32px;
	}
	.yfc-main .yfc-school-programs__grid {
		grid-template-columns: 1fr;
	}
	.yfc-main .yfc-school-card__ctas .yfc-btn {
		width: 100%;
	}
}

/* --------------------------------------------------------------------------
   6. HOME ABOUT YFC（小さなブランド紹介。白ベース + 空色のアクセント）
   -------------------------------------------------------------------------- */
.yfc-main .yfc-about {
	padding-block: 56px;
	background: var(--yfc-white);
}
.yfc-main .yfc-about__inner {
	display: grid;
	grid-template-columns: 1.3fr 1fr;
	gap: 40px;
	align-items: center;
}
.yfc-main .yfc-about__eyebrow {
	margin: 0 0 6px;
	font-family: var(--yfc-font-en);
	font-weight: 800;
	font-size: 14px;
	letter-spacing: 0.1em;
	color: var(--yfc-sky-deep);
}
.yfc-main .yfc-about__title {
	margin: 0;
	font-family: var(--yfc-font-jp);
	font-weight: 800;
	font-size: clamp(22px, 2.4vw, 30px);
	line-height: 1.45;
	color: var(--yfc-green-deep);
}
.yfc-main .yfc-about__text {
	margin: 14px 0 0;
	font-size: 15px;
	line-height: 1.9;
	color: var(--yfc-text);
}
.yfc-main .yfc-about__btn {
	margin-top: 22px;
}
.yfc-main .yfc-about__card {
	padding: 24px 26px;
	background: var(--yfc-bg);
	border: 1px solid var(--yfc-border);
	border-left: 4px solid var(--yfc-green);
	border-radius: var(--yfc-radius-md);
}
.yfc-main .yfc-about__logo {
	margin: 0 0 16px;
}
.yfc-main .yfc-about__logo-img {
	display: block;
	width: auto;
	max-width: 220px;
	max-height: 64px;
	object-fit: contain;
}
.yfc-main .yfc-about__facts {
	margin: 0;
}
.yfc-main .yfc-about__facts > div {
	display: grid;
	grid-template-columns: 72px 1fr;
	gap: 12px;
	padding: 10px 0;
	border-bottom: 1px solid var(--yfc-border);
	font-size: 14px;
	line-height: 1.7;
}
.yfc-main .yfc-about__facts > div:last-child {
	border-bottom: 0;
}
.yfc-main .yfc-about__facts dt {
	font-weight: 700;
	color: var(--yfc-green);
}
.yfc-main .yfc-about__facts dd {
	margin: 0;
	color: var(--yfc-text);
}
@media (max-width: 1023px) {
	.yfc-main .yfc-about {
		padding-block: 44px;
	}
	.yfc-main .yfc-about__inner {
		gap: 24px;
	}
}
@media (max-width: 767px) {
	.yfc-main .yfc-about {
		padding-block: 32px;
	}
	.yfc-main .yfc-about__inner {
		grid-template-columns: 1fr;
	}
	.yfc-main .yfc-about__btn {
		width: 100%;
	}
}

/* --------------------------------------------------------------------------
   7. PHOTO GALLERY（登録済みの写真だけをgrid表示。0枚ならsection自体を出力しない）
   -------------------------------------------------------------------------- */
.yfc-main .yfc-gallery.yfc-gallery--grid {
	padding-block: 56px;
	overflow: visible;
}
.yfc-main .yfc-gallery--grid .yfc-gallery__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 20px;
	margin-bottom: 24px;
}
.yfc-main .yfc-gallery--grid .yfc-section-title {
	margin: 0;
	color: var(--yfc-green-deep);
}
.yfc-main .yfc-gallery--grid .yfc-gallery__subcopy {
	margin: 0;
	color: var(--yfc-text);
}
.yfc-main .yfc-gallery__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.yfc-main .yfc-gallery__grid--n1 {
	grid-template-columns: minmax(0, 720px);
}
.yfc-main .yfc-gallery__grid--n2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
.yfc-main .yfc-gallery__grid--n3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.yfc-main .yfc-gallery__cell {
	position: relative;
	aspect-ratio: 3 / 2;
	border-radius: var(--yfc-radius-md);
	overflow: hidden;
	background: var(--yfc-sky-soft);
}
.yfc-main .yfc-gallery__cell > .yfc-media-img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	transition: transform 0.3s ease;
}
.yfc-main .yfc-gallery__cell:hover > .yfc-media-img {
	transform: scale(1.03);
}
@media (max-width: 1023px) {
	.yfc-main .yfc-gallery.yfc-gallery--grid {
		padding-block: 44px;
	}
	.yfc-main .yfc-gallery__grid,
	.yfc-main .yfc-gallery__grid--n3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
	.yfc-main .yfc-gallery__grid--n2 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.yfc-main .yfc-gallery__grid--n1 {
		grid-template-columns: minmax(0, 1fr);
	}
}
@media (max-width: 767px) {
	.yfc-main .yfc-gallery.yfc-gallery--grid {
		padding-block: 32px;
	}
	.yfc-main .yfc-gallery__grid,
	.yfc-main .yfc-gallery__grid--n2,
	.yfc-main .yfc-gallery__grid--n3 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
	}
}
@media (prefers-reduced-motion: reduce) {
	.yfc-main .yfc-gallery__cell > .yfc-media-img {
		transition: none;
	}
}

/* --------------------------------------------------------------------------
   8. FAQページ（目次）
   -------------------------------------------------------------------------- */
.yfc-faq-page .yfc-faq-page__intro {
	margin-bottom: 28px;
}
.yfc-faq-page .yfc-faq-page__toc {
	margin-bottom: 32px;
}
.yfc-faq-page .yfc-faq-page__toc ul {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.yfc-faq-page .yfc-faq-page__toc a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 8px 16px;
	border: 1px solid var(--yfc-sky-soft);
	border-radius: 999px;
	background: var(--yfc-sky-light);
	font-size: 14px;
	font-weight: 700;
	color: var(--yfc-green-deep);
}
.yfc-faq-page .yfc-faq-page__toc a:hover {
	border-color: var(--yfc-green);
}
.yfc-faq-page .yfc-pg-faq-group {
	scroll-margin-top: calc(var(--yfc-header-h) + 16px);
}

/* --------------------------------------------------------------------------
   9. NEWS：アイキャッチ未設定時のカテゴリー別ビジュアル（HOME / 一覧 / 関連記事で共通）
   -------------------------------------------------------------------------- */
.yfc-main .yfc-news-fallback {
	display: flex;
	align-items: flex-end;
	width: 100%;
	height: 100%;
	padding: 10px 12px;
	background: linear-gradient(135deg, var(--yfc-sky-light) 0%, var(--yfc-sky-soft) 100%);
}
.yfc-main .yfc-news-fallback--kosal,
.yfc-main .yfc-news-fallback--court {
	background: linear-gradient(135deg, var(--yfc-green-tint) 0%, #CFE8D9 100%);
}
.yfc-main .yfc-news-fallback--school {
	background: linear-gradient(135deg, #E9F5EE 0%, var(--yfc-sky-soft) 100%);
}
.yfc-main .yfc-news-fallback--biima,
.yfc-main .yfc-news-fallback--event {
	background: linear-gradient(135deg, var(--yfc-sky-light) 0%, #CDE7F4 100%);
}
.yfc-main .yfc-news-fallback--facility,
.yfc-main .yfc-news-fallback--other {
	background: linear-gradient(135deg, var(--yfc-bg) 0%, var(--yfc-gray-100) 100%);
}
.yfc-main .yfc-news-fallback__label {
	font-family: var(--yfc-font-en);
	font-weight: 800;
	font-size: 13px;
	letter-spacing: 0.1em;
	color: var(--yfc-green-deep);
	opacity: 0.55;
}

/* --------------------------------------------------------------------------
   10. NEWS 本文（標準ブロックだけでYFCのデザインになる）: 記事 / V17固定ページ本文
   -------------------------------------------------------------------------- */
.yfc-main .yfc-news-single__content h2,
.yfc-main .yfc-entry-content h2 {
	position: relative;
	margin-top: 2.2em;
	padding: 4px 0 8px 16px;
	border-left: 4px solid var(--yfc-green);
	border-bottom: 1px solid var(--yfc-border);
	font-size: 22px;
	font-weight: 800;
	line-height: 1.5;
	color: var(--yfc-green-deep);
}
.yfc-main .yfc-news-single__content h3,
.yfc-main .yfc-entry-content h3 {
	margin-top: 1.8em;
	padding-left: 12px;
	border-left: 3px solid var(--yfc-sky);
	font-size: 18px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--yfc-green-deep);
}
.yfc-main .yfc-entry-content {
	font-size: 16px;
	line-height: 1.9;
	color: var(--yfc-text);
}
.yfc-main .yfc-entry-content > * + * {
	margin-top: 1.4em;
}
.yfc-main .yfc-entry-content a,
.yfc-main .yfc-news-single__content a:not(.wp-block-button__link) {
	color: var(--yfc-green);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.yfc-main .yfc-news-single__content ul:not([class*="wp-block-gallery"]),
.yfc-main .yfc-entry-content ul:not([class*="wp-block-gallery"]) {
	padding-left: 0;
	list-style: none;
}
.yfc-main .yfc-news-single__content ul:not([class*="wp-block-gallery"]) > li,
.yfc-main .yfc-entry-content ul:not([class*="wp-block-gallery"]) > li {
	position: relative;
	padding-left: 1.6em;
}
.yfc-main .yfc-news-single__content ul:not([class*="wp-block-gallery"]) > li::before,
.yfc-main .yfc-entry-content ul:not([class*="wp-block-gallery"]) > li::before {
	content: "";
	position: absolute;
	left: 0.25em;
	top: 0.62em;
	width: 0.45em;
	height: 0.8em;
	border-right: 2px solid var(--yfc-green);
	border-bottom: 2px solid var(--yfc-green);
	transform: translateY(-40%) rotate(45deg);
}
.yfc-main .yfc-news-single__content ol,
.yfc-main .yfc-entry-content ol {
	padding-left: 1.6em;
}
.yfc-main .yfc-news-single__content ol > li::marker,
.yfc-main .yfc-entry-content ol > li::marker {
	font-weight: 700;
	color: var(--yfc-green);
}
.yfc-main .yfc-news-single__content .wp-block-table,
.yfc-main .yfc-entry-content .wp-block-table {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}
.yfc-main .yfc-news-single__content table,
.yfc-main .yfc-entry-content table {
	width: 100%;
	min-width: 420px;
	border-collapse: collapse;
	font-size: 15px;
}
.yfc-main .yfc-news-single__content th,
.yfc-main .yfc-news-single__content td,
.yfc-main .yfc-entry-content th,
.yfc-main .yfc-entry-content td {
	padding: 10px 14px;
	border: 1px solid var(--yfc-border);
	text-align: left;
	vertical-align: top;
}
.yfc-main .yfc-news-single__content th,
.yfc-main .yfc-entry-content th,
.yfc-main .yfc-news-single__content thead td,
.yfc-main .yfc-entry-content thead td {
	background: var(--yfc-green-tint);
	font-weight: 700;
	color: var(--yfc-green-deep);
}
.yfc-main .yfc-news-single__content blockquote,
.yfc-main .yfc-entry-content blockquote {
	margin-inline: 0;
	padding: 16px 20px;
	border-left: 4px solid var(--yfc-sky);
	border-radius: 0 var(--yfc-radius-md) var(--yfc-radius-md) 0;
	background: var(--yfc-sky-light);
	color: var(--yfc-text);
}
.yfc-main .yfc-news-single__content blockquote p,
.yfc-main .yfc-entry-content blockquote p {
	margin: 0;
}
.yfc-main .yfc-news-single__content img,
.yfc-main .yfc-entry-content img {
	height: auto;
	border-radius: var(--yfc-radius-md);
}
.yfc-main .yfc-news-single__content figure,
.yfc-main .yfc-entry-content figure {
	margin-inline: 0;
}
.yfc-main .yfc-news-single__content figcaption,
.yfc-main .yfc-entry-content figcaption {
	margin-top: 6px;
	font-size: 13px;
	color: var(--yfc-muted);
	text-align: center;
}
.yfc-main .yfc-news-single__content .wp-block-gallery,
.yfc-main .yfc-entry-content .wp-block-gallery {
	gap: 8px;
}
.yfc-main .yfc-news-single__content .wp-block-button__link,
.yfc-main .yfc-entry-content .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 12px 22px;
	border-radius: var(--yfc-radius-sm);
	background: var(--yfc-green);
	color: var(--yfc-white);
	font-weight: 700;
	text-decoration: none;
}
.yfc-main .yfc-news-single__content .is-style-outline .wp-block-button__link,
.yfc-main .yfc-entry-content .is-style-outline .wp-block-button__link {
	background: transparent;
	border: 2px solid var(--yfc-green);
	color: var(--yfc-green);
}
.yfc-main .yfc-news-single__content hr,
.yfc-main .yfc-entry-content hr {
	border: 0;
	border-top: 1px solid var(--yfc-border);
}

/* --------------------------------------------------------------------------
   11. NEWS 記事末尾CTA・関連記事
   -------------------------------------------------------------------------- */
.yfc-main .yfc-news-cta {
	margin-top: 40px;
	padding: 24px;
	background: var(--yfc-sky-light);
	border: 1px solid var(--yfc-sky-soft);
	border-radius: var(--yfc-radius-md);
	text-align: center;
}
.yfc-main .yfc-news-cta .yfc-btn--yellow,
.yfc-main .yfc-news-cta .yfc-btn--outline {
	color: var(--yfc-green-deep);
}
.yfc-main .yfc-news-cta .yfc-btn--outline:hover,
.yfc-main .yfc-news-cta .yfc-btn--green {
	color: var(--yfc-white);
}
.yfc-main .yfc-news-cta__note {
	margin: 10px 0 0;
	font-size: 13px;
	color: var(--yfc-text);
}
.yfc-main .yfc-news-related {
	margin-top: 48px;
	padding-top: 28px;
	border-top: 1px solid var(--yfc-border);
}
.yfc-main .yfc-news-related__title {
	margin: 0 0 16px;
	font-size: 18px;
	font-weight: 800;
	color: var(--yfc-green-deep);
}
.yfc-main .yfc-news-related__list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.yfc-main .yfc-news-related__link {
	display: flex;
	flex-direction: column;
	gap: 6px;
	color: inherit;
	text-decoration: none;
}
.yfc-main .yfc-news-related__thumb {
	display: block;
	aspect-ratio: 16 / 9;
	border-radius: var(--yfc-radius-md);
	overflow: hidden;
	background: var(--yfc-sky-light);
}
.yfc-main .yfc-news-related__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.yfc-main .yfc-news-related__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 8px;
	font-size: 12px;
	color: var(--yfc-muted);
}
.yfc-main .yfc-news-related__name {
	font-size: 14px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--yfc-text);
}
.yfc-main .yfc-news-related__link:hover .yfc-news-related__name {
	color: var(--yfc-green);
}
@media (max-width: 767px) {
	.yfc-main .yfc-news-related__list {
		grid-template-columns: 1fr;
	}
	.yfc-main .yfc-news-related__link {
		display: grid;
		grid-template-columns: 112px 1fr;
		grid-template-rows: auto 1fr;
		column-gap: 12px;
	}
	.yfc-main .yfc-news-related__thumb {
		grid-row: 1 / 3;
	}
	.yfc-main .yfc-news-cta .yfc-btn {
		width: 100%;
	}
}

/* --------------------------------------------------------------------------
   12. Footer（V17：SERVICES / SCHOOL / FACILITY / INFORMATION / OTHER PROGRAMS）
   -------------------------------------------------------------------------- */
@media (min-width: 1024px) {
	.yfc-footer--refresh .yfc-footer__main {
		grid-template-columns: minmax(240px, 1fr) 2.4fr;
	}
	.yfc-footer--refresh .yfc-footer__groups {
		grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
	}
}
@media (min-width: 768px) and (max-width: 1023px) {
	.yfc-footer--refresh .yfc-footer__groups {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

/* 淡い空色の帯の上では補足文字を本文色にしてコントラスト 4.5 以上を確保（muted は空色上で 4.43） */
.yfc-pg .yfc-pg-cta .yfc-pg-small,
.yfc-pg .yfc-pg-section--sky .yfc-pg-small,
.yfc-main .yfc-school-programs .yfc-school-card__note {
	color: var(--yfc-text);
}

/* --------------------------------------------------------------------------
   13. V17.2 biima sports：7 SPORTS+（スポーツ名 + 写真のカード。1〜7枚、最後の段は中央寄せ）
   Desktop 4列（7枚なら 4 + 3）/ Tablet 3列 / Mobile 2列。写真は 4:3・object-fit: cover。
   -------------------------------------------------------------------------- */
.yfc-pg .yfc-bm-sports {
	background: var(--yfc-white);
}
.yfc-pg .yfc-bm-sports__badge {
	display: inline-block;
	margin: 0 0 10px;
	padding: 4px 14px;
	border-radius: 999px;
	background: var(--yfc-sky-light);
	border: 1px solid var(--yfc-sky-soft);
	font-family: var(--yfc-font-en);
	font-weight: 800;
	font-size: 15px;
	letter-spacing: 0.1em;
	color: var(--yfc-sky-deep);
}
.yfc-pg .yfc-bm-sports__head .yfc-pg-lead {
	max-width: 640px;
	margin-inline: auto;
}
.yfc-pg .yfc-bm-sports__grid {
	--yfc-bm-gap: 20px;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--yfc-bm-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}
.yfc-pg .yfc-bm-sport {
	display: flex;
	flex-direction: column;
	flex: 0 0 calc((100% - var(--yfc-bm-gap) * 3) / 4);
	min-width: 0;
	background: var(--yfc-white);
	border: 1px solid var(--yfc-border);
	border-radius: var(--yfc-radius-md);
	overflow: hidden;
}
.yfc-pg .yfc-bm-sport__photo {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	background: var(--yfc-sky-soft);
}
.yfc-pg .yfc-bm-sport__photo > .yfc-media-img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.yfc-pg .yfc-bm-sport__name {
	display: block;
	padding: 12px 10px 14px;
	border-top: 3px solid var(--yfc-sky);
	font-weight: 800;
	font-size: 16px;
	line-height: 1.4;
	text-align: center;
	color: var(--yfc-green-deep);
}
@media (max-width: 1023px) {
	.yfc-pg .yfc-bm-sports__grid {
		--yfc-bm-gap: 16px;
	}
	.yfc-pg .yfc-bm-sport {
		flex-basis: calc((100% - var(--yfc-bm-gap) * 2) / 3);
	}
}
@media (max-width: 767px) {
	.yfc-pg .yfc-bm-sports__grid {
		--yfc-bm-gap: 12px;
	}
	.yfc-pg .yfc-bm-sport {
		flex-basis: calc((100% - var(--yfc-bm-gap)) / 2);
	}
	.yfc-pg .yfc-bm-sport__name {
		padding: 10px 8px 12px;
		font-size: 15px;
	}
}

/* --------------------------------------------------------------------------
   14. V17.2 HOME ACCESS「Googleマップで見る」：文字色を白に（.yfc-main a { color: inherit } より詳細なこのボタン専用selector）
   -------------------------------------------------------------------------- */
.yfc-main .yfc-access .yfc-access__info a.yfc-btn--green,
.yfc-main .yfc-access .yfc-access__info a.yfc-btn--green:hover,
.yfc-main .yfc-access .yfc-access__info a.yfc-btn--green:focus-visible {
	color: var(--yfc-white);
}

/* --------------------------------------------------------------------------
   15. V17.2 NEWS responsive（V17のデザインを維持し、比率・本文幅・各幅の文字サイズだけを調整）
   - アイキャッチ比率を 16:9 に統一（HOME NEWS 2:1・一覧 3:2 → 記事・関連記事と同じ 16:9）
   - 記事本文の幅：Desktop 約760px（container 820px − 左右余白）
   - Tablet（768–1023px）：タイトルを大きめに、関連記事は2列
   - Mobile（〜767px）：本文16px、見出しの余白を調整
   -------------------------------------------------------------------------- */
.yfc-main .yfc-news__card-thumb,
.yfc-main .yfc-news-archive__card-thumb {
	aspect-ratio: 16 / 9;
}
.yfc-main .yfc-news-single__container {
	max-width: 820px;
}
.yfc-main .yfc-news-archive__card-title {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
}
.yfc-main .yfc-news-single__content figure.wp-block-image,
.yfc-main .yfc-news-single__content .wp-block-gallery {
	margin-block: 1.6em;
}
@media (min-width: 768px) and (max-width: 1023px) {
	.yfc-main .yfc-news-single__title {
		font-size: 28px;
		line-height: 1.45;
	}
	.yfc-main .yfc-news-related__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 767px) {
	.yfc-main .yfc-news-single__title {
		font-size: 24px;
		line-height: 1.45;
	}
	.yfc-main .yfc-news-single__content {
		font-size: 16px;
		line-height: 1.85;
	}
	.yfc-main .yfc-news-single__content h2 {
		margin-top: 1.9em;
		padding: 2px 0 6px 12px;
		font-size: 20px;
	}
	.yfc-main .yfc-news-single__content h3 {
		margin-top: 1.6em;
		font-size: 17px;
	}
	.yfc-main .yfc-news-archive__card-title {
		font-size: 15px;
		line-height: 1.55;
	}
	/* 表は枠の中だけで横スクロール（本文全体は横スクロールさせない）。セルが1文字ずつ折り返さない最低幅にする */
	.yfc-main .yfc-news-single__content table {
		min-width: 560px;
	}
}

/* --------------------------------------------------------------------------
   16. V17.2.1 固定ページ共通Hero：写真だけに、ごくゆっくりしたズーム（Ken Burns）
   HOME Hero（.yfc-hero）は対象外。テキスト・CTAは動かさない。transform だけを使うので layout shift なし。
   親（.yfc-page-hero）は overflow: hidden のため、拡大しても枠外にはみ出さない。
   -------------------------------------------------------------------------- */
@keyframes yfc-page-hero-kenburns {
	from {
		transform: scale(1);
	}
	to {
		transform: scale(1.05);
	}
}
.yfc-page-hero .yfc-page-hero__media {
	overflow: hidden;
}
.yfc-page-hero .yfc-page-hero__media > .yfc-page-hero__img {
	transform-origin: center center;
	animation: yfc-page-hero-kenburns 18s ease-in-out infinite alternate;
	will-change: transform;
}
@media (prefers-reduced-motion: reduce) {
	.yfc-page-hero .yfc-page-hero__media > .yfc-page-hero__img {
		animation: none;
		transform: none;
		will-change: auto;
	}
}

/* --------------------------------------------------------------------------
   17. V17.2.1 NEWS：アイキャッチ未設定時のブランドVisual（16:9・CSSのみ）
   カテゴリー名 + 補助文字。文字サイズは枠の幅（container query）に合わせて伸縮するため、
   HOMEの小さなサムネイルから記事ページの大きなVisualまで同じデザインで崩れない。
   -------------------------------------------------------------------------- */
.yfc-main .yfc-news-fallback {
	position: relative;
	container-type: inline-size;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: space-between;
	width: 100%;
	height: 100%;
	padding: 6% 7%;
	overflow: hidden;
	background: linear-gradient(135deg, var(--yfc-green-deep) 0%, var(--yfc-green) 100%);
	color: var(--yfc-white);
}
/* ピッチのライン（センターサークル + ハーフウェイライン）を淡く */
.yfc-main .yfc-news-fallback::before,
.yfc-main .yfc-news-fallback::after {
	content: "";
	position: absolute;
	pointer-events: none;
}
.yfc-main .yfc-news-fallback::before {
	top: 50%;
	right: -12%;
	width: 62%;
	aspect-ratio: 1;
	border: 2px solid rgba(255, 255, 255, 0.16);
	border-radius: 50%;
	transform: translateY(-50%);
}
.yfc-main .yfc-news-fallback::after {
	top: 0;
	bottom: 0;
	right: 19%;
	width: 0;
	border-left: 2px solid rgba(255, 255, 255, 0.12);
}
.yfc-main .yfc-news-fallback--kosal,
.yfc-main .yfc-news-fallback--court {
	background: linear-gradient(135deg, var(--yfc-green-deep) 0%, var(--yfc-green) 100%);
}
.yfc-main .yfc-news-fallback--school {
	background: linear-gradient(135deg, var(--yfc-green) 0%, var(--yfc-green-dark) 55%, var(--yfc-sky-deep) 130%);
}
.yfc-main .yfc-news-fallback--biima,
.yfc-main .yfc-news-fallback--event {
	background: linear-gradient(135deg, var(--yfc-sky-deep) 0%, var(--yfc-green) 120%);
}
.yfc-main .yfc-news-fallback--facility,
.yfc-main .yfc-news-fallback--other {
	background: linear-gradient(135deg, var(--yfc-green-deep) 0%, var(--yfc-sky-deep) 120%);
}
.yfc-main .yfc-news-fallback__mark {
	position: relative;
	font-family: var(--yfc-font-en);
	font-weight: 800;
	font-size: clamp(9px, 6cqw, 22px);
	letter-spacing: 0.06em;
	line-height: 1;
	opacity: 0.9;
}
.yfc-main .yfc-news-fallback__text {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.25em;
	min-width: 0;
	max-width: 100%;
}
.yfc-main .yfc-news-fallback__label {
	overflow: hidden;
	font-family: var(--yfc-font-en);
	font-weight: 800;
	font-size: clamp(8px, 7.6cqw, 48px);
	letter-spacing: 0.04em;
	line-height: 1.05;
	color: var(--yfc-white);
	opacity: 1;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.yfc-main .yfc-news-fallback__sub {
	overflow: hidden;
	font-weight: 700;
	font-size: clamp(8px, 4.4cqw, 20px);
	line-height: 1.3;
	color: rgba(255, 255, 255, 0.9);
	text-overflow: ellipsis;
	white-space: nowrap;
}
/* 記事ページ：アイキャッチ枠（16:9）いっぱいに表示 */
.yfc-main .yfc-news-single__thumb--fallback {
	position: relative;
}
.yfc-main .yfc-news-single__thumb--fallback > .yfc-news-fallback {
	position: absolute;
	inset: 0;
}
/* HOMEのMobileリスト（小さな横長サムネイル）では補助文字を省き、カテゴリー名だけにする */
@container (max-width: 120px) {
	.yfc-main .yfc-news-fallback__sub,
	.yfc-main .yfc-news-fallback__mark {
		display: none;
	}
	.yfc-main .yfc-news-fallback__text {
		max-width: 100%;
	}
	.yfc-main .yfc-news-fallback {
		justify-content: center;
	}
	.yfc-main .yfc-news-fallback__label {
		white-space: normal;
		line-height: 1.1;
	}
}

/* --------------------------------------------------------------------------
   18. V17.2.1 Court Rental キャンセル規定（通常キャンセル → 具体例 → 雨天キャンセル）
   「7日前まで無料」と「雨天時は開始2時間前から電話受付」が一目で分かるように、具体例と雨天の受付条件を強調する。
   -------------------------------------------------------------------------- */
.yfc-cr .yfc-cr-cancel-title {
	margin-bottom: 14px;
}
.yfc-cr .yfc-cr-cancel__item--free .yfc-cr-cancel__note {
	margin-top: 4px;
	padding: 10px 12px;
	border-radius: var(--yfc-radius-sm);
	background: var(--yfc-green-tint);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.7;
	text-align: left;
	color: var(--yfc-text);
	opacity: 1;
}
.yfc-cr .yfc-cr-cancel-info__box--rain {
	border: 2px solid var(--yfc-sky);
	background: var(--yfc-sky-light);
}
.yfc-cr .yfc-cr-cancel-info__box--rain .yfc-cr-list > li:first-child,
.yfc-cr .yfc-cr-cancel-info__box--rain .yfc-cr-list > li:nth-child(2) {
	font-weight: 800;
	color: var(--yfc-green-deep);
}

/* --------------------------------------------------------------------------
   19. V17.3 HERO VISUAL MASTER（固定ページ共通Hero：最大5枚・クロスフェード + ゆっくりズーム）
   画像レイヤー（.yfc-page-hero__media）だけを対象にする。タイトル・CTA・overlay・高さは変更しない。
   動きの強さ：ページの種類（data-yfc-hero-mood：sport / calm / info）× 画面幅で、CSS変数だけを切り替える。
   -------------------------------------------------------------------------- */
.yfc-page-hero .yfc-page-hero__media[data-yfc-hero-count] {
	--yfc-kb-scale: 1.05;
	--yfc-kb-pan: 1%;
}
.yfc-page-hero .yfc-page-hero__media[data-yfc-hero-mood="calm"] {
	--yfc-kb-scale: 1.04;
	--yfc-kb-pan: 0.8%;
}
.yfc-page-hero .yfc-page-hero__media[data-yfc-hero-mood="info"] {
	--yfc-kb-scale: 1.03;
	--yfc-kb-pan: 0.5%;
}
@media (max-width: 1023px) {
	.yfc-page-hero .yfc-page-hero__media[data-yfc-hero-count] {
		--yfc-kb-scale: 1.04;
		--yfc-kb-pan: 0.7%;
	}
	.yfc-page-hero .yfc-page-hero__media[data-yfc-hero-mood="calm"] {
		--yfc-kb-scale: 1.035;
		--yfc-kb-pan: 0.55%;
	}
	.yfc-page-hero .yfc-page-hero__media[data-yfc-hero-mood="info"] {
		--yfc-kb-scale: 1.025;
		--yfc-kb-pan: 0.35%;
	}
}
@media (max-width: 767px) {
	/* Mobile：写真の切れを防ぐため、移動はなしでズームだけ */
	.yfc-page-hero .yfc-page-hero__media[data-yfc-hero-count] {
		--yfc-kb-scale: 1.03;
		--yfc-kb-pan: 0%;
	}
	.yfc-page-hero .yfc-page-hero__media[data-yfc-hero-mood="calm"] {
		--yfc-kb-scale: 1.025;
	}
	.yfc-page-hero .yfc-page-hero__media[data-yfc-hero-mood="info"] {
		--yfc-kb-scale: 1.02;
	}
}

/* 1枚（または切り替え準備前・JSなし）：PHOTO 01 がゆっくりズーム（V17.2.1の動きを、ページの種類別の強さに） */
@keyframes yfc-hero-kb-single {
	from {
		transform: scale(1);
	}
	to {
		transform: scale(var(--yfc-kb-scale));
	}
}
.yfc-page-hero .yfc-page-hero__media[data-yfc-hero-count] > .yfc-page-hero__img {
	animation-name: yfc-hero-kb-single;
}

/* 2〜5枚：切り替え準備後（JSが data-yfc-hero-ready を付与）。透明度だけで切り替え、表示中の写真だけがゆっくり動く */
@keyframes yfc-hero-kb-1 {
	from { transform: scale(1); }
	to { transform: scale(var(--yfc-kb-scale)); }
}
@keyframes yfc-hero-kb-2 {
	from { transform: scale(1) translate3d(0, 0, 0); }
	to { transform: scale(var(--yfc-kb-scale)) translate3d(calc(var(--yfc-kb-pan) * -1), 0, 0); }
}
@keyframes yfc-hero-kb-3 {
	from { transform: scale(1) translate3d(0, 0, 0); }
	to { transform: scale(var(--yfc-kb-scale)) translate3d(var(--yfc-kb-pan), 0, 0); }
}
@keyframes yfc-hero-kb-4 {
	from { transform: scale(1) translate3d(0, 0, 0); }
	to { transform: scale(var(--yfc-kb-scale)) translate3d(0, calc(var(--yfc-kb-pan) * -1), 0); }
}
@keyframes yfc-hero-kb-5 {
	from { transform: scale(var(--yfc-kb-scale)); }
	to { transform: scale(1); }
}
.yfc-page-hero .yfc-page-hero__media[data-yfc-hero-ready] > .yfc-page-hero__img {
	opacity: 0;
	animation: none;
	transform: scale(1);
	transition: opacity 1.6s ease-in-out;
}
.yfc-page-hero .yfc-page-hero__media[data-yfc-hero-ready] > .yfc-page-hero__img.is-active {
	opacity: 1;
}
.yfc-page-hero .yfc-page-hero__media[data-yfc-hero-ready] > .yfc-page-hero__img.is-animating {
	animation: yfc-hero-kb-1 9.6s linear forwards;
}
.yfc-page-hero .yfc-page-hero__media[data-yfc-hero-ready] > .yfc-page-hero__img[data-yfc-hero-slot="2"].is-animating {
	animation-name: yfc-hero-kb-2;
}
.yfc-page-hero .yfc-page-hero__media[data-yfc-hero-ready] > .yfc-page-hero__img[data-yfc-hero-slot="3"].is-animating {
	animation-name: yfc-hero-kb-3;
}
.yfc-page-hero .yfc-page-hero__media[data-yfc-hero-ready] > .yfc-page-hero__img[data-yfc-hero-slot="4"].is-animating {
	animation-name: yfc-hero-kb-4;
}
.yfc-page-hero .yfc-page-hero__media[data-yfc-hero-ready] > .yfc-page-hero__img[data-yfc-hero-slot="5"].is-animating {
	animation-name: yfc-hero-kb-5;
}
.yfc-page-hero .yfc-page-hero__media.is-paused > .yfc-page-hero__img {
	animation-play-state: paused;
}

/* 一時停止 / 再開ボタン（2枚以上のときだけJSが追加。小さく、目立ちすぎない）。下側は次のsectionのカードが重なるページがあるため右上に置く */
.yfc-page-hero .yfc-page-hero__toggle {
	position: absolute;
	top: 16px;
	right: 16px;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	margin: 0;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.55);
	border-radius: 50%;
	background: rgba(12, 34, 31, 0.45);
	color: var(--yfc-white);
	cursor: pointer;
}
.yfc-page-hero .yfc-page-hero__toggle::before {
	content: "";
	width: 8px;
	height: 10px;
	border-left: 3px solid currentColor;
	border-right: 3px solid currentColor;
	box-sizing: border-box;
}
.yfc-page-hero .yfc-page-hero__toggle.is-paused::before {
	width: 0;
	height: 0;
	margin-left: 3px;
	border-top: 6px solid transparent;
	border-bottom: 6px solid transparent;
	border-left: 9px solid currentColor;
	border-right: 0;
}
.yfc-page-hero .yfc-page-hero__toggle:hover {
	background: rgba(12, 34, 31, 0.7);
}
.yfc-page-hero .yfc-page-hero__toggle:focus-visible {
	outline: 3px solid var(--yfc-yellow);
	outline-offset: 2px;
}
@media (max-width: 767px) {
	.yfc-page-hero .yfc-page-hero__toggle {
		top: 12px;
		right: 12px;
		width: 32px;
		height: 32px;
	}
}
@media (prefers-reduced-motion: reduce) {
	.yfc-page-hero .yfc-page-hero__media[data-yfc-hero-count] > .yfc-page-hero__img {
		animation: none;
		transform: none;
		transition: none;
	}
	.yfc-page-hero .yfc-page-hero__toggle {
		display: none;
	}
}

/* --------------------------------------------------------------------------
   20. V17.3 個サル：定員・ゲリラ開催 / LEVEL 1〜3 / ポイント / 中止の場合 / 注意事項
   既存 yfc-kosal.css は変更せず、追加のclassだけをここで指定する（GREEN × SKY × WHITE）。
   -------------------------------------------------------------------------- */
/* LEVEL 1（空色） */
.yfc-ks .yfc-ks-level--1 {
	background: var(--yfc-sky-deep);
	color: var(--yfc-white);
}
.yfc-ks .yfc-ks-week__day--level1 {
	border-color: var(--yfc-sky-deep);
	background: var(--yfc-sky-deep);
	color: var(--yfc-white);
}
.yfc-ks .yfc-ks-lvcard--1 .yfc-ks-lvcard__badge {
	background: var(--yfc-sky-deep);
	color: var(--yfc-white);
}

/* 定員・最低開催人数・ゲリラ開催 */
.yfc-ks .yfc-ks-info {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 16px;
	margin: 24px 0 0;
}
.yfc-ks .yfc-ks-info__facts {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0;
}
.yfc-ks .yfc-ks-info__fact {
	flex: 1 1 140px;
	padding: 16px 18px;
	border: 1px solid var(--yfc-border);
	border-radius: var(--yfc-radius-md);
	background: var(--yfc-white);
}
.yfc-ks .yfc-ks-info__fact dt {
	font-size: 13px;
	font-weight: 700;
	color: var(--yfc-text);
}
.yfc-ks .yfc-ks-info__fact dd {
	margin: 2px 0 0;
	font-size: 24px;
	font-weight: 800;
	color: var(--yfc-green);
}
.yfc-ks .yfc-ks-info__note {
	grid-column: 1;
	margin: 0;
	font-size: 13px;
	color: var(--yfc-text);
}
.yfc-ks .yfc-ks-info__guerrilla {
	grid-column: 2;
	grid-row: 1 / span 2;
	padding: 16px 18px;
	border: 1px solid var(--yfc-sky-soft);
	border-left: 4px solid var(--yfc-sky);
	border-radius: var(--yfc-radius-md);
	background: var(--yfc-sky-light);
}
.yfc-ks .yfc-ks-info__guerrilla-label {
	margin: 0 0 4px;
	font-weight: 800;
	color: var(--yfc-sky-deep);
}
.yfc-ks .yfc-ks-info__guerrilla-text {
	margin: 0;
	font-size: 14px;
	line-height: 1.8;
	color: var(--yfc-text);
}

/* LEVEL GUIDE（LEVEL 1〜3 を同じ形で並べ、優劣ではなく「自分に合う開催日」を選ぶための案内にする） */
.yfc-ks .yfc-ks-levels__grid--guide {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: stretch;
}
.yfc-ks .yfc-ks-lvcard--guide {
	flex-direction: column;
}
.yfc-ks .yfc-ks-lvcard--guide .yfc-ks-lvcard__badge {
	flex-direction: row;
	align-items: baseline;
	justify-content: flex-start;
	gap: 8px;
	width: auto;
	padding: 14px 22px;
}
.yfc-ks .yfc-ks-lvcard--guide .yfc-ks-lvcard__badge-num {
	font-size: 40px;
}
.yfc-ks .yfc-ks-lvcard--guide .yfc-ks-lvcard__title {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
}
.yfc-ks .yfc-ks-lvcard--guide .yfc-ks-lvcard__label {
	margin-top: 16px;
	color: var(--yfc-text);
}
.yfc-ks .yfc-ks-lvcard--guide .yfc-ks-lvcard__label:first-of-type {
	margin-top: 0;
}
.yfc-ks .yfc-ks-lvcard__none {
	margin: 0;
	padding: 10px 14px;
	border-radius: 10px;
	background: var(--yfc-offwhite);
	font-size: 13px;
	color: var(--yfc-text);
}
.yfc-ks .yfc-ks-lvcard__list,
.yfc-ks .yfc-ks-lvcard__rules {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 6px;
	font-size: 14px;
	line-height: 1.7;
	color: var(--yfc-text);
}
.yfc-ks .yfc-ks-lvcard__list li {
	position: relative;
	padding-left: 1.5em;
}
.yfc-ks .yfc-ks-lvcard__list li::before {
	content: "";
	position: absolute;
	left: 0.3em;
	top: 0.5em;
	width: 0.4em;
	height: 0.75em;
	border-right: 2px solid var(--yfc-green);
	border-bottom: 2px solid var(--yfc-green);
	transform: rotate(45deg);
}
.yfc-ks .yfc-ks-lvcard__rules {
	counter-reset: yfc-ks-rule;
}
.yfc-ks .yfc-ks-lvcard__rules li {
	position: relative;
	padding-left: 1.8em;
	counter-increment: yfc-ks-rule;
}
.yfc-ks .yfc-ks-lvcard__rules li::before {
	content: counter(yfc-ks-rule);
	position: absolute;
	left: 0;
	top: 0.15em;
	width: 1.35em;
	height: 1.35em;
	border-radius: 50%;
	background: var(--yfc-green-tint);
	font-size: 12px;
	font-weight: 800;
	line-height: 1.35em;
	text-align: center;
	color: var(--yfc-green-dark);
}

/* ポイント制度 */
.yfc-ks .yfc-ks-points__card {
	max-width: 760px;
	margin-inline: auto;
	padding: 28px 32px;
	border: 2px solid var(--yfc-green);
	border-radius: var(--yfc-radius-md);
	background: var(--yfc-white);
	text-align: center;
}
.yfc-ks .yfc-ks-points__card .yfc-ks-head {
	margin-bottom: 12px;
}
.yfc-ks .yfc-ks-points__highlight {
	display: inline-block;
	margin: 0 0 12px;
	padding: 8px 20px;
	border-radius: 999px;
	background: var(--yfc-green-tint);
	font-size: 22px;
	font-weight: 900;
	color: var(--yfc-green-dark);
}
.yfc-ks .yfc-ks-points__text {
	margin: 0;
	line-height: 1.9;
	color: var(--yfc-text);
}

/* 中止の場合（悪天候 / 人数不足を別カードで） */
.yfc-ks .yfc-ks-stop__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.yfc-ks .yfc-ks-stop__card {
	padding: 22px 24px;
	border: 1px solid var(--yfc-border);
	border-top: 4px solid var(--yfc-sky);
	border-radius: var(--yfc-radius-md);
	background: var(--yfc-white);
}
.yfc-main.yfc-ks .yfc-ks-stop__title {
	margin: 0 0 10px;
	font-size: 18px;
	font-weight: 800;
	color: var(--yfc-green-deep);
}
.yfc-ks .yfc-ks-stop__when {
	display: inline-block;
	margin: 0 0 8px;
	padding: 2px 12px;
	border-radius: 999px;
	background: var(--yfc-sky-light);
	font-size: 14px;
	font-weight: 800;
	color: var(--yfc-sky-deep);
}
.yfc-ks .yfc-ks-stop__how {
	margin: 0;
	line-height: 1.8;
	color: var(--yfc-text);
}

/* 注意事項 */
.yfc-ks .yfc-ks-rules__list {
	max-width: 860px;
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 10px;
}
.yfc-ks .yfc-ks-rules__list li {
	position: relative;
	padding: 14px 18px 14px 44px;
	border: 1px solid var(--yfc-border);
	border-radius: var(--yfc-radius-md);
	background: var(--yfc-white);
	line-height: 1.8;
	color: var(--yfc-text);
}
.yfc-ks .yfc-ks-rules__list li::before {
	content: "!";
	position: absolute;
	left: 16px;
	top: 15px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--yfc-green);
	font-size: 12px;
	font-weight: 900;
	line-height: 18px;
	text-align: center;
	color: var(--yfc-white);
}
.yfc-ks .yfc-ks-rules__tel {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 6px 14px;
	margin: 18px 0 0;
}
.yfc-ks .yfc-ks-rules__tel-label {
	font-weight: 700;
	color: var(--yfc-text);
}
.yfc-ks .yfc-ks-rules__tel a {
	font-family: var(--yfc-font-en);
	font-size: 24px;
	font-weight: 800;
	color: var(--yfc-green);
}

@media (max-width: 1023px) {
	/* Tablet：LEVELカードは横長（バッジ左）で縦に並べる */
	.yfc-ks .yfc-ks-levels__grid--guide {
		grid-template-columns: minmax(0, 1fr);
	}
	.yfc-ks .yfc-ks-lvcard--guide {
		flex-direction: row;
	}
	.yfc-ks .yfc-ks-lvcard--guide .yfc-ks-lvcard__badge {
		flex-direction: column;
		align-items: center;
		justify-content: center;
		width: 110px;
		padding: 16px 10px;
	}
}
@media (max-width: 767px) {
	.yfc-ks .yfc-ks-info {
		grid-template-columns: minmax(0, 1fr);
	}
	.yfc-ks .yfc-ks-info__note,
	.yfc-ks .yfc-ks-info__guerrilla {
		grid-column: 1;
		grid-row: auto;
	}
	/* Mobile：LEVELカードはバッジを上にした縦型 */
	.yfc-ks .yfc-ks-lvcard--guide {
		flex-direction: column;
	}
	.yfc-ks .yfc-ks-lvcard--guide .yfc-ks-lvcard__badge {
		flex-direction: row;
		align-items: baseline;
		justify-content: flex-start;
		width: auto;
		padding: 12px 18px;
	}
	.yfc-ks .yfc-ks-lvcard--guide .yfc-ks-lvcard__badge-num {
		font-size: 34px;
	}
	.yfc-ks .yfc-ks-stop__grid {
		grid-template-columns: minmax(0, 1fr);
	}
	.yfc-ks .yfc-ks-points__card {
		padding: 22px 18px;
	}
	.yfc-ks .yfc-ks-points__highlight {
		font-size: 19px;
	}
}

/* --------------------------------------------------------------------------
   21. V17.3.1 お支払い方法（キャッシュレス決済案内。コートレンタル・個サル共通）
   template-parts/shared/payment-methods.php。白いcard（GREEN × SKY × WHITE）、決済画像は縦横比を保って表示。
   -------------------------------------------------------------------------- */
.yfc-payment {
	max-width: 760px;
	margin: 40px auto 0;
	padding: 28px 32px;
	border: 1px solid var(--yfc-border);
	border-radius: var(--yfc-radius-md);
	background: var(--yfc-white);
	text-align: center;
}
.yfc-main .yfc-payment__title {
	margin: 0 0 12px;
	font-size: 22px;
	font-weight: 800;
	line-height: 1.4;
	color: var(--yfc-green-deep);
}
.yfc-main .yfc-payment__label {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	margin: 0 0 6px;
	font-family: var(--yfc-font-en);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.12em;
	color: var(--yfc-sky-deep);
}
.yfc-main .yfc-payment__lead {
	margin: 0 0 6px;
	font-size: 18px;
	font-weight: 800;
	line-height: 1.5;
	color: var(--yfc-green);
}
.yfc-main .yfc-payment__text {
	margin: 0;
	font-size: 15px;
	line-height: 1.8;
	color: var(--yfc-text);
}
.yfc-payment__media {
	margin: 20px 0 0;
}
.yfc-payment__img {
	display: block;
	max-width: 100%;
	height: auto;
	margin-inline: auto;
	border-radius: 6px;
}
.yfc-main .yfc-payment__note {
	margin: 14px 0 0;
	font-size: 13px;
	line-height: 1.7;
	color: var(--yfc-muted);
}
@media (max-width: 767px) {
	.yfc-payment {
		margin-top: 32px;
		padding: 22px 16px;
	}
	.yfc-main .yfc-payment__title {
		font-size: 20px;
	}
	.yfc-main .yfc-payment__lead {
		font-size: 16px;
	}
	.yfc-payment__img {
		width: 100%;
	}
}

/* --------------------------------------------------------------------------
   22. V17.4 標準固定ページ（yfc-standard-page.php：管理画面で作成した通常の固定ページ）
   見出し・リスト・表・画像・ボタン等は section 10 の .yfc-entry-content（NEWS本文と共通）をそのまま使う。
   ここでは標準固定ページだけに、Mobile の文字サイズ・余白とブロックの幅を補う（V17の既存ページには効かない）。
   -------------------------------------------------------------------------- */
.yfc-std-page .yfc-entry-content > :first-child {
	margin-top: 0;
}
.yfc-std-page .yfc-entry-content .wp-block-columns {
	gap: 24px;
}
.yfc-std-page .yfc-entry-content .alignwide,
.yfc-std-page .yfc-entry-content .alignfull {
	width: auto;
	max-width: 100%;
	margin-inline: 0;
}
.yfc-std-page .yfc-entry-content {
	overflow-wrap: break-word;
}
.yfc-std-page .yfc-std-page__pages {
	margin-top: 32px;
	font-weight: 700;
}
@media (max-width: 767px) {
	.yfc-main.yfc-std-page .yfc-entry-content {
		font-size: 16px;
		line-height: 1.85;
	}
	.yfc-main.yfc-std-page .yfc-entry-content h2 {
		margin-top: 1.9em;
		padding: 2px 0 6px 12px;
		font-size: 20px;
	}
	.yfc-main.yfc-std-page .yfc-entry-content h3 {
		margin-top: 1.6em;
		font-size: 17px;
	}
	/* 表は枠の中だけで横スクロール（ページ全体は横スクロールさせない） */
	.yfc-main.yfc-std-page .yfc-entry-content table {
		min-width: 560px;
	}
}

/* --------------------------------------------------------------------------
   23. V17.4 HOME（Mobile）：文字の改行位置
   マークアップの <wbr>（意味の区切り）だけで改行し、単語の途中では改行しない（Safari を含む）。
   万一1区切りが画面幅より長い場合だけ、はみ出さないよう途中で折り返す。PC / Tablet は変更なし。
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
	.yfc-purpose .yfc-purpose__card-ja,
	.yfc-why .yfc-why__copy,
	.yfc-about .yfc-about__title {
		word-break: keep-all;
		overflow-wrap: break-word;
		overflow-wrap: anywhere;
	}
}

/* --------------------------------------------------------------------------
   24. V17.4.1 OTHER PROGRAMS：表示件数に合わせた自動グリッド
   other-programs.php が件数のclass（--n1 / --n2 / --n3 = 3件以上）を付ける。件数が増えてもコード修正は不要。
   Desktop：1件 = 中央に1枚 / 2件 = 均等2カラム / 3件以上 = 3カラム（4件目以降は次の行へ）
   Tablet：2カラム（1件は中央に1枚）/ Mobile：1カラム
   カードは主要サービス・SCHOOL PROGRAMS より小さい横型（写真 + テキスト）のまま、少しだけ余裕を持たせる。
   -------------------------------------------------------------------------- */
.yfc-main .yfc-other-programs__list {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	grid-auto-rows: 1fr; /* 行が増えてもカードの高さをそろえる */
	gap: 20px;
	margin-top: 24px;
}
.yfc-main .yfc-other-programs__list--n2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
}
.yfc-main .yfc-other-programs__list--n1 {
	grid-template-columns: minmax(0, 560px);
	justify-content: center;
}
.yfc-main .yfc-other-programs__card {
	min-height: 132px;
}
.yfc-main .yfc-other-programs__photo {
	flex-basis: 36%;
	min-height: 132px;
}
.yfc-main .yfc-other-programs__body {
	gap: 6px;
	padding: 18px 22px;
}
.yfc-main .yfc-other-programs__title {
	font-size: 17px;
}
.yfc-main .yfc-other-programs__text {
	font-size: 14px;
}
.yfc-main .yfc-other-programs__more {
	padding-top: 4px;
	font-size: 13px;
}
@media (max-width: 1023px) {
	.yfc-main .yfc-other-programs__list,
	.yfc-main .yfc-other-programs__list--n2 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 16px;
	}
	.yfc-main .yfc-other-programs__list--n1 {
		grid-template-columns: minmax(0, 560px);
	}
}
@media (max-width: 767px) {
	.yfc-main .yfc-other-programs__list,
	.yfc-main .yfc-other-programs__list--n2,
	.yfc-main .yfc-other-programs__list--n1 {
		grid-template-columns: minmax(0, 1fr);
		gap: 12px;
	}
	.yfc-main .yfc-other-programs__card,
	.yfc-main .yfc-other-programs__photo {
		min-height: 112px;
	}
	.yfc-main .yfc-other-programs__body {
		padding: 14px 16px;
	}
	.yfc-main .yfc-other-programs__title {
		font-size: 16px;
	}
	.yfc-main .yfc-other-programs__text {
		font-size: 13px;
	}
}

/* --------------------------------------------------------------------------
   25. V17.4.3 HOME Hero：HERO VISUAL（PHOTO 01〜05）
   固定ページHero（section 16・19）と同じ動き・同じkeyframes・同じJS（assets/js/yfc-page-hero.js）を、
   HOME Hero の写真レイヤー（.yfc-hero__bg）にだけ適用する。高さ・コピー・CTA・scrim・tagline は変更しない。
   1枚 = ゆっくりズーム / 2〜5枚 = 約8秒ごとのクロスフェード + ゆっくりズーム / prefers-reduced-motion = PHOTO 01 静止
   -------------------------------------------------------------------------- */
.yfc-hero .yfc-hero__bg[data-yfc-hero-count] {
	--yfc-kb-scale: 1.05;
	--yfc-kb-pan: 1%;
	overflow: hidden;
}
@media (max-width: 1023px) {
	.yfc-hero .yfc-hero__bg[data-yfc-hero-count] {
		--yfc-kb-scale: 1.04;
		--yfc-kb-pan: 0.7%;
	}
}
@media (max-width: 767px) {
	.yfc-hero .yfc-hero__bg[data-yfc-hero-count] {
		--yfc-kb-scale: 1.03;
		--yfc-kb-pan: 0%;
	}
}
/* 1枚（または切り替え準備前・JSなし） */
.yfc-hero .yfc-hero__bg[data-yfc-hero-count] > .yfc-hero__img {
	transform-origin: center center;
	animation: yfc-hero-kb-single 18s ease-in-out infinite alternate;
	will-change: transform;
}
/* 2〜5枚：切り替え準備後（JSが data-yfc-hero-ready を付与） */
.yfc-hero .yfc-hero__bg[data-yfc-hero-ready] > .yfc-hero__img {
	opacity: 0;
	animation: none;
	transform: scale(1);
	transition: opacity 1.6s ease-in-out;
}
.yfc-hero .yfc-hero__bg[data-yfc-hero-ready] > .yfc-hero__img.is-active {
	opacity: 1;
}
.yfc-hero .yfc-hero__bg[data-yfc-hero-ready] > .yfc-hero__img.is-animating {
	animation: yfc-hero-kb-1 9.6s linear forwards;
}
.yfc-hero .yfc-hero__bg[data-yfc-hero-ready] > .yfc-hero__img[data-yfc-hero-slot="2"].is-animating {
	animation-name: yfc-hero-kb-2;
}
.yfc-hero .yfc-hero__bg[data-yfc-hero-ready] > .yfc-hero__img[data-yfc-hero-slot="3"].is-animating {
	animation-name: yfc-hero-kb-3;
}
.yfc-hero .yfc-hero__bg[data-yfc-hero-ready] > .yfc-hero__img[data-yfc-hero-slot="4"].is-animating {
	animation-name: yfc-hero-kb-4;
}
.yfc-hero .yfc-hero__bg[data-yfc-hero-ready] > .yfc-hero__img[data-yfc-hero-slot="5"].is-animating {
	animation-name: yfc-hero-kb-5;
}
.yfc-hero .yfc-hero__bg.is-paused > .yfc-hero__img {
	animation-play-state: paused;
}
/* 一時停止 / 再開ボタン（2枚以上のときだけJSが追加）。コピー・CTA・taglineと重ならない右上に小さく置く */
.yfc-hero .yfc-page-hero__toggle {
	position: absolute;
	top: 16px;
	right: 16px;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	margin: 0;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.55);
	border-radius: 50%;
	background: rgba(12, 34, 31, 0.45);
	color: var(--yfc-white);
	cursor: pointer;
}
.yfc-hero .yfc-page-hero__toggle::before {
	content: "";
	width: 8px;
	height: 10px;
	border-left: 3px solid currentColor;
	border-right: 3px solid currentColor;
	box-sizing: border-box;
}
.yfc-hero .yfc-page-hero__toggle.is-paused::before {
	width: 0;
	height: 0;
	margin-left: 3px;
	border-top: 6px solid transparent;
	border-bottom: 6px solid transparent;
	border-left: 9px solid currentColor;
	border-right: 0;
}
.yfc-hero .yfc-page-hero__toggle:hover {
	background: rgba(12, 34, 31, 0.7);
}
.yfc-hero .yfc-page-hero__toggle:focus-visible {
	outline: 3px solid var(--yfc-yellow);
	outline-offset: 2px;
}
@media (max-width: 767px) {
	.yfc-hero .yfc-page-hero__toggle {
		top: 12px;
		right: 12px;
		width: 32px;
		height: 32px;
	}
}
@media (prefers-reduced-motion: reduce) {
	.yfc-hero .yfc-hero__bg[data-yfc-hero-count] > .yfc-hero__img {
		animation: none;
		transform: none;
		transition: none;
		will-change: auto;
	}
	.yfc-hero .yfc-page-hero__toggle {
		display: none;
	}
}
