@charset "utf-8";
/*
.gnavi li:nth-child(7),
.gnavi li:nth-child(8) {
pointer-events: none
}
*/

/* 余計なハックを無効化 */
.sectionpoint { margin-top:0 !important; padding-top:0 !important; }

/* アンカー着地の余白もゼロに（念のため） */

html { scroll-padding-top:60px; }
#info, #message, #location, #quality, #lineup { scroll-margin-top:0px; }
@media ( max-width : 768px ){
html { scroll-padding-top:50px; }
#info, #message, #location, #quality, #lineup { scroll-margin-top:0px; }
}
/* 来場予約ボタン非表示 */
.hnavi li:nth-child(4){
display: none;
}
.footer_fix ul li:nth-child(5) {
display: none;
}
/* ハンバーガーボタン表示 */
@media ( max-width : 1060px ){
.hnavi li:nth-child(5) {
display: block;
opacity: 1;
visibility:visible;
}
}
/* グレーアウト .s_construction */
.s_construction {
-webkit-filter: grayscale(1);
filter: gray;
filter: grayscale(1);
cursor: default;
}
/* グロナビグレーアウト */
.gnavi li:nth-child(7) a {
opacity: 0.2;
pointer-events: none;
}

/* グロナビ NEW マーク */
.gnavi li {
  position: relative; }

.gnavi li:nth-child(99) a::after,
.gnavi li:nth-child(99) a::after,
.gnavi li:nth-child(99) a::after
{
  position: absolute;
  top: 3px;
  right: 3px;
  font-size: 11px;
  content: "NEW";
  color:#ffffff;
  background-color:#6B0608;
  padding: 1px 4px 1px 4px;
  line-height: 12px;
}


/*----------------------------------------------------
	枠
----------------------------------------------------*/
.s_waku_wrapper {
position: relative;
}
.s_waku {
position:absolute;
z-index: 4;
pointer-events: none;
border:4px solid rgba(215,199,163,1.00);
top:40px;
left:40px;
right:40px;
bottom:40px;
}
@media ( max-width : 1440px ){
.s_waku {
border:2px solid rgba(215,199,163,1.00);
top:30px;
left:30px;
right:30px;
bottom:30px;
}
}
@media ( max-width : 1024px ){
.s_waku {
border:2px solid rgba(215,199,163,1.00);
top:20px;
left:20px;
right:20px;
bottom:20px;
}
}
/*----------------------------------------------------
	共通タイトル
----------------------------------------------------*/
.s_main_title_01 {
font-size:30px;
line-height:1.8;
letter-spacing: 0.1em;
text-align: center;
font-weight:300;
}
.s_main_title_01 span {
font-size:30px;
line-height:1.3;
letter-spacing: 0.1em;
text-align: center;
font-weight:300;
width:100%;
display:block;
text-align: center;
}
@media ( max-width : 1700px ){
.s_main_title_01 {
font-size:26px;
}
}
@media ( max-width : 768px ){
.s_main_title_01 {
font-size:5vw;
}
.s_main_title_01 span {
font-size:3.5vw;
}
}
.s_top_00 .s_main_title_01,
.s_top_01 .s_main_title_01,
.s_top_02 {
text-align: left;
}
.s_main_title_02 {
font-size:110px;
line-height:1.3;
letter-spacing: 0.01em;
font-weight:300;
color:#d7d3d1;
padding-bottom:0px;
}
.s_main_title_02 span {
font-size:60px;
line-height:1.3;
letter-spacing: 0.05em;
font-weight:300;
width:100%;
display:block;
text-align: center;
}
@media ( max-width : 1660px ){
.s_main_title_02 {
font-size:80px;
}
}
@media ( max-width : 768px ){
.s_main_title_02 {
font-size:12vw;
}
.s_main_title_02 span {
font-size:7vw;
}
}

.s_main_title_03 {
font-size:110px;
line-height:1.3;
letter-spacing: 0.01em;
font-weight:300;
color:#d7d3d1;
padding-bottom:0px;
}
.s_main_title_03 span {
font-size:60px;
line-height:1.3;
letter-spacing: 0.05em;
font-weight:300;
width:100%;
display:block;
text-align: center;
}
@media ( max-width : 1660px ){
.s_main_title_03 {
font-size:80px;
}
}
@media ( max-width : 768px ){
.s_main_title_03 {
font-size:10vw;
}
.s_main_title_03 span {
font-size:6vw;
}
}

.s_text_01 {font-size:24px; font-feature-settings: "palt";}
.s_text_02 {font-size:22px; font-feature-settings: "palt";}
.s_text_03 {font-size:16px; font-feature-settings: "palt";}
.s_text_04 {font-size:16px; font-feature-settings: "palt";}
@media ( max-width : 1660px ) {
.s_text_01 {font-size:20px;}
.s_text_02 {font-size:18px;}
.s_text_03 {font-size:14px;}
.s_text_04 {font-size:14px;}
}
@media ( max-width : 768px ){
.s_text_01 {font-size:3.6vw;}
.s_text_02 {font-size:3.4vw;}
.s_text_03 {font-size:3.0vw;}
.s_text_04 {font-size:2vw;}
}



/*----------------------------------------------------
	共通横並びボックス
----------------------------------------------------*/
.s_col_01 {
display: flex;
justify-content:space-between;
flex-wrap:wrap;
align-items: center;
}
.s_col_01_01 {
width:50%;
}
.s_col_01_02 {
width:50%;
padding:0px 80px 0px 220px;
}
@media ( max-width : 1660px ) {
.s_col_01 {
align-items:flex-start;
}
.s_col_01_01 {
width:50%;
}
.s_col_01_02 {
width:50%;
padding:0px 60px 60px 100px;
}
.s_col_01_02_02 {
width:50%;
padding:190px 60px 60px 100px;
}
}
@media ( max-width : 768px ) {
.s_col_01_01 {
width:100%;
padding-right:80px;
}
.s_col_01_02 {
width:100%;
padding:30px 40px 30px 80px;
}
}

.s_col_02 {
display: flex;
justify-content:space-between;
flex-wrap:wrap;
align-items: center;
}
.s_col_02_01 {
width:50%;
}
.s_col_02_02 {
width:50%;
padding-top:1%;
padding-right:80px;
padding-bottom:0px;
padding-left:13%;
}
@media ( max-width : 1660px ) {
.s_col_02 {
align-items:flex-start;
}
.s_col_02_01 {
width:50%;
}
.s_col_02_02 {
width:50%;
padding:0px 60px 60px 100px;
padding-top:10%;
}
.s_col_02_03 {
padding-top:60px;
}
}
@media ( max-width : 768px ) {
.s_col_02_01 {
width:100%;
padding-left:40px;
padding-right:0px;
margin-top:-20px;
}
.s_col_02_02 {
width:100%;
padding:30px 40px 30px 80px;
}
.s_col_02_03 {
padding-top:30px;
}
}

.s_col_03 {
position: relative;
display: flex;
justify-content:center;
}
.s_col_03_01 {
width:48%;
left:15%;
top:10%;
position: absolute;
}
.s_col_03_02 {
width:40%;
padding-top:28%;
}

@media ( max-width : 1660px ) {
.s_col_03_01 {
width:52%;
left:10%;
top:10%;
position: absolute;
}
.s_col_03_02 {
width:50%;
padding-top:28%;
}
}
@media ( max-width : 768px ) {
.s_col_03_01 {
width:72%;
left:0%;
top:0%;
position: absolute;
}
.s_col_03_02 {
width:38%;
padding-top:35%;
}
.s_col_03_02_02 {
width:65%;

margin-left:15%;
}
.urbanlife .s_col_01 .s_urbanlife_02,
.s_col_03_01 .pic_caption_left_wht {
top:5px;
right:5px !important;
text-align: right;
}
.urbanlife .s_col_02 {
margin-top:-60px;
}
}

.s_col_04 {
display: flex;
justify-content:space-between;
flex-wrap:wrap;
align-items: center;
}
.s_col_04_01 {
width:35%;
}
.s_col_04_02 {
width:65%;
padding:0px 80px 0px 220px;
}
@media ( max-width : 1660px ) {
.s_col_04_01 {
width:35%;
}
.s_col_04_02 {
width:65%;
padding:0px 60px 60px 180px;
}
}
@media ( max-width : 768px ) {
.s_col_04_01 {
width:100%;
padding-left:80px;
}
.s_col_04_02 {
width:100%;
padding:30px 40px 30px 80px;
}
}

.s_top_m2 {
display: flex;
justify-content:space-between;
flex-wrap:wrap;
align-items: center;
width:100%;
margin:0 auto;
max-width: 1200px;
padding-bottom:140px;
}
.s_top_m2 figure {
width:32%;
}
@media ( max-width : 768px ){
.s_top_m2 {
display: flex;
justify-content:space-between;
flex-wrap:wrap;
align-items: center;
width:100%;
margin:0 auto;
max-width: 1200px;
padding-bottom:60px;
}
.s_top_m2 figure {
width:33.333%;
}
}
.s_top_m4 {
display: flex;
justify-content:space-between;
flex-wrap:wrap;
align-items: center;
width:100%;
margin:0 auto;
max-width: 90%;
}
.s_top_m4_item {
width:19%;
}
@media ( max-width : 768px ){
.s_top_m4_item {
width:100%;
padding:3em;
}
}
.s_top_m4_item .s_main_title_01 {
text-align: left;
font-size:28px;
font-weight: 400;
line-height: 1.5;
font-feature-settings: "palt";
}
.s_top_m4_item .s_main_title_01 span {
text-align: left;
font-size:22px;
font-weight: 400;
line-height: 1.5;
}
.s_top_m4_item .s_top_m_txt01 {
text-align: left;
font-size:18px;
font-weight: 400;
line-height: 1.8;
font-feature-settings: "palt";
padding-bottom:0.5em;
}
.s_top_m4_item .caption_left_blk a {
color:#333;
text-decoration: none;
}
.s_top_m4_item .caption_left_blk a:hover {
color:rgba(0,115,211,1.00);
text-decoration:underline;
}
@media ( max-width : 1100px ){
.s_top_m4_item .s_main_title_01 {
text-align: left;
font-size:18px;
font-weight: 400;
line-height: 1.5;
font-feature-settings: "palt";
}
.s_top_m4_item .s_main_title_01 span {
text-align: left;
font-size:14px;
font-weight: 400;
line-height: 1.5;
}
.s_top_m4_item .s_top_m_txt01 {
text-align: left;
font-size:12px;
font-weight: 400;
line-height: 1.8;
font-feature-settings: "palt";
padding-bottom:0.5em;
}
.s_top_m4_itemp .pic_caption_right_wht,
.s_top_m4_itemp p.pic_caption_left_wht,
.s_top_m4_itemp p.pic_caption_right_blk,
.s_top_m4_itemp p.pic_caption_left_blk,
.s_top_m4_itemp p.pic_caption_right_wht_noborder,
.s_top_m4_itemp p.pic_caption_left_blk_noborder,
.s_top_m4_itemp p.pic_caption_right_blk_noborder,
.s_top_m4_itemp p.pic_caption_left_wht_noborder,
.s_top_m4_itemp p.pic_caption_left_blk_noborder,
.s_top_m4_itemp p.caption_right_blk,
.s_top_m4_itemp p.caption_left_blk,
.s_top_m4_itemp p.caption_right_wht,
.s_top_m4_itemp p.caption_left_wht {
    font-size: 11px;
    line-height: 1.4;
  }

}
@media ( max-width : 768px ){
.s_top_m4_item .s_main_title_01 {
text-align: left;
font-size:4.5vw;
font-weight: 400;
line-height: 1.5;
font-feature-settings: "palt";
}
.s_top_m4_item .s_main_title_01 span {
text-align: left;
font-size:3.5vw;
font-weight: 400;
line-height: 1.5;
}
.s_top_m4_item .s_top_m_txt01 {
text-align: left;
font-size:2.4vw;
font-weight: 400;
line-height: 1.8;
font-feature-settings: "palt";
padding-bottom:0.5em;
}
}
/*----------------------------------------------------
	メインビジュアル
----------------------------------------------------*/
.pc { display: block; }
.sp { display: none; }

@media screen and (max-width: 768px) {
  .pc { display: none; }
  .sp { display: block; }
}

.sectionpoint {
padding-top:-60;
margin-top:60px;
}

/* ボタン */
.video_control {
  position: absolute;
  top: 60px;
  left: 60px;
  padding: 6px 16px;
  border: 1px solid #fff;
  color: #fff;
  background: transparent;
  cursor: pointer;
  z-index: 5;
  font-size: 14px;
  border-radius: 30px;
}
@media screen and (max-width: 768px) {
  .video_control {
    top: 30px;
    left: 30px;
    padding: 2px 16px;
    border-radius: 14px;
  }
}

/* 矢印のフェード制御 */
.cp_arrows {
  opacity: 0;
  transition: opacity 1s ease-in-out;
  z-index: 10;
}
.cp_arrows.visible {
  opacity: 1;
}

/* Safari再生ボタン非表示 */
video::-webkit-media-controls-start-playback-button {
  display: none !important;
  -webkit-appearance: none;
}
.s_info a {
color:#000;
}

.mainvisual_wrapper { position: relative; overflow: hidden; }

.cp_arrows{
  position: absolute;
  bottom: 10px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10; /* ロゴ(z-index:3)より前に */
}

/* アニメ（お持ちのarrow-move08を使う場合） */
.cp_arrows .cp_arrow:first-child { animation: arrow-move08 2s ease-in-out infinite; }
.cp_arrows .cp_arrow:nth-child(2){ animation: arrow-move08 2s 1s ease-in-out infinite; }

/* 環境で動きを減らす設定のときは静止表示 */
@media (prefers-reduced-motion: reduce){
  .cp_arrows .cp_arrow{ animation: none !important; opacity: 1 !important; }
}
@keyframes fadeIn { from{opacity:0} to{opacity:1} } /* 既存のものを流用でもOK */

.will-animate .cp_arrows{
  opacity: 0;
  animation: fadeIn var(--arrow-duration, 800ms) ease forwards;
  animation-delay: var(--arrow-delay, 5200ms); /* main-delay(4200ms)+少し待つ */
}
  .mainvisual_wrapper {
    position: relative;
    background: #000; /* 黒背景から開始 */
    overflow: hidden;

    /* フォールバック値（style属性未指定でも動く） */
    --logo2-delay: 0ms;
    --logo2-duration: 900ms;
    --logo1-delay: 900ms;
    --logo1-duration: 900ms;
    --main-delay: 2200ms;
    --main-duration: 8000ms;
  }

  /* レイヤー順と初期状態 */
  .mv_picture { position: relative; z-index: 1; }
  .mv_picture img { width: 100%; display: block; opacity: 0; }

  .main_logo1, .main_logo2 {
    position: absolute;
    left: 0; right: 0;
    width: 100%;
    max-width: 500px;
    margin: 0 auto;
    text-align: center;
    z-index: 3;         /* 画像より前面でフェード */
    opacity: 0;
  }
  .main_logo2 { top: 20vw; }
  .main_logo1 { top: calc(20vw + 50px); }

  .pic_caption_right_wht_noborder.pl40 {
    position: absolute;
    right: 40px;
    bottom: 16px;
    z-index: 4;
    color: #fff;
    font-size: 12px;
    letter-spacing: .08em;
    text-shadow: 0 0 3px rgba(0,0,0,.6);
  }
@media ( max-width : 1400px ){
.main_logo1, .main_logo2 {
    position: absolute;
    left: 0; right: 0;
    width: 100%;
    max-width: 300px;
    margin: 0 auto;
    text-align: center;
    z-index: 3;         /* 画像より前面でフェード */
    opacity: 0;
  }
  .main_logo2 { top: 20vw; }
  .main_logo1 { top: calc(20vw + 3vw); }
}
@media ( max-width : 768px ){
.main_logo1, .main_logo2 {
    position: absolute;
    left: 0; right: 0;
    width: 100%;
    max-width: 60%;
    margin: 0 auto;
    text-align: center;
    z-index: 3;         /* 画像より前面でフェード */
    opacity: 0;
  }
  .main_logo2 { top: 70vw; }
  .main_logo1 { top: calc(70vw + 5vw); }
}
  /* フェードイン */
  @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

  /* ★CSSだけで自動再生（.will-animate が付いていれば順次アニメ） */
  .will-animate .main_logo2 {
    animation: fadeIn var(--logo2-duration) ease forwards;
    animation-delay: var(--logo2-delay);
  }
  .will-animate .main_logo1 {
    animation: fadeIn var(--logo1-duration) ease forwards;
    animation-delay: var(--logo1-delay);
  }
  .will-animate .mv_picture img {
    animation: fadeIn var(--main-duration) linear forwards;
    animation-delay: var(--main-delay);
  }

  /* 動作軽減設定に配慮 */
  @media (prefers-reduced-motion: reduce) {
    .main_logo1, .main_logo2, .mv_picture img {
      animation: none !important;
      opacity: 1 !important;
    }
  }


.mv_01 {
background-image: url("../images/top/mv01.jpg");
min-height: calc( 100dvh - 60px );
background-position: center bottom;
background-size: cover;
}
@media ( max-width : 768px ){
.mv_01 {
background-image: url("../images/top/mv01_sp.jpg");
min-height: calc( 100dvh - 60px );
}
}

.mv_02 {
background-image: url("../images/top/mv02.jpg");
min-height: calc( 100dvh - 60px );
background-position: center bottom;
background-size: cover;
}
@media ( max-width : 768px ){
.mv_02 {
background-image: url("../images/top/mv02_sp.jpg");
min-height: calc( 100dvh - 60px );
}
}

.mv_03 {
background-image: url("../images/top/mv03.jpg");
min-height: calc( 100dvh - 60px );
background-position: center bottom;
background-size: cover;
}
@media ( max-width : 768px ){
.mv_03 {
background-image: url("../images/top/mv03_sp.jpg");
min-height: calc( 100dvh - 60px );
}
}

.mv_04 {
background-image: url("../images/top/mv04.jpg");
min-height: calc( 100dvh - 60px );
background-position: center bottom;
background-size: cover;
}
@media ( max-width : 768px ){
.mv_04 {
background-image: url("../images/top/mv04_sp.jpg");
min-height: calc( 100dvh - 60px );
}
}
.mv .pic_caption_right_wht {
padding-right:40px;
}
@media ( max-width : 768px ){
.mv .pic_caption_right_wht {
padding-right:20px;
}
}
.cp_arrows {
  position:absolute;
  display: flex;
  height: 80px;/*画面いっぱいにする場合100vh*/
  justify-content: center;
  align-items: center;
  bottom: 10px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 90;
}
.cp_arrows .cp_arrow {/*矢印を配置するベースの設定*/
  position: absolute;
  top: 50%;/*着地点(cp_arrowsの高さの50%)*/
  left: 50%;
  transform: translateX(-50%);
  width: 60px;
  height: 10px;
  opacity: 0;
}
.cp_arrows .cp_arrow:first-child {
  animation: arrow-move08 2s ease-in-out infinite;
}
.cp_arrows .cp_arrow:nth-child(2)  {
  animation: arrow-move08 2s 1s ease-in-out infinite;
}
.cp_arrows .cp_arrow:before,
.cp_arrows .cp_arrow:after {/*矢印全体の設定*/
  position: absolute;
  content: '';
  top: 0;
  width: 30px;
  height: 3px;
  background: #fff;
}
.cp_arrows .cp_arrow:before {/*矢印左の線の位置と傾斜*/
  left: 3px;
  transform: rotate(30deg);
}
.cp_arrows .cp_arrow:after {/*矢印左の線の位置と傾斜*/
  right: 3px;
  transform: rotate(-30deg);
}
@media ( max-width : 768px ){
.cp_arrows {
  position:absolute;
  display: flex;
  height: 30px;/*画面いっぱいにする場合100vh*/
  justify-content: center;
  align-items: center;
  bottom: 0px;
  left: 50%;
  transform: translateX(-50%);
}
}
@keyframes arrow-move08 {
    0% { opacity: 0; top: 0%;/*スタート地点(cp_arrowsの高さの40%)*/}
   70% { opacity: 1;}
  100% { opacity: 0;}
}
/*-----トップビックバナー　メインビジュアルタイトル----*/
.s_pic_title_01 {
font-size:52px;
line-height:1.3;
letter-spacing: 0.1em;
text-align: center;
font-weight:300;
position:absolute;
top:43%;
left:0px;
right:0px;
color:#fff;
}
.s_pic_title_01 span {
font-size:24px;
line-height:1.3;
letter-spacing: 0.1em;
text-align: center;
font-weight:300;
width:100%;
display:block;
padding-top:0.5em;
}
.big_end .s_pic_title_01 {
top:30%;
}
@media ( max-width : 1024px ) {
.s_pic_title_01 {
font-size:36px;
}
.s_pic_title_01 span {
font-size:20px;
}
}
@media ( max-width : 768px ) {
.s_pic_title_01 {
font-size:8vw;
top:36%;
}
.s_pic_title_01 span {
font-size:4vw;
}
.big_end {
margin-top:50px;
}
.big_end .s_waku_wrapper .s_top_00 {
height:60vw;
}
.big_end .s_pic_title_01 {
top:18%;
}
}

.mv .s_pic_title_01 {
top:48%;
}
@media ( max-width : 1024px ) {
.mv .s_pic_title_01 {
top:43%;
}
}
@media ( max-width : 768px ) {
.mv .s_pic_title_01 {
top:43%;
}
}




/*----------------------------------------------------
	トップページ
----------------------------------------------------*/
.s_info dl {
min-height:4em;
overflow-y: scroll;
padding-right:15px;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.s_info dl dt {
font-family: 'Noto Sans JP', Quicksand, 游ゴシック体, 'Yu Gothic', YuGothic, 'ヒラギノ角ゴシック Pro', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, Osaka, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
font-size:16px;
line-height:1.8;
width:16%;
margin-bottom:0.5em;
}
.s_info dl dd {
font-family: 'Noto Sans JP', Quicksand, 游ゴシック体, 'Yu Gothic', YuGothic, 'ヒラギノ角ゴシック Pro', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, Osaka, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
font-size:16px;
line-height:1.8;
width:80%;
margin-bottom:0.5em;
}
@media ( max-width : 768px ) {
.s_info dl dt {
font-size:2.2vw;
width:16%;
}
.s_info dl dd {
font-size:2.2vw;
width:80%;
}
}


.s_top_01 {
background-repeat: no-repeat;
background-position: center bottom;
background-size: cover;
position: relative;
height: auto;
width:100%;
min-height: 700px;
}
@media ( max-width : 1024px ) {
.s_top_01 {
min-height: 600px;
}
}
@media ( max-width : 768px ) {
.s_top_01 {
min-height: 280px;
padding:0 40px;
}
}


.s_top_02 {
padding:40px 80px;
position: relative;
width:80%;
margin-right:auto;
margin-left:auto;
}
@media ( max-width : 768px ) {
.s_top_01 {
padding:40px 30px 40px 40px;
position: relative;
width:100%;
}
}
.s_top_02 {
font-size:18px;
text-align: center;
line-height:3;
}
@media ( max-width : 1440px ) {
.s_top_02 {
font-size:16px;
text-align: center;
line-height:3;
}
.s_top_02 {
padding:0px 0px;
position: relative;
width:80%;
margin-right:auto;
margin-left:auto;
}
}
@media ( max-width : 768px ) {
.s_top_02 {
font-size:2.4vw;
text-align: center;
line-height:3;
}
.s_top_02 {
padding:0px 0px;
position: relative;
width:80%;
margin-right:0px;
margin-left:auto;
margin-right:auto;
}
}
.s_top_03 {
margin-top:60px;
text-align: center;
}
@media ( max-width : 768px ) {
.s_top_03 {
margin-top:40px;
text-align: center;
}
}
.s_top_03 a:hover {
opacity: 1 !important;
}
.s_top_03w {
text-align: center;
position: absolute;
bottom:200px;
left:0px;
right:0px;
}
@media ( max-width : 768px ) {
.s_top_03w {
bottom:100px;
}
.big_end .s_waku_wrapper .s_top_00 .s_top_03w {
bottom:60px;
}
}
.s_top_03w a:hover {
opacity: 1 !important;
}
.s_top_m1 .s_main_title_01,
.s_top_01 .s_main_title_01,
.s_top_01 .s_top_02 {
text-align: left;
}
.s_top_m1 {
background: #f4f2f2;
padding:80px 160px 120px;
}

.s_top_m1 figure {
float: right;
width:50%;
padding-left:10%;
}
@media ( max-width : 1700px ) {
.s_top_m1 figure {
float: right;
width:50%;
padding-left:40px;
}
}
.float_none { clear: both;}

.s_top_m_txt01 {
  font-size: 18px;
  line-height: 3;
}
@media ( max-width : 1600px ) {
.s_top_m1 {
background: #f4f2f2;
padding:40px 80px 60px;
}
.s_top_m1 .pic_caption_right_wht {
font-size:11px;
}
}
@media ( max-width : 1400px ) {
.s_top_m1 figure.pc {
display:none;
}
.s_top_m1 figure.sp {
display:block;
}
.s_top_m1 figure {
display:block;
float: none;
width:100%;
padding-left:0px;
}
.s_top_m_txt01 {
  padding-bottom:30px;
}
}
@media ( max-width : 768px ) {
.s_top_m1 {
padding:40px 10%;
width:100%;
margin-left:auto;
margin-right:auto;
}
.s_top_m1 .s_main_title_01 {
  font-size: 5vw;
  line-height: 1.8;
  letter-spacing: 0.1em;
  text-align: left;
  font-weight: 300;
  display:block;
}
.s_top_m1 figure {
display:block;
float: none;
width:100%;
padding-left:0px;
}
.s_top_m_txt01 {
  font-size:2.4vw;
  line-height: 3;
  padding-bottom:30px;
}

}

.s_top_m3 {
width:100%;
max-width: 600px;
margin:0 auto;
}

/*----------------------------------------------------
	休業のお知らせ
----------------------------------------------------*/

.holiday{
text-align: center;
color: white;
font-size: 18px;
line-height: 24px;
width:100%;
max-width:900px;
border: solid 1px #E7E7E7;
padding: 1%;
margin: auto;
margin-top: 2%;
margin-bottom: 2%;
}

@media ( max-width : 768px ) {
.holiday{
color: white;
font-size: 12px;;
line-height: 1.5em;
margin-bottom: 2%;

}
}

/*----------------------------------------------------
	インフォメーション
----------------------------------------------------*/

.info_text{
line-height: 1.37em;
font-size: 0.88em;
margin-bottom: 1.5em;
}

@media ( max-width : 768px ) {
.info_text{
line-height: 1.77em;
font-size: 0.98em;
}
}

.info_text_hd{
text-align: center;
color: white;
line-height: 1.77em;
font-size: 1.13em;
margin-bottom: 1.5em;
}

@media ( max-width : 768px ) {
.info_text_hd{
line-height: 1.77em;
font-size: 0.88em;
}
}


.info_text_shin{
width: 100%;
  padding: 30px 0;
  margin: auto;
  /*border: solid 2px #fffab5;*/
  font-size: 2.6em;
  line-height: 1.66em;
  text-align: center;
  color: #fff;
  background-image: radial-gradient(circle, rgba(255, 192, 58, 0.97), rgba(224, 162, 8, 0.97) 80%);
}

@media ( max-width : 768px ) {
.info_text_shin{
font-size: 1.4em;
line-height: 1.66em;
padding: 15px 0;
margin: auto;
}
}

.info_text_shin_act{
width: 100%;
  padding: 15px 0;
  margin: auto;
  /*border: solid 2px #fffab5;*/
  font-size: 2.1em;
  font-weight: 500;
  line-height: 1.16em;
  text-align: center;
  color: #fff;
  background-image: radial-gradient(circle, rgba(255, 58, 58, 1), rgba(175, 0, 0, 1) 80%);
}

@media ( max-width : 768px ) {
.info_text_shin_act{
font-size: 1.1em;
font-weight: 500;
line-height: 1.41em;
padding: 15px 0;
margin: auto;
}
}

/*----------------------------------------------------
	光るボタン
----------------------------------------------------*/

.button {
	background: #ebf4fa;
	color: #fff;
	display: inline-block;
	overflow: hidden;
	padding: 20px;
	position: relative;
	text-decoration: none;
}
.button::after {
	animation: 4s 0s shine linear infinite;
	background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,.4) 100%);
	content: '';
	height: 100%;
	left: -100%;
	position: absolute;
	top: 0;
	transform: skewX(-25deg);
	width: 50%;
}
@keyframes shine {
	20% {
		left: 150%;
	}
	100% {
		left: 150%;
	}
}


/*----------------------------------------------------
	トップ　メリット
----------------------------------------------------*/
.s_bg_merit {
background: url("../images/top/merit_base.jpg") top center no-repeat;
background-size: cover;
}
.s_bg_merit li {
background: rgba(39,11,0,0.9);
}
.s_bg_merit li:nth-child(2n) {
background: rgba(66,33,11,0.9);
}
.s_bg_merit li img {
width:100%;
}

@media ( max-width : 768px ) {
.s_bg_merit {
background: url("../images/top/merit_base_sp.jpg") top center no-repeat;
background-size: cover;
}
.s_bg_merit li {
background: rgba(39,11,0,0.9);
}
.s_bg_merit li:nth-child(3n) {
background: rgba(66,33,11,0.9);
}
.s_bg_merit li:nth-child(4n) {
background: rgba(39,11,0,0.9);
}
}


/*----------------------------------------------------
	アーバンライフ
----------------------------------------------------*/
.s_urbanlife_01 {
margin-top:-100px;
}
@media ( max-width : 768px ) {
.s_urbanlife_01 {
margin-top:-40px;
}
p.pic_caption_left_wht_noborder.s_urbanlife_02 {
right:20px;
left:auto;
bottom:50px;
}
}

/*----------------------------------------------------
	プラン
----------------------------------------------------*/
.plan_kankyo{
width: 88%;
max-width: 600px;
margin: auto;
}
.plan_btn_wrapper {
display: flex;
flex-wrap: wrap;
justify-content:space-between;
}
.plan_btn {
width:48%;
margin-bottom:2em;
}
/*----------------------------------------------------
	ポジション
----------------------------------------------------*/
.s_position_01 {
width:100%;
max-width: 221px;
margin:0 auto;
}
@media ( max-width : 768px ) {
.s_position_01 {
width:100%;
max-width: 25%;
}
}
/*----------------------------------------------------
	デザイン
----------------------------------------------------*/
.s_design_01 {
border-right:solid 1px #ccc;
padding-right:20px;
}
.s_design_02 img {
width:100%;
}
.s_design_03 {
width:55%;
bottom:6%;
left:0;
position:absolute;
}
.s_design_04 {
width:98%;
bottom:6%;
left:0;
position:absolute;
}
@media ( max-width : 768px ) {
.s_design_01 {
border-right:none;
padding-right:0px;
}
.s_design_02 {
text-align: right;
}
.s_design_02 img {
width:80% !important;
}
}

/*----------------------------------------------------
	ソフトサービス
----------------------------------------------------*/
.s_softservice_01 {
width:40%;
position: absolute;
top:-90px;
right:5%;
z-index: 1;
}
.s_softservice_02 {
width:40%;
position: absolute;
top:-90px;
left:5%;
z-index: 1;
}
.s_softservice_04 {
width:40%;
position: absolute;
top:-90px;
right:5%;
z-index: 1;
}
@media ( max-width : 768px ) {
.s_softservice_01 {
width:48%;
position: absolute;
top:-11vw;
right:12%;
}
.s_softservice_02 {
width:48%;
position: absolute;
top:-11vw;
left:5%;
}
.s_softservice_04 {
width:48%;
position: absolute;
top:-11vw;
right:5%;
}
}

.s_softservice_03 {
width:100%;
margin:0 auto;
background: #ffffff;
border-radius: 50px;
padding:60px 180px;
}

@media ( max-width : 768px ) {
.s_softservice_03 {
border-radius: 30px;
padding:30px 20px;
}
}
/*----------------------------------------------------
	アクセス
----------------------------------------------------*/
@media (max-width: 1660px) {
.s_access01 {
    padding-top: 0%;
    padding-right: 13%;
  }
}
.s_access02 {
    padding-left: 13%;
    padding-right: 13%;
    padding-top:60px;
  }
@media (max-width: 1660px) {
  .s_access02 {
    padding-left: 100px;
    padding-right: 100px;
  }
}
@media (max-width: 768px) {
  .s_access02 {
    padding-left: 80px;
    padding-right: 60px;
    padding-top:30px;
  }
}
/*----------------------------------------------------
	設備仕様
----------------------------------------------------*/
.s_equipment_01 {
width:100%;
margin:0 auto;
background: #ffffff;
border-radius: 50px;
padding:0px 0px 80px;
}
@media ( max-width : 768px ) {
.s_equipment_01 {
border-radius: 30px;
padding:0px 0px 40px;
}
}
.s_equipment_01 .s_equipment_02 {
padding:20px;
border-radius: 50px 50px 0px 0px;
}
@media ( max-width : 768px ) {
.s_equipment_01 .s_equipment_02 {
padding:10px;
border-radius: 30px 30px 0px 0px;
}
}
.s_equipment_03 {
width:100%;
margin:0 auto;
padding:80px 100px 0px;
}
@media ( max-width : 768px ) {
.s_equipment_03 {
padding:40px 20px 0px;
}
}
.s_equipment_04 {
width:100%;
margin:0 auto;
background: #ffffff;
border-radius: 50px;
padding:80px 180px 80px;
}
@media ( max-width : 768px ) {
.s_equipment_04 {
border-radius: 30px;
padding:40px 20px 40px;
}
}
.s_equipment_05 {
width:100%;
margin:0 auto;
background: #ffffff;
border-radius: 50px;
padding:80px 110px 80px;
}
@media ( max-width : 768px ) {
.s_equipment_05 {
border-radius: 30px;
padding:40px 15px 40px;
}
}

.s_equipment_00 {
    display: flex;
    flex-wrap: wrap;
}
.s_equipment_00 ul {
list-style: none;
}
.s_equipment_00 li {
    flex: 1 1;
    order: -1;
    position: relative;
    min-width: 70px;
    background-color: #f9b30f;
    color: #ffffff;
    text-align: center;
    cursor: pointer;
    list-style: none;
}
.s_equipment_00 li a {
color:#fff;
text-decoration: none;
display: block;
padding: .7em 1em;
}
.s_equipment_00 li.active {
    background-color: #e36511;
    color: #fff;
    display: block;
}
.s_equipment_00 li:hover {
    background-color:#F48800;
    color: #fff;
}
.s_equipment_00 li.active:hover {
    background-color:#F48800;
    color: #fff;
}

.s_equipment_00 li.active a::before {
    position: absolute;
    bottom: -8px;
    left: 50%;
    transform: translateX(-50%);
    width: 18px;
    height: 9px;
    background-color: #e36511;
    content: '';
    clip-path: polygon(0 0, 100% 0, 50% 100%);
}



/*----------------------------------------------------
	デベロッパー
----------------------------------------------------*/

.s_developer_01 {
max-width:500px;
margin:0 auto;
}
.s_developer_02 {
max-width:360px;
margin:0 auto;
}
.s_developer_03 {
max-width:350px;
margin:0 auto;
}
@media ( max-width : 768px ) {
.s_developer_01 {
max-width:100%;
}
.s_developer_02 {
max-width:70%;
}
.s_developer_03 {
max-width:70%;
}
}

/*----------------------------------------------------
	ロケーション
----------------------------------------------------*/

.s_location_01 {
position:absolute;
left:0px;
top:0px;
width:66px;
transition:all 0.3s;
background: rgba(0,0,0,.5);
padding:15px;
display: block;
z-index: 2;
}
.s_location_01:hover {
cursor: pointer;
}
.s_location_01 img {
opacity: 0.6;
}
.s_location_01:hover img {
opacity: 1;
-webkit-transform: scale(1.1);
transform: scale(1.1);
transition:all 0.5s;
}
@media ( max-width : 768px ) {
.s_location_01 {
width:15%;
padding:3%;
}
}

.s_floormap {
overflow-y: auto;
height:1000px;
border:solid 1px #dfdfdf;
position: relative;
}
@media ( max-width : 768px ) {
.s_floormap {
height:250px;
}
}

.s_location_02 {
    display: flex;
    flex-wrap: wrap;
}

.s_location_02 > label {
    flex: 1 1;
    order: -1;
    position: relative;
    min-width: 70px;
    padding: .7em 1em;
    background-color: #f9b30f;
    color: #ffffff;
    text-align: center;
    cursor: pointer;
}

.s_location_02 label:has(:checked) {
    background-color: #e36511;
    color: #fff;
}
.s_location_02 > label:hover {
    background-color:#F48800;
    color: #fff;
}

.s_location_02 label:has(:checked)::before {
    position: absolute;
    bottom: -8px;
    left: 50%;
    transform: translateX(-50%);
    width: 18px;
    height: 9px;
    background-color: #e36511;
    content: '';
    clip-path: polygon(0 0, 100% 0, 50% 100%);
}

.s_location_02 input {
    display: none;
}

.s_location_02 > div {
    display: none;
    width: 100%;   
}
.s_location_02 > div {
animation: fadeIntab 1s ease;
}
.s_location_02 label:has(:checked) + div {
    display: block;
}
@keyframes fadeIntab {
	0% {opacity: 0;}
	100% {opacity: 1;}
}

/*----------------------------------------------------
	ブランド
----------------------------------------------------*/
.s_brand_logo {
width:100%;
max-width: 583px;
margin:0 auto;
}
@media ( max-width : 768px ) {
.s_brand_logo {
max-width: 90%;
}
}

/*----------------------------------------------------
	物件概要
----------------------------------------------------*/
.s_outline th,
.s_outline td {
border: solid 1px #cccccc;
padding:0.8em 1em;
font-size:1rem;
line-height: 1.6;
}

.s_outline table {
border-collapse:  collapse;
width:100%;
}
.s_outline table tr {
border-collapse:  collapse;
width:100%;
}
.s_outline th {
width:25%;
font-weight:normal;
background:#dfdfdf;
text-align:left;
white-space:nowrap;
}

.s_outline td {
font-weight:normal;
background:#ffffff;
}
@media ( max-width : 768px ) {
.s_outline table td {
width:100%;
}
.s_outline th,
.s_outline td {
display: block;
width:100% !important;
border-bottom:none;
border-top:none;
font-size:0.8rem;
}
colgroup col {
width:100% !important;
}
.s_outline tr:c {
border-top: solid 1px #cccccc;
}
.s_outline td:last-child {
border-bottom: solid 1px #cccccc;
}
}

/*----------------------------------------------------
	限定ページ
----------------------------------------------------*/

a.s_limited_01 {
border:solid 1px rgba(255, 255, 255, 0.5);
display: block;
box-shadow: 6px 6px rgba(255, 255, 255, 0.3);

}
/*a.s_limited_01:hover {
box-shadow: 4px 4px rgba(255, 255, 255, 0.3);
margin-left:2px;
margin-top:2px;
}*/

.s_limited_02 {
position: absolute;
top:19%;
left:0;
right:0;
text-align: center;
}

.s_planbox a {
text-decoration: none;
}
.s_plan_inner {

}
.s_plan_inner {
padding:40px;
background:#ffffff;
}
@media ( max-width : 768px ) {
.s_plan {
padding-left:10px;
padding-right:10px;
}
.s_plan_inner {
padding:10px;
}
}
@media (max-width: 1050px) {
.w1050 .s_limited_inner {
padding-left: 15px;
padding-right: 15px;
}
}

/*----------------------------------------------------
	現地案内図
----------------------------------------------------*/
.map_container {
  position: relative;
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  margin-bottom: 40px;
  border: solid 1px rgba(127,108,82,1.00);
}

.zoom_wrap {
  display: inline-block;
  touch-action: none;
  cursor: grab;
  transform-origin: top left;
  transition: transform 0.2s ease;
}

.zoom_wrap img {
  display: block;
  width: 100%;
  height: auto;
  user-select: none;
  pointer-events: none;
}

.zoom_buttons {
  position: absolute;
  bottom: 10px;
  right: 10px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.zoom_buttons button {
  background: rgba(0, 0, 0, 0.6);
  color: #fff;
  border: none;
  padding: 4px 8px;
  font-size: 16px;
  border-radius: 4px;
  cursor: pointer;
}

.zoom_buttons button:hover {
  background: rgba(0, 0, 0, 0.8);
}


@media ( max-width : 768px ) {
.zoom_buttons {
  position: absolute;
  bottom: 10px;
  right: 10px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
}

/*----------------------------------------------------
	サブタイトル
----------------------------------------------------*/
.s_sub_title {
/*max-width: 340px;*/
width: auto;
margin:-50px auto 0 auto;
display: flex;
text-align: center;
}
.s_sub_title div {
text-align: center;
margin:0 auto;
}
.s_sub_title img {
width: auto;
max-width: 100%;
height: auto;
max-height:100px;
}
@media ( max-width : 768px ) {
.s_sub_title {
margin:-20px auto 0 auto;
}
.s_sub_title img {
max-height:50px;
}
}

a.s_page_navi_btn {
border:solid 2px #0071bc;
color:#0071bc;
text-decoration: none;
width: 100%;
display: block;
}
a.s_page_navi_btn:hover {
color:#ffffff;
text-decoration: none;
background: #0071bc;
}

.arrow {
  position: relative;
}
.arrow::before,
.arrow::after {
  content: "";
  position: absolute;
  top: calc(50% - 2px);
  left: 20px;
  width: 16px;
  height: 4px;
  border-radius: 9999px;
  background-color: #ffffff;
  transform-origin: 2px 50%;
}

.arrow::before {
  transform: rotate(45deg);
}

.arrow::after {
  transform: rotate(-45deg);
}
.plan_btn_wrapper a {
text-decoration: none !important;
}
.arrow2 {
  position: relative;
}
.arrow2::before,
.arrow2::after {
  content: "";
  position: absolute;
  top: calc(50% - 2px);
  right: 20px;
  width: 16px;
  height: 4px;
  border-radius: 9999px;
  background-color: #ffffff;
  transform-origin: calc(100% - 2px) 50%;
}

.arrow2::before {
  transform: rotate(45deg);
}

.arrow2::after {
  transform: rotate(-45deg);
}

/*----------------------------------------------------
  スライダー（lineup）
----------------------------------------------------*/

/* === PC/タブレット（固定レイアウト）============================== */
@media (min-width: 769px){
  /* 上段：3列固定 + 余白 */
  #lineupSlider.static-grid .swiper-wrapper{
    display: grid !important;
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: auto;
    gap: 28px;                  /* ← “スライド感の余白” */
    transform: none !important; /* Swiperのtransformを殺す */
  }
  /* 3枚だけ表示（4枚目以降は非表示） */
  #lineupSlider.static-grid .swiper-slide:nth-child(n+4){ display:none; }

  /* 下段：2列固定 + 余白 */
  #lineupSlider2.static-grid .swiper-wrapper{
    display: grid !important;
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: auto;
    gap: 28px;                  /* ← 余白 */
    transform: none !important;
  }
  /* 2枚だけ表示（3枚目以降は非表示） */
  #lineupSlider2.static-grid .swiper-slide:nth-child(n+3){ display:none; }

  /* 固定時はナビ/ドットを隠す */
  #lineupSlider.static-grid .swiper-button-prev,
  #lineupSlider.static-grid .swiper-button-next,
  #lineupSlider.static-grid .swiper-pagination,
  #lineupSlider2.static-grid .swiper-button-prev,
  #lineupSlider2.static-grid .swiper-button-next,
  #lineupSlider2.static-grid .swiper-pagination{
    display: none !important;
  }

  /* コンテナ幅＆中央寄せ（必要なら調整） */
  #lineupSlider.s_top_m4.swiper,
  #lineupSlider2.s_top_m4.swiper{
    max-width: 90%;
    margin: 0 auto;
    overflow: visible !important; /* 角が切れないように */
    background: #fff;
  }
}

/* === スマホ（Swiperを使う）======================================= */
@media (max-width: 768px){
  /* スマホではナビ/ドットを表示させる */
  #lineupSlider .swiper-button-prev,
  #lineupSlider .swiper-button-next,
  #lineupSlider .swiper-pagination,
  #lineupSlider2 .swiper-button-prev,
  #lineupSlider2 .swiper-button-next,
  #lineupSlider2 .swiper-pagination{
    display: block !important;
  }
}



/* === 修正パッチ：背景色 / 幅そろえ / 矢印色 ===================== */

/* スライドカードの背景色を常に付ける（静的グリッド時も有効） */
#lineupSlider .s_top_m4_item,
#lineupSlider2 .s_top_m4_item{
  background:#f4f2f2 !important; /* 既存のnth指定より優先 */
  padding:3em;
}
@media (max-width:1100px){
#lineupSlider .s_top_m4_item,
#lineupSlider2 .s_top_m4_item{
  background:#f4f2f2 !important; /* 既存のnth指定より優先 */
  padding:1.5em;
}
}
/* スマホ時の矢印色（デフォの水色を強制上書き） */
@media (max-width: 768px){
  #lineupSlider, #lineupSlider2{ --swiper-theme-color:#666; }
  #lineupSlider .swiper-button-prev,
  #lineupSlider .swiper-button-next,
  #lineupSlider2 .swiper-button-prev,
  #lineupSlider2 .swiper-button-next{
    color:#666 !important;
  }
}

/* PC/タブレットは上下とも“3カラム幅”で統一して余白も付与 */
@media (min-width: 769px){
  /* 上段・下段とも3カラム固定（＝カード幅が揃う） */
  #lineupSlider.static-grid .swiper-wrapper,
  #lineupSlider2.static-grid .swiper-wrapper{
    display:grid !important;
    grid-template-columns: repeat(3, minmax(0,1fr));
    grid-auto-rows:auto;
    gap:28px;                     /* ← スライド感の余白 */
    transform:none !important;
  }

  /* 上段は3枚だけ表示（4枚目以降は非表示） */
  #lineupSlider.static-grid .swiper-slide:nth-child(n+4){ display:none; }

  /* 下段は2枚だけ表示（3枚目以降は非表示）
     ※3カラムグリッドの1列目・2列目に並ぶので“上段と同じ幅”になります */
  #lineupSlider2.static-grid .swiper-slide:nth-child(n+3){ display:none; }

  /* 固定時はナビ/ドットを消す（念のため） */
  #lineupSlider.static-grid .swiper-button-prev,
  #lineupSlider.static-grid .swiper-button-next,
  #lineupSlider.static-grid .swiper-pagination,
  #lineupSlider2.static-grid .swiper-button-prev,
  #lineupSlider2.static-grid .swiper-button-next,
  #lineupSlider2.static-grid .swiper-pagination{
    display:none !important;
  }

  /* コンテナの幅と中央寄せ（必要なら調整可） */
  #lineupSlider.s_top_m4.swiper,
  #lineupSlider2.s_top_m4.swiper{
    max-width:90%;
    margin:0 auto;
    overflow:visible !important;
    background:#fff;
  }
}
@media (min-width: 769px){
  #lineupSlider2.static-grid .swiper-wrapper{
    justify-items: stretch; /* 既定 */
  }
}

@media (min-width:1025px){
  #lineupSlider2[data-static="on"] .swiper-wrapper{
    display:grid !important;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 28px;                 /* 上段と同じ“スライド感の余白” */
    transform:none !important; /* 念のため */
  }
  /* 1カラム目の“空き”を作る（これがセンター寄せのキー） */
  #lineupSlider2[data-static="on"] .swiper-wrapper::before{
    content:"";
  }
  /* 2枚だけ見せる（既存指定の再確認用／重複OK） */
  #lineupSlider2[data-static="on"] .swiper-slide:nth-child(n+3){
    display:none;
  }
  /* 固定表示中はナビ/ドットを隠す（保険） */
  #lineupSlider2[data-static="on"] .swiper-button-prev,
  #lineupSlider2[data-static="on"] .swiper-button-next,
  #lineupSlider2[data-static="on"] .swiper-pagination{
    display:none !important;
  }
}


/* 下段（#lineupSlider2）のPC/タブレット時：2枚を中央寄せ＋上段と同じカード幅 */
@media (min-width: 769px){
  /* Grid指定を無効化してフレックスで中央寄せ */
  #lineupSlider2.static-grid .swiper-wrapper{
    display: flex !important;
    justify-content: center;           /* ← 中央寄せ */
    align-items: stretch;
    gap: 28px;                          /* ← “スライド感の余白” */
    transform: none !important;         /* Swiperのtransformを殺す */
  }
  /* カード幅＝3カラムの1カラム分に固定（上段と同じ見え方） */
  #lineupSlider2.static-grid .swiper-slide{
    flex: 0 0 calc((100% - 2 * 28px) / 3);  /* 3カラム想定：gap×2 を引いて1/3 */
    width: calc((100% - 2 * 28px) / 3) !important;
    height: auto !important;
  }
  /* 2枚だけ表示（3枚目以降は隠す） */
  #lineupSlider2.static-grid .swiper-slide:nth-child(n+3){
    display: none !important;
  }
  /* 固定表示中はナビ/ドットは非表示（保険） */
  #lineupSlider2.static-grid .swiper-button-prev,
  #lineupSlider2.static-grid .swiper-button-next,
  #lineupSlider2.static-grid .swiper-pagination{
    display: none !important;
  }
}

h4.lineuptitle {
background-color: rgba(118,7,8,1.00);
color:#fff;
display:block;
text-align: center;
max-width: 800px;
margin:1em auto;
font-size:30px;
font-weight: normal;
padding:0.3em;
}

h4.lineuptitle2 {
background-color: #666;
color:#fff;
display:block;
text-align: center;
max-width: 800px;
margin:3em auto 1em;
font-size:30px;
font-weight: normal;
padding:0.3em;
}
@media (max-width:768px){
h4.lineuptitle {
background-color: rgba(118,7,8,1.00);
color:#fff;
display:block;
text-align: center;
max-width: 80%;
margin:1em auto;
font-size:3vw;
font-weight: normal;
padding:0.3em;
}

h4.lineuptitle2 {
background-color: #666;
color:#fff;
display:block;
text-align: center;
max-width: 80%;
margin:3em auto 1em;
font-size:3vw;
font-weight: normal;
padding:0.3em;
}
}


/* タイトル高さ合わせ（任意） */
.s_top_m4_item .s_main_title_01 { height:4em; }



a.outlink {
background:#000;
color:#fff !important;
padding:0.5em 2em;
border-radius: 1.5em;
margin-top:2px;
display:inline-block;
}
a.outlink:hover {
text-decoration: none !important;
}
.explain {
padding:0.3em;
font-size:11px;
background: rgba(102,20,22,1.00);
border:solid 1px #fff;
color:#fff;
position: absolute;
top:-20em;
left:0px;
right:0px;
display:inline-block;
margin:0 auto;
text-align: center;
}
@media ( max-width : 768px ) {
.explain {
padding:0.3em;
font-size:2.8vw;
top:3px;
left:3px;
}
}

/* ===== Floating Banner（基本）===== */
#fix_banner_top2{
  position: fixed;
  left: 80px;
  top: 400px;
  right: auto;
  bottom: auto;
  z-index: 9999;
  display: none !important;            /* 初期は非表示（.show で出す） */
  opacity: 0;                          /* フェード基準値 */
  transform: translateY(10px);
  transition: opacity .35s ease, transform .35s ease;
  background: rgba(37,4,5,1);
  color:#fff;
  width: 100%;
  max-width: 400px;
  text-align: center;
  padding: 10px;
  height: auto;                        /* 伸び防止 */
}
#fix_banner_top2 .inner{ border: 1px solid #fff; }
#fix_banner_top2 a{
  color:#fff; text-decoration:none; text-align:center;
  display:block; padding:1em; font-size:22px; line-height:2;
}

/* ▼フェード用状態クラス */
#fix_banner_top2.pre{
  display:block !important;            /* 透明のまま描画してから .show */
  opacity:0;
  transform: translateY(10px);
}
#fix_banner_top2.show{
  opacity:1;
  transform: translateY(0);
}
#fix_banner_top2.autohide{
  opacity:0;
  transform: translateY(10px);
  /* pointer-events は付けない → リンク阻害防止（必要なら付与） */
}

#fix_banner_top2 a span {
  display: block;
  margin:0 auto;
}
/* デスクトップだけ hover 演出 */
@media (hover: hover) and (pointer: fine){
  #fix_banner_top2:hover{ opacity: .4; }
}

/* スマホでは hover/activeを常に打ち消し。再表示は必ず不透明 */
@media (hover: none){
  #fix_banner_top2:hover,
  #fix_banner_top2:active{ opacity: 1 !important; }
  #fix_banner_top2.show,
  #fix_banner_top2.show:hover,
  #fix_banner_top2.show:active{
    opacity: 1 !important;
    transform: translateY(0) !important;
  }
}

/* オプション：オーバーレイを使う場合（HTML未挿入なら無視されます） */
.floating-banner-overlay{
  position: fixed; inset:0; z-index:9998;
  background: rgba(0,0,0,.35);
  display:none; opacity:0; transition: opacity .35s ease;
  pointer-events:none;
}
.floating-banner-overlay.show{ display:block; opacity:1; pointer-events:auto; }

/* Close(×) の崩れ防止 */
#fix_banner_top2 .bn_close{
  position:absolute;
  top:-10px; right:-10px;
  width:32px; height:32px; aspect-ratio:1/1;
  padding:0; border:none; border-radius:50%;
  background:rgba(0,0,0,.65);
  cursor:pointer; -webkit-appearance:none; appearance:none;
  line-height:1; box-sizing:content-box; z-index:3;
}
#fix_banner_top2 .bn_close::before,
#fix_banner_top2 .bn_close::after{
  content:""; position:absolute; top:50%; left:50%;
  width:18px; height:2px; background:#fff; transform-origin:50% 50%;
}
#fix_banner_top2 .bn_close::before{ transform:translate(-50%,-50%) rotate(45deg); }
#fix_banner_top2 .bn_close::after{  transform:translate(-50%,-50%) rotate(-45deg); }

/* SP：位置とサイズだけ調整（意匠はそのまま） */
@media (max-width:768px){
  #fix_banner_top2{
    left: 0; top: 60px; right: auto; bottom: auto !important;
    max-width: 60%;
  }
  #fix_banner_top2 a{ font-size: 3vw; }
}

/* 動きを減らす設定に配慮 */
@media (prefers-reduced-motion: reduce){
  #fix_banner_top2, .floating-banner-overlay{ transition:none !important; }
}


#lineupSlider [data-aos],
#lineupSlider2 [data-aos]{ transform:none !important; opacity:1 !important; }

/* アイコン */
.dli-chevron-down{
  display:inline-block; vertical-align:middle; color:#fff; line-height:1;
  width:1em; height:1em; border:.1em solid currentColor;
  border-left:0; border-bottom:0; box-sizing:border-box;
  transform: translateY(-25%) rotate(135deg);
}


/* autohideが常に勝つ（スマホの:active残りを潰す） */
#fix_banner_top2.autohide,
#fix_banner_top2.autohide:hover,
#fix_banner_top2.autohide:active,
#fix_banner_top2.autohide:focus{
  opacity: 0 !important;
  transform: translateY(10px) !important;
}

/* スマホでは hover/active を無効化。復帰時は必ず不透明 */
@media (hover: none){
  #fix_banner_top2:hover,
  #fix_banner_top2:active{ opacity: 1 !important; }
  #fix_banner_top2.show,
  #fix_banner_top2.show:hover,
  #fix_banner_top2.show:active{
    opacity: 1 !important;
    transform: translateY(0) !important;
  }
}
/* メニューOPEN中は問答無用でバナーを隠す（他の状態より優先） */
body.menu-open #fix_banner_top2{
  opacity: 0 !important;
  transform: translateY(10px) !important;
  pointer-events: none; /* 触れないように */
}

/* スマホで復帰時に“半透明のまま”を防ぐ（不透明で戻す） */
@media (hover: none){
  #fix_banner_top2.show,
  #fix_banner_top2.show:hover,
  #fix_banner_top2.show:active{
    opacity: 1 !important;
    transform: translateY(0) !important;
  }
}
@media (max-width:1100px){
.s_top_m4_item p.pic_caption_right_wht,
.s_top_m4_item p.pic_caption_left_wht,
.s_top_m4_item p.pic_caption_right_blk,
.s_top_m4_item p.pic_caption_left_blk,
.s_top_m4_item p.pic_caption_right_wht_noborder,
.s_top_m4_item p.pic_caption_left_blk_noborder,
.s_top_m4_item p.pic_caption_right_blk_noborder,
.s_top_m4_item p.pic_caption_left_wht_noborder,
.s_top_m4_item p.pic_caption_left_blk_noborder,
.s_top_m4_item p.caption_right_blk,
.s_top_m4_item p.caption_left_blk,
.s_top_m4_item p.caption_right_wht,
.s_top_m4_item p.caption_left_wht {
    font-size: 11px !important;
    line-height: 1.4;
  }
}
/* ページネーションは常に非表示 */
#lineupSlider .swiper-pagination,
#lineupSlider2 .swiper-pagination,
.swiper-pagination{
  display: none !important;
}