﻿
/* ---------- font ---------- */

@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@100..900&display=swap');

:root{
    --font-en: 'Outfit', 'Zen Kaku Gothic New', "游ゴシック Medium", "游ゴシック体", "Yu Gothic Medium", YuGothic,"ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic",  sans-serif;
}

.cms1_title h2, .cms_title  h2, .font_en, a[href^="tel:"]{
    font-family: var(--font-en);
    font-weight: 500;
}




/* ---------- color ---------- */
.border_color2, .hvr_border_color2:hover {
    border-color: #8895a3;
}
.page_title_bg {
    background-color: #04273d;
}

#top_info .contact_bt a {
    background-color: var(--color4);
    border-color: var(--color4);
    color: var(--normal);
}
#top_info .contact_bt a:hover {
    background-color: #fff;
    border-color: var(--normal);
}
.top_link_bg{
    background-color: #1a3d71;
}




/* ---------- all ---------- */
html, body {
    font-size: 18px;
}
#wrap{
    min-width: 1200px;
}
.nav_tel,.foot_tel {
    display: none;
}
#logo {
    top: 41px;
    left: 50px;
    z-index: 2;
}
.bg_base {
    background-color: #ffffff;
}
.width_1280-max {
    width: 100%;
    max-width: 1500px;
}
#head_contact a {
    transition: color 0.3s;
    background-color: var(--color4);
    color: var(--normal);
    
}
#menu_bt {
    background-color: #002591;
}

/* ---------- top ---------- */
#main_img{
    overflow: hidden;
     height: 47vw;
}
#main_img:before{
    display: inline-block;
    content: "";
    width: 100%;
    height: 100%;
    background: rgb(0 0 0 / 11%);
    position: absolute;
    bottom: 0;
    right: 0;
    left: 0;
    margin: auto;
}
#main_img .main_txt{
    opacity: 0;
    transform: translate(0%, 0%) scale(1.05);
}
#main_img .main_txt.active{
    opacity: 1;
    transform: translate(0, 0);
}

.fv_img img{
    object-fit: cover;
    height: 100%;
}
.fv_item1 {
    width: min(40%, 1000px);
    bottom: -63px;
    right: 3%;
}
.fv_txt1 {
    width: min(58%, 1200px);
    top: 32%;
    left: 3%;
}
.fv_txt2{
    width: min(27%, 500px);
    top: 66%;
    left: 4%;
}
#top_intro .intro_img {
    border-radius: 0 20px 20px 0;
    max-height: 72vh;
    margin-top: -38px;
}
#top_con .modal_bt {
    border-radius: 12px;
    margin: 10px;
}
#top_link .top_link_title {
    font-size: clamp(40px, 3vw, 65px);
}
#top_intro .intro_title1 {
    height: 25vw;
    font-size: clamp(20px, 2.5vw, 42px);
    transform: translateX(0rem);
}
#top_con h3.con_title {
    font-size: clamp(20px, 2.5vw, 42px);
    line-height: 1.4;
}
#top_con .number, #top_con .modal_txt_wrap .border_so5-l   {
    color: var(--color4);
}
#top_con .top_about{
    opacity: 1;
}
#top_link .top_link_title {
    background-image: url(../img/item1.png);
    background-position: top center;
    background-size: 127px;
    background-repeat: no-repeat;
    padding-top: 163px;
    margin-top: -77px;
}

.cms_title p {
    opacity: 1;
    font-size: 27px;
    font-weight: 600;
    padding-top: 29px;
    line-height: 1;
}
#top_cms .cms_box .cms_title p::before {
    top: 26px;
}
.cms1_title h2, .cms_title  h2 {
    font-size: clamp(30px, 7vw, 120px);
}
#top_cms .cms_box:nth-of-type(2){
    position: relative;
    margin-bottom: -124px;
}
#top_cms .cms_box:nth-of-type(2)::before {
    position: absolute;
    content: "";
    width: 100%;
    height: 50px;
    left: 0;
    top: -1px;
    background-image: url(../img/bg1.png);
    background-size: 100% 100%;
    z-index: 0;
}



/* ---------- under ---------- */
#cms_2-g .box_title1 {
    font-size: 25px;
    font-weight: 600;
    line-height: 1.3;
}
.cate_title,.box_title1{
    font-weight: 600;
}
.contact_btn span {
    padding: 1em 2em 1em 4em!important;
}
.contact_btn_wrap .contact_btn .editBtn1 a{
    font-size: 21px!important;
}
.contact_btn_wrap .icon {
    left: 26px!important;
}



/* ---------- 1314px ---------- */
@media screen and (max-width: 1314px){
#pc_nav li a{
    font-size: 16px;
    padding: 16px;
}
}

/* ---------- tablet ---------- */
@media screen and (max-width: 768px){
html, body {
    font-size: 16px;
}
#wrap{
    min-width: 100%;
}
.width_1280-max {
    width: 100%;
    max-width: 100%;
}

#main_img {
    height: 100svh;
}
.fv_img{
    height: 100svh;
}
.fv_txt1 {
    width: 90%;
    top: 37%;
    left: 3%;
}
.fv_txt2 {
    width: 51%;
    top: 57%;
    left: 4%;
}
.fv_item1 {
    width: 55%;
    bottom: 0;
    right: -2%;
    z-index: 2;
}


#cms_2-g .box_title1{
    font-size: 23px;
}
#top_intro .intro_title1 {
    height: 300px;
    font-size: 30px;
    transform: translateX(-11px);
}
#top_link .top_link_title {
    font-size: 32px;
}
.top_link_box  .grid_5_tb {
    width: 49.66667% !important;
}
#top_cms .cms_box .cms_title p::before {
top: -12px;
}
.cms1_title h2, .cms_title h2 {
    font-size: 89px;
}
.cms_title p {
    opacity: 1;
    font-size: 22px;
    font-weight: 600;
    padding-top: 29px;
    line-height: 1;
}

}

/* ---------- mobile ---------- */
@media screen and (max-width: 667px){
.contact_btn_wrap .icon{left: 1.5em!important;width: 1.7rem!important;top: 46%;width: 1.5rem;}
.contact_btn span{padding: 1em 1em 1em 2em!important;}
#menu_nav .main_page_link li {
    font-size: 16px;
}

#head_contact a::before {
    width: 100% !important;
    height: 100%;
    background-color: var(--color4);
    opacity: 1;
    left: 0;
    z-index: 1;
}
#head_contact a {
    color: var(--normal) !important;
    font-weight: bold;
}
#logo {
    top: 23px;
    left: 25px;
    z-index: 2;
}
.fv_txt1 {
    width: 90%;
    top: 25%;
    left: 3%;
}
.fv_txt2 {
    width: 61%;
    top: 57%;
    left: 4%;
}
.fv_item1 {
    width: 77%;
    bottom: 0;
    right: -21%;
    z-index: 2;
}
#cms_2-g .box_title1{
    font-size: 20px;
}
#top_intro .intro_title1 {
    height: inherit;
    font-size: 26px;
    transform: none;
}
#top_link .top_link_title {
    font-size: 30px;
}
.top_link_box  .grid_5_tb {
        width: 100% !important;
    }
#top_link .top_link_title {
    background-image: url(../img/item1.png);
    background-position: top 34px center;
    background-size: 93px;
    background-repeat: no-repeat;
    padding-top: 163px;
    margin-top: -77px;
}
#top_con .con_about {
    font-size: 50px;
    margin-bottom: 33px;
}
.cms1_title h2, .cms_title h2 {
    font-size: 53px;
}
.cms_title p {
    opacity: 1;
    font-size: 17px;
    font-weight: 600;
    padding-top: 5px;
    line-height: 1;
}
.contact_btn_wrap .contact_btn .editBtn1 a {
    font-size: 14px !important;
letter-spacing: 0;
}
.contact_btn_wrap .icon {
    left: 18px !important;
}
}







