@charset "UTF-8";
@import "https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Oswald:wght@700&display=swap";

* {
	box-sizing: border-box;
}
html {
	min-width: 375px;
}
@media (min-width: 768px) {
	html {
		min-width: 1000px;
	}
}

a {
	color: #1584C0;
	text-decoration: underline;
}
img,
svg {
	height: auto;
	max-width: 100%;
	object-fit: cover; /* 表示枠と画像の比率がずれた時の歪み防止 */
	pointer-events: none;
	vertical-align: middle;
}
ol,
ul,
dl,
dd {
	list-style: none;
	margin: 0;
	padding: 0;
	text-align: left;
}
section {
	position: relative;
}
summary {
	list-style: none;
}
table {
	border-spacing: 0;
}
p {
	margin: 0;
}
button {
	appearance: none;
	background: none;
	border: none;
	cursor: pointer;
	outline: none;
}
h1,
h2,
h3,
h4 {
	font-size: inherit;
	font-weight: normal;
	margin: 0;
	padding: 0;
}
sup {
	font-size: 10px;
	vertical-align: top;
}

body {
	background-color: #FFFFFF;
	color: #333333;
	font-family: "Avenir-Custom","Noto Sans JP", "メイリオ", Meiryo, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", sans-serif;
	font-size: 14px;
	-webkit-font-smoothing: antialiased;
	line-height: 1.5;
	margin: 0;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	width: 100%;
}

/* font */
@font-face {
	font-family: "Avenir-Custom";
	font-style: normal;
	font-weight: normal;
	src: local("Avenir Next"); /* iOSの標準フォント */
	unicode-range: U+0030-0039,
	U+0041-005A,
	U+0061-007A; /* 英数字 */
}
@font-face {
	font-family: "Avenir-Custom";
	font-style: normal;
	font-weight: 700;
	src: local("AvenirNext-DemiBold"); /* 600相当の太さ */
	unicode-range: U+0030-0039,
	U+0041-005A,
	U+0061-007A;
}
@font-face {
	font-family: "Avenir-Custom";
	font-style: normal;
	font-weight: 900;
	src: local("AvenirNext-Bold"); /* 700相当の太さ */
	unicode-range: U+0030-0039,
	U+0041-005A,
	U+0061-007A;
}

/* Utility */
.u-fw-bold {
	font-family: "Avenir-Custom", "Noto Sans JP", sans-serif;
	font-weight: 700;
}
.u-fw-heavy {
	font-family: "Avenir-Custom", "Noto Sans JP", sans-serif;
	font-weight: 900;
}


@media (max-width: 767px) {
	/* SPデザイン */
	.u-hidden-sp {
		display: none;
	}
}
@media (min-width: 768px) {
	/* PCデザイン */
	.u-hidden-pc {
		display: none;
	}
}

.u-ta-c {
	text-align: center;
}
.u-ta-l {
	text-align: left;
}
.u-c--attention {
	color: #F95D6E;
}

.u-fs10 {
	font-size: 10px;
}
.u-fs12 {
	font-size: 12px;
}
.u-fs14 {
	font-size: 14px;
}
.u-fs16 {
	font-size: 16px;
}
.u-fs18 {
	font-size: 18px;
}
.u-fs24 {
	font-size: 24px;
}
.u-fs28 {
	font-size: 28px;
}

.u-mT2 {
	margin-top: 2px;
}
.u-mT4 {
	margin-top: 4px;
}
.u-mT6 {
	margin-top: 6px;
}
.u-mT8 {
	margin-top: 8px;
}
.u-mT10 {
	margin-top: 10px;
}
.u-mT14 {
	margin-top: 14px;
}
.u-mT16 {
	margin-top: 16px;
}
.u-mT20 {
	margin-top: 20px;
}
.u-mT24 {
	margin-top: 24px;
}
.u-mT26 {
	margin-top: 26px;
}
.u-mT32 {
	margin-top: 32px;
}
.u-mT48 {
	margin-top: 48px;
}
.u-mT64 {
	margin-top: 64px;
}
.u-mT-1em {
	margin-top: 1em;
}

.u-pB40 {
	padding-bottom: 40px;
}
.u-pB42 {
	padding-bottom: 42px;
}

.u-gap4 {
	gap: 4px;
}
.u-gap2 {
	gap: 2px;
}

.u-img-mx343 {
	max-width: 343px;
	width: 100%;
}
.u-img-mx468 {
	max-width: 468px;
	width: 100%;
}

.u-icon-attention {
	align-items: center;
	display: flex;
	position: relative;
	text-align: left;
}
.u-icon-attention::before {
	background: url(../images/icon_warning.svg) no-repeat center / contain;
	content: "";
	display: inline-block;
	flex-shrink: 0;
	height: 20px;
	width: 20px;
}

.u-bB--black {
	border-bottom: 1.5px solid #000000;
}
.u-bg-gr--gray {
	background: linear-gradient(180deg, #FFFFFF 0%, rgba(243, 247, 248, 0.8) 100%);
}
.u-box--pink {
	background-color: #FFF3F6;
}

/* component */
.c-box {
	margin: 0 auto;
	padding: 0 16px;
}
@media (max-width: 767px) {
	/* SPデザイン */
	.c-box {
		max-width: 500px;
		min-width: 343px;
	}
}
@media (min-width: 768px) {
	/* PCデザイン */
	.c-box {
		width: 500px;
	}
}

/* arch */
.c-bk-arch {
	position: relative;
}
.c-bk-arch::before {
	background: no-repeat top center / cover;
	content: "";
	display: block;
	height: 74px; /* 隙間埋め 微調整+2 */
	left: 50%;
	position: absolute;
	top: -72px;
	transform: translateX(-50%);
	width: calc(100% + 2px); /* 隙間埋め 微調整+2 */
}
.c-bk-arch--white::before {
	background-image: url(../images/bg_arch_w.svg);
}
.c-bk-arch--entry::before {
	background-image: url(../images/bg_arch_y.svg);
}
.c-bk-arch__title {
	position: relative;
	top: -16px;
}

/* entry */
.c-bk-arch--entry {
	background-color: #FFEDC9;
}
.c-entry {
	margin: 0 auto;
	position: relative;
	top: -16px;
}
@media (max-width: 767px) {
	/* SPデザイン */
	.c-entry {
		max-width: 500px;
		min-width: 343px;
		padding: 0 16px;
	}
}
@media (min-width: 768px) {
	/* PCデザイン */
	.c-entry {
		width: 343px;
	}
}
.c-entry--archbtm {
	padding-bottom: calc(72px + 40px);
}
.c-entry-button__wrap {
	min-height: 119px; /* ボタン表示されるまでの高さを保持 */
}
.c-entry-button__wrap::after {
	background: url(../images/arrows.svg) no-repeat center / 100px 34px;
	content: "";
	display: block;
	height: 34px;
	margin: 16px 0;
}
.c-entry-button {
	align-items: center;
	border-radius: 200px;
	color: #FFFFFF;
	display: none;
	height: 69px;
	justify-content: center;
	line-height: 1.5;
	text-decoration: none;
	width: 100%;
}
.c-entry-button.is-active {
	display: flex;
	flex-flow: column;
}
.c-entry-button--open {
	background-color: #F95D6E;
	box-shadow: 0 6px #F5243B;
	font-size: 15px;
	font-weight: 700;
	transition: 0.3s;
}
.c-entry-button--open:hover {
	box-shadow: none;
	color: #FFFFFF;
	transform: translateY(6px);
}
.c-entry-button--completed {
	background-color: #909090;
}
.c-entry-button--heavy {
	font-size: 24px;
	font-weight: 900;
}
.c-entry-box {
	background-color: #FFFFFF;
	border-radius: 20px;
	overflow: hidden;
}
.c-entry-box__inner {
	margin: 0 16px 16px;
	padding-top: 15px;
}
:root {
	--triangle-border: calc(500px / 2);
	--triangle-vertical: 30px;
}
.c-entry-box__triangle {
	background-color: #FDCE42;
	margin: 0 0 var(--triangle-vertical);
	padding: 16px 29px 0;
	position: relative;
}
.c-entry-box__triangle::before {
	border-color: #FDCE42 transparent transparent transparent;
	border-style: solid;
	border-width: var(--triangle-vertical) var(--triangle-border) 0 var(--triangle-border);
	content: "";
	height: 0;
	left: 50%;
	position: absolute;
	top: calc(100% - 2px); /* 隙間埋め 微調整 */
	transform: translateX(-50%);
	width: 0;
}
.c-entry-box__logo {
	align-items: center;
	background: url(../images/app_icon.svg) no-repeat center left / 36px;
	color: #E56B8B;
	display: inline-flex;
	font-size: 16px;
	font-weight: 700;
	min-height: 36px;
	padding-left: 42px;
	width: 298px;
}
.c-entry-box__title {
	align-items: center;
	display: flex;
	font-size: 18px;
	gap: 16px;
	justify-content: center;
	line-height: 1;
	position: relative;
}
.c-entry-box__title::before,
.c-entry-box__title::after {
	content: "";
	height: 17px;
	width: 8px;
}
.c-entry-box__title::before {
	background: url(../images/line_black_left.svg) no-repeat center / contain;
}
.c-entry-box__title::after {
	background: url(../images/line_black_right.svg) no-repeat center / contain;
}
@media (max-width: 767px) {
	.c-entry-box__app {
		align-items: center;
		display: inline-flex;
		justify-content: space-between;
		margin-top: 16px;
		width: 296px;
	}
	.c-entry-box__app--salon {
		align-items: center;
		background-color: #FFFFFF;
		border: 2px solid #F95D6E;
		border-radius: 200px;
		box-shadow: 0 4px #F95D6E;
		color: #FA3348;
		display: flex;
		font-size: 16px;
		font-weight: 700;
		justify-content: center;
		min-height: 64px;
		padding: 0 20px;
		text-decoration: none;
		width: 100%;
	}
	.c-entry-box__app--salon::after {
		background: url(../images/icon_external_link.svg) no-repeat center / contain;
		content: "";
		display: block;
		flex-shrink: 0;
		height: 24px;
		margin-left: 8px;
		width: 24px;
	}
	.c-entry-box__app--salon__text {
		display: inline-flex;
		flex-wrap: wrap;
		justify-content: center;
	}
	.c-entry-box__text,
	.c-entry-box__QR {
		display: none;
	}
}
@media (min-width: 768px) {
	/* PCデザイン */
	.c-entry-box__app,
	.c-entry-box__app--salon {
		display: none;
	}
	.c-entry-box__text {
		color: #FA3348;
		font-size: 14px;
		margin-top: 8px;
	}
	.c-entry-box__QR {
		display: block;
	}
	.c-entry-box__QR-text {
		color: #879195;
		font-size: 10px;
	}
}

.c-entry-box__push {
	border-radius: 20px;
	padding: 14px 24px 0;
}
.c-entry-box__push--main {
	background-color: #FFF9FA;
	margin-top: 28px;
}
.c-entry-box__push--side {
	background-color: rgba(255,255,255,0.5);
	margin-top: 24px;
}
.c-entry-box__push-text {
	background: url(../images/icon_light.svg) no-repeat center left / 36px;
	font-size: 12px;
	min-height: 36px;
	padding-left: 36px;
	text-align: left;
}
.c-entry-button__notes {
	background-color: #FFFFFF;
	border-radius: 20px;
	margin-bottom: -34px;
	padding: 20px 14px 48px;
}
.c-entry-box__notes {
	margin: 12px auto 0;
}

.c-close-button {
	width: 32px;
	height: 32px;
	background: url(../images/icon_close_white.svg) no-repeat center / 24px;
}

.c-note {
	color: #879195;
	display: grid;
	font-size: 10px;
}

.c-list,
.c-list--marked {
	color: #6D6D6D;
	display: grid;
	font-size: 12px;
	gap: 4px;
}
.c-list > li,
.c-list--marked > li {
	position: relative;
}
.c-list > li::before,
.c-list--marked > li::before,
.c-list > li .symbol {
	content: "・";
	left: 0;
	position: absolute;
	text-align: center;
	top: 0;
	width: 24px;
}
.c-list--marked > li::before {
	content: "※";
}
.c-list:has(.symbol) li:before {
	content: none;
}
.c-list + table,
table + .c-list {
	margin-top: 24px;
}
.c-list + .c-list {
	margin-top: 4px;
}

/* header */
.l-header-logo__link {
	display: block;
}
@media (max-width: 767px) {
	.l-header-logo {
		padding: 8px 10px;
	}
	.l-header-logo__link {
		width: 88px;
	}
}
@media (min-width: 768px) {
	.l-header {
		background-color: #FFFFFF;
		padding: 22px 0 11px;
	}
	.l-header-logo__link {
		width: 130px;
	}
	.l-header__wrap {
		display: flex;
		justify-content: space-between;
		margin: 0 auto;
		max-width: 1000px;
		padding: 0 5px;
	}
}
.l-header-text {
	border-top: 1px solid #CCCCCC;
}
.l-header-text__heading {
	padding: 6px 10px;
}

/* footer */
.l-footer {
	background-color: #FFFFFF;
	padding: 18px 0 26px;
	position: relative; /* stickyの突き抜け対応 */
}
.l-footer a {
	text-decoration: none;
}
.l-footer-navi__list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}
.l-footer-navi__item {
	margin-left: 5px;
	padding-right: 5px;
}
.l-footer-navi__item:not(:last-of-type) {
	border-right: 1px solid #DDDDDD;
}
.l-footer-navi__item a {
	color: #4C4C80;
	font-size: 12px;
}
.l-footer-navi__item a:hover {
	color: #7878CC;
	text-decoration: underline;
}
.l-footer-copyright {
	align-items: flex-start;
	display: flex;
	flex-direction: column;
}
.l-footer-copyright__rls {
	align-items: baseline;
	display: inline-flex;
	gap: 10px;
}
.l-footer-copyright__rls-img,
.l-footer-copyright__rls-txt {
	display: inline-block;
	vertical-align: bottom;
}
.l-footer-copyright__rls-txt {
	color: #435B67;
	font-family: Meiryo,"Hiragino Kaku Gothic ProN","Hiragino Sans",sans-serif;
}
.l-footer-copyright__rls-img {
	max-width: 100px;
}
@media (max-width: 767px) {
	/* SPデザイン */
	.l-footer-wrap {
		padding: 0 10px;
	}
	.l-footer-navi__list {
		margin: 0 auto -10px;
		width: 260px;
	}
	.l-footer-navi__item {
		margin-bottom: 10px;
	}
	.l-footer-copyright {
		margin-top: 15px;
	}
}
@media (min-width: 768px) {
	/* PCデザイン */
	.l-footer-wrap {
		align-items: center;
		display: flex;
		flex-direction: row-reverse;
		justify-content: space-between;
		margin: 0 auto;
		max-width: 1000px;
		padding: 0 5px;
	}
}

/* SNS */
.l-snsArea {
	margin: 60px auto 80px;
}
.l-snsArea__title {
	font-size: 20px;
	font-weight: 700;
	text-align: center;
}
.l-snsArea__inner {
	column-gap: 40px;
	display: flex;
	margin: 32px auto 0;
	width: 224px;
}
.l-snsArea__inner li a {
	display: block;
	height: 48px;
	width: 48px;
}

/* iOS26のナビバー（透過）に背景を足す */
.l-safari-protector {
	display: none;
}
@media (max-width: 767px) {
	/* SP オーバーレイ表示時 */
	.l-safari-protector.is-active {
		display: block;
	}
	.l-safari-protector__trigger {
		display: block;
		position: fixed;
		transform: translate3d(0, 0, -1px); /* GPU用 */
		z-index: -1;
	}
	.l-safari-protector__cover::before,
	.l-safari-protector__cover::after {
		background: #FFFFFF;
		content: "";
		height: 200px;
		position: fixed;
		width: 100%;
		z-index: 99; /* コンテンツの最大値にする */
	}
	.l-safari-protector__cover::before {
		top: -200px;
	}
	.l-safari-protector__cover::after {
		bottom: -200px;
	}
}
