﻿@import url('https://fonts.googleapis.com/css2?family=Sawarabi+Gothic&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Zen+Kurenaido&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic&display=swap');

/* -----------------------------------------------------------------------------------------------　all　----------------------------------------------------------------------------------------------------------------- */


/* ----------------------------------------------------------------------------------------------　body　----------------------------------------------------------------------------------------------------------------- */
html {
/*   // ビヨヨン効果を無効化する */
  overscroll-behavior: none　!IMPORTANT;
}

body {
  font-feature-settings: "lnum";
  font-variant-numeric: lining-nums;
}

body {
    overflow: hidden;
    background-color: var(--white);
}

.pagetop {
    z-index: 1;
    background-color: var(--color3) ! IMPORTANT;
}

.shadow {
    border-radius: 10px;
    box-shadow: 0 5px 10px rgb(255 255 255 / 0%);
}


/*--------------------------------疑似要素にオブジェクト--------------------------------*/

#main_img,#con1,#con2 > div,#con2 .topimg3,#con3,#con3 .box_wrap,footer,#topCms,.pagetitle{position: relative;z-index: 0;}
/*リピートなし*/
#main_img:before,#main_img:after,#con1:before,#con1:after,#con2 > div:before,#con2 .topimg3:before,#con3:before,#con3:after,#con3 .box_wrap:before,#con3 .box_wrap:after,#topCms:after,footer:before,footer:after,.pagetitle:before,.pagetitle:after{
content: "";
display: block;
background-size: cover;
background-repeat: no-repeat;
position: absolute;
}
/*--------------------------------疑似要素にオブジェクト--------------------------------*/

/* color -----------------------------------------------------------------------------*/
:root{
    --color1: #5e7eb7;
    --color2: #9ec6f3;
    --color3: #acdbdf;
    --color4: #d7eaea;
    --color5:#ffffff;
    --white:#ffffff;
    --black:#5E6073;
    --gray:#A6AEBF;
    --gradation:repeating-linear-gradient(90deg, #e9ffff, #d0e2f5);
    --gradation2: repeating-linear-gradient(90deg, var(--color2), var(--color3));
}

body,.txt_color_nomal,.hvr_txt_color_nomal:hover{color: var(--black);}
.txt_white,.hvr_txt_white:hover{color: var(--white);}
.txt_color1,.hvr_txt_color1:hover{color: var(--color1);} /* メインカラー */
.txt_color2,.hvr_txt_color2:hover{color: var(--color1);} /* サブカラー */
.txt_color3,.hvr_txt_color3:hover{color: var(--color3);} /* アクセントカラー1 */
.txt_color4,.hvr_txt_color4:hover{color: var(--color2);} /* アクセントカラー2 */
.txt_color5,.hvr_txt_color5:hover{color: var(--color5);} /* アクセントカラー2 */
/* background-color */
.bg_white,.hvr_bg_white:hover{background-color: var(--white)} /* 白背景 */
.bg_black,.hvr_bg_black:hover{background-color: var(--black);} /* 黒背景 */
.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_color5,.hvr_bg_color5:hover{background-color: var(--color5);} /* アクセントカラー2 */
.bg_gradation,.hvr_bg_gradation:hover{background-image: var(--gradation)}
.bg_gradation2,.hvr_bg_gradation2:hover{background-image: var(--gradation2)} /* アクセントカラー2 */

.bg_color_clear,.hvr_bg_color_clear:hover{background-color: transparent!important;}
/* border-color ※!important */
.border_white,.hvr_border_white:hover{border-color: var(--white);}
.hvr_border_black:hover{border-color: var(--black);}
.border_black{border-color: var(--gray);}
.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);}
.border_color5,.hvr_border_color5:hover{border-color: var(--color5);}

.linkStyle{
    color: var(--color1);
    border-bottom:solid 1px;
}

.linkStyle:hover{
	color: var(--color3);
	opacity: 0.7;
	transition: all 0.5s;
}

body#body {
    background: var(--white);
}

/* color -----------------------------------------------------------------------------*/

/* font -----------------------------------------------------------------------------*/
:root {
    --font-jp: "Zen Maru Gothic", sans-serif;
    --font-en: "Zen Kurenaido", sans-serif;
    --font-en2:"Zen Maru Gothic", sans-serif;
}

body{
    font-family: var(--font-jp);
    font-weight: 500;
}

.font1,#page_title h2 span,#top_cms h2 span{
    font-family: var(--font-en);
	text-transform: uppercase;
}

.font2,.l-menu,.pc_nav,.en_font,.pager a, .cate_list li a, .sns_title, .con_no, .tel, .copyright, #con3 .box_title, .cate_list li a, .cate_titleh1, h2, h3, h4, h5, h6,.TopTxt04,.f_contact_box p,.qa_type5 .faq_no,.pagetitle .jp{
    font-family: var(--font-en2);
    letter-spacing: 3px;
    font-weight: 600;
    line-height: normal;
}

.font_14, .font_15,.font_16{
    font-size: 17px;
}
/* font -----------------------------------------------------------------------------*/

/* more.link ▼-----------------------------------------------------------------------------*/
.more.link a {
    background-color: var(--color1);
    background-image: var(--gradation2);
    border: none;
    color: var(--white);
}

.more.link a:hover {
    transition: 0.3s;
    background-color: transparent;
}

.c-btn i {
    color: var(--white);
}

.c-btn i:hover {
    color: var(--color3);
}
/* more.link ▲-----------------------------------------------------------------------------*/

/* ----------------------------------------------------------------------------------------------　top　----------------------------------------------------------------------------------------------------------------- */

#main_img {
    padding-top: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.catch {
    position: absolute;
    max-width: 750px;
    min-width: 600px;
}


/* ------------------------------　つなぎデザイン　▲---------------------------------- */
#con1:after{
    background-image: url(/Files/img/bg1.png);
    background-size: 100%;
    width: 100%;
    height: 18vw;
    bottom: -14vw;
    left: 50%;
   transform: translateX(-50%);
   background-position:center;
    z-index: 0;
}

#con3:before{
	background-image: url(/Files/img/bg2.png);
	background-size: 100%;
	width: 100%;
	height: 5vw;
	top: -4.9%;
	left: 50%;
	transform: translateX(-50%);
	background-position:center;
	z-index: 0;
}

#con3:after{
	background-image: url(/Files/img/bg3.png);
	background-size: 100%;
	width: 100%;
	height: 15vw;
	bottom: -15%;
	left: 50%;
	transform: translateX(-50%);
	background-position:center;
	z-index: -1;
}

footer:before{
	background-image: url(/Files/img/bg2.png);
	background-size: 100%;
	width: 100%;
	height: 4vw;
	top: -11%;
	left: 50%;
	transform: translateX(-50%);
	background-position:center;
	z-index: 0;
}
/* ------------------------------　つなぎデザイン　▼------------------------------ */

/* ------------------------------　contents2　▼------------------------------ */
.cmstitle .en {
    color: var(--color1);}

.cmstitle .jp {
    color: var(--color7);
    letter-spacing: 0;
    font-family: var(--font-en);
    text-transform: uppercase;
    font-weight: 300;
}

.cmstitle .jp span{
	display:none;
}


/* ------------------------------　contents2　▲------------------------------ */

/* ------------------------------　contents3　▼------------------------------ */

#con3 .box_title {
    display: inherit;
    font-size: -webkit-calc(1rem + 12px);
    font-size: calc(1rem + 12px);
    color: var(--black);
}

#con3 .box:nth-of-type(1) .img{
    border-radius: 50% 50% 50% 70%/50% 50% 70% 60%;
}

#con3 .box:nth-of-type(2) .img{
    border-radius: 80% 30% 50% 50%/50%;
}

#con3 .box:nth-of-type(3) .img{
    border-radius: 40% 40% 50% 40%/30% 50% 50% 50%;
}
/* ------------------------------　contents3　▲------------------------------ */

/* ----------------------------------------------------　#footer　▼---------------------------------------- */
.footer {
    padding: 20px 0px 1px;
}

.footer {
    background-position: 50% calc(100% + 1px);
}

.fix_banner {
    width: 450px;
    position: fixed;
    bottom: 35px;
    right: 60px;
    z-index: 10;
}

.fix_banner .f_contact_btn a i {
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-style: initial;
}

.fix_banner a:hover{
    transform: scale(1.1);
    cursor: pointer;
}

.f_sitemap_inner {
    margin-top: 20px;
}

.f_contact_box {
    border-radius: 10px;
    z-index: 1;
}

.footer a {
    font-size: 15px;
    font-weight: 500;
    color: var(--black);
}


.footertxt {
    font-weight: 500;
    color: var(--black);
}

.PageFooter {
    font-size: 16px;
    font-family: var(--font-en2);
}

.f_sitemap_inner i {
    color: var(--black);
}

.f_contact_btn a {
    margin: 0 auto;
    font-size: 26px;
    padding: 20px 10px 20px 48px;
    background-color: var(--color1);
    background-image: var(--gradation2);
    transition: 0.3s;
    border-radius: 50px;
    font-family: var(--font-en2);
    max-width: 350px;
}

.f_contact_btn a:hover{
    background-color: var(--color3);
}

.f_contact_btn i{
    margin-left: -35px;
    line-height: 2;
    
}

.copy {
    background-color: transparent;
    color: var(--black);
    padding: 15px 0;
}
/* ----------------------------------------------------　#footer　▲---------------------------------------- */
.pagetitle .jp span {
    display: none;
}

/*-------------------------------------------------------------------------------タブレット------------------------------------------------------------------------------------------------------*/
@media screen and (max-width: 768px){

/* ------------------------------　つなぎデザイン　▲---------------------------------- */
#con1:before{
    top: -3.5%;
}

#con1:after{
    height: 18vw;
    bottom: -14vw;
}

#con3:before{
	height: 5vw;
	top: -0.9%;
}

#con3:after{
	height: 15vw;
	bottom: -2.3%;
}

#topCms:after{
	/* height: 22vw; */
	/* bottom: -21vw; */
}

footer:before{
	height: 5vw;
	top: -6%;
}
/* ------------------------------　つなぎデザイン　▼------------------------------ */

.fix_banner {
    bottom: 35px;
    right: 90px;
}

}

/* ================================================ 667px 以下（スマホ）=============================================== */
@media screen and (max-width: 667px) {
.pagetop {
    width: 40px;
    height: 40px;
    right: 5px;
    bottom: 50px;
    border-radius: 100px;
}


.pagetop i {
    line-height: 40px;
    width: 40px;
    height: 40px;

}
/* ------------------------------　つなぎデザイン　▲---------------------------------- */
#con1:before{
    top: -1.5%;
}

#con1:after{
    height: 18vw;
    bottom: -14vw;
}

#con3:before{
	height: 13vw;
	top: -1%;
}

#con3:after{
	height: 20vw;
	bottom: -2%;
}

#topCms:after{
	/* height: 22vw; */
	/* bottom: -21vw; */
}

footer:before{
	height: 5vw;
	top: -6%;
}
/* ------------------------------　つなぎデザイン　▼------------------------------ */

  .header .logo1 {
    max-width: 100px;
    padding: 0 15px;
    transform: translateY(0);
  }

  .logo1 {
    max-width: 100px;
  }

  .logo1:hover, .pc_nav li:hover {
    max-width: 140px;
    transform: translateY(0);
  }


 .catch {
    min-width: 300px;
  }

  .font_14, .font_15 {
    font-size: 15px;
  }
 .menu_btn {
    transform: translate(0px, 0);
  }

#con2 > div:before {
    width: 23vw;
    height: 45vw;
    top: auto;
    right: 0vw;
    bottom: 0vw;
}

#con3 .box_wrap:before {
    width: 17vw;
    height: 35vw;
    top: -18vw;
    left: 0vw;
}

#con3 .box_wrap:after {
    width: 25vw;
    height: 45vw;
    bottom: -74vw;
    right: 12vw;
}

  .TopTxt02 {
    font-size: 20px;
    letter-spacing: 0px;
    text-align: center;
    line-height: normal;
  }

  .TopTxt04 {
    font-size: 25px;
    letter-spacing: 0;
    line-height: normal;
  }

#con1:before {
    bottom: -10vw;
}

#con3 .title .en, #con3 .box_title1{
    font-size: 27px;
    letter-spacing: 1px;
    margin-top: 0px;
    margin-bottom: 20px;
  }

  .fix_banner {
    width: 270px;
    right: 70px;
  }

  .footertxt {
    max-width: 100%;
  }

  .footer_sns .box a {
    padding: 5px 10px 10px;
    width: 80px;
  }

  .cmstitle {
    background-position: 32% 33%;
    background-size: 100px;
    padding: 40px 0 20px;
    background-size: 60px !IMPORTANT;
    margin-bottom: 10px;
  }

  .topCms:nth-child(4) .cmstitle {
    background-position: 41% 50%;
  }

  .topCms:nth-child(5) .cmstitle {
    background-position: 7% 49%;
  }

  .tel {
    font-size: 22px;
  }

  .f_contact_box p {
    font-size: 13px;
  }

  .f_contact_btn a {
    font-size: 17px;
    padding: 10px 0 10px 38px;
  }

  #sp_nav .sp_nav_inner .l-menu ul li a {
    font-size: 15px;
  }

  .privacy .box h3 {
    font-size: 1rem;
  }

.f_contact_box h4 {
    font-size: 35px;
}

  #page2, #page3, #page4, #page5, #page6, #page7, #page8, #page9, #page10 {
    font-size: 14px !important;
  }

  #page8 .contact_tel a {
    font-size: 20px;
    letter-spacing: 0;
    padding: 8px 30px;
  }

  #con1 {
    padding-top: 20px;
    padding-bottom: 85px;
  }

  #con2 {
    padding-top: 80px;
    padding-bottom: 50px;
  }

  #con2:before {
    top: 10px;
    height: 100px;
  }

  #con2 .topimg3:before {
    width: 14vw;
    height: 20vw;
    top: 0;
  }

  #con3 {
    padding: 30px 0 50px;
  }

  #con3 .title {
    padding: 0;
    margin-bottom: 0px;
    margin-top: 0px;
  }

  #con3 .title .en {
    font-size: 30px;
    letter-spacing: 0;
    padding: 0;
  }

  #con3 .box .img {
    max-width: 300px;
    height: 300px !important;
    top: 10vw;
  }

  #con3 .box .icon {
    position: relative;
    z-index: 1;
    margin-top: -10px;
  }

  #con3:after {
    bottom: -50px;
  }

  #con4 {
    padding-top: 30px;
  }

  #con4 .con_box {
    width: 100%;
    margin-right: 0;
    margin-bottom: 30px;
  }

  #topCms {
    padding: 50px 0;
  }

  #topCms:after {
    /* height: 42px; */
    /* top: 0; */
  }

  .footer {
    padding: 110px 0 1px;
    background-size: 210% auto;
    background-position: 0% calc(100% + 1px);
  }

  .footer_contact:before {
    height: 100px;
    top: -1%;
  }

  .cate_list li a {
    letter-spacing: 0;
    font-size: 11px;
  }

  .cmstitle:before {
    width: 50px;
    height: 50px;
    top: -60px;
  }

  .pagetitle {
    padding-top: 100px;
    padding-bottom: 50px;
  }

  .topTxt1 {
    letter-spacing: 0;
    font-size: 14px;
    max-width: 100%;
  }

  .footer_sns {
    margin-bottom: 0;
  }

  .pagetop {
    right: 10px;
    bottom: 60px;
  }

  .obj1 {
    top: 55%;
    width: 68%;
  }

  #con1 .con1_left, #con1 .con1_right, #con2 .con2_left, #con2 .con2_right {
    width: 20vw;
    height: 20vw;
    z-index: 1;
  }

  #con2 .con2_left, #con2 .con2_right {
    width: 13vw;
    height: 33vw;
  }

  #con1 .con1_left {
    bottom: -7%;
    left: 5%;
  }

  #con1 .con1_right {
    bottom: -7%;
    right: 5%;
  }

  #con2 .con2_left {
    bottom: -13%;
    left: 5%;
  }

  #con2 .con2_right {
    bottom: -12%;
    right: 5%;
  }

.obj5 {
    width: 20vw;
    height: 22vw;
    left: 3%;
}

.obj6 {
    width: 23vw;
    height: 21vw;
    right: 0%;
    z-index: 0;
}

}

@media screen and (max-width: 320px){
  .TopTxt02 {
    font-size: 25px;
  }

.cmstitle .en{
    font-size: 25px;
    padding: 15px;
    letter-spacing: 0;
}


  .fix_banner {
    width: 240px;
    right: 70px;
  }
}

/*20250617*/
.TopTxt02, .TopTxt03, .TopTxt06, .TopTxt08, .TopTxt10, .TopTxt12 {
    color: var(--black);
}


/*---------------------------------------------------------------------------------------------iPhone8以下サイズ----------------------------------------------------------------------------------------------------------*/
@media screen and (max-width: 320px){
}