@charset "utf-8";

@import url("./animation.css?2");

:root{
	--black: #333;
	--light-gray: #ccc;
	--middle-gray: #999;
	--dark-gray: #666;
	--red: #EA8282;
	--pink: #f3cbdd;
	--pink2: #FADCE2;
	--blue: #79BDD3;
	--green: #86C8A0;
	--yellow: #FFF8A5;
	--orange: #EBA558;
	--purple: #A89FC7;
	--brown: #6B5C50;
	--pale: #fadad2;
	--main-color: #F28484;
	--sub-color: #FFF8D9;

	--border1: var(--main-color) solid 0.1rem;

	--main-font: "M PLUS Rounded 1c", sans-serif;
	--ms: 'Material Symbols Rounded';
}
/*====================================================================
　全体設定
====================================================================*/
html,body,header,footer,main,section,div,ul,ol,li,a,p,h1,h2,h3,h4,h5,h6,img,dl,dt,dd,form,label,input,textarea,span{
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}
/*--ベースとなるフォントサイズ 1rem=10px想定--*/
html{
	font-size: calc(1000vw / 375);
}
body {
	position: relative;
	background: var(--sub-color) url(../img/bg.svg) repeat left top/2.76rem auto;
	color: var(--black);
	font-family: var(--main-font);
	font-size: 1.4rem;
	line-height: 1.5;
	min-height: 100dvh;
	-webkit-tap-highlight-color:rgba(0,0,0,0);
}
body.fixed {
	position: fixed;
	width: 100%;
	height: 100%;
	left: 0;
}
main {
	position: relative;
	overflow-x: hidden;
}
img {
	display: block;
	width: 100%;
}
a {
	color: var(--red);
}
ul{
	list-style-type: none;
}
.caution li,
.indent{
	padding-left: 1em;
	text-indent: -1em;
	text-align: left;
}
.error {
	background: #fff;
	border: var(--red) solid 0.2rem;
	border-radius: 0.5rem;
	padding: 0.5rem;
	margin: 0.5rem auto;
	max-width: 35.5rem;
	color: var(--red);
	font-weight: 700;
	font-size: 1.4rem;
	text-align: center;
}


/*--下からせり上がり--
.scroll{
	opacity : 0;
	transform : translate(0, 5rem);
	transition : all 500ms;
}
.scrollin {
	opacity : 1;
	transform : translate(0, 0);
}*/
/*--回りながら大きくなる--
.scroll{
	transform : rotateY(360deg) scale(0);
	transition : all 500ms;
	transform-origin: bottom;
}
.scrollin {
	transform : rotateY(0) scale(1);
}*/
/*--拡大--*/
.scroll{
	opacity : 0;
	transform : scale(0);
	transition : all 500ms;
}
.scrollin {
	opacity : 1;
	transform : scale(1);
}

.mt0{margin-top: 0!important;}
.mt05{margin-top: 0.5rem!important;}
.mt1{margin-top: 1rem!important;}
.mt15{margin-top: 1.5rem!important;}
.mt2{margin-top: 2rem!important;}
.mt3{margin-top: 3rem!important;}
.mt4{margin-top: 4rem!important;}
.mt5{margin-top: 5rem!important;}
.mb0{margin-bottom: 0!important;}
.mb05{margin-bottom: 0.5rem!important;}
.mb1{margin-bottom: 1rem!important;}
.mb15{margin-bottom: 1.5rem!important;}
.mb2{margin-bottom: 2rem!important;}
.mb3{margin-bottom: 3rem!important;}
.mb4{margin-bottom: 4rem!important;}
.mb5{margin-bottom: 5rem!important;}
.center{text-align: center!important;}
.left{text-align: left!important;}
.right{text-align: right!important;}

/*--------------見出し-----------*/
h2{
	margin: 0 auto 2rem;
	text-align: center;
	color: var(--brown);
}
* + h2{
	margin-top: 2rem;
}
/*--------------------枠--------------------*/
/*--フッタの高さ分、下部に余白を与えるために利用
フッタが無いページでは不要--*/
.section {
}

.block {
	padding: 2rem 0rem 7rem;
}
/*--共通の枠が必要な場合などに利用--*/
.content{
	background: #fff url(../img/bg_reservation_inner.svg) repeat-x center bottom/33.5rem auto;
	border-radius: 1rem;
	padding: 1.5rem 1.5rem 5.5rem;
	margin: 0 auto 2rem;
	width: 33.5rem;
}

/*--アコーディオン--*/
.accordion{
	margin: 2rem auto;
}
.accordion_title{
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	background: var(--pink2);
	border: none;
	margin: 0;
	padding: 1rem;
	color: var(--brown);
	font-weight: 700;
	font-size: 1.6rem;
	text-align: center;
}
.accordion_title::after {
	position: absolute;
	font-family: var(--ms);
	content: "\e86b";
	font-weight: 700;
  font-variation-settings: 'FILL' 1;
	right: 2rem;
	transform: rotateZ(180deg);
}
.accordion_title.active::after{
	transform: rotateZ(0deg);
}
.accordion_content{
	display: none;
	background: #fff;
	margin: 0;
	padding: 1rem;
	transform-origin: top;
}
.accordion:has(.active) .accordion_content{
	display: block;
}
.accordion_content.opne{
	display: block;
}

/*--------------------ボタン--------------------*/
button {
	appearance: none;
	background: none;
	border: none;
}
.button {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	background: var(--light-gray);
	border-radius: 1.5rem;
	width: 100%;
	max-width: 28rem;
	min-height: 5.5rem;
	margin: auto;
	padding: 0.7rem;
	font-family: var(--main-font);
	color: #fff;
	font-size: 2rem;
	font-weight: 700;
	text-align: center;
	text-decoration: none;
	transform: rotateZ(0deg);
}
.button span{
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	border: rgba(255,255,255,0.4) dashed 0.2rem;
	border-radius: 1rem;
	width: 100%;
	height: 100%;
	min-height: 4.7rem;
	padding: 0.5rem 0;
}
.button span small{
	font-size: 1.2rem;
}
.btn{
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	background: var(--light-gray);
	border-radius: 1.5rem;
	width: 100%;
	padding: 0.7rem;
	font-family: var(--main-font);
	color: #fff;
	font-size: 1.7rem;
	font-weight: 700;
	line-height: 1;
	text-align: center;
	text-decoration: none;
	transform: rotateZ(0deg);
}
.btn span{
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 0.5rem;
	border: rgba(255,255,255,0.4) dashed 0.2rem;
	border-radius: 1rem;
	width: 100%;
	height: 100%;
	padding: 1rem 0;
}
.btn span small{
	font-size: 1.4rem;
}
.button:disabled{
	filter: grayscale(1) brightness(60%) invert(1);
}
.bt_next::after {
	position: absolute;
	font-family: var(--ms);
	content: "\e86b";
	font-weight: 700;
  font-variation-settings: 'FILL' 1;
	right: 1.5rem;
	transform: rotate(90deg);
}
.bt_back{
	background-color: #D2B582;
	box-shadow: 0 0.7rem 0 #be9f6a;
}
.bt_back::before {
	position: absolute;
	font-family: var(--ms);
	content: "\e86b";
	font-weight: 700;
  font-variation-settings: 'FILL' 1;
	left: 1.5rem;
	transform: rotate(-90deg);
}
.bt_sumi{
	background-color: var(--middle-gray);
	color: #ddd;
}
.bt_outside::after {
	position: absolute;
	font-family: var(--ms);
	content: "\e89e";
	font-weight: 300;
	right: 1.5rem;
	font-size: 2.5rem;
}
.bt_cart::before {
	position: absolute;
	font-family: var(--ms);
	content: "\e8cc";
	font-weight: 300;
	left: 2rem;
	font-size: 3rem;
}
.bt_cookie{
	background-color: var(--red);
	box-shadow: 0 0.7rem 0 #E17272;
}

/*--------------------色--------------------*/
.black{color: var(--black)!important;}
.red{color: var(--red);}

.bt_submit,
.bg_red{
	background-color: var(--red);
	box-shadow: 0 0.7rem 0 #E17272;
}
.bg_blue{
	background-color: var(--blue);
	box-shadow: 0 0.7rem 0 #66B1C9;
}
.bg_green{
	background-color: var(--green);
	box-shadow: 0 0.7rem 0 #74B58E;
}
.bg_orange{
	background-color: var(--orange);
	box-shadow: 0 0.7rem 0 #E4953D;
}


/*====================================================================
　ヘッダー設定
====================================================================*/
header {
	width: 100%;
}

/*====================================================================
　メニュー設定
====================================================================*/
nav{
	position: fixed;
	bottom: 0;
	right: 0.5rem;
	z-index: 200;
}
.menu-btn {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	background: var(--main-color);
	border-radius: 0.7rem 0.7rem 0 0;
	width: 4.5rem;
	height: 4.5rem;
	z-index: 12;
	animation: slidein 0.5s ease-in both;
}
.menu-btn span.menubtn,
.menu-btn span.menubtn:before,
.menu-btn span.menubtn:after {
	position: absolute;
	display: block;
	background-color: #fff;
	border-radius: 0.2rem;
	height: 0.2rem;
	width: 2.7rem;
	content: '';
	transition: all 800ms;
	transition-timing-function: ease-in-out;
}
.menu-btn span.menubtn{
	top: calc(50% - 0.1rem);
}
.menu-btn span.menubtn:before {
	bottom: 1rem;
}
.menu-btn span.menubtn:after {
	top: 1rem;
}
.menu-btn span.menutext{
	position: absolute;
	display: block;
	bottom: 0.2rem;
	font-size: 0.8rem;
	color: #fff;
}

#bt_menu:checked ~ .menu-btn span {
	background-color: rgba(255, 255, 255, 0);
	transform: rotate(180deg);
}
#bt_menu:checked ~ .menu-btn span::before {
	bottom: 0;
	transform: rotate(135deg);
}
#bt_menu:checked ~ .menu-btn span::after {
	top: 0;
	transform: rotate(225deg);
}
#bt_menu:checked ~ .menu-btn span.menutext {
	transform: none;
}
#bt_menu {
	display: none;
}
.menu-content {
	position: fixed;
	background: rgba(0, 0, 0, 0.5);
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	transition: all 0s;
	transition-delay: 0.3s;
	transform: translate(-100%);
	z-index: 11;
}
.menu-content ul {
	display: block;
	background: #fff;
	padding: 0 2rem;
	height: 100%;
	width: 84%;
	overflow-y: auto;
	transition: all 0.3s;
	transform: translate(-100%);
	box-shadow: 1rem 0 1rem rgba(0, 0, 0, 0.3);
}
.menu-content ul li {
	border-bottom: var(--pale) solid 0.1rem;
	width: 100%;
	height: auto;
	box-shadow: none;
	filter: none;
}
.menu-content ul li:last-of-type{
	border: none;
}
.menu-content ul li a {
	position: relative;
	display: flex;
	align-items: center;
	width: 100%;
	padding: 1.2rem 3rem 1.2rem 0.5rem;
	color: #000;
	text-decoration: none;
}
.menu-content ul li a::after {
	position: absolute;
	font-family: var(--ms);
	content: "\e5cc";
	font-variation-settings:
  'FILL' 0,
  'wght' 400,
  'GRAD' -25,
  'opsz' 48;
	right: 1rem;
}
#bt_menu:checked ~ .menu-content {
	transition: all 0s;
	transition-delay: 0s;
	transform: translate(0);
}
#bt_menu:checked ~ .menu-content ul{
	border-radius: 0;
	transition: all 0.3s;
	transition-delay: 0.2s;
	transform: translate(0);
}
body:has(#bt_menu:checked){
	height: 100dvh;
	overflow-y: hidden;
}

.favorite_btn,
.cart_btn{
	position: fixed;
	display: flex;
	justify-content: center;
	align-items: center;
	background: var(--main-color);
	border-radius: 0.7rem 0.7rem 0 0;
	width: 4.5rem;
	height: 4.5rem;
	right: 5.5rem;
	bottom: 0;
	z-index: 10;
	color: #fff;
	font-size: 2.5rem;
	text-decoration: none;
	animation: slidein 0.5s ease-in both;
}
.favorite_btn{
	font-variation-settings: 'FILL' 1;
}
nav:has(.cart_btn) .favorite_btn{
	right: 10.5rem;
}
@keyframes slidein{
	0%{transform: translateY(4.5rem);}
	100%{transform: translateY(0rem);}
}
/*====================================================================
　規約・概要
====================================================================*/
.rule dt{
	font-size: 1.6rem;
	font-weight: 700;
}
.rule dt span{
	color: var(--main-color);
}
.rule * + dt{
	border-top: var(--main-color) solid 0.1rem;
	padding-top: 1.5rem;
}
.rule dd{
	margin-bottom: 1.5rem;
	padding: 1rem 0 0;
	word-break: break-all;
}
.rule dd div{
	background: var(--pale);
	margin: 0.5rem 0;
	padding: 1rem;
	font-size: 1.3rem;
}
.rule li {
	padding-left: 1em;
	text-indent: -1em;
}
.rule * + ul,
.rule * + li{
	margin-top: 1rem;
}
.about{
	font-size: 1.8rem;
}


/*====================================================================
　よくある質問
====================================================================*/
.qanda h3{
	background: var(--main-color);
	padding: 0.5rem 1rem;
	color: #fff;
}
.qanda .midashi{
	background: var(--main-color);
	padding: 0.5rem 1rem;
	color: #fff;
}
.qanda dl + h3{
	margin-top: 2rem;
}
.qanda dt{
	position: relative;
	display: flex;
	align-items: baseline;
	padding: 0.5rem 0rem;
	margin: 0.2rem auto;
	color: #77b9da;
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1.2;
}
.qanda:has(span) dt{
	font-size: 1.6rem;
}
.qanda dd + dt{
	border-top: var(--main-color) solid 0.1rem;
	margin-top: 1rem;
	padding-top: 1rem;
}
.qanda dd .midashi{
	background: var(--red);
	padding: 0.5rem;
	color: #fff;
	font-weight: 700;
}
.qanda dt span{
	font-size: 1.9rem;
}
.qanda dd{
	padding: 0.5rem 0.5rem 1.5rem;
}
.qanda dd ul li{
	padding-left: 1em;
	text-indent: -1em;
}
.qanda dd img + img{
	margin-top: 0.5rem;
}
.qanda ol{
	list-style-type: none;
	counter-reset: my-counter;
}
.qanda ol > li{
	position: relative;
	padding-left: 1.8rem;
	margin-top: 1rem;
}
.qanda ol > li::before{
	content: counter(my-counter);
  counter-increment: my-counter;
	position: absolute;
	display: flex;
	justify-content: center;
	align-items: center;
	background-color: var(--main-color);
	border-radius: 50%;
	width: 1.4rem;
	height: 1.4rem;
	color: #fff;
	font-size: 1.2rem;
	font-weight: 500;
	top: 0.3rem;
	left: 0;
}
.qanda div{
	background: var(--pale);
	padding: 0.5rem;
}

/*====================================================================
　ログイン
====================================================================*/
.login{
	position: relative;
	min-height: calc(100dvh - 25rem);/*ヘッダ分をマイナスする*/
	padding: 2rem 0 3rem;
	text-align: center;
}
.login::before{
	position: absolute;
	background: #fff;
	content: "";
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	z-index: -1;
}


/*====================================================================
　マイページ設定
====================================================================*/
.mypage {
	text-align: center;
}

.mypage .title {
	font-weight: 700;
	font-size: 1.8rem;
}
.mypage .explain{
	margin: 2rem auto;
}
/*====================================================================
　ポップアップ設定
====================================================================*/
.popup {
	display: none;
	position: fixed;
	background: rgba(0, 0, 0, 0.8);
	width: 100%;
	height: 100%;
	padding: 2rem;
	top: 0;
	left: 0;
	z-index: 500;
}
.popup > div {
	text-align: center;
}
.popup div.content{
	max-height: 90%;
	overflow-y: auto;
}
.popup p{
	margin: 0 auto 1rem;
	font-size: 1.6rem;
}
.popup strong {
	color: var(--red);
}
.popup .close {
	color: #fff;
}
.popup .close .material-symbols {
  font-variation-settings: 'FILL' 1;
	font-size: 4rem;
}
/*--------------------ユーザー情報--------------------*/
.info{
	position: relative;
	background: var(--main-color);
	padding: 1rem 0 0.5rem;
	margin: 0rem auto;
}
.info::before{
	position: absolute;
	background: url(../img/info_birds.png) no-repeat center center/100% auto;
	content: "";
	width: 3.6rem;
	height: 3.6rem;
	left: 1.8rem;
	top: 1.3rem;
	animation: birds 3s cubic-bezier(0.5, 1.2, 0.8, 0.6) infinite both;
}
.info::after{
	position: absolute;
	background: url(../img/info_pigeon.png) no-repeat center center/100% auto;
	content: "";
	width: 5.7rem;
	height: 5.1rem;
	right: 1.2rem;
	top: 2.1rem;
	animation: pigeon 3s linear infinite alternate;
}
.info .name {
	font-size: 1.8rem;
	font-weight: 700;
}
.info .name small{
	font-size: 1.4rem;
}
.info .myno {
	position: relative;
	padding: 0 6rem;
	margin-bottom: 2rem;
	font-size: 2.1rem;
	font-weight: 800;
	color: #fff;
}
.info .myno::before{
	position: absolute;
	border-top: #F9DBE1 dotted 0.2rem;
	content: "";
	width: 13.7rem;
	height: 0.2rem;
	bottom: -1rem;
	left: calc(50% - 6.85rem);
}
.info .myno small{
	font-size: 1.5rem;
}
.info p {
	position: relative;
	font-size: 1.1rem;
	text-align: center;
	z-index: 2;
}
.info p::before{
	position: absolute;
	background: url(../img/bg_info_before.svg) repeat-x center center/2rem auto;
	content: "";
	width: 100%;
	height: 2rem;
	left: 0;
	bottom: -1.5rem;
	z-index: -1;
}

/*--------------------トピックス--------------------*/
.topics_top{
	position: relative;
	background: #fff;
	border-radius: 1rem;
	padding: 1rem 0.2rem 1.5rem;
	margin: 2rem auto;
	width: 33.5rem;
}
.topics_top .title{
	position: relative;
	border-bottom: var(--border1);
	padding-bottom: 0.4rem;
	font-size: 1.8rem;
}
.topics_top ul{
	margin: 1rem auto 0;
	padding: 0 2rem;
}
.topics_top li{
	width: 100%;
	padding: 0.5rem 0;
	text-align: left;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.topics_top li a{
	color: var(--red);
	font-weight: 700;
	font-size: 1.6rem;
}
.topics_top li span{
	margin-right: 1em;
	color: var(--middle-gray);
	font-size: 1.2rem;
	font-weight: 700;
}
.topics_link{
	position: absolute;
	display: block;
	background: var(--main-color);
	border-radius: 0.5rem;
	padding: 0.3rem 1.5rem;
	top: 1rem;
	right: 1rem;
	font-size: 1.4rem;
	font-weight: 500;
	text-align: right;
	color: #fff;
	text-decoration: none;
	letter-spacing: 0.5rem;
}
/*--------------------スタンプ一覧--------------------*/
.stamp-list {
	position: relative;
	background: #fff;
	border-radius: 15.3rem 15.3rem 2rem 2rem/11.9rem 11.9rem 2rem 2rem;
	width: 30.6rem;
	padding: 1.8rem 0 2rem;
	margin: 2rem auto;
}
.stamp-list .error{
	margin: 0 1rem 1rem;
}
.stamp-list:has(.accordion){
	padding-bottom: 0;
}
.stamp-list::before{
	position: absolute;
	background: url(../img/balloon.png) no-repeat center center/100% auto;
	content: "";
	width: 7.6rem;
	height: 11.4rem;
	left: -3.2rem;
	top: -5.3rem;
	z-index: 3;
	animation: fuwafuwa 6s cubic-bezier(0.25, 0.69, 0.65, 0.41) infinite alternate;
}
.mypage:has(.topics_top) .stamp-list::before{
	top: -3.3rem;
}
.block:not(.topics_top) .stamp-list::before{
	top: -2.3rem;
}
.stamp-list::after{
	position: absolute;
	background: url(../img/leaf.png) no-repeat center center/100% auto;
	content: "";
	width: 5.6rem;
	height: 7.1rem;
	right: -2.6rem;
	top: -0.7rem;
	animation: leaf 2s ease-in-out infinite alternate;
	transform-origin: right top;
}
.stamp-list .title{

}
.point {
	position: relative;
	display: flex;
	align-items: baseline;
	justify-content: center;
	gap: 1rem;
	background: var(--yellow);
	width: 23.6rem;
	padding: 0rem 2rem 0rem 5rem;
	margin: 1rem auto 2rem;
	color: var(--brown);
}
.point::before{
	position: absolute;
	background: url(../img/baby.svg) no-repeat center center/100% auto;
	content: "";
	width: 9.8rem;
	height: 7.4rem;
	left: -2.6rem;
	top: 0.1rem;
	animation: baby 3s ease-in-out infinite alternate;
	transform-origin: bottom;
}
.point::after{
	position: absolute;
	background: url(../img/ticket.svg) no-repeat center center/100% auto;
	content: "";
	width: 7.4rem;
	height: 4.3rem;
	right: -4.3rem;
	top: -0.8rem;
}
.point span:nth-of-type(1){
	font-size: 4.3rem;
	font-weight: 800;
}
.point span:nth-of-type(2){
	font-size: 2.6rem;
	font-weight: 500;
}
.barthday{
	margin: 0 auto 1rem;
	font-size: 1.6rem;
	font-weight: 700;
	color: var(--brown);
}
.stamp-list .caution{
	position: relative;
	width: fit-content;
	width: 27.3rem;
	padding-right: 1em;
	margin: auto;
	font-size: 1.3rem;
}
.stamp-list .caution::after{
	position: absolute;
	background: url(../img/flower.png) no-repeat center center/100% auto;
	content: "";
	width: 4.9rem;
	height: 5.2rem;
	right: -4.3rem;
	top: -2.1rem;
}
.stamp-list .accordion_title{
	padding: 0.5rem;
}
.stamp-list .accordion_title::before{
	position: absolute;
	background: url(../img/milkpot.svg) no-repeat center center/100% auto;
	content: "";
	width: 2.6rem;
	height: 4.9rem;
	left: 1rem;
	transition: all 500ms;
}
.stamp-list .accordion_title.active::before{
	transform: rotate(120deg);
}
.stamp-list .accordion_content{
	border-radius: 0 0 2rem 2rem;
}
.stamp-list .accordion_content ul{
	padding: 0 1rem;
}
.stamp-list .accordion_content li{
	display: flex;
	justify-content: center;
	align-items: baseline;
	padding: 1rem;
	font-size: 1.5rem;
}
.stamp-list .accordion_content li + li{
	border-top: var(--pink) dotted 0.2rem;
}
.stamp-list .accordion_content li span{
	margin-left: auto;
	font-size: 1.7rem;
	font-weight: 500;
}


/*====================================================================
　訪問予約
====================================================================*/
.top_reservation,
.top_apply .inner{
	position: relative;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 1.5rem;
	background: #fff url(../img/bg_reservation_inner.svg) no-repeat center bottom/100% auto;
	border-radius: 1rem;
	width: 31.5rem;
	padding: 4.1rem 2rem 5.2rem;
	margin: 6.2rem auto 2.9rem;
}
.top_reservation .title,
.top_apply .title{
	position: absolute;
	width: 37.5rem;
	left: calc(50% - 37.5rem / 2);
	top: -5.1rem;
}
.top_reservation .btn{
	width: 13rem;
	height: 10.5rem;
}
.top_reservation .btn:nth-of-type(1){
	background-color: var(--orange);
	box-shadow: 0 0.7rem 0 #E4953D;
}
.top_reservation .btn:nth-of-type(1) img{
	width: 5.54rem;
}
.top_reservation .btn:nth-of-type(2){
	background-color: var(--blue);
	box-shadow: 0 0.7rem 0 #66B1C9;
}
.top_reservation .btn:nth-of-type(2) .material-symbols{
	font-size: 4.4rem;
}
.top_apply{
	position: relative;
	background: url(../img/bg_top_apply.jpg) repeat left top/100% auto;
	padding: 0.1rem 0 7rem;
}
.top_apply::before{
	position: absolute;
	background: url(../img/arrow_down.svg) no-repeat center center/100% auto;
	content: "";
	width: 2.5rem;
	height: 3.6rem;
	left: calc(50% - 2.5rem / 2);
	top: -1.35rem;
	animation: arrow_down 1.5s linear infinite both;
}
@keyframes arrow_down{
	0%{clip-path: polygon(0% 0%,100% 0%,100% 0%, 0% 0%);}
	30%{clip-path: polygon(0% 0%,100% 0%,100% 100%, 0% 100%);}
	50%{clip-path: polygon(0% 0%,100% 0%,100% 100%, 0% 100%);}
	80%{clip-path: polygon(0% 100%,100% 100%,100% 100%, 0% 100%);}
	100%{clip-path: polygon(0% 100%,100% 100%,100% 100%, 0% 100%);}
}
.top_apply .btn:nth-of-type(1){
	background-color: var(--red);
	box-shadow: 0 0.7rem 0 #E17272;
}
.top_apply .btn span div{
	display: flex;
	align-items: center;
}
.top_apply .btn:nth-of-type(1) img,
.top_apply .btn.disabled img{
	width: 3.3rem;
}
.top_apply .btn.bt2{
	background-color: var(--green);
	width: 13rem;
	height: 10.5rem;
	box-shadow: 0 0.7rem 0 #74B58E;
}
.top_apply .btn.bt2 img{
	width: 6.5rem;
}
.top_apply .btn.bt3{
	background-color: var(--purple);
	width: 13rem;
	height: 10.5rem;
	box-shadow: 0 0.7rem 0 #9C90C5;
}
.top_apply .btn.bt3 img{
	width: 3.9rem;
}
.top_apply .caution{
	font-size: 1.3rem;
	font-weight: 700;
}
.top_apply .inner::after{
	position: absolute;
	background: url(../img/icon_build_blocks.svg) no-repeat center center/100% auto;
	content: "";
	width: 8.5rem;
	height: 4.3rem;
	left: 0.7rem;
	bottom: -1.2rem;
}
.top_apply .button{
	background: url(../img/bg_btn_outside.jpg) no-repeat center center;
	border: #fff solid 0.6rem;
	border-radius: 0;
	box-shadow: 0 0.4rem 0 rgba(0,0,0,0.15);
}
.top_apply .button img{
	width: 14rem;
}
.top_apply .button span{
	flex-direction: row;
	border: none;
	padding-right: 2rem;
}
.top_apply .button::after{
	color: var(--brown);
	font-weight: 800;
}


.reservation .title,
.reservation-list .title{
	background: var(--green);
	margin: 0 auto;
	padding: 0.3rem ;
	text-align: center;
	font-size: 1.8rem;
	font-weight: 700;
	color: #fff;
}
.reservation ul{
	margin: 1rem auto;
	font-size: 1.6rem;
}
.reservation ul.caution{
	font-size: 1.2rem;
}
.reservation ul:nth-of-type(1) li:nth-of-type(1)::first-letter{
	padding-right: 0.5em;
}
.reservation dd label:nth-of-type(1) span::first-letter{
	padding-right: 0.5em;
}
.reservation .page{
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 1rem auto 0.5rem;
	max-height: 2.7rem;
}
.reservation .page button{
	display: flex;
	align-items: center;
	margin: 0;
	padding: 0;
	color: #4d976a;
	font-family: var(--main-font);
	font-size: 1.5rem;
	font-weight: 700;
	touch-action: none;
	-webkit-touch-callout: none; /* Prevents callout to copy image, etc when touch */
}
.reservation .page button:disabled{
	color: var(--light-gray);
}
.reservation .page button span{
	font-size: 1.8rem;
}
.reservation .page div{
	font-size: 1.8rem;
	font-weight: 700;
	color: var(--main-color);
}
.reservation .table{
	display: flex;
	flex-wrap: wrap;
	border: var(--main-color) solid 0.1rem;
	border-radius: 0.3rem;
	width: 100%;
	margin: 1rem auto 1rem;
	overflow: hidden;
	touch-action: none;
	-webkit-touch-callout: none; /* Prevents callout to copy image, etc when touch */
}
.reservation .table_column{
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: calc(100% / 8);
	text-decoration: none;
	color: var(--black);
}
.reservation a.table_column .tabele_row:nth-of-type(1){
	border: 0.2rem outset #fff0fb;
}
.reservation .table_column:nth-child(1){
	background: #fff!important;
	font-size: 2rem;
}
.reservation .table_column:nth-child(n+2):nth-child(-n+6) .tabele_row:nth-of-type(1){
	background: #d1e5d9;
}
.reservation .table_column:nth-child(7) .tabele_row:nth-of-type(1){
	background: #bfe2ee;
}
.reservation .table_column:nth-child(8) .tabele_row:nth-of-type(1){
	background: var(--pale);
}
.reservation .table_column[href=""],
.reservation .table_column:not([href]){
	pointer-events: none;
	background: var(--light-gray);
}
.reservation a.table_column[href=""] .tabele_row:nth-of-type(1),
.reservation a.table_column:not([href]) .tabele_row:nth-of-type(1){
	background: none!important;
	border: none;
	border-bottom: var(--main-color) solid 0.1rem;
}
.reservation .table_column + .table_column{
	border-left: var(--main-color) solid 0.1rem;
}
.reservation .tabele_row{
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 3.5rem;
	line-height: 1;
}
.reservation .tabele_row + .tabele_row{
	border-top: var(--main-color) solid 0.1rem;
}
.reservation .tabele_row:nth-of-type(1){
	border-bottom: var(--main-color) solid 0.1rem;
	height: 4rem;
	font-size: 1.8rem;
	font-weight: 500;
}
.reservation .tabele_row:nth-of-type(1) small{
	font-size: 1.0rem;
}
.reservation .tabele_row span.material-symbols{
	color: var(--red);
}
.reservation .table_column[href=""] .tabele_row span.material-symbols,
.reservation .table_column:not([href]) .tabele_row span.material-symbols{
	color: var(--black);
}
.reservation form dl{
	margin: 2rem auto 3rem;
}

/*====================================================================
　訪問予約一覧
====================================================================*/
.reservation-list li + li {
	border-top: 0.1rem solid #ccc;
}
.reservation-list li a {
	position: relative;
	display: flex;
	align-items: center;
	padding: 1rem 3rem 1rem 1rem;
	width: 100%;
	color: #333;
	font-weight: 700;
	font-size: 1.8rem;
	text-decoration: none;
}
.reservation-list li a::after {
	position: absolute;
	font-family: var(--ms);
	content: "\e5cc";
	font-weight: 400;
	right: 1.5rem;
}



/*====================================================================
　チケット獲得
====================================================================*/
.getticket{
	padding: 2rem 0;
	text-align: center;
}
.ticketget{
	animation: scale-up-center 0.4s 2s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;
}
.ticket-img{
	position: relative;
	height: 14.7rem;
	width: 100%;
	margin: 2rem auto;
}
.ticket-img::before{
	position: absolute;
	background: url(../img/baby.svg) no-repeat center center/100% auto;
	content: "";
	width: 16rem;
	height: 13rem;
	top: 0;
	right: 2rem;
	animation:
		roll 0.2s 0.5s ease-in-out infinite alternate,
		through 4.2s 0.5s linear both;
	z-index: 5;
}
.ticket-img img{
	position: absolute;
	width: 25.7rem;
	margin: 0rem auto;
	top: 0;
	left: calc(50% - 25.7rem / 2);
	animation: swipe-in 2.2s 0.5s linear both;
}
.expiration_date{
	margin: 2rem auto;
	font-size: 2rem;
	font-weight: 700;
	color: var(--brown);
}
.message{
	margin: 2rem auto 5rem;
	font-size: 1.6rem;
	font-weight: 500;
}
.fade-in{
	animation: fade-in 0.8s 2.5s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;
}
/*====================================================================
　商品リスト
====================================================================*/
.goods_group{
	text-align: center;
	font-weight: 700;
}
.goods_group .stamp-list {
	background: rgba(255, 255, 255, 0.6);
	padding: 1rem;
}
.goods_group .stamp-list .title{
	font-size: 2.2rem;
}
.goods_group .stamp-list dl{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem 0;
	background: #fff;
	border-radius: 1rem;
	padding: 1rem 2rem;
	font-size: 1.8rem;
}
.goods_group .stamp-list dt{
	width: 70%;
	text-align: left;
}
.goods_group .stamp-list dd{
	width: 30%;
	text-align: right;
}
.goods_group .stamp-list dd span{
	margin-right: 0.5rem;
	font-size: 2rem;
}
.goods_group .stamp-list p.caution{
	padding-left: 1em;
	text-indent: -1em;
	text-align: left;
	color: var(--red);
	font-size: 1.4rem;
}
.goods_group .title{
	margin-bottom: 2rem;
	font-size: 2.4rem;
}
.goods_group .title span{
	margin: 0 0.5rem;
	font-size: 3.5rem;
	color: var(--red);
}
.goods_group ul{
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: 4rem 2rem;
	margin: 3rem auto 5rem;
	max-width: 37.5rem;
}
.goods_group li{
	position: relative;
	background: var(--main-color);
	border-radius: 100vw;
	padding: 0.5rem;
	width: 14rem;
	height: 14rem;
	color: var(--main-color);
}
.goods_group li .inner{
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	background: #fff;
	border-radius: 100vw;
	width: 100%;
	height: 100%;
	font-size: 1.6rem;
	line-height: 1.2;
}
.goods_group li:nth-of-type(2){
	background: var(--blue);
	color: var(--blue);
}
.goods_group li:nth-of-type(3){
	background: linear-gradient(90deg,var(--orange) 0%,var(--orange) 50%,var(--blue) 50%,var(--blue) 100%);
	width: 32rem;
}
.goods_group li:nth-of-type(3) .inner{
	flex-direction: row;
}
.goods_group li:nth-of-type(3) div:nth-of-type(1){
	padding-left: 0.5rem;
	color: var(--orange);
}
.goods_group li:nth-of-type(3) div:nth-of-type(2){
	padding-right: 0.5rem;
	color: var(--blue);
}
.goods_group li:nth-of-type(4){
	background: var(--green);
	width: 32rem;
	color: var(--green);
}
.goods_group li strong{
	font-size: 2.5rem;
}
.goods_group li span{
	display: block;
	font-size: 3rem;
}
.goods_group li i{
	margin: auto 0.5rem;
	color: var(--main-color);
	font-size: 3rem;
}
.goods_group li:nth-of-type(1) .inner::before{
	position: absolute;
	background: url(../img/illust2.svg) no-repeat center center/100% auto;
	content: "";
	width: 6.5rem;
	height: 6.5rem;
	top: 9rem;
	left: -2rem;
}
.goods_group li:nth-of-type(1) .inner::after{
	position: absolute;
	background: url(../img/illust1.svg) no-repeat center center/100% auto;
	content: "";
	width: 6.5rem;
	height: 6.5rem;
	top: -3rem;
	right: 0rem;
	transform: rotate(15deg);
}
.goods_group li:nth-of-type(2) .inner::before{
	position: absolute;
	background: url(../img/illust3.svg) no-repeat center center/100% auto;
	content: "";
	width: 6.5rem;
	height: 6.5rem;
	top: -2.5rem;
	right: -2rem;
	transform: rotate(10deg);
}
.goods_group li:nth-of-type(2) .inner::after{
	position: absolute;
	background: url(../img/illust4.svg) no-repeat center center/100% auto;
	content: "";
	width: 6.5rem;
	height: 6.5rem;
	bottom: -2rem;
	left: -2.5rem;
}
.goods_group a span{
	position: relative;
	padding: 0 1.5rem;
	font-size: 1.6rem;
}
.goods_group P.link_pdf{
	margin: 3rem auto 0;
}



.goods_list form{
	margin-bottom: 5rem;
}
.goods_list form h3{
	display: block;
	background: none;
	padding: 0;
	text-align: center;
	font-size: 2rem;
	color: var(--main-color);
	letter-spacing: 0;
}
.goods_list dd{
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 2rem;
}
.goods_list dd p{
	background: var(--main-color);
	width: 100%;
	padding: 0.5rem;
	margin: 0.5rem auto;
	font-size: 1.6rem;
}
.goods_list dd p:nth-of-type(2){
	background: var(--green);
}
.goods_list dd p:nth-of-type(3){
	background: var(--orange);
}
.goods_list form select{
	width: calc(100% - 5em);
	margin-left: 1rem;
}

.goods_list ul{
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	gap: 1rem;
	width: 100%;
	margin: auto;
}
.goods_list li{
	display: flex;
	width: calc((100% - 2rem)/3);
}
.goods_list li a{
	position: relative;
	display: block;
	background: #fff;
	border-radius: 1rem;
	width: 100%;
	height: 100%;
	padding: 1rem;
	text-decoration: none;
	line-height: 1;
	color: var(--black);
	box-shadow: 0 0 0.5rem rgba(0 ,0 ,0 ,0.16);
}
.goods_list li a img{
	margin-bottom: 1rem;
	max-width: 8.8rem;
	max-height: 8.8rem;
	object-fit: contain;
}
.goods_list li a p{
	display: -webkit-box;
	-webkit-line-clamp: 4;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-size: 1.2rem;
	line-height: 1.2;
}


.goods_detail{
	text-align: center;
}
.goods_detail .inner{
	border-radius: 1rem;
	padding: 1.5rem;
	box-shadow: 0 0 0.5rem rgba(0 ,0 ,0 ,0.16);
}
.goods_detail .inner h3{
	word-break: break-all;
	word-wrap: break-word;
}

.goods_detail img{
	background: #fff;
	border: var(--middle-gray) solid 0.1rem;
	border-radius: 1rem;
	width: 26rem;
	max-height: 26rem;
	margin: 2rem auto;
	object-fit: contain;
}
.goods_detail dl{
	background: #fff;
	border-radius: 1rem;
	padding: 1rem;
	text-align: left;
}
.goods_detail dt{
	font-size: 1.6rem;
	font-weight: 700;
}
.goods_detail dd + dt{
	border-top: var(--main-color) solid 0.1rem;
	margin-top: 1rem;
	padding-top: 1rem;
}
.goods_detail dd{
	font-size: 1.8rem;
}
.stock_status{
	margin: 2rem auto 3rem;
	text-align: center;
}
.stock_status div.title{
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 2.2rem;
	font-weight: 400;
	color: var(--main-color);
}
.stock_status div.title span{
	display: block;
}
.stock_status div.title span.none{
	color: #666;
}
.stock_status div.title span.bit{
	color: #30a2db;
}
.stock_status p{
	margin: 2rem auto 1rem;
	font-size: 1.6rem;
	font-weight: 700;
}
.favorite{
	margin: 2rem auto;
	font-size: 1.8rem;
	font-weight: 700;
}
.favorite input[type="checkbox"]{
	display: none;
}
.favorite label{
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 1rem;
	margin-bottom: 2rem;
}
.favorite label span{
	font-size: 2.6rem;
	color: var(--middle-gray);
}
.favorite input:checked ~ label span{
	color: var(--main-color);
  font-variation-settings: 'FILL' 1;
}
.favorite input[type="number"]{
	width: 3em;
	text-align: center;
}
.favorite .popup .button span{
	flex-direction: row;
	gap: 0.5rem;
}
.favorite .popup .button span div{
  font-variation-settings: 'FILL' 1;
}
.favorite button{
	font-size: 1.8rem;
	font-weight: 700;
}
.favorite button.on{
	color: var(--black);
}
.favorite label button.off{
	color: var(--black);
}
.favorite button.on i{
	color: var(--main-color);
}
.favorite button.off i{
	color: var(--middle-gray);
}
.favorite
.goods_detail h3{
	margin: 2rem auto 1rem;
	text-align: center;
}
.goods_detail table{
	background: rgba(255, 255, 255, 0.6);
	border: var(--black) solid 0.1rem;
	border-collapse: collapse;
	margin: 1rem auto 0;
	text-align: left;
}
.goods_detail th,
.goods_detail td{
	border: var(--black) solid 0.1rem;
	padding: 0.5rem 1rem;
}
.goods_detail th{
	background: var(--pale);
	text-align: left;
}
.goods_detail td{
	width: 65%;
}
.goods_detail td:empty::before{
	content: "-";
}

#in_cart h2 {
	font-size: 1.8rem;
}
#in_cart .group-name{
	color: var(--brown);
}
#in_cart img{
	border: var(--light-gray) solid 0.1rem;
	border-radius: 1rem;
	width: 15rem;
	margin: 0 auto 2rem;
}


.pager{
	display: flex;
	justify-content: center!important;
	gap: 0 0.8rem!important;
	margin: 2rem auto!important;
}
.pager li{
	background: var(--light-gray);
	border: none!important;
	border-radius: 50%;
	width: 4rem!important;
	height: 4rem!important;
}
.pager li:first-of-type,
.pager li:last-of-type{
	background: none;
	width: fit-content!important;
}
.pager li.disabled{
	opacity: 0;
}
.pager li.selected{
	background: var(--main-color);
}
.pager li a,
.pager li div{
	display: flex!important;
	justify-content: center;
	align-items: center;
	background: none!important;
	border: none!important;
	padding: 0;
	height: 100%;
	width: 100%;
	box-shadow: none!important;
	text-decoration: none;
	font-weight: 700;
	font-size: 1.8rem;
	color: #fff;
	line-height: 1;
}
.pager li:first-of-type a,
.pager li:last-of-type a,
.pager li:first-of-type div,
.pager li:last-of-type div{
	font-size: 2.4rem;
	color: var(--light-gray);
}
.pager li a::after{
	content: none;
}



/*====================================================================
　カート
====================================================================*/
.cart{

}
.cart p.no-item {
	margin: 0 auto;
	font-size: 1.7rem;
	color: var(--middle-gray);
	font-weight: 700;
	text-align: center;
}
.cart-progress{
	display: flex;
	justify-content: space-between;
	gap: 0 5%;
	margin: 1rem auto 2rem;
}
.cart-progress li{
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	background: var(--middle-gray);
	width: 9.1rem;
	height: 5rem;
	max-height: 5rem;
	padding: 0 0.5rem;
	font-weight: 700;
	font-size: 1.6rem;
	line-height: 1;
	color: #fff;
}
.cart-progress li.active{
	background: var(--blue);
}
.cart-progress li:nth-of-type(1)::after,
.cart-progress li:nth-of-type(2)::after{
	position: absolute;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 2.5rem 0 2.5rem 1rem;
	border-color: transparent transparent transparent var(--middle-gray);
	content: "";
	right: -0.95rem;
}
.cart-progress li.active:nth-of-type(1)::after,
.cart-progress li.active:nth-of-type(2)::after{
	border-color: transparent transparent transparent var(--blue);
}
.cart-progress li:nth-of-type(2)::before,
.cart-progress li:nth-of-type(3)::before{
	position: absolute;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 2.5rem 0 2.5rem 1rem;
	border-color: var(--middle-gray) var(--middle-gray) var(--middle-gray) transparent;
	content: "";
	left: -0.95rem;
}
.cart-progress li.active:nth-of-type(2)::before,
.cart-progress li.active:nth-of-type(3)::before{
	border-color: var(--blue) var(--blue) var(--blue) transparent;
}
.cart .button-s{
	max-width: 18rem;
}

.goods li{
	position: relative;
	display: flex;
}
.goods li + li{
	background: url(../img/border2.svg) no-repeat center top/100% auto;
	margin-top: 2rem;
	padding-top: 2rem;
}
.goods li img{
	border: var(--light-gray) solid 0.1rem;
	border-radius: 1rem;
	width: 10rem;
	height: 10rem;
	margin-right: 1rem;
	object-fit: contain;
}
.goods li div.goods-detail{
	position: relative;
	width: 100%;
	font-weight: 700;
}
.goods-detail .favorite{
	position: absolute;
	top: -0.2rem;
	right: 0;
	margin: 0;
}
.group-name{
	display: inline-block;
	border-radius: 10vw;
	padding: 0.3rem 1rem;
	margin-bottom: 0.5rem;
	font-size: 1.5rem;
	color: #fff;
}
.group1{background: var(--main-color);}
.group2{background: var(--blue);}
.product-num{
	font-size: 1.2rem;
}
.goods-name{
	font-size: 1.6rem;
	color: var(--main-color);
}
.quantity{
	display: inline-block;
	margin-top: 1rem;
	font-size: 1.6rem;
}
.quantity a{
	background: var(--orange);
	border-radius: 0.5rem;
	padding: 0.3rem 1rem;
	margin-left: 0.5em;
	font-weight: 500;
	right: 0;
	top: 0;
	color: #fff;
	font-size: 1.5rem;
	text-decoration: none;
}
.goods li button{
	position: absolute;
	display: flex;
	justify-content: center;
	align-items: center;
	background: #fff;
	border: var(--middle-gray) solid 0.1rem;
	border-radius: 0.5rem;
	padding: 0.3rem 1rem;
	margin-left: 2em;
	font-weight: bold;
	right: 0;
	top: 0;
	color: var(--middle-gray);
	font-size: 1.5rem;
	line-height: 1;
}
.goods li button span{
	margin-right: 0.5rem;
	font-size: 1.8rem;
}
.total{
	display: flex;
	align-items: baseline;
	border-bottom: var(--black) solid 0.1rem;
	margin: 2rem auto 0;
	padding: 0 1rem;
	width: 70%;
	font-size: 2rem;
}
.total span{
	margin-left: auto;
	font-size: 2.6rem;
}


/*====================================================================
　全体マップ画面
====================================================================*/
body:has(#message_placeholder){
	border: #fff solid 0.3rem;
}
video {
	position: absolute;
	width: calc(100vw - 0.6rem);
	height: calc(100dvh - 0.6rem);
	left: 0;
	top: 0;
	object-fit: cover;
}
canvas {
	display: none;
	object-fit: scale-down;
}
#message_placeholder {
	position: absolute;
	width: 100%;
	height: 100%;
	left: 0;
	top: 0;
}
#message_placeholder>* {
	position: absolute;
}
#message {
	display: none;
	position: absolute;
	width: 100%;
}
#message div {
	position: relative;
	left: 0;
	top: 0;
	padding: 1.5rem 0.5rem;
	text-align: center;
	font-size: 90%;
	font-weight: bold;
	background-color: rgba(238, 238, 238, 0.5);
	border: #808080 solid 0.1rem;
	border-radius: 1rem;
	margin: 1rem;
}
#loading {
	width: 100%;
	text-align: center;
	color: grey;
	padding-top: 10rem;
}
#error {
	margin: 0.5rem;
	display: none;
}


/*====================================================================
　履歴画面設定
====================================================================*/
.history-list {
	margin-top: 2rem;
}

.history-list div {
	display: none;
}

.history-list .show {
	display: block;
}

.history ul {
	margin-bottom: 2rem;
}
.history li {
	padding: 0.5rem;
	font-weight: 700;
}
.history li + li{
	border-top: 0.1rem dotted #999;
}
.history li span {
	display: block;
}
.history li .history-date {
	margin: 0.5rem 1rem 0 0;
	color: #666;
	font-size: 1.2rem;
	font-weight: normal;
}
.history li .history-pt,
.history li .history-prize {
	color: var(--main-color);
	font-size: 1.8rem;
}
.history li .history-sumi {
	display: inline-block;
	background: #FFDBDD;
	border-radius: 1rem;
	margin: 0.5rem auto 0;
	padding: 0.5rem 1rem;
	color: #E50112;
	font-size: 1.2rem;
}
.history p.no-history {
	margin: 0 auto;
	font-size: 1.7rem;
	color: var(--middle-gray);
	font-weight: 700;
	text-align: center;
}
.history dl{
	display: flex;
	flex-wrap: wrap;
	border: var(--pale) solid 0.1rem;
}
.history dl + dl{
	margin-top: 1rem;
}
.history dt{
	background: var(--pale);
	border-top: #fff solid 0.1rem;
	width: 35%;
	padding: 0.5rem 1rem;
}
.history dd{
	border-top: var(--pale) solid 0.1rem;
	width: 65%;
	padding: 0.5rem 1rem;
	word-break: break-all;
}
.history dt:nth-of-type(1),
.history dd:nth-of-type(1){
	border: none;
}

/*====================================================================
　トピックス設定
====================================================================*/
.topics_list ul{
	margin: 0 auto;
}
.topics_list li{
	position: relative;
}
.topics_list li + li{
	border-top: var(--main-color) solid 0.1rem;
	padding-top: 1.5rem;
}
.topics_list li a{
	position: relative;
	display: block;
	text-align: left;
	padding: 0rem 3rem 1.5rem 0;
	text-decoration: none;
	color: var(--black);
}
.topics_list li a::after{
	position: absolute;
	font-family: var(--ms);
	content: "\e5cc";
	right: 0;
	top: calc(50% - 1rem);
	color: var(--main-color);
	font-size: 2.3rem;
	font-weight: 300;
}
.topics_list h3,
.topics_datail h3{
	margin-bottom: 0.5rem;
	color: var(--main-color);
}
.topics_list span{
	color: #aaa;
}
.topics_list p{
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.topics_datail div.date{
	color: #aaa;
	text-align: left;
}
.topics_datail div.note{
	text-align: left;
	margin-bottom: 2rem;
	word-wrap: break-word;
	word-break: break-all;
}


/*====================================================================
　フォーム設定
====================================================================*/
.form dl{
	margin: 1em auto;
}
.form dt {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	background: var(--pale);
	padding: 0.5em;
	font-size: 1.5rem;
	font-weight: 500;
}
.form dt small{
	font-size: 1.0rem;
	word-break: break-all;
}
.form * + dt{
	margin-top: 2rem;
}
.form dd {
	margin-top: 0.5rem;
	padding: 0 0.5rem;
	font-size: 1.8rem;
}
.form dd.flex,
.form dd.flex50{
	display: flex;
	flex-wrap: wrap;
}
.form dd.flex label {
	margin-right: 2rem;
}
.form dd.flex50 label {
	width: 50%;
}
.form dd label {
	display: flex;
	align-items: center;
	margin-bottom: 0.5rem;
}
.required {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	background: #fff;
	border: var(--red) solid 0.1rem;
	border-radius: 0.5rem;
	padding: 0.2rem 0;
	margin-left: 1rem;
	min-width: 3.6rem;
	max-height: 2.1rem;
	color: var(--red);
	font-size: 1.2rem;
	line-height: 1;
	word-break: keep-all;
}
.prize-name {
	margin: 2rem auto;
	font-size: 2.2rem;
	font-weight: 700;
	text-align: center;
	color: var(--main-color);
}
.form .caution{
	margin-top: 2rem;
}
.form .caution li{
	font-size: 1.2rem;
}
.form_comp{
	text-align: center;
}
.form_comp p{
	margin: 2rem auto;
}
.inquiry_caution{
	border: #d30000 solid 0.1rem;
	padding: 0.5rem;
	margin: 2rem auto;
	width: 28rem;
	color: #d30000;
}
input[type="radio"] {
	appearance: none;
	position: relative;
	background: #fff;
	border: var(--light-gray) solid 0.1rem;
	border-radius: 50%;
	width: 2rem;
	min-width: 2rem;
	height: 2rem;
	margin-right: 0.5rem;
	vertical-align: middle;
}
input[type="radio"]:checked {
	background: #666;
	border-color: #4c4c4c;
}
input[type="radio"]:checked:before {
	position: absolute;
	display: block;
	content: "";
	background: #fff;
	border-radius: 50%;
	width: 1rem;
	height: 1rem;
	left: calc(50% - (1rem / 2));
	top: calc(50% - (1rem / 2));
}
input[type="checkbox"] {
	appearance: none;
	position: relative;
	background: #fff;
	border: var(--light-gray) solid 0.1rem;
	border-radius: 0.5rem;
	width: 2rem;
	min-width: 2rem;
	height: 2rem;
	margin-right: 0.5rem;
	vertical-align: middle;
}
input[type="checkbox"]:checked {
	background: #666;
	border-color: #4c4c4c;
}
input[type="checkbox"]:checked:before {
	position: absolute;
	display: block;
	background: #FFFFFF;
	content: "";
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	clip-path: polygon(6% 70%, 15% 54%, 43% 70%, 81% 8%, 97% 19%, 50% 95%);
}

input[type="text"],
input[type="email"],
input[type="number"],
input[type="tel"],
input[type="password"],
textarea {
	appearance: none;
	border: var(--light-gray) solid 0.1rem;
	border-radius: 0.5rem;
	padding: 0.5rem;
	font-size: 1.8rem;
	width: 100%;
}
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
label [type="text"]{
	margin-left: auto;
}
input:focus,
select:focus,
textarea:focus{
	box-sizing: border-box;
	outline: var(--blue) solid 0.2rem;
}
input[type="password"]:focus,
input[type="date"]:focus{
	outline: none
}
input[type="date"]{
  -webkit-appearance: none;
	appearance: none;
	background: transparent;
	border: none;
	font-size: 1.6rem;
	font-family: var(--main-font);
}
input[type="date"]::-webkit-calendar-picker-indicator{
  position: absolute;
  width: 3rem;
  height: 3rem;
  right: -3.5rem;
	opacity: 0;
}
label:has(input[type="date"]){
	position: relative;
	display: inline-flex;
	width: fit-content;
	border: var(--light-gray) solid 0.1rem;
	border-radius: 0.5rem;
	padding: 0.1rem 0.5rem;
}
label:has(input[type="date"]:focus){
	outline: var(--blue) solid 0.2rem;
}
label:has(input[type="date"])::before{
  position: absolute;
	display: flex;
	justify-content: center;
	align-items: center;
  background-color: var(--main-color);
  border-radius: 0.5rem;
	font-family: var(--ms);
  content: "\e935";
  width: 3rem;
  height: 3rem;
	right: -3.5rem;
	font-size: 1.8rem;
	line-height: 1;
	color: #fff;
}
select {
	background: #fff;
	border: var(--light-gray) solid 0.1rem;
	border-radius: 0.5rem;
	color: var(--black);
	padding: 0.5rem;
	max-width: 100%;
	font-size: 1.8rem;
}
textarea {
	appearance: none;
	border: var(--light-gray) solid 0.1rem;
	border-radius: 0.5rem;
	width: 100%;
	font-size: 1.8rem;
}
textarea[disabled] {
	border-color: #ddd;
}
::placeholder {
	color: #999;
	font-size: 0.9em;
}
input#textPassword,
input#textPassword2,
input#textPassword3{
	border: none;
}
.textPassword{
	position: relative;
	border: var(--light-gray) solid 0.1rem;
	border-radius: 0.5rem;
	width: calc(100% - 1rem);
	height: 3.4rem;
	margin: auto;
	overflow: hidden;
}
.textPassword:has(input:focus){
	outline: var(--blue) solid 0.2rem;
}
.textPassword input:focus{
	outline: none;
}
#buttonEye,#buttonEye2,#buttonEye3 {
	position: absolute;
	display: flex;
	justify-content: center;
	align-items: center;
	height: 100%;
	width: 10%;
	right: 0;
	top: 0;
}
#buttonEye.visibility::before,
#buttonEye2.visibility::before,
#buttonEye3.visibility::before{
	position: absolute;
	font-family: var(--ms);
	content: "\e8f4";
}
#buttonEye.visibility_off::before,
#buttonEye2.visibility_off::before,
#buttonEye3.visibility_off::before{
	position: absolute;
	font-family: var(--ms);
	content: "\e8f5";
}
.other_checked{
	display: none;
}
.form dd:has(#other:checked) .other_checked{
	display: block;
}
/*====================================================================
　参加時のご注意
====================================================================*/
.accordion:has(.join_attention){
	max-width: 33.5rem;
}
.accordion:has(.join_attention) .accordion_title{
	border-radius: 0.5rem;
}
.accordion:has(.join_attention) .accordion_title.active{
	border-radius: 0.5rem 0.5rem 0 0;
}
.accordion_content.join_attention{
	border-radius: 0 0 0.5rem 0.5rem;
}
.join_attention strong{
	font-size: 1.8rem;
}

.join_attention a{
	font-weight: 700;
}

.join_attention div{
	background: var(--pale);
	margin: 2rem 0 1rem;
	padding: 0.5rem;
}
.join_attention li{
	padding-left: 1em;
	text-indent: -1em;
	font-weight: 700;
	font-size: 1.4rem;
}
.join_attention li + li{
	margin-top: 0.5rem;
}
.join_attention div + ul li{
	font-size: 1.2rem;
	font-weight: normal;
}

/*------初回アクセス時-----*/
.attention {
	position: fixed;
	background: rgba(0, 0, 0, 0.5);
	width: 100%;
	height: 100vh;
	padding: 2rem;
	top: 0;
	left: 0;
	text-align: center;
	overflow-y: auto;
}
.attention div{
	background: #fff;
	border-radius: 1rem;
	height: 70%;
	padding: 2rem;
	margin-bottom: 2rem;
	overflow-y: scroll;
}
.attention dl{
	margin: 0 0 2rem;
}
.attention dt{
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	color: #333;
	font-weight: 700;
	font-size: 1.8rem;
	padding: 1rem;
}
.attention dt span{
	margin: 0 1rem;
	font-size: 2.2rem;
	color: #c92a19;
  font-variation-settings: 'FILL' 1;
}
.attention dd {
	padding: 0.5rem 0;
	text-align: left;
}
.attention ul li{
	padding: 0.5rem 0em 0.5rem 1em;
	text-indent: -1em;
}
.attention ul li img{
	position: relative;
	width: 15rem;
	margin: 0.5rem auto 0;
	right: 0.5rem;
}
.attention .red{
	font-weight: 700;
}



/*====================================================================
　FAQ
====================================================================*/
.faq .title{
	background: var(--red);
	padding: 1rem;
	margin-bottom: 1rem;
	font-size: 1.5rem;
	color: #fff;
	font-weight: 700;
	text-align: center;
}
.faq img {
	width: 100%;
	margin: 1rem 0;
}
.faq dt {
	margin: 0;
	padding: 1rem 0;
	padding-left: 1.25em;
	text-indent: -1.25em;
	color: #185195;
}
.faq dt strong {
	font-size: 1.8rem;
}
.faq dd  {
	border-bottom: 0.1rem dotted #999;
	margin: 0 0 1rem;
	padding-bottom: 1em;
	padding-left: 1.25em;
	text-indent: -1.25em;
}
.faq dd strong {
	font-size: 1.8rem;
	color: var(--red);
}
.faq ul {
	padding: 0.5rem 0 0.5rem 1em;
	text-indent: -1em;
}
.faq .title2{
	background: #006298;
	padding: 0.5rem;
	margin: 0.5rem 0;
	color: #fff;
}
.faq .midashi{
	background: var(--red);
	padding: 0.5rem;
	margin: 0.5rem 0;
	color: #fff;
	font-weight: 700;
}

/*====================================================================
　自動翻訳の設定方法
====================================================================*/
.translate h3.title {
  background-color: #006298;
  color: #fff;
  text-align: center;
  padding: 0.5rem;
  margin-bottom: 3rem;
}
.translate img {
  display: block;
  margin: 0.5rem auto;
}
.translate ol.numb {
  list-style: none;
  counter-reset: number;
}
.translate ol.numb li {
  position: relative;
  padding-left: 2rem;
}
.translate ol.numb li:not(:last-of-type) {
  border-bottom: var(--dark-gray) dotted 0.2rem;
  padding-bottom: 2rem;
  margin-bottom: 3rem;
}
.translate ol.numb li::before {
  position: absolute;
	display: flex;
	justify-content: center;
	align-items: center;
  background: #006298;
  counter-increment: number;
  content: counter(number);
  top: 0.2em;
  left: 0;
  width: 1.8rem;
  height: 1.8rem;
  color: #fff;
  font-size: 0.7em;
  text-align: center;
  line-height: 1.5;
  font-weight: 700;
}
.translate ol.numb li div.box {
  margin: 0.5rem 0.5rem 0.5rem -1.5rem;
}
.translate ol.numb li img.inline {
  display: inline;
  width: 2em;
  margin: 0 0 -0.5rem;
}
.translate .siege{
	border: var(--black) solid 0.1rem;
	padding: 0.5rem;
}
.translate form{
	margin: 0 auto 2rem;
	text-align: center;
}
.eng{
	display: none;
}


/*====================================================================
　PCでアクセス時のエラー表示
====================================================================*/
@media screen and (min-width: 481px){
	html{
		font-size: 10px;
	}
	body{
		max-width: 750px;
		margin: auto;
	}
	.content{
		width: 100%;
		max-width: 100%;
	}
}
.view_pc .error{
	width: 90%;
	max-width: 500px;
	margin: 2rem auto;
}
.view_pc img,
.entry img{
	width: 150px;
	margin: 3rem auto;
}

.bunner{
	position: relative;
	display: block;
	width: 28.0rem;
	margin: 2.0rem auto 0;
	box-shadow: 0 0.4rem 0 rgba(0, 0, 0, 0.15);
}