@charset "utf-8";

/* --------------------------------------------


記事


---------------------------------------------- */

.special__text {
    margin-bottom: 60px;
    padding: 20px;
    font-size: 16px;
    font-size: 1.6rem;
    text-align: justify;
    border: solid 2px #dcdc8c;
}

.special__text ul {
    list-style-position: outside;
}

.special__text ul li {
    list-style-type: disc;
    margin-left: 32px;
}

.special__text ul li a {
    text-decoration: underline;
}


/* ---記事タイトル--- */

.article__title {
    margin-bottom: 40px;
    padding-bottom: 20px;
    border-bottom: dotted 2px #302015;
}

.title__flex {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.calender {
    font-size: 16px;
    font-size: 1.6rem;
}

.article__title .article__category a {
    display: inline-block;
    padding: 0 10px;
    font-size: 20px;
    font-size: 2rem;
    color: #fff;
    background-color: #302015;
}

.article__title h2 {
    margin: 20px 0;
    font-size: 32px;
    font-size: 3.2rem;
    line-height: 1.5;
}

.article__author-name {
    text-align: start;
    font-size: 18px;
    font-size: 1.8rem;
}

.article__author-name span {
    display: inline-block;
    margin-left: 20px;
    font-size: 22px;
    font-size: 2.2rem;
    font-weight: bold;
}

.article__title .article__tag {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    margin: 20px 0;
    font-size: 14px;
    font-size: 1.4rem;
}


@media only screen and (max-width:640px) {
    .article__title {
        margin-bottom: 60px;
    }

    .article__title .article__category a {
        font-size: 16px;
        font-size: 1.6rem;
    }

    .article__title h2 {
        font-size: 22px;
        font-size: 2.2rem;
    }

    .article__author-name {
        font-size: 14px;
        font-size: 1.4rem;
        line-height: 1.5;
    }

    .article__author-name span {
        margin: 0;
        font-size: 16px;
        font-size: 1.6rem;
    }
}

/* ---記事内容--- */


.article__main h3 {
    margin: 60px 0 20px;
    font-size: 24px;
    font-size: 2.4rem;
    font-weight: bold;
    line-height: 1.5;
}

.article__main h4 {
    margin-top: 20px;
    font-size: 18px;
    font-size: 1.8rem;
    font-weight: bold;
}


.article__main p,
.article__main .print {
    font-size: 16px;
    font-size: 1.6rem;
}

.article__main a {
    display: inline-block;
    margin: 0 10px;
    text-decoration: underline;
}

.article__main .articleImage {
    margin: 28px 0;
}

.article__main .float_l {
    float: left;
    margin-right: 40px;
    width: 400px;
}

.article__main .clear {
    clear: both;
    margin-bottom: 40px;
}

.article__main h3.clear {
    clear: both;
    margin: 120px 0 20px;
}

.article__main figcaption,
.article__main caption {
    font-weight: bold;
    font-size: 16px;
    font-size: 1.6rem;
    line-height: 1.5;
}

.article__main .notes {
    font-size: 14px;
    font-size: 1.4rem;
    line-height: 1.5;
}

.article__main .annotation {
    margin: 60px 0;
}

.article__main .flex {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
}

.flex .articleImage {
    width: 45%;
    position: relative;
}

.articleImage figure {
    margin: 0;
}

.large {
    width: 70% !important;
}

.medium {
    width: 50% !important;
}

.small {
    width: 30% !important;
}

.scroll-table {
    position: relative;
    display: block;
    overflow-x: scroll;
    white-space: nowrap;
    overflow-x: auto;
}

table th,
table td {
    padding: 10px 20px;
    text-align: center;
    font-size: 16px;
    font-size: 1.6rem;
    border: solid 1px #000;
    background-color: #fff;
}

table th {
    background-color: #bbb;
    vertical-align: middle;
    line-height: 1.2;
}

table th small,
table td small {
    margin-left: 2px;
    font-size: 10px;
    font-size: 1rem;
    vertical-align: super;
}


.bold {
    font-weight: bold;
}

.quote {
    display: block;
    margin-top: 32px;
    color: #f56400;
    font-size: 16px;
    font-size: 1.6rem;
    text-decoration: underline;
}

.border__box {
    display: inline-block;
    padding: 20px;
    font-size: 16px;
    font-size: 1.6rem;
    border: solid 1px #302015;
}

@media only screen and (max-width:640px) {
    .article__main h3 {
        font-size: 20px;
        font-size: 2rem;
    }

    .article__main h3.clear {
        clear: both;
        margin: 60px 0 20px;
    }

    .article__main .articleImage {
        margin: 40px 0;
        padding: 20px;
        border: solid 1px #302015;
    }

    .article__main .float_l {
        float: none;
    }

    .article__main .clear {
        clear: both;
        margin-bottom: 40px;
    }

    .article__main .flex {
        display: block;
    }

    .flex .articleImage {
        width: 100%;
        margin-bottom: 40px;
    }

    .large,
    .medium,
    .small {
        width: 100% !important;
    }

    .scroll-table th {
        position: sticky;
        top: 0;
        left: 0;
    }

    .scroll-table caption {
        margin-bottom: 60px;
    }

    .border__box {
        display: block;
        font-size: 16px;
        font-size: 1.6rem;
    }
    

    table tr:first-child th:first-child {
        z-index: 1;
    }

    tbody::before {
        position: absolute;
        top: 52px;
        left: 0;
        content: "横スクロールでご確認ください→";
        font-size: 14px;
        font-size: 1.4rem;
    }
}



/* ---執筆者・共有ボタン--- */

.article__footer {
    width: 480px;
    margin: 100px auto 0;
    padding: 20px;
    border: solid 1px #302015;
}

/* .author__info {
    display: flex;
    align-items: flex-start;
} */

.author__info div {
    width: 100%;
}

/* .author__info img {
    width: 30%;
    margin-right: 20px;
} */

.author__info h4 {
    text-align: center;
    font-size: 20px;
    font-size: 2rem;
}

.author__info p {
    text-align: center;
    font-size: 14px;
    font-size: 1.4rem;
}

.authorLink {
    display: block;
    margin-top: 20px;
    padding: 10px;
    text-align: center;
    color: #fff;
    font-size: 16px;
    font-size: 1.6rem;
    font-weight: bold;
    background-color: #f56400;
}

.article__button {
    width: 480px;
    margin: 40px auto 120px;
    text-align: center;
}

.article__share {
    text-align: center;
    font-size: 20px;
    font-size: 2rem;
    font-weight: bold;
}

.sns__container {
    display: flex;
    justify-content: space-between;
    margin: 20px 0;
}

.sns__container a {
    display: block;
    width: 30%;
    text-align: center;
    color: #fff;
    font-size: 16px;
    font-size: 1.6rem;
    padding: 0.5rem 0;
}

.sns__container a:hover {
    opacity: 0.7;
}

.sns__twitter {
    background: #55acee;
}

.sns__facebook {
    background: #3b5998;
}

.sns__line {
    background: #1dcd00;
}

.print-btn {
    display: block;
    padding: 10px;
    color: #fff;
    font-size: 20px;
    font-size: 2rem;
    font-weight: bold;
    text-align: center;
    border: none;
    outline: none;
    background-color: #f56400;
}

@media only screen and (max-width:640px) {
    .article__footer {
        width: 100%;
        padding: 40px;
    }

    .author__info,
    .author__info p,
    .author__info h4 {
        display: block;
        text-align: center;
    }

    .author__info img {
        width: 300px;
        margin-bottom: 20px;
    }

    .article__button {
        width: 100%;
        margin: 80px 0;
        padding: 40px;
        text-align: center;
    }

    .sns__container {
        width: 100%;
        flex-wrap: wrap;
    }

    .sns__container a {
        display: block;
        width: 100%;
        margin: 10px 0;
    }

    .article__button img {
        width: 100%;
        margin-bottom: 20px;
    }

    .print-btn {
        display: block;
        width: 100%;
        padding: 10px;
    }
}



/* ---印刷設定--- */
@media print {

    @page {
        size: A4;
        margin: 12.7mm 9.7mm;
    }

    body {
        width: 1080px;
        /* 印刷時の全ページ幅を統一（px数値はお好みで） */
        zoom: 0.8;
        /* なるべく多くのブラウザで切れないようにするため */
    }

    #wrap {
        width: 100%;
    }

    header,
    .article__button,
    .authorLink,
    .article__ad,
    .contents__right,
    footer {
        display: none;
    }

    .contents {
        margin: 0;
    }

    .contents__left {
        max-width: 100%;
    }

    .article__title {
        margin: 40px 0;
        padding: 20px;
        border-bottom: dashed 2px #302015;
    }

    .article__title .article__category a {
        padding: 0;
        color: #302015;
        font-size: 24px;
        font-size: 2.4rem;
        background: none;
    }


    .article__main .print {
        page-break-after: always;
    }

    .article__main h4 {
        font-size: 24px;
        font-size: 2.4rem;
    }

    .article__title p,
    .article__title .article__tag .tagList,
    .article__title .calender,
    .article__main .articleImage figcaption,
    .article__main .print .flex figcaption,
    .article__main .article__caption,
    .article__main .notes,
    .article__main .annotation small {
        font-size: 20px;
        font-size: 2rem;
    }

    .article__main table {
        width: 100%;
        white-space: normal;
    }


    .scroll-table.long-table th,
    .scroll-table.long-table td {
        padding: 5px;
    }

    .article__main .print,
    .article__main p,
    .author__info p {
        font-size: 2.4rem;
    }

    .article__main table th,
    .article__main table td {
        font-size: 2rem;
    }

    .article__main h3,
    .author__info h4 {
        font-size: 32px;
        font-size: 3.2rem;
    }

    .article__footer {
        width: 800px;
    }
}