/*
Theme Name: LEAK TOKYO
Theme URI: https://leak.tokyo
Author: LEAK TOKYO
Author URI: https://leak.tokyo
Description: LEAK TOKYOメディアリニューアル用オリジナルテーマ。ストリートファッション/スニーカーのドロップ情報を「情報解禁前のドシエ（機密文書）」として編集・提示するためのエディトリアル特化テーマです。
Version: 3.11.0
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
Text Domain: leaktokyo
*/

/* ==========================================================================
   DESIGN TOKENS
   Concept: "The Leak Report" — streetwear intelligence dossier.
   v2.10で、素材感を「クラフト紙・書類」から「コンクリート・金属」寄りに
   トーンを寄せ、より洗練されたプレミアムストリートの質感に更新した
   （変数名は互換性のため維持し、値だけを更新している）。
   ========================================================================== */

:root {
  /* Color */
  --ink: #090909;          /* 基調の黒。より深い漆黒に */
  --ink-soft: #1c1c1c;     /* inkより一段明るい黒。ホバー等（ニュートラル寄りに） */
  --paper: #f7f7f5;        /* 本文の地色。ギャラリーホワイトに近いニュートラル */
  --paper-dim: #ececea;    /* カード背景等、コンクリートグレー寄りに */
  --kraft: #a7a7a2;        /* ミッドトーン。クラフト紙→コンクリートグレーへ */
  --kraft-dim: #6c6c68;    /* 補足テキスト・メタ情報 */
  --stamp: #e2261a;        /* アクセント。より彩度の高いストリートレッドに */
  --stamp-dim: #b81d13;
  --line: #dcdcda;         /* ヘアラインの罫線色 */

  /* Type */
  --font-display: 'Archivo Black', 'Zen Kaku Gothic New', sans-serif;
  --font-display-condensed: 'Bebas Neue', 'Archivo Black', 'Zen Kaku Gothic New', sans-serif; /* 特大見出し・LEAK COLUMN等の一点豪華用 */
  --font-sans: 'Zen Kaku Gothic New', 'Archivo', sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;

  /* Layout */
  --container: 1240px;
  --gutter: 24px;
  --radius: 0px; /* このテーマは角丸を使わない。折り目タブのみが例外 */
}

/* ==========================================================================
   RESET / BASE
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; overflow-x: hidden; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  max-width: 100%;
}

img { max-width: 100%; height: auto; display: block; }
figure { margin: 0; }

a { color: inherit; text-decoration: none !important; }
a:not([class]) {
  text-decoration: underline !important;
  text-decoration-color: var(--kraft);
  text-underline-offset: 3px;
}
a:not([class]):hover { text-decoration-color: var(--stamp); }

/* 可視フォーカス（アクセシビリティ） */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible {
  outline: 3px solid var(--stamp);
  outline-offset: 2px;
}

h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 900;
  line-height: 1.1;
  letter-spacing: -0.01em;
  margin: 0 0 0.5em;
}

p { margin: 0 0 1.4em; }
ul, ol { padding-left: 1.2em; }

button, input, textarea, select { font-family: inherit; font-size: inherit; }

.screen-reader-text {
  position: absolute;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  white-space: nowrap;
}

/* ==========================================================================
   LAYOUT UTILITIES
   ========================================================================== */

.wrap {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--gutter);
}

.measure { max-width: 68ch; } /* 80文字未満の行長ガイド */

/* ==========================================================================
   SITE HEADER
   ========================================================================== */

.site-header {
  background: var(--ink);
  color: var(--paper);
  border-bottom: 1px solid var(--ink-soft);
  position: sticky;
  top: 0;
  z-index: 40;
}

.site-header__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--gutter);
  padding: 18px var(--gutter);
  max-width: var(--container);
  margin: 0 auto;
}

.site-branding { display: flex; align-items: center; gap: 12px; }

.site-branding img.custom-logo {
  display: block;
  height: 34px;
  width: auto;
}

.site-title {
  font-family: var(--font-display);
  font-size: 20px;
  letter-spacing: 0.02em;
  margin: 0;
  color: var(--paper);
}
.site-title a { color: var(--paper); }
.site-logo img { display: block; height: 18px; width: auto; }
.site-logo--footer img { height: 16px; }
.custom-logo-link img { display: block; height: 18px; width: auto; }
@media (min-width: 780px) {
  .site-logo img,
  .custom-logo-link img { height: 20px; }
  .site-logo--footer img { height: 18px; }
}

.site-description {
  display: none;
}

.primary-nav {
  display: none;
}

@media (min-width: 900px) {
  .primary-nav { display: block; }
  .primary-nav ul {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 20px;
    flex-wrap: wrap;
  }
  .primary-nav a {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.02em;
    padding: 6px 0;
    text-decoration: none !important;
    border-bottom: 2px solid transparent;
  }
  .primary-nav a:hover,
  .primary-nav .current-menu-item > a {
    border-bottom-color: var(--stamp);
  }
}

.header-actions { display: flex; align-items: center; gap: 14px; }

.header-search-toggle,
.menu-toggle {
  background: none;
  border: 1px solid var(--kraft-dim);
  color: var(--paper);
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.header-search-toggle:hover,
.menu-toggle:hover { border-color: var(--stamp); color: var(--stamp); }

@media (min-width: 900px) {
  .menu-toggle { display: none; }
}

.header-search-panel {
  display: none;
  border-top: 1px solid var(--ink-soft);
  padding: 16px var(--gutter);
}
.header-search-panel.is-open { display: block; }
.header-search-panel form { display: flex; max-width: var(--container); margin: 0 auto; }
.header-search-panel input[type="search"] {
  flex: 1;
  min-width: 0;
  -webkit-appearance: none;
  appearance: none;
  border-radius: 0;
  background: var(--ink-soft);
  border: 1px solid var(--kraft-dim);
  color: var(--paper);
  caret-color: var(--paper);
  color-scheme: dark;
  padding: 10px 14px;
}
.header-search-panel button {
  background: var(--stamp);
  color: var(--paper);
  border: none;
  padding: 10px 18px;
  font-weight: 700;
  cursor: pointer;
}

.mobile-nav {
  display: none;
  border-top: 1px solid var(--ink-soft);
  padding: 18px var(--gutter) 18px;
}
.mobile-nav.is-open { display: block; }
.mobile-nav__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 2px;
  margin-bottom: 4px;
  border-bottom: 1px solid var(--ink-soft);
}
.mobile-nav__header-label {
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.1em;
  color: var(--kraft);
}
.mobile-nav__close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  margin: -8px;
  background: none;
  border: none;
  color: var(--paper);
  cursor: pointer;
}
.mobile-nav__close:hover { color: var(--stamp); }
.mobile-nav ul { list-style: none; margin: 0; padding: 0; }
.mobile-nav li { border-bottom: 1px solid var(--ink-soft); }
.mobile-nav a {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 2px;
  font-weight: 700;
  text-decoration: none !important;
}
.mobile-nav__icon { display: inline-flex; width: 18px; height: 18px; color: var(--stamp); flex-shrink: 0; }
.mobile-nav__icon svg { width: 100%; height: 100%; }

@media (min-width: 900px) {
  .mobile-nav { display: none !important; }
}

/* ==========================================================================
   STAMP BADGES（記事ステータス表示。装飾ではなく実際の情報種別を示す）
   ========================================================================== */

.stamp {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  padding: 3px 8px;
  border: 1px solid currentColor;
  white-space: nowrap;
}
.stamp--leak    { color: var(--stamp); }
.stamp--release { color: var(--ink); }
.stamp--sale    { color: var(--stamp); background: rgba(179,49,42,0.08); }
.stamp--review  { color: var(--kraft-dim); }
.stamp--pickup  { color: var(--ink); }
.stamp--calendar{ color: var(--kraft-dim); }

/* ==========================================================================
   HERO（最新の目玉記事を「解禁前の速報」として提示）
   ========================================================================== */

.hero {
  background: var(--ink);
  color: var(--paper);
}
.hero__inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: 48px var(--gutter) 56px;
  display: grid;
}
@media (min-width: 900px) {
  .hero__inner {
    grid-template-columns: 1.1fr 0.9fr;
    grid-template-areas:
      "meta    figure"
      "title   figure"
      "excerpt figure"
      "cta     figure";
    align-items: center;
    row-gap: 0;
    column-gap: 56px;
  }
  .hero__meta { grid-area: meta; }
  .hero h1 { grid-area: title; }
  .hero__excerpt { grid-area: excerpt; }
  .hero__cta { grid-area: cta; justify-self: start; }
  .hero__figure { grid-area: figure; }
}
.hero__meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
  color: var(--kraft);
  font-family: var(--font-mono);
  font-size: 12px;
}
.hero__brand { color: var(--paper); font-weight: 700; }
.hero h1 {
  color: var(--paper);
  font-size: clamp(28px, 4.6vw, 52px);
  margin-bottom: 18px;
}
.hero__excerpt { color: var(--kraft); font-size: 17px; max-width: 52ch; margin-bottom: 8px; }
.hero__cta {
  display: inline-block;
  margin-top: 22px;
  padding: 12px 22px;
  background: var(--paper);
  color: var(--ink);
  font-weight: 700;
  font-size: 14px;
}
.hero__cta:hover { background: var(--stamp); color: var(--paper); }
.hero__cta--dark { background: var(--ink); color: var(--paper); }
.hero__cta--dark:hover { background: var(--stamp); }

.hero__figure {
  position: relative;
  border: 1px solid var(--ink-soft);
  margin-bottom: 20px;
}
.hero__figure img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.hero__figure .stamp {
  position: absolute;
  top: 16px;
  left: 16px;
  background: var(--ink);
  border-color: var(--paper);
  color: var(--paper);
}

/* ==========================================================================
   CONTENT GRID（本体：マニフェスト・レール＋ドシエ・カード）
   ========================================================================== */

.content-grid {
  max-width: var(--container);
  margin: 0 auto;
  padding: 56px var(--gutter) 80px;
  display: grid;
  gap: 48px;
}
@media (min-width: 1020px) {
  .content-grid { grid-template-columns: 240px 1fr; align-items: start; }
  .content-grid.no-rail { grid-template-columns: 1fr; }
}

.section-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  border-bottom: 2px solid var(--ink);
  padding-bottom: 10px;
  margin-bottom: 24px;
}
.section-heading h2 { font-size: 20px; margin: 0; }
.section-heading .view-all { font-size: 13px; font-weight: 700; color: var(--kraft-dim); }
.section-heading .view-all:hover { color: var(--stamp); }

/* --- マニフェスト・レール（発売予定を日付順に並べるリスト） --- */

.manifest {
  border: 1px solid var(--line);
  background: var(--paper-dim);
}
.manifest__head {
  background: var(--ink);
  color: var(--paper);
  padding: 12px 16px;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.06em;
}
.manifest__list { list-style: none; margin: 0; padding: 0; }
.manifest__item {
  display: block;
  padding: 14px 16px;
  border-bottom: 1px solid var(--line);
}
.manifest__item:last-child { border-bottom: none; }
.manifest__date {
  display: block;
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--stamp);
  margin-bottom: 4px;
}
.manifest__title {
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
}
.manifest__item:hover .manifest__title { text-decoration: underline !important; text-decoration-color: var(--stamp); }
.manifest__empty { padding: 16px; font-size: 13px; color: var(--kraft-dim); }

/* --- ドシエ・カード（記事一覧グリッド） --- */

.dossier-grid {
  display: grid;
  gap: 28px;
  grid-template-columns: 1fr;
}
@media (min-width: 640px) {
  .dossier-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1020px) {
  .dossier-grid { grid-template-columns: repeat(3, 1fr); }
}

.dossier-card {
  position: relative;
  background: var(--paper);
  border: 1px solid var(--line);
  display: flex;
  flex-direction: column;
}
/* 折り目タブ：マニラフォルダを想起させる、このテーマ唯一の装飾的シグネチャー */
.dossier-card::before {
  content: '';
  position: absolute;
  top: -1px;
  left: 18px;
  width: 44px;
  height: 10px;
  background: var(--paper);
  border: 1px solid var(--line);
  border-bottom: none;
}

.dossier-card__figure { position: relative; border-bottom: 1px solid var(--line); overflow: hidden; }
.dossier-card__figure img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  transition: transform 0.4s ease;
}
.dossier-card:hover .dossier-card__figure img { transform: scale(1.03); }

.dossier-card__body { padding: 16px 18px 20px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.dossier-card__meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.dossier-card__brand {
  font-size: 12px;
  font-weight: 700;
  color: var(--kraft-dim);
}
.dossier-card__title {
  font-size: 17px;
  line-height: 1.4;
  margin: 0;
}
.dossier-card__title a::after { content: ''; position: absolute; inset: 0; }
.dossier-card__excerpt { font-size: 13px; color: var(--kraft-dim); margin: 0; }
.dossier-card__date {
  margin-top: auto;
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--kraft-dim);
  padding-top: 10px;
  border-top: 1px solid var(--line);
}

/* --- ページネーション --- */

.pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 40px;
  padding-top: 24px;
  border-top: 1px solid var(--line);
}
.pagination a, .pagination span {
  display: inline-flex;
  min-width: 36px;
  height: 36px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--line);
  font-family: var(--font-mono);
  font-size: 13px;
  padding: 0 8px;
}
.pagination .current { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.view-all-cta { text-align: center; margin-top: 32px; }
.view-all-cta .hero__cta { margin-top: 0; }
.pagination a:hover { border-color: var(--stamp); color: var(--stamp); }

/* --- ブランドインデックス --- */

.brand-index {
  background: var(--paper-dim);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.brand-index__inner { max-width: var(--container); margin: 0 auto; padding: 32px var(--gutter); }
.brand-index__list {
  list-style: none;
  margin: 0; padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.brand-index__list a {
  display: inline-block;
  padding: 8px 14px;
  border: 1px solid var(--kraft);
  font-size: 13px;
  font-weight: 700;
}
.brand-index__list a:hover { border-color: var(--stamp); color: var(--stamp); }

/* ==========================================================================
   SINGLE POST（レポート詳細）
   ========================================================================== */

.report {
  max-width: 760px;
  margin: 0 auto;
  padding: 48px var(--gutter) 80px;
}
.report__meta {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 18px;
}
.report__brand a { font-size: 13px; font-weight: 700; color: var(--kraft-dim); }
.report__brand a:hover { color: var(--stamp); }
.report h1 { font-size: clamp(26px, 4vw, 40px); margin-bottom: 14px; }
.report__dateline {
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--kraft-dim);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 10px 0;
  margin-bottom: 28px;
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}

.report__figure { margin-bottom: 32px; border: 1px solid var(--line); }

.dossier-fact-sheet {
  background: var(--paper-dim);
  border: 1px solid var(--line);
  padding: 20px 22px;
  margin: 0 0 32px;
}
.dossier-fact-sheet h2 {
  font-size: 13px;
  font-family: var(--font-mono);
  letter-spacing: 0.06em;
  margin-bottom: 12px;
  color: var(--kraft-dim);
}
.dossier-fact-sheet dl { display: grid; grid-template-columns: auto 1fr; gap: 6px 16px; margin: 0; }
.dossier-fact-sheet dt { font-size: 13px; color: var(--kraft-dim); font-weight: 700; }
.dossier-fact-sheet dd { margin: 0; font-size: 13px; }
.buy-link,
.dossier-fact-sheet a.buy-link {
  display: inline-block;
  margin-top: 14px;
  padding: 10px 18px;
  background: var(--stamp);
  color: var(--paper);
  font-weight: 700;
  font-size: 14px;
  border: none;
  cursor: pointer;
}
.buy-link:hover,
.dossier-fact-sheet a.buy-link:hover { background: var(--stamp-dim); color: var(--paper); }

.report__body { font-size: 17px; }
.report__body h2 { font-size: 22px; margin-top: 2em; }
.report__body h3 { font-size: 19px; margin-top: 1.8em; }
.report__body img { margin: 1.6em 0; border: 1px solid var(--line); }
.report__body figcaption { font-size: 13px; color: var(--kraft-dim); margin-top: 8px; }

.report__tags { margin-top: 40px; padding-top: 20px; border-top: 1px solid var(--line); }
.report__tags ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.report__tags a {
  font-size: 12px;
  padding: 5px 10px;
  border: 1px solid var(--kraft);
  color: var(--kraft-dim);
}
.report__tags a:hover { border-color: var(--stamp); color: var(--stamp); }

.related-reports { max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter) 80px; }

/* ==========================================================================
   PAGE / ARCHIVE HEADERS
   ========================================================================== */

.archive-header, .page-header-band {
  background: var(--ink);
  color: var(--paper);
}
.archive-header__inner, .page-header-band__inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: 40px var(--gutter);
}
.archive-header h1, .page-header-band h1 { color: var(--paper); font-size: clamp(24px, 3.6vw, 36px); margin-bottom: 8px; }
.archive-header p { color: var(--kraft); margin: 0; }

.page-content {
  max-width: 760px;
  margin: 0 auto;
  padding: 48px var(--gutter) 80px;
  font-size: 17px;
}
.page-content h2 { font-size: 22px; margin-top: 1.6em; }

/* ==========================================================================
   SEARCH / 404
   ========================================================================== */

.search-form { display: flex; gap: 10px; max-width: 480px; }
.search-form input[type="search"] {
  flex: 1;
  min-width: 0;
  -webkit-appearance: none;
  appearance: none;
  border-radius: 0;
  border: 1px solid var(--kraft);
  padding: 10px 14px;
  background: var(--paper);

	color: var(--ink);
	-webkit-text-fill-color: var(--ink);
	caret-color: var(--stamp);
}
.search-form button {
  background: var(--ink);
  color: var(--paper);
  border: none;
  padding: 10px 18px;
  font-weight: 700;
  cursor: pointer;
}
.search-form button:hover { background: var(--stamp); }

.no-results { padding: 60px var(--gutter); text-align: left; max-width: var(--container); margin: 0 auto; }

/* ==========================================================================
   SIDEBAR WIDGETS（アーカイブページ用の汎用ウィジェットエリア）
   ========================================================================== */

.widget { margin-bottom: 40px; }
.widget-title {
  font-size: 13px;
  font-family: var(--font-mono);
  letter-spacing: 0.06em;
  color: var(--kraft-dim);
  border-bottom: 1px solid var(--line);
  padding-bottom: 8px;
  margin-bottom: 14px;
}
.widget ul { list-style: none; margin: 0; padding: 0; }
.widget li { padding: 6px 0; font-size: 14px; border-bottom: 1px solid var(--line); }

/* ==========================================================================
   SITE FOOTER
   ========================================================================== */

.site-footer { background: var(--ink); color: var(--kraft); }
.site-footer__inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: 40px var(--gutter) 28px;
  display: grid;
  gap: 24px;
}
@media (min-width: 780px) {
  .site-footer__inner { grid-template-columns: 1.1fr 0.8fr 0.8fr 1.1fr; gap: 32px; }
}
.site-footer .site-title { font-size: 18px; margin-bottom: 10px; }
.site-footer .site-title--white { color: var(--paper); }
.site-footer p { color: var(--kraft-dim); font-size: 13px; max-width: 40ch; }
.footer-brand-copy { font-size: 12px; line-height: 1.8; margin-bottom: 14px; }
.footer-nav-title { font-size: 12px; font-family: var(--font-mono); letter-spacing: 0.06em; color: var(--paper); margin-bottom: 12px; }
.footer-nav ul { list-style: none; margin: 0; padding: 0; }
.footer-nav li { margin-bottom: 8px; }
.footer-nav a { font-size: 14px; text-decoration: none !important; }
.footer-nav a:hover { color: var(--stamp); }
.site-footer__bottom {
  border-top: 1px solid var(--ink-soft);
  padding: 18px var(--gutter);
  font-size: 12px;
  color: var(--kraft-dim);
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
}
.social-links { display: flex; gap: 10px; list-style: none; margin: 0; padding: 0; }
.social-links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border: 1px solid var(--ink-soft);
  color: var(--kraft);
}
.social-links a svg { width: 16px; height: 16px; }
.social-links a:hover { color: var(--paper); border-color: var(--stamp); background: var(--stamp); }
.footer-shop-link { margin-top: 10px; }
.footer-shop-link a { font-size: 13px; font-weight: 700; }
.footer-shop-link a:hover { color: var(--stamp); }

/* ==========================================================================
   MEMBER NAV（ヘッダー右：ログイン／マイページ導線）
   ========================================================================== */

.member-nav { display: none; align-items: center; gap: 12px; }
@media (min-width: 640px) {
  .member-nav { display: flex; }
}
.member-nav__link { font-size: 13px; font-weight: 700; color: var(--kraft); }
.member-nav__link:hover { color: var(--paper); }
.member-nav__link--cta {
  color: var(--ink);
  background: var(--paper);
  padding: 7px 14px;
}
.member-nav__link--cta:hover { background: var(--stamp); color: var(--paper); }

.mobile-nav__member {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--ink-soft);
}
.mobile-nav__social {
  display: flex;
  gap: 10px;
  list-style: none;
  margin: 16px 0 0;
  padding-top: 16px;
  border-top: 1px solid var(--ink-soft);
}
.mobile-nav__social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 1px solid var(--ink-soft);
  color: var(--kraft);
}
.mobile-nav__social a svg { width: 17px; height: 17px; }
.mobile-nav__social a:hover { color: var(--paper); border-color: var(--stamp); background: var(--stamp); }

/* ==========================================================================
   広告枠（AdSense等）
   ========================================================================== */

.ad-slot {
  margin: 32px 0;
  padding: 6px;
  border: 1px dashed var(--kraft);
  background: var(--paper-dim);
  text-align: center;
  overflow: hidden;
}
.ad-slot ins,
.ad-slot iframe { max-width: 100%; }
.ad-slot__label {
  display: block;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  color: var(--kraft-dim);
  margin-bottom: 6px;
}
.hero .ad-slot,
.site-footer .ad-slot { margin: 24px 0; }

/* ==========================================================================
   フォーム共通（会員登録・ログイン・お問い合わせ・マイページ）
   ========================================================================== */

.auth-page {
  max-width: 480px;
  margin: 0 auto;
  padding: 48px var(--gutter) 80px;
}
.auth-page__intro { margin-bottom: 24px; font-size: 15px; color: var(--kraft-dim); }
.auth-page__switch { margin-top: 18px; font-size: 14px; text-align: center; }
.auth-page__switch a { font-weight: 700; text-decoration: underline !important; text-decoration-color: var(--kraft); }

.auth-form { display: flex; flex-direction: column; gap: 16px; }
.auth-form__row { display: flex; flex-direction: column; gap: 6px; margin: 0; }
.auth-form__row label { font-size: 13px; font-weight: 700; }
.auth-form__row .required { color: var(--stamp); }
.auth-form__row input,
.auth-form__row select,
.auth-form__row textarea {
  border: 1px solid var(--kraft);
  background: var(--paper);
  padding: 10px 12px;
  font-size: 15px;
}
.auth-form__row input:disabled { color: var(--kraft-dim); background: var(--paper-dim); }
.auth-form__checkbox { font-size: 13px; margin: 0; display: flex; align-items: center; gap: 8px; }
.auth-form__note { font-size: 12px; color: var(--kraft-dim); margin: 0; }
.auth-form button[type="submit"] {
  border: none;
  cursor: pointer;
  align-self: flex-start;
  font-size: 15px;
}

.form-notice {
  padding: 12px 16px;
  font-size: 14px;
  margin-bottom: 20px;
  border: 1px solid;
}
.form-notice--success { color: var(--ink); border-color: var(--ink); background: var(--paper-dim); }
.form-notice--error { color: var(--stamp); border-color: var(--stamp); background: rgba(179,49,42,0.06); }

/* ==========================================================================
   ニュースレター登録フォーム
   ========================================================================== */

.newsletter-form__title {
  font-size: 12px;
  font-family: var(--font-mono);
  letter-spacing: 0.06em;
  color: var(--paper);
  margin: 0 0 6px;
}
.newsletter-form__desc { font-size: 12px; color: var(--kraft-dim); margin: 0 0 10px; max-width: 32ch; line-height: 1.6; }
.newsletter-form__form { display: flex; gap: 8px; }
.newsletter-form__form input[type="email"] {
  flex: 1;
  min-width: 0;
  background: var(--ink-soft);
  border: 1px solid var(--kraft-dim);
  color: var(--paper);
  caret-color: var(--paper);
  color-scheme: dark;
  padding: 9px 12px;
  font-size: 13px;
}
.newsletter-form__form button {
  background: var(--stamp);
  color: var(--paper);
  border: none;
  padding: 9px 14px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
}
.newsletter-form__form button:hover { background: var(--stamp-dim); }

/* 記事下・独立ページ等、紙地の上に置かれる場合の配色調整 */
.report .newsletter-form,
.page-content .newsletter-form {
  background: var(--ink);
  padding: 24px;
  margin: 40px 0;
}

/* ==========================================================================
   クリップボタン
   ========================================================================== */

.clip-button {
  position: relative;
  z-index: 2; /* カード全面リンク（::after）より前面に出す */
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: none;
  border: 1px solid var(--kraft);
  color: var(--kraft-dim);
  padding: 4px 10px;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
}
.clip-button:hover { border-color: var(--stamp); color: var(--stamp); }
.clip-button.is-clipped { border-color: var(--stamp); color: var(--stamp); background: rgba(179,49,42,0.06); }
.dossier-card__meta .like-button,
.dossier-card__meta .clip-button { padding: 3px 8px; }
.dossier-card__meta .like-button { margin-left: auto; }

/* ==========================================================================
   シェアボタン
   ========================================================================== */

.share-buttons {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.share-buttons__label {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--kraft-dim);
  margin-right: 4px;
}
.share-buttons__item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  height: 30px;
  padding: 0 10px;
  border: 1px solid var(--kraft);
  font-size: 12px;
  font-weight: 700;
  background: none;
  color: var(--ink);
  cursor: pointer;
}
.report__dateline .share-buttons { margin-left: auto; }
.report__comment-jump { font-weight: 700; }
.report__comment-jump:hover { color: var(--stamp); }
.share-buttons__item:hover { border-color: var(--stamp); color: var(--stamp); }

.report__actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 32px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}
.report__actions .clip-button { margin-left: 0; }

/* ==========================================================================
   コメント（会員ディスカッション）
   ========================================================================== */

.comments-area { margin-top: 20px; }
.comments-title { font-size: 20px; border-bottom: 2px solid var(--ink); padding-bottom: 10px; margin-bottom: 24px; }
.comment-list { list-style: none; margin: 0; padding: 0; }
.comment-list .children { list-style: none; margin: 20px 0 0 32px; padding: 0; border-left: 2px solid var(--line); padding-left: 20px; }

.comment-item {
  border-bottom: 1px solid var(--line);
  padding: 20px 0;
}
.comment-item__meta { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.comment-item__avatar { border: 1px solid var(--line); }
.comment-item__author { display: block; font-weight: 700; font-size: 14px; }
.comment-item__date { display: block; font-size: 12px; color: var(--kraft-dim); font-family: var(--font-mono); }
.comment-item__text { font-size: 15px; }
.comment-item__text p:last-child { margin-bottom: 0; }
.comment-item__moderation { font-size: 12px; color: var(--stamp); }
.comment-item__reply a { font-size: 12px; font-weight: 700; color: var(--kraft-dim); }
.comment-item__reply a:hover { color: var(--stamp); }

.comment-login-prompt {
  background: var(--paper-dim);
  border: 1px solid var(--line);
  padding: 24px;
  text-align: center;
}
.comment-login-prompt p { margin-bottom: 14px; }
.comment-login-prompt a { display: inline-block; margin: 0 8px; }

#respond { margin-top: 12px; }
.no-comments--empty {
  font-size: 14px;
  color: var(--kraft-dim);
  padding: 16px 0 24px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 20px;
}
.comment-form-comment textarea {
  width: 100%;
  border: 1px solid var(--kraft);
  padding: 12px;
  font-family: inherit;
  font-size: 15px;
}
#commentform p { margin: 0 0 14px; }
#commentform .comment-notes,
#commentform .logged-in-as { font-size: 12px; color: var(--kraft-dim); }

/* ==========================================================================
   マイページ
   ========================================================================== */

.mypage { display: flex; flex-direction: column; gap: 48px; }
.mypage__section { max-width: 720px; }
.mypage__comment-list { list-style: none; margin: 0; padding: 0; }
.mypage__comment-list li { padding: 14px 0; border-bottom: 1px solid var(--line); }
.mypage__comment-list a { font-weight: 700; font-size: 14px; }
.mypage__comment-list p { margin: 6px 0 0; font-size: 13px; color: var(--kraft-dim); }

/* ==========================================================================
   メディア紹介・カテゴリー一覧
   ========================================================================== */

.media-kit__intro { margin-bottom: 40px; }
.media-kit__grid { display: grid; gap: 40px; }
@media (min-width: 780px) {
  .media-kit__grid { grid-template-columns: 1fr 1fr; }
}
.media-kit__grid h2 { font-size: 18px; margin-bottom: 14px; }

.category-index__group { margin-bottom: 32px; }
.category-index__letter {
  font-family: var(--font-mono);
  font-size: 14px;
  color: var(--stamp);
  border-bottom: 1px solid var(--line);
  padding-bottom: 6px;
  margin-bottom: 12px;
}

/* ==========================================================================
   フッター内 規約リンク
   ========================================================================== */

.footer-legal-nav { display: flex; gap: 16px; flex-wrap: wrap; }
.footer-legal-nav a { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.03em; color: var(--kraft-dim); text-decoration: none !important; }
.footer-legal-nav a:hover { color: var(--stamp); }

/* ==========================================================================
   いいねボタン・リアクション行
   ========================================================================== */

.report__reactions,
.report__actions .report__reactions { display: flex; align-items: center; gap: 8px; }
.report__meta .report__reactions { margin-left: auto; }

.like-button {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: none;
  border: 1px solid var(--kraft);
  color: var(--kraft-dim);
  padding: 4px 10px;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  font-family: var(--font-mono);
}
.like-button:hover { border-color: var(--stamp); color: var(--stamp); }
.like-button.is-liked { border-color: var(--stamp); color: var(--stamp); background: rgba(179,49,42,0.06); }

.dossier-card__date {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}
.dossier-card__stats {
  display: flex;
  gap: 8px;
  color: var(--kraft-dim);
}

/* ==========================================================================
   人気記事ランキング
   ========================================================================== */

.popular-posts { border: 1px solid var(--line); background: var(--paper-dim); margin-top: 24px; }
.popular-posts__list { list-style: none; margin: 0; padding: 0; }
.popular-posts__item { border-bottom: 1px solid var(--line); }
.popular-posts__item:last-child { border-bottom: none; }
.popular-posts__item a {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 16px;
}
.popular-posts__rank {
  font-family: var(--font-mono);
  font-size: 15px;
  font-weight: 700;
  color: var(--stamp);
  min-width: 28px;
}
.popular-posts__body { display: flex; flex-direction: column; gap: 4px; }
.popular-posts__title { font-size: 13px; font-weight: 700; line-height: 1.4; }
.popular-posts__item:hover .popular-posts__title { text-decoration: underline !important; text-decoration-color: var(--stamp); }
.popular-posts__views { font-family: var(--font-mono); font-size: 11px; color: var(--kraft-dim); }

/* ==========================================================================
   目次（TOC）
   ========================================================================== */

.toc {
  border: 1px solid var(--line);
  background: var(--paper-dim);
  padding: 14px 18px;
  margin: 0 0 32px;
}
.toc__summary {
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--kraft-dim);
  cursor: pointer;
  font-weight: 700;
}
.toc__list { list-style: none; margin: 12px 0 0; padding: 0; counter-reset: toc; }
.toc__item { padding: 6px 0; font-size: 14px; }
.toc__item--h3 { padding-left: 16px; font-size: 13px; color: var(--kraft-dim); }
.toc__item a:hover { color: var(--stamp); }

/* ==========================================================================
   コメント通報ボタン
   ========================================================================== */

.comment-report-button {
  background: none;
  border: none;
  padding: 0;
  margin-left: 12px;
  font-size: 12px;
  color: var(--kraft-dim);
  cursor: pointer;
  text-decoration: underline !important;
  text-decoration-color: var(--kraft);
}
.comment-report-button:hover { color: var(--stamp); text-decoration-color: var(--stamp); }

/* アフィリエイト表記バー */
.site-footer__affiliate-notice {
  background: var(--ink-soft);
  color: var(--kraft-dim);
  font-size: 11px;
  padding: 10px 0;
}

/* ==========================================================================
   人気記事（サムネイル横並び・トップページ）
   ========================================================================== */

.popular-row { max-width: var(--container); margin: 0 auto; padding: 48px 0 0; }
.popular-row__grid {
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(2, 1fr);
}
@media (min-width: 780px) {
  .popular-row__grid { grid-template-columns: repeat(4, 1fr); }
}
.popular-row__card { position: relative; display: flex; flex-direction: column; gap: 8px; }
.popular-row__rank {
  position: absolute;
  top: 8px;
  left: 8px;
  z-index: 2;
  background: var(--ink);
  color: var(--paper);
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 700;
  padding: 2px 8px;
}
.popular-row__figure { display: block; border: 1px solid var(--line); overflow: hidden; }
.popular-row__figure img { width: 100%; aspect-ratio: 4/3; object-fit: cover; transition: transform 0.4s ease; }
.popular-row__card:hover .popular-row__figure img { transform: scale(1.03); }
.popular-row__title { font-size: 14px; line-height: 1.4; margin: 0; }
.popular-row__views { font-family: var(--font-mono); font-size: 11px; color: var(--kraft-dim); }

/* ==========================================================================
   発売カレンダー・ストリップ（トップページ）
   ========================================================================== */

.release-strip { max-width: var(--container); margin: 0 auto; padding: 48px 0 0; }
.release-strip__scroller {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  padding-bottom: 8px;
  scroll-snap-type: x proximity;
}
.release-strip__day {
  flex: 0 0 auto;
  width: 160px;
  scroll-snap-align: start;
  border: 1px solid var(--line);
  background: var(--paper-dim);
}
.release-strip__date {
  background: var(--ink);
  color: var(--paper);
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 700;
  padding: 8px 12px;
}
.release-strip__dow { color: var(--kraft); font-weight: 400; margin-left: 2px; }
.release-strip__item {
  display: block;
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
}
.release-strip__item:last-child { border-bottom: none; }
.release-strip__thumb { display: block; border: 1px solid var(--line); margin-bottom: 6px; }
.release-strip__thumb img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.release-strip__title { font-size: 12px; line-height: 1.4; display: block; }
.release-strip__item:hover .release-strip__title { text-decoration: underline !important; text-decoration-color: var(--stamp); }

/* ==========================================================================
   特集セクション（トップページ）
   ========================================================================== */

.feature-section { max-width: var(--container); margin: 0 auto; padding: 48px 0 0; }
.feature-section__block + .feature-section__block { margin-top: 48px; }
.feature-section__desc { color: var(--kraft-dim); font-size: 14px; margin: -8px 0 20px; max-width: 60ch; }

/* ==========================================================================
   ショップ導線バナー
   ========================================================================== */

.shop-banner { background: var(--ink); margin-top: 48px; }
.shop-banner__inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: 32px var(--gutter);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 20px;
}
.shop-banner__inner h2 { color: var(--paper); font-size: 22px; margin: 8px 0 4px; }
.shop-banner__inner p { color: var(--kraft); margin: 0; font-size: 14px; }

/* ヘッダーのSHOPボタン */
.header-shop-link {
  display: inline-flex;
  align-items: center;
  background: var(--stamp);
  color: var(--paper) !important;
  font-size: 12px;
  font-weight: 700;
  padding: 6px 12px;
  margin-right: 4px;
}
.header-shop-link:hover { background: var(--stamp-dim); }

/* ==========================================================================
   会員プロフィールページ
   ========================================================================== */

.profile-header { display: flex; align-items: center; gap: 20px; }
.profile-header__avatar { border: 2px solid var(--paper); }
.profile-header__meta { color: var(--kraft); font-size: 13px; margin: 4px 0 0; }
.profile-bio { margin-bottom: 32px; color: var(--ink); }

/* お気に入りブランド チェックボックス一覧（マイページ） */
.brand-checkbox-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  border: 1px solid var(--kraft);
  padding: 14px;
  max-height: 220px;
  overflow-y: auto;
}
.brand-checkbox-list__item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 400;
  white-space: nowrap;
}

/* ==========================================================================
   リリースカレンダー（日付グルーピング）
   ========================================================================== */

.calendar-jump {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 24px 0 40px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--line);
}
.calendar-jump a {
  display: inline-block;
  padding: 6px 14px;
  border: 1px solid var(--kraft);
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 700;
}
.calendar-jump a:hover { border-color: var(--stamp); color: var(--stamp); }

.calendar-day { margin-bottom: 48px; scroll-margin-top: 90px; }
.calendar-day__heading {
  display: flex;
  align-items: baseline;
  gap: 10px;
  background: var(--ink);
  color: var(--paper);
  padding: 12px 18px;
  margin-bottom: 20px;
}
.calendar-day__date { font-family: var(--font-display); font-size: 20px; }
.calendar-day__dow { color: var(--kraft); font-size: 14px; }
.calendar-day__count { margin-left: auto; font-family: var(--font-mono); font-size: 12px; color: var(--kraft); }

/* ==========================================================================
   みんなの声（コメントフィード・トップページ）
   ========================================================================== */

.voice-feed { max-width: var(--container); margin: 0 auto; padding: 48px 0 0; }
.voice-feed__grid {
  display: grid;
  gap: 16px;
  grid-template-columns: 1fr;
}
@media (min-width: 780px) {
  .voice-feed__grid { grid-template-columns: repeat(3, 1fr); }
}
.voice-feed__item {
  display: flex;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--line);
  background: var(--paper);
}
.voice-feed__item:hover { border-color: var(--stamp); }
.voice-feed__avatar { border: 1px solid var(--line); flex-shrink: 0; }
.voice-feed__body { min-width: 0; }
.voice-feed__author { font-size: 13px; font-weight: 700; display: block; margin-bottom: 4px; }
.voice-feed__text { font-size: 13px; color: var(--ink); margin: 0 0 6px; line-height: 1.5; }
.voice-feed__on { font-size: 11px; color: var(--kraft-dim); font-family: var(--font-mono); }

/* ==========================================================================
   会員登録プロモーション（トップページ）
   ========================================================================== */

.member-promo { background: var(--ink); margin-top: 48px; }
.member-promo__inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: 56px var(--gutter);
  text-align: center;
}
.member-promo__inner h2 {
  color: var(--paper);
  font-size: clamp(22px, 3.4vw, 32px);
  max-width: 20ch;
  margin: 18px auto 8px;
}
.member-promo__social-proof {
  color: var(--stamp);
  font-family: var(--font-mono);
  font-size: 13px;
  margin: 0 0 32px;
}
.member-promo__grid {
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(2, 1fr);
  max-width: 640px;
  margin: 0 auto 36px;
  text-align: left;
}
@media (min-width: 640px) {
  .member-promo__grid { grid-template-columns: repeat(4, 1fr); }
}
.member-promo__perk { color: var(--kraft); }
.member-promo__icon { display: block; width: 24px; height: 24px; margin-bottom: 8px; }
.member-promo__icon svg { width: 100%; height: 100%; }
.member-promo__perk p { font-size: 13px; margin: 0; line-height: 1.5; }
.member-promo__perk strong { display: block; color: var(--paper); font-size: 14px; margin-bottom: 2px; }

/* 文字と並べる小さいインラインSVGアイコン（絵文字の代わり） */
.icon-inline {
  display: inline-block;
  width: 1em;
  height: 1em;
  vertical-align: -0.15em;
}

/* ==========================================================================
   記事の要点（3行まとめボックス）
   ========================================================================== */

.report__summary {
  background: var(--paper-dim);
  border-left: 4px solid var(--stamp);
  padding: 16px 20px;
  margin: 0 0 28px;
}
.report__summary-label {
  display: block;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  color: var(--stamp);
  margin-bottom: 8px;
  font-weight: 700;
}
.report__summary ul { margin: 0; padding-left: 1.2em; }
.report__summary li { font-size: 15px; font-weight: 700; margin-bottom: 4px; }
.report__summary li:last-child { margin-bottom: 0; }

/* 記事本文中のブロック要素の読みやすさ強化 */
.report__body blockquote {
  border-left: 4px solid var(--kraft);
  margin: 1.6em 0;
  padding: 4px 20px;
  font-size: 16px;
  color: var(--kraft-dim);
  font-style: italic;
}
.report__body table {
  width: 100%;
  border-collapse: collapse;
  margin: 1.6em 0;
  font-size: 14px;
}
.report__body table th,
.report__body table td {
  border: 1px solid var(--line);
  padding: 8px 12px;
  text-align: left;
}
.report__body table th { background: var(--paper-dim); font-weight: 700; }
.report__body ul,
.report__body ol { padding-left: 1.4em; margin-bottom: 1.4em; }
.report__body li { margin-bottom: 0.4em; }
.report__body a:not(.buy-link) {
  text-decoration: underline !important;
  text-decoration-color: var(--stamp);
  text-underline-offset: 2px;
}

/* ==========================================================================
   ストリート感の演出（v2.10）
   ========================================================================== */

/* ハザードストライプ（工事現場のトラテープ的モチーフ）。区切り・強調に使う */
.hazard-stripe {
  height: 6px;
  background: repeating-linear-gradient(
    -45deg,
    var(--stamp),
    var(--stamp) 10px,
    var(--ink) 10px,
    var(--ink) 20px
  );
}

/* 画像はデフォルトでモノクロ寄りにし、ホバーで色が付く（雑誌の質感） */
.dossier-card__figure img,
.popular-row__figure img,
.release-strip__thumb img {
  filter: grayscale(0.55) contrast(1.05);
  transition: filter 0.35s ease, transform 0.4s ease;
}
.dossier-card:hover .dossier-card__figure img,
.popular-row__card:hover .popular-row__figure img,
.release-strip__item:hover .release-strip__thumb img {
  filter: grayscale(0) contrast(1.05);
}

/* ヒーロー画像は常にフルカラー（速報の主役のため） */
.hero__figure img { filter: none; }

/* 見出しの装飾：小さいハザードマーカーを添える有料版のセクション見出し */
.section-heading h2::before {
  content: '';
  display: inline-block;
  width: 10px;
  height: 10px;
  background: var(--stamp);
  margin-right: 8px;
  transform: translateY(-1px);
}

/* ==========================================================================
   ブランド図鑑
   ========================================================================== */

.brand-encyclopedia__grid {
  display: grid;
  gap: 20px;
  grid-template-columns: 1fr;
  margin-bottom: 8px;
}
@media (min-width: 640px) {
  .brand-encyclopedia__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 980px) {
  .brand-encyclopedia__grid { grid-template-columns: repeat(3, 1fr); }
}
.brand-encyclopedia__card {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 20px;
  border: 1px solid var(--line);
  background: var(--paper);
}
.brand-encyclopedia__card:hover { border-color: var(--stamp); }
.brand-encyclopedia__logo { display: block; margin-bottom: 6px; }
.brand-encyclopedia__logo img { max-height: 40px; width: auto; filter: none; }
.brand-encyclopedia__name { font-family: var(--font-display); font-size: 18px; letter-spacing: -0.01em; }
.brand-encyclopedia__facts { font-family: var(--font-mono); font-size: 11px; color: var(--stamp); }
.brand-encyclopedia__desc { font-size: 13px; color: var(--kraft-dim); line-height: 1.6; }
.brand-encyclopedia__count { margin-top: auto; padding-top: 10px; font-family: var(--font-mono); font-size: 11px; color: var(--kraft-dim); border-top: 1px solid var(--line); }

/* カテゴリアーカイブ上部のブランド情報パネル */
.brand-info-panel {
  max-width: var(--container);
  margin: 32px auto 0;
  padding: 24px var(--gutter);
  display: flex;
  gap: 24px;
  align-items: flex-start;
  border: 1px solid var(--line);
  background: var(--paper-dim);
}
.brand-info-panel__logo img { max-height: 56px; width: auto; filter: none; }
.brand-info-panel__facts { font-family: var(--font-mono); font-size: 12px; color: var(--stamp); margin: 0 0 8px; }
.brand-info-panel__desc { font-size: 14px; color: var(--ink); margin: 0; max-width: 70ch; line-height: 1.7; }

/* ==========================================================================
   ブランド投票ランキング
   ========================================================================== */

.brand-rank-list { list-style: none; margin: 0; padding: 0; }
.brand-rank {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 0;
  border-bottom: 1px solid var(--line);
}
.brand-rank__rank { font-family: var(--font-display-condensed); font-size: 22px; color: var(--stamp); min-width: 40px; }
.brand-rank__logo img { max-height: 28px; width: auto; filter: none; }
.brand-rank__name { flex: 1; font-weight: 700; font-size: 15px; }
.brand-rank__count { font-family: var(--font-mono); font-size: 12px; color: var(--kraft-dim); }
.brand-vote-button {
  border: 1px solid var(--ink);
  background: var(--ink);
  color: var(--paper);
  font-size: 12px;
  font-weight: 700;
  padding: 6px 14px;
  cursor: pointer;
}
.brand-vote-button:hover { background: var(--stamp); border-color: var(--stamp); }
.brand-vote-button[aria-pressed="true"] { background: var(--paper-dim); color: var(--kraft-dim); border-color: var(--line); cursor: default; }

/* アイテムランキングの順位バッジ */
.item-rank__badge {
  position: absolute;
  top: 8px;
  left: 8px;
  z-index: 2;
  background: var(--ink);
  color: var(--paper);
  font-family: var(--font-display-condensed);
  font-size: 16px;
  padding: 2px 10px;
}

/* ==========================================================================
   LEAK COLUMN 専用スタイル
   ========================================================================== */

.leak-column-header { background: var(--ink); }
.leak-column-header .archive-header__inner h1 { color: var(--paper); }
.leak-column-header .archive-header__inner p { color: var(--kraft); max-width: 60ch; }

.leak-column__body { font-size: 18px; line-height: 1.9; }
.leak-column__body p:first-of-type {
  font-size: 20px;
  font-weight: 500;
}

/* ==========================================================================
   記事構造化パーツ（要約・評価・メリットデメリット・FAQ）
   ========================================================================== */

.report__rating { display: inline-flex; align-items: center; gap: 6px; color: var(--stamp); font-size: 15px; letter-spacing: 1px; }
.report__rating-num { font-family: var(--font-mono); font-size: 12px; color: var(--kraft-dim); letter-spacing: 0; }

.report__abstract {
  font-size: 18px;
  font-weight: 500;
  color: var(--kraft-dim);
  margin: 0 0 20px;
  max-width: 68ch;
}

.pros-cons {
  display: grid;
  gap: 16px;
  grid-template-columns: 1fr;
  margin: 0 0 32px;
}
@media (min-width: 640px) {
  .pros-cons { grid-template-columns: 1fr 1fr; }
}
.pros-cons__col { padding: 18px 20px; border: 1px solid var(--line); }
.pros-cons__col h2 { font-size: 15px; margin-bottom: 10px; }
.pros-cons__col--pros h2::before { content: '+ '; color: var(--stamp); }
.pros-cons__col--cons h2::before { content: '− '; color: var(--kraft-dim); }
.pros-cons__col ul { margin: 0; padding-left: 1.2em; }
.pros-cons__col li { font-size: 14px; margin-bottom: 6px; }

.faq-block { margin: 0 0 32px; }
.faq-block h2 { font-size: 18px; margin-bottom: 14px; }
.faq-block__item {
  border: 1px solid var(--line);
  padding: 14px 18px;
  margin-bottom: 8px;
}
.faq-block__item summary {
  font-weight: 700;
  cursor: pointer;
  font-size: 15px;
}
.faq-block__item summary::before { content: 'Q. '; color: var(--stamp); }
.faq-block__item p { margin: 10px 0 0; font-size: 14px; color: var(--kraft-dim); padding-left: 1.4em; }

/* ==========================================================================
   もっと楽しむ（新機能への導線・トップページ）
   ========================================================================== */

.explore-more { max-width: var(--container); margin: 0 auto; padding: 48px 0 0; }
.explore-more__grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(2, 1fr);
}
@media (min-width: 780px) {
  .explore-more__grid { grid-template-columns: repeat(4, 1fr); }
}
.explore-more__card {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 22px 18px;
  background: var(--ink);
  color: var(--paper);
  border: 1px solid var(--ink-soft);
}
.explore-more__card:hover { background: var(--stamp); }
.explore-more__icon { display: block; width: 30px; height: 30px; margin-bottom: 4px; }
.explore-more__icon svg { width: 100%; height: 100%; }
.explore-more__label { font-family: var(--font-display); font-size: 15px; letter-spacing: -0.01em; }
.explore-more__desc { font-size: 12px; color: var(--kraft); }
.explore-more__card:hover .explore-more__desc { color: var(--paper); }

/* ==========================================================================
   PR表記バッジ
   ========================================================================== */

.pr-badge {
  display: inline-block;
  background: var(--stamp);
  color: var(--paper);
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.05em;
  padding: 3px 8px;
}
/* カードのサムネイル上では左上に重ねて表示する */
.dossier-card__figure .pr-badge {
  position: absolute;
  top: 8px;
  left: 8px;
  z-index: 2;
}

/* ==========================================================================
   コメント機能強化：画像添付・いいね・ガイドライン導線
   ========================================================================== */

.comment-form-image { margin: 0 0 14px; font-size: 13px; }
.comment-form-image label { display: block; font-weight: 700; margin-bottom: 6px; }
.comment-form-image input[type="file"] { font-size: 13px; }

.comment-guidelines-note {
  font-size: 12px;
  color: var(--kraft-dim);
  margin-top: 10px;
}
.comment-guidelines-note a { text-decoration: underline !important; text-decoration-color: var(--stamp); }

.comment-item__image { margin: 12px 0; }
.comment-item__image img {
  max-width: 260px;
  border: 1px solid var(--line);
  display: block;
}

.comment-item__actions {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 10px;
  flex-wrap: wrap;
}
.comment-like-button {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: none;
  border: none;
  padding: 0;
  color: var(--kraft-dim);
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}
.comment-like-button svg { width: 15px; height: 15px; }
.comment-like-button:hover,
.comment-like-button.is-liked { color: var(--stamp); }

/* ==========================================================================
   運営会社情報テーブル
   ========================================================================== */

.company-info-table { width: 100%; border-collapse: collapse; max-width: 640px; }
.company-info-table th,
.company-info-table td { padding: 12px 16px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.company-info-table th { width: 140px; font-weight: 700; background: var(--paper-dim); }

/* ==========================================================================
   LEAK TOKYOについて（ABOUT）ページの機能グリッド
   ========================================================================== */

.media-kit__features {
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(2, 1fr);
  margin: 20px 0 48px;
}
@media (min-width: 780px) {
  .media-kit__features { grid-template-columns: repeat(3, 1fr); }
}
.media-kit__feature { padding: 22px; border: 1px solid var(--line); }
.media-kit__feature-icon { display: block; width: 30px; height: 30px; color: var(--stamp); margin-bottom: 10px; }
.media-kit__feature-icon svg { width: 100%; height: 100%; }
.media-kit__feature h3 { font-family: var(--font-mono); font-size: 13px; letter-spacing: 0.04em; margin-bottom: 6px; }
.media-kit__feature p { font-size: 13px; color: var(--kraft-dim); line-height: 1.6; margin: 0; }

/* VIEW STOREボタン：白背景・黒枠文字、ホバーで赤 */
.store-cta {
  display: inline-block;
  background: var(--paper);
  color: var(--ink);
  border: 2px solid var(--ink);
  font-weight: 700;
  font-size: 13px;
  padding: 12px 28px;
  letter-spacing: 0.02em;
}
.store-cta:hover { background: var(--stamp); border-color: var(--stamp); color: var(--paper); }

/* ==========================================================================
   LEAK COLUMN ティザー（トップページ）
   ========================================================================== */

.column-teaser { background: var(--ink); margin-top: 48px; }
.column-teaser__inner { max-width: var(--container); margin: 0 auto; padding: 48px var(--gutter); }
.column-teaser__desc { color: var(--kraft); font-size: 13px; max-width: 60ch; margin: -8px 0 24px; }
.column-teaser__grid {
  display: grid;
  gap: 20px;
  grid-template-columns: 1fr;
}
@media (min-width: 780px) {
  .column-teaser__grid { grid-template-columns: repeat(3, 1fr); }
}
.column-teaser__figure { display: block; border: 1px solid var(--ink-soft); overflow: hidden; }
.column-teaser__figure img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.column-teaser__body { padding-top: 12px; }
.column-teaser__series { font-family: var(--font-mono); font-size: 11px; color: var(--kraft); margin-left: 8px; }
.column-teaser__body h3 { margin-top: 8px; }
.column-teaser__body h3 a { color: var(--paper); font-size: 16px; }
.column-teaser__body h3 a:hover { color: var(--stamp); }

/* ------------------------------------------------------------------
 * SP レイアウト調整（フッター／メルマガ／ストア）
 * ------------------------------------------------------------------ */

.site-footer__legal {
	max-width: var(--container);
	margin: 0 auto;
	padding: 0 var(--gutter) 20px;
}

.site-footer__legal .footer-legal-nav {
	justify-content: flex-start;
}

@media (max-width: 639px) {

	/* 規約リンクを2列に */
	.site-footer__legal .footer-legal-nav {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px 16px;
	}

	.site-footer__legal .footer-legal-nav a {
		font-size: 11px;
		line-height: 1.4;
	}

	/* メルマガ登録〜アフィリエイト表記の余白を詰める */
	.site-footer__inner {
		gap: 20px;
		padding-bottom: 8px;
	}

	.site-footer__legal {
		padding-top: 16px;
		padding-bottom: 16px;
	}

	/* メルマガ説明文の改行崩れを解消 */
	.newsletter-form .newsletter-form__desc,
	.newsletter-form__desc {
		max-width: none !important;
	}

	/* 記事詳細：メルマガボックス下の余白を詰める */
	.report {
		padding-bottom: 32px;
	}

	.report .newsletter-form {
		margin-bottom: 16px;
	}

	/* STORE セクション上の余白を詰める */
	.shop-banner {
		margin-top: 20px;
	}

	.shop-banner__inner {
		padding-top: 24px;
		padding-bottom: 24px;
	}
}

/* ------------------------------------------------------------------
 * SP レイアウト調整 追補
 * ------------------------------------------------------------------ */

/* サイドレール（DROP LIST / RANKING）が右にはみ出すのを防ぐ */
@media (max-width: 1019px) {

	.content-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.content-grid > * {
		min-width: 0;
		max-width: 100%;
	}
}

.manifest,
.manifest__head,
.manifest__item,
.manifest__list {
	max-width: 100%;
}

.manifest__title,
.manifest__date {
	overflow-wrap: anywhere;
}

@media (max-width: 639px) {

	/* フッターのメニューリスト（CONTENTS / MEMBERS ONLY）を2列に */
	.site-footer__inner .footer-nav ul {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 16px;
	}

	.site-footer__inner .footer-nav li {
		margin-bottom: 6px;
	}
}

/* ------------------------------------------------------------------
 * マイページ：アイコン画像
 * ------------------------------------------------------------------ */

.mypage-avatar {
	display: flex;
	align-items: flex-start;
	gap: 14px;
}

.mypage-avatar__preview {
	width: 72px;
	height: 72px;
	flex: 0 0 auto;
	border: 1px solid var(--line);
	border-radius: 50%;
	object-fit: cover;
	background: var(--paper-dim);
}

.mypage-avatar__field {
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-width: 0;
}

.mypage-avatar__field input[type="file"] {
	max-width: 100%;
	font-size: 13px;
}

.mypage-avatar__hint {
	font-size: 11px;
	line-height: 1.6;
	color: #777;
}

.mypage-avatar__remove {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 12px;
}

.form-notice--error {
	color: var(--stamp);
	font-weight: 700;
}

/* ------------------------------------------------------------------
 * 複数選択ピッカー（好きなブランド / サイズ）
 * ------------------------------------------------------------------ */

.lt-picker {
	position: relative;
	max-width: 420px;
}

.lt-picker__toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--line);
	border-radius: 0;
	background: #fff;
	font: inherit;
	font-size: 14px;
	line-height: 1.4;
	text-align: left;
	cursor: pointer;
}

.lt-picker__toggle:hover {
	border-color: var(--ink);
}

.lt-picker.is-open .lt-picker__toggle {
	border-color: var(--ink);
}

.lt-picker__label {
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.lt-picker__label.is-empty {
	color: #999;
}

.lt-picker__caret {
	flex: 0 0 auto;
	font-size: 11px;
	color: #666;
}

.lt-picker__panel {
	position: absolute;
	z-index: 30;
	top: calc(100% + 4px);
	left: 0;
	right: 0;
	border: 1px solid var(--ink);
	background: #fff;
	box-shadow: 0 12px 28px rgba(0, 0, 0, 0.14);
}

.lt-picker__search {
	padding: 10px;
	border-bottom: 1px solid var(--line);
}

.lt-picker__input {
	width: 100%;
	padding: 8px 10px;
	border: 1px solid var(--line);
	font-size: 14px;
}

.lt-picker__tools {
	display: flex;
	gap: 8px;
	padding: 8px 10px;
	border-bottom: 1px solid var(--line);
}

.lt-picker__tool {
	padding: 4px 10px;
	border: 1px solid var(--line);
	background: #fff;
	font-family: var(--font-mono);
	font-size: 11px;
	cursor: pointer;
}

.lt-picker__tool.is-active {
	border-color: var(--ink);
	background: var(--ink);
	color: #fff;
}

.lt-picker__list {
	max-height: 260px;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}

.lt-picker__list--grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
	gap: 2px;
	padding: 6px;
}

.lt-picker__item {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 9px 12px;
	font-size: 14px;
	line-height: 1.3;
	cursor: pointer;
}

.lt-picker__list--grid .lt-picker__item {
	padding: 8px;
	font-size: 13px;
}

.lt-picker__item:hover {
	background: var(--paper-dim);
}

.lt-picker__item input {
	flex: 0 0 auto;
	margin: 0;
}

.lt-picker__item span {
	min-width: 0;
	overflow-wrap: anywhere;
}

.lt-picker__empty {
	margin: 0;
	padding: 16px 12px;
	font-size: 13px;
	color: #888;
	text-align: center;
}

@media (max-width: 639px) {

	.lt-picker {
		max-width: none;
	}

	.lt-picker__list {
		max-height: 220px;
	}
}

/* ランキングカードの「いいね」数 */
.dossier-card__likes {
	display: flex;
	align-items: center;
	gap: 5px;
	margin-top: 6px;
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.04em;
	color: var(--stamp);
}

/* [hidden] が display 指定に負けないようにする（ピッカーの絞り込み） */
.lt-picker__item[hidden],
.lt-picker__empty[hidden] {
	display: none !important;
}

/* プロフィールページ：マイページへ戻る */
.profile-header__actions {
	margin: 14px 0 0;
}

.profile-header__actions .buy-link {
	display: inline-block;
}

/* ------------------------------------------------------------------
 * プロフィール：コメント履歴
 * ------------------------------------------------------------------ */

.profile-comments {
	margin-top: 40px;
}

.profile-comment-list {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--line);
}

.profile-comment {
	padding: 18px 0;
	border-bottom: 1px solid var(--line);
}

.profile-comment__post {
	display: block;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.5;
	text-decoration: none !important;
}

.profile-comment__post:hover {
	color: var(--stamp);
}

.profile-comment__text {
	margin: 8px 0 10px;
	font-size: 14px;
	line-height: 1.8;
	overflow-wrap: anywhere;
}

.profile-comment__meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 14px;
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.04em;
	color: #8a8a86;
}

.profile-comment__likes {
	color: var(--stamp);
}

.profile-comment__jump {
	margin-left: auto;
	text-decoration: none !important;
	color: var(--ink);
}

.profile-comment__jump:hover {
	color: var(--stamp);
}

@media (max-width: 639px) {

	.profile-comment__jump {
		margin-left: 0;
	}
}

/* ------------------------------------------------------------------
 * アバターは常に丸くトリミング
 * ------------------------------------------------------------------ */

.avatar,
img.avatar,
.comment-item__avatar,
.profile-header__avatar,
.mypage-avatar__preview {
	border-radius: 50%;
	object-fit: cover;
	aspect-ratio: 1 / 1;
}

/* ------------------------------------------------------------------
 * ランキング／カレンダーの切替タブ
 * ------------------------------------------------------------------ */

.ranking-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 28px;
}

.ranking-tabs__item {
	padding: 8px 16px;
	border: 1px solid var(--line);
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.04em;
	color: var(--ink);
	text-decoration: none !important;
}

.ranking-tabs__item:hover {
	border-color: var(--ink);
}

.ranking-tabs__item.is-active {
	border-color: var(--ink);
	background: var(--ink);
	color: var(--paper);
}

/* ------------------------------------------------------------------
 * サイドバー見出しの VIEW MORE
 * ------------------------------------------------------------------ */

.manifest__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.manifest__more {
	font-family: var(--font-mono);
	font-size: 10px;
	letter-spacing: 0.06em;
	color: var(--stamp);
	text-decoration: none !important;
	white-space: nowrap;
}

.manifest__more:hover {
	text-decoration: underline !important;
}

/* ------------------------------------------------------------------
 * プロフィール：クリップした記事
 * ------------------------------------------------------------------ */

.profile-clips {
	margin-top: 40px;
}

.profile-clips .dossier-grid {
	margin-top: 16px;
}

/* ------------------------------------------------------------------
 * ハートアイコンのサイズを全ページで統一
 * ------------------------------------------------------------------ */

.icon-heart {
	width: 24px;
	height: 24px;
	vertical-align: middle;
	flex: 0 0 auto;
}

.dossier-card__date .icon-heart,
.like-button .icon-heart,
.comment-like .icon-heart {
	width: 24px;
	height: 24px;
}

/* ------------------------------------------------------------------
 * VOICES：最新コメントを自動スライド
 * ------------------------------------------------------------------ */

.voice-marquee {
	position: relative;
	overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 24px, #000 calc(100% - 24px), transparent);
	mask-image: linear-gradient(90deg, transparent, #000 24px, #000 calc(100% - 24px), transparent);
}

.voice-marquee__track {
	display: flex;
	gap: 16px;
	width: max-content;
	animation: leaktokyo-voice-marquee 80s linear infinite;
	will-change: transform;
}

.voice-marquee:hover .voice-marquee__track,
.voice-marquee:focus-within .voice-marquee__track {
	animation-play-state: paused;
}

@keyframes leaktokyo-voice-marquee {

	from {
		transform: translateX(0);
	}

	to {
		transform: translateX(calc(-50% - 8px));
	}
}

.voice-feed__item {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	flex: 0 0 300px;
	max-width: 300px;
	padding: 16px;
	border: 1px solid var(--line);
	background: var(--paper);
	text-decoration: none !important;
}

.voice-feed__avatar {
	flex: 0 0 auto;
	align-self: flex-start;
	width: 36px !important;
	height: 36px !important;
	border-radius: 50%;
	object-fit: cover;
}

.voice-feed__body {
	min-width: 0;
}

.voice-feed__text {
	overflow-wrap: anywhere;
}

/* アバターがフレックスで縦に伸びるのを防ぐ */
img.avatar {
	flex: 0 0 auto;
	align-self: flex-start;
}

@media (prefers-reduced-motion: reduce) {

	.voice-marquee {
		overflow-x: auto;
	}

	.voice-marquee__track {
		animation: none;
	}
}

@media (max-width: 639px) {

	.voice-feed__item {
		flex-basis: 260px;
		max-width: 260px;
	}

	.voice-marquee__track {
		animation-duration: 60s;
	}
}

/* ------------------------------------------------------------------
 * ランキング：共通カード＋順位バッジ
 * ------------------------------------------------------------------ */

.rank-item {
	position: relative;
}

.rank-item .item-rank__badge {
	position: absolute;
	z-index: 2;
	top: 0;
	left: 0;
}

/* ------------------------------------------------------------------
 * コメントの添付画像サムネ
 * ------------------------------------------------------------------ */

.profile-comment__thumb {
	display: inline-block;
	margin: 0 0 10px;
	line-height: 0;
}

.profile-comment__thumb img {
	width: 96px;
	height: 96px;
	object-fit: cover;
	border: 1px solid var(--line);
}

.voice-feed__thumb {
	display: block;
	margin: 6px 0;
	line-height: 0;
}

.voice-feed__thumb img {
	width: 56px;
	height: 56px;
	object-fit: cover;
	border: 1px solid var(--line);
}

/* ------------------------------------------------------------------
 * いいね／SAVE ボタンのサイズを統一
 * ------------------------------------------------------------------ */

.like-button,
.clip-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-width: 78px;
	min-height: 36px;
	padding: 5px 12px;
	font-family: var(--font-mono);
	font-size: 12px;
	line-height: 1;
	box-sizing: border-box;
}

.like-button svg,
.clip-button svg {
	flex: 0 0 auto;
	width: 24px;
	height: 24px;
}

.like-button__count,
.clip-button__label {
	font-size: 12px;
	line-height: 1;
}

/* ============================================
   2.37.0 : VOICES article thumbnail + sticky header fix
   ============================================ */

/* --- sticky header : html/body の overflow-x:hidden が
   スクロールコンテナを作り position:sticky を無効化していたため
   clip に差し替える（clip はスクロールコンテナを作らない） --- */
html,
body {
	overflow-x: clip;
}

.site-header {
	position: -webkit-sticky;
	position: sticky;
	top: 0;
	z-index: 60;
}

.admin-bar .site-header {
	top: 32px;
}

@media (max-width: 782px) {
	.admin-bar .site-header {
		top: 46px;
	}
}

/* --- VOICES（トップ）: 記事タイトルの横に記事サムネ --- */
.voice-feed__post {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 8px;
	min-width: 0;
}

.voice-feed__post-thumb {
	flex: 0 0 auto;
	width: 40px;
	height: 40px;
	object-fit: cover;
	border-radius: 3px;
	display: block;
}

.voice-feed__post .voice-feed__on {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-width: 0;
	margin-top: 0;
}

/* --- プロフィール VOICES : 記事タイトルの横に記事サムネ --- */
.profile-comment__post {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
}

.profile-comment__post-thumb {
	flex: 0 0 auto;
	width: 48px;
	height: 48px;
	object-fit: cover;
	border-radius: 3px;
	display: block;
}

.profile-comment__post-title {
	min-width: 0;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* ============================================
   2.38.0 : VOICES 3カラム化 / コメントUI（スニダン参考）
   ============================================ */

/* --- VOICES : [アイコン][名前・本文][記事サムネ] の3カラム --- */
.voice-feed__item {
	display: flex;
	align-items: flex-start;
	gap: 12px;
}

.voice-feed__body {
	flex: 1 1 auto;
	min-width: 0;
}

.voice-feed__cover {
	flex: 0 0 auto;
	width: 72px;
	height: 72px;
	display: block;
	overflow: hidden;
	border-radius: 3px;
	background: var(--line);
	align-self: flex-start;
}

.voice-feed__cover:empty {
	display: none;
}

.voice-feed__post-thumb {
	width: 72px;
	height: 72px;
	object-fit: cover;
	display: block;
	border-radius: 3px;
}

.voice-feed__on {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	margin-top: 8px;
	min-width: 0;
}

.voice-feed__post {
	display: contents;
}

/* --- プロフィール VOICES : サムネ拡大 --- */
.profile-comment__post-thumb {
	width: 64px;
	height: 64px;
}

/* --- コメント : いいね／返信数バー --- */
.comment-item__stats {
	display: flex;
	align-items: center;
	gap: 20px;
	margin-top: 12px;
	padding-top: 12px;
	border-top: 1px solid var(--line);
}

.comment-item__stat {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--font-mono);
	font-size: 12px;
	line-height: 1;
	color: rgba(9, 9, 9, 0.55);
}

.comment-item__stat svg {
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
}

.comment-item__stat-num {
	font-variant-numeric: tabular-nums;
}

/* --- コメント : 返信バー（入力欄風のピル＋丸いハート） --- */
.comment-item__actions {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 10px;
}

.comment-item__reply {
	flex: 1 1 auto;
	display: flex;
	align-items: center;
	gap: 8px;
	min-width: 0;
}

.comment-item__reply .comment-reply-link {
	flex: 1 1 auto;
	display: flex;
	align-items: center;
	min-width: 0;
	height: 44px;
	padding: 0 18px;
	border: 1px solid var(--line);
	border-radius: 999px;
	background: rgba(9, 9, 9, 0.04);
	font-family: var(--font-mono);
	font-size: 12px;
	letter-spacing: 0.08em;
	color: rgba(9, 9, 9, 0.5);
	text-decoration: none;
	transition: background 0.15s ease, color 0.15s ease;
}

.comment-item__reply .comment-reply-link:hover,
.comment-item__reply .comment-reply-link:focus-visible {
	background: rgba(9, 9, 9, 0.08);
	color: var(--ink);
}

.comment-item__reply .comment-report-button {
	flex: 0 0 auto;
}

.comment-item__actions .comment-like-button {
	flex: 0 0 auto;
	width: 44px;
	height: 44px;
	min-width: 44px;
	min-height: 44px;
	padding: 0;
	border-radius: 50%;
	border: 1px solid var(--line);
	background: rgba(9, 9, 9, 0.04);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0;
}

.comment-item__actions .comment-like-button__count {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

.comment-item__actions .comment-like-button svg {
	width: 24px;
	height: 24px;
}

/* --- コメント : 添付画像を大きく --- */
.comment-item__image {
	margin: 12px 0 0;
	border-radius: 4px;
	overflow: hidden;
	background: var(--line);
}

.comment-item__image img {
	width: 100%;
	height: auto;
	max-height: 420px;
	object-fit: cover;
	display: block;
}

/* --- VOICES : サムネ追加分カードを広げる --- */
.voice-feed__item {
	flex: 0 0 340px;
	max-width: 340px;
}

@media (max-width: 639px) {
	.voice-feed__item {
		flex-basis: 320px;
		max-width: 320px;
	}
}

/* ============================================
   2.39.0 : VOICES をプロフィール版と同じ縦レイアウトに / ハート統一
   ============================================ */

.voice-feed__item {
	display: flex !important;
	flex-direction: column;
	align-items: stretch !important;
	gap: 12px;
	flex: 0 0 340px;
	max-width: 340px;
	padding: 16px;
	border: 1px solid var(--line);
	background: var(--paper);
	text-decoration: none !important;
}

@media (max-width: 639px) {
	.voice-feed__item {
		flex-basis: 320px;
		max-width: 320px;
	}
}

.voice-feed__head {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
}

.voice-feed__head .avatar,
.voice-feed__avatar {
	flex: 0 0 auto;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	object-fit: cover;
}

.voice-feed__author {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.voice-feed__post {
	display: flex !important;
	align-items: flex-start;
	gap: 10px;
	min-width: 0;
}

.voice-feed__cover {
	flex: 0 0 auto;
	width: 72px;
	height: 72px;
	display: block;
	overflow: hidden;
	border-radius: 3px;
	background: rgba(9, 9, 9, 0.06);
}

.voice-feed__cover:empty {
	display: none;
}

.voice-feed__post-thumb {
	width: 72px;
	height: 72px;
	object-fit: cover;
	display: block;
	border-radius: 3px;
}

.voice-feed__on {
	flex: 1 1 auto;
	min-width: 0;
	margin-top: 0;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	color: var(--ink);
}

.voice-feed__text {
	margin: 0;
	min-width: 0;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.voice-feed__meta {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-top: auto;
	padding-top: 10px;
	border-top: 1px solid var(--line);
	font-family: var(--font-mono);
	font-size: 11px;
	color: rgba(9, 9, 9, 0.45);
}

/* --- ハートを他ページと同じ 24px に統一 --- */
.voice-feed__likes,
.profile-comment__likes {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--stamp);
	line-height: 1;
}

.voice-feed__likes .icon-heart,
.profile-comment__likes .icon-heart {
	flex: 0 0 auto;
	width: 24px;
	height: 24px;
	fill: currentColor;
	stroke: currentColor;
}

.voice-feed__likes-num,
.profile-comment__likes-num {
	font-family: var(--font-mono);
	font-size: 12px;
	font-variant-numeric: tabular-nums;
}

.profile-comment__meta {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
}

/* ============================================
   2.40.0 : コメント返信の常時入力欄 / 通報ボタン
   ============================================ */

.comment-quickreply {
	flex: 1 1 auto;
	display: flex;
	align-items: center;
	gap: 6px;
	min-width: 0;
	height: 44px;
	padding: 0 6px 0 16px;
	border: 1px solid var(--line);
	border-radius: 12px;
	background: rgba(9, 9, 9, 0.05);
	text-decoration: none !important;
	transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.comment-quickreply:focus-within {
	background: var(--paper);
	border-color: #5b9dff;
	box-shadow: 0 0 0 3px rgba(91, 157, 255, 0.3);
}

.comment-quickreply__input {
	flex: 1 1 auto;
	min-width: 0;
	height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
	outline: none;
	font-family: inherit;
	font-size: 14px;
	color: var(--ink);
	-webkit-appearance: none;
	appearance: none;
}

.comment-quickreply__input::placeholder {
	color: rgba(9, 9, 9, 0.4);
}

.comment-quickreply--guest .comment-quickreply__input {
	display: flex;
	align-items: center;
	color: rgba(9, 9, 9, 0.4);
}

.comment-quickreply__submit {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	height: 32px;
	margin: 0;
	padding: 0 10px;
	border: 0;
	border-radius: 8px;
	background: transparent;
	font-family: inherit;
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
	color: var(--ink);
	white-space: nowrap;
	cursor: pointer;
}

.comment-quickreply__submit:hover,
.comment-quickreply__submit:focus-visible {
	background: rgba(9, 9, 9, 0.08);
}

/* --- 通報ボタン（コメントごと・小さく右端に） --- */
.comment-item__stats .comment-report-button {
	flex: 0 0 auto;
	margin-left: auto;
	padding: 2px 0;
	border: 0;
	background: transparent;
	font-family: var(--font-mono);
	font-size: 10px;
	letter-spacing: 0.08em;
	line-height: 1;
	color: rgba(9, 9, 9, 0.32);
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
	transition: color 0.15s ease;
}

.comment-item__stats .comment-report-button:hover,
.comment-item__stats .comment-report-button:focus-visible {
	color: var(--stamp);
}

.comment-item__stats .comment-report-button.is-reported {
	color: var(--stamp);
	text-decoration: none;
	cursor: default;
}

/* ============================================
   2.41.0 : ログイン中の挨拶表示（PCナビ / SPドロワー）
   ============================================ */

/* --- PC : MY PAGE を「こんにちは、〇〇さん」に --- */
.member-nav__greeting {
	display: inline-block;
	max-width: 190px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	vertical-align: bottom;
	text-transform: none;
}

/* --- SP : ドロワーの MENU の横に挨拶 --- */
.mobile-nav__header {
	gap: 12px;
}

.mobile-nav__greeting {
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-family: var(--font-mono);
	font-size: 12px;
	letter-spacing: 0.02em;
	line-height: 1.4;
	color: rgba(247, 247, 245, 0.7);
	text-transform: none;
}

.mobile-nav__header .mobile-nav__header-label {
	flex: 0 0 auto;
}

.mobile-nav__header .mobile-nav__close {
	flex: 0 0 auto;
}

/* ============================================
   2.42.0 : 返信ツリーの簡素化 / フォーカス枠の調整
   ============================================ */

/* --- 返信入力欄は赤いフォーカス枠を出さず、青いリングのみにする --- */
.comment-quickreply__input:focus,
.comment-quickreply__input:focus-visible {
	outline: none;
	outline-offset: 0;
	box-shadow: none;
}

/* --- 返信の入れ子は2段目まで。3段目以降は字下げしない --- */
.comment-list .children {
	margin: 16px 0 0 16px;
	padding-left: 16px;
	border-left: 2px solid var(--line);
}

.comment-list .children .children {
	margin: 0;
	padding-left: 0;
	border-left: 0;
}

@media (min-width: 780px) {
	.comment-list .children {
		margin-left: 28px;
		padding-left: 20px;
	}

	.comment-list .children .children {
		margin-left: 0;
		padding-left: 0;
	}
}

/* --- 誰への返信かを示すラベル --- */
.comment-item__replyto {
	margin: 0 0 4px;
	font-family: var(--font-mono);
	font-size: 11px;
	line-height: 1;
}

.comment-item__replyto a {
	color: var(--stamp);
	text-decoration: none;
}

.comment-item__replyto a:hover {
	text-decoration: underline;
}

/* --- 返信の折りたたみ --- */
.comment-thread-toggle {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 12px 0 0 16px;
	padding: 8px 14px;
	border: 1px solid var(--line);
	border-radius: 999px;
	background: transparent;
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.06em;
	line-height: 1;
	color: rgba(9, 9, 9, 0.6);
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
}

.comment-thread-toggle:hover,
.comment-thread-toggle:focus-visible {
	background: rgba(9, 9, 9, 0.06);
	color: var(--ink);
}

.comment-list li.is-collapsed-reply {
	display: none;
}

/* ============================================
   2.43.0 : カードのコメント数 / コメント自己削除
   ============================================ */

.dossier-card__comments {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-family: var(--font-mono);
	font-size: 12px;
	line-height: 1;
	color: rgba(9, 9, 9, 0.45);
}

.dossier-card__comments .icon-comment {
	flex: 0 0 auto;
	width: 16px;
	height: 16px;
}

.dossier-card__comments-num {
	font-variant-numeric: tabular-nums;
}

.dossier-card__stats {
	display: inline-flex;
	align-items: center;
	gap: 14px;
}

/* --- 自分のコメントの削除ボタン --- */
.comment-item__stats .comment-delete-button {
	flex: 0 0 auto;
	margin-left: auto;
	padding: 2px 0;
	border: 0;
	background: transparent;
	font-family: var(--font-mono);
	font-size: 10px;
	letter-spacing: 0.08em;
	line-height: 1;
	color: rgba(9, 9, 9, 0.32);
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
	transition: color 0.15s ease;
}

.comment-item__stats .comment-report-button + .comment-delete-button {
	margin-left: 12px;
}

.comment-item__stats .comment-delete-button:hover,
.comment-item__stats .comment-delete-button:focus-visible {
	color: var(--stamp);
}

.comment-item__stats .comment-delete-button[disabled] {
	opacity: 0.5;
	cursor: default;
}

/* ============================================
   2.44.0 : あいさつをマイページリンク化（時間帯で変化）
   ============================================ */

a.mobile-nav__greeting {
	display: block;
	text-decoration: none;
	color: rgba(247, 247, 245, 0.7);
	transition: color 0.15s ease;
}

a.mobile-nav__greeting:hover,
a.mobile-nav__greeting:focus-visible {
	color: var(--paper);
}

/* ============================================
   2.45.0 : ハートとコメントアイコンを操作ボタンに統合
   ============================================ */

/* --- ステータスバーの2つのボタン（いいね / 返信トグル） --- */
.comment-item__stats .comment-like-button,
.comment-item__replies-toggle {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	gap: 6px;
	width: auto;
	min-width: 0;
	height: auto;
	min-height: 0;
	margin: 0;
	padding: 4px 2px;
	border: 0;
	border-radius: 0;
	background: transparent;
	font-family: var(--font-mono);
	font-size: 12px;
	line-height: 1;
	color: rgba(9, 9, 9, 0.55);
	cursor: pointer;
	transition: color 0.15s ease;
}

.comment-item__stats .comment-like-button svg,
.comment-item__replies-toggle svg {
	flex: 0 0 auto;
	width: 24px;
	height: 24px;
}

.comment-item__stats .comment-like-button__count,
.comment-item__replies-toggle .comment-item__stat-num {
	position: static;
	width: auto;
	height: auto;
	overflow: visible;
	clip: auto;
	clip-path: none;
	font-variant-numeric: tabular-nums;
}

.comment-item__stats .comment-like-button:hover,
.comment-item__replies-toggle:hover,
.comment-item__replies-toggle.is-open {
	color: var(--ink);
}

.comment-item__stats .comment-like-button.is-liked {
	color: var(--stamp);
}

.comment-item__stats .comment-like-button.is-liked svg {
	fill: currentColor;
}

.comment-item__replies-toggle.is-open svg {
	fill: rgba(9, 9, 9, 0.12);
}

/* --- 返信一覧と返信欄の開閉 --- */
.comment-item__actions.is-hidden,
.comment-list .children.is-hidden {
	display: none;
}

.comment-item__actions {
	margin-top: 12px;
}

/* ============================================
   2.46.0 : 記事タイトルを太字に（VOICES / プロフィール / DROP LIST）
   ============================================ */

.voice-feed__on,
.profile-comment__post-title,
.release-strip__title {
	font-weight: 700;
}

/* ============================================
   2.47.0 : NEW バッジ（公開3日以内）
   ============================================ */

.badge-new {
	display: inline-flex;
	align-items: center;
	height: 18px;
	padding: 0 6px;
	background: var(--stamp);
	color: #fff;
	font-family: var(--font-mono);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1;
	text-transform: uppercase;
	white-space: nowrap;
	flex: 0 0 auto;
}

/* ============================================
   2.48.0 : NEW バッジをサムネイル左上に配置
   ============================================ */

.dossier-card__figure {
	position: relative;
}

.dossier-card__figure .badge-new {
	position: absolute;
	top: 8px;
	left: 8px;
	z-index: 2;
	pointer-events: none;
}

/* ============================================
   2.49.0 : ヒーローのサムネにも NEW バッジ
   ============================================ */

.hero__figure {
	position: relative;
}

.hero__figure .badge-new {
	position: absolute;
	top: 16px;
	left: 16px;
	z-index: 3;
	pointer-events: none;
}

/* LEAK スタンプがある場合はその右隣に並べる */
.hero__figure .stamp + .badge-new {
	left: auto;
	right: 16px;
}

/* --- 2.50.0 : ヒーローのバッジ群を左上にまとめる --- */
.hero__figure .hero__badges {
	position: absolute;
	top: 16px;
	left: 16px;
	z-index: 3;
	display: flex;
	align-items: center;
	gap: 8px;
	pointer-events: none;
}

.hero__figure .hero__badges .stamp,
.hero__figure .hero__badges .badge-new {
	position: static;
	top: auto;
	left: auto;
	right: auto;
	bottom: auto;
}

/* ============================================
   2.51.0 : NEW バッジと他アイコンの重なり回避
   ============================================ */

/* --- カードのサムネ上のバッジは横並びにして重ならないようにする --- */
.dossier-card__figure .dossier-card__badges {
	position: absolute;
	top: 8px;
	left: 8px;
	z-index: 2;
	display: flex;
	align-items: center;
	gap: 6px;
	pointer-events: none;
}

.dossier-card__figure .dossier-card__badges:empty {
	display: none;
}

.dossier-card__figure .dossier-card__badges .badge-new,
.dossier-card__figure .dossier-card__badges .pr-badge {
	position: static;
	top: auto;
	left: auto;
	right: auto;
	bottom: auto;
}

/* --- ランキングの #N は NEW がある場合その右隣へ --- */
.rank-item.has-new .item-rank__badge,
.rank-item:has(.badge-new) .item-rank__badge {
	left: 52px;
}

/* --- 2.52.0 : ヒーローの NEW をカテゴリスタンプと同サイズに --- */
.hero__badges .badge-new {
	height: auto;
	padding: 3px 8px;
	border: 1px solid var(--stamp);
	font-size: 11px;
	letter-spacing: 0.08em;
	line-height: 1.7;
}

/* ============================================
   2.53.0 : アーカイブの並び順 / ブランドプロフィール / 関連ターム
   ============================================ */

/* --- SPでは記事一覧を先に、サイドバー（DROP LIST・RANKING）を後に --- */
@media (max-width: 1019px) {
	.content-grid > aside {
		order: 2;
	}

	.content-grid > *:not(aside) {
		order: 1;
	}
}

/* --- ブランドプロフィール --- */
.brand-info-panel__label {
	display: block;
	margin-bottom: 4px;
	font-family: var(--font-mono);
	font-size: 10px;
	letter-spacing: 0.12em;
	color: rgba(9, 9, 9, 0.45);
}

.brand-info-panel__designer,
.brand-info-panel__site {
	margin: 14px 0 0;
	font-size: 14px;
}

.brand-info-panel__site a {
	display: inline-flex;
	align-items: center;
	font-family: var(--font-mono);
	font-size: 12px;
	letter-spacing: 0.08em;
	color: var(--stamp);
	text-decoration: none;
	border-bottom: 1px solid currentColor;
}

.brand-info-panel__shops {
	margin-top: 18px;
	padding-top: 16px;
	border-top: 1px solid var(--line);
}

.brand-shop-list {
	list-style: none;
	margin: 6px 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.brand-shop-list__item {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 4px 14px;
	font-size: 14px;
}

.brand-shop-list__name {
	color: var(--ink);
	text-decoration: none;
}

a.brand-shop-list__name {
	border-bottom: 1px solid var(--line);
}

a.brand-shop-list__name:hover {
	border-bottom-color: var(--ink);
}

.brand-shop-list__tel {
	font-family: var(--font-mono);
	font-size: 12px;
	color: rgba(9, 9, 9, 0.55);
	text-decoration: none;
}

/* --- 関連ブランド／関連カテゴリー --- */
.related-terms {
	margin-top: 56px;
}

.related-terms__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.related-terms__link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 9px 14px;
	border: 1px solid var(--line);
	background: var(--paper);
	font-size: 13px;
	color: var(--ink);
	text-decoration: none;
	transition: background 0.15s ease, border-color 0.15s ease;
}

.related-terms__link:hover {
	background: rgba(9, 9, 9, 0.05);
	border-color: var(--ink);
}

.related-terms__count {
	font-family: var(--font-mono);
	font-size: 11px;
	color: rgba(9, 9, 9, 0.45);
}

/* ============================================
   3.1.0 : DROPセクション（TODAY / THIS WEEK / TRENDING）
   ============================================ */

.drop-section {
	margin-top: 56px;
}

.drop-section .section-heading__sub {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.06em;
	color: rgba(9, 9, 9, 0.5);
}

.drop-section .section-heading__more {
	margin-left: auto;
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	color: var(--stamp);
	text-decoration: none;
}

/* --- 曜日別の週間DROP --- */
.drop-week {
	display: flex;
	flex-direction: column;
	gap: 2px;
	background: var(--line);
	border: 1px solid var(--line);
}

.drop-week__day {
	display: flex;
	gap: 14px;
	padding: 14px 16px;
	background: var(--paper);
}

.drop-week__label {
	flex: 0 0 52px;
	display: flex;
	flex-direction: column;
	gap: 2px;
	font-family: var(--font-mono);
	line-height: 1.2;
}

.drop-week__dow {
	font-size: 11px;
	letter-spacing: 0.1em;
	color: var(--stamp);
}

.drop-week__date {
	font-size: 15px;
	font-weight: 700;
	color: var(--ink);
}

.drop-week__items {
	flex: 1 1 auto;
	min-width: 0;
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.drop-week__item a {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
	color: var(--ink);
	text-decoration: none;
}

.drop-week__thumb {
	flex: 0 0 auto;
	width: 48px;
	height: 48px;
	object-fit: cover;
	border-radius: 3px;
	display: block;
}

.drop-week__title {
	min-width: 0;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.5;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* --- 発売時刻・価格・ステータス --- */
.drop-facts {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px 10px;
	margin: 6px 0 0 58px;
	font-family: var(--font-mono);
	font-size: 11px;
	color: rgba(9, 9, 9, 0.55);
}

.drop-facts__status {
	display: inline-flex;
	align-items: center;
	height: 16px;
	padding: 0 5px;
	border: 1px solid currentColor;
	font-size: 9px;
	letter-spacing: 0.08em;
}

.drop-facts__status--leak {
	color: var(--stamp);
}

.drop-facts__status--confirmed {
	color: var(--ink);
}

.drop-facts__status--released {
	color: rgba(9, 9, 9, 0.45);
}

.drop-facts__price {
	color: var(--ink);
	font-weight: 700;
}

@media (min-width: 780px) {
	.drop-week__day {
		padding: 16px 20px;
	}

	.drop-week__label {
		flex-basis: 64px;
	}
}

/* ============================================
   3.2.0 : MY LEAK（FOR YOU / YOUR BRANDS / YOUR DROP）
   ============================================ */

.my-leak {
	margin-bottom: 48px;
}

.my-leak__section {
	margin-top: 40px;
}

.my-leak__section:first-child {
	margin-top: 0;
}

.my-leak__hint {
	margin: 0 0 8px;
	padding: 14px 16px;
	border: 1px solid var(--line);
	background: rgba(9, 9, 9, 0.04);
	font-size: 13px;
	line-height: 1.7;
	color: rgba(9, 9, 9, 0.7);
}

.my-leak__brands {
	margin-top: 4px;
}

.my-leak .section-heading__sub {
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.04em;
	color: rgba(9, 9, 9, 0.5);
}

/* ============================================
   3.4.0 : 通知センター / CLIPPED UPDATES / YOUR PROFILE
   ============================================ */

.notice-list {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--line);
}

.notice-list__item {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 4px 10px;
	padding: 14px 0;
	border-bottom: 1px solid var(--line);
}

.notice-list__item.is-unread {
	background: rgba(226, 38, 26, 0.04);
	padding-left: 10px;
	padding-right: 10px;
	margin: 0 -10px;
}

.notice-list__tag {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	height: 18px;
	padding: 0 6px;
	border: 1px solid currentColor;
	font-family: var(--font-mono);
	font-size: 9px;
	letter-spacing: 0.08em;
	line-height: 1;
	color: rgba(9, 9, 9, 0.45);
}

.notice-list__tag--release,
.notice-list__tag--drop {
	color: var(--stamp);
}

.notice-list__tag--comment,
.notice-list__tag--brand {
	color: var(--ink);
}

.notice-list__text {
	flex: 1 1 200px;
	min-width: 0;
	font-size: 14px;
	line-height: 1.6;
	color: var(--ink);
	text-decoration: none;
}

.notice-list__text:hover {
	text-decoration: underline;
}

.notice-list__time {
	flex: 0 0 auto;
	margin-left: auto;
	font-family: var(--font-mono);
	font-size: 11px;
	color: rgba(9, 9, 9, 0.4);
}

/* --- YOUR PROFILE --- */
.profile-facts {
	margin: 0;
	border-top: 1px solid var(--line);
}

.profile-facts__row {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 16px;
	padding: 14px 0;
	border-bottom: 1px solid var(--line);
}

.profile-facts__row dt {
	flex: 0 0 120px;
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	color: rgba(9, 9, 9, 0.45);
}

.profile-facts__row dd {
	flex: 1 1 200px;
	min-width: 0;
	margin: 0;
	font-size: 14px;
	line-height: 1.6;
}

/* ============================================
   3.5.0 : EARLY PICK / 通知メール設定
   ============================================ */

.clip-early {
	margin: -8px 0 16px;
}

.clip-early__badge {
	display: inline-flex;
	align-items: center;
	height: 20px;
	padding: 0 8px;
	background: var(--ink);
	color: var(--paper);
	font-family: var(--font-mono);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1;
}

.mypage-field__hint {
	margin: 4px 0 10px;
	font-size: 12px;
	line-height: 1.7;
	color: rgba(9, 9, 9, 0.55);
}

/* ============================================
   3.6.0 : レイアウト調整（見出し / カード / ボタン）
   ============================================ */

/* --- セクション見出し：詰まり・改行崩れを解消 --- */
.section-heading {
	flex-wrap: wrap;
	gap: 6px 16px;
}

.section-heading > h2 {
	flex: 0 0 auto;
	margin: 0;
}

.section-heading__sub {
	flex: 1 1 auto;
	min-width: 0;
	line-height: 1.5;
}

.section-heading__more,
.section-heading .view-all {
	flex: 0 0 auto;
	margin-left: auto;
	white-space: nowrap;
}

@media (max-width: 779px) {
	.section-heading {
		align-items: center;
	}

	.section-heading__sub {
		flex: 1 0 100%;
		order: 3;
		margin-top: 2px;
	}

	.section-heading__more,
	.section-heading .view-all {
		order: 2;
	}
}

/* --- カードのメタ行：ボタンが折り返して崩れるのを防ぐ --- */
.dossier-card__meta {
	flex-wrap: nowrap;
	gap: 8px;
}

.dossier-card__brand {
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.dossier-card__meta .stamp,
.dossier-card__meta .like-button,
.dossier-card__meta .clip-button {
	flex: 0 0 auto;
}

/* --- いいね／SAVEボタンを一回り小さく統一 --- */
.like-button,
.clip-button {
	min-width: 62px;
	min-height: 30px;
	padding: 4px 10px;
	gap: 5px;
	font-size: 11px;
}

.like-button svg,
.clip-button svg {
	width: 18px;
	height: 18px;
}

.dossier-card__meta .clip-button,
.dossier-card__meta .like-button {
	padding: 4px 10px;
}

/* コメント欄のハートは操作対象なので少し大きめのまま残す */
.comment-item__stats .comment-like-button svg,
.comment-item__replies-toggle svg {
	width: 20px;
	height: 20px;
}

/* ============================================
   3.7.0 : MY PAGE / プロフィールの余白と情報量
   ============================================ */

.my-leak {
	padding-top: 40px;
}

@media (min-width: 780px) {
	.my-leak {
		padding-top: 56px;
	}
}

.my-leak__section:first-of-type {
	margin-top: 0;
}

/* --- プロフィールの活動サマリー --- */
.profile-header__stats {
	list-style: none;
	margin: 18px 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 10px 28px;
}

.profile-header__stats li {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.profile-header__stat-num {
	font-family: var(--font-display);
	font-size: 22px;
	line-height: 1;
	color: var(--paper);
}

.profile-header__stat-label {
	font-family: var(--font-mono);
	font-size: 10px;
	letter-spacing: 0.1em;
	color: rgba(247, 247, 245, 0.5);
}

.profile-header__actions {
	margin-top: 18px;
}

/* 3.8.0 */

/* LIKE / SAVE ボタンの高さ・アイコンサイズを統一 */
.like-button,
.clip-button {
	min-width: 74px;
	min-height: 32px;
	padding: 4px 12px;
	font-size: 11px;
	line-height: 1;
	gap: 6px;
	box-sizing: border-box;
}

.like-button svg,
.clip-button svg,
.like-button .icon-heart,
.clip-button .icon-bookmark {
	width: 16px;
	height: 16px;
	flex: none;
}

.dossier-card__meta .like-button,
.dossier-card__meta .clip-button {
	padding: 4px 12px;
}

/* チェックボックスをタップしやすいカードUIに */
.auth-form__checkbox {
	margin: 0 0 8px;
}

.auth-form__checkbox label {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 13px 14px;
	border: 1px solid var(--line);
	background: #fff;
	font-size: 13px;
	line-height: 1.5;
	cursor: pointer;
	transition: border-color 0.15s ease, background-color 0.15s ease;
}

.auth-form__checkbox label:hover {
	border-color: var(--ink);
}

.auth-form__checkbox input[type="checkbox"] {
	width: 20px;
	height: 20px;
	margin: 0;
	flex: none;
	accent-color: var(--stamp);
	cursor: pointer;
}

.auth-form__checkbox label:has(input:checked) {
	border-color: var(--stamp);
	background: rgba(226, 38, 26, 0.05);
}

/* フォローボタン */
.follow-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 128px;
	min-height: 38px;
	padding: 8px 20px;
	border: 1px solid var(--ink);
	background: var(--ink);
	color: var(--paper);
	font-family: var(--font-mono);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-decoration: none;
	cursor: pointer;
}

.follow-button:hover {
	background: var(--stamp);
	border-color: var(--stamp);
	color: #fff;
}

.follow-button.is-following {
	background: transparent;
	color: var(--ink);
}

.follow-button[disabled] {
	opacity: 0.5;
	cursor: default;
}

/* PR表記 */
.pr-disclosure {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 24px;
	padding: 10px 14px;
	border: 1px solid var(--line);
	background: #fff;
	font-size: 12px;
	line-height: 1.5;
}

.pr-disclosure__tag {
	flex: none;
	padding: 3px 8px;
	background: var(--ink);
	color: var(--paper);
	font-family: var(--font-mono);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.1em;
}

/* 購入リンク */
.affiliate-block {
	margin: 40px 0 0;
	padding: 20px;
	border: 1px solid var(--ink);
	background: #fff;
}

.affiliate-block__title {
	margin: 0 0 14px;
	font-family: var(--font-display);
	font-size: 16px;
	letter-spacing: 0.04em;
}

.affiliate-block__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 8px;
}

.affiliate-block__link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 14px;
	border: 1px solid var(--line);
	color: var(--ink);
	font-size: 13px;
	text-decoration: none;
}

.affiliate-block__link:hover {
	border-color: var(--stamp);
	color: var(--stamp);
}

.affiliate-block__shop {
	font-weight: 700;
}

.affiliate-block__price {
	font-family: var(--font-mono);
	font-size: 12px;
}

.affiliate-block__note {
	margin: 12px 0 0;
	font-size: 11px;
	line-height: 1.6;
	opacity: 0.65;
}

/* リリースカレンダーの日付表記 */
.calendar-day__dow {
	font-family: var(--font-mono);
	letter-spacing: 0.08em;
}

/* ヘッダーの通知ベル */
.header-bell {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border: 1px solid var(--kraft-dim);
	color: var(--paper);
	text-decoration: none;
	flex: none;
}

.header-bell:hover {
	border-color: var(--paper);
}

.header-bell.has-unread {
	border-color: var(--stamp);
	color: var(--stamp);
}

.header-bell__count {
	position: absolute;
	top: -6px;
	right: -6px;
	min-width: 17px;
	height: 17px;
	padding: 0 4px;
	border-radius: 9px;
	background: var(--stamp);
	color: #fff;
	font-family: var(--font-mono);
	font-size: 10px;
	font-weight: 700;
	line-height: 17px;
	text-align: center;
	box-sizing: border-box;
}

/* マイページから公開プロフィールへ */
.mypage-header__actions {
	margin: 14px 0 0;
}

.mypage-header__public {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 34px;
	padding: 6px 16px;
	border: 1px solid currentColor;
	color: inherit;
	font-family: var(--font-mono);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-decoration: none;
}

.mypage-header__public:hover {
	background: var(--stamp);
	border-color: var(--stamp);
	color: #fff;
}

/* 通知パネル */
.header-bell-wrap {
	position: relative;
	display: inline-flex;
}

.notif-panel {
	position: absolute;
	top: calc(100% + 10px);
	right: 0;
	z-index: 200;
	width: min(340px, calc(100vw - 32px));
	max-height: min(70vh, 460px);
	overflow-y: auto;
	background: var(--paper);
	color: var(--ink);
	border: 1px solid var(--ink);
	box-shadow: 0 18px 40px rgba(0, 0, 0, 0.22);
	text-align: left;
}

.notif-panel__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 14px;
	border-bottom: 1px solid var(--line);
	font-family: var(--font-mono);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.1em;
}

.notif-panel__all {
	color: var(--stamp);
	text-decoration: none;
}

.notif-panel__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.notif-item + .notif-item {
	border-top: 1px solid var(--line);
}

.notif-item__link {
	position: relative;
	display: grid;
	gap: 4px;
	padding: 12px 14px 12px 26px;
	color: inherit;
	text-decoration: none;
}

.notif-item__link:hover {
	background: rgba(0, 0, 0, 0.04);
}

.notif-item.is-unread .notif-item__link::before {
	content: "";
	position: absolute;
	left: 12px;
	top: 17px;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--stamp);
}

.notif-item__type {
	font-family: var(--font-mono);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.1em;
	color: var(--stamp);
}

.notif-item__text {
	font-size: 13px;
	line-height: 1.5;
}

.notif-item__time {
	font-family: var(--font-mono);
	font-size: 10px;
	opacity: 0.55;
}

.notif-panel__empty,
.notif-panel__foot {
	margin: 0;
	padding: 16px 14px;
	font-size: 12px;
	line-height: 1.6;
}

.notif-panel__foot {
	border-top: 1px solid var(--line);
}

.notif-panel__foot a {
	color: var(--stamp);
	font-weight: 700;
	text-decoration: none;
}

/* ブランド名・カウントを太字に */
.dossier-card__brand {
	font-weight: 700;
}

.like-button__count,
.dossier-card__comments-num {
	font-weight: 700;
}

/* 通知パネル: SP */
@media (max-width: 639px) {
	.notif-panel {
		position: fixed;
		top: 84px;
		right: 12px;
		left: 12px;
		width: auto;
		max-height: calc(100vh - 110px);
	}
}

/* ベルの見た目を検索アイコンに揃える */
.header-bell {
	background: none;
	appearance: none;
	-webkit-appearance: none;
	padding: 0;
	border-radius: 0;
	color: var(--paper);
}

.header-bell:focus-visible {
	outline: 2px solid var(--paper);
	outline-offset: 2px;
}

/* 一覧の絞り込み */
.index-filter {
	margin: 0 0 28px;
}

.index-filter__field {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 14px;
	border: 1px solid var(--ink);
	background: #fff;
}

.index-filter__input {
	flex: 1 1 auto;
	min-width: 0;
	border: 0;
	background: none;
	font-family: inherit;
	font-size: 14px;
	color: inherit;
}

.index-filter__input:focus {
	outline: none;
}

.index-filter__letters {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 12px;
}

.index-filter__letter {
	min-width: 32px;
	min-height: 32px;
	padding: 4px 8px;
	border: 1px solid var(--line);
	background: none;
	color: inherit;
	font-family: var(--font-mono);
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
}

.index-filter__letter:hover {
	border-color: var(--ink);
}

.index-filter__letter.is-active {
	background: var(--ink);
	border-color: var(--ink);
	color: var(--paper);
}

.index-filter__empty {
	margin: 20px 0 0;
	font-size: 13px;
	opacity: 0.7;
}

/* カードの数値・ブランド名の視認性 */
.dossier-card__brand {
	color: var(--ink);
	font-weight: 700;
}

.dossier-card__comments {
	color: var(--ink);
}

.dossier-card__comments-num,
.like-button__count,
.comment-item__stats .comment-like-button span,
.voice-feed__likes-num {
	color: var(--ink);
	font-weight: 700;
}

.like-button .like-button__count {
	font-size: 12px;
}

.like-button.is-liked .like-button__count {
	color: var(--stamp);
}

/* ビュー数の数値を統一 */
.dossier-card__views-num {
	color: var(--ink);
	font-weight: 700;
}

/* パスワード変更 */
.password-form {
	margin: 56px 0 0;
}

.password-form__notice {
	margin: 0 0 16px;
	padding: 12px 14px;
	border: 1px solid var(--line);
	font-size: 13px;
	line-height: 1.6;
}

.password-form__notice.is-success {
	border-color: var(--ink);
	background: #fff;
}

.password-form__notice.is-error {
	border-color: var(--stamp);
	color: var(--stamp);
	background: rgba(226, 38, 26, 0.05);
}


/* =========================================
   日本語フォント調整（2026-09）
   Latin は Archivo、和文は OS 標準ゴシックで統一する
   ========================================= */
:root {
	--font-sans: 'Archivo', 'Helvetica Neue', Helvetica, Arial, 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Noto Sans JP', 'Yu Gothic Medium', 'Yu Gothic', YuGothic, Meiryo, sans-serif;
	--font-display: 'Archivo Black', 'Archivo', 'Helvetica Neue', Helvetica, Arial, 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Noto Sans JP', 'Yu Gothic Medium', 'Yu Gothic', YuGothic, Meiryo, sans-serif;
}

body {
	font-feature-settings: 'palt' 1;
}

/* =========================================
   VIEW MORE リンクを赤・同サイズで統一
   ========================================= */
.section-heading .view-all,
a.view-all,
.section-heading__more,
.manifest__more {
	font-family: var(--font-mono);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--stamp);
}

.section-heading .view-all:hover,
a.view-all:hover,
.section-heading__more:hover,
.manifest__more:hover {
	color: var(--stamp);
	opacity: 0.7;
}

/* =========================================
   ヘッダー：中間幅の折り返し対策
   横並びが破綻する幅ではハンバーガーに切り替える
   ========================================= */
@media (min-width: 900px) and (max-width: 1239px) {
	.site-header .primary-nav {
		display: none;
	}

	.site-header .menu-toggle {
		display: inline-flex;
	}

	.site-header .member-nav__greeting {
		display: none;
	}
}

@media (min-width: 1240px) {
	.site-header__bar {
		flex-wrap: nowrap;
	}

	.site-header .primary-nav ul {
		flex-wrap: nowrap;
		gap: 18px;
	}

	.site-header .primary-nav a {
		white-space: nowrap;
	}

	.site-header .header-actions {
		flex-shrink: 0;
	}

	.site-header .member-nav__greeting {
		max-width: 160px;
	}
}

/* =========================================
   マイページ：パスワードを忘れた方へのリンク
   ========================================= */
.password-form__forgot {
	margin: 14px 0 0;
	font-size: 13px;
}

.password-form__forgot a {
	color: var(--stamp);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.password-form__forgot a:hover {
	opacity: 0.7;
}

/* HOT ITEMS：いいね数はサムネイル右上のバッジで表示（#1バッジと同サイズ） */
.popular-row__views.popular-row__likes {
	position: absolute;
	top: 8px;
	right: 8px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 2px 8px;
	background: rgba(255, 255, 255, 0.92);
	font-family: var(--font-mono);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.6;
	letter-spacing: 0;
	color: var(--stamp);
}

.popular-row__likes-icon {
	font-size: 1em;
	line-height: 1;
	color: var(--stamp);
}

/* =========================================
   メルマガ登録ポップアップ
   ========================================= */
.nl-popup[hidden] {
	display: none !important;
}

.nl-popup {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
}

.is-nl-popup-open {
	overflow: hidden;
}

.nl-popup__overlay {
	position: absolute;
	inset: 0;
	background: rgba(9, 9, 9, 0.72);
}

.nl-popup__dialog {
	position: relative;
	width: 100%;
	max-width: 460px;
	max-height: calc(100vh - 40px);
	overflow-y: auto;
	padding: 32px 24px 24px;
	background: var(--ink, #090909);
	color: var(--paper, #f7f7f5);
	border-top: 4px solid var(--stamp);
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35);
	animation: nl-popup-in 0.24s ease-out both;
}

@keyframes nl-popup-in {
	from {
		opacity: 0;
		transform: translateY(12px);
	}

	to {
		opacity: 1;
		transform: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.nl-popup__dialog {
		animation: none;
	}
}

.nl-popup__close {
	position: absolute;
	top: 6px;
	right: 8px;
	width: 34px;
	height: 34px;
	padding: 0;
	background: none;
	border: 0;
	font-size: 26px;
	line-height: 1;
	color: var(--paper, #f7f7f5);
	cursor: pointer;
}

.nl-popup__close:hover {
	color: var(--stamp);
}

.nl-popup .newsletter-form {
	margin: 0;
	padding: 0;
	background: none;
	border: 0;
}

.nl-popup__dismiss {
	display: block;
	margin: 16px auto 0;
	padding: 4px 8px;
	background: none;
	border: 0;
	font-family: var(--font-mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	color: #a7a7a2;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

.nl-popup__dismiss:hover {
	color: var(--paper, #f7f7f5);
}

.nl-popup .newsletter-form__desc {
	color: #c9c9c4;
}

@media (max-width: 639px) {
	.nl-popup {
		align-items: flex-end;
		padding: 0;
	}

	.nl-popup__dialog {
		max-width: none;
		max-height: 88vh;
		padding: 28px 20px 20px;
	}
}

/* =========================================
   パスワード再設定ページ
   ========================================= */
.auth-page__lead {
	margin: 0 0 20px;
	font-size: 14px;
	line-height: 1.9;
	color: #4a4a46;
}

.auth-notice {
	margin: 0 0 20px;
	padding: 12px 14px;
	border-left: 3px solid var(--stamp);
	background: rgba(226, 38, 26, 0.06);
	font-size: 13px;
	line-height: 1.8;
}

.auth-notice--ok {
	border-left-color: var(--ink, #090909);
	background: rgba(9, 9, 9, 0.05);
}

/* =========================================
   マイページ・会員フォーム（.auth-form__field）
   ログインフォームと同じ体裁に揃える
   ========================================= */
.auth-form__field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0;
}

.auth-form__field label {
	font-size: 13px;
	font-weight: 700;
}

.auth-form__field .required {
	color: var(--stamp);
}

.auth-form__field input,
.auth-form__field select,
.auth-form__field textarea {
	width: 100%;
	max-width: 420px;
	padding: 10px 12px;
	border: 1px solid var(--kraft);
	background: var(--paper);
	font-size: 15px;
}

.auth-form__field input:disabled {
	color: var(--kraft-dim);
	background: var(--paper-dim);
}

/* =========================================
   マイページ：一覧をコンパクトな行レイアウトに
   ========================================= */
:is(.page-template-page-mypage, .author) .dossier-grid {
	display: block;
	border-top: 1px solid rgba(9, 9, 9, 0.12);
}

:is(.page-template-page-mypage, .author) .dossier-card {
	display: grid;
	grid-template-columns: 112px 1fr;
	gap: 14px;
	align-items: start;
	margin: 0;
	padding: 14px 0;
	border: 0;
	border-bottom: 1px solid rgba(9, 9, 9, 0.12);
	background: none;
}

:is(.page-template-page-mypage, .author) .dossier-card[hidden] {
	display: none;
}

:is(.page-template-page-mypage, .author) .dossier-card__figure {
	position: relative;
	display: block;
	margin: 0;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: rgba(9, 9, 9, 0.06);
}

:is(.page-template-page-mypage, .author) .dossier-card__figure img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

:is(.page-template-page-mypage, .author) .dossier-card__badges {
	display: none;
}

:is(.page-template-page-mypage, .author) .dossier-card__excerpt {
	display: none;
}

:is(.page-template-page-mypage, .author) .dossier-card__body {
	padding: 0;
	min-width: 0;
}

:is(.page-template-page-mypage, .author) .dossier-card__title {
	display: -webkit-box;
	margin: 0 0 6px;
	overflow: hidden;
	font-size: 14px;
	line-height: 1.55;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

:is(.page-template-page-mypage, .author) .dossier-card__meta {
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 6px;
}

:is(.page-template-page-mypage, .author) .dossier-card__date {
	font-size: 11px;
}

.mypage-more {
	display: block;
	width: 100%;
	margin: 14px 0 0;
	padding: 11px 12px;
	background: none;
	border: 1px solid var(--kraft);
	font-family: var(--font-mono);
	font-size: 12px;
	letter-spacing: 0.06em;
	color: var(--ink, #090909);
	cursor: pointer;
}

.mypage-more:hover {
	border-color: var(--stamp);
	color: var(--stamp);
}

@media (max-width: 639px) {
	:is(.page-template-page-mypage, .author) .dossier-card {
		grid-template-columns: 96px 1fr;
		gap: 12px;
	}

	:is(.page-template-page-mypage, .author) .dossier-card__title {
		font-size: 13.5px;
	}
}

/* =========================================
   長いタイトル・抜粋の行数を揃える
   （情報量は保ちつつ、カードの高さを統一する）
   ========================================= */
.dossier-card__title,
.popular-row__title,
.release-strip__title,
.manifest__title,
.popular-posts__title,
.notif-panel__title,
.dossier-card__excerpt {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
}

.dossier-card__title,
.popular-row__title,
.release-strip__title {
	-webkit-line-clamp: 3;
}

.manifest__title,
.popular-posts__title,
.notif-panel__title,
.dossier-card__excerpt {
	-webkit-line-clamp: 2;
}

/* =========================================
   ファクトシート（プロフィール／製品情報）の強調
   ========================================= */
.dossier-fact-sheet {
	position: relative;
	padding: 22px 22px 20px 24px;
	background: var(--paper, #f7f7f5);
	border: 1px solid rgba(9, 9, 9, 0.12);
	border-left: 4px solid var(--stamp);
}

.dossier-fact-sheet h2 {
	margin: 0 0 14px;
	font-family: var(--font-mono);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	color: var(--stamp);
}

.dossier-fact-sheet dl {
	display: grid;
	grid-template-columns: max-content 1fr;
	margin: 0;
	border-top: 1px solid rgba(9, 9, 9, 0.1);
}

.dossier-fact-sheet dt {
	margin: 0;
	padding: 11px 20px 11px 0;
	border-bottom: 1px solid rgba(9, 9, 9, 0.1);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.6;
	color: #6c6c68;
}

.dossier-fact-sheet dd {
	margin: 0;
	padding: 11px 0;
	border-bottom: 1px solid rgba(9, 9, 9, 0.1);
	font-family: var(--font-mono);
	font-size: 15px;
	font-weight: 700;
	line-height: 1.6;
	color: var(--ink, #090909);
}

.dossier-fact-sheet .stamp {
	margin-top: 14px !important;
	margin-right: 6px !important;
}

/* ===========================================================================
   フッターのメルマガ導線・実績併記（2026-09 追加）
   =========================================================================== */

.site-footer__newsletter {
	border: 1px solid var(--kraft-dim);
	padding: 20px;
}
@media (min-width: 780px) {
	.site-footer__newsletter { grid-column: 1 / -1; padding: 24px 28px; }
}
.site-footer__newsletter .newsletter-form__title { font-size: 15px; letter-spacing: 0.08em; margin-bottom: 8px; }
.site-footer__newsletter .newsletter-form__desc { font-size: 13px; max-width: 52ch; }
.site-footer__newsletter .newsletter-form__form { max-width: 520px; }

.newsletter-form__note { font-size: 11px; color: var(--kraft-dim); line-height: 1.6; margin: 8px 0 0; }

.member-promo__stats {
	color: var(--kraft-dim);
	font-family: var(--font-mono);
	font-size: 12px;
	letter-spacing: 0.04em;
	margin: -24px 0 32px;
}

/* ===========================================================================
   記事末尾の購入導線（2026-09 追加）
   =========================================================================== */

.shop-links {
	border: 1px solid var(--ink);
	padding: 20px;
	margin: 40px 0;
}
.shop-links__title {
	font-family: var(--font-mono);
	font-size: 12px;
	letter-spacing: 0.08em;
	margin: 0 0 14px;
	color: var(--ink);
}
.shop-links__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 10px;
}
@media (min-width: 600px) {
	.shop-links__grid { grid-template-columns: repeat(2, 1fr); }
}
.shop-links__button {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 14px 16px;
	font-size: 14px;
	font-weight: 700;
	text-align: center;
	text-decoration: none !important;
	border: 1px solid var(--ink);
	color: var(--ink);
	background: var(--paper);
	transition: background 0.15s ease, color 0.15s ease;
}
.shop-links__button:hover { background: var(--ink); color: var(--paper); }
.shop-links__button--official { background: var(--stamp); border-color: var(--stamp); color: var(--paper); }
.shop-links__button--official:hover { background: var(--stamp-dim); border-color: var(--stamp-dim); color: var(--paper); }
.shop-links__note {
	font-size: 11px;
	line-height: 1.6;
	color: #6b6b6b;
	margin: 12px 0 0;
}
