@charset "UTF-8";
/* ============================================================
   長田紘一郎 公式サイト  TOPページ
   ============================================================ */

/* ---- Design tokens ---- */
:root{
  --green:        #37b494;   /* brand green */
  --green-deep:   #2a9c80;
  --green-text:   #2eae8d;   /* eyebrow / title text on light bg */
  --blue:         #4eade1;   /* policy card blue (カンプ実測) */
  --blue-deep:    #2f93c8;
  --band-blue:    #036ba8;   /* BLOG帯バナーの濃いオーシャンブルー（カンプ実測） */
  --date:         #1f97cf;   /* blog date */
  --mint:         #e1f4f0;   /* light section bg */
  --gray:         #e4e4e4;   /* blog section bg */
  --ink:          #2b2b2b;
  --ink-soft:     #4a4a4a;
  --olive:        #a9c23e;   /* heading accent bar */
  --white:        #ffffff;
  --wrap:         1120px;
  --header-h:     92px;
  --font-jp: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", Meiryo, sans-serif;
  --font-en: "Montserrat", "Noto Sans JP", sans-serif;
}

/* ---- Reset ---- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;overflow-x:clip}
body{overflow-x:clip;
  font-family:var(--font-jp);
  color:var(--ink);
  line-height:1.9;
  background:var(--white);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  word-break:break-word;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
ul{list-style:none}
section{position:relative}

/* ---- Utility ---- */
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}

/* eyebrow label  −POLICY− */
.eyebrow{
  font-family:var(--font-en);
  font-weight:700;
  letter-spacing:.18em;
  font-size:34px;
  text-align:center;
  color:var(--green-text);
  margin-bottom:46px;
}
.eyebrow::before{content:"\2014\00a0"}
.eyebrow::after{content:"\00a0\2014"}
.eyebrow.on-green{color:var(--white)}

/* section heading with olive bar  ▌政治理念 */
.sec-head{
  display:flex;align-items:center;gap:16px;
  font-size:30px;font-weight:700;letter-spacing:.04em;
  color:var(--green-text);                 /* 見出しを緑（POLICY/BLOGと同色） */
  margin-bottom:34px;
}
.sec-head::before{
  content:"";width:9px;height:38px;background:var(--olive);
  flex:none;border-radius:1px;
}
.sec-head.on-green{color:var(--white)}

/* ============================================================
   HEADER
   ============================================================ */
.site-header{
  position:sticky;top:0;z-index:100;
  height:var(--header-h);
  background:var(--green) url("../img/bg_01.webp") center/cover no-repeat;
  color:var(--white);
}
.site-header .wrap{
  max-width:1500px;height:100%;
  display:flex;align-items:center;justify-content:space-between;
}
.brand{display:flex;flex-direction:column;line-height:1.25}
.brand .brand-top{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;letter-spacing:.02em}
.brand .party-logo{height:17px;width:auto;display:block}
.brand .brand-name{display:flex;align-items:baseline;gap:12px}
.brand .brand-name strong{font-size:27px;font-weight:900;letter-spacing:.06em}
.brand .brand-name span{font-size:13px;font-weight:500;opacity:.95}

.gnav ul{display:flex;align-items:center;gap:46px}
.gnav a{
  font-size:17px;font-weight:600;letter-spacing:.04em;
  position:relative;padding-bottom:6px;
}
.gnav a.is-current::after,
.gnav a:hover::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--white);
}
.gnav .en{font-family:var(--font-en);font-weight:700}

/* hamburger (mobile) */
.nav-toggle{display:none;width:54px;height:54px;border:none;background:rgba(255,255,255,.18);
  border-radius:6px;cursor:pointer;position:relative}
.nav-toggle span{position:absolute;left:14px;right:14px;height:2.5px;background:#fff;transition:.3s}
.nav-toggle span:nth-child(1){top:18px}
.nav-toggle span:nth-child(2){top:26px}
.nav-toggle span:nth-child(3){top:34px}
.nav-toggle.is-open span:nth-child(1){top:26px;transform:rotate(45deg)}
.nav-toggle.is-open span:nth-child(2){opacity:0}
.nav-toggle.is-open span:nth-child(3){top:26px;transform:rotate(-45deg)}

/* ============================================================
   HERO  (complete artwork — text is baked into the image)
   ============================================================ */
.visually-hidden{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0;
}
.hero{line-height:0;background:var(--green)}
.hero img{width:100%;display:block}

/* ============================================================
   党員募集（ヒーローと政治理念の間 / mint背景）
   ============================================================ */
.s-recruit{background:var(--mint);padding:56px 0 60px}
.recruit-box{
  max-width:920px;margin:0 auto;
  border:1.5px solid var(--blue);
  padding:38px 40px 40px;text-align:center;
}
.recruit-title{
  color:var(--blue);font-size:25px;font-weight:800;letter-spacing:.04em;
  display:inline-block;padding-bottom:10px;margin-bottom:22px;position:relative;
}
.recruit-title::after{
  content:"";position:absolute;left:12%;right:12%;bottom:0;height:2px;background:var(--blue);
}
.recruit-lead{font-size:15.5px;line-height:1.95;margin-bottom:26px}
.recruit-btn{
  display:inline-flex;align-items:center;gap:14px;
  background:var(--blue);color:#fff;border-radius:999px;
  padding:13px 30px;transition:.25s;
}
.recruit-btn:hover{background:var(--blue-deep);transform:translateY(-2px)}
.recruit-btn .r-logo{height:26px;width:auto;display:block}
.recruit-btn .r-txt{font-size:12.5px;line-height:1.35;text-align:left;font-weight:600}
.recruit-btn .r-arrow{font-size:18px;line-height:1}

/* ============================================================
   POLICY 1  政治理念  (green textured)
   ============================================================ */
.s-rinen{
  background:var(--green) url("../img/bg_01.webp") center/cover no-repeat;
  color:var(--white);
  padding:64px 0 76px;
}
.s-rinen .eyebrow{margin-top:0}
.rinen-grid{display:grid;grid-template-columns:300px 1fr;gap:30px;align-items:start}
.rinen-grid .sec-head{margin-bottom:0}
.rinen-body{font-size:16px;line-height:2.05}

/* ============================================================
   POLICY 2  3つの政策  (mint)
   ============================================================ */
.s-policy{background:var(--mint);padding:70px 0 96px}
.s-policy .eyebrow{color:var(--green-text)}

.policy{display:flex;align-items:center;gap:0;margin-top:72px;position:relative;z-index:1}
.policy:first-of-type{margin-top:44px}
.policy-02{flex-direction:row-reverse}

.policy-card{
  background:var(--blue);color:var(--white);border-radius:2px;
  padding:44px 48px 48px;
  flex:0 0 56%;position:relative;z-index:1;
}
/* テキストが重なり画像で隠れないよう、画像側の内側余白を確保 */
.policy-01 .policy-card,.policy-03 .policy-card{padding-right:64px}
.policy-02 .policy-card{padding-left:64px}
.policy-card .num{font-family:var(--font-en);font-size:64px;font-weight:800;line-height:1}
.policy-card .ttl{font-size:27px;font-weight:800;margin:6px 0 20px}
.policy-card p{font-size:16px;line-height:2;font-weight:700}   /* 1pt大きく＆太字 */

/* 重なり合成画像（1枚／透過staggered）。カードの外側エッジへ少しだけ重ねる */
.policy .imgs{flex:1 1 auto;position:relative;z-index:2;min-width:0}
.policy .imgs img{width:100%;display:block}
.policy-01 .imgs,.policy-03 .imgs{margin-left:-2%}
.policy-02 .imgs{margin-right:-2%}

.policy-list{margin-top:0}
.policy-list li{
  position:relative;padding-left:24px;margin-bottom:14px;
  font-size:15.5px;line-height:1.95;
}
.policy-list li::before{
  content:"";position:absolute;left:0;top:11px;
  width:11px;height:11px;background:var(--blue);
}
.policy-list li .sub{display:block}

/* 箇条書きボックス：青パネル/画像の下端が上に重なるよう引き上げ（カードが前面） */
.policy-extra{
  width:86%;margin:-40px auto 0;position:relative;z-index:0;
  background:#fff;border:1.5px solid var(--blue);
  padding:58px 44px 30px;font-size:15.5px;
}

/* ============================================================
   PROFILE  プロフィール  (green textured)
   ============================================================ */
.s-profile{
  background:var(--green) url("../img/bg_02.webp") center/cover no-repeat;
  color:var(--white);
  padding:64px 0 84px;
}
.profile-grid{display:grid;grid-template-columns:1fr 460px;gap:56px;align-items:start;margin-top:6px}
.profile-name{font-size:21px;font-weight:700;letter-spacing:.04em}
.profile-name small{font-size:15px;font-weight:500;margin-left:6px}
.profile-born{font-size:15px;margin-top:6px}
.profile-meta{margin:28px 0;font-size:15px;line-height:2}
.profile-bio{font-size:15px;line-height:2.05}
.profile-photo img{width:100%;border-radius:2px}

/* ============================================================
   BLOG  ブログ  (gray)
   ============================================================ */
.s-blog{background:var(--gray);padding:66px 0 86px}
.s-blog .eyebrow{color:var(--green-text)}
.s-blog .sec-head{margin-bottom:18px}
.blog-lead{font-size:18px;margin:0 0 36px}

.blog-row{display:flex;align-items:center;gap:8px}
.blog-arrow{
  flex:none;width:48px;height:48px;border:none;background:none;cursor:pointer;
  color:var(--green-text);font-size:30px;line-height:1;
}
.blog-list{
  flex:1;display:grid;grid-template-columns:repeat(4,1fr);gap:30px;
}
.blog-card .thumb{width:100%;aspect-ratio:4/2.6;overflow:hidden;background:#ccc}
.blog-card .thumb img{width:100%;height:100%;object-fit:cover}
.blog-card .date{color:var(--date);font-family:var(--font-en);font-weight:600;font-size:21px;margin:14px 0 4px}
.blog-card .b-ttl{font-size:15px;line-height:1.7}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{
  background:var(--green) url("../img/bg_03.webp") center/cover no-repeat;
  color:var(--white);
  padding:54px 0 40px;
}
.footer-grid{
  max-width:1500px;margin:0 auto;padding:0 24px;
  display:flex;justify-content:space-between;align-items:flex-start;gap:40px;flex-wrap:wrap;
}
.footer-office .office-name{font-size:24px;font-weight:800;letter-spacing:.04em}
.footer-office .office-name small{font-size:16px;font-weight:600;margin-right:10px}
.footer-office .office-addr{font-size:15px;line-height:1.9;margin-top:14px;opacity:.95}
.footer-right{display:flex;flex-direction:column;align-items:flex-end;gap:28px}
.fnav ul{display:flex;gap:0;align-items:center}
.fnav li+li{border-left:1px solid rgba(255,255,255,.5);}
.fnav a{font-size:16px;font-weight:600;padding:0 22px;letter-spacing:.04em}
.fnav .en{font-family:var(--font-en);font-weight:700}
.copyright{font-size:12.5px;opacity:.85;letter-spacing:.02em}

/* ============================================================
   RESPONSIVE  (SP)
   ============================================================ */
@media (max-width:900px){
  :root{--header-h:64px}

  /* header */
  .site-header .wrap{padding:0 16px}
  .brand .brand-top{font-size:11px;gap:6px}
  .brand .party-logo{height:15px}
  .brand .brand-name strong{font-size:21px}
  .brand .brand-name span{font-size:11px}
  .nav-toggle{display:block;width:46px;height:46px}
  .nav-toggle span{left:12px;right:12px}
  .nav-toggle span:nth-child(1){top:15px}
  .nav-toggle span:nth-child(2){top:22px}
  .nav-toggle span:nth-child(3){top:29px}
  .nav-toggle.is-open span:nth-child(1){top:22px}
  .nav-toggle.is-open span:nth-child(3){top:22px}
  .gnav{
    position:fixed;inset:var(--header-h) 0 auto 0;
    background:var(--green-deep);
    transform:translateY(-130%);transition:transform .35s;
    padding:8px 0 18px;
  }
  .gnav.is-open{transform:translateY(0)}
  .gnav ul{flex-direction:column;gap:0}
  .gnav li{width:100%;border-top:1px solid rgba(255,255,255,.15)}
  .gnav a{display:block;padding:16px 24px}
  .gnav a.is-current::after,.gnav a:hover::after{display:none}

  /* eyebrow + heads */
  .eyebrow{font-size:26px;margin-bottom:30px}
  .sec-head{font-size:24px;gap:12px}
  .sec-head::before{height:30px;width:7px}

  /* hero */
  .hero img{width:100%}

  /* recruit */
  .s-recruit{padding:38px 0 42px}
  .recruit-box{padding:26px 20px 28px}
  .recruit-title{font-size:20px}
  .recruit-lead{font-size:14px;text-align:left}
  .recruit-btn{padding:12px 22px}

  /* rinen */
  .s-rinen{padding:46px 0 52px}
  .rinen-grid{grid-template-columns:1fr;gap:18px}
  .rinen-body{font-size:15px;line-height:1.95}

  /* policy */
  .s-policy{padding:48px 0 60px}
  .policy,.policy-02,.policy:first-of-type{flex-direction:column;margin-top:44px}
  .policy-card,
  .policy-01 .policy-card,
  .policy-02 .policy-card,
  .policy-03 .policy-card{flex:none;width:100%;margin:0;padding:32px 24px 50px}
  .policy-card .num{font-size:50px}
  .policy-card .ttl{font-size:22px}
  /* 写真は若干小さく・中央寄せで、上の青パネルに少し重ねる（下の白Box文字にはかけない） */
  .policy .imgs,
  .policy-01 .imgs,.policy-02 .imgs,.policy-03 .imgs{
    width:82%;margin:-34px auto 0 !important;transform:none;position:relative;z-index:3;
  }
  .policy .imgs img{width:100%}
  .policy-extra{width:100%;margin:16px auto 0;padding:22px 20px;font-size:15px}
  .policy-list li{font-size:15px}

  /* profile */
  .s-profile{padding:46px 0 56px}
  .profile-grid{grid-template-columns:1fr;gap:28px}
  .profile-photo{order:-1}
  .profile-bio,.profile-meta,.profile-name,.profile-born{font-size:14.5px}

  /* blog */
  .s-blog{padding:46px 0 56px}
  .blog-lead{font-size:16px;margin-bottom:24px}
  .blog-arrow{display:none}
  .blog-list{grid-template-columns:1fr;gap:0}
  .blog-card{display:grid;grid-template-columns:120px 1fr;grid-template-rows:auto auto;
    column-gap:18px;align-items:start;padding:16px 0;border-bottom:1px solid #cfcfcf}
  .blog-card>a,.blog-card>.thumb{grid-column:1;grid-row:1 / span 2}
  .blog-card .thumb{aspect-ratio:1/1}
  .blog-card .date{grid-column:2;grid-row:1;margin:0 0 4px;font-size:19px}
  .blog-card .b-ttl{grid-column:2;grid-row:2;align-self:start}

  /* footer */
  .site-footer{padding:42px 0 34px}
  .footer-grid{flex-direction:column;gap:26px}
  .footer-office .office-name{font-size:20px}
  .footer-right{align-items:flex-start;width:100%;gap:18px}
  .fnav ul{flex-wrap:wrap;gap:8px 0}
  .fnav li:first-child a{padding-left:0}
  .fnav li+li{border-left:1px solid rgba(255,255,255,.4)}
  .fnav a{padding:0 16px;font-size:15px}
  .copyright{font-size:11px}
}

@media (max-width:600px){
  .blog-card{grid-template-columns:110px 1fr}
}

/* reduced motion */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition:none !important}
}

/* ============================================================
   下層ページ（BLOG一覧 / 記事 / 検索 / 404）
   TOPと同じデザイン言語（緑×ブルー / oliveバー / テクスチャ背景）
   ============================================================ */

/* ---- BLOG帯バナー（カンプ：BLOG｜ブログ の斜め帯／濃いオーシャンブルー） ---- */
.blog-band{
  display:inline-flex;align-items:center;gap:18px;
  background:var(--band-blue);color:var(--white);
  padding:16px 56px 16px 34px;
  /* 記事ページ用：左辺フラッシュ・右辺を斜めにカット */
  clip-path:polygon(0 0, 100% 0, calc(100% - 28px) 100%, 0 100%);
}
.blog-band__en{
  font-family:var(--font-en);font-weight:800;font-size:30px;letter-spacing:.06em;line-height:1;
}
.blog-band__jp{
  position:relative;padding-left:19px;font-size:15px;font-weight:500;letter-spacing:.04em;
}
.blog-band__jp::before{
  content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:1px;height:20px;background:rgba(255,255,255,.7);
}

/* 一覧：写真メインビジュアル＋帯（右下・左辺斜め） */
.blog-mv{position:relative;overflow:hidden}
.blog-mv__photo{width:100%;aspect-ratio:1920/632;background:#0c1a16;overflow:hidden}
.blog-mv__photo img{width:100%;height:100%;object-fit:cover;object-position:left center}
.blog-mv .blog-band{
  position:absolute;right:5%;bottom:14.5%;
  width:clamp(280px, 33%, 560px);height:clamp(62px, 19%, 110px);
  justify-content:center;gap:clamp(14px,1.6vw,22px);padding:0;
  clip-path:polygon(28px 0, 100% 0, 100% 100%, 0 100%);
}
.blog-mv .blog-band__en{font-size:clamp(26px,2.6vw,44px)}
.blog-mv .blog-band__jp{font-size:clamp(15px,1.3vw,20px);padding-left:clamp(16px,1.4vw,24px)}

/* 記事・アーカイブ等：帯のみ（左上） */
.blog-band-row{padding-top:0}
.blog-band-row .blog-band{margin-left:0}

/* ---- パンくず ---- */
.breadcrumb{max-width:var(--wrap);margin:0 auto;padding:16px 24px 0;
  font-size:12.5px;color:var(--ink-soft)}
.breadcrumb a{color:var(--green-text);font-weight:600}
.breadcrumb span+span::before{content:"›";margin:0 8px;color:#bbb}

/* ---- コンテンツ枠 ---- */
.l-content{max-width:var(--wrap);margin:0 auto;padding:60px 24px 96px}
.l-content--narrow{max-width:880px}

/* ============================================================
   記事一覧（カードグリッド）
   ============================================================ */
.cat-filter{display:flex;flex-wrap:wrap;gap:10px 12px;justify-content:flex-start;margin:0 0 44px}
.cat-filter a{
  font-size:13.5px;font-weight:600;color:var(--date);background:#fff;
  border:1px solid #bfe3f3;border-radius:6px;padding:6px 15px;transition:.25s;
}
.cat-filter a:not(.cat-all)::before{content:"#";margin-right:1px;opacity:.85}
.cat-filter a:hover,.cat-filter a.is-active{background:var(--blue);border-color:var(--blue);color:#fff}

.post-list{display:grid;grid-template-columns:repeat(3,1fr);gap:50px 30px}

/* カンプ準拠：枠なしカード（写真 → 日付 → タイトル） */
.post-card{display:flex;flex-direction:column;background:none;box-shadow:none}
.post-card__thumb{display:block;aspect-ratio:16/11;overflow:hidden;background:#dfe9e6;border-radius:2px}
.post-card__thumb img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.post-card:hover .post-card__thumb img{transform:scale(1.05)}
.post-card__date{
  font-family:var(--font-en);font-weight:600;font-size:15px;color:var(--date);
  letter-spacing:.02em;margin:15px 0 5px;
}
.post-card__title{
  font-size:15px;font-weight:500;line-height:1.75;color:var(--ink);margin:0;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.post-card__title a{color:inherit;transition:color .25s}
.post-card:hover .post-card__title a{color:var(--green-text)}

/* ---- ページネーション ---- */
.osada-pagination{display:flex;justify-content:center;gap:8px;margin-top:64px;flex-wrap:wrap}
.osada-pagination .page-numbers{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:44px;height:44px;padding:0 12px;
  border:1px solid #cfe6df;color:var(--green-text);font-weight:600;border-radius:4px;
  font-family:var(--font-en);transition:.25s;
}
.osada-pagination .page-numbers.current,
.osada-pagination .page-numbers:hover{background:var(--green);border-color:var(--green);color:#fff}
.osada-pagination .page-numbers.dots{border:none}

/* ============================================================
   記事ページ（single）
   ============================================================ */
.article{max-width:none;margin:0;padding:0;background:none;box-shadow:none}
.article__head{margin:26px 0 28px}
.article__meta{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.article__date{display:inline-block;font-family:var(--font-en);font-weight:600;font-size:17px;color:var(--date);margin-bottom:12px}
.article__title{font-size:29px;font-weight:800;line-height:1.5;letter-spacing:.02em}
.article__thumb{margin:0 0 34px;border-radius:4px;overflow:hidden}
.article__thumb img{width:100%;display:block}

/* 本文タイポグラフィ（Gutenbergブロック対応） */
.entry-body{font-size:16px;line-height:2.05;color:#333}
.entry-body > *:first-child{margin-top:0}
.entry-body p{margin:0 0 22px}
.entry-body h2{font-size:24px;font-weight:800;line-height:1.5;margin:48px 0 18px;
  padding:6px 0 6px 16px;border-left:8px solid var(--olive)}
.entry-body h3{font-size:20px;font-weight:700;margin:36px 0 14px;
  padding-bottom:8px;border-bottom:2px solid var(--mint)}
.entry-body h4{font-size:17px;font-weight:700;margin:28px 0 12px}
.entry-body a{color:var(--green-text);text-decoration:underline;text-underline-offset:2px}
.entry-body a:hover{color:var(--green-deep)}
.entry-body strong{font-weight:700}
.entry-body ul{list-style:disc;margin:0 0 24px;padding-left:1.5em}
.entry-body ol{list-style:decimal;margin:0 0 24px;padding-left:1.5em}
.entry-body li{margin-bottom:8px}
.entry-body ul li::marker{color:var(--green)}
.entry-body img,.entry-body figure img,.entry-body .wp-block-image img{
  border-radius:6px;height:auto}
.entry-body figure{margin:0 0 26px}
/* 本文内ギャラリー（カンプの3枚並び）。新エディタ/旧[gallery]両対応 */
.entry-body .wp-block-gallery{display:flex;flex-wrap:wrap;gap:14px;margin:0 0 28px}
.entry-body .wp-block-gallery .wp-block-image{margin:0;flex:1 1 0;min-width:0}
.entry-body .wp-block-gallery .wp-block-image img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;border-radius:2px;display:block}
.entry-body .gallery{display:flex;flex-wrap:wrap;gap:14px;margin:0 0 28px}
.entry-body .gallery .gallery-item{margin:0!important;flex:1 1 0;min-width:0;width:auto!important}
.entry-body .gallery .gallery-item img{width:100%;aspect-ratio:4/3;object-fit:cover;border:none!important;border-radius:2px}
.entry-body figcaption,.entry-body .wp-element-caption{
  font-size:12.5px;color:var(--ink-soft);text-align:center;margin-top:8px}
.entry-body blockquote,.entry-body .wp-block-quote{
  border-left:4px solid var(--green);background:var(--mint);
  padding:18px 24px;margin:0 0 26px;border-radius:0 6px 6px 0}
.entry-body blockquote p:last-child{margin-bottom:0}
.entry-body .wp-block-table,.entry-body table{
  width:100%;border-collapse:collapse;margin:0 0 26px;font-size:14.5px}
.entry-body th,.entry-body td{border:1px solid #dde7e4;padding:10px 14px;text-align:left}
.entry-body th{background:var(--mint);font-weight:700}
.entry-body hr{border:none;border-top:1px solid #e2e2e2;margin:40px 0}
.entry-body code{background:#eef4f2;padding:2px 7px;border-radius:4px;font-size:14px}
.entry-body pre{background:#1f2a28;color:#e6f2ee;padding:18px 20px;border-radius:6px;overflow:auto;margin:0 0 26px}
.entry-body .wp-block-button__link{
  display:inline-block;background:var(--green);color:#fff;border-radius:4px;
  padding:12px 28px;font-weight:700;text-decoration:none}

/* タグ */
.article__tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:36px}
.article__tags a{font-size:13px;color:var(--date);background:#fff;border:1px solid #bfe3f3;
  border-radius:6px;padding:5px 14px;transition:.25s}
.article__tags a:hover{background:var(--blue);border-color:var(--blue);color:#fff}
.article__tags a::before{content:"#";opacity:.85;margin-right:1px}

/* SNSシェア */
.share{margin-top:40px;padding-top:28px;border-top:1px solid #ececec}
.share__label{font-size:12.5px;font-weight:700;letter-spacing:.08em;color:var(--ink-soft);margin-bottom:14px;text-align:center}
.share__btns{display:flex;justify-content:center;gap:14px}
.share__btns a,.share__btns button{
  width:46px;height:46px;border-radius:50%;border:none;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
  color:#fff;transition:transform .2s ease, opacity .2s ease;text-decoration:none}
.share__btns a:hover,.share__btns button:hover{transform:translateY(-3px);opacity:.9}
.share__btns svg{width:20px;height:20px;fill:currentColor}
.share-x{background:#000}
.share-fb{background:#1877f2}
.share-ig{background:radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%)}
.share-line{background:#06c755}
.share-copy{background:var(--green)}
.share__toast{
  text-align:center;font-size:12.5px;color:var(--green-deep);margin-top:12px;
  opacity:0;transition:opacity .3s ease}
.share__toast.show{opacity:1}

/* 記事フッター（前の記事へ ／ 一覧へ戻る ／ 次の記事へ） */
.post-foot{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;margin-top:52px}
.post-foot__side{font-size:14px;font-weight:600}
.post-foot__side--right{text-align:right}
.post-foot__side a{color:var(--green-text);transition:color .25s}
.post-foot__side a:hover{color:var(--green-deep)}
.post-foot__back{
  justify-self:center;display:inline-block;background:var(--green);color:#fff;font-weight:700;
  padding:13px 42px;border-radius:4px;letter-spacing:.04em;transition:.25s}
.post-foot__back:hover{background:var(--green-deep)}

/* 著者欄 */
.author-box{
  display:flex;gap:20px;align-items:flex-start;margin-top:44px;
  background:var(--mint);border-radius:8px;padding:26px 28px}
.author-box__avatar{width:84px;height:84px;border-radius:50%;overflow:hidden;flex:none;background:#cfe3dc}
.author-box__avatar img{width:100%;height:100%;object-fit:cover}
.author-box__role{font-size:12px;color:var(--green-deep);font-weight:700;letter-spacing:.04em}
.author-box__name{font-size:19px;font-weight:800;margin:2px 0 8px}
.author-box__bio{font-size:13.5px;line-height:1.85;color:var(--ink-soft)}

/* 前後記事 */
.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:48px}
.post-nav a{display:flex;gap:14px;align-items:center;background:#fff;border:1px solid #e6efec;
  border-radius:6px;padding:12px;transition:.25s;overflow:hidden}
.post-nav a:hover{border-color:var(--green);box-shadow:0 6px 18px rgba(20,60,50,.10)}
.post-nav .pn-next{flex-direction:row-reverse;text-align:right}
.post-nav .pn-thumb{width:64px;height:64px;border-radius:4px;object-fit:cover;flex:none;background:#dfe9e6}
.post-nav .pn-dir{font-family:var(--font-en);font-size:11px;color:var(--green-text);font-weight:700}
.post-nav .pn-ttl{font-size:13.5px;font-weight:600;line-height:1.5;color:var(--ink);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* 関連記事 */
.related{background:var(--gray);padding:64px 0 80px}
.related__inner{max-width:var(--wrap);margin:0 auto;padding:0 24px}
.related .sec-head{justify-content:flex-start}

/* 戻るボタン */
.back-to-list{text-align:center;margin-top:50px}
.back-to-list a{
  display:inline-block;background:var(--green);color:#fff;font-weight:700;
  padding:14px 44px;border-radius:4px;letter-spacing:.04em;transition:.25s}
.back-to-list a:hover{background:var(--green-deep)}

/* 検索フォーム */
.searchform{display:flex;gap:8px;max-width:480px;margin:0 auto 40px}
.searchform input[type=search]{flex:1;height:48px;border:1px solid #cfe6df;border-radius:6px;
  padding:0 16px;font-size:15px}
.searchform button{height:48px;padding:0 24px;border:none;border-radius:6px;background:var(--green);
  color:#fff;font-weight:700;cursor:pointer}
.searchform button:hover{background:var(--green-deep)}

/* 空表示 */
.no-posts{text-align:center;color:var(--ink-soft);padding:54px 0;font-size:16px}

/* ---- レスポンシブ ---- */
@media (max-width:900px){
  .blog-band{padding:13px 46px 13px 26px}
  .blog-band__en{font-size:25px}
  .l-content{padding:40px 18px 70px}
  .post-list{grid-template-columns:1fr 1fr;gap:34px 20px}
  .article__title{font-size:23px}
  .entry-body{font-size:15.5px}
  .entry-body h2{font-size:21px}
}
@media (max-width:600px){
  .blog-mv__photo{aspect-ratio:4/3}
  .blog-mv .blog-band{
    width:auto;height:auto;right:18px;bottom:14%;
    padding:8px 22px 8px 28px;gap:11px;justify-content:flex-start;
  }
  .blog-mv .blog-band__en{font-size:19px}
  .blog-mv .blog-band__jp{font-size:12px;padding-left:12px}
  .blog-band{padding:9px 30px 9px 22px}
  .blog-band__en{font-size:20px}
  .post-list{grid-template-columns:1fr 1fr;gap:24px 14px}
  .post-foot{grid-template-columns:1fr;gap:18px;justify-items:center;text-align:center}
  .post-foot__side,.post-foot__side--right{text-align:center}
  .post-foot__back{order:-1}
}

/* ============================================================
   アニメーション（ふわっ・しゅわっ）
   .js のときのみ初期状態を隠す / reduce では一切隠さない
   ============================================================ */
.site-header{transition:box-shadow .35s ease}
.site-header.scrolled{box-shadow:0 6px 24px rgba(0,0,0,.16)}

@media (prefers-reduced-motion: no-preference){

  /* 基本：下から大きめにふわっと（伸びやかなイージング） */
  .js .rinen-body,
  .js .policy-extra,
  .js .profile-text,
  .js .profile-photo,
  .js .blog-lead,
  .js .blog-card,
  .js .single-article,
  .js .article,
  .js .author-box{
    opacity:0;transform:translateY(40px);
    transition:opacity .9s ease, transform 1s cubic-bezier(.16,1,.3,1);
    transition-delay:var(--rd,0ms);
  }
  .js .rinen-body.is-visible,
  .js .policy-extra.is-visible,
  .js .profile-text.is-visible,
  .js .profile-photo.is-visible,
  .js .blog-lead.is-visible,
  .js .blog-card.is-visible,
  .js .single-article.is-visible,
  .js .article.is-visible,
  .js .author-box.is-visible{opacity:1;transform:none}

  /* eyebrow（−POLICY−）：字間がしゅわっと広がりながら浮かぶ */
  .js .eyebrow{opacity:0;transform:translateY(22px);letter-spacing:0;
    transition:opacity .9s ease, transform 1s cubic-bezier(.16,1,.3,1), letter-spacing 1s cubic-bezier(.16,1,.3,1)}
  .js .eyebrow.is-visible{opacity:1;transform:none;letter-spacing:.18em}

  /* 見出し：本体ふわっ＋oliveバーが上から伸びる */
  .js .sec-head{opacity:0;transform:translateY(26px);
    transition:opacity .8s ease, transform .9s cubic-bezier(.16,1,.3,1)}
  .js .sec-head.is-visible{opacity:1;transform:none}
  .js .sec-head::before{transform:scaleY(0);transform-origin:top;
    transition:transform .7s cubic-bezier(.16,1,.3,1) .15s}
  .js .sec-head.is-visible::before{transform:scaleY(1)}

  /* 政策カード：左右から滑り込む（方向で動きを付ける） */
  .js .policy-card{opacity:0;
    transition:opacity .9s ease, transform 1s cubic-bezier(.16,1,.3,1)}
  .js .policy-01 .policy-card,
  .js .policy-03 .policy-card{transform:translateX(-56px)}
  .js .policy-02 .policy-card{transform:translateX(56px)}
  .js .policy-card.is-visible{opacity:1;transform:none}

  /* 政策の数字 01/02/03：ポンッと弾ける */
  .js .policy-card .num{opacity:0;transform:scale(.4);transform-origin:left center;
    transition:opacity .5s ease .25s, transform .65s cubic-bezier(.34,1.56,.64,1) .25s}
  .js .policy-card.is-visible .num{opacity:1;transform:none}

  /* 政策の画像：カードと逆方向からふわっ＋ズーム */
  .js .policy .imgs img{opacity:0;transform:scale(.94);
    transition:opacity .9s ease, transform 1s cubic-bezier(.16,1,.3,1);
    transition-delay:var(--rd,0ms)}
  .js .policy-01 .imgs img,
  .js .policy-03 .imgs img{transform:translateX(48px) scale(.94)}
  .js .policy-02 .imgs img{transform:translateX(-48px) scale(.94)}
  .js .policy .imgs img.is-visible{opacity:1;transform:none}

  /* 一覧カード：opacityのみ（hoverのtransformと干渉させない） */
  .js .post-card{opacity:0;transition:opacity .8s ease;transition-delay:var(--rd,0ms)}
  .js .post-card.is-visible{opacity:1}

  /* ヒーロー：ロード時に下からふわっ＋ズームアウト */
  .js .hero{overflow:hidden}
  .js .hero img{animation:osadaHeroIn 1.4s cubic-bezier(.16,1,.3,1) both}
  @keyframes osadaHeroIn{
    0%{opacity:0;transform:scale(1.08) translateY(12px)}
    100%{opacity:1;transform:none}
  }

  /* ヘッダーのロゴ・ナビ：ロード時に順番にスッと降りてくる */
  .js .brand{animation:osadaDrop .7s cubic-bezier(.16,1,.3,1) both}
  .js .gnav > ul > li{animation:osadaDrop .6s cubic-bezier(.16,1,.3,1) both}
  .js .gnav > ul > li:nth-child(1){animation-delay:.15s}
  .js .gnav > ul > li:nth-child(2){animation-delay:.24s}
  .js .gnav > ul > li:nth-child(3){animation-delay:.33s}
  .js .gnav > ul > li:nth-child(4){animation-delay:.42s}
  .js .gnav > ul > li:nth-child(5){animation-delay:.51s}
  @keyframes osadaDrop{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
}

/* SPではナビのロードアニメは無効（ハンバーガー開閉と干渉させない） */
@media (max-width:900px) and (prefers-reduced-motion: no-preference){
  .js .gnav > ul > li{animation:none;opacity:1}
}
