﻿@charset "utf-8";
/* 1536 , 1530 × 735 ,1366 *//* ←記画面幅でも崩れていないか確認 */

/* カテゴリリンクの飛び先位置の数値を適宜調整してください */

/* 修正した場合→各項目の一番下に日付をコメントアウトして追記 */


/*■■　ALL　■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/

.cate_list li a {
    padding: 10px 10px;
}


.radius_10px{
    border-radius: 10px!important;
}

.pc_nav {
    padding: 0 0px 0 10px !important;
    box-sizing: border-box;
}

.pd_r-2rem{
        padding-right: 2rem;
}

.fv-bg-sp {
  display: none;
}

.logo1 {
    max-width: 100px;
}

#page1 {
    min-width: 1280px;
}

.header li a .font_16 {
    font-size: 18px;
}
#fakeloader .fl {
    max-width: 280px;
}
#fakeloader {
    background: var(--color3);
}
.footer_contact h4 {
    margin-bottom: 15px;
}
#sp_nav .sp_nav_inner .l-menu ul li a span {
    color: var(--color1);
}
.header li a span {
    color: var(--color1);
}

@media screen and (max-width: 1320px) {
    .d_none_tb {
        display: none;
    }
    
        .header-in {
        height: 94px;
        background: none;
        box-shadow: none;
        padding: 0px;
        justify-content: left;
    }
}

/* ---------------------------　タブレット　-------------------------- */
@media screen and (max-width: 768px){
#page1 {
    min-width: auto;
}
.l-menu li a {
    font-size: 19px;
}

    .header-in {
        justify-content: space-between;
    }

}

/* --------------------------　スマホ　-------------------------- */
@media screen and (max-width: 667px){
#sp_nav .sp_nav_inner .menu__header .logo3 img {
        max-width: 148px;
}
.header {
    padding: 0 10px;
}
    .logo1 {
        max-width: 75px;
    }
    .l-menu li a {
        font-size: 16px;
    }
    
     .menu_sns .box a img {
        max-height: 38px!important;
    }

}



/*■■ animation　■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/
.fv {
  position: relative;
  width: 100%;
  height: min(56.28vw, 941px);
    min-height: 717px;
  overflow: hidden;
}

.hero{
    position: absolute;
    z-index: 5;
        right: -1%;
    top: 80%;
    width: clamp(300px, 17vw, 400px);
}

/* 背景画像 */
.fv-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transition:
    opacity 0.8s ease,
    transform 1.2s ease;
}

/* 夏のFV画像 */
.fv-bg--summer {
  background-image: url("/Files/img/fv-summer.jpg");
  opacity: 1;
  transform: scale(1);
}

/* 冬のFV画像 */
.fv-bg--winter {
  background-image: url("/Files/img/fv-winter.jpg");
  opacity: 0;
  transform: scale(1.03);
}

.fv.is-winter .fv-bg--summer {
  opacity: 0;
  transform: scale(1.03);
}

.fv.is-winter .fv-bg--winter {
  opacity: 1;
  transform: scale(1);
}

/* 文字画像 */
.fv-copy-img {
    position: absolute;
    z-index: 5;
    left: clamp(32px, 7vw, 110px);
    top: clamp(136px, 9vw, 165px);
    width: clamp(415px, 34vw, 560px);
    height: auto;
    pointer-events: none;
}

/* 切替ボタン */
.season-btn {
    position: absolute;
    z-index: 10;
    left: clamp(32px, 8vw, 134px);
    top: clamp(451px, 35vw, 610px);
    width: clamp(120px, 13vw, 190px);
    height: auto;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
}
.season-btn-img {
  display: block;
  width: 100%;
  height: auto;
  transition:
    opacity 0.35s ease,
    transform 0.35s ease;
}

.season-btn:hover .season-btn-img {
  transform: translateY(-2px);
}

/* 初期：夏ボタン画像 */
.season-btn-img--winter {
  position: absolute;
  inset: 0;
  opacity: 0;
}

.fv.is-winter .season-btn-img--summer {
  opacity: 0;
}

.fv.is-winter .season-btn-img--winter {
  opacity: 1;
}

/* 雪エリア：右側だけ */
.snow-area {
  position: absolute;
  z-index: 4;
top: 10%;
    right: 10%;
    width: 70%;
    height: 78%;
  pointer-events: none;
  overflow: hidden;
  opacity: 0;
  transition: opacity 0.8s ease;

  -webkit-mask-image: linear-gradient(
    to left,
    rgba(0, 0, 0, 1) 65%,
    rgba(0, 0, 0, 0) 100%
  );
  mask-image: linear-gradient(
    to left,
    rgba(0, 0, 0, 1) 65%,
    rgba(0, 0, 0, 0) 100%
  );
}

.fv.is-winter .snow-area {
  opacity: 1;
}

.snow-layer {
  position: absolute;
  inset: -25% 0 0 0;
  background-repeat: repeat;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}

/* 遠景雪 */
.snow-back {
  opacity: 0.32;
  background-image:
    radial-gradient(circle, rgba(255,255,255,0.9) 1px, transparent 1.8px),
    radial-gradient(circle, rgba(255,255,255,0.7) 1.2px, transparent 2px);
  background-size: 90px 140px, 130px 180px;
  background-position: 0 0, 40px 30px;
  animation: snowFallBack 18s linear infinite;
}

/* 中景雪 */
.snow-mid {
  opacity: 0.48;
  background-image:
    radial-gradient(circle, rgba(255,255,255,0.95) 1.8px, transparent 2.8px),
    radial-gradient(circle, rgba(255,255,255,0.8) 1.4px, transparent 2.4px);
  background-size: 110px 160px, 150px 220px;
  background-position: 10px 0, 70px 40px;
  animation: snowFallMid 13s linear infinite;
}

/* 前景雪 */
.snow-front {
  opacity: 0.68;
  background-image:
    radial-gradient(circle, rgba(255,255,255,1) 2.4px, transparent 3.4px),
    radial-gradient(circle, rgba(255,255,255,0.9) 2px, transparent 3px);
  background-size: 140px 190px, 180px 250px;
  background-position: 0 10px, 90px 40px;
  filter: blur(0.2px);
  animation: snowFallFront 10s linear infinite;
}

@keyframes snowFallBack {
  0% {
    transform: translate3d(0, -10%, 0);
  }

  100% {
    transform: translate3d(-12px, 100%, 0);
  }
}

@keyframes snowFallMid {
  0% {
    transform: translate3d(0, -12%, 0);
  }

  100% {
    transform: translate3d(-22px, 100%, 0);
  }
}

@keyframes snowFallFront {
  0% {
    transform: translate3d(0, -14%, 0);
  }

  25% {
    transform: translate3d(-8px, 20%, 0);
  }

  50% {
    transform: translate3d(6px, 45%, 0);
  }

  75% {
    transform: translate3d(-10px, 72%, 0);
  }

  100% {
    transform: translate3d(4px, 100%, 0);
  }
}

/*■■　FV　■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/



#main_img {
    padding-top: 0;
    position: relative;
}
#main_img:before {
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background-image: url(../img/fv_catch.png), url(../img/fv_img.png);
    background-repeat: no-repeat;
    background-position: 10% 34%, 120% 50%;
    background-size: 35%, auto 120%;
}


/* ---------------------------　タブレット　-------------------------- */
@media screen and (max-width: 768px){
    
    
    .hero{
    position: absolute;
    z-index: 5;
        right: -1%;
    top: 80%;
    width: 34%;
}


    #main_img:before {
        height: calc(100% - 120px);
        top: calc(50% + 60px);
        background-repeat: no-repeat;
        background-position: 7% 25%, 220% 50%;
        background-size: 45%, auto 126%;
    }
    
    
.fv {
    height: auto;
    min-height: 880px;
  }

  /* PC背景をSPでは非表示 */
  .fv-bg {
    display: none;
  }

  /* SP背景を表示 */
  .fv-bg-sp {
    display: block;
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    transition:
      opacity 0.8s ease,
      transform 1.2s ease;
  }

  /* SP夏背景 */
  .fv-bg-sp--summer {
    background-image: url("/Files/img/fv-summer-sp.jpg");
    opacity: 1;
    transform: scale(1);
  }

  /* SP冬背景 */
  .fv-bg-sp--winter {
    background-image: url("/Files/img/fv-winter-sp.jpg");
    opacity: 0;
    transform: scale(1.03);
  }

  /* 冬状態：SP背景切替 */
  .fv.is-winter .fv-bg-sp--summer {
    opacity: 0;
    transform: scale(1.03);
  }

  .fv.is-winter .fv-bg-sp--winter {
    opacity: 1;
    transform: scale(1);
  }

  /* 夏状態 */
  .fv.is-summer .fv-bg-sp--summer {
    opacity: 1;
    transform: scale(1);
  }

  .fv.is-summer .fv-bg-sp--winter {
    opacity: 0;
    transform: scale(1.03);
  }
    .season-btn {
        left: 50%;
        transform: translateX(-47%);
        top: clamp(395px, 53vw, 1500px);
        width: clamp(139px, 22vw, 190px);
    }

    .fv-copy-img {
        left: 50%;
        transform: translateX(-47%);
        top: clamp(62px, 6vw, 81px);
        width: clamp(296px, 59vw, 443px);
    }
}
/* --------------------------　スマホ　-------------------------- */
@media screen and (max-width: 667px){
    
.hero {
    position: absolute;
    top: 73%;
    right: -1%;
    width: 50%;
}

    .fv {
        height: auto;
        min-height: 766px;
    }
    
#main_img {
    padding-top: 0px;
}
    #main_img:before {
        height: calc(100% - 80px);
        top: calc(50% + 40px);
        background-repeat: no-repeat;
        background-position: 50% 0%, 50% 65%;
        background-size: 85%, 120%;
        background-image: url(../img/fv_catch_sp.png), url(../img/fv_img_sp.png);
    }
    
    .season-btn {
        left: 50%;
        transform: translateX(-47%);
        top: clamp(663px, 157vw, 1500px);
        width: clamp(139px, 22vw, 190px);
    }

    .fv-copy-img {
        left: 50%;
        transform: translateX(-47%);
        top: clamp(78px, 16vw, 124px);
        width: clamp(296px, 83vw, 350px);
    }
    
    
}




/*■■　TOP　■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/



#page1 .title,.cmstitle .en {
    font-size: clamp(1.5rem, 2vw, 3rem);
    font-weight: bold;
        line-height: 1.3;
}
#page1 .title h3 {
    font-weight: bold;
}
#con1 {
    background-color: transparent;
}
#con1::before {
  content: "";        /* 必須：空でも必ず記述 */
  position: absolute; /* 親要素を基準に配置 */
  top: 0;
  left: 0;
  width: 100%;        /* 親要素の幅いっぱいに */
  height: 100%;       /* 親要素の高さいっぱいに */
  z-index: -1;        /* コンテンツ（文字など）より背面に配置 */
  opacity: 0.15; 

  /* 背景画像の設定 */
  background-image: url("../img/con1background.jpg");
  background-size: cover;      /* 画像を枠いっぱいに広げる */
  background-position: center; /* 中央に合わせる */
  background-repeat: no-repeat;

}
#con2 {
    overflow: hidden;
}
#con2:before {
    content: "";
    background-image: url(../img/line.png);
    background-size: contain;
    background-repeat: no-repeat;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 22px;
}
#con3 .con_box .img {
    overflow: hidden;
    border-radius: 26px;
}
#con3 .box_wrap .title {
    font-size: clamp(1.2rem, 1.3vw, 3rem);
}

/* ---------------------------　タブレット　-------------------------- */
@media screen and (max-width: 768px){
#page1 .title,.cmstitle .en {
    font-size: clamp(2rem, 2.5vw, 3rem);
}
#con2:before {
    width: 200%;
    height: 18px;
}
#con3 .box_wrap {
    justify-content: center;
    gap: 20px;
}
#con3 .con_box{
    width: 48%!important;
}
#con3 .box_wrap .title {
    font-size: 1.5rem;
}
}

/* --------------------------　スマホ　-------------------------- */
@media screen and (max-width: 667px){
#page1 .title,.cmstitle .en {
    font-size: 7vw;
}
#con2:before {
    width: 300%;
    height: 11px;
}
#con3 .title .en {
    font-size: 7vw;
}
    #con3 .box_wrap .title {
        font-size: 7vw;
    }
    #con3 .box_wrap {
    gap: 5px;
}
#con3 .con_box{
    width: 100%!important;
}

}



/*■■　下層ページ　■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/
/*カテゴリリンクの飛び先位置を調整する*/
/* --- PC --- */
:root {
--header-height: 150px;
}

    .pagetitle h2 {
        font-weight: bold;
        color: var(--color1)!important;
    }
    
        .pagetitle_img {
        opacity: 0.5;
        mix-blend-mode: inherit;
    }


.linkBanner{
    width: 50%;
    text-align: center;
}

/* --- スマートフォン --- */
@media screen and (max-width: 667px){
:root {
--header-height: 100px;
}
}
.pagetitle {
    background: #fff;
}
.pagetitle_img {
    opacity: 0.5;
    mix-blend-mode: inherit;
}
.cate_list li a {
    padding: 10px;
    color: #fff;
    background: var(--color3);
    border: none;
    font-weight: bold;
}
.cate_list li a:hover {
    background: var(--color1);
}

.pagetitle p {
    color: var(--color1);
}
.pagetitle h2 {
    font-weight: bold;
    color: var(--color1);
}

/* ---------------------------　タブレット　-------------------------- */
@media screen and (max-width: 768px){

}

/* --------------------------　スマホ　-------------------------- */
@media screen and (max-width: 667px){
/*     .pagetitle {
    padding-top: 80px;
    padding-bottom: 30px;
}
.pagetitle_img {
background-size: 100% auto;
} */
}

/*■■　お問い合わせページ　■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/
#page8 .width_1280-max.width_80per {
    padding: 1% 10%;
}