@charset "UTF-8";

body {
  background: #FFF;
  font-family: YuGothic, 'Yu Gothic', 'TsukuBRdGothic-Regular', 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', 'Cambria Math', 'Avenir', sans-serif;
  padding: 0;
  margin: 0;
  color: #000;
  font-size: 16px;
  position: relative;
}
@media screen and (max-width: 768px) {
  body{
    font-size: 14px;
  }
}

body#text {
  background: #3cb0e6;
  /* background: -webkit-gradient(linear, left top, left bottom, from(#577d85), to(#57585c)); */
  /* background: linear-gradient(to bottom, #577d85 0%, #57585c 100%); */
  background-attachment: fixed;
}

body#text main .container {
  background: snow;
  padding: 30px;
  margin-top: 100px;
}

@media screen and (max-width: 767px) {
  body#text main .container {
    padding: 20px;
  }
}

body#text p {
  line-height: 2em;
}

a {
  text-decoration: none;
  color: snow;
  -webkit-transition: 0.7s;
  transition: 0.7s;
}

a:hover {
  color: #b2d4ce;
}

a img:hover {
  -webkit-filter: brightness(120%);
  filter: brightness(120%);
  -webkit-transition: 0.7s;
  transition: 0.7s;
}

dl,
p,
ul,
ol {
  padding: 0;
  margin: 0;
list-style: none;
}

p {
  line-height: 2.2em;
}

h1,
h2,
h3,
h4,
h5 {
  font-family: "Sawarabi Mincho", sans-serif;
}

.container {
  margin: 60px auto;
}


.center {
  text-align: center;
}

.left {
  text-align: left;
}

.right {
  text-align: right;
}

img {
  max-width: 100%;
}

h2 {
  font-size: 3.2rem;
  font-weight: bold;
  margin: 20px auto;
  color: #000;
  width: 100%;
  font-family: 'Zen Maru Gothic', sans-serif;
  letter-spacing: 0.6em;
}

@media screen and (max-width: 767px) {
  h2 {
    font-size: 1.8rem;
  }
}

@media screen and (max-width: 575px) {
  h2 {
    font-size: 1.5rem;
  }
}

h3 {
  font-size: 130%;
  display: block;
  margin: 20px auto;
  color: #000;
  font-family: 'Zen Maru Gothic', sans-serif;
  text-align: center;
  letter-spacing: 0.3rem;
}

@media screen and (max-width: 767px) {
  h3 {
    font-size: 110%;
  }
}

header {
  width: 100%;
  position: fixed;
  top: 0;
  z-index: 9999;
  background-color: #666;
  height: 60px
}

header .container {
  margin: 0 auto;
  background-image: url(../img/heder_logo.webp);
  background-repeat: no-repeat;
  background-position: 0% 50%;
  background-size: auto;

}

@media screen and (max-width: 767px) {
  header .container {
    padding: 0;
    background-position: 0% 50%;
    background-size: 25%;

  }

  header {
    height: 50px
  }
}
@media screen and (max-width: 580px) {
  header .container {
    padding: 0;
    background-position: 0% 50%;
    background-size: 28%;

  }
}



header ul {
  display: -webkit-box;
  display: flex;
  -webkit-box-pack: end;
  justify-content: flex-end;
  margin: 15px 0 15px auto;
  padding: 0;
  width: 70%;
}

header ul li {
  text-align: center;
  width: 100px;
  line-height: 0.9em;
}


header ul li a {
  display: block;
  padding: 0 20px;
  color: #FFF;
  font-size: 1rem;
}

header ul li a span {
  font-size: 0.5rem;
  width: 100%;
}


header ul li a:hover {
  color: snow;
  -webkit-transform: translateY(-3px);
  transform: translateY(-3px);
}

@media screen and (max-width: 767px) {
  header ul li a {
    padding: 0px;
    font-size: 1.25rem;
  }

  header ul li a span {
    display: none;
  }

  header ul li {
    width: 42px;
  }
  
}

/* 申込・会員登録ボタン */
#login{
right: 20px;
 bottom: 90px;
  color: #000;
  font-weight: bold;
  z-index: 999;
  opacity: 0.9;
  font-size: 12px;
  -webkit-transition: 0s;
  transition: 0s;
  margin-bottom: 90px;
}
#login div{
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background-color: rgb(255, 230, 87);
  border-radius: 50%;
  width: 100px;
  height: 100px;
  text-align: center;
  position: relative
}
#login div::before{
  content: "";
  border:2px solid rgb(255, 230, 87);
  border-radius: 50%;
  position: absolute;
  right: 0;
  left: -10px;
  top: 0;
 bottom: 0;
 margin: auto;
  width: 120px;
  height: 120px;
}


#login div i{
  font-size: 25px;
}
#login:hover{
  opacity: 1.0;
}
#login:hover div::before{
  border:10px solid rgb(255, 230, 87);

}
@media screen and (max-width: 767px) {
  #login{
    right: 0;
    left: -10px;
    bottom: 0;
    font-size: 12px;
    margin-bottom: 10px;
  }
  #login div{
    width: 160px;
    height: 50px;
    padding: 0.25em 0.25em 0.25em 20px ;
    border-radius: 10px;
    text-align: left;
    line-height: 1.25em;
    flex-direction: row;
    justify-content: space-evenly;
  }
  #login div::before {
    display: none;
}
}

/* home */

section {
  position: relative;
  overflow: hidden;
}

section#top {
  /* height: calc(100vh - 40px); */
  height: fit-content;
  z-index: 1;
  background: #FFF;
  position: relative;
  padding-top: 60px;
  margin-bottom: 8rem;
}

@media screen and (max-width: 767px) {
  section#top {
    border-radius: 0;
    height: 100vh;
    padding-top: 50px;
  }
}



input[type=submit], [type='button'] {
  border: 1px solid #e2e2e2;
  padding: 2px 8px;
  font-size: 12px;
}

input[type=submit]:focus {
  outline: none;
}


@import url('https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@500&display=swap');

.title {
  position: absolute;
  height: 100%;
  width: 100%;
  max-width: 1220px;
  top: 0%;
  right: 0%;
  left: 0;
  bottom: 0;
  margin: auto;
  display: flex;
  justify-content: center;
}

.title h1 {
  margin: auto auto auto 30%;
  color: #000;
  font-size: 8rem;
  line-height: 2em;
  letter-spacing: 0.5em;
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  font-family: 'Shippori Mincho', serif;
  display: block;
  text-shadow: 2px 2px 15px #FFF;
}

.sp {
  display: none;
}

section#top a {
  display: block;
  text-align: center;
  /* background: #313536; */
  width: 60px;
  height: 60px;
  border-radius: 50%;
  position: absolute;
  top: 90%;
  right: 0;
  left: 0;
  margin: auto;
  z-index: 100;
  font-size: 30px;
  line-height: 60px;
  color: #313536;
  ;
  opacity: 0.7;
}

section#top a i {
  -webkit-transition: .7s;
  transition: .7s;
}

section#top a:hover i {
  -webkit-transform: translateY(5px);
  transform: translateY(5px);
  -webkit-transition: .7s;
  transition: .7s;
}

@media screen and (max-width: 980px) {
  .title h1 {
    font-size: 6rem;
  }
}
@media screen and (max-width: 767px) {
  section#top a {
    opacity: 1;
    background-color: #FFF;
  }

  .pc {
    display: none;
  }

  .sp {
    display: block;
  }

  .title {
    top: 0;
    right: 0;
    left: 0;
    bottom: 0;
    margin: auto;
  }

  .title h1 {
    font-size: 5rem;
  }

  .mainimg {
    height: 100%;
  }

  .mainimg img {
    height: 100%;
    width: 100%;
    object-fit: cover;
  }
}

.fadeIn {
  animation-name: fadeInAnime;
  animation-duration: 1s;
  animation-fill-mode: forwards;
  opacity: 0;
}

@keyframes fadeInAnime {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}
@media screen and (max-width: 580px) {
.title h1 {
  margin: auto auto auto 5%;
}
}

.kome1,
.kome2,
.kome3,
.kome4 {
  font-family: 'Shippori Mincho', serif;
  display: block;
  background-color: rgba(255, 255, 255, 0.8);
  color: #000;
  font-weight: bold;
  font-size: 1.9rem;
  position: absolute;
  line-height: 1.2em;
  padding: 1.25rem 2rem;

}

.kome1 {
  top: 10%;
  left: 0%;
}

.kome2 {
  writing-mode: vertical-rl;
  top: 18%;
  right: 10%;
}

.kome3 {
  width: fit-content;
  bottom: 30%;
  left: 5%;
  margin: auto;
  background-color: none;
}

.kome4 {
  width: 30%;
  max-width: 320px;
  bottom: 8%;
  right: 0;
  left: 0;
  margin: auto;
  padding: 0.5em;
  opacity: 0.8;
}
@media screen and (max-width: 980px) {
  .kome1,
  .kome2,
  .kome3,
  .kome4 {
    font-size: 1.5rem;
    padding: 1rem;
  }
  
  .kome3 {
    bottom: 20%;
    left: 5%;
  }

}@media screen and (max-width: 580px) {
  .kome1,
.kome2,
.kome3,
.kome4 {
  font-size: 1.2rem;
  padding: 0.5rem;
}
.kome2 {
  writing-mode: vertical-rl;
  top: 10%;
  right: 5%;
}
.kome3 {
  bottom: 30%;
  left: 0%;
  right: 0;
}
.kome4 {
  width: 40%;
  max-width: 320px;
  bottom: 20%;
  right: 0;
  left: 0;
  margin: auto;
  padding: 0.5em;
  opacity: 0.8;
}


}

/* 生徒募集中欄 */
a.boshutyu{
  text-align: center;
  display: block;
  margin: 5rem auto;
  background-color: rgb(255, 230, 87);
  color: #000;
  font-size: 1.5rem;
  font-weight: bold;
  padding: 0.5rem;
  position: relative;
}

a.boshutyu::before{
content: '\F083';
font-family: 'Font Awesome 6 Free';
color: #000;
font-weight: 900;
font-size: 6rem;
position: absolute;
top: -50%;
left: 20%;
transform: rotate(-0.05turn);
background-color: #FFF;
padding:0.25rem 1rem;
}
a.boshutyu:hover{
  background-image: repeating-linear-gradient(45deg, #FFF, #FFF 2px,transparent 0, transparent 4px);
}
a.boshutyu:hover::before{
  text-shadow: #000 2px 2px 0px, #000 -2px 2px 0px, #000 2px -2px 0px, #000 -2px -2px 0px;
  color:rgb(255, 230, 87);
}

/* ポイントアピール */
section#first {
  overflow: visible;
  margin-bottom: 5rem;
}

ul.plist {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  width: 100%;
  margin-top: 3rem;
}

ul.plist2 {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-evenly;
  width: 100%;

}

ul.plist li, ul.plist2 li {
  width: 280px;
}
.ssp{
  display: none;
}
@media screen and (max-width: 980px) {
  .ssp{
    display: block;
  }
  .plist2 li{
    display: none !important;
  }

  ul.plist li, ul.plist2 li {
   margin: 0 auto 3rem auto;
  }
}

ul.plist li div,ul.plist2 li div {
  width: 100%;
  height: 280px;
  background-color: rgb(255, 230, 87);
  border-radius: 100%;
  position: relative;
  display: flex;
  justify-content: center;
  vertical-align: bottom;
  margin-bottom: 1rem;
}

ul.plist li div img,ul.plist2 li div img {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  bottom: 60%;
  margin: auto;
}

ul.plist li:nth-child(odd) div img {
  bottom: 40%;
}

ul.plist li p,ul.plist2 li p{
  text-align: left;
  padding: 0 0.5em;
}

ul.plist li div p,ul.plist2 li div p {
  margin: 50% auto auto auto;
  font-weight: bold;
  font-size: 1.8rem;
  line-height: 1.25em;
}
ul.plist li div p.mt1{
  padding-top: 1em;
}
@media screen and (max-width: 980px) {

ul.plist li:last-child div img {
  bottom: 60%;
}
}
@media screen and (max-width: 747px) {
  ul.plist li, ul.plist2 li {
    margin: 0 auto 5rem auto;
}
ul.plist li div,ul.plist2 li div {
  width: 220px;
  height: 220px;
  margin:  auto;
  margin-bottom: 1rem;
}
ul.plist li div p,ul.plist2 li div p {
  margin: 55% auto auto auto;
  font-size: 1.25rem;
}
}



/* コンセプト */
section#second{
  background: url(../img/back_photo1.webp) right top no-repeat,url(../img/back_photo2.webp)left bottom no-repeat;
  background-color:rgba(255,255,255,0.65);
  background-blend-mode: soft-light;
  background-size: 40%, 40%;
}

section#second p{
  font-size: 1.7rem;
  font-weight: 500;
  width: fit-content;
  margin: 0 auto;
  padding-left: 3em;
  text-shadow: #FFF 2px 2px;
}

@media screen and (max-width: 980px) {
  section#second p{
    font-size: 1.25rem;
    padding-left: 2em;
  }
}
@media screen and (max-width: 767px) {
section#second{
  background-size: 50%, 50%;
}
}


@media screen and (max-width: 580px) {
  section#second{
    background-size: 70%, 70%;
  }
  
  section#second p{
    font-size: 1.05rem;
    padding-left: 0em;
  }
}

/* カリキュラム */
ul.jugyou_course{
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

ul.jugyou_course li{
  width: 48%;
  background-color: rgb(255, 230, 87);
  border-radius: 10px;
}
ul.jugyou_course li ul{
  width: 100%;
  padding: 1rem 2rem;
  box-sizing: border-box;
}
ul.jugyou_course li ul li:first-child{
  text-align: center;
}
ul.jugyou_course li ul li{
  width: 100%;
}
#third p.c-setsumei{
  text-align: left;
  font-size: 1rem;
  height: 6rem;
}

@media screen and (max-width: 580px) {
  ul.jugyou_course li{
    width: 100%;
    margin-bottom: 1rem;
  }
  #third p.c-setsumei{
    height: 9rem;
  }
  
}


a.jugyou_btn{
  display: block;
  width: 80%;
  margin: 1.5rem auto;
  text-align: center;
  padding: 0.25rem 1rem;
  background-color: #FFF;
  border-radius: 25px;
  color: #000;
  border: 1.5px solid #FFF;
}
a.jugyou_btn:hover{
  background-color: #000;
  border: rgb(255, 230, 87) 1.5px solid;
  font-weight: bolder;
  color: rgb(255, 230, 87);
}

h2.course{
  background-color: rgb(255, 230, 87);
}
p.mb5{
  margin-bottom: 5rem;
}

#third{
  padding-top: 8rem;
}
#third p{
  width: 100%;
  text-align: center;
  font-size: 1.25rem;
}

ul.app{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  max-width: 980px;
  margin: 1rem auto 2rem auto;
}
ul.app li:nth-child(odd){
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 1.25rem;
  font-weight: 800;
  width:22%;
  max-width: 180px;
  background-color: rgb(255, 230, 87);
  border-radius: 50%;
  text-align: center;
  position: relative;
}

ul.app li:nth-child(even){
  display: flex;
  justify-content: center;
  align-items: center;
font-size: 2rem;
  width: 4%;
}

ul.app li::before{
  content: "";
  padding-top: 100%;
  display: block;
}
ul.app li span{
  display: none;
}

a.application{
  text-align: center;
  background-color: rgb(255, 230, 87);
  margin: 5rem auto 2rem auto;
  padding: 0.5rem 2rem 0.5rem 3rem;
  color: #000;
  font-size: 1.25rem;
  font-weight: bold;
  border-radius: 25px;
  position: relative;
  z-index: 10;
}
a.application::before{
  content: '\f083';
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
  padding-right: 1rem;
}
a.application::after{
  content:'' ;
  position: absolute;
  top: 0;
  right: 0;
  left: -5%;
  bottom: 0;
  margin: auto;
  z-index: -10;
  width: 110%;
  height: 140%;
  border: 2px solid rgb(255, 230, 87);
  border-radius: 40px;
}

a.application:hover::after{
  background-color: rgb(255, 230, 87);
}

@media screen and (max-width: 580px) {
  #third p{
    font-size: 1rem;
  }
  
  ul.app{
    justify-content: space-around;
    max-width: 980px;
    margin: 1.5rem auto;
  }
  
  ul.app li:nth-child(odd){
    font-size: 1.05rem;
    width:40%;
    max-width: 180px;
    margin-bottom: 1.5rem;
    position: relative;
  }

  ul.app li:nth-child(even){
   display: none;
  }

  ul.app li span{
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    top: 0;
    left: 0;
    font-size: 1em;
    font-weight: bold;
    background-color: #000;
    border-radius: 50%;
    color: #FFF;
    width: 40px;
    height: 40px;
  }
}
#third ol{
  counter-reset:cp_clist;
	list-style-type: none;
	padding:0.5em;
  width: fit-content;
  margin: auto;
  font-size: 1.25rem;
  font-weight: 500;
}

#third ol li{
	position: relative;
	padding-left: 30px;
	padding: 0.5em 0.5em 0.5em 30px;
}

#third ol li::before {
	position: absolute;
	display:inline-block;
	top: 50%;
	left: 0;
	counter-increment: cp_clist;
	content: counter(cp_clist);
	padding: 0 0.2em 0 0.2em;
	background: #003c78 ;
	color: #fff;
	font-weight:bold;
	border-radius: 50%;
	width: 25px;
	height: 25px;
	line-height: 25px;
	text-align:center;
	transform: translateY(-50%);
}
.ip{
  display: none;
}

@media screen and (max-width: 580px) {
  #third{
    padding-top: 4rem;
  }
  
  #third ol{
    font-size: 1.15rem;
  }
  .ip{
    display: block;
  }
}

.jugyou p{
  font-weight: bold;
}
.jugyou p:last-child
{
  background: linear-gradient(transparent 70%, rgb(255, 230, 87) 70%);
  display: block;
  width: fit-content !important;
  margin: 0 auto;
  padding: 0 1rem;
}


/* スケジュール */
#forth{
  margin-bottom: 20rem;
}
#forth dl{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  width: 90%;
  margin: 2rem auto 1rem auto;
}

#forth dl dt{
  width: 35%;
  margin-bottom: 2rem;
  font-weight: 900;
}
#forth dl dt::before{
  content: '\f030'" 題材";;
  font-family: 'Font Awesome 6 Free';
  color: #000;
  font-weight: 900;
  padding: 0.5rem 1rem;
  background-color: rgb(255, 230, 87);
  border-radius: 5px;
  margin-right: 1rem;
}
#forth dl dd:nth-child(3n+2){
  width: 45%;
  text-align: left;
  margin-bottom: 2rem;
}
#forth dl dd span{
  width: 9em;
display: inline-block;
letter-spacing: 0.25em;
}

#forth dl dd:nth-child(3n){
  width: 20%;
  text-align: left;
  margin-bottom: 2rem;
}

#forth p{
  text-align: center;
}

@media screen and (max-width: 980px) {
  #forth dl{
    justify-content: space-between;
    width: 100%;
    margin: 2rem auto 1rem auto;
  }
  #forth dl dt{
    width: 40%;
    margin-bottom: 1rem;
  }

#forth dl dt::before{
  margin-right: 0.5rem;
}

  #forth dl dd:nth-child(3n+2){
    width: 58%;
    text-align: left;
    margin-bottom: 1rem;
  }
  #forth dl dd:nth-child(3n){
    width: 100%;
    text-align: right;
    margin-bottom: 2rem;
  }
  #forth p{
    text-align: left;
  }

}

@media screen and (max-width: 580px) {
  #forth{
    margin-bottom: 10rem;
  }
  
  #forth dl{
    flex-direction: column;
    width: 100%;
    margin: 2rem auto 1rem auto;
  }
  #forth dl dt{
    width: 100%;
  }

  #forth dl dd:nth-child(3n+2){
    width: 100%;
    text-align: right;
    margin-bottom: 1rem;
  }
  #forth dl dd span{
    width: 100%;
  display: inline-block;
  letter-spacing: 0.25em;
  }
  
  #forth dl dd:nth-child(3n){
    width: 100%;
    text-align: right;
    margin-bottom: 2rem;
  }
  
}

/* プロファイル */
.melist{
  display: flex;
  width: 90%;
  margin: 2rem auto;
}

.melist div:first-child{
  width: 70%;
  letter-spacing: 0.25rem;
}

.melist div p:first-child{
  font-weight: 600;
  font-size: 1.25rem;
  position: relative;
  margin-bottom: 1rem;
}

.melist div p:first-child::after{
  content: "";
  position: absolute;
  border:0.5rem solid rgb(255, 230, 87);
  width: 120%;
  height: 1rem;
  bottom: 0%;
  left: 0;
  z-index: -1;
}

.melist div:nth-child(2){
  width: 30%;
}

.melist div img{
  width: 100%;
  height: auto;
}


@media screen and (max-width: 767px) {
  .melist{
    flex-direction: column-reverse;
  }
  
  .melist div:first-child{
    width: 100%;
  }
  .melist div p:first-child{
    text-align: center;
  }
  .melist div:nth-child(2){
    width: 60%;
    margin: 1rem auto;
  }
  .melist div p:first-child::after{
    width: 100%;
  }
  
  
}

.insta_btn2{
  color: #FFF;
  border-radius: 7px;
  position: relative;
  display: flex;
  height: 50px;
  width: fit-content;
  padding: 0.5rem 1rem;
  text-align: center;
  justify-content: center;
  align-items: center;
  font-size: 1.25rem;
  background: -webkit-linear-gradient(135deg, #427eff 0%, #f13f79 70%) no-repeat;
  background: linear-gradient(135deg, #427eff 0%, #f13f79 70%) no-repeat;/*グラデーション①*/
  overflow: hidden;
  text-decoration:none;
  margin: 1rem 0 0 0;
}

.insta_btn2:before{/*グラデーション②*/
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;/*全体を覆う*/
  height: 100%;/*全体を覆う*/
  background: -webkit-linear-gradient(15deg, #ffdb2c, rgb(249, 118, 76) 25%, rgba(255, 77, 64, 0) 50%) no-repeat;
  background: linear-gradient(15deg, #ffdb2c, rgb(249, 118, 76) 25%, rgba(255, 77, 64, 0) 50%) no-repeat;
}

.insta_btn2 .fa-instagram{
  font-size: 35px;
  position: relative;
}

.insta_btn2 span {
  display:inline-block;
  position: relative;
  font-size: 1rem;
  letter-spacing: 0.25rem;
  padding-left: 1rem;
}

.insta_btn2:hover{
  color: #FFF;
  opacity: 0.8;
}
@media screen and (max-width: 767px) {
  .insta_btn2{
    margin: 1rem auto;
  }
  
  .insta_btn2 span {
    font-size: 0.8rem;
    letter-spacing: 0.15rem;
  }
}


/* フォーム */
section#contact {
  height: 800px;
  z-index: 1;
  padding: 60px 0;
  margin-bottom: 5rem;
}

@media screen and (max-width: 767px) {
  section#contact {
    height: 700px;
    border-radius: 0;
    padding: 0;
  }
}

form.mailform {
  text-align: center;
  max-width: 800px;
  margin: 30px auto;
}

form.mailform textarea {
  margin: 0 0 15px;
  font-size: 14px;
  line-height: 1.6em;
  border: none;
  padding: 10px;
  width: 100%;
  height: 300px;
  border-radius: 5px;
  vertical-align: bottom;
  background: rgb(255, 230, 87);
  -webkit-transition: 0.7s;
  transition: 0.7s;
  color: #000;
}

form.mailform textarea:focus {
  outline: none;
  background: #ffffff;
  border:solid 2px rgb(255, 230, 87);
}

form.mailform input {
  margin: 0 0 15px;
  font-size: 16px;
  border: none;
  padding: 10px;
  width: 100%;
  border-radius: 5px;
  background: rgb(255, 230, 87);
  -webkit-transition: 0.7s;
  transition: 0.7s;
}

form.mailform input:focus {
  outline: none;
  background: #ffffff;
  border:solid 2px rgb(255, 230, 87);

}

form.mailform input[type="submit"] {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto 20px;
  padding: 10px 20px;
  background: #99937f;
  color: #ffffff;
  border: none;
  width: 80%;

}

form.mailform input[type="submit"]:focus,
form.mailform input[type="submit"]:hover {
  background: #635e4f;
  cursor: pointer;
}
@media screen and (max-width: 580px) {
  form.mailform input[type="submit"] {
    width: 100%;  
  }
}

/* 送信完了ページ */
section#thanks {
  height: calc(100vh - 275px);
  position: relative;
}

section#thanks .row{
  position: absolute;
  top: 0;
  bottom: 0;
left: 0;
right: 0;
  margin: auto;
  align-items: center;
}
section#thanks a{
  display: block;
  width: 250px;
  margin: 1rem auto;
  background-color: rgb(255, 230, 87);
  border-radius: 10px;
  padding: 1rem;
  color: #000;
  text-align: center;
}
/* page-top */
#page_top{
  width: 50px;
  height: 50px;
  position: fixed;
  right: 10px;
  bottom: 20px;
  opacity: 0.6;
  z-index: 999;
}
#page_top a{
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  text-decoration: none;
  background-color: rgba(255, 255, 255, 0.8);
  border-radius: 10px;
}
#page_top a::before{
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
  content: '\f139';
  font-size: 2rem;
  color: #666;
  position: absolute;
  width: 2rem;
  height: 2rem;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  margin: auto;
  text-align: center;
}


/* フッター */

ul.sns-list, ul.rpt-list {
  display: -webkit-box;
  display: flex;
}

ul.sns-list li a {
  font-size: 18px;
}

ul.sns-list li:not(:last-of-type) {
  margin-right: 20px;
}
ul.rpt-list li{
  font-size: 0.8rem;
  margin-bottom: 2rem;
}
ul.rpt-list li::after{
content: " / ";
margin: 0 0.5rem;
}
ul.rpt-list li:last-child::after{
  content: none;
}


footer {
  background: #2a2d2e;
  overflow: hidden;
  padding: 30px 0 0 0;
  margin-bottom: 0;
  color: #fff;
}

footer .container {
  margin-bottom: 0;
}

footer .sitename {
  font-size: 180%;
  font-family: "Sawarabi Mincho", sans-serif;
  letter-spacing: 0.5em;
}

@media screen and (max-width: 767px) {
  footer .sitename {
    font-size: 130%;
  }
}

footer .bottom {
  margin: 0;
}

footer .bottom a {
  opacity: 0.7;
  text-align: right;
  width: 100%;
  font-size: 12px;
  padding: 5px 10px;
  margin: 0 0 0 auto;
  display: block;
}

footer ul.sns-list, ul.rpt-list {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin: 1rem auto;
}

footer ul.sns-list li a {
  font-size: 14px;
}


/* ログインページ */

#forth dl dd a{
background-color: rgb(255, 230, 87);
width: fit-content;
padding: 0.25rem;
color: #000;
font-weight: bold;
border-radius: 5px;
margin: 0 0.5rem;
}

ul.lesson_list{
  width: 90%;
  margin: 5rem auto;
  display: flex;
  flex-wrap: wrap;
  position: relative;
  justify-content: space-between;
  background-color: rgb(255, 231, 94);
  background-image: repeating-linear-gradient(45deg,
    #FFF, #FFF 2px,transparent 0, transparent 4px);
  padding: 2rem 1.8rem 1.6rem 1.8rem;
  
  }

  /* ul.lesson_list:nth-child(even){
    flex-direction: row-reverse;
  } */

  @media screen and (max-width: 767px) {
    ul.lesson_list{
      width: 100%;
      margin: 2.5rem auto 5rem;
      padding: 0;
  }
}
  ul.lesson_list li:first-child{
    position: absolute;
    top: -15%;
    left: -5%;
    background-color: rgb(255, 230, 87);
    border-radius: 100%;
    line-height: 0.8rem;
    width: 100px;
    height: 100px;
    display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  font-weight: bolder;
z-index: 20;
  }
  ul.lesson_list li:first-child span{
    font-size: 1.5rem;
  }

  ul.lesson_list li:nth-child(2){
    position: absolute;
    top: -7%;
    left: 2rem;
    background-color: rgb(255, 230, 87);
    border-radius: 10px;
    line-height: 1rem;
    width: fit-content;
    padding: 0.8rem 1rem 0.8rem 2rem;
    font-weight: bold;
    z-index: 10;
    font-size: 1.5rem;
  }
    @media screen and (max-width: 767px) {
      ul.lesson_list li:first-child{
        top: -7%;
        left: -3%;
        line-height: 0.8rem;
        width: 80px;
        height: 80px;
      }
  
      ul.lesson_list li:nth-child(2){
        top: -4%;
        left: 2.5rem;
      }
    }

    @media screen and (max-width: 580px) {
        ul.lesson_list li:first-child{
        top: -9%;
        left: -3%;
        line-height: 0.8rem;
        width: 80px;
        height: 80px;
      }
      ul.lesson_list li:first-child span{
        font-size: 1.1rem;
      }
    
  
      ul.lesson_list li:nth-child(2){
        left: 3.5rem;
        font-size: 1.05rem;
        padding: 0.8rem 0.8rem 0.8rem 1rem;
      }
    }
  
  ul.lesson_list li:nth-child(3){
    width: 40%;
    box-sizing: border-box;
margin: auto 0;
  }
  ul.lesson_list li:nth-child(3) img{
    width: 100%;
    height: auto;
    border-radius: 15px;
  }
  ul.lesson_list li:nth-child(4){
    width: 59%;
    box-sizing: border-box;
    padding: 2rem 1rem 1rem 2rem;
    text-align: left;
    line-height: 1rem;
    font-weight: 600;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }
  ul.lesson_list li:nth-child(4) p{
    text-align: left !important;
    line-height: 1.5rem !important;
  }

  ul.lesson_list li:nth-child(4) a{
    display:flex;
    padding: 0.5rem 1rem;
    margin: 1rem auto;
    background-color: orangered;
    border-radius: 5px;
    width: fit-content;
    border: 2px solid orangered;
    align-items: center;
  }
  ul.lesson_list li:nth-child(4) a i{
    padding-right: 1rem;
    font-size: 1.5rem;
  }

  ul.lesson_list li:nth-child(4) a:hover{
    background-color: #FFF;
    color: orangered;
  }

  @media screen and (max-width: 767px) {
    ul.lesson_list li:nth-child(3){
      width: 100%;
      padding: 2.5rem 2rem 0 2rem;
    }
    ul.lesson_list li:nth-child(4){
    width: 100%;
    padding: 1rem 2rem 2rem 2rem;
  }
  }

  div.qa{
margin: 0 auto 5rem auto;
display: flex;
flex-wrap: wrap;
justify-content: space-around;
align-items: center;
width: 80%;
padding: 1rem 1rem 2rem 1rem;
box-sizing: border-box;
background-color: rgb(255, 230, 87);
border-radius: 15px;
  }
  div.qa h3{
    width: 100%;

  }
  div.qa img{
    display: block;
    width: 15%;
    min-width: 80px;
    height: auto;
  }
div.qa p{
  width: 70%;
  text-align: left !important;
}
div.qa p span{
  font-weight: bold;
  color: red;
}
@media screen and (max-width: 767px) {
  div.qa{
  width: 90%;
  }
}
@media screen and (max-width: 580px) {
  div.qa{
    flex-direction: column;
    }
    div.qa img{
margin-bottom: 1rem;
width: 50%;
    }
  div.qa p{
    width: 100%;
    text-align: left !important;
  }
  
}


  /* ギャラリー */
  section#gallely{
    height: 100%;
    margin: 5rem auto;
  }

  .hidden_box {
    margin: 1rem auto 0 auto;/*前後の余白*/
    padding: 0;
}

/*ボタン装飾*/
.hidden_box label {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  width: 60%;
  margin: 0 auto;
    padding: 5px;
    background: #c8a063;
    color: #FFF;
    font-weight: bold;
    border: solid 2px #c8a063;
    cursor :pointer;
    text-align: center;
    font-size: 1.25em;
    border-radius: 50px;
}
.hidden_box label i{
  margin-right: 1rem;
}

/*ボタンホバー時*/
.hidden_box label:hover {
    background: #FFF;
    color: #c8a063;

}
/*チェックは見えなくする*/
.hidden_box input {
    display: none;
}
/*中身を非表示にしておく*/
.hidden_box .hidden_show {
    height: 0;
    padding: 0;
    overflow: hidden;
    opacity: 0;
    transition: 0.8s;
}
/*クリックで中身表示*/
.hidden_box input:checked ~ .hidden_show {
    padding: 10px 0;
    height: auto;
    opacity: 1;
}
.orderimg{
  display: block;
  width: 100%;
  /* ↑4回目以降は100％にする */
  height: auto;
  margin: 0 auto;
}



/* タブ表示 */

h3.contest {
  position: relative;
   margin: 30px;
   text-align: center;
   width: fit-content;
   margin: 1rem auto 2rem auto;
   font-size:1.8rem;
 }
 
 h3.contest:before,
 h3.contest:after {
   position: absolute;
   z-index: 0;
   bottom: -10px;
   display: block;
   content: '';
   border: 1em solid #a57c3e;
 }
 
 h3.contest:before {
   left: -30px;
   border-left-width: 15px;
   border-left-color: transparent;
 }
 
 h3.contest:after {
   right: -30px;
   border-right-width: 15px;
   border-right-color: transparent;
 }
 
 h3.contest span {
   position: relative;
   z-index: 1;
   display: block;
   padding: 1rem 2rem;
   color: #fff;
   background: #c8a063;
 }
 h3.contest span i{
  padding: 0 1rem;
 }
 h3.contest span:before,
 h3.contest span:after {
   position: absolute;
   bottom: -10px;
   display: block;
   width: 10px;
   height: 10px;
   content: '';
   border-style: solid;
   border-color: #845a1a transparent transparent transparent;
 }
 
 h3.contest span:before {
   left: 0;
   border-width: 10px 0 0 10px;
 }
 
 h3.contest span:after {
   right: 0;
   border-width: 10px 10px 0 0;
 }
 @media only screen and (max-width: 480px) {
 h3.contest i{
  color: #c8a063;
 }
 h3.contest span {
  font-size: 1.25rem;
  padding: 0.5rem 1rem;
}
}

.tab-wrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    width: 70%;
    margin: 0 auto 50px auto;
}
.tab-label {
    color: White;
    background: LightGray;
    padding: 3px 12px;
    order: -1;
    margin: 1rem auto;
    width: 16%;
    text-align: center;
}
.tab-label:nth-of-type(2) {
  margin-left: 0;
}

.tab-label:last-of-type{
  margin-right: 0;
}

.tab-content {
    width: 100%;
    display: none;
    text-align: center;
}
/* アクティブなタブ */
.tab-switch:checked+.tab-label {
    background: #c8a063;
}
.tab-switch:checked+.tab-label+.tab-content {
     display: block;
}
/* ラジオボタン非表示 */
.tab-switch, #tabnon {
    display: none;
}
@media only screen and (max-width: 480px) {
  .tab-wrap {
    width: 100%;
    justify-content: space-between;
}
.tab-label {
    color: White;
    background: LightGray;
    margin-right: auto;
    padding: 3px 12px;
    order: -1;
    margin-bottom: 0.5rem;
    width: 30%;
}
.tab-label:last-of-type{
  margin-right: auto;
  margin-left: 0;
}
}

.sbtn_haichi{
  display: flex;
  flex-wrap: wrap;
  width: 50%;
  min-width: 600px;
  margin: 0 auto 2rem auto;
  align-items: end;
}
@media only screen and (max-width: 600px) {
  .sbtn_haichi{
    min-width: 100%;
  }  
}
  .sort-btn{
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
  }
  .sort-btn:first-child{
    width: 30%;
  }
  .sbtn_haichi div{
    width: 70%;
  }

  .sort-btn li{
    background:#eee;
  list-style:none;
    border-radius:10px;
    cursor: pointer;
    padding: 10px;
    margin:0 10px 10px 0;
  }
  
  .sort-btn li.active{/*ボタンに現在地＝activeというクラス名がついたら背景色を変更*/
    background:#ccc;	
  }
  
  /*横幅が480px以下になった際の指定*/
  @media only screen and (max-width: 600px) {
    .hidden_box label i{
      margin: 0;
      margin-right: 0;
      font-size: 2.3rem;
      }
  
    .hidden_box label {
      display: flex;
      justify-content: space-evenly;
    width:88%;
    border-radius: 10px;
    line-height: 1.25rem;
    }
    .orderimg{
      width: 100%;
    }
    
    .sbtn_haichi{
      width: 100%;
      min-width: 100%;
    }

    .sort-btn:first-child{
      width: 100%;
    }
    .sbtn_haichi div{
      width: 100%;
    }
  
    

  .sort-btn{
    justify-content: space-between;
    width: 100%;
  }
    
  .sort-btn li{
    width:48%;
    margin:0 0 10px 0;
    text-align:center;
    }	
  }
  
  /*＝＝＝Muuriのレイアウトのための調整 */
  .grid {
    position: relative;/*並び替えの基準点を指定*/
  }
  
  /*各画像の横幅などの設定*/
  .item {
    display: block;
    position: absolute;
    width: 33%;/*横並びで3つ表示*/
    z-index: 1;
  list-style:none;
  padding: 0 5px 10px 5px;
  box-sizing: border-box;
  }
  
  /*内側のボックスの高さが崩れないように維持*/
  .item-content {
    position: relative;
    width: 100%;
    height: 100%;
  }
  
  /*画像の横幅を100%にしてレスポンシブ化*/
  .grid img{
    width:100%;
    height:auto;
    vertical-align: bottom;/*画像の下にできる余白を削除*/
  }
  
  /*横幅が768px以下になった際の指定*/
  @media only screen and (max-width: 768px) {
  .item {
    width: 49.5%;/*横並びで2つ表示*/
  }
  }
  
  /*＝＝＝fancyboxサムネイル背景と画像選択時の枠線の指定*/
  .fancybox-thumbs {
      background: transparent!important;
  }
  
  .fancybox-thumbs__list a:before {
      border: 6px solid #FA999B;
  }

  /* プライバシーポリシー */
  section#pp p, section#terms p{
    margin: 2rem auto;
  }
  dl.pplist{
    margin-bottom: 5rem;
  }
  dl.pplist dt{
    display: list-item;
 list-style-type: desc;
 margin-left: 1rem;
 font-weight: bold;
  }
  dl.pplist dd{
    padding-left: 1rem;
    margin-bottom: 1rem;
  }
  dl.pplist dd a{
    color: orangered;
  }

  /* 取引法 */
  #tr, #pp, #terms{
    margin-top:8rem;
 }
 #tr table {
  margin: 5rem auto 10rem auto;
}
#tr table a {
  color: orangered;
}

.tbl-r02 th {
  background: rgb(255, 230, 87);
  color: #000;
  padding: 10px;
}
.tbl-r02 td {
  padding: 10px;
}
 
@media screen and (max-width: 748px) {
  #tr, #pp, #terms{
    margin-top:4rem;
 }

  .tbl-r02 {
    width: 100%;
  }
  .tbl-r02 th,
  .tbl-r02 td {
border-bottom: none;
    display: block;
    width: 100%;
  }
  .tbl-r02 td {
    margin-bottom: 1rem;
  }
}

/* 利用規約 */
dl.terms_list{
  margin-bottom: 8rem;
}
dl.terms_list dt{
  margin-top: 2rem;
  font-weight: bold;
}
dl.terms_list dd span{
  display: block;
  padding-left: 1rem;
}
dl.terms_list dd ol li{
  margin-top: 0 !important;
  margin: 0;
}
dl.terms_list dd ol{
  counter-reset: count 0;
  padding-left: 2rem;
  text-indent: -1rem;
}
dl.terms_list dd ol li:before {
    content: counter(count) ". ";
      counter-increment: count 1;
    }
