@charset "UTF-8"; 

/* -----------------------------------------------------------------------------

ページ内CSS

----------------------------------------------------------------------------- */

/* 共通パーツ */
/* .mod_main{
    background: #f00;
} */

.title_design01{
    display: table;
    margin: 0 auto;
    margin-bottom: 80px;
    position: relative;
    font-family: "hannari";
    font-weight: bold;
    font-size: 0.3rem;
    line-height: 1;
    color: #473933;
    text-align: center;

    &::after{
        content: "";
        display: block;
        position: absolute;
        bottom: -40px;
        left: 50%;
        transform: translateX(-50%);
        width: 40px;
        height: 4px;
        background: linear-gradient(90deg, #218A90 0%, #218A90 50%, #94C3C6 50%, #94C3C6 100%);
    }

    &.nobar{
        &::after{
            content: none;
        }
    }

}

.text_design01{
    position: relative;

    &::after{
        content: "";
        display: block;
        position: absolute;
        bottom: -30px;
        left: 50%;
        transform: translateX(-50%);
        width: 40px;
        height: 4px;
        background: linear-gradient(90deg, #218A90 0%, #218A90 50%, #94C3C6 50%, #94C3C6 100%);
    }

}

/* アコーディオン用 */
.setPos{position: absolute;}

.more-type2{
    background: #fff;
    padding: 16px 0;
    border-radius: 10px;
    font-size: 18px;
    font-weight: bold;
    position: relative;

    &::after{
        position: absolute;
        content: "＋";
        width: 40px;
        height: 40px;
        border-radius: 50%;
        background: #fff;
        font-size: 20px;
        display: flex;
        align-items: center;
        justify-content: center;
        background: #F4EFEC;
        top: 50%;
        right: 10px;
        transform: translateY(-50%);
    }
}

/* 各プランメイン */
.family-title--pc{
    flex-direction: column;
}


/* 各セクション */

.sec_plan_detail{
    margin-bottom: 0;
    position: relative;
    z-index: 1;

    @media screen and (max-width: 640px) {

        &.fv_detail_box{
            position: relative;

            &::after{
                content: "";
                display: block;
                position: absolute;
                bottom: 0;
                left: 50%;
                transform: translateX(-50%);
                width: calc(100% - 40px);
                height: 2px;
                background: #B1D3D5;
                background: repeating-linear-gradient(
                    to right,
                    #B1D3D5 0 6px,
                    transparent 6px 12px
                );
            }

            & .in{
                padding: 54px 0 0;

                & .sec_plan_detail_box{
                    padding: 20px 20px 30px;
                }
            }
        }
    }

    & .in{
        background: #F4F9F9;
        background: linear-gradient(90deg, #F0F7F7 30%, #FFF 74%, #F6FAFB 100%);
        border-radius: 0 0 80px 0;
        padding: 80px 0 0;

        @media screen and (max-width: 640px) {
            background: linear-gradient(0deg, #F0F7F7 0%, #FFF 50%, #F0F7F7 100%);
            padding: 40px 0 0;
            border-radius: 0;
        }

        & .sec_plan_detail_box{

            --card-bg: #fff;
            --card-stroke: #e7f0f0;
            --title-accent: #1f8f97;
            --text: #3f3a36;
            --muted: #6b6560;

            width: 100%;
            max-width: 900px;
            margin: 0 auto;
            display: flex;
            gap: 30px;
            align-items: center;
            padding: 16px;
            background: var(--card-bg);
            box-shadow: 0 0 10px 0 #ddd;
            border-radius: 28px;
            position: relative;
            overflow: hidden;

            @media screen and (max-width: 640px) {
                flex-direction: column;
                box-sizing: border-box;
                overflow: visible;
                padding: 20px;
                /* box-shadow: none; */
                gap: 20px;
                box-shadow: 0 5px 10px #eee;
            }


            &::before,
            &::after{
                content: "";
                display: block;
                position: absolute;
                z-index: 1;
                width: 80px;
                height: 80px;
                border-radius: 0px 28px 0px 28px;
                background: rgb(240, 247, 247, 30%);
                background: linear-gradient(45deg, rgb(240, 247, 247, 70%) 0%, rgb(240, 247, 247, 70%) 50%, rgb(240, 247, 247, 0%) 50%, rgb(240, 247, 247, 0%) 100%);
            }

            &::before{
                bottom: 6px;
                left: 6px;

                @media screen and (max-width: 640px) {
                    bottom: auto;
                    top: 8px;
                    left: 8px;
                    width: 70px;
                    height: 70px;
                    border-radius: 28px 0px 0px 0px;
                    background: linear-gradient(135deg, rgb(240, 247, 247, 70%) 0%, rgb(240, 247, 247, 70%) 50%, rgb(240, 247, 247, 0%) 50%, rgb(240, 247, 247, 0%) 100%);
                }
            }

            &::after{
                width: 40px;
                height: 40px;
                top: 6px;
                right: 6px;
                background: rgb(240, 247, 247, 30%);
                background: linear-gradient(-135deg, rgb(240, 247, 247, 70%) 0%, rgb(240, 247, 247, 70%) 50%, rgb(240, 247, 247, 0%) 50%, rgb(240, 247, 247, 0%) 100%);

                @media screen and (max-width: 640px) {
                    content: none;
                }
            }

            & .sec_plan_detail__media{
                flex: 1;
                margin: 0;
                border-radius: 18px;
                overflow: hidden;
                background: #fff;
                position: relative;

                & img{
                  display: block;
                  width: 100%;
                  height: auto;
                  aspect-ratio: 4 / 3;
                  object-fit: cover;

                  @media screen and (max-width: 640px) {
                    aspect-ratio: 16 / 9;
                }
            }

            & figcaption{
                position: absolute;
                bottom: 10px;
                right: 10px;
                background: rgba(255, 255, 255, 0.7);
                padding: 4px;
                font-size: 16px;
                line-height: 1;
                border-radius: 4px;

                @media screen and (max-width: 640px) {
                    font-size: 14px;
                }
            }
        }

        & .sec_plan_detail__content{
            flex: 1;
            color: var(--text);

            @media screen and (max-width: 640px) {
                width: 100%;
            }
        }

        & .sec_plan_detail__title{
            font-size: 38px;
            line-height: 1.25;
            margin-bottom: 18px;
            letter-spacing: 0.02em;
            /* color: var(--title-accent); */
            font-family: source-han-serif-japanese, serif;

            @media screen and (max-width: 640px) {
                text-align: center;
                font-size: 42px;
            }

            & span{
              color: #333;
              font-size: 20px;
              margin-right: 10px;
          }

          &.choice_family_plan{
            color: #333;

            & span{
                border: 2px solid var(--title-accent);
                color: var(--title-accent);
                padding: 10px;
                font-size: 16px;
                border-radius: 8px;
                font-family: sans-serif;
                position: relative;
                top: -7px;

                @media screen and (max-width: 640px) {
                    position: absolute;
                    border: none;
                    background: #fff;
                    top: -30px;
                    left: 50%;
                    transform: translateX(-50%);
                    font-size: 23px;
                    width: 300px;
                    border-radius: 30px;
                    text-align: center;
                    padding: 8px 10px;
                }
            }
        }
    }

    & .sec_plan_detail__badges{
        display: grid;
        gap: 12px;
        margin-bottom: 20px;

        & p{
          margin: 0;
          padding: 12px 18px;
          border-radius: 10px;
          text-align: center;
          font-weight: 700;
          background: #f2ece6;
          font-size: 18px;

          @media screen and (max-width: 640px) {
            padding: 10px 18px;
        }
    }

    & p:nth-child(2){
      background: #F0F7F7;
  }
}

& .sec_plan_detail__prices{
    display: flex;
    align-items: flex-end;
    gap: 10px;
    margin-bottom: 12px;

    @media screen and (max-width: 640px) {
        flex-direction: column;
        width: 100%;
        margin: 0 auto 10px;
        gap: 10px;
        align-items: center;
        max-width: 331px;
    }

    & .sec_plan_detail__priceMain,& .sec_plan_detail__priceSub{
      margin: 0;
      line-height: 1.05;
      white-space: nowrap;
      font-family: source-han-serif-japanese, serif;
      position: relative;
      font-size: 16px;

      @media screen and (max-width: 640px) {
        width: 100%;
        text-align: center;
    }

    & .sec_plan_detail__tax{
      font-size: 13px;
      font-weight: bold;
      font-family: sans-serif;
      color: var(--muted);
      margin-right: 6px;
      display: inline-block;
      transform: translateY(-10px);
      position: absolute;
  }
}

& .sec_plan_detail__priceMain{
    & strong{
        font-size: 59px;
        font-weight: 800;

        @media screen and (max-width: 640px) {
            font-size: 60px;
        }
    }

    & .sec_plan_detail__tax{
        top: 16px;
        right: 28px;


        @media screen and (max-width: 640px) {
            display: table;
            top: 7px;
            right: calc(50% - 100px);
            transform: translateX(50%);
            font-size: 14px;
        }
    }

    & b{
        font-size: 40px;
        @media screen and (max-width: 640px) {
            font-size: 40px;
        }
    }
}

& .sec_plan_detail__priceSub{
  & strong{
    font-size: 20px;
    font-weight: 700;
}

@media screen and (max-width: 640px) {
   text-align: right;
}

& .sec_plan_detail__tax{
    top: -2px;
    right: 0;

    @media screen and (max-width: 640px) {
       position: relative;
       top: 8px;
   }
}

& b{
    font-size: 16px;
}
}


}

& .sec_plan_detail__note{
    margin: 0;
    font-size: 13px;
    color: var(--muted);

    @media screen and (max-width: 640px) {
        text-align: center;
        font-size: 16px;
    }
}
}

.recommend{
    max-width: 900px;
    margin: 0 auto;
    padding: 60px 0;

    @media screen and (max-width: 640px) {
        padding: 60px 0 40px;
    }

    & h2{
        font-size: 36px;
        margin-bottom: 30px;
        letter-spacing: 2px;

        @media screen and (max-width: 640px) {
            line-height: 1.2;
            font-size: 42px;
            font-weight: 600;
        }
    }

    & p{
        font-size: 16px;
        text-align: center;
        line-height: 2;

        @media screen and (max-width: 640px) {
            text-align: justify;
            padding: 0 20px;
            line-height: 1.8;
            font-size: 18px;
        }

        & b{color: #218A90;}
    }

    & p.reco_ballon{
        background: #218A90;
        border-radius: 100px;
        padding: 10px 30px;
        display: table;
        margin: 0 auto;
        position: relative;
        color: #fff;
        font-weight: bold;
        position: relative;
        text-align: center;
        margin-bottom: 30px;

        &::after{
            content: "";
            display: block;
            border-style: solid;
            border-width: 14px 10px;
            border-color: #218A90 transparent transparent transparent;
            position: absolute;
            left: 50%;
            transform: translateX(-50%);
            bottom: -28px;

        }

        @media screen and (max-width: 640px) {
            width: calc(100% - 40px);
            margin:0 auto 30px;
            border-radius: 10px;
            padding: 8px 10px;
        }
    }
}
}
}


/* 函館エリア周辺の葬儀場 */
.sec_target_hall{
    background: #F0F7F7;
    padding: 160px 0 0px;
    margin-top: -80px;

    & .in{
        max-width: 840px;
        margin: 0 auto;

        & .secTit{
            margin-bottom: 40px;
        }
    }

    @media screen and (max-width: 640px) {
        padding: 40px 0 60px;
        margin-top: 0;
    }
}

.target_hall_wrapper{
    display: grid;
    gap: 30px;
    grid-template-columns: repeat(3, 1fr);
    align-items: center;
    justify-content: center;
    max-width: 1080px;
    margin: 0 auto;

    @media screen and (max-width: 640px) {
        grid-template-columns: repeat(1, 1fr);
        padding: 0px 20px 20px 20px;
    }
    

    & .target_hall_box{
        background: #fff;
        border-radius: 20px;
        overflow: hidden;
        box-shadow: 0 0 10px #acdcdf;

        & .hall_thumb{

            & img{
                display: block;
                width: 100%;
                height: auto;
                aspect-ratio: 16 / 9;
                object-fit: cover;

                @media screen and (max-width: 640px) {
                    aspect-ratio: 16 / 8;
                }
            }
        }
        & .hall_info{
            padding: 20px;
            font-size: 14px;

            & .hall_title{
                margin-bottom: 1em;

                & h3{
                    font-size: 18px;
                    margin-bottom: 5px;
                }

                & p{
                    line-height: 1.6;
                    padding-bottom: 1em;
                    border-bottom: 2px solid #F0F7F7;
                }
            }

            & .hall_detail{

                & .tagBox{
                    line-height: 1.8;

                    & > li{

                        &::before{
                            content: "";
                            display: inline-block;
                            vertical-align: middle;
                            position: relative;
                            top: -2px;
                            width: 16px;
                            height: 16px;
                            margin-right: 5px;
                            background-repeat: no-repeat;
                            background-size: contain;
                            background-position: center;
                        }

                        &.address::before{
                            background-image: url('../img/hakodate_limited/icon_pin.svg');
                        }

                        &.access::before{
                            background-image: url('../img/hakodate_limited/icon_car.svg');
                        }

                        &.capacity::before{
                            background-image: url('../img/hakodate_limited/icon_chair.svg');
                        }
                    }
                }
            }
        }

        & .detail-link{
            background: #F3EFEC;
            padding: 10px;

            & span{
                display: block;
                background: #fff;
                border-radius: 100px;
                padding: 10px;
                text-align: center;
                font-weight: bold;
                font-size: 18px;
                position: relative;

                &::after{
                    content: "";
                    position: absolute;
                    display: block;
                    width: 20px;
                    height: 20px;
                    background-image: url('../img/hakodate_limited/icon_arrow.svg');
                    background-repeat: no-repeat;
                    background-size: contain;
                    background-position: center;
                    top: 50%;
                    transform: translateY(-50%);
                    right: 10px;
                }
            }
        }
    }
}

/* 基本料金に含まれるセット */
.sec_price.sec_basic_set{

    & .in{
        background: #F0F7F7;
        background: linear-gradient(180deg, #F0F7F7 30%, #FFF 74%);

        @media screen and (max-width: 640px) {
            padding: 0px 20px 60px;
        }
    }

    & .title_design01{
        margin-bottom: 20px;

        &::after{
            bottom: -75px;
        }

        @media screen and (max-width: 640px) {
         line-height: 1.4;
     }
 }

 & .option{
    max-width: 900px;
    margin: 0 auto;
    background: #F4EFEC;
    border-radius: 20px;
    padding: 50px 20px 20px;
    position: relative;

    &::before {
        content: "";
        display: block;
        position: absolute;
        z-index: 1;
        width: 60px;
        height: 60px;
        top: 10px;
        left: 10px;
        border-radius: 20px 0px 0px 0px;
        background: rgb(255, 255, 255, 30%);
        background: linear-gradient(135deg, rgb(255, 255, 255, 30%) 0%, rgb(255, 255, 255, 30%) 50%, rgb(255, 255, 255, 0%) 50%, rgb(255, 255, 255, 0%) 100%);
    }

    @media screen and (max-width: 640px) {
        padding: 40px 0 20px;

        &::before{
            width: 50px;
            height: 50px;
        }
    }
}

& .includeWrap{
    background: none;
    margin: 0 auto;
    padding: 0;

    & .basic_set_box{
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 14px;

        & .item{
            width: 100%;
            margin: 0;

            &::before{
                content: none;
            }

            & .ph{
                width: 130px;
            }

            & .txt{
                width: 100%;

                & .ttl{
                    font-family: sans-serif;
                    font-weight: 500;
                }
            }
        }

        @media screen and (max-width: 640px) {
            grid-template-columns: repeat(1, 1fr);
            gap: 10px;
        }

    }



    & > p{
        font-size: 16px;
        text-align: center;
        margin-bottom: 70px;
        line-height: 2;

        @media screen and (max-width: 640px) {
            text-align: justify;
            margin-bottom: 80px;
        }
    }
}

& .caution_text{
    max-width: 900px;
    margin: 14px auto 0;
    font-size: 16px;
}
}


/* おすすめセット */
.sec_plan_favset{
    background: #F0F7F7;
    background: linear-gradient(90deg, #F9F7F6 30%, #F9F7F6 74%);
    border-radius: 80px 0  80px 0;
    position: relative;
    z-index: 2;

    & .sec_plan_detail{
        padding: 20px 0 240px;

        @media screen and (max-width: 640px) {
            padding: 20px 0 0px;
        }

        & .in {
            background: none;

            & .title_design01{
                font-size: 40px;
                margin-bottom: 20px;

                &::after{
                    content: none;
                }
            }

            & .txt{
                text-align: center;

                @media screen and (max-width: 640px) {
                    text-align: justify;
                    padding: 20px;
                }

            }

            & .plan_fav_box{
                position: absolute;
                top: 240px;
                left: 50%;
                transform: translateX(-50%);
                box-shadow: 0 5px 10px #F3F8F8;

                & .sec_plan_detail__title{
                    font-size: 42px;
                }

                &.eset{
                    top: 150px;
                }

                @media screen and (max-width: 640px) {
                    position: relative;
                    transform: none;
                    top: auto;
                    left: auto;
                    transform: none;

                    &.eset{
                        top: auto;
                    }
                }

                &::before{
                    content: "";
                    display: block;
                    position: absolute;
                    z-index: 1;
                    width: 80px;
                    height: 80px;
                    border-radius: 0px 28px 0px 28px;
                    background: rgb(240, 247, 247, 30%);
                    background: linear-gradient(135deg, rgb(240, 247, 247, 70%) 0%, rgb(240, 247, 247, 70%) 50%, rgb(240, 247, 247, 0%) 50%, rgb(240, 247, 247, 0%) 100%);
                    top: 6px;
                    left: 6px;

                    @media screen and (max-width: 640px) {
                        width: 70px;
                        height: 70px;
                        top: 8px;
                        left: 8px;
                        border-radius: 28px 0px 0px 0px;
                    }
                }
            }

        }

    }

}



.sec_plan_setlist {

  & .in {
    max-width: 980px;
    margin: 0 auto;
    padding: 260px 60px 60px;
    background: #FCFBFA;
    border-radius: 40px;

    @media screen and (max-width: 640px) {
        padding: 20px 20px 30px;
    }
}

& img {
    display: block;
    width: 100%;
    height: auto;
}

& .set_intro {

    text-align: center;
    margin-bottom: 37px;

    & h4 {
      font-size: 36px;
      line-height: 1.4;
      margin-bottom: 24px;
      font-family: source-han-serif-japanese, serif;

      & span {
        color: #1e9aa0;
    }

    @media screen and (max-width: 640px) {
        font-size: 32px;
    }
}

& p {
  font-size: 16px;
  line-height: 2;
  margin-bottom: 6px;

  @media screen and (max-width: 640px) {
    text-align: justify;
}
}

&::after {
  content: "";
  display: block;
  width: 40px;
  height: 4px;
  background: #1e9aa0;
  background: linear-gradient(90deg, #218A90 0%, #218A90 50%, #94C3C6 50%, #94C3C6 100%);
  margin: 30px auto 0;
}

}

& .set_sum {
    margin-bottom: 20px;
}

& .set_sum_title {
    background: #edf7f7;
    border-radius: 12px;
    font-size: 24px;
    text-align: center;
    padding: 12px 20px;
    margin-bottom: 24px;
    font-weight: bold;

    @media screen and (max-width: 640px) {
        font-size: 22px;
    }
}

& .set_sum_plus {
    width: 70px;
    height: 70px;
    border-radius: 50%;
    background: #fff;
    font-size: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 54px;
    border: 2px solid #999;

    @media screen and (max-width: 640px) {
        font-size: 52px;
    }
}

& .set_group {
    border: 3px solid #e6e1dd;
    border-radius: 30px;
    padding: 40px 30px 30px;
    position: relative;
    background: #FDFBFA;

    @media screen and (max-width: 640px) {
        padding:30px 16px 16px;
    }

    & h3 {
      position: absolute;
      top: 0;
      left: 50%;
      transform: translate(-50%, -50%);
      background: #FDFBFA;
      border: 3px solid #e6e1dd;
      border-radius: 24px;
      font-size: 22px;
      width: 100%;
      max-width: 340px;
      height: 53px;
      z-index: 1;

      @media screen and (max-width: 640px) {
        width: calc(100% - 80px);
    }

    & b {
        color: #1e9aa0;
    }

    & span{
        text-align: center;
        width: 100%;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        z-index: 3;

        @media screen and (max-width: 640px) {
            font-size: 20px;
        }

    }

    &::after{
        content: "";
        background: #FDFBFA;
        display: block;
        width: 110%;
        height: 30px;
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        bottom: -3px;
        z-index: 2;
    }

}

}

& .set_items {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 16px;

    @media screen and (max-width: 640px) {
        grid-template-columns: repeat(1,1fr);
        gap: 10px;
    }

    & > div {
      display: flex;
      align-items: center;
      background: #f4f1ef;
      border-radius: 8px;
      overflow: hidden;
  }

  & img {
      width: 110px;
      height: 80px;
      object-fit: cover;
      flex-shrink: 0;

      @media screen and (max-width: 640px) {
        width: 90px;
        height: 68px;
    }
}

& span {
  padding: 0 16px;
  font-size: 14px;
  line-height: 1.4;
}

& .more-type2{
    background: #f4f1ef;

    &::after{
        background: #fff;
    }

    & span{
        font-size: 18px;
    }
}

}

& .set_caption {
    font-size: 14px;
    margin-bottom: 30px;
}

& .sum_price{

    & .title_design01{
        font-size: 40px;

        @media screen and (max-width: 640px) {
                line-height: 1.2;
            }

        & span{
            font-size: 0.8em;

            @media screen and (max-width: 640px) {
                display: block;
            }

            & b{color: #218A90;}
        }
    }
}

& .price_calc {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-bottom: 20px;

  @media screen and (max-width: 640px) {
      flex-direction: column;
  }

  & .price_box {
    /* デフォルトカラー */
    --border-color: #e6e1de;
    --head-bg: #e6e1de;
    --head-color: #4d403a;

    width: 100%;
    border: 4px solid var(--border-color);
    border-radius: 20px;
    overflow: hidden;
    background: #fff;

    & .price_calc_head {
      padding: 14px 5px;
      text-align: center;
      font-size: 24px;
      font-weight: bold;
      line-height: 1.2;
      color: var(--head-color);
      background: var(--head-bg);
    }

    & .price_calc_body {
        width: calc(100% - 16px);
        margin: 0 auto;
        padding: 14px 0 21px;
        text-align: right;
        font-family: source-han-serif-japanese, serif;
        line-height: 1.6;
        font-weight: bold;

        @media screen and (max-width: 640px) {
            display: table;
            width: auto;
        }
    }

    & .price-tax-excluded {
      color: #4d403a;
      line-height: 1.2;

      & .price_calc_num {
        font-size: 43px;
        letter-spacing: -1px;

        @media screen and (max-width: 1080px) {
            font-size: 40px;
        }

        & b {
          font-size: 0.6em;
          margin-left: 4px;
          position: relative;
        }
      }

      & .tax {
        font-size: 14px;
        margin-left: 5px;
        font-family: sans-serif;
      }
    }

    & .price-tax-included{
        font-size: 20px;

        & .tax{
            margin-left: 5px;
            font-family: sans-serif;
            font-size: 13px;
        }
    }

    /* バリエーション */
    &.is-set {
      --border-color: #edf7f7;
      --head-bg: #edf7f7;
    }

    &.is-total {
      --head-bg: #218A90;
      --head-color: #fff;
      border: none;
    }
  }

  & .symbol {
    font-size: 40px;
    color: #4d403a;
    font-weight: bold;

    @media screen and (max-width: 640px) {
        writing-mode: vertical-lr;
    }
  }

}


& .set_note {

    & h4 {
      font-size: 18px;
      margin-bottom: 8px;
      font-weight: normal;
  }

  & ul {
      list-style: none;
      padding: 0;
  }

  & li {

      position: relative;
      font-size: 16px;
      line-height: 1.8;
  }

}

}


.sec_plan_contact {
    background: #F3F3F3;
    padding: 160px 0 80px;

    @media screen and (max-width: 640px) {
        padding: 40px 0;
    }

    & .in {
        max-width: 980px;
        margin: 0 auto;

        @media screen and (max-width: 640px) {
            padding: 20px;
        }
    }

    & a {
        pointer-events: none;
        display: block;
        color: inherit;
        text-decoration: none;
    }

    & .plan_contact_wrapper {
        border-radius: 30px;
        padding: 40px 60px 0;
        background: #1f9298;
        border: 8px solid #fff;
        box-shadow: 0 0 0 2px #1f9298;

        @media screen and (max-width: 640px) {
            padding: 40px 20px 20px;
            border: none;
            box-shadow: none;
        }

        & h2 {
          color: #fffdf7;
          font-size: 34px;
          font-weight: bold;
          text-align: center;
          margin-bottom: 10px;

          @media screen and (max-width: 640px) {
            font-size: 26px;
        }

        & span{
            color: #FEF1D2;
        }
    }

    & p {
      color: #fffdf7;
      font-size: 16px;
      line-height: 2;
      text-align: center;
      margin-bottom: 30px;

      @media screen and (max-width: 640px) {
        margin-bottom: 20px;
        text-align: justify;
    }
}

& .contact_list {
  display: flex;
  justify-content: center;
  gap: 36px;
  list-style: none;
  background: #278f96;
  margin-bottom: 30px;

  & li {
    flex: 1;
    background: #fff;
    border-radius: 10px;
    color: #5a4b44;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
    padding: 10px;
}

@media screen and (max-width: 640px) {
    flex-direction: column;
    gap: 14px;

    & li{
        font-size: 16px;
    }
}

}
}
}


/* 共通slickスライダーデザイン */

.js-areaSlickSlider{

    & .slick-list {
        margin: 0 -15px;
    }
    & .slick-slide {
        margin: 0 15px;
    }

    &.slick-dotted.slick-slider{
        margin-bottom: 0;
    }

    & .slick-dots{
        left: 50%;
        transform: translateX(-50%);
        margin-bottom: 10px;

        & li button::before{
            font-size: 14px;
            opacity: 1;
            color: #fff;
        }

        & li.slick-active button::before {
            opacity: 1;
            color: #218A90;
        }
    }

    & .slick-prev,
    & .slick-next
    {
        width: 40px;
        height: 40px;
        top: calc(50%);
        right: 0px;
        transform: translate(0, -50%);
        background-image: url(../img/area/area_slick_arrow.svg);
        background-repeat: no-repeat;
        background-position: center;
        z-index: 1;

        &::before{
            content: none;
        }

        &:hover{
            background-image: url(../img/area/area_slick_arrow.svg);
            opacity: 0.8;
        }
    }

    & .slick-prev
    {
        left: 0px;
        transform: translate(0, -50%) rotate(180deg);
        background-image: url(../img/area/area_slick_arrow.svg);

        &:hover{
            background-image: url(../img/area/area_slick_arrow.svg);
            opacity: 0.8;
        }
    }

}



