@charset "UTF-8";
/* --------------------------------
	mixin
-------------------------------- */
/* --------------------------------
	common
-------------------------------- */
.section {
  margin-bottom: 40px; }

.subSecTtl {
  background: rgba(41, 114, 176, 0.1);
  font-size: 2.2rem;
  font-weight: bold;
  margin-bottom: 35px;
  padding: 20px;
  text-align: center; }

.text__flex {
  display: flex;
  justify-content: space-between; }

.table__link-txt {
  color: #0098cf;
  text-decoration: underline; }

.heading__sml {
  font-size: 1.4rem;
  font-weight: bold; }
  @media screen and (max-width: 767px) {
    .heading__sml {
      font-size: 3.1vw; } }

/* --------------------------------
	page title
-------------------------------- */
.pageTtl .txt {
  padding: 20px 70px; }
  @media screen and (max-width: 767px) {
    .pageTtl .txt {
      padding: 10px 20px; } }

/* --------------------------------
	first
-------------------------------- */
.first {
  padding-bottom: 50px; }
  .first .lead {
    margin-bottom: 50px;
    text-align: center; }
    @media screen and (max-width: 767px) {
      .first .lead {
        font-size: 4vw;
        line-height: 1.9; } }
  .first .circleIconList li {
    width: 16%; }
    @media screen and (max-width: 767px) {
      .first .circleIconList li {
        margin: 0 3% 15px;
        width: 27%; } }
    @media screen and (max-width: 767px) {
      .first .circleIconList li img {
        width: 100%; } }
  @media screen and (max-width: 767px) {
    .first {
      padding-bottom: 80px; } }

@media screen and (max-width: 767px) {
  .circleIconList li a {
    width: 100%; } }

/* --------------------------------
	section title
-------------------------------- */
.secTtlArea {
  padding: 40px 0;
  margin-bottom: 70px; }
  .secTtlArea .ico {
    display: block;
    margin-bottom: 10px; }
    .secTtlArea .ico img {
      height: 45px;
      width: auto; }
      .secTtlArea .ico img.ico__section08 {
        height: 70px; }
  .secTtlArea .headline {
    color: #2972b0;
    font-size: 2.7rem;
    font-weight: bold;
    text-align: center; }
    .secTtlArea .headline br {
      display: none; }
      @media screen and (max-width: 767px) {
        .secTtlArea .headline br {
          display: block; } }
  @media screen and (max-width: 767px) {
    .secTtlArea {
      margin-bottom: 30px; } }

/* --------------------------------
	section head
-------------------------------- */
.secHead {
  margin-bottom: 70px; }
  .secHead .flex {
    align-items: flex-start;
    margin-top: 35px; }
    .secHead .flex .txt {
      flex: 1;
      margin-top: 10px;
      margin-right: 47px; }
      .secHead .flex .txt .ttl {
        font-size: 2.2rem;
        font-weight: bold;
        margin-bottom: 15px; }
        @media screen and (max-width: 767px) {
          .secHead .flex .txt .ttl {
            font-size: 5.5vw; } }
      .secHead .flex .txt p {
        font-size: 1.45rem;
        letter-spacing: 0;
        line-height: 2.2; }
        @media screen and (max-width: 767px) {
          .secHead .flex .txt p {
            font-size: 4vw;
            line-height: 1.9; } }
        .secHead .flex .txt p.achievements-text {
          padding-top: 15px;
          line-height: 1.75; }
          @media screen and (max-width: 767px) {
            .secHead .flex .txt p.achievements-text {
              padding-top: 20px;
              line-height: 1.65; } }
      .secHead .flex .txt .btn {
        margin: 20px auto 0 0;
        width: 230px; }
        @media screen and (max-width: 767px) {
          .secHead .flex .txt .btn {
            margin: 30px auto;
            width: 60vw; } }
      @media screen and (max-width: 767px) {
        .secHead .flex .txt {
          margin-right: 0; } }
    .secHead .flex .img {
      width: 52%; }
      .secHead .flex .img.flora__img {
        width: 47%; }
      @media screen and (max-width: 767px) {
        .secHead .flex .img {
          margin-top: 30px;
          width: 100%; }
          .secHead .flex .img.flora__img {
            width: 100%;
            max-width: 500px;
            margin: 0 auto;
            padding-top: 20px; } }
    @media screen and (max-width: 767px) {
      .secHead .flex {
        margin-top: 0; } }
  @media screen and (max-width: 767px) {
    .secHead {
      margin-bottom: 40px; } }

/* --------------------------------
	point area
-------------------------------- */
.pointArea {
  background: rgba(41, 114, 176, 0.1);
  border-radius: 30px;
  margin: 0 auto 70px;
  max-width: 1140px;
  padding: 70px 50px;
  width: 90%; }
  .pointArea .unit.wide {
    margin-bottom: 70px; }
    .pointArea .unit.wide .txt {
      flex: 1;
      margin-right: 50px; }
      .pointArea .unit.wide .txt p {
        font-size: 1.6rem;
        line-height: 1.9; }
      @media screen and (max-width: 767px) {
        .pointArea .unit.wide .txt {
          margin-right: 0; } }
    .pointArea .unit.wide .img figure img {
      width: 247px; }
      @media screen and (max-width: 767px) {
        .pointArea .unit.wide .img figure img {
          width: 100%; } }
    .pointArea .unit.wide .img figure + figure {
      margin-left: 30px; }
      @media screen and (max-width: 767px) {
        .pointArea .unit.wide .img figure + figure {
          margin: 30px auto; } }
    @media screen and (max-width: 767px) {
      .pointArea .unit.wide .img figure {
        margin: 30px auto;
        width: 80%; } }
  .pointArea .pointTtl {
    background: #fff;
    font-size: 2.2rem;
    font-weight: bold;
    margin-bottom: 40px;
    padding: 0 10px 10px;
    text-align: center; }
    .pointArea .pointTtl .ico {
      display: block; }
      .pointArea .pointTtl .ico img {
        height: 9px;
        width: auto; }
    @media screen and (max-width: 767px) {
      .pointArea .pointTtl {
        margin-bottom: 15px; } }
  .pointArea .col2 {
    align-items: stretch; }
    .pointArea .col2 + .col2 {
      margin-top: 50px; }
    .pointArea .col2 .unit {
      width: 50%; }
      .pointArea .col2 .unit:nth-of-type(1) {
        border-right: 1px solid #595757;
        padding-right: 7.5%; }
      .pointArea .col2 .unit:nth-of-type(2) {
        padding-left: 7.5%; }
      .pointArea .col2 .unit .pointTtl {
        margin-bottom: 25px; }
        @media screen and (max-width: 767px) {
          .pointArea .col2 .unit .pointTtl {
            margin-bottom: 10px; } }
      .pointArea .col2 .unit .txt {
        margin-bottom: 30px; }
        .pointArea .col2 .unit .txt p {
          font-size: 1.5rem;
          line-height: 1.9; }
          @media screen and (max-width: 767px) {
            .pointArea .col2 .unit .txt p {
              font-size: 4vw;
              line-height: 1.8; } }
      @media screen and (max-width: 767px) {
        .pointArea .col2 .unit {
          width: 100%; }
          .pointArea .col2 .unit:nth-of-type(1) {
            border-right: none;
            padding-right: 0; }
          .pointArea .col2 .unit:nth-of-type(2) {
            margin-top: 60px;
            padding-left: 0; }
          .pointArea .col2 .unit .img {
            margin-bottom: 30px; } }
    @media screen and (max-width: 767px) {
      .pointArea .col2 + .col2 {
        margin-top: 0; } }
  @media screen and (max-width: 767px) {
    .pointArea {
      padding: 40px 1%;
      width: 94%; } }

@media screen and (max-width: 767px) {
  #section02 .pointArea .col2 .unit {
    margin-top: 0;
    margin-bottom: 30px;
    padding-top: 30px;
    border-top: 1px solid #595757; }
    #section02 .pointArea .col2 .unit:nth-of-type(1) {
      padding-top: 0;
      border-top: none; } }
@media screen and (max-width: 767px) {
  #section02 .pointArea .col2 + .col2 .unit:nth-of-type(1) {
    padding-top: 30px;
    border-top: 1px solid #595757; } }

/* --------------------------------
	about
-------------------------------- */
.aboutArea.mgb {
  margin-bottom: 67px; }
  @media screen and (max-width: 767px) {
    .aboutArea.mgb {
      margin-bottom: 52px; } }
.aboutArea .flex {
  max-width: 811px;
  margin: 0 auto; }
  .aboutArea .flex.recommendation-list {
    max-width: 678px; }
  .aboutArea .flex.thing-list {
    margin-bottom: 32px; }
  .aboutArea .flex.inspection__priceWrap {
    max-width: 645px;
    padding-top: 30px;
    justify-content: space-between;
    align-items: flex-start; }
  .aboutArea .flex .txt {
    flex: 1;
    margin-right: 30px; }
    .aboutArea .flex .txt p {
      font-size: 1.5rem;
      line-height: 2; }
      @media screen and (max-width: 767px) {
        .aboutArea .flex .txt p {
          font-size: 4vw; } }
    @media screen and (max-width: 767px) {
      .aboutArea .flex .txt {
        margin-right: 0;
        margin-bottom: 30px; } }
  .aboutArea .flex .img {
    width: 350px; }
    @media screen and (max-width: 767px) {
      .aboutArea .flex .img {
        width: 100%; } }
.aboutArea .flex02 {
  display: block; }
  .aboutArea .flex02 .thing-list__item {
    width: 100%; }

.recommendation-list__item {
  width: 48.5%;
  max-width: 306px; }
  .recommendation-list__item:nth-child(-n + 2) {
    margin-bottom: 51px; }
  @media screen and (max-width: 767px) {
    .recommendation-list__item {
      width: 100%;
      max-width: initial; }
      .recommendation-list__item:not(:last-child) {
        margin-bottom: 41px; } }
.recommendation-list__item--img {
  margin-bottom: 10px; }
.recommendation-list__item--text {
  font-size: 1.5rem;
  text-align: center; }
  @media screen and (max-width: 767px) {
    .recommendation-list__item--text {
      font-size: 4.5vw; } }

.thing-list__item {
  font-size: 1.5rem;
  width: 48%;
  margin-bottom: 6px; }
  @media screen and (max-width: 767px) {
    .thing-list__item {
      font-size: 4vw;
      width: 100%; } }

.sample-wrap {
  max-width: 811px;
  margin: 0 auto; }

.sample-title {
  color: #2871ae;
  font-size: 1.7rem;
  margin-bottom: 10px; }
  @media screen and (max-width: 767px) {
    .sample-title {
      font-size: 4.5vw; } }

.inspectionWrap {
  margin-bottom: 30px; }

.inspection__text--lrg, .inspection__text--sml {
  color: #2871ae;
  text-align: center; }
.inspection__text--lrg {
  font-size: 2.2rem; }
  @media screen and (max-width: 767px) {
    .inspection__text--lrg {
      font-size: 4.5vw; } }
.inspection__text--sml {
  font-size: 1.6rem; }
  @media screen and (max-width: 767px) {
    .inspection__text--sml {
      font-size: 4vw; } }

.inspection__priceWrap .inspection__text--lrg,
.inspection__priceWrap .inspection__text--sml {
  text-align: left; }
.inspection__priceWrap .inspection__text--sml {
  display: block; }
@media screen and (max-width: 767px) {
  .inspection__priceWrap .inspection__text--lrg {
    margin-bottom: 1.303vw; } }

/* --------------------------------
	flow
-------------------------------- */
.flowArea {
  margin-bottom: 70px; }
  .flowArea .lead {
    font-size: 1.5rem;
    line-height: 2;
    margin-bottom: 25px;
    text-align: center; }
    .flowArea .lead .note {
      font-size: 1.2rem; }
      @media screen and (max-width: 767px) {
        .flowArea .lead .note {
          font-size: 2.5vw; } }
    @media screen and (max-width: 767px) {
      .flowArea .lead {
        font-size: 4vw; } }
  .flowArea .flow {
    position: relative;
    z-index: 0; }
    .flowArea .flow::before,
    .flowArea .flow .num::after,
    .flowArea .flow .num::before {
      content: "";
      display: block;
      position: absolute;
      left: 0;
      right: 0;
      margin: 0 auto; }
    .flowArea .flow::before {
      background: #2972b0;
      height: calc(100% - 10px);
      top: 5px;
      width: 25px;
      z-index: -1; }
      @media screen and (max-width: 767px) {
        .flowArea .flow::before {
          left: 27px;
          right: auto;
          height: calc(100% - 9vw - 50px); } }
    .flowArea .flow li {
      position: relative; }
      @media screen and (min-width: 768px) {
        .flowArea .flow li:nth-child(odd) .detail {
          left: calc(50% + 80px); }
          .flowArea .flow li:nth-child(odd) .detail p::before {
            left: -10px; }
          .flowArea .flow li:nth-child(odd) .detail p::after {
            left: -43px; }
        .flowArea .flow li:nth-child(even) .detail {
          right: calc(50% + 80px); }
          .flowArea .flow li:nth-child(even) .detail p {
            text-align: right; }
            .flowArea .flow li:nth-child(even) .detail p::before {
              right: -10px; }
            .flowArea .flow li:nth-child(even) .detail p::after {
              right: -43px; }
          .flowArea .flow li:nth-child(even) .detail .img {
            margin: 0 0 0 auto; }
        .flowArea .flow li:nth-child(1) .detail {
          top: 0; }
        .flowArea .flow li:nth-child(2) .detail {
          top: 15px; }
        .flowArea .flow li:nth-child(3) .detail {
          top: 0; }
        .flowArea .flow li:nth-child(4) .detail {
          top: 0; }
        .flowArea .flow li:nth-child(5) .detail {
          top: 0; } }
      @media screen and (max-width: 767px) {
        .flowArea .flow li {
          display: flex;
          justify-content: space-between; }
          .flowArea .flow li:last-child .num::after {
            content: none; }
          .flowArea .flow li.short .detail p {
            margin-top: 0; } }
    .flowArea .flow .num {
      background: #fff;
      border-radius: 100px;
      border: 5px solid #2972b0;
      display: block;
      font-family: YuMincho, "Yu Mincho", "Hiragino Mincho ProN", "serif";
      font-size: 2.7rem;
      font-weight: bold;
      height: 78px;
      margin: 0 auto 55px;
      position: relative;
      padding-top: 16px;
      text-align: center;
      z-index: 1;
      width: 78px; }
      .flowArea .flow .num::after {
        background: url("../images/services/line_dot.png") no-repeat;
        background-size: cover;
        height: 37px;
        width: 4.5px;
        z-index: 1;
        top: 83px; }
        @media screen and (max-width: 767px) {
          .flowArea .flow .num::after {
            top: calc(50% + 20px);
            left: 37px;
            right: auto;
            height: 40px; } }
      .flowArea .flow .num .tag {
        background: #eb6153;
        border-radius: 10px;
        color: #fff;
        font-family: "Noto Sans JP", sans-serif;
        width: 82px;
        font-size: 1.5rem;
        position: absolute;
        left: -5px;
        margin: 0 auto;
        top: -5px; }
      @media screen and (max-width: 767px) {
        .flowArea .flow .num {
          margin: 0;
          position: static; } }
    .flowArea .flow .detail {
      position: absolute; }
      .flowArea .flow .detail p {
        font-size: 1.5rem;
        line-height: 1.9;
        margin-bottom: 10px;
        position: relative; }
        .flowArea .flow .detail p::before {
          background: #2972b0;
          content: "";
          display: block;
          position: absolute;
          top: 0;
          height: 100%;
          width: 3px; }
        .flowArea .flow .detail p::after {
          background: #2972b0;
          content: "";
          display: block;
          position: absolute;
          height: 3px;
          width: 33px;
          top: calc(50% - 1px); }
        @media screen and (max-width: 767px) {
          .flowArea .flow .detail p {
            font-size: 4vw; }
            .flowArea .flow .detail p::before {
              left: -22px;
              height: 64px;
              top: 6px; }
            .flowArea .flow .detail p::after {
              left: -56px;
              top: 38px;
              width: 35px; } }
      .flowArea .flow .detail .img {
        border-radius: 10px;
        width: 196px; }
        .flowArea .flow .detail .img img {
          width: 100%; }
      @media screen and (max-width: 767px) {
        .flowArea .flow .detail {
          width: calc(100% - 113px);
          padding-left: 20px;
          position: relative;
          min-height: 100px;
          margin-bottom: 50px; } }
  @media screen and (max-width: 767px) {
    .flowArea {
      margin-bottom: 0; } }

@media screen and (min-width: 768px) {
  #section02 .flowArea .flow li:nth-child(1) .detail {
    top: -10px; }
  #section02 .flowArea .flow li:nth-child(2) .detail {
    top: 0; }
  #section02 .flowArea .flow li:nth-child(3) .detail {
    top: 15px; } }
@media screen and (max-width: 767px) {
  #section02 .flowArea .flow::before {
    height: calc(100% - 9vw - 80px); }
  #section02 .flowArea .flow .detail p {
    margin-top: 0; }
    #section02 .flowArea .flow .detail p::before {
      height: 64px;
      top: 6px; }
    #section02 .flowArea .flow .detail p::after {
      top: 38px; }
  #section02 .flowArea .flow li:nth-child(3) .detail p {
    padding-top: 13px; } }

.ie .flowArea .flow .num {
  padding-top: 20px; }

/* --------------------------------
	price
-------------------------------- */
.priceTbl {
  border-collapse: collapse;
  margin-top: 50px;
  width: 100%; }
  .priceTbl th,
  .priceTbl td {
    border: 1px solid #595757;
    font-size: 1.6rem;
    padding: 14px;
    text-align: center; }
  .priceTbl tr:first-of-type th:first-of-type {
    border: none;
    background: none;
    width: 250px; }
  .priceTbl th {
    background: rgba(41, 114, 176, 0.1); }
  @media screen and (max-width: 767px) {
    .priceTbl {
      margin-top: 10px; }
      .priceTbl th,
      .priceTbl td {
        white-space: nowrap; } }

.priceArea .note {
  font-size: 1.4rem;
  margin-top: 20px;
  text-align: left;
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap; }
@media screen and (max-width: 767px) {
  .priceArea .tableWrap {
    overflow: scroll; } }

/* --------------------------------
	tab
-------------------------------- */
.tabSelect {
  display: flex;
  justify-content: center;
  margin-bottom: 25px; }
  .tabSelect li {
    border: 1px solid #2972b0;
    border-radius: 100px;
    width: 342px;
    margin: 0 10px; }
    .tabSelect li:hover {
      background: transparent; }
    .tabSelect li a {
      border-radius: 100px;
      color: #2972b0;
      cursor: pointer;
      font-size: 2.2rem;
      display: block;
      padding: 9px 10px 10px;
      position: relative;
      text-align: center;
      transition: 0.3s;
      background: #fff; }
      .tabSelect li a.active {
        background: #2972b0;
        color: #fff; }
        .tabSelect li a.active::after {
          opacity: 1; }
      .tabSelect li a::after {
        content: "";
        display: block;
        width: 0;
        height: 0;
        border-style: solid;
        border-width: 15px 14px 0 14px;
        border-color: #2972b0 transparent transparent transparent;
        position: absolute;
        bottom: -14px;
        left: 0;
        right: 0;
        margin: 0 auto;
        opacity: 0;
        transition: 0.3s; }
    @media screen and (max-width: 767px) {
      .tabSelect li {
        margin: 0;
        min-width: 35vw;
        width: auto; }
        .tabSelect li:first-child {
          margin-right: 10px;
          flex: 1; }
        .tabSelect li a {
          background: transparent;
          font-size: 4.3vw;
          white-space: nowrap; } }
  @media screen and (max-width: 767px) {
    .tabSelect {
      flex-wrap: nowrap;
      padding-bottom: 15px;
      width: 100%;
      overflow: scroll; }
      .tabSelect::-webkit-scrollbar {
        display: none; } }

.tabView {
  background: rgba(41, 114, 176, 0.1);
  border: 2px solid #2972b0;
  padding: 55px 50px 40px 50px; }
  .tabView .unit.show {
    opacity: 1;
    height: auto; }
  .tabView .unit .unitHead {
    align-items: flex-start;
    margin-bottom: 30px; }
    .tabView .unit .unitHead .txt {
      flex: 1;
      margin-right: 40px; }
      .tabView .unit .unitHead .txt .headline {
        align-items: center;
        display: flex;
        font-size: 2.2rem;
        font-weight: bold;
        margin-bottom: 10px; }
        @media screen and (max-width: 767px) {
          .tabView .unit .unitHead .txt .headline {
            font-size: 5.7vw;
            margin-bottom: 30px; } }
      .tabView .unit .unitHead .txt .ico {
        margin-right: 20px;
        width: 52px; }
        .tabView .unit .unitHead .txt .ico img {
          width: 100%; }
      .tabView .unit .unitHead .txt p {
        font-size: 1.5rem;
        line-height: 2; }
        @media screen and (max-width: 767px) {
          .tabView .unit .unitHead .txt p {
            font-size: 4vw; } }
      @media screen and (max-width: 767px) {
        .tabView .unit .unitHead .txt {
          margin: 0 0 20px; } }
    .tabView .unit .unitHead .img {
      width: 412px; }
      @media screen and (max-width: 767px) {
        .tabView .unit .unitHead .img {
          border-radius: 15px;
          width: 100%; } }
    @media screen and (max-width: 767px) {
      .tabView .unit .unitHead {
        margin-bottom: 20px; } }
  .tabView .unit .unitBody {
    background: #2972b0;
    padding: 40px 50px; }
    .tabView .unit .unitBody .group {
      align-items: flex-start; }
      .tabView .unit .unitBody .group.gr2 {
        flex-flow: row-reverse; }
        .tabView .unit .unitBody .group.gr2 .img {
          margin: 0 40px 0 0; }
      .tabView .unit .unitBody .group + .group {
        border-top: 1px solid #fff;
        padding-top: 50px;
        margin-top: 40px; }
        @media screen and (max-width: 767px) {
          .tabView .unit .unitBody .group + .group {
            margin-top: 30px;
            padding-top: 20px; } }
    .tabView .unit .unitBody .txt,
    .tabView .unit .unitBody p {
      color: #fff; }
    .tabView .unit .unitBody .txt {
      flex: 1; }
      .tabView .unit .unitBody .txt .ttl {
        font-size: 2.2rem;
        margin-bottom: 10px; }
        @media screen and (max-width: 767px) {
          .tabView .unit .unitBody .txt .ttl {
            font-size: 5.7vw; } }
      .tabView .unit .unitBody .txt p {
        font-size: 1.45rem;
        letter-spacing: -0.5px;
        line-height: 2.1; }
        @media screen and (max-width: 767px) {
          .tabView .unit .unitBody .txt p {
            font-size: 4vw; } }
      .tabView .unit .unitBody .txt + .img {
        margin-left: 40px; }
        @media screen and (max-width: 767px) {
          .tabView .unit .unitBody .txt + .img {
            margin: 0; } }
    .tabView .unit .unitBody .img {
      width: 300px; }
      .tabView .unit .unitBody .img p {
        font-size: 1.4rem;
        margin-top: 10px; }
        @media screen and (max-width: 767px) {
          .tabView .unit .unitBody .img p {
            font-size: 3.7vw; } }
      .tabView .unit .unitBody .img + .txt {
        margin-left: 40px; }
        @media screen and (max-width: 767px) {
          .tabView .unit .unitBody .img + .txt {
            margin: 20px 0 0; } }
      @media screen and (max-width: 767px) {
        .tabView .unit .unitBody .img {
          width: 100%; } }
    @media screen and (max-width: 767px) {
      .tabView .unit .unitBody {
        padding: 20px 6%; } }
  @media screen and (max-width: 767px) {
    .tabView {
      padding: 20px 5%; } }

/* --------------------------------
	other
-------------------------------- */
#section05 .secTtlArea {
  margin-bottom: 45px; }
  @media screen and (max-width: 767px) {
    #section05 .secTtlArea {
      margin-bottom: 20px; } }

.otherLead {
  font-size: 1.6rem;
  margin-bottom: 30px;
  text-align: center; }
  @media screen and (max-width: 767px) {
    .otherLead {
      line-height: 2;
      margin-bottom: 15px; } }

.examImg {
  margin: 0 auto 70px;
  width: 578px; }
  @media screen and (max-width: 767px) {
    .examImg {
      width: 100%; } }

.vaccine {
  margin: 60px 0;
  align-items: flex-start; }
  .vaccine table {
    border-collapse: collapse;
    width: 48%; }
    .vaccine table th,
    .vaccine table td {
      border-bottom: 1px solid #999;
      font-size: 1.45rem;
      padding: 16px 20px; }
    .vaccine table tr:last-of-type th,
    .vaccine table tr:last-of-type td {
      border-bottom: none; }
    .vaccine table th {
      border-right: 1px dotted #999;
      width: 290px; }
    .vaccine table td {
      color: #2972b0;
      padding-left: 30px; }
    @media screen and (max-width: 767px) {
      .vaccine table {
        margin-bottom: 10px;
        width: 100%; }
        .vaccine table th,
        .vaccine table td {
          font-size: 4vw;
          letter-spacing: -0.5px;
          padding: 15px 4vw; }
        .vaccine table th {
          width: 50vw; } }
  .vaccine p {
    text-align: center;
    width: 100%;
    padding-top: 15px; }
  .vaccine.text__flex {
    max-width: 678px;
    margin: 60px auto; }
    .vaccine.text__flex p {
      font-size: 1.6rem; }
      @media screen and (max-width: 767px) {
        .vaccine.text__flex p {
          font-size: 4vw; } }

/* --------------------------------
	services
-------------------------------- */
@media screen and (max-width: 767px) {
  .services {
    border-radius: 0;
    padding: 70px 0 100px; } }
@media screen and (max-width: 767px) {
  .services .lead {
    font-size: 3.9vw;
    margin-bottom: 50px; } }

.serviceUnit {
  padding-top: 30px;
  position: relative; }
  .serviceUnit + .serviceUnit {
    margin-top: 65px; }
    @media screen and (max-width: 767px) {
      .serviceUnit + .serviceUnit {
        margin-top: 30px; } }
  .serviceUnit .img {
    position: absolute;
    top: 0;
    height: 100%;
    width: 50%;
    overflow: hidden; }
    .serviceUnit .img img {
      height: 100%;
      width: 100%;
      object-fit: cover; }
    @media screen and (max-width: 767px) {
      .serviceUnit .img {
        position: static;
        width: 100%; }
        .serviceUnit .img.imgpc {
          display: none; }
        .serviceUnit .img.imgsp {
          display: block;
          margin-bottom: 30px; } }
  .serviceUnit .txt {
    padding: 15px 0;
    width: 42%; }
    @media screen and (max-width: 767px) {
      .serviceUnit .txt {
        width: 100%;
        margin: 0 auto; } }
  .serviceUnit .item + .item {
    margin-top: 50px; }
  .serviceUnit .item .head {
    display: flex;
    margin-bottom: 15px; }
    .serviceUnit .item .head .num {
      border-right: 1px solid #595757;
      font-family: YuMincho, "Yu Mincho", "Hiragino Mincho ProN", "serif";
      font-size: 4.2rem;
      font-weight: bold;
      line-height: 1.1;
      min-height: 50px;
      padding-right: 25px; }
      .serviceUnit .item .head .num span {
        display: block;
        font-size: 1.4rem;
        text-align: center; }
      @media screen and (max-width: 767px) {
        .serviceUnit .item .head .num {
          font-size: 11.5vw;
          padding-right: 5%; }
          .serviceUnit .item .head .num span {
            font-size: 3.5vw; } }
    .serviceUnit .item .head .name {
      align-items: center;
      color: #2972b0;
      font-size: 2.7rem;
      display: flex;
      letter-spacing: 1px;
      padding: 0 22px; }
      .serviceUnit .item .head .name .ico {
        margin-right: 12px;
        width: 45px; }
      @media screen and (max-width: 767px) {
        .serviceUnit .item .head .name {
          font-size: 6vw;
          padding: 0 5%; } }
  .serviceUnit .item .body p {
    font-size: 1.4rem;
    line-height: 2;
    margin-bottom: 20px; }
    @media screen and (max-width: 767px) {
      .serviceUnit .item .body p {
        font-size: 3.7vw;
        line-height: 1.8; } }
  .serviceUnit .item .body .btn {
    margin-left: 0; }
    @media screen and (max-width: 767px) {
      .serviceUnit .item .body .btn {
        margin-left: auto; } }
  .serviceUnit .item .box {
    background: #fff;
    border: 1px solid #2972b0;
    border-bottom: 6px solid #2972b0;
    border-radius: 12px;
    overflow: hidden; }
    .serviceUnit .item .box .heading {
      background: #2972b0;
      color: #fff;
      font-size: 1.9rem;
      padding: 7px 10px 9px;
      position: relative;
      text-align: center; }
      .serviceUnit .item .box .heading::before, .serviceUnit .item .box .heading::after {
        background: #fff;
        border-radius: 10px;
        content: "";
        display: none;
        position: absolute;
        height: 8px;
        width: 8px;
        top: calc(50% - 4px); }
        @media screen and (max-width: 767px) {
          .serviceUnit .item .box .heading::before, .serviceUnit .item .box .heading::after {
            display: none; } }
      .serviceUnit .item .box .heading::before {
        left: 15px; }
      .serviceUnit .item .box .heading::after {
        right: 15px; }
      @media screen and (max-width: 767px) {
        .serviceUnit .item .box .heading {
          font-size: 4.5vw; } }
    .serviceUnit .item .box .detail {
      padding: 20px 25px 22px 25px; }
      .serviceUnit .item .box .detail p {
        font-size: 1.4rem;
        line-height: 1.8;
        margin-bottom: 20px; }
        @media screen and (max-width: 767px) {
          .serviceUnit .item .box .detail p {
            font-size: 3.8vw; } }
      .serviceUnit .item .box .detail .btnWrap .btn:nth-child(1) {
        letter-spacing: -0.3px;
        padding: 8px 20px 8px 6px;
        width: 182px; }
        @media screen and (max-width: 767px) {
          .serviceUnit .item .box .detail .btnWrap .btn:nth-child(1) {
            margin-bottom: 10px; } }
      .serviceUnit .item .box .detail .btnWrap .btn:nth-child(2) {
        width: 155px; }
      @media screen and (max-width: 767px) {
        .serviceUnit .item .box .detail .btnWrap .btn {
          padding-top: 4px !important;
          padding-bottom: 4px !important; } }
      .serviceUnit .item .box .detail .achievements-text {
        font-size: 1.5rem;
        font-weight: 500;
        margin-bottom: 0;
        padding-top: 0; }
        @media screen and (max-width: 767px) {
          .serviceUnit .item .box .detail .achievements-text {
            font-size: 4vw; } }
      .serviceUnit .item .box .detail .achievements-text__weight {
        font-size: 1.7rem;
        font-weight: 900;
        margin-bottom: 0; }
        @media screen and (max-width: 767px) {
          .serviceUnit .item .box .detail .achievements-text__weight {
            font-size: 4vw; } }
  .serviceUnit.for0102 .img {
    left: 0;
    border-radius: 0 36px 36px 0; }
  .serviceUnit.for0102 .txt {
    margin: 0 0 0 auto; }
    @media screen and (max-width: 767px) {
      .serviceUnit.for0102 .txt {
        margin-top: 30px; } }
  .serviceUnit.for03 .img {
    right: 0;
    border-radius: 36px 0 0 36px; }
  .serviceUnit.for03 .txt {
    margin: 0 auto 0 0; }
    .serviceUnit.for03 .txt .head .ico {
      width: 63px; }
  .serviceUnit.for03 .item + .item {
    margin-top: 35px; }
  @media screen and (max-width: 767px) {
    .serviceUnit.for04 .inner, .serviceUnit.for05 .inner, .serviceUnit.for06 .inner {
      display: block; } }
  @media screen and (max-width: 767px) {
    .serviceUnit.for04 .img, .serviceUnit.for05 .img, .serviceUnit.for06 .img {
      width: 100%; } }

.achievements__item {
  margin-bottom: 28px; }
.achievements__flex {
  width: 250px;
  margin: 0 auto !important;
  align-items: center !important;
  justify-content: space-between; }
  @media screen and (max-width: 767px) {
    .achievements__flex {
      width: 65.189vw;
      display: flex; } }
.achievements__heading {
  font-weight: bold;
  position: relative;
  background: #0098cf; }
  .achievements__heading::before, .achievements__heading::after {
    display: block; }

/* 実績系だけ色上書き */
.serviceUnit .item .box .achievements__heading {
  background: #0098cf; }
.serviceUnit .achievements__item .box, .serviceUnit .achievements__item.box {
  border: 1px solid #0098cf;
  border-bottom: 6px solid #0098cf; }
