

@charset "utf-8";
/* CSS Document */
// <uniquifier>: Use a unique and descriptive class name
// <weight>: Use a value from 100 to 900

.noto-sans-jp-<uniquifier> {
  font-family: "Noto Sans JP", serif;
  font-optical-sizing: auto;
  font-weight: <weight>;
  font-style: normal;
}
.zen-kaku-gothic-new-regular {
  font-family: "Zen Kaku Gothic New", serif;
  font-weight: 400;
  font-style: normal;
}
.p-noto {
	font-family: "Noto Sans JP", serif;
}
.p-zen {
	"Zen Kaku Gothic New", serif;
}
p {
	margin: 0;
	padding: 0;
}
img {
	margin: 0;
	padding: 0;
}
a {
	color: #fff;
	text-decoration: none;
}
a:hover {
	text-decoration: none;
	color: #fff;
}
.wrap {
	overflow: hidden;
}
/* 略 */
.navbar {
	padding-top: 24px;
}
.navbar-nav {
	padding-right: 3em;
}
.navbar-brand {
	padding-top: 7px;
	padding-left: 24px;
}
.navbar-brand img {
	height: 32px;
}
.navbar-brand-1{
	padding-left: 24px;
	opacity: 0.5;
}
.navbar-brand-1 img {
	height: 14px;
}
.nav-link {
	color: #D7D7D7;
	font-size: 12px;
	font-family: "Noto Sans JP", serif;
}
.nav-item a{
	transition: all 0.1s;
}
.nav-item a:hover{
	opacity: 0.5;
}
li {
	padding-right: 24px;
}
header {
	background-image: url("../img/header.png");
	width: 100vw;
	background-size: 100vw;
	background-repeat: no-repeat;
}
.ribon {
	padding-top: 3%;
}
/* 略 */
.about {
	margin: 650px auto 0;
	color: #fff;
	padding-bottom: 92px;
}
.about-title {
	margin-bottom: 0;
	font-size: 55px;
	font-weight: 700;
	line-height: 1.1em;
}
.about-subtitle {
	margin-top: -5px;
	font-family: "Zen Kaku Gothic New", serif;
	font-weight: 600;
	font-size: 29px;
}
.about-text {
	font-weight: 400;
	font-size: 14px;
	margin: 42px auto 52px;
	letter-spacing: 0.3px;
}
.about-button a {
    font-family: "Noto Sans JP", serif;
  	border: solid 1px #fff;
 	padding:12px 120px 12px 21px;
  	position: relative;
	color: #fff;
	font-size: 12px;
	letter-spacing:1.5px;
	text-decoration: none;
	transition: all 0.2s;
}
.about-button a::after {
  content: "";
  width: 8px;
  height: 8px;
  border-top: solid 1px #fff;
  border-right: solid 1px #fff;
  transform: rotate(45deg);
  position: absolute;
  margin-top: -2px;
  top: 50%;
  left: 162px;
}
.about-button a:hover {
	opacity: 0.5;
}
.top-works {
	background-color: #202020;
	border-bottom: solid 3px #fff;
}
.inner-top-works {
	margin: 72px auto;
}
.top-works-box img {
	width: 94%;
}
.service {
	background-image: url("../img/service-bg.png");
	background-size: cover;
	background-repeat: no-repeat;
}
.inner-service {
	margin: 0 auto;
	color: #fff;
}
.top-works-left {
	padding-top: 18px;
	font-weight: 400;
	font-size: 12px;
}
.top-works-right {
	padding-top:21px;
}
.top-works-right a {
    font-family: "Noto Sans JP", serif;
	background-color: #fff;
 	padding:5px 60px 5px 12px;
  	position: relative;
	color: #202020;
	font-size: 12px;
	font-weight: 600;
	letter-spacing:1.5px;
	text-decoration: none;
	transition: all 0.1s;
}
.top-works-right a::after {
  content: "";
  width: 8px;
  height: 8px;
  border-top: solid 1.5px #202020;
  border-right: solid 1.5px #202020;
  transform: rotate(45deg);
  position: absolute;
  margin-top: -2px;
  top: 50%;
  left: 180px;
}
.top-works-right a:hover {
	opacity: 0.5;
}
.inner-top-service{
	margin: 56px auto;
	color: #fff;
}
.top-service-title{
	font-size: 42px;
	font-weight: 600;
}
.top-service-box {
	margin: 0;
	width: 100%;
}
.top-service-box-title {
	font-size: 19px;
	font-weight: 600;
	letter-spacing: 1px;
}
.top-service-box-text {
	padding-top: 8px;
	left: 4px;
	font-size: 13px;
	line-height: 1.7em;
	position:relative;
}
.right-line-2 {
	position:absolute;/*絶対位置指定*/
    left:99%;/*横位置の指定*/
    top:14%;/*縦位置の指定*/
    background:#fff;/*線の色指定*/
    width:3px;/*線の幅指定*/
    height:82%;/*線の高さ指定*/
}
.float-right {
	padding-left: 4%;
}
.service-botom-text {
	margin-top: 32px;
	font-size: 18px;
	font-weight: 600;
}
.service-botom-text a{
	color: #fff;
	border-bottom: solid 1px #fff;
}
.inner-top-topics {
	margin: 72px auto;
}
.top-topics-title {
	font-size: 42px;
	font-weight: 600;
}
.top-topics-box {
	margin: 15px 0 0;
}
.day {
	font-size: 18px;
	font-weight: 600;
}
.top-topics-box-title {
	padding-top: 7px;
	font-size: 14px;
	font-weight: 500;
}
.top-view-more a{
	color: #202020;
	font-size: 12px;
}
.top-view-more a::after {
	content: "";
	border-bottom: solid 1px #202020;
	width: 72%;
	position: absolute;
	top: 90%;
	left: 82px;
}
.about-button a::after {
  content: "";
  width: 8px;
  height: 8px;
  border-top: solid 1px #fff;
  border-right: solid 1px #fff;
  transform: rotate(45deg);
  position: absolute;
  margin-top: -2px;
  top: 50%;
  left: 162px;
}
footer {
	background-image: url("../img/footer-bg.png");
	background-size: cover;
	background-repeat: no-repeat;
	font-family: "Noto Sans JP", serif;
}
.inner-footer {
	margin: 0 auto;
}
.footer-title {
	padding-top: 72px;
}
.footer-title img {
	width: 34%;
}
.footer-left {
	margin: 18px 0;
	position: relative;
}
.footer-left-line {
	position:absolute;/*絶対位置指定*/
    left:91%;/*横位置の指定*/
    top:21%;/*縦位置の指定*/
    background:#fff;/*線の色指定*/
    width:1px;/*線の幅指定*/
    height:68%;/*線の高さ指定*/
}
.footer-link a {
	font-size: 12px;
	letter-spacing: 0.5px;
}
.footer-right {
	margin: 18px 0;
}
.footer-tel-box {
	display: flex;
	flex-direction: column;
}
.footer-tel-box p{
	margin-top: auto;
	font-size: 21px;
	font-weight: 500;
	transition: all 0.2s;
}
.footer-tel-box a {
	transition: all 0.2s;
}
.footer-tel-box a:hover{
	opacity: 0.7;
}
.footer-tel {
	font-size: 24px;
}
.footer-copy {
	text-align: right;
	margin: 18px 0;
	font-size: 12px;
	color: #fff;
	font-family: "Noto Sans JP", serif;
	letter-spacing: 0.8px;
	opacity: 0.8;
	display: flex;
	flex-direction: column;
}
.footer-copy p {
	margin-top: auto;
}
.page {
	background-image: url("../img/footer-bg.png");
	width: 100%;
	height: 19em;;
	background-repeat: no-repeat;
}
.inner-page {
	margin: 72px auto 0;
	padding-bottom: 0px;
	color: #fff;
}
.page-top-title  {
	line-height:1em;
	font-size: 58px;
	font-weight: 600;
}
.page-top-subtitle {
	margin-top: 5px;
	font-size: 18px;
}
.page-right {
	font-size: 12px;
	opacity: 0.8;
	text-align: right;
}
.page-title {
	font-size: 32px;
	font-weight: 500;
	line-height: 1em;
}
.page-subtitle {
	margin-top: 5px;
	font-size: 14px;
}
.inner-contact-page {
	margin: 148px auto 0;
	font-family: "Noto Sans JP", serif;
}
.contact-page-tel {
	margin: 24px auto 0;
	border-bottom: solid #202020 1px;
	line-height: 1em;
}
.contact-page-tel-title {
	font-weight: 500;
}
.contact-page-number a{
	color: #202020;
	font-size: 25px;
	font-weight: 600;
	line-height: 1.4em;
}
.contact-page-tel-subtitle {
	font-size: 12px;
	display: flex;
	flex-direction: column;
}
.contact-page-tel-subtitle p {
	margin-left: -25px;
	margin-top: 13px;
}
.form-category {
	font-size: 14px;
}
input::placeholder {
  font-size: 14px;
  vertical-align: top;
  line-height: 1;
}
.form-top {
	margin-top: 24px;
}
.form-control {
	height: 58px;
	border: #202020 1px solid;
	margin-bottom: 18px;
}
.privacy {
	font-size: 12px;
}
.contact-button {
	margin:24px 0 72px;
	background-color: #202020;
	color: #fff;
	padding: 12px 42px;
	border: none;
	border-radius: 90px;
}
.inner-news {
	font-family: "Noto Sans JP", serif;
	margin: 72px auto 0;
	padding-bottom: 92px;
}
.news-day {
	font-size: 18px;
	font-weight: 500;
}
.news-box {
	border-bottom: solid 1px #A2A2A2;
	line-height: 3em;
}
.news-btn {
	font-size: 14px;
	text-align: left;
	width: 100%;
	background-color: #fff;
	border: none;
	transition: all 0.1s;
}
.news-btn:hover {
	opacity: 0.5;
}
.collapse {
  border: none; /* borderを削除 */
	margin: auto 0 auto auto;
	font-size: 12px;
	line-height: 1.8em;
	
}
.inner-collapse {
	margin: 0 0 18px;
}
.card {
  border: none;/* カードにborderを設定している場合 */
}
.news-btn:focus {
    outline: none;
}
.news-box {
  display: flex; /* 親要素をFlexコンテナにする */
  justify-content: flex-end; /* 子要素を右端に配置 */
}
.inner-company-page {
	margin: 148px auto 0;
}
.inner-company-page-box {
	margin:  8px auto 0;
	padding-bottom: 56px;
}
.company-box {
	margin-bottom: 12px;
	border-bottom: solid #A2A2A2 1px;
	line-height: 3em;
}
.company-name {
	font-size: 14px;
	font-weight: 500;
}
.company-text {
	font-size: 14px;
	font-weight: 500;
}
.dotted-line {
  top: 0;
  width: 100%;
  height: 1px;
  border: none;
  border-bottom: 1px dotted #999999; /* 点線を引く */
}
.inner-location {
	margin: 72px auto 0;
}
.location-info {
	margin: 24px 0;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.8em;
}
/* Google Mapを囲う要素 */
.map {
	margin-top: 18px;
	margin-bottom: 90px;
  position: relative;
  width: 100%;
  height: 0;
  padding-top: 35%; /* 比率を4:3に固定 */
}
 
/* Google Mapのiframe */
.map iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.inner-works {
	margin: 142px auto 0;
}
.inner-works-box {
	padding-top: 24px;
	padding-bottom: 34px;
}
.works-img {
	width: 100%;
	transition: all 0.2s;
}
.works-img:hover {
	opacity: 0.5;
}
.works-box-left {
	margin-bottom: 52px;
}
.works-number {
	padding-top: 18px;
	font-size: 14px;
	font-weight: 500;
}
.works-title {
	font-weight: 500;
	font-size: 18px;
}
*:focus {
  box-shadow:none !important;
	outline: none !important;
}
/* PC用のCSSはメディアクエリの外に記述する */

@media screen and (min-width: 768px) {
  .sp {
    display: none;
  }
}
@media screen and (max-width: 767px) {
  .pc {
    display: none;
  }
	header {
		background-image: url("../img/header-sp.png");
	}
	ul {
		display: flex;
  		flex-direction: column;
		margin-left: 0px;
		opacity: 0.5;
	}
/* 略 */
.navbar {
	padding-top: 24px;
}
.navbar-brand {
	padding-top: 4px;
	padding-left: 0px;
}
.navbar-brand img {
	height: 28px;
}
.navbar-brand-1{
	padding-left: 3%;
}
	.navbar-toggler-icon {
		margin-right: 0.3em;
	}
	.sp-width {
		margin: 0 auto;
		width: 350px;
	}
	.about {
		margin: 760px auto 0;
		padding-bottom: 72px;
	}
	.about-title {
		font-size: 42px;
		line-height: 1.1em;
	}
	.about-subtitle {
		padding-top: 12px;
		font-size: 20px;
	}
	.about-text {
		margin: 24px auto 28px;
	}
	.top-works-box img {
	    width: 100%;
		margin-bottom: 46px;
}
	.inner-top-works {
		margin: 72px auto 0;
		padding-bottom: 26px;
	}
	.top-service-title {
		padding-left: 32px;
	}
	.footer-title img {
		width: 80%;
	}
	.footer-link {
		padding-bottom: 2px;
	}
	.footer-left {
	margin: 32px 0 0;
	position: relative;
}
.footer-left-line {
	position:absolute;/*絶対位置指定*/
    left:91%;/*横位置の指定*/
    top:21%;/*縦位置の指定*/
    background:#fff;/*線の色指定*/
    width:0px;/*線の幅指定*/
    height:68%;/*線の高さ指定*/
}
	.footer-tel-box {
		padding-top: 24px;
	}
	.footer-copy {
		text-align: left;
	}
	.page {
	height: 20em;
}
	.inner-page {
	margin: 48px auto 0;
    padding-bottom: 0;
	color: #E5E5E5;
}
.page-top-title  {
	font-size: 36px;
}
.page-top-subtitle {
	margin-top: 12px;
	line-height: 1em;
}
.page-right {
	margin-top: 12px;
	padding-right: 28px;
	font-size:10px;
}
	.page-title {
	font-size: 28px;
	line-height: 1em;
}
.page-subtitle {
	margin-top: 0px;
	font-size: 12px;
}
	.inner-company-page {
	margin: 152px auto 0;
}
	.inner-location {
}
.location-info {
	margin: 4px 0;
	line-height: 1.3em;
}
	/* Google Mapを囲う要素 */
.map {
  padding-top: 48%; /* 比率を4:3に固定 */
}
	.inner-contact-page {
		margin-top: 152px;
	}
.contact-page-tel {
	margin: 24px 14px 0;
	border-bottom: solid #202020 1px;
	line-height: 1em;
}
.contact-page-tel-title {
	font-weight: 500;
	font-size: 12px;
}
.contact-page-number a{
	color: #202020;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.4em;
}
.contact-page-tel-subtitle {
	margin: 0 24px ;
	font-size: 10px;
	display: flex;
	flex-direction: column;
}
.contact-page-tel-subtitle p {
	margin-left: -25px;
	margin-top: 13px;
}
.form-category {
	font-size: 14px;
}
input::placeholder {
  font-size: 14px;
  vertical-align: top;
  line-height: 1;
}
.form-top {
	margin-top: 24px;
}
.form-control {
	height: 58px;
	border: #202020 1px solid;
	margin-bottom: 18px;
}
.privacy {
	font-size: 12px;
}
.contact-button {
	margin:24px 0 72px;
	background-color: #202020;
	color: #fff;
	padding: 12px 42px;
	border: none;
	border-radius: 90px;
}
.inner-works-box {
	padding-top: 24px;
	padding-bottom: 34px;
}
.works-img {
	width: 100%;
}
.works-box-left {
	margin-bottom: 34px;
}
.works-number {
	padding-left: 4px;
	padding-top: 12px;
	font-size: 12px;
	font-weight: 500;
}
.works-title {
	padding-left: 4px;
	line-height: 1em;
	font-size: 16px;
}
}

/* loading */
.loader {
  position: fixed;
  width: 100%;
  height: 100vh;
  background-color: #202020;
  z-index: 555;
  top: 0;
  left: 0;
  display: flex;
  justify-content: center;
  align-items: center;
}
.loader .txt {
  font-family: "Noto Sans JP", serif;
  font-size: 18px;
  font-weight: 400;
	letter-spacing: 4px;
  background: linear-gradient(to right,#0E3774,#2783B8);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.txt {
  /* 既存のCSS */
  animation: blink 3s infinite;
}

@keyframes blink {
  0% {
    opacity: 0;
  }
  50% {
    opacity: .5;
  }
  100% {
    opacity: 1;
  }
}


/* スクロールダウンの位置 */
.scroll {
  position: absolute;
  top: 670px;
	color: #A3A3A3;
	text-align: center;
}
/* 線のアニメーション部分 */
.scroll::before {
  animation: scroll 1.5s infinite;
  background-color: #A3A3A3;
  bottom: 32px;
  content: "";
  height: 72px;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  width: 1px;
}
/* 線のアニメーション */
@keyframes scroll {
  0% {
    transform: scale(1, 0);
    transform-origin: 0 0;
  }
  50% {
    transform: scale(1, 1);
    transform-origin: 0 0;
  }
  51% {
    transform: scale(1, 1);
    transform-origin: 0 100%;
  }
  100% {
    transform: scale(1, 0);
    transform-origin: 0 100%;
  }
}
@media screen and (min-width: 10px) and (max-width: 376px){
	/* スクロールダウンの位置 */
.scroll {
  top: 640px;
}
/* 線のアニメーション部分 */
.about {
		margin: 740px auto 0;
		padding-bottom: 82px;
	}
}
@media screen and (min-width: 377px) and (max-width: 390px){
	/* スクロールダウンの位置 */
.scroll {
  top: 650px;
}
/* 線のアニメーション部分 */
.about {
		margin: 770px auto 0;
		padding-bottom: 82px;
	}
}
@media screen and (min-width: 391px) and (max-width: 414px){
		/* スクロールダウンの位置 */
.scroll {
  top: 690px;
}
/* 線のアニメーション部分 */
.about {
		margin: 820px auto 0;
		padding-bottom: 88px;
	}
}
@media screen and (min-width: 415px) and (max-width: 430px){
		/* スクロールダウンの位置 */
.scroll {
  top: 730px;
}
/* 線のアニメーション部分 */
.about {
		margin: 860px auto 0;
		padding-bottom: 88px;
	}
}
@media screen and (min-width: 600px) and (max-width: 768px){
/* 線のアニメーション部分 */
.about {
		margin: 370px auto 0;
		padding-bottom: 88px;
	}
}
@media screen and (min-width: 769px) and (max-width: 820px){
/* 線のアニメーション部分 */
.about {
		margin: 420px auto 0;
		padding-bottom: 88px;
	}
}
@media screen and (min-width: 821px) and (max-width: 1024px){
/* 線のアニメーション部分 */
.about {
		margin: 520px auto 0;
		padding-bottom: 88px;
	}
}
@media screen and (min-width: 1281px) and (max-width: 1920px){
/* 線のアニメーション部分 */
.about {
		margin: 990px auto 0;
		padding-bottom: 96px;
	}
}
.fullscreen .modal-dialog {
  margin: 0 0 0 0;
  max-width: 100%;
  width: 100%;
  height: 100%;
  min-height: 100%;
  padding: 0;;
}
 
.fullscreen .modal-content {
  height: 100%;
  min-height: 100%;
  border-radius: 0;
  background: rgba(36, 36, 36, 0.90);
  overflow:auto;
}
 
.fullscreen .modal-content .modal-header{
  border: 0px;
}
 
.fullscreen .modal-content button{
  opacity: 1;
}
 
.fullscreen .modal-content button span{
  color: #fff;
  font-weight: 1;
  font-size: 26px;
  text-shadow: none;
}
 
.fullscreen .modal-body .modal-logo img {
  width: 158px;
  padding-bottom: 84px;
}
 
.fullscreen .modal-body ul {
  padding: 0 0 0 0;
}
.fullscreen .modal-body li {
  padding-bottom: 43px;
}
.fullscreen .modal-body a {
  color: #fff;
  font-size: 16px;
}
 
.fullscreen .modal-body .social img {
  width: 56px;
  margin: 8px;
}
.modal-title{
  color: #fff;
}
.slide {
	margin: 0 auto;
	padding-top: 72px;
	padding-bottom: 72px;
	text-align: center;
}
.slide img {
	width: 100%;
}