﻿@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Hanken+Grotesk:ital,wght@0,100..900;1,100..900&family=M+PLUS+Rounded+1c:wght@100;300;400;500;700;800;900&display=swap');

#freePage--pc {
	margin: 0 auto;
	padding: 0;
	box-sizing: border-box;
	width: 100%;
	position: relative;
	min-width: 1000px;
}
#freePage--pc .wph,
#freePage--pc .wph *,
#freePage--pc .wph *::before,
#freePage--pc .wph *::after {
	box-sizing: border-box;
}
#freePage--pc .wph {
	position: relative;
	font-family: 'M PLUS Rounded 1c', 'Hiragino Maru Gothic ProN', 'Hiragino Maru Gothic Pro', 'メイリオ', Meiryo, sans-serif;
	color: #254069;
}
#freePage--pc .wph img {
	border: 0;
	display: block;
	margin: 0 auto;
	padding: 0;
	max-width: 100%;
	height: auto;
}
#freePage--pc .wph a {
	text-decoration: none;
}
#freePage--pc .wph .inner {
	width: 1200px;
	margin: 0 auto;
	position: relative;
}

/* ===== 帯（告知のみ） ===== */
#freePage--pc .wph__obi {
	width: 100%;
	padding-top: 32px;
	background: #BDDFEE;
	text-align: center;
	position: relative;
	z-index: 2;
}
#freePage--pc .wph__obi .wph__obi__inner {
	background: #4188CD;
}
#freePage--pc .wph__obi img {
	width: 941px;
}

/* ===== MV =====
   拡大縮小時に雲の下へ地色の線が出るのを防ぐため下部を白に */
#freePage--pc .wph__mv {
	position: relative;
	z-index: 2;
	overflow: hidden;
	text-align: center;
	background: linear-gradient(to bottom, #BDDFEE 0%, #BDDFEE 90%, #FFF 90%);
}
#freePage--pc .wph__mv img {
	width: 1920px;
	margin: 0 auto;
	position: relative;
	z-index: 2;
}
#freePage--pc .wph__mv::after {
	content: "";
	position: absolute;
	top: 721px;
	left: 50%;
	transform: translateX(-50%);
	width: 100%;
	height: 199px;
	background: url("../img/usr/freepage/contents_20260909/mv_cloud.png") repeat-x 50% 0;
	z-index: 1;
}

/* ===== 柄ブロック ===== */
#freePage--pc .wph__pattern {
	text-align: center;
	position: relative;
}
#freePage--pc .wph__pattern--01 {
	margin-top: 0;   /* MV画像に雲下の余白まで含まれるため */
}
#freePage--pc .wph__pattern + .wph__pattern {
	margin-top: 135px;
}
#freePage--pc .wph__pattern-ttl {
	margin: 0;
}

/* ===== リード文（テキスト） ===== */
#freePage--pc .wph__lead,
#freePage--pc .wph__cat-lead {
	font-size: 18px;
	line-height: 40px;
	letter-spacing: 0.08em;
	font-weight: 500;
	color: #254069;
	text-align: center;
}
#freePage--pc .wph__lead {
	/* 旧 lead 画像(高223)→テキスト(6行x40=240)。増分は margin-bottom で相殺し
	   以降のレイアウトを既存承認版と完全に同じ位置に保つ */
	margin: 34.5px 0 -4.5px;
}
#freePage--pc .wph__cat-lead {
	margin: 32.5px 0 -4.5px;
}

/* ===== カテゴリボックス ===== */
#freePage--pc .wph__cat {
	border-radius: 24px;
	text-align: center;
	position: relative;
}
#freePage--pc .wph__cat-ttl {
	margin: 0;
}
#freePage--pc .wph__cat--hk1 {
	background: #FFEEF2;
	margin-top: 82px;
	padding: 47px 0 64px;
}
#freePage--pc .wph__cat--hk2 {
	background: #E8F2FF;
	margin-top: 81px;
	padding: 47px 0 65px;
}
#freePage--pc .wph__cat--bag {
	background: #F9F0FF;
	margin-top: 86px;
	padding: 53px 0 64px;
}
#freePage--pc .wph__cat--pouch {
	background: #FFF9E8;
	margin-top: 87px;
	padding: 50px 0 64px;
}
#freePage--pc .wph__cat--goods {
	background: #EAFCF2;
	margin-top: 87px;
	padding: 49px 0 65px;
}

/* ===== 商品カード（パーツ組み） ===== */
#freePage--pc .wph__cards {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	margin-top: 58px;
}
#freePage--pc .wph__cat--bag .wph__cards {
	margin-top: 69px;
}
#freePage--pc .wph__cat--pouch .wph__cards {
	margin-top: 68px;
	gap: 58px 80px;
}
#freePage--pc .wph__cat--goods .wph__cards {
	margin-top: 69px;
	display: block;
}
#freePage--pc .wph__cards--stack {
	display: block;
}
#freePage--pc .wph__card {
	position: relative;
	width: 398px;
	margin: 0 auto;
	background: #FFFFFF;
	border-radius: 12px;
	overflow: hidden;
	padding-bottom: 36px;
	text-align: center;
}
/* flex(2カラム)では margin:auto が余白を吸収してカードが左右へ広がるため解除 */
#freePage--pc .wph__cards--2col .wph__card {
	margin-left: 0;
	margin-right: 0;
}
#freePage--pc .wph__card--wide {
	width: 828px;
}

/* 商品名プレート（画像） */
#freePage--pc .wph__card-name {
	margin: 0;
}
#freePage--pc .wph__card-name img {
	width: 100%;
}
/* 商品写真 / サブ写真（画像） */
#freePage--pc .wph__card-photo img {
	width: 326px;
}
#freePage--pc .wph__card-sub {
	margin-top: 37px;
}
#freePage--pc .wph__card-sub img {
	width: 326px;
}
/* サイズ（テキスト） */
#freePage--pc .wph__card-size {
	margin: 38px 0 0;
	font-size: 14px;
	line-height: 20px;
	letter-spacing: 0.03em;
	font-weight: 800;
	color: #254069;
}
#freePage--pc .wph__card-sub + .wph__card-size {
	margin-top: 16px;
}
/* 価格（テキスト） */
#freePage--pc .wph__card-price {
	margin: 8px 0 0;
	font-size: 30px;
	line-height: 34px;
	letter-spacing: 0.04em;
	font-weight: 800;
	color: #254069;
}
#freePage--pc .wph__card-price span {
	font-size: 12px;
	font-weight: 700;
	line-height: 1;   /* 親の line-height を継ぐと行ボックスが 6.7px 伸びるため */
	letter-spacing: 0.08em;
}
/* ボタン */
#freePage--pc .wph__card-btn {
	display: block;
	width: 326px;
	margin: 13px auto 0;
}
#freePage--pc .wph__card-btn img {
	width: 100%;
}
#freePage--pc a.wph__card-btn {
	transition: opacity .2s;
}
#freePage--pc a.wph__card-btn:hover {
	opacity: .85;
}

/* クリアファイル（2カラム） */
#freePage--pc .wph__card-cols {
	display: flex;
	justify-content: center;
}
#freePage--pc .wph__card-col {
	width: 50%;
}
#freePage--pc .wph__card--wide .wph__card-photo img,
#freePage--pc .wph__card--wide .wph__card-sub img {
	width: 321px;
}

/* GOODS カード間隔 */
#freePage--pc .wph__card--wide {
	margin-top: 59px;
}
#freePage--pc .wph__card--12 {
	margin-top: 63px;
}

/* ===== ご注意ください ===== */
#freePage--pc .wph__notes {
	margin-top: 59px;
	padding-bottom: 58px;
	text-align: center;
	position: relative;
	z-index: 2;
	background-color: #FFF;
}
#freePage--pc .wph__notes-ttl {
	margin: 0;
}
#freePage--pc .wph__notes-term {
	margin: 20px 0 0;
	font-size: 18px;
	line-height: 28px;
	letter-spacing: 0.08em;
	font-weight: 500;
	color: #FF4A90;
}
#freePage--pc .wph__notes-list {
	width: 880px;
	margin: 21px auto 0;
	padding: 0;
	list-style: none;
	text-align: left;
	font-size: 16px;
	line-height: 24px;
	letter-spacing: 0.08em;
	font-weight: 500;
	color: #254069;
}
#freePage--pc .wph__notes-list li {
	padding-left: 1em;
	text-indent: -1em;
}
#freePage--pc .wph__notes-list li + li {
	margin-top: 4px;
}
#freePage--pc .wph__notes-list li::before {
	content: "・";
}

/* ===== 商品一覧ボタン（通常のみ） ===== */
#freePage--pc .wph__all {
	text-align: center;
	margin-top: 60px;
	position: relative;
	z-index: 2;
}
#freePage--pc .wph__all a {
	display: inline-block;
	transition: opacity .2s;
}
#freePage--pc .wph__all a:hover {
	opacity: .85;
}

/* ===== 装飾パターン（ボックス地色より前面・コンテンツより背面） ===== */
#freePage--pc .wph::before {
	content: "";
	position: absolute;
	top: 996px;   /* 柄1タイトル上端から。帯/MV/雲は含めない */
	left: 50%;
	transform: translateX(-50%);
	width: 1920px;
	height: 10448px;
	background: url("../img/usr/freepage/contents_20260909/bg_deco.png") no-repeat 0 0;
	z-index: 1;
	pointer-events: none;
}
#freePage--pc .wph__pattern > .inner,
#freePage--pc .wph__cat > *,
#freePage--pc .wph__notes > .inner {
	position: relative;
	z-index: 2;
}

/* ===== アニメーション（下から上へフェードイン） ===== */
#freePage--pc .wph .is-fade {
	opacity: 0;
	transform: translateY(40px);
	transition: opacity .9s ease, transform 1s cubic-bezier(.22, .61, .36, 1);
}
#freePage--pc .wph .is-fade.is-show {
	opacity: 1;
	transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
	#freePage--pc .wph .is-fade {
		opacity: 1;
		transform: translateY(0);
		transition: none;
	}
}

/* ============================================================
   ＜通常＞専用（.wph--tsujo が付いた時のみ適用／告知には影響なし）
   ・帯がないため装飾パターンの開始位置を帯の高さ 108px 分上へ
   ・ボタン画像に影があるためカード下余白を 4px 詰める
   ・「商品一覧をみる」は全幅ピンク帯（デザイン実測 h=232 / 上80・下76）
   ============================================================ */
#freePage--pc .wph--tsujo::before {
	top: 888px;
}
#freePage--pc .wph--tsujo .wph__card {
	padding-bottom: 32px;
}
#freePage--pc .wph--tsujo .wph__all {
	width: 100%;
	background: #FFBED6;
	padding: 80px 0 76px;
}
#freePage--pc .wph--tsujo .wph__all a {
	display: block;
	width: 480px;
	margin: 0 auto;
}
#freePage--pc .wph--tsujo .wph__all img {
	width: 100%;
}

/* ============================================================
   テキストのレンダリング調整（PCのみ）
   ・Windows Chrome 等でフォントの描画が崩れるため、テキスト要素へ
     transform: rotate(0.05deg) を付与する
   ・transform は 1 要素に 1 つしか持てず、フェードインの translateY と
     共存できないため、JS が付け外しする is-fade / is-show の状態ごとに
     「テキスト専用ルール」を別立てし、同じ transform 内へ併記する
     → JS / HTML は変更不要（JS は従来どおり is-show を付けるだけ）
   ・セレクタは .is-fade より 1 つ多いクラス数なので確実に上書きされる
   ============================================================ */

/* --- アニメーションするテキスト：表示前 --- */
#freePage--pc .wph .wph__lead.is-fade,
#freePage--pc .wph .wph__cat-lead.is-fade,
#freePage--pc .wph .wph__notes-term.is-fade,
#freePage--pc .wph .wph__notes-list.is-fade {
	transform: translateY(40px) rotate(0.05deg);
}

/* --- アニメーションするテキスト：表示後 --- */
#freePage--pc .wph .wph__lead.is-fade.is-show,
#freePage--pc .wph .wph__cat-lead.is-fade.is-show,
#freePage--pc .wph .wph__notes-term.is-fade.is-show,
#freePage--pc .wph .wph__notes-list.is-fade.is-show {
	transform: translateY(0) rotate(0.05deg);
}

/* --- アニメーションしないテキスト（カード内のサイズ・価格） --- */
#freePage--pc .wph__card-size,
#freePage--pc .wph__card-price {
	transform: rotate(0.05deg);
}

/* --- 動きを抑える設定の端末でも rotate は残す --- */
@media (prefers-reduced-motion: reduce) {
	#freePage--pc .wph .wph__lead.is-fade,
	#freePage--pc .wph .wph__cat-lead.is-fade,
	#freePage--pc .wph .wph__notes-term.is-fade,
	#freePage--pc .wph .wph__notes-list.is-fade {
		transform: rotate(0.05deg);
	}
}
