/* COMMON */
.sec-ttl {
    color: var(--primary-gray);
    font-size: 7.2rem;
    font-family: var(--font-eg-itali);
    line-height: 1;
    text-align: center;
}
.sec-ttl span {
    display: block;
    font-size: 2rem;
    font-family: var(--font-jp-zenold);
}
@media screen and (max-width: 1000px) {
    .sec-ttl {
        font-size: 4rem;
    }
    .sec-ttl span {
        font-size: 1.6rem;
    }
}




/* FV */
.fv {
    margin-top: 8.2rem;
}
.fv-swiper .swiper-wrapper {
    align-items: stretch;
}
.fv-swiper .swiper-slide {
    height: auto;
}
.fv-slide {
    height: 100%;
    display: flex;
    align-items: center;
    background: linear-gradient(#FFFFFF, #F6F6F6);
}
/* body */
.fv-slide-body {
    width: 51.389%;
    padding: 0 3rem 0 12rem;
    display: flex;
    align-items: center;
}
.fv-slide-body-inner {
    transform: translateY(-2rem);
}
.fv-slide-label {
    color: #E6E6E6;
    font-size: 10rem;
    font-family: var(--font-eg-itali);
    text-align: end;
    line-height: 1;
}
.fv-slide-title {
    font-size: 2.9rem;
    font-family: var(--font-jp-zenold);
    font-weight: 500;
    margin-top: -4.6rem;
}
.fv-slide-desc {
    margin-top: 1.4rem;
}
.fv-slide-desc p {
    font-size: 1.6rem;
    line-height: 2;
    margin-top: 1rem;
}
.fv-slide-desc p:first-of-type {
    margin-top: 0;
}
.fv-slide-link {
    display: block;
    width: 21rem;
    color: #FFF;
    font-size: 1.4rem;
    font-weight: 600;
    text-align: center;
    background: var(--primary-black);
    border-radius: 5rem;
    padding: .7rem 0;
    margin-top: 3.2rem;
    position: relative;
    transition: background .3s ease-in-out;
}
.fv-slide-link:hover {
    background: #000;
}
.fv-slide-link span {
    display: block;
    width: 2.3rem;
    position: absolute;
    top: 50%;
    right: 1.4rem;
    transform: translateY(-50%);
}

/* img */
.fv-slide-img {
    width: 48.611%;
    aspect-ratio: 70/53;
}

/* swiper */
.fv-swiper .swiper-button-prev,
.fv-swiper .swiper-button-next {
    color: var(--primary-black);
    width: 5.5rem;
    height: 5.5rem;
    background: rgba(255, 255, 255, 0.8);
    border-radius: 50%;
    box-shadow: 0 0 1.2rem 0 rgba(0, 0, 0, 0.07);
    transition: color .3s ease-in-out,
                background .3s ease-in-out;
}
.fv-swiper .swiper-button-prev {
    left: 2.3rem;
}
.fv-swiper .swiper-button-next {
    right: 2.3rem;
}
.fv-swiper .swiper-button-prev::after,
.fv-swiper .swiper-button-next::after {
    font-size: 2.4rem;
    font-weight: bold;
}
.fv-swiper .swiper-button-prev::after {
    transform: translateX(-.1rem);
}
.fv-swiper .swiper-button-next::after {
    transform: translateX(.1rem);
}
.fv-swiper .swiper-button-prev:hover,
.fv-swiper .swiper-button-next:hover {
    color: #FFF;
    background: var(--primary-black);
}
@media screen and (max-width: 1000px) {
    .fv {
        margin-top: 5.3rem;
    }
    .fv-swiper .swiper-slide {
        aspect-ratio: 39 / 61;
    }
    .fv-slide {
        display: block;
        position: relative;
    }
    /* body */
    .fv-slide-body {
        width: calc(100% - 2rem);
        background: rgba(255, 255, 255, 0.8);
        padding: 0 2rem 2.5rem 2rem;
        position: absolute;
        bottom: 3.6rem;
        left: 0;
    }
    .fv-slide-body-inner {
        transform: translateY(0);
    }
    .fv-slide-label {
        color: #FFF;
        font-size: 6rem;
    }
    .fv-slide-title {
        font-size: 2.3rem;
        margin-top: -4.6rem;
    }
    .fv-slide-desc {
        margin-top: 1.4rem;
        display: -webkit-box;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    .fv-slide-desc p {
        font-size: 1.5rem;
        line-height: 1.6;
    }
    .fv-slide-link {
        display: none;
    }

    /* img */
    .fv-slide-img {
        width: 100%;
        height: 100%;
    }

    /* swiper */
    .fv-swiper .swiper-button-prev,
    .fv-swiper .swiper-button-next {
        width: 3rem;
        height: 3rem;
    }
    .fv-swiper .swiper-button-prev {
        left: 2rem;
    }
    .fv-swiper .swiper-button-next {
        right: 2rem;
    }
    .fv-swiper .swiper-button-prev::after,
    .fv-swiper .swiper-button-next::after {
        font-size: 1.4rem;
    }
}





/* CASE */
.case {
    padding: 8rem 0 8.5rem;
}
.case-inner {
    width: 90%;
    max-width: 120rem;
    margin: 0 auto;
}
/* search */
.case-search {
    margin-top: 4rem;
}
.case-search-toggle {
    display: block;
    width: 27rem;
    text-align: center;
    background: var(--primary-black);
    border-radius: 6rem;
    padding: 1.3rem 0;
    margin: 0 auto;
    position: relative;
    transition: background .3s ease-in-out;
}
.case-search-toggle:hover {
    background: #000;
}
.case-search-toggle-text {
    color: #FFF;
    font-size: 1.6rem;
    font-weight: 600;
}
.case-search-toggle svg {
    width: 1.7rem;
    position: absolute;
    top: 50%;
    right: 1.5rem;
    transform: translateY(-50%);
}
.case-search-toggle[aria-expanded="true"] svg {
    transform: translateY(-50%) scaleY(-1);
}
.case-search-cnt {
    width: 100%;
    background: #fff;
    border-radius: 1rem;
    box-shadow: 0 0 2.5rem rgba(0, 0, 0, 0.07);
    height: 0;
    margin-top: 0;
    overflow: hidden;
    visibility: hidden;
    pointer-events: none;
    transition: height .35s ease,
                margin-top .35s ease,
                visibility .3s ease;
}
.case-search-cnt.is-open {
    margin-top: 4rem;
    visibility: visible;
    pointer-events: auto;
}
.case-search-cnt[hidden] {
    display: none;
}
.case-search-cnt-inner {
    padding: 4.8rem 5rem;
}
.case-search-cnt-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 3.2rem;
    row-gap: 4rem;
}
.case-search-cnt-title {
    display: flex;
    align-items: center;
    gap: .6rem;
    color: var(--primary-black);
    font-size: 1.5rem;
    font-family: var(--font-jp-zenold);
    font-weight: 500;
    line-height: 1;
}
.case-search-cnt-title::before {
    content: "";
    width: 0;
    height: 0;
    border-top: .6rem solid transparent;
    border-bottom: .6rem solid transparent;
    border-left: .6rem solid var(--primary-black);
}
.case-search-cnt-list {
    margin-top: 1.6rem;
    display: flex;
    flex-wrap: wrap;
    gap: 1.2rem 1rem;
}
.case-search-cnt-choice {
    display: inline-flex;
    cursor: pointer;
}
.case-search-cnt-choice.is-hidden {
    display: none;
}
.case-search-cnt-checkbox {
    position: absolute;
    width: .1rem;
    height: .1rem;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}
.case-search-cnt-text {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 3.3rem;
    padding: .9rem .8rem;
    border: .1rem solid var(--tertiary-gray);
    border-radius: .4rem;
    background: #f7f7f7;
    color: var(--secondary-black);
    font-size: 1.5rem;
    line-height: 1;
    transition: background-color 0.3s ease,
                color 0.3s ease,
                border-color 0.3s ease;
}
.case-search-cnt-choice:hover .case-search-cnt-text {
    border-color: var(--secondary-gray);
}
.case-search-cnt-checkbox:checked + .case-search-cnt-text {
    background: var(--primary-black);
    border-color: var(--primary-black);
    color: #FFF;
}
.case-search-cnt-checkbox:focus-visible + .case-search-cnt-text {
    outline: .2rem solid var(--primary-black);
    outline-offset: .2rem;
}
.case-search-cnt-more {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    margin-top: 1.6rem;
    color: var(--secondary-black);
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
}
.case-search-cnt-more span {
    display: inline-block;
}
.case-search-cnt-more span svg {
    width: 1.8rem;
}
.case-search-cnt-bottom {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: end;
    gap: 4.2rem;
    margin-top: 4rem;
}
.case-search-cnt-keyword {
    width: 100%;
}
.case-search-cnt-input {
    width: 100%;
    height: 4.8rem;
    color: var(--primary-black);
    font-size: 1.5rem;
    border: .1rem solid var(--tertiary-gray);
    border-radius: .3rem;
    background: #F6F6F6;
    padding: 1.6rem .8rem;
    margin-top: 1.6rem;
}
.case-search-cnt-input::placeholder {
    color: var(--secondary-gray);
}
.case-search-cnt-submit {
    width: 24rem;
    height: 5.2rem;
    color: #333;
    font-size: 1.6rem;
    font-weight: 600;
    line-height: 1.6;
    background: #fff;
    border: .1rem solid #333;
    border-radius: 10rem;
    padding: 1.3rem 0;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 0.3s ease;
    position: relative;
}
.case-search-cnt-submit:hover {
    background: #F7F7F7;
}
.case-search-cnt-submit svg {
    width: 2.5rem;
    position: absolute;
    top: 50%;
    right: 1.5rem;
    transform: translateY(-50%);
}
.case-search-cnt-submit svg path {
    fill: var(--primary-black);
    transition: fill 0.3s ease;
}
/* archive */
.case-archive {
    margin-top: 8rem;
}
.case-archive-filter {
    border-bottom: 1px solid #EAEAEA;
    padding-bottom: 1.6rem;
    display: flex;
    flex-direction: column;
    gap: 1.6rem;
}
.case-archive-filter-top {
    display: flex;
    align-items: center;
    gap: 1.6rem;
}
.case-archive-filter-count {
    color: #555;
    font-size: 1.5rem;
    line-height: 1;
    display: flex;
    align-items: end;
    gap: .3rem;
}
.case-archive-filter-count span {
    color: #898989;
    font-size: 3.2rem;
    font-family: var(--font-eg-eb);
    line-height: .7;
}
.case-archive-filter-sort {
    display: flex;
    align-items: center;
    gap: 0 .5rem;
    cursor: pointer;
}
.case-archive-filter-sort-label {
    color: var(--primary-gray);
    font-size: 1.4rem;
    line-height: 1;
}
.case-archive-filter-sort-select {
    color: var(--primary-gray);
    font-size: 1.4rem;
    line-height: 1;
    border-radius: .3rem;
    border: 1px solid var(--tertiary-gray);
    padding: .9rem 3rem .9rem .8rem;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background: url('../images/sort-arrow-icon.svg') right 1rem center no-repeat;
    background-size: 1.2rem;
    cursor: pointer;
}
.case-archive-filter-clear {
    display: flex;
    align-items: center;
    gap: 0 .4rem;
}
.case-archive-filter-clear span {
    width: 1.5rem;
}
.case-archive-filter-clear p {
    color: var(--primary-gray);
    font-size: 1.4rem;
    line-height: 1;
    border-bottom: 1px solid var(--primary-gray);
}
.case-archive-filter-bottom {
    display: flex;
    flex-wrap: wrap;
    gap: 1.6rem;
}
.case-archive-filter-tag {
    width: fit-content;
    color: var(--secondary-black);
    font-size: 1.5rem;
    line-height: 1;
    background: #F6F6F6;
    border-radius: .3rem;
    border: 1px solid var(--tertiary-gray);
    padding: .9rem .8rem;
    display: flex;
    align-items: center;
    gap: .8rem;
    transition: border-color .3s ease-in-out;
}
.case-archive-filter-tag:hover {
    border-color: var(--secondary-gray);
}
.case-archive-filter-tag span {
    width: 1rem;
}
.case-archive-filter-tag span svg {
    width: 1rem;
}
/* cnt */
.case-archive-container {
    margin-top: 3.2rem;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 3.2rem 2.5rem;
}
.case-archive-cnt {
    background: #FFF;
    box-shadow: 0 0 1.2rem rgba(0, 0, 0, 0.07);
    border-radius: .8rem;
    overflow: hidden;
    position: relative;
}
.case-archive-cnt.is-show {
    animation: caseFadeIn 0.45s ease both;
}
.case-archive-cnt-cat {
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
    position: absolute;
    top: 1rem;
    left: 1rem;
    z-index: 1;
}
.case-archive-cnt-cat span {
    display: inline-block;
    color: var(--secondary-black);
    font-size: 1.3rem;
    line-height: 1;
    background: #FFF;
    border-radius: .5rem;
    padding: .6rem;
}
.case-archive-cnt-thumb {
    width: 100%;
    aspect-ratio: 350 / 233;
    position: relative;
}
.case-archive-cnt .case-archive-cnt-thumb img {
    transition: transform .3s ease-in-out;
}
.case-archive-cnt:hover .case-archive-cnt-thumb img {
    transform: scale(1.05);
}
.case-archive-cnt-body {
    width: 100%;
    background: #FFF;
    padding: 2.4rem;
}
.case-archive-cnt-body-meta {
    display: flex;
    align-items: center;
    gap: .8rem;
}
.case-archive-cnt-body-meta-item {
    color: var(--primary-gray);
    font-size: 1.4rem;
}
.case-archive-cnt-body-meta-item span {
    color: var(--primary-gray);
    font-size: 1.4rem;
    font-family: var(--font-eg-lato);
    line-height: 1;
}
.case-archive-cnt-body-meta-deco {
    width: .1rem;
    height: 1.4rem;
    background: var(--primary-gray);
}
.case-archive-cnt-body h3 {
    font-size: 1.7rem;
    font-family: var(--font-jp-zenold);
    font-weight: 600;
    line-height: 1.2;
    margin-top: 1.6rem;
}
.case-archive-cnt-body p {
    font-size: 1.4rem;
    letter-spacing: 0.03em;
    margin-top: 1.6rem;
}
.case-archive-cnt-body-date {
    color: var(--primary-gray);
    font-size: 1.5rem;
    letter-spacing: 0.03em;
    margin-top: 1.6rem;
}
.case-archive-cnt-body-tag {
    margin-top: 1.6rem;
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
}
.case-archive-cnt-body-tag span {
    color: var(--primary-gray);
    font-size: 1.5rem;
    line-height: 1;
}
.case-archive-load {
    width: 27rem;
    margin: 3.2rem auto 0;
}
.case-archive-load-btn {
    width: 100%;
    text-align: center;
    border-radius: 6rem;
    border: 1px solid var(--primary-black);
    padding: 1.3rem 0;
    position: relative;
    cursor: pointer;
    transition: background .3s ease-in-out;
}
.case-archive-load-btn:hover {
    background: var(--primary-black);
}
.case-archive-load-btn span {
    font-size: 1.6rem;
    font-weight: 600;
    transition: color .3s ease-in-out;
}
.case-archive-load-btn:hover span {
    color: #FFF;
}
.case-archive-load svg {
    width: 1.2rem;
    position: absolute;
    top: 50%;
    right: 2.5rem;
    transform: translateY(-50%);
}
.case-archive-load svg path {
    fill: var(--primary-black);
    transition: fill .3s ease-in-out;
}
.case-archive-load-btn:hover svg path {
    fill: #FFF;
}
@keyframes caseFadeIn {
    from {
        opacity: 0;
        transform: translateY(1.6rem);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
@media screen and (max-width: 1000px) {
    .case {
        padding: 6rem 0;
    }
    .case-inner {
        width: calc(100% - 4rem);
        margin: 0 auto;
    }
    /* search */
    .case-search {
        margin-top: 3rem;
    }
    .case-search-toggle {
        width: 19rem;
        padding: .9rem 0;
    }
    .case-search-toggle-text {
        font-size: 1.4rem;
    }
    .case-search-toggle svg {
        width: 1.1rem;
        right: 1.8rem;
    }
    .case-search-cnt {
        border-radius: .8rem;
        box-shadow: 0 0 2.5rem rgba(0, 0, 0, 0.07);
    }
    .case-search-cnt.is-open {
        margin-top: 2.4rem;
    }
    .case-search-cnt-inner {
        padding: 3rem 2rem;
    }
    .case-search-cnt-grid {
        grid-template-columns: repeat(1, 1fr);
        column-gap: 3rem;
        row-gap: 3rem;
    }
    .case-search-cnt-title {
        gap: .5rem;
        font-size: 1.6rem;
    }
    .case-search-cnt-list {
        gap: 1rem;
    }
    .case-search-cnt-text {
        height: 2.7rem;
        padding: .7rem .5rem;
        border-radius: .3rem;
        font-size: 1.3rem;
    }
    .case-search-cnt-more {
        font-size: 1.4rem;
    }
    .case-search-cnt-more span svg {
        width: 1.6rem;
    }
    .case-search-cnt-bottom {
        grid-template-columns: 1fr;
        align-items: normal;
        margin-top: 3rem;
    }
    .case-search-cnt-input {
        font-size: 1.3rem;
        margin-top: 1.6rem;
    }
    .case-search-cnt-submit {
        width: 19rem;
        height: 4rem;
        font-size: 1.4rem;
        padding: .9rem 0;
        margin: 0 auto;
    }
    .case-search-cnt-submit svg {
        width: 2.3rem;
    }
    /* archive */
    .case-archive {
        margin-top: 2.4rem;
    }
    .case-archive-filter {
        padding-bottom: 2rem;
        gap: 2rem;
    }
    .case-archive-filter-top {
        justify-content: space-between;
        flex-wrap: wrap;
        gap: 1rem;
    }
    .case-archive-filter-clear {
        display: flex;
        align-items: center;
        gap: 0 .4rem;
    }
    .case-archive-filter-bottom {
        gap: 1rem;
    }
    .case-archive-filter-tag {
        font-size: 1.3rem;
        padding: .7rem .5rem;
    }
    .case-archive-filter-tag span {
        width: .7rem;
    }
    .case-archive-filter-tag span svg {
        width: .7rem;
    }
    /* cnt */
    .case-archive-container {
        margin-top: 2.4rem;
        grid-template-columns: repeat(1, 1fr);
        gap: 2.4rem;
    }
    .case-archive-cnt {
        box-shadow: 0 0 1.2rem rgba(0, 0, 0, 0.07);
    }
    .case-archive-cnt-body {
        padding: 1.6rem 1.6rem 1.8rem;
    }
    .case-archive-cnt-body-meta-item {
        font-size: 1.3rem;
    }
    .case-archive-cnt-body-meta-item span {
        font-size: 1.3rem;
    }
    .case-archive-cnt-body-meta-deco {
        height: 1.3rem;
    }
    .case-archive-cnt-body h3 {
        margin-top: .8rem;
    }
    .case-archive-cnt-body p {
        font-size: 1.2rem;
        margin-top: .8rem;
    }
    .case-archive-cnt-body-date {
        font-size: 1.3rem;
        margin-top: .8rem;
    }
    .case-archive-cnt-body-tag {
        margin-top: .8rem;
        gap: .8rem;
    }
    .case-archive-cnt-body-tag span {
        font-size: 1.3rem;
    }
    .case-archive-load {
        width: 19rem;
        margin: 2.4rem auto 0;
    }
    .case-archive-load-btn {
        padding: .9rem 0;
    }
    .case-archive-load-btn span {
        font-size: 1.4rem;
    }
    .case-archive-load svg {
        width: 1.2rem;
        right: 1.5rem;
    }
}





/* SERVICE */
.service {
    background: #F7F7F7;
    padding: 8rem 0;
}
.service-inner {
    width: 90%;
    max-width: 110rem;
    margin: 0 auto;
}
.service-lead {
    font-size: 1.6rem;
    line-height: 2;
    text-align: center;
    margin-top: 4rem;
}
.service-point-wrap {
    display: flex;
    flex-direction: column;
    gap: 4.8rem;
    margin-top: 4rem;
}
.service-point {
    display: flex;
    align-items: center;
    gap: 0 3.2rem;
}
.service-point:nth-of-type(even) {
    flex-direction: row-reverse;
}
.service-point-img {
    width: 45rem;
    aspect-ratio: 9 / 6;
    box-shadow: 0 0 1.8rem rgba(0, 0, 0, 0.07);
}
.service-point-body {
    width: calc(100% - 48.2rem);
}
.service-point-index {
    color: var(--secondary-gray);
    font-size: 2.4rem;
    font-family: var(--font-eg-eb);
    line-height: 1;
}
.service-point-index span {
    display: inline-block;
    color: var(--secondary-gray);
    font-size: 3.4rem;
    font-family: var(--font-eg-eb);
    line-height: 1;
    margin-left: .7rem;
}
.service-point-body h3 {
    font-size: 2.4rem;
    font-weight: 500;
    font-family: var(--font-jp-zenold);
    line-height: 1.4;
    margin-top: 1.6rem;
}
.service-point-body p {
    font-size: 1.6rem;
    line-height: 2;
    margin-top: 1.6rem;
}
@media screen and (max-width: 1000px) {
    .service {
        padding: 6rem 0;
    }
    .service-inner {
        width: calc(100% - 4rem);
    }
    .service-lead {
        font-size: 1.5rem;
        line-height: 1.8;
        text-align: left;
        margin-top: 2.4rem;
    }
    .service-point-wrap {
        gap: 4.8rem;
        margin-top: 2.4rem;
    }
    .service-point {
        flex-direction: column;
        gap: 2.4rem;
    }
    .service-point:nth-of-type(even) {
        flex-direction: column;
    }
    .service-point-img {
        width: 100%;
        aspect-ratio: 9 / 6;
        box-shadow: 0 0 1.4rem rgba(0, 0, 0, 0.07);
    }
    .service-point-body {
        width: 100%;
    }
    .service-point-index {
        font-size: 2.1rem;
    }
    .service-point-index span {
        font-size: 3rem;
        margin-left: .3rem;
    }
    .service-point-body h3 {
        font-size: 2.2rem;
    }
    .service-point-body p {
        font-size: 1.5rem;
        line-height: 1.8;
    }
}





/* MENU */
.menu {
    background: #FFF;
    padding: 8rem 0;
}
.menu-inner {
    width: 90%;
    max-width: 110rem;
    margin: 0 auto;
}
.menu-lead {
    font-size: 1.6rem;
    line-height: 2;
    text-align: center;
    margin-top: 4rem;
}
.menu-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 4rem 3rem;
    margin-top: 4rem;
}
.menu-cnt {
    background: #FFF;
    border-radius: 1rem;
    box-shadow: 0 0 1.2rem rgba(0, 0, 0, 0.03);
    border: 1px solid var(--tertiary-gray);
    padding: 3.2rem;
}
.menu-cnt.seasonal {
    padding: 4.8rem;
    grid-column: 1 / -1;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}
.menu-cnt.seasonal.seasonal--reverse {
    flex-direction: row-reverse;
}
.menu-cnt-img {
    width: 100%;
    aspect-ratio: 47 / 20;
    border-radius: 1rem;
    overflow: hidden;
    margin-top: 1.6rem;
}
.menu-cnt.seasonal .menu-cnt-img {
    width: 45rem;
    aspect-ratio: auto;
    border-radius: 0;
    margin-top: 0;
}
.menu-cnt-body {
    width: 100%;
}
.menu-cnt.seasonal .menu-cnt-body {
    width: calc(100% - 48.8rem);
}
.menu-cnt-index {
    display: inline-block;
    color: #FFF;
    font-size: 1.8rem;
    font-family: var(--font-eg-lato);
    line-height: 1;
    letter-spacing: 0.07em;
    text-align: center;
    background: var(--secondary-black);
    border-radius: .3rem;
    padding: .9rem .8rem;
    margin-bottom: 1.4rem;
}
.menu-cnt.seasonal .menu-cnt-index {
    background: #389D38;
    margin-bottom: 0;
}
.menu-cnt-edit {
    margin-top: 1.4rem;
}
.menu-cnt-edit h2, .menu-cnt-edit h3 {
    font-size: 2.4rem;
    font-family: var(--font-jp-zenold);
    font-weight: 500;
    line-height: 1;
}
.menu-cnt-edit p {
    font-size: 1.6rem;
    margin-top: 1.6rem;
}
.menu-cnt-edit-list {
    width: 100%;
    border-radius: .8rem;
    background: #F7F7F7;
    padding: 3rem;
    margin-top: 3.2rem;
}
.menu-cnt-edit ul li {
    color: var(--secondary-black);
    font-size: 1.6rem;
    padding-left: 1.6rem;
    position: relative;
}
.menu-cnt-edit ul li::before {
    content: '';
    width: .4rem;
    height: .4rem;
    border-radius: 50%;
    background: var(--secondary-black);
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
}
.menu-cnt-edit-lead {
    font-size: 1.6rem;
    margin-top: 1.6rem;
}
.menu-cnt-edit-price {
    color: var(--primary-gray);
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.4;
    margin-top: 1.4rem;
}
.menu-cnt-edit-price strong {
    color: #DE5464;
    font-size: 4rem;
    font-family: var(--font-eg-eb);
    line-height: 1.4;
}
.menu-cnt-edit-price small {
    display: block;
    color: var(--primary-gray);
    font-size: 1.4rem;
}
.menu-cnt-edit-pdf {
    display: block;
    width: 20rem;
    background: #FFF;
    border-radius: 6rem;
    border: 1px solid var(--primary-black);
    padding: .9rem 1.5rem .9rem 3.2rem;
    margin-top: 2rem;
    position: relative;
    transition: background .3s ease-in-out;
}
.menu-cnt-edit-pdf:hover {
    background: transparent;
}
.menu-cnt-edit-pdf svg {
    width: 1.7rem;
    position: absolute;
    top: 50%;
    left: 1.5rem;
    transform: translateY(-50%);
}
.menu-cnt-edit-pdf svg path {
    stroke: var(--primary-black);
    transition: stroke .3s ease-in-out;
}
.menu-cnt-edit-pdf span {
    display: block;
    font-size: 1.6rem;
    font-weight: 600;
    text-align: center;
    transition: color .3s ease-in-out;
}
.menu-cnt-head h3 {
    font-size: 2.4rem;
    font-family: var(--font-jp-zenold);
    font-weight: 500;
    line-height: 1;
}
.menu-cnt-head p {
    font-size: 1.6rem;
    margin-top: 1.6rem;
}
.menu-cnt-plan {
    margin-top: 2.4rem;
}
.menu-cnt-plan-block {
    border-bottom: 1px solid var(--tertiary-gray);
    padding-bottom: 1.6rem;
    margin-top: 1.6rem;
}
.menu-cnt-plan-block:first-of-type {
    margin-top: 0;
}
.menu-cnt-plan-block h4 {
    font-size: 1.8rem;
    font-family: var(--font-jp-zenold);
    font-weight: 500;
    line-height: 1;
    display: flex;
    align-items: center;
    gap: 0 .5rem;
}
.menu-cnt-plan-block h4 svg {
    width: .6rem;
}
.menu-cnt-plan-price {
    color: var(--primary-gray);
    font-size: 1.6rem;
    font-weight: 500;
    font-family: var(--font-jp-zenold);
    line-height: 1.4;
    display: flex;
    align-items: end;
    margin-top: .7rem;
}
.menu-cnt-plan-price strong {
    color: #DE5464;
    font-size: 2.4rem;
    font-family: var(--font-eg-eb);
    line-height: 1;
}
.menu-cnt-plan-block p {
    font-size: 1.4rem;
    margin-top: .7rem;
}
.menu-cnt-plan-add {
    margin-top: 2.4rem;
}
.menu-cnt-plan-add ul li {
    font-size: 1.4rem;
}
.menu-cnt-plan-add a {
    width: fit-content;
    font-size: 1.4rem;
    display: flex;
    align-items: center;
    gap: 0 .8rem;
    border-bottom: 1px solid var(--primary-black);
    margin-top: 1.6rem;
    transition: opacity .3s ease-in-out,
                border-bottom .3s ease-in-out;
}
.menu-cnt-plan-add a:hover {
    opacity: .5;
    border-bottom: 1px solid transparent;
}
.menu-cnt-plan-add a svg {
    width: 2.3rem;
}
.menu-cnt-exp {
    font-size: 1.6rem;
    margin-top: 1.6rem;
}
.menu-cnt-add-pdf {
    width: fit-content;
    font-size: 1.6rem;
    border-bottom: 1px solid var(--primary-black);
    padding-bottom: .3rem;
    display: flex;
    align-items: center;
    gap: 0 .8rem;
    margin-top: 2.4rem;
    transition: opacity .3s ease-in-out,
                border-bottom .3s ease-in-out;
}
.menu-cnt-add-pdf:hover {
    opacity: .5;
    border-bottom: 1px solid transparent;
}
.menu-cnt-add-pdf svg {
    width: 1.3rem;
}
.menu-cnt-exp ul li {
    font-size: 1.6rem;
}
.menu-cnt-exp small {
    display: block;
    font-size: 1.4rem;
    margin-top: 1.6rem;
}

/* item */
.menu-item {
    background: #F7F7F7;
    border-radius: 1rem;
    padding: 4.8rem 3.2rem;
    margin-top: 4rem;
}
.menu-item h3 {
    font-size: 2.4rem;
    font-family: var(--font-jp-zenold);
    font-weight: 500;
    line-height: 1;
}
.menu-item p {
    font-size: 1.6rem;
    margin-top: 2.4rem;
}
.menu-item p strong {
    font-weight: 700;
}
.menu-item ul {
    margin-top: 1.6rem;
}
.menu-item ul li {
    font-size: 1.4rem;
}

@media screen and (max-width: 1000px) {
    .menu {
        padding: 6rem 0;
    }
    .menu-inner {
        width: calc(100% - 4rem);
    }
    .menu-lead {
        font-size: 1.5rem;
        line-height: 1.8;
        text-align: left;
        margin-top: 2.4rem;
    }
    .menu-grid {
        grid-template-columns: repeat(1, 1fr);
        gap: 2.4rem;
        margin-top: 2.4rem;
    }
    .menu-cnt {
        padding: 2.5rem 1.5rem;
    }
    .menu-cnt.seasonal {
        padding: 2.5rem 1.5rem;
        grid-column: 1 / -1;
        display: block;
    }
    .menu-cnt-img {
        width: 100%;
        aspect-ratio: 47 / 20;
        margin-top: .8rem;
    }
    .menu-cnt.seasonal .menu-cnt-img {
        width: 100%;
        height: auto;
        aspect-ratio: auto;
    }
    .menu-cnt-body {
        width: 100%;
    }
    .menu-cnt.seasonal .menu-cnt-body {
        width: 100%;
        margin-top: 2rem;
    }
    .menu-cnt-index {
        font-size: 1.4rem;
        padding: .9rem .8rem .7rem;
        margin-bottom: 1.2rem;
    }
    .menu-cnt-edit {
        margin-top: 1.2rem;
    }
    .menu-cnt-edit h2, .menu-cnt-edit h3 {
        font-size: 2.2rem;
        line-height: 1.3;
    }
    .menu-cnt-edit p {
        font-size: 1.4rem;
        margin-top: .8rem;
    }
    .menu-cnt-edit-lead {
        font-size: 1.4rem;
        margin-top: .8rem;
    }
    .menu-cnt-edit-price {
        font-size: 1.5rem;
        margin-top: 1.2rem;
    }
    .menu-cnt-edit-price strong {
        font-size: 3.7rem;
        line-height: 1;
    }
    .menu-cnt-edit-price small {
        font-size: 1.2rem;
    }
    .menu-cnt-edit-list {
        padding: 2rem 1rem;
        margin-top: 2rem;
    }
    .menu-cnt-edit ul li {
        font-size: 1.4rem;
        padding-left: 1.4rem;
    }
    .menu-cnt-edit ul li::before {
        left: .3rem;
    }
    .menu-cnt-edit-pdf {
        margin: 2rem auto 0;
    }
    .menu-cnt-edit-pdf svg {
        width: 1.3rem;
    }
    .menu-cnt-edit-pdf span {
        font-size: 1.4rem;
    }
    .menu-cnt-head h3 {
        font-size: 2.2rem;
        line-height: 1.3;
    }
    .menu-cnt-head p {
        font-size: 1.4rem;
        margin-top: .8rem;
    }
    .menu-cnt-plan {
        margin-top: 2rem;
    }
    .menu-cnt-plan-block {
        margin-top: 2rem;
    }
    .menu-cnt-plan-block h4 {
        font-size: 1.6rem;
    }
    .menu-cnt-plan-price {
        font-size: 1.5rem;
        line-height: 1;
    }
    .menu-cnt-plan-price strong {
        font-size: 2.2rem;
    }
    .menu-cnt-plan-block p {
        font-size: 1.2rem;
    }
    .menu-cnt-plan-add {
        margin-top: 2rem;
    }
    .menu-cnt-plan-add a {
        margin-top: 1rem;
    }
    .menu-cnt-exp {
        font-size: 1.4rem;
    }
    .menu-cnt-add-pdf {
        font-size: 1.4rem;
        margin: 2rem auto 0;
    }
    .menu-cnt-exp ul li {
        font-size: 1.4rem;
    }

    /* item */
    .menu-item {
        padding: 2rem;
        margin-top: 2.4rem;
    }
    .menu-item h3 {
        font-size: 2.2rem;
    }
    .menu-item p {
        font-size: 1.4rem;
        margin-top: 1rem;
    }
}





/* FLOW */
.flow {
    background: #F7F7F7;
    padding: 8rem 0;
}
.flow-inner {
    width: 90%;
    max-width: 84rem;
    margin: 0 auto;
}
.sec-ttl-flow {
    color: var(--primary-black);
}
.flow-container {
    margin-top: 4rem;
    display: flex;
    flex-direction: column;
    gap: 3.2rem 0;
}
.flow-cnt {
    width: 100%;
    background: #FFF;
    padding: 2.4rem;
    display: flex;
    align-items: center;
    gap: 4rem;
}
.flow-index {
    width: 8.7rem;
    height: 8.7rem;
    color: #FFF;
    font-size: 2.4rem;
    font-family: var(--font-eg-eb);
    line-height: 1;
    text-align: center;
    background: var(--primary-black);
    border-radius: .4rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.flow-index strong {
    color: #FFF;
    font-size: 3.4rem;
    font-family: var(--font-eg-eb);
    line-height: 1;
    text-align: center;
}
.flow-body {
    width: calc(100% - 12.7rem);
}
.flow-body h3 {
    font-size: 2.4rem;
    font-family: var(--font-jp-zenold);
    font-weight: 500;
    line-height: 1;
}
.flow-body p {
    font-size: 1.6rem;
    margin-top: .8rem;
}

@media screen and (max-width: 1000px) {
    .flow {
        padding: 6rem 0;
    }
    .flow-inner {
        width: calc(100% - 4rem);
    }
    .flow-container {
        margin-top: 2.4rem;
        gap: 1.6rem 0;
    }
    .flow-cnt {
        padding: 1.5rem 1.4rem;
        align-items: baseline;
        flex-direction: column;
        gap: .8rem;
        position: relative;
    }
    .flow-index {
        width: 8.7rem;
        height: auto;
        font-size: 1.8rem;
        padding: .2rem 0 .5rem;
        flex-direction: row;
        justify-content: center;
        align-items: end;
        gap: .3rem;
        position: absolute;
        top: 1.5rem;
        left: 1.4rem;
        z-index: 1;
    }
    .flow-index strong {
        font-size: 2.4rem;
        transform: translateY(.1rem);
    }
    .flow-body {
        width: 100%;
    }
    .flow-body h3 {
        font-size: 2.2rem;
        line-height: 1.3;
        padding-left: 10rem;
    }
    .flow-body p {
        font-size: 1.4rem;
        margin-top: .8rem;
    }
}





/* INFO */
.info {
    background: url('../images/info-bg.webp') center center no-repeat;
    background-size: cover;
    padding: 8rem 0;
}
.info-inner {
    width: 90%;
    max-width: 110rem;
    margin: 0 auto;
}
.sec-ttl-info, .sec-ttl-info span {
    color: #FFF;
    text-shadow: 0 .4rem .4rem rgba(0, 0, 0, 0.25),
                 0 0 2.5rem rgba(0, 0, 0, 0.07);
}
.info-container {
    margin-top: 4rem;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2.5rem;
}
.info-cnt {
    background: #FFF;
    border-radius: 1rem;
    padding: 4rem 2.4rem;
}
.info-cnt h3 {
    font-size: 2.4rem;
    font-family: var(--font-jp-zenold);
    font-weight: 500;
    line-height: 1;
    text-align: center;
    padding-bottom: 2.4rem;
    position: relative;
}
.info-cnt h3::before {
    content: "";
    width: 4rem;
    height: 1px;
    background: #389D38;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
}
.info-body {
    margin-top: 2.4rem;
}
.info-body-block {
    margin-top: 2.4rem;
}
.info-body-block:first-of-type {
    margin-top: 0;
}
.info-body-block ul li {
    font-size: 1.6rem;
}
.info-body-block h4 {
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1;
    margin-bottom: .8rem;
}
.info-body-block strong {
    font-size: 1.6rem;
    font-weight: 700;
}
.info-body-block p {
    font-size: 1.6rem;
}
.info-body-add-list {
    font-size: 1.4rem;
}

@media screen and (max-width: 1000px) {
    .info {
        padding: 6rem 0;
    }
    .info-inner {
        width: calc(100% - 4rem);
    }
    .info-container {
        grid-template-columns: repeat(1, 1fr);
        gap: 1.6rem;
    }
    .info-cnt {
        border-radius: .8rem;
        padding: 1.6rem 2.5rem;
    }
    .info-cnt h3 {
        font-size: 2.2rem;
        line-height: 1.3;
        padding-bottom: 1rem;
    }
    .info-body {
        margin-top: .8rem;
        display: flex;
        flex-wrap: wrap;
        gap: .8rem;
    }
    .info-body-block {
        width: 100%;
        margin-top: 0;
    }
    .info-cnt:nth-of-type(3) .info-body-block {
        width: calc(50% - .4rem);
    }
    .info-body-block ul li {
        font-size: 1.4rem;
    }
    .info-body-block p {
        font-size: 1.4rem;
    }
    .info-body-add-list {
        font-size: 1.2rem;
    }
}





/* CTA */
.contact {
    background: #F7F7F7;
    padding: 6.4rem 2rem;
}
.sec-ttl-contact {
    color: var(--primary-black);
}
.contact-lead {
    font-size: 1.6rem;
    text-align: center;
    margin-top: 4rem;
}
.contact-btn {
    width: fit-content;
    max-width: 100%;
    margin: 4rem auto 0;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0 3.2rem;
}
.contact-btn a {
    width: 27rem;
    font-size: 1.6rem;
    font-weight: 600;
    padding: 1.3rem 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0 1.6rem;
    position: relative;
    transition: background .3s ease-in-out;
}
.contact-btn a:nth-of-type(1) {
    order: 2;
}
.contact-btn a:nth-of-type(2) {
    order: 3;
}
.contact-btn a:nth-of-type(3) {
    order: 1;
}
.contact-btn01 {
    background: #FFF;
    border: 1px solid #333333;
    border-radius: 5rem;
}
.contact-btn01:hover {
    background: #F7F7F7;
}
.contact-btn01.tel {
    font-size: 2.1rem;
    font-family: var(--font-eg-lato);
    font-weight: 700;
    line-height: 1;
}
.contact-btn01 span {
    height: 2rem;
}
.contact-btn01 span img {
    width: auto;
    height: 100%;
}
.contact-btn02 {
    color: #FFF;
    background: var(--primary-black);
    border: 1px solid #FFF;
    border-radius: 5rem;
}
.contact-btn02:hover {
    background: #000;
}
.contact-btn02 span {
    width: 2.3rem;
    position: absolute;
    top: 50%;
    right: 1.5rem;
    transform: translateY(-50%);
}
@media screen and (max-width: 1000px) {
    .contact-lead {
        font-size: 1.4rem;
        text-align: left;
    }
    .contact-btn {
        gap: 1.9rem 0;
    }
    .contact-btn a {
        font-size: 1.4rem;
    }
    .contact-btn01.tel {
        font-size: 1.9rem;
    }
}

/* instagram */
.instagram-section {
    background-color: var( --primary-black);
    padding: 8rem 0 4rem;
}
.instagram-inner {
    max-width: 110rem;
    margin: 0 auto;
}
.instagram-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 4rem;
}
.insta-main-title {
    color: var(--white);
    font-family: var(--font-eg-itali);
    font-size: 10.2rem;
    line-height: 1;
}
.insta-sub-title {
    color: var(--white);
    font-family: var(--font-jp-zenold);
    font-size: 2rem;
    line-height: 1;
    margin: 2rem 0 0;
}
.insta-lead-text {
    color: var(--white);
    font-size: 1.6rem;
    line-height: 1.6;
    margin: 0 0 1.6rem 0;
}
.insta-follow-btn,
.insta-follow-btn * {
    color: var( --primary-black);
}
.insta-follow-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 1.6rem;
    width: 52.8rem;
    background-color: var(--white);
    font-size: 1.6rem;
    font-weight: 600;
    padding: 1.3rem 0;
    border-radius: 5rem;
    transition: background-color 0.3s ease-in-out, opacity 0.3s ease-in-out;
}
.insta-follow-btn:hover {
    opacity: 0.8;
}
.insta-follow-btn span {
    display: block;
    width: 2.4rem;
}
#sbi_load {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 3.2rem;
    margin-top: 1.6rem;
}
#sb_instagram  .sbi_load_btn {
    width: 27rem;
    background: none !important;
    border-radius: 5rem !important;
    border: .1rem solid #FFF !important;
    box-shadow: none !important;
    padding: 1.3rem 0 !important;
    margin: 0 !important;
    display: flex !;
    align-items: center;
    justify-content: center;
    transition: opacity .3s ease-in-out !important;
}
#sb_instagram  .sbi_load_btn:hover {
    opacity: .8;
    box-shadow: none !important;
}
#sb_instagram  .sbi_load_btn span {
    color: #FFF !important;
    font-size: 1.6rem;
    font-weight: 600;
}
#sb_instagram .sbi_follow_btn a {
    width: 27rem;
    background: #FFF !important;
    border-radius: 5rem;
    box-shadow: none !important;
    padding: 1.3rem 0;
    margin: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 1.2rem;
    transition: opacity .3s ease-in-out;
}
#sb_instagram .sbi_follow_btn a:hover {
    opacity: .8;
    box-shadow: none !important;
}
#sb_instagram .sbi_follow_btn a svg {
    width: 2.2rem;
    height: auto !important;
    margin: 0;
}
#sb_instagram .sbi_follow_btn a span {
    color: var( --primary-black);
    font-size: 1.6rem;
    font-weight: 600;
    margin: 0;
}

@media screen and (max-width: 1000px) {
    .instagram-section {
        padding: 6rem 0;
    }
    .instagram-inner {
        width: calc(100% - 4rem);
    }
    .instagram-header {
        flex-direction: column;
        align-items: center;
    }
    .insta-main-title {
        font-size: 4rem;
        text-align: center;
    }
    .insta-sub-title {
        font-size: 1.6rem;
        text-align: center;
        margin: 1rem 0 0;
    }
    .insta-lead-wrap {
        width: 100%;
        text-align: left;
        margin-top: 2.4rem;
    }
    .insta-lead-text {
        font-size: 1.4rem !important;
        margin: 0 0 3.2rem 0;
    }
    .insta-follow-btn {
        display: flex;
        width: 27rem;
        font-size: 1.4rem;
        padding: 1.3rem 0;
        margin: 0 auto;
    }
    .insta-follow-btn span {
        width: 2rem;
    }
    #sbi_load {
        flex-direction: column;
        gap: 1.6rem;
    }
    #sb_instagram  .sbi_load_btn {
        width: 27rem;
        background: none !important;
    }
    #sb_instagram  .sbi_load_btn span {
        font-size: 1.4rem;
    }
    #sb_instagram .sbi_follow_btn a {
        gap: 1.2rem;
    }
    #sb_instagram .sbi_follow_btn a svg {
        width: 2rem;
    }
    #sb_instagram .sbi_follow_btn a span {
        font-size: 1.4rem;
    }
}