@charset "UTF-8";

/*.nc-pscube-logo{ pointer-events: none; }*/

/*html{height:100%;}*/
body
{
/*	height:100%;*/
	text-align:center;
	-webkit-text-size-adjust: 100%;
	-moz-text-size-adjust   : 100%;
	-ms-text-size-adjust    : 100%;
	-o-text-size-adjust     : 100%;
	text-size-adjust        : 100%;
}

img { vertical-align:text-bottom; pointer-events: none;}

/*@export*/ header{ background-color:inherit; }
header { width:100%; text-align:center; overflow:hidden; }

header img
{
        width:100%;
        height:auto;
	/*vertical-align:text-bottom;*/
}

/*@export*/ header ul{ border:1px solid #fff; background-color:inherit; }
header ul
{
        display:table;
        table-layout:fixed;
        text-align:center;
        width:99.5%;
margin:0 auto;
}
header ul li
{
        display:table-cell;
        max-width:173px;
        max-height:70px;
        border-right: inherit;
}
header ul li:last-child
{
        border-right:none;
}
header ul a
{
        display:block;
}

footer
{
	width:100%;
	margin:0 auto;
	text-align:center;
	padding-top   :2em;
	padding-bottom:1em;
overflow:hidden;
}

/*@export*/ footer ul{ border-top :1px solid #ddd;    }
/*@export*/ footer li{ border-left:1px solid #d0d0d0; }
footer ul
{
	font-size:60%;
	padding:1em 0;
        list-style-type: none;
        letter-spacing: -.40em;
        position:relative;

}
footer li
{
        display:inline-block;
        letter-spacing: normal;
        position:relative;
        padding:0 1em;
}
footer li:first-child
{
	border:none !important;
}
footer p { font-size:80%; }

table
{
        margin:0 auto;
        border-collapse:collapse;
        table-layout:fixed;
	width:100%;
        /*height:100%;*/
}
tr, td {vertical-align:middle;}

table img
{
        max-width:100%;
        height:auto;
        /*vertical-align:text-bottom;*/
}

a
{
	display:block;
	color:inherit;
	text-shadow:inherit;
	text-align:inherit;
	font-size:inherit;
/*	-webkit-tap-highlight-color:rgba(255,165,0,0.7);*/
}
a:link, a:visited, a:active { text-decoration: none; }
a:active
{
  transform: translateY(4px);
  -webkit-transform: translateY(4px);
}


h1,h2,h3,h4,h5,h6
{
	display:block;
	padding:0.2em;
	font-weight:normal;
}

h1{font-size:130%;}
h2{font-size:120%;}
h3{font-size:110%;}
h4{font-size:105%;}
/*
input[type="text"], input[type="password"]
{
	-webkit-tap-highlight-color:rgba(0,0,0,0);
	-webkit-focus-ring-color:rgba(0,0,0,0);
	outline:none;
	border-radius:3px;
	-webkit-border-radius:3px;
	-moz-border-radius:3px;
	border:1px solid rgba(0,0,0, 0.2);
}
input[type="text"]:focus, input[type="password"]:focus
{
	
	-moz-box-shadow   :0 0 1em #387bbe;
	-webkit-box-shadow:0 0 1em #387bbe;
	box-shadow        :0 0 1em #387bbe;
	border:2px solid rgba(0,0,255,0.8);
}
*/

/************************************************/

.nc-page { /*padding:0 1px;*/ margin:0 1px;}
.nc-main { margin:0 auto; overflow:hidden; }

/*@export*/ .nc-navi-top{}
/*@export*/ .nc-navi-p  {}
/*@export*/ .nc-navi-s  {}

/*@export*/ .nc-background-a{ background-color:#ad0000; }
/*@export*/ .nc-background-b{ background-color:#000; }
/*@export*/ .nc-border-a    { border:1px solid #fff; }
/*@export*/ .nc-border-b    { border:inherit; }
/*@export*/ .nc-btn-a       { border:inherit; }

/*@export*/ .nc-font{ color:#fff; text-shadow:1px 1px 1px #111; }
.nc-font          { font-size:100%; }
.nc-font-xx-large { font-size:160%; }
.nc-font-x-large  { font-size:140%; }
.nc-font-large    { font-size:120%; }
.nc-font-small    { font-size:80%;  }
.nc-font-x-small  { font-size:60%;  }
.nc-font-xx-small { font-size:40%;  }

.nc-font-weight-bold{ font-weight:bold; }

/*@export*/ .nc-font-shopname{}

.nc-loader
{
display:none;
margin: 0 auto;
/*background: #BABABA;*/
/*opacity: 0.5;*/
border-radius: 15px;
position: fixed;
z-index:1000;
}

.nc-display-onload { display:none; }
.nc-nowrap         { white-space:nowrap; }

/* IEだとstyle=position:relateを直接指定するのと動作が違う */
.nc-relative{ position:relative !important; /*width:100%;*/ width:inherit; /*width:inherit;*/ /*height:100%;*/ }
.nc-absolute{ position:absolute !important; }

.nc-left  { left :0; }
.nc-right { right:0; }
.nc-top   { top  :0; }
.nc-bottom{ bottom:0; margin-bottom:.1em; }

.nc-reset-margin      { margin :0 !important; }
.nc-reset-padding     { padding:0 !important; }
.nc-reset-line-height { line-height: 1em !important; }
.nc-reset-width       { width:auto !important; max-width:100% !important; }
.nc-reset-max-width   { max-width:none !important; }
.nc-reset-font-weight { font-weight:normal !important; }

.nc-fit-width         { width:100% !important; }

/* margin-top */
.nc-mT-0p3{ margin-top: .3em; }
.nc-mT-0p5{ margin-top: .5em; }
.nc-mT-0p8{ margin-top: .8em; }
.nc-mT-1p0{ margin-top:1.0em; }
.nc-mT-1p2{ margin-top:1.2em; }
.nc-mT-1p5{ margin-top:1.5em; }
.nc-mT-2p0{ margin-top:2.0em; }

/* margin-botom */
.nc-mB-0p3{ margin-bottom: .3em; }
.nc-mB-0p5{ margin-bottom: .5em; }
.nc-mB-0p8{ margin-bottom: .8em; }
.nc-mB-1p0{ margin-bottom:1.0em; }
.nc-mB-1p2{ margin-bottom:1.2em; }
.nc-mB-1p5{ margin-bottom:1.5em; }
.nc-mB-2p0{ margin-bottom:2.0em; }

.nc-text-align-left  { text-align:left   !important; padding-left:.5em;  }
.nc-text-align-center{ text-align:center !important;                     }
.nc-text-align-right { text-align:right  !important; padding-right:.5em; }

.nc-box
{
        line-height:1.2em;
/*	background-color:inherit;*/
/*      border-color:inherit;*/
}
.nc-box-inset{ padding: .9em 8px; }


small{ display:block; font-size:80%; }

.nc-li { display:block; margin:0; position:relative; overflow:visible; text-align:left; border-width:0; border-top-width:1px; }

.nc-content
{
	border-width:0;
	/*overflow:visible;*/
	/*overflow-x:hidden;*/
	padding:0;
	position:relative;
}

.nc-content .nc-listview-inset{ /*margin:1em 0.5em;*/ margin:1em 0; }


.nc-content-inset{ margin:1em 0; }

.nc-listview{ /*opacity:0.85*/ }

.nc-listview img{ max-width:100%; }

.nc-li, .nc-listview{ list-style:none; padding:0; }

.nc-li-static
{
/*	color: #fff;*/
	border:1px solid #fff;
	background:inherit;
/*	text-shadow:0 1px 0 #111;*/
	border-top: none;
/*	line-height:1.3em;*/
        font-weight:normal;
	margin:0;
	padding:.9em 8px;
	display:block;
}

.nc-listview > .nc-li.nc-first-child
{
	border-top:1px solid inherit;
	-webkit-border-top-right-radius:inherit;
	border-top-right-radius:inherit;
	-webkit-border-top-left-radius:inherit;
	border-top-left-radius:inherit;
}

.nc-listview > .nc-li.nc-last-child
{
	-webkit-border-bottom-right-radius:inherit;
	border-bottom-right-radius:inherit;
	-webkit-border-bottom-left-radius:inherit;
	border-bottom-left-radius:inherit;
}

.nc-listview-inset .nc-li { border-right-width: 1px; border-left-width: 1px; }


.nc-bar
{
	font-size:135%;
	margin:0;
/*	padding:.5em .5em;*/
	padding:.4em .4em;
	font-weight:bold;
	border:1px solid #fff;;
/*	text-shadow:0 -1px 0 #000; */
	position:relative;
	background:#ad0000;
	background-image: -webkit-gradient(linear, left top, left bottom, from( #ff0000 ), to( #ad0000 ));/* Saf4+, Chrome */
	background-image: -webkit-linear-gradient( #ff0000, #ad0000 ); /* Chrome 10+, Saf5.1+ */
	background-image:    -moz-linear-gradient( #ff0000, #ad0000 ); /* FF3.6 */
	background-image:     -ms-linear-gradient( #ff0000, #ad0000 ); /* IE10 */
	background-image:      -o-linear-gradient( #ff0000, #ad0000 ); /* Opera 11.10+ */
	background-image:         linear-gradient( #ff0000, #ad0000 );
}

.nc-bar small { font-size:60%;}
.nc-bar .nc-bar-title       { display:table; /*width:100%;*/ height:auto; }
.nc-bar .nc-bar-title > div { display:table-cell; vertical-align:middle; height:1.5em; }

.nc-iframe
{
        position:relative;
        padding-bottom:56.25%;
        padding-top:30px;
        height:0;
        overflow: hidden;
}
.nc-iframe iframe
{
        position:absolute;
        top:0;
        left:0;
        width:100%;
        height:100%;
}

/*@export*/ .nc-btn{ width:70%; }
.nc-btn
{
	display:block;
	text-align:center;
	cursor:pointer;
	position:relative;
	margin-left:auto;
	margin-right:auto;
	padding:0;
	text-decoration:none;
	font-size:100%;
	font-weight:bold;
	-webkit-tap-highlight-color:rgba(255,165,0,0.7);
}

.nc-btn-inner
{
	padding:.6em .6em;
	display:block;
	text-overflow:ellipsis;
	overflow:hidden;
	white-space:nowrap;
	position:relative;
}
.nc-btn-inner2
{
        padding:.3em .3em;
        display:block;
        text-overflow:ellipsis;
        overflow:hidden;
        white-space:nowrap;
        position:relative;
}

.nc-btn-horizontal{ position:absolute; }
.nc-btn-horizontal span, .nc-btn-horizontal div{ display:inline; padding:.5em; line-height:2em; cursor:pointer; margin-left:.5em; }

.nc-ellipsis{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.nc-ellipsis-table{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:1em;}

.nc-swipe   { position:relative;margin-bottom:3px; }
.nc-background-swipe   { display:none; }
.nc-grab    { cursor:e-resize;cursor:-webkit-grab;cursor:-moz-grab;cursor:-o-grab;cursor:-ms-grab;}
.nc-grabbing{ cursor:e-resize;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:-o-grabbing;cursor:-ms-grabbing;}

.nc-btn-hidden
{
	position:absolute;
	top:0;
	left:0;
	width:100%;
	height:100%;
	-webkit-appearance:button;
	opacity:0;
	-ms-filter:"alpha(opacity=0)";
	filter:aplha(opacity=0);
	cursor:pointer;
	background:transparent;
}

.nc-corner-all
{
	-webkit-border-radius:.6em;
	border-radius        :.6em;
}

.nc-btn-corner-all
{
	-webkit-border-radius:1em;
	border-radius        :1em;
}

.nc-corner-all,
.nc-btn-corner-all {
	-webkit-background-clip:padding;
	background-clip:padding-box;
}

.nc-input-text     { line-height:1.5em; height:1.5em; font-size:110%; vertical-align:middle; }
input.nc-input-text{ letter-spacing:2px;}

.nc-shadow
{
	-moz-box-shadow   :0 1px 3px rgba(0,0,0,.2);
	-webkit-box-shadow:0 1px 3px rgba(200,200,0,.2);
	box-shadow        :0 1px 3px rgba(255,255,0,.2);
}

.nc-shadow-inset
{
-webkit-box-shadow:inset 0 1px 4px rgba(0,0,0,.2);
box-shadow:inset 0 1px 4px rgba(0,0,0,.2);
}

.nc-notfound-img
{
/*	width:35% !important;*/
width:26% !important;
	opacity:.7;
	margin:1em 0;
}
.nc-notfound
{
	display:none;
	position:absolute;
	text-align:center;
	font-size:120%;
	top:40%;
	width:100%;
}

/*@export*/ .nc-main-menu, .nc-banner { max-width:828px; }
/*@export*/ .nc-main-menu td { border:1px solid #fff; }
.nc-main-menu img { width:100%; display:block; }

.nc-banner img { background-color:#fff; width:100%; }
.nc-banner td  { padding:0.6em; vertical-align:middle; }

/*@export*/ .nc-listview-rate { background-color:#ad0000; }
.nc-listview-rate img       { width:100%; }
.nc-listview-rate table td  { padding:0.15em;}
.nc-listview-rate table tr.g2 td{ height:100%; }
.nc-listview-rate table td a{ height:100%;}
.nc-listview-rate .nc-label { display:table;height:3.8em;position:absolute;font-size:120%;top:0;/*height:100%;*/font-weight:bold;text-align:center;width:100%}
.nc-listview-rate .nc-label > div{display:table-cell;vertical-align:middle;padding:.2em;font-size:88%;}

/*@export*/ .nc-listview-kisyu-outset { background-color:#ad0000; }
.nc-listview-kisyu-outset { padding:.2em; }
.nc-listview-kisyu        { background-color:inherit; }
.nc-listview-kisyu li { padding-bottom:.1em;}
.nc-listview-kisyu img{ width:100%; }
.nc-listview-kisyu .nc-label{ position:absolute; font-size:120%; top:1.6em; left: 2.5em; width:16em; line-height:1.2em; white-space:nowrap; text-overflow: ellipsis; overflow: hidden; word-wrap: normal;}
.nc-listview-kisyu .nc-upper{position:absolute;width:15%;height:50%;text-align:left;margin-right:0.3em;}
.nc-listview-kisyu .nc-lower{position:absolute;width:15%;height:50%;text-align:right;margin-right:0.3em;}

/*@export*/ table.nc-grid   { border:1px solid #fff; background-color:#efefef; }
/*@export*/ table.nc-grid td{ border:1px solid #ad0000; }
/*@export*/ table.nc-grid-col-image a, table.nc-grid-col-image img{ background-color:#000; }
/*@export*/ table.nc-grid .nc-grid-color-fix{ color:#fff; }
/*@export*/ table.nc-grid tbody td:not(.nc-grid-color-fix){ color:#111; text-shadow:none; /*font-weight:bold;*/ }
table.nc-grid{ font-size: 120%; }
table.nc-grid tr, table.nc-grid td{ padding:inherit; }
table.nc-grid-row-height tr{ height:3em; }
table.nc-grid-col-image a, table.nc-grid-col-image img{ width:inherit; height:auto; }
table.nc-grid .nc-grid-data{ position:absolute; right:.5em; top:1em; }

.nc-upYMDhms       { width:100%; text-align:right; font-size:100%; }
.nc-upYMDhms > span{ padding-right:.2em; }
.nc-nifty{ height:90%; }

.nc-background-image-00
{
	background-image: url("/images/00/back-img-00.png");
	background-size:contain;
}
.nc-background-image-01
{
        background-image: url("/images/00/back-img-01.png");
        background-size:contain;
}

/*@export*/ .nc-background-swipe{ background-image: url("/images/06/06_flip_bk.png"); }
.nc-background-swipe{ background-size:contain; background-repeat:no-repeat; background-position:right; line-height:2.4em; width:100%; }

.nc-search-reset
{
	position:absolute;
	display:none;
	top:6px;
	right:2px;
	background:url("/images/00/iconReset.gif");
	background-position:.4em;
	/*background-color:#e8e8e8;*/
	background-repeat:no-repeat;
	width:1.6em;
	height:1.6em;
	background-size:50%;
	/*border-radius:2em;*/
	cursor:pointer;
}

.nc-search-dai{display:inline-block;position:relative;}
.nc-search-dai-text{width:3em;padding-right:2em}

.nc-shindai
{
        background-image: url("/images/00/back-shindai-01.png");
        background-repeat:no-repeat;
        background-size:contain;
        padding-left:2.7em;
}
.nc-zodai
{
        background-image: url("/images/00/back-shindai-02.png");
        background-repeat:no-repeat;
        background-size:contain;
        padding-left:2.7em;
}


/* facebook likebox */
.fb-like-box{overflow:hidden;}
.fbcomments,
.fb_iframe_widget,
.fb_iframe_widget[style],
.fb_iframe_widget iframe[style],
.fbcomments iframe[style],
.fb_iframe_widget span{
    width: 100% !important;
}


/* animation-banner */
.nc-amimation-banner {
-webkit-animation-name:bound;
-webkit-animation-duration:1.5s;
-webkit-animation-iteration-count:infinite;
-webkit-animation-timing-function:ease;
-moz-animation-name:bound;
-moz-animation-duration:1.5s;
-moz-animation-iteration-count:infinite;
-moz-animation-timing-function:ease;
}
@-webkit-keyframes bound {
0%  {-webkit-transform:translate(0,-.3em);}
50% {-webkit-transform:translate(0, .3em);}
100%{-webkit-transform:translate(0,-.3em);}
}
@-moz-keyframes bound {
0%  {-moz-transform:translate(0,-.3em);}
50% {-moz-transform:translate(0, .3em);}
100%{-moz-transform:translate(0,-.3em);}
}

/* ads */
.nc-ads{margin-bottom:.5em;}

/* === ローディングオーバーレイ === */
#loading-overlay {
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  background: #1a1a1a;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  transition: opacity 0.3s;
}
#loading-overlay.fade-out {
  opacity: 0;
  pointer-events: none;
}
.loading-spinner {
  width: 36px;
  height: 36px;
  border: 3px solid #333;
  border-top-color: var(--accent, #d4af37);
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }


/* === テーマカラー変数 === */
:root {
  --accent: #d4af37; /** デフォルトは「#D4AF37」のゴールド */
  --accent-link: #4fc3f7; /** デフォルトは「#4fc3f7」の水色 */
  --data-bg: #2b2b2b;
  --data-bg-alt: #242424;
  --data-color: #fff;
}

/* === タップフィードバック === */
a,
button,
.search-li,
.fab-btn {
  -webkit-tap-highlight-color: rgba(212, 175, 55, 0.2);
  -webkit-tap-highlight-color: color-mix(in srgb, var(--accent) 20%, transparent);
}
a:active,
button:active,
.nc-box-inset:active,
.kisyu-card:active,
.YMD-ul li:active,
.nc-switch:active,
.fab-btn:active,
.drawer-link:active {
  opacity: 0.7;
}

/* === ページ幅制御（モバイルで横スクロール防止） === */
html {
  overflow-x: hidden;
  width: 100%;
  overscroll-behavior-x: none;
}
img,
iframe,
table,
video {
  max-width: 100% !important;
  box-sizing: border-box;
}

/* === ダーク + ゴールド テーマ === */
body.nc-page {
  font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
  background-color: #2b2b2b !important;
  min-height: 100vh;
  color: #ffffff;
  line-height: 1.6;
  padding-top: 56px;
  overflow-x: hidden;
  width: 100%;
  max-width: 100vw;
  margin: 0;
  overscroll-behavior-x: none;
}

/* ===== ロゴバナー（上部固定） ===== */
.logo-banner {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  min-height: 56px;
  height: auto;
  background: #1a1a1a;
  border-bottom: 2px solid var(--accent);
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
/* DMMの場合は横幅いっぱい */
[data-is-dmm="1"] .logo-banner,
[data-docroot*="dedamajyoho"] .logo-banner {
  justify-content: center;
  height: auto;
  padding: 0;
}
[data-is-dmm="1"] .logo-banner a,
[data-docroot*="dedamajyoho"] .logo-banner a {
  padding: 0;
  width: 100%;
}
[data-is-dmm="1"] .logo-banner img,
[data-docroot*="dedamajyoho"] .logo-banner img {
  height: auto;
  width: 100%;
  max-width: 100%;
}
.logo-banner a {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  padding: 0 16px;
}
.logo-banner img {
  height: var(--logo-height, 32px);
  width: auto;
  max-width: 80vw;
  object-fit: contain;
}

/* ===== FABボタン（右下固定） ===== */
.fab-container {
  position: fixed;
  bottom: 24px;
  right: 16px !important;
  z-index: 99999;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 8px;
  background: rgba(26, 26, 26, 0.7);
  border-radius: 30px;
  touch-action: manipulation;
  transition: opacity 0.2s, visibility 0.2s;
}
.fab-container.fab-hidden {
  opacity: 0 !important;
  visibility: hidden;
  pointer-events: none;
}
.fab-btn {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 2px solid var(--accent);
  background: #333333;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: all 0.15s;
}
.fab-btn:active {
  transform: translateY(2px);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.5);
}
.fab-btn svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: var(--accent);
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.hamburger {
  width: 22px;
  height: 16px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.hamburger span {
  display: block;
  width: 100%;
  height: 2px;
  background: var(--accent);
  border-radius: 1px;
  transition:
    transform 0.3s,
    opacity 0.3s;
}

/* ===== ドロワーオーバーレイ ===== */
.drawer-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.6);
  z-index: 900;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.drawer-overlay.open {
  opacity: 1;
  pointer-events: auto;
}

/* ===== メニュードロワー（下からスライド） ===== */
.drawer {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 950;
  background: #1a1a1a;
  border-top: 2px solid var(--accent);
  border-radius: 16px 16px 0 0;
  max-height: 70vh;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  transform: translateY(100%);
  transition: transform 0.3s ease, visibility 0.3s;
  visibility: hidden;
}
.drawer.open {
  transform: translateY(0);
  visibility: visible;
}

/* ===== 検索ドロワー（下からスライド） ===== */
.search-drawer {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 950;
  background: #1a1a1a;
  border-top: 2px solid var(--accent);
  border-radius: 16px 16px 0 0;
  padding: 15px 15px 130px;
  transform: translateY(100%);
  transition: transform 0.3s ease, visibility 0.3s;
  visibility: hidden;
}
.search-drawer.open {
  transform: translateY(0);
  visibility: visible;
}

/* ドロワーハンドル（掴みバー） */
.drawer-handle {
  width: 40px;
  height: 4px;
  background: #555555;
  border-radius: 2px;
  margin: 12px auto 4px;
}

/* ドロワーメニューリスト */
.drawer-menu {
  list-style: none;
  padding: 8px 0;
}
.drawer-menu li {
  border-bottom: 1px solid #444444;
}
.drawer-menu li:last-child {
  border-bottom: none;
}
.drawer-menu a {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 20px;
  text-decoration: none;
  color: #ffffff;
  font-size: 15px;
  font-weight: 600;
}
.drawer-menu .menu-icon {
  font-size: 24px;
  width: 32px;
  text-align: center;
  flex-shrink: 0;
}
.drawer-menu .menu-icon img {
  width: 32px;
  height: 32px;
  object-fit: contain;
  border-radius: 4px;
}
.drawer-menu .menu-arrow {
  margin-left: auto;
  color: var(--accent);
  font-size: 14px;
}
/* レートサブメニュー */
.drawer-menu .rate-item a {
  padding: 10px 20px 10px 46px;
  font-size: 14px;
  color: #fff;
  font-weight: 500;
}
.drawer-menu .rate-item .menu-icon {
  font-size: 12px;
  width: 32px;
  color: var(--accent);
}

.drawer-sns {
  border-top: 1px solid #444444;
}
.drawer-sns a {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 20px;
  text-decoration: none;
  color: #ffffff;
  font-size: 15px;
  font-weight: 600;
}
.drawer-sns a + a {
  border-top: 1px solid #444444;
}
.drawer-sns .menu-icon {
  font-size: 24px;
  width: 32px;
  text-align: center;
  flex-shrink: 0;
}
.drawer-sns .menu-icon img {
  width: 32px;
  height: 32px;
  object-fit: contain;
  border-radius: 4px;
}

/* 検索ウィジェット（ドロワー内） */
.search-drawer .search-ul {
  width: 100%;
  list-style: none;
  display: flex;
  margin: 0 0 0.5em !important;
  padding: 0;
  box-sizing: border-box;
}
.search-drawer .search-li {
  flex: 1;
  text-align: center;
}
.search-drawer .search-item {
  display: block;
  width: 100%;
  padding: 14px 1em;
  box-sizing: border-box;
  margin: 0 auto;
  background: #333333;
  color: #ffffff;
  font-size: 15px;
  font-weight: bold;
  border: 2px solid #444444;
  text-shadow: none !important;
  -webkit-font-smoothing: antialiased;
}
.search-drawer .search-li:first-child .search-item {
  border-radius: 10px 0 0 10px;
}
.search-drawer .search-li:last-child .search-item {
  border-radius: 0 10px 10px 0;
}
.search-drawer .selected {
  background: var(--accent) !important;
  border-color: var(--accent) !important;
  color: #000 !important;
  font-weight: 700;
}
/* 検索フォーム */
.nc-ki-search-form {
  margin: 0;
}
.nc-ki-search-kisyu,
.nc-da-search-dai {
  display: flex;
  align-items: center;
  background: #2b2b2b;
  border: 1px solid #555;
  border-radius: 10px;
  padding: 4px;
  gap: 4px;
}
.nc-ki-search-kisyu input,
.nc-da-search-dai input {
  flex: 1;
  background: transparent !important;
  color: #fff !important;
  border: none !important;
  padding: 10px 12px;
  font-size: 15px;
  outline: none;
  text-shadow: none !important;
  -webkit-font-smoothing: antialiased;
}
.nc-ki-search-kisyu input::placeholder,
.nc-da-search-dai input::placeholder {
  color: #666;
}
.nc-ki-search-btn-submit,
.nc-da-search-btn-submit {
  flex-shrink: 0;
}
.nc-ki-search-btn-submit button,
.nc-da-search-btn-submit button {
  background: var(--accent) !important;
  border: none !important;
  border-radius: 8px;
  width: 40px;
  height: 40px;
  cursor: pointer;
  font-size: 18px;
  color: #000;
}
.nc-ki-search-btn-submit button::after,
.nc-da-search-btn-submit button::after {
  content: "🔍";
}
.search-drawer input::placeholder {
  color: #666;
}
/* チェックボックス（パチンコ/スロット） */
.nc-ki-search-ps label.checkbox {
  color: #fff !important;
  text-shadow: none !important;
}

/* ===== 既存要素のテーマ上書き ===== */

/* 元のUI要素を非表示（カスタムUIに置き換え） */
.nc-table.nc-relative {
  display: none !important;
}
/* 元のヘッダー内のナビ・ロゴ・ローダー（カスタムUIに置き換え） */
body > header > nav,
body > header > .nc-pscube-logo,
body > header > a.nc-pscube-logo,
.nc-pscube-logo,
.nc-loader {
  display: none !important;
}
/* 更新時間を表示するためheader自体は残す */
body > header {
  background: transparent;
  border: none;
  padding: 0;
  margin: 0;
  width: 100%;
  max-width: 100vw;
  overflow: hidden;
  box-sizing: border-box;
}
/* 更新時間 */
.nc-upYMDhms {
  text-align: right;
  color: #fff;
  font-size: 12px;
  padding: 4px 10px;
  box-sizing: border-box;
  width: 100%;
}
/* ヘッダー非表示後の余白を除去 */
.nc-main.nc-mT-1p5 {
  margin-top: 0 !important;
}
/* DMM: 元のheaderロゴ（ロゴバナーと重複） */
[data-is-dmm="1"] > header:first-of-type,
[data-docroot*="dedamajyoho"] > header:first-of-type {
  display: none !important;
}
/* 元の検索ラッパー（ドロワー検索に置き換え） */
.search-wrapper {
  display: none !important;
}
/* サブページ見出し（PACHINKO/SLOT表示） */
.nc-main h1,
.nc-background-b h1 {
  color: var(--accent) !important;
  font-size: 18px;
  font-weight: bold;
  padding: 12px 15px;
  border-left: 4px solid var(--accent);
  background: #1a1a1a;
  margin: 0;
}
/* ===== トップページ メニューリスト（テーブルを縦並びに変換） ===== */
/* トップページではメニューFABを非表示（JSで制御） */
body.has-main-menu #menuToggle {
  display: none;
}
.nc-main-menu,
.nc-main-menu tbody,
.nc-main-menu tr {
  display: block !important;
  width: 100% !important;
}
.nc-main-menu td {
  display: block !important;
  padding: 0 !important;
  border: none !important;
  margin-bottom: 8px;
}
/* リンクのないセル（プレースホルダー）を非表示 */
.nc-main-menu td:not(:has(a)) {
  display: none !important;
}
.nc-main-menu a {
  display: flex !important;
  align-items: center;
  gap: 14px;
  padding: 14px 20px;
  background: #333333;
  border: 2px solid var(--accent);
  border-radius: 10px;
  text-decoration: none;
  color: #ffffff;
  font-size: 15px;
  font-weight: 600;
  transition: all 0.15s;
}
.nc-main-menu a:active {
  background: #444444;
}
.nc-main-menu img {
  width: 36px !important;
  height: 36px !important;
  object-fit: contain;
  border: none !important;
  border-radius: 4px !important;
  flex-shrink: 0;
}
/* JSが追加するテキストラベル */
.nc-main-menu .menu-card-label {
  flex: 1;
}
/* ===== トップページ (nc-v01-101) ===== */
/* 店舗名ヒーロー */
.top-hero {
  padding: var(--hero-pad-top, 24px) 16px var(--hero-pad-bottom, 16px);
  text-align: center;
}
.top-hero-image {
  width: 100%;
  height: auto;
  max-height: var(--hero-height, 250px);
  object-fit: contain;
  border-radius: 0 !important;
  border: none !important;
  margin-bottom: 12px;
}
/* スライドショー */
.top-hero-slider {
  position: relative;
  overflow: hidden;
  height: var(--hero-height, 250px) !important;
  margin-bottom: 12px;
}
.top-hero-slider .top-hero-image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: var(--hero-height, 250px) !important;
  object-fit: contain;
  border: none !important;
  border-radius: 0 !important;
  opacity: 0;
  transform: translateX(100%);
  transition: transform 0.6s ease, opacity 0.6s ease;
}
.top-hero-slider .top-hero-image.active {
  opacity: 1;
  transform: translateX(0);
}
.top-hero-slider .top-hero-image.slide-out {
  transform: translateX(-100%);
  opacity: 0;
}
.top-hero-name {
  color: var(--accent) !important;
  font-size: 20px !important;
  font-weight: bold;
  padding: 0 !important;
  margin: 0;
  border-left: none !important;
  background: transparent !important;
  line-height: 1.4;
}

/* ===== セクション見出し共通 ===== */
.section-heading {
  margin: 25px 16px;
  font-weight: bold;
  color: var(--accent);
  text-align: left;
}
/* num/badge はnumbered/circle-badgeスタイルでのみ表示 */
.section-heading > .num,
.section-heading > .badge {
  display: none;
}

/* --- underline: 下線（標準） B4 --- */
.section-heading-underline {
  display: flex;
  align-items: stretch;
  gap: 12px;
  font-size: 22px;
}
.section-heading-underline .main {
  flex: 1;
  padding-bottom: 4px;
  border-bottom: 2px solid var(--accent);
  text-align: left;
}
.section-heading-underline .sub {
  font-size: 14px;
  letter-spacing: 0.1em;
  font-weight: normal;
  text-align: right;
  line-height: 1.2;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-bottom: 0;
}

/* --- triangle: 三角アイコン M --- */
.section-heading-triangle {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 22px;
  border-bottom: 1px solid #444;
  padding-bottom: 6px;
}
.section-heading-triangle::before {
  content: '';
  width: 0;
  height: 0;
  border-left: 8px solid var(--accent);
  border-top: 6px solid transparent;
  border-bottom: 6px solid transparent;
  flex-shrink: 0;
}
.section-heading-triangle .main {
  text-align: left;
}
.section-heading-triangle .sub {
  margin-left: auto;
  font-size: 12px;
  letter-spacing: 0.1em;
  font-weight: normal;
  text-align: right;
  line-height: 1.2;
}

/* --- centered: 中央寄せ P --- */
.section-heading-centered {
  text-align: center;
  font-size: 22px;
}
.section-heading-centered .main::before {
  content: '— ';
  color: var(--accent);
  margin-right: 8px;
}
.section-heading-centered .main::after {
  content: ' —';
  color: var(--accent);
  margin-left: 8px;
}
.section-heading-centered .sub {
  display: block;
  font-size: 12px;
  letter-spacing: 0.15em;
  font-weight: normal;
  margin-top: 4px;
}

/* --- card: カード型 R --- */
.section-heading-card {
  padding: 8px 12px;
  background: #2b2b2b;
  border-left: 4px solid var(--accent);
}
.section-heading-card .main {
  font-size: 18px;
}
.section-heading-card .sub {
  display: block;
  font-size: 12px;
  letter-spacing: 0.1em;
  font-weight: normal;
  color: #aaa;
  margin-top: 2px;
}

/* --- arrow: 矢印付き AC --- */
.section-heading-arrow {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 20px;
  border-bottom: 2px solid var(--accent);
  padding-bottom: 6px;
}
.section-heading-arrow::before {
  content: '▶';
  font-size: 14px;
  color: var(--accent);
  flex-shrink: 0;
}
.section-heading-arrow .main {
  text-align: left;
}
.section-heading-arrow .sub {
  margin-left: auto;
  font-size: 12px;
  letter-spacing: 0.1em;
  font-weight: normal;
  line-height: 1.2;
  text-align: right;
}

/* --- accent-bar: 縦線アクセント E --- */
.section-heading-accent-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 4px 0;
  font-size: 22px;
}
.section-heading-accent-bar::before {
  content: '';
  width: 4px;
  height: 1.4em;
  background: var(--accent);
  border-radius: 2px;
  flex-shrink: 0;
}
.section-heading-accent-bar .sub {
  margin-left: auto;
  font-size: 12px;
  letter-spacing: 0.1em;
  font-weight: normal;
  text-align: right;
  line-height: 1.2;
}

/* --- large-en: 大英字 + 和文 L --- */
.section-heading-large-en {
  text-align: left;
}
.section-heading-large-en .main {
  display: block;
  font-size: 36px;
  font-weight: 900;
  letter-spacing: 0.05em;
  color: var(--accent);
  line-height: 1;
  text-transform: uppercase;
}
.section-heading-large-en .sub {
  display: block;
  font-size: 14px;
  font-weight: bold;
  color: var(--accent);
  margin-top: 6px;
  letter-spacing: 0.1em;
}
.section-heading-large-en .sub::before {
  content: '';
  display: inline-block;
  width: 24px;
  height: 2px;
  background: var(--accent);
  margin-right: 8px;
  vertical-align: middle;
}

/* --- vertical-bar: 縦長ブロック Q --- */
.section-heading-vertical-bar {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  column-gap: 16px;
}
.section-heading-vertical-bar::before {
  content: '';
  width: 6px;
  background: var(--accent);
  border-radius: 3px;
  align-self: stretch;
  grid-row: 1 / span 2;
}
.section-heading-vertical-bar .main {
  font-size: 22px;
  font-weight: bold;
  line-height: 1.1;
  grid-column: 2;
}
.section-heading-vertical-bar .sub {
  font-size: 12px;
  letter-spacing: 0.1em;
  font-weight: normal;
  margin-top: 2px;
  grid-column: 2;
}

/* --- slash: スラッシュ区切り + 下線 S --- */
.section-heading-slash {
  display: flex;
  align-items: flex-end;
  padding-bottom: 8px;
  font-size: 22px;
  border-bottom: 2px solid var(--accent);
}
.section-heading-slash .main {
  margin-right: 12px;
}
.section-heading-slash .main::after {
  content: ' /';
  color: #666;
  margin-left: 8px;
  font-weight: normal;
}
.section-heading-slash .sub {
  margin-left: auto;
  font-size: 12px;
  letter-spacing: 0.1em;
  font-weight: normal;
  line-height: 1.2;
  text-align: right;
}

/* --- numbered: 番号付き U --- */
.section-heading-numbered {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  column-gap: 12px;
  border-bottom: 1px solid #444;
  padding-bottom: 8px;
}
.section-heading-numbered > .num {
  display: inline-block;
  font-size: 40px;
  font-weight: 900;
  line-height: 1;
  font-family: 'Courier New', monospace;
  grid-row: 1 / span 2;
  align-self: center;
}
.section-heading-numbered .main {
  font-size: 22px;
  font-weight: bold;
  line-height: 1.1;
  grid-column: 2;
}
.section-heading-numbered .sub {
  font-size: 12px;
  letter-spacing: 0.1em;
  font-weight: normal;
  margin-top: 2px;
  grid-column: 2;
}

/* --- skewed: 斜めシェイプ V --- */
.section-heading-skewed {
  display: flex;
  align-items: center;
  margin-left: 0;
  margin-right: 0;
  font-size: 22px;
}
.section-heading-skewed .main {
  background: var(--accent);
  color: #000;
  padding: 6px 24px 6px 16px;
  clip-path: polygon(0 0, 100% 0, calc(100% - 14px) 100%, 0 100%);
}
.section-heading-skewed .sub {
  margin-left: auto;
  margin-right: 16px;
  font-size: 12px;
  letter-spacing: 0.1em;
  font-weight: normal;
  text-align: right;
  line-height: 1.2;
}

/* --- double-border: 上下二重ボーダー W --- */
.section-heading-double-border {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 6px 0;
  border-top: 1px solid var(--accent);
  border-bottom: 1px solid var(--accent);
  font-size: 22px;
}
.section-heading-double-border .sub {
  font-size: 12px;
  letter-spacing: 0.1em;
  font-weight: normal;
  line-height: 1.2;
  text-align: right;
}

/* --- band: アクセント帯（短い・左寄せ） Z --- */
.section-heading-band {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 22px;
}
.section-heading-band .main {
  background: var(--accent);
  color: #000;
  padding: 4px 14px;
}
.section-heading-band .sub {
  margin-left: auto;
  font-size: 12px;
  letter-spacing: 0.1em;
  font-weight: normal;
  text-align: right;
  line-height: 1.2;
}

/* --- elevated: 影付き浮き上がりカード AB --- */
.section-heading-elevated {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 14px;
  background: #2b2b2b;
  border-radius: 4px;
  border-left: 4px solid var(--accent);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  font-size: 20px;
}
.section-heading-elevated .sub {
  font-size: 12px;
  letter-spacing: 0.1em;
  font-weight: normal;
  line-height: 1.2;
  text-align: right;
}

/* --- gradient-line: グラデーション下線 AD --- */
.section-heading-gradient-line {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 8px;
  font-size: 22px;
  background-image: linear-gradient(90deg, var(--accent) 0%, transparent 100%);
  background-size: 100% 3px;
  background-repeat: no-repeat;
  background-position: bottom;
}
.section-heading-gradient-line .sub {
  font-size: 12px;
  letter-spacing: 0.1em;
  font-weight: normal;
  line-height: 1.2;
  text-align: right;
}

/* --- center-line: 中央メイン + 横線が背景 AE --- */
.section-heading-center-line {
  text-align: center;
  position: relative;
}
.section-heading-center-line .main {
  display: inline-block;
  padding: 0 16px;
  font-size: 26px;
  font-weight: 900;
  position: relative;
  z-index: 1;
}
.section-heading-center-line::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 1px;
  background: var(--accent);
  z-index: 0;
}
.section-heading-center-line .sub {
  display: block;
  font-size: 12px;
  letter-spacing: 0.2em;
  margin-top: 6px;
  font-weight: normal;
}

/* --- flag: バナーフラッグ AF --- */
.section-heading-flag {
  display: flex;
  align-items: center;
  margin-left: 0;
  font-size: 20px;
}
.section-heading-flag .main {
  background: var(--accent);
  color: #000;
  padding: 8px 24px 8px 14px;
  clip-path: polygon(0 0, 100% 0, calc(100% - 12px) 50%, 100% 100%, 0 100%);
}
.section-heading-flag .sub {
  margin-left: 8px;
  font-size: 12px;
  letter-spacing: 0.1em;
  font-weight: normal;
  text-align: right;
  line-height: 1.2;
}

/* --- circle-badge: 円形バッジ + テキスト AI --- */
.section-heading-circle-badge {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  column-gap: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid #444;
}
.section-heading-circle-badge > .badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--accent);
  color: #000;
  font-size: 14px;
  font-weight: 900;
  letter-spacing: 0.05em;
  grid-row: 1 / span 2;
  align-self: center;
}
.section-heading-circle-badge .main {
  font-size: 20px;
  font-weight: bold;
  line-height: 1.1;
  grid-column: 2;
}
.section-heading-circle-badge .sub {
  font-size: 11px;
  letter-spacing: 0.1em;
  margin-top: 2px;
  font-weight: normal;
  grid-column: 2;
}

/* メニューカード */
.top-menu {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px 8px;
}
.top-menu-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: var(--menu-pad-y, 14px) var(--menu-pad-x, 20px);
  background: #333333;
  border: 2px solid var(--accent);
  border-radius: 10px;
  text-decoration: none;
  color: #ffffff;
  font-size: 15px;
  font-weight: 600;
  transition: all 0.15s;
}
.top-menu-item:active {
  background: #444444;
}
.top-menu-icon {
  width: var(--menu-icon-size, 36px);
  height: var(--menu-icon-size, 36px);
  text-align: center;
  flex-shrink: 0;
  font-size: calc(var(--menu-icon-size, 36px) * 0.78);
  line-height: var(--menu-icon-size, 36px);
}
.top-menu-icon img {
  width: var(--menu-icon-size, 36px);
  height: var(--menu-icon-size, 36px);
  object-fit: contain;
  border-radius: 4px;
}
.top-menu-label {
  flex: 1;
  font-size: var(--menu-font-size, 15px);
}
/* メイン項目（パチンコ/スロット） */
.top-menu-main {
  padding: calc(var(--menu-pad-y, 14px) + 4px) calc(var(--menu-pad-x, 20px) + 4px);
  border-width: 2px;
}
.top-menu-main .top-menu-label {
  font-size: calc(var(--menu-font-size, 15px) + 2px);
}
/* サブ項目（ランキング/グループ/SNS等） */
.top-menu-sub {
  padding: var(--menu-pad-y, 14px) var(--menu-pad-x, 20px);
  border-color: #555;
  background: #2b2b2b;
}
.top-menu-sub .top-menu-icon {
  width: calc(var(--menu-icon-size, 36px) * 0.78);
  height: calc(var(--menu-icon-size, 36px) * 0.78);
  font-size: calc(var(--menu-icon-size, 36px) * 0.6);
  line-height: calc(var(--menu-icon-size, 36px) * 0.78);
}
.top-menu-sub .top-menu-icon img {
  width: calc(var(--menu-icon-size, 36px) * 0.78);
  height: calc(var(--menu-icon-size, 36px) * 0.78);
}
.top-menu-sub .top-menu-label {
  font-size: calc(var(--menu-font-size, 15px) - 1px);
}
/* --- レイアウト: 2列グリッド --- */
/* ブランクメニュー項目 */
.top-menu-blank {
  visibility: hidden;
  pointer-events: none;
}
/* 余りアイテムの横伸び */
.top-menu-grid-2 .top-menu-item:last-child:nth-child(odd) {
  grid-column: 1 / -1;
}
.top-menu-grid-2 {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.top-menu-grid-2 .top-menu-item {
  flex-direction: column;
  text-align: center;
  gap: 8px;
  padding: var(--menu-pad-y, 14px) var(--menu-pad-x, 20px);
}
.top-menu-grid-2 .top-menu-label {
  font-size: 13px;
  line-height: 1.3;
  flex: unset;
}
/* --- レイアウト: 3列グリッド（6カラムベース） --- */
.top-menu-grid-3 {
  display: grid !important;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
}
.top-menu-grid-3 .top-menu-item,
.top-menu-grid-3 .top-menu-blank {
  grid-column: span 2;
}
/* 余り1個 → 全幅 */
.top-menu-grid-3 .top-menu-item:last-child:nth-child(3n+1),
.top-menu-grid-3 .top-menu-blank:last-child:nth-child(3n+1) {
  grid-column: 1 / -1;
}
/* 余り2個 → 各3カラム（均等半分） */
.top-menu-grid-3 .top-menu-item:last-child:nth-child(3n+2),
.top-menu-grid-3 .top-menu-blank:last-child:nth-child(3n+2) {
  grid-column: span 3;
}
.top-menu-grid-3 .top-menu-item:nth-last-child(2):nth-child(3n+1),
.top-menu-grid-3 .top-menu-blank:nth-last-child(2):nth-child(3n+1) {
  grid-column: span 3;
}
.top-menu-grid-3 .top-menu-item {
  flex-direction: column;
  text-align: center;
  gap: 6px;
  padding: var(--menu-pad-y, 14px) var(--menu-pad-x, 20px);
}
.top-menu-grid-3 .top-menu-icon {
  width: 40px;
  height: 40px;
  font-size: 32px;
  line-height: 40px;
}
.top-menu-grid-3 .top-menu-icon img {
  width: 40px;
  height: 40px;
}
.top-menu-grid-3 .top-menu-label {
  font-size: 11px;
  line-height: 1.3;
  flex: unset;
}
/* --- レイアウト: メイン2列+サブリスト --- */
.top-menu-split {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.top-menu-split .top-menu-main {
  flex-direction: column;
  text-align: center;
  gap: 8px;
  padding: var(--menu-pad-y, 14px) var(--menu-pad-x, 20px);
}
.top-menu-split .top-menu-main .top-menu-icon {
  width: var(--menu-icon-size, 36px);
  height: var(--menu-icon-size, 36px);
  font-size: calc(var(--menu-icon-size, 36px) * 0.78);
  line-height: var(--menu-icon-size, 36px);
}
.top-menu-split .top-menu-main .top-menu-icon img {
  width: var(--menu-icon-size, 36px);
  height: var(--menu-icon-size, 36px);
}
.top-menu-split .top-menu-main .top-menu-label {
  font-size: var(--menu-font-size, 15px);
}
.top-menu-split .top-menu-sub {
  grid-column: 1 / -1;
  padding: var(--menu-pad-y, 14px) var(--menu-pad-x, 20px);
  border-color: #555;
  background: #2b2b2b;
}
.top-menu-split .top-menu-sub .top-menu-icon {
  width: calc(var(--menu-icon-size, 36px) * 0.7);
  height: calc(var(--menu-icon-size, 36px) * 0.7);
  font-size: calc(var(--menu-icon-size, 36px) * 0.55);
  line-height: calc(var(--menu-icon-size, 36px) * 0.7);
}
.top-menu-split .top-menu-sub .top-menu-icon img {
  width: calc(var(--menu-icon-size, 36px) * 0.7);
  height: calc(var(--menu-icon-size, 36px) * 0.7);
}
.top-menu-split .top-menu-sub .top-menu-label {
  font-size: calc(var(--menu-font-size, 15px) - 1px);
}
/* --- レイアウト: チップ --- */
.top-menu-chip {
  display: flex !important;
  flex-wrap: wrap;
  gap: 8px;
}
.top-menu-chip .top-menu-item {
  flex: 0 0 auto;
  padding: var(--menu-pad-y, 14px) var(--menu-pad-x, 20px);
  border-radius: 50px;
  gap: 8px;
}
.top-menu-chip .top-menu-main {
  padding: calc(var(--menu-pad-y, 14px) + 4px) calc(var(--menu-pad-x, 20px) + 4px);
}
.top-menu-chip .top-menu-sub {
  border-color: #555;
  background: #2b2b2b;
  padding: var(--menu-pad-y, 14px) var(--menu-pad-x, 20px);
}
.top-menu-chip .top-menu-icon {
  width: var(--menu-icon-size, 36px);
  height: var(--menu-icon-size, 36px);
  font-size: calc(var(--menu-icon-size, 36px) * 0.78);
  line-height: var(--menu-icon-size, 36px);
}
.top-menu-chip .top-menu-icon img {
  width: var(--menu-icon-size, 36px);
  height: var(--menu-icon-size, 36px);
}
.top-menu-chip .top-menu-label {
  font-size: var(--menu-font-size, 15px);
  flex: unset;
}
.top-menu-chip .top-menu-sub .top-menu-label {
  font-size: calc(var(--menu-font-size, 15px) - 1px);
}
/* --- レイアウト: コンパクト2列 --- */
.top-menu-compact {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 4px 8px;
}
.top-menu-compact .top-menu-item {
  padding: var(--menu-pad-y, 14px) var(--menu-pad-x, 20px);
  gap: 0;
  border: none;
  border-bottom: 1px solid #444;
  border-radius: 0;
  background: transparent;
  font-size: var(--menu-font-size, 15px);
}
.top-menu-compact .top-menu-item:active {
  background: #333;
}
.top-menu-compact .top-menu-icon { display: none; }
.top-menu-compact .top-menu-main .top-menu-label {
  font-size: var(--menu-font-size, 15px);
  font-weight: 700;
}
.top-menu-compact .top-menu-sub .top-menu-label {
  font-size: calc(var(--menu-font-size, 15px) - 1px);
  font-weight: 400;
  color: #ccc;
}

/* アイコンのみ */
.top-menu-icon-only .top-menu-label { display: none; }
.top-menu-icon-only .top-menu-item {
  background: none;
  border: none;
  padding: var(--menu-pad-y, 14px) var(--menu-pad-x, 20px);
  justify-content: center;
}
/* グリッド/分割系のアイコンのみ: クリック領域をアイコンサイズに揃える */
.top-menu-icon-only.top-menu-grid-2 .top-menu-item,
.top-menu-icon-only.top-menu-grid-3 .top-menu-item,
.top-menu-icon-only.top-menu-split .top-menu-item {
  padding: 0;
  width: -moz-fit-content;
  width: fit-content;
  max-width: 100%;
  margin: 0 auto;
}
/* グリッド/分割系のアイコンのみ: 縦方向の間隔を確保（元のpaddingと同等の見た目） */
.top-menu-icon-only.top-menu-grid-2,
.top-menu-icon-only.top-menu-grid-3,
.top-menu-icon-only.top-menu-split {
  row-gap: 36px;
}
.top-menu-icon-only .top-menu-icon {
  width: var(--menu-icon-size, 64px);
  height: var(--menu-icon-size, 64px);
  font-size: calc(var(--menu-icon-size, 64px) * 0.78);
  line-height: var(--menu-icon-size, 64px);
  text-align: center;
  margin: 0 auto;
}
.top-menu-icon-only .top-menu-icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
/* グリッド/分割系: セル幅で頭打ち（スライダー最大値ならセル幅いっぱい、小さければそのサイズ） */
.top-menu-icon-only.top-menu-grid-2 .top-menu-icon,
.top-menu-icon-only.top-menu-grid-3 .top-menu-icon,
.top-menu-icon-only.top-menu-split .top-menu-icon {
  width: var(--menu-icon-size, 64px);
  max-width: 100%;
  height: auto;
  aspect-ratio: 1;
}
.top-menu-icon-only.top-menu-split .top-menu-sub {
  grid-column: auto;
}
/* テキストのみ */
.top-menu-text-only .top-menu-icon { display: none; }

/* お知らせ */
.top-notice {
  margin: 0 8px 8px;
  background: #1a1a1a;
  border: 1px solid #444;
  border-radius: 10px;
  overflow: hidden;
}
.top-notice-title {
  background: #333;
  color: var(--accent);
  font-size: 14px;
  font-weight: bold;
  padding: 8px 14px;
  border-bottom: 1px solid #444;
  text-align: left;
}
.top-notice-body {
  padding: 12px 14px;
  font-size: 14px;
  color: #fff;
  line-height: 1.6;
  text-align: left;
}
.top-notice-body ul, .top-hours-body ul {
  margin: 0.3em 0;
  padding-left: 1.2em;
}
.top-notice-body li, .top-hours-body li {
  list-style: disc;
  margin: 0.2em 0;
}
.top-hours-body ul {
  padding-left: 0;
}
.top-hours-center .top-hours-body ul {
  text-align: center;
}
.top-hours-body li {
  list-style: none;
}
.top-notice-body a, .top-hours-body a {
  color: var(--accent-link);
  text-decoration: underline;
}
/* MAP */
.top-map {
  margin: 0 8px 8px;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid #444;
  position: relative;
}
.top-map iframe {
  display: block;
}
.top-map-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  cursor: pointer;
}

/* 元の検索ボックス（h-type: #new_search / DMM: #target） */
#new_search {
  display: none !important;
}
/* DMM検索ボックス（body直下のみ。.nc-main内のデータ描画#targetは除外） */
body > #target {
  display: none !important;
}
/* ドロワー外の検索UI（元ページの検索タブ・ウィジェット） */
body > .nc-ki-search,
body > .nc-da-search,
.nc-main .nc-ki-search,
.nc-main .nc-da-search,
.nc-main .search-ul,
body > .search-ul {
  display: none !important;
}
/* 検索ウィジェットのヘッダー（チェックボックス等） */
.nc-ki-search-header,
.nc-da-search-header {
  padding: 8px 0;
}
.nc-ki-search-header .nc-navi-p,
.nc-ki-search-header .nc-navi-s,
.nc-da-search-header .nc-navi-p,
.nc-da-search-header .nc-navi-s {
  display: block !important;
}
.nc-ki-search-ps label,
.nc-da-search-ps label {
  color: #ffffff;
  font-size: 14px;
  margin-right: 12px;
}

/* ショップ画像 */
header img {
  max-width: 100%;
  height: auto;
  border-radius: 12px;
  border: 2px solid #444444;
}

/* 見出し */
.nc-h2,
h2 {
  color: var(--accent) !important;
  font-size: 18px;
  font-weight: bold;
  padding: 12px 15px;
  margin-top: 15px;
  border-left: 4px solid var(--accent);
  background: #1a1a1a;
}

/* ボックス */
.nc-box {
  background: #2b2b2b !important;
  border: 2px solid #444444 !important;
  border-radius: 15px !important;
  padding: 10px;
  margin: 10px 5px;
}

/* MAP（iframe上でFABボタンが押せなくなる対策） */
.nc-box iframe[src*="maps.google"] {
  border-radius: 10px;
  border: 1px solid #444444;
  pointer-events: none;
}
.nc-box iframe:not([src*="maps.google"]) {
  border-radius: 10px;
  border: 1px solid #444444;
}

/* テキスト */
.nc-text-align-left,
.nc-font-small {
  color: #fff;
  line-height: 1.6;
}
.nc-text-align-left a {
  color: var(--accent);
  text-decoration: none;
}

/* フッターロゴエリア */
header[style*="border-top"] {
  border-top: 1px solid #444444 !important;
  margin-top: 20px;
  padding-top: 15px;
}

/* 注意文 */
.nc-font-weight-bold {
  color: #fff;
  line-height: 1.6;
}
p.nc-font-weight-bold {
  color: #ff6666;
  font-size: 13px;
  line-height: 1.8;
}

/* 「このページの先頭へ」ボタン */
#icon-top {
  right: auto !important;
  left: 0.5em !important;
}
#icon-top img {
  display: none !important;
}
#icon-top a {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 48px !important;
  height: 48px !important;
  background: #333333 !important;
  color: var(--accent) !important;
  border: 2px solid var(--accent);
  border-radius: 50%;
  font-size: 22px;
  font-weight: bold;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  text-decoration: none;
}
#icon-top a::before {
  content: "\25B2";
}

/* 台別データ 左右ナビボタン（前台・次台） */
#icon-dai a {
  background-image: none !important;
  background: #333333 !important;
  border: 2px solid var(--accent);
  width: 40px !important;
  height: 40px !important;
  border-radius: 50%;
  display: flex !important;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
#icon-dai a::before {
  font-size: 20px;
  font-weight: bold;
  color: var(--accent);
}
#icon-dai a[data-id="dai_prev"]::before {
  content: "\276E";
}
#icon-dai a[data-id="dai_next"]::before {
  content: "\276F";
}
#icon-dai {
  bottom: 300px !important;
}
#dai_prev,
#dai_next {
  background-color: var(--accent) !important;
  color: #000 !important;
  text-shadow: none !important;
}

/* フッターリンク */
footer ul {
  list-style: none;
  padding: 0;
}
footer ul li {
  display: block !important;
}
footer ul li a,
footer ul li:first-child a {
  color: var(--accent);
  text-decoration: none;
  font-size: 14px;
  display: block;
  padding: 12px 10px;
  border-bottom: 1px solid #444444;
  border-left: none !important;
}
footer ul li {
  border-left: none !important;
}

/* スランプグラフ凡例の行間を詰める */
.nc-legend td {
  padding: 0.1em 0.5em !important;
}

/* フッター */
footer {
  background: #1a1a1a;
  border-top: 1px solid #444444;
  padding: 15px;
  margin-top: 10px;
  text-align: center;
  box-sizing: border-box;
  overflow: hidden;
}
footer small {
  color: #666;
  font-size: 12px;
}

/* リンク全般 */
a {
  color: var(--accent);
}

/* nc-v05方式スクロールメニュー（ランキング等で再利用） */
.nc-horizontal-scrolling-menu-wrap { position: relative; box-sizing: border-box; }
.nc-horizontal-scrolling-menu-wrap.left::before,
.nc-horizontal-scrolling-menu-wrap.right::after {
  z-index: 10; content: ""; position: absolute; top: 0;
  background-repeat: no-repeat; background-size: contain; background-position: center;
  width: 17px; height: 100%;
}
.nc-horizontal-scrolling-menu-wrap.left::before { background-image: url("/images/05/5_arrow-left.png"); left: .3em; }
.nc-horizontal-scrolling-menu-wrap.right::after { background-image: url("/images/05/5_arrow-right.png"); right: .3em; }
.nc-horizontal-scrolling-menu { width: 90%; margin: 0 auto; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.nc-horizontal-scrolling-menu::-webkit-scrollbar { display: none; }
.nc-horizontal-scrolling-menu > * { position: relative; pointer-events: auto; }
.nc-horizontal-scrolling-menu.pointer-events-none > * { pointer-events: none; }
.YMD-ul { display: table; table-layout: fixed; border-collapse: collapse; border: none; border-spacing: 0; margin: 0 auto; margin-top: .5em; margin-bottom: .5em; background-color: rgba(255,255,255,.2); text-shadow: none; }
.YMD-ul > * { box-sizing: border-box; }
.YMD-ul li { display: table-cell; vertical-align: bottom; white-space: nowrap; text-align: center; max-width: 6em; min-width: 6em; border: 1px solid #000; padding: .5em; }
.YMD-ul li.selected { background-color: var(--accent, #e2231a) !important; }
.rank-ymd { direction: ltr !important; }
.rank-ymd li { min-width: 7em !important; max-width: 7em !important; font-size: 105%; }

/* ランキング レート選択カード */
.nc-rank .nc-rank-dedama {
  margin-top: 0.5em !important;
}
.nc-rank > header > ul.nc-mT-2p0 {
  margin-top: 0.5em !important;
  background: #2b2b2b !important;
  background-image: none !important;
  border: 1px solid #444 !important;
  border-radius: 10px !important;
  padding: 0 !important;
  overflow: hidden;
}
.nc-rank > header > ul.nc-mT-2p0 li {
  list-style: none;
  border-bottom: 1px solid #444;
  text-align: center !important;
}
.nc-rank > header > ul.nc-mT-2p0 li:last-child {
  border-bottom: none;
}
.nc-rank > header > ul.nc-mT-2p0 .nc-box-inset {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  background: #333 !important;
  color: #fff !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 12px 16px !important;
  margin: 0 !important;
  font-weight: bold;
  text-shadow: none !important;
  text-decoration: none !important;
}
.nc-rank > header > ul.nc-mT-2p0 .nc-box-inset:active {
  background: var(--accent) !important;
  color: #000 !important;
}
/* nc-box-inset 汎用（ランキング以外） */
.nc-box-inset {
  background: #333 !important;
  color: #fff !important;
  border: 1px solid #555 !important;
  border-radius: 6px !important;
  padding: 6px 10px !important;
  margin: 3px 2px !important;
  text-shadow: none !important;
}
.nc-rank .nc-rank-toku {
  color: #fff;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 2px solid var(--accent);
}
.nc-rank .nc-rank-toku:first-child {
  border-top: none;
  padding-top: 0;
}
.nc-rank .nc-ellipsis {
  color: var(--data-color) !important;
}

/* リストビュー */
.nc-li.nc-bar,
.nc-li.nc-first-child.nc-text-align-center {
  background: #1a1a1a !important;
  color: var(--accent) !important;
  text-shadow: none !important;
  font-size: 18px !important;
  font-weight: bold;
}
.nc-li.nc-li-static {
  background: #2b2b2b !important;
  color: #fff !important;
}
.nc-li.nc-li-static p {
  color: #fff !important;
  text-shadow: none !important;
}
.nc-listview {
  border-color: #444444 !important;
  border-radius: 10px;
  overflow: hidden;
}
.nc-listview-inset .nc-li {
  box-sizing: border-box;
}

/* メインコンテンツ背景 */
.nc-background-a,
.nc-background-b {
  background-color: transparent !important;
}

/* === レート選択ページ (nc-v02-001) === */
.nc-listview-rate.nc-box {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
  border-radius: 0 !important;
}
.nc-listview-rate table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 8px;
}
.nc-listview-rate .g2 td.btn-bai-nodisplay {
  width: 0;
  padding: 0 !important;
  border: none !important;
  background: none !important;
  background-image: none !important;
  font-size: 0;
  overflow: hidden;
  visibility: hidden;
}
/* g1: メインボタン（パチンコ/スロット） — a要素自体がbtn-bai */
.nc-listview-rate .g1 a.btn-bai {
  background: #1a1a1a !important;
  background-image: none !important;
  border: 2px solid var(--accent);
  border-radius: 10px;
  height: auto !important;
  min-height: 2.6em;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  color: var(--accent);
  font-size: 0;
  text-decoration: none;
  text-align: center;
  line-height: 1.4;
}
.nc-listview-rate .g1 a.btn-bai-p-0,
.nc-listview-rate .g1 a.btn-bai-s-0,
.nc-listview-rate .g1 a.btn-bai-p-1,
.nc-listview-rate .g1 a.btn-bai-s-1 {
  background: #1a1a1a !important;
  background-image: none !important;
}
/* g1: 画像ラベルの代わりにテキストラベル */
.nc-listview-rate .g1 a.btn-bai::after {
  font-size: 24px;
  font-weight: bold;
}
.nc-listview-rate .g1 a.btn-bai-p-0::after { content: "パチンコ機種一覧"; }
.nc-listview-rate .g1 a.btn-bai-s-0::after { content: "スロット機種一覧"; }
.nc-listview-rate .g1 a.btn-bai-p-1::after { content: "パチンコランキング"; }
.nc-listview-rate .g1 a.btn-bai-s-1::after { content: "スロットランキング"; }
/* g2: レートサブボタン */
.nc-listview-rate .btn-bai-display {
  background-image: none !important;
  background: #333333 !important;
  border: 1px solid #444444;
  border-radius: 8px;
}
.nc-listview-rate .btn-bai-display a {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px 8px;
  color: #ffffff !important;
  text-decoration: none;
  text-align: center;
  font-size: 15px;
  font-weight: bold;
  height: auto !important;
  line-height: 1.4;
}
/* メッセージテキスト */
.nc-message-1, .nc-message-2 {
  color: #fff;
  word-break: break-all;
  overflow-wrap: break-word;
}

/* === 選択状態の赤(#e2231a)をテーマカラーに置換 === */
.selected {
  background-color: var(--accent) !important;
  color: #000 !important;
}
/* 日付ナビ・並べ替えは fitText/画面幅に左右されず固定サイズに統一（高さ約28px） */
#YMD-ul li,
.YMD-ul li,
.YMD-ul .cell,
.YMD-ul td,
.YMD-ul.rank-ymd li {
  font-size: 14px !important;
  line-height: 1.2 !important;
  padding-top: 5px !important;
  padding-bottom: 5px !important;
  padding-left: 12px !important;
  padding-right: 12px !important;
  min-width: 4em !important;
  min-height: 0 !important;
  vertical-align: middle !important;
}
/* 固定追従バーはロゴ固定ヘッダーの下に出す（裏に隠れないように。--logo-h は nc-v00-000 が動的設定） */
.fixed-menu.fixed {
  top: var(--logo-h, 58px) !important;
}
.YMD-ul li.selected {
  background-color: var(--accent) !important;
}
.nc-switches .nc-switch.selected {
  background-color: var(--accent) !important;
  color: #000 !important;
  padding: 5px 1.8em 5px 0.8em !important;
}
.nc-switches .nc-btn-bai.selected {
  padding: 0 12px !important;
}
.nc-switches .nc-switch {
  color: #fff;
  padding: 5px 12px !important;
  line-height: 1.2;
  font-size: 14px !important;
  vertical-align: middle !important;
}
/* 2行ラベル(累計ゲーム等)の改行を無効化し、全ボタンを1行＝同じ高さに統一（横スクロールで幅は対応） */
.nc-switches .nc-switch br { display: none !important; }
.nc-switches {
  background-color: #333333;
}

/* ========================================================
   ランキングv2 フィルタUI（ドロップダウン展開型）
   ======================================================== */
.rank-filter-wrap {
  position: relative;
  margin: 8px 0;
}
.rank-filter-bar {
  display: flex;
  gap: 6px;
  padding: 8px 10px;
  background: #1d1d1d;
  border-bottom: 1px solid #333;
}
.rank-filter-btn {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 6px 10px;
  border-radius: 8px;
  border: 1px solid #444;
  background: #2b2b2b;
  color: #fff;
  cursor: pointer;
  min-height: 44px;
  line-height: 1.1;
  text-align: left;
  font-family: inherit;
}
/* 期間は短いテキストが多いので小さめに */
.rank-filter-btn[data-filter="date"] {
  flex: 0.65;
}
.rank-filter-btn.active {
  border-color: var(--accent);
  background: #333;
}
.rank-filter-btn .k {
  color: var(--accent);
  font-size: 11px;
  font-weight: bold;
  letter-spacing: 0.05em;
  margin-bottom: 2px;
}
.rank-filter-btn .v {
  font-size: 15px;
  font-weight: bold;
  display: flex;
  align-items: center;
  gap: 4px;
  width: 100%;
  overflow: hidden;
  white-space: nowrap;
}
.rank-filter-btn .v .text {
  overflow: hidden;
  text-overflow: ellipsis;
}
.rank-filter-btn .v::after {
  content: "▾";
  margin-left: auto;
  color: var(--accent);
  font-size: 11px;
  flex-shrink: 0;
}
.rank-filter-btn.active .v::after {
  content: "▴";
}
/* 並び順: 分割ボタン（メイン + 反転） */
.rank-filter-btn.split-btn {
  padding: 0;
  overflow: hidden;
  gap: 0;
  flex-direction: row;
  align-items: stretch;
}
.rank-filter-btn.split-btn .part-main {
  flex: 1;
  min-width: 0;
  padding: 6px 10px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  background: transparent;
  border: none;
  color: #fff;
  cursor: pointer;
  font-family: inherit;
  text-align: left;
  line-height: 1.1;
}
.rank-filter-btn.split-btn .part-reverse {
  flex: 0 0 38px;
  padding: 0;
  background: transparent;
  border: none;
  border-left: 1px solid #444;
  color: var(--accent);
  font-size: 18px;
  font-weight: bold;
  cursor: pointer;
  font-family: inherit;
  display: flex;
  align-items: center;
  justify-content: center;
}
.rank-filter-btn.split-btn .part-reverse:active {
  background: #333;
}
.rank-filter-btn.split-btn.active {
  border-color: var(--accent);
}
.rank-filter-btn.split-btn.active .part-reverse {
  border-left-color: var(--accent);
}
/* split-btnの場合、右側の▾カレットは part-main 側で表示する */
.rank-filter-btn.split-btn > .v,
.rank-filter-btn.split-btn > .k {
  display: none;
}
.rank-filter-btn.split-btn .part-main .v {
  font-size: 15px;
  font-weight: bold;
  display: flex;
  align-items: center;
  gap: 4px;
  width: 100%;
  overflow: hidden;
  white-space: nowrap;
}
.rank-filter-btn.split-btn .part-main .v .text {
  overflow: hidden;
  text-overflow: ellipsis;
}
.rank-filter-btn.split-btn .part-main .v::after {
  content: "▾";
  margin-left: auto;
  color: var(--accent);
  font-size: 11px;
  flex-shrink: 0;
}
.rank-filter-btn.split-btn.active .part-main .v::after {
  content: "▴";
}
.rank-filter-btn.split-btn .part-main .k {
  color: var(--accent);
  font-size: 11px;
  font-weight: bold;
  letter-spacing: 0.05em;
  margin-bottom: 2px;
}
.rank-filter-dropdown {
  background: #262626;
  border-top: 2px solid var(--accent);
  border-bottom: 1px solid #333;
  padding: 12px 10px;
  max-height: 70vh;
  overflow-y: auto;
}
.rank-filter-dropdown[hidden] {
  display: none;
}
.rank-dd-group {
  margin-bottom: 10px;
}
.rank-dd-group:last-child {
  margin-bottom: 0;
}
.rank-dd-label {
  color: #888;
  font-size: 10px;
  letter-spacing: 0.05em;
  margin-bottom: 6px;
  padding-left: 2px;
}
.rank-dd-options {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.rank-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 10px;
  border-radius: 6px;
  border: 1px solid #555;
  background: #1f1f1f;
  color: #ccc;
  font-size: 12px;
  white-space: nowrap;
  cursor: pointer;
  min-height: 36px;
  line-height: 1.2;
  text-shadow: none;
}
.rank-pill.selected {
  background: var(--accent);
  color: #000 !important;
  border-color: var(--accent);
  font-weight: bold;
}
/* ソートピルの既存SVG背景を無効化（方向はバーの反転ボタンで示す） */
.rank-pill.oi-sort-asc,
.rank-pill.oi-sort-desc {
  background-image: none !important;
}
/* 既存 .nc-switches/.nc-btn-sort のCSSを上書き（padding / border-radius / font-size） */
.rank-pill.nc-switch,
.rank-pill.nc-switch.selected,
.rank-pill.nc-btn-sort.nc-switch,
.rank-pill.nc-btn-sort.nc-switch.selected {
  padding: 6px 10px !important;
  border-radius: 6px !important;
  font-size: 12px !important;
}

/* 機種一覧エリア */
.nc-listview-kisyu-outset {
  background: #222222 !important;
  padding: 8px !important;
  border-radius: 10px;
  border: 2px solid #444444;
}
.nc-listview-kisyu li {
  margin-bottom: 4px;
}
.nc-listview-kisyu .nc-label {
  color: #ffffff !important;
  text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.8) !important;
  font-weight: bold;
}
/* 機種ボタンの背景画像を上書き */
.nc-background-image-01,
.nc-background-image-00 {
  background-image: none !important;
  background: #333333 !important;
  border: 1px solid #444444 !important;
  border-radius: 8px;
}
#ulKI li:first-child {
  margin-top: 2px;
}
/* 機種一覧カード（jsRenderテンプレートで直接出力） */
#ulKI li .kisyu-card {
  display: grid !important;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  column-gap: 10px;
  padding: 10px 12px !important;
  background: #333333 !important;
  background-image: none !important;
  background-size: 0 !important;
  border: 1px solid #ffffff;
  border-radius: 8px;
  text-decoration: none;
  color: #ffffff;
  box-sizing: border-box;
  height: auto !important;
  overflow: visible !important;
}
#ulKI li .kisyu-card .kisyu-badge {
  grid-column: 1;
  grid-row: 1 / 3;
}
#ulKI li .kisyu-card .kisyu-name {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
  font-size: 16px;
  word-break: break-word;
  line-height: 1.4;
}
#ulKI li .kisyu-card:not(:has(.kisyu-pv)) .kisyu-name {
  grid-row: 1 / 3;
}
#ulKI li .kisyu-card .kisyu-info {
  grid-column: 3;
  grid-row: 1 / 3;
  text-align: right;
  font-size: 15px;
  color: rgba(255, 255, 255, 0.6);
  line-height: 1.5;
  white-space: nowrap;
  border-left: 1px solid rgba(255, 255, 255, 0.3);
  padding-left: 10px;
  margin-top: -10px;
  padding-top: 10px;
  margin-bottom: -10px;
  padding-bottom: 10px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
#ulKI li .kisyu-card .kisyu-info br {
  display: none;
}
#ulKI li .kisyu-card .kisyu-dai {
  font-size: 15px;
  color: #fff;
  font-weight: bold;
  border-top: 1px solid rgba(255, 255, 255, 0.5);
  padding-top: 4px;
  margin-top: 4px;
  margin-left: -10px;
  padding-left: 10px;
  margin-right: -12px;
  padding-right: 12px;
}
#ulKI li .kisyu-card .kisyu-pv {
  grid-column: 2;
  grid-row: 2;
}
#ulKI li:nth-child(even) .kisyu-card {
  background: #2b2b2b !important;
}
#ulKI li .kisyu-card:active {
  transform: none;
  -webkit-transform: none;
  background: #444444 !important;
}
#ulKI li .kisyu-card.kisyu-new {
  border-color: var(--accent);
}
#ulKI li .kisyu-card.kisyu-new .kisyu-badge {
  background: var(--accent);
  color: #000;
}
#ulKI li .kisyu-card.kisyu-zodai {
  border-color: var(--accent-link);
}
#ulKI li .kisyu-card.kisyu-zodai .kisyu-badge {
  background: var(--accent-link);
  color: #000;
}
.kisyu-badge {
  display: none;
  font-size: 16px;
  font-weight: 900;
  padding: 3px 7px;
  border-radius: 4px;
  line-height: 1.4;
  text-align: center;
  text-shadow: none !important;
}
.kisyu-new .kisyu-badge,
.kisyu-zodai .kisyu-badge {
  display: flex;
  align-items: center;
  justify-content: center;
}
/* DiVa PVゲージ（2行目・機種名と同幅） */
.kisyu-pv {
  display: flex;
  align-items: center;
  gap: 2px;
  width: 100%;
  padding-top: 2px;
}
.kisyu-pv-bar {
  flex: 1;
  height: 16px;
  background: rgba(255, 255, 255, 0.15);
  border-radius: 2px;
}
.kisyu-pv-bar.active {
  background: #ff3333;
}
.kisyu-pv-label {
  font-size: 9px;
  color: #fff;
  margin-right: 4px;
}
/* 台番号セル（jsRenderテンプレートで直接出力 — 画像ボタン置き換え） */
.dai-cell {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  padding: 6px 8px;
  background: #333333;
  border-radius: 6px;
  text-decoration: none;
  color: #ffffff;
  min-height: 2.8em;
  line-height: 1.2;
}
.dai-cell .dai-no {
  font-size: 100%;
  font-weight: bold;
}
.dai-cell .dai-name {
  font-size: 65%;
  color: #fff;
  margin-top: 0.1em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
/* データテーブル共通 */
.nc-grid {
  background: var(--data-bg) !important;
  border-color: #444 !important;
}
.nc-grid td {
  border-color: #444 !important;
  color: var(--data-color) !important;
}
.nc-grid td.nc-grid-color-fix {
  color: #fff !important;
  background: #1a1a1a !important;
}
.nc-grid-container {
  overflow: hidden !important;
}
.nc-grid.with-scroll {
  border-collapse: separate !important;
  border-spacing: 0 !important;
}
.nc-grid.with-scroll td {
  border: none !important;
  border-bottom: 1px solid #000 !important;
  border-right: 1px solid #000 !important;
}
.nc-grid.with-scroll td:first-child {
  border-left: 1px solid #000 !important;
}
.nc-grid.with-scroll thead td {
  border-top: 1px solid #000 !important;
}
.nc-grid thead td.nmk_kisyu {
  min-width: 10.4em !important;
}
.nc-grid.with-scroll td.sticky {
  background-image: none !important;
  z-index: 1 !important;
  border-right: none !important;
}
.nc-grid thead td.sticky {
  background: #1a1a1a !important;
}
.nc-grid tbody tr td.sticky,
.nc-grid tbody tr td.sticky a,
.nc-grid tbody tr td.YMD_biz,
.nc-grid tbody tr td.YMD_biz a {
  background: #333 !important;
  color: var(--accent-link, #4fc3f7) !important;
}
.nc-grid tbody tr:nth-child(even) td.sticky,
.nc-grid tbody tr:nth-child(even) td.sticky a,
.nc-grid tbody tr:nth-child(even) td.YMD_biz,
.nc-grid tbody tr:nth-child(even) td.YMD_biz a {
  background: #2b2b2b !important;
}
.nc-grid td.sticky::after {
  border-right-color: var(--accent) !important;
}
.nc-grid thead,
.nc-grid thead tr,
.nc-grid thead td {
  background: #1a1a1a !important;
  background-image: none !important;
  color: var(--accent) !important;
  font-weight: bold;
  text-shadow: none !important;
}
.nc-grid .nc-background-image-00,
.nc-grid .nc-background-image-01 {
  border-radius: 0 !important;
}
.nc-grid tbody tr {
  background: var(--data-bg) !important;
}
.nc-grid tbody tr:nth-child(even) {
  background: var(--data-bg-alt) !important;
}
.nc-grid {
  border: 2px solid #666 !important;
}
table.nc-grid.nc-listview {
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 10px;
  overflow: hidden;
}
.nc-grid tbody tr td {
  border-bottom: 1px solid #555 !important;
}
.nc-grid tbody td a {
  color: var(--accent-link) !important;
}
/* grid-ex (nc-v05-003等) 固有 */
.grid-ex .nc-grid-color-fix .inner,
.grid-ex .nc-background-image-00 {
  background: #1a1a1a !important;
  background-image: none !important;
  color: var(--accent) !important;
  font-weight: bold;
  text-shadow: none !important;
}
.grid-ex .outer {
  border-color: #444 !important;
}
.grid-ex .border-bottom {
  border-bottom-color: #444 !important;
}
.grid-ex .inner {
  color: var(--data-color);
}
.grid-ex .scroll {
  background: var(--data-bg);
}
/* 新台表示（背景画像バナーを除去、バッジ+機種名2行対応） */
.nc-shindai {
  background-image: none !important;
  background: transparent !important;
  height: auto !important;
  padding: 0 !important;
  display: flex;
  align-items: center;
  gap: 16px;
  color: #fff;
  font-size: 18px;
  line-height: 1.4;
  word-break: break-word;
  overflow-wrap: break-word;
  white-space: normal;
}
.nc-shindai::before {
  content: "新台";
  flex-shrink: 0;
  background: var(--accent);
  color: #000;
  font-size: 18px;
  font-weight: 700;
  padding: 1px 4px;
  border-radius: 3px;
  line-height: 1.4;
  margin-right: 8px;
}
.nc-zodai {
  background-image: none !important;
  background: transparent !important;
  height: auto !important;
  padding: 0 !important;
  display: flex;
  align-items: center;
  gap: 16px;
  color: #fff;
  font-size: 18px;
  line-height: 1.4;
  word-break: break-word;
  overflow-wrap: break-word;
  white-space: normal;
}
.nc-zodai::before {
  content: "増台";
  flex-shrink: 0;
  background: var(--accent-link);
  color: #1a1a1a;
  font-size: 18px;
  font-weight: 700;
  padding: 1px 4px;
  border-radius: 3px;
  line-height: 1.4;
  margin-right: 8px;
}
/* btn-dai の画像背景を除去＋左寄せ＋リンク風表示 */
#ulDA .btn-dai,
.grid-ex .btn-dai {
  background-image: none !important;
  background: #333333 !important;
  border-radius: 6px;
  color: var(--accent-link) !important;
  text-align: left !important;
  padding-left: 12px !important;
  font-weight: bold;
  border-left: 3px solid var(--accent-link) !important;
}
#ulDA .btn-dai::after,
.grid-ex .btn-dai::after {
  content: " \25B6";
  font-size: 70%;
  opacity: 0.6;
  color: var(--accent-link);
}
#tblDAb {
  text-align: right !important;
}
/* DATAδ 台番号リンク風表示 */
.grid-row-container > a.cell-upper {
  border-left: 3px solid var(--accent-link);
}
.grid-row-container .line {
  border-left: none !important;
}
.grid-row-container > a.cell-upper .line {
  color: var(--accent-link) !important;
  font-weight: bold;
}
.grid-row-container > a.cell-upper .line::after {
  content: " \25B6";
  font-size: 70%;
  opacity: 0.6;
}
/* 詳細グラフ 台番号リンク風表示 */
.nc-amchart-ki-ul .li .line {
  color: var(--accent-link) !important;
  font-weight: bold;
}
.nc-amchart-ki-ul .li .line::after {
  content: " \25B6";
  font-size: 70%;
  opacity: 0.6;
}
/* DATA/詳細グラフ切替 */
.nc-dai-view-list {
  background-color: rgba(0, 0, 0, 0.3) !important;
}
.nc-view-data,
.nc-view-chart {
  background: #333 !important;
  border-color: #555 !important;
  color: #fff !important;
}
.nc-view-data.selected,
.nc-view-chart.selected {
  background: var(--accent) !important;
  color: #000 !important;
  font-weight: bold;
}

/* お気に入りボタン */
#ulKIm {
  background: #333333 !important;
  border: 2px solid var(--accent) !important;
  border-radius: 10px;
  margin-top: 8px;
}

/* ボタン */
.nc-btn {
  background: #555555 !important;
  border: 2px solid var(--accent) !important;
  border-radius: 8px;
  color: #ffffff !important;
  font-weight: bold;
  transition: all 0.15s;
  box-sizing: border-box;
  max-width: 100%;
}
.nc-btn:active {
  transform: translateY(2px);
}

/* === 台別データ (nc-v06) 用クラス === */
/* 台番号エリア（固定高さだと機種名に埋まるので解除） */
#divDAI {
  height: auto !important;
}
#divDAI .nc-btn-horizontal {
  bottom: auto !important;
  top: 0.7em;
}
#icon-dai,
#icon-top {
  z-index: 900 !important;
}
/* セクションヘッダー（グラフ・出玉情報タイトルバー） */
.nc-section-header {
  background: #1a1a1a !important;
  background-image: none !important;
  color: var(--accent) !important;
  text-shadow: none !important;
  font-weight: bold;
}
/* データラベル（テーブル行ヘッダー、列ヘッダー） */
.nc-data-label {
  background: #333333 !important;
  background-image: none !important;
  border: 1px solid #444444 !important;
  color: #fff !important;
  text-shadow: none !important;
}
/* 台ナビゲーションボタン（前台・次台・機種データ） */
.dai-nav-btn {
  background-image: none !important;
  border-radius: 6px;
  padding: 4px 10px;
  font-weight: bold;
  cursor: pointer;
}
.dai-nav-prev {
  background: var(--accent) !important;
  color: #000 !important;
}
.dai-nav-next {
  background: var(--accent) !important;
  color: #000 !important;
}
.dai-nav-link {
  background: rgba(255, 255, 255, 0.1) !important;
}
.dai-nav-link a {
  color: var(--accent) !important;
  text-decoration: none;
}

/* ===== グラフ台番号をタップ可能に見せる ===== */
.nc-amchart-ki-legend {
  background: rgba(0, 0, 0, 0.7) !important;
  color: var(--accent-link) !important;
  padding: 2px 8px !important;
  border-radius: 4px;
  font-weight: bold;
  border: 1px solid color-mix(in srgb, var(--accent-link) 50%, transparent);
  cursor: pointer;
}
.nc-amchart-ki-legend::after {
  content: " \25B6";
  font-size: 70%;
  opacity: 0.7;
}

/* ===== PC表示対応（600px以上で480px幅に中央寄せ。タッチデバイスは除外） ===== */
@media (min-width: 600px) and (pointer: fine) {
  body.nc-page {
    max-width: 480px;
    margin: 0 auto;
    box-shadow: 0 0 0 1px #444, -9999px 0 0 9999px #111, 9999px 0 0 9999px #111;
    border-left: 1px solid #444;
    border-right: 1px solid #444;
    min-height: 100vh;
  }
  .logo-banner {
    width: 480px;
    max-width: 100vw;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%);
  }
  .drawer,
  .search-drawer {
    max-width: 480px;
    left: 50%;
    transform: translateX(-50%) translateY(100%);
    box-sizing: border-box;
  }
  .drawer.open,
  .search-drawer.open {
    transform: translateX(-50%) translateY(0);
  }
  .fab-container {
    right: calc(50% - 240px + 8px) !important;
  }
  #drawerOverlay {
    background: rgba(0, 0, 0, 0.7);
  }
  /* 詳細グラフを2列に制限（amchartKIV2のgridが15emで3列になる対策） */
  .nc-amchart-ki-ul {
    grid-template-columns: repeat(auto-fill, 48%) !important;
  }
  /* 「このページの先頭へ」ボタン（icon-top.js が width:50% で生成） */
  #icon-top {
    max-width: 200px !important;
    left: calc(50% - 240px + 8px) !important;
    right: auto !important;
  }
  /* 台別 左右ナビを480px内に収める */
  #icon-dai {
    max-width: 480px !important;
    left: 50% !important;
    transform: translateX(-50%);
  }
  /* スクロール時の固定ヘッダー（台番号・日付選択バー） */
  .fixed-menu.fixed {
    max-width: 480px !important;
    left: 50% !important;
    transform: translateX(-50%);
  }
}
/* 店舗CSSの750px固定幅がbodyの480pxからはみ出す対策 */
@media screen and (min-width: 960px) {
  .nc-content .nc-listview-inset {
    width: 90% !important;
    box-sizing: border-box !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  .nc-content .nc-listview-inset li {
    width: 100% !important;
    box-sizing: border-box !important;
  }
  .nc-mT-1p0 {
    width: 100% !important;
  }
}

/* ===== 営業時間 ===== */
.top-hours {
  margin: 12px 16px;
  padding: 14px 16px 14px 20px;
  background: linear-gradient(135deg, #2b2b2b 0%, #232323 100%);
  border-radius: 10px;
  border: 1px solid #444;
  border-left: 3px solid var(--accent, #d4af37);
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
.top-hours-icon {
  font-size: 22px;
  line-height: 1;
  flex-shrink: 0;
  margin-top: 1px;
}
.top-hours-inner {
  flex: 1;
  min-width: 0;
}
.top-hours-title {
  font-size: 12px;
  font-weight: bold;
  color: var(--accent, #d4af37);
  letter-spacing: 0.08em;
  margin-bottom: 0;
  text-align: left;
}
.top-hours-title::after {
  content: '';
  display: block;
  border-top: 1px solid #444;
  margin-top: 8px;
  margin-left: -34px;
}
.top-hours-center .top-hours-title::after {
  margin-left: 0;
}
.top-hours-body {
  font-size: 15px;
  line-height: 1.7;
  color: #eee;
  text-align: left;
}
.top-hours-center .top-hours-body {
  text-align: inherit;
}
.top-hours-center {
  flex-direction: column;
  align-items: stretch;
  text-align: center;
  border-left: 1px solid #444;
  gap: 6px;
}
.top-hours-center .top-hours-icon {
  display: none;
}
.top-hours-center .top-hours-title::before {
  content: '\1F554\00a0';
  font-size: 18px;
}
.top-hours-center .top-hours-title {
  width: 100%;
  text-align: inherit;
}

/* ===== 日付順序反転 (古い→新しい) ===== */

/* grid-ex scroll columns (nc-v05-104, nc-v06-106) */
.grid-ex .scroll > table {
  direction: rtl;
}
.grid-ex .scroll > table td {
  direction: ltr;
}

/* YMD date selector (nc-v05-112, nc-v06-115) */
#YMD-ul,
.YMD-ul {
  direction: rtl;
}
#YMD-ul > *,
.YMD-ul > * {
  direction: ltr;
}

/* nc-v05-112 grid-horizontal data columns */
.grid-horizontal > table {
  direction: rtl;
}
.grid-horizontal > table td {
  direction: ltr;
}
/* padding override: move end-space from last-child to first-child (RTL reversal) */
.grid-horizontal td:last-child {
  padding-right: 0 !important;
}
.grid-horizontal td:first-child {
  padding-right: 2em;
}

/* 旧表示（新しい→古い）に戻すオーバーライド */
.date-order-desc .nc-rank header nav ul,
.date-order-desc .grid-ex .scroll > table,
.date-order-desc #YMD-ul,
.date-order-desc .YMD-ul,
.date-order-desc .grid-horizontal > table {
  direction: ltr;
}
.date-order-desc .grid-horizontal td:last-child {
  padding-right: 2em !important;
}
.date-order-desc .grid-horizontal td:first-child {
  padding-right: 0;
}

