@media screen and (max-width: 780px) {
  /*================
  sec01
  ================*/
  .sec01 {
    overflow: hidden;
  }
  .sec01 .inr .txt {
    display: flex;
    flex-flow: column;
    align-items: center;
    justify-content: center;
  }
  .sec01 .inr .txt p {
    width: 95%;
    margin: 0 auto;
    margin-top: -15%;
  }
  .sec01 .inr .txt h2 {
    width: 95%;
    min-width: auto;
    margin: 0 auto;
  }
  .sec01 .inr .txt .img {
    width: 100%;
    max-width: 500px;
    min-width: auto;
    margin: 0 auto;
    left: 0;
    right: 0;
    position: relative;
    bottom: min(5vw, 0px);
  }
  /*================
  sec02
  ================*/
  .features_sec::before {
    left: 3%;
    top: -5vw;
    width: 30vw;
    height: 30vw;
  }
  .features_sec .inr > ul {
    margin-bottom: 30px;
  }
  .features_sec .inr > ul li {
    flex: 0 0 100%;
    display: flex;
    justify-content: space-between;
    gap: 15px;
    margin-bottom: 10px;
    padding: 5px 10px;
    box-shadow: none;
  }
  .features_sec .inr > ul li:nth-child(4), .features_sec .inr > ul li:nth-child(5) {
    flex: 0 0 100%;
  }
  .features_sec .inr > ul li .no {
    width: 70px;
    height: 60px;
    left: -10px;
  }
  .features_sec .inr > ul li .no div {
    top: 35%;
  }
  .features_sec .inr > ul li .no div p {
    font-size: 8px;
  }
  .features_sec .inr > ul li .no div .en {
    font-size: min(3.5vw, 20px);
  }
  .features_sec .inr > ul li figure {
    width: 45%;
  }
  .features_sec .inr > ul li .txt {
    width: 50%;
  }
  .features_sec .inr > ul li .txt h3 {
    margin: 10px 0;
    font-size: min(3.3vw, 16px);
  }
  .features_sec .inr > ul li .txt p {
    line-height: 1.6;
  }
  .area_sec .cont {
    flex-flow: column;
    display: flex;
    justify-content: space-between;
  }
  .area_sec .cont ul {
    gap: 5px;
    display: flex;
    width: 100%;
    order: 2;
    justify-content: space-between;
  }
  .area_sec .cont figure {
    width: 100%;
    order: 1;
    margin: 20px 0;
  }
  .area_sec .cont figure h3 {
    font-size: 20px;
    margin-bottom: 10px;
  }
  /*================
  sec03
  ================*/
  .plan_sec .ttl::after {
    top: -10px;
    width: 30vw;
    height: 30vw;
  }
  .plan_sec .cont {
    padding: 10px;
  }
  .plan_sec .cont div.equipment_sec {
    flex-flow: column;
  }
  .plan_sec .cont div.equipment_sec figure {
    width: 70%;
    margin: 0 auto;
  }
  .plan_sec .cont div.food_sec {
    flex-flow: column;
  }
  .plan_sec .cont div.food_sec figure {
    width: 70%;
    margin: 0 auto;
  }
  /*================
  special_plan_sec 
  ================*/
  html, body {
    overflow-x: hidden;
  }
  .special_plan_sec .inr .ttl span::after {
    top: -90px;
  }
  .special_plan_sec .inr h2.inview {
    width: 80%;
  }
  .special_plan_sec .inr .warring {
    padding-top: 30px;
  }
  .special_plan_sec .inr .warring p {
    font-size: 15px;
  }
  .special_plan_sec .inr .warring p br {
    display: none;
  }
  .special_plan_sec .inr h3 {
    width: 100%;
    max-width: none;
  }
  .special_plan_sec .inr .cont {
    padding: 50px 10px 10px 10px;
  }
  .special_plan_sec .inr .cont_sec {
    flex-flow: column;
  }
  .special_plan_sec .inr .cont_sec .table {
    margin-top: 10px;
  }
  .special_plan_sec .inr .cont_sec figure {
    width: 80%;
    margin: 0 auto;
    margin-bottom: 20px;
  }
  .special_plan_sec .inr .cont_sec .info ol li {
    font-size: 15px;
    padding: 8px 0;
  }
  .special_plan_sec::after {
    bottom: -23px;
  }
  .option_sec::before {
    top: -10vw;
    width: 38vw;
    height: 38vw;
  }
  .option_sec ul li {
    flex: 0 0 48%;
  }
  .option_sec ul li .price {
    font-size: 18px;
  }
  .information_sec::after {
    top: -27px;
  }
  .information_sec::before {
    right: 1%;
    top: -10vw;
    width: 38vw;
    height: 38vw;
  }
  .calendar_sec::after {
    top: -25px;
  }
  .calendar_sec .info {
    font-size: 15px;
  }
  .calendar_sec .info br {
    display: none;
  }
  .faqs_sec::after {
    top: -25px;
  }
  .faqs_sec::before {
    top: -2vw;
    width: 35vw;
    height: 35vw;
  }
  .faqs_sec .cont h3 {
    text-align: center;
    font-size: min(4.8vw, 28px);
    margin-bottom: 10px;
  }
  .faqs_sec .cont ul li {
    width: 48%;
  }
  .reserve_sec::after {
    top: -25px;
  }
  .reserve_sec .cont ul li {
    padding: 20px 10px;
  }
  .reserve_sec .cont ul li figure {
    text-align: center;
  }
  .reserve_sec .cont ul li figure img {
    width: 70%;
    display: block;
    margin: 0 auto;
  }
  .reserve_sec .flow h3 {
    text-align: center;
    font-size: min(3.8vw, 28px);
    margin-bottom: 20px;
  }
  .reserve_sec .flow dl {
    flex-flow: column;
  }
  .reserve_sec .flow dl dt {
    text-align: left;
    width: 100%;
    font-size: 16px;
    margin-bottom: 5px;
  }
  .reserve_sec .flow dl dd {
    font-size: 13px;
    width: 100%;
  }
}