@charset "UTF-8";

:root {
	--font-shippori-mincho: "Shippori Mincho", serif;
	--font-genei-latemin: "GenEiLateMin", "Hiragino Mincho ProN", serif;
	--font-castoro-titling: "Castoro Titling", serif;
	--font-noto-serif-jp: "Noto Serif JP", serif;
	--font-bodoni: "bodoni-std", serif;
	--font-main-text-small: clamp(14px, 0.8vw, 16px);
	--font-main-text-medium: 20px;
	--font-main-text-medium-sp: 16px;
	--font-main-text-large: clamp(20px, 1.6vw, 35px);
	--font-promise-text-small: 1.1rem;
	--font-promise-text-large: 1.5rem;
	--font-button-text-medium: clamp(22px, 1.3vw, 26.98px);
	--header-height: 80px;
	--header-height-sp: 50px;
	--sec-title-font-size-l: 45px;
	--sec-title-font-size-ja: 30px;
	--main-text-color: #404040;
}

/* ================================
    monitor ページだけヘッダーを常に表示
================================ */
/* body.post-type-archive-monitor .header-wrapper,
/* 旧アーカイブ用 */
/*body.page-template-page-monitor202504 .header-wrapper {
	visibility: visible !important;
	opacity: 1 !important;
	transform: translate(-50%, 0) !important;
	-webkit-transform: translate3d(-50%, 0, 0) !important;
	transition: none !important;
} */

html,
body {
	color: #404040;
	background-color: #fff;
	font-family: "Hiragino Sans", "ヒラギノ角ゴ ProN", "Yu Gothic", "游ゴシック体", "メイリオ", Meiryo, sans-serif;
}
html {
  scroll-behavior: smooth;
}

/* =================
アニメーション
=================*/
.fade-up {
	opacity: 0;
	transform: translateY(50px);
	transition: opacity 1.5s cubic-bezier(0.25, 0.46, 0.45, 0.94), transform 1.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.fade-up.active {
	opacity: 1 !important;
	transform: translateY(0) !important;
}

/* ==================================
共通
=======================================*/
.pc-only {
	display: block;
}

.sp-only {
	display: none;
}

.letter-pink {
	color: #F16790;
}

.section__container {
	max-width: 900px;
	width: calc(100% - 40px);
	margin-inline: auto;
}

.section__title {
	position: relative;
	display: block;
	width: 100%;
	padding: 8px 20px;
	font-family: var(--font-shippori-mincho);
	font-size: 28px;
	line-height: 1;
	font-weight: bold;
	color: #F2769C;
	background-color: #FFEEEE;
	text-align: left;
	margin-top: 35px;
}

/* ----- 英語テキスト（背面レイヤー） ----- */
.section__title::before {
	content: attr(data-en);
	/* data-en の文字列を表示 */
	position: absolute;
	top: -33px;
	left: 0;
	font-family: var(--font-genei-latemin);
	font-size: 45px;
	line-height: 0.7;
	color: #E57C8B;
	opacity: 0.1;
	pointer-events: none;
}

/* =============
main
==================*/
/* --- ヒーロー画像 ------------------------------------ */
.monitor-hero {
	margin-top: 80px;
	/* 適宜調整してね */
}

.hero__img {
	width: 100%;
	height: auto;
	display: block;
	/* <img> の下余白を消す */
}

/* --- 画面に出さない見出し (SEO用) ------------------------ */
.visually-hidden {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/* -----------------------------------
 section__nav  ── ページ内リンク 
------------------------------------ */
.section__nav {
	margin: 55px auto 56px;
}

.nav__list {
	display: flex;
	gap: 4.2%;
	justify-content: center;
	list-style: none;
	margin: 0 auto;
	padding: 0;
	max-width: 940px;
	width: 100%;
}

.nav__list--en {
	font-family: var(--font-genei-latemin);
	font-weight: 500;
	font-size: 14px;
	color: rgba(189, 167, 119, 0.43);
}

.nav__list li {
	position: relative;
	padding-inline: 2%;
}

.nav__list li a {
	display: flex;
	flex-direction: column;
	font-size: 20px;
	margin: 20px;
	transition: 0.3s ease;
}

.nav__list li a:hover {
	transform: scale(1.05);
}

.nav__list a {
	display: block;
	font-family: var(--font-shippori-mincho, "Noto Serif JP", serif);
	font-size: clamp(16px, 1.8vw, 24px);
	color: #1a1a1a;
	text-decoration: none;
	text-align: center;
}

.nav__list li:not(:first-child)::before {
	content: "";
	position: absolute;
	left: -40px;
	top: 50%;
	/* translate:0 -50%;  */
	transform: translate(-50%, -50%);
	width: 1px;
	height: 100%;
	/* 文字より少し短め */
	background: #E3D9C5;
	/* カンプの淡ベージュ */
	pointer-events: none;
	/* クリックに干渉しない */
	margin-inline: 21px;
}

/* sp用 */
/* ▼リスト全体を2列×2行のグリッドに */
.sp-nav__list {
	display: none;
}

/* -------------
#what
--------------*/

.what {
	margin-top: 50px;
	font-size: var(--font-main-text-medium);
	background-image: url(../img/202504/monitor_bg_what.png);
}

.what__container {
	padding-block: 73px 139px;
	font-size: 20px;
	line-height: 1.693;
	font-weight: 400;
	color: var(--main-text-color);
}

.what__desc {
	padding-inline: 25px;
	margin-block: 30px 45px;
}

.what__icons_sp {
	display: none;
}

.what__icons_pc {
	display: flex;
	flex-wrap: wrap;
	gap: 17px 36px;
	justify-content: center;
	max-width: 819px;
	margin: 0 auto;
}

.what__icons_pc img {
	max-width: 249px;
	aspect-ratio: 249/ 190;
	width: 100%;
	height: auto;
	border-radius: 10px;
}

/* ----- 768px 未満は自動縮小 ----------- */
@media (max-width:819px) {
	.what__icons_pc img {
		flex: 0 1 calc((100% - 36px*2)/3);
	}
}

.what__text {
	font-size: 20px;
	margin-top: 53px;
	max-width: 850px;
	width: 100%;
}

/* --------------
#menu
---------------*/

.menu__container {
	padding-block: 73px 125px;
}

.menu__nav {
	display: flex;
	max-width: 900px;
	width: 100%;
	margin: 0 auto;
	justify-content: center;
	margin-block: 63px;
}

.menu__btn {
	max-width: 300px;
	width: 100%;
	aspect-ratio: 300 / 282.24;
	position: relative;
	color: #fff;
}

.menu__btn--label {
	font-family: var(--font-shippori-mincho);
	font-size: 32px;
	font-weight: bold;
	width: 100%;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -31%);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
}

.menu__desc {
	font-size: var(--font-main-text-medium);
	line-height: 1.693;
	font-weight: 400;
}
.menu__label--accent {
	font-size: 16px;
}

.menu__title {
	color: #404040;
	font-size: 26px;
	font-weight: bold;
	text-align: left;
	margin-bottom: 25px;
	padding-left: 24px;
	position: relative;
}

.menu__title::before {
	content: '';
	width: 13px;
	height: 30px;
	background-color: #FFEEEE;
	position: absolute;
	top: 4px;
	left: 0;
}

/*-----------------
menuの中身
----------------*/

.menu__content {
	display: flex;
	align-items: flex-start;
	gap: 23px;
	margin-bottom: 45px;
}

.menu__img {
	max-width: 400px;
	width: 45%;
	aspect-ratio: 400 / 330;
	object-fit: contain;
}

.menu__text {}

.menu__item-title {
	color: #E05D70;
	font-size: var(--font-main-text-medium);
	font-weight: 500;
}

.menu__tag {
	max-width: 106px;
	width:25%;
	aspect-ratio: 1 / 1;
	object-fit: contain;
}

.menu__price {
	display: flex;
	gap: 8px;
}

.menu__prices {
	font-family: "DIN2014", "din-2014", "DIN", "Helvetica Neue", Arial, sans-serif;
}

.menu__old-price {
	color: #4A4A4A;
	font-size: 23px;
	font-weight: 400;
	position: relative;
	display: inline-block;
}

.menu__old-price::after {
	content: '';
	position: absolute;
	top: 70%;
	left: 0;
	width: 100%;
	height: 1.5px;
	background-color: #4A4A4A;
	transform: rotate(-8deg);
	transform-origin: left center;
	pointer-events: none;
}

.menu__old-price--yen {
	font-size: 14px;
}

.menu__new-price {
	color: #EC5C72;
	font-size: 63px;
	font-weight: 400;
	padding-left: 30px;
	position: relative;
}

.menu__new-price--yen {
	font-size: 40px;
}

.menu__new-price::before {
	content: '';
	background-image: url(../img/202504/monitor_arrow.png);
	background-size: contain;
	background-repeat: no-repeat;
	width: 16px;
	aspect-ratio: 16.1 / 13.22;
	position: absolute;
	top: 45%;
	left: 4%;
}

.menu__desc {
	font-size: 16px;
	font-weight: 400;
	color: #000000;
	margin-top: 8px;
	margin-bottom: 20px;
}

.menu__links {
	display: flex;
	justify-content: center;
	gap: 16px;
}

.menu__links a {
	color: #fff;
}

.menu__link {
	/* flex: 1 1 50%; */
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 16px;
	position: relative;
	height: 60px;
	border-radius: 2.89px;
}

.menu__link::after {
	content: '';
	position: absolute;
	right: 10px;
	top: 50%;
	transform: translateY(-50%);
	width: 8px;
	height: 8px;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	transform: translateY(-50%) rotate(45deg);
	transition: transform .3s ease;
	pointer-events: none;
}

.menu__link:hover {
	opacity: 1;
}

.menu__link:hover::after {
	transform: translate(4px, -50%) rotate(45deg);
}


.menu__link--book {
	background-color: #2FA900;
	max-width: 225px;
	width: 100%;
	text-align: center;
}

/* ----------
flow
-------------*/
.monitor__flow {
	background-color: #FFF9F9;
	font-family: "Zen Kaku Gothic New", "Noto Sans JP", "Poppins", sans-serif;
}

.flow__container {
	padding-block: 73px 140px;
}
.flow__items_pc {
	margin-top: 67px;
}
.flow__item {
	display: flex;
	gap: 36px;
	margin-bottom: 70px;
}

.flow__item:last-child {
	margin-bottom: 0;
}

.flow__images {
	display: flex;
	align-items: flex-start;
	gap: 18px;
	flex-shrink: 0;
}

.flow__number {
	display: flex;
	flex-direction: column;
	gap: 30px;
	align-items: center;
	color: #EB586E;
	font-weight: bold;
	font-size: 40px;
	line-height: 0.6;
}

.flow__dot {
	width: auto;
	height: 139px;
}

.flow__img {
	width: 100%;
	max-width: 297px;
	height: auto;
	aspect-ratio: 297 / 208;
	object-fit: contain;
}

.flow__title {
	font-size: var(--font-main-text-medium);
	color: #EB586E;
	font-weight: bold;
	line-height: 3.55;
}

.flow__text {
	font-size: 18px;
	font-weight: 500;
}
.flow__link {
	margin-top: 42px;
}
.flow__link a {
	max-width: 340px;
	width: 88%;
}
.flow__link .menu__link::after {
	right: 19px;
}
@media screen and (max-width: 768px) {
	.section__title {
		font-size: 20px;
		padding: 8px 14px;
	}
	.section__title::before {
		font-size: 31.69px;
		line-height: 0.7;
		top: -23px;
	}
	.section__nav {
		margin: 20px auto;
	}

	.monitor-hero {
		margin-top: 50px;
	}

	.sp-only {
		display: block;
	}

	.pc-only {
		display: none;
	}

	.menu__content {
		flex-direction: column;
		max-width: 100%;
		gap: 17px;
	}

	/* sp用ナビメニュー */
	.sp-nav__list {
		display: grid !important;
		grid-template-columns: repeat(2, 1fr);
		gap: 12px;
		width: 93%;
		max-width: 767px;
		margin-inline: auto;
		padding: 0;
		font-family: var(--font-shippori-mincho);
	}

	/* ▼リスト項目の共通スタイル */
	.sp-nav__list li {
		list-style: none;
	}

	/* ▼ボタン風リンク */
	.sp-nav__list a {
		display: flex;
		flex-direction: column;
		/* 英字→日本語を縦方向に */
		align-items: center;
		justify-content: center;
		padding-block: 8px;
		font-size: clamp(10px, 4vw, 16px);
		/* font-size: 16px; */
		line-height: 1.4;
		border: 1px solid #E3D9C5;
		border-radius: 50px;
		/* だ円形 */
		text-decoration: none;
		color: #404040;
		position: relative;
		/* ▼アイコン用 */
		overflow: hidden;
		transition: background 0.3s ease, color 0.3s ease;
	}

	.nav__list--en {
		font-size: 10px;
	}

	.sp-nav__list a::after {
		content: '▼';
		color: #E3D9C5;
		font-size: 8px;
		position: absolute;
		top: 50%;
		right: 8%;
	}

	/* 英字部分だけ小さく & 薄い色 */
	.nav__list--en {
		font-size: 0.8em;
		color: #E3D9C5;
		letter-spacing: 0.02em;
	}

	.sp-nav__list a:hover {
		background: #f5f0e9;
		color: #404040;
	}

	/* WHAT */
	.what {
		margin-top: 0;
	}
	.what__container, 
	.menu__container {
		font-size: 18px;
		padding-block: 60px;
	}
	.what__desc, 
	.menu__desc {
		margin-block: 17px 47px;
	}

	.what__icons_sp {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 17px;
		max-width: 100%;
	}

	.what__icons--top,
	.what__icons--bottom {
		display: flex;
		gap: 20px;
	}

	/* 画像サイズをスマホ用に */
	.what__icons_sp img {
		width: 43%;
		max-width: 158.54px;
		aspect-ratio: 158.54 / 120.97;
		display: block;
		border-radius: 6.35px;
	}

	.what__icons_pc {
		display: none;
	}

	/* menu */
	.menu__nav {
		/* width: calc(100% + 40px); */
		width: 100vw;
		margin-left: -20px;
		margin-right: -20px;
	}

	.menu__btn--label {
		font-size: clamp(9px, 4.2vw, 17.8px);
	}

	.menu__label--accent {
		font-size: 8px;
	}

	.menu__contents {
		width: 100%;
		margin-inline: auto;
	}

	.menu__desc {
		font-size: var(--font-main-text-medium-sp);
	}

	.menu__title {
		font-size: 20px;
		padding-left: 19px;
		margin-bottom: 14px;
	}
	.menu__title::before {
		height: 22px;
		width: 9.5px;
	}
	.menu__img {
		width: 100%;
		max-width: 100%;
	}

	.menu__item-title {
		font-size: var(--font-main-text-medium-sp);
	}

	.menu__tag {
		width: 25%;
	}

	.menu__old-price {
		font-size: 21px;
	}

	.menu__old-price--yen {
		font-size: 12px;
	}

	.menu__new-price {
		font-size: min(13vw, 57px);
		padding-left: 26px;
	}

	.menu__new-price--yen {
		font-size: 36px;
	}

	.menu__new-price::before {
		width: 14px;
	}
/* FLOW */
	.flow__items--wrapper {
		overflow-x: auto;
		margin-top: 36px;
	}
	.flow__items_sp {
		display: flex;
		width: 1550px;
		gap: 0; 
		justify-content: center;
	}

	.flow__item:first-child {
		padding-left: 0;
	}
	.flow__item:last-child {
		padding-right: 0;
	}
	.flow__item {
		flex-direction: column;
		gap: 0;
		width: 310px;
		height: auto;
		position: relative;
		padding: 0 35px;
		flex-shrink: 0;
	}
	.flow__item:not(:last-child)::after {
		content: "";
		position: absolute;
		top: 82px;
		right: 0;            /* 余白ぶん外側へ */
		width: 1px;
		height: 352px;           /* ご指定の高さ */
		background: rgba(42, 40, 37, 0.5);     /* ご指定の色 */
	}
	.flow__number {
		font-family: var(--font-genei-latemin);
		display: flex;
		flex-direction: row;
		gap: 0;
		line-height: 1.08;
		font-size: 30px;
	}
	.flow__step {
		display: flex;
		font-size: 16px;
	}
	.flow__title {
		font-family: var(--font-shippori-mincho);
		line-height: 1.76;
		font-size: 23px;
		font-weight: 500;
		letter-spacing: -0.05em;
	}
	.flow__img {
		margin-block: 10px 14px;
		width: 100%;
	}
	.flow__text {
		font-size: 16px;
		font-weight: 400;
	}
}

@media (min-width: 769px) {
	.fixed-icon {
		display: none !important;
	}
}