/* ==========================================================================
   トップページ（スライダー・お知らせ・紹介枠・帯・埋め込み）
   ========================================================================== */

/* スライダー */
.top-slider { position: relative; overflow: hidden; border-bottom: 1px solid #e5e5e5; background: #f5f5f5; }
.top-slider__track { position: relative; }
.top-slider__item { display: none; }
.top-slider__item.is-active { display: block; }
.top-slider__item img { display: block; width: 100%; height: auto; }
.top-slider.is-ready .top-slider__track { display: grid; }
.top-slider.is-ready .top-slider__item { display: block; grid-area: 1 / 1; opacity: 0; transition: opacity 0.6s ease; pointer-events: none; }
.top-slider.is-ready .top-slider__item.is-active { opacity: 1; pointer-events: auto; }
.top-slider__arrow {
	position: absolute; top: 0; bottom: 0;
	width: 15%;
	color: #fff;
	font-size: 20px;
	background: linear-gradient(to right, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0));
	border: 0; cursor: pointer;
	opacity: 0.5;
	transition: opacity 0.2s;
}
.top-slider__arrow:hover { opacity: 0.9; }
.top-slider__arrow--prev { left: 0; }
.top-slider__arrow--next { right: 0; background: linear-gradient(to left, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0)); }
.top-slider__arrow .og-icon { filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.6)); }
.top-slider__dots {
	position: absolute; bottom: 20px; left: 50%;
	display: flex; gap: 2px;
	margin: 0; padding: 0;
	list-style: none;
	transform: translateX(-50%);
}
.top-slider__dot {
	display: block;
	width: 10px; height: 10px;
	margin: 1px; padding: 0;
	background: transparent;
	border: 1px solid #fff;
	border-radius: 10px;
	cursor: pointer;
}
.top-slider__dot.is-active { width: 12px; height: 12px; margin: 0; background: #fff; }

/* トップの本文列 */
.main-section--front { flex: 0 0 100%; max-width: 100%; }
.front-block { padding: 40px 40px 20px; background: #fff; }
.front-block__title {
	position: relative;
	margin: 0 0 25px;
	padding: 12px 15px 10px;
	font-size: 18px;
	line-height: 1.7;
	text-align: center;
	border-top: 3px solid var(--og-key);
	border-bottom: 1px solid #ddd;
}
.front-block__title::before, .front-block__title::after {
	content: ""; position: absolute; left: 50%; display: block; width: 0; height: 0; border-style: solid; border-color: transparent;
}
.front-block__title::after { bottom: -28px; margin-left: -14px; border-width: 14px; border-top-color: #ddd; }
.front-block__title::before { bottom: -24px; margin-left: -12px; border-width: 12px; border-top-color: #fff; z-index: 1; }

/* お知らせ */
.front-news__list { margin: 0; padding: 0; list-style: none; font-size: 14px; }
.front-news__list li { margin: 0; }
.front-news__list li a {
	display: block;
	padding: 10px 7px 8px;
	color: var(--og-link);
	text-decoration: underline;
	border-bottom: 1px dashed #ddd;
	box-shadow: 0 1px 0 rgba(255, 255, 255, 0.9);
}
.front-news__list li a:hover { text-decoration: underline; }

/* 写真3枚の紹介枠 */
.front-pr__row { display: flex; flex-wrap: wrap; margin: 0 -15px; }
.front-pr__item { flex: 0 0 33.3333%; max-width: 33.3333%; padding: 0 15px; text-align: center; }
.front-pr__title { position: relative; margin: 0; padding: 0 0 8px; font-size: 18px; line-height: 1.7; }
.front-pr__image { margin: 10px 0; border: 1px solid var(--og-border); }
.front-pr__image a { display: block; }
.front-pr__image img { display: block; width: 100%; height: auto; border: 1px solid #fff; }
.front-pr__text { margin: 0 0 1.2em; font-size: 16px; line-height: 1.8; text-align: left; }
.front-pr__link { margin: 0 0 1.2em; text-align: left; }
.og-btn--outline {
	padding: 5px 20px;
	font-size: 14px;
	line-height: 1.5;
	color: var(--og-link);
	background: #fff;
	border: 1px solid var(--og-key);
	border-radius: 3px;
}
.og-btn--outline .og-icon { margin: 0 0 0 0.4em; transition: transform 0.3s; }
.og-btn--outline:hover { color: #fff; background: var(--og-key); text-decoration: none; }
.og-btn--outline:hover .og-icon { transform: translateX(3px); }

/* 帯見出し */
.front-band {
	margin: 0 -40px;
	padding: 48px 80px;
	color: #fff;
	text-align: center;
	background: var(--og-key-dark);
}
.front-band__title { margin: 0 0 0.3em; font-size: 32px; line-height: 1.4; color: #fff; }
.front-band__caption { margin: 0; font-size: 16px; line-height: 1.4; color: #fff; }
.front-band__title strong, .front-band__caption strong { font-weight: 700; }

/* 固定ページの埋め込み */
.front-page-content .entry-body { padding: 32px 0 40px; }
.front-page-content:last-child { margin-bottom: 0; }

@media (max-width: 991px) {
	.front-pr__item { flex: 0 0 100%; max-width: 100%; margin-bottom: 30px; }
	.front-band { padding: 32px 30px; }
	.front-band__title { font-size: 24px; }
}
@media (max-width: 767px) {
	.front-block { padding: 24px 15px 10px; }
	.front-band { margin: 0 -15px; padding: 24px 15px; }
	.top-slider__arrow { display: none; }
	.top-slider__dots { bottom: 8px; }
}

/* ==========================================================================
   記事カード一覧（LP テンプレート）
   ========================================================================== */
.main-section--wide { flex: 0 0 100%; max-width: 100%; }
.card-list__grid { display: flex; flex-wrap: wrap; margin: 0 -15px; }
.card { flex: 0 0 33.3333%; max-width: 33.3333%; padding: 0 15px; margin-bottom: 25px; }
.card__link { position: relative; display: block; height: 250px; overflow: hidden; color: #fff; text-decoration: none; background: #eee; }
.card__image { position: absolute; inset: 0; background: #ddd center / cover no-repeat; transition: transform 0.3s; }
.card__link:hover .card__image { transform: scale(1.03); }
.card__noimage { position: absolute; top: 40%; left: 0; right: 0; text-align: center; font-size: 14px; color: #888; }
.card__new { position: absolute; top: 0; left: 0; padding: 2px 10px; font-size: 11px; font-weight: 700; color: #fff; background: #e53935; }
.card__body { position: absolute; right: 0; bottom: 0; left: 0; padding: 10px 10px 10px 13px; color: #fff; background: rgba(0, 0, 0, 0.8); }
.card__body, .card__meta, .card__date, .card__title { color: #fff; }
.card__meta { display: flex; justify-content: space-between; align-items: center; margin-bottom: 4px; font-size: 12px; line-height: 1.4; }
.card__date { margin-right: 8px; }
.card__term { display: inline-block; padding: 0 8px; font-size: 10px; line-height: 1.6; background: var(--og-key-dark); border-radius: 2px; }
.card__title { margin: 0; font-size: 12px; font-weight: 400; line-height: 1.3; color: #fff; }
@media (max-width: 991px) { .card { flex: 0 0 50%; max-width: 50%; } }
@media (max-width: 575px) { .card { flex: 0 0 100%; max-width: 100%; } }

/* スタッフ紹介（本文のブロック：丸い写真＋名前＋肩書き） */
.staff-grid .wp-block-column { text-align: center; }
.staff-grid .wp-block-image.is-style-rounded img { width: 120px; height: 120px; object-fit: cover; border-radius: 50%; }
.staff-grid h3 { margin: 16px 0 12px; padding: 0; font-size: 18px; line-height: 1.4; text-align: center; border: 0; }
.staff-grid .staff-role { margin: 0 0 7px; font-size: 14px; line-height: 1.6; text-align: center; }
.staff-grid .staff-text { font-size: 16px; line-height: 1.8; text-align: left; }
