@charset "UTF-8";
/* CSS Document */

/*--------------------------------------------------------------
Reset:
----------------------------------------------------------------
*/

/* 
html5doctor.com Reset Stylesheet
v1.6.1
Last Updated: 2010-09-17
Author: Richard Clark - http://richclarkdesign.com 
Twitter: @rich_clark
*/

html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
margin:0;
padding:0;
border:0;
outline:0;
font-size:100%;
vertical-align:baseline;
background:transparent;
}

body {
line-height:1;
}

article,aside,details,figcaption,figure,
footer,header,hgroup,menu,nav,section { 
display:block;
}

nav ul,
ul,
li{
list-style:none;
}

blockquote, q {
quotes:none;
}

blockquote:before, blockquote:after,
q:before, q:after {
content:'';
content:none;
}

a {
margin:0;
padding:0;
font-size:100%;
vertical-align:baseline;
background:transparent;
text-decoration: none;
color: #000;
}

a:hover{
opacity: 0.5;
}

/* change colours to suit your needs */
ins {
background-color:#ff9;
color:#000;
text-decoration:none;
}

/* change colours to suit your needs */
mark {
background-color:#ff9;
color:#000; 
font-style:italic;
font-weight:bold;
}

del {
text-decoration: line-through;
}

abbr[title], dfn[title] {
border-bottom:1px dotted;
cursor:help;
}

table {
border-collapse:collapse;
border-spacing:0;
}

/* change border colour to suit your needs */
hr {
display:block;
height:1px;
border:0;   
border-top:1px solid #cccccc;
margin:1em 0;
padding:0;
}

input, select {
vertical-align:middle;
}

img{
width: 100%;
line-height: 1;
}

/*--------------------------------------------------------------
common:
----------------------------------------------------------------
*/
* {
-webkit-transition: all 0.5s;
-moz-transition: all 0.5s;
transition: all 0.5s;
}

html{
overflow: auto;
}
body{
position: relative;
font-family: "Zen Kaku Gothic New", sans-serif;
letter-spacing: 1px;
font-size: 1em;
line-height: 1.8;
color: #333;
width: 100%;
}

.pc{
display: none;
}
#wrapper{
overflow-x: hidden;
width: 100%;
}

/*--------------------------------------------------------------
Header:
----------------------------------------------------------------
*/

header{
width: 100%;
z-index: 100;
position: fixed;
top:0;
}

#global-menu{
position: relative;
width: 100%;
z-index: 100;
}

.nav-mobile{
z-index: 100;
position: relative;
float: right;
margin: 10px 20px 0 0;
width: 40px;
height: 40px;
background-color: transparent;
border: none;
}
.nav-mobile span{
position: absolute;
display: block;
height: 1px;
width: 40px;
background-color: #fff;
}
.nav-mobile span:nth-child(1){
top:15px;
}
.nav-mobile span:nth-child(2){
top:20px;
}
header.open .nav-mobile span:nth-child(1){
transform-origin:center center; 
transform: rotate(15deg);
background-color: #000;
}
header.open .nav-mobile span:nth-child(2){
top:15px;
transform: rotate(-15deg);
background-color: #000;
}
#global-menu nav{
position: absolute;
top: 0;
right: -100%;
width: 100%;
height: 100vh;
background-color: #ccc;
}
header.open #global-menu nav{
right: 0;
}
#global-menu nav ul{
padding: 10%;
}
#global-menu nav a{
display: block;
font-weight: 400;
font-style: normal; 
color: #000;
text-align: center;
padding: 5% 0;
width: 100%;
}
#global-menu nav a strong{
display: block;
font-family: "jost", sans-serif;
font-size: 1.2em;
letter-spacing: 2px;
font-weight: 400;
}
#global-menu nav a span{
display: block;
font-size: 80%;
letter-spacing: 2px;
}
#global-menu nav li.sns ul{
display: flex;
justify-content:center;
margin: 0;
}
#global-menu nav li.sns li{
width: 40px;
}
#global-menu nav li.sns li:nth-child(1){
margin-right: 10px;
}

/*--------------------------------------------------------------
contents
----------------------------------------------------------------
*/

section{
padding: 0;
background-color: #6b1325;
color: #fff;
}

#header{
position: relative;
width: 100%;
height: 100vh;
background-color: #6b1325;
overflow: hidden;
}

#tree{
position: absolute;
transform: translate(-50% , -50%);
top: 50%;
left: 50%;
display: block;
height: auto;
width: 100vw;
max-width: 1440px;
pointer-events: none;
}

@media (orientation: portrait) {
  /* 画面の高さが横幅より大きい（縦長）場合のスタイル */
  #tree{
height:auto;
width: 100%;
}
}

/* 画面の横幅が高さより大きい（横長）場合のスタイル*/
@media (orientation: landscape) {
  
  
#tree{
height: 100vh;
width: auto;
}
} 

    /* 全画面の上に透明なキャンバスを配置 */
    #cursor-canvas {
      position: fixed;
      top: 0;
      left: 0;
      pointer-events: none; /* マウス・タッチイベントを下の要素に通過させる */
      z-index: 9999;
      mix-blend-mode: screen;
    }
        .wrap{
      width: 100%;
      height: 100vh;
      position: relative;
    }

#snowCanvas {
  position: fixed; /* 固定配置 */
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  pointer-events: none;
  z-index: 9999; /* 一番手前に表示 */
}

#intro{
padding: 0 8% 12%;
width: 84%;
}

#intro .text-box{
position: relative;
background-color: rgba(255,255,255,.8);
border-radius: 5px;
margin: 0 auto;
max-width: 1000px;
padding: 1%;
}

.text-box-inner{
position: relative;
padding: 8% 8% 12%;
border: 1px solid #6b1325;
}

#intro p{
text-align: justify;
font-weight: 400;
color: #333;
font-size: 13px;
line-height: 1.4;
margin-bottom: 15px;
}
#intro p:last-of-type {
  margin-bottom: 0;
}

.inside-tree {
display: block;
position: relative;
width: 80%;
height: auto;
margin: -15% auto 0;
}


.title-wrap{
margin-bottom: 5%;
}


.title-wrap h2{
font-family: "Jost", sans-serif;
font-size: 2rem;
font-weight: 500;
text-align: center;
}

.title-wrap p{
text-align: center;
margin: 0 auto;
}

#recommend-wrap{
padding: 8% 8% 12%;
width: 84%;
}

#recommend-wrap ul,
#line-up ul{
position: relative;;
margin: 0 auto;
max-width: 1000px;
display: flex;
gap:5px;
flex-flow: wrap;
}

/* カード全体をFlexbox化（縦並び設定） */
#recommend-wrap ul li {
  width: calc(50% - 2.5px);
  background-color: #ac7d75;
  padding: 1%;
  border-radius: 5px;
  color: #fff;

  /* ▼ 以下を追加 ▼ */
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}

#recommend-wrap ul li:nth-child(4n),
#recommend-wrap ul li:nth-child(4n + 1){
background-color: #7a806e;
}

#recommend-wrap ul li .thumb-box {
border: 1px solid #6b1325; /* 内側の枠線 */
  padding: 8%;             /* 枠線の中の余白（お好みで調整） */
  box-sizing: border-box;
  
  /* カードの高さいっぱいに広げて縦並びの Flexbox にする */
  height: 100%;
  display: flex;
  flex-direction: column;
}
/* キャプションに余白を埋めさせる指定 */
.caption {
  font-size: 13px;
  line-height: 1.4;
  text-align: justify;

  /* ▼ 以下を追加（余剰スペースを吸い取ってボタンを下へ押し出す） ▼ */
  flex-grow: 1;
}

.plus-btn{
position: absolute;
display: block;
line-height: 1;
font-size: 10px;
background-color: #6b1325;
padding: 5px;
width: 10px;
height: 10px;
border-radius: 10px;
bottom:15px;
right: 15px;
}

/* RECOMMENDのカード全体をクリック可能に見せる設定 */
#recommend-wrap .recommend-item {
  cursor: pointer; /* マウスを乗せると指マークになる */
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

/* ホバー時に少し浮き上がらせて「押せる」感を出す */
#recommend-wrap .recommend-item:hover {
  transform: translateY(-4px);
}

/* ＋ボタンのホバー演出（プラスボタン自体もアクセントとして連動） */
#recommend-wrap .recommend-item:hover .plus-btn {
  transform: scale(1.1);
  transition: transform 0.2s ease;
}

/* 動画や画像、テキストでクリックが邪魔されないようにする指定 */
#recommend-wrap .recommend-item .thumb-box video,
#recommend-wrap .recommend-item .thumb-box img,
#recommend-wrap .recommend-item .thumb-box strong {
  pointer-events: none; /* クリック判定を確実に親のliに通す */
}

.xmas-animation {
  display: block;
  width: 100%;
  height: auto;
}


/* ボタン上に余白を固定したい場合は以下を追加 */
#line-up ul li .text-box-inner a{
position: relative;
  display: block;
  background-color: #fff;
  color: #6b1325;
  text-align: center;
  font-size: 13px; /* 修正: 元コードで font-weight: 13px になっていたのを数値修正 */
  line-height: 1;
  font-weight: 600;
  padding: 10px 0;
  border-radius: 16.5px;

  /* ▼ 必要に応じて上の要素との隙間を一定にする調整 ▼ */
  margin-top: auto; 
}

.modal-info-col a::before,
.modal-info-col a::after,
#line-up ul li .text-box-inner a::before,
#line-up ul li .text-box-inner a::after{
content: "";
position: absolute;
display: block;
left: 10px;
top:calc(50% - 15px);
width: 30px;
height: 30px;
background-image: url("../images/snowflake-green.svg");
background-repeat: no-repeat;
background-position: top left;
background-size: contain;
transform: rotate(30deg);
}

.modal-info-col a::before,
.modal-info-col a::after{
background-image: url("../images/snowflake-white.svg");
}

.modal-info-col a::after{
left: unset;
right: 10px;
}



#line-up ul li .text-box-inner a{
font-size: 80%;
}

#line-up ul li .text-box-inner a::before{
width: 20px;
height: 20px;
top:-12px;
left:5px;
}

#line-up ul li .text-box-inner a::after{
width: 20px;
height: 20px;
left: unset;
right: 5px;
top:unset;
bottom:-12px;
}

#recommend-wrap ul li strong,
#line-up ul li strong{
display: block;
text-align: center;
font-size: 13px;
line-height: 1.4;
padding-top: 10px;
padding-bottom: 20px;
}

.price{
font-family: "Jost", sans-serif;
font-size: 15px;
font-weight: 500;
text-align: center;
}

/* ゆらゆら・ふわふわ揺れるアニメーション定義 */
@keyframes parachuteSway {
  0% {
    transform: translateY(0px) rotate(0deg);
  }
  25% {
    transform: translateY(-4px) rotate(3deg); /* 少し上に浮きつつ右に傾く */
  }
  50% {
    transform: translateY(0px) rotate(0deg); /* 元の位置に戻る */
  }
  75% {
    transform: translateY(-4px) rotate(-3deg); /* 少し上に浮きつつ左に傾く */
  }
  100% {
    transform: translateY(0px) rotate(0deg);
  }
}

/* アニメーションを適用するクラス */
.sway-animation {
  /* 4秒かけてゆっくり永遠に（infinite）滑らかに（ease-in-out）繰り返す */
  animation: parachuteSway 4s ease-in-out infinite;
  
  /* 揺れの支点を「パラシュートの上中央（紐の結び目あたり）」にする設定 */
  transform-origin: top center; 
}

/* ==============================================================
   モーダル共通・基本設定（SPビュー：縦並びグリッド）
============================================================== */
.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.7);
  z-index: 10000;
  display: flex;
  justify-content: center;
  align-items: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  pointer-events: none;
}

.modal-overlay.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.modal-content {
  position: relative;
  background-color: #fff;
  width: 90%;
  max-width: 450px;
  max-height: 90vh;
  overflow-y: auto;
  border-radius: 8px;
  padding: 20px;
  box-sizing: border-box;
}

.modal-close {
  position: absolute;
  top: 10px;
  right: 15px;
  background: none;
  border: none;
  font-size: 28px;
  cursor: pointer;
  color: #666;
  line-height: 1;
}

/* SP時のグリッド配置（縦に1列） */
.modal-grid {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: 5px;
}

.modal-img-col {
  display: flex;
  justify-content: center;
  align-items: center;
}

.modal-img-col img {
  /*max-width: 200px;*/
  width: 100%;
  height: auto;
  object-fit: contain;
}

.modal-info-col {
  display: flex;
  flex-direction: column;
}

.modal-info-col strong {
  display: block;
  text-align: center;
  font-size: 1.2rem;
  color: #6b1325;
  margin-bottom: 12px;
  line-height: 1.4;
}

.modal-info-col .caption {
  font-size: 13px;
  line-height: 1.7;
  color: #333;
  margin-bottom: 15px;
  text-align: justify;
}

.modal-info-col .price {
  font-family: "Jost", sans-serif;
  font-size: 16px;
  font-weight: 600;
  text-align: center;
  color: #333;
  margin-bottom: 20px;
}

.modal-info-col a {
position: relative;
  display: block;
  background-color: #6b1325;
  color: #fff;
  text-align: center;
  padding: 12px 0;
  border-radius: 26px;
  font-weight: 600;
  font-size: 14px;
  line-height: 1;
  width: 80%;
  margin: 0 auto;
}

#line-up{
padding: 8% 8% 12%;
width: 84%;
}


#line-up ul li{
width: calc(50% - 2.5px);
background-color: rgba(255,255,255,.8);
padding: 1%;
box-sizing: border-box;
border-radius:5px;
color: #333;

/* ▼ 以下を追加してliの高さを揃える ▼ */
  display: flex;
  flex-direction: column;
}

#line-up .text-box-inner {
  height: 100%;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}

/* LINE UP内のカテゴリー小見出し */
.lineup-category-title {
  width: 100%;
  text-align: center;
  margin: 60px 0 20px;
  padding-bottom: 10px;
}
.lineup-category-title:first-of-type {
  margin-top: 10px;
}
.lineup-category-title h3 {
  font-family: "Jost", sans-serif;
  font-size: 1.5rem;
  letter-spacing: 2px;
font-weight: 200;
}
.lineup-category-title span {
  display: block;
  font-size: 0.85rem;
  letter-spacing: 1px;
  color: rgba(255, 255, 255, 0.8);
  margin-top: 4px;
}

#line-up nav ul{
display: flex;
max-width: 480px;
margin: 0 auto;
}

#line-up nav li{
position: relative;
width: calc(25% - 3.75px);
background-color: transparent;
text-align: center;
}
#line-up nav li span{
display: block;
font-size: 11px;
line-height: 1.2;
color: #fff;
}

#line-up nav li a {
  position: relative; /* ★ 矢印の位置基準を a タグに変更 */
  display: block;
  width: 100%;
  padding-bottom: 25px; /* ★ 下部に矢印分の余白を確保してクリック領域を広げる */
}

#line-up nav li a::after{
content: "";
position: absolute;
display: block;
width: 50%;
height: auto;
aspect-ratio: 5 / 2;
bottom: -20px;
left: 50%;
transform: translateX( -50% );
background-image: url("../images/local-nav-arrow.svg");
background-position: top left;
background-repeat: no-repeat;
background-size: contain;
}



/*--------------------------------------------------------------
footer
----------------------------------------------------------------
*/

footer{
background-color: #ccc;
}
#lh-navigation{
margin-bottom: 10%;
}
#lh-navigation ul{
display: flex;
justify-content:center;
}
#lh-navigation li{
margin-right: 20px;
}
#lh-navigation li:last-child{
margin-right: 0;
}
#lh-navigation li a{
display: block;
width: 40px;
}
#lh-navigation li a img{
line-height: 0;
display: block;
}
footer h1{
position: relative;
width: 60%;
max-width: 320px;
margin: 0 auto 10%;
padding: 15% 0 0;
}
footer h1 img{
display: block;
width: 100%;
}
#lh-navigation + p{
display: block;
font-size: 10px;
padding: 10%;
}
#lh-navigation + strong{
display: block;
font-size: 10px;
padding-left: 15%;
}
footer table{
width: 70%;
margin: 0 auto 10%;
}
footer th{
font-size: 10px;
font-weight: 400;
text-align: left;
width: 3em;
}
footer td{
font-size: 10px;
}

.copyright{
background-color: #EAE9EA;
text-align: center;
font-size: 10px;
letter-spacing: 1px;
padding: 8% 0;
line-height: 1.6;
}

.to-online-fix {
position: fixed;
bottom: 60px;
right: 0px;
width: 90px;
height: auto;
z-index: 101;
display: none;
}
.page-top {
position: fixed;
bottom: 20px;
right: 10px;
width: 40px;
height: 40px;
z-index: 1;
opacity: 0.8;
display: none;
}


@media screen and (min-width:480px) {

.copyright{
padding:5% 0;
}
.copyright br{
display: none;
}
}

@media screen and (min-width:580px) {

#intro{
padding-bottom: 5%;
}
.inside-tree {
width: 80%;
margin: -15% auto 0;
}
}


@media screen and (min-width:768px) {
.nav-mobile{
display: none;
}


header {
    background: rgba(255, 255, 255, 0.4);
    margin-top: -140px; /* ★初期状態（最上部）は画面外へ隠す */
    transition: margin-top 0.4s ease; /* ★滑らかに出し入れするアニメーション */
    
  }

  /* スクロール中に表示させる状態 */
  header.is-show {
    margin-top: 0;
  }
#global-menu nav{
position: relative;
left: 0;
width: 100%;
height: auto;
background-color: transparent;
}
#global-menu nav ul{
display: flex;
padding: 12px 30px;
}
#global-menu nav li{
width: 33.33%;
}
#global-menu nav li.sns{
display: none;
}
#global-menu nav a{
padding: 20px 0;
width: 100%;
}
.pc{
display: block;
}
.sp{
display: none;
}

#intro{
padding-bottom: 0;
}

.inside-tree {
width: 60%;
margin-right: -10%;
margin-top: -18%;
}

/* ==============================================================
   PC表示時（768px〜）：短辺90% ＆ 左右2列の横並びグリッド
============================================================== */

 .modal-content {
    /* 正方形をやめ、横長でスマートな比率に変更 */
    width: 85vw;              /* 画面幅の85% */
    max-width: 840px;         /* 横幅の上限 */
    height: auto;             /* 高さは固定せず中身に合わせる */
    max-height: 90vh;         /* 画面の縦幅（短辺）からはみ出ない上限 */
    overflow-y: auto; /* ★追加: 画面縦幅をはみ出た際にスクロール可能にする */
    padding: 40px 45px;
    box-sizing: border-box;
    display: block;
  }

  /* 左右2分割グリッド */
  .modal-grid {
    display: grid;
    grid-template-columns: 1fr 1.1fr; /* 左: 画像、右: 情報 */
    column-gap: 50px;
    align-items: center; /* 左右を中央揃え */
    width: 100%;
    min-height: 100%; /* コンテンツが少ない時も綺麗に収まるようにする */
  }

  /* 左側：画像エリア */
  .modal-img-col {
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .modal-img-col img {
    max-width: 100%;
    width: auto;
    /* 高さが短辺からはみ出さないように制限 */
    max-height: 55vh;
    object-fit: contain;
  }

  /* 右側：テキスト・情報エリア */
  .modal-info-col {
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: left;
    max-height: none !important;    /* 高さの制限を解除 */
    overflow: visible !important;     /* スクロールバーを強制非表示 */
    padding-right: 0;
  }

  .modal-info-col strong {
    text-align: left;
    font-size: 1.4rem;
    color: #6b1325;
    line-height: 1.4;
    padding: 0;
    margin-bottom: 15px;
  }

  .modal-info-col .caption {
    font-size: 14px;
    line-height: 1.8;
    color: #333;
    margin-bottom: 20px;
  }

  .modal-info-col .price {
    font-family: "Jost", sans-serif;
    font-size: 1.3rem;
    font-weight: 600;
    color: #333;
    text-align: left;
    margin: 0 0 25px 0;
  }

  .modal-info-col a {
    display: block;
    background-color: #6b1325;
    color: #fff;
    text-align: center;
    padding: 13px 0;
    border-radius: 25px;
    font-weight: 600;
    font-size: 14px;
    width: 100%;
    max-width: 240px; /* ボタンの横幅を程よいサイズに引き締め */
    margin: 0;
  }
  
  /* 閉じるボタンがスクロール時に隠れないよう固定 */
  .modal-close {
    position: sticky;
    top: -30px;
    float: right;
    z-index: 10;
  }




#line-up nav li{
width: calc(25% - 3.75px);
}



#lh-navigation + strong {
text-align: center;
width: 70%;
margin: 0 auto;
font-size: 12px;
padding: 0 0 2% 0;
}
footer th {
font-size: 12px;
}
footer td {
font-size: 12px;
}
.copyright {
font-size: 12px;
}
}


@media screen and (min-width:1080px) {

#global-menu {
width: 1000px;
margin: 0 auto;
}
#global-menu nav ul{
padding: 20px 0;
}

#recommend-wrap,
#line-up{
padding: 80px 0 100px;
width: 100%;
}

#intro{
padding: 0;
width: 100%;
}

#intro p:nth-child(2){
width: 95%;
}

#intro p:nth-child(3){
width: 70%;
}

.inside-tree {
width: 420px;
margin-left:calc( (100vw/2) + 140px);
margin-top: -230px;
}


#recommend-wrap ul li{
width: calc(33.33% - 3.33px);
padding: 5px;
}
#recommend-wrap ul li:nth-child(4n),
#recommend-wrap ul li:nth-child(4n + 1){
background-color: #ac7d75;
}

#recommend-wrap ul li:nth-child(2n){
background-color: #7a806e;
}

#line-up ul li{
width: calc(25% - 3.75px);
padding: 5px;
}

footer h1 {
padding: 5% 0 0;
margin-bottom: 5%;
}
#lh-navigation {
margin-bottom: 5%;
}
footer table {
width: 600px;
margin: 0 auto 5%;
}
#lh-navigation + strong {
width: 600px;
margin: 0 auto;
}
.copyright {
padding: 40px 0;
}
}

@media (max-width: 600px) {
#recommend-wrap ul li a::before,
#recommend-wrap ul li a::after{
width: 20px;
height: 20px;
top: calc(50% - 10px);
}
}

/* ==============================================================
   12枚目：縦長動画モーダル専用スタイル（動画＋ボタンのみ中央配置）
============================================================== */

/* 白枠全体の幅を動画サイズに合わせてキュッとスリムに固定 */
.modal-overlay.is-video-modal .modal-content {
  width: 90% !important;
  max-width: 360px !important; /* PCでも横幅を360pxに抑える */
  max-height: 85vh !important;
  padding: 35px 20px 25px !important; /* 左右均等の余白 */
  box-sizing: border-box !important;
  position: relative !important;
  overflow: visible !important;
}

/* PC用の2列グリッドを完全に解除（1列にする） */
.modal-overlay.is-video-modal .modal-grid {
  display: block !important;
  grid-template-columns: none !important;
  column-gap: 0 !important;
  width: 100% !important;
}

/* 右側の不要な情報エリアは非表示 */
.modal-overlay.is-video-modal .modal-info-col {
  display: none !important;
}

/* 動画とボタンを縦並び・中央揃えにするコンテナ */
.modal-overlay.is-video-modal .modal-img-col {
  width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  margin-top: 5px !important;
}

/* ★ 巨大化を防ぐ：縦長動画自体のサイズ制御 */
.modal-overlay.is-video-modal .modal-vertical-video {
  width: 100% !important;
  max-width: 270px !important; /* 動画の幅を270pxに固定 */
  max-height: 55vh !important; /* 画面縦幅からはみ出ない高さ */
  aspect-ratio: 9 / 16 !important;
  object-fit: cover !important;
  border-radius: 8px !important;
  background-color: #000 !important;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15) !important;
  display: block !important;
  margin: 0 auto !important;
}

/* コンバージョンボタン（動画幅とぴったり揃えて中央配置） */
.modal-overlay.is-video-modal .modal-img-col a {
  position: relative !important;
  display: block !important;
  background-color: #6b1325 !important;
  color: #fff !important;
  text-align: center !important;
  padding: 12px 0 !important;
  border-radius: 26px !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  line-height: 1 !important;
  width: 100% !important;
  max-width: 270px !important; /* 動画の幅と一致させる */
  margin: 16px auto 0 !important;
  text-decoration: none !important;
  box-sizing: border-box !important;
}

/* 閉じるボタンの位置固定（白枠の右上角） */
.modal-overlay.is-video-modal .modal-close {
  position: absolute !important;
  top: 10px !important;
  right: 15px !important;
  float: none !important;
  z-index: 30 !important;
  font-size: 28px !important;
  line-height: 1 !important;
  color: #666 !important;
}

/* ==============================================================
   12枚目：縦長サムネイル ＆ でっかい再生ボタン
============================================================== */

/* 縦長サムネイル枠（カードが伸びすぎないよう横幅と比率をコントロール） */
.is-video-item .video-thumb-wrap {
  position: relative;
  width: 75%;                /* ★横幅を少し引き締めて縦長感を強調 */
  max-width: 200px;
  aspect-ratio: 9 / 16;      /* ★縦長比率に固定（隣のカードを引っ張りません） */
  margin: 0 auto 12px;       /* 左右中央揃え ＆ 下余白 */
  border-radius: 8px;
  overflow: hidden;
  background-color: #000;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

/* 枠の中の縦長画像 */
.is-video-item .video-thumb-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;         /* 枠いっぱいに綺麗にフィット */
  display: block;
}

/* ★画像の上に重なる「でっかい再生三角マーク」（スマホ基準：80%サイズ） */
.is-video-item .big-play-btn {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 40px;                /* 64px × 0.8 ≒ 50px */
  height: 40px;
  background-color: rgba(0, 0, 0, 0.55);
  border: 2px solid rgba(255, 255, 255, 0.9);
  border-radius: 50%;
  backdrop-filter: blur(2px);
  pointer-events: none;
  transition: transform 0.3s ease, background-color 0.3s ease;
}

/* 再生マークの「▶」三角部分（スマホ基準：80%サイズ） */
.is-video-item .big-play-btn::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 55%;
  transform: translate(-50%, -50%);
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 8px 0 8px 13px; /* 11px×18px × 0.8 ≒ 9px×14px */
  border-color: transparent transparent transparent #fff;
}

/* ホバー時に三角マークがポワンと少し大きくなる */
.is-video-item:hover .big-play-btn {
  transform: translate(-50%, -50%) scale(1.12);
background-color: rgba(107, 19, 37, 0.85);   /* ホバー時はテーマカラーの赤に */
border-color: #fff;
}

/* PCサイズ（768px以上）では元の大きさに戻す */
@media screen and (min-width: 768px) {
  .is-video-item .big-play-btn {
    width: 64px;
    height: 64px;
  }
  .is-video-item .big-play-btn::before {
    border-width: 11px 0 11px 18px;
  }
}

/* 「SPECIAL MOVIE」テキストの調整 */
#recommend-wrap ul li.is-video-item .thumb-box strong {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-align: center;
  padding-top: 5px;
  padding-bottom: 10px;
}

.is-video-item .plus-btn{
display: none !important;
}

.is-video-item .modal-data a{
position: relative;
}
.modal-overlay.is-video-modal .modal-img-col a::before,
.modal-overlay.is-video-modal .modal-img-col a::after{
content: "";
    position: absolute;
    display: block;
    left: 10px;
    top: calc(50% - 15px);
    width: 30px;
    height: 30px;
    background-image: url(../images/snowflake-white.svg);
    background-repeat: no-repeat;
    background-position: top left;
    background-size: contain;
    transform: rotate(30deg);
}
.modal-overlay.is-video-modal .modal-img-col a::after{
left: unset;
right: 10px;
}


/* ==============================================================
   LINE UP ナビゲーション（スマホでのガタつき解消・下端揃え）
============================================================== */
#line-up nav ul {
  display: flex;
  align-items: stretch; /* ★4つの項目の高さを一番背の高いものに揃える */
  max-width: 480px;
  margin: 0 auto;
  gap: 4px;
}

#line-up nav li {
  position: relative;
  width: calc(25% - 3px);
  background-color: transparent;
  text-align: center;
  display: flex; /* ★中のaタグの高さを100%にするため */
}

#line-up nav li a {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-start; /* 上から順に配置 */
  width: 100%;
  padding-bottom: 28px; /* 下矢印用のスペースを統一 */
  box-sizing: border-box;
}

#line-up nav li img {
  display: block;
  width: 100%;
  margin-bottom: 6px;
}

#line-up nav li span {
  display: block;
  font-size: 10px;       /* ★スマホで6文字が収まりやすいよう11px→10pxに微調整 */
  letter-spacing: 0.5px; /* ★文字間を少し詰めて「オーナメント」等の1文字落ちを防ぐ */
  line-height: 1.3;
  color: #fff;
  word-break: keep-all;  /* 単語の途中での不自然な改行を防止 */
}

/* ★矢印を aタグの一番下（bottom: 0）に固定 → 4つすべて横一線に揃う */
#line-up nav li a::after {
  content: "";
  position: absolute;
  display: block;
  width: 40%;
  max-width: 50px;
  height: auto;
  aspect-ratio: 5 / 2;
  bottom: 0;             /* ★一番下に統一 */
  left: 50%;
  transform: translateX(-50%);
  background-image: url("../images/local-nav-arrow.svg");
  background-position: top left;
  background-repeat: no-repeat;
  background-size: contain;
}

/* PCサイズ（768px以上）では元のフォントサイズに戻す */
@media screen and (min-width: 768px) {
  #line-up nav li span {
    font-size: 12px;
    letter-spacing: 1px;
  }
}