@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@300;400;500;600&display=swap');



/* -----------------------------------------------------------
main
------------------------------------------------------------*/

@media screen and (min-width:768px) {
}
@media screen and (min-width:1000px) {
  .md,
  .sp {
    display: none!important;
  }
}
@media screen and (min-width:768px) {
  .sp {
    display: none;
  }
  .mv-sp {
    display: none;
  }
}
@media screen and (max-width:999px) {

}

@media screen and (max-width:767px) {
  .pc {
    display: none!important;
  }
  .mv-pc {
    display: none;
  }
}

/* -----------------------------------------------------------
	animation
------------------------------------------------------------*/
.vegas-animation-kenburns {
  animation: kenburns ease-out;
}

@keyframes kenburns {
  0% {
      transform: scale(1.3);
  }
  100% {
      transform: scale(1);
  }
}



/* -----------------------------------------------------------
	TOP
------------------------------------------------------------*/
#mv,
.mv-wrap,
.mv-img {
  /* max-height:calc(100vh - 85px);
  height:100%;
  min-height:calc(820/1646*100vw); */
}
.mv-wrap {
  position: relative;
  background-color: #E95519;
}
.mv-img {
  /* max-width:1600px; */
  margin:0 auto;
  text-align: center;
}
#scroll {
  position: absolute;
  left:2em;
  bottom:0;
  top:inherit;
  margin:auto;
  color:#fff;
  width:1em;
  text-align: center;
  writing-mode: vertical-rl;
}
#scroll:before {
  content:"Scroll";
  position: absolute;
  left:0;
  right:0;
  bottom:100px;
  top:inherit;
  margin:auto;
  color:#fff;
  width: 1.8em;
  letter-spacing: 0.1em;
}
#scroll-line {
  position: absolute;
  left:0;
  right:0;
  bottom:0;
  top:inherit;
  margin:auto;
  width:1px;
}
#scroll-line {
background-color: transparent;
height: 95px;
overflow: hidden
}
#scroll-line:after{
content:"";
display: block;
width: 1px;
border-left:1px #fff solid;
animation:scroll 2s ease 0s infinite normal;
margin: 0 auto 0;
}

@keyframes scroll{
0%{
  height: 0;
}
50%{
  height: 130px;
  margin-top: 0;
}
100%{
  margin-top: 130px;
  height: 130px;
}
}



/*--------------------------------------------
index
----------------------------------------------*/
.bg01 {
  position: relative;
}
.bg01:before {
  content:"";
  position: absolute;
  top:-10vw;
  left:5%;
  width:60%;
  height: calc(940 / 1970* 100vw);
  background: url(/theme/img/m1a.webp)no-repeat 0 0;
  background-size:contain;
}
.top-mission01 {
  font-weight: bold;
}
.top-mission01,
.top-mission02 {
  letter-spacing: 0.06em;
}
.ttl-en {
  line-height:1;
  margin:0;
}
.ttl-en-area .ttl-en {
}
.ttl-en-area * {
  color:#E95519;
}
#top-smartcity {
  position: relative;
  padding-bottom:15rem;
  overflow: hidden;
}
#top-smartcity:before {
  content:"";
  position: absolute;
  right:-10%;
  right:-16%;
  bottom:6rem;
  width:100%;
  height: 100%;
  background: url(/theme/img/m2a.webp)no-repeat 0 bottom;
  background-size: 93%;
  background-size: 86vw;
  z-index: -1;
  overflow: hidden;
}
.ttl-smartcity {
  margin:1rem 0;
}
.smartcity-catch {
  margin:0 0 1.5em;
  font-weight: bold;
}
.grade,
.grade:hover {
background: linear-gradient(to bottom,  #f67c09 0%,#e95519 100%);
position: relative;
z-index: 0;
}
.grade01,
.grade01:hover {
background: linear-gradient(to right,  #f67c09 0%,#e95519 100%);
position: relative;
z-index: 0;
}
#top-service * {
  color:#fff;
}
#top-service {
  position: relative;
}
#top-service:before {
  content:"";
  position: absolute;
  top:1rem;
  right:0;
  width:92.5%;
  /* max-width:1780px; */
  height:calc(100% - 1rem);
  background: linear-gradient(to bottom,  #f67c09 0%,#e95519 100%); 
  z-index: -2;
}
#top-service:after {
  content: "";
  position: absolute;
  top: -2%;
  left: 5%;
  width: 90%;
  height: 100%;
  background-image: url(/theme/img/m3.webp),url(/theme/img/m3.webp);
  background-repeat:no-repeat;
  background-position:0 0, 0 75%;
  background-size: 90%;
  opacity: 0.3;
  z-index: -1;
}
#top-service .container:before {
  content:"";
  position: absolute;
  top:-90px;
  left:0;
  right:0;
  margin:auto;
  width:1px;
  height:70px;
  background-color: #fff;
}
.ttl-overlay {
  margin:0;
}
.ttl-overlay * {
  color:#fff;
  display: block;
  width:100%;
  line-height: 1.6;
}
.ttl-overlay .en,
.overlay {
  mix-blend-mode: overlay;
  font-weight: bold;
}
.ttl-overlay .jp {
  margin:0;
}
.ttl-overlay .jp .s {
  font-size: 70%;
}
.cross-flex {
  display: flex;
  justify-content: space-between;
}
.case-area {
  position: relative;
  overflow: hidden;
}
.case-area:before {
  content:"";
  position: absolute;
  top:0;
  right:0;
  width:92.5%;
  /* width:100%; */
  /* max-width:1780px; */
  height:100%;
  background:#E7ECEF; 
  z-index: -5;
}
/* .case-area .inviewfadeInUp {
  opacity: 1!important;
} */
.case-container {
  width:80%;
  margin:0 0 0 auto;
  /* overflow: hidden; */
}
.case-container .case-slide-area {
  overflow: hidden;
}
.case-area:after {
  content:"";
  position: absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  background:url(/theme/img/m3.webp) no-repeat 0 0;
  background-size:contain; 
  z-index: -2;
}
.case-wrap .ttl-en-area {
  position: relative;
}
.case-wrap .ttl-en-area:before {
  content: "";
  position: absolute;
  top: 1.75em;
  left: 0;
  margin-left:-25vw;
  width: 24vw;
  height: 2px;
  background: #E95519;
  z-index: -1;
}

/* .case-area:after {
  content:"";
  position: absolute;
  top:0;
  left:0;
  width:7.5%;
  height:100%;
  background:#fff; 
  z-index: 1;
} */
/* .case-slide-area {
  z-index: -2;
  position: relative;
}
  */
/* .case-slide-archive:before {
  content:"";
  position: absolute;
  top:0;
  left:0;
  width:5%;
  background-color: #707070;
  height:100%;
  z-index: 0;
} */


.ttl-left-area * {
  color:#E95519;
}
/* .case-slide-archive {
  display: flex;
  margin:0 -1.5%;
} */
.case-slide-archive li {
  /* min-width:500px; */
  max-width:490px;
  max-width:40%;
  /* margin:0 1.5%; */
}
.case-slide-archive li {
  background-color: #fff;
  position: relative;
}
.case-slide-archive a {
  text-decoration: none;
}
.caes-thumb img {
  height:270px;
  object-fit: cover;
  width:auto;
}
.case-box dt {
  margin:1rem 0 0.8em;
  font-weight: bold;
}
.ttl-left-area {
  position: relative;
}
.ttl-left-area:before {
  content: "";
  position: absolute;
  top: 0;
  bottom:0;
  left: 0;
  margin:auto;
  width: 50%;
  height: 2px;
  background:#E95519;
  z-index: -1;
}
.ttl-left {
  margin: 0;
  position: relative;
  max-width: 1160px;
  width: 90%;
  margin: 0 auto 2.5rem;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  padding-left:1.2em;
  line-height: 1.2;
}
.ttl-left:after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  background: #fff;
  width: 50%;
  height: 15px;
  z-index: -1;
}
.case-area .ttl-left:after {
  background-color: #E7ECEF;
}
.ttl-left .en,
.ttl-left .jp {
  color:#E95519;
}
.case-slide-wrap {
  width:100vw;
}

.recruit-bottom {
  position: relative;
  padding-bottom: 5.5em;
}
.recruit-bottom:before {
  content:"";
  position: absolute;
  top:0;
  left:0;
  width:90%;
  height:100%;
  background: #fff;
  z-index: -1;
}
img.shadow {
  box-shadow: 0 0 15px rgba(0,0,0,0.15);
}
.recruit-flex {
  display: flex;
  justify-content: space-between;
  width:100%;
}

/* index-news 
----------------------------------------------*/
#index-news {
}
.news-archive dl {
  padding:2.4rem 2rem;
  border-bottom:1px solid #ddd;
  display: flex;
}
.news-archive dl:nth-child(even) {
  background-color: #EEF1F4;
}
.news-archive dl:first-of-type {
  border-top:1px solid #ddd;
}
.news-archive dt,
.day-cate {
  width:13em;
  display: flex;
}
.day-cat {
  width:100%;
  display: flex;
  align-items: center;
}
.cat-flex {
  display:flex;
  flex-wrap: wrap;;
  align-items: center;
  gap: 5px;
}
.news-archive dd {
  width:calc(100% - 14em);
}
.news-archive a {
  font-weight: 500;
  text-decoration: none;
  color:#666;
  display: block;
}
.day {
  color:#666;
  font-weight: bold;
  margin-right:1rem;
}
.cat {
  font-size:1.3rem;
  color:#666;
}
.day-cate .day {
  margin-right:1rem;
}
.label {
  font-size: 1.3rem;
  min-width:6em;
  padding: 5px 1em;
  background-color: #333;
  color: #fff;
  line-height: 1;
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 2em;
}
.day-cate {
  margin-bottom:0.8rem;
}
.day-cate *{
  font-weight:bold;
}
.cate {
  margin:0 1em;
}
.ttl-news span {
  margin:0 7%;
}
.ttl-sub,
.ttl-sub-left {
  font-weight: bold;
}
.case-area .btn-area {
  margin-top:2.5em;
}

@media screen and (min-width:768px) {
  /* index */
  .top-mission01 {
    font-size: 3rem;
    text-align: center;
    margin-bottom:1.5rem;
  }
  .top-mission02 {
    font-size: 1.8rem;
    line-height: 2;
    text-align: center;
  }
  .ttl-smartcity {
    font-size: 3.5rem;
  }
  .smartcity-catch {
    font-size: 2.4rem;
  }
  .smartcity .box-img {
    margin-top:-1rem;
    text-align: right;
    width: 50%;
    padding-right: 6%;
  }
  .smartcity .box-img img {
    max-width:650px;
    width:100%;
  }
  .smartcity .box-txt {
    padding:0;
    width: 50%;
    max-width: 500px
  }
  #top-service .ttl-en {
    font-size: 9.5rem;
  }
  .cross-flex {
    margin: 6.5em 0 0 6%;
    padding-left:6%;
  }
  .cross-flex:last-of-type {
    margin-bottom:0;
  }
  .cross-flex .flex-txt {
    width:65%;
    max-width: 610px;
    margin: 0;
    padding:0 5% 0 0;
  }
  .cross-flex.right .flex-txt {
    padding:0 0 0 3%;
    margin-left:0;
  }
  .cross-flex .flex-img {
    width:40%;
  }
  .cross-flex .flex-img img {
    max-width:460px;
    width:100%
  }
  .cross-flex.right .flex-txt {
    order:2;
  }
  .cross-flex.right .flex-img {
    order:1;
  }
  .right .flex-txt {
    width: 65%;
    margin-left: 2%;
  }
  .right .flex-img {
    order:2;
    width: 70%;
    padding: 0 4.5% 4% 0;
  }
  .ttl-white.m {
    font-size: 3.2rem;
  }
  #top-service .ttl-overlay {
    margin-bottom:1.5em;
  }
  #top-service .ttl-overlay.mb {
    margin-bottom:3em;
  }
  .ttl-overlay .en {
    font-size: 3rem;
  }
  .ttl-overlay.m .en {
    font-size: 2.6rem;
  }
  .ttl-overlay .jp {
    font-size: 4.6rem;
  }
  .case-box dt {
    font-size: 2.6rem;
    line-height: 1.4;
  }
  .ttl-left .en {
    font-size: 9rem;
  }
  .ttl-left .m {
    font-size: 8rem;
  }
  .news-archive-ttl {
    width:34%;
  }
  .news-archive-txt {
    width:66%;
    margin: 2.5rem 0;
  }
  .ttl-sub,
  .ttl-sub-left {
    font-size: 2rem;
  }
  .ttl-sub.ml {
    margin-left:2rem;
  }
  .ttl-en-area {
    margin:0 auto 1.5em;
  }
  .case-area .ttl-en-area {
    margin-bottom:0;
  }
  .ttl-en {
    font-size: 7.8rem;
    font-weight: bold;
  }
  .ttl-left .jp {
    font-size: 2rem;
    letter-spacing: 0.1em;
    margin:1em 0 0 1em;
  }
  #top-case .cta-area {
    margin:9.5em 0;
  }
  .recruit-txt {
    width:57%;
    padding:0 0 0 2%;
  }
  .recruit-img {
    width:42.5%;
    margin-top:-8rem;
  }
  .recruit-ttl {
    font-size: 3.2rem;
    margin:0 0 1em;
    line-height:1.6;
  }
  .recruit-detail {
    padding-left: 3%;
    max-width: 600px;
    margin: 0 auto;
  }
}

/* -----------------------------------------------------------
index レスポンシブ
------------------------------------------------------------*/
@media screen and (min-width:1700px) {
}

@media screen and (min-width:768px) and (max-width:1300px) {
  .ttl-en {
    font-size: calc(80/1300*100vw);
  }
  .ttl-normal {
    font-size: calc(24/1100*100vw);
  }
  .ttl-overlay .jp {
    font-size: calc(46/1400*100vw);
  }
  .ttl-left .en {
    font-size: calc(90/1400*100vw);
  }
  .case-box dt {
      font-size: calc(24/1400*100vw);
  }
  .link-btn {
    margin-top:calc(20/1400*100vw);
  }
 
}

@media screen and (max-width:999px) {
  #main {
    margin-top:60px;
  }
}

/* index SP
----------------------------------------------*/
@media screen and (max-width:767px) {
  #main {
    margin-top:50px;
  }
  #scroll {
    font-size: 1rem;
    left:1rem;
  }
  .bg01:before {
    top:-1rem;
    background-size:120%;
  }
  .news-archive-ttl {
    display: flex;
    align-items: center;
    line-height: 1;
    margin:1rem 0 3rem;
  }
  .news-archive-ttl {
    width:100%;
  }
  .news-archive-txt {
    width:100%;
  }
  .news-archive {
    margin:0 auto 3rem;
  }
  .day-cate {
    margin-bottom: 0;
  }
  /* news */
  .news-archive dl {
    flex-wrap:wrap;
  }
  .news-archive dt,
  .news-archive dd {
    width: 100%;
  }
  .news-archive dt {
    margin-bottom:1rem;
  }
  .label {
    font-size:11px;
    padding: 2px 5px;
    height: 2em;
  }
  .news-archive dl {
    padding: 2rem 1rem;
  }
  .ttl-normal {
    font-size: 4.5vw;
  }
  .ttl-en-area {
    display: flex;
    flex-wrap:wrap;
    align-items: center;
    margin:0 0 1em 0!important;
  }
  .ttl-en {
    font-size:4.5rem;
    margin-right:1rem;
  }
  .ttl-overlay {
    margin-bottom:1em;
  }
  .ttl-overlay .jp {
    font-size: 2.2rem;
  }
  .ttl-overlay .en {
    font-size: 1.8rem;
  }
  .ttl-left .en {
    font-size: 4rem;
  }
  .ttl-sub.ml {
    display: block;
    width:100%;
  }
  .ttl-thumb {
    margin: 1.5rem 0 0.5rem;
  }
  .top-mission01 {
    font-size: 4.5vw;
  }
  #top-mission {
    padding-bottom:3rem;
  }
  .smartcity .box-txt {
    max-width:90%;
    margin:2rem auto 0;
  }
  .smartcity .box-img {
    width: 80%;
    margin: 0 auto;
  }
  #top-smartcity:before {
    bottom:54%;
  }
  .ttl-smartcity {
    font-size: 1.7em;
  }
  .smartcity-catch {
    font-size: 3.8vw;
  }
  #top-smartcity {
    padding-bottom:10vw;
  }
  #top-service .container {
    padding-left:2em;
  }
  #top-service {
    margin-top:1rem;
  }

  .cross-flex .flex-img {
    order:1;
    max-width: 97%;
    margin: 0 auto 2rem;
  }
  .cross-flex {
    width:93.5%;
    margin:auto;
    flex-wrap:wrap;
    margin-bottom:3.5rem;
  }
  .cross-flex:last-of-type {
    margin-bottom:0;
  }
  .cross-flex .flex-txt {
    order:2;
  }
  /* .case-area {
    margin:5em 0 0;
    padding: 3em 0 4em;
  } */
  .recruit-flex {
    flex-wrap:wrap;
  }
  .recruit-flex .recruit-img {
    width:80%;
    margin:1em auto;
  }
  #index-recruit .container {
    width:85%;
  }
  .recruit-bottom:before {
    width:100%;
  }
  .recruit-bottom {
    padding:2rem;
  }
  #index-recruit .ttl-left {
    width:100%;
    padding:0;
    margin:0;
  }
  #index-recruit .ttl-left:after {
    content:"";
    background: none;
  }
} 

/* index-end */


/* -----------------------------------------------------------
lower
------------------------------------------------------------*/
#kv {
  position: relative;
  z-index: 1;
}
.kv-inner {
  position: absolute;
  top:0;
  bottom:0;
  left:0;
  right:0;
  margin:auto;
  display: flex;
  justify-content: center;
  align-items: center;
  align-content: center;
  line-height: 1.2;
  flex-wrap: wrap;
}
.kv-inner {
  width: 1100px;
  max-width:90%;
  margin: auto;
  text-align: center;
}
.kv-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  object-fit: cover;
  z-index: -2;
}
#kv-ttl {
  line-height: 1.2;
  text-align: center;
  color: #fff;
  position: relative;
  margin: 0;
}
.kv-en,
.kv-en * {
  color:#fff;
  font-weight: bold;
  width:100%;
  display: block;
 }
/* enginnering
----------------------------------------------*/
.bg-wave {
  position: relative;
}
.bg-wave:before {
  content: "";
  position: absolute;
  left: -7%;
  bottom: 6rem;
  width: 100%;
  height: 100%;
  background: url(/theme/img/m2a.webp) no-repeat 0 bottom;
  background-size: 82vw;
  z-index: -1;
  overflow: hidden;
}
@media screen and (min-width:1920px) {
  .bg-wave:before {
    background-size: 75vw;
  }
}
.ttl-bd {
  text-align: center;
  margin: 0 auto 1.5em;
  padding-bottom: 0.5em;
  line-height: 1.3;
  position: relative;
}
.ttl-bd:after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  background: #E95503;
  width: 2.2em;
  height: 0.2em;
}
.triangle {
  position: relative;
}
.triangle:before {
  content:"";
  position: absolute;
  top:0;
  left:0;
  right: 0;
  margin:auto;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 50px 65px 0 65px;
  border-color: #FFFFFF transparent transparent transparent;
}
.ttl-left-sub {
  font-size: 3.2rem;
  margin:-0.9em 0 0;
  font-weight: bold;
}
.worries-area * {
  font-weight: bold;
}
.worries-area {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  margin:0 -1.5%;
}
.worries-area li {
  width:47%;
  margin:0 1.5% 3rem;
  padding:8rem 2rem 2rem;
  height:18.7rem;
  text-align: center;
  position: relative;
  background-image:url(/theme/img/c1.svg);
  background-repeat:no-repeat;
  background-position: center 1.2em;
  background-size:19.5rem auto!important;
  background-color: #fff;
}
.worries-area li:after {
  content: "";
  position: absolute;
  top: 5%;
  left: 2%;
  width: 96%;
  height: 90%;
  border: 1px solid #ddd;
}
.worries-area li:nth-child(1) {
  background-image:url(/theme/img/c1.svg);
}
.worries-area li:nth-child(2) {
  background-image:url(/theme/img/c2.svg);
}
.worries-area li:nth-child(3) {
  background-image:url(/theme/img/c3.svg);
}
.worries-area li:nth-child(4) {
  background-image:url(/theme/img/c4.svg);
}
.worries-area li:nth-child(5) {
  background-image:url(/theme/img/c5.svg);
}
.worries-area li:nth-child(6) {
  background-image:url(/theme/img/c6.svg);
}
.worries-area .row1 {
  padding-top:9rem;
}
.ttl-solution {
  margin:0 auto;
  text-align: center;
}
.solution-flex {
  margin:10rem 0;
  align-items: center;
}
.solution-flex .flex-txt {
  padding:13rem 3% 4rem 5%;
}
.solution-flex .flex-txt {
  width:48%;
  margin-top:3rem;
  position: relative;
}
.solution-flex .flex-img {
  width: 53%;
  padding: 0 0 4% 4.5%;
  position: relative;
}
.solution-flex .flex-img:before {
  content: "";
  position: absolute;
  bottom: 0;
  right: 0;
  width: 100%;
  height: 100%;
  background: url(/theme/img/engineering/shadow.webp) no-repeat right bottom;
  background-size: cover;
  z-index: -2;
  max-height: 350px;
}
.solution-flex .flex-txt:before {
  content: "";
  position: absolute;
  top: 70px;
  left: -9.85%;
  background: #fff;
  width: 110%;
  height: 94%;
  z-index: -1;
}
.kodawari-txt:before {
  top: calc(80 / 1400* 100vw);
}
.ttl-sol {
  color:#E95503;
  font-size: 8.6rem;
  font-weight: bold;
  line-height: 1;
  margin:0;
}
.ttl-sol .jp {
  width:100%;
  font-size:3.2rem;
  color: #222;
  font-weight: bold;
  margin:1rem 0 2rem;
  display: block;
}
.solution-flex p {
  margin:3rem 0 0;
}
.ttl-system {
  text-align: center;
  margin:0 auto;
  font-size: 3rem;
  line-height: 1.1;
}
.ttl-system img {
  display: block;
  width:100%;
  max-width:908px;
  margin: 0 auto 2rem;
}
.sys-area {
  position: relative;
  margin-top:7.5rem;
}
.sys-area:before {
  content:"";
  position: absolute;
  top:80px;
  left:0;
  width:100%;
  height:calc(100% - 80px);
  background-color: #FFF4E8;
  z-index: -1;
}
.sys-kv {
  max-width:1100px;
  width:100%;
  margin:0 auto;
  margin-bottom:4rem;
}
.sys-kv img {
  box-shadow:0 3px 20px rgba(0,0,0,0.16);
  text-align: center;
}
.ttl-sys-en {
  font-size: 2.4rem;
  font-weight: bold;
  color:#E95503;
  margin:9rem 0 1rem;
}
.ttl-sys-en.mt0 {
  margin:0 0 1rem;
}
.sys-read {
  line-height: 2;
}
.ttl-sys {
  margin:0 0 2.5rem;
}
.ttl-sys.mt0 {
  margin:0 0 2rem;
}
.memo {
  padding:1rem;
  border:1px solid #707070;
  text-align: center;
  margin:2em 0;
}
.memo p {
  margin:0;
}
.memo01 {
  margin:10rem 0 0;
}
.ttl-bl {
  padding:0 0 0 2.5rem;
  border-left:8px solid #E95503;
  line-height: 1.4;
}

/* cta
----------------------------------------------*/
.cta {
  background: url(/theme/img/bg-cta.webp)no-repeat center top;
  background-size:cover;
  width:100%;
}
.cta-area {
  position: relative;
  height:100%;
}
.cta-detail {
  background-color: #fff;
  text-align: center;
}
.cta-detail p {
  font-weight: bold;
  text-align: center;
  line-height: 1.4;
}

/* cta-rec
----------------------------------------------*/
.cta-rec {
  padding:0 0 8% 7%;
  position: relative;
}
.cta-rec:before {
  content:"";
  position: absolute;
  top:70px;
  left:0;
  background: linear-gradient(to bottom, #f67c09 0%, #e95519 100%);
  width:100%;
  height:calc(100% - 70px);
  z-index: -1;
}
.cta-rec-area {
  padding: 0 0 0 7%;
  position: absolute;
  left: 0;
  right:0;
  top: 0;
  margin:auto;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  align-content: center;
}
.cta-rec-img {
  width:100%;
  margin:0 0 0 auto;
  object-fit: cover;
  height:calc(480/1400*100vw);
  max-height:480px;
}
.cta-rec-area:before,
.rec-cta-area {
  height:calc(435/1400*100vw);
}
.cta-rec-txt {
  width:60%;
}
.cta-rec-btn {
  width:30%;
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
}
.ttl-cta-rec {
  display: inline-block;
  padding:0.5rem 1em;
  min-width:10em;
  background-color: #E95503;
  color:#fff;
  font-weight: bold;
  margin:0;
  line-height:1.2;
  letter-spacing: 0.05em;
  font-size: 3.7rem;
  text-align: center;
}
.cta-rec-flex {
  padding:0 3% 6% 6%;
}
.cta-rec p {
  color:#fff;
}
.cta-rec-en .jp {
  margin-left:1em;
}
.cta-rec:after,
.bottom-catch:after {
  content:"";
  position: absolute;
  left:0;
  right:0;
  margin:auto;
  bottom:0;
  width:100%;
  height:118px;
  background:url(/theme/img/bg-txt-recruit.png)no-repeat center bottom;
  background-size: contain;
  z-index: -1;
}
.cta-rec-en .en {
  font-size: 6vw;
}
.cta-rec-en .jp {
  font-size: 1.2vw;
}

/* training
----------------------------------------------*/
.local-menu {
  display: flex;
  flex-wrap:wrap;
  justify-content: center;
  gap:2%;
}
.local-menu li {
  width:48%;
  max-width:280px;
}
.local-menu a {
  width:100%;
  display: flex;
  justify-content: center;
  align-items: center;
  align-content: center;
  line-height: 1;
  border:2px solid #111;
  color:#000;
  font-size: 1.6rem;
  font-weight: bold;
  padding:0 3rem;
  text-decoration: none;
  position: relative;
  background: url(/theme/img/ar-b.svg)no-repeat 96% center;
  background-size:32px auto;
  height:70px;
  white-space: nowrap;
  margin:auto;
}
.local-menu a:hover {
  background: url(/theme/img/ar-b.svg)no-repeat 96% center!important;
  color:#333;
}
.read-area01 {
  font-size: 2rem;
  font-weight: bold;
  text-align: center;
}
.ttl-bar {
  background-color: #586064;
  max-height:160px;
  height:12vw;
  display: flex;
  align-items: center;
  align-content: center;
  line-height: 1.3;
  position: relative;
  margin:0 0 6rem;
}
.ttl-bar:before {
  content:"";
  position: absolute;
  top:0;
  left:0;
  background:url(/theme/img/ttl-area.svg)no-repeat right 0;
  background-size:cover;
  width:20%;
  max-width:324px;
  height:100%;
}
.ttl-bar-in {
  font-size: 4.2rem;
  color: #fff;
  text-align: center;
  padding: 1rem;
  margin:auto;
}
.kv-area-txt {
  text-align: center;
}
.kv-area-txt,
.kv-area-txt * {
  font-size: 2.4rem;
  font-weight: bold;
  letter-spacing: 0.05em;
}
.marker {
  background: linear-gradient(transparent 60%, #FC8E02 0%);
}
.solution-box dl {
  padding:3rem 3rem 3rem 15rem;
  background: url(/theme/img/point1.svg)no-repeat 4% center;
  background-size:8% auto!important;
  background-color: #fff!important;
  margin-bottom: 1rem;
}
.solution-box dl:nth-child(2) {
  background: url(/theme/img/point2.svg)no-repeat 4% center;
}
.solution-box dl:nth-child(3) {
  background: url(/theme/img/point3.svg)no-repeat 4% center;
}
.solution-box dl:nth-child(4) {
  background: url(/theme/img/point4.svg)no-repeat 4% center;
}
.solution-box dl:nth-child(5) {
  background: url(/theme/img/point5.svg)no-repeat 4% center;
}
.solution-box dl:nth-child(6) {
  background: url(/theme/img/point6.svg)no-repeat 4% center;
}
.solution-box dt,
.solution-box dt * {
  font-size: 3rem;
  font-weight: bold;
}
.solution-box dl:last-of-type {
  margin-bottom:0;
}
#training01 .ttl-system img {
  max-width:845px;
}
.note {
  border:1px solid #707070;
  display: flex;
}
.note dt {
  background-color: #2F393E;
  width:25%;
  color:#fff;
  font-weight: bold;
  padding:2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.4rem;
}
.note dd {
  background-color: #fff;
  width:75%;
  padding:4rem 4%;
  display: flex;
}
.note dd ul {
  width:50%;
  padding-right:5%;
}
.note dd li {
  margin-bottom:1rem;
}
.ttl-bdl {
  border-left:8px solid #E95503;
  padding:0 0 0 0.6em;
  line-height:1.2;
  font-size: 3.2rem;
}
.sys-area .ttl-bdl {
  margin:3em 0 1em;
}
.sys-area .type02 td {
  line-height: 1.8;
}
/* dev
----------------------------------------------*/
.icn-box {
  background-color: #fff;
  box-shadow: 0 0 10px rgba(0,0,0,0.15);
  margin-bottom:3rem;
}
.icn-box dt {
  margin-bottom:2rem;
  display: flex;
  align-items: center;
  align-content: center;
  flex-wrap:wrap;
}
.icn-img {
  width:20%;
  padding-right:3%;
}
.icn-ttl {
  width:80%;
  font-size: 180%;
  font-weight: bold;
  line-height:1.2;
}
.icn-ttl .en {
  display: block;
  width: 100%;
  color:#999;
  margin-bottom:0.3em;
}

/* recruit
----------------------------------------------*/
#intro {
  background:url(/theme/img/recruit/bg-intro.webp)no-repeat center;
  background-size: cover;
  position: relative;
}
#intro * {
  color:#fff;
}
.ttl-intro {
  font-size: 2.2rem;
  margin:0 0 4rem;
}
.ttl-intro-en {
  font-size: 6rem;
  font-weight: bold;
  margin-bottom:0;
}
#intro .flex-img img {
  margin-bottom:1rem;
}
#intro .name {
  font-size: 2.8rem;
  font-weight: bold;
}
.value-area dl *{
  color:#fff;
}
.welfare-flex li figure {
  background: url(/theme/img/recruit/or-shadow.jpg)no-repeat 0 0;
  background-size:cover;
  margin-bottom:1rem;
}
.welfare-flex li img {
  display: inline-block;
  margin: -1rem 1rem 4% -5%;
  position: relative;
}
#welfare .ttl-bd .en {
  font-size: 110%;
}
.ttl-orange {
  background: url(/theme/img/ttl-orange.png)no-repeat 0 center;
  background-size:contain;
  padding:0 1rem;
  height: 70px;
  font-size: 3.6rem;
  color:#fff;
  line-height: 1.2;
  text-align: center;
  font-weight: bold;
  margin:0 auto 2rem;
  display: flex;
  justify-content: center;
  flex-wrap:wrap;
  align-items: center;
  align-content: center;
  line-height: 1;
}
#personality {
  border-top:5px solid #fff;
}
.entry-box {
  background-color: #fff;
  border:4px solid #CCCCCC;
  padding:3rem;
  box-shadow: 10px 10px 0 #1E1E1E;
}
.ttl-line {
  border-bottom: 1px solid #000;
  padding: 0 0 0.5em 0;
  margin:0 auto 3rem;
}
.gallery-box {
  background-color: #fff;
  padding:0 5% 5rem;
}
.gallery-box ul {
  display: flex;
  flex-wrap:wrap;
  margin:0 -1%;
}
.gallery-box li {
  width:23%;
  margin: 0 1% 2rem;
}
#gallery {
  position: relative;
}
#gallery:before {
  content:"";
  position: absolute;
  top:22rem;
  left:0;
  width:100%;
  height:calc(100% - 22rem);
  background: linear-gradient(to bottom, #f67c09 0%, #e95519 100%);
  z-index: -2;
}
.ttl03.l {
  font-size: 2.6rem;
  font-weight:bold;
}


/* company
----------------------------------------------*/
.map-area {
  height: 0;
  overflow: hidden;
  padding-bottom: 70%;
  position: relative;
}
.map-area iframe {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 100%;
}
.ttl-jp {
  font-size: 3.2rem;
  font-weight: bold;
  color:#222;
}
.signature {
  text-align: right;
  margin:2em 0 0;
  line-height: 1.6;
}
.security-mark {
  max-width:130px;
  margin:0 auto 2rem;
  text-align: center;
  mix-blend-mode:multiply;
}
.sinple {
  font-weight: bold;
  margin:0;
  font-size: inherit;
}
.history-wrap {
  background-color: #fff;
}
#company th,
#company td {
  line-height: inherit;
}

/* health-management
----------------------------------------------*/
.kv-normal {
  background-color: #E7ECEF;
}
.kv-normal #kv-ttl {
  color:#222;
}
.health-img figure {
  padding:1em;
}
.health-img figure:nth-child(2) {
  width:51.6%;
}
.health-detail-ttl  {
  margin:0.5em 0;
}

/* achievements
----------------------------------------------*/
.ttl-case {
  display: flex;
  justify-content: center;
  margin:0 auto 2em;
  text-align: center;
}
.achieve-read {
  margin:1.5rem auto;
  text-align: center;
}
.achieve-read {
  font-size: 2.4rem;
  line-height:2;
  font-weight: bold;
}
.achieve-menu a {
  display: block;
  text-decoration: none;
}
.achieve-menu figure img {
  object-fit: cover;
  height:100%;
}
.achieve-menu-ttl,
.achieve-menu-ttl * {
  color:#fff;
  font-weight: bold;
}
.achieve-menu-ttl .s {
  font-size: 90%;
}
.achieve-menu .orverlay {
  font-size: 2.6rem;
  color:#fff;
  font-weight: bold;
}
.orverlay {
  mix-blend-mode: overlay;
}
.link-btn-txt {
  font-weight: bold;
  text-align: right;
  font-weight: bold;
  padding: 2em 5em 2em 0;
  text-decoration: none;
  color: #000 !important;
  letter-spacing: 0.1em;
  font-size: 1.6rem;
  background: url(/theme/img/link-btn.png) no-repeat right center;
  background-size: 70px auto;
  display: block;
}
.headline {
  font-size: 140%;
  margin: 0;
}
.cate-flex {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin: 1rem 0 0;
}
/* .category-flex {
  display: flex;
  flex-wrap:wrap;
  gap:0 1%;
  margin:1em 0;
}
.category-flex a {
  color:#222;
  border:1px solid #222;
  font-size: 1.4rem;
  font-weight: 500;
  padding:1rem 2em;
  min-width:8em;
  text-decoration: none;
  display: inline-block;
  text-align: center;
  line-height: 1.2;
}
.category-all a {
  background:#222;
  border-color:#222;
  color:#fff;
}
.category-flex a,
.category-flex span {
  font-size: 1.4rem;
} */

/* case-archive
------------------------------------------------------------*/
.case-archive-wrap {
  position: relative;
  margin:9rem 0 0;
}
.case-archive-wrap:before {
  content:"";
  position: absolute;
  top:10rem;
  left:0;
  width:100%;
  height:calc(100% - 10rem);
  background-color: #EBEBEB;
  z-index: -1;
}
.case-archive {
  display: flex;
  flex-wrap:wrap;
  justify-content: space-between;
}
.case-archive li {
  width:46%;
  margin:0 2% 6rem;
  background-color: #fff;
  box-shadow: 5px 5px 15px rgba(0, 0, 0, 0.1);
}
.case-archive a {
  text-decoration: none;
}
.case-thumb img {
  object-fit: cover;
  height:calc(180/1100*100vw);
  max-height:286px;
  min-height:150px;
  width:100%;
}

/* blog
------------------------------------------------------------*/
.headline {
  font-size: 140%;
  margin: -1em 0 1em;
}
.category-flex {
  display: flex;
  flex-wrap:wrap;
  gap:0 1%;
  margin:2rem 0;
}
.category-flex a {
  color:#222;
  border:1px solid #222;
  font-size: 1.4rem;
  font-weight: 500;
  padding:1rem 2em;
  min-width:8em;
  text-decoration: none;
  display: inline-block;
  text-align: center;
}
.category-38 .category-flex li:nth-child(1) a,
.current-cat a {
  background:#222;
  border-color:#222;
  color:#fff;
}
.category-flex a,
.category-flex span {
  font-size: 1.4rem;
}
.blog-archive {
  display: flex;
  flex-wrap:wrap;
  margin:0 -1.5%;
}
.blog-archive li {
  width:30.333%;
  margin:0 1.5% 6rem;
}
.blog-archive a {
  text-decoration: none;
}
.archive-day {
  color:#8F9DA2;
  font-size: 1.4rem;
  background-size:0.9em auto;
  margin:1rem 0;
}
.archive-ttl {
  font-weight: bold;
  line-height: 1.4;
}
.cate-flex {
  display: flex;
  flex-wrap:wrap;
  gap:5px;
  margin:1rem 0 0;
}
.blog-label {
  padding:0.6rem 2rem;
  font-size:1.3rem;
  border-radius: 10em;
  border:1px solid #707070;
  color:#707070;
  font-weight: 500;
  text-decoration: none;
  line-height: 1;
}
.cat-item-none {
  display: none;
}

/* -----------------------------------------------------------
lower レスポンシブ
------------------------------------------------------------*/

/* lower PC
------------------------------------------------------------*/
@media screen and (min-width:768px) {
  .anchor {
    margin-top:-100px;
    padding-top:100px;
  }
  #kv,
  .kv-inner,
  .kv-img,
  .kv-img img {
    height:calc(240/1400*100vw);
    max-height:240px;
  }
  #kv-ttl {
    font-size: 4.6rem;
  }
  .kv-en {
    font-size: 2.8rem;
  }
  /* engineering */
  .read-area .flex-txt {
    padding:0 4%;
    width:55%;
  }
  .read-area .flex-img {
    width:45%;
    margin-top:-12rem;
  }
  .read-area-txt {
    font-size: 1.8rem;
    margin: 2.8em 0 0;
    line-height: 2.4;
    max-width: 500px;
  }
  .ttl-bd,
  .ttl-bd * {
    font-size: 4.2rem;
  }
  .worries-area * {
    font-size: 2.4rem;
  }
  .worries {
    margin:0 0 5vw;
  }
  .sys-flex {
    margin:3em 0 2.5rem;
  }
  .sys-flex .flex-txt {
    width:50%;
    order:1;
  }
  .sys-flex .flex-img {
    width:50%;
    padding-left:4%;
    order:2;
  }
  .ttl-sys {
    font-size: 4rem;
    line-height: 1.3;
  }
  .ttl-bl {
    font-size: 3.6rem;
  }
  .solution-flex.right .flex-txt:before {
    left:0;
    width: 111.9%;
  }
  .solution-flex.right {
    margin:14rem 0 16rem;
  }
  .pc-w48 {
    width: 48%;
  }
  .icn-box {
    padding:4rem 3rem;
    min-height:18em;
  }

  /* achievements */
  .achieve-menu li {
    margin:6rem 0;
  }
  .achieve-menu-flex {
    display: flex;
    justify-content: space-between;
    line-height: 1.2;
  }
  .achieve-menu-txt {
    width:52%;
    padding:5.5rem 3rem 3rem;
  }
  .achieve-menu figure {
    width:48%;
  }
  .achieve-menu {
    margin:5.5em 0 14rem;
  }
  .achieve-menu-ttl {
    font-size: 3.2rem;
    line-height: 1.6;
    margin:1.5rem 0 1.5rem;
  }
  .ttl-case,
  .ttl-case * {
    font-size: 4rem;
  }
  .case-box {
    padding:3rem;
  }

  /* recruit */
  #recruit .bg01:before {
    top:-11vw;
  }
  #intro .flex-txt {
    width:62%;
    margin:0 0 0 auto;
    padding-right:6%;
  }
  #intro .flex-img {
    width:33%;
    margin:4rem 0 0;
  }
  .value-area {
    display: flex;
    justify-content:center;
    flex-wrap:wrap;
    margin:6em -1%;
  }
  .value-area dl {
    width:18%;
    padding:3rem 1.5rem 3rem 2rem;
    text-align: center;
    margin:1rem 1%;
  }
  .value-area dt {
    font-size: 2.2rem;
    font-weight: bold;
    margin-bottom:1em;
  }
  .value-area dd {
    font-size: 1.4rem;
    text-align: left;
  }
  .welfare-flex {
    margin:3rem -1.5% 0;
    margin-left:0;
    flex-wrap:wrap;
  }
  .welfare-flex li {
    width: 30%;
    margin: 0 1.5% 8rem;
    text-align: center;
    font-size: 2.4rem;
    font-weight: bold;
  }
  .personality-flex {
    margin:6rem 0 5rem;
    width:98%;
    margin-left:-3%;
  }
  .personality-flex dl {
    width: 100%;
    margin: 0 0 0 3%;
    background: #fff;
    background-size: 100%;
    padding: 4rem 1.5rem;
    text-align: center;
    height: auto;
    box-shadow: 10px 10px 0 #ccc;
    border: 3px solid #ccc;
    transform: skewX(-15deg);
  }
  .personality-flex dt {
    font-size: 2.4rem;
    font-weight: bold;
    margin: 0 0 2rem 0;
    line-height: 1.3;
  }
  .ttl-line,
  .ttl-line * {
    font-size: 3rem;
  }

  /* health */
  #health-attempt {
    padding-top:8rem;
  }

  /* cta */
  .cta {
    height:calc(420/1400*100vw);
    max-height:420px;
    min-height:260px;
    padding:7rem 0 4rem;
  }
  .cta-ttl {
    margin:0 auto 2.5rem;
    text-align: center;
    font-size: 6.4rem;
  }
  .cta-detail {
    padding:3.5rem 0;
  }
  .cta-detail p {
    font-size:1.7rem;
  }

  /* cta-rec */
  .cta-rec a {
    font-size: 1.1em;
  }
  .half {
    width:50%;
  }
  .archive-thumb img {
    object-fit: cover;
    width:100%;
    max-height:208px;
    /* height:calc(208/1400*100vw); */
  }

}



/* -----------------------------------------------------------
lower レスポンシブ
------------------------------------------------------------*/
@media screen and (min-width:1700px) {
}

@media screen and (min-width:768px) and (max-width:1300px) {
   .cta-ttl {
    font-size: calc(60/1300*100vw);
    margin: 0 0 2rem;
  }
  .cta-txt p {
    font-size: 1.6rem;
  }
  .ttl-jp {
    font-size: calc(32/1300*100vw);  
  }
  .ttl-normal,
  .ttl-sys-en {
    font-size: calc(24/1100*100vw);
  }
  .triangle:before {
    border-width: calc(50/1400*100vw) calc(65/1400*100vw) 0 calc(65/1400*100vw);
  }
  .ttl-sol {
    font-size: calc(86/1400*100vw);
  }
  .ttl-sol .jp,
  .ttl-left-sub {
    font-size: calc(32/1400*100vw);
  }
  .ttl-system {
    width:80%;
    margin:auto;
  }
  .ttl-sys {
    font-size: calc(40/1300*100vw);
  }
  .cta {
    min-height: 300px;
    padding: calc(70/1400*100vw) 0 calc(70/1400*100vw);
  }
  .ttl-bar-in {
    font-size: calc(42/1400*100vw);
  }
  .local-menu a {
    max-height: 60px;
    max-width: 260px;
  }
  .ttl-bdl {
    font-size: calc(32/1400*100vw);
  }
  .solution-box dt, .solution-box dt * {
    font-size: calc(30/1400*100vw);
  }
  .note dt {
    font-size: 1.8rem;
  }
  .ttl-system{
   font-size: calc(34/1400*100vw);
  }
  .ttl-cta-rec{
    font-size: calc(36/1400*100vw);
  }
  .ttl-intro-en {
    font-size: 4rem;
  }
  .top-mission01 {
    font-size: 2.6rem;
    padding-top:0;
  }
  #recruit .bg01:before {
    top: -21%;
  }
  #intro .name {
    font-size: 2.5rem;
  }
  .value-area {
    margin:3em -1%;
  }
  .welfare-flex li {
    font-size:calc(24/1300*100vw);
  }
  .ttl03.l {
    font-size:calc(28/1300*100vw);
  }
  .personality-flex dt {
    font-size:calc(28/1400*100vw);
  }
  .personality-flex {
    margin: 4rem 0 2rem;
  }
  /* .personality-flex dl {
    height:calc(360/1400*100vw);
  } */
}

@media screen and (min-width:768px) and (max-width:1280px) {

  .solution  {
    padding-bottom:12rem;
  }
  .solution-flex {
    margin: 0;
  }
  .solution-flex .flex-txt {
    padding: calc(130/1000*100vw) 3% calc(40/1400*100vw) 5%;
  }
  .solution-flex .flex-txt:before {
    height:87%;
  }
  .solution-flex.right {
    margin: 0 0 4rem;
  }
  #kv-ttl {
    font-size: calc(46/1400*100vw);
  }
  .ttl-bd, .ttl-bd *{
    font-size: calc(42/1400*100vw);
  }
  .worries-area * {
    font-size: 2.1rem;
  }
  .kv-area-txt, .kv-area-txt * {
    font-size: 2rem;
  }
  .solution-box dl {
    padding-left:9em;
  }
  .ttl-solution {
    width:50%;
    margin:auto;
  }
}


/* ▲768以上 */
@media screen and (min-width: 768px) and (max-width: 1100px) {

}

@media screen and (min-width: 768px) and (max-width: 1023px) {

  .cta-rec a {
    height:54px;
  }

}

/* 767以下 lower
------------------------------------------------------------*/

@media screen and (max-width:767px) {
  .anchor {
    margin-top:-50px;
    padding-top:50px;
  }
  .cta, .cta-area {
    height: calc(540/767*100vw);
    max-height: 480px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    align-content: center;
    line-height: 1;
  }
  .cta-ttl {
    font-size: 3.4rem!important;
    text-align: center;
    margin: 0 auto 2rem;
  }
  .cta-txt p {
    font-size:3.2vw;
    color:#fff;
  }
  .cta-detail {
    padding:2rem;
  }
  .cta-rec-img{
    height: calc(600 / 767* 100vw);
    max-height: 500px;
  }
  .cta-rec-flex {
    padding: 0rem 3% 6% 5%;
  }
  .cta-rec-txt {
    width:100%;
  }
  .ttl-cta-rec {
    font-size: 2rem;
    margin-bottom: 0.5rem;
  }
  .cta-rec-en .en {
    font-size: 4rem;
    font-weight: bold;
  }
  .cta-rec p{
    line-height: 1.5;
    font-size: 1.16rem;
  }
  .cta-rec-en .jp {
    font-size: 1.4rem;
    font-weight: bold;
  }
  .cta-rec-btn {
    width: 100%;
    justify-content: center;
  }
  .ttl-en-area .ttl-jp {
    font-size:1.8rem;
  }
  .ttl-bd {
    padding-bottom:0.7em;
  }
  .ttl-sol .jp,
  .ttl-left-sub {
    font-size: 1.8rem;
    margin:-2em 0 1em;
  }
  .ttl-left {
    padding-left:0;
    margin-bottom: 0;
  }
  #kv,
  .kv-inner,
  .kv-img {
    height:120px;
  }
  .kv-inner {
    width:90%;
  }
  .kv-en {
    font-size: 1.6rem;
  }
  #kv-ttl {
    font-size: 2.2rem;
    margin:0 0 0.5rem;
  }
  .read-area01,
  .kv-area-txt, .kv-area-txt * {
    font-size: 1.6rem;
  }
  .kv-area-txt {
    padding-left:5%;
    padding-right:5%;
  }

  /* engineering */
  .spmb2 {
    margin-bottom:2rem;
  }
  .read-area .flex-img {
    margin:auto;
    width:95%;
  }
  .solution-flex {
    margin:5rem 0;
  }
  .solution-flex:last-of-type {
    margin-bottom:2rem;
  }
  .solution-flex .flex-img {
    width:90%;
    padding: 0 4.5% 4% 0;
    margin: 0 0 0 auto;
  }
  .solution-flex .flex-img:before {
    width:100%;
    height:100%;
  }
  .solution-flex .flex-txt {
    width: 100%;
    margin: -4rem 0 0;
    padding:5rem 5rem 3rem 2rem;
    position: relative;
  }
  .solution-flex .flex-txt:before {
    top:0;
    left: 0;
    width: 90%;
    height: 100%;
    z-index: -1;
  }
  .ttl-sol {
    font-size: 4rem;
  }
  .ttl-sol .jp, .ttl-left-sub {
    font-size: 1.8rem;
    margin: 0 0 1rem 0;
  }
  .solution-flex p {
    margin: 1.5rem 0 0;
  }

  /* training */
  #training {
    padding-top:4rem;
  }
  .local-menu a {
    height: 45px;
    font-size: 1.3rem;
    background-size:22px;
  }
  /* .category-flex li {
    margin:5px;
  } */
  .category-flex a {
    font-size: 1.3rem;
    padding:0.45rem 1rem;
    min-width: inherit;
  }
  .local-menu{
    margin-bottom:1rem;
  }
  .local-menu a {
    width:100%;
    min-width:inherit;
  }
  .ttl-line {
    font-size:2rem;
  }
  .triangle:before {
    border-width: 25px 33px 0 33px;
  }
  .worries {
    margin: 0 0 5vw;
  }
  .worries-area li {
    height:auto;
    padding:6rem 1rem 2rem!important;
    background-size: 50% auto !important;
    margin-bottom:1.5rem;
  }
  .ttl-bar {
    height:18vw;
    margin-bottom:3rem;
  }
  .ttl-bar-in {
    font-size: 4.6vw;
  }
  .ttl-bar:before{
    width:16%;
  }
  .solution-box dl {
    padding: 1.5rem 1rem 1.5rem 20%;
    background-size: 13% auto !important;
  }
  .solution-box dt, .solution-box dt * {
    font-size: 1.7rem;
  }
  .sys-area:before {
    top:40px;
    height: calc(100% - 40px);
  }
  .ttl-system {
    font-size: 4.5vw;
    width:100%;
  }
  .sys-kv {
    width:90%;
    margin-bottom:2rem;
  }
  .sys-kv img {
    object-fit: cover;
    height:120px;
  }
  .sys-area {
    margin-top:4rem;
  }
  .ttl-normal, .ttl-sys-en {
    font-size:4.5vw;
    margin-top:5rem;
  }
  .ttl-sys {
    font-size: 2rem;
    margin-bottom:1rem;
    line-height: 1.4;
  }
  .flex-img {
    margin-bottom:1em;
  }
  .ttl-sys-en.mt0 {
    margin:0;
  }
  .note {
    flex-wrap:wrap;
  }
  .note dt,
  .note dd {
    width:100%;
    padding:1rem;
  }
  .note dt {
    font-size: 1.6rem;
  }
  .note dd {
    flex-wrap:wrap;
  } 
  .note dd ul {
    width:100%;
  }
  .ttl-bdl {
    font-size: 1.8rem;
    border-width:5px;
  }
  .memo01 {
    margin: 5rem 0 0;
  }
  .icn-ttl {
    font-size: 2rem;
  }
  .icn-box {
    padding:3rem 2rem;
  }

  /* achievements */
  .achieve-read {
    font-size: 1.4rem;
  }
  .achieve-menu figure img {
    object-fit: cover;
    object-position: bottom;
    height: 200px;
    width:100%;
  }
  .achieve-menu-txt {
    padding:1.5rem 2rem;
  }
  .achieve-menu-ttl {
    font-size: 2.1rem;
    line-height: 1.6;
    margin: 0;
  }
  .link-btn-txt {
    background-size: 47px auto;
    padding: 1em 3.5em 1em 0;
  }
  .achieve-menu li {
    margin:3rem 0 6rem;
  }
  .achieve-menu .orverlay {
    font-size: 1.6rem;
  }
  .ttl-case,
  .ttl-case * {
    font-size: 2rem;
  }
  .case-archive-wrap {
    margin-top:5rem;
  }
  .case-archive li {
    width: 100%;
    box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.15);
  }
  .case-box {
    padding:1.5rem 1.5rem 1rem;
  }
  .case-box dt {
    font-size: 1.7rem;
  }
  .link-btn-txt {
    font-size: 1.4rem;
  }
  .case-container {
    width: 85%;
    margin: 0 0 0 auto;
    padding-right: 5%;
  }
  .case-area .btn-area {
    margin-top: 2.5em;
  }

  /* recruit */
  .ttl-bd,
  .ttl-bd * {
    font-size: 2.4rem;
  }
  .ttl-orange {
    background-image: url(/theme/img/ttl-orange-sp.png);
  }
  .ttl-orange {
    font-size: 2.1rem;
  }
  .ttl-intro-en {
    font-size: 1.8rem;
  }
  .ttl-intro {
    margin-bottom:3rem;
  }
  #recruit .intro-txt {
    margin-bottom:2em;
  }
  #recruit .flex-img {
    width:60%;
    margin:0 3% 0 auto;
    text-align: right;
  }
  #intro .name {
    font-size: 1.8rem;
  }
  .value-area {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }
  .value-area dl {
    margin: 1rem 0;
    padding: 1.5rem 0.8rem 1.5rem 1.5rem;
    width: 47%;
  }
  .value-area dt {
    font-size: 1.9rem;
    font-weight: bold;
    margin-bottom:1rem;
    text-align: center;
  }
  .value-area dd {
    font-size: 1.3rem;
  }
  .welfare-flex {
    display: flex;
    justify-content: space-between;
    flex-wrap:wrap;
    margin-bottom:3rem;
  }
  .welfare-flex li {
    width:47%;
    margin: 1.5rem 0;
    text-align: center;
    font-size: 1.5rem;
    font-weight: bold;
  }
  .welfare-flex li img {
    margin: -5% 4% 4% -4%;
    padding-left: 4%;
  }
  .personality-flex {
    width: 95%;
    margin: 0 auto;
  }
  .personality-flex dl {
    width: 89%;
    margin: 3rem 0 3rem 5%;
    background: #fff;
    background-size: 100%;
    padding: 3rem 2rem;
    text-align: center;
    height: auto;
    box-shadow: 10px 10px 0 #ccc;
    border: 3px solid #ccc;
    transform: skewX(-15deg);
  }
  .personality-flex dt {
    font-size: 2rem;
    font-weight: bold;
    margin: 0 0 2rem 0;
    line-height: 1.3;
    padding-left: 6%;
  }
  .ttl-line,
  .ttl-line * {
    font-size: 2.1rem;
    line-height: 1.4;
  }
  .entry-box {
    width:98%;
    padding:3rem 2rem 2rem;
  }
  .gallery-box {
    padding-bottom:1rem;
  }

  /* company */
  #history th {
    width:8em;
  }

  /* health */
  .health-detail {
    display: flex;
    justify-content: space-between;
    flex-wrap:wrap;
  }
  .health-detail li {
    width:46%;
  }
  .health-img {
    display: flex;
  }
  .health-img figure:nth-child(1) {
    width:37.6%;
  }
  .health-img figure:nth-child(2) {
    width:62.4%;
  }
  .health-img figure {
    padding: 1rem;
  }

  /* blog */
  .blog-archive li {
    width:47%;
  }
  .archive-thumb img {
    object-fit: cover;
    width: 100%;
    max-height: 220px;
    /* height: calc(220 / 767* 100vw); */
  }
  .blog-label {
    padding: 0.3rem 1rem;
    font-size: 1.2rem;
  }

}

@media screen and (max-width:480px) {
  .worries-area li {
    font-size:3.5vw;
  }
}


/* -----------------------------------------------------------
	single
------------------------------------------------------------*/
.news-list dl {
  padding: 2rem 0;
}
#achieve-single {
  position: relative;
  padding-bottom:14rem;
  margin-top:4rem;
}
#achieve-single:before {
  content:"";
  position: absolute;
  top:26rem;
  left:0;
  background-color: #E7ECEF;
  width:100%;
  height:calc(100% - 8rem);
}
#achieve-single .container {
  background-color: #fff;
  padding-bottom:1rem;
  margin-bottom:3.5em;
}
#achieve-single .single-wrap {
  max-width:880px;
  margin:0 auto;
}
.single-detail h1,
.ttl01 {
  margin: 4rem 0 1em;
  padding: 2rem 1.5rem 1.2rem;
  position: relative;
  line-height: 1.3;
  border-bottom:2px solid #000;
}
.ttl01:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background: #000;
}
.ttl01:after {
  content: "";
  position: absolute;
  top: 3px;
  left: 0;
  width: 100%;
  height: 2px;
  background: #000;
}
.ttl01.mt0 {
  margin-top:0!important;
}
.single-detail h2, .ttl02 {
  margin: 5rem 0 0.7em;
  padding-bottom: 1.5rem;
  position: relative;
  line-height: 1.3;
  border-bottom: 4px solid #ddd;
}
.single-detail h2:before, .ttl02:before {
  content: "";
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 80px;
  height: 4px;
  background: #E95503;
}
.single-detail h3,
.ttl03 {
  padding: 1rem 1.5rem 1rem 2rem;
  position: relative;
  margin: 2.5em 0 1em;
  line-height: 1.4;
}

.single-detail h3:before,
.ttl03:before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  width: 5px;
  height: 1.3em;
  background: #E95519;
  left: 0;
}
.cate-day {
  display: flex;
  align-items: center;
}
.cate-day .cate-flex {
  margin-bottom:1rem;
}
.cate-day .archive-day {
  margin-right:1em;
}
.single-wrap .cate-day .label {
  margin-left:0;
}
.cate-day a,
.label a {
  text-decoration: none;
  color:#fff;
  width:100%;
}
.single-nav {
  display: flex;
  justify-content: center;
  align-items: center;
  gap:0 1.5%;
  max-width:750px;
}
.single-nav li {
  width:30%;
}
.single-nav a {
  width:100%;
  height:3.5em;
  font-weight: bold;
  display: flex;
  justify-content: center;
  align-items: center;
  align-content: center;
  line-height: 1;
  background-color:#949596;
  color:#fff;
  border:1px solid #949596;
  text-decoration: none;
  padding:1rem;
  position: relative;
}
.nav-archive a {
  background-color: #fff;
  color:#949596;
}
.nav-next a {
  background-image:url(/theme/img/ar-f.svg);
  background-repeat:no-repeat;
  background-position:90% center;
  background-size:0.6em;
}
.nav-prev a {
  background-image:url(/theme/img/al-f.svg);
  background-repeat:no-repeat;
  background-position:10% center;
  background-size:0.6em;
}
.wp-block-image {
  margin-bottom:2em;
}
#achieve-single .single-detail table th {
  background-color: #F16C10;
  border-bottom: 1px solid #fff;
  border-left:1px solid #707070;
  padding:1rem 2rem;
  font-size: 1.6rem;
  border-right:0;
}
#achieve-single .single-detail table td {
  text-align: left;
  padding:1.5rem 2rem;
  border-color:#707070;
  border-left:0;
}
#achieve-single .single-detail table{
  border:1px solid #707070;
}
#achieve-single table.type03 tr:last-of-type th {
  border-bottom:1px solid #707070;
}
#achieve-single .label {
  height:3em;
}


@media screen and (min-width:768px) {
  .single-detail h1,
  .ttl01 {
    font-size: 3.4rem;
  }
  .ttl01.m {
    font-size: 3rem;
  }
  .ttl01.s {
    font-size: 2.4rem;
  }
  .single-detail h2,
  .ttl02 {
    font-size: 3.6rem;
  }
  .store-main .single-detail h2,
  .store-main .ttl02 {
    font-size: 2.8rem;
  }
  .single-detail h3,
  .ttl03 {
    font-size: 2rem;
    margin:1.5em 0 0.5em;
    font-weight: bold;
  }
  .single-detail {
    margin:2rem 0 8rem;
  }
  .single-detail .wp-block-image {
    margin-bottom:1rem;
  }
  .single-nav {
    margin:12rem auto 10rem;
  }
}

@media screen and (max-width:767px) {
  #achieve-single .single-wrap {
    padding-left:5%;
    padding-right:5%;
  }
  .single-detail h1,
  .ttl01 {
    margin-top:2rem;
    font-size: 1.8rem;
    padding:2rem 0 1.5rem;
  }
  .ttl01.s {
    font-size: 1.8rem;
  }
  .single-detail h2, .ttl02 {
    font-size: 2rem;
  }
  .store-main .single-detail h2,
  .store-main .ttl02 {
    font-size: 1.8rem;
  }
  .single-nav {
    margin:6rem auto 5rem;
  }
  #achieve-single .single-detail table th {
    font-size: 1.36rem;
  }
  #achieve-single:before {
    top:6rem;
    height:calc(100% - 6rem);
  }
  #achieve-single .single-detail table td {
    padding: 1.5rem 1rem;
  }
  #achieve-single .container {
    padding-bottom: 4rem;
  }
  #achieve-single {
    padding-bottom:7rem;
  }

}



/* -----------------------------------------------------------
SHOP
------------------------------------------------------------*/
/* PC shop
----------------------------------------------*/
#shop-header {
  padding-top:38px;
}
#shop-tagline {
  position: fixed;
  top:0;
  left:0;
  z-index: 1;
  width:100%;
  height:38px;
  background-color: #E95519;
  display: flex;
  justify-content: center;
  align-items: center;
  align-content: center;
  line-height: 1;
}
#shop-tagline,
#shop-tagline * {
  color:#fff;
  font-weight: bold;
  letter-spacing: 0.3em;
}
.kv-shop {
  padding-left:150px;
  background:url(/theme/img/shop/kv-mark.jpg)no-repeat 0 center;
  background-size: 20% auto;
  padding: 1em 0 1em 7em;
}
/* wp shop */
.site-content a {
  text-decoration: none;
}
.store-flex {
	display: flex;
	justify-content: space-between;
}
.store-flex a {
  text-decoration: none;
}
.side-menu {
  border-top:1px solid #ccc;
  border-bottom:1px solid #ccc;
  margin-bottom:15px;
}
.side-menu dt {
	height: 45px;
	width:100%;
	display: flex;
	align-items: center;
	line-height: 1;
	font-size:1.4rem;
	font-weight: 500;
}
.side-nav a,
.side-nav-parent,
.side-nav-child a {
	margin:0;
	font-size:1.4rem;
	color:#333;
	padding:1.5rem 0;
	display: flex;
  border-bottom:1px dotted #ccc;
  line-height: 1;
	width:100%;
  font-weight: 500;
}
.side-nav-child a:first-of-type {
  border-top:1px dotted #ccc;
}
.side-nav-child a:last-of-type {
  border-bottom:0;
}
.side-nav {
	display: none;
}
.side-cart {
  margin-bottom:10px;
}
.side-cart a {
  color:#333;
  background-color: #EBEBE6;
  width:100%;
  height:43px;
  border-radius: 5px;
  display: flex;
  justify-content: center;
  align-items: center;
  align-content: center;
  line-height: 1;
  font-weight: bold;
}
.side-login a {
  color:#fff;
  background-color: #3D3D3D;
  width:100%;
  padding:1.5rem 1rem;
  border-radius: 5px;
  line-height: 1;
  text-align: center;
  display: block;
}
.side-login a *{
  color:#fff;
}
.side-login01 {
  font-size: 1.5rem;
  font-weight: bold;
  display: block;
  width:100%;
  margin-bottom:5px;
}
.side-login02 {
  font-size: 1.3rem;
  display: block;
  width:100%;
}
figure.w50 {
  max-width:500px;
  margin:3em 0;
}
.ttl-bold {
  margin:2em 0 0.3em;
}
.ttl-side {
  padding-left:1em;
  border-left:4px solid #E95519;
  line-height:1.2;
  font-weight: 500;
}
.ttl-mark {
  position: relative;
  padding-left:1.5em
}
.ttl-mark:before {
  content:"";
  position: absolute;
  top:0;
  left:0;
  bottom:0;
  margin:auto;
  width: 15px;
  height: 4px;
  background-color: #E95519;
}

.store-archive a {
  width: 100%;
  display: flex;
  justify-content: space-between;
  margin-bottom: 4rem;
  padding-bottom: 4rem;
  border-bottom: 1px dotted #ccc;
}
.store-archive-thumb {
  width: 38%;
}
.store-archive-thumb img {
  height: auto;
  background: #fff;
}
.store-archive-txt {
  width: 58%;
}
.store-price .price {
  color: #666;
  font-size: 1.8rem;
  margin: 1rem 0;
}
.store-main em.tax {
  font-size: 0.7em;
  font-weight: normal;
  text-decoration: none;
  font-style: normal;
  color: inherit;
  letter-spacing: 0em;
  white-space: nowrap;
}
.side-login a {
  color: #fff;
  background-color: #3D3D3D;
  width: 100%;
  padding: 1.5rem 1rem;
  border-radius: 5px;
  line-height: 1;
  text-align: center;
  display: block;
}
.side-login02 {
  font-size: 1.3rem;
  display: block;
  width: 100%;
}


/* shop detail
----------------------------------------------*/
.item-ttl {
  font-size: 2.2rem;
  line-height:1.4;
  margin:0 0 1rem;
}
.item-thumb {
  width:auto;
  height: auto;
}
.item-detail .price-box {
  margin-bottom:2.5rem;
}
.item-detail .price {
  font-size: 2.2rem;
  line-height: 1.2;
}
.item-detail .zei {
  font-size: 1.4rem;
}
.ttl-size {
  margin:2em 0 0.5em;
  padding:1.5rem 0 0;
  border-top:2px solid #ccc;
}
.note-box {
  background-color: #F0F0EF;
  padding:1rem 1.5rem;
  margin:2em 0;
}
.note-box dt {
  font-weight: bold;
}
.note-box dd {
  font-size: 85%;;
}


/* cart
------------------------------------------------------------*/
button, input, select, textarea {
  /* appearance: none; */
  background: 0 0;
  border: 0;
  border-radius: 0;
  font: inherit;
  outline: 0;
}
input, select, textarea {
  border: 1px solid #ddd;
}
.p-item_detail__quantity input {
  width: 2.6em;
  text-align: center;
}
.p-item_detail__quantity {
  display: flex;
  align-items: center;
  margin-bottom: 2.5em;
}
.c-btn_cart input, .c-btn_submit input,
.cart-button input {
  background-color: #3D3D3D;
  color:#fff;
  padding: 1.2em 1em;
  transition-duration: .3s;
  border-radius: 5px;
  cursor: pointer;
  width:100%;
}
.item-info .skubutton, #wdgctToCheckout a {
  color: #fff;
  background-color: #3D3D3D;
}
.c-box {
  width: 100%;
  display: flex !important;
  align-items: center;
  justify-content: flex-end;
}
.c-box .quantity {
  margin-right:2%;
}
.cart-button {
  width:100%;
}

.c-btn_submit input {
  width: 100%;
}
.p-item_detail__btn input {
  border: 0;
  color: #fff;
  font-size: 1.6rem;
}
/* 
.c-btn_br, .c-btn_submit {
  color: #fff;
  line-height: 1;
  font-size: 1.8rem;
  width:100%;
  position: relative;
  background-color: #3D3D3D;
  border-radius: 5px;
}

.send input.to_customerinfo_button,
.send input.to_memberlogin_button,
.send input.to_deliveryinfo_button,
.send input.to_confirm_button, .send input#purchase_button {
    color: #fff;
    background-color: #3D3D3D;
} */


/* store detail
----------------------------------------------*/
.table01,
.single-detail table {
  border-collapse: collapse;
  border:1px solid #ccc;
}
.table01 th,
.table01 td,
.single-detail table th,
.single-detail table td{
  padding:0.3em;
  border-left:1px solid #ccc;
  border-bottom:1px solid #ccc;
  text-align: center;
}
.table01 th,
.single-detail table th {
  background-color: #efefef;
}
.photo-area {
  background-color: #F0F0EF;
  width:100%;
  padding:2rem;
  text-align: center;
  margin:1em auto 2em;
}

/* -----------------------------------------------------------
case slick
------------------------------------------------------------*/
.slick-slide {
  /* background: #fff; */
  padding-bottom:2rem;
}
.slick-slide a {
  background-color: #fff;
}
.slick-track {
  height:100%;
}
.slick-dotted.slick-slider {
margin-bottom:0;
}
.slick-dots {
  bottom:0;
}
.slick-dots li.slick-active button:before {
  color:#ccc;
}
.slick-dots li button:before {
  color:#999;
}
.slider-container {
  display: none;
  position: relative;
	padding:32px 0 0;
}
.slider-container.initialized {
  display:block;
}
.slider {
  overflow: hidden;
}
.slick-prev, .slick-next {
  width:50px;
  height:50px;
}
.slick-prev:before {
  content:"";
  position: absolute;
  top:0;
  bottom:0;
  left:-20px;
  margin:auto;
  background: url(/theme/img/alc.svg) no-repeat 0 0;
  width:50px;
  height:50px;
}
.slick-next:before {
  content:"";
  position: absolute;
  top:0;
  bottom:0;
  right:-20px;
  margin:auto;
  background: url(/theme/img/arc.svg) no-repeat 0 0;
  width:50px;
  height:50px;
}
.slider-arrow {
  position: absolute;
  top: 50%;
  height: 36px;
  margin-top: -18px;  /* 高さの半分だけネガティブマージン */
  color: #333;
  line-height: 36px;
  font-size: 28px;
  cursor: pointer;
  z-index: 10;  /* 重要 */
}
.slider-prev {
	left: 0;
	background: url(/theme/img/arrow-prev.png)no-repeat 0 0;
	background-size: 34px 60px;
	top: 50%;
	width: 34px;
	height: 60px;
	margin-top:-30px;
	z-index: 11;
}
.slider-next {
  right: 0;
	background: url(/theme/img/arrow-next.png)no-repeat 0 0;
	background-size: 100%;
	top: 50%;
	width: 34px;
	height: 60px;
	margin-top:-30px;
	z-index: 11;
}

.slick-slide a {
  background-color: #Fff;
  /* box-shadow: 3px 3px 15px rgba(0,0,0,0.15); */
  display: block;
}
.slider-arrow:hover {
opacity:0.7;
}

/* arrows */
.arrow_box,
.arrow_box2 {
  max-width:1100px;
  margin:0 auto;
  width:90%;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding:0 0 4rem;
  position: relative;
  margin-top:-2rem;
}
.prev-arrow,
.next-arrow {
  display: block;
  width: 50px;
  height: 50px;
  background: #222;
  border-radius: 50%;
  transition: all .3s ease;
  cursor: pointer;
  position:relative;
}
.prev-arrow {
  transform: rotate(180deg);
  margin-right: 20px;
}
.prev-arrow::before,
.next-arrow::before{
  position:absolute;
  content: "";
  width:10px;
  height:10px;
  border-right: 2px solid #FFF;
  border-top: 2px solid #FFF;
  top:0;
  bottom:0;
  left:0;
  right:0;
  margin:auto;
  transform:rotate(45deg);
}
.slide-area {
  max-width:460px;
}

@media screen and (min-width:768px) {
  /* ガター分ネガティブマージン */
  .slick-list {
    margin-right: -1%;
  }
  /* ガター */
  .slick-slide {
    margin: 0 1% 0 0;
  }
}

@media screen and (max-width:1600px) {
  /* ガター分ネガティブマージン */
  .slick-list {
    margin-right: -0.7%;
  }
  /* ガター */
  .slick-slide {
    margin: 0 0.7% 0 0;
  }
}


@media screen and (max-width:999px) {
  .case-wrap .ttl-en-area:before {
    top:1.25em;
  }
}
@media screen and (max-width:767px) {
  .arrow_box,
  .arrow_box2 {
    padding:0 0 1.5rem 0;
    margin:-3rem 1% 0 auto;
  }
  .prev-arrow, .next-arrow {
    width:35px;
    height:35px;
  }
  .prev-arrow::before, .next-arrow::before {
    width:7px;
    height:7px;
  }
  .prev-arrow {
    margin-right: 10px;
  }
  .slick-slide {
    margin:0 0.3% 0 0;
  }
  .slick-list {
    margin-right:-0.3%;
  }
}
@media screen and (max-width:640px) {
  .case-wrap .ttl-en-area:before {
    top:1.1em;
  }
}



/* online
------------------------------------------------------------*/


/* shop
------------------------------------------------------------*/
.shop-info {
  padding:0.5rem 1.5rem;
  border:1px solid #DEB282;
  color:#DEB282;
  font-size: 1.4rem;
  margin-bottom:2.5rem;
}

/* -----------------------------------------------------------
swiper
------------------------------------------------------------*/
/* slider */
[class*=swiper]:focus {
  outline: none;
}
.slide-media,
.thumb-media {
  position: relative;
  overflow: hidden;
}
.slide-media img,
.thumb-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.slide02 {
  overflow: hidden;
}
.slide02 .swiper,
.slide02 .thumb-wrapper {
  margin: auto;
}
.slide02 .swiper {
  overflow: visible;
  z-index: 0;
}
.slide02 .swiper-fade .swiper-slide {
  -webkit-transition-property: opacity, -webkit-transform !important;
  transition-property: opacity, -webkit-transform !important;
  transition-property: opacity, transform !important;
  transition-property: opacity, transform, -webkit-transform !important;
  pointer-events: none;
}
.slide02 .swiper-fade .swiper-slide-active {
  pointer-events: auto;
}
.slide02 .swiper-controller {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  padding-top: 62.5%;
}
.slide02 .swiper-button-prev, .slide02 .swiper-button-next {
  position: absolute;
  z-index: 1;
  top: 0;
  bottom: 0;
  margin: auto;
}
.slide02 .slide {
  display: block;
  overflow: hidden;
}
.slide02 .slide-media {
  display: block;
  padding-top: 62.5%;
}
.slide02 .slide-title {
  font-weight: bold;
  line-height: 1.6;
  padding: 3.2rem 0;
}
.slide02 .thumb-wrapper {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  margin: 1em -6px 0;
  gap: 0;
}
.slide02 .thumb-media {
  width: calc(25% - 12px);
  margin: 0 6px 10px;
  cursor: pointer;
}
.slide02 .thumb-media,
.slide02 .thumb-media.thumb-media-active {
  position: relative;
}
.slide02 .thumb-media:after {
  content:"";
  position: absolute;
  top:0;
  left:0;
  width:100%;
  height: 100%;
  border:2px solid #fff;
  z-index: 0;
}
.slide02 .thumb-media.thumb-media-active:after {
  content:"";
  position: absolute;
  top:0;
  left:0;
  width:100%;
  height: 100%;
  border:2px solid #E95519;
  z-index: 0;
}

.slide02 .thumb-media img {
    transition: 0.3s;
}
.slide02 .thumb-media.thumb-media-active img {
  opacity: 0.5;
}


@media screen and (min-width:768px) {
  .item-flex {
    display: flex;
    justify-content: space-between;
  }
  .item-image {
    width: 56%;
  }
  .item-detail {
    width: 40%;
  }
  .item-thumb img {
    width: 100%;
    height: auto;
    object-fit: cover;
    max-width:540px;
  }
  .slide02 .thumb-media:hover img {
    /* transform: scale(1.1); */
    opacity: 0.7;
    transition: 0.3s;
  }
  .store-side {
    max-width:210px;
    width:20%;
  }
  .store-main {
    width:75%;
    margin-bottom:0;
  }
  .store-ttl {
    font-size: 2rem;
    font-weight: bold;
  }
}


@media screen and (max-width:767px) {
  .item-flex {
    /* padding-top:4rem; */
  }
  .related-wrap {
    margin-bottom:0;
  }
  #contents .related-wrap .container {
    padding:4rem 0 0;
  }
  .rec-thumb {
    margin-bottom: 1em;
  }
  .item-label {
    margin:4rem 0 2rem;
  }
  .item-label span {
    font-size:1.2rem;
  }
  .shop-info,
  .item-info,
  .item-spec {
    margin-bottom:3em;
  }
  .store-flex {
    flex-wrap:wrap;
    display: block;
  }
  .store-side {
    /* order:2; */
    width:100%;
    display: flex;
    flex-wrap: wrap;
    margin-bottom: 5rem;
    justify-content: space-between;
  }
  .store-side.sp {
    margin-top:2rem;
  }
  .store-side.sp a {
    text-decoration: none;
  }
  .store-bnr {
    padding:2.5rem 3rem;
    border-top:2px solid #E95519;
    margin:auto;
    text-align: center;
  }
  .store-bnr img {
    width:80%;
    margin:auto;
    text-align: center;
  }
  .store-main {
    /* order:1; */
  }
  .side-menu {
    width:100%;
  }
  .side-cart,
  .side-login {
    width:48%;
    margin:0;
  }
  .side-cart a,
  .side-login a {
    height:50px;
    display: flex;
    flex-wrap:wrap;
    justify-content: center;
    align-items: center;
    align-content: center;
    line-height: 1;
  }
  .side-login a {
    padding:0 1rem;
  }
  .side-login02 {
    font-size: 1.1rem;
  }
  .store-ttl {
    font-size: 1.7rem;
    font-weight: bold;
  }
  .kv-shop {
    padding-left:5em;
  }
  .item-ttl {
    font-size: 1.8rem;
  }
  .single-detail h3, .ttl03 {
    font-size: 1.6rem;
    margin: 1.5em 0 0.5em;
    font-weight: bold;
  }
  .ttl03.l  {
    font-size: 1.8rem;
  }
}




/* -----------------------------------------------------------
	wpforms
------------------------------------------------------------*/
div.wpforms-container .wpforms-form .wpforms-field input[type=text], div.wpforms-container .wpforms-form .wpforms-field input[type=email], div.wpforms-container .wpforms-form .wpforms-field select, div.wpforms-container .wpforms-form .wpforms-field textarea {
  width:100%;
}
div.wpforms-container-full .wpforms-form input[type=text],
div.wpforms-container .wpforms-form .wpforms-field input[type=email] {
  max-width:100%;
}


/* -----------------------------------------------------------
#form
------------------------------------------------------------*/
#form {
  padding: 8rem 0 10rem;
  position: relative;
}
.red {
  color: #d55858;
}
.privacy-link {
  text-align: center;
}
.privacy-area {
  border: 1px solid #ccc;
  padding: 20px;
  text-align: left;
  font-size: 1.5rem;
  line-height: 1.6;
  margin-top: 1em;
  color: #666;
}
.link {
  color: #E95519;
  text-decoration: underline;
}
.form-table .privacy-area {
  font-size: 1.4rem;
}
.accept-box {
  margin: 0 auto;
  text-align: center;
}
.td-radio {
  display: flex;
}
.flex-th .th {
  line-height: 1.4;
}
.form-table th, .form-table td {
  padding: 1.5rem 1rem;
}
/*.form-table textarea {
  height:8em;
}*/
.form-table option, .form-table textarea, .form-table input[type="number"], .form-table input[type="email"], .form-table input[type="tel"], .form-table input[type="text"], .form-table input[type="option"] {
  -webkit-appearance: none;
  -moz-appearance: none;
  -ms-appearance: none;
  appearance: none;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  -ms-border-radius: 5px;
  border-radius: 5px;
  outline: 0;
  margin: 0;
  padding: 1rem;
  border: 1px solid #ccc;
  font-weight: normal;
  background: #fff;
  color: #555;
  width: 100%;
}

.submit-btns {
  margin: 2rem auto;
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
}

.submit-btns button[type="submit"], .submit-btns input[type="submit"], .submit-btns input[type="button"] {
  cursor: pointer;
}

.submit-btns [type=button] {
  background: #777;
  border-color:#777;
  color:#fff;
}

button, input, select, textarea {
  background: 0 0;
  /*border: 0;*/
  border-radius: 0;
  font: inherit;
  outline: 0;
}

input, textarea, select {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  margin: 0;
}
.form-table label {
  margin: 0.3em 1em 0.3em 0.4em;
  display: inline-block;
  vertical-align: middle;
  align-items: center;
  position: relative;
}
.form-table input {
  vertical-align: middle;
}
.form-table label span {
  display: inline-block;
  line-height: 1;
}

.form-table button {
  border-radius: 48px;
  width: 202px;
  height: 48px;
}

.form-table button, .form-table button:hover, .form-table button:active, .form-table button:focus {
  background: #E95519;
  color: #fff;
}

.form-table .wq-Form .wq-TextInput.wq-size-normal {
  width: 100%;
}

.form-table .wq-Form .wq-TextInput.wq-size-normal {
  width: 100%;
}

.form-table select:hover, .form-table label:hover, input[type="radio"]:hover, input[type="checkbox"]:hover, .accept-box *:hover {
  cursor: pointer;
}


/* radio */
input[type="radio"] {
  width: 18px;
  height: 18px;
  border-radius: 100px;
  position: relative;
  vertical-align: sub;
}
input[type="radio"]::before,
input[type="radio"]::after{
  content: "";
  display: block;
  border-radius: 50%;
  position: absolute;
  transform: translateY(-50%);
  top: 50%;
}
input[type="radio"]::before {
  background-color: #fff;
  border: 1px solid #ccc;
  height: 18px;
  width: 18px;
  left: 0px;
}
input[type="radio"]::after {
  background-color: #585858;
  opacity: 0;
  height: 10px;
  width: 10px;
  left: 4px;
}
input[type="radio"]:checked::after {
  opacity: 1;
}
.form-table .flex-td {
  display: flex;
}
.form-table .flex-td div {
  margin: 0 5px 0 0;
}
input[type="text"], input[type="tel"], textarea, select {
  padding: 0.5rem 0.5rem;
  border: 1px solid #999;
}
textarea {
  width: 100%;
}
.form-table .required {
  border-radius: 3px;
  font-size: 1.2rem;
  padding: 0.3rem 0.5rem 0.3rem;
  color: #fff;
  text-align: center;
  line-height: 1;
  background: #E95519;
  width: 3em;
  margin-left:1rem;
}
.form-table .th {
  width: calc(100% - 3em);
  letter-spacing: 0.1em;
}
.form-table table.type01 th {
  width: 28%;
}
.check_btn label {
  display: inline-block;
  line-height: 1em;
}
.form-table label::before, .form-table label::after {
  content: "";
  display: block;
  border-radius: 50%;
  position: absolute;
  transform: translateY(-50%);
  top: 50%;
}


/**/
input[type="checkbox"] {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

input[type="checkbox"] {
  cursor: pointer;
  padding-left: 24px;
  vertical-align: 6px;
  position: relative;
}

input[type="checkbox"]::before, input[type="checkbox"]::after {
  content: "";
  display: block;
  position: absolute;
}

input[type="checkbox"]::before {
  content:"";
  position: absolute;
  background-color: #fff;
  border: 1px solid #bbb;
  width: 20px;
  height: 20px;
  /* transform: translateY(-50%); */
  top: 1px;
  bottom:0;
  margin:auto;
  left: 0;
  border-radius: 3px;
}

input[type="checkbox"]::after {
  border-bottom: 3px solid #585858;
  border-left: 3px solid #585858;
  opacity: 0;
  height: 8px;
  width: 13px;
  transform: rotate(-45deg);
  top: 0;
  bottom:0;
  margin:auto;
  left: 4px;
  content: "";
  position: absolute;
}

input[type="checkbox"]:checked::after {
  opacity: 1;
} 
/**/



.form-table [type=submit] {
  width: 240px;
  line-height: 2em;
  margin: 10px 5px;
  background: #000;
  color: #fff;
  border: 0;
  border-radius: 2px;
  height: 50px;
  font-size: 1.6rem;
  font-weight: bold;
}
.form-table button[type="submit"], .form-table input[type="submit"] {
  cursor: pointer;
}
.submit-btns {
  margin: 3em auto;
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
  gap:0 10px;
}
.contact-wrap th {
  background-color: #F0F0EF;
  position: relative;
  padding: 1em 2%;
  text-align: left;
}
.contact-wrap th,
.contact-wrap td {
  border-bottom: 1px solid #ccc;
  border-color:#ccc;
}
.contact-wrap tr:first-of-type th,
.contact-wrap tr:first-of-type td {
  border-top: 1px solid #dccdb8;
  border-color:#ccc;
}
.contact-wrap td {
  padding: 1.5em 2%;
  background: #FFF;
}


/* contact7 reset
------------------------------------------------------------*/
#contact .wpcf7-spinner {
  width:0;
  margin:0;
}

.wpcf7-list-item {
  margin:0;
}
.p-postal-code {
  width:6em!important;
  height: 3em;
}
.p-locality {
  width:100%!important;
}
label.w100 {
  width:100%!important;
  white-space: nowrap;
}
.flex-ad {
display: flex;
justify-content: flex-start;
align-items: center;
gap: 0 5px;
}
.form-table label.c-yubin,
.form-table label.c-address {
    margin-left:0;
    margin-right:0;
}
.c-flex .last.has-free-text {
  display: flex;
}
.form-table .c-flex label {
  width:4em;
}
.c-flex {
  display: flex;
  align-items: center;
}
.accept-area {
  text-align: center;
  margin: 2em 0;
}
.select-wrap .wpcf7-date  {
  margin-right:1em;
}
.flex-th p {
  margin:0;
}


/* statusbar 
----------------------------------------------------------- */
.statusbar {
  margin:0 auto;
  display: flex;
  justify-content: center;
  max-width:700px;
  position: relative; 
}
.statusbar li {
  width:100%;
  text-align: center;
  line-height: 1.2;
  margin: auto;
}
.statusbar:after {
  content: "";
  position: absolute;
  top: 21px;
  right: 0;
  margin: auto;
  left: 0;
  width: 70%;
  height: 1px;
  background-color: #ccc;
  z-index: -1;
}
.statusbar .num {
  background-color: #aaa;
  width:80%;
  height:3em;
  display: flex;
  flex-wrap:wrap;
  justify-content: center;
  align-items: center;
  align-content: center;
  line-height: 1.2;
  color:#fff;
  font-weight:bold;
  margin:auto;
  letter-spacing: 0.05em;
}
.statusbar .num span.l {
  display: inline-block;
  width:100%;
  color:#fff;
}
.statusbar .num.current {
  background-color: #E95519;
}
/* .statusbar .status-txt {
  color: #7a7a7a;
  font-weight: 500;
  margin: auto;
  font-size: 1.4rem;
} */

/* 767以下 form
------------------------------------------------------------*/
@media screen and (min-width:768px) {

/* form */
  .form-table .flex-th {
    display: flex;
    justify-content: space-between;
    align-items: center;
    align-content: center;
    line-height: 1.2;
  }
  .form-table th {
      width: 25%;
  }
  .form-table td {
      width: 70%;
      text-align: left;
  }
  .submit-btns button:hover, .submit-btns input:hover {
      opacity: 0.9;
  }
  .contact-wrap .read-txt {
    text-align: center;
  }
  .form-main {
    margin:6rem 0 0;
  }
  .thanks-txt p {
    font-size:106%;
    line-height:2.5;
    text-align: center;
  }
}


@media screen and (min-width: 960px) {
  .contact-wrap th {
      width: 30%;
  }

  .contact-wrap dd {
      width: 70%;
      padding: 1.5em;
  }
}


@media screen and (max-width:767px) {
  .form-table {
    margin-bottom:4rem;
  }

  /* form */
  .form-table th, .form-table td {
    width: 100%;
    display: block;
    text-align: left;
  }
  .form-table .required {
    margin-left: 1em;
  }
  .flex-th {
    padding: 1rem 5px;
  }
  .form-table th {
    padding: 0;
  }
  .contact-wrap th, .contact-wrap td {
    border-bottom: 1px solid #ccc;
  }
  .form-table td {
    padding-left: 0;
    padding-top: 1rem;
    padding-bottom: 2rem;
    padding-right: 0;
  }
  .contact-wrap tr:first-of-type td {
    border-top:none;
  }
  #form {
    padding-bottom:6rem;
  }
  .form-main {
    margin:3rem 0;
  }
}



/* -----------------------------------------------------------
	animation
------------------------------------------------------------*/

.fadeLeft {
  animation-name: ani01;
  }
  @keyframes ani01 {
  0% {
  opacity: 0;
  -webkit-transform: translateX(-12%);
  -ms-transform: translateX(-12%);
  transform: translateX(-12%);
  }
  60% {
	opacity: 1;
	-webkit-transform: translateX(0);
	-ms-transform: translateX(0);
	transform: translateX(0);
  }
  }

/* -----------------------------------------------------------
	inview
------------------------------------------------------------*/
.inviewupdown {
  opacity: 0;
  height: 8.58vw;
}
.inviewupdown.updown {
  opacity: 1;
}
.inviewfadeInUp.delay {
  transition-delay: .5s;
}
.inviewfadeInUp {
opacity:0;
transform:translate(0,15%);
transition: 0.7s ease;
}
.fadeInUp {
opacity:1;
transform:translate(0, 0);
}
.inviewfadeInRight {
opacity:0;
transform:translate(10%,0);
transition:0.5s ease;
}
.fadeInRight {
opacity:1;
transform:translate(0, 0);
}
.inviewfadeInDown {
opacity:0;
transform:translate(0,-30%);
transition:0.5s ease;
}
.fadeInDown {
opacity:1;
transform:translate(0, 0);
}
.inviewfadeInLeft {
opacity:0;
transform:translate(-10%,0);
transition:0.5s ease;
}
.fadeInLeft {
opacity:1;
transform:translate(0, 0);
}
.inviewfadeIn {
opacity:0;
transition:0.5s ease;
}
.fadeIn {
opacity:1;
}

@media screen and (max-width:767px) {
  .inviewupdown {
    height:11vw;
  }
  .updown span {
   font-size: clamp(44px,calc(44/767*100vw),44px);
  }

}

