/** 
 * 記事内の無料/有料境界線（セパレーター）用CSS
 * 
 * 主に [snaf_restriction_video] ショートコードなどの
 * 「ここから先は有料会員になると、閲覧できます」の表示で使用
 */
  .content-end-separator {
    position: relative;
    text-align: center;
    padding: 20px 0;
    margin:0;
  }
  
  .content-end-separator::before,
  .content-end-separator::after {
    content: '';
    position: absolute;
    top: 50%;
    width: calc(50% - 70px);
    height: 2px; /* 線の高さ */
    background-image: linear-gradient(to right, #a0a0a0 30%, rgba(255, 255, 255, 0) 0%);
    background-size: 6px 2px; /* ドットの幅と間隔を調整 */
    background-repeat: repeat-x; /* 水平方向に繰り返し */
    z-index: 0; /* 重なり順を調整 */
  }
  
  .content-end-separator::before {
    left: 0;
  }
  
  .content-end-separator::after {
    right: 0;
  }
  
  .content-end-text {
    display: inline-block;
    background-color: #fff;
    font-weight: 700!important;
    padding: 0 8px;
    margin: 0!important;
    position: relative;
    z-index: 1; /* 他の要素より上に表示 */
    color: #ED68A1;
  }
  /** 点線ここまで　**/

  .restricted-content-message {
    text-align: center;
    color: #E60040;
    font-weight: bold;
  }
  
  .restricted-content-overlay {
    text-align: center;
    margin-top: 20px;
  }
  
  .subscribe-button {
    display: inline-block;
    padding: 10px 20px;
    background-color: #007bff;
    color: #fff;
    text-decoration: none;
    border-radius: 5px;
  }
  
  p.content-stats{
      color: #08131aa8;
      font-size: 75%;
      text-align: center;
  }

/* デフォルトのリストスタイル（丸点など）を削除 */
.restricted-content-overlay ul {
    list-style: none; /* デフォルトの箇条書きマークを非表示 */
    padding: 0; /* 内側の余白を削除 */
    margin: 0; /* 外側の余白を削除 */
}

/* リスト項目（li）の基本スタイル */
.restricted-content-overlay ul li {
    position: relative;
    text-align: center; /* テキストを中央揃えに */
    margin-bottom: 10px;
    line-height: 1.5;
}


/* カスタムチェックマーク（レ点）を中央揃え */
.restricted-content-overlay ul li::before {
    content: "✔";
    color: #ff9a16;
    font-weight: bold;
    position: relative; /* 相対位置で中央揃えに */
    display: inline-block; /* インラインブロックに変更 */
    margin-right: 8px; /* アイコンとテキストの間隔を設定 */
    font-size: 18px;
    vertical-align: middle; /* テキストとアイコンを中央揃え */
}
.transparent-text {
    position: relative;
    color: #333;
    text-align: center;
}

.transparent-text::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 70px;
    background: linear-gradient(
        rgba(255,255,255,0) 0%, 
        rgba(255,255,255,0.8) 50%, 
        #fff 100%
    );
    pointer-events: none;
}

.snaf-point-unlock-result {
    margin: 16px 0 20px;
    padding: 14px 16px;
    border-radius: 6px;
    border: 1px solid #d7e8d2;
    background: #f3fbf1;
    color: #265f2d;
}

.snaf-point-unlock-result.is-error {
    border-color: #f0c7c7;
    background: #fff5f5;
    color: #9f2626;
}

.snaf-point-unlock-result-title {
    margin: 0;
    font-weight: 700;
}

.snaf-point-unlock-result {
    scroll-margin-top: 16px;
}

.snaf-point-admin-disable-form {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
}

.snaf-point-admin-disable-button {
    padding: 5px 10px;
    border: 1px solid #b32d2e;
    border-radius: 4px;
    background: #fff;
    color: #b32d2e;
    cursor: pointer;
    font-size: 82%;
    font-weight: 700;
}

.snaf-point-admin-disable-note {
    color: #666;
    font-size: 82%;
}

.snaf-point-unlock-box {
    margin: 18px 0 24px;
    padding: 18px;
    border: 1px solid #e4e1dc;
    border-radius: 6px;
    background: #fff;
}

.snaf-point-unlock-box.is-payable {
    border-color: #d9e7f7;
    background: #f7fbff;
}

.snaf-point-unlock-box.is-insufficient {
    border-color: #f0c7c7;
    background: #fff8f8;
}

.snaf-point-unlock-status {
    display: inline-block;
    margin: 0 0 8px;
    padding: 3px 9px;
    border-radius: 999px;
    background: #eef4fb;
    color: #2b5c8a;
    font-size: 82%;
    font-weight: 700;
}

.snaf-point-unlock-box h3 {
    margin: 0 0 8px;
    font-size: 1.1em;
}

.snaf-point-unlock-description {
    margin: 0 0 14px;
    color: #333;
}

.snaf-point-content-info {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 0 0 16px;
}

.snaf-point-content-info-item {
    padding: 10px 12px;
    border: 1px solid #e7e7e7;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.76);
}

.snaf-point-content-archive-intro {
    margin: 0 0 22px;
    padding: 16px 18px;
    border: 1px solid #d9e7f7;
    border-radius: 6px;
    background: #f7fbff;
}

.snaf-point-content-archive-label {
    display: inline-block;
    margin: 0 0 8px;
    padding: 3px 9px;
    border-radius: 999px;
    background: #eef4fb;
    color: #2b5c8a;
    font-size: 82%;
    font-weight: 700;
}

.snaf-point-content-archive-intro h2 {
    margin: 0 0 8px;
    font-size: 1.25em;
}

.snaf-point-content-archive-intro p:last-child {
    margin-bottom: 0;
}

.snaf-point-content-empty {
    margin: 16px 0;
    color: #555;
}

.snaf-point-guide {
    margin: 0 0 28px;
}

.snaf-point-guide-hero,
.snaf-point-guide-section,
.snaf-point-guide-notes,
.snaf-point-faq,
.snaf-faq-category,
.snaf-faq-intro,
.snaf-mypage-card,
.snaf-mypage-hero,
.snaf-mypage-faq-block {
    margin: 0 0 24px;
}

.snaf-point-guide-hero,
.snaf-mypage-hero,
.snaf-faq-intro {
    padding: 20px 18px;
    border: 1px solid #d9e7f7;
    border-radius: 6px;
    background: #f7fbff;
}

.snaf-mypage-card {
    padding: 18px;
    border: 1px solid #e7e7e7;
    border-radius: 6px;
    background: #fff;
}

.snaf-point-guide-label,
.snaf-mypage-label {
    display: inline-block;
    margin: 0 0 8px;
    padding: 3px 9px;
    border-radius: 999px;
    background: #eef4fb;
    color: #2b5c8a;
    font-size: 82%;
    font-weight: 700;
}

.snaf-point-guide h2,
.snaf-point-faq h2,
.snaf-faq-page h2,
.snaf-mypage h2 {
    margin: 0 0 12px;
    font-size: 1.25em;
}

.snaf-point-guide-hero h2,
.snaf-mypage-hero h2 {
    margin-bottom: 10px;
    font-size: 1.38em;
}

.snaf-point-guide-hero p:last-child,
.snaf-point-guide-section p:last-child,
.snaf-point-guide-notes p:last-child,
.snaf-faq-answer p:last-child,
.snaf-mypage-card p:last-child {
    margin-bottom: 0;
}

.snaf-point-guide-steps {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: snaf-point-step;
}

.snaf-point-guide-steps li {
    position: relative;
    padding: 12px 14px 12px 46px;
    border: 1px solid #e7e7e7;
    border-radius: 6px;
    background: #fff;
    counter-increment: snaf-point-step;
}

.snaf-point-guide-steps li::before {
    content: counter(snaf-point-step);
    position: absolute;
    top: 12px;
    left: 14px;
    display: grid;
    width: 22px;
    height: 22px;
    place-items: center;
    border-radius: 999px;
    background: #0062da;
    color: #fff;
    font-size: 82%;
    font-weight: 700;
}

.snaf-point-guide-steps strong,
.snaf-point-guide-steps span {
    display: block;
}

.snaf-point-guide-steps span {
    margin-top: 4px;
    color: #555;
}

.snaf-point-guide-list {
    margin: 12px 0 0;
    padding-left: 1.25em;
}

.snaf-point-guide-list li {
    margin: 6px 0;
}

.snaf-point-guide-notes {
    padding: 16px 18px;
    border: 1px solid #f0d7b8;
    border-radius: 6px;
    background: #fff9f0;
}

.snaf-point-guide-notes p {
    margin: 8px 0;
}

.snaf-point-benefit-list {
    display: grid;
    gap: 10px;
    margin: 0;
}

.snaf-point-benefit-item {
    display: grid;
    grid-template-columns: minmax(110px, 0.45fr) minmax(0, 1fr);
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid #e7e7e7;
    border-radius: 6px;
    background: #fff;
}

.snaf-point-benefit-item dt {
    margin: 0;
    color: #555;
    font-weight: 700;
}

.snaf-point-benefit-item dd {
    margin: 0;
}

.snaf-point-benefit-item dd strong,
.snaf-point-benefit-item dd span {
    display: block;
}

.snaf-point-benefit-item dd strong {
    color: #111;
    font-size: 1.08em;
}

.snaf-point-benefit-item dd span {
    margin-top: 3px;
    color: #555;
    font-size: 92%;
}

.snaf-point-guide-small-note,
.snaf-mypage-note {
    color: #555;
    font-size: 92%;
}

.snaf-point-guide-archive-link,
.snaf-point-mypage-guide-link,
.snaf-point-mypage-archive-link {
    margin: 12px 0 0;
}

.snaf-point-guide-archive-link a,
.snaf-point-mypage-guide-link a,
.snaf-point-mypage-archive-link a {
    display: inline-block;
    padding: 8px 12px;
    border-radius: 4px;
    background: #0062da;
    color: #fff;
    text-decoration: none;
    font-weight: 700;
}

.snaf-faq-item {
    margin: 0 0 10px;
    border: 1px solid #e7e7e7;
    border-radius: 6px;
    background: #fff;
}

.snaf-faq-item summary {
    padding: 12px 14px;
    cursor: pointer;
    font-weight: 700;
}

.snaf-faq-answer {
    padding: 0 14px 14px;
    color: #444;
}

.snaf-faq-category h2 {
    padding-bottom: 8px;
    border-bottom: 1px solid #e7e7e7;
}

.snaf-mypage-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 0 0 24px;
}

.snaf-mypage-actions a,
.snaf-mypage-primary-link {
    display: block;
    padding: 12px 14px;
    border-radius: 6px;
    background: #0062da;
    color: #fff;
    text-align: center;
    text-decoration: none;
    font-weight: 700;
}

.snaf-mypage-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.snaf-mypage-links a {
    display: block;
    padding: 10px 12px;
    border: 1px solid #e7e7e7;
    border-radius: 6px;
    background: #fff;
    text-decoration: none;
    font-weight: 700;
}

.snaf-mypage-sub-link {
    margin: 18px 0 0;
    text-align: right;
    font-size: 92%;
}

.snaf-point-content-info dt {
    margin: 0 0 4px;
    color: #666;
    font-size: 82%;
    font-weight: 700;
}

.snaf-point-content-info dd {
    margin: 0;
    color: #111;
    font-size: 1.1em;
    font-weight: 700;
}

.snaf-point-insufficient,
.snaf-point-shortage {
    margin: 10px 0 0;
    color: #9f2626;
    font-weight: 700;
}

.snaf-point-shortage {
    font-size: 92%;
}

.snaf-point-unlock-button {
    width: 100%;
    max-width: 320px;
    font-weight: 700;
}
  
  @media (max-width: 768px) {
    .content-end-separator::before,
    .content-end-separator::after {
      width: calc(50% - 50px);
    }

    .snaf-point-content-info {
      grid-template-columns: 1fr;
    }

    .snaf-point-benefit-item,
    .snaf-mypage-actions,
    .snaf-mypage-links {
      grid-template-columns: 1fr;
    }
  }
