@charset "UTF-8";
/* ========================================
  @media screen and (min-width: 768px), print
======================================== */
@media screen and (min-width: 768px),print {
#routine {
    max-width: 1920px;
    width: 100%;
    margin-inline: auto;
}
#routine main {
    background: url(../images/page-common/com-bg.png)repeat;
    background-size: contain;
}
#routine .seo_bread_list {color: #FFFFFF;position: relative;z-index: 2;margin-bottom: -91px;}
#routine .seo_bread_list span,
#routine .seo_bread_list a {
    color: #FFFFFF;
}

/* mv
-------------------------------------*/
.mv  {
    padding-block: 143px 155px;
}
.mv .enttl {
    text-align: center;
    margin-bottom: -57px;
}
.mv .photo {
    width: min(95%, 1282px);
    margin-inline: auto;
    margin-bottom: 75px;
}
.mv .photo img {
    width: 100%;
    height: auto;
}
.mv .txt {
    font-weight: bold;
    font-size: 20px;
    letter-spacing: 0.05em;
    line-height: 1.8;
    text-align: center;
    color: #fff;
    margin-bottom: 24px;
}
.mv .txt:nth-last-of-type(1) {
    margin-bottom: 0;
}

/* sec共通
-------------------------------------*/
.sec {
    width: min(95%, 1280px);
    margin-inline: auto;
    background: #c8c6be;
    border-radius: 20px;
    margin-bottom: 80px;
}
.sec .ttl {
    font-weight: bold;
    font-size: 36px;
    display: flex;
    gap: 14px;
    align-items: flex-start;
    padding: 56px 90px 20px;
}
.sec .ttl span {
    margin-top: -77px;
}
.ac-area {

    padding-bottom: 0;
    transition: padding 0.3s ease;
}

.ac-area.is-open-area {padding-bottom: 52px;}


.accordion-content {
    overflow: hidden;
    width: min(95%, 1100px);
    margin-inline: auto;
    background: #FFFFFF;
    max-height: 0;
}
.accordion-content.is-open {
    position: relative;
    top: -4px;
    margin-bottom: 5px;
}
.jsAccordionTitle {
    cursor: pointer;
    position: relative;
}

/* click */
.jsAccordionTitle::after {
    content: "";
    position: absolute;
    background: url(../images/routine/click.svg)no-repeat;
    background-size: contain;
    width: 47px;
    height: 41px;
    right: 90px;
    top: 52%;
    transform: translateY(-50%);
    font-size: 20px;
    transition: transform 0.3s ease;
}
/* 開いたとき */
.jsAccordionTitle.is-active::after {
    content: "";
    background: url(../images/routine/close.svg)no-repeat;
    background-size: contain;
}

.accordion-content .soon {
    font-weight: 500;
    font-size: 24px;
    letter-spacing: 0.05em;
    line-height: 1.3333;
    text-align: center;
    display: grid;
    place-items: center;
    height: 160px;
}

.accordion-content .schedule {
    padding: 40px 81px 36px;
}
.accordion-content .schedule ul {display: grid;gap: 27px;position: relative;}
.accordion-content .schedule ul::before {
    position: absolute;
    content: "";
    background: #269A6F;
    width: 3px;
    height: 87.4%;
    top: 17px;
    left: 82px;
}
.accordion-content .schedule ul li{
    display: grid;
    grid-template-columns: 14.2% 1fr;
    align-items: flex-start;
}
.accordion-content .schedule ul li .time{
    font-weight: 500;
    font-size: 20px;
    letter-spacing: 0.05em;
    line-height: 1.6;
    position: relative;
}
.accordion-content .schedule ul li .time::after {
    position: absolute;
    content: "";
    width: 9px;
    height: 9px;
    top: 7px;
    right: 42px;
    border-radius: 50%;
    background: #fff;
    border: 3px solid #269a6f;
}
.accordion-content .schedule ul li .txt{
    font-weight: 500;
    font-size: 18px;
    letter-spacing: 0.05em;
    line-height: 1.6;
}
.accordion-content .schedule ul li .txt .desc {
    font-weight: 500;
    font-size: 14px;
    letter-spacing: 0.05em;
    line-height: 1.71428;
    color: #a4a4a4;
    display: block;
}

/* sec03
-------------------------------------*/
.sec03 .accordion-content .schedule ul li .txt{
    padding: 0 0 9px;
}
.sec03 .accordion-content .schedule ul li:nth-child(5) {
    margin-top: -19px;
}
.sec03 .accordion-content .schedule ul li .txt:nth-of-type(2) {
    padding: 0;
}
.sec03 .accordion-content .schedule ul li:nth-child(4) .txt-box .txt,
.sec03 .accordion-content .schedule ul li:nth-child(5) .txt-box .txt{
    padding: 0;
}

/* sec05
-------------------------------------*/
.sec05 .accordion-content .schedule ul::before {
    height: 90%;
}

/* sec07
-------------------------------------*/
.sec07 {
    margin-bottom: 141px;
}

/* link-sec
-------------------------------------*/
.link-sec {
    background: url(../images/page-common/link-sec-bg.jpg)no-repeat center;
    background-size: cover;
    padding-block: 180px 135px;
}
.link-sec .ttl {
    font-weight: bold;
    font-size: 30px;
    text-align: center;
    color: #fff;
    margin-bottom: 70px;
}
.link-sec .bnr-item {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 80px;
    width: min(95%, 1100px);
    margin-inline: auto;
}

}

/* ========================================
@media screen and (min-width:768px) and (max-width:1280px)
======================================== */
@media screen and (min-width:768px) and (max-width:1280px) {
.accordion-content .schedule ul li {
    grid-template-columns: 10.4vw 1fr;
}
.accordion-content .schedule ul::before {
    position: absolute;
    content: "";
    background: #269A6F;
    top: 1.328vw;
    left: 8.706vw;
}
.accordion-content .schedule ul li .time::after {
    position: absolute;
    content: "";
    width: 0.703vw;
    height: 0.703vw;
    top: 0.547vw;
    right: 1vw;
    border-radius: 50%;
    background: #fff;
    border: 3px solid #269a6f;
}
}

/* ========================================
@media screen and (min-width:768px) and (max-width:1240px)
======================================== */
@media screen and (min-width:768px) and (max-width:1240px) {
.link-sec .bnr-item li img {
    width: 100%;
    height: auto;
}
}

/* ========================================
@media screen and (min-width:768px) and (max-width:1100px)
======================================== */
@media screen and (min-width:768px) and (max-width:1100px) {
.mv .enttl img {
    width: 93.64vw;
}
.sec05 .accordion-content .schedule ul::before {
    height: 93%;
}
}

/* ========================================
@media screen and (min-width:768px) and (max-width:1000px)
======================================== */
@media screen and (min-width:768px) and (max-width:1000px) {
    .sec .ttl {
        font-size: clamp(1.625rem, -0.444rem + 4.31vw, 2.25rem);
    }
}

/* ========================================
  @media screen and (max-width: 767px) 
======================================== */
@media screen and (max-width: 767px) {
#routine main {
    background: url(../images/page-common/com-bg.png)repeat;
    background-size: contain;
}
#routine .seo_bread_list {color: #FFFFFF;position: relative;z-index: 2;margin-bottom: -15.5vw;padding: 6.5vw 0vw 3.5vw;}
#routine .seo_bread_list span,
#routine .seo_bread_list a {
    color: #FFFFFF;
}


/* mv
-------------------------------------*/
.mv  {
    padding-block: 23.74vw 16.59vw;
}
.mv .enttl {
    text-align: center;
    margin-bottom: 6.53vw;
}
.mv .photo {
    width: 82.13vw;
    margin-inline: auto;
    margin-bottom: 10.14vw;
}
.mv .photo img {
    width: 100%;
    height: auto;
}
.mv .txt {
    font-weight: 500;
    font-size:4.106vw;
    letter-spacing: 0;
    line-height: 1.76470;
    text-align: center;
    color: #fff;
    margin-bottom: 5.25vw;
}
.mv .txt:nth-last-of-type(1) {
    font-size:3.865vw;
    line-height: 1.875;
    margin-bottom: 0;
}

/* sec共通
-------------------------------------*/
.sec {
    width: 91.79vw;
    margin-inline: auto;
    background: #c8c6be;
    border-radius: 2.83vw;
    margin-bottom: 12.18vw;
}
.sec .ttl {
    font-weight: bold;
    font-size:4.831vw;
    display: flex;
    gap: 4.83vw;
    align-items: flex-start;
    padding: 8.45vw 4.83vw 4.66vw;
}
.sec .ttl span {margin-top: -11vw;}
.sec .ttl span img{
    width: 18.84vw;
    height: 21.74vw;
}
.ac-area {
    padding-bottom: 0;
    transition: padding 0.3s ease;
}

.ac-area.is-open-area {padding-bottom: 7.25vw;}


.accordion-content {
    overflow: hidden;
    width: 82.13vw;
    margin-inline: auto;
    background: #FFFFFF;
    max-height: 0;
}
.accordion-content.is-open {
    position: relative;
    margin-top: -2vw;
}
.jsAccordionTitle {
    cursor: pointer;
    position: relative;
}

/* click */
.jsAccordionTitle::after {
    content: "";
    position: absolute;
    background: url(../images/routine/click_sp.svg)no-repeat;
    background-size: contain;
    width: 6.76vw;
    height: 6.28vw;
    right: 5.07vw;
    top: 52%;
    transform: translateY(-50%);
    transition: transform 0.3s ease;
}
/* 開いたとき */
.jsAccordionTitle.is-active::after {
    content: "";
    background: url(../images/routine/close.svg)no-repeat;
    background-size: contain;
}

.accordion-content .soon {
    font-weight: 500;
    font-size:4.348vw;
    letter-spacing: 0.05em;
    line-height: 1.7777;
    text-align: center;
    display: grid;
    place-items: center;
    height: 35.75vw;
}

.accordion-content .schedule {
    padding: 10vw 4vw 6.18vw 4.83vw;
}
.accordion-content .schedule ul {display: grid;gap: 3.5vw;position: relative;}
.accordion-content .schedule ul::before {
    position: absolute;
    content: "";
    background: #269A6F;
    width: 0.5vw;
    height: 89.4%;
    top: 3.11vw;
    left: 13.81vw;
}
.accordion-content .schedule ul li{
    display: grid;
    grid-template-columns: 24.2% 1fr;
    align-items: flex-start;
}
.accordion-content .schedule ul li .time{
    font-weight: 500;
    font-size:3.623vw;
    letter-spacing: 0.05em;
    line-height: 1.5;
    position: relative;
}
.accordion-content .schedule ul li .time::after {
    position: absolute;
    content: "";
    width: 2vw;
    height: 2vw;
    top: 0.69vw;
    right: 2.14vw;
    border-radius: 50%;
    background: #fff;
    border: 0.5vw solid #269a6f;
}
.accordion-content .schedule ul li .txt{
    font-weight: 500;
    font-size:3.865vw;
    letter-spacing: 0.05em;
    line-height: 1.5;
}
.accordion-content .schedule ul li .txt .desc {
    font-weight: 500;
    font-size:3.382vw;
    letter-spacing: 0.05em;
    line-height: 1.71428;
    color: #a4a4a4;
    display: block;
}

/* sec03
-------------------------------------*/
.sec03 .ttl {
    padding: 6.45vw 4.83vw 5.96vw;
}
.sec03 .ttl span {
    margin-top: -9vw;
}
.sec03 .accordion-content .schedule ul li .txt{
    padding: 0 0 2.17vw;
}

/* sec05
-------------------------------------*/
.sec05 .accordion-content .schedule ul {
    gap: 6.6vw;
}
.sec05 .accordion-content .schedule ul::before {height: 96%;top: 1vw;}

/* sec07
-------------------------------------*/
.sec07 {
    margin-bottom: 24vw;
}
.sec07 .accordion-content .schedule ul {
    gap: 6.6vw;
}

/* link-sec
-------------------------------------*/
.link-sec {
    background: url(../images/page-common/link-sec-bg_sp.jpg)no-repeat;
    background-size: cover;
    padding-block: 24.15vw 22.22vw;
}
.link-sec .ttl {
    font-weight: bold;
    font-size:4.831vw;
    text-align: center;
    color: #fff;
    margin-bottom: 9.66vw;
}
.link-sec .bnr-item {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 4.83vw;
    width: 67.63vw;
    margin-inline: auto;
}
}