/* ----------------------------------------------------------------
Setting
---------------------------------------------------------------- */
body {
  color: #000000;
  font-family: "Zen Maru Gothic", sans-serif;
	    line-height: 1.3;
	font-size: 14px;
  font-weight: 500;
	letter-spacing: 0.03em;
  position: relative;
}
img {
  vertical-align: bottom;
	max-width: 100%;
}
ol, ul {
  list-style-type: none;
	padding: 0;
	margin: 0;
}
a {
  text-decoration: none;
}
a, a:hover, a:visited {
  color: inherit;
}
*, ::before, ::after{
	margin: 0;
	box-sizing: border-box;
}
h1,h2,h3,h4{
	margin: 0;
	padding: 0;
}
.noto-sans {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
}
.zen-maru-gothic-bold {
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 700;
  font-style: normal;
}

.zen-maru-gothic-black {
  font-family: "Zen Maru Gothic", sans-serif;
  font-weight: 900;
  font-style: normal;
}
h2{
	font-size:clamp(1.875rem, 1.398rem + 2.39vw, 3.188rem);
	font-weight: 900;
	text-align: center;
}
 h2 .mini{
	font-size: clamp(1.563rem, 1.199rem + 1.82vw, 2.563rem);
}
h2 .blown{
	color: #a16953;
}
.sp{
	display: none;
}
@media only screen and (max-width: 750px) {
h2{
	font-size:clamp(1.563rem, 1.335rem + 1.14vw, 2.188rem);
}
 h2 .mini{
	font-size:1em;
}
body {
	font-size: 13px;
}
	.sp{
	display: block;
}
}
/* ----------------------------------------------------------------
header
---------------------------------------------------------------- */
header{
	background: #e6e6e6a8;
	box-shadow: 0px 0px 15px -5px #d1d1d1;
	position: absolute;
	top: 0;
	width: 100%;
	z-index: 2;
}
header .inner{
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 20px;
}
header h1{
	display: flex;
    align-items: center;
}
header img{
	max-width: 350px;
}
@media only screen and (max-width: 750px) {
	header .inner {
    padding: 10px;
}
	header img {
    max-width: 250px;
}
}
/* ----------------------------------------------------------------
FV
---------------------------------------------------------------- */
#fv{
	width: 100%;
	overflow: hidden;
	position: relative;
	background: url("../img/fv_bg.png");
}
#fv:before {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    background: url("../img/fv_parts03.png") top center no-repeat;
    background-size: contain;
    max-width: 1500px;
    margin: 0 auto;
    left: 0;
    right: 0;
    top: 0;
}
#fv .inner{
	height: 100%;
	width: 100%;
	position: relative;
    z-index: 1;
}
#fv .inner:before,
#fv .inner:after{
	content: "";
	position: absolute;
	bottom: 0;
	z-index: -1;
}
#fv .inner:before{
	background: url("../img/fv_parts01.png") bottom left no-repeat;
	background-size: contain;
	height: 470px;
	width: 40%;
	left: 0;
}
#fv .inner:after{
	background: url("../img/fv_parts02.png") bottom right no-repeat;
	background-size: contain;
	height: 390px;
	width: 40%;
	right: 0;
}
#fv .box:after {
    content: "";
    width: 100%;
    min-width: 1800px;
    aspect-ratio: 2048 / 80;
    position: absolute;
    left: 50%;
    transform: translate(-50%, 0%);
    bottom: 0;
    background: url("../img/main_bg_parts01.png") no-repeat center / 100% 100%;
    z-index: 0;
}
#fv .main_illust {
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 635px;
}
#fv .main_illust img {
    min-width: 1700px;
    max-width: 1800px;
    width: 100%;
    object-fit: cover;
    position: absolute;
    left: 50%;
    transform: translate(-50%, 0%);
}
#fv .donuy {
    text-align: center;
    font-size: 1.1em;
    line-height: 1.7;
    -webkit-text-stroke: 6px #ffffff;
    text-stroke: 6px black;
    paint-order: stroke;
}
#fv .hukidashi {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: center;
    width: 500px;
    margin: 0 auto;
    padding: 35px 0 30px;
}
@media only screen and (max-width: 750px) {
#fv .main_illust {
    width: 100%;
    height: 400px;
    display: flex;
    align-items: center;
}
#fv .main_illust img {
    min-width: 900px;
	        width: 150vw;
}
	#fv .donuy{
		width: 90%;
		margin: 0 auto;
		    -webkit-text-stroke: 4px #ffffff;
    text-stroke: 4px black;
	}
#fv .hukidashi {
    width: 300px;
    padding: 35px 0 30px;
}
}
/* ----------------------------------------------------------------
attempt
---------------------------------------------------------------- */
#attempt {
	position: relative;
    background: url("../img/main_bg.png");
    background-repeat: repeat;
        background-size:210px;
}
#attempt:before, #attempt:after {
    content: "";
    position: absolute;
    background: url("../img/side_img01.png") no-repeat center / 100% 100%;
    width:clamp(1.875rem, -1.989rem + 19.32vw, 12.5rem);
    aspect-ratio: 416 / 772;
    object-fit: contain;
    top: -100px;
    z-index: 1;
    left: 0;
}
#attempt:after{
	right: 0;
	left: auto;
	transform: scale(-1, 1);
}
#attempt > .inner {
    z-index: 1;
    width: 90%;
    max-width: 1000px;
    margin: 0 auto;
    padding: 0;
    margin-bottom: -60px;
    position: relative;
}
#attempt > .inner > .tl_area{
	margin-bottom: 100px;
}
#attempt .main_area > ul{
	
}
#attempt .main_area > ul > li {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
	gap:10px;
    margin-bottom: 80px;
}
#attempt .main_area > ul > li:last-child{
	margin-bottom: 0;
}
#attempt .main_area > ul > li .txt_area {
    padding-top: 30px;
    width: 44%;
    min-width: 430px;
    margin-bottom: 30px;
}
#attempt .main_area > ul > li .img_area{
width: 50%;
}
#attempt .main_area  > ul > li:nth-child(even) .txt_area{
	order:2;
}
#attempt .main_area > ul > li:nth-child(even) .img_area{
	order:1;
}
#attempt .main_area > ul > li .tl_area h3{
	color: #669933;
	    letter-spacing: 0.05em;
	font-size: 1.6em;
	font-weight: 900;
	 display: inline;
    padding: 0 4px 2px 4px;
    background: linear-gradient(transparent 70%, #ffff94 0%);
}
#attempt .main_area > ul > li .tl_area .store{
	margin: 15px 0;
	display: flex;
	align-items: center;
}
#attempt .main_area > ul > li .tl_area .store .img{
	width: 60px;
	margin-right: 10px;
}
#attempt .main_area > ul > li .tl_area .store .txt .name,
#attempt .main_area > ul > li .tl_area .store .txt .layer{
	  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
	font-size: 1.2em;
}
#attempt .main_area > ul > li .tl_area .store .txt .layer{
	color: #808080;
	font-size: 0.9em;
	margin-top: 5px;
}
#attempt .main_area > ul > li .list_txt{
	background: #eeedee;
	border-radius: 15px;
	padding:23px 18px;
}
#attempt .main_area > ul > li .list_txt li {
    font-weight: 800;
    list-style-position: inside;
    position: relative;
    padding-left: 1.2em;
    letter-spacing: 0.1em;
    line-height: 1.5;
}
#attempt .main_area > ul > li .list_txt li:not(:last-child){
	border-bottom: dashed 1px #acacac;
		padding-bottom: 15px;
	margin-bottom: 15px;
}
#attempt .main_area > ul > li .list_txt li:before {
    content: "";
    position: absolute;
    background: #489b32;
    width: 8px;
    height: 8px;
    left: 0;
    border-radius: 4px;
    top: 7px;
}
@media only screen and (max-width: 750px) {

	#attempt > .inner > .tl_area {
    margin-bottom: 30px;
}
#attempt .main_area > ul > li {
	flex-wrap: wrap;
	gap:0;
    margin-bottom: 60px;
}
#attempt .main_area > ul > li .txt_area {
    padding-top: 30px;
    width: 100%;
    min-width: auto;
    margin-bottom: 0;
	order: 2;
}
	#attempt .main_area > ul > li .img_area{
		width: 90%;
		margin: 0 auto;
		max-width: 500px;
	}
#attempt .main_area > ul > li .tl_area h3 {
    font-size: 1.3em;
}
}
/* ----------------------------------------------------------------
other_list
---------------------------------------------------------------- */
#other_list{
	background: #fff99e;
	position: relative;
	overflow: hidden;
	padding-bottom: 80px;
}
#other_list .top_img{
	    width: 100%;
    min-width: 1500px;
    aspect-ratio: 2724 / 446;
    position: relative;
    left: 50%;
    transform: translate(-50%, 0%);
    top: 0;
    background: url("../img/main_bg_parts02.png") no-repeat center / 100% 100%;
    z-index: 0;
}
#other_list > .inner{
	width: 90%;
	max-width: 800px;
	margin: 0 auto;
	padding-top: 30px;
}
#other_list  h2{
	margin-bottom: 30px;
}
.list_table table{
	    background: #fff;
	    border-spacing: 0;
    border-radius: 15px;
	overflow: hidden;
	margin-bottom: 20px;
}
.list_table table tbody{
  display: block;
  overflow: hidden;
  max-height: var(--tbody-h, 0px);
  transition: max-height 0.45s ease;
}
.list_table table thead,
.list_table table tbody tr{
  display: table;
  width: 100%;
  table-layout: fixed;
}
.list_table table th {
    background: #ddd;
    padding: 15px 10px;
	 border-right: solid 1px #a0a0a0;
}
.list_table table th:nth-child(1),
.list_table table td:nth-child(1){
	width: 10%;
}
.list_table table th:nth-child(2),
.list_table table td:nth-child(2){
	width: 40%;
}
.list_table table th:nth-child(3),
.list_table table td:nth-child(3){
	width: 50%;
}
.list_table table td:nth-child(2),
.list_table table td:nth-child(3){
	text-align: left;
}
.list_table table th:last-child{
	border-right: none;
}
.list_table table td {
    padding: 10px 15px;
    border-right: solid 1px #a0a0a0;
    border-bottom: solid 1px #a0a0a0;
	text-align: center;
}
.list_table table tr.hidden td{
	border-bottom: solid 1px #fff;
}
.list_table.is-open table tr.hidden td{
	border-bottom: solid 1px #a0a0a0;
}
.list_table table td:last-child{
	border-right: none;
}
.list_table table tr:last-child td{
	border-bottom: none;
}
.list_table .viewmore{
  margin-top: 16px;
}

.list_table .viewmore {
    margin-top: 16px;
    background: #003d70;
    border: none;
    padding: 12px;
    width: 160px;
    text-align: center;
    display: flex;
    justify-content: center;
    color: #fff;
    font-size: 1.1em;
    font-family: "Zen Maru Gothic", sans-serif;
    letter-spacing: 0.1em;
    border-radius: 30px;
    cursor: pointer;
    align-items: center;
    margin: 0 auto;
    gap: 10px;
}

.viewmore::after{
  content:"";
  width: 0.6em;
  height: 0.6em;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  transition: transform 0.25s ease;
}

.viewmore.is-open::after{
  transform: rotate(-135deg); /* 上向き */
}
@media only screen and (min-width: 751px) {
.viewmore:hover{
	background: #0c5fa5;
}
}
@media only screen and (max-width: 750px) {
	#other_list .top_img {
    min-width: 1000px;
}
	#other_list  h2 {
    margin-bottom: 20px;
}
#other_list {
    padding-bottom: 40px;
}
.list_table table {
    font-size: 0.8em;
}
	.list_table table th {
    padding: 5px;
}
.list_table table td {
    padding: 10px 7px;
}
.list_table table th:nth-child(1), .list_table table td:nth-child(1) {
    width: 15%;
}
.list_table table th:nth-child(2), .list_table table td:nth-child(2) {
    width:35%;
}
.list_table table th:nth-child(3), .list_table table td:nth-child(3) {
    width: 50%;
}
}
/* ----------------------------------------------------------------
bnr_area
---------------------------------------------------------------- */
#bnr_area{
		background: #71ab23;
	position: relative;
	padding: 60px 0 0;
	overflow: hidden;
}
#bnr_area .inner {
    width: 100%;
    text-align: center;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 200px;
	z-index: 1;
	    position: relative;
}
#bnr_area .box {
    max-width: 1100px;
    width: 100%;
    height: 100%;
    position: absolute;
    border: 0;
    left: 0;
    right: 0;
    margin: auto;
    z-index: 0;
}
#bnr_area .box:before,
#bnr_area .box:after{
	content: "";
	position: absolute;
	bottom: 0;
}
#bnr_area .box:before{
	background: url("../img/bnr01.png")no-repeat center / 100% 100%;
	    width: 25vw;
    max-width: 200px;
    aspect-ratio: 396 / 564;
	left: 0;
	    bottom: 9vw;
}
#bnr_area .box:after {
    background: url("../img/bnr02.png")no-repeat center / 100% 100%;
    width: 25vw;
    max-width: 200px;
    aspect-ratio: 415 / 540;
    right: 0;
    bottom: 9vw;
}
#bnr_area .inner h2{
	color: #fff;
	margin-bottom: 30px;
}
.original-button {
    line-height: 42px;
    display: block;
	text-align: center;
    text-decoration: none;
    color: #003d70;
    font-size: 20px;
    border-radius: 23px;
    width: 205px;
    height: 46px;
    font-weight: bold;
    border: 2px solid #003d70;
    position: relative;
    transition: 0.3s;
    box-shadow: 0px 7px 0px -2px rgba(0, 61, 112, 1);
    background-color: #ffffff;
	margin: 0 auto;
}
.arrow {
    display: inline-block;
    width: 8.4px;
    height: 14.7px;
    position: absolute;
    right: 10px;
    top: 34%;
}

.arrow::before,
.arrow::after {
  content: "";
  position: absolute;
  top: calc(50% - 1px);
  right: 0;
  width: 11px;
  height: 2px;
  border-radius: 9999px;
  background-color: #003d70;
  transform-origin: calc(100% - 1px) 50%;
}

.arrow::before {
  transform: rotate(45deg);
}

.arrow::after {
  transform: rotate(-45deg);
}
.bottom_img{
	margin-top: 20px;
	    margin-bottom: -1px;
	    width: 100%;
    min-width: 1500px;
    aspect-ratio: 2732 / 225;
    position: relative;
    left: 50%;
    transform: translate(-50%, 0%);
    bottom: 0;
    background: url("../img/bnr_bg.png") no-repeat center / 100% 100%;
    z-index: 0;
}
.not-workshop{
	height: 80px;
	width: 100%;
	background: #e4e3ae;
}
@media only screen and (min-width: 751px) {
	.original-button:hover {
  box-shadow: 0 0 #003d70;
  transform: translateY(1px);
}
}
@media only screen and (max-width: 750px) {
	#bnr_area {
    padding: 40px 0 0;
}
	#bnr_area .inner {
    width: 91%;
    padding: 0;
}
.original-button {
    font-size: 19px;
}
#bnr_area .box {
    width: 100vw;
    left: 50%;
    transform: translate(-50%, 0%);
}
.bottom_img {
    min-width: 500px;
    left: 38%;
    transform: translate(-38%, 0%);
}
#bnr_area .box:before {
    width: 115px;
    bottom: 16vw;
    opacity: 0.7;
}
#bnr_area .box:after {
    width: 115px;
    bottom: 16vw;
    opacity: 0.7;
}
	#bnr_area .h2_area{
		        -webkit-text-stroke: 6px #71ab23;
		    paint-order: stroke;
        text-stroke:6px black;
	}
}
/* ----------------------------------------------------------------
event
---------------------------------------------------------------- */
#event{
	background: #e4e3ae;
	position: relative;
}
#event .box:before{
	content: "";
	position: absolute;
	background: url("../img/event01.png") no-repeat center / 100% 100%;
	aspect-ratio: 333 / 459;
	max-width: 150px;
	width:30vw;
	left: 0;
	top: -25px;
}
#event > .inner{
	max-width: 1000px;
	margin: 0 auto;
	width: 90%;
	padding: 100px 0 100px;
}
#event .box{
	position: relative;
}
#event .box > .inner01{
	overflow: hidden;
		background: #fff;
	border-radius: 15px;
}
#event .box h4{
	display: block;
	font-size: clamp(1.25rem, 0.864rem + 1.93vw, 2.313rem);
	line-height: 1;
	padding:17px 150px;
	color: #fff;
	font-weight: 800;
	background: #b41e8e;
	text-align: center;
}
#event .box .inner{
	display: flex;
	padding: 30px 35px 25px;
	justify-content: space-between;
	align-items:center;
}
#event .box .inner .txt_box{
	width: 48%;
}
#event .box .inner .img_box{
	width: 48%;
}
#event .box .inner .txt_box .note{
	padding: 0 0 10px 100px;
}
#event .box .inner .txt_box .note .txt_note{
	display: flex;
	margin-bottom: 15px;
}
#event .box .inner .txt_box .note .txt_note .txt01{
	width: 70px;
	color: #fff;
	text-align: center;
	background: #71ab23;
	padding: 5px;
	margin-right: 20px;
	border-radius: 5px;
}
#event .box .inner .txt_box .note .txt_note .txt02{
	font-size: 1.4em;
}
#event .box .inner .txt_box .note .txt_note .txt02 span{
	font-size: 0.8em;
}
#event .box .inner .txt_box .main_txt{
	background: #eeedee;
	padding: 20px 25px;
	border-radius: 15px;
	line-height: 1.8;
}
#event .box .inner .txt_box .main_txt p {
    font-size: 1.4em;
    background: #ffffae;
    text-align: center;
    border-radius: 5px;
    margin-bottom: 10px;
	padding: 0 10px;
}

#event .box .inner .txt_box .main_txt li {
    padding-left: 1.2em;
    position: relative;
    font-size: 1.15em;
    border-bottom: dashed 1px #acacac;
    padding-bottom: 10px;
    margin-bottom: 10px;
}
#event .box .inner .txt_box .main_txt li:last-child{
	    border-bottom: none;
    padding-bottom: 0px;
    margin-bottom: 0px;
}
#event .box .inner .txt_box .main_txt li:before {
    content: "";
    position: absolute;
    background: #b41e8e;
    width: 8px;
    height: 8px;
    left: 0;
    border-radius: 4px;
    top: 7px;
}
#event .btn{
	padding: 0 35px;
	margin-bottom: 45px;
}
#event .btn .original-button{
	    width: 255px;
	    color: #b41e8e;
    border: 2px solid #b41e8e;
    transition: 0.3s;
    box-shadow: 0px 7px 0px -2px rgb(180 30 142);
}
#event .btn .original-button:hover {
    border: 2px solid #b41e8e;
}
#event .btn .original-button .arrow::before, #event .btn .original-button .arrow::after {
    background-color: #b41e8e;
}
@media only screen and (min-width: 751px) {
#event .btn .original-button:hover {
  box-shadow: 0 0 #b41e8e;
  transform: translateY(1px);
}
}
@media only screen and (max-width: 750px) {
	
	#event > .inner {
    width: 90%;
    padding: 40px 0 60px;
}
#event .box .inner {
    display: block;
    padding: 30px 25px;
}
#event .box h4 {
    font-size: 1.5em;
    padding: 17px 20px 17px 55px;
}
#event .box .inner .txt_box {
    width: 100%;
	margin-bottom: 20px;
}
	#event .box .inner .img_box {
    width: 100%;
}
#event .box:before {
    max-width: 75px;
    width: 20vw;
    left: -14px;
    top: -25px;
}
#event .box .inner .txt_box .note {
    padding: 0 0 10px 0;
}
#event .box .inner .txt_box .main_txt {
    padding: 17px 18px;
}
#event .box .inner .txt_box .note .txt_note {
    margin-bottom: 10px;
}
#event .box .inner .txt_box .note .txt_note .txt01 {
    width: 50px;
    margin-right: 10px;
}
#event .box .inner .txt_box .main_txt p {
    font-size: 1.2em;
}
#event .box .inner .txt_box .main_txt li {
    font-size: 1em;
}
.not-workshop{
	height: 30px;
}
}