/*
 * =============================================================================
 * コソ練 WordPress「追加 CSS」用・1ファイル全部入り（コピペ用）
 * =============================================================================
 * 使い方 A: 外観 → カスタマイズ → 追加 CSS に、このファイルの中身をまるごと貼る。
 * 使い方 B: 子テーマ `assets/kosoren-site-bundle.css` にこのファイルと同内容を置き、
 *           `wordpress/snippets/kosoren-wp-optimizations-v1.php` を有効化（詳細は同 README）。
 *
 * 【重要】本番ですでに長い追加 CSS がある場合は重複に注意（docs/css-bundle-and-wordpress.md）。
 * =============================================================================
 */



/* ########## BEGIN: css/kosoren-ui-base.css ########## */

:root {
  --ksla-blue: #5b9bea;
  --ksla-blue-2: #397fdd;
  --ksla-blue-dark: #2f5f93;
  --ksla-blue-soft: #eef6ff;
  --ksla-coral: #e94f3d;
  --ksla-coral-hover: #d94333;
  --ksla-coral-dark: #c73d2e;
  --ksla-coral-soft: #fff0ec;
  --ksla-pink: #d94f86;
  --ksla-pink-soft: #fff0f6;
  --ksla-pink-dark: #a63a68;
  --ksla-aqua: #25aebf;
  --ksla-aqua-soft: #e9fbff;
  --ksla-aqua-dark: #1a6f7c;
  --ksla-text: #24324a;
  --ksla-muted: #66758a;
  --ksla-border: #dbe7f5;
  --ksla-focus: #ffd15c;
  --ksla-bg: #f7faff;
  --ksla-bg-soft: #eef6ff;
  --ksla-white: #ffffff;
  --ksla-radius-sm: 14px;
  --ksla-radius-md: 20px;
  --ksla-radius-lg: 28px;
  --ksla-radius-xl: 34px;
  --ksla-radius-pill: 999px;
  --ksla-pill: 999px;
  --ksla-shadow-soft: 0 10px 28px rgba(36, 50, 74, 0.08);
  --ksla-shadow: 0 18px 46px rgba(36, 50, 74, 0.13);
  --ksla-container-max: 1120px;
  --ksla-container-pad-inline: 40px;
  --ksla-section-pad-y: 78px;
  --ksla-section-head-gap: 34px;
  --ksla-grid-gap: 22px;
  --ksla-bottom-grid-gap: 34px;
  --ksla-card-pad: 30px;
  --ksla-card-radius: 28px;
  /* 旧追加 CSS（kosoren-additional-css-full）互換・フォームヒント等 */
  --kso-bg: #ffffff;
  --kso-bg-soft: var(--ksla-bg-soft);
  --kso-white: #ffffff;
  --kso-card: #ffffff;
  --kso-text: var(--ksla-text);
  --kso-text-sub: var(--ksla-muted);
  --kso-border: var(--ksla-border);
  --kso-main: var(--ksla-blue);
  --kso-main-dark: var(--ksla-blue-dark);
  --kso-main-text: var(--ksla-blue-dark);
  --kso-main-soft: var(--ksla-blue-soft);
  --kso-accent: var(--ksla-coral);
  --kso-accent-dark: var(--ksla-coral-hover);
  --kso-accent-soft: var(--ksla-coral-soft);
  --kso-nail: var(--ksla-pink);
  --kso-nail-dark: var(--ksla-pink-dark);
  --kso-nail-soft: var(--ksla-pink-soft);
  --kso-voice: var(--ksla-aqua);
  --kso-voice-dark: var(--ksla-aqua-dark);
  --kso-voice-soft: var(--ksla-aqua-soft);
  --kso-focus: var(--ksla-focus);
}

html,
body {
  overflow-x: hidden;
}

:where(a, button, summary, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid var(--ksla-focus);
  outline-offset: 3px;
}

.ksla-home,
.ksla-page {
  width: 100%;
  overflow-x: hidden;
  color: var(--ksla-text);
  background:
    radial-gradient(circle at 84% 8%, rgba(255, 226, 166, 0.14), transparent 34%),
    radial-gradient(circle at 14% 12%, rgba(221, 209, 255, 0.12), transparent 32%),
    radial-gradient(circle at 8% 82%, rgba(199, 237, 255, 0.12), transparent 34%),
    radial-gradient(circle at 88% 88%, rgba(255, 210, 222, 0.12), transparent 36%),
    linear-gradient(135deg, #ffffff 0%, #fffefd 52%, #fffaf4 100%);
  font-family:
    "BIZ UDPGothic",
    -apple-system,
    BlinkMacSystemFont,
    "Hiragino Sans",
    "Yu Gothic",
    "YuGothic",
    "Noto Sans JP",
    "Meiryo",
    sans-serif;
  font-size: 16px;
  line-height: 1.8;
  letter-spacing: 0.01em;
  -webkit-font-smoothing: antialiased;
}

.ksla-home *,
.ksla-home *::before,
.ksla-home *::after,
.ksla-page *,
.ksla-page *::before,
.ksla-page *::after {
  box-sizing: border-box;
}

.ksla-home :where(h1, h2, h3, h4, h5, h6),
.ksla-page :where(h1, h2, h3, h4, h5, h6),
.ksla-home :where(p, ul, li),
.ksla-page :where(p, ul, li) {
  margin: 0;
  padding: 0;
}

.ksla-home ul,
.ksla-page ul {
  list-style: none;
}

.ksla-home a,
.ksla-page a {
  color: inherit;
  text-decoration: none;
}

.ksla-container {
  width: min(var(--ksla-container-max), calc(100% - var(--ksla-container-pad-inline)));
  margin-inline: auto;
}

.ksla-section {
  padding: var(--ksla-section-pad-y) 0;
}

.ksla-section-head {
  margin-bottom: var(--ksla-section-head-gap);
}

.ksla-section-head h2,
.ksla-section-row h2 {
  color: var(--ksla-text);
  font-size: clamp(28px, 3.4vw, 38px);
  line-height: 1.42;
  letter-spacing: -0.015em;
}

.ksla-section-lead {
  max-width: 42em;
  margin-top: 14px;
  color: var(--ksla-muted);
  font-size: 15px;
  line-height: 1.85;
}

.ksla-section-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 28px;
}

.ksla-more-link {
  color: var(--ksla-blue-2);
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
}

.ksla-btn {
  display: inline-flex;
  min-height: 56px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 28px;
  border-radius: var(--ksla-radius-pill);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.3;
  transition:
    transform 0.18s ease,
    box-shadow 0.18s ease,
    background-color 0.18s ease,
    border-color 0.18s ease;
}

.ksla-btn-primary {
  background: var(--ksla-coral);
  color: #ffffff;
  box-shadow: 0 14px 34px rgba(233, 79, 61, 0.28);
}

.ksla-btn-secondary {
  border: 1px solid rgba(219, 231, 245, 0.95);
  background: rgba(255, 255, 255, 0.72);
  color: var(--ksla-text);
  box-shadow: 0 10px 24px rgba(36, 50, 74, 0.08);
}

.ksla-course-grid,
.ksla-price-grid,
.ksla-bottom-grid {
  display: grid;
  gap: var(--ksla-grid-gap);
}

.ksla-course-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ksla-price-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  max-width: 980px;
  margin-inline: auto;
}

.ksla-price-grid-four {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  max-width: 1120px;
}

.ksla-bottom-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  gap: var(--ksla-bottom-grid-gap);
}

.ksla-course-card,
.ksla-price-card,
.ksla-faq-mini,
.ksla-final-cta,
.ksla-cpt-card,
.ksla-trust-card,
.ksla-inline-cta,
.ksla-preview-block {
  background: rgba(255, 255, 255, 0.94);
}

.ksla-course-card {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--ksla-border);
  border-radius: 24px;
  box-shadow: var(--ksla-shadow-soft);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.ksla-course-content {
  position: relative;
  z-index: 1;
  padding: 30px;
}

.ksla-course-label {
  margin-bottom: 8px;
  font-size: 20px;
  font-weight: 700;
}

.ksla-course-content h3 {
  margin-bottom: 10px;
  font-size: 19px;
  line-height: 1.55;
}

.ksla-course-content p {
  margin-bottom: 18px;
  color: #34445f;
  font-size: 13.5px;
  line-height: 1.75;
}

.ksla-course-button,
.ksla-price-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--ksla-radius-pill);
  font-weight: 700;
}

.ksla-course-button {
  min-height: 38px;
  padding: 9px 18px;
  font-size: 13px;
}

.ksla-price-card {
  position: relative;
  padding: 34px 22px 28px;
  border: 1px solid var(--ksla-border);
  border-radius: 30px;
  box-shadow: var(--ksla-shadow-soft);
  text-align: center;
}

.ksla-price-card-main {
  border: 2px solid var(--ksla-coral);
  transform: translateY(-8px);
  box-shadow: var(--ksla-shadow);
}

.ksla-price-card h3 {
  margin-bottom: 22px;
  font-size: 19px;
  line-height: 1.45;
}

.ksla-price {
  margin-bottom: 20px;
}

.ksla-price span {
  display: block;
  color: var(--ksla-muted);
  font-size: 13px;
}

.ksla-price strong {
  color: var(--ksla-text);
  font-size: clamp(32px, 3.2vw, 38px);
  font-weight: 800;
  letter-spacing: -0.04em;
}

.ksla-price small {
  margin-left: 4px;
  color: var(--ksla-muted);
  font-size: 12px;
}

.ksla-price-card ul {
  display: grid;
  gap: 10px;
  min-height: 100px;
  margin-bottom: 26px;
  text-align: left;
}

.ksla-price-card li {
  position: relative;
  padding-left: 24px;
  font-size: 13.5px;
  line-height: 1.7;
}

.ksla-price-card li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--ksla-blue-2);
  font-weight: 800;
}

.ksla-price-button {
  width: 100%;
  min-height: 48px;
  color: #ffffff;
  font-size: 14px;
}

.ksla-faq-mini,
.ksla-final-cta,
.ksla-preview-block,
.ksla-inline-cta,
.ksla-trust-card {
  padding: var(--ksla-card-pad);
  border: 1px solid var(--ksla-border);
  border-radius: var(--ksla-card-radius);
  box-shadow: var(--ksla-shadow-soft);
}

.ksla-faq-mini details {
  border-bottom: 1px solid var(--ksla-border);
}

.ksla-faq-mini details:last-child {
  border-bottom: 0;
}

.ksla-faq-mini summary {
  padding: 15px 0;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.65;
  cursor: pointer;
}

.ksla-faq-mini p {
  padding-bottom: 15px;
  color: var(--ksla-muted);
  font-size: 13px;
}

.ksla-final-cta {
  text-align: center;
}

.ksla-final-points {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px 18px;
  margin: 22px 0 24px;
  font-size: 13px;
}

.ksla-final-link {
  display: inline-flex;
  margin-top: 14px;
  color: var(--ksla-blue-2);
  font-size: 13px;
  font-weight: 700;
}

.ksla-cpt-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(214px, 1fr));
  gap: 18px;
}

.ksla-cpt-card {
  overflow: hidden;
  border: 1px solid var(--ksla-border);
  border-radius: 18px;
  box-shadow: var(--ksla-shadow-soft);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.ksla-cpt-thumb {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--ksla-bg-soft);
}

.ksla-cpt-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ksla-cpt-badge-wrap {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 2;
  display: flex;
  gap: 6px;
}

.ksla-cpt-badge,
.ksla-cpt-time {
  display: inline-flex;
  min-height: 22px;
  align-items: center;
  padding: 3px 8px;
  border-radius: 7px;
  color: #ffffff;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.3;
}

.ksla-cpt-time {
  position: absolute;
  right: 10px;
  bottom: 10px;
  z-index: 2;
  background: rgba(31, 47, 74, 0.84);
}

.ksla-cpt-play {
  position: absolute;
  inset: 0;
  display: grid;
  width: 34px;
  height: 34px;
  margin: auto;
  place-items: center;
  border: 1.5px solid rgba(31, 47, 74, 0.45);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.86);
  color: var(--ksla-blue-2);
  font-size: 12px;
  line-height: 1;
  box-shadow: 0 6px 16px rgba(36, 50, 74, 0.12);
}

.ksla-cpt-body {
  padding: 14px;
}

.ksla-cpt-title {
  margin-bottom: 6px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.55;
}

.ksla-cpt-desc {
  color: var(--ksla-muted);
  font-size: 12px;
  line-height: 1.6;
}

@media (min-width: 768px) {
  :root {
    --ksla-container-pad-inline: 52px;
    --ksla-section-pad-y: 82px;
    --ksla-section-head-gap: 38px;
    --ksla-grid-gap: 24px;
    --ksla-bottom-grid-gap: 36px;
    --ksla-card-pad: 32px;
    --ksla-card-radius: 30px;
  }
}

@media (min-width: 992px) {
  :root {
    --ksla-container-max: 1160px;
    --ksla-container-pad-inline: 64px;
    --ksla-section-pad-y: 96px;
    --ksla-section-head-gap: 42px;
    --ksla-grid-gap: 26px;
    --ksla-bottom-grid-gap: 40px;
    --ksla-card-pad: 34px;
    --ksla-card-radius: 32px;
  }
}

@media (max-width: 1080px) {
  .ksla-price-grid-four {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 760px;
  }

  .ksla-price-card-main {
    transform: none;
  }
}

@media (max-width: 767px) {
  .ksla-home,
  .ksla-page {
    font-size: 15px;
  }

  .ksla-container {
    width: min(calc(100% - 28px), var(--ksla-container-max));
  }

  .ksla-section {
    padding: 56px 0;
  }

  .ksla-section-head {
    margin-bottom: 28px;
  }

  .ksla-section-head h2,
  .ksla-section-row h2 {
    font-size: clamp(24px, 7vw, 32px);
  }

  .ksla-section-row {
    display: grid;
    gap: 12px;
    align-items: flex-start;
  }

  .ksla-btn {
    min-height: 54px;
    padding: 13px 22px;
    font-size: 14px;
    text-align: center;
    white-space: normal;
  }

  .ksla-course-grid,
  .ksla-price-grid,
  .ksla-price-grid-four,
  .ksla-bottom-grid {
    grid-template-columns: 1fr;
  }

  .ksla-price-grid,
  .ksla-price-grid-four {
    max-width: 430px;
  }

  .ksla-price-card-main {
    order: -1;
    transform: none;
  }

  .ksla-faq-mini,
  .ksla-final-cta,
  .ksla-preview-block,
  .ksla-inline-cta,
  .ksla-trust-card {
    padding: 20px;
    border-radius: 22px;
  }

  .ksla-final-points {
    flex-direction: column;
    gap: 6px;
  }
}


/* ########## END: css/kosoren-ui-base.css ########## */


/* ########## BEGIN: css/kosoren-wp-theme-shell.css ########## */

/*
  WordPress / Lightning まわりの共有レイヤー（テーマ枠）
  元: kosoren-additional-css-full.css のセクション 1,2,4,5,7(フッターのみ),8
  Depends on: kosoren-ui-base.css（:root の --kso-* 含む）
  404 の見た目は kosoren-v6-404.css が後段で上書きする。
*/

/* ========================================
   1. WordPress / Lightning Reset
   ======================================== */

body.home .page-header,
body.home .breadcrumb,
body.home .vk_breadcrumb,
body.home #breadcrumb,
body.page .page-header,
body.page .breadcrumb,
body.page .vk_breadcrumb,
body.page #breadcrumb {
  display: none !important;
}

body.home .site-body,
body.home .siteContent,
body.home .site-content,
body.home .main-section,
body.home #main,
body.page .site-body,
body.page .siteContent,
body.page .site-content,
body.page .main-section,
body.page #main {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

body.home .container,
body.home .container-lg,
body.home .container-md,
body.home .container-sm,
body.page .container,
body.page .container-lg,
body.page .container-md,
body.page .container-sm {
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* 上記は本文用。フッター内の .container まで当たるとナビ・コピーが画面端に張り付くため復元 */
body.home .site-footer .container,
body.home .site-footer .container-lg,
body.home .site-footer .container-md,
body.home .site-footer .container-sm,
body.page .site-footer .container,
body.page .site-footer .container-lg,
body.page .site-footer .container-md,
body.page .site-footer .container-sm {
  width: min(1120px, calc(100% - 40px));
  max-width: 1120px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: max(20px, env(safe-area-inset-left, 0px)) !important;
  padding-right: max(20px, env(safe-area-inset-right, 0px)) !important;
  box-sizing: border-box !important;
}

body.home .entry-content,
body.home .post_content,
body.page .entry-content,
body.page .post_content {
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

html,
body {
  overflow-x: hidden;
}

:where(a, button, summary, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid var(--ksla-focus) !important;
  outline-offset: 3px !important;
}

/* Lightning: 記事タイトル周りのキーカラー装飾（青い縦線・上下の区切り線）を消す
   カスタム HTML（ksla-*）が本文の主役のページだけを :has で限定 */

body.page:has(.ksla-page) .entry-header,
body.page:has(.ksla-page) .entry-footer,
body.home:has(.ksla-home) .entry-header,
body.home:has(.ksla-home) .entry-footer {
  border: 0 !important;
  border-top: 0 !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  padding-bottom: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

body.page:has(.ksla-page) .entry-title,
body.page:has(.ksla-page) h1.entry-title,
body.home:has(.ksla-home) .entry-title,
body.home:has(.ksla-home) h1.entry-title {
  border: 0 !important;
  border-left: 0 !important;
  border-bottom: 0 !important;
  padding-left: 0 !important;
  box-shadow: none !important;
}

body.page:has(.ksla-page) .entry-title::before,
body.page:has(.ksla-page) .entry-title::after,
body.page:has(.ksla-page) h1.entry-title::before,
body.page:has(.ksla-page) h1.entry-title::after,
body.home:has(.ksla-home) .entry-title::before,
body.home:has(.ksla-home) .entry-title::after,
body.home:has(.ksla-home) h1.entry-title::before,
body.home:has(.ksla-home) h1.entry-title::after {
  display: none !important;
  content: none !important;
  border: 0 !important;
  width: 0 !important;
  height: 0 !important;
}

/* Lightning design-skin origin3 等:
   h2〜h5 に対する border-top（キーカラー）・border-bottom・::after の短い下線
   が .entry-body 内のコソ練見出しにも当たるため、ksla 本文内では無効化 */

body.page:has(.ksla-page) :where(.entry-body, .post_content) h2:not(.wp-block-post-title),
body.page:has(.ksla-page) :where(.entry-body, .post_content) h3:not(.wp-block-post-title),
body.home:has(.ksla-home) :where(.entry-body, .post_content) h2:not(.wp-block-post-title),
body.home:has(.ksla-home) :where(.entry-body, .post_content) h3:not(.wp-block-post-title),
body.single:has(.ksla-page) :where(.entry-body, .post_content) h2:not(.wp-block-post-title),
body.single:has(.ksla-page) :where(.entry-body, .post_content) h3:not(.wp-block-post-title),
body.page:has(.ksla-page) :where(.entry-body, .post_content) h4:not(.wp-block-post-title),
body.page:has(.ksla-page) :where(.entry-body, .post_content) h5:not(.wp-block-post-title),
body.home:has(.ksla-home) :where(.entry-body, .post_content) h4:not(.wp-block-post-title),
body.home:has(.ksla-home) :where(.entry-body, .post_content) h5:not(.wp-block-post-title),
body.single:has(.ksla-page) :where(.entry-body, .post_content) h4:not(.wp-block-post-title),
body.single:has(.ksla-page) :where(.entry-body, .post_content) h5:not(.wp-block-post-title) {
  border-top: 0 !important;
  border-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  background: transparent !important;
}

body.page:has(.ksla-page) :where(.entry-body, .post_content) h2:not(.wp-block-post-title)::before,
body.page:has(.ksla-page) :where(.entry-body, .post_content) h2:not(.wp-block-post-title)::after,
body.page:has(.ksla-page) :where(.entry-body, .post_content) h3:not(.wp-block-post-title)::before,
body.page:has(.ksla-page) :where(.entry-body, .post_content) h3:not(.wp-block-post-title)::after,
body.home:has(.ksla-home) :where(.entry-body, .post_content) h2:not(.wp-block-post-title)::before,
body.home:has(.ksla-home) :where(.entry-body, .post_content) h2:not(.wp-block-post-title)::after,
body.home:has(.ksla-home) :where(.entry-body, .post_content) h3:not(.wp-block-post-title)::before,
body.home:has(.ksla-home) :where(.entry-body, .post_content) h3:not(.wp-block-post-title)::after,
body.single:has(.ksla-page) :where(.entry-body, .post_content) h2:not(.wp-block-post-title)::before,
body.single:has(.ksla-page) :where(.entry-body, .post_content) h2:not(.wp-block-post-title)::after,
body.single:has(.ksla-page) :where(.entry-body, .post_content) h3:not(.wp-block-post-title)::before,
body.single:has(.ksla-page) :where(.entry-body, .post_content) h3:not(.wp-block-post-title)::after,
body.page:has(.ksla-page) :where(.entry-body, .post_content) h4:not(.wp-block-post-title)::before,
body.page:has(.ksla-page) :where(.entry-body, .post_content) h4:not(.wp-block-post-title)::after,
body.page:has(.ksla-page) :where(.entry-body, .post_content) h5:not(.wp-block-post-title)::before,
body.page:has(.ksla-page) :where(.entry-body, .post_content) h5:not(.wp-block-post-title)::after,
body.home:has(.ksla-home) :where(.entry-body, .post_content) h4:not(.wp-block-post-title)::before,
body.home:has(.ksla-home) :where(.entry-body, .post_content) h4:not(.wp-block-post-title)::after,
body.home:has(.ksla-home) :where(.entry-body, .post_content) h5:not(.wp-block-post-title)::before,
body.home:has(.ksla-home) :where(.entry-body, .post_content) h5:not(.wp-block-post-title)::after,
body.single:has(.ksla-page) :where(.entry-body, .post_content) h4:not(.wp-block-post-title)::before,
body.single:has(.ksla-page) :where(.entry-body, .post_content) h4:not(.wp-block-post-title)::after,
body.single:has(.ksla-page) :where(.entry-body, .post_content) h5:not(.wp-block-post-title)::before,
body.single:has(.ksla-page) :where(.entry-body, .post_content) h5:not(.wp-block-post-title)::after {
  display: none !important;
  content: none !important;
  border: 0 !important;
  width: 0 !important;
  height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}

body.page:has(.ksla-page) :where(.entry-body, .post_content) .sub-section-title,
body.home:has(.ksla-home) :where(.entry-body, .post_content) .sub-section-title,
body.single:has(.ksla-page) :where(.entry-body, .post_content) .sub-section-title {
  border-bottom: 0 !important;
  padding-bottom: 0 !important;
}

body.page:has(.ksla-page) :where(.entry-body, .post_content) .sub-section-title::after,
body.home:has(.ksla-home) :where(.entry-body, .post_content) .sub-section-title::after,
body.single:has(.ksla-page) :where(.entry-body, .post_content) .sub-section-title::after {
  display: none !important;
  content: none !important;
  border: 0 !important;
  width: 0 !important;
  height: 0 !important;
}

/* 固定ページタイトル用クラス（Lightning が付与する場合） */
body.page:has(.ksla-page) .entry-title--post-type--page,
body.single:has(.ksla-page) .entry-title--post-type--page {
  border-top: 0 !important;
  border-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* テーマ標準のページ見出しブロック（本文の上に残ることがある） */
body.page:has(.ksla-page) .page-header,
body.home:has(.ksla-home) .page-header {
  display: none !important;
  height: 0 !important;
  max-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  visibility: hidden !important;
}

/* ========================================
   2. Header / Nav
   ======================================== */

.kosoren-header-auth-actions {
  display: none;
}

@media (max-width: 991px) {
  .kosoren-header-auth-actions {
    position: fixed;
    top: 8px;
    right: 70px;
    z-index: 10020;
    display: flex;
    align-items: center;
  }

  body.admin-bar .kosoren-header-auth-actions {
    top: 54px;
  }

  .kosoren-header-auth-btn,
  .kosoren-header-auth-btn--register {
    display: inline-flex;
    min-height: 32px;
    align-items: center;
    justify-content: center;
    padding: 7px 13px;
    border: 1px solid var(--ksla-coral) !important;
    border-radius: 999px;
    background: var(--ksla-coral) !important;
    color: #ffffff !important;
    font-size: 12px;
    font-weight: 900 !important;
    line-height: 1;
    text-decoration: none !important;
    white-space: nowrap;
    box-shadow: 0 8px 20px rgba(233, 79, 61, 0.22);
  }

  .vk-mobile-nav-menu-btn {
    position: fixed !important;
    top: 8px !important;
    right: 14px !important;
    z-index: 10030 !important;
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    padding: 0 !important;
    border: 2px solid #171411 !important;
    border-radius: 14px !important;
    background:
      linear-gradient(#171411, #171411) center calc(50% - 7px) / 20px 2px no-repeat,
      linear-gradient(#171411, #171411) center center / 20px 2px no-repeat,
      linear-gradient(#171411, #171411) center calc(50% + 7px) / 20px 2px no-repeat,
      #fffdf9 !important;
    color: transparent !important;
    font-size: 0 !important;
    text-indent: -9999px !important;
    overflow: hidden !important;
    box-shadow: 3px 3px 0 #171411 !important;
  }

  body.admin-bar .vk-mobile-nav-menu-btn {
    top: 54px !important;
  }

  .vk-mobile-nav-menu-btn::before,
  .vk-mobile-nav-menu-btn::after,
  .vk-mobile-nav-menu-btn span,
  .vk-mobile-nav-menu-btn span::before,
  .vk-mobile-nav-menu-btn span::after,
  .vk-mobile-nav-menu-btn i {
    display: none !important;
    content: none !important;
  }

  .vk-mobile-nav,
  .vk-mobile-nav nav,
  .vk-mobile-nav-menu,
  .mobile-nav,
  .global-nav--mobile {
    background: #fffdf9 !important;
  }

  .vk-mobile-nav {
    border-top: 2px solid #171411 !important;
    box-shadow: 0 18px 42px rgba(23, 20, 17, 0.12) !important;
  }

  .vk-mobile-nav .menu,
  .vk-mobile-nav ul,
  .mobile-nav ul {
    padding: 14px !important;
    background: #fffdf9 !important;
  }

  .vk-mobile-nav li,
  .mobile-nav li {
    position: relative;
    margin: 0 0 8px !important;
    border: 0 !important;
  }

  .vk-mobile-nav a,
  .mobile-nav a {
    display: flex !important;
    min-height: 46px;
    align-items: center;
    padding: 12px 14px !important;
    border: 2px solid #171411 !important;
    border-radius: 14px !important;
    background: #fffdf9 !important;
    color: #171411 !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    text-decoration: none !important;
    box-shadow: 3px 3px 0 #171411;
  }

  .vk-mobile-nav li.menu-item-has-children > a[href*="/courses"]:not([href*="/courses/nail"]):not([href*="/courses/voice"])::after,
  .mobile-nav li.menu-item-has-children > a[href*="/courses"]:not([href*="/courses/nail"]):not([href*="/courses/voice"])::after {
    content: none !important;
  }

  .vk-mobile-nav li.menu-item-has-children > a[href*="/courses"]:not([href*="/courses/nail"]):not([href*="/courses/voice"]) + .vk-menu-acc-btn,
  .mobile-nav li.menu-item-has-children > a[href*="/courses"]:not([href*="/courses/nail"]):not([href*="/courses/voice"]) + .vk-menu-acc-btn,
  .vk-mobile-nav li.menu-item-has-children > a[href*="/courses"]:not([href*="/courses/nail"]):not([href*="/courses/voice"]) + .acc-btn,
  .mobile-nav li.menu-item-has-children > a[href*="/courses"]:not([href*="/courses/nail"]):not([href*="/courses/voice"]) + .acc-btn {
    position: absolute;
    right: 12px;
    top: 23px;
    transform: translateY(-50%);
    z-index: 2;
    display: grid !important;
    place-items: center;
    width: 26px !important;
    min-width: 26px !important;
    height: 26px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 2px solid #171411 !important;
    border-radius: 999px !important;
    background: #fffdf9 !important;
    color: #171411 !important;
    box-shadow: 2px 2px 0 #171411;
    font-size: 0 !important;
    background-image: none !important;
    overflow: hidden;
  }

  .vk-mobile-nav li.menu-item-has-children > a[href*="/courses"]:not([href*="/courses/nail"]):not([href*="/courses/voice"]),
  .mobile-nav li.menu-item-has-children > a[href*="/courses"]:not([href*="/courses/nail"]):not([href*="/courses/voice"]) {
    padding-right: 48px !important;
  }

  .vk-mobile-nav li.menu-item-has-children > a[href*="/courses"]:not([href*="/courses/nail"]):not([href*="/courses/voice"]) + .vk-menu-acc-btn::before,
  .mobile-nav li.menu-item-has-children > a[href*="/courses"]:not([href*="/courses/nail"]):not([href*="/courses/voice"]) + .vk-menu-acc-btn::before,
  .vk-mobile-nav li.menu-item-has-children > a[href*="/courses"]:not([href*="/courses/nail"]):not([href*="/courses/voice"]) + .acc-btn::before,
  .mobile-nav li.menu-item-has-children > a[href*="/courses"]:not([href*="/courses/nail"]):not([href*="/courses/voice"]) + .acc-btn::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 8px;
    height: 8px;
    border-right: 2px solid #171411;
    border-bottom: 2px solid #171411;
    transform: translate(-50%, -60%) rotate(45deg);
    transition: transform 0.2s ease;
  }

  .vk-mobile-nav li.menu-item-has-children > a[href*="/courses"]:not([href*="/courses/nail"]):not([href*="/courses/voice"]) + .vk-menu-acc-btn[aria-expanded="true"]::before,
  .mobile-nav li.menu-item-has-children > a[href*="/courses"]:not([href*="/courses/nail"]):not([href*="/courses/voice"]) + .vk-menu-acc-btn[aria-expanded="true"]::before,
  .vk-mobile-nav li.menu-item-has-children > a[href*="/courses"]:not([href*="/courses/nail"]):not([href*="/courses/voice"]) + .acc-btn[aria-expanded="true"]::before,
  .mobile-nav li.menu-item-has-children > a[href*="/courses"]:not([href*="/courses/nail"]):not([href*="/courses/voice"]) + .acc-btn[aria-expanded="true"]::before {
    transform: translate(-50%, -40%) rotate(-135deg);
  }

  .vk-mobile-nav a:hover,
  .mobile-nav a:hover {
    background: #ffe3d8 !important;
    color: #171411 !important;
  }

  .vk-mobile-nav .sub-menu,
  .mobile-nav .sub-menu {
    margin: 0 !important;
    padding: 8px 0 0 12px !important;
    background: transparent !important;
  }

  .vk-mobile-nav .sub-menu a[href*="/courses/nail/"]::before,
  .mobile-nav .sub-menu a[href*="/courses/nail/"]::before {
    content: none;
  }

  .vk-mobile-nav .sub-menu a[href*="/courses/voice/"]::before,
  .mobile-nav .sub-menu a[href*="/courses/voice/"]::before {
    content: none;
  }

  .vk-mobile-nav a[href*="/login/"],
  .vk-mobile-nav a[href*="/account/"],
  .mobile-nav a[href*="/login/"],
  .mobile-nav a[href*="/account/"] {
    background: #eaf8ff !important;
    color: #171411 !important;
  }

  .vk-mobile-nav a[href*="/register/"],
  .mobile-nav a[href*="/register/"] {
    justify-content: center;
    border-color: #171411 !important;
    background: #f8662f !important;
    color: #fffdf9 !important;
    box-shadow: 4px 4px 0 #171411;
  }
}

@media (min-width: 992px) {
  .global-nav .sub-menu,
  .site-header .sub-menu,
  .header_scrolled .sub-menu,
  .vk-menu-acc .sub-menu {
    min-width: 220px !important;
    padding: 10px !important;
    border: 1px solid rgba(219, 231, 245, 0.9) !important;
    border-radius: 18px !important;
    background: rgba(255, 255, 255, 0.96) !important;
    box-shadow: 0 18px 42px rgba(36, 50, 74, 0.14) !important;
    backdrop-filter: blur(10px);
  }

  .global-nav .sub-menu li,
  .site-header .sub-menu li,
  .header_scrolled .sub-menu li,
  .vk-menu-acc .sub-menu li {
    margin: 0 0 8px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
  }

  .global-nav .sub-menu a,
  .site-header .sub-menu a,
  .header_scrolled .sub-menu a,
  .vk-menu-acc .sub-menu a {
    display: flex !important;
    min-height: 46px !important;
    align-items: center !important;
    padding: 11px 13px !important;
    border: 1px solid rgba(219, 231, 245, 0.88) !important;
    border-radius: 14px !important;
    background: #ffffff !important;
    color: var(--ksla-text) !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    text-decoration: none !important;
    box-shadow: 0 6px 16px rgba(36, 50, 74, 0.04) !important;
  }

  .global-nav .sub-menu a:hover,
  .site-header .sub-menu a:hover,
  .header_scrolled .sub-menu a:hover,
  .vk-menu-acc .sub-menu a:hover {
    border-color: rgba(57, 127, 221, 0.22) !important;
    background: #f8fbff !important;
    color: var(--ksla-blue-2) !important;
    transform: translateY(-1px);
    box-shadow: 0 8px 20px rgba(36, 50, 74, 0.08) !important;
  }

  .global-nav .sub-menu a::after,
  .site-header .sub-menu a::after,
  .header_scrolled .sub-menu a::after,
  .vk-menu-acc .sub-menu a::after {
    display: none !important;
    content: none !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  .global-nav .sub-menu a[href*="/courses/nail/"]::before,
  .site-header .sub-menu a[href*="/courses/nail/"]::before,
  .header_scrolled .sub-menu a[href*="/courses/nail/"]::before,
  .vk-menu-acc .sub-menu a[href*="/courses/nail/"]::before {
    content: none !important;
    display: none !important;
  }

  .global-nav .sub-menu a[href*="/courses/voice/"]::before,
  .site-header .sub-menu a[href*="/courses/voice/"]::before,
  .header_scrolled .sub-menu a[href*="/courses/voice/"]::before,
  .vk-menu-acc .sub-menu a[href*="/courses/voice/"]::before {
    content: none !important;
    display: none !important;
  }

  body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-header .sub-menu,
  body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .global-nav .sub-menu {
    border: 2px solid #171411 !important;
    background: #fffdf9 !important;
    box-shadow: 4px 4px 0 #171411 !important;
  }

  body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-header .sub-menu a,
  body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .global-nav .sub-menu a {
    border: 2px solid #171411 !important;
    background: #fffdf9 !important;
    color: #171411 !important;
    box-shadow: 2px 2px 0 #171411 !important;
  }

  body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-header .sub-menu a:hover,
  body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .global-nav .sub-menu a:hover {
    background: #ffe3d8 !important;
    color: #171411 !important;
  }
}

/* ========================================
   4. Auth / Forms
   ======================================== */

.kosoren-field-hint {
  display: block;
  width: 100%;
  margin: 8px 0 18px !important;
  padding: 0 2px;
  color: #667085;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.65;
}

.kosoren-plan-hint {
  margin: 4px 0 14px !important;
  padding: 12px 14px;
  border-radius: 12px;
  background: var(--kso-main-soft);
  color: var(--kso-main);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.7;
}

.ksla-auth-card {
  width: min(720px, 100%);
  margin-inline: auto;
  padding: 30px;
  border: 1px solid var(--ksla-border);
  border-radius: 30px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: var(--ksla-shadow-soft);
}

.ksla-login-card,
.ksla-password-card,
.ksla-register-card,
.ksla-account-pms-card,
.ksla-contact-form-card {
  width: min(720px, 100%);
  margin-inline: auto;
}

.ksla-register-card-head,
.ksla-contact-form-card-head {
  margin-bottom: 20px;
  text-align: center;
}

.ksla-register-card-head h2,
.ksla-contact-form-card-head h2 {
  margin-bottom: 8px !important;
  color: var(--ksla-text) !important;
  font-size: 24px !important;
  line-height: 1.4 !important;
}

.ksla-register-card-head p,
.ksla-contact-form-card-head p {
  color: var(--ksla-muted);
  font-size: 14px;
  line-height: 1.75;
}

.ksla-login-form,
.ksla-password-form,
.ksla-register-form,
.ksla-contact-form,
.ksla-account-pms-card,
.ksla-pms-register {
  color: var(--ksla-text);
}

.ksla-login-form .pms-form,
.ksla-password-form .pms-form,
.ksla-register-form .pms-form,
.ksla-account-pms-card .pms-form,
.ksla-pms-register .pms-form,
.ksla-login-form form,
.ksla-password-form form,
.ksla-register-form form,
.ksla-contact-form form,
.ksla-account-pms-card form,
.ksla-pms-register form {
  display: grid;
  max-width: 100% !important;
  gap: 16px;
  box-sizing: border-box !important;
}

.ksla-register-form fieldset,
.ksla-login-form fieldset,
.ksla-password-form fieldset,
.ksla-account-pms-card fieldset,
.ksla-pms-register fieldset {
  margin: 0 0 18px !important;
  padding: 0 !important;
  border: 0 !important;
}

.ksla-register-form legend,
.ksla-login-form legend,
.ksla-password-form legend,
.ksla-account-pms-card legend,
.ksla-pms-register legend {
  margin-bottom: 14px !important;
  color: var(--ksla-text) !important;
  font-size: 17px !important;
  font-weight: 800 !important;
  line-height: 1.5 !important;
}

/* PMS recover form default help paragraph is redundant with page copy */
.ksla-password-form #pms_recover_password_form > p:first-of-type {
  display: none;
}

.ksla-register-form label,
.ksla-login-form label,
.ksla-password-form label,
.ksla-account-pms-card label,
.ksla-pms-register label,
.ksla-pms-register .pms-field label {
  display: block;
  margin-bottom: 6px;
  color: var(--ksla-text);
  font-size: 14px;
  font-weight: 800 !important;
}

.ksla-register-form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.ksla-login-form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.ksla-password-form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.ksla-account-pms-card input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.ksla-pms-register input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.ksla-register-form select,
.ksla-register-form textarea,
.ksla-login-form select,
.ksla-password-form select,
.ksla-account-pms-card select,
.ksla-account-pms-card textarea,
.ksla-pms-register select,
.ksla-pms-register textarea,
.ksla-contact-form input,
.ksla-contact-form textarea,
.ksla-contact-form select {
  width: 100% !important;
  max-width: 100% !important;
  min-height: 50px;
  padding: 12px 14px !important;
  border: 1px solid var(--ksla-border) !important;
  border-radius: 14px !important;
  background: #f8fbff !important;
  color: var(--ksla-text) !important;
  font-size: 16px !important;
  line-height: 1.5;
  box-shadow: none !important;
}

.ksla-contact-form textarea {
  min-height: 160px;
  resize: vertical;
}

.ksla-login-form input[type="checkbox"],
.ksla-login-form input[type="radio"],
.ksla-register-form input[type="checkbox"],
.ksla-register-form input[type="radio"],
.ksla-password-form input[type="checkbox"],
.ksla-password-form input[type="radio"],
.ksla-account-pms-card input[type="checkbox"],
.ksla-account-pms-card input[type="radio"],
.ksla-pms-register input[type="checkbox"],
.ksla-pms-register input[type="radio"],
.pms-form input[type="checkbox"],
.pms-form input[type="radio"] {
  display: inline-block !important;
  width: auto !important;
  min-width: 18px !important;
  max-width: 18px !important;
  height: auto !important;
  min-height: 18px !important;
  max-height: 18px !important;
  margin: 0 8px 0 0 !important;
  padding: 0 !important;
  border-radius: 4px !important;
  accent-color: var(--ksla-coral);
  vertical-align: middle !important;
  box-shadow: none !important;
  flex: 0 0 auto !important;
}

.ksla-login-form .login-remember,
.ksla-login-form .pms-remember-me,
.ksla-login-form .pms-field.pms-field-remember,
.ksla-login-form .pms-field.pms-field-checkbox,
.ksla-login-form p:has(input[type="checkbox"]),
.ksla-login-form label:has(input[type="checkbox"]) {
  display: flex !important;
  align-items: center !important;
  gap: 8px;
  width: 100%;
  margin: 4px 0 8px !important;
  padding: 0 !important;
  color: var(--ksla-muted) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  line-height: 1.6 !important;
}

.ksla-login-form p.login-extra {
  display: flex !important;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin: 12px 0 0 !important;
  font-size: 0;
  line-height: 1;
}

.ksla-login-form p.login-extra a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 8px 14px;
  border: 2px solid var(--ksla-border);
  border-radius: 999px;
  background: #ffffff;
  color: var(--ksla-blue-2) !important;
  font-size: 12.5px;
  font-weight: 800;
  line-height: 1.2;
  text-decoration: none;
}

.ksla-login-form p.login-extra a:hover,
.ksla-login-form p.login-extra a:focus-visible {
  border-color: var(--ksla-blue-2);
  box-shadow: 0 0 0 3px rgba(57, 127, 221, 0.15);
  outline: none;
}

.ksla-register-form input:focus,
.ksla-register-form select:focus,
.ksla-register-form textarea:focus,
.ksla-login-form input:focus,
.ksla-login-form select:focus,
.ksla-password-form input:focus,
.ksla-password-form select:focus,
.ksla-account-pms-card input:focus,
.ksla-account-pms-card select:focus,
.ksla-account-pms-card textarea:focus,
.ksla-pms-register input:focus,
.ksla-pms-register select:focus,
.ksla-pms-register textarea:focus,
.ksla-contact-form input:focus,
.ksla-contact-form textarea:focus,
.ksla-contact-form select:focus {
  border-color: var(--ksla-blue-2) !important;
  background: #ffffff !important;
  box-shadow: 0 0 0 4px rgba(57, 127, 221, 0.12) !important;
  outline: none !important;
}

.ksla-register-form .pms-subscription-plans,
.ksla-register-form .pms-subscription-plan-list,
.ksla-pms-register .pms-subscription-plans,
.ksla-pms-register .pms-subscription-plan-list {
  display: grid;
  gap: 10px;
}

.ksla-register-form .pms-subscription-plan,
.ksla-pms-register .pms-subscription-plan {
  position: relative;
  margin: 0 0 10px !important;
  padding: 14px 14px 14px 46px !important;
  border: 1px solid var(--ksla-border) !important;
  border-radius: 18px !important;
  background: rgba(255, 255, 255, 0.96) !important;
  box-shadow: 0 6px 18px rgba(36, 50, 74, 0.05);
  cursor: pointer;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease, transform 0.18s ease;
}

.ksla-register-form .pms-subscription-plan:hover,
.ksla-pms-register .pms-subscription-plan:hover {
  border-color: var(--ksla-blue-2) !important;
  background: #f8fbff !important;
  box-shadow: var(--ksla-shadow-soft);
  transform: translateY(-1px);
}

.ksla-register-form .pms-subscription-plan input[type="radio"],
.ksla-register-form .pms-subscription-plan input[type="checkbox"],
.ksla-pms-register .pms-subscription-plan input[type="radio"],
.ksla-pms-register .pms-subscription-plan input[type="checkbox"] {
  position: absolute;
  top: 17px;
  left: 16px;
  width: 18px !important;
  height: 18px !important;
  accent-color: var(--ksla-coral);
}

.ksla-register-form .pms-subscription-plan:has(input:checked),
.ksla-pms-register .pms-subscription-plan:has(input:checked) {
  border-color: var(--ksla-coral) !important;
  background: var(--ksla-coral-soft) !important;
  box-shadow: 0 12px 28px rgba(233, 79, 61, 0.13);
}

.ksla-register-form input[type="submit"],
.ksla-register-form button[type="submit"],
.ksla-register-form .pms-submit,
.ksla-login-form input[type="submit"],
.ksla-login-form button[type="submit"],
.ksla-login-form .pms-submit,
.ksla-password-form input[type="submit"],
.ksla-password-form button[type="submit"],
.ksla-password-form .pms-submit,
.ksla-account-pms-card input[type="submit"],
.ksla-account-pms-card button[type="submit"],
.ksla-account-pms-card .pms-submit,
.ksla-pms-register input[type="submit"],
.ksla-pms-register button[type="submit"],
.ksla-pms-register .pms-submit,
.ksla-contact-form input[type="submit"],
.ksla-contact-form button[type="submit"] {
  display: inline-flex !important;
  width: 100% !important;
  min-height: 56px;
  align-items: center;
  justify-content: center;
  border: 0 !important;
  border-radius: 999px !important;
  background: var(--ksla-coral) !important;
  color: #ffffff !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  box-shadow: 0 14px 34px rgba(233, 79, 61, 0.28);
}

.ksla-contact-form .wpcf7-not-valid-tip,
.ksla-register-form .pms-field-error {
  display: block;
  margin-top: 6px;
  color: #b33b2d;
  font-size: 12.5px;
  line-height: 1.6;
}

.ksla-contact-form .wpcf7-response-output {
  margin: 16px 0 0 !important;
  padding: 12px 14px !important;
  border-radius: 14px;
  font-size: 13px;
  line-height: 1.7;
}

.ksla-register-form .pms_success,
.ksla-register-form .pms-success,
.ksla-register-form .pms_message-success,
.ksla-password-form .pms_success,
.ksla-password-form .pms-success,
.ksla-password-form .pms_message-success,
.ksla-pms-register .pms_success,
.ksla-pms-register .pms-success,
.ksla-pms-register .pms_message-success {
  margin: 14px 0 !important;
  padding: 14px 16px !important;
  border: 1px solid rgba(23, 99, 68, 0.16) !important;
  border-radius: 16px !important;
  background: #e9fbf3 !important;
  color: #176344 !important;
  font-size: 14px !important;
  line-height: 1.7;
}

.ksla-register-form .pms_error,
.ksla-register-form .pms-error,
.ksla-register-form .pms_field-errors,
.ksla-register-form .pms_message-error,
.ksla-login-form .pms_error,
.ksla-login-form .pms-error,
.ksla-login-form .pms_field-errors,
.ksla-login-form .pms_message-error,
.ksla-password-form .pms_error,
.ksla-password-form .pms-error,
.ksla-password-form .pms_field-errors,
.ksla-password-form .pms_message-error,
.ksla-pms-register .pms_error,
.ksla-pms-register .pms-error,
.ksla-pms-register .pms_field-errors,
.ksla-pms-register .pms_message-error {
  margin: 10px 0 !important;
  padding: 12px 14px !important;
  border: 1px solid rgba(179, 59, 45, 0.18) !important;
  border-radius: 14px !important;
  background: #fff0ec !important;
  color: #b33b2d !important;
  font-size: 13px !important;
  line-height: 1.7;
}

.ksla-account-pms-card table {
  width: 100%;
  border-collapse: collapse;
  overflow: hidden;
  border-radius: 18px;
  background: #ffffff;
}

.ksla-account-pms-card th,
.ksla-account-pms-card td {
  padding: 14px;
  border-bottom: 1px solid var(--ksla-border);
  color: var(--ksla-text);
  font-size: 13px;
  line-height: 1.7;
  text-align: left;
}

.ksla-account-pms-card th {
  background: var(--ksla-blue-soft);
  color: var(--ksla-blue-dark);
  font-weight: 800;
}

.ksla-account-pms-card a,
.ksla-account-pms-card .button {
  color: var(--ksla-blue-2) !important;
  font-weight: 700 !important;
}

.ksla-register-login-link {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 20px;
  color: var(--ksla-muted);
  font-size: 13px;
}

.ksla-register-login-link a {
  color: var(--ksla-blue-2) !important;
  font-weight: 700 !important;
}

.ksla-contact-layout {
  display: grid;
  grid-template-columns: minmax(280px, 0.85fr) minmax(420px, 1.15fr);
  gap: 24px;
  align-items: start;
}

/* contact は現在フォーム1カラム運用なので、カードを広く使う */
.ksla-contact-page-v6 .ksla-contact-layout {
  grid-template-columns: 1fr;
  max-width: 760px;
  margin-inline: auto;
}

.ksla-contact-page-v6 .ksla-contact-form-card {
  padding: 24px 20px;
}

.ksla-contact-page-v6 .ksla-contact-form-card-head {
  margin-bottom: 14px;
}

.ksla-contact-page-v6 .ksla-contact-form form {
  gap: 18px;
}

.ksla-contact-page-v6 .ksla-contact-form p {
  margin: 0;
}

.ksla-contact-page-v6 .ksla-contact-form input,
.ksla-contact-page-v6 .ksla-contact-form textarea,
.ksla-contact-page-v6 .ksla-contact-form select {
  padding: 14px 15px;
}

.ksla-contact-tips {
  text-align: left;
}

.ksla-contact-tips .ksla-final-points {
  justify-content: flex-start;
}

/* ========================================
   5. FAQ / Compare / Legal
   ======================================== */

.ksla-faq-layout,
.ksla-legal-layout {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 28px;
  align-items: start;
}

.ksla-faq-side,
.ksla-legal-side {
  position: sticky;
  top: 24px;
}

.ksla-faq-side-card,
.ksla-legal-side-card,
.ksla-faq-group,
.ksla-legal-block,
.ksla-legal-table-card,
.ksla-compare-table {
  border: 1px solid var(--ksla-border);
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: var(--ksla-shadow-soft);
}

.ksla-faq-side-card,
.ksla-legal-side-card {
  padding: 20px;
}

.ksla-faq-side-card h2,
.ksla-legal-side-card h2 {
  margin-bottom: 12px !important;
  color: var(--ksla-text) !important;
  font-size: 16px !important;
  line-height: 1.5 !important;
}

.ksla-faq-side-card nav,
.ksla-legal-side-card nav {
  display: grid;
  gap: 8px;
}

.ksla-faq-side-card a,
.ksla-legal-side-card a {
  display: block;
  padding: 9px 10px;
  border-radius: 12px;
  color: var(--ksla-muted) !important;
  font-size: 13px;
  font-weight: 700 !important;
  line-height: 1.45;
}

.ksla-faq-side-card a:hover,
.ksla-legal-side-card a:hover {
  background: var(--ksla-blue-soft);
  color: var(--ksla-blue-dark) !important;
}

.ksla-faq-group,
.ksla-legal-block,
.ksla-legal-table-card {
  padding: 26px;
}

.ksla-faq-main,
.ksla-legal-main {
  display: grid;
  gap: 22px;
}

.ksla-faq-group-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}

.ksla-faq-group-head span {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  border-radius: 14px;
  background: var(--ksla-coral-soft);
  color: var(--ksla-coral);
  font-size: 13px;
  font-weight: 800;
}

.ksla-faq-group-head h2,
.ksla-legal-block h2 {
  color: var(--ksla-text) !important;
  font-size: 22px !important;
  line-height: 1.5 !important;
}

.ksla-faq-list,
.ksla-price-faq-list {
  display: grid;
  gap: 10px;
}

.ksla-faq-item,
.ksla-price-faq-item {
  border: 1px solid var(--ksla-border);
  border-radius: 18px;
  background: #ffffff;
}

.ksla-faq-item summary,
.ksla-price-faq-item summary {
  padding: 16px 18px;
  color: var(--ksla-text);
  font-size: 14px;
  font-weight: 700 !important;
  cursor: pointer;
}

.ksla-faq-item div,
.ksla-price-faq-item p {
  padding: 0 18px 18px;
  color: var(--ksla-muted);
  font-size: 13.5px;
  line-height: 1.8;
}

.ksla-compare-row {
  display: grid;
  grid-template-columns: 1.1fr 0.75fr 0.95fr 0.95fr 1.4fr;
  border-bottom: 1px solid var(--ksla-border);
}

.ksla-compare-row:last-child {
  border-bottom: 0;
}

.ksla-compare-row > div {
  padding: 16px;
  color: var(--ksla-text);
  font-size: 13px;
  line-height: 1.7;
}

.ksla-compare-head {
  background: var(--ksla-blue-soft);
}

.ksla-compare-head > div {
  color: var(--ksla-blue-dark);
  font-weight: 800;
}

.ksla-compare-recommend {
  background: #fff8f5;
}

.ksla-compare-recommend span {
  display: inline-flex;
  margin-bottom: 4px;
  padding: 2px 8px;
  border-radius: var(--ksla-pill);
  background: var(--ksla-coral);
  color: #ffffff;
  font-size: 11px;
  font-weight: 700;
}

.ksla-legal-block p,
.ksla-legal-block li {
  color: var(--ksla-text);
  font-size: 14px;
  line-height: 1.9;
}

.ksla-legal-block p + p,
.ksla-legal-block p + ul,
.ksla-legal-block ul + p {
  margin-top: 12px;
}

.ksla-legal-block ul,
.ksla-legal-table ul {
  display: grid;
  gap: 6px;
  list-style: disc;
  padding-left: 1.4em;
}

.ksla-legal-note,
.ksla-legal-link-card {
  margin-top: 16px;
  padding: 18px;
  border-radius: 18px;
  background: var(--ksla-blue-soft);
}

.ksla-legal-note h3 {
  margin-bottom: 10px !important;
  color: var(--ksla-blue-dark) !important;
  font-size: 16px !important;
}

.ksla-legal-updated {
  padding: 18px 0 0;
  color: var(--ksla-muted);
  font-size: 13px;
}

.ksla-legal-table {
  width: 100%;
  border-collapse: collapse;
}

.ksla-legal-table th,
.ksla-legal-table td {
  padding: 18px;
  border-bottom: 1px solid var(--ksla-border);
  color: var(--ksla-text);
  font-size: 14px;
  line-height: 1.8;
  vertical-align: top;
}

.ksla-legal-table th {
  width: 28%;
  background: var(--ksla-blue-soft);
  color: var(--ksla-blue-dark);
  font-weight: 800;
  text-align: left;
}

.ksla-legal-page-v6 .ksla-legal-table th {
  background: var(--ksv6-orange-soft);
  color: var(--ksv6-ink);
  border-bottom: 2px solid var(--ksv6-ink);
}

.ksla-legal-page-v6 .ksla-legal-table td {
  border-bottom: 2px dashed rgba(23, 20, 17, 0.32);
  color: var(--ksv6-ink);
}

.site-footer,
.siteFooter,
footer {
  border-top: 1px solid rgba(219, 231, 245, 0.72) !important;
  background: #fffaf4 !important;
  color: var(--ksla-text) !important;
}

.site-footer *,
.siteFooter *,
footer * {
  box-sizing: border-box;
}

.site-footer a,
.siteFooter a,
footer a,
.site-footer .menu a,
.siteFooter .menu a,
footer .menu a {
  background: transparent !important;
  color: var(--ksla-muted) !important;
  text-decoration: none !important;
}

.site-footer a:hover,
.siteFooter a:hover,
footer a:hover,
.site-footer .menu a:hover,
.siteFooter .menu a:hover,
footer .menu a:hover {
  color: var(--ksla-coral) !important;
}

.site-footer .widget,
.siteFooter .widget,
footer .widget {
  margin-bottom: 22px !important;
  background: transparent !important;
}

.site-footer .widget-title,
.siteFooter .widget-title,
footer .widget-title {
  margin-bottom: 12px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--ksla-text) !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  line-height: 1.5 !important;
}

.site-footer .widget-title::before,
.site-footer .widget-title::after,
.siteFooter .widget-title::before,
.siteFooter .widget-title::after,
footer .widget-title::before,
footer .widget-title::after {
  display: none !important;
  content: none !important;
}

.site-footer ul,
.siteFooter ul,
footer ul {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.site-footer li,
.siteFooter li,
footer li {
  margin: 0 0 8px !important;
  padding: 0 !important;
}

.site-footer .menu,
.siteFooter .menu,
footer .menu {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  align-items: center;
}

.site-footer .menu a,
.siteFooter .menu a,
footer .menu a {
  display: inline-flex;
  align-items: center;
  min-height: auto;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.6 !important;
  box-shadow: none !important;
}

.site-footer-copyright,
.siteFooter-copyright,
.copySection,
.footer-copyright {
  border-top: 1px solid rgba(219, 231, 245, 0.7) !important;
  background: rgba(255, 255, 255, 0.62) !important;
  color: var(--ksla-muted) !important;
  font-size: 12px !important;
}

.site-footer-copyright p,
.siteFooter-copyright p,
.copySection p,
.footer-copyright p {
  margin: 0 !important;
  color: var(--ksla-muted) !important;
  font-size: 12px !important;
}

.site-footer-copyright p:nth-child(2),
.site-footer-copyright .copySection_promotion,
.site-footer .copySection_promotion,
.site-footer .powered-by,
footer .copySection_promotion,
footer .powered-by {
  display: none !important;
}

/* ========================================
   7b. v6 トーンに寄せたサイト枠（コソ練ラッパーがあるページのみ）
   ======================================== */

body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-header {
  border-bottom: 2px solid #171411;
  background: #fffdf9;
  box-shadow: 0 2px 0 rgba(23, 20, 17, 0.05);
}

body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-header-logo a {
  color: #171411;
}

body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .global-nav a {
  color: #171411;
}

body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .global-nav a:hover {
  color: #f8662f;
}

body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-footer,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .siteFooter,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) footer {
  border-top: 2px solid #171411 !important;
  background: #faf6f0 !important;
  color: #171411 !important;
  padding-top: 40px !important;
  padding-bottom: 12px !important;
}

body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-footer .widget,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .siteFooter .widget,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) footer .widget {
  margin-bottom: 26px !important;
}

body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-footer .widget-title,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .siteFooter .widget-title,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) footer .widget-title {
  display: inline-block !important;
  margin-bottom: 14px !important;
  padding: 5px 12px !important;
  border: 2px solid #171411 !important;
  border-radius: 10px !important;
  background: #fffdf9 !important;
  box-shadow: 2px 2px 0 #171411 !important;
  color: #171411 !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  letter-spacing: 0.04em !important;
}

body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-footer .menu,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .siteFooter .menu,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) footer .menu {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px 12px !important;
  justify-content: center !important;
}

/* フッター並びは WP メニュー（外観 → メニュー）のドラッグ順をそのまま使う。 */

body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-footer .menu > li.menu-item-privacy-policy a,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-footer .menu > li:has(a[href*="/privacy-policy"]) a,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-footer .menu > li:has(a[href*="/terms/"]) a,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-footer .menu > li:has(a[href*="/tokushoho"]) a,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .siteFooter .menu > li.menu-item-privacy-policy a,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .siteFooter .menu > li:has(a[href*="/privacy-policy"]) a,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .siteFooter .menu > li:has(a[href*="/terms/"]) a,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .siteFooter .menu > li:has(a[href*="/tokushoho"]) a,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) footer .menu > li.menu-item-privacy-policy a,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) footer .menu > li:has(a[href*="/privacy-policy"]) a,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) footer .menu > li:has(a[href*="/terms/"]) a,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) footer .menu > li:has(a[href*="/tokushoho"]) a {
  min-height: 34px !important;
  padding: 5px 10px !important;
  border-radius: 10px !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  line-height: 1.35 !important;
  box-shadow: 1px 1px 0 #171411 !important;
}

body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-footer .menu > li.menu-item-privacy-policy a:hover,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-footer .menu > li:has(a[href*="/privacy-policy"]) a:hover,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-footer .menu > li:has(a[href*="/terms/"]) a:hover,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-footer .menu > li:has(a[href*="/tokushoho"]) a:hover,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .siteFooter .menu > li.menu-item-privacy-policy a:hover,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .siteFooter .menu > li:has(a[href*="/privacy-policy"]) a:hover,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .siteFooter .menu > li:has(a[href*="/terms/"]) a:hover,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .siteFooter .menu > li:has(a[href*="/tokushoho"]) a:hover,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) footer .menu > li.menu-item-privacy-policy a:hover,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) footer .menu > li:has(a[href*="/privacy-policy"]) a:hover,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) footer .menu > li:has(a[href*="/terms/"]) a:hover,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) footer .menu > li:has(a[href*="/tokushoho"]) a:hover {
  box-shadow: 2px 2px 0 #171411 !important;
}

body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-footer .footer-nav,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) footer .footer-nav {
  padding-bottom: 8px !important;
}

/* フッター内の通常リンク（メニュー以外は下線フラット） */
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-footer a,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .siteFooter a,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) footer a {
  color: #625b56 !important;
  font-weight: 700 !important;
  text-decoration: underline !important;
  text-decoration-thickness: 2px !important;
  text-underline-offset: 3px !important;
}

body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-footer a:hover,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .siteFooter a:hover,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) footer a:hover {
  color: #f8662f !important;
}

body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-footer .menu a,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .siteFooter .menu a,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) footer .menu a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 40px !important;
  padding: 8px 14px !important;
  border: 2px solid #171411 !important;
  border-radius: 12px !important;
  background: #fffdf9 !important;
  box-shadow: 2px 2px 0 #171411 !important;
  color: #171411 !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  line-height: 1.35 !important;
  text-decoration: none !important;
  transition:
    color 0.12s ease,
    transform 0.12s ease,
    box-shadow 0.12s ease;
}

body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-footer .menu a:hover,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .siteFooter .menu a:hover,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) footer .menu a:hover {
  color: #f8662f !important;
  transform: translate(-1px, -1px);
  box-shadow: 3px 3px 0 #171411 !important;
}

body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-footer .menu a:focus-visible,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .siteFooter .menu a:focus-visible,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) footer .menu a:focus-visible {
  outline: 2px solid #f8662f !important;
  outline-offset: 2px !important;
}

body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-footer-copyright,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .siteFooter-copyright {
  margin-top: 8px !important;
  padding-top: 18px !important;
  padding-bottom: 18px !important;
  border-top: 2px solid #171411 !important;
  background: #fffdf9 !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.55) !important;
  text-align: center !important;
}

body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-footer-copyright p,
body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .siteFooter-copyright p {
  color: #625b56 !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
}

.kosoren-page-bottom-social {
  padding: 18px 20px;
  border-top: 2px solid #171411;
  background: #fffdf9;
}

.kosoren-page-bottom-social-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: min(1120px, calc(100% - 40px));
  margin: 0 auto;
}

.kosoren-page-bottom-social-title {
  margin: 0;
  font-size: 12px;
  font-weight: 900;
  color: #171411;
}

.kosoren-page-bottom-social-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.kosoren-page-bottom-social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 6px 12px;
  border: 2px solid #171411;
  border-radius: 999px;
  background: #fffdf9;
  color: #171411 !important;
  font-size: 12px;
  font-weight: 900;
  line-height: 1;
  text-decoration: none !important;
  box-shadow: 2px 2px 0 #171411;
}

.kosoren-page-bottom-social-link:hover {
  transform: translate(1px, 1px);
  box-shadow: 1px 1px 0 #171411;
}

/* ========================================
   8. Shared Responsive
   ======================================== */

@media (min-width: 768px) {
  body.home .site-footer .container,
  body.home .site-footer .container-lg,
  body.home .site-footer .container-md,
  body.home .site-footer .container-sm,
  body.page .site-footer .container,
  body.page .site-footer .container-lg,
  body.page .site-footer .container-md,
  body.page .site-footer .container-sm {
    width: min(var(--ksla-container-max), calc(100% - var(--ksla-container-pad-inline)));
  }

  body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-header {
    padding-top: 10px;
    padding-bottom: 10px;
  }

  body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .global-nav a {
    min-height: 42px;
    padding-inline: 14px;
    font-size: 13.5px;
  }

  body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-footer,
  body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .siteFooter,
  body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) footer {
    padding-top: 52px !important;
    padding-bottom: 20px !important;
  }

  body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-footer .menu,
  body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .siteFooter .menu,
  body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) footer .menu {
    gap: 12px 14px !important;
  }
}

@media (min-width: 992px) {
  body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-header {
    padding-top: 12px;
    padding-bottom: 12px;
  }

  body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .global-nav a {
    min-height: 46px;
    padding-inline: 16px;
    font-size: 14px;
  }

  body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-footer,
  body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .siteFooter,
  body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) footer {
    padding-top: 64px !important;
    padding-bottom: 26px !important;
  }

  body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-footer .menu,
  body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .siteFooter .menu,
  body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) footer .menu {
    gap: 14px 16px !important;
  }
}

@media (max-width: 1080px) {
  .ksla-hero-grid,
  .ksla-calm-grid,
  .ksla-bottom-grid,
  .ksla-watch-layout,
  .ksla-contact-layout,
  .ksla-faq-layout,
  .ksla-legal-layout {
    grid-template-columns: 1fr;
  }

  .ksla-hero-copy,
  .ksla-calm-copy {
    text-align: center;
  }

  .ksla-hero-subcopy,
  .ksla-hero-lead,
  .ksla-hero-title,
  .ksla-calm-copy p {
    margin-inline: auto;
  }

  .ksla-hero-buttons {
    justify-content: center;
  }

  .ksla-hero-visual {
    width: min(680px, 100%);
    margin-inline: auto;
  }

  .ksla-trust-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .ksla-price-grid-four {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 760px;
  }

  .ksla-price-card-main,
  .ksla-faq-side,
  .ksla-legal-side,
  .ksla-watch-side {
    transform: none;
    position: static;
  }
}

@media (max-width: 767px) {
  .ksla-home,
  .ksla-page {
    font-size: 15px;
  }

  .ksla-home,
  .ksla-page,
  .ksla-home *,
  .ksla-page * {
    min-width: 0;
  }

  .ksla-container {
    width: min(100% - 28px, 1120px);
  }

  body.home .site-footer .container,
  body.home .site-footer .container-lg,
  body.home .site-footer .container-md,
  body.home .site-footer .container-sm,
  body.page .site-footer .container,
  body.page .site-footer .container-lg,
  body.page .site-footer .container-md,
  body.page .site-footer .container-sm {
    width: min(100% - 28px, 1120px);
  }

  .ksla-home :where(h1, h2, h3, p, a, span, li),
  .ksla-page :where(h1, h2, h3, p, a, span, li) {
    overflow-wrap: anywhere;
    word-break: normal;
  }

  .ksla-section {
    padding: 56px 0;
  }

  .ksla-watch-info-section {
    padding-top: 20px !important;
  }

  .ksla-section-head {
    margin-bottom: 28px;
  }

  .ksla-section-head h2,
  .ksla-section-row h2 {
    font-size: clamp(24px, 7vw, 32px) !important;
  }

  .ksla-section-row {
    display: grid;
    gap: 12px;
    align-items: flex-start;
  }

  .ksla-sp-break {
    display: block;
  }

  .ksla-pc-break {
    display: none;
  }

  .ksla-btn {
    min-height: 54px;
    padding: 13px 22px;
    font-size: 14px;
    white-space: normal !important;
    text-align: center;
  }

  .ksla-btn,
  .ksla-price-button,
  .kosoren-restrict-primary,
  .kosoren-restrict-secondary {
    white-space: normal !important;
    text-align: center;
  }

  .ksla-hero-buttons,
  .kosoren-restrict-actions {
    width: 100%;
  }

  .ksla-hero-buttons .ksla-btn,
  .kosoren-restrict-primary,
  .kosoren-restrict-secondary {
    width: 100%;
  }

  .ksla-course-grid,
  .ksla-price-grid,
  .ksla-price-grid-four,
  .ksla-bottom-grid {
    grid-template-columns: 1fr;
  }

  .ksla-price-grid,
  .ksla-price-grid-four {
    max-width: 430px;
  }

  .ksla-price-card-main {
    order: -1;
  }

  .ksla-faq-mini,
  .ksla-final-cta,
  .ksla-preview-block,
  .ksla-inline-cta,
  .ksla-trust-card,
  .ksla-compare-table,
  .ksla-watch-description,
  .ksla-watch-card,
  .ksla-auth-card,
  .ksla-faq-group,
  .ksla-legal-block,
  .ksla-legal-table-card {
    padding: 20px;
    border-radius: 22px;
  }

  .ksla-final-points,
  .kosoren-restrict-actions {
    flex-direction: column;
    gap: 6px;
  }

  .ksla-contact-layout {
    gap: 18px;
  }

  .ksla-compare-row {
    display: block;
    padding: 12px 0;
  }

  .ksla-compare-head {
    display: none;
  }

  .ksla-compare-row > div {
    display: grid;
    grid-template-columns: 110px 1fr;
    gap: 10px;
    padding: 8px 16px;
  }

  .ksla-compare-row > div::before {
    content: attr(data-label);
    color: var(--ksla-muted);
    font-weight: 800;
  }

  .ksla-legal-table,
  .ksla-legal-table tbody,
  .ksla-legal-table tr,
  .ksla-legal-table th,
  .ksla-legal-table td {
    display: block;
    width: 100%;
  }

  .ksla-legal-table th {
    padding-bottom: 8px;
    border-bottom: 0;
  }

  .ksla-legal-table td {
    padding-top: 10px;
  }

  .ksla-watch-video-first,
  .ksla-watch-video-section {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    padding: 0 !important;
    background: #000000 !important;
  }

  .ksla-watch-video-first .ksla-container,
  .ksla-watch-video-section .ksla-container {
    width: 100vw !important;
    max-width: 100vw !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .ksla-watch-video-wrap {
    width: 100vw !important;
    max-width: 100vw !important;
    height: auto !important;
    min-height: 0 !important;
    border-radius: 0 !important;
    background: #000000 !important;
  }

  .ksla-watch-video-wrap div[style*="padding-top"] {
    width: 100vw !important;
    max-width: 100vw !important;
    padding-top: 56.25% !important;
  }

  .ksla-watch-video-wrap > iframe,
  .ksla-watch-video-wrap p > iframe {
    width: 100vw !important;
    max-width: 100vw !important;
    height: 56.25vw !important;
    aspect-ratio: auto !important;
  }

  .ksla-watch-video-wrap .kosoren-restrict-message {
    width: 100vw !important;
    min-height: 56.25vw !important;
    padding: 24px 18px !important;
  }

  .ksla-watch-point-grid {
    grid-template-columns: 1fr;
  }

  .kosoren-restrict-message {
    min-height: 280px;
    padding: 28px 18px;
  }

  .kosoren-restrict-actions {
    display: grid;
    width: 100%;
  }

  .ksla-register-form .pms-subscription-plan,
  .ksla-pms-register .pms-subscription-plan {
    padding: 13px 13px 13px 44px !important;
    border-radius: 16px !important;
  }

  .ksla-register-form .pms-subscription-plan input[type="radio"],
  .ksla-register-form .pms-subscription-plan input[type="checkbox"],
  .ksla-pms-register .pms-subscription-plan input[type="radio"],
  .ksla-pms-register .pms-subscription-plan input[type="checkbox"] {
    top: 16px;
    left: 15px;
  }

  .kosoren-field-hint {
    margin: 7px 0 16px !important;
    font-size: 11px;
    line-height: 1.6;
  }

  .kosoren-plan-hint {
    margin: 2px 0 14px !important;
    padding: 11px 12px;
    font-size: 12px;
    line-height: 1.65;
  }

  .site-footer,
  .siteFooter,
  footer {
    padding-top: 28px !important;
  }

  .site-footer .menu,
  .siteFooter .menu,
  footer .menu {
    display: grid;
    gap: 8px;
  }

  .site-footer .menu a,
  .siteFooter .menu a,
  footer .menu a {
    min-height: 40px;
    padding: 8px 0 !important;
  }

  /* v6: 1列縦並びをやめ、チップを2列グリッドに。奇数最後は1行で中央寄せに見えるよう全幅 */
  body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-footer .menu,
  body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .siteFooter .menu,
  body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) footer .menu {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-footer .menu > li,
  body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .siteFooter .menu > li,
  body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) footer .menu > li {
    margin: 0 !important;
    min-width: 0 !important;
  }

  body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-footer .menu > li.menu-item-home:last-child,
  body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .siteFooter .menu > li.menu-item-home:last-child,
  body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) footer .menu > li.menu-item-home:last-child {
    grid-column: 1 / -1 !important;
  }

  body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .site-footer .menu a,
  body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) .siteFooter .menu a,
  body:has(.ksla-home-v6, .ksla-page, .ksla-watch-page) footer .menu a {
    box-sizing: border-box !important;
    width: 100% !important;
    min-height: 44px !important;
    padding: 8px 10px !important;
    font-size: 12px !important;
    text-align: center !important;
    overflow-wrap: anywhere !important;
    white-space: normal !important;
  }

  body.error404 .main-section .container,
  body.error404 .entry-body,
  body.error404 .post_content,
  body.error404 .entry-content {
    width: min(100% - 28px, 760px) !important;
    margin: 56px auto !important;
    padding: 30px 20px !important;
    border-radius: 24px;
  }

  body.error404 .search-form input[type="submit"],
  body.error404 form[role="search"] input[type="submit"] {
    width: 100%;
  }

  .ksla-trust-icon,
  .ksla-lesson-badge,
  .ksla-watch-label,
  .ksla-final-points span,
  .ksla-watch-plan-list span {
    white-space: nowrap;
  }
}

@media (max-width: 390px) {
  .ksla-container {
    width: min(100% - 24px, 1120px);
  }

  body.home .site-footer .container,
  body.home .site-footer .container-lg,
  body.home .site-footer .container-md,
  body.home .site-footer .container-sm,
  body.page .site-footer .container,
  body.page .site-footer .container-lg,
  body.page .site-footer .container-md,
  body.page .site-footer .container-sm {
    width: min(100% - 24px, 1120px);
  }

  .ksla-auth-card {
    padding: 18px;
  }

  .kosoren-header-auth-actions {
    top: 8px;
    right: 62px;
  }

  body.admin-bar .kosoren-header-auth-actions {
    top: 54px;
  }

  .kosoren-header-auth-btn,
  .kosoren-header-auth-btn--register {
    min-height: 30px;
    padding: 6px 11px;
    font-size: 11px;
  }

  .vk-mobile-nav-menu-btn {
    right: 12px !important;
    width: 40px !important;
    min-width: 40px !important;
    height: 40px !important;
    min-height: 40px !important;
    background:
      linear-gradient(var(--ksla-text), var(--ksla-text)) center calc(50% - 6px) / 18px 2px no-repeat,
      linear-gradient(var(--ksla-text), var(--ksla-text)) center center / 18px 2px no-repeat,
      linear-gradient(var(--ksla-text), var(--ksla-text)) center calc(50% + 6px) / 18px 2px no-repeat,
      #ffffff !important;
  }
}


/* ########## END: css/kosoren-wp-theme-shell.css ########## */


/* ########## BEGIN: css/kosoren-home-v6.css ########## */

/*
  Top page theme layer only.
  This file assumes kosoren-ui-base.css is loaded first.
*/

.ksla-home-v6 {
  --ksv6-ink: #171411;
  --ksv6-bg: #faf6f0;
  --ksv6-white: #fffdf9;
  --ksv6-muted: #625b56;
  --ksv6-orange: #f8662f;
  --ksv6-pink: #ef7aa8;
  --ksv6-sky: #7fd4f6;
  --ksv6-lime: #d8ee7b;
  --ksv6-lavender: #c8bbef;
  --ksv6-orange-soft: #ffe3d8;
  --ksv6-shadow-sm: 2px 2px 0 var(--ksv6-ink);
  --ksv6-shadow-md: 3px 3px 0 var(--ksv6-ink);
  --ksv6-shadow-lg: 4px 4px 0 var(--ksv6-ink);
  --ksv6-shadow-xl: 5px 5px 0 var(--ksv6-ink);
  color: var(--ksv6-ink);
  background:
    radial-gradient(circle at 84% 8%, rgba(248, 102, 47, 0.08), transparent 32%),
    radial-gradient(circle at 12% 88%, rgba(127, 212, 246, 0.12), transparent 34%),
    linear-gradient(180deg, #faf6f0 0%, #f5efe4 100%);
}

.ksla-home-v6 .ksla-section,
.ksla-home-v6 .ksla-hero {
  padding-top: 56px;
  padding-bottom: 56px;
}

.ksla-home-v6 .ksla-hero {
  padding-top: 24px;
  padding-bottom: 64px;
  background: transparent;
}

.ksla-home-v6 .ksla-section-head {
  margin-bottom: 28px;
}

.ksla-home-v6 .ksla-section-head h2,
.ksla-home-v6 .ksla-final-cta h2,
.ksla-home-v6 .ksla-hero-title {
  color: var(--ksv6-ink);
  font-weight: 900;
  letter-spacing: -0.03em;
}

.ksla-home-v6 .ksla-section-lead,
.ksla-home-v6 .ksla-hero-lead,
.ksla-home-v6 .ksla-price-note,
.ksla-home-v6 .ksla-hero-note,
.ksla-home-v6 .ksla-cpt-desc,
.ksla-home-v6 .ksla-final-cta-lead {
  color: var(--ksv6-ink);
}

.ksla-home-v6 .ksla-section-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 12px;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.12em;
}

.ksla-home-v6 .ksla-num-tile {
  display: inline-grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border: 2px solid var(--ksv6-ink);
  border-radius: 8px;
  background: var(--ksv6-white);
  color: var(--ksv6-ink);
  box-shadow: var(--ksv6-shadow-sm);
}

.ksla-home-v6 .ksla-btn {
  border: 2px solid var(--ksv6-ink);
  border-radius: 14px;
  font-weight: 900;
}

.ksla-home-v6 .ksla-btn-primary {
  background: var(--ksv6-orange);
  color: var(--ksv6-white);
  box-shadow: 4px 4px 0 var(--ksv6-ink);
}

.ksla-home-v6 .ksla-btn-secondary {
  background: var(--ksv6-white);
  color: var(--ksv6-ink);
  box-shadow: var(--ksv6-shadow-md);
}

.ksla-home-v6 .ksla-btn:hover {
  transform: translate(2px, 2px);
}

.ksla-home-v6 .ksla-hero-shell {
  position: relative;
  max-width: 720px;
  margin: 0 auto;
  padding: 26px 20px 28px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 22px;
  background: var(--ksv6-bg);
  box-shadow: var(--ksv6-shadow-lg);
  text-align: center;
}

.ksla-home-v6 .ksla-hero-eyebrow {
  display: inline-flex;
  margin: 0 0 14px;
  padding: 6px 16px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 999px;
  background: var(--ksv6-orange-soft);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.04em;
  box-shadow: var(--ksv6-shadow-sm);
}

.ksla-home-v6 .ksla-hero-title {
  margin: 0;
  font-size: clamp(34px, 10.5vw, 52px);
  line-height: 1.08;
}

.ksla-home-v6 .ksla-hero-title .hl {
  display: inline-block;
  margin: 4px 0;
  padding: 0 10px;
  border: 2px solid var(--ksv6-ink);
  background: var(--ksv6-orange);
  color: var(--ksv6-white);
  transform: rotate(-1.5deg);
  box-shadow: var(--ksv6-shadow-md);
}

.ksla-home-v6 .ksla-hero-title .hl-practice {
  margin-right: 8px;
}

.ksla-home-v6 .ksla-hero-tail {
  display: inline-block;
  margin-left: 2px;
}

.ksla-home-v6 .ksla-hero-lead {
  margin: 22px 0 0;
  font-size: 15px;
  line-height: 1.9;
}

.ksla-home-v6 .ksla-hero-cta {
  display: grid;
  gap: 10px;
  margin-top: 22px;
}

.ksla-home-v6 .ksla-hero-cta .ksla-btn {
  width: 100%;
  min-height: 60px;
}

.ksla-home-v6 .ksla-hero-note {
  margin: 6px 0 0;
  font-size: 11px;
  font-weight: 700;
}

.ksla-home-v6 .ksla-hero-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  max-width: 480px;
  margin: 22px auto 0;
}

.ksla-home-v6 .ksla-hero-stats li {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 12px 6px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 14px;
  box-shadow: var(--ksv6-shadow-sm);
  text-align: center;
}

.ksla-home-v6 .ksla-hero-stats li:nth-child(1) {
  background: var(--ksv6-pink);
  color: var(--ksv6-white);
}

/* 白文字とのコントラスト用に、左右カードと揃えて明度を落としたスカイ */
.ksla-home-v6 .ksla-hero-stats li:nth-child(2) {
  background: #1595c9;
  color: var(--ksv6-white);
}

.ksla-home-v6 .ksla-hero-stats li:nth-child(3) {
  background: var(--ksv6-orange);
  color: var(--ksv6-white);
}

.ksla-home-v6 .ksla-hero-stats strong {
  font-size: 20px;
  font-weight: 900;
  line-height: 1.1;
}

/* 資格：修了証＋印の SVG（記号フォントに依存しない） */
.ksla-home-v6 .ksla-hero-stats li:nth-child(2) strong.ksla-hero-stat-qual {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0;
  font-weight: 400;
  line-height: 0;
}

.ksla-home-v6 .ksla-hero-stats li:nth-child(2) strong.ksla-hero-stat-qual svg {
  width: 26px;
  height: 26px;
  flex-shrink: 0;
}

/* スマホ3列でも「資格取得可能」を1行に */
.ksla-home-v6 .ksla-hero-stats li:nth-child(2) span {
  white-space: nowrap;
  letter-spacing: -0.03em;
}

@media (max-width: 420px) {
  .ksla-home-v6 .ksla-hero-stats li:nth-child(2) span {
    font-size: 10px;
  }
}

@media (max-width: 360px) {
  .ksla-home-v6 .ksla-hero-stats li:nth-child(2) span {
    font-size: 9px;
    letter-spacing: -0.05em;
  }
}

.ksla-home-v6 .ksla-hero-stats span {
  margin-top: 4px;
  font-size: 11px;
  line-height: 1.25;
}

.ksla-home-v6 .ksla-marquee {
  margin: 0;
  padding: 12px 0;
  overflow: hidden;
  border-top: 2px solid var(--ksv6-ink);
  border-bottom: 2px solid var(--ksv6-ink);
  background: var(--ksv6-ink);
  color: var(--ksv6-white);
}

.ksla-home-v6 .ksla-marquee-track {
  display: inline-flex;
  align-items: center;
  gap: 22px;
  padding-left: 100%;
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
  animation: ksla-marquee-scroll 52s linear infinite;
}

.ksla-home-v6 .ksla-marquee-track .ksla-marquee-link {
  color: inherit;
  text-decoration: none;
}

.ksla-home-v6 .ksla-marquee-track .ksla-marquee-link:hover {
  text-decoration: underline;
}

.ksla-home-v6 .ksla-marquee-track .ksla-marquee-link:focus-visible {
  outline: 2px solid var(--ksv6-lime);
  outline-offset: 2px;
}

.ksla-home-v6 .dot-orange {
  color: var(--ksv6-orange);
}

.ksla-home-v6 .dot-lime {
  color: var(--ksv6-lime);
}

.ksla-home-v6 .dot-lavender {
  color: var(--ksv6-sky);
}

/* トップティッカー: コース別ドット（ショートコード出力） */
.ksla-home-v6 .dot-marquee-nail {
  color: var(--ksv6-pink);
}

.ksla-home-v6 .dot-marquee-voice {
  color: var(--ksv6-sky);
}

.ksla-home-v6 .dot-marquee-default {
  color: var(--ksv6-orange);
}

.ksla-home-v6 .ksla-trust-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

.ksla-home-v6 .ksla-trust-card {
  position: relative;
  padding: 28px 20px 20px;
  overflow: visible;
  border: 2px solid var(--ksv6-ink);
  border-radius: 18px;
  background: var(--ksv6-white);
  box-shadow: var(--ksv6-shadow-lg);
}

.ksla-home-v6 .ksla-trust-card::before {
  content: attr(data-num);
  position: absolute;
  top: 16px;
  right: 18px;
  color: rgba(23, 20, 17, 0.06);
  font-size: 38px;
  font-weight: 900;
  line-height: 1;
}

.ksla-home-v6 .ksla-trust-tag {
  position: absolute;
  top: -12px;
  left: 16px;
  padding: 3px 10px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 8px;
  font-size: 11px;
  font-weight: 900;
  box-shadow: var(--ksv6-shadow-sm);
}

.ksla-home-v6 .ksla-trust-card:nth-child(1) .ksla-trust-tag {
  background: var(--ksv6-orange);
  color: var(--ksv6-white);
}

.ksla-home-v6 .ksla-trust-card:nth-child(2) .ksla-trust-tag {
  background: var(--ksv6-sky);
}

.ksla-home-v6 .ksla-trust-card:nth-child(3) .ksla-trust-tag {
  background: var(--ksv6-pink);
  color: var(--ksv6-white);
}

.ksla-home-v6 .ksla-trust-icon {
  display: none;
}

.ksla-home-v6 .ksla-trust-card h3 {
  margin: 0 0 8px;
  font-size: 17px;
  font-weight: 900;
  line-height: 1.45;
}

.ksla-home-v6 .ksla-trust-card p {
  font-size: 13px;
  line-height: 1.85;
}

.ksla-home-v6 .ksla-courses-v6,
.ksla-home-v6 .ksla-preview-v6,
.ksla-home-v6 .ksla-pricing-v6,
.ksla-home-v6 .ksla-bottom-v6 {
  background: var(--ksv6-bg);
}

.ksla-home-v6 .ksla-course-grid {
  grid-template-columns: 1fr;
  gap: 18px;
}

.ksla-home-v6 .ksla-course-card {
  display: block;
  min-height: 0;
  border: 2px solid var(--ksv6-ink);
  border-radius: 22px;
  background: var(--ksv6-white);
  box-shadow: var(--ksv6-shadow-xl);
}

.ksla-home-v6 .ksla-course-card-nail,
.ksla-home-v6 .ksla-course-card-voice {
  transform: none;
}

.ksla-home-v6 .ksla-course-banner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 110px;
  border-bottom: 2px solid var(--ksv6-ink);
  font-size: 32px;
  font-weight: 900;
  letter-spacing: -0.04em;
}

.ksla-home-v6 .ksla-course-card-nail .ksla-course-banner {
  background: var(--ksv6-pink);
  color: var(--ksv6-white);
}

.ksla-home-v6 .ksla-course-card-voice .ksla-course-banner {
  background: var(--ksv6-sky);
}

.ksla-home-v6 .ksla-course-tag {
  position: absolute;
  top: 10px;
  right: 12px;
  padding: 4px 10px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 999px;
  background: var(--ksv6-ink);
  color: var(--ksv6-white);
  font-size: 9px;
  font-weight: 900;
}

.ksla-home-v6 .ksla-course-content {
  padding: 22px 20px;
}

.ksla-home-v6 .ksla-course-card-nail .ksla-course-label {
  color: var(--ksv6-pink);
}

.ksla-home-v6 .ksla-course-card-voice .ksla-course-label {
  color: #2f8fb4;
}

.ksla-home-v6 .ksla-course-content h3 {
  font-size: 18px;
  font-weight: 900;
}

.ksla-home-v6 .ksla-course-content p {
  font-size: 13px;
  line-height: 1.85;
}

.ksla-home-v6 .ksla-course-button {
  gap: 8px;
  padding: 11px 18px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 10px;
  background: var(--ksv6-ink);
  color: var(--ksv6-white);
  font-size: 12px;
  font-weight: 900;
}

.ksla-home-v6 .ksla-course-card-nail .ksla-course-button {
  box-shadow: 3px 3px 0 var(--ksv6-pink);
}

.ksla-home-v6 .ksla-course-card-voice .ksla-course-button {
  box-shadow: 3px 3px 0 var(--ksv6-sky);
}

.ksla-home-v6 .ksla-course-button::after {
  content: "→";
}

.ksla-home-v6 .ksla-preview-block {
  margin-bottom: 24px;
}

.ksla-home-v6 .ksla-preview-block:last-of-type {
  margin-bottom: 0;
}

.ksla-home-v6 .ksla-preview-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.ksla-home-v6 .ksla-preview-head h3 {
  font-size: 18px;
  font-weight: 900;
  line-height: 1.35;
}

.ksla-home-v6 .ksla-preview-label {
  display: inline-flex;
  margin: 0 0 4px;
  padding: 3px 9px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 6px;
  background: var(--ksv6-pink);
  color: var(--ksv6-white);
  font-size: 10px;
  font-weight: 900;
}

.ksla-home-v6 .ksla-preview-block-voice .ksla-preview-label {
  background: var(--ksv6-sky);
  color: var(--ksv6-ink);
}

.ksla-home-v6 .ksla-more-link {
  padding: 6px 12px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 8px;
  background: var(--ksv6-white);
  color: var(--ksv6-ink);
  font-size: 11px;
  font-weight: 900;
  box-shadow: var(--ksv6-shadow-sm);
}

.ksla-home-v6 .ksla-cpt-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.ksla-home-v6 .ksla-preview-block-voice .ksla-cpt-grid {
  grid-template-columns: 1fr;
}

.ksla-home-v6 .ksla-cpt-card {
  border: 2px solid var(--ksv6-ink);
  border-radius: 16px;
  background: var(--ksv6-white);
  box-shadow: var(--ksv6-shadow-lg);
}

.ksla-home-v6 .ksla-cpt-thumb {
  border-bottom: 2px solid var(--ksv6-ink);
  background: var(--ksv6-ink);
}

.ksla-home-v6 .ksla-cpt-badge,
.ksla-home-v6 .ksla-cpt-time {
  border: 1.5px solid var(--ksv6-ink);
  border-radius: 6px;
  font-weight: 900;
}

.ksla-home-v6 .ksla-cpt-badge-free {
  background: var(--ksv6-lime);
  color: var(--ksv6-ink);
}

.ksla-home-v6 .ksla-cpt-badge-nail {
  background: var(--ksv6-pink);
  color: var(--ksv6-white);
}

.ksla-home-v6 .ksla-cpt-badge-voice {
  background: var(--ksv6-sky);
  color: var(--ksv6-ink);
}

.ksla-home-v6 .ksla-cpt-time,
.ksla-home-v6 .ksla-cpt-play {
  background: var(--ksv6-white);
  color: var(--ksv6-ink);
}

.ksla-home-v6 .ksla-cpt-play {
  width: 34px;
  height: 34px;
  border: 1.5px solid rgba(23, 20, 17, 0.45);
  border-radius: 50%;
  box-shadow: 2px 2px 0 rgba(23, 20, 17, 0.14);
}

.ksla-home-v6 .ksla-cpt-body {
  padding: 14px 14px 16px;
}

.ksla-home-v6 .ksla-cpt-title {
  font-size: 15px;
  font-weight: 900;
}

.ksla-home-v6 .ksla-inline-cta {
  display: grid;
  gap: 12px;
  justify-items: center;
  margin-top: 22px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 18px;
  background: var(--ksv6-orange-soft);
  text-align: center;
  box-shadow: var(--ksv6-shadow-lg);
}

.ksla-home-v6 .ksla-inline-cta p {
  font-size: 14px;
  font-weight: 800;
  line-height: 1.75;
}

.ksla-home-v6 .ksla-inline-cta .ksla-btn {
  width: 100%;
}

.ksla-home-v6 .ksla-price-grid {
  grid-template-columns: 1fr;
  gap: 16px;
  max-width: none;
}

.ksla-home-v6 .ksla-price-card {
  padding: 24px 20px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 18px;
  box-shadow: var(--ksv6-shadow-lg);
  text-align: left;
}

.ksla-home-v6 .ksla-price-card-free {
  background: #eef8c9;
}

.ksla-home-v6 .ksla-price-card-nail {
  background: #ffeaf3;
}

.ksla-home-v6 .ksla-price-card-voice {
  background: #eaf8ff;
}

.ksla-home-v6 .ksla-price-card-main {
  background: var(--ksv6-orange);
  color: var(--ksv6-white);
  /* ui-base の translateY / 旧デザインの傾きを付けない */
  transform: none;
  box-shadow: var(--ksv6-shadow-xl);
}

.ksla-home-v6 .ksla-price-card h3 {
  margin: 0 0 14px;
  font-size: 20px;
  font-weight: 900;
  line-height: 1.45;
}

.ksla-home-v6 .ksla-price-card-main h3,
.ksla-home-v6 .ksla-price-card-main .ksla-price strong,
.ksla-home-v6 .ksla-price-card-main .ksla-price span,
.ksla-home-v6 .ksla-price-card-main .ksla-price small {
  color: var(--ksv6-white);
}

.ksla-home-v6 .ksla-price {
  margin: 0 0 18px;
  text-align: left;
}

.ksla-home-v6 .ksla-price span {
  display: inline;
  margin-right: 6px;
  font-size: 12px;
  font-weight: 800;
  color: var(--ksv6-muted);
}

.ksla-home-v6 .ksla-price strong {
  color: var(--ksv6-ink);
  font-size: 30px;
  font-weight: 900;
}

.ksla-home-v6 .ksla-price small {
  margin-left: 4px;
  font-size: 11px;
  font-weight: 700;
  color: var(--ksv6-muted);
}

.ksla-home-v6 .ksla-price-card ul {
  min-height: 0;
  margin: 0 0 18px;
  padding: 14px;
  border: 1.5px dashed var(--ksv6-ink);
  border-radius: 10px;
  background: var(--ksv6-white);
}

.ksla-home-v6 .ksla-price-card li {
  padding-left: 26px;
  color: var(--ksv6-ink);
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1.6;
}

.ksla-home-v6 .ksla-price-card li::before {
  display: grid;
  width: 18px;
  height: 18px;
  place-items: center;
  top: 1px;
  border: 1.5px solid var(--ksv6-ink);
  border-radius: 5px;
  background: var(--ksv6-white);
  color: var(--ksv6-ink);
  font-size: 11px;
  line-height: 1;
}

.ksla-home-v6 .ksla-price-button {
  min-height: 50px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 10px;
  background: var(--ksv6-white);
  color: var(--ksv6-ink);
  font-size: 13px;
  font-weight: 900;
  box-shadow: var(--ksv6-shadow-md);
}

.ksla-home-v6 .ksla-price-button-main {
  background: var(--ksv6-ink);
  color: var(--ksv6-white);
  box-shadow: 3px 3px 0 var(--ksv6-lime);
}

.ksla-home-v6 .ksla-price-note {
  margin-top: 22px;
  padding: 12px 14px;
  border: 2px dashed var(--ksv6-ink);
  border-radius: 10px;
  background: var(--ksv6-white);
  font-size: 11.5px;
  font-weight: 700;
  line-height: 1.85;
  text-align: center;
}

.ksla-home-v6 .ksla-bottom-grid {
  grid-template-columns: 1fr;
  gap: 24px;
}

.ksla-home-v6 .ksla-faq-mini {
  border: 2px solid var(--ksv6-ink);
  border-radius: 18px;
  background: var(--ksv6-white);
  box-shadow: var(--ksv6-shadow-lg);
}

.ksla-home-v6 .ksla-faq-mini .ksla-section-row {
  display: flex;
  align-items: center;
  margin-bottom: 14px;
}

.ksla-home-v6 .ksla-faq-mini .ksla-more-link {
  background: var(--ksv6-sky);
}

.ksla-home-v6 .ksla-faq-mini details {
  margin-bottom: 10px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 10px;
  background: var(--ksv6-white);
  box-shadow: var(--ksv6-shadow-md);
}

.ksla-home-v6 .ksla-faq-mini details:last-child {
  margin-bottom: 0;
}

.ksla-home-v6 .ksla-faq-mini summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 14px 16px;
  list-style: none;
  font-size: 13px;
  font-weight: 900;
}

.ksla-home-v6 .ksla-faq-mini summary::-webkit-details-marker {
  display: none;
}

.ksla-home-v6 .ksla-faq-mini summary::after {
  content: "+";
  display: grid;
  width: 24px;
  height: 24px;
  place-items: center;
  flex-shrink: 0;
  border: 2px solid var(--ksv6-ink);
  border-radius: 6px;
  background: var(--ksv6-white);
  color: var(--ksv6-ink);
  font-size: 14px;
  font-weight: 900;
}

.ksla-home-v6 .ksla-faq-mini details[open] summary::after {
  content: "−";
  background: var(--ksv6-orange);
  color: var(--ksv6-white);
}

.ksla-home-v6 .ksla-faq-mini details p {
  margin: 0;
  padding: 12px 16px 16px;
  border-top: 2px dashed var(--ksv6-ink);
  background: var(--ksv6-white);
  color: var(--ksv6-ink);
  font-size: 12.5px;
  line-height: 1.85;
}

.ksla-home-v6 .ksla-final-cta {
  position: relative;
  overflow: hidden;
  padding: 30px 20px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 18px;
  background: var(--ksv6-orange);
  color: var(--ksv6-white);
  box-shadow: var(--ksv6-shadow-xl);
}

.ksla-home-v6 .ksla-final-cta::before {
  content: "★";
  position: absolute;
  top: 12px;
  right: 14px;
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border: 2px solid var(--ksv6-ink);
  border-radius: 8px;
  background: var(--ksv6-orange);
  color: var(--ksv6-white);
  transform: rotate(8deg);
}

.ksla-home-v6 .ksla-final-cta::after {
  content: "♪";
  position: absolute;
  bottom: 14px;
  left: 14px;
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border: 2px solid var(--ksv6-ink);
  border-radius: 50%;
  background: var(--ksv6-sky);
  color: var(--ksv6-ink);
  transform: rotate(-12deg);
}

.ksla-home-v6 .ksla-final-eyebrow {
  display: inline-block;
  margin: 0 0 12px;
  padding: 4px 12px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 999px;
  background: var(--ksv6-ink);
  color: var(--ksv6-white);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.1em;
}

.ksla-home-v6 .ksla-final-cta h2 {
  margin: 0 0 14px;
  color: var(--ksv6-white);
  font-size: clamp(24px, 8vw, 32px);
  line-height: 1.2;
}

.ksla-home-v6 .ksla-final-cta-lead {
  margin: 0 0 22px;
  color: var(--ksv6-white);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.85;
}

.ksla-home-v6 .ksla-final-points span {
  padding: 5px 11px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 999px;
  background: var(--ksv6-white);
  color: var(--ksv6-ink);
  font-size: 11px;
  font-weight: 900;
}

.ksla-home-v6 .ksla-final-points span::before {
  content: "✓ ";
  color: var(--ksv6-orange);
}

.ksla-home-v6 .ksla-final-cta .ksla-btn {
  width: 100%;
  margin-bottom: 10px;
  background: var(--ksv6-ink);
  color: var(--ksv6-white);
  box-shadow: 4px 4px 0 var(--ksv6-lime);
}

.ksla-home-v6 .ksla-final-link {
  padding: 8px 14px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 999px;
  background: var(--ksv6-white);
  color: var(--ksv6-ink);
  font-size: 11px;
  font-weight: 900;
  box-shadow: var(--ksv6-shadow-sm);
}

@keyframes ksla-marquee-scroll {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(-50%);
  }
}

@media (min-width: 768px) {
  .ksla-home-v6 .ksla-section,
  .ksla-home-v6 .ksla-hero {
    padding-top: 78px;
    padding-bottom: 78px;
  }

  .ksla-home-v6 .ksla-hero {
    padding-top: 36px;
  }

  .ksla-home-v6 .ksla-hero-shell {
    padding: 40px 44px 36px;
  }

  .ksla-home-v6 .ksla-trust-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .ksla-home-v6 .ksla-course-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ksla-home-v6 .ksla-preview-block-voice .ksla-cpt-grid,
  .ksla-home-v6 .ksla-cpt-grid,
  .ksla-home-v6 .ksla-price-grid,
  .ksla-home-v6 .ksla-bottom-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ksla-home-v6 .ksla-inline-cta .ksla-btn,
  .ksla-home-v6 .ksla-hero-cta .ksla-btn {
    max-width: 360px;
    margin: 0 auto;
  }

  .ksla-home-v6 .ksla-hero-title {
    max-width: 16.5em;
    font-size: clamp(36px, 4.3vw, 52px);
  }

  .ksla-home-v6 .ksla-hero-lead {
    max-width: 50ch;
    font-size: 16px;
  }

  .ksla-home-v6 .ksla-faq-mini summary {
    font-size: 15px;
  }
}

@media (min-width: 992px) {
  .ksla-home-v6 .ksla-section,
  .ksla-home-v6 .ksla-hero {
    padding-top: 96px;
    padding-bottom: 96px;
  }

  .ksla-home-v6 .ksla-price-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .ksla-home-v6 .ksla-hero-shell {
    padding: 48px 56px 42px;
  }

  .ksla-home-v6 .ksla-course-content h3 {
    font-size: 22px;
  }

  .ksla-home-v6 .ksla-course-content p {
    font-size: 14px;
  }

  .ksla-home-v6 .ksla-final-cta .ksla-btn {
    max-width: 420px;
  }
}


/* ########## END: css/kosoren-home-v6.css ########## */


/* ########## BEGIN: css/kosoren-courses-v6.css ########## */

/*
  Courses list + course detail (nail/voice).
  Depends on: kosoren-ui-base.css
  Extracted from kosoren-additional-css-full.css (sections 3.5–3.6).
*/

/* ========================================
   3.5 Courses Page
   ======================================== */

.ksla-courses-page-v6 {
  --ksv6-ink: #171411;
  --ksv6-bg: #faf6f0;
  --ksv6-white: #fffdf9;
  --ksv6-muted: #625b56;
  --ksv6-orange: #f8662f;
  --ksv6-pink: #ef7aa8;
  --ksv6-sky: #7fd4f6;
  --ksv6-lime: #d8ee7b;
  --ksv6-lavender: #c8bbef;
  --ksv6-orange-soft: #ffe3d8;
  --ksv6-shadow-sm: 2px 2px 0 var(--ksv6-ink);
  --ksv6-shadow-md: 3px 3px 0 var(--ksv6-ink);
  --ksv6-shadow-lg: 4px 4px 0 var(--ksv6-ink);
  --ksv6-shadow-xl: 5px 5px 0 var(--ksv6-ink);
  color: var(--ksv6-ink);
  background:
    radial-gradient(circle at 84% 8%, rgba(248, 102, 47, 0.08), transparent 32%),
    radial-gradient(circle at 12% 88%, rgba(127, 212, 246, 0.12), transparent 34%),
    linear-gradient(180deg, #faf6f0 0%, #f5efe4 100%);
}

.ksla-courses-page-v6 .ksla-section,
.ksla-courses-page-v6 .ksla-courses-page-hero {
  padding-top: 56px;
  padding-bottom: 56px;
}

.ksla-courses-page-v6 .ksla-section-head {
  margin-bottom: 28px;
}

.ksla-courses-page-v6 .ksla-section-head h2,
.ksla-courses-page-v6 .ksla-final-cta h2 {
  color: var(--ksv6-ink) !important;
  font-weight: 900 !important;
  letter-spacing: -0.03em !important;
}

.ksla-courses-page-v6 .ksla-section-lead {
  color: var(--ksv6-ink);
}

.ksla-courses-page-v6 .ksla-section-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 12px;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.12em;
}

.ksla-courses-page-v6 .ksla-num-tile {
  display: inline-grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border: 2px solid var(--ksv6-ink);
  border-radius: 8px;
  background: var(--ksv6-white);
  color: var(--ksv6-ink);
  box-shadow: var(--ksv6-shadow-sm);
}

.ksla-courses-page-v6 .ksla-btn {
  border: 2px solid var(--ksv6-ink);
  border-radius: 14px;
  font-weight: 900;
}

.ksla-courses-page-v6 .ksla-btn-primary {
  background: var(--ksv6-orange) !important;
  color: var(--ksv6-white) !important;
  box-shadow: 4px 4px 0 var(--ksv6-ink) !important;
}

.ksla-courses-page-v6 .ksla-btn-secondary {
  background: var(--ksv6-white) !important;
  color: var(--ksv6-ink) !important;
  border-color: var(--ksv6-ink) !important;
  box-shadow: var(--ksv6-shadow-md) !important;
}

.ksla-courses-page-v6 .ksla-btn:hover {
  transform: translate(2px, 2px);
}

.ksla-courses-page-v6 .ksla-courses-page-hero {
  padding-top: 24px;
  padding-bottom: 64px;
}

.ksla-courses-page-v6 .ksla-courses-hero-shell {
  max-width: 760px;
  margin: 0 auto;
  padding: 28px 20px 30px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 22px;
  background: var(--ksv6-bg);
  box-shadow: var(--ksv6-shadow-lg);
  text-align: center;
}

.ksla-courses-page-v6 .ksla-courses-hero-eyebrow {
  display: inline-flex;
  margin: 0 0 14px;
  padding: 6px 16px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 999px;
  background: var(--ksv6-orange-soft);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.04em;
  box-shadow: var(--ksv6-shadow-sm);
}

.ksla-courses-page-v6 .ksla-courses-page-title {
  margin: 0;
  color: var(--ksv6-ink) !important;
  font-size: clamp(34px, 10vw, 52px) !important;
  font-weight: 900 !important;
  line-height: 1.08 !important;
  letter-spacing: -0.04em !important;
}

.ksla-courses-page-v6 .ksla-courses-page-title .hl {
  display: inline-block;
  padding: 0 10px;
  border: 2px solid var(--ksv6-ink);
  background: var(--ksv6-orange);
  color: var(--ksv6-white);
  transform: rotate(-1.5deg);
  box-shadow: var(--ksv6-shadow-md);
}

.ksla-courses-page-v6 .ksla-courses-hero-lead {
  margin: 22px 0 0;
  color: var(--ksv6-ink);
  font-size: 15px;
  line-height: 1.9;
}

.ksla-courses-page-v6 .ksla-courses-hero-cta {
  display: grid;
  gap: 10px;
  margin-top: 22px;
}

.ksla-courses-page-v6 .ksla-courses-hero-cta .ksla-btn {
  width: 100%;
  min-height: 60px;
}

/* トップ（ksla-home-v6）と同じ3枚（¥0 / 資格 / 動画見放題）
   .entry-body 内の ul 上書きで縦積みになるのを防ぐ */
.ksla-courses-page-v6 .ksla-hero-stats {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 8px;
  max-width: 480px;
  width: 100%;
  margin: 22px auto 0;
  padding: 0;
  list-style: none;
  box-sizing: border-box;
}

.ksla-courses-page-v6 .ksla-hero-stats li {
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 0;
  padding: 12px 6px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 14px;
  box-shadow: var(--ksv6-shadow-sm);
  text-align: center;
  list-style: none;
}

.ksla-courses-page-v6 .ksla-hero-stats li:nth-child(1) {
  background: var(--ksv6-pink);
  color: var(--ksv6-white);
}

.ksla-courses-page-v6 .ksla-hero-stats li:nth-child(2) {
  background: #1595c9;
  color: var(--ksv6-white);
}

.ksla-courses-page-v6 .ksla-hero-stats li:nth-child(3) {
  background: var(--ksv6-orange);
  color: var(--ksv6-white);
}

.ksla-courses-page-v6 .ksla-hero-stats strong {
  font-size: 20px;
  font-weight: 900;
  line-height: 1.1;
}

.ksla-courses-page-v6 .ksla-hero-stats li:nth-child(2) strong.ksla-hero-stat-qual {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0;
  font-weight: 400;
  line-height: 0;
}

.ksla-courses-page-v6 .ksla-hero-stats li:nth-child(2) strong.ksla-hero-stat-qual svg {
  width: 26px !important;
  height: 26px !important;
  max-width: 26px !important;
  max-height: 26px !important;
  flex-shrink: 0;
}

.ksla-courses-page-v6 .ksla-hero-stats li:nth-child(2) span {
  white-space: nowrap;
  letter-spacing: -0.03em;
}

@media (max-width: 420px) {
  .ksla-courses-page-v6 .ksla-hero-stats li:nth-child(2) span {
    font-size: 10px;
  }
}

@media (max-width: 360px) {
  .ksla-courses-page-v6 .ksla-hero-stats li:nth-child(2) span {
    font-size: 9px;
    letter-spacing: -0.05em;
  }
}

.ksla-courses-page-v6 .ksla-hero-stats span {
  margin-top: 4px;
  font-size: 11px;
  line-height: 1.25;
}

.ksla-courses-page-v6 .ksla-trust-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.ksla-courses-page-v6 .ksla-trust-card {
  position: relative;
  display: block;
  padding: 28px 20px 20px !important;
  overflow: visible;
  border: 2px solid var(--ksv6-ink) !important;
  border-radius: 18px !important;
  background: var(--ksv6-white) !important;
  box-shadow: var(--ksv6-shadow-lg) !important;
}

.ksla-courses-page-v6 .ksla-trust-card::before {
  content: attr(data-num);
  position: absolute;
  top: 16px;
  right: 18px;
  color: rgba(23, 20, 17, 0.06);
  font-size: 38px;
  font-weight: 900;
  line-height: 1;
}

.ksla-courses-page-v6 .ksla-trust-tag {
  position: absolute;
  top: -12px;
  left: 16px;
  padding: 3px 10px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 8px;
  font-size: 11px;
  font-weight: 900;
  box-shadow: var(--ksv6-shadow-sm);
}

.ksla-courses-page-v6 .ksla-trust-card:nth-child(1) .ksla-trust-tag {
  background: var(--ksv6-orange);
  color: var(--ksv6-white);
}

.ksla-courses-page-v6 .ksla-trust-card:nth-child(2) .ksla-trust-tag {
  background: var(--ksv6-sky);
  color: var(--ksv6-ink);
}

.ksla-courses-page-v6 .ksla-trust-card:nth-child(3) .ksla-trust-tag {
  background: var(--ksv6-pink);
  color: var(--ksv6-white);
}

.ksla-courses-page-v6 .ksla-trust-card h3 {
  margin: 0 0 8px !important;
  font-size: 17px !important;
  font-weight: 900 !important;
  line-height: 1.45 !important;
  color: var(--ksv6-ink) !important;
}

.ksla-courses-page-v6 .ksla-trust-card p {
  font-size: 13px;
  line-height: 1.85;
  color: var(--ksv6-ink);
}

.ksla-courses-page-v6 .ksla-courses-v6,
.ksla-courses-page-v6 .ksla-preview-v6,
.ksla-courses-page-v6 .ksla-pricing-v6,
.ksla-courses-page-v6 .ksla-bottom-v6,
.ksla-courses-page-v6 .ksla-courses-fit-v6 {
  background: var(--ksv6-bg);
}

.ksla-courses-page-v6 .ksla-course-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.ksla-courses-page-v6 .ksla-course-card-v6 {
  display: block;
  min-height: 0;
  border: 2px solid var(--ksv6-ink);
  border-radius: 22px;
  background: var(--ksv6-white);
  box-shadow: var(--ksv6-shadow-xl);
}

.ksla-courses-page-v6 .ksla-course-card-nail,
.ksla-courses-page-v6 .ksla-course-card-voice,
.ksla-courses-page-v6 .ksla-course-card-ai-music {
  transform: none;
}

.ksla-courses-page-v6 .ksla-course-banner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 110px;
  border-bottom: 2px solid var(--ksv6-ink);
  font-size: 32px;
  font-weight: 900;
  letter-spacing: -0.04em;
}

.ksla-courses-page-v6 .ksla-course-card-nail .ksla-course-banner {
  background: var(--ksv6-pink);
  color: var(--ksv6-white);
}

.ksla-courses-page-v6 .ksla-course-card-voice .ksla-course-banner {
  background: var(--ksv6-sky);
  color: var(--ksv6-ink);
}

.ksla-courses-page-v6 .ksla-course-card-ai-music .ksla-course-banner {
  background: #38c976;
  color: #0f3b25;
}

/* コース一覧は常に2列。狭い幅ではバナー文字を縦に分けて読みやすく */
@media (max-width: 640px) {
  .ksla-courses-page-v6 .ksla-course-banner {
    flex-direction: column;
    justify-content: center;
    height: auto;
    min-height: 96px;
    padding: 12px 10px 10px;
    font-size: clamp(22px, 7vw, 30px);
    gap: 6px;
    letter-spacing: -0.05em;
  }
}

.ksla-courses-page-v6 .ksla-course-content {
  padding: 22px 20px;
}

.ksla-courses-page-v6 .ksla-course-card-nail .ksla-course-label {
  color: var(--ksv6-pink);
}

.ksla-courses-page-v6 .ksla-course-card-voice .ksla-course-label {
  color: #2f8fb4;
}

.ksla-courses-page-v6 .ksla-course-card-ai-music .ksla-course-label {
  color: #179a52;
}

.ksla-courses-page-v6 .ksla-course-content h3 {
  font-size: 18px;
  font-weight: 900;
}

.ksla-courses-page-v6 .ksla-course-content p {
  font-size: 13px;
  line-height: 1.85;
}

.ksla-courses-page-v6 .ksla-course-button {
  gap: 8px;
  padding: 11px 18px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 10px;
  background: var(--ksv6-ink);
  color: var(--ksv6-white);
  font-size: 12px;
  font-weight: 900;
}

.ksla-courses-page-v6 .ksla-course-card-nail .ksla-course-button {
  box-shadow: 3px 3px 0 var(--ksv6-pink);
}

.ksla-courses-page-v6 .ksla-course-card-voice .ksla-course-button {
  box-shadow: 3px 3px 0 var(--ksv6-sky);
}

.ksla-courses-page-v6 .ksla-course-card-ai-music .ksla-course-button {
  box-shadow: 3px 3px 0 #38c976;
}

.ksla-courses-page-v6 .ksla-course-button::after {
  content: "→";
}

.ksla-courses-page-v6 .ksla-preview-block {
  margin-bottom: 24px;
}

.ksla-courses-page-v6 .ksla-preview-block:last-of-type {
  margin-bottom: 0;
}

.ksla-courses-page-v6 .ksla-preview-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.ksla-courses-page-v6 .ksla-preview-head h3 {
  font-size: 18px;
  font-weight: 900;
  line-height: 1.35;
}

.ksla-courses-page-v6 .ksla-preview-label {
  display: inline-flex;
  margin: 0 0 4px;
  padding: 3px 9px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 6px;
  background: var(--ksv6-pink);
  color: var(--ksv6-white);
  font-size: 10px;
  font-weight: 900;
}

.ksla-courses-page-v6 .ksla-preview-block-voice .ksla-preview-label {
  background: var(--ksv6-sky);
  color: var(--ksv6-ink);
}

.ksla-courses-page-v6 .ksla-preview-block-ai-music .ksla-preview-label {
  background: #38c976;
  color: #0f3b25;
}

.ksla-courses-page-v6 .ksla-more-link {
  padding: 6px 12px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 8px;
  background: var(--ksv6-white);
  color: var(--ksv6-ink) !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  box-shadow: var(--ksv6-shadow-sm);
}

.ksla-courses-page-v6 .ksla-inline-cta {
  display: grid;
  gap: 12px;
  justify-items: center;
  margin-top: 22px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 18px;
  background: var(--ksv6-orange-soft);
  text-align: center;
  box-shadow: var(--ksv6-shadow-lg);
}

.ksla-courses-page-v6 .ksla-inline-cta p {
  font-size: 14px;
  font-weight: 800;
  line-height: 1.75;
  color: var(--ksv6-ink);
}

.ksla-courses-page-v6 .ksla-inline-cta .ksla-btn {
  width: 100%;
}

.ksla-courses-page-v6 .ksla-price-grid {
  gap: 16px;
  max-width: none;
}

.ksla-courses-page-v6 .ksla-price-card {
  padding: 24px 20px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 18px;
  box-shadow: var(--ksv6-shadow-lg);
  text-align: left;
}

.ksla-courses-page-v6 .ksla-price-card-free {
  background: #eef8c9 !important;
}

.ksla-courses-page-v6 .ksla-price-card-nail {
  background: #ffeaf3 !important;
}

.ksla-courses-page-v6 .ksla-price-card-voice {
  background: #eaf8ff !important;
}

.ksla-courses-page-v6 .ksla-price-card-main {
  background: var(--ksv6-orange) !important;
  color: var(--ksv6-white) !important;
  transform: none !important;
  box-shadow: var(--ksv6-shadow-xl) !important;
}

.ksla-courses-page-v6 .ksla-price-card h3 {
  margin: 0 0 14px !important;
  font-size: 20px !important;
  font-weight: 900 !important;
  line-height: 1.45 !important;
}

.ksla-courses-page-v6 .ksla-price-card-main h3,
.ksla-courses-page-v6 .ksla-price-card-main .ksla-price strong,
.ksla-courses-page-v6 .ksla-price-card-main .ksla-price span,
.ksla-courses-page-v6 .ksla-price-card-main .ksla-price small {
  color: var(--ksv6-white) !important;
}

.ksla-courses-page-v6 .ksla-price span {
  display: inline;
  margin-right: 6px;
  font-size: 12px;
  font-weight: 800;
  color: var(--ksv6-muted);
}

.ksla-courses-page-v6 .ksla-price strong {
  color: var(--ksv6-ink);
  font-size: 30px;
  font-weight: 900 !important;
}

.ksla-courses-page-v6 .ksla-price small {
  margin-left: 4px;
  font-size: 11px;
  font-weight: 700;
  color: var(--ksv6-muted);
}

.ksla-courses-page-v6 .ksla-price-card ul {
  min-height: 0;
  margin: 0 0 18px;
  padding: 14px;
  border: 1.5px dashed var(--ksv6-ink);
  border-radius: 10px;
  background: var(--ksv6-white);
}

.ksla-courses-page-v6 .ksla-price-card li {
  padding-left: 26px;
  color: var(--ksv6-ink);
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1.6;
}

.ksla-courses-page-v6 .ksla-price-card li::before {
  display: grid;
  width: 18px;
  height: 18px;
  place-items: center;
  top: 1px;
  border: 1.5px solid var(--ksv6-ink);
  border-radius: 5px;
  background: var(--ksv6-white);
  color: var(--ksv6-ink);
  font-size: 11px;
  line-height: 1;
}

.ksla-courses-page-v6 .ksla-price-button {
  min-height: 50px;
  border: 2px solid var(--ksv6-ink) !important;
  border-radius: 10px;
  background: var(--ksv6-white) !important;
  color: var(--ksv6-ink) !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  box-shadow: var(--ksv6-shadow-md) !important;
}

.ksla-courses-page-v6 .ksla-price-button-main {
  background: var(--ksv6-ink) !important;
  color: var(--ksv6-white) !important;
  box-shadow: 3px 3px 0 var(--ksv6-lime) !important;
}

.ksla-courses-page-v6 .ksla-price-note {
  margin-top: 22px;
  padding: 12px 14px;
  border: 2px dashed var(--ksv6-ink);
  border-radius: 10px;
  background: var(--ksv6-white);
  color: var(--ksv6-ink);
  font-size: 11.5px;
  font-weight: 700;
  line-height: 1.85;
  text-align: center;
}

.ksla-courses-page-v6 .ksla-final-cta {
  position: relative;
  overflow: hidden;
  padding: 30px 20px !important;
  border: 2px solid var(--ksv6-ink) !important;
  border-radius: 18px !important;
  background: var(--ksv6-orange) !important;
  color: var(--ksv6-white) !important;
  box-shadow: var(--ksv6-shadow-xl) !important;
}

.ksla-courses-page-v6 .ksla-final-cta::before {
  content: "★";
  position: absolute;
  top: 12px;
  right: 14px;
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border: 2px solid var(--ksv6-ink);
  border-radius: 8px;
  background: var(--ksv6-orange);
  color: var(--ksv6-white);
  transform: rotate(8deg);
}

.ksla-courses-page-v6 .ksla-final-cta::after {
  content: "♪";
  position: absolute;
  bottom: 14px;
  left: 14px;
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border: 2px solid var(--ksv6-ink);
  border-radius: 50%;
  background: var(--ksv6-sky);
  color: var(--ksv6-ink);
  transform: rotate(-12deg);
}

.ksla-courses-page-v6 .ksla-final-eyebrow {
  display: inline-block;
  margin: 0 0 12px;
  padding: 4px 12px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 999px;
  background: var(--ksv6-ink);
  color: var(--ksv6-white) !important;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.1em;
}

.ksla-courses-page-v6 .ksla-final-cta h2 {
  color: var(--ksv6-white) !important;
}

.ksla-courses-page-v6 .ksla-final-cta-lead {
  color: var(--ksv6-white) !important;
}

.ksla-courses-page-v6 .ksla-final-points span {
  padding: 5px 11px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 999px;
  background: var(--ksv6-white);
  color: var(--ksv6-ink);
  font-size: 11px;
  font-weight: 900;
}

.ksla-courses-page-v6 .ksla-final-points span::before {
  content: "✓ ";
  color: var(--ksv6-orange);
}

.ksla-courses-page-v6 .ksla-final-cta .ksla-btn {
  width: 100%;
  margin-bottom: 10px;
  background: var(--ksv6-ink) !important;
  color: var(--ksv6-white) !important;
  box-shadow: 4px 4px 0 var(--ksv6-lime) !important;
}

.ksla-courses-page-v6 .ksla-final-link {
  padding: 8px 14px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 999px;
  background: var(--ksv6-white);
  color: var(--ksv6-ink) !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  box-shadow: var(--ksv6-shadow-sm);
}

/* ========================================
   3.6 Course Detail Page
   ======================================== */

.ksla-course-detail-page-v6 {
  --ksv6-ink: #171411;
  --ksv6-bg: #faf6f0;
  --ksv6-white: #fffdf9;
  --ksv6-muted: #625b56;
  --ksv6-orange: #f8662f;
  --ksv6-pink: #ef7aa8;
  --ksv6-sky: #7fd4f6;
  --ksv6-lime: #d8ee7b;
  --ksv6-orange-soft: #ffe3d8;
  --ksv6-shadow-sm: 2px 2px 0 var(--ksv6-ink);
  --ksv6-shadow-md: 3px 3px 0 var(--ksv6-ink);
  --ksv6-shadow-lg: 4px 4px 0 var(--ksv6-ink);
  --ksv6-shadow-xl: 5px 5px 0 var(--ksv6-ink);
  color: var(--ksv6-ink);
  background:
    radial-gradient(circle at 84% 8%, rgba(248, 102, 47, 0.08), transparent 32%),
    radial-gradient(circle at 12% 88%, rgba(127, 212, 246, 0.1), transparent 34%),
    linear-gradient(180deg, #faf6f0 0%, #f5efe4 100%);
}

.ksla-course-detail-page-v6 .ksla-section,
.ksla-course-detail-page-v6 .ksla-course-detail-hero {
  padding-top: 56px;
  padding-bottom: 56px;
}

.ksla-course-detail-page-v6 .ksla-section-head {
  margin-bottom: 28px;
}

.ksla-course-detail-page-v6 .ksla-section-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 12px;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.12em;
}

.ksla-course-detail-page-v6 .ksla-num-tile {
  display: inline-grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border: 2px solid var(--ksv6-ink);
  border-radius: 8px;
  background: var(--ksv6-white);
  color: var(--ksv6-ink);
  box-shadow: var(--ksv6-shadow-sm);
}

.ksla-course-detail-page-v6 .ksla-btn {
  border: 2px solid var(--ksv6-ink);
  border-radius: 14px;
  font-weight: 900;
}

.ksla-course-detail-page-v6 .ksla-btn-primary {
  background: var(--ksv6-orange) !important;
  color: var(--ksv6-white) !important;
  box-shadow: 4px 4px 0 var(--ksv6-ink) !important;
}

.ksla-course-detail-page-v6 .ksla-btn-secondary {
  background: var(--ksv6-white) !important;
  color: var(--ksv6-ink) !important;
  border-color: var(--ksv6-ink) !important;
  box-shadow: var(--ksv6-shadow-md) !important;
}

.ksla-course-detail-page-v6 .ksla-btn:hover {
  transform: translate(2px, 2px);
}

.ksla-course-detail-page-v6 .ksla-hero-shell {
  position: relative;
  max-width: 720px;
  margin: 0 auto;
  padding: 26px 20px 28px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 22px;
  background: var(--ksv6-bg);
  box-shadow: var(--ksv6-shadow-lg);
}

.ksla-course-detail-hero-shell {
  display: grid;
  gap: 22px;
}

.ksla-course-detail-hero-copy {
  min-width: 0;
}

.ksla-course-detail-page-nail .ksla-course-detail-hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0;
  margin: 0 0 14px;
  padding: 6px 16px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 999px;
  background: #ffe3ee;
  color: var(--ksv6-ink);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.04em;
  box-shadow: var(--ksv6-shadow-sm);
}

.ksla-course-detail-page-v6 .ksla-hero-title {
  margin: 0;
  color: var(--ksv6-ink) !important;
  font-size: clamp(34px, 10.5vw, 52px) !important;
  font-weight: 900 !important;
  line-height: 1.08 !important;
  letter-spacing: -0.04em !important;
}

.ksla-course-detail-page-nail .ksla-course-detail-title .hl {
  display: inline-block;
  white-space: nowrap;
  margin: 4px 0;
  padding: 0 10px;
  border: 2px solid var(--ksv6-ink);
  background: var(--ksv6-pink);
  color: var(--ksv6-white);
  transform: rotate(-1.5deg);
  box-shadow: var(--ksv6-shadow-md);
}

.ksla-course-detail-page-v6 .ksla-hero-lead {
  margin: 22px 0 0;
  color: var(--ksv6-ink);
  font-size: 15px;
  line-height: 1.9;
}

.ksla-course-detail-page-v6 .ksla-hero-cta {
  display: grid;
  gap: 10px;
  margin-top: 22px;
}

.ksla-course-detail-page-v6 .ksla-hero-cta .ksla-btn {
  width: 100%;
  min-height: 60px;
}

.ksla-course-detail-page-v6 .ksla-hero-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  max-width: 480px;
  margin: 22px auto 0;
}

.ksla-course-detail-page-v6 .ksla-hero-stats li {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 12px 6px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 14px;
  box-shadow: var(--ksv6-shadow-sm);
  text-align: center;
}

.ksla-course-detail-page-v6 .ksla-hero-stats strong {
  font-size: 20px;
  font-weight: 900;
  line-height: 1.1;
}

.ksla-course-detail-page-v6 .ksla-hero-stats span {
  margin-top: 4px;
  font-size: 11px;
  line-height: 1.25;
}

.ksla-course-detail-page-nail .ksla-course-detail-hero-points li:nth-child(1) {
  background: var(--ksv6-pink);
  color: var(--ksv6-white);
}

.ksla-course-detail-page-nail .ksla-course-detail-hero-points li:nth-child(2) {
  background: #ffe3ee;
  color: #8f3f61;
}

.ksla-course-detail-page-nail .ksla-course-detail-hero-points li:nth-child(3) {
  background: #c95d8a;
  color: var(--ksv6-white);
}

.ksla-course-detail-visual {
  min-height: 240px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 22px;
  box-shadow: var(--ksv6-shadow-lg);
}

.ksla-course-detail-page-nail .ksla-course-detail-visual {
  background:
    radial-gradient(circle at 28% 34%, rgba(255, 255, 255, 0.72), transparent 18%),
    radial-gradient(circle at 35% 55%, #ffbfd7 0 8%, transparent 9%),
    radial-gradient(circle at 55% 52%, #ffdfe9 0 12%, transparent 13%),
    linear-gradient(135deg, #ef7aa8 0%, #ffc5dc 55%, #fff7fb 100%);
}

.ksla-course-detail-page-v6 .ksla-trust-grid-course-detail {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

/* ネイル詳細だけ、スマホでは縦1列 */
.ksla-course-detail-page-nail .ksla-trust-grid-course-detail {
  grid-template-columns: 1fr;
  gap: 14px;
}

/* ボイトレ詳細も、スマホでは縦1列 */
.ksla-course-detail-page-voice .ksla-trust-grid-course-detail {
  grid-template-columns: 1fr;
  gap: 14px;
}

.ksla-course-detail-page-v6 .ksla-trust-grid-course-detail .ksla-trust-card {
  position: relative;
  display: block;
  padding: 28px 20px 20px !important;
  overflow: visible;
  border: 2px solid var(--ksv6-ink) !important;
  border-radius: 18px !important;
  background: var(--ksv6-white) !important;
  box-shadow: var(--ksv6-shadow-lg) !important;
}

.ksla-course-detail-page-v6 .ksla-trust-grid-course-detail .ksla-trust-card::before {
  content: attr(data-num);
  position: absolute;
  top: 16px;
  right: 18px;
  color: rgba(23, 20, 17, 0.06);
  font-size: 38px;
  font-weight: 900;
  line-height: 1;
}

.ksla-course-detail-page-v6 .ksla-trust-grid-course-detail .ksla-trust-tag {
  position: absolute;
  top: -12px;
  left: 16px;
  padding: 3px 10px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 8px;
  font-size: 11px;
  font-weight: 900;
  box-shadow: var(--ksv6-shadow-sm);
}

.ksla-course-detail-page-nail .ksla-trust-grid-course-detail .ksla-trust-card:nth-child(1) .ksla-trust-tag {
  background: var(--ksv6-pink);
  color: var(--ksv6-white);
}

.ksla-course-detail-page-nail .ksla-trust-grid-course-detail .ksla-trust-card:nth-child(2) .ksla-trust-tag {
  background: #ffe3ee;
  color: #8f3f61;
}

.ksla-course-detail-page-nail .ksla-trust-grid-course-detail .ksla-trust-card:nth-child(3) .ksla-trust-tag {
  background: #c95d8a;
  color: var(--ksv6-white);
}

.ksla-course-detail-page-v6 .ksla-trust-grid-course-detail .ksla-trust-card h3 {
  margin: 0 0 8px !important;
  font-size: 17px !important;
  font-weight: 900 !important;
  line-height: 1.45 !important;
  color: var(--ksv6-ink) !important;
}

.ksla-course-detail-page-v6 .ksla-trust-grid-course-detail .ksla-trust-card p {
  font-size: 13px;
  line-height: 1.85;
  color: var(--ksv6-ink);
}

.ksla-course-detail-page-v6 .ksla-preview-block {
  margin-bottom: 24px;
}

.ksla-course-detail-page-v6 .ksla-preview-block:last-of-type {
  margin-bottom: 0;
}

.ksla-course-detail-page-v6 .ksla-preview-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.ksla-course-detail-page-v6 .ksla-preview-head h3 {
  font-size: 18px;
  font-weight: 900;
  line-height: 1.35;
}

.ksla-course-detail-page-v6 .ksla-preview-label {
  display: inline-flex;
  margin: 0 0 4px;
  padding: 3px 9px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 6px;
  background: var(--ksv6-pink);
  color: var(--ksv6-white);
  font-size: 10px;
  font-weight: 900;
}

.ksla-course-detail-page-v6 .ksla-more-link {
  padding: 6px 12px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 8px;
  background: var(--ksv6-white);
  color: var(--ksv6-ink) !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  box-shadow: var(--ksv6-shadow-sm);
}

.ksla-course-detail-page-v6 .ksla-inline-cta {
  display: grid;
  gap: 12px;
  justify-items: center;
  margin-top: 22px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 18px;
  background: var(--ksv6-orange-soft);
  text-align: center;
  box-shadow: var(--ksv6-shadow-lg);
}

.ksla-course-detail-page-v6 .ksla-inline-cta p {
  color: var(--ksv6-ink);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.75;
}

.ksla-course-detail-page-v6 .ksla-inline-cta .ksla-btn {
  width: 100%;
}

.ksla-course-detail-page-v6 .ksla-preview-v6,
.ksla-course-detail-page-v6 .ksla-bottom-v6 {
  background: var(--ksv6-bg);
}

.ksla-course-detail-page-v6 .ksla-final-cta {
  position: relative;
  overflow: hidden;
  padding: 30px 20px !important;
  border: 2px solid var(--ksv6-ink) !important;
  border-radius: 18px !important;
  background: var(--ksv6-orange) !important;
  color: var(--ksv6-white) !important;
  box-shadow: var(--ksv6-shadow-xl) !important;
}

.ksla-course-detail-page-v6 .ksla-final-cta::before {
  content: "★";
  position: absolute;
  top: 12px;
  right: 14px;
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border: 2px solid var(--ksv6-ink);
  border-radius: 8px;
  background: var(--ksv6-orange);
  color: var(--ksv6-white);
  transform: rotate(8deg);
}

.ksla-course-detail-page-v6 .ksla-final-cta::after {
  content: "♪";
  position: absolute;
  bottom: 14px;
  left: 14px;
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border: 2px solid var(--ksv6-ink);
  border-radius: 50%;
  background: var(--ksv6-sky);
  color: var(--ksv6-ink);
  transform: rotate(-12deg);
}

.ksla-course-detail-page-v6 .ksla-final-eyebrow {
  display: inline-block;
  margin: 0 0 12px;
  padding: 4px 12px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 999px;
  background: var(--ksv6-ink);
  color: var(--ksv6-white) !important;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.1em;
}

.ksla-course-detail-page-v6 .ksla-final-cta h2 {
  margin: 0 0 14px !important;
  color: var(--ksv6-white) !important;
  font-size: clamp(24px, 8vw, 32px) !important;
  line-height: 1.2 !important;
}

.ksla-course-detail-page-v6 .ksla-final-cta-lead {
  margin: 0 0 22px;
  color: var(--ksv6-white) !important;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.85;
}

.ksla-course-detail-page-v6 .ksla-final-points span {
  padding: 5px 11px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 999px;
  background: var(--ksv6-white);
  color: var(--ksv6-ink);
  font-size: 11px;
  font-weight: 900;
}

.ksla-course-detail-page-v6 .ksla-final-points span::before {
  content: "✓ ";
  color: var(--ksv6-orange);
}

.ksla-course-detail-page-v6 .ksla-final-cta .ksla-btn {
  width: 100%;
  margin-bottom: 10px;
  background: var(--ksv6-ink) !important;
  color: var(--ksv6-white) !important;
  box-shadow: 4px 4px 0 var(--ksv6-lime) !important;
}

.ksla-course-detail-page-v6 .ksla-final-link {
  padding: 8px 14px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 999px;
  background: var(--ksv6-white);
  color: var(--ksv6-ink) !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  box-shadow: var(--ksv6-shadow-sm);
}

@media (min-width: 768px) {
  .ksla-course-detail-page-v6 .ksla-section,
  .ksla-course-detail-page-v6 .ksla-course-detail-hero {
    padding-top: 78px;
    padding-bottom: 78px;
  }

  .ksla-course-detail-hero-shell {
    grid-template-columns: minmax(0, 1fr) 320px;
    align-items: center;
  }

  .ksla-course-detail-page-v6 .ksla-trust-grid-course-detail {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .ksla-course-detail-page-v6 .ksla-hero-shell {
    padding: 40px 44px 36px;
  }

  .ksla-course-detail-page-v6 .ksla-inline-cta .ksla-btn,
  .ksla-course-detail-page-v6 .ksla-hero-cta .ksla-btn {
    max-width: 360px;
    margin: 0 auto;
  }

  .ksla-courses-page-v6 .ksla-course-grid {
    gap: 24px;
  }

  .ksla-courses-page-v6 .ksla-course-content {
    padding: 32px;
  }

  .ksla-course-detail-page-v6 .ksla-course-detail-title {
    font-size: clamp(34px, 4.1vw, 50px);
  }
}

@media (min-width: 992px) {
  .ksla-courses-page-v6 .ksla-course-grid {
    gap: 28px;
  }

  .ksla-courses-page-v6 .ksla-course-content h3 {
    font-size: 24px;
  }

  .ksla-courses-page-v6 .ksla-course-content p {
    font-size: 14px;
  }

  .ksla-course-detail-hero-shell {
    grid-template-columns: minmax(0, 1fr) 380px;
    gap: 26px;
  }
}

/* --- Voice course detail (pairs with .ksla-course-detail-page-nail) --- */

.ksla-course-detail-page-voice .ksla-course-detail-hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0;
  margin: 0 0 14px;
  padding: 6px 16px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 999px;
  background: #dff6ff;
  color: var(--ksv6-ink);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.04em;
  box-shadow: var(--ksv6-shadow-sm);
}

.ksla-course-detail-page-voice .ksla-course-detail-title .hl {
  display: inline-block;
  margin: 4px 0;
  padding: 0 10px;
  border: 2px solid var(--ksv6-ink);
  background: var(--ksv6-sky);
  color: var(--ksv6-ink);
  transform: rotate(1deg);
  box-shadow: var(--ksv6-shadow-md);
}

.ksla-course-detail-page-voice .ksla-course-detail-hero-points li:nth-child(1) {
  background: var(--ksv6-sky);
  color: var(--ksv6-ink);
}

.ksla-course-detail-page-voice .ksla-course-detail-hero-points li:nth-child(2) {
  background: #dff6ff;
  color: #1d6f90;
}

.ksla-course-detail-page-voice .ksla-course-detail-hero-points li:nth-child(3) {
  background: #2f8fb4;
  color: #ffffff;
}

.ksla-course-detail-page-voice .ksla-course-detail-visual {
  background:
    radial-gradient(circle at 72% 28%, rgba(255, 255, 255, 0.75), transparent 22%),
    radial-gradient(circle at 40% 60%, #9ee5ff 0 10%, transparent 12%),
    radial-gradient(circle at 22% 40%, #c8f0ff 0 14%, transparent 16%),
    linear-gradient(135deg, #7fd4f6 0%, #dff6ff 55%, #f7fdff 100%);
}

.ksla-course-detail-page-voice .ksla-trust-grid-course-detail .ksla-trust-card:nth-child(1) .ksla-trust-tag {
  background: var(--ksv6-sky);
  color: var(--ksv6-ink);
}

.ksla-course-detail-page-voice .ksla-trust-grid-course-detail .ksla-trust-card:nth-child(2) .ksla-trust-tag {
  background: #dff6ff;
  color: #1d6f90;
}

.ksla-course-detail-page-voice .ksla-trust-grid-course-detail .ksla-trust-card:nth-child(3) .ksla-trust-tag {
  background: #2f8fb4;
  color: #ffffff;
}

.ksla-course-detail-page-voice .ksla-preview-label {
  background: var(--ksv6-sky);
  color: var(--ksv6-ink);
}

/* --- AI music course detail (pairs with nail/voice) --- */

.ksla-course-detail-page-ai-music .ksla-course-detail-hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0;
  margin: 0 0 14px;
  padding: 6px 16px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 999px;
  background: #dcfae8;
  color: #0f3b25;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.04em;
  box-shadow: var(--ksv6-shadow-sm);
}

.ksla-course-detail-page-ai-music .ksla-course-detail-title .hl {
  display: inline-block;
  margin: 4px 0;
  padding: 0 10px;
  border: 2px solid var(--ksv6-ink);
  background: #38c976;
  color: var(--ksv6-white);
  transform: rotate(-1deg);
  box-shadow: var(--ksv6-shadow-md);
}

.ksla-course-detail-page-ai-music .ksla-course-detail-hero-points li:nth-child(1) {
  background: #38c976;
  color: var(--ksv6-white);
}

.ksla-course-detail-page-ai-music .ksla-course-detail-hero-points li:nth-child(2) {
  background: #dcfae8;
  color: #0f3b25;
}

.ksla-course-detail-page-ai-music .ksla-course-detail-hero-points li:nth-child(3) {
  background: #179a52;
  color: var(--ksv6-white);
}

.ksla-course-detail-page-ai-music .ksla-trust-grid-course-detail {
  grid-template-columns: 1fr;
  gap: 14px;
}

.ksla-course-detail-page-ai-music .ksla-trust-grid-course-detail .ksla-trust-card:nth-child(1) .ksla-trust-tag {
  background: #38c976;
  color: var(--ksv6-white);
}

.ksla-course-detail-page-ai-music .ksla-trust-grid-course-detail .ksla-trust-card:nth-child(2) .ksla-trust-tag {
  background: #dcfae8;
  color: #0f3b25;
}

.ksla-course-detail-page-ai-music .ksla-trust-grid-course-detail .ksla-trust-card:nth-child(3) .ksla-trust-tag {
  background: #179a52;
  color: var(--ksv6-white);
}

.ksla-course-detail-page-ai-music .ksla-preview-label {
  background: #38c976;
  color: #0f3b25;
}

.ksla-course-detail-page-ai-music .ksla-ai-music-tiktok .ksla-section-head {
  margin-bottom: 18px;
}

.ksla-course-detail-page-ai-music .ksla-ai-music-tiktok-embed {
  display: flex;
  justify-content: center;
  padding: 12px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 18px;
  background: #ffffff;
  box-shadow: var(--ksv6-shadow-lg);
}

.ksla-course-detail-page-ai-music .ksla-ai-music-tiktok-embed .tiktok-embed {
  width: 100%;
  max-width: 780px !important;
  min-width: 280px !important;
  margin: 0 auto !important;
  padding-left: 0 !important;
  border-left: 0 !important;
}

.ksla-course-detail-page-ai-music .ksla-ai-music-tiktok-embed .tiktok-embed::before,
.ksla-course-detail-page-ai-music .ksla-ai-music-tiktok-embed .tiktok-embed::after {
  content: none !important;
  display: none !important;
}

/* Lesson cards inside course detail preview (v6 neo) */
.ksla-course-detail-page-v6 .ksla-cpt-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(214px, 1fr));
  gap: 14px;
}

.ksla-course-detail-page-v6 .ksla-cpt-card {
  border: 2px solid var(--ksv6-ink);
  border-radius: 16px;
  background: var(--ksv6-white);
  box-shadow: var(--ksv6-shadow-lg);
}

.ksla-course-detail-page-v6 .ksla-cpt-thumb {
  border-bottom: 2px solid var(--ksv6-ink);
  background: var(--ksv6-ink);
}

.ksla-course-detail-page-v6 .ksla-cpt-play {
  width: 34px;
  height: 34px;
  border: 1.5px solid rgba(23, 20, 17, 0.45);
  border-radius: 50%;
  box-shadow: 2px 2px 0 rgba(23, 20, 17, 0.14);
}

/* Hero直下のALL LESSONSは横カルーセル表示 */
#nail-all-lessons .ksla-cpt-grid,
#voice-all-lessons .ksla-cpt-grid,
#ai-music-all-lessons .ksla-cpt-grid {
  display: flex;
  gap: 14px;
  overflow-x: auto;
  padding-bottom: 8px;
  scroll-snap-type: x mandatory;
}

#nail-all-lessons .ksla-cpt-card,
#voice-all-lessons .ksla-cpt-card,
#ai-music-all-lessons .ksla-cpt-card {
  flex: 0 0 min(78vw, 280px);
  scroll-snap-align: start;
}


/* ########## END: css/kosoren-courses-v6.css ########## */


/* ########## BEGIN: css/kosoren-fixed-pages-v6.css ########## */

/*
  Shared neo-brutal v6 shell for fixed pages (not top / not course list-detail).
  Depends on: kosoren-ui-base.css
  Optional: load after kosoren-home-v6.css if you reuse identical FAQ/price patterns.
*/

:is(
    .ksla-beginner-page-v6,
    .ksla-pricing-page-v6,
    .ksla-faq-page-v6,
    .ksla-contact-page-v6,
    .ksla-thankyou-page-v6,
    .ksla-legal-page-v6,
    .ksla-auth-page-v6
  ) {
  --ksv6-ink: #171411;
  --ksv6-bg: #faf6f0;
  --ksv6-white: #fffdf9;
  --ksv6-muted: #625b56;
  --ksv6-orange: #f8662f;
  --ksv6-pink: #ef7aa8;
  --ksv6-sky: #7fd4f6;
  --ksv6-lime: #d8ee7b;
  --ksv6-orange-soft: #ffe3d8;
  --ksv6-shadow-sm: 2px 2px 0 var(--ksv6-ink);
  --ksv6-shadow-md: 3px 3px 0 var(--ksv6-ink);
  --ksv6-shadow-lg: 4px 4px 0 var(--ksv6-ink);
  --ksv6-shadow-xl: 5px 5px 0 var(--ksv6-ink);
  color: var(--ksv6-ink);
  background:
    radial-gradient(circle at 84% 8%, rgba(248, 102, 47, 0.08), transparent 32%),
    radial-gradient(circle at 12% 88%, rgba(127, 212, 246, 0.12), transparent 34%),
    linear-gradient(180deg, #faf6f0 0%, #f5efe4 100%);
}

:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) .ksla-section {
  padding-top: 56px;
  padding-bottom: 56px;
}

:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) .ksla-section-head {
  margin-bottom: 28px;
}

:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) .ksla-section-head h2,
:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) .ksla-section-head h1,
:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) .ksla-section-row h2,
:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) .ksla-section-row h1 {
  color: var(--ksv6-ink);
  font-weight: 900;
  letter-spacing: -0.03em;
}

:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) .ksla-more-link {
  color: var(--ksv6-ink) !important;
  font-weight: 900 !important;
  text-decoration: none !important;
  border-bottom: 2px solid currentColor;
}

:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) .ksla-more-link:hover {
  color: var(--ksv6-orange) !important;
  border-bottom-color: var(--ksv6-orange);
}

:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) article.ksla-trust-card h3 {
  margin: 0 0 8px !important;
  font-size: 17px !important;
  font-weight: 900 !important;
  line-height: 1.35 !important;
  color: var(--ksv6-ink) !important;
}

:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) article.ksla-trust-card p {
  color: var(--ksv6-muted);
  font-size: 13px;
  line-height: 1.65;
}

:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) .ksla-final-cta > a.ksla-btn ~ a.ksla-btn {
  margin-top: 12px;
}

:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) .ksla-section-lead {
  color: var(--ksv6-muted);
}

:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) .ksla-section-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 12px;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.12em;
}

:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) .ksla-num-tile {
  display: inline-grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border: 2px solid var(--ksv6-ink);
  border-radius: 8px;
  background: var(--ksv6-white);
  color: var(--ksv6-ink);
  box-shadow: var(--ksv6-shadow-sm);
}

:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) .ksla-btn {
  border: 2px solid var(--ksv6-ink);
  border-radius: 14px;
  font-weight: 900;
}

:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) .ksla-btn-primary {
  background: var(--ksv6-orange);
  color: var(--ksv6-white);
  box-shadow: 4px 4px 0 var(--ksv6-ink);
}

:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) .ksla-btn-secondary {
  background: var(--ksv6-white);
  color: var(--ksv6-ink);
  box-shadow: var(--ksv6-shadow-md);
}

:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) .ksla-btn:hover {
  transform: translate(2px, 2px);
}

.ksla-faq-page-v6 .ksla-faq-cta {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}

:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) .ksla-trust-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) .ksla-trust-card {
  position: relative;
  padding: 28px 20px 20px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 18px;
  background: var(--ksv6-white);
  box-shadow: var(--ksv6-shadow-lg);
}

:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) .ksla-trust-tag {
  position: absolute;
  top: -12px;
  left: 16px;
  padding: 3px 10px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 8px;
  font-size: 11px;
  font-weight: 900;
  box-shadow: var(--ksv6-shadow-sm);
}

:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6)
  .ksla-trust-card:nth-child(1)
  .ksla-trust-tag {
  background: var(--ksv6-orange);
  color: var(--ksv6-white);
}

:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6)
  .ksla-trust-card:nth-child(2)
  .ksla-trust-tag {
  background: var(--ksv6-sky);
  color: var(--ksv6-ink);
}

:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6)
  .ksla-trust-card:nth-child(3)
  .ksla-trust-tag {
  background: var(--ksv6-pink);
  color: var(--ksv6-white);
}

:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) .ksla-faq-mini {
  border: 2px solid var(--ksv6-ink);
  border-radius: 18px;
  background: var(--ksv6-white);
  box-shadow: var(--ksv6-shadow-lg);
}

:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) .ksla-faq-mini details {
  margin-bottom: 10px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 10px;
  background: var(--ksv6-white);
  box-shadow: var(--ksv6-shadow-md);
}

:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) .ksla-faq-mini summary {
  position: relative;
  cursor: pointer;
  padding: 14px 16px 14px 44px;
  font-weight: 900;
  list-style: none;
}

:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) .ksla-faq-mini summary::-webkit-details-marker {
  display: none;
}

:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) .ksla-faq-mini summary::before {
  content: "▾";
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 999px;
  display: grid;
  place-items: center;
  font-size: 11px;
  line-height: 1;
  font-weight: 900;
  background: var(--ksv6-white);
}

:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) .ksla-faq-mini details[open] summary::before {
  transform: translateY(-50%) rotate(180deg);
}

:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) .ksla-faq-mini details p {
  border-top: 2px dashed var(--ksv6-ink);
  color: var(--ksv6-ink);
  margin: 0;
  padding: 12px 16px 14px 44px;
  font-weight: 600;
}

:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) .ksla-final-cta {
  border: 2px solid var(--ksv6-ink);
  border-radius: 18px;
  background: var(--ksv6-orange);
  color: var(--ksv6-white);
  box-shadow: var(--ksv6-shadow-xl);
}

:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) .ksla-final-cta h2 {
  color: var(--ksv6-white);
}

:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) .ksla-final-cta .ksla-section-lead,
:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) .ksla-final-cta .ksla-final-cta-lead {
  color: rgba(255, 253, 249, 0.94);
  max-width: none;
}

:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) .ksla-legal-block,
:is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) .ksla-legal-table-card {
  border: 2px solid var(--ksv6-ink);
  border-radius: 18px;
  background: var(--ksv6-white);
  box-shadow: var(--ksv6-shadow-lg);
}

.ksla-auth-page-v6 .ksla-auth-card,
.ksla-auth-page-v6 .ksla-login-card,
.ksla-auth-page-v6 .ksla-register-card,
.ksla-auth-page-v6 .ksla-password-card,
.ksla-auth-page-v6 .ksla-account-pms-card {
  border: 2px solid var(--ksv6-ink);
  border-radius: 22px;
  background: var(--ksv6-white);
  box-shadow: var(--ksv6-shadow-lg);
}

.ksla-auth-page-v6 .ksla-account-hero-cta,
.ksla-contact-page-v6 .ksla-contact-hero-cta,
.ksla-thankyou-page-v6 .ksla-thankyou-hero-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 20px;
}

.ksla-thankyou-page-v6 .ksla-thanks-hero-kicker,
.ksla-legal-page-v6 .ksla-legal-hero-kicker {
  margin: -4px 0 10px;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.1em;
  color: var(--ksv6-muted);
}

.ksla-auth-page-v6 .ksla-account-course-band.ksla-courses-page-v6,
.ksla-thankyou-page-v6 .ksla-thankyou-course-band.ksla-courses-page-v6 {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  color: inherit;
}

.ksla-auth-page-v6 .ksla-account-course-band .ksla-section-head,
.ksla-thankyou-page-v6 .ksla-thankyou-course-band .ksla-section-head {
  margin-bottom: 24px;
}

.ksla-auth-page-v6 .ksla-account-history-shell .ksla-cpt-grid {
  display: flex;
  gap: 12px;
  overflow-x: auto;
  padding-bottom: 8px;
  scroll-snap-type: x mandatory;
}

.ksla-auth-page-v6 .ksla-account-history-shell .ksla-cpt-card {
  flex: 0 0 min(78vw, 280px);
  scroll-snap-align: start;
}

.ksla-contact-page-v6 a.ksla-trust-card,
.ksla-thankyou-page-v6 a.ksla-trust-card {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  text-decoration: none;
  color: inherit;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.ksla-contact-page-v6 a.ksla-trust-card:hover,
.ksla-thankyou-page-v6 a.ksla-trust-card:hover {
  transform: translate(2px, 2px);
  box-shadow: var(--ksv6-shadow-md);
}

.ksla-contact-page-v6 .ksla-trust-icon,
.ksla-thankyou-page-v6 .ksla-trust-icon {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border: 2px solid var(--ksv6-ink);
  border-radius: 14px;
  background: var(--ksv6-orange-soft);
  color: var(--ksv6-ink);
  font-size: 17px;
  font-weight: 900;
  line-height: 1;
}

.ksla-contact-page-v6 a.ksla-trust-card h3,
.ksla-thankyou-page-v6 a.ksla-trust-card h3 {
  margin: 0 0 6px !important;
  font-size: 16px !important;
  font-weight: 900 !important;
  line-height: 1.35 !important;
  color: var(--ksv6-ink) !important;
}

.ksla-contact-page-v6 a.ksla-trust-card p,
.ksla-thankyou-page-v6 a.ksla-trust-card p {
  margin: 0;
  font-size: 12.5px;
  line-height: 1.55;
  color: var(--ksv6-muted);
}

.ksla-contact-page-v6 .ksla-contact-form-card {
  border: 2px solid var(--ksv6-ink);
  border-radius: 22px;
  background: var(--ksv6-white);
  box-shadow: var(--ksv6-shadow-lg);
}

@media (min-width: 768px) {
  :is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) .ksla-section {
    padding-top: 78px;
    padding-bottom: 78px;
  }

  :is(.ksla-beginner-page-v6, .ksla-thankyou-page-v6) .ksla-trust-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .ksla-contact-page-v6 .ksla-trust-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ksla-thankyou-page-v6 .ksla-trust-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  :is(.ksla-auth-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6) .ksla-section-head h1 {
    font-size: clamp(34px, 4.2vw, 48px);
  }

  .ksla-legal-page-v6 .ksla-legal-layout {
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 24px;
  }
}

/* --- Pricing + Register: same price-card language as top v6 --- */
:is(.ksla-pricing-page-v6, .ksla-auth-page-v6) .ksla-price-grid-four {
  grid-template-columns: 1fr;
  gap: 16px;
  max-width: none;
}

:is(.ksla-pricing-page-v6, .ksla-auth-page-v6) .ksla-price-card {
  padding: 24px 20px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 18px;
  box-shadow: var(--ksv6-shadow-lg);
  text-align: left;
}

:is(.ksla-pricing-page-v6, .ksla-auth-page-v6) .ksla-price-card-free {
  background: #eef8c9;
}

:is(.ksla-pricing-page-v6, .ksla-auth-page-v6) .ksla-price-card-nail {
  background: #ffeaf3;
}

:is(.ksla-pricing-page-v6, .ksla-auth-page-v6) .ksla-price-card-voice {
  background: #eaf8ff;
}

:is(.ksla-pricing-page-v6, .ksla-auth-page-v6) .ksla-price-card-main {
  background: var(--ksv6-orange);
  color: var(--ksv6-white);
  transform: none;
  box-shadow: var(--ksv6-shadow-xl);
}

:is(.ksla-pricing-page-v6, .ksla-auth-page-v6) .ksla-price-card h3 {
  margin: 0 0 14px;
  font-size: 20px;
  font-weight: 900;
  line-height: 1.45;
}

:is(.ksla-pricing-page-v6, .ksla-auth-page-v6) .ksla-price-card-main h3,
:is(.ksla-pricing-page-v6, .ksla-auth-page-v6) .ksla-price-card-main .ksla-price strong,
:is(.ksla-pricing-page-v6, .ksla-auth-page-v6) .ksla-price-card-main .ksla-price span,
:is(.ksla-pricing-page-v6, .ksla-auth-page-v6) .ksla-price-card-main .ksla-price small {
  color: var(--ksv6-white);
}

:is(.ksla-pricing-page-v6, .ksla-auth-page-v6) .ksla-price {
  margin: 0 0 18px;
  text-align: left;
}

:is(.ksla-pricing-page-v6, .ksla-auth-page-v6) .ksla-price span {
  display: inline;
  margin-right: 6px;
  font-size: 12px;
  font-weight: 800;
  color: var(--ksv6-muted);
}

:is(.ksla-pricing-page-v6, .ksla-auth-page-v6) .ksla-price strong {
  color: var(--ksv6-ink);
  font-size: 30px;
  font-weight: 900;
}

:is(.ksla-pricing-page-v6, .ksla-auth-page-v6) .ksla-price small {
  margin-left: 4px;
  font-size: 11px;
  font-weight: 700;
  color: var(--ksv6-muted);
}

:is(.ksla-pricing-page-v6, .ksla-auth-page-v6) .ksla-price-card ul {
  min-height: 0;
  margin: 0 0 18px;
  padding: 14px;
  border: 1.5px dashed var(--ksv6-ink);
  border-radius: 10px;
  background: var(--ksv6-white);
}

:is(.ksla-pricing-page-v6, .ksla-auth-page-v6) .ksla-price-card li {
  padding-left: 26px;
  color: var(--ksv6-ink);
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1.6;
}

:is(.ksla-pricing-page-v6, .ksla-auth-page-v6) .ksla-price-card li::before {
  display: grid;
  width: 18px;
  height: 18px;
  place-items: center;
  top: 1px;
  border: 1.5px solid var(--ksv6-ink);
  border-radius: 5px;
  background: var(--ksv6-white);
  color: var(--ksv6-ink);
  font-size: 11px;
  line-height: 1;
}

:is(.ksla-pricing-page-v6, .ksla-auth-page-v6) .ksla-price-button {
  min-height: 50px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 10px;
  background: var(--ksv6-white);
  color: var(--ksv6-ink);
  font-size: 13px;
  font-weight: 900;
  box-shadow: var(--ksv6-shadow-md);
}

:is(.ksla-pricing-page-v6, .ksla-auth-page-v6) .ksla-price-button-main {
  background: var(--ksv6-ink);
  color: var(--ksv6-white);
  box-shadow: 3px 3px 0 var(--ksv6-lime);
}

:is(.ksla-pricing-page-v6, .ksla-auth-page-v6) .ksla-price-note {
  margin-top: 22px;
  padding: 12px 14px;
  border: 2px dashed var(--ksv6-ink);
  border-radius: 10px;
  background: var(--ksv6-white);
  font-size: 11.5px;
  font-weight: 700;
  line-height: 1.85;
  text-align: center;
}

@media (min-width: 992px) {
  :is(.ksla-pricing-page-v6, .ksla-auth-page-v6) .ksla-price-grid-four {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  :is(.ksla-beginner-page-v6, .ksla-pricing-page-v6, .ksla-faq-page-v6, .ksla-contact-page-v6, .ksla-thankyou-page-v6, .ksla-legal-page-v6, .ksla-auth-page-v6) .ksla-section-head h1 {
    font-size: clamp(38px, 4vw, 56px);
  }

  .ksla-legal-page-v6 .ksla-legal-layout {
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 32px;
  }

  .ksla-auth-page-v6 .ksla-preview-v6 .ksla-cpt-grid,
  .ksla-thankyou-page-v6 .ksla-preview-v6 .ksla-cpt-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* --- 認証 / Thank you: 体験プレビューを courses 系に近いネオに --- */
.ksla-auth-page-v6 .ksla-preview-v6 .ksla-preview-block,
.ksla-thankyou-page-v6 .ksla-preview-v6 .ksla-preview-block {
  margin-bottom: 24px;
  padding: 22px 20px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 18px;
  background: var(--ksv6-white);
  box-shadow: var(--ksv6-shadow-lg);
}

.ksla-auth-page-v6 .ksla-preview-v6 .ksla-preview-head,
.ksla-thankyou-page-v6 .ksla-preview-v6 .ksla-preview-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.ksla-auth-page-v6 .ksla-preview-v6 .ksla-preview-head h3,
.ksla-thankyou-page-v6 .ksla-preview-v6 .ksla-preview-head h3 {
  font-size: 18px;
  font-weight: 900;
  line-height: 1.35;
  color: var(--ksv6-ink);
}

.ksla-auth-page-v6 .ksla-preview-v6 .ksla-preview-label,
.ksla-thankyou-page-v6 .ksla-preview-v6 .ksla-preview-label {
  display: inline-flex;
  margin: 0 0 4px;
  padding: 3px 9px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 6px;
  background: var(--ksv6-pink);
  color: var(--ksv6-white);
  font-size: 10px;
  font-weight: 900;
}

.ksla-auth-page-v6 .ksla-preview-v6 .ksla-preview-block-voice .ksla-preview-label,
.ksla-thankyou-page-v6 .ksla-preview-v6 .ksla-preview-block-voice .ksla-preview-label {
  background: var(--ksv6-sky);
  color: var(--ksv6-ink);
}


/* ########## END: css/kosoren-fixed-pages-v6.css ########## */


/* ########## BEGIN: css/kosoren-watch.css ########## */

/*
  Watch / lesson playback + restriction UI.
  Depends on: kosoren-ui-base.css
  :is(body.single-video, body.single-ks_lesson) covers legacy video CPT and ks_lesson singles.
  Extracted from kosoren-additional-css-full.css (section 6).
*/

/* ========================================
   6. Watch Page
   ======================================== */

:is(body.single-video, body.single-ks_lesson) {
  overflow-x: hidden;
  background: #ffffff !important;
}

:is(body.single-video, body.single-ks_lesson) .page-header,
:is(body.single-video, body.single-ks_lesson) .page-header-inner,
:is(body.single-video, body.single-ks_lesson) .breadcrumb,
:is(body.single-video, body.single-ks_lesson) .vk_breadcrumb,
:is(body.single-video, body.single-ks_lesson) #breadcrumb,
:is(body.single-video, body.single-ks_lesson) .entry-header,
:is(body.single-video, body.single-ks_lesson) .entry-title,
:is(body.single-video, body.single-ks_lesson) .entry-meta,
:is(body.single-video, body.single-ks_lesson) .entry-footer,
:is(body.single-video, body.single-ks_lesson) .veu_socialSet,
:is(body.single-video, body.single-ks_lesson) .postNextPrev,
:is(body.single-video, body.single-ks_lesson) [class*="share"],
:is(body.single-video, body.single-ks_lesson) [class*="social"],
:is(body.single-video, body.single-ks_lesson) .tagcloud,
:is(body.single-video, body.single-ks_lesson) .post-categories,
:is(body.single-video, body.single-ks_lesson) .sub-section,
:is(body.single-video, body.single-ks_lesson) .sidebar,
:is(body.single-video, body.single-ks_lesson) aside:not(.ksla-watch-side),
:is(body.single-video, body.single-ks_lesson) .widget,
:is(body.single-video, body.single-ks_lesson) .widget-area {
  display: none !important;
}

:is(body.single-video, body.single-ks_lesson) .site-body,
:is(body.single-video, body.single-ks_lesson) .siteContent,
:is(body.single-video, body.single-ks_lesson) .site-content,
:is(body.single-video, body.single-ks_lesson) .main-section,
:is(body.single-video, body.single-ks_lesson) #main,
:is(body.single-video, body.single-ks_lesson) main,
:is(body.single-video, body.single-ks_lesson) .container,
:is(body.single-video, body.single-ks_lesson) .container-lg,
:is(body.single-video, body.single-ks_lesson) .entry-body,
:is(body.single-video, body.single-ks_lesson) .entry-content,
:is(body.single-video, body.single-ks_lesson) .post_content,
:is(body.single-video, body.single-ks_lesson) article,
:is(body.single-video, body.single-ks_lesson) .type-video {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

:is(body.single-video, body.single-ks_lesson) .entry-content > p:empty,
:is(body.single-video, body.single-ks_lesson) .post_content > p:empty {
  display: none !important;
}

:is(body.single-video, body.single-ks_lesson) .site-footer,
:is(body.single-video, body.single-ks_lesson) footer {
  margin-top: 0 !important;
}

.ksla-watch-page,
.ksla-watch-video-first,
.ksla-watch-video-section,
.ksla-watch-video-first .ksla-container,
.ksla-watch-video-section .ksla-container {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.ksla-watch-video-first,
.ksla-watch-video-section,
.ksla-watch-video-wrap {
  background: #000000 !important;
}

/* Cloudflare Stream 埋め込み（PHP はクラスのみ。旧インライン16:9とも併用可） */
.ksla-cf-stream-embed {
  position: relative;
  display: block;
  width: 100%;
  margin: 0;
  padding-top: 56.25%;
  overflow: hidden;
}

.ksla-cf-stream-embed__frame {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

.ksla-watch-video-wrap {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.ksla-watch-video-wrap div[style*="padding-top"] {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding-top: 56.25% !important;
  overflow: hidden !important;
}

.ksla-watch-video-wrap div[style*="padding-top"] iframe {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  border: 0 !important;
}

.ksla-watch-info-section {
  padding: 34px 0 0;
}

.ksla-watch-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 22px;
  color: var(--ksla-muted);
  font-size: 13px;
  line-height: 1.6;
}

.ksla-watch-breadcrumb a {
  color: var(--ksla-blue-2) !important;
  font-weight: 700 !important;
}

.ksla-watch-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 28px;
  align-items: start;
}

.ksla-watch-main {
  min-width: 0;
}

.ksla-watch-title-block {
  margin-bottom: 28px;
}

.ksla-watch-nav-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(132px, 1.15fr) minmax(0, 1fr);
  gap: 10px;
  margin-top: 14px;
  align-items: stretch;
}

.ksla-watch-nav-actions .ksla-btn {
  min-height: 56px;
  width: 100%;
  padding-inline: 10px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 14px;
  font-size: 13px;
  font-weight: 900;
  line-height: 1.2;
  white-space: nowrap;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.ksla-watch-nav-placeholder {
  display: block;
}

.ksla-watch-nav-actions .ksla-btn-primary {
  background: var(--ksv6-orange);
  color: var(--ksv6-white);
  box-shadow: 4px 4px 0 var(--ksv6-ink);
}

.ksla-watch-nav-actions .ksla-btn-secondary {
  background: #ffffff;
  color: var(--ksv6-ink);
  box-shadow: var(--ksv6-shadow-md);
}

.ksla-watch-nav-actions .ksla-btn:hover {
  transform: translate(2px, 2px);
}

.ksla-watch-nav-actions .ksla-btn-secondary:hover,
.ksla-watch-nav-actions .ksla-btn-secondary:focus-visible {
  border-color: var(--ksv6-ink);
  color: var(--ksv6-ink);
  box-shadow: var(--ksv6-shadow-md);
}

.ksla-watch-labels {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 14px;
}

.ksla-watch-label {
  display: inline-flex;
  min-height: 28px;
  align-items: center;
  padding: 5px 10px;
  border-radius: var(--ksla-radius-pill);
  color: #ffffff;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.4;
}

.ksla-watch-label-member { background: var(--ksla-blue-2); }
.ksla-watch-label-paid { background: var(--ksla-coral); }
.ksla-watch-label-nail { background: var(--ksla-pink); }
.ksla-watch-label-voice { background: var(--ksla-aqua); }
.ksla-watch-label-free {
  background: var(--ksla-blue-soft);
  color: var(--ksla-blue-dark);
}

.ksla-watch-side {
  position: sticky;
  top: 24px;
  display: grid;
  gap: 14px;
}

.ksla-watch-description,
.ksla-watch-card {
  padding: 26px;
  border: 1px solid var(--ksla-border);
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: var(--ksla-shadow-soft);
}

.ksla-watch-card {
  padding: 20px;
  border-radius: 22px;
}

.ksla-watch-card-soft {
  background: #fff8f3;
}

.ksla-watch-card h2 {
  margin-bottom: 12px !important;
  color: var(--ksla-text) !important;
  font-size: 16px !important;
  line-height: 1.5 !important;
}

.ksla-watch-card p {
  color: var(--ksla-muted);
  font-size: 13px;
  line-height: 1.8;
}

.ksla-watch-plan-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.ksla-watch-plan-list span {
  display: inline-flex;
  padding: 6px 9px;
  border-radius: var(--ksla-radius-pill);
  background: var(--ksla-blue-soft);
  color: var(--ksla-blue-dark);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.3;
}

.ksla-watch-side-links {
  display: grid;
  gap: 8px;
}

.ksla-watch-side-links a {
  display: block;
  padding: 10px 12px;
  border-radius: 12px;
  background: var(--ksla-bg);
  color: var(--ksla-blue-2) !important;
  font-size: 13px;
  font-weight: 700 !important;
  line-height: 1.45;
}

.ksla-watch-side-links a:hover {
  background: var(--ksla-blue-soft);
  color: var(--ksla-blue-dark) !important;
}

.ksla-watch-point-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  margin-top: 18px;
}

.ksla-watch-point-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 14px;
  background: var(--ksla-bg-soft);
}

.ksla-watch-point-item::before {
  content: "✓";
  display: flex;
  width: 22px;
  height: 22px;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border-radius: 50%;
  background: var(--ksla-coral-soft);
  color: var(--ksla-coral);
  font-size: 11px;
  font-weight: 800;
}

.kosoren-restrict-message {
  display: grid;
  place-items: center;
  min-height: 360px;
  padding: 36px 24px;
  color: var(--ksla-text);
  background:
    radial-gradient(circle at 80% 16%, rgba(255, 210, 222, 0.34), transparent 30%),
    linear-gradient(135deg, #ffffff 0%, #fff8ef 100%);
  text-align: center;
}

.kosoren-restrict-icon {
  display: grid;
  width: 64px;
  height: 64px;
  place-items: center;
  margin-bottom: 14px;
  border-radius: 50%;
  background: #ffffff;
  color: var(--ksla-coral);
  font-size: 24px;
  box-shadow: var(--ksla-shadow-soft);
}

.kosoren-restrict-label {
  display: inline-flex;
  margin-bottom: 12px;
  padding: 5px 12px;
  border-radius: var(--ksla-radius-pill);
  background: var(--ksla-coral-soft);
  color: var(--ksla-coral-dark);
  font-size: 12px;
  font-weight: 800;
}

.kosoren-restrict-message h2 {
  margin-bottom: 10px !important;
  color: var(--ksla-text) !important;
  font-size: clamp(22px, 3vw, 30px) !important;
  line-height: 1.45 !important;
}

.kosoren-restrict-message p {
  max-width: 34em;
  color: var(--ksla-muted);
  font-size: 14px;
  line-height: 1.8;
}

.kosoren-restrict-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  margin-top: 22px;
}

.kosoren-restrict-primary,
.kosoren-restrict-secondary {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  padding: 12px 22px;
  border-radius: var(--ksla-radius-pill);
  font-size: 14px;
  font-weight: 700 !important;
}

.kosoren-restrict-primary {
  background: var(--ksla-coral);
  color: #ffffff !important;
}

.kosoren-restrict-secondary {
  border: 1px solid var(--ksla-border);
  background: #ffffff;
  color: var(--ksla-text) !important;
}

.kosoren-restrict-message-free .kosoren-restrict-label {
  background: var(--ksla-blue-soft);
  color: var(--ksla-blue-dark);
}

.kosoren-restrict-message-nail .kosoren-restrict-label {
  background: var(--ksla-pink-soft);
  color: var(--ksla-pink-dark);
}

.kosoren-restrict-message-voice .kosoren-restrict-label {
  background: var(--ksla-aqua-soft);
  color: var(--ksla-aqua-dark);
}

.pms-content-restricted-message p:has(.kosoren-restrict-message),
.pms_restricted p:has(.kosoren-restrict-message),
p:has(.kosoren-restrict-message) {
  margin: 0 !important;
}

/* v6 neo-brutal alignment when watch root uses site tokens */
.ksla-watch-page .kosoren-restrict-message {
  border: 2px solid #171411;
  border-radius: 18px;
  box-shadow: 4px 4px 0 #171411;
}

.ksla-watch-page .kosoren-restrict-primary,
.ksla-watch-page .kosoren-restrict-secondary {
  border: 2px solid #171411;
  border-radius: 12px;
  font-weight: 900;
}

.ksla-watch-page .kosoren-restrict-primary {
  box-shadow: 3px 3px 0 rgba(233, 79, 61, 0.35);
}

.ksla-watch-page .kosoren-restrict-secondary {
  box-shadow: 2px 2px 0 #171411;
}

/* 視聴ページ「関連動画」内カード — v6 ネオ（トップ / コース詳細の ksla-cpt と揃える） */
.ksla-watch-page .ksla-watch-related .ksla-cpt-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(214px, 1fr));
  gap: 14px;
}

.ksla-watch-page .ksla-watch-related .ksla-cpt-card {
  overflow: hidden;
  border: 2px solid #171411;
  border-radius: 16px;
  background: #fffdf9;
  box-shadow: 4px 4px 0 #171411;
}

.ksla-watch-page .ksla-watch-related .ksla-cpt-card:hover {
  transform: translate(-1px, -1px);
  box-shadow: 5px 5px 0 #171411;
}

.ksla-watch-page .ksla-watch-related .ksla-cpt-thumb {
  border-bottom: 2px solid #171411;
  background: #171411;
}

.ksla-watch-page .ksla-watch-related .ksla-cpt-badge,
.ksla-watch-page .ksla-watch-related .ksla-cpt-time {
  border: 1.5px solid #171411;
  border-radius: 6px;
  font-weight: 900;
}

.ksla-watch-page .ksla-watch-related .ksla-cpt-badge-free {
  background: #d8ee7b;
  color: #171411;
}

.ksla-watch-page .ksla-watch-related .ksla-cpt-badge-nail {
  background: #ef7aa8;
  color: #fffdf9;
}

.ksla-watch-page .ksla-watch-related .ksla-cpt-badge-voice {
  background: #7fd4f6;
  color: #171411;
}

.ksla-watch-page .ksla-watch-related .ksla-cpt-time,
.ksla-watch-page .ksla-watch-related .ksla-cpt-play {
  background: #fffdf9;
  color: #171411;
}

.ksla-watch-page .ksla-watch-related .ksla-cpt-play {
  width: 34px;
  height: 34px;
  border: 1.5px solid #171411;
  border-radius: 50%;
  background: rgba(255, 253, 249, 0.94);
  color: #2f78b5;
  font-size: 12px;
  line-height: 1;
  box-shadow: 2px 2px 0 rgba(23, 20, 17, 0.14);
}

.ksla-watch-page .ksla-watch-related .ksla-cpt-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ksla-watch-page .ksla-watch-related .ksla-cpt-body {
  padding: 14px 14px 16px;
}

.ksla-watch-page .ksla-watch-related .ksla-cpt-title {
  color: #171411;
  font-size: 15px;
  font-weight: 900;
}

@media (max-width: 767px) {
  .ksla-watch-page .ksla-watch-related .ksla-cpt-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
}

@media (min-width: 768px) {
  .ksla-watch-page .ksla-watch-layout {
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 24px;
    align-items: start;
  }

  .ksla-watch-page .ksla-watch-related .ksla-cpt-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
  }
}

@media (min-width: 992px) {
  .ksla-watch-page .ksla-watch-layout {
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: 28px;
  }

  .ksla-watch-page .ksla-watch-title {
    font-size: clamp(30px, 2.9vw, 38px);
  }

  .ksla-watch-page .ksla-watch-related .ksla-cpt-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
  }
}

/* ============================================================
   Watch page full v6 shell (トークン・本文・ラベル・説明カード)
   `.ksla-home-v6` が無いためルートに --ksv6-* を複製。
   ============================================================ */

body.single-ks_lesson:has(.ksla-watch-page),
body.single-video:has(.ksla-watch-page) {
  background: #faf6f0 !important;
}

.ksla-page.ksla-watch-page {
  --ksv6-ink: #171411;
  --ksv6-bg: #faf6f0;
  --ksv6-white: #fffdf9;
  --ksv6-muted: #625b56;
  --ksv6-orange: #f8662f;
  --ksv6-pink: #ef7aa8;
  --ksv6-sky: #7fd4f6;
  --ksv6-lime: #d8ee7b;
  --ksv6-orange-soft: #ffe3d8;
  --ksv6-shadow-sm: 2px 2px 0 var(--ksv6-ink);
  --ksv6-shadow-md: 3px 3px 0 var(--ksv6-ink);
  --ksv6-shadow-lg: 4px 4px 0 var(--ksv6-ink);
  --ksv6-shadow-xl: 5px 5px 0 var(--ksv6-ink);
  color: var(--ksv6-ink);
  background:
    radial-gradient(circle at 84% 8%, rgba(248, 102, 47, 0.08), transparent 32%),
    radial-gradient(circle at 12% 88%, rgba(127, 212, 246, 0.12), transparent 34%),
    linear-gradient(180deg, #faf6f0 0%, #f5efe4 100%) !important;
}

.ksla-watch-page .ksla-section {
  padding-top: 56px;
  padding-bottom: 56px;
}

.ksla-watch-page .ksla-watch-info-section {
  padding-top: 40px;
}

.ksla-watch-page .ksla-watch-breadcrumb {
  color: var(--ksv6-muted);
}

.ksla-watch-page .ksla-watch-breadcrumb a {
  color: var(--ksv6-ink) !important;
  font-weight: 900 !important;
  text-decoration: none !important;
  border-bottom: 2px solid currentColor;
}

.ksla-watch-page .ksla-watch-breadcrumb a:hover {
  color: var(--ksv6-orange) !important;
  border-bottom-color: var(--ksv6-orange);
}

.ksla-watch-page .ksla-watch-label {
  min-height: 0;
  padding: 5px 10px;
  border-radius: 6px;
  border: 1.5px solid var(--ksv6-ink);
  font-weight: 900;
  box-shadow: var(--ksv6-shadow-sm);
}

.ksla-watch-page .ksla-watch-label-paid {
  background: var(--ksv6-orange);
  color: var(--ksv6-white);
}

.ksla-watch-page .ksla-watch-label-free {
  background: var(--ksv6-lime);
  color: var(--ksv6-ink);
}

.ksla-watch-page .ksla-watch-label-nail {
  background: var(--ksv6-pink);
  color: var(--ksv6-white);
}

.ksla-watch-page .ksla-watch-label-voice {
  background: var(--ksv6-sky);
  color: var(--ksv6-ink);
}

.ksla-watch-page .ksla-watch-label-duration {
  background: var(--ksv6-ink);
  color: var(--ksv6-white);
}

.ksla-watch-page .ksla-watch-title {
  margin: 0;
  font-size: clamp(22px, 3vw, 30px);
  font-weight: 900;
  line-height: 1.35;
  letter-spacing: -0.03em;
  color: var(--ksv6-ink);
}

.ksla-watch-page .ksla-watch-description-lead:has(+ .ksla-watch-points-heading) {
  margin-bottom: 24px;
}

.ksla-watch-page .ksla-watch-description :where(p, li) {
  color: var(--ksv6-muted);
}

.ksla-watch-page .ksla-watch-description a {
  color: var(--ksv6-ink);
  font-weight: 800;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}

.ksla-watch-page .ksla-watch-description a:hover {
  color: var(--ksv6-orange);
}

.ksla-watch-page .ksla-watch-points-heading {
  margin: 0 0 12px;
  font-size: 16px;
  font-weight: 900;
  color: var(--ksv6-ink);
}

.ksla-watch-page .ksla-watch-related-heading {
  margin: 0;
  font-size: clamp(20px, 2.4vw, 26px);
  font-weight: 900;
  letter-spacing: -0.03em;
  color: var(--ksv6-ink);
}

.ksla-watch-page .ksla-watch-course-back {
  margin-top: 22px;
  padding-top: 18px;
  border-top: 2px dashed var(--ksv6-ink);
}

.ksla-watch-page .ksla-watch-course-back-link {
  display: inline-block;
  font-size: 14px;
  font-weight: 900 !important;
  color: var(--ksv6-ink) !important;
  text-decoration: none !important;
  border-bottom: 2px solid var(--ksv6-orange);
}

.ksla-watch-page .ksla-watch-course-back-link:hover {
  color: var(--ksv6-orange) !important;
  border-bottom-color: var(--ksv6-orange);
}

.ksla-watch-page .ksla-more-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 14px;
  border: 2px solid var(--ksv6-ink);
  border-radius: 10px;
  background: var(--ksv6-white);
  color: var(--ksv6-ink) !important;
  font-size: 14px;
  font-weight: 900 !important;
  line-height: 1.3;
  text-decoration: none !important;
  white-space: nowrap;
  box-shadow: var(--ksv6-shadow-sm);
  transition:
    transform 0.18s ease,
    box-shadow 0.18s ease,
    background-color 0.18s ease;
}

.ksla-watch-page .ksla-more-link:hover {
  transform: translate(-1px, -1px);
  box-shadow: var(--ksv6-shadow-md);
  color: var(--ksv6-ink) !important;
}

.ksla-watch-page .ksla-watch-description,
.ksla-watch-page .ksla-watch-card {
  border: 2px solid var(--ksv6-ink);
  border-radius: 18px;
  background: var(--ksv6-white);
  box-shadow: var(--ksv6-shadow-lg);
}

.ksla-watch-page .ksla-watch-card {
  border-radius: 16px;
}

.ksla-watch-page .ksla-watch-card-soft {
  background: var(--ksv6-orange-soft);
}

.ksla-watch-page .ksla-watch-card h2 {
  color: var(--ksv6-ink) !important;
  font-weight: 900 !important;
}

.ksla-watch-page .ksla-watch-card p {
  color: var(--ksv6-muted);
}

.ksla-watch-page .ksla-watch-side-links a {
  border: 2px solid var(--ksv6-ink);
  border-radius: 10px;
  background: var(--ksv6-white);
  color: var(--ksv6-ink) !important;
  font-weight: 900 !important;
  box-shadow: var(--ksv6-shadow-sm);
}

.ksla-watch-page .ksla-watch-side-links a:hover {
  transform: translate(-1px, -1px);
  box-shadow: var(--ksv6-shadow-md);
  background: var(--ksv6-orange-soft);
  color: var(--ksv6-ink) !important;
}

.ksla-watch-page .ksla-watch-point-item {
  border: 2px solid var(--ksv6-ink);
  border-radius: 12px;
  background: var(--ksv6-white);
  box-shadow: var(--ksv6-shadow-sm);
}

.ksla-watch-page .ksla-watch-point-item::before {
  border-radius: 6px;
  border: 2px solid var(--ksv6-ink);
  background: var(--ksv6-orange-soft);
  color: var(--ksv6-ink);
  font-size: 12px;
}

.ksla-watch-page .ksla-watch-plan-list span {
  border: 1.5px solid var(--ksv6-ink);
  border-radius: 6px;
  background: var(--ksv6-lime);
  color: var(--ksv6-ink);
  font-weight: 900;
  box-shadow: var(--ksv6-shadow-sm);
}


/* ########## END: css/kosoren-watch.css ########## */


/* ########## BEGIN: css/kosoren-v6-404.css ########## */

/*
  404 page — v6-friendly card on top of base tokens.
  Depends on: kosoren-ui-base.css
*/

body.error404 {
  overflow-x: hidden;
  background:
    radial-gradient(circle at 84% 8%, rgba(248, 102, 47, 0.08), transparent 32%),
    radial-gradient(circle at 12% 88%, rgba(127, 212, 246, 0.12), transparent 34%),
    linear-gradient(180deg, #faf6f0 0%, #f5efe4 100%) !important;
  color: #171411;
}

body.error404 .page-header,
body.error404 .breadcrumb,
body.error404 .vk_breadcrumb,
body.error404 #breadcrumb,
body.error404 .sub-section,
body.error404 .sidebar,
body.error404 aside,
body.error404 .widget,
body.error404 .widget-area {
  display: none !important;
}

body.error404 .site-body,
body.error404 .siteContent,
body.error404 .site-content,
body.error404 .main-section,
body.error404 #main,
body.error404 main {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.error404 .main-section .container,
body.error404 .entry-body,
body.error404 .post_content,
body.error404 .entry-content {
  position: relative;
  width: min(760px, calc(100% - 40px)) !important;
  max-width: 760px !important;
  margin: 80px auto !important;
  padding: 46px 34px !important;
  border: 2px solid #171411;
  border-radius: 22px;
  background: #fffdf9;
  box-shadow: 5px 5px 0 #171411;
  text-align: center;
}

body.error404 .main-section .container::before {
  content: "404";
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  margin-bottom: 18px;
  padding: 6px 15px;
  border: 2px solid #171411;
  border-radius: 999px;
  background: #ffe3d8;
  color: #171411;
  font-size: 13px;
  font-weight: 900;
  line-height: 1.4;
  box-shadow: 2px 2px 0 #171411;
}

body.error404 h1,
body.error404 .entry-title {
  margin-bottom: 14px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: #171411 !important;
  font-size: clamp(28px, 5vw, 42px) !important;
  font-weight: 900 !important;
  line-height: 1.35 !important;
}

body.error404 h1::before,
body.error404 h1::after,
body.error404 .entry-title::before,
body.error404 .entry-title::after {
  display: none !important;
  content: none !important;
}

body.error404 p {
  margin: 0 auto 20px !important;
  color: var(--ksla-muted);
  font-size: 14px;
  line-height: 1.9;
}

body.error404 .search-form input[type="search"],
body.error404 form[role="search"] input[type="search"] {
  width: 100%;
  min-height: 50px;
  padding: 12px 14px;
  border: 2px solid #171411;
  border-radius: 12px;
  background: #ffffff;
  color: #171411;
  font-size: 16px;
}

body.error404 .search-form input[type="submit"],
body.error404 form[role="search"] input[type="submit"] {
  min-height: 50px;
  border: 2px solid #171411 !important;
  border-radius: 12px;
  background: #f8662f !important;
  color: #fffdf9 !important;
  font-weight: 900 !important;
  box-shadow: 3px 3px 0 #171411;
}


/* ########## END: css/kosoren-v6-404.css ########## */
