@charset "UTF-8";

/* 全ページに適用 -html- */
html {
    font-size: 3.2vw;
    font-family: sans-serif;
    scroll-behavior: smooth;
    max-width: 100%;
}
* {
    box-sizing: border-box;
    /*outline: solid 2px blue;*/
}
body {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    background-color: #f0f3e5;
}
p, li, td {
    line-height: 1.7;
}
p span {
    font-size: 3.2vw;
    font-weight: bold;
    color: red;
}
p a span span span {
    font-size: 3.2vw;
    font-weight: initial;
    text-decoration: underline solid 0.5vw #5983b0;
    color: #253958;
}
a:link,a button:link {
    color: #253958;
    text-decoration: none;
    cursor: pointer;
}
a:visited,a button:visited {
    color: #253958;
    text-decoration: none;
    cursor: pointer;
}
a:hover,a button:hover {
    color: #253958;
    text-decoration: none;
    cursor: pointer;
    opacity: 0.5;
}
a:active,a button:active {
    color: #253958;
    text-decoration: none;
    cursor: pointer;
}
img {
    max-width: 100%;
}
span img {
    max-width: 8vw;
    max-height: 8vw;
}
.wrapper {
    width: 92vw;  
    margin: 0 4vw 0 4vw;
}
h1 {
   font-size: 4vw;
   margin: 0 0 0 0;
   width: 100%;
   text-align: center;
}
h1 span {
    font-size: 3vw;
}
h2 {
    font-size: 3.5vw;
}
h3 {
    font-size: 3.2vw;
}
h4 {
    font-size: 2.2vw;
}

/* 全ページに適用 -header.php- */
.header {
    padding-top: 1vw;
    background-color: #f8f9f4;
}
.logo {
    width: 100%;
    height: 12vw;
}
.logo img {
    width: 25vw;
}
.logo h1 {
    text-align: left;
    position: relative;
    top: -12vw;
    left: 30vw;
    width: 65vw;
}
.logo h4 {
    width: 30vw;
    font-size: 1.5vw;
    margin: 0;
    position: relative;
    left: 5vw;
}
.nav ul {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    width: 100%;
    gap: 1vw;
    flex-wrap: wrap;
}
.nav li {
    display: block;
    width: 45vw;
    height: 12.5vw;
    line-height: 1.1;
    list-style: none;
}
.nav li a {
    display: flex;
    width: 45vw;
    height: 12.5vw;
    line-height: 1.1;
    gap: 1vw;
    font-size: 3vw;
    font-weight: 700;
    align-items: center;
    color: #fff;
    background-color: #8b7e6a;
    text-indent: 1em;
    border-radius: 1vw;
}
.nav a:link {
    color: #fff;
}
.nav a:hover {
    text-decoration: none;
}
.nav a:active {
    text-decoration: none;
}

/* 全ページに適用 -main- */
main {
    margin: 5vw auto 5vw auto;
    max-width: 1000px;
}
main h2 {
    margin: 5vw 0 0 0;
    color: #253958;
    font-size: 3vw
}
main h3 {
    margin: 0.5vw 0 0.5vw 0;
    color: #253958;
    font-size: 3vw
}
main h4 {
    margin: 0.5vw 0 0.5vw 0;
    color: #253958;
    font-size: 2.5vw
}
.c-breadcrumbs {
    margin-top: 0;
    margin-bottom: 0;
}

/* 全ページに適用 -sidebar.php aside- */
aside h2 {
    margin: 5vw 0 0 0;
    color: #253958;
    font-size: 3vw;
    text-align: center;
}
aside h3 {
    margin: 0.5vw 0 0.5vw 0;
    color: #253958;
    font-size: 3vw
}
aside h4 {
    margin: 0.5vw 0 0.5vw 0;
    color: #253958;
    font-size: 2.5vw
}
aside li {
    list-style: none;
}
.aside_new_articles_content {
    display: none;
}
.aside_new_articles_content img {
    object-fit: contain;
    margin-top: 0;
}
.side_content {
    padding-left: 0;
    padding-right: 0;
    background-color: #FFFFFF;
    border-radius: 1vw;
    margin-top: 1vw;
    padding-bottom: 2vw;
    width: 92vw;
}
.side_content_img {
    width: 92vw;
}
.side_content ul {
    margin-top: 0;
    margin-bottom: 0;
}
.side_content ul li h2 {
    text-align: left;
}
.aside_new_articles_content li h2,.side_content li h2 {
    font-size: 2.5vw;
    margin-top: 0;
}
.aside_new_articles_title,.aside_side_content_title {
    width: 92vw;
    height: 10vw;
    border-radius: 1vw;
    background-color:#c3cbd3;
}
.aside_new_articles_title {
    display: none;
}
.aside_new_articles_title h2,.aside_side_content_title h2 {
    margin-top: 0;
    line-height: 1vw;
    font-size: 3vw;
    transform: translate(0, 4vw);
    color: #253958;
    text-align: center;
    text-indent: 0em;
}
.aside_new_articles_title h2::after {
    content: "　";
	background-image: url(../img/news_icon.png);
    background-size: contain;
    background-repeat: no-repeat;
    width: 5vw;
    height: 5vw;
}
.aside_side_content_title h2::after {
    content: "　";
	background-image: url(../img/side_content_icon.png);
    background-size: contain;
    background-repeat: no-repeat;
    width: 5vw;
    height: 5vw;
}

/* sidebar 追加 CSS クラス */
.aside_side_author_title,.aside_side_archive_title,.aside_side_recommend_title,.aside_side_ranking_title {
    width: 92vw;
    height: 10vw;
    border-radius: 1vw;
    background-color:#c3cbd3;
    margin-top: 0;
    margin-bottom: 1vw;
    line-height: 10vw;
    font-size: 3vw;
    color: #253958;
    text-align: center;
    text-indent: 0em;
}
.aside_side_author_title::after {
    content: "　　";
	background-image: url(../img/author_icon.png);
    background-size: contain;
    background-repeat: no-repeat;
    width: 5vw;
    height: 5vw;
}
.aside_side_archive_title::after {
    content: "　　";
	background-image: url(../img/archive_icon.png);
    background-size: contain;
    background-repeat: no-repeat;
    width: 5vw;
    height: 5vw;
}
.aside_side_recommend_title::after {
    content: "　　";
	background-image: url(../img/recommend_icon.png);
    background-size: contain;
    background-repeat: no-repeat;
    width: 5vw;
    height: 5vw;
}
.aside_side_ranking_title::after {
    content: "　　";
	background-image: url(../img/ranking_icon.png);
    background-size: contain;
    background-repeat: no-repeat;
    width: 5vw;
    height: 5vw;
}
.author_flex {
    display: flex;
    width: 95%;
}
.author_img {
    width: 15vw;
    height: 15vw;
    transform: translate(40%, 35%);
}
.author_text {
    display: block;
    width: 55vw;
    font-size: 3.2vw;
    transform: translate(0, -8%);
}
.aside_side_content_group {
    margin-top: 0;
    margin-bottom: 0;
    padding-top: 0;
    padding-bottom: 0;
}
.aside_side_content_recommend_title,.aside_side_content_ranking_title {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    font-size: 3vw;
    text-align: center;
}
.aside_side_content_recommend_sub_title,.aside_side_content_ranking_sub_title {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    font-size: 2.5vw;
    text-align: center;
}
.side_new {
    color:#e03131;
    font-weight: bold;
    font-size: 2.5vw;
    transform: translate(1vw,0);
}

/* sidebar カテゴリー名アイコン */
.is-style-paragraph-model-railway::after{
    content: "　　";
    display:inline-block;
    background-image: url(../img/model_icon.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}
.is-style-paragraph-closed-railway::after{
    content: "　";
    display:inline-block;
    background-image: url(../img/closed_icon.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

/* 全ページに適用 -footer.php- */
footer {
    background-color: #dbdbdb;
    padding: 1vw 0 0 0;
    margin: 5vw 0 0 0;
}
.footer_nav_sp {
    display: flex;
    justify-content: center;
}
.footer_nav_sp_1,.footer_nav_sp_2 {
    padding: 0 5vw 0 5vw;
}
.footer_nav_sp_1 li,.footer_nav_sp_2 li {
    list-style: none;
    line-height: 2.5;
}
.footer_nav_sp_2 li a button {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    border: none;
    font-size: 3vw;
    color: #253958;
    background-color: #dbdbdb;
}
.sns_flex {
    display: flex;
    justify-content: center;
}
.portfolio {
    text-align: left;
    padding-left: 6vw;
}
.sns_link {
    display: flex;
    padding: 0 0 0 0;
    gap: 5vw;
}
.sns_flex li {
    list-style: none;
}
.copyright {
    margin-top: 1vw;
    margin-bottom: 0;
    padding-top: 1vw;
    padding-bottom: 1vw;  
    color: #253958;
    text-align: center;
}

/* 全ページに適用 -.pagetop- */
.pagetop {
    height: 12.5vw;
    width: 12.5vw;
    position: fixed;
    right: 7.5vw;
    bottom: 20vw;
    background: #fff;
    border: solid 0.13vw #000;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 2;
    opacity: 0.3;
}
.pagetop_arrow {
    height: 5vw;
    width: 5vw;
    border-top: 0.75vw solid #000;
    border-right: 0.75vw solid #000;
    transform: translateY(20%) rotate(-45deg);
}

/* ページリンク */
.main_article_page_link ul {
    display: flex;
    justify-content: space-between;
    padding: 0 4vw 0 4vw;
}
.main_article_page_link li {
    width: 25vw;
    height: auto;
    border-radius: 1vw;
    background-color: #5983b0;
    list-style: none;
}
.main_article_page_link li a {
    display: block;
    text-align: center;
    padding-top: 1.5vw;
    padding-bottom: 1.5vw;
    font-weight: bold;
    color: #fff;
}
.main_article_page_link li:empty {
    width: 25vw;
    height: auto;
    border-radius: 1vw;
    background-color: #ffffff;
    list-style: none;
}

/*カテゴリーをクラス名にしてカテゴリーとアイコンを表示*/
.new_flex .model-railway,.model-railway,.new_flex .closed-railway,.closed-railway {
    font-weight: bold;
}
.new_flex .model-railway::after,.model-railway::after {
    content: "　　";
	background-image: url(../img/model_icon.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    width: 5vw;
    height: 5vw;
}
.new_flex .closed-railway::after,.closed-railway::after {
    content: "　";
	background-image: url(../img/closed_icon.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    width: 5vw;
    height: 5vw;
}

/* 個別のスタイル */
/* トップページに適用 -front-page.php- */
.mainvisual {
    padding: 0 0 0 0;
    text-align: center;
    background-color: #f9f8f4;
}
.mainvisual img {
    position: relative;
    top: 1vw;
}
.renewal_date {
    text-align: right;
    font-size: 1.5vw;
    padding-bottom: 1.5vw;
}
.main_new_articles_title,.main_content_title {
    display: block;
    padding: 0 0 0 0;
    margin: auto;
    width: 91vw;
    height: 15vw;
    background-color: #d9dcb4;
    border-radius: 1vw;
}
.main_new_articles_title h2,.main_content_title h2 {
    text-align: center;
    line-height: 15vw;
}
.main_new_articles_title h2::after {
    content: "　";
    display:inline-block;
    background-image: url(../img/news_icon.png);
    background-size: contain;
    background-repeat: no-repeat;
    line-height: 6vw;
}
.main_content_title h2::after {
    content: "　";
    display:inline-block;
    background-image: url(../img/main_content_icon.png);
    background-size: contain;
    background-repeat: no-repeat;
    line-height: 3vw;
}
.main_new_articles_content,.main_content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: 92vw;
}
.main_new_articles_content ul,.main_content ul {
    width: 45vw;
    margin-top: 0;
    margin-bottom: 0.5vw;
    padding-left: 0;
    background-color: #ffffff;
    border-radius: 1vw;
    gap: 1vw;
}
.main_new_articles_content li,.main_content li {
    list-style: none;
}
.main_new_articles_content ul img,.main_content ul img {
    width: 45vw;
    height: 24vw;
    object-fit: cover;
} 
.new_flex {
    display: flex;
}
main .new_flex h2 span,main .new_flex_cat h2 span,main .new_flex_fr h2 span {
    font-size: 2.5vw;
}
.title_fr h2 {
    margin-top: 0;
}
.new_flex_cat {
    display: flex;
    margin-top: -20px;
}
.new_flex_fr {
    display: flex;
    margin-top: -20px;
}
.new {
    color:#e03131;
    font-weight: bold;
    font-size: 2.5vw;
    transform: translate(0,5vw);
}

/* privacy (index.php)*/
.privacy_policy {
    background-color: #ffffff;
    border-radius: 1vw;
    padding: 0 5vw 3vw 5vw;
}
.privacy_policy_title {
    text-align: center;
    font-size: 5vw;
}
.privacy_policy h4 span span span img {
    width: 2vw;
    transform: translate(0, 25%);
}
.privacy_policy li {
    list-style: none;
}

/* contact form 7 */
.contact {
    background-color: #ffffff;
    border-radius: 1vw;
    padding-top: 3vw;
    padding-bottom: 3vw;
}
.contact_title {
    text-align: center;
    font-size: 5vw;
}
.contact h4 span span span img {
    width: 2vw;
    transform: translate(0, 25%);
}
.contact .form_contact .form_table {
    width: auto;
    display: block;
    border-collapse: collapse;
    margin: auto 1vw 10vw 1vw;
}
.contact .form_contact .form_table tr {
    padding-top: 0;
    padding-bottom: 0;
}
.contact .form_contact .form_table th,.contact .form_contact .form_table td {
    font-size: 4.3vw;
    border: 0.25vw solid black;
	padding: 2.5vw;
    display: block;
}
.contact .form_contact .form_table th {
    width: auto;
	font-weight: normal;
	text-align: left;
    margin-top: 1.25vw;
}
.contact .form_contact .form_table th p {
   margin-top: 0;
   margin-bottom: 0;
}
.contact .form_contact .form_table th span {
    font-size: 2.75vw;
}
.contact .form_contact .form_table th span span {
    display: none;
}

.contact .form_contact .form_table td {
    background: #efefef;
}
.contact .form_contact .form_table td input[type="email"],.contact .form_contact .form_table td input[type="text"] {
    outline: none;
    border: none;
    background: none;
    font-size: 4.3vw;
}
.contact .form_contact .form_table td textarea {
    outline: none;
    border: none;
    background-color: #efefef;
    font-size: 4.3vw;
}
.contact .form_contact .form_table td input[type="email"]:focus {
    outline: none;
}
.form_table,.form_table tr {
    width: 88vw;
    border: unset;
    padding: 1vw;
    display: block;
    margin: auto;
    outline: none;
    font-size: 4vw;
    background-color: #efefef;
}
.form_table td p span input {
    width: 80vw;
}
.form_table td p span textarea {
    width: 80vw;
}
form input[type="submit"], form input[type="button"] {
    display: block;
    width: 75vw;
    padding: 2.5vw;
    margin: auto;
    font-size: 4.5vw;
    font-weight: bold;
    color: #efefef;
    background-color: #2c0253b0;
}
form input[type="submit"]:hover, form input[type="button"]:hover {
    color: #e03131;
}

/* 404.php */
.page404-title {
    display: block;
    max-width: 100%;
    margin: 0;
}
.page404-text-box {
    display: block;
    max-width: 100%;
    background-color: #ffffff;
    margin-left: 5%;
    margin-right: 5%;
    border-radius: 1vw;
    padding: 40px;
}
.page404-text-box a {
    text-decoration: underline;
}

/* archive.php専用パンくずリストスタイル- */
.breadcrumb {
    list-style: none;
    margin-top: 0;
    margin-bottom: 0;
}
.breadcrumb li {
    display: inline;/*横に並ぶように*/
    list-style: none;
    font-weight: bold;/*太字*/
}
.breadcrumb li:after {/* >を表示*/
    content: '>';
    padding: 0 0.2em;
    color: #555;
}
.breadcrumb li:last-child::after {/* 現ページ>を非表示*/
    content: '';
}
.breadcrumb li a {
    text-decoration: none;
    color: #555;/*色*/
}
.breadcrumb li a span {
   font-size: 3.2vw;
   font-weight: normal;
}
.breadcrumb li:last-child a {/* 現ページ色*/
    color: #253958;
}
.breadcrumb li:last-child a:hover {/* 現ページ色*/
    text-decoration: none;
    cursor: auto;
    opacity: 1;
}

/* page-category_arcive.php , archive.php , parts-archiveposts.php */
.category_content {
    background-color: #ffffff;
    border-radius: 1vw;
}
.category_content ul {
    padding-left: 0;
}
.category_content li {
    list-style: none;
}
.archiveposts {
    display: flex;
}
.archiveposts .thumbnail {
    width: 28vw;
}
.archiveposts .thumbnail img {
    width: 25vw;
    height: 14vw;
    object-fit: cover;
    transform: translate(0, 5vw);
}
.archiveposts .text {
    width: 70vw;
}
.archive_content {
    background-color: #ffffff;
    border-radius: 1vw;
}
.archive_content ul {
    padding-left: 0;
}
.archive_content li {
    list-style: none;
}
.archiveposts .text time {
    display: flex;
    justify-content: flex-end;
}

/* 各主要記事のスタイル */
.main_article {
    background-color: #ffffff;
    border-radius: 1vw;
    padding: 0 5vw 3vw 5vw;
}
/* page-thanks.php */
.thanks_content {
    display: block;
    background-color: #ffffff;
    padding: 40px;
    margin-left: 5%;
    margin-right: 5%;
    border-radius: 1vw;
}

/* 記事表形式 */
.main_article .main_article_table_1 {
    margin: auto;
    border-collapse: collapse;
    margin-left: 5vw;
    margin-right: 5vw;
    border-bottom: 0.25vw solid black;
}
.main_article .main_article_table_1 th,.main_article .main_article_table_1 td {
    width: 42vw;
    text-align: left;
    font-size: 3vw;
    font-weight: normal;
    border-top: 0.25vw solid black;
	padding: 1vw;
}
.main_article .main_article_table_1 th {
    border-left: 0.25vw solid black;
    border-right: 0.25vw solid black;
}
.main_article .main_article_table_1 td {
    border-right: 0.25vw solid black;
}
.main_article .main_article_table_2 {
    margin: auto;
    border-collapse: collapse;
    margin-left: 5vw;
    margin-right: 5vw;
    border-bottom: 0.25vw solid black;
}
.main_article .main_article_table_2 th,.main_article .main_article_table_2 td {
    width: 14vw;
    text-align: left;
    font-size: 3vw;
    font-weight: normal;
    border-top: 0.25vw solid black;
	padding: 1vw;
}
.main_article .main_article_table_2 th {
    border-left: 0.25vw solid black;
    border-right: 0.25vw solid black;
}
.main_article .main_article_table_2 td {
    border-right: 0.25vw solid black;
}
.main_article img {
    object-fit: contain;
}

/* レスポンシブ対応 メディアクエリ */
@media(min-width: 768px) {
    /* 全ページに適用 -html- */
    html {
        font-size: clamp(13.5px, 1.5vw, 29px);
    }
    span img {
        max-width: clamp(50px, 3.5vw, 150px);
        max-height: clamp(25px, 3.5vw, 75px);
    }
    .wrapper {
        width: calc(100% - 20px);
        margin: 0 clamp(10px, calc(50% - 975px), calc(50% - 975px)) 0 clamp(10px, calc(50% - 975px), calc(50% - 975px));
    }
    h1 {
        font-size: clamp(1.6rem, 3.5vw, 3.5rem);
        margin: 0 0 0 0;
        width: 100%;
    }
    h1 span {
        font-size: clamp(1.2rem, 2.3vw, 2.3rem);
    }
    h2 {
        font-size: 1.1rem;
    }
    h3 {
        font-size: 0.9rem;
    }
    h4 {
        font-size: 0.7rem;
    }
    p span {
        font-size: clamp(14.4px, 1.6vw, 30.7px);
    }
    p a span span span {
        font-size: clamp(14.4px, 1.6vw, 30.7px);
        text-decoration: underline solid 0.2vw #5983b0;
        color: #253958;
    }
    #container {
        display: flex;
    }

    /* 全ページに適用 -header.php- */
    .header {
        padding-top: 20px;
    }
    .logo {
        height: clamp(30px, 10vw, 250px);
    }
    .logo img {
        width: clamp(200px, 25vw, 500px);
        position: relative;
        left: clamp(0px, calc(50% - 960px), calc(50% - 960px)); /*clamp(最小値, 推奨値, 最大値);*/
    }
    .logo h1 {
        top: clamp(-192px, -10vw, -77px);
        left: 34vw;
        width: clamp(200px, 55vw, 1000px);
        
    }
    .logo h4 {
        font-size: clamp(0.5rem, 1vw, 1vw);
        position: relative;
        left: clamp(5vw, calc(50vw - 900px), calc(50vw - 900px)); ;
    }

    /* 全ページに適用 -main- */
    main {
        margin: 10px 10px 10px 0;
        padding: 0 0 0 0;
        width: clamp(calc(100vw - 290px), calc(75vw - 20px), 1460px);/*clamp(最小値, 推奨値, 最大値);*/
        max-width: 1460px;/*925px*/
    }
    main h2 {
        margin: 10px 0 0 0;
        font-size: clamp(0.9rem, 1.5vw, 1.5vw);
    }
    main h3 {
        margin: 5px 0 5px 0;
        font-size: clamp(0.9rem, 1.5vw, 1.5vw);
    }
    main h4 {
        margin: 5px 0 5px 0;
        font-size: clamp(0.7rem, 1.3vw, 1.3vw);
    }
    .nav ul {
        width: 100%;
        margin: auto;
        gap: 5px;
    }
    .nav li {
        width: clamp(160px, 24vw, 460.8px);
        height: clamp(15px, 8vw, 150px);
    }
    .nav li a {
        width: clamp(160px, 24vw, 460.8px);
        height: clamp(15px, 8vw, 150px);
        gap: 10px;
        font-size: clamp(16px, 2vw, 48px);
    }

    /* 全ページに適用 -sidebar.php aside- */
    aside {
        margin: 25px 0 10px 0;
        padding: 0 0 0 10px;
        width: clamp(180px, calc(25vw - 20px), 460px);/*clamp(最小値, 推奨値, 最大値);*/
        max-width: 460px;
        border-left: solid 1px #253958;
    }
    .side_content {
        text-indent: 10px;
        width: clamp(170px, calc(24vw - 40px), 440px);
        border-radius: 0.5vw;
        margin-top: 0;
        margin-bottom: 0;
        padding: 0 0 0 0;
    }
    .aside_side_author_title,.aside_side_archive_title,.aside_side_recommend_title,.aside_side_ranking_title {
        margin-bottom: 0.5vw;
        width: clamp(170px, calc(24vw - 40px), 440px);
        transform: translate(0, 4vw);
    }
    .aside_new_articles_content {
        display: block;
        background-color: #FFFFFF;
        border-radius: 0.5vw;
        width: clamp(170px, calc(24vw - 40px), 440px);
    }
    .aside_new_articles_content ul {
        padding-left: 0;
        margin-top: 0;
        margin-bottom: 0;
    }
    .aside_new_articles_content img {
        width: clamp(170px, calc(24vw - 40px), 440px);
        height: clamp(90px, calc(13vw - 20px), 230px);
        object-fit: cover;
    }
    .side_category_title ul {
        padding-left: 0;
    }
    .aside_new_articles_content li h2,.side_content li h2 {
        font-size: clamp(5px, 0.9vw, 18px);
        text-align: left;
        margin-top: 0;
        width: clamp(170px, calc(24vw - 40px), 440px);
    }
    .aside_new_articles_title,.aside_side_content_title {
        display: block;
        width: clamp(170px, calc(24vw - 40px), 440px);/*clamp(最小値, 推奨値, 最大値);*/
        height: clamp(15px, 1.8vw, 36px);
        border-radius: clamp(7.5px, 0.9vw, 18px);
        background-color:#c3cbd3;
        text-align: left;
    }
    .aside_new_articles_title h2,.aside_side_content_title h2 {
        margin-top: 0;
        line-height: clamp(15px, 1.8vw, 36px);
        font-size: clamp(5px, 0.9vw, 18px);
        transform: translate(0, clamp(-40px, calc(0.9vw - 10px), -1px));
        color: #253958;
        width: clamp(170px, calc(24vw - 40px), 440px);
        text-align: left;
        text-indent: 1em;
    }

    /* sidebar 追加 CSS クラス */
    .aside_side_author_title,.aside_side_archive_title,.aside_side_recommend_title,.aside_side_ranking_title {
        width: clamp(170px, calc(24vw - 40px), 440px);/*clamp(最小値, 推奨値, 最大値);*/
        height: clamp(15px, 1.8vw, 36px);
        border-radius: clamp(7.5px, 0.9vw, 18px);
        background-color:#c3cbd3;
        margin-top: 0;
        line-height: clamp(15px, 1.8vw, 36px);
        font-size: clamp(5px, 0.9vw, 18px);
        transform: translate(0, clamp(-40px, calc(0.9vw - 10px), -1px));
        color: #253958;
        text-align: left;
        text-indent: 1em;
    }
    .author_flex {
        width: 95%;
    }
    .author_img {
        width: clamp(40px, 5vw, 80px);
        height: clamp(40px, 5vw, 80px);
        transform: translate(5%, 80%);
    }
    .author_text {
        width: clamp(70px, 12.5vw, 180px);
        transform: translate(2%, -5%);
        font-size: clamp(8px, 1.2vw, 23px);
    }
    .side_content ul {
        padding-left: 10px;
    }
    .side_content ul h2 {
        width: clamp(160px, calc(24vw - 50px), 430px);
    }
    .side_content_img {
        width: clamp(170px, calc(24vw - 40px),440px);
        transform: translate(-10px, 0);
        padding-bottom: 5px;
        margin-bottom: 0;
    }
    .side_content_img_lastchild {
        width: clamp(170px, calc(24vw - 40px),440px);
        transform: translate(-10px, 0);
        padding-bottom: 10px;
        margin-bottom: 0;
    }
    .aside_side_content_recommend_title,.aside_side_content_ranking_title {
        font-size: clamp(5px, 0.9vw, 18px);
        text-align: left;
        text-indent: 0;
        width: clamp(170px, calc(24vw - 40px), 440px);
    }
    .aside_side_content_recommend_sub_title,.aside_side_content_ranking_sub_title {
        font-size: clamp(5px, 0.9vw, 18px);
        text-align: left;
        text-indent: 0;
        width: clamp(170px, calc(24vw - 40px), 440px);
    }
    .side_new {
        transform: translate(0.1em,0);
        font-size: clamp(6px, 0.8vw, 16px);
    }

    /* 全ページに適用 -footer.php- */
    footer {
        padding: 20px 0 0 0;
        margin: 10px 0 0 0;
    }
    .footer_nav {
        display: flex;
        justify-content: center;
        gap: clamp(40.5px, 4.5vw, 86.4px);
    }
    .footer_nav_sp_1,.footer_nav_sp_2 {
        padding: 0 40px 0 0;
    }
    .footer_nav_sp_2 {
        padding: 0 40px 0 60px;
    }
    .footer_nav_sp_2 li a button {
        font-size: clamp(13.5px, 1.5vw, 29px);
    }
    .portfolio_link {
        padding-left: 0;
    }
    .portfolio {
        padding-left: 0;
    }
    .sns_flex {
        display: block;
        text-align: left;
    }
    .sns_link {
        margin-top: clamp(9px, 1vw, 19.2px);
        padding-top: 5px;
        display: block;
    }
    .sns_link li {
        line-height: 2.5;
    }
    .copyright {
        margin-top: 20px;
        padding-top: 20px;
        padding-bottom: 20px;  
    }

    /* 全ページに適用 -.pagetop- */
    .pagetop {
        height: clamp(30px, 4vw, 100px);
        width: clamp(30px, 4vw, 100px);
        right: clamp(20px, 4vw, 100px);
        bottom: clamp(50px, 4vw, 150px);
        border: solid 0.5px #000;
    }
    .pagetop_arrow {
        height: clamp(12px, 2vw, 40px);
        width: clamp(12px, 2vw, 40px);
        border-top: 2px solid #000;
        border-right: 2px solid #000;
    }

    /* トップページに適用 -front-page.php- */
    .mainvisual img {
        position: relative;
        top: 5px;
    }
    .renewal_date {
        font-size: clamp(9px, 1vw, 19.2px);
        padding-bottom:  clamp(9px, 1vw, 19.2px);
        max-width: 1920px;
    }
    .main_new_articles_title,.main_content_title {
        width: clamp(485px, calc(70vw + 5px), 1405px);
        height: clamp(15px, 8vw, 150px);
    }
    .main_new_articles_title h2,.main_content_title h2 {
        line-height: clamp(14px, 7vw, 140px);
    }
    .main_new_articles_title h2::after {
        line-height: clamp(6px, 3vw, 60px);
    }
    .main_content_title h2::after {
        line-height: clamp(3px, 1.5vw, 30px);
    }
    .main_new_articles_content,.main_content {
        width: clamp(485px, calc(70vw + 5px), 1405px);
        max-width: 1460px;
        margin: auto;
    }
    .main_new_articles_content ul,.main_content ul {
        width: clamp(240px, 35vw, 700px);
        border-radius: 0.5vw;
        gap: 10px;
        margin-top: 2.5px;
        margin-bottom: 2.5px;   
    }
    .main_new_articles_content ul img,.main_content ul img {
        width: clamp(240px, 35vw, 700px);
        height: clamp(130px, 18vw, 370px);
    }
    
    /*カテゴリーをクラス名にしてアイコン表示*/
    .model-railroad {
        width: clamp(22px, 2.5vw, 48px);
        height: clamp(22px, 2.5vw, 48px);
    }
    .closed-railroad {
        width: clamp(22px, 2.5vw, 48px);
        height: clamp(22px, 2.5vw, 48px);
    }

    /* ページリンク */
    .main_article_page_link ul {
        padding: 0 clamp(22px, 2.5vw, 48px) 0 clamp(22px, 2.5vw, 48px);
    }
    .main_article_page_link li {
        width: clamp(135px, 15vw, 288px);
        height: auto;
        border-radius: 0.5vw;
    }
    .main_article_page_link li a {
        padding-top: clamp(9px, 1vw, 19.2px);
        padding-bottom: clamp(9px, 1vw, 19.2px);
    }
    .main_article_page_link li:empty {
        width: clamp(135px, 15vw, 288px);
        height: auto;
        border-radius: 0.5vw;
        background-color: #ffffff;
        list-style: none;
    }
    .new_flex_cat,.new_flex_fr {
        margin-top: unset;
    }
    main .new_flex h2 span,main .new_flex_cat h2 span,main .new_flex_fr h2 span {
        font-size: clamp(13.5px, 1.5vw, 28.8px);
    }
    .title_fr h2 {
        margin-top: 10px;
    }
    .new {
        transform: translate(0.5em,clamp(9px, 1vw, 19.2px));
        font-size: clamp(13.5px, 1.5vw, 28.8px);
    }

    /* privacy */
    .privacy_policy {
        border-radius: 0.5vw;
        padding: 0 clamp(27px, 3vw 57.6px) clamp(13.5px, 1.5vw, 28.8px) clamp(27px, 3vw 57.6px);
    }
    .privacy_policy_title {
        font-size: clamp(22.5px, 2.5vw, 48px);
    }
    .privacy_policy h4 span span span img {
        width: clamp(11px, 1.22vw, 23.4px);
    }

    /* contact form 7 */
    .contact {
        border-radius: 0.5vw;
        padding-top: clamp(27px, 3vw, 57.6px);
        padding-bottom: clamp(13.5px, 1.5vw, 28.8px);
    }
    .contact_title {
        font-size: clamp(22.5px, 2.5vw, 48px);
        margin-bottom: clamp(18px, 2vw, 38px);
    }
    .contact h4 span span span img {
        width: clamp(11px, 1.22vw, 23.4px);
    }
    .contact .form_contact .form_table {
        display: table;
        width: clamp(470px, 70vw, 1220px);
        margin: auto auto clamp(30px, 3.1vw, 60px) auto;
    }
    .contact .form_contact .form_table th,.contact .form_contact .form_table td {
        font-size: clamp(13px, 1.34vw, 26px);
        border: clamp(0.7px, 0.08vw, 1.5px) solid black;
	    padding: clamp(7px, 0.78vw, 15px);
        display: table-cell;
    }
    .contact .form_contact .form_table th {
        width: 30%;
	    text-align: center;
        margin-top: clamp(12px, 1.25vw, 24px);
    }
    .contact .form_contact .form_table th span {
        font-size: clamp(8px, 0.86vw, 16px);
    }
    .contact .form_contact .form_table th span span {
        display: unset;
    }
    .contact .form_contact .form_table td {
        background: #efefef;
    }
    .contact .form_contact .form_table td input[type="email"],.contact .form_contact .form_table td input[type="text"] {
        font-size: clamp(13px, 1.34vw, 26px);
    }
    .contact .form_contact .form_table td textarea {
        font-size: clamp(13px, 1.34vw, 26px);
    }
    form input[type="text"],form input[type="email"],form textarea {
        margin: auto;
        width: 98%;
        display:table;
        padding: clamp(4px, 0.4vw, 8px);
        font-size: clamp(13.5px, 1.5vw, 30px);
    }
    .form_table,.form_table tr {
        width: clamp(470px, 70vw, 1220px);
        border: unset;
        padding: 0.5vw;
        font-size: clamp(13.5px, 1.5vw, 30px);
    }
    .form_table td {
        width: clamp(470px, 70vw, 1220px);
    }
    .form_table td p span input {
        width: clamp(330px, 36vw, 700px);
    }
    .form_table td p span textarea {
        width: clamp(330px, 36vw, 700px);
    }
    form input[type="submit"],form input[type="button"] {
        margin: auto;
        font-size: clamp(13.5px, 1.5vw, 30px);
        width: clamp(210px, 23.4vw, 450px);
        padding: clamp(7px, 0.78vw, 15px);
    }
    
    /* archive.php専用パンくずリストスタイル- */
    .breadcrumb li a span {
        font-size: clamp(13.5px, 1.5vw, 29px);
    }

    .nav ul {
        width: 100%;
        margin: auto;
        gap: 5px;
    }
    .nav li {
        width: clamp(160px, 24vw, 460.8px);
        height: clamp(15px, 8vw, 150px);
    }
    .nav li a {
        width: clamp(160px, 24vw, 460.8px);
        height: clamp(15px, 8vw, 150px);
        gap: 10px;
        font-size: clamp(16px, 2vw, 48px);
    }
    
    /* archive.php専用パンくずリストスタイル- */
    .breadcrumb li a span {
        font-size: clamp(14.4px, 1.6vw, 30.7px);
    }

    /* page-category_arcive.php , arcive.php , parts-archiveposts.php */
    .category_content {
        border-radius: 0.5vw;
    }
    .archiveposts .thumbnail {
        width: clamp(150px, 38vw, 700px);
    }
    .archiveposts .thumbnail img {
        width: clamp(140px, 35vw, 650px);
        height: clamp(80px, 20vw, 360px);
        transform: translate(0, clamp(20px, 5vw, 90px));
    }
    .archiveposts .text {
        width: clamp(150px, 37vw, 700px);
        min-height: clamp(120px, 30vw, 550px);
    }
    .archive_content {
        border-radius: 0.5vw;
    }
    
    /* 目次　新着記事位置を都度設定しましょう */
    .side_content_new_img {
        width: clamp(31.5px, 3.5vw, 67.2px);
        top: clamp(-278px, -14.5vw, -131px);
        left: clamp(-19.2px, -1vw, -9px);
    }
    .new_articles_new_img {
        width: clamp(12.6px, 1.4vw, 26.9px);
    }
    /* 各主要記事のスタイル */
    .main_article {
        border-radius: 0.5vw;
        padding: 0 clamp(27px, 3vw 57.6px) clamp(13.5px, 1.5vw, 28.8px) clamp(27px, 3vw 57.6px);
    }
}