/*!
 * Siam Works — ステッカー表現の共有部品（下層ページ用）
 *
 * トップ（home.css）と下層ページで同じ見た目になる部品をここに置く。
 * home.css は同じ定義を自前で持つので、このファイルはトップ以外でだけ読む。
 */

.sw-w {
  width: min(1200px, calc(100% - 28px));
  margin-left: auto;
  margin-right: auto;
}

@keyframes sw-drift {
  0% { transform: translateY(0); }
  50% { transform: translateY(-18px); }
  100% { transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .sw-pages * { animation: none !important; }
}

/* 小物 */
.sw-tagrow { display: flex; flex-wrap: wrap; gap: 8px; }
.sw-tagrow--tight { gap: 7px; }
.sw-tagx { font-size: var(--text-xs); color: var(--ink-700); border: 1px solid var(--ink-400); padding: 5px 11px; }
.sw-tagx--sm { padding: 4px 10px; }
.sw-mono { font-family: var(--font-family-mono); font-size: var(--type-meta-size); letter-spacing: .05em; color: var(--ink-500); }
.sw-circ {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid var(--blue-400);
  color: var(--blue-500);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: var(--text-base);
  flex: none;
}
.sw-circ--fill { background: var(--blue-500); color: #fff; border-color: var(--blue-500); }
.sw-pill-ink {
  background: var(--ink-900);
  color: #fff;
  border-radius: 999px;
  padding: 8px 20px;
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: .1em;
}
.sw-pill-blue {
  background: var(--blue-500);
  color: #fff;
  border-radius: 9999px;
  padding: 8px 18px;
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: .08em;
}
.sw-sticker {
  display: inline-block;
  background: var(--blue-500);
  color: #fff;
  border: 1px solid var(--border-hairline);
  padding: 6px 14px;
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: .1em;
  transform: rotate(2deg);
  margin-bottom: 30px;
}

/* お知らせカード */
.sw-ncard {
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  background: var(--greige-000);
  border: 1px solid var(--border-hairline);
  border-radius: clamp(16px, 1.8vw, 24px);
  padding: 22px;
  transition: box-shadow .3s cubic-bezier(.2, 0, .2, 1);
}
.sw-ncard:hover { box-shadow: var(--shadow-card); color: inherit; }
.sw-ncard__thumb {
  position: relative;
  aspect-ratio: 16 / 10;
  border: 1px solid var(--border-hairline);
  border-radius: 12px;
  background: var(--greige-300);
  overflow: hidden;
  margin-bottom: 20px;
}
.sw-ncard__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.sw-ncard__cat {
  position: absolute;
  top: 0;
  left: 0;
  background: var(--ink-900);
  color: #fff;
  padding: 5px 12px;
  font-size: var(--text-2xs);
  font-weight: 900;
  letter-spacing: var(--tracking-index);
}
/* カンプは1枚ごとに地色と模様が違う。画像が無いときの順番に対応させる */
.sw-ncard:nth-child(6n+1) .sw-ncard__thumb { background: var(--blue-500); background-image: repeating-linear-gradient(90deg, rgba(255, 255, 255, .18) 0 2px, transparent 2px 16px); }
.sw-ncard:nth-child(6n+1) .sw-ncard__cat { background: #fff; color: var(--blue-600); }
.sw-ncard:nth-child(6n+2) .sw-ncard__thumb { background: var(--greige-300); }
.sw-ncard:nth-child(6n+3) .sw-ncard__thumb { background: var(--blue-200); background-image: repeating-linear-gradient(45deg, rgba(255, 255, 255, .4) 0 12px, transparent 12px 24px); }
.sw-ncard:nth-child(6n+3) .sw-ncard__cat { background: var(--blue-500); }
.sw-ncard:nth-child(6n+4) .sw-ncard__thumb { background: var(--ink-900); background-image: radial-gradient(rgba(255, 255, 255, .24) 1.5px, transparent 1.5px); background-size: 15px 15px; }
.sw-ncard:nth-child(6n+4) .sw-ncard__cat { background: var(--greige-000); color: var(--ink-900); }
.sw-ncard:nth-child(6n+5) .sw-ncard__thumb { background: var(--greige-200); background-image: repeating-linear-gradient(-45deg, rgba(23, 24, 26, .08) 0 12px, transparent 12px 24px); }
.sw-ncard:nth-child(6n+6) .sw-ncard__thumb { background: var(--blue-200); }
.sw-ncard:nth-child(6n+6) .sw-ncard__cat { background: var(--blue-500); }
.sw-ncard__latin { font-family: var(--font-family-grotesk); font-size: var(--text-sm); font-weight: 700; color: var(--blue-600); margin-bottom: 8px; }
.sw-ncard__title { font-family: var(--type-display-family); font-size: var(--text-lg); font-weight: 900; line-height: 1.5; margin: 0 0 16px; }
.sw-ncard__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 22px; }
.sw-ncard--related .sw-ncard__foot { padding-top: 6px; }

/* 空の状態 */
.sw-empty-box {
  background: var(--greige-000);
  border: 1px dashed var(--border-hairline);
  border-radius: clamp(16px, 1.8vw, 24px);
  padding: 56px 28px;
  text-align: center;
}
.sw-empty-box__title { font-family: var(--type-display-family); font-size: var(--text-xl); font-weight: 900; margin: 0 0 14px; }
.sw-empty-box__body { margin: 0 auto 26px; font-size: var(--type-ui-size); line-height: var(--leading-body); color: var(--ink-700); }
.sw-empty-box__actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }

/* FOLLOW の行 */
.sw-follow__title {
  font-family: var(--type-display-family);
  font-size: var(--type-heading-size);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -.01em;
  color: var(--blue-500);
  margin: 0 0 14px;
}
.sw-follow__latin {
  font-family: var(--font-family-grotesk);
  font-size: var(--type-index-size);
  font-weight: var(--type-index-weight);
  letter-spacing: var(--type-index-tracking);
  text-transform: uppercase;
  color: var(--ink-500);
  margin: 0 0 var(--stack-y);
}
.sw-follow__list { display: flex; flex-direction: column; border-top: 1px solid var(--border-rule, var(--greige-300)); }
.sw-follow__row {
  --c-bg: transparent;
  --c-fg: var(--blue-500);
  --c-x: 0px;
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  column-gap: clamp(24px, 4vw, 64px);
  row-gap: 16px;
  padding: clamp(30px, 3.4vw, 44px) 0;
  border-bottom: 1px solid var(--border-rule, var(--greige-300));
  transition: background-color 140ms linear;
}
.sw-follow__row:hover { --c-bg: var(--blue-500); --c-fg: #fff; --c-x: 4px; color: inherit; }
.sw-follow__name { flex: 0 1 200px; display: flex; flex-direction: column; gap: 6px; }
.sw-follow__name span { font-family: var(--font-family-grotesk); font-size: var(--text-xl); font-weight: 600; letter-spacing: -.02em; line-height: 1; color: var(--blue-500); }
.sw-follow__txt { flex: 1 1 260px; display: flex; flex-direction: column; gap: 22px; }
.sw-follow__txt p { margin: 0; font-size: var(--type-body-size); line-height: 1.9; letter-spacing: .01em; color: var(--ink-800); }
.sw-follow__cta { display: inline-flex; align-items: center; gap: 12px; font-family: var(--type-display-family); font-size: var(--text-xs); font-weight: 700; color: var(--blue-600); }
.sw-follow__circ {
  width: 34px;
  height: 34px;
  border-radius: var(--radius-full);
  border: 1px solid var(--blue-400);
  background: var(--c-bg);
  color: var(--c-fg);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transform: translateX(var(--c-x));
  transition: background-color 220ms cubic-bezier(.16, 1, .3, 1), color 220ms linear, transform 220ms cubic-bezier(.16, 1, .3, 1);
}
.sw-follow__note { margin: var(--stack-y) 0 0; font-size: var(--type-ui-size); line-height: var(--leading-body); color: var(--ink-700); }
