/* Campaign Page v7 — Money Charger */

  /* Breadcrumb */
  .breadcrumb {
    background: var(--mc-black);
    border-bottom: 1px solid var(--border-dark);
    font-size: 12px !important;
    line-height: 1.6 !important;
  }
  .breadcrumb * {
    font-size: inherit !important;
    line-height: inherit !important;
  }
  .breadcrumb-inner {
    max-width: var(--max-width); margin: 0 auto;
    padding: 12px 24px;
  }
  .breadcrumb ol {
    list-style: none; padding: 0; margin: 0;
    display: flex; flex-wrap: wrap; gap: 0;
    color: var(--mc-light-gray);
  }
  .breadcrumb li {
    display: inline-flex; align-items: center;
  }
  .breadcrumb li:not(:last-child)::after {
    content: '/';
    margin: 0 10px;
    color: var(--mc-light-gray);
    opacity: 0.5;
  }
  .breadcrumb a {
    color: var(--mc-light-gray);
    transition: color 0.2s;
  }
  .breadcrumb a:hover { color: var(--mc-yellow); }
  .breadcrumb [aria-current="page"] {
    color: var(--mc-white);
    font-weight: 700;
  }

  /* Header */
  .site-header {
    position: sticky; top: 0; z-index: 100;
    background: var(--mc-black);
    border-bottom: 1px solid var(--border-dark);
  }
  .header-inner {
    max-width: var(--max-width); margin: 0 auto;
    padding: 14px 24px;
    display: flex; align-items: center; justify-content: space-between;
  }
  .logo {
    display: flex; align-items: center; gap: 8px;
    font-family: var(--font-display); font-weight: 900; font-size: 18px;
  }
  .logo-mark {
    width: 28px; height: 28px;
    background: var(--mc-yellow); color: var(--mc-black);
    display: grid; place-items: center;
    border-radius: 6px; font-weight: 900;
  }
  .header-cta { display: flex; gap: 12px; align-items: center; }
  .btn-ghost-sm {
    color: var(--mc-white); font-size: 13px; padding: 8px 14px;
  }
  .btn-primary-sm {
    background: var(--mc-yellow); color: var(--mc-black);
    padding: 8px 16px; font-size: 13px; font-weight: 700; border-radius: 999px;
  }

  /* Status Bar */
  .status-bar {
    position: sticky; top: 0; z-index: 120;
    padding: 14px 24px; text-align: center;
    font-weight: 800; font-size: 16px;
    display: flex; align-items: center; justify-content: center;
    gap: 16px; flex-wrap: wrap;
  }
  body.admin-bar .campaign-page .status-bar {
    top: 32px;
  }
  @media (max-width: 782px) {
    body.admin-bar .campaign-page .status-bar {
      top: 46px;
    }
  }
  .status-bar.active, .status-bar.ongoing, .status-bar.weekly { background: var(--mc-mint); color: var(--mc-black); }
  .status-bar.fcfs, .status-bar.upcoming { background: var(--mc-yellow); color: var(--mc-black); }
  .status-bar.urgent { background: var(--campaign-coral); color: var(--mc-white); }
  .status-bar.ended { background: var(--mc-light-gray); color: var(--mc-black); }
  .status-bar.status-color-mint { background: var(--mc-mint); color: var(--mc-black); }
  .status-bar.status-color-yellow { background: var(--mc-yellow); color: var(--mc-black); }
  .status-bar.status-color-dark { background: var(--mc-black); color: var(--mc-white); }
  .status-bar.status-color-coral { background: var(--campaign-coral); color: var(--mc-white); }
  .status-bar.status-color-gray { background: var(--mc-light-gray); color: var(--mc-black); }
  .status-bar .dot {
    width: 8px; height: 8px;
    background: var(--mc-black); border-radius: 50%;
    animation: pulse 1.5s infinite;
  }
  .status-bar.urgent .dot { background: var(--mc-white); }
  @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.3; } }
  .status-bar .countdown {
    font-family: var(--font-mono); font-weight: 700;
    font-size: 20px;
    background: var(--mc-black); color: var(--mc-mint);
    padding: 7px 14px; border-radius: 5px;
  }
  .status-bar.urgent .countdown { color: var(--campaign-coral); }

  /* ============ 1. HERO (v5: サムネ背景廃止、幾何パターン背景) ============ */
  .hero {
    padding: clamp(58px, 8vw, 96px) 24px;
    position: relative; overflow: hidden;
    background: var(--mc-black);
    isolation: isolate;
  }
  .hero::before {
    content: '';
    position: absolute; inset: 0; z-index: 0;
    background:
      radial-gradient(ellipse 58% 48% at 50% 18%, rgba(245,197,24,0.08) 0%, transparent 64%),
      var(--mc-black);
  }
  .hero.has-bg-image::before {
    background:
      radial-gradient(ellipse 58% 52% at 50% 48%, rgba(0,0,0,0.80) 0%, rgba(0,0,0,0.68) 42%, rgba(0,0,0,0.24) 72%, transparent 100%),
      linear-gradient(180deg, rgba(12,12,12,0.78) 0%, rgba(12,12,12,0.94) 100%),
      var(--campaign-hero-bg) center center / cover no-repeat;
  }
  .hero::after { display: none; }
  .hero-inner {
    max-width: 560px; margin: 0 auto;
    text-align: center; position: relative; z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    row-gap: 0;
  }
  .hero-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 26px;
    padding: 4px 13px;
    border-radius: 999px;
    background: rgba(245,197,24,0.17);
    color: var(--mc-yellow);
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
    margin-bottom: 18px;
  }
  .hero-brokers {
    display: flex; align-items: center; justify-content: center;
    gap: 20px; margin-bottom: 24px;
    font-family: var(--font-display); font-weight: 900; font-size: 18px;
    color: var(--mc-light-gray);
  }
  .hero-brokers .x { color: var(--mc-yellow); font-size: 24px; }
  .hero-brokers .broker-logo {
    background: transparent;
    padding: 8px 18px; border-radius: 0; color: var(--mc-white);
    border: none;
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .hero-brokers .broker-logo.mcg {
    background: transparent; color: var(--mc-yellow);
    border-color: transparent;
  }
  .hero-brokers .broker-logo.has-image {
    min-width: 178px;
    padding: 4px 16px;
  }
  .hero-brokers .broker-logo.has-image img {
    width: auto;
    height: 44px;
    max-width: 210px;
    max-height: 44px;
    object-fit: contain;
  }
  .hero-title {
    font-weight: 900;
    font-size: clamp(24px, 5vw, 38px);
    line-height: 1.28;
    margin-bottom: 16px;
    color: var(--mc-white);
    display: inline-block;
    letter-spacing: 0;
    background: transparent;
    padding: 0;
  }
  .hero-title-main {
    font-size: inherit;
    display: block;
  }
  .mc-sp-only-break {
    display: none;
  }
  .hero-title-sub {
    font-size: 15px;
    line-height: 1.6;
    color: rgba(255,255,255,0.88);
    font-weight: 700;
    margin: 0 0 36px;
    white-space: normal;
  }
  @media (min-width: 768px) {
    .hero-title-sub { font-size: 16px; }
  }
  .hero-period {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    width: fit-content;
    max-width: 100%;
    color: rgba(255,255,255,0.88);
    margin: 10px auto 18px;
    align-self: center;
    font-family: var(--font-mono);
    background: #333333;
    border: none;
    border-radius: 7px;
    padding: 14px 22px;
    box-shadow: none;
    white-space: nowrap;
  }
  .hero-period-icon {
    width: 20px;
    height: 20px;
    object-fit: contain;
    flex: 0 0 auto;
  }
  .hero-period-label {
    color: rgba(255,255,255,0.46);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.12em;
  }
  .hero-period-value {
    color: #fff;
    font-size: 17px;
    font-weight: 900;
    line-height: 1.35;
    text-align: center;
  }
  .hero-period time {
    color: var(--mc-yellow);
    font-weight: 700;
  }
  .hero-prize-label {
    display: block;
    font-size: clamp(15px, 2vw, 20px);
    color: var(--mc-yellow);
    margin: 0 auto 16px;
    letter-spacing: 0.12em;
    font-family: var(--font-display);
    font-weight: 900;
    text-shadow: 0 0 24px rgba(245,197,24,0.28);
  }
  .hero-prize-row {
    display: flex; align-items: baseline; justify-content: center;
    gap: 6px;
    margin-bottom: 8px;
    width: 100%;
  }
  .hero-prize-image-wrap {
    width: min(86vw, 520px);
    margin: 0 auto 12px;
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .hero-prize-image {
    display: block;
    width: auto;
    max-width: 100%;
    max-height: clamp(84px, 17vw, 180px);
    object-fit: contain;
    filter: drop-shadow(0 18px 24px rgba(0,0,0,0.34));
  }
  .hero-prize-value {
    font-family: var(--font-mono); font-weight: 900;
    font-size: clamp(54px, 9vw, 76px);
    color: var(--mc-yellow); line-height: 1;
    letter-spacing: -0.02em;
    background: none;
    color: var(--mc-yellow);
    -webkit-text-fill-color: currentColor;
    text-shadow: none;
  }
  .hero-prize-unit {
    font-family: var(--font-mono); font-weight: 700;
    font-size: clamp(18px, 3vw, 26px);
    color: var(--mc-yellow);
    vertical-align: super;
    margin-left: 8px; letter-spacing: 0.08em;
  }
  .hero-cta-row {
    margin-top: 0;
    display: flex; gap: 16px; justify-content: center; flex-wrap: wrap;
  }

  /* Buttons */
  .btn-primary {
    background: var(--mc-yellow); color: var(--mc-black);
    font-weight: 900; font-size: 16px;
    padding: 18px 36px; border-radius: 999px;
    border: none; cursor: pointer;
    transition: all 0.2s;
    display: inline-flex; align-items: center; gap: 8px;
  }
  .btn-primary:hover { background: var(--mc-yellow-dark); transform: translateY(-1px); }
  /* v5.1: HERO主CTAだけgrow効果で視認性UP */
  .hero .btn-primary {
    min-width: min(100%, 285px);
    justify-content: center;
    box-shadow: 0 0 0 0 rgba(245,197,24,0.6);
    animation: heroCtaPulse 2.4s infinite;
  }
  .hero-note {
    margin: 12px 0 0;
    color: rgba(255,255,255,0.45);
    font-size: 12px;
    font-weight: 700;
  }
  @keyframes heroCtaPulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(245,197,24,0.45); }
    50% { box-shadow: 0 0 0 12px rgba(245,197,24,0); }
  }
  .btn-ghost {
    background: transparent; color: var(--mc-white);
    font-weight: 700; font-size: 14px;
    padding: 16px 28px;
    border: 1px solid var(--border-dark); border-radius: 999px;
    cursor: pointer; transition: border-color 0.2s;
  }
  .btn-ghost:hover { border-color: var(--mc-yellow); }

  /* Section base */
  section { padding: var(--section-py) 24px; }
  .section-alt { background: var(--sub-dark); }
  .section-inner { max-width: var(--max-width); margin: 0 auto; }
  .section-eyebrow {
    font-family: var(--font-display); font-weight: 700;
    font-size: 12px; letter-spacing: 0.1em;
    color: var(--mc-yellow); margin-bottom: 6px;
    text-align: center;
  }
  .section-title {
    font-size: clamp(24px, 3vw, 32px);
    font-weight: 800; line-height: 1.45;
    margin-bottom: 32px;
    text-align: center;
  }
  .section-title .accent { color: var(--mc-yellow); }
  .section-intro {
    font-size: 14px; color: var(--mc-light-gray);
    margin-top: -16px; margin-bottom: 40px;
    max-width: 720px;
    text-align: center;
    margin-left: auto;
    margin-right: auto;
  }
  .what-you-get-section {
    background: #F4F6F8;
    color: var(--mc-black);
  }
  .what-you-get-section .section-eyebrow {
    color: #333333;
    font-size: 12px;
    letter-spacing: 0.12em;
  }
  .what-you-get-section .section-title {
    color: var(--mc-black);
    font-size: clamp(24px, 3vw, 32px);
    line-height: 1.45;
    margin-bottom: 24px;
  }
  .what-you-get-section .section-title .accent {
    color: var(--mc-yellow);
  }
  .what-you-get-section .this-is-lead {
    max-width: 880px;
    margin: 0 auto 56px;
    background: transparent;
    border: 0;
    padding: 0;
    color: #333333;
    font-size: 15px;
    font-weight: 700;
    text-align: center;
    line-height: 1.8;
  }
  .what-you-get-section .this-is-lead strong {
    color: var(--mc-black);
  }
  .what-you-get-section .this-is-dl {
    max-width: 960px;
    margin: 0 auto;
    background: var(--mc-white);
    border: 0;
    border-radius: 16px;
    padding: 32px 42px;
    box-shadow: 0 28px 70px rgba(17,24,39,0.22);
    overflow: hidden;
  }
  .what-you-get-section .this-is-dl-row {
    grid-template-columns: minmax(220px, 1fr) minmax(220px, 1fr);
    border-bottom: 1px solid #DDE4EC;
    overflow: hidden;
  }
  .what-you-get-section .this-is-dl-row:first-child {
    background: var(--mc-yellow);
    border-bottom: 0;
    border-radius: 10px 10px 0 0;
  }
  .what-you-get-section .this-is-dl-row:nth-child(2),
  .what-you-get-section .this-is-dl-row:nth-child(3) {
    background: #FFF8E6;
  }
  .what-you-get-section .this-is-dl-row dt,
  .what-you-get-section .this-is-dl-row dd {
    background: transparent;
    border: 0;
    color: var(--mc-black);
    min-height: 84px;
    padding: 22px 28px;
  }
  .what-you-get-section .this-is-dl-row dt {
    justify-content: flex-start;
    font-size: 15px;
    font-weight: 700;
    gap: 10px;
  }
  .what-you-get-section .this-is-dl-row dd {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-end;
    text-align: right;
    font-family: var(--font-jp);
    font-size: 17px;
    font-weight: 800;
    letter-spacing: 0.04em;
  }
  .what-you-get-section .this-is-dl-row:first-child dt,
  .what-you-get-section .this-is-dl-row:first-child dd {
    background: transparent;
  }
  .what-you-get-section .this-is-dl-row:first-child dd { font-size: 18px; }
  .what-you-get-section .this-is-dl-row dd .this-is-dd-sub {
    color: #4B5563;
    font-family: var(--font-jp);
    font-size: 13px;
    font-weight: 600;
  }
  .what-you-get-section .this-is-icon-small {
    flex: 0 0 auto;
    width: 24px;
    text-align: center;
    font-size: 18px;
    line-height: 1;
  }
  .what-you-get-section .this-is-icon-img {
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .what-you-get-section .this-is-icon-img img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
  }
  .what-you-get-section .this-is-label-text {
    min-width: 0;
  }

  /* ============ 2. THIS IS (v7: ストーリー型・dl構造) ============ */
  .this-is-lead {
    background: var(--card-dark);
    border-left: 4px solid var(--mc-yellow);
    border-radius: 6px;
    padding: 28px 32px;
    margin-bottom: 24px;
    font-size: 16px;
    line-height: 1.85;
    color: var(--mc-white);
  }
  .this-is-lead p {
    margin: 0;
  }
  .this-is-lead p + p {
    margin-top: 16px;
  }
  .this-is-lead strong {
    color: var(--mc-yellow);
    font-weight: 900;
  }
  .this-is-dl {
    background: rgba(17,17,17,0.74);
    border: 1px solid rgba(255,255,255,0.16);
    border-radius: 12px;
    overflow: hidden;
    margin: 0;
    box-shadow: 0 22px 54px rgba(0,0,0,0.24);
  }
  .this-is-dl-row {
    display: grid;
    grid-template-columns: 200px minmax(0, 1fr);
    border-bottom: 1px solid rgba(255,255,255,0.12);
  }
  .this-is-dl-row:last-child { border-bottom: none; }
  .this-is-dl-row dt {
    background: #20262d;
    border-right: 1px solid rgba(255,255,255,0.16);
    padding: 24px 26px;
    font-weight: 800;
    font-size: 14px;
    letter-spacing: 0;
    color: #E2E8F0;
    display: flex;
    align-items: center;
    gap: 10px;
  }
  .this-is-dl-row dt .this-is-icon-small {
    font-size: 16px;
    line-height: 1;
    color: var(--mc-yellow);
  }
  .this-is-dl-row dd {
    margin: 0;
    padding: 24px 28px;
    font-size: 15px;
    font-weight: 500;
    color: var(--mc-black);
    line-height: 1.7;
    background: #fff;
    text-align: center;
    border-bottom: 1px solid rgba(26,26,26,0.09);
  }
  .this-is-dl-row:first-child dd {
    background: #fff;
    color: var(--mc-black);
    font-weight: 900;
    font-size: 16px;
    box-shadow: none;
  }
  .this-is-dl-row:last-child dd {
    border-bottom: none;
  }
  .this-is-dl-row dd strong {
    color: var(--mc-black);
    font-weight: 700;
  }
  .this-is-dl-row dd .this-is-dd-sub {
    display: block;
    font-size: 13px;
    color: #64748B;
    margin-top: 6px;
  }
  .this-is-dl-row:first-child dd .this-is-dd-sub {
    color: rgba(26,26,26,0.68);
  }

  /* ============ 3. FOR YOU (v5.2: 2カラム 左リスト+右イラスト) ============ */
  .for-you-wrap {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: center;
  }
  .for-you-list {
    list-style: none; padding: 0; margin: 0;
  }
  .for-you-list li {
    padding: 14px 0 14px 36px;
    position: relative;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.6;
    border-bottom: 1px solid var(--border-dark);
  }
  .for-you-list li:last-child { border-bottom: none; }
  .for-you-list li::before {
    content: '\2713';
    position: absolute;
    left: 0; top: 14px;
    width: 24px; height: 24px;
    background: var(--mc-mint); color: var(--mc-black);
    border-radius: 50%;
    display: grid; place-items: center;
    font-weight: 900; font-size: 13px;
    line-height: 1;
  }
  .for-you-visual {
    background: linear-gradient(135deg, rgba(0,229,160,0.08), rgba(245,197,24,0.04));
    border: 1px dashed var(--border-dark);
    border-radius: 12px;
    aspect-ratio: 4/3;
    display: grid; place-items: center;
    color: var(--mc-light-gray);
    font-size: 13px;
    padding: 24px;
    text-align: center;
    position: relative;
  }
  .for-you-visual.has-image {
    background: transparent;
    border: 0;
    padding: 0;
    aspect-ratio: auto;
    min-height: 0;
  }
  .for-you-visual.has-image img {
    width: 100%;
    height: auto;
    max-height: 380px;
    object-fit: contain;
    border-radius: 0;
  }
  .for-you-visual-caption {
    font-size: 13px;
    color: var(--mc-light-gray);
    margin-top: 12px;
    line-height: 1.6;
  }

  /* ============ 4. WHAT YOU GET (v5.2: 大幅簡素化) ============ */
  /* A-1: シンプルな縦リスト構造 (border-leftアクセントのみ) */
  .prize-hero {
    background: var(--mc-white);
    border: 1px solid rgba(26,26,26,0.08);
    border-radius: 10px 10px 0 0;
    padding: 0;
    margin-bottom: 0;
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 0;
    overflow: hidden;
  }
  .prize-hero-rank {
    font-weight: 800;
    font-size: 13px;
    letter-spacing: 0;
    color: #E2E8F0;
  }
  .prize-hero-rank-jp {
    font-family: var(--font-jp); font-weight: 800;
    font-size: 14px; color: #E2E8F0;
    margin-top: 4px;
  }
  .prize-hero-amount {
    font-family: var(--font-mono); font-weight: 700;
    font-size: 22px;
    color: var(--mc-black); line-height: 1.4;
    padding: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .prize-hero > div:first-child {
    background: #222832;
    border-right: 1px solid rgba(26,26,26,0.08);
    padding: 20px 24px;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  /* 2位以下: シンプルな1列リスト */
  .prize-list {
    background: var(--mc-white);
    border-left: 1px solid rgba(26,26,26,0.08);
    border-right: 1px solid rgba(26,26,26,0.08);
    margin-bottom: 0;
  }
  .prize-list-row {
    display: grid;
    grid-template-columns: 200px 1fr;
    padding: 0;
    border-left: none;
    border-bottom: 1px solid rgba(26,26,26,0.08);
    background: var(--mc-white);
  }
  .prize-list-row > div:first-child {
    background: #222832;
    border-right: 1px solid rgba(26,26,26,0.08);
    padding: 18px 24px;
  }
  .prize-list-row-label {
    font-weight: 800;
    font-size: 13px;
    letter-spacing: 0;
    color: #E2E8F0;
  }
  .prize-list-row-jp {
    font-size: 13px; color: #E2E8F0;
    margin-top: 4px;
  }
  .prize-list-row-amount {
    font-family: var(--font-mono); font-weight: 700;
    font-size: 20px; color: var(--mc-black);
    padding: 18px 24px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .prize-list-row.lottery .prize-list-row-amount { color: var(--mc-black); }
  .prize-custom-table {
    background: rgba(17,17,17,0.74);
    border: 1px solid rgba(255,255,255,0.16);
    border-radius: 12px;
    overflow: hidden;
    margin: 0 0 32px;
    box-shadow: 0 22px 54px rgba(0,0,0,0.24);
  }
  .prize-custom-row {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    border-bottom: 1px solid rgba(255,255,255,0.12);
  }
  .prize-custom-row:last-child { border-bottom: none; }
  .prize-custom-row dt {
    background: #20262d;
    border-right: 1px solid rgba(255,255,255,0.16);
    padding: 24px 26px;
    color: #E2E8F0;
    font-weight: 900;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
  }
  .prize-custom-row dd {
    margin: 0;
    padding: 24px 28px;
    background: #fff;
    color: var(--mc-black);
    text-align: center;
  }
  .prize-custom-row dd strong {
    display: block;
    font-family: var(--font-mono);
    font-size: 16px;
    line-height: 1.35;
  }
  .prize-custom-row dd span {
    display: block;
    margin-top: 6px;
    color: #64748B;
    font-size: 13px;
    font-weight: 800;
  }
  .prize-number-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 16px;
    max-width: 1080px;
    margin-left: auto;
    margin-right: auto;
    justify-content: center;
    margin-bottom: 32px;
  }
  /* 1個: 文字数に応じて広がる・中央寄せ */
  .prize-number-grid[data-count="1"] {
    grid-template-columns: minmax(280px, max-content);
    justify-content: center;
  }
  .prize-number-grid[data-count="1"] .prize-number-card {
    padding: 32px 56px;
  }
  /* 2-3個: 現状（auto-fit）維持 */
  /* 4個: 2列×2段 */
  .prize-number-grid[data-count="4"] {
    grid-template-columns: repeat(2, minmax(260px, 1fr));
    max-width: 760px;
  }
  .prize-number-card {
    background:
      linear-gradient(180deg, rgba(245,197,24,0.10), rgba(245,197,24,0.02)),
      #181818;
    border: 1px solid rgba(245,197,24,0.32);
    border-radius: 12px;
    padding: 28px 22px;
    text-align: center;
    box-shadow: 0 18px 44px rgba(0,0,0,0.28), inset 0 1px 0 rgba(255,255,255,0.08);
  }
  .prize-number-card.hero {
    border-color: rgba(245,197,24,0.42);
    box-shadow: 0 24px 56px rgba(245,197,24,0.12);
  }
  .prize-number-amount {
    font-family: var(--font-mono);
    font-weight: 900;
    font-size: clamp(24px, 3.6vw, 48px);
    line-height: 1.05;
    color: var(--mc-yellow);
    letter-spacing: -0.03em;
    text-shadow: 0 2px 0 rgba(92,62,0,0.55), 0 10px 18px rgba(0,0,0,0.36);
    margin-top: 10px;
    white-space: nowrap;
  }
  .prize-number-rank {
    color: var(--mc-white);
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0.08em;
  }
  .prize-number-text {
    margin-top: 8px;
    color: #94A3B8;
    font-size: 13px;
    font-weight: 800;
  }
  .what-text-block {
    max-width: 880px;
    margin: 24px auto 0;
    background: var(--card-dark);
    border-left: 4px solid var(--mc-yellow);
    border-radius: 8px;
    padding: 22px 26px;
    color: var(--mc-white);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.85;
  }
  .what-text-block p {
    margin: 0;
  }
  .what-text-block p + p {
    margin-top: 12px;
  }
  .prize-number-grid + .prize-custom-table,
  .prize-number-grid + .what-text-block,
  .what-text-block + .prize-custom-table,
  .prize-custom-table + .what-text-block {
    margin-top: 28px;
  }

  /* Live ranking */
  .live-ranking-section {
    position: relative;
    overflow: hidden;
  }
  .live-ranking-section.has-bg-image {
    background:
      linear-gradient(180deg, rgba(17,17,17,0.86) 0%, rgba(17,17,17,0.94) 100%),
      var(--ranking-bg-image) center center / cover no-repeat;
  }
  .live-ranking-layout {
    max-width: 960px;
    margin: 0 auto;
  }
  .live-ranking-card {
    background: var(--card-dark);
    border-top: 3px solid var(--mc-mint);
    border-radius: 12px;
    padding: 32px;
    box-shadow: 0 20px 52px rgba(0,0,0,0.24);
    text-align: left;
  }
  .live-ranking-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
    color: var(--mc-light-gray);
    font-size: 12px;
    font-weight: 700;
  }
  .live-ranking-live {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--mc-mint);
    font-family: var(--font-display);
    letter-spacing: 0.08em;
  }
  .live-ranking-live::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: var(--mc-mint);
    animation: liveRankingPulse 1.5s infinite;
  }
  @keyframes liveRankingPulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.32; }
  }
  .live-ranking-list {
    display: flex;
    flex-direction: column;
    gap: 1px;
    background: rgba(255,255,255,0.05);
  }
  .live-ranking-row {
    display: grid;
    grid-template-columns: 60px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 14px 16px;
    background: var(--card-dark);
    color: var(--mc-white);
    font-size: 15px;
    font-weight: 700;
  }
  .live-ranking-row strong {
    color: var(--mc-yellow);
    font-family: var(--font-mono);
    font-size: 18px;
    font-weight: 900;
    text-align: right;
  }
  .live-ranking-rank {
    color: var(--mc-light-gray);
    font-family: var(--font-mono);
    font-size: 18px;
    font-weight: 900;
  }
  .live-ranking-rank.top-1 {
    color: var(--mc-yellow);
    font-size: 18px;
  }
  .live-ranking-rank.top-2,
  .live-ranking-rank.top-3 {
    color: var(--mc-yellow);
  }
  .live-ranking-stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid rgba(255,255,255,0.08);
    align-items: center;
    text-align: center;
  }
  .live-ranking-stat-value {
    font-family: var(--font-mono);
    font-weight: 900;
    color: var(--mc-yellow);
    font-size: 24px;
  }
  .live-ranking-stat-label {
    margin-top: 4px;
    color: var(--mc-light-gray);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.08em;
  }
  .live-ranking-share {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--mc-mint), #20C997);
    color: #08130f;
    font-size: 14px;
    font-weight: 900;
    text-align: center;
    padding: 12px 16px;
  }
  /* 4位以下: コンパクトテーブル */
  .prize-table-compact {
    width: 100%; border-collapse: collapse;
    margin-bottom: 32px;
    background: var(--mc-white);
    border: 1px solid rgba(26,26,26,0.08);
    border-radius: 0 0 10px 10px;
    overflow: hidden;
  }
  .prize-table-compact td {
    padding: 16px 24px;
    border-bottom: 1px solid rgba(26,26,26,0.08);
    font-size: 14px;
    line-height: 1.7;
  }
  .prize-table-compact tr:last-child td { border-bottom: none; }
  .prize-table-compact td.label {
    font-weight: 600;
    background: #222832;
    color: #E2E8F0;
    font-size: 13px;
    width: 40%;
    border-right: 1px solid rgba(26,26,26,0.08);
  }
  .prize-table-compact td.amount {
    text-align: center;
    font-family: var(--font-mono); font-weight: 700;
    color: var(--mc-black);
    font-size: 15px;
  }

  /* Gacha (B-1) */
  .gacha-wrap {
    display: grid; grid-template-columns: 1fr 1fr;
    gap: 16px; margin-bottom: 32px;
  }
  .gacha-card {
    background: var(--card-dark);
    border: 2px solid var(--border-dark);
    border-radius: 12px; padding: 36px 24px;
    text-align: center;
  }
  .gacha-card.jackpot {
    border-color: var(--mc-yellow);
    background: linear-gradient(135deg, rgba(245,197,24,0.10), transparent);
  }
  .gacha-label {
    font-family: var(--font-display); font-weight: 800;
    font-size: 11px; letter-spacing: 0.15em;
    color: var(--mc-light-gray); margin-bottom: 12px;
  }
  .gacha-card.jackpot .gacha-label { color: var(--mc-yellow); }
  .gacha-value {
    font-family: var(--font-mono); font-weight: 700;
    font-size: 36px; color: var(--mc-white);
  }
  .gacha-card.jackpot .gacha-value { color: var(--mc-yellow); font-size: 48px; }
  .gacha-meta { font-size: 12px; color: var(--mc-light-gray); margin-top: 12px; }

  /* Bonus table (C-1/C-2) */
  .bonus-table {
    width: 100%; border-collapse: collapse;
    background: var(--card-dark);
    border-radius: 8px; overflow: hidden;
    margin-bottom: 32px;
  }
  .bonus-table th, .bonus-table td {
    padding: 16px 20px; text-align: left;
    border-bottom: 1px solid var(--border-dark);
  }
  .bonus-table th {
    background: var(--sub-dark); color: var(--mc-yellow);
    font-size: 12px; letter-spacing: 0.1em;
    font-family: var(--font-display); font-weight: 800;
  }
  .bonus-table td.amount {
    font-family: var(--font-mono); font-weight: 700; font-size: 16px;
  }
  .bonus-examples {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 12px;
  }
  .bonus-example {
    background: var(--card-dark);
    border-radius: 8px; padding: 20px;
  }
  .case-label {
    font-family: var(--font-display); font-weight: 800;
    font-size: 11px; letter-spacing: 0.15em;
    color: var(--mc-mint); margin-bottom: 8px;
  }
  .case-input { font-size: 13px; color: var(--mc-light-gray); margin-bottom: 6px; }
  .case-output {
    font-family: var(--font-mono); font-weight: 700;
    font-size: 22px; color: var(--mc-yellow);
  }

  /* FCFS (D-1) */
  .fcfs-status {
    background: var(--card-dark);
    border: 2px solid var(--mc-yellow);
    border-radius: 12px; padding: 32px;
    margin-bottom: 32px; text-align: center;
  }
  .fcfs-label {
    font-family: var(--font-display); font-weight: 800;
    font-size: 12px; letter-spacing: 0.2em;
    color: var(--mc-yellow); margin-bottom: 12px;
  }
  .fcfs-counter {
    display: flex; justify-content: center; align-items: baseline;
    gap: 8px; margin-bottom: 16px;
  }
  .fcfs-remaining {
    font-family: var(--font-mono); font-weight: 700;
    font-size: clamp(48px, 8vw, 72px);
    color: var(--mc-yellow); line-height: 1;
  }
  .fcfs-slash, .fcfs-total {
    font-family: var(--font-mono);
    font-size: 28px; color: var(--mc-light-gray);
  }
  .fcfs-bar {
    height: 8px; background: var(--sub-dark);
    border-radius: 4px; overflow: hidden; margin: 16px 0;
  }
  .fcfs-bar-fill {
    height: 100%; background: var(--mc-yellow);
    width: 48%; transition: width 0.5s;
  }

  /* Boost table (E-1) */
  .boost-table {
    width: 100%; border-collapse: collapse;
    background: var(--card-dark);
    border-radius: 8px; overflow: hidden;
  }
  .boost-table th, .boost-table td {
    padding: 14px 16px; text-align: left;
    border-bottom: 1px solid var(--border-dark);
  }
  .boost-table th {
    background: var(--sub-dark); color: var(--mc-yellow);
    font-size: 12px; letter-spacing: 0.1em;
    font-family: var(--font-display); font-weight: 800;
  }
  .boost-table td.symbol { font-family: var(--font-mono); font-weight: 700; }
  .boost-table td.normal { color: var(--mc-light-gray); }
  .boost-table td.normal::after {
    content: ' \2192'; color: var(--mc-yellow); margin-left: 4px;
  }
  .boost-table td.campaign {
    font-family: var(--font-mono); font-weight: 700;
    color: var(--mc-yellow); font-size: 16px;
  }
  .boost-table td.delta {
    font-family: var(--font-mono); font-weight: 700;
    color: var(--mc-mint); font-size: 14px;
  }

  /* ============ 5. HOW TO JOIN ============ */
  .entry-badge {
    display: inline-flex; align-items: center; gap: 10px;
    background: transparent;
    color: var(--mc-yellow);
    padding: 0;
    margin-bottom: 32px;
    font-weight: 700; font-size: 13px;
    letter-spacing: 0.05em;
  }
  .entry-badge .entry-badge-icon {
    width: 28px; height: 28px;
    background: var(--mc-yellow); color: var(--mc-black);
    border-radius: 50%;
    display: grid; place-items: center;
    font-size: 14px; flex-shrink: 0;
  }
  .entry-badge.entry-required .entry-badge-icon {
    background: var(--campaign-coral); color: var(--mc-white);
  }
  .entry-badge.entry-required {
    color: var(--campaign-coral);
  }

  .steps-simple {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    position: relative;
    max-width: 760px;
    margin: 0 auto;
  }
  .step-simple {
    background: var(--card-dark);
    border: 1px solid var(--border-dark);
    border-radius: 10px;
    padding: 24px;
    position: relative;
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    gap: 20px;
    align-items: center;
  }
  .step-simple-num {
    width: 62px; height: 62px;
    background: var(--mc-yellow); color: var(--mc-black);
    font-family: var(--font-display); font-weight: 900;
    font-size: 24px;
    letter-spacing: 0;
    border-radius: 50%;
    display: grid; place-items: center;
    margin: 0 auto;
    text-align: center;
    box-shadow: 0 0 0 8px rgba(245,197,24,0.08);
    position: relative;
    z-index: 1;
  }
  .step-simple-body {
    min-width: 0;
  }
  .step-simple-title {
    font-size: 18px;
    font-weight: 900;
    line-height: 1.4;
    margin-bottom: 8px;
    color: var(--mc-white);
  }
  .step-simple-desc {
    font-size: 14px;
    color: var(--mc-light-gray);
    line-height: 1.75;
    margin-bottom: 0;
  }
  .step-simple-shot {
    grid-column: 2;
    margin-top: 16px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 10px;
    padding: 12px;
  }
  .step-simple-shot img {
    width: 100%;
    height: auto;
    border-radius: 8px;
    object-fit: contain;
  }
  .step-simple:not(:last-child)::after {
    content: '';
    position: absolute;
    left: 80px;
    top: 55px;
    height: calc(100% + 12px);
    width: 0;
    border-left: 2px dashed rgba(245,197,24,0.5);
    z-index: 0;
  }

  /* 補足リンクカード(2並列) */
  .step-existing-wrap {
    margin-top: 32px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }
  .step-link-card {
    background: var(--mc-yellow);
    border: none;
    border-radius: 999px;
    padding: 18px 24px;
    display: flex;
    align-items: center;
    gap: 12px;
    transition: all 0.2s;
    cursor: pointer;
  }
  .step-link-card-mint {
    background: var(--mc-mint);
  }
  .step-link-card-mint:hover {
    background: #00c98c;
  }
  .step-link-card-yellow {
    background: var(--mc-yellow);
  }
  .step-link-card:hover {
    transform: translateY(-1px);
  }
  .step-link-card-yellow:hover {
    background: var(--mc-yellow-dark);
  }
  .step-link-card::after {
    content: '\2192';
    font-size: 20px;
    color: var(--mc-black);
    font-weight: 700;
    flex-shrink: 0;
  }
  .step-link-card-text {
    font-size: 13px;
    color: var(--mc-dark-gray);
    flex: 1;
  }
  .step-link-card-text strong {
    color: var(--mc-black);
    display: block;
    font-size: 14px;
    font-weight: 900;
    margin-bottom: 2px;
  }
  .step-link-card-text span {
    color: var(--mc-black);
    font-weight: 700;
    opacity: 0.7;
  }

  /* ============ 6. CHECK BEFORE ============ */
  .conditions-section {
    position: relative;
    overflow: hidden;
  }
  .conditions-section.has-bg-image {
    background:
      linear-gradient(180deg, rgba(17,17,17,0.86) 0%, rgba(17,17,17,0.94) 100%),
      var(--conditions-bg-image) center center / cover no-repeat;
  }
  .check-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    margin-bottom: 32px;
  }
  .check-block {
    background: var(--card-dark);
    border-radius: 8px; padding: 24px;
  }
  .check-block-label {
    font-family: var(--font-display); font-weight: 800;
    font-size: 15px; letter-spacing: 0;
    margin-bottom: 16px;
  }
  .check-block.ok .check-block-label { color: var(--mc-mint); }
  .check-block.ng .check-block-label { color: var(--negative-red); }
  .check-list {
    list-style: none; padding: 0;
  }
  .check-list li {
    padding: 10px 0 10px 28px;
    position: relative;
    font-size: 14px;
    border-bottom: 1px solid var(--border-dark);
  }
  .check-list li:last-child { border-bottom: none; }
  .check-block.ok .check-list li::before {
    content: '\2713'; position: absolute; left: 4px;
    color: var(--mc-mint); font-weight: 900;
  }
  .check-block.ng .check-list li::before {
    content: '\2715'; position: absolute; left: 4px;
    color: var(--negative-red); font-weight: 900;
  }
  .check-account {
    background: var(--card-dark);
    border-left: 3px solid var(--mc-yellow);
    border-radius: 4px;
    padding: 20px 24px;
    margin-bottom: 24px;
  }
  .check-account-label {
    font-family: var(--font-display); font-weight: 800;
    font-size: 11px; letter-spacing: 0.2em;
    color: var(--mc-yellow); margin-bottom: 8px;
  }
  .check-account-value {
    font-size: 15px; font-weight: 700;
  }
  /* v5.2: NGブロックの色を緩和(Red→Light Gray) */
  .check-block.ng .check-block-label { color: var(--mc-light-gray); }
  .check-block.ng .check-list li::before { color: var(--mc-light-gray); }
  /* v5.2: 詳細ルール常時表示テーブル(折りたたみ廃止) */
  .rules-table-wrap {
    background: var(--card-dark);
    border: 1px solid var(--border-dark);
    border-radius: 8px;
    margin-bottom: 24px;
    overflow: hidden;
  }
  .rules-table-title {
    padding: 18px 22px;
    background: var(--sub-dark);
    font-weight: 900; font-size: 18px;
    color: var(--mc-white);
    border-bottom: 1px solid var(--border-dark);
  }
  .rules-table {
    width: 100%; border-collapse: collapse;
  }
  .rules-table td {
    padding: 14px 20px;
    border-bottom: 1px solid var(--border-dark);
    vertical-align: middle;
    font-size: 13px;
    line-height: 1.7;
  }
  .rules-table tr:last-child td { border-bottom: none; }
  .rules-table td.rules-label {
    font-family: var(--font-display); font-weight: 800;
    font-size: 11px; letter-spacing: 0.1em;
    color: var(--mc-yellow);
    width: 30%;
    min-width: 140px;
  }
  .rules-table td.rules-value {
    color: var(--mc-light-gray);
  }
  /* v5.2: 業者規約変更時の免責 */
  .check-disclaimer {
    background: rgba(0,0,0,0.4);
    border: 1px dashed var(--border-dark);
    border-radius: 4px;
    padding: 14px 18px;
    font-size: 12px;
    color: var(--mc-light-gray);
    line-height: 1.6;
  }

  /* ============ 7. WHEN & WHERE (v5.2: 左右2カラム・3ステップ簡素化) ============ */
  .when-wrap {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: center;
  }
  .timeline {
    position: relative;
    padding-left: 32px;
  }
  .timeline::before {
    content: '';
    position: absolute;
    left: 7px; top: 8px; bottom: 8px;
    width: 2px;
    background: var(--border-dark);
  }
  .timeline-item {
    position: relative;
    padding: 16px 0 28px;
  }
  .timeline-item:last-child { padding-bottom: 0; }
  .timeline-dot {
    position: absolute;
    left: -32px; top: 22px;
    width: 16px; height: 16px;
    background: var(--mc-yellow);
    border-radius: 50%;
    border: 3px solid var(--mc-black);
  }
  .timeline-item.completed .timeline-dot { background: var(--mc-light-gray); }
  .timeline-item.current .timeline-dot {
    background: var(--mc-mint);
    box-shadow: 0 0 0 4px rgba(0,229,160,0.2);
  }
  .timeline-when {
    font-family: var(--font-display); font-weight: 900;
    font-size: 15px; letter-spacing: 0.04em;
    color: var(--mc-yellow); margin-bottom: 6px;
  }
  .timeline-item.completed .timeline-when { color: var(--mc-light-gray); }
  .timeline-item.current .timeline-when { color: var(--mc-mint); }
  .timeline-what {
    font-size: 17px; font-weight: 700; margin-bottom: 4px;
  }
  .timeline-where {
    font-size: 13px; color: var(--mc-light-gray);
  }
  /* v5.2: 受け取りイメージのイラスト枠 */
  .when-visual {
    background: linear-gradient(135deg, rgba(245,197,24,0.06), rgba(0,229,160,0.04));
    border: 1px dashed var(--border-dark);
    border-radius: 12px;
    aspect-ratio: 4/5;
    display: grid; place-items: center;
    padding: 32px 24px;
    text-align: center;
    position: relative;
  }
  .when-visual.has-image {
    background: transparent;
    border: 0;
    padding: 0;
    aspect-ratio: auto;
  }
  .when-visual.has-image img {
    width: 100%;
    height: auto;
    max-height: 520px;
    object-fit: contain;
    border-radius: 12px;
  }
  .when-visual-title {
    font-size: 16px; font-weight: 700;
    color: var(--mc-white);
    margin-bottom: 12px;
  }
  .when-visual-balance {
    font-family: var(--font-mono); font-weight: 700;
    font-size: 32px;
    color: var(--mc-yellow);
    margin-bottom: 12px;
  }
  .when-visual-caption {
    font-size: 13px;
    color: var(--mc-light-gray);
    line-height: 1.6;
  }

  /* ============ E-1 Interactive Simulator ============ */
  .boost-interactive {
    background: linear-gradient(135deg, rgba(0,229,160,0.06), transparent);
    border: 1px solid rgba(0,229,160,0.2);
    border-radius: 12px;
    padding: 32px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
    margin-bottom: 24px;
  }
  .boost-input-label {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 11px;
    letter-spacing: 0.18em;
    color: var(--mc-mint);
    margin-bottom: 12px;
    margin-top: 16px;
  }
  .boost-input-label:first-child { margin-top: 0; }
  .boost-symbol-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 4px;
  }
  .boost-symbol-tab {
    flex: 1 1 auto;
    min-width: 90px;
    padding: 12px 14px;
    background: var(--mc-black);
    border: 1px solid var(--border-dark);
    border-radius: 6px;
    color: var(--mc-white);
    font-family: var(--font-mono);
    font-weight: 700;
    font-size: 13px;
    cursor: pointer;
    transition: all 0.15s;
    display: flex;
    flex-direction: column;
    gap: 2px;
    align-items: center;
  }
  .boost-symbol-tab span {
    font-size: 10px;
    color: var(--mc-mint);
    font-weight: 700;
  }
  .boost-symbol-tab:hover {
    border-color: var(--mc-mint);
  }
  .boost-symbol-tab.active {
    background: var(--mc-mint);
    color: var(--mc-black);
    border-color: var(--mc-mint);
  }
  .boost-symbol-tab.active span {
    color: var(--mc-black);
  }
  .boost-lots-input {
    display: flex;
    align-items: stretch;
    gap: 8px;
    margin-bottom: 12px;
  }
  .boost-lots-input input {
    flex: 1;
    padding: 14px 16px;
    background: var(--mc-black);
    border: 1px solid var(--border-dark);
    border-radius: 4px;
    color: var(--mc-white);
    font-family: var(--font-mono);
    font-size: 20px;
    font-weight: 700;
    text-align: center;
  }
  .boost-lots-btn {
    width: 48px;
    background: var(--mc-black);
    border: 1px solid var(--border-dark);
    border-radius: 4px;
    color: var(--mc-yellow);
    font-family: var(--font-mono);
    font-size: 20px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.15s;
  }
  .boost-lots-btn:hover {
    border-color: var(--mc-yellow);
    background: rgba(245,197,24,0.1);
  }
  .boost-lots-presets {
    display: flex;
    gap: 6px;
  }
  .boost-preset {
    flex: 1;
    padding: 8px 0;
    background: transparent;
    border: 1px solid var(--border-dark);
    border-radius: 4px;
    color: var(--mc-light-gray);
    font-family: var(--font-mono);
    font-size: 12px;
    cursor: pointer;
    transition: all 0.15s;
  }
  .boost-preset:hover {
    border-color: var(--mc-mint);
    color: var(--mc-mint);
  }
  .boost-result-area {
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  .boost-all-rates {
    margin-bottom: 16px;
  }
  .boost-all-rates summary {
    cursor: pointer;
    padding: 14px 20px;
    background: var(--card-dark);
    border-radius: 6px;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 12px;
    letter-spacing: 0.1em;
    color: var(--mc-light-gray);
    list-style: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .boost-all-rates summary::-webkit-details-marker { display: none; }
  .boost-all-rates summary::after {
    content: '+';
    color: var(--mc-yellow);
    font-size: 18px;
  }
  .boost-all-rates[open] summary::after { content: '\2212'; }
  .boost-all-rates[open] summary { margin-bottom: 16px; }

  @media (max-width: 768px) {
    .boost-interactive {
      grid-template-columns: 1fr;
      padding: 20px;
      gap: 20px;
    }
  }

  /* ============ 8. WHY CHOOSE (LLMO: 固有事実集約) ============ */
  .why-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 16px;
    margin-bottom: 32px;
  }
  .why-card {
    background:
      linear-gradient(180deg, rgba(245,197,24,0.08), rgba(245,197,24,0.02)),
      var(--card-dark);
    border: 1px solid rgba(245,197,24,0.62);
    border-radius: 12px;
    padding: 30px 24px;
    text-align: center;
    box-shadow:
      0 0 0 1px rgba(245,197,24,0.10) inset,
      0 0 28px rgba(245,197,24,0.12),
      0 20px 52px rgba(0,0,0,0.28);
  }
  .why-label {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 11px;
    letter-spacing: 0.18em;
    color: transparent;
    background: linear-gradient(90deg, var(--mc-mint), #8FFFE0 45%, var(--mc-yellow));
    -webkit-background-clip: text;
    background-clip: text;
    margin-bottom: 12px;
  }
  .why-value {
    font-family: var(--font-mono);
    font-weight: 900;
    font-size: clamp(32px, 4.5vw, 48px);
    color: transparent;
    background: linear-gradient(180deg, #FFF6D5 0%, #F5C518 42%, #F97316 100%);
    -webkit-background-clip: text;
    background-clip: text;
    line-height: 1;
    margin: 0 0 10px 0;
    display: flex;
    justify-content: center;
    align-items: baseline;
    gap: 6px;
    text-align: center;
    text-shadow: 0 10px 28px rgba(249,115,22,0.18);
  }
  .why-value-text {
    color: transparent;
    background: linear-gradient(180deg, #FFF6D5 0%, #F5C518 42%, #F97316 100%);
    -webkit-background-clip: text;
    background-clip: text;
  }
  .why-unit {
    font-family: var(--font-jp);
    font-size: clamp(14px, 1.6vw, 18px);
    font-weight: 900;
    color: transparent;
    background: inherit;
    -webkit-background-clip: text;
    background-clip: text;
  }
  .why-note {
    font-size: 13px;
    color: var(--mc-light-gray);
    line-height: 1.6;
    margin: 0;
  }
  .why-disclaimer {
    background: var(--card-dark);
    border-left: 3px solid var(--mc-light-gray);
    padding: 16px 20px;
    border-radius: 4px;
    font-size: 12px;
    color: var(--mc-light-gray);
    line-height: 1.7;
    text-align: left;
  }

  /* ============ 9. FAQ ============ */
  .faq-section {
    background: #F4F6F8;
    color: var(--mc-black);
  }
  .faq-section .section-eyebrow {
    color: #333333;
    font-size: 12px;
    letter-spacing: 0.12em;
  }
  .faq-section .section-title {
    color: var(--mc-black);
    font-size: clamp(24px, 3vw, 32px);
    line-height: 1.45;
    margin-bottom: 20px;
  }
  .faq-section .section-title .accent {
    color: var(--mc-yellow);
  }
  .faq-section .section-intro {
    color: #333333;
    font-size: 15px;
    font-weight: 700;
    margin-top: 0;
    margin-bottom: 40px;
  }
  .faq-card {
    max-width: 1040px;
    margin: 0 auto;
    background: var(--mc-white);
    border-radius: 16px;
    padding: 26px 38px;
    box-shadow: 0 28px 70px rgba(17,24,39,0.16);
  }
  .accordion-item {
    border-bottom: 1px solid #DDE4EC;
  }
  .accordion-item:last-child {
    border-bottom: 0;
  }
  .accordion-item summary {
    padding: 20px 0;
    cursor: pointer;
    font-weight: 900;
    font-size: 16px;
    line-height: 1.55;
    color: var(--mc-black);
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr) 24px;
    gap: 12px;
    align-items: center;
    list-style: none;
    text-align: left;
  }
  .accordion-item summary::-webkit-details-marker { display: none; }
  .accordion-item summary::before {
    content: 'Q.';
    color: var(--mc-yellow);
    font-family: var(--font-display);
    font-size: 17px;
    font-weight: 900;
  }
  .accordion-item summary::after {
    content: '\25BC';
    font-family: var(--font-mono);
    font-size: 18px;
    color: #718096;
    justify-self: end;
    transition: transform 0.2s;
  }
  .accordion-item[open] summary::after {
    transform: rotate(180deg);
  }
  .accordion-body {
    padding: 0 0 26px 48px;
    color: #4B5563;
    font-size: 14px;
    line-height: 1.9;
    text-align: left;
  }

  /* Mid CTA */
  .mid-cta {
    background:
      linear-gradient(135deg, rgba(245,197,24,0.05) 0%, transparent 100%),
      var(--mc-black);
    text-align: center;
    border-top: 1px solid var(--border-dark);
    border-bottom: 1px solid var(--border-dark);
    padding: 56px 24px;
  }
  .mid-cta-title {
    font-size: clamp(20px, 3vw, 28px);
    font-weight: 900; margin-bottom: 8px;
  }
  .mid-cta-sub {
    color: var(--mc-light-gray);
    margin-bottom: 28px; font-size: 14px;
  }

  /* Final CTA */
  .final-cta {
    background: var(--mc-yellow);
    text-align: center;
    color: var(--mc-black);
  }
  .final-cta-mascot {
    width: 100px; height: 100px;
    margin: 0 auto 20px;
    background: var(--mc-mint); border-radius: 50%;
    display: grid; place-items: center;
    font-family: var(--font-display); font-weight: 900;
    color: var(--mc-black); font-size: 12px;
  }
  .final-cta-mascot.has-image {
    width: min(180px, 42vw);
    height: auto;
    background: transparent;
    border-radius: 0;
  }
  .final-cta-mascot.has-image img {
    width: 100%;
    height: auto;
    object-fit: contain;
  }
  .final-cta-title {
    font-size: clamp(24px, 4vw, 36px);
    font-weight: 900; margin-bottom: 12px;
  }
  .final-cta-sub { color: rgba(26,26,26,0.72); margin-bottom: 34px; }
  .final-cta .btn-primary {
    background: var(--mc-black);
    color: var(--mc-white);
    margin: 0 auto 10px;
  }
  .final-cta-meta {
    margin-top: 0;
    font-size: 12px; color: rgba(26,26,26,0.72);
    display: flex; gap: 16px; justify-content: center; flex-wrap: wrap;
  }
  .final-cta-meta span::before { content: '\2713 '; color: var(--mc-black); font-weight: 900; }

  /* Related */
  .related-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 16px;
  }
  .related-card {
    background: var(--card-dark); border-radius: 8px;
    overflow: hidden; border: 1px solid var(--border-dark);
    cursor: pointer; transition: border-color 0.2s;
  }
  .related-card:hover { border-color: var(--mc-yellow); }
  .related-thumb {
    aspect-ratio: 16/9;
    background: linear-gradient(135deg, var(--sub-dark), var(--card-dark));
    display: grid; place-items: center;
    color: var(--mc-light-gray); font-size: 12px;
  }
  .related-body { padding: 16px 20px; }
  .related-status {
    display: inline-block;
    font-size: 10px; font-weight: 700;
    padding: 3px 8px; border-radius: 3px; margin-bottom: 8px;
    letter-spacing: 0.05em;
  }
  .related-status.active { background: var(--mc-mint); color: var(--mc-black); }
  .related-status.fcfs { background: var(--mc-yellow); color: var(--mc-black); }
  .related-status.urgent { background: var(--campaign-coral); color: var(--mc-white); }
  .related-title { font-size: 14px; font-weight: 700; margin-bottom: 6px; }
  .related-meta { font-size: 11px; color: var(--mc-light-gray); font-family: var(--font-mono); }
  .related-more {
    margin-top: 20px;
    text-align: center;
    color: var(--mc-light-gray);
    font-size: 12px;
    line-height: 1.8;
  }
  .related-more span {
    display: block;
    margin-bottom: 4px;
  }
  .related-more a {
    color: var(--mc-yellow);
    font-weight: 900;
    text-decoration: underline;
    text-underline-offset: 4px;
  }

  /* Footer */
  .site-footer {
    background: var(--sub-dark);
    border-top: 1px solid var(--border-dark);
    padding: 40px 24px 100px; text-align: center;
    color: var(--mc-light-gray); font-size: 12px;
  }

  /* v5新規: SP底部 sticky CTA */
  .sticky-cta {
    display: none;
    position: fixed;
    bottom: 0; left: 0; right: 0;
    z-index: 200;
    background: rgba(26,26,26,0.96);
    border-top: 1px solid var(--mc-yellow);
    padding: 12px 16px;
    backdrop-filter: blur(8px);
  }
  .sticky-cta-inner {
    display: flex; align-items: center; justify-content: space-between;
    gap: 12px;
    max-width: 600px; margin: 0 auto;
  }
  .sticky-cta-left {
    font-size: 12px; line-height: 1.3;
  }
  .sticky-cta-prize {
    font-family: var(--font-mono); font-weight: 700;
    color: var(--mc-yellow); font-size: 14px;
  }
  .sticky-cta-label {
    color: var(--mc-light-gray); font-size: 11px;
  }
  .sticky-cta .btn-primary {
    padding: 12px 20px;
    font-size: 13px;
    flex-shrink: 0;
  }

  /* Responsive */
  @media (max-width: 768px) {
    .mc-sp-only-break {
      display: block;
    }
    .section-title {
      font-size: 22px;
      margin-bottom: 24px;
    }
    .what-you-get-section .section-title {
      font-size: 22px;
    }
    .what-you-get-section .this-is-lead {
      margin-bottom: 32px;
      font-size: 15px;
      text-align: left;
    }
    .what-you-get-section .this-is-dl {
      padding: 22px 18px;
      border-radius: 14px;
    }
    .what-you-get-section .this-is-dl-row {
      grid-template-columns: minmax(120px, 1fr) minmax(120px, 1fr);
    }
    .what-you-get-section .this-is-dl-row dt,
    .what-you-get-section .this-is-dl-row dd {
      min-height: auto;
      padding: 16px 14px;
    }
    .what-you-get-section .this-is-dl-row dt {
      font-size: 14px;
      gap: 8px;
    }
    .what-you-get-section .this-is-dl-row dd {
      align-items: flex-end;
      text-align: right;
      font-size: 16px;
    }
    .what-you-get-section .this-is-dl-row:first-child dd { font-size: 16px; }
    .what-you-get-section .this-is-icon-img {
      width: 24px;
      height: 24px;
    }
    .faq-section .section-title {
      font-size: 22px;
    }
    .faq-section .section-intro {
      font-size: 15px;
      margin-bottom: 32px;
    }
    .faq-card {
      padding: 22px 22px;
      border-radius: 14px;
    }
    .accordion-item summary {
      grid-template-columns: 32px minmax(0, 1fr) 20px;
      gap: 8px;
      padding: 20px 0;
      font-size: 16px;
    }
    .accordion-body {
      padding-left: 40px;
      font-size: 14px;
    }
    .this-is-dl-row { grid-template-columns: 1fr; }
    .this-is-dl-row dt { padding: 14px 20px 4px; }
    .this-is-dl-row dd { padding: 8px 20px 16px; }
    .this-is-lead { padding: 20px 22px; font-size: 15px; }
    .check-grid { grid-template-columns: 1fr; }
    .gacha-wrap { grid-template-columns: 1fr; }
    .prize-hero,
    .prize-list-row,
    .prize-custom-row {
      grid-template-columns: 1fr;
      text-align: center;
    }
    .prize-number-grid,
    .prize-number-grid[data-count="1"],
    .prize-number-grid[data-count="4"] {
      grid-template-columns: 1fr;
      max-width: 100%;
    }
    .prize-number-grid[data-count="1"] .prize-number-card {
      padding: 28px 22px;
    }
    .live-ranking-card {
      padding: 20px;
    }
    .live-ranking-row {
      grid-template-columns: 40px minmax(0, 1fr) auto;
      gap: 10px;
      padding: 12px 8px;
    }
    .live-ranking-row {
      font-size: 14px;
    }
    .live-ranking-row strong {
      font-size: 16px;
    }
    .live-ranking-stats {
      grid-template-columns: 1fr;
    }
    .live-ranking-stat-value {
      font-size: 18px;
    }
    .prize-number-card.hero {
      grid-column: auto;
    }
    .prize-hero > div:first-child,
    .prize-list-row > div:first-child,
    .prize-custom-row dt,
    .prize-table-compact td.label {
      border-right: none;
    }
    .status-bar { font-size: 14px; padding: 10px 16px; }
    .status-bar .countdown { font-size: 17px; padding: 6px 11px; }
    .hero-period {
      width: fit-content;
      max-width: 100%;
      font-size: 13px;
      padding: 9px 14px;
      margin-top: 22px;
      margin-bottom: 18px;
    }
    .hero-prize-row {
      margin-bottom: 26px;
    }
    .hero-prize-image-wrap {
      width: min(92vw, 520px);
      margin-bottom: 28px;
    }
    .hero-prize-image {
      max-height: 180px;
    }
    .hero-brokers {
      gap: 10px;
      flex-wrap: wrap;
    }
    .hero-brokers .broker-logo {
      min-height: 38px;
      padding: 4px 10px;
      font-size: 14px;
    }
    .hero-brokers .broker-logo.has-image {
      min-width: 150px;
      padding: 6px 10px;
    }
    .hero-brokers .broker-logo.has-image img {
      width: auto;
      height: 36px;
      max-width: 148px;
      max-height: 36px;
    }
    .sticky-cta { display: block; transform: translateY(100%); transition: transform 0.3s; }
    .sticky-cta.visible { transform: translateY(0); }
    .site-footer { padding-bottom: 100px; }
    /* v5.2: FOR YOU 2カラム → 縦 */
    .for-you-wrap { grid-template-columns: 1fr; gap: 32px; }
    .steps-simple { grid-template-columns: 1fr; gap: 12px; }
    .step-simple {
      grid-template-columns: 1fr;
      text-align: center;
    }
    .step-simple-num {
      width: 56px;
      height: 56px;
      font-size: 22px;
    }
    .step-simple-shot {
      grid-column: 1;
    }
    .step-simple:not(:last-child)::after {
      display: none;
    }
    /* v5.2: WHEN & WHERE 2カラム → 縦 */
    .when-wrap { grid-template-columns: 1fr; gap: 32px; }
    /* v5.2: ルールテーブル SP */
    .rules-table td.rules-label {
      width: auto;
      display: flex;
      align-items: center;
      min-height: 44px;
      padding: 12px 18px;
      background: #20262d;
      border-bottom: 0;
    }
    .rules-table td.rules-value {
      display: block;
      padding: 12px 18px 16px;
      background: #171b20;
    }
    /* v7: 補足リンクカード SP縦積み */
    .step-existing-wrap { grid-template-columns: 1fr; }
  }
