@charset "utf-8";
/* PC/スマホ共通表示 */

.-----PC_MOBILE_COMMON_CSS_START----- {}

@font-face {
	font-family: 'Century Schoolbook';
	src: local('Century Schoolbook'),url('century-schoolbook-7.ttf')  format('truetype');
}

* {
	margin: 0px;
	padding: 0px;
	list-style-type: none;
	-webkit-text-size-adjust: 100%;
	max-height: 999999px;
	font-style: normal;
}
html{
	margin: 0;
	padding: 0;
	position: fixed;
	height: 100%;
	width: 100%;
	left: 0px;
	top: 0px;
	overflow: hidden;
	touch-action: manipulation;
}
body{
	margin: 0;
	padding: 0;
	font-family: "Yu Gothic Medium", "游ゴシック体","Yu Gothic",  YuGothic, "游ゴシック", "メイリオ", Meiryo, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	color: #000;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	font-weight: normal;
}

img {
	border-top-style: none;
	border-right-style: none;
	border-bottom-style: none;
	border-left-style: none;
}
table {
	border-collapse: collapse;
}
a:link,
a:visited {
	text-decoration: none;
	color: #000000;
}
a:hover,
a:active {
	text-decoration: underline;
	color: #000000;
}
input[type="submit"] {
	appearance: none;
	-webkit-appearance: none;
}
.clear {
	clear: both;	
}

.mobile_nowrap {
	display: inline;
}
.pc_nowrap {
	display: none;
}
.mobile_only {
	display:none;
}
.pc_only {
	display: block;
}
.forPC {
	display:block;
}
.forSP {
	display:none;	
}

#wrapper{
	width: 100%;
	height: 100dvh;
	position: relative;
	overflow: hidden;
}

.bx-wrapper{
	border: none!important;
	box-shadow: none!important;
	margin: 0px;
	padding: 0px;
}
.bx-viewport .slider {
	position: relative;
	height: 100dvh;
	margin: 0px!important;
	padding: 0px!important;
}
.bx-viewport .slider .screen {
	display: block!important;
	width:100%;
	height:100%;
}
.bx-controls {
	position: absolute;
	left: -9999em;
	top: -9999em;
}

#header {
	box-sizing: border-box;
	position: absolute;
	width: 100%;
	left: 0px;
	top: 0px;
	height: 40px;
	z-index: 10;
	padding-top:75px;
	/*display:none;*/
}
#header #logo {
	width: 170px;
	height: 41px;
	overflow: hidden;
	position: relative;
	background-image: url(../img/logo_bk.png);
	background-repeat: no-repeat;
	background-position: left top;
	background-size: contain;
	text-indent: -9999em;
	display: none;
	margin-left:calc((100% - 1300px) / 2);
	cursor:pointer;
	transition:0.4s;
}
#header.wh #logo {
	background-image: url(../img/logo_wh.png);
}
#header #logo:hover {
	opacity:0.7;
}


#header #g_nav_open_btn {
	top: 76px;
	left: calc( (100% - 1500px) / 2);
	height: 40px;
	width: 40px;
	position: absolute;
	display: block;
	overflow: hidden;
	text-indent: -9999px;
	transition: 0.5s;
	cursor:pointer;
}
#header #g_nav_open_btn div {
	width: 36px;
	height: 1.3px;
	display: block;
	background-color: #7f7f7f;
	position: absolute;
	transition:0.5s;
	left: 2px;
	top: 19px;
}

#header #g_nav_open_btn div:nth-child(1) {
	top: 7px;
	transition:0.3s;
}
#header #g_nav_open_btn div:nth-child(4) {
	top: 31px;
	transition:0.3s;
}
#header #g_nav_open_btn.on div:nth-child(1),
#header #g_nav_open_btn.on div:nth-child(4) {
	opacity:0;
	top: 19px;
}
#header #g_nav_open_btn.on div:nth-child(2) {
	transform:rotate(45deg);
}
#header #g_nav_open_btn.on div:nth-child(3) {
	transform:rotate(-45deg);
}




#footer {
	box-sizing:border-box;
	position: fixed;
	width: 100%;
	left: 0px;
	bottom: 0px;	
	display:none;
}
#footer .copyright {
	width: 1300px;
	padding-bottom: 50px;
	font-size: 12px;
	line-height: 100%;
	text-align: right;
	margin-right: auto;
	margin-left: auto;
	font-family: "Century Schoolbook";
}
#footer.wh .copyright {
	color:#FFF;
}

.screen{
	box-sizing:border-box;
	display: none;
	background-color: #FFF;
	width: 100%;
	height: 100dvh;
	position: relative;
	overflow: hidden;
}
.screen_ttl_01 {
	width: 100%;
	text-align: right;
	position: absolute;
	top: 75px;
	right: 0px;
}
.screen_ttl_01 h2 {
	font-size: 27px;
	line-height: 130%;
	font-weight:500;
}
.screen_ttl_01 .en {
	font-size: 13px;
	line-height: 130%;
	font-family: "Century Schoolbook";
}
.screen_wrapper{
	box-sizing: border-box;
	width: 1300px;
	height: 100dvh;
	position: relative;
	overflow: hidden;
	display: flex;
	align-content: center;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	margin-right: auto;
	margin-left: auto;
	padding-top: 165px;
	padding-bottom: 140px;
}
.screen_wrapper h3{
	font-size: 30px;
	line-height: 160%;
	letter-spacing: 0.3em;
	margin-bottom: 0.8em;
	font-weight: normal;
}
.screen_wrapper p{
	font-size: 15px;
	line-height: 200%;
	letter-spacing:1px;
	margin-bottom:2em;
}
.screen_wrapper p:last-child{
	margin-bottom:0;
}

.fade1,
.fade2,
.fade3,
.fade4,
.fade5,
.fade6,
.fade7 {
	transition:1.3s;
	opacity:0;
}
.active_screen .fade1.on,
.active_screen .fade2.on,
.active_screen .fade3.on,
.active_screen .fade4.on,
.active_screen .fade5.on,
.active_screen .fade6.on,
.active_screen .fade7.on {
	opacity:1;
}

.bg_wrapper {
	width: 100%;
	height: 100dvh;
}
.active_screen .bg_wrapper {
	position: fixed;
	left:0px;
	top: 0px;
}

.intro_logo {
	display: block !important;
	width: 100%;
	height: 100%;
	background-image: url(../img/top_1st_animation2025.gif);
	background-repeat: no-repeat;
	background-position: center center;
	background-size:1440px auto;
	cursor:pointer;
}
.active_screen .intro_logo {
	position: fixed;
	left: 0px;
	top: 0px;
}

#about .bg_wrapper {
	background-image: url(../img/screen02_bg.jpg);
	background-repeat: no-repeat;
	background-position: center center;
	background-size:cover;
	box-sizing:border-box;
}

#about .body {
	box-sizing: border-box;
	width: 460px;
	margin-right: 0px;
	margin-left: auto;
}
#about .body p {
	text-align: justify;
}


#about .body .fig_01 {
	box-sizing:border-box;
}
#about .body img {
	width: 100%;
	height:auto;
}

#structure {
	box-sizing: border-box;
	background-color: #000;
	color: #FFF;
	display:none !important;
}
#structure.on{
	display:block !important;
}
#structure .screen_wrapper {
	background-image: url(../img/logo_dot.png);
	background-repeat: no-repeat;
	background-position: center bottom;
	background-size: contain;
}
#structure .body {
	box-sizing: border-box;
	width: 730px;
	margin-right: auto;
	margin-left: auto;
	text-align:center;
}
#structure .screen_wrapper h3{
	font-size: 19px;
	line-height: 160%;
	letter-spacing: 0.3em;
	margin-bottom: 70px;
	margin-top: 2em;
	font-weight: normal;
}
#structure .body .fig_02 img {
	width: 79px;
	height: auto;
	margin-right: auto;
	margin-left: auto;
	display: block;
}
#structure .body .fig_02 {
	text-align:center !important;
	width:100%;
}
#structure .body .fig_03 img {
	max-width: 100%;
	height:auto;
}

#effects{
	display:none !important;
}
#effects.on{
	display:block !important;
}


.num_screen {
	box-sizing: border-box;
	background-image: url(../img/num_screen_bg.png);
	background-repeat: repeat-y;
	background-position: right center;
	background-size:contain;
}


.num_screen .body {
	background-color: #000;
	max-height: 880px;
	max-width: 880px;
	width: 90vh;
	height: 90vh;
	margin-right: auto;
	margin-left: auto;
	border-radius: 50%;
	box-sizing: border-box;
	color: #FFF;
	display:flex;
	align-content:center;
	align-items:center;
	flex-wrap:wrap;
	z-index:1;
}
.num_screen .body_bg {
	box-sizing: border-box;
	width: 100%;
	height: 100dvh;
	position: absolute;
	overflow: hidden;
	left: 0px;
	top: 0px;
	display:flex;
	align-content:center;
	align-items:center;
	flex-wrap:wrap;
	padding-left:8px;
	padding-bottom:8px;
	z-index:0;
}
.num_screen .body_bg:after {
	content:" ";
	display:block;
	background-color: #FFF;
	max-height: 880px;
	max-width: 880px;
	width: 90vh;
	height: 90vh;
	margin-right: auto;
	margin-left: auto;
	border-radius: 50%;
	box-sizing: border-box;
}

.num_screen #inner_slider{
	box-sizing: border-box;
	width: 100%;
	height: 100dvh;
	position: absolute;
	overflow: hidden;
	left: 0px;
	top: 0px;
}
.num_screen #inner_slider .inner_wrapper {
	box-sizing: border-box;
	width: 100%;
	height: 100dvh;
	position: absolute;
	overflow: hidden;
	display: flex;
	align-content: center;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	margin-right: auto;
	left: 0px;
	top: 0px;
	z-index: 0;
	transition:0.5s;
	opacity:0;
}
.num_screen #inner_slider .inner_wrapper.current {
	opacity:1;
}


.num_screen #effects1 .body {
	background-image: url(../img/num1.png);
	background-repeat: no-repeat;
	background-position: center center;
	background-size: contain;
}
.num_screen #effects2 .body {
	background-image: url(../img/num2.png);
	background-repeat: no-repeat;
	background-position: center center;
	background-size: contain;
}
.num_screen #effects3 .body {
	background-image: url(../img/num3.png);
	background-repeat: no-repeat;
	background-position: center center;
	background-size: contain;
}
.num_screen #effects4 .body {
	background-image: url(../img/num4.png);
	background-repeat: no-repeat;
	background-position: center center;
	background-size: contain;
}
.num_screen #effects5 .body {
	background-image: url(../img/num5.png);
	background-repeat: no-repeat;
	background-position: center center;
	background-size: contain;
}
.num_screen #effects6 .body {
	background-image: url(../img/num6.png);
	background-repeat: no-repeat;
	background-position: center center;
	background-size: contain;
}
.num_screen #effects7 .body {
	background-image: url(../img/num7.png);
	background-repeat: no-repeat;
	background-position: center center;
	background-size: contain;
}
.num_screen .body h3,
.num_screen .body h4,
.num_screen .body p {
	box-sizing: border-box;
	width:190px;
	margin-left: 57%;
	margin-right:calc(100% - 190px - 57%);
}
.num_screen .body p{
	line-height: 180%;
	margin-bottom:1.5em;
	background-image: url(../img/arrow_01.png);
	background-repeat: no-repeat;
	background-position: center bottom;
	background-size: 27px auto;
	padding-bottom: 40px;
	transition:1.3s;
	opacity:0;
	text-align: justify;
}


.num_screen .body h3{
	letter-spacing:0;
	transition:1.3s;
	opacity:0;
}
.num_screen .body h4{
	font-size: 19px;
	line-height: 160%;
	font-weight: normal;
	box-sizing: border-box;
	width:240px;
	margin-left: 57%;
	margin-right:calc(100% - 240px - 57%);
	transition:1.3s;
	opacity:0;
}


.num_screen .body p.on{
	opacity:1;
}
.num_screen .body h3.on {
	opacity:1;
}
.num_screen .body h4.on {
	opacity:1;
}

#movie .bg_wrapper,
#movie_blank .bg_wrapper {
	background-image: url(../img/screen11_bg.jpg);
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
	color: #FFF;
	background-color: #000;
}


#movie .movie_wrapper,
#movie .movie_box,
#movie .Load,
#movie .Play,
#movie .Pause {
	height: 280px;
	width: 500px;
	margin-right: auto;
	margin-left: auto;
	overflow: hidden;
	position: relative;
}
#movie .Load {
	background-color: #444;
	text-align: center;
	display: flex;
	justify-content: center;
	align-content: center;
	align-items: center;
	position: absolute;
	left: 0px;
	top: 0px;
	z-index: 10;
	background-image: url(../img/loading.gif);
	background-repeat: no-repeat;
	background-position: center center;
	background-size:30px;
}
#movie .Play {
	cursor: pointer;
	text-align: center;
	display: flex;
	justify-content: center;
	align-content: center;
	align-items: center;
	position: absolute;
	left: 0px;
	top: 0px;
	z-index: 10;
	/*background-image: url(../img/movie_cover.jpg);*/
	background-repeat: no-repeat;
	background-position: center center;
	background-size:cover;
}
#movie .Play .text {
	cursor: pointer;
	transition: 0.4s;
	transform-origin: center center;
	background-color: rgba(255,255,255,1);
	height: 55px;
	width: 55px;
	border-radius: 50%;
	text-align: center;
	display: flex;
	justify-content: center;
	align-content: center;
	align-items: center;
	background-image: url(../img/arrow_02.png);
	background-repeat: no-repeat;
	background-position: center center;
	background-size:22px auto;
}
#movie .Play .text:hover {
	opacity:0.7;
}
#movie .Pause {
	text-align: center;
	display: flex;
	justify-content:center;
	align-content:center;
	align-items:center;
	position: absolute;
	left: 0px;
	top: 0px;
	z-index: 10;
	opacity:0;
	transition: 0.4s;
	/*background-color: rgba(0,0,0,0.3);*/
}
#movie .Pause:hover {
	opacity:1;
	cursor:pointer;
}

#movie .Pause .text {
	cursor: pointer;
	transition: 0.4s;
	transform-origin: center center;
	background-color: rgba(255,255,255,1);
	height: 55px;
	width: 55px;
	border-radius: 50%;
	text-align: center;
	display: flex;
	justify-content: center;
	align-content: center;
	align-items: center;
	background-image: url(../img/arrow_02_pause.png);
	background-repeat: no-repeat;
	background-position: center center;
	background-size:22px auto;
}
#movie .Pause .text:hover {
	opacity:0.7;
}

#company p {
	font-size:14px;
	margin-bottom:3em;
}
#company p.freedial {
	background-image: url(../img/pict_freedial.png);
	background-repeat: no-repeat;
	background-position: left center;
	background-size:16px auto;
	padding-left: 20px;
	
}
#company p a {
	color: #000;
	text-decoration:none !important;
	transition:0.3s;
}
#company p a:hover {
	opacity:0.6;
}

#company p.tel a,
#company p.freedial a {
	pointer-events: none;
}
#company p.tel a:hover,
#company p.freedial a:hover {
	opacity:1;
}

#company p.contact {
	text-decoration: underline;
	
}

#contact  {
	background-color: #DEDEDE;
}
#contact .form {
	width: 450px;
	margin-right: auto;
	margin-left: auto;
	z-index:0;
	position:relative;
}

#contact .form dl {
	width:100%;
	box-sizing:border-box;
	display:flex;
	justify-content:space-between;
	align-items:stretch;
	flex-wrap:wrap;
	margin-bottom:0px !important;
}
#contact .form dl dt {
	width:120px;
	box-sizing:border-box;
	font-size:13px;
	line-height:150%;
	margin-bottom:20px;
}
#contact .form dl dd {
	width: calc(100% - 120px);
	box-sizing: border-box;
	margin-bottom: 20px;
	position: relative;
}
#contact .form dl dd .wpcf7-not-valid-tip {
	font-size:90%;
	box-sizing:border-box;
	display:block;
	padding-left:1em;
	position: absolute;
	width:100%;
	right:-100%;
	bottom:-0.3em;
}

#contact .form dl dd input[type=text],
#contact .form dl dd input[type=email]  {
	width: 100%;
	box-sizing: border-box;
	padding: 0.7em;
	background-color: #FFF;
	border: 1px solid #BBB;
	border-radius:3px;
}
#contact .form dl dd textarea {
	line-height:150%;
	width: 100%;
	box-sizing: border-box;
	padding: 0.7em;
	background-color: #FFF;
	border: 1px solid #BBB;
	border-radius: 3px;
	height: 165px;
	font-family: "メイリオ", Meiryo,"ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro",  Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}
#contact .form dl dd input[type=text]:focus,
#contact .form dl dd input[type=email]:focus,
#contact .form dl dd textarea:focus {
	background-color: #FFD;
}


#contact .form dl dd .btn  {
	text-align:center;
}
#contact .form dl dd .btn input  {
	width: 170px;
	box-sizing: border-box;
	background-color: #000;
	border-radius: 3px;
	color: #FFF;
	text-decoration: none;
	font-size: 14px;
	margin-right: auto;
	margin-left: auto;
	cursor: pointer;
	transition: 0.3s;
	padding-top: 0.8em;
	padding-right: 0em;
	padding-bottom: 0.8em;
	padding-left: 0em;
	display:block;
}

#contact .form dl dd .btn input:hover  {
	opacity:0.6;
}
#contact .form dl .captcha_box div.captcha_wrapper {
	box-sizing: border-box;
	width: calc(100% - 40px);
	background-color: #FFF;
	border: 1px solid #BBB;
	margin-right: auto;
	margin-left: auto;
	border-radius: 3px;
	margin-bottom: 15px;
	padding-top: 15px;
	padding-right: 30px;
	padding-bottom: 15px;
	padding-left: 30px;
}
#contact .form dl .captcha_box span.text {
	display:block;
	text-align:center;
	line-height:140%;
	font-size:90%;
}
#contact .form dl .captcha_box .img {
	box-sizing:border-box;
	width: 100%;
	text-align: center;
	margin-bottom: 5px;
	display: block;
}
#contact .form dl .captcha_box .img img {
	width: 60% !important;
	height: auto !important;
	margin-right: auto;
	margin-left: auto;
}
#contact .form dl dd.captcha_box .wpcf7-not-valid-tip {
	width:280px;
	right:-335px;
}
.wpcf7-response-output {

	box-sizing:border-box !important;
	width: calc(100% - 120px) !important;
	margin-left:auto !important;
	margin-right:0px !important;
	text-align:center !important;
	margin-top: -20px !important;
	border: 2px solid #dc3232 !important;
	font-size: 84% !important;
	line-height: 140% !important;
	background-color: #FFF !important;
	padding: 10px !important;
}

#menu_layer {
	height: 100dvh;
	width: 100%;
	position: fixed;
	left: 0px;
	top: 0px;
	z-index: 9999999;
	overflow: hidden;
	display:flex;
	align-content:center;
	align-items:center;
	justify-content:center;
	flex-wrap:wrap;
	transition:0.4s;
	opacity:0;
	pointer-events:none;
}
#menu_layer.on {
	display:flex;
	opacity:1;
	pointer-events:auto;
}
#menu_layer .bg {
	height: 100dvh;
	width: 100%;
	z-index: 99999998;
	position: absolute;
	left: 0px;
	top: 0px;
	background-color:rgba(255,255,255,0.5);
}
#menu_layer .wrapper {
	box-sizing:border-box;
	height: 740px;
	width: 1100px;
	margin-right: auto;
	margin-left: auto;
	background-image: url(../img/menu_bg.jpg?20231011);
	background-repeat: no-repeat;
	background-position: center center;
	background-size:cover;
	display:flex;
	align-content:center;
	align-items:center;
	flex-wrap:wrap;
	padding-left:85px;
	z-index: 99999999;
}
#menu_layer .menu li {
	margin-bottom:3em;
}
#menu_layer .menu li:last-child {
	margin-bottom:0;
}

#menu_layer .menu a {
	color: #000;
	text-decoration: none;
	font-size: 16px;
	line-height: 140%;
}

#menu_layer .menu a:hover {
	text-decoration: underline;
}



#delta_text {
	border: 2px solid #000;
	background-color: #FFF;
	width: 400px;
	font-size: 16px;
	line-height: 30px;
	color: #000;
	text-align: center;
	display: block;
	position: fixed;
	z-index: 999;
	top: 10px;
	right: 10px;
}
#screen_num {
	border: 2px solid #000;
	background-color: #FFF;
	width: 50px;
	font-size: 24px;
	line-height: 30px;
	color: #000;
	text-align: center;
	display: block;
	position: fixed;
	z-index: 999;
	top: 10px;
	right: 420px;
}


.-----PC_MOBILE_COMMON_CSS_END----- {}

.-----1440_START----- {}

/* スマートフォン用CSS */
@media screen and (max-width: 1545px) {
	
#header #logo {
	margin-left:100px;
}

#header #g_nav_open_btn {
	left: 25px;
}

	
}


.-----1440_END----- {}

/* スマートフォン用CSS */
@media screen and (max-width: 750px) {
	
.-----MOBILE_ONLY_CSS_START----- {}

img {
	max-width:100%;
	height:auto;
}
br.pc_nowrap {
	display: inline;
}
br.mobile_nowrap {
	display: none;
}

.mobile_only {
	display:block;
}
.pc_only {
	display: none;
}


.forPC {
	display:none;
}
.forSP {
	display:block;
}

#wrapper{
	width: 100%;
	height: 100dvh;
	position: relative;
	overflow: hidden;
}

.bx-wrapper{
	border: none!important;
	box-shadow: none!important;
	margin: 0px;
	padding: 0px;
}
.bx-viewport .slider {
	position: relative;
	height: 100dvh;
	margin: 0px!important;
	padding: 0px!important;
}
.bx-viewport {
	pointer-events:none;
}
.body_active .bx-viewport {
	pointer-events:auto;
}
.bx-viewport .slider .screen {
	display: block!important;
	width:100%;
	height:100%;
}
.bx-controls {
	position: absolute;
	left: -9999em;
	top: -9999em;
}





#header {
	box-sizing: border-box;
	position: absolute;
	width: 100%;
	left: 0px;
	top: 0px;
	height: 40px;
	padding-top: 40px;
	/*display: none;*/
	z-index: 9999999999999999999999999999999;
	pointer-events:auto;
}
.body_active #header {
	z-index: 99999999999999999999999999999999;
	pointer-events:auto;
}



#header #logo {
	width: 185px;
	height: 46px;
	margin-left: auto;
	transition: none;
	margin-right: 40px;
}



#header #g_nav_open_btn {
	top: 0px;
	left: 0px;
	height: 120px;
	width: 131px;
	z-index:99999999999999999999999999999;
}
#header #g_nav_open_btn div {
	width: 51px;
	height: 2px;
	left: 40px;
	top: 58px;
}

#header #g_nav_open_btn div:nth-child(1) {
	top: 40px;
}
#header #g_nav_open_btn div:nth-child(4) {
	top: 77px;
}
#header #g_nav_open_btn.on div:nth-child(1),
#header #g_nav_open_btn.on div:nth-child(4) {
	top: 58px;
}

#footer {
	z-index:9999999999999999999;
}
#footer .copyright {
	width: 650px;
	padding-bottom: 20px;
	font-size: 22px;
}
.screen{

}
.screen_ttl_01 {
	width: 100%;
	top: 103px;
	right: 15px;
}
.screen_ttl_01 h2 {
	font-size: 36px;
}
.screen_ttl_01 .en {
	font-size: 20px;
}
.screen_wrapper{
	width: 700px;
	padding-top: 155px;
	padding-bottom: 140px;
}
.screen_wrapper h3{
	font-size: 43.5px;
	line-height: 140%;
	letter-spacing: 0.2em;
	margin-bottom: 0.5em;
	font-weight: normal;
}
.screen_wrapper p{
	font-size: 26px;
	line-height: 170%;
	letter-spacing:1px;
	margin-bottom:0.9em;
}
.screen_wrapper p:last-child{
	margin-bottom:0;
}

.fade1,
.fade2,
.fade3,
.fade4,
.fade5,
.fade6,
.fade7 {
	transition:1.3s;
	opacity:0;
}
.active_screen .fade1.on,
.active_screen .fade2.on,
.active_screen .fade3.on,
.active_screen .fade4.on,
.active_screen .fade5.on,
.active_screen .fade6.on,
.active_screen .fade7.on {
	opacity:1;
}

.bg_wrapper {
	width: 100%;
	height: 100dvh;
}
.active_screen .bg_wrapper {
	position: fixed;
	left:0px;
	top: 0px;
}

.intro_logo {
	display: block !important;
	width: 100%;
	height: 100%;
	background-image: url(../img/top_1st_animation2025_sp.gif);
	background-repeat: no-repeat;
	background-position: center center;
	background-size:cover;
}
.active_screen .intro_logo {
	position: fixed;
	left: 0px;
	top: 0px;
}

#about .bg_wrapper {
	background-image: url(../img/screen02_bg_sp.jpg);
	background-position: center top;
	background-size:auto;
}

#about .body {
	padding-top:460px;
	width: 550px;
	margin-right: auto;
	margin-left: auto;
}

#structure {
	box-sizing: border-box;
	background-color: #000;
	color: #FFF;
}
#structure .screen_wrapper {
	background-image: url(../img/logo_dot_sp.png);
	background-repeat: no-repeat;
	background-position: left bottom;
	background-size: auto;
}
#structure .body {
	box-sizing: border-box;
	width: 311px;
	margin-right: 50px !important;
	margin-left: auto !important;
	text-align:center;
	padding-top:100px !important;
}
#structure .screen_wrapper h3{
	font-size: 32px;
	line-height: 155%;
	letter-spacing: 0.3em;
	margin-bottom: 55px;
	margin-top: 10px;
	padding-left:1em;
	font-weight: normal;
	text-align: left;
	white-space: nowrap;
}
#structure .body .fig_01 {

}
#structure .body .fig_02 img {
	width: auto;
	height:auto;
	margin-right: auto;
	margin-left: auto;
	display: block;
}
#structure .body .fig_02 {
	text-align:center !important;
	width:100%;
}
#structure .body .fig_03_1 img,
#structure .body .fig_03_2 img,
#structure .body .fig_03_3 img {
	max-width:100%;
	width: auto;
	height:auto;
	margin-right: auto;
	margin-left: auto;
	display: block;
}
#structure .body .fig_03_2 {
	padding-top:5px;
	padding-bottom:25px;
}
#structure .body .fig_03_2 img {
	width:50px;
	height:auto;
}

.num_screen {
	background-image: url(../img/num_screen_bg_sp.png);
	background-repeat: none;
	background-position: center center;
	background-size:cover;
}

.num_screen .screen_wrapper{
	width: 750px;
}
.num_screen .screen_ttl_01 {
	right: 40px;
}


.num_screen .body {
	max-height: 700px;
	max-width: 700px;
	width: 90vh;
	height: 90vh;
	margin-right: auto;
	margin-left: auto;
}
.num_screen .body_bg {
	padding-left:13px;
	padding-bottom:13px;
}
.num_screen .body_bg:after {
	max-height: 700px;
	max-width: 700px;
}


.num_screen #inner_slider{
	box-sizing: border-box;
	width: 100%;
	height: 100dvh;
	position: absolute;
	overflow: hidden;
	left: 0px;
	top: 0px;
}
.num_screen #inner_slider .inner_wrapper {
	box-sizing: border-box;
	width: 100%;
	height: 100dvh;
	position: absolute;
	overflow: hidden;
	display: flex;
	align-content: center;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	margin-right: auto;
	left: 0px;
	top: 0px;
	z-index: 0;
	transition:0.5s;
	opacity:0;
}
.num_screen #inner_slider .inner_wrapper.current {
	opacity:1;
}

.num_screen #effects1 .body {
	background-image: url(../img/num1_sp.png);
}
.num_screen #effects2 .body {
	background-image: url(../img/num2_sp.png);
}
.num_screen #effects3 .body {
	background-image: url(../img/num3_sp.png);
}
.num_screen #effects4 .body {
	background-image: url(../img/num4_sp.png);
}
.num_screen #effects5 .body {
	background-image: url(../img/num5_sp.png);
}
.num_screen #effects6 .body {
	background-image: url(../img/num6_sp.png);
}
.num_screen #effects7 .body {
	background-image: url(../img/num7_sp.png);
}

.num_screen .body h3,
.num_screen .body h4,
.num_screen .body p {
	box-sizing: border-box;
	width:550px;
	margin-left: auto;
	margin-right: auto;
}
.num_screen .body p{
	margin-bottom:1.4em;
	background-size: 36px auto;
	padding-bottom: 55px;
	font-size: 27px;
	line-height:180%;
}
.num_screen .body h3{
	text-align:center;
	font-size: 44px;
	margin-bottom:25px;
	line-height:140%;
}
.num_screen .body h4{
	font-size: 34px;
	line-height: 170%;
	width:550px;
	margin-left: auto;
	margin-right:auto;
	text-align:center;
}


.num_screen .body p.on{
	opacity:1;
}
.num_screen .body h3.on {
	opacity:1;
}
.num_screen .body h4.on {
	opacity:1;
}

#movie .bg_wrapper,
#movie_blank .bg_wrapper {
	background-image: url(../img/screen11_bg.jpg);
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
	color: #FFF;
	background-color: #000;
}

#movie .movie_wrapper,
#movie .movie_box,
#movie .Load,
#movie .Play,
#movie .Pause {
	height: 322px;
	width: 575px;
}

#company .body {
	width: 480px;
	margin-right: auto;
	margin-left: auto;
	padding-top:135px;
}
#company p {
	font-size:23.2px;
	margin-bottom:2.8em;
}
#company p a {
	transition:none;
	text-decoration:none !important;
}
#company p.freedial {
	background-size:24px auto;
	padding-left: 29px;
	
}
#company p.tel a,
#company p.freedial a {
	pointer-events: auto;
}
#company p.tel a:hover,
#company p.freedial a:hover {
	opacity:0.6;
}
#company p.contact {
	text-decoration: underline;
	
}


#contact  {

}

#contact .form {
	width: 410px;
	padding-top:150px;
}

#contact .form dl {
	display:block;
}
#contact .form dl dt {
	width:100%;
	font-size:24.5px;
	margin-bottom:5px;
}
#contact .form dl dd {
	width:100%;
	margin-bottom:15px;
}
#contact .form dl dd .wpcf7-not-valid-tip {
	font-size:80%;
	display: inline;
	padding-left:0;
	position: static;
}
#contact .form dl dd input[type=text],
#contact .form dl dd input[type=email]  {
	padding: 0.5em;
	border-radius:4px;
	font-size:26px;
}
#contact .form dl dd textarea {
	font-size:26px;
	padding: 0.5em;
	border-radius: 4px;
	height: 180px;
}
#contact .form dl dd.captcha_box{
	margin-bottom:35px !important;
}
#contact .form dl dd.captcha_box .text{
	font-size:84%;
}
#contact .form dl .captcha_box div.captcha_wrapper {
	width: 100% ;
	margin-bottom: 10px;
	padding-top: 10px;
	padding-right: 15px;
	padding-bottom: 10px;
	padding-left: 15px;
}
#contact .form dl .captcha_box .img img {
	width: 40% !important;
	height: auto !important;
	margin-right: auto;
	margin-left: auto;
}
#contact .form dl dd.captcha_box .wpcf7-not-valid-tip {
	letter-spacing:-1px;
}
#contact .form dl dd .btn  {
	text-align:center;
	padding-top:0px;
}
#contact .form dl dd .btn input  {
	width: 235px;
	border-radius: 3px;
	font-size: 28px;
	transition: none;
	padding-top: 0.5em;
	padding-bottom: 0.5em;
	margin-right: auto;
	margin-left: auto;
	display:block;
}
.wpcf7-response-output {
	width: 100% !important;
	font-size: 100% !important;
	padding: 10px !important;
}
#menu_layer {
	height: 100dvh;
	width: 100%;
	position: fixed;
	left: 0px;
	top: 0px;
	z-index: 9999999;
	overflow: hidden;
	display:flex;
	align-content:center;
	align-items:center;
	justify-content:center;
	flex-wrap:wrap;
	transition:0.4s;
	opacity:0;
	pointer-events:none;
}
#menu_layer.on {
	display:flex;
	opacity:1;
	pointer-events:auto;
}
#menu_layer .bg {
	height: 100dvh;
	width: 100%;
	z-index: 99999998;
	position: absolute;
	left: 0px;
	top: 0px;
	background-color:rgba(255,255,255,1);
}
#menu_layer .wrapper {
	height: 90dvh;
	width: 670px;
	background-image: url(../img/menu_bg_sp.jpg);
	background-position: center bottom;
	background-size: auto 32dvh;
	display: block;
	padding-left: 90px;
	padding-top:100px;
	z-index: 99999999;
	align-content: flex-start;
	align-items: flex-start;
}
#menu_layer .menu li {
	margin-bottom:2.2em;
}
#menu_layer .menu li:last-child {
	margin-bottom:0;
}

#menu_layer .menu a {
	color: #000;
	text-decoration: none;
	font-size: 27px;
	line-height: 140%;
}

#delta_text {
	border: 2px solid #000;
	background-color: #FFF;
	width: 300px;
	font-size: 24px;
	line-height: 30px;
	color: #000;
	text-align: center;
	display: block;
	position: fixed;
	z-index: 999;
	top: 10px;
	right: 10px;
}
#screen_num {
	border: 2px solid #000;
	background-color: #FFF;
	width: 50px;
	font-size: 24px;
	line-height: 30px;
	color: #000;
	text-align: center;
	display: block;
	position: fixed;
	z-index: 999;
	top: 10px;
	right: 320px;
}

}
