@charset "utf-8";

/* ----------------------------------------------
ページタイトル
---------------------------------------------- */
.page-title {
    max-width: 1360px;
    margin: 0 auto;
    padding: 0 4rem;
}

.page-title h1 {
    background-color: #003373;
    color: #fff;
    width: 100vw;
    height: 200px;
    font-size: 3.6rem;
    font-weight: 500;
    margin: 0 calc(50% - 50vw);
    padding: 0 calc(50vw - 50%);
    line-height: 1.5;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.page-title h1 span {
    font-size: 1.6rem;
    font-weight: normal;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

/* パンくずリスト */
.page-content .breadcrumb {
    background-color: #f9f9f9;
}

.page-content .breadcrumb ul {
    color: #6b7280;
    max-width: 1360px;
    margin: 0 auto;
    padding: 1rem 4rem;
    font-size: 1.4rem;
    font-weight: bold;
    display: flex;
    flex-wrap: wrap;
}

.page-content .breadcrumb li {
    list-style-type: none;
    margin: 0;
}

.breadcrumb li:after {
    content: "";
    display: inline-block;
    width: 7px;
    height: 7px;
    border-top: 2px solid #8d8d8d;
    border-right: 2px solid #8d8d8d;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    margin: 0 1.3rem 0.2rem 1.3rem;
}

.breadcrumb li:last-child:after {
    content: none;
}

.breadcrumb li a {
    color: #6b7280;
    font-weight: normal;
    text-decoration: none;
}

/* タブレット・スマホ無効 */
@media screen and (min-width: 960px) {
    .breadcrumb li a:hover {
        color: #0057a6;
        text-decoration: underline;
    }
}

@media screen and (max-width: 767px) {
    .page-title {
        padding: 0 2rem;
    }
    
    .page-title h1 {
        height: 180px;
        font-size: 3rem;
    }
    
    .page-title h1 span {
        font-size: 1.4rem;
    }
    
    .page-content .breadcrumb ul {
        padding: 1rem 2rem;
        font-size: 1.2rem;
    }
    
    .breadcrumb li:after {
        width: 6px;
        height: 6px;
        border-top: 1px solid #8d8d8d;
        border-right: 1px solid #8d8d8d;
        margin: 0 0.8rem 0.2rem 0.6rem;
    }
}


/* ----------------------------------------------
全体コンテンツ
---------------------------------------------- */
.page-content .inner {
    max-width: 1360px;
    margin: 6rem auto;
    padding: 0 4rem;
}

.page-content p {
    margin-bottom: 1em;
    letter-spacing: normal;
    line-height: 2;
}

.page-content p:has(img) {
    margin-bottom: 0;
}

.page-content p + p {
    margin-top: 1em;
}

.page-content a {
    color: #002D62;
    text-decoration: underline;
}

/* タブレット・スマホ無効 */
@media screen and (min-width: 960px) {
    .page-content a:hover {
        color: #666;
        text-decoration: none;
    }
}

.page-content h2 {
    color: #002d62;
    font-size: 3.6rem;
    margin: 2em 0 1em;
}

.page-content h2:first-of-type {
    margin: 0 0 1em;
}

.page-content p + h2:first-of-type {
    margin: 2em 0 1em;
}

.page-content h3 {
    color: #002d62;
    font-size: 2.2rem;
    margin: 2em 0 1em;
    padding-left: 0.8em;
    border-left: 4px solid #00a0e9;
    overflow: hidden;
}

.page-content h4 {
    color: #004098;
    background-color: #f0f7ff;
    font-size: 1.8rem;
    margin: 2em 0 1em;
    padding: 0.5rem 1em;
    border-left: 4px solid #004098;
    overflow: hidden;
}

.page-content h2 + h3,
.page-content h3 + h4 {
    margin-top: 0;
}

.page-content h5 {
    font-size: 1.8rem;
    margin: 2em 0 1em;
}

.page-content h6 {
    font-size: 1.6rem;
    margin: 2em 0 1em;
}

.page-content ul {
    margin-bottom: 1em;
    padding-left: 1.5em;
    letter-spacing: normal;
}

.page-content ul li {
    list-style-type: disc;
    margin-bottom: 1em;
}

.page-content ul.nodisc li {
    list-style-type: none;
    padding-left: 0;
}

.page-content ol {
    margin-bottom: 1em;
    padding-left: 1em;
}

.page-content ol li {
    list-style-type: decimal;
    margin-bottom: 1em;
    padding-left: 0.5em;
}

.page-content blockquote {
    background-color: #F2F2F2;
    margin: 2em 0;
    padding: 3rem 2rem 1rem 2em;
}

.page-content blockquote dl {
    margin-bottom: 2rem;
}

.page-content blockquote dt {
    margin-bottom: 1rem;
}

.page-content blockquote dd {
    font-size: 1.4rem;
}

.page-content table th,
.page-content table td {
    letter-spacing: normal;
}

/* リスト　*/
.page-content ul.list {
    padding-left: 0;
}

.page-content ul.list li {
    list-style-type: none;
    font-weight: 500;
    padding-left: 3rem;
    line-height: 2;
    position: relative;
}

.page-content ul.list li:before {
    content: "";
    display: inline-block;
    width: 20px;
    height: 20px;
    background-color: #e70012;
    border-radius: 50%;
    position: absolute;
    top: 6px;
    left: 0;
}

.page-content ul.list li:after {
    content: "";
    display: inline-block;
    width: 6px;
    height: 6px;
    border-top: 1px solid #fff;
    border-right: 1px solid #fff;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    position: absolute;
    top: 13px;
    left: 6px;
}

.page-content ul.list li a {
    text-decoration: underline;
}

.page-content ul.list li a:hover {
    text-decoration: none;
}

/* ボタン　*/
.page-content .btn {
    margin-top: 3rem;
}

.page-content .btn a {
    color: #333;
    padding: 1.1rem 3.5rem 0.9rem 2rem;
    text-decoration: none;
    transition: 0.3s;
}

.page-content .btn a.pdf {
    padding: 1.1rem 2rem 0.9rem;
}

.page-content .btn a.pdf:before {
    display: none;
}

.page-content .btn a.pdf:after {
    width: 21px;
    height: 25px;
    border: none;
    transform: none;
    position: static;
    margin: 0 0 0.3rem 1rem;
}

/* タブレット・スマホ無効 */
@media screen and (min-width: 960px) {
    .page-content .btn a:hover {
        opacity: 0.7;
    }
}

/* 前へ　次へ　*/
.page-content .nav-previous a {
    padding-left: 2em;
    position: relative;
}

.page-content .nav-next a {
    padding-right: 2em;
    position: relative;
}

.page-content .nav-previous a:before {
    content: "";
    display: inline-block;
    width: 8px;
    height: 8px;
    border-top: 1px solid #000;
    border-right: 1px solid #000;
    -webkit-transform: rotate(-135deg);
    transform: rotate(-135deg);
    position: absolute;
    top: 0;
    left: 12px;
    bottom: 0;
    margin: auto;
}

.page-content .nav-next a:after {
    content: "";
    display: inline-block;
    width: 8px;
    height: 8px;
    border-top: 1px solid #000;
    border-right: 1px solid #000;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    position: absolute;
    top: 0;
    right: 12px;
    bottom: 0;
    margin: auto;
}

/* 見出しの黄色アンダーライン　*/
.yellow-under {
    background-image: linear-gradient(transparent 50%, #fff000 50%);
}

/*----------------------------
scroll_up ｜下から上へ出現
----------------------------*/
.scroll_up {
  transition: 0.8s ease-in-out;
  transform: translateY(30px);
  opacity: 0;
}
.scroll_up.on {
  transform: translateY(0);
  opacity: 1.0;
}


/* 右寄せ画像の下のテーブル */
.alignright + table {
    width: auto;
}


@media screen and (max-width: 1024px) {
/*
    .page-content .inner {
        margin: 6rem auto;
    }
*/
    
    /* 右寄せ画像の下のテーブル */
    .alignright + table {
        width: 100%;
    }
}

@media screen and (max-width: 767px) {
    .page-content .inner {
        margin: 5rem auto;
        padding: 0 2rem;
    }
    
    .page-content p,
    .page-content dt,
    .page-content dd,
    .page-content th,
    .page-content td {
        font-size: 1.6rem;
    }
    
    .page-content h2 {
        font-size: 2.6rem;
        line-height: 1.6;
    }
    
    .page-content h3 {
        font-size: 2rem;
    }
    
    .page-content ul,
    .page-content ol {
        padding-left: 1em;
    }
    
    /* ボタン　*/
    .page-content .btn {
        text-align: center;
    }
    
    .page-content .nav-previous a {
        padding-left: 1.5em;
    }

    .page-content .nav-next a {
        padding-right: 1.5em;
    }
}


/* 右メニュー
------------------------------- */
.side-menu-right {
    width: 250px;
    margin-left: 3rem;
    position: sticky;
    top: 120px;
}

.side-menu-right h2 {
    color: #fff;
    background-color: #1a1414;
    font-size: 1.6rem;
    padding: 1.2rem 2rem;
    margin: 0;
    letter-spacing: 0.1em;
}

.page-content .side-menu-right a {
    text-decoration: none;
}

.page-content .side-menu-right a:hover {
    color: #000;
    background-color: #f6f6f6;
}

.side-menu-right ul {
    margin-bottom: 0;
    padding-left: 0;
}

.side-menu-right ul li {
    list-style-type: none;
    margin-bottom: 0;
}

.side-menu-right ul li a {
    display: block;
    padding: 0.6rem 2rem;
    border-bottom: 1px solid #e1e1e1;
    letter-spacing: 0.1em;
    position: relative;
}

.side-menu-right ul li a:after {
    content: "";
    display: inline-block;
    width: 7px;
    height: 7px;
    border-top: 1px solid #000;
    border-right: 1px solid #000;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    position: absolute;
    top: 21px;
    left: 0;
}

@media screen and (max-width: 1024px) {
    .side-menu-right {
        width: 100%;
        margin: 6rem 0 0;
    }
}

@media screen and (max-width: 767px) {
}


/* 左側に画像でflexを使用するとき
------------------------------- */
.fl-img .flex-left {
    flex-shrink: 0;
    margin-right: 5rem;
}

@media screen and (max-width: 1024px) {
    .fl-img.flex {
        justify-content: center;
        flex-wrap: wrap;
    }
    
    .fl-img .flex-left {
        flex-shrink: 1;
        margin: 0 0 1.5rem;
        text-align: center;
    }
}


/* 右側に画像でflexを使用するとき
------------------------------- */
.fr-img .flex-right {
    flex-shrink: 0;
    margin-left: 5rem;
}

@media screen and (max-width: 1024px) {
    .fr-img.flex {
        justify-content: center;
        flex-wrap: wrap;
    }
    
    .fr-img .flex-left {
        order: 2;
    }
    
    .fr-img .flex-right {
        flex-shrink: 1;
        margin: 0 0 1.5rem;
        order: 1;
        text-align: center;
    }
}


/* アコーディオン
------------------------------- */
.page-content .accordion {
    position: relative;
}

.page-content .accordion:before {
    content: "";
    display: inline-block;
    background-color: #e70012;
    width: 20px;
    height: 2px;
    position: absolute;
    top: 18px;
    left: 0;
}

.page-content .accordion dt {
    font-size: 2rem;
    margin-bottom: 3rem;
    padding: 0 4rem 0 3rem;
    text-decoration: underline;
    position: relative;
    cursor: pointer;
}

.page-content .accordion dt:hover {
    text-decoration: none;
}

.page-content .accordion dt:before {
    content: "";
    display: inline-block;
    width: 30px;
    height: 30px;
    border: 1px solid #e70012;
    border-radius: 50%;
    position: absolute;
    top: 3px;
    right: 0;
}

.page-content .accordion dt:after {
    content: "+";
    display: inline-block;
    color: #e70012;
    font-size: 2rem;
    position: absolute;
    top: -1px;
    right: 9px;
}

.page-content .accordion dt.active:after {
    content: "";
    width: 10px;
    height: 2px;
    background-color: #e70012;
    top: 17px;
    right: 10px;
}

.page-content .accordion dt + dd:after {
    content: "";
    display: block;
    clear: both;
}

.page-content .accordion dd {
    display: none;
    margin-bottom: 3rem;
    padding: 0 0 3rem 3rem;
    border-left: 3px solid #e70012;
    position: relative;
}

.page-content .accordion dd h3:first-of-type,
.page-content .accordion dd h4:first-of-type {
    margin-top: 0;
}

/* アコーディオン内のテーブル　*/
.page-content .accordion dd table.sideways th,
.page-content .accordion dd table.sideways td {
    font-size: 1.4rem;
    padding: 1rem;
    line-height: 1.5;
}

/* 小さめの表示　*/
.page-content .supplement-accordion dt {
    color: #e70012;
    font-size: 1.6rem;
    padding-left: 3rem; 
    margin-bottom: 3rem;
    text-decoration: underline;
    position: relative;
    cursor: pointer;
}

.page-content .supplement-accordion dt:before {
    content: "";
    display: inline-block;
    background-color: #e70012;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    position: absolute;
    top: 4px;
    left: 0;
}

.page-content .supplement-accordion dt:after {
    content: "";
    display: inline-block;
    width: 6px;
    height: 6px;
    border-top: 1px solid #fff;
    border-right: 1px solid #fff;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    position: absolute;
    top: 11px;
    left: 6px;
}

.page-content .supplement-accordion dt.active:after {
    -webkit-transform: rotate(135deg);
    transform: rotate(135deg);
    top: 10px;
    right: 7px;
}

.page-content .supplement-accordion dd {
    display: none;
    margin-bottom: 3rem;
    padding: 0 0 3rem 3rem;
    border-left: 3px solid #e70012;
    position: relative;
}

@media screen and (max-width: 767px) {
    .page-content .accordion dt {
        padding: 0 3.7rem 0 3rem;
    }
}


/* フォーム（全体）
------------------------------- */
.page-content .required {
    color: #f00;
    margin-left: 0.5rem;
}

.page-content form table {
    border-bottom: none;
}

.page-content form table p {
    margin-bottom: 0;
}

.page-content form td input {
    width: 70%;
    padding: 0.7rem;
}

.page-content form td input[name="post-code"] {
    width: 30%;
    margin-left: 1rem;
}

/*
.page-content form td input[name="municipalities"],
.page-content form td input[name="address"] {
    width: 40%;
}
*/

.page-content form td input[type="radio"],
.page-content form td input[type="checkbox"] {
    width: auto;
}

.page-content form td textarea {
    width: 100%;
    height: 150px;
    padding: 0.5rem;
}

.page-content form td .wpcf7-list-item.first {
    margin: 0;
}

.page-content form .privacypolicy {
    margin-top: 2em;
    text-align: center;
}

.page-content form .privacypolicy input {
    margin-right: 0.8rem;
}

.page-content form .btn-submit {
    margin: 3rem 0 0;
    text-align: center;
}

.page-content form ul.btn-submit {
    display: flex;
    justify-content: center;
    padding: 0;
}

.page-content form .btn-submit li {
    list-style-type: none;
    margin-bottom: 0;
}

.page-content form .btn-submit input {
    width: 300px;
    background-color: #004098;
    color: #fff;
    font-size: 1.8rem;
    border: none;
    padding: 1.5rem 1rem;
    letter-spacing : 0.1em;
    border-radius: 30px;
    cursor: pointer;
}

.page-content form .btn-submit input:hover {
    opacity: 0.7;
    transition: 0.3s;
}

.page-content form .btn-submit input.btn-reset {
    color: #000;
    background-color: #ccc;
    margin-right: 2rem;
}

.page-content form .btn-submit p {
    margin-bottom: 0;
}

.page-content form .wpcf7-spinner {
    display: block;
    margin: 1rem  auto 0;
}

@media screen and (max-width: 1024px) {
    .page-content form td .wpcf7-radio .wpcf7-list-item {
        display: block;
        margin: 0;
    }
}

@media screen and (max-width: 767px) {
    .page-content form td input[name="post-code"] {
        margin-left: 0;
    }
    
    .page-content form td input:not([type="radio"]):not([type="checkbox"]) {
        width: 100%;
    }
    
    .page-content form .privacypolicy {
        margin: 0 0 2em;
    }
    
    .page-content form .btn-submit {
        display: block;
        margin: 0;
    }

    .page-content form .btn-submit input {
        width: 100%;
        padding: 1.8rem 0;
        border-radius: 40px;
    }
    
    .page-content form .btn-submit input.btn-reset {
        margin: 0 0 2rem;
    }
}


/* ----------------------------------------------
会社情報
---------------------------------------------- */
.company-policy {
    display: flex;
    justify-content: space-between;
    margin: 6rem 0;
}

.company-policy dl {
    width: 48%;
    font-family: "Source Han Serif JP", "Noto Serif CJK JP", "游明朝体", "Yu Mincho", YuMincho, serif;
}

.company-policy dt {
    font-size: 2.4rem;
    font-weight: bold;
    margin-bottom: 0.5em;
    text-align: center;
}

.company-policy dd {
    font-size: 2rem;
    text-align: center;
}

/* 沿革 */
.company .history dl {
    float: none;
    display: flex;
}

.company .history dt {
    width: 14%;
    font-weight: 500;
    border-right: 2px solid #002d62;
    padding: 0 3rem 1.5em;
    white-space: nowrap;
    position: relative;
}

.company .history dt:before {
    content: "";
    width: 16px;
    height: 16px;
    background-color: #002d62;
    position: absolute;
    top: 5px;
    right: -9px;
    border-radius: 50%;
}

.company .history dl:first-child dt:before {
    top: 0;
}

.company .history dd {
    padding: 0 4rem 1.5em;
}

.company .history dl:first-child dd {
    margin-top: -0.5rem;
}

@media screen and (max-width: 1024px) {
    .company-policy dd {
        font-size: 1.6rem;
    }
    
    /* 沿革 */
    .company .history dt {
        width: 30%;
    }
    
    .company .history dd {
        width: 70%;
        padding: 0 3rem 1.5em;
    }
}

@media screen and (max-width: 767px) {
    .company-policy {
        display: block;
        margin: 3rem 0;
    }
    
    .company-policy dl {
        width: 100%;
    }
    
    .company-policy dl:last-child {
        margin-top: 3rem;
    }
    
    /* 沿革 */
    .company .history dl {
        display: block;
        padding: 0 0.5rem;
        position: relative;
    }
    
    .company .history dt {
        width: 100%;
        border-right: none;
        padding: 0 2.5rem 1em;
        white-space: normal;
    }
    
    .company .history dt:before {
        top: 7px;
        right: auto;
        left: -2px;
    }
    
    .company .history dl:first-child dt:before {
        top: 7px;
    }
    
    .company .history dd {
        width: 100%;
        padding: 0 2.5rem 1.5em;
        margin: 0;
    }
    
    .company .history dl:first-child dd {
        margin-top: 0;
    }
    
    .company .history dl:after {
        content: "";
        width: 2px;
        background-color: #002d62;
        position: absolute;
        top: 8px;
        bottom: -8px;
        left: 10px;
    }
}


/* 保有機械・設備
------------------------------- */
.equipment table {
    width: 74.2%;
}

@media screen and (max-width: 1024px) {
    .equipment table {
        width: 100%;
    }
}


/* スタッフ紹介
------------------------------- */
.staff-box-list {
    margin-top: 3rem;
    display: flex;
    flex-wrap: wrap;
    gap: 4rem 3%;
}

.staff-box {
    width: 22.7%;
    background-color: #f7f7f7;
    padding: 2rem 2rem 1rem 2rem;
    border-radius: 5px;
    text-align: center;
}

.staff-box p:last-child {
    text-align: left;
}

@media screen and (max-width: 1024px) {
    .staff-box {
        width: 30%;
    }
}

@media screen and (max-width: 767px) {
    .staff-box {
        width: 100%;
    }
}


/* ----------------------------------------------
製品情報 加工紹介
---------------------------------------------- */
.products svg {
    width: 20px;
    height: 20px;
    margin-bottom: 0.5rem;
    vertical-align: middle;
}

/* 一覧
------------------------------- */
.products-inner {
    flex-direction: row-reverse;
    gap: 0 2.5%;
}

.products-main {
    width: 930px;
}

.products-list .products-tag {
    margin-bottom: 2em;
    padding-left: 0;
    gap: 0 0.5em;
}

.products-list .products-tag li {
    list-style-type: none;
    margin-bottom: 0;
    color: #1d4ed8;
    background-color: #eff6ff;
    font-size: 1.2rem;
    padding: 0.4rem 0.8rem;
    border-radius: 5px;
}

.products-box-list {
    margin-top: 3rem;
    gap: 3rem 2.75%;
}

.products-box {
    width: 31.5%;
    border: 1px solid #eee;
    border-radius: 5px;
    display: flex;
    flex-direction: column;
}

.products-box a {
    text-decoration: none;
}

.products-box-img {
    width: 100%;
    border-radius: 5px 5px 0 0;
    padding-top: 75%;
    position: relative;
    overflow: hidden;
}

.products-box-img img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s ease;
}

.products-box-text {
    padding: 2rem;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.products-box-text a {
    color: #333;
    display: flex;
    flex-direction: column;
}

.products-box-text h3 {
    color: #1f2937;
    font-size: 1.8rem;
    margin: 0 0 0.5em;
    padding-left: 0;
    border-left: none;
}

.products-box-text p {
    font-size: 1.4rem;
    line-height: 1.6;
    flex-grow: 1;
}

.products-box-text .cat_more {
    padding-top: 1.4rem;
    border-top: 1px solid #e5e7eb;
}

.products-box-text .cat_more p {
    color: #00a0e9;
    font-size: 1.2rem;
    font-weight: 500;
    margin-bottom: 0;
}

.products-box-text .cat_more a {
    color: #004098;
    font-size: 1.4rem;
    font-weight: 500;
}

/* サイドバー */
.products aside {
    width: 270px;
}

.products aside .sticky {
    position: sticky;
    top: 120px;
}

.products aside h3 {
    margin-top: 0;
}

.products aside ul {
    padding-left: 0;
}

.products aside li {
    list-style-type: none;
    margin-bottom: 0;
}

.products aside li a {
    display: block;
    color: #333;
    font-size: 1.4rem;
    padding: 1.5rem;
    border: 1px solid #e5e7eb;
    border-bottom: none;
    text-decoration: none;
    transition: background-color 0.3s;
}

.products aside li:first-child a {
    border-radius: 5px 5px 0 0;
}

.products aside li:last-child a {
    border-bottom: 1px solid #e5e7eb;
    border-radius: 0 0 5px 5px;
}

.products aside li.current a {
    color: #004098;
    background-color: #f0f7ff;
}

.products .contact-banner {
    background-color: #f8f9fa;
    padding: 2rem;
    border: 1px solid #e5e7eb;
    text-align: center;
    border-radius: 5px;
}

.products .contact-banner p {
    font-size: 1.4rem;
    line-height: 1.8;
}

.products .contact-banner span {
    display: inline-block;
    color: #4b5563;
    font-size: 1.6rem;
    font-weight: 500;
    margin-bottom: 0.25em;
}

.products .contact-banner a {
    display: block;
    color: #333;
    background-color: #fff;
    font-weight: 500;
    padding: 0.5rem 0;
    border: 1px solid #e5e7eb;
    border-radius: 5px;
    text-decoration: none;
}

/* 下部のお問い合わせ */
.products-contact {
    background-color: #f8f9fa;
    padding: 4rem;
    border: 1px solid #e5e7eb;
    text-align: center;
}

.products-contact h2 {
    font-size: 2.1rem;
}

.products-contact .products-btn {
    gap: 0 2rem;
}

.products-contact .btn-tel {
    display: block;
    width: 250px;
    color: #1f2937;
    background-color: #fff;
    font-size: 2rem;
    font-weight: 500;
    padding: 1.8rem 0 1.2rem;
    text-decoration: none;
    border-radius: 5px;
}

.products-contact .btn-contact {
    display: block;
    width: 250px;
    color: #fff;
    background-color: #004098;
    font-weight: 500;
    padding: 1.8rem 0 1.2rem;
    text-decoration: none;
    border-radius: 5px;
}

/* タブレット・スマホ無効 */
@media screen and (min-width: 960px) {
    .products-box a:hover img {
        transform: scale(1.1);
    }
    
    /* サイドバー */
    .products aside li a:hover {
        background-color: #f8f9fa;
    }
}

@media screen and (max-width: 1024px) {
    .products-main,
    .products aside {
        width: 100%;
    }
    
    .products aside h3 {
        margin-top: 2em;
    }
    
    .products .contact-banner {
        display: none;
    }
}

@media screen and (max-width: 767px) {
    .products-box {
        width: 100%;
    }
    
    /* 下部のお問い合わせ */
    .products-contact {
        padding: 4rem 2rem;
    }
    
    .products-contact p {
        text-align: left;
    }
    
    .products-contact .products-btn {
        gap: 2rem;
    }
    
    .products-contact .btn-tel,
    .products-contact .btn-contact {
        width: 100%;
    }
}


/* 詳細
------------------------------- */
.products-detail .page-title h1 span {
    margin-bottom: 0.6rem;
}

.products-main h2 {
    font-size: 3rem;
    margin-bottom: 0.25em !important;
}

.products-summary {
    gap: 0 3rem;
}

.products-summary-img {
    width: 45%;
    flex-shrink: 0;
}

.products-summary-sub-img {
    margin-top: 1em;
}

.products-summary-sub-img img {
    width: 25%;
    border: 1px solid #e5e7eb;
}

.products-detail .products-tag {
    padding-left: 0;
    gap: 0 0.5em;
}

.products-detail .products-tag li {
    list-style-type: none;
    margin-bottom: 0;
    color: #374151;
    background-color: #f3f4f6;
    font-size: 1.2rem;
    padding: 0.4rem 0.8rem;
    border: 1px solid #e5e7eb;
    border-radius: 5px;
}

.products-detail .products-tag li.current {
    color: #1e40af;
    background-color: #dbeafe;
}

.products-information p.product-pillow-words {
    color: #00a0e9;
    font-size: 1.8rem;
    font-weight: bold;
}

.products-information h3 {
    font-size: 1.8rem;
    margin: 1em 0;
}

.products-item-btn {
    margin-top: 4rem;
}

.products-item-contact,
.products-item-datafile {
    width: 49%;
}

.products-item-contact a {
    display: block;
    color: #fff !important;
    background-color: #004098;
    font-weight: 500;
    padding: 1rem 0;
    text-align: center;
    text-decoration: none;
    border-radius: 5px;
}

.products-item-contact p {
    color: #6b7280;
    font-size: 1.2rem;
    margin-top: 1em;
    text-align: center;
}

.products-item-datafile a {
    display: block;
    color: #fff !important;
    background-color: #008C00;
    font-weight: 500;
    padding: 1rem 0;
    text-align: center;
    text-decoration: none;
    border-radius: 5px;
}

.products-item-datafile.no p {
    display: block;
    color: #f0f0f0;
    background-color: #ccc;
    font-weight: 500;
    padding: 1rem 0;
    text-align: center;
    border-radius: 5px;
}

.products-contents {
    margin-top: 4rem;
}

.products-contents > div {
    margin-bottom: 4rem;
}

.products-contents > div:last-of-type {
    margin-bottom: 0;
}

.products-contents ul {
    overflow: hidden;
}

.products-contents .alignleft {
    margin-bottom: 0;
}

.products-contents .product-list-image {
    flex-shrink: 0;
    max-width: 300px;
    margin-right: 3rem;
}

.products-contents .product-list-image > div:nth-child(n+2) {
    margin-top: 3rem;
}

/* お問い合わせフォーム */
.products-contact form {
    max-width: 670px;
    margin: 0 auto;
    background-color: #fff;
    padding: 3rem;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
}

.products-contact form label {
    display: block;
    color: #374151;
    font-size: 1.4rem;
    font-weight: 500;
    text-align: left;
}

.products-contact form .required {
    color: #ef4444;
    margin: 0;
}

.products-contact form input,
.products-contact form textarea {
    width: 100%;
    padding: 1rem;
    border: 1px solid #d1d5db;
    border-radius: 5px;
}

.products-contact form div {
    margin-bottom: 2rem;
}

.products-contact form .flex_spNone div {
    width: 49%;
    margin-bottom: 0;
}

.products-contact form .privacypolicy {
    font-size: 1.4rem;
    margin: 0;
}

.products-contact form .btn-submit {
    margin: 2rem 0 0;
}

.products-contact form .btn-submit input {
    color: #fff;
    background-color: #004098;
    font-size: 1.6rem;
    font-weight: bold;
    padding: 1rem 0;
    text-align: center;
    border: none;
    border-radius: 5px;
}

.products-contact .products-contact-tel p {
    color: #4b5563;
    margin: 1em 0 0;
    font-size: 1.8rem;
    font-weight: bold;
}

.products-contact .products-contact-tel p span {
    font-size: 1.2rem;
    font-weight: normal;
    margin-left: 1rem;
}

/* タブレット・スマホ無効 */
@media screen and (min-width: 960px) {
    .related-box:hover img {
        transform: scale(1.1);
    }
}

@media screen and (max-width: 1024px) {
    .products-summary {
        flex-wrap: wrap;
        flex-direction: column-reverse;
    }
    
    .products-summary-img {
        width: 100%;
    }
    
    .products-information {
        margin-top: 3rem;
    }
    
    .products-item-btn {
        margin-top: 1rem;
    }
    
    .products-item-contact p {
        text-align: left;
    }
}

@media screen and (max-width: 767px) {
    .products-main h2 {
        font-size: 2.4rem;
        margin-bottom: 0.5em !important;
        line-height: 1.6;
    }
    
    .products-item-contact,
    .products-item-datafile {
        width: 100%;
    }
    
    .products-item-contact p {
        text-align: center;
    }
    
    .products-contents .alignleft {
        margin-bottom: 1.6rem;
    }
    
    .products-contents .product-list-image {
        margin: 0 0 1.6rem;
        text-align: center;
    }
    
    .products-contents .product-list-image > div:nth-child(n+2) {
        margin-top: 2rem;
    }
    
    /* お問い合わせフォーム */
    .products-contact form .flex_spNone div {
        width: 100%;
    }
    
    .products-contact form button {
        width: 100%;
    }
    
    .products-contact .products-contact-tel p {
        text-align: center;
    }
    
    .products-contact .products-contact-tel p span {
        display: block;
    }
}


/* ----------------------------------------------
物性表・グレード表
---------------------------------------------- */
.chart .inner ul {
    margin-bottom: 0;
    padding-left: 0;
}

.chart .inner ul li {
    list-style-type: none;
}

.chart .inner ul li a {
    display: block;
    color: #333;
    background-color: #f6f6f6;
    padding: 2.5rem 4rem 2.5rem 2.5rem;
    text-decoration: none;
    position: relative;
    transition: color 0.3s, background-color 0.3s;
}

.chart .inner ul li a:before {
    content: "";
    width: 20px;
    height: 2px;
    background-color: #333;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 25px;
    margin: auto;
    transition: background-color 0.3s;
}

.chart .inner ul li a:after {
    content: "";
    width: 12px;
    height: 12px;
    border-top: 2px solid #333;
    border-right: 2px solid #333;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    position: absolute;
    top: 0;
    bottom: 0;
    right: 25px;
    margin: auto;
    transition: border-color 0.3s;
}

.chart table td[bgcolor="#DDDDDD"] {
    background-color: #DDDDDD;
}
.chart table td[bgcolor="#CCCCCC"] {
    background-color: #CCCCCC;
}
.chart table td[bgcolor="#FFCCCC"] {
    background-color: #FFCCCC;
}
.chart table td[bgcolor="#CCFFFF"] {
    background-color: #CCFFFF;
}
.chart table td[bgcolor="#FFFFCC"] {
    background-color: #FFFFCC;
}
.chart table td[bgcolor="#CCFFCC"] {
    background-color: #CCFFCC;
}

/* タブレット・スマホ無効 */
@media screen and (min-width: 960px) {
    .chart .inner ul li a:hover {
        color: #fff;
        background-color: #999;
    }
    
    .chart .inner ul li a:hover:before {
        background-color: #fff;
    }

    .chart .inner ul li a:hover:after {
        border-top: 2px solid #fff;
        border-right: 2px solid #fff;
    }
}

.chart .inner .btn {
    margin-top: 4rem;
}


/* ----------------------------------------------
採用実績
---------------------------------------------- */
.resruts-wrap {
    margin-top: 5rem;
}

.resruts-detail {
    gap: 0 6rem;
    margin-bottom: 8rem;
}

.resruts-detail:last-child {
    margin-bottom: 0;
}

.resruts-detail .resruts-img {
    width: 18.3%;
    flex-shrink: 0;
}

.resruts-detail .resruts-text {
    width: 100%;
}

.resruts-detail h3 {
    margin-top: 0;
}

.resruts-detail table {
    margin: 0;
}

.resruts-detail table th {
    width: 20%;
    border: 1px solid #ddd;
}

.resruts-detail table td {
    border: 1px solid #ddd;
}

.resruts-detail table td p {
    margin-bottom: 0;
}

@media screen and (max-width: 1024px) {
    .resruts-detail {
        gap: 0 3rem;
    }
    
    .resruts-detail .resruts-img {
        width: 34%;
    }
    
    .resruts-detail table th {
        display: block;
        width: 100%;
    }
    
    .resruts-detail table td {
        display: block;
    }
}

@media screen and (max-width: 767px) {
    .resruts-wrap {
        margin-top: 4rem;
    }
    
    .resruts-detail {
        margin-bottom: 6rem;
    }
    
    .resruts-detail .resruts-img {
        width: 100%;
        text-align: center;
    }
    
    .resruts-detail h3 {
        margin-top: 2em;
    }
    
    .resruts-detail table {
        margin-top: 3rem;
    }
}


/* ----------------------------------------------
お知らせ
---------------------------------------------- */
.news article dl {
    background-color: #f6f6f6;
    margin-bottom: 1rem;
    padding: 2.5rem;
}

.news article dl:last-child {
    margin-bottom: 0;
}

.news article dt {
    width: 185px;
    flex-shrink: 0;
}

.news article dt span {
    color: #ff6005;
    font-weight: bold;
    padding: 0 2em;
}

.news article dd a {
    color: #002D62;
    text-decoration: underline;
}

.news article dd a:hover {
    text-decoration: none;
}

.news .single h2 {
    margin-bottom: 0.5em;
}

.news .single time {
    display: block;
    font-weight: 500;
    margin-bottom: 1.5em;
}

.news .single .pager {
    margin-top: 8rem;
}

@media screen and (max-width: 1024px) {
    .news .single .pager {
        margin-top: 5rem;
    }
}

@media screen and (max-width: 767px) {
    .news .single time {
        margin-bottom: 1em;
    }
}


/* ----------------------------------------------
お問い合わせ プライバシー
---------------------------------------------- */
address p {
    font-style: normal;
    margin: 0 !important;
}

@media screen and (max-width: 767px) {
}


/* ----------------------------------------------
サイトマップ
---------------------------------------------- */
.sitemap-detail {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 5rem 0;
}

.sitemap-detail-box {
    width: 48%;
}

.sitemap-detail-box > p {
    font-size: 2rem;
    padding-left: 1.5em;
    position: relative;
}

.sitemap-detail-box > p:before {
    content: "";
    position: absolute;
    top: 14px;
    left: 8px;
    border: 6px solid transparent;
    border-left: 12px solid #003373;
}

.sitemap-detail-box ul {
    margin: 1em 0 0;
    padding-left: 3.5em;
}

.sitemap-detail-box li:last-child {
    margin-bottom: 0;
}

@media screen and (max-width: 767px) {
    .sitemap-detail {
        gap: 3rem 0;
    }
    
    .sitemap-detail-box {
        width: 100%;
    }
    
    .sitemap-detail-box > a {
        font-size: 2.2rem;
    }
}
