@charset "UTF-8";
.subsection {
    position: relative;
    width: var(--contentWidth);
    max-width: 795px;
    margin: 60px auto 0;
}
.page__sns {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    position: absolute;
    top: 0;
    left: -7.5%;
}
.page__sns li:first-of-type {
    margin-bottom: 10px;
}
.page__sns img {
    width: 20px;
}
@media (any-hover: hover) {
    .page__sns a:hover .sns__icon {
        background-color: var(--primary-blue);
        transition: .3s ease;
    }
}
.post__header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
}
.post__date {
    font-family: Montserrat;
    font-weight: 600;
    line-height: 1; /* 16px */
    letter-spacing: 0.8px;
}
.post__category {
    display: block;
    color: white;
    font-size: 1.4rem;
    font-weight: 500;
    letter-spacing: 0.8px;
    background-color: var(--primary-blue);
    padding: 5px 10px;
    border-radius: 50px;
}
.post__category.cat-news {
    background-color: var(--primary-navy);
    color: white;
}
.post__category.cat-event {
    background-color: var(--primary-blue);
    color: white;
}
.post__category.cat-blog {
    background-color: var(--primary-yellow);
    color: var(--primary-black);
}
/* カテゴリーが増えた時用の配色 */
.post__category.category1 {
    background-color: #7BB661;
    color: white;
}
.post__category.category2 {
    background-color: #D95B4C;
    color: white;
}
.post__category.category3 {
    background-color: #F5A3B5;
    color: var(--primary-black);
}
.post h1 {
    font-size: 3rem;
    font-weight: 500;
    letter-spacing: 0.9px;
    padding-bottom: 20px;
    margin: 10px 0 30px 0;
    border-bottom: 2px solid var(--primary-blue);
}
.post h2 {
    font-size: 2.8rem;
    font-weight: 500;
    letter-spacing: 0.84px;
    padding-left: 20px;
    margin: 40px 0 10px 0;
    position: relative;
}
.post h2::before {
    content: "";
    width: 7px;
    height: 40px;
    background-color: var(--primary-blue);
    border-radius: 10px;
    position: absolute;
    top: 2px;
    left: 0;
}
.post h3 {
    font-size: 2.2rem;
    font-weight: 500;
    letter-spacing: 0.66px;
    margin: 30px 0 10px 0;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--primary-blue);
}
.post h4 {
    font-size: 2rem;
    font-weight: 500;
    letter-spacing: 0.6px;
    margin: 30px 0 10px 0;
    padding: 8px 12px;
    background-color: var(--primary-whiteY);
    border-radius: 10px;
}
.post__content p {
    line-height: 2;
    letter-spacing: 0.48px;
    margin-top: 20px;
    margin-bottom: 10px;
}
.post__content img {
    margin-top: 40px;
    margin-bottom: 20px;
}
.post__content ul,
.post__content ol {
    margin-top: 20px;
    margin-bottom: 10px;
}
.post__content ul > li {
    padding-left: 1.7em;
    position: relative;
    margin-top: 5px;
}
.post__content ul > li:before {
    content: "";
    width: 6px;
    height: 6px;
    background-color: var(--primary-blue);
    border-radius: 50%;
    position: absolute;
    top: 0.6em;
    left: 1px;
}
.post__content ol > li {
    padding-left: 1.7em;
    margin-top: 5px;
    position: relative;
    counter-increment: number;
}
.post__content ol > li::before {
    content: counter(number)".";
    color: var(--primary-blue);
    position: absolute;
    top: 0;
    left: 0;
}
.post__content a {
    text-decoration: underline 1px var(--primary-blue); 
    text-underline-offset: 4px;
}
@media (any-hover: hover) {
    .post__content a:hover {
        color: var(--primary-blue);
    }
}
.post__footer {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    border-top: 2px solid var(--primary-blue);
    padding-top: 30px;
    margin-top: 30px;
    margin-bottom: 60px;
}
.post__nav__item--prev,
.post__nav__item--next {
    width: 23.2%;
}
.post__icon {
    display: flex;
    justify-content: flex-start;
    align-items: baseline;
    gap: 5px;
}
.post__icon--next {
    justify-content: flex-end;
}
.icon--prev,
.icon--next {
    transition: .3s ease;
}
.icon--prev {
    transform: rotate(180deg);
}
.post__nav__title__prev,
.post__nav__title__next {
    color: var(--primary-blue);
    font-weight: 500;
    letter-spacing: 0.48px;
    transition: .3s ease;
}
.post__nav__blogtitle {
    margin-top: 5px;
    overflow: hidden;
    display: -webkit-box;        
    -webkit-box-orient: vertical; 
    -webkit-line-clamp: 2;       
    line-clamp: 2;               
    text-overflow: ellipsis;     
    white-space: normal;   
    text-decoration: underline 1px var(--primary-blue); 
    text-underline-offset: 4px;
}
.post__nav__blogtitle--next {
    text-align: right;
}
@media (any-hover: hover) {
    .post__footer a:hover .post__nav__blogtitle {
        color: var(--primary-blue);
        transition: .3s ease;
    }
}
.back__btn--container {
    text-align: center;
}
.back__btn--btn {
    display: inline-block;
    margin: 20px auto 100px;
}
.back__btn {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 20px 20px 20px 30px;
    background-color: var(--primary-blue);
    border-radius: 40px;
    gap: 10px;
    transition: .3s ease;
}
.back__btn p {
    color: white;
    font-size: 1.8rem;
    font-weight: 500;
    letter-spacing: 0.9px;
    transition: .3s ease;
}
.backbtn--arrow {
    background-color: var(--primary-black);
}
@media (any-hover: hover) {
    .back__btn--btn:hover .back__btn p {
        color: var(--primary-navy);
        transition: .3s ease;
    }
    .back__btn--btn:hover .back__btn {
        background-color: var(--primary-40pblue);
        transition: .3s ease;
    }
    .back__btn--btn:hover .backbtn--arrow {
        background-color: var(--primary-navy);
    }
}
@media screen and (max-width: 768px) {
    .subsection {
        width: var(--contentWidthSP);
        margin: 48px auto 0;
    }
    .page__sns {
        display: none;
    }
    .post h1 {
        font-size: 2.2rem;
        letter-spacing: 0.66px;
        padding-bottom: 16px;
    }
    .post h2 {
        font-size: 2.2rem;
        letter-spacing: 0.66px;
        padding-left: 18px;
    }
    .post h2::before {
        width: 6px;
        height: 33px;
        top: 2.5px;
        left: 0;
    }
    .post h3 {
        font-size: 2rem;
        letter-spacing: 0.6px;
    }
    .post h4 {
        font-size: 1.8rem;
        letter-spacing: 0.54px;
        margin: 24px 0 10px 0;
    }
    .post__content p {
        font-size: 1.5rem;
        line-height: 1.8;
    }
    .post__content img {
        margin-top: 30px;
    }
    .post__content li {
        font-size: 1.5rem;
    }
    .post__footer {
        padding-top: 24px;
        margin-top: 24px;
        margin-bottom: 48px;
    }
    .post__nav__item--prev,
    .post__nav__item--next {
        width: 40%;
    }
    .post__nav__blogtitle {
        margin-top: 5px;
        -webkit-line-clamp: 4;       
        line-clamp: 4;               
    }
    .post__category {
        font-size: 1.4rem;
    }
}