/*
Theme Name: 追想製作所
Theme URI: https://example.com/
Author: 追想製作所
Author URI: https://example.com/
Description: インターネット黎明期風・水色×白基調のレトロ個人サイトテーマ
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: tsuiso
Tags: retro, japanese, personal, sidebar, one-column
*/

@import url('https://fonts.googleapis.com/css2?family=DotGothic16&display=swap');

/* ===== ブラウザ・WPデフォルトリセット ===== */
html, body, div, span, h1, h2, h3, h4, h5, h6,
p, a, ul, ol, li, table, td, th, form, input, textarea, button {
  box-sizing: border-box;
}

/* WP本文エリアのデフォルトmargin/paddingリセット */
.entry-content > * { margin-block-start: 0; margin-block-end: 0; }
.entry-content p   { margin-bottom: 10px; }

/* WordPressが付与するアライン系クラスの無効化 */
.alignleft, .alignright, .aligncenter, .alignwide, .alignfull {
  float: none;
  margin: 0;
  max-width: 100%;
}

/* WPコメントフォームのデフォルトpadding消し */
#respond { padding: 0; }
.comment-list { padding: 0; margin: 0; }
.comment-list .comment { margin: 0; }

/* コメントのol/liの番号・マーカーを消す */
.comment-list,
.comment-list ol,
.comment-list ul,
.children {
  list-style: none;
  padding: 0;
  margin: 0;
}

/* WPがコメント投稿者名に付けるmarkやstrongの背景色を消す */
.comment-meta mark,
.comment-meta strong,
.comment-author mark,
.comment-author strong,
#secondary mark,
#secondary strong {
  background: transparent;
  color: inherit;
}

/* コメント著者名のリンク装飾を消す */
.comment-author a,
.comment-author a:visited {
  background: transparent;
  color: var(--teal);
  text-decoration: none;
}

:root {
  --bg:        #dff2f9;
  --bg2:       #f0faff;
  --bg3:       #c8e8f5;
  --cyan:      #0088aa;
  --cyan-dim:  #22aacc;
  --cyan-dark: #006688;
  --teal:      #005577;
  --teal-dim:  #1188aa;
  --ice:       #002244;
  --mist:      #227799;
  --white:     #ffffff;
  --accent:    #cc2255;
  --accent2:   #6633bb;
  --silver:    #4499bb;
  --silver-dk: #aad8e8;
  --dim:       #b8dff0;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
  background-color: var(--bg);
  color: var(--ice);
  font-family: 'DotGothic16', 'MS Gothic', 'ＭＳ ゴシック', monospace;
  font-size: 14px;
  background-image:
    repeating-linear-gradient(
      0deg,
      transparent,
      transparent 3px,
      rgba(0, 136, 170, 0.04) 3px,
      rgba(0, 136, 170, 0.04) 4px
    );
  min-height: 100vh;
}

/* ===== ヘッダー ===== */
#masthead {
  background: linear-gradient(180deg, #cceeff 0%, #d8f4ff 50%, var(--bg2) 100%);
  border-bottom: 2px solid var(--cyan-dark);
  text-align: center;
  padding: 14px 0 10px;
  position: relative;
  overflow: hidden;
}

#masthead::before {
  content: '・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・';
  display: block;
  color: var(--silver-dk);
  font-size: 10px;
  letter-spacing: 2px;
  margin-bottom: 8px;
  animation: fade-pulse 2.4s ease-in-out infinite;
}

@keyframes fade-pulse {
  0%, 100% { opacity: 0.5; }
  50% { opacity: 1; }
}

.site-title {
  font-size: 40px;
  font-family: 'DotGothic16', monospace;
  letter-spacing: 10px;
  color: var(--cyan-dark);
  text-shadow: 0 0 8px rgba(0,136,170,0.3), 1px 1px 0 var(--white);
  display: block;
  animation: title-glow 3s ease-in-out infinite;
  text-decoration: none;
}

.site-title:hover { color: var(--cyan-dark); text-decoration: none; }

@keyframes title-glow {
  0%, 100% { text-shadow: 0 0 6px rgba(0,136,170,0.2), 1px 1px 0 var(--white); }
  50%       { text-shadow: 0 0 14px rgba(0,136,170,0.45), 1px 1px 0 var(--white); }
}

.site-description {
  color: var(--mist);
  font-size: 11px;
  letter-spacing: 7px;
  margin-top: 5px;
}

.header-last-update {
  color: var(--cyan-dark);
  font-size: 11px;
  margin-top: 7px;
  animation: blink 1.1s step-end infinite;
}

@keyframes blink {
  0%, 100% { visibility: visible; }
  50%       { visibility: hidden; }
}

/* ===== マーキー ===== */
.marquee-bar {
  background: var(--white);
  border-top: 1px solid var(--silver-dk);
  border-bottom: 1px solid var(--silver-dk);
  padding: 4px 0;
  overflow: hidden;
  white-space: nowrap;
}

.marquee-inner {
  display: inline-block;
  animation: marquee 22s linear infinite;
  color: var(--cyan-dim);
  font-size: 12px;
}

@keyframes marquee {
  0%   { transform: translateX(100vw); }
  100% { transform: translateX(-100%); }
}

/* ===== 推奨環境バー ===== */
.recommend-note {
  background: var(--bg2);
  border-bottom: 1px solid var(--silver-dk);
  color: var(--mist);
  font-size: 10px;
  text-align: center;
  padding: 3px;
}

/* ===== レイアウト ===== */
#page {
  display: flex;
  max-width: 900px;
  margin: 0 auto;
  padding: 10px;
  gap: 10px;
  align-items: flex-start;
}

/* ===== サイドバー（左側） ===== */
#secondary {
  width: 165px;
  flex-shrink: 0;
}

/* ウィジェット共通 — WPはsectionタグで出力することもある */
.widget,
#secondary > div,
#secondary > section,
#secondary > aside,
#secondary .widget_block {
  border: 1px solid var(--silver-dk);
  background: var(--white);
  margin-bottom: 10px;
  overflow: hidden; /* 角が崩れないよう */
}

/* widget-inner（before_widgetで追加したラッパー）はborderなし */
.widget-inner {
  border: none;
  background: transparent;
  margin: 0;
}

.widget-title,
#secondary h2,
#secondary h3,
#secondary h4 {
  background: var(--cyan-dark);
  color: var(--white);
  font-size: 11px;
  font-weight: bold;
  padding: 3px 8px;
  letter-spacing: 3px;
  margin: 0;
}

/* ウィジェット内のul/li/a — WPが付けるクラスに関わらず全部対象 */
#secondary ul {
  list-style: none;
  padding: 6px;
  margin: 0;
}

#secondary ul li {
  margin-bottom: 3px;
}

#secondary ul li a {
  color: var(--teal);
  text-decoration: none;
  font-size: 12px;
  display: block;
  padding: 2px 4px;
}

#secondary ul li a::before {
  content: '▷ ';
  color: var(--cyan-dim);
  font-size: 10px;
}

#secondary ul li a:hover {
  background: var(--dim);
  color: var(--cyan-dark);
}

/* WP標準ウィジェットが出すネスト済みul（サブカテゴリ等）のインデント */
#secondary ul ul {
  padding-left: 12px;
}

/* ウィジェット内のテキスト・段落 */
#secondary .widget p,
#secondary .textwidget p {
  font-size: 12px;
  padding: 6px 8px;
  color: var(--ice);
  line-height: 1.8;
}

/* 検索ウィジェット */
#secondary .widget_search input[type="search"],
#secondary .widget_search input[type="text"] {
  width: calc(100% - 12px);
  margin: 6px;
  background: var(--bg3);
  border: 1px solid var(--silver-dk);
  color: var(--ice);
  font-family: inherit;
  font-size: 12px;
  padding: 3px 5px;
}

#secondary .widget_search input[type="submit"] {
  display: block;
  width: calc(100% - 12px);
  margin: 0 6px 6px;
  background: var(--cyan-dark);
  color: var(--white);
  border: none;
  font-family: inherit;
  font-size: 11px;
  padding: 3px;
  cursor: pointer;
  letter-spacing: 2px;
}

#secondary .widget_search input[type="submit"]:hover {
  background: var(--cyan);
}

/* ヒットカウンター */
.widget-hit-counter .hit-counter {
  border: 1px inset var(--silver-dk);
  background: var(--bg3);
  color: var(--cyan-dark);
  font-size: 19px;
  font-family: 'Courier New', monospace;
  letter-spacing: 3px;
  text-align: center;
  padding: 4px 8px;
  display: block;
  margin: 6px;
  font-weight: bold;
}

.widget-hit-counter .counter-label {
  color: var(--mist);
  font-size: 10px;
  text-align: center;
  padding-bottom: 6px;
}

/* バナーエリア */
.widget-banner {
  border: 1px solid var(--silver-dk);
  background: var(--white);
  padding: 8px;
  margin-bottom: 10px;
  text-align: center;
}

.widget-banner .banner-title {
  color: var(--silver);
  font-size: 10px;
  margin-bottom: 6px;
}

.my-banner {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 140px;
  height: 40px;
  background: var(--bg3);
  border: 1px solid var(--cyan-dim);
  color: var(--cyan-dark);
  font-size: 12px;
  letter-spacing: 2px;
  text-decoration: none;
  margin: 0 auto;
  font-weight: bold;
}

/* サイドフッター */
.sidebar-footer {
  text-align: center;
  padding: 6px;
  font-size: 10px;
  color: var(--silver);
}

.sidebar-footer .since {
  margin-top: 3px;
  color: var(--cyan-dim);
}

/* ===== メインコンテンツ ===== */
#primary {
  flex: 1;
  min-width: 0;
}

/* ===== セクション（カード）共通 ===== */
.section,
.entry-card {
  border: 1px solid var(--silver-dk);
  background: var(--white);
  margin-bottom: 12px;
}

.section-title,
.entry-card-title {
  background: linear-gradient(90deg, var(--bg3), var(--dim), var(--bg3));
  color: var(--cyan-dark);
  font-size: 12px;
  font-weight: bold;
  padding: 4px 10px;
  letter-spacing: 4px;
  border-bottom: 1px solid var(--silver-dk);
}

.section-title::before,
.entry-card-title::before { content: '◈ '; }
.section-title::after,
.entry-card-title::after  { content: ' ◈'; }

.section-body,
.entry-card-body {
  padding: 10px 14px;
  line-height: 2;
  font-size: 13px;
  color: var(--ice);
}

/* ===== 投稿リスト（アーカイブ・トップ） ===== */
.post-list-item {
  display: flex;
  gap: 10px;
  margin-bottom: 6px;
  border-bottom: 1px dotted var(--silver-dk);
  padding-bottom: 6px;
}

.post-list-date {
  color: var(--cyan-dim);
  font-size: 11px;
  white-space: nowrap;
  flex-shrink: 0;
  padding-top: 1px;
}

.post-list-cat {
  background: var(--cyan-dark);
  color: var(--white);
  font-size: 10px;
  padding: 1px 5px;
  white-space: nowrap;
  flex-shrink: 0;
  height: fit-content;
  margin-top: 1px;
}

.post-list-title {
  color: var(--ice);
  font-size: 13px;
}

.post-list-title a {
  color: var(--teal);
  text-decoration: underline;
}

/* ===== 個別投稿（single.php） ===== */
.entry-header {
  background: linear-gradient(90deg, var(--bg3), var(--dim), var(--bg3));
  border-bottom: 1px solid var(--silver-dk);
  padding: 6px 10px;
}

.entry-title {
  color: var(--cyan-dark);
  font-size: 14px;
  font-weight: bold;
  letter-spacing: 2px;
}

.entry-title::before { content: '◈ '; }
.entry-title::after  { content: ' ◈'; }

.entry-meta {
  color: var(--mist);
  font-size: 10px;
  margin-top: 3px;
}

.entry-meta a { color: var(--teal); text-decoration: none; }

.entry-content {
  padding: 12px 14px;
  line-height: 2;
  font-size: 13px;
  color: var(--ice);
}

.entry-content h2 {
  color: var(--cyan-dark);
  font-size: 13px;
  border-left: 3px solid var(--cyan-dark);
  padding-left: 8px;
  margin: 14px 0 6px;
}

.entry-content h3 {
  color: var(--teal);
  font-size: 12px;
  margin: 10px 0 4px;
}

.entry-content p { margin-bottom: 10px; }

.entry-content a { color: var(--teal); text-decoration: underline; }
.entry-content a:hover { color: var(--cyan-dark); }

.entry-content img {
  max-width: 100%;
  border: 1px solid var(--silver-dk);
}

/* ===== 記事本文内テーブル ===== */
.entry-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 12px 0;
  font-size: 12px;
}

.entry-content th {
  padding: 5px 8px;
  border-bottom: 1px dotted var(--silver-dk);
  color: var(--cyan-dim);
  font-weight: bold;
  text-align: left;
  white-space: nowrap;
  width: 120px;
  background: transparent;
}

.entry-content td {
  padding: 5px 8px;
  border-bottom: 1px dotted var(--silver-dk);
  color: var(--ice);
  background: transparent;
  line-height: 1.8;
}

/* 左列（th or 最初のtd）をラベル色に */
.entry-content td:first-child {
  color: var(--cyan-dim);
  white-space: nowrap;
  width: 120px;
}

.entry-content td:last-child {
  color: var(--ice);
}

/* ホバーで薄く */
.entry-content tr:hover td,
.entry-content tr:hover th {
  background: var(--bg3);
}

/* ===== コメント ===== */
.comments-area {
  border: 1px solid var(--silver-dk);
  background: var(--white);
  margin-bottom: 12px;
}

.comments-title {
  background: linear-gradient(90deg, var(--bg3), var(--dim), var(--bg3));
  color: var(--cyan-dark);
  font-size: 12px;
  font-weight: bold;
  padding: 4px 10px;
  letter-spacing: 4px;
  border-bottom: 1px solid var(--silver-dk);
}

.comments-title::before { content: '◈ '; }
.comments-title::after  { content: ' ◈'; }

.comment-list { list-style: none; padding: 8px 10px; }

.comment {
  border: 1px solid var(--silver-dk);
  background: var(--bg2);
  padding: 8px;
  margin-bottom: 8px;
  font-size: 12px;
}

.comment-meta {
  color: var(--cyan-dim);
  font-size: 11px;
  margin-bottom: 4px;
  border-bottom: 1px dotted var(--silver-dk);
  padding-bottom: 3px;
}

.comment-author { color: var(--teal); font-weight: bold; }
.comment-body   { color: var(--ice); line-height: 1.7; }

/* コメントフォーム */
.comment-respond { padding: 8px 10px; }

.comment-respond .comment-reply-title {
  color: var(--cyan-dark);
  font-size: 12px;
  margin-bottom: 8px;
}

.comment-form label {
  display: block;
  color: var(--cyan-dim);
  font-size: 11px;
  margin-bottom: 2px;
  margin-top: 8px;
}

.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
  width: 100%;
  background: var(--bg3);
  border: 1px solid var(--silver-dk);
  color: var(--ice);
  font-family: inherit;
  font-size: 12px;
  padding: 4px 6px;
}

.comment-form input[type="submit"] {
  background: var(--cyan-dark);
  color: var(--white);
  border: none;
  font-family: inherit;
  font-size: 12px;
  padding: 4px 16px;
  cursor: pointer;
  margin-top: 8px;
  letter-spacing: 2px;
}

.comment-form input[type="submit"]:hover {
  background: var(--cyan);
}

/* ===== ページネーション ===== */
.navigation {
  text-align: center;
  padding: 8px;
  font-size: 12px;
}

.navigation a, .navigation span {
  display: inline-block;
  padding: 2px 10px;
  margin: 0 2px;
  border: 1px solid var(--silver-dk);
  color: var(--teal);
  text-decoration: none;
  background: var(--white);
}

.navigation .current {
  background: var(--cyan-dark);
  color: var(--white);
  border-color: var(--cyan-dark);
}

.navigation a:hover {
  background: var(--dim);
  color: var(--cyan-dark);
}

/* ===== 区切り ===== */
.separator {
  text-align: center;
  color: var(--silver-dk);
  font-size: 11px;
  letter-spacing: 3px;
  padding: 4px 0;
}

.gif-placeholder {
  display: inline-block;
  width: 14px;
  height: 14px;
  background: var(--cyan-dim);
  border-radius: 50%;
  animation: pulse-dot 1.2s ease-in-out infinite;
  vertical-align: middle;
  margin-right: 5px;
}

@keyframes pulse-dot {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%       { opacity: 0.4; transform: scale(0.65); }
}

/* ===== フッター ===== */
#colophon {
  background: var(--white);
  border-top: 1px solid var(--silver-dk);
  text-align: center;
  padding: 10px;
  color: var(--silver);
  font-size: 11px;
  margin-top: 10px;
}

#colophon a { color: var(--teal); text-decoration: none; }
#colophon a:hover { color: var(--cyan-dark); }

.footer-nav { margin: 6px 0; }
.footer-nav a { margin: 0 4px; }

.site-info {
  color: var(--mist);
  font-size: 10px;
  margin-top: 4px;
}

.deco-line {
  color: var(--silver-dk);
  font-size: 10px;
  letter-spacing: 3px;
  padding: 3px 0;
}
