#key .ob-img img {
  object-position: 33% 50%;
}
@media screen and (min-width: 768px) {
  #key .ob-img img {
    object-position: 50% 50%;
  }
}
#sec1 {
  position: relative;
  padding-top: 15vw;
}
#sec1 .photo {
  height: 65vw;
  margin-left: 0;
}
#sec1 .box {
  position: relative;
  z-index: 2;
  padding-top: 10vw;
}
#sec1 .box .title__c {
  text-align: left;
  margin-bottom: 5vw;
}
#sec1 .box .title__c h3 {
  margin-bottom: 2vw;
}
#sec1 .box .title__c h2 {
  line-height: 2;
  letter-spacing: 0.01em;
}
#sec1 .deco {
  width: 364px;
  position: absolute;
  top: 0;
  left: calc(50% + 512px);
}
@media screen and (min-width: 768px) {
  #sec1 {
    padding-top: 120px;
  }
  #sec1 .photo {
    width: 900px;
    height: 600px;
    margin-left: -200px;
    margin-bottom: -412px;
  }
  #sec1 .box {
    width: 543px;
    margin-right: -132px;
    margin-left: auto;
    padding-top: 0;
  }
  #sec1 .box .title__c {
    margin-bottom: 10px;
  }
  #sec1 .box .title__c h3 {
    margin-bottom: 16px;
  }
  #sec1 .box .title__c h2 {
    line-height: 80px;
    letter-spacing: 4px;
  }
	#sec1 .box .text {
		padding-right: 20px;
	}
  #sec1 .deco {
    width: 364px;
    top: 163px;
    left: calc(50% + 343px);
  }
}

#sec2 {
  position: relative;
  padding-top: 20vw;
  padding-bottom: 20vw;
}
#sec2 .set1 {
  position: relative;
  margin-bottom: 15vw;
}
#sec2 .set1::before {
  content: "";
  background: url("../img/course/sec1_line.png") no-repeat top center;
  background-size: 100% auto;
  height: 923px;
  position: absolute;
  top: -22vw;
  left: 0;
  right: 0;
  z-index: -1;
}
#sec2 .set1 .title__c {
  margin-bottom: 6vw;
}
#sec2 .set1 .title__c h2 {
  line-height: 2;
  padding-top: 3vw;
}
#sec2 .set1 .text {
  margin-bottom: 10vw;
  color: #afafaf;
  text-align: center;
}
#sec2 .set1 .price {
  text-align: center;
  font-size: 22px;
  margin-bottom: 10vw;
}
  #sec2 .txt{
    position: absolute;
    margin-top: 130px;
  }
#sec2 .set1 .price small {
  font-size: 16px;
}
#sec2 .set2 {
  position: relative;
}
#sec2 .set2 .wrap {
  max-width: 1200px;
}
#sec2 .set2 .text {
  position: relative;
  margin-bottom: 8vw;
}
#sec2 .set2 .photo {
  height: 55vw;
  margin-left: 0;
}
#sec2 .set2 .photo__group {
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  flex-wrap: wrap;
  gap: 3vw 3vw;
  margin-top: 2vw;
	width: 102%;
}
#sec2 .set2 .photo__group .photo-1 {
  width: 28vw;
  height: 30vw;
}
#sec2 .set2 .photo__group .photo-2 {
  height: 55vw;
  width: 70vw;
}
#sec2 .set2 .photo__group .photo-3 {
  width: 17vw;
  height: 55vw;
}
#sec2 .set2 .photo__group .photo-4 {
  width: 43.5vw;
  height: 37vw;
}
@media screen and (min-width: 768px) {
  #sec2 {
    padding-top: 135px;
    padding-bottom: 231px;
  }
  #sec2 .set1 {
    margin-bottom: 103px;
  }
  #sec2 .set1::before {
    height: 923px;
    top: -489px;
  }
  #sec2 .set1 .title__c {
    margin-bottom: 25px;
  }
  #sec2 .set1 .title__c h2 {
    line-height: 67px;
    padding-top: 6px;
  }
  #sec2 .set1 .text {
    margin-bottom: 55px;
    line-height: 40px;
  }
  #sec2 .set1 .price {
    font-size: 24px;
    margin-bottom: 67px;
  }
  #sec2 .txt{
    position: absolute;
    margin-top: 130px;
  }
  #sec2 .set1 .price small {
    font-size: 18px;
  }
  #sec2 .set2 {
    margin-bottom: 0;
  }
  #sec2 .set2 .text {
    width: 374px;
    position: absolute;
    top: 99px;
    right: 0;
    margin-bottom: 0;
  }
  #sec2 .set2 .photo {
    width: 795px;
    height: 350px;
    margin-left: 0;
  }
  #sec2 .set2 .photo__group {
    gap: 15px 12px;
    margin-top: 10px;
  }
  #sec2 .set2 .photo__group .photo-1 {
    width: 392px;
    height: 393px;
  }
  #sec2 .set2 .photo__group .photo-2 {
    width: 1000px;
    height: 500px;
  }
  #sec2 .set2 .photo__group .photo-3 {
    width: 188px;
    height: 500px;
  }
  #sec2 .set2 .photo__group .photo-4 {
    width: 593px;
    height: 351px;
  }
}
#sec3 {
  position: relative;
  padding-bottom: 20vw;
}
#sec3::before {
  content: "";
  background: url("../img/shared/bg02.jpg");
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
}
#sec3 .box {
  text-align: center;
  padding-top: 13vw;
}
#sec3 .box .title__c {
  margin-bottom: 8vw;
}
#sec3 .box .title__c h2 {
  line-height: 2;
}
#sec3 .box .price {
  font-size: 22px;
  line-height: 1;
  margin-bottom: 15vw;
  padding-top: 15vw;
}
#sec3 .box .price small {
  font-size: 18px;
}
#sec3 .box .info {
  background: rgba(255, 255, 255, 0.15);
  padding: 10vw 0;
  line-height: 2.2;
}
#sec3 .box .info h3 {
  font-size: 20px;
  line-height: 1;
  margin-bottom: 6vw;
}
#sec3 .photo {
  position: relative;
}
#sec3 .photo li {margin-bottom: -4vw;}
#sec3 .deco {
  width: 64vw;
  position: absolute;
  top: -13vw;
  left: 8vw;
  z-index: 2;
}
@media screen and (min-width: 768px) {
  #sec3 {
    padding-bottom: 132px;
  }
  #sec3::before {
    top: -82px;
    left: 0;
    bottom: 0;
    width: calc(50% + 468px);
  }
  #sec3 .box {
    width: 558px;
    margin-left: -160px;
    text-align: center;
    padding-top: 43px;
  }
  #sec3 .box .title__c {
    margin-bottom: 53px;
  }
  #sec3 .box .title__c h2 {
    line-height: 70px;
  }
  #sec3 .box .price {
    font-size: 24px;
    margin-bottom: 79px;
    padding-top: 0;
  }
  #sec3 .box .price small {
    font-size: 18px;
  }
  #sec3 .box .info {
    padding: 59px 0 45px;
    line-height: 46px;
  }
  #sec3 .box .info h3 {
    font-size: 22px;
    margin-bottom: 26px;
  }
  #sec3 .txt{
    margin-top: 20px;
  }
  #sec3 .photo {
    width: 749px;
    position: absolute;
    top: 0px;
    left: 50%;
  }
  #sec3 .photo li {
    height: 480px;
    margin-bottom: 0;
  }
  #sec3 .deco {
    width: 324px;
    top: -166px;
    left: -147px;
  }
}
#sec4 {
  position: relative;
  padding-top: 20vw;
  margin-bottom: 20vw;
}
#sec4 .wrap {
  max-width: 1185px;
}
#sec4 .title__c {
  margin-bottom: 9vw;
}
#sec4 h2 {
  line-height: 1;
}
#sec4 .text {
  color: #afafaf;
  text-align: center;
  margin-bottom: 10vw;
}
#sec4 .row {
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  flex-wrap: wrap;
  gap: 3vw;
  justify-content: center;
}
#sec4 .row .col {
  background: rgba(255, 255, 255, 0.05);
  width: 48%;
}
#sec4 .row .col:last-child {
	width: 100%;
}
#sec4 .row .col .info {
  padding: 7vw 0;
  text-align: center;
}
#sec4 .row .col .info dl {
  line-height: 1;
  font-size: 4.5vw;
  padding-bottom: 6vw;
}
#sec4 .row .col .info dl dt {
  margin-bottom: 2vw;
  line-height: 1.8;
}
#sec4 .row .col .info dl dd small {
  font-size: 3vw;
}
#sec4 .row .col .info ul {
  line-height: 2;
  border-top: 1px solid rgba(255, 255, 255, 0.5);
  padding-top: 5vw;
  width: 90%;
  margin: 0 auto;
}
@media screen and (min-width: 768px) {
  #sec4 {
    padding-top: 120px;
    margin-bottom: 112px;
  }
  #sec4 .wrap {
    max-width: 1185px;
  }
  #sec4 .title__c {
    margin-bottom: 33px;
  }
  #sec4 .text {
    line-height: 40px;
    margin-bottom: 42px;
  }
  #sec4 .row {
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    justify-content: center;
  }
  #sec4 .row .col {
    background: rgba(255, 255, 255, 0.05);
    width: 377px;
  }
  #sec4 .row .col .info {
    padding: 50px 0 53px;
    text-align: center;
  }
  #sec4 .row .col .info dl {
    font-size: 24px;
    padding-bottom: 42px;
  }
  #sec4 .row .col .info dl dt {
    margin-bottom: 17px;
  }
  #sec4 .row .col .info dl dd small {
    font-size: 18px;
  }
  #sec4 .row .col .info ul {
    line-height: 36px;
    padding-top: 25px;
    width: 73.4%;
  }
#sec4 .row .col:last-child {

width: 377px;
}
}
.bnr__row {
  max-width: 1400px;
  margin: 0 5vw;
  gap: 60px;
  margin-bottom: 20vw;
}
.bnr__row .bnr__col {
  width: 100%;
  text-align: center;
  position: relative;
  height: 60vw;
  transition: all .4s ease;
}
.bnr__row .bnr__col:hover {
   opacity: .5;
}
.bnr__row .bnr__col + .bnr__col {
	margin-top: 15vw;
}
.bnr__row .bnr__col::before {
  content: "";
  border: 1px solid rgba(255, 255, 255, 0.5);
  position: absolute;
  top: -10px;
  right: -10px;
  bottom: -10px;
  left: -10px;
}
.bnr__row .bnr__col .ob-img {
  height: 100%;
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
}
.bnr__row .bnr__col .title__c {
  padding-top: 16vw;
  margin-bottom: 7vw;
  position: relative;
  z-index: 2;
}
.bnr__row .bnr__col .title__c h3 {
  margin-bottom: 5vw;
}
.bnr__row .bnr__col .title__c h2 {
  line-height: 1;
}
.bnr__row .bnr__col .bnr {
  width: 170px;
  margin: 0 auto;
}
.bnr__row .bnr__col .bnr span {
  display: block;
  text-align: left;
  border-bottom: 1px solid rgba(255, 255, 255, 0.5);
  position: relative;
  line-height: 1;
  padding: 10px 0;
}
.bnr__row .bnr__col .bnr span::after {
  content: "";
  background: url("../img/shared/icon_arrow01_sp.png") no-repeat center;
  width: 9px;
  height: 11px;
  background-size: 100% auto;
  top: 50%;
  transform: translateY(-50%);
  position: absolute;
  right: 0;
}
.bnr__row .bnr__col .bnr a:hover {
  text-decoration: none;
  opacity: .5;
}
.bnr__row .bnr__col a {
  display: block;
  position: absolute;
  top:0;
  left: 0;
  bottom: 0;
  right: 0;
  z-index: 2;
  font-size: 0;
}
@media screen and (min-width: 768px) {
  .bnr__row {
    margin: 0 auto;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
    justify-content: space-between;
    gap: 60px;
    margin-bottom: 70px;
  }
  .bnr__row .bnr__col {
    width: 47.8%;
    height: 350px;
  }
.bnr__row .bnr__col + .bnr__col {
	margin-top: 0;
}
  .bnr__row .bnr__col::before {
    top: -10px;
    right: -10px;
    bottom: -10px;
    left: -10px;
  }
  .bnr__row .bnr__col .title__c {
    padding-top: 115px;
    margin-bottom: 62px;
  }
  .bnr__row .bnr__col .title__c h3 {
    margin-bottom: 20px;
  }
  .bnr__row .bnr__col .bnr {
    width: 170px;
    margin: 0 auto;
  }
  .bnr__row .bnr__col .bnr span {
    text-align: left;
    line-height: 1;
    padding-bottom: 10px;
    padding-top: 10px;
  }
  .bnr__row .bnr__col .bnr span::after {
    width: 9px;
    height: 11px;
    top: 50%;
    right: 0;
  }
}


@media screen and (min-width: 768px) and (max-width: 1299px) {
	#sec1 .box {
		margin-right: -45px;
	}
    #sec2 .set2 .text {
		width: 29%;
        right: 10px;
    }
    #sec3 .box {
        width: 50%;
        margin-left: -52px;
    }
	#sec4 {
		padding-left: 20px;
		padding-right: 20px;
	}
	#sec4 .row .col {
		width: 360px;
	}
	.bnr__row {
		margin-left: 20px;
		margin-right: 20px;
	}
}





