/* ========================================================
	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_text);
      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: #212121;
}

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;
      }
}

/* 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);
      }
}



/* ヘッダー
============================================================================================================ */
#header {
      height: 90px;
      padding-left: 2vw;
      font-size: 1.4rem;
      position: fixed;
      width: 100%;
      z-index: 100;
      background: #fff;
      box-sizing: border-box;
}

#header .head {
      display: flex;
      align-items: center;
      justify-content: space-between;
}

@media screen and (max-width: 960px) {
      #header .head {
            height: 100%;
      }
}

/* logo */
#header .logo {
      position: relative;
      aspect-ratio: 340/67;
      width: 34rem;
}

#header .logo img {
      width: 100%;
}

@media screen and (max-width: 960px) {
      #header {
            height: 60px;
      }

      #header .logo {
            width: 20rem;
      }
}


/* globalnavi nav_______*/
@media screen and (min-width:961px),
print {
      #header nav #global {
            display: flex;
      }

      #header nav #global>li {
            position: relative;
            z-index: 2;
      }

      #header nav #global>li a {
            display: flex;
            align-items: center;
            padding: 0 1.5vw;
            height: 90px;
            position: relative;
      }

      #header nav #global>li a:hover {
            color: var(--col_main_light);
      }


      #header nav #global>li>ul {
            position: absolute;
            left: 0;
            top: 90px;
            /*高さ-10px*/
            height: 0;
            overflow: hidden;
            opacity: 0;
            z-index: 10;
            min-width: 100%;
            transition: all 0.15s ease;
      }



      #header nav #global>li>ul li a {
            background: var(--col_white);
            padding: 1em 3em;
            height: auto;
            min-width: 100%;
            white-space: nowrap;
            box-sizing: border-box;
      }

      #header nav #global>li>ul li a:after {
            content: none;
      }

      /*    #header nav #global>li>ul li a:hover {
            background: #063306;
            color: #fff;
            opacity: 1;
      }
 */
      #header nav #global li:hover ul {
            overflow: visible;
            opacity: 1;
            height: auto;
            top: 90px;
      }

      #header nav .nav_down {
            display: none;
      }

      .header_sp_cv {
            display: none;
      }
}

/* sp nav_____ */
@media screen and (max-width: 960px) {
      .header_sp_cv {
            display: block;
      }

      #header nav #global {
            display: block;
            margin-right: 0;
            font-size: 1.4rem;
      }

      #header nav {
            background: var(--col_white);
            position: fixed;
            overflow: hidden;
            height: 0;
            top: 60px;
            right: 0;
            width: 100%;
            pointer-events: none;
            opacity: 0;
            visibility: hidden;
            transition: all 0.3s ease;

            /*  開発 */

            /*    height: -webkit-calc(100% - 60px);
            height: calc(100% - 60px);
            visibility: visible;
            opacity: 1; */

      }

      #header nav>div {
            height: 100%;
            overflow-y: scroll;
            -webkit-overflow-scrolling: touch;
      }

      #header nav>div>div {
            padding-top: 2em;
            height: calc(100% - 2em);
            overflow-y: auto;
            background: var(--col_white);
            pointer-events: auto;
      }

      #header nav #global>li {
            position: relative;
            margin: auto 1em;

      }

      #header nav #global>li>a {
            display: block;
            padding: 1.0em 2em 1.0em 1em;
            height: auto;
            position: relative;


      }


      #header nav #global>li>a:before {
            content: "";
            position: absolute;
            left: 0;
            top: 2.1em;
            width: 0.5em;
            height: 1px;
            background: var(--col_text);
      }

      #header nav #global .has_snav>a {
            padding: 1.0em 2em 1.0em 0;
      }

      #header nav #global .has_snav>a:before {
            content: none;
      }


      #header nav #global ul {
            background: var(--col_white);
            height: 0;
            visibility: hidden;
            opacity: 0;
            transition: all 0.2s;
      }

      #header nav #global ul.open {
            height: auto;
            visibility: visible;
            opacity: 1;
      }



      #header nav #global .has_snav {
            border-bottom: 1px solid var(--bg_gray_dark);
      }

      #header nav #global li.has_snav:first-child {
            border-top: 1px solid var(--bg_gray_dark);
      }

      /* 第二 */

      #header nav #global>li>ul a {
            display: block;
            padding: 1em 1em 1em 1em;
            height: auto;
            position: relative;
            margin: auto 1em auto 1em;
            position: relative;


      }

      #header nav #global>li>ul a:before {
            content: "";
            position: absolute;
            left: 0;
            top: 1.7em;
            width: 0.5em;
            height: 1px;
            background: var(--col_text);
      }

      /* 矢印 */
      #header nav .nav_down {
            position: absolute;
            right: 0;
            top: 0;
            width: 6em;
            height: 4em;
            z-index: 10;
      }


      #header nav #global .has_snav>.nav_down:after {
            content: "";
            position: absolute;
            margin: auto;
            top: 0;
            bottom: 0;
            right: 12px;
            width: 8px;
            height: 8px;
            border-top: 1px solid var(--col_main);
            border-right: 1px solid var(--col_main);
            transform: rotate(135deg);
            -webkit-transition: all 0.15s ease;
            transition: all 0.15s ease;
      }



      #header nav #global .has_snav>.nav_down.open:after {
            transform: translateY(0) rotate(-45deg);
            top: 5px;
      }

      /*open*/
      #header.open nav {
            height: -webkit-calc(100% - 60px);
            height: calc(100% - 60px);
            visibility: visible;
            opacity: 1;
      }
}

/* ヘッダー お問い合わせボタン
------------------------------------------------------------- */
@media screen and (min-width:961px),
print {
      .header_contact_btn a {
            display: inline-block;
            background: var(--col_main_dark);
            border: solid 1px var(--col_main_dark);
            box-sizing: border-box;
            color: var(--col_white);
            padding: 0 1em;
            transition: all 0.3s ease;
      }

      .header_contact_btn a span {
            position: relative;
            display: inline-block;
            padding-left: 1.5em;
      }

      .header_contact_btn a span:before {
            content: "";
            background: url("../images/ico_mail.svg") no-repeat;
            background-size: contain;
            width: 1em;
            aspect-ratio: 20/16;
            position: absolute;
            left: 0;
            top: 50%;
            transform: translate(-0%, -50%);
            filter: brightness(0) invert(1) !important;
      }

      #header nav #global>li.header_contact_btn:hover a:after {
            content: none;
      }


      .header_contact_btn {
            position: fixed;
            right: 0;
            top: 0;
      }

      .header_contact_btn a:hover {
            background: var(--col_main_light);
            border: solid 1px var(--col_main_light);
            color: var(--col_white) !important;
      }

}

/* ヘッダー お問い合わせボタン sp
------------------------------------------------------------- */
@media screen and (max-width: 960px) {
      .header_sp_cv {
            background: url(../images/cv_bg_sp.png) no-repeat;
            background-size: cover;
            padding: 2em 0;
            color: var(--col_white);
      }

      .header_sp_cv .cv_contact_info {
            max-width: 27em;
            margin: auto;
      }
}

@media screen and (max-width: 680px) {
      .header_sp_cv .cv_contact_info {
            max-width: 80%;
      }
}

/* nav ハンバーガー
------------------------------------------------------------- */
#header .nav_btn {
      display: none;
}

@media screen and (max-width: 960px) {
      #header .nav_btn {
            display: block;
            position: absolute;
            right: 0;
            top: 0;
            z-index: 10;
            background: var(--col_main_dark);
      }

      #header .nav_btn>span {
            position: relative;
            display: block;
            width: 60px;
            height: 60px;
            z-index: 2;
      }

      #header .nav_btn:before,
      #header .nav_btn>span:before,
      #header .nav_btn>span:after {
            content: "";
            position: absolute;
            left: 15px;
            right: 15px;
            top: 40%;
            height: 2px;
            margin-top: -1px;
            background-color: var(--col_white);
            transition: all 0.2s;
      }

      #header .nav_btn>span:before {
            transform: translateY(-8px);
      }

      #header .nav_btn>span:after {
            transform: translateY(8px);
      }

      /* open */
      #header.open .nav_btn:before {
            opacity: 0;
      }

      #header.open .nav_btn>span:before {
            transform: translateY(0) rotate(45deg);
      }

      #header.open .nav_btn>span:after {
            transform: translateY(0) rotate(-45deg);
      }

      /*menu*/
      #header .nav_btn>span>span {
            position: absolute;
            bottom: 2px;
            font-size: 0.8em;
            left: 50%;
            transform: translate(-50%, -0%);
            color: var(--col_white);
      }
}

/* fixed
------------------------------------------------------------- */
#header.fixed {
      box-shadow: 0px 4px 3px rgba(0, 0, 0, 0.12);
}

@media print {
      #header {
            position: relative !important;
      }

      #header.fixed {
            position: relative !important;
      }
}

/* footer
============================================================================================================ */
#footer {
      background: var(--bg_gray_light);
      color: var(--col_text);
      font-size: 1.4rem;
}

.foot_area {
      padding: 5em 0 2em 0;
      max-width: 1200px;
      margin: auto;
      display: flex;
      justify-content: space-between;
      gap: 0 15em;
}

.foot_info {
      flex: 1;
}

.foot_logo {
      margin-bottom: 2em;
}

.foot_logo a {
      display: inline-block;
}

.foot_logo img {
      width: 18em;
      height: auto;
}

.foot_company {
      font-weight: bold;
      margin-bottom: 1.5em;
}

.foot_address {
      line-height: 1.6;
      margin-bottom: 1.5em;
}

.foot_tel {
      line-height: 1.6;
}

@media screen and (max-width: 1300px) {
      .foot_area {
            width: 90%;
      }
}

@media screen and (max-width: 960px) {
      .foot_area {
            display: block;
      }

}

/* foot_nav 
--------------------------------------------------------------------------*/
.foot_nav {
      flex: 2.5;
      display: flex;
      gap: 0 2em;
}


.foot_nav>ul.footer_list_01 {
      width: 66%;
      display: flex;
      gap: 1em 3em;
}

.foot_nav>ul.footer_list_02 {
      width: 17%;
}

.foot_nav>ul.footer_list_03 {
      width: 17%;
}

.foot_nav>ul>li>a {
      letter-spacing: 0.1em;
      display: block;

}

.foot_nav>ul.footer_list_01>li>a {
      padding-bottom: 1em;
      margin-bottom: 1em;
      font-weight: bold;
      border-bottom: 1px solid var(--bg_gray_dark);
      font-size: 1.1em;
}

.foot_nav>ul.footer_list_01>li {
      width: 50%;

}


@media screen and (min-width: 961px),
print {
      .foot_nav>ul>li>a:hover {
            color: var(--col_main);
      }
}


.foot_nav>ul>li ul li,
.foot_nav>ul.footer_list_02>li,
.foot_nav>ul.footer_list_03>li {
      padding-left: 1em;
      margin-bottom: 1em;
      position: relative;
}

.foot_nav>ul>li ul li::before,
.foot_nav>ul.footer_list_02>li::before,
.foot_nav>ul.footer_list_03>li::before {
      content: "";
      position: absolute;
      left: 0;
      top: 0.7em;
      width: 0.5em;
      height: 1px;
      background: var(--col_text);
}

@media screen and (min-width: 961px),
print {

      .foot_nav>ul>li ul li a:hover,
      .foot_nav>ul.footer_list_02>li a:hover,
      .foot_nav>ul.footer_list_03>li a:hover {
            text-decoration: underline;
            color: var(--col_text);
      }
}





@media screen and (max-width: 960px) {
      .foot_nav {
            margin-top: 4em;
      }
}

@media screen and (max-width: 680px) {
      .foot_nav {
            margin-top: 2em;
      }

      .foot_area {
            padding: 3em 0 3em;
            display: block;
      }

      .foot_nav {
            width: auto;
            flex-wrap: wrap;
      }

      .foot_nav ul {
            width: auto;
            display: block;

      }

      .foot_nav>ul.footer_list_01 {
            width: 100%;
            display: block;
            margin-bottom: 1.5em;
            border-bottom: 1px solid var(--bg_gray_dark);

      }


      .foot_nav>ul.footer_list_01>li {
            width: auto;
            position: relative;
            border-top: 1px solid var(--bg_gray_dark);
      }

      .foot_nav>ul.footer_list_01>li>a {
            cursor: pointer;
            border-bottom: 0;
            margin-top: 1em;
            margin-bottom: 0;
      }

      /* アコーディオン用のul */
      .foot_nav>ul.footer_list_01>li>ul {
            height: 0;
            overflow: hidden;
            opacity: 0;
            visibility: hidden;
            transition: all 0.3s ease;
      }

      .foot_nav>ul.footer_list_01>li>ul.open {
            height: auto;
            opacity: 1;
            visibility: visible;
      }

      /* nav_downアイコン */
      .foot_nav>ul.footer_list_01>li .nav_down {
            position: absolute;
            right: 0;
            top: 0em;
            width: 6em;
            height: 4em;
            cursor: pointer;
      }


      .foot_nav>ul.footer_list_01>li .nav_down::after {
            content: "";
            position: absolute;
            margin: auto;
            top: 0;
            bottom: 0;
            right: 12px;
            width: 8px;
            height: 8px;
            border-top: 1px solid var(--col_main);
            border-right: 1px solid var(--col_main);
            transform: rotate(135deg);
            -webkit-transition: all 0.15s ease;
            transition: all 0.15s ease;
      }



      .foot_nav>ul.footer_list_01>li .nav_down.open::after {
            transform: translateY(0) rotate(-45deg);
            top: 5px;
      }




      .foot_nav>ul.footer_list_02 {

            width: calc(50% - 3em);
      }

      .foot_nav>ul.footer_list_03 {
            width: calc(50% - 3em);
      }


      .foot_info .foot_logo img {
            width: 28em;
            height: auto;
      }

}


.foot_bottom {
      width: 1200px;
      margin: auto;
      border-top: 1px solid var(--bg_gray_dark);
      padding: 2em 0;
      display: flex;
      justify-content: space-between;
      align-items: center;
}

.foot_bottom .foot_links {
      display: flex;
      gap: 3em;
      justify-content: center;
}

.foot_bottom .foot_links li a {
      color: var(--col_text);

}


@media screen and (min-width: 961px),
print {
      .foot_bottom .foot_links li a:hover {
            text-decoration: underline;

      }

}

@media screen and (max-width:1300px) {
      .foot_bottom {
            width: 90%
      }
}

@media screen and (max-width:680px) {


      .foot_bottom {
            padding: 0em 0 0 0;
            border-top: none;
            display: block;

      }

      .foot_bottom .foot_links {
            display: block;
            margin-bottom: 4em;
      }

      .foot_bottom .foot_links li+li {
            margin-top: 0.5em;
      }

}

/* copyright
------------------------------------------------------------- */
.copyright {
      display: block;
      font-size: 1.2rem;
      text-align: right;
}

@media screen and (max-width: 680px) {
      .copyright {
            margin-bottom: 2em;
            margin-top: 1em;
            font-size: 1.1rem;
            text-align: left;
      }
}

/* .page_top
------------------------------------------------------------- */
.page_top {
      position: fixed;
      bottom: 1em;
      right: 1em;
      z-index: 10;
      opacity: 0;
      visibility: hidden;
      transition: opacity 0.3s, visibility 0.3s;
}
.page_top.is-visible {
      opacity: 1;
      visibility: visible;
}

.page_top a {
      display: block;
      background: var(--bg_gray_dark);
      aspect-ratio: 1;
      width: 4em;
      position: relative;
}

.page_top a:hover {
      opacity: 0.8;
}

.page_top a:after {
      position: absolute;
      content: "";
      vertical-align: middle;
      right: 0;
      left: 0;
      top: 5px;
      bottom: 0;
      margin: auto;
      aspect-ratio: 1;
      width: 1em;
      border-top: 2px solid var(--col_main);
      border-right: 2px solid var(--col_main);
      transform: rotate(-45deg);
}
@media screen and (max-width: 960px) {
      .page_top a {
           width: 3em;
      }
}

/* コンテナ
============================================================================================================ */
#container {
      position: relative;
      font-size: 1.6rem;
      padding-top: 90px;
}

@media screen and (max-width: 960px) {
      #container {
            font-size: 1.4rem;
            padding-top: 60px;
      }
}

.f_16 {
      font-size: 16px;
}

.f_14 {
      font-size: 14px;
}


/* w
============================================================================================================ */


.w80 {
      position: relative;
      display: block;
      max-width: 840px;
      margin: 0 auto;
}
.w {
      position: relative;
      display: block;
      max-width: 1040px;
      margin: 0 auto;
}

.w12 {
      position: relative;
      display: block;
      max-width: 1200px;
      margin: 0 auto;
}


/* section
============================================================================================================ */

@media screen and (max-width: 1300px) {
      .w12.sp_section_s {
            max-width: 95%;
            margin: auto;
      }

      .w12.sp_section_l {
            max-width: 90%;
            margin: auto;
      }
}


@media screen and (max-width: 1100px) {
      .sp_section_s {
            max-width: 95%;
            margin: auto;
      }

      .sp_section_l {
            max-width: 90%;
            margin: auto;
      }
}

@media screen and (max-width: 1000px) {
      .w80.sp_section_s {
            max-width: 95%;
            margin: auto;
      }

      .w80.sp_section_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;
      }
}

/* 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>* {
      display: inline-flex;
      padding: 1em 3em;
      box-sizing: border-box;
      position: relative;
      background: var(--col_white);
      border: 1px solid var(--col_main);
      color: var(--col_main);
      text-decoration: none;
      border-radius: 0.4rem;
      font-weight: bold;
      transition: all 0.3s ease;
}

@media screen and (min-width: 961px),
print {
      .btn:hover>* {
            border: 1px solid var(--col_main_light);
            background: var(--col_main_light);
            color: var(--col_white);
      }
}

/*arrow
-------------------------------------*/
.btn_arrow {
      position: relative;
      padding: 1em 4.5rem 1em 3.8rem;
}

.btn_arrow:before {
      content: "";
      background: url("../images/arrow.svg") no-repeat;
      background-size: contain;
      aspect-ratio: var(--arrow_a);
      width: 0.8rem;
      position: absolute;
      top: 50%;
      right: 1.5rem;
      transform: translateY(-50%);
      filter: invert(28%) sepia(20%) saturate(1676%) hue-rotate(78deg) brightness(92%) contrast(102%);
      transition: filter 0.3s ease;
}


@media screen and (min-width: 961px),
print {


      .btn_arrow:hover::before {
            filter: brightness(0) invert(1);
      }
}

/*btn size
----------------------------------------------------------------------------------------------------------------*/
.btn_s>* {
      width: 15em;
      display: block;
}

.btn_m>* {
      width: 20em;
      display: block;
}

.btn_l>* {
      width: 25em;
      display: block;
}

/*ボタンの位置*/
.btn_center {
      margin: auto;
}

@media screen and (max-width: 680px) {
      .btn_tabsp_center {
            margin: auto;
      }

      .btn_sp_center {
            margin: auto;
      }
}

/* title
============================================================================================================ */
.title_llll {
      font-size: 5.6rem;
}

.title_lll_m {
      font-size: 4.3rem;
}

.title_lll {
      font-size: 4.0rem;
}

.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_llll {
            font-size: 4.5rem;
      }

      .title_lll_m {
            font-size: 3.0rem;
      }

      .title_lll {
            font-size: 2.8rem;
      }

      .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.5rem;
      }
}

/* 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.2em;
}

ul.square>li:before {
      content: "■";
      position: absolute;
      left: 0;
}

/* circle
------------------------------------------------------------- */
ul.circle>li {
      position: relative;
      padding-left: 1em;
      margin-bottom: 0.2em;
}

ul.circle>li:before {
      content: "●";
      position: absolute;
      left: 0;
}

/* asterisk
------------------------------------------------------------- */
ul.asterisk>li {
      position: relative;
      padding-left: 1em;
      margin-bottom: 0.2em;
}

ul.asterisk>li:before {
      content: "＊";
      position: absolute;
      left: 0;
}

/* disc
------------------------------------------------------------- */
ul.disc>li {
      position: relative;
      padding-left: 1em;
      margin-bottom: 0.2em;
}

ul.disc>li:before {
      content: "・";
      position: absolute;
      left: 0;
}

/* notes
------------------------------------------------------------- */
ul.notes>li {
      position: relative;
      padding-left: 1em;
      margin-bottom: 0.2em;
}

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.2em;
}

/* 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;
}

/* background bg____________________
============================================================================================================ */
.bg_main {
      background: var(--col_main);
}

.bg_ff {
      background: #fff;
}

/* color col______
===================================================*/
.col_main {
      color: var(--col_main);
}

.col_red {
      color: var(--col_red);
}

/* indent
========================================= */
.ident_01 {
      padding-left: 1em;
      text-indent: -1em;
}

.ident_02 {
      padding-left: 2em;
      text-indent: -2em;
}

.ident_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;
      }
}

/* 見出し
============================================================================================================ */
/*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);
}

/* 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;
}

.it_cener {
      align-items: center;
}

.it_start {
      align-items: flex-start;
}

/*分割比
----------------------------------------------*/
/*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%;
      }
}



/* お問い合わせ CV
------------------------------------------------------------- */
.cv_contact {
      font-size: 1.6rem;
      background: url("../images/cv_bg.png") no-repeat;
      background-size: cover;
      padding: 5rem 0;
      color: var(--col_white);
}

.cv_contact_inner {
      max-width: 960px;
      margin: auto;
      display: flex;
      justify-content: space-between;
}

@media screen and (max-width: 1000px) {
      .cv_contact_inner {
            max-width: 90%;
      }

}

@media screen and (max-width: 680px) {

      .cv_contact_inner {
            display: block;

      }
}

.cv_contact_inner>.cv_contact_title_box {
      width: 55%;
}

.cv_contact_inner>.cv_contact_info {
      width: 45%;
}

.cv_contact_title_box {
      border-right: 1px solid var(--col_white);
}

.cv_contact_title {
      line-height: 1.0;
      font-size: 3.2em;
      font-weight: bold;
      color: var(--col_white);
      letter-spacing: 0.05em;
      margin-bottom: 0.2em;
      font-family: var(--font_en);
}

.cv_contact_subtitle {
      font-size: 1.2em;
      color: var(--col_white);
      margin-bottom: 1.1em;
      font-weight: bold;
      ;
}

.cv_contact_text {
      font-size: 1.0em;
      color: var(--col_white);
}

@media screen and (max-width: 680px) {
      .cv_contact_inner>.cv_contact_title_box {
            width: auto;
      }

      .cv_contact_title {
            font-size: 2.4em;
      }

      .cv_contact_subtitle {
            font-size: 1.1em;
      }

      .cv_contact_inner>.cv_contact_info {
            width: auto;
      }

      .cv_contact_title_box {
            border-right: none;
      }


}


/* 独立した問い合わせ情報コンポーネント（再利用可能） */
.cv_contact_info {
      text-align: center;
}

.cv_contact_info_tel {
      margin-bottom: 0.5em;
      font-family: var(--font_en);
}

.cv_contact_info_tel_link {
      font-size: 2.3em;
      font-weight: bold;
      color: var(--col_white);
      text-decoration: none;
      letter-spacing: 0.05em;
      line-height: 1;
      position: relative;
      padding-left: 1em;
}

.cv_contact_info_tel_link::before {
      content: "";
      position: absolute;
      left: 0;
      top: 50%;
      transform: translateY(-50%);
      width: 0.6em;
      aspect-ratio: 1/1;
      background: url("../images/ico_tel.svg") no-repeat center;
      background-size: contain;
      filter: brightness(0) invert(1);
}

.cv_contact_info_p {
      font-size: 0.9em;
}

.cv_contact_info_time {
      font-size: 1em;
      color: var(--col_white);
      margin-bottom: 2em;
}

.cv_contact_info_btn_wrap {
      text-align: center;
      max-width: 70%;
      margin: 1em auto auto auto;
}

.cv_contact_info_btn {
      display: block;
      padding: 1em 3.3em;
      background: var(--col_white);
      color: var(--col_main);
      text-decoration: none;
      border-radius: 0.2em;
      font-weight: bold;
      font-size: 1.1em;
      transition: all 0.3s ease;
      position: relative;
      border: solid 1px var(--col_white);

}

.cv_contact_info_btn span {
      display: inline-block;
      position: relative;
      padding-left: 1.8em;
}

.cv_contact_info_btn span::before {
      content: "";
      position: absolute;
      left: 0;
      top: 50%;
      transform: translateY(-50%);
      width: 1.2em;
      aspect-ratio: 6/5;
      background: var(--col_main);
      mask-image: url("../images/ico_mail.svg");
      mask-size: contain;
      mask-repeat: no-repeat;
      mask-position: center;
      -webkit-mask-image: url("../images/ico_mail.svg");
      -webkit-mask-size: contain;
      -webkit-mask-repeat: no-repeat;
      -webkit-mask-position: center;
      transition: background 0.3s ease;
}

@media screen and (min-width:961px),
print {
      .cv_contact_info_btn:hover {
            background: var(--col_main_light);
            border: solid 1px var(--col_main_light);
            color: var(--col_white);
      }

      .cv_contact_info_btn:hover span::before {
            background: var(--col_white);
      }
}


@media screen and (max-width: 680px) {

      .cv_contact {
            background: url("../images/cv_bg_sp.png") no-repeat center center;
            background-size: cover;
      }

      .cv_contact_info {
            margin-top: 2em;
      }

      .cv_contact_info_tel {

            border: solid 1px var(--col_white);
            border-radius: 0.3em;
            padding: 1em 0;

      }

      .cv_contact_info_btn_wrap {
            max-width: 100%;
      }

      .cv_contact_info_tel_link {
            font-size: 2.5em;
      }
}