html{
	padding:0;
	margin:0;
	overflow-x:hidden;
  scroll-behavior: smooth;
}
a{
	text-decoration:none;
}
body{
	padding:0;
	margin:0;
    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Kaku Gothic ProN",
        "Hiragino Sans",
        "Yu Gothic",
        "Meiryo",
        sans-serif;
}
/* ========================================
基本設定
======================================== */

:root {
    --header-background: #fffdf7;

    --header-about: #f47b70;
    --header-member: #f7bc2f;
    --header-story: #ef839d;
    --header-works: #70b94e;
    --header-news: #9a79d3;

    --header-contact-start: #eb8791;
    --header-contact-middle: #de76b0;
    --header-contact-end: #9867f0;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Kaku Gothic ProN",
        "Hiragino Sans",
        "Yu Gothic",
        "Meiryo",
        sans-serif;
}

body.is-menu-open {
    overflow: hidden;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}


/* ========================================
ヘッダー全体
======================================== */

.site-header {
    position: relative;
    z-index: 1000;
    width: 100%;
    background-color: var(--header-background);
}

.site-header__inner {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr) 250px;
    align-items: center;
    width: 100%;
    min-height: 116px;
    margin: 0 auto;
}


/* ========================================
ロゴ
======================================== */

.site-header__logo {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    height: 100%;
    padding-left: 23px;
}

.site-header__logo-link {
    display: block;
    width: 90px;
    height: 110px;
    border-radius: 50%;
    transition:
        transform 0.3s ease,
        opacity 0.3s ease;
}

.site-header__logo-link:hover {
    transform: scale(1.04);
    opacity: 0.9;
}

.site-header__logo-image {
    display: block;
    width: 110px;
    height: 110px;
    object-fit: contain;
}


/* ========================================
PCナビゲーション
======================================== */

.site-header__nav {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    height: 100%;
    padding-right: 55px;
}

.site-header__nav-list {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: clamp(32px, 3.15vw, 45px);
    width: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-header__nav-item {
    flex-shrink: 0;
}

.site-header__nav-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 0;
    font-size: 19px;
    font-weight: 800;
    line-height: 1.4;
    letter-spacing: 0.015em;
    text-decoration: none;
    white-space: nowrap;
    transition:
        opacity 0.25s ease,
        transform 0.25s ease;
}

.site-header__nav-link::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    width: 0;
    height: 3px;
    margin: auto;
    border-radius: 999px;
    background-color: currentColor;
    content: "";
    transition: width 0.25s ease;
}

.site-header__nav-link:hover {
    opacity: 0.8;
    transform: translateY(-2px);
}

.site-header__nav-link:hover::after {
    width: 100%;
}

.site-header__nav-link--about {
    color: var(--header-about);
}

.site-header__nav-link--member {
    color: var(--header-member);
}

.site-header__nav-link--story {
    color: var(--header-story);
}

.site-header__nav-link--works {
    color: var(--header-works);
}

.site-header__nav-link--news {
    color: var(--header-news);
}


/* ========================================
右側お問い合わせCTA
======================================== */

.site-header__contact {
    align-self: start;
    width: 250px;
    height: 100px;
}

.site-header__contact-link {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    width: 100%;
    height: 100%;
    padding: 10px 21px 10px 25px;
    background:
        linear-gradient(
            120deg,
            var(--header-contact-start) 0%,
            var(--header-contact-middle) 52%,
            var(--header-contact-end) 100%
        );
    color: #ffffff;
    text-decoration: none;
    transition:
        filter 0.3s ease,
        opacity 0.3s ease;
}

.site-header__contact-link:hover {
    filter: brightness(1.06);
}

.site-header__contact-text {
    display: block;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.65;
    letter-spacing: 0.035em;
    text-align: center;
}

.site-header__contact-icon {
    position: relative;
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    margin-top: 18px;
    border-radius: 50%;
    background-color: #ffffff;
}

.site-header__contact-icon::before {
    position: absolute;
    top: 50%;
    left: 52%;
    width: 0;
    height: 0;
    border-top: 5px solid transparent;
    border-bottom: 5px solid transparent;
    border-left: 7px solid #b76bda;
    content: "";
    transform: translate(-50%, -50%);
}


/* ========================================
PCでは非表示
======================================== */

.site-header__hamburger,
.sp-menu {
    display: none;
}
/* ========================================
FV
======================================== */

.top-fv {
    position: relative;
    width: 100%;
    min-height: 616px;
    padding: 12px 0 84px;
    overflow: hidden;
    background-color: #fffdf7;
}

.top-fv__inner {
    position: relative;
    width: calc(100% - 272px);
    max-width: 1178px;
    min-height: 620px;
    margin: 0 auto;
}


/* ========================================
FV画像
======================================== */

.top-fv__visual {
    position: relative;
    width: 100%;
    height: 620px;
    overflow: hidden;
}

.top-fv__visual picture {
    display: block;
    width: 100%;
    height: 100%;
}

.top-fv__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}


/* ========================================
FVテキスト全体
======================================== */

.top-fv__content {
    position: absolute;
    top: 59px;
    left: -72px;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}


/* ========================================
FVメインコピー
======================================== */

.top-fv__title {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 25px;
    margin: 0;
    padding: 0;
}

.top-fv__title-line {
    display: block;
    color: #ffffff;
    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Kaku Gothic ProN",
        "Hiragino Sans",
        "Yu Gothic",
        "Meiryo",
        sans-serif;
    font-size: clamp(58px, 5.15vw, 76px);
    font-weight: 900;
    line-height: 1;
    letter-spacing: -0.055em;
    white-space: nowrap;

    /* 白い縁取り */
    -webkit-text-stroke: 8px #ffffff;

    /* 外側の色を影として重ねる */
    paint-order: stroke fill;
}

.top-fv__title-line--01 {
    color: #ef7fa5;

}

.top-fv__title-line--02 {
    color: #d678c3;

}

.top-fv__title-line--03 {
    color: #a270e7;
}


/* ========================================
FVサブテキスト
======================================== */

.top-fv__description {
    margin-top: 44px;
}

.top-fv__description p {
    margin: 0;
    color: #ffffff;
    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Kaku Gothic ProN",
        "Hiragino Sans",
        "Yu Gothic",
        "Meiryo",
        sans-serif;
    font-size: clamp(21px, 2.02vw, 29px);
    font-weight: 900;
    line-height: 1.65;
    letter-spacing: -0.055em;
    white-space: nowrap;

    -webkit-text-stroke: 5px #ffffff;
    paint-order: stroke fill;

    color: #ef829e;
}

.top-fv__description p + p {
    margin-top: 1px;
}


/* ========================================
Instagram追従ボタン
======================================== */

.instagram-fixed {
    position: fixed;
    right: 31px;
    bottom: 39px;
    z-index: 9000;
    display: block;
    width: 350px;
    min-height: 108px;
    padding: 5px;
    border-radius: 999px;
    background:
        linear-gradient(
            90deg,
            #ff7c94 0%,
            #ee76b5 46%,
            #8761f8 100%
        );
    text-decoration: none;
    box-shadow:
        0 8px 24px rgba(111, 79, 190, 0.12);
    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease,
        filter 0.3s ease;
}

.instagram-fixed::before {
    position: absolute;
    inset: 5px;
    z-index: 0;
    border-radius: inherit;
    background-color: #ffffff;
    content: "";
}

.instagram-fixed__inner {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    width: 100%;
    min-height: 98px;
    padding: 18px 27px;
    border-radius: inherit;
}

.instagram-fixed__icon {
    display: block;
    flex: 0 0 auto;
    width: 42px;
    height: 42px;
    object-fit: contain;
}

.instagram-fixed__text {
    display: inline-block;
    background:
        linear-gradient(
            90deg,
            #ff7d95 0%,
            #e475bd 52%,
            #8461f4 100%
        );
    background-clip: text;
    color: transparent;
    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Kaku Gothic ProN",
        "Hiragino Sans",
        "Yu Gothic",
        "Meiryo",
        sans-serif;
    font-size: 18px;
    font-weight: 900;
    line-height: 1.4;
    letter-spacing: 0.015em;
    white-space: nowrap;

    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.instagram-fixed:hover {
    filter: brightness(1.04);
    transform: translateY(-4px);
    box-shadow:
        0 14px 30px rgba(111, 79, 190, 0.2);
}

.instagram-fixed:focus-visible {
    outline: 4px solid rgba(135, 97, 248, 0.35);
    outline-offset: 4px;
}


/* ========================================
大画面での最大幅調整
======================================== */

@media screen and (min-width: 1453px) {

    .top-fv__inner {
        max-width: 1178px;
    }
}
/* ========================================
新着情報セクション
======================================== */

.top-news {
    position: relative;
    width: 100%;
    padding: 61px 0 67px;
    overflow: hidden;
    background-color: #ffffff;
}

.top-news__inner {
    display: grid;
    grid-template-columns: 35.4% 64.6%;
    width: 100%;
    max-width: 1452px;
    min-height: 357px;
    margin: 0 auto;
    padding: 0 65px;
}


/* ========================================
左側見出し
======================================== */

.top-news__heading {
    padding-top: 1px;
}

.top-news__heading-ja {
    margin: 0 0 11px;
    color: #f4859a;
    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;
    font-size: 24px;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.01em;
}

.top-news__heading-en {
    display: inline-block;
    margin: 0;
    background:
        linear-gradient(
            135deg,
            #ff8793 0%,
            #e77bbd 48%,
            #8a69f3 100%
        );
    background-clip: text;
    color: transparent;
    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        sans-serif;
    font-size: 72px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: -0.045em;

    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}


/* ========================================
右側記事一覧
======================================== */

.top-news__content {
    width: 100%;
}

.top-news__list {
    width: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
}

.top-news__item {
    width: 100%;
}

.top-news__link {
    display: grid;
    grid-template-columns: 145px 72px minmax(0, 1fr);
    align-items: center;
    column-gap: 23px;
    width: 100%;
    min-height: 64px;
    color: #26222a;
    text-decoration: none;
    transition:
        opacity 0.25s ease,
        transform 0.25s ease;
}

.top-news__link:hover {
    opacity: 0.65;
    transform: translateX(4px);
}


/* 投稿日 */

.top-news__date {
    display: block;
    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        sans-serif;
    font-size: 22px;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: -0.025em;
    white-space: nowrap;
}


/* カテゴリー */

.top-news__category {
    display: block;
    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        sans-serif;
    font-size: 22px;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0;
    white-space: nowrap;
}


/* タイトル */

.top-news__title {
    display: block;
    min-width: 0;
    overflow: hidden;
    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        sans-serif;
    font-size: 22px;
    font-weight: 400;
    line-height: 1.55;
    letter-spacing: 0.005em;
    text-overflow: ellipsis;
    white-space: nowrap;
}


/* 投稿がない場合 */

.top-news__empty {
    margin: 0;
    padding-top: 8px;
    color: #26222a;
    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        sans-serif;
    font-size: 18px;
    font-weight: 400;
    line-height: 1.8;
}
/* ========================================
ブログセクション
======================================== */

.top-blog {
    position: relative;
    width: 100%;
    padding: 0px 0 120px;
    overflow: hidden;
    background-color: #ffffff;
}

.top-blog__inner {
    position: relative;
    width: 100%;
}


/* ========================================
ブログ見出し
======================================== */

.top-blog__heading {
    width: 100%;
    padding-left: 4.1vw;
}

.top-blog__heading-ja {
    margin: 0 0 17px;
    color: #ef8499;
    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;
    font-size: 29px;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.01em;
}

.top-blog__heading-en {
    display: inline-block;
    margin: 0;
    padding: 0 18px 14px 0;

    background:
        linear-gradient(
            120deg,
            #f37f91 0%,
            #d877bc 50%,
            #8267f3 100%
        );

    background-clip: text;
    color: transparent;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        sans-serif;

    font-size: 94px;
    font-weight: 300;
    line-height: 1.15;
    letter-spacing: -0.04em;
    white-space: nowrap;
    overflow: visible;

    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}


/* ========================================
スライダー外枠
======================================== */

.top-blog__slider-wrap {
    width: 100%;
    margin-top: 63px;
    padding-left: 4.1vw;
}

.top-blog__slider {
    width: 100%;
    overflow: visible;
}

.top-blog__slider-wrapper {
    align-items: stretch;
}
/* 記事を並べているラッパー */
.top-blog__slider .swiper-wrapper {
    display: flex;
    gap: 40px;
}


/* ========================================
ブログスライド
======================================== */

.top-blog__slide {
    width: 370px !important;
    flex-shrink: 0;
}

.top-blog__card {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    color: #25212a;
    text-decoration: none;
}


/* ========================================
サムネイル
======================================== */

.top-blog__thumbnail {
    position: relative;
    width: 100%;
    aspect-ratio: 513 / 323;
    overflow: hidden;
    background-color: #f2f2f2;
}

.top-blog__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition:
        transform 0.55s cubic-bezier(0.22, 1, 0.36, 1),
        filter 0.35s ease;
}

.top-blog__card:hover .top-blog__image {
    transform: scale(1.045);
    filter: brightness(0.94);
}


/* ========================================
投稿情報
======================================== */

.top-blog__body {
    width: 100%;
    padding-top: 17px;
}

.top-blog__date {
    display: block;
    margin-bottom: 8px;
    color: #8b8790;
    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.04em;
}

.top-blog__title {
    display: -webkit-box;
    margin: 0;
    overflow: hidden;
    color: #25212a;
    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;
    font-size: 19px;
    font-weight: 400;
    line-height: 1.65;
    letter-spacing: 0.015em;
    transition: color 0.25s ease;

    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.top-blog__card:hover .top-blog__title {
    color: #d979af;
}


/* ========================================
スライド操作ボタン
======================================== */

.top-blog__navigation {
    display: flex;
    align-items: center;
    gap: 13px;
    margin-top: 39px;
    padding-left: 4.1vw;
}

.top-blog__arrow {
    position: relative;
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 59px;
    height: 59px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background:
        linear-gradient(
            115deg,
            #f58394 0%,
            #da76bb 51%,
            #8764f4 100%
        );
    cursor: pointer;
    appearance: none;
    transition:
        transform 0.25s ease,
        filter 0.25s ease,
        opacity 0.25s ease;
}

.top-blog__arrow:hover {
    filter: brightness(1.06);
    transform: translateY(-3px);
}

.top-blog__arrow:focus-visible {
    outline: 3px solid rgba(135, 100, 244, 0.3);
    outline-offset: 4px;
}


/* ========================================
矢印アイコン
======================================== */

.top-blog__arrow-icon {
    position: relative;
    display: block;
    width: 28px;
    height: 7px;
    border-radius: 999px;
    background-color: #ffffff;
}

.top-blog__arrow-icon::before,
.top-blog__arrow-icon::after {
    position: absolute;
    width: 13px;
    height: 7px;
    border-radius: 999px;
    background-color: #ffffff;
    content: "";
}

.top-blog__arrow-icon--prev::before {
    top: -4px;
    left: -1px;
    transform: rotate(-42deg);
    transform-origin: left center;
}

.top-blog__arrow-icon--prev::after {
    bottom: -4px;
    left: -1px;
    transform: rotate(42deg);
    transform-origin: left center;
}

.top-blog__arrow-icon--next::before {
    top: -4px;
    right: -1px;
    transform: rotate(42deg);
    transform-origin: right center;
}

.top-blog__arrow-icon--next::after {
    right: -1px;
    bottom: -4px;
    transform: rotate(-42deg);
    transform-origin: right center;
}


/* ========================================
Swiperボタン無効時
======================================== */

.top-blog__arrow.swiper-button-disabled {
    opacity: 0.35;
    cursor: default;
    pointer-events: none;
    transform: none;
}


/* ========================================
記事がない場合
======================================== */

.top-blog__empty {
    margin: 50px 4.1vw 0;
    color: #25212a;
    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        sans-serif;
    font-size: 17px;
    font-weight: 400;
    line-height: 1.8;
}


/* ========================================
大画面時の調整
======================================== */

@media screen and (min-width: 1600px) {

    .top-blog__heading,
    .top-blog__slider-wrap,
    .top-blog__navigation {
        padding-left: 78px;
    }

    .top-blog__slide {
        width: 513px;
    }
}
/* ========================================
ABOUT US
======================================== */

.top-about {
    position: relative;
    width: 100%;
    padding: 120px 0 105px;
    overflow: hidden;
    background-color: #ffffff;
}

.top-about__inner {
    position: relative;
    width: 100%;
    max-width: 1450px;
    min-height: 1010px;
    margin: 0 auto;
}


/* ========================================
左上の人物
======================================== */

.top-about__person {
    position: absolute;
    top: -49px;
    left: 26px;
    z-index: 3;
    width: 214px;
    pointer-events: none;
}
.top-about__person-2 {
    position: absolute;
    top: 230px;
    left: 26px;
    z-index: 3;
    width:90px;
    pointer-events: none;
}
.top-about__person-image {
    display: block;
    width: 100%;
    height: auto;

    /* 赤い影 */
    filter:
        drop-shadow(8px 7px 5px rgba(229, 66, 88, 0.34))
        drop-shadow(2px 2px 1px rgba(229, 66, 88, 0.22));
}
.top-about__person-image-2 {
    display: block;
    width: 100%;
    height: auto;

    /* 赤い影 */
filter:
    drop-shadow(-7px 2px 9px rgba(46, 184, 92, 0.30))
    drop-shadow(0 0 18px rgba(68, 255, 124, 0.21));
}

/* ========================================
見出し
======================================== */

.top-about__heading {
    position: relative;
    z-index: 2;
    width: 100%;
    text-align: center;
}

.top-about__heading-ja {
    margin: 0 0 5px;
    color: #ef8099;
    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;
    font-size: 22px;
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: 0.01em;
}

.top-about__heading-en {
    display: inline-block;
    width: max-content;
    margin: 0;
    padding: 0 8px 10px;
    background:
        linear-gradient(
            110deg,
            #f27f93 0%,
            #d677bb 52%,
            #8066f3 100%
        );
    background-clip: text;
    color: transparent;
    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        sans-serif;
    font-size: 68px;
    font-weight: 300;
    line-height: 1.18;
    letter-spacing: -0.035em;
    white-space: nowrap;

    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}


/* ========================================
メインコピー
======================================== */

.top-about__lead {
    position: relative;
    z-index: 2;
    margin-top: 31px;
    text-align: center;
}

.top-about__lead p {
    margin: 0;
    color: #ff7787;
    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        sans-serif;
    font-size: 28px;
    font-weight: 800;
    line-height: 1.65;
    letter-spacing: 0.005em;
}

.top-about__lead p + p {
    margin-top: 0;
}


/* ========================================
共通レイアウト
======================================== */

.top-about__row {
    position: relative;
    display: grid;
    grid-template-columns: 340px minmax(500px, 620px) 340px;
    justify-content: space-between;
    align-items: start;
    width: 100%;
	font-weight:700;
}

.top-about__row--01 {
    margin-top: 11px;
	font-weight:700;
}

.top-about__row--02 {
    margin-top: 89px;
	font-weight:700;
}


/* ========================================
写真共通
======================================== */

.top-about__photo {
    position: relative;
    z-index: 1;
    width: 100%;
    margin: 0;
}

.top-about__photo-frame {
    position: relative;
    width: 100%;
    height: 250px;
}

.top-about__photo-frame::after {
    position: absolute;
    z-index: -1;
    content: "";
}

.top-about__photo-image {
    position: relative;
    z-index: 2;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}


/* 左上画像 */

.top-about__photo--01 {
    margin-left: -6px;
}

.top-about__photo--01 .top-about__photo-frame::after {
    right: -9px;
    bottom: -10px;
    width: 100%;
    height: 100%;
    background-color: #f1a8b3;
}


/* 右上画像 */

.top-about__photo--02 {
    margin-right: -1px;
}

.top-about__photo--02 .top-about__photo-frame::after {
    left: -9px;
    bottom: -10px;
    width: 100%;
    height: 100%;
    background-color: #abd99e;
}


/* 左下画像 */

.top-about__photo--03 {
    margin-left: -6px;
}

.top-about__photo--03 .top-about__photo-frame {
    height: 326px;
}

.top-about__photo--03 .top-about__photo-frame::after {
    right: -10px;
    bottom: -10px;
    width: 100%;
    height: 100%;
    background-color: #f1d88b;
}


/* 右下画像 */

.top-about__photo--04 {
    margin-right: -1px;
}

.top-about__photo--04 .top-about__photo-frame {
    height: 326px;
}

.top-about__photo--04 .top-about__photo-frame::after {
    left: -10px;
    bottom: -10px;
    width: 100%;
    height: 100%;
    background-color: #c2a6e8;
}


/* ========================================
中央文章
======================================== */

.top-about__text {
    position: relative;
    z-index: 2;
    width: 100%;
    text-align: center;
}

.top-about__text--01 {
    padding-top: 34px;
}

.top-about__text--02 {
    padding-top: 0;
}

.top-about__text p {
    margin: 0;
    color: #28242b;
    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;
    font-size: 18px;
    font-weight: 700;
    line-height: 2.5;
    letter-spacing: 0.015em;
}

.top-about__text p + p {
    margin-top: 58px;
}


/* ========================================
画面幅調整
======================================== */

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

    .top-about__inner {
        max-width: 1200px;
    }

    .top-about__row {
        grid-template-columns: 300px minmax(440px, 540px) 300px;
    }

    .top-about__photo-frame {
        height: 225px;
    }

    .top-about__photo--03 .top-about__photo-frame,
    .top-about__photo--04 .top-about__photo-frame {
        height: 285px;
    }

    .top-about__text p {
        font-size: 16px;
		font-weight:700;
    }
}
/* ========================================
PIA BOYS DATA
======================================== */

.top-data {
    position: relative;
    width: 100%;
    min-height: 890px;
    padding: 63px 0 88px;
    overflow: hidden;
    background-color: #fbf7ef;
}


/* ========================================
背景装飾
======================================== */

.top-data__background {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
}

/*
大きな白い曲線を複数重ねて、
スクリーンショットの柔らかい背景を再現
*/
.top-data__background::before {
    position: absolute;
    top: -260px;
    left: -190px;
    width: 970px;
    height: 920px;
    border-radius: 48% 52% 55% 45% / 54% 42% 58% 46%;
    background-color: rgba(255, 255, 255, 0.62);
    content: "";
    transform: rotate(-8deg);
}

.top-data__background::after {
    position: absolute;
    top: -210px;
    right: -340px;
    width: 1210px;
    height: 1120px;
    border-radius: 52% 48% 44% 56% / 45% 58% 42% 55%;
    background-color: rgba(255, 255, 255, 0.50);
    content: "";
    transform: rotate(7deg);
}


/* 下側の白い曲線 */

.top-data::before {
    position: absolute;
    right: 7%;
    bottom: -550px;
    z-index: 0;
    width: 1170px;
    height: 830px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.44);
    content: "";
    pointer-events: none;
}


/* ========================================
内部レイアウト
======================================== */

.top-data__inner {
    position: relative;
    z-index: 2;
    width: 100%;
    min-height: 730px;
}


/* ========================================
左側縦書きタイトル
======================================== */

.top-data__side-title {
    position: absolute;
    top: 25px;
    left: 4.1vw;
    z-index: 3;

    display: block;

    background:
        linear-gradient(
            180deg,
            #f5a8b4 0%,
            #efb7c7 34%,
            #d7bce5 69%,
            #b9acf4 100%
        );

    background-clip: text;
    color: transparent;

    font-family:
        "M PLUS Rounded 1c",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Kaku Gothic ProN",
        "Hiragino Sans",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size:160px;
    font-weight: 400;
    line-height: 0.92;
    letter-spacing: 0.07em;
    white-space: nowrap;

    writing-mode: vertical-rl;
    text-orientation: mixed;

    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}


/* ========================================
カードグリッド
======================================== */

.top-data__grid {
    display: grid;
    grid-template-columns: repeat(2, 360px);
    justify-content: space-between;
    row-gap: 108px;

    width: min(58vw, 940px);
    margin-left: 20.9vw;
}


/* ========================================
共通カード
======================================== */

.top-data__card {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;

    width: 360px;
    height: 312px;

    border: 6px solid var(--data-color);
    background-color: rgba(255, 255, 255, 0.86);
}

.top-data__card-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    width: 100%;
    padding: 18px 24px 15px;
    text-align: center;
}


/* ========================================
各カードの色
======================================== */

.top-data__card--performance {
    --data-color: #efbd31;
}

.top-data__card--visitors {
    --data-color: #68aa67;
}

.top-data__card--year {
    --data-color: #ec8299;
}

.top-data__card--members {
    --data-color: #9171d1;
}


/* ========================================
数値
======================================== */

.top-data__number {
    display: flex;
    align-items: flex-end;
    justify-content: center;

    min-height: 102px;
    margin: 0;
    white-space: nowrap;
}

.top-data__number-main {
    display: inline-block;

    background:
        linear-gradient(
            100deg,
            #ff7886 0%,
            #f37c9c 30%,
            #bc70db 65%,
            #7266f6 100%
        );

    background-clip: text;
    color: transparent;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: 73px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: -0.055em;

    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}


/* 1,171のみ文字幅が大きいため少し調整 */

.top-data__card--visitors .top-data__number-main {
    font-size: 69px;
}


/* 2,022のみ文字幅が大きいため少し調整 */

.top-data__card--year .top-data__number-main {
    font-size: 68px;
}


/* 5のみ少し大きく */

.top-data__card--members .top-data__number-main {
    font-size: 78px;
}


/* ========================================
単位
======================================== */

.top-data__unit {
    display: inline-block;
    margin: 0 0 9px 10px;

    color: var(--data-color);

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        sans-serif;

    font-size: 26px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0;
}


/* 回の単位は数値との距離を狭める */

.top-data__card--performance .top-data__unit {
    margin-left: 8px;
}


/* ========================================
項目名
======================================== */

.top-data__label {
    margin: 28px 0 0;
    color: var(--data-color);

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: 24px;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.01em;
}

.top-data__card--performance .top-data__label {
    margin-top: 25px;
}

.top-data__card--members .top-data__label {
    margin-top: 24px;
}


/* ========================================
右下人物
======================================== */

.top-data__person {
    position: absolute;
    right: 0;
    bottom: -4px;
    z-index: 4;

    width: clamp(205px, 15.5vw, 270px);
    pointer-events: none;
}

.top-data__person-image {
    display: block;
    width: 100%;
    height: auto;

    filter:
        drop-shadow(-7px 2px 9px rgba(232, 184, 46, 0.30))
        drop-shadow(0 0 18px rgba(255, 210, 68, 0.21));
}


/* ========================================
中間幅調整
======================================== */

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

    .top-data__grid {
        grid-template-columns: repeat(2, 320px);
        width: 760px;
        margin-left: 21vw;
    }

    .top-data__card {
        width: 320px;
        height: 285px;
    }

    .top-data__number-main {
        font-size: 64px;
    }

    .top-data__card--visitors .top-data__number-main,
    .top-data__card--year .top-data__number-main {
        font-size: 60px;
    }

    .top-data__label {
        font-size: 21px;
    }

}
/* ========================================
メンバー紹介
======================================== */

.top-member {
    position: relative;
    width: 100%;
    padding: 55px 0 88px;
    overflow: hidden;
    background-color: #ffffff;
}

.top-member__inner {
    width: 100%;
}


/* ========================================
見出し
======================================== */

.top-member__heading {
    padding-left: 4.1vw;
}

.top-member__heading-ja {
    margin: 0 0 11px;
    color: #ef8499;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: 28px;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.02em;
}

.top-member__heading-en {
    display: inline-block;
    margin: 0;
    padding: 0 12px 10px 0;

    background:
        linear-gradient(
            100deg,
            #ff7e8c 0%,
            #ed7ead 38%,
            #b971df 70%,
            #7167f5 100%
        );

    background-clip: text;
    color: transparent;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        sans-serif;

    font-size: 79px;
    font-weight: 300;
    line-height: 1.1;
    letter-spacing: -0.045em;

    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}


/* ========================================
メンバー一覧
======================================== */

.top-member__list {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 18px;

    width: calc(100% - 7.6vw);
    max-width: 1480px;
    margin: 78px auto 0;
}


/* ========================================
メンバーカード共通
======================================== */

.top-member__item {
    --member-color: 230, 104, 102;

    position: relative;
    display: block;

    width: 100%;
    height: 694px;
    padding: 0;
    overflow: hidden;

    border: 0;
    background: transparent;
    cursor: pointer;

    /*
    左上と右下を斜めにする
    */
    clip-path: polygon(
        34px 0,
        100% 0,
        calc(100% - 34px) 100%,
        0 100%
    );
    appearance: none;
    transition:
        transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
        filter 0.35s ease;
}

.top-member__item:hover {
    z-index: 2;
    filter: brightness(1.03);
    transform: translateY(-10px);
}

.top-member__item:focus-visible {
    outline: 4px solid rgba(var(--member-color), 0.4);
    outline-offset: 6px;
}


/* ========================================
メンバーカラー
======================================== */

.top-member__item--red {
    --member-color: 225, 94, 89;
}

.top-member__item--yellow {
    --member-color: 238, 193, 45;
}

.top-member__item--pink {
    --member-color: 222, 108, 138;
}

.top-member__item--green {
    --member-color: 86, 170, 80;
}

.top-member__item--purple {
    --member-color: 139, 101, 198;
}


/* ========================================
画像
======================================== */

.top-member__image-wrap {
    position: absolute;
    inset: 0;
    display: block;
}

.top-member__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;

    transition:
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1),
        filter 0.35s ease;
}

.top-member__item:hover .top-member__image {
    filter: brightness(1.02);
    transform: scale(1.035);
}


/* ========================================
下半分カラーオーバーレイ
======================================== */

.top-member__overlay {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;

    display: flex;
    flex-direction: column;
    align-items: center;

    min-height: 313px;
    padding: 69px 20px 36px;

    background-color: rgba(var(--member-color), 0.78);
    color: #ffffff;
    text-align: center;
}

.top-member__color-name {
    display: block;
    margin-bottom: 13px;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        sans-serif;

    font-size: 25px;
    font-weight: 700;
    line-height: 1.4;
}


/* ========================================
ニックネーム白ラベル
======================================== */

.top-member__nickname {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-width: 126px;
    min-height: 39px;
    padding: 3px 24px;
    border-radius: 999px;
    background-color: #ffffff;
    color: rgb(var(--member-color));

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        sans-serif;

    font-size: 23px;
    font-weight: 700;
    line-height: 1.3;
}

.top-member__job {
    display: block;
    margin-top: 16px;
    color: #ffffff;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        sans-serif;

    font-size: 18px;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: 0.01em;
}


/* ========================================
メンバーモーダル
======================================== */

.member-modal {
    position: fixed;
    inset: 0;
    z-index: 10000;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 100%;
    height: 100%;
    padding: 20px;

    visibility: hidden;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;

    transition:
        visibility 0.3s ease,
        opacity 0.3s ease;
}

.member-modal.is-open {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
}


/* ========================================
背景
======================================== */

.member-modal__backdrop {
    position: absolute;
    inset: 0;

    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;

    background-color: rgba(24, 20, 30, 0.72);
    cursor: pointer;
    appearance: none;
}


/* ========================================
モーダル本体
======================================== */

.member-modal__dialog {
    --modal-color: #9472cb;

    position: relative;
    z-index: 2;

    display: grid;
    grid-template-columns: 40% 60%;

    /*
    必ず画面内に収まるサイズ
    */
    width: min(900px, calc(100vw - 50px));
    height: min(590px, calc(100dvh - 40px));
    max-width: 900px;
    max-height: calc(100dvh - 40px);

    overflow: hidden;

    background-color: #ffffff;
    box-shadow: 0 18px 60px rgba(0, 0, 0, 0.26);

    opacity: 0;
    transform: translateY(18px) scale(0.97);

    transition:
        opacity 0.3s ease,
        transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.member-modal.is-open .member-modal__dialog {
    opacity: 1;
    transform: translateY(0) scale(1);
}


/* ========================================
メンバーごとの色
======================================== */

.member-modal__dialog[data-modal-color="red"] {
    --modal-color: #d96967;
}

.member-modal__dialog[data-modal-color="yellow"] {
    --modal-color: #dfb52e;
}

.member-modal__dialog[data-modal-color="pink"] {
    --modal-color: #dc708b;
}

.member-modal__dialog[data-modal-color="green"] {
    --modal-color: #64a85e;
}

.member-modal__dialog[data-modal-color="purple"] {
    --modal-color: #9472cb;
}


/* ========================================
左側画像
======================================== */

.member-modal__visual {
    position: relative;

    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;

    overflow: hidden;
    background-color: #eeeeee;
}

.member-modal__image {
    display: block;

    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;

    object-fit: cover;
    object-position: center top;
}


/* ========================================
右側プロフィール
======================================== */

.member-modal__content {
    display: grid;
    grid-template-rows: repeat(3, minmax(0, 1fr));
    gap: 20px;

    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;

    padding: 34px 38px;
    overflow: hidden;

    background-color: #ffffff;
}


/* ========================================
プロフィールパネル
======================================== */

.member-modal__panel,
.member-modal__panel--name {
    position: relative;

    display: flex;
    flex-direction: column;
    justify-content: center;

    width: 100%;
    min-width: 0;
    min-height: 0;

    padding: 18px 28px;

    overflow: hidden;
    background-color: var(--modal-color);
    color: #ffffff;
}


/* 項目名 */

.member-modal__panel-label {
    flex-shrink: 0;

    margin: 0 0 7px;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: 21px;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: 0;
}


/* 内容 */

.member-modal__panel-value,
.member-modal__panel-value--large {
    position: relative;

    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0 0 9px;

    overflow-wrap: anywhere;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: clamp(29px, 2.5vw, 40px);
    font-weight: 700;
    line-height: 1.12;
    letter-spacing: -0.04em;
}

.member-modal__panel-value--large {
    font-size: clamp(34px, 3vw, 47px);
}


/* 下線 */

.member-modal__panel-value::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;

    height: 2px;
    background-color: #ffffff;
    content: "";
}


/* ========================================
閉じるボタン
======================================== */

.member-modal__close {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 5;

    width: 43px;
    height: 43px;
    padding: 0;

    border: 0;
    border-radius: 50%;

    background-color: rgba(255, 255, 255, 0.96);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.14);

    cursor: pointer;
    appearance: none;

    transition:
        transform 0.25s ease,
        background-color 0.25s ease;
}

.member-modal__close:hover {
    background-color: #ffffff;
    transform: rotate(90deg);
}

.member-modal__close span {
    position: absolute;
    top: 50%;
    left: 50%;

    width: 19px;
    height: 2px;

    border-radius: 999px;
    background-color: #333333;
}

.member-modal__close span:first-child {
    transform: translate(-50%, -50%) rotate(45deg);
}

.member-modal__close span:last-child {
    transform: translate(-50%, -50%) rotate(-45deg);
}


/* ========================================
モーダル表示中
======================================== */

body.is-member-modal-open {
    overflow: hidden;
}
/* ========================================
Gallery
======================================== */

.top-gallery{

    padding:120px 0;

    overflow:hidden;

    background:#fff;

}

.top-gallery__track{

    overflow:hidden;

}

.top-gallery__track + .top-gallery__track{

    margin-top:40px;

}

.top-gallery__inner{

    display:flex;

    width:max-content;

}

.top-gallery__track--top .top-gallery__inner{

    animation:gallery-left 120s linear infinite;

}

.top-gallery__track--bottom .top-gallery__inner{

    animation:gallery-right 120s linear infinite;

}

.top-gallery__item{

    flex:none;

    width:328px;

    margin-right:46px;

}

.top-gallery__item img{

    display:block;

    width:100%;

    aspect-ratio:328/243;

    object-fit:cover;

}

@keyframes gallery-left{

    from{

        transform:translateX(0);

    }

    to{

        transform:translateX(-50%);

    }

}

@keyframes gallery-right{

    from{

        transform:translateX(-50%);

    }

    to{

        transform:translateX(0);

    }

}
/* ========================================
結成ストーリー
======================================== */

.top-story {
    position: relative;
    width: 100%;
    min-height: 1460px;
    padding: 82px 0 120px;
    overflow: hidden;
    background-color: #ffffff;
}

.top-story__inner {
    position: relative;
    width: 100%;
    min-height: 1260px;
}


/* ========================================
見出し
======================================== */

.top-story__heading {
    position: relative;
    z-index: 5;
    padding-left: 4.1vw;
}

.top-story__heading-ja {
    display: inline-block;
    margin: 0;
    padding: 0 12px 10px 0;

    background:
        linear-gradient(
            100deg,
            #ff7c87 0%,
            #ed7ead 44%,
            #a66de5 76%,
            #7768f2 100%
        );

    background-clip: text;
    color: transparent;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: clamp(50px, 4.1vw, 68px);
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: 0.02em;

    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}


/* ========================================
中央タイムライン
======================================== */

.top-story__timeline {
    position: relative;
    z-index: 4;

    width: min(590px, 42vw);
    margin: 104px auto 0;
    padding: 0 0 15px 38px;
}


/* 縦ライン */

.top-story__timeline::before {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 8px;

    width: 4px;
    border-radius: 999px;

    background:
        linear-gradient(
            180deg,
            #f27f9e 0%,
            #d778bf 45%,
            #976be4 100%
        );

    content: "";
}


/* ========================================
各ストーリー
======================================== */

.top-story__item {
    position: relative;
    width: 100%;
}

.top-story__item + .top-story__item {
    margin-top: 58px;
}


/* 丸いノード */

.top-story__node {
    position: absolute;
    top: 9px;
    left: -44px;

    width: 30px;
    height: 30px;

    border-radius: 50%;

    background:
        linear-gradient(
            135deg,
            #f7869e 0%,
            #d877bd 48%,
            #8f68ec 100%
        );

    box-shadow:
        0 4px 10px rgba(210, 113, 183, 0.18);

    content: "";
}


/* ========================================
日付
======================================== */

.top-story__date {
    margin: 0 0 1px;
    color: #151515;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: 17px;
    font-weight: 700;
    line-height: 1.45;
    letter-spacing: 0.01em;
}


/* ========================================
タイトル
======================================== */

.top-story__title {
    margin: 0 0 13px;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: 25px;
    font-weight: 500;
    line-height: 1.45;
    letter-spacing: 0.01em;
}

.top-story__title--red {
    color: #ff737a;
}

.top-story__title--yellow {
    color: #f2bc28;
}

.top-story__title--pink {
    color: #ec7f99;
}

.top-story__title--green {
    color: #58ad5b;
}

.top-story__title--purple {
    color: #9368d8;
}


/* ========================================
本文
======================================== */

.top-story__text {
    margin: 0;
    color: #161616;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: 15px;
    font-weight: 500;
    line-height: 1.9;
    letter-spacing: 0.015em;
}


/* ========================================
左右の写真
======================================== */

.top-story__side {
    position: absolute;
    top: 0;
    bottom: 0;
    z-index: 1;
    width: 19vw;
    max-width: 285px;
    pointer-events: none;
}

.top-story__side--left {
    left: 0;
}

.top-story__side--right {
    right: 0;
}

.top-story__photo {
    position: absolute;
    width: 100%;
    margin: 0;
    overflow: hidden;
    background-color: #eeeeee;
}

.top-story__photo-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}


/* 左側1枚目 */

.top-story__photo--left01 {
    top: 250px;
    left: 0;
    height: 273px;
}

.top-story__photo--left01 .top-story__photo-image {
    object-position: center;
}


/* 左側2枚目 */

.top-story__photo--left02 {
    top: 592px;
    left: 0;
    height: 274px;
}

.top-story__photo--left02 .top-story__photo-image {
    object-position: center;
}


/* 左側3枚目 */

.top-story__photo--left03 {
    top: 933px;
    left: 0;
    height: 274px;
}

.top-story__photo--left03 .top-story__photo-image {
    object-position: center;
}


/* 右側1枚目 */

.top-story__photo--right01 {
    top: 160px;
    right: 0;
    height: 268px;
}

.top-story__photo--right01 .top-story__photo-image {
    object-position: center;
}


/* 右側2枚目 */

.top-story__photo--right02 {
    top: 494px;
    right: 0;
    height: 275px;
}

.top-story__photo--right02 .top-story__photo-image {
    object-position: center;
}


/* 右側3枚目 */

.top-story__photo--right03 {
    top: 838px;
    right: 0;
    height: 274px;
}

.top-story__photo--right03 .top-story__photo-image {
    object-position: center;
}


/* ========================================
右上・右下人物
======================================== */

.top-story__person {
    position: absolute;
    z-index: 3;
    pointer-events: none;
}

.top-story__person-image {
    display: block;
    width: 100%;
    height: auto;
}


/* 右上のピンク */

.top-story__person--pink {
    top: -48px;
    right: -5px;
    width: clamp(130px, 10vw, 170px);
}

.top-story__person--pink .top-story__person-image {
    filter:
        drop-shadow(-3px 2px 8px rgba(236, 98, 151, 0.34))
        drop-shadow(0 0 11px rgba(236, 98, 151, 0.20));
}


/* 右下のグリーン */

.top-story__person--green {
    right: 4.3vw;
    bottom: -105px;
    width: clamp(100px, 8vw, 135px);
}

.top-story__person--green .top-story__person-image {
    filter:
        drop-shadow(-2px 2px 7px rgba(76, 178, 96, 0.30))
        drop-shadow(0 0 10px rgba(76, 178, 96, 0.16));
}
.top-story__person--purple {
    right: 4.3vw;
    bottom: -105px;
    width: clamp(100px, 8vw, 135px);
}

/* ========================================
中間幅調整
======================================== */

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

    .top-story {
        min-height: 1400px;
    }

    .top-story__timeline {
        width: 540px;
    }

    .top-story__side {
        width: 17vw;
    }

    .top-story__text {
        font-size: 14px;
    }

    .top-story__title {
        font-size: 23px;
    }

}
/* ========================================
INSTAGRAM CTA
======================================== */

.top-instagram {
    position: relative;
    width: 100%;
    min-height: 615px;
    padding: 73px 0 82px;
    overflow: hidden;

    /*
    完全な白ではなく、
    添付デザインの薄いグレー
    */
    background-color: #f1f1f1;
}


/* ========================================
背景装飾
======================================== */

.top-instagram__background {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    pointer-events: none;
}


/* 共通 */

.top-instagram__shape {
    position: absolute;
    display: block;
    background-color: rgba(255, 255, 255, 0.66);
}


/* 左側の大きな曲線 */

.top-instagram__shape--left {
    top: -118px;
    left: -250px;

    width: 760px;
    height: 910px;

    border-radius:
        48% 52% 45% 55% /
        36% 42% 58% 64%;

    transform: rotate(8deg);
}


/* 中央の縦長曲線 */

.top-instagram__shape--center {
    top: -165px;
    left: 34%;

    width: 390px;
    height: 860px;

    border-radius:
        50% 50% 46% 54% /
        54% 42% 58% 46%;

    background-color: rgba(255, 255, 255, 0.57);
    transform: rotate(-8deg);
}


/* 右側の大きな曲線 */

.top-instagram__shape--right {
    top: -225px;
    right: -360px;

    width: 980px;
    height: 980px;

    border-radius:
        46% 54% 56% 44% /
        52% 42% 58% 48%;

    background-color: rgba(255, 255, 255, 0.62);
    transform: rotate(7deg);
}


/* ========================================
内部レイアウト
======================================== */

.top-instagram__inner {
    position: relative;
    z-index: 2;

    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(460px, 0.9fr);
    align-items: center;
    column-gap: 70px;

    width: 100%;
    min-height: 460px;

    padding: 0 5.3vw 0 2.8vw;
}


/* ========================================
左側コンテンツ
======================================== */

.top-instagram__content {
    position: relative;
    min-width: 0;
}


/* ========================================
見出し
======================================== */

.top-instagram__title {
    display: flex;
    flex-direction: column;
    align-items: flex-start;

    margin: 0;
}


/* 英字 */

.top-instagram__title-en {
    display: inline-block;

    padding: 0 12px 5px 0;

    background:
        linear-gradient(
            100deg,
            #ff7986 0%,
            #ec78aa 42%,
            #b46ce3 76%,
            #7a66f4 100%
        );

    background-clip: text;
    color: transparent;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: 70px;
    font-weight: 300;
    line-height: 1.07;
    letter-spacing: -0.045em;

    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}


/* 日本語 */

.top-instagram__title-ja {
    display: inline-block;

    margin-top: 19px;
    padding: 0 12px 8px 0;

    background:
        linear-gradient(
            100deg,
            #ff7884 0%,
            #ed78a8 40%,
            #ae6ce5 72%,
            #7264f8 100%
        );

    background-clip: text;
    color: transparent;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size:50px;
    font-weight: 400;
    line-height: 1.22;
    letter-spacing: 0.005em;

    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}


/* ========================================
説明文
======================================== */

.top-instagram__description {
    margin-top: 59px;
}

.top-instagram__description p {
    margin: 0;

    color: #29242c;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size:28px;
    font-weight: 500;
    line-height: 1.65;
    letter-spacing: 0.005em;
}

.top-instagram__description p + p {
    margin-top: 13px;
}


/* ========================================
右側CTA
======================================== */

.top-instagram__action {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 100%;
}


/* ========================================
ボタン
======================================== */

.top-instagram__button {
    position: relative;

    display: flex;
    align-items: center;
    justify-content: center;

    width: min(100%, 535px);
    min-height: 116px;

    padding: 22px 42px;

    overflow: hidden;

    border-radius: 999px;

    background:
        linear-gradient(
            100deg,
            #ff7887 0%,
            #e573ac 41%,
            #bd69dc 70%,
            #7763f5 100%
        );

    color: #ffffff;
    text-decoration: none;

    box-shadow:
        0 15px 34px rgba(181, 101, 214, 0.15);

    transition:
        transform 0.3s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.3s ease,
        filter 0.3s ease;
}


/* 光沢 */

.top-instagram__button::before {
    position: absolute;
    top: -100%;
    left: -40%;

    width: 36%;
    height: 300%;

    background:
        linear-gradient(
            90deg,
            transparent 0%,
            rgba(255, 255, 255, 0.22) 50%,
            transparent 100%
        );

    content: "";
    transform: rotate(20deg);
    transition: left 0.65s ease;
}

.top-instagram__button:hover {
    filter: brightness(1.04);
    transform: translateY(-5px);

    box-shadow:
        0 21px 42px rgba(181, 101, 214, 0.24);
}

.top-instagram__button:hover::before {
    left: 120%;
}

.top-instagram__button:focus-visible {
    outline: 4px solid rgba(124, 99, 244, 0.26);
    outline-offset: 6px;
}


/* ========================================
ボタン内部
======================================== */

.top-instagram__button-inner {
    position: relative;
    z-index: 2;

    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;

    width: 100%;
}


/* Instagramアイコン */

.top-instagram__button-icon {
    display: block;
    flex: 0 0 auto;

    width: 48px;
    height: 48px;

    object-fit: contain;
}


/* テキスト */

.top-instagram__button-text {
    color: #ffffff;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: clamp(22px, 1.75vw, 28px);
    font-weight: 700;
    line-height: 1.45;
    letter-spacing: 0.01em;
    white-space: nowrap;
}


/* ========================================
中間幅調整
======================================== */

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

    .top-instagram {
        min-height: 560px;
    }

    .top-instagram__inner {
        grid-template-columns: minmax(0, 1fr) minmax(380px, 0.85fr);
        column-gap: 40px;

        padding-right: 4vw;
        padding-left: 3vw;
    }
    .top-instagram__description {
        margin-top: 42px;
    }

    .top-instagram__description p {
        font-size: 23px;
    }

    .top-instagram__button {
        min-height: 98px;
        padding: 19px 28px;
    }

    .top-instagram__button-icon {
        width: 42px;
        height: 42px;
    }

    .top-instagram__button-text {
        font-size: 21px;
    }

}
/* ========================================
活動プログラム紹介
======================================== */

.top-program {
    position: relative;
    width: 100%;
    padding: 86px 0 108px;
    overflow: hidden;
    background-color: #ffffff;
}

.top-program__inner {
    position: relative;
    width: 100%;
}


/* ========================================
共通レイアウト
======================================== */

.top-program__row {
    position: relative;
    display: grid;
    grid-template-columns:
        minmax(0, 1fr)
        minmax(450px, 0.85fr);
    align-items: center;
    column-gap: 80px;

    width: 100%;
    min-height: 470px;

    padding-right: 6vw;
    padding-left: 2.4vw;
}

.top-program__row--exercise {
    margin-top: 52px;
}


/* ========================================
左側テキスト
======================================== */

.top-program__content {
    position: relative;
    z-index: 3;
    align-self: center;
    min-width: 0;
}


/* ========================================
タイトル
======================================== */

.top-program__title {
    margin: 0;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: clamp(46px, 4vw, 66px);
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: 0.01em;
}


/* 上段タイトル */

.top-program__title--pink {
    color: #ee849a;
}


/* 下段タイトル */

.top-program__title--purple {
    color: #9170cc;
}


/* ========================================
説明文
======================================== */

.top-program__description {
    margin-top: 42px;
}

.top-program__description p {
    margin: 0;
    color: #29252c;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: clamp(22px, 1.85vw, 30px);
    font-weight: 500;
    line-height: 1.7;
    letter-spacing: 0.005em;
}

.top-program__description p + p {
    margin-top: 10px;
}


/* ========================================
右側画像エリア
======================================== */

.top-program__visual {
    position: relative;
    justify-self: end;

    width: min(100%, 530px);
    height: 470px;
}


/* ========================================
画像カード共通
======================================== */

.top-program__photo {
    position: absolute;
    margin: 0;
    overflow: hidden;

    width: 285px;
    height: 380px;

    background-color: #eeeeee;

    box-shadow:
        0 10px 24px rgba(36, 29, 44, 0.09);

    transition:
        transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.35s ease;
}

.top-program__photo:hover {
    z-index: 5;

    box-shadow:
        0 18px 38px rgba(36, 29, 44, 0.16);
}

.top-program__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}


/* ========================================
上段画像
======================================== */

/* 左奥 */

.top-program__visual--pneumonia .top-program__photo--back {
    top: 4px;
    left: 17px;
    z-index: 1;

    border: 7px solid #f4a6b5;

    transform: rotate(-2.2deg);
}

.top-program__visual--pneumonia .top-program__photo--back:hover {
    transform: rotate(-2.2deg) translateY(-8px);
}


/* 右手前 */

.top-program__visual--pneumonia .top-program__photo--front {
    top: 58px;
    right: 1px;
    z-index: 2;

    border: 7px solid #a9cf93;

    transform: rotate(7deg);
}

.top-program__visual--pneumonia .top-program__photo--front:hover {
    transform: rotate(7deg) translateY(-8px);
}


/* ========================================
下段画像
======================================== */

/* 左奥 */

.top-program__visual--exercise .top-program__photo--back {
    top: 7px;
    left: 17px;
    z-index: 1;

    border: 7px solid #e3c566;

    transform: rotate(-2.5deg);
}

.top-program__visual--exercise .top-program__photo--back:hover {
    transform: rotate(-2.5deg) translateY(-8px);
}


/* 右手前 */

.top-program__visual--exercise .top-program__photo--front {
    top: 56px;
    right: 1px;
    z-index: 2;

    border: 7px solid #b396dc;

    transform: rotate(7.5deg);
}

.top-program__visual--exercise .top-program__photo--front:hover {
    transform: rotate(7.5deg) translateY(-8px);
}


/* ========================================
左中央の人物
======================================== */

.top-program__person {
    position: absolute;
    top: 410px;
    left: 2.3vw;
    z-index: 4;

    width: clamp(105px, 8vw, 140px);

    pointer-events: none;
}

.top-program__person-image {
    display: block;
    width: 100%;
    height: auto;

    filter:
        drop-shadow(4px 3px 7px rgba(143, 99, 205, 0.32))
        drop-shadow(0 0 12px rgba(143, 99, 205, 0.17));
}


/* ========================================
中間幅
======================================== */

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

    .top-program__row {
        grid-template-columns:
            minmax(0, 1fr)
            minmax(390px, 0.8fr);

        column-gap: 42px;
        min-height: 420px;

        padding-right: 4vw;
        padding-left: 3vw;
    }

    .top-program__visual {
        width: 440px;
        height: 420px;
    }

    .top-program__photo {
        width: 245px;
        height: 335px;
    }

    .top-program__title {
        font-size: 50px;
    }

    .top-program__description {
        margin-top: 32px;
    }

    .top-program__description p {
        font-size: 21px;
    }

    .top-program__person {
        top: 375px;
        width: 105px;
    }

}
/* ========================================
INSTAGRAM FOLLOW
======================================== */

.top-instagram-follow {
    position: relative;
    width: 100%;
    min-height: 630px;
    padding: 38px 0 56px;
    overflow: hidden;
    background-color: #ffffff;
}


/* ========================================
背景の横帯
======================================== */

.top-instagram-follow__decoration {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
}

.top-instagram-follow__band {
    position: absolute;
    left: 0;
    display: block;
    height: 100px;
}


/* 上側のピンク帯 */

.top-instagram-follow__band--pink {
    top: 76px;
    width: 36vw;
    background-color: #f8d5df;
}


/* 下側の薄紫帯 */

.top-instagram-follow__band--purple {
    top: 416px;
    width: 38vw;
    background-color: #e5dcfb;
}


/* ========================================
全体レイアウト
======================================== */

.top-instagram-follow__inner {
    position: relative;
    z-index: 2;

    display: grid;
    grid-template-columns: minmax(630px, 0.95fr) minmax(560px, 1.05fr);
    align-items: center;
    column-gap: 80px;

    width: 100%;
    min-height: 530px;
}


/* ========================================
左側画像エリア
======================================== */

.top-instagram-follow__visual {
    position: relative;
    align-self: stretch;

    width: 100%;
    min-height: 530px;
}


/* ========================================
画像共通
======================================== */

.top-instagram-follow__photo {
    position: absolute;
    margin: 0;
    overflow: hidden;
    background-color: #eeeeee;

    box-shadow:
        0 8px 20px rgba(34, 28, 39, 0.08);
}

.top-instagram-follow__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}


/* ========================================
1枚目：左端
======================================== */

.top-instagram-follow__photo--01 {
    top: 102px;
    left: 0;
    z-index: 1;

    width: 300px;
    height: 300px;
}


/* ========================================
2枚目：上側
======================================== */

.top-instagram-follow__photo--02 {
    top: 0;
    left: 300px;
    z-index: 2;

    width: 300px;
    height: 270px;
}


/* ========================================
3枚目：手前
======================================== */

.top-instagram-follow__photo--03 {
    top: 208px;
    left: 200px;
    z-index: 3;

    width: 350px;
    height: 300px;
}


/* ========================================
右側コンテンツ
======================================== */

.top-instagram-follow__content {
    position: relative;
    z-index: 3;

    display: flex;
    flex-direction: column;
    align-items: center;

    padding: 38px 6vw 0 0;
}


/* ========================================
タイトル
======================================== */

.top-instagram-follow__title {
    display: flex;
    flex-direction: column;
    align-items: center;

    margin: 0;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size:50px;
    line-height: 1.45;
    letter-spacing: 0.025em;
    text-align: center;
}

.top-instagram-follow__title span {
    display: inline-block;
    padding: 0 12px 7px;

    background:
        linear-gradient(
            100deg,
            #ff7987 0%,
            #e77bae 40%,
            #b06de1 72%,
            #7364f7 100%
        );

    background-clip: text;
    color: transparent;

    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}


/* ========================================
Instagramボタン
======================================== */

.top-instagram-follow__button {
    position: relative;

    display: flex;
    align-items: center;
    justify-content: center;

    width: min(100%, 500px);
    min-height: 110px;

    margin-top: 54px;
    padding: 6px;

    border-radius: 999px;

    background:
        linear-gradient(
            100deg,
            #ff7b89 0%,
            #ea76a9 40%,
            #bd6cdb 70%,
            #7664f6 100%
        );

    text-decoration: none;

    box-shadow:
        0 12px 30px rgba(166, 97, 210, 0.10);

    transition:
        transform 0.3s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.3s ease;
}


/* 白い内側 */

.top-instagram-follow__button::before {
    position: absolute;
    inset: 6px;

    border-radius: inherit;
    background-color: #ffffff;

    content: "";
}


/* ホバー */

.top-instagram-follow__button:hover {
    transform: translateY(-5px);

    box-shadow:
        0 20px 42px rgba(166, 97, 210, 0.20);
}

.top-instagram-follow__button:focus-visible {
    outline: 4px solid rgba(118, 100, 246, 0.25);
    outline-offset: 6px;
}


/* ========================================
ボタン内部
======================================== */

.top-instagram-follow__button-inner {
    position: relative;
    z-index: 2;

    display: flex;
    align-items: center;
    justify-content: center;
    gap: 23px;

    width: 100%;
}


/* Instagramアイコン */

.top-instagram-follow__button-icon {
    display: block;
    flex: 0 0 auto;

    width: 57px;
    height: 57px;

    object-fit: contain;
}


/* テキスト */

.top-instagram-follow__button-text {
    display: inline-block;

    padding: 0 6px 4px;

    background:
        linear-gradient(
            100deg,
            #ff7a87 0%,
            #e679a9 42%,
            #b66ddd 71%,
            #7864f5 100%
        );

    background-clip: text;
    color: transparent;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size:20px;
    font-weight: 700;
    line-height: 1.45;
    letter-spacing: 0.01em;
    white-space: nowrap;

    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}


/* ========================================
中間幅調整
======================================== */

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

    .top-instagram-follow__inner {
        grid-template-columns: minmax(520px, 0.95fr) minmax(450px, 1.05fr);
        column-gap: 45px;
    }

    .top-instagram-follow__visual {
        min-height: 470px;
    }

    .top-instagram-follow__photo--01 {
        top: 95px;
        width: 290px;
        height: 270px;
    }

    .top-instagram-follow__photo--02 {
        left: 290px;
        width: 315px;
        height: 245px;
    }

    .top-instagram-follow__photo--03 {
        top: 192px;
        left: 185px;
        width: 320px;
        height: 280px;
    }

    .top-instagram-follow__title {
        font-size: 63px;
    }

    .top-instagram-follow__button {
        min-height: 112px;
        margin-top: 42px;
    }

    .top-instagram-follow__button-icon {
        width: 48px;
        height: 48px;
    }

    .top-instagram-follow__button-text {
        font-size: 24px;
    }

}
/* ========================================
お問い合わせCTA
======================================== */

.top-contact-cta {
    position: relative;
    width: 100%;
    min-height: 730px;
    padding: 145px 0 95px;
    overflow: hidden;

    /*
    真っ白ではなく、
    添付に近い薄いアイボリー
    */
    background-color: #fbf7ef;
}


/* ========================================
背景装飾
======================================== */

.top-contact-cta__background {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    pointer-events: none;
}

.top-contact-cta__shape {
    position: absolute;
    display: block;
    background-color: rgba(255, 255, 255, 0.58);
}


/* 左側 */

.top-contact-cta__shape--left {
    top: -180px;
    left: -310px;

    width: 980px;
    height: 880px;

    border-radius:
        50% 50% 45% 55% /
        44% 56% 44% 56%;

    transform: rotate(8deg);
}


/* 中央 */

.top-contact-cta__shape--center {
    top: -330px;
    left: 41%;

    width: 580px;
    height: 1050px;

    border-radius:
        48% 52% 55% 45% /
        52% 42% 58% 48%;

    background-color: rgba(255, 255, 255, 0.45);
    transform: rotate(-8deg);
}


/* 右側 */

.top-contact-cta__shape--right {
    right: -410px;
    bottom: -510px;

    width: 1200px;
    height: 960px;

    border-radius: 50%;

    background-color: rgba(255, 255, 255, 0.53);
}


/* ========================================
中央レイアウト
======================================== */

.top-contact-cta__inner {
    position: relative;
    z-index: 2;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 100%;
}


/* ========================================
白いカード
======================================== */

.top-contact-cta__box {
    display: flex;
    flex-direction: column;
    align-items: center;

    width: min(970px, calc(100% - 80px));
    min-height: 490px;

    padding: 55px 70px 52px;

    background-color: rgba(255, 255, 255, 0.96);
    text-align: center;
}


/* ========================================
タイトル
======================================== */

.top-contact-cta__title {
    display: inline-block;

    margin: 0;
    padding: 0 12px 7px;

    background:
        linear-gradient(
            100deg,
            #ff7986 0%,
            #e778aa 42%,
            #b56cdf 72%,
            #7465f5 100%
        );

    background-clip: text;
    color: transparent;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size:50px;
    font-weight: 400;
    line-height: 1.25;
    letter-spacing: 0.025em;

    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}


/* ========================================
説明文
======================================== */

.top-contact-cta__description {
	    width: 100%;
    margin-top: 42px;
    text-align: center;
}

.top-contact-cta__description p {
    width: 100%;
    margin: 0;

    color: #29252c;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: 22px;
    font-weight: 500;
    line-height: 1.7;
    letter-spacing: 0.01em;

    text-align: center;
}

.top-contact-cta__description p + p {
    margin-top: 7px;
}


/* ========================================
お問い合わせボタン
======================================== */

.top-contact-cta__button {
    position: relative;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: min(100%, 400px);
    min-height: 100px;

    margin-top: 48px;
    padding: 18px 88px 18px 42px;

    overflow: hidden;

    border-radius: 999px;

    background:
        linear-gradient(
            100deg,
            #ff7888 0%,
            #e774aa 42%,
            #b66cdd 70%,
            #7763f6 100%
        );

    color: #ffffff;
    text-decoration: none;

    box-shadow:
        0 14px 30px rgba(175, 100, 213, 0.14);

    transition:
        transform 0.3s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.3s ease,
        filter 0.3s ease;
}

.top-contact-cta__button:hover {
    filter: brightness(1.04);
    transform: translateY(-5px);

    box-shadow:
        0 20px 42px rgba(175, 100, 213, 0.23);
}

.top-contact-cta__button:focus-visible {
    outline: 4px solid rgba(119, 99, 246, 0.25);
    outline-offset: 6px;
}


/* ========================================
ボタンテキスト
======================================== */

.top-contact-cta__button-text {
    color: #ffffff;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: 23px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0.015em;
}


/* ========================================
丸い矢印
======================================== */

.top-contact-cta__button-icon {
    position: absolute;
    top: 50%;
    right: 64px;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 36px;
    height: 36px;

    border-radius: 50%;
    background-color: #ffffff;

    transform: translateY(-50%);
}

.top-contact-cta__button-arrow {
    display: block;

    width: 0;
    height: 0;

    margin-left: 3px;

    border-top: 7px solid transparent;
    border-bottom: 7px solid transparent;
    border-left: 10px solid #a66dde;
}


/* ========================================
中間幅調整
======================================== */

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

    .top-contact-cta {
        min-height: 660px;
        padding-top: 110px;
    }

    .top-contact-cta__box {
        width: min(860px, calc(100% - 70px));
        min-height: 450px;
        padding: 48px 55px;
    }

    .top-contact-cta__title {
        font-size: 60px;
    }

    .top-contact-cta__description {
        margin-top: 34px;
    }

    .top-contact-cta__description p {
        font-size: 24px;
    }

    .top-contact-cta__button {
        min-height: 90px;
        margin-top: 40px;
    }

    .top-contact-cta__button-text {
        font-size: 24px;
    }

}
/* ========================================
SITE FOOTER
======================================== */

.site-footer {
    position: relative;
    width: 100%;
    padding: 88px 0 20px;
    overflow: hidden;

    /*
    添付デザインの薄いグレー
    真っ白ではなく、やや温かみのあるグレー
    */
    background-color: #eeeeee;
}


/* ========================================
フッター内部
======================================== */

.site-footer__inner {
    display: grid;
    grid-template-columns:
        minmax(500px, 0.8fr)
        minmax(720px, 1.2fr);
    align-items: center;
    column-gap: 80px;

    width: min(1600px, calc(100% - 100px));
    min-height: 365px;
    margin: 0 auto;
}


/* ========================================
左側ブランドエリア
======================================== */

.site-footer__brand {
    position: relative;
    min-width: 0;
}


/* ========================================
ロゴ
======================================== */

.site-footer__logo {
    display: inline-block;

    margin: 0;
    padding: 0 8px 4px 0;

    background:
        linear-gradient(
            100deg,
            #ff7a87 0%,
            #e779aa 42%,
            #b56dde 72%,
            #7465f5 100%
        );

    background-clip: text;
    color: transparent;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: 40px;
    font-weight: 500;
    line-height: 1.3;
    letter-spacing: 0.015em;

    text-decoration: none;

    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;

    transition:
        opacity 0.25s ease,
        transform 0.25s ease;
}

.site-footer__logo:hover {
    opacity: 0.78;
    transform: translateY(-2px);
}


/* ========================================
説明文
======================================== */

.site-footer__description {
    margin-top: 17px;
}

.site-footer__description p {
    margin: 0;
    color: #ed849b;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: 20px;
    font-weight: 500;
    line-height: 1.75;
    letter-spacing: 0.015em;
}

.site-footer__description .site-footer__catch {
    margin-bottom: 1px;
}


/* ========================================
Instagramボタン
======================================== */

.site-footer__instagram {
    position: relative;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: min(100%, 460px);
    min-height: 84px;

    margin-top: 30px;
    padding: 6px;

    overflow: hidden;

    border-radius: 999px;

    /*
    外側の白いフチ
    */
    background-color: #ffffff;

    text-decoration: none;

    box-shadow:
        0 7px 18px rgba(82, 70, 98, 0.05);

    transition:
        transform 0.3s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.3s ease;
}


/* グラデーション本体 */

.site-footer__instagram::before {
    position: absolute;
    inset: 6px;

    border-radius: inherit;

    background:
        linear-gradient(
            100deg,
            #ff7888 0%,
            #e575aa 42%,
            #b76cdd 70%,
            #7863f6 100%
        );

    content: "";
}


/* 光沢演出 */

.site-footer__instagram::after {
    position: absolute;
    top: -110%;
    left: -38%;

    width: 30%;
    height: 320%;

    background:
        linear-gradient(
            90deg,
            transparent 0%,
            rgba(255, 255, 255, 0.20) 50%,
            transparent 100%
        );

    content: "";

    transform: rotate(20deg);
    transition: left 0.6s ease;
}

.site-footer__instagram:hover {
    transform: translateY(-4px);

    box-shadow:
        0 15px 30px rgba(153, 96, 203, 0.18);
}

.site-footer__instagram:hover::after {
    left: 125%;
}

.site-footer__instagram:focus-visible {
    outline: 4px solid rgba(119, 99, 246, 0.22);
    outline-offset: 5px;
}


/* ========================================
Instagramボタン内部
======================================== */

.site-footer__instagram-inner {
    position: relative;
    z-index: 2;

    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 16px;

    width: 100%;
    padding: 0 48px;
}


/* アイコン */

.site-footer__instagram-icon {
    display: block;
    flex: 0 0 auto;

    width: 36px;
    height: 36px;

    object-fit: contain;
}


/* テキスト */

.site-footer__instagram-text {
    color: #ffffff;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: 18px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.01em;
    white-space: nowrap;
}


/* ========================================
右側ナビゲーション
======================================== */

.site-footer__navigation {
    width: 100%;
    min-width: 0;
}


/* ========================================
メニュー一覧
======================================== */

.site-footer__menu {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 35px;

    width: 100%;
    margin: 0;
    padding: 0;

    list-style: none;
}

.site-footer__menu-item {
    flex: 0 0 auto;
    margin: 0;
    padding: 0;
}


/* ========================================
メニューリンク
======================================== */

.site-footer__menu-link {
    position: relative;
    display: inline-block;

    padding: 6px 0;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: 23px;
    font-weight: 700;
    line-height: 1.45;
    letter-spacing: 0.01em;

    text-decoration: none;

    transition:
        opacity 0.25s ease,
        transform 0.25s ease;
}


/* 下線 */

.site-footer__menu-link::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;

    height: 2px;

    background-color: currentColor;

    content: "";

    opacity: 0.6;
    transform: scaleX(0);
    transform-origin: right center;

    transition:
        transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.site-footer__menu-link:hover {
    opacity: 0.78;
    transform: translateY(-3px);
}

.site-footer__menu-link:hover::after {
    transform: scaleX(1);
    transform-origin: left center;
}

.site-footer__menu-link:focus-visible {
    outline: 3px solid currentColor;
    outline-offset: 5px;
}


/* ========================================
各メニュー色
======================================== */

.site-footer__menu-link--red {
    color: #ed7375;
}

.site-footer__menu-link--yellow {
    color: #e8b82f;
}

.site-footer__menu-link--pink {
    color: #e97e9a;
}

.site-footer__menu-link--green {
    color: #59a65d;
}

.site-footer__menu-link--purple {
    color: #9070cc;
}


/* ========================================
コピーライト
======================================== */

.site-footer__bottom {
    width: min(1600px, calc(100% - 100px));
    margin: 18px auto 0;
    padding-top: 18px;

    border-top: 1px solid rgba(57, 50, 64, 0.08);
}

.site-footer__copyright {
    margin: 0;

    color: #aaa7ad;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        sans-serif;

    font-size: 12px;
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: 0.05em;
    text-align: right;
}


/* ========================================
中間幅調整
======================================== */

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

    .site-footer__inner {
        grid-template-columns:
            minmax(440px, 0.85fr)
            minmax(620px, 1.15fr);

        column-gap: 50px;

        width: calc(100% - 80px);
    }

    .site-footer__logo {
        font-size: 35px;
    }

    .site-footer__description p {
        font-size: 17px;
    }

    .site-footer__instagram {
        width: 420px;
        min-height: 76px;
    }

    .site-footer__instagram-inner {
        padding: 0 40px;
    }

    .site-footer__instagram-icon {
        width: 32px;
        height: 32px;
    }

    .site-footer__instagram-text {
        font-size: 16px;
    }

    .site-footer__menu {
        gap: 23px;
    }

    .site-footer__menu-link {
        font-size: 19px;
    }

    .site-footer__bottom {
        width: calc(100% - 80px);
    }

}


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

    .site-footer__inner {
        grid-template-columns:
            minmax(380px, 0.85fr)
            minmax(520px, 1.15fr);

        column-gap: 35px;
    }

    .site-footer__description p {
        font-size: 15px;
    }

    .site-footer__instagram {
        width: 380px;
    }

    .site-footer__instagram-inner {
        padding: 0 30px;
    }

    .site-footer__menu {
        gap: 16px;
    }

    .site-footer__menu-link {
        font-size: 17px;
    }

}
/* ========================================
新着情報一覧ページ
======================================== */

.news-archive {
    width: 100%;
    overflow: hidden;
    background-color: #ffffff;
}


/* ========================================
ページビジュアル
======================================== */

.news-archive__hero {
    position: relative;

    display: flex;
    align-items: center;

    width: 100%;
    height: 310px;
    overflow: hidden;

    background-image:
        url("../images/news-archive-hero.jpg");
    background-position: center 42%;
    background-size: cover;
    background-repeat: no-repeat;
}


/* 白いオーバーレイ */

.news-archive__hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;

    background-color: rgba(255, 255, 255, 0.72);
    pointer-events: none;
}


/* ========================================
見出し位置
======================================== */

.news-archive__hero-inner {
    position: relative;
    z-index: 2;

    width: min(1400px, calc(100% - 100px));
    margin: 0 auto;
}

.news-archive__heading {
    display: flex;
    flex-direction: column;
    align-items: flex-start;

    margin: 0;
}


/* ========================================
News
======================================== */

.news-archive__heading-en {
    display: inline-block;

    margin: 0;
    padding: 0 12px 7px 0;

    background:
        linear-gradient(
            100deg,
            #ff7886 0%,
            #e778aa 42%,
            #b36cdf 72%,
            #7465f5 100%
        );

    background-clip: text;
    color: transparent;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: 72px;
    font-weight: 300;
    line-height: 1.1;
    letter-spacing: -0.035em;

    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}


/* ========================================
新着情報
======================================== */

.news-archive__heading-ja {
    margin-top: 15px;
    color: #ed8198;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: 23px;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.02em;
}


/* ========================================
一覧エリア
======================================== */

.news-archive__content {
    width: 100%;
    padding: 84px 0 110px;
    background-color: #ffffff;
}

.news-archive__inner {
    width: min(1080px, calc(100% - 80px));
    margin: 0 auto;
}


/* ========================================
投稿リスト
======================================== */

.news-archive__list {
    width: 100%;
    margin: 0;
    padding: 0;

    border-top: 1px solid #777176;
    list-style: none;
}


/* ========================================
投稿1件
======================================== */

.news-archive__item {
    width: 100%;
    margin: 0;
    padding: 0;

    border-bottom: 1px solid #777176;
}

.news-archive__link {
    position: relative;

    display: grid;
    grid-template-columns:
        150px
        130px
        minmax(0, 1fr)
        28px;
    align-items: center;
    column-gap: 30px;

    width: 100%;
    min-height: 108px;
    padding: 20px 20px 20px 28px;

    color: #29252c;
    text-decoration: none;

    transition:
        background-color 0.3s ease,
        padding-left 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}

.news-archive__link:hover {
    padding-left: 38px;
    background-color: #fdf8fa;
}

.news-archive__link:focus-visible {
    outline: 3px solid rgba(122, 101, 244, 0.28);
    outline-offset: -3px;
}


/* ========================================
日付
======================================== */

.news-archive__date {
    color: #29252c;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: 18px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.01em;
    white-space: nowrap;
}


/* ========================================
カテゴリ
======================================== */

.news-archive__category {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 100%;
    min-height: 34px;
    padding: 5px 14px;

    border: 1px solid #ed849a;
    border-radius: 999px;

    background-color: #ffffff;
    color: #ed849a;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0.02em;
    text-align: center;
    white-space: nowrap;
}


/* blogカテゴリだけ紫にする例 */

.news-archive__category.category-blog {
    border-color: #9370cf;
    color: #9370cf;
}


/* newsカテゴリ */

.news-archive__category.category-news {
    border-color: #ed849a;
    color: #ed849a;
}


/* ========================================
タイトル
======================================== */

.news-archive__title {
    min-width: 0;
    overflow: hidden;

    color: #29252c;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: 17px;
    font-weight: 600;
    line-height: 1.65;
    letter-spacing: 0.01em;

    text-overflow: ellipsis;
    white-space: nowrap;

    transition: color 0.25s ease;
}

.news-archive__link:hover .news-archive__title {
    color: #d977aa;
}


/* ========================================
右端の矢印
======================================== */

.news-archive__arrow {
    position: relative;

    display: block;

    width: 19px;
    height: 19px;

    border-top: 2px solid #9a70d5;
    border-right: 2px solid #9a70d5;

    transform: rotate(45deg);
    transition:
        transform 0.3s ease,
        border-color 0.3s ease;
}

.news-archive__link:hover .news-archive__arrow {
    border-color: #e378a4;
    transform: translateX(5px) rotate(45deg);
}


/* ========================================
記事がない場合
======================================== */

.news-archive__empty {
    padding: 80px 30px;

    border-top: 1px solid #777176;
    border-bottom: 1px solid #777176;

    text-align: center;
}

.news-archive__empty p {
    margin: 0;
    color: #29252c;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        sans-serif;

    font-size: 17px;
    line-height: 1.8;
}


/* ========================================
ページネーション
======================================== */

.news-archive__pagination {
    margin-top: 62px;
}

.news-archive__pagination .nav-links {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.news-archive__pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-width: 46px;
    height: 46px;
    padding: 0 12px;

    border: 1px solid #d7d2d9;
    border-radius: 50%;

    background-color: #ffffff;
    color: #655f69;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        sans-serif;

    font-size: 15px;
    font-weight: 600;
    line-height: 1;

    text-decoration: none;

    transition:
        color 0.25s ease,
        border-color 0.25s ease,
        background-color 0.25s ease,
        transform 0.25s ease;
}

.news-archive__pagination a.page-numbers:hover {
    border-color: #d979aa;
    color: #d979aa;
    transform: translateY(-3px);
}

.news-archive__pagination .page-numbers.current {
    border-color: transparent;

    background:
        linear-gradient(
            120deg,
            #ff7987 0%,
            #d974b7 50%,
            #7c65f4 100%
        );

    color: #ffffff;
}

.news-archive__pagination .page-numbers.prev,
.news-archive__pagination .page-numbers.next {
    width: auto;
    padding: 0 18px;
    border-radius: 999px;
}


/* ========================================
中間幅
======================================== */

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

    .news-archive__hero-inner {
        width: calc(100% - 70px);
    }

    .news-archive__inner {
        width: calc(100% - 70px);
    }

    .news-archive__link {
        grid-template-columns:
            125px
            110px
            minmax(0, 1fr)
            24px;

        column-gap: 22px;
    }

    .news-archive__date {
        font-size: 16px;
    }

    .news-archive__title {
        font-size: 16px;
    }

}
/* ========================================
新着情報詳細ページ
======================================== */

.news-single {
    width: 100%;
    overflow: hidden;
    background-color: #ffffff;
}


/* ========================================
ページビジュアル
======================================== */

.news-single__hero {
    position: relative;

    display: flex;
    align-items: center;

    width: 100%;
    height: 310px;
    overflow: hidden;

    background-image:
        url("../images/news-archive-hero.jpg");
    background-position: center 42%;
    background-repeat: no-repeat;
    background-size: cover;
}


/* 白いオーバーレイ */

.news-single__hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;

    background-color: rgba(255, 255, 255, 0.72);
    pointer-events: none;
}


/* 見出し位置 */

.news-single__hero-inner {
    position: relative;
    z-index: 2;

    width: min(1400px, calc(100% - 100px));
    margin: 0 auto;
}

.news-single__hero-heading {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}


/* News */

.news-single__hero-en {
    display: inline-block;

    margin: 0;
    padding: 0 12px 7px 0;

    background:
        linear-gradient(
            100deg,
            #ff7886 0%,
            #e778aa 42%,
            #b36cdf 72%,
            #7465f5 100%
        );

    background-clip: text;
    color: transparent;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: 72px;
    font-weight: 300;
    line-height: 1.1;
    letter-spacing: -0.035em;

    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}


/* 新着情報 */

.news-single__hero-ja {
    margin: 15px 0 0;
    color: #ed8198;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: 23px;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.02em;
}


/* ========================================
記事エリア
======================================== */

.news-single__article {
    width: 100%;
    padding: 90px 0 120px;
    background-color: #ffffff;
}

.news-single__inner {
    width: min(980px, calc(100% - 80px));
    margin: 0 auto;
}


/* ========================================
記事ヘッダー
======================================== */

.news-single__header {
    padding-bottom: 38px;
    border-bottom: 1px solid #777176;
}


/* 日付・カテゴリ */

.news-single__meta {
    display: flex;
    align-items: center;
    gap: 20px;
}

.news-single__date {
    color: #69646c;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: 16px;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: 0.04em;
}


/* カテゴリ */

.news-single__category {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-width: 112px;
    min-height: 34px;
    padding: 5px 18px;

    border: 1px solid #ed849a;
    border-radius: 999px;

    background-color: #ffffff;
    color: #ed849a;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0.02em;
    text-align: center;
}


/* blogカテゴリー */

.news-single__category--blog {
    border-color: #9170cf;
    color: #9170cf;
}


/* newsカテゴリー */

.news-single__category--news {
    border-color: #ed849a;
    color: #ed849a;
}


/* ========================================
投稿タイトル
======================================== */

.news-single__title {
    margin: 24px 0 0;
    color: #29252c;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: clamp(32px, 3vw, 46px);
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: 0.01em;

    overflow-wrap: anywhere;
}


/* ========================================
アイキャッチ画像
======================================== */

.news-single__thumbnail {
    width: 100%;
    margin: 58px 0 0;
    overflow: hidden;
    background-color: #f1f1f1;
}

.news-single__thumbnail-image {
    display: block;

    width: 100%;
    height: auto;
    max-height: 610px;

    object-fit: cover;
    object-position: center;
}


/* ========================================
投稿本文
======================================== */

.news-single__content {
    margin-top: 65px;

    color: #302b33;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: 17px;
    font-weight: 400;
    line-height: 2;
    letter-spacing: 0.025em;
    overflow-wrap: anywhere;
}


/* 通常段落 */

.news-single__content p {
    margin: 0 0 30px;
}


/* 見出し2 */

.news-single__content h2 {
    position: relative;

    margin: 72px 0 32px;
    padding: 19px 24px 20px 30px;

    border-left: 6px solid #ed829b;

    background:
        linear-gradient(
            90deg,
            #fdf1f4 0%,
            #faf7ff 100%
        );

    color: #29252c;

    font-size: 29px;
    font-weight: 600;
    line-height: 1.55;
    letter-spacing: 0.01em;
}


/* 見出し3 */

.news-single__content h3 {
    margin: 55px 0 25px;
    padding: 0 0 13px;

    border-bottom: 2px solid #e4d7ec;

    color: #29252c;

    font-size: 24px;
    font-weight: 600;
    line-height: 1.55;
    letter-spacing: 0.01em;
}


/* 見出し4 */

.news-single__content h4 {
    margin: 42px 0 20px;
    color: #9170cf;

    font-size: 20px;
    font-weight: 600;
    line-height: 1.6;
}


/* 投稿内画像 */

.news-single__content img {
    display: block;
    max-width: 100%;
    height: auto;
}

.news-single__content figure {
    max-width: 100%;
    margin: 46px 0;
}

.news-single__content figcaption {
    margin-top: 12px;
    color: #8b858e;

    font-size: 13px;
    line-height: 1.7;
    text-align: center;
}


/* リンク */

.news-single__content a {
    color: #8c69d5;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;

    transition: color 0.25s ease;
}

.news-single__content a:hover {
    color: #df789f;
}


/* 箇条書き */

.news-single__content ul,
.news-single__content ol {
    margin: 32px 0;
    padding-left: 1.7em;
}

.news-single__content li {
    margin-bottom: 10px;
    padding-left: 4px;
}


/* 引用 */

.news-single__content blockquote {
    position: relative;

    margin: 45px 0;
    padding: 30px 34px 30px 42px;

    border-left: 5px solid #a879da;
    background-color: #faf7fc;
    color: #524b56;
}

.news-single__content blockquote p:last-child {
    margin-bottom: 0;
}


/* 区切り線 */

.news-single__content hr {
    height: 1px;
    margin: 60px 0;

    border: 0;
    background-color: #ded9df;
}


/* テーブル */

.news-single__content table {
    width: 100%;
    margin: 45px 0;

    border-collapse: collapse;
    border-spacing: 0;
}

.news-single__content th,
.news-single__content td {
    padding: 16px 18px;
    border: 1px solid #dcd7de;

    font-size: 15px;
    line-height: 1.7;
    text-align: left;
    vertical-align: top;
}

.news-single__content th {
    background-color: #faf1f5;
    font-weight: 600;
}


/* 埋め込み動画 */

.news-single__content iframe {
    max-width: 100%;
}

.news-single__content .wp-block-embed {
    margin: 50px 0;
}


/* ========================================
記事内ページ送り
======================================== */

.news-single__page-links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;

    margin-top: 50px;
}

.news-single__page-links-label {
    margin-right: 8px;
    color: #6e6871;
    font-weight: 600;
}


/* ========================================
一覧へ戻る
======================================== */

.news-single__back {
    display: flex;
    justify-content: center;

    margin-top: 90px;
    padding-top: 58px;

    border-top: 1px solid #d5d0d7;
}

.news-single__back-link {
    position: relative;

    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 18px;

    min-width: 310px;
    min-height: 70px;
    padding: 15px 42px;

    border: 2px solid transparent;
    border-radius: 999px;

    background:
        linear-gradient(#ffffff, #ffffff) padding-box,
        linear-gradient(
            100deg,
            #ff7888 0%,
            #de75b3 48%,
            #7864f5 100%
        ) border-box;

    color: #8f68d5;
    text-decoration: none;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: 17px;
    font-weight: 600;
    line-height: 1.4;

    transition:
        color 0.3s ease,
        transform 0.3s ease,
        box-shadow 0.3s ease;
}

.news-single__back-link:hover {
    color: #df789f;
    transform: translateY(-4px);

    box-shadow:
        0 12px 28px rgba(155, 103, 207, 0.14);
}


/* 左矢印 */

.news-single__back-arrow {
    display: block;

    width: 13px;
    height: 13px;

    border-bottom: 2px solid currentColor;
    border-left: 2px solid currentColor;

    transform: rotate(45deg);
}


/* ========================================
記事が見つからない場合
======================================== */

.news-single__not-found {
    padding: 140px 20px;
    background-color: #ffffff;
}

.news-single__not-found-inner {
    width: min(800px, 100%);
    margin: 0 auto;
    text-align: center;
}

.news-single__not-found-title {
    margin: 0;
    color: #29252c;
    font-size: 38px;
}

.news-single__not-found-text {
    margin: 30px 0 0;
    color: #69636c;
    font-size: 16px;
    line-height: 1.8;
}

.news-single__not-found-link {
    display: inline-block;

    margin-top: 40px;
    color: #936bcf;
    font-weight: 600;
}


/* ========================================
中間幅
======================================== */

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

    .news-single__hero-inner {
        width: calc(100% - 70px);
    }

    .news-single__inner {
        width: min(900px, calc(100% - 70px));
    }

}
/* ========================================
CONTACT PAGE
======================================== */

.contact-page {
    width: 100%;
    overflow: hidden;
    background-color: #ffffff;
}


/* ========================================
PAGE VISUAL
======================================== */

.contact-page__hero {
    position: relative;

    display: flex;
    align-items: center;

    width: 100%;
    height: 285px;

    overflow: hidden;

    background-image:
        url("../images/contact-hero.jpg");

    background-position: center 46%;
    background-repeat: no-repeat;
    background-size: cover;
}


/* 白いオーバーレイ */

.contact-page__hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;

    background-color: rgba(255, 255, 255, 0.66);

    pointer-events: none;
}


/* ========================================
見出し位置
======================================== */

.contact-page__hero-inner {
    position: relative;
    z-index: 2;

    width: min(1400px, calc(100% - 100px));
    margin: 0 auto;
}

.contact-page__heading {
    display: flex;
    flex-direction: column;
    align-items: flex-start;

    margin: 0;
}


/* Contact */

.contact-page__heading-en {
    display: inline-block;

    padding: 0 12px 7px 0;

    background:
        linear-gradient(
            100deg,
            #ff7886 0%,
            #e778aa 42%,
            #b36cdf 72%,
            #7465f5 100%
        );

    background-clip: text;
    color: transparent;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: 72px;
    font-weight: 300;
    line-height: 1.1;
    letter-spacing: -0.035em;

    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}


/* お問い合わせ */

.contact-page__heading-ja {
    margin-top: 15px;

    color: #ed8198;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: 23px;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.02em;
}


/* ========================================
フォームセクション
======================================== */

.contact-page__form-section {
    width: 100%;
    padding: 90px 0 115px;

    background-color: #ffffff;
}

.contact-page__inner {
    width: min(820px, calc(100% - 80px));
    margin: 0 auto;
}

.contact-page__form {
    width: 100%;
}


/* ========================================
CF7初期余白をリセット
======================================== */

.contact-page__form .wpcf7 {
    width: 100%;
}

.contact-page__form .wpcf7-form {
    width: 100%;
    margin: 0;
}

.contact-page__form .wpcf7-form p {
    margin: 0;
}

.contact-page__form .wpcf7-form-control-wrap {
    display: block;
    width: 100%;
}


/* ========================================
フォーム行
======================================== */

.contact-form__row {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    align-items: center;
    column-gap: 28px;

    width: 100%;
}

.contact-form__row + .contact-form__row {
    margin-top: 34px;
}


/* テキストエリア行 */

.contact-form__row--textarea {
    align-items: start;
}


/* ========================================
ラベルエリア
======================================== */

.contact-form__label-area {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 76px;
    align-items: center;
    column-gap: 14px;

    width: 100%;
}

.contact-form__label {
    color: #29252c;
	    display: block;
    line-height: 1.3;
    transform: translateY(-12px);

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: 16px;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.01em;
}


/* ========================================
必須ラベル
======================================== */
/* ========================================
必須ラベル
======================================== */

.contact-form__required {
    position: relative;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 76px;
    height: 38px;
    min-width: 76px;
    min-height: 38px;
    padding: 0;

    border: 2px solid transparent;
    border-radius: 999px;

    background:
        linear-gradient(#ffffff, #ffffff) padding-box,
        linear-gradient(
            100deg,
            #ff7888 0%,
            #e977a7 45%,
            #8264f6 100%
        ) border-box;

    box-sizing: border-box;

    /*
    元の「必須」という文字を非表示
    */
    color: transparent;
    font-size: 0;
    line-height: 1;

    /*
    以前の移動指定を解除
    */
    transform: none;
}


/* 必須の文字だけを中央配置 */

.contact-form__required::before {
    display: block;

    color: #e5779e;
    content: "必須";

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: 14px;
    font-weight: 600;
    line-height: 1;

    /*
    視覚的な中央位置を微調整
    */
    transform: translateY(-1px);
}
/* ========================================
入力エリア
======================================== */

.contact-form__field {
    width: 100%;
}


/* ========================================
input・select・textarea
======================================== */

.contact-form__input,
.contact-form__select,
.contact-form__textarea {
    display: block;

    width: 100%;

    border: 0;
    outline: 0;

    border-radius: 15px;

    background-color: #ececef;
    color: #29252c;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        "Meiryo",
        sans-serif;

    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;

    transition:
        background-color 0.25s ease,
        box-shadow 0.25s ease;
}

.contact-form__input,
.contact-form__select {
    height: 54px;
    padding: 0 20px;
}

.contact-form__textarea {
    height: 140px;
    min-height: 140px;

    padding: 17px 20px;

    resize: vertical;
}


/* フォーカス時 */

.contact-form__input:focus,
.contact-form__select:focus,
.contact-form__textarea:focus {
    background-color: #ffffff;

    box-shadow:
        0 0 0 2px rgba(231, 118, 163, 0.40),
        0 8px 20px rgba(139, 103, 214, 0.08);
}


/* セレクト矢印 */

.contact-form__select {
    cursor: pointer;
}


/* ========================================
入力エラー
======================================== */

.contact-page__form .wpcf7-not-valid {
    background-color: #fff5f6;

    box-shadow:
        0 0 0 2px rgba(235, 91, 111, 0.42);
}

.contact-page__form .wpcf7-not-valid-tip {
    margin-top: 7px;

    color: #df5368;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        sans-serif;

    font-size: 12px;
    font-weight: 500;
    line-height: 1.5;
}


/* ========================================
プライバシーポリシー
======================================== */

.contact-form__privacy {
    width: 500px;
    max-width: 100%;

    margin: 82px auto 0;
}


/* プライバシー本文 */

.contact-form__privacy-box {
    width: 100%;
    height: 115px;

    padding: 13px 15px;

    overflow-y: auto;

    border: 2px solid transparent;
    border-radius: 14px;

    background:
        linear-gradient(#ffffff, #ffffff) padding-box,
        linear-gradient(
            100deg,
            #ff7888 0%,
            #df75b3 48%,
            #7864f5 100%
        ) border-box;

    color: #d56d94;

    scrollbar-width: thin;
    scrollbar-color: #bd75cf #f4edf7;
}

.contact-form__privacy-box p {
    margin: 0;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        sans-serif;

    font-size: 13px;
    font-weight: 500;
    line-height: 1.75;
}

.contact-form__privacy-box p + p {
    margin-top: 10px;
}


/* ========================================
同意チェック
======================================== */

.contact-form__agreement {
    margin-top: 18px;
}

.contact-form__agreement .wpcf7-list-item {
    margin: 0;
}

.contact-form__agreement label {
    display: flex;
    align-items: center;
    gap: 15px;

    cursor: pointer;
}

.contact-form__agreement input[type="checkbox"] {
    position: relative;

    flex: 0 0 auto;

    width: 27px;
    height: 27px;
    margin: 0;

    border: 0;
    border-radius: 6px;

    background-color: #ececef;

    cursor: pointer;
    appearance: none;

    transition:
        background-color 0.25s ease,
        box-shadow 0.25s ease;
}

.contact-form__agreement input[type="checkbox"]:checked {
    background:
        linear-gradient(
            135deg,
            #ff7888 0%,
            #d673ba 52%,
            #7864f5 100%
        );
}

.contact-form__agreement input[type="checkbox"]:checked::after {
    position: absolute;
    top: 5px;
    left: 9px;

    width: 7px;
    height: 13px;

    border-right: 3px solid #ffffff;
    border-bottom: 3px solid #ffffff;

    content: "";

    transform: rotate(45deg);
}

.contact-form__agreement input[type="checkbox"]:focus-visible {
    box-shadow:
        0 0 0 4px rgba(121, 100, 245, 0.18);
}

.contact-form__agreement .wpcf7-list-item-label {
    color: #29252c;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        sans-serif;

    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
}


/* ========================================
送信ボタン
======================================== */

.contact-form__submit-wrap {
    display: flex;
    justify-content: center;

    margin-top: 42px;
}

.contact-page__form .contact-form__submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 160px;
    min-height: 64px;
    padding: 14px 28px;

    border: 0;
    border-radius: 14px;

    background:
        linear-gradient(
            100deg,
            #ff7888 0%,
            #df75b3 48%,
            #7864f5 100%
        );

    color: #ffffff;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        sans-serif;

    font-size: 16px;
    font-weight: 600;
    line-height: 1.4;

    cursor: pointer;
    appearance: none;

    box-shadow:
        0 12px 26px rgba(170, 98, 210, 0.15);

    transition:
        filter 0.25s ease,
        transform 0.3s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.3s ease;
}

.contact-page__form .contact-form__submit:hover {
    filter: brightness(1.04);
    transform: translateY(-4px);

    box-shadow:
        0 18px 32px rgba(170, 98, 210, 0.25);
}

.contact-page__form .contact-form__submit:focus-visible {
    outline: 4px solid rgba(121, 100, 245, 0.22);
    outline-offset: 5px;
}


/* ========================================
ローディング
======================================== */

.contact-page__form .wpcf7-spinner {
    position: absolute;
    margin: 19px 0 0 12px;
}


/* ========================================
送信結果メッセージ
======================================== */

.contact-page__form .wpcf7-response-output {
    margin: 35px 0 0;
    padding: 16px 20px;

    border: 0;
    border-radius: 10px;

    background-color: #f7f2fa;
    color: #5c5362;

    font-family:
        "Noto Sans JP",
        -apple-system,
        BlinkMacSystemFont,
        "Hiragino Sans",
        sans-serif;

    font-size: 14px;
    line-height: 1.7;
    text-align: center;
}

.contact-page__form form.sent .wpcf7-response-output {
    background-color: #f0f8f0;
    color: #4f7852;
}

.contact-page__form form.invalid .wpcf7-response-output,
.contact-page__form form.failed .wpcf7-response-output {
    background-color: #fff1f3;
    color: #b64e5d;
}


/* ========================================
中間幅
======================================== */

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

    .contact-page__hero-inner {
        width: calc(100% - 70px);
    }

    .contact-page__inner {
        width: min(760px, calc(100% - 70px));
    }

    .contact-form__row {
        grid-template-columns: 210px minmax(0, 1fr);
        column-gap: 22px;
    }

    .contact-form__label-area {
        grid-template-columns: minmax(0, 1fr) 68px;
        column-gap: 10px;
    }

    .contact-form__required {
        min-width: 68px;
    }

}









































@media screen and (max-width: 767px) {
	  .top-instagram-posts {
    padding: 60px 0 70px;

    overflow: hidden;
  }


  /* ==================================================
     INNER
  ================================================== */

  .top-instagram-posts__inner {
    width: 100%;

    margin: 0;
  }


  /* ==================================================
     HEADING
  ================================================== */

  .top-instagram-posts__heading {
    margin-bottom: 32px;
    padding: 0 20px;

    text-align: center;
  }

  .top-instagram-posts__en {
    margin-bottom: 7px;

    font-size: 36px;
  }

  .top-instagram-posts__title {
    font-size: 18px;
  }


  /* ==================================================
     HORIZONTAL SLIDE
  ================================================== */

  .top-instagram-posts__grid {
    display: flex;
    flex-wrap: nowrap;

    gap: 14px;

    width: 100%;

    padding: 0 20px 10px;

    overflow-x: auto;
    overflow-y: hidden;

    /*
     * 指でスワイプした時の滑らかさ
     */
    -webkit-overflow-scrolling: touch;

    /*
     * 1枚ごとに止まりやすくする
     */
    scroll-snap-type: x mandatory;

    /*
     * スクロールバー非表示
     */
    scrollbar-width: none;
  }

  .top-instagram-posts__grid::-webkit-scrollbar {
    display: none;
  }


  /* ==================================================
     ITEM
  ================================================== */

  .top-instagram-posts__item {
    flex: 0 0 78vw;

    width: 78vw;
    max-width: 330px;

    scroll-snap-align: start;
  }


  /* ==================================================
     IMAGE
  ================================================== */

  .top-instagram-posts__image-wrap {
    width: 100%;
    aspect-ratio: 3 / 4;
  }

  .top-instagram-posts__image {
    width: 100%;
    height: 100%;

    object-fit: cover;
  }


  /* SPではホバー効果を解除 */
  .top-instagram-posts__item:hover
  .top-instagram-posts__image {
    transform: none;
  }


  /* ==================================================
     BUTTON
  ================================================== */

  .top-instagram-posts__button-wrap {
    margin-top: 36px;
    padding: 0 20px;
  }

  .top-instagram-posts__button {
    width: 225px;
    min-height: 60px;

    padding: 0 20px 0 24px;

    border-radius: 16px;

    font-size: 14px;
  }

  .top-instagram-posts__button-arrow {
    width: 28px;
    height: 28px;
  }

    /* ========================================
    SPヘッダー全体
    ======================================== */

    .site-header {
        position: relative;
        z-index: 9999;
        width: 100%;
    }

    .site-header__inner {
        position: relative;
        z-index: 10002;
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        min-height: 76px;
        padding: 0 18px;
        background-color: var(--header-background);
    }


    /* ========================================
    SPロゴ
    ======================================== */

    .site-header__logo {
        display: flex;
        align-items: center;
        height: auto;
        padding-left: 0;
    }

    .site-header__logo-link {
        width: 58px;
        height: 58px;
    }

    .site-header__logo-image {
        width: 58px;
        height: 58px;
    }


    /* ========================================
    PC用ナビ・CTAを非表示
    ======================================== */

    .site-header__nav,
    .site-header__contact {
        display: none;
    }


    /* ========================================
    ハンバーガーボタン
    ======================================== */

    .site-header__hamburger {
        position: relative;
        z-index: 10003;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 6px;
        width: 48px;
        height: 48px;
        padding: 0;
        border: 0;
        border-radius: 50%;
        background:
            linear-gradient(
                135deg,
                #eb8791 0%,
                #db78b6 50%,
                #9867f0 100%
            );
        cursor: pointer;
        appearance: none;
        box-shadow: 0 5px 15px rgba(166, 96, 205, 0.2);
    }

    .site-header__hamburger-line {
        display: block;
        width: 23px;
        height: 3px;
        border-radius: 999px;
        background-color: #ffffff;
        transform-origin: center;
        transition:
            transform 0.3s ease,
            opacity 0.3s ease;
    }

    .site-header__hamburger.is-active
        .site-header__hamburger-line:nth-child(1) {
        transform: translateY(9px) rotate(45deg);
    }

    .site-header__hamburger.is-active
        .site-header__hamburger-line:nth-child(2) {
        opacity: 0;
    }

    .site-header__hamburger.is-active
        .site-header__hamburger-line:nth-child(3) {
        transform: translateY(-9px) rotate(-45deg);
    }


    /* ========================================
    SPメニュー
    ======================================== */

    .sp-menu {
        position: fixed;
        top: 76px;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 10001;
        display: block;
        visibility: hidden;
        width: 100%;
        height: calc(100dvh - 76px);
        overflow-y: auto;
        background-color: rgba(255, 253, 247, 0.98);
        opacity: 0;
        transform: translateY(-15px);
        pointer-events: none;
        transition:
            visibility 0.35s ease,
            opacity 0.35s ease,
            transform 0.35s ease;
    }

    .sp-menu.is-open {
        visibility: visible;
        opacity: 1;
        transform: translateY(0);
        pointer-events: auto;
    }

    .sp-menu__inner {
        display: flex;
        flex-direction: column;
        min-height: 100%;
        padding: 35px 24px 30px;
    }

    .sp-menu__nav {
        width: 100%;
    }

    .sp-menu__list {
        width: 100%;
        margin: 0;
        padding: 0;
        list-style: none;
    }

    .sp-menu__item {
        border-bottom: 1px solid rgba(94, 75, 64, 0.1);
    }

    .sp-menu__link {
        position: relative;
        display: flex;
        align-items: center;
        width: 100%;
        min-height: 66px;
        padding: 14px 36px 14px 12px;
        font-size: 18px;
        font-weight: 800;
        line-height: 1.5;
        letter-spacing: 0.04em;
        text-decoration: none;
    }

    .sp-menu__link::after {
        position: absolute;
        top: 50%;
        right: 12px;
        width: 9px;
        height: 9px;
        border-top: 2px solid currentColor;
        border-right: 2px solid currentColor;
        content: "";
        transform: translateY(-50%) rotate(45deg);
    }

    .sp-menu__link--about {
        color: var(--header-about);
    }

    .sp-menu__link--member {
        color: var(--header-member);
    }

    .sp-menu__link--story {
        color: var(--header-story);
    }

    .sp-menu__link--works {
        color: var(--header-works);
    }

    .sp-menu__link--news {
        color: var(--header-news);
    }


    /* ========================================
    SPお問い合わせCTA
    ======================================== */

    .sp-menu__contact {
        width: 100%;
        margin-top: 34px;
    }

    .sp-menu__contact-link {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 12px;
        width: 100%;
        min-height: 72px;
        padding: 16px 20px;
        border-radius: 14px;
        background:
            linear-gradient(
                120deg,
                var(--header-contact-start) 0%,
                var(--header-contact-middle) 52%,
                var(--header-contact-end) 100%
            );
        color: #ffffff;
        text-decoration: none;
        box-shadow: 0 8px 20px rgba(180, 96, 196, 0.2);
    }

    .sp-menu__contact-text {
        font-size: 16px;
        font-weight: 800;
        line-height: 1.5;
        letter-spacing: 0.035em;
        text-align: center;
    }

    .sp-menu__contact-icon {
        position: relative;
        display: block;
        flex: 0 0 auto;
        width: 24px;
        height: 24px;
        border-radius: 50%;
        background-color: #ffffff;
    }

    .sp-menu__contact-icon::before {
        position: absolute;
        top: 50%;
        left: 52%;
        width: 0;
        height: 0;
        border-top: 5px solid transparent;
        border-bottom: 5px solid transparent;
        border-left: 7px solid #b76bda;
        content: "";
        transform: translate(-50%, -50%);
    }
	 /* ========================================
    FV全体
    ======================================== */

    .top-fv {
        min-height: auto;
        padding: 10px 0 112px;
        overflow: hidden;
    }

    .top-fv__inner {
        width: calc(100% - 32px);
        max-width: none;
        min-height: 550px;
        margin: 0 auto;
    }


    /* ========================================
    FV画像
    ======================================== */

    .top-fv__visual {
        width: 100%;
        height: 550px;
    }

    .top-fv__image {
        width: 100%;
        height: 100%;
        object-fit: cover;

        /*
        元画像の人物が中央から右にいるため、
        SPでは少し右寄りを表示
        */
        object-position: 58% center;
    }

    .top-fv__visual::after {
        position: absolute;
        inset: 0;
        z-index: 1;
        background:
            linear-gradient(
                180deg,
                rgba(0, 0, 0, 0.04) 0%,
                rgba(0, 0, 0, 0) 45%,
                rgba(0, 0, 0, 0.18) 100%
            );
        content: "";
        pointer-events: none;
    }


    /* ========================================
    FVテキスト
    ======================================== */

    .top-fv__content {
        top: 20px;
        left: 0px;
        z-index: 2;
        width: calc(100% + 4px);
		padding-left:13px;
    }

    .top-fv__title {
        gap: 15px;
    }

    .top-fv__title-line {
        font-size: clamp(41px, 12.5vw, 56px);
        line-height: 1;
        letter-spacing: -0.07em;
        -webkit-text-stroke: 5px #ffffff;
    }


    /* ========================================
    FVサブテキスト
    ======================================== */

    .top-fv__description {
        position: absolute;
        top: 380px;
        left: 0;
        width: 100%;
        margin-top: 0;
        padding: 0 13px;
    }

    .top-fv__description p {
        font-size: clamp(14px, 4vw, 18px);
        line-height: 1.65;
        letter-spacing: -0.045em;
        white-space: normal;
        -webkit-text-stroke: 3px #ffffff;
    }

    .top-fv__description p + p {
        margin-top: 3px;
    }


    /* ========================================
    Instagram追従ボタン
    ======================================== */

    .instagram-fixed {
        right: 12px;
        bottom: 14px;
        width: calc(100% - 24px);
        min-height: 68px;
        padding: 4px;
        box-shadow:
            0 7px 20px rgba(111, 79, 190, 0.18);
    }

    .instagram-fixed::before {
        inset: 4px;
    }

    .instagram-fixed__inner {
        gap: 10px;
        min-height: 60px;
        padding: 10px 16px;
    }

    .instagram-fixed__icon {
        width: 31px;
        height: 31px;
    }

    .instagram-fixed__text {
        font-size: clamp(14px, 4vw, 17px);
        letter-spacing: 0;
        white-space: nowrap;
    }
	/*======================================
Blog Section
======================================*/

.top-blog{
    padding:60px 0 70px;
    overflow:hidden;
}

.top-blog__inner{
    width:100%;
}


/*======================================
Heading
======================================*/

.top-blog__heading{
    padding:0 20px;
    margin-bottom:35px;
}

.top-blog__heading-ja{
    margin:0 0 8px;
    font-size:17px;
    font-weight:400;
    line-height:1.6;
}

.top-blog__heading-en{
    display:block;
    width:max-content;

    padding-bottom:10px;

    font-size:62px;
    font-weight:300;
    line-height:1.15;

    letter-spacing:0;

    overflow:visible;
}


/*======================================
Slider
======================================*/

.top-blog__slider-wrap{
    padding-left:20px;
}

.top-blog__slider{
    overflow:visible;
}

.top-blog__slider .swiper-wrapper{
    display:flex;
    gap:16px;
}

.top-blog__slide{

    flex:0 0 82vw;

    width:82vw !important;

    max-width:340px;

    margin-right:0 !important;
}


/*======================================
Card
======================================*/

.top-blog__card{
    display:block;
    width:100%;
}


/*======================================
Thumbnail
======================================*/

.top-blog__thumbnail{

    width:100%;

    aspect-ratio:16 / 10;

    overflow:hidden;

    border-radius:0;
}

.top-blog__image{

    width:100%;

    height:100%;

    object-fit:cover;

    transition:none;
}


/*======================================
Body
======================================*/

.top-blog__body{

    padding-top:14px;
}

.top-blog__date{

    margin-bottom:6px;

    font-size:13px;

    font-weight:400;

    line-height:1.6;

    color:#8d8992;
}

.top-blog__title{

    display:-webkit-box;

    overflow:hidden;

    font-size:18px;

    font-weight:400;

    line-height:1.6;

    color:#222;

    -webkit-line-clamp:2;

    -webkit-box-orient:vertical;
}


/*======================================
Navigation
======================================*/

.top-blog__navigation{

    display:flex;

    gap:10px;

    margin-top:28px;

    padding-left:20px;
}

.top-blog__arrow{

    width:52px;

    height:52px;
}

.top-blog__arrow-icon{

    width:24px;

    height:6px;
}

.top-blog__arrow-icon::before,
.top-blog__arrow-icon::after{

    width:11px;

    height:6px;
}


/*======================================
No Post
======================================*/

.top-blog__empty{

    margin:40px 20px 0;

    font-size:15px;
}
	    /* ========================================
    ABOUT US
    ======================================== */

    .top-about {
        padding: 68px 0 75px;
        overflow: hidden;
    }

    .top-about__inner {
        width: 100%;
        max-width: none;
        min-height: 0;
        padding: 0 20px;
    }


    /* ========================================
    人物画像
    ======================================== */
    .top-about__person-2 {
        position: relative;
        top: auto;
        left: auto;
        z-index: 2;
        width: 80px;
        margin: -10px 0 -12px -4px;
    }

 
    .top-about__person {
        position: relative;
        top: auto;
        left: auto;
        z-index: 2;
        width: 126px;
        margin: -35px 0 -12px -4px;
    }

    .top-about__person-image {
        filter:
            drop-shadow(6px 6px 4px rgba(229, 66, 88, 0.33))
            drop-shadow(2px 2px 1px rgba(229, 66, 88, 0.2));
    }


    /* ========================================
    見出し
    ======================================== */

    .top-about__heading {
        margin-top: -43px;
        padding-left: 74px;
        text-align: center;
    }

    .top-about__heading-ja {
        margin-bottom: 3px;
        font-size: 15px;
        line-height: 1.5;
    }

    .top-about__heading-en {
        padding: 0 5px 8px;
        font-size: 47px;
        font-weight: 300;
        line-height: 1.18;
        letter-spacing: -0.03em;
    }


    /* ========================================
    メインコピー
    ======================================== */

    .top-about__lead {
        margin-top: 36px;
    }

    .top-about__lead p {
        font-size: 19px;
        font-weight: 800;
        line-height: 1.65;
    }


    /* ========================================
    SPレイアウト
    ======================================== */

    .top-about__row {
        display: flex;
        flex-direction: column;
        width: 100%;
    }

    .top-about__row--01 {
        margin-top: 37px;
    }

    .top-about__row--02 {
        margin-top: 36px;
    }


    /* ========================================
    写真共通
    ======================================== */

    .top-about__photo {
        width: calc(100% - 10px);
        margin-right: auto;
        margin-left: auto;
    }

    .top-about__photo-frame,
    .top-about__photo--03 .top-about__photo-frame,
    .top-about__photo--04 .top-about__photo-frame {
        width: 100%;
        height: auto;
        aspect-ratio: 4 / 3;
    }

    .top-about__photo-image {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }


    /* 左上 */

    .top-about__photo--01 {
        order: 1;
        margin-left: 0;
    }

    .top-about__photo--01 .top-about__photo-frame::after {
        right: -8px;
        bottom: -8px;
    }


    /* 上段テキスト */

    .top-about__text--01 {
        order: 2;
        padding-top: 35px;
    }


    /* 右上 */

    .top-about__photo--02 {
        order: 3;
        margin-top: 35px;
        margin-right: 0;
        margin-left: auto;
    }

    .top-about__photo--02 .top-about__photo-frame::after {
        left: -8px;
        bottom: -8px;
    }

.top-story__person--purple {
    right: 4.3vw;
    bottom: -105px;
    width:80px;
}
    /* 左下 */

    .top-about__photo--03 {
        order: 1;
        margin-left: 0;
    }

    .top-about__photo--03 .top-about__photo-frame::after {
        right: -8px;
        bottom: -8px;
    }


    /* 下段テキスト */

    .top-about__text--02 {
        order: 2;
        padding-top: 35px;
    }


    /* 右下 */

    .top-about__photo--04 {
        order: 3;
        margin-top: 35px;
        margin-right: 0;
        margin-left: auto;
    }

    .top-about__photo--04 .top-about__photo-frame::after {
        left: -8px;
        bottom: -8px;
    }


    /* ========================================
    中央文章
    ======================================== */

    .top-about__text {
        width: 100%;
        text-align: left;
    }

    .top-about__text p {
        font-size: 15px;
        font-weight: 400;
        line-height: 1.9;
        letter-spacing: 0.02em;
    }

    .top-about__text p + p {
        margin-top: 29px;
    }
	 /* ========================================
    セクション全体
    ======================================== */

    .top-data {
        min-height: auto;
        padding: 48px 0 165px;
        background-color: #fbf7ef;
    }


    /* ========================================
    背景装飾
    ======================================== */

    .top-data__background::before {
        top: -100px;
        left: -280px;
        width: 650px;
        height: 620px;
        background-color: rgba(255, 255, 255, 0.52);
    }

    .top-data__background::after {
        top: 100px;
        right: -310px;
        width: 680px;
        height: 720px;
        background-color: rgba(255, 255, 255, 0.44);
    }

    .top-data::before {
        right: -330px;
        bottom: -350px;
        width: 720px;
        height: 560px;
    }


    /* ========================================
    内部
    ======================================== */

    .top-data__inner {
        min-height: 0;
    }


    /* ========================================
    縦書きタイトル
    ======================================== */

    .top-data__side-title {
        top: 35px;
        left: 13px;

        line-height: 0.9;
        letter-spacing: 0.04em;
    }


    /* ========================================
    グリッド
    ======================================== */

    .top-data__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: 13px;
        row-gap: 18px;

        width: auto;
        margin: 0;
        padding: 0 16px 0 84px;
    }


    /* ========================================
    カード
    ======================================== */

    .top-data__card {
        width: 100%;
        height: auto;
        min-height: 157px;
        border-width: 3px;
    }

    .top-data__card-content {
        padding: 20px 6px 17px;
    }


    /* ========================================
    数値
    ======================================== */

    .top-data__number {
        min-height: 52px;
    }

    .top-data__number-main {
        font-size: clamp(37px, 10vw, 48px);
        letter-spacing: -0.065em;
    }

    .top-data__card--visitors .top-data__number-main {
        font-size: clamp(31px, 8.3vw, 41px);
    }

    .top-data__card--year .top-data__number-main {
        font-size: clamp(30px, 8.1vw, 40px);
    }

    .top-data__card--members .top-data__number-main {
        font-size: clamp(39px, 10.5vw, 50px);
    }


    /* ========================================
    単位
    ======================================== */

    .top-data__unit {
        margin: 0 0 5px 5px;
        font-size: clamp(14px, 3.8vw, 18px);
    }


    /* ========================================
    ラベル
    ======================================== */

    .top-data__label,
    .top-data__card--performance .top-data__label,
    .top-data__card--members .top-data__label {
        margin-top: 14px;
        font-size: clamp(13px, 3.7vw, 17px);
        line-height: 1.4;
    }


    /* ========================================
    人物
    ======================================== */

    .top-data__person {
        right: -6px;
        bottom: -3px;
        width: clamp(118px, 34vw, 160px);
    }

    .top-data__person-image {
        filter:
            drop-shadow(-4px 1px 6px rgba(232, 184, 46, 0.28))
            drop-shadow(0 0 11px rgba(255, 210, 68, 0.19));
    }
	    /* ========================================
    メンバーセクション
    ======================================== */

    .top-member {
        padding: 54px 0 72px;
    }

    .top-member__heading {
        padding: 0 20px;
    }

    .top-member__heading-ja {
        margin-bottom: 7px;
        font-size: 18px;
    }

    .top-member__heading-en {
        padding-right: 7px;
        font-size: clamp(55px, 17vw, 73px);
        line-height: 1.1;
    }


    /* ========================================
    横スクロール
    ======================================== */

    .top-member__list {
        display: flex;
        gap: 10px;

        width: 100%;
        max-width: none;
        margin-top: 48px;
        padding: 0 16px 20px;

        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;

        -webkit-overflow-scrolling: touch;
    }

    .top-member__list::-webkit-scrollbar {
        display: none;
    }


    /* ========================================
    SPカード
    ======================================== */

    .top-member__item {
        flex: 0 0 72vw;

        width: 72vw;
        max-width: 315px;
        height: 520px;

        clip-path: polygon(
            8% 0,
            100% 0,
            92% 100%,
            0 100%
        );

        scroll-snap-align: center;
    }

    .top-member__item:hover {
        transform: none;
    }

    .top-member__overlay {
        min-height: 120px;
        padding: 20px 17px 27px;
    }

    .top-member__color-name {
        margin-bottom: 10px;
        font-size: 20px;
    }

    .top-member__nickname {
        min-width: 110px;
        min-height: 34px;
        padding: 3px 20px;
        font-size: 19px;
    }

    .top-member__job {
        margin-top: 13px;
        font-size: 14px;
        line-height: 1.5;
    }

    .member-modal {
        padding: 14px;
    }

    .member-modal__dialog {
        width: min(820px, calc(100vw - 40px));
        height: calc(100dvh - 28px);
        max-height: calc(100dvh - 28px);
    }

    .member-modal__content {
        gap: 14px;
        padding: 24px 30px;
    }

    .member-modal__panel,
    .member-modal__panel--name {
        padding: 12px 22px;
    }

    .member-modal__panel-label {
        margin-bottom: 4px;
        font-size: 17px;
    }

    .member-modal__panel-value,
    .member-modal__panel-value--large {
        padding-bottom: 6px;
        font-size: 29px;
        line-height: 1.08;
    }

    .member-modal__panel-value--large {
        font-size: 35px;
    }
	
.top-gallery{

    padding:70px 0;

}

.top-gallery__track + .top-gallery__track{

    margin-top:18px;

}

.top-gallery__item{

    width:220px;

    margin-right:18px;

}

.top-gallery__track--top .top-gallery__inner,

.top-gallery__track--bottom .top-gallery__inner{

    animation-duration:70s;

}
	    /* ========================================
    セクション全体
    ======================================== */

    .top-story {
        min-height: auto;
        padding: 62px 0 92px;
        overflow: hidden;
    }

    .top-story__inner {
        min-height: 0;
    }


    /* ========================================
    見出し
    ======================================== */

    .top-story__heading {
        padding: 0 20px;
    }

    .top-story__heading-ja {
        padding-right: 5px;
        font-size:32px;
        line-height: 1.25;
    }


    /* ========================================
    タイムライン
    ======================================== */

    .top-story__timeline {
        width: auto;
        margin: 65px 20px 0;
        padding: 0 0 0 34px;
    }

    .top-story__timeline::before {
        top: 3px;
        left: 7px;
        width: 3px;
    }


    /* ========================================
    各ストーリー
    ======================================== */

    .top-story__item + .top-story__item {
        margin-top: 50px;
    }

    .top-story__node {
        top: 6px;
        left: -39px;

        width: 25px;
        height: 25px;
    }


    /* ========================================
    文字
    ======================================== */

    .top-story__date {
        margin-bottom: 2px;
        font-size: 15px;
    }

    .top-story__title {
        margin-bottom: 11px;
        font-size: 21px;
        line-height: 1.45;
    }

    .top-story__text {
        font-size: 14px;
        font-weight: 500;
        line-height: 1.85;
    }


    /* ========================================
    SPの写真配置
    ======================================== */

    .top-story__side {
        position: relative;
        top: auto;
        right: auto;
        bottom: auto;
        left: auto;

        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;

        width: auto;
        max-width: none;
        margin: 48px 20px 0;
    }

    .top-story__side--left {
        margin-top: 55px;
    }

    .top-story__side--right {
        margin-top: 12px;
    }

    .top-story__photo {
        position: relative;
        top: auto;
        right: auto;
        bottom: auto;
        left: auto;

        width: 100%;
        height: auto;
        aspect-ratio: 4 / 3;
    }

    .top-story__photo--left03,
    .top-story__photo--right03 {
        grid-column: span 2;
        aspect-ratio: 16 / 8.5;
    }


    /* ========================================
    SP人物
    ======================================== */

    .top-story__person--pink {
        top: 5px;
        right: -12px;
        width: 105px;
    }

    .top-story__person--green {
        right: -2px;
        bottom: -118px;
        width: 60px;
    }
	    .top-story__person--purple {
        right: -2px;
        bottom: -118px;
        width: 60px;
    }
	    /* ========================================
    セクション全体
    ======================================== */

    .top-instagram {
        min-height: auto;
        padding: 64px 0 76px;

        background-color: #f1f1f1;
    }


    /* ========================================
    背景装飾
    ======================================== */

    .top-instagram__shape--left {
        top: -100px;
        left: -360px;

        width: 640px;
        height: 780px;

        background-color: rgba(255, 255, 255, 0.56);
    }

    .top-instagram__shape--center {
        top: 30px;
        left: 42%;

        width: 230px;
        height: 650px;

        background-color: rgba(255, 255, 255, 0.48);
        transform: rotate(-9deg);
    }

    .top-instagram__shape--right {
        top: 40px;
        right: -430px;

        width: 680px;
        height: 730px;

        background-color: rgba(255, 255, 255, 0.54);
    }


    /* ========================================
    レイアウト
    ======================================== */

    .top-instagram__inner {
        display: flex;
        flex-direction: column;
        align-items: stretch;

        min-height: 0;

        padding: 0 20px;
    }


    /* ========================================
    見出し
    ======================================== */

    .top-instagram__title-en {
        padding-right: 6px;

        font-size: clamp(55px, 17vw, 72px);
        line-height: 1.08;
    }

    .top-instagram__title-ja {
        margin-top: 12px;
        padding-right: 6px;

        font-size: clamp(39px, 11.5vw, 52px);
        line-height: 1.3;
        letter-spacing: 0;
    }


    /* ========================================
    説明文
    ======================================== */

    .top-instagram__description {
        margin-top: 38px;
    }

    .top-instagram__description p {
        font-size: clamp(16px, 4.4vw, 19px);
        font-weight: 500;
        line-height: 1.85;
    }

    .top-instagram__description p + p {
        margin-top: 6px;
    }


    /* ========================================
    ボタン
    ======================================== */

    .top-instagram__action {
        margin-top: 46px;
    }

    .top-instagram__button {
        width: 100%;
        min-height: 76px;

        padding: 15px 20px;
    }

    .top-instagram__button-inner {
        gap: 12px;
    }

    .top-instagram__button-icon {
        width: 36px;
        height: 36px;
    }

    .top-instagram__button-text {
        font-size: clamp(15px, 4vw, 18px);
        line-height: 1.45;
        white-space: nowrap;
    }
    /* ========================================
    セクション全体
    ======================================== */

    .top-program {
        padding: 65px 0 86px;
        overflow: hidden;
    }


    /* ========================================
    レイアウト
    ======================================== */

    .top-program__row {
        display: flex;
        flex-direction: column;
        align-items: stretch;

        min-height: 0;

        padding: 0 20px;
    }

    .top-program__row--exercise {
        margin-top: 92px;
    }


    /* ========================================
    タイトル
    ======================================== */

    .top-program__title {
        font-size:30px;
        line-height: 1.4;
    }


    /* ========================================
    説明文
    ======================================== */

    .top-program__description {
        margin-top: 25px;
    }

    .top-program__description p {
        font-size: clamp(16px, 4.3vw, 19px);
        line-height: 1.85;
    }

    .top-program__description p + p {
        margin-top: 5px;
    }


    /* ========================================
    画像エリア
    ======================================== */

    .top-program__visual {
        align-self: center;
        justify-self: auto;

        width: 100%;
        max-width: 390px;
        height: 370px;

        margin-top: 40px;
    }


    /* ========================================
    画像
    ======================================== */

    .top-program__photo {
        width: 56vw;
        max-width: 230px;
        height: auto;
        aspect-ratio: 3 / 4;
    }


    /* 上段左奥 */

    .top-program__visual--pneumonia .top-program__photo--back {
        top: 0;
        left: 3%;

        border-width: 5px;
        transform: rotate(-2.5deg);
    }


    /* 上段右手前 */

    .top-program__visual--pneumonia .top-program__photo--front {
        top: 45px;
        right: 3%;

        border-width: 5px;
        transform: rotate(6deg);
    }


    /* 下段左奥 */

    .top-program__visual--exercise .top-program__photo--back {
        top: 0;
        left: 3%;

        border-width: 5px;
        transform: rotate(-2.5deg);
    }


    /* 下段右手前 */

    .top-program__visual--exercise .top-program__photo--front {
        top: 45px;
        right: 3%;

        border-width: 5px;
        transform: rotate(6deg);
    }


    /* ========================================
    人物
    ======================================== */

    .top-program__person {
        top: 550px;
        left: -5px;

        width: 82px;
    }
	    /* ========================================
    セクション全体
    ======================================== */

    .top-instagram-follow {
        position: relative;
        width: 100%;
        min-height: auto;
        padding: 44px 0 70px;
        overflow: hidden;
        background-color: #ffffff;
    }


    /* ========================================
    背景の横帯
    ======================================== */

    .top-instagram-follow__decoration {
        position: absolute;
        inset: 0;
        z-index: 0;
        pointer-events: none;
    }

    .top-instagram-follow__band {
        left: 0;
        height: 64px;
    }

    .top-instagram-follow__band--pink {
        top: 88px;
        width: 58vw;
        background-color: #f8d5df;
    }

    .top-instagram-follow__band--purple {
        top: 292px;
        width: 70vw;
        background-color: #e5dcfb;
    }


    /* ========================================
    全体レイアウト
    ======================================== */

    .top-instagram-follow__inner {
        position: relative;
        z-index: 2;

        display: flex;
        flex-direction: column;
        align-items: stretch;

        width: 100%;
        min-height: 0;
    }


    /* ========================================
    左側画像エリア
    ======================================== */

    .top-instagram-follow__visual {
        position: relative;
        align-self: auto;

        width: 100%;
        min-height: 360px;
    }


    /* ========================================
    画像共通
    ======================================== */

    .top-instagram-follow__photo {
        position: absolute;
        margin: 0;
        overflow: hidden;
        background-color: #eeeeee;

        box-shadow:
            0 6px 16px rgba(34, 28, 39, 0.08);
    }

    .top-instagram-follow__image {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
    }


    /* ========================================
    1枚目：左端
    ======================================== */

    .top-instagram-follow__photo--01 {
        top: 74px;
        left: 0;
        z-index: 1;

        width: 46vw;
        height: 46vw;
        max-width: 190px;
        max-height: 190px;
    }


    /* ========================================
    2枚目：上側
    ======================================== */

    .top-instagram-follow__photo--02 {
        top: 0;
        left: 37vw;
        z-index: 2;

        width: 48vw;
        height: 43vw;
        max-width: 198px;
        max-height: 178px;
    }


    /* ========================================
    3枚目：手前
    ======================================== */

    .top-instagram-follow__photo--03 {
        top: 170px;
        left: 23vw;
        z-index: 3;

        width: 55vw;
        height: 47vw;
        max-width: 225px;
        max-height: 193px;
    }


    /* ========================================
    右側コンテンツ
    ======================================== */

    .top-instagram-follow__content {
        position: relative;
        z-index: 3;

        display: flex;
        flex-direction: column;
        align-items: center;

        width: 100%;
        padding: 12px 20px 0;
    }


    /* ========================================
    タイトル
    ======================================== */

    .top-instagram-follow__title {
        display: flex;
        flex-direction: column;
        align-items: center;

        margin: 0;

        font-size: clamp(37px, 10vw, 48px);
        font-weight: 400;
        line-height: 1.45;
        letter-spacing: 0.015em;
        text-align: center;
    }

    .top-instagram-follow__title span {
        padding: 0 5px 3px;
    }


    /* ========================================
    Instagramボタン
    ======================================== */

    .top-instagram-follow__button {
        width: 100%;
        max-width: 420px;
        min-height: 78px;

        margin-top: 33px;
        padding: 4px;

        border-radius: 999px;
    }

    .top-instagram-follow__button::before {
        inset: 4px;
    }


    /* ========================================
    ボタン内部
    ======================================== */

    .top-instagram-follow__button-inner {
        gap: 11px;
        padding: 0 15px;
    }

    .top-instagram-follow__button-icon {
        width: 36px;
        height: 36px;
    }

    .top-instagram-follow__button-text {
        padding: 0 2px 2px;

        font-size: clamp(14px, 3.9vw, 17px);
        line-height: 1.4;
        letter-spacing: 0;
        white-space: nowrap;
    }


    /* ========================================
    SPではホバー移動を解除
    ======================================== */

    .top-instagram-follow__button:hover {
        transform: none;
    }
	
    /* ========================================
    フッター全体
    ======================================== */

    .site-footer {
        padding: 62px 0 20px;
        background-color: #eeeeee;
    }


    /* ========================================
    内部レイアウト
    ======================================== */

    .site-footer__inner {
        display: flex;
        flex-direction: column;
        align-items: stretch;

        width: 100%;
        min-height: 0;

        padding: 0 20px;
    }


    /* ========================================
    ブランドエリア
    ======================================== */

    .site-footer__brand {
        width: 100%;
    }


    /* ========================================
    ロゴ
    ======================================== */

    .site-footer__logo {
        padding-right: 5px;

        font-size: 33px;
        line-height: 1.3;
    }


    /* ========================================
    説明文
    ======================================== */

    .site-footer__description {
        margin-top: 14px;
    }

    .site-footer__description p {
        font-size: 14px;
        line-height: 1.8;
    }


    /* ========================================
    Instagramボタン
    ======================================== */

    .site-footer__instagram {
        width: 100%;
        max-width: 420px;
        min-height: 72px;

        margin-top: 26px;
        padding: 4px;
    }

    .site-footer__instagram::before {
        inset: 4px;
    }

    .site-footer__instagram-inner {
        gap: 12px;
        padding: 0 24px;
    }

    .site-footer__instagram-icon {
        width: 32px;
        height: 32px;
    }

    .site-footer__instagram-text {
        font-size: clamp(14px, 4vw, 17px);
        white-space: nowrap;
    }


    /* ========================================
    ナビゲーション
    ======================================== */

    .site-footer__navigation {
        margin-top: 52px;
    }

    .site-footer__menu {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: stretch;
        gap: 19px 17px;

        width: 100%;
    }

    .site-footer__menu-item {
        width: 100%;
    }

    .site-footer__menu-link {
        display: flex;
        align-items: center;
        justify-content: flex-start;

        width: 100%;
        min-height: 48px;

        padding: 10px 12px;

        border: 1px solid currentColor;
        border-radius: 6px;

        background-color: rgba(255, 255, 255, 0.38);

        font-size: 15px;
        line-height: 1.4;
    }

    .site-footer__menu-link::after {
        display: none;
    }

    .site-footer__menu-link:hover {
        transform: none;
    }


    /* 最後の1項目を横幅いっぱい */

    .site-footer__menu-item:last-child {
        grid-column: 1 / -1;
    }

    .site-footer__menu-item:last-child .site-footer__menu-link {
        justify-content: center;
    }


    /* ========================================
    コピーライト
    ======================================== */

    .site-footer__bottom {
        width: calc(100% - 40px);
        margin-top: 38px;
        padding-top: 17px;
    }

    .site-footer__copyright {
        font-size: 10px;
        line-height: 1.6;
        text-align: center;
    }
	    /* ========================================
    ページビジュアル
    ======================================== */

    .news-archive__hero {
        height: 240px;
        background-position: center center;
    }

    .news-archive__hero-overlay {
        background-color: rgba(255, 255, 255, 0.72);
    }

    .news-archive__hero-inner {
        width: 100%;
        padding: 0 20px;
    }

    .news-archive__heading-en {
        padding-right: 6px;
        font-size: clamp(55px, 17vw, 73px);
    }

    .news-archive__heading-ja {
        margin-top: 9px;
        font-size: 18px;
    }


    /* ========================================
    一覧エリア
    ======================================== */

    .news-archive__content {
        padding: 58px 0 78px;
    }

    .news-archive__inner {
        width: 100%;
        padding: 0 20px;
    }


    /* ========================================
    投稿リンク
    ======================================== */

    .news-archive__link {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr) 15px;
        grid-template-areas:
            "date category arrow"
            "title title arrow";
        align-items: center;
        gap: 10px 13px;

        min-height: 0;
        padding: 21px 7px;
    }

    .news-archive__link:hover {
        padding-left: 7px;
    }


    /* ========================================
    日付
    ======================================== */

    .news-archive__date {
        grid-area: date;

        font-size: 14px;
        line-height: 1.5;
    }


    /* ========================================
    カテゴリ
    ======================================== */

    .news-archive__category {
        grid-area: category;
        justify-self: start;

        width: auto;
        min-width: 84px;
        min-height: 28px;

        padding: 3px 11px;

        font-size: 11px;
    }


    /* ========================================
    タイトル
    ======================================== */

    .news-archive__title {
        grid-area: title;

        display: -webkit-box;
        overflow: hidden;

        font-size: 15px;
        line-height: 1.65;
        white-space: normal;

        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }


    /* ========================================
    矢印
    ======================================== */

    .news-archive__arrow {
        grid-area: arrow;

        width: 12px;
        height: 12px;

        border-top-width: 1.5px;
        border-right-width: 1.5px;
    }


    /* ========================================
    ページネーション
    ======================================== */

    .news-archive__pagination {
        margin-top: 45px;
    }

    .news-archive__pagination .nav-links {
        flex-wrap: wrap;
        gap: 8px;
    }

    .news-archive__pagination .page-numbers {
        min-width: 40px;
        height: 40px;
        padding: 0 10px;

        font-size: 13px;
    }

    .news-archive__pagination .page-numbers.prev,
    .news-archive__pagination .page-numbers.next {
        padding: 0 14px;
    }
	    /* ========================================
    ページビジュアル
    ======================================== */

    .news-single__hero {
        height: 240px;
        background-position: center;
    }

    .news-single__hero-inner {
        width: 100%;
        padding: 0 20px;
    }

    .news-single__hero-en {
        padding-right: 6px;
        font-size: clamp(55px, 17vw, 73px);
    }

    .news-single__hero-ja {
        margin-top: 9px;
        font-size: 18px;
    }


    /* ========================================
    記事エリア
    ======================================== */

    .news-single__article {
        padding: 58px 0 80px;
    }

    .news-single__inner {
        width: 100%;
        padding: 0 20px;
    }


    /* ========================================
    記事ヘッダー
    ======================================== */

    .news-single__header {
        padding-bottom: 27px;
    }

    .news-single__meta {
        gap: 12px;
    }

    .news-single__date {
        font-size: 14px;
    }

    .news-single__category {
        min-width: 86px;
        min-height: 28px;
        padding: 3px 12px;

        font-size: 11px;
    }


    /* タイトル */

    .news-single__title {
        margin-top: 19px;

        font-size: clamp(25px, 7.3vw, 34px);
        line-height: 1.55;
    }


    /* ========================================
    アイキャッチ
    ======================================== */

    .news-single__thumbnail {
        margin-top: 35px;
    }

    .news-single__thumbnail-image {
        max-height: none;
    }


    /* ========================================
    本文
    ======================================== */

    .news-single__content {
        margin-top: 42px;

        font-size: 15px;
        line-height: 1.95;
        letter-spacing: 0.015em;
    }

    .news-single__content p {
        margin-bottom: 24px;
    }


    /* 見出し2 */

    .news-single__content h2 {
        margin: 52px 0 25px;
        padding: 15px 15px 16px 19px;

        border-left-width: 4px;

        font-size: 22px;
        line-height: 1.55;
    }


    /* 見出し3 */

    .news-single__content h3 {
        margin: 42px 0 22px;
        padding-bottom: 10px;

        font-size: 19px;
        line-height: 1.6;
    }


    /* 見出し4 */

    .news-single__content h4 {
        margin: 34px 0 17px;
        font-size: 17px;
    }


    /* 画像 */

    .news-single__content figure {
        margin: 34px 0;
    }

    .news-single__content figcaption {
        margin-top: 9px;
        font-size: 11px;
    }


    /* リスト */

    .news-single__content ul,
    .news-single__content ol {
        margin: 25px 0;
        padding-left: 1.5em;
    }


    /* 引用 */

    .news-single__content blockquote {
        margin: 34px 0;
        padding: 22px 18px 22px 24px;

        border-left-width: 4px;
    }


    /* テーブル横スクロール */

    .news-single__content .wp-block-table {
        margin: 35px 0;
        overflow-x: auto;
    }

    .news-single__content table {
        min-width: 600px;
        margin: 0;
    }

    .news-single__content th,
    .news-single__content td {
        padding: 12px 13px;
        font-size: 13px;
    }


    /* ========================================
    一覧へ戻る
    ======================================== */

    .news-single__back {
        margin-top: 62px;
        padding-top: 40px;
    }

    .news-single__back-link {
        width: 100%;
        min-width: 0;
        min-height: 64px;

        padding: 13px 25px;

        font-size: 15px;
    }

    .news-single__back-arrow {
        width: 11px;
        height: 11px;
    }


    /* ========================================
    Not Found
    ======================================== */

    .news-single__not-found {
        padding: 90px 20px;
    }

    .news-single__not-found-title {
        font-size: 27px;
        line-height: 1.5;
    }

    .news-single__not-found-text {
        margin-top: 22px;
        font-size: 14px;
    }
    /* ========================================
    ページ全体
    ======================================== */

    .contact-page {
        width: 100%;
        overflow: hidden;
        background-color: #ffffff;
    }


    /* ========================================
    PAGE VISUAL
    ======================================== */

    .contact-page__hero {
        height: 230px;

        background-position: center center;
        background-size: cover;
    }

    .contact-page__hero-overlay {
        background-color: rgba(255, 255, 255, 0.68);
    }

    .contact-page__hero-inner {
        width: 100%;
        margin: 0;
        padding: 0 20px;
    }

    .contact-page__heading {
        align-items: flex-start;
    }

    .contact-page__heading-en {
        padding: 0 6px 4px 0;

        font-size: clamp(52px, 16vw, 68px);
        font-weight: 300;
        line-height: 1.08;
        letter-spacing: -0.04em;
    }

    .contact-page__heading-ja {
        margin-top: 9px;

        font-size: 17px;
        line-height: 1.5;
    }


    /* ========================================
    フォームセクション
    ======================================== */

    .contact-page__form-section {
        padding: 58px 0 82px;
    }

    .contact-page__inner {
        width: 100%;
        margin: 0;
        padding: 0 20px;
    }

    .contact-page__form {
        width: 100%;
    }


    /* ========================================
    CF7の基本リセット
    ======================================== */

    .contact-page__form .wpcf7,
    .contact-page__form .wpcf7-form,
    .contact-page__form .wpcf7-form-control-wrap {
        width: 100%;
    }

    .contact-page__form .wpcf7-form {
        margin: 0;
    }

    .contact-page__form .wpcf7-form p {
        margin: 0;
    }


    /* ========================================
    フォーム行
    PCの2列をSPでは縦並びに変更
    ======================================== */

    .contact-form__row {
        display: block;

        width: 100%;
    }

    .contact-form__row + .contact-form__row {
        margin-top: 30px;
    }

    .contact-form__row--textarea {
        align-items: initial;
    }


    /* ========================================
    項目名＋必須
    ======================================== */

    .contact-form__label-area {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 63px;
        align-items: center;
        column-gap: 14px;

        width: 100%;
        margin-bottom: 12px;
    }


    /* ========================================
    項目名
    PCのtranslateY(-12px)を必ず解除
    ======================================== */

    .contact-form__label {
        display: block;

        margin: 0;

        color: #29252c;

        font-size: 15px;
        font-weight: 500;
        line-height: 1.45;
        letter-spacing: 0.01em;

        /*
        PC版の位置調整を解除
        */
        transform: none;
    }


    /* ========================================
    必須ラベル
    ======================================== */

    .contact-form__required {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        justify-self: end;

        width: 63px;
        height: 32px;
        min-width: 63px;
        min-height: 32px;
        padding: 0;

        border-width: 2px;

        font-size: 0;
        line-height: 1;

        transform: none;
    }

    .contact-form__required::before {
        font-size: 12px;
        font-weight: 600;
        line-height: 1;

        /*
        文字だけ視覚的に中央へ調整
        */
        transform: translateY(-1px);
    }


    /* ========================================
    入力エリア
    ======================================== */

    .contact-form__field {
        width: 100%;
    }

    .contact-page__form .wpcf7-form-control-wrap {
        display: block;
    }


    /* ========================================
    input・select・textarea
    ======================================== */

    .contact-form__input,
    .contact-form__select,
    .contact-form__textarea {
        width: 100%;

        border-radius: 12px;

        font-size: 16px;
        line-height: 1.5;

        box-sizing: border-box;
    }

    .contact-form__input,
    .contact-form__select {
        height: 52px;
        padding: 0 16px;
    }

    .contact-form__textarea {
        height: 160px;
        min-height: 160px;
        padding: 15px 16px;

        resize: vertical;
    }


    /* ========================================
    セレクト
    ======================================== */

    .contact-form__select {
        padding-right: 42px;

        cursor: pointer;
    }


    /* ========================================
    入力エラー
    ======================================== */

    .contact-page__form .wpcf7-not-valid-tip {
        margin-top: 7px;

        font-size: 12px;
        line-height: 1.5;
    }


    /* ========================================
    プライバシーポリシー全体
    ======================================== */

    .contact-form__privacy {
        width: 100%;
        max-width: none;

        /*
        お問い合わせ内容との間隔
        */
        margin: 58px 0 0;
    }


    /* ========================================
    プライバシーポリシー本文
    ======================================== */

    .contact-form__privacy-box {
        width: 100%;
        height: 220px;

        padding: 20px 18px;

        overflow-x: hidden;
        overflow-y: auto;

        border-radius: 12px;

        box-sizing: border-box;
    }

    .contact-form__privacy-box h3 {
        margin: 0 0 15px;

        font-size: 17px;
        font-weight: 700;
        line-height: 1.5;
    }

    .contact-form__privacy-box p {
        margin: 0;

        font-size: 12px;
        font-weight: 500;
        line-height: 1.85;
    }

    .contact-form__privacy-box p + p {
        margin-top: 16px;
    }

    .contact-form__privacy-box ul {
        margin: 15px 0;
        padding-left: 1.4em;
    }

    .contact-form__privacy-box li {
        margin-bottom: 6px;

        font-size: 12px;
        font-weight: 500;
        line-height: 1.8;
    }


    /* ========================================
    同意チェック
    ======================================== */

    .contact-form__agreement {
        width: 100%;
        margin-top: 18px;
    }

    .contact-form__agreement .wpcf7-form-control-wrap,
    .contact-form__agreement .wpcf7-acceptance {
        display: block;
        width: 100%;
    }

    .contact-form__agreement .wpcf7-list-item {
        display: block;
        margin: 0;
    }

    .contact-form__agreement label {
        display: flex;
        align-items: flex-start;
        gap: 11px;

        width: 100%;
    }

    .contact-form__agreement input[type="checkbox"] {
        display: block;
        flex: 0 0 auto;

        width: 25px;
        height: 25px;
        margin: 1px 0 0;

        border-radius: 6px;

        appearance: none;
        -webkit-appearance: none;
    }

    .contact-form__agreement input[type="checkbox"]:checked::after {
        top: 3px;
        left: 8px;

        width: 7px;
        height: 13px;
    }

    .contact-form__agreement .wpcf7-list-item-label {
        display: block;

        padding-top: 1px;

        font-size: 13px;
        line-height: 1.65;
    }


    /* ========================================
    送信ボタン
    ======================================== */

    .contact-form__submit-wrap {
        position: relative;

        display: flex;
        justify-content: center;

        margin-top: 38px;
    }

    .contact-page__form .contact-form__submit {
        width: 170px;
        min-height: 60px;
        padding: 14px 24px;

        border-radius: 13px;

        font-size: 15px;
    }

    .contact-page__form .contact-form__submit:hover {
        transform: none;
    }


    /* ========================================
    CF7ローディングアイコン
    ======================================== */

    .contact-page__form .wpcf7-spinner {
        position: absolute;
        top: 50%;
        left: calc(50% + 90px);

        margin: 0;

        transform: translateY(-50%);
    }


    /* ========================================
    送信結果メッセージ
    ======================================== */

    .contact-page__form .wpcf7-response-output {
        margin: 28px 0 0;
        padding: 14px 15px;

        border-radius: 9px;

        font-size: 13px;
        line-height: 1.7;
    }
	    /* ========================================
    新着情報セクション
    ======================================== */

    .top-news {
        padding: 57px 0 65px;
    }

    .top-news__inner {
        display: block;
        width: 100%;
        max-width: none;
        min-height: 0;
        padding: 0 20px;
    }


    /* ========================================
    左側見出し
    ======================================== */

    .top-news__heading {
        padding-top: 0;
        margin-bottom: 34px;
    }

    .top-news__heading-ja {
        margin-bottom: 7px;
        font-size: 16px;
        font-weight: 500;
        line-height: 1.5;
    }

    .top-news__heading-en {
        font-size: 52px;
        font-weight: 400;
        line-height: 1;
        letter-spacing: -0.045em;
    }


    /* ========================================
    記事一覧
    ======================================== */

    .top-news__content {
        width: 100%;
    }

    .top-news__item {
        border-bottom: 1px solid rgba(38, 34, 42, 0.12);
    }

    .top-news__item:first-child {
        border-top: 1px solid rgba(38, 34, 42, 0.12);
    }

    .top-news__link {
        display: grid;
        grid-template-columns: auto 1fr;
        grid-template-areas:
            "date category"
            "title title";
        justify-content: start;
        align-items: center;
        column-gap: 18px;
        row-gap: 8px;
        min-height: 0;
        padding: 20px 2px 21px;
    }

    .top-news__link:hover {
        opacity: 1;
        transform: none;
    }


    /* 投稿日 */

    .top-news__date {
        grid-area: date;
        font-size: 15px;
        font-weight: 400;
        line-height: 1.5;
        letter-spacing: 0;
    }


    /* カテゴリー */

    .top-news__category {
        grid-area: category;
        position: relative;
        padding-left: 18px;
        font-size: 14px;
        font-weight: 500;
        line-height: 1.5;
    }

    .top-news__category::before {
        position: absolute;
        top: 50%;
        left: 0;
        width: 1px;
        height: 14px;
        background-color: rgba(38, 34, 42, 0.25);
        content: "";
        transform: translateY(-50%);
    }


    /* タイトル */

    .top-news__title {
        display: -webkit-box;
        grid-area: title;
        width: 100%;
        overflow: hidden;
        font-size: 16px;
        font-weight: 500;
        line-height: 1.65;
        letter-spacing: 0;
        white-space: normal;

        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }


    /* 投稿なし */

    .top-news__empty {
        padding-top: 0;
        font-size: 15px;
    }
	    /* セクション全体を重なり管理の基準にする */
    .top-data {
        position: relative;
        isolation: isolate;
    }

    /* 背景装飾は一番後ろ */
    .top-data__background {
        z-index: 0;
    }

    /* PIA BOYSはカードより後ろ */
    .top-data__side-title {
        z-index: 1;
        pointer-events: none;
    }

    /* カード全体はPIA BOYSより前 */
    .top-data__inner {
        position: relative;
        z-index: 2;
    }

    .top-data__grid {
        position: relative;
        z-index: 2;
    }

    .top-data__card {
        position: relative;
        z-index: 2;
    }

    /* カードの中身は確実に最前面 */
    .top-data__card-content {
        position: relative;
        z-index: 3;
    }

    /* 人物は一番前 */
    .top-data__person {
        z-index: 4;
    }
	    /* ========================================
    セクション全体
    ======================================== */

    .top-contact-cta {
        min-height: auto;
        padding: 72px 0;

        background-color: #fbf7ef;
    }


    /* ========================================
    背景装飾
    ======================================== */

    .top-contact-cta__shape--left {
        top: -170px;
        left: -420px;

        width: 700px;
        height: 750px;
    }

    .top-contact-cta__shape--center {
        top: -180px;
        left: 37%;

        width: 260px;
        height: 730px;
    }

    .top-contact-cta__shape--right {
        right: -430px;
        bottom: -300px;

        width: 700px;
        height: 600px;
    }


    /* ========================================
    白いカード
    ======================================== */

    .top-contact-cta__box {
        width: calc(100% - 32px);
        min-height: 0;

        padding: 42px 20px 38px;
    }


    /* ========================================
    タイトル
    ======================================== */

    .top-contact-cta__title {
        padding: 0 5px 4px;

        font-size: clamp(39px, 11.5vw, 52px);
        line-height: 1.3;
        letter-spacing: 0.015em;
    }


    /* ========================================
    説明文
    ======================================== */

    .top-contact-cta__description {
        margin-top: 28px;
    }

    .top-contact-cta__description p {
        font-size: 14px;
        line-height: 1.8;
    }

    .top-contact-cta__description p + p {
        margin-top: 4px;
    }


    /* ========================================
    ボタン
    ======================================== */

    .top-contact-cta__button {
        width: 100%;
        min-height: 76px;

        margin-top: 34px;
        padding: 15px 58px 15px 22px;
    }

    .top-contact-cta__button-text {
        font-size: clamp(17px, 4.6vw, 21px);
    }


    /* ========================================
    丸い矢印
    ======================================== */

    .top-contact-cta__button-icon {
        right: 22px;

        width: 31px;
        height: 31px;
    }

    .top-contact-cta__button-arrow {
        border-top-width: 6px;
        border-bottom-width: 6px;
        border-left-width: 9px;
    }

    .member-modal {
        align-items: center;
        padding: 12px;
        overflow: hidden;
    }

    .member-modal__dialog {
        display: grid;
        grid-template-rows: 42% 58%;
        grid-template-columns: 1fr;

        width: 100%;
        height: calc(100dvh - 24px);
        max-height: calc(100dvh - 24px);

        overflow: hidden;
    }

    .member-modal__visual {
        width: 100%;
        height: 100%;
        min-height: 0;
        aspect-ratio: auto;
    }

    .member-modal__image {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center 25%;
    }

    .member-modal__content {
        grid-template-rows: repeat(3, minmax(0, 1fr));
        gap: 10px;

        height: 100%;
        padding: 16px;
        overflow: hidden;
    }

    .member-modal__panel,
    .member-modal__panel--name {
        min-height: 0;
        padding: 10px 16px;
    }

    .member-modal__panel-label {
        margin-bottom: 3px;
        font-size: 14px;
    }

    .member-modal__panel-value,
    .member-modal__panel-value--large {
        padding-bottom: 5px;
        font-size: clamp(25px, 8vw, 34px);
    }

    .member-modal__panel-value::after {
        height: 1px;
    }

    .member-modal__close {
        position: absolute;
        top: 9px;
        right: 9px;

        width: 38px;
        height: 38px;
    }

    .member-modal__close span {
        width: 18px;
    }

}
/* ==================================================
   INSTAGRAM POSTS
================================================== */

.top-instagram-posts {
  width: 100%;
  padding: 100px 0;

  background: #ffffff;
}

.top-instagram-posts__inner {
  width: min(1400px, calc(100% - 120px));

  margin: 0 auto;
}


/* ==================================================
   HEADING
================================================== */

.top-instagram-posts__heading {
  margin-bottom: 55px;

  text-align: center;
}

.top-instagram-posts__en {
  margin: 0 0 8px;

  background: linear-gradient(
    90deg,
    #ff7f9b 0%,
    #ef78b5 48%,
    #805cff 100%
  );

  -webkit-background-clip: text;
  background-clip: text;

  -webkit-text-fill-color: transparent;
  color: transparent;

  font-size: 48px;
  font-weight: 800;
  line-height: 1;
}

.top-instagram-posts__title {
  margin: 0;

  background: linear-gradient(
    90deg,
    #ff7f9b 0%,
    #ef78b5 48%,
    #805cff 100%
  );

  -webkit-background-clip: text;
  background-clip: text;

  -webkit-text-fill-color: transparent;
  color: transparent;

  font-size: 24px;
  font-weight: 600;
}


/* ==================================================
   GRID
================================================== */

.top-instagram-posts__grid {
  display: grid;

  grid-template-columns: repeat(4, 1fr);

  gap: 24px;
}


/* ==================================================
   ITEM
================================================== */

.top-instagram-posts__item {
  display: block;

  color: inherit;

  text-decoration: none;
}

.top-instagram-posts__image-wrap {
  position: relative;

  width: 100%;
  aspect-ratio: 3 / 4;

  overflow: hidden;
}

.top-instagram-posts__image {
  display: block;

  width: 100%;
  height: 100%;

  object-fit: cover;

  transition: transform 0.5s ease;
}

.top-instagram-posts__item:hover
.top-instagram-posts__image {
  transform: scale(1.06);
}


/* ==================================================
   HOVER
================================================== */

.top-instagram-posts__overlay {
  position: absolute;

  inset: 0;

  display: flex;
  align-items: center;
  justify-content: center;

  background: rgba(20, 143, 163, 0.65);

  opacity: 0;

  transition: opacity 0.35s ease;
}

.top-instagram-posts__item:hover
.top-instagram-posts__overlay {
  opacity: 1;
}

.top-instagram-posts__icon {
  color: #ffffff;

  font-size: 40px;
  font-weight: 700;
}


/* ==================================================
   BUTTON
================================================== */

.top-instagram-posts__button-wrap {
  display: flex;
  justify-content: center;

  margin-top: 50px;
}

.top-instagram-posts__button {
  display: flex;
  align-items: center;
  justify-content: space-between;

  width: 260px;
  min-height: 68px;

  padding: 0 25px 0 30px;

  background: linear-gradient(
    90deg,
    #ff8298 0%,
    #ed78b6 50%,
    #825cff 100%
  );

  border-radius: 20px;

  color: #ffffff;

  font-size: 16px;
  font-weight: 700;

  text-decoration: none;

  transition:
    opacity 0.3s ease,
    transform 0.3s ease;
}

.top-instagram-posts__button:hover {
  opacity: 0.85;

  transform: translateY(-2px);
}

.top-instagram-posts__button-arrow {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 32px;
  height: 32px;

  background: #ffffff;

  border-radius: 50%;

  color: #277c8f;
}
/* ==========================================
   CONTACT FORM SECTION
========================================== */

.contact-page__form-section {
  padding: 100px 20px 120px;
  background: #fff;
}

.contact-page__inner {
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
}

.contact-page__form {
  width: 100%;
}

.cf7-wrap {
  width: 100%;
  max-width: 780px;
  margin: 0 auto;
}


/* ==========================================
   FORM ITEM
========================================== */

.cf7-item {
  display: grid;
  grid-template-columns: 220px 1fr;
  align-items: center;
  column-gap: 28px;
  margin-bottom: 34px;
}


/* ==========================================
   LABEL
========================================== */

.cf7-label {
  display: grid;
  grid-template-columns: 1fr 78px;
  align-items: center;
  column-gap: 15px;
}

.cf7-label label {
  margin: 0;

  font-size: 15px;
  font-weight: 400;
  line-height: 1.5;

  color: #111;

  white-space: nowrap;
}


/* ==========================================
   REQUIRED
========================================== */

.required {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 78px;
  height: 38px;

  box-sizing: border-box;

  border: 2px solid transparent;
  border-radius: 15px;

  background:
    linear-gradient(#fff, #fff) padding-box,
    linear-gradient(
      90deg,
      #ff6d83 0%,
      #ff6697 40%,
      #9a63ff 100%
    ) border-box;

  font-size: 14px;
  font-weight: 500;

  color: #ff617c;
}


/* ==========================================
   FIELD
========================================== */

.cf7-field {
  width: 100%;
}

.cf7-field .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
}


/* ==========================================
   INPUT
========================================== */

.cf7-field input[type="text"],
.cf7-field input[type="email"],
.cf7-field input[type="tel"],
.cf7-field select,
.cf7-field textarea {
  display: block;

  width: 100%;

  box-sizing: border-box;

  margin: 0;

  border: none;
  outline: none;

  border-radius: 15px;

  background: #f0f0f2;

  padding: 0 20px;

  font-family: inherit;
  font-size: 16px;
  font-weight: 400;

  color: #222;

  transition:
    background 0.2s ease,
    box-shadow 0.2s ease;
}


.cf7-field input[type="text"],
.cf7-field input[type="email"],
.cf7-field input[type="tel"],
.cf7-field select {
  height: 50px;
}


/* ==========================================
   TEXTAREA
========================================== */

.cf7-field textarea {
  height: 125px;
  min-height: 125px;

  padding-top: 15px;
  padding-bottom: 15px;

  resize: vertical;
}


.cf7-item--textarea {
  align-items: start;
}

.cf7-item--textarea .cf7-label {
  margin-top: 8px;
}


/* ==========================================
   FOCUS
========================================== */

.cf7-field input:focus,
.cf7-field select:focus,
.cf7-field textarea:focus {
  background: #f5f5f6;

  box-shadow:
    0 0 0 2px rgba(160, 100, 255, 0.12);
}


/* ==========================================
   SELECT
========================================== */

.cf7-field select {
  appearance: none;
  -webkit-appearance: none;

  cursor: pointer;

  padding-right: 45px;

  background-color: #f0f0f2;

  background-image:
    linear-gradient(45deg, transparent 50%, #777 50%),
    linear-gradient(135deg, #777 50%, transparent 50%);

  background-position:
    calc(100% - 20px) 22px,
    calc(100% - 15px) 22px;

  background-size:
    5px 5px,
    5px 5px;

  background-repeat: no-repeat;
}


/* ==========================================
   PRIVACY POLICY
========================================== */

.cf7-privacy {
  width: 100%;
  max-width: 480px;
  height: 125px;

  box-sizing: border-box;

  margin: 75px auto 15px;
  padding: 12px 14px;

  overflow-y: auto;

  border: 2px solid transparent;
  border-radius: 16px;

  background:
    linear-gradient(#fff, #fff) padding-box,
    linear-gradient(
      135deg,
      #ff6d83 0%,
      #ff6697 35%,
      #8b62ff 100%
    ) border-box;

  font-size: 12px;
  line-height: 1.7;

  color: #222;
}


.cf7-privacy h3 {
  margin: 0 0 12px;

  font-size: 14px;
  font-weight: 600;

  color: #ff617c;
}


.cf7-privacy h4 {
  margin: 16px 0 5px;

  font-size: 12px;
  font-weight: 600;

  color: #222;
}


.cf7-privacy p {
  margin: 0 0 10px;
}


.cf7-privacy ul {
  margin: 5px 0 12px;
  padding-left: 20px;
}


.cf7-privacy li {
  margin-bottom: 2px;
}


/* ==========================================
   PRIVACY SCROLLBAR
========================================== */

.cf7-privacy::-webkit-scrollbar {
  width: 5px;
}

.cf7-privacy::-webkit-scrollbar-track {
  background: transparent;
}

.cf7-privacy::-webkit-scrollbar-thumb {
  background: #ccc;
  border-radius: 10px;
}


/* ==========================================
   PRIVACY CHECK
========================================== */

.cf7-check {
  width: 100%;
  max-width: 480px;

  margin: 0 auto 35px;

  font-size: 14px;

  color: #111;
}


.cf7-check .wpcf7-list-item {
  margin: 0;
}


.cf7-check label {
  display: flex;
  align-items: center;

  gap: 12px;

  cursor: pointer;
}


.cf7-check input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;

  position: relative;

  flex-shrink: 0;

  width: 26px;
  height: 26px;

  margin: 0;

  border: none;
  border-radius: 7px;

  background: #ededf0;

  cursor: pointer;
}


.cf7-check input[type="checkbox"]:checked {
  background:
    linear-gradient(
      135deg,
      #ff6d83,
      #9864ff
    );
}


.cf7-check input[type="checkbox"]:checked::after {
  content: "";

  position: absolute;

  left: 9px;
  top: 5px;

  width: 6px;
  height: 11px;

  border: solid #fff;
  border-width: 0 2px 2px 0;

  transform: rotate(45deg);
}


/* ==========================================
   SUBMIT
========================================== */

.cf7-submit {
  display: flex;
  justify-content: center;

  margin-top: 30px;
}


.cf7-submit input[type="submit"] {
  width: 170px;
  height: 60px;

  box-sizing: border-box;

  margin: 0;
  padding: 0;

  border: none;
  border-radius: 16px;

  background:
    linear-gradient(
      100deg,
      #ff7182 0%,
      #ff6698 45%,
      #8e62ff 100%
    );

  color: #fff;

  font-family: inherit;
  font-size: 14px;
  font-weight: 600;

  cursor: pointer;

  transition:
    opacity 0.2s ease,
    transform 0.2s ease;
}


.cf7-submit input[type="submit"]:hover {
  opacity: 0.85;
  transform: translateY(-2px);
}


/* ==========================================
   CF7 RESPONSE
========================================== */

.wpcf7 form .wpcf7-response-output {
  max-width: 780px;

  box-sizing: border-box;

  margin: 30px auto 0;
  padding: 15px 20px;

  border-radius: 10px;

  font-size: 14px;
}


.wpcf7-not-valid-tip {
  display: block;

  margin-top: 5px;

  font-size: 12px;
}


/* ==========================================
   SP
========================================== */

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

  .contact-page__form-section {
    padding: 60px 20px 80px;
  }


  .contact-page__inner {
    max-width: 100%;
  }


  .cf7-wrap {
    max-width: 100%;
  }


  /* ------------------------------------------
     FORM ITEM
  ------------------------------------------ */

  .cf7-item {
    display: block;

    margin-bottom: 28px;
  }


  /* ------------------------------------------
     LABEL
  ------------------------------------------ */

  .cf7-label {
    display: flex;
    align-items: center;
    justify-content: flex-start;

    gap: 12px;

    margin-bottom: 10px;
  }


  .cf7-label label {
    font-size: 14px;
  }


  /* ------------------------------------------
     REQUIRED
  ------------------------------------------ */

  .required {
    width: 58px;
    height: 28px;

    border-radius: 11px;

    font-size: 12px;
  }


  /* ------------------------------------------
     INPUT
  ------------------------------------------ */

  .cf7-field input[type="text"],
  .cf7-field input[type="email"],
  .cf7-field input[type="tel"],
  .cf7-field select {
    height: 48px;

    border-radius: 13px;

    font-size: 16px;
  }


  .cf7-field textarea {
    height: 130px;
    min-height: 130px;

    border-radius: 13px;
  }


  .cf7-item--textarea .cf7-label {
    margin-top: 0;
  }


  /* ------------------------------------------
     PRIVACY
  ------------------------------------------ */

  .cf7-privacy {
    width: 100%;
    max-width: 100%;

    height: 130px;

    margin-top: 50px;
  }


  .cf7-check {
    max-width: 100%;

    font-size: 13px;
  }


  /* ------------------------------------------
     SUBMIT
  ------------------------------------------ */

  .cf7-submit {
    margin-top: 25px;
  }


  .cf7-submit input[type="submit"] {
    width: 165px;
    height: 56px;
  }

}