/*
Theme Name: Cocoon Child
Description: Cocoon child theme for Parallel Farm
Theme URI: https://wp-cocoon.com/cocoon-child/
Author: Parallel Farm
Author URI: https://www.parallel-farm.info/
Template: cocoon-master
Version: 2.0.0
*/

/* ============================================================
   Parallel Farm Design Tokens (Refined Olive)
============================================================ */
html, :root {
  --color-bg:        #faf7f0;
  --color-section:   #f0ebe0;
  --color-card:      #ffffff;
  --color-text:      #2a2a28;
  --color-muted:     #6b6b65;
  --color-main:      #4a6741;
  --color-deep:      #2f4429;
  --color-accent:    #8b5a2b;
  --color-border:    #e8e2d4;

  --fs-h1: 1.75rem;
  --fs-h2: 1.375rem;
  --fs-h3: 1.125rem;
  --fs-body: 1rem;
  --fs-small: 0.875rem;

  --space-xs: 8px;
  --space-sm: 16px;
  --space-md: 24px;
  --space-lg: 40px;
  --space-xl: 64px;
}
@media (min-width: 768px) {
  html, :root {
    --fs-h1: 2.25rem;
    --fs-h2: 1.75rem;
    --fs-h3: 1.25rem;
  }
}

/* ============================================================
   Base Colors
============================================================ */
body, .body {
  background-color: var(--color-bg);
  color: var(--color-text);
}
#main, .main, #content, #content-in {
  background-color: transparent;
}

/* リンク：アーストーン → ホバーでオリーブグリーン */
.article a, .entry-content a, a:not(.btn):not(.wp-block-button__link) {
  color: var(--color-accent);
  text-underline-offset: 0.2em;
}
.article a:hover, .entry-content a:hover {
  color: var(--color-main);
}

/* ============================================================
   Typography（本文・見出し：明朝 / UIパーツ：ゴシック）
============================================================ */
body, .body, p, li, dd, blockquote, .entry-content,
h1, h2, h3, h4, h5, h6,
.entry-title, .article-title, .widget-entry-card-title, .entry-card-title,
.page-title, .post-title {
  font-family: "Noto Serif JP", "Yu Mincho", "游明朝", "ヒラギノ明朝 ProN", serif;
  font-weight: 400;
}
body, p, li, dd { line-height: 1.8; }
h1, h2, h3, h4, h5, h6 { line-height: 1.5; letter-spacing: 0.02em; }

h1, .entry-title, .page-title { font-size: var(--fs-h1); }
h2 { font-size: var(--fs-h2); }
h3 { font-size: var(--fs-h3); }
body { font-size: var(--fs-body); }
small, .post-meta, time { font-size: var(--fs-small); }

/* UIパーツのみゴシック */
.btn, button, .cat-label, .post-meta, .breadcrumb, .breadcrumbs,
.menu, .navi, .nav, .menu-item, .menu-header, .menu-footer,
.wp-block-button__link, input, select, textarea,
.pf-cat-label, .pf-recent-date, .pf-cat-count,
.pf-note-link, .pf-footer-sns-link {
  font-family: "Noto Sans JP", "Yu Gothic", "游ゴシック", "ヒラギノ角ゴ ProN", sans-serif;
  font-weight: 400;
}

/* ============================================================
   Layout & Spacing
============================================================ */
.main, .container, .article {
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
  padding-top: var(--space-lg);
  padding-bottom: var(--space-lg);
}
section, .section, .widget {
  padding-top: var(--space-xl);
  padding-bottom: var(--space-xl);
}
.entry-content > * + * { margin-top: var(--space-md); }
.entry-content h2 { margin-top: var(--space-xl); margin-bottom: var(--space-md); }
.entry-content h3 { margin-top: var(--space-lg); margin-bottom: var(--space-sm); }

@media (max-width: 767px) {
  .main, .container, .article {
    padding-left: var(--space-sm);
    padding-right: var(--space-sm);
    padding-top: var(--space-md);
    padding-bottom: var(--space-md);
  }
  section, .section { padding-top: var(--space-lg); padding-bottom: var(--space-lg); }
}

/* ============================================================
   Header
============================================================ */
#header-container { background-color: var(--color-bg); }
.header { border-bottom: 1px solid var(--color-border); }
.site-name-text {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  color: var(--color-text);
  letter-spacing: 0.04em;
}
.tagline { display: none; } /* 化けたタグラインを非表示（仕様書4-2の暫定対処） */

/* ヘッダーメニュー */
.menu-header .menu-item a, .menu-pc .menu-item a {
  color: var(--color-text);
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
}
.menu-header .menu-item.current-menu-item > a,
.menu-pc .menu-item.current-menu-item > a {
  border-bottom: 2px solid var(--color-main);
  color: var(--color-main);
}

/* ============================================================
   パンくず：TOP のみ非表示
============================================================ */
body.home .breadcrumb, body.home .breadcrumbs, body.home #breadcrumb { display: none; }

/* ============================================================
   不要要素を非表示（前回ミスの是正）
============================================================ */

/* TOPページの h1 重複「Parallel Farm」を非表示 */
body.home .entry-title,
body.page-id-55 .entry-title { display: none; }

/* SNSシェアボタン：すべて非表示 */
.sns-share, .sns-share-buttons, .sns-share-message,
.sns-follow, .sns-follow-buttons, .sns-follow-message,
.share-button-list, .follow-button-list,
#author-box, .author-box {
  display: none !important; /* Cocoonがいくつかの場所で再表示するため */
}

/* 投稿日・更新日（固定ページ） */
.post-date, .post-update, .date-tags, .post-meta {
  display: none;
}
/* 通常記事では post-meta を表示し直す（個別記事ページのみ）*/
.single-post .post-meta { display: block; }

/* デフォルトのpear（梨）画像など */
.no-image, .no_image, .attachment-post-thumbnail.wp-post-image[src*="no_image"],
.eye-catch img[src*="no_image"], .entry-card-thumb img[src*="no_image"] {
  display: none;
}

/* オリーブ画像の楕円縁取りを解除（TOP用） */
.home img, .page-id-55 img,
.home .wp-block-image img, .page-id-55 .wp-block-image img {
  border-radius: 0 !important;
  clip-path: none !important;
}

/* ============================================================
   Story（わたしの想い）見出しB案ルール
============================================================ */
.page-id-6 h2,
.page-id-6 .entry-content h2 {
  background: none !important;
  background-color: transparent !important;
  border: none !important;
  padding: 0 !important;
  text-align: center;
  color: var(--color-main);
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-size: var(--fs-h2);
  position: relative;
  margin-top: var(--space-xl);
  margin-bottom: var(--space-md);
}
.page-id-6 h2::after {
  content: "";
  display: block;
  width: 40px;
  height: 2px;
  background-color: var(--color-main);
  margin: 12px auto 0;
}
.page-id-6 h3 {
  text-align: center;
  background: none !important;
  border: none !important;
  padding: 0 !important;
  color: var(--color-main);
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
}

/* ============================================================
   ボタン・タグ・カテゴリラベル
============================================================ */
.btn, button.btn, .wp-block-button__link {
  background-color: var(--color-main);
  color: var(--color-bg);
  border: none;
  border-radius: 4px;
  padding: 10px 20px;
}
.btn:hover, .wp-block-button__link:hover {
  background-color: var(--color-deep);
  color: #fff;
}
.cat-label, a.cat-label {
  background-color: var(--color-main) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 3px;
  padding: 2px 8px;
  font-size: var(--fs-small);
}

/* ============================================================
   セクション見出しユーティリティ（中央＋下に短い緑ライン）
============================================================ */
.pf-section-heading {
  text-align: center;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  color: var(--color-text);
  font-size: var(--fs-h2);
  margin: 0 0 var(--space-md);
  position: relative;
  padding-bottom: 12px;
}
.pf-section-heading::after {
  content: "";
  display: block;
  width: 40px; height: 2px;
  background-color: var(--color-main);
  margin: 12px auto 0;
}

/* カードの見出し：左に縦緑ライン */
.pf-card-heading {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  color: var(--color-text);
  font-size: var(--fs-h3);
  border-left: 3px solid var(--color-main);
  padding-left: 10px;
  margin: 0 0 8px;
  line-height: 1.4;
}

/* ============================================================
   TOP ページ
============================================================ */
.pf-top-hero {
  text-align: center;
  padding: var(--space-xl) var(--space-sm);
}
.pf-top-hero-title {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-size: 2.6rem;
  letter-spacing: 0.04em;
  margin: 0 0 var(--space-sm);
  color: var(--color-text);
}
.pf-top-hero-tagline {
  color: var(--color-muted);
  font-size: var(--fs-body);
  margin: 0 0 var(--space-lg);
  border: none !important;
  background: none !important;
  padding: 0 !important;
}
.pf-top-hero-image {
  max-width: 900px;
  margin: 0 auto;
}
.pf-top-hero-image img {
  width: 100%; height: auto;
  border-radius: 0 !important;
  clip-path: none !important;
}
.pf-top-hero-image .pf-image-placeholder {
  background-color: var(--color-section);
  height: 280px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-muted);
  font-size: var(--fs-small);
}

/* 3カード：栽培の特徴 */
.pf-feature-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-sm);
  margin-top: var(--space-md);
}
.pf-feature-card {
  background-color: var(--color-card);
  border: 1px solid var(--color-border);
  padding: var(--space-md);
  text-decoration: none !important;
  color: var(--color-text);
  display: block;
  transition: transform 0.2s, box-shadow 0.2s;
}
.pf-feature-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(74, 103, 65, 0.08);
}
.pf-feature-card p {
  margin: 0;
  font-size: var(--fs-small);
  color: var(--color-muted);
  line-height: 1.7;
}

/* 2カード：圃場の紹介 */
.pf-field-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-sm);
  margin-top: var(--space-md);
}
.pf-field-card {
  background-color: var(--color-card);
  border: 1px solid var(--color-border);
  padding: var(--space-md);
  text-decoration: none !important;
  color: var(--color-text);
  display: block;
}
.pf-field-card:hover {
  box-shadow: 0 4px 12px rgba(74, 103, 65, 0.08);
}
.pf-field-card p {
  margin: 0;
  font-size: var(--fs-small);
  color: var(--color-muted);
  line-height: 1.7;
}

@media (max-width: 767px) {
  .pf-feature-grid { grid-template-columns: 1fr; }
  .pf-field-grid   { grid-template-columns: 1fr; }
  .pf-top-hero-title { font-size: 2rem; }
}

/* ============================================================
   Farm ページ
============================================================ */
.pf-farm-hero {
  text-align: center;
  padding: var(--space-lg) 0;
}
.pf-farm-title {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-size: var(--fs-h1);
  margin: 0 0 var(--space-xs);
}
.pf-farm-subtitle {
  color: var(--color-muted);
  font-size: var(--fs-small);
  margin: 0 0 var(--space-lg);
}
.pf-farm-feature-row {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: var(--space-md);
  align-items: start;
  margin-bottom: var(--space-lg);
}
.pf-farm-feature-photo {
  background-color: var(--color-section);
  height: 180px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-muted);
  font-size: var(--fs-small);
}
@media (max-width: 767px) {
  .pf-farm-feature-row { grid-template-columns: 1fr; }
  .pf-farm-feature-photo { height: 200px; }
}

/* ============================================================
   Notes ページ
============================================================ */
#pf-notes-wrap { max-width: 900px; margin: 0 auto; padding: 0 var(--space-sm); }
.pf-notes-hero {
  text-align: center;
  padding: var(--space-xl) 0 var(--space-md);
}
.pf-notes-title {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-size: var(--fs-h1);
  margin: 0 0 var(--space-xs);
}
.pf-notes-subtitle {
  color: var(--color-muted);
  font-size: var(--fs-small);
  margin: 0;
}
.pf-note-banner {
  text-align: center;
  margin: var(--space-lg) 0;
}
.pf-note-link {
  display: inline-block;
  padding: 8px 18px;
  border: 1px solid var(--color-border);
  border-radius: 4px;
  color: var(--color-accent);
  font-size: var(--fs-small);
  text-decoration: none;
}
.pf-note-link:hover { background-color: var(--color-section); }

.pf-notes-cat-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-sm);
  margin: var(--space-md) 0 var(--space-xl);
}
.pf-notes-cat-card {
  background-color: var(--color-card);
  border: 1px solid var(--color-border);
  padding: var(--space-md);
  text-decoration: none;
  color: var(--color-text);
  display: block;
  position: relative;
}
.pf-notes-cat-card:hover { box-shadow: 0 4px 12px rgba(74, 103, 65, 0.08); }
.pf-notes-cat-name {
  display: block;
  font-family: "Noto Serif JP", serif;
  font-size: var(--fs-h3);
  color: var(--color-main);
  margin-bottom: 6px;
}
.pf-notes-cat-desc {
  font-size: var(--fs-small);
  color: var(--color-muted);
  line-height: 1.7;
}
.pf-notes-cat-count {
  position: absolute;
  top: var(--space-md);
  right: var(--space-md);
  font-size: var(--fs-small);
  color: var(--color-accent);
}
@media (max-width: 767px) {
  .pf-notes-cat-grid { grid-template-columns: 1fr; }
}

.pf-notes-recent { margin-bottom: var(--space-xl); }
.pf-notes-recent-list { list-style: none; padding: 0; margin: 0; }
.pf-notes-recent-item {
  display: flex;
  gap: var(--space-sm);
  align-items: center;
  padding: var(--space-sm) 0;
  border-bottom: 1px solid var(--color-border);
  flex-wrap: wrap;
}
.pf-notes-recent-title {
  flex: 1;
  color: var(--color-text);
  text-decoration: none;
  font-size: var(--fs-body);
  min-width: 200px;
}
.pf-notes-recent-title:hover { color: var(--color-main); }
.pf-notes-recent-date {
  color: var(--color-muted);
  font-size: var(--fs-small);
  white-space: nowrap;
}

/* ============================================================
   Footer
============================================================ */
#footer, .footer {
  background-color: var(--color-section);
  border-top: 1px solid var(--color-border);
  padding: var(--space-lg) var(--space-sm);
  color: var(--color-muted);
}
#footer .navi-footer ul,
#footer .menu-footer {
  display: flex;
  justify-content: center;
  gap: var(--space-md);
  list-style: none;
  padding: 0;
  margin: 0 0 var(--space-md);
  flex-wrap: wrap;
}
#footer .navi-footer a, #footer .menu-footer a {
  color: var(--color-muted);
  text-decoration: none;
  font-size: var(--fs-small);
}
.navi-footer a[href="#"] {
  cursor: default;
  opacity: 0.6;
  pointer-events: none;
}

.pf-footer-sns {
  display: flex;
  justify-content: center;
  gap: var(--space-sm);
  flex-wrap: wrap;
  margin: var(--space-sm) 0;
}
.pf-footer-sns-link {
  color: var(--color-accent);
  font-size: var(--fs-small);
  text-decoration: none;
  padding: 6px 14px;
  border: 1px solid var(--color-border);
  border-radius: 4px;
}
.pf-footer-sns-link:hover { background-color: var(--color-bg); }

.pf-footer-copyright {
  text-align: center;
  font-size: var(--fs-small);
  color: var(--color-muted);
  margin-top: var(--space-md);
}

/* dmstフォローブロック等の作者ボックス完全削除 */
.author-box, #author-box, .profile, .pf-profile-block { display: none !important; }

/* ============================================================
   TOP ページ追加スタイル
============================================================ */
.pf-top-intro {
  max-width: 720px;
  margin: 40px auto 0;
  text-align: center;
  color: var(--color-text);
}
.pf-top-intro p { margin: 0 0 16px; line-height: 1.9; }
.pf-top-intro p:last-child { margin-bottom: 0; }
.pf-top-section { max-width: 900px; margin: 0 auto; padding: 64px 16px; }
.pf-top-hero .is-style-rounded img,
.pf-top-hero img { border-radius: 0 !important; clip-path: none !important; }

/* TOPページの旧entry-content を非表示（page-home.phpテンプレート使用時は出ない） */
body.home .has-xx-large-font-size,
body.page-id-55 .has-xx-large-font-size { display: none; }


/* ============================================================
   Phase 4: Story ページ
============================================================ */
#pf-story.pf-page {
  max-width: 760px;
  margin: 0 auto;
  padding: var(--space-lg) var(--space-sm);
}
.pf-page-title {
  text-align: center;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-size: var(--fs-h1);
  margin: 0 0 var(--space-xl);
  letter-spacing: 0.06em;
}
.pf-page-subtitle {
  text-align: center;
  color: var(--color-muted);
  font-size: var(--fs-small);
  margin: -32px 0 var(--space-xl);
}

.pf-story-section { margin-bottom: var(--space-xl); }
.pf-story-body p {
  margin: 0 0 var(--space-md);
  line-height: 1.95;
  color: var(--color-text);
}
.pf-story-body .pf-story-conclusion {
  text-align: center;
  margin: var(--space-lg) 0 0;
  color: var(--color-muted);
}

.pf-story-resolution {
  margin: var(--space-xl) 0;
}
.pf-resolution-item {
  text-align: center;
  margin-bottom: var(--space-xl);
}
.pf-resolution-heading {
  background: none !important;
  background-color: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 0 var(--space-sm);
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-size: var(--fs-h2);
  color: var(--color-main);
  text-align: center;
  display: block;
}
.pf-resolution-num {
  display: inline-block;
  margin-right: 0.4em;
  color: var(--color-main);
}
.pf-resolution-item p {
  text-align: center;
  color: var(--color-text);
  max-width: 600px;
  margin: 0 auto;
  line-height: 1.9;
}

.pf-story-closing {
  text-align: center;
  margin-top: var(--space-xl);
  padding-top: var(--space-lg);
  border-top: 1px solid var(--color-border);
  color: var(--color-muted);
  font-size: var(--fs-small);
}

/* Story 既存ブロックのうち、自動生成記事クエリ等は表示しない（テンプレート使用時はそもそも出ない） */
.page-id-6 .wp-block-query,
.page-id-6 .wp-block-post-template,
.page-id-6 .wp-block-query-pagination { display: none !important; }

/* ============================================================
   Phase 5: Farm ページ
============================================================ */
#pf-farm.pf-page {
  max-width: 900px;
  margin: 0 auto;
  padding: var(--space-lg) var(--space-sm);
}
.pf-farm-hero {
  text-align: center;
  margin-bottom: var(--space-xl);
}
.pf-farm-section {
  margin-bottom: var(--space-xl);
}
.pf-farm-section + .pf-farm-section {
  border-top: 1px solid var(--color-border);
  padding-top: var(--space-xl);
}
.pf-farm-intro {
  max-width: 720px;
  margin: 0 auto var(--space-lg);
  text-align: center;
  color: var(--color-text);
  line-height: 1.9;
}
.pf-farm-feature-row {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: var(--space-md);
  align-items: start;
  margin-bottom: var(--space-lg);
  padding: 0;
  background: none;
}
.pf-farm-feature-photo {
  background-color: var(--color-section);
  height: 180px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-muted);
  font-size: var(--fs-small);
}
.pf-farm-feature-text p {
  margin: 0;
  color: var(--color-text);
  line-height: 1.85;
  font-size: var(--fs-small);
}
.pf-farm-feature-text .pf-card-heading {
  font-size: var(--fs-h3);
  margin-bottom: 12px;
}
@media (max-width: 767px) {
  .pf-farm-feature-row { grid-template-columns: 1fr; }
  .pf-farm-feature-photo { height: 200px; }
}

/* Farm 既存ブロック（梨イラスト・装飾過多なH2など）はテンプレート差し替えで表示されない */

/* ============================================================
   全体: 既存固定ページ（55,6,76,113）の entry-title 抑制
============================================================ */
body.page-id-55 .entry-title,
body.page-id-6  .entry-title,
body.page-id-76 .entry-title,
body.page-id-113 .entry-title {
  display: none;
}
