@charset "UTF-8";
/* CSS Document */

.pcv {
	display: none!important;
}

html {
	/*font-size: 2.6vw;*/
	font-size: 62.5%;/* 10px */
	-webkit-tap-highlight-color:rgba(0,0,0,0);
}
body {
	font-size: 1.3rem;
	line-height: 2;
}

#bodyContainer {
}

a:active {
	/*opacity: 0.5;*/
}

section {
	position: relative;
	overflow: hidden;
}

.wrapper {
	padding: 0 4vw;
	margin: 0 auto;
	position: relative;
	z-index: 1;
}

header {
	
}
header #menuBtn {
	width: 31px;
	height: 34px;
	position: absolute;
	right: 15px;
	top: 8px;
	z-index: 10;
    cursor: pointer;
}
header #menuBtn span {
	display: block;
	width: 25px;
	height: 4px;
	background: url("../images/sp_menu.svg") center center no-repeat;
	position: absolute;
	left: 0;
	right: 0;
	top: 16px;
	margin: 0 auto;
	transition: transform 0.2s, opacity 0.2s;
	will-change: transform;
}
header #menuBtn span.t1 {
	transform: translate(3px,-5px);
}
header #menuBtn span.t2 {
	transform: translate(-3px,5px);
}
header #menuBtn i {
	position: absolute;
	right: 32px;
	top: 2px;
	bottom: 0;
	margin: auto 0;
	font-size: 12px;
	line-height: 1;
	height: 12px;
	font-weight: 400;
	opacity: 0;
	transform: translateX(10px);
	transition: transform 0.2s, opacity 0.2s;
}
.naviOpen header #menuBtn span.t1 {
	transform: rotate(230deg) scaleY(-1);
}
.naviOpen header #menuBtn span.t2 {
	transform: rotate(-230deg);
}
.naviOpen header #menuBtn i {
	opacity: 1;
	transform: translateX(0);
}

nav#mainMenu {
	background: #005BA3;
	color: #fff;
	width: 100%;
	position: fixed;
	left: 0;
	top: 0;
	z-index: 20;
	transform: translateX(100%);
	opacity: 0;
	transition: transform 0.2s, opacity 0.2s;
	will-change: transform;
	pointer-events: none;
}
.naviOpen nav#mainMenu {
	transform: translateX(0);
	opacity: 1;
	pointer-events: auto;
}

.jumpTarget {
	position: absolute;
	top: 30px;
}
section.sec_movie .jumpTarget {
	top: -60px;
}

#pageTopBtn {
	position: fixed;
	right: 15px;
	bottom: 15px;
	width: 45px;
	height: 45px;
	background: url("../images/btn_pagetop.svg") center center/contain no-repeat;
	cursor: pointer;
	z-index: 100;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.2s;
}
body.onBlueSection #pageTopBtn {
	mix-blend-mode: screen;
}
#pageTopBtn:active {
	background-image: url("../images/btn_pagetop_hover.svg");
}
#pageTopBtn.show {
	opacity: 1;
	pointer-events: auto;
}

#contents {
	padding-bottom: 40px;
	min-height: calc(100vh - 90px);
}

/*------------------------------------------------*/
header#pageHeaderBar {
	position: fixed;
	z-index: 1000;
	left: 0;
	top: 0;
	width: 100%;
	height: 60px;
}
#pageHeaderBar::after {
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
	background: #F5F5F8 url("/assets/images/bg_gray.png") center top/500px auto repeat;
	opacity: 0;
	transition: opacity 0.15s;
}
header#pageHeaderBar .wrapper {
	display: flex;
	justify-content: space-between;
	align-items: center;
	max-width: none;
	height: 100%;
}
header#pageHeaderBar h1 {
	opacity: 0;
	transition: opacity 0.15s;
}
header#pageHeaderBar h1 a {
	display: block;
}
header#pageHeaderBar h1 img {
	display: block;
	width: 116px;
}
header#pageHeaderBar h1 img.img2 {
	display: none;
}
header#pageHeaderBar h1 a:active img.img1 {
	display: none;
}
header#pageHeaderBar h1 a:active img.img2 {
	display: block;
}
.onScroll header#pageHeaderBar::after {
	opacity: 0.95;
}
.onScroll header#pageHeaderBar h1,
body.subpage header#pageHeaderBar h1 {
	opacity: 1;
}

body::before {
	content: '';
	background: #aaa url("../images/sp_menu_bg.png") center top/250px auto repeat;
	position: fixed;
	left: 0;
	top: 0;
	z-index: 100;
	width: 100%;
	height: 150vh;
	opacity: 0;
	pointer-events: none;
}
.naviOpen body::before {
	opacity: 1;
	pointer-events: auto;
}
html.naviOpen {
	overflow: hidden;
}
.naviOpen header#pageHeaderBar .wrapper {
	display: block;
	overflow: hidden auto;
}
.naviOpen header#pageHeaderBar {
	height: 100%;
}
.naviOpen header#pageHeaderBar h1 {
	display: none;
}

header#pageHeaderBar .wrap-menu {
	opacity: 0;
	transform: translateY(-30px);
	pointer-events: none;
	width: 100%;
}
.naviOpen header#pageHeaderBar .wrap-menu {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
	transition: opacity 0.2s, transform 0.2s;
}
.naviOpen header#pageHeaderBar::after {
	display: none;
}
header#pageHeaderBar .wrap-menu .wrap-heading {
	margin-top: 50px;
}
header#pageHeaderBar .wrap-menu nav {
	margin-top: 30px;
	padding-bottom: 50px;
}
header#pageHeaderBar .wrap-menu nav ul {
}
header#pageHeaderBar .wrap-menu nav ul li {
	text-align: right;
	position: relative;
}
header#pageHeaderBar .wrap-menu nav ul li a {
	display: block;
	padding-right: 38px;
	background: url("../images/btn_sp_navi.svg") right top 22px no-repeat;
}
header#pageHeaderBar .wrap-menu nav ul li i {
	display: block;
	color: #fff;
	font-size: 6.1rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.05em;
	margin-bottom: 5px;
}
header#pageHeaderBar .wrap-menu nav ul li span {
	display: inline-block;
	font-size: 1.7rem;
	font-weight: bold;
	line-height: 1;
	min-height: 20px;
	background: url("../images/hd_line_blue.svg") left center/auto 20px no-repeat;
	padding-left: 24px;
	padding-right: 0.28em;
}
header#pageHeaderBar .wrap-menu nav ul li + li {
	margin-top: 30px;
}
header#pageHeaderBar .wrap-menu nav ul li a:active i {
	color: var(--color-2);
}


/*------------------------------------------------*/
section#mainVisual {
	background: url("../images/kv.png") right top/90vw auto no-repeat;
	padding-top: 120vw;
	padding-bottom: 40px;
}
section#mainVisual .wrapper {
}
.wrap-heading {
	margin-top: 20px;
}
section#mainVisual .wrap-heading {
	opacity: 0;
	transform: translateY(50px);
	transition: transform 1s 0.3s, opacity 1s 0.3s;
	will-change: transform;
}
.start section#mainVisual .wrap-heading {
	opacity: 1;
	transform: translateY(0);
}
.wrap-heading p {
	display: block;
	font-size: 1.8rem;
	line-height: 2;
	font-weight: bold;
	margin-bottom: 40px;
}
.wrap-heading h2 img.logo {
	display: block;
	width: 254px;
	margin-bottom: 5px;
}
.wrap-heading h2 span {
	display: block;
	font-size: 1.2rem;
	line-height: 1.6;
	font-weight: bold;
	
}
.wrap-heading h2 i {
	display: block;
	font-size: 0.9rem;
	line-height: 1.6;
	font-weight: 500;
}

/*------------------------------------------------*/
header.header-section {
}
header.header-section h2 {
	display: inline-block;
	text-align: right;
	position: relative;
} 
header.header-section h2 i {
	display: block;
	color: #fff;
	font-size: 6.8rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.05em;
}
header.header-section h2 span {
	display: inline-block;
	font-size: 1.9rem;
	font-weight: bold;
	line-height: 1;
	min-height: 20px;
	background: url("../images/hd_line_blue.svg") left center/auto 20px no-repeat;
	padding-left: 24px;
	padding-right: 0.28em;
}
/*------------------------------------------------*/
section#sec_service {
	overflow: hidden;
}
section#sec_service .jumpTarget {
	top: -60px;
}
section#sec_service .wrapper-1 {
	padding-top: 60px;
}
section#sec_service .wrapper-2 {
	padding-bottom: 150px;
}
section#sec_service .wrapper-2::after {
	content: '';
	width: 184px;
	height: 250px;
	position: absolute;
	right: calc(-4vw - 20px);
	bottom: -105px;
	z-index: 0;
	background: url("../images/bg_gray_p.svg") right top/contain no-repeat;
}
section#sec_service header.header-section h2::after {
	content: '';
	width: 362px;
	height: 439px;
	position: absolute;
	right: 10px;
	top: 135px;
	z-index: 0;
	background: url("../images/bg_gray_p.svg") right top/contain no-repeat;
}
section#sec_service .hd-text {
	margin: 45px 0 60px;
	display: flex;
	justify-content: center;
	font-weight: bold;
	line-height: 2.5;
	padding-left: 15%;
}
section#sec_service .c01 {
}
section#sec_service .c01 .outer {
}
section#sec_service .c01 .inner {
	position: relative;
	padding-top: 150px;
}
section#sec_service .c01 .inner::after {
	content: '';
	width: 135px;
	height: 185px;
	position: absolute;
	left: 0;
	top: 0;
	z-index: 0;
	background: url("../images/service_01.png") left top/contain no-repeat;
}
section#sec_service .c02 {
	position: relative;
	padding-top: 330px;
	margin-top: 30px;
}
section#sec_service .c02 .outer {
}
section#sec_service .c02 .inner {
}
section#sec_service .c02::after {
	content: '';
	width: 227px;
	height: 310px;
	position: absolute;
	right: -4vw;
	top: 0;
	z-index: 0;
	background: url("../images/service_02.png") right top/contain no-repeat;
}
section#sec_service .c03 {
}
section#sec_service .c03 .outer {
}
section#sec_service .c03 .inner {
	position: relative;
	padding-top: 195px;
	margin-top: 30px;
}
section#sec_service .c03 .inner::after {
	content: '';
	width: 169px;
	height: 239px;
	position: absolute;
	left: 0;
	top: 0;
	z-index: 0;
	background: url("../images/service_03.png") left top/contain no-repeat;
}
section#sec_service .c .wrap-hd {
	position: relative;
	z-index: 1;
}
section#sec_service .c01 .wrap-hd {
}
section#sec_service .c02 .wrap-hd {
}
section#sec_service .c03 .wrap-hd {
}
section#sec_service .c01 .wrap-hd h3 {
	position: relative;
	padding-left: 90px;
}
section#sec_service .c02 .wrap-hd h3 {
	position: relative;
	padding-left: 30px;
}
section#sec_service .c03 .wrap-hd h3 {
	position: relative;
	padding-left: 90px;
}
section#sec_service .c01 .wrap-hd h3::before {
	content: '';
	display: block;
	position: relative;
	left: -12px;
	width: 61px;
	height: 33px;
	background: url("../images/service_01_i.png") left top/contain no-repeat;
	margin-bottom: 8px;
}
section#sec_service .c02 .wrap-hd h3::before {
	content: '';
	display: block;
	position: relative;
	left: -6px;
	top: 0;
	width: 45px;
	height: 29px;
	background: url("../images/service_02_i.png") left top/contain no-repeat;
	margin-bottom: 5px;
}
section#sec_service .c03 .wrap-hd h3::before {
	content: '';
	display: block;
	position: relative;
	left: -5px;
	top: 0;
	width: 37px;
	height: 37px;
	background: url("../images/service_03_i.png") left top/contain no-repeat;
	margin-bottom: 8px;
}
section#sec_service .c .wrap-hd h3 i {
	display: block;
	font-size: 3.4rem;
	line-height: 1.1;
	font-weight: 300;
}
section#sec_service .c .wrap-hd h3 span {
	display: inline-block;
	background: url("../images/service_hd_bg.png") center center/cover no-repeat;
	font-size: 13px;
	color: #fff;
	line-height: 25px;
	padding: 0 10px;
	margin-top: 6px;
}
section#sec_service .c .wrap-text {
	position: relative;
	z-index: 5;
	margin-top: 25px;
}
section#sec_service .c01 .wrap-text {
	padding-left: 90px;
}
section#sec_service .c02 .wrap-text {
	padding-left: 30px;
	width: 280px;
}
section#sec_service .c03 .wrap-text {
	padding-left: 90px;
}
section#sec_service .c .wrap-text p {
	font-size: 1.2rem;
	line-height: 2.2;
	text-align: left;
}
/*------------------------------------------------*/
section#sec_works {
	background: url("../images/bg_blue.png") center top/500px auto repeat fixed;
	color: #fff;
	overflow: hidden;
}
/*------------------------------------------------*/
section#sec_works h2 i {
	color: #3D3DA3;
}
section#sec_works h2 span {
	background: url("../images/hd_line_white.svg") left center/auto 20px no-repeat;
}
section#sec_works .wrapper-1 {
	padding-top: 150px;
}
section#sec_works .wrapper-1::after {
	content: '';
	width: 184px;
	height: 250px;
	position: absolute;
	right: calc(-4vw - 20px);
	top: -145px;
	z-index: 0;
	background: url("../images/bg_blue_p.svg") right top/contain no-repeat;
}

section#sec_works .wrapper-2 {
	height: 370px;
	padding-top: 15px;
}
section#sec_works .wrapper-2::before {
	content: '';
	width: 100px;
	height: 137px;
	position: absolute;
	left: 12%;
	top: -30px;
	z-index: 0;
	background: url("../images/bg_blue_p2.svg") right top/contain no-repeat;
}
section#sec_works .wrapper-2::after {
	content: '';
	width: 60px;
	height: 83px;
	position: absolute;
	right: 20%;
	bottom: 125px;
	z-index: 0;
	background: url("../images/bg_blue_p3.svg") right top/contain no-repeat;
}
section#sec_works .wrap-hd {
	margin: 40px 0 30px;
}
section#sec_works .flowImages {
	height: 200px;
	position: relative;
	z-index: 5;
}
section#sec_works a {
	display: block;
	transition: filter 0.15s;
	will-change: transform;
}
section#sec_works a:active {
	filter: contrast(0.9) brightness(1.2);
}
section#sec_works .flowImages::before {
	content: '';
	width: 100%;
	height: 100px;
	position: absolute;
	left: 0;
	top: 0;
	z-index: 0;
	background: url("../images/works_photo_1.jpg") left top/auto 100% repeat-x;
	animation: flowImage-1 30s linear infinite;
	will-change: transform;
}
section#sec_works .flowImages::after {
	content: '';
	width: 100%;
	height: 100px;
	position: absolute;
	left: 0;
	top: 100px;
	z-index: 0;
	background: url("../images/works_photo_2.jpg") left top/auto 100% repeat-x;
	animation: flowImage-2 30s linear infinite;
	will-change: transform;
}
@keyframes flowImage-1 {
	0% {
		background-position: left 0 top;
	}
	100% {
		background-position: left -711px top;
	}
}
@keyframes flowImage-2 {
	0% {
		background-position: left -711px top;
	}
	100% {
		background-position: left 0 top;
	}
}

section#sec_works .link {
	display: flex;
	justify-content: flex-end;
	align-items: flex-start;
}
section#sec_works .link a {
	font-size: 12px;
	line-height: 1.6;
	padding-left: 18px;
	padding-top: 1px;
	background: url("../images/arrow_link.png") left center no-repeat;
}
section#sec_works .link a:active {
	color: var(--color-2);
	background-image: url("../images/arrow_link_hov.png");
}

/*------------------------------------------------*/
section#sec_outline .wrapper {
	padding-top: 150px;
	padding-bottom: 0;
}
section#sec_outline .wrapper::after {
	content: '';
	width: 319px;
	height: 436px;
	position: absolute;
	right: -30px;
	top: 220px;
	z-index: 0;
	background: url("../images/bg_gray_p.svg") right top/cover no-repeat;
}
section#sec_outline .wrap-list {
	max-width: 800px;
	margin-left: auto;
	margin-top: 50px;
	position: relative;
}
section#sec_outline dl {
	border-top: 1px solid #D7D7D9;
	font-size: 1.3rem;
	line-height: 1.8;
	position: relative;
}
section#sec_outline dl::after {
	content: '';
	position: absolute;
	left: 0;
	top: -1px;
	width: 9px;
	height: 1px;
	background: #2D2D92;
}
section#sec_outline dl div {
	border-bottom: 1px solid #D7D7D9;
	position: relative;
	padding: 20px 0;
}
section#sec_outline dl div::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 9px;
	height: 1px;
	background: #2D2D92;
}
section#sec_outline dl dt {
	font-weight: bold;
	margin-bottom: 2px;
}
section#sec_outline dl dd {
}
section#sec_outline .map {
	margin-top: 30px;
	height: 344px;
	overflow: hidden;
}
section#sec_outline .map iframe {
	width: 100%;
	height: 644px;/*344px;*/
	margin-top: -150px;
	border: none;
	box-shadow: 0 3px 15px rgba(15,15,49,0.1);
}
/*------------------------------------------------*/
section#sec_contact .wrapper {
	padding-top: 150px;
	padding-bottom: 70px;
}
section#sec_contact .wrapper::before {
	content: '';
	width: 276px;
	height: 377px;
	position: absolute;
	left: -100px;
	top: 370px;
	z-index: 0;
	background: url("../images/bg_gray_p.svg") right top/contain no-repeat;
}
section#sec_contact .wrapper::after {
	content: '';
	width: 276px;
	height: 377px;
	position: absolute;
	right: -90px;
	bottom: 160px;
	z-index: 0;
	background: url("../images/bg_gray_p.svg") right top/contain no-repeat;
}
section#sec_contact .wrap-hd {
	margin: 40px 0 0;
}
section#sec_contact .wrap-hd p {
	font-size: 1.3rem;
	line-height: 1.8;
	font-weight: bold;
}
section#sec_contact .wrap-hd p.at {
	font-size: 1.2rem;
	line-height: 1.8;
	font-weight: normal;
}
section#sec_contact .wrap-form {
	max-width: 880px;
	margin-left: auto;
	margin-top: 30px;
}
section#sec_contact .wrap-input + .wrap-input {
	margin-top: 7px;
}
section#sec_contact .wrap-input .t {
	font-weight: bold;
	font-size: 1.4rem;
	margin-bottom: 5px;
}
section#sec_contact .wrap-input .t span {
	font-weight: normal;
	font-size: 1.3rem;
	margin-left: 5px;
}
section#sec_contact p.error {
	color: #DC1415;
	font-size: 1.2rem;
	line-height: 1.3;
	font-weight: bold;
	margin-top: 6px;
	display: none;
}
section#sec_contact .errorF p.error {
	display: block;
}
section#sec_contact input[type='text'],
section#sec_contact textarea {
	-moz-appearance: none;
	-webkit-appearance: none;
	appearance: none;
	background-color: transparent;
	background-image: none;
	font-family: inherit;
	font-size: 1.3rem;
	padding: 0.9em 1em;
	display: block;
	width: 100%;
	background: #fff;
	border: none;
	color: #000;
}
input:-webkit-autofill {
    box-shadow: 0 0 0 1000px white inset;
	transition: background-color 5000s ease-in-out 0s;
}
section#sec_contact textarea {
	resize: vertical;
}
section#sec_contact input[type='text'].errorF {
	border: 2px solid #DC1415;
}
section#sec_contact ::placeholder {
  color: #D7D7D9;
}
section#sec_contact input[type='text']:focus {
	box-shadow: none;
	outline: none;
}
section#sec_contact textArea.errorF {
	border: 2px solid #DC1415;
}
section#sec_contact textarea:focus {
	box-shadow: none;
	outline: none;
}
section#sec_contact div.submit {
	text-align: center;
}
section#sec_contact div.submit p {
	display: inline-block;
	background: var(--color-1);
	position: relative;
	overflow: hidden;
	transition: background 0.15s;
	box-shadow: 0 3px 15px rgba(15,15,49,0.29);
}
section#sec_contact div.submit p:active {
	background: var(--color-2);
}
section#sec_contact input[type='submit'] {
	-webkit-appearance: none;
	width: 255px;
	height: 60px;
	border: none;
	font-size: 1.4rem;
	color: #fff;
	cursor: pointer;
	position: relative;
	z-index: 3;
	text-align: center;
	border-radius: 0;
	background: none;
	cursor: pointer;
}
section#sec_contact div.submit p::before {
	content: '';
	position: absolute;
	left: 20px;
	top: 0;
	bottom: 0;
	margin: auto 0;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: url("../images/arrow_white.svg") left 55% center/5px auto no-repeat;
	z-index: 2;
	border: 1px solid #5A5A9B;
	transition: border 0.15s;
	pointer-events: none;
}
section#sec_contact div.submit p:active::before {
	border: 1px solid #82D5D4;
}

section#sec_contact .privacy {
	margin: 30px 0 30px;
	text-align: center;
	user-select: none;
    -ms-user-select: none;
    -moz-user-select: none;
    -webkit-user-select: none;
}
section#sec_contact .privacy .frame {
	border: 1px solid #D7D7D9;
	padding: 5px;
}
section#sec_contact .privacy .frame .inner {
	padding: 10px 10px;
	overflow-y: auto;
	text-align: left;
	height: 214px;
}
section#sec_contact .privacy .frame h2 {
	font-size: 1.6rem;
	line-height: 1.8;
	font-weight: bold;
	margin: 0 0 10px;
}
section#sec_contact .privacy .frame dt {
	font-size: 1.4rem;
	line-height: 1.8;
	font-weight: bold;
	margin: 20px 0 5px;
}
section#sec_contact .privacy .frame p,
section#sec_contact .privacy .frame dl dd {
	font-size: 1.3rem;
	line-height: 1.8;
	font-weight: bold;
}
section#sec_contact .privacy .frame .inner::-webkit-scrollbar{
	width: 5px;
}
section#sec_contact .privacy .frame .inner::-webkit-scrollbar-track{
}
section#sec_contact .privacy .frame .inner::-webkit-scrollbar-thumb{
	background-color: rgba(45,45,146,0.4);
	border-radius: 3px;
}
section#sec_contact .privacy .check {
	display: inline-block;
	margin: 20px 0 0;
	font-weight: bold;
	font-size: 1.3rem;
	line-height: 1.8;
	cursor: pointer;
}
section#sec_contact .privacy .check input {
	margin-right: 5px;
}
/*------------------------------------------------*/
footer#pageFooter {
	padding-bottom: 20px;
	min-height: 90px;
}
footer#pageFooter .wrapper {
	display: flex;
	align-items: center;
	max-width: none;
}
footer#pageFooter .wrapper > .inner {
}
footer#pageFooter .copyright {
	font-size: 1.1rem;
	line-height: 1;
	font-weight: 400;
	margin-bottom: 20px;
}
footer#pageFooter .link a {
	display: flex;
	justify-content: flex-start;
	align-items: center;
}
footer#pageFooter .link img.logo_METz {
	height: 36px;
}
footer#pageFooter .link span {
	font-size: 1.2rem;
	line-height: 1;
	padding-left: 15px;
	background: url("../images/arrow_blue.svg") left center no-repeat;
	margin-left: 12px;
}
footer#pageFooter .link a:active span {
	background: url("../images/arrow_hover.svg") left center no-repeat;
	color: var(--color-2);
}
/*------------------------------------------------*/
/*------------------------------------------------*/
#sec_subpage_hd .wrapper {
	padding-top: 80px;
}
#sec_subpage_hd .wrapper::before {
	content: '';
	width: 300px;
	height: 409px;
	position: absolute;
	right: -132px;
	top: -140px;
	z-index: 0;
	background: url("../images/bg_gray_p.svg") right top/contain no-repeat;
}
#sec_subpage_hd .backBtn {
	position: relative;
	z-index: 6;
	margin-bottom: 15px;
}
#sec_subpage_hd .backBtn a {
	display: block;
	font-size: 1.2rem;
	line-height: 20px;
	background: url("../images/btn_back.svg") left center no-repeat;
	padding: 2px 5px 2px 28px;
}
#sec_subpage_hd .backBtn a:active {
	color: var(--color-2);
	background: url("../images/btn_back_hover.svg") left center no-repeat;
}

header.header-section-subpage h2 {
	display: inline-block;
	text-align: right;
	position: relative;
} 
header.header-section-subpage h2 i {
	display: block;
	color: #fff;
	font-size: 5.6rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.05em;
}
header.header-section-subpage h2 span {
	display: inline-block;
	font-size: 1.6rem;
	font-weight: bold;
	line-height: 1;
	height: 16px;
	background: url("../images/hd_line_blue.svg") left center/auto 20px no-repeat;
	padding-left: 22px;
	padding-right: 0.28em;
	position: relative;
	top: -7px;
}
nav.pageJumpMenu {
	background: #fff;
	box-shadow: 0 3px 15px rgba(15,15,49,0.05);
	margin: 30px -4vw 0;
	padding: 10px 4vw;
}
nav.pageJumpMenu .hd {
	color: #9999A5;
	font-size: 1.4rem;
	font-weight: bold;
	line-height: 24px;
	letter-spacing: normal;
	height: 24px;
	background: url("../images/service_02_i.png") left center/32px auto no-repeat;
	padding-left: 42px;
}
nav.pageJumpMenu ul {
	margin-top: 15px;
	flex: auto;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(240px,100%), 1fr));
	gap: 10px;
}
nav.pageJumpMenu ul li a {
	display: block;
	background: url("../images/btn_jump.svg") left center/19px 19px no-repeat;
	padding-left: 24px;
}
nav.pageJumpMenu ul li a:active {
	background: url("../images/btn_jump_hover.svg") left center no-repeat;
	color: var(--color-2);
}
nav.pageJumpMenu ul li span {
	display: block;
	font-size: 1.2rem;
	font-weight: bold;
	line-height: 1;
	letter-spacing: normal;
}
nav.pageJumpMenu ul li i {
	display: block;
	font-size: 1.0rem;
	line-height: 1;
	letter-spacing: normal;
	margin-top: 4px;
}
/*------------------------------------------------*/
section.sec_movie {
	padding-top: 50px;
	padding-bottom: 0;
	overflow: hidden;
}
section.sec_movie .wrap-hd {
	background: url("../images/hd_line_blue.svg") left top/auto 34px no-repeat;
	border-bottom: 1px solid #D7D7D9;
	padding-top: 2px;
	padding-bottom: 16px;
	padding-left: 38px;
	position: relative;
	margin-bottom: 25px;
}
section.sec_movie .wrap-hd::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 9px;
	height: 1px;
	background: #2D2D92;
}
section.sec_movie h3 span {
	display: block;
	font-size: 1.0rem;
	font-weight: bold;
	line-height: 1;
}
section.sec_movie h3 b {
	display: block;
	font-size: 1.8rem;
	font-weight: bold;
	line-height: 1;
	margin-top: 6px;
}
section.sec_movie ul {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	flex-wrap: wrap;
}
section.sec_movie ul::after,
section.sec_movie ul li {
	content: '';
	display: block;
	width: calc( (100% - 16px) / 2 );
}
section.sec_movie ul li {
	cursor: pointer;
}
section.sec_movie ul li .image {
	overflow: hidden;
	aspect-ratio: 402 / 226;
	position: relative;
}
section.sec_movie ul li .image::after {
	content: '';
	width: 100%;
	height: 100%;
	position: absolute;
	left: 0;
	top: 0;
	z-index: 0;
	background: rgba(15,15,49,0.5) url("../images/movie_play.svg") center center/36px auto no-repeat;
	transition: background 0.3s;
}
section.sec_movie ul li:active .image::after {
	background-color: rgba(15,15,49,0.2);
}
section.sec_movie ul li .image span {
	display: block;
	width: 100%;
	height: 100%;
	background: center center/cover no-repeat;
	transition: transform 0.3s;
	will-change: transform;
}
section.sec_movie ul li:active .image span {
	transform: scale(1.1);
}
section.sec_movie ul li p {
	font-size: 1.2rem;
	line-height: 1.6;
	letter-spacing: normal;
	margin: 5px 0 20px;
}
section.sec_movie ul li:active p {
	color: var(--color-2);
}
/*------------------------------------------------*/
body::after {
	content: '';
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: 1200;
	background: #2D2D92 url("../images/modal_bg.png") center top/500px auto repeat;
	pointer-events: none;
	opacity: 0;
	transition: opacity 0.2s;
}
body.modal-show::after {
	opacity: 0.9;
}
body.modal-show #bodyContainer {
	filter: blur(18px);
}
#modal-video {
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.2s;
	position: fixed;
	left: 0;
	top: 0;
	z-index: 1201;
	width: 100%;
	height: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
}
body.modal-show #modal-video {
	opacity: 1;
	pointer-events: auto;
}
#modal-video .closeBtn {
	position: fixed;
	z-index: 1220;
	right: 20px;
	top: 20px;
	width: 70px;
	height: 25px;
	cursor: pointer;
	background: url("../images/modal_close.svg") center center/contain no-repeat;
	opacity: 0;
}
#modal-video .closeBtn:active {
	background: url("../images/modal_close_hover.svg") center center/contain no-repeat;
}
body.modal-show #modal-video .closeBtn {
	opacity: 1;
}
#modal-video .inner {
	position: relative;
	z-index: 1;
	max-width: 1000px;
	width: 100%;
	aspect-ratio: 16 / 9;
}
#modal-video .inner iframe {
	display: block;
	width: 100%;
	height: 100%;
}
#modal-video .bg {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
}
/*------------------------------------------------*/
/*------------------------------------------------*/

#contents.vCenter {
	display: flex;
	align-items: center;
}
section#sec_thanks {
	width: 100%;
	text-align: center;
	padding-top: 100px;
	padding-bottom: 100px;
}
section#sec_thanks h3 {
	font-size: 1.6rem;
	line-height: 1.8;
	font-weight: bold;
	margin-bottom: 20px;
}
section#sec_thanks p {
	font-size: 1.3rem;
	line-height: 2;
	font-weight: bold;
}
section#sec_thanks .btn_blue {
	margin-top: 40px;
}


.btn_blue a {
	background: var(--color-1);
	position: relative;
	overflow: hidden;
	transition: background 0.15s;
	box-shadow: 0 3px 15px rgba(15,15,49,0.29);
	width: 255px;
	height: 60px;
	font-size: 1.4rem;
	color: #fff;
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	margin: 0 auto;
}
.btn_blue a:active {
	background: var(--color-2);
}
.btn_blue a::before {
	content: '';
	position: absolute;
	left: 20px;
	top: 0;
	bottom: 0;
	margin: auto 0;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: url("../images/arrow_white.svg") left 55% center/5px auto no-repeat;
	z-index: 2;
	border: 1px solid #5A5A9B;
	transition: border 0.15s;
	pointer-events: none;
}
.btn_blue a:active::before {
	border: 1px solid #82D5D4;
}























