@charset "utf-8";

:root {
  --color01: #00559a;
  --color02: #646464;
  --color03: #505050;
  --color04: #C8C8C8;
  
  --inter: "Inter", sans-serif;
  --zen: "Zen Kaku Gothic New", sans-serif;
}

.fade {
  opacity: 0;
  transition: 1s;
  transform: translateY(50px);
}
.fade.fadein {
  opacity: 1;
  transform: translateY(0);
}

.mb50 {margin-bottom: 50px!important;}
.wp-block-image img {width: 100%;}
.wp-block-image + p {text-align: right;font-size: 0.875em;}
:where(.wp-block-columns.is-layout-flex) {gap: 3em!important;}

.modaal-close:focus, .modaal-close:hover {
    background: none!important;
    opacity: 0.5;
}
.modaal-close:focus:after, .modaal-close:focus:before, .modaal-close:hover:after, .modaal-close:hover:before {
    background: #FFF!important;
}

/* -----------------------------------------------------------
　common
----------------------------------------------------------- */

* {box-sizing: border-box;}
img {max-width: 100%;}
.fcred {color: #FF0000;}
.fwbold {font-weight: bold;}
.fs80 {font-size: 0.8em;}
.fs120 {font-size: 1.2em;}
.left {float: left;}
.right {float: right;}
.center ,
.aligncenter {text-align: center;}
.alignright {text-align: right;}
.alignleft {text-align: left;}
.clear {clear: both;}
.italic {font-style: italic;}
figure img {display: block;}
figure.wp-block-image {display: flex;}
figure.wp-block-image.aligncenter {display: table;margin-right: auto;margin-left: auto;}
figure.wp-block-image.alignleft {display: table;margin-right: auto;}
figure.wp-block-image.alignright {display: table;margin-left: auto;}
body figure {margin-bottom: 0;}
a {
  color: inherit;
  text-decoration: none;
}


body {
  font-family: "Noto Sans JP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", "Meiryo", "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 16px;
  line-height: 1.625;
  color: #000;
}
body.open {overflow: hidden;}
input,button ,select,option,textarea {
  font-family: "Noto Sans JP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", "Meiryo", "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  color: inherit;
}
button {cursor: pointer;}

@media screen and (min-width: 801px) {
  
  .sp_cont {display: none !important;}
  
}
a:hover {
  text-decoration: underline;
  color: inherit;
}

/* -----------------------------------------------------------
  template
----------------------------------------------------------- */

/* :::::::::: header :::::::::: */

header {
  position: fixed;
  z-index: 10;
  inset: 0 auto 0 0;
  width: 440px;
  background: #FFFFFF;
  height: 100%;
  overflow-y: auto;
  transition: transform 0.5s;
  border-right: solid 1px #000000;
}
header::-webkit-scrollbar {width: 5px;}
header::-webkit-scrollbar-thumb {background: var(--color01);}
header::-webkit-scrollbar-track {background: #eee;}
header::-webkit-scrollbar-button {display: none;}
header .header_box {padding: 95px 30px 30px;}
header .header_box .logo {
  width: 184px;
  margin: 0 auto 40px;
  transition: 0.5s;
}
header .header_box .logo:hover {opacity: 0.6;}
header .header_box .logo img {display: block;}
header .header_box .menu {display: none;}
header .header_box .menu_box {
  transition: transform 0.5s;
  padding: 0;
}
.header_form {
  padding: 0 30px;
  margin: 50px auto 45px;
}
.header_form p {
  font-size: 17px;
  margin: 0 0 15px;
}
.header_form form {
  display: flex;
  width: 100%;
  height: 60px;
  border: solid 1px #000000;
}
.header_form form input {
  width: calc(100% - 60px);
  height: 60px;
  padding: 0.5em;
}
.header_form form input::placeholder {color: #969696;}
.header_form form button {
  width: 60px;
  height: 58px;
  background: url("../img/common/ico_search.svg") no-repeat center / 40%,var(--color01);
  cursor: pointer;
  transition: 0.5s;
}
.header_form form button:hover {opacity: 0.6;}
.header_contact {
  padding: 0 30px 20px;
}
.header_contact p {
  font-size: 17px;
  margin: 0 0 15px;
}
.header_contact .btn_contact a {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  padding: 1.5em;
  color: #FFFFFF;
  font-size: 17px;
  font-weight: 700;
  background: linear-gradient(to right,  #3fbfef 0%,#00559a 50%,#00559a 100%); 
  background-size: 200% 100%;
  text-decoration: none;
  transition: 0.5s;
}
.header_contact .btn_contact a::after {
  display: block;
  content: "";
  width: 1.7em;
  height: 1.15em;
  margin: 0 0 0 0.5em;
  background: url("../img/common/ico_contact.svg") no-repeat center / contain;
}

.header_contact .btn_contact a:hover {background-position: 100% 0;} 
.sim_box {
  color: var(--color01);
  padding: 35px 50px 35px;
  background: #ddeaf6;
  text-align: center;
  line-height: 1.2;
}
.sim_box h2 {
  width: 274px;
  margin: 0 auto 35px;
}
.sim_box h2 img {display: block;}
.sim_box h2 a {transition: 0.5s;}
.sim_box h2 a:hover {opacity: 0.5;}
.sim_box p:nth-of-type(1) {
  color: var(--color01);
  font-size: 22px;
  font-weight: 700;
  margin: 0 0 15px;
}
.sim_box ul {margin: 0 auto 30px;}
.sim_box ul li {margin: 0 auto 15px;}
.sim_box ul li a {
  position: relative;
  z-index: 0;
  display: block;
  height: 100%;
  color: #FFFFFF;
  padding: 1.4em 2.5em 1.4em 1em;
  background: var(--color01);
  border: solid 1px var(--color01);
  text-decoration: none;
  transition: 0.5s;
}
.sim_box ul li a:hover {
  color: var(--color01);
  background: #FFFFFF;
}
.sim_box ul li a::after {
  position: absolute;
  z-index: 1;
  display: block;
  content: "";
  width: 1.5em;
  height: 1.5em;
  background: url("../img/common/ico_ar_w.svg") no-repeat center / contain;
  margin: auto;
  inset: 0 1em 0 auto;
  transition: 0.5s;
}
.sim_box ul li a:hover::after {background: url("../img/common/ico_ar_bt.svg") no-repeat center / contain;}
.sim_box ul + p {
  font-size: 14px;
  font-weight: 300;
}
.sim_box ul + p span {
  display: block;
  font-size: 35px;
  font-family: var(--inter);
  font-weight: 700;
  line-height: 1;
  margin: 15px auto 19px;
  letter-spacing: 0.035em
}
.sim_box ul + p .telnum a {pointer-events: none;}
.sim_box p:nth-last-of-type(1) {
  font-size: 14px;
  font-weight: 300;
}
.sim_box p:nth-last-of-type(1) a::after {
  display: inline-block;
  content: "";
  width: 1.85em;
  height: 0.86em;
  background: url("../img/common/ico_target_b.svg") no-repeat center / contain;
}

/* :::::::::: nav :::::::::: */

nav > .main_nav {
  padding: 60px 0 30px;
  margin: 0 auto 50px;
  border-top: solid 1px var(--color01);
  border-bottom: solid 1px var(--color01);
}
nav > .main_nav > ul {
  width: 100%;
  max-width: 280px;
  margin: 0 auto;
}
nav > .main_nav > ul > li {
  font-size: 17px;
  margin: 0 0 1.25em;
} 
nav > .main_nav > ul > li a {text-decoration: none;}
nav > .main_nav > ul > li a.current,
nav > .main_nav > ul > li a:hover {color: var(--color01);}
nav > .main_nav > ul > li > span {
  position: relative;
  z-index: 0;
  display: block;
  width: 100%;
  cursor: pointer;
}
nav > .main_nav > ul > li > span::after {
  position: absolute;
  z-index: 1;
  inset: 0 0 0 auto;
  margin: auto;
  display: block;
  content: "";
  width: 1.4em;
  height: 1.4em;
  background: url("../img/common/ico_ab.svg") no-repeat center / contain;
}
nav > .main_nav > ul > li > span.open::after {transform: rotate(180deg);}
nav > .main_nav > ul > li > span:hover {color: var(--color01);}
nav > .main_nav > ul > li > span:hover::after {background: url("../img/common/ico_ab_b.svg") no-repeat center / contain;}
nav > .main_nav > ul > li ul {
  display: none;
  padding: 0.5em 0 1em 1em;
}
nav > .main_nav > ul > li ul li {
  font-size: 15px;
  font-weight: 300;
  margin: 0.5em 0 0;
}
nav > .main_nav > ul > li ul li a::before {
  display: inline-block;
  vertical-align: middle;
  content: "";
  width: 0;
  height: 1px;
  background: var(--color01);
  margin: 0;
  transition: 0.5s;
}
nav > .main_nav > ul > li ul li a:hover::before {
  width: 0.75em;
  margin: 0 0.25em 0.2em 0;
}

/* :::::::::: main :::::::::: */

main {
  display: block;
  width: 100%;
  padding: 0 0 0 440px;
}
main.home {
  position: relative;
  z-index: 1;
  background: #FFFFFF;
}
main article {
  margin: 0 auto;
  overflow: clip;
}

.box {
  width: 100%;
  max-width: 1200px;
  padding: 0 min(5% , 50px);
  margin: 0 auto;
}
main.home .box {
  max-width: 1500px;
}
.m_box {
  width: 100%;
  max-width: 1300px;
  padding: 0 min(5% , 50px);
  margin: 0 auto;
} 
.flex {display: flex;}

.btn_more {
  position: relative;
  z-index: 0;
  width: fit-content;
  font-family: var(--inter);
  font-weight: 500;
  transition: color 0.5s;
}
.btn_more::after {
  position: absolute;
  display: block;
  content: "";
  width: 1.4em;
  height: 1.4em;
  margin: auto;
  inset: 0 auto 0 110%;
  transition: 0.5s;
  z-index: 1;
  background: url("../img/common/ico_ar.svg") no-repeat center / contain;
}
a[target="_blank"] .btn_more::after {
  width: 1.4em;
  height: 1em;
  background: url("../img/common/ico_target.svg") no-repeat center / contain;
}
a:hover .btn_more {color: var(--color01);}
a:hover .btn_more::after {
  background: url("../img/common/ico_ar_b.svg") no-repeat center / contain;
  transform: translateX(0.25em);
}
a[target="_blank"]:hover .btn_more::after {background: url("../img/common/ico_target_b.svg") no-repeat center / contain;}

/* :::::::::: aside :::::::::: */

aside {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 0 0 0 440px;
  background: #FFFFFF;
}
aside > div {
  padding: 120px min(5% , 50px) 40px;
  margin: 0 auto;
}
aside > div a {
  position: relative;
  z-index: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  width: 100%;
  height: 100%;
  max-height: 400px;
  color: #FFFFFF!important;
  aspect-ratio: 1400 / 400;
  border: solid 1px #000000;
  text-decoration: none!important;
  text-align: center;
}
aside > div a::before {
  position: absolute;
  z-index: 1;
  display: block;
  content: "";
  width: 100%;
  height: 100%;
  inset: 0;
  background: var(--color01);
  opacity: 0;
  transition: 0.5s;
}
aside > div a:hover::before {opacity: 0.6;}
aside > div a img {
  position: absolute;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

aside > div a h2 {
  position: relative;
  z-index: 2;
  font-size: min(5.25vw, 105px);
  font-family: var(--inter);
  font-weight: 600;
  line-height: 1.3;
}
aside > div a p {
  position: relative;
  z-index: 2;
  font-size: min(0.8vw, 16px);
  font-weight: 500;
  line-height: 1.5;
}
.breadcrumbs {
  font-size: 12px;
  font-weight: 300;
  margin: 60px 0 0;
  padding: 1em min(5% , 50px) 1em calc(440px + min(5% , 50px));
  border-top: solid 1px #000000;
  border-bottom: solid 1px #000000;
}
.breadcrumbs > span::after {
  color: var(--color01);
  content: ">";
  margin: 0 1em;
}
.breadcrumbs > span:nth-last-of-type(1)::after {display: none;}

/* :::::::::: footer :::::::::: */

.pagetop {
  position: fixed;
  z-index: 10;
  inset: auto 10px 50px auto;
  font-family: var(--inter);
  font-weight: 500;
  font-size: 18px;
  transform: rotate(90deg);
  transform-origin: top right;
  cursor: pointer;
  transition: 0.5s;
}
.pagetop:hover {opacity: 0.5;}
.pagetop::before ,
.pagetop::after {
  position: absolute;
  display: block;
  content: "";
  width: 1.3em;
  height: 1.3em;
  border-radius: 50%;
  margin: auto;
}
.pagetop::before {
  width: 25px;
  height: 25px;
  inset: -100% auto -100% -1.675em;
  margin: auto;
  z-index: 0;
  background: url("../img/common/ico_al.svg") no-repeat center / contain;
}
footer {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 60px 0 0 440px;
  background: #FFFFFF;
  overflow: clip;
}
footer .logo {
  width: 235px;
  margin: 0 auto 60px;
  transition: 0.5s;
}
footer .logo:hover {opacity: 0.6;}
footer .box > ul {
  display: flex;
  justify-content: space-around;
  align-items: flex-start;
  margin: 0 auto 100px;
}
footer .box > ul > li p {
  font-weight: 700;
  margin: 0 0 0.5em;
}
footer .box > ul > li p span {display: none;}
footer .box > ul > li ul li {
  font-size: 13px;
  font-weight: 300;
  margin: 0 0 0.5em;
}
footer .box > ul > li a:hover {
  text-decoration: none;
  color: var(--color01);
}
footer .box > ul > li ul + p {margin: 2em 0 1em;}
footer .box > ul > li p + p {margin: 1em 0 0;}
footer .m_box .flex {
  position: relative;
  z-index: 0;
  padding: 20px 0;
  justify-content: space-between;
  align-items: center;
}
footer .m_box .flex::before ,
footer .m_box .flex::after {
  position: absolute;
  display: block;
  content: "";
  width: 120vw;
  height: 1px;
  background: #000000;
  margin: auto;
}
footer .m_box .flex::before {inset: 0 -100% auto -100%;}
footer .m_box .flex::after {inset: auto -100% 0 -100%;}
footer .m_box .flex ul li {
  position: relative;
  display: inline-block;
  font-size: 14px;
  padding: 0 1.5em 0 0;
  margin: 0 1.5em 0 0;
}
footer .m_box .flex ul li:not(:nth-of-type(1))::before {
  position: absolute;
  z-index: 0;
  content: "";
  display: block;
  width: 1px;
  height: 1em;
  background: #000000;
  inset: 0 auto 0 -1.5em;
  margin: auto;
}
footer .m_box .flex p {
  font-size: 11px;
  font-weight: 300;
}

.fixed_btn {
  position: fixed;
  z-index: 9;
  inset: auto 50px 0 auto;
  display: flex;
  justify-content: space-between;
  max-width: calc(100% - 100px);
  padding: 10px 10px 0;
  transform: translateY(150%);
  transition: 0.5s;
}
.fixed_btn.show {transform: translateY(calc(100% - 80px));}
.fixed_btn.show.hidden {transform: translateY(250px);}
.fixed_btn::after {
  position: absolute;
  z-index: -1;
  display: block;
  content: "";
  width: 100%;
  height: 80px;
  inset: 0 0 auto;
  background: #ddeaf6;
}
.fixed_btn > .close {
  position: absolute;
  z-index: 1;
  cursor: pointer;
  width: 20px;
  height: 20px;
  text-align: center;
  line-height: 20px;
  color: #FFFFFF;
  background: var(--color01);
  border-radius: 50%;
  inset: -10px -10px auto auto;
}
.fixed_btn > .close::before {
  position: absolute;
  z-index: 0;
  inset: 0;
  margin: auto;
  content: "×";
  font-size: 12px;
}
.fixed_btn > dl {
  width: 17.5em;
  font-size: min(3vw,16px);
  background: #ddeaf6;
  margin: 0 10px 0 0;
  transform: translateY(0);
  transition: 0.5s;
}
.fixed_btn > dl.hover {transform: translateY(calc(70px - 100%));}
.fixed_btn > dl:nth-last-of-type(1) {margin: 0;}
.fixed_btn > dl dt {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 70px;
  background: var(--color01);
  line-height: 70px;
  color: #FFFFFF;
  padding: 0 1.8em;
  cursor: pointer;
}
.fixed_btn > dl dt::after {
  display: block;
  content: "";
  width: 1.4em;
  height: 1.4em;
  background: url("../img/common/ico_ar_w.svg") no-repeat center / contain;
  transform: rotate(-90deg);
}
.fixed_btn > dl dd {
  color: var(--color01);
  padding: 1.5em 1.8em;
}
.fixed_btn > dl dd p {
  width: 160px;
  height: 40px;
  line-height: 40px;
  margin: 15px auto 0;
}
.fixed_btn > dl dd p a {
  display: block;
  height: 100%;
  font-size: 0.75em;
  font-weight: 700;
  color: var(--color01);
  text-align: center;
  background: #ffe475;
  text-decoration: none;
}
.fixed_btn > p {display: none;}
.fixed_btn + .pagetop {inset : auto 10px 80px auto;}


.contact_bnr {
  position: fixed;
  z-index: 9;
  inset: auto 50px 0 auto;
  transform: translateY(150%);
  transition: 0.5s;
}
.contact_bnr.show {transform: translateY(calc(100% - 70px));}
.contact_bnr.show:hover {transform: translateY(0);}
.contact_bnr.show.hidden {transform: translateY(150%);}
.contact_bnr > .close {
  position: absolute;
  z-index: 1;
  cursor: pointer;
  width: 20px;
  height: 20px;
  text-align: center;
  line-height: 20px;
  color: var(--color01);;
  background: #ffe475;
  border-radius: 50%;
  inset: -10px -10px auto auto;
}
.contact_bnr > .close::before {
  position: absolute;
  z-index: 0;
  inset: 0;
  margin: auto;
  content: "×";
  font-size: 12px;
}
.contact_bnr > dl {
  width: 280px;
  background: #ddeaf6;
}
.contact_bnr > dl dt {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 70px;
  background: var(--color01);
  line-height: 70px;
  color: #FFFFFF;
  font-size: 17px;
  padding: 0;
  cursor: pointer;
}
.contact_bnr > dl dt::after {
  display: block;
  content: "";
  width: 1.8em;
  height: 1.4em;
  background: url("../img/common/ico_contact.svg") no-repeat center / contain;
  margin: 0 0 0 0.5em;
}
.contact_bnr > dl dd {
  color: var(--color01);
  font-size: 16px;
  padding: 1em 2em;
}
.contact_bnr > dl dd p {
  width: 160px;
  height: 40px;
  line-height: 40px;
  margin: 15px auto 0;
}
.contact_bnr > dl dd p a {
  display: block;
  height: 100%;
  font-size: 0.75em;
  font-weight: 700;
  color: var(--color01);
  text-align: center;
  background: #ffe475;
  text-decoration: none;
}
.contact_bnr > p {display: none;}
.contact_bnr + .pagetop {inset : auto 10px 80px auto;}






@media screen and (max-width: 1700px) {
  .fixed_btn {inset: auto 30px 0 auto;}
  .fixed_btn.show {transform: translateY(calc(100% - 70px));}
  .fixed_btn::after {height: 70px;}
  .fixed_btn > dl {font-size: min(3vw,14px);}
  .fixed_btn > dl.hover {transform: translateY(calc(60px - 100%));}
  .fixed_btn > dl dt {
    height: 60px;
    line-height: 60px;
  }
}

@media screen and (max-width: 1400px) {
  .fixed_btn {padding: 5px 5px 0;}
  .fixed_btn.show {transform: translateY(calc(100% - 55px));}
  .fixed_btn::after {height: 55px;}
  .fixed_btn > dl {
    width: 16em;
    font-size: min(3vw,12px);
    margin: 0 5px 0 0;
  }
  .fixed_btn > dl.hover {transform: translateY(calc(50px - 100%));}
  .fixed_btn > dl dt {
    height: 50px;
    line-height: 50px;
    padding: 0 1em;
  }
}

@media screen and (max-width: 1200px) {
  .fixed_btn {
    inset: auto 2.5% 0 auto;
    max-width: 95%;
  }
  .fixed_btn > dl {
    width: 17em;
    font-size: 1.3vw;
  }
}

@media screen and (max-width: 1600px) {
  header {width: 350px;}
  header .header_box {padding: 95px 20px 30px;}
  .header_form {padding: 0;}
  .header_contact {padding: 0;}
  .sim_box {padding: 35px 15px 35px;}
  main {padding: 0 0 0 350px;}
  .box {padding: 0 min(5% , 30px);}
  .m_box {padding: 0 min(5% , 30px);} 
  
  aside {padding: 0 0 0 350px;}
  aside > div {padding: 120px min(5% , 30px) 40px;}
  .breadcrumbs {padding: 1em min(5% , 30px) 1em calc(350px + min(5% , 30px));}
  footer {padding: 60px 0 0 350px;}
}

@media screen and (max-width: 1200px) {
  header {
    width: 100%;
    height: 90px;
    inset: 0 0 auto;
    overflow-y: visible;
    transition: transform 0.5s;
    border-right: none;
    border-bottom: solid 1px #000000; 
  }
  header.home {border: none;}
  header.hide {transform: translateY(-120px);}
  header .header_box {
    padding: 20px 5%;
    background: #FFFFFF;
  }
  header .header_box .logo {
    width: 96px;
    margin: 0;
  }
  header .header_box .menu {
    position: absolute;
    z-index: 1;
    display: block;
    width: 30px;
    height: 15px;
    font-size: 0;
    margin: auto;
    inset: 0 5% 0 auto;
    cursor: pointer;
  }
  header .header_box .menu::before ,
  header .header_box .menu::after {
    position: absolute;
    z-index: 1;
    display: block;
    content: "";
    width: 100%;
    height: 1px;
    background: #000000;
    margin: auto;
    transition: 0.5s;
  }
  header .header_box .menu::before {
    inset: 0 0 auto;
    box-shadow: 0 7px 0 0 #000000;
  } 
  header .header_box .menu::after {inset: auto 0 0;}
  header .header_box .menu.open::before {
    inset: 7px 0 auto;
    box-shadow: none;
    transform: rotate(45deg);
  } 
  header .header_box .menu.open::after {
    inset: auto 0 7px;
    transform: rotate(-45deg);
  }
  header .header_box .menu_box {
    position: fixed;
    z-index: -1;
    width: 440px;
    height: 100dvh;
    padding: 90px 5%;
    background: #FFFFFF;
    inset: 0 auto 0 100%;
    overflow-y: auto;
  }
  header.hide .header_box .menu.open {transform: translateY(120px);}
  header .header_box .open + .menu_box {transform: translateX(-100%);}
  header.hide .header_box .open + .menu_box {transform: translateX(-100%) translateY(120px);}
  .header_form {padding: 0;}
  .header_contact {padding: 0;}
  .sim_box {padding: 35px 15px 35px;}
  main ,
  main.page_portal {padding: 90px 0 0;}
  main.home {padding: 0;}
  aside {padding: 0;}
  .breadcrumbs {padding: 1em min(5% , 50px);}

  footer {padding: 60px 0 0;}
}

/* -----------------------------------------------------------
 subpage
----------------------------------------------------------- */

.title_area {
  position: relative;
  z-index: 0;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex-direction: column;
  width: 100%;
  max-width: 1200px;
  height: 300px;
  padding: 0 min(5%, 50px);
  margin: 0 auto;
}
.title_area::after {
  position: absolute;
  z-index: 0;
  display: block;
  content: "";
  width: 100vw;
  height: 1px;
  background: #000000;
  margin: auto;
  inset: auto -100% 0;
}
.page_portal .title_area::after {display: none;}
.title_area .p_title {
  color: var(--color01);
  font-size: 18px;
  font-family: var(--zen);
  font-weight: 700;
  line-height: 1.2;
  margin: 0 0 0.5em;
  overflow: hidden;
  transform: translateY(100%);
  opacity: 0;
  transition: 0.5s 0.5s;
  height: 1.2em;
}
.loaded .title_area .p_title {
  transform: translateY(0);
  opacity: 1;
}
.title_area .p_title + span {
  display: block;
  color: var(--color01);
  font-family: var(--inter);
  font-size: 50px;
  font-weight: 800;
  line-height: 1;
  overflow: hidden;
  height: 1.1em;
  opacity: 0;
}
.loaded .title_area .p_title + span {opacity: 1;}
.title_area .p_title + span > span {
  display: inline-block;
  transform: translateY(100%);
}
.loaded .title_area .p_title + span > span {transform: translateY(0);}
.title_area + .title_img {
  aspect-ratio: 4/1;
  border-top: solid 1px #000000;
  border-bottom: solid 1px #000000;
  overflow: hidden;
}
.title_area + .title_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.15);
  transition: 10s;
}
.loaded .title_area + .title_img img {transform: scale(1);}
.link_list ul {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  flex-wrap: wrap;
}
.link_list li {
  width: 32%;
  margin: 0 0 2%;
  border: solid 1px #000000;
}
.link_list li a {
  display: block;
  text-align: center;
  text-decoration: none;
  height: 100%;
  transition: 0.5s;
}
.link_list li a figure {
  aspect-ratio: 450 / 190;
  border-bottom: solid 1px #000000;
  overflow: hidden;
}
.link_list li a figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: 0.5s;
}
.link_list li a p {
  margin: 0 auto;
  padding: 1em 0.5em;
  font-weight: 400;
  text-align: center;
}
.link_list li a:hover {background: #f5f5f5;}
.link_list li a:hover figure img {transform: scale(1.1);}
.editor_contents h1 {
  position: relative;
  z-index: 0;
  font-size: 2em;
  font-weight: 500;
  line-height: 1.4;
  margin: 0 0 90px;
  padding: 1em 0.75em;
}
.editor_contents h1::before ,
.editor_contents h1::after {
  position: absolute;
  z-index: 0;
  display: block;
  content: "";
  margin: auto;
}
.editor_contents h1::before {
  width: 2px;
  height: calc(100% - 2em);
  background: var(--color01);
  inset: 0 auto 0 0;
}
.editor_contents h1::after {
  width: 100vw;
  height: 1px;
  background: #000000;
  inset: auto -100% 0;
}
*.border_top,
*.border_bottom {
  position: relative;
  z-index: 0;
}
*.border_top::before,
*.border_bottom::after {
  position: absolute;
  z-index: 0;
  display: block;
  content: "";
  margin: auto;
  width: 100vw;
  height: 1px;
  background: #000000;
}
*.border_top::before { inset: 0 -100% auto;}
*.border_bottom::after { inset: auto -100% 0;}
.editor_contents h2 {
  position: relative;
  z-index: 0;
  color: var(--color01);
  font-size: 26px;
  font-weight: 500;
  margin: 90px 0 30px;
  padding: 0 0 0 1.5em;
}
.editor_contents h2::before {
  position: absolute;
  z-index: 0;
  display: block;
  content: "";
  width: 1em;
  height: 2px;
  background: var(--color01);
  inset: 0.85em auto 0 0;
}
.editor_contents h3 {
  color: var(--color01);
  font-size: 20px;
  font-weight: 400;
  margin: 70px 0 30px;
}
.editor_contents h4 {
  font-size: 18px;
  font-weight: 400;
  margin: 70px 0 30px;
}
.editor_contents p {
  line-height: 1.875;
  margin: 0 0 1em;
}
.editor_contents p a {color: var(--color01);}
.editor_contents p a[target="_blank"]::after {
  display: inline-block;
  vertical-align: middle;
  content: "";
  width: 1.2em;
  height: 1.2em;
  margin: 0 0 0.25em 0.5em;
  background: url("../img/common/ico_target_b.svg") no-repeat center / contain;
}


.editor_contents table {
  width: auto;
  height: auto;
  margin: 0 0 1em;
  max-width: 100%;
  clear: both;
}
.editor_contents table th {}
.editor_contents table td {}
.editor_contents ul {}
.editor_contents ul li {}
.editor_contents ul li::before {}
.editor_contents a.link {}
.editor_contents a.link:hover {text-decoration: underline;}
.editor_contents a.link::before {}
.editor_contents a.link::after {}
.editor_contents a[target="_blank"] {}
.editor_contents a[href$=".pdf"] {}
.editor_contents ol {}
.editor_contents ol li {}



@media screen and (max-width: 1600px) {

  .title_area {padding: 0 min(5%, 30px);}
  
}

/* -----------------------------------------------------------
 news / faq
----------------------------------------------------------- */

.cat_link {
  padding: 60px min(5% , 50px);
  border-bottom: solid 1px #000000;
}
.cat_link ul {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
}
.cat_link ul li {
  display: inline-block;
  width: auto;
  min-width: 200px;
  height: 45px;
  line-height: 43px;
  text-align: center;
  margin: 10px 20px 10px 0;
  border: solid 1px #000000;
  cursor: pointer;
}
.cat_link ul li:hover,
.cat_link ul li.active  {
  color: var(--color01);
  border: solid 1px var(--color01);
}
.cat_link ul li a {
  display: block;
  height: 100%;
  text-decoration: none;
}
.more_news {
  position: relative;
  z-index: 0;
  padding: 55px 0;
  text-align: center;
}
.more_news::after {
  position: absolute;
  z-index: 0;
  display: block;
  content: "";
  width: 100vw;
  height: 1px;
  background: #000000;
  margin: auto;
  inset: auto -100% 0;
}
.more_news button {
  font-size: 18px;
  transition: 0.5s;
}
.more_news button::after {
  display: inline-block;
  vertical-align: middle;
  content: "";
  width: 1.4em;
  height: 1.4em;
  background: url("../img/common/ico_ab.svg") no-repeat center / contain;
  margin: 0 0 0.25em 0.5em;
  transition: 0.5s;
}
.more_news button:hover {color: var(--color01);}
.more_news button:hover::after {background: url("../img/common/ico_ab_b.svg") no-repeat center / contain;}

.news_list > li {
  position: relative;
  z-index: 0;
  line-height: 1.5;
}
.news_list > li::before {
  position: absolute;
  z-index: -1;
  display: block;
  content: "";
  width: 100vw;
  height: 100%;
  background: #F5F5F5;
  margin: auto;
  inset: 0 -100%;
  opacity: 0;
  transition: 0.5s;
}
.news_list > li:hover::before {opacity: 1;}
.news_list > li.no_link:hover::before {opacity: 0;}
.news_list > li::after {
  position: absolute;
  z-index: 0;
  display: block;
  content: "";
  width: 100vw;
  height: 1px;
  background: #000000;
  margin: auto;
  inset: auto -100% 0;
}
.news_list > li a ,
.news_list > li > span {
  position: relative;
  z-index: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.5em 0;
  text-decoration: none;
  transition: 0.5s;
}
.news_list > li a:hover {color: var(--color01);}
.news_list > li date {
  width: 7.5em;
  padding: 0 3em 0 0;
}
.news_list > li .news_cat {
  width: 8em;
  padding: 0 2em 0 0;
}
.news_list > li .news_cat li::before {content: "・";}
.news_list  > li .btn_more {
  width: calc(100% - 16em);
  font-family: inherit;
  font-weight: 400;
  padding: 0 2em 0 0;
}
.news_list > li .btn_more::before ,
.news_list > li .btn_more::after {inset: 0 0 0 auto;}
.news_list > li.no_link .btn_more::before ,
.news_list > li.no_link .btn_more::after {display: none;}
.page_faq .cat_link {padding-bottom: 0;}
.page_faq .cat_link ul {margin-bottom: 70px;}
.page_faq .cat_link ul + p {
  max-width: 1100px;
  margin: 0 auto 10px;
}
.faq_list {
  position: relative;
  z-index: 0;
  line-height: 1.5;
}
.faq_list::after {
  position: absolute;
  z-index: 0;
  display: block;
  content: "";
  width: 100vw;
  height: 1px;
  background: #000000;
  margin: auto;
  inset: auto -100% 0;
}
.faq_list dt {
  position: relative;
  z-index: 0;
  padding: 1.5em 0;
  cursor: pointer;
}
.faq_list dt::before {
  position: absolute;
  z-index: -1;
  display: block;
  content: "";
  width: 100vw;
  height: 100%;
  background: #F5F5F5;
  margin: auto;
  inset: 0 -100%;
  opacity: 0;
  transition: 0.5s;
}
.faq_list dt.open::before ,
.faq_list dt:hover::before {opacity: 1;}
.faq_list dt::after {
  position: absolute;
  z-index: 0;
  display: block;
  content: "";
  width: 100vw;
  height: 1px;
  background: #000000;
  margin: auto;
  inset: auto -100% 0;
}
.faq_list dt span:nth-of-type(1) {
  display: inline-block;
  font-size: 1.6875em;
  font-family: var(--inter);
  font-weight: 500;
  width: 2em;
  vertical-align: top;
}
.faq_list dt span:nth-of-type(2) {
  position: relative;
  z-index: 0;
  display: inline-block;
  width: calc(100% - 4em);
  padding: 0.5em 2em 0 0;
}
.faq_list dt span:nth-of-type(2)::after {
  position: absolute;
  display: block;
  content: "";
  width: 1.4em;
  height: 1.4em;
  margin: auto;
  inset: 0 0 0 auto;
  border-radius: 50%;
  transition: right 0.5s;
  z-index: 1;
  background: url("../img/common/ico_ab.svg") no-repeat center / contain;
}
.faq_list dt:hover span:nth-of-type(2)::after {
  right: -0.25em;
  background: url("../img/common/ico_ab_b.svg") no-repeat center / contain;
}
.faq_list dt.open span:nth-of-type(2)::after {transform: rotate(180deg);}
.faq_list dd {
  display: none;
  color: var(--color01);
  padding: 1.5em 0 1.5em 3.5em;
}
.faq_list dd span:nth-of-type(1) {
  display: inline-block;
  font-size: 1.6875em;
  font-family: var(--inter);
  font-weight: 500;
  width: 2em;
  vertical-align: top;
}
.faq_list dd span:nth-of-type(2) {
  display: inline-block;
  width: calc(100% - 2em - 10%);
  padding: 0.5em 0 0;
  word-break: break-all;
}
.faq_list dd span:nth-of-type(2) a {text-decoration: underline;}

@media screen and (max-width: 1600px) {
  
  .cat_link {padding: 70px min(5% , 30px);}
  .cat_link ul {max-width: 1140px;}
  .page_faq .cat_link ul + p {max-width: 1140px;}
}


/* -----------------------------------------------------------
 catalog/manual
----------------------------------------------------------- */

.dl_list {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
}
.dl_list::before,
.dl_list::after {
  order: 1;
  display: block;
  content: "";
  width: 24.5%
}
.dl_list > li {
  position: relative;
  z-index: 0;
  width: 24.5%;
  margin: 0 0 90px;
}
.dl_list > li:nth-last-child(1) ,
.dl_list > li:nth-last-child(2) ,
.dl_list > li:nth-last-child(3) ,
.dl_list > li:nth-last-child(4) {margin: 0;}
.dl_list > li::after {
  position: absolute;
  z-index: 0;
  display: block;
  content: "";
  width: 200vw;
  height: 1px;
  background: #000000;
  margin: auto;
  inset: auto -50vw 0;
}
.dl_list > li figure {
  position: relative;
  z-index: 0;
  height: 0;
  padding: 100% 0 0;
  margin: 0 0 10px;
  width: 100%;
}
.dl_list > li figure img {
  position: absolute;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  border: solid 1px #000000;
  inset: 0;
  margin: auto;
}
.dl_list > li > p {
  font-feature-settings: 'palt';
  height: 110px;
  line-height: 1.5;
  font-size: 15px;
  padding: 0 1em;
}
.dl_list > li p span {
  display: block;
  color: var(--color01);
  font-size: 18px;
  font-weight: 500;
  margin: 0 0 10px;
}
.dl_list > li p span a[target="_blank"]::after {display: none;}
.dl_list > li ul li {
  position: relative;
  z-index: 0;
  font-size: 18px;
  font-weight: 500;
  text-align: center;
  padding: 1.25em 0;
  line-height: 1.2;
}
.dl_list > li ul li::after {
  position: absolute;
  z-index: 0;
  display: block;
  content: "";
  width: 200vw;
  height: 1px;
  background: #000000;
  margin: auto;
  inset: 0 -50vw auto;
}
.dl_list > li ul li a {text-decoration: none;}
.dl_list > li ul li a:hover {color: var(--color01);}
.dl_list > li ul li a::after {
  display: inline-block;
  content: "";
  margin: 0 0 0 0.5em;
  vertical-align: middle;
  width: 1.4em;
  height: 1.4em;
}
.dl_list > li ul li a[target="_blank"]::after {
  background: url("../img/common/ico_target.svg") no-repeat center / contain;
  margin-bottom: 0.25em;
}
.dl_list > li ul li a[target="_blank"]:hover::after {background: url("../img/common/ico_target_b.svg") no-repeat center / contain;}
.dl_list > li ul li a[href$=".pdf"]::after ,
.dl_list > li ul li a[href$=".pdf"]:hover::after {
  background: url("../img/common/ico_pdf.svg") no-repeat center / contain;
  margin-bottom: 0.25em;
}
.dl_list > li ul li .nodata {
  line-height: 1.2;
  margin: 0;
}
.dl_list > li ul li .nodata::after {
  display: inline-block;
  content: "";
  margin: 0 0 0 0.5em;
  vertical-align: middle;
  width: 1.4em;
  height: 1.4em;
  margin-bottom: 0.25em;
}
.dl_list > li.pc_hidden ul li:nth-child(1) {display: none;}



@media screen and (max-width: 1600px) {
  .dl_list > li > p {font-size: 13px;}
  .dl_list > li > p span {font-size: 15px;}
  .dl_list > li ul li {font-size: 15px;}
}

/* -----------------------------------------------------------
 portal
----------------------------------------------------------- */

.lead_title {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  margin: 120px auto;
}
.lead_title h2 {
  display: inline-block;
  width: fit-content;
  color: var(--color01);
  font-family: var(--zen);
  font-size: min(2.1vw, 2.625em);
  font-weight: 900;
  line-height: 1.2;
  text-align: center;
  margin: 0 1.5em 0 0;
  padding: 0 0 0.25em;
  border-bottom: solid 2px var(--color01);
}
.page_products .lead_title h2 {width: 8.5em;}
.page_about .lead_title h2 {width: 13em;}
.page_sim .lead_title h2 {width: 13em;}
.page_sim .lead_title h2.vs {width: 19em;}
.lead_title p {
  display: inline-block;
  width: fit-content;
  font-size: min(1vw, 1em);
  line-height: 1.875;
}
.lead_text {
  position: relative;
  z-index: 0;
  line-height: 1.875;
  padding: 70px 0;
  font-feature-settings: 'palt';
}
.lead_text::after {
  position: absolute;
  z-index: 0;
  display: block;
  content: "";
  width: 100vw;
  height: 1px;
  background: #000000;
  margin: auto;
  inset: auto -100% 0;
}
.lead_text > *:nth-child(1){margin-bottom: 0;}
.portal_box h2 {
  color: var(--color01);
  font-size: min(1.7vw , 2em);
  font-weight: 700;
  text-align: center;
  padding: 1em min(5% , 50px);
  border-top: solid 1px #000000;
}
.portal_box ul + h2 {border: none;}
.portal_box ul {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  flex-wrap: wrap;
  border-top: solid 1px #000000;
}
.portal_box ul li {
  width: 50%;
  border-bottom: solid 1px #000000;
}
.portal_box ul li:nth-child(even) {border-left: solid 1px #000000;}
.portal_box ul li a {
  position: relative;
  z-index: 1;
  display: block;
  padding: 10% 12.5% 0;
  text-align: center;
  text-decoration: none;
  transition: 0.5s;
}
.portal_box ul li a:hover {background: #F5F5F5;}
.portal_box ul li a::before {
  position: absolute;
  z-index: 0;
  content: "";
  width: 100%;
  height: 1px;
  background: #000000;
  inset: 25% 0 auto;
}
.portal_box ul li a figure {
  position: relative;
  z-index: 2;
  aspect-ratio: 532 / 328;
  overflow: hidden;
  border: solid 1px #000000;
}
.portal_box ul li a figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: 0.5s;
}
.portal_box ul li a:hover figure img {transform: scale(1.1);}
.portal_box ul li a .btn_more {
  font-size: min(0.9vw, 1.125em);
  text-align: center;
  padding: 1em 0;
  margin: 0 auto;
}
.strength_sec {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 0 0 170px;
}
.strength_sec:nth-of-type(1) {margin: 220px 0 170px;}
.strength_sec:nth-last-of-type(1) {margin: 0 0 160px;}
.strength_sec:nth-of-type(even) {flex-direction: row-reverse;}
.strength_sec > div {
  width: 50%;
  padding: 2em min(5% , 50px);
  border-top: solid 1px #000000;
  border-bottom: solid 1px #000000;
}
.strength_sec > div > div {
  position: relative;
  z-index: 0;
  width: min(100%,500px);
}
.strength_sec:nth-of-type(odd) > div > div {margin-left: auto;}
.strength_sec:nth-of-type(even) > div > div {margin-right: auto;}

.strength_sec > div > div h2 {
  position: absolute;
  z-index: 1;
  inset: auto auto 135% 0 ;
  color: var(--color01);
  font-size: min(1.7vw,2em);
  font-weight: 700;
  line-height: 1.1;
}
.strength_sec > div > div h2 span:nth-of-type(1) {
  display: block;
  font-family: var(--inter);
  font-weight: 600;
  font-size: 0.625em;
  color: #000000;
  margin: 0 0 1em;
}
.strength_sec > div > div h2 span:nth-of-type(2) {
  display: inline-block;
  vertical-align: text-bottom;
  font-family: var(--inter);
  font-weight: 700;
  font-size: 3.125em;
  margin: 0 0.5em 0 0;
  line-height: 0.8;
  transform: scale(0.9);
}
.strength_sec > div > div p {
  font-size: min(1vw , 1em);
  line-height: 2;
}
.strength_sec > figure {
  width: 50%;
  aspect-ratio: 800 / 410;
  border: solid 1px #000000;
}
.strength_sec:nth-of-type(odd) > figure {border-right: none;}
.strength_sec:nth-of-type(even) > figure {border-left: none;}
.strength_sec > figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media screen and (max-width: 1200px) {
  main.page_portal {font-size: 20px;}
  .lead_title h2 {font-size: min(3.12vw, 2.625em);}
  .lead_title p {font-size: min(1.5vw, 1em);}
  .portal_box h2 {font-size: min(2.55vw , 2em);}
  .portal_box ul li a .btn_more {font-size: min(1.35vw, 24px);}
  .strength_sec > div {padding: 1em min(5%, 50px);}
  .strength_sec > div > div h2 {
    font-size: min(2.55vw,2em);
    inset: auto auto 120% 0 ;
  }
  .strength_sec > div > div p {font-size: min(1.5vw , 1em);}
}

/* -----------------------------------------------------------
 home
----------------------------------------------------------- */

#luxy {padding: 100dvh 0 0;}
.fixed_movie {
  position: fixed;
  z-index: 0;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  width: calc(100% - 440px);
  height: 100dvh;
  background: #CCC;
  inset: 0 0 0 auto;
}
.fixed_movie > h2 {
  position: relative;
  z-index: 1;
  width: 42.5%;
  right: 5%;
}
.fixed_movie > img,
.fixed_movie > video {
  position: absolute;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.loading_area {
  position: fixed;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100dvh;
  background: var(--color01);
  z-index: 1100;
  transition: 0.5s;
  opacity: 0;
  visibility: hidden;
  
  /*display: none;*/
}

.loading_area.loading {
  opacity: 1;
  visibility: visible;
}
.loading_area p {
  width: 184px;
  opacity: 0;
  transition: 1s 0.5s;
}
.loaded .loading_area p {opacity: 1;}
main.home .scroll {
  position: absolute;
  z-index: 0;
  inset: auto 5% 100% auto;
  color: #FFFFFF;
  font-size: 1.25em;
  font-family: var(--inter);
  font-weight: 700;
  writing-mode: vertical-rl;
  padding: 0 0 100px;
}
main.home .scroll::before {
  position: absolute;
  z-index: 0;
  inset: 65px -100% auto -100%;
  margin: auto;
  content: '';
  display: block;
  width: 1px;
  height: 90px;
  background: #fff;
  animation: scrollDown 2.5s infinite;
}
@keyframes scrollDown {
  0%{clip-path: inset(0 0 100% 0);}
  5%{clip-path: inset(0 0 100% 0);}
  45%{clip-path: inset(0 0 0 0);}
  55%{clip-path: inset(0 0 0 0);}
  95%{clip-path: inset(100% 0 0 0);}
  100%{clip-path: inset(100% 0 0 0);}
}
main.home .scroll a {
  position: relative;
  z-index: 0;
  text-decoration: none;
}
main.home .scroll a::before,
main.home .scroll a::after {
  position: absolute;
  left: 0;
  content: '';
  width: 1px;
  transition: .3s;
}
main.home .scroll a::before {
  z-index: -2;
  background: #fff;
  height: 0;
  top: auto;
  bottom: 0;
}
main.home .scroll a::after {
  z-index: -1;
  background: transparent;
  height: 100%;
  top: 0;
  bottom: auto;
}
main.home .scroll a:hover::before {
  height: 100%;
  top: 0;
  bottom: auto;
}
main.home .scroll a:hover::after {
  height: 0;
  top: auto;
  bottom: 0;
}
main.home section h2 {
  color: var(--color01);
  font-size: min(0.9vw, 1.125em);
  font-weight: 700;
  margin: 0 0 2.2em;
  line-height: 1.4;
}
main.home section h2 span {
  display: block;
  font-size: 2.77em;
  font-family: var(--inter);
  font-weight: 800;
}
.home_bnr {
  max-width: 1500px;
  padding: 90px min(5% , 50px);
  margin: 0 auto;
}
.home_bnr + .home_bnr {padding-top: 0;}
.home_bnr a {
  position: relative;
  z-index: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  aspect-ratio: 1400 / 400;
  border: solid 1px #000000;
  text-decoration: none;
}
.home_bnr a::before {
  position: absolute;
  z-index: 1;
  display: block;
  content: "";
  width: 100%;
  height: 100%;
  inset: 0;
  background: var(--color01);
  opacity: 0;
  transition: 0.5s;
}
.home_bnr a:hover::before {opacity: 0.6;}
.home_bnr a img {
  position: absolute;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.home_bnr a > div {
  position: relative;
  z-index: 2;
  color: #FFFFFF;
  line-height: 1.2;
  text-align: center;
  opacity: 0;
  transition: 0.5s;
}
.home_bnr a:hover > div {opacity: 1;}
.home_bnr a > div p:nth-of-type(1) {
  font-size: min(1.5vw, 1.875em);
  font-family: var(--zen);
  font-weight: 700;
}
.home_bnr a > div p:nth-of-type(1) span {
  display: block;
  font-size: 3.67em;
  font-family: var(--inter);
  font-weight: 700;
}
.home_bnr a > div p:nth-of-type(2) {
  font-size: min(0.9vw, 1.125em);
  font-family: var(--zen);
  font-weight: 700;
}
.home_bnr a > div .btn_more ,
.home_bnr a:hover > div .btn_more {
  font-size: min(0.9vw, 1.125em);
  margin: 1.5em auto 0;
  color: #FFFFFF;
  transform: translateX(-0.8em);
}
.home_bnr a > div .btn_more::after ,
.home_bnr a:hover > div .btn_more::after {background: url("../img/common/ico_target_w.svg") no-repeat center / contain;}

main.home .home_special h2 {
  padding: 50px 0 0;
  margin: 0 auto 40px;
}
main.home .home_special h2 img {
  display: block;
  width: min(50vw,628px);
  margin: 0 auto;
}

.home_special .flex {
  justify-content: space-between;
  align-items: stretch;
  border-top: solid 1px #000000;
  border-bottom: solid 1px #000000;
}
.home_special .flex > section {width: 50%;}
.home_special .flex > section:nth-child(1) {border-right: solid 1px #000000;}
.home_special .flex > section a {
  display: block;
  height: 100%;
  text-decoration: none;
  transition: 0.5s;
}
.home_special .flex > section a:hover figure video {transform: scale(1.1);}

.home_special .flex > section a h3 {
  font-size: 1.25em;
  font-weight: 600;
  text-align: center;
  padding: 2em 0 1em;
  border-bottom: solid 1px #000000;
  transition: 0.5s;
}
.home_special .flex > section a figure {
  aspect-ratio: 800 / 400;
  overflow: hidden;
  border-bottom: solid 1px #000000;
}
.home_special .flex > section a figure video ,
.home_special .flex > section a figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: bottom;
  transition: 0.5s;
}
.home_special .flex > section a > section {padding: 90px min(5%,70px) 60px;}
.home_special .flex > section a > section h4 {
  font-size: min(1.3vw,1.625em);
  font-weight: 700;
  font-feature-settings: "palt";
  line-height: 1.5;
  margin: 0 0 1em;
  transition: 0.5s;
}
.home_special .flex > section a > section p {
  font-size: min(0.75vw, 1.125em);
  margin: 0 0 2em;
}
.home_special .flex > section a > section .btn_more {
  font-size: min(0.9vw, 1.125em);
  margin: 0;
}
.home_special .flex > section a:hover {background: #f5f5f5;}
.home_special .flex > section a:hover h3 {color: var(--color01);}
.home_special .flex > section a:hover > section h4 {color: var(--color01);}
.home_special .flex > section a:hover figure img {transform: scale(1.1);}

.home_pickup {margin: 0 auto 90px;}
.home_pickup ul {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
}
.home_pickup ul li {
  width: 23.6%;
  border: solid 1px #000000;
}
.home_pickup ul li a {
  display: block;
  height: 100%;
  text-decoration: none;
  transition: 0.5s;
  text-align: center;
}
.home_pickup ul li a figure {
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-bottom: solid 1px #000000;
}
.home_pickup ul li a figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: 0.5s;
}
.home_pickup ul li a h3 {
  color: var(--color01);
  font-size: min(0.9vw, 1.125em);
  font-weight: 500;
  margin: 1.75em auto 0.5em;
}
.home_pickup ul li a p {
  font-size: min(0.8vw, 1em);
  padding: 0 min(6% ,30px);
  text-align: left;
}
.home_pickup ul li a .btn_more {
  font-size: min(0.9vw, 1.125em);
  text-align: center;
  margin: 1.5em auto;
  padding: 0;
  transform: translateX(-0.8em);
}
.home_pickup ul li a:hover {background: #f5f5f5;}
.home_pickup ul li a:hover figure img {transform: scale(1.1);}

.home_about {margin: 0 auto 100px;}
.home_about .flex {
  justify-content: space-between;
  align-items: stretch;
  flex-wrap: wrap;
}
.home_about .flex section {
  position: relative;
  width: 50%;
}
.home_about .flex section::before ,
.home_about .flex section::after {
  position: absolute;
  z-index: 0;
  width: 200vw;
  height: 1px;
  background: #000000;
  margin: auto;
}
.home_about .flex section:nth-child(odd) {border-right: solid 1px #000000;}
.home_about .flex section:nth-child(odd)::after {
  content: "";
  inset: auto -100% 0;
}
.home_about .flex section:nth-child(1)::before {
  content: "";
  inset: 0 -100% auto;
}
.home_about .flex section a {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  height: 100%;
  padding: 12% min(12.5% , 100px) 12% 0;
  text-decoration: none;
}
.home_about .flex section a::before ,
.home_about .flex section a::after {
  position: absolute;
  z-index: -1;
  display: block;
  content: "";
}
.home_about .flex section:nth-child(odd) a::before {
  width: 150vw;
  height: 1px;
  background: #000000;
  margin: auto;
  inset: 22% auto auto -100%;
}
.home_about .flex section a::after {
  z-index: -2;
  width: 150%;
  height: 100%;
  background: #F5f5f5;
  inset: 0 0 0 auto;
  opacity: 0;
  transition: 0.5s;
}
.home_about .flex section:nth-child(even) a::after {inset: 0 auto 0 0;}
.home_about .flex section a:hover::after {opacity: 1;}
.home_about .flex section:nth-child(even) a {padding: 12% 0 12% min(12.5% , 100px);}

.home_about .flex section a > p {
  position: absolute;
  z-index: 1;
  inset: 2.5% 7% auto auto;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  text-align: right;
  width: fit-content;
  line-height: 1.25;
  font-size: min(0.8vw, 1em);
  font-family: var(--inter);
  font-weight: 300;
  transition: 0.5s;
}
.home_about .flex section a > p span {
  display: block;
  font-size: 4.7em;
  font-weight: 700;
  color: #fff;
  -webkit-text-stroke: 1px #000; 
  margin: 0 0 0 0.25em;
  transition: 0.5s;
  transform: scaleX(0.9);
}
.home_about .flex section:nth-child(even) a > p {inset: 2.5% -3% auto auto;}
.home_about .flex section a:hover > p {color: var(--color01);}
.home_about .flex section a:hover > p span {
  color: var(--color01);
  -webkit-text-stroke: 1px var(--color01); 
}
.home_about .flex section a figure {
  position: relative;
  z-index: 2;
  width: 50%;
  aspect-ratio: 300 / 370;
  border: solid 1px #000000;
  overflow: hidden;
}
.home_about .flex section a figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: 0.5s;
}
.home_about .flex section a:hover figure img {transform: scale(1.1);}
.home_about .flex section a > div {width: 44%;}
.home_about .flex section a > div h3 {
  color: var(--color01);
  font-size: min(0.75vw, 1em);
  font-weight: 700;
  margin: 0 0 1em;
  line-height: 1.5;
}
.home_about .flex section a > div h3 span {
  display: block;
  font-family: var(--inter);
  font-size: 2.7em;
  line-height: 1;
  margin: 0 0 0.25em;
}
.home_about .flex section a > div h3 + p {
  font-size: min(0.75vw, 1em);
  margin: 0 0 1em;
}
.home_about .flex section a > div .btn_more {font-size: min(0.9vw, 1.125em);}
.home_news .flex {
  position: relative;
  z-index: 0;
  justify-content: space-between;
  align-items: stretch;
}
.home_news .flex::before,
.home_news .flex::after {
  position: absolute;
  z-index: 2;
  display: block;
  content: "";
  width: 120vw;
  height: 1px;
  background: #000000;
  margin: auto;
}
.home_news .flex::before {inset: 0 -100% auto;}
.home_news .flex::after {inset: auto -100% 0;}
.home_news .flex .news_left {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex-direction: column;
  width: 150px;
}
.home_news .flex .news_left ul {margin: 0 0 1em;}
.home_news .flex .news_left ul li {
  font-size: min(0.9vw, 1.125em);
  margin: 0 0 0.75em;
  cursor: pointer;
  transition: 0.5s;
}
.home_news .flex .news_left ul li.active,
.home_news .flex .news_left ul li:hover {color: var(--color01);}
.home_news .flex .news_left div a {text-decoration: none;}
.home_news .flex .news_left .btn_more {font-size: min(0.9vw,1.125em);}
.home_news .flex .tab_content {
  display: none;
  width: 100%;
  max-width: 1000px;
  border-left: solid 1px #000000;
}
.home_news .flex .tab_content.active {display: block;}
.home_news .flex .tab_content > .news_list > li {font-size: min(0.75vw, 1em);}
.home_news .flex .tab_content > .news_list > li::before {inset: 0 auto 0 0;}
.home_news .flex .tab_content > .news_list > li::after {inset: auto auto 0 0;}
.home_news .flex .tab_content > .news_list > li > span ,
.home_news .flex .tab_content > .news_list > li a {padding: 1.5em 0 1.5em 5%;}
.home_news .flex .tab_content > ul > li.pen a {pointer-events: none;}
.home_news .flex .tab_content > ul > li.pen::before,
.home_news .flex .tab_content > ul > li.pen::after {display: none;}
.home_news .flex .tab_content > ul > li .btn_more {font-size: min(0.75vw, 1em);}
.home_news .flex .tab_content > ul > li .btn_more span {
	-webkit-line-clamp: 1;
	display: -webkit-box;
	-webkit-box-orient: vertical;
  overflow: hidden;
}

.home .link_list {margin: 140px auto;}
.home .link_list .btn_more {font-size: min(0.9vw, 1.125em);}

.home_faq .flex {
  position: relative;
  z-index: 0;
  justify-content: space-between;
  align-items: stretch;
}
.home_faq .flex::before,
.home_faq .flex::after {
  position: absolute;
  z-index: 2;
  display: block;
  content: "";
  width: 120vw;
  height: 1px;
  background: #000000;
  margin: auto;
}
.home_faq .flex::before {inset: 0 -100% auto;}
.home_faq .flex::after {inset: auto -100% 0;}
.home_faq .flex > div:nth-of-type(1) {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex-direction: column;
  width: 150px;
}
.home_faq .flex > div:nth-of-type(1) div a {text-decoration: none;}
.home_faq .flex > div:nth-of-type(1) .btn_more {font-size: min(0.9vw, 1.125em);}

.home_faq .flex > div:nth-of-type(2) {
  width: 100%;
  max-width: 1000px;
  border-left: solid 1px #000000;
}
.home_faq .flex .faq_list {font-size: min(0.75vw, 1em);}
.home_faq .flex .faq_list::after {inset: auto auto 0 0;}
.home_faq .flex .faq_list dt {padding: 1.5em 0 1.5em 5%;}
.home_faq .flex .faq_list dt::before {inset: 0 auto 0 0;}
.home_faq .flex .faq_list dt::after {inset: auto auto 0 0;}
.home_faq .flex .faq_list dd {padding: 1.5em 0 1.5em calc(5% + 3.5em);}

@media screen and (max-width: 1600px) {
  .fixed_movie {width: calc(100% - 350px);}
  .home_bnr {padding: 90px min(5% , 30px);}
}

@media screen and (max-width: 1200px) {
  .fixed_movie {width: 100%;}
  main.home {font-size: 20px;}
  main.home section h2 {font-size: min(1.35vw, 1.125em);}
  .home_bnr a > div p:nth-of-type(1) {font-size: min(2.25vw, 1.875em);}
  .home_bnr a > div p:nth-of-type(2) {font-size: min(1.35vw, 1.125em);}
  .home_bnr a > div .btn_more ,
  .home_bnr a:hover > div .btn_more {font-size: min(1.35vw, 1.125em);}
  .home_special .flex > section a > section h4 {font-size: min(1.95vw,1.625em);}
  .home_special .flex > section a > section p {font-size: min(1.35vw, 1.125em);}
  .home_special .flex > section a > section .btn_more {font-size: min(1.35vw, 1.125em);}
  .home_pickup ul li a h3 {font-size: min(1.35vw, 1.125em);}
  .home_pickup ul li a p {font-size: min(1.2vw, 1em);}
  .home_pickup ul li a .btn_more {font-size: min(1.35vw, 1.125em);}
  .home_about .flex section a {padding: 12% 5% 10% 0;}
  .home_about .flex section:nth-child(even) a {padding: 12% 0 10% 5%;}
  .home_about .flex section a > p {font-size: min(1.2vw, 1em);}
  .home_about .flex section a > div h3 {font-size: min(1.125vw, 1em);}
  .home_about .flex section a > div h3 + p {font-size: min(1.125vw, 1em);}
  .home_about .flex section a > div .btn_more {font-size: min(1.35vw, 1em);}
  .home_news .flex .news_left {width: 30%;}
  .home_news .flex .news_left ul li {font-size: min(1.35vw, 1.125em);}
  .home_news .flex .news_left .btn_more {font-size: min(1.35vw, 1.125em);}
  .home_news .flex .tab_content {max-width: 70%;}
  .home_news .flex .tab_content > .news_list > li {font-size: min(1.125vw, 1em);}
  .home_news .flex .tab_content > .news_list > li .btn_more {font-size: min(1.125vw, 1em);}
  .home .link_list {margin: 140px auto;}
  .home .link_list .btn_more {font-size: min(1.35vw, 1em);}
  .home_faq .flex > div:nth-of-type(1) {width: 30%;}
  .home_faq .flex > div:nth-of-type(1) .btn_more {font-size: min(1.35vw, 1.125em);}
  .home_faq .flex > div:nth-of-type(2) {max-width: 70%;}
  .home_faq .flex .faq_list {font-size: min(1.125vw, 1em);}
}

/* -----------------------------------------------------------
 products
----------------------------------------------------------- */

.page_products .title_area {margin-bottom: 70px;}
.page_products.page_portal .title_area {margin-bottom: 0;}
.page_products .product_box {
  justify-content: space-between;
  align-items: flex-start;
}
.page_products .product_box > figure {
  position: relative;
  z-index: 1;
  width: 47%;
  aspect-ratio: 525/800;
  border: solid 1px #000000;
}
.page_products .product_box > figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.page_products .product_box > div {
  position: relative;
  z-index: 0;
  width: 43%;
}
.page_products .product_box > div::after {
  position: absolute;
  z-index: -1;
  display: block;
  content: "";
  width: 150vw;
  height: 1px;
  background: #000000;
  margin: auto;
  inset: auto -100vw 0;
}
.page_products .product_box h2 {
  color: var(--color01);
  font-size: 2em;
  line-height: 1.5;
  font-weight: 700;
  margin: 0 0 20px;
  padding: 0;
  font-feature-settings: 'palt';
}
.page_products .product_box h2::before {display: none;}
.page_products .product_box h3 {
  position: relative;
  z-index: 0;
  color: var(--color01);
  font-size: 26px;
  font-weight: 500;
  line-height: 1.3;
  padding: 0.75em 0;
  margin: 70px 0 30px;
}
.page_products .product_box h3::before,
.page_products .product_box h3::after {
  position: absolute;
  z-index: -1;
  display: block;
  content: "";
  width: 150vw;
  height: 1px;
  background: #000000;
  margin: auto;
}
.page_products .product_box h3::before {inset: 0 -100vw auto;}
.page_products .product_box h3::after {inset: auto -100vw 0;}
.page_products .product_box .flex figure {width: 40%;margin: 0 0 30px 10%;}
.page_products .product_box .square {margin: 0 0 100px;}
.page_products .product_box .square .flex figure {width: 100%;margin: 0 0 30px;}
.page_products .product_box .square .flex .square_epec {
  position: absolute;
  z-index: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  width: 100%;
  inset: calc(100% + 30px) auto auto 0;
}
.page_products .product_box .square .flex .square_epec li {
  font-size: 1.1em;
  line-height: 1.2;
  margin: 0 0 0.5em;
}
.page_products .product_box .square .flex .square_epec li span {
  display: inline-block;
  width: auto;
  padding: 0.2em 0.5em;
  border: solid 1px #000000;
  margin: 0 1em 0 0;
}

.page_products .products_val {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  flex-wrap: wrap;
  margin: 70px 0 0;
}
.page_products .products_val::after {
  display: block;
  content: "";
  height: 0;
  width: 47%;
}
.page_products .products_val li {
  position: relative;
  width: 47%;
  color: var(--color01);
  font-size: 18px;
  font-weight: 700;
  padding: 2em 0.5em;
  background: #ddeaf6;
  text-align: center;
}
.page_products .products_val li span {
  position: absolute;
  z-index: 1;
  font-size: 48px;
  font-family: var(--inter);
  font-weight: 800;
  line-height: 1;
  margin: auto;
  inset: -0.5em 0 auto;
}
.page_products .products_val li::before {
  position: absolute;
  z-index: -1;
  display: block;
  content: "";
  width: 150vw;
  height: 1px;
  background: #000000;
  margin: auto;
  inset: 50% -100vw auto;
}
.page_products .products_point {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  flex-wrap: wrap;
}
.page_products .products_point::before {
  position: absolute;
  z-index: -1;
  display: block;
  content: "";
  width: 150vw;
  height: 1px;
  background: #000000;
  margin: auto;
  inset: 0 -100vw auto;
}
.page_products .products_point::after {
  display: block;
  content: "";
  height: 0;
  width: 50%;
}
.page_products .products_point li {
  position: relative;
  display: flex;
  justify-content: space-between;
  flex-direction: row-reverse;
  align-items: center;
  width: 50%;
  padding: 50px 50px 50px 0;
}
.page_products .products_point li:nth-child(odd) {border-right: solid 1px #000000;}
.page_products .products_point li:nth-child(even) {padding: 50px 0 50px 50px;}
.page_products .products_point li::after {
  position: absolute;
  z-index: 0;
  display: block;
  content: "";
  width: 150vw;
  height: 1px;
  background: #000000;
  margin: auto;
  inset: auto -100vw 0;
}
.page_products .products_point li > p {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  font-family: var(--inter);
  font-weight: 200;
  line-height: 1.25;
  text-align: right;
  margin: 0;
}
.page_products .products_point li > p span {
  display: block;
  font-size: 4.7em;
  font-weight: 700;
  color: #fff;
  -webkit-text-stroke: 1px #000;
  margin: 0 0 0 0.2em;
  transform: scaleX(0.9);
}
.page_products .products_point li > dl {width: calc(100% - 180px);}
.page_products .products_point li > dl dt {
  color: var(--color01);
  font-size: 1.25em;
  font-weight: 700;
  line-height: 1.4;
  margin: 0 0 0.5em;
}
.page_products .products_movie {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  flex-wrap: wrap;
  padding: 0 0 70px;
}
.page_products .products_movie::before,
.page_products .products_movie::after {
  position: absolute;
  z-index: -1;
  display: block;
  content: "";
  width: 150vw;
  height: 1px;
  background: #000000;
  margin: auto;
}
.page_products .products_movie::before {inset: 12% -100vw auto;}
.page_products .products_movie::after {inset: auto -100vw 0;}
.page_products .products_movie > div {width: 47%;}
.page_products .products_movie > div video {
  width: 100%;
  background: #CCCCCC;
  border: solid 1px #000000;
}
.page_products .products_movie > div p {
  color: var(--color01);
  font-size: 1.25em;
  font-weight: 500;
  text-align: center;
}
.page_products .spec {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 30px 0;
}
.page_products .spec::before {
  position: absolute;
  z-index: -1;
  display: block;
  content: "";
  width: 150vw;
  height: 1px;
  background: #000000;
  margin: auto;
}
.page_products .spec::before {inset: 0 -100vw auto;}
.page_products .spec:nth-last-of-type(1)::after {
  position: absolute;
  z-index: -1;
  display: block;
  content: "";
  width: 150vw;
  height: 1px;
  background: #000000;
  margin: auto;
  inset: auto -100vw 0;
}
.page_products .spec dt {
  width: 200px;
  color: var(--color01);
  font-weight: 500;
}
.page_products .spec dd {
  width: calc(100% - 200px);
  max-width: 820px;
  font-weight: 300;
}
.page_products .spec + p {
  font-weight: 300;
  margin: 50px 0 0;
}

@media screen and (max-width: 1600px) {

  .page_products .product_box > figure {width: 49%;}
  .page_products .product_box > div {width: 45%;}
  .page_products .products_val::after {width: 49%;}
  .page_products .products_val li {width: 49%;}
  .page_products .products_point li {padding: 40px 30px 40px 0;}
  .page_products .products_point li:nth-child(even) {padding: 40px 0 30px 40px;}
  .page_products .products_point li > p {
    width: 140px;
    font-size: 13px;
  }
  .page_products .products_point li > dl {width: calc(100% - 140px);}
  .page_products .products_movie video {width: 49%;}
}

/* -----------------------------------------------------------
 other
----------------------------------------------------------- */

/* exterior */

.exterior_list {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  flex-wrap: wrap;
}
.exterior_list li {
  width: 21%;
  margin: 70px 0 0;
}
.exterior_list li figure {
  aspect-ratio: 234 / 450;
  border: solid 1px #000000;
  margin: 0 0 20px;
}
.exterior_list li figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.exterior_list li dl dt {
  color: var(--color01);
  font-size: 20px;
  margin: 0 0 10px;
}
.exterior_list li dl dd {margin: 0 0 1em;}
.exterior_list li a {text-decoration: none;}
.exterior_list li a .btn_more {font-size: 18px;}

/* flow */

.page_flow .editor_contents h1 {margin-bottom: 0;}
.page_flow .deliv_flow li {
  position: relative;
  z-index: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 30px 0;
}
.page_flow .deliv_flow li::before ,
.page_flow .deliv_flow li::after {
  position: absolute;
  z-index: 0;
  display: block;
  content: "";
  margin: auto;
}
.page_flow .deliv_flow li::before {
  z-index: 1;
  width: 1.5em;
  height: 1.5em;
  border-radius: 50%;
  background: url("../img/common/ico_ab.svg") , #FFFFFF;
  inset: auto 0 -0.75em;
}
.page_flow .deliv_flow li:nth-last-child(1)::before {display: none;}
.page_flow .deliv_flow li::after {
  width: 150vw;
  height: 1px;
  background: #000000;
  inset: auto -100vw 0;
}
.page_flow .deliv_flow li figure {
  width: 110px;
  aspect-ratio: 11 / 9;
}
.page_flow .deliv_flow li figure img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.page_flow .deliv_flow li dl {width: calc(100% - 180px);}
.page_flow .deliv_flow li dl dt {
  color: var(--color01);
  font-size: 26px;
  font-weight: 500;
  margin: 0 0 0.25em;
}
.page_flow .deliv_flow li dl dt span {
  display: inline-block;
  vertical-align: middle;
  font-size: 16px;
  font-weight: 400;
  font-family: var(--inter);
  line-height: 1;
  padding: 0.2em 1em;
  margin: 0 1em 0.25em 0;
  border: solid 1px var(--color01);
}
.page_flow .deliv_flow li dl dd {font-weight: 300;}

@media screen and (max-width: 1200px) {

  .exterior_list li dl dt {font-size: 18px;}
  .exterior_list li dl dd {font-size: 15px;}
  .exterior_list li a .btn_more {font-size: 16px;}

}

/** about **/

.editor_contents .bg_box {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 30px auto;
  background: #f5f5f5;
  padding: 20px;
}

.editor_contents .bg_box figure {width: 240px;}
.editor_contents .bg_box figure img {width: 100%;}
.editor_contents .bg_box ul {width: calc(100% - 270px);}
.editor_contents .bg_box ul li {
  position: relative;
  z-index: 0;
  font-size: 14px;
  padding: 0 0 0 1.75em;
  margin: 0 0 0.25em;
}
.editor_contents .bg_box ul li:nth-last-child(1) {margin: 0;}
.editor_contents .bg_box li::before {
  position: absolute;
  display: block;
  content: "";
  width: 1.25em;
  height: 1px;
  background: var(--color01);
  inset: 1em auto auto 0;
}
.editor_contents .bg_box li p {
  font-size: 16px;
  margin: 0;
}
.editor_contents .bg_box li p span {color: var(--color01);}

.editor_contents .bg_box.ev {
  position: relative;
  z-index: 0;
}
.editor_contents .bg_box.ev figure {
  position: absolute;
  z-index: 1;
  height: 320px;
  inset: -100% 20px -100% auto;
  margin: auto;
}

.editor_contents .modal {
  position: relative;
  z-index: 0;
  margin: 50px auto;
}
.editor_contents .modal::before ,
.editor_contents .modal::after {
  position: absolute;
  z-index: 1;
  display: block;
  content: "";
  margin: auto;
  width: 150vw;
  height: 1px;
  background: #000000;
}
.editor_contents .modal::before {
  z-index: -1;
  inset: calc((100% - 100px) / 2) -150vw auto;
}
.editor_contents .modal::after {inset: auto -150vw 0;}
.editor_contents .modal figure {
  position: relative;
  z-index: 0;
  border: solid 1px #000000;
  cursor: pointer;
}
.editor_contents .modal figure img {width: 100%;}
.editor_contents .modal figure + p {
  color: var(--color01);
  font-size: 26px;
  font-weight: 500;
  text-align: center;
  padding: 1em 0;
}
.editor_contents .modal figure::before ,
.editor_contents .modal figure::after {
  position: absolute;
  z-index: 1;
  display: block;
  content: "";
  pointer-events: none;
  inset: 0;
  margin: auto;
}
.editor_contents .modal figure::before {
  width: 80px;
  height: 80px;
  background: url("../img/sub/ico_start.svg") no-repeat center / contain;
}
.editor_contents .modal figure::after {
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.2);
  transition: 0.3s;
  opacity: 1;
}
.editor_contents .modal figure:hover::after {opacity: 0;}
.editor_contents .figure_flow {
  position: relative;
  z-index: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.editor_contents .figure_flow figure {width: 48%;}
.editor_contents .figure_flow figure img {width: 100%;}
.editor_contents .figure_flow::after {
  position: absolute;
  z-index: 0;
  width: 2%;
  height: 18%;
  display: block;
  content: "";
  background: var(--color01);
  inset: 0;
  margin: auto;
  clip-path: polygon(0 0,100% 50% ,0 100%);
}
.editor_contents .figure_flow figure figcaption {text-align: right;}
.editor_contents .figure_list {
  display: flex;
  justify-content: space-between;
  margin: 50px auto;
  align-items: flex-start;
  counter-reset: step;
}
.editor_contents .figure_list li {width: 23%;}
.editor_contents .figure_list li figure {
  position: relative;
  z-index: 0;
  margin: 0 0 5px;
}
.editor_contents .figure_list li figure img {
  display: block;
  width: 100%;
}
.figure_list li figure::before {
  position: absolute;
  z-index: 0;
  inset: 0 auto auto 0;
  counter-increment: step;
  content: counter(step); 
  display: block; 
  width: 30px;
  height: 30px;
  line-height: 30px;
  text-align: center;
  color: #FFF;
  background: var(--color01);
  font-weight: 500;
}
.figure_list li p {font-feature-settings: 'palt';}
.mantenance_title {
  position: relative;
  z-index: 0;
  padding: 0 0 70px;
}
.mantenance_title::before ,
.mantenance_title::after {
  position: absolute;
  z-index: 1;
  display: block;
  content: "";
  margin: auto;
}
.mantenance_title::before {
  inset: auto -150vw 0;
  width: 150vw;
  height: 1px;
  background: #000000;
}
.mantenance_title::after {
  width: 80px;
  height: 30px;
  background: var(--color01);
  inset: 100% 0 auto;
  clip-path: polygon(0 0,100% 0 ,50% 100%);
}
.mantenance_title figure {margin: 0 auto 70px;}
.mantenance_title figure img {width: 100%;}
.mantenance_title ul {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
}
.mantenance_title ul li {
  position: relative;
  z-index: 0;
  color: var(--color01);
  font-size: 26px;
  font-weight: 500;
  line-height: 1.5;
  padding: 0 0 0 2em;
}
.mantenance_title ul li::before {
  position: absolute;
  z-index: 0;
  inset: -100% auto -90% 0;
  display: inline-block;
  content: "";
  width: 1.54em;
  height: 1.77em;
  margin: auto;
  background: url("../img/sub/ico_maintenance.svg") no-repeat center / contain;
}

.editor_contents div.border {
  position: relative;
  margin-top: 90px;
}
.editor_contents div.border::after {
  position: absolute;
  z-index: 1;
  display: block;
  content: "";
  margin: auto;
  width: 150vw;
  height: 1px;
  inset: 0 -150vw auto;
  background: #000000;
}
@media screen and (max-width: 1400px) {
  .mantenance_title ul li {font-size: min(2.0vw,22px);}
}

@media screen and (max-width: 1200px) {
  .mantenance_title ul li {font-size: min(2.4vw,26px);}
}

.editor_contents .link_more {
  position: relative;
  z-index: 0;
  height: 120px;
  line-height: 120px;
  margin: 90px 0 0;
}
.editor_contents .link_more::before ,
.editor_contents .link_more::after {
  position: absolute;
  z-index: 1;
  display: block;
  content: "";
  margin: auto;
  width: 150vw;
  height: 1px;
  background: #000000;
}
.editor_contents .link_more::before {inset: 0 -150vw auto;}
.editor_contents .link_more::after {inset: auto -150vw 0;}
.editor_contents .link_more a {
  position: relative;
  z-index: 0;
  display: block;
  color: var(--color01);
  font-size: 1.25em;
  text-align: center;
  text-decoration: none;
  transition: 0.5s;
}
.editor_contents .link_more a:hover {color: #FFFFFF!important;}
.editor_contents .link_more a[target="_blank"]::after {background: url("../img/common/ico_target_b.svg") no-repeat center / contain;transition: 0.5s;}
.editor_contents .link_more a[target="_blank"]:hover::after {background: url("../img/common/ico_target_w.svg") no-repeat center / contain;}
.editor_contents .link_more a::before {
  position: absolute;
  z-index: -1;
  display: block;
  content: "";
  margin: auto;
  width: 150vw;
  height: 100%;
  background: var(--color01);
  inset: 0 -150vw;
  opacity: 0;
  transition: 0.5s;
}
.editor_contents .link_more a:hover::before {opacity: 1;}
.editor_contents figure + h1 {
  position: relative;
  z-index: 0;
  margin-top: 90px;
}
.editor_contents figure + h1::before {
  position: absolute;
  z-index: 1;
  display: block;
  content: "";
  margin: auto;
  width: 150vw;
  height: 1px;
  background: #000000;
  inset: 0 -150vw auto;
}
.page_operation-management .mantenance_title ul {justify-content: flex-start;}
.page_operation-management .mantenance_title ul li {
  min-width: 17em;
  margin: 0 0 1em;
}
.page_operation-management .mantenance_title ul li:nth-last-child(1) ,
.page_operation-management .mantenance_title ul li:nth-last-child(2) {margin: 0;}


.support_box {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
}
.support_box img {
  width: 100%;
  max-width: none;
}
.support_box > figure {width: 47%;}
.support_box > div {
  width: 47%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-start;
}
.support_box > div > div ul {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  flex-wrap: wrap;
}
.support_box > div > div ul li {
  display: flex;
  align-items: center;
  width: 50%;
  position: relative;
  z-index: 0;
  padding: 0 2% 0 2.7em;
  font-size: 1.25em;
  line-height: 1;
  margin: 1em 0 0;
}
.support_box > div > div ul li p {margin: 0;}
.kanri_view {
  position: relative;
  z-index: 0;
  margin: 90px auto;
}
.kanri_view figure {
  position: relative;
  z-index: 0;
  width: calc(100vw - 440px);
  left: calc(-1 * (100vw - 440px - 100%) / 2);
}
.kanri_view figure img {
  width: calc(100vw - 440px);
  max-width: none;
}

.kanri_view ul {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  flex-wrap: wrap;
  margin: 30px 0 0;
}
.kanri_view ul li {
  position: relative;
  z-index: 0;
  padding: 0 0 0 2.7em;
  margin: 0 1.5em;
}
.kanri_list li p {
  position: relative;
  z-index: 0;
  padding: 0 0 0 2.7em;
  font-size: 1.25em;
  margin: 1.25em 0;
}
.support_box > div > div ul li span,
.kanri_view ul li span,
.kanri_list li p span {
  position: absolute;
  z-index: 1;
  width: 2.4em;
  height: 2.4em;
  border-radius: 50%;
  text-align: center;
  line-height: 2.4em;
  color: #FFFFFF;
  font-size: 0.9em;
  font-weight: 500;
  inset: -100% auto -100% 0;
  margin: auto;
}
.sp01 {background: var(--color01);}
.sp02 {background: #009772;}
.sp03 {background: #d50e3e;}
.kanri_list {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  flex-wrap: wrap;
}
.kanri_list::after {
  display: block;
  content: "";
  width: 31%;
}
.kanri_list li {
  width: 31%;
  margin: 0 0 50px;
  
}
.kanri_list li:nth-last-child(1) {margin: 0;}


.page_earthquake-measures .editor_contents .bg_box {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 50px;
}
.page_earthquake-measures .editor_contents .bg_box > div {width: 47%;}
.page_earthquake-measures .editor_contents .bg_box > div figure {
  width: 100%;
  margin: 0 0 1em;
}
.page_earthquake-measures .editor_contents .bg_box > div p {margin: 0;}
.page_earthquake-measures .editor_contents .bg_box > div h3 {margin-top: 0;}
.page_earthquake-measures .editor_contents .bg_box > div h3 + p {line-height: 2;}
.page_earthquake-measures .editor_contents .bg_box > div figure + p {
  font-weight: 300;
  line-height: 1.4;
}

@media screen and (max-width: 1600px) {

  .support_box > div > div ul li {font-size: 1em;}  
  .kanri_view figure {
    width: calc(100vw - 350px);
    left: calc(-1 * (100vw - 350px - 100%) / 2);
  }
  .kanri_view figure img {width: calc(100vw - 350px);}
  .kanri_view ul li {
    font-size: 0.85em;
    margin: 0 1em 1em;
  }
  .kanri_list li p {font-size: 1em;}
  
}

@media screen and (max-width: 1200px) {
  .kanri_view figure {
    width: 100vw;
    left: min(-3%,-30px);
  }
  .kanri_view figure img {width: 100vw;}

}
  

/* -----------------------------------------------------------
 search
----------------------------------------------------------- */

.page_search .highlight {background: #ddeaf6;}

.page_search h1 span {
  color: var(--color01);
  margin: 0 0.25em;
}
.search_count {
  line-height: 1.2;
  margin: 0 0 30px;
}
.search_count p {
  display: inline-block;
  color: var(--color01);
  font-weight: 700;
  font-size: 1.5em;
  margin: 0 0.25em 0 0;
}
.search_section {
  position: relative;
  z-index: 0;
  padding: 70px 0;
}
.search_section::before ,
.search_section::after {
  position: absolute;
  z-index: 0;
  display: block;
  content: "";
  width: 150vw;
  height: 1px;
  background: #000000;
  margin: auto;
  inset: 0 -100vw auto;
}
.search_section::after {display: none;}
.search_section:nth-last-of-type(1)::after {
  display: block;
  inset: auto -100vw 0;
} 
.search_section h2 {margin-top: 0;}
.search_section p:nth-last-child(1) {margin: 0;}
.search_section p a {
  color: var(--color01);
  word-break: break-all;
}
.search_section p {
	-webkit-line-clamp: 2;
	display: -webkit-box;
	-webkit-box-orient: vertical;
  overflow: hidden;
}
.search_section + .more_news::before {
  position: absolute;
  z-index: 0;
  display: block;
  content: "";
  width: 150vw;
  height: 1px;
  background: #000000;
  margin: auto;
  inset: 0 -100vw auto;
}



/* -----------------------------------------------------------
 404
----------------------------------------------------------- */

.page_404 {
  text-align: center;
  padding-top: 150px;
}
.page_404 .title404 {
  font-size: 275px;
  font-family: var(--inter);
  font-weight: 300;
  color: var(--color01);
  line-height: 1;
  margin: 0 auto 20px;
}
.page_404 h1 {
  color: var(--color01);
  font-size: 28px;
  font-weight: 500;
  margin: 0 auto 20px;
}
.page_404 h1 + p {font-weight: 300;}
.page_404 .btn404 {
  position: relative;
  z-index: 0;
  width: 100%;
  margin: 70px 0 0;
}
.page_404 .btn404::before,
.page_404 .btn404::after {
  position: absolute;
  z-index: 0;
  display: block;
  content: "";
  width: 150vw;
  height: 1px;
  background: #000000;
  margin: auto;
}
.page_404 .btn404::before {inset: 0 -100vw auto;}
.page_404 .btn404::after {inset: auto -100vw 0;}
.page_404 .btn404 a {
  position: relative;
  z-index: 1;
  display: block;
  height: 100%;
  font-size: 20px;
  padding: 50px;
  text-decoration: none;
}
.page_404 .btn404 a::before {
  position: absolute;
  z-index: -1;
  display: block;
  content: "";
  width: 150vw;
  height: 100%;
  background: var(--color01);
  margin: auto;
  opacity: 0;
  transition: 0.5s;
  inset: 0 -150vw;
}
.page_404 .btn404 a:hover::before {opacity: 1;}
.page_404 .btn404 a::after {
  display: inline-block;
  vertical-align: middle;
  content: "";
  width: 1.2em;
  height: 1.2em;
  margin: 0 0 0.2em 0.5em;
  background: url("../img/common/ico_ar.svg") no-repeat center / contain;
}
.page_404 .btn404 a:hover {color: #FFFFFF;}
.page_404 .btn404 a:hover::after {background: url("../img/common/ico_ar_w.svg") no-repeat center / contain;}

/* -----------------------------------------------------------
 sitemap
----------------------------------------------------------- */

.page_sitemap .box.editor_contents {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
}
.page_sitemap .box.editor_contents section {width: 32%;}
.page_sitemap .box.editor_contents section h2 {margin-top: 70px;}
.page_sitemap .box.editor_contents section ul li {margin: 0 0 0.5em;}
.page_sitemap .box.editor_contents section ul li a {
  position: relative;
  z-index: 0;
  padding: 0 0 0 2em;
}
.page_sitemap .box.editor_contents section ul li a::before {
  position: absolute;
  display: block;
  content: "";
  width: 1.25em;
  height: 1px;
  background: var(--color01);
  inset: 0.75em auto auto 0;
}

/* -----------------------------------------------------------
 contact
----------------------------------------------------------- */

.page_contact iframe {
  margin: 30px 0 0;
  height: 1100px;
}

/* -----------------------------------------------------------
 download
----------------------------------------------------------- */

.page_download table {
  width: 100%;
  table-layout: fixed;
  margin: 70px 0 0;
}
.page_download table th {
  background: #f5f5f5;
  padding: 0.75em;
  line-height: 1.5;
  text-align: center;
  border: solid 1px #000000;
}
.page_download table th:nth-of-type(1) {width: 150px;}
.page_download table th:nth-of-type(3) {width: 120px;}
.page_download table th:nth-of-type(4) {width: 300px;}
.page_download table td {
  padding: 1em 2em;
  line-height: 1.5;
  text-align: center;
  border: solid 1px #000000; 
}
.page_download table td:nth-of-type(2) {text-align: left;}
.page_download table td:nth-of-type(3) img {width: 2em;}
.page_download table td:nth-of-type(3) a {transition: 0.5s;}
.page_download table td:nth-of-type(3) a:hover {opacity: 0.5;}
.page_download table td:nth-of-type(4) {font-size: 0;}
.page_download table td:nth-of-type(4) a {
  font-size: 16px;
  display: inline-block;
  color: #1a73e8;
  padding: 0 0.5em;
  border-left: solid 1px #1a73e8;
  text-decoration: none;
  line-height: 1.2;
}
.page_download table td:nth-of-type(4) a:first-child {border: none;}
.page_download table td:nth-of-type(4) a:hover {text-decoration: underline;}

@media screen and (max-width: 1400px) {
  .page_download table th:nth-of-type(1) {width: 150px;}
  .page_download table th:nth-of-type(3) {width: 120px;}
  .page_download table th:nth-of-type(4) {width: 160px;}
}

.editor_contents .privacy {list-style-type: decimal;}
.editor_contents .privacy > li {margin: 0 0 0.5em 1.5em;}
.editor_contents .privacy > li::marker {font-weight: 700;}
.editor_contents .privacy > li > span {display: block;font-weight: 700;}
.editor_contents .privacy > li ul {list-style-type:disc;margin: 0.5em 0 0;}
.editor_contents .privacy > li ul li {margin: 0 0 0.25em 1.2em;}
.form_area .editor_contents h2 {margin-top: 20px;}
/*
.privacy_box {
  padding: 1em;
  border: solid 1px #000;
  height: 240px;
  overflow-y: auto;
  margin: 30px auto 0;
}
*/









