﻿/*--------フォント・リンク--------*/
.linkStyle{color: #160a0a; text-decoration: underline;}

@font-face {
    font-family: 'jost';
    font-style: normal;
    font-weight: 400;
    src: url('../Dup/img/jost.woff') format('woff'),
        url('../Dup/img/jost.eot')  format('eot');
    font-display: swap;
}
@font-face {
    font-family: 'NotoSans';
    font-style: normal;
    font-weight: 400;
    src: url('../Dup/img/NotoSans_r.woff') format('woff'),
        url('../Dup/img/Notosans_r.eot')  format('eot');
    font-display: swap;
}
@font-face {
    font-family: 'NotoSans';
    font-style: normal;
    font-weight: 700;
    src: url('../Dup/img/Notosans_bold.woff') format('woff'),
        url('../Dup/img/Notosans_bold.eot')  format('eot');
    font-display: swap;
}

body{font-family: "NotoSans","游ゴシック Medium", "游ゴシック体", "Yu Gothic Medium", YuGothic,"ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;}

#footer_menu ul li a,#copyright .font_en,.fat-nav li a{font-family: "NotoSans", sans-serif;}
#contents_box .con_txt h2{
    font-family: "NotoSans", sans-serif;
    font-size: 2.3em;
    padding: 5px 15px;
    background-color: #ffe100;
    display: inline-block;
    font-weight: bold;
    color: #1c1c1c;
}
#contents3 h3{
    font-family: "NotoSans",sans-serif;
    font-size:1.8em;
    padding: 5px 15px;
}
#page_title .page_box h2{font-family: "NotoSans", sans-serif;}


/*--------全体--------*/
.txt_cap{    text-transform: capitalize;}
header .contact_bt a .fa-envelope:before { content: "\f095";}
header.bg_color4 { background-color: #ffffff;}
.head_box .tel_bt{display:none;}
.add_shadow1{box-shadow: rgba(100, 100, 111, 0.2) 0px 7px 29px 0px;}

.filter,.filter2{
	position: absolute;
	top: 0;
	left: 0;
	z-index: +1;
	width: 100%;
	-webkit-transition:-webkit-transform 1.2s ease-out;
	-ms-transition:-ms-transform 1.2s ease-out;
	transition:transform 1.2s ease-out;
}
.filter{
    background-color: #f5f5f5;
}
.filter2{
    background-color: #005379;
}
.filter.active{
    transition-delay : .3s;
	-webkit-transform: translateX(200%);
	-ms-transform: translateX(200%);
	transform: translateX(200%);
}
.filter2.active{
    transition-delay : .5s;
	-webkit-transform: translateX(200%);
	-ms-transform: translateX(200%);
	transform: translateX(200%);
}

.fadein_right {
    opacity : 0;
    transform: translateX(150px);
	transition: all 0.3s;
	transition-delay : 1s;
}
.fadein_right.active {
    opacity : 1;
    transform : translate(0, 0);
}
main{
    background-color: #f5f5f5;
    overflow: hidden;
}
#loading{
    position: fixed!important;
    width: 100%;
    height: 100%;
    top: 0px;
    left: 0px;
    z-index: 99999;
}
#loading > svg {
  position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: auto!important;
}
.progressbar-text{
    color:#fff!important;
    top: 53%;
    left: 50%;
    transform: translate(-50%, -50%);
}
@media screen and (min-width:769px){
    header.grid_3 {width: 15%!important;}
    .main_box {width: 85%!important;}
    .main_box { margin-left: 15%;}
    .head_box.width_300-max {width: 100%; max-width: none;}
    .head_box{padding-left: 10%;padding-right: 10%;}
    header.pd_t-50px{padding-top: 100px;}
    header .contact_bt{
        position: fixed;
        background-color: #ffe100;
        width: 15%;
        bottom: 0;
        left: 0;
    }
    header .contact_bt a{
        color: #fff;
        border: 0;
        font-size: 1rem;
    }
}
#main_img::before{
    content: "";
    position: absolute;
    display: inline-block;
    background: url(./Dup/img/main_catch.png) no-repeat;
    background-size: contain;
    z-index: 5;
    width: 53%;
    height: 15%;
    left: 30%;
    top: 68%;
    transform: translate(-50%, -50%);
}
#main_menu li{
    position: relative;
    margin-bottom: 30px;
    transition: 0.3s;
}
#main_menu li a{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    color: #fff;
    font-size: 1.1rem;
    font-weight: 700;
    margin-bottom: 0px;
}
#main_menu li span{
    display: block;
    padding-top:25px;
    font-size: 1.05rem;
    color: #fff;
    font-family: 'jost', sans-serif;
}
#main_menu li:hover a,#main_menu li:hover span{
    color: #ffe100;
    transition: 0.3s;
}

header.grid_3 {
    background-color: #005379;
}
.portrait_img{
	display: block;
	overflow: hidden;
	position: relative;
	width: 100%;
	height: 800px!important;
}
.portrait_img img{
	width: 100%;
    height: auto;
	position: absolute;
	top: 50%;
	left: 50%;
	-ms-transform: translate(-50%,-50%);
	-webkit-transform: translate(-50%,-50%);
	transform: translate(-50%,-50%);
}
#contents1{    padding: 7% 3%;}
#contents1 h2{
    font-size: 3.5em;
    letter-spacing: 5px;
    font-weight: bold;
}
#contents1 p{
    font-size: 1.05em;
    letter-spacing: 0.7px;
    line-height: 2;
}
#contents1 .txt3_wrap{
    width: 66%;
    margin-left: 11%;
}
#contents_box .con_txt{
    padding-left: 2%;
}
#contents_box figure{
    margin: 3.5%;
}
#contents_box .d_flex{position:relative;}
#contents2 .d_flex:before,#contents3-1 .d_flex:before,#contents3-2 .d_flex:before{
    content: "";
    display: block;
    width: 53%;
    height: 100%;
    position: absolute;
    background-color: #ffe100;
    top: 0px;
    right: 0px;
    z-index: 0;
}
#contents_box .con_txt p{
    font-size: 1rem;
    line-height: 2;
    letter-spacing: 1.5px;
}



#main_menu{    margin-bottom: 50px;}

#top_cms .cms_title h2{
    font-weight: 700;
}
#top_cms .cms_title p{
    color: #2a2922;
    font-size:1.5em;
    font-weight: 700;
    font-family: 'jost', sans-serif;
}
.footer_cms.txt_color3 {
    color: #141414;
}

.button span,.button i {
  color: #1a1a1a;
  transform-origin: center left;
  transition: color 0.3s ease;
  position: relative;
  z-index: 1;
}
.button em {
  position: absolute;
  height: 1px;
  background: #1a1a1a;
  width: 30%;
  right: 23px;
  top: 50%;
  transform: scaleX(0.4);
  transform-origin: center right;
  transition: all 0.3s ease;
  z-index: 1;
}
.button:before,
.button:after {
  content: '';
  background: #fff;
  height: 50%;
  width: 0;
  position: absolute;
  transition: 0.3s cubic-bezier(0.785, 0.135, 0.15, 0.86);
}
.button:before {
  top: 0;
  left: 0;
  right: auto;
}
.button:after {
  bottom: 0;
  right: 0;
  left: auto;
}
.button:hover:before {
  width: 100%;
  right: 0;
  left: auto;
}
.button:hover:after {
  width: 100%;
  left: 0;
  right: auto;
}
.button:hover span,.button:hover i {
  color: #005379;
}

.button:hover em {
  background: #005379;
  transform: scaleX(1);
}

.more a{
    background-color: #ffe100;
    border: 1px solid #ffe100;
    font-size: 16px;
    font-weight: bold;
}
.foot_tel_bt a{
    background-color: #fff;
    color: #005379;
    position: relative;
}
.foot_tel_bt a:hover{
    background-color: #005379;
    color: #fff;
}
.foot_tel_bt a:hover i{
    color: #fff;
    transition: all 0.5s;
}

.add_contact {
    position: fixed;
    bottom: 62px;
    right: 27px;
    transition: all 0.3s;
    z-index: 99;
}
.add_contact:hover {
    transform: translateY(5px);
    transition: all 0.3s;
}
.add_contact a{
    color: #000;
    background-color: #fff100;
    font-weight: bold;
    border-bottom: 5px solid #ccc100;
    padding: 1.5rem 4rem 1.5rem 4rem;
    border-radius: 15px;
    transition: all 0.3s;
}
.add_contact a:hover {
  margin-top: 5px;
  border-bottom: 2px solid #ccc100;
  transition: all 0.3s;
}


/*--------下層--------*/
#page_title .page_box h2,#page_title .page_box p{
    text-shadow: none;
    font-weight: bold;
}
#page_title .page_box p{
    font-size: 1.9em;
    color: #898989;
    line-height: 0.9;
    font-weight: normal;
}
.subpage article section{
    max-width: inherit!important;
}
.cate_list li a{padding: 10px 10px 10px 10px;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;}
.cate_title{
    position:relative;
    border: 0;
    text-align: center;
    font-size: 2.3em;
    padding-bottom: 50px;
    display: block;
}
.cate_title::after {
    content: '';
    position: absolute;
    bottom: 0px;
    left: 50%;
    transform: translateX(-50%);
    width: 2px;
    height: 40px;
    background-color: #005379;
}
#cms_2-a .cate {
    background: #fff;
    padding: 25px 25px 75px 25px;
    border-radius: 5px;
}
#cms_2-a .cate_box {
    background: #f5f5f5;
    border-radius: 5px;
}
#cms_5-c .box_title1::before,.cms_5-c .box_title1::before {
    top: -6px;
}
#page8 .tel_box{
    position: relative;
    overflow: hidden;
    padding: 20px 20px 15px 20px;
}
#page8 .tel_box > a:before{
    content:"";
    position: absolute;
    width:100vw;
    height:100vh;
    -moz-transform: translateX(-50%) translateY(-50%);
    -webkit-transform: translateX(-50%) translateY(-50%);
    transform: translateX(-50%) translateY(-50%);
    left:50%;
    top:50%;
}
@media screen and (max-width: 1200px){
    #page8 .tel_box p{
        display: block;
        padding-right: 0px;
        margin-right: 0px;
        border-right: none;
        
    }
}

@media screen and (max-width: 667px){  
#page8 .tel_box a{
    font-size: 4.8vw;
    letter-spacing: 2px;    
}
}

.hamburger__icon.bg_color1{    background-color: #ffffff;}
.hamburger.active .hamburger__icon:before, .hamburger.active .hamburger__icon:after{    background-color:#005379;}
/*--------タブレット--------*/
@media screen and (max-width: 768px){
#logo img { width: 90%!important;}
#main_copy{width: 60%!important;}
header.grid_3 {
    padding: 0.95em 0;
}
.main_box {
    padding-top: 73px;
}
#contents1 {
    background-size: 60%;
    background-position: 100% 120%;
}
#contents1 h2 {
    font-size: 5vw;
}
#contents2 .d_flex:before, #contents3-1 .d_flex:before, #contents3-2 .d_flex:before {
    width: 100%;
    height: 44.5vh;
    top: auto;
    bottom: 0;
    right: 0px;
}
#contents_box .con_txt {
    padding: 8% 2% 10%;
}
#contents2 h2 { font-size: 1.4em;}

#contents3 .passing {
    margin-top: -35px;
    margin-left: -10px;
    width: 95%;
}
#contents3 h3 { font-size: 1.4em;}
.add_contact {
    bottom: 76px;
    right: 14px;
}
.add_contact a{
    padding: 1rem 3rem 1rem 3rem;
}
}

/*--------スマートフォン--------*/
@media screen and (max-width: 667px){
    #loading > svg {
    width: 70%!important;
}
.main_box {
    padding-top: 60px;
}
#main_img::before {
    width: 74%;
    height: 19%;
    left: 42%;
    top: 80%;
}
#contents1 {
    padding: 7% 5%;
}
#contents1 h2 {
    font-size: 7vw;
    letter-spacing: 2px;
    line-height: 1.3;
}
#contents_box .con_txt h2 {
    font-size: 5vw;
    letter-spacing: 1px;
}
#contents_box .con_txt {
    padding: 8% 5% 10%;
}

#contents2 .passing {
    margin-bottom: -23px;
    margin-left: -19px;
}
#contents3 .passing {
    margin-top: -20px;
    margin-left: -21px;
    width: 107%;
}
#copyright{padding-bottom:75px;}
.add_contact {
    bottom: 36px;
    right: auto;
    text-align: center;
    width: 100%;
}
.add_contact a{
    padding: 1rem 3.5rem 1rem 3.5rem;
}

.subpage article section {
    padding: 0;
}
#page_title .page_box p {
    font-size: 1.4em;
    line-height: 1.3;
}
.cate_title {
    font-size: 7vw;
}
#cms_2-a .cate_box {
    margin: 10% 0 15%;
}
#cms_5-c .box_title1::before, .cms_5-c .box_title1::before {
    top: -5px;
}

}
@media screen and (min-width: 376px) and (max-width: 767px){
   #contents2 .d_flex:before, #contents3-1 .d_flex:before, #contents3-2 .d_flex:before {
    height: 30vh;
}
}
@media screen and (min-width: 361px) and (max-width: 375px){
   #contents2 .d_flex:before, #contents3-1 .d_flex:before, #contents3-2 .d_flex:before {
    height: 250px;
} 
}
@media screen and (max-width: 360px){
   #contents2 .d_flex:before, #contents3-1 .d_flex:before, #contents3-2 .d_flex:before {
    height: 32vh;
} 
}

/*--------------------------------------------
IE
--------------------------------------------*/
@media all and (-ms-high-contrast:none){
#loading{display:none;}
.cms_1-a figure img{width:100%!important;height:auto!important;}
}

/*------------2025-0918_修正---------------------------------*/
#contents2 .d_flex:before, #contents3-1 .d_flex:before, #contents3-2 .d_flex:before {
    content: "";
    display: none;
}
#contents_box .con_txt p {
    font-size: 1rem;
    line-height: 2;
    letter-spacing: 1.5px;
    padding-bottom: 50px;
}
/*--------タブレット--------*/
@media screen and (max-width: 768px){
#contents_box .con_txt p {
    padding-bottom: 0px;
}
}