﻿@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&family=Noto+Serif+JP:wght@200..900&display=swap');
/* 1536 , 1530 × 735 ,1366 *//* 上記画面幅でも崩れていないか確認 */

/* 修正した場合→各項目の一番下に日付をコメントアウトして追記 */




/*■■　ALL　■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/


/* color */
.txt_color_nomal, .hvr_txt_color_nomal:hover{color: var(--black);}
:root{
    --color1: #0a2d51; 
    --color2: #f3feff; 
    --color3: #4cbad8; 
    --color4: #edebc5; 
    --black: #151a1e; 
	--linkStyle:#1876e8;
}

.txt_red, .hvr_txt_red:hover{color: #C12326;}
.txt_gray, .hvr_txt_gray:hover{color: #ccc}
.txt_color1, .hvr_txt_color1:hover{color: var(--color1)} /* メインカラー */
.txt_color2, .hvr_txt_color2:hover{color: var(--color2)} /* サブカラー */
.txt_color3, .hvr_txt_color3:hover{color: var(--color3)} /* アクセントカラー1 */
.txt_color4, .hvr_txt_color4:hover{color: var(--color4)} /* アクセントカラー2 */

/* background-color */
.bg_black, .hvr_bg_black:hover{background-color: var(--black)} /* 黒背景 */
.bg_gray, .hvr_bg_gray:hover{background-color: #ccc}
.bg_color1, .hvr_bg_color1:hover{background-color: var(--color1)} /* メインカラー */
.bg_color2, .hvr_bg_color2:hover{background-color: var(--color2)} /* サブカラー */
.bg_color3, .hvr_bg_color3:hover{background-color: var(--color3)} /* アクセントカラー1 */
.bg_color4, .hvr_bg_color4:hover{background-color: var(--color4)} /* アクセントカラー2 */
.bg_color_clear, .hvr_bg_color_clear:hover{background-color: transparent!important}

/* border-color ※!important */
.border_black, .hvr_border_black:hover{border-color: var(--black)}
.border_gray, .hvr_border_gray:hover{border-color: #ccc}
.border_color1, .hvr_border_color1:hover{border-color: var(--color1)}
.border_color2, .hvr_border_color2:hover{border-color: var(--color2)}
.border_color3, .hvr_border_color3:hover{border-color: var(--color3)}
.border_color4, .hvr_border_color4:hover{border-color: var(--color4)}


.linkStyle{
	color:var(--color1);
}
.linkStyle:hover{
	color:var(--color1);
	opacity: 0.7;
	transition: all 0.5s;
}

.point_no{
    pointer-events: none;
}

body {
    font-size: 16px;
}

.en, .font_en{
    font-family: "Lato", sans-serif;
}
.jp, h1, h2, h3, h4, h5, h6, #main_menu ul li a, .blur span.contents2_txt, .cms_title::before, .banner, .title  {
    font-weight: normal !important;
    font-family: "Noto Serif JP", "游明朝", "YuMincho", "ＭＳ Ｐ明朝", "MS PMincho","ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "Sawarabi Mincho", "serif" !important;
}

#logo{
    max-width: 250px;
}
.banner{
    display: none !important;
}


/*nav*/

.fat-nav li {
    font-size: 16px;
    }
    
    /*header*/
    .link_box ul{
        justify-content: center;
        gap: 16px;
    }
    
/* fix_bnr ---------------------------------------------------------------------------------------------*/
#fix_bnr {
    bottom: 0;
    right: 50px;
    z-index: 10;
    width: 37%;
    max-width: 330px;
    margin: auto;
    transition: opacity 0.8s, transform 0.8s;
    opacity: 0;
    transform: translateY(20px); 
    pointer-events: none; 
}

.is-visible {
    opacity: 1 !important;
    transform: translateY(0) !important;
    pointer-events: auto !important; 
}

#fix_bnr:hover{
    opacity: 0.7 !important;
}



/* ---------------------------　タブレット　-------------------------- */
@media screen and (max-width: 768px){
    #logo {
        max-width: 130px;
    }
    #loading img{
        width: 150px;
    }
    /*footer*/
        footer .link_box li {
        max-width: 30px;
    }
        .footer_back .f_before {
            top: 48%;
        }
        .link_box ul {
        justify-content: center;
        gap: 16px;
    }
    
}

/* --------------------------　スマホ　-------------------------- */
@media screen and (max-width: 667px){
    #logo {
        max-width: 100px;
    }
    
/*fix_bnr*/
#fix_bnr {
width:80%;
right:0;
left:0;
}
}



/*■■　FV　■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/
#main_img .main1{
    width: 60%;
    max-width: 750px;
    top: 45%;
    left: 6%;
    transform: translate(0, -50%);
    z-index: 2;
}
#main_img .main2{
    width: 40%;
    max-width: 500px;
    left: 6%;
    bottom: 10%;
    z-index: 3;
}
#main_img .main3{
    bottom: -1px;
    right: 0;
    width: 30%;
    max-width: 250px;
    z-index: 3;
}
/*wave*/
.wave-visual {
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100px; 
    z-index: 2;
}
.wave {
    bottom: 0;
    left: 0;
    width: 100%;
    height: auto;
    transform-origin: bottom center;
}

.wave1 {
    opacity: 0.1;
    animation: fluid-motion 10s ease-in-out infinite;
    mix-blend-mode: overlay;
}

.wave2 {
    opacity: 0.2;
    animation: fluid-motion 7s ease-in-out infinite -2s;
    mix-blend-mode: screen;
}

.wave3 {
    opacity: 0.3;
    animation: fluid-motion 13s ease-in-out infinite -5s;
    mix-blend-mode: overlay;
}

@keyframes fluid-motion {
    0%, 100% {
        transform: scale(1, 1) translateY(0);
    }
    33% {
        transform: scale(1.05, 1.2) translateY(-2px); 
    }
    66% {
        transform: scale(1, 1.01) translateY(2px); 
    }
}

@keyframes fluid-motion-sp {
    0%, 100% {
        transform: scale(1, 1) translateY(0);
    }
    33% {
        transform: scale(1.05, 1.1) translateY(-2px); 
    }
    66% {
        transform: scale(1, 1.01) translateY(2px); 
    }
}
/* ---------------------------　タブレット　-------------------------- */
@media screen and (max-width: 768px){
#main_img img.object_fit_img {
    min-height: 60vh;
}
#main_img .main1 {
    width: 63%;
    top: 40%;
}

#main_img .main2 {
    width: 47%;
    bottom: 5%;
}
#main_img .main3 {
        max-width: 200px;
}


}

/* --------------------------　スマホ　-------------------------- */
@media screen and (max-width: 667px){
        #main_img img.object_fit_img {
        min-height: 130vw;
    }
    
    #main_img .main1 {
    width: 80%;
    top: 20%;
    transform: translate(0, 0);
    }
    #main_img .main2 {
        width: 60%;
    }
    #main_img .main3{
        width: 33%;
    }
    /*wave*/
    .wave {
        width: 280%;
        left: -25%; 
    }

.wave1 {
        animation: fluid-motion-sp 10s ease-in-out infinite;
    }
    .wave2 {
        animation: fluid-motion-sp 7s ease-in-out infinite -2s;
    }
    .wave3 {
        animation: fluid-motion-sp 13s ease-in-out infinite -5s;
    }
    
}



/*■■　TOP　■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/
.blur {
    background-color: rgba(49, 47, 47, 0.1);
}
#contents1 .text, #contents2 .text, #contents3 .text {
    font-weight: normal;
}
.title{
    padding-bottom: 10px;
}
#contents2 .title::first-letter,#contents3 .title::first-letter{
    font-size: 100%;
}
#contents1 .title{
    border-left: none;
}
#contents1 .title:before{
    display: none;
}
#contents1 .title > div {
    padding-left: 0;
}
#contents1 .title {
    font-size: 40px;
}
/* ---------------------------　タブレット　-------------------------- */
@media screen and (max-width: 768px){
#contents1 {
    padding:30px;
}
#contents1 .title {
    font-size: 30px;
}
}

/* --------------------------　スマホ　-------------------------- */
@media screen and (max-width: 667px){
#contents1 .title {
    font-size:24px;
}
}



/*■■　下層ページ　■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/
.cate_list li a {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    padding: 10px;
}

#page_title .title_img{
    height: 200px;
}
#page_title .title_img::before {
    display: none;
}
/*------------- 施工事例 -------------*/

#cms_2-a .width_50per{
    width:48% !important;
}

#cms_2-a .box_img1 {
  display: inline-block;
}

#cms_2-a .img1::before {
  content: 'before'; 
  position: absolute;
  top: 0;
  left: 0;
  background: var(--color1); 
  color: #fff; 
  font-size: 16px;
  padding: 3px 8px;
  border-radius: 0 0 10px 0;
  font-weight: bold;
}
#cms_2-a .img2::before {
  content: 'after'; 
  position: absolute;
  top: 0;
  left: 0;
  background: var(--color3); 
  color: #fff; 
  font-size: 16px;
  padding: 3px 8px;
  border-radius: 0 0 10px 0;
  font-weight: bold;
}

/*お問い合わせ*/
#tel_txt .title{
    color:var(--color1) !important;
}

.form_wrap input, .form_wrap textarea {
    background-color: 
color-mix(in srgb, var(--color2) 80%, #fff) !important;
}
.form_wrap #submit input {
    background-color: var(--color1) !important;
}


/* ---------------------------　タブレット　-------------------------- */
@media screen and (max-width: 768px){
#page_title .title_img {
    height: 100px;
}
}

/* --------------------------　スマホ　-------------------------- */
@media screen and (max-width: 667px){
/*お問い合わせ*/
    .contact_btn span {
        padding: 20px 10px 20px 40px;
    }
}


