@charset "utf-8";

@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/lato/v23/S6uyw4BMUTPHjxAwXjeu.woff2) format('woff2');
}
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/lato/v23/S6u9w4BMUTPHh6UVSwaPGR_p.woff2) format('woff2');
}
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/lato/v23/S6u9w4BMUTPHh50XSwaPGR_p.woff2) format('woff2');
}
@font-face {
  font-family: 'Lato';
  font-style: italic;
  font-weight: 900;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/lato/v23/S6u_w4BMUTPHjxsI3wi_FQft1dw.woff2) format('woff2');
}


@font-face {
font-family : 'Noto Sans JP';
font-style : normal;
font-weight : 400;
font-display : swap;
src : url(https://fonts.gstatic.com/s/notosansjp/v28/-F62fjtqLzI2JPCgQBnw7HFowA.otf) format('opentype');
}
@font-face {
font-family : 'Noto Sans JP';
font-style : normal;
font-weight : 500;
font-display : swap;
src : url(https://fonts.gstatic.com/s/notosansjp/v28/-F6pfjtqLzI2JPCgQBnw7HFQMisq1A.otf) format('opentype');
}
@font-face {
font-family : 'Noto Sans JP';
font-style : normal;
font-weight : 700;
font-display : swap;
src : url(https://fonts.gstatic.com/s/notosansjp/v42/-F6pfjtqLzI2JPCgQBnw7HFQei0q0Q.woff) format('woff');
}
@font-face {
font-family : 'Noto Sans JP';
font-style : normal;
font-weight : 900;
font-display : swap;
src : url(https://fonts.gstatic.com/s/notosansjp/v42/-F6pfjtqLzI2JPCgQBnw7HFQQi8q0Q.woff) format('woff');
}
/* フォント
----------------------------*/
.f-Lato400 {
	font-family : 'Lato', sans-serif;
	font-weight : 400;
	letter-spacing: 0.1rem;
}
.f-Lato700 {
	font-family : 'Lato', sans-serif;
	font-weight : 700;
	letter-spacing: 0.1rem;
}
.f-Lato900 {
	font-family : 'Lato', sans-serif;
	font-weight : 900;
	letter-spacing: 0.1rem;
}
.f-Lato900i {
	font-family : 'Lato', sans-serif;
	font-weight : 900;
    font-style: italic;
	letter-spacing: 0.1rem;
}
/* --------------------------------------------------
 BaseSet
-------------------------------------------------- */
html {
  font-size: 62.5%; /* -> 10px; */
}
body {
	text-align: center;
    font-family: 'Noto Sans JP', sans-serif;
	font-size: 1.6em;
	line-height: 2;
	font-weight: 200;
	font-smoothing: antialiased;
	letter-spacing: 0.08rem;
    color : #333;
	width: 100%;
    background-color : #FFF;
}
.clear {
clear: both;	
	
}
@media only screen and (max-width: 960px) {
body{
   min-width: 100%;
}
}
@media only screen and (max-width: 400px) {
body{
	font-size: 1em;
}
}
#wrapper{ 
	position: relative;
    width: 100%;
	height: 100%;
    overflow: hidden;
}

/* --------------------------------------------------
 区切り
-------------------------------------------------- */
.contents-white, .contents-white100 {
	background-color:  #fff;
	width:  100%;
	position: relative;
	margin: 1px 0 0 0;
	border: solid 1px #FFF;
}
@media only screen and (max-width: 1300px) {
.contents-white {
	padding:  0 30px;
}
}
@media only screen and (max-width: 680px) {
.contents-white {
	padding:  0 20px;
}
}

.contents-gray {
	background-color: #2a2a2a;
	width:  100%;
	border: solid 1px #2a2a2a;
	overflow: hidden;
}
@media only screen and (max-width: 1300px) {
.contents-gray {
	padding:  0 30px;
}
}
@media only screen and (max-width: 680px) {
.contents-gray {
	padding:  0 20px;
}
}
.container1 {
	display : flex;
	flex-direction: row-reverse;
	padding:  2vw 0 10vw;
}
@media only screen and (max-width: 1300px) {
.container1 {
	padding:  2vw 0 16vw;
}
}
@media only screen and (max-width: 960px) {
.container1 {
	display : block;
}	
}
@media only screen and (max-width: 680px) {
.container1 {
	padding:  2vw 0 24vw;
}
}
.container2 {
	padding:  3vw 0 10vw;
}
@media only screen and (max-width: 1300px) {
.container2 {
	padding:  2vw 0 16vw;
}
}
@media only screen and (max-width: 680px) {
.container2 {
	padding:  2vw 0 24vw;
}
}
.container3 {
	position: relative;
	display : flex;
	padding:  2vw 0 10vw;
}
@media only screen and (max-width: 1300px) {
.container3 {
	padding:  2vw 0 16vw;
}
}
@media only screen and (max-width: 960px) {
.container3 {
	display : block;
	padding:  2vw 0 50vw;
}	
}
@media only screen and (max-width: 680px) {
.container3 {
	display : block;
	padding:  2vw 0 70vw;
}
}

.container4 {
	padding:  3vw 0;
}
@media only screen and (max-width: 1300px) {
.container4 {
	padding:  2vw 0 4vw;
}
}
@media only screen and (max-width: 960px) {
.container4 {
	padding:  2vw 0 6vw;
}
}

.radius-gray {
	width: 100%;
	height: 100%;
	margin: 1px 0 0 0;
	background-color: #2a2a2a;
}
.radius-white {
	width: 100%;
	height: 100%;
	background-color: #fff;
}
.radius1 {
	width: 100%;
	border-radius: 0 140px 0 140px;
}
.radius2 {
	border-radius: 0 0 0 140px;
	width: 100%;
	background-color: #fff;
}
.radius3 {
	border-radius: 140px 0 140px 0;
	width: 100%;
	border: none;
}
.radius4 {
	border-radius: 140px 140px 0 0;
	width: 100%;
}
@media only screen and (max-width: 680px) {
.radius1 {
	border-radius: 0 60px 0 60px;
}
.radius2 {
	border-radius: 0 0 0 60px;
}
.radius3 {
	border-radius: 60px 0 60px 0;
}
.radius4 {
	border-radius: 60px 60px 0 0;
}
}

/* --------------------------------------------------
 タイトル
-------------------------------------------------- */
.sec-title {
	position:  relative;
	text-align:  left;
	margin: 5em 0 2.5em 0;
}
.sec-title h2 {
    font-size : 1em;
	font-weight: 700;
	line-height: 3em;
}
.sec-title span {
	position:  relative;
    font-size : 3em;
	font-weight: 700;
    display: flex;
    align-items: bottom; /* 垂直中心 */
    justify-content: left;
}
@media only screen and (max-width: 960px) {
.sec-title h2 {
	line-height: 2.6em;
}
.sec-title span {
    font-size : 2.6em;
}
}
@media only screen and (max-width: 680px) {
.sec-title h2 {
	line-height: 2.2em;
}
.sec-title span {
    font-size : 2.2em;
}
}

.sec-title span::after {
    content: "";
    background-color: #4E8FB0;
    width: 2em; 
    height:  6px;
	margin:  0.75em 0 0 0.1em;
}

h3.title-bgh {
    font-size : 2.4em;
	font-weight: 700;
	line-height: 1.6em;
	text-align: left;
	padding:  0 0 2vw 0;
	letter-spacing: 0.09rem;
}
@media only screen and (max-width: 960px) {
h3.title-bgh {
    font-size : 1.8em;
	padding:  0 0 4vw 0;
}
}
@media only screen and (max-width: 680px) {
h3.title-bgh {
    font-size : 1.6em;
}
}


/* --------------------------------------------------
 ボタン
-------------------------------------------------- */
.main-button {
	width : 100%;
	max-width : 400px;
	border : #C1BEBE solid 6px;
	border-radius : 100px;
	height : 80px;
	display : flex;
	justify-content : center;
	align-items : center;
	position : relative;
	overflow : hidden;
 	transition: all 0.5s;
}
.main-button:before {
	content : "";
	display : block;
	width : 40px;
	height : 40px;
	border-radius : 100px;
    background : linear-gradient(0deg, #4E8FB0, #004A86);
	position : absolute;
	right : 32px;
 	transition: all 0.5s;
}
.main-button > span {
 	transition: all 0.5s;
    position : relative;
	color: #fff;
}
.main-button .button_arrow1 {
	position : absolute;
    right : calc(50% - 150px);
}
.main-button:hover {
    border : hsla(0, 2%, 75%, 1);
}
.main-button:hover:before {
	transform : scale3d(18,7,1);
    background : linear-gradient(0deg, #4E8FB0, #004A86);
}
@media screen and (max-width: 1400px) {
.main-button {
	max-width : 360px;
}
.main-button .button_arrow1 {
    right : calc(50% - 130px);
}
}
@media screen and (max-width: 1200px) {
.main-button {
	max-width : 340px;
}
.main-button .button_arrow1 {
    right : calc(50% - 120px);
}
}
@media screen and (max-width: 1150px) {
.main-button {
	max-width : 320px;
}
.main-button .button_arrow1 {
    right : calc(50% - 110px);
}
}
@media screen and (max-width: 1060px) {
.main-button {
	max-width : 300px;
}
.main-button .button_arrow1 {
    right : calc(50% - 100px);
}
}
@media screen and (max-width: 990px) {
.main-button .button_arrow1 {
    right : calc(50% - 95px);
}
}
@media screen and (max-width: 970px) {
.main-button .button_arrow1 {
    right : calc(50% - 100px);
}
}
@media screen and (max-width: 960px) {
.main-button {
	max-width : 400px;
	margin: 0 auto;
}
.main-button .button_arrow1 {
    right : calc(50% - 150px);
}
}
@media screen and (max-width: 480px) {
.main-button .button_arrow1 {
    right : calc(50% - 135px);
}
}
@media screen and (max-width: 400px) {
.main-button {
	width: 100%;
	min-width : 100%;
}
.main-button .button_arrow1 {
    right : calc(50% - 90px);
}
}
/* サブボタン
----------------------------*/
.sub_button {
	position:  absolute;
	right:  0;
	display : inline-flex;
	align-items : center;
	gap : 16px;/* 要素と要素の幅 */
	margin: 2vw 0 0 0;
	cursor : pointer;
}
.sub_button:after {
	content : "";
	display : block;
	width : 40px;
	height : 40px;
	border-radius : 100px;
	border : #4E8FB0 solid 5px;
 	transition: all 0.5s;
	box-sizing : border-box;
}
.sub_button .button_arrow2 {
	position : absolute;
	right : 13px;
}
.sub_button .button_arrow2 polygon {
 	transition: all 0.5s;
	fill : #4E8FB0;
}
.sub_button:hover:after {
	background : linear-gradient(0deg, #4E8FB0 10%, #4E8FB0 40%, #004A86 80%, #004A86);
	background-size : 200% auto;
	background-position : 100%;
	border : none;
}
.sub_button:hover .button_arrow2 polygon {
  fill:#fff;
  stroke:none;
}

/* --------------------------------------------------
 header
-------------------------------------------------- */
.header {
	width:  100%;
	height: 100px;
    position: fixed;
    z-index: 99999;	
	transition: 1s;
    top:0;
    left:0;
	background-color:  #2a2a2a;
}
/* headerの色を変える */
.header.change, #lower-header.change {
    background-color: #fff;
}
.header .header-logo a {
    position: absolute;
	display: block;
    z-index: 9999;
	left: 40px;
	top: 22px;
}

@media screen and (max-width: 1200px) {
.header .header-logo a {
	left: 30px;
}
}
.header .header-logo img {
	display: block;
	width: 70px;
	height: 56px;
}
@media screen and (max-width: 680px) {
.header .header-logo a {
	left: 20px;
}
}

/* ナビtrigger位置
----------------------------*/
body .menu-trigger {
	position:  absolute;
	display: inline-block;
    z-index: 9999;
	right: 40px;
	top: 15px;
	cursor: pointer;
    transition: all 1s;
	border-radius: 50px;
}
@media screen and (max-width: 1200px) {
body .menu-trigger {
	right: 30px;
}
}
@media screen and (max-width: 680px) {
body .menu-trigger {
	right: 20px;
}
}

.menu-trigger,
.menu-trigger span {
  display: inline-block;
  transition: all .4s;
  box-sizing: border-box;
}
.menu-trigger {
  position: relative;
  width: 70px;
  height: 70px;
  padding: 10px;
  background-color: #4E8FB0;
}
.menu-trigger span {
  position: absolute;
  left: 0;
  height: 5px;
  background-color: #fff;
  width: 30px; 
}
.menu-trigger.active span {
  background-color: #fff;
}
.menu-trigger span:nth-of-type(1) {
  top: 20px;
  left: 20px;
}
.menu-trigger span:nth-of-type(2) {
  top: 32px;
  left: 20px;
  width: 20px; 
}
.menu-trigger span:nth-of-type(3) {
  bottom: 20px;
  left: 20px;
}

.menu-trigger span:nth-of-type(1) {
  animation: menu-bar01 .75s forwards;
}
@keyframes menu-bar01 {
  0% {
    transform: translateY(10px) rotate(45deg);
  }
  50% {
    transform: translateY(22px) rotate(0);
}
  100% {
    transform: translateY(0) rotate(0);
}
}
.menu-trigger span:nth-of-type(2) {
  transition: all .25s .25s;
  opacity: 1;
}
.menu-trigger span:nth-of-type(3) {
  animation: menu-bar02 .75s forwards;
}
@keyframes menu-bar02 {
  0% {
    transform: translateY(-10px) rotate(-45deg);
}
  50% {
    transform: translateY(-25px) rotate(0);
}
  100% {
    transform: translateY(0) rotate(0);
  }
}
.menu-trigger.active span:nth-of-type(1) {
  animation: active-menu-bar01 .75s forwards;
}

@keyframes active-menu-bar01 {
  0% {
    transform: translateY(0) rotate(0);
  }
  50% {
    transform: translateY(25px) rotate(0);
  }
  100% {
    transform: translateY(13px) rotate(45deg);
  }
}
.menu-trigger.active span:nth-of-type(2) {
  opacity: 0;
}
.menu-trigger.active span:nth-of-type(3) {
  animation: active-menu-bar03 .75s forwards;
}
@keyframes active-menu-bar03 {
  0% {
    transform: translateY(0) rotate(0);
  }
  50% {
    transform: translateY(-25px) rotate(0);
  }
  100% {
    transform: translateY(-13px) rotate(-45deg);
  }
}

/* ナビゲーション中身
----------------------------*/
.nav-menu {
   width: 100%;
   position: relative;
   height: 100vh;
	display : flex;
	flex-wrap : wrap;
	justify-content : space-between;
}
.nav-menu .menu-text {
    position: absolute;
	width: 50%;
    top: 73%;
    right: 0;
    transform: translateY(-73%) translateX(0);
	padding: 0 0 0 7%;
	text-align: left;
}
@media screen and (max-width: 900px) {
.nav-menu {
	overflow-y:  auto;
}
}
@media screen and (max-width: 1750px) {
.nav-menu .menu-text{
	padding: 0 0 0 15%;
}
}
@media screen and (max-width: 1600px) {
.nav-menu .menu-text{
	padding: 0 0 0 20%;
}
}
@media screen and (max-width: 1400px) {
.nav-menu .menu-text{
	padding: 0 0 0 15%;
}	
}
@media screen and (max-width: 680px) {
.nav-menu .menu-text{
	width: 100%;
	top: 65%;
    transform: translateY(-65%) translateX(0);
	padding: 0 0 0 20px;
	text-align: left;
}
.nav-menu {
	display : block;
}
}
.menu-visual {
    position: absolute;
	top: -10%;
	left: -10%;
	width: 50%;
}
.menu-visual img {
	max-width: 1100px;
}
@media screen and (max-width: 1400px) {
.menu-visual img {
	width: 900px;
}
}
@media screen and (max-width: 1200px) {
.menu-visual img {
	width: 840px;
}
}
@media screen and (max-width: 1100px) {
.menu-visual img {
	width: 750px;
}
}
@media screen and (max-width: 1000px) {
.menu-visual img {
	width: 700px;
}
}
@media screen and (max-width: 900px) {
.menu-visual img {
	width: 600px;
}
}
@media screen and (max-width: 680px) {
.menu-visual {
	left: -30%;
	top: -20%;
	width: 100%;
}
.menu-visual img {
	width: 450px;
}
}
@media screen and (max-width: 400px) {
.menu-visual {
	left: -30%;
	top: -20%;
}
.menu-visual img {
	width: 350px;
}
}
.menu-text {
	position: relative;
}
@media screen and (max-width: 680px) {
.menu-text {
	padding: 0 20px 0 0;
}
}
.menu-text li.nav-item {
	display: flex;
}
@media screen and (max-width: 900px) {
.menu-text li.nav-item {
	display:  block;
}
}

.menu-text li.nav-item span {
	display: inline-block;
	transition : transform 0.4s 0.4s ease-out;
}
@media screen and (max-width: 900px) {
.menu-text li.nav-item span {
	display:  block;
}
}

.menu-text li.nav-item .nav-text {
	color : #fff;
    font-size : 2.8em;
	letter-spacing:  0.3rem;
	padding:  0 2rem 0 0;
}
.menu-text li.nav-item .nav-link-f {
	line-height: 4em;
}
@media screen and (max-width: 1150px) {
.menu-text li.nav-item .nav-link-f {
	line-height: 3.4em;
}
}
@media screen and (max-width: 680px) {
.menu-text li.nav-item .nav-link-f {
	line-height: 3em;
}
}
@media screen and (max-width: 400px) {
.menu-text li.nav-item .nav-link-f {
	line-height: 3.3em;
}
}

@media screen and (max-width: 1150px) {
.menu-text li.nav-item .nav-text {
    font-size : 2.2em;
}
}
@media screen and (max-width: 400px) {
.menu-text li.nav-item .nav-text {
    font-size : 2em;
}
}
.menu-text li.nav-item .nav-subtext {
    font-size : 1.6rem;
	color : #fff;
}
@media screen and (max-width: 1000px) {
.menu-text li.nav-item .nav-subtext {
	margin: -1em 0 0 0;
}
}
@media screen and (max-width: 680px) {
.menu-text li.nav-item .nav-subtext {
	margin: -1.2em 0 0 0;
}
}
@media screen and (max-width: 400px) {
.menu-text li.nav-item .nav-subtext {
    font-size : 1.2rem;
}	
}
.menu-text li.nav-item .menu-bottom {
	margin: 3em 0 6em;
    font-size : 0.6rem;	
}
.menu-text li.nav-item a {
	display: block;
}
.menu-logo img {
	width: 80px;
	height: 63px;	
}
@media screen and (max-width: 680px) {
.menu-logo img {
	width: 64px;
	height: 50.4px;	
}	
.menu-text li.nav-item .menu-bottom {
	margin: 2em 0 3em;
}	
}
/* ナビオープン時のメニューの動き
----------------------------*/
.menu-text li.nav-item {
	display:  block;
    opacity: 0;
	transition : transform 0.6s 0.4s ease-out;
}
.menu-text li.nav-item.open {
    opacity: 1;
    transform: translateY(-2em);
}
@media screen and (max-width: 900px) {
.menu-text li.nav-item.open{

}
}

.menu-visual {
	transition : transform 0.8s 0.4s ease-out;
    opacity: 0;
}
.menu-visual.open {
	transform: scale(0.9, 0.9);
    opacity: 1;
}
/* hover時のナビメニューの動き
----------------------------*/
.menu-text li.nav-item a::after {
  position: absolute;
  bottom: 0.9em;
  left: 0;
  content: '';
  height: 6px;
  background: #4E8FB0;
  transform: scale(0, 1);
  transform-origin: left top;
  transition: transform 0.6s;
}
.menu-text li.nav-item a.home::after {
  width: 16em;
}
.menu-text li.nav-item a.about::after {
  width: 19em;
}
.menu-text li.nav-item a.faq::after {
  width: 14em;
}
.menu-text li.nav-item a.satei::after {
  width: 23em;
}
.menu-text li.nav-item a.contact::after {
  width: 17em;
}
.menu-text li.nav-item a.privacy::after {
  bottom: -0.6em;
  width: 24em;
}
.menu-text li.nav-item a:hover::after {
  transform: scale(1, 1);
}
@media screen and (max-width: 1150px) {
.menu-text li.nav-item a::after {
  bottom: 0.5em;
}
.menu-text li.nav-item a.home::after {
  width: 14.5em;
}
.menu-text li.nav-item a.about::after {
  width: 17em;
}
.menu-text li.nav-item a.faq::after {
  width: 13.5em;
}
.menu-text li.nav-item a.satei::after {
  width: 19.5em;
}
.menu-text li.nav-item a.contact::after {
  width: 15em;
}
.menu-text li.nav-item a.privacy::after {
  width: 19.5em;
}
}

@media screen and (max-width: 900px) {
.menu-text li.nav-item a::after {
  bottom: 0.6em;
}
.menu-text li.nav-item a.home::after {
  width: 6.5em;
}
.menu-text li.nav-item a.about::after {
  width: 8.5em;
}
.menu-text li.nav-item a.faq::after {
  width: 7.5em;
}
.menu-text li.nav-item a.satei::after {
  width: 13.5em;
}
.menu-text li.nav-item a.contact::after {
  width: 9em;
}
}
/* ナビ
----------------------------*/
nav {
	width:  100%;
	height: 100vh;
	background-color: #222222;
	position: fixed;
	right: 0;
	z-index: 10;
	transform: translateY(-100%);
 	transition: all .5s;
    opacity: 0; 
}
nav.open {
  transform: translateY(0);
  opacity: 1; 
}
/* ナビオープン時背景
----------------------------*/
.menu-over {
  content: "";
  display: block;
  width: 0;
  height: 0;
  background-color: #8A8787; 
  position: fixed;
  top: 0;
  left: 0;
  z-index: 2;
  opacity: 0;
  transition: opacity .8s;
}
.menu-over.open {
  width:  100%;
  height: 100%;
  opacity: 0.6;
}
/* ナビオープン時ロゴを消す
----------------------------*/
.header .header-logo.open {
	opacity: 0;
}


/* --------------------------------------------------
 メインビジュアル
-------------------------------------------------- */
.main-visual {
    background-color: #2a2a2a;
    width: 100%;
    height: 100vh;
    min-height : 750px;
    position: relative;
	display : flex;
	flex-wrap : wrap;
	justify-content : space-between;
	border-radius: 0 0 140px 140px;
	z-index:  9999;
}
@media screen and (max-width: 960px) {
.main-visual {
	display: block; 
	overflow-y: auto;
    min-height : 710px;
}
}
@media screen and (max-width: 680px) {
.main-visual {
	border-radius: 0 0 60px 60px;
}
}
.main-visual .main-catch {
    position: absolute;
	width: 28%;
    top: 50%;
    left: 7%;
    transform: translateY(-50%) translateX(0);
	padding: 0 2% 0 0;
	text-align: justify;
}
@media screen and (max-width: 1600px) {
.main-visual .main-catch {
	width: 30%;
    left: 5%;
}
}
@media screen and (max-width: 1500px) {
.main-visual .main-catch {
	width: 32%;
    left: 4%;
}
}
@media screen and (max-width: 960px) {
.main-visual .main-catch {
	width: 96%;
	top: 420px;
	right: 0;
	left: 50%;
    transform: translateY(0) translateX(-50%);
	text-align: center;
	padding: 0 30px;
}
}
@media screen and (max-width: 680px) {
.main-visual .main-catch {
	top: 340px;
	width: 100%;
	padding: 0 20px 0;
}
}
@media screen and (max-width: 400px) {
.main-visual .main-catch {
	top: 240px;
	left: 0;
    transform: translateY(0) translateX(0);
}
}
.main-visual h2 {
    font-size : 3em;
	color:  #FFF;
	font-weight: 700;
}
@media screen and (max-width: 1400px) {
.main-visual h2 {
    font-size : 2.7em;
}
}
@media screen and (max-width: 1200px) {
.main-visual h2 {
    font-size : 2.5em;	
}
}
@media screen and (max-width: 1100px) {
.main-visual h2 {
    font-size : 2.3em;	
}
}
@media screen and (max-width: 1050px) {
.main-visual h2 {
    font-size : 2.1em;	
}
}
@media screen and (max-width: 960px) {
.main-visual h2 {
    font-size : 1.8em;	
}
}

.main-visual .main-subtxt {
    font-size : 1em;
	color:  #FFF;	
	margin: 0.5vw 0 2vw 0;
}
@media screen and (max-width: 800px) {
.main-visual .main-subtxt {
	margin: 0.5vw 0 4vw 0;
}	
}
@media screen and (max-width: 680px) {
.main-visual .main-subtxt {
	margin: 1vw 0 7vw 0;
}	
}

.main-visual .main-img {
    position: absolute;
	width: 56%;
    top: 50%;
    right: 7%;
    transform: translateY(-50%) translateX(0);
}

@media screen and (max-width: 1600px) {
.main-visual .main-img {
	width: 58%;
    right: 5%;
}
}
@media screen and (max-width: 1500px) {
.main-visual .main-img {
	width: 60%;
    right: 3%;
}
}
@media screen and (max-width: 960px) {
.main-visual .main-img {
	width: 96%;
	top: 140px;
	right: 0;
	left: 50%;
    transform: translateY(0) translateX(-50%);
}
}
@media screen and (max-width: 400px) {
.main-visual .main-img {
	top: 110px;
}
}
.main-visual .main-img img {
	width: 100%;
}

/* スクロールバー
----------------------------*/
.scroll {
	color: #fff;
	position:  absolute;
	right: 80px;
	bottom: 40px;
	font-size: 1em;
}
@media screen and (max-width: 960px) {
.scroll {
	left: 50%;
	bottom: 20px;
    transform: translateY(0) translateX(-50%);
	font-size: 0.8em;
}
}
.scroll-down{
    width: 5px;
    height: 80px;
    background: #fff;
    animation: scrollDown 3s ease infinite;
    margin: 0 auto;
}
@media screen and (max-width: 960px) {
.scroll-down{
    width: 5px;
    height: 80px;
    background: #fff;
    animation: scrollDown 3s ease infinite;
    margin: 0 auto;
}	
}
@keyframes scrollDown{
    0%{
        transform-origin: top;
        transform: scaleY(0);
    }
    45%{
        transform-origin: top;
        transform: scaleY(1);
    }
    55%{
        transform-origin: bottom;
        transform: scaleY(1);
    }
    100%{
        transform-origin: bottom;
        transform: scaleY(0);
    }
}


/* top-aboutエリア
----------------------------*/
.sec-w1 { /* 下層ページセクション共通 */
   position: relative;
    width : 100%;
	max-width: 1200px;
	margin: 0 auto;
}
.top-aoutImg {
	width: 83%;
	text-align: left;
	margin:  0 0 0 -33%;
}
@media screen and (max-width: 1700px) {
.top-aoutImg {
	width: 73%;
	margin:  0 0 0 -23%;
}	
}
@media screen and (max-width: 1500px) {
.top-aoutImg {
	width: 63%;
	margin:  0 0 0 -13%;
}	
}
.st0{
  fill:url(#SVGID_1_);
}
.st1{
  fill:none;
  stroke:#fff;
  stroke-width:34px;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-miterlimit:15.12;
  enable-background:new;
}

.updown {
  animation-name:UpDown;
  animation-duration: 2s;
  animation-delay: 5s;
  animation-iteration-count: infinite;
  animation-timing-function: ease-in-out;
  animation-direction: alternate;
}
@keyframes UpDown{
0%{
  transform: translateY(0);
}
100%{
  transform: translateY(50px);
}
}
.top-aboutTxt {
	position:  relative;
	width: 45%;
	margin: 0 0 0 2%;
	text-align: justify;
}

@media screen and (max-width: 960px) {
.top-aboutTxt {
	width: 100%;
	margin: 0;
}
.top-aoutImg {
	width: 100%;
	margin: 8vw 0 0 0;
}	
}
@media screen and (max-width: 680px) {
.top-aoutImg {
	margin: 12vw 0 0 0;
}
}

/* top-pointエリア
----------------------------*/
.sec-g1 { /* 下層ページセクション共通 */
   position: relative;
    width : 100%;
	max-width: 1200px;
	margin: 0 auto;	
	color: #fff;
	text-align:  center;
	padding: 0.5em 0 0 0;
}
.top-point ul {
	display : flex;
	justify-content : center;
	align-items : center;
	width: 100%;
}
.top-point li {
	width:  50%;
}
@media screen and (max-width: 800px) {
.top-point ul {
	display : block;
}
.top-point li {
	width:  100%;
}
.top-point li:first-child {
	margin: 0 0 4em 0;
}
}
.top-point .point-txt {
	font-size: 2em;
	font-weight:  700;
	margin:  0 0 0.3em 0;
	letter-spacing: 0.06em;
}
@media screen and (max-width: 960px) {
.top-point .point-txt {
	font-size: 1.8em;
}	
}
@media screen and (max-width: 680px) {
.top-point .point-txt {
	font-size: 1.6em;
}	
}

.top-point .point-img:after {
	display: block;
    content: "";
    background-color: #4E8FB0;
    width: 6em; 
    height:  6px;
	margin:  1.5em auto 1em;	
}
.top-point .point-txt span {
    color: #4E8FB0;	
}
.top-point .point-img img{
	width : 120px;
}
@media screen and (max-width: 1500px) {
.top-point .point-img img{
	width : 110px;
}		
}
@media screen and (max-width: 960px) {
.top-point .point-img:after {
    width: 5.2em; 
}
.top-point .point-img img{
	width : 95px;
}		
}
@media screen and (max-width: 680px) {
.top-point .point-img:after {
    width: 4.5em; 
}
.top-point .point-img img{
	width : 85px;
}		
}

/* top-newsエリア
----------------------------*/
.sec-w2 { /* 下層ページセクション共通 */
   position: relative;
    width : 100%;
	max-width: 1200px;
	margin: 0 auto;
}
.news-category {
	margin-bottom : 2em;
	padding: 0.3em 0 0 0;	
}
.post-list {
	display : flex;
}
.category-item {
	margin-left : 3em;
}
.category-item span {
	display : block;
	font-size : 0.8em;
	font-weight : 700;
	line-height : 21px;
	padding: 0.2em 1em;
	color : #fff;
	text-align : center;
	background-color : #4E8FB0;
}
.news-description {
	overflow : hidden;
}
.news-description dt {
	font-size : 1em;
	float : left;
	width : 100px;
}
.news-description dd.news-category {
	margin-left : 100px;
}
@media screen and (max-width: 960px) {
.news-description dt {
	width : 60px;
}
.news-description dd.news-category {
	margin-left : 0;
}
}

.news-title {
	line-height : 1.5;
	padding: 0 0 1em 146px;
	border-bottom : 1px solid #ADA8A8;
	text-align: left;
}
@media screen and (max-width: 960px) {
.news-title {
	padding: 0 0 1.5em 0;
}
}

.sec-w2 dl.news-description:not(:first-child){
	margin: 1.5em 0 0 0;
}

/* top-assessmentエリア
----------------------------*/
.sec-g2 { /* 下層ページセクション共通 */
	position: relative;
    width : 100%;
	max-width: 1200px;
	margin: 0 auto;
	color: #fff;
}

@media screen and (max-width: 400px) {
.top-assessment .sec-title h2 {
    font-size : 1em;
}
.top-assessment .sec-title h2 span {
    font-size : 1.8em;
}
}

.assessment-text {
	text-align: left;
	width: 34%;
	margin: 0 6% 0 0;
}
@media screen and (max-width: 960px) {
.assessment-text {
	width: 100%;
	margin: 2vw 0 0 0;
	text-align: center;
}
}
@media screen and (max-width: 680px) {
.assessment-text {
	margin: 0;
	text-align: justify;
}
}
.assessment-text p {
	margin: 0 0 3em 0;
}
.assessment-text h3 {
	font-size: 2em;
}
@media screen and (max-width: 1250px) {
.assessment-text h3 {
	font-size: 1.8em;
}	
}
@media screen and (max-width: 960px) {
.assessment-text h3 {
	text-align: center;
}	
}
@media screen and (max-width: 680px) {
.assessment-text h3 {
	text-align: justify;
}	
.assessment-text p {
	margin: 0 0 2em 0;
}
}
.assessment-img {
	position: absolute;
	width: 85%;
	bottom: -25%;
	right: -25%;
}
.assessment-img img {
	width: 100%;
}
@media screen and (max-width: 960px) {
.assessment-img {
	width: 100%;
    bottom: -23%;
    left: 25%;
    transform: translateY(23%) translateX(0);
}
}
@media screen and (max-width: 680px) {
.assessment-img {
    bottom: -12%;
    left: 15%;
    transform: translateY(10%) translateX(0);

}
}

/* top-kaitoriエリア
----------------------------*/
.sec-w3 { /* 下層ページセクション共通 */
   position: relative;
    width : 100%;
	padding: 5em 0;
	background-image:url(../../images/top/kaitori-img2.png);
	background-repeat: no-repeat;
	background-size: 740px 740px;
	background-position: left -10% bottom 10%;
}
@media only screen and (max-width: 1200px) {
.sec-w3 {
	background-size: 700px 700px;
}
}
@media only screen and (max-width: 1100px) {
.sec-w3 {
	background-size: 600px 600px;
}
}
@media only screen and (max-width: 960px) {
.sec-w3 {
	background-size: 540px 540px;
	background-position: left -15% bottom 10%;
	padding: 0;
}
}
@media only screen and (max-width: 860px) {
.sec-w3 {
	background-size: 440px 440px;
	background-position: left -20% bottom 10%;
}
}
@media only screen and (max-width: 680px) {
.sec-w3 {
	background-image:url(../../images/top/kaitori-img2-sp.png);
	background-size: 440px 440px;
	background-position: right -30% bottom 10%;
}
}
.top-kaitori-inner {
	max-width: 1200px;
	margin: 0 auto;
	text-align: right;
}
.top-kaitori-txt {
	width: 100%;
}
.top-kaitori-img img {
	width: 60%;
}
.top-kaitori-txt .sec-title {
	float:  right;
}
@media only screen and (max-width: 680px) {
.top-kaitori-txt .sec-title {
	float:  none;
}
}

@media only screen and (max-width: 1300px) {
.top-kaitori-txt h2{
	padding:  0 30px;
}
}
@media only screen and (max-width: 680px) {
.top-kaitori-txt h2{
	padding:  0 20px;
}
.top-kaitori-txt .sec-title h2{
	font-size: 1em;	
}
.top-kaitori-txt .sec-title h2 span{
	font-size: 1.8em;	
}
}
@media only screen and (max-width: 400px) {
.top-kaitori-txt .sec-title h2{
	font-size: 1.2em;	
}
.top-kaitori-txt .sec-title h2 span{
	font-size: 1.2em;	
}
}

.top-kaitori-txt ul {
	font-weight: 700;
	text-align: left;
	display: inline-block;

}
.top-kaitori-txt ul li:first-child {
	padding: 0;
}
.top-kaitori-txt ul li:not(:first-child) {
	padding: 1em 0 0 0;
}
@media only screen and (max-width: 1300px) {
.top-kaitori-txt ul {
	padding:  1em 30px 0;
}
}
@media only screen and (max-width: 960px) {
.top-kaitori-txt ul li:first-child {
	padding: 0;
}
.top-kaitori-txt ul li:not(:first-child) {
	padding: 1em 0 0 0;
}
}
@media only screen and (max-width: 680px) {
.top-kaitori-txt ul {
	padding:  1em 20px 0;
	display: block;
}
}

/* --------------------------------------------------
 footer
-------------------------------------------------- */
.footer {
	width: 100%;
}
.footer .footer-logo {
	margin: 0 0 0.5em 0;
}
.footer .footer-logo img {
	width: 70px;
	height: 56px;
}
.footer-inner {
	max-width: 1200px;
	margin: 0 auto;
	display : flex;
	justify-content: space-between;
	color: #fff;
	padding: 5em 0 0 0;
}
@media screen and (max-width: 960px) {
.footer-inner {
	widows: 100%;
	display : block;
}
}
.footer-name-area {
	margin-top: auto;
	width:fit-content;
	text-align: left;
}
@media screen and (max-width: 720px) {
.footer-name-area {
	font-size: 0.9em;
}	
}
@media screen and (max-width: 960px) {
.footer-name-area {
	width: 100%;
	text-align: center;
}
}
.footer-name-area > span {
	display: block;
}
.footer-name-area .footer-name {
	font-size: 1.4em;
	font-weight: 700;
	margin: 0 0 0.5em 0;
}
.footer-name-area span.footer-address::after {
	width: 20px;
	height: 27px;
    content: "";
    display: inline-block;
	background-image:url(../images/map-pin.svg);
	background-repeat: no-repeat;
	background-size: 15px 22px;
	background-position: left 5px top;
	vertical-align: middle;
}
.footer-telfax a[href^="tel:"] {
	color: inherit;
}
.footer-contact-area {
	margin-top: auto;
	width: 40%;
	text-align: right;
}
.footer-contact-area .main-button {
	float: right;
}
.footer-contact-area p {
	margin: 0 1em 1.5em 0;
	font-size: 0.9em;
}
@media screen and (max-width: 960px) {
.footer-contact-area {
	width: 100%;
	text-align: center;
	margin: 2em 0 0 0;
}
.footer-contact-area .main-button {
	float: none;
}
}


.footer-bottom-box {
	max-width: 1200px;
	margin: 3em auto 2em;
	display : flex;
	justify-content: space-between;
	border-top: 1px solid #636161; 
}
@media screen and (max-width: 720px) {
.footer-bottom-box {
	width: 100%;
	display : block; 
}
}
.footer-menu, .copyright {
	width:fit-content;
	padding: 2em 0 0 0;
	color: #fff;
	margin-top: auto;
}
@media screen and (max-width: 720px) {
.footer-menu, .copyright {
	margin: 0 auto;
}	
}
.footer-menu li {
	display: inline-block;
	padding: 0 0.5em 0;
}
.footer-menu li:last-child {
	padding: 0;
}
.footer-menu li a {
	color: #fff;
}

.copyright .copyright-txt {
	display: block;
	font-size: 0.7em;
}
@media screen and (max-width: 720px) {
.footer-menu li {
	font-size: 0.9em;
}
.copyright .copyright-txt {
	text-align:  center;
}	
}

/* パンクズリスト
----------------------------*/
.page-path {
	padding: 2em 0 0;
	text-align: left;
	font-size: 0.9em;
}
.page-path .path-list {
    display : inline;
}
.page-path .path-anchor {
	margin-right : 5px;
}
@media screen and (max-width: 680px) {
.page-path {
	display: none;
}
}

/* --------------------------------------------------
 マスク
-------------------------------------------------- */
/* メインマスク
----------------------------*/
#splash {
  position: fixed;
  width: 100%;
  height: 100%;
  background: #4E8FB0;
  z-index: 9999999;
  text-align:center;
  color:#fff;
}

/*画面遷移アニメーション*/
.splashbg{
    display: none;
}
body.appear .splashbg{
  display: block;
  content: "";
  position:fixed;
  z-index: 999;
  width: 100%;
  height: 100vh;
  top: 0;
  left: 0;
  transform: scaleY(0);
  background-color: #4E8FB0;/*伸びる背景色の設定*/
  animation-name:PageAnime;
  animation-duration: 0.4s;
  animation-timing-function:ease-in-out;
  animation-fill-mode:forwards;
}
@keyframes PageAnime{
  0% {
    transform-origin:bottom;
    transform:scaleY(0);
  }
  50% {
    transform-origin:bottom;
    transform:scaleY(1);
  }
  50.001% {
    transform-origin:top;
  }
  100% {
    transform-origin:top;
    transform:scaleY(0);
  }
}

#container{
  opacity: 0;
}
body.appear #container{
  animation-name:PageAnimeAppear;
  animation-duration:1s;
  animation-delay: 0.4s;
  animation-fill-mode:forwards;
  opacity: 0;
}

@keyframes PageAnimeAppear{
  0% {
  opacity: 0;
  }
  100% {
  opacity: 1;
}
}

/* --------------------------------------------------
 フェード
-------------------------------------------------- */
/* 下からフェードイン */
.slide-bottom {
   opacity: 0;
   transform: translateY(20px);
   transition: all 1.3s 0s ease-out;
}
@media screen and (max-width: 960px) {
.slide-bottom {
   opacity: 1;
}	
	
}


/* --------------------------------------------------
 下層ページ　メインビジュアル
-------------------------------------------------- */
.lower-visual {
    width: 100%;
    height: 45vh;
	min-height: 260px;
	border-radius: 0 0 140px 140px;
	background-repeat: no-repeat;
	background-size: 1200px 1200px;
	background-position: right -10% bottom 40%;
	background-color: #2a2a2a;
}
@media screen and (max-width: 1500px) {
.lower-visual {
	background-size: 900px 900px;
}	
}
@media screen and (max-width: 1200px) {
.lower-visual {
	background-size: 700px 700px;
}	
}
@media screen and (max-width: 960px) {
.lower-visual {
	background-size: 500px 500px;
}	
}
@media screen and (max-width: 680px) {
.lower-visual {
	background-size: 450px 450px;
	background-position: right -60% top 40%;
}	
}
@media screen and (max-width: 480px) {
.lower-visual {
    height: 32vh;
	background-size: 300px 300px;
	border-radius: 0 0 60px 60px;
}
}
@media screen and (max-width: 400px) {
.lower-visual {
	background-position: right -200% top 80%;
}	
}

/* --------------------------------------------------
 下層ページ header
-------------------------------------------------- */
#lower-header {
	background-color:rgba(0,0,0,0);
}

/* --------------------------------------------------
 下層ページタイトル
-------------------------------------------------- */
.lower-title {
	position: absolute;
	top: 25vh;
	left: 7%;
}
@media screen and (max-width: 480px) {
.lower-title {
	top: 18vh;
	left: 20px;
}	
}
@media screen and (max-width: 400px) {
.lower-title {
	left: 20px;
}	
}
.lower-title h2{
	text-align: left;
	font-size: 1.2em;
	font-weight: 700;
	color: #fff;
	line-height: 2.6em;
}
.lower-title h2 span{
	font-size: 3.6em;
	letter-spacing: 0.08em;
    display: flex;
    align-items: bottom; /* 垂直中心 */
    justify-content: left;
}
@media screen and (max-width: 1500px) {
.lower-title h2{
	font-size: 1.2em;
}
.lower-title h2 span{
	font-size: 3.2em;
}	
}
@media screen and (max-width: 960px) {
.lower-title h2{
	font-size: 1em;
}	
}
@media screen and (max-width: 480px) {
.lower-title h2{
	font-size: 0.8em;
}
.lower-title h2 span{
	font-size: 2.6em;
}	
}
@media screen and (max-width: 400px) {
.lower-title h2{
	line-height: 2em;
	font-size: 0.8em;
}
.lower-title h2 span{
	font-size: 2.4em;
}	
}
/* --------------------------------------------------
 aboutページ
-------------------------------------------------- */
#about-page {
	background-image:url(../../images/about/main-about.png);
}
.about-business {
	max-width : 800px;
	letter-spacing : 0.05em;
	line-height : 2;
	margin : 0 auto;
	text-align: justify;
}
.about-business h3 {
	margin: 1em 0 0 0;
}

/* 会社情報
----------------------------*/
.about-table {
	min-width : 800px;
	text-align: left;
	letter-spacing : 0.1em;
	margin: 0 auto;
}
@media screen and (max-width: 960px) {
.about-table {
	width : 100%;
	min-width : 100%;
}
}
.about-tr {
	display : flex;
	line-height : 2;
	margin-top : 30px;
}
.about-th {
	font-weight : 700;
	min-width : 20%;
	padding-right : 20px;
	width : 22%;
}
@media screen and (max-width: 680px) {
.about-th {
	min-width : 60px;
	width : 34%;
}
}
.about-td {
	line-height : 2;
	width : 78%;
}
@media screen and (max-width: 680px) {
.about-td {
	line-height : 1.8;
	padding-top : 3px;
	width : 66%;
}
}
.about-td a[href^="tel:"] {
	color: inherit;
}

/* アクセス
----------------------------*/
#maps {
    width: 100%;
    height: 500px;
}
@media screen and (max-width: 1200px) {
.asccess h2 {
	padding: 0 30px;
}
}
@media screen and (max-width: 680px) {
.asccess h2 {
	padding: 0 20px;
}
}


/* --------------------------------------------------
 faqページ
-------------------------------------------------- */
#faq-page {
	background-image:url(../../images/faq/main-faq.png);
}
.qa-list dl {
    position: relative;
    margin: 0;
    padding: 2.5em 80px 2.5em 30px;
    cursor: pointer;
    border-bottom: 1px solid #BCB9B9;
	text-align: justify;
}
.qa-list dl:first-child {
    border-top: 1px solid #BCB9B9;
}
.qa-list dl::before {
    position: absolute;
    top: 50px;
    right: 35px;
    display: block;
    width: 7px;
    height: 7px;
    margin: auto;
    content: '';
    transform: rotate(135deg);
    border-top: 2px solid #2a2a2a;
    border-right: 2px solid #2a2a2a;
}
.qa-list .open::before {
    transform: rotate(-45deg);
}
.qa-list dl dt {
    position: relative;
    margin: 0;
    padding: 0 0 0 50px;
    font-weight: bold;
}
.qa-list dl dt::before {
    font-size: 1.4em;
    line-height: 1;
    position: absolute;
    top: 3px;
    left: 0;
    display: block;
    content: 'Q.';
    color: #4E8FB0;
}
.qa-list dl dd::before {
    font-size: 1.4em;
    line-height: 1;
    position: absolute;
    top: 3px;
    left: 2px;
    display: block;
    content: 'A.';
    font-weight: bold;
    color: #004A86;
}
.qa-list dl dd {
    position: relative;
    display: none;
    height: auto;
    margin: 20px 0 0;
    padding: 0 0 0 50px;
}
.qa-list dl dd p {
    margin: 30px 0 0;
}
.qa-list dl dd p:first-child{
    margin-top: 0;
}

@media screen and (max-width: 680px) {
.qa-list dl {
    position: relative;
    padding: 2em 0;
}
.qa-list dl::before {
    top: 40px;
    right: 20px;
    width: 7px;
    height: 7px;
}
.qa-list dl dt {
    padding: 0 36px 0 40px;
}
.qa-list dl dt::before {
    top: 3px;
    left: 5px;
    content: 'Q.';
}
.qa-list dl dd::before {
    top: 5px;
    left: 5px;
    content: 'A.';
}
.qa-list dl dd {
    margin: 10px 0 0;
    padding: 0 20px 0 30px;
}
.qa-list dl dd p {
    margin: 30px 0 0 10px;
}
.qa-list dl dd p:first-child{
    margin-top: 0;
}
}

/* --------------------------------------------------
査定ページ
-------------------------------------------------- */
#satei-page {
	background-image:url(../../images/satei/main-satei.png);
}

/* --------------------------------------------------
お問合せページ
-------------------------------------------------- */
#contact-page {
	background-image:url(../../images/contact/main-contact.png);
}

/* --------------------------------------------------
プライバシーページ
-------------------------------------------------- */
.praivacy .cap {
	margin: 0 0 2em 0;	
}
.praivacy dl {
	max-width: 1200px;
	margin: 0 auto;
	text-align:  left;
}
.praivacy dl dt {
	font-weight: 700;
}
.praivacy dl dd {
	margin: 0 0 2em 0;
}
.praivacy dl dd:last-child {
	margin: 0;
}

/*------------------------------------------------------
*エラーページ
-------------------------------------------------------*/
.notfound {
	max-width: 1200px;
	text-align: center;
	margin: 0 auto;
}
.notfound .return-top {
	margin: 60px auto 0;
}
.notfound .return-top a {
	color: #fff;
    background-color: #4E8FB0;
	padding: 20px 50px;
	border-radius : 100px;
}
.notfound .return-top a:hover {
	filter: alpha(opacity=70);
	opacity: 0.7;
}
@media only screen and (max-width:960px) {
.notfound {
	padding: 0 30px;
}
}
@media only screen and (max-width:680px) {
.notfound {
	padding: 0 20px;
}
}

	
