@charset "UTF-8";
/* ========================================
  @media screen and (min-width: 768px), print
======================================== */
@media screen and (min-width: 768px),print {
/* mv
-------------------------------------*/
.mv {
    background-color: #EEF0E7;
    margin-top: 234px;
    position: relative;
    padding-bottom: 26px;
}
.mv::before {
    content: "";
    display: block;
    background: url(../images/menu/menu-bg-t.png) no-repeat center top / contain;
    width: 100%;
    height: 105px;
    top: -75px;
    position: absolute;
}
.mv h2 {
    font-size: 86px;
    letter-spacing: 0;
    text-align: center;
    color: #eef0e7;
    position: relative;
    top: -252px;
}
.mv .photo {
    text-align: center;
    margin-bottom: 40px;
    position: relative;
    top: -256px;
    margin-bottom: -221px;
    width: min(95%, 1280px);
    margin-inline: auto;
}
.mv .txt {
    font-weight: 500;
    font-size: 16px;
    letter-spacing: 0.05em;
    line-height: 2;
    text-align: center;
}
.mv .txt02 {
    margin-bottom: 36px;
}
.mv .menu-list {
    width: min(95%, 1420px);
    margin-inline: auto;
}
.mv .menu-list h3 {
    font-size: 28px;
    letter-spacing: 0;
    text-align: center;
    color: #3b8461;
    margin-bottom: 4px;
}
.mv .menu-list .lead {
    font-weight: 500;
    font-size: 16px;
    letter-spacing: 0.05em;
    line-height: 2;
    text-align: center;
    margin-bottom: 33px;
}
.mv .menu-list .list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 20px;
    margin-bottom: 60px;
}
 
/* sec共通
-------------------------------------*/
.sec {
    position: relative;
    padding-bottom: 72px;
}
.sec::before {
    position: absolute;
    content: "";
    background: #EEF0E7;
    width: 90.5729%;
    height: 299px;
    bottom: 0;
    pointer-events: none;
}
.sec:nth-child(odd)::before {
    right: 0;
}
.sec:nth-child(even)::before {
    left: 0;
}
.sec .inBox {
    width: min(95%, 1560px);
    display: grid;
    gap: 74px;
    padding: 180px 0 59px;
    position: relative;
}
.sec:nth-child(odd) .inBox {
    grid-template-columns: 38.8461% 56.4102%;
    margin-left: auto;
}
.sec:nth-child(even) .inBox {
    grid-template-columns: 56.4102% 38.8461%;
    margin-right: auto;
    gap: 60px;
}
.sec .num {
    font-size: 21px;
    line-height: 1.67;
    letter-spacing: 0;
    text-align: center;
    color: #1d1d1f;
    padding: 0 18px;
    border: 1px solid #1D1D1F;
    margin-bottom: 50px;
    display: inline-block;
}
.sec h2 {
    font-weight: 500;
    font-size: 38px;
    letter-spacing: 0.05em;
    line-height: 0.842105;
    display: flex;
    gap: 12px;
    align-items: center;
    margin-bottom: 58px;
}
.sec h2 span {position: relative;top: 3px;left: -2px;}
.sec h3 {
    font-weight: 500;
    font-size: 25px;
    letter-spacing: 0.05em;
    line-height: 1.28;
    color: #fff;
    margin-bottom: 52px;
}
.sec h3 span {
    background: #3A4F44;
    display: inline-block;
    padding: 14px 20px;
}
.sec h3 .span01 {
    margin-bottom: 10px;
}
.sec .txt {
    font-weight: 500;
    font-size: 16px;
    letter-spacing: 0.05em;
    line-height: 2;
    margin-bottom: 38px;
}
.sec .txt:nth-last-of-type(1) {
    margin-bottom: 0;
}
.sec .txt span {
    position: relative;
}
.sec .txt span::before {
    position: absolute;
    content: "";
    background: #1D1D1F;
    width: 45px;
    height: 1px;
    top: 50%;
    left: -53px;
    transform: translateY(-50%);
}
.sec .photo01 {padding: 94px 0 0;}
.sec .photo02 {
    position: relative;
    width: min(95%, 1410px);
}

.sec:nth-child(odd) .photo02 {
    margin-right: auto;
}
.sec:nth-child(even) .photo02 {
    margin-left: auto;
}

#menu01,
#menu02,
#menu03,
#menu04,
#menu05,
#menu06,
#menu07 {
    position: relative;
    top: 180px; 
    display: block;
    height: 0;
}

/* menu01
-------------------------------------*/
.menu01 h3 .span02 {
    padding: 14px 19px 14px 6px;
}
.menu01 .txt:nth-of-type(3) {margin-bottom: 0;}
.menu01 .txt:nth-of-type(4) {
    margin-bottom: 35px;
    position: relative;
    padding-left: 54px;
}


/* menu02
-------------------------------------*/
.sec.menu02 .num {margin-bottom: 53px;}
.sec.menu02 .inBox {
    grid-template-columns: 56.4102% 41.0389%;
    gap: 60px;
}
.sec.menu02 h2 {margin-bottom: 62px;}
.sec.menu02 h2 span {
    left: 0;
}
.sec.menu02 h3 .span02 {padding: 14px 18px 14px 6px;}
.sec.menu02 .txt:nth-of-type(3) span {
    margin-left: 64px;
}

/* menu03
-------------------------------------*/
.sec.menu03 h2 {
    margin-bottom: 50px;
}
.sec.menu03 h2 span {
    left: 0;
    top: -7px;
}
.sec.menu03 h3 .span02 {
    margin-bottom: 10px;
}
.sec.menu03 h3 .span03 {
    padding: 14px 20px 14px 6px;
}
.sec.menu03 .txt span {
    display: block;
    margin-left: 55px;
}

/* menu04
-------------------------------------*/
.sec.menu04 h2 span {
    left: 0;
}
.sec.menu04 .txt:nth-of-type(3) span {
    margin-left: 64px;
}

/* menu05
-------------------------------------*/
.sec.menu05 .num {
    margin-bottom: 45px;
}
.sec.menu05 h2 {
    margin-bottom: 54px;
}
.sec.menu05 h2 span {left: 0;top: -6px;}
.sec.menu05 .txt span {
    display: block;
    margin-left: 55px;
}
.sec.menu05 .txt .span01 {
    display: inline-block;
    margin-left: 0;
}
.sec.menu05 .txt .span01::before {
    content: none;
}


/* menu06
-------------------------------------*/
.sec.menu06 .num {
    margin-bottom: 42px;
}
.sec.menu06 h2 {
    margin-bottom: 49px;
}
.sec.menu06 h2 span {left: 0;top: -6px;}
.sec.menu06 h3 .span02 {
    margin-bottom: 10px;
}
.sec.menu06 h3 .span03 {
    padding: 14px 20px 14px 6px;
}
.sec.menu06 .txt span {
    display: block;
    margin-left: 55px;
}

/* menu07
-------------------------------------*/
.sec.menu07 .num {
    margin-bottom: 42px;
}
.sec.menu07 h2 {
    margin-bottom: 49px;
}
.sec.menu07 h2 span {left: 0;top: -4px;}
.sec.menu07 h3 .span02 {
    margin-bottom: 10px;
}
.sec.menu07 h3 .span03 {
    padding: 14px 20px;
}
.sec.menu07 .txt span {
    display: block;
    margin-left: 55px;
}
.sec.menu07 .txt:nth-of-type(4) {
    margin-bottom: 0;
}

/* bottom-sec
-------------------------------------*/
.bottom-sec {
    background: #F6F6F6;
    margin-top: 180px;
    margin-bottom: -130px;
}
.bottom-sec .inner {
    width: min(95%, 1100px);
    margin-inline: auto;
    position: relative;
    padding: 158px 0 290px;
}
.bottom-sec .inner::before {
    position: absolute;
    content: "";
    background: url(../images/menu/bottom-sec-deco.png)no-repeat;
    background-size: contain;
    width: 550px;
    height: 530px;
    top: -101px;
    left: -106px;
}
.bottom-sec h2 {
    font-size: 32px;
    font-weight: 500;
    letter-spacing: 0.05em;
    margin-bottom: 56px;
    text-align: center;
    position: relative;
}
.bottom-sec .list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 40px;
    position: relative;
} 
.bottom-sec .list li img {
    margin-bottom: 11px;
}
.bottom-sec .list li .txt {
    font-size: 14px;
    letter-spacing: 0.05em;
    line-height: 1.7142857;
    text-align: center;
}
}

/* ========================================
@media screen and (min-width:768px) and (max-width:1440px) 
======================================== */
@media screen and (min-width:768px) and (max-width:1440px) {
/* mv
-------------------------------------*/
.mv {
    margin-top: 16.25vw;
    padding-bottom: 1.806vw;
}
.mv::before {
    width: 100%;
    height: 7.292vw;
    top: -5.208vw;
}
.mv h2 {
    font-size: 5.972vw;
    top: -17.5vw;
}
.mv .photo {
    margin-bottom: 2.778vw;
    top: -17.778vw;
    margin-bottom: -15.347vw;
}
.mv .photo img {
    width: 100%;
}
.mv .txt {
    font-size: clamp(0.75rem, 0.464rem + 0.6vw, 1rem);
}
.mv .txt02 {
    margin-bottom: 2.5vw;
}
.mv .menu-list h3 {
    font-size: 1.944vw;
    margin-bottom: 0.278vw;
}
.mv .menu-list .lead {
    font-size: clamp(0.75rem, 0.464rem + 0.6vw, 1rem);
    margin-bottom: 2.292vw;
}
}

/* ========================================
@media screen and (min-width:768px) and (max-width:1520px)
======================================== */
@media screen and (min-width:768px) and (max-width:1520px) {
.mv .menu-list .list {
    gap: 1.282vw 2.564vw;
    margin-bottom: 3.846vw;
}
.mv .menu-list .list li img {
    width: 21.795vw;;
    height: auto;
}
}

/* ========================================
@media screen and (min-width:768px) and (max-width:1600px)
======================================== */
@media screen and (min-width:768px) and (max-width:1600px){
.sec::before {
    height: 18.688vw;
}
.sec h2 {
    font-size: clamp(1.25rem, 0.212rem + 2.16vw, 2.375rem);
    line-height: 1.5;
}
.sec h3 {
    font-size: clamp(0.688rem, -0.12rem + 1.68vw, 1.563rem);
}
.sec .txt {
    font-size: clamp(0.688rem, 0.399rem + 0.6vw, 1rem);
}
.sec .inBox {
    gap: 5.139vw;
    padding: 12.5vw 0 4.097vw;
}
.sec:nth-child(even) .inBox {
    gap: 4.167vw;
}
.sec .photo01 img {
    width: 100%;
    height: auto;
}
.sec .photo02 img {
    width: 100%;
    height: auto;
}
.sec.menu04 .txt:nth-of-type(3) span {
    display: block;
}
#menu01,
#menu02,
#menu03,
#menu04,
#menu05,
#menu06,
#menu07 {
    position: relative;
    top: 11.25vw; 
    display: block;
    height: 0;
}

}


/* ========================================
@media screen and (min-width:768px) and (max-width:1200px)
======================================== */
@media screen and (min-width:768px) and (max-width:1200px) {
.sec.menu02 .txt:nth-of-type(3) span {
    display: block;
}
}

/* ========================================
@media screen and (min-width:768px) and (max-width:1140px) 
======================================== */
@media screen and (min-width:768px) and (max-width:1140px) {
/* bottom-sec
-------------------------------------*/
.bottom-sec .list {
    gap: 3.509vw;
} 
.bottom-sec .list li img {
    margin-bottom: 0.965vw;
    width: 100%;
    height: auto;
}
.bottom-sec .list li .txt {
    font-size: clamp(0.688rem, 0.3rem + 0.81vw, 0.875rem);
}

}
    


/* ========================================
@media screen and (max-width: 767px)
======================================== */
@media screen and (max-width: 767px) {
/* mv
-------------------------------------*/
.mv {
    background-color: #EEF0E7;
    margin-top: 35vw;
    position: relative;
    padding-bottom: 14vw;
}
.mv::before {
    content: "";
    display: block;
    background: url(../images/menu/menu-bg-t_sp.png) no-repeat center top / contain;
    width: 100%;
    height: 50.72vw;
    top: -8vw;
    position: absolute;
}
.mv h2 {
    /* font-size:5.797vw; */
    /* letter-spacing: 0; */
    text-align: center;
    /* color: #eef0e7; */
    position: relative;
    top: -29vw;
    margin-bottom: 3vw;
}
.mv .photo {
    text-align: center;
    position: relative;
    top: -32vw;
    margin-bottom: -26vw;
    width: 89.37vw;
    margin-inline: auto;
}
.mv .txt {
    font-weight: 500;
    font-size:3.865vw;
    letter-spacing: 0.05em;
    line-height: 2;
    text-align: center;
    margin-bottom: 4vw;
}
.mv .txt02 {
    font-size:3.382vw;
    font-weight: 500;
    line-height: 2;
    letter-spacing: 0.05em;
    text-align: left;
    width: 96vw;
    padding-left: 7vw;
    margin-bottom: 10vw;
}
.mv .menu-list {
    width: 89.37vw;
    margin-inline: auto;
}
.mv .menu-list h3 {
    font-size:5.797vw;
    letter-spacing: 0;
    text-align: center;
    color: #3b8461;
    margin-bottom: 0.5vw;
}
.mv .menu-list .lead {
    font-weight: 500;
    font-size:3.382vw;
    letter-spacing: 0.05em;
    line-height: 2;
    text-align: center;
    margin-bottom: 6.5vw;
}
.mv .menu-list .list {
    display: grid;
    gap: 2.4vw;
    margin-bottom: 5vw;
}
 
/* sec共通
-------------------------------------*/
.sec {
    position: relative;
    padding-bottom: 4.8vw;
}
.sec::before {
    position: absolute;
    content: "";
    background: #EEF0E7;
    width: 100%;
    height: 19.32vw;
    bottom: 0;
    left: 0;
    pointer-events: none;
}
.sec .inBox {
    width: 89.37vw;
    display: grid;
    padding: 19.32vw 0 11vw;
    position: relative;
    margin-inline: auto;
}
.sec .num {
    font-size:3.865vw;
    line-height: 1;
    letter-spacing: 0;
    text-align: center;
    color: #1d1d1f;
    padding: 2.4vw 2.62vw;
    border: 0.2vw solid #1D1D1F;
    margin-bottom: 2.5vw;
    width: 23.19vw;
    order: 1;
}
.sec h2 {
    font-weight: 500;
    font-size:4.348vw;
    letter-spacing: 0.05em;
    line-height: 1.7777;
    display: flex;
    gap: 2.42vw;
    align-items: center;
    margin-bottom: 2.5vw;
    order: 2;
}
.sec h2 span {
    position: relative;
    top: -1vw;
}
.sec h2 span img {vertical-align: middle;width: 8.65vw;}
.sec h3 {
    font-weight: 500;
    font-size:3.865vw;
    letter-spacing: 0.05em;
    line-height: 1.875;
    color: #fff;
    margin-bottom: 5vw;
    order: 4;
}
.sec h3 span {
    background: #3A4F44;
    display: inline-block;
    padding: 1.21vw 3.38vw;
}
.sec h3 .span01 {
    margin-bottom: 1.93vw;
}
.sec .txt-box {
    display: contents;
}
.sec .txt {
    font-weight: 500;
    font-size:3.382vw;
    letter-spacing: 0.05em;
    line-height: 2;
    margin-bottom: 5.7vw;
    order: 5;
}
.sec .txt:nth-last-of-type(1) {
    margin-bottom: 0;
}
.sec .txt span {
    position: relative;
    display: block;
}
.sec .txt span::before {
    position: absolute;
    content: "";
    background: #1D1D1F;
    width: 9.66vw;
    height: 0.2vw;
    top: 50%;
    left: -11vw;
    transform: translateY(-50%);
}
.sec .photo01 {order: 3;margin-bottom: 5vw;}
.sec .photo02 {
    width: 94.20vw;
    margin-inline: auto;
    position: relative;
}

/* menu01
-------------------------------------*/
.sec.menu01 h3 .span02 {
    padding: 1.21vw 1.03vw 1.21vw 0.91vw;
}
.sec.menu01 .txt:nth-of-type(3) {margin-bottom: 0;margin-left: -2vw;}
.sec.menu01 .txt:nth-of-type(4) {
    margin-bottom: 5vw;
    position: relative;
    padding-left: 11.5vw;
}

/* menu02
-------------------------------------*/
.sec.menu02 h3 .span02 {
    padding: 1.21vw 1.03vw 1.21vw 0.91vw;
}
.sec.menu02 .txt:nth-of-type(3) {margin-left: -2vw;}
.sec.menu02 .txt:nth-of-type(3) span {
    margin-left: 13.5vw;
}

/* menu03
-------------------------------------*/
.sec.menu03 h2 span {
    width: 6.90vw;
}
.sec.menu03 h3 .span01 {
    padding: 1.21vw 0vw 1.21vw 3.91vw;
}
.sec.menu03 h3 .span02 {
    margin-bottom: 1.93vw;
}
.sec.menu03 h3 .span03 {
    padding: 1.21vw 1.38vw 1.21vw 0.91vw;
}
.sec.menu03 .txt:nth-of-type(2) {margin-left: -2vw;}
.sec.menu03 .txt:nth-of-type(2) span {
    margin-left: 13.5vw;
}


/* menu04
-------------------------------------*/
.sec.menu04 h3 .span01 {
    padding: 1.21vw 0vw 1.21vw 3.91vw;
}
.sec.menu04 h3 .span02 {
    padding: 1.21vw 0vw 1.21vw 3.91vw;
}
.sec.menu04 .txt:nth-of-type(3) {margin-left: -2vw;}
.sec.menu04 .txt:nth-of-type(3) span {
    margin-left: 13.5vw;
}


/* menu05
-------------------------------------*/
.sec.menu05 h2 span {
    top: -2vw;
}
.sec.menu05 h3 .span02 {
    padding: 1.21vw 0vw 1.21vw 3.91vw;
}
.sec.menu05 .txt:nth-of-type(3) {margin-left: -2vw;}
.sec.menu05 .txt:nth-of-type(3) span {
    margin-left: 13.5vw;
}
.sec.menu05 .txt:nth-of-type(3) .span01 {
    margin-left: 4vw;
    margin-bottom: -7vw;
}
.sec.menu05 .txt:nth-of-type(3) .span01::before {
    content: none;
}


/* menu06
-------------------------------------*/
.sec.menu06 h2 span {
    width: 7.67vw;
}
.sec.menu06 h3 .span01 {
    padding: 1.21vw 0vw 1.21vw 3.91vw;
}
.sec.menu06 h3 .span02 {
    padding: 1.21vw 3vw 1.21vw 3.91vw;
    margin-bottom: 1.93vw;
}
.sec.menu06 h3 .span03 {
    padding: 1.21vw 1vw 1.21vw 0.91vw;
}
.sec.menu06 .txt:nth-of-type(2) {margin-left: -2vw;}
.sec.menu06 .txt:nth-of-type(2) span {
    margin-left: 13.5vw;
}
/* menu07
-------------------------------------*/
.sec.menu07 h2 span {
    width: 6.39vw;
}
.sec.menu07 h3 .span02 {
    margin-bottom: 1.93vw;
}
.sec.menu07 h3 .span03 {
    padding: 1.21vw 0vw 1.21vw 3.91vw;
}
.sec.menu07 .txt:nth-of-type(3) {margin-left: -2vw;}
.sec.menu07 .txt:nth-of-type(3) span {
    margin-left: 13.5vw;
}

/* bottom-sec
-------------------------------------*/
.bottom-sec {
    background: #F6F6F6;
    margin-top: 24.15vw;
    margin-bottom: -10vw;
}
.bottom-sec .inner {
    width: 82.13vw;
    margin-inline: auto;
    position: relative;
    padding: 24.15vw 0 34vw;
}
.bottom-sec .inner::before {
    position: absolute;
    content: "";
    background: url(../images/menu/bottom-sec-deco_sp.png)no-repeat;
    background-size: contain;
    width: 97.83vw;
    height: 95.89vw;
    top: -10vw;
    left: -10vw;
}
.bottom-sec h2 {
    font-size:4.831vw;
    line-height: 1.6;
    font-weight: 500;
    letter-spacing: 0.05em;
    margin-bottom: 21.2vw;
    text-align: center;
    position: relative;
}
.bottom-sec .list {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 6.4vw;
    position: relative;
    text-align: center;
} 
.bottom-sec .list li img {
    margin-bottom: 3.2vw;
}
.bottom-sec .list li .txt {
    font-size:3.382vw;
    letter-spacing: 0.05em;
    line-height: 1.7142857;
    text-align: center;
}

}