/*
Theme Name: cocoon-child-jt
Template: cocoon-master
Version: 2.0.0
*/

/* ============================================================
   Google Fonts
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;700&family=Noto+Serif+JP:wght@400;600&display=swap');

/* ============================================================
   CSS変数
   ============================================================ */
:root {
  --jt-navy:      #1a1f36;
  --jt-navy-deep: #0f1221;
  --jt-text:      #1e1e1e;
  --jt-muted:     #666;
  --jt-light:     #999;
  --jt-border:    #e8e8e8;
  --jt-bg:        #f2f2f2;
  --jt-white:     #fff;
  --jt-accent:    #d9392b;
  --font-sans:    'Noto Sans JP', sans-serif;
  --font-serif:   'Noto Serif JP', serif;
}

/* ============================================================
   ベース
   ============================================================ */
body {
  font-family: var(--font-sans) !important;
  background-color: var(--jt-bg) !important;
  color: var(--jt-text) !important;
  font-size: 15px !important;
  line-height: 1.85 !important;
}

/* ============================================================
   サイト全体の最大幅
   ============================================================ */
.body-wrap,
#wrapper {
  max-width: 100% !important;
}

/* ============================================================
   ヘッダー
   ============================================================ */
#header {
  background: var(--jt-white) !important;
  border-bottom: 1px solid var(--jt-border) !important;
  box-shadow: 0 1px 4px rgba(0,0,0,.05) !important;
  padding: 0 !important;
}

#header .header-in {
  max-width: 1100px !important;
  margin: 0 auto !important;
  padding: 0 20px !important;
  height: 60px !important;
  display: flex !important;
  align-items: center !important;
}

#site-name {
  font-size: 20px !important;
  font-weight: 700 !important;
}

#site-name a {
  color: var(--jt-navy) !important;
  text-decoration: none !important;
  font-family: var(--font-sans) !important;
}

#site-description {
  font-size: 10px !important;
  color: var(--jt-light) !important;
  letter-spacing: .1em !important;
}

/* ============================================================
   グローバルナビ
   ============================================================ */
#navi {
  background: var(--jt-white) !important;
}

#navi .navi-in > ul {
  max-width: 1100px !important;
  margin: 0 auto !important;
  padding: 0 20px !important;
  display: flex !important;
  gap: 2px !important;
  list-style: none !important;
}

#navi .navi-in > ul > li > a {
  font-size: 12px !important;
  font-weight: 500 !important;
  color: var(--jt-muted) !important;
  padding: 8px 8px !important;
  letter-spacing: .06em !important;
  transition: color .2s !important;
  display: block !important;
  white-space: nowrap !important;
  text-decoration: none !important;
}

#navi .navi-in > ul > li > a:hover,
#navi .navi-in > ul > li.current-menu-item > a {
  color: var(--jt-navy) !important;
}

/* ============================================================
   パンくず
   ============================================================ */
#breadcrumb {
  background: var(--jt-white) !important;
  border-bottom: 1px solid var(--jt-border) !important;
}

#breadcrumb .breadcrumb-in,
#breadcrumb ol {
  max-width: 1100px !important;
  margin: 0 auto !important;
  padding: 8px 20px !important;
  font-size: 11px !important;
  color: var(--jt-light) !important;
}

#breadcrumb a {
  color: var(--jt-light) !important;
  text-decoration: none !important;
}

/* ============================================================
   コンテナ・メインレイアウト
   ============================================================ */
#container {
  background: var(--jt-bg) !important;
}

#container .container-inner {
  max-width: 1100px !important;
  margin: 0 auto !important;
  padding: 24px 20px 48px !important;
}

/* Cocoonの実際のレイアウトクラス */
.l-main,
#main.main {
  background: transparent !important;
}

/* ============================================================
   記事エリア（singular）
   ============================================================ */
.singular .main-inner {
  display: flex !important;
  flex-direction: row !important;
  gap: 28px !important;
  align-items: flex-start !important;
}

.singular #primary {
  flex: 1 1 0% !important;
  min-width: 0 !important;
  width: auto !important;
  max-width: none !important;
}

.singular #secondary {
  flex: 0 0 300px !important;
  width: 300px !important;
  min-width: 300px !important;
}

/* ============================================================
   記事カード
   ============================================================ */
.article-wrap,
.singular-main-inner .article-wrap {
  background: var(--jt-white) !important;
  border-radius: 4px !important;
  overflow: hidden !important;
  box-shadow: none !important;
  border: none !important;
}

/* アイキャッチ */
.eye-catch {
  margin: 0 !important;
}

.eye-catch img {
  width: 100% !important;
  aspect-ratio: 16/9 !important;
  object-fit: cover !important;
  display: block !important;
  border-radius: 0 !important;
}

/* 記事ヘッダー */
.article-header {
  padding: 20px 28px 0 !important;
}

/* カテゴリ */
.cat-label,
.article-header .cat-label {
  display: inline-flex !important;
  padding: 2px 9px !important;
  border-radius: 2px !important;
  font-size: 10.5px !important;
  font-weight: 500 !important;
  text-decoration: none !important;
  margin: 2px !important;
  border: none !important;
}

/* 記事タイトル */
.entry-title {
  font-family: var(--font-serif) !important;
  font-size: 22px !important;
  font-weight: 600 !important;
  line-height: 1.55 !important;
  color: var(--jt-navy) !important;
  margin: 12px 0 !important;
  letter-spacing: .02em !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
}

/* 投稿日 */
.post-date,
.article-header .post-date {
  font-size: 12px !important;
  color: var(--jt-light) !important;
  margin-bottom: 16px !important;
  padding-bottom: 16px !important;
  border-bottom: 1px solid var(--jt-border) !important;
}

/* ============================================================
   記事本文
   ============================================================ */
.entry-content {
  padding: 24px 28px 32px !important;
  font-size: 15px !important;
  line-height: 1.9 !important;
  color: #2e2e2e !important;
  max-width: 100% !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.entry-content p {
  margin-bottom: 20px !important;
  line-height: 1.9 !important;
}

.entry-content img {
  max-width: 100% !important;
  height: auto !important;
  border-radius: 2px !important;
}

/* h2 */
.entry-content h2 {
  font-family: var(--font-serif) !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  color: var(--jt-navy) !important;
  border-left: 3px solid var(--jt-navy) !important;
  border-bottom: none !important;
  border-top: none !important;
  border-right: none !important;
  padding: 4px 0 4px 12px !important;
  margin: 32px 0 16px !important;
  background: none !important;
}

/* h3 */
.entry-content h3 {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: var(--jt-navy) !important;
  border-bottom: 1px solid var(--jt-border) !important;
  padding-bottom: 6px !important;
  margin: 24px 0 12px !important;
  background: none !important;
  border-left: none !important;
  border-top: none !important;
  border-right: none !important;
}

/* ============================================================
   記事フッター・SNSシェア
   ============================================================ */
.article-footer {
  padding: 0 28px 28px !important;
}

/* Cocoon標準のSNSシェアボタン */
.sns-share {
  margin-top: 24px !important;
  padding-top: 20px !important;
  border-top: 1px solid var(--jt-border) !important;
}

.sns-share-buttons {
  display: flex !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
}

.sns-share-buttons a {
  padding: 8px 16px !important;
  border-radius: 3px !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  color: white !important;
  text-decoration: none !important;
  transition: opacity .15s !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
}

.sns-share-buttons a:hover {
  opacity: .85 !important;
}

/* ============================================================
   サイドバー
   ============================================================ */
#secondary .widget,
.sidebar .widget {
  background: var(--jt-white) !important;
  border-radius: 3px !important;
  overflow: hidden !important;
  margin-bottom: 20px !important;
  border: none !important;
  box-shadow: none !important;
}

#secondary .widget-title,
#secondary .widgettitle,
.sidebar .widget-title,
.sidebar .widgettitle {
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .12em !important;
  color: var(--jt-white) !important;
  background: var(--jt-navy) !important;
  padding: 10px 14px !important;
  margin: 0 0 0 0 !important;
  border: none !important;
  border-radius: 0 !important;
  display: block !important;
}

#secondary .widget ul,
.sidebar .widget ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

#secondary .widget ul li,
.sidebar .widget ul li {
  border-bottom: 1px solid var(--jt-border) !important;
  padding: 10px 13px !important;
  font-size: 12px !important;
  margin: 0 !important;
}

#secondary .widget ul li:last-child,
.sidebar .widget ul li:last-child {
  border-bottom: none !important;
}

#secondary .widget ul li a,
.sidebar .widget ul li a {
  color: var(--jt-text) !important;
  font-weight: 500 !important;
  text-decoration: none !important;
  line-height: 1.5 !important;
  display: block !important;
}

#secondary .widget ul li a:hover,
.sidebar .widget ul li a:hover {
  color: var(--jt-navy) !important;
}

/* ============================================================
   一覧ページ（アーカイブ・トップ）
   ============================================================ */
.home .main-inner,
.archive .main-inner,
.search .main-inner {
  display: flex !important;
  flex-direction: row !important;
  gap: 28px !important;
  align-items: flex-start !important;
  max-width: 1100px !important;
  margin: 0 auto !important;
  padding: 24px 20px 48px !important;
}

.home #primary,
.archive #primary,
.search #primary {
  flex: 1 1 0% !important;
  min-width: 0 !important;
}

.home #secondary,
.archive #secondary,
.search #secondary {
  flex: 0 0 300px !important;
  width: 300px !important;
  min-width: 300px !important;
}

.entry-card {
  background: var(--jt-white) !important;
  border-radius: 3px !important;
  overflow: hidden !important;
  border: none !important;
  box-shadow: none !important;
  margin-bottom: 16px !important;
  transition: box-shadow .15s !important;
}

.entry-card:hover {
  box-shadow: 0 2px 12px rgba(0,0,0,.08) !important;
}

.entry-card .entry-card-thumb img {
  aspect-ratio: 16/9 !important;
  object-fit: cover !important;
  width: 100% !important;
}

.entry-card .entry-card-title {
  font-family: var(--font-serif) !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: var(--jt-navy) !important;
  line-height: 1.55 !important;
}

/* ============================================================
   フッター
   ============================================================ */
#footer {
  background: var(--jt-navy-deep) !important;
  color: rgba(255,255,255,.75) !important;
  margin-top: 40px !important;
}

#footer .footer-in {
  max-width: 1100px !important;
  margin: 0 auto !important;
  padding: 36px 20px 20px !important;
}

#footer a {
  color: rgba(255,255,255,.5) !important;
  text-decoration: none !important;
  transition: color .2s !important;
}

#footer a:hover {
  color: rgba(255,255,255,.9) !important;
}

#copyright,
#footer .copyright {
  font-size: 10px !important;
  color: rgba(255,255,255,.25) !important;
  padding-top: 16px !important;
  border-top: 1px solid rgba(255,255,255,.1) !important;
  margin-top: 16px !important;
  letter-spacing: .05em !important;
}

/* ============================================================
   レスポンシブ
   ============================================================ */
@media (max-width: 834px) {
  .singular .main-inner,
  .home .main-inner,
  .archive .main-inner {
    flex-direction: column !important;
  }

  .singular #secondary,
  .home #secondary,
  .archive #secondary {
    width: 100% !important;
    min-width: unset !important;
    flex: none !important;
  }

  .entry-title {
    font-size: 18px !important;
  }

  .article-header {
    padding: 16px 16px 0 !important;
  }

  .entry-content {
    padding: 16px 16px 24px !important;
  }
}
