﻿@import url('https://fonts.googleapis.com/css2?family=Sawarabi+Gothic&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Darumadrop+One&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Yusei+Magic&display=swap');
/* -----------------------------------------------------------------------------------------------　all　----------------------------------------------------------------------------------------------------------------- */


/* ----------------------------------------------------------------------------------------------　body　----------------------------------------------------------------------------------------------------------------- */
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%);
}


/*--------------------------------疑似要素にオブジェクト--------------------------------*/

#main_img,#con1,#con2 > div,#con2 .topimg3,#con3,#con3 .box_wrap,.footer_contact,.pagetitle{position: relative;z-index: 0;}
/*リピートなし*/
#main_img:before,#main_img:after,#con1:before,#con1:after,#con2 > div:before,#con2 .topimg3:before,#con2:after ,#con3:before,#con3:after,#con3 .box_wrap:before,#con3 .box_wrap:after,.cmstitle:before,.footer_contact:before,.footer_contact:after,.pagetitle:before,.pagetitle:after{
content: "";
display: block;
background-size: cover;
background-repeat: no-repeat;
position: absolute;
}
/*--------------------------------疑似要素にオブジェクト--------------------------------*/

/* color -----------------------------------------------------------------------------*/
:root{
    --color1: #eca427;
    --color2: #fed68e;
    --color3: #6ca335;
    --color4: #87cc41;
    --color5:#ffffff;
    --white:#ffffff;
    --white2: #efeeea;
    --black:#333333;
    --gray:#ccc;
}

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 -----------------------------------------------------------------------------*/
:root {
    --font-jp: 'Noto Sans JP',"游ゴシック Medium", "游ゴシック体", "Yu Gothic Medium", YuGothic, "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
    --font-jp2: "Yusei Magic", "游ゴシック Medium", "游ゴシック体", "Yu Gothic Medium", YuGothic, "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
    --font-en:"Darumadrop One","Yusei Magic", sans-serif;
}

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;
    font-weight: 400;
}

.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;
    font-weight: 300 !IMPORTANT;
    line-height: normal !IMPORTANT;
    text-transform: uppercase;
}
/* font -----------------------------------------------------------------------------*/

/* more.link ▼-----------------------------------------------------------------------------*/
.more.link a {
    background-color: var(--color3);
    border: solid 3px var(--color3);
    color: var(--white);
}

.more.link a:hover {
    transition: 0.3s;
    background-color: transparent;
    border: solid 3px var(--color3);
    color: var(--color3);
}

.c-btn i {
    color: var(--white);
}

.c-btn i:hover {
    color: var(--color3);
}
/* more.link ▲-----------------------------------------------------------------------------*/

/* ----------------------------------------------------------------------------------------------　top　----------------------------------------------------------------------------------------------------------------- */
#main_img {
    /* padding-top: 0; */
}

#main_img img {
    object-fit: cover;
    height: auto !important;
    width: 100%;
}

#main_img {
    height: auto !important;
    padding-top: 90px;
}

#main_img .bnr_contact {
    right: calc(0% + 100px);
    bottom: calc(0% + 100px);
    width: max(230px, 20vw);
    z-index: 1;
    transition: 0.3s;
}

#main_img .bnr_contact:hover{
    transform: scale(1.1);
}

#main_img .catch {
    position: absolute;
    top: calc(4% + 120px);
    left: 4%;
    max-width: 1700px;
    bottom: auto;
    width: max(330px, 45vw);
    z-index: 1;
    height: auto;
}
/* ------------------------------　intro　▼---------------------------------- */
/* ------------------------------　intro　▲---------------------------------- */
#main_img:after{
    content: "";
    position: absolute;
    bottom: -1%;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    aspect-ratio: 1920 / 280; /* ← 背景画像の縦横比に合わせて調整 */
    background-image: url(/Files/img/bg0.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    z-index: 0;
}

#con1:before{
    background-image: url(/Files/img/bg1.png);
    background-size: 100%;
    width: 100%;
    height: 10vw;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    background-position: center;
    z-index: 0;
}

#con2:after{
    content: "";
    position: absolute;
     /* 固定値は消す */
    bottom: -1%;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    aspect-ratio: 1920 / 100; /* ← 画像比率に合わせる */
    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%;
	height: 6vw;
	bottom: 0vw;
    left: 50%;
    transform: translateX(-50%);
    background-position: center;
	z-index: -1;
}

.pagetitle:after{
    background-image: url(/Files/img/bg3.png);
    background-size: 100%;
    width: 100%;
    height: 5vw;
    bottom: 0vw;
    left: 50%;
    transform: translateX(-50%);
    background-position: center;
    z-index: 0;
}

/* ------------------------------　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　▼------------------------------ */
#con1,#con3,footer {
    background-image: url(/Files/img/rice-paper-2.png);
}

#con2 .title, #con3 h3 {
    background-image: url(/Files/img/dot.png);
    background-repeat: no-repeat;
    background-size: 70px auto;
    background-position: 50% 100%;
    padding-bottom: 19px;
    margin-bottom: 17px;
    text-align: center;
}

#con3 .box_title {
    display: inherit;
    font-size: -webkit-calc(1rem + 12px);
    font-size: calc(1rem + 10px);
    background-color: var(--white);
    border-radius: 50px;
    padding: 10px 10px;
    color: var(--color3);
}
/* ------------------------------　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);
    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 {
    color: var(--white);
    padding: 15px 0;
}
/* ----------------------------------------------------　#footer　▲---------------------------------------- */
.pagetitle .jp span {
    display: none;
}


.qa_type3 .box_q, .qa_type3 .box_a {
    padding: 0 0px;
}
/* ================================================ 768px 以下（タブレット）=============================================== */
@media screen and (max-width: 768px) {
#main_img .bnr_contact {
    right: calc(0% + 0px);
    bottom: calc(4% + 0px);
}

#main_img .catch {
    top: calc(4% + 94px);
}

#con1:after {
    width: 17vw;
    height: 31vw;
    bottom: -4vw;
    left: 16vw;
}


#con2 > div:before {
    width: 17vw;
    height: 31vw;
    top: 94vw;
    right: 8vw;
}

#con3 .box_wrap:before {
    width: 17vw;
    height: 35vw;
    top: -18vw;
    left: 0vw;
}

#con3 .box_wrap:after {
    width: 18vw;
    height: 35vw;
    bottom: -34vw;
    right: 19vw;
}



  .font_14, .font_15 {
    font-size: 18px;
  }

  #sp_nav .sp_nav_inner .l-menu li a {
    font-size: 22px;
  }

  .header-in {
    background-color: transparent;
  }

  .TopTxt03 {
    width: auto;
    line-height: 2;
  }

.TopTxt04 {
    font-size: 40px;
    text-align: center;
}

  .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: 50px;
    padding-bottom: 100px;
  }

.con1_squ {
    background-image: url(/Files/img/bg_img7.png);
    height: 80px;
    z-index: 1;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    bottom: -30px;
}

#con2,#con3 {
    padding-top: 90px;
    padding-bottom: 90px;
  }

#con2:before {
    width: 100%;
    height: 107px;
    top: -30px;
  }

#con3:after {
    bottom: 0;
  }

  #con3 .title {
    padding: 5px 0 10px;
    background-position: 30% 0%;
    background-size: 100px;
  }

#con3 .title .en, #con3 .box_title1{
    font-size: 40px;
    display: inline-block;
    padding: 20px 40px;
  }

  #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) {
#main_img {padding-top: 50px;}

#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 {
    top: calc(2% + 68px);
    left: 50%;
    transform: translateX(-50%);
    background-position:center;
}

  .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;
}

.menu_btn {
    transform: translate(-5px, 0);
}

#con1:after {
    width: 27vw;
    height: 49vw;
    bottom: -20vw;
    left: 6vw;
}


#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: 25px;
    letter-spacing: 0px;
    text-align: center;
    line-height: normal;
    font-weight: 500;
  }

  .TopTxt04 {
    font-size: 25px;
    letter-spacing: 0;
    line-height: normal;
  }

#con1:before {
    bottom: 0vw;
}

#con3 .title .en, #con3 .box_title1{
    font-size: 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: 10px;
  }

  #con2:before {
    top: 10px;
    height: 100px;
  }

  #con2 .topimg3:before {
    width: 14vw;
    height: 20vw;
    top: 0;
  }

  #con3 {
    padding: 30px 0 50px;
  }

  #con3 .title {
    background-position: 5% 60%;
    background-size: 60px;
    padding: 6px 0 10px;
    margin-bottom: 10px;
  }

  #con3 .title .en {
    font-size: 30px;
    font-weight: bold;
    letter-spacing: 0;
    padding: 20px 0px;
  }

  #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: 0px;
  }

  #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;
  }

}