/* ==========================================================================
   文字数カウンター 固有スタイル
   共通スタイル（CSS変数・カード・ボタン・フォーム）は ../shared/common.css

   このファイルは WordPress テーマ seo_times_2025 の bodyText.default_deco
   コンテキスト内で読み込まれるため、テーマCSSとの衝突を防ぐ防御的記述を含む。
   ========================================================================== */

/* ---------- ルートラッパー ---------- */
.wc-main {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 8px 0 32px;
  width: 100%;
  box-sizing: border-box;
}

/* ---------- 直下ブロック：hero と article は通常ブロック、grid はグリッド ---------- */
.wc-main > .wc-hero,
.wc-main > .wc-article {
  display: block;
  width: 100%;
  max-width: none;
  clear: both;
  float: none;
  position: relative;
  margin: 0 0 24px;
  padding: 0;
}

.wc-main > .wc-grid {
  display: grid;
  width: 100%;
  max-width: none;
  clear: both;
  float: none;
  position: relative;
  grid-template-columns: 1fr;
  gap: 24px;
  margin: 0 0 32px;
  padding: 0;
}

@media (min-width: 768px) {
  .wc-main > .wc-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 32px;
  }
}

/* ---------- wc-hero（H1+リード+グローバルアクション）---------- */
.wc-main .wc-hero {
  display: block;
  width: 100%;
  background: transparent;
  border: none;
  padding: 8px 0 16px;
  margin: 0 0 24px;
  clear: both;
  float: none;
  position: relative;
}

/* グローバルアクションのボタン群（すべてクリア・結果をすべてコピー）*/
.wc-main .wc-global-actions {
  display: flex !important;
  flex-wrap: wrap;
  gap: 10px;
  margin: 16px 0 0;
  padding: 0;
  clear: both;
  float: none;
  position: static;
}

.wc-main .wc-global-actions > button,
.wc-main .wc-global-actions > .btn {
  display: inline-flex !important;
  align-items: center;
  gap: 6px;
  padding: 8px 14px !important;
  font-size: 14px !important;
  font-weight: 500;
  line-height: 1.4;
  border-radius: var(--radius-sm);
  border: 1px solid var(--color-border);
  background: var(--color-bg-card);
  color: var(--color-text);
  float: none !important;
  position: static !important;
  margin: 0 !important;
  text-decoration: none;
  cursor: pointer;
}

.wc-main .wc-global-actions > .btn-primary {
  background: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
  color: #fff !important;
}

.wc-main .wc-global-actions > .btn-primary:hover {
  background: var(--color-primary-dark) !important;
  border-color: var(--color-primary-dark) !important;
}

.wc-main .wc-global-actions > .btn:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

/* ---------- テーマの bodyText が section に与える余白・装飾を打ち消す ---------- */
.wc-main section.wc-inputs,
.wc-main section.wc-results,
.wc-main section.wc-article {
  margin: 0;
  padding: 0;
  background: transparent;
  border: none;
}

/* テーマが section::before / ::after で装飾文字を入れている可能性への防御 */
.wc-main section.wc-inputs::before,
.wc-main section.wc-inputs::after,
.wc-main section.wc-results::before,
.wc-main section.wc-results::after {
  content: none !important;
  display: none !important;
}

/* ---------- sr-only（スクリーンリーダー専用）の防御 ---------- */
/* テーマの h2 装飾CSSに上書きされないよう、絶対的に隠す */
.wc-main .sr-only,
.wc-main h1.sr-only,
.wc-main h2.sr-only,
.wc-main h3.sr-only,
.wc-main h4.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
  background: transparent !important;
}

.wc-main .sr-only::before,
.wc-main .sr-only::after {
  display: none !important;
  content: none !important;
}

/* ---------- ボタン・テキストボタンの位置と装飾を強制 ---------- */
.wc-main button,
.wc-main .btn,
.wc-main .btn-text,
.wc-main .wc-copy-btn {
  float: none !important;
  position: static !important;
}

/* テキストボタン（× クリア、コピー）はプレーンに */
.wc-main .btn-text {
  background: transparent !important;
  border: none !important;
  padding: 4px 6px !important;
  font-size: 13px !important;
  color: var(--color-text-sub) !important;
  line-height: 1.4 !important;
  cursor: pointer;
  box-shadow: none !important;
  border-radius: 0 !important;
}

.wc-main .btn-text:hover {
  color: var(--color-primary) !important;
  text-decoration: underline;
}

/* ---------- フォーム入力欄の装飾を確保 ---------- */
.wc-main .form-input,
.wc-main .form-textarea {
  width: 100%;
  display: block;
  padding: 10px 12px !important;
  font-family: inherit;
  font-size: 16px !important;
  line-height: 1.6;
  color: var(--color-text);
  background: var(--color-bg-card) !important;
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius-sm) !important;
  box-sizing: border-box;
  margin: 0;
}

.wc-main .form-input:focus,
.wc-main .form-textarea:focus {
  outline: none;
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}

.wc-main .form-textarea {
  resize: vertical;
  min-height: 80px;
}

/* ---------- カードタイトル・ラベルはテーマの見出し装飾を抑制 ---------- */
.wc-main .wc-card-title,
.wc-main .form-label {
  background: none;
  border: none;
  padding: 0;
  margin: 0 0 6px;
}

.wc-main .wc-card-title {
  font-size: 14px;
  font-weight: 600;
  color: var(--color-text-sub);
  letter-spacing: 0.02em;
}

/* ---------- ツール本体内の段落・ヘルプテキスト ---------- */
.wc-main .wc-field {
  margin: 0 0 20px;
}

.wc-main .form-help {
  font-size: 13px;
  color: var(--color-text-sub);
  margin: 6px 0 0;
}

.wc-main .wc-privacy-note {
  font-size: 12px;
  color: var(--color-text-muted);
  margin: 8px 0 0;
}

/* ---------- ヒーロー ---------- */
/* H1 と H2/H3 はテーマ（bodyText.default_deco）に装飾を任せる。
   ここではマージンと、ボタン配置だけ調整する */

.wc-hero {
  padding: 8px 0 16px;
}

.wc-hero h1 {
  margin: 0 0 12px;
}

.wc-lead {
  color: var(--color-text-sub);
  margin: 0 0 16px;
  font-size: 15px;
  line-height: 1.7;
}

.wc-global-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 16px 0 0;
}

/* ---------- グリッド：768px以上で2カラム ---------- */

.wc-grid {
  display: grid;
  gap: 24px;
  grid-template-columns: 1fr;
  margin-top: 16px;
}

@media (min-width: 768px) {
  .wc-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 32px;
  }
}

/* ---------- 入力フィールド ---------- */

.wc-field {
  margin-bottom: 20px;
}

.wc-field-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 6px;
  gap: 8px;
}

.wc-toggle-row {
  margin: 8px 0 16px;
}

.wc-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: var(--color-text-sub);
  cursor: pointer;
  user-select: none;
}

.wc-toggle input {
  width: 16px;
  height: 16px;
  accent-color: var(--color-primary);
  cursor: pointer;
}

.wc-body-textarea {
  min-height: 280px;
}

.wc-privacy-note {
  font-size: 12px;
  color: var(--color-text-muted);
  margin-top: 8px;
}

/* ---------- 結果カード ---------- */

.wc-results {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.wc-card {
  transition: border-color var(--transition-base);
}

.wc-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
  gap: 8px;
}

.wc-card-title {
  font-size: 14px;
  font-weight: 600;
  color: var(--color-text-sub);
  margin: 0;
  letter-spacing: 0.02em;
}

.wc-card-main {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

/* カウント数値表示 */
.wc-count {
  margin: 0;
  font-size: 28px;
  font-weight: 700;
  color: var(--color-text);
  line-height: 1.2;
  display: flex;
  align-items: baseline;
  gap: 6px;
}

.wc-count-sep {
  color: var(--color-text-muted);
  font-weight: 400;
}

.wc-count-max {
  font-size: 16px;
  color: var(--color-text-sub);
  font-weight: 500;
}

/* プログレスバー */
.wc-progress {
  position: relative;
  height: 8px;
  background: var(--color-border);
  border-radius: 999px;
  overflow: hidden;
}

.wc-progress-bar {
  position: absolute;
  inset: 0 auto 0 0;
  width: 0%;
  background: var(--color-neutral);
  transition: width var(--transition-base), background-color var(--transition-base);
}

/* 判定テキスト */
.wc-verdict {
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  color: var(--color-text);
}

.wc-verdict-lg {
  font-size: 16px;
  font-weight: 600;
}

.wc-verdict-help {
  margin: 4px 0 0;
  font-size: 13px;
  color: var(--color-text-sub);
}

/* ステータス別カラー */
.wc-verdict[data-status="neutral"]  { color: var(--color-text-muted); }
.wc-verdict[data-status="warning"]  { color: var(--color-warning); }
.wc-verdict[data-status="success"]  { color: var(--color-success); }
.wc-verdict[data-status="caution"]  { color: var(--color-warning); }
.wc-verdict[data-status="danger"]   { color: var(--color-danger); }
.wc-verdict[data-status="info"]     { color: var(--color-info); }

.wc-card[data-status="neutral"] .wc-progress-bar { background: var(--color-neutral); }
.wc-card[data-status="warning"] .wc-progress-bar { background: var(--color-warning); }
.wc-card[data-status="success"] .wc-progress-bar { background: var(--color-success); }
.wc-card[data-status="caution"] .wc-progress-bar { background: var(--color-warning); }
.wc-card[data-status="danger"]  .wc-progress-bar { background: var(--color-danger); }
.wc-card[data-status="info"]    .wc-progress-bar { background: var(--color-info); }

.wc-card[data-status="success"] { border-color: rgba(16, 185, 129, 0.4); }
.wc-card[data-status="warning"] { border-color: rgba(245, 158, 11, 0.4); }
.wc-card[data-status="caution"] { border-color: rgba(245, 158, 11, 0.4); }
.wc-card[data-status="danger"]  { border-color: rgba(239, 68, 68, 0.4); }
.wc-card[data-status="info"]    { border-color: rgba(59, 130, 246, 0.4); }

/* 本文カード：統計リスト */
.wc-stats {
  margin: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 16px;
}

.wc-stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.wc-stat dt {
  font-size: 12px;
  color: var(--color-text-sub);
}

.wc-stat dd {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  color: var(--color-text);
}

.wc-stat dd span {
  font-size: 22px;
}

/* コピー成功時 */
.wc-copy-btn.is-copied {
  color: var(--color-success) !important;
}

/* ---------- 解説コンテンツ ---------- */
/* H2/H3 の装飾はテーマ側のbodyText.default_decoに任せる。
   こちらでは構造的な余白だけ調整 */

.wc-article {
  max-width: 820px;
  margin: 32px auto 0;
  padding: 0;
}

.wc-article > h2:first-child {
  margin-top: 0;
}

.wc-article code {
  background: var(--color-ad-bg);
  padding: 2px 6px;
  border-radius: 4px;
  font-size: 90%;
}

.wc-related-links {
  padding-left: 1.2em;
  margin: 12px 0 0;
}

.wc-related-links li {
  margin-bottom: 8px;
  line-height: 1.6;
}

/* ---------- レスポンシブ調整 ---------- */

@media (max-width: 767px) {
  .wc-main {
    padding: 8px 16px 24px;
  }
  .wc-stats {
    grid-template-columns: 1fr;
  }
}
