@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&display=swap');
@import url('https://use.typekit.net/esu3ubd.css');

/* ----------------------------------------

	共通設定

---------------------------------------- */

/*
	変数
*/
/* SP・PC共通、SP専用 */
:root {
	/* width */
	--w-spDesign: 414;
	--w-spContents: calc(var(--w-spDesign) - var(--pd-spHNum) * 2);
	--w-pcDesign: 1000;
	
	/* padding */
	--pd-spH: 24px;
	--pd-spHNum: 24;
	--pd-pcH: 50px;
	--pd-pcHContents: 100px;
	
	/* border-radius */
	--br-basic: 12px;
	
	/* color */
	--cl-brand01: #004EA2; /* rgba(0, 78, 162) */
	
	--cl-note: #888;
	
	--cl-bg02: #E9F3FF;
	
	--cl-line: #06c755;
	
	/* linear-gradient */
	--lg-brand02: linear-gradient(15deg, var(--cl-brand01) 0%, #009BFA 100%);
	
	/* font-family */
	--ff-basic: 'Noto Sans JP', sans-serif;
	--ff-stylish: 'futura-pt', 'Noto Sans JP', sans-serif;
	
	/* font-size */
	--fs-basic: 14px;
	--fs-small: 10px;
	
	/* font-weight */
	--fw-normal: 400;
	--fw-regular: 400;
	--fw-book: 400;
	--fw-medium: 500;
	--fw-bold: 700;
	
	/* letter-spacing */
	--ls-basic: 0.05em;
	
	/* line-height */
	--lh-basic: 2.0;
	--lh-small: 1.5;
	
	/* box-shadow */
	--bs-basic: 0 0 20px 0 rgba(0, 78, 162, 0.2);
	
	/* フォントサイズ調整分：デザイン幅から小さくなった分だけ、係数分フォントサイズを縮小する。末尾の数字が係数 */
	--spfs-diff: calc((var(--w-spDesign) * 1px - 100dvw) / var(--w-spDesign) * -5);
}
/* PC専用 */
@media (width > 768px) {
	:root {
		/* border-radius */
		--br-basic: 16px;
		
		/* font-size */
		--fs-basic: 16px;
		--fs-small: 12px;
	}
}


/*
	基本要素の設定
*/
section[id^="popup"] :is(img, video) {
	display: block;
	width: 100%;
	height: auto;
}

section[id^="popup"] :is(a, button) {
	text-decoration: none;
	cursor: pointer;
	transition: opacity 300ms ease;
}
section[id^="popup"] :is(a, button):hover {
	opacity: 1;
}
@media (width > 768px) {
	section[id^="popup"] :is(a, button):hover {
		opacity: 0.5;
	}
}


/*
	ページレイアウト
*/
section[id^="popup"] {
	color: var(--cl-brand01);
	font-family: var(--ff-basic);
	font-size: var(--fs-basic);
	font-weight: var(--fw-normal);
	letter-spacing: var(--ls-basic);
	line-height: var(--lh-basic);
}
section[id^="popup"] * {
	font: inherit;
	letter-spacing: var(--ls-basic);
}

@media (width <= 768px) {
	section[id^="popup"] .pcOnly {
		display: none;
	}
}
@media (width > 768px) {
	section[id^="popup"] .spOnly {
		display: none;
	}
}

section[id^="popup"] .contentInner {
	width: 100%;
	padding: 0 var(--pd-spH);
}
@media (width > 768px) {
	section[id^="popup"] .contentInner {
		max-width: calc(var(--w-pcDesign) * 1px + var(--pd-pcH) * 2);
		margin: 0 auto;
		padding: 0 var(--pd-pcH);
	}
}


/*
	タイトル
*/

/* 両脇ダイヤ付き */
section[id^="popup"] .ttlStyle01 {
	--diamondw: min(17px, calc(17 / var(--w-spDesign) * 100dvw));
	
	display: flex;
	justify-content: center;
	align-items: center;
	width: fit-content;
	max-width: 100%;
	min-height: min(38px, calc(38 / var(--w-spDesign) * 100dvw));
	margin: 0 auto 40px;
	padding: 0 calc(var(--diamondw) + min(19px, calc(19 / var(--w-spDesign) * 100dvw)));
	background:
		url("/popup/images/img_jewel.webp") no-repeat left center / var(--diamondw) auto,
		url("/popup/images/img_jewel.webp") no-repeat right center / var(--diamondw) auto;
	font-family: var(--ff-stylish);
	font-size: min(19px, calc(19 / var(--w-spDesign) * 100dvw + var(--spfs-diff)));
	font-weight: var(--fw-medium);
	line-height: var(--lh-title);
	text-align: center;
	white-space: nowrap;
}
@media (width > 768px) {
	section[id^="popup"] .ttlStyle01 {
		min-height: 67px;
		margin-bottom: 90px;
		padding: 0 calc(32px + 30px);
		background-size: 32px auto, 32px auto;
		font-size: 28px;
		white-space: normal;
	}
}


/*
	ボタン・リンク
*/

/* 青グラデーション両側丸めボタン */
section[id^="popup"] .btnStyle01 {
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	width: min(318px, calc(318 / var(--w-spContents) * 100dvw));
	max-width: 100%;
	height: 56px;
	margin: 0 auto;
	padding: 0 min(30px, 8%) 2px;
	background: var(--lg-brand02) no-repeat center / cover;
	border-radius: 28px;
	color: #fff;
	font-size: min(14px, calc(calc(14 / var(--w-spContents) * 100dvw + var(--spfs-diff) * 2)));
	font-weight: var(--fw-bold);
	white-space: nowrap;
}
@media (width > 768px) {
	section[id^="popup"] .btnStyle01 {
		width: 366px;
		height: 64px;
		border-radius: 32px;
		font-size: min(16px, calc(16 / var(--w-pcDesign) * 100dvw));
	}
}
section[id^="popup"] .btnStyle01::after {
	content: '';
	display: block;
	position: absolute;
	right: 6%;
	top: 50%;
	width: 0.61em;
	aspect-ratio: 1;
	border: 1px currentColor;
	border-style: solid solid none none;
	translate: 0 -50%;
	rotate: 45deg;
}

/* 上記ボタンのLINEver */
section[id^="popup"] .btnStyle01.line {
	padding-left: min(30px, 8%);
	padding-left: min(45px, 12%);
	background: var(--cl-line);
}
@media (width <= 768px) {
	section[id^="popup"] .btnStyle01.line {
		font-size: min(14px, calc(calc(14 / var(--w-spContents) * 100dvw + var(--spfs-diff) * 3)));
	}
}
section[id^="popup"] .btnStyle01.line::before {
	content: '';
	display: block;
	position: absolute;
	left: 50%;
	top: 0;
	width: calc(82 / 318 * 100%);
	aspect-ratio: 82 / 30;
	background: url("images/img_lineticket.webp") no-repeat center / contain;
	translate: -50% -50%;
}
@media (width > 768px) {
	section[id^="popup"] .btnStyle01.line::before {
		width: calc(101 / 366 * 100%);
	}
}
section[id^="popup"] .btnStyle01.line .brand {
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	left: 5%;
	top: 50%;
	width: 51px;
	height: 30px;
	background: #fff;
	border-radius: 15px;
	color: var(--cl-line);
	translate: 0 -50%;
}
@media (width > 768px) {
	section[id^="popup"] .btnStyle01.line .brand {
		width: 58px;
		height: 34px;
		border-radius: 17px;
	}
}

/* 上記ボタンの白背景青ラインver */
section[id^="popup"] .btnStyle01.wht {
	background: #fff url("/popup/images/icon.svg") no-repeat calc(30 / 318 * 100%) center / 30px auto;
	border: 1px solid currentColor;
	color: var(--cl-brand01);
}
@media (width > 768px) {
	section[id^="popup"] .btnStyle01.wht {
		background-position: calc(30 / 366 * 100%) center;
		background-size: 34px auto;
	}
}


/* ----------------------------------------

	ホームホワイトニングページ用設定

---------------------------------------- */

/*
	ページレイアウト
*/

/* ページ全体のレイアウト */
#popup {
	display: flex;
	flex-direction: column;
	min-height: 100dvh;
	padding-top: 70px !important;
}

#popup main {
	flex: 1 0 auto;
	display: flex;
	flex-direction: column;
}

#popup footer {
	flex: 0 0 auto;
	min-width: 0;
}


/*
	セクション
*/

/* popupContents */
#popupContents {
	flex: 1 0 auto;
	padding: 36px 0 22px;
	background: var(--cl-bg02);
}
@media (width > 768px) {
	#popupContents {
		padding: 102px 0 59px;
	}
}

#popupContents .links .box {
	padding: var(--pd-spH) var(--pd-spH) 48px;
	background: #fff;
	border-radius: var(--br-basic);
	box-shadow: var(--bs-basic);
}
@media (width > 768px) {
	#popupContents .links .box {
		padding: 40px var(--pd-pcHContents) 52px;
	}
}
#popupContents .links .box:nth-child(n+2) {
	margin-top: var(--pd-spH);
}
@media (width > 768px) {
	#popupContents .links .box:nth-child(n+2) {
		margin-top: 44px;
	}
}

#popupContents .links dt {
	font-weight: var(--fw-medium);
	text-align: center;
}
@media (width > 768px) {
	#popupContents .links dt {
		font-size: 20px;
	}
}

#popupContents .links dd {
	margin-top: var(--pd-spH);
}
@media (width > 768px) {
	#popupContents .links dd {
		margin-top: 40px;
	}
}

#popupContents .note {
	margin-top: 48px;
	color: var(--cl-note);
	font-size: var(--fs-small);
	line-height: var(--lh-small);
	text-align: center;
}
@media (width > 768px) {
	#popupContents .note {
		margin-top: 60px;
	}
}
