@charset "utf-8";
/* ========================================================
	template.css => テンプレート用CSS
======================================================== */
html, body {
      width: 100%;
      overflow-x: hidden;
}
html {
      font-size: 62.5%;
      font-feature-settings: "palt";
}
/*print*/
@page {
      margin: 10mm;
      size: 210mm 297mm; /* A4縦サイズの場合 */
}
@media print {
      body {
            -webkit-print-color-adjust: exact; /* 印刷時でも背景色や背景画像を表示 */
            width: 1190px; /* 印刷時の全ページ幅を統一（px数値はお好みで） */
      }
      #header {
            width: calc(100% - 4vw) !important;
            position: relative !important;
      }
      #header.fixed {
            position: relative !important;
      }
      .header_cv {
            position: relative !important;
            top: -170px !important;
            right: auto !important;
            left: calc(100% - 600px) !important;
      }
      img {
            max-width: 100%;
      }
}
/*print end*/
@media screen and (max-width: 1370px) {
      html {
            font-size: 0.8vw;
      }
}
@media screen and (max-width: 960px) {
      html {
            font-size: 1.1vw;
      }
}
@media screen and (max-width: 680px) {
      html {
            font-size: clamp(0.5rem, 0.056rem + 2.22vw, 1rem);
      }
}
body {
      background-color: #fff;
      font-size: 10px;
      font-size: 1rem;
      line-height: 1.7;
      color: var(--col_basic);
      font-family: "Noto Sans JP", "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", "YuGothic", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", "Meiryo", "verdana", sans-serif;
      -webkit-text-size-adjust: 100%;
}
table {
      border-collapse: collapse;
      border-spacing: 0;
      line-height: 1.7;
}
a {
      text-decoration: none;
      transition: color 0.2s, background-color 0.2s, background-image 0.2s, border 0.2s, opacity 0.2s;
      color: #222222;
}
.link_style {
      text-decoration: underline;
      color: #0079AE;
}
@media screen and (min-width: 961px), print {
      .link_style:hover {
            text-decoration: none;
      }
}
label {
      cursor: pointer;
}
input, select, textarea, button {
      margin: 0;
      vertical-align: middle;
      font-family: inherit;
      outline: none;
      font-size: 100%;
      -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
      box-sizing: border-box;
}
button {
      cursor: pointer;
}
iframe {
      vertical-align: middle;
}
@media screen and (max-width: 960px) {
      img {
            max-width: 100%;
            height: auto;
            -webkit-box-sizing: border-box;
            -moz-box-sizing: border-box;
            box-sizing: border-box;
      }
      iframe {
            max-width: 100%;
            height: 200px;
      }
}
@media screen and (min-width: 1200px), print {
      a.tel_link[href^="tel:"] {
            pointer-events: none;
      }
}
/* font
============================================================================================================ */
.mon {
      font-family: "Montserrat", sans-serif;
}
/* pc / tab / sp
============================================================================================================ */
.sp {
      display: none;
}
.pc {
      display: block;
}
.tab {
      display: none;
}
.pc_tab {
      display: block;
}
.tab_sp {
      display: none;
}
.sp_680 {
      display: none;
}
@media screen and (max-width: 960px) {
      .pc {
            display: none !important;
      }
      .tab {
            display: block !important;
      }
      .sp {
            display: none;
      }
      .tab_sp {
            display: block !important;
      }
}
@media screen and (max-width: 680px) {
      .sp_680 {
            display: block;
      }
}
@media screen and (max-width: 480px) {
      .tab {
            display: none !important;
      }
      .sp {
            display: block;
      }
      .pc_tab {
            display: none !important;
      }
      .tab_sp {
            display: block !important;
      }
}
/* sp
============================================================================================================ */
@media screen and (max-width: 960px) {
      *[data-label] img {
            display: none;
      }
      *[data-label]:before {
            content: attr(data-label);
      }
      *[data-label-r]:after {
            content: attr(data-label-r);
      }
}
/* w
============================================================================================================ */
.w17 {
      position: relative;
      display: block;
      max-width: 1728px;
      margin: 0 auto;
}
.w14 {
      position: relative;
      display: block;
      max-width: 1450px;
      margin: 0 auto;
}
.w {
      position: relative;
      display: block;
      max-width: 1180px;
      margin: 0 auto;
}
.w80 {
      position: relative;
      display: block;
      max-width: 840px;
      margin: 0 auto;
}
.f_16 {
      font-size: 16px;
}
.f_14 {
      font-size: 14px;
}
/* section
============================================================================================================ */
@media screen and (max-width: 1800px) {
      .sp_section17_s {
            max-width: 95%;
            margin: auto;
      }
      .sp_section17_l {
            max-width: 90%;
            margin: auto;
      }
}
@media screen and (max-width: 1500px) {
      .sp_section14_s {
            max-width: 95%;
            margin: auto;
      }
      .sp_section14_l {
            max-width: 90%;
            margin: auto;
      }
}
@media screen and (max-width: 1200px) {
      .sp_section_s {
            max-width: 95%;
            margin: auto;
      }
      .sp_section_l {
            max-width: 90%;
            margin: auto;
      }
}
@media screen and (max-width: 900px) {
      .sp_section80_s {
            max-width: 95%;
            margin: auto;
      }
      .sp_section80_l {
            max-width: 90%;
            margin: auto;
      }
}
.section_ll + .section_ll {
      margin-top: 13rem;
}
.section_l + .section_l {
      margin-top: 10rem;
}
.section_ml + .section_ml {
      margin-top: 8rem;
}
.section_m + .section_m {
      margin-top: 6rem;
}
.section_s + .section_s {
      margin-top: 3rem;
}
.section_ss + .section_ss {
      margin-top: 2rem;
}
@media screen and (max-width: 680px) {
      .section_ll + .section_ll {
            margin-top: 8rem;
      }
      .section_l + .section_l {
            margin-top: 7rem;
      }
      .section_ml + .section_ml {
            margin-top: 6rem;
      }
      .section_m + .section_m {
            margin-top: 4em;
      }
      .section_s + .section_s {
            margin-top: 3rem;
      }
      .section_ss + .section_ss {
            margin-top: 2rem;
      }
}
/*section_boder*/
.section_b_b {
      border-bottom: 1px solid var(--bg_gray_ll);
}
/* padding
============================================================================================================ */
.pd_l3 {
      padding-top: 15rem;
      padding-bottom: 15rem;
}
.pdt_l3 {
      padding-top: 15rem;
}
.pdb_l3 {
      padding-bottom: 15rem;
}
.pd_l2 {
      padding-top: 12rem;
      padding-bottom: 12rem;
}
.pdt_l2 {
      padding-top: 12rem;
}
.pdb_l2 {
      padding-bottom: 12rem;
}
.pd_l {
      padding-top: 8rem;
      padding-bottom: 8rem;
}
.pdt_l {
      padding-top: 8rem;
}
.pdb_l {
      padding-bottom: 8rem;
}
.pd_m3 {
      padding-top: 7rem;
      padding-bottom: 7rem;
}
.pdt_m3 {
      padding-top: 7rem;
}
.pdb_m3 {
      padding-bottom: 7rem;
}
.pd_m2 {
      padding-top: 6rem;
      padding-bottom: 6rem;
}
.pdt_m2 {
      padding-top: 6rem;
}
.pdb_m2 {
      padding-bottom: 6rem;
}
.pd_m {
      padding-top: 5rem;
      padding-bottom: 5rem;
}
.pdt_m {
      padding-top: 5rem;
}
.pdb_m {
      padding-bottom: 5rem;
}
.pd_s2 {
      padding-top: 3rem;
      padding-bottom: 3rem;
}
.pdt_s2 {
      padding-top: 3rem;
}
.pdb_s2 {
      padding-bottom: 3rem;
}
.pd_s {
      padding-top: 2.5rem;
      padding-bottom: 2.5rem;
}
.pdt_s {
      padding-top: 2.5rem;
}
.pdb_s {
      padding-bottom: 2.5rem;
}
.pd_ss {
      padding-top: 1.5rem;
      padding-bottom: 1.5rem;
}
.pdt_ss {
      padding-top: 1.5rem;
}
.pdb_ss {
      padding-bottom: 1.5rem;
}
@media screen and (max-width: 680px) {
      .pd_l3 {
            padding-top: 10rem;
            padding-bottom: 10rem;
      }
      .pdt_l3 {
            padding-top: 10rem;
      }
      .pdb_l3 {
            padding-bottom: 15rem;
      }
      .pd_l2 {
            padding-top: 8rem;
            padding-bottom: 8rem;
      }
      .pdt_l2 {
            padding-top: 8rem;
      }
      .pdb_l2 {
            padding-bottom: 8rem;
      }
      .pd_l {
            padding-top: 6rem;
            padding-bottom: 6rem;
      }
      .pdt_l {
            padding-top: 6rem;
      }
      .pdb_l {
            padding-bottom: 6rem;
      }
      .pd_m3 {
            padding-top: 5rem;
            padding-bottom: 5rem;
      }
      .pdt_m3 {
            padding-top: 5rem;
      }
      .pdb_m3 {
            padding-bottom: 5rem;
      }
      .pd_m2 {
            padding-top: 4rem;
            padding-bottom: 4rem;
      }
      .pdt_m2 {
            padding-top: 4rem;
      }
      .pdb_m2 {
            padding-bottom: 4rem;
      }
      .pd_m {
            padding-top: 4.5rem;
            padding-bottom: 4.5rem;
      }
      .pdt_m {
            padding-top: 4.5rem;
      }
      .pdb_m {
            padding-bottom: 4.5rem;
      }
      .pd_s2 {
            padding-top: 3rem;
            padding-bottom: 3rem;
      }
      .pdt_s2 {
            padding-top: 3rem;
      }
      .pdb_s2 {
            padding-bottom: 3rem;
      }
      .pd_s {
            padding-top: 2rem;
            padding-bottom: 2rem;
      }
      .pdt_s {
            padding-top: 2rem;
      }
      .pdb_s {
            padding-bottom: 2rem;
      }
      .pd_ss {
            padding-top: 1.0rem;
            padding-bottom: 1.0rem;
      }
      .pdt_ss {
            padding-top: 1.0rem;
      }
      .pdb_ss {
            padding-bottom: 1.0rem;
      }
}
@media screen and (max-width: 480px) {
      .pd_l3 {
            padding-top: 10rem;
            padding-bottom: 10rem;
      }
      .pdt_l3 {
            padding-top: 10rem;
      }
      .pdb_l3 {
            padding-bottom: 10rem;
      }
      .pd_l2 {
            padding-top: 8rem;
            padding-bottom: 8rem;
      }
      .pdt_l2 {
            padding-top: 8rem;
      }
      .pdb_l2 {
            padding-bottom: 8rem;
      }
      .pd_l {
            padding-top: 6rem;
            padding-bottom: 6rem;
      }
      .pdt_l {
            padding-top: 6rem;
      }
      .pdb_l {
            padding-bottom: 6rem;
      }
      .pd_m3 {
            padding-top: 5rem;
            padding-bottom: 5rem;
      }
      .pdt_m3 {
            padding-top: 5rem;
      }
      .pdb_m3 {
            padding-bottom: 5rem;
      }
      .pd_m2 {
            padding-top: 5rem;
            padding-bottom: 5rem;
      }
      .pdt_m2 {
            padding-top: 5rem;
      }
      .pdb_m2 {
            padding-bottom: 5rem;
      }
      .pd_m {
            padding-top: 4rem;
            padding-bottom: 4rem;
      }
      .pdt_m {
            padding-top: 4rem;
      }
      .pdb_m {
            padding-bottom: 4rem;
      }
      .pd_s2 {
            padding-top: 3rem;
            padding-bottom: 3rem;
      }
      .pdt_s2 {
            padding-top: 3rem;
      }
      .pdb_s2 {
            padding-bottom: 3rem;
      }
      .pd_s {
            padding-top: 2rem;
            padding-bottom: 2rem;
      }
      .pdt_s {
            padding-top: 2rem;
      }
      .pdb_s {
            padding-bottom: 2rem;
      }
      .pd_ss {
            padding-top: 1.0rem;
            padding-bottom: 1.0rem;
      }
      .pdt_ss {
            padding-top: 1.0rem;
      }
      .pdb_ss {
            padding-bottom: 1.0rem;
      }
}
/* btn_____
============================================================================================================ */
.btn > * {
      text-align: center;
      display: inline-flex;
      border: solid 1px var(--col_btn);
      background: var(--col_btn);
      padding: 1em 2.5em;
      color: #fff;
      transition: 0.3s;
      font-weight: 600;
      letter-spacing: 1px;
      box-sizing: border-box;
      border-radius: 0.2em;
      line-height: 1.5;
      box-shadow: var(--box_shadow);
}
@media screen and (min-width: 961px), print {
      .btn > *:hover {
            border: solid 1px var(--col_btn_d);
            background: var(--col_btn_d);
            box-shadow: var(--box_shadow_none);
      }
}
/*arrow
-------------------------------------*/
.btn_arrow {
      position: relative;
      padding: 15px 50px;
}
.btn_arrow:before {
      content: "";
      position: absolute;
      top: 50%;
      right: 1.5em;
      transform: translate(-0%, -50%);
      filter: var(--fil_ff);
      background: url("../images/arrow_01.svg") no-repeat;
      background-size: contain;
      width: 0.5em;
      aspect-ratio: var(--arrow_aspct_01);
}
@media screen and (min-width: 961px), print {
      .btn_arrow:hover:before {
            background: url("../images/btn_arrow_ff.svg") no-repeat;
            background-size: contain;
      }
}
/*recruit　基本ボタン
-----------------------------------------------------------------------------*/
.re_btn > * {
      text-align: center;
      display: inline-flex;
      border: solid 1px var(--col_btn);
      background: var(--col_btn);
      padding: 1em 2.5em;
      color: #fff;
      transition: 0.3s;
      font-weight: 600;
      letter-spacing: 1px;
      box-sizing: border-box;
      line-height: 1.5;
      box-shadow: var(--box_shadow);
}
@media screen and (min-width: 961px), print {
      .re_btn > *:hover {
            border: solid 1px var(--col_btn_d);
            background: var(--col_btn_d);
            box-shadow: var(--box_shadow_none);
      }
}
/*ボタンフォントサイズ
-------------------------------------*/
.btn_fz_l {
      font-size: 1.8rem;
}
@media screen and (max-width: 680px) {
      .btn_fz_l {
            font-size: 1.6rem;
      }
}
/*arrow
-------------------------------------*/
.re_btn_maru {
      position: relative;
      padding: 1em 4em 1em 3em;
}
.re_btn_maru:before, .re_btn_maru:after {
      content: "";
      position: absolute;
      top: 50%;
      transform: translate(-0%, -50%);
      border-radius: 5em;
      aspect-ratio: 1;
      right: 0.5em;
      background: var(--col_yellow);
      transition: all 0.2s ease;
}
.re_btn_maru:before {
      width: 1.6em;
}
.re_btn_maru:after {
      background: #fff;
      width: 0.6em;
      right: calc(0.5em + 0.5em);
}
@media screen and (min-width: 961px), print {
      .re_btn_maru:hover:before {
            opacity: 0;
      }
}
/*mo_btn　基本ボタン
-----------------------------------------------------------------------------*/
.mo_btn > * {
      text-align: center;
      display: inline-flex;
      border: solid 1px var(--col_btn);
      background: var(--col_btn);
      padding: 1em 2.5em;
      color: #fff;
      transition: 0.3s;
      font-weight: 600;
      letter-spacing: 1px;
      box-sizing: border-box;
      border-radius: 0.2em;
      box-shadow: var(--box_shadow);
      line-height: 1.5;
}
@media screen and (min-width: 961px), print {
      .mo_btn > *:hover {
            border: solid 1px var(--col_btn_d);
            background: var(--col_btn_d);
            box-shadow: var(--box_shadow_none);
      }
}
/*btn_blank ボタン形式の外部リンク
-----------------------------------------------------------------------------*/
.mo_btn_ico > * {
      position: relative;
      padding-right: 3em;
}
.mo_btn_ico > *:before {
      content: "";
      position: absolute;
      top: 50%;
      right: 1.5em;
      transform: translate(-0%, -50%);
      filter: var(--fil_ff);
}
.mo_btn_blank > *:before {
      background: url("../images/ico_blank.svg") no-repeat;
      background-size: contain;
      width: 1em;
      aspect-ratio: 1/1;
}
/*btn_blank ボタン形式の外部リンク　左
-----------------------------------------------------------------------------*/
.mo_btn_ico_left > * {
      position: relative;
      padding-left: 3em;
}
.mo_btn_ico_left > *:after {
      content: "";
      position: absolute;
      top: 50%;
      left: 1.5em;
      transform: translate(-0%, -50%);
      filter: var(--fil_ff);
}
.mo_btn_blank_left > *:after {
      background: url("../images/ico_blank.svg") no-repeat;
      background-size: contain;
      width: 1em;
      aspect-ratio: 1/1;
}
/*mo_btn_arrow ボタン矢印
-----------------------------------------------------------------------------*/
.mo_btn_arrow > *:before {
      background: url("../images/arrow_01.svg") no-repeat;
      background-size: contain;
      width: 0.5em;
      aspect-ratio: var(--arrow_aspct_01);
}
/*左*/
.mo_btn_arrow_left > *:after {
      background: url("../images/arrow_01.svg") no-repeat;
      background-size: contain;
      width: 0.5em;
      transform: translate(-0%, -50%) scale(-1, 1) !important;
      left: 1.5em;
      aspect-ratio: var(--arrow_aspct_01);
}
/*mo_btn_pdf pdfアイコン
-----------------------------------------------------------------------------*/
/*左*/
.mo_btn_pdf_left > * {
      padding-left: 4em;
}
.mo_btn_pdf_left > *:after {
      background: url("../images/ico_pdf_00.svg") no-repeat;
      background-size: contain;
      width: 1.6em;
      aspect-ratio: 1 / 1;
}
/*mo_btn_sec セカンダリボタン
-----------------------------------------------------------------------------*/
.mo_btn_sec > * {
      border: solid 1px var(--col_btn_back);
      background: var(--col_btn_back);
      color: #fff;
}
/*mo_text_btn テキストボタン
-----------------------------------------------------------------------------*/
.mo_text_btn > * {
      display: inline-block;
      margin-left: 1.7em;
      position: relative;
      text-decoration: underline;
      color: var(--col_blue);
      font-weight: bold;
}
.mo_text_btn > *:before {
      position: absolute;
      content: "";
      background: url("../images/arrow_text.svg") no-repeat;
      background-size: contain;
      aspect-ratio: 1/1;
      width: 1.3em;
      left: -1.7em;
      top: 0.2em;
}
@media screen and (min-width: 961px), print {
      .mo_text_btn > *:hover {
            text-decoration: none;
      }
}
/*基本ボタン size
----------------------------------------------------------------------------------------------------------------*/
.btn_s > * {
      width: 15em;
      display: block !important;
}
.btn_m > * {
      width: 20em;
      display: block !important;
}
.btn_l > * {
      width: 25em;
      display: block !important;
}
/*ボタンの位置*/
.btn_center > * {
      margin: auto !important;
}
.btn_center_left > * {
      margin: auto !important;
}
.btn_right > * {
      margin: auto 0 auto auto !important;
}
@media screen and (max-width: 680px) {
      .btn_center_left > * {
            margin: inherit !important;
      }
      .btn_sp_center > * {
            margin: auto !important;
      }
}
/*ボタン　カラー
----------------------------------------------------------------------------------------------------------------*/
/*btn_back*/
.btn_blue {
      --col_btn: var(--col_blue) !important;
}
.btn_red {
      --col_btn: var(--col_red) !important;
}
.btn_green {
      --col_btn: var(--col_green_l) !important;
}
.btn_green_b {
      --col_btn: var(--col_green_b) !important;
}
.btn_yellow {
      --col_btn: var(--col_yellow) !important;
}
.btn_pup {
      --col_btn: var(--col_pup) !important;
}
.btn_gray {
      --col_btn: var(--col_btn_back) !important;
}
.btn_ff > * {
      color: var(--col_main);
      --col_btn: var(--col_main) !important;
      background: #fff !important;
      border: solid 1px #fff !important;
}
.btn_ff > *:before, .btn_ff > *:after {
      filter: invert(52%) sepia(76%) saturate(367%) hue-rotate(66deg) brightness(96%) contrast(88%);
}
.btn_ff_g > * {
      color: var(--col_green_b);
      --col_btn: var(--col_green_b) !important;
      background: #fff !important;
      border: solid 1px #fff !important;
}
.btn_ff_g > *:before, .btn_ff_g > *:after {
      filter: invert(43%) sepia(18%) saturate(2383%) hue-rotate(112deg) brightness(105%) contrast(101%);
}
.btn_back > * {
      papadding-right: 0;
      padding-left: 3em;
      --col_btn: var(--col_btn_back) !important;
}
.btn_back > *:before {
      transform: translate(-0%, -50%) scale(-1, 1) !important;
      right: auto;
      left: 1.5em;
}
@media screen and (min-width: 961px), print {
      .btn_blue > *:hover {
            --col_btn: #005da5 !important;
      }
      .btn_red > *:hover {
            --col_btn: #aa0000 !important;
      }
      .btn_green > *:hover {
            --col_btn: #5b9b26 !important;
      }
      .btn_green_b > *:hover {
            --col_btn: #007226 !important;
      }
      .btn_yellow > *:hover {
            --col_btn: #ea7d00 !important;
      }
      .btn_pup > *:hover {
            --col_btn: #4c3887 !important;
      }
      .btn_ff > *:hover {
            background: var(--col_main_l) !important;
      }
      .btn_ff_g > *:hover {
            background: var(--col_main_l) !important;
      }
      .btn_gray > *:hover {
            --col_btn: #878787 !important;
      }
      .btn_back > *:hover {
            --col_btn: #878787 !important;
      }
}
/* midashi______
============================================================================================================ */
/*midashiの汎用版　midashi 01は無し。
----------------------------------------------------------------------------------------------------------------------------------------------------*/
/*midashi_02 h2
-----------------------------------------------------------------------------*/
.midashi_02 {
      font-size: 2.1em;
      font-weight: 500;
      position: relative;
      /*margin-left: 0.4em;*/
      padding: 0.5em 1em 0.5em 1.0em;
      letter-spacing: 1px;
      /*      margin-bottom: 1.5em;*/
      z-index: 0;
}
.midashi_02:before, .midashi_02:after {
      content: "";
      position: absolute;
      z-index: -1;
}
.midashi_02:before {
      background: var(--bg_main_l);
      width: 100%;
      height: 100%;
      left: 0;
      top: 0;
}
.midashi_02:after {
      background: var(--col_main);
      width: 0.7em;
      top: 1.4em;
      left: 0em;
      height: 4px;
}
@media screen and (max-width: 680px) {
      .midashi_02 {
            padding: 0.5em 1em 0.5em 0.2em;
            font-size: 1.6em;
            margin-left: 0em;
            /*    margin-bottom: 1.0em;*/
      }
      .midashi_02:before {
            width: 120%;
            left: -6%;
      }
      .midashi_02:after {
            left: -3%;
      }
      .sp_w12 .midashi_02:after {
            left: -6%;
      }
}
/*midashi_03 h3 
-----------------------------------------------------------------------------*/
.midashi_03 {
      letter-spacing: 1px;
      font-size: 1.75em;
      padding: 0.2em 0 0.2em 1em;
      border-left: 4px solid var(--col_main);
      /*      margin-bottom: 1em;*/
}
@media screen and (max-width: 680px) {
      .midashi_03 {
            font-size: 1.4em;
      }
}
/*midashi_04 h4
-----------------------------------------------------------------------------*/
.midashi_04 {
      letter-spacing: 1px;
      font-size: 1.75em;
      position: relative;
      padding-bottom: 0.5em;
      /*      margin-bottom: 1em;*/
}
.midashi_04:before, .midashi_04:after {
      content: "";
      position: absolute;
      left: 0;
      height: 1px;
      bottom: 0;
}
.midashi_04:before {
      width: 100%;
      background: var(--col_btn_back);
}
.midashi_04:after {
      width: 5em;
      background: var(--col_main);
}
@media screen and (max-width: 680px) {
      .midashi_04 {
            font-size: 1.3em;
      }
}
/*midashi_05 上部に線タイトル 
-----------------------------------------------------------------------------*/
.midashi_05 {
      position: relative;
      padding: 1em 0;
      font-size: 1.5em;
      font-weight: 400;
}
.midashi_05:before {
      position: absolute;
      content: "";
      background: var(--col_main);
      width: 1.6em;
      height: 2px;
      left: 0;
      top: 0;
}
/*midashi_06　左横に線タイトル 
-----------------------------------------------------------------------------*/
.midashi_06 {
      position: relative;
      font-size: 1.25em;
      font-weight: 400;
      /*    padding: 0.8em 0 0.8em 1.2em;*/
      padding: 0em 0 0em 1.2em;
}
.midashi_06:before {
      position: absolute;
      content: "";
      background: var(--col_main);
      width: 0.8em;
      height: 2px;
      left: 0;
      top: 1.0em;
}
/*midashi_07　太字　ややおおきめ　アクセス 
-----------------------------------------------------------------------------*/
.midashi_07 {
      font-size: 1.1em;
      font-weight: 700;
      letter-spacing: 1px;
      /*      margin-bottom: 1.5em;*/
}
/*midashi_08　緑の文字　.mo_card_list_title
-----------------------------------------------------------------------------*/
.midashi_08 {
      text-align: center;
      color: var(--col_green_b);
      font-size: 1.1em;
}
/*midashi_09　緑の下線　
-----------------------------------------------------------------------------*/
.midashi_09 {
      padding-bottom: 1em;
      border-bottom: 1px solid var(--col_green_b);
      margin-bottom: 1em;
}
/*midashi_10　上下に緑の線
-----------------------------------------------------------------------------*/
.midashi_10 {
      background: #fff;
      position: relative;
      padding: 3em 1em;
      border-top: 2px solid var(--col_main);
      border-bottom: 2px solid var(--col_main);
}
@media screen and (max-width: 680px) {
      .midashi_10 {
            padding: 2em 1em;
      }
}
/*midashi_11　左に●
-----------------------------------------------------------------------------*/
.midashi_11 {
      position: relative;
      padding-left: 1.5em;
}
.midashi_11:before {
      content: "●";
      color: var(--col_yellow);
      position: absolute;
      font-size: 0.9em;
      top: 0.2em;
      left: 0;
}
/* recruit用見出し
====================================================*/
.re_midashi_02 {
      font-size: 2.1em;
      font-weight: 500;
      position: relative;
      padding: 0.5em 1em 0.5em 1.0em;
      letter-spacing: 1px;
      z-index: 0;
}
.re_midashi_02:before, .re_midashi_02:after {
      content: "";
      position: absolute;
      z-index: -1;
}
.re_midashi_02:before {
      background: var(--bg_main_l);
      width: 100%;
      height: 100%;
      left: 0;
      top: 0;
}
.re_midashi_02:after {
      background: var(--col_main);
      top: 0;
      left: 0;
      height: 100%;
      width: 4px;
}
.re_midashi_02 span {
      font-size: 0.8em;
}
@media screen and (max-width: 680px) {
      .re_midashi_02 {
            padding: 0.5em 1em 0.5em 0.8em;
            font-size: 1.6em;
            margin-left: 0em;
      }
      .re_midashi_02:before {
            width: 120%;
            left: -6%;
      }
      .re_midashi_02:after {
            left: -3%;
      }
      .sp_w12 .re_midashi_02:after {
            left: -6%;
      }
}
/*re_midashi_03*/
.re_midashi_03 {
      font-size: 1.5em;
      text-align: left;
      letter-spacing: 6px;
      border-left: none;
      padding: 0 0 0 1.2em;
      position: relative;
}
.re_midashi_03:before {
      content: "";
      display: inline-block;
      width: 0.8em;
      height: 2px;
      background: #00bb93;
      position: absolute;
      left: 0;
      top: 0.75em;
}
@media screen and (max-width: 680px) {
      .re_midashi_03 {
            font-size: 1.4em;
	            letter-spacing: 3px;
      }
}
/*re_midashi_04*/
.re_midashi_04 {
      letter-spacing: 1px;
      font-size: 1.5em;
      position: relative;
      padding-bottom: 0.5em;
}
.re_midashi_04:before, .re_midashi_04:after {
      content: "";
      position: absolute;
      left: 0;
      height: 1px;
      bottom: 0;
}
.re_midashi_04:before {
      width: 100%;
      background: var(--col_btn_back);
}
/*re_midashi_05*/
.re_midashi_05 {
      position: relative;
      padding: 1em 0;
      font-size: 1.5em;
      font-weight: 600;
}
.re_midashi_05:before {
      position: absolute;
      content: "";
      background: var(--col_main);
      width: 1.6em;
      height: 2px;
      left: 0;
      top: 0;
}
.re_midashi_06 {
      background: var(--bg_main_l);
      position: relative;
      font-size: 1.3em;
      font-weight: 600;
      padding: 0.5em 0 0.5em 0.5em;
}
/* title_____________________________________________________
============================================================================================================ */
.title_7 {
      font-size: 7rem;
}
.title_6 {
      font-size: 6rem;
}
.title_llll {
      font-size: 5.6rem;
}
.title_lll_m {
      font-size: 4.3rem;
}
.title_lll {
      font-size: 4.0rem;
}
.title_ll_36 {
      font-size: 3.6rem;
}
.title_ll_34 {
      font-size: 3.4rem;
}
.title_ll_30 {
      font-size: 3.0rem;
}
.title_ll {
      font-size: 3.2rem;
}
.title_l {
      font-size: 2.8rem;
}
.title_ml {
      font-size: 2.6rem;
}
.title_m {
      font-size: 2.4rem;
}
.title_sm {
      font-size: 2.2rem;
}
.title_s {
      font-size: 2.0rem;
}
.title_ss {
      font-size: 1.8rem;
}
@media screen and (max-width: 680px) {
      .title_7 {
            font-size: 5.6rem;
      }
      .title_6 {
            font-size: 4.8rem;
      }
      .title_llll {
            font-size: 3.6rem;
      }
      .title_ll_34 {
            font-size: 3.4rem;
      }
      .title_lll_m {
            font-size: 3.3rem;
      }
      .title_lll {
            font-size: 3.2rem;
      }
      .title_ll_36 {
            font-size: 3.0rem;
      }
      .title_ll_30 {
            font-size: 2.4rem;
      }
      .title_ll {
            font-size: 2.4rem;
      }
      .title_l {
            font-size: 2.2rem;
      }
      .title_ml {
            font-size: 2.1rem;
      }
      .title_m {
            font-size: 1.9rem;
      }
      .title_sm {
            font-size: 1.8rem;
      }
      .title_s {
            font-size: 1.7rem;
      }
      .title_ss {
            font-size: 1.65rem;
      }
}
/* デザイン見出し
====================================================*/
/*b_b
-------------------------------------------------------*/
.b_b {
      border-bottom: 2px solid #000;
      padding-bottom: 0.1em;
}
/*midashi_bg
-------------------------------------------------------*/
.midashi_bg {
      background: var(--bg_blue_l);
      padding: 0.3em 1em;
}
/*midashi_sq
-------------------------------------------------------*/
.midashi_sq {
      position: relative;
      padding-left: 0.8em;
}
.midashi_sq:before {
      position: absolute;
      left: 0;
      top: 0.4em;
      content: "";
      width: 0.5em;
      aspect-ratio: 1/1;
      background: #A5CBF5;
}
/*midashi_diagonal ななめ線
-------------------------------------------------------*/
.midashi_diagonal {
      position: relative;
      font-weight: bold;
      margin-bottom: 0.5em;
      display: inline-block;
}
.midashi_diagonal:before, .midashi_diagonal:after {
      content: "";
      background: #000;
      width: 2px;
      height: 100%;
      position: absolute;
      border-radius: 3px;
      top: 50%;
}
.midashi_diagonal:before {
      left: -1em;
      transform: translate(-0%, -50%) rotate(-30deg);
}
.midashi_diagonal:after {
      right: -1em;
      transform: translate(-0%, -50%) rotate(30deg);
}
.col_pink.midashi_diagonal:before, .col_pink.midashi_diagonal:after {
      background: var(--col_pink);
}
.col_orange.midashi_diagonal:before, .col_orange.midashi_diagonal:after {
      background: var(--col_orange);
}
/*title_ico　アイコンつき見出し　
====================================================*/
.title_ico {
      margin-bottom: 1em;
}
.title_ico span {
      position: relative;
      padding-top: 2.0em;
      display: inline-block;
      letter-spacing: 1px;
}
.title_ico span:before {
      content: "";
      position: absolute;
      top: 0;
      left: 50%;
      transform: translate(-50%, -0%);
}
@media screen and (max-width: 680px) {
      .title_ico span {
            padding-top: 1.8em;
      }
}
/*アイコンが左*/
.title_ico.title_ico_left {
      text-align: left;
}
.title_ico.title_ico_left span {
      padding-top: 0;
      padding-left: 2.0em;
}
.title_ico.title_ico_left span:before {
      top: auto;
      left: 0;
      transform: translate(-0%, -0%);
}
/*アイコン別*/
.title_info span:before {
      background: url("../images/ico_info.svg") no-repeat;
      background-size: contain;
      aspect-ratio: 59/61;
      width: 1.8em;
}
.title_service span:before {
      background: url("../images/ico_service.svg") no-repeat;
      background-size: contain;
      aspect-ratio: 83/53;
      width: 2.5em;
}
.title_action span:before {
      background: url("../images/ico_action.svg") no-repeat;
      background-size: contain;
      aspect-ratio: 52/63;
      width: 1.8em;
}
.title_company span:before {
      background: url("../images/ico_company.svg") no-repeat;
      background-size: contain;
      aspect-ratio: 44/53;
      width: 1.4em;
}
@media screen and (max-width: 680px) {
      .title_info span:before {
            width: 1.6em;
      }
      .title_service span:before {
            width: 2.2em;
      }
      .title_action span {
            padding-top: 2.3em;
      }
}
/* table
============================================================================================================ */
table.basic {
      width: 100%;
      border: 1px solid #d9d9d9;
      line-height: 1.6;
      table-layout: fixed;
}
table.basic th, table.basic td {
      padding: 0.6em 1em;
      border: 1px solid #d9d9d9;
      word-wrap: break-word;
}
table.basic th {
      background: #f2f2f2;
}
/*table width*/
table .tw10 {
      width: 10%;
}
table .tw15 {
      width: 15%;
}
table .tw20 {
      width: 20%;
}
table .tw25 {
      width: 25%;
}
table .tw30 {
      width: 30%;
}
table .tw35 {
      width: 35%;
}
table .tw40 {
      width: 40%;
}
table .w45 {
      width: 45%;
}
table .tw50 {
      width: 50%;
}
@media screen and (max-width: 960px) {
      table.basic {
            border-width: 2px;
            font-size: 1.2rem;
            line-height: 1.5;
      }
      table.basic th, table.basic td {
            padding: 0.5em;
      }
      table.basic th {
            width: 10%;
      }
      table.basic td {
            width: 20%;
      }
}
/* li
============================================================================================================ */
/* square
------------------------------------------------------------- */
ul.square > li {
      position: relative;
      padding-left: 1em;
      margin-bottom: 0.5em;
}
ul.square > li:before {
      content: "■";
      position: absolute;
      left: 0;
}
/* circle
------------------------------------------------------------- */
ul.circle > li {
      position: relative;
      padding-left: 1em;
      margin-bottom: 0.5em;
}
ul.circle > li:before {
      content: "●";
      position: absolute;
      left: 0;
}
/* asterisk
------------------------------------------------------------- */
ul.asterisk > li {
      position: relative;
      padding-left: 1em;
      margin-bottom: 0.5em;
}
ul.asterisk > li:before {
      content: "＊";
      position: absolute;
      left: 0;
}
/* disc
------------------------------------------------------------- */
ul.disc > li {
      position: relative;
      padding-left: 1em;
      margin-bottom: 0.5em;
}
ul.disc > li:before {
      content: "・";
      position: absolute;
      left: 0;
}
/* notes
------------------------------------------------------------- */
ul.notes > li {
      position: relative;
      padding-left: 1em;
      margin-bottom: 0.5em;
}
ul.notes > li:before {
      content: "※";
      position: absolute;
      left: 0;
}
/* decimal 数字
------------------------------------------------------------- */
ol.decimal {
      list-style-type: decimal;
}
ol.decimal > li {
      margin-left: 1.2em;
      margin-bottom: 0.5em;
}
/* img
============================================================================================================ */
.ofi {
      width: 100%;
      object-fit: cover;
      font-family: 'object-fit: cover;'
}
.ofi.cont {
      object-fit: contain;
      font-family: 'object-fit: contain;'
}
.img_max {
      max-width: 100%;
}
.img_auto {
      width: auto;
}
.img_80 {
      width: 80%;
      margin: auto;
}
.img_b {
      border: solid 1px var(--bg_gray_ll);
}
/* background bg____________________
============================================================================================================ */
.bg_main {
      background: var(--col_main);
}
.bg_ff {
      background: #fff;
}
.bg_main_l {
      background: var(--bg_main_l);
}
.bg_gray_ll {
      background: var(--bg_gray_ll);
}
.bg_gray_l {
      background: var(--bg_gray_l);
}
.bg_black {
      background: var(--bg_black);
}
/* color col______
===================================================*/
.col_main {
      color: var(--col_main);
}
.col_gray {
      color: var(--col_gray);
}
.col_green {
      color: var(--col_green);
}
.col_green_l {
      color: var(--col_green_l);
}
.col_green_b {
      color: var(--col_green_b);
}
.col_green_b_l {
      color: var(--col_green_b_l);
}
.col_blue {
      color: var(--col_blue);
}
.col_red {
      color: var(--col_red);
}
.col_yellow {
      color: var(--col_yellow);
}
.col_pup {
      color: var(--col_pup);
}
.col_ff {
      color: #fff;
}
/* indent
========================================= */
.indent_01 {
      padding-left: 1em;
      text-indent: -1em;
}
.indent_02 {
      padding-left: 2em;
      text-indent: -2em;
}
.indent_03 {
      padding-left: 3em;
      text-indent: -3em;
}
/* lead
========================================= */
.lead {
      line-height: 2.0;
}
.lead_18 {
      font-size: 1.8rem;
      line-height: 2;
}
.lead_18_02 {
      font-size: 1.8rem;
      line-height: 1.8;
}
.text_inner > p + p {
      margin-top: 1em;
}
@media screen and (max-width: 680px) {
      .lead_18 {
            font-size: 1.6rem;
      }
      .lead_18_02 {
            font-size: 1.6rem;
      }
}
/* fbox
============================================================================================================ */
.fbox {
      display: flex;
}
@media screen and (min-width: 681px), print {
      .fbox.f_pc {
            display: flex;
      }
      .fbox.f_sp {
            display: block;
      }
}
@media screen and (max-width: 680px) {
      .fbox.f_pc {
            display: block;
      }
      .fbox.f_sp {
            display: flex;
      }
}
.ff_re {
      flex-flow: row-reverse;
}
.jc_sp {
      justify-content: space-between!important;
}
.jc_center {
      justify-content: center!important;
}
.jc_end {
      justify-content:end!important;
}
.it_center {
      align-items: center!important;
}
.it_start {
      align-items: flex-start!important;
}
.it_end {
      align-items: flex-end!important;
}

/*分割比
----------------------------------------------*/
/*fbox_col2*/
.fbox_col2 {
      gap: 3%;
      flex-wrap: wrap;
}
.fbox_col2 > * {
      width: 48.5%;
}
@media screen and (max-width: 680px) {
      .fbox_col2.f_pc > * {
            width: auto;
            margin-top: 3%;
      }
      .fbox_col2.f_pc > * + * {
            margin-top: 8%
      }
}
/*fbox_col3*/
.fbox_col3 {
      gap: 2%;
      flex-wrap: wrap;
}
.fbox_col3 > * {
      width: 32%;
}
@media screen and (max-width: 680px) {
      .fbox_col3.f_pc > * {
            width: auto;
      }
      .fbox_col3.f_pc > * + * {
            margin-top: 8%
      }
}
/*fbox_4_6*/
.fbox_4_6 {
      gap: 5%;
}
.fbox_4_6 > *:nth-child(1) {
      width: 37%;
}
.fbox_4_6 > *:nth-child(2) {
      width: 58%;
}
@media screen and (max-width: 680px) {
      .fbox_4_6.f_pc > *:nth-child(1) {
            width: auto;
      }
      .fbox_4_6.f_pc > *:nth-child(2) {
            width: auto;
      }
      .fbox_4_6.f_pc > * + * {
            margin-top: 8%
      }
}
/*fbox_6_4*/
.fbox_6_4 {
      gap: 5%;
}
.fbox_6_4 > *:nth-child(1) {
      width: 58%;
}
.fbox_6_4 > *:nth-child(2) {
      width: 37%;
}
@media screen and (max-width: 680px) {
      .fbox_6_4.f_pc > *:nth-child(1) {
            width: auto;
      }
      .fbox_6_4.f_pc > *:nth-child(2) {
            width: auto;
      }
      .fbox_6_4.f_pc > * + * {
            margin-top: 8%
      }
}
/*fbox_7_3*/
.fbox_7_3 {
      gap: 5%;
}
.fbox_7_3 > *:nth-child(1) {
      width: 65%;
}
.fbox_7_3 > *:nth-child(2) {
      width: 30%;
}
@media screen and (max-width: 680px) {
      .fbox_7_3.f_pc > *:nth-child(1) {
            width: auto;
      }
      .fbox_7_3.f_pc > *:nth-child(2) {
            width: auto;
      }
      .fbox_7_3.f_pc > * + * {
            margin-top: 8%
      }
}
/*fbox_3_7*/
.fbox_3_7 {
      gap: 5%;
}
.fbox_3_7 > *:nth-child(1) {
      width: 30%;
}
.fbox_3_7 > *:nth-child(2) {
      width: 65%;
}
@media screen and (max-width: 680px) {
      .fbox_3_7.f_pc > *:nth-child(1) {
            width: auto;
      }
      .fbox_3_7.f_pc > *:nth-child(2) {
            width: auto;
      }
      .fbox_3_7.f_pc > * + * {
            margin-top: 8%
      }
}
/*fbox_8_2*/
.fbox_8_2 {
      gap: 5%;
}
.fbox_8_2 > *:nth-child(1) {
      width: 80%;
}
.fbox_8_2 > *:nth-child(2) {
      width: 15%;
}
@media screen and (max-width: 680px) {
      .fbox_8_2.f_pc > *:nth-child(1) {
            width: auto;
      }
      .fbox_8_2.f_pc > *:nth-child(2) {
            width: auto;
      }
      .fbox_8_2.f_pc > * + * {
            margin-top: 8%
      }
      .fbox_8_2 > *:nth-child(1) {
            width: 60%;
      }
      .fbox_8_2 > *:nth-child(2) {
            width: 35%;
      }
}
/*fbox_2_8*/
.fbox_2_8 {
      gap: 5%;
}
.fbox_2_8 > *:nth-child(1) {
      width: 15%;
}
.fbox_2_8 > *:nth-child(2) {
      width: 80%;
}
@media screen and (max-width: 680px) {
      .fbox_2_8.f_pc > *:nth-child(1) {
            width: auto;
      }
      .fbox_2_8.f_pc > *:nth-child(2) {
            width: auto;
      }
      .fbox_2_8 > *:nth-child(1) {
            width: 35%;
      }
      .fbox_2_8.f_pc > * + * {
            margin-top: 8%
      }
      .fbox_2_8 > *:nth-child(2) {
            width: 60%;
      }
}
/* border_box
============================================================================================================ */
.border_box {
	background: #fff;
      border: solid 1px var(--col_main);
      border-radius: var(--rudius_pc);
}
.box_pd {
      padding: 1.5em;
}
@media screen and (max-width: 680px) {
      .box_pd {
            padding: 1.0em;
      }
}
/* movie
============================================================================================================ */
/*movie モーダル*/
.youtube-player-container {
      display: none;
}
.html5-player-container {
      display: none;
}
#video-popup {
      display: none;
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background-color: rgba(0, 0, 0, 0.8);
      z-index: 9999;
}
#video-popup .popup_w {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      width: 80%;
      max-width: 800px;
      background-color: #000;
      border-radius: 5px;
      box-shadow: 0 0 20px rgba(0, 0, 0, 0.5);
}
#close-popup {
      position: absolute;
      top: -35px;
      right: -35px;
      width: 30px;
      height: 30px;
      background: none;
      border: none;
      color: white;
      font-size: 24px;
      cursor: pointer;
      z-index: 10000;
}
#youtube-player-container, #html5-player-container {
      position: relative;
      width: 100%;
      padding-top: 56.25%; /* 16:9 アスペクト比 */
}
#youtube-player {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
}
#html5-player {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background-color: #000;
}
/*floating_banner
----------------------------------------------------------------------------------------------*/
.floating_banner {
	max-width: 300px;
	position: fixed;
	bottom: 30px;
	right: 70px;
	z-index: 100;
	display: none;
}
.floating_banner a {
	display: block;
}
.floating_banner a img{
	    filter: drop-shadow(0px 0px 7px rgba(0, 0, 0, 0.5));
}
.floating_banner p {
	margin-bottom: 0;
}
.floating_banner p.close {
	position: absolute;
	left: -16px;
	top: -16px;
}
.floating_banner p.close img {
	vertical-align: top;
}
.floating_banner p.close a {
	display: block;
	width: 45px;
	height: 45px;
	padding: 10px;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}
@media screen and (max-width: 680px) {
	.floating_banner {
		max-width: 90vw;
		bottom: 76px;
		right: inherit;
		left: 5vw;
	}
	.floating_banner p.close a {
		width: 43px;
		height: 43px;
	}
}