/* * =========================================
 * generalディレクトリ配下のスタイル
 * =========================================
 */

/*************************************
 * カラーセットのオーバーライド
 *************************************/
body {
	/* ■ 背景色 */
	--bg-color-1: var(--color-sugar-mist);
	--bg-color-2: #fec5ff38;
	--bg-color-3: #ff62c038;
	--bg-color-4: #ad056b70;

	/* ■ 背景色(主にmobile-nav：SPのメニューで使用) */
	--bg-color-5: #ffd9f0;
	--bg-color-6: #fff2fa;
	--bg-color-7: #ef97cd;
	--bg-color-8: #8091d8cc;

	/* ■ 背景色（主にl-main__sidebar：サイドバーで使用） */
	--bg-color-9: none;

	/* ■ ボーダーカラー（主にnewで使用） */
	--border-color-1: #deaaca;

	/* ■ ボーダーカラー（主にmobile-nav：SPのメニューで使用） */
	--border-color-2: #fff4f7;
	--border-color-3: #f8dbdb;

	/* ■ フォントカラー（主にmega-menu：メガメニューで使用） */
	--font-color-4: #eb90c7;

	/* ■ ボタンカラー（主にheaderやmobile-navで使用） */
	--btn-color-1: #eb90c7;

	/* ■ アイコンカラー（主にnewで使用） */
	--icon-bg-color-1: #e994c8;
	--icon-bg-color-2: #fbe2f1;

	/* ■ アイコンカラー（主にback-to-topで使用） */
	--icon-bg-color-3: #9c246266;

	/* ■ リンクカラー */
	--link-hover-color: #f875b4;
	--link-default-color: #bd5192;
	--link-global-color: var(--color-raspberry-sauce);
}

/* * =========================================
 * FV
 * =========================================
 */
.fv {
	min-height: 660px;
	padding: 60px 0;
	padding-top: 160px;
	padding-bottom: 120px;
	border-bottom: rgb(0 0 0 / 8%);
	box-shadow: 0 2.03px 3.044px 0 rgb(0 0 0 / 8%);
}

.fv__bg {
	background-image: url('/assets/img/general/fv_bg.webp');
	background-repeat: no-repeat;
	background-position: right center;
	background-size: auto 100%;
}

.fv__container {
	padding-top: 10px;
}

.fv__inner {
	display: flex;
	flex-wrap: wrap;
	gap: 40px;
	align-items: center;
	justify-content: space-between;
	width: 100%;
}

.fv-brand {
	z-index: 2;
	display: flex;
	flex-direction: column;
	gap: 24px;
	place-items: center center;
	width: 32%;
	text-align: center;
}

.fv-brand__label {
	padding: 1px 4px 2px;
	font-family: var(--font-family-sub1);
	font-size: 20px;
	font-weight: var(--font-weight-medium);
	color: var(--font-color-1);
	text-align: right;
	background: var(--color-violet-candy);
}

.fv-brand__lead {
	position: relative;
	width: 100%;
	padding: 8px 0 69px;
}

.fv-lead__bg {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 0;
	width: 100%;
	height: auto;
	pointer-events: none;
	mix-blend-mode: multiply;
}

.fv-lead__text {
	position: relative;
	z-index: 1;
	font-size: 22px;
	font-weight: var(--font-weight-regular);
	line-height: 40px;
	text-align: center;
	letter-spacing: 1.32px;
	white-space: nowrap;
}

.fv-brand__about a {
	display: inline-flex;
	gap: 6px;
	align-items: center;
	padding-bottom: 2px;
	font-size: 15px;
	letter-spacing: 0.6px;
	transition: border-color 0.3s;
}

/* image */
.fv-image {
	z-index: 1;
	display: flex;
	flex: 1;
	gap: 8px;
	align-items: center;
	justify-content: space-between;
	padding: 0 50px;
}

.fv_image img {
	width: 100%;
}

/* * =========================================
 * news
 * =========================================
 */

/* * =========================================
 * Infomation
 * =========================================
 */
.infomation {
	/* 上下の余白 */
	padding: 120px 0 160px;
}

/* --- Swiper Slide Styles --- */
.swiper {
	display: flex;
	flex-direction: column;
	gap: 72px;
	align-items: center;
	width: 100%;
	padding: 5px 0;
}

.headline--general {
	position: relative;
	width: 382px;
	height: 154px;
	padding-top: 64px;
}

.headline__bg--general {
	inset: unset;
	top: 0;
	right: 28px;
	width: fit-content;
	height: 100%;
}

.headline__bg--general img {
	width: auto;
	height: 100%;
}

.headline--general h2 {
	width: 100%;
	font-family: var(--font-family-sub1);
	font-size: 48px;
	font-style: normal;
	font-weight: var(--font-weight-medium);
	line-height: normal;
	color: var(--bcf-common-accent, #e994c8);
	text-align: center;
}

.swiper__slider {
	/* スライドの高さ合わせ */
	align-items: center;
}

.swiper__slide {
	/* --- 修正：内部コンテンツを確実に中央揃えにする --- */
	display: flex;
	flex-direction: column;
	align-items: center; /* アイテムを左右中央に */

	/* 85%から80%に変更し、左右の余白を増やして中央感を強調 */
	width: 80%;
	overflow: hidden;
	text-align: center; /* テキストを中央に */

	/* スライド内の画像設定 */
	background: #fff;

	/* box-shadow: 0 4px 15px rgb(238 188 208 / 30%); /* ピンク系の影 */
	box-shadow: 1px 1px 3px 0 rgb(0 0 0 / 15%);
	transition: all 0.4s ease;
}

.swiper__slide a {
	width: 100%;
	height: 100%;
}

.swiper__slide img {
	display: block;
	width: 100%;
	height: auto;

	/* 画像自体のマージンも念のためリセット */
	margin: 0 auto;
	object-fit: cover;
}

/* アクティブ以外のスライドを少し薄く/小さくする場合（デザインの好みで調整） */
.swiper__slide:not(.swiper-slide-active) {
	/* opacity: 0.6; */
	transform: scale(0.8);
}

.swiper-slide-active {
	z-index: 2;

	/* box-shadow: 0 8px 25px rgb(238 188 208 / 50%); /* アクティブ時は影を強く */
	box-shadow: 1px 1px 3px 0 rgb(0 0 0 / 30%);
	opacity: 1;
	transform: scale(1);
}

.swiper__controller {
	position: relative;
	display: flex;
	flex-direction: row;
	gap: 40px;
	align-items: center;
	justify-content: center;
	width: 100%;
}

/* --- ナビゲーションボタン（矢印） --- */
.swiper__button--prev,
.swiper__button--next {
	position: relative;
	z-index: 10;
	width: 48px;
	height: 48px;
	margin: 0;
	color: #fff; /* 矢印の色 */
	background-color: #eebcd0; /* デザインのピンク色 */
	border-radius: 50%;
	transition:
		background-color 0.3s,
		transform 0.2s;
}

/* 矢印アイコンのサイズ調整 */
.swiper__button--prev::after,
.swiper__button--next::after {
	font-size: 20px;
	font-weight: bold;
}

/* ホバーアクション */
.swiper__button--prev:hover,
.swiper__button--next:hover {
	background-color: #e59fb8; /* 少し濃く */
	transform: scale(1.05);
}

.swiper__pagination {
	position: relative;
	width: auto !important;
	margin-top: 17px;
}

/* --- ページネーション（ドット） --- */
.swiper-pagination-bullet {
	width: 24px;
	height: 24px;
	margin: 0 6px !important;
	background: #eebcd0;
	opacity: 0.5;
	transition: all 0.3s;
}

.swiper-pagination-bullet-active {
	background: #eebcd0;
	opacity: 1;
}

/* * =========================================
 * Pickup
 * =========================================
 */
.pickup {
	padding: 160px 0;
}

.pickup__bg {
	background-color: var(--bg-color-2);
}

.pickup__container {
	display: flex;
	flex-direction: column;
	gap: 72px;
	align-items: center;
	justify-content: center;
	overflow: visible;
}

.pickup__inner {
	display: flex;
	flex-wrap: wrap;
	gap: clamp(8px, 24px, 32px);
	align-items: center;
	justify-content: center;
}

.pickup__card {
	width: 250px;
	height: 260px;
	background-color: var(--color-white);
	border-radius: 24px;
	box-shadow: 2px 2px 4px 0 rgb(0 0 0 / 25%);
}

.pickup__card a {
	display: flex;
	flex-direction: column;
	gap: 8px;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	height: 100%;
	padding: 24px 0 20px;
}

.pickup .card__title {
	display: flex;
	flex-direction: column;
	gap: 4px;
	align-items: center;
}

.card__title h3 {
	font-family: var(--font-family-sub1);
	font-size: 18px;
	font-style: normal;
	font-weight: 500;
	font-feature-settings:
		'halt' on,
		'pwid' on;
	line-height: normal;
	color: var(--bcf-top, #cd68a5);
}

.pickup .card__text {
	padding: 0 16px;
	font-size: 14px;
	font-style: normal;
	font-weight: 400;
	font-feature-settings:
		'halt' on,
		'pwid' on;
	line-height: 140%; /* 21px */
	color: var(--bc-common-txt-base, #623a44);
	letter-spacing: 0.5px;
}

/* ================================
レスポンシブ対応 (767px以下)
  ================================ */
@media screen and (width <= 767px) {
	/* FV */
	.fv {
		padding-top: 100px;
	}

	.fv__bg {
		background-image: url('/assets/img/general/fv_bg_sp.webp');
		background-size: cover;
	}

	.fv__inner {
		flex-direction: column;
	}

	.fv-brand,
	.fv-image {
		width: 100%;
	}

	.fv-brand {
		gap: 16px;
	}

	.fv-brand__lead {
		padding-bottom: 40px;
	}

	.fv-image {
		width: 100vw;
		height: 500px;
		padding: 0;
		margin-right: calc(50% - 50vw);
		margin-left: calc(50% - 50vw);
	}

	.fv-image > img {
		width: auto;
		height: 500px;
		object-fit: cover;
		object-position: -250px center;
	}

	.headline--general {
		padding-top: 60px;
	}

	.headline--general h2 {
		font-size: 40px;
	}

	.headline__bg--general {
		left: 80px;
	}

	.headline__bg--general img {
		width: auto;
		height: 90%;
	}

	/* Infomation */
	.infomation {
		padding: 32px 0 64px;
	}

	.swiper {
		gap: 16px;
	}

	.swiper__button--prev,
	.swiper__button--next {
		display: none;
	}

	.swiper-pagination-bullet {
		margin: 0 16px !important;
	}

	/* Pickup */
	.pickup {
		padding: 32px 0 64px;
	}

	.pickup__container {
		gap: 16px;
	}

	.pickup__card {
		width: 335px;
		height: 350px;
	}

	.pickup__card a {
		padding: 32px 0 26px;
	}

	.card__title h3 {
		font-size: 24px;
	}

	.card__title img {
		width: 145px;
	}
}
