@charset "utf-8";

/* --------------------------------------
    media style
 -------------------------------------- */
.contents-inr {
    display: flex;
    flex-wrap: wrap;
    gap: 60px 4%;
}

.sec-medialist {
    order: 1;
    width: 73%;
}

.side-area {
    order: 2;
    width: 23%;
}

@media (width <= 767px) {
    .sec-medialist {
        width: 100%;
    }

    .side-area {
        width: 100%;
    }
}

/* --------------------------------------
    一覧・詳細 共通パーツ
 -------------------------------------- */
.t-tag,
a.t-tag {
    display: inline-block;
    padding: 0 5px;
    color: #c7b58c;
    border-radius: 100px;
}

.t-cat {
    color: #a28e61;
}

.t-date {
}

/* --------------------------------------
    サイド（カテゴリ・タグ）
 -------------------------------------- */

/* カテゴリ一覧 */
.cat-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0 2px;
    width: 100%;
}

.cat-list li {
    width: 100%;
    border-top: 1px solid #f0ece5;
}

.cat-list li:last-child {
    border-bottom: 1px solid #f0ece5;
}

.cat-list .cat-item {
    display: block;
    width: 100%;
    padding: 10px 12px;
    color: #a28e61;
    background-color: #fff;
    transition: all 0.28s ease;
}

.cat-list .cat-item:hover {
    background-color: #f6f6eb;
}

.cat-list .cat-item.is-active {
    color: #fff;
    background-color: #a28e61;
}

/* タグ一覧 */
.tag-list {
    display: flex;
    flex-wrap: wrap;
    gap: 3px;
}

.tag-list .t-tag {
    transition: all 0.28s ease;
}

.tag-list .t-tag:hover {
    background-color: #f6f6eb;
}

.tag-list .t-tag.is-active {
    color: #fff;
    background-color: #a28e61;
}

/* --------------------------------------
    一覧
 -------------------------------------- */
.txt-list {
    display: inline-flex;
    flex-wrap: wrap;
    width: 100%;
}

.txt-list .sbox-article {
    width: 100%;
    border-top: 1px solid #f0ece5;
}

.txt-list .sbox-article:last-child {
    border-bottom: 1px solid #f0ece5;
}

.txt-list .sbox-article .cont-box {
    display: block;
    width: 100%;
    padding-right: 10px;
    transition: all 0.3s ease-out;
}

.txt-list .sbox-article.has-thumb .cont-box {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 20px;
}

.txt-list .sbox-article .cont-box:hover {
    opacity: 0.7;
}

.txt-list .sbox-article .cont-box .thumbnail {
    overflow: hidden;
}

/* サムネイル画像 -------------------- */
.txt-list .sbox-article .cont-box .thumbnail {
    width: 25%;
}

.txt-list .sbox-article .cont-box .thumbnail .photo-wrap {
    display: block;
    width: 100%;
    aspect-ratio: 3/2;
}

.txt-list .sbox-article .cont-box .thumbnail .photo-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

@media (width <= 767px) {
    .txt-list .sbox-article .cont-box .thumbnail {
        order: 2;
        width: 100%;
    }
}

/* カテゴリ・日付・タイトル -------------------- */
.txt-list .sbox-article .txt-area {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.txt-list .sbox-article.has-thumb .txt-area {
    flex: 1;
    padding-right: 5%;
}

@media (width <= 767px) {
    .txt-list .sbox-article.has-thumb .txt-area {
        order: 1;
        width: 100%;
        padding-right: 0;
    }
}

/* --------------------------------------
   詳細
 -------------------------------------- */
.sec-mediadetail .wrap {
    max-width: 1000px;
}

/* タイトル */
.media-ttl {
    border-bottom: 1px solid #dfdfdf;
}

.media-ttl .tag-row {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 20px;
}

@media (width <= 480px) {
    .media-ttl {
        padding-bottom: 15px;
        margin-bottom: 15px;
    }
}

/* 画像 */
.media-thumb img {
    width: 100%;
    height: auto;
}

/* イントロ */
.media-intro {
}

/* 目次 */
.media-index {
    padding: 20px 30px;
    counter-reset: section;
    background-color: #f3ede3;
}

.media-index .index {
    display: flex;
    flex-direction: column;
    gap: 5px 0;
}

.media-index .index .list:not(:last-child) {
    border-bottom: 1px solid rgb(0 0 0 / 10%);
}

.media-index .index .list a {
    display: block;
    padding-block: 5px;
}

.media-index .index .list a::before {
    display: inline-block;
    padding-right: 0.5rem;
    font-family: "Roboto Condensed", sans-serif;
    font-weight: normal;
    color: #a28e61;
    letter-spacing: 0;
    content: counter(section, decimal-leading-zero) ".";
    counter-increment: section 1;
}

@media (width >= 768px) {
    .media-index .index .list a:hover {
        opacity: 0.7;
    }
}

/* セクション */
.media-section {
}

.media-section .sections {
    border-bottom: 1px solid rgb(0 0 0 / 10%);
}

/* 外部リンク */
.quote-wrap {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.quote-wrap a {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    background-color: #f3f3eb;
    transition: all 0.28s ease;
}

.quote-wrap a:hover {
    opacity: 0.7;
}

.quote-wrap .img-area {
    aspect-ratio: 3/2;
}

.quote-wrap .img-area img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.quote-wrap .txt-area {
    flex: 1;
}

.quote-wrap .txt-area p:not(:first-child) {
    padding-top: 0.5em;
}

/* quote-style01 */
.quote-style01 a {
    gap: 15px 4%;
    width: 100%;
    padding: 30px max(5%, 40px) 30px 5%;
}

.quote-style01 a::before {
    position: absolute;
    top: calc(50% - 5px);
    right: 15px;
    width: 10px;
    height: 10px;
    content: "";
    background: url("../../img/question/icon_category.png") no-repeat center /
        contain;
}

.quote-style01 .img-area {
    width: 40%;
    max-width: 600px;
}

@media screen and (width <=480px) {
    .quote-style01 a {
        padding: 15px 40px 15px 15px;
    }

    .quote-style01 .img-area {
        width: 100%;
    }
}

/* quote-style02 */
.quote-style02 a {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    gap: 10px 4%;
    align-items: flex-start;
    width: calc((100% - 20px) / 3);
    padding: 15px 20px 15px 15px;
    background-color: #f3f3eb;
    transition: all 0.28s ease;
}

.quote-style02 a::before {
    position: absolute;
    right: 5px;
    bottom: 5px;
    width: 15px;
    height: 15px;
    content: "";
    background: #a28e61 url("../../img/common/icon_arrow01.png") no-repeat 50%
        center;
    border-radius: 100%;
}

.quote-style02 .img-area {
    width: 100%;
}

/* 投稿用 */
.quote-style02 .works {
    display: flex;
    flex-flow: column;
    gap: 0 4%;
    align-items: flex-start;
    width: calc((100% - 20px) / 3);
    background-color: #f3f3eb;
}

.quote-style02 .works a {
    position: relative;
    display: block;
    width: 100%;
    padding: 15px 20px 15px 15px;
    transition: all 0.28s ease;
}

.quote-style02 .works .img-area a::before {
    display: none;
}

.quote-style02 .works .img-area .fit {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    aspect-ratio: 3/2;
    overflow: hidden;
}

.quote-style02 .works .img-area img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.quote-style02 .works .txt-area {
    width: 100%;
}

.quote-style02 .works .txt-area a {
    height: 100%;
    padding-top: 0;
}

.sbox-mediadetail:not(:has(.works)) a {
    color: #a28e61;
    text-decoration: underline;
}

@media screen and (width <=991px) {
    .quote-style02 a {
        width: calc((100% - 10px) / 2);
    }

    /* 投稿用 */
    .quote-style02 .works {
        width: calc((100% - 10px) / 2);
    }

    .quote-style02 .works a {
        width: 100%;
    }
}

/* -------------------------------------- 
    contact
 -------------------------------------- */
.contact-area {
    display: flex;
    flex-wrap: wrap;
    gap: 20px 40px;
    align-items: center;
    padding: 5%;
    background-color: #f3f3eb;
}

.contact-area .btn-wrap {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    width: calc(50% - 20px);
}

.contact-area .btn-cont {
    display: block;
    width: 100%;
    padding: 20px 10px;
    text-align: center;
}

.contact-area .btn-cont.new-member {
    background-color: #44841e;
}

.contact-area .btn-cont.form {
    background-color: #d1ad3c;
}

.contact-area .tel-wrap {
    width: calc(50% - 20px);
}

.contact-area .tel-wrap span {
    display: block;
}

@media screen and (width <=768px) {
    .contact-area .btn-wrap {
        width: 100%;
    }

    .contact-area .tel-wrap {
        width: 100%;
    }
}

/* -------------------------------------- 
    pager
 -------------------------------------- */
.pager ul {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
}

.pager ul li {
    line-height: 0;
}

.pager .nav-current {
    padding: 0 40px;
    text-align: center;
}

.pager .btn-box {
    position: relative;
    display: inline-block;
    width: 50px;
    height: 50px;
}

/* リンクがない時 */
.pager .nav-pre > span,
.pager .nav-next > span {
    opacity: 0.1;
}

/* 詳細ページnav-backlist */
.pager .nav-backlist a {
    display: flex;
    gap: 10px;
    width: fit-content;
    line-height: 50px;
    text-align: left;
}

/* i */
.pager i {
    display: block;
    width: 100%;
    height: 100%;
    background: #a28e61;
}

.pager .nav-pre i::before,
.pager .nav-backlist i::before,
.pager .nav-next i::before {
    position: absolute;
    top: 50%;
    display: block;
    width: 10px;
    height: 10px;
    content: "";
}

.pager .nav-pre i::before,
.pager .nav-backlist i::before {
    left: 50%;
    border-top: 2px solid #fff;
    border-left: 2px solid #fff;
    transform: translate(-50%, -50%) rotate(-45deg);
}

.pager .nav-next i::before {
    left: 50%;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    transform: translate(-50%, -50%) rotate(45deg);
}

.pager .nav-pre a:hover i::before,
.pager .nav-backlist a:hover i::before {
    animation: move-left-anim 0.65s ease 0s 1 forwards;
}

.pager .nav-next a:hover i::before {
    animation: move-right-anim 0.65s ease 0s 1 forwards;
}

@keyframes move-left-anim {
    0% {
        opacity: 1;
        transform: translate(-50%, -50%) rotate(-45deg);
    }

    50% {
        opacity: 0;
        transform: translate(-100%, -50%) rotate(-45deg);
    }

    50.1% {
        opacity: 0;
        transform: translate(0%, -50%) rotate(-45deg);
    }

    100% {
        opacity: 1;
        transform: translate(-50%, -50%) rotate(-45deg);
    }
}

@keyframes move-right-anim {
    0% {
        opacity: 1;
        transform: translate(-50%, -50%) rotate(45deg);
    }

    50% {
        opacity: 0;
        transform: translate(0%, -50%) rotate(45deg);
    }

    50.1% {
        opacity: 0;
        transform: translate(-100%, -50%) rotate(45deg);
    }

    100% {
        opacity: 1;
        transform: translate(-50%, -50%) rotate(45deg);
    }
}
