/* ==========================================================================
   YFC V17.1 — ヨガ / グラウンドゴルフの開催日程、選抜エリートクラス（セレクション・年間スケジュール）
   /yoga/ ・ /ground-golf/ ・ /soccer-school/ のみで読み込む追加専用CSS。既存CSSは書き換えない。!important は使わない。
   状態は色だけでなく文字（開催 / 休講 / 休止 / 終了、● / △ / ―）でも区別する。
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Monthly Program Schedule（ヨガ = 空色アクセント / グラウンドゴルフ = 緑アクセント）
   -------------------------------------------------------------------------- */
.yfc-pg .yfc-psch {
	--yfc-psch-accent: var(--yfc-sky);
	--yfc-psch-accent-text: var(--yfc-sky-deep);
	background: var(--yfc-bg);
}
.yfc-pg .yfc-psch--ground-golf {
	--yfc-psch-accent: var(--yfc-green);
	--yfc-psch-accent-text: var(--yfc-green);
}
.yfc-pg .yfc-psch .yfc-pg-eyebrow {
	color: var(--yfc-psch-accent-text);
}
.yfc-pg .yfc-psch__lead {
	margin: 8px 0 0;
	color: var(--yfc-text);
}
.yfc-pg .yfc-psch-break {
	margin: 0 0 24px;
	padding: 20px 24px;
	background: var(--yfc-white);
	border: 1px solid var(--yfc-sky-soft);
	border-left: 5px solid var(--yfc-psch-accent);
	border-radius: var(--yfc-radius-md);
}
.yfc-pg .yfc-psch-break p {
	margin: 0;
}
.yfc-pg .yfc-psch-break__label {
	font-family: var(--yfc-font-en), var(--yfc-font-jp);
	font-weight: 800;
	font-size: 14px;
	letter-spacing: 0.08em;
	color: var(--yfc-psch-accent-text);
}
.yfc-pg .yfc-psch-break__range {
	margin-top: 4px;
	font-size: 20px;
	font-weight: 800;
	color: var(--yfc-green-deep);
}
.yfc-pg .yfc-psch-break__text {
	margin-top: 6px;
	line-height: 1.8;
	color: var(--yfc-text);
}
.yfc-pg .yfc-psch__months {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
}
.yfc-pg .yfc-psch-month {
	padding: 20px;
	background: var(--yfc-white);
	border: 1px solid var(--yfc-border);
	border-radius: var(--yfc-radius-md);
}
.yfc-main.yfc-pg .yfc-psch-month__title {
	margin: 0 0 14px;
	padding-bottom: 10px;
	border-bottom: 2px solid var(--yfc-psch-accent);
	font-size: 18px;
	font-weight: 800;
	color: var(--yfc-green-deep);
}
.yfc-pg .yfc-psch-days {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(76px, 1fr));
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.yfc-pg .yfc-psch-day {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	padding: 10px 6px 12px;
	border: 1px solid var(--yfc-border);
	border-radius: var(--yfc-radius-md);
	background: var(--yfc-white);
	text-align: center;
}
.yfc-pg .yfc-psch-day__date {
	font-family: var(--yfc-font-en);
	font-weight: 800;
	font-size: 28px;
	line-height: 1;
	color: var(--yfc-green-deep);
}
.yfc-pg .yfc-psch-day__wd {
	font-family: var(--yfc-font-en);
	font-weight: 700;
	font-size: 12px;
	letter-spacing: 0.08em;
	color: var(--yfc-text);
}
.yfc-pg .yfc-psch-day__status {
	margin-top: 4px;
	padding: 2px 10px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
}
.yfc-pg .yfc-psch-day__note {
	margin-top: 4px;
	font-size: 11px;
	line-height: 1.4;
	color: var(--yfc-text);
}
.yfc-pg .yfc-psch-day.is-open {
	border-color: var(--yfc-psch-accent);
	box-shadow: inset 0 3px 0 var(--yfc-psch-accent);
}
.yfc-pg .yfc-psch-day.is-open .yfc-psch-day__status {
	background: var(--yfc-green-tint);
	color: var(--yfc-green-dark);
}
.yfc-pg .yfc-psch-day.is-closed {
	background: var(--yfc-gray-100);
}
.yfc-pg .yfc-psch-day.is-closed .yfc-psch-day__date {
	color: var(--yfc-muted);
}
.yfc-pg .yfc-psch-day.is-closed .yfc-psch-day__status {
	background: var(--yfc-white);
	border: 1px solid var(--yfc-gray-300);
	color: var(--yfc-text);
}
.yfc-pg .yfc-psch-day.is-break {
	background: var(--yfc-sky-light);
}
.yfc-pg .yfc-psch-day.is-break .yfc-psch-day__status {
	background: var(--yfc-white);
	color: var(--yfc-sky-deep);
}
.yfc-pg .yfc-psch-day.is-past {
	background: var(--yfc-white);
	border-style: dashed;
}
.yfc-pg .yfc-psch-day.is-past .yfc-psch-day__date {
	color: var(--yfc-muted);
}
.yfc-pg .yfc-psch-day.is-past .yfc-psch-day__status {
	background: var(--yfc-gray-100);
	color: var(--yfc-text);
}
.yfc-pg .yfc-psch-month__empty {
	margin: 0;
	padding: 18px;
	border-radius: var(--yfc-radius-md);
	background: var(--yfc-bg);
	color: var(--yfc-text);
	text-align: center;
}
.yfc-pg .yfc-psch-month__note {
	margin: 12px 0 0;
	font-size: 13px;
	color: var(--yfc-text);
}
.yfc-pg .yfc-psch__legend {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 12px;
	margin: 18px 0 0;
	font-size: 13px;
	color: var(--yfc-text);
}
.yfc-pg .yfc-psch-legend {
	padding: 2px 10px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
}
.yfc-pg .yfc-psch-legend.is-open {
	background: var(--yfc-green-tint);
	color: var(--yfc-green-dark);
}
.yfc-pg .yfc-psch-legend.is-closed {
	background: var(--yfc-white);
	border: 1px solid var(--yfc-gray-300);
}
.yfc-pg .yfc-psch-legend.is-past {
	background: var(--yfc-gray-100);
}

/* 遊び方（ステップ）・持ち物 / 用具（チェックリスト） */
.yfc-pg .yfc-op-steps {
	display: grid;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.yfc-pg .yfc-op-step {
	display: flex;
	align-items: baseline;
	gap: 14px;
	padding: 14px 18px;
	background: var(--yfc-white);
	border: 1px solid var(--yfc-border);
	border-radius: var(--yfc-radius-md);
	line-height: 1.7;
}
.yfc-pg .yfc-op-step__num {
	flex: 0 0 auto;
	font-family: var(--yfc-font-en);
	font-weight: 800;
	font-size: 18px;
	color: var(--yfc-green);
}
.yfc-pg .yfc-op-checks {
	padding: 0;
	list-style: none;
}
.yfc-pg .yfc-op-checks li {
	position: relative;
	padding: 8px 0 8px 28px;
	border-bottom: 1px solid var(--yfc-border);
	line-height: 1.7;
}
.yfc-pg .yfc-op-checks li::before {
	content: "";
	position: absolute;
	left: 6px;
	top: 14px;
	width: 6px;
	height: 11px;
	border-right: 2px solid var(--yfc-green);
	border-bottom: 2px solid var(--yfc-green);
	transform: rotate(45deg);
}

@media (max-width: 767px) {
	.yfc-pg .yfc-psch__months {
		grid-template-columns: 1fr;
		gap: 14px;
	}
	.yfc-pg .yfc-psch-month {
		padding: 16px;
	}
	.yfc-pg .yfc-psch-days {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 8px;
	}
	.yfc-pg .yfc-psch-day__date {
		font-size: 24px;
	}
	.yfc-pg .yfc-psch-break__range {
		font-size: 17px;
	}
}

/* --------------------------------------------------------------------------
   2. 選抜エリートクラス：セレクション（濃い背景のELITE section内）
   -------------------------------------------------------------------------- */
.yfc-ss .yfc-elite-sel {
	display: grid;
	grid-template-columns: minmax(220px, 280px) 1fr;
	gap: 24px;
	align-items: center;
	margin: 32px 0 0;
	padding: 24px;
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: var(--yfc-radius-md);
	background: rgba(255, 255, 255, 0.05);
}
.yfc-ss .yfc-elite-sel__badge {
	padding: 18px 16px;
	border: 2px solid var(--yfc-ss-gold);
	border-radius: var(--yfc-radius-md);
	text-align: center;
}
.yfc-ss .yfc-elite-sel__badge p {
	margin: 0;
}
.yfc-ss .yfc-elite-sel__en {
	font-family: var(--yfc-font-en);
	font-weight: 800;
	font-size: 14px;
	letter-spacing: 0.14em;
	color: var(--yfc-ss-gold);
}
.yfc-ss .yfc-elite-sel__status {
	margin-top: 6px;
	font-size: 20px;
	font-weight: 800;
	line-height: 1.4;
	color: var(--yfc-white);
}
.yfc-ss .yfc-elite-sel__type {
	display: inline-block;
	margin-top: 10px;
	padding: 3px 12px;
	border-radius: 999px;
	background: var(--yfc-ss-gold);
	font-size: 13px;
	font-weight: 700;
	color: var(--yfc-green-deep);
}
.yfc-ss .yfc-elite-sel.is-closed .yfc-elite-sel__badge {
	border-color: rgba(255, 255, 255, 0.4);
}
.yfc-ss .yfc-elite-sel.is-closed .yfc-elite-sel__status {
	font-size: 16px;
}
.yfc-ss .yfc-elite-sel__text {
	margin: 0 0 8px;
	line-height: 1.9;
	color: rgba(255, 255, 255, 0.92);
}
.yfc-ss .yfc-elite-sel__method {
	margin: 12px 0 0;
	line-height: 1.8;
	color: var(--yfc-white);
}
.yfc-ss .yfc-elite-sel__method span {
	display: inline-block;
	margin-right: 10px;
	padding: 1px 10px;
	border: 1px solid var(--yfc-ss-gold);
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	color: var(--yfc-ss-gold);
}

/* 年間レッスン回数と振替日のしくみ */
.yfc-ss .yfc-elite-system {
	margin-top: 40px;
	margin-bottom: 48px;
}
.yfc-ss .yfc-elite-system__steps {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: yfc-elite-step;
}
.yfc-ss .yfc-elite-system__step {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 18px 20px;
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: var(--yfc-radius-md);
	background: rgba(255, 255, 255, 0.05);
	counter-increment: yfc-elite-step;
}
.yfc-ss .yfc-elite-system__step::before {
	content: counter(yfc-elite-step, decimal-leading-zero);
	font-family: var(--yfc-font-en);
	font-weight: 800;
	font-size: 13px;
	color: var(--yfc-ss-gold);
}
.yfc-ss .yfc-elite-system__key {
	font-size: 19px;
	font-weight: 800;
	color: var(--yfc-white);
}
.yfc-ss .yfc-elite-system__text {
	font-size: 14px;
	line-height: 1.8;
	color: rgba(255, 255, 255, 0.88);
}
.yfc-ss .yfc-elite-system__note {
	margin: 14px 0 0;
	font-size: 14px;
	line-height: 1.8;
	color: rgba(255, 255, 255, 0.88);
}

/* --------------------------------------------------------------------------
   3. 選抜エリートクラス 年間スケジュール（明るいsection）
   -------------------------------------------------------------------------- */
.yfc-ss .yfc-elite-annual {
	background: var(--yfc-white);
}
.yfc-ss .yfc-elite-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 18px;
	margin: 0 0 20px;
	padding: 12px 16px;
	list-style: none;
	border-radius: var(--yfc-radius-md);
	background: var(--yfc-bg);
	font-size: 14px;
	color: var(--yfc-text);
}
.yfc-ss .yfc-elite-legend__item span {
	margin-right: 6px;
	font-weight: 800;
}
.yfc-ss .yfc-elite-legend__item.is-normal span {
	color: var(--yfc-green);
}
.yfc-ss .yfc-elite-legend__item.is-makeup span {
	color: var(--yfc-sky-deep);
}
.yfc-ss .yfc-elite-legend__item.is-closed span {
	color: var(--yfc-muted);
}
.yfc-ss .yfc-elite-months {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 16px;
}
.yfc-ss .yfc-elite-month {
	padding: 16px 18px;
	border: 1px solid var(--yfc-border);
	border-radius: var(--yfc-radius-md);
	background: var(--yfc-white);
}
.yfc-main.yfc-ss .yfc-elite-month__title {
	margin: 0 0 10px;
	padding-bottom: 8px;
	border-bottom: 2px solid var(--yfc-green);
	font-size: 17px;
	font-weight: 800;
	color: var(--yfc-green-deep);
}
.yfc-ss .yfc-elite-month__list {
	margin: 0;
	padding: 0;
	list-style: none;
}
.yfc-ss .yfc-elite-day {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 10px;
	padding: 8px 6px;
	border-bottom: 1px solid var(--yfc-border);
	font-size: 14px;
}
.yfc-ss .yfc-elite-day:last-child {
	border-bottom: 0;
}
.yfc-ss .yfc-elite-day__mark {
	width: 1.2em;
	font-weight: 800;
	text-align: center;
}
.yfc-ss .yfc-elite-day__date {
	min-width: 4.2em;
	font-weight: 700;
	color: var(--yfc-text);
}
.yfc-ss .yfc-elite-day__date small {
	font-size: 12px;
	font-weight: 400;
}
.yfc-ss .yfc-elite-day__class {
	padding: 0 8px;
	border-radius: 999px;
	background: var(--yfc-gray-100);
	font-size: 12px;
	font-weight: 700;
	color: var(--yfc-text);
}
.yfc-ss .yfc-elite-day__type {
	margin-left: auto;
	font-size: 12px;
	font-weight: 700;
}
.yfc-ss .yfc-elite-day__note {
	flex-basis: 100%;
	padding-left: calc(1.2em + 10px);
	font-size: 12px;
	color: var(--yfc-text);
}
.yfc-ss .yfc-elite-day.is-normal .yfc-elite-day__mark,
.yfc-ss .yfc-elite-day.is-normal .yfc-elite-day__type {
	color: var(--yfc-green);
}
/* 振替日：通常日と同等の確定日に見えないよう、点線の枠と空色の淡い背景で「予備」と分かる表現にする */
.yfc-ss .yfc-elite-day.is-makeup {
	margin: 4px 0;
	border: 1px dashed var(--yfc-sky);
	border-radius: var(--yfc-radius-sm);
	background: var(--yfc-sky-light);
}
.yfc-ss .yfc-elite-day.is-makeup .yfc-elite-day__mark,
.yfc-ss .yfc-elite-day.is-makeup .yfc-elite-day__type {
	color: var(--yfc-sky-deep);
}
.yfc-ss .yfc-elite-day.is-closed .yfc-elite-day__mark,
.yfc-ss .yfc-elite-day.is-closed .yfc-elite-day__type,
.yfc-ss .yfc-elite-day.is-closed .yfc-elite-day__date {
	color: var(--yfc-muted);
}
.yfc-ss .yfc-elite-day.is-closed .yfc-elite-day__date {
	text-decoration: line-through;
}
.yfc-ss .yfc-elite-annual__empty {
	margin: 0;
	padding: 24px;
	border-radius: var(--yfc-radius-md);
	background: var(--yfc-bg);
	text-align: center;
	color: var(--yfc-text);
}
.yfc-ss .yfc-elite-annual__note {
	margin: 16px 0 0;
	font-size: 13px;
	color: var(--yfc-text);
}

@media (max-width: 1023px) {
	.yfc-ss .yfc-elite-sel {
		grid-template-columns: 1fr;
	}
	.yfc-ss .yfc-elite-system__steps {
		grid-template-columns: 1fr;
	}
}
@media (max-width: 767px) {
	.yfc-ss .yfc-elite-sel {
		padding: 18px;
	}
	.yfc-ss .yfc-elite-months {
		grid-template-columns: 1fr;
	}
}

/* --------------------------------------------------------------------------
   4. ヨガ / グラウンドゴルフ 専用ページ Visual Polish（.yfc-op 配下のみ。other-program-page.php 専用）
   - 本文は 1120px の container + 見出し左 / 本文右の2column（≤1023px で1column）
   - カード群は auto-fit grid（件数・項目名に依存しない。固定高さなし）
   - アクセント：ヨガ = SKY / グラウンドゴルフ = GREEN（既存token のみ使用）
   -------------------------------------------------------------------------- */
.yfc-main.yfc-op {
	--yfc-op-accent: var(--yfc-sky);
	--yfc-op-accent-text: var(--yfc-sky-deep);
	--yfc-op-accent-soft: var(--yfc-sky-light);
	--yfc-op-radius: 14px;
	--yfc-op-shadow: 0 10px 28px rgba(14, 39, 33, 0.08);
}
.yfc-main.yfc-op--ground-golf {
	--yfc-op-accent: var(--yfc-green);
	--yfc-op-accent-text: var(--yfc-green);
	--yfc-op-accent-soft: var(--yfc-green-tint);
}

/* レイアウト */
.yfc-main.yfc-op .yfc-op-wrap {
	max-width: 1120px;
}
.yfc-op .yfc-op-head {
	margin-bottom: 32px;
}
.yfc-op .yfc-op-split {
	display: grid;
	grid-template-columns: minmax(0, 300px) minmax(0, 1fr);
	gap: 24px 64px;
	align-items: start;
}
.yfc-op .yfc-op-split > .yfc-op-head {
	margin-bottom: 0;
}
.yfc-op .yfc-op-split > :last-child {
	min-width: 0;
}
.yfc-op .yfc-pg-eyebrow {
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--yfc-op-accent-text);
}
.yfc-op .yfc-pg-eyebrow::before {
	content: "";
	flex-shrink: 0;
	width: 24px;
	height: 3px;
	border-radius: 2px;
	background: var(--yfc-op-accent);
}
/* 開催日程の直後に同じ淡色sectionが続く場合は白に戻して区切る */
.yfc-op .yfc-psch + .yfc-pg-section--tint {
	background: var(--yfc-white);
}

/* ABOUT */
.yfc-op .yfc-op-body {
	max-width: 720px;
}
.yfc-op .yfc-op-body > .yfc-pg-lead:first-child {
	margin-top: 0;
}
.yfc-op .yfc-op-body .yfc-pg-lead {
	line-height: 2;
}

/* 講師紹介（写真なしで成立するプロフィールカード） */
.yfc-main.yfc-op .yfc-op-profile {
	margin: 0;
	padding: 28px 32px;
	border: 1px solid var(--yfc-border);
	border-top: 4px solid var(--yfc-op-accent);
	border-radius: var(--yfc-op-radius);
	background: var(--yfc-white);
}
.yfc-main.yfc-op .yfc-op-profile .yfc-pg-note__title {
	font-family: var(--yfc-font-en);
	font-size: 32px;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: 0.04em;
	overflow-wrap: anywhere;
}
.yfc-op .yfc-op-profile__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 18px;
	padding-top: 18px;
	border-top: 1px solid var(--yfc-border);
}
.yfc-op .yfc-op-profile__tags:empty {
	display: none;
}
.yfc-main.yfc-op .yfc-op-profile__tags p {
	max-width: 100%;
	padding: 6px 12px;
	border-radius: var(--yfc-radius-sm);
	background: var(--yfc-op-accent-soft);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.6;
	color: var(--yfc-op-accent-text);
	overflow-wrap: anywhere;
}

/* 遊び方（Step card。件数に依存しない auto-fit） */
.yfc-main.yfc-op .yfc-op-steps {
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 16px;
}
.yfc-main.yfc-op .yfc-op-step {
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
	padding: 24px;
	border-top: 3px solid var(--yfc-op-accent);
	border-radius: var(--yfc-op-radius);
}
.yfc-main.yfc-op .yfc-op-step__num {
	font-size: 36px;
	line-height: 1;
	color: var(--yfc-op-accent-text);
}
.yfc-op .yfc-op-step__text {
	font-weight: 700;
	line-height: 1.8;
	color: var(--yfc-text);
	overflow-wrap: anywhere;
}

/* 料金・レッスン情報（項目カード。CMSの項目名に依存しない） */
.yfc-main.yfc-op .yfc-op-spec {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
	border: 0;
	border-radius: 0;
	overflow: visible;
}
.yfc-main.yfc-op .yfc-op-spec .yfc-pg-price__row,
.yfc-main.yfc-op .yfc-op-spec .yfc-pg-price__row:last-child {
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-start;
	gap: 6px;
	min-width: 0;
	padding: 20px 22px;
	border: 1px solid var(--yfc-border);
	border-left: 4px solid var(--yfc-op-accent);
	border-radius: var(--yfc-op-radius);
	background: var(--yfc-white);
}
.yfc-main.yfc-op .yfc-op-spec dt {
	font-size: 13px;
	letter-spacing: 0.04em;
	color: var(--yfc-muted);
	overflow-wrap: anywhere;
}
.yfc-main.yfc-op .yfc-op-spec dd {
	font-size: 20px;
	line-height: 1.5;
	color: var(--yfc-green-deep);
	text-align: left;
	overflow-wrap: anywhere;
}

/* レンタル・用具 / 持ち物（compact feature card） */
.yfc-main.yfc-op .yfc-op-features {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 12px;
	margin: 0;
}
.yfc-main.yfc-op .yfc-op-features li {
	min-width: 0;
	padding: 18px 20px 18px 52px;
	border: 1px solid var(--yfc-border);
	border-radius: var(--yfc-op-radius);
	background: var(--yfc-op-accent-soft);
	font-weight: 700;
	color: var(--yfc-green-deep);
	overflow-wrap: anywhere;
}
.yfc-main.yfc-op .yfc-op-features li::before {
	left: 24px;
	top: 22px;
	border-color: var(--yfc-op-accent-text);
}

/* 予約・お問い合わせ（白パネル：左に案内文 / 右にボタン・電話） */
.yfc-op .yfc-op-cta {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 24px 48px;
	align-items: center;
	padding: 40px 48px;
	border: 1px solid var(--yfc-sky-soft);
	border-radius: 20px;
	background: var(--yfc-white);
	box-shadow: var(--yfc-op-shadow);
	text-align: left;
}
.yfc-op .yfc-op-cta:has(.yfc-op-cta__actions > *) {
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
}
.yfc-op .yfc-op-cta__actions:not(:has(> *)) {
	display: none;
}
.yfc-op .yfc-op-cta__text .yfc-pg-lead {
	margin-top: 4px;
}
.yfc-op .yfc-op-cta__text .yfc-pg-title + .yfc-pg-lead {
	margin-top: 16px;
}
.yfc-op .yfc-op-cta__actions {
	display: grid;
	gap: 14px;
	min-width: 0;
}
.yfc-main.yfc-op .yfc-op-cta__actions .yfc-pg-actions {
	margin: 0;
}
.yfc-main.yfc-op .yfc-op-cta__actions .yfc-btn {
	width: 100%;
	justify-content: center;
}
.yfc-main.yfc-op .yfc-op-tel {
	display: grid;
	gap: 2px;
	margin: 0;
	padding: 18px 22px;
	border-radius: var(--yfc-op-radius);
	background: var(--yfc-bg);
	border: 1px solid var(--yfc-border);
}
.yfc-op .yfc-op-tel__label {
	font-weight: 700;
	color: var(--yfc-green-deep);
}
.yfc-main.yfc-op .yfc-op-tel .yfc-op-tel__num {
	font-family: var(--yfc-font-en);
	font-size: 32px;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: 0.02em;
	color: var(--yfc-green-deep);
	text-decoration: none;
}
.yfc-main.yfc-op .yfc-op-tel .yfc-op-tel__num:hover {
	text-decoration: underline;
}
.yfc-op .yfc-op-tel__hours {
	overflow-wrap: anywhere;
}

/* 月曜日・金曜日の団体利用について（NOTICE：警告色は使わず、通常本文と区別する情報BOX） */
.yfc-main.yfc-op .yfc-op-notice {
	display: grid;
	gap: 10px;
	margin: 0;
	padding: 24px 28px;
	border: 1px solid var(--yfc-sky-soft);
	border-left: 4px solid var(--yfc-sky-deep);
	border-radius: var(--yfc-op-radius);
	background: var(--yfc-sky-light);
}
.yfc-main.yfc-op .yfc-op-notice p {
	line-height: 1.9;
	color: var(--yfc-text);
	overflow-wrap: anywhere;
}

/* 団体利用をご希望の方へ（NOTICEとは別の、前向きな相談案内カード） */
.yfc-op .yfc-op-charter {
	padding: 28px 32px;
	border: 1px solid var(--yfc-border);
	border-top: 4px solid var(--yfc-green);
	border-radius: var(--yfc-op-radius);
	background: var(--yfc-white);
	box-shadow: var(--yfc-op-shadow);
}
.yfc-op .yfc-op-charter > .yfc-pg-lead:first-child {
	margin-top: 0;
}
.yfc-op .yfc-op-charter .yfc-pg-lead {
	margin-top: 6px;
	overflow-wrap: anywhere;
}

/* 会場・アクセス */
.yfc-op .yfc-op-access {
	padding: 8px 28px 24px;
	border: 1px solid var(--yfc-border);
	border-radius: var(--yfc-op-radius);
	background: var(--yfc-white);
}
.yfc-main.yfc-op .yfc-op-access .yfc-pg-info__list {
	border-top: 0;
}
.yfc-main.yfc-op .yfc-op-access .yfc-pg-info__list > div {
	grid-template-columns: 120px minmax(0, 1fr);
}
.yfc-main.yfc-op .yfc-op-access .yfc-pg-info__list dd {
	min-width: 0;
	overflow-wrap: anywhere;
}
.yfc-main.yfc-op .yfc-op-access__map {
	margin: 20px 0 0;
}
.yfc-main.yfc-op .yfc-op-access__map a {
	display: inline-flex;
	align-items: center;
	padding: 8px 18px;
	border: 1px solid var(--yfc-op-accent-text);
	border-radius: 999px;
	font-size: 14px;
	font-weight: 700;
	color: var(--yfc-op-accent-text);
	text-decoration: none;
}
.yfc-main.yfc-op .yfc-op-access__map a:hover {
	background: var(--yfc-op-accent-soft);
}

/* グラウンドゴルフ Hero：写真未設定時の fallback にだけ、ホールポスト（同心円）の淡い装飾を足す（写真設定時は fallback 自体が出力されない） */
.yfc-op--ground-golf .yfc-page-hero .yfc-page-hero__fallback::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 84% 72%, rgba(255, 255, 255, 0.1) 0 10px, transparent 11px),
		radial-gradient(circle at 84% 72%, transparent 0 58px, rgba(255, 255, 255, 0.08) 59px 61px, transparent 62px 128px, rgba(255, 255, 255, 0.06) 129px 131px, transparent 132px 210px, rgba(255, 255, 255, 0.04) 211px 213px, transparent 214px);
	pointer-events: none;
}

@media (max-width: 1023px) {
	.yfc-op .yfc-op-split {
		grid-template-columns: minmax(0, 1fr);
	}
	.yfc-main.yfc-op .yfc-op-spec {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.yfc-op .yfc-op-cta,
	.yfc-op .yfc-op-cta:has(.yfc-op-cta__actions > *) {
		grid-template-columns: minmax(0, 1fr);
		padding: 32px;
	}
}
@media (max-width: 767px) {
	.yfc-op .yfc-op-head {
		margin-bottom: 24px;
	}
	.yfc-main.yfc-op .yfc-op-steps {
		grid-template-columns: minmax(0, 1fr);
		gap: 12px;
	}
	.yfc-main.yfc-op .yfc-op-step {
		padding: 20px;
	}
	.yfc-main.yfc-op .yfc-op-step__num {
		font-size: 30px;
	}
	.yfc-main.yfc-op .yfc-op-spec {
		grid-template-columns: minmax(0, 1fr);
		gap: 10px;
	}
	.yfc-main.yfc-op .yfc-op-spec .yfc-pg-price__row,
	.yfc-main.yfc-op .yfc-op-spec .yfc-pg-price__row:last-child {
		padding: 16px 18px;
	}
	.yfc-main.yfc-op .yfc-op-spec dd {
		font-size: 18px;
	}
	.yfc-main.yfc-op .yfc-op-profile,
	.yfc-op .yfc-op-charter {
		padding: 22px 20px;
	}
	.yfc-main.yfc-op .yfc-op-profile .yfc-pg-note__title {
		font-size: 28px;
	}
	.yfc-main.yfc-op .yfc-op-features {
		grid-template-columns: minmax(0, 1fr);
	}
	.yfc-op .yfc-op-cta,
	.yfc-op .yfc-op-cta:has(.yfc-op-cta__actions > *) {
		padding: 24px 20px;
		border-radius: var(--yfc-op-radius);
	}
	.yfc-main.yfc-op .yfc-op-tel {
		padding: 16px 18px;
	}
	.yfc-main.yfc-op .yfc-op-tel .yfc-op-tel__num {
		font-size: 28px;
	}
	.yfc-main.yfc-op .yfc-op-notice {
		padding: 20px;
	}
	.yfc-op .yfc-op-access {
		padding: 4px 20px 20px;
	}
	.yfc-main.yfc-op .yfc-op-access .yfc-pg-info__list > div {
		grid-template-columns: minmax(0, 1fr);
	}
}
