/*
Theme Name: 現場技術者のキャリアノート
Theme URI: https://genba-career.com
Author: 現場技術者のキャリアノート
Author URI: https://genba-career.com
Description: 発注者（公務員）と受注者（建設コンサルタント）の両方を経験した土木技術者の個人ブログ用テーマ。図面方眼（青写真グリッド）の下地と、測量ベスト由来のライムイエローを軸に、若手土木技術者へ向けた「堅実だけど今っぽい」デザインを実装。トップページ・土木解説ハブ・記事ページに対応。
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: genba-career
Tags: blog, two-columns, custom-menu, featured-images, translation-ready
*/

:root{
    --ink:#18242B;
    --paper:#FBFAF6;
    --line:#2D6E7E;
    --lime:#BFD230;
    --sand:#E8E2D4;
    --ink-70:rgba(24,36,43,.70);
    --ink-55:rgba(24,36,43,.55);
    --grid:rgba(45,110,126,.13);
    --font-head:"Zen Kaku Gothic New",sans-serif;
    --font-body:"Noto Sans JP",sans-serif;
    --font-mono:"Roboto Mono",ui-monospace,monospace;
    --maxw:1180px;
    --shadow-card:6px 6px 0 rgba(24,36,43,.10);
    --shadow-card-h:10px 14px 0 rgba(24,36,43,.14);
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    font-family:var(--font-body);
    color:var(--ink);
    background-color:var(--paper);
    background-image:
      linear-gradient(var(--grid) 1px, transparent 1px),
      linear-gradient(90deg, var(--grid) 1px, transparent 1px),
      linear-gradient(rgba(45,110,126,.055) 1px, transparent 1px),
      linear-gradient(90deg, rgba(45,110,126,.055) 1px, transparent 1px);
    background-size:
      120px 120px,
      120px 120px,
      24px 24px,
      24px 24px;
    background-position:-1px -1px,-1px -1px,-1px -1px,-1px -1px;
    line-height:1.8;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
  }
  a{color:inherit;text-decoration:none;}
  img{max-width:100%;display:block;}
  h1,h2,h3,h4{font-family:var(--font-head);line-height:1.32;margin:0;letter-spacing:.01em;}
  p{margin:0;}

  ::selection{background:var(--lime);color:var(--ink);}

  /* focus visibility */
  a:focus-visible,button:focus-visible{
    outline:3px solid var(--ink);
    outline-offset:3px;
    border-radius:2px;
  }
  .btn:focus-visible{outline-color:var(--ink);}

  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px;}

  /* ===== mono label ===== */
  .mono{font-family:var(--font-mono);letter-spacing:.04em;}
  .eyebrow{
    font-family:var(--font-mono);
    font-size:12.5px;
    font-weight:500;
    letter-spacing:.22em;
    text-transform:uppercase;
    color:var(--line);
    display:inline-flex;
    align-items:center;
    gap:10px;
  }
  .eyebrow::before{
    content:"";
    width:26px;height:2px;background:var(--lime);display:inline-block;
  }

  /* ===== marker highlight ===== */
  .mark{
    background:linear-gradient(transparent 58%, var(--lime) 58%, var(--lime) 94%, transparent 94%);
    padding:0 .06em;
  }

  /* ===== nav ===== */
  header.nav{
    position:fixed;top:0;left:0;right:0;z-index:50;
    background:rgba(251,250,246,.72);
    backdrop-filter:saturate(150%) blur(10px);
    -webkit-backdrop-filter:saturate(150%) blur(10px);
    border-bottom:1px solid rgba(45,110,126,.18);
    transition:box-shadow .25s ease, background .25s ease;
  }
  header.nav.scrolled{box-shadow:0 6px 24px -16px rgba(24,36,43,.5);background:rgba(251,250,246,.86);}
  .nav-inner{
    max-width:var(--maxw);margin:0 auto;padding:0 28px;
    height:64px;display:flex;align-items:center;justify-content:space-between;gap:20px;
  }
  .brand{display:flex;align-items:center;gap:11px;font-family:var(--font-head);font-weight:700;font-size:16px;white-space:nowrap;}
  .brand .glyph{
    width:30px;height:30px;flex:none;border:2px solid var(--ink);border-radius:6px;
    display:grid;place-items:center;background:var(--lime);position:relative;
  }
  .brand .glyph::before{
    content:"";position:absolute;inset:5px;
    background-image:linear-gradient(var(--ink) 1px,transparent 1px),linear-gradient(90deg,var(--ink) 1px,transparent 1px);
    background-size:6px 6px;opacity:.55;
  }
  .nav-links{display:flex;align-items:center;gap:4px;}
  .nav-links a{
    font-size:14px;font-weight:500;padding:9px 13px;border-radius:7px;color:var(--ink-70);
    transition:color .15s,background .15s;
  }
  .nav-links a:hover{color:var(--ink);background:rgba(45,110,126,.10);}
  .nav-links a.feat{color:var(--line);}
  .nav-cta{
    font-family:var(--font-head);font-weight:700;font-size:13.5px;
    background:var(--ink);color:var(--paper);padding:9px 16px;border-radius:8px;white-space:nowrap;
    transition:transform .15s;
  }
  .nav-cta:hover{transform:translateY(-2px);}
  .menu-btn{display:none;background:none;border:1.5px solid var(--ink);border-radius:8px;width:42px;height:38px;cursor:pointer;align-items:center;justify-content:center;flex:none;}
  .menu-btn span,.menu-btn span::before,.menu-btn span::after{
    content:"";display:block;width:18px;height:2px;background:var(--ink);position:relative;transition:.2s;
  }
  .menu-btn span::before{position:absolute;top:-6px;}
  .menu-btn span::after{position:absolute;top:6px;}

  /* ===== reveal ===== */
  .reveal{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);}
  .reveal.in{opacity:1;transform:none;}
  .reveal.d1{transition-delay:.08s;}
  .reveal.d2{transition-delay:.16s;}
  .reveal.d3{transition-delay:.24s;}
  @media(prefers-reduced-motion:reduce){
    html{scroll-behavior:auto;}
    .reveal{opacity:1!important;transform:none!important;transition:none!important;}
  }

  /* ===== HERO ===== */
  .hero{position:relative;padding:152px 0 86px;overflow:hidden;}
  .hero-corner{
    position:absolute;top:96px;right:28px;font-family:var(--font-mono);font-size:11px;color:var(--line);
    opacity:.6;letter-spacing:.18em;text-align:right;line-height:1.9;display:none;
  }
  .hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center;}
  .hero h1{
    font-size:clamp(33px,5.1vw,62px);font-weight:900;letter-spacing:.005em;line-height:1.26;
  }
  .hero .lead{margin-top:26px;font-size:17px;color:var(--ink-70);max-width:30em;line-height:1.95;}
  .hero .cta-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px;}
  .btn{
    display:inline-flex;align-items:center;gap:10px;font-family:var(--font-head);font-weight:700;
    font-size:16px;padding:15px 26px;border-radius:11px;cursor:pointer;border:2px solid var(--ink);
    transition:transform .16s ease,box-shadow .16s ease;
  }
  .btn .arr{font-family:var(--font-mono);font-weight:500;}
  .btn-primary{background:var(--lime);color:var(--ink);box-shadow:5px 5px 0 var(--ink);}
  .btn-primary:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--ink);}
  .btn-ghost{background:transparent;color:var(--ink);box-shadow:5px 5px 0 rgba(24,36,43,.12);}
  .btn-ghost:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 rgba(24,36,43,.18);background:#fff;}

  .chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:38px;}
  .chip{
    font-family:var(--font-mono);font-size:12.5px;font-weight:500;letter-spacing:.02em;
    border:1.5px solid rgba(45,110,126,.4);border-radius:999px;padding:7px 14px 7px 12px;color:var(--line);
    background:rgba(255,255,255,.55);display:inline-flex;align-items:center;gap:8px;
  }
  .chip .dot{width:7px;height:7px;border-radius:50%;background:var(--lime);border:1px solid var(--ink);flex:none;}

  /* hero figure / portrait placeholder */
  .hero-fig{position:relative;}
  .portrait{
    position:relative;aspect-ratio:4/5;border:2px solid var(--ink);border-radius:14px;overflow:hidden;
    background:var(--sand);box-shadow:10px 10px 0 rgba(24,36,43,.10);
  }
  .ph{
    position:absolute;inset:0;display:grid;place-items:center;color:var(--line);
    background-image:repeating-linear-gradient(135deg,rgba(45,110,126,.10) 0 10px,transparent 10px 20px);
  }
  .ph .ph-label{font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;color:var(--line);text-align:center;line-height:1.7;background:rgba(251,250,246,.82);padding:8px 12px;border:1px dashed rgba(45,110,126,.5);border-radius:6px;}
  .fig-tag{
    position:absolute;left:-14px;bottom:22px;background:var(--ink);color:var(--paper);
    font-family:var(--font-mono);font-size:11.5px;letter-spacing:.08em;padding:8px 13px;border-radius:8px;
    box-shadow:4px 4px 0 var(--lime);
  }
  .fig-coord{position:absolute;top:12px;right:14px;font-family:var(--font-mono);font-size:10.5px;color:var(--ink-55);letter-spacing:.1em;}

  /* ===== section heading ===== */
  .sec{padding:84px 0;}
  .sec-head{margin-bottom:42px;max-width:42em;}
  .sec-head h2{font-size:clamp(26px,3.4vw,38px);font-weight:900;margin-top:14px;letter-spacing:.01em;}
  .sec-head p{margin-top:14px;color:var(--ink-70);font-size:15.5px;}

  /* ===== 4 entries ===== */
  .entries{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
  .ecard{
    position:relative;background:#fff;border:2px solid var(--ink);border-radius:14px;padding:26px 22px 24px;
    box-shadow:var(--shadow-card);transition:transform .18s ease,box-shadow .18s ease;display:flex;flex-direction:column;gap:14px;min-height:228px;
  }
  .ecard:hover{transform:translateY(-6px);box-shadow:var(--shadow-card-h);}
  .ecard .num{font-family:var(--font-mono);font-size:12px;color:var(--line);letter-spacing:.14em;}
  .ecard .ico{
    width:46px;height:46px;border:2px solid var(--ink);border-radius:10px;display:grid;place-items:center;background:var(--paper);
  }
  .ecard h3{font-size:20px;font-weight:700;}
  .ecard p{font-size:13.5px;color:var(--ink-70);line-height:1.8;}
  .ecard .go{margin-top:auto;font-family:var(--font-mono);font-size:12.5px;color:var(--line);display:flex;align-items:center;gap:7px;font-weight:500;}
  .ecard.feat{background:var(--ink);color:var(--paper);border-color:var(--ink);}
  .ecard.feat .ico{background:var(--lime);border-color:var(--paper);}
  .ecard.feat .num{color:var(--lime);}
  .ecard.feat p{color:rgba(251,250,246,.75);}
  .ecard.feat .go{color:var(--lime);}
  .ecard.feat::after{
    content:"ここだけの独自コンテンツ";font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;font-weight:600;
    position:absolute;top:-11px;left:18px;background:var(--lime);color:var(--ink);padding:4px 10px;border:2px solid var(--ink);border-radius:999px;
  }
  .ecard.feat . background-grid{position:absolute;inset:0;opacity:.07;pointer-events:none;}

  /* svg icon strokes */
  .ico svg{width:24px;height:24px;}
  .ecard.feat .ico svg{stroke:var(--ink);}

  /* ===== story band ===== */
  .story{
    position:relative;background:var(--ink);color:var(--paper);overflow:hidden;
  }
  .story::before{
    content:"";position:absolute;inset:0;pointer-events:none;
    background-image:
      linear-gradient(rgba(191,210,48,.10) 1px,transparent 1px),
      linear-gradient(90deg,rgba(191,210,48,.10) 1px,transparent 1px),
      linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),
      linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
    background-size:140px 140px,140px 140px,28px 28px,28px 28px;
  }
  .story .inner{position:relative;padding:88px 0;}
  .story .eyebrow{color:var(--lime);}
  .story .eyebrow::before{background:var(--lime);}
  .story h2{font-size:clamp(26px,3.4vw,40px);font-weight:900;margin-top:14px;color:var(--paper);}
  .story .sub{margin-top:16px;color:rgba(251,250,246,.72);font-size:15.5px;max-width:40em;}
  .timeline{margin-top:54px;display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative;}
  .timeline::before{
    content:"";position:absolute;top:21px;left:6%;right:6%;height:2px;
    background:repeating-linear-gradient(90deg,rgba(191,210,48,.7) 0 10px,transparent 10px 18px);
  }
  .tnode{position:relative;padding:0 16px;}
  .tnode .age{
    font-family:var(--font-mono);font-weight:600;font-size:13px;width:44px;height:44px;border-radius:50%;
    display:grid;place-items:center;background:var(--ink);border:2px solid var(--lime);color:var(--lime);position:relative;z-index:2;
  }
  .tnode.now .age{background:var(--lime);color:var(--ink);}
  .tnode h4{font-family:var(--font-head);font-size:16.5px;font-weight:700;margin-top:22px;color:var(--paper);}
  .tnode p{font-size:13px;color:rgba(251,250,246,.66);margin-top:9px;line-height:1.75;}
  .tnode .yr{font-family:var(--font-mono);font-size:10.5px;color:rgba(191,210,48,.85);letter-spacing:.12em;margin-top:6px;}

  /* ===== latest articles ===== */
  .arts{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
  .acard{
    background:#fff;border:2px solid var(--ink);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;
    box-shadow:var(--shadow-card);transition:transform .18s ease,box-shadow .18s ease;
  }
  .acard:hover{transform:translateY(-6px);box-shadow:var(--shadow-card-h);}
  .acard .thumb{aspect-ratio:16/10;position:relative;border-bottom:2px solid var(--ink);}
  .acard .cat{
    position:absolute;top:12px;left:12px;font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.06em;
    background:var(--paper);border:1.5px solid var(--ink);border-radius:999px;padding:4px 11px;color:var(--ink);
  }
  .acard.feat-cat .cat{background:var(--lime);}
  .acard .body{padding:20px 20px 22px;display:flex;flex-direction:column;gap:11px;flex:1;}
  .acard .date{font-family:var(--font-mono);font-size:11.5px;color:var(--line);letter-spacing:.08em;}
  .acard h3{font-size:18px;font-weight:700;line-height:1.5;}
  .acard p{font-size:13px;color:var(--ink-70);line-height:1.75;}
  .acard .go{margin-top:auto;font-family:var(--font-mono);font-size:12px;color:var(--line);display:flex;align-items:center;gap:7px;font-weight:500;}

  /* ===== lime CTA band ===== */
  .ctaband{position:relative;background:var(--lime);overflow:hidden;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);}
  .ctaband::before{
    content:"";position:absolute;inset:0;opacity:.5;pointer-events:none;
    background-image:linear-gradient(rgba(24,36,43,.10) 1px,transparent 1px),linear-gradient(90deg,rgba(24,36,43,.10) 1px,transparent 1px);
    background-size:30px 30px;
  }
  .ctaband .inner{position:relative;padding:70px 0;display:flex;align-items:center;justify-content:space-between;gap:36px;flex-wrap:wrap;}
  .ctaband .eyebrow{color:var(--ink);}
  .ctaband .eyebrow::before{background:var(--ink);}
  .ctaband h2{font-size:clamp(24px,3.2vw,36px);font-weight:900;margin-top:12px;max-width:16em;}
  .ctaband p{margin-top:12px;color:rgba(24,36,43,.78);font-size:15px;max-width:34em;}
  .ctaband .btn-dark{background:var(--ink);color:var(--paper);box-shadow:5px 5px 0 rgba(24,36,43,.28);white-space:nowrap;}
  .ctaband .btn-dark:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 rgba(24,36,43,.32);}

  /* ===== footer ===== */
  footer{background:var(--ink);color:var(--paper);padding:64px 0 30px;}
  .foot-top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:36px;}
  .foot-brand{display:flex;align-items:center;gap:11px;font-family:var(--font-head);font-weight:700;font-size:17px;}
  .foot-brand .glyph{width:30px;height:30px;border:2px solid var(--paper);border-radius:6px;background:var(--lime);position:relative;}
  .foot-brand .glyph::before{content:"";position:absolute;inset:5px;background-image:linear-gradient(var(--ink) 1px,transparent 1px),linear-gradient(90deg,var(--ink) 1px,transparent 1px);background-size:6px 6px;opacity:.55;}
  .foot-desc{margin-top:16px;color:rgba(251,250,246,.62);font-size:13px;line-height:1.85;max-width:26em;}
  .foot-col h4{font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;color:var(--lime);font-weight:600;text-transform:uppercase;margin-bottom:14px;}
  .foot-col a{display:block;font-size:13.5px;color:rgba(251,250,246,.78);padding:6px 0;transition:color .15s;}
  .foot-col a:hover{color:var(--lime);}
  .foot-bottom{margin-top:46px;padding-top:22px;border-top:1px solid rgba(251,250,246,.14);display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;align-items:center;}
  .affiliate{font-size:12px;color:rgba(251,250,246,.55);font-family:var(--font-mono);letter-spacing:.02em;line-height:1.7;max-width:46em;}
  .copy{font-family:var(--font-mono);font-size:11.5px;color:rgba(251,250,246,.45);letter-spacing:.06em;white-space:nowrap;}

  /* ===== responsive ===== */
  @media(max-width:980px){
    .hero-grid{grid-template-columns:1fr;gap:40px;}
    .hero-fig{max-width:380px;}
    .entries{grid-template-columns:repeat(2,1fr);}
    .arts{grid-template-columns:1fr;max-width:480px;}
    .timeline{grid-template-columns:repeat(2,1fr);gap:36px 0;}
    .timeline::before{display:none;}
    .foot-top{grid-template-columns:1fr 1fr;}
    .foot-brand-wrap{grid-column:1/-1;}
  }
  @media(max-width:680px){
    .wrap,.nav-inner,.story .inner,.ctaband .inner{padding-left:20px;padding-right:20px;}
    .nav-links,.nav-cta{display:none;}
    .menu-btn{display:flex;}
    .nav-links.open{
      display:flex;flex-direction:column;position:absolute;top:64px;left:0;right:0;
      background:rgba(251,250,246,.97);backdrop-filter:blur(8px);padding:12px 20px 18px;gap:2px;
      border-bottom:1px solid rgba(45,110,126,.18);box-shadow:0 16px 30px -18px rgba(24,36,43,.5);
    }
    .nav-links.open a{padding:12px 10px;font-size:15px;}
    .hero{padding:120px 0 64px;}
    .entries{grid-template-columns:1fr;}
    .sec{padding:64px 0;}
    .ctaband .inner{flex-direction:column;align-items:flex-start;}
    .foot-top{grid-template-columns:1fr 1fr;}
    .foot-brand-wrap{grid-column:1/-1;}
  }
  @media(min-width:1080px){.hero-corner{display:block;}}

/* =========================================================
   HUB PAGE (土木解説) — page-head / filter / field / cards
   ========================================================= */
.nav-links a{position:relative;}
.nav-links a.active{color:var(--ink);font-weight:700;}
.nav-links a.active::after{content:"";position:absolute;left:13px;right:13px;bottom:3px;height:3px;background:var(--lime);border-radius:2px;}
.scroll-jump:focus-visible{outline:3px solid var(--ink);outline-offset:3px;}

.page-head{padding:104px 0 18px;position:relative;}
.crumb{font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;color:var(--ink-55);display:flex;align-items:center;gap:9px;flex-wrap:wrap;}
.crumb a:hover{color:var(--line);}
.crumb .sep{color:rgba(45,110,126,.5);}
.crumb .cur{color:var(--ink);}
.head-main{padding:30px 0 8px;}
.head-main h1{font-size:clamp(30px,4.4vw,52px);font-weight:900;line-height:1.26;max-width:16em;}
.head-main .lead{margin-top:22px;font-size:16.5px;color:var(--ink-70);max-width:40em;line-height:1.95;}
.head-meta{margin-top:24px;display:flex;flex-wrap:wrap;gap:18px;font-family:var(--font-mono);font-size:12px;color:var(--line);letter-spacing:.06em;}
.head-meta span{display:inline-flex;align-items:center;gap:8px;}
.head-meta b{color:var(--ink);font-weight:600;}
.head-meta .ln{width:1px;height:14px;background:rgba(45,110,126,.35);}

.filter{padding:30px 0 8px;}
.filter .lbl{font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;color:var(--ink-55);text-transform:uppercase;margin-bottom:14px;}
.chiprow{display:flex;flex-wrap:wrap;gap:11px;}
.fchip{font-family:var(--font-body);font-size:14px;font-weight:500;border:1.5px solid var(--ink);border-radius:999px;padding:9px 18px;background:#fff;color:var(--ink);display:inline-flex;align-items:center;gap:9px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s;box-shadow:3px 3px 0 rgba(24,36,43,.10);}
.fchip:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 rgba(24,36,43,.14);}
.fchip .fn{font-family:var(--font-mono);font-size:11px;color:var(--line);}
.fchip.start{background:var(--lime);}
.fchip.start .fn{color:var(--ink);}

.field{padding:56px 0 8px;}
.field-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:30px;border-bottom:2px solid var(--ink);padding-bottom:20px;}
.field-head .left{display:flex;flex-direction:column;gap:12px;}
.fbadge{font-family:var(--font-mono);font-size:12px;font-weight:600;letter-spacing:.12em;color:var(--ink);background:var(--lime);border:2px solid var(--ink);border-radius:7px;padding:5px 12px;align-self:flex-start;}
.field-head h2{font-size:clamp(24px,3.2vw,34px);font-weight:900;}
.field-head .fdesc{font-size:14px;color:var(--ink-70);max-width:30em;}
.field-head .count{font-family:var(--font-mono);font-size:12px;color:var(--line);letter-spacing:.06em;white-space:nowrap;}
.field.light .fbadge{background:#fff;}

.agrid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
.pcard{position:relative;display:flex;gap:18px;background:#fff;border:2px solid var(--ink);border-radius:14px;padding:22px 22px 22px 20px;box-shadow:var(--shadow-card);transition:transform .18s ease,box-shadow .18s ease;align-items:flex-start;}
a.pcard:hover{transform:translateY(-5px);box-shadow:var(--shadow-card-h);}
.pcard .pnum{font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--paper);background:var(--ink);border-radius:8px;width:46px;height:46px;flex:none;display:grid;place-items:center;letter-spacing:.02em;}
.pcard .pbody{display:flex;flex-direction:column;gap:8px;min-width:0;}
.pcard h3{font-size:18px;font-weight:700;line-height:1.5;}
.pcard p{font-size:13px;color:var(--ink-70);line-height:1.7;}
.pcard .prow{display:flex;align-items:center;gap:12px;margin-top:4px;}
.lvl{font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.06em;padding:4px 11px;border-radius:999px;border:1.5px solid var(--ink);display:inline-flex;align-items:center;gap:6px;}
.lvl .ldot{width:7px;height:7px;border-radius:50%;flex:none;}
.lvl.intro{background:var(--lime);color:var(--ink);}
.lvl.intro .ldot{background:var(--ink);}
.lvl.std{background:#fff;color:var(--ink);}
.lvl.std .ldot{background:var(--line);}
.lvl.soon{background:transparent;color:var(--ink-55);border-color:rgba(24,36,43,.3);border-style:dashed;}
.lvl.soon .ldot{background:rgba(24,36,43,.3);}
.pcard .pgo{font-family:var(--font-mono);font-size:12px;color:var(--line);font-weight:500;margin-left:auto;display:inline-flex;align-items:center;gap:6px;}
.pcard.soon{background:repeating-linear-gradient(135deg,rgba(45,110,126,.045) 0 10px,transparent 10px 20px),#fcfbf7;border-style:dashed;border-color:rgba(24,36,43,.34);box-shadow:none;cursor:default;}
.pcard.soon .pnum{background:rgba(24,36,43,.32);}
.pcard.soon h3{color:var(--ink-55);}
.pcard.soon .pgo{color:var(--ink-55);}

.bridge{position:relative;background:var(--ink);color:var(--paper);overflow:hidden;margin-top:80px;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);}
.bridge::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(191,210,48,.10) 1px,transparent 1px),linear-gradient(90deg,rgba(191,210,48,.10) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:140px 140px,140px 140px,28px 28px,28px 28px;}
.bridge .inner{position:relative;padding:74px 0;display:flex;align-items:center;justify-content:space-between;gap:44px;flex-wrap:wrap;}
.bridge .eyebrow{color:var(--lime);}
.bridge .eyebrow::before{background:var(--lime);}
.bridge h2{font-size:clamp(24px,3.2vw,36px);font-weight:900;color:var(--paper);margin-top:14px;max-width:14em;line-height:1.34;}
.bridge p{margin-top:16px;color:rgba(251,250,246,.72);font-size:15px;max-width:34em;line-height:1.9;}
.bridge .mark{color:var(--ink);background:var(--lime);padding:.02em .16em;border-radius:3px;-webkit-box-decoration-break:clone;box-decoration-break:clone;}
.bridge-cta{flex:none;}
.btn-lime{background:var(--lime);color:var(--ink);border-color:var(--lime);box-shadow:5px 5px 0 rgba(191,210,48,.3);}
.btn-lime:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 rgba(191,210,48,.4);}

/* =========================================================
   POST / PAGE / ARCHIVE CONTENT
   ========================================================= */
.site-main{min-height:50vh;}
.post-head{padding:104px 0 0;}
.post-wrap{max-width:760px;margin:0 auto;padding:0 28px;}
.post-meta{font-family:var(--font-mono);font-size:12px;color:var(--line);letter-spacing:.06em;display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-bottom:18px;}
.post-cat{background:var(--lime);border:1.5px solid var(--ink);border-radius:999px;padding:4px 12px;color:var(--ink);font-weight:600;}
.post-title{font-size:clamp(28px,4vw,44px);font-weight:900;line-height:1.34;}
.post-thumb{margin:34px 0;border:2px solid var(--ink);border-radius:14px;overflow:hidden;box-shadow:var(--shadow-card);}
.post-thumb img{width:100%;display:block;}
.entry-content{font-size:16.5px;line-height:1.95;color:var(--ink);}
.entry-content > * + *{margin-top:1.35em;}
.entry-content h2{font-family:var(--font-head);font-size:26px;font-weight:900;margin-top:1.8em;padding-bottom:.3em;border-bottom:2px solid var(--ink);}
.entry-content h3{font-family:var(--font-head);font-size:20px;font-weight:700;margin-top:1.6em;}
.entry-content a{color:var(--line);text-decoration:underline;text-underline-offset:3px;}
.entry-content a:hover{color:var(--ink);}
.entry-content img{border-radius:10px;border:2px solid var(--ink);height:auto;}
.entry-content blockquote{border-left:4px solid var(--lime);background:#fff;margin:0;padding:14px 20px;border-radius:0 10px 10px 0;}
.entry-content code{font-family:var(--font-mono);background:var(--sand);padding:2px 6px;border-radius:4px;font-size:.9em;}
.entry-content pre{background:var(--ink);color:var(--paper);padding:18px;border-radius:10px;overflow:auto;font-family:var(--font-mono);font-size:13.5px;}
.entry-content pre code{background:none;padding:0;color:inherit;}
.entry-content ul,.entry-content ol{padding-left:1.4em;}
.entry-content li{margin-top:.5em;}
.entry-content table{width:100%;border-collapse:collapse;}
.entry-content th,.entry-content td{border:1.5px solid var(--ink);padding:9px 12px;text-align:left;}
.entry-content th{background:var(--sand);font-family:var(--font-head);}
.post-foot{margin-top:48px;padding-top:24px;border-top:2px solid var(--ink);display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
.tag-pill{font-family:var(--font-mono);font-size:12px;border:1.5px solid var(--line);color:var(--line);border-radius:999px;padding:5px 12px;}
.archive-head{padding:104px 0 18px;}
.archive-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.pagenav{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:54px;font-family:var(--font-mono);font-size:13px;}
.pagenav .page-numbers{border:2px solid var(--ink);border-radius:8px;padding:9px 15px;background:#fff;box-shadow:3px 3px 0 rgba(24,36,43,.10);transition:transform .15s,box-shadow .15s;}
.pagenav a.page-numbers:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 rgba(24,36,43,.14);}
.pagenav .page-numbers.current{background:var(--lime);}
.notfound{padding:140px 0;text-align:center;}
.notfound .big{font-family:var(--font-mono);font-size:clamp(60px,14vw,140px);font-weight:600;color:var(--line);letter-spacing:.05em;line-height:1;}
.notfound h1{font-size:28px;font-weight:900;margin-top:18px;}
.notfound p{margin-top:14px;color:var(--ink-70);}
.searchform{display:flex;gap:10px;max-width:440px;margin:24px auto 0;}
.searchform input[type=search]{flex:1;border:2px solid var(--ink);border-radius:10px;padding:12px 16px;font-family:var(--font-body);font-size:15px;background:#fff;}
.searchform input[type=search]:focus-visible{outline:3px solid var(--lime);outline-offset:2px;}

@media(max-width:860px){
  .agrid{grid-template-columns:1fr;}
  .archive-grid{grid-template-columns:1fr;max-width:480px;margin:0 auto;}
  .bridge .inner{flex-direction:column;align-items:flex-start;}
}
@media(max-width:680px){
  .bridge .inner{padding-left:20px;padding-right:20px;}
  .page-head{padding:92px 0 8px;}
  .post-head{padding:92px 0 0;}
  .pcard{flex-direction:column;gap:14px;}
  .pcard .prow{flex-wrap:wrap;}
  .pcard .pgo{margin-left:0;}
  .nav-links.open a.active::after{display:none;}
}

/* =========================================================
   ACCESSIBILITY & WP CHROME
   ========================================================= */
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.skip-link{position:absolute;left:-9999px;top:0;z-index:100;background:var(--ink);color:var(--paper);padding:12px 18px;border-radius:0 0 8px 0;font-family:var(--font-head);font-weight:700;}
.skip-link:focus{left:0;outline:3px solid var(--lime);outline-offset:2px;}
.brand .custom-logo{width:30px;height:30px;border-radius:6px;display:block;}
.brand img.custom-logo{border:2px solid var(--ink);}
/* WP alignments inside post content */
.entry-content .alignwide{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);max-width:100vw;width:auto;}
.entry-content .aligncenter{margin-left:auto;margin-right:auto;display:block;}
.entry-content .alignleft{float:left;margin:0 1.4em 1em 0;}
.entry-content .alignright{float:right;margin:0 0 1em 1.4em;}
.entry-content figure{margin:0;}
.entry-content figcaption{font-family:var(--font-mono);font-size:12px;color:var(--ink-55);margin-top:8px;text-align:center;}
.page-links{font-family:var(--font-mono);font-size:13px;margin-top:24px;display:flex;gap:8px;align-items:center;}
.comment-list{list-style:none;padding:0;margin:36px 0 0;}
.comment-list .comment-body{border:2px solid var(--ink);border-radius:12px;padding:16px 18px;margin-bottom:16px;background:#fff;}
.comment-respond{margin-top:36px;}
.comment-form input[type=text],.comment-form input[type=email],.comment-form input[type=url],.comment-form textarea{width:100%;border:2px solid var(--ink);border-radius:10px;padding:10px 14px;font-family:var(--font-body);font-size:15px;background:#fff;margin-top:6px;}
.comment-form label{font-family:var(--font-head);font-weight:700;font-size:14px;}
.comment-form .form-submit input{font-family:var(--font-head);font-weight:700;background:var(--lime);border:2px solid var(--ink);border-radius:11px;padding:13px 24px;cursor:pointer;box-shadow:5px 5px 0 var(--ink);}


/* まとめ（ピラー）バッジ */
.lvl.guide{background:var(--line);color:var(--paper);border-color:var(--line);}
.lvl.guide .ldot{background:var(--paper);}
