/*
Theme Name: Cocoon Child
Theme URI: https://wp-cocoon.com/
Template: cocoon-master
Author: わいひら
Author URI: https://nelog.jp/
Description: SEO・高速化・モバイルファースト最適化済みの無料テーマ。
Tags: two-columns,left-sidebar,right-sidebar
Version: 2.9.3.1.1781056258
Updated: 2026-06-10 10:50:58

*/

/* ============================
   てつてつブログ カスタム
============================ */
:root {
  --navy:   #1E293B;
  --blue:   #3B82F6;
  --blue-l: #EFF6FF;
  --blue-m: #DBEAFE;
  --cyan:   #06B6D4;
  --cyan-l: #ECFEFF;
  --bg:     #FFFFFF;
  --bg2:    #F8FAFC;
  --bg3:    #F1F5F9;
  --text:   #0F172A;
  --muted:  #64748B;
  --border: #E2E8F0;
  --font-en: 'Outfit', sans-serif;
  --font-ja: 'Noto Sans JP', sans-serif;
  --r-sm: 8px; --r-md: 14px; --r-lg: 20px; --r-xl: 28px;
  --ease: 0.22s cubic-bezier(0.4,0,0.2,1);
  --sh-sm: 0 1px 4px rgba(0,0,0,0.06);
  --sh-md: 0 4px 20px rgba(0,0,0,0.07);
  --sh-lg: 0 8px 40px rgba(0,0,0,0.09);
  --max: 1080px; --gap: 5rem;
}
body { font-family: var(--font-ja) !important; background: var(--bg) !important; color: var(--text) !important; }
.t-container { max-width: var(--max); margin: 0 auto; padding: 0 1.5rem; }
.sec-bg2 { background: var(--bg2); }
.eyebrow { display: inline-flex; align-items: center; gap: 6px; font-family: var(--font-en); font-size: 0.72rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--blue); margin-bottom: 0.75rem; }
.eyebrow::before { content: ''; width: 18px; height: 2px; background: var(--blue); border-radius: 2px; display: block; }
.sec-title { font-size: clamp(1.5rem, 2.8vw, 2rem); font-weight: 700; color: var(--navy); line-height: 1.35; margin-bottom: 0.85rem; }
.sec-desc { color: var(--muted); font-size: 0.92rem; line-height: 1.9; }
.sec-hd { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 2rem; flex-wrap: wrap; gap: 1rem; }
.link-more { font-size: 0.83rem; font-weight: 600; color: var(--blue); display: flex; align-items: center; gap: 4px; }
.link-more svg { width: 14px; height: 14px; }

/* Hero */
.hero-section { padding: 8rem 0 5rem; background: var(--bg); position: relative; overflow: hidden; }
.hero-deco { position: absolute; inset: 0; pointer-events: none; }
.hero-deco::before { content: ''; position: absolute; top: -120px; right: -120px; width: 560px; height: 560px; border-radius: 50%; background: radial-gradient(circle, rgba(59,130,246,0.07) 0%, transparent 70%); }
.hero-in { display: grid; grid-template-columns: 1fr 420px; gap: 4rem; align-items: center; }
.hero-badge { display: inline-flex; align-items: center; gap: 7px; background: var(--blue-l); border: 1px solid var(--blue-m); border-radius: 100px; padding: 0.3rem 0.9rem; font-size: 0.75rem; font-weight: 600; color: #2563eb; margin-bottom: 1.5rem; }
.badge-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--blue); animation: t-pulse 2s infinite; }
@keyframes t-pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.4;transform:scale(1.5)} }
.hero-section h1 { font-size: clamp(1.9rem, 4vw, 3rem); font-weight: 700; line-height: 1.28; color: var(--navy); margin-bottom: 1.1rem; letter-spacing: -0.02em; }
.hero-section h1 .gr { background: linear-gradient(90deg, var(--blue), var(--cyan)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.hero-sub { font-size: 0.95rem; color: var(--muted); margin-bottom: 2rem; }
.hero-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 2rem; }
.t-tag { font-size: 0.76rem; padding: 0.25rem 0.7rem; border-radius: 100px; border: 1px solid var(--border); color: var(--muted); background: var(--bg2); }
.hero-cta { display: flex; gap: 10px; flex-wrap: wrap; }
.hero-stats { display: flex; gap: 2rem; margin-top: 3rem; padding-top: 2.5rem; border-top: 1px solid var(--border); }
.stat-num { font-family: var(--font-en); font-size: 1.6rem; font-weight: 700; color: var(--navy); display: block; line-height: 1; }
.stat-num small { font-size: 0.85rem; font-weight: 400; color: var(--muted); }
.stat-lbl { font-size: 0.75rem; color: var(--muted); margin-top: 4px; }

/* プロフィールカード */
.hero-card { background: var(--bg2); border: 1px solid var(--border); border-radius: var(--r-xl); padding: 2rem; position: relative; display: block; text-decoration: none; transition: transform var(--ease), box-shadow var(--ease), border-color var(--ease); }
.hero-card:hover { transform: translateY(-4px); box-shadow: var(--sh-lg); border-color: var(--blue-m); }
.hero-card-badge { position: absolute; top: -12px; right: 20px; background: var(--blue); color: #fff; font-size: 0.72rem; font-weight: 700; padding: 0.25rem 0.75rem; border-radius: 100px; }
.hero-card-top { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.5rem; }
.hero-avatar { width: 56px; height: 56px; border-radius: 50%; background: linear-gradient(135deg, var(--blue-m), var(--cyan-l)); display: flex; align-items: center; justify-content: center; font-size: 1.5rem; flex-shrink: 0; border: 2px solid var(--bg); box-shadow: var(--sh-sm); }
.hero-card-name { font-size: 1rem; font-weight: 700; color: var(--navy); }
.hero-card-role { font-size: 0.78rem; color: var(--muted); margin-top: 2px; }
.hero-card-desc { font-size: 0.84rem; color: var(--muted); line-height: 1.8; margin-bottom: 1.5rem; }
.hero-card-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }
.hcs { background: var(--bg); border: 1px solid var(--border); border-radius: var(--r-md); padding: 0.9rem; text-align: center; }
.hcs-num { font-family: var(--font-en); font-size: 1.2rem; font-weight: 700; color: var(--navy); display: block; line-height: 1; }
.hcs-lbl { font-size: 0.7rem; color: var(--muted); margin-top: 3px; }
.hero-card-footer { display: flex; align-items: center; justify-content: center; gap: 6px; margin-top: 1.25rem; padding-top: 1.1rem; border-top: 1px solid var(--border); font-size: 0.8rem; font-weight: 600; color: var(--muted); transition: color var(--ease); }
.hero-card:hover .hero-card-footer { color: var(--blue); }
.hero-card-footer svg { width: 14px; height: 14px; transition: transform var(--ease); }
.hero-card:hover .hero-card-footer svg { transform: translateX(3px); }

/* カテゴリー */
#categories { padding: var(--gap) 0; }
.cat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px,1fr)); gap: 1rem; }
.cat-card { background: var(--bg); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 1.4rem; display: block; text-decoration: none; transition: transform var(--ease), box-shadow var(--ease), border-color var(--ease); }
.cat-card:hover { transform: translateY(-3px); box-shadow: var(--sh-md); border-color: transparent; }
.cat-icon { width: 44px; height: 44px; border-radius: var(--r-sm); display: flex; align-items: center; justify-content: center; font-size: 1.4rem; margin-bottom: 0.9rem; transition: transform var(--ease); }
.cat-card:hover .cat-icon { transform: scale(1.12) rotate(-4deg); }
.cat-name { font-size: 0.9rem; font-weight: 700; color: var(--navy); margin-bottom: 3px; }
.cat-sub { font-size: 0.72rem; color: var(--muted); }
.cat-desc { font-size: 0.78rem; color: var(--muted); margin-top: 0.5rem; line-height: 1.65; }

/* 人気記事 */
#popular { padding: var(--gap) 0; }
.posts-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px,1fr)); gap: 1.1rem; }
.post-card { background: var(--bg); border: 1px solid var(--border); border-radius: var(--r-lg); overflow: hidden; display: block; text-decoration: none; transition: transform var(--ease), box-shadow var(--ease); }
.post-card:hover { transform: translateY(-4px); box-shadow: var(--sh-lg); }
.post-thumb { aspect-ratio: 16/9; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.post-thumb-img { width: 100%; height: 100%; object-fit: cover; }
.post-thumb-emoji { font-size: 2rem; }
.post-body { padding: 1.1rem; }
.post-badge { font-size: 0.68rem; font-weight: 700; letter-spacing: 0.05em; border-radius: 100px; padding: 2px 10px; display: inline-block; margin-bottom: 0.55rem; background: var(--blue-l); color: #1d4ed8; }
.post-title { font-size: 0.9rem; font-weight: 700; color: var(--navy); line-height: 1.55; margin-bottom: 0.5rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.post-meta { font-size: 0.7rem; color: var(--muted); }

/* 運営報告 */
#report { padding: var(--gap) 0; }
.report-in { max-width: 720px; margin: 0 auto; }
.report-hd { text-align: center; margin-bottom: 2.5rem; }
.report-hd .eyebrow { justify-content: center; }
.report-hd .eyebrow::before { display: none; }
.report-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px,1fr)); gap: 1rem; margin-bottom: 1.5rem; }
.rc { background: var(--bg); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 1.4rem; text-align: center; }
.rc-icon { font-size: 1.5rem; margin-bottom: 0.6rem; }
.rc-num { font-family: var(--font-en); font-size: 1.7rem; font-weight: 700; color: var(--navy); display: block; line-height: 1; }
.rc-unit { font-size: 0.85rem; font-weight: 400; color: var(--blue); }
.rc-lbl { font-size: 0.75rem; color: var(--muted); margin-top: 5px; }
.report-note { text-align: center; font-size: 0.75rem; color: var(--muted); margin-bottom: 2rem; }
.report-cta { text-align: center; }

/* プロフィールCTA */
#pcta { padding: var(--gap) 0; }
.pcta-in { background: linear-gradient(135deg, var(--blue-l), var(--cyan-l)); border: 1px solid var(--blue-m); border-radius: var(--r-xl); padding: 3rem 3.5rem; display: grid; grid-template-columns: 1fr auto; gap: 3rem; align-items: center; }
.pcta-title { font-size: 1.45rem; font-weight: 700; color: var(--navy); line-height: 1.45; margin-bottom: 0.7rem; }
.pcta-desc { font-size: 0.88rem; color: var(--muted); }
.pcta-btns { display: flex; flex-direction: column; gap: 0.65rem; }

/* ボタン */
.btn-p { display: inline-flex; align-items: center; gap: 6px; background: var(--navy); color: #fff !important; font-weight: 600; font-size: 0.88rem; padding: 0.75rem 1.4rem; border-radius: var(--r-sm); text-decoration: none; transition: background var(--ease), transform var(--ease); }
.btn-p:hover { background: #334155; transform: translateY(-1px); }
.btn-s { display: inline-flex; align-items: center; gap: 6px; border: 1.5px solid var(--border); color: var(--navy) !important; font-weight: 500; font-size: 0.88rem; padding: 0.75rem 1.3rem; border-radius: var(--r-sm); text-decoration: none; transition: border-color var(--ease), background var(--ease); }
.btn-s:hover { border-color: #94a3b8; background: var(--bg3); }
.btn-navy { display: inline-flex; align-items: center; gap: 6px; background: var(--navy); color: #fff !important; font-weight: 600; font-size: 0.86rem; padding: 0.75rem 1.35rem; border-radius: var(--r-sm); white-space: nowrap; text-decoration: none; transition: background var(--ease); }
.btn-navy:hover { background: #334155; }
.btn-outline { display: inline-flex; align-items: center; gap: 6px; border: 1.5px solid #bfdbfe; color: #2563eb !important; font-weight: 500; font-size: 0.86rem; padding: 0.75rem 1.35rem; border-radius: var(--r-sm); white-space: nowrap; text-decoration: none; transition: background var(--ease); }
.btn-outline:hover { background: rgba(59,130,246,0.07); }
.btn-ghost { display: inline-flex; align-items: center; gap: 6px; border: 1.5px solid var(--border); color: var(--navy) !important; font-weight: 500; font-size: 0.86rem; padding: 0.7rem 1.4rem; border-radius: var(--r-sm); text-decoration: none; transition: border-color var(--ease), background var(--ease); }
.btn-ghost:hover { border-color: #94a3b8; background: var(--bg3); }

/* レスポンシブ */
@media (max-width: 860px) {
  .hero-in { grid-template-columns: 1fr; gap: 2.5rem; }
  .hero-text { order: 1; }
  .hero-card-area { order: 2; }
  .pcta-in { grid-template-columns: 1fr; padding: 2rem; }
  .pcta-btns { flex-direction: row; flex-wrap: wrap; }
}
@media (max-width: 600px) {
  .hero-section { padding: 6rem 0 3rem; }
  .hero-stats { flex-direction: column; gap: 1.1rem; }
}

/* ============================
   てつてつブログ トップページ専用CSS
============================ */
:root {
  --t-navy:#1E293B; --t-blue:#3B82F6; --t-bl:#EFF6FF; --t-bm:#DBEAFE;
  --t-cyan:#06B6D4; --t-cl:#ECFEFF;
  --t-bg:#FFFFFF; --t-bg2:#F8FAFC; --t-bg3:#F1F5F9;
  --t-text:#0F172A; --t-muted:#64748B; --t-border:#E2E8F0;
  --t-fen:'Outfit',sans-serif; --t-fja:'Noto Sans JP',sans-serif;
  --t-rsm:8px; --t-rmd:14px; --t-rlg:20px; --t-rxl:28px;
  --t-ease:0.22s cubic-bezier(0.4,0,0.2,1);
  --t-sh1:0 1px 4px rgba(0,0,0,0.06);
  --t-sh2:0 4px 20px rgba(0,0,0,0.07);
  --t-sh3:0 8px 40px rgba(0,0,0,0.09);
  --t-max:1080px; --t-gap:5rem;
}
.t-front { margin:0 !important; padding:0 !important; }
.t-front * { box-sizing:border-box; }
.t-front #wpadminbar { position:fixed !important; }

/* 既存Cocoon要素をトップページでは非表示 */
.t-front .header,.t-front .footer,.t-front .sidebar,
.t-front #header,.t-front #footer,.t-front .navi,
.t-front .bc-list,.t-front .breadcrumb { display:none !important; }

.t-wrap { max-width:var(--t-max); margin:0 auto; padding:0 1.5rem; }
.t-sec { padding:var(--t-gap) 0; }
.t-bg2 { background:var(--t-bg2); }
.t-center { text-align:center; }
.t-eyebrow { display:inline-flex; align-items:center; gap:6px; font-family:var(--t-fen); font-size:0.72rem; font-weight:600; letter-spacing:0.1em; text-transform:uppercase; color:var(--t-blue); margin-bottom:0.75rem; }
.t-eyebrow::before { content:''; width:18px; height:2px; background:var(--t-blue); border-radius:2px; display:block; }
.t-center .t-eyebrow::before { display:none; }
.t-sec-title { font-size:clamp(1.5rem,2.8vw,2rem) !important; font-weight:700 !important; color:var(--t-navy) !important; line-height:1.35 !important; margin-bottom:0.85rem !important; }
.t-sec-desc { color:var(--t-muted); font-size:0.92rem; line-height:1.9; }
.t-sec-hd { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:2rem; flex-wrap:wrap; gap:1rem; }
.t-more { font-size:0.83rem; font-weight:600; color:var(--t-blue); display:flex; align-items:center; gap:4px; }
.t-more svg { width:14px; height:14px; }

/* お知らせバー */
.t-notice { position:fixed; top:0; left:0; right:0; z-index:1010; height:36px; display:flex; align-items:center; justify-content:center; background:var(--t-bl); border-bottom:1px solid var(--t-bm); font-size:0.79rem; color:#1d4ed8; font-weight:500; padding:0 1rem; }
.t-notice a { color:#1d4ed8; text-decoration:underline; }

/* ヘッダー */
.t-hdr { position:fixed; left:0; right:0; z-index:1000; top:36px; border-bottom:1px solid transparent; transition:background var(--t-ease),border-color var(--t-ease); }
.t-hdr.on { background:rgba(255,255,255,0.94); backdrop-filter:blur(16px); border-color:var(--t-border); }
.t-hdr-in { display:flex; align-items:center; justify-content:space-between; height:64px; max-width:var(--t-max); margin:0 auto; padding:0 1.5rem; }
.t-logo { display:flex; align-items:center; gap:10px; text-decoration:none; }
.t-logo-mark { width:34px; height:34px; border-radius:var(--t-rsm); background:var(--t-navy); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.t-logo-mark svg { width:18px; height:18px; }
.t-logo-name { font-size:0.95rem; font-weight:700; color:var(--t-navy); }
.t-logo-sub { font-family:var(--t-fen); font-size:0.58rem; color:var(--t-muted); letter-spacing:0.06em; display:block; }
.t-nav { display:flex; align-items:center; gap:2px; }
.t-nav a { font-size:0.84rem; font-weight:500; color:var(--t-muted); padding:0.4rem 0.7rem; border-radius:var(--t-rsm); transition:color var(--t-ease),background var(--t-ease); text-decoration:none; }
.t-nav a:hover { color:var(--t-navy); background:var(--t-bg3); }
.t-nav-btn { background:var(--t-navy) !important; color:#fff !important; margin-left:8px; font-size:0.82rem !important; }
.t-nav-btn:hover { background:#334155 !important; }
.t-hbg { display:none; flex-direction:column; gap:5px; padding:8px; border-radius:var(--t-rsm); border:none; background:none; cursor:pointer; }
.t-hbg span { display:block; width:20px; height:2px; background:var(--t-navy); border-radius:2px; }

/* モバイルナビ */
.t-mnav { position:fixed; inset:0; background:rgba(15,23,42,0.97); z-index:999; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1.5rem; opacity:0; pointer-events:none; transition:opacity var(--t-ease); }
.t-mnav.open { opacity:1; pointer-events:auto; }
.t-mnav a { font-size:1.15rem; font-weight:700; color:#cbd5e1; text-decoration:none; }
.t-mnav-close { position:absolute; top:1.25rem; right:1.25rem; width:42px; height:42px; border-radius:var(--t-rsm); border:1px solid rgba(255,255,255,0.1); color:#cbd5e1; display:flex; align-items:center; justify-content:center; cursor:pointer; background:none; font-size:1.1rem; }

/* Hero */
.t-hero { padding:10rem 0 5rem; background:var(--t-bg); position:relative; overflow:hidden; }
.t-hero-deco { position:absolute; inset:0; pointer-events:none; }
.t-hero-deco::before { content:''; position:absolute; top:-120px; right:-120px; width:560px; height:560px; border-radius:50%; background:radial-gradient(circle,rgba(59,130,246,0.07) 0%,transparent 70%); }
.t-hero-in { display:grid; grid-template-columns:1fr 400px; gap:4rem; align-items:center; }
.t-badge { display:inline-flex; align-items:center; gap:7px; background:var(--t-bl); border:1px solid var(--t-bm); border-radius:100px; padding:0.3rem 0.9rem; font-size:0.75rem; font-weight:600; color:#2563eb; margin-bottom:1.5rem; }
.t-dot { width:6px; height:6px; border-radius:50%; background:var(--t-blue); animation:t-pulse 2s infinite; }
@keyframes t-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.5)}}
.t-front h1 { font-size:clamp(1.9rem,4vw,3rem) !important; font-weight:700 !important; line-height:1.28 !important; color:var(--t-navy) !important; margin-bottom:1.1rem !important; letter-spacing:-0.02em !important; }
.t-gr { background:linear-gradient(90deg,var(--t-blue),var(--t-cyan)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.t-hero-sub { font-size:0.95rem; color:var(--t-muted); margin-bottom:2rem; }
.t-tags { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:2rem; }
.t-tag { font-size:0.76rem; padding:0.25rem 0.7rem; border-radius:100px; border:1px solid var(--t-border); color:var(--t-muted); background:var(--t-bg2); }
.t-cta { display:flex; gap:10px; flex-wrap:wrap; }
.t-stats { display:flex; gap:2rem; margin-top:3rem; padding-top:2.5rem; border-top:1px solid var(--t-border); }
.t-stat-num { font-family:var(--t-fen); font-size:1.6rem; font-weight:700; color:var(--t-navy); display:block; line-height:1; }
.t-stat-num small { font-size:0.85rem; font-weight:400; color:var(--t-muted); }
.t-stat-lbl { font-size:0.75rem; color:var(--t-muted); margin-top:4px; }

/* プロフィールカード */
.t-card { background:var(--t-bg2); border:1px solid var(--t-border); border-radius:var(--t-rxl); padding:2rem; position:relative; display:block; text-decoration:none; transition:transform var(--t-ease),box-shadow var(--t-ease),border-color var(--t-ease); }
.t-card:hover { transform:translateY(-4px); box-shadow:var(--t-sh3); border-color:var(--t-bm); }
.t-card-bdg { position:absolute; top:-12px; right:20px; background:var(--t-blue); color:#fff; font-size:0.72rem; font-weight:700; padding:0.25rem 0.75rem; border-radius:100px; }
.t-card-top { display:flex; align-items:center; gap:1rem; margin-bottom:1.5rem; }
.t-ava { width:56px; height:56px; border-radius:50%; background:linear-gradient(135deg,var(--t-bm),var(--t-cl)); display:flex; align-items:center; justify-content:center; font-size:1.5rem; flex-shrink:0; }
.t-card-name { font-size:1rem; font-weight:700; color:var(--t-navy); }
.t-card-role { font-size:0.78rem; color:var(--t-muted); margin-top:2px; }
.t-card-desc { font-size:0.84rem; color:var(--t-muted); line-height:1.8; margin-bottom:1.5rem; }
.t-card-stats { display:grid; grid-template-columns:1fr 1fr; gap:0.75rem; }
.t-cs { background:var(--t-bg); border:1px solid var(--t-border); border-radius:var(--t-rmd); padding:0.9rem; text-align:center; }
.t-cs-num { font-family:var(--t-fen); font-size:1.1rem; font-weight:700; color:var(--t-navy); display:block; line-height:1; }
.t-cs-lbl { font-size:0.7rem; color:var(--t-muted); margin-top:3px; }
.t-card-ft { display:flex; align-items:center; justify-content:center; gap:6px; margin-top:1.25rem; padding-top:1.1rem; border-top:1px solid var(--t-border); font-size:0.8rem; font-weight:600; color:var(--t-muted); transition:color var(--t-ease); }
.t-card:hover .t-card-ft { color:var(--t-blue); }
.t-card-ft svg { width:14px; height:14px; transition:transform var(--t-ease); }
.t-card:hover .t-card-ft svg { transform:translateX(3px); }

/* カテゴリー */
.t-cat-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:1rem; }
.t-cat-card { background:var(--t-bg); border:1px solid var(--t-border); border-radius:var(--t-rlg); padding:1.4rem; display:block; text-decoration:none; transition:transform var(--t-ease),box-shadow var(--t-ease),border-color var(--t-ease); }
.t-cat-card:hover { transform:translateY(-3px); box-shadow:var(--t-sh2); border-color:transparent; }
.t-cat-icon { width:44px; height:44px; border-radius:var(--t-rsm); display:flex; align-items:center; justify-content:center; font-size:1.4rem; margin-bottom:0.9rem; transition:transform var(--t-ease); }
.t-cat-card:hover .t-cat-icon { transform:scale(1.12) rotate(-4deg); }
.t-cat-name { font-size:0.9rem; font-weight:700; color:var(--t-navy); margin-bottom:3px; }
.t-cat-sub { font-size:0.72rem; color:var(--t-muted); }
.t-cat-desc { font-size:0.78rem; color:var(--t-muted); margin-top:0.5rem; line-height:1.65; }

/* 人気記事 */
.t-posts-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:1.1rem; }
.t-post-card { background:var(--t-bg); border:1px solid var(--t-border); border-radius:var(--t-rlg); overflow:hidden; display:block; text-decoration:none; transition:transform var(--t-ease),box-shadow var(--t-ease); }
.t-post-card:hover { transform:translateY(-4px); box-shadow:var(--t-sh3); }
.t-post-thumb { aspect-ratio:16/9; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.t-post-img { width:100%; height:100%; object-fit:cover; }
.t-post-body { padding:1.1rem; }
.t-post-badge { font-size:0.68rem; font-weight:700; border-radius:100px; padding:2px 10px; display:inline-block; margin-bottom:0.55rem; background:var(--t-bl); color:#1d4ed8; }
.t-post-title { font-size:0.9rem; font-weight:700; color:var(--t-navy); line-height:1.55; margin-bottom:0.5rem; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.t-post-meta { font-size:0.7rem; color:var(--t-muted); }

/* 運営報告 */
.t-report-in { max-width:720px; margin:0 auto; }
.t-report-hd { text-align:center; margin-bottom:2.5rem; }
.t-report-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:1rem; margin-bottom:1.5rem; }
.t-rc { background:var(--t-bg); border:1px solid var(--t-border); border-radius:var(--t-rlg); padding:1.4rem; text-align:center; }
.t-rc-icon { font-size:1.5rem; margin-bottom:0.6rem; }
.t-rc-num { font-family:var(--t-fen); font-size:1.7rem; font-weight:700; color:var(--t-navy); display:block; line-height:1; }
.t-rc-unit { font-size:0.85rem; font-weight:400; color:var(--t-blue); }
.t-rc-lbl { font-size:0.75rem; color:var(--t-muted); margin-top:5px; }
.t-report-note { text-align:center; font-size:0.75rem; color:var(--t-muted); margin-bottom:1.5rem; }

/* プロフィールCTA */
.t-pcta { background:linear-gradient(135deg,var(--t-bl),var(--t-cl)); border:1px solid var(--t-bm); border-radius:var(--t-rxl); padding:3rem 3.5rem; display:grid; grid-template-columns:1fr auto; gap:3rem; align-items:center; }
.t-pcta-title { font-size:1.45rem !important; font-weight:700 !important; color:var(--t-navy) !important; line-height:1.45 !important; margin-bottom:0.7rem !important; }
.t-pcta-btns { display:flex; flex-direction:column; gap:0.65rem; }

/* ボタン */
.t-btn-p { display:inline-flex; align-items:center; gap:6px; background:var(--t-navy); color:#fff !important; font-weight:600; font-size:0.88rem; padding:0.75rem 1.4rem; border-radius:var(--t-rsm); text-decoration:none !important; transition:background var(--t-ease),transform var(--t-ease); }
.t-btn-p:hover { background:#334155; transform:translateY(-1px); }
.t-btn-s { display:inline-flex; align-items:center; gap:6px; border:1.5px solid var(--t-border); color:var(--t-navy) !important; font-weight:500; font-size:0.88rem; padding:0.75rem 1.3rem; border-radius:var(--t-rsm); text-decoration:none !important; transition:border-color var(--t-ease),background var(--t-ease); }
.t-btn-s:hover { border-color:#94a3b8; background:var(--t-bg3); }
.t-btn-navy { display:inline-flex; align-items:center; gap:6px; background:var(--t-navy); color:#fff !important; font-weight:600; font-size:0.86rem; padding:0.75rem 1.35rem; border-radius:var(--t-rsm); white-space:nowrap; text-decoration:none !important; transition:background var(--t-ease); }
.t-btn-navy:hover { background:#334155; }
.t-btn-outline { display:inline-flex; align-items:center; gap:6px; border:1.5px solid #bfdbfe; color:#2563eb !important; font-weight:500; font-size:0.86rem; padding:0.75rem 1.35rem; border-radius:var(--t-rsm); white-space:nowrap; text-decoration:none !important; transition:background var(--t-ease); }
.t-btn-outline:hover { background:rgba(59,130,246,0.07); }
.t-btn-ghost { display:inline-flex; align-items:center; gap:6px; border:1.5px solid var(--t-border); color:var(--t-navy) !important; font-weight:500; font-size:0.86rem; padding:0.7rem 1.4rem; border-radius:var(--t-rsm); text-decoration:none !important; transition:border-color var(--t-ease),background var(--t-ease); }
.t-btn-ghost:hover { border-color:#94a3b8; background:var(--t-bg3); }

/* フッター */
.t-footer { background:var(--t-navy); color:#94a3b8; padding:3.5rem 0 2rem; }
.t-ft-in { display:grid; grid-template-columns:2fr 1fr 1fr; gap:3rem; padding-bottom:2.5rem; border-bottom:1px solid rgba(255,255,255,0.07); margin-bottom:1.75rem; }
.t-ft-brand { font-size:1rem; font-weight:700; color:#fff; margin-bottom:0.65rem; }
.t-ft-desc { font-size:0.8rem; line-height:1.8; max-width:240px; margin-bottom:1.1rem; }
.t-ft-sns { display:flex; gap:8px; }
.t-ft-sns a { width:34px; height:34px; border-radius:var(--t-rsm); border:1px solid rgba(255,255,255,0.1); display:flex; align-items:center; justify-content:center; text-decoration:none; color:#94a3b8; transition:border-color var(--t-ease),background var(--t-ease); }
.t-ft-sns a:hover { border-color:rgba(255,255,255,0.3); background:rgba(255,255,255,0.05); color:#fff; }
.t-ft-col-ttl { font-size:0.68rem; font-weight:600; letter-spacing:0.1em; text-transform:uppercase; color:#fff; margin-bottom:1rem; }
.t-ft-col ul { display:flex; flex-direction:column; gap:0.55rem; list-style:none; padding:0; margin:0; }
.t-ft-col ul a { font-size:0.8rem; color:#94a3b8; text-decoration:none; transition:color var(--t-ease); }
.t-ft-col ul a:hover { color:#cbd5e1; }
.t-ft-btm { max-width:var(--t-max); margin:0 auto; padding:0 1.5rem; font-size:0.73rem; color:#475569; }

/* Back to top */
.t-btt { position:fixed; bottom:1.5rem; right:1.5rem; width:42px; height:42px; background:var(--t-navy); color:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:var(--t-sh2); opacity:0; transform:translateY(8px); transition:opacity var(--t-ease),transform var(--t-ease); cursor:pointer; z-index:50; border:none; }
.t-btt.vis { opacity:1; transform:none; }

/* レスポンシブ */
@media(max-width:860px){
  .t-hero-in { grid-template-columns:1fr; gap:2.5rem; }
  .t-hero-text { order:1; }
  .t-card-area { order:2; }
  .t-pcta { grid-template-columns:1fr; padding:2rem; }
  .t-pcta-btns { flex-direction:row; flex-wrap:wrap; }
  .t-ft-in { grid-template-columns:1fr 1fr; }
}
@media(max-width:600px){
  .t-nav { display:none; }
  .t-hbg { display:flex; }
  .t-hero { padding:8rem 0 3rem; }
  .t-stats { flex-direction:column; gap:1.1rem; }
  .t-ft-in { grid-template-columns:1fr; }
}

/* Cocoonのwp_footer出力を非表示 */
.t-front .footer-widget,
.t-front .footer-widgets,
.t-front #footer-widget-area,
.t-front .cocoon-block-widget-area,
.t-front #navi-footer-in,
.t-front .footer-nav,
.t-front .site-footer,
.t-front #footer {
  display: none !important;
}