@charset "utf-8";
html {
    background-color: azure;
    padding: 0%;
    scroll-behavior: smooth;
}
body, header, nav, main, div, section, 
article, p, h1, h2, h3, h4, dl, dt, dd, 
span, aside {
    margin: 0;
    padding: 0;
}
body {
    box-sizing: border-box;
    max-width: 600px;
    width: 100%;
    margin: auto;
    min-width: none;
    background-color: white;
    color: rgb(80, 80, 80);
}
img {
    max-width: 100%;
}
header {
    max-width: 600px;
    width: 100%;
}
header a {
    display: block;
    text-align: left;
    float: left
}
#logo {
    width: 33.3%;
    padding-right: 0.3%;
}
#kanban {
    width: 66.4%;
}
header img {
    vertical-align: middle;
}
#sub {
    box-sizing: border-box;
    width: 100%;
}

#sub a {
    display: block;
}
#sub a img {
    vertical-align: middle;
}
a image {
    transition: opacity 0.2s linear;
}
a:hover img {
    opacity: 0.6;
}
/******メインメニュー******/
nav {
    clear:both;
    margin-bottom: 2%;
}
nav ul {
    list-style: none;
    width: 100%;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
}
nav ul li {
    display: block;
    box-sizing: border-box;
    height: 2em;
    background-color: powderblue;
    width: 25%;
    border: solid 1px white;
    text-align: center;
    padding-top: 0.3em;
}
nav ul li a {
    display: block;
    color: rgb(80, 80, 80);
    text-decoration: none;
}
nav ul .current {
    background-color: lightskyblue;
}
nav ul li:hover {
    background-color: lightcyan;
}
/******緊急のお知らせ用******/
#emergency {
    clear: both;
    box-sizing: border-box;
    width: 100%;
    background-color: yellow;
    margin-bottom: 2%;
    padding: 2% 4% 2% 4%;
}
#emergency span {
    color:red;
    font-size: large;
}
/******トップページの大きな画像と一言******/
#mainVisual {
    box-sizing: border-box;
    width: 94%;
    margin: auto;
    margin-bottom: 3%;
    text-align: center;
}
#mainVImg img {
    width: 100%;
}
#mainVImg {
    margin-bottom: 2%;
}
#mainVText {
    box-sizing: border-box;
    width: 90%;
    margin: auto;
    font-size: large;
    padding-bottom: 2%;
}
#mainVText span {
    display: inline-block;
}
/******その他のページの大きな画像と一言******/
#MV {
    box-sizing: border-box;
    width: 94%;
    margin: auto;
    margin-bottom: 3%;
    text-align: center;
    display: flex;
    flex-direction: row;
    justify-content: space-around;
}
#MVImg {
    width: 35%;
    margin: auto;
}
#MVText {
    width: 68%;
    margin: auto;
}
#MVText span {
    display: inline-block;
}
/******そのページのメインの情報 見出し******/
main h1 {
    clear: both;
    box-sizing: border-box;
    width: 98%;
    height: 1.7em;
    padding-top: 0.2em;
    margin-left: 1%;
    padding-left: 2%;
    margin-bottom: 1%;
    background-color: whitesmoke;
    border-left: solid darkblue 10px;
    border-bottom: solid darkblue 1px;
    font-size: 1.4em;
    font-weight: bold;
    margin-bottom: 2%;
}
main h2 {
    clear: both;
    box-sizing: border-box;
    width: 98%;
    margin-left: 1%;
    padding-left: 2%;
    background: lavender;
    border: solid cadetblue 1px;
    border-radius: 4px;
    font-size: 1.2em;
    margin-bottom: 1%;
}
main h2 a {
    display: block;
    text-decoration: none;
}
h2 span {
    display: inline-block;
}

main h3 {
    display: inline;
    line-height: 1.2em;
    font-size: 1.1em;
    background: linear-gradient(transparent 75%, turquoise);
    margin-bottom: 2%;

}

/******アコーディオン******/
summary {
    display: block;
  }
summary::-webkit-details-marker {
    display: none;
  }
.summary_inner{
    cursor: pointer;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    padding-right: 2%;
  }
  .icon {
    display: block;
    position: relative;
    width: 24px;
    margin-left: 6px;
    flex-shrink: 0;
    transform-origin: center 43%;
    transition: transform 0.4s;
  }
  details[open] .icon {
    transform: rotate(180deg);
  }
  .icon::before,
  .icon::after {
    content: "";
    position: absolute;
    display: block;
    width: 15px;
    height: 3px;
    background-color: darkblue;
  }
  .icon::before {
    left: 0;
    transform: rotate(45deg);
  }
  .icon::after {
    right: 0;
    transform: rotate(-45deg);
  }
  @keyframes close-animation {
    from {
      transform: rotate(180deg);
    }
    to {
      transform: rotate(0deg);
    }
  }
  details[open] .summary_inner::after {
    animation: 0.4s open-animation forwards;
  }
  @keyframes open-animation {
    from {
      transform: rotate(0deg);
    }
    to{
      transform: rotate(180deg);
    }
  }

article {
    clear: both;
    box-sizing: border-box;
    width: 100%;
    padding: 1% 3%;
    overflow: auto;
    border-bottom: dotted rgb(80, 80, 80) 1px;
    margin-bottom: 1%;
}
article p {
    width: 96%;
    margin-top: 1%;
    margin-bottom: 2%;
    padding-left: 2%;
}
article span {
    display: inline-block;
}
#congratulations {
    font-size: large;
    font-weight: bold;
    color: red;
}
.right {
    text-align: right;
}
.aImgR {
    box-sizing: border-box;
    padding: 2%;
    width: 30%;
    float: right;
}
.aImgR img {
    width: 100%;
}
.aImgL {
    box-sizing: border-box;
    padding: 2%;
    width: 30%;
    float: left;
}
.aImgL img {
    width: 100%;
}
.aText {
    display: inline;
}
article dl {
    margin-bottom: 1%;
    display: flex;
    flex-direction: column;
}
.event dt {
    display: inline-block;
    border-bottom: solid rgb(80, 80, 80) 1px;
    font-weight: bold;
    margin-bottom: 1%;
}
.event dd {
    display: inline-block;
    padding-left: 2%;
    margin-bottom: 1%;
    }
.result dt{
    display: inline-block;
    font-weight: bold;
    margin-bottom: 1%;
}
.result dd {
    display: inline-block;
    padding-left: 2%;
    margin-bottom: 1%;
    }
#map {
    width: 90%;
    height: 90%;
    margin: 2% 5%;
}
.admition  {
    border: solid 1px gray;
    width: 90%;
    margin-left: 5%;
    border-collapse: collapse;
    text-align: left;
}
.admition th,td  {
    border: solid 1px gray;
    width: 50%;
    padding-left: 5%;
}
.fee-t {
    border: solid 1px gray;
    width: 98%;
    border-collapse: collapse;
    text-align: left;
    margin-top: 2%;
    margin-bottom: 5%;
}

.fee-t th,td {
    border: solid 1px gray;
    border-collapse: collapse;
    font-size: 90%;
}
.fee-t th {
    text-align: center;
}
.fee-t tfoot td {
    padding-left: 2%;
}
.fee-sub {
    width: 10%;
    text-align: center;
    padding: 0;
}
.fee-name {
    width: 30%;
    text-align: left;
    padding-left: 2%;
}
.fee-fee {
    width: 30%;
    padding: 0;
    text-align: center;
}
.fee-rem {
    padding-left: 2%;
    text-align: left;
}
.fee-c-name {
    width: 50%;
    padding-left: 2%;
}
.fee-c-fee {
    width: 30%;
    padding: 0%;
    text-align: center;
}
.fee-h-name {
    width: 60%;
    text-align: center;
}
.fee-packet {
    width: 35%;
    text-align: center;
    padding: 0;
}

#lineQR {
    display: none;
}


/******お問い合わせ******/
#contact {
    box-sizing: border-box;
    max-width: 600px;
    height: 100px;
    position: fixed;
    bottom: 0;
    width: 100%;
    margin: 0;
    background-color: whitesmoke;
}
#contact h1 {
    background-color: blue;
    color: white;
    text-align: center;
    font-size: medium;
}
#contact div {
    box-sizing: border-box;
    width: 80%;
    margin: auto;
    margin-top: 2%;
    margin-bottom: 2%;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}
#contact a {
    display: block;
    height: 50px;
}
#contact a img {
    max-height: 100%;
}
#entry {
    border-left: #ddd solid 1px;
    border-right: #ddd solid 1px;
    border-bottom: #ddd solid 1px;
    box-sizing: border-box;
}
#entry dl {
    box-sizing: border-box;
    width: 100%;
}
#entry dl dt,
#entry dl dd {
    box-sizing: border-box;
    padding: 10px;
    border: none;
}
#entry dl dt {
    width: 100%;
    font-weight: bold;
    border-top: 1px solid #ddd;
}
#entry dl dd {
    width: 100%;
    margin-left: 0;
    background-color: #fff;
}
#entry dl dd:last-child {
    border-bottom: 1px solid #ddd; ;
    margin-bottom: 30px;
}
.must { color: #f00;}
#entry #name {
    width: 15em;
    padding: 3px;
}
#entry #email {
    width: 15em;
    padding: 3px;
}

#entry label {
    display: inline-block;
}
#entry #grade1,
#entry #grade2,
#entry #grade3,
#entry #grade4,
#entry #grade5,
#entry #grade6,
#entry #grade7,
#entry #grade8 {
    margin-right: 35px;
}

#entry #interest1,
#entry #interest2,
#entry #category1,
#entry #category2,
#entry #questionnaire1,
#entry #questionnaire2, 
#entry #questionnaire3 {
    margin-right: 15px;
}

#entry #detail {
    box-sizing: border-box;
    width: 94%;
    height: 5em;
    margin-left: auto;
    margin-right: auto;
    font-size: 16px;
}
#entry #detail:focus {
    background-color: lightyellow;
    max-width: 97%;
    font-size: 22px;
}
#entry #submit_button_cover {
    text-align: center;
}

#entry #submit_button {
    box-sizing: border-box;
    background-color: #1d22a0;
    border: solid 1px #1d22a0;
    width: 80%;
    padding-top: 15px;
    padding-bottom: 15px;
    border-radius: 10px;
    font-size: 18px;
    color: #fff;
    cursor: pointer;
    transition: background-color 0.1s linear;
}
#entry #submit_button:hover {
    background-color: #4a70ed;
}
#entry dl {
    background-color: powderblue;
}
select {
    font-size: 16px;
}
option {
    display: block;
}
input {
    font-size: 16px;
}
input:focus {
    background-color: lightyellow;
    max-width: 97%;
    font-size: 18px;
}
#confirm_submit_button {
    box-sizing: border-box;
    background-color: #1d22a0;
    border: solid 1px #1d22a0;
    width: 50%;
    padding-top: 15px;
    padding-bottom: 15px;
    border-radius: 10px;
    font-size: 18px;
    color: #fff;
    cursor: pointer;
    transition: background-color 0.1s linear;
}
#confirm_return_button{
    box-sizing: border-box;
    background-color: skyblue;
    border: solid 1px skyblue;
    width: 30%;
    padding-top: 15px;
    padding-bottom: 15px;
    border-radius: 10px;
    font-size: 18px;
    color: darkblue;
    cursor: pointer;
    transition: background-color 0.1s linear;    
}
.shita {
    display: block;
    width: 40%;
    height: 15px;
    margin-left: 30%;
    margin-bottom: 2%;
}

/******サイド******/
aside {
    max-width: 600px;
    width: 100%;
}
.side {
    box-sizing: border-box;
    width: 100%;
    background-color: whitesmoke;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    text-align: center;
    padding: 3%;
}
.side a {
    display: block;
    line-height: 2em;
    box-sizing: border-box;
    width: 80%;
    background-color: #1d22a0;
    border: solid #1d22a0 1px;
    border-radius: 5px;
    margin-bottom: 2%;
    margin-left: 10%;
    text-decoration: none;
    color: whitesmoke;
}
.side a:hover {
    background-color: #4a70ed;
    border: solid #4a70ed 1px;
}
.side :last-child {
    margin-bottom: 0;
}
.club {
    box-sizing: border-box;
    width: 100%;
    display: flex;
    flex-direction: row;
}
.club img {
    width: 100%;
}
/*先頭に戻る*/
.pagetop {
    height: 50px;
    width: 50px;
    position: fixed;
    right: 15px;
    bottom: 120px;
    background: #fff;
    border: solid 2px #000;
    opacity: 60%;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 2;
}
.pagetop_arrow {
    height: 10px;
    width: 10px;
    border-top: 3px solid #000;
    border-right: 3px solid #000;
    transform: translateY(20%) rotate(-45deg);
}

footer {
    box-sizing: border-box;
    background-color: powderblue;
    margin-bottom: 100px;
    text-align: left;
}
footer ul {
    list-style: none;
    padding: 0;
    padding-top: 2%;
    margin-left: 5%;
}
footer li {
    display: inline;
}
footer span {
    display: inline-block;
}
footer a:hover {
    font-weight: bold;
}
footer small {
    clear: both;
    display: block;
    box-sizing: border-box;
    text-align: center;
    width: 100%;
    background-color: darkblue;
    color: white;
}
/***share***/
#share {
    text-align: right;
    height: 5%;
}
#share img {
    width: 12%;
}


/*** for PC ***/
@media screen and (min-width: 768px) {
body {
    max-width: 902px;
    width: 902px;
    margin: auto;
    border-left: solid rgb(80, 80, 80) 1px;
    border-right: solid rgb(80, 80, 80) 1px;
    padding-top: 10px;
}
header {
    margin-left: 48px;
}
#emergency {
    width: 799px;
    margin-left: 48px;
    margin-bottom: 2%;
}
nav {
    max-width: 799px;
    margin: 0;
    padding-left: 48px;
}

#mainVisual {
    box-sizing: border-box;
    width: 100%;
    padding: 0 10% 3%;
    display: flex;
    flex-direction: row;
    border-bottom: solid rgb(80, 80, 80) 1px;
    margin-bottom: 2%;
}
#mainVImg {
    width: 75%;
    margin-bottom: 0;
}
#mainVText {
    width: 25%;
}
#MV {
    box-sizing: border-box;
    max-width: 598px;
    width: 96%;
    padding: 0 20px;
    float: left;
}
#MVImg {
    width: 48%;
}
#MVText {
    width: 48%;
}
main {
    max-width: 600px;
    box-sizing: border-box;
    width: 100%;
    float: left;
}
.aText {
    display: block;
    box-sizing: border-box;
    width: 70%;
    float: left;
}
.fee-c-name {
    width: 65%;
    padding-left: 2%;
}
.fee-c-fee {
    width: 20%;
    padding: 0%;
    text-align: center;
}
#lineQR {
    display: block;
}
aside {
    max-width: 294px;
    box-sizing: border-box;
    padding-right: 4px;
    width: 100%;
    float: right;
}
#contact {
    position: static;
    margin-bottom: 8px;
    padding-bottom: 4px;
}
#contact div {
    margin-top: 10px;
    height: 54px;
    width: 94%;
}

.side {
    margin-bottom: 8px;
}
.club {
    flex-direction: column;
}
.pagetop {
    position: fixed;
    right: 30px;
    bottom: 30px;
}
#sub {
    width: 22%;
    box-sizing: border-box;
    margin-left: 1px;
    display: flex;
    flex-direction: column;
    float: left;
}
footer {
    clear: both;
    margin-bottom: 0;
    margin: 0;
    text-align: center;
}
footer ul {
    padding-top: 1%;
    margin: 0;
}
#share img {
    width: 8%;
}

}
