﻿/* ======================================================Fonts Import====================================================== */
@import url('https://fonts.googleapis.com/css2?family=Sawarabi+Gothic&family=Darumadrop+One&family=Yusei+Magic&family=Noto+Sans+JP:wght@100..900&display=swap');

/* ======================================================Root Variables====================================================== */

:root {
  /* Colors */
  --color1: #5e7eb7; /* メインカラー */
  --color2: #9ec6f3; /* サブカラー */
  --color3: #5170a8; /* アクセントカラー1 */
  --color4: #d7eaea; /* アクセントカラー2 */
  --color5: #e4f1fd;
  --color6: #f0f8ff;
  --white: #ffffff;
  --white2: #f0f8ff;
  --black: #333333;
  --gray: #ccc;

  /* Gradients */
  --gradation: repeating-linear-gradient(90deg, #e9ffff, #d0e2f5);
  --gradation2: repeating-linear-gradient(90deg, var(--color1), var(--color2));

  /* Fonts */
  --font-jp: 'Montserrat', "Noto Sans JP", "游ゴシック Medium", "Yu Gothic Medium", sans-serif;
  --font-jp2: "Noto Sans JP", "Yu Gothic Medium", YuGothic, "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  --font-en: 'Montserrat', "Anta", sans-serif;
}

/* ======================================================Reset / Base====================================================== */
html {
/*   // ビヨヨン効果を無効化する */
  overscroll-behavior: none　!IMPORTANT;
}

body {
    overflow: hidden;
    background-color: var(--white2);
}

.pagetop {
    z-index: 1;
    background-color: var(--color3) ! IMPORTANT;
}

.shadow {
    border-radius: 10px;
    box-shadow: 0 5px 10px rgb(255 255 255 / 0%);
}

.img_tool2 a[href=""]{
    pointer-events: none;
}
img[src="/Files/img/noimg1.png"]{
    opacity: 0.7;
}
figure:has(img[src="/Files/img/noimg1.png"]){
    background-color: var(--color4);
}


/*--------------------------------疑似要素にオブジェクト--------------------------------*/

#con1,#con2 > div,#con2 .topimg3,#con3,#con3 .box_wrap,.footer_contact,.pagetitle,#topCms .topCms{position: relative;z-index: 0;}
/*リピートなし*/
#con1:before, #con1:after, #con2 > div:before,#con2:after, #con3:after, #con3 .box_wrap:before, #con3 .box_wrap:after, .cmstitle:before, .footer_contact:before, .footer_contact:after, .pagetitle:before, .pagetitle:after, #topCms .topCms:nth-child(1)::after, #topCms .topCms:nth-child(3)::after{
content: "";
display: block;
background-size: cover;
background-repeat: no-repeat;
position: absolute;
}
/*--------------------------------疑似要素にオブジェクト--------------------------------*/

/* ======================================================Utilities====================================================== */
body,.txt_color_nomal,.hvr_txt_color_nomal:hover{color: var(--black);}
.txt_white,.hvr_txt_white:hover{color: var(--white);}
.txt_white2,.hvr_txt_white2:hover{color: var(--white2);}
.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 */
.txt_color5,.hvr_txt_color5:hover{color: var(--color5);} /* アクセントカラー2 */
/* background-color */
.bg_white,.hvr_bg_white:hover{background-color: var(--white)} /* 白背景 */
.bg_white2,.hvr_bg_white2:hover{background-color: var(--white2)} /* 白背景 */
.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_color_clear,.hvr_bg_color_clear:hover{background-color: transparent!important;}
/* border-color ※!important */
.border_white,.hvr_border_white:hover{border-color: var(--white);}
.border_white2,.hvr_border_white2:hover{border-color: var(--white2);}
.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 -----------------------------------------------------------------------------*/
body{
    font-family: var(--font-jp);
    font-weight: 500;
}

.font1,#page_title h2 span,#top_cms h2 span,h2, h3, h4, h5, h6,.TopTxt04{
    font-family: var(--font-jp2);
    text-transform: uppercase;
    line-height: 1.2;
    font-weight: 600;
}

.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,.f_contact_box p,.qa_type5 .faq_no,.pagetitle .jp,.topTxt1{
    font-family: var(--font-jp2);
    letter-spacing: 2px;
    line-height: normal !IMPORTANT;
    text-transform: uppercase;
}

/* More Link */
.more.link a {
  display: inline-block;
  background: var(--gradation2);
  color: var(--white);
  border: none;
  transition: 0.3s;
}

.more.link a i {
  color: inherit; /* 親リンクと同じ色に */
  transition: inherit;
}

.more.link a:hover {
  background: var(--white);
  /* border: 1px solid var(--color3); */
  color: var(--color3);
}

/* ----------------------------------------------------------------------------------------------　top　----------------------------------------------------------------------------------------------------------------- */
#main_img img {
    object-fit: cover;
    height: auto !important;
    width: 100%;
}

#main_img {
    height: auto !important;
    padding-top: 0;
}

#main_img .catch {
    position: absolute;
    max-width: 1500px;
    bottom: auto;
    width: max(400px, 40vw);
    z-index: 1;
    height: auto;
}
/* ------------------------------　intro　▼---------------------------------- */
/* ------------------------------　intro　▲---------------------------------- */
#con1:before{
    background-image: url(/Files/img/bg1.png);
    background-size: 100%;
    width: 100%;
    bottom: 0;
    aspect-ratio: 23/4;
    left: 50%;
    transform: translateX(-50%);
    background-position: center;
    z-index: -1;
}

#con2:after{
    content: "";
    position: absolute;
     /* 固定値は消す */
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    aspect-ratio: 23/4; /* ← 画像比率に合わせる */
    background-image: url(/Files/img/bg2.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    z-index: 0;
}

#con3:after{
	background-image: url(/Files/img/bg3.png);
	background-size: 100%;
	width: 100%;
	aspect-ratio: 23/4;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	background-position: center;
	z-index: -1;
}

.pagetitle:after{
    background-image: url(/Files/img/bg4.png);
    background-size: 100%;
    width: 100%;
    aspect-ratio: 23/4;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    background-position: center;
    z-index: 0;
}

.footer_contact:after {
    background-image: url(/Files/img/bg5.png);
    background-size: 100%;
    width: 100%;
    left: 50%;
    transform: translateX(-50%);
    background-position: center;
    z-index: 0;
    aspect-ratio: 23/4;
    bottom: 0;
}

#topCms .topCms:nth-child(1)::after{
    content: "";
    position: absolute;
     /* 固定値は消す */
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    aspect-ratio: 23/4; /* ← 画像比率に合わせる */
    background-image: url(/Files/img/bg2.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    z-index: -1;
}

#topCms .topCms:nth-child(2)::after{
    content: "";
    position: absolute;
     /* 固定値は消す */
    bottom: -1%;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    aspect-ratio: 1920 / 340; /* ← 画像比率に合わせる */
    background-image: url(/Files/img/bg1.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    z-index: -1;
}

#topCms .topCms:nth-child(3)::after{
    content: "";
    position: absolute;
     /* 固定値は消す */
    bottom: -1px;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    aspect-ratio: 23/4; /* ← 画像比率に合わせる */
    background-image: url(/Files/img/bg3.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    z-index: -1;
}
/* ------------------------------　contents1　▼------------------------------ */

#con1 h2 {
    background-image: url(/Files/img/kazari.png);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: 50% 50%;
    margin-top: 29px;
    padding-top: 12px;
    padding-bottom: 12px;
    margin-bottom: 22px;
}

/* ------------------------------　contents1　▲------------------------------ */

/* ------------------------------　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 + 10px);
    padding: 10px 10px;
    color: var(--color3);
    font-weight: 800 !IMPORTANT;
}
/* ------------------------------　contents3　▲------------------------------ */

/* ----------------------------------------------------　#footer　▼---------------------------------------- */
.footer {
    padding: 120px 0px 1px;
}

.footer {
    background-position: 50% calc(100% + 1px);
}

.fix_banner {
    width: 450px;
    position: fixed;
    bottom: 35px;
    right: 120px;
    z-index: 10;
}

.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(--white);
}


.footertxt {
    font-weight: 500;
    color: var(--white);
}

.PageFooter {
    font-size: 16px;
    font-family: var(--font-en2);
}

.f_sitemap_inner i {
    color: var(--color5);
}

.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;
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-style: initial;
}

.copy {
    color: var(--white);
    padding: 15px 0;
}
/* ----------------------------------------------------　#footer　▲---------------------------------------- */

/* ================================================ 下層ページ=============================================== */
.pagetitle .jp span {
    display: none;
}

/* ================================================ 768px 以下（タブレット）=============================================== */
@media screen and (max-width: 768px) {
#main_img {
    padding-top: 90px;
}

#main_img .catch {
    top: calc(40% + 100px);
}

.font_14, .font_15 {
    font-size: 18px;
 }

#sp_nav .sp_nav_inner .l-menu li a {
    font-size: 22px;
}

.TopTxt03 {
    width: auto;
    line-height: 2;
}

.TopTxt04 {
    font-size: 40px;
    text-align: center;
    margin-bottom: 30px;
}

.menu_btn {
    border: none;
    box-shadow: none;
  }

.pagetitle .jp span {
    padding-top: 6px;
  }

.TopTxt02 {
    font-size: 35px;
    margin-top: 25px;
    line-height: 1.2;
    text-align: center;
  }

#con1 {
    padding-top: 25px;
    padding-bottom: 100px;
}

#con3 .title {
    padding: 5px 0 10px;
    font-size: -webkit-calc(1rem + 14px);
    font-size: calc(1rem + 14px);
  }

#con3 .title .en, #con3 .box_title1{
    font-size: 40px;
    display: inline-block;
    padding: 20px 0px;
  }

  #con3 .box .img {
    max-width: 450px;
    height: 450px !important;
    margin: 0 auto;
    border-radius: 20px;
  }

  .cmstitle {
    background-position: 36% 32%;
    background-size: 100px;
    padding: 50px 0 20px;
  }

  .topCms:nth-child(4) .cmstitle {
    background-position: 43% 31%;
    background-size: 90px;
  }

  .topCms:nth-child(5) .cmstitle {
    background-position: 18% 34%;
  }

  .f_sitemap_inner {
    justify-content: left;
  }

  .f_sitemap_inner li {
    width: 45.3%;
  }

  .footer_contact:before {
    top: -1%;
  }

  .PageFooter {
    font-size: 14px;
  }

}

/* ================================================ 667px 以下（スマホ）=============================================== */
@media screen and (max-width: 667px) {
#sp_nav .sp_nav_inner .l-menu ul li a, #sp_nav .sp_nav_inner .l-menu ul li a span{
    transition: 0s;
}
#sp_nav .sp_nav_inner .l-menu ul li:hover a span{
    font-size: 10px;
}
#main_img {padding-top: 70px;}

#main_img .bnr_contact {
    left: calc(5% + 0px);
    right: auto;
    left: 50%;
    transform: translateX(-50%);
    background-position: center;
}

#main_img .bnr_contact:hover{
    transform: scale(1.1);
    left: 50%;
    transform: translateX(-50%);
    background-position: center;
}

#main_img .catch {
    width: max(310px, 40vw);
    top: auto;
    bottom: -40vw;
    right: auto;
    left: 120px;
}

  .header .logo1 {
    max-width: 150px;
    padding: 0 5px;
    transform: translateY(0);
  }

  .logo1 {
    max-width: 100px;
  }

  .logo1:hover, .pc_nav li:hover {
    max-width: 170px;
    transform: translateY(0);
  }

.font_14, .font_15 {
    font-size: 15px;
}

#con2:after{
    bottom: 0%;
}

#topCms .topCms:nth-child(1)::after{
    bottom: -8%;
}

/*#topCms .topCms:nth-child(3)::after{
    bottom: 0%;
}*/

.menu_btn {
    transform: translate(-5px, 0);
}

.topTxt1 {
    letter-spacing: 0;
    font-size: 14px;
    max-width: 100%;
  }

.TopTxt02 {
    font-size: 25px;
    letter-spacing: 0px;
    text-align: center;
    line-height: normal;
    margin-top: 5px;
  }

  .TopTxt04 {
    font-size: 25px;
    letter-spacing: 0;
    line-height: normal;
  }

#con3 .title .en, #con3 .box_title1{
    font-size: 25px;
  }

  #con3 .title {
    font-size: -webkit-calc(1rem + 6px);
    font-size: calc(1rem + 6px);
    margin-bottom: 5px;
    margin-top: 0px;
  }

  .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;
  }

  #con3 .box .img {
    max-width: 300px;
    height: 250px !important;
  }

  .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: 1rem !important;
  }

  #page8 .contact_tel a {
    font-size: 20px;
    letter-spacing: 0;
    padding: 8px 30px;
  }

.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;
  }

.footer_sns {
    margin-bottom: 0;
  }

.pagetop {
    right: 10px;
    bottom: 60px;
  }

}

#wrap {
    min-width: 1280px;
}