@charset "utf-8";

/*keyframes.css
---------------------------------------------------------------------------*/
@import url("keyframes.css");

/*lightbox.css
---------------------------------------------------------------------------*/
@import url(https://cdnjs.cloudflare.com/ajax/libs/lightbox2/2.10.0/css/lightbox.css);

/*slide.css
---------------------------------------------------------------------------*/
@import url(slide.css);

/*Google Fonts
---------------------------------------------------------------------------*/
@import url('https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@300&display=swap');


html,body {
	font-size: 16px;
}
body {
	margin: 0px;
	padding: 0px;
	color: #3f3d3d;
	font-family: "ヒラギノ丸ゴ Pro", "Hiragino Maru Gothic Pro","ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;	/*フォント種類*/
	line-height: 2;	
	background: url("../images/bg.jpg");
	-webkit-text-size-adjust: none;
	overflow-x: hidden;
}

h1,h2,h3,p,ul,ol,li,form {
	margin: 0px;
	padding: 0px;
	font-size: 1rem;
	font-weight: normal;
}
ul {
	list-style-type: none;
}
ol {
	padding-left: 40px;
	padding-bottom: 15px;
}
img {
	border: none;
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}
table {
	border-collapse:collapse;
	font-size: 1rem;
	border-spacing: 0;
}
video {
	max-width: 100%;
}
iframe {
	width: 100%;
}
a {
	color: #ab96d2;
	transition: 0.2s;
}
a:hover {
	color: #e3c0cc;
	text-decoration: none;
}

/*section
---------------------------------------------------------------------------*/
section {
	overflow: hidden;
}

/*header
---------------------------------------------------------------------------*/
header {
	position: relative;
	width: 100%;
	height: 100px;
}
.home header {
	height: auto;
}
header #logo {
	position: absolute;z-index: 1;
	left: 10%;
	top: 60%;
	width: 60%;
}
/*logo*/
.home header #logo {
	top: 40%;
}

/*nittei*/
.home #nittei{
	position: absolute;
	z-index: 1;
	right: 3%;
	top: 75%;
	color: #60246c;
	font-weight: 900;
	font-size: 24pt;
	background: #ffffff;
	text-align: center;
	opacity: 0.7;	
	padding: 10px;
	border-radius: 8px;
}

/*menu
---------------------------------------------------------------------------*/
#menu_bar_hdr {
	display: block;
	position: fixed;z-index: 100;
	top: 60px;
	left: 60px;
}
#menu_bar_hdr.close,
#menu_bar_hdr.open {
	width: 50px;
	height: 50px;
}
#menu_bar_hdr.close {
	background: url(../images/icon_menu.png) no-repeat center top/50px;
}
#menu_bar_hdr.open {
	background: url(../images/icon_menu.png) no-repeat center bottom/50px;
}
#menu_bar {
	animation-name: opa1;
	animation-duration: 1S;
	animation-fill-mode: both;
	background: rgba(255,255,255,0.9);
	position: fixed;overflow: auto;z-index: 99;
	left: 0px;
	top: 0px;
	width: 100%;
	height: 100%;
	text-align: center;
}
#menu_bar a {
	text-decoration: none;
}
#menu_bar ul {
	margin-top: 150px;
}
#menu_bar li {
	font-size: 1.25rem;
	height:60px;	
}

/*contents
---------------------------------------------------------------------------*/
#contents {
	padding: 80px 100px;
	position: relative;
	animation-name: opa1;
	animation-duration: 0.5S;
	animation-delay: 0.5s;
	animation-fill-mode: both;
}

#contents h2 {
	clear: both;
	margin-bottom: 30px;
	font-size: 1.7rem;	
	text-align: center;	
	letter-spacing: 0.1em;
}
#contents h2 span {
	display: inline-block;white-space: nowrap;
	font-size: 0.875rem;
	border-top: 3px solid #ebe1ed;
	padding: 15px 20px 0;
}
#contents h2 .point_ajisai {
	width:20px;
}
#contents h3 {
	clear: both;
	margin-top:30px;
	margin-bottom: 30px;
	font-size: 1.5rem;	
	border-bottom: 2px dotted #ab96d2;
	padding-left: 3%;
	letter-spacing: 0.1em;
}
#contents h3 span {
	display: inline-block;
	font-size: 0.875rem;
	padding-left: 20px;
}
#contents p {
	padding: 0 3% 30px;
}

#contents h2 + p,
#contents h3 + p {
	margin-top: -5px;
}
#contents p + p {
	margin-top: -10px;
}
#contents section + section {
	margin-top: 100px;
}

#contents .box{
	background: #fff;
	background-image: url(../images/ajisai.png);
	background-color:rgba(255,255,255,0.8);
	background-blend-mode:lighten;
	background-position : right 20px bottom 20px;
	background-repeat: no-repeat;
	border-radius: 8px;
	box-shadow: 0 2px 6px rgba(0,0,0,0.1);
	padding: 30px 30px 0;
	margin-bottom: 16px;
}
#contents #about .box{
	padding: 30px;
}

/*footer
---------------------------------------------------------------------------*/
footer {
	clear: both;
	font-size: 0.75rem;
	text-align: center;
	box-shadow: 0px 0px 50px #fff inset;
	padding: 3%;	/*余白*/
	background: url(../images/1.jpg) no-repeat center center / cover;
	color: #fff;
}
footer small {font-size: 100%;}
footer a {text-decoration: none;color: #fff !important;}
footer .pr {display: block;}

/*SNS
---------------------------------------------------------------------------*/
ul.icon {
	margin-bottom: 20px;
}
ul.icon li {
	display: inline-block;
}
ul.icon img {
	width: 30px;
}
ul.icon img:hover {
	opacity: 0.8;
}

/*table
---------------------------------------------------------------------------*/
.table_about{
	width: 100%;
	border-collapse: collapse;
}

.table_about tr{
	border-bottom: solid 2px white;
}

.table_about tr:last-child{
	border-bottom: none;
}

.table_about th{
	position: relative;
	text-align: left;
	width: 15%;
	background-color: #ab96d2;
	color: white;
	text-align: center;
	padding: 10px 0;
}

.table_about th:after{
	display: block;
	content: "";
	width: 0px;
	height: 0px;
	position: absolute;
	top:calc(50% - 10px);
	right:-10px;
	border-left: 10px solid #ab96d2;
	border-top: 10px solid transparent;
	border-bottom: 10px solid transparent;
	font-size: small;
}

.table_about td{
	text-align: left;
	width: 70%;
	background-color: #eee;
	padding: 10px 20px;
	font-size: small;
	line-height: 1.5;
}

.table_about td .small-red{
	color: #d03f85;
}

/*map
---------------------------------------------------------------------------*/
.map-embed iframe {
	width: 100%;
	height: 400px;
	border: none;
	border-radius: 8px;
	box-shadow: 0 4px 12px rgba(0,0,0,0.1);
	margin-bottom: 30px;
  }
  .map-block .map-inner {
	text-align: center;
	margin-top: 10px;
  }
  .map-block img {
	width: 100%;
	max-width: 600px;
	margin: 0 auto;
  }
  .map-gallery {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 20px;
  }
  .map-gallery a {
	flex: 1 1 300px;
	max-width: 400px;
  }
  .map-gallery img {
	width: 100%;
	height: auto;
	border-radius: 8px;
	box-shadow: 0 4px 10px rgba(0,0,0,0.08);
  }


/*stamp-rally
---------------------------------------------------------------------------*/
.stamp-steps {
  list-style: none;
  padding-left: 0;
  margin: 20px 0;
}
.stamp-steps li {
  position: relative;
  padding: 15px 20px 15px 100px;
  margin-bottom: 20px;
  background: #f4f4fa;
  border-left: 6px solid #ab96d2;
  border-radius: 6px;
  font-weight: bold;
  color: #333;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
}
.stamp-steps .step-num {
  position: absolute;
  left: 15px;
  top: 50%;
  transform: translateY(-50%);
  background: #ab96d2;
  color: white;
  font-size: 0.8rem;
  padding: 6px 12px;
  border-radius: 20px;
  white-space: nowrap;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

.button-stamp {
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    width: 350px;
    margin:0 auto;
    padding: .9em 2em;
    overflow: hidden;
    border: 1px solid #ab96d2;
    border-radius: 5px;
    background-color: #fff;
    color: #ab96d2;
	font-weight: bold;
    font-size: 1em;
}

.button-stamp:hover {
    background-color: transparent;
    color: #fff;
}

.button-stamp::before {
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    width: 0;
    height: 100%;
    background-color: #ab96d2;
	color:#ffffff;
    content: '';
    transition: width .3s ease;
}

.button-stamp:hover::before {
    width: 100%;
}

.button-stamp::after {
    transform: rotate(45deg);
    width: 5px;
    height: 5px;
    margin-left: 10px;
    border-top: 2px solid #ab96d2;
    border-right: 2px solid #ab96d2;
    content: '';
}

.button-stamp:hover::after {
    border-color: #fff;
}

.small-note {
  font-size: 0.85em;
  color: #666;
  padding: 10px 15px;
  border-left: 5px solid #ab96d2;
  margin-top: 30px;
  margin-bottom: 30px;
  border-radius: 4px;
}

.table_about .small-note {
	margin:10px 0 0 0;
}

ul.prizes {
  list-style: none;
  padding-left: 0;
  margin: 0;
}

ul.prizes li {
  margin: 0.4em 0;
  font-size: 13px;
}

ul.prizes i {
  color: #ab96d2; 
  margin-right: 0.5em;
  width: 1.2em;
  text-align: center;
}

/*photo-contest
---------------------------------------------------------------------------*/
#photo-contest {
	margin-top:50px !important;
	text-align: center;
  }
  #photo-contest h2 {
	font-size: 1.6em;
	margin-bottom: 10px;
  }
  #photo-contest span {
	font-size: 0.9em;
	color: #666;
  }

  #photo-contest .box img {
	width: 100%;
	max-width: 500px;
	border-radius: 12px;
	box-shadow: 0 4px 12px rgba(0,0,0,0.05);
  }
  .caption {
	font-size: 0.95em;
	color: #444;
	margin-top: 15px;
	line-height: 1.6;
  }

/* Links
---------------------------------------------------------------------------*/
#links ul{
	text-align: center;
}
#links li{
	margin-bottom: 30px;
}

#links .k_logo{
	width: 350px;
	margin: 10px auto;
	border: 1px solid #ab96d2;
	border-radius: 5px;
	background-color: #fff;
	color: #ab96d2;
}

#links .link_text::after {
    transform: rotate(45deg);
    width: 5px;
    height: 5px;
    margin-left: 10px;
    border-top: 2px solid #ab96d2;
    border-right: 2px solid #ab96d2;
    content: '';
	display: inline-flex;
}

#links .k_insta_mark{
	height: 80px;
}

/*language-switcher
---------------------------------------------------------------------------*/
.language-switcher {
	position: absolute;
	top: 10px;
	right: 10px;
	display: flex;
	gap: 8px;
  }
  
  .language-switcher img {
	width: 24px;
	height: 24px;
	cursor: pointer;
	border-radius: 50%;
	transition: transform 0.2s;
  }
  
  .language-switcher img:hover {
	transform: scale(1.1);
  }


/*PAGE TOP
---------------------------------------------------------------------------*/
body .nav-fix-pos-pagetop a {display: none;}

body.is-fixed-pagetop .nav-fix-pos-pagetop a {
	display: block;text-decoration: none;text-align: center;
	width: 50px;
	line-height: 50px;
	z-index: 1;
	position: fixed;
	bottom: 20px;
	right: 3%;
	background: #666;
	background: rgba(0,0,0,0.6);
	color: #fff;
	border: 1px solid #fff;
	animation-name: opa1;
	animation-duration: 1S;
	animation-fill-mode: both;
}

body.is-fixed-pagetop .nav-fix-pos-pagetop a:hover {
	background: #999;	/*背景色*/
}

/*ul,ol
---------------------------------------------------------------------------*/
ul.disc {
	list-style: disc;
	padding: 0 3% 20px 6%;
}
ol {
	padding: 0 3% 20px 6%;
}

---------------------------------------------------------------------------*/
.clearfix::after {content: "";display: block;clear: both;}
.look {background: rgba(0,0,0,0.1);border: 1px solid #ccc;display: inline-block;padding: 0px 10px !important;border-radius: 4px;}
.mb15,.mb1em {margin-bottom: 15px !important;}
.mb20 {margin-bottom: 20px !important;}
.mb30 {margin-bottom: 30px !important;}
.mb50 {margin-bottom: 50px !important;}
.plr3p {padding-left: 3% !important;padding-right: 3% !important;}
.clear {clear: both;}
.color1, .color1 a {color: #8eadc7 !important;}
.wl {width: 96%;}
.ws {width: 50%;}
.w48p {width: 48%;}
.c {text-align: center !important;}
.r {text-align: right !important;}
.l {text-align: left !important;}
.fl {float: left;}
.fr {float: right;}
.sh {display: none;}
.ofh {overflow: hidden;}

.tab-event {
    display: flex;
    flex-wrap: wrap;
    max-width: 100%;
}

.tab-event .box{
	padding-bottom: 30px !important;
}

.tab-event > label {
    flex: 1 1;
    order: -1;
    position: relative;
    min-width: 70px;
    padding: .7em 1em;
    background-color: #f2f2f2;
    color: #999;
            font-weight: 600;
    font-size: .9em;
    text-align: center;
    cursor: pointer;
}

.tab-event > label:hover,
.tab-event label:has(:checked) {
    background-color: #ab96d2;
    color: #fff;
}

.tab-event label:has(:checked)::before {
    position: absolute;
    bottom: -8px;
    left: 50%;
    transform: translateX(-50%);
    width: 18px;
    height: 9px;
    background-color: #ab96d2;
    content: '';
    clip-path: polygon(0 0, 100% 0, 50% 100%);
}

.tab-event input {
    display: none;
}

.tab-event > div {
    display: none;
    width: 100%;
    padding: 1.5em 1em;
}

.tab-event label:has(:checked) + div {
    display: block;
}

ol.event_list{
	counter-reset:list;
	list-style-type:none;
	font: 14px/1.6 'arial narrow', sans-serif;
	padding:0;
	width: 80%;
}
ol.event_list li{
	position:relative;
	color: #fff;
	padding: 0 0 0 30px;
	margin: 7px 0 7px 0px;
	font-weight: bold;
	font-size: 14px;
	line-height: 30px;
	border-radius: 20px;
	-webkit-transition: 0.3s;
	-moz-transition: 0.3s;
	-o-transition: 0.3s;
	-ms-transition: 0.3s;
	transition: 0.3s;
}
ol.event_list li:before{
	counter-increment: list;
	content: "";
	display: block;
	position: absolute;
	left: 10px;
	height: 10px;
	width: 10px;
	border-radius: 50%;
	background: #fff;
	top: 50%;
	-moz-transform: translateY(-50%);
	-webkit-transform: translateY(-50%);
	-o-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	transform: translateY(-50%);
}
ol.event_list li:hover{
	background: #8393ca;
	color:#ffffff;
}
ol.event_list li:hover:before{
	background: #ffffff;
}

ol.event_list .col1{
	border: 2px dotted #7779fd;
	color: #7779fd;
}
ol.event_list .col1:before{
	background: #7779fd;
}
ol.event_list .col2{
	border: 2px dotted #eebe3c;
	color: #eebe3c;
}
ol.event_list .col2:before{
	background: #eebe3c;
}
ol.event_list .col3{
	border: 2px dotted #77b4fd;
	color: #77b4fd;
}
ol.event_list .col3:before{
	background: #77b4fd;
}
ol.event_list .col4{
	border: 2px dotted #9ea51d;
	color: #9ea51d;
}
ol.event_list .col4:before{
	background: #9ea51d;
}
ol.event_list .col5{
	border: 2px dotted #502092;
	color: #502092;
}
ol.event_list .col5:before{
	background: #502092;
}
ol.event_list .col6{
	border: 2px dotted #289220;
	color: #289220;
}
ol.event_list .col6:before{
	background: #289220;
}
ol.event_list .col7{
	border: 2px dotted #1a65f1;
	color: #1a65f1;
}
ol.event_list .col7:before{
	background: #1a65f1;
}
ol.event_list .col8{
	border: 2px dotted #3ed0f5;
	color: #3ed0f5;
}
ol.event_list .col8:before{
	background: #3ed0f5;
}
ol.event_list .col9{
	border: 2px dotted #5cdc60;
	color: #5cdc60;
}
ol.event_list .col9:before{
	background: #5cdc60;
}
ol.event_list .col10{
	border: 2px dotted #92204c;
	color: #92204c;
}
ol.event_list .col10:before{
	background: #92204c;
}
ol.event_list .col11{
	border: 2px dotted #9f3d9f;
	color: #9f3d9f;
}
ol.event_list .col11:before{
	background: #9f3d9f;
}
ol.event_list .col12{
	border: 2px dotted #8978cc;
	color: #8978cc;
}
ol.event_list .col12:before{
	background: #8978cc;
}

.tab-event .event_btn{
	display: inline-flex;
	width: 48%;
}

/*800px
------------------------------------------------------------------------------------------------------------------------------------*/
@media screen and (max-width:800px){

/*header
---------------------------------------------------------------------------*/
header #nittei {
	font-size: large !important;
}

/*contents
---------------------------------------------------------------------------*/
#contents {
	padding: 50px 0px;

}
#stamp-rally .flex-wrap {
	flex-direction: column;
}
.map-gallery {
	flex-direction: column;
	align-items: center;
}
}

@media screen and (orientation:landscape) and (max-width:800px){

#menu_bar ul {
	margin-top: 80px;
}
}



/*480px
----------------------------------------------------------------------------------------------------------------------------------------*/
@media screen and (max-width:480px){


html,body {
	font-size: 13px;
}

/*header
---------------------------------------------------------------------------*/
header #logo {
	left: 10%;
	width: 80%;
	top: 48% !important;
}

header #nittei {
	top: 15% !important;
	font-size: 12pt !important;
}

/*bar ico
---------------------------------------------------------------------------*/
#menu_bar_hdr {
	top: 30px;
	left: 3%;
}

/*contents
/*h2*/
#contents h2 {
	margin-bottom: 30px;
	font-size: 1.5rem;
}
#contents section + section {
	margin-top: 50px;
}

/*その他
---------------------------------------------------------------------------*/
.ws,.wl {width: 94%;}
.w48p {width: 100%;}
.fl {float: none;}
.fr {float: none;}
.sh {display:block;}
.pc {display:none;}
.pc_block{display:none !important;}

ol.event_list{
	width: 100%;
}
.button-stamp {
	width: -webkit-fill-available;
}

.tab-event .event_btn{
	display: block;
	width: 100%;
	margin:10px auto;
}

}