@charset "UTF-8";
/*
Theme Name: AIBOU IR
Theme URI: https://aibou-pro.com/
Author: aibou-pro
Description: 企業の「すごい」が見つかるIRメディア「AIBOU IR」専用テーマ。ホワイト×ネイビー×ゴールド、モノクロサムネイル。
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: aibou-ir
*/
/* =============================================
   CSS変数（カラー・サイズ定義）
============================================= */
:root {
  --bg:       #ffffff;
  --bg-dark:  #192c4d;
  --bg-mid:   #f0f3f8;
  --bg-lt:    #e4eaf4;
  --border:   #d8dfe9;
  --blt:      #c0cad8;
  --white:    #fff;
  --text:     #192c4d;
  --g90:      #1a2a3f;
  --g70:      #4a6480;
  --g50:      #7a94a8;
  --g30:      #a8bccc;
  --accent:   #e4cd9b;
  --accent-dark: #c9a96e;
  --sw:       52px;
  --p-a:#d4d4d4; --p-b:#e8e8e8; --p-c:#c4c4c4;
  --p-d:#b4b4b4; --p-e:#f2f2f2; --p-f:#ffffff;
}
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body {
  font-family:'Noto Sans JP','Inter',sans-serif;
  background:var(--bg); color:var(--text);
  display:flex; min-height:100vh; overflow-x:hidden;
}
a { text-decoration:none; color:inherit; }
/* ── アドミンバー対応 ── */
body.admin-bar .sidebar  { top:0; height:100vh; }
body.admin-bar .topbar   { top:0; }
@media screen and (max-width:782px) {
  body.admin-bar .sidebar { top:46px; height:calc(100vh - 46px); }
  body.admin-bar .topbar  { top:0; }
}
/* ── PATTERNS ── */
.pt-sd   { background:var(--p-a) }
.pt-sm   { background:var(--p-c) }
.pt-d135 { background-image:linear-gradient(135deg,var(--p-e) 50%,var(--p-b) 50%) }
.pt-d45  { background-image:linear-gradient(45deg,var(--p-f) 50%,var(--p-b) 50%) }
.pt-d315 { background-image:linear-gradient(315deg,var(--p-f) 50%,var(--p-b) 50%) }
.pt-d225 { background-image:linear-gradient(225deg,var(--p-e) 50%,var(--p-b) 50%) }
.pt-d45b { background-image:linear-gradient(45deg,var(--p-e) 50%,var(--p-b) 50%) }
.pt-d225b{ background-image:linear-gradient(225deg,var(--p-f) 50%,var(--p-b) 50%) }
.pt-hs   { background-image:linear-gradient(var(--p-b),var(--p-b) 7px,var(--p-f) 7px,var(--p-f));background-size:100% 14px }
.pt-vs   { background-image:linear-gradient(to right,var(--p-e),var(--p-e) 4px,var(--p-b) 4px,var(--p-b));background-size:9px 100% }
.pt-ds   { background-image:linear-gradient(135deg,var(--p-f) 50%,transparent 50%),linear-gradient(var(--p-b),var(--p-b) 7px,var(--p-c) 7px,var(--p-c));background-size:100%,100% 14px }
.pt-dd   { background:linear-gradient(45deg,var(--p-d) 50%,transparent 50%),radial-gradient(var(--p-a) 3px,transparent 3px),radial-gradient(var(--p-a) 3px,transparent 3px),var(--p-b);background-size:100%,22px 22px,22px 22px,100%;background-position:0 0,-2px 5px,9px 16px,0 0 }
.pt-ht   { background-color:var(--p-b);background-image:repeating-linear-gradient(45deg,var(--p-d) 0,var(--p-d) 1px,transparent 0,transparent 50%);background-size:10px 10px }
.pt-zz   { background-color:var(--p-b);background-image:linear-gradient(135deg,var(--p-d) 25%,transparent 25%) -10px 0,linear-gradient(225deg,var(--p-d) 25%,transparent 25%) -10px 0,linear-gradient(315deg,var(--p-d) 25%,transparent 25%),linear-gradient(45deg,var(--p-d) 25%,transparent 25%);background-size:20px 20px }
.pt-dt   { background-color:var(--p-b);background-image:radial-gradient(var(--p-d) 2px,transparent 2px);background-size:14px 14px }
.pt-ck   { background-color:var(--p-b);background-image:linear-gradient(45deg,var(--p-d) 25%,transparent 25%),linear-gradient(-45deg,var(--p-d) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--p-d) 75%),linear-gradient(-45deg,transparent 75%,var(--p-d) 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0 }
.pt-cr   { background-color:var(--p-b);background-image:linear-gradient(var(--p-d) 1px,transparent 1px),linear-gradient(90deg,var(--p-d) 1px,transparent 1px);background-size:20px 20px }
/* ── SIDEBAR ── */
.sidebar {
  width:var(--sw); min-height:100vh;
  background:var(--bg-dark); border-right:1px solid rgba(255,255,255,0.1);
  position:fixed; top:0; left:0; bottom:0;
  display:flex; flex-direction:column; align-items:center;
  justify-content:center; padding:20px 0; z-index:100;
}
.sidebar-logo { writing-mode:vertical-rl; font-size:11px; font-weight:900; letter-spacing:3px; color:var(--white); text-transform:uppercase; white-space:nowrap; user-select:none; }
.sidebar-logo span { color:rgba(255,255,255,0.4); font-weight:400; }
.sidebar-nav { display:flex; flex-direction:column; align-items:center; gap:2px; flex:1; margin-top:24px; }
.sidebar-nav a { writing-mode:vertical-rl; font-size:9px; font-weight:700; letter-spacing:2px; color:rgba(255,255,255,0.42); padding:9px 4px; transition:color .2s; white-space:nowrap; }
.sidebar-nav a:hover { color:var(--white); }

/* ── SIDEBAR NAV CATEGORIES ── */
.sidebar-cat-wrap { display:flex; flex-direction:column; align-items:center; gap:4px; flex:1; margin-top:20px; width:100%; padding:0 4px; }
.sidebar-cat { display:block; writing-mode:vertical-lr; font-size:11px; font-weight:700; letter-spacing:2px; color:rgba(255,255,255,0.5); text-transform:uppercase; padding:12px 0; width:100%; text-align:center; transition:color .2s, background .2s; border-radius:2px; }
.sidebar-cat:hover { color:var(--white); background:rgba(255,255,255,0.06); }
.sidebar-cat.active { color:var(--accent); }
.sb-bottom { display:flex; flex-direction:column; align-items:center; gap:6px; }
.sb-mark { width:28px; height:32px; opacity:.5; }
/* ── MAIN ── */
.main { margin-left:var(--sw); flex:1; min-width:0; }
/* ── TOPBAR ── */
.topbar { position:relative; top:auto; z-index:50; background:var(--bg-dark); border-bottom:1px solid rgba(255,255,255,0.08); padding:0 28px; height:48px; display:flex; align-items:center; justify-content:space-between; color:var(--white); }
.tb-logo { font-size:15px; font-weight:900; letter-spacing:-.5px; }
.tb-logo span { color:rgba(255,255,255,0.42); font-size:10px; font-weight:400; margin-left:5px; }
.tb-nav { display:flex; gap:18px; list-style:none; }
.tb-nav a { font-size:11px; font-weight:600; color:rgba(255,255,255,0.58); letter-spacing:.5px; transition:color .2s; }
.tb-nav a:hover { color:var(--white); }
.tb-cta { background:linear-gradient(135deg,#f0dba8 0%,#e4cd9b 50%,#c9a96e 100%); color:var(--text); padding:5px 14px; font-size:11px; font-weight:800; letter-spacing:.5px; transition:opacity .2s; }
.tb-cta:hover { opacity:.85; }
.topbar-left { display:flex; align-items:center; gap:16px; }
.topbar-date { font-size:10px; color:rgba(255,255,255,0.4); letter-spacing:.5px; }
.topbar-divider { width:1px; height:14px; background:rgba(255,255,255,0.15); }
.topbar-label { font-size:10px; font-weight:700; color:var(--accent); letter-spacing:1px; text-transform:uppercase; }
.topbar-text { font-size:11px; color:rgba(255,255,255,0.7); }
.topbar-right { display:flex; align-items:center; gap:12px; }
/* ── HERO ── */
.hero { position:relative; width:100%; min-height:520px; overflow:hidden; background:var(--bg); border-bottom:3px solid var(--accent-dark); display:flex; }
.hero-pat { width:40%; flex-shrink:0; border-right:3px solid var(--accent-dark); overflow:hidden; position:relative; background:var(--bg-dark); }
.hero-pat img { width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.hero-content { flex:1; display:flex; flex-direction:column; justify-content:center; padding:52px 56px; background:var(--bg); color:var(--text); position:relative; overflow:hidden; }
.hero-deco { position:absolute; right:-10px; bottom:-24px; font-family:'Inter',sans-serif; font-size:240px; font-weight:900; line-height:.85; letter-spacing:-14px; color:rgba(25,44,77,.045); pointer-events:none; user-select:none; white-space:nowrap; }
.hero-eyebrow { display:inline-flex; align-items:center; gap:6px; font-size:9px; font-weight:800; letter-spacing:2px; text-transform:uppercase; color:var(--g50); border:1px solid var(--border); padding:3px 10px; margin-bottom:20px; width:fit-content; }
.hero-title { font-size:clamp(26px,3.4vw,46px); font-weight:900; line-height:1.13; letter-spacing:-1.5px; margin-bottom:16px; }
.hero-title em { font-style:normal; color:var(--accent-dark); }
.hero-sub { font-size:15px; color:var(--g70); margin-bottom:28px; max-width:480px; line-height:1.85; }
.hero-feats { display:flex; flex-direction:column; gap:12px; margin-bottom:32px; }
.hf { display:flex; align-items:flex-start; gap:9px; }
.hf-icon { color:var(--accent-dark); font-size:9px; margin-top:7px; flex-shrink:0; }
.hf-txt { font-size:16px; color:var(--g70); line-height:1.6; }
.hf-txt strong { color:var(--text); font-weight:800; margin-right:6px; }
.hero-meta { display:flex; align-items:center; gap:16px; }
.hero-cta { display:inline-flex; align-items:center; gap:6px; background:linear-gradient(135deg,#f0dba8 0%,#e4cd9b 50%,#c9a96e 100%); color:var(--text); padding:11px 26px; font-size:12px; font-weight:800; transition:opacity .2s; }
.hero-cta:hover { opacity:.85; }
.hero-meta-note { font-size:11px; color:var(--g50); letter-spacing:.5px; }
/* ── NEXT UP ── */
.nextup { background:var(--bg-mid); border-bottom:1px solid var(--border); padding:0 28px; display:flex; align-items:stretch; min-height:68px; }
.nu-label { display:flex; align-items:center; gap:7px; padding-right:20px; border-right:1px solid var(--border); margin-right:20px; flex-shrink:0; }
.nu-dot { width:6px; height:6px; background:var(--accent-dark); border-radius:50%; }
.nu-label span { font-size:11px; font-weight:900; letter-spacing:2px; text-transform:uppercase; color:var(--text); }
.nu-item { display:flex; align-items:center; gap:12px; flex:1; padding:12px 0; }
.nu-thumb { width:44px; height:44px; flex-shrink:0; overflow:hidden; border:1px solid var(--border); display:grid; grid-template-columns:1fr 1fr; grid-template-rows:1fr 1fr; }
.nu-thumb .t { width:100%; height:100%; }
.nu-cat { font-size:9px; font-weight:700; letter-spacing:1px; color:var(--g50); text-transform:uppercase; margin-bottom:3px; }
.nu-title { font-size:14px; font-weight:700; line-height:1.4; color:var(--text); }
.nu-arr { font-size:16px; color:var(--g30); padding-left:12px; cursor:pointer; transition:color .2s; flex-shrink:0; }
.nu-arr:hover { color:var(--text); }
/* ── SECTION HEADING ── */
.sec-heading-wrap { padding:0 28px; }
.sec-heading { display:flex; align-items:flex-end; justify-content:space-between; padding:64px 0 28px; border-bottom:1px solid var(--border); }
.sh-en { font-family:'Inter',sans-serif; font-size:10px; font-weight:800; letter-spacing:3px; line-height:1.4; color:var(--g50); text-transform:uppercase; }
.sh-en.thin { font-weight:400; color:var(--g30); }
.sh-jp { font-size:clamp(26px,3.8vw,48px); font-weight:900; color:var(--text); letter-spacing:-1.5px; line-height:.92; margin-top:10px; }
.sh-right { display:flex; flex-direction:column; align-items:flex-end; gap:6px; padding-bottom:4px; }
.sh-view { font-size:10px; font-weight:800; letter-spacing:2px; text-transform:uppercase; color:var(--g50); border:1px solid var(--border); padding:4px 12px; transition:color .2s,border-color .2s; white-space:nowrap; }
.sh-view:hover { color:var(--text); border-color:var(--text); }
.sh-count { font-size:11px; color:var(--g30); }
.sh-left { display:flex; align-items:flex-end; gap:14px; }
/* ── PTHUMB ── */
.pthumb { width:100%; overflow:hidden; display:grid; position:relative; }
.pthumb .t { width:100%; height:100%; }
.pthumb img { width:100%; height:100%; object-fit:cover; object-position:center; display:block; grid-column:1/-1; grid-row:1/-1; }
.pthumb-label { position:absolute; bottom:0; left:0; right:0; padding:5px 9px; background:rgba(25,44,77,.6); font-size:9px; font-weight:800; letter-spacing:1.5px; text-transform:uppercase; color:rgba(255,255,255,0.9); }
/* ── AIBOU'S EYE ── */
.eye-section { padding:0 28px 68px; }
.eye-feature { display:grid; grid-template-columns:1fr 1fr; border:1px solid var(--border); overflow:hidden; margin-top:24px; }
.eye-feature-pat { display:grid; grid-template-columns:repeat(4,1fr); grid-template-rows:repeat(5,1fr); overflow:hidden; }
.eye-feature-pat .t { width:100%; height:100%; }
.eye-feature-pat img { width:100%; height:100%; object-fit:cover; object-position:center; display:block; grid-column:1/-1; grid-row:1/-1; }
.eye-feature-body { padding:44px 48px; display:flex; flex-direction:column; justify-content:center; gap:20px; border-left:1px solid var(--border); }
.eye-badge { font-size:9px; font-weight:800; letter-spacing:2px; text-transform:uppercase; color:var(--g50); border:1px solid var(--border); padding:3px 10px; width:fit-content; }
.eye-company { font-size:24px; font-weight:900; border-bottom:2px solid var(--accent-dark); display:inline-block; margin-bottom:4px; }
.eye-title-main { font-size:clamp(17px,2.2vw,22px); font-weight:900; line-height:1.35; letter-spacing:-.3px; }
.eye-excerpt { font-size:14px; color:var(--g70); line-height:1.9; }
.eye-stats { display:flex; gap:20px; }
.eye-stat .n { font-size:24px; font-weight:900; letter-spacing:-1px; color:var(--text); }
.eye-stat .l { font-size:10px; color:var(--g50); margin-top:2px; }
.eye-cta { display:inline-flex; align-items:center; gap:6px; background:linear-gradient(135deg,#f0dba8 0%,#e4cd9b 50%,#c9a96e 100%); color:var(--text); padding:10px 22px; font-size:12px; font-weight:800; width:fit-content; cursor:pointer; transition:opacity .2s; }
.eye-cta:hover { opacity:.85; }
.eye-sub-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:16px; }
.eye-card { background:var(--white); border:1px solid var(--border); overflow:hidden; cursor:pointer; transition:transform .2s,border-color .2s,box-shadow .2s; }
.eye-card:hover { transform:translateY(-3px); border-color:var(--blt); box-shadow:0 8px 24px rgba(25,44,77,.08); }
.eye-thumb { aspect-ratio:16/9; grid-template-columns:repeat(3,1fr); grid-template-rows:repeat(2,1fr); }
.eye-body { padding:16px 18px; }
.eye-tag { font-size:9px; font-weight:800; letter-spacing:1px; text-transform:uppercase; color:var(--g50); margin-bottom:6px; }
.eye-title { font-size:15px; font-weight:700; line-height:1.5; margin-bottom:9px; color:var(--text); }
.eye-meta { font-size:10px; color:var(--g50); display:flex; gap:6px; align-items:center; }
.eye-meta .dot { width:3px; height:3px; background:var(--g30); border-radius:50%; }
/* ── AIBOU TALK ── */
.talk-section { padding:0 28px 68px; }
.talk-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:24px; }
.talk-card { background:var(--white); border:1px solid var(--border); overflow:hidden; cursor:pointer; transition:transform .2s,border-color .2s,box-shadow .2s; }
.talk-card:hover { transform:translateY(-3px); border-color:var(--blt); box-shadow:0 8px 24px rgba(25,44,77,.08); }
.talk-thumb { width:100%; aspect-ratio:16/9; overflow:hidden; display:grid; position:relative; }
.talk-card.main .talk-thumb { grid-template-columns:repeat(4,1fr); grid-template-rows:repeat(3,1fr); }
.talk-card:not(.main) .talk-thumb { grid-template-columns:repeat(4,1fr); grid-template-rows:repeat(2,1fr); }
.talk-thumb .t { width:100%; height:100%; }
.talk-body { padding:18px 20px; }
.talk-label { font-size:9px; font-weight:800; letter-spacing:1px; color:var(--g50); text-transform:uppercase; margin-bottom:6px; border-left:2px solid var(--accent-dark); padding-left:7px; }
.talk-title { font-size:15px; font-weight:700; line-height:1.45; color:var(--text); }
.talk-card.main .talk-title { font-size:17px; }
.talk-person { font-size:11px; color:var(--g50); margin-top:8px; }
/* ── AIBOU WIKI（bg-mid背景） ── */
.glossary-wrap { background:var(--bg-mid); border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.glossary-inner { padding:0 28px 68px; }
.glossary-wrap .sh-en { color:var(--g50); }
.glossary-wrap .sh-jp { color:var(--text); }
.glossary-wrap .sec-heading { border-color:var(--border); }
.glossary-wrap .sh-view { color:var(--g50); border-color:var(--border); }
.glossary-wrap .sh-view:hover { color:var(--text); border-color:var(--text); }
.glossary-wrap .sh-count { color:var(--g30); }
.gl-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:24px; }
.gl-card { background:var(--white); border:1px solid var(--border); padding:22px 20px; cursor:pointer; transition:border-color .2s,box-shadow .2s; color:var(--text); }
.gl-card:hover { border-color:var(--accent-dark); box-shadow:0 4px 16px rgba(0,0,0,.12); }
.gl-term { font-size:22px; font-weight:900; letter-spacing:-.5px; margin-bottom:2px; color:var(--text); }
.gl-read { font-size:9px; color:var(--g50); letter-spacing:1px; margin-bottom:12px; }
.gl-def { font-size:14px; color:var(--g70); line-height:1.8; }
.gl-def strong { color:var(--text); font-weight:700; }
.gl-card-header { height:40px; margin:-22px -20px 18px; display:grid; grid-template-columns:repeat(6,1fr); overflow:hidden; }
.gl-card-header .t { height:100%; }
/* ── USEFUL TIPS（bg-mid背景） ── */
.tips-wrap { background:var(--bg-mid); border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.tips-inner { padding:0 28px 68px; }
.tips-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:24px; }
.tip-card { background:var(--white); border:1px solid var(--border); overflow:hidden; cursor:pointer; transition:transform .2s,border-color .2s,box-shadow .2s; display:flex; flex-direction:column; color:var(--text); }
.tip-card:hover { transform:translateY(-3px); border-color:var(--accent-dark); box-shadow:0 8px 24px rgba(25,44,77,.08); }
.tip-pat { width:100%; aspect-ratio:16/9; flex-shrink:0; display:grid; grid-template-columns:repeat(3,1fr); grid-template-rows:repeat(2,1fr); }
.tip-pat .t { width:100%; height:100%; }
.tip-body { padding:20px 22px; flex:1; }
.tip-num { font-family:'Inter',sans-serif; font-size:28px; font-weight:900; color:rgba(25,44,77,.06); letter-spacing:-1px; line-height:1; margin-bottom:8px; }
.tip-tag { font-size:9px; font-weight:800; letter-spacing:1px; text-transform:uppercase; color:var(--g50); margin-bottom:6px; }
.tip-title { font-size:15px; font-weight:700; line-height:1.5; color:var(--text); }
.tip-excerpt { font-size:13px; color:var(--g70); line-height:1.75; margin-top:8px; }
/* ── TAGS ── */
.tags-strip { padding:16px 28px; border-bottom:1px solid var(--border); display:flex; align-items:center; gap:8px; overflow-x:auto; scrollbar-width:none; }
.tags-strip::-webkit-scrollbar { display:none; }
.tags-lbl { font-size:9px; font-weight:800; letter-spacing:1px; text-transform:uppercase; color:var(--g50); white-space:nowrap; padding-right:10px; border-right:1px solid var(--border); margin-right:4px; }
.tag { padding:5px 13px; border:1px solid var(--border); font-size:10px; font-weight:600; color:var(--g70); white-space:nowrap; cursor:pointer; transition:background .2s,color .2s,border-color .2s; }
.tag:hover { background:var(--text); color:var(--white); border-color:var(--text); }
/* ── DIVIDER ── */
.divider { display:flex; align-items:center; gap:10px; padding:0 28px; }
.d-line { flex:1; height:1px; background:var(--border); }
.d-dia { width:7px; height:7px; border:1px solid var(--blt); transform:rotate(45deg); }
/* ── CTA BANNER ── */
.cta-section { padding:32px 28px; }
.cta-banner { background:var(--bg-dark); border:1px solid rgba(255,255,255,0.1); padding:60px 44px; text-align:center; position:relative; overflow:hidden; color:var(--white); }
.cta-pat-bg { position:absolute; inset:0; display:grid; grid-template-columns:repeat(8,1fr); grid-template-rows:repeat(4,1fr); opacity:.07; pointer-events:none; }
.cta-pat-bg .t { width:100%; height:100%; }
.cta-cnt { position:relative; z-index:1; }
.cta-lbl { display:inline-block; border:1px solid rgba(255,255,255,0.2); padding:4px 12px; font-size:9px; font-weight:800; letter-spacing:2px; text-transform:uppercase; color:rgba(255,255,255,0.55); margin-bottom:18px; }
.cta-title { font-size:clamp(20px,3vw,34px); font-weight:900; line-height:1.3; letter-spacing:-.5px; margin-bottom:14px; color:var(--white); }
.cta-desc { font-size:15px; color:rgba(255,255,255,0.65); max-width:480px; margin:0 auto 28px; line-height:1.85; }
.cta-acts { display:flex; gap:10px; justify-content:center; }
.btn-w { background:linear-gradient(135deg,#f0dba8 0%,#e4cd9b 50%,#c9a96e 100%); color:var(--text); padding:11px 26px; font-size:12px; font-weight:800; border:none; cursor:pointer; transition:opacity .2s; }
.btn-w:hover { opacity:.85; }
.btn-o { background:transparent; color:rgba(255,255,255,0.65); padding:11px 26px; font-size:12px; font-weight:700; border:1px solid rgba(255,255,255,0.28); cursor:pointer; transition:color .2s,border-color .2s; }
.btn-o:hover { color:var(--white); border-color:var(--white); }
/* ── NEWSLETTER ── */
.nl-wrap { padding:28px 28px; background:var(--bg-lt); border-bottom:1px solid var(--border); }
.nl-inner { display:flex; align-items:center; gap:28px; }
.nl-text h3 { font-size:15px; font-weight:800; letter-spacing:-.3px; margin-bottom:4px; color:var(--text); }
.nl-text p { font-size:13px; color:var(--g70); }
.nl-form { display:flex; gap:8px; flex-shrink:0; margin-left:auto; }
.nl-in { background:var(--white); border:1px solid var(--border); color:var(--text); padding:8px 13px; font-size:12px; width:220px; outline:none; transition:border-color .2s; }
.nl-in:focus { border-color:var(--accent-dark); }
.nl-in::placeholder { color:var(--g30); }
.nl-btn { background:linear-gradient(135deg,#f0dba8 0%,#e4cd9b 50%,#c9a96e 100%); color:var(--text); padding:8px 18px; font-size:12px; font-weight:800; border:none; cursor:pointer; transition:opacity .2s; }
.nl-btn:hover { opacity:.85; }
/* ── FOOTER ── */
.site-footer { background:var(--bg-dark); border-top:1px solid rgba(255,255,255,0.07); padding:48px 28px 28px; color:var(--white); }
.ft-top { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:36px; margin-bottom:36px; }
.ft-brand-name { font-size:17px; font-weight:900; margin-bottom:8px; color:var(--white); }
.ft-brand-name span { font-size:10px; color:rgba(255,255,255,0.42); font-weight:400; display:block; margin-top:2px; }
.ft-brand p { font-size:13px; color:rgba(255,255,255,0.55); line-height:1.8; max-width:250px; }
.ft-disc { font-size:9px; color:rgba(255,255,255,0.32); margin-top:10px; line-height:1.6; }
.ft-col h4 { font-size:9px; font-weight:800; letter-spacing:2px; text-transform:uppercase; color:rgba(255,255,255,0.42); margin-bottom:14px; padding-bottom:7px; border-bottom:1px solid rgba(255,255,255,0.1); }
.ft-col ul { list-style:none; display:flex; flex-direction:column; gap:10px; }
.ft-col ul li a { font-size:13px; color:rgba(255,255,255,0.6); transition:color .2s; }
.ft-col ul li a:hover { color:var(--white); }
.ft-bottom { padding-top:18px; border-top:1px solid rgba(255,255,255,0.07); display:flex; align-items:center; justify-content:space-between; font-size:10px; color:rgba(255,255,255,0.32); }
/* ── FADE ANIMATION ── */
.fade-up { opacity:0; transform:translateY(14px); transition:opacity .5s,transform .5s; }
.fade-up.in { opacity:1; transform:none; }
/* ── 個別記事ページ ── */
.single-wrap { padding:40px 40px 60px; max-width:1080px; margin:0 auto; }
.single-eyecatch { height:200px; display:grid; grid-template-columns:repeat(6,1fr); grid-template-rows:repeat(3,1fr); margin-bottom:28px; }
.single-eyecatch .t { width:100%; height:100%; }
.single-cat { font-size:9px; font-weight:800; letter-spacing:2px; text-transform:uppercase; color:var(--g50); margin-bottom:10px; }
.single-title { font-size:clamp(20px,3vw,32px); font-weight:900; line-height:1.3; letter-spacing:-.5px; margin-bottom:16px; color:var(--text); }
.single-meta { display:flex; align-items:center; gap:12px; font-size:11px; color:var(--g50); padding-bottom:20px; border-bottom:1px solid var(--border); margin-bottom:32px; }
.single-content { font-size:15px; line-height:1.9; color:var(--g90); }
.single-content h2:not(.fv-title) { font-size:20px; font-weight:900; margin:40px 0 16px; border-left:3px solid var(--accent-dark); padding-left:14px; color:var(--text); }
.single-content h3 { font-size:17px; font-weight:700; margin:32px 0 12px; color:var(--text); }
.single-content p { margin-bottom:20px; }
.single-content strong { color:var(--text); }
.single-content a { color:var(--g70); text-decoration:underline; }
.single-content a:hover { color:var(--text); }
.single-content img { max-width:100%; height:auto; border:1px solid var(--border); }
.single-content ul, .single-content ol { padding-left:1.5em; margin-bottom:20px; }
.single-content li { margin-bottom:6px; }
/* ── レスポンシブ ── */
@media (max-width:800px) {
  .sidebar { display:none; }
  .main { margin-left:0; }
  .topbar { padding:0 14px; }
  .tb-nav { display:none; }
  .hero { flex-direction:column; min-height:auto; border-bottom-width:2px; }
  .hero-pat { width:100%; height:200px; border-right:none; border-bottom:2px solid var(--accent-dark); }
  .hero-content { padding:28px 22px; }
  .hero-deco { font-size:140px; right:-6px; bottom:-14px; }
  .hero-sub { font-size:14px; }
  .eye-feature { grid-template-columns:1fr; }
  .eye-sub-grid { grid-template-columns:1fr 1fr; }
  .talk-grid { grid-template-columns:1fr 1fr; }
  .gl-grid, .tips-grid { grid-template-columns:1fr; }
  .ft-top { grid-template-columns:1fr 1fr; gap:20px; }
  .nl-inner { flex-wrap:wrap; }
  .nl-form { width:100%; }
  .nl-in { flex:1; }
  .sh-jp { font-size:clamp(22px,7vw,36px); }
  .single-wrap { padding:24px 16px 40px; }
}

/* =====================================================
   pattern2 FV – full-width & AIBOU IR header/sidebar
   ===================================================== */

/* Topbar – AIBOU IR style (overrides 3min Insights nav) */
.topbar { padding: 0 28px; }
.topbar-left { display: flex; align-items: center; gap: 12px; }
.topbar-label {
  font-size: 10px; font-weight: 700; letter-spacing: .1em;
  color: var(--accent); text-transform: uppercase;
}
.topbar-divider {
  width: 1px; height: 14px;
  background: rgba(255,255,255,.3); display: inline-block;
}
.topbar-text { font-size: 12px; color: rgba(255,255,255,.6); }

/* Sidebar – AIBOU IR style */
.sidebar-cat-wrap {
  display: flex; flex-direction: column;
  align-items: center; gap: 28px; margin-top: 32px;
}
.sidebar-cat {
  font-size: 11px; font-weight: 700;
  color: rgba(255,255,255,.5); letter-spacing: .05em;
  text-decoration: none; writing-mode: vertical-lr;
  text-orientation: mixed; text-align: center;
}
.sidebar-cat:hover { color: #fff; }

/* FV – full-width breakout from .single-wrap */
.p2 .p2-hero {
  margin-left: calc(-1 * (var(--sw, 52px) + 193.4375px + 40px - 52px));
  margin-left: -233.4375px;
  width: 1467px;
  max-width: none;
  margin-top: -40px;
  box-sizing: border-box;
}

/* WP admin-bar offset fix */
body.admin-bar .topbar { top: 0 !important; }

/* Roboto global font */
body,h1,h2,h3,h4,h5,h6,p,span,a,li,td,th{font-family:'Roboto','Noto Sans JP',sans-serif !important}

/* ============================================= */
/* Archive Pagination                            */
/* ============================================= */
.archive-pagination {
  text-align: center;
  margin-top: 48px;
  padding-bottom: 48px;
}
.archive-pagination .page-numbers {
  display: inline-block;
  padding: 8px 14px;
  margin: 0 3px;
  border: 1px solid var(--border, #d8dfe9);
  color: var(--navy, #192c4d);
  text-decoration: none;
  font-size: 14px;
  transition: background 0.2s, color 0.2s;
}
.archive-pagination .page-numbers:hover,
.archive-pagination .page-numbers.current {
  background: var(--navy, #192c4d);
  color: #fff;
  border-color: var(--navy, #192c4d);
}
/* NEXT UP thumbnail hide */
.nu-thumb { display: none !important; }


/* =============================================
   Mobile Responsive CSS for p2 / fv components
   ============================================= */

/* --- 800px breakpoint: sidebar hides, p2-hero offset fix --- */
@media (max-width: 800px) {
  /* p2-hero needs to reset the sidebar-offset */
  .p2 .p2-hero {
    margin-left: calc(-1 * (100vw - 100%) / 2) !important;
    width: 100vw !important;
    max-width: none !important;
  }
  /* prevent horizontal overflow at page level */
  .p2-wrap {
    overflow-x: hidden;
  }
}

/* --- 600px breakpoint: matches inline style breakpoint --- */
@media (max-width: 600px) {
  /* 3-col key-metrics -> 1-col */
  .p2 .p2-kg {
    grid-template-columns: 1fr !important;
  }
  /* fv-stock-rows-grid: keep 2-col but reduce gap */
  .p2 .fv-stock-rows-grid {
    gap: 6px !important;
  }
  /* p2-rc and p2-score: ensure 1-col on small screens */
  .p2 .p2-rc,
  .p2 .p2-score {
    grid-template-columns: 1fr !important;
  }
  /* p2-cycle: allow wrapping with scroll fallback */
  .p2 .p2-cycle {
    flex-wrap: wrap !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }
  /* p2-mstats: allow wrapping */
  .p2 .p2-mstats {
    flex-wrap: wrap !important;
    justify-content: flex-start !important;
  }
  .p2 .p2-mstat {
    flex: 1 1 calc(50% - 10px) !important;
    min-width: 130px !important;
  }
  /* fv-inner padding reduction */
  .p2 .fv-inner {
    padding: 60px 20px 0 20px !important;
  }
}

/* --- 480px breakpoint: very narrow screens --- */
@media (max-width: 480px) {
  /* fv-stock-rows-grid: 1-col on very narrow screens */
  .p2 .fv-stock-rows-grid {
    grid-template-columns: 1fr !important;
  }
  /* p2-mstats: horizontal scroll on very narrow screens */
  .p2 .p2-mstats {
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    padding-bottom: 8px !important;
  }
  .p2 .p2-mstat {
    flex: 0 0 auto !important;
    min-width: 110px !important;
  }
  /* p2-cycle: horizontal scroll */
  .p2 .p2-cycle {
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    padding-bottom: 8px !important;
  }
  .p2 .p2-cbox {
    flex: 0 0 auto !important;
    min-width: 130px !important;
  }
  /* p2-kg: tighten padding on cards */
  .p2 .p2-kc {
    padding: 20px 16px !important;
  }
  .p2 .fv-inner {
    padding: 40px 16px 0 16px !important;
  }
}

/* --- fv-stats fix: prevent label truncation on mobile --- */
@media (max-width: 600px) {
  .p2 .fv-stat {
    padding: 0 8px !important;
    gap: 8px !important;
  }
  .p2 .fv-stat:first-child {
    padding-left: 0 !important;
  }
  .p2 .fv-stat-icon {
    width: 36px !important;
    height: 36px !important;
  }
  .p2 .fv-stat-icon svg {
    width: 18px !important;
    height: 18px !important;
  }
  .p2 .fv-stat-label {
    font-size: 9px !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    line-height: 1.2 !important;
  }
  .p2 .fv-stat-value {
    font-size: 18px !important;
  }
  .p2 .fv-stats {
    padding: 16px 0 24px 0 !important;
    gap: 4px !important;
  }
}
@media (max-width: 480px) {
  .p2 .fv-stats {
    flex-wrap: wrap !important;
    gap: 12px !important;
  }
  .p2 .fv-stat {
    flex: 1 1 calc(50% - 12px) !important;
    min-width: 100px !important;
    padding: 0 !important;
  }
  .p2 .fv-stat-label {
    font-size: 10px !important;
    white-space: normal !important;
    overflow: visible !important;
  }
}


/* モバイル: CTAボタン縦組み */
@media (max-width: 600px) {
  .cta-acts { flex-direction: column; align-items: center; }
}

/* モバイル: お役立ちTips本文非表示 & 企業すごいサムネイル修正 */
@media (max-width: 800px) {
  /* お役立ちTips: 本文抜粋を非表示 */
  .tip-excerpt { display: none; }
  /* 企業のすごい サブカード: サムネイルを固定幅・見切れなし */
  .eye-sub-grid { grid-template-columns: 1fr; }
  .eye-card { display: flex; flex-direction: row; align-items: stretch; }
  .eye-card .pthumb.eye-thumb { width: 120px; min-width: 120px; flex-shrink: 0; aspect-ratio: 1/1; }
  .eye-card .eye-body { flex: 1; }
}

/* お役立ちTips: 番号（01,02...）を非表示 */
.tip-num { display: none; }


/* モバイル専用改行 */
.sp-only { display: none; }
@media (max-width: 768px) {
  .sp-only { display: inline; }
}
