.hazu-hd-machine-list{
  display:grid;
  gap:12px;
}
.hazu-hd-machine-list.hazu-cols-1{grid-template-columns:repeat(1,1fr);}
.hazu-hd-machine-list.hazu-cols-2{grid-template-columns:repeat(2,1fr);}
.hazu-hd-machine-list.hazu-cols-3{grid-template-columns:repeat(3,1fr);}
.hazu-hd-machine-list.hazu-cols-4{grid-template-columns:repeat(4,1fr);}
.hazu-hd-machine-list.hazu-cols-5{grid-template-columns:repeat(5,1fr);}
.hazu-hd-machine-list.hazu-cols-6{grid-template-columns:repeat(6,1fr);}
.hazu-hd-machine-list.hazu-cols-7{grid-template-columns:repeat(7,1fr);}
.hazu-hd-machine-list.hazu-cols-8{grid-template-columns:repeat(8,1fr);}

@media (max-width: 767px){
  .hazu-hd-machine-list.hazu-cols-sp-1{grid-template-columns:repeat(1,1fr);}
  .hazu-hd-machine-list.hazu-cols-sp-2{grid-template-columns:repeat(2,1fr);}
  .hazu-hd-machine-list.hazu-cols-sp-3{grid-template-columns:repeat(3,1fr);}
  .hazu-hd-machine-list.hazu-cols-sp-4{grid-template-columns:repeat(4,1fr);}
  .hazu-hd-machine-list.hazu-cols-sp-5{grid-template-columns:repeat(5,1fr);}
  .hazu-hd-machine-list.hazu-cols-sp-6{grid-template-columns:repeat(6,1fr);}
}

.hazu-hd-machine-item{margin:0;}
.hazu-hd-machine-link{
  display:block;
  text-decoration:none;
}
.hazu-hd-machine-thumb{
  width:100%;
  height:auto;
  display:block;
  border-radius:6px;
}
.hazu-hd-thumb-placeholder{
  background:#f2f2f2;
  aspect-ratio: 4 / 3;
  border-radius:6px;
}
/* 筐体画像モード：グリッドは全カード同じ高さに統一（縦横比の異なる筐体画像／NEW MACHINEプレースホルダでも揃える）。
   画像は切り取らず全体を表示（object-fit:contain）。列数を増やしても崩れない。
   ※「画像高さ（グリッド）」を明示設定した場合はそちら（Elementor生成のid付きルール）が優先される。 */
.hazu-hd-machine-list.hazu-img-cabinet:not(.hazu-layout-list) .hazu-hd-machine-thumb-wrap{
  aspect-ratio: 3 / 4;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.hazu-hd-machine-list.hazu-img-cabinet:not(.hazu-layout-list) .hazu-hd-machine-thumb{
  width:100%;
  height:100%;
  object-fit:contain;
}
.hazu-hd-machine-title{
  margin-top:8px;
  font-size:14px;
  line-height:1.3;
  color:inherit;
}
/* グリッドの機種名：1行に収まる短い名前は中央寄せ、折り返して2行以上になる名前は左寄せ。
   width:fit-content で箱を文字幅にフィットさせ margin:auto で中央化。折り返し時は箱が実質
   カード幅いっぱいに広がるため、各行は左寄せのまま（中央化されない）。リスト表示は対象外。 */
.hazu-hd-machine-list:not(.hazu-layout-list) .hazu-hd-machine-title{
  width:fit-content;
  max-width:100%;
  margin-left:auto;
  margin-right:auto;
  text-align:left;
}
.hazu-hd-machine-empty{
  grid-column:1 / -1;
  padding:12px;
  background:#fff;
  border:1px solid #e5e5e5;
  border-radius:6px;
}
/* List layout (Elementor widget) */
.hazu-hd-machine-list.hazu-layout-list {
  display: flex;
  flex-direction: column;
  gap: var(--hazu-hd-machine-list-gap, 12px);
}

.hazu-hd-machine-list.hazu-layout-list .hazu-hd-machine-item {
  margin: 0;
}

.hazu-hd-machine-list.hazu-layout-list .hazu-hd-machine-link {
  display: flex;
  gap: var(--hazu-hd-machine-list-item-gap, 12px);
  align-items: stretch;
  text-decoration: none;
}

.hazu-hd-machine-list.hazu-layout-list.hazu-thumb-right .hazu-hd-machine-link {
  flex-direction: row-reverse;
}

.hazu-hd-machine-list.hazu-layout-list .hazu-hd-machine-thumb-wrap {
  width: 160px;
  flex: 0 0 160px;
}

.hazu-hd-machine-list.hazu-layout-list .hazu-hd-machine-thumb {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 8px;
}

.hazu-hd-machine-list.hazu-layout-list .hazu-hd-machine-body {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.hazu-hd-machine-list.hazu-layout-list .hazu-hd-machine-title {
  font-weight: 700;
  line-height: 1.35;
}

.hazu-hd-machine-list.hazu-layout-list .hazu-hd-machine-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  font-size: 12px;
  line-height: 1.3;
  opacity: 0.85;
}

.hazu-hd-machine-list.hazu-layout-list .hazu-hd-machine-meta > span {
  padding: 2px 6px;
  border: 1px solid rgba(0,0,0,0.12);
  border-radius: 999px;
}

@media (max-width: 767px) {
  .hazu-hd-machine-list.hazu-layout-list .hazu-hd-machine-thumb-wrap {
    width: 120px;
    flex: 0 0 120px;
  }
}


/* Elementor widget: grid horizontal card (image left, text right) */
.hazu-hd-machine-list.hazu-layout-grid.hazu-grid-card-horizontal .hazu-hd-machine-item{
  display:flex;
  align-items:flex-start;
  gap:10px;
  text-decoration:none;
}

.hazu-hd-machine-list.hazu-layout-grid.hazu-grid-card-horizontal .hazu-hd-machine-thumb-wrap{
  flex:0 0 auto;
}

.hazu-hd-machine-list.hazu-layout-grid.hazu-grid-card-horizontal .hazu-hd-machine-body{
  flex:1 1 auto;
  min-width:0;
}

.hazu-hd-machine-list.hazu-layout-grid .hazu-hd-machine-body{
  margin-top:8px;
}

.hazu-hd-machine-list.hazu-layout-grid.hazu-grid-card-horizontal .hazu-hd-machine-body{
  margin-top:0;
}

.hazu-hd-machine-list.hazu-layout-grid .hazu-hd-machine-meta{
  margin-top:6px;
  font-size:12px;
  line-height:1.4;
  opacity:0.85;
}



.hazu-hd-schedule-list{
  display:flex;
  flex-direction:column;
  gap:24px;
}

.hazu-hd-schedule-anchor{
  display:block;
  height:0;
  margin:0;
  padding:0;
}

.hazu-hd-schedule-date{
  display:flex;
  flex-direction:column;
  gap:12px;
}

.hazu-hd-schedule-date-title{
  margin:0;
  padding:10px 14px;
  border-radius:6px;
  background:#111;
  color:#fff;
  line-height:1.25;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}

.hazu-hd-schedule-date-title-text{
  font-weight:700;
}

.hazu-hd-schedule-date-title-count{
  margin-left:auto;
  font-size:14px;
  line-height:1.4;
  font-weight:500;
  color:rgba(255,255,255,0.92);
}

.hazu-hd-schedule-kind{
  display:flex;
  flex-direction:column;
  gap:10px;
}

.hazu-hd-schedule-kind-title{
  margin:0;
  padding:8px 14px;
  border-radius:999px;
  color:#fff;
  line-height:1.25;
}

.hazu-hd-schedule-kind.hazu-kind-pachislot .hazu-hd-schedule-kind-title{
  background:linear-gradient(180deg, #2563eb 0%, #1d4ed8 100%);
}

.hazu-hd-schedule-kind.hazu-kind-pachinko .hazu-hd-schedule-kind-title{
  background:linear-gradient(180deg, #ef4444 0%, #dc2626 100%);
}

.hazu-hd-schedule-kind .hazu-hd-machine-list{
  margin:0;
}

.hazu-hd-schedule-loader{
  display:flex;
  flex-direction:column;
  gap:20px;
}

.hazu-hd-schedule-months{
  display:flex;
  flex-direction:column;
  gap:32px;
}

.hazu-hd-schedule-month{
  display:flex;
  flex-direction:column;
  gap:16px;
}

.hazu-hd-schedule-more{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:24px;
}

.hazu-hd-schedule-loading{
  font-size:12px;
  line-height:1.4;
  opacity:0.8;
}

.hazu-hd-schedule-end{
  display:none;
}

.hazu-hd-schedule-more-sentinel{
  width:100%;
  height:1px;
}

@media (max-width: 767px){
  .hazu-hd-schedule-date-title-count{
    width:100%;
    margin-left:0;
    font-size:12px;
  }
}
