@charset "UTF-8";


/* =========================================================
   Blog Detail Page
========================================================= */

.blog-detail-page {
    background-color: var(--color-body);
}


/* =========================================================
   Hero
========================================================= */

.blog-detail-hero {
    position: relative;

    overflow: hidden;

    margin: 70px 0;

    padding: 90px 40px 86px;

    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;

    text-align: center;
}


.blog-detail-hero::before {
    content: "";

    position: absolute;
    inset: 0;

    background: var(--color-primary-30);

    opacity: .6;

    pointer-events: none;
}


/* 中央ライン */

.blog-detail-hero::after {
    content: "";

    position: absolute;

    top: 0;
    left: 50%;

    width: 1px;
    height: 100%;

    background: rgba(255, 255, 255, 0.08);

    pointer-events: none;
}


.blog-detail-hero__inner {
    position: relative;

    z-index: 1;

    max-width: 800px;

    margin: 0 auto;
}


/* =========================================================
   Eyebrow
========================================================= */

.blog-detail-hero__eyebrow {
    position: relative;

    display: inline-flex;

    align-items: center;

    gap: 16px;

    margin: 0 0 20px;

    color: rgba(255, 255, 255, 0.7);

    font-size: 11px;

    font-weight: 600;

    letter-spacing: 0.28em;

    line-height: 1;
}


.blog-detail-hero__eyebrow::before,
.blog-detail-hero__eyebrow::after {
    content: "";

    display: block;

    width: 28px;
    height: 1px;

    background: rgba(255, 255, 255, 0.45);
}


/* =========================================================
   Hero Title
========================================================= */

.blog-detail-hero h1 {
    margin: 0;

    color: #ffffff;

    font-size: clamp(34px, 4vw, 52px);

    font-weight: 600;

    letter-spacing: 0.12em;

    line-height: 1.35;
}


/* =========================================================
   Content
========================================================= */

.blog-detail-content {
    padding: 50px 20px 100px;
}


.blog-detail-inner {
    width: 100%;

    max-width: 900px;

    margin: 0 auto;
}


/* =========================================================
   Article
========================================================= */

.blog-detail-article {
    padding: 0;
}


/* =========================================================
   Meta
========================================================= */

.blog-detail-meta {
    display: flex;

    align-items: center;

    gap: 16px;

    margin-bottom: 24px;
}


.blog-detail-date {
    color: var(--color-text-muted);

    font-family: Arial, sans-serif;

    font-size: 13px;

    font-weight: 500;

    letter-spacing: 0.08em;

    line-height: 1.4;
}


.blog-detail-category {
    display: inline-flex;

    align-items: center;

    padding: 6px 12px;

    color: var(--color-primary);

    background: rgba(0, 0, 0, 0.045);

    border: 1px solid rgba(0, 0, 0, 0.08);

    border-radius: 999px;

    font-size: 10px;

    font-weight: 600;

    line-height: 1.2;

    letter-spacing: 0.05em;

    white-space: nowrap;
}


/* =========================================================
   Title
========================================================= */

.blog-detail-title {
    margin: 0;

    color: var(--color-text);

    font-size: 28px;

    font-weight: 600;

    line-height: 1.65;

    letter-spacing: 0.04em;
}


/* =========================================================
   Main Image
========================================================= */

.blog-detail-image {
    position: relative;

    overflow: hidden;

    width: 100%;

    margin-top: 34px;

    background: #eee;

    border-radius: 16px;
}


.blog-detail-image img {
    display: block;

    width: 100%;
    height: auto;

    aspect-ratio: 16 / 9;

    object-fit: cover;
}


/* =========================================================
   Divider
========================================================= */

.blog-detail-divider {
    width: 100%;

    height: 1px;

    margin: 38px 0 42px;

    background: rgba(0, 0, 0, 0.14);
}


/* =========================================================
   Body
========================================================= */

.blog-detail-body {
    color: var(--color-text);

    font-size: 15px;

    font-weight: 400;

    line-height: 1.75;

    letter-spacing: 0.035em;

    overflow-wrap: anywhere;

    word-break: break-word;
}


.blog-detail-body::after {
    content: "";

    display: block;

    clear: both;
}


/* =========================================================
   Paragraph spacing
========================================================= */

.blog-detail-body br + br {
    line-height: 2.8;
}


/* =========================================================
   Back
========================================================= */

.blog-detail-back {
    display: flex;

    justify-content: center;

    margin-top: 72px;

    padding-top: 36px;

    border-top: 1px solid rgba(0, 0, 0, 0.12);
}


.blog-detail-back__link {
    display: inline-flex;

    align-items: center;

    gap: 14px;

    color: var(--color-primary);

    text-decoration: none;

    font-size: 13px;

    font-weight: 600;

    letter-spacing: 0.06em;

    transition:
        color 0.25s ease,
        gap 0.25s ease;
}


.blog-detail-back__link:hover {
    color: var(--color-accent);

    gap: 20px;
}


.blog-detail-back__arrow {
    display: inline-flex;

    align-items: center;

    justify-content: center;

    width: 32px;
    height: 32px;

    border: 1px solid var(--color-primary);

    border-radius: 50%;

    font-size: 15px;

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


.blog-detail-back__link:hover .blog-detail-back__arrow {
    color: #ffffff;

    background: var(--color-primary);

    border-color: var(--color-primary);
}


/* =========================================================
   Not Found
========================================================= */

.blog-detail-not-found {
    padding: 80px 20px;

    border-top: 1px solid rgba(0, 0, 0, 0.14);

    border-bottom: 1px solid rgba(0, 0, 0, 0.14);

    text-align: center;
}


.blog-detail-not-found__eyebrow {
    margin: 0 0 18px;

    color: var(--color-text-muted);

    font-family: Arial, sans-serif;

    font-size: 11px;

    font-weight: 600;

    letter-spacing: 0.22em;
}


.blog-detail-not-found h2 {
    margin: 0;

    color: var(--color-text);

    font-size: 24px;

    font-weight: 600;

    line-height: 1.6;

    letter-spacing: 0.06em;
}


.blog-detail-not-found > p:not(.blog-detail-not-found__eyebrow) {
    margin: 20px 0 0;

    color: var(--color-text-muted);

    font-size: 13px;

    line-height: 2;

    letter-spacing: 0.04em;
}


.blog-detail-not-found .blog-detail-back__link {
    margin-top: 42px;
}


/* =========================================================
   Tablet
========================================================= */

@media (max-width: 768px) {

    .blog-detail-hero {
        margin: 86px 0 40px;

        padding: 70px 24px 66px;
    }


    .blog-detail-hero h1 {
        font-size: 34px;
    }


    .blog-detail-content {
        padding: 55px 20px 80px;
    }


    .blog-detail-meta {
        gap: 10px;

        margin-bottom: 20px;
    }


    .blog-detail-date {
        font-size: 12px;
    }


    .blog-detail-category {
        padding: 5px 10px;

        font-size: 9px;
    }


    .blog-detail-title {
        font-size: 25px;

        line-height: 1.65;
    }


    .blog-detail-image {
        margin-top: 28px;

        border-radius: 14px;
    }


    .blog-detail-divider {
        margin: 30px 0 34px;
    }


    .blog-detail-body {
        font-size: 14px;

        line-height: 2.05;
    }


    .blog-detail-back {
        margin-top: 60px;

        padding-top: 30px;
    }

}


/* =========================================================
   Mobile
========================================================= */

@media (max-width: 500px) {

    .blog-detail-hero {
        margin-bottom: 36px;

        padding: 58px 20px 56px;
    }


    .blog-detail-hero__eyebrow {
        gap: 12px;

        margin-bottom: 16px;

        font-size: 10px;

        letter-spacing: 0.24em;
    }


    .blog-detail-hero__eyebrow::before,
    .blog-detail-hero__eyebrow::after {
        width: 20px;
    }


    .blog-detail-hero h1 {
        font-size: 29px;

        letter-spacing: 0.1em;
    }


    .blog-detail-content {
        padding: 48px 18px 65px;
    }


    .blog-detail-meta {
        flex-wrap: wrap;

        gap: 8px 10px;

        margin-bottom: 18px;
    }


    .blog-detail-date {
        font-size: 11px;
    }


    .blog-detail-category {
        padding: 4px 9px;

        font-size: 9px;
    }


    .blog-detail-title {
        font-size: 21px;

        line-height: 1.65;

        letter-spacing: 0.025em;
    }


    .blog-detail-image {
        margin-top: 24px;

        border-radius: 12px;
    }


    .blog-detail-divider {
        margin: 26px 0 30px;
    }


    .blog-detail-body {
        font-size: 13px;

        line-height: 2;

        letter-spacing: 0.025em;
    }


    .blog-detail-back {
        margin-top: 50px;

        padding-top: 26px;
    }


    .blog-detail-back__link {
        gap: 11px;

        font-size: 12px;
    }


    .blog-detail-back__arrow {
        width: 30px;
        height: 30px;

        font-size: 14px;
    }


    .blog-detail-not-found {
        padding: 60px 15px;
    }


    .blog-detail-not-found h2 {
        font-size: 20px;
    }


    .blog-detail-not-found > p:not(.blog-detail-not-found__eyebrow) {
        font-size: 12px;
    }

}



/* =========================================================
   Related Blogs
========================================================= */

.blog-related {

    margin-top: 70px;

    padding-top: 50px;

    border-top:1px solid rgba(0,0,0,.12);

}



.blog-related-title {

    display:flex;

    align-items:center;

    gap:16px;

    margin:0 0 28px;

    color:var(--color-text);

    font-size:18px;

    font-weight:600;

    letter-spacing:.08em;

}


.blog-related-title span {

    color:var(--color-primary);

    font-family:Arial,sans-serif;

    font-size:10px;

    font-weight:600;

    letter-spacing:.22em;

}



/* 一覧 */

.blog-related-list {

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:24px;

}



/* 記事カード */

.blog-related-card {

    display:flex;

    align-items:center;

    gap:18px;

    padding:14px;

    text-decoration:none;

    color:inherit;

    background:#fff;

    border:1px solid rgba(0,0,0,.08);

    border-radius:10px;

    transition:.25s ease;

}



.blog-related-card:hover {

    transform:translateY(-3px);

    border:1px solid var(--color-primary);
    box-shadow:0 8px 20px var(--color-primary-light-a30);

}



/* サムネイル */

.blog-related-image {

    flex-shrink:0;

    width:120px;

    height:80px;

    overflow:hidden;

    border-radius:8px;

    background:#eee;

}



.blog-related-image img {

    width:100%;

    height:100%;

    object-fit:cover;

    display:block;

    transition:.3s ease;

}



.blog-related-card:hover img {

    transform:scale(1.05);

}



/* タイトル */

.blog-related-content {

    flex:1;

}



.blog-related-content h4 {

    margin:0;

    color:var(--color-text);

    font-size:14px;

    font-weight:600;

    line-height:1.7;

    letter-spacing:.04em;

}



/* =========================================================
   Tablet
========================================================= */

@media(max-width:768px){


    .blog-related {

        margin-top:60px;

        padding-top:40px;

    }


    .blog-related-list {

        grid-template-columns:1fr;

        gap:16px;

    }


    .blog-related-card {

        gap:14px;

        padding:12px;

    }


    .blog-related-image {

        width:100px;

        height:68px;

    }


    .blog-related-content h4 {

        font-size:13px;

    }

}
