/* =================================================
   基本テーブル
================================================= */
.table-white {
    background-color: #fff;
    width: 100%;
    border-collapse: collapse;
    font-size: 1.2em;
}

.table-blue {
    background: radial-gradient(rgb(5, 83, 198), rgb(0, 62, 151));
    width: 100%;
    border-collapse: separate;
    color: #fff;
    font-size: 30px;
    margin-top: 30px;
    padding: 30px 15px;
    border-bottom: 2px solid black;
}

.table-blue td {
    padding: 10px 15px;
    font-size: 28px;
    line-height: 1.6;
    vertical-align: middle;
}

th,
td {
    padding: 15px;
    text-align: center;
    vertical-align: top;
    border-bottom: 2px solid white;
}

.table-blue a {
    color: #fff;
    text-decoration: none;
}


/* =================================================
   表示制御
================================================= */
.pc-only { display: block; }
.sp-only { display: none; }


/* =================================================
   認証・資格テーブル
================================================= */
.table-certifications th,
.table-certifications td {
    width: calc(100% / 6);
    text-align: center;
    border: none;
    background-color: #fff;
}

.table-certifications {
    width: 70%;
    margin: 0 auto;
}

.table-certifications th {
    font-size: 1.8em;
    font-weight: bold;
}

.table-certifications tr:nth-child(2) td {
    font-size: 1.6em;
}

.table-certifications tr:nth-child(3) td {
    font-weight: bold;
}

.align-top td {
    vertical-align: top;
}

.table-certifications.mobile-only,
.table-certifications.mobile-only th,
.table-certifications.mobile-only td {
    border: none;
}

.table-certifications {
    display: none;
}


/* =================================================
   テキスト
================================================= */
.highlight-text {
    font-size: 1.6em;
    font-weight: bold;
}


/* =================================================
   製品カテゴリリンク
================================================= */
.product-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 20px;
}

.product-link {
    display: flex;
    align-items: center;
    width: 500px;
    margin: 10px;
    padding: 15px;
    border-radius: 10px;
    border: solid 3px #003E97;
    font-size: 25px;
    text-decoration: none;
    color: #003E97;
    text-align: left;
    gap: 15px;
}

.product-link strong {
    font-size: 1.2em;
}

.product-img {
    width: 80px;
    height: auto;
    border-radius: 5px;
}

.pc-br {
    display: inline;
}


/* =================================================
   タブ
================================================= */
.tab-menu {
    display: flex;
    border-bottom: 2px solid #888;
}

.tab-menu div {
    padding: 10px 20px;
    cursor: pointer;
    font-size: 1.5rem;
    font-weight: bold;
    border: 1px solid #888;
    border-bottom: none;
    background: #f0f0f0;
    text-align: left;
}

.tab-menu div.active {
    background: #ddd;
    border-bottom: 2px solid #ddd;
}

.tab-content {
    display: none;
    padding: 20px;
}

.tab-content.active {
    display: block;
}


/* =================================================
   一覧ボタン
================================================= */
.other-products-button {
    text-align: center;
    margin: 20px 0;
}

.other-products-link {
    display: inline-block;
    padding: 10px 20px;
    background-color: #003E97;
    color: white;
    text-decoration: none;
    border-radius: 5px;
    font-weight: bold;
    font-size: 30px;
}

.other-products-link:hover {
    background-color: #002E72;
}


/* =================================================
   PC
================================================= */
@media screen and (min-width: 769px) {
    .pc-only {
        display: table;
    }
}


/* =================================================
   SP 共通
================================================= */
@media screen and (max-width: 768px) {

    .table-certifications.mobile-only {
        width: 100%;
        border: none;
    }

    .mobile-only {
        display: table;
    }

    .mobile-only tr {
        display: block;
    }

    .mobile-only td {
        flex: 1;
        text-align: center;
    }

    .table-certifications th {
        text-align: center;
        font-size: 1.4em;
        font-weight: bold;
    }

    .table-certifications tr:nth-child(2) td {
        text-align: center;
        font-size: 1.2em;
    }

    .table-certifications tr:nth-child(4) td {
        text-align: center;
        font-size: 0.8em;
    }

    .table-certifications tr:nth-child(6) td {
        text-align: center;
        font-weight: bold;
    }

    .table-certifications tr:nth-child(7) td {
        text-align: center;
        font-size: 0.8em;
    }

    .pc-only { display: none; }
    .sp-only { display: block; }
}

  .sp-only table td,
  .sp-only table b {
    text-align: left;
    vertical-align: middle;
  }


/* =================================================
   SP 詳細
================================================= */
@media screen and (max-width: 768px) {

    .probootstrap-section.area-rainbow {
        padding-top: 150px;
    }

    .table-blue td {
        display: block;
        width: 100%;
        text-align: center;
        padding: 10px;
        font-size: 16px;
        border-bottom: none;
    }

    .table-blue td:first-child {
        font-size: 24px;
        font-weight: bold;
    }

    .table-blue a {
        font-size: 16px;
    }

    .table-blue td:last-child {
        border-bottom: 2px solid white;
    }

    .table-white td {
        text-align: center;
        font-size: 12px;
        padding: 10px;
    }

    .product-container {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
    }

    .product-link {
        width: calc(47% - 20px);
        margin: 10px;
        flex-direction: column;
        align-items: center;
        text-align: center;

        font-size: 14px;
        padding: 10px;
    }

    .product-img {
        width: 100px;
    }

    .product-link strong {
        font-size: 1.2em;
    }

    .product-link div {
        font-size: 1.0em;
    }

    .pc-br {
        display: none;
    }

    .other-products-link {
        font-size: 16px;
        padding: 10px 20px;
        display: block;
        margin-bottom: 10px;
    }
}


/* =================================================
   table-blue SP カード化
================================================= */
@media (max-width: 768px) {

    .table-blue {
        background: transparent;
        border: 0;
        padding: 0;
        margin-top: 20px;
        border-bottom: none;
        width: 100%;
        border-collapse: separate;
        border-spacing: 0;
        color: #fff;
    }

    .table-blue tr {
        display: block;
        background: radial-gradient(circle at 20% 0, rgb(5,83,198), rgb(0,62,151));
        box-shadow: 0 6px 16px rgba(0,0,0,0.18);
        padding: 14px 14px 12px;
        position: relative;
        overflow: hidden;
        margin: 0;
    }

    .table-blue tr + tr {
        position: relative;
        margin-top: 14px;
    }

    .table-blue tr + tr::before {
        content: "";
        position: absolute;
        top: -8px;
        left: 0;
        right: 0;
        height: 1px;
        background: rgba(255,255,255,0.45);
        pointer-events: none;
    }

    .table-blue td {
        display: block;
        width: 100%;
        padding: 8px 6px;
        font-size: 16px;
        line-height: 1.6;
        border: 0 !important;
        text-align: left;
    }

    .table-blue td:first-child {
        font-weight: 700;
        padding-bottom: 4px;
    }

    .table-blue td:first-child i,
    .table-blue td:first-child font {
        font-size: 0 !important;
        line-height: 0 !important;
    }

    .table-blue font[size] {
        font-size: inherit !important;
    }

    .table-blue td:first-child::before {
        content: "その";
        color: rgba(255,255,255,0.95);
        font-size: 14px;
        margin-right: 8px;
        vertical-align: middle;
    }

    .table-blue tr:nth-child(1) td:first-child::after { content: "1"; }
    .table-blue tr:nth-child(2) td:first-child::after { content: "2"; }
    .table-blue tr:nth-child(3) td:first-child::after { content: "3"; }
    .table-blue tr:nth-child(4) td:first-child::after { content: "4"; }

    .table-blue td:first-child::after {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 34px;
        height: 34px;
        border-radius: 50%;
        background: #fff;
        color: #003E97;
        font-size: 18px;
        font-weight: 700;
        vertical-align: middle;
    }

    .table-blue td:nth-child(2) {
        font-size: 16px;
        font-weight: 800;
        margin-top: 2px;
        margin-bottom: 6px;
        text-shadow: 0 1px 1px rgba(0,0,0,.18);
    }

    .table-blue td:last-child {
        padding-top: 6px;
    }

    .table-blue td:last-child a {
        display: block;
        width: 100%;
        text-align: center;
        color: #003E97;
        font-weight: 700;
        background: #ffffff;
        border-radius: 999px;
        padding: 12px 16px;
        font-size: 15px;
        box-shadow: 0 2px 0 rgba(0,0,0,0.08);
        transition: transform .06s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
    }

    .table-blue td:last-child a:hover,
    .table-blue td:last-child a:active {
        transform: translateY(1px);
        box-shadow: 0 1px 0 rgba(0,0,0,0.08);
        background: #F3F7FF;
        color: #002E72;
    }
}