@charset "utf-8";

/* ---------- 
プロジェクト事例_共通CSS
----------*/

/* ---------- 
support-case
----------*/
#support_case .inner{
    width: clamp(840px, 60vw, 860px);
}

/* ---------- 
support-case-header_KV部分など
----------*/
#support_case .support-case-header{
    padding-bottom: 40px;
    border-bottom: 1px solid var(--color-text);
}

#support_case  .support-case-header .support-case-kv{
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    width: 100%;
    height: auto;
}

/* 中央の正画像 */
#support_case .support-case-header .support-case-kv img{
    position: relative;
    width: clamp(326px, 30vw, 420px);
    height: auto;
    z-index: 2;
    display: block;
}

/* 左右の30%濃度画像 */
#support_case .support-case-header .support-case-kv::before,
#support_case .support-case-header .support-case-kv::after {
    content: '';
    position: absolute;
    top: 0;
    width: calc((100% - clamp(326px, 30vw, 420px)) / 2);
    height: 100%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 0.3;
    z-index: 1;
}

#support_case .support-case-header .support-case-kv::before {
    left: 0;
}

#support_case .support-case-header .support-case-kv::after {
    right: 0;
}

#support_case .support-case-header .support-case-info{
    margin-top: 80px;
}

#support_case .support-case-header .support-case-client{
 font-family: "Inter","Noto Sans JP", sans-serif;
 font-size: clamp(14px, 1.0vw, calc(14px * var(--ratio)));
}
#support_case .support-case-client .client-name{
    font-weight: 500;
}

#support_case .support-case-header .page-title-c{
    margin-top: 20px;
    text-wrap: initial;
}

#support_case .support-case-header .support-case-link-wrap{
    margin-top: 20px;
    display: block;
    align-items: center;
}

#support_case .support-case-header .support-case-link-wrap a{
    margin-right: 20px;
}

#support_case .editor-block{
    margin-bottom: 80px;
}

#support_case .editor-block ul + p,
#support_case .editor-block ol + p{
    margin-top: 30px;
}

.editor-block ol li{
    font-weight: 400;
    line-height: 2.125;
    letter-spacing: 0.05em;
    font-size: clamp(16px, 1.14vw, calc(16px * var(--ratio)));
    line-height: calc(34 / 16);
}

@media screen and (max-width: 700px) {
    #support_case .support-case-header .support-case-info{
        margin-top: 40px;
    }

    #support_case .support-case-header .support-case-client{
        font-size: calc(12px / var(--fs-base) * 1rem);
    }

    #support_case .support-case-header .support-case-title{
        margin-top: 15px;
    }

    #support_case .support-case-header .support-case-link-wrap{
        margin-top: 15px;
    }
    #support_case .support-case-header .support-case-link-wrap a{
        margin-right: 10px;
    }

    #support_case .editor-block{
        margin-bottom: 60px;
    }
    
    .editor-block ul li,
    .editor-block ol li{
        font-size: calc(15px / var(--fs-base) * 1rem);
        line-height: calc(30/15);
    }
}

/* ---------- 
support_case_slide_スライダーセクション
----------*/
.support_case_slide {
    background: #fff;
    padding: 0 0 80px;
    overflow: hidden;
}

/* ---------- 
related-links_スライダー上タイトル
----------*/
#support_case .related-links{
    margin-bottom: 30px;
}

/* ---------- 
project-swiper_スライダーあり
----------*/
.project-swiper {
    /* margin-bottom: 60px; */
    overflow: visible;
}

.project-swiper .swiper-wrapper {
    align-items: stretch;
}

.activities-section .project-swiper .swiper-slide{
    width: 326px;
}

.project-item {
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    cursor: pointer;
    width: clamp(326px, 23.286vw, calc(326px * var(--ratio)));
}

.project-img {
    display: block;
}

.project-img img {     
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover; 
    object-position: center;
}

.project-content {
    height: clamp(295px, 21.071vw, calc(295px * var(--ratio)));
    width: 100%;
    padding: 30px;
    padding-top: clamp(30px, 2.143vw, calc(30px * var(--ratio)));
    background: var(--color-sub);
    box-sizing: border-box;
}

.project-title{
    margin-bottom: 10px;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    text-overflow: clip;
    overflow: hidden;
}

.project-title a{
    font-size: clamp(16px, 1.143vw, calc(16px * var(--ratio)));
    font-weight: 500;
    line-height: calc(30/16);
    color: var(--color-text);
    background-image: linear-gradient(var(--color-text), var(--color-text));
   
}

.project-client {
    margin-bottom: 20px;
    font-size: clamp(12px, 0.857vw, calc(12px * var(--ratio)));
    height: 2.2em;
    overflow: hidden;
    text-overflow: clip;
}

.project-client span {
    font-family: "Inter", sans-serif;
    font-size: clamp(14px, 1.0vw, calc(14px * var(--ratio)));
    font-weight: 400;
}

/* 複数リンク：flex だと各 a が行単位になりやすいのでインライン流し＋末尾 margin で間隔 */
.project-link-wrap {
    display: block;
    font-size: clamp(12px, 0.86vw, calc(12px * var(--ratio)));
    line-height: 1.83;
    max-height: calc(1em * 1.83 * 3);
    overflow: hidden;
    text-overflow: clip;
}

.project-link-wrap a:not(:last-child) {
    margin-right: 10px;
}

.project-link-wrap .link-hover-line {
    line-height: 1.83;
}

@media screen and (min-width: 701px) {
    .project-item:hover .project-img{
        filter:  brightness(0.85);
    }

    .project-item:hover .project-title .link-text {
        background-size: 100% 1px;
    }
}

@media screen and (max-width: 700px) {
    .project-link-wrap a:not(:last-child) {
        margin-right: 5px;
    }
}

/* ナビゲーション */
.project-swiper-pagination {
    position: relative;
    padding: 30px 0;
    width: 100%;
    text-align: center;
    margin-top: 20px;
}

.project-swiper-button-next,
.project-swiper-button-prev {
    position: absolute;
    top: 50%;
    transform: translateY(-50%) translateX(-50%);
    width: 32px;
    height: 32px;
    border: 1px solid var(--color-text);
    border-radius: 50%;
    z-index: 10;
    cursor: pointer;
}

.project-swiper-button-next {
    left: calc(50% + 52px)
}

.project-swiper-button-prev {
    left: calc(50% - 52px)
}

.project-swiper-button-next:before,
.project-swiper-button-prev:before {
    content: "";
    position: absolute;
    top: calc(50% - 1px);
    width: 8px;
    height: 8px;
    transform: rotate(45deg) translate(-50%);
}

.project-swiper-button-next:before {
    border-top: 1px solid var(--color-text);
    border-right: 1px solid var(--color-text);
    right: calc(50% - 4px);
}

.project-swiper-button-prev:before {
    border-bottom: 1px solid var(--color-text);
    border-left: 1px solid var(--color-text);
    left: 50%;
}

/* 一時停止/再生ボタン */
.project-swiper-pause-button {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
    width: 32px;
    height: 32px;
    border: 1px solid var(--color-text);
    border-radius: 50%;
    background: transparent;
    cursor: pointer;
    z-index: 10;
    padding: 0;
}

/* 一時停止アイコン（デフォルト） */
.project-swiper-pause-button:before,
.project-swiper-pause-button:after {
    content: "";
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 1px;
    height: 8px;
    background: var(--color-text);
}

.project-swiper-pause-button:before {
    left: calc(50% - 3px);
}

.project-swiper-pause-button:after {
    left: calc(50% + 2px);
}

/* 再生アイコン（一時停止状態） */
.project-swiper-pause-button.paused:before,
.project-swiper-pause-button.paused:after {
    width: 0;
    height: 0;
    background: transparent;
    border-style: solid;
}

/*三角アイコン*/
.project-swiper-pause-button.paused:before {
    left: calc(50% - 2px);
    border-width: 5px 0 5px 7px;
    border-color: transparent transparent transparent var(--color-text);
}

.project-swiper-pause-button.paused:after {
    display: none;
}

#support_case .btn-wrap{
    margin-bottom: 80px;
}

@media screen and (max-width: 1101px) {
    /* 固定サイズでトリミング表示を維持 */
    .project-img img{
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
    }
}

@media screen and (min-width: 701px) {
    .project-swiper-button-next:hover,
    .project-swiper-button-prev:hover,
    .project-swiper-pause-button:hover {
        background: var(--color-text);
    }
    .project-swiper-button-next:hover:before {
        border-top: 1px solid var(--color-text-sub);
        border-right: 1px solid var(--color-text-sub);
    }
    .project-swiper-button-prev:hover:before {
        border-bottom: 1px solid var(--color-text-sub);
        border-left: 1px solid var(--color-text-sub);
    }
    .project-swiper-pause-button:hover:before,
    .project-swiper-pause-button:hover:after {
        background: var(--color-text-sub);
        /* border-color: transparent transparent transparent var(--color-text-sub); */
        /* border: 1px solid var(--color-text-sub); */
    }
    .project-swiper-pause-button.paused:hover:before {
        background: var(--color-text);
        border-color: transparent transparent transparent var(--color-text-sub);
    }
}

@media screen and (min-width: 701px) and (max-width: 1100px) {

    .project-item {
        width: auto;
    }
    
    /* タブレット時も固定サイズでトリミング表示 */
    .project-img img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
    }
    
    .project-content {
        min-height: 295px;
    }
    
    /* タブレット時のページネーション調整 */
    .project-swiper-button-next {
        left: calc(50% + 40px);
    }
    
    .project-swiper-button-prev {
        left: calc(50% - 40px);
    }
    
    .project-swiper-pause-button {
        left: 50%;
    }

}

@media screen and (max-width: 700px) {
    /* KV画像のSP対応 */
    #support_case .support-case-header .support-case-kv img{
        width: 100%;
    }
    
    /* SP時は左右の薄い画像を非表示にする場合 */
    #support_case .support-case-header .support-case-kv::before,
    #support_case .support-case-header .support-case-kv::after {
        display: none;
    }

    #support_case .related-links{
        margin-bottom: 20px;
    }
    
    .project-swiper {
        margin-bottom: 0px;
    }

    .support_case_slide{
        padding-bottom: 60px;
    }
    
    /* スライド画像のSP対応 */
    .project-item {
        width: auto;
    }
    
    .project-img {
        width: 100%;
        height: auto;
        aspect-ratio: 326 / 245; /* 元の比率を維持 */
    }
    
    .project-img img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
    }
    
    .project-content {
        height: 294px;
        padding: 30px;
    }
    .project-title {
        margin-bottom: 5px;
        font-size: calc(16px / var(--fs-base) * 1rem);
        height: calc(1.875em * 4);
    }
    .project-client {
        font-size: calc(12px / var(--fs-base) * 1rem);
    }
    .project-client span {
        font-size: calc(14px / var(--fs-base) * 1rem);
    }
    .project-link-wrap {
        row-gap: 15px;
    }
    /* ナビゲーション */
    .project-swiper-button-next,
    .project-swiper-button-prev {
        transform: translateY(-50%);
    }
    .project-swiper-button-next {
        left: auto;
        right: calc(50% - 62px);
    }
    .project-swiper-button-prev {
        left: calc(50% - 62px);
    }
    .project-swiper-pause-button {
        left: 50%;
    }

    #support_case .btn-wrap{
        margin-bottom: 60px;
    }    
}
