/*
html5doctor.com Reset Stylesheet
v1.6.1
Last Updated: 2010-09-17
Author: Richard Clark - http://richclarkdesign.com
Twitter: @rich_clark
*/
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent; }

body {
  line-height: 1;
  }

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block; }

nav ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none; }

a {
  margin: 0;
  padding: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent; }

/* change colours to suit your needs */
ins {
  background-color: #ff9;
  color: #000;
  text-decoration: none; }

/* change colours to suit your needs */
mark {
  background-color: #ff9;
  color: #000;
  font-style: italic;
  font-weight: bold; }

del {
  text-decoration: line-through; }

abbr[title], dfn[title] {
  border-bottom: 1px dotted;
  cursor: help; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

/* change border colour to suit your needs */
hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #cccccc;
  margin: 1em 0;
  padding: 0; }

input, select {
  vertical-align: middle; }


/* コモン */

*, *:before, *:after {
    -webkit-box-sizing: border-box;
    box-sizing: border-box
}


html {
	/* padding-top: env(safe-area-inset-top);
	bottom: env(safe-area-inset-bottom); */
}

html, body {
	height: 100%;
	width: 100%;
}


.display-sp {
	display: block;
}

.display-pc {
	display: none!important;
}

a {
	color: black;
	transition: all 0.3s ease;
}

a, a:visited {
	color: black;
	text-decoration: none;
}

a:hover {
	color: black;
	opacity: 1;
}

img {
	width: 100%;
	height: auto;
	vertical-align: top;
}

ul {
	list-style: none;
}

html {
	font-size: 62.5%;
}

body {
	text-align: center;
  color: #333;
  background-color: #ddd;
  font-size: 1.6rem;  
  width: 100%;
  margin: 0 auto;
  text-align: center;
  font-family: -apple-system, BlinkMacSystemFont, Roboto, "Segoe UI", "Helvetica Neue", HelveticaNeue, YuGothic, "Yu Gothic Medium", "Yu Gothic", Verdana, Meiryo, sans-serif;
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  font-feature-settings: "palt";
  letter-spacing: 0.2;
}



/* テキスト */

h1, h2, h3, h4, h5 {
	font-weight: normal;
	letter-spacing: 0.1em;
	font-family: "Yu Mincho", "YuMincho","ヒラギノ明朝 ProN W6", "HiraMinProN-W6", "HG明朝E", "ＭＳ Ｐ明朝", "MS PMincho", "MS 明朝", serif;
}

h1 {
    font-size: 2.0rem;
	line-height: 2;
	font-weight: 600;
	text-align: center;
}


h2 {
	font-size: 2.0rem;
	line-height: 2;
	font-weight: 600;
	text-align: left;
}

h3 {
	font-size: 1.6rem;
	line-height: 1.2;
	font-weight: 600;
	text-align: left;
}

h4 {
	font-size: 1.6rem;
	line-height: 2;
	font-weight: 600;
	text-align: left;
}

h5 {
	font-size: 1.6rem;;
	font-weight: 600;
}

p {
	line-height: 1.6;
	letter-spacing: 0.05em;
	text-align: justify;
	text-justify: inter-ideograph;
}


/* ふわっと表示させる */

.fade {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 1.5s, transform 1s;
}

.fade.active {
	opacity: 1;
	transform: translateY(0px);
}


/* ヘッダー */

header {
	position: fixed;
	width: 100%;
	height: auto;
	z-index: 20;
	background-image: url(../images/bg01.jpg);
	background-size: cover;
	background-position: center center;
	box-shadow: 0px 5px 5px rgba(63, 63, 63, 0.5);
}

.header_container {
	position: relative;
	width: 100%;
	max-width:750px;
	height: 10vh;
	margin: 0 auto;
	transition: all 0.3s;
	padding-top: env(safe-area-inset-top);
	display: flex;
	justify-content: center;
	align-items: center;
	}

.header_container .logo {
	width: 60%;
}
	
.header_container .logo img {
	width: 100%;
	height: auto;
}
	

.header_container .backBtn {
	position: absolute;
	left: 5%;
	top: 50%;
	height: auto;
	width: 12px;
	transform: translate(0,-50%);
	}


/* フッター */

footer {

  }
  


  

/* メイン */

main {
	background-image: url(../images/bg01.jpg);
	background-size: cover;
	background-position: center center;
	padding: 0;
	margin: 0 auto;
	position: relative;
	width: 100%;
	height: auto;
	max-width: 750px;
	min-height: 100vh;
	overscroll-behavior: none;
	text-align: left;
}

main .mv-container {
	z-index: 10;
	width: 100%;
	height: 100%;
}

main .mv-container .main-image {
	width: 100%;
	height: auto;
	z-index: 10;
}

main .btn-container {
	z-index: 10;
	margin: 30px auto;
	width: 80%;
	transition: all 0.5s ease;
	background-color: #ff9;
	background: linear-gradient(to bottom, #f1e767 0%, #feb645 100%);
	border: 3px solid #cd9e05;
	font-family: "Yu Mincho", "YuMincho","ヒラギノ明朝 ProN W6", "HiraMinProN-W6", "HG明朝E", "ＭＳ Ｐ明朝", "MS PMincho", "MS 明朝", serif;
	border-radius: 30px;
	box-shadow: 0px 0px 5px #ddd;
	position: relative;
	text-align: center;
}

main .btn-container.selected {
	background: linear-gradient(to bottom, #feb645 0%, #fe8f45 100%);
}

main .btn-container:hover {
opacity: .8;
  }

main .btn-container a {
	width: 100%;
	height: 100%;
	text-align: center;
	display: inline-block;
	font-size: 2.4rem;
	padding: 15px;
	position: relative;
}


main .btn-container p {
	text-align: center;
}

main .btn-container.small-btn a {
	font-size: 1.6rem;
}



main .subbtn-container {
	margin: 0px auto;
	width: 85%;
	text-align: left;
	transition: all 0.5s ease;
	padding: 0px;
	font-size: 1.6rem;
	position: absolute;
	left: 10%;
	bottom: 10%;
}

main .subbtn-container a,
main .subbtn-container a:visited {
	color: white;
}

main .subbtn-container a:hover {
	color: #ff9;
;
}

main .setting-btn-container {
	position: absolute;
	width: 10vw;
	right: 10%;
	bottom: 9%;
}




.index.main-container {
	padding-top: 20vh;
}

#setting.index.main-container {
	padding-top: 10vh;
}


.index.main-container .btn-container {
	text-align: center;
}

.index.main-container .btn-container a {
	font-size: 1.6rem;
}

.index.main-container .btn-container.text-only {
	padding: 15px;
}


.index.main-container.lang-en .btn-container .en {
	display: block;
}

.index.main-container.lang-en .btn-container .jp {
	display: none;
}

.index.main-container.lang-jp .btn-container .en {
	display: none;
}

.index.main-container.lang-jp .btn-container .jp {
	display: block;
}


main.index .desc-container {
	width: 90%;
}

main.index .desc-container p {
	color:#b22522;
	text-align: center;
}

main#setting .desc-container {
	margin-top: 40px;
}

main.index .desc-container.attention p {
	text-align: left;
}

.lang_chooser {
	display: none;
}

.lang_chooser.selected {
	display: block;
}


/* ページ */

main.page {
	padding-top: 10vh;
	padding-bottom: 5vh;
}

main h1 {
	background-image: url(../images/bg_title01.png);
	font-size: 3rem;
	border: 1 solid black;
}

.desc-container {
	width: 90%;
	margin: 20px auto;
	background-color: #f4f5cb;
	font-size: 1.6rem;
	font-weight: bold;
	border-radius: 15px;
	padding: 10px 20px;
}

/* スタンプ */

.stamp-container {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: flex-start;
	flex-wrap: wrap;
}

.stamp-container .stamp {
	width: 30%;
	height: auto;
	padding: 5px;
	transition: all 0.3s;
	margin: 5px;
}

.stamp-container .stamp p.stamp_name {
	display: inline-block;
	background-color: #f4f5cb;
	width: 100%;
	padding: 5px;
	text-align: center;
	font-size: 1.4rem;
	font-weight: bold;
	border-radius: 10px;
	margin-top: 5px;
	line-height: 1.2;
}

.stamp-container .stamp.active p.stamp_name {
	margin-top: 30vw;
}

.stamp-container #stamp06.stamp {
	width: 100%;
	text-align: center;
}

.stamp-container #stamp06.stamp p.stamp_name {
	margin-top: 40vw;
}

.stamp-container #stamp06.stamp div {
	width: 40%;
	margin: 0 auto;
}

.stamp-container .stamp .stamp-done {
	display: none;
}

.stamp-container .stamp .stamp-blank {
	display: block;
}

.stamp-container .stamp.active .stamp-done {
	display: block;
}

.stamp-container .stamp.active .stamp-blank {
	display: none;
}

.stamp-container .stamp .stamp-done a {
	display: block;
	position: relative;
}

.stamp-container .stamp .stamp-done a img {
	position: absolute;
	top: 0;
	left: 0;
	backface-visibility: hidden;
	transform-style: preserve-3d
}

.stamp-container .stamp .stamp-done a img.flipped {
	transform: rotateY(180deg);
}

.stamp-container .stamp.active .stamp-done a img.front {
	animation: 2s forwards front;
}

.stamp-container .stamp.active .stamp-done a img.flipped {
	animation: 2s forwards flipped;
}

@keyframes flipped {
	20% {
		transform: rotateY(-180deg);
	}
  
	100% {
	  transform: rotateY(360deg);
	}
  }

  @keyframes front {
	20% {
		transform: rotateY(-360deg);
	}
  
	100% {
	  transform: rotateY(180deg);
	}
  }


.stamp-container #stamp06.stamp.active .stamp-done a img.front {
	animation: 3s forwards front;
}

.stamp-container #stamp06.stamp.active .stamp-done a img.flipped {
	animation: 3s forwards flipped;
}



.stamp-container #stamp01.stamp.active .stamp-done a img {
	animation-delay:0s;
}

.stamp-container #stamp02.stamp.active .stamp-done a img {
	animation-delay:0.3s;
}

.stamp-container #stamp03.stamp.active .stamp-done a img {
	animation-delay:0.6s;
}

.stamp-container #stamp04.stamp.active .stamp-done a img {
	animation-delay:0.9s;
}

.stamp-container #stamp05.stamp.active .stamp-done a img {
	animation-delay:1.2s;
}


main.stamprally.lang-jp p.jp {
	display: inline-block;
}

main.stamprally.lang-jp p.en {
	display: none;
}

main.stamprally.lang-en p.jp {
	display: none;
}

main.stamprally.lang-en p.en {
	display: inline-block;
}




#photoframe {
	background: none;
	background-color: black;
}

.tokinokane-image {
	margin: 30px auto;
	height: 60vh;
	width: auto;
}

.tokinokane-image img {
	height: 100%;
	width: auto;
}

main.map {
	height: 100%;
}

.map .map-container {
	width: 100%;
	height: 100%;
}

main.howtoplay {
	background-image: none;
	background-color: #FAF9F0;
}

main.howtoplay .desc-container {
	background-color: #b22522;
}

main.howtoplay .desc-container p {
	color:white;
	text-align: center;
}

main .howtoplay-container > .triangle {
	width: 0;
  height: 0;
  border-left: 20px solid transparent;
  border-right: 20px solid transparent;
  border-top: 20px solid #8C8986;
  margin: 20px auto;
}

main .howtoplay-container > .triangle:last-child {
	display: none;
}

main .howtoplay-container {
	width: 90%;
	margin: 0 auto;
	text-align: center;
}

main .howtoplay-container .flex_box h2 {
	text-align: center;
	width: 100%;
	border-bottom: 2px solid #565124;
	margin-top: 20px;
	margin-bottom: 20px;
	padding-bottom: 10px;
} 

main .howtoplay-container .flex_box p {
	font-size: 1.8rem;
	text-align: center;
	margin-bottom: 20px;
} 

main .howtoplay-container .flex_box img {
	width: 60%;
	height: auto;
	margin: 0px auto 20px;
} 


main.termsofuse {
	background-image: none;
	background-color: #FAF9F0;
}

main .article-container {
	width: 90%;
	margin: 0 auto;
	text-align: center;
}

main .article-container article {
	margin-top: 20px;
	margin-bottom: 20px;
}
main .article-container h3 {
	margin-top: 20px;
	padding-bottom: 10px;
	margin-bottom: 10px;
	border-bottom: 1px dotted black;
}

main .article-container p {
	margin-top: 5px;
	margin-bottom: 5px;
}

main .article-container ul {
	text-align: left;
	margin-top: 5px;
	margin-bottom: 5px;
}

main .article-container ul li {
	line-height: 1.6;
	text-indent: -1.5em;
	padding-left: 1.5em;
}


/* ARコンテンツ */btんーc
main.ar-content {
	padding-top: 10vh;
}

main.ar-content .img-container {
	width: 100%;
	height: 45vh;
}

main.ar-content .img-container img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}


.btn-container.map:before {
	content: '';
	display: block;
	position: absolute;
	width: 50px;
	height: 50px;
	background-image: url(../images/icn01.png);
	background-size: contain;
	background-repeat:no-repeat;
	top:50%;
	left:0%;
	transform: translateY(-50%);
}

.btn-container.stamprally:before {
	content: '';
	display: block;
	position: absolute;
	width: 50px;
	height: 50px;
	background-image: url(../images/icn02.png);
	background-size: contain;
	background-repeat:no-repeat;
	top:50%;
	left:0%;
	transform: translateY(-50%);
}

.btn-container.ar-content:before {
	content: '';
	display: block;
	position: absolute;
	width: 50px;
	height: 50px;
	background-image: url(../images/icn03.png);
	background-size: contain;
	background-repeat:no-repeat;
	top:50%;
	left:0%;
	transform: translateY(-50%);
}


.questionnaire iframe {
	width: 95%;
	margin: 0 auto;
}

.questionnaire iframe span {
	font-size: 0.8em;
}

.lang-en h1, .lang-en h2, .lang-en h3{
	font-weight: bold;
	letter-spacing: 0em;
}


.lang-en p {
	letter-spacing: 0;
	font-size: 0.8em;
}

.lang-en li {
	letter-spacing: 0;
	font-size: 0.8em;
}


.map-container {
	width: 100%;
	height: 610px;
}

.map-container iframe {
	border: none;
	width: 100%;
	height: 100%;
}

.map-container {
	position: relative;
	height: auto;
}
.map-container::before {
	content: "";
	display: block;
	width: 100%;
	height: 0;
	padding-top: calc(100% / 3 * 4);
}
.map-container iframe {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
}


