@charset "UTF-8";
/*
Theme Name: Cocoon Child
Theme URI: https://wp-cocoon.com/
Description: omiwork.com 自然とたき火（ナチュラル×アクティブ・2026デザイン）
Author: omiwork
Template: cocoon-master
Version: 2.0.0
*/

@import url("keyframes.css");

/* ==========================================================================
   1. デザインシステム変数 & ベース設定
   ========================================================================== */
:root {
  --c-forest: #2F4A3A;     /* 深い森のグリーン（メインブランド色） */
  --c-forest-dark: #1E3326;/* 森の影・濃色 */
  --c-moss: #5E8254;       /* 苔・若葉のグリーン（リンク・サブアクセント） */
  --c-moss-light: #EBF3E8; /* 苔の淡色（背景ハイライト） */
  --c-sand: #F7F4EC;       /* 生成り・和紙の淡色（全体背景） */
  --c-sand-card: #FFFFFF;  /* カード背景色（白） */
  --c-bark: #8B6B4A;       /* 樹皮・アースブラウン（罫線・補助情報） */
  --c-bark-light: #E8E0D2; /* 薄い樹皮（境界線） */
  --c-ember: #C8553D;      /* たき火・ハンコの朱色（CTA・グロー） */
  --c-ember-glow: rgba(200, 85, 61, 0.22);
  --c-ink: #262724;        /* 墨・黒インク（本文フォント） */
  --c-ink-muted: #676964;  /* 補助文字色 */

  --font-heading: "Zen Maru Gothic", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  --font-body: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;

  --radius-sm: 8px;
  --radius-md: 16px;
  --radius-lg: 24px;
  --radius-full: 9999px;

  --shadow-subtle: 0 2px 6px rgba(47, 74, 58, 0.05);
  --shadow-card: 0 4px 20px -4px rgba(47, 74, 58, 0.12), 0 1px 3px rgba(139, 107, 74, 0.08);
  --shadow-hover: 0 16px 36px -8px rgba(47, 74, 58, 0.24), 0 2px 6px rgba(200, 85, 61, 0.15);

  --ease-spring: cubic-bezier(0.2, 0.9, 0.3, 1.2);
  --ease-smooth: cubic-bezier(0.22, 1, 0.36, 1);
}

/* 全体背景（紙の微細テクスチャ） */
body {
  background-color: var(--c-sand) !important;
  background-image: url("images/paper.svg");
  background-repeat: repeat;
  color: var(--c-ink);
  font-family: var(--font-body);
  line-height: 1.85;
  letter-spacing: 0.03em;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

/* 見出しフォント統一（温かみのある丸ゴシック） */
h1, h2, h3, h4, h5, h6,
.entry-title, .card-title, .site-title,
.widget-title, .author-name {
  font-family: var(--font-heading) !important;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--c-forest-dark);
}

/* ==========================================================================
   2. ヘッダー（すりガラス＆スクロール固定）
   ========================================================================== */
.header-container {
  background: rgba(247, 244, 236, 0.88) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--c-bark-light);
  transition: all 0.35s var(--ease-smooth);
}

.header-container.is-scrolled {
  background: rgba(255, 255, 255, 0.94) !important;
  box-shadow: 0 4px 18px rgba(47, 74, 58, 0.08);
  border-bottom-color: rgba(94, 130, 84, 0.2);
}

.site-name-text {
  color: var(--c-forest) !important;
  font-size: 1.6rem;
  font-weight: 700;
}

/* ナビゲーションメニュー */
.navi ul.menu-horizontal > li > a {
  color: var(--c-forest-dark) !important;
  font-weight: 600;
  padding: 12px 18px;
  position: relative;
  transition: color 0.25s;
}

.navi ul.menu-horizontal > li > a::after {
  content: "";
  position: absolute;
  bottom: 4px;
  left: 50%;
  width: 0;
  height: 2px;
  background: var(--c-ember);
  transition: all 0.3s var(--ease-spring);
  transform: translateX(-50%);
  border-radius: var(--radius-full);
}

.navi ul.menu-horizontal > li > a:hover::after {
  width: 70%;
}

.navi ul.menu-horizontal > li > a:hover {
  color: var(--c-ember) !important;
  background: transparent !important;
}

/* ==========================================================================
   3. ヒーローセクション（レイヤード＆キネティック）
   ========================================================================== */
.omi-hero {
  position: relative;
  min-height: 480px;
  padding: 60px 24px 80px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  text-align: center;
  background: #1e3326;
  margin-bottom: 40px;
  border-bottom: 3px solid var(--c-ember);
}

/* 空のグラデーションサイクル */
.omi-hero__sky {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #1b2e22 0%, #2f4a3a 35%, #476a54 70%, #856149 100%);
  background-size: 200% 200%;
  animation: skyCycle 45s ease infinite alternate;
  z-index: 1;
}

/* 山並み・森のレイヤー */
.omi-hero__layer {
  position: absolute;
  bottom: 0;
  left: -5%;
  width: 110%;
  height: auto;
  pointer-events: none;
}

.omi-hero__mountains-back {
  z-index: 2;
  animation: driftSlow 35s ease-in-out infinite alternate;
  height: 240px;
}

.omi-hero__mountains-front {
  z-index: 3;
  animation: driftFast 25s ease-in-out infinite alternate;
  height: 190px;
}

.omi-hero__forest {
  z-index: 4;
  height: 90px;
}

/* ホタルの光 */
.omi-hero__fireflies {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 5;
}

.omi-firefly {
  position: absolute;
  left: var(--x, 50%);
  top: var(--y, 50%);
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #FFE885;
  box-shadow: 0 0 10px 2px rgba(255, 232, 133, 0.8);
  animation: fireflyPulse 5s ease-in-out infinite;
  animation-delay: var(--d, 0s);
}

/* ヒーローコンテンツ（最前面） */
.omi-hero__content {
  position: relative;
  z-index: 10;
  max-width: 960px;
  margin: 0 auto;
  color: #FFFFFF;
}

/* ハンコロゴ */
.omi-hero__brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
}

.omi-hero__hanko-wrap {
  display: inline-block;
  padding: 6px;
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.08);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.omi-hero__hanko {
  display: block;
  width: 88px;
  height: auto;
  animation: hankoStamp 1.1s var(--ease-spring) both;
  filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.35));
}

.omi-hero__site-title {
  color: #FFFFFF !important;
  font-size: 2.2rem;
  margin: 0;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.45);
}

/* キャッチコピー（キネティックタイポグラフィ） */
.omi-hero__copy {
  font-family: var(--font-heading);
  font-size: clamp(1.4rem, 4.2vw, 2.3rem);
  font-weight: 700;
  color: #FFFFFF;
  margin: 0 0 8px;
  letter-spacing: 0.08em;
  text-shadow: 0 3px 12px rgba(0, 0, 0, 0.5);
  line-height: 1.4;
}

/* 1文字ごとのアニメーション要素 */
.omi-char {
  display: inline-block;
  animation: charRise 0.7s var(--ease-spring) both;
  animation-delay: calc(var(--i, 0) * 0.045s + 0.35s);
}

.omi-hero__sub {
  font-size: 1rem;
  color: rgba(255, 255, 255, 0.85);
  margin: 0 0 32px;
  letter-spacing: 0.05em;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.4);
}

/* カテゴリーバッジ群 */
.omi-hero__cats {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  max-width: 820px;
  margin: 0 auto;
}

.omi-cat-card {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 18px;
  background: rgba(255, 255, 255, 0.14);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: var(--radius-md);
  color: #FFFFFF !important;
  text-decoration: none !important;
  transition: all 0.3s var(--ease-spring);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15);
}

.omi-cat-card:hover {
  background: rgba(255, 255, 255, 0.94);
  color: var(--c-forest-dark) !important;
  border-color: #FFFFFF;
  transform: translateY(-4px) scale(1.04);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.25), 0 0 16px var(--c-ember-glow);
}

.omi-cat-card__icon {
  font-size: 1.35rem;
}

.omi-cat-card__text {
  display: flex;
  flex-direction: column;
  text-align: left;
}

.omi-cat-card__name {
  font-size: 0.92rem;
  font-weight: 700;
  line-height: 1.2;
}

.omi-cat-card__desc {
  font-size: 0.72rem;
  opacity: 0.85;
}

.omi-cat-card:hover .omi-cat-card__desc {
  color: var(--c-forest);
  opacity: 1;
}

/* ==========================================================================
   4. 記事カード（3Dチルト＆インタラクティブ・グロー）
   ========================================================================== */
.main {
  padding-top: 10px;
}

/* Cocoon 記事カードラッパー */
.entry-card-wrap,
.related-entry-card-wrap {
  position: relative;
  background: var(--c-sand-card) !important;
  border-radius: var(--radius-md) !important;
  border: 1px solid var(--c-bark-light) !important;
  box-shadow: var(--shadow-card) !important;
  overflow: hidden;
  margin-bottom: 24px !important;
  transform: perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) translateZ(0);
  transition: transform 0.4s var(--ease-smooth), box-shadow 0.4s var(--ease-smooth), border-color 0.4s;
}

/* カーソル追従ラジアルグロー演出 */
.entry-card-wrap::after,
.related-entry-card-wrap::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  background: radial-gradient(320px circle at var(--mx, 50%) var(--my, 50%), rgba(200, 85, 61, 0.16), transparent 70%);
  opacity: 0;
  transition: opacity 0.3s ease;
  z-index: 5;
}

.entry-card-wrap:hover::after,
.related-entry-card-wrap:hover::after {
  opacity: 1;
}

.entry-card-wrap:hover,
.related-entry-card-wrap:hover {
  box-shadow: var(--shadow-hover) !important;
  border-color: rgba(94, 130, 84, 0.5) !important;
}

/* サムネイル画像の拡大演出 */
.entry-card-thumb img,
.related-entry-card-thumb img {
  border-radius: var(--radius-sm);
  transition: transform 0.5s var(--ease-smooth);
}

.entry-card-wrap:hover .entry-card-thumb img,
.related-entry-card-wrap:hover .related-entry-card-thumb img {
  transform: scale(1.05);
}

/* カテゴリーリボン・ラベル */
.cat-label {
  background-color: var(--c-forest) !important;
  color: #FFFFFF !important;
  font-size: 0.75rem;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: var(--radius-full);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
  transition: background-color 0.25s;
}

.entry-card-wrap:hover .cat-label {
  background-color: var(--c-ember) !important;
}

/* 記事タイトル */
.entry-card-title,
.entry-title {
  color: var(--c-forest-dark) !important;
  transition: color 0.25s;
}

.entry-card-wrap:hover .entry-card-title {
  color: var(--c-ember) !important;
}

/* 記事メタ情報（投稿日など） */
.post-date, .post-update {
  color: var(--c-bark) !important;
  font-size: 0.82rem;
}

/* ==========================================================================
   5. 記事本文・見出し装飾（ナチュラルスタイル）
   ========================================================================== */
.article {
  background: var(--c-sand-card);
  border-radius: var(--radius-lg);
  padding: 36px 32px;
  box-shadow: var(--shadow-card);
  border: 1px solid var(--c-bark-light);
}

/* 見出し2（H2）：左に太い森の帯＋下線 */
.article h2 {
  position: relative;
  font-size: 1.55rem;
  padding: 12px 18px 12px 22px;
  background: linear-gradient(to right, var(--c-moss-light), transparent);
  border-left: 6px solid var(--c-forest);
  border-bottom: 1px dashed var(--c-bark-light);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  margin: 48px 0 24px;
}

/* 見出し3（H3）：下線＋アクセントのドット */
.article h3 {
  position: relative;
  font-size: 1.3rem;
  padding: 8px 0 8px 14px;
  border-left: 4px solid var(--c-moss);
  border-bottom: 2px solid var(--c-bark-light);
  margin: 36px 0 18px;
}

/* 引用ボックス */
blockquote {
  position: relative;
  padding: 20px 24px;
  margin: 28px 0;
  background: #F8F6F0;
  border-left: 4px solid var(--c-bark);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  font-style: italic;
  color: var(--c-ink-muted);
}

/* ボタン（3D＆グロー） */
.btn, .btn-primary, input[type="submit"] {
  background: var(--c-forest) !important;
  color: #FFFFFF !important;
  border-radius: var(--radius-full) !important;
  padding: 12px 28px !important;
  font-weight: 700;
  letter-spacing: 0.05em;
  border: none !important;
  box-shadow: 0 4px 14px rgba(47, 74, 58, 0.25) !important;
  transition: all 0.3s var(--ease-spring) !important;
}

.btn:hover, .btn-primary:hover, input[type="submit"]:hover {
  background: var(--c-ember) !important;
  transform: translateY(-2px) scale(1.03);
  box-shadow: 0 8px 22px rgba(200, 85, 61, 0.35) !important;
}

/* ==========================================================================
   6. フッター
   ========================================================================== */
.footer-container {
  background: var(--c-forest-dark) !important;
  color: #D2DBCF !important;
  border-top: 4px solid var(--c-moss);
  padding: 48px 20px 32px;
  margin-top: 60px;
}

.footer-container a {
  color: #E3EBE0 !important;
}

.footer-container a:hover {
  color: var(--c-ember) !important;
}

/* ==========================================================================
   7. 2026年 View Transitions（クロスドキュメントページ遷移）
   ========================================================================== */
@view-transition {
  navigation: auto;
}

::view-transition-old(root) {
  animation: 0.25s ease-out both vtFadeOut;
}

::view-transition-new(root) {
  animation: 0.38s var(--ease-smooth) both vtRiseIn;
}

/* ==========================================================================
   8. アクセシビリティ（prefers-reduced-motion）
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  @view-transition {
    navigation: none;
  }
  .entry-card-wrap {
    transform: none !important;
  }
}
