/*
Theme Name: V5-kandora-clean
Description: 韓ドラスタート!! V5 β版。AdSense収益最適化のため、命名統一（kst_[module]_*）、スニペット11個のテーマ統合（drama_* / nmg_* / kss_* / kandora_clean_* 等を全て kst_* に）、AdSense手動挿入機能削除（Site Kit一元化）を完了。V4.1 からフォーク。HTMLセマンティック化（Phase 3L）は今後の作業。
Version: 5.0.0-beta
Text Domain: v5-kandora-clean
Author: 韓ドラスタート!!
*/
/* =========================================
   アクセシビリティ: Skip-link
   - Tab キーでフォーカスされた時だけ画面に表示される
   - クリック/Enter で #kst-main にジャンプ
   - 2026-04-24 解決済み: 本ファイル先頭の Description フィールド内に
     アスタリスクとスラッシュが隣接する文字列があると、CSS パーサーが
     コメント終端と誤解し、構文エラーで本ルールが破棄される現象が
     発生していた。Description のスラッシュを前後スペース付きに分離して解決。
     今後 Description を編集する際はアスタリスクの直後にスラッシュを
     置かないこと（このコメント自体も同じ理由で抽象的に書いている）。
========================================= */

.kst-skip-link {
	position: absolute;
	top: -48px;
	left: 8px;
	z-index: 10000;
	padding: 10px 18px;
	background: #111;
	color: #fff;
	text-decoration: none;
	font-size: 14px;
	font-weight: 700;
	border-radius: 0 0 6px 6px;
	line-height: 1.4;
	transition: top 0.15s ease-out;
}

.kst-skip-link:focus,
.kst-skip-link:focus-visible {
	top: 0;
	outline: 2px solid #fff;
	outline-offset: -4px;
	color: #fff;
	background: #111;
}

/* main タグにフォーカス移動した時のアウトラインを抑制（意図的なフォーカス） */
#kst-main:focus {
	outline: none;
}

/* =========================================
   レイアウト整理版
========================================= */

.kst-page-layout,
.kst-single-layout,
.kst-archive-layout {
  width: 100%;
  max-width: 1140px;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

.kst-page-layout,
.kst-single-layout {
  max-width: 1140px;
  padding: 10px 16px 32px;
}

.kst-page-layout__grid,
.kst-single-layout__grid {
  gap: 22px;
}

.kst-misc-layout {
  gap: 32px;
  padding-top: 20px;
  padding-bottom: 34px;
}

.site-sidebar {
  width: auto;
  -webkit-flex: 0 1 29%;
  flex: 0 1 29%;
  min-width: 270px;
  max-width: none;
}

.kst-header__inner {
  max-width: 1140px;
  padding-left: 16px;
  padding-right: 16px;
}

.site-sidebar .widget_calendar,
.site-sidebar .calendar_wrap,
.site-sidebar .wp-block-calendar {
  overflow: hidden;
}

.site-sidebar .widget_calendar .calendar_wrap,
.site-sidebar .wp-block-calendar {
  overflow-x: auto;
}

.site-sidebar #wp-calendar,
.site-sidebar .wp-block-calendar table {
  width: 100%;
  margin: 0;
  border-collapse: collapse;
  table-layout: fixed;
  background: #ffffff;
}

.site-sidebar #wp-calendar caption,
.site-sidebar .wp-block-calendar caption {
  margin: 0 0 10px;
  text-align: center;
  font-size: 14px;
  line-height: 1.5;
  font-weight: 700;
  color: #51474c;
}

.site-sidebar #wp-calendar th,
.site-sidebar #wp-calendar td,
.site-sidebar .wp-block-calendar th,
.site-sidebar .wp-block-calendar td {
  width: 14.285%;
  padding: 8px 4px;
  border: 1px solid #f0ecee;
  text-align: center;
  vertical-align: middle;
  font-size: 13px;
  line-height: 1.4;
  box-sizing: border-box;
}

.site-sidebar #wp-calendar thead th,
.site-sidebar .wp-block-calendar thead th {
  background: #faf7f8;
  color: #6d6468;
  font-weight: 700;
}

.site-sidebar #wp-calendar tbody td,
.site-sidebar .wp-block-calendar tbody td {
  background: #ffffff;
}

.site-sidebar #wp-calendar tbody a,
.site-sidebar .wp-block-calendar tbody a {
  display: -webkit-inline-flex;
  display: inline-flex;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  min-width: 24px;
  min-height: 24px;
  padding: 0 4px;
  border-radius: 999px;
  background: #fff3f8;
  color: #c85b84;
  font-weight: 700;
  text-decoration: none;
}

.site-sidebar #wp-calendar tbody a:hover,
.site-sidebar .wp-block-calendar tbody a:hover {
  background: #f7dce7;
  color: #a84269;
}

.site-sidebar #wp-calendar #today {
  background: #fff8fb;
}

.site-sidebar #wp-calendar #today a {
  background: #e9a9c1;
  color: #ffffff;
}

.site-sidebar #wp-calendar tfoot td {
  border: 0;
  padding: 10px 2px 0;
  background: transparent;
  font-size: 13px;
}

.site-sidebar #wp-calendar #prev {
  text-align: left;
}

.site-sidebar #wp-calendar #next {
  text-align: right;
}

.site-sidebar .wp-calendar-nav {
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  -webkit-align-items: center;
  align-items: center;
  margin-top: 10px;
  font-size: 13px;
}

/* ★ flex gap → margin で代替（旧Safari対応） */
.site-sidebar .wp-calendar-nav > * {
  margin-right: 10px;
}
.site-sidebar .wp-calendar-nav > *:last-child {
  margin-right: 0;
}

.site-sidebar .wp-calendar-nav a {
  color: #c85b84;
  text-decoration: none;
}

.site-sidebar .wp-calendar-nav a:hover {
  color: #a84269;
}

.site-sidebar .widget_calendar {
  margin-bottom: 18px;
}

@media (min-width: 861px) {
  .kst-page-layout__grid,
  .kst-single-layout__grid,
  .kst-archive-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(270px, 29%) !important;
    gap: 22px;
    align-items: start;
  }

  .kst-page-layout__grid > :first-child,
  .kst-single-layout__grid > :first-child,
  .kst-archive-layout > :first-child,
  .kst-page-layout__main,
  .kst-single-layout__main,
  .kst-misc-layout__main,
  .kst-archive-main,
  main {
    min-width: 0;
  }

  .kst-page-layout__grid > :last-child,
  .kst-single-layout__grid > :last-child,
  .kst-archive-layout > :last-child,
  .kst-page-layout__grid aside,
  .kst-page-layout__grid .sidebar,
  .kst-page-layout__grid .widget-area,
  .kst-page-layout__grid .site-sidebar,
  .kst-single-layout__grid aside,
  .kst-single-layout__grid .sidebar,
  .kst-single-layout__grid .widget-area,
  .kst-single-layout__grid .site-sidebar,
  .kst-archive-layout aside,
  .kst-archive-layout .sidebar,
  .kst-archive-layout .widget-area,
  .kst-archive-layout .site-sidebar {
    width: auto;
    min-width: 0;
    max-width: none;
    box-sizing: border-box;
  }

  .kst-misc-layout {
    display: -webkit-flex !important;
    display: flex !important;
    -webkit-align-items: flex-start;
    align-items: flex-start;
    gap: 32px;
  }

  .kst-misc-layout > :first-child {
    min-width: 0;
    -webkit-flex: 1 1 auto;
    flex: 1 1 auto;
  }

  .kst-misc-layout > .site-sidebar,
  .kst-misc-layout > aside,
  .kst-misc-layout > .sidebar,
  .kst-misc-layout > .widget-area {
    width: auto;
    -webkit-flex: 0 1 29%;
    flex: 0 1 29%;
    min-width: 270px;
    max-width: none;
    margin-top: 0;
  }
}

@media (max-width: 1100px) {
  .kst-misc-layout {
    gap: 18px;
  }

  .site-sidebar {
    -webkit-flex: 0 1 30%;
    flex: 0 1 30%;
    min-width: 240px;
  }
}

@media (max-width: 860px) {

  .kst-page-layout__grid,
  .kst-single-layout__grid,
  .kst-archive-layout,
  .kst-misc-layout {
    display: block !important;
    grid-template-columns: 1fr !important;
  }

  /* ★ :is() を展開（旧Safari対応） */
  .kst-page-layout__grid > :last-child,
  .kst-single-layout__grid > :last-child,
  .kst-archive-layout > :last-child,
  .kst-page-layout__grid aside,
  .kst-page-layout__grid .sidebar,
  .kst-page-layout__grid .widget-area,
  .kst-page-layout__grid .site-sidebar,
  .kst-single-layout__grid aside,
  .kst-single-layout__grid .sidebar,
  .kst-single-layout__grid .widget-area,
  .kst-single-layout__grid .site-sidebar,
  .kst-archive-layout aside,
  .kst-archive-layout .sidebar,
  .kst-archive-layout .widget-area,
  .kst-archive-layout .site-sidebar,
  .kst-misc-layout > .site-sidebar,
  .kst-misc-layout > aside,
  .kst-misc-layout > .sidebar,
  .kst-misc-layout > .widget-area {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    -webkit-flex: 0 0 auto;
    flex: 0 0 auto;
    margin-top: 24px;
  }

  /* ★ :is() を展開（旧Safari対応） */
  .kst-page-layout,
  .kst-single-layout,
  .kst-archive-layout {
    padding-left: 0;
    padding-right: 0;
  }

  .kst-header__inner {
    padding-left: 14px;
    padding-right: 14px;
  }

  .kst-misc-layout {
    padding-top: 16px;
    padding-bottom: 28px;
  }
}

/* =========================================
   ヘッダーCSS
========================================= */

.kst-header {
  position: relative;
  z-index: 100;
  background: #111111;
  color: #ffffff;
  border-bottom: 1px solid rgba(255, 255, 255, 0.10);
  max-width: 1140px;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

.kst-header__inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 14px 16px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 18px;
  align-items: center;
  box-sizing: border-box;
}

.kst-header__brand {
  min-width: 0;
  order: 1;
  justify-self: start;
}

.kst-header__logo,
.kst-header__logo .custom-logo-link {
  display: -webkit-flex;
  display: flex;
  -webkit-align-items: center;
  align-items: center;
}

.kst-header__logo img,
.kst-header__logo .custom-logo {
  display: block;
  width: auto;
  max-width: 300px;
  max-height: 50px;
  height: auto;
  margin: 0;
}

.kst-header__nav {
  min-width: 0;
  order: 2;
  justify-self: end;
}

.kst-header__nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.kst-header__nav .kst-main-menu,
.kst-header__nav .menu > ul,
.kst-header__nav > div > ul {
  display: -webkit-flex !important;
  display: flex !important;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  -webkit-align-items: center;
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
}

/* ★ flex gap → margin で代替（旧Safari対応） */
.kst-header__nav .kst-main-menu > li,
.kst-header__nav .menu > ul > li,
.kst-header__nav > div > ul > li {
  position: relative;
  margin: 3px 6px;
  padding: 0;
  list-style: none;
}

.kst-header__nav .kst-main-menu > li > a,
.kst-header__nav .menu > ul > li > a,
.kst-header__nav > div > ul > li > a {
  display: block;
  padding: 10px 8px;
  color: #ffffff;
  text-decoration: none;
  font-size: 15px;
  line-height: 1.4;
  font-weight: 600;
  white-space: nowrap;
}

.kst-header__nav .kst-main-menu > li > a:hover,
.kst-header__nav .menu > ul > li > a:hover,
.kst-header__nav > div > ul > li > a:hover,
.kst-header__nav .current-menu-item > a,
.kst-header__nav .current_page_item > a,
.kst-header__nav .current-menu-ancestor > a {
  color: #ffb6cc;
}

.kst-header__nav .sub-menu,
.kst-header__nav .children {
  display: none !important;
}

.kst-header__tools {
  display: -webkit-flex;
  display: flex;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  justify-self: end;
  order: 3;
}

.kst-header__hamburger {
  width: 46px;
  height: 46px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: transparent;
  border-radius: 10px;
  cursor: pointer;
  display: -webkit-inline-flex !important;
  display: inline-flex !important;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-align-items: center;
  align-items: center;
}

/* ★ flex gap → margin で代替（旧Safari対応） */
.kst-header__hamburger span {
  display: block;
  width: 20px;
  height: 2px;
  background: #ffffff;
  border-radius: 10px;
  margin-bottom: 5px;
}

.kst-header__hamburger span:last-child {
  margin-bottom: 0;
}

/* ★ inset → top/right/bottom/left に展開（旧Safari対応） */
.kst-drawer-overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 9998;
  background: rgba(0, 0, 0, 0.45);
}

.kst-drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: auto;
  /* ★ min() → width + max-width に変更（旧Safari対応） */
  width: 380px;
  max-width: 90vw;
  z-index: 9999;
  -webkit-transform: translateX(100%);
  transform: translateX(100%);
  -webkit-transition: -webkit-transform 0.25s ease;
  transition: transform 0.25s ease;
  pointer-events: none;
}

.kst-drawer.is-open {
  -webkit-transform: translateX(0);
  transform: translateX(0);
  pointer-events: auto;
}

.kst-drawer__panel {
  height: 100%;
  background: #ffffff;
  color: #222222;
  box-shadow: -10px 0 30px rgba(0, 0, 0, 0.18);
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.kst-drawer__head {
  display: -webkit-flex;
  display: flex;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  padding: 16px 18px;
  border-bottom: 1px solid #e5e5e5;
}

/* ★ flex gap → margin で代替（旧Safari対応） */
.kst-drawer__head > * {
  margin-right: 12px;
}
.kst-drawer__head > *:last-child {
  margin-right: 0;
}

.kst-drawer__title {
  font-size: 18px;
  line-height: 1.4;
  font-weight: 700;
  color: #111111;
}

.kst-drawer__close {
  width: 40px;
  height: 40px;
  border: 1px solid #dddddd;
  background: #ffffff;
  border-radius: 10px;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  -webkit-flex-shrink: 0;
  flex-shrink: 0;
}

.kst-drawer__body {
  -webkit-flex: 1;
  flex: 1;
  overflow-y: auto;
  padding: 10px 0 24px;
}

.kst-drawer__nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.kst-drawer-menu > li,
.kst-drawer__nav .menu > li,
.kst-drawer__nav > div > ul > li {
  margin: 0;
  border-bottom: 1px solid #f0f0f0;
  list-style: none;
}

.kst-drawer-menu a,
.kst-drawer__nav .menu a,
.kst-drawer__nav > div > ul a {
  display: block;
  padding: 14px 18px;
  color: #222222;
  text-decoration: none;
  font-size: 15px;
  line-height: 1.6;
  font-weight: 600;
}

.kst-drawer-menu a:hover,
.kst-drawer__nav .menu a:hover,
.kst-drawer__nav > div > ul a:hover {
  background: #faf7f8;
  color: #d6578a;
}

.kst-drawer-menu .sub-menu a,
.kst-drawer__nav .menu .sub-menu a,
.kst-drawer__nav > div > ul .sub-menu a {
  padding-left: 32px;
  font-weight: 500;
  font-size: 14px;
}

body.kst-drawer-open {
  overflow: hidden;
}

.admin-bar .kst-drawer,
.admin-bar .kst-drawer-overlay {
  top: 32px;
  height: calc(100vh - 32px);
}

@media (max-width: 782px) {
  .admin-bar .kst-drawer,
  .admin-bar .kst-drawer-overlay {
    top: 46px;
    height: calc(100vh - 46px);
  }
}

@media (max-width: 960px) {
  .kst-header__inner {
    grid-template-columns: auto 1fr;
    gap: 12px;
    padding-left: 12px;
    padding-right: 12px;
    position: relative;
  }

  .kst-header__tools {
    order: 1;
    justify-self: start;
    position: relative;
    z-index: 2;
  }

  .kst-header__brand {
    position: absolute;
    left: 53%;
    top: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    text-align: center;
    min-width: 0;
    z-index: 1;
  }

  .kst-header__nav {
    display: none !important;
  }

  .kst-header__logo img,
  .kst-header__logo .custom-logo {
    max-width: 250px;
    max-height: 42px;
  }

  .kst-drawer {
    left: 0;
    right: auto;
    -webkit-transform: translateX(-100%);
    transform: translateX(-100%);
  }

  .kst-drawer.is-open {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }

  .kst-drawer__panel {
    box-shadow: 10px 0 30px rgba(0, 0, 0, 0.18);
  }
}




/* =========================================
   関連番組 / 関連記事
   drama-related-gridtime-v7 専用
   旧Safari（古いiPad）対応版
========================================= */

.drama-related-gridtime-v7{
  margin: 44px 0 0;
  padding: 22px;
  background: #fff;
  border: 1px solid #eee3ea;
  border-radius: 22px;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.04);
}

.drama-related-gridtime-v7__heading{
  margin: 0 0 18px;
  padding: 10px 16px;
  background: #f2f2f2;
  border: 1px solid #e0e0e0;
  border-radius: 10px;
  color: #333;
  font-size: 20px;
  line-height: 1.35;
  text-align: center;
}

.drama-related-gridtime-v7__list{
  display: -webkit-box !important;
  display: -webkit-flex !important;
  display: flex !important;
  -webkit-box-orient: vertical !important;
  -webkit-box-direction: normal !important;
  -webkit-flex-direction: column !important;
  flex-direction: column !important;
}

.drama-related-gridtime-v7__item{
  display: -webkit-box !important;
  display: -webkit-flex !important;
  display: flex !important;
  -webkit-box-align: center !important;
  -webkit-align-items: center !important;
  align-items: center !important;
  padding: 16px;
  background: #fff;
  border: 1px solid #f2ebef;
  border-radius: 18px;
  margin-bottom: 16px;
}

.drama-related-gridtime-v7__item:last-child{
  margin-bottom: 0;
}

.drama-related-gridtime-v7__thumb{
  -webkit-flex: 0 0 132px;
  flex: 0 0 132px;
  width: 132px;
  height: 132px;
  margin-right: 18px;
  overflow: hidden;
  border-radius: 16px;
  background: #f3f3f3;
  text-decoration: none;
}

.drama-related-gridtime-v7__thumb img{
  display: block !important;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.drama-related-gridtime-v7__noimage{
  display: -webkit-flex !important;
  display: flex !important;
  -webkit-align-items: center !important;
  align-items: center !important;
  -webkit-justify-content: center !important;
  justify-content: center !important;
  width: 100%;
  height: 100%;
  background: #f4f4f4;
  color: #888;
  font-size: 12px;
}

.drama-related-gridtime-v7__body{
  -webkit-flex: 1 1 0 !important;
  flex: 1 1 0 !important;
  min-width: 0;
}

.drama-related-gridtime-v7__title{
  margin: 0 0 10px;
  padding: 0 0 6px;
  border-bottom: 1px solid #f2d4e1;
  color: #333;
  font-size: 17px;
  line-height: 1.45;
  text-align: left;
  word-break: break-word;
  word-wrap: break-word;
  overflow-wrap: break-word;
}

.drama-related-gridtime-v7__title a{
  color: inherit;
  text-decoration: none;
}

.drama-related-gridtime-v7__title a:hover{
  color: #c85b84;
}

.drama-related-gridtime-v7__category{
  display: inline-block;
  margin: 0 0 8px;
  padding: 5px 11px;
  font-size: 13px;
  line-height: 1.2;
  color: #666;
  background: #f8f4f6;
  border: 1px solid #ece2e7;
  border-radius: 999px;
}

.drama-related-gridtime-v7__time{
  display: inline-block;
  font-size: 17px;
  line-height: 1.55;
  color: #222;
}

.drama-related-gridtime-v7__status{
  margin-top: 10px;
}

.drama-related-gridtime-v7__status-tag{
  display: inline-block;
  font-size: 12px;
  line-height: 1.2;
  color: #7a5b00;
  background: #fff7db;
  padding: 6px 11px;
  border-radius: 999px;
  border: 1px solid #f0dfa3;
}

@media (max-width: 767px){
  .drama-related-gridtime-v7{
    margin: 28px 0 0;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
  }

  .drama-related-gridtime-v7__heading{
    margin: 0 0 16px;
    padding: 8px 14px;
    background: #f2f2f2;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    font-size: 18px;
    text-align: center;
  }

  .drama-related-gridtime-v7__item{
    margin-bottom: 20px;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 0;
  }

  .drama-related-gridtime-v7__thumb{
    -webkit-flex: 0 0 100px;
    flex: 0 0 100px;
    width: 100px;
    height: 100px;
    margin-right: 14px;
    border-radius: 12px;
  }

  .drama-related-gridtime-v7__body,
  .drama-related-gridtime-v7__title,
  .drama-related-gridtime-v7__time{
    text-align: center;
  }

  .drama-related-gridtime-v7__title{
    margin: 0 0 8px;
    padding: 0 0 4px;
    font-size: 15px;
    line-height: 1.35;
  }

  .drama-related-gridtime-v7__category{
    margin: 0 0 8px;
    padding: 5px 10px;
    font-size: 13px;
  }

  .drama-related-gridtime-v7__time{
    font-size: 13px;
    line-height: 1.4;
  }

  .drama-related-gridtime-v7__status{
    display: none !important;
  }
}


.kst-rank-wrap{margin:18px 0;}
.kst-rank-title{margin:0 0 12px;font-size:16px;font-weight:700;line-height:1.5;text-align:center;}
.kst-rank-list{display:grid;gap:12px;}
.kst-rank-item{
  position:relative;
  display:grid;
  grid-template-columns:110px minmax(0,1fr);
  gap:12px;
  align-items:center;
  padding:12px;
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:10px;
  box-shadow:0 1px 4px rgba(0,0,0,.04);
  min-height:110px;
}
.kst-rank-thumb{display:block;width:110px;height:110px;border-radius:8px;overflow:hidden;background:#f3f4f6;}
.kst-rank-thumb img{display:block;width:110px;height:110px;object-fit:cover;}
.kst-rank-thumb-placeholder{width:110px;height:110px;background:#eef2f7;}
.kst-rank-body{
  min-width:0;
  min-height:110px;
  display:-webkit-flex;
  display:flex;
  -webkit-flex-direction:column;
  flex-direction:column;
  -webkit-justify-content:center;
  justify-content:center;
  overflow:visible;
  padding-top:0;
}
.kst-rank-post-title{
  margin:0 0 6px;font-size:16px;font-weight:700;line-height:1.45;
  overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;word-break:break-word;
}
.kst-rank-post-title a{color:#111827;text-decoration:none;}
.kst-rank-post-title a:hover{text-decoration:underline;}
.kst-rank-category{margin:0 0 3px;font-size:16px;line-height:1.4;color:#4b5563;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.kst-rank-category a{color:#4b5563;text-decoration:none;}
.kst-rank-category a:hover{text-decoration:underline;}
.kst-rank-time{margin:0;font-size:16px;line-height:1.45;color:#6b7280;overflow:hidden;}
.kst-rank-time *{color:inherit;font-size:inherit;line-height:inherit;}
.kst-rank-badge{
  position:absolute;top:7px;left:7px;z-index:2;
  display:-webkit-inline-flex;display:inline-flex;
  -webkit-align-items:center;align-items:center;
  -webkit-justify-content:center;justify-content:center;
  min-width:32px;height:20px;padding:0 6px;border-radius:999px;
  font-size:10px;font-weight:700;line-height:1;box-shadow:0 2px 6px rgba(0,0,0,.10);
}
.kst-rank-badge.rank-1{background:#d4af37;color:#fff;}
.kst-rank-badge.rank-2{background:#9ca3af;color:#fff;}
.kst-rank-badge.rank-3{background:#b87333;color:#fff;}
.kst-rank-badge.rank-other{background:#111827;color:#fff;}
.kst-rank-empty{margin:0;padding:12px;text-align:center;background:#fff;border:1px solid #e5e7eb;border-radius:10px;color:#6b7280;font-size:12px;line-height:1.5;}

.kst-builder-wrap{margin:18px 0;padding:16px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 4px rgba(0,0,0,.04);}
.kst-builder-title{margin:0 0 14px;font-size:18px;line-height:1.5;}
.kst-builder-grid{display:grid;gap:12px;}
.kst-builder-field label{display:block;margin:0 0 6px;font-size:13px;font-weight:700;line-height:1.4;}
.kst-builder-input{display:block;width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;line-height:1.4;background:#fff;}
.kst-builder-actions{
  display:-webkit-flex;display:flex;
  -webkit-flex-wrap:wrap;flex-wrap:wrap;
  margin:14px 0;
}
/* ★ flex gap → margin で代替（旧Safari対応） */
.kst-builder-actions > * {
  margin-right:8px;
  margin-bottom:8px;
}
.kst-builder-actions > *:last-child {
  margin-right:0;
}
.kst-builder-btn{-webkit-appearance:none;appearance:none;border:1px solid #d1d5db;background:#fff;color:#111827;border-radius:8px;padding:10px 12px;font-size:13px;line-height:1.2;cursor:pointer;}
.kst-builder-btn.primary{background:#111827;border-color:#111827;color:#fff;}
.kst-builder-output-wrap label{display:block;margin:0 0 6px;font-size:13px;font-weight:700;line-height:1.4;}
.kst-builder-output{display:block;width:100%;box-sizing:border-box;padding:12px;border:1px solid #d1d5db;border-radius:8px;font-size:13px;line-height:1.5;background:#f9fafb;}
.kst-builder-samples{display:grid;gap:10px;margin-top:14px;}
.kst-builder-sample-box{padding:10px 12px;border:1px solid #e5e7eb;border-radius:8px;background:#fafafa;}
.kst-builder-sample-label{margin:0 0 6px;font-size:12px;font-weight:700;color:#6b7280;}
.kst-builder-sample-box code{display:block;white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.5;}

@media (max-width:480px){
  .kst-rank-item{grid-template-columns:96px minmax(0,1fr);gap:10px;padding:10px;}
  .kst-rank-thumb,.kst-rank-thumb img,.kst-rank-thumb-placeholder{width:96px;height:96px;}
  .kst-rank-body{min-height:96px;}
  .kst-rank-post-title{font-size:15px;margin:0 0 6px;line-height:1.45;}
  .kst-rank-category{font-size:13px;}
  .kst-rank-time{font-size:14px;}
}

/* =========================================
   アーカイブレイアウト
========================================= */

.kst-archive-layout {
  padding-top: 8px;
  padding-left: 16px;
  padding-right: 16px;
  padding-bottom: 40px;
}

@media (max-width: 860px) {
  .kst-archive-layout {padding-top:8px;padding-bottom:32px;}
}

@media (max-width: 767px) {
  .kst-archive-layout {padding-top:6px;padding-left:2px;padding-right:2px;padding-bottom:32px;}
}

.kst-archive-head{margin:0 0 8px;}
.kst-archive-title{margin:0 0 8px;font-size:28px;line-height:1.35;font-weight:700;}

@media (max-width:860px){.kst-archive-title{font-size:24px;}}
@media (max-width:767px){.kst-archive-title{font-size:22px;}}

.kst-archive-desc{margin:0;color:#555;font-size:14px;line-height:1.9;}
.kst-archive-desc p{margin:0 0 10px;}
.kst-archive-desc p:last-child{margin-bottom:0;}

@media (max-width:767px){.kst-archive-desc{font-size:13px;line-height:1.8;}}

.kst-archive-main{min-width:0;}

.kst-archive-head,
body.archive .kst-archive-head,
body.category .kst-archive-head,
body.tag .kst-archive-head,
body.date .kst-archive-head,
body.search .kst-archive-head {
  padding:0px 2px 0;margin-top:0;margin-bottom:10px;text-align:left;
}

.kst-archive-title,
body.archive .kst-archive-title,
body.category .kst-archive-title,
body.tag .kst-archive-title,
body.date .kst-archive-title,
body.search .kst-archive-title {
  margin:0;padding:0 0 10px;text-align:left;
  font-size:14px;line-height:1.35;font-weight:700;
  letter-spacing:.02em;color:#666;border-bottom:2px solid #f0d6df;
}

.kst-archive-desc,
body.archive .kst-archive-desc,
body.category .kst-archive-desc,
body.tag .kst-archive-desc,
body.date .kst-archive-desc,
body.search .kst-archive-desc {
  margin-top:8px;font-size:13px;line-height:1.6;color:#666;
}

@media (min-width:1025px){
  .kst-archive-head,
  body.archive .kst-archive-head,
  body.category .kst-archive-head,
  body.tag .kst-archive-head,
  body.date .kst-archive-head,
  body.search .kst-archive-head {
    margin-left:0;margin-right:0;padding-top:0px;margin-bottom:10px;
  }
}

@media (min-width:768px) and (max-width:1024px){
  .kst-archive-head,
  body.archive .kst-archive-head,
  body.category .kst-archive-head,
  body.tag .kst-archive-head,
  body.date .kst-archive-head,
  body.search .kst-archive-head {
    margin-left:0;margin-right:0;padding-top:0px;margin-bottom:8px;
  }
}

@media (max-width:767px){
  .kst-archive-head,
  body.archive .kst-archive-head,
  body.category .kst-archive-head,
  body.tag .kst-archive-head,
  body.date .kst-archive-head,
  body.search .kst-archive-head {
    margin-left:0;margin-right:0;margin-top:0;padding-top:0px;margin-bottom:8px;
  }
  .kst-archive-title,
  body.archive .kst-archive-title,
  body.category .kst-archive-title,
  body.tag .kst-archive-title,
  body.date .kst-archive-title,
  body.search .kst-archive-title {
    font-size:14px;line-height:1.35;padding:0 0 6px;
  }
  .kst-archive-desc,
  body.archive .kst-archive-desc,
  body.category .kst-archive-desc,
  body.tag .kst-archive-desc,
  body.date .kst-archive-desc,
  body.search .kst-archive-desc {
    margin-top:6px;font-size:12px;line-height:1.5;
  }
}

/* =========================================
   記事タイトル（投稿個別ページ）
========================================= */

.kst-single .kst-single__header,
.single.single-post .kst-single__header {text-align:center;}

.kst-single .kst-single__header .kst-single__title,
.single.single-post .kst-single__header .kst-single__title {
  display:inline-block;margin:0 auto 18px;padding:0 0 8px;
  color:#333;font-size:24px;line-height:1.45;font-weight:700 !important;
  letter-spacing:0.01em;text-align:center;border-bottom:2px solid #f2d4e1;
  background:transparent;box-shadow:none;text-decoration:none;
}

.kst-single .kst-single__header .kst-single__title a,
.single.single-post .kst-single__header .kst-single__title a {color:#333;text-decoration:none;}
.kst-single .kst-single__header .kst-single__title a:hover,
.single.single-post .kst-single__header .kst-single__title a:hover {color:#c85b84;text-decoration:none;}

@media (max-width:767px){
  .kst-single .kst-single__header .kst-single__title,
  .single.single-post .kst-single__header .kst-single__title {
    margin:0 auto 10px;padding:0 0 6px;font-size:22px;line-height:1.35;
  }
}

/* =========================================
   サイドバー手書きリンク
========================================= */

.kst-side-links,
.widget_nav_menu .menu {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  margin: 0;
  padding: 0;
  list-style: none;
}

/* ★ flex gap → margin で代替（旧Safari対応） */
.kst-side-links > *,
.widget_nav_menu .menu > li {
  margin-bottom: 10px;
}
.kst-side-links > *:last-child,
.widget_nav_menu .menu > li:last-child {
  margin-bottom: 0;
}

.kst-side-links a,
.widget_nav_menu .menu a {
  display: block;
  padding: 12px 14px;
  background: #fff7fa;
  border: 1px solid #f2dbe4;
  border-radius: 12px;
  color: #8a5a6d;
  text-decoration: none;
  font-size: 14px;
  line-height: 1.5;
  font-weight: 600;
  text-align: center;
  -webkit-transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, -webkit-transform 0.2s ease;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
  box-sizing: border-box;
}

.kst-side-links a:hover,
.widget_nav_menu .menu a:hover {
  background: #fdeff5;border-color: #e8c7d5;color: #c85b84;
  -webkit-transform: translateY(-1px);transform: translateY(-1px);
}

.kst-side-links a:focus-visible,
.widget_nav_menu .menu a:focus-visible {
  outline: 2px solid #e7b8c9;outline-offset: 2px;
}

@media (max-width:767px){
  .kst-side-links > *,
  .widget_nav_menu .menu > li {margin-bottom:8px;}
  .kst-side-links a,
  .widget_nav_menu .menu a {padding:11px 12px;font-size:13px;}
}

/* =========================================
   フォント
========================================= */

html,body,button,input,select,textarea,
.site,.kst-misc-layout__main,.site-main,.entry-content,.post-content,
.widget,.sidebar,.archive,.single,.page,
p,li,dt,dd,th,td,caption,label,small,
h1,h2,h3,h4,h5,h6,
.entry-title,.post-title,.widget-title,.archive-title,.page-title,.kst-archive-title,
.kst-header,.kst-header__title,.kst-header__description,
.kst-header__nav .kst-main-menu > li > a,
.kst-header__nav .menu > ul > li > a,
.kst-header__nav > div > ul > li > a,
.kst-drawer-menu a,.kst-drawer__nav .menu a,.kst-drawer__nav > div > ul a,
.kst-side-links a,
.drama-related-gridtime-v7__title,
.drama-related-gridtime-v7__title a {
  font-family:"M PLUS Rounded 1c",sans-serif !important;
}

body,.site,.kst-misc-layout__main,.site-main,.entry-content,.post-content,
.widget,.sidebar,.archive,.single,.page,
p,li,dt,dd,th,td,caption,label,small {
  font-weight:500 !important;
}

h1,h2,h3,h4,h5,h6,
.entry-title,.post-title,.widget-title,.archive-title,.page-title,.kst-archive-title,
.kst-header__nav .kst-main-menu > li > a,
.kst-header__nav .menu > ul > li > a,
.kst-header__nav > div > ul > li > a,
.kst-drawer-menu a,.kst-drawer__nav .menu a,.kst-drawer__nav > div > ul a,
.kst-side-links a,
.drama-related-gridtime-v7__title,
.drama-related-gridtime-v7__title a {
  font-weight:500 !important;
}

/* =========================================
   カテゴリバッジ
========================================= */

.kst-single__category {display:block;margin:0 0 8px;text-align:left;}

.kst-single__category-link {
  display:inline-block;padding:4px 10px;background:#666666;color:#ffffff;
  font-size:12px;font-weight:700;line-height:1.4;border-radius:4px;
  text-decoration:none;letter-spacing:0.02em;white-space:nowrap;
}

.kst-single__category-link:hover {opacity:0.85;color:#ffffff;text-decoration:none;}

.kst-single__category-link--red      {background:#d9534f;}
.kst-single__category-link--blue     {background:#2f6fdd;}
.kst-single__category-link--green    {background:#2f9e44;}
.kst-single__category-link--purple   {background:#7a4cc2;}
.kst-single__category-link--netflix  {background:#b20710;}
.kst-single__category-link--unext    {background:#111111;}
.kst-single__category-link--disneyplus{background:#5bc0eb;}
.kst-single__category-link--prime    {background:#f39c12;}
.kst-single__category-link--default  {background:#666666;}

/* =========================================
   サイト背景
========================================= */

body {background-color:rgb(239,239,239) !important;}

.kst-page-layout,
.kst-single-layout,
.kst-misc-layout,
.kst-archive-layout,
.kst-misc-layout__main,
.kst-page-layout__grid,
.kst-single-layout__grid {
  background-color:#ffffff !important;
}

.kst-header {background-color:#111111 !important;}

/* =========================================
   フッター
========================================= */

.kst-footer {
  background-color:#111111 !important;color:#cccccc;
  padding:24px 0;margin-top:0;margin-left:auto;margin-right:auto;
  max-width:1140px;box-sizing:border-box;border-top:1px solid #333333;
}

.kst-footer__inner {
  padding-top:0;padding-bottom:0;
}

.kst-footer p {margin:0;font-size:13px;color:#aaaaaa;text-align:center;line-height:1.6;}
.kst-footer a {color:#cccccc;text-decoration:none;}
.kst-footer a:hover {color:#ffffff;text-decoration:underline;}
.kst-footer .kst-footer__nav {margin:0 0 12px;}

.kst-footer .kst-footer__menu {
  list-style:none;margin:0;padding:0;
  display:-webkit-flex !important;display:flex !important;
  -webkit-flex-wrap:wrap;flex-wrap:wrap;
  -webkit-justify-content:center;justify-content:center;
}

/* ★ flex gap → margin で代替（旧Safari対応） */
.kst-footer .kst-footer__menu li {
  margin:4px 10px;
}

.kst-footer .kst-footer__menu li a {color:#cccccc;font-size:13px;text-decoration:none;}
.kst-footer .kst-footer__menu li a:hover {color:#ffffff;}

/* =========================================
   404 ページ
   - 旧: インラインスタイル + 汎用クラス（page-item/page-title/entry-meta 等）
   - 新: BEM モジュール kst-404（Phase 3L-5c で整理）
========================================= */

.kst-404__label {
  margin: 0 0 8px;
  color: #c85b84;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.kst-404__title {
  margin: 0 0 16px;
  font-size: 24px;
  line-height: 1.45;
  font-weight: 700;
}

.kst-404__content p {
  margin: 0 0 12px;
  line-height: 1.7;
}

.kst-404__section {
  margin-top: 24px;
}

.kst-404__section-title {
  margin: 0 0 12px;
  font-size: 22px;
  line-height: 1.45;
}

.kst-404__links {
  margin: 0;
  padding-left: 1.2em;
}

.kst-404__links li {
  margin-bottom: 4px;
  line-height: 1.7;
}

/* =========================================
   関連記事カテゴリリンク
========================================= */
.drama-related-gridtime-v7__category-link {color:#555;text-decoration:none;}



/* =========================================
   AdSense ブロック（CLS対策）
   ★ クラス名を site_render_adsense() の出力に合わせて統一
      手動広告: .manual-adsense-container
      CFT自動広告: .cft-adsense-block .cft-adsense-{position}
========================================= */

.adsbygoogle { display: block; }

.cft-adsense-block {
  clear: both;
}

/* YouTube前後 */
.cft-adsense-before-youtube {
  margin-top: 20px;
  margin-bottom: 20px;
}
.cft-adsense-after-youtube {
  margin-top: 20px;
  margin-bottom: 20px;
}

/* 進捗前後 */
.cft-adsense-before-progress {
  margin-top: 30px;
  margin-bottom: 20px;
}
.cft-adsense-after-progress {
  margin-top: 20px;
  margin-bottom: 20px;
}

/* 上記に該当しない汎用ブロック */
.cft-adsense-block:not(.cft-adsense-before-youtube):not(.cft-adsense-after-youtube):not(.cft-adsense-before-progress):not(.cft-adsense-after-progress) {
  margin: 30px 0;
}

/* 手動広告コンテナ */
.manual-adsense-container {
  margin: 20px 0;
  clear: both;
}

@media (max-width: 768px) {
  .cft-adsense-before-youtube,
  .cft-adsense-after-youtube {
    margin-top: 16px;
    margin-bottom: 16px;
  }
  .cft-adsense-before-progress,
  .cft-adsense-after-progress {
    margin-top: 20px;
    margin-bottom: 16px;
  }
  .cft-adsense-block:not(.cft-adsense-before-youtube):not(.cft-adsense-after-youtube):not(.cft-adsense-before-progress):not(.cft-adsense-after-progress) {
    margin: 20px 0;
  }
}

/* =========================================
   AdSense 非表示時にコンテナを消す
   ★ :has() はモダンブラウザのみ対応
   　 旧Safari（iPad mini等）はfunctions.phpのJSフォールバックで制御
========================================= */

/* 手動広告（[adsense_manual]ショートコード） */
.manual-adsense-container:has(.adsbygoogle[data-ad-status="unfilled"]) {
  display: none;
}

/* CFT内の広告 */
.cft-adsense-block:has(.adsbygoogle[data-ad-status="unfilled"]) {
  display: none;
}

/* =========================================
   検索フォーム
   ★ V4: スニペット廃止。functions.php の kandora_clean_search_form()
          が出力する標準クラス（.search-form）に直接スタイルを当てる
========================================= */

.search-form {
  display: -webkit-flex;
  display: flex;
  -webkit-align-items: center;
  align-items: center;
  width: 100%;
  margin: 0;
}

.search-form label {
  -webkit-flex: 1 1 auto;
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  margin-right: 8px;
}

.search-form .search-field {
  display: block;
  width: 100%;
  height: 42px;
  padding: 0 14px;
  box-sizing: border-box;
  border: 1px solid #d8d8d8;
  border-radius: 6px;
  background: #ffffff;
  color: #222222;
  font-size: 14px;
}

.search-form .search-field:focus {
  outline: none;
  border-color: #e8a0be;
  box-shadow: 0 0 0 3px rgba(200, 91, 132, 0.12);
}

.search-form .search-submit {
  -webkit-flex: 0 0 72px;
  flex: 0 0 72px;
  width: 72px;
  height: 42px;
  padding: 0 12px;
  box-sizing: border-box;
  border: 0;
  border-radius: 6px;
  background: #c85b84;
  color: #ffffff;
  font-size: 14px;
  cursor: pointer;
  white-space: nowrap;
  -webkit-transition: background-color 0.2s ease;
  transition: background-color 0.2s ease;
}

.search-form .search-submit:hover {
  background: #a84269;
}

.search-form .search-submit:focus-visible {
  outline: 2px solid #e8a0be;
  outline-offset: 2px;
}


/* =========================================
   Phase 3L (A-1): BEM 新クラス（.kst-grid__*）
   -----------------------------------------
   旧 .nm-grid-* と並行で追加。HTML 側が新クラスに
   切り替わるまで旧ルールはそのまま残す（A-3 で削除予定）。
   マッピング表：
     .nm-grid-wrap              → .kst-grid              (block)
     .nm-grid-wrap--capture     → .kst-grid--capture     (modifier)
     .nm-grid-heading           → .kst-grid__heading
     .nm-grid-title / h*.nm-grid-title → .kst-grid__title / h*.kst-grid__title
     .nm-grid                   → .kst-grid__list
     .nm-grid-card              → .kst-grid__card
     .nm-grid-link              → .kst-grid__link
     .nm-grid-media             → .kst-grid__media
     .nm-grid-thumb-img         → .kst-grid__thumb
     .nm-grid-thumb-placeholder → .kst-grid__placeholder
     .nm-grid-badge             → .kst-grid__badge
     .nm-grid-badge--*          → .kst-grid__badge--*
     .nm-grid-shadow            → .kst-grid__shadow
     .nm-grid-caption           → .kst-grid__caption
     .nm-grid-card-title        → .kst-grid__card-title
     .nm-grid-time              → .kst-grid__time
     .nm-grid-empty             → .kst-grid__empty
     .nm-grid-pagination        → .kst-grid__pagination
========================================= */

.kst-grid--capture{
  margin-left: 0;
  margin-right: 0;
  margin-bottom: 40px;
  box-sizing:border-box;
  scroll-margin-top:24px;
}

.kst-grid--capture .kst-grid__list{
  display:grid;
  grid-template-columns:repeat(var(--nm-cols-d,3),minmax(0,1fr));
  gap:var(--nm-gap,2px);
}

.kst-grid--capture .kst-grid__card{
  position:relative;
  overflow:hidden;
  min-width:0;
  isolation:isolate;
}

.kst-grid--capture .kst-grid__link{
  position:relative;
  z-index:1;
  display:block;
  color:#fff;
  text-decoration:none;
  background:#111;
}

/* ★ aspect-ratio → padding-bottom ハックで代替（旧Safari対応） */
/* margin:0 → figure 要素のデフォルト余白をリセット */
.kst-grid--capture .kst-grid__media{
  margin:0;
  position:relative;
  padding-bottom:120%;
  height:0;
  overflow:hidden;
  background:#111;
}

@supports (aspect-ratio: 1) {
  .kst-grid--capture .kst-grid__media{
    padding-bottom:0;
    height:auto;
    aspect-ratio:5/6;
  }
}

.kst-grid--capture .kst-grid__thumb{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.kst-grid--capture .kst-grid__placeholder{
  position:absolute;
  top:0;
  left:0;
  display:-webkit-flex;
  display:flex;
  -webkit-align-items:center;
  align-items:center;
  -webkit-justify-content:center;
  justify-content:center;
  width:100%;
  height:100%;
  background:#222;
  color:#bbb;
  font-size:12px;
  letter-spacing:.08em;
}

.kst-grid--capture .kst-grid__badge{
  position:absolute;
  top:0;
  left:0;
  z-index:9999;
  display:inline-block;
  padding:5px 9px 6px;
  border-radius:0;
  color:#fff !important;
  font-size:14px;
  line-height:1.15;
  font-weight:700;
  letter-spacing:.02em;
  background:#666;
  text-decoration:none !important;
  pointer-events:auto;
}

.kst-grid--capture .kst-grid__badge:hover{
  color:#fff !important;
  text-decoration:none !important;
  opacity:.96;
}

.kst-grid--capture .kst-grid__badge--red{background:#d9534f;}
.kst-grid--capture .kst-grid__badge--blue{background:#2f6fdd;}
.kst-grid--capture .kst-grid__badge--green{background:#2f9e44;}
.kst-grid--capture .kst-grid__badge--purple{background:#7a4cc2;}
.kst-grid--capture .kst-grid__badge--netflix{background:#b20710;}
.kst-grid--capture .kst-grid__badge--unext{background:#111111;}
.kst-grid--capture .kst-grid__badge--disneyplus{background:#5bc0eb;}
.kst-grid--capture .kst-grid__badge--prime{background:#f39c12;}
.kst-grid--capture .kst-grid__badge--default{background:#666;}

.kst-grid--capture .kst-grid__shadow{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:52%;
  z-index:1;
  background:-webkit-linear-gradient(bottom,rgba(0,0,0,.88) 0%,rgba(0,0,0,.52) 45%,rgba(0,0,0,0) 100%);
  background:linear-gradient(to top,rgba(0,0,0,.88) 0%,rgba(0,0,0,.52) 45%,rgba(0,0,0,0) 100%);
  pointer-events:none;
}

/* figcaption 化：display:grid で span 時と同じレイアウト */
.kst-grid--capture .kst-grid__caption{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:2;
  display:grid;
  grid-template-rows:auto auto;
  row-gap:3px;
  align-content:end;
  padding:0 4px 8px;
  min-height:78px;
  background:transparent;
  color:#fff;
  box-sizing:border-box;
  text-align:left;
}

.kst-grid--capture .kst-grid__card-title,
.kst-grid--capture h2.kst-grid__card-title{
  /* h2 として出力されるためブラウザデフォルトを明示的に抑制 */
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
  width:100%;
  color:#fff;
  font-size:17px;
  line-height:1.3;
  font-weight:700;
  margin:0;
  padding:0;
  text-shadow:0 1px 2px rgba(0,0,0,.55);
  word-break:break-word;
  text-align:left;
  max-height:calc(1.3em * 2);
}

/* time 化：display:block で span 時と同じレイアウト */
.kst-grid--capture .kst-grid__time{
  display:block;
  align-self:end;
  color:#fff;
  font-size:16px;
  line-height:1.2;
  font-weight:500;
  letter-spacing:0;
  font-family:inherit;
  background:transparent;
  padding:0;
  border-radius:0;
  text-align:left;
  text-shadow:0 1px 2px rgba(0,0,0,.55);
  white-space:nowrap;
}

.kst-grid--capture .kst-grid__heading{
  margin: 0 0 10px;
  padding: 0;
}

body.archive .kst-grid--capture .kst-grid__heading,
body.category .kst-grid--capture .kst-grid__heading,
body.tag .kst-grid--capture .kst-grid__heading,
body.date .kst-grid--capture .kst-grid__heading,
body.search .kst-grid--capture .kst-grid__heading {
  padding: 2px 2px 0;
}

.kst-grid--capture h1.kst-grid__title,
.kst-grid--capture h2.kst-grid__title,
.kst-grid--capture h3.kst-grid__title,
.kst-grid--capture h4.kst-grid__title,
.kst-grid--capture h5.kst-grid__title,
.kst-grid--capture h6.kst-grid__title{
  margin:0 !important;
  padding:0 0 6px !important;
  color:#666 !important;
  font-weight:700 !important;
  line-height:1.35 !important;
  letter-spacing:.02em;
  border-bottom:2px solid #f0d6df;
  text-decoration:none !important;
}

.kst-grid--capture h1.kst-grid__title{font-size:14px !important;}
.kst-grid--capture h2.kst-grid__title{font-size:14px !important;}
.kst-grid--capture h3.kst-grid__title{font-size:20px !important;}
.kst-grid--capture h4.kst-grid__title{font-size:18px !important;}
.kst-grid--capture h5.kst-grid__title{font-size:16px !important;}
.kst-grid--capture h6.kst-grid__title{font-size:15px !important;}

.kst-grid--capture .kst-grid__empty{margin:0;}

.kst-grid--capture .kst-grid__pagination{margin:24px 0 32px;}

.kst-grid--capture .kst-grid__pagination .page-numbers{
  display:-webkit-flex;
  display:flex;
  -webkit-flex-wrap:wrap;
  flex-wrap:wrap;
  -webkit-justify-content:center;
  justify-content:center;
  list-style:none;
  margin:0;
  padding:0;
}
.kst-grid--capture .kst-grid__pagination .page-numbers > li {
  margin:4px;
}

.kst-grid--capture .kst-grid__pagination li{
  margin:4px;
  padding:0;
  list-style:none;
}

.kst-grid--capture .kst-grid__pagination a,
.kst-grid--capture .kst-grid__pagination span{
  display:-webkit-inline-flex;
  display:inline-flex;
  -webkit-align-items:center;
  align-items:center;
  -webkit-justify-content:center;
  justify-content:center;
  min-width:50px;
  height:50px;
  padding:0 14px;
  border:1px solid #ddd;
  border-radius:8px;
  background:#fff;
  color:#333;
  text-decoration:none;
  line-height:1;
  font-size:16px;
  box-sizing:border-box;
}

.kst-grid--capture .kst-grid__pagination a:hover{opacity:.85;}

.kst-grid--capture .kst-grid__pagination .current{
  background:#333;
  border-color:#333;
  color:#fff;
  font-weight:700;
}

.kst-grid--capture .kst-grid__pagination .dots{
  border:none;
  background:transparent;
  min-width:auto;
  padding:0 2px;
}

@media (max-width:1024px){
  .kst-grid--capture .kst-grid__list{
    grid-template-columns:repeat(var(--nm-cols-t,3),minmax(0,1fr));
  }
  .kst-grid--capture .kst-grid__badge{font-size:13px;padding:4px 8px 5px;}
  .kst-grid--capture .kst-grid__caption{padding:0 4px 8px;min-height:72px;}
  .kst-grid--capture .kst-grid__card-title{font-size:17px;line-height:1.28;max-height:calc(1.28em * 2);}
  .kst-grid--capture .kst-grid__time{font-size:15px;font-weight:500;}
  .kst-grid--capture h1.kst-grid__title{font-size:15px !important;}
  .kst-grid--capture h2.kst-grid__title{font-size:15px !important;}
  .kst-grid--capture h3.kst-grid__title{font-size:18px !important;}
  .kst-grid--capture h4.kst-grid__title{font-size:17px !important;}
  .kst-grid--capture h5.kst-grid__title{font-size:15px !important;}
  .kst-grid--capture h6.kst-grid__title{font-size:14px !important;}
  .kst-grid--capture .kst-grid__pagination a,
  .kst-grid--capture .kst-grid__pagination span{min-width:46px;height:46px;font-size:15px;}
}

@media (max-width:767px){
  .kst-grid--capture{margin-left:0;margin-right:0;}
  .kst-grid--capture .kst-grid__list{grid-template-columns:repeat(2,minmax(0,1fr));}
  .kst-grid--capture .kst-grid__badge{font-size:12px;padding:4px 7px 4px;}
  .kst-grid--capture .kst-grid__caption{padding:0 3px 7px;min-height:66px;row-gap:2px;}
  .kst-grid--capture .kst-grid__card-title{font-size:16px;line-height:1.26;max-height:calc(1.26em * 2);}
  .kst-grid--capture .kst-grid__time{font-size:14px;font-weight:500;}
  .kst-grid--capture .kst-grid__heading{margin:0 0 8px !important;padding:0 !important;}
  body.archive .kst-grid--capture .kst-grid__heading,
  body.category .kst-grid--capture .kst-grid__heading,
  body.tag .kst-grid--capture .kst-grid__heading,
  body.date .kst-grid--capture .kst-grid__heading,
  body.search .kst-grid--capture .kst-grid__heading{padding:6px 1px 0 !important;}
  .kst-grid--capture h1.kst-grid__title{font-size:14px !important;}
  .kst-grid--capture h2.kst-grid__title{font-size:14px !important;}
  .kst-grid--capture h3.kst-grid__title{font-size:17px !important;}
  .kst-grid--capture h4.kst-grid__title{font-size:16px !important;}
  .kst-grid--capture h5.kst-grid__title{font-size:14px !important;}
  .kst-grid--capture h6.kst-grid__title{font-size:13px !important;}
  .kst-grid--capture .kst-grid__pagination{margin-top:24px;}
  .kst-grid--capture .kst-grid__pagination a,
  .kst-grid--capture .kst-grid__pagination span{min-width:42px;height:42px;padding:0 12px;font-size:15px;}
}

@media (orientation:landscape) and (max-width:1024px) and (max-height:500px){
  .kst-grid--capture .kst-grid__list{grid-template-columns:repeat(3,minmax(0,1fr));}
}

/* アーカイブメイン内のグリッド */
.kst-archive-main .kst-grid--capture{margin-top:0;}
.kst-archive-main .kst-grid__empty{margin:0;padding:18px 0;}

/* 固定ページ内グリッド余白 */
.kst-page__content .kst-grid--capture {
  padding-left:1px;padding-right:1px;
}

@media (max-width:767px){
  .kst-page__content .kst-grid--capture {
    padding-left:2px;padding-right:2px;
  }
}

/* 固定ページ内グリッド見出し左位置 */
.kst-page__content .kst-grid--capture .kst-grid__title {
  padding-left:5px !important;
}

/* iPad mini縦型（600px〜860px）: 1カラム帯域でグリッドを3列に固定 */
@media (min-width: 600px) and (max-width: 860px) {
  .kst-grid--capture .kst-grid__list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* =========================================
   Phase 3L-3a (A-1): 進捗表（簡易版）BEM 新クラス
   -----------------------------------------
   旧 .drama-simplem-* と並行で追加。HTML 切替後
   （3L-3a A-2 コミット）に旧ルールを削除予定。
   マッピング:
     .drama-simplem-wrap / -grid → .kst-progress + .kst-progress--simple
     .drama-simplem-card          → .kst-progress__card
     .drama-simplem-card.is-X     → .kst-progress__card--X (before/onair/ended)
     .drama-simplem-card-top      → .kst-progress__header
     .drama-simplem-card-top.is-no-name → .kst-progress__header--no-name
     .drama-simplem-card-badge    → .kst-progress__badge
     .drama-simplem-card-name     → .kst-progress__name (div として)
     .drama-simplem-current       → .kst-progress__current (p として)
     .drama-simplem-meta          → .kst-progress__meta (dl として)
     .drama-simplem-meta-row      → .kst-progress__meta-row (div として)
     .drama-simplem-meta-label    → dt
     .drama-simplem-meta-value    → dd
========================================= */

.kst-progress {
  margin: 24px 0 0;
}

.kst-progress--simple {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 16px;
}

.kst-progress__card {
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  padding: 16px;
  background: #fff;
  box-shadow: 0 2px 10px rgba(0,0,0,.04);
  font-size: 14px;
  line-height: 1.7;
  border-top-width: 4px;
}

.kst-progress__header {
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  -webkit-align-items: center;
  align-items: center;
  margin-bottom: 8px;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
}

.kst-progress__header > * {
  margin-right: 10px;
  margin-bottom: 4px;
}

.kst-progress__header > *:last-child {
  margin-right: 0;
}

.kst-progress__header--no-name {
  -webkit-justify-content: center;
  justify-content: center;
}

/* 進捗名ラベル（任意入力、クール名や放送曜日ルール用） */
.kst-progress__name {
  margin: 0;
  font-size: 17px;
  font-weight: 800;
  color: #111827;
  line-height: 1.4;
}

.kst-progress__badge {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 999px;
  font-weight: 700;
  font-size: 12px;
  white-space: nowrap;
}

.kst-progress__card--before {
  background: #fff;
  border-color: #dbe2ea;
  border-top-color: #2563eb;
}
.kst-progress__card--before .kst-progress__badge {
  background: #dbeafe;
  color: #1d4ed8;
}
.kst-progress__card--before .kst-progress__current {
  color: #1d4ed8;
}

.kst-progress__card--onair {
  background: #fff;
  border-color: #dbe2ea;
  border-top-color: #eab308;
}
.kst-progress__card--onair .kst-progress__badge {
  background: #fef3c7;
  color: #a16207;
}
.kst-progress__card--onair .kst-progress__current {
  color: #a16207;
}

.kst-progress__card--ended {
  background: #fff;
  border-color: #dbe2ea;
  border-top-color: #dc2626;
}
.kst-progress__card--ended .kst-progress__badge {
  background: #fee2e2;
  color: #dc2626;
}
.kst-progress__card--ended .kst-progress__current {
  color: #b91c1c;
}

/* p のデフォルト margin を明示的にリセット */
.kst-progress__current {
  margin: 0 0 12px;
  font-weight: 700;
  text-align: center;
}

/* dl のデフォルト margin を明示的にリセット */
.kst-progress__meta {
  margin: 0;
  display: block;
  color: #374151;
  text-align: center;
}

.kst-progress__meta-row {
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-align-items: baseline;
  align-items: baseline;
  margin: 8px 0;
  line-height: 1.7;
  text-align: center;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
}

.kst-progress__meta-row > * {
  margin-right: 8px;
}

.kst-progress__meta-row > *:last-child {
  margin-right: 0;
}

/* dt は inline 表示にして span 的な挙動に */
/* ※ 上の .kst-progress__meta-row > * が margin-right:8px を付けるため
 *   右側 8px を明示的に保持して「ラベル 値」の間隔を出す */
.kst-progress__meta-row dt {
  display: inline;
  margin: 0 8px 0 0;
  font-weight: 700;
  color: #111827;
}

/* dd のデフォルト margin (UA style の margin-left:40px) をリセット、inline 化 */
.kst-progress__meta-row dd {
  display: inline;
  margin: 0;
}


@media (max-width: 767px) {
  .kst-progress--simple {
    grid-template-columns: 1fr;
  }
}

/* =========================================
   Phase 3L-3b (A-1): 進捗表（複雑版）BEM 新クラス
   -----------------------------------------
   旧 .drama-mcprog-* と並行で追加。HTML 切替後
   （3L-3b A-2 コミット）に旧ルールを削除予定。
   マッピング:
     .drama-mcprog-wrap / -grid  → .kst-progress + .kst-progress--multi
     .drama-mcprog-card           → .kst-progress__card
     .drama-mcprog-card.is-X      → .kst-progress__card--X
     .drama-mcprog-card-top       → .kst-progress__header (multi は中央揃え)
     .drama-mcprog-card-badge     → .kst-progress__badge
     .drama-mcprog-card-name      → .kst-progress__name (div として)
     .drama-mcprog-current        → .kst-progress__current (p として)
     .drama-mcprog-meta           → .kst-progress__meta (dl として)
     .drama-mcprog-meta-row       → .kst-progress__meta-row (div として)
     .drama-mcprog-meta-row.is-simple → .kst-progress__meta-row--simple
     .drama-mcprog-meta-label     → dt
     .drama-mcprog-meta-date/-weekday/-time → .kst-progress__meta-date/-weekday/-time
     .drama-mcprog-meta-value     → dd
     .drama-mcprog-bar            → .kst-progress__bar (role=progressbar)
     .drama-mcprog-bar-inner      → .kst-progress__bar-fill
     .drama-mcprog-bottom         → .kst-progress__bottom (p として)
     .drama-mcprog-next           → .kst-progress__next (p として)
========================================= */

.kst-progress--multi {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 16px;
}

/* 複雑版のヘッダーは中央揃え */
.kst-progress--multi .kst-progress__header {
  -webkit-justify-content: center;
  justify-content: center;
  text-align: center;
}

.kst-progress--multi .kst-progress__name {
  text-align: center;
}

/* 複雑版の current text */
.kst-progress--multi .kst-progress__current {
  margin-bottom: 10px;
}

/* 複雑版のメタ情報: gap grid で行間を区切る */
.kst-progress--multi .kst-progress__meta {
  display: grid;
  gap: 8px;
  margin: 0 0 14px;
  color: #4b5563;
  text-align: inherit;
}

/* 複雑版のメタ行: 4 カラムのグリッド配置（label + date + weekday + time）*/
.kst-progress--multi .kst-progress__meta-row {
  display: -webkit-flex;
  display: flex;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-align-items: baseline;
  align-items: baseline;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  column-gap: 6px;
  margin: 0;
  text-align: center;
}

.kst-progress--multi .kst-progress__meta-row--simple {
  column-gap: 8px;
}

/* dt は flex アイテム */
.kst-progress--multi .kst-progress__meta-row dt {
  display: inline-block;
  margin: 0;
  font-weight: 700;
  color: #111827;
  white-space: nowrap;
}

/* dd は flex アイテム（デフォルト margin リセット） */
.kst-progress--multi .kst-progress__meta-row dd {
  display: inline-block;
  margin: 0;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  font-size: 15px;
}

/* 日時内の各スパン（date / weekday / time）*/
.kst-progress__meta-date,
.kst-progress__meta-weekday,
.kst-progress__meta-time {
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  font-size: 15px;
}

/* 進捗バー（ARIA progressbar ロール用） */
.kst-progress__bar {
  width: 100%;
  height: 14px;
  background: #f3f4f6;
  border-radius: 999px;
  overflow: hidden;
  margin-bottom: 10px;
}

.kst-progress__bar-fill {
  height: 100%;
  border-radius: 999px;
}

/* 進捗バーのステータス別グラデーション */
.kst-progress__card--before .kst-progress__bar-fill {
  background: -webkit-linear-gradient(left, #60a5fa, #2563eb);
  background: linear-gradient(90deg, #60a5fa, #2563eb);
}

.kst-progress__card--onair .kst-progress__bar-fill {
  background: -webkit-linear-gradient(left, #facc15, #eab308);
  background: linear-gradient(90deg, #facc15, #eab308);
}

.kst-progress__card--ended .kst-progress__bar-fill {
  background: -webkit-linear-gradient(left, #f87171, #dc2626);
  background: linear-gradient(90deg, #f87171, #dc2626);
}

/* 進捗テキスト（バー下） */
.kst-progress__bottom {
  margin: 0 0 6px;
  font-weight: 700;
}

/* 次回予告テキスト（オレンジの目立つブロック） */
.kst-progress__next {
  margin-top: 12px;
  margin-bottom: 0;
  padding: 14px 16px;
  background: rgb(255, 244, 217);
  border-left: 6px solid rgb(226, 164, 0);
  border-radius: 14px;
  color: rgb(107, 75, 0);
  font-size: 16px;
  font-weight: 700 !important;
  text-align: center;
  line-height: 1.5;
}

@media (max-width: 767px) {
  .kst-progress--multi {
    grid-template-columns: 1fr;
  }
  .kst-progress--multi .kst-progress__meta-row {
    column-gap: 5px;
  }
  .kst-progress--multi .kst-progress__meta-row--simple {
    column-gap: 6px;
  }
}

/* =========================================
   Phase 3L-4 (A-1 + A-3): CFT ブロック BEM 新クラス
   -----------------------------------------
   旧 .drama-cft-* 実ルールは A-3 コミットで削除済み。
   以下の定義が正となり、HTML は .kst-cft__* を出力。
   末尾に最小互換エイリアスあり（Phase 3L-A4 で削除予定）。
   マッピング:
     .drama-cft-wrap            → .kst-cft                      (<aside>)
     .drama-cft-block           → .kst-cft__block
     .drama-cft-meta-wrap       → .kst-cft__block--meta
     .drama-cft-meta            → .kst-cft__meta
     .drama-cft-meta-link       → .kst-cft__meta--link          (<a>)
     .drama-cft-meta-text       → .kst-cft__meta--text          (<div>)
     .drama-cft-meta-line       → .kst-cft__meta-line
       first-child              → .kst-cft__meta-line--primary
       not(:first-child)        → .kst-cft__meta-line--secondary
     .drama-cft-star            → .kst-cft__block--star
     .drama-cft-image           → .kst-cft__block--image        (<figure>)
     .drama-cft-youtube         → .kst-cft__block--youtube      (<figure>)
     .drama-cft-youtube-title   → .kst-cft__youtube-title       (<figcaption>)
     .drama-cft-youtube-embed   → .kst-cft__youtube-embed
     .drama-cft-youtube-button  → .kst-cft__youtube-button      (<a> + .wp-video-popup 併記)
     .drama-cft-youtube-thumb   → .kst-cft__youtube-thumb
     .drama-cft-youtube-play    → .kst-cft__youtube-play
     .drama-cft-progress        → .kst-cft__block--progress
========================================= */

.kst-cft{
  display:block !important;
  width:100% !important;
  max-width:none !important;
  clear:both !important;
  margin:0 0 28px 0 !important;
  padding:0 !important;
  text-align:center !important;
  line-height:1.8 !important;
  float:none !important;
  gap:0 !important;
  row-gap:0 !important;
  column-gap:0 !important;
  overflow:visible !important;
}

.kst-cft,
.kst-cft *{
  box-sizing:border-box !important;
}

.kst-cft::before,
.kst-cft::after,
.kst-cft__block::before,
.kst-cft__block::after{
  content:"";
  display:table;
}

.kst-cft::after,
.kst-cft__block::after{
  clear:both;
}

.kst-cft > *,
.kst-cft .kst-cft__block > *,
.kst-cft .kst-cft__block--image > *,
.kst-cft .kst-cft__block--youtube > *,
.kst-cft .kst-cft__block--progress > *{
  max-width:none !important;
}

/* ★ AdSense内部要素への干渉を防ぐため広告コンテナを除外 */
.kst-cft *:not(.adsbygoogle):not(.adsbygoogle *){
  float:none !important;
}

.kst-cft p,
.kst-cft figure,
.kst-cft div:not(.adsbygoogle):not(.adsbygoogle *),
.kst-cft h1,
.kst-cft h2,
.kst-cft h3,
.kst-cft h4,
.kst-cft h5,
.kst-cft h6,
.kst-cft ul,
.kst-cft ol,
.kst-cft li,
.kst-cft dl,
.kst-cft dt,
.kst-cft dd,
.kst-cft table,
.kst-cft blockquote,
.kst-cft pre{
  max-width:none !important;
}

.kst-cft .kst-cft__block,
.kst-cft .kst-cft__block--meta,
.kst-cft .kst-cft__meta,
.kst-cft .kst-cft__meta--link,
.kst-cft .kst-cft__meta--text,
.kst-cft .kst-cft__block--star,
.kst-cft .kst-cft__block--image,
.kst-cft .kst-cft__block--youtube,
.kst-cft .kst-cft__youtube-title,
.kst-cft .kst-cft__youtube-embed,
.kst-cft .kst-cft__block--progress{
  display:block !important;
}

.kst-cft__block{
  width:100% !important;
  margin:0 0 24px 0 !important;
  padding:0 !important;
  text-align:center !important;
  line-height:1.8 !important;
  clear:both !important;
  gap:0 !important;
  row-gap:0 !important;
  column-gap:0 !important;
  overflow:visible !important;
}

.kst-cft__block:last-child{
  margin-bottom:0 !important;
}

.kst-cft__block > :first-child{
  margin-top:0 !important;
}

.kst-cft__block > :last-child{
  margin-bottom:0 !important;
}

.kst-cft__block--meta{
  margin-bottom:24px !important;
}

.kst-cft__meta,
.kst-cft__meta--link,
.kst-cft__meta--text{
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  text-align:center !important;
  text-decoration:none !important;
  border:0 !important;
  box-shadow:none !important;
  background:transparent !important;
}

.kst-cft__meta-line{
  display:block !important;
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  text-align:center !important;
  border:0 !important;
}

.kst-cft__block--star{
  white-space:normal !important;
  word-break:break-word !important;
  word-wrap:break-word !important;
  overflow-wrap:break-word !important;
}

.kst-cft__block--image,
.kst-cft__block--image *{
  text-align:center !important;
}

.kst-cft__block--image img,
.kst-cft__block--image iframe,
.kst-cft__block--image video,
.kst-cft__block--image embed,
.kst-cft__block--image object,
.kst-cft__block--image canvas,
.kst-cft__block--image svg{
  max-width:100% !important;
  height:auto !important;
  display:block !important;
  margin:0 auto !important;
  padding:0 !important;
  border:0 !important;
  vertical-align:top !important;
}

.kst-cft__block--image figure,
.kst-cft__block--image .wp-block-image,
.kst-cft__block--image .wp-caption,
.kst-cft__block--image .alignnone,
.kst-cft__block--image .aligncenter,
.kst-cft__block--image .alignleft,
.kst-cft__block--image .alignright{
  display:block !important;
  float:none !important;
  clear:both !important;
  margin:0 auto !important;
  padding:0 !important;
  max-width:100% !important;
  width:auto !important;
}

.kst-cft__block--image p,
.kst-cft__block--image div,
.kst-cft__block--image figure,
.kst-cft__block--image section,
.kst-cft__block--image article{
  margin-top:0 !important;
  margin-bottom:0 !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
}

.kst-cft__block--image p:empty,
.kst-cft__block--image div:empty{
  display:none !important;
}

.kst-cft__block--youtube{
  margin:0 0 24px 0 !important;
  padding:0 !important;
  text-align:center !important;
  gap:0 !important;
  row-gap:0 !important;
  column-gap:0 !important;
}

.kst-cft__youtube-title{
  width:100% !important;
  margin:0 0 8px 0 !important;
  padding:0 !important;
  text-align:center !important;
  line-height:1.6 !important;
  font-weight:700 !important;
  border:0 !important;
  box-shadow:none !important;
  background:transparent !important;
}

/* ★ aspect-ratio → padding-bottom ハックで代替（旧Safari対応） */
.kst-cft__youtube-embed{
  position:relative !important;
  width:100% !important;
  max-width:800px !important;
  height:0 !important;
  padding-bottom:56.25% !important;
  overflow:hidden !important;
  line-height:0 !important;
  font-size:0 !important;
  background:#000 !important;
  border:0 !important;
  box-shadow:none !important;
  clear:both !important;
  margin:0 auto !important;
}

@supports (aspect-ratio: 1) {
  .kst-cft__youtube-embed{
    height:auto !important;
    padding-bottom:0 !important;
    aspect-ratio:16 / 9 !important;
  }
}

.kst-cft__youtube-button{
  position:absolute !important;
  top:0 !important;
  right:0 !important;
  bottom:0 !important;
  left:0 !important;
  display:block !important;
  width:100% !important;
  height:100% !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  background:#000 !important;
  cursor:pointer !important;
  -webkit-appearance:none !important;
  appearance:none !important;
}

.kst-cft__youtube-thumb{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  display:block !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  background:#111 !important;
}

.kst-cft__youtube-play{
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  width:72px !important;
  height:50px !important;
  margin:-25px 0 0 -36px !important;
  border-radius:14px !important;
  background:rgba(255, 0, 0, 0.92) !important;
  box-shadow:0 4px 18px rgba(0,0,0,.35) !important;
}

.kst-cft__youtube-play::before{
  content:"" !important;
  position:absolute !important;
  left:29px !important;
  top:15px !important;
  border-style:solid !important;
  border-width:10px 0 10px 18px !important;
  border-color:transparent transparent transparent #fff !important;
}

.kst-cft__youtube-embed iframe{
  position:absolute !important;
  top:0 !important;
  right:0 !important;
  bottom:0 !important;
  left:0 !important;
  width:100% !important;
  height:100% !important;
  min-height:0 !important;
  display:block !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  vertical-align:top !important;
  background:transparent !important;
}

.kst-cft p,
.kst-cft figure,
.kst-cft .wp-block-embed,
.kst-cft .wp-block-video,
.kst-cft .wp-block-image,
.kst-cft .wp-caption,
.kst-cft .embed-block,
.kst-cft .video-container,
.kst-cft .fluid-width-video-wrapper,
.kst-cft .alignnone,
.kst-cft .aligncenter,
.kst-cft .alignleft,
.kst-cft .alignright{
  margin-top:0 !important;
  margin-bottom:0 !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
}

.kst-cft .alignleft,
.kst-cft .alignright{
  float:none !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

.kst-cft .fluid-width-video-wrapper{
  position:static !important;
  width:auto !important;
  height:auto !important;
  padding:0 !important;
}

/* ----- .kst-single__content 内での上書き ----- */

.kst-single__content .kst-cft__block--image,
.kst-single__content .kst-cft__block--youtube{
  width:100% !important;
  margin:0 auto 30px !important;
  box-sizing:border-box !important;
}

.kst-single__content .kst-cft__block--image{
  max-width:760px !important;
  padding:0 !important;
  background:transparent !important;
  border:none !important;
  border-radius:0 !important;
  box-shadow:none !important;
}

.kst-single__content .kst-cft__block--image img,
.kst-single__content .kst-cft__block--image iframe,
.kst-single__content .kst-cft__block--image video,
.kst-single__content .kst-cft__block--image embed,
.kst-single__content .kst-cft__block--image object,
.kst-single__content .kst-cft__block--image canvas,
.kst-single__content .kst-cft__block--image svg{
  display:block !important;
  max-width:100% !important;
  height:auto !important;
  margin:0 auto !important;
  border-radius:0 !important;
  overflow:hidden !important;
}

.kst-single__content .kst-cft__block--image a{
  display:block !important;
}

.kst-single__content .kst-cft__block--image figure,
.kst-single__content .kst-cft__block--image .wp-block-image,
.kst-single__content .kst-cft__block--image .wp-caption{
  margin:0 auto !important;
}

.kst-single__content .kst-cft__block--image figcaption,
.kst-single__content .kst-cft__block--image .wp-caption-text{
  margin:10px 0 0 !important;
  padding:0 4px !important;
  font-size:13px !important;
  line-height:1.7 !important;
  color:#7a6f75 !important;
  text-align:center !important;
}

.kst-single__content .kst-cft__block--youtube{
  max-width:860px !important;
  padding:0 !important;
  background:transparent !important;
  border:none !important;
  border-radius:0 !important;
  box-shadow:none !important;
}

.kst-single__content .kst-cft__youtube-title{
  display:-webkit-inline-flex !important;
  display:inline-flex !important;
  -webkit-align-items:center !important;
  align-items:center !important;
  width:auto !important;
  max-width:100% !important;
  margin:0 0 12px 0 !important;
  padding:0 !important;
  background:transparent !important;
  border:none !important;
  border-radius:0 !important;
  color:#555 !important;
  font-size:13px !important;
  font-weight:700 !important;
  line-height:1.4 !important;
  letter-spacing:0.03em !important;
}

/* ★ flex gap → margin で代替（旧Safari対応） */
.kst-single__content .kst-cft__youtube-title > * {
  margin-right: 8px !important;
}
.kst-single__content .kst-cft__youtube-title > *:last-child {
  margin-right: 0 !important;
}

.kst-single__content .kst-cft__youtube-title::before{
  content:"" !important;
  display:inline-block !important;
  width:8px !important;
  height:8px !important;
  border-radius:999px !important;
  background:#e06a86 !important;
  -webkit-flex:0 0 8px !important;
  flex:0 0 8px !important;
  margin-right:8px !important;
}

/* ★ aspect-ratio → padding-bottom ハックで代替（旧Safari対応） */
.kst-single__content .kst-cft__youtube-embed{
  position:relative !important;
  width:100% !important;
  max-width:none !important;
  height:0 !important;
  padding-bottom:56.25% !important;
  margin:0 auto !important;
  border-radius:0 !important;
  overflow:hidden !important;
  background:#111111 !important;
  box-shadow:none !important;
}

@supports (aspect-ratio: 1) {
  .kst-single__content .kst-cft__youtube-embed{
    height:auto !important;
    padding-bottom:0 !important;
    aspect-ratio:16/9 !important;
  }
}

.kst-single__content .kst-cft__youtube-button{
  position:absolute !important;
  top:0 !important;
  right:0 !important;
  bottom:0 !important;
  left:0 !important;
  border-radius:0 !important;
  overflow:hidden !important;
  background:#111111 !important;
}

.kst-single__content .kst-cft__youtube-button::after{
  content:"" !important;
  position:absolute !important;
  top:0 !important;
  right:0 !important;
  bottom:0 !important;
  left:0 !important;
  background:-webkit-linear-gradient(
    top,
    rgba(0, 0, 0, 0.08) 0%,
    rgba(0, 0, 0, 0.22) 100%
  ) !important;
  background:linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0.08) 0%,
    rgba(0, 0, 0, 0.22) 100%
  ) !important;
  pointer-events:none !important;
  -webkit-transition:opacity 0.22s ease !important;
  transition:opacity 0.22s ease !important;
}

.kst-single__content .kst-cft__youtube-thumb{
  width:100% !important;
  height:100% !important;
  display:block !important;
  object-fit:cover !important;
  -webkit-transition:-webkit-transform 0.45s ease !important;
  transition:transform 0.45s ease !important;
}

.kst-single__content .kst-cft__youtube-button:hover .kst-cft__youtube-thumb{
  -webkit-transform:scale(1.04) !important;
  transform:scale(1.04) !important;
}

.kst-single__content .kst-cft__youtube-button:hover::after{
  opacity:0.72 !important;
}

.kst-single__content .kst-cft__youtube-play{
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  width:84px !important;
  height:58px !important;
  margin:0 !important;
  -webkit-transform:translate(-50%, -50%) !important;
  transform:translate(-50%, -50%) !important;
  border-radius:18px !important;
  background:rgba(226, 70, 92, 0.94) !important;
  box-shadow:0 10px 26px rgba(0,0,0,.30) !important;
  -webkit-transition:-webkit-transform 0.22s ease, background-color 0.22s ease !important;
  transition:transform 0.22s ease, background-color 0.22s ease !important;
}

.kst-single__content .kst-cft__youtube-play::before{
  content:"" !important;
  position:absolute !important;
  left:34px !important;
  top:17px !important;
  border-style:solid !important;
  border-width:12px 0 12px 20px !important;
  border-color:transparent transparent transparent #ffffff !important;
}

.kst-single__content .kst-cft__youtube-button:hover .kst-cft__youtube-play{
  -webkit-transform:translate(-50%, -50%) scale(1.06) !important;
  transform:translate(-50%, -50%) scale(1.06) !important;
  background:rgba(214, 54, 77, 0.98) !important;
}

.kst-single__content .kst-cft__youtube-button:focus-visible{
  outline:3px solid #f0a9bf !important;
  outline-offset:4px !important;
}

.kst-single__content .kst-cft__youtube-embed iframe{
  position:absolute !important;
  top:0 !important;
  right:0 !important;
  bottom:0 !important;
  left:0 !important;
  width:100% !important;
  height:100% !important;
  border-radius:0 !important;
}

@media (max-width: 767px){
  .kst-single__content .kst-cft__block--image{
    padding:0 !important;
    border-radius:0 !important;
  }

  .kst-single__content .kst-cft__block--image img,
  .kst-single__content .kst-cft__block--image iframe,
  .kst-single__content .kst-cft__block--image video,
  .kst-single__content .kst-cft__block--image embed,
  .kst-single__content .kst-cft__block--image object,
  .kst-single__content .kst-cft__block--image canvas,
  .kst-single__content .kst-cft__block--image svg{
    border-radius:0 !important;
  }

  .kst-single__content .kst-cft__block--youtube{
    padding:0 !important;
    border-radius:0 !important;
  }

  .kst-single__content .kst-cft__youtube-embed,
  .kst-single__content .kst-cft__youtube-button,
  .kst-single__content .kst-cft__youtube-embed iframe{
    border-radius:0 !important;
  }

  .kst-single__content .kst-cft__youtube-title{
    font-size:12px !important;
    padding:5px 10px !important;
    margin-bottom:10px !important;
  }

  .kst-single__content .kst-cft__youtube-play{
    width:70px !important;
    height:48px !important;
    border-radius:15px !important;
  }

  .kst-single__content .kst-cft__youtube-play::before{
    left:29px !important;
    top:14px !important;
    border-width:10px 0 10px 17px !important;
  }
}

/* ----- CFT カテゴリ・日時リンク装飾（BEM 版） ----- */

.kst-cft__meta--link,
.kst-cft__meta--text {
  display: -webkit-flex !important;
  display: flex !important;
  -webkit-flex-direction: column !important;
  flex-direction: column !important;
  -webkit-align-items: center !important;
  align-items: center !important;
  text-decoration:none !important;background:transparent !important;
  border:0 !important;box-shadow:none !important;padding:0 !important;width:auto !important;
}

/* ★ flex gap → margin で代替（旧Safari対応） */
.kst-cft__meta--link > *,
.kst-cft__meta--text > * {
  margin-bottom: 8px !important;
}
.kst-cft__meta--link > *:last-child,
.kst-cft__meta--text > *:last-child {
  margin-bottom: 0 !important;
}

.kst-cft__meta-line--primary {
  display:inline-block !important;color:#1a6fa8 !important;font-size:22px !important;
  font-weight:bold !important;background:transparent !important;border:none !important;
  padding:0 !important;-webkit-transition:color 0.2s;transition:color 0.2s;
}

.kst-cft__meta--link:hover .kst-cft__meta-line--primary {color:#0d4f7c !important;}

.kst-cft__meta-line--secondary {
  display:inline-block !important;color:#777 !important;font-size:18px !important;
  background:transparent !important;border:none !important;padding:0 !important;
  -webkit-transition:color 0.2s;transition:color 0.2s;
}

.kst-cft__meta--link:hover .kst-cft__meta-line--secondary {color:#444 !important;}

/* ----- CFT ブロック内での進捗表（マージン打ち消し） ----- */
.kst-cft__block--progress .kst-progress--simple,
.kst-cft__block--progress .kst-progress--multi {
  margin: 0 !important;
}

/* =========================================
   Phase 3L (A-1) ここまで
========================================= */

/* =========================================
   Phase 3L (A-3): 互換エイリアス（旧クラス）
   -----------------------------------------
   旧クラス（.nm-grid-*, .drama-simplem-*, .drama-mcprog-*）は V5 で全廃止しましたが、
   ブラウザキャッシュ等で古い HTML が稀に残った場合の
   最終保険として、表示崩れを軽減する最小限のルールを
   残しています。V5 安定稼働後（数週間後）に A-4 で削除予定。
========================================= */

.nm-grid-wrap,
.nm-grid-wrap--capture {
  margin-bottom: 40px;
  box-sizing: border-box;
}

.nm-grid-card {
  position: relative;
  overflow: hidden;
}

.nm-grid-card-title {
  font-size: 17px;
  font-weight: 700;
  margin: 0;
}

.nm-grid-caption {
  display: block;
}

.nm-grid-media {
  margin: 0;
  aspect-ratio: 5/6;
  overflow: hidden;
}

/* ----- 進捗表（簡易版）互換エイリアス ----- */
.drama-simplem-wrap {
  margin: 24px 0 0;
}

.drama-simplem-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 16px;
}

.drama-simplem-card {
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  padding: 16px;
  background: #fff;
  font-size: 14px;
  line-height: 1.7;
}

.drama-simplem-card-name {
  font-size: 17px;
  font-weight: 800;
  color: #111827;
}

.drama-simplem-meta-label {
  font-weight: 700;
  color: #111827;
}

/* ----- 進捗表（複雑版）互換エイリアス ----- */
.drama-mcprog-wrap {
  margin: 24px 0 0;
}

.drama-mcprog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 16px;
}

.drama-mcprog-card {
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  padding: 16px;
  background: #fff;
  font-size: 14px;
  line-height: 1.7;
}

.drama-mcprog-card-name {
  font-size: 17px;
  font-weight: 800;
  color: #111827;
}

.drama-mcprog-meta-label {
  font-weight: 700;
  color: #111827;
}

.drama-mcprog-bar {
  width: 100%;
  height: 14px;
  background: #f3f4f6;
  border-radius: 999px;
  overflow: hidden;
}

/* ----- CFT ブロック互換エイリアス（Phase 3L-4 A-3） ----- */
.drama-cft-wrap {
  display: block;
  width: 100%;
  margin: 0 0 28px 0;
  text-align: center;
  line-height: 1.8;
}

.drama-cft-block {
  width: 100%;
  margin: 0 0 24px 0;
  text-align: center;
  clear: both;
}

.drama-cft-meta-line {
  display: block;
  width: 100%;
  text-align: center;
}

.drama-cft-image img,
.drama-cft-image iframe,
.drama-cft-image video,
.drama-cft-image svg {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}

.drama-cft-youtube {
  margin: 0 0 24px 0;
  text-align: center;
}

.drama-cft-youtube-embed {
  position: relative;
  width: 100%;
  max-width: 800px;
  padding-bottom: 56.25%;
  margin: 0 auto;
  overflow: hidden;
  background: #000;
}

/* =========================================
   Phase 3L (A-3) ここまで
========================================= */


ins.adsbygoogle[data-ad-status="unfilled"] { display: none !important; }


html {
    scrollbar-gutter: stable;
}    