﻿:root {
    --color1: #0066b9;
    --color3: #f6d937;
    --linkStyle: #0066b9;
    --color2: #b5b8c1;
    --color2: #ededed;
}

#wrap{
    min-width: 1280px;
}

strong{
        font-size: 1.4em;
    margin-bottom: -0.5em;
    display: block;
}

nav#pc_nav{
    font-weight: bold;
}

.load_logo figure {
    max-width: 220px;
}

nav#pc_nav li.grid_3{
    max-width: 190px;
}

#logo2{
    max-width: 150px;
}

/*--top start--*/

#main_img::before {
    content: "";
    display: inline-block;
    position: absolute;
    z-index: 1;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 0.85;
    background-color: #0066b9;
}

#header ul.grid_2 {
    background-color: var(--color3);
}

#header ul.grid_2 li .txt_white{
    color: black;
}

#main_img .en{
    height: 100%;
    z-index: 1;
    position: absolute;
    width: 100%;
}

#main_img .en img{
        position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0.92) rotate(0deg);
    opacity: 0.25;
    animation: rotate 300s linear infinite;
}

@keyframes rotate {
    0% { transform: translate(-50%, -50%) scale(0.92) rotate(0deg);}
  100% { transform: translate(-50%, -50%) scale(0.92) rotate(360deg);}
}

#main_img .txt h2{
        font-feature-settings: "palt";
}

#main_img .txt h2 div span > span{
        color: #70e5f3;
    font-size: 3.5vw;
}

#header div.inner{
    max-width: 960px;
    /*margin-left: 30px !important;*/
}

#header div.inner nav#pc_nav div.grid_9 li{
    padding-right: 1.5em;
}

.hito{
        position: absolute;
    z-index: 1;
    width: 49.5%;
    left: 67.5%;
    top: calc(120px + 68%);
    transform: translate(-50%, -50%);
    filter: drop-shadow(60px 20px 0px rgba(26, 111, 180, 0.5)) drop-shadow(30px 10px 0px rgba(168, 241, 241, 0.3));
    min-width: 820px;
}

#main_img .txt {
    z-index: 10;
    top: 35%;
    left: 11vw;
}

#intro:before{
        content: "";
    display: block;
    width: 100%;
    height: max(40vw, 100%);
    position: absolute;
    top: 35vw;
    left: 45%;
    background-image: url(/files/img/hito3.png);
    background-position: bottom right;
    background-repeat: no-repeat;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    background-size: contain;
    pointer-events: none;
    z-index: 1;
}

div.info_txt h3{
    font-weight: bold;
}

#main_img h2 {
    font-size: min(72px, 4.4722222222vw);
}

div.ani{
        z-index: 1;
    position: absolute;
    width: 100%;
    height: 100vh;
}

.ani img:first-child, .ani img:nth-child(4){
    width: 25%;
    top: 0%;
    position: absolute;
    z-index: 0;
}

@keyframes sitaue {
    0% { top: 100%;}
  100% { top: 0%;}
}

.ani img:nth-child(2), .ani img:nth-child(5){
    width: 20%;
    top: 20%;
    position: absolute;
    z-index: 0;
    left: 30%;
}

.ani img:nth-child(3), .ani img:nth-child(6){
        width: 20%;
    top: 40%;
    position: absolute;
    z-index: 0;
    left: 3%;
}

.ani img {
        position: absolute;
        /* 基本のスタート位置はすべて「画面の下」にしておきます */
        top: 100%; 
        opacity: 0;
        
        /* 12秒かけて下から上へ抜ける */
        animation: slideUp 36s linear infinite;
        
        box-shadow: 0 4px 6px rgba(0,0,0,0.3);
    }

    /* --- アニメーション定義 --- */
    @keyframes slideUp {
        0% {
            top: 100%;      /* スタート：画面下 */
            opacity: 0;
        }
        5% {
            opacity: 1;     /* 出現 */
        }
        90% {
            opacity: 1;
        }
        100% {
            top: -60%;      /* ゴール：画面上へ抜ける */
            opacity: 0;
        }
    }

    /* --- 位置の指定 (元のレイアウトを維持) --- */
    
    .ani img:first-child, .ani img:nth-child(4) {
        width: 25%;
        left: 10%;
        z-index: 0;
    }

    .ani img:nth-child(2), .ani img:nth-child(5) {
        width: 20%;
        left: 40%;
        z-index: 0;
    }

    .ani img:nth-child(3), .ani img:nth-child(6) {
        width: 20%;
        left: 70%;
        z-index: 0;
    }

    /* --- 【重要】タイミングの調整 --- */
    /* 全体12秒。2秒間隔で動かす設定 */

    /* img1: 一番上にいたいので、アニメーションの後半(-6秒)からスタート */
    .ani img:nth-child(1) { animation-delay: -18s; }

    /* img2: 真ん中にいたいので、中盤(-4秒)からスタート */
    .ani img:nth-child(2) { animation-delay: -12s; }

    /* img3: 下にいたいので、序盤(-2秒)からスタート */
    .ani img:nth-child(3) { animation-delay: -6s; }

    /* img4以降: 通常通り画面下から順番に出てくる */
    .ani img:nth-child(4) { animation-delay: 0s; }
    .ani img:nth-child(5) { animation-delay: 6s; }
    .ani img:nth-child(6) { animation-delay: 12s; }

/*--top end--*/

#page_title::before {
    background: rgba(0, 0, 0, 0.15);
}

.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: 1px;
    left: 0;
    width: 15px;
    height: 15px;
    border: 1px solid #9e9e9e;
    border-radius: 50%;
}
.radio_wrap .radio-input:checked + label::after {
    content: "";
    display: block;
    position: absolute;
    top: 4px;
    left: 3px;
    width: 11px;
    height: 11px;
    background: #4690a1;
    border-radius: 50%;
}

div.con_box2 a{
        max-width: 400px;
}

.con_box2{
    padding-bottom: 20px;
}

div.cate_title.bg_color3 {
    color: black;
}

#cms_5-f .cate_box .open_bt .box_title1, .cms_5-f .cate_box .open_bt .box_title1 {
    margin-left: 45px;
}

#cms_5-f .cate_box .open_bt .box_title1::before, .cms_5-f .cate_box .open_bt .box_title1::before {
    display: none;
}

#sp_nav a.active {
    border-bottom: 1px solid var(--color3);
}

#sp_nav li a{
        letter-spacing: 0.1em;
        
}

#sp_nav li.mg_t-20px{
    display: none;
}

#sp_nav li a.mg_t-20px{
        text-align: center;
        display: none;
}

.tel_bt, .mail_contact_tel{
    display: none;
}

.men{
    top: 70%;
    left: -10px;
    max-width: 60px;
    transition: all 0.3s;
}

.men:hover{
    left: 0px;
}

#top_cms{
    position: relative;
}

#top_cms:after{
    content: "";
    display: block;
    width: 100%;
    height: 42.5%;
    position: absolute;
    top: 70%;
    left: 62.5%;
    background-image: url(/files/img/hito4.png);
    background-position: bottom left;
    background-repeat: no-repeat;
    -webkit-transform: translate(-50%, 0%);
    transform: translate(-50%, 0%);
    background-size: contain;
    pointer-events: none;
}

/* ---------- カスタム ---------- */
@media screen and (max-width: 1280px){
    #intro:before {
    height: 100%;
    top: 70%;
    left: 50%;
}
}

/* ---------- タブレット ---------- */
@media screen and (max-width: 768px){
#wrap {
    min-width: 100%;
}

#main_img .txt {
    top: 12.5%;
}

#main_img h2 {
    font-size: 50px;
}

.hito {
    min-width: 80%;
            left: 50%;
}

#intro:before {
        top: 55%;
        left: 45%;
        background-size: 20%;
    }

#main_img::before {
    opacity: 0.9;;
}

#main_img .en {
    width: 110%;
    top: 70%;
    left: 50%;
    transform: translate(-50%, -50%);
}

div.ani{
    display: none;
}

}

/* ---------- スマートフォン ---------- */
@media screen and (max-width: 667px){
#main_img h2 {
        font-size: 36px;
}
    
#main_img .txt {
    top: 12.5%;
    width: 100% !important;
    left: 5vw;
}

#main_img {
    height: 650px !important;
}

#main_img .txt h2 div span > span {
    font-size: 28px;
}

#logo2 {
    max-width: 120px;
}

strong {
    font-size: 1.3em;
}

#main_img .txt > div {
    letter-spacing: -0.01em;
}

#page_title h2 {
    letter-spacing: -0.05em;
}

#top_cms:after {
    content: "";
    display: block;
    width: 100%;
    height: 32.5%;
    position: absolute;
    top: 75%;
    left: 55.5%;
    background-image: url(/files/img/hito4.png);
    background-position: bottom left;
    background-repeat: no-repeat;
    -webkit-transform: translate(-50%, 0%);
    transform: translate(-50%, 0%);
    background-size: contain;
    pointer-events: none;
    z-index: 2;
}

}