@charset "UTF-8";

/* 共通パーツ */
@import url("common/variables.css");
@import url("common/typography.css");
@import url("common/components.css");
@import url("profile.css");

/* ========================================
   TOPレイアウト（SP: 縦積み / PC: 左右分割）
======================================== */
.top {
    background-color: var(--color-bg);
}

@media (min-width: 768px) {
    .top {
        display: grid;
        grid-template-columns: var(--layout-pc-left) minmax(0, 1fr);
    }
}

@media (min-width: 1440px) {
    .top {
        grid-template-columns: var(--layout-pc-left-1440) minmax(0, 1fr);
    }
}

/* 左カラム：ヘッダー・FV・Concept */
.page {
    background-color: var(--color-bg-soft);
}

.top__content {
    display: flex;
    flex-direction: column;
    overflow: visible;
}

@media (min-width: 768px) {
    .top__content {
        grid-column: 1;
        display: flex;
        flex-direction: column;
        background-color: var(--color-bg);
    }
}

/* 右カラム：写真（SP=FV右 / PC=右カラム全面・ナビ重ね） */
.top__visual {
    position: relative;
    background-color: var(--color-bg);
}

@media (min-width: 768px) {
    .top {
        align-items: stretch;
    }

    /* 左カラムの高さに合わせて伸ばし、Concept下端と写真下端を揃える */
    .top__visual {
        display: flex;
        flex-direction: column;
        grid-column: 2;
        grid-row: 1;
        align-self: stretch;
        width: 100%;
        overflow: hidden;
    }
}

/* ========================================
   ヘッダー
======================================== */
.header {
    position: sticky;
    top: 0;
    z-index: 120;
    height: var(--header-height);
    background-color: var(--color-bg);
}

@media (min-width: 768px) {
    .header {
        position: relative;
        z-index: auto;
        height: auto;
        background-color: transparent;
    }
}

/* グリッドでロゴ左・ハンバーガー右（1frセル内は justify-self:start で左固定） */
.header__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    height: 5.0625rem;
}

.header__logo {
    grid-column: 1;
    justify-self: start;
    width: fit-content;
    max-width: 100%;
    margin-left: .625rem;
}

.site-logo__link {
    display: block;
    width: fit-content;
    max-width: 100%;
    line-height: 0;
}

.header__inner .hamburger {
    grid-column: 2;
    justify-self: end;
}

@media (min-width: 768px) {
    .top__content .header {
        flex-shrink: 0;
        padding: var(--header-pc-padding-top) 0 1.1875rem var(--header-pc-padding-left);
    }

    .top__content .header .container {
        padding-inline: 0;
    }

    .header__inner {
        display: block;
        height: auto;
    }

    .header__logo {
        margin-left: 0;
    }

    .top__content .site-logo__img--pc {
        width: var(--logo-width-pc);
        height: auto;
    }

    .top__visual-nav {
        position: absolute;
        top: var(--pc-content-padding);
        right: var(--visual-nav-right);
        z-index: 10;
    }

    .top__visual-nav .nav-list__link {
        font-size: var(--text-nav-pc);
        letter-spacing: var(--nav-link-letter-pc);
    }
}

/* ========================================
   FV（ファーストビュー）
   SP：テキスト左＋写真右（重なり）
======================================== */
.fv {
    padding-block: clamp(0.75rem, 3vw, 1.25rem) 0;
    overflow: visible;
    background-color: var(--color-bg);
}

.fv__inner {
    position: relative;
}

.fv__thumb-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
}

/* 375px〜767px：SP専用（PC用スタイルが漏れないよう明示） */
@media (max-width: 767px) {
    .top {
        display: block;
    }

    .top__content {
        background-color: var(--color-bg);
    }

    .top__content .header {
        padding: 0;
    }

    .top__content .header .container {
        padding-inline: var(--page-padding-inline);
    }

    .header__inner {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        height: 5.0625rem;
    }

    .header__logo {
        margin-left: 0.625rem;
    }

    .fv__inner {
        /* 写真下端まで（下余白は含めない＝Conceptへ白 gap を出さない） */
        min-height: calc(
            var(--fv-sp-image-top) +
            (100vw * 0.75 * 4.15 / 3)
        );
    }

    .fv__thumb {
        position: absolute;
        top: var(--fv-sp-image-top);
        right: 0;
        left: auto;
        z-index: 1;
        width: var(--fv-sp-image-width);
        margin: 0;
        aspect-ratio: var(--fv-sp-image-ratio);
        overflow: hidden;
    }

    .fv__body {
        position: relative;
        z-index: 2;
        width: 100%;
        box-sizing: border-box;
        text-align: left;
        padding:
            var(--fv-sp-body-padding-top)
            var(--page-padding-inline)
            0;
    }

    .fv__title {
        margin: 0 0 var(--fv-sp-title-gap);
        font-size: var(--text-fv-title-sp-fit);
        letter-spacing: var(--text-fv-title-letter-sp);
        line-height: 1.65;
    }

    @media (min-width: 767px) {
        .fv__title {
            font-size: var(--text-fv-title-sp);
        }
    }

    .fv__text {
        margin: 0;
        max-width: none;
        font-size: var(--text-fv-body-sp);
        font-weight: 400;
        line-height: 1.75;
        letter-spacing: var(--text-fv-body-letter-sp);
    }

    body.is-nav-open .top__content {
        position: relative;
        z-index: 60;
    }
}

.fv__body {
    position: relative;
    z-index: 2;
    text-align: left;
}

.fv__title-line {
    white-space: nowrap;
}

.fv__title {
    margin: 0 0 var(--fv-sp-title-gap);
}

.fv__text {
    margin: 0;
    max-width: none;
    font-size: var(--text-sm);
    font-weight: 400;
    line-height: 1.75;
    letter-spacing: var(--text-fv-body-letter-sp);
}

@media (min-width: 768px) {
    .fv {
        flex: 0 0 auto;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        align-items: flex-start;
        padding:
            var(--fv-pc-padding-top)
            var(--fv-pc-padding-right)
            var(--fv-pc-padding-bottom)
            var(--fv-pc-padding-left);
        background-color: var(--color-bg);
    }

    .fv__inner {
        min-height: auto;
        width: 100%;
        max-width: var(--fv-inner-max-width);
        margin-inline: 0;
    }

    .fv__thumb {
        display: none;
    }

    .fv__body {
        width: auto;
        padding: 0;
    }

    .fv__title {
        margin-bottom: clamp(1.25rem, calc(1rem + (100vw - var(--layout-pc-base)) * 0.75rem / var(--layout-pc-span)), 2rem);
        font-size: var(--text-fv-title-pc);
        line-height: 1.65;
        letter-spacing: var(--text-fv-title-letter-pc);
    }

    .fv__text {
        max-width: none;
        font-size: var(--text-fv-body-pc);
        letter-spacing: var(--text-fv-body-letter-pc);
        padding-left: 0.3125rem;
        padding-top: 0.625rem;
    }
}

@media (min-width: 837px) {
    .fv__title {
        font-size: var(--text-fv-title-pc-mid-a);
    }
}

@media (min-width: 982px) {
    .fv__title {
        font-size: var(--text-fv-title-pc-mid-b);
    }
}

@media (min-width: 1112px) {
    .fv__title {
        font-size: var(--text-fv-title-pc-mid-c);
    }
}

@media (min-width: 1315px) {
    .fv__title {
        font-size: var(--text-fv-title-pc-lg);
    }
}

/* ========================================
   PC右カラム：静止画（カルーセルなし）
======================================== */
.top__visual__figure {
    margin: 0;
    width: 100%;
    height: 100%;
}

@media (min-width: 768px) {
    .top__visual__figure {
        flex: 1 1 auto;
        min-height: 100%;
    }
}

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

@media (min-width: 768px) {
    .top__visual__img {
        min-height: 100%;
        object-position: 36%;
    }
}

/* カルーセル共通（別セクション用・data-swiper 付き要素） */
.swiper-carousel {
    width: 100%;
}

.swiper-carousel .swiper-pagination-bullet {
    background-color: var(--color-gold);
    opacity: 0.35;
}

.swiper-carousel .swiper-pagination-bullet-active {
    opacity: 1;
}

.swiper-carousel .swiper-button-prev,
.swiper-carousel .swiper-button-next {
    color: var(--color-gold);
}

/* ========================================
   Concept
======================================== */
.concept {
    background-color: var(--color-bg-soft);
}

.concept__inner {
    max-width: var(--concept-inner-max-width);
    margin-inline: auto;
}

.concept__title {
    margin: 0 0 var(--concept-title-gap-sp);
    letter-spacing: var(--concept-title-letter-sp);
}

.concept__title.heading-gold::after {
    width: var(--concept-heading-line-sp);
}

.concept__text {
    margin: 0;
    font-size: var(--text-concept-body-sp);
    font-weight: 300;
    line-height: 1.75;
    letter-spacing: var(--text-concept-body-letter-sp);
    color: var(--color-text);
}

.concept__text + .concept__text {
    margin-top: var(--concept-text-gap-sp);
}

@media (max-width: 767px) {
    .concept {
        padding:
            var(--concept-padding-top-sp)
            0
            var(--concept-padding-bottom-sp);
    }

    .concept__inner {
        text-align: left;
    }
}

@media (min-width: 768px) {
    .concept {
        flex-shrink: 0;
        padding:
            var(--concept-padding-top-pc)
            var(--concept-padding-right-pc)
            var(--concept-padding-bottom-pc)
            var(--concept-padding-left-pc);
    }

    .concept__inner {
        width: 100%;
        min-width: 0;
        margin-inline: 0;
        padding-inline: 0;
        text-align: left;
    }

    .concept__text {
        text-wrap: pretty;
    }

    .concept__inner.container {
        padding-inline: 0;
    }

    .concept__title {
        margin-bottom: var(--concept-title-gap-pc);
        font-size: var(--text-heading-gold-pc);
        text-align: left;
    }

    .concept__title.heading-gold::after {
        width: var(--concept-heading-line-pc);
    }

    .concept__text {
        font-size: var(--text-fv-body-pc);
        line-height: var(--leading-body);
        letter-spacing: var(--text-concept-body-letter-pc);
    }

    .concept__text + .concept__text {
        margin-top: var(--concept-text-gap-pc);
    }
}

/* ========================================
   今月の特集（Feature）
======================================== */
.feature {
    background-color: var(--color-bg);
}

.feature__inner {
    margin-inline: auto;
}

.feature__header {
    text-align: center;
}

.feature__title {
    margin: 0;
    font-weight: 400;
    color: var(--color-gold);
    line-height: var(--leading-tight);
}

.feature__subtitle {
    margin: 0.375rem 0 0;
    font-weight: 400;
    color: var(--color-gold);
    line-height: var(--leading-tight);
}

.feature-card {
    margin-inline: auto;
}

.feature-card__link {
    display: flex;
    align-items: stretch;
    border: 1px solid var(--color-gold);
    background-color: var(--color-bg);
    transition: opacity var(--transition-elegant);
}

.feature-card__media {
    position: relative;
    margin: 0;
    flex-shrink: 0;
    aspect-ratio: 1 / 1;
    overflow: hidden;
}

.feature-card__img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.feature-card__img.u-pc-only {
    display: none;
}

/* 写真トリミング調整（SP：variables.css のトークンを編集） */
.feature-card__img--kato {
    position: absolute;
    max-width: none;
    top: var(--feature-card-img-kato-top-sp);
    left: var(--feature-card-img-kato-left-sp);
    width: var(--feature-card-img-kato-width-sp);
    height: var(--feature-card-img-kato-height-sp);
    object-fit: cover;
}

.feature-card__img--kato-pc {
    position: absolute;
    max-width: none;
    top: var(--feature-card-img-kato-top-pc);
    left: var(--feature-card-img-kato-left-pc);
    width: var(--feature-card-img-kato-width-pc);
    height: var(--feature-card-img-kato-height-pc);
    object-fit: cover;
    object-position: center center;
}

.feature-card__body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
}

.feature-card__name {
    margin: 0;
    font-weight: 500;
    color: var(--color-text);
    line-height: var(--leading-tight);
}

.feature-card__lead {
    margin: 0;
    font-weight: 300;
    color: var(--color-text);
    line-height: 1.7;
}

.feature-card__lead-mark {
    display: block;
    line-height: 1.2;
}

.feature-card__more {
    color: var(--color-gold);
    line-height: 1;
}

@media (max-width: 767px) {
    .feature {
        padding-block: var(--feature-padding-block-sp);
    }

    .feature__header {
        margin-bottom: var(--feature-header-gap-sp);
    }

    .feature__title {
        font-size: var(--feature-title-sp);
        letter-spacing: var(--feature-title-letter-sp);
    }

    .feature__subtitle {
        font-size: var(--feature-subtitle-sp);
        letter-spacing: var(--feature-subtitle-letter-sp);
    }

    .feature-card__link {
        gap: 0;
        padding:
            var(--feature-card-padding-sp)
            0
            var(--feature-card-padding-sp)
            var(--feature-card-padding-sp);
        overflow: hidden;
        border-radius: var(--feature-card-radius-sp);
    }

    .feature-card__media {
        width: var(--feature-card-media-sp);
        flex: 0 0 var(--feature-card-media-sp);
        align-self: flex-start;
        border-radius:
            calc(var(--feature-card-radius-sp) - 2px)
            0
            0
            calc(var(--feature-card-radius-sp) - 2px);
    }

    .feature-card__body {
        flex: 0 0 50%;
        width: 50%;
        align-self: stretch;
        align-items: center;
        justify-content: center;
        text-align: center;
        gap: var(--feature-card-body-gap-sp);
        padding:
            var(--feature-card-body-padding-block-sp)
            var(--feature-card-body-padding-inline-sp);
    }

    .feature-card__name {
        font-size: var(--feature-name-sp);
        font-weight: 400;
        letter-spacing: var(--feature-name-letter-sp);
    }

    .feature-card__lead {
        font-size: var(--feature-lead-sp);
        line-height: 1.45;
        letter-spacing: var(--feature-lead-letter-sp);
    }

    .feature-card__more {
        margin-top: 0;
        font-size: var(--feature-more-sp);
        letter-spacing: var(--feature-more-letter-sp);
        padding-top: .625rem;
    }
}

@media (min-width: 768px) {
    .feature {
        padding-block: var(--feature-padding-block-pc);
    }

    .feature__inner.container {
        padding-inline: var(--feature-inner-padding-inline-pc);
    }

    .feature__header {
        margin-bottom: var(--feature-header-gap-pc);
    }

    .feature__title {
        margin-bottom: var(--feature-title-margin-bottom-pc);
        font-size: var(--feature-title-pc);
        letter-spacing: var(--feature-title-letter-pc);
    }

    .feature__subtitle {
        font-size: var(--feature-subtitle-pc);
        letter-spacing: var(--feature-subtitle-letter-pc);
    }

    .feature-card {
        max-width: var(--feature-card-max-pc);
    }

    .feature-card__img.u-sp-only {
        display: none;
    }

    .feature-card__img.u-pc-only {
        display: block;
    }

    .feature-card__link {
        gap: 0;
        padding: var(--feature-card-padding-pc);
        overflow: hidden;
        border-radius: var(--feature-card-radius-pc);
    }

    .feature-card__media {
        flex: 0 0 var(--feature-card-media-pc);
        width: var(--feature-card-media-pc);
        aspect-ratio: var(--feature-card-media-aspect-pc);
        align-self: flex-start;
        border-radius:
            calc(var(--feature-card-radius-pc) - 2px)
            0
            0
            calc(var(--feature-card-radius-pc) - 2px);
    }

    .feature-card__body {
        flex: 0 0 50%;
        width: 50%;
        align-self: stretch;
        align-items: flex-start;
        justify-content: center;
        text-align: left;
        gap: clamp(0.75rem, calc(0.625rem + (100vw - var(--layout-pc-base)) * 0.75rem / var(--layout-pc-span)), 1.5rem);
        padding:
            var(--feature-card-body-padding-block-pc)
            0
            var(--feature-card-body-padding-block-pc)
            var(--feature-card-body-padding-left-pc);
        letter-spacing: 0;
    }

    .feature-card__name {
        font-size: var(--feature-name-pc);
        letter-spacing: var(--feature-name-letter-pc);
    }

    .feature-card__lead {
        font-size: var(--feature-lead-pc);
        line-height: var(--leading-body);
    }

    .feature-card__lead .u-pc-only {
        letter-spacing: var(--feature-lead-pc-letter-pc);
    }

    .feature-card__more {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: clamp(9rem, calc(8rem + (100vw - var(--layout-pc-base)) * 3rem / var(--layout-pc-span)), 12rem);
        padding:
            var(--feature-more-padding-block-pc)
            var(--feature-more-padding-inline-pc);
        border: 1px solid var(--color-gold);
        border-radius: 0.375rem;
        font-size: var(--feature-more-pc);
        margin-top: .9375rem;
        letter-spacing: var(--feature-more-letter-pc);
    }
}

/* ========================================
   Members（カルーセル）
======================================== */
.members {
    background-color: var(--color-bg);
}

.members__inner {
    margin-inline: auto;
}
.members__header {
    margin: 0;
}

.members__title {
    margin: 0;
}

.members-carousel-wrap {
    width: 100%;
}

.members-carousel {
    width: 100%;
    overflow: hidden;
    position: relative;
}

/* Swiper spaceBetween 用：clamp() の解決値を JS から取得 */
.members-carousel-gap-probe {
    position: absolute;
    width: 0;
    height: 0;
    margin-right: var(--members-carousel-gap-pc);
    visibility: hidden;
    pointer-events: none;
}

.members-carousel .swiper-slide {
    height: auto;
}

.member-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    box-sizing: border-box;
    width: 100%;
    height: auto;
    text-align: center;
    background-color: var(--color-bg-soft);
    border-radius: var(--member-card-radius);
}

.member-card__avatar {
    position: relative;
    flex-shrink: 0;
    margin: 0;
    width: 130px;
    aspect-ratio: 1;
    overflow: hidden;
    border-radius: 50%;
    background-color: var(--color-bg);
}

.member-card__avatar-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}

.member-card__role-line {
    display: block;
}

/* 写真トリミング調整（position + %。variables.css のトークンを編集） */
.member-card__avatar-img--kato,
.member-card__avatar-img--sanpei,
.member-card__avatar-img--shirato {
    position: absolute;
    max-width: none;
}

.member-card__avatar-img--kato {
    top: var(--member-avatar-kato-top-sp);
    left: var(--member-avatar-kato-left-sp);
    width: var(--member-avatar-kato-width-sp);
    height: var(--member-avatar-kato-height-sp);
    object-position: center var(--member-avatar-position-kato);
}

.member-card__avatar-img--sanpei {
    top: var(--member-avatar-sanpei-top-sp);
    left: var(--member-avatar-sanpei-left-sp);
    width: var(--member-avatar-sanpei-width-sp);
    height: var(--member-avatar-sanpei-height-sp);
    object-position: center var(--member-avatar-position-sanpei);
}

.member-card__avatar-img--shirato {
    top: var(--member-avatar-shirato-top-sp);
    left: var(--member-avatar-shirato-left-sp);
    width: var(--member-avatar-shirato-width-sp);
    height: var(--member-avatar-shirato-height-sp);
    object-position: center var(--member-avatar-position-shirato);
}

.member-card__name {
    margin: 0;
    font-weight: 500;
    color: var(--color-text);
    line-height: var(--leading-tight);
}

.member-card__role {
    margin: 0;
    font-weight: 300;
    color: var(--color-text);
    line-height: 1.5;
}

.member-card__text {
    margin: 0;
    font-weight: 300;
    color: var(--color-text);
    line-height: 1.7;
}

.site__social-defs {
    position: absolute;
    width: 0;
    height: 0;
    overflow: hidden;
}

.member-card__socials {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--member-socials-gap-sp);
    margin: auto 0 0;
    padding: 0;
    list-style: none;
}

.member-card__social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-gold);
}

.member-card__social-icon {
    display: block;
}

.member-card__social-icon--homepage,
.member-card__social-icon--note,
.member-card__social-icon--line,
.member-card__social-icon--ameblo {
    object-fit: contain;
}

.members-carousel__pagination.swiper-pagination {
    position: static;
    inset: auto;
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
    margin: 0;
    transform: none;
}

.members-carousel__pagination .swiper-pagination-bullet {
    width: 0.5rem;
    height: 0.5rem;
    margin: 0;
    border: 1px solid var(--color-gold);
    background-color: transparent;
    opacity: 1;
    transition: background-color var(--transition-elegant);
}

.members-carousel__pagination .swiper-pagination-bullet-active {
    background-color: var(--color-gold);
}

@media (max-width: 767px) {
    .members {
        padding-block: var(--members-padding-block-sp);
    }

    .members__header {
        margin-bottom: var(--members-header-gap-sp);
        text-align: center;
    }

    .members__title.heading-gold {
        text-align: center;
    }

    .members__title.heading-gold::after {
        width: var(--members-heading-line-sp);
        margin-inline: var(--members-heading-line-margin-sp);
    }

    .members-carousel-wrap .members-carousel__pagination {
        margin-top: 3.125rem;
    }

    .member-card {
        max-width: var(--member-card-max-width-sp);
        margin-inline: auto;
        padding:
            var(--member-card-padding-block-sp)
            var(--member-card-padding-inline-sp);
        gap: 0.75rem;
    }

    .member-card__avatar {
        width: var(--member-avatar-size-sp);
        aspect-ratio: 1;
        margin-bottom: 0.25rem;
    }

    .member-card__name {
        font-size: var(--member-name-sp);
        padding-top: .625rem;
        letter-spacing: var(--member-name-letter-sp);
    }

    .member-card__role {
        min-height: var(--member-role-min-height-sp);
        font-size: var(--member-role-sp);
        letter-spacing: var(--member-role-letter-sp);
    }

    .member-card__text {
        min-height: var(--member-text-min-height-sp);
        font-size: var(--member-text-sp);
        letter-spacing: var(--member-text-letter-sp);
    }

    .member-card--sanpei .member-card__role {
        font-size: var(--member-card-sanpei-role-sp);
        letter-spacing: var(--member-card-sanpei-role-letter-sp);
    }

    .member-card--sanpei .member-card__text {
        font-size: var(--member-card-sanpei-text-sp);
        letter-spacing: var(--member-card-sanpei-text-letter-sp);
    }

    .member-card--kato .member-card__role {
        font-size: var(--member-card-kato-role-sp);
    }

    .member-card--kato .member-card__text {
        font-size: var(--member-card-kato-text-sp);
    }

    .member-card--shirato .member-card__role-line--accent {
        letter-spacing: var(--member-card-shirato-role-line-letter-sp);
    }

    .member-card--shirato .member-card__text {
        font-size: var(--member-card-shirato-text-sp);
    }

    #kaz .member-card__text {
        font-size: var(--member-card-kaz-text-sp);
    }

    .member-card--shirato .member-card__social-icon--note {
        width: var(--member-card-shirato-note-icon-width-sp);
        height: var(--member-card-shirato-note-icon-height-sp);
    }

    .member-card--ohtani .member-card__social-icon--x {
        width: var(--member-card-ohtani-x-icon-width-sp);
        height: var(--member-card-ohtani-x-icon-height-sp);
    }

    .member-card__social-icon {
        width: var(--member-social-icon-sp);
        height: var(--member-social-icon-sp);
    }

    .member-card__socials {
        gap: var(--member-socials-gap-sp);
        padding-top: 0.5rem;
    }
}

@media (min-width: 768px) {
    .members {
        padding-block: var(--members-padding-block-pc);
    }

    .members__inner {
        max-width: min(var(--members-inner-max-width-pc), 100%);
    }

    .members__header {
        margin-bottom: 0;
    }

    .members__title.heading-gold {
        margin-bottom: var(--section-heading-margin-bottom-pc);
        font-size: var(--text-heading-gold-pc);
        text-align: left;
    }

    .members-carousel-wrap .members-carousel__pagination {
        margin-top: var(--members-pagination-gap-pc);
    }

    .members-carousel .swiper-slide {
        display: flex;
        height: auto;
    }

    .member-card {
        --member-card-radius: var(--member-card-radius-pc);
        width: 100%;
        min-height: 100%;
        height: auto;
        padding:
            var(--member-card-padding-top-pc)
            var(--member-card-padding-inline-pc)
            var(--member-card-padding-bottom-pc);
        gap: 0.625rem;
    }

    .member-card__avatar {
        width: var(--member-avatar-size-pc);
        aspect-ratio: 1;
        margin-bottom: 0.125rem;
    }

    .member-card__avatar-img--kato {
        top: var(--member-avatar-kato-top-pc);
        left: var(--member-avatar-kato-left-pc);
        width: var(--member-avatar-kato-width-pc);
        height: var(--member-avatar-kato-height-pc);
    }

    .member-card__avatar-img--sanpei {
        top: var(--member-avatar-sanpei-top-pc);
        left: var(--member-avatar-sanpei-left-pc);
        width: var(--member-avatar-sanpei-width-pc);
        height: var(--member-avatar-sanpei-height-pc);
    }

    .member-card__avatar-img--shirato {
        top: var(--member-avatar-shirato-top-pc);
        left: var(--member-avatar-shirato-left-pc);
        width: var(--member-avatar-shirato-width-pc);
        height: var(--member-avatar-shirato-height-pc);
    }

    .member-card__name {
        padding-top: var(--member-name-padding-top-pc);
        font-size: var(--member-name-pc);
        letter-spacing: var(--member-name-letter-pc);
    }

    .member-card__role {
        min-height: var(--member-role-min-height-pc);
        font-size: var(--member-role-pc);
        letter-spacing: var(--member-role-letter-pc);
    }

    .member-card__text {
        min-height: var(--member-text-min-height-pc);
        font-size: var(--member-text-pc);
        letter-spacing: var(--member-text-letter-pc);
    }

    .member-card--sanpei .member-card__role {
        font-size: var(--member-card-sanpei-role-pc);
        letter-spacing: var(--member-card-sanpei-role-letter-pc);
    }

    .member-card--sanpei .member-card__text {
        font-size: var(--member-card-sanpei-text-pc);
    }

    .member-card--kato .member-card__role {
        font-size: var(--member-card-kato-role-pc);
        letter-spacing: var(--member-card-kato-role-letter-pc);
    }

    .member-card--kato .member-card__text {
        font-size: var(--member-card-kato-text-pc);
    }

    .member-card--shirato .member-card__role-line--accent {
        letter-spacing: var(--member-card-shirato-role-line-letter-pc);
    }

    .member-card--shirato .member-card__text {
        padding-top: var(--member-card-shirato-text-padding-top-pc);
        letter-spacing: var(--member-card-shirato-text-letter-pc);
    }

    .member-card--shirato .member-card__social-icon--note {
        width: var(--member-card-shirato-note-icon-width-pc);
        height: var(--member-card-shirato-note-icon-height-pc);
    }

    .member-card--ohtani .member-card__social-icon--x {
        width: var(--member-card-ohtani-x-icon-width-pc);
        height: var(--member-card-ohtani-x-icon-height-pc);
    }

    .member-card__social-icon {
        width: var(--member-social-icon-pc);
        height: var(--member-social-icon-pc);
    }

    .member-card__socials {
        padding-top: var(--member-socials-padding-top-pc);
        gap: var(--member-socials-gap-pc);
    }
}

/* ========================================
   Event
======================================== */
.event {
    background-color: var(--color-bg);
}

.event__inner {
    margin-inline: auto;
}

.event__header {
    margin: 0;
}

.event__title {
    margin: 0;
}

.event-card {
    margin-inline: auto;
}

.event-card__link {
    display: flex;
    align-items: stretch;
    border: 1px solid var(--color-gold);
    background-color: var(--color-bg);
    transition: opacity var(--transition-elegant);
}

.event-card__media {
    margin: 0;
    flex-shrink: 0;
    overflow: hidden;
}

.event-card__img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.event-card__body {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.event-card__label {
    margin: 0;
    font-weight: 400;
    color: var(--color-gold);
    line-height: 1.4;
}

.event-card__title {
    margin: 0;
    font-weight: 500;
    color: var(--color-text);
    line-height: var(--leading-tight);
}

.event-card__date {
    margin: 0;
    font-weight: 400;
    color: var(--color-text);
    line-height: 1.5;
}

.event-card__text {
    margin: 0;
    font-weight: 300;
    color: var(--color-text);
    line-height: 1.7;
}

.event-card__more {
    color: var(--color-gold);
    line-height: 1;
}

@media (max-width: 767px) {
    .event {
        padding-block: var(--event-padding-block-sp);
    }

    .event__header {
        margin-bottom: var(--event-header-gap-sp);
        text-align: center;
    }

    .event__title.heading-gold {
        text-align: center;
    }

    .event__title.heading-gold::after {
        width: var(--event-heading-line-sp);
        margin-inline: var(--event-heading-line-margin-sp);
    }

    .event-card__link {
        gap: 0;
        padding:
            var(--event-card-padding-sp)
            0
            var(--event-card-padding-sp)
            var(--event-card-padding-sp);
        overflow: hidden;
        border-radius: var(--event-card-radius-sp);
    }

    .event-card__media {
        width: var(--event-card-media-sp);
        flex: 0 0 var(--event-card-media-sp);
        align-self: stretch;
        border-radius:
            calc(var(--event-card-radius-sp) - 2px)
            0
            0
            calc(var(--event-card-radius-sp) - 2px);
    }

    .event-card__body {
        flex: 0 0 50%;
        width: 50%;
        align-self: stretch;
        align-items: flex-start;
        justify-content: flex-start;
        text-align: left;
        gap: var(--event-card-body-gap-sp);
        padding:
            var(--event-card-body-padding-block-sp)
            var(--event-card-body-padding-inline-sp);
    }

    .event-card__label {
        font-size: var(--event-label-sp);
        letter-spacing: var(--event-label-letter-sp);
    }

    .event-card__title {
        font-size: var(--event-title-sp);
        letter-spacing: var(--event-title-letter-sp);
    }

    .event-card .u-sp-only {
        letter-spacing: var(--event-card-u-sp-only-letter-sp);
    }

    .event-card__date {
        font-size: var(--event-date-sp);
    }

    .event-card__text {
        font-size: var(--event-text-sp);
        line-height: 1.6;
    }

    .event-card__more {
        margin-top: auto;
        font-size: var(--event-more-sp);
        letter-spacing: var(--event-more-letter-sp);
        padding-top: 0.375rem;
    }
}

@media (min-width: 768px) {
    .event {
        padding-top: var(--event-padding-block-pc);
        padding-bottom: var(--event-padding-bottom-pc);
    }

    .event__inner.container {
        padding-inline: var(--event-inner-padding-inline-pc);
    }

    .event__header,
    .event-card {
        max-width: var(--event-card-max-pc);
        margin-inline: 0;
    }

    .event__header {
        margin-bottom: 0;
    }

    .event__title.heading-gold {
        margin-bottom: var(--section-heading-margin-bottom-pc);
        font-size: var(--text-heading-gold-pc);
        text-align: left;
    }

    .event-card__link {
        gap: 0;
        padding: var(--event-card-padding-pc);
        overflow: hidden;
        border-radius: var(--event-card-radius-pc);
    }

    .event-card__media {
        flex: 0 0 var(--event-card-media-pc);
        width: var(--event-card-media-pc);
        aspect-ratio: var(--event-card-media-aspect-pc);
        align-self: flex-start;
        border-radius:
            calc(var(--event-card-radius-pc) - 2px)
            0
            0
            calc(var(--event-card-radius-pc) - 2px);
    }

    .event-card__body {
        flex: 0 0 50%;
        width: 50%;
        align-self: stretch;
        align-items: flex-start;
        justify-content: center;
        text-align: left;
        gap: clamp(0.5rem, calc(0.375rem + (100vw - var(--layout-pc-base)) * 0.625rem / var(--layout-pc-span)), 1.125rem);
        padding-block: clamp(0.5rem, calc(0.25rem + (100vw - var(--layout-pc-base)) * 1rem / var(--layout-pc-span)), 1.5rem);
        padding-inline: var(--event-card-body-padding-left-pc) 0;
    }

    .event-card__label {
        font-size: var(--event-label-pc);
        letter-spacing: var(--event-label-letter-pc);
    }

    .event-card__title {
        font-size: var(--event-title-pc);
        letter-spacing: var(--event-title-letter-pc);
    }

    .event-card .u-pc-only {
        letter-spacing: var(--event-card-u-pc-only-letter-pc);
    }

    .event-card__date {
        font-size: var(--event-date-pc);
    }

    .event-card__text {
        font-size: var(--event-text-pc);
        line-height: var(--leading-body);
    }

    .event-card__more {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: clamp(9rem, calc(8rem + (100vw - var(--layout-pc-base)) * 3rem / var(--layout-pc-span)), 12rem);
        margin-top: clamp(0.5rem, calc(0.375rem + (100vw - var(--layout-pc-base)) * 0.5625rem / var(--layout-pc-span)), 1.0625rem);
        padding:
            var(--event-more-padding-block-pc)
            var(--event-more-padding-inline-pc);
        border-radius: 0.375rem;
        background-color: var(--color-gold);
        color: #ffffff;
        font-size: var(--event-more-pc);
        letter-spacing: var(--event-more-letter-pc);
    }
}

@media (min-width: 1440px) {
    .event__header,
    .event-card {
        margin-inline: auto;
    }
}

/* Members / Event：PC見出しバー横並び */
@media (min-width: 768px) {
    .members__title.heading-gold,
    .event__title.heading-gold {
        display: flex;
        align-items: center;
        column-gap: var(--heading-gold-bar-gap-pc);
        letter-spacing: var(--heading-gold-letter-pc);
    }

    .members__title.heading-gold::after,
    .event__title.heading-gold::after {
        width: var(--heading-gold-bar-width-pc);
        min-width: 0;
        margin-top: var(--heading-gold-bar-margin-top-pc);
    }
}

/* ========================================
   フッター
======================================== */
.footer {
    background-color: var(--color-bg-soft);
    color: var(--color-gold);
}

.footer__inner {
    margin-inline: auto;
}

.footer__top {
    display: flex;
}

.footer__brand {
    display: flex;
    margin: 0;
}

.footer__logo {
    margin: 0;
    line-height: 0;
}

.footer .site-logo__img--pc {
    width: auto;
    height: var(--logo-height-pc);
}

.footer__tagline {
    margin: 0;
    font-weight: 300;
    color: var(--color-text);
    line-height: var(--leading-tight);
    white-space: nowrap;
}

.footer__socials {
    display: flex;
    align-items: center;
    margin: 0;
    padding: 0;
    list-style: none;
}

.footer__social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-gold);
    transition: opacity var(--transition-elegant);
}

.footer__social-link:hover {
    opacity: var(--hover-opacity);
}

.footer__social-icon {
    display: block;
    width: 1em;
    height: 1em;
}

.footer__social-icon--mail {
    color: var(--color-text);
}

.footer__line {
    border: 0;
    height: 1px;
    margin: 0 auto;
    background-color: var(--color-gold);
}

.footer__copy {
    margin: 0;
    font-weight: 300;
    color: var(--color-text);
    text-align: center;
    line-height: var(--leading-tight);
}

@media (max-width: 767px) {
    .footer {
        padding-block:
            var(--footer-padding-block-start-sp)
            var(--footer-padding-block-end-sp);
    }

    .footer__top {
        flex-direction: column;
        align-items: center;
        gap: var(--footer-top-gap-sp);
    }

    .footer__brand {
        flex-direction: row;
        align-items: center;
        justify-content: center;
        gap: var(--footer-brand-gap-sp);
    }

    .footer__tagline {
        font-size: var(--footer-tagline-sp);
    }

    .footer__socials {
        gap: var(--footer-social-gap-sp);
    }

    .footer__social-link {
        font-size: var(--footer-social-icon-sp);
    }

    .footer__line {
        width: var(--footer-line-width-sp);
        margin-top: var(--footer-line-gap-sp);
    }

    .footer__copy {
        margin-top: var(--footer-copy-gap-sp);
        font-size: var(--footer-copy-sp);
    }
}

@media (min-width: 768px) {
    .footer {
        padding-block:
            var(--footer-padding-block-start-pc)
            var(--footer-padding-block-end-pc);
    }

    .footer__inner.container {
        padding-inline: var(--footer-inner-padding-inline-pc);
    }

    .footer__top,
    .footer__line,
    .footer__copy {
        max-width: var(--footer-content-max-width-pc);
        margin-inline: auto;
    }

    .footer__top {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        gap: var(--footer-brand-gap-pc);
    }

    .footer__brand {
        flex-direction: row;
        align-items: center;
        gap: var(--footer-brand-gap-pc);
    }

    .footer__tagline {
        font-size: var(--footer-tagline-pc);
    }

    .footer__socials {
        flex-shrink: 0;
        gap: var(--footer-social-gap-pc);
    }

    .footer__social-link {
        font-size: var(--footer-social-icon-pc);
    }

    .footer__line {
        margin-top: var(--footer-line-gap-pc);
    }

    .footer__copy {
        margin-top: var(--footer-copy-gap-pc);
        font-size: var(--footer-copy-pc);
    }
}
