@charset "utf-8";
/*------------------------------------------------------

メインコンテナー（container）

-------------------------------------------------------*/
*, *::before, *::after {
    box-sizing: border-box;
}
.indentnone{
	text-decoration:none;
}
.pcbr{display:none;}
.spbr{display:block;}
@media screen and (min-width: 769px) {
.pcbr{display:block;}
.spbr{display:none;}
}


.gray__body{
	background:#f9f7f6;
	width:95%;
	margin: 0px auto 20px;
	padding:20px 0 40px;
	border-radius:20px;
}
@media screen and (min-width: 769px) {
.gray__body{
	width:98%;
	}
}

.mainvisual_copy{
	font-size:clamp(20px,2vw,30px);
	color:#665F67;
	padding:10px 0 0 20px;
	line-height:1.6;
	letter-spacing: 1.5px;
	font-family: "MFW-HiraKakuStd-W3";

}
@media screen and (min-width: 769px) {
.mainvisual_copy{
	padding:20px 0 0 0px;
	width:95%;
	margin: 0 auto;
	line-height:1.4;
	}
}

/*------------------------------------------------------

メインビジュアル用

-------------------------------------------------------*/


a.scr_top {
  display: inline-block;
  position: absolute;
  left: .5px ;
  bottom: 0;
  z-index: 2;
  padding: 10px 10px 80px;
  overflow: hidden;
  color: #fff;
  font-size: 0.6em;
  font-family: 'Josefin Sans', sans-serif;
  line-height: 1;
  letter-spacing: .2em;
  text-transform: uppercase;
  text-decoration: none;
  writing-mode: vertical-lr;
  cursor: default;
}
a.scr_top::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 45%;
  width: 1px;
  height: 60px;
  background: #fff;
}
a.scr_top::after {
  animation: sdl 1.5s cubic-bezier(1, 0, 0, 1) infinite;
}
@keyframes sdl {
  0% {
    transform: scale(1, 0);
    transform-origin: 0 0;
  }
  50% {
    transform: scale(1, 1);
    transform-origin: 0 0;
  }
  50.1% {
    transform: scale(1, 1);
    transform-origin: 0 100%;
  }
  100% {
    transform: scale(1, 0);
    transform-origin: 0 100%;
  }
}
.mainvisual_body{
/*	background:#f9f7f6;
	padding:30px 0;*/
	position: relative;
}



.mv-position_text {
  position: absolute;
  top: -80px;
  right: 10px;
  z-index: 2;
  text-align: right; 
  direction: rtl;
 	font-family: "MFW-HiraKakuStd-W3";
 	width:30%;

  
}
@media screen and (min-width: 769px) {
.mv-position_text {
  top: -60px;
  right: 40px;
	}
}
@media screen and (min-width: 1000px) {
.mv-position_text {
  top: -80px;
  right: 60px;
	}
}
.mv-position_text span {
  /* 3. 縦書きの指定をここで行う */
  writing-mode: vertical-rl;
  -webkit-writing-mode: vertical-rl;
  
  /* 4. 横に並ぶように設定 */
  display: inline-block;
  vertical-align: top; /* 上端を揃える */
	background:#fff;
  /* 5. 装飾：色・ボーダー・角丸 */
  color: #333;
  border: 1px solid #333;
  border-radius: 100px;
  
  /* 6. 余白と間隔 */
  padding: 1em 0.4em 1.2em;
  margin-right: 10px; /* 右から左に並んでいるので、右側に余白を作る */
  
  /* 7. 文字設定 */
  font-size: 16px;
  letter-spacing: 0.3em;
}
@media screen and (min-width: 769px) {
.mv-position_text span {
	font-size: 24px;
	}
}
@media screen and (min-width: 1000px) {
.mv-position_text span {
	font-size: 28px;
	}
}
/* 最初の要素（一番右）にはマージン不要 */
.mv-position_text span:first-child {
  margin-right: 0;
}


.slider-container {
	position: relative;
	margin: 20px auto 10px;
	overflow: hidden;
	background: #fafafa;
	-webkit-backface-visibility: hidden;
	-webkit-transform: translate3d(0, 0, 0);
	z-index: 1;
	height: 350px;
	width: 93%;
	border-radius: 30px;
}

@media screen and (min-width: 769px) {
  .slider-container {
  width: 90%;
  height: 500px;
  border-radius: 30px;
  }
}

@media screen and (min-width: 1000px) {
  .slider-container {
  width: 95%;
  height: 750px;
  border-radius: 30px;
  }
}

.top__notice{
	max-width:97%;
	margin: 0 0 0 auto;
	text-indent:-1em;
	padding-left:1em;
	color:#666;
}
@media screen and (min-width: 769px) {
.top__notice{
	max-width:95%;
	margin: 0 auto;
	text-align:right;
	
	}
}
.slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 170%;
  height: 100%;
  background-size: cover;
  background-position: center;
  opacity: 0;
  /* 合計サイクルを15秒（5秒×3枚）に変更 */
  animation: 
    fade-3-slides-overlap 15s infinite,
    move-sync-with-fade 15s infinite linear;
}

@media screen and (min-width: 769px) {
  .slide {
    width: 125%;
  }
}

/* 遅延時間を5秒ずつに設定 */
.item-01 { background-image: url('../images/bg_img01.jpg'); background-position: center 25%;}
.item-02 { background-image: url('../images/bg_img02.jpg'); animation-delay: 5s; background-position: center 60%;}
.item-03 { background-image: url('../images/bg_img03.jpg'); animation-delay: 10s;  background-position: center 80%; }

/* フェード：5秒周期に合わせた％計算 */
@keyframes fade-3-slides-overlap {
  0%   { opacity: 0; }
  5%   { opacity: 1; }  /* 0.75秒かけてフェードイン */
  33%  { opacity: 1; }  /* 5秒地点まで維持 */
  45%  { opacity: 0; }  /* 6.75秒地点までかけてフェードアウト（重なりを確保） */
  100% { opacity: 0; }
}

/* 移動：表示されている間（フェードアウト完了まで）動かし続ける */
@keyframes move-sync-with-fade {
  0%   { transform: translateX(0%); }    /* 開始位置を右（または中央）に */
  45%  { transform: translateX(-15%); }  /* 左へ流れるように移動 */
  
  /* 完全に消えた後、次の出番までに見えないところで元の位置に戻す */
  45.0001% { transform: translateX(0%); }
  100%     { transform: translateX(0%); }
}
/*------------------------------------------------------

メインビジュアルコピー

-------------------------------------------------------*/
.cocochi_img{
	text-align:center;
	padding:30px 0 15px;
	max-width:70%;
	margin: 0 auto;
}
@media screen and (min-width: 769px) {
.cocochi_img{
	padding:30px 0 ;
	}
}

.top--copy_inner{
	width:90%;
	margin: 40px auto;
	padding:0px 0;
	font-family: "MFW-HiraKakuStd-W5";
}
@media screen and (min-width: 769px) {
.top--copy_inner{
	display:flex;
	flex-wrap: wrap;
	gap:0px 20px;
	max-width:1000px;
	}
}

.top--copy_inner div{
	padding:25px 0 ;
	letter-spacing: var(--spacing);
	border-top:1px solid #5f5f5f;
}
@media screen and (min-width: 769px) {
.top--copy_inner div{

	flex: 0 0 calc(50% - 10px);
	}
}


.top--copy_inner div:last-child{
	border-bottom:1px solid #5f5f5f;
}
@media screen and (min-width: 769px) {
.top--copy_inner div:nth-child(3){
	border-bottom:1px solid #5f5f5f;
	}
}

.top--copy_inner div dt{
	font-size:clamp(18px,2vw,21px);
	color:var(--base-color);
	text-align:center;
	font-weight:500;
}
.top--copy_inner div sup{
	vertical-align: bottom;
	position: relative;
	top: 0px;
	left:3px;
	font-size:0.6em;
}

.green--color{
	color:var(--green-color);
}

/*------------------------------------------------------

コンセプトへの項目

-------------------------------------------------------*/
.k-char {
	display: inline-block;
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1), 
	transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.k-char.is-visible {
	opacity: 1;
	transform: translateY(0);
}
.materials_inner{
	background:var(--green-color);
	margin: 40px auto;
	padding:15px 0;
	text-align:center;
	font-size:clamp(27px,2vw,40px);
	color:#fff;
	letter-spacing: 2px;

}
.materials_inner .k-word-box{
	font-weight:700;
	font-family: "MFW-HiraKakuStd-W5";
}

.top--concept_inner{
	margin: 0 auto;
}

@media screen and (min-width: 769px) {
.top--concept_inner{
	max-width:1000px;
	}
}

.good-icon_inner {
	width:90%;
	margin: 0 auto;
	padding:0px 0 40px;
}
@media screen and (min-width: 769px) {
.good-icon_inner {
	width:55%;
	}
}


.good-icon_inner ul{
	display:flex;
	gap: 20px 0;
	justify-content:center;
	margin: 0 auto;
	text-align:center;
	flex-direction:column;
}
@media screen and (min-width: 769px) {
.good-icon_inner ul{
	justify-content:center;
	margin: 0 auto;
	text-align:center;
	}

}

.good-icon_inner ul li img{
	max-width:85%;
}
@media screen and (min-width: 769px) {
.good-icon_inner ul li img{
	max-width:100%;
	}
}
.good-icon_inner ul li{
	position:relative;
}
.good-icon_inner ul li sup{
	font-size:clamp(11px,2vw,12px);
	position:absolute;
	right:2%;
	top:4%;
}
@media screen and (min-width: 769px) {
.good-icon_inner ul li sup{
	top:5%;
	right:0%;
	}
}

.top--concept_dl{
	width:90%;
	margin:60px auto 10px;
	color:var(--base-color);
	text-align:center;
}
@media screen and (min-width: 769px) {
.top--concept_dl{
	max-width:1000px;
	margin:120px auto 10px;
	}
}

.top--concept_dl dl{
	margin:0px auto 60px;
	width:90%;	
}
@media screen and (min-width: 769px) {
.top--concept_dl dl{
	max-width:800px;	
	}
}


.top--concept_dl dt{
	letter-spacing: 15px;
	font-size:clamp(21px,2vw,35px);
	margin:0 0 20px;
	line-height:1.8;
	font-family: "MFW-HiraKakuStd-W4";
}
.top--concept_dl dd{
	letter-spacing: var(--spacing);
	font-size:clamp(14px,2vw,17px);
	line-height:2;
	text-align:justify;
	font-family: "MFW-HiraKakuStd-W2";
}

@media screen and (min-width: 769px) {
.top--concept_dl dd{
	text-align:center;
	}
}

.gif_inner{
	padding:0 0 70px;
	position:relative;
	width:100%;
	aspect-ratio: 16 / 9;
}
.gif_size img {
    width: 100%;
    height: auto;
}
.gif_size{
	position:absolute;
}
.gif_01 {
    right: 28%; /* 100px / 375px */
    top: 0%;
    width: 15%; /* max-widthの代わりにwidthを%で指定 */
}

.gif_02 {
    left: 26%;
    top: 10%;
    width: 18%;
}
.gif_03 {
    right: 5%;
    top: 25%;
    width: 20%;
}
.gif_04 {
    right: 26%;
    bottom: 23%;
    width: 20%;
}

.gif_05 {
    left: 5%;
    bottom: 0%;
    width: 45%;
}
.gif_06 {
    right: 0%;
    bottom: -10%;
    width: 15%;
}
@media screen and (min-width: 769px) {

.gif_02 {
    left: 26%;
    top: 15%;
    width: 15%;
}
.gif_03 {
    top: 30%;
    width: 18%;
}
.gif_04 {
    bottom: 10%;
    width: 18%;
}

.gif_05 {
     width: 40%;
}
.gif_06 {
    bottom: -15%;
    width: 13%;
}


}

/*------------------------------------------------------

TOPで使うボタン

-------------------------------------------------------*/
.top-btn_inner{
	width:93%;
	margin:0 auto;
}
@media screen and (min-width: 769px) {
.top-btn_inner{
	width:500px;
	}
}
.top-btn_inner p{
	width:50%;
	margin:0 auto;
}
.top-btn_inner .soon{
	border:1px solid #b9b9b9;
	background:#b9b9b9;
	padding: .7em 1em .7em 1em;
	border-radius:100px;
	text-align:center;
	color:#fff;
	font-size:clamp(16px,2vw,18px);
}











/* レイアウト全体 */
        .ss-flex-container {
            display: flex;
            justify-content: center;
            gap: 5px; /* アイテム間の隙間 */
            padding: 30px 0;
            width:93%;
            margin: 0 auto;


        }
@media screen and (min-width: 769px) {
.ss-flex-container {
	width:100%;
	}
}
        /* 各カードの親要素 */
        .ss-card-item {
            position: relative;
            height: 200px;
            overflow: hidden; /* はみ出た画像を隠す */
            border-radius: 8px; /* 角を少し丸く */
            
       }
@media screen and (min-width: 769px) {
.ss-card-item {
	height:auto;
	}
}
        .ss-card-item_one {
            position: relative;
            height: auto;
            overflow: hidden; /* はみ出た画像を隠す */
            border-radius: 8px; /* 角を少し丸く */
        }
.ill{
	position:absolute;
	left:5%;
	bottom:-120%;
	animation: fluffy 3s infinite;
}
@keyframes fluffy {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-20px);
  }
}


@media screen and (min-width: 769px) {
.ss-card-item_one {
	height:600px;
	}
}
        /* 画像の設定 */
        .ss-card-image {
            width: 100%;
            height: 100%;
            object-fit: cover; /* 枠に合わせてクロップ */
            transition: transform 0.4s ease; /* 拡大を滑らかに */
            display: block;
        }
        /* 中央のテキスト */
        .ss-card-label {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            color: #ffffff;
	font-size:clamp(22px,2vw,23px);
            font-weight: bold;
            text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); /* 可読性アップ */
            pointer-events: none; /* テキストがマウス反応を邪魔しないように */
            white-space: nowrap;
            z-index:2;
            text-align:center;
        }

        /* （オプション）背景が明るい画像の場合のオーバーレイ */
        .ss-card-item::after {
            content: "";
            position: absolute;
            top: 0; left: 0;
            width: 100%;
            height: 100%;
            z-index: 1;
        }
/* CITY: 透過ピンク (赤:255, 緑:192, 青:203, 不透明度:0.3) */
.ss-is-city::after { background-color: rgba(255, 100, 150, 0.4); }
.ss-is-green::after { background-color: rgba(0, 100, 0, 0.4); }
.ss-is-private::after { background-color: rgba(230, 230, 0, 0.4); }

.top--cmn_inner_notice{
	position:absolute;
	right:5px;
	bottom:0;
	text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
	font-size: 12px;
	color:#fff;
}

.button-container {
  display: flex;
  justify-content: center;
  align-items: center;
  margin:25px 0 0;
}

.styled-button {
  padding: 12px 50px 13px 24px;
  font-size:16px;
  background-color: var(--green-color);
  color: white;
  border: none;
  border-radius: 3px; 
  cursor: pointer;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease;
  outline: none;
}


.styled-button:hover {
  background-color: #C6D9C7; 
  transform: translateY(-2px);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15);
}
.styled-button:active {
  transform: translateY(1px);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.arrow_s_b {
  position: relative;
  display: inline-block;
  padding-left: 22px;
}
.arrow_s_b:before {
  content: '';
  width: 18px;
  height: 18px;
  background: #fff;
  border-radius: 50%;
  position: absolute;
  top: 0;
  right: 8px;
  bottom: 0;
  margin: auto;
}
.arrow_s_b:after {
  content: '';
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 4px 0 4px 6px;
  border-color: transparent transparent transparent var(--green-color);
  position: absolute;
  top: 0;
  right: 13px;
  bottom: 0;
  margin: auto;
}

/*------------------------------------------------------

ロケーション・アクセス・Plan・クオリティの構成

-------------------------------------------------------*/
.top--cmn_inner{
	padding:40px 0;
}
@media screen and (min-width: 769px) {
.top--cmn_inner{
	padding:80px 0;
	}
}

.white-bg{
	background:#fff;
}
.gray-bg{
	background:#f9f7f6;
}

.top--cmn_inner_copy{
	color:#5f5f5f;
	letter-spacing:2px;
	text-align:center;
	font-size:clamp(20px,2vw,25px);
	font-family: "MFW-HiraKakuStd-W4";
	margin:30px 0 40px;
	position:relative;
}

.arrow_r_more {
  position: relative;
  display: block;
  padding-right: 20px;
  color:#555;
  text-decoration:none;
  background:#fff;
	padding: .7em 1em .7em 1em;
	border-radius:100px;
	border:1px solid #555;
	font-size:clamp(16px,2vw,18px);
	text-align:center;
}
.arrow_r_more:before {
  content: '';
  width: 8px;
  height: 8px;
  border: 0;
  border-top: solid 1px #555;
  border-right: solid 1px #555;
  transform: rotate(45deg);
  position: absolute;
  top: 0;
  right: 20px;
  bottom: 0;
  margin: auto;
}
.arrow_r_more:hover{
	border:1px solid #f9f7f6;
	background:#e5e5e5;
}


.notice_inner_top{
	width:var(--spwidth);
	font-size:clamp(13px,2vw,15px);
	letter-spacing:var(--spacing);
	margin: 40px auto 20px;
	padding:25px 0;
	color:#5f5f5f;
}
@media (min-width: 769px) {
.notice_inner_top{
	width:var(--pcwidth);
	}
}
.notice_inner_top ul li{
 text-indent:-1em;
 padding-left:1em;
 line-height:1.8;
 font-family: "MFW-HiraKakuStd-W2";
}
.notice_inner_top ul li:before{
	content:"※";
}
