@charset "utf-8";

body,p,td,li, h5,h6 {
	font-family: "TsukuGoPr5-R-AvenirNextLTPro-Regular",sans-serif;
	font-weight: 400;
	font-size:1rem;
	line-height:1.8em;
}
h1,h2,h3,h4,.h1,.h2,.h3,.h4,.h5,.h6 {
	font-family: "TsukuGoPro-B-AvenirNextLTPro-Medium",sans-serif;
	font-weight:400;
	line-height:1.5em;
}

.font-g {
	font-family: "TsukuGoPro-B-AvenirNextLTPro-Medium",sans-serif;
}

.font-m {
	font-family: "游明朝","Yu Mincho","游明朝体",YuMincho,"ヒラギノ明朝 Pro W3","Hiragino Mincho Pro","HGS明朝E","ＭＳ Ｐ明朝","MS PMincho",serif;
}

.bold {
	font-weight:800;
}

.container {
	max-width: 1164px;
}



/* 文字サイズ
==================================================== */
.topheader-wrap {
	width:80%;
	max-width:700px;
	top:50%;left:50%;
    z-index:100;
	transform: translate(-50%, -50%);
}
.topheader {
	display:inline-block;
	font-size: clamp(1.5rem, 15cqi, 4rem);
	line-height:9vw;
	color:#fff;
	/*text-shadow: 1px 1px 2px #000;*/
    text-shadow: 2px 2px 5px #000;
	/*font-family: "游明朝","Yu Mincho","游明朝体",YuMincho,"ヒラギノ明朝 Pro W3","Hiragino Mincho Pro","HGS明朝E","ＭＳ Ｐ明朝","MS PMincho",serif;*/
}
@media (max-width: 768px) {
	.topheader-wrap {
		width:100%;
	}
	.topheader { font-size: clamp(1.375rem, 1.018rem + 1.79vw, 1.875rem); line-height:9vw; }
}

h1 { font-size:1.5rem; }
@media (min-width: 576px) {
	h1 { font-size:1.8rem; }
}
@media (min-width: 1200px) {
	h1 { font-size:2.5rem; }
}

h2 { font-size:1.1rem; }
@media (min-width: 576px) {
	h2 { font-size:1.1rem; }
}
@media (min-width: 1200px) {
	h2 { font-size:1.1rem; }
}


@media (min-width: 768px) and (max-width: 1050.98px) {
	.top_square .top_text { font-size:0.8rem; }
}
@media (max-width: 767.98px) {
	.top_text { font-size:1rem; }
}



/* マージン、パディング
==================================================== */
.mt-40 { margin-top:40px; }
.mb-40 { margin-bottom:40px; }
.pt-40 { padding-top:40px; }
.pb-40 { padding-bottom:40px; }
.mt-80 { margin-top:80px; }
.mb-80 { margin-bottom:80px; }
.pt-80 { padding-top:80px; }
.pb-80 { padding-bottom:80px; }
.ps-80 { padding-left:80px; }
.pe-80 { padding-right:80px; }
.mt-110 { margin-top:110px; }
.mb-110 { margin-bottom:110px; }
.pt-110 { padding-top:110px; }
.pb-110 { padding-bottom:110px; }
.ps-110 { padding-left: 110px; }

.my-80 { margin-top:80px; margin-bottom:80px; }
.my-110 { margin-top:110px; margin-bottom:110px; }
.py-80 { padding-top:80px; padding-bottom:80px; }
.px-80 { padding-left:80px; padding-right:80px; }
.py-110 { padding-top:110px; padding-bottom:110px; }

@media (max-width: 767.98px) {
	.mt-40, .mt-80, .mt-110 { margin-top:30px; }
	.mb-40, .mb-80, .mb-110 { margin-bottom:30px; }
	.pt-40, .pt-80, .pt-110 { padding-top:30px; }
	.pb-40, .pb-80, .pb-110 { padding-bottom:30px; }
	.ps-80, .ps-110 { padding-left:30px; }
	.pe-80, .pe-110 { padding-right:30px; }
	.my-80, .my-110 { margin-top:30px; margin-bottom:30px; }
	.py-80, .py-110 { padding-top:30px; padding-bottom:30px; }
	.mx-80 { margin-left:30px; margin-right:30px; }
}

.lh-1 { line-height: 1em; }
.lh-2 { line-height: 2em; }
.lh-3 { line-height: 3em; }




/* リンク
==================================================== */
a {
	color: #666;
}

footer a {
	color: #fff;
	text-decoration:none;
}

a:hover {
	opacity:0.8;
}


/* フッター
==================================================== */
@media (max-width: 767.98px) {
    .footer_logo {
        width: 60px;
    }
}
#copyright {
	font-size:13px;
	padding-bottom:10px;
}


/* ナビバー
==================================================== */
#naviOpenM { display: inline-block; }
#sidemenuM {
	padding: 70px 0px 0px 30px;
	height:100vh;
	width:190px;
	right: -190px;
	background-color:rgba(0,153,204,.7);
	z-index:1002;
	border-left: 1px solid rgba(200,200,200,.3);
	line-height: 2em;
}
#sidemenuM a {
  color: #fff;
  text-decoration: none;
}

.page-title {
	height:300px;
}
@media (max-width: 768px) {
	.page-title { height:260px; }
}


/* INDEX
==================================================== */
.top-main-img h1{
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	font-size: 3rem;
}
.top-business{
	position: relative;
	width: 100%;
	max-width: 1384px;
	margin: auto;
}
.top-business > div h2{
	font-size: 2rem;	
	margin-bottom: 1rem;
}
.top-business .row{
	margin-bottom: 80px;
}
.top-business .text{
	width: 45%;
}
.top-business .img{
	width: 50%;
	padding: 0;
}

.top-business .row:nth-child(1) .img p:nth-child(1),
.top-business .row:nth-child(2) > .img p,
.top-business .row:nth-child(3) .img p{
	width: 50vw;
	max-width: 680px;
}
@media (max-width: 1383px){
	.top-business .row:nth-child(1) .img p:nth-child(1),
	.top-business .row:nth-child(3) .img p{
		width: 100% !important;
	}
}
.top-business .row:nth-child(1) .img p:nth-child(2){
	position: relative;
	width: 20vw;
	max-width: 400px;
	top: -15vw;
	left: -10vw;
	margin-bottom: -15vw;
}
@media (max-width: 992px){
	.top-business .row:nth-child(1) .img p:nth-child(2){
		left: -3rem;
	}
}
.top-business .row:nth-child(2) > .img p{
	position: absolute;
	left: 0;	
}
.top-business .row:nth-child(2) > .text .img{
	position: relative;
	width: 100%;
	margin-top: 2rem;
}
.top-business .row:nth-child(3) .text .img{
	width: 80%;
	margin: auto;
}




/* トップへ戻る
==================================================== */
a.page-top {
  color: #333;
  position: fixed;
  bottom: 24px;
  right: 80px;
  text-decoration: none;
  display: block;
  width: 100px;
  padding: 16px 20px;
  text-align: right;
  transform: rotate(90deg);
  transform-origin: bottom right;
}
@media (max-width: 768px) {
	a.page-top {
		padding: 16px 20px;
 	    right: 50px;
	}
}

.arrow1 {
width: 48px;
height: 1px;
background: #333;
position: absolute;
top: 50%;
right: 62px;
}

.arrow2 {
width: 1px;
height: 12px;
background: #333;
position: absolute;
top: calc(50% + 1px);
right: 109px;
transform: rotate(-130deg);
transform-origin: top left;
}

/* マウスオーバーでテキスト
==================================================== */
.hover-text {
	color: #fff;
	background-color: rgba(0,0,0,.4);
	display: grid;
	justify-items: center;
	align-items: center;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	font-size: 1.2em;
	opacity: 0;
	transition: 0.5s;
}
.hover-text:hover {
	opacity: 1;
}


/* カラー
==================================================== */
.blue { color: #0099CC; }

.circle-text {
  display: inline-block;
  background: #0099CC;
  border-radius: 50%;
  width: 20px;
  height: 20px;
  color: #fff;
  font-size: 14px;
  text-align: center;
  line-height: 18px;
  letter-spacing:-2px;
  padding-right:3px;
}

/* ボタン
==================================================== */
button.view{
  background:#0099CC;
  color:#fff;
  border:none;
  position:relative;
  font-size:1em;
  padding: 3px 17px 7px 20px;
  cursor:pointer;
  transition:400ms liner all;
  outline:none;
}
button.view:hover{
  background:#fff;
  color:#0099CC;
}
button.view:before,button.view:after{
  content:'';
  position:absolute;
  top:0;
  right:0;
  height:2px;
  width:0;
  background: #0099CC;
  transition:400ms ease all;
}
button.view:after{
  right:inherit;
  top:inherit;
  left:0;
  bottom:0;
}
button.view:hover:before,button.view:hover:after{
  width:100%;
  transition:400ms liner all;
}


/* メディアクエリ
==================================================== */
// X-Small devices (portrait phones, less than 576px)
// No media query for `xs` since this is the default in Bootstrap

// Small devices (landscape phones, 576px and up)
@media (min-width: 576px) {}

// Medium devices (tablets, 768px and up)
@media (min-width: 768px) {}

// Large devices (desktops, 992px and up)
@media (min-width: 992px) {}

// X-Large devices (large desktops, 1200px and up)
@media (min-width: 1200px) {}

// XX-Large devices (larger desktops, 1400px and up)
@media (min-width: 1400px) {}


// X-Small devices (portrait phones, less than 576px)
@media (max-width: 575.98px) {}

// Small devices (landscape phones, less than 768px)
@media (max-width: 767.98px) {}

// Medium devices (tablets, less than 992px)
@media (max-width: 991.98px) {}

// Large devices (desktops, less than 1200px)
@media (max-width: 1199.98px) {}

// X-Large devices (large desktops, less than 1400px)
@media (max-width: 1399.98px) {}
