body.page-template-onecolumn #main {
    font-family: "Noto Sans JP", sans-serif;
}

/***********************
      共通部
***********************/
#main {
    font-size: clamp(8px, 1.0416666666666665vw, 16px);
    overflow-x: hidden;
}
.bold {
    font-weight: bold;
}
.center {
    text-align: center;
}
.txt_right {
    text-align: right;
}
.col_blue {
    color: #1F5AB1;
}


/*ボタン*/
.top_btn {
    font-size: clamp(14px, 1.171875vw, 18px);
    color: #fff;
    max-width: 350px;
    width: 90%;
    display: block;
    margin: 0 auto;
    text-align: left;
    padding: 1.5em 1.75em;
    position: relative;
    transition: 0.4s;
    margin: 1em 0;
}
.top_btn span {
    position: relative;
    z-index: 2;
}
.top_btn::before {
    content: "";
    width: calc(100% - 10px);
    height: calc(100% - 10px);
    background: linear-gradient(to right, rgba(24, 74, 146, 1) 0%, rgba(31, 90, 178, 1) 100%);
    border-radius: 4px;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    transition: 0.4s;
}
.top_btn::after {
    content: "";
    max-width: 20px;
    max-height: 16px;
    width: 1.25em;
    height: 0.75em;
    background: url(../images/index/i_arrow.svg) no-repeat center / contain;
    position: absolute;
    right: 1.5em;
    top: 0;
    bottom: 0;
    margin: auto;
    transition: 0.4s;
    filter: brightness(0) invert(1);
}
.top_btn:hover::before {
    width: 100%;
    height: 100%;
    transition: 0.4s;
}
.top_btn:hover::after {
    animation: fuwafuwa 0.5s ease-in-out forwards;
    opacity: 0;
}
.top_btn.btn_center {
    margin: 1em auto;
    text-align: center;
}

@keyframes fuwafuwa {
  0% {
    opacity: 0;
    transform: translateX(-20px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

.flex {
    display: flex;
    align-items: flex-start;
    gap: 1.5em;
    margin: 2em 0;
}
.flex .flex_inner {
    width: 49%;
}
.flex .flex_inner.wide60 {
    width: 65%;
}
.flex .flex_inner .flex {
    margin: 1em 0 0;
}
.flex .flex_inner .techinical-indexBlock03 .techinical-indexBlock03-ttl {
    margin-bottom: 16px;
}
.flex .flex_inner .techinical-indexBlock03 .techinical-indexBlock03-ttl p {
    margin: 0;
}
.flex .flex_inner h3 {
    text-align: center;
    background: #D4F1FF;
    color: #14407D;
    font-size: 14px;
    font-weight: bold;
    padding: 0.5em 1.25em 0.25em;
    margin-bottom: 0.75em;
    border-radius: 100px;
}

.flex .flex_inner p {
    margin-bottom: 1em;
}

.table01 {
    width: 100%;
}
.table01 tr {
    border-top: 1px solid #e2e2e2;
}
.table01 tr:last-child {
    border-bottom: 1px solid #e2e2e2;
}
.table01 tr th,
.table01 tr td {
    padding: 0.75em 0.5em;
    font-size: 14px;
    vertical-align: middle;
    border-right: 1px solid #e2e2e2;
}
.table01 tr th:last-of-type,
.table01 tr td:last-of-type {
    border-right: none;
}

.table01 tr th {
    background-color: #f4f4f4;
    font-weight: bold;
    text-align: center;
}
.table01 tr th span {
    font-weight: normal;
    display: block;
    font-size: 85.5%;
}




@media screen and (min-width: 769px) {
  .table01 tr th {
        border-top: none;
  }
}



@media screen and (max-width: 768px) {
body.page-template-onecolumn #main {
    margin-top: 0;
}
#main {
font-size: min(4.1vw, 16px);
}

.top_btn {
    font-size: min(4.1vw, 16px);
    text-align: center;
    margin: 1em auto;
}

.flex {
    flex-wrap: wrap;
}
.flex .flex_inner {
    width: 100%;
}
.flex .flex_inner.wide60 {
    width: 100%;
}
.flex .flex_inner .flex {
    flex-wrap: nowrap;
    justify-content: center;
}
.flex .flex_inner img {
    margin: 0 auto;
    display: block;
}

.flex .flex_inner.sp_x_slide {
    overflow-x: scroll;
}
}
/***********************
  医療関連製品
***********************/
.term-medical_care .sec-foot.sec-foot_contact {
    display: none;
}
.techinical-indexBlock03 .techinical-indexBlock03-ttl {
    margin-bottom: 30px;
}
.medical_structure_block {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    margin: 2em 0 3em;
}
.medical_structure_block .medical_structure_block_inner {
    width: calc((100% / 3) - 1em);
}
.medical_structure_block .medical_structure_block_inner h4 {
    text-align: center;
    background: #F9E1B5;
    color: #333;
    font-size: 18px;
    font-weight: bold;
    padding: 0.25em 1.25em;
    margin-bottom: 0.75em;
    border-radius: 100px;
}
.medical_structure_block .medical_structure_block_inner:nth-of-type(2) h4 {
    background: #C7E1A4;
}
.medical_structure_block .medical_structure_block_inner:nth-of-type(3) h4 {
    background: #FFCC32;
}
.medical_structure_block .medical_structure_block_inner p {
    font-size: 14px;
}
section.sec.sec-product--child.medical_care_area > .flex {
    margin: 1.5em 0 calc(1.85em + 15px);
}

@media screen and (max-width: 768px) {
.medical_structure_block {
   flex-wrap: wrap;
   gap: 2em;
}
.medical_structure_block .medical_structure_block_inner {
    width: 100%;
}
}

/***********************
  取引実績
***********************/
h2.middle_ttl {
    font-size: 26px;
    font-weight: bold;
    color: #1F5AB1;
    margin: 0 0 0.5em;
}
img.center_img {
    margin: 1em auto;
    display: block;
}
.map_area {
    margin-bottom: 80px;
}
.map_area_inner {
    margin: 2em 0;
    border: 1px solid #BBCFDF;
    padding: 2em;
}
.map_area_inner ul.map_list {
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 0.25em 0.5em;
}
.map_area_inner ul.map_list li {
    width: calc((100%/5) - 0.4em);
}

@media screen and (max-width: 768px) {
h2.middle_ttl {
    font-size: min(6.67vw,26px);
}
.map_area {
    margin-bottom: 40px;
}
.map_area_inner {
    padding: 1.5em;
}
.map_area_inner ul.map_list li {
    width: calc((100%/2) - 0.4em);
}
}


.achievement_flex {
    margin-bottom: 80px;
}
.achievement_flex .flex_inner.wide60 {
    width: 65%;
    max-width: 515px;
}
.achievement_flex .flex_inner table.company-profile-overview__tbl {
    margin-bottom: 0;
}
.achievement_flex .flex_inner {
    width: 34%;
    max-width: 250px;
}
@media screen and (max-width: 768px) {
.achievement_flex {
    margin-bottom: 40px;
}
.achievement_flex .flex_inner.wide60,
.achievement_flex .flex_inner {
    width: 100%;
    max-width: 100%;
}
.achievement_flex .flex_inner {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    flex-wrap: wrap;
    max-width: 100%;
}
.achievement_flex .flex_inner figure {
    width: 49%;
}
.achievement_flex .flex_inner.wide60 .company-profile-overview__tbl__td {
        padding: 14px 20px;
}
}