﻿/* 1536 , 1530 × 735 ,1366 *//* 上記画面幅でも崩れていないか確認 */

/* 修正した場合→各項目の一番下に日付をコメントアウトして追記 */



@charset "utf-8";
/*■■　ALL　■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/
header.scr_header {
    background-color: rgb(255 255 255 / 85%);
    
}

header #logo img {
    max-width: 140px;
}

.menu-trigger-bar {
    background-color: var(--color1) !important;
}

.overlay-menu .overlay-img {
    background-position: right center;
    opacity: 0.6;
    background-size: cover;
}

#main_img,#wrap {
    min-width: 1280px;
}

.fix_banner a {
    background-color: var(--color5);
}

.fix_banner .hvr_bg_color3:hover {
    background-color: #7575a5;
}

footer #footer_info {
    background-color: #161539;
}


/* ---------------------------　タブレット　-------------------------- */
@media screen and (max-width: 768px){
    #main_img,#wrap {
        min-width: 100%;
    }


}

/* --------------------------　スマホ　-------------------------- */
@media screen and (max-width: 667px){
    
    #loading .kvArea .img_box img {
        max-width: 80%;
        height: auto;
    }

    header #logo img {
        max-width: 100px;
    }
    
    .overlay .overlay-nav .top .jp {
        font-size: 16px !important;
    }
    
      .intro_title1 {
        font-size: max(2.5vw, 24px);
    }
}



/*■■　FV　■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/
#header #pc_nav ul a {
    color: var(--color1);
}

#main_img {
    height: 100vh;
}

#main_img > img {
    bottom: 0%;
    position: absolute;
    }
    
.copy {
    width: 28vw;
    max-width: 600px;
    min-width: 340px;
    left: 50%;
    transform: translate(-50%, -50%);
    top: 36%;
    z-index: 5;
}

.fv_img1 {
    width: 23vw;
    max-width: 450px;
    min-width: 300px;
    left: 3%;
    top: 7%;
}

.piece-1 {
            animation: float_pattern_1 7.5s infinite ease-in-out alternate;
            animation-delay: -1.2s;
        }

.fv_img2 {
    width: 27vw;
    max-width: 520px;
    min-width: 330px;
    left: 9%;
    bottom: -1%;
    z-index: 2;
}

.piece-2 {
            animation: float_pattern_3 8.5s infinite ease-in-out alternate;
            animation-delay: -0.8s;
        }

.fv_img3 {
    width: 27vw;
    max-width: 520px;
    min-width: 330px;
    right: 1%;
    top: 10%;
}

.piece-3 {
            animation: float_pattern_2 9.5s infinite ease-in-out alternate;
            animation-delay: -3.5s;
        }

.fv_img4 {
    width: 26vw;
    max-width: 470px;
    min-width: 330px;
    right: 5%;
    bottom: 1%;
}

.piece-4 {
            animation: float_pattern_4 10.5s infinite ease-in-out alternate;
            animation-delay: -5.5s;
        }

.human {
    width: 40vw;
    max-width: 700px;
    min-width: 500px;
    left: 50%;
    bottom: 9%;
    z-index: 5;
}

.anim_type1 {animation: type1 4s infinite ease-in-out alternate;}
@keyframes type1 {
	0%   { transform: translate(-50%, 0); }
  50%  { transform: translate(calc(-50% + 5px), -15px); } /* 右上にふわっと上がる */
  100% { transform: translate(calc(-50% - 3px), -5px); } /* 左下に少し戻る */
  /* alternateがあるので、この後 100% -> 50% -> 0% と滑らかに戻ります */
}

/* パターン1: 垂直移動メイン、傾き最小限 */
@keyframes float_pattern_1 {
    0% { transform: translate(0, 0) rotate(0deg); }
    50% { transform: translate(8px, -18px) rotate(1.2deg); }
    100% { transform: translate(-4px, -8px) rotate(-0.8deg); }
}

/* パターン2: ゆったりとした移動、傾き最小限 */
@keyframes float_pattern_2 {
    0% { transform: translate(0, 0) rotate(0deg); }
    50% { transform: translate(-12px, 12px) rotate(-1.5deg); }
    100% { transform: translate(4px, -4px) rotate(0.5deg); }
}

/* パターン3: 横移動を少し混ぜつつ、傾き最小限 */
@keyframes float_pattern_3 {
    0% { transform: translate(0, 0) rotate(0deg); }
    50% { transform: translate(12px, 8px) rotate(1.5deg); }
    100% { transform: translate(-8px, 18px) rotate(-1deg); }
}

        /* パターン4: 上下動メイン、傾き最小限 */
@keyframes float_pattern_4 {
    0% { transform: translate(0, 0) rotate(-1deg); }
    50% { transform: translate(-6px, -12px) rotate(1.2deg); }
    100% { transform: translate(6px, -4px) rotate(-0.5deg); }
}

/* ---------------------------　タブレット　-------------------------- */
@media screen and (max-width: 768px){
    #main_img {
        height: 80vh;
        min-height: 720px;
    }
    
    #main_img > img {
        width: auto;
        height: 80vh;
        min-height: 720px;
    }
    
    .copy {
        width: 53vw;
        min-width: 370px;
        top: 48%;
        z-index: 2;
    }
    
    .fv_img1 {
        width: 38vw;
        min-width: 260px;
        left: -2%;
        top: 7%;
    }

    .fv_img2 {
        width: 47vw;
        min-width: 310px;
        left: -5%;
        bottom: -2%;
    }
    
    .fv_img3 {
        width: 47vw;
        min-width: 310px;
        right: -3%;
        top: 5%;
    }
    
    .fv_img4 {
        width: 42vw;
        min-width: 280px;
        right: -3%;
        bottom: -7%;
    }
    
    .human {
        width: 68vw;
        min-width: 420px;
        left: 50%;
        bottom: 3%;
    }
}

/* --------------------------　スマホ　-------------------------- */
@media screen and (max-width: 667px){
    #main_img {
        height: 80vh;
        min-height: 530px;
        max-height: 600px;
    }
    
    #main_img > img {
        width: auto;
        height: 80vh;
        min-height: 530px;
        max-height: 600px;
    }
    .copy {
        width: 70vw;
        min-width: 250px;
        top: 47%;
        z-index: 3;
    }
    
    .fv_img2 {
        width: 40vw;
        min-width: 200px;
        left: -10%;
        bottom: -1%;
    }
    
        .fv_img3 {
        width: 54vw;
        min-width: 200px;
        right: -10%;
        top: 5%;
    }
    
    .human {
        width: 75vw;
        min-width: 270px;
        left: 65%;
        bottom: 10%;
    }
    
    .scroll_d > span {
        background-color: #1a1a1a;
    }
}

@media screen and (max-width: 320px){
    .copy {
        width: 67vw;
        min-width: 190px;
        top: 46%;
    }
    
    .fv_img3 {
        width: 54vw;
        min-width: 180px;
        right: -7%;
        top: 5%;
    }
    
    .fv_img2 {
        width: 60vw;
        min-width: 170px;
        left: -10%;
        bottom: -3%;
    }

}



/*■■　TOP　■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/

#main_img .scroll_d > span::before {
    background-color: rgb(20 20 20 / 70%);
}

#intro_wrap .title {
    color: var(--color5);
}

.intro_title1 {
    font-feature-settings: "palt";
    font-size: max(2.5vw, 45px);
}

.top_title {
    height: 370px;
}

.top_title_color {
    background-color: #93908e;
    background-image: url(/Files/img/con_top.png);
    background-size: cover;
    background-repeat: no-repeat;
}

.top_title .title {
    color: var(--color5);
}

.slash:before, .slash:after {
    display: none;
}

.puzzle1 {
    width: 15vw;
    bottom: -29%;
    right: 5%;
}

.puzzle2 {
    width: 15vw;
    top: -50%;
    left: 11%;
}


.cms_title .bar {
    background-color: var(--color1);
}

/* ---------------------------　タブレット　-------------------------- */
@media screen and (max-width: 768px){
    .intro_title1 {
        font-size: max(2.5vw, 30px);
    }
    
    .top_title {
        height: 270px;
    }
    
    .puzzle1 {
        width: 19vw;
        bottom: -23%;
        right: -1%;
    }
    
    .puzzle2 {
        width: 18vw;
        top: -25%;
        left: 16%;
    }
}

/* --------------------------　スマホ　-------------------------- */
@media screen and (max-width: 667px){
    .intro_title1 {
        font-size: max(2.5vw, 24px);
    }
    
    .top_title {
        height: 150px;
    }
    
    .puzzle1 {
        width: 24vw;
        bottom: -28%;
        right: -8%;
    }
    
    .puzzle2 {
        width: 24vw;
        top: -25%;
        left: 16%;
    }
}



/*■■　下層ページ　■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/
#page_title_img {
    background-position: bottom;
}
#scroll .scr {
    color: var(--normal);
}

.scroll_d > span {
    background-color: rgb(41 41 41 / 50%);
}

#page_title_img .scroll_d > span::before {
    background-color: rgb(20 20 20 / 70%);
}

#page_title .jp {
    color: var(--color5);
}

#page_title .jp:before {
    background-color: var(--color5);
}

.flow_type3 .cate{counter-reset: box;}
.flow_type3 .cate_box{counter-increment: box;}
.flow_type3 .box_item{padding-top: 60px;}
.flow_type3 .box_title1{z-index: 0}
.flow_type3 .box_title1::before, .flow_type3 .box_title1::after{
	position: absolute;
	content: "";
	display: block;
	pointer-events: none
}
.flow_type3 .box_title1::before {
	content: "0"counter(box);
	font-size: 86px;
	color: #ebebeb;
	left: 0;
	top: -70px;
	z-index: -1;
}
.flow_type3 .box_title1::after{
	width: 100%;
	height: 1px;
	bottom: 0;
	left: 0;
	background-color: #222
}
/*-------- スマートフォン --------*/
@media screen and (max-width: 667px){
.flow_type3 .box_title1::before{
	left: auto;
	right: 0;
	top: -50px
}
.flow_type3 .box_item {
    padding-top: 36px;
}
}


#tel_txt .title {
    color: var(--color1) !important;
}

.radio_wrap ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.radio_wrap .radio-input {
  display: none;
}
.radio_wrap .radio-input + label {
  padding-left: 23px;
  position: relative;
  margin-right: 20px;
  cursor: pointer;
}
.radio_wrap .radio-input + label::before {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 15px;
  height: 15px;
  border: 1px solid #9e9e9e;
  border-radius: 50%;
}
.radio_wrap .radio-input:checked + label::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 3px;
  transform: translateY(-50%);
  width: 11px;
  height: 11px;
  background: #4690a1;
  border-radius: 50%;
}
.radio_wrap .radio-input:focus + label::before {
  outline: 2px solid #4690a1;
  outline-offset: 2px;
}


/* ---------------------------　タブレット　-------------------------- */
@media screen and (max-width: 768px){
    #footer_info #logo2 img {
        max-width: 250px;
    }
}

/* --------------------------　スマホ　-------------------------- */
@media screen and (max-width: 667px){
    #page_title_img {
        background-position: 70% 0;
    }
    
    #footer_info #logo2 img {
        max-width: 200px;
    }
}


