﻿@import url('https://fonts.googleapis.com/css2?family=Rubik:wght@300;400;500&display=swap');
.eng {
    font-family: 'Rubik', sans-serif;
}
video {
    object-fit: contain;
}
.more_bt a span:nth-of-type(2) {
    position: relative;
    padding-right: 25px;
}
body {
/*background-image: url("https://www.transparenttextures.com/patterns/absurdity.png");*/
}


/* ---------------------------------------------------------------------------------------------------------*/
.intro_txt, .contents_txt, #contents2 .cate_box {
    z-index: 1;
    overflow: hidden;
    position: relative;
    display: inline-block;
}

.intro_txt, .contents_txt, #contents2 .cate_box, .cms_wrap {
    opacity: 0;transition: all 0.3s
}
.intro_txt::before, .contents_txt:before, #contents2 .cate_box:before, .cms_wrap:before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    transform: translateX(-100%);
    height: 100%;
    background: #fff;
    transition: 0.7s;
    z-index: 0;
    transition-delay: 0.3s;
}
.intro_txt.active::before, .contents_txt.active:before, #contents2 .cate_box.active:before, .cms_wrap.active:before {
transform: translateX(101%);
}
.intro_txt.active, .contents_txt.active, #contents2 .cate_box.active, .cms_wrap.active {
    opacity: 1;transition-delay: 0.5s;
    position: relative;
}

/* ---------------------------------------------------------------------------------------------------------*/





#contents1 span.bg_color2 {
    background-image: url(../Dup/img/bg.jpg);
    background-repeat: no-repeat;
    background-position: left 100% bottom -50px;
    background-size: auto 121%;
}
.more_bt a span:nth-of-type(2):before {
    content: "";
    display: block;
    position: absolute;
    width: 14px;
    height: 14px;
    right: 0px;
    background-size: contain;
    background-image: url(Dup/img/arrow.png);
    background-repeat: no-repeat;
    background-position: center;
    top: 50%;
    margin-top: -7px;
}
#fix_bnr {
    z-index: 12;
    width: 200px;
    bottom: 10px;
    right: 77px;
    filter: drop-shadow(1px 5px 9px  rgba(0,0,0,0.1));
}
#main_img:after {
    content: "";
    position: absolute;
    bottom: 0;
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 400px 0 0 1000px;
    border-color: transparent transparent transparent rgb(0 94 250 / 96%);
}
#intro:before {
    content: "";
    position: absolute;
    top: -200px;
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 200px 0 0 2000px;
    border-color: transparent transparent transparent rgb(255 255 255 / 43%);
}
.maru {
    position: fixed;
    z-index: -3;
    max-width: 800px;
    top: 50%;
    transform: translate(-50%, -50%);
    /* right: 0; */
    margin: auto;
    opacity: 0.2;
    left: 50%;
}
#main_img .txt {
    top: 38%;
    filter: drop-shadow(0px 0px 5px rgba(0,0,0,0.4));
}
#main_img h2 {
    max-width: 700px;
}
.top_map {
    position: relative;
    z-index: 1;
}
.top_map:before {
    content: "";
    display: block;
    position: absolute;
    left: -15px;
    bottom: -5px;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 130px 0 0 200px;
    border-color: transparent transparent transparent #004eb8;
    z-index: -1;
}
.sankakuwrap:before {
    content: "";
    display: block;
    position: absolute;
    right: -15px;
    bottom: -15px;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 0 250px 200px;
    border-color: transparent transparent #579cfb transparent;
}
#contents1 .kazari {
    top: -120px;
    right: 0;
    width: 200px;
}
#contents1 .kazari2 {
    left: 40%;
    width: 200px;z-index: -1;
}
#contents2 .kazari {
    bottom: -120px;
    left: 0;
    width: 200px;
}
.top_cms_title h2 {
display: inline-block;
    padding-bottom: 7px;
    border-bottom: 3px solid;
    position: relative;
}
.top_cms_title h2:after {
    content: "";
    display: block;
    position: absolute;
    bottom: -8px;
    left: 0;
    display: block;
    background-color: #044fb8;
    width: 21%;
    height: 1px;
}

.eng {
    font-size: 25px;
    font-weight: bold;
}
.eng strong {
    font-size: 33px;
}
.v_type3 .cate_box{border: 1px solid;}

#f_contact a span.hover_box {
    opacity: 0.5;
}
#top_info h2 {
    font-size: 20px;
    position: absolute;
    top: -8px;
    left: 0;
    right: 0;
    margin: auto;
    letter-spacing: 12px;
    /* font-family: 'Sawarabi Mincho', serif; */
    /* font-style: italic; */
    background-color: transparent;
    color: #444;
}

#top_info {
    background-image: url(Dup/img/bg_img.jpg);
    background-size: cover;
    background-position: 50% 69%;
    position: relative;
}
.more_bt a {
    box-shadow: 0 3px 6px rgb(71 122 196 / 15%);
    background-color: #f5bf08;
    color: #fff;
}
/* ------------------------- HEADER -----------------------------*/
#header .grid_10 {
    background: transparent;transition: all 0.5s;
}
#header .grid_9 li a {
    /*color: #fff;*/
}
header .inner { 
    box-shadow: none;
    /*background: transparent;*/
    transition: all 0.5s;
}
#header.head_fix .inner {
box-shadow: 0 10px 15px rgb(83 84 252 / 6%), 0 4px 6px rgb(83 117 252 / 5%);
    background: #fff;
}
#header.head_fix .grid_9 li a {
    color: #212121;
}

/*-----------------------header お問い合わせボタン--------------------------*/
#header ul.grid_2 {
    padding: 0;
}
#pc_nav ul:first-of-type, #header.border_rad10, header .inner, #pc_nav ul:last-of-type li a {
    border-radius: 0;
}
#pc_nav ul:last-of-type li a {
    padding: 32px 0;
    background-color: #004cb4;
    transition: all 0.5s;
}
#pc_nav ul:last-of-type {
    background: transparent;
}
#pc_nav ul:last-of-type li {
    width: 100%;
}

#header.head_fix #pc_nav ul:last-of-type li a {
    padding: 22px 0;
}
#pc_nav ul:last-of-type li:hover {
    transform: inherit;
}
#pc_nav ul:last-of-type li:hover a {
    background: #00aa3e;
}

/* ---------------------------------------------------------------------------------------------*/

.slide-in {
	overflow: hidden;
    display: inline-block;
}

.slide-in_inner {
	display: inline-block;

}

/*左右のアニメーション*/
.leftAnime{
    opacity: 0;/*事前に透過0にして消しておく*/
}

.slideAnimeLeftRight {
	animation-name:slideTextX100;
	animation-duration:3s;
	animation-fill-mode:forwards;
    opacity: 0;
}

@keyframes slideTextX100 {
  from {
	transform: translateX(-100%); /*要素を左の枠外に移動*/
        opacity: 1;/*0でも可*/
  }

  to {
	transform: translateX(0);/*要素を元の位置に移動*/
    opacity: 1;
  }
}

.slideAnimeRightLeft {
	animation-name:slideTextX-100;
	animation-duration:3s;
	animation-fill-mode:forwards;
    opacity: 0;
}


@keyframes slideTextX-100 {
  from {
	transform: translateX(100%);/*要素を右の枠外に移動*/
    opacity: 1;/*0でも可*/
  }

  to {
	transform: translateX(0);/*要素を元の位置に移動*/
    opacity: 1;
  }
}


/* ----------------------------------------------------------------------*/
.cms_1-a {
    background-color: #fff;
    border: 1px solid #727272;
    padding: 35px;
}
#contents2 .contents2_bg::after {
    content: "";
    display: inline-block;
    position: absolute;
    z-index: -1;
    top: -10px;
    right: 0;
    width: 65%;
    height: calc(100% + 20px);
    background-color: #fff;
    border: 1px dashed #004cb4;
    border-right: 0;
}
@media(max-width: 768px) {
    #contents1 .kazari2 {
    left: -4%;
    bottom: 0;
}
#contents2 .kazari {
    bottom: -218px;
    left: -3%;
}
#main_img h2 {
    width: 75%;
}
#fix_bnr {
    width: 154px;
    right: auto;
    left: 10px;
}
#main_img:after {
    border-width: 300px 0 0 600px;
}
}

@media(max-width: 667px) {
#page_title h2.animStart {
    font-size: 5.7vw;
}
#contents1 .kazari2, #contents1 .kazari, #contents2 .kazari {
    width: 150px;
}
#contents2 .kazari {
    bottom: inherit;
    left: 76%;
    top: -100px;
    z-index: 2;
}
#fix_bnr {
    width: 114px;
}
#logo {
    max-width: 167px;
}
#top_info h2 {
    font-size: 16px;
    letter-spacing: 10px;
}
.cms_1-a {
    padding: 10px 0px;
}
#main_img:after {
    border-width: 200px 0 0 300px;
}
#intro:before {
    top: -127px;
    border-width: 127px 0 0 400px;
}
#sp_nav nav {
    width: 317px;
}
}