@charset "UTF-8";
/* CSS Document */
/*===============================================
共通
===============================================*/
html,
body {
  height: 100%;
  margin: 0 auto;
  padding: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.625rem;
  font-weight: 400;
  background-color: #fff;
  line-height: 1.8;
  letter-spacing: 0.2em;
  color: #000000;
}

*:focus {
  outline: none;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
img,
figure,
figcaption,
ul,
dl,
dd,
dt {
  margin: 0;
  padding: 0;
}

img {
  border: 0;
  line-height: 0;
}

li {
  list-style: none;
}

a {
  text-decoration: none;
  color: #000;
  transition: 0.25s;
}

a:hover {
  color: #C8C8C8;
}

table {
  border-collapse: collapse;
}

span.text-block {
  display: inline-block;
}

.sp-only {
  display: none;
}

input {
  font-size: 1.6rem;
}

input:focus {
  outline: 0;
}

input[type=button],
input[type=text],
input[type=tel],
input[type=email],
input[type=submit],
input[type=image],
textarea,
select {
  -webkit-appearance: none;
  border-radius: 0;
}

input[type=submit] {
  border: none;
  -webkit-appearance: none;
  margin-left: 72px;
}

.more {
  font-size: 1.6rem;
  font-family: "Montserrat", sans-serif;
  line-height: 1;
}

.more a {
  border: 1px solid #707070;
  display: inline-block;
  padding: 1em 3em;
}

section {
  margin: 0 auto;
}

/*==============================================
ヘッダー
===============================================*/
.header {
  width: 100%;
  height: 110px;
}

.header_logo {
  padding: 1.8rem;
}

.container.system {
  content: "";
  background: url(../img/geometry_s.svg) no-repeat top left;
  background-size: cover;
  height: 726px;
}

/*==============================================
メニュー　以下、open.cssへ移動
===============================================*/
/* ul.menu-panel li dl dt {
    color: #0084CC;
    font-weight: bold;
}
ul.menu-panel li dl dt span {
    color: #ddd;
    font-size: 12px;
    font-weight: normal;
} */
/*==============================================
PAGE共通
===============================================*/
/* page_header */
.page_header {
  width: 1200px;
  margin: auto;
}

.breadcrumbs {
  margin-bottom: 80px;
  font-size: 1.4rem;
}

.page-discription {
  margin: 0 auto 150px;
}

.page-discription .item {
  font-size: 2.4rem;
  font-weight: 700;
  font-family: "Montserrat", sans-serif;
}

.page-discription .item span {
  font-family: "Noto Sans JP";
  font-weight: normal;
  padding-left: 2rem;
}

main.page-contents h1.heading {
  font-size: 4.8rem;
  font-weight: 500;
  line-height: 1.2;
  margin-top: 5rem;
}

h1.heading span {
  color: #0084CC;
  font-size: 3.2rem;
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  line-height: 1.5;
  display: block;
  padding-bottom: 2rem;
}

.page-discription .txt {
  width: 50%;
  font-size: 1.8rem;
  margin-top: 5rem;
  letter-spacing: 2px;
}

.page_header img.kv {
  position: absolute;
  top: 5%;
  right: 0;
  width: 45vw;
}

/* btn */
.contents-footer {
  text-align: center;
}

.btn {
  display: inline-block;
  width: 330px;
  max-width: 100%;
  color: #fff;
  background-color: #0084CC;
  text-align: center;
  padding: 0.75em 0;
  font-size: 1.8rem;
  border-radius: 50px;
  position: relative;
}

/*==============================================
index
===============================================*/
.top {
  position: relative;
  width: 100%;
  margin: 0 auto 250px;
}

.top-img {
  width: 70%;
  z-index: 1;
  text-align: right;
  position: absolute;
  top: 0;
  right: 2%;
}

.top-img img {
  width: 100%;
  max-width: 1000px;
  height: auto;
}

.top-copy {
  position: absolute;
  z-index: 2;
  left: 5%;
  bottom: 0;
  white-space: nowrap;
  margin-bottom: 50px;
}

.top-copy span {
  display: block;
}

.top-copy span.en-copy {
  font-size: 6rem;
  font-family: "Padauk", sans-serif;
  line-height: 1.4;
  font-weight: 500;
  letter-spacing: -1px;
}

.top-copy span.main-copy {
  font-size: 2.4rem;
}

.top-copy span.text-copy {
  font-size: 1.6rem;
}

.contents-title {
  margin-bottom: 100px;
}

.contents-title h2 {
  font-size: 6rem;
  font-family: "Padauk", sans-serif;
  font-weight: 500;
  line-height: 1;
}

.contents-title span {
  font-size: 1.6rem;
  margin-bottom: 1em;
  display: block;
}

.contents-title p {
  font-size: 1.6rem;
}

.contents-title .discription {
  display: flex;
  justify-content: space-between;
}

.contents-title .discription .left {
  width: 60%;
}

/*index-service ----------------------------------------*/
.service-Btn {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}

.service-Btn .left,
.service-Btn .right {
  width: 47%;
}

.service-Btn .right {
  margin-top: -100px;
}

.btn_panel.service {
  margin-bottom: 10%;
}

.btn_panel a {
  background-color: #fff;
  position: relative;
  box-shadow: 10px 10px 30px 5px rgba(0, 0, 0, 0.1);
  box-sizing: border-box;
  display: flex;
  justify-content: space-around;
}

.btn_panel a:hover {
  color: #000;
}

.btn_panel .trapezoid {
  background-color: #F0F3F5;
  width: 40%;
  position: relative;
}

.btn_panel .trapezoid::after {
  content: "";
  width: 50%;
  height: 100%;
  background: #fff;
  -webkit-clip-path: polygon(0% 100%, 100% 0%, 100% 0%, 100% 100%);
          clip-path: polygon(0% 100%, 100% 0%, 100% 0%, 100% 100%);
  position: absolute;
  right: 0;
  bottom: 0;
}

.btn_panel.service .trapezoid img {
  position: absolute;
  width: 120%;
  height: auto;
  z-index: 1;
}

.btn_panel.service .trapezoid img.service-01 {
  top: -5%;
  left: -25%;
  width: 130%;
  min-width: 200px;
}

.btn_panel.service .trapezoid img.service-02 {
  top: 10%;
  left: -25%;
  width: 140%;
  min-width: 200px;
}

.btn_panel.service .trapezoid img.service-03 {
  top: 0%;
  left: -22%;
  min-width: 200px;
}

.btn_panel.service .trapezoid img.service-04 {
  top: -5%;
  left: -25%;
  min-width: 200px;
}

.btn_panel.service .trapezoid img.service-05 {
  top: 5%;
  left: -20%;
  min-width: 200px;
}

.btn_panel.service .text-box {
  width: 60%;
  padding: 30px 30px 20px 0;
  box-sizing: border-box;
  position: relative;
  z-index: 2;
}

.btn_panel .text-box span {
  font-size: 1.3rem;
  font-weight: 500;
  margin-bottom: 20px;
  display: block;
  padding-left: 5%;
}

.btn_panel .text-box .title {
  font-size: 2.8rem;
  line-height: 1;
  font-family: "Padauk", sans-serif;
  margin-bottom: 20px;
  padding-left: 5%;
}

.btn_panel .text-box .text {
  font-size: 1.4rem;
  margin-bottom: 10px;
}

.btn_panel .text-box .more {
  display: block;
  text-align: right;
}

/*index-about ----------------------------------------*/
section#top-about {
  position: relative;
  padding: 100px 0;
  box-sizing: border-box;
}

section#top-about::after {
  content: "";
  background-color: #F0F3F5;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}

.about-Btn {
  display: flex;
  justify-content: space-between;
}

.btn_panel.about {
  width: 30%;
}

.btn_panel.about .text-box {
  width: 50%;
  padding: 30px;
  box-sizing: border-box;
  white-space: nowrap;
  position: relative;
  z-index: 1;
}

.btn_panel.about .text-box .title {
  margin-bottom: 70px;
}

.btn_panel.about .trapezoid {
  background-color: #fff;
  width: 50%;
}

.btn_panel.about .trapezoid::after {
  content: "";
  width: 100%;
  height: 100%;
  background: #F0F3F5;
  -webkit-clip-path: polygon(0% 100%, 50% 0%, 100% 0%, 100% 100%);
          clip-path: polygon(0% 100%, 50% 0%, 100% 0%, 100% 100%);
  position: absolute;
  right: 0;
  bottom: 0;
}

/*index-works ----------------------------------------*/
#top-works {
  text-align: center;
}

#top-works .contents-inner {
  text-align: left;
}

#top-works .contents-title .discription .left p {
  margin-bottom: 50px;
}

.works-catBtn {
  font-size: 1.4rem;
}

.works-catBtn ul li {
  margin-bottom: 1.75em;
}

.works-catBtn a {
  color: #fff;
  border-radius: 50px;
  background-color: #D3D3D3;
  padding: 0.5em 1.5em;
}

#top-works .more {
  display: inline-block;
  padding: 0;
}

#top-works .more a {
  display: inline-block;
}

.slide {
  width: 100%;
  margin-bottom: 50px;
  text-align: left;
}

.works-panel {
  margin: 25px 30px 50px;
  background-color: #fff;
  box-shadow: 10px 10px 30px 5px rgba(0, 0, 0, 0.1);
}

.works-panel a {
  padding: 5%;
  box-sizing: border-box;
  display: block;
  width: 100%;
  min-height: 450px;
  position: relative;
}

.works-panel div {
  margin-bottom: 20px;
}

.works-panel .works-cat {
  font-size: 1.5rem;
  color: #fff;
  background-color: #D3D3D3;
  border-radius: 50px;
  padding: 0.5em 1.5em;
  display: inline-block;
}

.works-panel .works-title {
  font-size: 2.3rem;
  font-weight: 500;
}

.works-panel .works-example {
  font-size: 1.4rem;
}

.works-panel .works-example span {
  font-size: 1.5rem;
  font-weight: 500;
  background-color: #4D4D4D;
  padding: 0.5em 1em;
  line-height: 1;
  color: #fff;
  display: inline-block;
  margin-right: 1em;
  transition: 0.25s;
}

.works-panel a:hover .works-example span {
  background-color: #C8C8C8;
}

.works-panel .works-text {
  font-size: 1.6rem;
  margin-bottom: 50px;
}

.works-panel .works-more {
  font-size: 1.4rem;
  font-weight: 500;
  position: absolute;
  right: 5%;
  bottom: 5%;
}

#top-works .more a {
  text-align: center;
  margin: 0 auto;
}

#top-news {
  text-align: center;
}

#top-news .contents-inner {
  text-align: left;
}

/*index-news ----------------------------------------*/
.news-table {
  font-size: 1.6rem;
  text-align: left;
}

.news-table ul li {
  box-sizing: border-box;
  margin-bottom: 1.5em;
}

.news-table ul li a {
  border: 1px solid #0084CC;
  display: block;
  padding: 1em;
}

.news-table ul li a:hover {
  border: 1px solid #0084CC;
}

.news-date,
.news-cat {
  margin-right: 1em;
}

.news-cat {
  background-color: #C3C3C3;
  font-size: 1.2rem;
  padding: 0.75em 1.5em;
  color: #fff;
  border-radius: 50px;
  display: inline-block;
  width: 4em;
  text-align: center;
  line-height: 1;
}

#top-news .more {
  margin-top: 50px;
}

/*index-recruit ----------------------------------------*/
.recruit-banner {
  /* border: 1px solid #000000 */ /* 202208無効化 */
}

.recruit-banner img {
  width: 100%;
  height: auto;
}

/*index-access ----------------------------------------*/
section #top-access {
  margin-bottom: 0;
}

#top-access .contents-inner .access-inner {
  display: flex;
}

#top-access .contents-title {
  margin-right: 50px;
}

#top-access .discription {
  font-size: 1.6rem;
}

#top-access .access-map {
  display: flex;
  justify-content: space-between;
  margin-bottom: 50px;
}

#top-access .googlemap {
  width: 48%;
  height: 300px;
  background-color: #F0F3F5;
}

#top-access .access-illust {
  width: 48%;
  height: 300px;
  background-color: #F0F3F5;
}

/*==============================================
ABOUT
===============================================*/
section.about-page {
  text-align: left;
}

section.about-page .title {
  font-size: 4rem;
  font-family: "Padauk", sans-serif;
  line-height: 1.2;
}

section.about-page .title span {
  display: block;
  font-size: 2rem;
}

.about-contents {
  max-width: 750px;
  margin: 50px auto 0;
}

#mission .about-contents p {
  font-family: "Padauk", sans-serif;
  font-size: 2rem;
}

#mission .about-contents p::before {
  content: "●";
  display: inline-block;
  font-size: 1rem;
  vertical-align: middle;
  margin-right: 1em;
}

#mission .about-contents p:nth-child(1)::before {
  color: #117CBE;
}

#mission .about-contents p:nth-child(2)::before {
  color: #D84178;
}

#mission .about-contents p:nth-child(3)::before {
  color: #FCC800;
}

#mission .about-contents p:nth-child(4)::before {
  color: #DCDCDC;
}

#mission .about-contents p:nth-child(5)::before {
  color: #14B4C8;
}

#message .about-contents .image {
  width: 100%;
  height: 400px;
  background-color: #DCDCDC;
  margin-bottom: 80px;
}

#message .about-contents .copy {
  font-size: 2.8rem;
  font-weight: 500;
  margin-bottom: 25px;
}

#message .about-contents .body {
  font-size: 1.8rem;
  margin-bottom: 40px;
}

#message .about-contents .text {
  font-size: 1.5rem;
}

/*==============================================
WORKS
===============================================*/
/*==============================================
WORKS-single
===============================================*/
/*==============================================
NEWS
===============================================*/
/*==============================================
NEWS-single
===============================================*/
/*==============================================
RECRUIT
===============================================*/
/*==============================================
CASES
===============================================*/
/*==============================================
CONTACT
===============================================*/
.send {
  margin: 3rem auto 0;
  text-align: center;
}

.send-btn {
  font-size: 1.5rem;
  background-color: #8c8c8c;
  padding: 0.5em 2em;
  color: #fff;
  display: inline-block;
  text-align: center;
}

/*==============================================
フッター
===============================================*/
/* footer{
	background-color: #F0F3F5;
	padding: 75px 0;
}
footer .contents-inner {
    display: flex;
    justify-content: space-between;
    margin: 0 auto 50px;
    max-width: 1280px;
}
.footer-left{
	white-space: nowrap;
}
.logo-f{
	width: 200px;
	margin-bottom: 10px;
}
.logo-f img{
	width: 100%;
	height: auto;
}
.name-f{
	font-size: 1.8rem;
	margin-bottom: 30px;
}
.adress-f{
	font-size: 1.2rem;
	margin-bottom: 10px;
}
.adress-f span a{
	border: 1px solid #707070;
	margin-left: 1em;
	padding: 0.1em 1em;
	border-radius: 5px;
}
.tel-f{
	font-size: 2rem;
	font-weight: 500;
	margin-bottom: 20px;
}
.contact-f a{
	color: #fff;
	background-color: #0084CC;
	width: 100%;
	display: block;
	text-align: center;
	padding: 0.75em 0;
	font-size: 1.5rem;
	border-radius: 50px;
	position: relative;
}
.contact-f a::before{
	content: '';
	background: url("../img/mail-icon.svg")no-repeat center center / cover;
	width: 17px;
	height: 12px;
	display: inline-block;
	margin-right: 10px;
}
.footer-right{
	font-size: 1.3rem;
}
.footer-menu{
	display: flex;
}
.footer-menu .column{
	margin-left: 50px;
	white-space: nowrap;
}
.footer-menu .column dt{
	margin-bottom: 0.5em;
}
.footer-menu .column dd{
	margin-bottom: 0.5em;
}
.footer-menu .column dd::before{
	content: '−';
	margin-right: 0.5em;
}
.copyright{
	font-size: 1.1rem;
	/* justify-content: flex-end; */
/* margin-bottom: 0; */
/*} */
/*==============================================
404
===============================================*/
.not-page {
  margin-top: 300px;
}

.not-page img {
  width: 100%;
  height: auto;
  max-width: 400px;
  margin-bottom: 50px;
}

.not-page p {
  margin-bottom: 80px;
}

.not-page a {
  background-color: #646464;
  color: #fff;
  padding: 1em 2em;
  font-size: 1.4rem;
}

/*==============================================
画面の横幅が1024pxまで
===============================================*/
@media only screen and (max-width: 1024px) {
  .sp-none {
    display: none;
  }
  .pc-none {
    display: block;
  }
  /*==============================================
  お問い合わせ
  ===============================================*/
  .send {
    margin: 3rem auto 0;
  }
  .send-btn {
    font-size: 1.2rem;
    padding: 0.5em 2em;
  }
  /*==============================================
  404
  ===============================================*/
  .not-page {
    font-size: 1.4rem;
    line-height: 1.8;
  }
  .not-page img {
    width: 50%;
    margin-top: 50px;
  }
}
/*==============================================
20220921 追記　共通要素CSS
===============================================*/
/*☆☆☆☆☆☆☆☆☆☆
ボタン
☆☆☆☆☆☆☆☆☆☆*/
.btn {
  display: inline-block;
  max-width: 100%;
  color: #fff;
  background-color: #0084CC;
  text-align: center;
  padding: 0.75em 0;
  border-radius: 50px;
  position: relative;
  /*アニメーションの設定*/
  transition: all 0.3s;
  top: 0;
}
@media screen and (max-width: 767px) {
  .btn {
    font-size: 1.6rem;
    width: 100%;
  }
}
@media screen and (min-width: 768px) {
  .btn {
    font-size: calc((100vw - 375px) * 0.0012944984 + 16px);
    width: 330px;
  }
}
@media screen and (min-width: 1920px) {
  .btn {
    font-size: 0.9375vw;
    width: 17.1875vw;
  }
}

.btn:hover {
  top: -0.2604166667vw;
  box-shadow: 0 0.3125vw 0.3125vw rgba(0, 0, 0, 0.3);
  color: #fff;
}

@media screen and (max-width: 767px) {
  .btn.btn-small {
    width: 100%;
  }
}
@media screen and (min-width: 768px) {
  .btn.btn-small {
    width: 222px;
  }
}
@media screen and (min-width: 1920px) {
  .btn.btn-small {
    width: 11.5625vw;
  }
}

.btn.btn-contact::before {
  position: absolute;
  /* transform: translateY(-50%); */
  content: "";
  background: url(../img/top/top-btn-contact.svg) no-repeat;
  background-size: contain;
}
@media screen and (max-width: 767px) {
  .btn.btn-contact::before {
    top: -10px;
    left: 20px;
    width: 70px;
    height: 43px;
  }
}
@media screen and (min-width: 768px) {
  .btn.btn-contact::before {
    width: calc((100vw - 375px) * 0 + 70px);
    height: calc((100vw - 375px) * 0 + 43px);
    top: -0.5208333333vw;
    left: 1.0416666667vw;
    /*アニメーションの設定*/
    transition: all 0.5s;
    transform: scale(1, 1);
  }
}
@media screen and (min-width: 1920px) {
  .btn.btn-contact::before {
    width: 3.6458333333vw;
    height: 2.2395833333vw;
  }
}

@media screen and (min-width: 768px) {
  .btn.btn-contact:hover::before {
    top: -1.0416666667vw;
    left: 2.0833333333vw;
    transform: scale(0.6, 0.6);
  }
}

@media screen and (min-width: 768px) {
  header .btn.btn-contact::before {
    width: calc((100vw - 375px) * 0.0129449838 + 50px);
    top: 0.5208333333vw;
    left: 2.0833333333vw;
  }
}
@media screen and (min-width: 1920px) {
  header .btn.btn-contact::before {
    left: 5.2083333333vw;
  }
}

@media screen and (min-width: 768px) {
  header .btn.btn-contact:hover::before {
    top: -0.5208333333vw;
    left: 3.125vw;
    transform: scale(0.6, 0.6);
  }
}
@media screen and (min-width: 1920px) {
  header .btn.btn-contact:hover::before {
    left: 6.25vw;
  }
}

/*☆☆☆☆☆☆☆☆☆☆
改行用
☆☆☆☆☆☆☆☆☆☆*/
@media screen and (min-width: 768px) {
  .sp_only {
    display: none;
  }
}

@media screen and (max-width: 767px) {
  .pc_only {
    display: none;
  }
}

@media screen and (min-width: 1920px) {
  .pc_none {
    display: none;
  }
}

@media screen and (max-width: 767px) {
  .tab_only {
    display: none;
  }
}
@media screen and (min-width: 1920px) {
  .tab_only {
    display: none;
  }
}
/*# sourceMappingURL=style.css.map */