/* 和風神社 共通スタイル */

body {
  font-family: var(--font-serif);
  font-size: var(--font-size-lg);
  line-height: 1.8;
  color: var(--color-sumi);
  background-color: var(--color-bg);
  /* 青海波パターン (data URI / 朱赤の薄い線) */
  background-image:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='80' height='40' viewBox='0 0 80 40'><g fill='none' stroke='%23B22222' stroke-opacity='0.06' stroke-width='1.2'><circle cx='0' cy='40' r='20'/><circle cx='40' cy='40' r='20'/><circle cx='80' cy='40' r='20'/><circle cx='-20' cy='20' r='20'/><circle cx='20' cy='20' r='20'/><circle cx='60' cy='20' r='20'/><circle cx='100' cy='20' r='20'/></g></svg>");
  background-repeat: repeat;
}

/* ============================================================
   ヘッダー — 御簾 + 鳥居 + サイトタイトル
   ============================================================ */
.site-header {
  position: relative;
  text-align: center;
  padding: 80px var(--space-md) var(--space-xl);
}

/* 御簾 — 朱赤の縦縞 + 金色の縁 + 中央の房飾り */
.misu {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 40px;
  background:
    repeating-linear-gradient(
      90deg,
      var(--color-shu) 0,
      var(--color-shu) 5px,
      var(--color-shu-dark) 5px,
      var(--color-shu-dark) 7px
    );
  border-bottom: 4px solid var(--color-gold);
  box-shadow: 0 6px 12px rgba(178, 34, 34, 0.18);
}
.misu::after {
  content: '';
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  width: 14px;
  height: 22px;
  background: var(--color-gold);
  clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
  margin-top: -2px;
}

.torii-wrap {
  display: flex;
  justify-content: center;
  margin-top: var(--space-md);
}

.torii {
  width: 220px;
  height: auto;
  color: var(--color-shu);
  filter: drop-shadow(0 2px 4px rgba(178, 34, 34, 0.25));
}

.site-title {
  font-family: var(--font-display);
  font-size: var(--font-size-display);
  font-weight: 700;
  color: var(--color-sumi);
  margin-top: var(--space-md);
  letter-spacing: 0.25em;
  text-indent: 0.25em;
}

.site-domain {
  margin-top: var(--space-xs);
  font-size: 0.875rem;
  color: var(--color-shu);
  letter-spacing: 0.15em;
}

.today-date {
  margin-top: var(--space-md);
  font-size: var(--font-size-lg);
  color: var(--color-sumi-soft);
}

/* ============================================================
   メインコンテナ
   ============================================================ */
.container {
  max-width: 720px;
  margin: 0 auto;
  padding: var(--space-lg) var(--space-md) var(--space-xl);
}

/* カード — 和紙生成り背景 + 朱赤の細枠 + 隅に小さな桜 */
.card {
  position: relative;
  background: var(--color-bg);
  border: 2px solid var(--color-shu);
  border-radius: var(--radius-card);
  padding: var(--space-lg);
  box-shadow: var(--shadow-card);
  margin-bottom: var(--space-lg);
}
.card::before {
  content: '❀';
  position: absolute;
  top: -12px;
  left: 16px;
  background: var(--color-bg);
  padding: 0 6px;
  color: var(--color-shu);
  font-size: 14px;
  letter-spacing: 0;
}

/* 見出し */
.honmei-title {
  font-family: var(--font-display);
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--color-shu);
  border-bottom: 1px solid var(--color-gold);
  padding-bottom: var(--space-sm);
  margin-bottom: var(--space-md);
  text-align: center;
  letter-spacing: 0.1em;
}

.headline {
  font-family: var(--font-display);
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--color-sumi);
  text-align: center;
  margin: var(--space-lg) 0;
  padding: var(--space-md) var(--space-sm);
  border-top: 1px solid var(--color-gold-light);
  border-bottom: 1px solid var(--color-gold-light);
  letter-spacing: 0.05em;
  line-height: 1.6;
}

.overall-text {
  font-size: var(--font-size-lg);
  line-height: 2;
  margin-bottom: var(--space-lg);
}

/* セクション見出し — 左に小さな◆ */
.card-section-title {
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--color-shu);
  margin: var(--space-lg) 0 var(--space-sm);
  position: relative;
  padding-left: 1.4em;
  letter-spacing: 0.1em;
}
.card-section-title::before {
  content: '◆';
  position: absolute;
  left: 0;
  top: 0.1em;
  color: var(--color-gold);
  font-size: 0.85em;
}

/* ============================================================
   行動表 (時間帯 × 吉凶)
   ============================================================ */
.time-slots {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-sm);
  margin: var(--space-md) 0;
}

.time-slot {
  text-align: center;
  background: var(--color-bg-dark);
  border: 1px solid var(--color-gold-light);
  border-radius: var(--radius-card);
  padding: var(--space-md) var(--space-sm);
}

.time-slot .label {
  display: block;
  font-size: 0.95rem;
  color: var(--color-sumi-soft);
  margin-bottom: 6px;
  letter-spacing: 0.1em;
}

.time-slot .mark {
  display: inline-block;
  font-size: 1.5rem;
  font-weight: 700;
  font-family: var(--font-display);
}

.mark-kichi {
  color: var(--color-gold);
}
.mark-kyou {
  color: var(--color-shu);
}

/* ============================================================
   やるべき / やらない方が
   ============================================================ */
.todo-list,
.avoid-list {
  margin: 0;
}

.todo-list li,
.avoid-list li {
  position: relative;
  padding: var(--space-xs) 0 var(--space-xs) 1.6em;
  line-height: 1.7;
}

.todo-list li::before {
  content: '◯';
  color: var(--color-gold);
  position: absolute;
  left: 0;
  top: var(--space-xs);
  font-weight: 700;
}

.avoid-list li::before {
  content: '×';
  color: var(--color-shu);
  position: absolute;
  left: 0;
  top: var(--space-xs);
  font-size: 1.2em;
  font-weight: 700;
}

/* ============================================================
   ラッキー
   ============================================================ */
.lucky {
  display: grid;
  grid-template-columns: 90px 1fr;
  row-gap: var(--space-sm);
  background: var(--color-bg-dark);
  padding: var(--space-md);
  border-radius: var(--radius-card);
}
.lucky dt {
  color: var(--color-shu);
  font-weight: 600;
  letter-spacing: 0.1em;
}
.lucky dd {
  margin: 0;
  color: var(--color-sumi);
}

/* ============================================================
   ステータスカード (読込中 / エラー)
   ============================================================ */
.status-card {
  text-align: center;
  border-color: var(--color-gold);
  padding: var(--space-xl) var(--space-md);
}
.status-card p {
  color: var(--color-sumi-soft);
}

/* ============================================================
   フッター
   ============================================================ */
.site-footer {
  position: relative;
  text-align: center;
  padding: var(--space-xl) var(--space-md);
  background-color: var(--color-bg-dark);
  border-top: 4px solid var(--color-shu);
  font-size: 0.9rem;
  color: var(--color-sumi-soft);
  margin-top: var(--space-xl);
}
.site-footer .operator {
  font-weight: 600;
  color: var(--color-shu);
  margin-bottom: var(--space-xs);
  letter-spacing: 0.1em;
}
.site-footer a {
  color: var(--color-shu);
  text-decoration: underline;
}
.disclaimer {
  font-size: 0.825rem;
  margin: var(--space-md) auto;
  max-width: 600px;
  line-height: 1.7;
  color: var(--color-sumi-soft);
}
.data-source {
  font-size: 0.75rem;
  color: #888;
}

/* ============================================================
   モーダル — 本命星設定
   ============================================================ */
.modal {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-md);
}
.modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(26, 26, 26, 0.6);
  backdrop-filter: blur(2px);
}
.modal-card {
  position: relative;
  background: var(--color-bg);
  border: 3px solid var(--color-shu);
  border-radius: var(--radius-card);
  padding: var(--space-lg);
  max-width: 480px;
  width: 100%;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.35);
}
.modal-card::before {
  content: '⛩';
  position: absolute;
  top: -18px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--color-bg);
  padding: 0 10px;
  color: var(--color-shu);
  font-size: 24px;
}
.modal-card h2 {
  font-family: var(--font-display);
  color: var(--color-shu);
  font-size: 1.5rem;
  margin-bottom: var(--space-md);
  text-align: center;
  letter-spacing: 0.15em;
}
.modal-card > p {
  text-align: center;
  margin-bottom: var(--space-lg);
  color: var(--color-sumi-soft);
  font-size: 0.95rem;
  line-height: 1.7;
}

.birth-form {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-xs);
  margin-bottom: var(--space-md);
  flex-wrap: wrap;
}
.birth-form select {
  padding: 6px 10px;
  font-size: 1rem;
  border: 1px solid var(--color-shu);
  border-radius: var(--radius-card);
  font-family: var(--font-serif);
  background: white;
  color: var(--color-sumi);
  min-width: 70px;
}
.birth-form .unit {
  color: var(--color-sumi-soft);
}

.honmei-preview {
  text-align: center;
  margin: var(--space-md) 0 var(--space-lg);
  min-height: 2.5em;
  display: flex;
  align-items: center;
  justify-content: center;
}
.honmei-preview .placeholder {
  color: #999;
  font-size: 0.9rem;
}
.honmei-preview .result {
  color: var(--color-sumi);
  font-size: 1.05rem;
}
.honmei-preview .result strong {
  display: inline-block;
  color: var(--color-shu);
  font-size: 1.5rem;
  font-family: var(--font-display);
  font-weight: 700;
  margin: 0 0.25em;
  letter-spacing: 0.1em;
}

.modal-actions {
  display: flex;
  gap: var(--space-sm);
  justify-content: center;
  margin-top: var(--space-md);
}
.btn {
  padding: var(--space-sm) var(--space-lg);
  font-size: 1rem;
  font-family: var(--font-serif);
  border-radius: var(--radius-card);
  border: 2px solid var(--color-shu);
  background: var(--color-bg);
  color: var(--color-sumi);
  transition: background 0.15s, color 0.15s;
}
.btn:hover:not(:disabled) {
  background: var(--color-shu);
  color: var(--color-bg);
}
.btn-primary {
  background: var(--color-shu);
  color: var(--color-bg);
}
.btn-primary:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.btn-ghost {
  border-color: transparent;
  color: var(--color-sumi-soft);
}
.btn-ghost:hover {
  background: var(--color-bg-dark);
  color: var(--color-sumi);
}

/* ============================================================
   グローバルナビ — 全ページ最上部のシンプルな帯
   ============================================================ */
.global-nav {
  position: relative;
  z-index: 5;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--space-md);
  padding: 50px var(--space-md) var(--space-sm);
  background: transparent;
  font-size: 0.95rem;
  letter-spacing: 0.1em;
}
.global-nav a {
  color: var(--color-sumi-soft);
  padding: var(--space-xs) var(--space-sm);
  border-bottom: 1px solid transparent;
  transition: color 0.15s, border-color 0.15s;
}
.global-nav a:hover {
  color: var(--color-shu);
  border-bottom-color: var(--color-gold);
}
.global-nav a.is-current {
  color: var(--color-shu);
  border-bottom-color: var(--color-shu);
  font-weight: 600;
}
/* グローバルナビがあるとき、ヘッダーの上余白は不要（御簾はそのまま） */
.has-global-nav .site-header {
  padding-top: var(--space-md);
}

/* ============================================================
   page-back — 「← 戻る」 戻りリンク (header 下)
   ============================================================ */
.page-back {
  max-width: 720px;
  margin: 0 auto;
  padding: 0 var(--space-md);
}
.page-back a {
  display: inline-block;
  color: var(--color-sumi-soft);
  font-size: 0.95rem;
  padding: var(--space-xs) 0;
  letter-spacing: 0.05em;
}
.page-back a:hover {
  color: var(--color-shu);
}

/* ============================================================
   機能ナビ — 御札風カード (index 中央下)
   ============================================================ */
.func-nav {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-md);
  margin: var(--space-xl) 0 var(--space-lg);
}

.ofuda {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  background: linear-gradient(180deg, #FFFDF5 0%, var(--color-bg) 100%);
  border: 1.5px solid var(--color-shu);
  border-radius: 2px;
  padding: var(--space-lg) var(--space-sm) var(--space-md);
  color: var(--color-sumi);
  transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
  box-shadow: 0 1px 4px rgba(178, 34, 34, 0.08);
  /* 御札のシルエット — 上端が三角に切れる */
  clip-path: polygon(50% 0, 100% 8%, 100% 100%, 0 100%, 0 8%);
}
.ofuda::before {
  content: '';
  position: absolute;
  top: 6px; left: 6px; right: 6px; bottom: 6px;
  border: 1px solid var(--color-gold-light);
  pointer-events: none;
  clip-path: polygon(50% 0, 100% 8%, 100% 100%, 0 100%, 0 8%);
}
.ofuda:hover {
  transform: translateY(-3px);
  border-color: var(--color-gold);
  box-shadow: 0 6px 16px rgba(201, 161, 74, 0.35);
}
.ofuda .icon {
  font-size: 2rem;
  line-height: 1;
  margin-top: var(--space-sm);
  margin-bottom: var(--space-sm);
}
.ofuda .name {
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--color-shu);
  margin-bottom: var(--space-xs);
  letter-spacing: 0.15em;
}
.ofuda .desc {
  font-size: 0.8rem;
  color: var(--color-sumi-soft);
  line-height: 1.6;
  padding: 0 var(--space-xs);
}

/* ============================================================
   ページ共通: シンプルなセクション見出し (about / setup / action 用)
   ============================================================ */
.section-heading {
  font-family: var(--font-display);
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--color-shu);
  margin: var(--space-xl) 0 var(--space-md);
  padding-bottom: var(--space-sm);
  border-bottom: 1px solid var(--color-gold);
  letter-spacing: 0.15em;
  text-align: center;
}
.section-heading:first-child {
  margin-top: 0;
}

/* ============================================================
   setup ページ
   ============================================================ */
.current-honmei {
  text-align: center;
  background: var(--color-bg-dark);
  border: 1px solid var(--color-gold-light);
  border-radius: var(--radius-card);
  padding: var(--space-lg);
  margin-bottom: var(--space-lg);
}
.current-honmei .label {
  display: block;
  font-size: 0.9rem;
  color: var(--color-sumi-soft);
  letter-spacing: 0.15em;
  margin-bottom: var(--space-sm);
}
.current-honmei .star {
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 700;
  color: var(--color-shu);
  letter-spacing: 0.15em;
  display: block;
}
.current-honmei .birth {
  margin-top: var(--space-sm);
  font-size: 0.9rem;
  color: var(--color-sumi-soft);
}
.setup-form {
  margin-top: var(--space-md);
}
.setup-form .birth-form {
  margin-bottom: var(--space-md);
}
.setup-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  justify-content: center;
  margin-top: var(--space-md);
}
.btn-danger {
  border-color: var(--color-sumi);
  color: var(--color-sumi);
  background: transparent;
}
.btn-danger:hover:not(:disabled) {
  background: var(--color-sumi);
  color: var(--color-bg);
}

/* ============================================================
   action ページ — 時間帯カード
   ============================================================ */
.action-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  margin-top: var(--space-md);
}
.action-card {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: var(--space-md);
  align-items: center;
  background: var(--color-bg);
  border: 1.5px solid var(--color-gold-light);
  border-radius: var(--radius-card);
  padding: var(--space-md) var(--space-lg);
  transition: border-color 0.2s, background 0.2s;
}
.action-card.is-now {
  border-color: var(--color-shu);
  background: linear-gradient(180deg, #FFF8E7 0%, #F8E8C9 100%);
  box-shadow: 0 2px 12px rgba(178, 34, 34, 0.18);
  position: relative;
}
.action-card.is-now::after {
  content: '今';
  position: absolute;
  top: -10px;
  right: 12px;
  background: var(--color-shu);
  color: var(--color-bg);
  font-size: 0.75rem;
  padding: 2px 10px;
  border-radius: 999px;
  letter-spacing: 0.1em;
}
.action-card .slot {
  text-align: center;
}
.action-card .slot .name {
  font-family: var(--font-display);
  font-size: 1.4rem;
  color: var(--color-shu);
  letter-spacing: 0.2em;
  display: block;
}
.action-card .slot .hours {
  font-size: 0.75rem;
  color: var(--color-sumi-soft);
  display: block;
  margin-top: 2px;
}
.action-card .body {
  border-left: 1px solid var(--color-gold-light);
  padding-left: var(--space-md);
}
.action-card .body .mark {
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: 700;
  margin-right: var(--space-sm);
}
.action-card .body .text {
  font-size: 0.95rem;
  color: var(--color-sumi);
  margin-top: var(--space-xs);
}

/* ============================================================
   about ページ
   ============================================================ */
.about-section {
  margin-bottom: var(--space-xl);
}
.about-section p {
  margin: var(--space-sm) 0;
  line-height: 1.9;
  color: var(--color-sumi);
}
.about-section ul {
  list-style: disc inside;
  margin: var(--space-sm) 0;
  padding-left: var(--space-sm);
}
.about-section ul li {
  line-height: 1.9;
  color: var(--color-sumi);
}
.about-section a {
  color: var(--color-shu);
  text-decoration: underline;
}

/* ============================================================
   レスポンシブ
   ============================================================ */
@media (max-width: 480px) {
  .site-title {
    font-size: 1.7rem;
    letter-spacing: 0.15em;
  }
  .torii {
    width: 170px;
  }
  .container {
    padding: var(--space-md) var(--space-sm);
  }
  .card {
    padding: var(--space-md);
  }
  .headline {
    font-size: 1.3rem;
  }
  .lucky {
    grid-template-columns: 70px 1fr;
  }
  .time-slot {
    padding: var(--space-sm) var(--space-xs);
  }
  .time-slot .label {
    font-size: 0.8rem;
  }
  .time-slot .mark {
    font-size: 1.3rem;
  }
  .global-nav {
    gap: var(--space-sm);
    font-size: 0.85rem;
    padding: 50px var(--space-sm) var(--space-xs);
  }
  .func-nav {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-sm);
  }
  .ofuda {
    padding: var(--space-md) var(--space-xs) var(--space-sm);
  }
  .ofuda .icon {
    font-size: 1.6rem;
  }
  .ofuda .name {
    font-size: 1rem;
  }
  .ofuda .desc {
    font-size: 0.75rem;
  }
  .action-card {
    grid-template-columns: 60px 1fr;
    padding: var(--space-md);
  }
  .action-card .body {
    padding-left: var(--space-sm);
  }
  .action-card .slot .name {
    font-size: 1.1rem;
  }
}
