/**
 * テーマ共通スタイル
 *
 * WordPress CSS Coding Standards準拠
 * テーマ全体で使用する共通スタイルを定義
 */


/* ==========================================================================
   1. ページ基本
   ========================================================================== */

main {
	overflow: hidden;
	position: relative;
	width: 100%;
	height: auto;
	background-color: var(--color-alternate);
	padding-top: 96px;
}


/* ==========================================================================
   2. サイトヘッダー
   ========================================================================== */

.site-header {
	overflow: hidden;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 100;
  width: 100%;
	padding: 16px 8px;
	box-sizing: border-box;
	background-color: transparent;
}

.site-header__inner {
	background-color: var(--color-primary);
	background-color: rgba(0, 86, 159, 0.931);
	backdrop-filter: blur(11px);
	-webkit-backdrop-filter: blur(11px);
	border-radius: 24px;
	height: 64px;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.16);
}

.site-header__nav {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	position: relative;
}

.site-header__nav-items {
	display: flex;
	align-items: center;
	gap: 48px;
}

.site-header__logo {
	overflow: hidden;
	position: absolute;
  left: 24px;
	top: calc(50% - 20px);
	width: auto;
	height: 40px;
	opacity: 0.5;
	transition: all 0.3s cubic-bezier(.77, 0, .18, 1);
}

.site-header__logo:hover {
	opacity: 1;
}

.site-header__nav-item {
	position: relative;
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--color-alternate);
	font-family: Meiryo, "Noto Sans JP", sans-serif;
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: -0.3125px;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	opacity: 0.5;
	height: 64px;
	padding-bottom: 4px;
	transition: all 0.3s cubic-bezier(.77, 0, .18, 1);
}

.site-header__nav-item:hover {
	opacity: 1;
}

/* トップ以外：アクティブ以外を薄く表示 */
.site-header--subpage .site-header__nav-item {
	opacity: 0.5;
}

.site-header--subpage .site-header__nav-item--active {
	opacity: 1;
}

.site-header--subpage .site-header__nav-item:hover {
	opacity: 1;
}

.site-header__nav-item--active:after,
.site-header__nav-item:hover:after {
	content: '';
	position: absolute;
	bottom: 8px;
	left: 0;
	width: 100%;
	height: 1px;
	background-color: #fff;
}

.site-header__nav-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.site-header__nav-icon img {
	display: block;
}

.site-header__nav-label {
	display: block;
	color: var(--color-alternate);
}

.site-header__search {
	position: absolute;
	right: 20px;
	top: 50%;
	transform: translateY(-50%);
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background-color: transparent;
	border: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	opacity: 0.5;
	transition: all 0.3s cubic-bezier(.77, 0, .18, 1);
}

.site-header__search:hover {
	opacity: 1;
}

/* ==========================================================================
   3. ヒーローセクション
   ========================================================================== */

.fp-hero {
	overflow: hidden;
	position: relative;
	width: 100%;
	height: auto;
	padding: 32px 8px;
	background-color: var(--color-alternate);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 22px;
	max-width: 1280px;
	margin: 0 auto;
}

.fp-hero__container {
	overflow: hidden;
	position: relative;
	width: 100%;
	height: auto;
	flex-shrink: 0;
}

/* ヒーローカード */
.fp-hero-card {
	overflow: hidden;
	position: relative;
	width: 100%;
	display: flex;
	height: 398px;
	background-color: var(--color-white);
	border-radius: 24px;
	box-shadow: 4px 4px 4px 0 rgba(202, 196, 208, 0.16);
}

.fp-hero-card__inner {
	position: relative;
	display: grid;
	grid-template-columns: 1fr 1fr;
	width: 100%;
	height: 100%;
	color: inherit;
}

/* 記事全体のクリック領域（タグの <a> と入れ子にしないためオーバーレイ） */
.fp-hero-card__cover-link {
	position: absolute;
	inset: 0;
	z-index: 1;
}

/* ヒーローカード：画像カラム */
.fp-hero-card__image-col {
	position: relative;
	z-index: 0;
	grid-column: 1;
	grid-row: 1;
	width: 100%;
	overflow: hidden;
	border-radius: 24px 0 0 24px;
}

.fp-hero-card__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* ヒーローカード：テキストカラム */
.fp-hero-card__body {
	grid-column: 2;
	grid-row: 1;
	position: relative;
	z-index: 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	gap: 24px;
	padding: 20px 20px 24px;
	min-width: 0;
	min-height: 0;
}

.fp-hero-card__inner--has-tags .fp-hero-card__body {
	padding-bottom: 56px;
}

.fp-hero-card__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 24px;
}

.fp-hero-card__date {
	font-family: Meiryo, "Noto Sans JP", sans-serif;
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 24px;
	letter-spacing: -0.3125px;
	color: var(--color-font);
	white-space: nowrap;
}

.fp-hero-card__likes {
	display: flex;
	align-items: center;
	gap: 8px;
}

.fp-hero-card__likes span {
	font-family: Meiryo, "Inter", sans-serif;
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 24px;
	letter-spacing: -0.3125px;
	color: #171733;
}

.fp-hero-card__content {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.fp-hero-card__title {
	font-family: Meiryo, "M PLUS Rounded 1c", sans-serif;
	font-size: 3.2rem;
	font-weight: 400;
	line-height: 1.4;
	letter-spacing: -0.3125px;
	color: var(--color-primary);
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	-webkit-box-orient: vertical;
}

.fp-hero-card__excerpt {
	font-family: Meiryo, "Noto Sans JP", sans-serif;
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 24px;
	letter-spacing: -0.3125px;
	color: var(--color-font);
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	-webkit-box-orient: vertical;
	margin: 0;
}

.fp-hero-card__tags {
	grid-column: 2;
	grid-row: 1;
	align-self: end;
	position: relative;
	z-index: 2;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	padding: 0 20px 24px;
	box-sizing: border-box;
}

.fp-hero-card__tags .fp-tag {
	opacity: 1;
}

/* カルーセルドット */
.fp-hero__dots {
	display: flex;
	align-items: center;
	gap: 12px;
}

.fp-hero__dot {
	width: 15px;
	height: 15px;
	border-radius: 50%;
	background-color: var(--color-white);
	border: 1px solid var(--color-white);
	padding: 0;
	cursor: pointer;
	transition: all 0.3s cubic-bezier(.77, 0, .18, 1);
	flex-shrink: 0;
}

.fp-hero__dot--active {
	background-color: var(--color-primary);
	border-color: transparent;
}


/* ==========================================================================
   4. セクション見出しコンポーネント
   ========================================================================== */

.fp-section-heading {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 0 20px;
}

.fp-section-heading.no-padding {
	padding: 0;
}

.fp-section-heading__icon {
	flex-shrink: 0;
	width: 110px;
	height: 110px;
}

.fp-section-heading__icon img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.fp-section-heading__text {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 16px 8px 0 8px;
	overflow: hidden;
	position: relative;
	width: 100%;
	height: auto;
}

.fp-section-heading__title {
	font-family: Meiryo, "M PLUS Rounded 1c", sans-serif;
	font-size: 3.2rem;
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.3846px;
	color: var(--color-primary);
	white-space: nowrap;
	margin: 0;
}

.fp-section-heading__subtitle {
	font-family: Meiryo, "M PLUS Rounded 1c", sans-serif;
	font-size: 2.0rem;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: -0.3846px;
	color: var(--color-primary);
	margin: 0;
}


/* ==========================================================================
   5. タグコンポーネント
   ========================================================================== */

.fp-tag {
	display: inline-flex;
	align-items: center;
	gap: 0;
	padding: 3px 8px;
	height: anchor-size;
	border: 1px solid var(--color-primary);
	border-radius: 8px;
	text-decoration: none;
	opacity: 0.5;
	transition: all 0.3s cubic-bezier(.77, 0, .18, 1);
	line-height: 1.25;
	cursor: pointer;
	font-size: 1.1rem;
	font-weight: 500;
	font-family: Meiryo, "Noto Sans JP", sans-serif;
}

.fp-tag:hover {
	background-color: var(--color-primary);
	color: var(--color-white) !important;
	opacity: 1;
}

.fp-tag--active {
	background-color: var(--color-primary);
	color: var(--color-white) !important;
	opacity: 1;
}

.fp-tag:hover span,
.fp-tag:hover .fp-tag__hash,
.fp-tag--active .fp-tag__hash,
.fp-tag--active span {
	color: var(--color-white) !important;
}

.fp-tag__hash {
	font-family: Meiryo, "Inter", sans-serif;
	font-size: 1.6rem;
	font-weight: 800;
	color: var(--color-primary);
	line-height: 1;
	margin-right: 2px;
	transition: all 0.3s cubic-bezier(.77, 0, .18, 1);
}

.fp-tag--active .fp-tag__hash {
	color: var(--color-white);
}

/* タグテキスト部分 */
.fp-tag > b + * {
	display: inline;
}

.fp-tag:not(.fp-tag--active) {
	color: var(--color-primary);
	font-size: 1.1rem;
	font-weight: 500;
	font-family: Meiryo, "Noto Sans JP", sans-serif;
}

.fp-tag--active {
	color: var(--color-white);
	font-size: 1.1rem;
}

.fp-tag--sm {
	font-size: 1.1rem;
}


/* ==========================================================================
   6. タグフィルターコンポーネント
   ========================================================================== */

.fp-tag-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 8px;
	padding: 0 24px 30px;
	width: 100%;
	max-width: 960px;
	box-sizing: border-box;
}

.fp-tag-filter .fp-tag {
	background: transparent;
	appearance: none;
}

.fp-tag-filter .fp-tag:hover,
.fp-tag-filter .fp-tag.fp-tag--active {
	background-color: var(--color-primary);
	color: var(--color-white) !important;
	opacity: 1;
}

.fp-article-grid.is-loading {
	opacity: 0.55;
	pointer-events: none;
}

.p-single__related-grid.is-loading {
	opacity: 0.55;
	pointer-events: none;
}

.p-archive__tag-filter .fp-tag {
	background: transparent;
	appearance: none;
}

.p-archive__tag-filter .fp-tag:hover,
.p-archive__tag-filter .fp-tag.fp-tag--active {
	background-color: var(--color-primary);
	color: var(--color-white) !important;
	opacity: 1;
}

.p-archive__grid.is-loading,
.p-pagination.is-loading {
	opacity: 0.55;
	pointer-events: none;
}


/* ==========================================================================
   7. 記事カードコンポーネント
   ========================================================================== */

.fp-article-card {
	width: 298px;
	min-height: 416px;
	border-radius: 24px;
	overflow: hidden;
	background-color: var(--color-alternate);
	box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
	display: flex;
	flex-direction: column;
	flex-shrink: 0;
	transition: all 0.3s cubic-bezier(.77, 0, .18, 1);
}

.fp-article-card__link {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	color: inherit;
}

/* カード全体→記事（タグの <a> と入れ子にしない） */
.fp-article-card__cover-link {
	position: absolute;
	inset: 0;
	z-index: 1;
}

/* 記事カード：画像エリア */
.fp-article-card__image-wrap {
	position: relative;
	z-index: 0;
	height: 240px;
	overflow: hidden;
	border-radius: 24px 24px 0 0;
	flex-shrink: 0;
}

.fp-article-card__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* 記事カード：テキストエリア */
.fp-article-card__body {
	flex: 1;
	position: relative;
	z-index: 0;
	background-color: var(--color-white);
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 20px 20px 24px;
	transition: all 0.3s cubic-bezier(.77, 0, .18, 1);
}

.fp-article-card--has-tags .fp-article-card__body {
	padding-bottom: 8px;
}

/* hover時にブルー背景に変わる */
.fp-article-card:hover .fp-article-card__body,
.fp-article-card:hover .fp-article-card__tags {
	background-color: var(--color-primary);
}

.fp-article-card:hover .fp-article-card__body {
	box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);
}

.fp-article-card--has-tags:hover .fp-article-card__body {
	box-shadow: none;
}

.fp-article-card--has-tags:hover .fp-article-card__tags {
	box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);
}

.fp-article-card:hover .fp-article-card__date,
.fp-article-card:hover .fp-article-card__likes span {
	color: var(--color-white);
}

.fp-article-card:hover .fp-article-card__title {
	color: var(--color-white);
}

.fp-article-card .fp-tag {
	background-color: var(--color-white);
	opacity: 1;
}

.fp-article-card:hover .fp-tag {
	background-color: var(--color-white);
	opacity: 1;
}

.fp-article-card .fp-tag:hover {
	background-color: var(--color-primary);
	color: var(--color-white) !important;
	opacity: 1;
}

.fp-article-card__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 24px;
}

.fp-article-card__date {
	font-family: Meiryo, "Noto Sans JP", sans-serif;
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 24px;
	letter-spacing: -0.3125px;
	color: var(--color-font);
	white-space: nowrap;
}

.fp-article-card__likes {
	display: flex;
	align-items: center;
	gap: 8px;
}

.fp-article-card__likes span {
	font-family: Meiryo, "Inter", sans-serif;
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 24px;
	letter-spacing: -0.3125px;
	color: #171733;
}

.fp-article-card__title {
	font-family: Meiryo, "M PLUS Rounded 1c", sans-serif;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 22.4px;
	letter-spacing: -0.3125px;
	color: var(--color-primary);
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	-webkit-box-orient: vertical;
}

.fp-article-card__tags {
	position: relative;
	z-index: 2;
	flex-shrink: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	padding: 0 20px 24px;
	background-color: var(--color-white);
	transition: all 0.3s cubic-bezier(.77, 0, .18, 1);
}


/* ==========================================================================
   8. ハートアイコン
   ========================================================================== */

.fp-icon-heart {
	display: block;
	flex-shrink: 0;
}

.fp-icon-heart path {
	fill: var(--color-red);
}


/* ==========================================================================
   9. カテゴリーバッジ
   ========================================================================== */

.fp-category-badge {
	position: absolute;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background-color: var(--color-primary);
	color: var(--color-alternate);
	border-radius: 9999px;
	font-family: Meiryo, "Noto Sans JP", sans-serif;
	font-weight: 400;
	letter-spacing: -0.3125px;
	white-space: nowrap;
	text-decoration: none;
}

.fp-category-badge--lg {
	top: 22px;
	left: 26px;
	padding: 8px 16px;
	font-size: 1.6rem;
	line-height: 1;
	height: 43px;
}

.fp-category-badge--sm {
	top: 13px;
	left: 11px;
	padding: 8px 16px;
	font-size: 1.2rem;
	line-height: 1;
}


/* ==========================================================================
   10. 最新記事セクション
   ========================================================================== */

.fp-latest {
	background-color: var(--color-alternate);
	padding-bottom: 64px;
}

.fp-latest__inner {
	width: 100%;
	max-width: 960px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.fp-article-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	overflow: hidden;
	position: relative;
	width: 100%;
	height: auto;
	padding: 0 8px;
}

/* フロント「最新記事」・各CPTアーカイブ：全面カバーリンクより手前に本文を重ね、いいね（WP ULike）だけクリックを受け取る */
.fp-latest .fp-article-card__body,
.p-archive--news .fp-article-card__body,
.p-archive--group-news .fp-article-card__body,
.p-archive--message .fp-article-card__body {
	z-index: 2;
	pointer-events: none;
}

.fp-latest .fp-article-card__body .fp-article-card__meta,
.p-archive--news .fp-article-card__body .fp-article-card__meta,
.p-archive--group-news .fp-article-card__body .fp-article-card__meta,
.p-archive--message .fp-article-card__body .fp-article-card__meta {
	pointer-events: none;
}

.fp-latest .fp-article-card__body .fp-article-card__date,
.fp-latest .fp-article-card__body .fp-article-card__title,
.p-archive--news .fp-article-card__body .fp-article-card__date,
.p-archive--news .fp-article-card__body .fp-article-card__title,
.p-archive--group-news .fp-article-card__body .fp-article-card__date,
.p-archive--group-news .fp-article-card__body .fp-article-card__title,
.p-archive--message .fp-article-card__body .fp-article-card__date,
.p-archive--message .fp-article-card__body .fp-article-card__title {
	pointer-events: none;
}

.fp-latest .fp-article-card__body .fp-article-card__likes,
.fp-latest .fp-article-card__body .fp-article-card__likes *,
.p-archive--news .fp-article-card__body .fp-article-card__likes,
.p-archive--news .fp-article-card__body .fp-article-card__likes *,
.p-archive--group-news .fp-article-card__body .fp-article-card__likes,
.p-archive--group-news .fp-article-card__body .fp-article-card__likes *,
.p-archive--message .fp-article-card__body .fp-article-card__likes,
.p-archive--message .fp-article-card__body .fp-article-card__likes * {
	pointer-events: auto;
}

/* トップ（body.home）・グループ会社通信アーカイブのヒーロー：カバーリンクより手前でいいね（WP ULike）のみクリック可能 */
.home .fp-hero-card__body,
.post-type-archive-group-news .fp-hero-card__body {
	z-index: 2;
	pointer-events: none;
}

.home .fp-hero-card__body .fp-hero-card__meta,
.post-type-archive-group-news .fp-hero-card__body .fp-hero-card__meta {
	pointer-events: none;
}

.home .fp-hero-card__body .fp-hero-card__date,
.home .fp-hero-card__body .fp-hero-card__title,
.home .fp-hero-card__body .fp-hero-card__excerpt,
.post-type-archive-group-news .fp-hero-card__body .fp-hero-card__date,
.post-type-archive-group-news .fp-hero-card__body .fp-hero-card__title,
.post-type-archive-group-news .fp-hero-card__body .fp-hero-card__excerpt {
	pointer-events: none;
}

.home .fp-hero-card__body .fp-hero-card__likes,
.home .fp-hero-card__body .fp-hero-card__likes *,
.post-type-archive-group-news .fp-hero-card__body .fp-hero-card__likes,
.post-type-archive-group-news .fp-hero-card__body .fp-hero-card__likes * {
	pointer-events: auto;
}


/* ==========================================================================
   11. 過去の投稿セクション
   ========================================================================== */

.fp-past {
	background-color: var(--color-alternate);
	padding-bottom: 20px;
}

.fp-past__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 24px;
	padding-top: 63px;
}

.fp-past__inner .fp-section-heading {
	width: 100%;
	max-width: 960px;
}

.fp-past__grid {
	display: flex;
	flex-direction: column;
	gap: 10px;
	align-items: flex-start;
	padding-bottom: 64px;
	overflow: hidden;
	position: relative;
	width: 100%;
	max-width: 893px;
	padding: 0 8px;
}

.fp-past__row {
	display: flex;
	gap: 22px;
	overflow: hidden;
	position: relative;
	width: 100%;
	max-width: 844px;
	height: auto;
}

.fp-past__row--single {
	justify-content: flex-start;
}

/* グラデーションボタン（過去の投稿 / もっと見る共通） */
.fp-past-btn,
.fp-more-btn {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	max-width: 411px;
	height: 65px;
	padding: 16px 32px;
	background: linear-gradient(to right, #1161a6, #1aa4b9);
	border-radius: 128px;
	box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.16);
	color: var(--color-alternate);
	text-decoration: none;
	box-sizing: border-box;
	transition: all 0.3s cubic-bezier(.77, 0, .18, 1);
}

.fp-past-btn:hover,
.fp-more-btn:hover {
	opacity: 0.85;
}

.fp-past-btn.full-width,
.fp-more-btn.full-width {
	max-width: 100%;
}

.fp-past-btn__line,
.fp-more-btn__line {
	display: block;
	width: 16px;
	height: 1px;
	background-color: rgba(246, 247, 255, 0.4);
	flex-shrink: 0;
}

.fp-past-btn__text,
.fp-more-btn__text {
	font-family: Meiryo, "Noto Sans JP", sans-serif;
	font-size: 2.4rem;
	font-weight: 400;
	line-height: 1.33;
	letter-spacing: -0.6279px;
	color: var(--color-alternate);
	text-align: center;
	flex: 1;
	margin-top: -1px;
}

.fp-past-btn__arrow,
.fp-more-btn__arrow {
	font-size: 2.8rem;
	color: var(--color-alternate);
	flex-shrink: 0;
}

.fp-section__more {
	display: flex;
	justify-content: center;
	padding-top: 16px;
	padding-bottom: 32px;
}


/* ==========================================================================
   12. グループ会社通信セクション
   ========================================================================== */

.fp-group {
	overflow: hidden;
	position: relative;
	width: 100%;
	height: auto;
	background-color: var(--color-alternate);
	padding: 0 8px;
}

.fp-group__inner {
	width: 100%;
	max-width: 960px;
	margin: 0 auto;
	padding-top: 63px;
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.fp-group__grid {
	display: flex;
	gap: 24px;
	padding: 0;
	overflow: hidden;
	position: relative;
}

/* グループ会社通信カード（大） */
.fp-group-card {
	width: calc(50% - 11px);
	max-width: 468px;
	height: auto;
	border-radius: 24px;
	overflow: hidden;
	position: relative;
	flex-shrink: 0;
	background-color: #fff;
}

#ctf .ctf-header .ctf-header-follow {
	display: none;
}

.fp-group-card__link {
	display: block;
	width: 100%;
	height: 100%;
	text-decoration: none;
}

.fp-group-card__image-wrap {
	position: relative;
	width: 100%;
	height: 100%;
	overflow: hidden;
}

.fp-group-card__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.fp-group__empty {
	color: var(--color-font);
	font-size: 1.6rem;
}


/* ==========================================================================
   13. 広報発信セクション
   ========================================================================== */

.fp-press {
	background-color: var(--color-alternate);
}

.fp-press__inner {
	width: 100%;
	max-width: 960px;
	margin: 0 auto;
	padding-top: 63px;
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.fp-press__list {
	list-style: none;
	padding: 0;
	margin: 0;
	padding: 0 8px;
}

.fp-press__item {
	border-top: 1px solid rgba(17, 97, 166, 0.15);
}

.fp-press__item:last-child {
	border-bottom: 1px solid rgba(17, 97, 166, 0.15);
}

.fp-press__item-link {
	display: flex;
	align-items: center;
	gap: 32px;
	padding: 24px 0;
	text-decoration: none;
	color: inherit;
	min-height: 145px;
	box-sizing: border-box;
	transition: all 0.3s cubic-bezier(.77, 0, .18, 1);
}

.fp-press__item-link:hover {
	opacity: 0.75;
}

.fp-press__thumb {
	width: 160px;
	height: 97px;
	border-radius: 8px;
	overflow: hidden;
	flex-shrink: 0;
}

.fp-press__thumb-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.fp-press__meta {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 10px;
	min-width: 0;
}

.fp-press__date {
	font-family: Meiryo, "Noto Sans JP", sans-serif;
	font-size: 1.6rem;
	font-weight: 400;
	color: var(--color-font);
	letter-spacing: 0;
	display: block;
}

.fp-press__category {
	display: flex;
	align-items: center;
	gap: 16px;
}

.fp-press__category-badge {
	display: inline-flex;
	align-items: center;
	padding: 4px 8px;
	border: 1px solid var(--color-primary);
	border-radius: 4px;
	font-size: 1.2rem;
	font-weight: 400;
	color: var(--color-primary);
	white-space: nowrap;
}

.fp-press__category-sub {
	font-size: 1.4rem;
	font-weight: 400;
	color: var(--color-font);
}

.fp-press__title {
	font-family: Meiryo, "Noto Sans JP", sans-serif;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.5;
	color: #171733;
	margin: 0;
	overflow: hidden;
	text-overflow: ellipsis;
}

.fp-press__arrow {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
}

.fp-press__item--empty p {
	padding: 24px 0;
}


/* ==========================================================================
   14. グループ企業ロゴセクション
   ========================================================================== */

.fp-logos {
	background-color: var(--color-alternate);
	padding: 64px 0;
	overflow: hidden;
	position: relative;
	width: 100%;
	height: auto;
}

.fp-logos__inner {
	width: 100%;
	margin: 0 auto;
	overflow: hidden;
	position: relative;
	height: auto;
	padding: 0 8px;
}

.fp-logos__list {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 22px;
}

.fp-logos__item {
	flex-shrink: 0;
}

.fp-logos__item img {
	display: block;
	height: auto;
	transition: all 0.3s cubic-bezier(.77, 0, .18, 1);
}

.fp-logos__item img:hover {
	opacity: 0.82;
}


/* ==========================================================================
   15. SNSフローティングパネル
   ========================================================================== */

.fp-sns-float {
	/*
	position: absolute;
	right: 0;
	top: calc(100vh - 287.967px);
	*/
	position: fixed;
	right: 0;
	bottom: 0;
	width: 150px;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 24px 8px 16px;
	background-color: var(--color-white);
}

.fp-sns-float__text {
	font-family: Meiryo, "M PLUS Rounded 1c", sans-serif;
	font-size: 1.4rem;
	font-weight: 500;
	line-height: 1.57;
	color: var(--color-primary);
	text-align: center;
	margin: 0 0 24px;
}

.fp-sns-float__icons {
	display: flex;
	flex-direction: column;
	gap: 16px;
	align-items: center;
}

.fp-sns-float__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 82px;
	height: 82px;
	border-radius: 12px;
	overflow: hidden;
	text-decoration: none;
	background: linear-gradient(to right, #0D263C, #11454D);
	box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
	transition: all 0.3s cubic-bezier(.77, 0, .18, 1);
}

.fp-sns-float__icon:hover {
	opacity: 0.82;
}

.fp-sns-float__icon img {
	display: block;
}


/* ==========================================================================
   16. サイトフッター
   ========================================================================== */

footer {
	overflow: hidden;
	position: relative;
	width: 100%;
	height: auto;
	background-color: var(--color-white);
}

.site-footer__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 64px 0;
}

.site-footer__logo img {
	display: block;
	transition: all 0.3s cubic-bezier(.77, 0, .18, 1);
}

.site-footer__logo img:hover {
	opacity: 0.82;
}

.site-footer__copyright {
	font-family: Meiryo, "Noto Sans JP", sans-serif;
	font-size: 1.1rem;
	font-weight: 400;
	color: var(--color-copyright);
	text-align: center;
	margin: 0;
	line-height: 1;
	letter-spacing: 0.033em;
}


/* ==========================================================================
   17. アーカイブ / サブページ 共通
   ========================================================================== */

.archive main,
.page main {
	background-color: var(--color-alternate);
}

/* アーカイブラッパー */
.p-archive {
	background-color: var(--color-alternate);
	overflow: hidden;
	position: relative;
	width: 100%;
	height: auto;
}

.p-archive__inner {
	width: 100%;
	max-width: 960px;
	margin: 0 auto;
	padding-top: 63px;
	display: flex;
	flex-direction: column;
	gap: 32px;
}

/* グループ会社通信のみ：上余白を詰める */
.p-archive--group-news .p-archive__inner {
	padding-top: 0;
}

/* アーカイブ記事グリッド */
.p-archive__grid {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	overflow: hidden;
	position: relative;
	width: 100%;
	height: auto;
	padding: 0 8px;
}

/* アーカイブ：大カードグリッド（2列） */
.p-archive__grid--lg {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
}

.p-archive__grid--lg .fp-group-card {
	width: 468px;
}

/* アーカイブ：メッセージ一覧（1列） */
.p-archive__grid--message {
	display: flex;
	flex-direction: column;
	gap: 24px;
	width: 100%;
}

/* 記事ゼロ時メッセージ */
.p-archive__empty {
	font-family: Meiryo, "Noto Sans JP", sans-serif;
	font-size: 1.6rem;
	color: var(--color-font);
	text-align: center;
	padding: 64px 0;
}

/* ページネーション */
.p-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding-top: 16px;
}

.p-pagination a,
.p-pagination span {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 32px;
	border-radius: 16px;
	font-family: Meiryo, "Noto Sans JP", sans-serif;
	font-size: 1.4rem;
	font-weight: 500;
	text-decoration: none;
	transition: all 0.3s cubic-bezier(.77, 0, .18, 1);
}

.p-pagination a {
	background-color: var(--color-white);
	color: var(--color-primary);
}

.p-pagination a:hover {
	background-color: var(--color-primary);
	color: var(--color-white);
}

.p-pagination .current,
.p-pagination span.current {
	background-color: var(--color-primary);
	color: var(--color-white);
}

.p-pagination .dots {
	background-color: transparent;
	color: var(--color-font);
}

ul.page-numbers {
	overflow: hidden;
	position: relative;
	width: 100%;
	height: auto;
	display: flex;
	align-items: center;
	justify-content: flex-start;
}

ul.page-numbers li {
	margin-right: 8px;
}

ul.page-numbers li:has(> a.prev),
ul.page-numbers li:has(> a.next) {
	display: none !important;
}

/* :has 未対応ブラウザ向けのフォールバック */
.prev, .next {
	display: none !important;
}

/* アーカイブタグフィルター（アーカイブページ版） */
.p-archive__tag-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	padding: 0 20px;
}

/* メッセージカード（経営陣メッセージ専用） */
.p-message-card {
	width: 100%;
	background-color: var(--color-white);
	border-radius: 24px;
	overflow: hidden;
	box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
	display: flex;
	gap: 0;
}

.p-message-card__link {
	display: flex;
	width: 100%;
	text-decoration: none;
	color: inherit;
}

.p-message-card__image-wrap {
	width: 280px;
	height: 200px;
	flex-shrink: 0;
	overflow: hidden;
	border-radius: 24px 0 0 24px;
	position: relative;
}

.p-message-card__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.p-message-card__body {
	flex: 1;
	padding: 24px 32px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 12px;
}

.p-message-card__meta {
	display: flex;
	align-items: center;
	gap: 16px;
}

.p-message-card__date {
	font-family: Meiryo, "Noto Sans JP", sans-serif;
	font-size: 1.4rem;
	font-weight: 400;
	color: var(--color-font);
	letter-spacing: -0.3125px;
}

.p-message-card__name {
	font-family: Meiryo, "M PLUS Rounded 1c", sans-serif;
	font-size: 1.4rem;
	font-weight: 500;
	color: var(--color-primary);
}

.p-message-card__title {
	font-family: Meiryo, "M PLUS Rounded 1c", sans-serif;
	font-size: 2.0rem;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: -0.3125px;
	color: var(--color-primary);
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
	margin: 0;
}

.p-message-card__excerpt {
	font-family: Meiryo, "Noto Sans JP", sans-serif;
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 1.7;
	color: var(--color-font);
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
	margin: 0;
}

.p-message-card__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}


/* ==========================================================================
   18. SNSページ
   ========================================================================== */

.p-sns {
	background-color: var(--color-alternate);
	overflow: hidden;
	position: relative;
	width: 100%;
	height: auto;
	padding: 0 8px;
	margin-bottom: 44px;
}

.p-sns__inner {
	width: 100%;
	max-width: 960px;
	margin: 0 auto;
	padding-top: 63px;
	display: flex;
	flex-direction: column;
	gap: 48px;
}

.p-sns__platforms {
	display: flex;
	gap: 24px;
}

/* SNSプラットフォームカード */
.p-sns-card {
	flex: 1;
	border-radius: 24px;
	overflow: hidden;
	background-color: var(--color-white);
	box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
	display: flex;
	flex-direction: column;
}

.p-sns-card__header {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 24px 24px 16px;
}

.p-sns-card__icon {
	width: 56px;
	height: 56px;
	border-radius: 12px;
	overflow: hidden;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.p-sns-card__icon--x {
	background-color: #000000;
}

.p-sns-card__icon--instagram {
	background: linear-gradient(135deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
}

.p-sns-card__icon img {
	display: block;
	width: 32px;
	height: 32px;
}

.p-sns-card__platform-name {
	font-family: Meiryo, "M PLUS Rounded 1c", sans-serif;
	font-size: 2.0rem;
	font-weight: 700;
	color: var(--color-primary);
	margin: 0;
}

.p-sns-card__embed {
	flex: 1;
	min-height: 500px;
	background-color: var(--color-alternate);
	display: flex;
	align-items: center;
	justify-content: center;
	border-top: 1px solid rgba(17, 97, 166, 0.1);
}

.p-sns-card__embed-placeholder {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
	padding: 40px;
	text-align: center;
}

.p-sns-card__embed-placeholder p {
	font-family: Meiryo, "Noto Sans JP", sans-serif;
	font-size: 1.4rem;
	color: var(--color-font);
	margin: 0;
}

.p-sns-card__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 12px 32px;
	background: linear-gradient(to right, #1161a6, #1aa4b9);
	border-radius: 9999px;
	color: var(--color-alternate);
	font-family: Meiryo, "Noto Sans JP", sans-serif;
	font-size: 1.4rem;
	font-weight: 500;
	text-decoration: none;
	transition: all 0.3s cubic-bezier(.77, 0, .18, 1);
}

.p-sns-card__link:hover {
	opacity: 0.85;
}

/* SNSページ：WordPressコンテンツエリア */
.p-sns__content {
	background-color: var(--color-white);
	border-radius: 24px;
	padding: 40px 48px;
	font-family: Meiryo, "Noto Sans JP", sans-serif;
	font-size: 1.6rem;
	line-height: 1.8;
	color: var(--color-font);
}

.p-sns__content h2 {
	font-family: Meiryo, "M PLUS Rounded 1c", sans-serif;
	font-size: 2.0rem;
	font-weight: 700;
	color: var(--color-primary);
	margin-bottom: 16px;
}


/* ==========================================================================
   19. 記事詳細ページ（single）
   ========================================================================== */

.single main {
	background-color: var(--color-alternate);
}

/* ページラッパー */
.p-single {
	background-color: var(--color-alternate);
	overflow: hidden;
	position: relative;
	width: 100%;
	height: auto;
	padding: 0 8px;
}

.p-single__inner {
	width: 100%;
	max-width: 960px;
	margin: 0 auto;
	padding-top: 20px;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

/* パンくずリスト */
.fp-breadcrumb {
	width: 100%;
}

.fp-breadcrumb__list {
	display: flex;
	align-items: center;
	gap: 0;
	flex-wrap: nowrap;
	overflow: hidden;
}

.fp-breadcrumb__item {
	display: flex;
	align-items: center;
	gap: 4px;
	flex-shrink: 0;
}

.fp-breadcrumb__item--current {
	min-width: 0;
	flex-shrink: 1;
}

.fp-breadcrumb__home-icon {
	display: inline-block;
	width: 12px;
	height: 13px;
	margin-top: 2px;
	transition: all 0.3s cubic-bezier(.77, 0, .18, 1);
}

.fp-breadcrumb__chevron {
	width: 24px;
	height: 24px;
	margin: 2px 8px 0 8px;
}

.fp-breadcrumb__category-icon {
	display: inline-block;
	width: 19px;
	height: 15px;
	margin: 2px 2px 0 0;
	transition: all 0.3s cubic-bezier(.77, 0, .18, 1);
}

.fp-breadcrumb__link {
	font-family: Meiryo, "Noto Sans JP", sans-serif;
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 24px;
	color: var(--color-primary) !important;
	text-decoration: none;
	white-space: nowrap;
	opacity: 0.5;
	transition: all 0.3s cubic-bezier(.77, 0, .18, 1);
}

.fp-breadcrumb__link:hover {
	opacity: 1;
	color: var(--color-primary);
}

.fp-breadcrumb__link:hover .fp-breadcrumb__home-icon,
.fp-breadcrumb__link:hover .fp-breadcrumb__category-icon {
	opacity: 1;
}

.fp-breadcrumb__link--current {
	color: var(--color-primary);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	display: block;
	opacity: 1;
}

/* 記事コンテナ */
.p-single__container {
	display: flex;
	flex-direction: column;
	gap: 40px;
}

.p-single__article {
	display: flex;
	flex-direction: column;
	gap: 19px;
	border-radius: 24px;
	padding: 20px 0 24px;
	overflow: hidden;
}

/* ヒーロー画像 */
.p-single__hero {
	position: relative;
	width: 100%;
	box-sizing: border-box;
}

.p-single__hero-img {
	width: 100%;
	height: auto;
	aspect-ratio: 1053 / 379;
	object-fit: cover;
	border-radius: 24px;
	display: block;
}

.p-single__hero .fp-category-badge {
  top: 25px;
	left: 25px;
	color: var(--color-white);
}

/* メタ情報 */
.p-single__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 24px;
}

.p-single__date {
	font-family: Meiryo, "Noto Sans JP", sans-serif;
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 24px;
	letter-spacing: -0.3125px;
	color: var(--color-font);
	white-space: nowrap;
}

.p-single__likes {
	display: flex;
	align-items: center;
	gap: 8px;
}

.p-single__likes span {
	font-family: Meiryo, "Inter", sans-serif;
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 24px;
	letter-spacing: -0.3125px;
	color: var(--color-black);
}

/* タイトル・リード・著者 */
.p-single__head {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.p-single__title {
	font-family: Meiryo, "M PLUS Rounded 1c", sans-serif;
	font-size: 3.2rem;
	font-weight: 400;
	line-height: 1.4;
	letter-spacing: -0.3125px;
	color: var(--color-primary);
	margin: 0;
}

.p-single__excerpt {
	font-family: Meiryo, "Noto Sans JP", sans-serif;
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 24px;
	letter-spacing: -0.3125px;
	color: var(--color-font);
	margin: 0;
}

.p-single__author {
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: Meiryo, "Noto Sans JP", sans-serif;
	font-size: 1.6rem;
	line-height: 24px;
	letter-spacing: -0.3125px;
	color: var(--color-font);
	margin: 0;
}

.p-single__author-dept {
	font-weight: 700;
}

.p-single__author-name {
	font-weight: 400;
}

/* タグ */
.p-single__tags {
	display: flex;
	flex-direction: column;
	gap: 12px;
	overflow: hidden;
}

.p-single__tag-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

.p-single__tag-row .fp-tag {
	opacity: 1;
}

.p-single__tag-label {
	font-family: Meiryo, "Noto Sans JP", sans-serif;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 24px;
	letter-spacing: -0.3125px;
	color: var(--color-primary);
	white-space: nowrap;
}

/* 青タグバリアント（今日の話題） */
.fp-tag--blue {
	border-color: var(--color-primary);
	color: var(--color-primary);
}

.fp-tag--blue:not(.fp-tag--active) {
	color: var(--color-primary);
}

.fp-tag--blue .fp-tag__hash,
.fp-tag__hash--blue {
	color: var(--color-primary);
}

.fp-tag--blue:hover {
	background-color: var(--color-primary);
	color: var(--color-white) !important;
	border-color: var(--color-primary);
}

.fp-tag--blue:hover .fp-tag__hash,
.fp-tag--blue:hover .fp-tag__hash--blue {
	color: var(--color-white) !important;
}

/* 赤タグバリアント（topic） */
.fp-tag--red {
	border-color: var(--color-red) !important;
	color: var(--color-red) !important;
}

.fp-tag--red:not(.fp-tag--active) {
	color: var(--color-red) !important;
}

.fp-tag--red .fp-tag__hash,
.fp-tag__hash--red {
	color: var(--color-red) !important;
}

.fp-tag--red:hover,
.fp-tag--red.fp-tag--active {
	background-color: var(--color-red) !important;
	color: var(--color-white) !important;
	border-color: var(--color-red) !important;
	opacity: 1;
}

.fp-tag--red:hover .fp-tag__hash,
.fp-tag--red.fp-tag--active .fp-tag__hash,
.fp-tag--red:hover .fp-tag__hash--red,
.fp-tag--red.fp-tag--active .fp-tag__hash--red {
	color: var(--color-white) !important;
}

/* 記事本文 */
.p-single__overview p {
	font-family: Meiryo, "Noto Sans JP", sans-serif;
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 2.0;
	color: var(--color-font);
	margin: 0 0 16px;
}

.p-single__content {
	margin-top: 40px;
}

/* WPブロックエディタ：グラデーションボタン */
.p-single__content .wp-block-button .wp-block-button__link,
.p-single__content .fp-btn-gradient {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	width: 514px;
	height: 65px;
	padding: 16px 32px;
	background: linear-gradient(to right, #1161a6, #1aa4b9);
	border-radius: 128px;
	box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.16);
	color: var(--color-alternate);
	text-decoration: none;
	font-family: Meiryo, "Noto Sans JP", sans-serif;
	font-size: 2.4rem;
	font-weight: 400;
	box-sizing: border-box;
	transition: opacity 0.3s cubic-bezier(.77, 0, .18, 1);
}

.p-single__content .wp-block-button .wp-block-button__link:hover,
.p-single__content .fp-btn-gradient:hover {
	opacity: 0.85;
}

.p-single__content .wp-block-buttons {
	display: flex;
	justify-content: center;
	margin: 40px 0;
}

/* シェアボタン */
.p-single__share {
	padding: 0 20px;
	margin-top: 8px;
}

.p-single__share-inner {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 24px;
	padding: 20px 0;
	border-top: 1px solid rgba(17, 97, 166, 0.15);
	border-bottom: 1px solid rgba(17, 97, 166, 0.15);
}

.p-single__share-label {
	font-family: Meiryo, "M PLUS Rounded 1c", sans-serif;
	font-size: 1.6rem;
	font-weight: 700;
	color: var(--color-primary);
	margin: 0;
	white-space: nowrap;
}

.p-single__share-buttons {
	display: flex;
	align-items: center;
	gap: 12px;
}

.p-single__share-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 12px;
	text-decoration: none;
	transition: opacity 0.3s cubic-bezier(.77, 0, .18, 1);
}

.p-single__share-btn:hover {
	opacity: 0.8;
}

.p-single__share-btn--x {
	background-color: #000000;
}

.p-single__share-btn--facebook {
	background-color: #1877f2;
}

.p-single__share-btn--line {
	background-color: #06c755;
}

.p-single__share-btn img {
	display: block;
	filter: brightness(0) invert(1);
}

/* 関連記事グリッド */
.p-single__related {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.p-single__related-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
}

/* タグクラウド */
.p-single__tag-cloud {
	border-radius: 24px;
	padding: 32px 4px;
}

.p-single__tag-cloud .p-archive__tag-filter {
	padding: 0;
}

.p-single__tag-cloud .p-archive__tag-filter-title {
	margin: 0 0 40px;
	font-family: Meiryo, "M PLUS Rounded 1c", sans-serif;
	font-size: 3.2rem;
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.3846px;
	color: var(--color-primary);
}


/* ==========================================================================
   検索オーバーレイパネル
   ========================================================================== */

.site-search {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding-top: 16px;
}

.site-search[hidden] {
	display: none;
}

.site-search.is-open {
	display: flex;
}

.site-search__backdrop {
	position: absolute;
	inset: 0;
	background-color: rgba(17, 97, 166, 0.18);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	opacity: 0;
	transition: all 0.3s cubic-bezier(.77, 0, .18, 1);
}

.site-search.is-animating .site-search__backdrop,
.site-search.is-visible .site-search__backdrop {
	opacity: 1;
}

.site-search__panel {
	position: relative;
	z-index: 1;
	width: calc(100% - 16px);
	max-width: 960px;
	background-color: #ffffff;
	border-radius: 24px;
	padding: 40px;
	box-shadow: 0 8px 32px rgba(17, 97, 166, 0.16);
	transform: translateY(-16px);
	opacity: 0;
	transition: all 0.3s cubic-bezier(.77, 0, .18, 1);
}

.site-search.is-animating .site-search__panel,
.site-search.is-visible .site-search__panel {
	transform: translateY(0);
	opacity: 1;
}

/* ヘッダー行 */
.site-search__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 20px;
}

.site-search__label {
	font-family: Meiryo, "M PLUS Rounded 1c", sans-serif;
	font-size: 1.6rem;
	font-weight: 700;
	color: var(--color-primary);
	margin: 0;
	letter-spacing: -0.3125px;
}

.site-search__close {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border: none;
	background: var(--color-alternate);
	border-radius: 50%;
	cursor: pointer;
	transition: all 0.3s cubic-bezier(.77, 0, .18, 1);
	padding: 0;
	display: none;
}

.site-search__close:hover {
	background-color: #e8eaf6;
}

/* フォーム */
.site-search__form {
	overflow: hidden;
	position: relative;
	width: 100%;
	height: auto;
}

.site-search__input-wrap {
	flex: 1;
	display: flex;
	align-items: center;
	gap: 12px;
	color: var(--color-primary);
	background-color: var(--color-white);
	border-radius: 28px;
	padding: 0 20px;
	height: 56px;
	border: 2px solid var(--color-primary);
	transition: all 0.3s cubic-bezier(.77, 0, .18, 1);
}

.site-search__input-wrap:focus-within {
	border-color: var(--color-primary);
}

.site-search__tag-filter {
	margin-top: 16px;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	padding: 0 8px;
	margin-top: 40px;
}

.tag_spacing {
	margin-top: 8px !important;
}

.no_gap_child {
	margin-top: -24px !important;
}

.site-search__tag-filter .fp-tag {
	height: 28px;
	border-radius: 10px;
	font-size: 1.2rem;
	padding: 0 10px;
	opacity: 0.5;
}

.site-search__tag-filter .fp-tag:hover,
.site-search__tag-filter .fp-tag.fp-tag--active {
	opacity: 1;
}

.site-search__tag-filter .fp-tag__hash {
	font-size: 1.3rem;
	margin-right: 1px;
}

.site-search__input-icon {
	flex-shrink: 0;
}

.site-search__input {
	flex: 1;
	border: none;
	background: transparent;
	font-family: Meiryo, "Noto Sans JP", sans-serif;
	font-size: 1.6rem;
	color: var(--color-primary);
	outline: none;
	padding: 0 8px;
}

.site-search__input::placeholder {
	color: var(--color-primary);
}

.site-search__inpu::-webkit-input-placeholder {
  color: var(--color-primary);
}

.site-search__input::-moz-placeholder {
	color: var(--color-primary);
}

.site-search__input:-moz-placeholder {
	color: var(--color-primary);
}

.site-search__input::-ms-input-placeholder {
	color: var(--color-primary);
}

.site-search__input::-webkit-search-cancel-button {
	-webkit-appearance: none;
}

.site-search__submit {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 411px;
	height: 65px;
	padding: 16px 32px;
	background: linear-gradient(to right, #1161a6, #1aa4b9);
	border-radius: 128px;
	box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.16);
	color: var(--color-alternate);
	text-decoration: none;
	box-sizing: border-box;
	margin: 40px auto 0 auto;
	transition: all 0.3s cubic-bezier(.77, 0, .18, 1);
}

.site-search__submit:hover {
	opacity: 0.85;
}

.site-search__submit-label {
  font-family: Meiryo, "Noto Sans JP", sans-serif;
	font-size: 2.4rem;
	font-weight: 400;
	line-height: 1.33;
	letter-spacing: -0.6279px;
	color: var(--color-alternate);
	text-align: center;
	flex: 1;
	margin-top: -1px;
}

.site-search__submit-arrow {
	font-size: 2.8rem;
	color: var(--color-alternate);
	flex-shrink: 0;
}

/* ==========================================================================
   20. 記事詳細ページ（single）
   ========================================================================== */

.p-single__past-btn {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 514px;
	height: 65px;
	padding: 16px 32px;
	background: linear-gradient(to right, #1161a6, #1aa4b9);
	border-radius: 128px;
	box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.16);
	color: var(--color-alternate);
	text-decoration: none;
	box-sizing: border-box;
	margin: 40px auto 0 auto;
	transition: all 0.3s cubic-bezier(.77, 0, .18, 1);
}

.p-single__past-btn:hover {
	opacity: 0.85;
}

.p-single__past-btn-label {
	font-family: Meiryo, "Noto Sans JP", sans-serif;
	font-size: 2.4rem;
	font-weight: 400;
	line-height: 1.33;
	letter-spacing: -0.6279px;
	color: var(--color-alternate);
	text-align: center;
	flex: 1;
	margin-top: -1px;
}

.p-single__past-btn-arrow {
	font-size: 2.8rem;
	color: var(--color-alternate);
	flex-shrink: 0;
}