@charset "utf-8";
/*
Theme Name: OZREEのテーマ
Theme URI: 
Author: OZREE
Author URI: 
Description: OZREE
Version: 1.0
*/


html{
	margin-top:0!important;
	scroll-behavior: smooth;
}
body{
min-height: 100vh;
overflow-x: hidden;
min-height:-webkit-fill-available;
}
body,
div{
margin:0;
box-sizing: border-box;
font-family: "Noto Sans JP", sans-serif;
font-weight: 350;
letter-spacing: 1.5px;
}
section{
margin:0;
box-sizing: border-box;
}

a{
text-decoration: none;
color:inherit;
transition: all 0.3s;
}
a:hover{
opacity:0.7;
}
ul{
margin:0;
list-style: none;
padding-left:0;
}
h1{
margin:0;
}
h2,h3,h4,h5,h6{

}
h2{
	font-size: 2.6rem;
	letter-spacing: 3px;
	margin-block-start:0;
}
h2 span{
 display:block;
 font-family: serif;
 font-size:25px;
 letter-spacing: 1px;
 margin-bottom: 1rem;
}
img{
max-width:100%;
display: block;
}
svg{
	overflow: visible;
	white-space: nowrap;
}
.container{
margin:auto;
width:85%;
max-width: 1200px;
}
main{
background:#fff;/*基本背景は白*/
min-height:80vh;
}
p{
    line-height: 2;
		letter-spacing: 1px;
}
.serif{
font-family: serif;
}
.pc{
 display: block;
}
.sp{
 display: none;
}
.bg-video{
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: 0;
    background-size: cover;
    object-fit: cover;
	object-position: top left;
}
.video-sec{
	background:linear-gradient(135deg, #414141, #000000);
}
.fadeUp {
	animation-name: fadeUpAnime;
	animation-duration: 0.5s;
	animation-fill-mode: forwards;
	opacity: 0;
}

.fadeUpTrigger {
	opacity: 0;
}

@keyframes fadeUpAnime {
	from {
		opacity: 0;
		transform: translateY(100px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}


/*header*/
header{
position: fixed;
top: 0;
width: 100%;
height: 80px;
z-index:4000;
color:#fff;
}
header .header_inner{
font-family: serif;
padding:2.5rem 2rem;
display: flex;
justify-content: space-between;
align-items: center;
position: relative;
height: 80px;
}
header.fixed_header{
	position: fixed;
}
header.fixed_header .header_inner,
header.contact_link .header_inner{
color:#333;
background:#fff;
animation: DownAnime 0.5s forwards;
}
@keyframes DownAnime{
	0% {
		opacity: 0;
		transform: translateY(-170px);
	}
	100% {
		opacity: 1;
		transform: translateY(0px);
	}
}
header.fixed_header .logo path,
header.fixed_header .logo tspan{
	fill:#333;
}
.page-template:not(.home) header h1 .logo path,
.page-template:not(.home) header h1 .logo tspan{
fill:#333;
}
.page-template:not(.home) header.fixed_header h1 .logo path,
.page-template:not(.home) header.fixed_header h1 .logo tspan{
fill:#333;
}
header.fixed_header h1.active .logo path,
header.fixed_header h1.active .logo tspan,
.page-template:not(.home) header.panelactive h1.active .logo path,
.page-template:not(.home) header.panelactive h1.active .logo tspan{
	fill:#fff;
}


header h1{
display: inline-block;
position: relative;
z-index: 500;
}

header nav{
display:flex;
float: right;
}
header nav ul{
display:flex;
gap:25px;
}

header h1 .logo svg{
width: 100%;
max-width: 270px;
display:block;
object-fit: contain;
overflow: visible;
}
header .submenu{
    display: none;
    width: 100vw;
    position: absolute;
    left: 0;
    top: 100%;
    background: #242424;
    color: #fff;
		font-family: initial;
}
header .submenu li{
display:flex;
justify-content: center;
align-items: center;
gap:2rem;
padding:1rem 0;
}
header .submenu li a:not(.btn){
color: #00C9D1;
}
header .submenu li p{
line-height: 1.6;
}
header #contact:hover .submenu,
header #contact:active .submenu{
	display:block;
}
header #contact{
	cursor: pointer;
}
.contact_link .submenu{
display:block;
}
/*bogo*/
header .bogo-language-switcher{
	display: flex;
    flex-direction: row-reverse;
    font-size: 90%;
	gap:0;
	white-space: nowrap;
	margin-left: 3rem;
}
header .bogo-language-switcher .bogoflags, .bogo-language-switcher .bogoflags-before:before{
	display: none;
}
header .bogo-language-switcher .current{
	color:#A3A3A3;
}



/*sec01 mainvisual*/
#sec01{
	position: relative;
    margin-top:0;
	padding-top:0;
}
#sec01 .mv{
	width:100%;
	position: relative;
	overflow: hidden;
  height: 100vh;
  height: 100dvh;
  height: 100svh;
  min-height: -webkit-fill-available;
	display: flex;
	align-items: center;
	justify-content: center;
	top:0;
}

#sec01 .mv video{
  position: fixed;
  width: 100%;
  height: 100%;
  z-index: -1;
  object-fit: cover;
}
#sec01 .mv::after{
 content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-attachment: fixed;
  background-size: cover;
  background-position: center;
  z-index: -2;
}
.scrolldown{
	position: absolute;
    left: 5vw;
    bottom: 3%;
	writing-mode:vertical-lr;
	color:#fff;
	height:200px;
	font-size:12px;
}
.scrolldown::before{
	content: "";
	position: absolute;
	top: 0;
	width: 1px;
	left:-7px;
	height: 200px;
	background: #fff;
	animation: pathmove 1.4s ease-in-out infinite;
	opacity:1;
}

@keyframes pathmove{
	0%{
		height:80px;
		top:-10px;
		opacity: 0.5;
	}
	30%{
		height:100px;
		opacity: 1;
	}
	100%{
		height:0;
		top:160px;
		opacity: 0.4;
	}
}



/*sec02*/
#sec02{
color:#fff;
}
#sec02 p{
line-height: 2;
}
#sec02 .bg{
	width: 100%;
	margin: 0;
	position: relative;
	height: 80vh;
}
#sec02 .bg::before{
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	background-color: rgba(0, 0, 0, 0.7);
	transform: skewY(16deg);
	transform-origin: left;
	z-index: 1;
}
#sec02 .container{
padding:1rem 0;
position:relative;
top:40%;
z-index: 10;
}
#sec02 .container p{
font-size:1.2rem;
line-height: 2.2;
max-width:750px;
}


/*sec03*/
#sec03{
color:#fff;
position: relative;
height: 100%;
}
#sec03 p{
line-height: 2.2;
font-size: 1.2rem;
}
#sec03 .bg{
	width: 100%;
	margin: 0;
	position: relative;
	height: 85vh;
	z-index:5;
}
#sec03 .bg::before{
	content: '';
	position: absolute;
	top: -15%;
	bottom: 0%;
	left: 0;
	right: 0;
	background: linear-gradient(125deg,#000000,#545454);
	transform: skewY(-16deg);
	transform-origin: right;
	z-index: 1;
}
#sec03 .container:first-child{
padding-top:15vh;
position: relative;
z-index: 20;
top: 35%;
}
#sec03 .container:first-child div{
max-width: 750px;
width:65%;
}
#sec03 .container:first-child img{
	position: absolute;
	right: 2%;
	top: -5%;
	max-height: 90vh;
}
#sec03 .container:nth-child(2){
position: relative;
z-index: 200;
color:#333;
}
#sec03-2{
background:url("img/bg_sec04.jpg") no-repeat;
background-size: cover;
position: relative;
}
#sec03-2 .container{
padding:12rem 0 6rem
}
#sec03-2 .container div:not(div.img){
display:flex;
gap:2rem;
align-items: center;
position: relative;
z-index:200;
}
#sec03-2 .container div p{
padding-top:10%;
}
#sec03-2 .container div p strong{
	display: block;
	font-size: 1.5rem;
	line-height: 1.5;
	font-weight: 500;
	padding-bottom: 1rem;
}
#sec03-2 .container div .img{
	width:100%;
max-width:520px;
}
#sec03-2 .container div:nth-child(2){
    max-width: 75%;
    margin-left: auto;
    margin-bottom: 4rem;
}
#sec03-2 .container div:nth-child(2) .img{
	width:100%;
max-width:450px;
}
#sec03-2 .container div .img img{
	filter: drop-shadow(0px 0px 10px #52525278);
}


/*sec04*/
#sec04{
height: 100%;
min-height: 100vh;
color:#fff;
position: relative;
padding-bottom: 15vh;
}
#sec04:before{
    content: "";
    position: absolute;
    top: -8%;
    bottom: 0;
    background: #242424;
    width: 100vw;
    height: 15%;
    z-index: -1;
}
#sec04 .container{
height: 100%;
min-height: 100vh;
display: flex;
}
#sec04 .container div{
    max-width: 680px;
    margin-left: auto;
    position: relative;
    margin-top: auto;
    bottom: -50%;
}
#sec04 .container div p{
 font-size:1.2rem;
 line-height: 2.2;
 }

/*sec05*/
#sec05{
		height: 100%;
		min-height: 100vh;
    color: #fff;
    position: relative;
}
#sec05 .container{
height: 100%;
min-height: 100vh;
display: flex;
}
#sec05 .container div{
    max-width: 650px;
    margin-right: auto;
    position: relative;
    margin-top: auto;
    padding-bottom:8vh;
}
#sec05 .container div p{
 font-size:1.2rem;
 line-height: 2.2;
}

/*sec06*/
#sec06{
		height: 100%;
		min-height: 100vh;
    color: #fff;
    position: relative;
}
#sec06 .container{
height: 100%;
min-height: 100vh;
display: flex;
}
#sec06 .container div{
    max-width: 650px;
    margin-left: auto;
    position: relative;
    margin-top: auto;
    padding-bottom: 15vh;
}
#sec06 .container p{
	font-size:1.2rem;
	line-height: 2.2;
}

/*sec07*/
#sec07{
    background: url(img/sec07.jpg) no-repeat;
		background-size:cover;
		background-position: right;
		height: 100%;
    min-height: 100vh;
    color: #fff;
    position: relative;
}
#sec07 .container{
    height: 100%;
    min-height: 100vh;
    padding-bottom: 15vh;
    display: flex;
}
#sec07 .container div{
    max-width: 650px;
    margin-right: auto;
    position: relative;
    margin-top: auto;
    top: 40%;
}
#sec07 .container div p{
	font-size:1.2rem;
	line-height: 2.2;
}
#sec07 .container div .weight{
font-size:1.5rem;
}
#sec07 .container div .weight span{
font-size:3rem;
vertical-align: sub;
padding:10px;
}


/*sec08*/
#sec08.pc{
    background: url(img/bg_sec08.jpg) no-repeat;
	background-size:cover;
	background-position: center;
    height: 100vh;
    color: #fff;
    position: relative;
	background-attachment: fixed;
}
#sec08.sp{
    background: url(img/bg_sec08_sp.jpg) no-repeat;
	background-size:cover;
	background-position: center;
    height: 40vh;
    color: #fff;
    position: relative;
}

/*sec09*/
#sec09{
    background: linear-gradient(137deg,#18272B,#4E6069);
		height: 100%;
    min-height: 100vh;
    color: #fff;
    position: relative;
		display: flex;
		align-items: center;
}
#sec09 .container{
	height: auto;
	padding:8rem 0;
}
#sec09 .container p{
	margin-bottom:4rem;
	max-width:1000px;
	font-size:1.2rem;
	line-height: 2.2;
}
.btn{
	font-size: 15px;
	border: 1px solid #fff;
	width: max-content;
	display: block;
	padding: 10px 20px;
	text-align: center;
	min-width: 200px;
}
.btn:hover{
	background:#fff;
	color:#444;
	opacity: 1;
}

/*sec10*/
#sec10-1{
    position: relative;
    top: 0;
    height: 100vh;
    left: 0;
    right: 0;
		background: url(img/bg_sec10.png) no-repeat;
		background-size:cover;
		background-position: top;
    z-index: 0;
}
#sec10-2{
    color: #fff;
    position: relative;
		display: flex;
		align-items: center;
    background-color: #333;
    width: 100%;
    height:100%;
		top:-30vh;
		transform:skewY(-16deg);
		z-index:10;
}
#sec10-2 .container{
height: auto;
padding:3rem 0;
}
#sec10-2 h2{
	white-space: nowrap;
}
	
#sec10-2 .flex{
display: flex;
align-items: flex-end;
justify-content:space-between;
gap:5%;
position: relative;
z-index:20;
top:-20vh;
transform:skewY(16deg);
}
#sec10-2 .flex .img{
width:45%;
}
#sec10-2 .flex .text{
width:55%;
}
#sec10-2 .flex .text p:nth-of-type(1){
	font-size: 1.3rem;
	font-weight: 500;
	margin: 0 0 3.5rem;
}
#sec10-2 .flex .text p{
line-height: 1.7;
}

/*sec11*/
#sec11{
position: relative;
}
#sec11 h2{
text-align: center;
}

/*sec12*/
#sec12{
		position: relative;
    left: 0;
    right: 0;
		color:#fff;
    z-index: 0;
		height: 100%;
    width: 100%;
}
#sec12 .container{
    position: absolute;
    top: 32%;
    width: 50%;
    max-width: 570px;
    display: block;
    right: 45%;
	padding-top:20vh;
    z-index: 20;
}
#sec12 .container p strong{
	font-size: 125%;
	font-weight: 500;
	letter-spacing: 3px;
}
#sec12 .container .serif:not(.price){
	display: inline-block;
	background:#fff;
	color:#333;
	font-family:serif;
	padding: 2px 6px;
	margin: 2rem 0 0.5rem;
}
#sec12 .container .price{
 display: block;
 margin-bottom:2rem;
}
#sec12 .container .price strong{
	font-size:24px;
}
#sec12 .bg{
	position: relative;
	bottom: 0;
	z-index:10;
}
#sec12 .bg img{
	width:100%;
	height: auto;
}
#sec12 .bg:before{
	/* position: absolute;
	content: "";
	border-right: 100vw solid #fff;
	border-bottom: 0vw solid transparent;
	border-left: 0vw solid transparent;
	border-top: 20vw solid transparent;
	bottom: 0%;
	z-index: -1;
	height: 10vh; */
}
#sec12::before{
 /* position: absolute;
 content:"";
 top:0;
 width:100%;
 height: 100%;
 display:inline-block;
 background: #ddd;
 clip-path: polygon(0% 35%, 100% 0%, 100% 100%, 0% 100%);
 background-color: #333; */
	position: absolute;
    content: "";
	top: 0%;
    z-index: 100;
    height: 5%;
    border-top: 0vw solid transparent;
    border-bottom: 20vw solid transparent;
    border-left: 100vw solid #fff;
    border-right: 0vw solid transparent;
}


/*contact*/
section.contact{
position: relative;
z-index:30;
background: #242424;
color:#fff;
padding: 1rem 0;
}
section.contact h2{
margin:0;
}
section.contact a{
color:#00C9D1;
}
section.contact p{
line-height: 1.6;
}
section.contact .container{
display: flex;
    justify-content: center;
    align-items: center;
    gap: 50px;
}

/*footer*/
footer{
background:url("img/bg_footer.jpg") no-repeat;
background-size: cover;
position: absolute;
width:100%;
z-index:3000;
}
#footer_inner{
padding:1rem;
}
#footer_inner p{
text-align: center;
margin:0;
}
#footer_inner .container ul{
	display: flex;
	align-items: center;
	justify-content: flex-start;
	margin:3rem auto 2rem;
	gap:6%;
}
#footer_inner a{
	white-space: nowrap;
}
#footer_inner img{
width:280px;
}
#fixedbanner.pc{
	position: fixed;
	bottom: 20px;
	right: 40px;
	z-index:1000;
	/* background:linear-gradient(226deg,#00ABC1,#007793); */
	/* border-radius:50%; */
    width: 180px;
    height: 180px;
    display: flex;
    justify-content: center;
    align-items: center;
}
#fixedbanner.pc::before{
	content:"";
	display: block;
	position: absolute;
	background:linear-gradient(226deg,#00ABC1,#007793);
	border-radius:50%;
    width: 150px;
    height: 150px;
	transition: all 0.3s;
	box-shadow: 2px 5px 9px #33333357;
}
#fixedbanner.pc img{
	position:absolute;
	display: block;
	width: auto;
	height: 90px;
    padding-top: 13px;
}
#fixedbanner.pc:hover{
	opacity: 1;
}
#fixedbanner.pc:hover::before{
	transform: scale(1.05);
}


/*PAGE*/
body:not(.home,.page-template-page_top_en) main{
padding-top:10rem;
}
body:not(.home,.page-template-page_top_en) header{
 color:#242424;
}
.about_logo{
position: relative;
    width: 40vw;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 2rem;
    max-width: 1200px;
}
section#message{
position: relative;
width:100%;
height: 100%;
color:#fff;
}
section#message h2{
	margin-bottom: 0;
	white-space: nowrap;
}

.pum-theme-17 .pum-container, .pum-theme-default-theme .pum-container{
}
.pum-theme-17 .pum-content + .pum-close, .pum-theme-default-theme .pum-content + .pum-close{
}

section#message .bg{
position: relative;
padding: 6rem 0;
}
section#message .bg::before{
content: "";
    position: absolute;
    width: calc(100% - 12vw);
    height: 100%;
    background: linear-gradient(125deg, #18272B, #4E6069);
    left: 6vw;
    top: 0;
    display: block;
    z-index: 0;

}
section#message .message01{
    position: absolute;
    right: 0;
    width: 60%;
    top: -15%;
		max-width: 1200px;
}
section#message .message02{
position: absolute;
    width: 48%;
    bottom: -10%;
    left: 0;
    max-width: 1000px;
}
section#message .container{
position: relative;
z-index: 10;
}


section#message .bg .container p{
	font-size: 1.2rem;
    line-height: 2.2;
    max-width: 680px;
		margin: 5rem 0;
}
section#message .progress div{
	  margin-left: auto;
		max-width:500px;

}
section#message .progress .container p{
	font-size: 1.2rem;
    line-height: 2.2;
		position: relative;
}
section#message .progress h3{
color:#A5A5A5;
    font-size: 7.5vw;
		line-height: 0.9;
    display: block;
    position: relative;
    margin: 0;
    left: 0;
    padding: 0 2rem 0 0;
}
section#service{
	background:url('img/bg_service.jpg') no-repeat;
	background-size:cover;
	background-position:center;
	color:#fff;
	position: relative;
	padding:6rem 0 15rem;
	margin-top: 20rem;
}
section#service h2{
font-size:3.7rem;
}
section#service p:not(.modal-content p){
	font-size: 1.2rem;
    line-height: 2.2;
	max-width: 770px;
	margin-right: 0;
		}
section#service .grid{
	position: absolute;
	bottom:-8%;
	width:100%;
	left:0;
}
section#service .grid .container{
	max-width:1300px;
}
section#service .grid ul{
	display:grid;
	grid-template-columns: repeat(3,1fr);
	gap:0;
}
section#service .grid ul li{
	width:100%;
	text-align: center;
	position: relative;
	box-sizing: border-box;
	cursor: pointer;
}
section#service .shine a:hover{
	opacity:1;
}
.modal {
	display: none;
	position: fixed;
	z-index: 1;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.5);
	overflow-y: scroll;
	z-index:100;
  }
  .modal-content {
	background-color: #fff;
	margin: 15% auto;
	padding: 2rem;
	border: 1px solid #888;
	width: 80%;
	max-width:900px;
	color:initial;
	position: relative;
  }
  
  /* 閉じるボタン */
  .close {
	position: absolute;
	color: #aaa;
	float: right;
	font-size: 28px;
	font-weight: bold;
	right: 2%;
    top: 0%;
  }
  
  .close:hover,
  .close:focus {
	color: black;
	cursor: pointer;
  }

section#service .grid a{
	position: relative;
    display: block;
    line-height: 0;
    overflow: hidden;
	transform: skewX(-17deg);
}
section#service .slick-slide a{
	display:inline-block;
    margin: auto;
    width: 100%;
	cursor: pointer;

}
section#service .grid a img{
	transform: skewX(17deg);
}
section#service .grid a::before{
	position: absolute;
	content:"";
	width: 50%;
	height: 100%;
	top: 0;
	left: -50%;
	background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,.3) 100%);
	opacity:0;
}
section#service .grid a:hover::before{
	animation: shine 0.2s;
	z-index:300;

}
@keyframes shine {
	100% {
		left: 43%;
		opacity:1;
	}
}


section#service .sp .slider{
	width: 90%;
	margin:auto;
	position: absolute;
    bottom: -7rem;
	left:5%;
} 
section#service .sp .slider .slick-slide{
	width:100%;
		position: relative;
		box-sizing: border-box;
	}
	section#service .sp .slider .slick-slide img{
		width: 90%;
		display: block;
		max-width: 360px;
		margin: auto;
	}
	section#service .slick-dots {
		text-align:center;
		margin:20px 0 0 0;
		bottom: -20px;
	}
	
	
	section#service .slick-dots button {
		color: transparent;
		outline: none;
		width:8px;
		height:8px;
		display:block;
		border-radius:50%;
		background:#ccc;/*ドットボタンの色*/
	}
	
	section#service .slick-dots .slick-active button{
		background:#333;/*ドットボタンの現在地表示の色*/
	}
.page-template-page-about_en section#message .bg .container p{
	margin-top:3rem;
}
.page-template-page-about_en section#company table{
	max-width:1200px;
}
.page-template-page-about_en section#company table th{
	width:20%;
}


section#company{
    padding: 10rem 0;
		background: #F5F5F5;
}
section#company h3{
text-align: center;
font-size:2rem;
margin-bottom:3rem;
}
section#company table{
    width: 100%;
    margin: auto;
    max-width: 800px;
		border-collapse: collapse;
}
section#company table tr{
	border-bottom: 1px solid #707070;

}
section#company table th,
section#company table td{
font-size: 1.2rem;
    line-height: 2.2;
    padding: 10px 20px;
    text-align: left;
}
section#company table th{
font-weight: 500;
width:30%;
vertical-align: baseline;
}
section#company table td{
width:70%;
}
section#company table td span{
font-size: 0.9rem;
    line-height: 1.5;
		display: inline-block;
}
section#company .linkbanner{
max-width: 800px;
    margin: 3rem auto 0;
}
section#company .linkbanner img{
width:100%;
margin:auto;
}
#footer_top img{
width:100%;
height: auto;
object-fit: cover;
}


/*SP*/
@media(max-width:1100px){
.pc{
display: none;
}
.sp{
 display: block!important;
}
h2{
	font-size: 1.6rem;
}
h2 span{
font-size:1.0rem;
margin-bottom: 0.5rem;
}
p{
font-size:1.0rem;
line-height: 1.8;
}
.btn{
margin:auto;
}

header{
	height:60px;
}
/*OpenButton*/
header .openbtn{
    position: absolute;
    cursor: pointer;
    width: 50px;
    height: 50px;
    border-radius: 5px;
    z-index: 700;
    top: 15%;
    right: 3%;

}
.openbtn span {
    display: inline-block;
    position: absolute;
    left: 0;
    height: 2px;
    border-radius: 5px;
    transition: all 0.4s;
	background: #242424;
    width: 80%;
}
.home .openbtn span,
.page-template-page_top_en .openbtn span{
    background: #fff;
}
.openbtn span:nth-of-type(1) {
    top: 12px;
}
.openbtn span:nth-of-type(2) {
    display:none;
}
.openbtn span:nth-of-type(3) {
    top: 26px;
}
header .openbtn.active{
display: block;
}
header.fixed_header .openbtn span{
background-color:#242424;
}
header .header_inner{
padding:1rem;
height: 60px;
}
header h1 .logo{
	display: block;
	max-width:150px;
	position: relative;
	z-index: 500;
}
header #g-nav.panelactive{
	display: block;
	width: 100vw;
	height: 100vh;
	background: #101010;
	position: absolute;
	left: 0;
	top: 0;
	color: #fff;
	overflow-y: scroll;
}
header .openbtn.active span:nth-of-type(1) {
transform: translateY(5px) rotate(30deg);
background:#fff;
}
header .openbtn.active span:nth-of-type(2) {
display:none;
}
header .openbtn.active span:nth-of-type(3) {
transform: translateY(-10px) rotate(-30deg);
background:#fff;
}
header #g-nav.panelactive h1{
	display:inline-block;
	padding:1rem;
	position: fixed;
	z-index: 500;
}
header #g-nav.panelactive ul:not(.submenu){
	flex-direction: column;
	gap: 12px;
	padding: 0 2rem;
	max-width: 450px;
	margin: auto;
	height: 100%;
	position: relative;
	top: 5rem;
}

header #g-nav.panelactive ul:not(ul.submenu) li{
position: relative;
font-size: 1.3rem;
}
header #g-nav.panelactive ul li:not(.bogo-language-switcher li, .submenu li)::before{
position: relative;
width: 15px;
height: 30px;
content: ">";
display: inline-block;
font-size: 15px;
vertical-align: middle;
}
header #g-nav.panelactive ul li:not(.bogo-language-switcher li, .submenu li):hover::before{
height: 15px;
transform: rotateZ(-270deg);
}
header #g-nav.panelactive ul.bogo-language-switcher{
	display: flex;
    flex-direction: row-reverse;
    font-size: 90%;
    gap: 0;
    white-space: nowrap;
	margin: 0;
	justify-content: flex-end;
	padding: 2rem 0;
}
header #g-nav.panelactive ul.bogo-language-switcher li{
	font-size: 1.1rem!important;
}


header #contact:hover .submenu {
    display: block;
    position: static;
    width: 100%;
}
header #contact:hover .submenu li{
display: block;
padding: 10px 1rem;
}
header #g-nav.panelactive #contact .submenu{
	width: 100%;
	left: 0;
	margin: 1rem 0;
	position: relative;
	top: 0;
}
header #g-nav.panelactive #contact .submenu li{
display: block;
padding: 10px 1rem;
}
header .submenu li p {
    line-height: 1.5;
    font-size: 0.9rem;
}
.scrolldown{
	display:none;
}
#sec01 .mv::after{
  background-attachment: initial;
}
.bg-video{
	height: 50vh;
}
.top_title{
 max-width:240px!important;
 margin:auto!important;
}

#sec02 .bg{
height: 100%;
}
#sec02 .container{
padding:8rem 0;
top:0;
}
#sec02 .container p{
font-size:1.0rem;
line-height: 1.8;
}

#sec03 .bg{
height: 100%;
}
#sec03 .bg::before{
top:0;
}
#sec03 .container:first-child{
padding:12rem 0;
top:0;
}
#sec03 .container:first-child div{
width:100%;
}
#sec03 p{
font-size:1.0rem;
line-height: 1.8;
}
#sec03 .container:first-child img{
    position: absolute;
    right: 2%;
    top: auto;
    max-height: 700px;
    width: 100%;
    object-fit: contain;
}
#sec03-2 .container div:not(div.img){
flex-direction: column-reverse;
gap:0;
}
#sec03-2 .container div p{
padding-top:10px;
}
#sec03-2 .container{
padding:500px 0 100px;
}
#sec03-2 .container div p strong{
font-size:1.25rem;
}
#sec03-2 .container div .img,
#sec03-2 .container div:nth-child(2) .img{
	width:90%;
	max-width:450px;
	margin:auto;
}
#sec03-2 .container div:not(div.img):nth-child(2){
	flex-direction: column;
	max-width: 100%;
	margin-top: 2rem;
}

#sec04 .container div{
	margin-top: 55vh;
}
#sec04 .container div p{
font-size:1.0rem;
line-height: 1.8;
}

#sec05 .container div{
	margin-top: 55vh;
}
#sec05 .container div p{
font-size:1.0rem;
line-height: 1.8;
}
#sec05 .bg-video{
	object-position: right;
}

#sec06 .container div{
	margin-top: 55vh;
    padding-bottom: 0;
}
#sec06 .container div p{
font-size:1.0rem;
line-height: 1.8;
}

#sec07{
background:linear-gradient(135deg,#414141,#000000);
}
#sec07 .container{
min-height: 100%;
padding: 5vh 0;
}
#sec07 .container div p{
font-size:1.0rem;
line-height: 1.8;
}
#sec07 .container div .weight{
font-size: 1.0rem;
}
#sec07 .container div .weight span{
font-size:2.0rem;
}
#sec07 img{
    width: 100%;
    height: auto;
    object-fit: cover;
}

#sec08{
	background-attachment: initial;
}

#sec09 .container{
padding:5rem 0;
}
#sec09 .container h2{
margin-bottom:3rem;
}
#sec09 .container p{
	font-size:1.0rem;
	line-height: 1.8;
	margin-bottom: 1.5rem;
}


#sec10-1{
height: 60vh;
}
#sec10-2{
transform:none;
top: 0;
}
#sec10-2 h2{
white-space: normal;
	}
#sec10-2 .flex{
flex-direction: column-reverse;
transform: none;
top: -12vh;
}
#sec10-2 .container{
padding-bottom:0;
}
#sec10-2 .flex .text{
width:100%;
}
#sec10-2 .flex .img{
width:100%;
margin:3rem 0 0;
}
#sec10-2 .flex .img img{
	margin:auto;
}
#sec10-2 .flex .text p:nth-of-type(1){
font-size:0.9rem;
margin-bottom:2rem;
}
#sec10-2::after{
		position: absolute;
		content:"";
		border-right: 100vw solid #fff;
		border-bottom: 0vw solid transparent;
		border-left: 0vw solid transparent;
		border-top: 20vw solid transparent;
		bottom: 0%;
		z-index: -1;
		height: 10vh;
}


#sec11{
padding: 0 0 5rem;
}
#sec11:after{
	/* position: absolute;
	content:"";
	border-top: 0 solid transparent;
	border-bottom: 20vw solid transparent;
	border-left: 100vw solid #fff;
	top: 100%;
	z-index: 50;	 */
}
#sec11 iframe{
	height: 100%;
    aspect-ratio: 4 / 2.5;
}

#sec12{
overflow: hidden;
/* padding-top: 20vh; */
background: #070707;
}
#sec12::before{
	/* clip-path: none; */
	height: 2%;
}
#sec12 .container{
	position: relative;
	width: 85%;
	margin: auto;
	left: 0;
	padding-top: 0;
	top: -15vh; 
}
#sec12 .sp img{
position: relative;
width:100%;
}
#sec12 h2{
width:90%;
margin-bottom: 3rem;
}
#sec12 .container p strong{
	font-size:120%;
	letter-spacing: 2px;
	line-height: 1.6;
}
#sec12 .container .price{
line-height: 2;
margin-bottom:3rem;
}

section.contact .container{
flex-direction: column;
    gap: 0;
    padding: 1rem 0;
}
section.contact h2 span{
font-size:1.5rem;
}

#footer_inner {
    padding: 3rem 0;
		margin-bottom: 3rem;
}
#footer_inner .container ul{
	flex-direction: column;
	gap:0;
	margin: 0 0 2rem;
}
#footer_inner .container ul li{
	border-bottom:1px solid #A3A3A3;
	padding:1rem;
	width:100%;
	text-align: center;
}
#footer_inner img{
	width:150px;
	margin:1rem auto;
}
#footer_inner p{
font-size:0.7rem;
}
#fixedbanner.pc{
	display:none;
}
#fixedbanner_sp{
position: fixed;
z-index:1000;
bottom:0;
width:100%;
right:auto;
left:0;
padding: 0.7rem 0;
display: flex !important;
justify-content: center;
align-items: center;
color: #fff;
text-align: center;
background: transparent linear-gradient(90deg, #00ABC1 0%, #007793 100%) 0% 0% no-repeat padding-box;
}
#fixedbanner_sp p{
width:50%;
padding:0.4rem;
font-size: 1rem;
font-weight: 500;
margin: 0;
white-space: nowrap;
}
#fixedbanner_sp p:first-child{
border-right: 1px solid #ffffff8c;
}
#fixedbanner_sp p:first-child svg{
 width:80%;
 display: block;
 max-width:200px;
 margin:auto;
}
#footer_inner a{
	font-size:80%;
}
}


@media(max-width:1100px){
body:not(.home,.page-template-page_top_en) main{
		padding-top:5rem;
	}
.about_logo{
display: block;
    width: 100%;
    margin-bottom: 8rem;
}
section#message .bg{
    padding: 3rem 0;
}
section#message .message01{
width: 80%;
    top: -6%;
    max-width: 600px;
}
.page-template-page-about_en section#message h2{
	white-space: normal;
}
section#message .bg::before{
width:100%;
left:0;
}
section#message .bg .container p{
font-size:1rem;
margin:2rem 0;
line-height: 1.8;
padding-bottom: 2rem;
}
section#message .progress div{
margin-top:10rem;
position: relative;
    z-index: 10;
		top:4rem;
}
section#message .message02{
        width: 75%;
        bottom: 17rem;
        z-index: 0;
        max-width: 500px;

}
section#message .progress h3{
    font-size: 3rem;
    text-align: end;
    padding-right: 0;
    left: 3%;
    top: 0;
}
section#service{
margin-top:0;
    padding: 3rem 0 10rem;
}
section#service h2{
font-size:1.65rem;
}
section#service p{
font-size: 1.0rem;
 line-height: 1.
}
section#service .grid{
	bottom: 0;
    width: 90%;
    left: 0;
	top:auto;
    bottom:-6rem;
}

section#company{
    padding-bottom: 4rem;
}
section#company h3 {
    font-size: 1.5rem;
    margin-bottom: 1.5rem;
}
section#company table tr{
	display:block;
	padding:5px 0;
}
section#company table th, section#company table td{
display:block;
padding:5px 10px;
font-size:1.0rem;
line-height: 1.6;
width:100%!important;
}
section#company .linkbanner img{
	max-width:360px;
}



}

@media screen and (max-width: 782px) {
    html.html {
        margin-top: 0 !important;
    }
}