/* ===============================
service_common
=============================== */

/* ===============================
cat_title_page_column
=============================== */
.md_main_header:has(.cat_title_page_lower) {
  --diag_drop: max(114px, 9.5vw);
  min-height: calc(181px + var(--diag_drop));
}
.cat_title_page_column {
  display: flex;
}
.cat_title_page {
  margin-right: 35px;
  letter-spacing: 0.1em;
}
.cat_title_page .en {
  display: block;
}
.cat_title_page .ja {
  display: block;
  margin-top: 10px;
  font-size: calc(17 / 16 * 1rem);
  letter-spacing: 0.1em;
}
.cat_title_page_lower {
  flex: 1;
}
.cat_title_page_lower .en {
  display: block;
  margin-top: 12px;
  font-size: calc(30 / 16 * 1rem);
  letter-spacing: 0.1em;
  line-height: 1.5;
}
.cat_title_page_lower .ja {
  display: block;
  margin-top: 2px;
  font-size: calc(17 / 16 * 1rem);
  letter-spacing: 0.1em;
}

/* SP調整 ------------------ */
@media screen and (max-width:768px) {
  .md_main_header:has(.cat_title_page_lower) {
    --diag_drop: max(38px, 11.88vw);
    min-height: calc(221px + var(--diag_drop));
  }
  .cat_title_page_column {
    display: block;
  }
  .cat_title_page {
    margin: 0;
    padding-bottom: 15px;
  }
  .cat_title_page .en img {
    width: auto;
    height: 30px;
  }
  .cat_title_page .en.sp_size_2 img {
    height: 66px;
  }
  .cat_title_page_lower .en {
    margin: 0;
    font-size: calc(22 / 16 * 1rem);
    letter-spacing: 0.08em;
    line-height: 1.05;
  }
  .cat_title_page_lower .ja {
    margin-top: 7px;
  }
}

/* ===============================
cat_bl
=============================== */
.cat_header {
  max-width: 960px;
  margin: 0 auto 95px;
  letter-spacing: 0.1em;
  line-height: 2.06;
}
.cat_bl {
  max-width: 850px;
  margin: 0 auto;
  letter-spacing: 0.1em;
  line-height: 2.06;
}
.cat_footer {
  max-width: 960px;
  margin: 115px auto 85px;
  letter-spacing: 0.1em;
  line-height: 2.06;
}
.cat_title {
  margin-bottom: 1em;
  color: var(--color_green);
  font-size: calc(28 / 16 * 1rem);
  letter-spacing: 0.1em;
  line-height: 1.6;
}

/* SP調整 ------------------ */
@media screen and (max-width:768px) {
  .cat_header {
    margin: 35px auto 3.7em;
    padding: 0 var(--sp_side_gap);
  }
  .cat_bl {
    padding: 0 var(--sp_side_gap);
  }
  .cat_footer {
    margin: 70px auto 55px;
    padding: 0 var(--sp_side_gap);
  }
  .cat_title {
    margin-bottom: .7em;
    font-size: calc(20 / 16 * 1rem);
  }
}

/* ===============================
cat_columns
=============================== */
.cat_columns {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.cat_columns + .cat_columns {
  margin-top: 60px;
}
.cat_column {
  width: 400px;
}
.cat_column.__text {
  width: 380px;
}

/* SP調整 ------------------ */
@media screen and (max-width:768px) {
  .cat_columns {
    display: block;
  }
  .cat_columns + .cat_columns {
    margin-top: 43px;
  }
  .cat_column {
    width: auto;
  }
  .cat_column.__text {
    width: auto;
  }
  .cat_column + .cat_column {
    margin-top: 30px;
  }
}

/* ===============================
cat_button
=============================== */
.cat_button_link {
  display: block;
  max-width: 300px;
  margin: 0 auto;
  padding: 14px 15px 14px calc(15px + 0.01em);
  background-color: var(--color_green);
  border: 2px solid var(--color_green);
  border-radius: 15px;
  color: #fff;
  font-size: calc(20 / 16 * 1rem);
  text-align: center;
  letter-spacing: 0.1em;
  line-height: 1.6;
}

/* hoverデバイス ----------- */
@media (any-hover: hover) {
  .cat_button_link {
    transition:
    background-color .2s,
    color .2s,
    border-color .2s
    ;
  }
  .cat_button_link:hover {
    opacity: 1;
    background-color: #fff;
    color: var(--color_green);
    border-color: var(--color_green);
  }
}

/* SP調整 ------------------ */
@media screen and (max-width:768px) {
  .cat_button_link {
    max-width: 230px;
    padding: 7px 10px 7px calc(10px + 0.01em);
    font-size: calc(17 / 16 * 1rem);
  }
}

/* ===============================
other
=============================== */

/* SP調整 ------------------ */
@media screen and (max-width:768px) {
  .cat_img_max400 {
    display: block;
    margin: 0 auto;
    width: min(400px, 78.125vw);
  }
}
