/* ================================================

CATEGORY カテゴリーページ

================================================ */

/* ----------------------------------------
CATEGORY KV
---------------------------------------- */
.cat__head,
.cat__copy,
.cat__poem {
    opacity: 0;
    /* 初期状態で非表示 */
}

/* 下のゴールドのテキスト部分 */
.cat__head {
    position: static;
    top: auto;
    right: auto;
    background: linear-gradient(to bottom, rgba(255, 230, 163, 0.9), rgba(153, 138, 98, 0.9));
    width: 100%;
    padding: var(--space-9xl) var(--padding-container);
}

.cat__inner {
    max-width: 100%;
    height: 100%;
    position: relative;
    display: flex;
    flex-direction: row-reverse;
    align-items: center;
    justify-content: center;
    gap: 7.5vw;
}

.cat__copy {
    display: flex;
    flex-direction: row-reverse;
    align-items: flex-start;
    --min-size: 8;
    --max-size: 20;
    gap: var(--clamp-size);
}

.cat__maincopy {
    font-size: var(--fontSize-4xl);
    letter-spacing: 0.3em;
    white-space: nowrap;
    width: 1em;
    line-height: 1;
}

.cat__subcopy {
    font-size: var(--fontSize-base);
    letter-spacing: 0.3em;
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 1em;
    margin-top: 3em;
}

.cat__subcopy::before {
    content: "";
    display: block;
    width: 1px;
    height: 3em;
    background-color: currentColor;
    margin-bottom: 1em;
}

.cat__poem {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 3.5vw;
    font-size: var(--fontSize-md);
    letter-spacing: 0.3em;
    white-space: nowrap;
}

.page-other .cat__poem {
    gap: 4.5vw;
}

@media (width < 768px) {
    .cat__head {
        padding: var(--space-9xl) var(--padding-container);
    }

    .cat__inner {
        flex-direction: column;
        align-items: center;
    gap: var(--space-8xl);
    }

    .cat__poem {
        font-size: clamp(12px, 4vw, 16px);
    }
}

/* ········ ページ専用設定 ········ */
.page-template-page-category .category-kv {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    z-index: 1;
}

.page-template-page-category .main {
    position: relative;
    z-index: 2;
    margin-top: 100vh;
}

/* ----------------------------------------
CATEGORY BODY
---------------------------------------- */

.page-template-page-category .cat__body {
    background:
        url(../../img/common/bg_body.webp) repeat center/contain,
        #fff;
}

.cat__container {
    padding-top: var(--space-10xl);
    padding-bottom: var(--space-8xl);
}

.cat__container .flex {
    gap: var(--space-4xl);
}

/* ········ image ········ */
.cat__img {
    flex: 1;
    aspect-ratio: 1;
    width: 100%;
}

.cat__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ········ text ········ */
.cat__text {
    flex: 1;
    margin-top: 3.9cqi;
}

.cat__title {
    font-size: var(--fontSize-xl);
    letter-spacing: 0.3em;
    margin-bottom: var(--space-3xl);
    position: relative;
}

.cat__title::after {
    content: "";
    display: block;
    width: 140%;
    height: 2px;
    background-color: #7E8520;
    margin-top: var(--space-3xl);
    position: absolute;
    bottom: -0.5em;
    right: 0;
}

.cat__desc {
    font-size: var(--fontSize-md);
    letter-spacing: 0.2em;
}

@media (width < 768px) {
    .cat__container .flex {
        flex-direction: column-reverse !important;
    }

    .cat__title {
        text-align: right;
    }

    .cat__title::after {
        width: 100%;
    }
}

/* ----------------------------------------
TERM
---------------------------------------- */

.term__inner {
    width: 90%;
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
    align-items: stretch;
    gap: clamp(16px, 5vw, 80px);
    margin-inline: auto;
}

.term__list {
    flex: 1;
}

/* ········ heading ········ */
.term h2 a {
    font-size: var(--fontSize-lg);
    letter-spacing: 0.4em;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
}

.term h2 a span {
    margin-top: 3em;
    margin-left: -0.5em;
}

/* ········ list ········ */
.term ul {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3em 1em;
    /* margin-bottom: var(--space-4xl); */
}

.term li {
    position: relative;
}

.term__head {
    font-size: var(--fontSize-xs);
    display: flex;
    flex-direction: column;
    line-height: 1.75;
}

.term__thumb {
    aspect-ratio: 400 / 230;
    width: 100%;
    height: auto;
    margin-bottom: 1em;
}

.term__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ········ button ········ */
.term__btn {
    width: 100%;
    margin-top: 1em;
}

.term__btn a {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: flex-end;
}

.term__btn span {
    margin-right: 4em;
}

.term__btn .arrow-right {
    width: clamp(100px, 38cqi, 400px);
}

.term__btn .arrow-right::before {
    right: 0;
    transform: rotate(20deg);
    width: clamp(10px, 2cqi, 30px);
}

/* ········ hover ········ */
@media (pointer: fine) and (hover: hover) {
    .term__btn:hover .arrow-right {
        background-color: #c1c1c1b6;
    }

    .term__btn:hover .arrow-right::before {
        background-color: #c1c1c1b6;
    }
}

@media (width < 768px) {
    .term__inner {
        width: 100%;
        flex-direction: column;
    }

    .term h2 {
        writing-mode: horizontal-tb;
        border-bottom: 1px solid #A4A4A4;
    }

    .term h2 a {
        display: block;
        font-size: 18px;
    }

    .term h2 a span {
        margin-left: 1em;
        display: block;
        text-align: left;
    }

    .term .arrow {
        display: none;
    }

    .term ul {
        grid-template-columns: 1fr;
        gap: 3em;
    }

    .term li {
        width: 100%;
    }

    .term__thumb {
        aspect-ratio: 280 / 102;
        margin-bottom: 1em;
    }

    .term__head {
        position: static;
        background-color: unset;
        padding: 0;
        column-gap: 2em;
        width: 100%;
        height: auto;
    }

    .term__btn a {
        align-items: center;
        border-bottom: 1px solid #A4A4A4;
        width: 80%;
        margin-inline: auto;
    }

    .term__btn a span {
        margin-right: 0;
        padding-bottom: 0.5em;
    }
}