@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@100..900&family=Noto+Sans+JP:wght@500..900&family=Roboto:wght@400..700&display=swap');
* {
		margin: 0;
		padding: 0;
}
html {
		overflow-y: scroll;
}
img {
		border: none;
		vertical-align: top;
}
.container {
		overflow: hidden
}
body {
		font-size: 16px;
		font-family: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
		font-weight: 500;
		line-height: 1;
		-webkit-text-size-adjust: 100%;
		-webkit-font-smoothing: antialiased;
		background: #fff;
}
main {
		background: #E60012;
		overflow: hidden;
		padding-bottom: 5px;
		margin-bottom: -5px;
}
h1, h2, h3, h4, h5, h6, p, li {
		font-feature-settings: "palt";
		letter-spacing: 0.05em;
}
.bodyLock {
		overflow: hidden
}
@media(max-width: 767px) {
		.spLock {
				overflow: hidden;
		}
}
.header_logo {
		position: fixed;
		top: 30px;
		left: 40px;
		width: 270px;
		z-index: 40
}
.header_logo img {
		width: 100%;
		height: auto;
}
.desktop_nav {
		position: fixed;
		right: 40px;
		top: 35px;
		padding: 0 20px;
		height: 64px;
		background: #fff;
		border-radius: 10px;
		display: flex;
		justify-content: center;
		align-items: center;
		z-index: 100
}
.desktop_nav ul {
		display: flex;
		justify-content: center;
		list-style: none;
		font-weight: 600;
}
.desktop_nav li {
		margin: 0 10px;
		font-weight: 700;
}
.desktop_nav li a {
		color: #4D171B;
		text-decoration: none;
		display: inline-block;
		padding: 0 10px
}
.desktop_nav li span {
		position: relative;
}
.desktop_nav li span::after {
		content: '';
		display: block;
		position: absolute;
		bottom: -3px;
		left: 0;
		width: 100%;
		height: 2px;
		background: #4D171B;
		transform-origin: left center;
		transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
		transform: scaleX(0);
}
@media (hover: hover) {
		.desktop_nav li a:hover span::after {
				transform: scaleX(1);
		}
}
@media(max-width: 1024px) {
		.header_logo {
				top: 30px;
				left: 25px;
				width: 216px;
		}
		.desktop_nav {
				position: fixed;
				right: 25px;
				top: 30px;
				padding: 0 10px;
				height: 50px;
		}
		.desktop_nav li {
				margin: 0 10px
		}
		.desktop_nav li a {
				padding: 0 10px
		}
}
@media(min-width: 768px) {
		.sp_nav {
				display: none
		}
}
@media(max-width: 767px) {
		.desktop_nav {
				display: none;
		}
		.header_logo {
				top: 20px;
				left: 50%;
				width: 176px;
				transform: translateX(-88px);
				position: absolute;
		}
		.sp_nav {
				z-index: 1000;
				position: fixed;
				top: 20px;
				right: 20px;
				width: 48px;
				height: 48px;
				background: #fff;
				border-radius: 50%;
				cursor: pointer;
				display: flex;
				justify-content: center;
				align-items: center;
		}
		.sp_nav::before, .sp_nav::after {
				content: '';
				display: block;
				position: absolute;
		}
		.sp_nav::before {
				background: #facb80;
				height: 2px;
				width: 26px;
				top: 18px;
				left: 11px;
				border-radius: 60px;
		}
		.sp_nav::after {
				width: 22px;
				height: 8px;
				background: #915d45;
				top: 15px;
				left: 10px;
				border-radius: 1px;
				transform-origin: right center;
				transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
		}
		.sp_nav.navOpen::after {
				transform: scaleX(0)
		}
		.sp_nav_txt {
				font-family: "Montserrat", sans-serif;
				font-optical-sizing: auto;
				font-weight: 700;
				font-style: normal;
				font-size: 8px;
				margin: 0;
				letter-spacing: 0;
				line-height: 1;
				text-align: center;
				transform: translateY(7px);
				color: #4D171B;
		}
}
/* =========== */
.pagetitle {
		display: flex;
		flex-direction: column-reverse;
		margin: 0 0 40px;
}
.pagetitle_center {
		display: flex;
		justify-content: center;
}
.pagetitle.wht {
		color: #fff;
}
.pagetitle h2 {
		font-size: 56px;
		font-weight: 700;
}
.pagetitle .en {
		font-family: "Montserrat", sans-serif;
		font-optical-sizing: auto;
		font-weight: 700;
		font-style: normal;
		font-size: 32px;
		margin: 0 0 10px;
		letter-spacing: 0;
		line-height: 1;
}
.pagetitle .en span {
		display: inline-block;
		padding-left: 55px;
		position: relative;
}
.pagetitle .en span::after {
		content: '';
		display: block;
		position: absolute;
		top: calc(50% - 6px);
		left: 0;
		width: 43px;
		height: 12px;
		background-repeat: no-repeat;
		background-position: 0 0;
		background-size: 43px;
}
.pagetitle .en span.choco::after {
		background-image: url("../re_images/pagetitle_icon_choco.png")
}
.pagetitle .en span.vanilla::after {
		background-image: url("../re_images/pagetitle_icon_choco.png")
}
@media(max-width: 960px) {
		.pagetitle h2 {
				font-size: 40px;
		}
		.pagetitle .en {
				font-size: 24px;
		}
}
/* =============== */
.link_btn {
		width: 200px;
		margin-top: 30px;
		font-weight: 700;
}
.link_btn a {
		display: flex;
		align-items: center;
		justify-content: center;
		height: 56px;
		box-sizing: border-box;
		border: 2px solid #E60012;
		background: #E60012;
		border-radius: 60px;
		color: #fff;
		text-decoration: none;
		transition: background 0.4s;
}
@media (hover: hover) {
		.link_btn a:hover {
				background: #fff;
				color: #E60012;
		}
}
.link_btn a span.blank {
		transform: translateY(-1px) translateX(-15px);
		position: relative;
		display: inline-block;
}
.link_btn a span.blank::before, .link_btn a span.blank::after {
		content: '';
		display: block;
		position: absolute;
}
.link_btn a span.blank::before {
		top: calc(50% - 3px);
		right: -18px;
		width: 8px;
		height: 8px;
		border-left: 2px solid #fff;
		border-bottom: 2px solid #fff;
}
.link_btn a span.blank::after {
		top: calc(50% - 7px);
		right: -22px;
		width: 10px;
		height: 10px;
		background: #fff;
}
@media(max-width: 767px) {
		.link_btn a span.blank::before {
				top: calc(50% - 3px);
				right: -15px;
				width: 7px;
				height: 7px;
		}
		.link_btn a span.blank::after {
				top: calc(50% - 7px);
				right: -19px;
				width: 9px;
				height: 9px;
		}
}
@media (hover: hover) {
		.link_btn a:hover span.blank::before {
				border-left: 2px solid #E60012;
				border-bottom: 2px solid #E60012;
		}
		.link_btn a:hover span.blank::after {
				background: #E60012;
		}
		.link_btn a span.blank {
				transform: translateY(-1px) translateX(-10px);
		}
}
@media(max-width: 767px) {
		.link_btn {
				width: 180px;
				font-size: 14px;
		}
		.link_btn a {
				height: 50px;
		}
}
/* =========== */
@media(max-width: 767px) {
		.pagetitle h2 {
				font-size: 32px;
		}
		.pagetitle .en {
				font-size: 16px;
				margin: 0 0 7px;
		}
		.pagetitle .en span {
				padding-left: 35px;
		}
		.pagetitle .en span::after {
				top: calc(50% - 4px);
				width: 28px;
				height: 8px;
				background-size: 28px;
		}
}
/* =============== */
.footer_x {
		max-width: 472px;
		margin: 200px auto 0;
		position: relative;
		transition: transform 1s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.4s;
		opacity: 0;
		transform: translateX(200px);
		z-index: 5
}
.footer_x a {
		text-decoration: none;
		color: #4D171B;
}
.footer_x .footerX_txt {
		position: absolute;
		top: 0;
		left: 105px;
		width: 250px;
		height: 110px;
		display: flex;
		align-items: center;
		transition: transform 1s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.4s;
		opacity: 0;
		transform: translateX(50px);
		transition-delay: 0.12s;
}
.footerX_txt p {
		font-size: 19px;
		font-weight: 800;
		line-height: 1.4;
}
.footer_x .x_ataru {
		position: absolute;
		width: 95px;
		top: -90px;
		right: 88px;
		transform: translateY(-300px);
		opacity: 0;
}
.x_ataru::after {
		content: '';
		display: block;
		position: absolute;
		top: 20px;
		left: 97px;
		width: 90px;
		height: 52px;
		background-repeat: no-repeat;
		background-position: 0 0;
		background-size: 90px;
		background-image: url("../re_images/footer_x_ataru_voice.png");
		transform-origin: left center;
		transition: transform 0.2s, opacity 0.3s;
		transition-delay: 0.82s;
		transform: rotate(-13.2deg) translateX(-30px);
		opacity: 0;
}
.footer_x.isActive {
		opacity: 1;
		transform: translateX(0);
}
.footer_x.isActive .footerX_txt {
		opacity: 1;
		transform: translateX(0);
}
.isActive .x_ataru {
		animation: dropIn 0.8s cubic-bezier(0.5, 0, 0.75, 0) forwards;
		animation-delay: 0.15s;
}
.isActive .x_ataru::after {
		opacity: 1;
		transform: rotate(-13.2deg) translateX(0px);
}
@keyframes dropIn {
		0% {
				transform: translate3d(0, -300px, 0);
				opacity: 0;
		}
		50% {
				opacity: 1;
		}
		70% {
				transform: translate3d(0, 0, 0);
				opacity: 1;
		}
		75% {
				transform: translate3d(0, -15px, 0);
				opacity: 1;
		}
		85% {
				transform: translate3d(0, 0, 0);
				opacity: 1;
		}
		95% {
				transform: translate3d(0, -4px, 0);
				opacity: 1;
		}
		100% {
				transform: translate3d(0, 0, 0);
				opacity: 1;
		}
}
.footer_x img {
		width: 100%;
		height: auto
}
footer {
		padding-top: 120px;
		padding-bottom: 60px;
		background: #E60012;
		color: #fff;
}
.footer_inner {
		max-width: 1280px;
		margin: 0 auto;
		padding: 0 30px;
		display: flex;
		justify-content: space-between;
		align-items: flex-end;
}
.footer_inner a {
		color: #fff;
		text-decoration: none;
}
.footer_link {
		display: flex;
		align-items: center;
		list-style: none
}
.footer_link li {
		margin-right: 60px;
		font-size: 14px;
}
.footer_link li:last-child {
		margin-right: 0;
}
.footer_link li span {
		display: inline-block;
		position: relative;
}
.footer_link li span::after {
		content: '';
		display: block;
		position: absolute;
		bottom: -6px;
		left: 0;
		width: 100%;
		height: 1px;
		background: #fff;
		transform-origin: left center;
		transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
		transform: scaleX(0)
}
@media (hover: hover) {
		.footer_link li a:hover span::after {
				transform: scaleX(1)
		}
}
.footer_logo {
		margin: 0 0 20px;
		position: relative;
}
.footer_logo_logo {
		width: 114px;
}
.footer_logo_logo img {
		width: 100%;
		height: auto;
}
.footer_logo p {
		font-size: 10px;
		position: absolute;
		bottom: 0;
		left: 53px
}
.copy {
		font-family: 'Roboto', sans-serif;
		font-size: 12px;
		letter-spacing: 0;
		font-weight: 400;
}
@media(max-width: 960px) {
		.footer_link li {
				margin-right: 20px;
		}
}
@media(max-width: 767px) {
		.footer_x {
				max-width: 250px;
				margin: 120px auto 0;
				transform: translateX(100px);
				padding: 0 20px;
		}
		.footer_x .footerX_txt {
				left: 66px;
				width: 145px;
				height: 53px;
		}
		.footerX_txt p {
				font-size: 13px;
				line-height: 1.3;
		}
		.footer_x .x_ataru {
				width: 47px;
				top: -26px;
				right: 24px;
				transform: translateY(-200px);
		}
		.x_ataru::after {
				top: 2px;
				left: 47px;
				width: 60px;
				height: 34px;
				background-size: 60px;
				transform: rotate(-13.2deg) translateX(-30px);
		}
		footer {
				padding-top: 140px;
				padding-bottom: 20px;
				background: #E60012;
		}
		.footer_inner {
				padding: 0 20px;
				display: block;
		}
		.footer_link {
				display: block;
		}
		.footer_link li {
				margin: 0 0 20px;
				text-align: center;
		}
		.footer_link li:last-child {
				margin: 0;
		}
		.footer_link li span {
				display: inline-block;
				position: relative;
		}
		.footer_logo {
				margin: 50px auto 30px;
				width: 240px;
		}
		.footer_logo_logo {
				width: 114px;
		}
		.copy {
				font-size: 11px;
				text-align: center;
		}
}
@media(max-width: 400px) {
		.x_ataru::after {
				width: 50px;
				height: 34px;
				background-size: 50px;
		}
}
/* ========== */
@media(min-width: 768px) {
		.navBoard, .navOverlay {
				display: none !important
		}
}
.navBoard {
		display: none;
		z-index: 50;
		position: fixed;
		left: 0;
		top: 0;
		width: 100%;
		height: 100vh;
}
.navBoard_wrap {
		margin: 20px 15px;
		background-color: #fff;
		height: 100%;
		border-radius: 14px;
		box-shadow: rgba(0, 0, 0, 0.2) -2px 4px 16px;
		position: relative;
		z-index: 100;
		overflow: hidden
}
.navBoard_wrap::before, .navBoard_wrap::after {
		content: '';
		display: block;
		position: absolute;
		bottom: 0;
		left: 2.5vw;
		width: 325px;
		pointer-events: none;
		background-repeat: no-repeat;
		background-position: center bottom;
		background-size: 100%;
		transform-origin: center bottom;
}
.navBoard_wrap::before {
		transform-origin: center bottom;
		background-image: url("../re_images/navBoard_wrap_txt.png");
		height: 125px;
		bottom: 18px;
		left: calc(50% - 162.5px);
		transform: rotate(180deg);
		transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
.isVisible .navBoard_wrap::before {
		animation: navTxt 1.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
@keyframes navTxt {
		0% {
				transform: rotate(180deg);
		}
		100% {
				transform: rotate(0deg);
		}
}
.navBoard_wrap::after {
		background-image: url("../re_images/navBoard_wrap_ataru.png");
		height: 240px;
		left: calc(calc(50% - 162.5px) + 5px)
}
.navBoard_inner {
		padding: 50px;
}
.navBoard_inner ul {
		list-style: none;
}
.navBoard_inner a {
		color: #4D171B;
		text-decoration: none;
		padding-left: 40px;
		position: relative;
}
.navBoard_inner a::before {
		content: '';
		display: block;
		position: absolute;
		top: 13px;
		left: 0;
		width: 32px;
		height: 9px;
		background-repeat: no-repeat;
		background-position: center center;
		background-size: 32px;
}
#toppage .top_mn a::before {
		background-image: url("../re_images/icon_navCarrent.png")
}
#campaign .campaign_mn a::before {
		background-image: url("../re_images/icon_navCarrent.png")
}
.navBoard_inner li {
		font-size: 22px;
		font-weight: 700;
		margin: 0 0 20px;
}
#toppage li.top {}
.nav_overlay {
		position: fixed;
		top: 0;
		left: 0;
		background: rgba(255, 255, 255, 0.8);
		width: 100%;
		height: 100vh;
		z-index: 10;
}
/* ============== */
.campaign_hgroup {
		display: flex;
		justify-content: center;
		margin: 120px 0 50px;
}
.pagetitle_center {
		position: relative;
}
.campaign_title_wrap {
		display: flex;
		justify-content: center;
		padding-top: 50px;
}
.pagetitle_center .campaign_bg {
		position: absolute;
		top: -50px;
		left: -320px;
		width: 317px;
}
@media(max-width: 767px) {
		.pagetitle_center .campaign_bg {
				top: 55px;
				left: -78px;
				width: 120px;
		}
		.campaign_title_wrap {
				padding-top: 30px;
		}
}
.pagetitle_center .pagetitle {
		text-align: center;
		margin: 0;
}
.pagetitle_center .pagetitle .en span {
		padding-left: 0;
		padding-right: 0;
}
.pagetitle_center .pagetitle .en span.vanilla::before, .pagetitle_center .pagetitle .en span.vanilla::after {
		content: '';
		display: block;
		position: absolute;
		top: calc(50% - 6px);
		left: inherit;
		width: 43px;
		height: 12px;
		background-repeat: no-repeat;
		background-position: 0 0;
		background-size: 43px;
}
.pagetitle_center .pagetitle .en span.vanilla::before {
		background-image: url("../re_images/pagetitle_icon_vanilla_L.png");
		left: -55px
}
.pagetitle_center .pagetitle .en span.vanilla::after {
		background-image: url("../re_images/pagetitle_icon_vanilla_R.png");
		right: -55px
}
/* ============== */
footer {
		position: relative;
}
footer .pagetop {
		width: 80px;
		height: 80px;
		cursor: pointer;
		position: absolute;
		right: 40px;
		top: -40px;
		background: #E60012;
		color: #fff !important;
}
.pagetop img {
		border-radius: 50%;
		width: 100%;
		height: auto;
		border: 2px solid #fff;
		position: relative;
		background: #E60012;
		z-index: 1
}
.pagetop::before {
		content: '';
		display: block;
		position: absolute;
		cursor: pointer;
		top: 34px;
		left: -115px;
		width: 145px;
		height: 115px;
		background-repeat: no-repeat;
		background-position: 0 0;
		background-size: 145px;
		background-image: url("../re_images/pagetop.png");
		z-index: 0
}
@media (hover: hover) {
		.pagetop:hover::before {
				background-image: url("../re_images/pagetop_on.png")
		}
}
@media(max-width: 767px) {
		footer .pagetop {
				width: 60px;
				height: 60px;
				right: 25px;
				top: 20px;
		}
		.pagetop img {
				border: 1px solid #fff;
		}
		.pagetop::before {
				top: 30px;
				left: -85px;
				width: 110px;
				height: 85px;
				background-size: 110px;
		}
}
@media(max-width: 767px) {
		.pcbr {
				display: none
		}
}
/* ============== */
.section_footer {
		padding-top: 10px;
		padding-bottom: 60px;
		background: #E60012;
		margin-top: 180px;
}
@media(max-width: 767px) {
		#gallery .section_footer {
				margin-top: 0;
		}
}
/* ============== */
.faq_gr {
		display: flex;
		justify-content: center;
		align-items: center;
		padding: 80px 0;
}
.faq_gr_inner {
		position: relative;
}
.faq_gr_inner::after {
		content: '';
		display: block;
		position: absolute;
		top: 5px;
		right: -130px;
		width: 115px;
		height: 152px;
		background-repeat: no-repeat;
		background-position: 0 0;
		background-size: 115px;
		background-image: url("../re_images/faq_bg.png")
}
.faq_gr p {
		font-weight: 500;
		line-height: 1.8;
		text-align: center;
		margin: 0 0 15px;
		color: #fff;
		font-size: 20px;
}
.faq_btn {
		justify-content: center;
		font-family: 'Noto Sans JP', sans-serif;
		font-size: 22px;
		font-weight: 700;
}
.faq_btn a {
		display: flex;
		justify-content: center;
		align-items: center;
		text-decoration: none;
		text-align: center;
		background: #fff;
		color: #4D171B;
		height: 80px;
		border-radius: 60px;
		padding: 0 35px;
		position: relative;
		width: 400px;
		box-sizing: border-box;
		transition: background 0.3s;
		border: 2px solid #fff;
}
.faq_btn a span {
		display: inline-block;
		transform: translateY(-1px) translateX(-12px);
		position: relative;
}
.faq_btn span::after {
		content: '';
		display: block;
		position: absolute;
		right: -25px;
		top: calc(50% - 9px);
		width: 0;
		height: 0;
		border-style: solid;
		border-top: 10px solid transparent;
		border-bottom: 10px solid transparent;
		border-left: 14px solid #E60012; /* ← 色をここで指定 */
		border-right: 0;
		pointer-events: none;
}
@media(max-width: 767px) {
		.faq_gr_inner::after {
				top: inherit;
				bottom: 0;
				right: -50px;
				width: 60px;
				height: 80px;
				background-size: 60px;
		}
		.faq_gr p {
				font-size: 16px;
		}
		.faq_btn {
				font-size: 16px;
		}
		.faq_btn a {
				height: 56px;
				padding: 0 15px;
				width: 220px;
		}
		.faq_btn a span::after {
				right: -20px;
				top: calc(50% - 7.1px);
				border-style: solid;
				border-top: 7px solid transparent;
				border-bottom: 7px solid transparent;
				border-left: 10px solid #E60012; /* ← 色をここで指定 */
				border-right: 0;
		}
		.faq_btn a span {
				transform: translateY(-1px) translateX(-10px);
		}
}
@media (hover: hover) {
		.faq_btn a:hover {
				background: #E60012;
				color: #fff;
		}
		.faq_btn a:hover span::after {
				border-left-color: #fff;
		}
}
.campaign_btn_center {
		display: flex;
		justify-content: center;
		font-size: 22px;
		font-weight: 700;
}
.campaign_btn_center span {
		font-weight: 700;
		display: inline-block;
		transform: translateX(12px) translateY(-1px)
}
.campaign_btn_center a {
		display: flex;
		justify-content: center;
		align-items: center;
		text-decoration: none;
		text-align: center;
		background: #fff;
		color: #4D171B;
		height: 80px;
		border-radius: 60px;
		padding: 0 35px;
		position: relative;
		width: 400px;
		box-sizing: border-box;
		border: 2px solid #fff;
		transition: background 0.3s;
}
.campaign_btn_center span {
		position: relative;
		display: inline-block;
}
.campaign_btn_center span::after {
		content: '';
		display: block;
		position: absolute;
		left: -25px;
		top: calc(50% - 8px);
		width: 0;
		height: 0;
		border-style: solid;
		border-top: 10px solid transparent;
		border-bottom: 10px solid transparent;
		border-right: 14px solid #E60012; /* ← 色をここで指定 */
		border-left: 0;
		pointer-events: none;
}
@media(max-width: 767px) {
		.campaign_btn_center {
				font-size: 16px;
		}
		.campaign_btn_center a {
				height: 56px;
				border-radius: 60px;
				padding: 0 20px;
				width: 280px;
		}
		.campaign_btn_center span {
				transform: translateX(10px) translateY(-1px)
		}
		.campaign_btn_center a span::after {
				left: -20px;
				top: calc(50% - 7.1px);
				border-style: solid;
				border-top: 7px solid transparent;
				border-bottom: 7px solid transparent;
				border-right: 10px solid #E60012; /* ← 色をここで指定 */
				border-left: 0;
		}
}
@media (hover: hover) {
		.campaign_btn_center a:hover {
				background: #E60012;
				color: #fff;
		}
		.campaign_btn_center a:hover span::after {
				border-right-color: #fff;
		}
}
/* ============== */
.fWht {
		color: #fff;
}
@media(min-width: 768px) {
		br.spbr {
				display: none;
		}
}