@charset "UTF-8";
/*
Theme Name: MiaPilates
Version: 1.0
*/

html {
    font-size: 62.5%;
    overflow-x: hidden;
}

body {
    font-style: normal;
    background: #F2EFEC;
    line-height: 1.5;
    display: flex;
    flex-direction: column;
    min-height: 100vw;
    overflow-x: hidden;
}

img {
    max-width: 100%;
    height: auto;
}

.br__pc {
    display: none;
}

@media screen and (min-width: 769px) {
    .br__sp {
        display: none;
    }
}

/* =====================
header
===================== */
.header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 100;
}

.header__inner {
    position: relative;
    height: 100px;
    padding: 0 40px;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #B0D0C9;
}

.header__logo img {
    width: 60px;
    height: auto;
}

.hamburger {
    position: absolute;
    right: 40px;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 12px;
}

.hamburger span {
    display: block;
    width: 82px;
    height: 1px;
    background: #fff;
}

.hamburger__middle {
    width: 52px !important;
}


@media (max-width:767px) {

    /*====================
Header
====================*/

    .header {
        height: 56px;
    }

    .header__inner {
        width: 100%;
        height: 56px;
        padding: 13px 16px 12px;
    }

    .header__logo img {
        width: 32px;
        height: 31px;
        display: block;
        aspect-ratio: 32/31;
    }
}


/* =====================
humberge
===================== */
.drawer {
    position: fixed;
    inset: 0;
    opacity: 0;
    visibility: hidden;
    transition: .5s;
    z-index: 999;
    background-image: url(./images/noisy-gradients.webp);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

@media (max-width: 767px) {
    .drawer {
        overflow: hidden;
    }
}

@media (min-width: 768px) {
    .drawer {
        overflow-y: auto;
        scrollbar-width: none;
    }

    .drawer::-webkit-scrollbar {
        display: none;
    }
}

.drawer.is-active {
    opacity: 1;
    visibility: visible;
}

.drawer__inner {
    width: min(80%, 1120px);
    margin: 0 auto;
    padding-top: 100px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
}

@media (max-width:767px) {
    .drawer__inner {
        grid-template-columns: 1fr;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        height: calc(100vh - 60px);
        margin-top: 60px;
        padding-top: 20px;
        padding-bottom: 80px;
        gap: 0;
        scrollbar-width: none;
    }

    .drawer__inner::-webkit-scrollbar {
        display: none;
    }
}

.drawer__link {
    display: block;
    padding: 12px 16px;
    margin-bottom: 17px;
    border-bottom: 1px solid #60848B;
    text-decoration: none;
    transition: .3s;
}

@media (max-width:767px) {
    .drawer__link {
        margin-bottom: 0;
        padding: 16px 0;
        border-bottom: 1px solid #60848B;
    }
}

.drawer__link:hover {
    background: rgba(96, 132, 139, .12);
}

.drawer__link span {
    display: block;
    margin-bottom: 0px;
    font-family: "Marcellus", serif;
    font-size: 1.5rem;
    color: #60848B;
    letter-spacing: 0.75px;
}

@media (max-width:767px) {
    .drawer__link span {
        font-size: 1.2rem;
        margin-bottom: 4px;
        letter-spacing: 0.6px;
    }
}

.drawer__link p {
    font-family: "Noto Serif JP", serif;
    font-size: 2.5rem;
    color: #60848B;
}

@media (max-width:767px) {
    .drawer__link p {
        font-size: 2.2rem;
        letter-spacing: 1.2px;
    }
}

.drawer__btn {
    grid-column: 1 / -1;
    width: 520px;
    height: 80px;
    margin: 0 auto;
    border-radius: 999px;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #60848B;
    color: #fff;
    font-size: 1.8rem;
    transition: .3s;
}

@media (max-width:767px) {
    .drawer__btn {
        grid-column: 1;
        width: 100%;
        border-radius: 999px;
        height: 64px;
        font-size: 1.6rem;
        margin-top: 40px;
    }
}

.drawer__btn:hover {
    background: #4f7177;
}

.drawer__logo {
    position: absolute;
    top: 16px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1000;
}

@media (max-width:767px) {
    .drawer__logo {
        top: 13px;
    }
}

.drawer__logo img {
    width: 67px;
    height: 65px;
}

@media (max-width:767px) {
    .drawer__logo img {
        width: 32px;
        height: 31px;
    }
}

.drawer__close {
    position: absolute;
    top: 32px;
    right: 40px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    z-index: 1000;
}

@media (max-width:767px) {
    .drawer__close {
        top: 17px;
        right: 18px;
    }
}

@media (max-width:767px) {
    .hamburger {
        width: 44px;
        height: 44px;
        padding: 0;
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 6px;
        border: none;
        background: transparent;
        cursor: pointer;
        right: 16px;
    }

    .hamburger span {
        display: block;
        width: 44px;
        height: 1px;
        background: #fff;
    }

    .hamburger__middle {
        width: 28px !important;
    }
}

/* =====================
fv
===================== */
.fv {
    position: relative;
    height: 924px;
    overflow: hidden;
}

@media (max-width:767px) {
    .fv {
        height: 788px;
    }
}

.fv .swiper,
.fv .swiper-wrapper,
.fv .swiper-slide {
    height: 100%;
}

.fv .swiper-slide picture {
    width: 100%;
    height: 100%;
    display: block;
}

.fv .swiper-slide picture img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.fv .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.fv__copy {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 10;
    transform: translate(-50%, -50%);
    text-align: center;
    width: 100%;
}

.fv__copy h1 {
    color: #fff;
    font-family: "Marcellus", serif;
    font-size: 5.4rem;
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: 2.7px;
}

@media (max-width:767px) {
    .fv__copy h1 {
        font-size: 3rem;
        font-weight: 400;
        line-height: 1.2;
        letter-spacing: 1.6px;
    }
}

/* =====================
about
===================== */
.about {
    padding: 180px 0;
    color: #60848B;
}

@media (max-width:767px) {
    .about {
        padding: 64px 0;
    }
}

.about__inner {
    width: 80%;
    margin: 0 auto;
}

@media (max-width:767px) {
    .about__inner {
        width: 90%;
    }
}

.about__sub {
    margin-bottom: 2px;
    font-family: "Marcellus", serif;
    font-size: 2rem;
    letter-spacing: 1px;
}

@media (max-width:767px) {
    .about__sub {
        margin-bottom: 4px;
        font-size: 1.2rem;
        letter-spacing: 0.6px;
    }
}

.about__title {
    margin-bottom: 52px;
    font-family: "Noto Serif JP", serif;
    font-size: 4rem;
    font-weight: 400;
}

@media (max-width:767px) {
    .about__title {
        margin-bottom: 32px;
        font-size: 3.2rem;
        letter-spacing: 1.6px;
    }
}

.about__contents {
    display: flex;
    justify-content: space-between;
    gap: 96px;
    width: 100%;
    margin: 0 auto;
}

.about__item {
    width: 100%;
    max-width: 512px;
    display: flex;
    flex-direction: column;
}

.about__image img {
    width: 100%;
    height: auto;
    display: block;
}

.about__catch {
    margin-bottom: 40px;
    font-family: "Noto Serif JP";
    font-size: 3.2rem;
    font-style: normal;
    font-weight: 500;
    line-height: normal;
}

@media (max-width:767px) {
    .about__catch {
        margin-bottom: 20px;
        font-size: 1.8rem;
    }
}

.about__text {
    margin-bottom: 40px;
    font-family: "Noto Sans JP";
    font-size: 1.5rem;
    font-style: normal;
    font-weight: 400;
    line-height: 200%;
}

@media (max-width:767px) {
    .about__text {
        margin-bottom: 24px;
    }
}

.about__item--second {
    margin-top: 0px;
    margin-bottom: 40px;
}

@media (min-width:768px) {
    .about__item--second .about__image {
        max-width: 420px;
        margin-left: auto;
    }

    .about__item--second .about__catch {
        margin-top: 40px;
    }
}

.js-fadeUp {
    opacity: 0;
    transform: translateY(80px);
    transition: opacity 1.8s ease, transform 1.8s ease;
}

.js-fadeUp.is-show {
    opacity: 1;
    transform: translateY(0);
}

@media (max-width: 767px) {
    .about__contents {
        flex-direction: column;
        gap: 48px;
    }

    .about__item {
        max-width: 100%;
    }

    .about__item--second {
        display: flex;
        flex-direction: column;
    }

    .about__item--second .about__image {
        order: 3;
    }

    .about__item--second .about__catch {
        order: 1;
    }

    .about__item--second .about__text {
        order: 2;
    }
}

/* =====================
features
===================== */
.features {
    color: #60848B;
}

.features__inner {
    width: 80%;
    margin: 0 auto;
}

@media (max-width:767px) {
    .features__inner {
        width: 100%;
        padding-left: 16px;
        overflow: visible;
    }
}

.features__sub {
    margin-bottom: 4px;
    font-family: "Marcellus";
    font-size: 2rem;
    letter-spacing: 1px;
}

@media (max-width:767px) {
    .features__sub {
        font-size: 1.2rem;
        letter-spacing: 0.6px;
    }
}

.features__title {
    margin-bottom: 47px;
    font-family: "Noto Serif JP", serif;
    font-size: 4rem;
    font-weight: 400;
    letter-spacing: 2px;
}

@media (max-width:767px) {
    .features__title {
        margin-bottom: 32px;
        font-size: 3.2rem;
        letter-spacing: 1.6px;
    }
}

.features__list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 80px 40px;
}

.features__item img {
    object-fit: cover;
    display: block;
    margin-bottom: 23px;
    width: 100%;
    aspect-ratio: 320 / 240;
    height: auto;
}

@media (max-width:767px) {
    .features__item img {
        width: 100%;
        height: auto;
        aspect-ratio: 320 / 240;
        object-fit: cover;
        display: block;
        max-width: 100%;
        margin-bottom: 24px;
    }
}

.features__item h3 {
    margin-bottom: 16px;
    font-family: "Noto Serif JP", serif;
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 1.5;
}

.features__item p {
    font-size: 1.5rem;
    line-height: 2;
}

.features__item {
    width: 100%;
}

@media (max-width: 767px) {
    .features__list {
        display: block;
    }

    .features__item.swiper-slide {
        width: 80vw !important;
    }

    .features-button-prev,
    .features-button-next {
        width: 56px;
        height: 56px;
        background: none;
        display: flex;
        justify-content: center;
        align-items: center;
        cursor: pointer;
        font-size: 1.4rem;
    }

    .features-button-prev,
    .features-button-next {
        display: inline-flex;
        margin-top: 24px;
    }
}

@media (max-width: 767px) {
    .features__nav {
        display: flex;
        justify-content: center;
        gap: 16px;
        margin-left: -16px;
    }
}

@media (min-width:768px) {
    .features__nav {
        display: none;
    }
}

@media (max-width: 767px) {
    .featuresSwiper {
        overflow: visible;
        margin-right: -16px;
    }
}

@media (min-width:768px) {

    .featuresSwiper .swiper-wrapper {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 80px 40px;
    }

    .featuresSwiper .swiper-slide {
        width: auto !important;
        margin-right: 0 !important;
    }
}

/* =====================
lesson
===================== */
.lessons {
    padding-top: 180px;
    color: #60848B;
}

@media (max-width:767px) {
    .lessons {
        padding-top: 64px;
    }
}

.lessons__inner {
    width: 80%;
    margin: 0 auto;
}

@media (max-width:767px) {
    .lessons__inner {
        width: 90%;
    }
}

.lessons__sub {
    margin-bottom: 4px;
    font-family: "Marcellus";
    font-size: 2rem;
    letter-spacing: 1px;
}

@media (max-width:767px) {
    .lessons__sub {
        font-size: 1.2rem;
        letter-spacing: 0.6px;
    }
}

.lessons__title {
    margin-bottom: 48px;
    font-family: "Noto Serif JP", serif;
    font-size: 4rem;
    font-weight: 400;
}

@media (max-width:767px) {
    .lessons__title {
        margin-bottom: 32px;
        font-size: 3.2rem;
        letter-spacing: 1.6px;
    }
}

.lessons__list {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

@media (max-width:767px) {
    .lessons__list {
        gap: 24px;
    }
}

.lesson {
    display: grid;
    grid-template-columns: 354px 1fr;
    gap: 39px;
    background: #fff;
    height: auto;
    min-height: 265px;
}

@media (max-width:767px) {
    .lesson {
        display: flex;
        flex-direction: column;
        grid-template-columns: none;
        height: auto;
        gap: 24px;
    }
}

.lesson__image {
    width: 100%;
    flex-shrink: 0;
}

.lesson__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

@media (max-width:767px) {
    .lesson__image {
        width: 100%;
        height: 270px;
    }
}

.lesson__content {
    min-width: 0;
    padding-right: 40px;
}

@media (max-width:767px) {
    .lesson__content {
        padding: 0px 24px 24px;
    }
}

.lesson__heading {
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
    column-gap: 16px;
    row-gap: 4px;
    margin-bottom: 16px;
}

@media (max-width:767px) {
    .lesson__heading {
        flex-direction: column;
        gap: 4px;
        margin-bottom: 12px;
    }
}

.lesson__title-en {
    font-family: "Marcellus", serif;
    font-size: 3.2rem;
    font-weight: 400;
    margin-top: 24px;
}

@media (max-width:767px) {
    .lesson__title-en {
        font-size: 2.4rem;
        margin-top: 0;
    }
}

.lesson__label {
    font-size: 1.5rem;
    margin-top: 42px;
}

@media (max-width:767px) {
    .lesson__label {
        margin-top: 0px;
        font-size: 1.4rem;
        margin-bottom: 12px;
    }
}

@media (max-width:1280px) {
    .lesson__label {
        margin-top: 32px;
    }
}

.lesson__catch {
    margin-bottom: 16px;
    font-family: "Noto Serif JP", serif;
    font-size: 1.8rem;
    font-weight: 500;
}

@media (max-width:767px) {
    .lesson__catch {
        margin-bottom: 8px;
        font-size: 1.8rem;
    }
}

.lesson__text {
    color: #60848B;
    font-family: "Noto Sans JP";
    font-size: 1.5rem;
    font-style: normal;
    font-weight: 400;
    line-height: 200%;
}

.lesson__btn {
    margin-top: 16px;
    margin-bottom: 24px;
    width: 220px;
    height: 56px;
    display: flex;
    justify-content: center;
    align-items: center;
    border: none;
    background: #B0D0C9;
    color: #fff;
    cursor: pointer;
    transition: .3s;
    font-size: 1.5rem;
}

@media (max-width:767px) {
    .lesson__btn {
        width: 100%;
        height: 43px;
    }
}

.lesson__btn:hover {
    opacity: .8;
}

/* =====================
machine
===================== */

.machine {
    padding: 200px 0;
    color: #60848B;
}

@media (max-width:767px) {
    .machine {
        padding: 100px 0;
    }
}

.machine__inner {
    width: 80%;
    margin: 0 auto;
}

@media (max-width:767px) {
    .machine__inner {
        width: 90%;
    }
}

.machine__sub {
    margin-bottom: 4px;
    font-family: "Marcellus", serif;
    font-size: 2rem;
    letter-spacing: 1px;
}

@media (max-width:767px) {
    .machine__sub {
        font-size: 1.2rem;
        letter-spacing: 0.6px;
        padding: 0 16px;
    }
}

.machine__title {
    margin-bottom: 48px;
    font-family: "Noto Serif JP", serif;
    font-size: 4rem;
    font-weight: 400;
}

@media (max-width:767px) {
    .machine__title {
        margin-bottom: 32px;
        font-size: 3.2rem;
        padding: 0 16px;
    }
}

@media (max-width:767px) {
    .machine__images {
        margin-bottom: 20px;
        height: 269px;
    }
}

.machine__image {
    width: 32%;
}

.machine__image img {
    width: 100%;
    display: block;
}

@media (max-width:767px) {
    .machine__image img {
        width: 100%;
        object-fit: cover;
    }
}

.machine__text {
    max-width: 1100px;
    font-family: "Noto Sans JP";
    font-size: 1.5rem;
    font-style: normal;
    font-weight: 400;
    line-height: 200%;
}

@media (max-width:767px) {
    .machine__text {
        padding: 0 16px;
    }
}

.machine__text p {
    line-height: 2.2;
}

.machine__text p+p {
    margin-top: 40px;
}

@media (min-width:768px) {

    .machineSwiper .swiper-wrapper {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 24px;
        margin-bottom: 48px;
    }

    .machineSwiper .swiper-slide {
        width: auto !important;
        margin: 0 !important;
    }

}

/* flow */
.flow {
    padding-bottom: 180px;
    color: #60848B;
}

@media (max-width:767px) {
    .flow {
        padding-bottom: 100px;
    }
}

.flow__inner {
    width: 80%;
    margin: 0 auto;
}

@media (max-width:767px) {
    .flow__inner {
        width: 90%;
    }
}

.flow__sub {
    margin-bottom: 4px;
    font-family: "Marcellus", serif;
    font-size: 2rem;
    letter-spacing: 1px;
}

@media (max-width:767px) {
    .flow__sub {
        font-size: 1.2rem;
        letter-spacing: .6px;
    }
}

.flow__title {
    margin-bottom: 28px;
    font-family: "Noto Serif JP", serif;
    font-size: 4rem;
    font-weight: 400;
}

@media (max-width:767px) {
    .flow__title {
        margin-bottom: 32px;
        font-size: 3.2rem;
    }
}

.flow__list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 40px;
}

@media (max-width:767px) {
    .flow__list {
        grid-template-columns: 1fr;
        gap: 40px;
    }
}

.flow-card {
    border: 1px solid #60848B;
    padding: 40px;
}

@media (max-width:767px) {
    .flow-card {
        padding: 32px 24px;
    }
}

.flow-card__head {
    display: flex;
    align-items: center;
    gap: 24px;
    min-height: 96px;
}

@media (max-width:767px) {
    .flow-card__head {
        flex-direction: column;
        align-items: center;
        gap: 16px;
        min-height: auto;
        text-align: center;
    }
}

.flow-card__heading {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

@media (max-width:767px) {
    .flow-card__heading {
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: center;
        gap: 8px;
        width: 100%;
    }
}

.flow-card img {
    width: 108px;
    height: 108px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

.flow-card h3 {
    margin-bottom: 12px;
    font-size: 2.4rem;
    font-family: "Noto Serif JP", serif;
    font-weight: 400;
}

@media (max-width:767px) {
    .flow-card h3 {
        margin-bottom: 0;
        font-size: 1.9rem;
    }
}

.flow-card__txt {
    font-family: "noto sans jp";
    letter-spacing: 1.2px;
    font-size: 1.5rem;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    letter-spacing: 2px;
    margin-top: 20px;
}

@media (max-width:767px) {
    .flow-card__txt {
        margin-top: 16px;
        font-size: 1.4rem;
        line-height: 2;
        letter-spacing: .5px;
    }
}

.flow-card__number {
    margin-bottom: 2px;
    font-family: "Marcellus";
    font-size: 4rem;
}

@media (max-width:767px) {
    .flow-card__number {
        font-size: 3.2rem;
    }
}

.flow-card__link {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: .3s;
}

.flow-card__link:hover {
    opacity: .7;
}

.flow_preparebox {
    width: 100%;
    max-width: 1120px;
    height: 272px;
    background: rgba(255, 255, 255, 0.50);
    margin-top: 56px;
    padding: 40px;
}

@media (max-width:910px) {
    .flow_preparebox {
        height: auto;
        padding: 24px;
        margin-top: 32px;
    }
}

.flow__prepare+.flow__prepare {
    margin-top: 32px;
}

@media (max-width:910px) {
    .flow__prepare+.flow__prepare {
        margin-top: 24px;
    }
}

.flow__prepare-title {
    margin-bottom: 16px;
    font-family: "Noto Serif JP", serif;
    font-size: 2.4rem;
    font-weight: 400;
    color: #60848B;
}

@media (max-width:910px) {
    .flow__prepare-title {
        margin-bottom: 12px;
        font-size: 2rem;
    }
}

.flow__prepare-list {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    list-style: none;
    margin: 0;
    padding: 0;
}

@media (max-width:910px) {
    .flow__prepare-list {
        flex-direction: column;
        gap: 8px;
    }
}

.flow__prepare-list li {
    position: relative;
    padding-left: 16px;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 1.5rem;
    line-height: 2;
    color: #60848B;
}

@media (max-width:910px) {
    .flow__prepare-list li {
        font-size: 1.4rem;
    }
}

.flow__prepare-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 4px;
    height: 4px;
    background: #60848B;
    border-radius: 50%;
}

@media (max-width:910px) {
    .flow__prepare:first-child .flow__prepare-list {
        display: flex;
        flex-direction: column;
    }

    .flow__prepare:last-child .flow__prepare-list {
        display: grid;
        grid-template-columns: 1fr 1fr;
        column-gap: 24px;
        row-gap: 12px;
    }
}

/* campaign */
.campaign {
    padding: 160px 0;
    background: url("./images/noisy-gradients.webp") center / cover no-repeat;
    color: #60848B;
    min-height: 974px;
}

.campaign__inner {
    width: min(80%, 1120px);
    margin: 0 auto;
    letter-spacing: 1px;
}

.campaign__sub {
    margin-bottom: 4px;
    font-family: "Marcellus", serif;
    font-size: 2rem;
}

.campaign__title {
    margin-bottom: 48px;
    font-family: "Noto Serif JP", serif;
    font-size: 4rem;
    font-weight: 400;
}

.campaign__list {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 24px;
}

.campaign-card {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 56px 52px;
    background: #fff;
    background: rgba(255, 255, 255, 0.50);
}

.campaign-card--wide {
    grid-column: 1 / 3;
    display: grid;
    grid-template-columns: 220px 1fr;
    align-items: center;
}

.campaign-card__label {
    font-family: "Noto Serif JP", serif;
    font-size: 2rem;
    line-height: 1.8;
}

.campaign-card--wide .campaign-card__label {
    text-align: right;
}

.campaign-card--wide {
    grid-template-columns: 300px 1fr;
    column-gap: 50px;
}

.campaign-card__price {
    display: flex;
    align-items: flex-end;
}

.campaign-card--wide .campaign-card__price {
    justify-content: center;
}

.campaign-card__yen {
    margin-right: 8px;
    margin-bottom: -3px;
    font-family: "Noto Serif JP";
    font-size: 3rem;
}

.campaign-card__num {
    font-family: "Noto Serif JP";
    font-size: 7.5rem;
    line-height: 1;
}

.campaign-card__tax {
    margin-left: 8px;
    margin-bottom: 6px;
    font-size: 0.9rem;
}

.campaign__note {
    margin-top: 48px;
    font-size: 1.5rem;
    line-height: 2;
}

.js-price-fade {
    opacity: 0;
    transform: translateY(20px);
}

.js-price-fade.is-show {
    animation: priceFade .8s ease forwards;
}

@keyframes priceFade {
    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.js-price-fade:nth-of-type(1).is-show {
    animation-delay: 0s;
}

.js-price-fade:nth-of-type(2).is-show {
    animation-delay: .2s;
}

.js-price-fade:nth-of-type(3).is-show {
    animation-delay: .4s;
}

@media (max-width:914px) {

    .campaign {
        padding: 56px 0;
        min-height: auto;
    }

    .campaign__inner {
        width: 90%;
    }

    .campaign__sub {
        font-size: 1.2rem;
        letter-spacing: .6px;
    }

    .campaign__title {
        margin-bottom: 32px;
        font-size: 3.2rem;
    }

    .campaign__list {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .campaign-card--wide {
        grid-column: auto;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .campaign-card {
        flex-direction: column;
        justify-content: center;
        align-items: center;
        padding: 40px 24px;
        text-align: center;
    }

    .campaign-card__label {
        font-size: 2rem;
        line-height: 1.6;
        margin-bottom: 20px;
    }

    @media (max-width:914px) {
        .campaign-card--wide .campaign-card__label {
            text-align: center;
            width: 100%;
            white-space: nowrap;
        }
    }

    .campaign-card__price {
        justify-content: center;
        align-items: flex-end;
    }

    .campaign-card__yen {
        font-size: 2.8rem;
        margin-bottom: -4px;
    }

    .campaign-card__num {
        font-size: 6rem;
        letter-spacing: 3px;
    }

    .campaign-card__tax {
        margin-bottom: 4px;
    }

    .campaign__note {
        margin-top: 24px;
        font-size: 1.4rem;
        line-height: 2;
    }
}

/* --------------------
Price
-------------------- */

.price {
    padding-top: 180px;
    color: #60848B;
}

@media (max-width:767px) {
    .price {
        padding-top: 100px;
    }
}

.price__inner {
    width: min(80%, 1120px);
    margin: 0 auto;
}

@media (max-width:767px) {
    .price__inner {
        width: 100%;
        padding: 0 16px;
    }
}

.price__sub {
    margin-bottom: 4px;
    font-family: "Marcellus", serif;
    font-size: 2rem;
    letter-spacing: 1px;
}

@media (max-width:767px) {
    .price__sub {
        font-size: 1.2rem;
        letter-spacing: .6px;
    }
}

.price__title {
    margin-bottom: 48px;
    font-family: "Noto Serif JP", serif;
    font-size: 4rem;
    font-weight: 400;
}

@media (max-width:767px) {
    .price__title {
        margin-bottom: 32px;
        font-size: 3.2rem;
    }
}

.price__list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 40px;
}

@media (max-width:767px) {
    .price__list {
        grid-template-columns: 1fr;
        gap: 24px;
    }
}

/* --------------------
Card
-------------------- */

.price-card {
    background: #fff;
}

.price-card__head {
    padding: 18px;
    background: #60848B;
    color: #fff;
    text-align: center;
    font-family: "Marcellus";
    font-size: 2.4rem;
    font-weight: 400;
    height: 72px;
    letter-spacing: 1.2px;
}

@media (max-width:767px) {
    .price-card__head {
        height: 56px;
        padding: 16px;
        font-size: 2rem;
        letter-spacing: 1px;
    }
}

.price-card__head-note {
    margin-left: 8px;
    font-size: 1.2rem;
    color: #FFF;
    font-family: "Noto Serif JP";
    font-style: normal;
    font-weight: 500;
    line-height: 170%;
    letter-spacing: 0.48px;
}

@media (max-width:767px) {
    .price-card__head-note {
        margin-left: 8px;
        font-size: 1rem;
    }
}

.price-card__body {
    padding: 32px;
}

@media (max-width:767px) {

    .price-card__body,
    .monthly,
    .ticket {
        padding: 24px 20px;
    }
}

/* --------------------
Price Item
-------------------- */
.price-item {
    display: flex;
    align-items: center;
}

.price-item__name {
    white-space: nowrap;
    font-size: 1.5rem;
    font-family: "Noto Serif JP";
    letter-spacing: 0.6px;
}

.price-item::before {
    content: "";
    order: 2;
    flex: 1;
    border-bottom: 1px dashed #60848B;
    margin: 0 16px;
}

.price-item__price {
    margin-left: auto;
    order: 3;
    font-size: 1.5rem;
    color: #60848B;
    text-align: center;
    font-family: "Zen Old Mincho";
    font-style: normal;
    line-height: 100%;
    letter-spacing: 0.48px;
}

.price-item__price span {
    font-size: 1.2rem;
    font-family: "Zen Old Mincho";
}

.price-item__price span:not(.price_yen) {
    font-size: .5rem;
}

@media (max-width:767px) {

    .price-item__price {
        font-size: 1.5rem;
    }

    .price_yen {
        font-size: 1.2rem;
    }

    .price-item__price span:last-child {
        font-size: 0.5rem;
    }
}

.monthly {
    padding: 20px;
}

@media (max-width:767px) {
    .monthly {
        padding: 25px 20px 25px 20px;
    }
}

.monthly__item {
    display: flex;
    align-items: flex-start;
    gap: 40px;
}

@media (max-width:1100px) {
    .monthly__item {
        gap: 16px;
    }
}

@media (max-width:767px) {
    .monthly__item {
        display: flex;
        align-items: flex-start;
        gap: 16px;
    }
}

.monthly__item+.monthly__item {
    margin-top: 40px;
}

.monthly__left {
    flex-shrink: 0;
}

.monthly__title {
    margin-bottom: 6px;
    font-family: "Noto Serif JP", serif;
    font-weight: 400;
    color: #60848B;
    font-size: 1.5rem;
    font-style: normal;
    font-weight: 500;
    line-height: 100%;
    letter-spacing: 0.6px;
}

.monthly__text {
    color: #60848B;
    font-family: "Noto Serif JP";
    font-size: 1rem;
    font-style: normal;
    font-weight: 400;
    line-height: 100%;
    letter-spacing: 0.4px;
}

.monthly__line {
    flex: 1;
    margin: 12px 0 0;
    border-bottom: 1px dashed #60848B;
}

.monthly__right {
    flex-shrink: 0;
    text-align: right;
}

@media (max-width:767px) {
    .monthly__right {
        flex-shrink: 0;
        margin-top: 0;
        text-align: right;
    }
}

.monthly__price {
    line-height: 1;
    color: #60848B;
    font-family: "Zen Old Mincho";
    font-size: 1.5rem;
    font-style: normal;
    line-height: 100%;
    letter-spacing: 0.6px;
}

.monthly__price span:not(.price_yen) {
    color: #60848B;
    text-align: center;
    font-family: "Zen Old Mincho";
    font-size: 0.5rem;
    font-style: normal;
    font-weight: 400;
    line-height: 100%;
    letter-spacing: 0.2px;
}

.monthly__once {
    margin-top: 8px;
    color: #60848B;
    text-align: right;
    font-family: "Zen Old Mincho";
    font-size: 1rem;
    font-style: normal;
    font-weight: 400;
    line-height: 100%;
    letter-spacing: 0.4px;
}

.ticket {
    padding: 20px;
}

@media (max-width:767px) {
    .ticket {
        padding: 25px 20px 25px 20px;
    }
}

.ticket__item {
    display: flex;
    align-items: flex-start;
}

@media (max-width:767px) {
    .ticket__item {
        display: flex;
        align-items: flex-start;
        gap: 12px;
    }

}

.ticket__item+.ticket__item {
    margin-top: 20px;
}

.ticket__left {
    width: 206px;
}

@media (max-width:767px) {
    .ticket__left {
        width: auto;
    }
}

.ticket__top {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 8px;
}

@media (max-width:767px) {
    .ticket__top {
        flex-wrap: wrap;
        gap: 8px;
    }
}

.ticket__title {
    color: #60848B;
    font-family: "Noto Serif JP";
    font-size: 15px;
    font-style: normal;
    font-weight: 500;
    line-height: 100%;
    letter-spacing: 0.6px;
}

.ticket__badge {
    padding: 2px 8px;
    border-radius: 999px;
    background: #60848B;
    color: #fff;
    font-size: 1rem;
    line-height: 1;
    height: 14px;
    font-family: "Zen Old Mincho";
}

.ticket__text {
    color: #60848B;
    font-family: "Zen Old Mincho";
    font-size: 1rem;
    font-style: normal;
    font-weight: 400;
    line-height: 100%;
    letter-spacing: 0.4px;
}

.ticket__line {
    flex: 1;
    align-self: center;
    border-bottom: 1px dashed #60848B;
}

.ticket__right {
    width: 112px;
    text-align: right;
}

@media (max-width:767px) {
    .ticket__right {
        flex-shrink: 0;
        width: auto;
        margin-top: 0;
        text-align: right;
    }

}

.ticket__price {
    line-height: 1;
    color: #60848B;
    font-family: "Zen Old Mincho";
    font-size: 1.5rem;
    font-style: normal;
    line-height: 100%;
    letter-spacing: 0.6px;
}

.ticket__price span:not(.price_yen) {
    font-size: .5rem;
}

.ticket__price span {
    font-size: 1.2rem;
}

.ticket__once {
    margin-top: 6px;
    color: #60848B;
    text-align: right;
    font-family: "Zen Old Mincho";
    font-size: 1rem;
    font-style: normal;
    font-weight: 400;
    line-height: 100%;
    letter-spacing: 0.4px;
}

/* --------------------
Note
-------------------- */

.price-card__note {
    margin-top: 24px;
    font-size: 1.4rem;
    line-height: 2;
    color: #60848B;
    font-family: "Noto Serif JP";
    font-style: normal;
    font-weight: 500;
    line-height: 150%;
    letter-spacing: 0.56px;
}

.price_yen {
    color: #60848B;
    text-align: center;
    font-family: "Zen Old Mincho";
    font-size: 1.2rem;
    font-style: normal;
    line-height: 100%;
    letter-spacing: 0.48px;
}

/* --------------------
Note
-------------------- */

.price-card__note {
    margin-top: 24px;
    font-size: 1.4rem;
    line-height: 2;
    color: #60848B;
    font-family: "Noto Serif JP";
    font-style: normal;
    font-weight: 500;
    line-height: 150%;
    /* 21px */
    letter-spacing: 0.56px;
}

.price_yen {
    color: #60848B;
    text-align: center;
    font-family: "Zen Old Mincho";
    font-size: 1.2rem;
    font-style: normal;
    line-height: 100%;
    letter-spacing: 0.48px;
}

/* --------------------
Pet Plan
-------------------- */

.price-card--pet {
    grid-column: 1 / 3;
    display: grid;
    grid-template-columns: 460px 1fr;
    width: 100%;
    background: #8BB1B0;
    color: #fff;
    width: 100%;
    height: auto;
    padding: 55px 72px 60px 72px;
    gap: 56px;
    align-items: center;
}

.price-card--pet img {
    width: 100%;
    object-position: center;
    align-self: center;
    justify-self: center;
}

.price-card__pet {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.price-card__pet-title {
    margin-bottom: 32px;

    font-family: "Marcellus", serif;
    font-size: 3.2rem;
    font-weight: 400;
    color: #fff;
}


.price-card__pet-title {
    margin-bottom: 24px;
    font-weight: 400;
    color: #fff;
    font-family: Marcellus;
    font-size: 2.4rem;
    font-style: normal;
    font-weight: 400;
    line-height: 100%;
    /* 24px */
    letter-spacing: 1.2px;
}

.pet-item {
    display: flex;
    align-items: center;
}

.pet-item+.pet-item {
    margin-top: 20px;
}

.pet-item__name {
    flex-shrink: 0;
    line-height: 1.8;
    color: #FFF;
    font-family: "Noto Serif JP";
    font-size: 1.5rem;
    font-style: normal;
    line-height: 140%;
    letter-spacing: 0.6px;
}

.pet-item__name span {
    font-size: 1.5rem;
}

.pet-item__line {
    flex: 1;
    margin: 0 16px;
    border-bottom: 1px dashed rgba(255, 255, 255, .6);
}

.pet-item__price {
    text-align: right;
    flex-shrink: 0;
    font-family: "Zen Old Mincho";
    font-size: 2rem;
    color: #FFF;
    font-size: 1.5rem;
    font-style: normal;
    line-height: 100%;
    letter-spacing: 0.6px;
}

.petprice_yen {
    color: #FFF;
    text-align: center;
    font-family: "Zen Old Mincho";
    font-size: 1.2rem;
    font-style: normal;
    line-height: 100%;
    /* 12px */
    letter-spacing: 0.48px;
}

.pet_tax {
    color: #FFF;
    text-align: center;
    font-family: "Zen Old Mincho";
    font-size: 0.5rem;
    font-style: normal;
    font-weight: 400;
    line-height: 100%;
    /* 5px */
    letter-spacing: 0.2px;
}

.pet-service {
    margin: 40px 0;
}

@media (max-width:767px) {
    .pet-service {
        margin: 24px 0;
    }
}

.pet-service__title {
    margin-bottom: 20px;
    color: #fff;
    font-family: "Noto Serif JP";
    font-size: 1.5rem;
    font-style: normal;
    /* font-weight: 500; */
    line-height: 100%;
    /* 15px */
    letter-spacing: 0.6px;
}

.pet-service__list {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    list-style: none;
    padding: 0;
}

@media (max-width:767px) {
    .pet-service__list {
        gap: 6px;
    }
}

.pet-service__list li {
    padding: 4px 24px 5px 24px;
    border-radius: 999px;
    background: #fff;
    color: #60848B;
    font-size: 1.5rem;
}

@media (max-width:767px) {
    .pet-service__list li {
        padding: 3px 12px 3px 12px;
        font-size: 1.4rem;
    }
}

.pet-note {
    margin-top: 32px;
    line-height: 2;
    color: #FFF;
    font-family: "Noto Sans JP";
    font-size: 1.5rem;
    font-style: normal;
    font-weight: 300;
    line-height: 200%;
    /* 30px */
}

@media (max-width:1200px) {
    .pet-note {
        margin-top: 16px;
        font-size: 1.4rem;
    }

    .price-card--pet {
        grid-column: 1 / 3;
        display: block;
        width: 100%;
        padding: 40px;
        gap: 24px;
    }

    .price-card--pet img {
        width: 100%;
        display: block;
        height: auto;
    }

    .price-card__pet {
        padding: 24px 0;
    }
}

@media (max-width:767px) {
    .price-card--pet {
        grid-column: auto;
        display: block;
        width: 100%;
        padding: 24px 20px;
    }
}

/*====================
Member
====================*/

.member {
    padding: 180px 0;
    color: #60848B;
}

@media (max-width:767px) {
    .member {
        padding: 100px 0;
    }
}

.member__inner {
    width: min(80%, 1120px);
    margin: 0 auto;
}

@media (max-width:767px) {
    .member__inner {
        width: 90%;
    }
}

.member__sub {
    margin-bottom: 4px;
    font-family: "Marcellus", serif;
    font-size: 2rem;
    letter-spacing: 1px;
}

@media (max-width:767px) {
    .member__sub {
        font-size: 1.2rem;
        letter-spacing: .6px;
    }
}

.member__title {
    margin-bottom: 48px;
    font-family: "Noto Serif JP", serif;
    font-size: 4rem;
    font-weight: 400;
}

@media (max-width:767px) {
    .member__title {
        margin-bottom: 24px;
        font-size: 3.2rem;
        line-height: 1.4;
    }
}

.sp-only {
    display: none;
}

@media (max-width:767px) {
    .sp-only {
        display: block;
    }
}

.member__gallery {
    display: flex;
    gap: 24px;
}

@media (max-width:767px) {
    .member__gallery {
        display: flex;
        flex-direction: column;
        gap: 16px;
    }
}

.member__photo {
    flex: 1;
}

.member__photo--center {
    flex: 1.25;
}

.member__photo img {
    width: 100%;
    display: block;
}

/* 左 */
.member__photo--left {
    width: 280px;
    margin-top: 0;
}

/* 真ん中 */
.member__photo--center {
    width: 330px;
}

/* 右 */
.member__photo--right {
    width: 280px;
    align-self: flex-end;
}

@media (max-width:767px) {

    .member__photo,
    .member__photo--left,
    .member__photo--center,
    .member__photo--right {
        width: 100%;
        flex: none;
        margin-top: 0;
        /* align-self:stretch; */
    }

    .member__photo img {
        width: 100%;
        display: block;
    }
}

/*====================
Profile
====================*/

.member-profile {
    margin-top: 35px;
    color: #60848B;
}

@media (max-width:767px) {
    .member-profile {
        margin-top: 32px;
    }
}

.member-profile__head {
    display: flex;
    align-items: flex-end;
    gap: 24px;
    margin-bottom: 44px;
}

@media (max-width:767px) {
    .member-profile__head {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
        margin-bottom: 24px;
    }
}

.member-profile__name {
    font-family: "Marcellus";
    font-size: 4rem;
    font-weight: 400;
    letter-spacing: 2px;
}

/* @media (max-width:767px){
    .member-profile__name{
    font-size:3.2rem;
    }
} */
.member-profile__job {
    margin-bottom: 12px;
    font-family: "Noto Serif JP", serif;
    font-size: 1.5rem;
    letter-spacing: 0.75px;
}

.member-profile__text {
    width: auto;
}

.member-profile__text p {
    margin-bottom: 32px;
    font-family: "Noto Sans JP";
    font-size: 1.5rem;
    line-height: 2.4;
    letter-spacing: .05em;
}

@media (max-width:767px) {
    .member-profile__text p {
        margin-bottom: 24px;
        font-size: 1.4rem;
        line-height: 2;
    }
}

.member-profile__text p:last-child {
    margin-bottom: 0;
}

.pet-slider {
    margin-top: 80px;
    overflow: hidden;
    width: 100vw;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
}

.pet-slider .swiper-wrapper {
    align-items: flex-start;
}

.pet-slider .swiper-slide {
    width: 350px;
    flex-shrink: 0;
}

.pet-member {
    width: 250px;
}

.pet-member {
    width: 250px;
}

.pet-member img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 50%;
    display: block;
}

.pet-slider .swiper-slide img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 50%;
    display: block;
}

.pet-member h3 {
    margin-top: 20px;
    margin-bottom: 10px;
    font-family: "Marcellus";
    font-size: 4rem;
    color: #60848B;
    text-align: center;
    letter-spacing: 2px;
}

.pet-member h3 span {
    margin-left: 4px;
    font-family: "Noto Sans JP";
    font-size: 1.5rem;
}

.pet-member p {
    font-size: 1.5rem;
    line-height: 1.8;
    color: #60848B;
    font-family: "Noto Sans JP";
    width: 246px;
    margin: 0 auto;
}

@media (max-width:767px) {

    .pet-slider {
        margin-top: 48px;
    }

    .pet-slider .swiper-slide {
        width: 220px;
    }

    .pet-member img {
        width: 220px;
    }

    .pet-member h3 {
        margin-top: 10px;
        font-size: 2rem;
    }

    .pet-member h3 span {
        font-size: 1.2rem;
    }

    .pet-member p {
        width: 177px;
        font-size: 1.4rem;
    }

}

.pet-members__note {
    margin-top: 64px;
    font-family: "Noto Sans JP";
    text-align: center;
    font-size: 1.5rem;
    line-height: 2;
    color: #60848B;
}

@media (max-width:767px) {

    .pet-members__note {
        width: 80%;
        margin: 48px auto 0;
        text-align: left;
        font-size: 1.4rem;
        line-height: 2;
    }

}

/*====================
FAQ
====================*/

.faq {
    padding: 160px 0;
    background: #FFF;
}

.faq__inner {
    width: min(80%, 1120px);
    margin: 0 auto;
}

.faq__sub {
    margin-bottom: 4px;
    font-family: "Marcellus";
    font-size: 2rem;
    color: #60848B;
    letter-spacing: 1px;
}

.faq__title {
    margin-bottom: 48px;
    font-family: "Noto Serif JP";
    font-size: 4rem;
    color: #60848B;
}

.faq__category {
    margin-bottom: 32px;
    margin-top: 32px;
    padding: 30px 32px;
    background: #60848B;
    color: #fff;
    font-size: 2rem;
    font-family: "Noto Sans JP";
}

.faq__item+.faq__item {
    margin-top: 24px;
}

.faq__question {
    width: 100%;
    padding: 24px 24px 24px 0;

    display: flex;
    justify-content: space-between;
    align-items: center;

    border: none;
    background: none;
    cursor: pointer;

    border-left: 1px solid #60848B;
    transition: .3s;
}

.faq__item.is-open .faq__answer {
    background: rgba(96, 132, 139, 0.10);
}

.faq__q,
.faq__a {
    display: flex;
    gap: 20px;
}

.faq__mark {
    font-family: "Marcellus";
    font-size: 3.2rem;
    font-weight: 400;
    line-height: 1;
    color: #60848B;
    letter-spacing: 1.6px;
}

.faq__q {
    color: #60848B;
    font-size: 1.8rem;
    display: flex;
    /* align-items:center; */
    gap: 20px;
    padding-left: 18px;
    color: #60848B;
    font-family: "Noto Sans JP";
    align-items: flex-start;
}

.faq__answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height .45s ease;
}

.faq__a {
    display: flex;
    gap: 20px;
    padding: 24px 24px 32px 24px;
    margin-top: 8px;
}

.faq__answer p {
    font-size: 1.8rem;
    line-height: 2;
    color: #60848B;
    font-family: "Noto Sans JP";
    letter-spacing: 0.9px;
}

.faq__icon {
    position: relative;
    width: 22px;
    height: 22px;
    flex-shrink: 0;
}

.faq__icon::before,
.faq__icon::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;

    width: 100%;
    height: 2px;
    background: #60848B;

    transition: .35s;
}

.faq__icon::before {
    transform: translateY(-50%);
}

.faq__icon::after {
    transform: translateY(-50%) rotate(90deg);
}

.faq__item.is-open .faq__icon::after {
    transform: translateY(-50%) rotate(0);
    opacity: 0;
}

@media (max-width:767px) {
    .faq {
        padding: 80px 0;
    }

    .faq__inner {
        width: 100%;
        padding: 0 16px;
    }

    .faq__sub {
        font-size: 1.2rem;
        letter-spacing: 0.6px;
    }

    .faq__title {
        margin-bottom: 32px;
        font-size: 3.2rem;
        letter-spacing: 1.6px;
    }

    .faq__category {
        padding: 20px 24px;
        font-size: 1.8rem;
        margin-top: 24px;
        margin-bottom: 24px;
        text-align: center;
    }

    .faq__question {
        padding: 20px 16px 20px 0;
    }

    .faq__q {
        font-size: 1.5rem;
        gap: 12px;
    }

    .faq__mark {
        font-size: 2.4rem;
    }

    .faq__a {
        gap: 12px;
        padding: 20px 16px 24px 16px;
    }

    .faq__answer p {
        font-size: 1.5rem;
    }

    .faq__icon {
        width: 16px;
        height: 16px;
    }
}

/*====================
Information
====================*/

.information {
    padding-top: 180px;
}

.information__inner {
    width: min(80%, 1120px);
    margin: 0 auto;
}

.information__sub {
    margin-bottom: 4px;
    font-family: "Marcellus";
    font-size: 2rem;
    color: #60848B;
    letter-spacing: 1px;
}

.information__title {
    margin-bottom: 48px;
    font-family: "Noto Serif JP";
    font-size: 4rem;
    color: #60848B;
    letter-spacing: 2px;
}

.information__content {
    display: flex;
    align-items: flex-start;
    margin-bottom: 72px;
}

.information__left {
    width: 360px;
    flex-shrink: 0;
}

.information__name {
    font-family: "Marcellus";
    font-size: 4rem;
    color: #60848B;
}

.information__name span {
    margin-left: 8px;
    font-size: 1.2rem;
    font-family: "Noto Sans JP";
}

.information__sns {
    display: flex;
    gap: 16px;
    margin-top: 28px;
}

.information__sns img {
    width: 52px;
}

.information__left {
    width: 400px;
}

.information__name {
    font-family: "Marcellus";
    font-size: 4rem;
    color: #60848B;
    letter-spacing: 2px;

}

.information__name span {
    margin-left: 8px;
    font-size: 1.5rem;
    font-family: "Noto Sans JP";
    letter-spacing: 0.75px;
}

.information__sns {
    display: flex;
    gap: 16px;
    margin-top: 28px;
}

.information__sns img {
    width: 52px;
}

.information__right {
    width: 570px;
    margin-left: auto;
    padding-top: 35px;
}

.information__item {
    display: flex;
    margin-bottom: 18px;
    gap: 30px;
}

.information__item dt {
    width: 90px;
    color: #60848B;
    font-family: "Noto Sans JP";
    font-size: 1.6rem;
    letter-spacing: 0.8px;
}

.information__item dd {
    font-size: 1.5rem;
    line-height: 1.8;
    color: #60848B;
}

.information__gallery {
    display: flex;
    gap: 24px;
}

.information__gallery img {
    /* width: calc((100% - 48px) / 3); */
    display: block;
}


.js-delay1.is-show {
    transition-delay: 0s;
}

.js-delay2.is-show {
    transition-delay: .4s;
}

.js-delay3.is-show {
    transition-delay: .8s;
}

@media (max-width:767px) {
    .information {
        padding-top: 100px;
    }

    .information__inner {
        width: 100%;
        padding: 0 16px;
    }

    .information__sub {
        font-size: 1.2rem;
        letter-spacing: 0.6px;
    }

    .information__title {
        margin-bottom: 32px;
        font-size: 3.2rem;
        letter-spacing: 1.6px;
    }

    /* 左右を縦積みに */
    .information__content {
        display: block;
        margin-bottom: 40px;
    }

    .information__left {
        width: 100%;
        margin-bottom: 32px;
    }

    .information__name {
        font-size: 3.2rem;
    }

    .information__name span {
        font-size: 1.4rem;
        letter-spacing: 0.7px;
    }

    .information__sns {
        gap: 8px;
        margin-top: 16px;
    }

    .information__right {
        width: 100%;
        margin-left: 0;
        padding-top: 0;
    }

    /* dt幅を少し縮小 */
    .information__item dt {
        width: 80px;
        font-size: 1.6rem;
        flex-shrink: 0;
    }

    .information__item dd {
        font-size: 1.6rem;
    }

    .information__gallery img {
        width: calc((100% - 16px) / 3);
    }
}

/* PC：Swiper destroyされたときのレイアウト維持 */
@media (min-width:768px) {
    .information__gallery .swiper-wrapper {
        display: flex;
        gap: 24px;
        transform: none !important;
    }

    .information__gallery .swiper-slide {
        width: calc((100% - 48px) / 3) !important;
    }

    .information__gallery .swiper-pagination {
        display: none;
    }
}

/* SP：スライダー */
@media (max-width:767px) {
    .information__gallery {
        display: block;
        overflow: hidden;
    }

    .information__gallery img {
        width: 100%;
    }
}


/*====================
Reserve
====================*/

.reserve {
    padding: 180px 0;
}

.reserve__inner {
    width: min(80%, 1120px);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 280px;
    gap: 48px;
    align-items: start;
}

.reserve__left {
    width: 100%;
    max-width: none;
    padding-top: 40px;
}

.reserve__sub {
    margin-bottom: 4px;
    font-family: "Marcellus";
    font-size: 2rem;
    color: #60848B;
    letter-spacing: 1px;
}

.reserve__title {
    margin-bottom: 48px;
    font-family: "Noto Serif JP";
    font-size: 4rem;
    font-weight: 400;
    color: #60848B;
    letter-spacing: 2px;
}

.reserve__catch {
    margin-bottom: 32px;
    color: #60848B;
    font-family: "Noto Serif JP";
    font-size: 3.2rem;
    font-weight: 500;
    line-height: 1.6;
}

.reserve__text {
    margin-bottom: 48px;
    color: #60848B;
    font-family: "Noto Sans JP";
    font-size: 1.5rem;
    line-height: 2;
}

.reserve__buttons {
    display: flex;
    gap: 16px;
    width: 100%;
    grid-column: 1 / -1;
}

.reserve__btn {
    flex: 1;
    max-width: 552px;
    height: 80px;
    display: flex;
    justify-content: center;
    align-items: center;
    text-decoration: none;
    color: #fff;
    transition: .3s;
    font-family: "Noto Sans JP";
    font-size: 18px;
    letter-spacing: 0.9px;
}

.reserve__btn--reserve {
    background: #60848B;
}

.reserve__btn--line {
    background: #B8D9D1;
}

.reserve__btn:hover {
    opacity: .8;
}

.reserve__right {
    width: 300px;
}

.reserve__right img {
    width: 100%;
    display: block;
    opacity: .18;
}

.reserve__left {
    padding-top: 40px;
}

@media (max-width:767px) {

    .reserve {
        padding: 100px 0;
    }

    .reserve__inner {
        width: 100%;
        padding: 0 16px;
        display: block;
        position: relative;
    }

    .reserve__left {
        padding-top: 0;
        position: relative;
        z-index: 2;
    }

    .reserve__sub {
        font-size: 1.2rem;
        letter-spacing: .6px;
    }

    .reserve__title {
        margin-bottom: 32px;
        font-size: 3.2rem;
        letter-spacing: 1.6px;
    }

    .reserve__catch {
        margin-bottom: 24px;
        font-size: 2rem;
        line-height: 1.6;
    }

    .reserve__text {
        margin-bottom: 32px;
        font-size: 1.5rem;
        line-height: 2;
    }

    /* ロゴ */
    .reserve__right {
        position: absolute;
        top: 20px;
        right: 0;
        width: 150px;
        z-index: 1;
    }

    .reserve__right img {
        width: 100%;
        opacity: .15;
    }

    /* ボタン */
    .reserve__buttons {
        display: flex;
        flex-direction: column;
        gap: 16px;
    }

    .reserve__btn {
        display: block;
        line-height: 64px;
        text-align: center;
        height: 64px;
    }
}

/*====================
footer
====================*/
.footer {
    padding: 32px;
    background-image: url("./images/noisy-gradients02.webp");
    background-size: cover;
    background-position: center;
    color: #fff;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 56px;
}

.footer a {
    font-size: 16px;
}

.footer__copy {
    display: block;
    margin: 0;
    padding: 0;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0.72px;
}

.footer__copy small {
    font-size: 16px;
}

@media (max-width:767px) {
    .footer {
        padding: 18px 0 22px;
        background-size: contain;
        text-align: center;
        display: block;
    }

    .footer a {
        font-size: 14px;
    }

    .footer__copy {
        text-align: center;
        margin-top: 8px;
    }

    .footer__copy small {
        font-size: 14px;
    }
}

/*====================
modal   
====================*/
.modal {
    position: fixed;
    inset: 0;
    opacity: 0;
    visibility: hidden;
    transition: .4s;
    z-index: 9999;
    color: #60848B;
}

.modal.is-active {
    opacity: 1;
    visibility: visible;
}

/* 背景 */
.modal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .2);
}

/* 白いボックス */
.modal__content {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 960px;
    height: 770px;
    padding: 56px 40px;
    background: #fff;
}

@media (max-width:767px) {
    .modal__content {
        position: fixed;
        top: 56px;
        left: 50%;
        transform: translateX(-50%);
        width: 92%;
        height: calc(100vh - 56px);
        padding: 24px 20px 40px;
        overflow-y: auto;
    }
}

/* × */
.modal__close {
    position: absolute;
    top: 25px;
    right: 158px;
    border: none;
    background: transparent;
    cursor: pointer;
    padding: 0;
    z-index: 10000;
}

@media (max-width:767px) {
    .modal__close {
        top: 16px;
        right: 16px;
    }

}

.modal__close img {
    display: block;
    width: 48px;
    height: auto;
}

@media (max-width:767px) {
    .modal__close img {
        display: block;
        width: 24px;
        height: auto;
        margin: 8px;
    }
}

.modal__sub {
    font-family: "Marcellus", serif;
    font-size: 2rem;
    margin-bottom: 4px;
}

.modal__title {
    font-family: "Noto Serif JP", serif;
    font-size: 4rem;
    font-weight: 400;
    margin-bottom: 56px;
}

@media (max-width:767px) {
    .modal__title {
        font-size: 2.8rem;
        margin-bottom: 32px;
    }

}

.modal__list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 32px 32px;
    margin-bottom: 56px;
}

@media (max-width:767px) {
    .modal__list {
        grid-template-columns: 1fr;
        /* 2カラム → 1カラム */
        gap: 24px;
        margin-bottom: 32px;
    }
}

.modal__item {
    display: flex;
    gap: 20px;
}

.modal__number {
    font-size: 2.4rem;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: #60848B;
    color: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-shrink: 0;
    font-family: "Marcellus", serif;
}

.modal__body h3 {

    font-family: "Noto Serif JP", serif;
    font-size: 2.4rem;
    font-weight: 400;
    margin-bottom: 11px;
}

.modal__body p {
    line-height: 2;
    font-size: 1.5rem;
}

.modal__button {
    width: 253px;
    height: 43px;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #B0D0C9;
    color: #fff;
    border: none;
    cursor: pointer;
    font-size: 1.5rem;
}

@media (max-width:767px) {
    .modal__button {
        width: 100%;
    }
}

.js-fade {
    /* opacity: 0; */
    transform: scale(.96);

    transition:
        opacity 1s ease,
        transform 1s ease;
}

.js-fade.is-show {
    opacity: 1;
    transform: scale(1);
}

/* 利用規約 */
.page-inner {
    width: 80%;
    margin: 160px auto;
    font-family: "Noto Sans JP";
    color: #60848B;
}

.page-inner h1 {
    font-size: 32px;
    margin-bottom: 32px;
    font-weight: 500;
    font-family: "Noto Serif JP", serif;
}

.page-inner h2 {
    font-size: 28px;
    margin-bottom: 12px;
    font-weight: 500;
    margin-top: 24px;
    font-family: "Noto Serif JP", serif;
}

.page-inner p {
    font-size: 16px;
    line-height: 1.8;
}

.page-inner li {
    list-style: inside;
    font-size: 16px;
    margin-top: 12px;
}

@media (max-width:767px) {
    .page-inner {
        width: 92%;
        margin: 100px auto 80px;
    }

    .page-inner h1 {
        font-size: 28px;
    }

    .page-inner h2 {
        font-size: 22px;
    }

    .page-inner p {
        font-size: 15px;
    }

    .page-inner li {
        font-size: 15px;
    }
}